01--ARM体系结构与内核ppt课件_第1页
01--ARM体系结构与内核ppt课件_第2页
01--ARM体系结构与内核ppt课件_第3页
01--ARM体系结构与内核ppt课件_第4页
01--ARM体系结构与内核ppt课件_第5页
已阅读5页,还剩94页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第02章 ARM技术与ARM体系结构1.ARM体系结构版本2.ARM内核3.ARM流水线技术1. ARM体系结构版本体系结构版本 计算机体系结构分类计算机体系结构分类 ARMARM版本及系列版本及系列计算机体系结构分类计算机体系结构分类 两种典型的结构两种典型的结构 : 冯冯诺依曼结构诺依曼结构 哈佛体系结构哈佛体系结构 冯冯诺依曼结构诺依曼结构 冯冯诺依曼机:将数据和指令都存储在存储器中的诺依曼机:将数据和指令都存储在存储器中的计算机。计算机。 计算系统由一个中央处理单元计算系统由一个中央处理单元CPU和一个存和一个存储器组成。存储器拥有数据和指令,并且可以根储器组成。存储器拥有数据和指令,

2、并且可以根据所给的地址对它进行读或写。据所给的地址对它进行读或写。 哈佛体系结构哈佛体系结构 哈佛机:为数据和程序提供了各自独立的存储器。哈佛机:为数据和程序提供了各自独立的存储器。 程序计数器只指向程序存储器而不指向数据存储器,程序计数器只指向程序存储器而不指向数据存储器,这样做的后果是很难在哈佛机上编写出一个自修改这样做的后果是很难在哈佛机上编写出一个自修改的程序的程序 。 独立的程序存储器和数据存储器为数字信号处理提独立的程序存储器和数据存储器为数字信号处理提供了较高的性能。供了较高的性能。 ARM 7使用冯使用冯诺依曼体系结构。诺依曼体系结构。 ARM 9使用哈佛体系结构。使用哈佛体系

3、结构。 ARM公司简介公司简介ARM是是Advanced RISC Machines的缩写,它是一的缩写,它是一家微处理器行业的知名企家微处理器行业的知名企业,该企业设计了大量高业,该企业设计了大量高性能、廉价、耗能低的性能、廉价、耗能低的RISC (精简指令集处理(精简指令集处理器。器。 1985年第一个年第一个ARM原原型在英国剑桥诞生。型在英国剑桥诞生。 公司的特点是公司的特点是只设计芯片,而不生产。只设计芯片,而不生产。它提供它提供ARM技术知识产权技术知识产权IP核,将技术授权给核,将技术授权给世界上许多著名的半导体、世界上许多著名的半导体、软件和软件和OEM厂商,并提供厂商,并提供

4、服务。服务。ARMARM处理器的应用处理器的应用到目前为止,基于到目前为止,基于ARMARM技术的微处理器应用约占据了技术的微处理器应用约占据了3232位嵌入式微处理位嵌入式微处理器器7575以上的市场份额。以上的市场份额。全球全球80%80%的的GSM/3GGSM/3G手机、手机、99%99%的的CDMACDMA手机以及绝大多数手机以及绝大多数PDAPDA产品均采用产品均采用ARMARM体系的嵌入式处理器。体系的嵌入式处理器。“掌上计算相关的所有领域皆为其所主宰。掌上计算相关的所有领域皆为其所主宰。主要应用:消费类电子,无线、图像应用开放平台、存储、自动化、主要应用:消费类电子,无线、图像应

5、用开放平台、存储、自动化、智能卡、智能卡、SIMSIM卡等。卡等。ARMARM处理器的三大特点:耗电少功能强、处理器的三大特点:耗电少功能强、1616位位/32/32位双指令集、众多合位双指令集、众多合作伙伴。作伙伴。将技术授权给其它芯片厂商形成各具特色的ARM芯片. . .各各ARM体系结构版本体系结构版本 ARM体系结构从最初开发到现在有了很大的改体系结构从最初开发到现在有了很大的改进,并仍在完善和发展。进,并仍在完善和发展。 为了清楚地表达每个为了清楚地表达每个ARM应用实例所使用的指应用实例所使用的指令集,令集,ARM公司定义了公司定义了7种主要的种主要的ARM指令集体指令集体系结构版

6、本,以版本号系结构版本,以版本号V1V7表示。表示。 ARM体系结构的基本版本版本版本变种系列号处理器核V1V1ARM1ARM1V2V2ARM2ARM2V2aARM2aSARM3ARM3V3V3ARM6ARM6、ARM600、ARM610ARM7ARM7、ARM700、ARM710V4V4TARM7TDMI、ARM710T、ARM720T、ARM740TV4ARM8StrongARM、ARM8、ARM810V4TARM9ARM9TDMI、ARM920T、ARM940TV5V5TEARM9E-SARM10ARM10TDMI、ARM1020EV6V6ARM11ARM11、ARM11562-S、AR

7、M1156T2F-S、ARM11JZF-SV7V7ARM CotexARM Cotex-A8、ARM Cotex-R4、ARM Cotex-M3ARM体系结构的基本版本命名规则ARMxyzTDMIEJF-S大括号内的字母是可选的,各个字母的含义如下: x 系列号,例如ARM7中的“7”、ARM9中的“9”; y 内部存储管理/保护单元,例如ARM72中的“2”、ARM94中的“4”; z 内含有高速缓存Cache; T 技持16位的Thumb指令集; D支持JTAG片上调试; M支持用于长乘法操作64位结果的ARM指令,包含快速乘法器; I 带有嵌入式追踪宏单元ETMEmbedded Trac

8、e Macro),用来设置断点和观察点的调试硬件; E 增强型DSP指令基于TDMI); J含有Java加速器Jazelle,与Java虚拟机相比,Java加速器Jazelle使Java代码运行速度提高了8倍,功耗降低到原来的80%; F 向量浮点单元; S可综合版本,意味着处理器内核是以源代码形式提供的。这种源代码形式又可以被编译成一种易于EDA工具使用的形式。ARM体系结构的基本版本命名规则ARM命名规则举例命名规则举例 ARM7TMDI是目前使用最广泛的是目前使用最广泛的32位嵌入式位嵌入式RISC处理器,属低端处理器,属低端ARM处理器核。处理器核。支持高密度支持高密度1616位的压缩

9、位的压缩ThumbThumb指令集;指令集;支持片上调试支持片上调试Debug Debug ;支持支持6464位乘法位乘法MultiplierMultiplier) ;嵌入式嵌入式Embeded-ICE,Embeded-ICE,支持片上断点和调试点;支持片上断点和调试点;ARM7TDMI ARM7TDMI 的可综合的可综合synthesizablesynthesizable版本版本软核),对应用工程师来说其编程模型与软核),对应用工程师来说其编程模型与ARM7TDMI ARM7TDMI 一致;一致;ARM7 T D M I - SARM7 T D M I - SARM版本版本: V1版架构版架

10、构 该版架构只在原型机该版架构只在原型机ARM1出现过,只有出现过,只有26位的寻址空间,没有用于商业产品。位的寻址空间,没有用于商业产品。其基本性能有其基本性能有:基本的数据处理指令无乘法);基本的数据处理指令无乘法);基于字节、半字和字的基于字节、半字和字的Load/Store指令指令;转移指令,包括子程序调用及链接指令;转移指令,包括子程序调用及链接指令;供操作系统使用的软件中断指令供操作系统使用的软件中断指令SWI;寻址空间:寻址空间:64MB226)。)。 ARM版本版本: V2版架构版架构 该版架构对该版架构对V1版进行了扩展,例如版进行了扩展,例如ARM2和和ARM3V2a架构,

11、版本架构,版本2a是版本是版本2的变种,的变种,ARM3芯片采用了版本芯片采用了版本2a。同。同样为样为26位寻址空间,现在已经废弃不再使用。位寻址空间,现在已经废弃不再使用。V2版架构与版本版架构与版本V1相比,增加了以下功能:相比,增加了以下功能:乘法和乘加指令;乘法和乘加指令;支持协处理器操作指令;支持协处理器操作指令;快速中断模式;快速中断模式;SWP/SWPB的最基本存储器与寄存器交换指令的最基本存储器与寄存器交换指令;寻址空间:寻址空间:64MB。ARM版本版本 : V3版架构版架构 V3版架构(版架构( 目前已废弃目前已废弃 )对)对ARM体系结构作了较大的改动:体系结构作了较大

12、的改动:寻址空间增至寻址空间增至32位位4GB););当前程序状态信息从原来的当前程序状态信息从原来的R15寄存器移到当前程序状态寄存寄存器移到当前程序状态寄存器器CPSR中中Current Program Status Register);增加了程序状态保存寄存器增加了程序状态保存寄存器SPSRSaved Program Status Register););增加了中止增加了中止Abort和未定义和未定义2种处理器模式;种处理器模式;增加了增加了MRS/MSR指令,以访问新增的指令,以访问新增的CPSR/SPSR寄存器;寄存器;增加了从异常处理返回的指令功能。增加了从异常处理返回的指令功能。

13、ARM版本版本 : V4版架构版架构 不在为了与以前的版本兼容而支持不在为了与以前的版本兼容而支持26位体系结构,并位体系结构,并明确了哪些指令会引起未定义指令异常发生,明确了哪些指令会引起未定义指令异常发生,V4版架构在版架构在V3版上作了进一步扩充,版上作了进一步扩充,V4版架构是目前应用最广的版架构是目前应用最广的ARM体系结构,体系结构,ARM7、ARM8、ARM9和和StrongARM都都采用该架构。采用该架构。指令集中增加了以下功能:指令集中增加了以下功能:符号化和非符号化半字及符号化字节的存符号化和非符号化半字及符号化字节的存/取指令;取指令;增加了增加了16位位Thumb指令集

14、;指令集;完善了软件中断完善了软件中断SWI指令的功能;指令的功能;处理器系统模式引进特权方式时使用用户寄存器操作处理器系统模式引进特权方式时使用用户寄存器操作;把一些未使用的指令空间捕获为未定义指令。把一些未使用的指令空间捕获为未定义指令。ARM版本版本 : V5版架构版架构 V5版架构是在版架构是在V4版基础上增加了一些新的指令,版基础上增加了一些新的指令,ARM10和和Xscale都采用该版架构。都采用该版架构。 这些新增命令有:这些新增命令有:带有链接和交换的转移带有链接和交换的转移BLX指令;指令;计数前导零计数前导零CLZ指令;指令;BRK中断指令;中断指令;增加了数字信号处理指令

15、增加了数字信号处理指令V5TE版);版); 为协处理器增加更多为协处理器增加更多可选择的指令;可选择的指令;改进了改进了ARM/Thumb状态之间的切换效率;状态之间的切换效率;E-增强型增强型DSP指令集,包括全部算法操作和指令集,包括全部算法操作和16位乘法操作;位乘法操作;J-支持新的支持新的JAVA,提供字节代码执行的硬件和优化软件加,提供字节代码执行的硬件和优化软件加速功能。速功能。ARM版本版本 : V6版架构版架构 V6版架构是版架构是2019年发布的,首先在年发布的,首先在2019年年春季发布的春季发布的ARM11处理器中使用。处理器中使用。 此架构在此架构在V5版基础上增加了

16、以下功能:版基础上增加了以下功能:THUMBTM:35%代码压缩;代码压缩;DSP扩充:高性能定点扩充:高性能定点DSP功能;功能;JazelleTM:Java性能优化,可提高性能优化,可提高8倍;倍;Media扩充:音扩充:音/视频性能优化,可提高视频性能优化,可提高4倍。倍。 ARMv7架构采用了 Thumb-2技术 Thumb-2技术是在ARM的Thumb代码压缩技术的基础上发展起来的,并且保持了对现存ARM解决方案的完整的代码兼容性。 Thumb-2技术比纯32位代码少使用 31的内存,减小了系统开销。同时能够提供比已有的基于Thumb技术的解决方案高出38的性能。ARMv7架构还采用

17、了NEON技术 将DSP和媒体处理能力提高了近4倍,并支持改良的浮点运算,满足下一代3D图形、游戏物理应用以及传统嵌入式控制应用的需求。ARMv7还支持改良的运行环境 迎合不断增加的JIT(Just In Time)和DAC(DynamicAdaptive Compilation)技术的使用。另外,ARMv7架构对于早期的ARM处理器软件也提供很好的兼容性。 ARM版本版本VII : V7版架构版架构ARM版本版本VII : V7版架构版架构 ARM Cortex处理器系列都是基于ARMv7架构的产品ARM Cortex-A系列是针对日益增长的,运行包括Linux、Windows,CE和Sym

18、bian操作系统在内的消费娱乐和无线产品设计的;ARM Cortex-R系列针对的是需要运行实时操作系统来进行控制应用的系统,包括汽车电子、网络和影像系统;ARM Cortex-M系列则面向微控制器领域,为那些对开发费用非常敏感同时对性能要求不断增加的嵌入式应用所设计的。 常用ARM核简介 ARM处理器核简介 ARM公司开发了很多系列的ARM处理器核,目前最新的系列已经是ARM11了,而ARM6核以及更早的系列已经很罕见了。目前应用比较广泛的系列是:注:“ARM核并不是芯片,ARM核与其它部件如RAM、ROM、片内外设组合在一起才能构成现实的芯片。ARM7ARM9ARM9EARM10Secur

19、CoreXscale常用ARM核简介 ARM处理器核简介ARM7 该系列包括ARM7TDMI、ARM7TDMI-S、带有高速缓存处理器宏单元的ARM720T和扩充了Jazelle的ARM7EJ-S。该系列处理器提供Thumb 16位压缩指令集和EmbededICE软件调试方式,适用于更大规模的SoC设计中。 ARM7系列广泛应用于多媒体和嵌入式设备,包括Internet设备、网络和调制解调器设备,以及移动电话、PDA等无线设备。常用ARM核简介 ARM处理器核简介ARM9 该系列包括ARM9TDMI、ARM920T和带有告诉缓存处理器宏单元的ARM940T。除了兼容ARM7系列,而且能够更加灵

20、活的设计。 ARM9系列主要应用于引擎管理、仪器仪表、安全系统和机顶盒、无线设备、高端打印机、数码照相机和数码摄像机。 。常用ARM核简介 ARM处理器核简介ARM10 该系列包括ARM1020E和ARM1020E处理器核,其核心在于使用向量浮点VFP单元VFP10提供高性能的浮点解决方案,从而极大提高了处理器的整型和浮点运算性能。ARM10系列主要应用于下一代无线设备、数字消费品、成像设备、工业控制、通信和信息系统、视频游戏机和高性能打印机等场合。常用ARM核简介 ARM处理器核简介SecurCore专为安全需要而设计,提供了完善的32位RISC技术的安全解决方案。 灵活的保护单元,以确保操

21、作系统和应用数据的安全。 采用软内核技术,防止外部对其进行扫描探测。 可集成用户自己的安全特性和其他协处理器。主要应用:对安全性要求较高的应用产品及应用系统,如电子商务、电子政务、电子银行业务、网络和认证系统等领域。4种类型:SecurCore SC100、SecurCore SC110、SecurCore SC200和SecurCore SC210。 常用ARM核简介 ARM处理器核简介Xscale Xscale是ARM体系结构的一种内核,基于ARM v5TE,由Intel公司开发。相比于ARM处理器,XScale功耗更低,系统伸缩性更好,同时核心频率也得到提高,达到了400Mhz甚至更高。

22、增加MMX指令。XScale是目前Intel公司主推的高性能嵌入式处理器,分通用处理器、网络处理器和I/O处理器三类。其中通用处理器有PXA25x、PXA26x、PXA27x三个系列,被广泛应用于智能手机、PDA领域。2. ARM内核内核 1.ARM7TDMI1.ARM7TDMI内核结构内核结构 2.ARM92.ARM9内核结构内核结构ARM7TDMI内核结构q1.简介q2.ARM7TDMIq3.ARM7TDMI的模块和内部框图q4.体系结构直接支持的数据类型q5.处理器状态q6.处理器模式q7.内部寄存器q8. 程序状态寄存器q9.异常q10.中断延迟q11.复位q12.存储器及存储器映射I

23、/Oq13.寻址方式简介q14.ARM7指令简介q15.协处理器接口q16.调试接口简介q17.ETM接口简介1简介简介 低功耗的低功耗的32位位RISC处理器,冯处理器,冯诺依曼结构。诺依曼结构。 具有嵌入式具有嵌入式ICERT逻辑,调试开发方便。逻辑,调试开发方便。 3级流水线结构。级流水线结构。 代码密度高,兼容代码密度高,兼容16位的位的Thumb指令集。指令集。 对操作系统的支持广泛,包括对操作系统的支持广泛,包括Windows CE、Linux、Palm OS等。等。 指令系统与指令系统与ARM9系列、系列、ARM9E系列和系列和ARM10E系列兼容,系列兼容,便于用户的产品升级换

24、代。便于用户的产品升级换代。 主频最高可达主频最高可达130MIPS。 主要应用领域:工业控制、主要应用领域:工业控制、Internet设备、网络和调制解调设备、网络和调制解调器设备、移动电话等多种多媒体和嵌入式应用。器设备、移动电话等多种多媒体和嵌入式应用。 ARM7TDMI内核结构q1.简介q2.ARM7TDMIq3.ARM7TDMI的模块和内部框图q4.体系结构直接支持的数据类型q5.处理器状态q6.处理器模式q7.内部寄存器q8. 程序状态寄存器q9.异常q10.中断延迟q11.复位q12.存储器及存储器映射I/Oq13.寻址方式简介q14.ARM7指令简介q15.协处理器接口q16.

25、调试接口简介q17.ETM接口简介2 ARM7TDMI 简介 ARM7TDMI基于ARM体系结构V4版本,是目前低端的ARM核。具有广泛的应用,其最显著的应用为数字移动电话。留意:“ARM核并不是芯片,ARM核与其它部件如RAM、ROM、片内外设组合在一起才能构成现实的芯片。2 ARM7TDMI 简介 ARM7TDMI支持32位寻址范围,并弥补了ARM6不能在低于5V电源电压下工作的不足。ARM7TDMI的后缀意义为:支持高密度16位的Thumb指令集;支持片上调试;支持64位乘法;支持EmbededICE观察硬件;ARM7TDMI 的可综合synthesizable版本软核),对应用工程师来

26、说其编程模型与ARM7TDMI 一致;ARM7 T D M I - S2 ARM7TDMI 简介 ARM7TDMI处理器是ARM通用32位微处理器家族的成员之一。它具有优异的性能,但功耗却很低,使用门的数量也很少。它属于精简指令集计算机RISC),比复杂指令集计算机CISC要简单得多。这样的简化实现了:高的指令吞吐量;出色的实时中断响应;小的、高性价比的处理器宏单元。2 ARM7TDMI 三级流水线 ARM7TDMI处理器使用流水线来增加处理器指令流的速度。这样可使几个操作同时进行,并使处理和存储器系统连续操作,能提供0.9MIPS/MHz的指令执行速度。 ARM7TDMI的流水线分3级,分别

27、为:取指译码执行2 ARM7TDMI 三级流水线 正常操作过程中,在执行一条指令的同时对下一条指令进行译码,并将第三条指令从存储器中取出。这三条指令之间的位置关系如下表所示:流水线上各指令的地址流水线工位描述ARM指令集Thumb指令集PCPC取指指令从存储器中取出PC-4PC-2译码对指令使用的寄存器进行译码PC-8PC-4执行从寄存器组中读出寄存器,执行移位和ALU操作,寄存器被写回到寄存器组中2 ARM7TDMI 存储器访问 ARM7TDMI处理器使用了冯诺依曼Von Neumann构造,指令和数据共用一条32位总线。只有装载、存储和交换指令可以对存储器中的数据进行访问。 数据可以是字节

28、( 8位)、半字( 16位或者字32位)。2 ARM7TDMI 存储器访问 ARM7TDMI处理器的存储器接口可以使潜在的性能得以实现,这样减少了存储器的使用。对速度有严格要求的控制信号使用流水线,这样使系统控制功能以标准的低功耗逻辑实现。ARM7TDMI处理器的存储器周期有4个基本类型:内部周期;非连续的周期;延续 的周期;协处理器寄存器的传输周期。ARM7TDMI内核结构q1.简介q2.ARM7TDMIq3.ARM7TDMI的模块和内部框图q4.体系结构直接支持的数据类型q5.处理器状态q6.处理器模式q7.内部寄存器q8. 程序状态寄存器q9.异常q10.中断延迟q11.复位q12.存储

29、器及存储器映射I/Oq13.寻址方式简介q14.ARM7指令简介q15.协处理器接口q16.调试接口简介q17.ETM接口简介 3 ARM7TDMI的模块和内核框图NoImageARM7TDMI模块 3 ARM7TDMI的模块和内核框图ARM7TDMI模块地址寄存器寄存器组31*32位寄存器(6个状态寄存器)地址增加器乘法器桶形移位器32位ALU写数据寄存器指令管线读数据寄存器Thumb指令译码器指令译码和控制逻辑ADDR31:0CLKCLENCFGBIGENDnIRQnFIQnRESETABORTLOCKWRITESIZE1:0PROT1:0TRANS1:0DBG输出DBG输入CP控制CP握

30、手WDATA31:0RDATA31:0扫描调试控制 3 ARM7TDMI的模块和内核框图ARM7TDMI模块CPBCPACPnICPTBITCPSEQCPnMREQCPnOPCCPnTRAN STRANS1 : 0 PROT1: 0 SIZE1: 0 WRITEABORTRDATA31:0WDATA31:0ADDR31 : 0 DBGTDODBGnTDO E NDBGnTRS TDBGTDIDBGTMSDBGTCKE NDBGCOMM T XDBGCOMM R XDBGRNG 0 DBGRNG 1 DBGENDBGEXT 0 DBGEXT 1 DBGnEXE CDBGACKDBGBREA KD

31、BGRQLOCKCFGBIGE N DnRESETnFIQnIRQCLKENCLKDBGINST RVALIDARM7TDM I - SDMORE同步的Em bededICE-RT扫描调试访问 端口存储器接口存储器管理接 口协处理器接口时钟中断总线控制仲裁调试处理器ARM7TDMI内核结构q1.简介q2.ARM7TDMIq3.ARM7TDMI的模块和内部框图q4.体系结构直接支持的数据类型q5.处理器状态q6.处理器模式q7.内部寄存器q8. 程序状态寄存器q9.异常q10.中断延迟q11.复位q12.存储器及存储器映射I/Oq13.寻址方式简介q14.ARM7指令简介q15.协处理器接口q1

32、6.调试接口简介q17.ETM接口简介4 体系结构直接支持的数据类型 体系结构直接支持的数据类型ARM处理器支持下列数据类型:字节 8位半字 16位必须分配为占用两个字节)字 32为必须分配为占用4各字节)1112342 体系结构直接支持的数据类型留意:V4版本之后的ARM结构都支持这3种结构包括V4版本),而以前的版本只支持字节和字;当数据类型定义为无符号型时,N位数据值使用正常的二进制格式表示范围为02N-1的非负整数;当数据类型定义为有符号型时,N位数据值使用2的补码格式表示范围为-2N-1+2N-1-1的整数;4 体系结构直接支持的数据类型 体系结构直接支持的数据类型留意:所有数据操作

33、,例如ADD,都以字为单位;装载和保存指令可以对字节、半字和字进行操作,当装载字节或半字时自动实现零扩展或符号扩展;ARM指令的长度刚好是1个字分配为占用4个字节),Thumb指令的长度刚好是半字占用2个字节)。4 体系结构直接支持的数据类型ARM7TDMI内核结构q1.简介q2.ARM7TDMIq3.ARM7TDMI的模块和内部框图q4.体系结构直接支持的数据类型q5.处理器状态q6.处理器模式q7.内部寄存器q8. 程序状态寄存器q9.异常q10.中断延迟q11.复位q12.存储器及存储器映射I/Oq13.寻址方式简介q14.ARM7指令简介q15.协处理器接口q16.调试接口简介q17.

34、ETM接口简介5 处理器状态 处理器状态 ARM7TDMI处理器内核使用V4T版本的ARM结构,该结构包含32位ARM指令集和16位Thumb指令集。因此ARM7TDMI处理器有两种操作状态:ARM状态:32位,这种状态下执行的是字方式的ARM指令;Thumb状态:16位,这种状态下执行半字方式的Thumb指令。留意:两个状态之间的切换并不影响处理器模式或寄存器内容。5 处理器状态 处理器状态 使用BX指令将ARM7TDMI内核的操作状态在ARM状态和Thumb状态之间进行切换详见第4章) ,程序如下所示。;从Arm状态切换到Thumb状态 LDR R0,=Lable+1 BX R0;从Thu

35、mb状态切换到ARM状态 LDR R0,=Lable BX R0地址最低位为1,表示切换到Thumb状态地址最低位为0,表示切换到ARM状态跳转地址标号ARM7TDMI内核结构q1.简介q2.ARM7TDMIq3.ARM7TDMI的模块和内部框图q4.体系结构直接支持的数据类型q5.处理器状态q6.处理器模式q7.内部寄存器q8. 程序状态寄存器q9.异常q10.中断延迟q11.复位q12.存储器及存储器映射I/Oq13.寻址方式简介q14.ARM7指令简介q15.协处理器接口q16.调试接口简介q17.ETM接口简介6 处理器模式 简介 ARM体系结构支持7种处理器模式,分别为:用户模式、快

36、中断模式、中断模式、管理模式、中止模式、未定义模式和系统模式,如下表所示。这样的好处是可以更好的支持操作系统并提高工作效率。ARM7TDMI完全支持这七种模式。处理器模式说明备注 用户 (usr)正常程序工作模式不能直接切换到其它模式 系统 (sys)用于支持操作系统的特权任务等与用户模式类似,但具有可以直接切换到其它模式等特权 快中断 (fiq)支持高速数据传输及通道处理FIQ异常响应时进入此模式 中断 (irq)用于通用中断处理IRQ异常响应时进入此模式 管理 (svc)操作系统保护代码系统复位和软件中断响应时进入此模式 中止 (abt)用于支持虚拟内存和/或存储器保护在ARM7TDMI没

37、有大用处 未定义 (und)支持硬件协处理器的软件仿真未定义指令异常响应时进入此模式6 处理器模式 处理器模式6 处理器模式 特权模式处理器模式说明备注 用户 (usr)正常程序工作模式不能直接切换到其它模式 系统 (sys)用于支持操作系统的特权任务等与用户模式类似,但具有可以直接切换到其它模式等特权 快中断 (fiq)支持高速数据传输及通道处理FIQ异常响应时进入此模式 中断 (irq)用于通用中断处理IRQ异常响应时进入此模式 管理 (svc)操作系统保护代码系统复位和软件中断响应时进入此模式 中止 (abt)用于支持虚拟内存和/或存储器保护在ARM7TDMI没有大用处 未定义 (und

38、)支持硬件协处理器的软件仿真未定义指令异常响应时进入此模式 除用户模式外,其它模式均为特权模式。ARM内部寄存器和一些片内外设在硬件设计上只允许或者可选为只允许特权模式下访问。此外,特权模式可以自由的切换处理器模式,而用户模式不能直接切换到别的模式。 未定义 (und) 中止 (abt) 管理 (svc) 中断 (irq) 快中断 (fiq) 系统 (sys)6 处理器模式 异常模式处理器模式说明备注 用户 (usr)正常程序工作模式不能直接切换到其它模式 系统 (sys)用于支持操作系统的特权任务等与用户模式类似,但具有可以直接切换到其它模式等特权 快中断 (fiq)支持高速数据传输及通道处

39、理FIQ异常响应时进入此模式 中断 (irq)用于通用中断处理IRQ异常响应时进入此模式 管理 (svc)操作系统保护代码系统复位和软件中断响应时进入此模式 中止 (abt)用于支持虚拟内存和/或存储器保护在ARM7TDMI没有大用处 未定义 (und)支持硬件协处理器的软件仿真未定义指令异常响应时进入此模式 未定义 (und) 中止 (abt) 管理 (svc) 中断 (irq) 快中断 (fiq) 这五种模式称为异常模式。它们除了可以通过程序切换进入外,也可以由特定的异常进入。当特定的异常出现时,处理器进入相应的模式。每种异常模式都有一些独立的寄存器,以避免异常退出时用户模式的状态不可靠。

40、6 处理器模式 用户和系统模式处理器模式说明备注 用户 (usr)正常程序工作模式不能直接切换到其它模式 系统 (sys)用于支持操作系统的特权任务等与用户模式类似,但具有可以直接切换到其它模式等特权 快中断 (fiq)支持高速数据传输及通道处理FIQ异常响应时进入此模式 中断 (irq)用于通用中断处理IRQ异常响应时进入此模式 管理 (svc)操作系统保护代码系统复位和软件中断响应时进入此模式 中止 (abt)用于支持虚拟内存和/或存储器保护在ARM7TDMI没有大用处 未定义 (und)支持硬件协处理器的软件仿真未定义指令异常响应时进入此模式 这两种模式都不能由异常进入,而且它们使用完全

41、相同的寄存器组。 系统模式是特权模式,不受用户模式的限制。操作系统在该模式下访问用户模式的寄存器就比较方便,而且操作系统的一些特权任务可以使用这个模式访问一些受控的资源。 系统 (sys) 用户 (usr)ARM7TDMI内核结构q1.简介q2.ARM7TDMIq3.ARM7TDMI的模块和内部框图q4.体系结构直接支持的数据类型q5.处理器状态q6.处理器模式q7.内部寄存器q8. 程序状态寄存器q9.异常q10.中断延迟q11.复位q12.存储器及存储器映射I/Oq13.寻址方式简介q14.ARM7指令简介q15.协处理器接口q16.调试接口简介q17.ETM接口简介7 内部寄存器 简介

42、在ARM7TDMI处理器内部有37个用户可见的寄存器。 在不同的工作模式和处理器状态下,程序员可以访问的寄存器也不尽相同。寄存器类别寄存器在汇编中的名称各模式下实际访问的寄存器用户系统管理中止未定义中断快中断通用寄存器和程序计数器R0(a1)R0R1(a2)R1R2(a3)R2R3(a4)R3R4(v1)R4R5(v2)R5R6(v3)R6R7(v4)R7R8(v5)R8R8_fiqR9(SB,v6)R9R9_fiqR10(SL,v7)R10R10_fiqR11(FP,v8)R11R11_fiqR12(IP)R12R12_fiqR13(SP)R13R13_svcR13_abtR13_undR1

43、3_irqR13_fiqR14(LR)R14R14_svcR14_abtR14_undR14_irqR14_fiqR15(PC)R15状态寄存器CPSRCPSRSPSR无SPSR_abt SPSR_abt SPSR_und SPSR_irq SPSR_fiqARM状态各模式下的寄存器寄存器类别寄存器在汇编中的名称各模式下实际访问的寄存器用户系统管理中止未定义中断快中断通用寄存器和程序计数器R0(a1)R0R1(a2)R1R2(a3)R2R3(a4)R3R4(v1)R4R5(v2)R5R6(v3)R6R7(v4)R7R8(v5)R8R8_fiqR9(SB,v6)R9R9_fiqR10(SL,v7

44、)R10R10_fiqR11(FP,v8)R11R11_fiqR12(IP)R12R12_fiqR13(SP)R13R13_svcR13_abtR13_undR13_irqR13_fiqR14(LR)R14R14_svcR14_abtR14_undR14_irqR14_fiqR15(PC)R15状态寄存器CPSRCPSRSPSR无SPSR_abt SPSR_abt SPSR_und SPSR_irq SPSR_fiqARM状态各模式下的寄存器SPSR_fiqSPSR_irqSPSR_undSPSR_abtSPSR_abtCPSRR15R14_fiqR14_irqR14_undR14_abtR1

45、4_svcR14R13_fiqR13_irqR13_undR13_abtR13_svcR13R12_fiqR12R11_fiqR11R10_fiqR10R9_fiqR9R8_fiqR8R7R6R5R4R3R2R1R0所有的37个寄存器,分成两大类:31个通用32位寄存器;6个状态寄存器。寄存器类别寄存器在汇编中的名称各模式下实际访问的寄存器用户系统管理中止未定义中断快中断通用寄存器和程序计数器R0(a1)R0R1(a2)R1R2(a3)R2R3(a4)R3R4(v1)R4R5(v2)R5R6(v3)R6R7(v4)R7R8(v5)R8R8_fiqR9(SB,v6)R9R9_fiqR10(SL,

46、v7)R10R10_fiqR11(FP,v8)R11R11_fiqR12(IP)R12R12_fiqR13(SP)R13R13_svcR13_abtR13_undR13_irqR13_fiqR14(LR)R14R14_svcR14_abtR14_undR14_irqR14_fiqR15(PC)R15状态寄存器CPSRCPSRSPSR无SPSR_abt SPSR_abt SPSR_und SPSR_irq SPSR_fiq无CPSRR15R14R13R12R11R10R9R8R7R6R5R4R3R2R1R0用户用户无CPSRR15R14R13R12R11R10R9R8R7R6R5R4R3R2R1

47、R0系统系统SPSR_abtCPSRR15R14_svcR13_svcR12R11R10R9R8R7R6R5R4R3R2R1R0管理管理SPSR_abtCPSRR15R14_abtR13_abtR12R11R10R9R8R7R6R5R4R3R2R1R0中止中止SPSR_undCPSRR15R14_undR13_undR12R11R10R9R8R7R6R5R4R3R2R1R0未定义未定义SPSR_irqCPSRR15R14_irqR13_irqR12R11R10R9R8R7R6R5R4R3R2R1R0中断中断SPSR_fiqCPSRR15R14_fiqR13_fiqR12_fiqR11_fiqR

48、10_fiqR9_fiqR8_fiqR7R6R5R4R3R2R1R0快中断快中断ARM状态各模式下可以访问的寄存器寄存器类别寄存器在汇编中的名称各模式下实际访问的寄存器用户系统管理中止未定义中断快中断通用寄存器和程序计数器R0(a1)R0R1(a2)R1R2(a3)R2R3(a4)R3R4(v1)R4R5(v2)R5R6(v3)R6R7(v4)R7R8(v5)R8R8_fiqR9(SB,v6)R9R9_fiqR10(SL,v7)R10R10_fiqR11(FP,v8)R11R11_fiqR12(IP)R12R12_fiqR13(SP)R13R13_svcR13_abtR13_undR13_ir

49、qR13_fiqR14(LR)R14R14_svcR14_abtR14_undR14_irqR14_fiqR15(PC)R15状态寄存器CPSRCPSRSPSR无SPSR_abt SPSR_abt SPSR_und SPSR_irq SPSR_fiq一般的通用寄存器R13_fiqR13_irqR13_undR13_abtR13_svcR13R12_fiqR12R11_fiqR11R10_fiqR10R9_fiqR9R8_fiqR8R7R6R5R4R3R2R1R0 在汇编语言中寄存器R0R13为保存数据或地址值的通用寄存器。它们是完全通用的寄存器,不会被体系结构作为特殊用途,并且可用于任何使用通

50、用寄存器的指令。寄存器类别寄存器在汇编中的名称各模式下实际访问的寄存器用户系统管理中止未定义中断快中断通用寄存器和程序计数器R0(a1)R0R1(a2)R1R2(a3)R2R3(a4)R3R4(v1)R4R5(v2)R5R6(v3)R6R7(v4)R7R8(v5)R8R8_fiqR9(SB,v6)R9R9_fiqR10(SL,v7)R10R10_fiqR11(FP,v8)R11R11_fiqR12(IP)R12R12_fiqR13(SP)R13R13_svcR13_abtR13_undR13_irqR13_fiqR14(LR)R14R14_svcR14_abtR14_undR14_irqR14

51、_fiqR15(PC)R15状态寄存器CPSRCPSRSPSR无SPSR_abt SPSR_abt SPSR_und SPSR_irq SPSR_fiq一般的通用寄存器R13_fiqR13_irqR13_undR13_abtR13_svcR13R12_fiqR12R11_fiqR11R10_fiqR10R9_fiqR9R8_fiqR8R7R6R5R4R3R2R1R0R7R6R5R4R3R2R1R0 其中R0R7为未分组的寄存器,也就是说对于任何处理器模式,这些寄存器都对应于相同的32位物理寄存器。寄存器类别寄存器在汇编中的名称各模式下实际访问的寄存器用户系统管理中止未定义中断快中断通用寄存器和

52、程序计数器R0(a1)R0R1(a2)R1R2(a3)R2R3(a4)R3R4(v1)R4R5(v2)R5R6(v3)R6R7(v4)R7R8(v5)R8R8_fiqR9(SB,v6)R9R9_fiqR10(SL,v7)R10R10_fiqR11(FP,v8)R11R11_fiqR12(IP)R12R12_fiqR13(SP)R13R13_svcR13_abtR13_undR13_irqR13_fiqR14(LR)R14R14_svcR14_abtR14_undR14_irqR14_fiqR15(PC)R15状态寄存器CPSRCPSRSPSR无SPSR_abt SPSR_abt SPSR_un

53、d SPSR_irq SPSR_fiq一般的通用寄存器R14_fiqR14_irqR14_undR14_abtR14_svcR14R13_fiqR13_irqR13_undR13_abtR13_svcR13R12_fiqR12R11_fiqR11R10_fiqR10R9_fiqR9R8_fiqR8 寄存器R8R14为分组寄存器。它们所对应的物理寄存器取决于当前的处理器模式,几乎所有允许使用通用寄存器的指令都允许使用分组寄存器寄存器类别寄存器在汇编中的名称各模式下实际访问的寄存器用户系统管理中止未定义中断快中断通用寄存器和程序计数器R0(a1)R0R1(a2)R1R2(a3)R2R3(a4)R3

54、R4(v1)R4R5(v2)R5R6(v3)R6R7(v4)R7R8(v5)R8R8_fiqR9(SB,v6)R9R9_fiqR10(SL,v7)R10R10_fiqR11(FP,v8)R11R11_fiqR12(IP)R12R12_fiqR13(SP)R13R13_svcR13_abtR13_undR13_irqR13_fiqR14(LR)R14R14_svcR14_abtR14_undR14_irqR14_fiqR15(PC)R15状态寄存器CPSRCPSRSPSR无SPSR_abt SPSR_abt SPSR_und SPSR_irq SPSR_fiq一般的通用寄存器R12_fiqR12

55、R11_fiqR11R10_fiqR10R9_fiqR9R8_fiqR8 寄存器R8R12有两个分组的物理寄存器。一个用于除FIQ模式之外的所有寄存器模式,另一个用于FIQ模式。这样在发生FIQ中断后,可以加速FIQ的处理速度。寄存器类别寄存器在汇编中的名称各模式下实际访问的寄存器用户系统管理中止未定义中断快中断通用寄存器和程序计数器R0(a1)R0R1(a2)R1R2(a3)R2R3(a4)R3R4(v1)R4R5(v2)R5R6(v3)R6R7(v4)R7R8(v5)R8R8_fiqR9(SB,v6)R9R9_fiqR10(SL,v7)R10R10_fiqR11(FP,v8)R11R11_

56、fiqR12(IP)R12R12_fiqR13(SP)R13R13_svcR13_abtR13_undR13_irqR13_fiqR14(LR)R14R14_svcR14_abtR14_undR14_irqR14_fiqR15(PC)R15状态寄存器CPSRCPSRSPSR无SPSR_abt SPSR_abt SPSR_und SPSR_irq SPSR_fiq一般的通用寄存器 寄存器R13、R14分别有6个分组的物理寄存器。一个用于用户和系统模式,其余5个分别用于5种异常模式。R14_fiqR14_irqR14_undR14_abtR14_svcR14R13_fiqR13_irqR13_un

57、dR13_abtR13_svcR13寄存器类别寄存器在汇编中的名称各模式下实际访问的寄存器用户系统管理中止未定义中断快中断通用寄存器和程序计数器R0(a1)R0R1(a2)R1R2(a3)R2R3(a4)R3R4(v1)R4R5(v2)R5R6(v3)R6R7(v4)R7R8(v5)R8R8_fiqR9(SB,v6)R9R9_fiqR10(SL,v7)R10R10_fiqR11(FP,v8)R11R11_fiqR12(IP)R12R12_fiqR13(SP)R13R13_svcR13_abtR13_undR13_irqR13_fiqR14(LR)R14R14_svcR14_abtR14_und

58、R14_irqR14_fiqR15(PC)R15状态寄存器CPSRCPSRSPSR无SPSR_abt SPSR_abt SPSR_und SPSR_irq SPSR_fiq堆栈指针寄存器R13SP) 寄存器R13常作为堆栈指针SP)。在ARM指令集当中,没有以特殊方式使用R13的指令或其它功能,只是习惯上都这样使用。但是在Thumb指令集中存在使用R13的指令。寄存器类别寄存器在汇编中的名称各模式下实际访问的寄存器用户系统管理中止未定义中断快中断通用寄存器和程序计数器R0(a1)R0R1(a2)R1R2(a3)R2R3(a4)R3R4(v1)R4R5(v2)R5R6(v3)R6R7(v4)R7

59、R8(v5)R8R8_fiqR9(SB,v6)R9R9_fiqR10(SL,v7)R10R10_fiqR11(FP,v8)R11R11_fiqR12(IP)R12R12_fiqR13(SP)R13R13_svcR13_abtR13_undR13_irqR13_fiqR14(LR)R14R14_svcR14_abtR14_undR14_irqR14_fiqR15(PC)R15状态寄存器CPSRCPSRSPSR无SPSR_abt SPSR_abt SPSR_und SPSR_irq SPSR_fiq链接寄存器R14LR) R14为链接寄存器LR),在结构上有两个特殊功能:在每种模式下,模式自身的R

60、14版本用于保存子程序返回地址;当发生异常时,将R14对应的异常模式版本设置为异常返回地址有些异常有一个小的固定偏移量)。Lable程序A程序BR147 内部寄存器 R14寄存器与子程序调用BL Lable地址A?MOV PC,LRR14(地址A)Lable?1.程序A执行过程中调用程序B;操作流程2.程序跳转至标号Lable,执行程序B。同时硬件将“BL Lable指令的下一条指令所在地址存入R14;3.程序B执行最后,将R14寄存器的内容放入PC,返回程序A;7 内部寄存器 R14寄存器与异常发生 异常发生时,程序要跳转至异常服务程序,对返回地址的处理与子程序调用类似,都是由硬件完成的。区

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论