1 / 41

第二章 ARM 微处理器及其硬件体系结构

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

libba
Download Presentation

第二章 ARM 微处理器及其硬件体系结构

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 存储器 指令寄存器 程序 控制器 指令0 指令1 指令2 指令3 指令4 数据通道 数据 输出 输入 中央处理器 数据0 数据1 数据2 第二章ARM微处理器及其硬件体系结构 1.1 硬件基础 1、冯·诺依曼体系结构模型

  2. 2、冯·诺依曼体系的特点 1)数据与指令都存储在存储器中 2)被大多数计算机所采用 3)ARM7——冯诺依曼体系

  3. 程序存储器 地址 指令寄存器 指令0 控制器 指令1 指令 指令2 数据存储器 地址 数据通道 输出 输入 数据0 中央处理器 数据1 数据 数据2 3、哈佛体系结构

  4. 4、哈佛体系结构的特点 1)程序存储器与数据存储器分开2)提供了较大的数存储器带宽 3)适合于数字信号处理 4)大多数DSP都是哈佛结构 5)ARM9是哈佛结构

  5. 5、CISC:复杂指令集(Complex Instruction Set Computer) • 具有大量的指令和寻址方式 • 8/2原则:80%的程序只使用20%的指令 • 大多数程序只使用少量的指令就能够运行。 • 6、RISC:精简指令集(Reduced Instruction Set Computer) • 在通道中只包含最有用的指令 • 确保数据通道快速执行每一条指令 • 使CPU硬件结构设计变得更为简单

  6. ARM Thumb 从存储器中读取指令 Fetch PC PC Decode PC - 4 PC-2 解码指令中用到的寄存器 寄存器读(从寄存器Bank) 移位及ALU操作 寄存器写(到寄存器Bank ) PC - 8 PC - 4 Execute 7、流水线技术: 几个指令可以并行执行 提高了CPU的运行效率 内部信息流要求通畅流动 • 为增加处理器指令流的速度,ARM7 系列使用3级流水线. • 允许多个操作同时处理,而非顺序执行。 PC指向正被取指的指令,而非正在执行的指令

  7. 1 2 3 4 5 6 7 8 9 Cycle Operation F D E ADD F D E SUB F D E M ORR F D E AND F D E ORR F D E EOR W F – 取指 D – 解码E – 执行 8、最佳流水线 • 该例中用6个时钟周期执行了6条指令 • 所有的操作都在寄存器中(单周期执行) • 指令周期数 (CPI) = 1

  8. 指令CACHE 预取 预取 流水线2 流水线1 译码1 译码1 译码2 译码2 执行1 执行1 执行2 执行2 数据 9、超标量执行 超标量CPU采用多条流水线结构

  9. 数据 高速缓存控制器 CACHE 主存 CPU 地址 数据 10、高速缓存(CACHE) 1、为什么采用高速缓存 微处理器的时钟频率比内存速度提高快得多,高速缓存可以提高内存的平均性能。 2、高速缓存的工作原理 高速缓存是一种小型、快速的存储器,它保存部分主存内容的拷贝。

  10. CPU 低速设备 低速总线 桥 高速总线 高速设备 存储器 高速设备 数据 11、总线和总线桥

  11. CS SRAM R/W Addr Data CS DRAM R/W RAS CAS Addr Data 12、存储器系统 RAM:随机存取存储器 SRAM:静态随机存储器 DRAM:动态随机存储器 1)SRAM比DRAM快 2)SRAM比DRAM耗电多 3)DRAM存储密度比SRAM高得多 4)DRAM需要周期性刷新 ROM:只读存储器 FLASH:闪存

  12. 1.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处理器

  13. 数据总线 时钟 地址总线 存储器接口 控制 ARM7TDMI 内核 复位 协处理器接口 中断 2、ARM7TDMI 外部接口

  14. 控制信号 地址总线 A[31:0] BUS Splitter ARM7TDM 内核 DIN[31:0] 数据总线 D[31:0] Embedded ICE 逻辑 TAP 控制器 JTAG 接口 3、ARM7TDMI 方框图 DOUT[31:0]

  15. 指令解码 写数据 寄存器 读数据 寄存器 地址自增器 B 寄存器 Bank 乘法器 桶 移位器 ALU ALU PC A 地址寄存器 Vectors 4、ARM7TDMI 内核 D[31:0]

  16. ALU[31:0] 地址 寄存器 A[31:0] 0x1C 向量 0x00 INC 自增器 5、外部地址产生 PC[31:2] ARM State PC[31:1] Thumb State

  17. 6、ARM7TDMI-S • ARM7TDMI-S 是ARM7TDMI 的完全可合成 版本 • 指令集和周期与ARM7TDMI 固化版本兼容 • 完全可合成的 RTL • 使用了纲要设计构件的组件 • ALU • 寄存器bank • 单周期设计(上升沿)单一总线接口

  18. 7、ARM7EJ-S • ARM7EJ-S 是可综合的内核版本: • ARM体系结构 V5TEJ • Jazelle Java 加速技术 • 增强的DSP 指令系统 • 5级流水线 • 高性能乘法器 • 实时调试EmbeddedICE-RT • ETM 接口 • 向后兼容其它 ARM7内核 • 兼容 V5TE 体系

  19. ARM体系结构版本- 2 • V3版本推出32位寻址能力,结构扩展变化为 • T—16位压缩指令集 • M—增强型乘法器,产生全64位结果(32X3264or32X32+64 64) • V4版本增加了半字load和store指令 • V5版本改进了ARM和Thumb之间的交互,结构扩展变化为: • E---增强型DSP指令集,包括全部算法操作和16位乘法操作 • J----支持新的JAVA,提供字节代码执行的硬件和优化软件加速功能

  20. 1.3 ARM 架构 1、数据和指令类型 • ARM 采用的是32位架构. • ARM 约定: • Byte :8 bits • Halfword :16 bits (2 byte) • Word : 32 bits (4 byte) • 大部分ARM core 提供: • ARM 指令集(32-bit) • Thumb 指令集(16-bit ) • Jazelle cores 支持 Java bytecode

  21. 异常模式 2、处理器工作模式(ARM 有7个) User(用户模式):非特权模式,大部分任务执行在这种模式 FIQ(快速中断模式):高优先级(fast) 中断产生时将会进入这种模式 IRQ(中断模式):低优先级(normal) 中断产生时将会进入这种模式 Supervisor(管理员模式): 当复位或软中断指令执行时将会进入这种模式 Abort(中止模式):当存取(数据和指令)异常时将会进入这种模式 Undef(未定义模式):当执行未定义指令时会进入这种模式 System(系统模式):使用和User模式相同寄存器集的特权模式 特权模式=异常模式+ System

  22. 3、ARM 寄存器(37) 2 当前可见寄存器 r0 Abort Mode r1 r2 备用寄存器 r3 r4 r5 User FIQ IRQ SVC Undef r6 r7 r8 r8 r9 r9 r10 r10 r11 r11 r12 r12 r13(sp) r13(sp) r13(sp) r13(sp) r13(sp) r13(sp) r14(lr) r14(lr) r14(lr) r14(lr) r14(lr) r14(lr) r15(pc) cpsr spsr spsr spsr spsr spsr 30个通用32位寄存器,1个程序计数器PC 6个状态寄存器 15个通用寄存器(R0-R14), 1或者2个状态寄存器和程序计数器在任何时候都中可见的

  23. User FIQ IRQ SVC Undef Abort r0 Usermoder0-r7,r15,andcpsr Usermoder0-r12r15,andcpsr Usermoder0-r12r15,andcpsr Usermoder0-r12r15,andcpsr Usermoder0-r12r15,andcpsr r1 r2 r3 r4 r5 r6 r7 r8 r8 r9 r9 r10 r10 r11 r11 r12 r12 r13(sp) r13(sp) r13(sp) r13(sp) r13(sp) r13(sp) r14(lr) r14(lr) r14(lr) r14(lr) r14(lr) r14(lr) r15(pc) cpsr spsr spsr spsr spsr spsr 寄存器组织 Thumb state Low registers Thumb state High registers Note: System模式使用user模式寄存器集

  24. ARM 寄存器名称 • ARM 有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 program status register, cpsr) • 特权模式 (除system模式的异常模式) 还可以存取; • 相应的 spsr (saved program status register)

  25. 31 28 27 24 23 16 15 8 7 6 5 4 0 N Z C VQ I FT mode U n d e f i n e d J f s x c 4、程序状态寄存器 说明 • 条件位: • N = Negative result from ALU • Z = Zero result from ALU • C = ALU operation Carried out • V = ALU operation oVerflowed • Q 位: • 仅ARM 5TE/J架构支持 • 指示饱和状态 • J 位 • 仅ARM 5TE/J架构支持 • J = 1: 处理器处于Jazelle状态 • 中断禁止位: • I = 1: 禁止 IRQ. • F = 1: 禁止 FIQ. • T Bit • 仅ARM xT架构支持 • T = 0: 处理器处于 ARM 状态 • T = 1: 处理器处于 Thumb 状态 • Mode位: • 处理器模式位

  26. 5、程序指针PC (r15) • 当处理器执行在ARM状态: • 所有指令 32 bits 宽 • 所有指令必须 word 对齐 • 所以 pc值由bits [31:2]决定, bits [1:0] 未定义 (所以指令不能halfword / byte对齐). • 当处理器执行在Thumb状态: • 所有指令 16 bits 宽 • 所有指令必须 halfword 对齐 • 所以 pc值由bits [31:1]决定, bits [0] 未定义 (所以指令不能 byte对齐). • 当处理器执行在Jazelle状态: • 所有指令 8 bits 宽 • 处理器执行 word 存取一次取4条指令

  27. 6、存储器模式 高地址 高地址 字地址 31 24 23 16 15 8 7 0 字地址 31 24 23 16 15 8 7 0 11 10 9 8 8 8 9 10 11 8 7 6 5 4 4 4 5 6 7 4 3 2 1 0 0 0 1 2 3 0 低地址 低地址 • 大端模式(高对低) • 最高位字节保存在最低位地址 • 字由最低位字节的字节地址寻址 • 小端模式(低对低) • 最低位字节保存在最低位地址 • 字由最低位字节的字节地址寻址

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

  29. 3、异常优先级 • Reset (highest priority) • (2) Data abort • (3) FIQ • (4) IRQ • (5) Prefetch abort • (6) 未定义指令, Software interrupt (最低优先级) • 只要产生异常就会导致正常的程序流程被临时停止,例如外围中断服务程序 • 在异常被处理前,当前的处理器状态必须被保存,以便处理程序完成后,最后的程序可以被恢复.

  30. 4、异常向量

  31. 5、进入异常的操作 • 在相应的链接寄存器LR (r14)中保存下一条指令的地址 • 将CPSR复制到相应的SPSR中 • 强制使CPSR模式位置成对应异常类型的值 • 强制使程序计数器指向相应异常向量,取下一条指令

  32. Registers in use 用户模式 FIQ 模式 Registers in use r0 r0 r1 r1 r2 r2 r3 r3 r4 r4 r5 r5 异常 r8_fiq r6 r6 r9_fiq r7 r7 r10_fiq r8 r8_fiq r8 r11_fiq r9 r9_fiq r9 r12_fiq r10 r10_fiq r10 r13_fiq r11 r11_fiq r11 r14_fiq r12 r12_fiq r12 r13 (sp) r13_fiq r13 (sp) 返回一个从用户模式计算的地址,PC值存储在FIQ模式r14 r14 (lr) r14_fiq r14 (lr) r15 (pc) r15 (pc) cpsr cpsr spsr_fiq spsr_fiq 用户模式 CPSR 复制到FIQ 模式SPSR 例子: 用户模式到FIQ模式

  33. 6、退出异常的操作 • 将LR寄存器中的值减去相应的偏移量送到PC中(The offset will vary depending on the type of exception) • 将 SPSR 复制回CPSR • 清除禁止中断标志,如果它被设置成使能

  34. 说 明 28-31位为条件标志位,包括N、Z、C、V 4个标志。 N位——符号位。如果结果为负数,则N = 1;结果为正数或0,则 N = 0 Z位——如果指令的结果为0,则置1(通常表示比较结果为“相等”);否则清0 C位——表示加、减、比较运算的进位、借位等(减法有借位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,处理器处于Thumb状态。 第0-4位为处理器的模式位,决定目前处理器所处在的工作模式。 另外寄存器中灰色的这些部分为保留位,以方便以后的扩展。

  35. 一般指令的执行周期T 1)取指令(Instruction Fetch):TF2)指令译码(Instruction Decode):TD 3)执行指令(Instruction Execute):TE 4)存储(Storage):TS 每条指令的执行周期:T= TF+TD+TE+TS

  36. 程序状态寄存器PSR的模式位

  37. 字节访问(字节对齐) 半字访问 (半字对齐) 字访问 (字对齐) 3 2 1 0 2 0 0 7 6 5 4 6 4 4 b a 9 8 a 8 8 f e d c e c c 对齐

  38. 测验1 答案1 1) 说出ARM可以工作的模式名字。 2) ARM核有多少个寄存器? 3) 什么寄存器用于存储PC和连接寄存器? 4) R13通常用来存储什么? 5) 哪种模式使用的寄存器最少? 6) 在Thumb 指令集中,哪些寄存器处于Low group? 7) CPSR的哪一位反映了处理器的状态? 8) 所有的Thumb指令采取什么对齐方式? 9) ARM有哪几个异常类型。 10) 为什么FIQ的服务程序地址要位于0X1C? 11) 在复位后,ARM处理器处于何种模式、何种状态?

  39. 测验2 答案2 1) 一条简单的算术操作( 如: ADD )要占用几个周期? 2) ARM7TDMI指令流水线有几个阶段? 3) ARM7TDMI 是否使用 ALU 计算地址? 4) ARM在存储器里,可寻址几种类型的数据?

  40. 答 案1 1) User, SVC (Supervisor), IRQ, FIQ, UNDEF, ABORT, System 2) 37 3) pc = r15 lr = r14 4) r13 = sp 5) User / System - does not have an spsr 6) r0-r7 7) T-bit which is bit 5, and J-bit which is bit 24 8) Halfword (16-bit) 9) Reset, FIQ, IRQ, prefetch abort, data abort, SWI, Undefined struction 10) Speed - To remove the need for a branch to the FIQ handler 11) ARM state, SVC mode - also interrupts will be disabled.

  41. 答 案2 1) 仅仅一个. 2) 3个阶段; 取指(Fetch),解码( Decode)和执行( Execute). 3)可以使用,对分支指令,以及决定转换数据的地址时. 4) 字节、半字和字 (架构 3 及更早的架构不能操作半字).

More Related