【问题标题】:Does a ROB exist in CPUs with in-order pipe-line? [closed]具有顺序管道的 CPU 中是否存在 ROB? [关闭]
【发布时间】:2020-06-20 02:38:45
【问题描述】:

我们知道 ROB 存在于具有乱序管道的 CPU 中,用于重新排序以乱序方式执行的 u 指令。谁能告诉我具有有序管道的 CPU 中是否存在 ROB?如果是,这个结构的职责是什么?

【问题讨论】:

  • 我投票结束这个问题,因为它是关于 CPU 设计而不是计算机编程的问题。

标签: x86 arm cpu pipeline cpu-architecture


【解决方案1】:

不,按顺序执行管道可以让指令在按顺序启动后完成乱序执行(尤其是通常允许加载这样做,让静态指令调度有助于隐藏加载延迟)。没有 ROB,所有这一切都是可能的。我认为,仅记分板寄存器写入就足以实现这一点,甚至可以让 ALU 指令和加载乱序完成。

AFAIK,只有 ROB 是必要的/值得的/对于一个可以 开始 乱序执行指令的 CPU 有任何意义。因此名称 ROB = ReOrder Buffer。

(并且微架​​构通常也会跟踪 RS / 调度程序中尚未执行的指令。ROB 跟踪从发布到退休;RS 跟踪从发布到执行。这是使用术语,其中“发布”表示从前端变成乱序的后端。有人称之为“调度”。)

【讨论】:

  • 感谢您的详细回复。因此,作为您的回复,我可以得出结论,包含有序流水线的 Cortex-A8 CPU 根本不包含 ROB。我知道这可能是一个无关紧要的问题,但是如果 Cortex-A8 是一个中序 CPU 并且没有 ROB,那么它如何容易受到 Spectre 类型的攻击呢?
  • @alirezasadeghpour:我认为任何有序 CPU 都不会受到任何形式的 Spectre 的攻击。他们可以推测性地获取/解码,但不能推测性地执行。未命中/未命中缓存下的未命中不足以从错误预测的分支中产生架构状态的秘密数据相关更改。您是否有证据表明 A8 易受攻击?
  • developer.arm.com/support/arm-security-updates/… 所示,A8 容易受到 SpectreV1(绑定检查绕过)和 SpectreV2(分支目标注入)的攻击。但是,我无法在 TI AM335x(Cortex-a8 CPU)中实现这些攻击的 POC。
  • 嗯,也许 A8 足够早地开始内存访问,以便在错误预测的条件或间接分支的阴影中留下一些痕迹,或者维基百科关于它的有序性有误,或者我关于有序内核不脆弱的说法是错误的。你应该问一个单独的问题,关于 A8 如何特别容易受到 Spectre V1 和 V2 的攻击(或者如果 ARM 是错误的,它不是)。我不知道关于 ARM 微架构的详细程度。 x86 是我的主要领域。
猜你喜欢
  • 2017-12-15
  • 1970-01-01
  • 2022-01-07
  • 1970-01-01
  • 2017-09-13
  • 1970-01-01
  • 2021-08-17
  • 1970-01-01
  • 2014-09-06
相关资源
最近更新 更多