卅年史詩!地球上出現過的CPU完全收
■CPU內核結構
好吧,下面來看看CPU。CPU內核主要分為兩部分:運算器和控制器。
一 運算器
1、算術邏輯運算單元ALU(Arithmetic and Logic Unit)
ALU主要完成對二進制數據的定點算術運算(加減乘除)、邏輯運算(與或非異或)以及移位操作。在某些CPU中還有專門用于處理移位操作的移位器。
通常ALU由兩個輸入端和一個輸出端。整數單元有時也稱為IEU(Integer Execution Unit)。我們通常所說的“CPU是XX位的”就是指ALU所能處理的數據的位數。
2、浮點運算單元FPU(Floating Point Unit)
FPU主要負責浮點運算和高精度整數運算。有些FPU還具有向量運算的功能,另外一些則有專門的向量處理單元。
3、通用寄存器組
通用寄存器組是一組最快的存儲器,用來保存參加運算的操作數和中間結果。
在通用寄存器的設計上,RISC與CISC有著很大的不同。CISC的寄存器通常很少,主要是受了當時硬件成本所限。比如x86指令集只有8個通用寄存器。所以,CISC的CPU執行是大多數時間是在訪問存儲器中的數據,而不是寄存器中的。這就拖慢了整個系統的速度。而RISC系統往往具有非常多的通用寄存器,并采用了重疊寄存器窗口和寄存器堆等技術使寄存器資源得到充分的利用。
對于x86指令集只支持8個通用寄存器的缺點,Intel和AMD的最新CPU都采用了一種叫做“寄存器重命名”的技術,這種技術使x86CPU的寄存器可以突破8個的限制,達到32個甚至更多。不過,相對于RISC來說,這種技術的寄存器操作要多出一個時鐘周期,用來對寄存器進行重命名。
4、專用寄存器
專用寄存器通常是一些狀態寄存器,不能通過程序改變,由CPU自己控制,表明某種狀態。
二 控制器
運算器只能完成運算,而控制器用于控制著整個CPU的工作。
1、指令控制器
指令控制器是控制器中相當重要的部分,它要完成取指令、分析指令等操作,然后交給執行單元(ALU或FPU)來執行,同時還要形成下一條指令的地址。
2、時序控制器
時序控制器的作用是為每條指令按時間順序提供控制信號。時序控制器包括時鐘發生器和倍頻定義單元,其中時鐘發生器由石英晶體振蕩器發出非常穩定的脈沖信號,就是CPU的主頻;而倍頻定義單元則定義了CPU主頻是存儲器頻率(總線頻率)的幾倍。
3、總線控制器
總線控制器主要用于控制CPU的內外部總線,包括地址總線、數據總線、控制總線等等。
4、中斷控制器
中斷控制器用于控制各種各樣的中斷請求,并根據優先級的高低對中斷請求進行排隊,逐個交給CPU處理。
三 CPU核心的設計
CPU的性能是由什么決定的呢?單純的一個ALU速度在一個CPU中并不起決定性作用,因為ALU的速度都差不多。而一個CPU的性能表現的決定性因素就在于CPU內核的設計。
1、超標量(Superscalar)
既然無法大幅提高ALU的速度,有什么替代的方法呢?并行處理的方法又一次產生了強大的作用。所謂的超標量CPU,就是只集成了多個ALU、多個FPU、多個譯碼器和多條流水線的CPU,以并行處理的方式來提高性能。
超標量技術應該是很容易理解的,不過有一點需要注意,就是不要去管“超標量”之前的那個數字,比如“9路超標量”,不同的廠商對于這個數字有著不同的定義,更多的這只是一種商業上的宣傳手段。<
關注我們


