第4章ARM体系结构本章主要介绍以下内容:ARM体系结构版本ARM处理器系列ARM流水线ARM工作模式和工作状态ARM寄存器组织ARM存储器组织ARM的异常中断AMBA2020/5/28武汉工程大学计算机学院ARM处理器基本特征ARM处理器在设计上沿用了RISC技术的基本特征,但是也放弃了一些RISC设计特征。沿用的有:通用寄存器堆,32位定长指令,Load/Store访问存储器指令和3地址数据运算指令。没有沿用的有:重叠寄存器窗口,延迟转移和单周期指令执行。2001年以后,ARMv6体系结构中增加了60多条SIMD指令集。2020/5/28武汉工程大学计算机学院4.1ARM体系结构版本迄今为止主要出现过7个指令集体系结构版本,分别命名为V1-V7。此外还有基于这些体系结构版本的变种版本。目前主要在用的ARM处理器的体系结构是V4、V5、V6和V7。每一个版本都继承了前一个版本的基本设计,指令集向下兼容。2020/5/28武汉工程大学计算机学院当前在用的ARM核概况目前实际使用的ARM处理器核有二十多种每一种处理器核依据一个体系结构版本设计这些ARM核的共同特点是:字长32位、RISC结构、低功耗、附加16位高密度指令集Thumb获得广泛的嵌入式操作系统支持包括:WindowsCE、PalmOS、SymbianOS、Linux以及其他的主流RTOS含有嵌入式跟踪宏单元ETM(EmbeddedTraceMacro)2020/5/28武汉工程大学计算机学院体系结构版本V3这个体系结构版本将寻址范围扩展到了32位。当前程序状态信息由过去存于R15中移到一个新的当前程序状态寄存器CPSR(CurrentProgramStatusRegister)中。增加了程序状态保存寄存器SPSR(SavedProgramStatusRegisters),以便当异常出现时保留CPSR的内容。增加了2个指令(MRS和MSR),以访问新的CPSR和SPSR寄存器。2020/5/28武汉工程大学计算机学院体系结构版本V4对体系结构版本V3进行了扩展,即:半字读取和存储指令;读取带符号的字节和半字数据的指令;增加了高密度指令集Thumb,这样V4体系结构有了T变量;有了在ARM/Thumb状态之间切换的指令;增加了处理器管理模式(SVC模式)。2020/5/28武汉工程大学计算机学院体系结构版本V5提高了T变量中ARM/Thumb之间切换的效率;增加了一个前导零计数(countleadingzeros)指令,该指令允许更有效的整数除法和中断优先程序;增加了软件断点指令;为协处理器设计者增加了更多可选择指令;对由乘法指令如何设置标志进行了定义。2020/5/28武汉工程大学计算机学院体系结构版本V6平均取指令和取数据延时减少,因Cache未命中造成的等待时间减少,总的内存管理性能提高达到30%左右;适应多处理器核的需要;增加了SIMD指令集。支持混合端序,能够处理大端序和小端序混合的数据;异常处理和中断处理得以改进,实时任务处理能力增强。2020/5/28武汉工程大学计算机学院体系结构版本V7扩展了的130条指令的Thumb-2指令集;NEON媒体引擎,该引擎具有分离的单指令多数据(SIMD)执行流水线和寄存器堆,可共享访问L1和L2高速缓存,因此提供了灵活的媒体加速功能并且简化了系统带宽设计;TrustZone技术,可以对电子支付和数字版权管理之类的应用业务提供可靠的安全措施。2020/5/28武汉工程大学计算机学院ARM处理器的3种指令集ARM指令集32位,低密度指令集Thumb指令集16位,高密度指令集Jazelle指令集8位,Java字节码指令集2020/5/28武汉工程大学计算机学院ARM指令集和Thumb指令集ARM体系结构版本中带有T变量的ARM处理器核可以工作在2种状态。ARM状态,运行32位的ARM指令集Thumb状态,运行16位的Thumb指令集在任何一种工作状态可以通过转移指令切换到另一种工作状态。ARM和Thumb之间的状态切换不影响处理器工作模式和寄存器中的内容。加电起动时处理器工作在ARM状态。2020/5/28武汉工程大学计算机学院指令集压缩对于传统的微处理器体系结构,指令和数据具有同样的宽度。与16位体系结构相比,32位体系结构在操纵32位数据时呈显了更高的性能,并可更有效地寻址更大的空间。一般来讲,16位体系结构比32位体系结构具有更高的代码密度,但只有近似一半的性能。Thumb在32位体系结构上实现了16位指令集,以提供:比16位体系结构更高的性能;比32位体系结构更高的代码密度。更加符合工业控制的需要2020/5/28武汉工程大学计算机学院Thumb指令集Thumb指令集是通常使用的32位ARM指令集的子集。每条Thumb指令是16位长,有相应的对于处理器模型有相同效果的32位ARM指令。Thumb指令在标准的ARM寄存器配置下进行操作,在ARM和Thumb状态之间具有出色的互操作性。执行时,16位Thumb指令透明地实时解压缩成32位ARM指令,且没有性能损失。Thumb具有32位核的所有优点:32位寻址空间;32位寄存器;32位移位器和算术逻辑单元ALU(ArithmeticLogicUnit);32位存储器传送。2020/5/28武汉工程大学计算机学院Jazelle技术Jazelle的特点在于可以直接执行JavaByteCord。它通过在ARM微处理器上增加Jazelle工作模式,使ARM指令和JavaByteCord指令在同一个微处理器上执行。ARM的Jazelle技术使Java加速得到比基于软件的Java虚拟机(JVM)高得多的性能,和同等的非Java加速核相比功耗降低80%。首颗具备Jazelle技术的处理器是ARM926EJ-S2020/5/28武汉工程大学计算机学院第3种指令集Jazelle执行8位指令一个软件与硬件的混合体能够加速Java字节码的执行JavaBytecodes为了执行Java字节码,需要Jazelle技术外加一个Java虚拟机的特殊修订版。Jazelle的硬件部分只负责Java字节码的部分内容,其余由软件仿真。2020/5/28武汉工程大学计算机学院Jazelle指令集特征CPSR寄存器T=0,J=1硬件完成超过60%的Java字节代码其余由软件完成2020/5/28武汉工程大学计算机学院ARM体系结构版本变量列表(第1种形式)后缀变量功能说明TThumb指令集,Thumb指令的长度为16位。目前Thumb有两个版本。Thumb1用于ARM4的T变种,Thumb2用于ARM5以上的T变种。D含JTAG调试器,支持片上调试。M提供用于进行长乘法操作的ARM指令,产生全64位结果。I嵌入式跟踪宏单元(EmbeddedICEmacrocell)硬件部件,提供片上断点和调试点支持。E增强型DSP指令,增加了几条16位乘法和加法指令,加减法指令可以完成饱和带符号算术运算。JJAVA加速器Jazelle,与普通的JAVA虚拟机相比较,Jazelle使Java代码运行速度提高了8倍,而功耗降低了80%。F向量浮点单元S可综合版本,以源代码形式提供的,可以被EDA工具使用。2020/5/28武汉工程大学计算机学院ARM核版本命名规则命名规则的字符串表达式如下:ARM{x}{y}{z}{T}{D}{M}{I}{E}{J}{F}{-S}其中花括号的内容表示可有可无。前三个参数含义在下面说明:{x}表示系列号,例如:ARM7,ARM9,ARM10{y}表示内部存储管理和保护单元,例如:ARM72,ARM92{z}表示含有高速缓存(Cache),例如:ARM720,ARM940其余体系结构版本变量已经在前面幻灯片给出。2020/5/28武汉工程大学计算机学院ARM核版本命名规则(续)说明:①在ARM7TDMI之后出产的所有ARM内核名称,即使“ARM”字串后面没有包含“TDMI”字符串,也都默认包含了该字串。②对于2005年以后ARM公司投入市场的ARMv7体系结构的处理器核,使用字符串“ARMCortex”打头,随后附加一个字母后缀“-A”,“-R”或者“-M”,表示该处理器核适合应用的领域;其中:后缀A表示应用(Application)、R表示实时控制(Realtime)、M表示微控制器(MicroController)。2020/5/28武汉工程大学计算机学院ARM核与体系结构版本间的关系2020/5/28体系结构版本V1V2V2aV3V3V4TV4V4TV5TEV5TE处理器核ARM7TDMI、ARM710T、ARM720T、ARM740TARM1ARM2ARM2aS、ARM3ARM6、ARM600、ARM610ARM7、ARM700、ARM710StrongRAM、ARM8、ARM810ARM9TDMI、ARM920T、ARM940TARM9E-SARM10TDMI、ARM1020EV6ARM11、ARM1156T2-S、ARM1156T2F-SARM11JZF-SV7ARMCortex-A8、ARMCortex-R4、ARMCortex-M3武汉工程大学计算机学院ARM处理器核的3种应用类型处理器核分类硬件特点频率性能功耗典型用途/产品举例应用处理器符号标记:A配备MMU和Cache最快最高合理媒体播放器,产品举例:MP3,机顶盒,iPOD,智能手机,PAD实时控制处理器符号标记:R去除MMU,备有Cache较快合理较低数字信号处理,产品举例:汽车ABS系统,路由器,交换机,航电系统微控制器符号标记:M没有存储子系统,即不含MMU。合理适中极低日常电器控制,产品举例:门禁系统,游戏控制器,家庭网关,洗衣机控制器2020/5/28武汉工程大学计算机学院当前主流ARM处理器核一览表处理器核系列应用处理器实时控制器微控制器ARMCortex系列ARMCortex-A8ARMCortex-R4ARMCortex-M3ARM11系列ARM1136J-SARM1176JZ-SARM1156T2ARM10系列ARM1020EARM1022EARM1026EJ-SARM1026EJ-SARM9系列ARM920TARM922TARM926EJARM946EARM966EARM948EARM7系列ARM720TARM7TDMIARM7EJ-SARM7TDMI2020/5/28武汉工程大学计算机学院4.2ARM处理器系列目前在用的ARM处理器系列主要有6个ARM7ARM9ARM10EARM11SecurCoreCortex2020/5/28武汉工程大学计算机学院ARM7系列处理器特点ARM7系列为低功耗32位核,适用于对价位和功耗敏感的消费类应用。ARM7系列处理器具有以下特点:含有嵌入式ICE-RT逻辑;非常低的功耗;冯·诺依曼结构;MIPS/MHz的三级流水线。2020/5/28武汉工程大学计算机学院ARM7系列处理器特点2020/5/28嵌入式ICE-RTETM7接口ARMv4TARM7核Thumb扩充嵌入式ICE-RTETM7接口ARMv4TARM7核Thumb扩充Thumb扩充嵌入式ICE-RTDSP扩充ETM9接口Jazelle扩充ARMv5TEJARM7核Thumb扩充AHB接口ARMv4TETM7接口嵌入式ICE-RT8KBCacheMMUARM7TDMIrev4整型核ARM7TDMI-Srev4可综合整型核ARM7EJrev1Jazelle使能核ARM720Trev4开放平台处理器核武汉工程大学计算机学院其它ARM7处理器核ARM7TDMI-SARM7TDMI的可综合(synthesizable)版本(软核);最适用于可移植性和灵活性为关键的现代设计。ARM720T全性能的MMU;最适用于低功耗和体