您好,欢迎访问三七文档
当前位置:首页 > 行业资料 > 其它行业文档 > 第06讲_第4章ARM体系结构 85页-3
嵌入式系统结构与设计基础第6讲合肥工业大学计算机与信息学院史久根2019/8/1合肥工业大学计算机与信息学院2第4章ARM体系结构本章主要介绍以下内容:ARM体系结构版本ARM处理器系列ARM流水线ARM工作模式和工作状态ARM寄存器组织ARM存储器组织ARM的异常中断AMBA和ARM7TDMI2019/8/1合肥工业大学计算机与信息学院3ARM处理器基本特征ARM处理器在设计上沿用了RISC技术的基本特征,但是也放弃了一些RISC设计特征。沿用的有:通用寄存器堆,32位定长指令,Load/Store访问存储器指令和3地址数据运算指令。没有沿用的有:重叠寄存器窗口,延迟转移和单周期指令执行。2001年以后,ARMv6体系结构中增加了60多条SIMD指令集。现在可以认为ARM处理器体系结构以CISC结构为主,兼有RISC的优点。2019/8/1合肥工业大学计算机与信息学院44.1ARM体系结构版本迄今为止主要出现过7个指令集体系结构版本,分别命名为V1-V7。此外还有基于这些体系结构版本的变种版本。目前主要在用的ARM处理器的体系结构是V4、V5、V6和V7。每一个版本都继承了前一个版本的基本设计,指令集向下兼容。2019/8/1合肥工业大学计算机与信息学院5当前在用的ARM核概况目前实际使用的ARM处理器核有二十多种每一种处理器核依据一个体系结构版本设计这些ARM核的共同特点是:字长32位、RISC结构、低功耗、附加16位高密度指令集Thumb获得广泛的嵌入式操作系统支持包括:WindowsCE、PalmOS、SymbianOS、Linux以及其他的主流RTOS含有嵌入式跟踪宏单元ETM(EmbeddedTraceMacro)2019/8/1合肥工业大学计算机与信息学院6体系结构版本V1这种版本在原型机ARM1上实现过,从未用于商用产品。它包含:基本的数据处理指令(不包括乘法);字节、字和多字的加载/存储(load/store)指令;分支(branch)指令,包括设计用于子程序调用的分支与链接指令;软件中断指令SWI。版本V1只有26位寻址空间,现在已废弃不用。2019/8/1合肥工业大学计算机与信息学院7体系结构版本V2增加了这几种指令:乘法和乘加指令;支持协处理器的指令;快速中断模式(FIQ)中额外的2个备份寄存器;SWP指令和SWPB指令。版本V2和它之后的版本V2a仍然只有26位寻址空间,现在已废弃不用。2019/8/1合肥工业大学计算机与信息学院8体系结构版本V3这个体系结构版本将寻址范围扩展到了32位。当前程序状态信息由过去存于R15中移到一个新的当前程序状态寄存器CPSR(CurrentProgramStatusRegister)中。增加了程序状态保存寄存器SPSR(SavedProgramStatusRegisters),以便当异常出现时保留CPSR的内容。增加了2个指令(MRS和MSR),允许访问新的CPSR和SPSR寄存器。2019/8/1合肥工业大学计算机与信息学院9体系结构版本V4对体系结构版本V3进行了扩展,即:半字读取和存储指令;读取带符号的字节和半字数据的指令;增加了高密度指令集Thumb,这样V4体系结构有了T变量;有了在ARM/Thumb状态之间切换的指令;增加了处理器管理模式(SVC模式)。2019/8/1合肥工业大学计算机与信息学院10体系结构版本V5提高了T变量中ARM/Thumb之间切换的效率;让非T变量同T变量一样,使用相同的代码生成技术。增加了一个前导零计数(countleadingzeros)指令,该指令允许更有效的整数除法和中断优先程序;增加了软件断点指令;为协处理器设计者增加了更多可选择指令;对由乘法指令如何设置标志进行了定义。2019/8/1合肥工业大学计算机与信息学院11体系结构版本V6平均取指令和取数据延时减少,因Cache未命中造成的等待时间减少,总的内存管理性能提高达到30%左右;适应多处理器核的需要;增加了SIMD指令集。支持混合端序,能够处理大端序和小端序混合的数据;异常处理和中断处理得以改进,实时任务处理能力增强。2019/8/1合肥工业大学计算机与信息学院12体系结构版本V7扩展了的130条指令的Thumb-2指令集;NEON媒体引擎,该引擎具有分离的单指令多数据(SIMD)执行流水线和寄存器堆,可共享访问L1和L2高速缓存,因此提供了灵活的媒体加速功能并且简化了系统带宽设计;TrustZone技术,可以对电子支付和数字版权管理之类的应用业务提供可靠的安全措施。2019/8/1合肥工业大学计算机与信息学院13ARM处理器的3种指令集ARM指令集32位,低密度指令集Thumb指令集16位,高密度指令集Jazelle指令集8位,Java字节码指令集2019/8/1合肥工业大学计算机与信息学院14ARM指令集和Thumb指令集ARM体系结构版本中带有T变量的ARM处理器核可以工作在2种状态。ARM状态,运行32位的ARM指令集Thumb状态,运行16位的Thumb指令集在任何一种工作状态可以通过转移指令切换到另一种工作状态。ARM和Thumb之间的状态切换不影响处理器工作模式和寄存器中的内容。加电起动时处理器工作在ARM状态。2019/8/1合肥工业大学计算机与信息学院15指令集压缩对于传统的微处理器体系结构,指令和数据具有同样的宽度。与16位体系结构相比,32位体系结构在操纵32位数据时呈显了更高的性能,并可更有效地寻址更大的空间。一般来讲,16位体系结构比32位体系结构具有更高的代码密度,但只有近似一半的性能。Thumb在32位体系结构上实现了16位指令集,以提供:比16位体系结构更高的性能;比32位体系结构更高的代码密度。更加符合工业控制的需要2019/8/1合肥工业大学计算机与信息学院16Thumb指令集Thumb指令集是通常使用的32位ARM指令集的子集。每条Thumb指令是16位长,有相应的对于处理器模型有相同效果的32位ARM指令。Thumb指令在标准的ARM寄存器配置下进行操作,在ARM和Thumb状态之间具有出色的互操作性。执行时,16位Thumb指令透明地实时解压缩成32位ARM指令,且没有性能损失。Thumb具有32位核的所有优点:32位寻址空间;32位寄存器;32位移位器和算术逻辑单元ALU(ArithmeticLogicUnit);32位存储器传送。2019/8/1合肥工业大学计算机与信息学院17Thumb指令集(续)Thumb因而可提供长的转移范围、强大的算术运算能力和大的寻址空间。Thumb代码的长度是ARM代码长度的65%,当从16位存储系统运行时,提供ARM代码160%的性能。Thumb使ARM7TDMI核非常适用于有存储器宽度限制且代码密度为重要的嵌入式应用场合。由于ARM7TDMI具有16位Thumb指令集和32位ARM指令集,这使设计者能根据他们的应用要求在子程序级灵活地强调性能或代码长度。2019/8/1合肥工业大学计算机与信息学院18Jazelle技术Jazelle的特点在于可以直接执行JavaByteCord。它通过在ARM微处理器上增加Jazelle工作模式,使ARM指令和JavaByteCord指令在同一个微处理器上执行。ARM的Jazelle技术使Java加速得到比基于软件的Java虚拟机(JVM)高得多的性能,和同等的非Java加速核相比功耗降低80%。2019/8/1合肥工业大学计算机与信息学院19第3种指令集Jazelle执行8位指令一个软件与硬件的混合体能够加速Java字节码的执行JavaBytecodes为了执行Java字节码,需要Jazelle技术外加一个Java虚拟机的特殊修订版。Jazelle的硬件部分只Java字节码的一个部分,其余由软件仿真。2019/8/1合肥工业大学计算机与信息学院20Jazelle指令集特征CPSR寄存器T=0,J=1硬件完成超过60%的Java字节代码其余由软件完成2019/8/1合肥工业大学计算机与信息学院21ARM体系结构版本变量列表(第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工具使用。2019/8/1合肥工业大学计算机与信息学院22ARM体系结构变量列表(第2种形式)特征说明后缀提高JAVA的运行速度,可以执行JAVA字节码JazelleDSPThumbSoftCore增强性DSP指令,16位乘加指令,饱和的带符号数的加减法,双字数据操作。具有改善代码密度的Thumb指令集Thumb指令集版本1:ARMv4TThumb指令集版本2:ARMv5TThumb-2:ARMv6T可以综合版本(软核),提供VHDL或者Verilog语言的设计文件。JETSDebug在片调试支持D64位增强型乘法器32位乘32位得到64位积MultiplierM内嵌式在线仿真器EmbeddedICEI2019/8/1合肥工业大学计算机与信息学院23ARM核版本命名规则命名规则的字符串表达式如下:ARM{x}{y}{z}{T}{D}{M}{I}{E}{J}{F}{-S}其中花括号的内容表示可有可无。前三个参数含义在下面说明:{x}表示系列号,例如:ARM7,ARM9,ARM10{y}表示内部存储管理和保护单元,例如:ARM72,ARM92{z}表示含有高速缓存(Cache),例如:ARM720,ARM940其余体系结构版本变量已经在前面幻灯片给出。2019/8/1合肥工业大学计算机与信息学院24ARM核版本命名规则(续)说明:①在ARM7TDMI之后出产的所有ARM内核名称,即使“ARM”字串后面没有包含“TDMI”字符串,也都默认包含了该字串。②对于2005年以后ARM公司投入市场的ARMv7体系结构的处理器核,使用字符串“ARMCortex”打头,随后附加一个字母后缀“-A”,“-R”或者“-M”,表示该处理器核适合应用的领域;其中:后缀A表示应用(Application)、R表示实时控制(Realtime)、M表示微控制器(MicroController)。2019/8/1合肥工业大学计算机与信息学院25ARM核与体系结构版本间的关系体系结构版本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-M32019/8/1合肥工业大学计算机与信息学院26ARM体系结构版本详解ARM指令集版本ARM指令集版本3344445Thumb指令集版本无无无无11无长整形乘法指令否是否是否是否是否是是是无222255555ARMv3ARMv3MARMv4x
本文标题:第06讲_第4章ARM体系结构 85页-3
链接地址:https://www.777doc.com/doc-30096 .html