流水线的相关性原理

主要包括3种(1)数据相关(2)资源相关(3)控制相关

(1)数据相关:在一个程序中,一条指令必须等前一条指执行结束后,才能执行,那么这两条指令就是数据相关的。

(2)资源相关:指多条指令进入流水线后在同一时钟周期使用了同一个功能部件所发生的冲突

(3)控制相关:是由转移指令引起的,当执行转移指令时,依据转移条件的产生结果,可能顺序执行下一条指令,可能转移到新的目标地址取指令,从而使流水线发生断流。

对于这三种相关,最重要的当然是数据相关,处理数据相关,我们的常用方法有

(1)使用暂停(2012年真题的考察方式)

暂停技术理解:就是让一组指令阻塞在他们所处的阶段,而允许其他指令继续通过流水线。

方法:每次要把一条指令阻塞在译码阶段,就在执行阶段插入一个气泡,气泡就像自动产生的nop指令-不会改变寄存器,存储器,或程序状态

(2)数据旁路技术:在运算结果得到以后,直接使用,不必先存入再取出来用

例1:source:2016

分析:A显然不是答案,在这里我曾经疑惑过I2和I4会不会数据冒险呢?画图如下,虽然都写入R5,但是实际上两者之间是差了一个时钟周期的,所以不存在冒险。

总结:这种类型的题目,当你实在想不出来的时候,就画画图!

猜你喜欢

转载自blog.csdn.net/weixin_42682806/article/details/84799396
今日推荐