第二章ARM微处理器及其硬件体系结构概要_第1页
第二章ARM微处理器及其硬件体系结构概要_第2页
第二章ARM微处理器及其硬件体系结构概要_第3页
第二章ARM微处理器及其硬件体系结构概要_第4页
第二章ARM微处理器及其硬件体系结构概要_第5页
已阅读5页,还剩36页未读 继续免费阅读

下载本文档

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

文档简介

1、第二章第二章ARM微处理器及其硬件体系结构微处理器及其硬件体系结构1.1 硬件基础硬件基础1、冯、冯诺依曼体系结构模型诺依曼体系结构模型指令寄存器指令寄存器控制器控制器数据通道数据通道输入输入输出输出中央处理器中央处理器存储器存储器程序程序指令指令0指令指令1指令指令2指令指令3指令指令4数据数据数据数据0数据数据1数据数据22、冯、冯诺依曼体系的特诺依曼体系的特点点1)数据与指令都存储在存储器中)数据与指令都存储在存储器中2)被大多数计算机所采用)被大多数计算机所采用3)ARM7冯诺依曼体系冯诺依曼体系3、哈佛体系结构、哈佛体系结构指令寄存器指令寄存器控制器控制器数据通道数据通道输入输入输出

2、输出中央处理器中央处理器程序存储器程序存储器指令指令0指令指令1指令指令2数据存储器数据存储器数据数据0数据数据1数据数据2地址地址指令指令地址地址数据数据4、哈佛体系结构的特点、哈佛体系结构的特点1)程序存储器与数据存储器分开)程序存储器与数据存储器分开2)提供了较大的数存储器带宽)提供了较大的数存储器带宽3)适合于数字信号处理)适合于数字信号处理4)大多数)大多数DSP都是哈佛结构都是哈佛结构5)ARM9是哈佛结构是哈佛结构5 5、CISCCISC:复杂指令集(:复杂指令集(Complex Instruction Set ComputerComplex Instruction Set Co

3、mputer)具有大量的指令和寻址方式具有大量的指令和寻址方式8/28/2原则:原则:80%80%的程序只使用的程序只使用20%20%的指令的指令大多数程序只使用少量的指令就能够运行大多数程序只使用少量的指令就能够运行。6 6、RISCRISC:精简指令集(:精简指令集(Reduced Instruction Set Computer)Reduced Instruction Set Computer)在通道中只包含最有用的指令在通道中只包含最有用的指令确保数据通道快速执行每一条指令确保数据通道快速执行每一条指令使使CPUCPU硬件结构设计变得更为简单硬件结构设计变得更为简单n为增加处理器指令流

4、的速度,为增加处理器指令流的速度,ARM7 系列使用系列使用3级流水线级流水线.u允许多个操作同时处理,而非顺序执行。允许多个操作同时处理,而非顺序执行。DecodeFetchExecute从存储器中读取指令从存储器中读取指令解码指令中用到的寄存器解码指令中用到的寄存器寄存器读(从寄存器寄存器读(从寄存器Bank)移位及移位及ALU操作操作寄存器写(到寄存器寄存器写(到寄存器Bank )PCPCPC - 4 PC-2PC - 8 PC - 4ARMThumbPC指向正被取指的指令,而非正在执行的指令指向正被取指的指令,而非正在执行的指令7、流水线技术:、流水线技术: 几个指令可以并行执行几个指

5、令可以并行执行 提高了提高了CPU的运行效率的运行效率 内部信息流要求通畅流动内部信息流要求通畅流动 n该例中用该例中用6个时钟周期执行了个时钟周期执行了6条指令条指令n所有的操作都在寄存器中(单周期执行)所有的操作都在寄存器中(单周期执行)n指令周期指令周期数数 (CPI) = 1CycleOperationADDSUBORRANDEORORR123456789FDEFDEFEFDEFDEDFDEWF 取指取指D 解码解码E 执行执行M8 8、最佳流水线、最佳流水线9、超标量执行、超标量执行超标量超标量CPUCPU采用多条流水线结构采用多条流水线结构执行执行1预取预取指令指令CACHE译码译

6、码2译码译码1执行执行2执行执行1预取预取译码译码2译码译码1执行执行2流流水水线线1流流水水线线2数据数据10、高速缓存(、高速缓存(CACHE)1、为什么采用高速缓存、为什么采用高速缓存 微处理器的时钟频率比内存速度提高快得多,高速缓存可以微处理器的时钟频率比内存速度提高快得多,高速缓存可以提高内存的平均性能。提高内存的平均性能。2、高速缓存的工作原理、高速缓存的工作原理 高速缓存是一种小型、快速的存储器,它保存部分主存内容高速缓存是一种小型、快速的存储器,它保存部分主存内容的拷贝。的拷贝。 CPU高速缓存控制器CACHE主存数据数据地址11、总线和总线桥总线和总线桥CPU低速设备桥数据高

7、速总线存储器高速设备高速设备低速总线12、存储器系统、存储器系统RAM:随机存取存储器随机存取存储器 SRAM:静态随机存储器静态随机存储器DRAM:动态随机存储器动态随机存储器 1)SRAM比比DRAM快快2)SRAM比比DRAM耗电多耗电多3)DRAM存储密度比存储密度比SRAM高得多高得多4)DRAM需要周期性刷新需要周期性刷新ROM:只读存储器只读存储器FLASH:闪存闪存CSR/WAddrDataSRAMCSR/WCASDataRASAddrDRAM1.2 ARM7处理器内核处理器内核nARM7TDMI 特性特性n3 级流水线级流水线n冯冯.诺依曼架构诺依曼架构nCPI(Cycle

8、Per Instruction) 约为约为1.9 nT-Thumb 架构扩展架构扩展, 提供两个独立指令集:提供两个独立指令集:nARM 指令,均为指令,均为 32位位nThumb指令,均为指令,均为 16位位n两种运行状态,用来选择哪个指令集被两种运行状态,用来选择哪个指令集被执行执行nD - 内核具有内核具有Debug扩展结构扩展结构nM 增强乘法器增强乘法器 (32x8) 支持支持64位结果位结果.nI - EmbeddedICE 逻辑逻辑1、ARM7TDMI处理器处理器2、ARM7TDMI 外部接口外部接口ARM7TDMI内核内核存储器接口存储器接口地址总线地址总线数据总线数据总线控制

9、控制协处理器接口协处理器接口时钟时钟中断中断复位复位3、ARM7TDMI 方框图方框图DOUT31:0ARM7TDM内核内核TAP 控制器控制器JTAG 接口数据总线控制信号D31:0地址总线A31:0DIN31:0BUSSplitterEmbeddedICE逻辑逻辑4 4、ARM7TDMI ARM7TDMI 内核内核寄存器寄存器Bank乘法器乘法器地址自增器地址自增器ALUBAVectors地址寄存器地址寄存器桶桶移位器移位器PCALU读数据读数据寄存器寄存器写数据写数据寄存器寄存器指令解码指令解码D31:05、外部地址产生、外部地址产生PC31:2 ARM StatePC31:1 Thum

10、b StateALU31:0INC自增器自增器A31:0向量向量0 x1C0 x00地址地址寄存器寄存器nARM7TDMI-S 是是ARM7TDMI 的完全可合的完全可合成成 版本版本n指令集和周期与指令集和周期与ARM7TDMI 固化版本兼容固化版本兼容n完全可合成的完全可合成的 RTLn使用了纲要设计构件的组件使用了纲要设计构件的组件nALUn寄存器寄存器bankn单周期设计(上升沿)单一总线接口单周期设计(上升沿)单一总线接口6、ARM7TDMI-SnARM7EJ-S 是可综合的内核版本是可综合的内核版本:nARM体系结构 V5TEJnJazelle Java 加速技术n增强的DSP 指

11、令系统n5级流水线n高性能乘法器n实时调试EmbeddedICE-RTnETM 接口n向后兼容其它 ARM7内核n兼容 V5TE 体系7、ARM7EJ-SlV3V3版本推出版本推出3232位寻址能力位寻址能力, ,结构扩展变化为结构扩展变化为uT T1616位压缩指令集位压缩指令集uM M增强型乘法器增强型乘法器, ,产生全产生全6464位结果位结果(32X32(32X3264or32X32+64 64or32X32+64 64)64)lV4V4版本增加了半字版本增加了半字loadload和和storestore指令指令lV5V5版本改进了版本改进了ARMARM和和ThumbThumb之间的交

12、互之间的交互, ,结构扩展变化为结构扩展变化为: :uE-E-增强型增强型DSPDSP指令集指令集, ,包括全部算法操作和包括全部算法操作和1616位乘法操作位乘法操作uJ-J-支持新的支持新的JAVA,JAVA,提供字节代码执行的硬件和优化软件加提供字节代码执行的硬件和优化软件加速功能速功能ARMARM体系结构版本体系结构版本 - 2- 21.3 ARM 架构架构1、数据和指令类型、数据和指令类型nARM 采用的是采用的是32位架构位架构.n ARM 约定约定:Byte : 8 bitsHalfword :16 bits (2 byte)Word :32 bits (4 byte)n大部分大

13、部分ARM core 提供:提供:ARM 指令集(32-bit) Thumb 指令集(16-bit )nJazelle cores 支持支持 Java bytecode2、处理器工作模式(、处理器工作模式(ARM 有有7个)个)User(用户模式用户模式): 非特权模式非特权模式,大部分任务执行在这种模式,大部分任务执行在这种模式FIQ(快速中断模式快速中断模式): 高优先级(高优先级(fast) 中断中断产生时将会进入这种模式产生时将会进入这种模式IRQ(中断模式中断模式): 低优先级(低优先级(normal) 中断中断产生时将会进入这种模式产生时将会进入这种模式Supervisor(管理员

14、模式管理员模式): 当当复位复位或或软中断指令软中断指令执行时将会进入这种模式执行时将会进入这种模式Abort(中止模式中止模式): 当当存取(存取(数据和指令数据和指令)异常)异常时将会进入这种模式时将会进入这种模式Undef(未定义模式未定义模式): 当执行当执行未定义未定义指令时会进入这种模式指令时会进入这种模式System(系统模式系统模式): 使用和使用和User模式相同寄存器集的特权模式模式相同寄存器集的特权模式特权模式特权模式=异常模式异常模式+ System异常模式异常模式3、ARM 寄存器寄存器(37)Abort Moder0r1r2r3r4r5r6r7r8r9r10r11r

15、12r15(pc)cpsrr13(sp)r14(lr)spsr当前可见寄存器当前可见寄存器r13(sp)r14(lr)spsrr13(sp)r14(lr)spsrr13(sp)r14(lr)spsrr8r9r10r11r12r13(sp)r14(lr)spsr备用寄存器备用寄存器UserFIQIRQSVCUndefr13(sp)r14(lr)3 30 0 个通用个通用3232位寄存器,位寄存器,1 1 个程序计数器个程序计数器PCPC6 6 个状态寄存器个状态寄存器1515 个通用寄存器个通用寄存器 (R0-R14), (R0-R14), 1 1或者或者2 2个状态寄存器和程序计数器在任何时候

16、都中可见的个状态寄存器和程序计数器在任何时候都中可见的2Thumb stateLow registersThumb stateHigh registersNote: System模式使用模式使用user模式寄存器集模式寄存器集FIQUsermoder0-r7,r15,andcpsrr8r9r10r11r12r13(sp)r14(lr)spsrUserr8r9r10r11r12r13(sp)r14(lr)r15(pc)cpsrr0r1r2r3r4r5r6r7IRQr13(sp)r14(lr)spsrUsermoder0-r12r15,andcpsrSVCr13(sp)r14(lr)spsrUse

17、rmoder0-r12r15,andcpsrUndefr13(sp)r14(lr)spsrUsermoder0-r12r15,andcpsrAbortr13(sp)r14(lr)spsrUsermoder0-r12r15,andcpsr寄存器组织寄存器组织ARM 寄存器名称寄存器名称nARM 有有37个个32-Bits长的寄存器长的寄存器.n1 个用作个用作PC( program counter)(r15)n1个用作个用作CPSR(current program status register)n5个用作个用作SPSR(saved program status registers)n30 个通

18、用寄存器个通用寄存器n当前处理器的模式决定着哪组寄存器可操作当前处理器的模式决定着哪组寄存器可操作. 任何模式都可以存取:任何模式都可以存取: n相应的相应的r0-r12子集子集n相应的相应的 r13 (the stack pointer, sp) and r14 (the link register, lr)n相应的相应的 r15 ( the program counter, pc)n相应的相应的CPSR(current program status register, cpsr)n特权模式特权模式 (除除system模式的异常模式模式的异常模式) 还可以存取;还可以存取;n相应的相应的 s

19、psr (saved program status register)4、程序状态寄存器、程序状态寄存器n 条件位:条件位:uN = Negative result from ALU uZ = Zero result from ALUuC = ALU operation Carried outuV = ALU operation oVerflowedn Q 位:位:u仅仅ARM 5TE/J架构支持架构支持u指示饱和状态指示饱和状态n J 位位u仅仅ARM 5TE/J架构支持架构支持uJ = 1: 处理器处于处理器处于Jazelle状态状态n 中断禁止位:中断禁止位:u I = 1: 禁止禁止

20、IRQ.u F = 1: 禁止禁止 FIQ.n T Bitu 仅仅ARM xT架构支持架构支持u T = 0: 处理器处于处理器处于 ARM 状态状态u T = 1: 处理器处于处理器处于 Thumb 状态状态n Mode位:位:u 处理器模式位处理器模式位2731N Z C V Q2867I F T mode1623 815 54024fsxc U n d e f i n e dJ说明说明5、程序指针、程序指针PC (r15)n当处理器执行在当处理器执行在ARM状态状态:所有指令所有指令 32 bits 宽宽所有指令必须所有指令必须 word 对齐对齐所以所以 pc值由值由bits 31:2

21、决定决定, bits 1:0 未定义未定义 (所以指令不能所以指令不能halfword / byte对齐对齐).n当处理器执行在当处理器执行在Thumb状态状态:所有指令所有指令 16 bits 宽宽所有指令必须所有指令必须 halfword 对齐对齐所以所以 pc值由值由bits 31:1决定决定, bits 0 未定义未定义 (所以指令不能所以指令不能 byte对齐对齐).n当处理器执行在当处理器执行在Jazelle状态状态:所有指令所有指令 8 bits 宽宽处理器执行处理器执行 word 存取一次取存取一次取4条指令条指令6 6、存储器模式、存储器模式l大端模式大端模式( (高对低)高

22、对低)u最高位最高位字节保存在字节保存在最低位地址最低位地址u字由最低位字节的字节地址寻址字由最低位字节的字节地址寻址3124 2316 158 70 字地址字地址89101184567401230 低地址低地址 高地址高地址l小端模式(低对低)小端模式(低对低)u最低位最低位字节保存在字节保存在最低位地址最低位地址u字由最低位字节的字节地址寻址字由最低位字节的字节地址寻址3124 2316 158 70字地址字地址11109887654432100 低地址低地址 高地址高地址1.4 异常异常1、什么是异常?、什么是异常? 内部内部或或外部中断源产生并引起处理器处理外部中断源产生并引起处理器处

23、理一个事件一个事件,如如外部中断外部中断或或试图试图执行未定义指令都会引起异常。执行未定义指令都会引起异常。 处理异常之前必须保留处理器的状态处理异常之前必须保留处理器的状态2 2、异常类型、异常类型 FIQ FIQ IRQ(Interrupt IRQ(Interrupt ReQuestReQuest) ) 未定义指令未定义指令 预取中止预取中止 数据中止数据中止 复位复位 软件中断软件中断Software interruptSoftware interrupt 通过软件中断产生通过软件中断产生 进行管理员模式中获得进行管理员模式中获得 通常要求特殊的管理功能,如操作系统支持通常要求特殊的管理

24、功能,如操作系统支持3 3、异常优先级、异常优先级(1)(1)Reset (highest priority)Reset (highest priority)(2) Data abort(2) Data abort(3) FIQ(3) FIQ(4) IRQ(4) IRQ(5) (5) PrefetchPrefetch abort abort(6) (6) 未定义指令未定义指令, Software interrupt , Software interrupt ( (最低优先级最低优先级) )l只要产生异常只要产生异常就会导致正常的程序流程被就会导致正常的程序流程被临时停止临时停止, ,例如外例如

25、外围中断服务程序围中断服务程序l在异常被处理前在异常被处理前, ,当前的处理器当前的处理器状态必须被保存状态必须被保存, ,以便处理以便处理程序完成后程序完成后, ,最后的程序可以被恢复最后的程序可以被恢复. .4 4、异常向量异常向量5、进入异常的操作进入异常的操作l在相应的链接寄存器在相应的链接寄存器LR (r14)LR (r14)中保存下一条指令的地址中保存下一条指令的地址l将将CPSRCPSR复制到相应的复制到相应的SPSRSPSR中中l强制使强制使CPSRCPSR模式模式位置成对应异常类型的值位置成对应异常类型的值l强制使程序计数器指向相应强制使程序计数器指向相应异常向量异常向量,

26、,取下一条指令取下一条指令例子例子: : 用户模式到用户模式到 FIQFIQ模式模式异常异常r15 (pc)r13_fiqr10_fiqr8_fiqspsr_fiqcpsrr7r4r5r2r1r0r3r6r14_fiqr12_fiqr11_fiqr9_fiqr14 (lr)r13 (sp)r12r10r11r9r8Registers in useFIQ 模式模式cpsrr15 (pc)r14 (lr)r13 (sp)r12r10r11r9r8r7r4r5r2r1r0r3r6r14_fiqr13_fiqr12_fiqr10_fiqr11_fiqr9_fiqr8_fiqRegisters in u

27、se用户模式用户模式spsr_fiq返回一个从用户模式计算的地址返回一个从用户模式计算的地址,PC,PC值存储在值存储在FIQFIQ模式模式r14r14用户模式用户模式 CPSR CPSR 复制到复制到 FIQ FIQ 模式模式 SPSRSPSR6、退出异常的操作退出异常的操作l将将LRLR寄存器中的值减去相应的偏移量送到寄存器中的值减去相应的偏移量送到PCPC中中(The offset will (The offset will vary depending on the type of exception)vary depending on the type of exception)l将

28、将 SPSR SPSR 复制回复制回 CPSRCPSRl清除禁止中断标志清除禁止中断标志, ,如果它被设置成使能如果它被设置成使能28-31位为条件标志位,包括位为条件标志位,包括N、Z、C、V 4个标志。个标志。N位位符号位。如果结果为负数,则符号位。如果结果为负数,则N = 1;结果为正数或;结果为正数或0,则,则 N = 0Z位位如果指令的结果为如果指令的结果为0,则置,则置1(通常表示比较结果为(通常表示比较结果为“相等相等”);否则);否则清清0C位位表示加、减、比较运算的进位、借位等(表示加、减、比较运算的进位、借位等(减法有借位减法有借位C=0,否则为,否则为1)V位位益出标志位

29、益出标志位第第27位位为为Q标志位,只出现在标志位,只出现在V5以上带以上带E的版本中,指出在增强型的版本中,指出在增强型DSP指令中是指令中是否出现益出或饱和。否出现益出或饱和。第第24位为位为J位位第第6、7位位为中断禁止位,当为中断禁止位,当I=1时,禁止时,禁止IRQ中断;当中断;当F=1时,禁止时,禁止FIQ中断。中断。第第5位位为为T位,主要用于对位,主要用于对ARM体系带体系带T的版本,当的版本,当T=0,处理器处于,处理器处于ARM状态状态;当;当T=1,处理器处于,处理器处于Thumb状态。状态。第第0-4位为处理器的模式位,决定目前处理器所处在的工作模式。位为处理器的模式位

30、,决定目前处理器所处在的工作模式。另外寄存器中灰色的这些部分为保留位,以方便以后的扩展。另外寄存器中灰色的这些部分为保留位,以方便以后的扩展。说说 明明1)取指令()取指令(Instruction Fetch):TF2)指令译码()指令译码(Instruction Decode):):TD3)执行指令()执行指令(Instruction Execute):):TE4)存储()存储(Storage):):TS一般指令的执行周期一般指令的执行周期T每条指令的执行周期:每条指令的执行周期:T= TF+TD+TE+TS程序状态寄存器程序状态寄存器PSRPSR的模式位的模式位字节访问字节访问(字节对齐字节对齐)半字访问半字访问(半字对齐半字对齐)字访问字访问(字对齐字对齐)3210765402468ace089abcdef48c对齐对齐1) 说出说出ARM可以工作的模式名字。可以工作的模式名字。2) ARM核有多少个寄存器?核有多少个寄存器?3) 什么寄存器用于存储什么寄存器用于存储PC和连接寄存器?和连接寄存器?4) R13通常用来存储什么?通常用来

温馨提示

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

评论

0/150

提交评论