240 likes | 423 Views
回 顾. 第五章 ARM 及 Xscale 体系结构. 5.1 RISC 与 CISC 5.2 处理器总线结构与 ARM 总线 5.3 ARM 处理器的存储器层次 5.4 ARM 的 I/O 与中断处理 5.5 ARM 处理器的寄存器组织 5.6 ARM 处理器 CPU 组织结构 5.7 基于 JTAG 的 ARM 调试系统 5.8 ARM 系列综述. 5.4 ARM 的 I/O 与中断处理. 存储器映射 I/O 中断过程 ARM 中断响应的方式. 1. 存储器映射 I/O. ARM 采用存储器映像 I/O 的方式
E N D
第五章 ARM及Xscale体系结构 • 5.1 RISC 与 CISC • 5.2 处理器总线结构与ARM总线 • 5.3 ARM处理器的存储器层次 • 5.4 ARM的I/O与中断处理 • 5.5 ARM处理器的寄存器组织 • 5.6 ARM处理器CPU组织结构 • 5.7 基于JTAG的ARM调试系统 • 5.8 ARM系列综述
5.4 ARM的I/O与中断处理 存储器映射I/O 中断过程 ARM中断响应的方式
1. 存储器映射I/O • ARM 采用存储器映像I/O的方式 • 对不同存储器地址的访问会影响到Cache和写缓冲的作用 • 把存储器映像I/O单元标识为Uncacheable和Unbufferable。 • 对I/o的访问通过调用SWI或通过C的函数库来使用这些调用。
2. 直接存储器存取DMA • DMA特点 • DMA方式下I/O数据块直接传送到存储器的缓冲区; • 比中断方式效率要高; • 高级ARM架构中使用。
4. 中断过程 • 基本中断处理流程; • I/O的中断处理过程; • 中断IRQ和快速中断FIQ。 • 为什么要使用FIQ。
5. 快速中断(FIQ)的使用 • 用于对I/O速率要求较高的事件; • FIQ在中断向量表中的位置 • 位于中断向量表的最后 (0x1C)位置; • 通过Cache锁操作,把中断向量与处理器程序一起锁定在Cache中; • FIQ快速中断异常模式中,有另外5个寄存器,用来提高FIQ中断响应速度。 • 对FIQ的请求响应时间 • 提高中断响应速度的设计方法
7. ARM异常中断响应过程 • 1. 将CPSR内容保存到SPSR中,各中断模式都有相应的物理SPSR寄存器; • 2. 设置当前的CPSR的相应位,包括: • 设置模式控制位[4:0],使处理器进入相应执行模式 • 设置中断标志CPSR[6]=1,禁止IRQ中断; • 当进入Reset或FIQ模式时,要置位CPSR[7]禁止FIQ中断 • 3. 将N+1指令地址保存到R14中; • 4. PC强制赋值到相应的中断矢量地址开始执行。
5.5 ARM处理器的寄存器组织 CPU的寄存器组织原理 ARM 的寄存器组织方式
用户可见寄存器 通用 数据 地址 条件代码 控制和状态寄存器 程序计数器PC: 待取指令地址 指令寄存器IR: 当前取来的指令 存储地址寄存器 MAR: 含有存储器位置的地址 存储缓冲寄存器 MBR: 含有将被西尔存储器的数据字或最近读出的字 程序状态字PSW 1. CPU的两类寄存器
2. 控制寄存器在指令周期中的使用----取指周期
3. 程序状态字寄存器(PSW) PSW一般含有条件代码加上其他状态信息,一般有如下: • 符号(sign) • 零 (zero) • 进位 (carry) • 等于 (equal) • 溢出 (overflow) • 中断允许/禁止 • 监督(supervisor)指出CPU是执行在监督模式还是用在用户模式中。某些特权指令只能在监督模式中能够执行。
5. ARM的寄存器使用 • ARM的32位寄存器 • ARM的Thumb寄存器使用 • ARM的状态寄存器(PSW)
典型I/O中断处理流程 设备控制器或其 他硬件发出中断 保存处理器 状态信息 处理器结束当 前指令执行 处理中断 硬件 软件 处理器发出 中断认可信号 取回处理器 状态信息 PSW和PC入栈 取回原PSW和PC 装入基于中断 的新PC值
中断操作过程演示 Y T-M T-M 控制栈 控制栈 PC PC T T Y Y 中断服务例程 中断服务例程 Y+L Y+L GPR GPR N N 栈指针 栈指针 用户程序N+1 用户程序N+1 处理器 处理器 T T-M a.中断在指令N时出现 b. 由中断返回
对FIQ的请求响应时间 • FIQ的请求响应时间最长为28个周期: • 请求信号通过FIQ同步锁住时间:3 cycle; • 最长指令执行完成: 20 cycle; • 数据终止进入时间(数据终止优先级高于FIQ): 3 cycle; • 快速中断FIQ进入时间: 2 cycle; • 快速中断FIQ的入口,其最快处理器时间为4 cycle • 如果考虑到MMU的开销,由于MMU中写缓冲,Cache和TLB未命中等因素,最坏FIQ中断响应87cycle。
提高中断响应速度的设计方法 • 1. 提供大量的后备寄存器,在中断响应及返回时,作为保护现场和恢复现场的文本切换之用(Context Switching) • 2. 采用片内RAM的结构,这样可以加速异常处理的进入时间 • 3. Cache和TLB采用锁定方式,以确保中断处理等临界编码段不受未命中所产生的影响。
ARM的32位寄存器文件 用户 系统 管理 中止 未定义 IRQ FIQ R8_fiq R9_fiq R10_fiq R11_fiq R12_fiq R13_fiq R13_IRQ R13_und R13_abt R13_svc R14_fiq R14_abt R14_und R14_irq R14_svc SPSR_irq SPSR_svc 未用 SPSR_fiq SPSR_und SPSR_abt
ARM Thumb状态下寄存器文件 用户 系统 管理 中止 未定义 IRQ FIQ 通用寄存器和程序计数器 R0 R1 R2 R3 R4 R5 R6 R7 R13_fiq R13_IRQ R13(SP) R13_abt R13_und R13_svc R14_abt R14_und R14_fiq R14_irq R14(LR) R14_svc R15 状态寄存器 CPSR 未用 SPSR_irq SPSR_svc SPSR SPSR_abt SPSR_und SPSR_fiq
ARM的PSW 条件码标志位 控 制 位 Overflow 模式位 Carry Zero Negative 工作状态位:“1”为Thumb FIQ禁止:“1”为禁止 IRQ禁止:“1”为禁止