这可能是一个愚蠢的问题,但我无法对指令生命的这两个阶段找到清晰的解释。我最初的想法是,它们是同义词,但是我不确定。我开始认为
这是错误的吗?有人对这些术语有2个明确的定义吗?
干杯。
答案 0 :(得分:5)
这些术语没有标准定义。我已经看到它们在不同的书籍或处理器设计中被用来表示不同的意思:
在Intel处理器中,当取消分配该指令占用的重排序缓冲区条目时,将退出报废。内存存储还有一个称为提交的阶段,在该阶段实际执行存储。这是因为Intel处理器具有存储缓冲区,可以将存储区标记为已退休。 1
Hennessy和Patterson的书在乱序执行一章中主要使用“提交”一词。甚至存储都在提交阶段执行。有时它使用术语“退休”,但没有给出将其与提交区分开的定义。但是,在附录C中,存储在第4阶段(称为存储阶段)执行,而寄存器更新在第5阶段(称为写回)执行。
在其他上下文中,这些术语可能用来表示其他事物。通常,您可以从作者使用它们的方式以及从整体上下文推断出它们的含义。
脚注1:英特尔在另一种实现方式上有a patent,它允许存储区无序保留存储区缓冲区,而他们没有在任何CPU中实现该缓冲区。
如果L1D配备了区分高速缓存中每个有效高速缓存行的全局可见状态和本地可见状态的机制,则有可能在退役之前无序提交存储。需要这种机制来维护商店的可见顺序。在这种假设的设计中,还可以以推测方式提交存储,这将需要根据错误的预测刷新(部分或全部)本地可见状态。保存该存储的存储缓冲区条目可以有选择地在提交存储时被释放,即使它尚未退休。