苏州嘉迈包装机材有限公司
电 话:0512-6578 1220
传 真:0512-6590 6586
手 机:159 9576 8299
联系人:金先生
邮箱:jin@jiamaipack.com
地 址:苏州市相城区太平街道旺巷村邢店大窑桥东堍1号厂房内一楼东侧
流水线的主要问题及解决方案
流水过程中通常会出现以下三种相关冲突,使流水线断流。
1、资源相关
资源相关是指多条指令进入流水线后在同一机器时钟周期内争用同一个功能部件所发生的冲突。假定一条指令流水线由五段组成。由下表可以看出,在时钟4时,I1与I4两条指令发生争用存储器资源的相关冲突。
两条指令同时访问内存发生资源相关冲突
解决资源相关冲突的办法:
一是第I4条指令停顿一拍后再启动;二是增设一个存储器,将指令和数据分别放在两个存储器中。
2、数据相关
在一个程序中,如果必须等前一条指令执行完毕后,才能执行后一条指令,那么这两条指令就是数据相关的。
在流水计算机中,指令的处理是重叠进行的,前一条指令还没有结束,第二、三条指令就陆续地开始工作。由于多条指令的重叠处理,当后继指令所需的操作数,刚好是前一指令的运算结果时,便发生数据相关冲突。如下表所示,ADD指令与SUB指令发生了数据相关冲突。
两条指令发生数据相关冲突
解决数据相关冲突的办法:
在流水CPU的运算器中设置若干运算结果缓冲寄存器,暂时保留运算结果,以便于后继指令直接使用,这称为“向前”或定向传送技术。
3、控制相关
控制相关冲突是由转移指令引起的。当执行转移指令时,依据转移条件的产生结果,可能为顺序取下条指令;也可能转移到新的目标地址取指令,从而使流水线发生断流。
为了减小转移指令对流水线性能的影响,常用以下两种转移处理技术:
延迟转移法:由编译程序重排指令序列来实现。基本思想是“先执行再转移”,即发生转移取时并不排空指令流水线,而是让紧跟在转移指令Ib之后已进入流水线的少数几条指令继续完成。如果这些指令是与Ib结果无关的有用指令,那么延迟损失时间片正好得到了有效的利用。
转移预测法:用硬件方法来实现,依据指令过去的行为来预测将来的行为。通过使用转移取和顺序取两路指令预取队列器以及目标指令cache,可将转移预测提前到取指阶段进行,以获得良好的效果。