0
我正在嘗試瞭解指令級並行性中使用的方法以及它們之間的差異。我的問題是,給定一個指令集,它最初是在處理器而沒有指令級並行性下運行的,可以使用這些方法中的哪一個來實現新處理器上的指令級並行性以及爲什麼/如何。新處理器將執行相同的指令集並運行與原始程序相同的程序二進制文件,但性能會更好。選項有:指令級並行(ILP)方法
1)亂序執行(tomasulo算法)
2)流水線
3)超標量
4)VLIW
我正在嘗試瞭解指令級並行性中使用的方法以及它們之間的差異。我的問題是,給定一個指令集,它最初是在處理器而沒有指令級並行性下運行的,可以使用這些方法中的哪一個來實現新處理器上的指令級並行性以及爲什麼/如何。新處理器將執行相同的指令集並運行與原始程序相同的程序二進制文件,但性能會更好。選項有:指令級並行(ILP)方法
1)亂序執行(tomasulo算法)
2)流水線
3)超標量
4)VLIW
我會說OOO將成爲第一個將會大幅提升ILP的事物。 OOO體系結構是完全獨立於編譯器工作的硬件技術(這意味着OOO體系結構將執行與沒有OOO的CPU相同的計算並且以更少的時間產生相同的結果而根本不改變指令結構)
管襯是一種衆所周知的老技術來增加ILP,但它有其侷限性,增加階段會增加硬件的複雜性,並最終會帶來收益遞減。它們是不同的並行風格,它們需要特殊的硬件和特殊的編譯器,所以它們與傳統的控制流體系結構不兼容。 該技術實質上依賴於編譯器將多於指令的指令放在一個可以並行執行的超長指令字(VLIW)中。
感謝您的回答。你所講的關於OOO,流水線和VLIW幾乎證實了我的答案。與我對你的答案唯一的區別是超標量。看來超標量體系結構的基本思想是不依賴於任何特殊的編譯器,並且只允許硬件檢測哪些指令可以並行運行。這就是爲什麼我認爲超標量能夠以更快和更有效的方式運行相同的程序二進制文件,因爲它只依賴於硬件而不依賴於編譯器。 –
如果你的意思是超標量CPU是任何提供IPC> 1(指令每週期)的CPU,那麼是的。根據硬件的不同,執行方式可以獨立於編譯器工作。 –