收藏 分销(赏)

第4章ARM体--系结构建筑资料.pptx

上传人:可**** 文档编号:1338696 上传时间:2024-04-23 格式:PPTX 页数:135 大小:1.69MB 下载积分:10 金币
下载 相关 举报
第4章ARM体--系结构建筑资料.pptx_第1页
第1页 / 共135页
第4章ARM体--系结构建筑资料.pptx_第2页
第2页 / 共135页


点击查看更多>>
资源描述
ARM处理器基本特征lARM处理器在设计上沿用了RISC技术的基本特征,但是也放弃了一些RISC设计特征。l沿用的有:通用寄存器堆,32位定长指令,Load/Store访问存储器指令和3地址数据运算指令。l没有沿用的有:重叠寄存器窗口,延迟转移和单周期指令执行。l2001年以后,ARMv6体系结构中增加了60多条SIMD指令集。2024/4/18 周四武汉工程大学计算机学院4.1 ARM体系结构版本l迄今为止主要出现过7个指令集体系结构版本,分别命名为V1-V7。l此外还有基于这些体系结构版本的变种版本。l目前主要在用的ARM处理器的体系结构是V4、V5、V6和V7。l每一个版本都继承了前一个版本的基本设计,指令集向下兼容。2024/4/18 周四武汉工程大学计算机学院当前在用的ARM核概况l目前实际使用的ARM处理器核有二十多种l每一种处理器核依据一个体系结构版本设计l这些ARM核的共同特点是:字长32位、RISC结构、低功耗、附加16位高密度指令集Thumbl获得广泛的嵌入式操作系统支持l包括:Windows CE、Palm OS、Symbian OS、Linux以及其他的主流RTOSl含有嵌入式跟踪宏单元ETM(Embedded Trace Macro)2024/4/18 周四武汉工程大学计算机学院体系结构版本V3l这个体系结构版本将寻址范围扩展到了32位。当前程序状态信息由过去存于R15中移到一个新的当前程序状态寄存器CPSR(Current Program Status Register)中。增加了程序状态保存寄存器SPSR(Saved Program Status Registers),以便当异常出现时保留CPSR的内容。增加了2个指令(MRS和MSR),以访问新的CPSR和SPSR寄存器。2024/4/18 周四武汉工程大学计算机学院体系结构版本V4l对体系结构版本V3进行了扩展,即:半字读取和存储指令;读取带符号的字节和半字数据的指令;增加了高密度指令集Thumb,这样V4体系结构有了T变量;有了在ARM/Thumb状态之间切换的指令;增加了处理器管理模式(SVC模式)。2024/4/18 周四武汉工程大学计算机学院体系结构版本V5l提高了T变量中ARMThumb之间切换的效率;增加了一个前导零计数(count leading zeros)指令,该指令允许更有效的整数除法和中断优先程序;增加了软件断点指令;为协处理器设计者增加了更多可选择指令;对由乘法指令如何设置标志进行了定义。2024/4/18 周四武汉工程大学计算机学院体系结构版本V6l平均取指令和取数据延时减少,因Cache未命中造成的等待时间减少,总的内存管理性能提高达到30%左右;适应多处理器核的需要;增加了SIMD指令集。支持混合端序,能够处理大端序和小端序混合的数据;异常处理和中断处理得以改进,实时任务处理能力增强。2024/4/18 周四武汉工程大学计算机学院体系结构版本V7l扩展了的130条指令的Thumb-2指令集;NEON媒体引擎,该引擎具有分离的单指令多数据(SIMD)执行流水线和寄存器堆,可共享访问L1和L2高速缓存,因此提供了灵活的媒体加速功能并且简化了系统带宽设计;TrustZone技术,可以对电子支付和数字版权管理之类的应用业务提供可靠的安全措施。2024/4/18 周四武汉工程大学计算机学院ARM处理器的3种指令集lARM指令集l32位,低密度指令集lThumb指令集l16位,高密度指令集lJazelle指令集l8位,Java字节码指令集2024/4/18 周四武汉工程大学计算机学院ARM指令集和Thumb指令集lARM体系结构版本中带有T变量的ARM处理器核可以工作在2种状态。lARM状态,运行32位的ARM指令集lThumb状态,运行16位的Thumb指令集l在任何一种工作状态可以通过转移指令切换到另一种工作状态。lARM和Thumb之间的状态切换不影响处理器工作模式和寄存器中的内容。l加电起动时处理器工作在ARM状态。2024/4/18 周四武汉工程大学计算机学院指令集压缩l对于传统的微处理器体系结构,指令和数据具有同样的宽度。l与16位体系结构相比,32位体系结构在操纵32位数据时呈显了更高的性能,并可更有效地寻址更大的空间。l一般来讲,16位体系结构比32位体系结构具有更高的代码密度,但只有近似一半的性能。lThumb在32位体系结构上实现了16位指令集,以提供:l比16位体系结构更高的性能;l比32位体系结构更高的代码密度。l更加符合工业控制的需要2024/4/18 周四武汉工程大学计算机学院Thumb指令集lThumb指令集是通常使用的32位ARM指令集的子集。l每条Thumb指令是16位长,有相应的对于处理器模型有相同效果的32位ARM指令。lThumb指令在标准的ARM寄存器配置下进行操作,在ARM和Thumb状态之间具有出色的互操作性。l执行时,16位Thumb指令透明地实时解压缩成32位ARM指令,且没有性能损失。lThumb具有32位核的所有优点:l32位寻址空间;l32位寄存器;l32位移位器和算术逻辑单元ALU(Arithmetic Logic Unit);l32位存储器传送。2024/4/18 周四武汉工程大学计算机学院Jazelle技术lJazelle的特点在于可以直接执行Java Byte Cord。它通过在ARM微处理器上增加Jazelle工作模式,使ARM指令和Java Byte Cord指令在同一个微处理器上执行。lARM的Jazelle技术使Java加速得到比基于软件的Java虚拟机(JVM)高得多的性能,和同等的非Java加速核相比功耗降低80。l首颗具备Jazelle技术的处理器是ARM926EJ-S2024/4/18 周四武汉工程大学计算机学院第3种指令集 Jazellel执行8位指令l一个软件与硬件的混合体l能够加速Java字节码的执行lJava Bytecodesl为了执行Java字节码,需要Jazelle技术外加一个Java虚拟机的特殊修订版。lJazelle的硬件部分只负责Java字节码的部分内容,其余由软件仿真。2024/4/18 周四武汉工程大学计算机学院Jazelle指令集特征 lCPSR寄存器lT=0,J=1l硬件完成超过60%的Java字节代码l其余由软件完成2024/4/18 周四武汉工程大学计算机学院ARM体系结构版本变量列表(第1种形式)后后缀变量量功能功能说明明TThumb指令集,Thumb指令的长度为16位。目前Thumb有两个版本。Thumb1用于ARM4的T变种,Thumb2用于ARM5以上的T变种。D含JTAG调试器,支持片上调试。M提供用于进行长乘法操作的ARM指令,产生全64位结果。I嵌入式跟踪宏单元(EmbeddedICE macrocell)硬件部件,提供片上断点和调试点支持。E增强型DSP指令,增加了几条16位乘法和加法指令,加减法指令可以完成饱和带符号算术运算。JJAVA加速器Jazelle,与普通的JAVA虚拟机相比较,Jazelle使Java代码运行速度提高了8倍,而功耗降低了80%。F向量浮点单元S可综合版本,以源代码形式提供的,可以被EDA工具使用。2024/4/18 周四 武汉工程大学计算机学院ARM核版本命名规则l命名规则的字符串表达式如下:lARMxyzTDMIEJF-Sl其中花括号的内容表示可有可无。前三个参数含义在下面说明:lx表示系列号,例如:ARM7,ARM9,ARM10ly表示内部存储管理和保护单元,例如:ARM72,ARM92lz表示含有高速缓存(Cache),例如:ARM720,ARM940l其余体系结构版本变量已经在前面幻灯片给出。2024/4/18 周四武汉工程大学计算机学院ARM核版本命名规则(续)l说明:在ARM7TDMI之后出产的所有ARM内核名称,即使“ARM”字串后面没有包含“TDMI”字符串,也都默认包含了该字串。对于2005年以后ARM公司投入市场的ARMv7体系结构的处理器核,使用字符串“ARM Cortex”打头,随后附加一个字母后缀“-A”,“-R”或者“-M”,表示该处理器核适合应用的领域;其中:后缀A表示应用(Application)、R表示实时控制(Real time)、M表示微控制器(Micro Controller)。2024/4/18 周四武汉工程大学计算机学院ARM核与体系结构版本间的关系2024/4/18 周四武汉工程大学计算机学院ARM处理器核的3种应用类型 处理器核分类处理器核分类硬件特点硬件特点频率频率性能性能功耗功耗典型用途典型用途/产品举例产品举例应用处理器符号标记:A配备MMU和Cache 最快最高合理媒体播放器,产品举例:MP3,机顶盒,iPOD,智能手机,PAD实时控制处理器符号标记:R去除MMU,备有Cache较快合理较低数字信号处理,产品举例:汽车ABS系统,路由器,交换机,航电系统微控制器符号标记:M没有存储子系统,即不含MMU。合理适中极低日常电器控制,产品举例:门禁系统,游戏控制器,家庭网关,洗衣机控制器2024/4/18 周四 武汉工程大学计算机学院当前主流ARM处理器核一览表处理器核系列应用处理器实时控制器微控制器ARM Cortex系列ARM Cortex-A8ARM Cortex-R4ARM Cortex-M3ARM11系列ARM1136J-SARM1176JZ-SARM1156T2ARM10系列ARM1020EARM1022EARM1026EJ-SARM1026EJ-SARM9系列ARM920TARM922TARM926EJARM946EARM966EARM948EARM7系列ARM720TARM7TDMIARM7EJ-SARM7TDMI2024/4/18 周四 武汉工程大学计算机学院4.2 ARM处理器系列l目前在用的ARM处理器系列主要有6个lARM7lARM9lARM10ElARM11lSecurCore lCortex 2024/4/18 周四武汉工程大学计算机学院ARM7系列处理器特点lARM7系列为低功耗32位核,适用于对价位和功耗敏感的消费类应用。lARM7系列处理器具有以下特点:l含有嵌入式ICERT逻辑;l非常低的功耗;l冯诺依曼结构;lMIPS/MHz的三级流水线。2024/4/18 周四武汉工程大学计算机学院ARM7系列处理器特点2024/4/18 周四武汉工程大学计算机学院其它ARM7处理器核lARM7TDMI-SlARM7TDMI的可综合(synthesizable)版本(软核);l最适用于可移植性和灵活性为关键的现代设计。lARM720Tl全性能的MMU;l最适用于低功耗和体积为关键的应用。lARM7EJlARM7EJ是Jazelle和DSP指令集的最小及最低功耗的实现。2024/4/18 周四武汉工程大学计算机学院ARM7TDMI内核产品举例lARM7TDMI是一个经典的ARM内核l体系结构版本是ARMv4Tl列出4个基于ARM7TDMI核制造的嵌入式处理器lS3C44B0X,三星公司生产lSEP3203,东南大学集成电路研究所lAT91SAM7,Atmel公司lLPC2114,飞利浦公司2024/4/18 周四武汉工程大学计算机学院ARM9系列处理器vARM9系列是高性能和低功耗特性方面最佳的硬宏单元。它具有:q5级流水线q提供1.1MIPSMHz的哈佛结构处理能力vARM9主要应用领域#先进的引擎管理#网络电脑#仪器仪表#智能电话#安全系统#机顶盒#高端打印机#PDA2024/4/18 周四武汉工程大学计算机学院ARM9系列处理器的组成2024/4/18 周四武汉工程大学计算机学院ARM9系列处理器特点lARM920T和ARM922Tl全性能的MMU;l指令和数据Cache;l高速AMBA基于总线的接口:AMBA片上总线是一个已建立的、用于SOC设计框架的开放标准。lARM940Tl保护单元;l指令和数据Cache;l高速AMBA基于总线的接口2024/4/18 周四武汉工程大学计算机学院ARM9E系列lARM9E系列为可综合处理器l具有以下特点:lDSP扩充;l嵌入式ICERT调试逻辑;l提供1.1 MIPSMHz的5级流水线和哈佛结构;l紧耦合存储器(TCM)接口,可使存储器以最高的处理器速度运转,可直接连接到内核上,非常适用于必须有确定性能和快速访问时间的代码。2024/4/18 周四武汉工程大学计算机学院ARM9E的组成2024/4/18 周四武汉工程大学计算机学院ARM9E系列处理器的特点lARM926EJ-SlJazelle扩充;l每个可配置的Cache大小:4KB、8KB、16KB,高达128KB;l分立的指令和数据高速AHB接口;l全性能的MMUl主要智能手机,3G手机和媒体播放器使用的处理器均采用ARM926EJ-S核。2024/4/18 周四武汉工程大学计算机学院ARM10系列处理器lARM10系列为硬宏单元,具有如下特点:lDSP扩展;l嵌入式ICE-RT;l全性能MMU;lCache;l对于指令和数据,64位AHB接口;l6级流水线;l内部64位数据通路;l1.25 MIPSMHz;l在实际应用中,与同等ARM9器件相比,在同样的时钟速度下,性能提高了50。2024/4/18 周四武汉工程大学计算机学院ARM10系列处理器的组成2024/4/18 周四武汉工程大学计算机学院SecurCore SC100系列lSecurCore SC100系列专为安全需要而设计l具有特定的抗窜改(resist tampering)和反工程(reverse engineering)特性;l带有灵活的保护单元,以确保操作系统和应用数据的安全。2024/4/18 周四武汉工程大学计算机学院ARM11系列处理器lARM11核是2001年10月公布的lV6体系结构版本的第1个实现,具有以下特点:l主频:350-500MHzl工艺:0.13微米l功耗:0.4mW/Mhzl电压:1.2Vl8级标量流水线l64位数据通路2024/4/18 周四武汉工程大学计算机学院ARM Cortex核系列处理器l目前已经有了四个ARM Cortex内核lCortex-A8、Cortex-M4、Cortex-R4和Cortex-R4F l特点:l先进3级流水线、哈佛结构、ARMv7指令集、灵活的可配置功能(可以在整合阶段对Cache、TCM和MPU进行配置)、分支预测、单周期乘法、硬件除法器、峰值运算速度达到1.25DMPIS/MHZ(Dhrystone测试基准)、新的Thumb-2指令集。lA系列针对高端的复杂操作系统以及用户应用设计的应用处理器;R系列针对系统专用嵌入式处理器;M系列针对微控制器和低成本应用专门优化的深嵌入式处理器2024/4/18 周四武汉工程大学计算机学院ARM Cortex处理器举例lARM Cortex-A8lARM Cortex-M3lARM Cortex-R42024/4/18 周四武汉工程大学计算机学院4.3 ARM流水线l计算机指令执行过程的各个阶段相对独立,因此CPU内部的指令译码执行逻辑电路可以设计成分级的处理部件,实行流水处理,即流水线方式。l流水线技术大大加快了处理器的指令执行速度,因此现代CPU设计方案中几乎都采用了流水线技术。lARM处理器设计也不例外。所有的ARM处理器核都使用了流水线设计。2024/4/18 周四武汉工程大学计算机学院ARM7流水线lARM7TDMI核使用3级指令流水线。lARM7处理器核的指令执行分为3个阶段:取指、译码和执行。取指,由取指部件处理,把指令从内存中取出,放入指令流水线;译码,指令被译码。在这一级指令占有译码逻辑,不占有数据通路;执行,执行流水线中已经被译码的指令,在这一级,指令占有数据通路,移位操作,读通用寄存器,ALU产生结果,写通用寄存器。2024/4/18 周四武汉工程大学计算机学院ARM9流水线 lARM9TDMI采用了5级流水线。这5个指令执行阶段的功能如下:l取指,从指令存储器中读取指令,放入指令流水线。l译码,对指令进行译码,从通用寄存器组中读取操作数。由于寄存器组有3个读端口,大多数ARM指令能在一个时钟周期内读取其操作数。2024/4/18 周四武汉工程大学计算机学院ARM9流水线(续)l执行,将其中的一个操作数移位,并在ALU中产生结果。如果指令是Load或Store指令,则在ALU中计算存储器的地址。l数据缓冲,如果需要,则访问数据存储器;否则,ALU只是简单地缓冲一个时钟周期,以便使所有指令具有同样的流水线流程。l写回,将指令的结果写回到寄存器组。包括任何从存储器读取的数据。2024/4/18 周四武汉工程大学计算机学院ARM10和ARM11流水线lARM10流水线为6级流水线lARM11流水线为8级流水线2024/4/18 周四 武汉工程大学计算机学院Cortex-R4流水线 lCortex-R4处理器的流水线为8级,参看下图。其特点是双发射指令流水线,含动态分支预测,执行速度达到1.6 MIPS/MHz(Dhrystone基准测试程序)。其中前3级是指令预取单元PFU,包括第1阶段取指,第2阶段取指和译码。2024/4/18 周四武汉工程大学计算机学院4.4 ARM工作模式和工作状态l异常l指计算机脱离正常的运算顺序,临时改变原先的执行顺序,转而执行一个子程序,完成一个预先准备的特殊服务例程。l中断lARM公司对异常处理一律用中断服务子程序处理。这样,在概念上ARM处理器不再区分异常和中断,异常处理与中断处理相同。2024/4/18 周四武汉工程大学计算机学院ARM 5种异常工作模式lARM处理器内部安排了5种异常工作模式。lABT(取指中止或者取操作数中止)lUND(进入未定义指令陷阱)lIRQ(普通中断)lFIQ(快速中断)lSVC(管理)2024/4/18 周四武汉工程大学计算机学院ARM处理器工作模式lARM处理器支持7种工作模式l用户模式l特点:不能访问某些受操作系统保护的资源,也不能改变工作模式。l6种特权模式l分类:系统模式,5种异常模式l特点:能访问全部资源,能改变工作模式。2024/4/18 周四武汉工程大学计算机学院ARM处理器工作模式2024/4/18 周四武汉工程大学计算机学院模式使用说明(1)lSVC模式是操作系统内核代码运行的模式,USR模式通常是用户代码运行模式。处理器一旦进入USR模式,必须通过SWI指令(理解为软中断)才能进入SVC模式调用内核代码的接口。但是,在没有MMU进行内存保护的场合,USR模式也能够访问到SVC模式的内存空间,因此使用USR隔离用户级代码没有意义。2024/4/18 周四武汉工程大学计算机学院模式使用说明(2)lIRQ和FIQ模式是微处理器收到中断信号后强制处理器进入的模式,用于中断处理。SYS模式用于嵌套中断处理。2024/4/18 周四武汉工程大学计算机学院模式使用说明(3)lABT和UND模式是真正意义上的“异常”,一旦出现就要进入对应的异常中断服务子程序进行处理。2024/4/18 周四武汉工程大学计算机学院ARM处理器工作状态lARM体系结构版本中带有T变量的ARM处理器核可以工作在2种状态。ARM状态,机器指令为32位的ARM指令集,字对齐取指执行ARM指令。Thumb状态,机器指令为16位的Thumb指令集,半字对齐取指执行Thumb指令。l在任何一种工作状态可以通过转移指令切换到另一种工作状态。ARM和Thumb之间的状态切换不影响处理器工作模式和寄存器中的内容。l加电起动时处理器工作在ARM状态。2024/4/18 周四武汉工程大学计算机学院两种工作状态之间切换l进入Thumb状态l当操作数寄存器的状态位(位0)为1时,执行BX指令进入Thumb状态。l如果处理器在Thumb状态进入异常,则当异常处理(IRQ、FIQ、Undef、Abort和SWI)返回时,自动转换到Thumb状态。l进入ARM状态l当操作数寄存器的状态位(位0)为0时,执行BX指令进入ARM状态。l处理器进行异常处理(IRQ、FIQ、Reset、Undef、Abort和SWI)。在此情况下,把PC放入异常模式链接寄存器中。从异常向量地址开始执行也可以进入ARM状态。2024/4/18 周四武汉工程大学计算机学院工作状态切换方法l使用BX指令可以将ARM7TDMI(-S)内核的工作状态在ARM状态和Thumb状态之间进行切换。l参看下例:;从ARM状态转变为Thumb状态LDRR0,=Lable+1BXR0;从Thumb 状态转变为ARM状态LDRR0,=LableBXR02024/4/18 周四武汉工程大学计算机学院4.5 ARM 寄存器组织lARM处理器总共有37个32位寄存器,其中有31个通用寄存器,6个状态寄存器(到目前为止只定义了12位)。这些寄存器按照工作模式分成不同的组。编程时哪些寄存器组可用,哪些寄存器组不可用,由处理器的状态和模式决定。下表示出了ARM工作状态下每一种模式下使用的寄存器组。2024/4/18 周四武汉工程大学计算机学院ARM寄存器组织2024/4/18 周四武汉工程大学计算机学院影子寄存器l在ARM寄存器组织表中带有阴影色块的寄存器称为影子寄存器,它们是为处理器不同工作模式配备的专用物理寄存器。在异常模式下,它们将代替用户或者系统模式下使用的部分寄存器。l在管理、中止、未定义和普通中断模式下,影子寄存器的数量均为2个。而快速中断为7个。2024/4/18 周四武汉工程大学计算机学院ATPCS命名规则lATPCS是集成开发环境ADS中规定的子程序之间调用的基本规则。在该规则中对ARM处理器中的寄存器给出了命名规则。程序员在编程时使用ATPCS规定的寄存器名称可以方便记忆,提高工作效率,减少差错。2024/4/18 周四武汉工程大学计算机学院ARM寄存器的使用规则(1)l子程序间通过寄存器R0R3来传递参数。这时,寄存器R0R3可记作a0a3。被调用的子程序在返回前无需恢复寄存器R0R3的内容。l在子程序中,使用寄存器R4R11来保存局部变量。这时,寄存器R4R11可以记作v1v8。如果在子程序中使用了寄存器v1v8中的某些寄存器,则子程序进入时必须保存这些寄存器的值,在返回前必须恢复这些寄存器的值。在Thumb程序中,通常只能使用寄存器R4R7来保存局部变量。2024/4/18 周四武汉工程大学计算机学院ARM寄存器的使用规则(2)l寄存器R12用作过程调用中间临时寄存器,记作IP。新的编译器版本在子程序之间的连接代码段中常常有这种使用规则。l寄存器R13用作堆栈指针,记作SP。在子程序中寄存器R13不能用作其他用途。寄存器SP在进人子程序时的值和退出子程序时的值必须相等。l寄存器R14称为连接寄存器,记作LR。它用于保存子程序的返回地址。如果在子程序中保存了返回地址,寄存器R14则可以用作其他用途。l寄存器R15是程序计数器,记作PC。它不能用作其它用途。2024/4/18 周四武汉工程大学计算机学院AAPCS标准l2007年ARM公司正式推出了AAPCS标准,它是ATPCS的改进版。实际上,有关程序设计中的过程调用,ARM公司为ARM处理器先后建立了4个标准,参看下表。2024/4/18 周四武汉工程大学计算机学院ARM过程调用标准ATPCS和AAPCS缩略语缩略语全称全称使用状况使用状况AAPCSProcedure Call Standard for the ARM Architecture正在使用ATPCSARM-Thumb Procedure Call Standard被更新,在用APCSARM Procedure Call Standard停止使用TPCSThumb Procedure Call Standard停止使用2024/4/18 周四 武汉工程大学计算机学院2024/4/18 周四4.6 ARM存储器组织l介绍以下内容:l数据类型和存储格式lARM的存储体系l片上存储器的用法l协处理器CP15l存储器管理单元MMUl保护单元l快速上下文切换扩展l写缓存器(Write Buffer)lARM的异常中断向量表和异常中断处理与返回武汉工程大学计算机学院2024/4/18 周四4.6.1 数据类型和存储格式lARM存储器中的数据类型有6种l有符号数l8位(字节)、16位(半字)、32位(字)l无符号数l8位(字节)、16位(半字)、32位(字)l缺省端序设置为小端序武汉工程大学计算机学院2024/4/18 周四4.6.2 ARM的存储体系l参看下图,抽象成一个呈金字塔型的存储结构武汉工程大学计算机学院2024/4/18 周四4.6.3 片上存储器的用法l多数ARM处理器芯片内部集成了存储器l它们统称为片上存储器l用途有:片上Cache、片上SRAM、紧耦合存储器(TCM)、写缓存l片上存储器的存储空间可以通过指令进行配置,定义成片上Cache,或者片上SRAM,或者一部分片上Cache加一部分片上SRAM。l紧耦合存储器和写缓存均需要编程使能或者硬件接线使能l按照具体应用情况决定片上存储器配置方法武汉工程大学计算机学院2024/4/18 周四片上存储器用作紧耦合存储器l紧耦合存储器的英文原文如下:lTightly Coupled Memory,TCMl弥补Cache访问的不确定性而增加的片上存储器。l除了片上紧耦合存储器外,还有紧耦合存储器接口,它能够提供低延时的外存储器访问。l有的处理器含有分立的指令TCM和数据TCM。TCM包含在存储器地址映射空间中,可以作为快速存储器来访问。除了不得包含读敏感地址之外,对TCM接口上连接的存储器类型没有其他限制。TCM使用物理地址,对TCM的写访问受到MMU内部保护信息的控制。武汉工程大学计算机学院2024/4/18 周四TCM在ARMv6处理器核的位置lARMv6处理器包括:ARM1136J-S、ARM1156T2 武汉工程大学计算机学院2024/4/18 周四片内TCM存储器举例lARM926EJ-S核心内置32KB指令缓存、16KB数字缓存和8KB数据-TCM和8KB指令-TCM;武汉工程大学计算机学院2024/4/18 周四Cortex-R4F方框图含TCM接口l注意图的右侧含有一个TCM仲裁和接口模块武汉工程大学计算机学院2024/4/18 周四ARM1136的TCM支持DMA传输l参看ARM1136的方框图 武汉工程大学计算机学院2024/4/18 周四ARM966E-S核的TCM地址映射武汉工程大学计算机学院2024/4/18 周四ARM966E-S的TCM别名地址空间l物理存储块可以通过TCM接口映射在片内的TCM存储区武汉工程大学计算机学院2024/4/18 周四TCM特点lTCM是一个固定大小的RAM,紧密地耦合至处理器内核,提供与Cache相当的性能,相比于Cache的优点是:程序代码可以精确地控制什么函数或代码放在那儿(RAM里)。当然TCM永远不会被踢出主存储器,因此,他会有一个被用户预设的性能,而不是象Cache那样是统计特性的性能提高。武汉工程大学计算机学院2024/4/18 周四TCM特点(续1)lTCM对于以下几种情况的代码是非常有用:可预见的实时处理(中断处理)、时间可预见(加密算法)、避免cache分析(加密算法)、或者只是要求高性能的代码(编解码功能)。随着cache大小的增加以及总线性能的规模,TCM将会变得越来越不重要,但是他提供了一个让你权衡的机会。武汉工程大学计算机学院2024/4/18 周四TCM特点(续2)l那么,哪一个更好呢?他取决于你的应用。Cache是一个通用目的的加速器,它会加速你的所有代码,而不依赖于存储方式。TCM只会加速你有意放入TCM的代码,其余的其他代码只能通过cache加速。Cache是一个通用目的解决方案,TCM在某些特殊情况下是非常有用的。假如你不认为需要TCM的话,那么你可能就不需要了,转而加大你的Cache,从而加速运行于内核上的所有软件代码武汉工程大学计算机学院2024/4/18 周四AT91SAM9261处理器的TCMlAT91SAM9261的独立指令和数据缓存能支持WinCE 和 Linux操作系统。l而其基于TCM 构架的SRAM区块则是“确定过程式”实时操作系统的理想安排。l另一方面,160K字节的片上SRAM可划分成多个16K字节的区块,作为“指令TCM”、“数据TCM”或片上外设的缓冲,从而让编程人员灵活地优化系统的性能和功耗。武汉工程大学计算机学院2024/4/18 周四TCM的使能操作l通过二种方式进行TCM的使能操作l使用处理器芯片的INITRAM引脚l使用 CP15的c1控制寄存器武汉工程大学计算机学院2024/4/18 周四4.6.4 协处理器CP15lCP15即所谓的系统控制协处理器lSystem Control Coprocessorl在基于ARM的嵌入式系统中,诸如MMU、Cache配置、紧耦合处理器、写缓存配置之类的存储系统管理工作由协处理器CP15完成。lCP15可以包含16个32位寄存器l编号为CP0CP15。l实际运用中写为C0C15。武汉工程大学计算机学院2024/4/18 周四CP15寄存器的访问l用户只能够在特权模式下使用MRC和MCR指令来访问CP15寄存器。武汉工程大学计算机学院2024/4/18 周四4.6.5 存储器管理单元MMUlARM的MMU部件的用途:完成虚拟存储空间到物理存储空间的映射。管理方式:页式虚拟存储器。页的大小有两种:粗粒度和细粒度。存储器访问权限的控制。设置虚拟存储空间的缓冲特性。武汉工程大学计算机学院2024/4/18 周四4.6.6 保护单元l保护单元lPU,Protection Unitl也称为:MPU,Memory Protection Unitl为了消除术语的二义性,我们统一使用术语PUl保护单元提供了一个相当简单的替代MMU的方法来管理存储器。l对于不需要MMU的嵌入式系统而言,PU简化了硬件和软件,主要表现在不使用转换表,这样免去了硬件遍历转换表和软件建立与维护转换表。武汉工程大学计算机学院2024/4/18 周四保护单元的工作原理和作用lARM核的PU使用区域(region)来管理系统保护。区域是一个存储空间相关联的一组属性,处理器核将这些属性保存在协处理器CP15的一些寄存器里,并用0-7的号码标识每一个区域(它也是一个具有特定属性的逻辑存储空间)。l区域的存储边界通过两个属性进行配置:起始地址和大小。l区域的大小可以是4KB4MB的任何2的乘幂。武汉工程大学计算机学院2024/4/18 周四受保护区域的属性l操作系统可以为受保护区域分配更多的属性,包括:l访问权限、Cache和写缓存器策略l访问权限可以是:读/写、只读和不可访问l基于处理器模式的权限l管理模式、用户模式等lCache写策略l写直达Cache操作、无Cache操作、无写缓存器操作。武汉工程大学计算机学院2024/4/18 周四含PU的ARM处理器主存访问过程l当处理器访问主存的一个区域时,PU比较该区域的访问权限属性和当时的处理器模式。l如果请求符合区域访问标准,则PU允许内核读/写主存;如果存储器请求导致存储器访问违例,则PU产生一个异常信号。l异常信号被传到处理器核,处理器核判断异常是预取指令中止还是数据中止,然后跳转到对应的异常处理例程。武汉工程大学计算机学院2024/4/18 周四区域属性l有关区域的属性如下:l区域可以相互重叠l每一个区域有一个优先级,该优先级与分配给区域的权限无关l当区域重叠时,具有最高优先权的区域的属性可以覆盖其他区域的属性,优先权仅作用于重叠部分的地址。l区域的起始地址必须是其大小的倍数。l区域的大小是2的乘幂,2的12次方到32次方。武汉工程大学计算机学院2024/4/18 周四访问受保护区域时产生的异常l访问所定义区域外的存储器将产生异常。l如果是内核预取指令,则PU产生一个预取指令中止异常。l如果是存储器数据请求,则PU产生数据中止异常。武汉工程大学计算机学院2024/4/18 周四带PU的ARM核概要l以下给出了四种带PU的ARM核概要属性ARM核区域数目指令区域和数据区域是否分离指令和数据区域配置是否分离ARM740T8否否ARM940T16是是ARM946E-S8否是ARM1026EJ-S8否是 武汉工程大学计算机学院2024/4/18 周四在带PU的ARM系统中创建区域l要实现一个受PU控制主存的嵌入式系统,需要对主存中的不同块定义若干区域。l一个区域可以被创建一次,然后一直用到嵌入式系统运行结束;l也可以临时创建一个区域来满足一个特殊操作的需要,用完之后就加以删除。武汉工程大学计算机学院2024/4/18 周四含有PU的ARM核l含有8个受保护区域的ARM核lARM740TlARM946E-SlARM1026EJ-Sl含有16个受保护区域的ARM核lARM940T武汉工程大学计算机学院2024/4/18 周四初始化PU、Cache和写缓冲器l为了初始化PU、Cache和写缓冲器,控制系统必须定义在操作目标平台时所需要的保护区域。功能主存储器次存储器系统控制C1C0区域的cache属性C2C0区域的写缓冲器属性C3C0区域的访问权限属性C5C0区域的大小和位置C6C0C7 武汉工程大学计算机学院2024/4/18 周四4.6.7 ARM处理器的CachelARM处理器均带有Cache或者可以将片上存储器配置成Cache。当然,在不需要时也可以通过配置操作关闭Cache。lARM处理器的Cache地址映射均采用组相联映射。武汉工程大学计算机学院2024/4/18 周四4.6.8 快速上下文切换扩展lFCSE(Fast Context Switch Extension,快速上下文切换)位于CPU和MMU之间,如果两个进程使用了同样的虚拟地址空间,则对CPU而言,两个进程使用了同样的虚拟地址空间。快速上下文切换机构对各进程的虚拟地址进行变换,这样系统中除了CPU之外的部分看到的是经过快速上下文切换机构变换的虚拟地址。快速上下文切换机构将各进程的虚拟空间变换成不同的虚拟空间,这样在进行进程间切换时就不需要进行虚拟地址到物理地址的重映射。l在ARM处理器中只有ARMv6以上版本的处理器才支持FCSE功能l为了理解ARM处理器的FCSE功能,我们首先考察当虚拟存储器中任务切换时,主存中页表和物理存储器的随动切换。武汉工程大学计算机学院2024/4/18 周四ARM虚拟存储器用户任务上下文切换示例-1l任务1正在执行武汉工程大学计算机学院2024/4/18 周四ARM虚拟存储器用户任务上下文切换示例-2l任务2正在执行 武汉工程大学计算机学院2024/4/18 周四ARM虚拟存储器用户任务上下文切换示例-3l任务3正在执行 武汉工程大学计算机学院2024/4/18 周四3个任务的多任务环境中快速上下文切换扩展的举例:l切换前任务1正在运行 武汉工程大学计算机学院2024/4/18 周四3个任务的多任务环境中快速上下文切换扩展的举例:(续)l切换后任务2正在运行 武汉工程大学计算机学院2024/4/18 周四4.6.9 写缓存器(Write Buffer)l写缓存器是一个容量很小的片内的先进先出(FIFO)存储器,位于处理器核与主存之间。l写缓存器的主要用途是:当CPU输出数据时,总线恰好被占用而无法输出,此时,CPU可以把输出数据写入到写缓存器。当总线上没有比写缓存区优先级更高的掌控者时,写缓存区可以通过总线将数据写入内存。l CPU由于不需要等待写操作的完成而增强了性能。l写缓存区中的FIFO存储器在存储层次中与L1 Cache处于相同的层次。武汉工程大学计算机学院2024/4/18 周四4.7 ARM的异常中断lARM异常与中断不做严格意义上的区别lARM的中断向量表内存放的是响应异常和中断的转移指令而不是
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 环境建筑 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服