造成流水线阻塞的原因及解决办法
1:结构相关:当指令在重叠执行的过程中,硬件资源满足不了指令重叠执行的要求,发生资源冲突时将产生结构相关。解决方法:添加硬件资源,例如解决访存冲突就使用指令cache和数据cache分开的哈弗结构。:
2:数据相关:当一条指令需要用到前面指令的执行结果,而这些指令均在流水线中重叠执行时,就可能引起数据相关。解决方法:数据重定向技术,或者称为旁路技术(forwarding)。
3:控制相关:当流水线遇到分支指令和其他会改变PC值的指令时,会发生控制相关。解决方法:分支预测技术,投机执行,延迟分支。