版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
ARM处理器基本特征ARM处理器在设计上沿用了RISC技术的基本特征,但是也放弃了一些RISC设计特征。沿用的有:通用寄存器堆,32位定长指令,Load/Store访问存储器指令和3地址数据运算指令。没有沿用的有:重叠寄存器窗口,延迟转移和单周期指令执行。2001年以后,ARMv6体系结构中增加了60多条SIMD指令集。2026/4/20武汉工程大学计算机学院4.1ARM体系结构版本迄今为止主要出现过7个指令集体系结构版本,分别命名为V1-V7。此外还有基于这些体系结构版本的变种版本。目前主要在用的ARM处理器的体系结构是V4、V5、V6和V7。每一个版本都继承了前一个版本的基本设计,指令集向下兼容。2026/4/20武汉工程大学计算机学院当前在用的ARM核概况目前实际使用的ARM处理器核有二十多种每一种处理器核依据一个体系结构版本设计这些ARM核的共同特点是:字长32位、RISC结构、低功耗、附加16位高密度指令集Thumb获得广泛的嵌入式操作系统支持包括:WindowsCE、PalmOS、SymbianOS、Linux以及其他的主流RTOS含有嵌入式跟踪宏单元ETM(EmbeddedTraceMacro)2026/4/20武汉工程大学计算机学院体系结构版本V1这种版本在原型机ARM1上实现过,从未用于商用产品。它包含:基本的数据处理指令(不包括乘法);字节、字和多字的加载/存储(load/store)指令;分支(branch)指令,包括设计用于子程序调用的分支与链接指令;软件中断指令SWI。版本V1只有26位寻址空间,现在已废弃不用。2026/4/20武汉工程大学计算机学院体系结构版本V2增加了这几种指令:乘法和乘加指令;支持协处理器的指令;快速中断模式(FIQ)中额外的2个备份寄存器;SWP指令和SWPB指令。版本V2和它之后的版本V2a仍然只有26位寻址空间,现在已废弃不用。2026/4/20武汉工程大学计算机学院体系结构版本V3这个体系结构版本将寻址范围扩展到了32位。当前程序状态信息由过去存于R15中移到一个新的当前程序状态寄存器CPSR(CurrentProgramStatusRegister)中。增加了程序状态保存寄存器SPSR(SavedProgramStatusRegisters),以便当异常出现时保留CPSR的内容。增加了2个指令(MRS和MSR),以访问新的CPSR和SPSR寄存器。2026/4/20武汉工程大学计算机学院体系结构版本V4对体系结构版本V3进行了扩展,即:半字读取和存储指令;读取带符号的字节和半字数据的指令;增加了高密度指令集Thumb,这样V4体系结构有了T变量;有了在ARM/Thumb状态之间切换的指令;增加了处理器管理模式(SVC模式)。2026/4/20武汉工程大学计算机学院体系结构版本V5提高了T变量中ARM/Thumb之间切换的效率;增加了一个前导零计数(countleadingzeros)指令,该指令允许更有效的整数除法和中断优先程序;增加了软件断点指令;为协处理器设计者增加了更多可选择指令;对由乘法指令如何设置标志进行了定义。2026/4/20武汉工程大学计算机学院体系结构版本V6平均取指令和取数据延时减少,因Cache未命中造成的等待时间减少,总的内存管理性能提高达到30%左右;适应多处理器核的需要;增加了SIMD指令集。支持混合端序,能够处理大端序和小端序混合的数据;异常处理和中断处理得以改进,实时任务处理能力增强。2026/4/20武汉工程大学计算机学院体系结构版本V7扩展了的130条指令的Thumb-2指令集;NEON媒体引擎,该引擎具有分离的单指令多数据(SIMD)执行流水线和寄存器堆,可共享访问L1和L2高速缓存,因此提供了灵活的媒体加速功能并且简化了系统带宽设计;TrustZone技术,可以对电子支付和数字版权管理之类的应用业务提供可靠的安全措施。2026/4/20武汉工程大学计算机学院ARM处理器的3种指令集ARM指令集32位,低密度指令集Thumb指令集16位,高密度指令集Jazelle指令集8位,Java字节码指令集2026/4/20武汉工程大学计算机学院ARM指令集和Thumb指令集ARM体系结构版本中带有T变量的ARM处理器核可以工作在2种状态。ARM状态,运行32位的ARM指令集Thumb状态,运行16位的Thumb指令集在任何一种工作状态可以通过转移指令切换到另一种工作状态。ARM和Thumb之间的状态切换不影响处理器工作模式和寄存器中的内容。加电起动时处理器工作在ARM状态。2026/4/20武汉工程大学计算机学院指令集压缩对于传统的微处理器体系结构,指令和数据具有同样的宽度。与16位体系结构相比,32位体系结构在操纵32位数据时呈显了更高的性能,并可更有效地寻址更大的空间。一般来讲,16位体系结构比32位体系结构具有更高的代码密度,但只有近似一半的性能。Thumb在32位体系结构上实现了16位指令集,以提供:比16位体系结构更高的性能;比32位体系结构更高的代码密度。更加符合工业控制的需要2026/4/20武汉工程大学计算机学院Thumb指令集Thumb指令集是通常使用的32位ARM指令集的子集。每条Thumb指令是16位长,有相应的对于处理器模型有相同效果的32位ARM指令。Thumb指令在标准的ARM寄存器配置下进行操作,在ARM和Thumb状态之间具有出色的互操作性。执行时,16位Thumb指令透明地实时解压缩成32位ARM指令,且没有性能损失。Thumb具有32位核的所有优点:32位寻址空间;32位寄存器;32位移位器和算术逻辑单元ALU(ArithmeticLogicUnit);32位存储器传送。2026/4/20武汉工程大学计算机学院Thumb指令集(续)Thumb因而可提供长的转移范围、强大的算术运算能力和大的寻址空间。Thumb代码的长度是ARM代码长度的65%,当从16位存储系统运行时,提供ARM代码160%的性能。Thumb使ARM7TDMI核非常适用于有存储器宽度限制且代码密度为重要的嵌入式应用场合。由于ARM7TDMI具有16位Thumb指令集和32位ARM指令集,这使设计者能根据他们的应用要求在子程序级灵活地强调性能或代码长度。2026/4/20武汉工程大学计算机学院Jazelle技术Jazelle的特点在于可以直接执行JavaByteCord。它通过在ARM微处理器上增加Jazelle工作模式,使ARM指令和JavaByteCord指令在同一个微处理器上执行。ARM的Jazelle技术使Java加速得到比基于软件的Java虚拟机(JVM)高得多的性能,和同等的非Java加速核相比功耗降低80%。首颗具备Jazelle技术的处理器是ARM926EJ-S2026/4/20武汉工程大学计算机学院第3种指令集Jazelle执行8位指令一个软件与硬件的混合体能够加速Java字节码的执行JavaBytecodes为了执行Java字节码,需要Jazelle技术外加一个Java虚拟机的特殊修订版。Jazelle的硬件部分只负责Java字节码的部分内容,其余由软件仿真。2026/4/20武汉工程大学计算机学院Jazelle指令集特征CPSR寄存器T=0,J=1硬件完成超过60%的Java字节代码其余由软件完成2026/4/20武汉工程大学计算机学院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工具使用。2026/4/20武汉工程大学计算机学院ARM体系结构变量列表
(第2种形式)2026/4/20武汉工程大学计算机学院ARM核版本命名规则命名规则的字符串表达式如下:ARM{x}{y}{z}{T}{D}{M}{I}{E}{J}{F}{-S}其中花括号的内容表示可有可无。前三个参数含义在下面说明:{x}表示系列号,例如:ARM7,ARM9,ARM10{y}表示内部存储管理和保护单元,例如:ARM72,ARM92{z}表示含有高速缓存(Cache),例如:ARM720,ARM940其余体系结构版本变量已经在前面幻灯片给出。2026/4/20武汉工程大学计算机学院ARM核版本命名规则(续)说明:①在ARM7TDMI之后出产的所有ARM内核名称,即使“ARM”字串后面没有包含“TDMI”字符串,也都默认包含了该字串。②对于2005年以后ARM公司投入市场的ARMv7体系结构的处理器核,使用字符串“ARMCortex”打头,随后附加一个字母后缀“-A”,“-R”或者“-M”,表示该处理器核适合应用的领域; 其中:后缀A表示应用(Application)、R表示实时控制(Realtime)、M表示微控制器(MicroController)。2026/4/20武汉工程大学计算机学院ARM核与体系结构版本间的关系2026/4/20武汉工程大学计算机学院ARM体系结构版本详解2026/4/20武汉工程大学计算机学院ARM处理器核的3种应用类型处理器核分类硬件特点频率性能功耗典型用途/产品举例应用处理器符号标记:A配备MMU和Cache最快最高合理媒体播放器,产品举例:MP3,机顶盒,iPOD,智能手机,PAD实时控制处理器符号标记:R去除MMU,备有Cache较快合理较低数字信号处理,产品举例:汽车ABS系统,路由器,交换机,航电系统微控制器符号标记:M没有存储子系统,即不含MMU。合理适中极低日常电器控制,产品举例:门禁系统,游戏控制器,家庭网关,洗衣机控制器2026/4/20武汉工程大学计算机学院当前主流ARM处理器核一览表处理器核系列应用处理器实时控制器微控制器ARMCortex系列ARMCortex-A8ARMCortex-R4ARMCortex-M3ARM11系列ARM1136J-SARM1176JZ-SARM1156T2ARM10系列ARM1020EARM1022EARM1026EJ-SARM1026EJ-SARM9系列ARM920TARM922TARM926EJARM946EARM966EARM948EARM7系列ARM720TARM7TDMIARM7EJ-SARM7TDMI2026/4/20武汉工程大学计算机学院4.2ARM处理器系列目前在用的ARM处理器系列主要有6个ARM7ARM9ARM10EARM11SecurCoreCortex2026/4/20武汉工程大学计算机学院ARM7系列处理器特点ARM7系列为低功耗32位核,适用于对价位和功耗敏感的消费类应用。ARM7系列处理器具有以下特点:含有嵌入式ICE-RT逻辑;非常低的功耗;冯·诺依曼结构;MIPS/MHz的三级流水线。2026/4/20武汉工程大学计算机学院ARM7系列处理器特点2026/4/20武汉工程大学计算机学院其它ARM7处理器核ARM7TDMI-SARM7TDMI的可综合(synthesizable)版本(软核);最适用于可移植性和灵活性为关键的现代设计。ARM720T全性能的MMU;最适用于低功耗和体积为关键的应用。ARM7EJARM7EJ是Jazelle和DSP指令集的最小及最低功耗的实现。2026/4/20武汉工程大学计算机学院ARM7TDMI内核产品举例ARM7TDMI是一个经典的ARM内核体系结构版本是ARMv4T列出4个基于ARM7TDMI核制造的嵌入式处理器S3C44B0X,三星公司生产SEP3203,东南大学集成电路研究所AT91SAM7,Atmel公司LPC2114,飞利浦公司2026/4/20武汉工程大学计算机学院ARM9系列处理器ARM9系列是高性能和低功耗特性方面最佳的硬宏单元。它具有:5级流水线提供1.1MIPS/MHz的哈佛结构处理能力ARM9主要应用领域先进的引擎管理 #网络电脑仪器仪表 #智能电话安全系统 #机顶盒高端打印机 #PDA2026/4/20武汉工程大学计算机学院ARM9系列处理器的组成2026/4/20武汉工程大学计算机学院ARM9系列处理器特点ARM920T和ARM922T全性能的MMU;指令和数据Cache;高速AMBA基于总线的接口:AMBA片上总线是一个已建立的、用于SOC设计框架的开放标准。ARM940T保护单元;指令和数据Cache;高速AMBA基于总线的接口2026/4/20武汉工程大学计算机学院ARM9E系列ARM9E系列为可综合处理器具有以下特点:DSP扩充;嵌入式ICE-RT调试逻辑;提供1.1MIPS/MHz的5级流水线和哈佛结构;紧耦合存储器(TCM)接口,可使存储器以最高的处理器速度运转,可直接连接到内核上,非常适用于必须有确定性能和快速访问时间的代码。2026/4/20武汉工程大学计算机学院ARM9E的组成2026/4/20武汉工程大学计算机学院ARM9E系列处理器特点ARM966E-S最适用于硅片面积为关键而对Cache无要求的实时嵌入式应用;可配置的TCM大小:0KB、4KB、8KB、16KB,可高达64MB。ARM946E-S集成的保护单元,提供实时嵌入式操作系统的Cache核方案。每个配置的Cache大小为:0KB、4KB、8KB、16KB,高达1MB。2026/4/20TCM是紧密耦合存储器的缩略语多处理器阵列上使用武汉工程大学计算机学院紧耦合存储器在ARMV6处理器
存储系统模型中的位置2026/4/20武汉工程大学计算机学院ARM9E系列处理器的特点ARM926EJ-SJazelle扩充;每个可配置的Cache大小:4KB、8KB、16KB,高达128KB;分立的指令和数据高速AHB接口;全性能的MMU主要智能手机,3G手机和媒体播放器使用的处理器均采用ARM926EJ-S核。2026/4/20武汉工程大学计算机学院ARM10系列处理器ARM10系列为硬宏单元,具有如下特点:DSP扩展;嵌入式ICE-RT;全性能MMU;Cache;对于指令和数据,64位AHB接口;6级流水线;内部64位数据通路;1.25MIPS/MHz;在实际应用中,与同等ARM9器件相比,在同样的时钟速度下,性能提高了50%。2026/4/20武汉工程大学计算机学院ARM10系列处理器的组成2026/4/20武汉工程大学计算机学院SecurCoreSC100系列SecurCoreSC100系列专为安全需要而设计具有特定的抗窜改(resisttampering)和反工程(reverseengineering)特性;带有灵活的保护单元,以确保操作系统和应用数据的安全。2026/4/20武汉工程大学计算机学院ARM11系列处理器ARM11核是2001年10月公布的V6体系结构版本的第1个实现,具有以下特点:主频:350-500MHz工艺:0.13微米功耗:0.4mW/Mhz电压:1.2V8级标量流水线64位数据通路2026/4/20武汉工程大学计算机学院掌握ARM处理器的注意点初学者要弄清楚三个基本概念ARM体系结构版本ARM公司规定,长期使用ARM处理器核型号ARM公司规定,中期使用ARM处理器型号多个公司生产,各个公司自行规定2026/4/20武汉工程大学计算机学院ARMCortex核系列处理器目前已经有了四个ARMCortex内核Cortex-A8、Cortex-M4、Cortex-R4和Cortex-R4F特点:先进3级流水线、哈佛结构、ARMv7指令集、灵活的可配置功能(可以在整合阶段对Cache、TCM和MPU进行配置)、分支预测、单周期乘法、硬件除法器、峰值运算速度达到1.25DMPIS/MHZ(Dhrystone测试基准)、新的Thumb-2指令集。A系列针对高端的复杂操作系统以及用户应用设计的应用处理器;R系列针对系统专用嵌入式处理器;M系列针对微控制器和低成本应用专门优化的深嵌入式处理器2026/4/20武汉工程大学计算机学院ARMCortex处理器举例ARMCortex-A8ARMCortex-M3ARMCortex-R42026/4/20武汉工程大学计算机学院ARMCortex系列处理器TheARMCortexfamilycomprisesthreeseries,allimplementtheThumb-2instructionset.ARMCortex-ASeriesapplicationsprocessorsforcomplexOSanduserapplications.SupportstheARM,ThumbandThumb-2instructionsetsARMCortex-RSeriesembeddedprocessorsforreal-timesystems.SupportstheARM,Thumb,andThumb-2instructionsetsARMCortex-MSeriesdeeplyembeddedprocessorsoptimizedforcostsensitiveapplications.SupportstheThumb-2instructionsetonly2026/4/20武汉工程大学计算机学院ARMCortex-A8简介TheARMCortex-A8processoristhefirstapplicationsprocessorbasedontheARMv7architectureandisthehighestperformance,mostpower-efficientprocessoreverdevelopedbyARM.Withtheabilitytoscaleinspeedfrom600MHztogreaterthan1GHz,theCortex-A8processorcanmeettherequirementsforpower-optimizedmobiledevicesneedingoperationinlessthan300mW;andperformance-optimizedconsumerapplicationsrequiring2000DhrystoneMIPS.2026/4/20武汉工程大学计算机学院ARMCortex-A8简介(续)TheCortex-A8processorisARM’sfirstsuperscalarprocessorfeaturingtechnologyforenhancedcodedensityandperformance,NEONtechnologyformultimediaandsignalprocessing,andJazelleRCT(RuntimeCompilationTarget)technologyforefficientsupportofahead-of-timeandjust-in-timecompilationofJavaandotherbytecodelanguages.2026/4/20武汉工程大学计算机学院TI公司的OMAP3430处理器架构图2026/4/20武汉工程大学计算机学院Cortex-A8内核的应用举例
——TI公司的OMAP3430处理器业界第一个具有先进的超级标量Cortex-A8内核的处理器业界第一个采用65nmCMOS工艺技术设计的ARM处理器,提高了处理性能集成的图像信号处理器(ISP)可提供更快、更高品质的图像捕捉功能,并且可以降低系统成本复合视频和S端子TV输出XGA(1024x768像素)、16M色(24位定义)显示支持高速USB2.0OTG支持2026/4/20武汉工程大学计算机学院Cortex-M3内核的应用举例
——意法半导体的STM32微控制器不支持ARM指令集,只支持Thumb-2指令集中断向量表与其他ARM处理器有明显区别STM32微控制器有两个系列STM32F103“增强型”系列,72MHz主频STM32F101“基本型”系列,36MHz主频2.0到3.6V电源,当复位电路工作时,在待机模式下最低功耗2μA,最适合电池供电的应用设备。比同级别的基于ARM7TDMI的产品快30%。换句话说,如果处理性能相同,STM32产品功耗比同级别产品低75%。2026/4/20武汉工程大学计算机学院4.3ARM流水线计算机指令执行过程的各个阶段相对独立,因此CPU内部的指令译码执行逻辑电路可以设计成分级的处理部件,实行流水处理,即流水线方式。流水线技术大大加快了处理器的指令执行速度,因此现代CPU设计方案中几乎都采用了流水线技术。ARM处理器设计也不例外。所有的ARM处理器核都使用了流水线设计。2026/4/20武汉工程大学计算机学院ARM7流水线ARM7TDMI核使用3级指令流水线。ARM7处理器核的指令执行分为3个阶段:取指、译码和执行。<1>取指,由取指部件处理,把指令从内存中取出,放入指令流水线;<2>译码,指令被译码。在这一级指令占有译码逻辑,不占有数据通路;<3>执行,执行流水线中已经被译码的指令,在这一级,指令占有数据通路,移位操作,读通用寄存器,ALU产生结果,写通用寄存器。2026/4/20武汉工程大学计算机学院ARM7流水线架构图2026/4/20武汉工程大学计算机学院ARM9流水线ARM9TDMI采用了5级流水线。这5个指令执行阶段的功能如下:<1>取指,从指令存储器中读取指令,放入指令流水线。<2>译码,对指令进行译码,从通用寄存器组中读取操作数。由于寄存器组有3个读端口,大多数ARM指令能在一个时钟周期内读取其操作数。2026/4/20武汉工程大学计算机学院ARM9流水线(续)<3>执行,将其中的一个操作数移位,并在ALU中产生结果。如果指令是Load或Store指令,则在ALU中计算存储器的地址。<4>数据缓冲,如果需要,则访问数据存储器;否则,ALU只是简单地缓冲一个时钟周期,以便使所有指令具有同样的流水线流程。<5>写回,将指令的结果写回到寄存器组。包括任何从存储器读取的数据。2026/4/20武汉工程大学计算机学院ARM9流水线架构图2026/4/20武汉工程大学计算机学院ARM10和ARM11流水线ARM10流水线为6级流水线ARM11流水线为8级流水线2026/4/20武汉工程大学计算机学院Cortex-R4流水线Cortex-R4处理器的流水线为8级,参看下图。其特点是双发射指令流水线,含动态分支预测,执行速度达到1.6MIPS/MHz(Dhrystone基准测试程序)。其中前3级是指令预取单元PFU,包括第1阶段取指,第2阶段取指和译码。2026/4/20武汉工程大学计算机学院4.4ARM工作模式和工作状态异常指计算机脱离正常的运算顺序,临时改变原先的执行顺序,转而执行一个子程序,完成一个预先准备的特殊服务例程。中断ARM公司对异常处理一律用中断服务子程序处理。这样,在概念上ARM处理器不再区分异常和中断,异常处理与中断处理相同。2026/4/20武汉工程大学计算机学院ARM5种异常工作模式ARM处理器内部安排了5种异常工作模式。ABT(取指中止或者取操作数中止)UND(进入未定义指令陷阱)IRQ(普通中断)FIQ(快速中断)SVC(管理)2026/4/20武汉工程大学计算机学院ARM处理器工作模式ARM处理器支持7种工作模式用户模式特点:不能访问某些受操作系统保护的资源,也不能改变工作模式。6种特权模式分类:系统模式,5种异常模式特点:能访问全部资源,能改变工作模式。2026/4/20武汉工程大学计算机学院ARM处理器工作模式2026/4/20武汉工程大学计算机学院模式使用说明(1)SVC模式是操作系统内核代码运行的模式,USR模式通常是用户代码运行模式。处理器一旦进入USR模式,必须通过SWI指令(理解为软中断)才能进入SVC模式调用内核代码的接口。但是,在没有MMU进行内存保护的场合,USR模式也能够访问到SVC模式的内存空间,因此使用USR隔离用户级代码没有意义。2026/4/20武汉工程大学计算机学院模式使用说明(2)IRQ和FIQ模式是微处理器收到中断信号后强制处理器进入的模式,用于中断处理。SYS模式用于嵌套中断处理。2026/4/20武汉工程大学计算机学院模式使用说明(3)ABT和UND模式是真正意义上的“异常”,一旦出现就要进入对应的异常中断服务子程序进行处理。2026/4/20武汉工程大学计算机学院ARM处理器工作状态ARM体系结构版本中带有T变量的ARM处理器核可以工作在2种状态。⑴ARM状态,机器指令为32位的ARM指令集,字对齐取指执行ARM指令。⑵Thumb状态,机器指令为16位的Thumb指令集,半字对齐取指执行Thumb指令。在任何一种工作状态可以通过转移指令切换到另一种工作状态。ARM和Thumb之间的状态切换不影响处理器工作模式和寄存器中的内容。加电起动时处理器工作在ARM状态。2026/4/20武汉工程大学计算机学院两种工作状态之间切换进入Thumb状态当操作数寄存器的状态位(位[0])为1时,执行BX指令进入Thumb状态。如果处理器在Thumb状态进入异常,则当异常处理(IRQ、FIQ、Undef、Abort和SWI)返回时,自动转换到Thumb状态。进入ARM状态当操作数寄存器的状态位(位[0])为0时,执行BX指令进入ARM状态。处理器进行异常处理(IRQ、FIQ、Reset、Undef、Abort和SWI)。在此情况下,把PC放入异常模式链接寄存器中。从异常向量地址开始执行也可以进入ARM状态。2026/4/20武汉工程大学计算机学院工作状态切换方法使用BX指令可以将ARM7TDMI(-S)内核的工作状态在ARM状态和Thumb状态之间进行切换。参看下例:;从ARM状态转变为Thumb状态
LDR R0,=Lable+1 BX R0;从Thumb状态转变为ARM状态
LDR R0,=Lable BX R02026/4/20武汉工程大学计算机学院4.5ARM寄存器组织ARM处理器总共有37个32位寄存器,其中有31个通用寄存器,6个状态寄存器(到目前为止只定义了12位)。这些寄存器按照工作模式分成不同的组。编程时哪些寄存器组可用,哪些寄存器组不可用,由处理器的状态和模式决定。下表示出了ARM工作状态下每一种模式下使用的寄存器组。2026/4/20武汉工程大学计算机学院ARM寄存器组织2026/4/20武汉工程大学计算机学院影子寄存器在ARM寄存器组织表中带有阴影色块的寄存器称为影子寄存器,它们是为处理器不同工作模式配备的专用物理寄存器。在异常模式下,它们将代替用户或者系统模式下使用的部分寄存器。在管理、中止、未定义和普通中断模式下,影子寄存器的数量均为2个。而快速中断为7个。2026/4/20武汉工程大学计算机学院ATPCS命名规则ATPCS是集成开发环境ADS中规定的子程序之间调用的基本规则。在该规则中对ARM处理器中的寄存器给出了命名规则。程序员在编程时使用ATPCS规定的寄存器名称可以方便记忆,提高工作效率,减少差错。2026/4/20武汉工程大学计算机学院ARM寄存器的使用规则(1)子程序间通过寄存器R0~R3来传递参数。这时,寄存器R0~R3可记作a0~a3。被调用的子程序在返回前无需恢复寄存器R0~R3的内容。在子程序中,使用寄存器R4~R11来保存局部变量。这时,寄存器R4~R11可以记作v1~v8。如果在子程序中使用了寄存器v1~v8中的某些寄存器,则子程序进入时必须保存这些寄存器的值,在返回前必须恢复这些寄存器的值。在Thumb程序中,通常只能使用寄存器R4~R7来保存局部变量。2026/4/20武汉工程大学计算机学院ARM寄存器的使用规则(2)寄存器R12用作过程调用中间临时寄存器,记作IP。新的编译器版本在子程序之间的连接代码段中常常有这种使用规则。寄存器R13用作堆栈指针,记作SP。在子程序中寄存器R13不能用作其他用途。寄存器SP在进人子程序时的值和退出子程序时的值必须相等。寄存器R14称为连接寄存器,记作LR。它用于保存子程序的返回地址。如果在子程序中保存了返回地址,寄存器R14则可以用作其他用途。寄存器R15是程序计数器,记作PC。它不能用作其它用途。2026/4/20武汉工程大学计算机学院AAPCS标准2007年ARM公司正式推出了AAPCS标准,它是ATPCS的改进版。实际上,有关程序设计中的过程调用,ARM公司为ARM处理器先后建立了4个标准,参看下表。2026/4/20武汉工程大学计算机学院ARM过程调用标准ATPCS和AAPCS缩略语全称使用状况AAPCSProcedureCallStandardfortheARMArchitecture正在使用ATPCSARM-ThumbProcedureCallStandard被更新,在用APCSARMProcedureCallStandard停止使用TPCSThumbProcedureCallStandard停止使用2026/4/20武汉工程大学计算机学院2026/4/204.6ARM存储器组织介绍以下内容:数据类型和存储格式ARM的存储体系片上存储器的用法 协处理器CP15存储器管理单元MMU保护单元快速上下文切换扩展写缓存器(WriteBuffer)ARM的异常中断向量表和异常中断处理与返回武汉工程大学计算机学院2026/4/204.6.1数据类型和存储格式ARM存储器中的数据类型有6种有符号数8位(字节)、16位(半字)、32位(字)无符号数8位(字节)、16位(半字)、32位(字)缺省端序设置为小端序武汉工程大学计算机学院2026/4/204.6.2ARM的存储体系参看下图,抽象成一个呈金字塔型的存储结构武汉工程大学计算机学院2026/4/204.6.3片上存储器的用法多数ARM处理器芯片内部集成了存储器它们统称为片上存储器用途有:片上Cache、片上SRAM、紧耦合存储器(TCM)、写缓存片上存储器的存储空间可以通过指令进行配置,定义成片上Cache,或者片上SRAM,或者一部分片上Cache加一部分片上SRAM。紧耦合存储器和写缓存均需要编程使能或者硬件接线使能按照具体应用情况决定片上存储器配置方法武汉工程大学计算机学院2026/4/20片上存储器用作紧耦合存储器紧耦合存储器的英文原文如下:TightlyCoupledMemory,TCM弥补Cache访问的不确定性而增加的片上存储器。除了片上紧耦合存储器外,还有紧耦合存储器接口,它能够提供低延时的外存储器访问。有的处理器含有分立的指令TCM和数据TCM。TCM包含在存储器地址映射空间中,可以作为快速存储器来访问。除了不得包含读敏感地址之外,对TCM接口上连接的存储器类型没有其他限制。TCM使用物理地址,对TCM的写访问受到MMU内部保护信息的控制。武汉工程大学计算机学院2026/4/20TCM在ARMv6处理器核的位置ARMv6处理器包括:ARM1136J-S、ARM1156T2武汉工程大学计算机学院2026/4/20片内TCM存储器举例ARM926EJ-S核心内置32KB指令缓存、16KB数字缓存和8KB数据-TCM和8KB指令-TCM;武汉工程大学计算机学院2026/4/20Cortex-R4F方框图—含TCM接口注意图的右侧含有一个TCM仲裁和接口模块武汉工程大学计算机学院2026/4/20ARM1136的TCM支持DMA传输参看ARM1136的方框图武汉工程大学计算机学院2026/4/20ARM966E-S核的TCM地址映射武汉工程大学计算机学院2026/4/20ARM966E-S的TCM别名地址空间物理存储块可以通过TCM接口映射在片内的TCM存储区武汉工程大学计算机学院2026/4/20TCM特点TCM是一个固定大小的RAM,紧密地耦合至处理器内核,提供与Cache相当的性能,相比于Cache的优点是:程序代码可以精确地控制什么函数或代码放在那儿(RAM里)。当然TCM永远不会被踢出主存储器,因此,他会有一个被用户预设的性能,而不是象Cache那样是统计特性的性能提高。
武汉工程大学计算机学院2026/4/20TCM特点(续1)
TCM对于以下几种情况的代码是非常有用:可预见的实时处理(中断处理)、时间可预见(加密算法)、避免cache分析(加密算法)、或者只是要求高性能的代码(编解码功能)。随着cache大小的增加以及总线性能的规模,TCM将会变得越来越不重要,但是他提供了一个让你权衡的机会。
武汉工程大学计算机学院2026/4/20TCM特点(续2)那么,哪一个更好呢?他取决于你的应用。Cache是一个通用目的的加速器,它会加速你的所有代码,而不依赖于存储方式。TCM只会加速你有意放入TCM的代码,其余的其他代码只能通过cache加速。Cache是一个通用目的解决方案,TCM在某些特殊情况下是非常有用的。假如你不认为需要TCM的话,那么你可能就不需要了,转而加大你的Cache,从而加速运行于内核上的所有软件代码武汉工程大学计算机学院2026/4/20AT91SAM9261处理器的TCMAT91SAM9261的独立指令和数据缓存能支持WinCE和Linux操作系统。而其基于TCM构架的SRAM区块则是“确定过程式”实时操作系统的理想安排。另一方面,160K字节的片上SRAM可划分成多个16K字节的区块,作为“指令TCM”、“数据TCM”或片上外设的缓冲,从而让编程人员灵活地优化系统的性能和功耗。武汉工程大学计算机学院2026/4/20TCM的使能操作通过二种方式进行TCM的使能操作使用处理器芯片的INITRAM引脚使用CP15的c1控制寄存器武汉工程大学计算机学院2026/4/20S3C44B0X和S3C4510B的三种片上存储器的配置用法S3C44B0X和S3C4510B都有8KB的片上存储器它们有三种配置用法8KB的SRAM8KB的Cache4KB的SRAM加上4KB的Cache较多采用片内RAM配置而非片内Cache配置。武汉工程大学计算机学院2026/4/20ARM920T的片内存储器注意:ARM920T核的内部没有TCM武汉工程大学计算机学院2026/4/20ARM720T的片内存储器8KByteunifiedcacheMemoryManagementUnit(MMU)writebufferUnified32-bitAHBbusinterfacecarriesbothinstructionsanddataEmbeddedTraceMacrocell(ETM)interface武汉工程大学计算机学院2026/4/204.6.4协处理器CP15CP15即所谓的系统控制协处理器SystemControlCoprocessor在基于ARM的嵌入式系统中,诸如MMU、Cache配置、紧耦合处理器、写缓存配置之类的存储系统管理工作由协处理器CP15完成。CP15可以包含16个32位寄存器编号为CP0~CP15。实际运用中写为C0~C15。武汉工程大学计算机学院2026/4/20CP15寄存器的访问用户只能够在特权模式下使用MRC和MCR指令来访问CP15寄存器。武汉工程大学计算机学院2026/4/204.6.5存储器管理单元MMUARM的MMU部件的用途:
完成虚拟存储空间到物理存储空间的映射。
管理方式:页式虚拟存储器。
页的大小有两种:粗粒度和细粒度。
存储器访问权限的控制。
设置虚拟存储空间的缓冲特性。武汉工程大学计算机学院2026/4/204.6.6保护单元保护单元PU,ProtectionUnit也称为:MPU,MemoryProtectionUnit为了消除术语的二义性,我们统一使用术语PU保护单元提供了一个相当简单的替代MMU的方法来管理存储器。对于不需要MMU的嵌入式系统而言,PU简化了硬件和软件,主要表现在不使用转换表,这样免去了硬件遍历转换表和软件建立与维护转换表。武汉工程大学计算机学院2026/4/20保护单元的工作原理和作用ARM核的PU使用区域(region)来管理系统保护。区域是一个存储空间相关联的一组属性,处理器核将这些属性保存在协处理器CP15的一些寄存器里,并用0-7的号码标识每一个区域(它也是一个具有特定属性的逻辑存储空间)。区域的存储边界通过两个属性进行配置:起始地址和大小。区域的大小可以是4KB~4MB的任何2的乘幂。武汉工程大学计算机学院2026/4/20受保护区域的属性操作系统可以为受保护区域分配更多的属性,包括:访问权限、Cache和写缓存器策略访问权限可以是:读/写、只读和不可访问基于处理器模式的权限管理模式、用户模式等Cache写策略写直达Cache操作、无Cache操作、无写缓存器操作。武汉工程大学计算机学院2026/4/20含PU的ARM处理器主存访问过程当处理器访问主存的一个区域时,PU比较该区域的访问权限属性和当时的处理器模式。如果请求符合区域访问标准,则PU允许内核读/写主存;如果存储器请求导致存储器访问违例,则PU产生一个异常信号。异常信号被传到处理器核,处理器核判断异常是预取指令中止还是数据中止,然后跳转到对应的异常处理例程。武汉工程大学计算机学院2026/4/20区域属性有关区域的属性如下:区域可以相互重叠每一个区域有一个优先级,该优先级与分配给区域的权限无关当区域重叠时,具有最高优先权的区域的属性可以覆盖其他区域的属性,优先权仅作用于重叠部分的地址。区域的起始地址必须是其大小的倍数。区域的大小是2的乘幂,2的12次方到32次方。武汉工程大学计算机学院2026/4/20访问受保护区域时产生的异常访问所定义区域外的存储器将产生异常。如果是内核预取指令,则PU产生一个预取指令中止异常。如果是存储器数据请求,则PU产生数据中止异常。武汉工程大学计算机学院2026/4/20带PU的ARM核概要以下给出了四种带PU的ARM核概要属性ARM核区域数目指令区域和数据区域是否分离指令和数据区域配置是否分离ARM740T8否否ARM940T16是是ARM946E-S8否是ARM1026EJ-S8否是武汉工程大学计算机学院2026/4/20在带PU的ARM系统中创建区域要实现一个受PU控制主存的嵌入式系统,需要对主存中的不同块定义若干区域。一个区域可以被创建一次,然后一直用到嵌入式系统运行结束;也可以临时创建一个区域来满足一个特殊操作的需要,用完之后就加以删除。武汉工程大学计算机学院2026/4/20含有PU的ARM核含有8个受保护区域的ARM核ARM740TARM946E-SARM1026EJ-S含有16个受保护区域的ARM核ARM940T武汉工程大学计算机学院2026/4/20初始化PU、Cache和写缓冲器为了初始化PU、Cache和写缓冲器,控制系统必须定义在操作目标平台时所需要的保护区域。功能主存储器次存储器系统控制C1C0区域的cache属性C2C0区域的写缓冲器属性C3C0区域的访问权限属性C5C0区域的大小和位置C6C0~C7武汉工程大学计算机学院2026/4/20带保护单元和MMU的系统框图武汉工程大学计算机学院2026/4/204.6.7ARM处理器的CacheARM处理器均带有Cache或者可以将片上存储器配置成Cache。当然,在不需要时也可以通过配置操作关闭Cache。ARM处理器的Cache地址映射均采用组相联映射。武汉工程大学计算机学院2026/4/204.6.8快速上下文切换扩展FCSE(FastContextSwitchExtension,快速上下文切换)位于CPU和MMU之间,如果两个进程使用了同样的虚拟地址空间,则对CPU而言,两个进程使用了同样的虚拟地址空间。快速上下文切换机构对各进程的虚拟地址进行变换,这样系统中除了CPU之外的部分看到的是经过快速上下文切换机构变换的虚拟地址。快速上下文切换机构将各进程的虚拟空间变换成不同的虚拟空间,这样在进行进程间切换时就不需要进行虚拟地址到物理地址的重映射。在ARM处理器中只有ARMv6以上版本的处理器才支持FCSE功能为了理解ARM处理器的FCSE功能,我们首先考察当虚拟存储器中任务切换时,主存中页表和物理存储器的随动切换。武汉工程大学计算机学院2026/4/20ARM虚拟存储器
用户任务上下文切换示例-1任务1正在执行武汉工程大学计算机学院2026/4/20ARM虚拟存储器
用户任务上下文切换示例-2任务2正在执行武汉工程大学计算机学院2026/4/20ARM虚拟存储器
用户任务上下文切换示例-3任务3正在执行武汉工程大学计算机学院2026/4/203个任务的多任务环境中
快速上下文切换扩展的举例:切换前任务1正在运行武汉工程大学计算机学院2026/4/203个任务的多任务环境中
快速上下文切换扩展的举例:(续)切换后任务2正在运行武汉工程大学计算机学院2026/4/204.6.9写缓存器(WriteBuffer)写缓存器是一个容量很小的片内的先进先出(FIFO)存储器,位于处理器核与主存之间。写缓存器的主要用途是:当CPU输出数据时,总线恰好被占用而无法输出,此时,CPU可以把输出数据写入到写缓存器。当总线上没有比写缓存区优先级更高的掌控者时,写缓存区可以通过总线将数据写入内存。
CPU由于不需要等待写操作的完成而增强了性能。写缓存区中的FIFO存储器在存储层次中与L1Cache处于相同的层次。武汉工程大学计算机学院2026/4/20S3C44B0X处理器的写缓存区由4个写缓存寄存器构成。每一个写缓存寄存器包括一个32位数据字段,一个28位地址字段和一个2位状态字段。可以通过指令对控制寄存器SYSCFG的WE位置1或者置0来使能或者禁能写缓存器。参看下图。武汉工程大学计算机学院2026/4/204.7ARM的异常中断ARM异常与中断不做严格意义上的区别ARM的中断向量表内存放的是响应异常和中断的转移指令而不是中断向量地址。在ARM处理器中,当异常发生时,完成当前指令后跳转到相应的异常中断处理程序入口执行异常中断处理。异常处理完毕后返回原来的程序断点继续执行原来的程序。武汉工程大学计算机学院2026/4/20异常分类ARM异常按照起因的不同分为3类: ①指令执行引起的直接异常软件中断、未定义指令和预取指令中止属于这一类 ②指令执行引起的间接异常数据中止(在读取和存储数据时的存储器故障)属于这一类。 ③外部产生的与指令流无关的异常复位、IRQ和FIQ属于这一类。武汉工程大学计算机学院2026/4/20ARM中断向量表中断向量表中存放了各个异常中断以及处理程序的对应关系。在ARM体系结构中,异常中断向量表的大小只有32个字节。其中,每个异常中断向量占4个字节。系统初始化时,中断向量表从0号存储单元开始存放。武汉工程大学计算机学院2026/4/20ARM中断向量表(续)中断向量地址异常中断类型异常中断模式优先级(6级最低)0x0复位管理模式,SVC10x4未定义指令未定义指令中止,UND60x8软件中断管理模式,SVC60xC指令预取中止中止模式,ABT50x10数据访问中止中止模式,ABT20x14保留未使用未使用0x18外部中断请求,IRQ外部中断模式,IRQ40x1C快速中断请求,FIQ快速中断模式,FIQ3武汉工程大学计算机学院2026/4/20ARM异常中断响应当发生异常时,ARM处理器对异常中断的响应过程如下:①将CPSR的内容保存到将要执行的异
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026日用化学品细分市场消费行为与竞争策略研究
- 2026汽车整机制造行业市场供需动态分析及投资评估行业发展趋势
- 高中物理 第一章 静电场 4 课时1 电势能和电势教学设计 新人教版选修3-1
- 2026中国物流企业人力资源管理优化方案研究报告
- 线上信贷额度额度调整服务协议
- 2026中国数字出版产业发展现状与技术创新驱动评估规划研究报告
- 工业互联网平台运营维护协议2026版
- 儿园教育教学工作总结报
- 记账实操-物业管理企业成本核算(SOP)
- 2026中国智能家居市场调研及产品功能升级与行业商业模式创新设计前景分析报告
- 2025-2030含氟废水深度处理技术经济性与零排放实践
- TCQFX001-2024四川省机动车维修工时定额标准
- 处置施工险情和意外事故应急方案
- (高清版)DG∕TJ 08-2433A-2023 外墙保温一体化系统应用技术标准(预制混凝土反打保温外墙)
- 医保基金检查合同范本
- DB51 T1996-2015四川公路工程超声回弹综合法 检测结构混凝土强度技术规程
- 《宠物美容与护理》课件-梳毛工具
- 护理查房特发性突聋
- GB/T 44370-2024系统和软件工程软件产品质量要求和评估可用性通用行业格式用户需求说明
- 《建筑排水塑料管道工程技术规程 CJJT29-2010》
- 食品安全与日常饮食智慧树知到期末考试答案章节答案2024年中国农业大学
评论
0/150
提交评论