CPU工作原理一·CPU的基本概念及組成CPU(CentralProcessingUnit中央處理器)世界上第一臺PC機中的CPU-i8086是美國IBM公司1981年推出的·其執行指令為X86指令集·同時為提高浮點運算能力,增加X87指令集,以后的X86及X87統稱為X86指令集·該指令集一直沿用到現在的PIIICPU·CPU主要包含運算器及控制器,其內部結構可分為控制單元,邏輯單元和存儲單元·運算器主要完成各種算數(加,減,乘,除)和邏輯運算(邏輯加,邏輯減和非運算)·控制器不具有運算功能,它只是讀取各種指令,并對指令分析,作出相應的控制·
中央處理器是英語“CentralProcessingUnit”的縮寫,即CPU,CPU是電腦中的核心配件,只有火柴盒那么大,幾十張紙那么厚,但它卻是一臺計算機的運算核心和控制核心。電腦中所有操作都由cpu負責讀取指令,對指令譯碼并執行指令的核心部件。中央處理器cpu包括運算邏輯部件、寄存器部件和控制部件。中央處理器從存儲器或高速緩沖存儲器中取出指令,放入指令寄存器,并對指令譯碼。它把指令分解成一系列的微操作,然后發出各種控制命令,執行微操作系列,從而完成一條指令的執行。指令是計算機規定執行操作的類型和操作數的基本命令。①運算邏輯部件。可以執行定點或浮點的算術運算操作、移位操作以及邏輯操作,也可執行地址的運算和轉換。②寄存器部件。包括通用寄存器、專用寄存器和控制寄存器。通用寄存器又可分定點數和浮點數兩類,它們用來保存指令中的寄存器操作數和操作結果。通用寄存器是中央處理器的重要組成部分,大多數指令都要訪問到通用寄存器。③控制部件。主要負責對指令譯碼,并且發出為完成每條指令所要執行的各個操作的控制信號。其結構有兩種:一種是以微存儲為核心的微程序控制方式;一種是以邏輯硬布線結構為主的控制方式。
我來介紹CPU的工作原理淺析:一個完整的微型計算機系統包括硬件系統和軟件系統兩大部分。計算機硬件是指組成一臺計算機的各種物理裝置, 它們是由各種實在的器件所組成,是計算機進行工作的物質基礎。計算機硬件系統中最重要的組成部分是中央處理器(CPU )。
CPU的工作原理淺析一個完整的微型計算機系統包括硬件系統和軟件系統兩大部分。計算機硬件是指組成一臺計算機的各種物理裝置,它們是由各種實在的器件所組成,是計算機進行工作的物質基礎。計算機硬件系統中最重要的組成部分是中央處理器(CPU)。(一)CPU的基本概念和組成中央處理器簡稱CPU(CentralProcessingUnit),它是計算機系統的核心,主要包括運算器和控制器兩個部件。如果把計算機比作一個人,那么CPU就是心臟,其重要作用由此可見一斑。CPU的內部結構可以分為控制單元、邏輯單元和存儲單元三大部分,三個部分相互協調,便可以進行分析,判斷、運算并控制計算機各部分協調工作。計算機發生的所有動作都是受CPU控制的。其中運算器主要完成各種算術運算(如加、減、乘、除)和邏輯運算(如邏輯加、邏輯乘和非運算);而控制器不具有運算功能,它只是讀取各種指令,并對指令進行分析,作出相應的控制。通常,在CPU中還有若干個寄存器,它們可直接參與運算并存放運算的中間結果。我們常說的CPU都是X86系列及兼容CPU,所謂X86指令集是美國Intel公司為其第一塊16位CPU(i8086)專門開發的,美國IBM公司1981年推出的世界第一臺PC機中的CPU—i8088(i8086簡化版)使用的也是X86指令,同時電腦中為提高浮點數據處理能力而增加的X87芯片系列數學協處理器則另外使用X87指令,以后就將X86指令集和X87指令集統稱為X86指令集。雖然隨著CPU技術的不斷發展,Intel陸續研制出更新型的i80386、i80486直到今天的PentiumⅢ系列,但為了保證電腦能繼續運行以往開發的各類應用程序以保護和繼承豐富的軟件資源,Intel公司所生產的所有CPU仍然繼續使用X86指令集。另外除Intel公司之外,AMD和Cyrix等廠家也相繼生產出能使用X86指令集的CPU,由于這些CPU能運行所有的為IntelCPU所開發的各種軟件,所以電腦業內人士就將這些CPU列為Intel的CPU兼容產品。由于IntelX86系列及其兼容CPU都使用X86指令集,就形成了今天龐大的X86系列及兼容CPU陣容。(二)CPU主要技術參數CPU品質的高低直接決定了一個計算機系統的檔次,而CPU的主要技術特性可以反映出CPU的大致性能。CPU可以同時處理的二進制數據的位數是其最重要的一個品質標志。人們通常所說的16位機、32位機就是指該微機中的CPU可以同時處理16位、32位的二進制數據。早期有代表性的IBMPC/XT、IBMPC/AT與286機是16位機,386機和486機是32位機,586機則是64位的高檔微機。CPU按照其處理信息的字長可以分為:八位微處理器、十六位微處理器、三十二位微處理器以及六十四位微處理器等。位:在數字電路和電腦技術中采用二進制,代碼只有“0”和“1”,其中無論是“0”或是“1”在CPU中都是一“位”。字節和字長:電腦技術中對CPU在單位時間內(同一時間)能一次處理的二進制數的位數叫字長。所以能處理字長為8位數據的CPU通常就叫8位的CPU。同理32位的CPU就能在單位時間內處理字長為32位的二進制數據。由于常用的英文字符用8位二進制就可以表示,所以通常就將8位稱為一個字節。字節的長度是不固定的,對于不同的CPU、字長的長度也不一樣。8位的CPU一次只能處理一個宇節,而32位的CPU一次就能處理4個宇節,同理字長為64位的CPU一次可以處理8個字節。2、CPU外頻CPU外頻也就是常見特性表中所列的CPU總線頻率,是由主板為CPU提供的基準時鐘頻率,而CPU的工作主頻則按倍頻系數乘以外頻而來。在Pentium時代,CPU的外頻一般是60/66MHz,從PentiumII350開始,CPU外頻提高到1O0MHz。由于正常情況下CPU總線頻率和內存總線頻率相同,所以當CPU外頻提高后,與內存之間的交換速度也相應得到了提高,對提高電腦整體運行速度影響較大。3、前端總線(FSB)頻率前端總線也就是以前所說的CPU總線,由于在目前的各種主板上前端總線頻率與內存總線頻率相同,所以也是CPU與內存以及L2Cache(僅指Socket7主板)之間交換數據的工作時鐘。由于數據傳輸最大帶寬取決所同時傳輸的數據位寬度和傳輸頻率,即數據帶寬=(總線頻率(數據寬度)/8。例如Intel公司的PⅡ333使用66MHz的前端總線,所以它與內存之間的數據交換帶寬為528MB/s=(66×64)/8,而其PⅡ350則使用100MHz的前端總線,所以其數據交換峰值帶寬為800MB/s=(100×64)/8。由此可見前端總線速率將影響電腦運行時CPU與內存、(L2Cache)之間的數據交換速度,實際也就影響了電腦的整體運行速度。因此目前Intel正開始將其PⅢ的前端總線頻率從100MHz向133MHz過渡。AMD公司新推出的K7雖然使用200MHz的前端總線頻率,但有資料表明K7CPU內核與內存之間數據交換時鐘仍然是100MHz,主頻也是以100MHz為基頻倍頻的。4、CPU主頻CPU主頻也叫工作頻率,是CPU內核(整數和浮點運算器)電路的實際運行頻率。在486DX2CPU之前。CPU的主頻與外頻相等。從486DX2開始,基本上所有的CPU主頻都等于“外頻乘上倍頻系數”了。CPU的主要技術特征。主頻是CPU內核運行時的時鐘頻率,主頻的高低直接影響CPU的運算速度。我們知道僅Pentium就可以在一個時鐘周期內執行兩條運算指令,假如主頻為100MHz的Pentium可以在1秒鐘內執行2億條指令,那么主頻為200MHz的Pentium每秒鐘就能執行4億條指令,因此CPU主頻越高,電腦運行速度就越快。需要說明的是Cyrix的CPU對主頻這項指標是采用PR性能等級參數(PerformanceRating)來標稱的,表示此時CPU性能相當于Intel某主頻CPU的性能。用PR參數標稱的CPU實際運行時鐘頻率與標稱主頻并不一致。例如MⅡ-300的實際運行頻率為233MHz(66×3.5),但PR參數主頻標為300MHz,意思就是MⅡ-300相當于Intel的PⅡ-300。不過事實上也僅是MⅡ-300的BusinessWinston指標(整數性能)能與PⅡ-300相當而已。5、L1和L2Cache的容量和速率L1和L2Cache的容量和工作速率對提高電腦速度起關鍵作用,尤其是L2Cache對提高運行2D圖形處理較多的商業軟件速度有顯著作用。設置L2Cache是486時代開始的,目的是彌補L1Cache(一級高速緩存)容量的不足,以最大程度地減小主內存對CPU運行造成的延緩。CPU的L2Cache分芯片內部和外部兩種。設在CPU芯片內的L2Cache運行速度與主頻相同,而采用PⅡ方式安裝在CPU芯片外部的L2Cache運行頻率一般為主頻的二分之一,因此其效率要比芯片內的L2Cache要低,這就是賽揚只有128KB片內Cache但性能卻幾乎超過同主頻PⅡ(有512KB但工作時鐘為主頻一半的片外L2Cache)的重要原因。(三)CPU主要技術術語淺析1、流水線技術流水線(pipeline)是InteI首次在486芯片中開始使用的。流水線的工作方式就象工業生產上的裝配流水線。在CPU中由5~6個不同功能的電路單元組成一條指令處理流水線,然后將一條X86指令分成5~6步后再由這些電路單元分別執行,這樣就能實現在一個CPU時鐘周期完成一條指令,因此提高CPU的運算速度。由于486CPU只有一條流水線,通過流水線中取指令、譯碼、產生地址、執行指令和數據寫回五個電路單元分別同時執行那些已經分成五步的指令,因此實現了486CPU設計人員預期的在每個時鐘周期中完成一條指令的目的(按筆者看法,CPU實際上應該是從第五個時鐘周期才達到每周期能完成一條指令的處理速度)。到了Pentium時代、設計人員在CPU中設置了兩條具有各自獨立電路單元的流水線,因此這樣CPU在工作時就可以通過這兩條流水線來同時執行兩條指令,因此在理論上可以實現在每一個時鐘周期中完成兩條指令的目的。2、超流水線和超標量技術超流水線是指某些CPU內部的流水線超過通常的5~6步以上,例如Pentiumpro的流水線就長達14步。將流水線設計的步(級)數越多,其完成一條指令的速度越快,因此才能適應工作主頻更高的CPU。超標量(superscalar)是指在CPU中有一條以上的流水線,并且每時鐘周期內可以完成一條以上的指令,這種設計就叫超標量技術。3、亂序執行技術亂序執行(out-of-orderexecution)是指CPU采用了允許將多條指令不按程序規定的順序分開發送給各相應電路單元處理的技術。比方說程序某一段有7條指令,此時CPU將根據各單元電路的空鬧狀態和各指令能否提前執行的具體情況分析后,將能提前執行的指令立即發送給相應電路執行。當然在各單元不按規定順序執行完指令后還必須由相應電路再將運算結果重新按原來程序指定的指令順序排列后才能返回程序。這種將各條指令不按順序拆散后執行的運行方式就叫亂序執行(也有叫錯序執行)技術。采用亂序執行技術的目的是為了使CPU內部電路滿負荷運轉并相應提高了CPU的運行程序的速度。4、分技預溯和推測執行技術分枝預測(branchprediction)和推測執行(speculatlonexecution)是CPU動態執行技術中的主要內容,動態執行是目前CPU主要采用的先進技術之一。采用分枝預測和動態執行的主要目的是為了提高CPU的運算速度。推測執行是依托于分枝預測基礎上的,在分枝預測程序是否分枝后所進行的處理也就是推測執行。5、指令特殊擴展技術自最簡單的計算機開始,指令序列便能取得運算對象,并對它們執行計算。對大多數計算機而言,這些指令同時只能執行一次計算。如需完成一些并行操作,就要連續執行多次計算。此類計算機采用的是“單指令單數據”(SISD)處理器。在介紹CPU性能中還經常提到“擴展指令”或“特殊擴展”一說,這都是指該CPU是否具有對X86指令集進行指令擴展而言。擴展指令中最早出現的是InteI公司自己的“MMX”,其次是AMD公司的“3DNow!”,最后是最近的PentiumIII中的“SSE”。MMX和SSE:MMX是英語“多媒體指令集”的縮寫。共有57條指令,是Intel公司第一次對自1985年就定型的X86指令集進行的擴展。MMX主要用于增強CPU對多媒體信息的處理,提高CPU處理3D圖形、視頻和音頻信息能力。但由于只對整數運算進行了優化而沒有加強浮點方面的運算能力。所以在3D圖形日趨廣泛,因特網3D網頁應用日趨增多的情況下,MMX已心有余而力不足了。MMX指令可對整數執行SIMD運算,比如-40、0、1、469或32766等等;SSE指令則增加了對浮點數的SIMD運算能力,比如-40.2337,1.4355或877343226.012等等。利用MMX和SSE,一條指令可對2個以上的數據流執行計算。就前面的例子來說,再也不必每秒執行529000條指令了,只需執行264600條即可。因為同樣的指令可同時對左、右聲道發生作用。顯示時,每秒也不需要70778880條指令,只需23592960條,因為紅、綠、藍通道均可用相同的指令控制。SSE:SSE是英語“因特網數據流單指令序列擴展/InternetStreamingSIMDExtensions”的縮寫。它是InteI公司首次應用于PentiumIII中的。實際就是原來傳聞的MMX2以后來又叫KNI(KatmaiNewInstruction),Katmai實際上也就是現在的PentiumIII。SSE共有70條指令,不但涵括了原MMX和3DNow!指令集中的所有功能,而且特別加強了SIMD浮點處理能力,另外還專門針對目前因特網的日益發展,加強了CPU處理3D網頁和其它音、象信息技術處理的能力。CPU具有特殊擴展指令集后還必須在應用程序的相應支持下才能發揮作用,因此,當目前最先進的PenthmIII450和PentiumII450運行同樣沒有擴展指令支持的應用程序時,它們之間的速度區別并不大。SSE除保持原有的MMX指令外,又新增了70條指令,在加快浮點運算的同時,也改善了內存的使用效率,使內存速度顯得更快一些。對游戲性能的改善十分顯著,按Intel的說法,SSE對下述幾個領域的影響特別明顯:3D幾何運算及動畫處理;圖形處理(如Photoshop);視頻編輯/壓縮/解壓(如MPEG和DVD);語音識別;以及聲音壓縮和合成等。3DNOW!:AMD公司開發的多媒體擴展指令集,共有27條指令,針對MMX指令集沒有加強浮點處理能力的弱點,重點提高了AMD公司K6系列CPU對3D圖形的處理能力,但由于指令有限,該指令集主要應用于3D游戲,而對其他商業圖形應用處理支持不足。(四)CPU的生產工藝及產品構架1、CPU的生產工藝表明CPU性能的參數中常有“工藝技術”一項,其中有“0.35um”或“0.25um”等。一般來說“工藝技術”中的數據越小表明CPU生產技術越先進。目前生產CPU主要采用CMOS技術。CMOS是英語“互補金屬氧化物半導體”的縮寫。采用這種技術生產CPU時過程中采用“光刀”加工各種電路和元器件,并采用金屬鋁沉淀在硅材料上后用“光刀”刻成導線聯接各元器件。現在光刻的精度一般用微米(um)表示,精度越高表示生產工藝越先進。因為精度越高則可以在同樣體積上的硅材料上生產出更多的元件,所加工出的聯接線也越細,這樣生產出的CPU工作主頻可以做得很高。正因為如此,在只能使用0.65um工藝時生產的第一代PentiumCPU的工作主頻只有60/66MHz,在隨后生產工藝逐漸發展到0.35um、0.25um時、所以也相應生產出了工作主額高達266MHz的PentiumMMX和主頻高達500MHz的PentiumIICPU。由于目前科學技術的限制,現在的CPU生產工藝只能達到0.25um,因此Intel、AMD、Cyrix以及其它公司正在向0.18um和銅導線(用金屬銅沉淀在硅材料上代替原來的鋁)技術努力,估計只要生產工藝達到0.18um后生產出主頻為l000MHz的CPU就會是很平常的事了。AMD為了跟Intel繼續爭奪下個世紀的微處理器發展權,已經跟摩托羅拉(Motorola)達成一項長達七年的技術合作協議。Motorola將把最新開發的銅導線工藝技術(CopperInterconnect)授權給AMD。AMD準備在2000年之內,制造高達1000MHz(1GHz)的K7微處理器。CPU將向速度更快、64位結構方向前進。CPU的制作工藝將更加精細,將會由現在0.25微米向0.18微米過渡,到2000年中大部分CPU廠商都將采用0.18微米工藝,2001年之后,許多廠商都將轉向0.13微米的銅制造工藝,制造工藝的提高,味著體積更小,集成度更高,耗電更少。銅技術的優勢非常明顯。主要表現在以下方面:銅的導電性能優于現在普遍應用的鋁,而且銅的電阻小,發熱量小,從而可以保證處理器在更大范圍內的可靠性;采用0.13微米以下及銅工藝芯片制造技術將有效的提高芯片的工作頻率;能減小現有管芯的體積。與傳統的鋁工藝技術相比,銅工藝制造芯片技術將有效地提高芯片的速度,減小芯片的面積,從發展來看銅工藝將最終取代鋁工藝。各廠家所生產的每一種CPU都有名稱(商標名)、代號(研制代號)和標志(專用圖案)。其中Intel公司的早期產品以i80x86命名,即以前的286、386、486等,到Intel開發出第5代產品586時由于商標注冊上的麻煩改為Pentium并同時為其注冊中文商標名“奔騰”,由此也就有了后來的PentiumPro(高能奔騰)、PentiumⅡ(奔騰2代)、PentiumⅢ(奔騰3代)以及Celeron(賽揚),目前名稱并不能反映出同類型中CPU的規格,這點將從Intel正式推出前端總線為133MHz的PⅢ后開始改進,以后只要看見CPU的名稱就可以了解這塊CPU的大致技術特性。另外廠家對每一種CPU包括同名但技術規格不同的產品都另有一個研制代號,例如Intel公司使用0.35和0.25工藝生產的PⅡ就各有一個代號分別為:Klamath和Destrutes。同時Itel每一種名稱的CPU都有還一個專用商標圖案作為標志。AMD和Cyrix公司的情況與Intel相近,它們的每一種CPU也都有一個名稱、代號和標志,但都還沒有正式的中文名稱。2、CPU的內部結構當前我們使用的CPU內部結構實際可分為單總線和雙總線兩種結構,由于CPU內部結構特征決定CPU的封裝形式和安裝規范,所以在此作些簡單的介紹。在Intel公司研制出PentiumPro之前,各種486以上CPU,如經典Pentium內部由主處理器、數學協處理器、控制器、各種寄存器和L1Cache組成。至今為止仍然有大量的CPU繼續以這種內部結構模式進行生產,例如AMD的K6-2、Cyrix的MⅡ以及IDT-C6等CPU。從P6(Pen-tiumPro的研制代號)起,Intel為進一步提高CPU與L2Cache間的數據交換速度,將原來設置在電腦主板上的高速緩存控制電路和L2Cache(二級高速緩存)采用在同一塊硅材料上制作的方法集成到CPU芯片上,這樣CPU內核與高速緩存之間的數據交換就無需經過外部總線而直接通過CPU內部的緩存總線進行,由于CPU內核與內存和CPU與高速緩存之間的數據交換通道分離而形成首創的P6雙總線架構模式(見圖1)。從PentiumPro的實際應用效果看這一技術措施非常成功,是CPU研制技術上的一次重大改進。由于P6雙總線結構的優越性,因此凡是內部具有L2Cache和高速緩存控制器的CPU都由傳統的單總線模式過渡到雙總線模式,例如Intel公司的PⅡ、新賽揚和PⅢ;AMD公司的K6-Ⅲ和K7等。3、CPU的構架和封裝方式CPU架構是按CPU的安裝插座類型和規格確定的。目前常用的CPU按其安裝插座規范可分為Socketx和Slotx兩大架構。其中Socketx架構CPU中又分Socket7和Socket370兩種,分別使用321針的Socket7和370針的Socket370插座進行安裝。Socket7和Socket370插座在外形上非常相似尺寸也相同,但Socket370插座上比Socket7多了一圈針插孔。在Slotx架構CPU中可分為Slot1、Slot2和SlotA三種,分別使用對應規格的Slot槽進行安裝。其中Slot1和SlotA都是242線插槽,但在機械和電氣標準上都不相同,所以互不兼容。Slot2是尺寸較大的插槽,專門用于安裝PⅡ和PⅢ序列中的Xeon。Xeon是一種專用于工作組服務器上的CPU。封裝是CPU生產過程中的最后一道工序,封裝是采用特定的材料將CPU芯片或CPU模塊固化在其中以防損壞的保護措施,一般必須在封裝后CPU才能交付用戶使用。CPU的封裝方式取決于CPU安裝形式和器件集成設計,通常采用Socket插座進行安裝的CPU只能使用PGA(柵格陣列)方式封裝,而采用Slotx槽安裝的CPU則全部采用SEC(單邊接插盒)的形式封裝。目前采用PGA封裝的CPU主要有Intel公司的賽揚,AMD的K6-2、K6-Ⅲ和Cyrix公司的MⅡ,以前賽揚曾采用SEC封裝,現已逐漸全部改用PGA封裝(見圖4)。采用SEC封裝的CPU有Intel的PⅡ、PⅢ和AMD公司的K7。其中Intel的Slot架構CPU實際上分別使用SEPP、SECC和SECC2三種單邊接插盒進行封裝。以上CPU中雖然賽揚和K6-Ⅲ內部分別集成了128KB和256KB的L2Cache和高速緩存控制器,但由于它們是采用在同一片硅材料上一次制造出CPU內核和L2Cache、高速緩存控制器的方法制造,所以它們的體積較小并能采用PGA方式進行封裝。不過賽揚采用PGA封裝的主要原因是降低生產成本,而K6-Ⅲ采用PGA封裝的主要原因則是因為Intel對其開發的Slot1、Slot2和Socket370插座進行專利保護,所以AMD只能沿用Socket7架構和采用PGA封裝方式生產K6-Ⅲ。目前Slot架構的CPU有兩種制造方法,一是將分別制造的CPU內核芯片、高速Cache控制器芯片和L2Cache芯片安裝在一塊PCB(電路板)上,然后再安裝上單邊接插盒和風扇以完成CPU的最終制作。采用這類結構和方法制作的CPU有Intel的PⅡ、PⅢ和AMD的K7。二是將完整的CPU(內含CPU內核、高速Cache控制器芯片和L2Cache芯片)芯片安裝在電路板上,此時電路板純粹只起Slot接口的安裝作用。最后同樣再安裝單邊接插盒和風扇也就形成完整的CPU。采用這種結構和方法制作的CPU只有Intel公司的部分賽揚。