When an instruction reads R15 without breaking any of the restrictions on its use, the value read is the
address of the instruction plus 8 bytes.
ARM7采用三级流水线的冯·诺伊曼结构,ARM9采用五级流水线的哈佛结构。
ARM7流水线包括取指(fetch)、译码(decode)、执行(excute)。ARM7流水线在译码阶段不读取操作数寄存器,因此执行阶段的PC值和取指阶段的PC值关系为:PC(excute)=PC(fetch)+8。
ARM9流水线包括取指(fetch)、译码(decode)、执行(excute)、缓冲/数据(buffer/data)、回写(write-back)寄存器堆。ARM9流水线在译码阶段已经开始读取操作数寄存器,因此译码阶段的PC值和取指阶段的PC值关系为:PC(decode)=PC(fetch)+4。因此执行阶段的PC值和译码阶段的PC值关系为:PC(excute)=PC(decode)+4。
为了保证ARM9流水线和ARM7流水线兼容,ARM9流水线将取指阶段的PC值跨过取指和译码流水线寄存器,直接送往译码阶段寄存器,这样仍然保证执行阶段的PC值和取指阶段的PC值关系为:PC(excute)=PC(fetch)+8。
本文介绍了ARM7和ARM9处理器流水线结构的区别。ARM7采用三级流水线,而ARM9则采用五级流水线。文章详细解释了两种流水线中程序计数器(PC)在各阶段的变化规律,并探讨了ARM9如何通过特殊设计保持与ARM7的兼容性。
314

被折叠的 条评论
为什么被折叠?



