打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
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内核。
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
这18条背下来没人敢和你忽悠CPU
ARM微处理器硬件架构!
暴强技术贴:Cortex-A8、ARM11、ARM9、Xscale、PowerPc、x86...
对标Arm A77的RISC-V处理器亮相,瞄准服务器芯片市场?
coldfireV2 学习笔记之一
ARM
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服