查看文章 |
arm
2009-05-12 13:27
总结起来最主要的有以下几个吧 |
| 家族 | 架构 | 内核 | 特色 | 高速缓存 (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 |
| 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 | 无 | |||
| 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-GageConexant 802.11 chips | ||
| ARM966E-S | 无高速缓存,TCMs | ST Micro STR91xF,包含Ethernet [2] |
||||
| 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 | |||||
| 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 | ?? @ 532-665MHz (i.MX31 SoC) | 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 |
| 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[3] 微控制器家族 |
设计文件
Thumb
较新的ARM处理器有一种16-bit指令模式,叫做Thumb,也许跟每个条件式执行指令均耗用4位的情形有关。在Thumb模式下,较小的opcode有更少的功能性。例如,只有分支可以是条件式的,且许多opcode无法存取所有CPU的暂存器。然而,较短的opcode提供整体更佳的编码密度(注:意指程式码在内存中占的空间),即使有些运算需要更多的指令。特别在内存埠或总线宽度限制在32 以下的情形时,更短的Thumb opcode能更有效地使用有限的内存带宽,因而提供比32位程式码更佳的效能。典型的嵌入式硬件仅具有较小的32-bit datapath寻址范围以及其他更窄的16 bits寻址(例如Game Boy Advance)。在这种情形下,通常可行的方案是编译成 Thumb 程式码,并自行最佳化一些使用(非Thumb)32位指令集的CPU相关程式区,因而能将它们置入受限的32-bit总线宽度的内存中。
Jazelle
ARM 还开发出一项技术,Jazelle DBX (Direct Bytecode eXecution),允许它们在某些架构的硬件上加速执行Java bytecode,就如其他执行模式般,当呼叫一些无法支援bytecodes的特殊软件时,能提供某些bytecodes的加速执行。它能在现存的ARM与Thumb模式之间互相执行。Thumb-2
Thumb-2 技术首见于 ARM1156 核心 ,并于2003年发表。Thumb-2 扩充了受限的 16-bit Thumb 指令集,以额外的 32-bit 指令让指令集的使用更广泛。因此 Thumb-2 的预期目标是要达到近乎 Thumb 的编码密度,但能表现出近乎 ARM 指令集在 32-bit 内存下的效能。Thumb Execution Environment (ThumbEE)
ThumbEE,也就是所谓的Thumb-2EE,,业界称为Jazelle RCT技术,于2005年发表,首见于 Cortex-A8 处理器。ThumbEE 提供从 Thumb-2 而来的一些扩充性,在所处的执行环境(Execution Environment)下,使得指令集能特别适用于执行阶段(Runtime)的编码产生(例如即时编译)。Thumb-2EE 是专为一些语言如 Limbo、Java、C#、Perl 和 Python,并能让 即时编译器 能够输出更小的编译码却不会影响到效能。进阶 SIMD (NEON)
进阶 SIMD 延伸集,业界称为NEON技术,它是一个结合 64 和 128 bit 的 SIMD(Single Instruction Multiple Data 单指令多重数据)指令集,其针对多媒体和讯号处理程式具备标准化加速的能力。NEON 可以在 10 MHz 的 CPU 上执行 MP3 音效解码,且可以执行 13 MHz 频率以下的 GSM AMR (Adaptive Multi-Rate) 语音编码。NEON具有一组广泛的指令集、各自的寄存器阵列,以及独立执行的硬件。NEON 支援 8-, 16-, 32- 和 64-bit 的整数及单精度浮点数据,并以SIMD 的方式运算,执行图形和游戏处理中关于语音/视讯的部分。SIMD 在 向量超级处理机 中是个决定性的要素,它具备同时多项处理功能。在 NEON 技术中,SIMD 最高可支援到同时 16 个运算。VFP
VFP 是在协同处理器针对ARM架构的衍生技术。它提供低成本的单精度和倍精度浮点运算能力,并完全相容于ANSI/IEEE Std 754-1985 二进制浮点算数标准。VFP 提供大多数适用于浮点运算的应用,例如PDA、智慧手机、语音压缩与解压、3D图像以及数位音效、打印机、机上盒,和汽车应用等。VFP 架构也支援 SIMD(单指令多重数据)平行化的短向量指令执行。这在图像和讯号处理等应用上,非常有助于降低编码大小并增加输出效率。安全性扩充 (TrustZone)
TrustZone(TM) 技术出现在 ARMv6KZ 以及较晚期的应用核心架构中。它提供了一种低成本的方案,针对系统单芯片(SoC)内加入专属的安全核心,由硬件建构的存取控制方式支援两颗虚拟的处理器。这个方式可使得应用程式核心能够在两个状态之间切换(通常改称为领域(worlds)以避免和其他功能领域的名称混淆),在此架构下可以避免资讯从较可信的核心领域泄漏至较不安全的领域。这种内核领域之间的切换通常是与处理器其他功能完全无关联性(orthogonal),因此各个领域可以各自独立运作但却仍能使用同一颗内核。内存和周边装置也可因此得知目前内核运作的领域为何,并能针对这个方式来提供对装置的机密和编码进行存取控制。典型的 TrustZone 技术应用是要能在一个缺乏安全性的环境下完整地执行操作系统,并在可信的环境下能有更少的安全性的编码。最近读者: