因此,我试图理解Tomasulo算法的无序指令执行。以下是我目前所取得的成果:
我所困惑的是寄存器重命名的实现,以及预订站的结构。
谢谢你的帮助。
发布于 2012-06-28 22:30:41
Tomasulo的算法实际上与任何特定的硬件无关,实际上,在实际机器中,寄存器重命名通常在将指令插入指令队列之前进行。让我们把几个基本点弄清楚。首先,程序中表示的寄存器是逻辑寄存器。第二,实际的硬件寄存器称为物理寄存器。Tomasulo的算法只是一种将逻辑寄存器映射到物理寄存器的机制。在实际机器中,通常有两个表将逻辑寄存器映射到物理寄存器。一个在重命名阶段,另一个在提交阶段。还必须有比逻辑寄存器更多的物理寄存器。它基本上是这样运作的:
关于预订站的部分实际上是一个无序管道的具体实现,本质上是伴随着一个物理寄存器。有很多机器实际上没有预订站的概念。
Hennessy和Patterson的“计算机建筑”是这类东西的标准教科书。我试着尽可能简单地解释这一点,但实际上有成千上万的建议来优化这些东西。
发布于 2013-08-28 13:57:31
您可以在此幻灯片中提供更多详细信息:
http://www.slideshare.net/onesuper/understanding-tomasolu-algorithm
https://stackoverflow.com/questions/11219418
复制相似问题