- ARM의 역사와 아키텍쳐 버전별 주요 특징
버전 | 발표 연도 |
특징 | 적용 제품군 |
ARMv1 | 1985 | 최초의 상업용 RISC 프로세서, 26비트 어드레스 사용 | ARM1 |
ARMv2 | 1987 | 32비트 곱셈기, 온칩 캐시, 32비트 보조 프로세서 지원 | ARM2, ARM3 |
ARMv3 | 1992 | MMU 지원, 32비트 어드레스 사용, 64비트 MAC | ARM6, ARM7 |
ARMv4 | 1996 | Thumb 모드 명령 추가, 26비트 어드레스 기능 폐지 | ARM7TDMI, ARM8, ARM9TDMI, StrongARM |
ARMv5 | 1999 | MAC 향상, DSP 및 Jazelle 명령 확장 기능 지원 | ARM9E/J, ARM10, Xscale |
ARMv6 | 2001 | AIMD, Thumb-2, TrustZone, 멀티프로세싱 기능 지원 | ARM11, ARM11 MP Core |
ARMv7 | 2004 | 제품의 브랜드명을 Cortex로 통일하고, 용도에 따라 3가지 코어 제품군으로 나눔 | Cortex-A, Cortex-R, Cortex-M |
- ARM의 제품군별 주요 특징
ARM7 | ARM9 | ARM10 | ARM11 | |
발표 연도 | 1993 | 1996 | 1998 | 2002 |
파이프라인 | 3단계 | 5단계 | 6단계 | 8단계/9단계 |
최고 동작 속도 | 133 MHz | 250 MHz | 325 MHz | 550 MHz |
소비전력 | 0.25mW/MHz | 0.2mW/MHz | 0.5mW/MHz | 0.6mW/MHz |
명령처리 속도 | 0.9 MIPS/MHz | 1.1 MIPS/MHz | 1.35 MIPS/MHz | 1.35 MIPS/MHz |
기본 아키텍쳐 | 폰노이만 구조 온칩 캐시 |
수정된 하버드 구조 명령캐시/데이터캐시 |
수정된 하버드 구조 명령캐시/데이터캐시 |
수정된 하버드 구조 명령캐시/데이터캐시 |
곱셈기 | 32x8 | 32x8 | 32x16 | 32x16 |
적용 제품 코어 | ARM720T ARM7EJ-S ARM7TDMI ARM7TDMI-S |
ARM920T ARM922T ARM926EJ-S ARM946E-S |
ARM1020E ARM1022E ARM1026EJ-S |
ARM1136J-S ARM1136JF-S ARM1176JZ-S ARM1176JZF-S |
- 주요 특징
- ARM사는 반도체 제조회사가 아니다.
- 자신이 설계한 ARM 코어를 IP(Intellectual Property) 라이센스 형태로 제공
- 이 라이센스를 계약한 반도체 회사는 자사에서 설계한 I/O회로를 추가하여 제품 모델 생산 판매
- ARM사도 에뮬레이터와 같은 하드웨어 개발 툴이나 C컴파일러 같은 소프트웨어 개발툴은 자사 제품을 가짐
- 가격이 싸다
- 구조가 간단하고 라이센스로 받아 사용하므로 개발 비용이 적게듦
- ARM은 전세계 32비트 임베디드 RISC 시장의 약 75% 장악
- 소비전력이 적다.
- 빠른 속도에서 발열이 적다
- 모바일 기기에서 각광받음
- 칩 면적(die size)이 작다
- 적은 트랜지스터의 수를 사용하고 초미세 공정으로 칩 면적이 작게 설계
- 고성능 32비트 RISC 프로세서이다
- RISC 구조
- 캐시 메모리(cache memory) 내장
- 파이프라인 처리방식 (평균적으로 1사이클에 1명령)
- 초기에는 폰 노이만(Von Neumann) 구조
- ARM7 제품군부터는 수정된 하버드 구조(Modified Harvard Architecture)
- 명령 페치와 데이터 액세스를 동시에 수행할 수 있도록 개선
- 명령처리 구조를 단순화
- 모든 데이터 처리나 연산 명령은 내부 레지스터를 중심으로 이루어짐
- 레지스터와 메모리 사이의 데이터 이동은 별도의 로드(load) 및 스토어(store) 명령으로 수행
- 많은 범용 레지스터와 효율적인 명령 세트를 가짐
- 32비트의 고정 길이 명령을 가짐
- 명령의 종류가 적음
- 연산 명령보다는 데이터 이동이나 제어처리 명령이 많음
- 효율적인 명령 세트를 가짐
- 대부분의 명령에서 조건부 실행이 가능
- 16비트의 Thumb 명령
- 메모리에서 코드의 집적 효율을 높임
- Cortex-M3 모델부터 Thumb-2 명령을 사용 (Thumb 명령 개선)
- 명령 세트를 확장하기가 매우 용이한 구조(ISA : Instruction Set Architecture)
- 보조 프로세서를 이용한 명령 세트 확장이 용이
- DSP 보조 프로세서나 VFP 부동소수점 연산 보조 프로세서 등이 이에 해당
- 내부 구조가 철저하게 모듈식
- 캐시 메모리나 MMU/MPU 또는 Jazelle, TrustZone 등의 기능을 추가로 확장하는 것이 매우 용이
- Cortex-M4
- DSP 기능과 VFP 부동소수점 연산장치를 내장하고 있는 Cortex-M3의 상위 모델
- Cortex-M7
- M4를 더욱 고속화한 모델
- 엔디안 모드 지원
- 바이트 머신(byte machine)
- 각 메모리 번지에 바이트 단위로 명령 코드나 데이터가 저장
- 리틀 엔디안(little endian) 지원
- 4바이트의 워드가 낮은 번지에 LSB(Least Significant Byte)부터 차례로 저장
- 빅 엔디안(big endian) 지원
- 4바이트의 워드가 낮은 번지에 MSB(Most Significant Byte)부터 차례로 저장
- Cortex-M 모델들은 리틀 엔디안 방식으로 고정
- ARM의 AMBA 버스
- AMBA: Advanced Microcontroller Bus Architecture
- AHB: Advanced High-performance Bus
- ASB: Advanced System Bus
- APB: Advanced Peripheral Bus
ARM Cortex 제품군의 종류 및 특징
ARM 패밀리 |
ARM 아키텍쳐 |
ARM 코어 |
특징 | 처리속도 |
Cortex-A | ARMv7-A | Cortex-A5 | VFP, NEON, Jazelle RCT, Thumb/Thumb-2, 1~4 cores | 1.57 DMIPS/MHz per core |
Cortex-A8 | (2005년) VFP, NEON, Jazelle RCT, Thumb/Thumb-2, 13-stage superscalar pipeline | 2.0 DMIPS/MHz | ||
Cortex-A9 MPCore | (2007년) Application profile, VFPv3 FPU, NEON, Thumb/Thumb-2, Jazelle RCT/DBX, out-of-order speculative issue superscalar, 1~4 SMP cores | 2.50 DMIPS/MHz per core | ||
Cortex-A15 MPCore | (2010년) Application profile, VFPv4 FPU, NEON, Thumb-2, Jazelle RCT/DBX, out-of-order speculative issue superscalar, Large Physical Address Extensions(LPAE), Hardware virtualization, 1~4 SMP cores | 3.5 ~ 4.1 DMIPS/MHz per core | ||
Cortex-R | ARMv7-R | Cortex-R4 Cortex-R4F |
Real-time profile, Thumb-2, FPU | 1.50 DMIPS/MHz |
Cortex-M | ARMv6-M | Cortex-M0 Cortex-M0+ |
(2009년) Microcontroller profile, Thumb-2 subset. Hardware multiply instruction.(Cortex-M0+는 2012년) |
0.9 DMIPS/MHz |
Cortex-M1 | (2007년) FPGA targeted, Microcontroller profile, Thumb-2 subset. | 0.8 DMIPS/MHz | ||
ARMv7-M | Cortex-M3 | (2004년) Microcontroller profile, Thumb/Thumb-2. Hardware multiply and divide instruction |
1.25 DMIPS/MHz | |
ARMv7E-M | Cortex-M4 Cortex-M4F |
(2010년) Microcontroller profile, both Thumb/Thumb-2, FPU. Hardware MAC, SIMD and divide instructions | 1.25 DMIPS/MHz 1.27 DMIPS/MHz |
|
ARMv7E-M | Cortex-M7 | (2014년) single and double precision FPU. 0~64KB instruction cache and data cache, 6-stage superscalar | 2.14 DMIPS/MHz |
댓글 없음:
댓글 쓰기