ROB 是否存在于具有有序流水线的 CPU 中?
Does a ROB exist in CPUs with in-order pipe-line?
我们知道在具有乱序流水线的 CPU 中存在一个 ROB,用于重新排序以乱序方式执行的 u 指令。谁能告诉我 ROB 是否存在于具有有序流水线的 CPU 中?如果是,这个结构的职责是什么?
不,顺序执行流水线可以让指令finish顺序开始后乱序执行(尤其是load通常允许这样做,让静态指令调度有帮助隐藏加载延迟)。没有 ROB,所有这一切都是可能的。我认为,仅记分牌寄存器写入就足以实现这一点,即使是让 ALU 指令和加载无序完成也是如此。
AFAIK,拥有一个 ROB 只是必要的/值得的/对 CPU 有任何意义,可以 开始 乱序执行指令。因此名称 ROB = ReOrder Buffer.
(微体系结构通常也会跟踪 RS / 调度程序中尚未执行的指令。ROB 跟踪从发布到退出;RS 跟踪从发布到执行。这使用的术语 "issue"意思是把前端的指令分配到乱序的后端。有人把这个叫做"dispatch".)
我们知道在具有乱序流水线的 CPU 中存在一个 ROB,用于重新排序以乱序方式执行的 u 指令。谁能告诉我 ROB 是否存在于具有有序流水线的 CPU 中?如果是,这个结构的职责是什么?
不,顺序执行流水线可以让指令finish顺序开始后乱序执行(尤其是load通常允许这样做,让静态指令调度有帮助隐藏加载延迟)。没有 ROB,所有这一切都是可能的。我认为,仅记分牌寄存器写入就足以实现这一点,即使是让 ALU 指令和加载无序完成也是如此。
AFAIK,拥有一个 ROB 只是必要的/值得的/对 CPU 有任何意义,可以 开始 乱序执行指令。因此名称 ROB = ReOrder Buffer.
(微体系结构通常也会跟踪 RS / 调度程序中尚未执行的指令。ROB 跟踪从发布到退出;RS 跟踪从发布到执行。这使用的术语 "issue"意思是把前端的指令分配到乱序的后端。有人把这个叫做"dispatch".)