ARM体系结构及常用接口简介解析课件.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《ARM体系结构及常用接口简介解析课件.ppt》由用户(晟晟文业)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- ARM 体系结构 常用 接口 简介 解析 课件
- 资源描述:
-
1、1第二章第二章 ARM体系结构及常用接口简介体系结构及常用接口简介ARMAdvanced RISC Machines 2qARM(Advanced RISC Machines),既可以认为是),既可以认为是一个公司的名字,也可以认为是对一类微处理器的通称,一个公司的名字,也可以认为是对一类微处理器的通称,还可以认为是一种技术的名字。还可以认为是一种技术的名字。ARM技术的应用领域及特点q1991年年ARM公司成立于英国剑桥,主要出售芯片设公司成立于英国剑桥,主要出售芯片设计技术的授权。计技术的授权。精简指令集系统RISC(Reduced Instruction Set Computer)复杂指
2、令集系统CISC(Complex Instruction Set Computer)ARM 公司的Chip less模式3q世界各大半导体生产商从世界各大半导体生产商从ARMARM公司购买其设计的公司购买其设计的ARMARM微处微处理器核,根据各自不同的应用领域,加入适当的外围电路,理器核,根据各自不同的应用领域,加入适当的外围电路,从而形成自己的从而形成自己的ARMARM微处理器芯片进入市场。微处理器芯片进入市场。ARM技术的应用领域及特点q基于基于ARM技术的微处理器应用约占据了技术的微处理器应用约占据了32位位RISC微处微处 理器理器75以上的市场份额,以上的市场份额,ARM技术正在逐
3、步渗入到我们技术正在逐步渗入到我们生活的各个方面。生活的各个方面。q我国的我国的中兴集成电路、中兴集成电路、大唐电讯、中芯国际和上海华虹,大唐电讯、中芯国际和上海华虹,以及国外的一些公司如德州仪器、意法半导体、以及国外的一些公司如德州仪器、意法半导体、PhilipsPhilips、IntelIntel、SamsungSamsung等都推出了自己设计的基于等都推出了自己设计的基于ARMARM核的处理器。核的处理器。ARM微处理器的特点低功耗、低成本、低功耗、低成本、高性能高性能4采用RISC指令集ARM技术的应用领域及特点使用大量的寄存器ARM/THUMB指令支持三/五级流水线ARM微处理器的特
4、点采用采用RISCRISC体系结构体系结构5ARM技术的应用领域及特点q采用采用RISC架构的架构的ARM处理器一般具有如下特点:处理器一般具有如下特点:固定长度的指令格式,指令归整、简单、固定长度的指令格式,指令归整、简单、基本寻址方式有基本寻址方式有23种;种;使用单周期指令,便于流水线操作执行;使用单周期指令,便于流水线操作执行;大量使用寄存器,数据处理指令只对寄存大量使用寄存器,数据处理指令只对寄存器进行操作,只有加载器进行操作,只有加载/存储指令可以访问存存储指令可以访问存储器,以提高指令的执行效率。储器,以提高指令的执行效率。ARM微处理器的特点大量使用寄存器大量使用寄存器6ARM
5、技术的应用领域及特点q ARM 处理器共有处理器共有37个寄存器,被分为若干个组,个寄存器,被分为若干个组,这些寄存器包括:这些寄存器包括:31个通用寄存器个通用寄存器,包括程序计数器(,包括程序计数器(PC 指针),均为指针),均为32位的寄存器;位的寄存器;6个状态寄存器个状态寄存器,用以标识,用以标识CPU的工作状的工作状态及程序的运行状态,均为态及程序的运行状态,均为32位。位。ARM微处理器的特点高效的指令系统高效的指令系统7ARM技术的应用领域及特点q ARM微处理器支持两种指令集:微处理器支持两种指令集:ARM指令集指令集和和Thumb指令集指令集。q ARM指令为指令为32位的
6、长度,位的长度,Thumb指令为指令为16位长位长度。度。Thumb指令集为指令集为ARM指令集的功能子集,但指令集的功能子集,但与等价的与等价的ARM代码相比较,可节省代码相比较,可节省3040以以上的存储空间,同时具备上的存储空间,同时具备32位代码的所有优点。位代码的所有优点。ARM微处理器的特点其他技术其他技术8ARM技术的应用领域及特点q除此以外,除此以外,ARM体系结构还采用了一些特别的技术,体系结构还采用了一些特别的技术,在保证高性能的前提下尽量缩小芯片的面积,并降低功耗:在保证高性能的前提下尽量缩小芯片的面积,并降低功耗:q所有的指令都可根据前面的执行结果决定是否被执行,所有的
7、指令都可根据前面的执行结果决定是否被执行,从而提高指令的执行效率。从而提高指令的执行效率。q可用加载可用加载/存储指令批量传输数据,以提高数据的传输存储指令批量传输数据,以提高数据的传输效率。效率。q可在一条数据处理指令中同时完成逻辑处理和移位处理。可在一条数据处理指令中同时完成逻辑处理和移位处理。q在循环处理中使用地址的自动增减来提高运行效率。在循环处理中使用地址的自动增减来提高运行效率。ARM微处理器系列 9ARM微处理器系列qARM7系列系列qARM9系列系列qARM9E系列系列qARM10E系列系列qSecurCore系列系列qIntel的的Xscaleq其中,其中,ARM7、ARM9
8、、ARM9E和和ARM10为为4个通用个通用处理器系列,每一个系列提供一套相对独特的性能来满足不处理器系列,每一个系列提供一套相对独特的性能来满足不同应用领域的需求。同应用领域的需求。SecurCore系列专门为安全要求较高的系列专门为安全要求较高的应用而设计。应用而设计。ARM处理器核心技术演进路线10数据源:数据源:ARM,三星,三星,DIGITIMES整理,整理,2009/9ARMv5ARMv5指令集指令集ARM926EJ-SARM926EJ-SARM1026EJ-SARM1026EJ-SARMv6ARMv6指令集指令集ARM1136J(F)-SARM1136J(F)-SARM11 MP
9、Core(14ARM11 MPCore(14核心核心)ARMv7-CortexARMv7-Cortex指令集指令集Cortex-A8Cortex-A8Cortex-A9 MPCoreCortex-A9 MPCore(14(14核心核心)400MHz600MHz800MHz200MHz20052006200720082009130nm制程制程90nm制程制程65nm制程制程45nm制程制程1GHzARM9微处理器系列 11ARM微处理器系列qARM9系列微处理器在高性能和低功耗特性方面提供最系列微处理器在高性能和低功耗特性方面提供最佳的表现。具有以下特点:佳的表现。具有以下特点:5级整数流水线,
10、指令执行效率更高。级整数流水线,指令执行效率更高。提供提供1.1MIPS/MHz的哈佛结构。的哈佛结构。支持支持32位位ARM指令集和指令集和16位位Thumb指令集。指令集。支持支持32位的高速位的高速AMBA总线接口。总线接口。全性能的全性能的MMU,支持,支持Windows CE、Linux、Palm OS等多种主流嵌入式操作系统。等多种主流嵌入式操作系统。MPU支持实时操作系统。支持实时操作系统。支持数据支持数据Cache和指令和指令Cache,具有更高的指令和数,具有更高的指令和数据处理能力。据处理能力。ARM9微处理器系列12qARM9ARM9系列微处理器主要应用于无线设备、仪器系
11、列微处理器主要应用于无线设备、仪器仪表、安全系统、机顶盒、高端打印机、数字照仪表、安全系统、机顶盒、高端打印机、数字照相机和数字摄像机等。相机和数字摄像机等。ARM微处理器系列qARM9ARM9系列微处理器包含系列微处理器包含ARM920TARM920T、ARM922TARM922T和和ARM940TARM940T三种类型,以适用于不同的应用场合。三种类型,以适用于不同的应用场合。ARM920T系统结构分析13ARM9TDMIARM9TDMI采用采用5 5级流水线,具有分开的指令和数据存级流水线,具有分开的指令和数据存储器:储器:(1 1)取指取指:从存储器中取出指令,并将其放入指令:从存储器
12、中取出指令,并将其放入指令流水线。流水线。(2 2)译码译码:对指令进行译码。:对指令进行译码。(3 3)执行执行:把一个操作数移位,产生:把一个操作数移位,产生ALUALU的结果。的结果。(4 4)缓冲缓冲/数据数据:如果需要,则访问数据存储器;:如果需要,则访问数据存储器;否则否则ALUALU的结果只是简单地缓冲的结果只是简单地缓冲1 1个时钟周期,以便所个时钟周期,以便所有的指令具有同样的流水线流程。有的指令具有同样的流水线流程。(5 5)回写回写:将指令产生的结果回写到寄存器,包括:将指令产生的结果回写到寄存器,包括任何从存储器中读取的数据。任何从存储器中读取的数据。ARM920T系统
13、结构分析14ARM9TDMIARM9TDMI处理器一个显著的特点是采用指令和数处理器一个显著的特点是采用指令和数据分离访问的方式,即采用了指令缓存(据分离访问的方式,即采用了指令缓存(I-CacheI-Cache)和数据缓存(和数据缓存(D-CacheD-Cache)。这样可以把指令访问和)。这样可以把指令访问和数据访问单独安排数据访问单独安排1 1级流水线。级流水线。InstructionFetch Shift+ALUMemoryAccessRegWriteRegReadRegDecodeFETCHDECODEEXECUTEMEMORYWRITEARM9TDMIARM or ThumbIns
14、t DecodeReg SelectRegReadShiftALURegWriteThumbARMdecompressARM decodeInstructionFetchFETCHDECODEEXECUTEARM7TDMI嵌入式微处理器 每个嵌入式系统至少包含一个嵌入式微处理每个嵌入式系统至少包含一个嵌入式微处理器器 嵌入式微处理器体系结构可采用冯嵌入式微处理器体系结构可采用冯诺依曼诺依曼(Von Neumann)结构或哈佛()结构或哈佛(Harvard)15地址地址数据数据主存储器主存储器MOV r8,#8MOV r8,#8CPUCPUPCPC指令指令程序存储器程序存储器CPUCPUPCPC
15、地址地址数据存储器数据存储器MOV r8,#8MOV r8,#8地址地址数据数据冯冯诺依曼结构诺依曼结构哈佛结构哈佛结构ARM微处理器的工作状态 16ARM微处理器的工作状态q从编程的角度看,从编程的角度看,ARMARM微处理器的工作状态一般微处理器的工作状态一般有两种,并可在两种状态之间切换:有两种,并可在两种状态之间切换:ARM状态状态,此时处理器执行,此时处理器执行32位的字对齐位的字对齐的的ARM指令;指令;Thumb状态状态,此时处理器执行,此时处理器执行16位的、半字位的、半字对齐的对齐的Thumb指令。指令。q在开始执行代码时,应该处于在开始执行代码时,应该处于ARMARM状态。
16、状态。ARM微处理器:处理器工作状态进入进入ThumbThumb状态:状态:执行执行BXBX指令,并设置操作数寄存器的状态(位指令,并设置操作数寄存器的状态(位00)为为1 1。在在ThumbThumb状态进入异常状态进入异常(IRQ,FIQ,UNDEF,(IRQ,FIQ,UNDEF,ABORT,SWI etc.)ABORT,SWI etc.),当异常处理返回时自动转换到,当异常处理返回时自动转换到ThumbThumb状态状态进入进入ARMARM状态:状态:执行执行BXBX指令,并设置操作数寄存器的状态(位指令,并设置操作数寄存器的状态(位00)为为0 0。进入异常时,将进入异常时,将PCPC
17、放入异常模式链接寄存器中,从放入异常模式链接寄存器中,从异常向量地址开始执行也可进入异常向量地址开始执行也可进入ARMARM状态状态ARM微处理器:处理器工作状态 Thumb-2:增加了混合模式能力定义了一个新的定义了一个新的32-bit指令集能在传统的指令集能在传统的16-bit指令运行的指令运行的Thumb状态下同时运行。状态下同时运行。这样能在一个系统中更好地平衡这样能在一个系统中更好地平衡ARM和和Thumb代码的能力,使系统能更好地利代码的能力,使系统能更好地利用用ARM级别的性能和级别的性能和Thumb代码的密度代码的密度的优势的优势 ARM与THUMB19q THUMBTHUMB
18、指令是指令是ARMARM指令的子集指令的子集ARM微处理器的工作状态q 可以相互调用,只要遵循一定的调用规则可以相互调用,只要遵循一定的调用规则q ThumbThumb指令与指令与ARMARM指令的时间效率和空间效率关系为指令的时间效率和空间效率关系为:存储空间约为存储空间约为ARMARM代码的代码的60607070 指令数比指令数比ARMARM代码多约代码多约30304040 存储器为存储器为3232位时位时ARMARM代码比代码比ThumbThumb代码快约代码快约4040 存储器为存储器为1616位时位时ThumbThumb比比ARMARM代码快约代码快约40405050 使用使用Thu
19、mbThumb代码,存储器的功耗会降低约代码,存储器的功耗会降低约3030处理器模式20ARM微处理器的工作模式q UsrUsr(用户):(用户):ARMARM处理器正常的程序执行状态处理器正常的程序执行状态q FiqFiq(快速中断):(快速中断):用于高速数据传输或通道处理用于高速数据传输或通道处理q IrqIrq(中断):(中断):用于通用的中断处理用于通用的中断处理q SvcSvc(管理):(管理):操作系统使用的保护模式操作系统使用的保护模式q AbtAbt(中止):(中止):用于虚拟存储及存储保护用于虚拟存储及存储保护q SysSys(系统):(系统):运行具有特权的操作系统任务运
20、行具有特权的操作系统任务q UndUnd(未定义):(未定义):当出现未定义指令终止时进入该模式当出现未定义指令终止时进入该模式ARM微处理器的存储器格式 21qARMARM体系结构所支持的最大寻址空间为体系结构所支持的最大寻址空间为4GB4GB(2 23232字节)字节)ARM微处理器的存储器格式qARMARM体系结构将存储器看作是从零地址开始的字体系结构将存储器看作是从零地址开始的字节的线性组合。节的线性组合。从零字节到三字节放置第一个从零字节到三字节放置第一个存储的字数据,从第四个字节到第七个字节放存储的字数据,从第四个字节到第七个字节放置第二个存储的字数据,依次排列。置第二个存储的字数
21、据,依次排列。qARMARM体系结构可以用两种方法存储字数据,称之体系结构可以用两种方法存储字数据,称之为为大端格式大端格式和和小端格式小端格式 ARM体系结构的存储器格式大端格式 22ARM微处理器的存储器格式q在这种格式中,字数据的高字节存储在低地址在这种格式中,字数据的高字节存储在低地址中,而字数据的低字节则存放在高地址中中,而字数据的低字节则存放在高地址中ARM体系结构的存储器格式小端格式 23ARM微处理器的存储器格式q与大端存储格式相反,在小端存储格式中,低地与大端存储格式相反,在小端存储格式中,低地址中存放的是字数据的低字节,高地址存放的是址中存放的是字数据的低字节,高地址存放的
22、是字数据的高字节字数据的高字节ARM微处理器:内存和I/O大端的数据存放格式大端的数据存放格式低地址低地址高地址高地址地址地址A地址地址A+1地址地址A+2地址地址A+3最高有效字节的最高有效字节的地址就是该地址就是该word的地址的地址最高有效字最高有效字节位于最低节位于最低地址地址word a=0 x f6 73 4b cdf6734bcdARM微处理器:内存和I/O小端的数据格式小端的数据格式 低地址低地址高地址高地址地址地址A地址地址A+1地址地址A+2地址地址A+3最低有效字节的最低有效字节的地址就是该地址就是该word的地址的地址最低有效字最低有效字节位于最低节位于最低地址地址wo
23、rd a=0 x f6 73 4b cdf6734bcd寄存器组织 ARMARM微处理器共有微处理器共有3737个个3232位寄存器位寄存器,其中,其中3131个个为通用寄存器,为通用寄存器,6 6个为状态寄存器个为状态寄存器。但是这些。但是这些寄存器不能被同时访问。但在任何时候,通寄存器不能被同时访问。但在任何时候,通用寄存器用寄存器R14R14R0R0、程序计数器、程序计数器PCPC、一个或两、一个或两个状态寄存器都是可访问的。个状态寄存器都是可访问的。26ARM微处理器的寄存器格式ARMARM体系结构所支持的异常类型体系结构所支持的异常类型 27异常类型异常类型具体含义具体含义复位复位复
24、位电平有效时,产生复位异常,程序跳转到复位电平有效时,产生复位异常,程序跳转到复位处理程序处执行。复位处理程序处执行。未定义指令未定义指令遇到不能处理的指令时,产生未定义指令异常。遇到不能处理的指令时,产生未定义指令异常。软件中断软件中断执行执行SWI指令产生,用于用户模式下的程序调用指令产生,用于用户模式下的程序调用特权操作指令。特权操作指令。指令预取中指令预取中止止处理器预取指令的地址不存在,或该地址不允处理器预取指令的地址不存在,或该地址不允许当前指令访问,产生指令预取中止异常。许当前指令访问,产生指令预取中止异常。数据中止数据中止处理器数据访问指令的地址不存在,或该地址处理器数据访问指
25、令的地址不存在,或该地址不允许当前指令访问时,产生数据中止异常。不允许当前指令访问时,产生数据中止异常。IRQ外部中断请求有效,且外部中断请求有效,且CPSR中的中的I位为位为0时,产时,产生生IRQ异常。异常。FIQ快速中断请求引脚有效,且快速中断请求引脚有效,且CPSR中的中的F位为位为0时,时,产生产生FIQ异常。异常。ARM异常处理异常向量表(Exception Vectors)28地地 址址异异 常常进入模式进入模式0 x0000,00000 x0000,0000复位复位管理模式管理模式0 x0000,00040 x0000,0004未定义指令未定义指令未定义模式未定义模式0 x00
展开阅读全文