1、2023-1-22第二章ARM微处理器及其硬件体系结构1第二章第二章ARM微处理器及微处理器及其硬件体系结构其硬件体系结构1第二章ARM微处理器及其硬件体系结构12、冯、冯诺依曼体系的特诺依曼体系的特点点1)数据与指令都存储在存储器中)数据与指令都存储在存储器中2)被大多数计算机所采用)被大多数计算机所采用3)ARM7冯诺依曼体系冯诺依曼体系第二章ARM微处理器及其硬件体系结构13、哈佛体系结构、哈佛体系结构指令寄存器指令寄存器控制器控制器数据通道数据通道输入输入输出输出中央处理器中央处理器程序存储器程序存储器指令指令0指令指令1指令指令2数据存储器数据存储器数据数据0数据数据1数据数据2地址
2、地址指令指令地址地址数据数据第二章ARM微处理器及其硬件体系结构14、哈佛体系结构的特点、哈佛体系结构的特点1)程序存储器与数据存储器分开)程序存储器与数据存储器分开2)提供了较大的数存储器带宽)提供了较大的数存储器带宽3)适合于数字信号处理)适合于数字信号处理4)大多数)大多数DSP都是哈佛结构都是哈佛结构5)ARM9是哈佛结构是哈佛结构第二章ARM微处理器及其硬件体系结构15 5、CISCCISC:复杂指令集(:复杂指令集(Complex Instruction Set ComputerComplex Instruction Set Computer)具有大量的指令和寻址方式具有大量的指令
3、和寻址方式8/28/2原则:原则:80%80%的程序只使用的程序只使用20%20%的指令的指令大多数程序只使用少量的指令就能够运行大多数程序只使用少量的指令就能够运行。6 6、RISCRISC:精简指令集(:精简指令集(Reduced Instruction Set Computer)Reduced Instruction Set Computer)在通道中只包含最有用的指令在通道中只包含最有用的指令确保数据通道快速执行每一条指令确保数据通道快速执行每一条指令使使CPUCPU硬件结构设计变得更为简单硬件结构设计变得更为简单第二章ARM微处理器及其硬件体系结构1n为增加处理器指令流的速度,为增加
4、处理器指令流的速度,ARM7 系列使用系列使用3级流水线级流水线.u允许多个操作同时处理,而非顺序执行。允许多个操作同时处理,而非顺序执行。DecodeFetchExecute从存储器中读取指令从存储器中读取指令解码指令中用到的寄存器解码指令中用到的寄存器寄存器读(从寄存器寄存器读(从寄存器Bank)移位及移位及ALU操作操作寄存器写(到寄存器寄存器写(到寄存器Bank)PCPCPC-4 PC-2PC-8 PC-4ARMThumbPC指向正被取指的指令,而非正在执行的指令指向正被取指的指令,而非正在执行的指令7、流水线技术:、流水线技术:几个指令可以并行执行几个指令可以并行执行 提高了提高了C
5、PU的运行效率的运行效率 内部信息流要求通畅流动内部信息流要求通畅流动 第二章ARM微处理器及其硬件体系结构1n该例中用该例中用6个时钟周期执行了个时钟周期执行了6条指令条指令n所有的操作都在寄存器中(单周期执行)所有的操作都在寄存器中(单周期执行)n指令周期数指令周期数(CPI)=1CycleOperationADDSUBORRANDEORORR123456789FDEFDEFEFDEFDEDFDEWF 取指取指D 解码解码E 执行执行M8 8、最佳流水线、最佳流水线第二章ARM微处理器及其硬件体系结构19、超标量执行、超标量执行超标量超标量CPUCPU采用多条流水线结构采用多条流水线结构执
6、行执行1预取预取指令指令CACHE译码译码2译码译码1执行执行2执行执行1预取预取译码译码2译码译码1执行执行2流流水水线线1流流水水线线2数据数据第二章ARM微处理器及其硬件体系结构110、高速缓存(、高速缓存(CACHE)1、为什么采用高速缓存、为什么采用高速缓存 微处理器的时钟频率比内存速度提高快得多,高速缓存可以微处理器的时钟频率比内存速度提高快得多,高速缓存可以提高内存的平均性能。提高内存的平均性能。2、高速缓存的工作原理、高速缓存的工作原理 高速缓存是一种小型、快速的存储器,它保存部分主存内容高速缓存是一种小型、快速的存储器,它保存部分主存内容的拷贝。的拷贝。CPU高速缓存控制器C
7、ACHE主存数据数据地址第二章ARM微处理器及其硬件体系结构111、总线和总线桥总线和总线桥CPU低速设备桥数据高速总线存储器高速设备高速设备低速总线第二章ARM微处理器及其硬件体系结构112、存储器系统、存储器系统RAM:随机存取存储器随机存取存储器 SRAM:静态随机存储器静态随机存储器DRAM:动态随机存储器动态随机存储器 1)SRAM比比DRAM快快2)SRAM比比DRAM耗电多耗电多3)DRAM存储密度比存储密度比SRAM高得多高得多4)DRAM需要周期性刷新需要周期性刷新ROM:只读存储器只读存储器FLASH:闪存闪存CSR/WAddrDataSRAMCSR/WCASDataRAS
8、AddrDRAM第二章ARM微处理器及其硬件体系结构11.2 ARM7处理器内核处理器内核nARM7TDMI 特性特性n3 级流水线级流水线n冯冯.诺依曼架构诺依曼架构nCPI(Cycle Per Instruction)约为约为1.9 nT-Thumb 架构扩展架构扩展,提供两个独立指令集:提供两个独立指令集:nARM 指令,均为指令,均为 32位位nThumb指令,均为指令,均为 16位位n两种运行状态,用来选择哪个指令集被两种运行状态,用来选择哪个指令集被执行执行nD -内核具有内核具有Debug扩展结构扩展结构nM 增强乘法器增强乘法器(32x8)支持支持64位结果位结果.nI -Em
9、beddedICE 逻辑逻辑1、ARM7TDMI处理器处理器第二章ARM微处理器及其硬件体系结构12、ARM7TDMI 外部接口外部接口ARM7TDMI内核内核存储器接口存储器接口地址总线地址总线数据总线数据总线控制控制协处理器接口协处理器接口时钟时钟中断中断复位复位第二章ARM微处理器及其硬件体系结构13、ARM7TDMI 方框图方框图DOUT31:0ARM7TDM内核内核TAP 控制器控制器JTAG 接口数据总线控制信号D31:0地址总线A31:0DIN31:0BUSSplitterEmbeddedICE逻辑逻辑第二章ARM微处理器及其硬件体系结构14 4、ARM7TDMI ARM7TDM
10、I 内核内核寄存器寄存器Bank乘法器乘法器地址自增器地址自增器ALUBAVectors地址寄存器地址寄存器桶桶移位器移位器PCALU读数据读数据寄存器寄存器写数据写数据寄存器寄存器指令解码指令解码D31:0第二章ARM微处理器及其硬件体系结构15、外部地址产生、外部地址产生PC31:2 ARM StatePC31:1 Thumb StateALU31:0INC自增器自增器A31:0向量向量0 x1C0 x00地址地址寄存器寄存器第二章ARM微处理器及其硬件体系结构1nARM7TDMI-S 是是ARM7TDMI 的完全可合的完全可合成成 版本版本n指令集和周期与指令集和周期与ARM7TDMI
11、固化版本兼容固化版本兼容n完全可合成的完全可合成的 RTLn使用了纲要设计构件的组件使用了纲要设计构件的组件nALUn寄存器寄存器bankn单周期设计(上升沿)单一总线接口单周期设计(上升沿)单一总线接口6、ARM7TDMI-S第二章ARM微处理器及其硬件体系结构1nARM7EJ-S 是可综合的内核版本是可综合的内核版本:nARM体系结构 V5TEJnJazelle Java 加速技术n增强的DSP 指令系统n5级流水线n高性能乘法器n实时调试EmbeddedICE-RTnETM 接口n向后兼容其它 ARM7内核n兼容 V5TE 体系7、ARM7EJ-S第二章ARM微处理器及其硬件体系结构1l
12、V3V3版本推出版本推出3232位寻址能力位寻址能力,结构扩展变化为结构扩展变化为uT16T16位压缩指令集位压缩指令集uMM增强型乘法器增强型乘法器,产生全产生全6464位结果位结果(32X32(32X3264or32X32+64 64or32X32+64 64)64)lV4V4版本增加了半字版本增加了半字loadload和和storestore指令指令lV5V5版本改进了版本改进了ARMARM和和ThumbThumb之间的交互之间的交互,结构扩展变化为结构扩展变化为:uE-E-增强型增强型DSPDSP指令集指令集,包括全部算法操作和包括全部算法操作和1616位乘法操作位乘法操作uJ-J-支
13、持新的支持新的JAVA,JAVA,提供字节代码执行的硬件和优化软件加提供字节代码执行的硬件和优化软件加速功能速功能ARMARM体系结构版本体系结构版本 -2-2第二章ARM微处理器及其硬件体系结构11.3 ARM 架构架构1、数据和指令类型、数据和指令类型nARM 采用的是采用的是32位架构位架构.n ARM 约定约定:Byte:8 bitsHalfword:16 bits(2 byte)Word:32 bits(4 byte)n大部分大部分ARM core 提供:提供:ARM 指令集(32-bit)Thumb 指令集(16-bit)nJazelle cores 支持支持 Java bytec
14、ode第二章ARM微处理器及其硬件体系结构12、处理器工作模式(、处理器工作模式(ARM 有有7个)个)User(用户模式用户模式):非特权模式非特权模式,大部分任务执行在这种模式,大部分任务执行在这种模式FIQ(快速中断模式快速中断模式):高优先级(高优先级(fast)中断中断产生时将会进入这种模式产生时将会进入这种模式IRQ(中断模式中断模式):低优先级(低优先级(normal)中断中断产生时将会进入这种模式产生时将会进入这种模式Supervisor(管理员模式管理员模式):当当复位复位或或软中断指令软中断指令执行时将会进入这种模式执行时将会进入这种模式Abort(中止模式中止模式):当当
15、存取(存取(数据和指令数据和指令)异常)异常时将会进入这种模式时将会进入这种模式Undef(未定义模式未定义模式):当执行当执行未定义未定义指令时会进入这种模式指令时会进入这种模式System(系统模式系统模式):使用和使用和User模式相同寄存器集的特权模式模式相同寄存器集的特权模式特权模式特权模式=异常模式异常模式+System异常模式异常模式第二章ARM微处理器及其硬件体系结构13、ARM 寄存器寄存器(37)Abort Moder0r1r2r3r4r5r6r7r8r9r10r11r12r15(pc)cpsrr13(sp)r14(lr)spsr当前可见寄存器当前可见寄存器r13(sp)r
16、14(lr)spsrr13(sp)r14(lr)spsrr13(sp)r14(lr)spsrr8r9r10r11r12r13(sp)r14(lr)spsr备用寄存器备用寄存器UserFIQIRQSVCUndefr13(sp)r14(lr)3030 个通用个通用3232位寄存器,位寄存器,1 1 个程序计数器个程序计数器PCPC6 6 个状态寄存器个状态寄存器15 15 个通用寄存器个通用寄存器 (R0-R14),1(R0-R14),1或者或者2 2个状态寄存器和程序计数器在任何时候都中可见的个状态寄存器和程序计数器在任何时候都中可见的2第二章ARM微处理器及其硬件体系结构1Thumb stat
17、eLow 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)spsrUsermoder0-r12r15,andcpsrUndefr13(sp)r14(l
18、r)spsrUsermoder0-r12r15,andcpsrAbortr13(sp)r14(lr)spsrUsermoder0-r12r15,andcpsr寄存器组织寄存器组织第二章ARM微处理器及其硬件体系结构1ARM 寄存器名称寄存器名称nARM 有有37个个32-Bits长的寄存器长的寄存器.n1 个用作个用作PC(program counter)(r15)n1个用作个用作CPSR(current program status register)n5个用作个用作SPSR(saved program status registers)n30 个通用寄存器个通用寄存器n当前处理器的模式决定
19、着哪组寄存器可操作当前处理器的模式决定着哪组寄存器可操作.任何模式都可以存取:任何模式都可以存取: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相应的相应的 spsr(saved program status register)
20、第二章ARM微处理器及其硬件体系结构14、程序状态寄存器、程序状态寄存器n 条件位:条件位:uN=Negative result from ALU uZ=Zero result from ALUuC=ALU operation Carried outuV=ALU operation oVerflowednQ 位:位:u仅仅ARM 5TE/J架构支持架构支持u指示饱和状态指示饱和状态nJ 位位u仅仅ARM 5TE/J架构支持架构支持uJ=1:处理器处于处理器处于Jazelle状态状态n中断禁止位:中断禁止位:uI =1:禁止禁止 IRQ.uF=1:禁止禁止 FIQ.nT Bitu仅仅ARM xT
21、架构支持架构支持uT=0:处理器处于处理器处于 ARM 状态状态uT=1:处理器处于处理器处于 Thumb 状态状态nMode位:位:u处理器模式位处理器模式位2731N Z C V Q2867I F T mode1623 815 54024fsxc U n d e f i n e dJ说明说明第二章ARM微处理器及其硬件体系结构15、程序指针、程序指针PC(r15)n当处理器执行在当处理器执行在ARM状态状态:所有指令所有指令 32 bits 宽宽所有指令必须所有指令必须 word 对齐对齐所以所以 pc值由值由bits 31:2决定决定,bits 1:0 未定义未定义(所以指令不能所以指令
22、不能halfword/byte对齐对齐).n当处理器执行在当处理器执行在Thumb状态状态:所有指令所有指令 16 bits 宽宽所有指令必须所有指令必须 halfword 对齐对齐所以所以 pc值由值由bits 31:1决定决定,bits 0 未定义未定义(所以指令不能所以指令不能 byte对齐对齐).n当处理器执行在当处理器执行在Jazelle状态状态:所有指令所有指令 8 bits 宽宽处理器执行处理器执行 word 存取一次取存取一次取4条指令条指令第二章ARM微处理器及其硬件体系结构16 6、存储器模式、存储器模式l大端模式大端模式(高对低)高对低)u最高位最高位字节保存在字节保存在
23、最低位地址最低位地址u字由最低位字节的字节地址寻址字由最低位字节的字节地址寻址3124 2316 158 70 字地址字地址89101184567401230 低地址低地址 高地址高地址l小端模式(低对低)小端模式(低对低)u最低位最低位字节保存在字节保存在最低位地址最低位地址u字由最低位字节的字节地址寻址字由最低位字节的字节地址寻址3124 2316 158 70字地址字地址11109887654432100 低地址低地址 高地址高地址第二章ARM微处理器及其硬件体系结构11.4 异常异常1、什么是异常?、什么是异常?内部内部或或外部中断源产生并引起处理器处理外部中断源产生并引起处理器处理一
24、个事件一个事件,如如外部中断外部中断或或试图试图执行未定义指令都会引起异常。执行未定义指令都会引起异常。处理异常之前必须保留处理器的状态处理异常之前必须保留处理器的状态2 2、异常类型、异常类型 FIQ FIQ IRQ(Interrupt ReQuest)IRQ(Interrupt ReQuest)未定义指令未定义指令 预取中止预取中止 数据中止数据中止 复位复位 软件中断软件中断Software interruptSoftware interrupt 通过软件中断产生通过软件中断产生 进行管理员模式中获得进行管理员模式中获得 通常要求特殊的管理功能,如操作系统支持通常要求特殊的管理功能,如操
25、作系统支持第二章ARM微处理器及其硬件体系结构13 3、异常优先级、异常优先级Reset(highest priority)Reset(highest priority)(2)Data abort(2)Data abort(3)FIQ(3)FIQ(4)IRQ(4)IRQ(5)Prefetch abort(5)Prefetch abort(6)(6)未定义指令未定义指令,Software interrupt(,Software interrupt(最低优先级最低优先级)l只要产生异常只要产生异常就会导致正常的程序流程被就会导致正常的程序流程被临时停止临时停止,例如外例如外围中断服务程序围中断服务
26、程序l在异常被处理前在异常被处理前,当前的处理器当前的处理器状态必须被保存状态必须被保存,以便处理以便处理程序完成后程序完成后,最后的程序可以被恢复最后的程序可以被恢复.第二章ARM微处理器及其硬件体系结构14 4、异常向量、异常向量第二章ARM微处理器及其硬件体系结构15、进入异常的操作进入异常的操作l在相应的链接寄存器在相应的链接寄存器LR(r14)LR(r14)中保存下一条指令的地址中保存下一条指令的地址l将将CPSRCPSR复制到相应的复制到相应的SPSRSPSR中中l强制使强制使CPSRCPSR模式模式位置成对应异常类型的值位置成对应异常类型的值l强制使程序计数器指向相应强制使程序计
27、数器指向相应异常向量异常向量,取下一条指令取下一条指令第二章ARM微处理器及其硬件体系结构1例子例子:用户模式到用户模式到 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
28、_fiqr8_fiqRegisters in use用户模式用户模式spsr_fiq返回一个从用户模式计算的地址返回一个从用户模式计算的地址,PC,PC值存储在值存储在FIQFIQ模式模式r14r14用户模式用户模式 CPSR CPSR 复制到复制到 FIQ FIQ 模式模式 SPSRSPSR第二章ARM微处理器及其硬件体系结构16、退出异常的操作退出异常的操作l将将LRLR寄存器中的值减去相应的偏移量送到寄存器中的值减去相应的偏移量送到PCPC中中(The offset will(The offset will vary depending on the type of exception)
29、vary depending on the type of exception)l将将 SPSR SPSR 复制回复制回 CPSRCPSRl清除禁止中断标志清除禁止中断标志,如果它被设置成使能如果它被设置成使能第二章ARM微处理器及其硬件体系结构128-31位为条件标志位,包括位为条件标志位,包括N、Z、C、V 4个标志。个标志。N位位符号位。如果结果为负数,则符号位。如果结果为负数,则N=1;结果为正数或;结果为正数或0,则,则 N=0Z位位如果指令的结果为如果指令的结果为0,则置,则置1(通常表示比较结果为(通常表示比较结果为“相等相等”);否则);否则清清0C位位表示加、减、比较运算的进
30、位、借位等(表示加、减、比较运算的进位、借位等(减法有借位减法有借位C=0,否则为,否则为1)V位位益出标志位益出标志位第第27位位为为Q标志位,只出现在标志位,只出现在V5以上带以上带E的版本中,指出在增强型的版本中,指出在增强型DSP指令中是指令中是否出现益出或饱和。否出现益出或饱和。第第24位为位为J位位第第6、7位位为中断禁止位,当为中断禁止位,当I=1时,禁止时,禁止IRQ中断;当中断;当F=1时,禁止时,禁止FIQ中断。中断。第第5位位为为T位,主要用于对位,主要用于对ARM体系带体系带T的版本,当的版本,当T=0,处理器处于,处理器处于ARM状态状态;当;当T=1,处理器处于,处
31、理器处于Thumb状态。状态。第第0-4位为处理器的模式位,决定目前处理器所处在的工作模式。位为处理器的模式位,决定目前处理器所处在的工作模式。另外寄存器中灰色的这些部分为保留位,以方便以后的扩展。另外寄存器中灰色的这些部分为保留位,以方便以后的扩展。说说 明明第二章ARM微处理器及其硬件体系结构11)取指令()取指令(Instruction Fetch):TF2)指令译码()指令译码(Instruction Decode):):TD3)执行指令()执行指令(Instruction Execute):):TE4)存储()存储(Storage):):TS一般指令的执行周期一般指令的执行周期T每条
32、指令的执行周期:每条指令的执行周期:T=TF+TD+TE+TS第二章ARM微处理器及其硬件体系结构1程序状态寄存器程序状态寄存器PSRPSR的模式位的模式位第二章ARM微处理器及其硬件体系结构1字节访问字节访问(字节对齐字节对齐)半字访问半字访问(半字对齐半字对齐)字访问字访问(字对齐字对齐)3210765402468ace089abcdef48c对齐对齐第二章ARM微处理器及其硬件体系结构11)说出说出ARM可以工作的模式名字。可以工作的模式名字。2)ARM核有多少个寄存器?核有多少个寄存器?3)什么寄存器用于存储什么寄存器用于存储PC和连接寄存器?和连接寄存器?4)R13通常用来存储什么?
33、通常用来存储什么?5)哪种模式使用的寄存器最少?哪种模式使用的寄存器最少?6)在在Thumb 指令集中,哪些寄存器处于指令集中,哪些寄存器处于Low group?7)CPSR的哪一位反映了处理器的状态?的哪一位反映了处理器的状态?8)所有的所有的Thumb指令采取什么对齐方式指令采取什么对齐方式?9)ARM有哪几个异常类型。有哪几个异常类型。10)为什么为什么FIQ的服务程序地址要位于的服务程序地址要位于0X1C?11)在复位后,在复位后,ARM处理器处于何种模式、何种状态?处理器处于何种模式、何种状态?测验测验1答案答案1第二章ARM微处理器及其硬件体系结构11)一条简单的算术操作一条简单的
34、算术操作(如:如:ADD)要占用几个周期要占用几个周期?2)ARM7TDMI指令流水线有几个阶段指令流水线有几个阶段?3)ARM7TDMI 是否使用是否使用 ALU 计算地址计算地址?4)ARM在存储器里,可寻址几种类型的数据在存储器里,可寻址几种类型的数据?测验测验2答案答案2第二章ARM微处理器及其硬件体系结构11)User,SVC(Supervisor),IRQ,FIQ,UNDEF,ABORT,System2)373)pc=r15 lr=r144)r13=sp5)User/System-does not have an spsr6)r0-r77)T-bit which is bit 5,and J-bit which is bit 248)Halfword(16-bit)9)Reset,FIQ,IRQ,prefetch abort,data abort,SWI,Undefined struction10)Speed-To remove the need for a branch to the FIQ handler11)ARM state,SVC mode-also interrupts will be disabled.答答 案案12023-1-22第二章ARM微处理器及其硬件体系结构1
侵权处理QQ:3464097650--上传资料QQ:3464097650
【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。