ARM 아키텍처
위키백과 ― 우리 모두의 백과사전.
ARM(Advanced RISC Machine) 아키텍처는 임베디드 기기에 많이 사용되는 32-bit RISC 프로세서이다. 저전력을 사용하도록 설계하여 ARM CPU는 모바일 시장에서 뚜렷한 강세를 보인다.
- 1985년 4월 26일 영국의 캠브리지에 있는 Arcon Computers에 의해서 탄생.
- 1990년 11월에 애플사와 VLSI의 조인트 벤처 형식으로 ARM(Advanced RISC Machines Ltd.)가 생김.
[편집] ARM 아키텍처의 계보
- ARMv4 아키텍처는 32비트 주소 영역에서 32비트 ISA(Instruction Set Architecture) 동작이 가능하다. 16비트 Thumb 명령어 셋을 탑재한 ARMv4T 아키텍처는 32비트 코드의 이점을 그대로 살리고, 메모리 공간을 35% 이상 절약할 수 있도록 해주었다.
- ARMv5TE(1999년) 아키텍처는 개선된 thumb 아키텍처와 ‘Enhanced’ DSP 명령어 셋을 ARM ISA에 추가하였다. 이러한 Thumb의 변화에는 소수의 명령어 추가와 함께 ARM/Thumb 인터워킹(interworking)의 개선, 컴파일 성능의 대폭적인 향상, ARM/Thumb 루틴의 혼합 사용, 코드 크기와 성능에 대한 균형도 포함되어 있다. 또한 ‘Enhanced’ DSP 명령어들은 복잡한 수치연산에서 70%의 성능 개선을 보여주었다.
- ARMv5TEJ(2000년) 아키텍처에는 Jazelle(자바 하드웨어 가속기) 확장명령어가 추가되었으며, 이로써 자바 가속 기술을 탑재한 아키텍처가 탄생하게 된다. ARMv5TJE 아키텍처는 Jazelle의 탄생함에 따라 가속 기술을 사용하지 않은 JVM(Java Virtual Machine)보다 속도 면에서 8배가 향상되었으며, 소비전력의 측면에서도 80%를 줄일 수 있게 된다. 또
- ARMv6(2001년) 아키텍처가 발표되면서 여러 방면에서 기능 개선이 이루어졌다. 특히 메모리 시스템, 예외 처리의 개선, 멀티프로세싱 환경을 위한 더 많은 지원 등이 이에 해당한다. 이것 이외도 ARMv6 아키텍처에는 SIMD(Single Instruction Multiple Data) 소프트웨어 실행을 지원하는 미디어 명령이 포함되어 있으며, SIMD 명령들은 오디오 및 비디오 코덱을 포함하는 응용 프로그램들의 사용 확대를 위해 최적화되었다.
- ARM1136J(2002년) (F)-8 코어. 스트롱암 CPU는 DEC(Digital Equipment Coporation)에 의해서 ARM과 함께 개발되었다. 이것이 최초의 modified-Harvard 아키텍처(명령어 캐시와 데이터 캐시를 분리해서 사용)를 채용한 제품이며, modified-Harvard 아키텍처로 ARM의 쓰기 처리 능력의 고속화가 가능하게 되었다. 스트롱암의 주요 특징 중에는 5단 파이프라인의 채용, 64비트 곱셈 및 일부 곱셈 기능을 제외한 모든 일반 명령어들의 싱글 사이클 처리 등이 포함되어 있다.
- 인텔의 ARM 칩셋들에는 Xscale과 함께 SA11xx 시리즈의 제품들이 있다. 이중 SA11xx 시리즈는 오히려 스트롱암으로 더 잘 알려져 있기도 하다. 스트롱암 프로세서는 휴대용 전화기와 가전제품 등의 설계에 적합하며, 현재 컴팩의 iPAQ H3600 포켓 PC, HP의 조나다 핸드헬드 PC, 팜(Palm) PDA 및 많은 제품들에 사용되었다. 인텔이 개발한 SA110은 일반적인 표준 임베디드 프로세서이며, 팜 크기의 기기를 위해 개발된 SA1100와 SA1111 프로세서는 인텔이 사용하는 ARM 코어의 ASIC 패밀리의 공식 명칭이 되었다(SA는 StrongARM의 약어이다).
[편집] ARM 코어
| 계열 | 아키텍처 버전 | 코어 | 기능 | 캐시 (명령어/데이터)/MMU | 일반적인 MIPS @ MHz |
|---|---|---|---|---|---|
| ARM1 | ARMv1 | ARM1 | None | ||
| ARM2 | ARMv2 | ARM2 | Architecture 2 added the MUL (multiply) instruction | None | 4 MIPS @ 8 MHz 0.33 DMIPS/MHz |
| ARMv2a | ARM250 | Integrated MEMC (MMU), Graphics and IO processor. Architecture 2a added the SWP and SWPB (swap) instructions. | None, MEMC1a | 7 MIPS @ 12 MHz | |
| ARM3 | ARMv2a | ARM2a | First use of a processor cache on the ARM. | 4K unified | 12 MIPS @ 25 MHz 0.50 DMIPS/MHz |
| ARM6 | ARMv3 | ARM60 | v3 architecture first to support addressing 32 bits of memory (as opposed to 26 bits) | None | 10 MIPS @ 12 MHz |
| ARM600 | Cache and coprocessor bus (for FPA10 floating-point unit). | 4K unified | 28 MIPS @ 33 MHz | ||
| ARM610 | Cache, no coprocessor bus. | 4K unified | 17 MIPS @ 20 MHz 0.65 DMIPS/MHz |
||
| ARM7 | ARMv3 | ARM700 | 8 KB unified | 40 MHz | |
| ARM710 | 8KB unified | 40 MHz | |||
| ARM710a | 8 KB unified | 40 MHz 0.68 DMIPS/MHz |
|||
| ARM7100 | Integrated SoC. | 8 KB unified | 18 MHz | ||
| ARM7500 | Integrated SoC. | 4 KB unified | 40 MHz | ||
| ARM7500FE | Integrated SoC. "FE" Added FPA and EDO memory controller. | 4 KB unified | 56 MHz 0.73 DMIPS/MHz |
||
| ARM7TDMI | ARMv4T | ARM7TDMI(-S) | 3-stage pipeline, Thumb | none | 15 MIPS @ 16.8 MHz |
| ARM710T | 8 KB unified, MMU | 36 MIPS @ 40 MHz | |||
| ARM720T | 8 KB unified, MMU | 60 MIPS @ 59.8 MHz | |||
| ARM740T | MPU | ||||
| ARMv5TEJ | ARM7EJ-S | Jazelle DBX, Enhanced DSP instructions, 5-stage pipeline | none | ||
| StrongARM | ARMv4 | SA-110 | 16 KB/16 KB, MMU | 203 MHz 1.0 DMIPS/MHz |
|
| SA-1110 | 16 KB/16 KB, MMU | 233 MHz | |||
| ARM8 | ARMv4 | ARM810[1] | 5-stage pipeline, static branch prediction, double-bandwidth memory | 8 KB unified, MMU | 84 MIPS @ 72 MHz 1.16 DMIPS/MHz |
| ARM9TDMI | ARMv4T | ARM9TDMI | 5-stage pipeline | none | |
| ARM920T | 16 KB/16 KB, MMU | 200 MIPS @ 180 MHz | |||
| ARM922T | 8 KB/8 KB, MMU | ||||
| ARM940T | 4 KB/4 KB, MPU | ||||
| ARM9E | ARMv5TE | ARM946E-S | Enhanced DSP instructions | variable, tightly coupled memories, MPU | |
| ARM966E-S | no cache, TCMs | ||||
| ARM968E-S | no cache, TCMs | ||||
| ARMv5TEJ | ARM926EJ-S | Jazelle DBX, Enhanced DSP instructions | variable, TCMs, MMU | 220 MIPS @ 200 MHz, | |
| ARMv5TE | ARM996HS | Clockless processor, Enhanced DSP instructions | no caches, TCMs, MPU | ||
| ARM10E | ARMv5TE | ARM1020E | (VFP), 6-stage pipeline, Enhanced DSP instructions | 32 KB/32 KB, MMU | |
| ARM1022E | (VFP) | 16 KB/16 KB, MMU | |||
| ARMv5TEJ | ARM1026EJ-S | Jazelle DBX, Enhanced DSP instructions | variable, MMU or MPU | ||
| XScale | ARMv5TE | 80200/IOP310/IOP315 | I/O Processor, Enhanced DSP instructions | ||
| 80219 | 400/600 MHz | ||||
| IOP321 | 600 BogoMips @ 600 MHz | ||||
| IOP33x | |||||
| IOP34x | 1-2 core, RAID Acceleration | 32K/32K L1, 512K L2, MMU | |||
| PXA210/PXA250 | Applications processor, 7-stage pipeline | ||||
| PXA255 | 32KB/32KB, MMU | 400 BogoMips @ 400 MHz | |||
| PXA26x | default 400 MHz, up to 624 MHz | ||||
| PXA27x | Applications processor | 32 Kb/32 Kb, MMU | 800 MIPS @ 624 MHz | ||
| PXA800(E)F | |||||
| Monahans | 1000 MIPS @ 1.25 GHz | ||||
| PXA900 | |||||
| IXC1100 | Control Plane Processor | ||||
| IXP2400/IXP2800 | |||||
| IXP2850 | |||||
| IXP2325/IXP2350 | |||||
| IXP42x | |||||
| IXP460/IXP465 | |||||
| ARM11 | ARMv6 | ARM1136J(F)-S | SIMD, Jazelle DBX, (VFP), 8-stage pipeline | variable, MMU | 740 @ 532-665 MHz (i.MX31 SoC), 400-528 MHz |
| ARMv6T2 | ARM1156T2(F)-S | SIMD, Thumb-2, (VFP), 9-stage pipeline | variable, MPU | ||
| ARMv6KZ | ARM1176JZ(F)-S | SIMD, Jazelle DBX, (VFP) | variable, MMU+TrustZone | ||
| ARMv6K | ARM11 MPCore | 1-4 core SMP, SIMD, Jazelle DBX, (VFP) | variable, MMU | ||
| Cortex | ARMv7-A | Cortex-A8 | Application profile, VFP, NEON, Jazelle RCT, Thumb-2, 13-stage superscalar pipeline | variable (L1+L2), MMU+TrustZone | up to 2000 (2.0 DMIPS/MHz in speed from 600 MHz to greater than 1 GHz) |
| Cortex-A9 | Application profile, (VFP), (NEON), Jazelle RCT and DBX, Thumb-2, Out-of-order speculative issue superscalar | MMU+TrustZone | 2.0 DMIPS/MHz | ||
| Cortex-A9 MPCore | As Cortex-A9, 1-4 core SMP | MMU+TrustZone | 2.0 DMIPS/MHz | ||
| ARMv7-R | Cortex-R4(F) | Embedded profile, (FPU) | variable cache, MPU optional | 600 DMIPS | |
| ARMv7-M | Cortex-M3 | Microcontroller profile, Thumb-2 only. | no cache, (MPU) | 125 DMIPS @ 100 MHz | |
| ARMv6-M | Cortex-M1 | FPGA targeted, Microcontroller profile, Thumb-2 (BL, MRS, MSR, ISB, DSB, and DMB). | None, tightly coupled memory optional. |
[편집] 주석
- ↑ "ARM810 - Dancing to the Beat of a Different Drum" ARM Limited presentation at Hot Chips 8, 1996
| 이 글은 하드웨어에 관한 토막글입니다. 서로의 지식을 모아 알차게 문서를 완성해 갑시다. |
|
|
|---|
| 니오스 II · AMD Am2900 · 블랙핀 · 파워 아키텍처 · ARM 아키텍처 · 알파 프로세서 · Atmel AVR · MIPS 아키텍처 · PA-RISC · PIC 마이크로컨트롤러 · SPARC |