一.ARM体系结构
到目前为止,ARM微处理器体系结构共定义了6个版本。从版本1到版本6,ARM微处理器体系结构的指令集功能不断扩大,同时产生了一些变体,这些变体扩展了不同版本指令集的功能。ARM处理器系列中各种处理器,其采用的实现技术各不相同,性能差别很大,应用的场合也有所不同,但是基于支持相同的ARM体系不同版本的处理器的应用软件是兼容的。
二. ARM体系结构的变体
不同ARM体系结构的特定功能称为ARM体系的变体。到目前为止,主要产生了T变体、M变体、E变体、J变体和SIMD变体。
(1)Thumb指令集(T变体)
(2)长乘法指令(M变体)
M变体增加了两条用于进行长乘法操作的ARM指令。其中一条指令用于实现32位整数乘以32位整数,生成64位整数的长乘法操作;另一条指令用于实现32位整数乘以32位整数,然后加上32位整数,生成64位整数的长乘加操作。
(3)增强型DSP指令(E变体)
E变体包含了一些附加指令,这些指令用于增强处理器对一些典型的DSP算法的处理性能。
(4)Java加速器Jazelle(J变体)
ARM的Jazelle技术将java的优势和先进的32位RISC芯片完美地结合起来。
(5)ARM媒体功能扩展(SIMD变体)
ARM媒体功能扩展为嵌入式应用系统提供了高性能的音频视频处理技术。
还有其他一些方面:
D:表示支持Debug,说明该内核中放置了用于调试的结构,通常它为一个边界扫描链JTAG,可使CPU进入调试模式,从而方便地进行断点设置、单步调试。
I:表示Embedded ICE Logic,用于实现断点观测及变量观测的逻辑电路部分,其中的TAP控制器可接入到边界扫描链。
S:表示可综合的软核softcore。
三ARM处理器系列
ARM处理器当前主要有6个系列产品:ARM7、ARM9、ARM9E、ARM10E、SecurCore 及最新的ARM11 系列。进一步的产品则来自于ARM公司的合作伙伴,如Intel公司的StrongARM产品和XScale微体系结构等,不过Intel公司已经于 2006年将该架构出售给Marvell Technology Group Ltd了。每一个系列都代表了一种实现技术,基本是一种实现的结构,比如有什么寄存器,什么总线,几级流水线。
1.ARM7处理器
ARM7处理器采用了ARMV4T(冯·诺依曼)体系结构,这种体系结构将程序指令存储器和数据存储器合并在 一起。主要特点就是程序和数据共用一个存储空间,程序指令存储地址和数据存储地址指向同一个存储器的不同物理位置,采用单一的地址及数据总线,程序指令和 数据的宽度相同。这样,处理器在执行指令时,必须先从存储器中取出指令进行译码,再取操作数执行运算。总体来说ARM7体系结构具有三级流水、空间统一的 指令与数据Cache、平均功耗为0.6mW/MHz、时钟速度为66MHz、每条指令平均执行1.9个时钟周期等特性。其中的ARM710、 ARM720和ARM740为内带Cache的ARM核。ARM7指令集同Thumb指令集扩展组合在一起,可以减少内存容量和系统成本。同时,它还利用 嵌入式ICE调试技术来简化系统设计,并用一个DSP增强扩展来改进性能。ARM7体系结构是小型、快速、低能耗、集成式的RISC内核结构。该产品的典 型用途是数字蜂窝电话和硬盘驱动器等,目前主流的ARM7内核是ARM7TDMI、ARM7TDMI-S、ARM7EJ-S、ARM720T。现在市场上 用得最多的ARM7处理器有Samsung公司的S3C44BOX与S3C4510处理器、Atmel公司的AT91FR40162系列处理器、 Cirrus公司的EP73xx系列等。通常来说前两三年大部分手机基带部分的应用处理器基本上都以ARM7为主。还有很多的通信模块,如CDMA模块、 GPRS模块和GPS模块中都含有ARM7处理器。
2.ARM9、ARM9E处理器
ARM9处理器采用ARMV4T(哈佛)体系结构。这种体系结构是一种将程序指令存储和数据存储分开的存储器 结构,是一种并行体系结构。其主要特点是程序和数据存储在不同的存储空间中,即程序存储器和数据存储器。它们是两个相互独立的存储器,每个存储器独立编 址、独立访问。与两个存储器相对应的是系统中的4套总线,程序的数据总线和地址总线,数据的数据总线和地址总线。这种分离的程序总线和数据总线可允许在一 个机器周期内同时获取指令字和操作数,从而提高了执行速度,使数据的吞吐量提高了一倍。又由于程序和数据存储器在两个分开的物理空间中,因而取指和执行能 完全重叠。ARM9采用五级流水处理及分离的Cache结构,平均功耗为0.7mW/MHz。时钟速度为120MHz~200MHz,每条指令平均执行 1.5个时钟周期。与ARM7处理器系列相似,其中的ARM920、ARM940和ARM9E处理器均为含有Cache的CPU核,性能为 132MIPS(120MHz时钟,3.3V供电)或220MIPS(200MHz时钟)。ARM9处理器同时也配备Thumb指令扩展、调试和 Harvard总线。在生产工艺相同的情况下,性能是ARM7TDMI处理器的两倍之多。常用于无线设备、仪器仪表、联网设备、机顶盒设备、高端打印机及 数码相机应用中。ARM9E内核是在ARM9内核的基础上增加了紧密耦合存储器TCM及DSP部分。目前主流的ARM9内核是ARM920T、 ARM922T、ARM940。相关的处理器芯片有Samsung公司的S3C2510、Cirrus公司的EP93xx系列等。主流的ARM9E内核是 ARM926EJ-S、ARM946E-S、ARM966E-S等。目前市场上常见的PDA,比如说PocketPC中一般都是用ARM9处理器,其中以 Samsung公司的S3C2410处理器居多。
3.ARM10E处理器
ARM10E处理器采用ARMVST体系结构,可以分为六级流水处理,采用指令与数据分离的Cache结构, 平均功耗1000mW,时钟速度为300MHz,每条指令平均执行1.2个时钟周期。ARM10TDMI与所有ARM核在二进制级代码中兼容,内带高速 32×16 MAC,预留DSP协处理器接口。其中的VFP10(向量浮点单元)为七级流水结构。其中的ARM1020T处理器则是由ARMl0TDMI、32KB指 令、数据Caches及MMU部分构成的。其系统时钟高达300MHz时钟,指令Cache和数据Cache分别为32KB,数据宽度为64位,能够支持 多种商用操作系统,适用于下一代高性能手持式因特网设备及数字式消费类应用。主流的ARM10内核是ARM1020E、ARM1022E、 ARM1026EJ-S等。
4.SecurCore处理器
SecurCore系列处理器提供了基于高性能的32位RISC技术的安全解决方案,该系列处理器具有体积 小、功耗低、代码密度大和性能高等特点。另外最为特别的就是该系列处理器提供了安全解决方案的支持。采用软内核技术,以提供最大限度的灵活性,以及防止外 部对其进行扫描探测,提供面向智能卡的和低成本的存储保护单元MPU,可以灵活地集成用户自己的安全特性和其他的协处理器,目前含有SC100、 SC110、SC200、SC210 4种产品。
5.StrongARM处理器
StrongARM处理器采用ARMV4T的五级流水体系结构。目前有SA110、SA1100、 SA1110等3个版本。另外Intel公司的基于ARMv5TE体系结构的XScale PXA27x系列处理器,与StrongARM相比增加了I/D Cache,并且加入了部分DSP功能,更适合于移动多媒体应用。目前市场上的大部分智能手机的核心处理器就是XScale系列处理器。
6.ARM11处理器
ARM11系列微处理器是ARM公司近年推出的新一代RISC处理器,它是ARM新指令架构——ARMv6的第一代设计实现。该系列主要有ARM1136J,ARM1156T2和ARM1176JZ三个内核型号,分别针对不同应用领域。
ARM11处理器系列可以在使用130nm代工厂技术、小至2.2mm2 芯片面积和低 至0.24mW/MHz的前提下达到高达500MHz的性能表现。ARM11处理器系列以众多消费产品市场为目标,推出了许多新的技术,包括针对媒体处理 的SIMD,用以提高安全性能的TrustZone技术,智能能源管理(IEM),以及需要非常高的、可升级的超过2600 Dhrystone 2.1 MIPS 性能的系统多处理技术。主要的ARM11处理器有ARM1136JF-S、ARM1156T2F-S、ARM1176JZF-S、ARM11 MCORE等多种。
下面对几个ARM处理器内核做了简单的介绍。可以注意到,随着处理器内核技术的发展,处理器的速度越来越快,其主要得益于ARM流水线的技术发展。
这里对各类处理器核的ARM流水线做一下对比,如图1-1所示。
图1‑1 ARM处理器内核流水线
另外按照市场应用,ARM处理器内核大体可以分成如下表的Embedded Core、Application Core、Secure Core 3个部分,如表1-1所示。
表1‑1 ARM处理器分类
处理器内核分类 | 具体的处理器IP核 | 应 用 市 场 |
Embedded Core | ARM7TDMI、ARM946E-S、 ARM926EJ-S | 无线、网络应用、汽车电子 |
Application Core | ARM926EJ-S、ARM1026EJ-S、ARM11 | 消费类市场、多媒体数码产品 |
Secure Core | SC110、SC110、SC200、SC210 | 智能卡、身份识别 |