[組成原理] 指令重排序

上一篇:[組成原理] 流水線設計

1. 前提

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

可以發現,第三條指令並不依賴前兩條,在第二條指令等待第一條指令的結果的時候,完全可以先執行第三條指令。

2. 指令重排序

在這裏插入圖片描述

在取指令和譯碼之後,會講指令發到保留站,等待他們所依賴的數據。如果指令依賴的數據準備好了,就會提交到ALU進行計算,計算完成後,會講結果放到重排序緩衝區,在這裏,CPU按照取指令的順序,對計算結果重新排序,只有當前指令前面的指令都完成,纔會提交當前指令,來保證在外部看來指令的順序性。

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