ARM处理器为RISC芯片,其简单的结构使ARM内核非常小,这使得器件的功耗也非常低。它具有经典RISC的特点:
*大的、统一的寄存器文件;*简单的寻址模式;*统一和固定长度的指令域,3地址指令格式,简化了指令的译码。编译开销大,尽可能优化,采用三地址指令格式、较多寄存器和对称的指令格式便于生成优化代码;*单周期操作,ARM指令系统中的指令只需要执行简单的和基本的操作,因此其执行过程在一个机器周期内完成;*固定的32位长度指令,指令格式固定为32位长度,这样使指令译码结构简单,效率提高;*采用指令流水线技术。
3.1.2ARM内核体系结构
ARM架构自诞生至今,已经发生了很大的演变,至今已定义了7种不同的版本:
V1版架构:该架构只在原型机ARM1出现过,其基本性能包括基本的数据处理指令(无乘法)、字节、半字和字的Load/Store指令、转移指令,包括子程序调用及链接指令、软件中断指令、寻址空间64MB。
V2版架构:该版架构对V1版进行了扩展,如ARM2与ARM3(V2a版)架构,增加的功能包括乘法和乘加指令、支持协处理器操作指令、快速中断模式、SWP/SWPB的最基本存储器与寄存器交换指令、寻址空间64MB。
V3版架构:该版对ARM体系结构作了较大的改动,把寻址空间增至32位(4GB),增加了当前程序状态寄存器CPSR和程序状态保存寄存器SPSR以便于异常处理。增加了中止和未定义2种处理器模式。ARM6就采用该版结构。指令集变化包括增加了MRS/MSR指令,以访问新增的CPSR/SPSR寄存器、增加了从异常处理返回的指令功能。
V4版架构:V4版结构是目前最广泛应用的ARM体系结构,对V3版架构进行了进一步扩充,有的还引进了16位的Thumb指令集,使ARM使用更加灵活。ARM7、ARM9和StrongARM都采用了该版结构。其指令集中增加的功能包括符号化和非符号化半字及符号化字节的存/取指令、增加了16位Thumb指令集、完善了软件中断SWI指令的功能、处理器系统模式引进特权方式时使用用户寄存器操作、把一些未使用的指令空间捕捉为未定义指令。
V5版架构:在V4版基础上增加了一些新的指令。ARM10和XScale都采用该版架构。这些新增指令有带有链接和交换的转移BLX指令、计数前导零计数CLZ指令、BRK中断指令、增加了信号处理指令(V5TE版)、为协处理器增加更多可选择的指令。
V7版架构:ARM体系架构V7是2005年发布的。它使用了能够带来更高性能、功耗效率和代码密度的Thumb-2技术。它首次采用了强大的信号处理扩展集,对H.264和MP3等媒体编解码提供加速。Cortex-M3处理器采用的就是V7版的结构。
ARM处理器核使用的体系结构如表3.1所示。
表3.1ARM核心采用的体系结构
3.1.3ARM内核种类
ARM公司开发了很多系列的ARM处理器核,在表3.1中可以看出,目前最新的系列是ARMCortex系列,下面我们将对ARM各内核做简单介绍。
首先介绍一下ARM核的命名规则及含义如图3.2所示。
图3.2ARM核的命名规则及含义
1).ARM7系列
2).ARM9E系列
3).ARM10系列
ARM10E处理器采用ARMVST体系结构,可以分为六级流水处理,采用指令与数据分离的Cache结构,平均功耗1000mW,时钟速度为300MHz,每条指令平均执行1.2个时钟周期。ARM10TDMI与所有ARM核在二进制级代码中兼容,内带高速32×16MAC,预留DSP协处理器接口。其中的VFP10(向量浮点单元)为七级流水结构。其中的ARM1020T处理器则是由ARMl0TDMI、32KB指令、数据Caches及MMU部分构成的。其系统时钟高达300MHz时钟,指令Cache和数据Cache分别为32KB,数据宽度为64位,能够支持多种商用操作系统,适用于下一代高性能手持式因特网设备及数字式消费类应用。主流的ARM10内核是ARM1020E、ARM1022E、ARM1026EJ-S等。
该系列包括ARM1020E和ARM1020E处理器核,其核心在于使用向量浮点(VFP)单元VFP10提供高性能的浮点解决方案,从而极大提高了处理器的整型和浮点运算性能。可以用于视频游戏机和高性能打印机等场合。
4).SecureCore系列
SecurCore系列处理器提供了基于高性能的32位RISC技术的安全解决方案,该系列处理器具有体积小、功耗低、代码密度大和性能高等特点。另外最为特别的就是该系列处理器提供了安全解决方案的支持。采用软内核技术,以提供最大限度的灵活性,以及防止外部对其进行扫描探测,提供面向智能卡的和低成本的存储保护单元MPU,可以灵活地集成用户自己的安全特性和其他的协处理器,目前包括有SC100、SC110、SC200、SC210计4种产品。
5).StrongARM系列和XScale系列
StrongARM处理器采用ARMV4T的五级流水体系结构。目前有SA110、SA1100、SA1110等3个版本以及Intel公司的基于ARMv5TE体系结构的XScalePXA27x系列处理器,与StrongARM相比增加了I/DCache,并且加入了部分DSP功能,更适合于移动多媒体应用。2006年,Intel公司将XScale处理器出售给了Marvell公司。
6).ARM11处理器
ARM11处理器系列可以在使用130nm工艺技术、小至2.2mm2芯片面积和低至0.24mW/MHz的前提下达到高达500MHz的性能表现。ARM11处理器系列以众多消费产品市场为目标,推出了许多新的技术,包括针对媒体处理的SIMD,用以提高安全性能的TrustZone技术,智能能源管理(IEM),以及需要非常高的、可升级的超过2600Dhrystone2.1MIPS性能的系统多处理技术。主要的ARM11处理器有ARM1136JF-S、ARM1156T2F-S、ARM1176JZF-S、ARM11MCORE等多种。
7).ARMCortex系列处理器
ARMCortex系列处理器是基于ARMv7架构,又分为Cortex-M、Cortex-R和Cortex-A三类,ARMCortex系列的三款产品全都集成了Thumb?-2指令集,可满足各种不同的日益增长的市场需求。ARMCortex系列的三款处理器瞄准的领域如下:
*ARMCortex-A系列:针对复杂操作系统以及用户应用设计的应用处理器;*ARMCortex-R系列:实时系统专用嵌入式处理器;*ARMCortex-M系列:针对微控制器和低成本应用专门优化的深嵌入式处理器。
Cortex-M3是首款基于ARMv7-M架构的处理器,是专门瞄准对功耗和成本敏感的嵌入式应用实现高性能而设计的,它大大简化了可编程的复杂性,使ARM架构成为各种应用方案(即使是最简单的方案)的上佳选择。