ARM体系结构与内核

上传人:仙*** 文档编号:132488461 上传时间:2022-08-08 格式:PPT 页数:98 大小:1.10MB
收藏 版权申诉 举报 下载
ARM体系结构与内核_第1页
第1页 / 共98页
ARM体系结构与内核_第2页
第2页 / 共98页
ARM体系结构与内核_第3页
第3页 / 共98页
资源描述:

《ARM体系结构与内核》由会员分享,可在线阅读,更多相关《ARM体系结构与内核(98页珍藏版)》请在装配图网上搜索。

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

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

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

4、的半导体、世界上许多著名的半导体、软件和软件和OEM厂商,并提供厂商,并提供服务。服务。ARM体系结构与内核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应用实例所使用

6、的指应用实例所使用的指令集,令集,ARM公司定义了公司定义了7种主要的种主要的ARM指令集体指令集体系结构版本,以版本号系结构版本,以版本号V1V7表示。表示。ARM体系结构与内核 ARM体系结构的基本版本版本版本变种系列号处理器核V1V1ARM1ARM1V2V2ARM2ARM2V2aARM2aSARM3ARM3V3V3ARM6ARM6、ARM600、ARM610ARM7ARM7、ARM700、ARM710V4V4TARM7TDMI、ARM710T、ARM720T、ARM740TV4ARM8StrongARM、ARM8、ARM810V4TARM9ARM9TDMI、ARM920T、ARM940T

7、V5V5TEARM9E-SARM10ARM10TDMI、ARM1020EV6V6ARM11ARM11、ARM11562-S、ARM1156T2F-S、ARM11JZF-SV7V7ARM CotexARM Cotex-A8、ARM Cotex-R4、ARM Cotex-M3ARM体系结构与内核ARM体系结构的基本版本命名规则ARMxyzTDMIEJF-S大括号内的字母是可选的,各个字母的含义如下:x系列号,例如ARM7中的“7”、ARM9中的“9”;y内部存储管理/保护单元,例如ARM72中的“2”、ARM94中的“4”;z内含有高速缓存Cache;T技持16位的Thumb指令集;D支持JTAG

8、片上调试;M支持用于长乘法操作(64位结果)的ARM指令,包含快速乘法器;I带有嵌入式追踪宏单元ETM(Embedded Trace Macro),用来设置断点和观察点的调试硬件;ARM体系结构与内核 E 增强型DSP指令(基于TDMI);J含有Java加速器Jazelle,与Java虚拟机相比,Java加速器Jazelle使Java代码运行速度提高了8倍,功耗降低到原来的80%;F 向量浮点单元;S可综合版本,意味着处理器内核是以源代码形式提供的。这种源代码形式又可以被编译成一种易于EDA工具使用的形式。ARM体系结构的基本版本命名规则ARM体系结构与内核ARM命名规则举例命名规则举例 AR

9、M7TMDI是目前使用最广泛的是目前使用最广泛的32位嵌入式位嵌入式RISC处理器,属低端处理器,属低端ARM处理器核。处理器核。支持高密度支持高密度1616位的压缩位的压缩ThumbThumb指令集;指令集;支持片上调试支持片上调试Debug;支持支持6464位乘法位乘法(Multiplier);嵌入式嵌入式Embeded-ICE,Embeded-ICE,支持片上断点和调试点支持片上断点和调试点;ARM7TDMI ARM7TDMI 的可综合(的可综合(synthesizablesynthesizable)版本)版本(软核),对应用工程师来说其编程模型与(软核),对应用工程师来说其编程模型与A

10、RM7TDMI ARM7TDMI 一致;一致;ARM7 T D M I-SARM7 T D M I-SARM体系结构与内核ARM版本版本:V1版架构版架构 该版架构只在原型机该版架构只在原型机ARM1出现过,只有出现过,只有26位的寻址空间,没有用于商业产品。位的寻址空间,没有用于商业产品。其基本性能有其基本性能有:基本的数据处理指令(无乘法);基本的数据处理指令(无乘法);基于字节、半字和字的基于字节、半字和字的Load/Store指令指令;转移指令,包括子程序调用及链接指令;转移指令,包括子程序调用及链接指令;供操作系统使用的软件中断指令供操作系统使用的软件中断指令SWI;寻址空间:寻址空

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

12、器交换指令;寻址空间:寻址空间:64MB。ARM体系结构与内核ARM版本版本 :V3版架构版架构 V3版架构(版架构(目前已废弃目前已废弃)对)对ARM体系结构作了较大的改动:体系结构作了较大的改动:寻址空间增至寻址空间增至32位(位(4GB););当前程序状态信息从原来的当前程序状态信息从原来的R15寄存器移到当前程序状态寄寄存器移到当前程序状态寄存器存器CPSR中(中(Current Program Status Register);增加了程序状态保存寄存器增加了程序状态保存寄存器SPSR(Saved Program Status Register););增加了中止(增加了中止(Abort

13、)和未定义)和未定义2种处理器模式;种处理器模式;增加了增加了MRS/MSR指令,以访问新增的指令,以访问新增的CPSR/SPSR寄存器;寄存器;增加了从异常处理返回的指令功能。增加了从异常处理返回的指令功能。ARM体系结构与内核ARM版本版本 :V4版架构版架构 不在为了与以前的版本兼容而支持不在为了与以前的版本兼容而支持26位体系结构,并位体系结构,并明确了哪些指令会引起未定义指令异常发生,明确了哪些指令会引起未定义指令异常发生,V4版架构在版架构在V3版上作了进一步扩充,版上作了进一步扩充,V4版架构是目前应用最广的版架构是目前应用最广的ARM体系结构,体系结构,ARM7、ARM8、AR

14、M9和和StrongARM都都采用该架构。采用该架构。指令集中增加了以下功能:指令集中增加了以下功能:符号化和非符号化半字及符号化字节的存符号化和非符号化半字及符号化字节的存/取指令;取指令;增加了增加了16位位Thumb指令集;指令集;完善了软件中断完善了软件中断SWI指令的功能;指令的功能;处理器系统模式引进特权方式时使用用户寄存器操作处理器系统模式引进特权方式时使用用户寄存器操作;把一些未使用的指令空间捕获为未定义指令。把一些未使用的指令空间捕获为未定义指令。ARM体系结构与内核ARM版本版本 :V5版架构版架构 V5版架构是在版架构是在V4版基础上增加了一些新的指令,版基础上增加了一些

15、新的指令,ARM10和和Xscale都采用该版架构。都采用该版架构。这些新增命令有:这些新增命令有:带有链接和交换的转移带有链接和交换的转移BLX指令;指令;计数前导零计数前导零CLZ指令;指令;BRK中断指令;中断指令;增加了数字信号处理指令(增加了数字信号处理指令(V5TE版);版);为协处理器增加更为协处理器增加更多可选择的指令;多可选择的指令;改进了改进了ARM/Thumb状态之间的切换效率;状态之间的切换效率;E-增强型增强型DSP指令集,包括全部算法操作和指令集,包括全部算法操作和16位乘法操作;位乘法操作;J-支持新的支持新的JAVA,提供字节代码执行的硬件和优化软件,提供字节代

16、码执行的硬件和优化软件加速功能。加速功能。ARM体系结构与内核ARM版本版本 :V6版架构版架构 V6版架构是版架构是2001年发布的,首先在年发布的,首先在2002年年春季发布的春季发布的ARM11处理器中使用。处理器中使用。此架构在此架构在V5版基础上增加了以下功能:版基础上增加了以下功能:THUMBTM:35%代码压缩;代码压缩;DSP扩充:高性能定点扩充:高性能定点DSP功能;功能;JazelleTM:Java性能优化,可提高性能优化,可提高8倍;倍;Media扩充:音扩充:音/视频性能优化,可提高视频性能优化,可提高4倍。倍。ARM体系结构与内核 ARMv7架构采用了 Thumb-2

17、技术 Thumb-2技术是在ARM的Thumb代码压缩技术的基础上发展起来的,并且保持了对现存ARM解决方案的完整的代码兼容性。Thumb-2技术比纯32位代码少使用 31的内存,减小了系统开销。同时能够提供比已有的基于Thumb技术的解决方案高出38的性能。ARMv7架构还采用了NEON技术 将DSP和媒体处理能力提高了近4倍,并支持改良的浮点运算,满足下一代3D图形、游戏物理应用以及传统嵌入式控制应用的需求。ARMv7还支持改良的运行环境 迎合不断增加的JIT(Just In Time)和DAC(DynamicAdaptive Compilation)技术的使用。另外,ARMv7架构对于早

18、期的ARM处理器软件也提供很好的兼容性。ARM版本版本VII VII:V7版架构版架构ARM体系结构与内核ARM版本版本VII VII:V7版架构版架构 ARM Cortex处理器系列都是基于ARMv7架构的产品 ARM Cortex-A系列是针对日益增长的,运行包括Linux、Windows,CE和Symbian操作系统在内的消费娱乐和无线产品设计的;ARM Cortex-R系列针对的是需要运行实时操作系统来进行控制应用的系统,包括汽车电子、网络和影像系统;ARM Cortex-M系列则面向微控制器领域,为那些对开发费用非常敏感同时对性能要求不断增加的嵌入式应用所设计的。ARM体系结构与内核

19、常用ARM核简介 ARM处理器核简介 ARM公司开发了很多系列的ARM处理器核,目前最新的系列已经是ARM11了,而ARM6核以及更早的系列已经很罕见了。目前应用比较广泛的系列是:注:注:“ARM核核”并不是芯片,并不是芯片,ARM核与其它部件如核与其它部件如RAM、ROM、片内外设组合在一起才能构成现实的芯片。、片内外设组合在一起才能构成现实的芯片。ARM7ARM9ARM9EARM10SecurCoreXscaleARM体系结构与内核常用ARM核简介 ARM处理器核简介ARM7 该系列包括ARM7TDMI、ARM7TDMI-S、带有高速缓存处理器宏单元的ARM720T和扩充了Jazelle的

20、ARM7EJ-S。该系列处理器提供Thumb 16位压缩指令集和EmbededICE软件调试方式,适用于更大规模的SoC设计中。ARM7系列广泛应用于多媒体和嵌入式设备,包括Internet设备、网络和调制解调器设备,以及移动电话、PDA等无线设备。ARM体系结构与内核常用ARM核简介 ARM处理器核简介ARM9 该系列包括ARM9TDMI、ARM920T和带有告诉缓存处理器宏单元的ARM940T。除了兼容ARM7系列,而且能够更加灵活的设计。ARM9系列主要应用于引擎管理、仪器仪表、安全系统和机顶盒、无线设备、高端打印机、数码照相机和数码摄像机。ARM体系结构与内核常用ARM核简介 ARM处

21、理器核简介ARM10 该系列包括ARM1020E和ARM1020E处理器核,其核心在于使用向量浮点(VFP)单元VFP10提供高性能的浮点解决方案,从而极大提高了处理器的整型和浮点运算性能。ARM10系列主要应用于下一代无线设备、数字消费品、成像设备、工业控制、通信和信息系统、视频游戏机和高性能打印机等场合。ARM体系结构与内核常用ARM核简介 ARM处理器核简介SecurCore专为安全需要而设计,提供了完善的32位RISC技术的安全解决方案。灵活的保护单元,以确保操作系统和应用数据的安全。采用软内核技术,防止外部对其进行扫描探测。可集成用户自己的安全特性和其他协处理器。主要应用:对安全性要

22、求较高的应用产品及应用系统,如电子商务、电子政务、电子银行业务、网络和认证系统等领域。4种类型:SecurCore SC100、SecurCore SC110、SecurCore SC200和SecurCore SC210。ARM体系结构与内核常用ARM核简介 ARM处理器核简介Xscale Xscale是ARM体系结构的一种内核,基于ARM v5TE,由Intel公司开发。相比于ARM处理器,XScale功耗更低,系统伸缩性更好,同时核心频率也得到提高,达到了400Mhz甚至更高。增加MMX指令。XScale是目前Intel公司主推的高性能嵌入式处理器,分通用处理器、网络处理器和I/O处理器

23、三类。其中通用处理器有PXA25x、PXA26x、PXA27x三个系列,被广泛应用于智能手机、PDA领域。ARM体系结构与内核2.ARM ARM内核内核ARM体系结构与内核ARM7TDMI内核结构q1.简介q的模块和内部框图q4.体系结构直接支持的数据类型q5.处理器状态q6.处理器模式q7.内部寄存器q8.程序状态寄存器q9.异常q10.中断延迟q11.复位q12.存储器及存储器映射I/Oq13.寻址方式简介q指令简介q15.协处理器接口q16.调试接口简介q接口简介ARM体系结构与内核1简介简介 低功耗的低功耗的32位位RISC处理器,冯处理器,冯诺依曼结构。诺依曼结构。具有嵌入式具有嵌入

24、式ICERT逻辑,调试开发方便。逻辑,调试开发方便。3级流水线结构。级流水线结构。代码密度高,兼容代码密度高,兼容16位的位的Thumb指令集。指令集。对操作系统的支持广泛,包括对操作系统的支持广泛,包括Windows CE、Linux、Palm OS等。等。指令系统与指令系统与ARM9系列、系列、ARM9E系列和系列和ARM10E系列兼容,系列兼容,便于用户的产品升级换代。便于用户的产品升级换代。主频最高可达主频最高可达130MIPS。主要应用领域:工业控制、主要应用领域:工业控制、Internet设备、网络和调制解调设备、网络和调制解调器设备、移动电话等多种多媒体和嵌入式应用。器设备、移动

25、电话等多种多媒体和嵌入式应用。ARM体系结构与内核ARM7TDMI内核结构q1.简介q的模块和内部框图q4.体系结构直接支持的数据类型q5.处理器状态q6.处理器模式q7.内部寄存器q8.程序状态寄存器q9.异常q10.中断延迟q11.复位q12.存储器及存储器映射I/Oq13.寻址方式简介q指令简介q15.协处理器接口q16.调试接口简介q接口简介ARM体系结构与内核2 ARM7TDMI 简介 ARM7TDMI基于ARM体系结构V4版本,是目前低端的ARM核。具有广泛的应用,其最显著的应用为数字移动电话。注意:“ARM核”并不是芯片,ARM核与其它部件如RAM、ROM、片内外设组合在一起才能

26、构成现实的芯片。ARM体系结构与内核2 ARM7TDMI 简介 ARM7TDMI支持32位寻址范围,并弥补了ARM6不能在低于5V电源电压下工作的不足。ARM7TDMI的后缀意义为:支持高密度16位的Thumb指令集;支持片上调试;支持64位乘法;支持EmbededICE观察硬件;ARM7TDMI 的可综合(synthesizable)版本(软核),对应用工程师来说其编程模型与ARM7TDMI 一致;ARM7 T D M I-SARM体系结构与内核2 ARM7TDMI 简介 ARM7TDMI处理器是ARM通用32位微处理器家族的成员之一。它具有优异的性能,但功耗却很低,使用门的数量也很少。它属

27、于精简指令集计算机(RISC),比复杂指令集计算机(CISC)要简单得多。这样的简化实现了:高的指令吞吐量;出色的实时中断响应;小的、高性价比的处理器宏单元。ARM体系结构与内核2 ARM7TDMI 三级流水线 ARM7TDMI处理器使用流水线来增加处理器指令流的速度。这样可使几个操作同时进行,并使处理和存储器系统连续操作,能提供0.9MIPS/MHz的指令执行速度。ARM7TDMI的流水线分3级,分别为:取指译码执行ARM体系结构与内核2 ARM7TDMI 三级流水线 正常操作过程中,在执行一条指令的同时对下一条指令进行译码,并将第三条指令从存储器中取出。这三条指令之间的位置关系如下表所示:

28、流水线上各指令的地址流水线工位描述ARM指令集Thumb指令集PCPC取指指令从存储器中取出PC-4PC-2译码对指令使用的寄存器进行译码PC-8PC-4执行从寄存器组中读出寄存器,执行移位和ALU操作,寄存器被写回到寄存器组中ARM体系结构与内核2 ARM7TDMI 存储器访问 ARM7TDMI处理器使用了冯诺依曼(Von Neumann)结构,指令和数据共用一条32位总线。只有装载、存储和交换指令可以对存储器中的数据进行访问。数据可以是字节(8位)、半字(16位)或者字(32位)。ARM体系结构与内核2 ARM7TDMI 存储器访问 ARM7TDMI处理器的存储器接口可以使潜在的性能得以实

29、现,这样减少了存储器的使用。对速度有严格要求的控制信号使用流水线,这样使系统控制功能以标准的低功耗逻辑实现。ARM7TDMI处理器的存储器周期有4个基本类型:内部周期;非连续的周期;连续 的周期;协处理器寄存器的传输周期。ARM体系结构与内核ARM7TDMI内核结构q1.简介q的模块和内部框图q4.体系结构直接支持的数据类型q5.处理器状态q6.处理器模式q7.内部寄存器q8.程序状态寄存器q9.异常q10.中断延迟q11.复位q12.存储器及存储器映射I/Oq13.寻址方式简介q指令简介q15.协处理器接口q16.调试接口简介q接口简介ARM体系结构与内核 3 ARM7TDMI的模块和内核框

30、图Em beddedIC E-R TCPUDBG R NG(0)DBG R NG(1)DBG EXT(0)DBG EXT(1)TAPADDR 31:0LO C KW R ITESIZE1:0PR O T1:0TR ANS1:0W DATA31:0R DATA31:0DBG TDIDBG nTR STDBG TM SDBG TC K ENDBG TDO宏单元控制器协处理器接口信号12Em beddedICE-RTARM7TDMI模块ARM体系结构与内核 3 ARM7TDMI的模块和内核框图ARM7TDMI模块地址寄存器寄存器组31*32位寄存器(6个状态寄存器)地址增加器乘法器桶形移位器32位A

31、LU写数据寄存器指令管线读数据寄存器Thumb指令译码器指令译码和控制逻辑ADDR31:0CLKCLENCFGBIGENDnIRQnFIQnRESETABORTLOCKWRITESIZE1:0PROT1:0TRANS1:0DBG输出DBG输入CP控制CP握手WDATA31:0RDATA31:0扫描调试控制ARM体系结构与内核 3 ARM7TDMI的模块和内核框图ARM7TDMI模块CPBCPACPnICPTBITCPSEQCPnMREQCPnOPCCPnTRAN STRANS1:0 PROT1:0 SIZE1:0 WRITEABORTRDATA31:0WDATA31:0ADDR31:0 DBG

32、TDODBGnTDO E NDBGnTRS TDBGTDIDBGTMSDBGTCKE NDBGCOMM T XDBGCOMM R XDBGRNG 0 DBGRNG 1 DBGENDBGEXT 0 DBGEXT 1 DBGnEXE CDBGACKDBGBREA KDBGRQLOCKCFGBIGE N DnRESETnFIQnIRQCLKENCLKDBGINST RVALIDARM7TDM I-SDMORE同步的Em bededICE-RT扫描调试访问 端口存储器接口存储器管理接 口协处理器接口时钟中断总线控制仲裁调试处理器ARM体系结构与内核ARM7TDMI内核结构q1.简介q的模块和内部框图q

33、4.体系结构直接支持的数据类型q5.处理器状态q6.处理器模式q7.内部寄存器q8.程序状态寄存器q9.异常q10.中断延迟q11.复位q12.存储器及存储器映射I/Oq13.寻址方式简介q指令简介q15.协处理器接口q16.调试接口简介q接口简介ARM体系结构与内核4 体系结构直接支持的数据类型 体系结构直接支持的数据类型ARM处理器支持下列数据类型:字节 8位半字 16位(必须分配为占用两个字节)字 32为(必须分配为占用4各字节)1112342ARM体系结构与内核 体系结构直接支持的数据类型注意:V4版本之后的ARM结构都支持这3种结构(包括V4版本),而以前的版本只支持字节和字;当数据

34、类型定义为无符号型时,N位数据值使用正常的二进制格式表示范围为02N-1的非负整数;当数据类型定义为有符号型时,N位数据值使用2的补码格式表示范围为-2N-1+2N-1-1的整数;4 体系结构直接支持的数据类型ARM体系结构与内核 体系结构直接支持的数据类型注意:所有数据操作,例如ADD,都以字为单位;装载和保存指令可以对字节、半字和字进行操作,当装载字节或半字时自动实现零扩展或符号扩展;ARM指令的长度刚好是1个字(分配为占用4个字节),Thumb指令的长度刚好是半字(占用2个字节)。4 体系结构直接支持的数据类型ARM体系结构与内核ARM7TDMI内核结构q1.简介q的模块和内部框图q4.

35、体系结构直接支持的数据类型q5.处理器状态q6.处理器模式q7.内部寄存器q8.程序状态寄存器q9.异常q10.中断延迟q11.复位q12.存储器及存储器映射I/Oq13.寻址方式简介q指令简介q15.协处理器接口q16.调试接口简介q接口简介ARM体系结构与内核5 处理器状态 处理器状态 ARM7TDMI处理器内核使用V4T版本的ARM结构,该结构包含32位ARM指令集和16位Thumb指令集。因此ARM7TDMI处理器有两种操作状态:ARM状态:32位,这种状态下执行的是字方式的ARM指令;Thumb状态:16位,这种状态下执行半字方式的Thumb指令。注意:两个状态之间的切换并不影响处理

36、器模式或寄存器内容。ARM体系结构与内核5 处理器状态 处理器状态 使用BX指令将ARM7TDMI内核的操作状态在ARM状态和Thumb状态之间进行切换(详见第4章),程序如下所示。;从Arm状态切换到Thumb状态 LDR R0,=Lable+1 BX R0;从Thumb状态切换到ARM状态 LDR R0,=Lable BX R0地址最低位为1,表示切换到Thumb状态地址最低位为0,表示切换到ARM状态跳转地址标号ARM体系结构与内核ARM7TDMI内核结构q1.简介q的模块和内部框图q4.体系结构直接支持的数据类型q5.处理器状态q6.处理器模式q7.内部寄存器q8.程序状态寄存器q9.

37、异常q10.中断延迟q11.复位q12.存储器及存储器映射I/Oq13.寻址方式简介q指令简介q15.协处理器接口q16.调试接口简介q接口简介ARM体系结构与内核6 处理器模式 简介 ARM体系结构支持7种处理器模式,分别为:用户模式、快中断模式、中断模式、管理模式、中止模式、未定义模式和系统模式,如下表所示。这样的好处是可以更好的支持操作系统并提高工作效率。ARM7TDMI完全支持这七种模式。ARM体系结构与内核处理器模式说明备注 用户 (usr)正常程序工作模式不能直接切换到其它模式 系统 (sys)用于支持操作系统的特权任务等与用户模式类似,但具有可以直接切换到其它模式等特权 快中断

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

39、q)支持高速数据传输及通道处理FIQ异常响应时进入此模式 中断 (irq)用于通用中断处理IRQ异常响应时进入此模式 管理 (svc)操作系统保护代码系统复位和软件中断响应时进入此模式 中止 (abt)用于支持虚拟内存和/或存储器保护在ARM7TDMI没有大用处 未定义 (und)支持硬件协处理器的软件仿真未定义指令异常响应时进入此模式 除用户模式外,其它模式均为特权模式。ARM内部寄存器和一些片内外设在硬件设计上只允许(或者可选为只允许)特权模式下访问。此外,特权模式可以自由的切换处理器模式,而用户模式不能直接切换到别的模式。未定义 (und)中止 (abt)管理 (svc)中断 (irq)

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

41、式 未定义 (und)中止 (abt)管理 (svc)中断 (irq)快中断 (fiq)这五种模式称为异常模式。它们除了可以通过程序切换进入外,也可以由特定的异常进入。当特定的异常出现时,处理器进入相应的模式。每种异常模式都有一些独立的寄存器,以避免异常退出时用户模式的状态不可靠。ARM体系结构与内核6 处理器模式 用户和系统模式处理器模式说明备注 用户 (usr)正常程序工作模式不能直接切换到其它模式 系统 (sys)用于支持操作系统的特权任务等与用户模式类似,但具有可以直接切换到其它模式等特权 快中断 (fiq)支持高速数据传输及通道处理FIQ异常响应时进入此模式 中断 (irq)用于通用

42、中断处理IRQ异常响应时进入此模式 管理 (svc)操作系统保护代码系统复位和软件中断响应时进入此模式 中止 (abt)用于支持虚拟内存和/或存储器保护在ARM7TDMI没有大用处 未定义 (und)支持硬件协处理器的软件仿真未定义指令异常响应时进入此模式 这两种模式都不能由异常进入,而且它们使用完全相同的寄存器组。系统模式是特权模式,不受用户模式的限制。操作系统在该模式下访问用户模式的寄存器就比较方便,而且操作系统的一些特权任务可以使用这个模式访问一些受控的资源。系统 (sys)用户 (usr)ARM体系结构与内核ARM7TDMI内核结构q1.简介q的模块和内部框图q4.体系结构直接支持的数

43、据类型q5.处理器状态q6.处理器模式q7.内部寄存器q8.程序状态寄存器q9.异常q10.中断延迟q11.复位q12.存储器及存储器映射I/Oq13.寻址方式简介q指令简介q15.协处理器接口q16.调试接口简介q接口简介ARM体系结构与内核7 内部寄存器 简介 在ARM7TDMI处理器内部有37个用户可见的寄存器。在不同的工作模式和处理器状态下,程序员可以访问的寄存器也不尽相同。ARM体系结构与内核寄存器类别寄存器在汇编中的名称各模式下实际访问的寄存器用户系统管理中止未定义中断快中断通用寄存器和程序计数器R0(a1)R0R1(a2)R1R2(a3)R2R3(a4)R3R4(v1)R4R5(

44、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_fiqARM状态各模式下的寄存器ARM体系结构与内核寄存器类别寄

45、存器在汇编中的名称各模式下实际访问的寄存器用户系统管理中止未定义中断快中断通用寄存器和程序计数器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

46、状态寄存器CPSRCPSRSPSR无SPSR_abt SPSR_abt SPSR_und SPSR_irq SPSR_fiqARM状态各模式下的寄存器SPSR_fiqSPSR_irqSPSR_undSPSR_abtSPSR_abtCPSRR15R14_fiqR14_irqR14_undR14_abtR14_svcR14R13_fiqR13_irqR13_undR13_abtR13_svcR13R12_fiqR12R11_fiqR11R10_fiqR10R9_fiqR9R8_fiqR8R7R6R5R4R3R2R1R0所有的37个寄存器,分成两大类:31个通用32位寄存器;6个状态寄存器。ARM体

47、系结构与内核寄存器类别寄存器在汇编中的名称各模式下实际访问的寄存器用户系统管理中止未定义中断快中断通用寄存器和程序计数器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_f

48、iqR15(PC)R15状态寄存器CPSRCPSRSPSR无SPSR_abt SPSR_abt SPSR_und SPSR_irq SPSR_fiq无CPSRR15R14R13R12R11R10R9R8R7R6R5R4R3R2R1R0用户用户无CPSRR15R14R13R12R11R10R9R8R7R6R5R4R3R2R1R0系统系统SPSR_abtCPSRR15R14_svcR13_svcR12R11R10R9R8R7R6R5R4R3R2R1R0管理管理SPSR_abtCPSRR15R14_abtR13_abtR12R11R10R9R8R7R6R5R4R3R2R1R0中止中止SPSR_und

49、CPSRR15R14_undR13_undR12R11R10R9R8R7R6R5R4R3R2R1R0未定义未定义SPSR_irqCPSRR15R14_irqR13_irqR12R11R10R9R8R7R6R5R4R3R2R1R0中断中断SPSR_fiqCPSRR15R14_fiqR13_fiqR12_fiqR11_fiqR10_fiqR9_fiqR8_fiqR7R6R5R4R3R2R1R0快中断快中断ARM状态各模式下可以访问的寄存器ARM体系结构与内核寄存器类别寄存器在汇编中的名称各模式下实际访问的寄存器用户系统管理中止未定义中断快中断通用寄存器和程序计数器R0(a1)R0R1(a2)R1R

50、2(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_und SPSR_irq SPSR_fiq一般的

51、通用寄存器R13_fiqR13_irqR13_undR13_abtR13_svcR13R12_fiqR12R11_fiqR11R10_fiqR10R9_fiqR9R8_fiqR8R7R6R5R4R3R2R1R0 在汇编语言中寄存器R0R13为保存数据或地址值的通用寄存器。它们是完全通用的寄存器,不会被体系结构作为特殊用途,并且可用于任何使用通用寄存器的指令。ARM体系结构与内核寄存器类别寄存器在汇编中的名称各模式下实际访问的寄存器用户系统管理中止未定义中断快中断通用寄存器和程序计数器R0(a1)R0R1(a2)R1R2(a3)R2R3(a4)R3R4(v1)R4R5(v2)R5R6(v3)R6

52、R7(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一般的通用寄存器R13_fiqR13_irqR13_undR13_abtR13_sv

53、cR13R12_fiqR12R11_fiqR11R10_fiqR10R9_fiqR9R8_fiqR8R7R6R5R4R3R2R1R0R7R6R5R4R3R2R1R0 其中R0R7为未分组的寄存器,也就是说对于任何处理器模式,这些寄存器都对应于相同的32位物理寄存器。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,v

54、7)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一般的通用寄存器R14_fiqR14_irqR14_undR14_abtR14_svcR14R13_fiqR13_irqR13_undR13_abtR13_svcR13R12_f

55、iqR12R11_fiqR11R10_fiqR10R9_fiqR9R8_fiqR8 寄存器R8R14为分组寄存器。它们所对应的物理寄存器取决于当前的处理器模式,几乎所有允许使用通用寄存器的指令都允许使用分组寄存器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)R11R1

56、1_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_fiqR12R11_fiqR11R10_fiqR10R9_fiqR9R8_fiqR8 寄存器R8R12有两个分组的物理寄存器。一个用于除FIQ模式之外的所有寄存器模式,另一个用于FIQ模式。这样在发生FIQ中

57、断后,可以加速FIQ的处理速度。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_irqR13_fiqR14(LR)R14R14_svcR14_ab

58、tR14_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_undR13_abtR13_svcR13ARM体系结构与内核寄存器类别寄存器在汇编中的名称各模式下实际访问的寄存器用户系统管理中止未定义中断快中断通用寄存器和程序计数器R0(a1)

59、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_und SPSR_irq

60、SPSR_fiq堆栈指针寄存器R13(SP)寄存器R13常作为堆栈指针(SP)。在ARM指令集当中,没有以特殊方式使用R13的指令或其它功能,只是习惯上都这样使用。但是在Thumb指令集中存在使用R13的指令。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

61、_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链接寄存器R14(LR)R14为链接寄存器(LR),在结构上有两个特殊功能:在每种模式下,模式自身的R14版本用于保存子程序返回地址;当发生异常时,将R14对应的异常模式版本设置为异常返回地址(有些异常有一个小的固定偏移量)。ARM体

62、系结构与内核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;ARM体系结构与内核7 内部寄存器 R14寄存器与异常发生 异常发生时,程序要跳转至异常服务程序,对返回地址的处理与子程序调用类似,都是由硬件完成的。区别在于有些异常有一个小常量的偏移。ARM体系结构与内核7 内部寄存器 R14寄存器注意要

63、点 当发生异常嵌套时,这些异常之间可能会发生冲突。例如:如果用户在用户模式下执行程序时发生了IRQ中断,用户模式寄存器不会被破坏。但是如果允许在IRQ模式下的中断处理程序重新使能IRQ中断,并且发生了嵌套的IRQ中断时,外部中断处理程序保存在R14_irq中的任何值都将被嵌套中断的返回地址所覆盖。ARM体系结构与内核7 内部寄存器 R14寄存器注意要点R14R14_irq用户模式下的程序IRQ模式下的程序AareturnB.XA地址A地址A1.执行用户模式下的程序;2.发生IRQ中断,硬件将某个地址存入IRQ模式下的R14_irq寄存器,用户模式下的R14没有被破坏;3.IRQ服务程序A执行完

64、毕,将R14_irq寄存器的内容减去某个常量后存入PC,返回之前被中断的程序;未被破坏ARM体系结构与内核7 内部寄存器 R14寄存器注意要点R14R14_irq用户模式下的程序IRQ模式下的程序AaB.XA地址A地址A1.执行用户模式下的程序;2.发生IRQ中断,硬件将某个地址存入IRQ模式下的R14_irq寄存器,用户模式下的R14没有被破坏;3.IRQ服务程序A执行完毕,将R14_irq寄存器的内容减去某个常量后存入PC,返回之前被中断的程序;未被破坏IRQ模式下的程序BareturnB.XA地址B地址B4.如果在IRQ处理程序中打开IRQ中断,并且再次发生IRQ中断,或者调用子程序;5

65、.硬件将返回地址保存在R14_irq寄存器中,原来保存的返回地址将被覆盖,造成错误;被破坏6.在程序B返回到程序A,然后在返回到用户模式下被中断的程序时,发生错误,将不能正确返回;returnreturn 解决办法是确保R14的对应版本在发生中断嵌套时不再保存任何有意义的值(将R14入栈),或者切换到其它处理器模式下。ARM体系结构与内核寄存器类别寄存器在汇编中的名称各模式下实际访问的寄存器用户系统管理中止未定义中断快中断通用寄存器和程序计数器R0(a1)R0R1(a2)R1R2(a3)R2R3(a4)R3R4(v1)R4R5(v2)R5R6(v3)R6R7(v4)R7R8(v5)R8R8_f

66、iqR9(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程序计数器R15(PC)寄存器R15为程序计数器(PC),它指向正在取指的地址。可以认为它是一个通用寄存器,但是对于它的使用有许多与指令相关的限制或特殊情况。如果R15使用的方式超出了这些限制,那么结果将是不可预测的。ARM体系结构与内核7 内部寄存器 读R15的限制 正常操作时,从R15读取的值是处理器正在取指的地址,即当前正在执行指令的地址加上8个字节(两条ARM指令的长度)。由于ARM指令总是以字为单位,所以R15寄存器的最低两位总是为0。LDR R0,PC?PCPC-4PC-8正在执行正在译码正在取指流水线状态

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

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


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