[组成原理] 指令重排序

上一篇:[组成原理] 流水线设计

1. 前提

a = b + c
d = a * e
x = y * z

可以发现,第三条指令并不依赖前两条,在第二条指令等待第一条指令的结果的时候,完全可以先执行第三条指令。

2. 指令重排序

在这里插入图片描述

在取指令和译码之后,会讲指令发到保留站,等待他们所依赖的数据。如果指令依赖的数据准备好了,就会提交到ALU进行计算,计算完成后,会讲结果放到重排序缓冲区,在这里,CPU按照取指令的顺序,对计算结果重新排序,只有当前指令前面的指令都完成,才会提交当前指令,来保证在外部看来指令的顺序性。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章