ALU之间的距离非零导致管道中的分支损失 和IF。
这句话是什么意思?
答案 0 :(得分:3)
没有(正确的)分支预测,提取操作直到ALU决定条件分支或间接分支采用哪种方式后才知道下一步要提取什么。因此它将一直停顿,直到分支在ALU中执行为止。
如果预测不正确,则从错误路径获取/解码的指令将无用,因此我们将其称为分支 mispredict 惩罚;分支预测在正常情况下会将其隐藏。
(在第一代MIPS中,一个经典的5级RISC,甚至在ALU(EX)之前,在解码(ID)阶段就解决了有条件分支。这将分支惩罚减少到1个周期,这被隐藏了。包含分支延迟插槽的ISA:分支之后的指令始终执行,无论分支是否采用。)
答案 1 :(得分:1)
这意味着,您在处理器周期之间有损失。 每个处理器都有操作周期,周期中的每个延迟都会导致惩罚,因为它会等待直到分支在ALU中执行,或者:
ALU之间的距离非零导致管道中的分支损失 和IF。
有一本很棒但很长的书,名为Computer Architecture Piplined And Parallel Processor Design 。
它详细说明了这个问题。
答案 2 :(得分:1)
简短答案:
错误预测下一个可能分支的惩罚将导致时间浪费(CPU时钟周期)为
长答案: 查找:“指令流水线”,“分支预测”,“循环展开”,...