分支机构罚款是什么意思?

时间:2019-06-02 06:12:18

标签: assembly cpu-architecture

  

ALU之间的距离非零导致管道中的分支损失   和IF。

这句话是什么意思?

3 个答案:

答案 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时钟周期)为

  1. 已获取并执行的错误预测分支 然后需要推测性地被丢弃和
  2. 实际的下一个分支将需要获取并执行 仍然主动

长答案: 查找:“指令流水线”,“分支预测”,“循环展开”,...

相关问题