《嵌入式系统基础教程》第06讲_第4章ARM体系结构 85页.ppt

上传人:asd****56 文档编号:87340613 上传时间:2023-04-16 格式:PPT 页数:85 大小:796KB
返回 下载 相关 举报
《嵌入式系统基础教程》第06讲_第4章ARM体系结构 85页.ppt_第1页
第1页 / 共85页
《嵌入式系统基础教程》第06讲_第4章ARM体系结构 85页.ppt_第2页
第2页 / 共85页
点击查看更多>>
资源描述

《《嵌入式系统基础教程》第06讲_第4章ARM体系结构 85页.ppt》由会员分享,可在线阅读,更多相关《《嵌入式系统基础教程》第06讲_第4章ARM体系结构 85页.ppt(85页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、嵌入式系统原理与开发嵌入式系统原理与开发第第6讲讲南京大学计算机系 俞建新主讲2008年春季第第4章章ARM体系结构体系结构l本章主要介绍以下内容:lARM体系结构版本lARM处理器系列lARM流水线lARM工作模式和工作状态lARM寄存器组织lARM存储器组织lARM的异常中断lAMBA和ARM7TDMI2008年6月19日2南京大学计算机系ARM处理器基本特征处理器基本特征lARM处理器在设计上沿用了RISC技术的基本特征,但是也放弃了一些RISC设计特征。l沿用的有:通用寄存器堆,32位定长指令,Load/Store访问存储器指令和3地址数据运算指令。l没有沿用的有:重叠寄存器窗口,延迟

2、转移和单周期指令执行。l2001年以后,ARMv6体系结构中增加了60多条SIMD指令集。l现在可以认为ARM处理器体系结构以CISC结构为主,兼有RISC的优点。2008年6月19日3南京大学计算机系4.1 ARM体系结构版本体系结构版本l迄今为止主要出现过7个指令集体系结构版本,分别命名为V1-V7。l此外还有基于这些体系结构版本的变种版本。l目前主要在用的ARM处理器的体系结构是V4、V5、V6和V7。l每一个版本都继承了前一个版本的基本设计,指令集向下兼容。2008年6月19日4南京大学计算机系当前在用的当前在用的ARM核概况核概况l目前实际使用的ARM处理器核有二十多种l每一种处理器

3、核依据一个体系结构版本设计l这些ARM核的共同特点是:字长32位、RISC结构、低功耗、附加16位高密度指令集Thumbl获得广泛的嵌入式操作系统支持l包括:Windows CE、Palm OS、Symbian OS、Linux以及其他的主流RTOSl含有嵌入式跟踪宏单元ETM(Embedded Trace Macro)2008年6月19日5南京大学计算机系体系结构版本体系结构版本V1l这种版本在原型机ARM1上实现过,从未用于商用产品。l它包含:基本的数据处理指令(不包括乘法);字节、字和多字的加载/存储(load/store)指令;分支(branch)指令,包括设计用于子程序调用的分支与链

4、接指令;软件中断指令SWI。l版本V1只有26位寻址空间,现在已废弃不用。2008年6月19日6南京大学计算机系体系结构版本体系结构版本V2l增加了这几种指令:乘法和乘加指令;支持协处理器的指令;快速中断模式(FIQ)中额外的2个备份寄存器;SWP指令和SWPB指令。版本V2和它之后的版本V2a仍然只有26位寻址空间,现在已废弃不用。2008年6月19日7南京大学计算机系体系结构版本体系结构版本V3l这个体系结构版本将寻址范围扩展到了32位。当前程序状态信息由过去存于R15中移到一个新的当前程序状态寄存器CPSR(Current Program Status Register)中。增加了程序状

5、态保存寄存器SPSR(Saved Program Status Registers),以便当异常出现时保留CPSR的内容。增加了2个指令(MRS和MSR),允许访问新的CPSR和SPSR寄存器。2008年6月19日8南京大学计算机系体系结构版本体系结构版本V4l对体系结构版本V3进行了扩展,即:半字读取和存储指令;读取带符号的字节和半字数据的指令;增加了高密度指令集Thumb,这样V4体系结构有了T变量;有了在ARM/Thumb状态之间切换的指令;增加了处理器管理模式(SVC模式)。2008年6月19日9南京大学计算机系体系结构版本体系结构版本V5l提高了T变量中ARMThumb之间切换的效率

6、;让非T变量同T变量一样,使用相同的代码生成技术。增加了一个前导零计数(count leading zeros)指令,该指令允许更有效的整数除法和中断优先程序;增加了软件断点指令;为协处理器设计者增加了更多可选择指令;对由乘法指令如何设置标志进行了定义。2008年6月19日10南京大学计算机系体系结构版本体系结构版本V6l平均取指令和取数据延时减少,因Cache未命中造成的等待时间减少,总的内存管理性能提高达到30%左右;适应多处理器核的需要;增加了SIMD指令集。支持混合端序,能够处理大端序和小端序混合的数据;异常处理和中断处理得以改进,实时任务处理能力增强。2008年6月19日11南京大学

7、计算机系体系结构版本体系结构版本V7l扩展了的130条指令的Thumb-2指令集;NEON媒体引擎,该引擎具有分离的单指令多数据(SIMD)执行流水线和寄存器堆,可共享访问L1和L2高速缓存,因此提供了灵活的媒体加速功能并且简化了系统带宽设计;TrustZone技术,可以对电子支付和数字版权管理之类的应用业务提供可靠的安全措施。2008年6月19日12南京大学计算机系ARM处理器的处理器的3种指令集种指令集lARM指令集l32位,低密度指令集lThumb指令集l16位,高密度指令集lJazelle指令集l8位,Java字节码指令集2008年6月19日13南京大学计算机系ARM指令集和指令集和T

8、humb指令集指令集lARM体系结构版本中带有T变量的ARM处理器核可以工作在2种状态。lARM状态,运行32位的ARM指令集lThumb状态,运行16位的Thumb指令集l在任何一种工作状态可以通过转移指令切换到另一种工作状态。lARM和Thumb之间的状态切换不影响处理器工作模式和寄存器中的内容。l加电起动时处理器工作在ARM状态。2008年6月19日14南京大学计算机系指令集压缩指令集压缩l对于传统的微处理器体系结构,指令和数据具有同样的宽度。l与16位体系结构相比,32位体系结构在操纵32位数据时呈显了更高的性能,并可更有效地寻址更大的空间。l一般来讲,16位体系结构比32位体系结构具

9、有更高的代码密度,但只有近似一半的性能。lThumb在32位体系结构上实现了16位指令集,以提供:l比16位体系结构更高的性能;l比32位体系结构更高的代码密度。2008年6月19日15南京大学计算机系Thumb指令集指令集lThumb指令集是通常使用的32位ARM指令集的子集。l每条Thumb指令是16位长,有相应的对于处理器模型有相同效果的32位ARM指令。lThumb指令在标准的ARM寄存器配置下进行操作,在ARM和Thumb状态之间具有出色的互操作性。l执行时,16位Thumb指令透明地实时解压缩成32位ARM指令,且没有性能损失。lThumb具有32位核的所有优点:l32位寻址空间;

10、l32位寄存器;l32位移位器和算术逻辑单元ALU(Arithmetic Logic Unit);l32位存储器传送。2008年6月19日16南京大学计算机系Thumb指令集(续)指令集(续)lThumb因而可提供长的转移范围、强大的算术运算能力和大的寻址空间。lThumb代码的长度是ARM代码长度的65,当从16位存储系统运行时,提供ARM代码160的性能。lThumb使ARM7TDMI核非常适用于有存储器宽度限制且代码密度为重要的嵌入式应用场合。l由于ARM7TDMI具有16位Thumb指令集和32位ARM指令集,这使设计者能根据他们的应用要求在子程序级灵活地强调性能或代码长度。2008年

11、6月19日17南京大学计算机系Jazelle技术技术lJazelle的特点在于可以直接执行Java Byte Cord。它通过在ARM微处理器上增加Jazelle工作模式,使ARM指令和Java Byte Cord指令在同一个微处理器上执行。lARM的Jazelle技术使Java加速得到比基于软件的Java虚拟机(JVM)高得多的性能,和同等的非Java加速核相比功耗降低80。2008年6月19日18南京大学计算机系第第3种指令集种指令集 Jazellel执行8位指令l一个软件与硬件的混合体l能够加速Java字节码的执行lJava Bytecodesl为了执行Java字节码,需要Jazelle

12、技术外加一个Java虚拟机的特殊修订版。lJazelle的硬件部分只Java字节码的一个部分,其余由软件仿真。2008年6月19日19南京大学计算机系Jazelle指令集特征指令集特征 lCPSR寄存器lT=0,J=1l硬件完成超过60%的Java字节代码l其余由软件完成2008年6月19日20南京大学计算机系ARM体系结构版本变量列表体系结构版本变量列表(第(第1种形式)种形式)后后缀变缀变量量功能功能说说明明TThumb指令集,Thumb指令的长度为16位。目前Thumb有两个版本。Thumb1用于ARM4的T变种,Thumb2用于ARM5以上的T变种。D含JTAG调试器,支持片上调试。M

13、提供用于进行长乘法操作的ARM指令,产生全64位结果。I嵌入式跟踪宏单元(EmbeddedICE macrocell)硬件部件,提供片上断点和调试点支持。E增强型DSP指令,增加了几条16位乘法和加法指令,加减法指令可以完成饱和带符号算术运算。JJAVA加速器Jazelle,与普通的JAVA虚拟机相比较,Jazelle使Java代码运行速度提高了8倍,而功耗降低了80%。F向量浮点单元S可综合版本,以源代码形式提供的,可以被EDA工具使用。2008年6月19日21南京大学计算机系ARM体系结构变量列表体系结构变量列表(第(第2种形式)种形式)2008年6月19日22南京大学计算机系ARM核版本

14、命名规则核版本命名规则l命名规则的字符串表达式如下:lARMxyzTDMIEJF-Sl其中花括号的内容表示可有可无。前三个参数含义在下面说明:lx表示系列号,例如:ARM7,ARM9,ARM10ly表示内部存储管理和保护单元,例如:ARM72,ARM92lz表示含有高速缓存(Cache),例如:ARM720,ARM940l其余体系结构版本变量已经在前面幻灯片给出。2008年6月19日23南京大学计算机系ARM核版本命名规则(续)核版本命名规则(续)l说明:在ARM7TDMI之后出产的所有ARM内核名称,即使“ARM”字串后面没有包含“TDMI”字符串,也都默认包含了该字串。对于2005年以后A

15、RM公司投入市场的ARMv7体系结构的处理器核,使用字符串“ARM Cortex”打头,随后附加一个字母后缀“-A”,“-R”或者“-M”,表示该处理器核适合应用的领域;其中:后缀A表示应用(Application)、R表示实时控制(Real time)、M表示微控制器(Micro Controller)。2008年6月19日24南京大学计算机系ARM核与体系结构版本间的关系核与体系结构版本间的关系2008年6月19日25南京大学计算机系ARM体系结构版本详解体系结构版本详解2008年6月19日26南京大学计算机系ARM处理器核的处理器核的3种应用类型种应用类型 处处理器核分理器核分类类硬件特

16、点硬件特点频频率率性能性能功耗功耗典型用途典型用途/产产品品举举例例应用处理器符号标记:A配备MMU和Cache 最快最高合理媒体播放器,产品举例:MP3,机顶盒,iPOD,智能手机,PAD实时控制处理器符号标记:R去除MMU,备有Cache较快合理较低数字信号处理,产品举例:汽车ABS系统,路由器,交换机,航电系统微控制器符号标记:M没有存储子系统,即不含MMU。合理适中极低日常电器控制,产品举例:门禁系统,游戏控制器,家庭网关,洗衣机控制器2008年6月19日27南京大学计算机系当前主流当前主流ARM处理器核一览表处理器核一览表处理器核系列应用处理器实时控制器微控制器ARM Cortex系

17、列ARM Cortex-A8ARM Cortex-R4ARM Cortex-M3ARM11系列ARM1136J-SARM1176JZ-SARM1156T2ARM10系列ARM1020EARM1022EARM1026EJ-SARM1026EJ-SARM9系列ARM920TARM922TARM926EJARM946EARM966EARM948EARM7系列ARM720TARM7TDMIARM7EJ-SARM7TDMI2008年6月19日28南京大学计算机系4.2 ARM处理器系列处理器系列l目前在用的ARM处理器系列主要有6个lARM7lARM9lARM10ElARM11lSecurCore lC

18、ortex 2008年6月19日29南京大学计算机系ARM7系列处理器特点系列处理器特点lARM7系列为低功耗32位核,适用于对价位和功耗敏感的消费类应用。lARM7系列处理器具有以下特点:l含有嵌入式ICERT逻辑;l非常低的功耗;l冯诺依曼结构;lMIPS/MHz的三级流水线。2008年6月19日30南京大学计算机系ARM7系列处理器特点系列处理器特点2008年6月19日31南京大学计算机系其它其它ARM7处理器核处理器核lARM7TDMI-SlARM7TDMI的可综合(synthesizable)版本(软核);l最适用于可移植性和灵活性为关键的现代设计。lARM720Tl全性能的MMU;

19、l最适用于低功耗和体积为关键的应用。lARM7EJlARM7EJ是Jazelle和DSP指令集的最小及最低功耗的实现。2008年6月19日32南京大学计算机系ARM9系列处理器系列处理器vARM9系列是高性能和低功耗特性方面最佳的硬宏单元。它具有:q5级流水线q提供1.1MIPSMHz的哈佛结构处理能力vARM9主要应用领域#先进的引擎管理#网络电脑#仪器仪表#智能电话#安全系统#机顶盒#高端打印机#PDA2008年6月19日33南京大学计算机系ARM9系列处理器的组成系列处理器的组成2008年6月19日34南京大学计算机系lARM920T和ARM922Tl全性能的MMU;l指令和数据Cach

20、e;l高速AMBA基于总线的接口:AMBA片上总线是一个已建立的、用于SOC设计框架的开放标准。lARM940Tl保护单元;l指令和数据Cache;l高速AMBA基于总线的接口ARM9系列处理器特点系列处理器特点2008年6月19日35南京大学计算机系ARM9E系列系列lARM9E系列为可综合处理器l具有以下特点:lDSP扩充;l嵌入式ICERT调试逻辑;l提供1.1 MIPSMHz的5级流水线和哈佛结构;l紧耦合存储器(TCM)接口,可使存储器以最高的处理器速度运转,可直接连接到内核上,非常适用于必须有确定性能和快速访问时间的代码。2008年6月19日36南京大学计算机系ARM9E的组成的组

21、成2008年6月19日37南京大学计算机系ARM9E系列处理器特点系列处理器特点lARM966E-Sl最适用于硅片面积为关键而对Cache无要求的实时嵌入式应用;l可配置的TCM大小:0KB、4KB、8KB、16KB,可高达64MB。lARM946E-Sl集成的保护单元,提供实时嵌入式操作系统的Cache核方案。每个配置的Cache大小为:0KB、4KB、8KB、16KB,高达1MB。TCM是紧密耦合存储器的缩略语多处理器阵列上使用2008年6月19日38南京大学计算机系紧耦合存储器在紧耦合存储器在ARM V6处理器处理器存储系统模型中的位置存储系统模型中的位置2008年6月19日39南京大学

22、计算机系ARM9E系列处理器的特点系列处理器的特点lARM926EJ-SlJazelle扩充;l每个可配置的Cache大小:4KB、8KB、16KB,高达128KB;l分立的指令和数据高速AHB接口;l全性能的MMUl主要智能手机,3G手机和媒体播放器使用的处理器均采用ARM926EJ-S核。2008年6月19日40南京大学计算机系ARM10系列处理器系列处理器lARM10系列为硬宏单元,具有如下特点:lDSP扩展;l嵌入式ICE-RT;l全性能MMU;lCache;l对于指令和数据,64位AHB接口;l6级流水线;l内部64位数据通路;l1.25 MIPSMHz;l在实际应用中,与同等ARM

23、9器件相比,在同样的时钟速度下,性能提高了50。2008年6月19日41南京大学计算机系ARM10系列处理器的组成系列处理器的组成2008年6月19日42南京大学计算机系SecurCore SC100系列系列lSecurCore SC100系列专为安全需要而设计l具有特定的抗窜改(resist tampering)和反工程(reverse engineering)特性;l带有灵活的保护单元,以确保操作系统和应用数据的安全。2008年6月19日43南京大学计算机系ARM11系列处理器系列处理器lARM11核是2001年10月公布的lV6体系结构版本的第1个实现,具有以下特点:l主频:350-50

24、0MHzl工艺:0.13微米l功耗:0.4mW/Mhzl电压:1.2Vl8级标量流水线l64位数据通路2008年6月19日44南京大学计算机系掌握掌握ARM处理器的注意点处理器的注意点l初学者要弄清楚三个基本概念lARM体系结构版本lARM公司规定,长期使用lARM处理器核型号lARM公司规定,中期使用lARM处理器型号l多个公司生产,各个公司自行规定2008年6月19日45南京大学计算机系ARM7TDMI内核产品举例内核产品举例lARM7TDMI是一个经典的ARM内核l体系结构版本是ARMv4Tl列出4个基于ARM7TDMI核制造的嵌入式处理器lS3C44B0X,三星公司生产lSEP3203

25、,东南大学集成电路研究所lAT91SAM7,Atmel公司lLPC2114,飞利浦公司2008年6月19日46南京大学计算机系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指令集。2008年6月19日47南京大学计算机系AR

26、M Cortex处理器举例处理器举例lARM Cortex-A8lARM Cortex-M3lARM Cortex-R42008年6月19日48南京大学计算机系ARM Cortex系列处理器系列处理器lThe ARM Cortex family comprises three series,all implement the Thumb-2 instruction set.lARM Cortex-A Seriesapplications processors for complex OS and user applications.Supports the ARM,Thumb and Thum

27、b-2 instruction setslARM Cortex-R Seriesembedded processors for real-time systems.Supports the ARM,Thumb,and Thumb-2 instruction setslARM Cortex-M Seriesdeeply embedded processors optimized for cost sensitive applications.Supports the Thumb-2 instruction set only 2008年6月19日49南京大学计算机系ARM Cortex-A8简介简

28、介lThe ARM Cortex-A8 processor is the first applications processor based on the ARMv7 architecture and is the highest performance,most power-efficient processor ever developed by ARM.With the ability to scale in speed from 600MHz to greater than 1GHz,the Cortex-A8 processor can meet the requirements

29、for power-optimized mobile devices needing operation in less than 300mW;and performance-optimized consumer applications requiring 2000 Dhrystone MIPS.2008年6月19日50南京大学计算机系ARM Cortex-A8简介(续)简介(续)lThe Cortex-A8 processor is ARMs first superscalar processor featuring technology for enhanced code density

30、 and performance,NEON technology for multimedia and signal processing,and Jazelle RCT(Runtime Compilation Target)technology for efficient support of ahead-of-time and just-in-time compilation of Java and other bytecode languages.2008年6月19日51南京大学计算机系TI公司的公司的OMAP 3430处理器架构图处理器架构图2008年6月19日52南京大学计算机系Co

31、rtex-A8内核的应用举例内核的应用举例TI公司的公司的OMAP 3430处理器处理器l业界第一个具有先进的超级标量Cortex-A8内核的处理器l业界第一个采用 65nm CMOS 工艺技术设计的ARM处理器,提高了处理性能 l集成的图像信号处理器(ISP)可提供更快、更高品质的图像捕捉功能,并且可以降低系统成本l复合视频和 S 端子 TV 输出 lXGA(1024x768 像素)、16M 色(24 位定义)显示支持 l高速 USB2.0 OTG 支持2008年6月19日53南京大学计算机系Cortex-M3内核的应用举例内核的应用举例意法半导体的意法半导体的STM32微控制器微控制器l不

32、支持ARM指令集,只支持Thumb-2指令集l中断向量表与其他ARM处理器有明显区别lSTM32微控制器有两个系列lSTM32F103“增强型”系列,72MHz主频lSTM32F101“基本型”系列,36MHz主频l2.0到3.6V电源,当复位电路工作时,在待机模式下最低功耗2A,最适合电池供电的应用设备。l比同级别的基于ARM7TDMI的产品快30%。换句话说,如果处理性能相同,STM32产品功耗比同级别产品低75%。2008年6月19日54南京大学计算机系4.3 ARM流水线流水线l计算机指令执行过程的各个阶段相对独立,因此CPU内部的指令译码执行逻辑电路可以设计成分级的处理部件,实行流水

33、处理,即流水线方式。l流水线技术大大加快了处理器的指令执行速度,因此现代CPU设计方案中几乎都采用了流水线技术。lARM处理器设计也不例外。所有的ARM处理器核都使用了流水线设计。2008年6月19日55南京大学计算机系ARM7流水线流水线lARM7TDMI核使用3级指令流水线。lARM7处理器核的指令执行分为3个阶段:取指、译码和执行。取指,由取指部件处理,把指令从内存中取出,放入指令流水线;译码,指令被译码。在这一级指令占有译码逻辑,不占有数据通路;执行,执行流水线中已经被译码的指令,在这一级,指令占有数据通路,移位操作,读通用寄存器,ALU产生结果,写通用寄存器。2008年6月19日56

34、南京大学计算机系ARM7流水线流水线架构图架构图2008年6月19日57南京大学计算机系ARM9流水线流水线 lARM9TDMI采用了5级流水线。这5个指令执行阶段的功能如下:l取指,从指令存储器中读取指令,放入指令流水线。l译码,对指令进行译码,从通用寄存器组中读取操作数。由于寄存器组有3个读端口,大多数ARM指令能在一个时钟周期内读取其操作数。2008年6月19日58南京大学计算机系ARM9流水线(续)流水线(续)l执行,将其中的一个操作数移位,并在ALU中产生结果。如果指令是Load或Store指令,则在ALU中计算存储器的地址。l数据缓冲,如果需要,则访问数据存储器;否则,ALU只是简

35、单地缓冲一个时钟周期,以便使所有指令具有同样的流水线流程。l写回,将指令的结果写回到寄存器组。包括任何从存储器读取的数据。2008年6月19日59南京大学计算机系ARM9流水线流水线架构图架构图2008年6月19日60南京大学计算机系ARM10和和ARM11流水线流水线lARM10流水线为6级流水线lARM11流水线为8级流水线2008年6月19日61南京大学计算机系Cortex-R4流水线流水线 lCortex-R4处理器的流水线为8级,参看下图。其特点是双发射指令流水线,含动态分支预测,执行速度达到1.6 MIPS/MHz(Dhrystone基准测试程序)。其中前3级是指令预取单元PFU,

36、包括第1阶段取指,第2阶段取指和译码。2008年6月19日62南京大学计算机系4.4 ARM工作模式和工作状态工作模式和工作状态l异常l指计算机脱离正常的运算顺序,临时改变原先的执行顺序,转而执行一个子程序,完成一个预先准备的特殊服务例程。l中断lARM公司对异常处理一律用中断服务子程序处理。这样,在概念上ARM处理器不再区分异常和中断,异常处理与中断处理相同。2008年6月19日63南京大学计算机系ARM 5种异常工作模式种异常工作模式lARM处理器内部安排了5种异常中断处理的工作模式。lABT(取指中止或者取操作数中止)lUND(进入未定义指令陷阱)lIRQ(普通中断)lFIQ(快速中断)

37、lSVC(管理)2008年6月19日64南京大学计算机系ARM处理器工作模式处理器工作模式lARM处理器支持7种工作模式l用户模式l特点:不能访问某些受操作系统保护的资源,也不能改变工作模式。l6种特权模式l分类:系统模式,5种异常模式l特点:能访问全部资源,能改变工作模式。2008年6月19日65南京大学计算机系ARM处理器工作模式处理器工作模式2008年6月19日66南京大学计算机系模式使用说明(模式使用说明(1)lSVC模式是操作系统内核代码运行的模式,USR模式通常是用户代码运行模式。处理器一旦进入USR模式,必须通过SWI异常中断才能进入SVC模式调用内核代码的接口。但是,在没有MM

38、U进行内存保护的场合,USR模式也能够访问到SVC模式的内存空间,因此使用USR隔离用户级代码没有意义。2008年6月19日67南京大学计算机系模式使用说明(模式使用说明(2)lIRQ和FIQ模式是微处理器收到中断信号后强制处理器进入的模式,用于中断处理。SYS模式用于嵌套中断处理。有人简单地把SYS模式与PC机的Ring 0特权级别工作模式相类比,认为它是特权级别的操作系统代码运行模式,这种观点是错误的。ARM的SYS模式与PC机的特权级运行模式是不能够简单比较的。2008年6月19日68南京大学计算机系模式使用说明(模式使用说明(3)lABT和UND模式是真正意义上的“异常”,一旦出现就要

39、进入对应的异常中断服务子程序进行处理。2008年6月19日69南京大学计算机系ARM处理器工作状态处理器工作状态lARM体系结构版本中带有T变量的ARM处理器核可以工作在2种状态。ARM状态状态,机器指令为32位的ARM指令集,字对齐取指执行ARM指令。Thumb状态状态,机器指令为16位的Thumb指令集,半字对齐取指执行Thumb指令。l在任何一种工作状态可以通过转移指令切换到另一种工作状态。ARM和Thumb之间的状态切换不影响处理器工作模式和寄存器中的内容。l加电起动时处理器工作在ARM状态。2008年6月19日70南京大学计算机系两种工作状态之间切换两种工作状态之间切换l进入进入Th

40、umb状态状态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状态。2008年6月19日71南京大学计算机系工作状态切换方法工作状态切换方法l使用BX指令可以将ARM7TDMI(-S)

41、内核的工作状态在ARM状态和Thumb状态之间进行切换。l参看下例:;从ARM状态转变为Thumb状态LDRR0,=Lable+1BXR0;从Thumb 状态转变为ARM状态LDRR0,=LableBXR02008年6月19日72南京大学计算机系4.5 ARM 寄存器组织寄存器组织lARM处理器总共有37个32位寄存器,其中有31个通用寄存器,6个状态寄存器(到目前为止只定义了12位)。这些寄存器按照工作模式分成不同的组。编程时哪些寄存器组可用,哪些寄存器组不可用,由处理器的状态和模式决定。下表示出了ARM工作状态下每一种模式下使用的寄存器组。2008年6月19日73南京大学计算机系ARM寄存

42、器组织寄存器组织2008年6月19日74南京大学计算机系影子寄存器影子寄存器l在ARM寄存器组织表中带有阴影色块的寄存器称为影子寄存器,它们是为处理器不同工作模式配备的专用物理寄存器。在异常模式下,它们将代替用户或者系统模式下使用的部分寄存器。l在管理、中止、未定义和普通中断模式下,影子寄存器的数量均为2个。而快速中断为7个。2008年6月19日75南京大学计算机系ATPCS命名规则命名规则lATPCS是集成开发环境ADS中规定的子程序之间调用的基本规则。在该规则中对ARM处理器中的寄存器给出了命名规则。程序员在编程时使用ATPCS规定的寄存器名称可以方便记忆,提高工作效率,减少差错。2008

43、年6月19日76南京大学计算机系ARM寄存器的使用规则(寄存器的使用规则(1)l子程序间通过寄存器R0R3来传递参数。这时,寄存器R0R3可记作a0a3。被调用的子程序在返回前无需恢复寄存器R0R3的内容。l在子程序中,使用寄存器R4R11来保存局部变量。这时,寄存器R4R11可以记作v1v8。如果在子程序中使用了寄存器v1v8中的某些寄存器,则子程序进入时必须保存这些寄存器的值,在返回前必须恢复这些寄存器的值。在Thumb程序中,通常只能使用寄存器R4R7来保存局部变量。2008年6月19日77南京大学计算机系ARM寄存器的使用规则(寄存器的使用规则(2)l寄存器R12用作过程调用中间临时寄

44、存器,记作IP。在子程序之间的连接代码段中常常有这种使用规则。l寄存器R13用作堆栈指针,记作SP。在子程序中寄存器R13不能用作其他用途。寄存器SP在进人子程序时的值和退出子程序时的值必须相等。l寄存器R14称为连接寄存器,记作LR。它用于保存子程序的返回地址。如果在子程序中保存了返回地址,寄存器R14则可以用作其他用途。l寄存器R15是程序计数器,记作PC。它不能用作其它用途。2008年6月19日78南京大学计算机系AAPCS标准标准l2007年ARM公司正式推出了AAPCS标准,它是ATPCS的改进版。实际上,有关程序设计中的过程调用,ARM公司为ARM处理器先后建立了4个标准,参看下表

45、。2008年6月19日79南京大学计算机系ARM过程调用标准过程调用标准ATPCS和和AAPCS缩缩略略语语全称全称使用状况使用状况AAPCSProcedure Call Standard for the ARM Architecture正在使用ATPCSARM-Thumb Procedure Call Standard 被更新,在用APCSARM Procedure Call Standard停止使用TPCSThumb Procedure Call Standard停止使用2008年6月19日80南京大学计算机系第第6讲重点讲重点lARM处理器基本特征lARM处理器体系结构版本lARM核版本

46、命名规则lARM处理器核的3种应用类型l主流的6种ARM处理器核l紧耦合处理器(TCM)lCortex-A8和Cortex-M3的应用实例2008年6月19日81南京大学计算机系第第6讲重点(续)讲重点(续)lARM处理器的流水线lARM处理器的7种工作模式l7种工作模式的一般性使用原则lARM处理器的2种工作状态lARM处理器的寄存器组织lARM处理器的子程序调用规则lATPCSlAAPCS2008年6月19日82南京大学计算机系第第6讲讲 复习题与思考题复习题与思考题l简述ARM体系结构的演变过程,并对各种ARM体系结构版本的变种做简单介绍。l有哪几种ARM处理器核?ARM处理器核的用途分

47、为哪几种?l试列举几款由Atmel、飞利浦、高通、NEC和三星等半导体集成电路公司出产的典型ARM核处理器与相应的基本技术指标。lARM处理器的工作模式有几种?设置这些模式是必要的吗?每一种模式分别有哪几个独有特点?l能否简单地概述一下ARM处理器的寄存器组织?l如何使得ARM处理器在ARM状态和Thumb状态之间进行切换?2008年6月19日83南京大学计算机系第第6讲讲 复习题与思考题(续)复习题与思考题(续)lCPSR和SPSR的使用特点分别是什么?lATPCS规定了哪些子程序调用规则?l按照ATPCS规则,IP、SP、LR和PC分别是哪些通用寄存器?它们中的每一个寄存器用途都是严格定义的吗?lARM处理器的寄存器都是程序员可访问的吗?l什么是ARM处理器的影子寄存器?2008年6月19日84南京大学计算机系第第6讲结束讲结束谢谢大家的使用!欢迎大家提出宝贵意见和建议!2008年6月19日85南京大学计算机系

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 技术资料 > 其他杂项

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁