我要投搞

标签云

收藏小站

爱尚经典语录、名言、句子、散文、日志、唯美图片

当前位置:双彩网 > 指令流水线 >

ARM7 三级流水线

归档日期:07-05       文本归类:指令流水线      文章编辑:爱尚语录

  但是执行第一行的话,那么第三行已经开始取指了,第二行已经开始译码了,那么现在R0的值应该还是执行第一行之前R0的值,这样不会产生错误吗?

  还有就是ARM指令中条件执行为什么能提高效率?如果条件符合的话,程序不是也进行跳转吗?下一条指令的译码和下下条指令的取指不是也要丢掉吗?

  你考虑问题很详细,只是对“译码”和“取指”理解的还不深。ARM7是三级流水线,不会涉及到指令“互锁”的问题,原因是,以你所举的例子为例,不管在第一条指令执行前R0的值为什么,都不会影响第二条指令的译码和第三条指令的取指,因为指令本身是固定的,不管R0是何值,它都是R0,所以得到的“译码”也是固定的。ARM9的五级流水线会有你所担心的问题,所以ARM9采用“互锁”机制来解决这个问题,如果一条指令中用到了前面指令尚未使用完的内存单元或寄存器,这条指令会暂停,流水线也会暂停取指,直到这条指令所需使用的内存单元或寄存器可用为止。“互锁”机制会影响指令的执行时间。

本文链接:http://egao-p.com/zhilingliushuixian/261.html