ARM内核详解 - 作者:白延敏 南京航空航天大学
0赞3.1.1 ARM内核特点
ARM处理器为RISC芯片,其简单的结构使ARM内核非常小,这使得器件的功耗也非常低。它具有经典RISC的特点:
* 大的、统一的寄存器文件;
* 简单的寻址模式;
* 统一和固定长度的指令域,3地址指令格式,简化了指令的译码。编译开销大,尽可能优化,采用三地址指令格式、较多寄存器和对称的指令格式便于生成优化代码;
* 单周期操作,ARM指令系统中的指令只需要执行简单的和基本的操作,因此其执行过程在一个机器周期内完成;
* 固定的32位长度指令,指令格式固定为32位长度,这样使指令译码结构简单,效率提高;
* 采用指令流水线技术。
3.1.2 ARM内核体系结构
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版)、为协处理器增加更多可选择的指令。
V6版架构:ARM体系架构V6是2001年发布的。基本特点包括100%与以前的体系兼容、SIMD媒体扩展,使媒体处理速度快1.75倍、改进了的内存管理,使系统性能提高30%、改进了的混合端(Endian)与不对齐数据支持,使得小端系统支持大端数据(如TCP/IP),许多RTOS是小端的、为实时系统改进了中断响应时间,将最坏情况下的35周期改进到了11个周期。
V7版架构:ARM体系架构V7是2005年发布的。它使用了能够带来更高性能、功耗效率和代码密度的Thumb-2技术。它首次采用了强大的信号处理扩展集,对H.264和MP3等媒体编解码提供加速。Cortex-M3处理器采用的就是V7版的结构。
ARM处理器核使用的体系结构如表3.1所示。
表3.1 ARM核心采用的体系结构
3.1.3 ARM内核种类
在高性能的32位嵌入式片上系统(SoC=System on Chip)设计中,几乎都是以ARM作为处理器核。ARM核已是现在嵌入式SoC系统芯片的核心,也是现代嵌入式系统发展的方向。ARM处理器核作为基本处理单元,根据发展需求还集成了与处理器核密切相关的功能模块,如Cache存储器和存储器管理MMU硬件,这些基于微处理器核并集成这些 IP(Intelligence Property)核的标准配置的ARM核都具有基本处理器的配置,这些内核称为处理器核。基于ARM的处理器核简称ARM核,核并不是芯片,ARM核与其它部件如RAM、ROM、片内外设组合在一起才能构成现实的芯片,例如LPC2290、S3C44B0X、AT91FR40162分别是 Philips(荷兰飞利浦公司)、Samsung(韩国三星公司)、Atmel(美国爱特梅尔公司)基于ARM公司ARM7TMDI核的嵌入式微处理器芯片。
ARM公司开发了很多系列的ARM处理器核,在表3.1中可以看出,目前最新的系列是ARM Cortex系列,下面我们将对ARM各内核做简单介绍。
首先介绍一下ARM核的命名规则及含义如图3.2所示。
图3.2 ARM核的命名规则及含义
1).ARM7系列
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处理器有思智浦公司的LPC2000系列微控制器、Samsung公司的 S3C44BOX与S3C4510处理器、Atmel公司的AT91FR40162系列处理器、Cirrus公司的EP73xx系列等。该系列包括 ARM7TDMI、ARM7TDMI-S、带有高速缓存处理器宏单元的ARM720T和扩充了Jazelle的ARM7EJ-S等。这些处理器提供 Thumb16位压缩指令集和EmbededICE软件调试方式,适用于更大规模的SoC设计中。
ARM7系列广泛应用于多媒体和嵌入式设备,包括互联网设备、网络和调制解调器设备,以及移动电话、PDA等无线设备。
2).ARM9E系列
ARM9处理器采用ARMV4T(哈佛)体系结构。这种体系结构由于程序和数据存储器在两个分开的物理空间中,因而取指和执行能完全重叠。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等。
3).ARM10系列
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等。
该系列包括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体系结构的XScale PXA27x系列处理器,与StrongARM相比增加了I/D Cache,并且加入了部分DSP功能,更适合于移动多媒体应用。2006年,Intel公司将XScale处理器出售给了Marvell公司。
6).ARM11处理器
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等多种。
7).ARM Cortex系列处理器
ARM Cortex系列处理器是基于ARMv7架构,又分为Cortex-M、Cortex-R和Cortex-A三类,ARM Cortex系列的三款产品全都集成了Thumb®-2指令集,可满足各种不同的日益增长的市场需求。ARM Cortex系列的三款处理器瞄准的领域如下:
* ARM Cortex-A系列:针对复杂操作系统以及用户应用设计的应用处理器;
* ARM Cortex-R系列:实时系统专用嵌入式处理器;
* ARM Cortex-M系列:针对微控制器和低成本应用专门优化的深嵌入式处理器。
Cortex-M3是首款基于ARMv7-M架构的处理器,是专门瞄准对功耗和成本敏感的嵌入式应用实现高性能而设计的,它大大简化了可编程的复杂性,使 ARM架构成为各种应用方案(即使是最简单的方案)的上佳选择。