X86結構展望
2018-01-14 來自: 長沙網絡公司 瀏覽次數:832
英特爾 推出X86架構已滿39年了,同486比較,Pentium向前邁進了一大步, 而PⅡ的前進步伐則沒有這么大了,X86 CPU的發展似乎已到了止境。英特爾非常清楚,是X86指令集約束了CPU功能的進一步進步,因此,他們正同惠普共同努力開發下一代指令集架構(Instruction Set Architecture ,ISA): EPIC(Explicitly Parallel Instruction Computing,顯性并行指令核算)。對英特爾而言, IA-64(英特爾的64位架構)是下一個10到15年的架構。新的ISA將使英特爾擺脫X86架構的約束,然后規劃出超越一切現有RISC CPU和X86 CPU的新式處理器。那么EPIC的先進之處在什么地方呢?為什么英特爾會拋棄使它成為芯片巨人的X86架構呢? IA-32的問題 我們知道,工程師可以通過進步每個時鐘的指令履行數來進步功能,英特爾新的指令集的首要目的在于,讓指令更簡單解碼,更簡單并行履行。這樣就可以不受約束地開發新式處理器。 但是,對工程師而言,兼容8086的X86指令集一直是有必要完結的任務。究竟,兼容前代產品是使英特爾成長壯大起來的關鍵因素,并且還可以維護用戶原先的投資和運用數以百萬計應用軟件。既然如此,為什么又要拋棄整個X86指令集重新開始呢?X86的不足在什么地方?
(1)可變的指令長度X86指令的長度是不定的,并且有幾種不同的格式,結果造成X86 CPU的解碼作業非常復雜,為了進步CPU的作業頻率,不得不延長CPU中的流水線,而過長的流水線在分支預測出錯的狀況下,又會帶來CPU作業停滯時間較長的壞處。
(2)寄存器的匱乏 X86指令集架構只有8個通用寄存器,并且實踐只能運用6個。這種狀況同現代的超標量CPU極不適應,雖然工程師們選用寄存器重命名的技術來彌補這個缺陷,但造成了CPU過于復雜,流水線過長的局勢。
(3)內存拜訪 X86指令可拜訪內存地址,而現代RISC CPU則運用LOAD/STORE形式,只有LOAD和STORE指令才能從內存中讀取數據到寄存器,一切其他指令只對寄存器中的操作數核算。在CPU的速度是內存速度的5倍或5倍以上的狀況下,后一種作業形式才是正途。
(4)浮點倉庫 X87 FPU是現在最慢的FPU,首要的原因之一就在于X87指令運用一個操作數倉庫。如果沒有足夠多的寄存器進行核算,你就不得不運用倉庫來存放數據,這會糟蹋很多的時間來運用FXCH指令(即把正確的數據放到倉庫的頂部)。
(5)4GB約束 這似乎不是問題,但是,在2000年前,干流PC只有4MB內存,現在絕大部分PC裝備了2G以上的內存,是曾經的512倍,所以,PC內存打破16GB絕對不會令人驚訝,大型服務器已經運用了32GB以上的內存,打破64GB內存的狀況已經出現。
(6)芯片變大 一切用于進步X86 CPU功能的辦法,如寄存器重命名、巨大的緩沖器、亂序履行、分支預測、X86指令轉化等等,都使CPU的芯片面積變得更大,也約束了作業頻率的進一步進步,而額外集成的這些晶體管都只是為了處理X86結構指令的問題。