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、哈佛体系结构指令寄存器控制器数据通道输入输出中央处理器程序存储器指令0指令1指令2数据存储器数据0数据1数据2地址指令地址数据4、哈佛体系结构的特点1)程序存储器与数据存储器分开2)提供了较大的数存储器带宽3)适合于数字信号处理4)大多数DSP都是哈佛结构5)ARM9是哈佛结构5、CISC:复杂指令集(Comple

2、x Instruction Set Computer)具有大量的指令和寻址方式8/2原则:80%的程序只使用20%的指令大多数程序只使用少量的指令就能够运行。6、RISC:精简指令集(Reduced Instruction Set Computer)在通道中只包含最有用的指令确保数据通道快速执行每一条指令使CPU硬件结构设计变得更为简单为增加处理器指令流的速度,ARM7 系列使用3级流水线.允许多个操作同时处理,而非顺序执行。DecodeFetchExecute从存储器中读取指令解码指令中用到的寄存器寄存器读(从寄存器Bank)移位及ALU操作寄存器写(到寄存器Bank )PCPCPC - 4

3、PC-2PC - 8PC - 4ARMThumbPC指向正被取指的指令,而非正在执行的指令7、流水线技术: 几个指令可以并行执行 提高了CPU的运行效率 内部信息流要求通畅流动 该例中用6个时钟周期执行了6条指令所有的操作都在寄存器中(单周期执行)指令周期数 (CPI) = 1CycleOperationADDSUBORRANDEORORR123456789FDEFDEFEFDEFDEDFDEWF 取指D 解码E 执行M8、最佳流水线9、超标量执行超标量CPU采用多条流水线结构执行1预取指令CACHE译码2译码1执行2执行1预取译码2译码1执行2流水线1流水线2数据10、高速缓存(CACHE)

4、1、为什么采用高速缓存 微处理器的时钟频率比内存速度提高快得多,高速缓存可以提高内存的平均性能。2、高速缓存的工作原理 高速缓存是一种小型、快速的存储器,它保存部分主存内容的拷贝。 CPU高速缓存控制器CACHE主存数据数据地址11、总线和总线桥CPU低速设备桥数据高速总线存储器高速设备高速设备低速总线12、存储器系统RAM:随机存取存储器 SRAM:静态随机存储器DRAM:动态随机存储器 1)SRAM比DRAM快2)SRAM比DRAM耗电多3)DRAM存储密度比SRAM高得多4)DRAM需要周期性刷新ROM:只读存储器FLASH:闪存CSR/WAddrDataSRAMCSR/WCASData

5、RASAddrDRAM1.2 ARM7处理器内核ARM7TDMI 特性3 级流水线冯.诺依曼架构CPI(Cycle Per Instruction) 约为1.9 T-Thumb 架构扩展, 提供两个独立指令集:ARM 指令,均为 32位Thumb指令,均为 16位两种运行状态,用来选择哪个指令集被执行D - 内核具有Debug扩展结构M 增强乘法器 (32x8) 支持64位结果.I - EmbeddedICE 逻辑1、ARM7TDMI处理器2、ARM7TDMI 外部接口ARM7TDMI内核存储器接口地址总线数据总线控制协处理器接口时钟中断复位3、ARM7TDMI 方框图DOUT31:0ARM7

6、TDM内核TAP 控制器JTAG 接口数据总线控制信号D31:0地址总线A31:0DIN31:0BUSSplitterEmbeddedICE逻辑4、ARM7TDMI 内核寄存器Bank乘法器地址自增器ALUBAVectors地址寄存器桶移位器PCALU读数据寄存器写数据寄存器指令解码D31:05、外部地址产生PC31:2 ARM StatePC31:1 Thumb StateALU31:0INC自增器A31:0向量0 x1C0 x00地址寄存器ARM7TDMI-S 是ARM7TDMI 的完全可合成 版本指令集和周期与ARM7TDMI 固化版本兼容完全可合成的 RTL使用了纲要设计构件的组件AL

7、U寄存器bank单周期设计(上升沿)单一总线接口6、ARM7TDMI-SARM7EJ-S 是可综合的内核版本:ARM体系结构 V5TEJJazelle Java 加速技术增强的DSP 指令系统5级流水线高性能乘法器实时调试EmbeddedICE-RTETM 接口向后兼容其它 ARM7内核兼容 V5TE 体系7、ARM7EJ-SV3版本推出32位寻址能力,结构扩展变化为T16位压缩指令集M增强型乘法器,产生全64位结果(32X3264or32X32+64 64)V4版本增加了半字load和store指令V5版本改进了ARM和Thumb之间的交互,结构扩展变化为:E-增强型DSP指令集,包括全部算

8、法操作和16位乘法操作J-支持新的JAVA,提供字节代码执行的硬件和优化软件加速功能ARM体系结构版本 - 21.3 ARM 架构1、数据和指令类型ARM 采用的是32位架构. ARM 约定:Byte :8 bitsHalfword :16 bits (2 byte)Word :32 bits (4 byte)大部分ARM core 提供:ARM 指令集(32-bit) Thumb 指令集(16-bit )Jazelle cores 支持 Java bytecode2、处理器工作模式(ARM 有7个)User(用户模式): 非特权模式,大部分任务执行在这种模式FIQ(快速中断模式): 高优先级

9、(fast) 中断产生时将会进入这种模式IRQ(中断模式): 低优先级(normal) 中断产生时将会进入这种模式Supervisor(管理员模式): 当复位或软中断指令执行时将会进入这种模式Abort(中止模式): 当存取(数据和指令)异常时将会进入这种模式Undef(未定义模式): 当执行未定义指令时会进入这种模式System(系统模式): 使用和User模式相同寄存器集的特权模式特权模式=异常模式+ System异常模式3、ARM 寄存器(37)Abort Moder0r1r2r3r4r5r6r7r8r9r10r11r12r15(pc)cpsrr13(sp)r14(lr)spsr当前可见

10、寄存器r13(sp)r14(lr)spsrr13(sp)r14(lr)spsrr13(sp)r14(lr)spsrr8r9r10r11r12r13(sp)r14(lr)spsr备用寄存器UserFIQIRQSVCUndefr13(sp)r14(lr)30 个通用32位寄存器,1 个程序计数器PC6 个状态寄存器15 个通用寄存器 (R0-R14), 1或者2个状态寄存器和程序计数器在任何时候都中可见的2Thumb stateLow registersThumb stateHigh registersNote: System模式使用user模式寄存器集FIQUsermoder0-r7,r15,a

11、ndcpsrr8r9r10r11r12r13(sp)r14(lr)spsrUserr8r9r10r11r12r13(sp)r14(lr)r15(pc)cpsrr0r1r2r3r4r5r6r7IRQr13(sp)r14(lr)spsrUsermoder0-r12r15,andcpsrSVCr13(sp)r14(lr)spsrUsermoder0-r12r15,andcpsrUndefr13(sp)r14(lr)spsrUsermoder0-r12r15,andcpsrAbortr13(sp)r14(lr)spsrUsermoder0-r12r15,andcpsr寄存器组织ARM 寄存器名称ARM

12、 有37个32-Bits长的寄存器.1 个用作PC( program counter)(r15)1个用作CPSR(current program status register)5个用作SPSR(saved program status registers)30 个通用寄存器当前处理器的模式决定着哪组寄存器可操作. 任何模式都可以存取: 相应的r0-r12子集相应的 r13 (the stack pointer, sp) and r14 (the link register, lr)相应的 r15 ( the program counter, pc)相应的CPSR(current progra

13、m status register, cpsr)特权模式 (除system模式的异常模式) 还可以存取;相应的 spsr (saved program status register)4、程序状态寄存器 条件位:N = Negative result from ALU Z = Zero result from ALUC = ALU operation Carried outV = ALU operation oVerflowedQ 位:仅ARM 5TE/J架构支持指示饱和状态J 位仅ARM 5TE/J架构支持J = 1: 处理器处于Jazelle状态中断禁止位:I = 1: 禁止 IRQ.F

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

15、word 对齐所以 pc值由bits 31:1决定, bits 0 未定义 (所以指令不能 byte对齐).当处理器执行在Jazelle状态:所有指令 8 bits 宽处理器执行 word 存取一次取4条指令6、存储器模式大端模式(高对低)最高位字节保存在最低位地址字由最低位字节的字节地址寻址3124 2316 158 70 字地址89101184567401230 低地址 高地址小端模式(低对低)最低位字节保存在最低位地址字由最低位字节的字节地址寻址3124 2316 158 70字地址11109887654432100 低地址 高地址1.4 异常1、什么是异常? 内部或外部中断源产生并引起

16、处理器处理一个事件,如外部中断或试图执行未定义指令都会引起异常。 处理异常之前必须保留处理器的状态2、异常类型 FIQ IRQ(Interrupt ReQuest) 未定义指令 预取中止 数据中止 复位 软件中断Software interrupt 通过软件中断产生 进行管理员模式中获得 通常要求特殊的管理功能,如操作系统支持3、异常优先级Reset (highest priority)(2) Data abort(3) FIQ(4) IRQ(5) Prefetch abort(6) 未定义指令, Software interrupt (最低优先级)只要产生异常就会导致正常的程序流程被临时停止

17、,例如外围中断服务程序在异常被处理前,当前的处理器状态必须被保存,以便处理程序完成后,最后的程序可以被恢复.4、异常向量5、进入异常的操作在相应的链接寄存器LR (r14)中保存下一条指令的地址将CPSR复制到相应的SPSR中强制使CPSR模式位置成对应异常类型的值强制使程序计数器指向相应异常向量,取下一条指令例子: 用户模式到 FIQ模式异常r15 (pc)r13_fiqr10_fiqr8_fiqspsr_fiqcpsrr7r4r5r2r1r0r3r6r14_fiqr12_fiqr11_fiqr9_fiqr14 (lr)r13 (sp)r12r10r11r9r8Registers in us

18、eFIQ 模式cpsrr15 (pc)r14 (lr)r13 (sp)r12r10r11r9r8r7r4r5r2r1r0r3r6r14_fiqr13_fiqr12_fiqr10_fiqr11_fiqr9_fiqr8_fiqRegisters in use用户模式spsr_fiq返回一个从用户模式计算的地址,PC值存储在FIQ模式r14用户模式 CPSR 复制到 FIQ 模式 SPSR6、退出异常的操作将LR寄存器中的值减去相应的偏移量送到PC中(The offset will vary depending on the type of exception)将 SPSR 复制回 CPSR清除禁止

19、中断标志,如果它被设置成使能28-31位为条件标志位,包括N、Z、C、V 4个标志。N位符号位。如果结果为负数,则N = 1;结果为正数或0,则 N = 0Z位如果指令的结果为0,则置1(通常表示比较结果为“相等”);否则清0C位表示加、减、比较运算的进位、借位等(减法有借位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,处理器处于Thu

20、mb状态。第0-4位为处理器的模式位,决定目前处理器所处在的工作模式。另外寄存器中灰色的这些部分为保留位,以方便以后的扩展。说 明1)取指令(Instruction Fetch):TF2)指令译码(Instruction Decode):TD3)执行指令(Instruction Execute):TE4)存储(Storage):TS一般指令的执行周期T每条指令的执行周期:T= TF+TD+TE+TS程序状态寄存器PSR的模式位字节访问(字节对齐)半字访问(半字对齐)字访问(字对齐)3210765402468ace089abcdef48c对齐1) 说出ARM可以工作的模式名字。2) ARM核有多少个寄存器?3) 什么寄存器用于存储PC和连接寄存器?4) R13通常用来存储什么?5) 哪种模式使用的寄存器最少?6) 在Thumb 指令集中,哪些寄存器处于Low group?7) CPSR的哪一位反映了处理器的状态?8) 所有的Thumb指令采取什么对齐方式?9) ARM有哪几个异常类型。10)

温馨提示

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

评论

0/150

提交评论