承诺与停用指令



这可能是一个愚蠢的问题,但我无法找到关于教学生活的这两个阶段的明确解释。我最初的想法是它们是同义词,但我不再确定。我开始认为

  1. 对于负载提交和停用同时发生
  2. 对于存储,
  3. 当指令更新寄存器时发生提交,当存储实际离开存储缓冲区时,将发生停用。

这是错的吗?有没有人对这些术语有 2 个明确的定义?

干杯。

这些术语没有标准定义。我看到它们在不同的书籍或处理器设计中被用来表示不同的东西:

  • 在英特尔处理器中,当指令占用的重新排序缓冲区条目被取消时,就会发生停用。内存存储还有一个称为提交的附加阶段,在该阶段中实际执行存储。这是因为英特尔处理器具有存储缓冲区,可以将存储标记为已停用。1

  • Hennessy和Patterson的书在关于无序执行的章节中主要使用术语"提交"。甚至存储也会在提交阶段执行。有时它使用术语"退休",但没有给出将其与提交区分开来的定义。但是,在附录 C 中,存储在第 4 阶段(称为内存阶段(执行,而寄存器更新在第 5 阶段(称为写回(执行。

  • 一些书籍使用术语"完成"和"提交",
  • 其中"完成"在英特尔处理器中表示"退休","提交"表示"提交"。顺便说一下,英特尔还在其手册中使用了"完整"一词,这可能意味着退休以外的内容,具体取决于上下文。
  • 有时,术语"提交"是指
  • 更新寄存器和内存状态,而术语"退休"是指解除分配架构资源。
  • 有时可以互换使用。例如,有一些关于微架构的学术建议,这些微架构可以无序地调度商店,但不使用任何存储缓冲区。存储是在从 ROB 本身退休时执行的。

这些术语可用于在其他上下文中表示其他事物。通常,您可以从作者使用它们的方式和整体上下文中推断出它们的含义。


脚注 1:英特尔拥有替代实现的专利,该实现允许商店将存储缓冲区无序地保留,他们不会在其任何 CPU 中实现它。

如果 L1D 配备了区分缓存中每个有效缓存行的全局可见状态和本地可见状态的机制,则可以在停用之前无序提交存储。需要这种机制来维持商店的可见秩序。在这个假设的设计中,也可以推测性地提交存储,这需要在错误预测时刷新(部分或全部(本地可见状态。当存储提交时,可以选择释放包含存储的存储缓冲区条目,即使它尚未停用也是如此。

最新更新