ARM流水线、异常中断向量表、命名及版本

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

ARM流水线、异常中断向量表、命名及版本
ARM流水线、异常中断向量表、命名及版本
流水线
ARM7是三阶流水线
Fetch是指从内存中读取指令
Decode是指对指令译码
Execute是指执行指令,并将结果回写至内存
举例为:MSR指令使能中断,但只有当第三个时钟节拍完成时,中断才得到使能。

流水线能够增加指令执行的吞吐率,当较长的流水线也就意味着一条指令需要更多的时钟节拍来完成。

流水线还存在的问题是如果碰到跳转语句,已读入流水线的后续指令可能就没有用了,为此ARM10采用了分支预测处理;另外,下一句指令若需要用到当前指令的结果时可能也需要特殊处理。

当发生中断时,处理器将完成当前指令的Execute,其他已读取
流水线的指令将被放弃,但此时pc指向的是当前指令的后两句地址,中断返回时,应执行当前语句的下一句,也就是pc-4。

这部分在中断时会重新介绍。

ARM9和ARM10的流水线
尽管ARM7,ARM9,ARM10的流水线不同,但它们有相同的流水线特性,ARM7的代码也能在ARM9,ARM10上运行。

----------------------------
Exceptions异常,Interrupts中断和 Vector Table向量表
向量表通常存放在0x00000000内存地址,也有可能存放在0xffff0000内存地址。

一个异常/中断对应着一个地址,在异常/中断
发生时,处理器悬滞正常的指令执行,并从向量表里对应的地址加载指令,这条指令通常是一条跳转指令,目标是将程序计数器pc跳转到一段子程序来服务异常/中断。

可见向量表的作用就是将pc跳转到相应的地址上去执行程序。

每种异常或中断有各自的处理器工作模式(上一篇的6种特权模式),在工作模式的切换过程中,又会涉及到寄存器的操作,这部分在后续会详细介绍。

----------------------------
缓存
冯诺依曼结构的缓存
哈佛结构的缓存
TCM is fast SRAM located close to the core and guarantees the clock cycles required to fetch instructions or data。

内存管理(略)
MPU: memory protection unit
MMU: memory management unit
协处理器
协处理器,通过读写协处理器寄存器来控制缓存、TCM、内存管理等。

----------------------------
ARM命名及版本
实际应用中用到了ARM926EJ-S,它是第一代加入Jazelle技术的ARM内核。

相关文档
最新文档