運(yùn)算器分別有什么作用?
一、CPU的內(nèi)核
從結(jié)構(gòu)上講CPU內(nèi)核分為兩部分:運(yùn)算器和控制器。
?
(一) 運(yùn)算器
?
1、 算術(shù)邏輯運(yùn)算單元ALU(Arithmetic and Logic Unit)
?
ALU主要完成對(duì)二進(jìn)制數(shù)據(jù)的定點(diǎn)算術(shù)運(yùn)算(加減乘除)、邏輯運(yùn)算(與或非異或)以及移位操作。在某些CPU中還有專門用于處理移位操作的移位器。
?
通常ALU由兩個(gè)輸入端和一個(gè)輸出端。整數(shù)單元有時(shí)也稱為IEU(Integer Execution Unit)。我們通常所說(shuō)的“CPU是XX位的”就是指ALU所能處理的數(shù)據(jù)的位數(shù)。
?
2、 浮點(diǎn)運(yùn)算單元FPU(Floating Point Unit)
?
FPU主要負(fù)責(zé)浮點(diǎn)運(yùn)算和高精度整數(shù)運(yùn)算。有些FPU還具有向量運(yùn)算的功能,另外一些則有專門的向量處理單元。
?
3、 通用寄存器組
?
通用寄存器組是一組最快的存儲(chǔ)器,用來(lái)保存參加運(yùn)算的操作數(shù)和中間結(jié)果。
?
對(duì)于x86指令集只支持8個(gè)通用寄存器的缺點(diǎn),Intel最新CPU采用了一種叫做“寄存器重命名”的技術(shù),這種技術(shù)使x86CPU的寄存器可以突破8個(gè)的限制,達(dá)到32個(gè)甚至更多。
?
4、 專用寄存器
?
專用寄存器通常是一些狀態(tài)寄存器,不能通過(guò)程序改變,由CPU自己控制,表明某種狀態(tài)。
(二) 控制器
?
運(yùn)算器只能完成運(yùn)算,而控制器用于控制著整個(gè)CPU的工作。
?
1、 指令控制器
?
指令控制器是控制器中相當(dāng)重要的部分,它要完成取指令、分析指令等操作,然后交給執(zhí)行單元(ALU或FPU)來(lái)執(zhí)行,同時(shí)還要形成下一條指令的地址。
?
2、 時(shí)序控制器
?
時(shí)序控制器的作用是為每條指令按時(shí)間順序提供控制信號(hào)。時(shí)序控制器包括時(shí)鐘發(fā)生器和倍頻定義單元,其中時(shí)鐘發(fā)生器由石英晶體振蕩器發(fā)出非常穩(wěn)定的脈沖信號(hào),就是CPU的主頻;而倍頻定義單元?jiǎng)t定義了CPU主頻是存儲(chǔ)器頻率(總線頻率)的幾倍。
?
3、 總線控制器
?
總線控制器主要用于控制CPU的內(nèi)外部總線,包括地址總線、數(shù)據(jù)總線、控制總線等等。
?
4、中斷控制器
?
中斷控制器用于控制各種各樣的中斷請(qǐng)求,并根據(jù)優(yōu)先級(jí)的高低對(duì)中斷請(qǐng)求進(jìn)行排隊(duì),逐個(gè)交給CPU處理。
二、CPU的外核
?
1、解碼器(Decode Unit)
?
這是x86CPU特有的設(shè)備,它的作用是把長(zhǎng)度不定的x86指令轉(zhuǎn)換為長(zhǎng)度固定的指令,并交由內(nèi)核處理。解碼分為硬件解碼和微解碼,對(duì)于簡(jiǎn)單的x86指令只要硬件解碼即可,速度較快,而遇到復(fù)雜的x86指令則需要進(jìn)行微解碼,并把它分成若干條簡(jiǎn)單指令,速度較慢且很復(fù)雜。好在這些復(fù)雜指令很少會(huì)用到。
?
2、一級(jí)緩存和二級(jí)緩存(Cache)
?
一級(jí)緩存和二級(jí)緩存是為了緩解較快的CPU與較慢的存儲(chǔ)器之間的矛盾而產(chǎn)生的,以及緩存通常集成在CPU內(nèi)核,而二級(jí)緩存則是以O(shè)nDie或OnBoard的方式以較快于存儲(chǔ)器的速度運(yùn)行。對(duì)于一些大數(shù)據(jù)交換量的工作,CPU的Cache顯得尤為重要。
?
三、指令系統(tǒng)
?
要講CPU,還要了解一下指令系統(tǒng)。指令系統(tǒng)指的是一個(gè)CPU所能夠處理的全部指令的集合,是一個(gè)CPU的根本屬性,因?yàn)橹噶钕到y(tǒng)決定了一個(gè)CPU能夠運(yùn)行什么樣的程序。我們常說(shuō)的CPU都是X86系列及兼容CPU ,所謂X86指令集是美國(guó)Intel公司為其第一塊16位CPU(i8086)專門開(kāi)發(fā)的,雖然隨著CPU技術(shù)的不斷發(fā)展,Intel陸續(xù)研制出更新型的i80386、i80486直到今天的Pentium4系列,但為了保證電腦能繼續(xù)運(yùn)行以往開(kāi)發(fā)的各類應(yīng)用程序以保護(hù)和繼承豐富的軟件資源(如Windows系列),Intel公司所生產(chǎn)的所有CPU仍然繼續(xù)使用X86指令集。 另外除Intel 公司之外,AMD和Cyrix等廠家也相繼生產(chǎn)出能使用X86指令集的CPU,由于這些CPU能運(yùn)行所有的為Intel CPU所開(kāi)發(fā)的各種軟件,所以電腦業(yè)內(nèi)人士就將這些CPU列為Intel的CPU兼容產(chǎn)品。
?
四、CPU主要技術(shù)淺析
?
1、流水線技術(shù)
?
流水線(pipeline)是 InteI首次在486芯片中開(kāi)始使用的。流水線的工作方式就象工業(yè)生產(chǎn)上的裝配流水線。在CPU中由5~6個(gè)不同功能的電路單元組成一條指令處理流水線,然后將一條X86指令分成5~6步后再由這些電路單元分別執(zhí)行,這樣就能實(shí)現(xiàn)在一個(gè)CPU時(shí)鐘周期完成一條指令,從而提高了CPU的運(yùn)算速度。
?
2、超流水線和超標(biāo)量技術(shù)
?
超流水線是指某些CPU內(nèi)部的流水線超過(guò)通常的5~6步以上,例如Intel Pentium 4的流水線就長(zhǎng)達(dá)20步。將流水線設(shè)計(jì)的步(級(jí))數(shù)越多,其完成一條指令的速度越快,因此才能適應(yīng)工作主頻更高的CPU。超標(biāo)量(supe rscalar)是指在 CPU中有一條以上的流水線,并且每時(shí)鐘周期內(nèi)可以完成一條以上的指令,這種設(shè)計(jì)就叫超標(biāo)量技術(shù)。
?
3、亂序執(zhí)行技術(shù)
?
亂序執(zhí)行(out-of-orderexecution)是指CPU采用了允許將多條指令不按程序規(guī)定的順序分開(kāi)發(fā)送給各相應(yīng)電路單元處理的技術(shù)。比方說(shuō)程序某一段有7條指令,此時(shí)CPU將根據(jù)各單元電路的空鬧狀態(tài)和各指令能否提前執(zhí)行的具體情況分析后,將能提前執(zhí)行的指令立即發(fā)送給相應(yīng)電路執(zhí)行。當(dāng)然在各單元不按規(guī)定順序執(zhí)行完指令后還必須由相應(yīng)電路再將運(yùn)算結(jié)果重新按原來(lái)程序指定的指令順序排列后才能返回程序。這種將各條指令不按順序拆散后執(zhí)行的運(yùn)行方式就叫亂序執(zhí)行(也有叫錯(cuò)序執(zhí)行)技術(shù)。采用亂序執(zhí)行技術(shù)的目的是為了使CPU內(nèi)部電路滿負(fù)荷運(yùn)轉(zhuǎn)并相應(yīng)提高了CP U的運(yùn)行程序的速度。
?
4、分技預(yù)溯和推測(cè)執(zhí)行技術(shù)
?
分枝預(yù)測(cè)(branch prediction)和推測(cè)執(zhí)行(speculatlon execution) 是CPU動(dòng)態(tài)執(zhí)行技術(shù)中的主要內(nèi)容,動(dòng)態(tài)執(zhí)行是目前CPU主要采用的先進(jìn)技術(shù)之一。采用分枝預(yù)測(cè)和動(dòng)態(tài)執(zhí)行的主要目的是為了提高CPU的運(yùn)算速度。推測(cè)執(zhí)行是依托于分枝預(yù)測(cè)基礎(chǔ)上的,在分枝預(yù)測(cè)程序是否分枝后所進(jìn)行的處理也就是推測(cè)執(zhí)行.
5、指令特殊擴(kuò)展技術(shù)
?
自最簡(jiǎn)單的計(jì)算機(jī)開(kāi)始,指令序列便能取得運(yùn)算對(duì)象,并對(duì)它們執(zhí)行計(jì)算。對(duì)大多數(shù)計(jì)算機(jī)而言,這些指令同時(shí)只能執(zhí)行一次計(jì)算。如需完成一些并行操作,就要連續(xù)執(zhí)行多次計(jì)算。此類計(jì)算機(jī)采用的是“單指令單數(shù)據(jù)”(SISD)處理器。在介紹CPU性能中還經(jīng)常提到“擴(kuò)展指令”或“特殊擴(kuò)展”一說(shuō),這都是指該CPU是否具有對(duì)X86指令集進(jìn)行指令擴(kuò)展而言。擴(kuò)展指令中最早出現(xiàn)的是InteI公司的“MMX”,然后是Pentium III中的“SSE”,以及現(xiàn)在Pentium 4中的SSE2指令集。
?
五、CPU的構(gòu)架和封裝方式
(一) CPU的構(gòu)架
?
CPU架構(gòu)是按CPU的安裝插座類型和規(guī)格確定的。目前常用的CPU按其安裝插座規(guī)范可分為Socket x和Slot x兩大架構(gòu)。
?
以Intel處理器為例,Socket 架構(gòu)的CPU中分為Socket 370、Socket 423和Socket 478三種,分別對(duì)應(yīng)Intel PIII/Celeron處理器、P4 Socket 423處理器和P4 Socket 478處理器。Slot x架構(gòu)的CPU中可分為Slot 1、Slot 2兩種,分別使用對(duì)應(yīng)規(guī)格的Slot槽進(jìn)行安裝。其中Slot 1是早期Intel PII、PIII和Celeron處理器采取的構(gòu)架方式,Slot 2是尺寸較大的插槽,專門用于安裝PⅡ和P Ⅲ序列中的Xeon。Xeon是一種專用于工作組服務(wù)器上的CPU。
?
(二) CPU的封裝方式
所謂封裝是指安裝半導(dǎo)體集成電路芯片用的外殼,通過(guò)芯片上的接點(diǎn)用導(dǎo)線連接到封裝外殼的引腳上,這些引腳又通過(guò)印刷電路板上的插槽與其他器件相連接。它起著安裝、固定、密封、保護(hù)芯片及增強(qiáng)電熱性能等方面的作用。
?
CPU的封裝方式取決于CPU安裝形式,通常采用Socket插座安裝的CPU使用PGA(柵格陣列)的形式進(jìn)行封裝,而采用Slot X槽安裝的CPU則全部采用SEC(單邊接插盒)的形式進(jìn)行封裝。
?
1. PGA(Pin Grid Arrax)引腳網(wǎng)格陣列封裝
目前CPU的封裝方式基本上是采用PGA封裝,在芯片下方圍著多層方陣形的插針,每個(gè)方陣形插針是沿芯片的四周,間隔一定距離進(jìn)行排列的。它的引腳看上去呈針狀,是用插件的方式和電路板相結(jié)合。安裝時(shí),將芯片插入專門的PGA插座。PGA封裝具有插拔操作更方便,可靠性高的優(yōu)點(diǎn),缺點(diǎn)是耗電量較大。PGA也衍生出多種封裝方式,最早的PGA封裝適用于Intel Pentium、Intel Pentium PRO和Cxrix/IBM 6x86處理器; CPGA(Ceramic Pin Grid Arrax,陶瓷針形柵格陣列)封裝,適用于Intel Pentium MMX、AMD K6、AMD K6-2、AMD K6 Ⅲ、VIA Cxrix Ⅲ處理器;PPGA(Plastic Pin Grid Arrax,塑料針狀矩陣)封裝,適用于Intel Celeron處理器(Socket 370);FC-PGA(Flip Chip Pin Grid Arrax,反轉(zhuǎn)芯片針腳柵格陣列)封裝,適用于Coppermine系列Pentium Ⅲ、Celeron Ⅱ和Pentium4處理器。
?
2. SEC(單邊接插卡盒)封裝
Slot X架構(gòu)的CPU不再用陶瓷封裝,而是采用了一塊帶金屬外殼的印刷電路板,該印刷電路板集成了處理器部件。SEC卡的塑料封裝外殼稱為SEC(Single Edgecontact Cartridge)單邊接插卡盒。這種SEC卡設(shè)計(jì)是插到Slot X(尺寸大約相當(dāng)于一個(gè)ISA插槽那么大)插槽中。所有的Slot X主板都有一個(gè)由兩個(gè)塑料支架組成的固定機(jī)構(gòu),一個(gè)SEC卡可以從兩個(gè)塑料支架之間插入Slot X槽中。
?
其中,Intel Celeron處理器(Slot 1)是采用(SEPP)單邊處理器封裝;Intel的PentiumⅡ是采用SECC(Single Edge Contact Connector,單邊接觸連接)的封裝;Intel的PentiumⅢ是采用SECC2封裝