Tomasulo算法如何实现CPU乱序执行?

2026-05-22 22:580阅读0评论SEO基础
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计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实现。
阅读全文