Tomasulo算法如何实现CPU乱序执行?
- 内容介绍
- 文章标签
- 相关推荐
本文共计2155个文字,预计阅读时间需要9分钟。
朋友们可以关注我的公众号,获取最新动态:+ 或者关注我的知乎账号:https://www.zhihu.com/people/zhangyachen+IBM+360/91浮点单元首次实现Tomasulo算法,从而允许乱序执行。360体系只有4个双...
朋友们可以关注下我的公众号,获得最及时的更新:
或者关注我的知乎账号 :www.zhihu.com/people/zhangyachen
IBM 360/91浮点单元最先实现Tomasulo算法从而允许乱序执行。360体系只有4个双精度浮点寄存器,限制了编译器调度的有效性。而且,IBM 360/91的访存和浮点延迟都很长,如果顺序执行指令,虽然只有RAW hazard,但是后面无关的指令只能被stall。如果乱序执行,还会额外引入WAR和WAW hazard。Tomasulo算法通过Register renaming解决了这些问题。
Tomasulo算法1966年提出,设计目标是让编译器在360系列计算机中通用,不用为每台计算机专门做一个编译器。
因为乱序执行,基础的Tomasulo算法不能保证Precise Exception和Speculation,带有Reorder buffer的Tomasulo算法可以解决这个问题。
作用- 指令顺序发射(issue/dispatch),乱序执行(execute),顺序提交(commit)。
- Register renaming : 通过reservation station和ROB实现。
本文共计2155个文字,预计阅读时间需要9分钟。
朋友们可以关注我的公众号,获取最新动态:+ 或者关注我的知乎账号:https://www.zhihu.com/people/zhangyachen+IBM+360/91浮点单元首次实现Tomasulo算法,从而允许乱序执行。360体系只有4个双...
朋友们可以关注下我的公众号,获得最及时的更新:
或者关注我的知乎账号 :www.zhihu.com/people/zhangyachen
IBM 360/91浮点单元最先实现Tomasulo算法从而允许乱序执行。360体系只有4个双精度浮点寄存器,限制了编译器调度的有效性。而且,IBM 360/91的访存和浮点延迟都很长,如果顺序执行指令,虽然只有RAW hazard,但是后面无关的指令只能被stall。如果乱序执行,还会额外引入WAR和WAW hazard。Tomasulo算法通过Register renaming解决了这些问题。
Tomasulo算法1966年提出,设计目标是让编译器在360系列计算机中通用,不用为每台计算机专门做一个编译器。
因为乱序执行,基础的Tomasulo算法不能保证Precise Exception和Speculation,带有Reorder buffer的Tomasulo算法可以解决这个问题。
作用- 指令顺序发射(issue/dispatch),乱序执行(execute),顺序提交(commit)。
- Register renaming : 通过reservation station和ROB实现。

