ARM架构(过去称作进阶精简指令集机器(Advanced RISC Machine),更早称作Acorn RISC Machine)是一个32位元精简指令集(RISC) 中央处理器(processor)架构,其广泛地使用在许多嵌入式系统(embedded)设计。由于节能的特点,ARM处理器非常适用于移动通讯领域,符合其主要设计目标为低耗电的特性。
展开
在今日,ARM家族占了所有32位元
嵌入式处理器75%的比例[1],使它成为占全世界最多数的32位元架构之一。ARM处理器可以在很多消费性电子产品上看到,从可携式装置(PDA、移动电话、
多媒体播放器、掌上型电玩,和计算机)到电脑周边设备(硬盘、桌上型
路由器)甚至在导弹的弹载计算机等军用设施中都有他的存在。在此家族中衍伸的重要产品还包括Marvell的XScale架构和德州仪器的OMAP系列。
历史
ARM的设计是Acorn电脑公司(Acorn Computers Ltd)于1983年开始的开发计划。 这个团队由Roger Wilson和Steve Furber带领,着手开发一种新架构,类似进阶的MOS Technology 6502处理器。Acorn有一大堆建构在6502架构上的电脑,因此能设计出一颗类似的芯片即意味着对公司有很大的优势。 团队在1985年时开发出ARM1 Sample版,而首颗"真正"的产能型ARM2于次年量产。ARM2具有32位的数据总线、26位的寻址空间,并提供64 Mbyte的寻址范围与16个32-bit的暂存器。这些暂存器其中有一颗做为(word大小)程式计数器,其前面6 bits和后面2 bits用来保存处理器状态标记(Processor Status Flags)。ARM2可能是全世界最简单实用的32位微处理器,其仅容纳了30,000个晶体管(相较于Motorola六年后的68000其包含了70,000颗)。之所以精简的原因在于它不含微码(请参阅microcode)(这表示大概只有68000的1/3至1/4),而与现今大多数的 CPU 不同,它没有包含任何的高速缓存。这个精简的特色使它只需消耗很少的电能,却能发挥比 Intel 80286 更好的效能。后继的处理器ARM3更备有4KB的高速缓存,使它能发挥更佳的效能。 在1980年代晚期,苹果电脑开始与Acorn合作开发新版的ARM核心,由于这专案非常重要,Acorn甚至于1990年将设计团队另组成一间名为安谋国际科技(Advanced RISC Machines Ltd.)的新公司。也基于这原因,使得ARM有时候反而称作Advanced RISC Machine而不是Acorn RISC Machine。由于其母公司ARM Holdings plc于1998年的 伦敦交易市场和NASDAQ挂牌上市,使得Advanced RISC Machines成了ARM Ltd旗下拥有的产品。 这个专案到后来进入了ARM6,首版的式样在1991年释出,然后苹果电脑使用ARM6架构的ARM 610来当作他们Apple Newton PDA的基础。在1994年,Acorn使用ARM 610做为他们Risc PC电脑内的CPU。 在这些变革之后,内核部份却大多维持一样的大小。ARM2有30,000颗晶体管,但ARM6却也只增长到35,000颗。主要概念是以ODM的方式,使ARM核心能搭配一些选配的零件而制成一颗完整的CPU,而且可在现有的晶圆厂里制作并以低成本的方式达到很大的效能。 ARM的经营模式在于出售其知识产权核(IP core),授权厂家依照设计制作出建构于此核的微控制器和中央处理器。最成功的实作案例属 ARM7TDMI,几乎卖出了数亿套内建微控制器的装置。 DEC 购买这个架构的产权(此处会造成混淆在于其本身也制造 DEC Alpha 并研发出StrongARM。在 233 MHz 的频率下,这颗 CPU 只消耗一 瓦特的电能(后来的芯片消耗得更少)。这项设计后来为了和 Intel 的控诉和解而技术移转,Intel 因而趁机以 StrongARM 架构补强他们老旧的 i960 产线。Intel 后来开发出他们自有的高效能实作,称作XScale,之后也卖给了 Marvell。 支援智能型手机、PDA和其他手持装置最常见的架构是ARMv4。XScale 和 ARM926 处理器是ARMv5TE,而且比起建构在 ARMv4 的 StrongARM、ARM925T 和 ARM7TDMI 等处理器还更常见于许多高阶装置上[来源请求]。架构版本如下栏所示。内核种类
家族 | 架构 | 内核 | 特色 | 高速缓存 (I/D)/MMU | 常规 MIPS 于 MHz | 应用 |
ARM1 | ARMv1 | ARM1 | | 无 | | |
ARM2 | ARMv2 | ARM2 | Architecture 2 加入了MUL(乘法)指令 | 无 | 4 MIPS @ 8MHz | Acorn Archimedes,Chessmachine |
ARMv2a | ARM250 | Integrated MEMC (MMU),图像与IO处理器。Architecture 2a 加入了SWP和SWPB(置换)指令。 | 无,MEMC1a | 7 MIPS @ 12MHz | Acorn Archimedes | |
ARM3 | ARMv2a | ARM2a | 首次在ARM架构上使用处理器高速缓存 | 均为4K | 12 MIPS @ 25MHz | Acorn Archimedes |
ARM6 | ARMv3 | ARM610 | v3 架构首创支援寻址32位的内存(针对26位) | 均为4K | 28 MIPS @ 33MHz | Acorn Risc PC 600,Apple Newton |
ARM7 | ARMv3 | | | | | |
ARM7TDMI | ARMv4T | ARM7TDMI(-S) | 三级流水线 | 无 | 15 MIPS @ 16.8 MHz | Game Boy Advance,Nintendo DS,iPod |
ARM710T | | 均为8KB, MMU | 36 MIPS @ 40 MHz | Acorn Risc PC 700,Psion 5 series,Apple eMate 300 | ||
ARM720T | | 均为8KB, MMU | 60 MIPS @ 59.8 MHz | Zipit | ||
ARM740T | | MPU | | | ||
ARMv5TEJ | ARM7EJ-S | Jazelle DBX | 无 | | | |
StrongARM | ARMv4 | | | | | |
ARM8 | ARMv4 | | | | | |
ARM9TDMI | ARMv4T | ARM9TDMI | 五级流水线 | 无 | | |
ARM920T | | 16KB/16KB, MMU | 200 MIPS @ 180 MHz | Armadillo,GP32,GP2X(第一颗内核), Tapwave Zodiac(Motorola i. MX1) | ||
ARM922T | | 8KB/8KB, MMU | | | ||
ARM940T | | 4KB/4KB, MPU | | GP2X(第二颗内核) | ||
ARM9E | ARMv5TE | ARM946E-S | | 可变动,tightly coupled memories, MPU | | Nintendo DS,Nokia N-Gage Conexant 802.11 chips |
ARM966E-S | | 无高速缓存,TCMs | | ST Micro STR91xF,包含Ethernet | ||
ARM968E-S | | 无高速缓存,TCMs | | | ||
ARMv5TEJ | ARM926EJ-S | Jazelle DBX | 可变动,TCMs, MMU | 220 MIPS @ 200 MHz | 移动电话:Sony Ericsson(K, W系列),Siemens 和 Benq(x65 系列和新版的) | |
ARMv5TE | ARM996HS | 无振荡器处理器 | 无高速缓存,TCMs, MPU | | | |
ARM10E | ARMv5TE | ARM1020E | (VFP),六级流水线 | 32KB/32KB, MMU | | |
ARM1022E | (VFP) | 16KB/16KB, MMU | | | ||
ARMv5TEJ | ARM1026EJ-S | Jazelle DBX | 可变动,MMU or MPU | | | |
XScale | ARMv5TE | 80200/IOP310/IOP315 | I/O处理器 | | | |
80219 | | | 400/600MHz | Thecus N2100 | ||
IOP321 | | | 600 BogoMips @ 600 MHz | Iyonix | ||
IOP33x | | | | | ||
IOP34x | 1-2核,RAID加速器 | 32K/32K L1, 512K L2, MMU | | | ||
PXA210/PXA250 | 应用处理器,七级流水线 | | | Zaurus SL-5600 | ||
PXA255 | | 32KB/32KB, MMU | 400 BogoMips @ 400 MHz | Gumstix,Palm Tungsten E2 | ||
PXA26x | | | 可达 400 MHz | Palm Tungsten T3 | ||
PXA27x | | | 800 MIPS @ 624 MHz | HTC Universal, Zaurus SL-C1000,3000,3100,3200, Dell Axim x30, x50,和 x51 系列 | ||
PXA800(E)F | | | | | ||
Monahans | | | 1000 MIPS @ 1.25 GHz | Mavell PXA300/PXA310/PXA320, Max frequency : PXA300@624Mhz, PXA310/PXA320@806Mhz | ||
PXA900 | | | | Blackberry 8700, Blackberry Pearl (8100) | ||
IXC1100 | Control Plane Processor | | | | ||
IXP2400/IXP2800 | | | | | ||
IXP2850 | | | | | ||
IXP2325/IXP2350 | | | | | ||
IXP42x | | | | NSLU2 | ||
IXP460/IXP465 | | | | | ||
ARM11 | ARMv6 | ARM1136J(F)-S | SIMD, Jazelle DBX, (VFP),八级流水线 | 可变动,MMU | | Nokia N93,Zune,Nokia N800 |
ARMv6T2 | ARM1156T2(F)-S | SIMD, Thumb-2, (VFP),九级流水线 | 可变动,MPU | | | |
ARMv6KZ | ARM1176JZ(F)-S | SIMD, Jazelle DBX, (VFP) | 可变动,MMU+TrustZone | | | |
ARMv6K | ARM11 MPCore | 1-4核对称多处理器,SIMD, Jazelle DBX, (VFP) | 可变动,MMU | | | |
Cortex | ARMv7-A | Cortex-A8 | Application profile, VFP, NEON, Jazelle RCT, Thumb-2, 13-stage pipeline | 可变动 (L1+L2), MMU+TrustZone | up to 2000(2.0 DMIPS/MHz 从600 MHz到超过1 GHz的速度) | Texas Instruments OMAP3 |
Cortex-A9 | | | | | ||
Cortex-A9 MPCore | | | | | ||
ARMv7-R | Cortex-R4(F) | Embedded profile, (FPU) | 可变动高速缓存,MMU可选配 | 600 DMIPS | Broadcom is a user | |
ARMv7-M | Cortex-M3 | Microcontroller profile | 无高速缓存,(MPU) | 120 DMIPS @ 100MHz | Luminary Micro微控制器家族 | |
ARMv6-M | Cortex-M0 | | | | | |
Cortex-M1 | | | | | ||
ARMv7-ME | Cortex-M4 | | Optional 8 region MPU with sub regions and background region | 1.25 DMIPS/MHz | | |
家族 | 架构 | 内核 | 特色 | 高速缓存 (I/D)/MMU | 常规 MIPS 于 MHz | 应用 |