避免流水线冲突的技术有哪些?
流水线定义了一种将顺序流程分解为子操作的技术,每个子操作都在与所有其他部分一起工作的热情段中实现。可以遵循以下技术来避免流水线冲突-
硬件互锁-硬件互锁是检测指令的电子电路,其源操作数是管道中进一步指令的目的地。检测到这种情况后,源不可用的指令会延迟适当数量的时钟周期。这样,冲突就解决了。
操作数转发-此过程需要特殊的硬件来识别冲突,然后通过管道段之间的唯一方向路由信息来防止冲突。这种方法需要通过MUX(多路复用器)进行额外的硬件指导。
延迟分支-在此过程中,编译器负责解决流水线冲突。编译器通过添加适当的指令来识别分支指令并安排机器语言代码序列,这些指令使流水线能够不受阻碍地运行。
分支预测-此方法通过适当的逻辑利用某种智能预测。具有分支预测的流水线在执行条件分支指令之前猜测它的结果。流水线从预测路径中获取指令流,从而节省了分支惩罚所浪费的时间。
SpeculativeExecution-分支预测的优点是它有助于在没有任何延迟的情况下获取和执行分支之后的指令。然而,这应该在投机的基础上完成。
推测执行定义指令在处理器确定它们在正确的实现路径上之前被实现。因此,应注意在接受必须执行这些指令之前没有处理器寄存器或存储器位置被刷新。
如果分支决策表示交替,则执行单元中的指令及其所有相关数据应被删除,并应提取并执行正确的指令。