什麼叫CPU?

點擊數: 【字體: 列印文章 查看評論

  簡述

  中央處理器(英文Central Processing Unit,CPU)是一台計算機的運算核心和控制核心。CPU、內部存儲器(即我們俗稱的內存)和輸入/輸出設備是電子計算機三大核心部件。其功能主要是解釋計算機指令以及處理計算機軟體中的數據。CPU由運算器、控制器和寄存器及實現它們之間聯繫的數據、控制及狀態的匯流排構成。差不多所有的CPU的運作原理可分為四個階段:提取(Fetch)、解碼(Decode)、執行(Execute)和寫回(Writeback)。 CPU從存儲器或高速緩衝存儲器中取出指令,放入指令寄存器,並對指令解碼,並執行指令。所謂的計算機的可編程性主要是指對CPU的編程。

  功能

  計算機求解問題是通過執行程序來實現的。程序是由指令構成的序列,執行程序就是按指令序列逐條執行指令。一旦把程序裝入主存儲器(簡稱主存)中,就可以由CPU自動地完成從主存取指令和執行指令的任務。 

  CPU具有以下4個方面的基本功能:

  1. 指令順序控制

  這是指控制程序中指令的執行順序。程序中的各指令之間是有嚴格順序的,必須嚴格按程序規定的順序執行,才能保證計算機工作的正確性。

  2. 操作控制

  一條指令的功能往往是由計算機中的部件執行一序列的操作來實現的。CPU要根據指令的功能,產生相應的操作控制信號,發給相應的部件,從而控制這些部件按指令的要求進行動作。

  3. 時間控制

  時間控制就是對各種操作實施時間上的定時。在一條指令的執行過程中,在什麼時間做什麼操作均應受到嚴格的控制。只有這樣,計算機才能有條不紊地自動工作。

  4. 數據加工

  即對數據進行算術運算和邏輯運算,或進行其他的信息處理。

  CPU從存儲器或高速緩衝存儲器中取出指令,放入指令寄存器,並對指令解碼。它把指令分解成一系列的微操作,然後發出各種控制命令,執行微操作系列,從而完成一條指令的執行。

  指令是計算機規定執行操作的類型和操作數的基本命令。指令是由一個位元組或者多個位元組組成,其中包括操作碼欄位、一個或多個有關操作數地址的欄位以及一些表徵機器狀態的狀態字以及特徵碼。有的指令中也直接包含操作數本身。

  提取

  第一階段,提取,從存儲器或高速緩衝存儲器中檢索指令(為數值或一系列數值)。由程序計數器(Program Counter)指定存儲器的位置。(程序計數器保存供識別目前程序位置的數值。換言之,程序計數器記錄了CPU在目前程序里的蹤跡。)

  提取指令之後,程序計數器根據指令長度增加存儲器單元。指令的提取必須常常從相對較慢的存儲器尋找,因此導致CPU等候指令的送入。這個問題主要被論及在現代處理器的快取和管線化架構。

  解碼

  CPU根據存儲器提取到的指令來決定其執行行為。在解碼階段,指令被拆解為有意義的片斷。根據CPU的指令集架構(ISA)定義將數值解譯為指令。一部分的指令數值為運算碼(OPCode),其指示要進行哪些運算。其它的數值通常供給指令必要的信息,諸如一個加法(Addition)運算的運算目標。這樣的運算目標也許提供一個常數值(即立即值),或是一個空間的定址值:暫存器或存儲器位址,以定址模式決定。在舊的設計中,CPU里的指令解碼部分是無法改變的硬體設備。不過在眾多抽象且複雜的CPU和指令集架構中,一個微程序時常用來幫助轉換指令為各種形態的訊號。這些微程序在已成品的CPU中往往可以重寫,方便變更解碼指令。

  執行

  在提取和解碼階段之後,緊接著進入執行階段。該階段中,連接到各種能夠進行所需運算的CPU部件。

  例如,要求一個加法運算,算術邏輯單元(ALU,Arithmetic Logic Unit)將會連接到一組輸入和一組輸出。輸入提供了要相加的數值,而輸出將含有總和的結果。ALU內含電路系統,易於輸出端完成簡單的普通運算和邏輯運算(比如加法和位元運算)。如果加法運算產生一個對該CPU處理而言過大的結果,在標誌暫存器里可能會設置運算溢出(Arithmetic Overflow)標誌。

  寫回

  最終階段,寫回,以一定格式將執行階段的結果簡單的寫回。運算結果經常被寫進CPU內部的暫存器,以供隨後指令快速存取。在其它案例中,運算結果可能寫進速度較慢,但容量較大且較便宜的主記憶體中。某些類型的指令會操作程序計數器,而不直接產生結果。這些一般稱作“跳轉”(Jumps),並在程式中帶來循環行為、條件性執行(透過條件跳轉)和函式。許多指令會改變標誌暫存器的狀態位元。這些標誌可用來影響程式行為,緣由於它們時常顯出各種運算結果。例如,以一個“比較”指令判斷兩個值大小,根據比較結果在標誌暫存器上設置一個數值。這個標誌可藉由隨後跳轉指令來決定程式動向。在執行指令並寫回結果之後,程序計數器值會遞增,反覆整個過程,下一個指令周期正常的提取下一個順序指令。如果完成的是跳轉指令,程序計數器將會修改成跳轉到的指令位址,且程序繼續正常執行。許多複雜的CPU可以一次提取多個指令、解碼,並且同時執行。這個部分一般涉及“經典RISC管線”,那些實際上是在眾多使用簡單CPU的電子裝置中快速普及(常稱為微控制(Microcontrollers))。

  結構  

  CPU包括運算邏輯部件、寄存器部件和控制部件等。

  運算邏輯部件

  運算邏輯部件,可以執行定點或浮點算術運算操作、移位操作以及邏輯操作,也可執行地址運算和轉換。

  寄存器部件

  寄存器部件,包括通用寄存器、專用寄存器和控制寄存器。

  32位CPU的寄存器

  通用寄存器又可分定點數和浮點數兩類,它們用來保存指令執行過程中臨時存放的寄存器操作數和中間(或最終)的操作結果。

  通用寄存器是中央處理器的重要組成部分,大多數指令都要訪問到通用寄存器。通用寄存器的寬度決定計算機內部的數據通路寬度,其埠數目往往可影響內部操作的并行性。

  專用寄存器是為了執行一些特殊操作所需用的寄存器。

  控制寄存器通常用來指示機器執行的狀態,或者保持某些指針,有處理狀態寄存器、地址轉換目錄的基地址寄存器、特權狀態寄存器、條件碼寄存器、處理異常事故寄存器以及檢錯寄存器等。

  有的時候,中央處理器中還有一些緩存,用來暫時存放一些數據指令,緩存越大,說明CPU的運算速度越快,目前市場上的中高端中央處理器都有2M左右的二級緩存,高端中央處理器有4M左右的二級緩存。

  控制部件

  控制部件,主要是負責對指令解碼,並且發出為完成每條指令所要執行的各個操作的控制信號。   其結構有兩種:一種是以微存儲為核心的微程序控制方式;一種是以邏輯硬布線結構為主的控制方式。   微存儲中保持微碼,每一個微碼對應於一個最基本的微操作,又稱微指令;各條指令是由不同序列的微碼組成,這種微碼序列構成微程序。中央處理器在對指令解碼以後,即發出一定時序的控制信號,按給定序列的順序以微周期為節拍執行由這些微碼確定的若干個微操作,即可完成某條指令的執行。

  簡單指令是由(3~5)個微操作組成,複雜指令則要由幾十個微操作甚至幾百個微操作組成。

  邏輯硬布線控制器則完全是由隨機邏輯組成。指令解碼后,控制器通過不同的邏輯門的組合,發出不同序列的控制時序信號,直接去執行一條指令中的各個操作。

  發展歷史

  計算機的發展主要表現在其核心部件——微處理器的發展上,每當一款新型的微處理器出現時,就會帶動計算機系統的其他部件的相應發展,如計算機體系結構的進一步優化,存儲器存取容量的不斷增大、存取速度的不斷提高,外圍設備的不斷改進以及新設備的不斷出現等。

  根據微處理器的字長和功能,可將其發展劃分為以下幾個階段。

  第1階段

  第1階段(1971——1973年)是4位和8位低檔微處理器時代,通常稱為第1代,其典型產品是Intel4004和Intel8008微處理器和分別由它們組成的MCS-4和MCS-8微機。基本特點是採用PMOS工藝,集成度低(4000個晶體管/片),系統結構和指令系統都比較簡單,主要採用機器語言或簡單的彙編語言,指令數目較少(20多條指令),基本指令周期為20~50μs,用於簡單的控制場合。

  Intel在1969年為日本計算機製造商Busicom的一項專案,著手開發第一款微處理器,為一系列可程式化計算機研發多款晶片。最終,英特爾在1971年11月15日向全球市場推出4004微處理器,當年Intel 4004處理器每顆售價為200美元。4004 是英特爾第一款微處理器,為日後開發系統智能功能以及個人電腦奠定發展基礎,其晶體管數目約為2300顆。

  翌年,Intel推出8008微處理器,其運算威力是4004的兩倍。Radio Electronics於1974年刊載一篇文章介紹一部採用8008的Mark-8裝置,被公認是第一部家用電腦,在當時的標準來看,這部電腦在製造、維護、與運作方面都相當困難。Intel 8008晶體管數目約為3500顆。

  第2階段

  第2階段(1971——1977年)是8位中高檔微處理器時代,通常稱為第2代,其典型產品是Intel8080/8085、Motorola公司、Zilog公司的Z80等。它們的特點是採用NMOS工藝,集成度提高約4倍,運算速度提高約10~15倍(基本指令執行時間1~2μs),指令系統比較完善,具有典型的計算機體系結構和中斷、DMA等控制功能。軟體方面除了彙編語言外,還有BASIC、FORTRAN等高級語言和相應的解釋程序和編譯程序,在後期還出現了操作系統。

  1974年,Intel推出8080處理器,並作為Altair個人電腦的運算核心,Altair在《星艦奇航》電視影集中是企業號太空船的目的地。電腦迷當時可用395美元買到一組Altair的套件。它在數個月內賣出數萬套,成為史上第一款下訂單后製造的機種。Intel 8080晶體管數目約為6千顆。

  第3階段

  第3階段(1978——1984年)是16位微處理器時代,通常稱為第3代,其典型產品是Intel公司的8086/8088,Motorola公司的M68000,Zilog公司的Z8000等微處理器。其特點是採用HMOS工藝,集成度(20000~70000晶體管/片)和運算速度(基本指令執行時間是0.5μs)都比第2代提高了一個數量級。指令系統更加豐富、完善,採用多級中斷、多種定址方式、段式存儲機構、硬體乘除部件,並配置了軟體系統。這一時期著名微機產品有IBM公司的個人計算機。1981年IBM公司推出的個人計算機採用8088CPU。緊接著1982年又推出了擴展型的個人計算機IBM PC/XT,它對內存進行了擴充,並增加了一個硬磁碟驅動器。   80286(也被稱為286)是英特爾首款能執行所有舊款處理器專屬軟體的處理器,這種軟體相容性之後成為英特爾全系列微處理器的註冊商標,在6年的銷售期中,估計全球各地共安裝了1500萬部286個人電腦。Intel 80286處理器晶體管數目為13萬4千顆。1984年,IBM公司推出了以80286處理器為核心組成的16位增強型個人計算機IBM PC/AT。由於IBM公司在發展個人計算機時採用 了技術開放的策略,使個人計算機風靡世界。

  第4階段

  第4階段(1985——1992年)是32位微處理器時代,又稱為第4代。其典型產品是Intel公司的80386/80486,Motorola公司的M69030/68040等。其特點是採用HMOS或CMOS工藝,集成度高達100萬個晶體管/片,具有32位地址線和32位數據匯流排。每秒鐘可完成600萬條指令(Million Instructions Per Second,MIPS)。微型計算機的功能已經達到甚至超過超級小型計算機,完全可以勝任多任務、多用戶的作業。同期,其他一些微處理器生產廠商(如AMD、TEXAS等)也推出了80386/80486系列的晶元。 Intel 80386微處理器內含275,000 個晶體管—比當初的4004多了100倍以上,這款32位元處理器首次支持多工任務設計,能同時執行多個程序。Intel 80386晶體管數目約為27萬5千顆。

  Intel 80486處理器世代讓電腦從命令列轉型至點選式(point to click)的圖形化操作環境,開始能以大幅加快的速度進行桌面排版作業。”Intel 80486處理器率先內建數學協同處理器,由於能扮演中央處理器處理複雜數學運算,因此能加快整體運算的速度。Intel 80486晶體管數目為120萬顆。

  第5階段

  第5階段(1993-2005年)是奔騰(pentium)系列微處理器時代,通常稱為第5代。典型產品是Intel公司的奔騰系列晶元及與之兼容的AMD的K6系列微處理器晶元。內部採用了超標量指令流水線結構,並具有相互獨立的指令和數據高速緩存。隨著MMX(MultiMediaeXtended)微處理器的出現,使微機的發展在網路化、多媒體化和智能化等方面跨上了更高的台階。

  1997年推出的Pentium II處理器結合了Intel MMX技術,能以極高的效率處理影片、音效、以及繪圖資料,首次採用Single Edge Contact (S.E.C) 匣型封裝,內建了高速快取記憶體。這款晶片讓電腦使用者擷取、編輯、以及透過網際網路和親友分享數位相片、編輯與新增文字、音樂或製作家庭電影的轉場效果、使用視訊電話以及透過標準電話線與網際網路傳送影片,Intel Pentium II處理器晶體管數目為750萬顆。   Pentium III 處理器加入70個新指令,加入網際網路串流SIMD延伸集稱為MMX,能大幅提升先進影像、3D、串流音樂、影片、語音辨識等應用的性能,它能大幅提升網際網路的使用經驗,讓使用者能瀏覽逼真的線上博物館與商店,以及下載高品質影片,Intel首次導入0.25微米技術,Intel Pentium III晶體管數目約為950萬顆。

  2000年推出的Pentium 4處理器內建了4200萬個晶體管,以及採用0.18微米的電路,Pentium 4初期推出版本的速度就高達1.5GHz,晶體管數目約為4200萬顆,翌年8月,Pentium 4 處理理達到2 GHz的里程碑。2002年英特爾推出新款Intel Pentium 4處理器內含創新的Hyper-Threading(HT)超線程技術。超線程技術打造出新等級的高性能桌上型電腦,能同時快速執行多項運算應用,或針對支持多重線程的軟體帶來更高的性能。超線程技術讓電腦性能增加25%。除了為桌上型電腦使用者提供超線程技術外,英特爾也達成另一項電腦里程碑,就是推出運作頻率達3.06 GHz的Pentium 4處理器,是首款每秒執行30億個運算周期的商業微處理器,如此優異的性能要歸功於當時業界最先進的0.13微米製程技術,翌年,內建超線程技術的Intel Pentium 4處理器頻率達到3.2 GHz。

  第6階段

  第6階段(2005年至今)是酷睿(core)系列微處理器時代,通常稱為第6代。“酷睿”是一款領先節能的新型微架構,設計的出發點是提供卓然出眾的性能和能效,提高每瓦特性能,也就是所謂的能效比。早期的酷睿是基於筆記本處理器的。 酷睿2:英文名稱為Core 2 Duo,是是英特爾在2006年推出的新一代基於Core微架構的產品體系統稱。於2006年7月27日發布。酷睿2是一個跨平台的構架體系,包括伺服器版、桌面版、移動版三大領域。其中,伺服器版的開發代號為Woodcrest,桌面版的開發代號為Conroe,移動版的開發代號為Merom。

   酷睿2處理器的Core微架構是Intel的以色列設計團隊在Yonah微架構基礎之上改進而來的新一代英特爾架構。最顯著的變化在於在各個關鍵部分進行強化。為了提高兩個核心的內部數據交換效率採取共享式二級緩存設計,2個核心共享高達4MB的二級緩存。

  SNB(Sandy Bridge)是英特爾在2011年初發布的新一代處理器微架構,這一構架的最大意義莫過於重新定義了“整合平台”的概念,與處理器“無縫融合”的“核芯顯卡”終結了“集成顯卡”的時代。這一創舉得益於全新的32nm製造工藝。由於Sandy Bridge 構架下的處理器採用了比之前的45nm工藝更加先進的32nm製造工藝,理論上實現了CPU功耗的進一步降低,及其電路尺寸和性能的顯著優化,這就為將整合圖形核心(核芯顯卡)與CPU封裝在同一塊基板上創造了有利條件。此外,第二代酷睿還加入了全新的高清視頻處理單元。視頻轉解碼速度的高與低跟處理器是有直接關係的,由於高清視頻處理單元的加入,新一代酷睿處理器的視頻處理時間比老款處理器至少提升了30%。

  在2012年4月24日下午北京天文館,intel正式發布了Ivy Bridge(IVB)處理器。22nm Ivy Bridge會將執行單元的數量翻一番,達到最多24個,自然會帶來性能上的進一步躍進。Ivy Bridge會加入對DX11的支持的集成顯卡。另外新加入的XHCI USB 3.0控制器則共享其中四條通道,從而提供最多四個USB 3.0,從而支持原生USB3.0。cpu的製作採用3D晶體管技術的CPU耗電量會減少一半。

  性能指標  

  計算機的性能在很大程度上由CPU的性能所決定,而CPU的性能主要體現在其運行程序的速度上。影響運行速度的性能指標包括CPU的工作頻率、Cache容量、指令系統和邏輯結構等參數。

  主頻

  主頻也叫時鐘頻率,單位是兆赫(MHz)或千兆赫(GHz),用來表示CPU的運算、處理數據的速度。通常,主頻越高,CPU處理數據的速度就越快。

  CPU的主頻=外頻×倍頻係數。主頻和實際的運算速度存在一定的關係,但並不是一個簡單的線性關係。所以,CPU的主頻與CPU實際的運算能力是沒有直接關係的,主頻表示在CPU內數字脈衝信號震蕩的速度。在Intel的處理器產品中,也可以看到這樣的例子:1 GHz Itanium晶元能夠表現得差不多跟2.66 GHz至強(Xeon)/Opteron一樣快,或是1.5 GHz Itanium 2大約跟4 GHz Xeon/Opteron一樣快。CPU的運算速度還要看CPU的流水線、匯流排等各方面的性能指標。

  外頻

  外頻是CPU的基準頻率,單位是MHz。CPU的外頻決定著整塊主板的運行速度。通俗地說,在台式機中,所說的超頻,都是超CPU的外頻(當然一般情況下,CPU的倍頻都是被鎖住的)相信這點是很好理解的。但對於伺服器CPU來講,超頻是絕對不允許的。前面說到CPU決定著主板的運行速度,兩者是同步運行的,如果把伺服器CPU超頻了,改變了外頻,會產生非同步運行,(台式機很多主板都支持非同步運行)這樣會造成整個伺服器系統的不穩定。

  目前的絕大部分電腦系統中外頻與主板前端匯流排不是同步速度的,而外頻與前端匯流排(FSB)頻率又很容易被混為一談。

  前端匯流排(FSB)頻率

  前端匯流排(FSB)是將CPU連接到北橋晶元的匯流排。前端匯流排(FSB)頻率(即匯流排頻率)是直接影響CPU與內存直接數據交換速度。有一條公式可以計算,即數據帶寬=(匯流排頻率×數據位寬)/8,數據傳輸最大帶寬取決於所有同時傳輸的數據的寬度和傳輸頻率。比方,現在的支持64位的至強Nocona,前端匯流排是800MHz,按照公式,它的數據傳輸最大帶寬是6.4GB/秒。

  外頻與前端匯流排(FSB)頻率的區別:前端匯流排的速度指的是數據傳輸的速度,外頻是CPU與主板之間同步運行的速度。也就是說,100MHz外頻特指數字脈衝信號在每秒鐘震蕩一億次;而100MHz前端匯流排指的是每秒鐘CPU可接受的數據傳輸量是100MHz×64bit&divIDE;8bit/Byte=800MB/s。

  其實現在“HyperTransport”構架的出現,讓這種實際意義上的前端匯流排(FSB)頻率發生了變化。IA-32架構必須有三大重要的構件:內存控制器Hub (MCH),I/O控制器Hub和PCI Hub,像Intel很典型的晶元組Intel 7501.Intel7505晶元組,為雙至強處理器量身定做的,它們所包含的MCH為CPU提供了頻率為533MHz的前端匯流排,配合DDR內存,前端匯流排帶寬可達到4.3GB/秒。但隨著處理器性能不斷提高同時給系統架構帶來了很多問題。而“HyperTransport”構架不但解決了問題,而且更有效地提高了匯流排帶寬,比方AMD Opteron處理器,靈活的HyperTransport I/O匯流排體系結構讓它整合了內存控制器,使處理器不通過系統匯流排傳給晶元組而直接和內存交換數據。這樣的話,前端匯流排(FSB)頻率在AMD Opteron處理器就不知道從何談起了。  

  倍頻係數

  倍頻係數是指CPU主頻與外頻之間的相對比例關係。在相同的外頻下,倍頻越高CPU的頻率也越高。但實際上,在相同外頻的前提下,高倍頻的CPU本身意義並不大。這是因為CPU與系統之間數據傳輸速度是有限的,一味追求高主頻而得到高倍頻的CPU就會出現明顯的“瓶頸”效應-CPU從系統中得到數據的極限速度不能夠滿足CPU運算的速度。一般除了工程樣版的Intel的CPU都是鎖了倍頻的,少量的如Intel 酷睿2核心的奔騰雙核E6500K和一些至尊版的CPU不鎖倍頻,而AMD之前都沒有鎖,現在AMD推出了黑盒版CPU(即不鎖倍頻版本,用戶可以自由調節倍頻,調節倍頻的超頻方式比調節外頻穩定得多)。

  緩存

  緩存大小也是CPU的重要指標之一,而且緩存的結構和大小對CPU速度的影響非常大,CPU內緩存的運行頻率極高,一般是和處理器同頻運作,工作效率遠遠大於系統內存和硬碟。實際工作時,CPU往往需要重複讀取同樣的數據塊,而緩存容量的增大,可以大幅度提升CPU內部讀取數據的命中率,而不用再到內存或者硬碟上尋找,以此提高系統性能。但是由於CPU晶元面積和成本的因素來考慮,緩存都很小。

  L1 Cache(一級緩存)是CPU第一層高速緩存,分為數據緩存和指令緩存。內置的L1高速緩存的容量和結構對CPU的性能影響較大,不過高速緩衝存儲器均由靜態RAM組成,結構較複雜,在CPU管芯面積不能太大的情況下,L1級高速緩存的容量不可能做得太大。一般伺服器CPU的L1緩存的容量通常在32-256KB。

  L2 Cache(二級緩存)是CPU的第二層高速緩存,分內部和外部兩種晶元。內部的晶元二級緩存運行速度與主頻相同,而外部的二級緩存則只有主頻的一半。L2高速緩存容量也會影響CPU的性能,原則是越大越好,以前家庭用CPU容量最大的是512KB,現在筆記本電腦中也可以達到2M,而伺服器和工作站上用CPU的L2高速緩存更高,可以達到8M以上。

  L3 Cache(三級緩存),分為兩種,早期的是外置,現在的都是內置的。而它的實際作用即是,L3緩存的應用可以進一步降低內存延遲,同時提升大數據量計算時處理器的性能。降低內存延遲和提升大數據量計算能力對遊戲都很有幫助。而在伺服器領域增加L3緩存在性能方面仍然有顯著的提升。比方具有較大L3緩存的配置利用物理內存會更有效,故它比較慢的磁碟I/O子系統可以處理更多的數據請求。具有較大L3存的處理器提供更有效的文件系統緩存行為及較短消息和處理器隊列長度。

  其實最早的L3緩存被應用在AMD發布的K6-III處理器上,當時的L3緩存受限於製造工藝,並沒有被集成進晶元內部,而是集成在主板上。在只能夠和系統匯流排頻率同步的L3緩存同主內存其實差不了多少。後來使用L3緩存的是英特爾為伺服器市場所推出的Itanium處理器。接著就是P4EE和至強MP。Intel還打算推出一款9MB L3緩存的Itanium2處理器,和以後24MB L3緩存的雙核心Itanium2處理器。

  但基本上L3緩存對處理器的性能提高顯得不是很重要,比方配備1MB L3緩存的Xeon MP處理器卻仍然不是Opteron的對手,由此可見前端匯流排的增加,要比緩存增加帶來更有效的性能提升。

  CPU擴展指令集

  CPU依靠指令來自計算和控制系統,每款CPU在設計時就規定了一系列與其硬體電路相配合的指令系統。指令的強弱也是CPU的重要指標,指令集是提高微處理器效率的最有效工具之一。

  從現階段的主流體系結構講,指令集可分為複雜指令集和精簡指令集兩部分(指令集共有四個種類),而從具體運用看,如Intel的MMX(Multi Media Extended,此為AMD猜測的全稱,Intel並沒有說明詞源)、SSE、SSE2(Streaming-Single instruction multiple data-Extensions 2)、SSE3、SSE4系列和AMD的3DNow!等都是CPU的擴展指令集,分別增強了CPU的多媒體、圖形圖象和Internet等的處理能力。   通常會把CPU的擴展指令集稱為”CPU的指令集”。SSE3指令集也是目前規模最小的指令集,此前MMX包含有57條命令,SSE包含有50條命令,SSE2包含有144條命令,SSE3包含有13條命令。

  CPU內核和I/O工作電壓

  從586CPU開始,CPU的工作電壓分為內核電壓和I/O電壓兩種,通常CPU的核心電壓小於等於I/O電壓。其中內核電壓的大小是根據CPU的生產工藝而定,一般製作工藝越小,內核工作電壓越低;I/O電壓一般都在1.6~5V。低電壓能解決耗電過大和發熱過高的問題。

  技術架構

  製造工藝

  製造工藝的微米是指IC內電路與電路之間的距離。製造工藝的趨勢是向密集度愈高的方向發展。密度愈高的IC電路設計,意味著在同樣大小面積的IC中,可以擁有密度更高、功能更複雜的電路設計。現在主要的180nm、130nm、90nm、65nm、45納米。intel已經於2010年發布32納米的製造工藝的酷睿i3/酷睿i5/酷睿i7系列並於2012年4月發布了22納米酷睿i3/i5/i7系列。並且已有15nm產品的計劃。而AMD則表示、自己的產品將會直接跳過32nm工藝(2010年第三季度生產少許32nm產品、如Orochi、Llano)於2011年中期初發布28nm的產品(APU)
 

  指令集

  ⑴CISC指令集

  CISC指令集,也稱為複雜指令集,英文名是CISC,(Complex Instruction Set Computer的縮寫)。在CISC微處理器中,程序的各條指令是按順序串列執行的,每條指令中的各個操作也是按順序串列執行的。順序執行的優點是控制簡單,但計算機各部分的利用率不高,執行速度慢。其實它是英特爾生產的X86系列(也就是IA-32架構)CPU及其兼容CPU,如AMD、VIA的。即使是現在新起的X86-64(也說成AMD64)都是屬於CISC的範疇。

  要知道什麼是指令集還要從當今的X86架構的CPU說起。X86指令集是Intel為其第一塊16位CPU(i8086)專門開發的,IBM1981年推出的世界第一台PC機中的CPU-i8088(i8086簡化版)使用的也是X86指令,同時電腦中為提高浮點數據處理能力而增加了X87晶元,以後就將X86指令集和X87指令集統稱為X86指令集。

  雖然隨著CPU技術的不斷發展,Intel陸續研製出更新型的i80386.i80486直到過去的PII至強、PIII至強、Pentium 3,Pentium 4系列,最後到今天的酷睿2系列、至強(不包括至強Nocona),但為了保證電腦能繼續運行以往開發的各類應用程序以保護和繼承豐富的軟體資源,所以Intel公司所生產的所有CPU仍然繼續使用X86指令集,所以它的CPU仍屬於X86系列。由於Intel X86系列及其兼容CPU(如AMD Athlon MP、)都使用X86指令集,所以就形成了今天龐大的X86系列及兼容CPU陣容。x86CPU目前主要有intel的伺服器CPU和AMD的伺服器CPU兩類。

  ⑵RISC指令集

  RISC是英文“Reduced Instruction Set Computing ”的縮寫,中文意思是“精簡指令集”。它是在CISC指令系統基礎上發展起來的,有人對CISC機進行測試表明,各種指令的使用頻度相當懸殊,最常使用的是一些比較簡單的指令,它們僅占指令總數的20%,但在程序中出現的頻度卻佔80%。複雜的指令系統必然增加微處理器的複雜性,使處理器的研製時間長,成本高。並且複雜指令需要複雜的操作,必然會降低計算機的速度。基於上述原因,20世紀80年代RISC型CPU誕生了,相對於CISC型CPU,RISC型CPU不僅精簡了指令系統,還採用了一種叫做“超標量和超流水線結構”,大大增加了并行處理能力。RISC指令集是高性能CPU的發展方向。它與傳統的CISC(複雜指令集)相對。相比而言,RISC的指令格式統一,種類比較少,定址方式也比複雜指令集少。當然處理速度就提高很多了。目前在中高檔伺服器中普遍採用這一指令系統的CPU,特別是高檔伺服器全都採用RISC指令系統的CPU。RISC指令系統更加適合高檔伺服器的操作系統UNIX,現在Linux也屬於類似UNIX的操作系統。RISC型CPU與Intel和AMD的CPU在軟體和硬體上都不兼容。

  目前,在中高檔伺服器中採用RISC指令的CPU主要有以下幾類:PowerPC處理器、SPARC處理器、PA-RISC處理器、MIPS處理器、Alpha處理器。

  ⑶IA-64

  EPIC(Explicitly Parallel Instruction Computers,精確并行指令計算機)是否是RISC和CISC體系的繼承者的爭論已經有很多,單以EPIC體系來說,它更像Intel的處理器邁向RISC體系的重要步驟。從理論上說,EPIC體系設計的CPU,在相同的主機配置下,處理Windows的應用軟體比基於Unix下的應用軟體要好得多。

  Intel採用EPIC技術的伺服器CPU是安騰Itanium(開發代號即Merced)。它是64位處理器,也是IA-64系列中的第一款。微軟也已開發了代號為Win64的操作系統,在軟體上加以支持。在Intel採用了X86指令集之後,它又轉而尋求更先進的64-bit微處理器,Intel這樣做的原因是,它們想擺脫容量巨大的x86架構,從而引入精力充沛而又功能強大的指令集,於是採用EPIC指令集的IA-64架構便誕生了。IA-64 在很多方面來說,都比x86有了長足的進步。突破了傳統IA32架構的許多限制,在數據的處理能力,系統的穩定性、安全性、可用性、可觀理性等方面獲得了突破性的提高。

  IA-64微處理器最大的缺陷是它們缺乏與x86的兼容,而Intel為了IA-64處理器能夠更好地運行兩個朝代的軟體,它在IA-64處理器上(Itanium、Itanium2 ……)引入了x86-to-IA-64的解碼器,這樣就能夠把x86指令翻譯為IA-64指令。這個解碼器並不是最有效率的解碼器,也不是運行x86代碼的最好途徑(最好的途徑是直接在x86處理器上運行x86代碼),因此Itanium 和Itanium2在運行x86應用程序時候的性能非常糟糕。這也成為X86-64產生的根本原因。

  超流水線與超標量

  在解釋超流水線與超標量前,先了解流水線(Pipeline)。流水線是Intel首次在486晶元中開始使用的。流水線的工作方式就象工業生產上的裝配流水線。在CPU中由5-6個不同功能的電路單元組成一條指令處理流水線,然後將一條X86指令分成5-6步后再由這些電路單元分別執行,這樣就能實現在一個CPU時鐘周期完成一條指令,因此提高CPU的運算速度。經典奔騰每條整數流水線都分為四級流水,即指令預取、解碼、執行、寫回結果,浮點流水又分為八級流水。超標量是通過內置多條流水線來同時執行多個處理器,其實質是以空間換取時間。而超流水線是通過細化流水、提高主頻,使得在一個機器周期內完成一個甚至多個操作,其實質是以時間換取空間。例如Pentium 4的流水線就長達20級。將流水線設計的步(級)越長,其完成一條指令的速度越快,因此才能適應工作主頻更高的CPU。但是流水線過長也帶來了一定副作用,很可能會出現主頻較高的CPU實際運算速度較低的現象,Intel的奔騰4就出現了這種情況,雖然它的主頻可以高達1.4G以上,但其運算性能卻遠遠比不上AMD 1.2G的速龍甚至奔騰III。

  封裝形式

  CPU封裝是採用特定的材料將CPU晶元或CPU模塊固化在其中以防損壞的保護措施,一般必須在封裝后CPU才能交付用戶使用。CPU的封裝方式取決於CPU安裝形式和器件集成設計,從大的分類來看通常採用Socket插座進行安裝的CPU使用PGA(柵格陣列)方式封裝,而採用Slot x槽安裝的CPU則全部採用SEC(單邊接插盒)的形式封裝。現在還有PLGA(Plastic Land Grid Array)、OLGA(Organic Land Grid Array)等封裝技術。由於市場競爭日益激烈,目前CPU封裝技術的發展方向以節約成本為主。

  多線程

  同時多線程Simultaneous Multithreading,簡稱SMT。SMT可通過複製處理器上的結構狀態,讓同一個處理器上的多個線程同步執行並共享處理器的執行資源,可最大限度地實現寬發射、亂序的超標量處理,提高處理器運算部件的利用率,緩和由於數據相關或Cache未命中帶來的訪問內存延時。當沒有多個線程可用時,SMT處理器幾乎和傳統的寬發射超標量處理器一樣。SMT最具吸引力的是只需小規模改變處理器核心的設計,幾乎不用增加額外的成本就可以顯著地提升效能。多線程技術則可以為高速的運算核心準備更多的待處理數據,減少運算核心的閑置時間。這對於桌面低端系統來說無疑十分具有吸引力。Intel從3.06GHz Pentium 4開始,所有處理器都將支持SMT技術。

  多核心

  多核心,也指單晶元多處理器(Chip Multiprocessors,簡稱CMP)。CMP是由美國斯坦福大學提出的,其思想是將大規模并行處理器中的SMP(對稱多處理器)集成到同一晶元內,各個處理器并行執行不同的進程。這種依靠多個CPU同時并行地運行程序是實現超高速計算的一個重要方向,稱為并行處理。與CMP比較,SMT處理器結構的靈活性比較突出。但是,當半導體工藝進入0.18微米以後,線延時已經超過了門延遲,要求微處理器的設計通過劃分許多規模更小、局部性更好的基本單元結構來進行。相比之下,由於CMP結構已經被劃分成多個處理器核來設計,每個核都比較簡單,有利於優化設計,因此更有發展前途。目前,IBM 的Power 4晶元和Sun的MAJC5200晶元都採用了CMP結構。多核處理器可以在處理器內部共享緩存,提高緩存利用率,同時簡化多處理器系統設計的複雜度。但這並不是說明,核心越多,性能越高,比如說16核的CPU就沒有8核的CPU運算速度快,因為核心太多,而不能合理進行分配,所以導致運算速度減慢。在買電腦時請酌情選擇。2005年下半年,Intel和AMD的新型處理器也將融入CMP結構。新安騰處理器開發代碼為Montecito,採用雙核心設計,擁有最少18MB片內緩存,採取90nm工藝製造。它的每個單獨的核心都擁有獨立的L1,L2和L3 cache,包含大約10億支晶體管。

  SMP

  SMP(Symmetric Multi-Processing),對稱多處理結構的簡稱,是指在一個計算機上彙集了一組處理器(多CPU),各CPU之間共享內存子系統以及匯流排結構。在這種技術的支持下,一個伺服器系統可以同時運行多個處理器,並共享內存和其他的主機資源。像雙至強,也就是所說的二路,這是在對稱處理器系統中最常見的一種(至強MP可以支持到四路,AMD Opteron可以支持1-8路)。也有少數是16路的。但是一般來講,SMP結構的機器可擴展性較差,很難做到100個以上多處理器,常規的一般是8個到16個,不過這對於多數的用戶來說已經夠用了。在高性能伺服器和工作站級主板架構中最為常見,像UNIX伺服器可支持最多256個CPU的系統。

  構建一套SMP系統的必要條件是:支持SMP的硬體包括主板和CPU;支持SMP的系統平台,再就是支持SMP的應用軟體。為了能夠使得SMP系統發揮高效的性能,操作系統必須支持SMP系統,如WINNT、LINUX、以及UNIX等等32位操作系統。即能夠進行多任務和多線程處理。多任務是指操作系統能夠在同一時間讓不同的CPU完成不同的任務;多線程是指操作系統能夠使得不同的CPU并行的完成同一個任務。   要組建SMP系統,對所選的CPU有很高的要求,首先、CPU內部必須內置APIC(Advanced Programmable Interrupt Controllers)單元。Intel 多處理規範的核心就是高級可編程中斷控制器(Advanced Programmable Interrupt Controllers–APICs)的使用;再次,相同的產品型號,同樣類型的CPU核心,完全相同的運行頻率;最後,儘可能保持相同的產品序列編號,因為兩個生產批次的CPU作為雙處理器運行的時候,有可能會發生一顆CPU負擔過高,而另一顆負擔很少的情況,無法發揮最大性能,更糟糕的是可能導致死機。

  NUMA技術

  NUMA即非一致訪問分佈共享存儲技術,它是由若干通過高速專用網路連接起來的獨立節點構成的系統,各個節點可以是單個的CPU或是SMP系統。在NUMA中,Cache 的一致性有多種解決方案,一般採用硬體技術實現對cache的一致性維護,通常需要操作系統針對NUMA訪存不一致的特性(本地內存和遠端內存訪存延遲和帶寬的不同)進行特殊優化以提高效率,或採用特殊軟體編程方法提高效率。NUMA系統的例子。這裡有3個SMP模塊用高速專用網路聯起來,組成一個節點,每個節點可以有12個CPU。像Sequent的系統最多可以達到64個CPU甚至256個CPU。顯然,這是在SMP的基礎上,再用NUMA的技術加以擴展,是這兩種技術的結合。

  亂序執行技術

  亂序執行(out-of-orderexecution),是指CPU允許將多條指令不按程序規定的順序分開發送給各相應電路單元處理的技術。這樣將根據個電路單元的狀態和各指令能否提前執行的具體情況分析后,將能提前執行的指令立即發送給相應電路單元執行,在這期間不按規定順序執行指令,然後由重新排列單元將各執行單元結果按指令順序重新排列。採用亂序執行技術的目的是為了使CPU內部電路滿負荷運轉並相應提高了CPU的運行程序的速度。

  分枝技術

  (branch)指令進行運算時需要等待結果,一般無條件分枝只需要按指令順序執行,而條件分枝必須根據處理后的結果,再決定是否按原先順序進行。

  CPU內部的內存控制器

  許多應用程序擁有更為複雜的讀取模式(幾乎是隨機地,特別是當cache hit不可預測的時候),並且沒有有效地利用帶寬。典型的這類應用程序就是業務處理軟體,即使擁有如亂序執行(out of order execution)這樣的CPU特性,也會受內存延遲的限制。這樣CPU必須得等到運算所需數據被除數裝載完成才能執行指令(無論這些數據來自CPU cache還是主內存系統)。當前低段系統的內存延遲大約是120-150ns,而CPU速度則達到了3GHz以上,一次單獨的內存請求可能會浪費200-300次CPU循環。即使在緩存命中率(cache hit rate)達到99%的情況下,CPU也可能會花50%的時間來等待內存請求的結束-比如因為內存延遲的緣故。

  在處理器內部整合內存控制器,使得北橋晶元將變得不那麼重要,改變了處理器訪問主存的方式,有助於提高帶寬、降低內存延時和提升處理器性製造工藝:Intel的I5可以達到32納米,在將來的CPU製造工藝可以達到22納米。


建站不易,感謝您的打賞,數額隨意,我會更加努力的^O^
支付寶打賞微信打賞
關於我們 |  站點地圖 |  聯繫方式 |  投稿指南 |  廣告服務 

Copyright © 2005 dn580.com Inc. All rights reserved. 永乐国际 版權所有

手機:15871451580 郵編:430000 EMail:fuanping@163.com

鄂ICP備12003384