著名廠商 1·Intel公司
Intel是生產
CPU 的老大哥,它占有大約80%的市場份額,Intel生產的CPU就成了事實上的x86CPU技術規範和標準。最新的
酷睿2 成為CPU的首選。
AMD融聚未來 2·AMD公司
除了Intel公司外,最有力的挑戰的就是AMD公司。AMD公司專門為計算機、通信和消費電子行業設計和製造各種創新的
微處理器 (
CPU 、
GPU 、
APU 、主機板晶片組、電視卡晶片等)、
快閃記憶體 和低功率處理器解決方案,AMD 致力為技術用戶——從企業、政府機構到個人消費者——提供基於標準的、以客戶為中心的解決方案,AMD是目前業內唯一一個可以提供高性能CPU、高性能獨立顯示卡GPU、主機板晶片組三大組件的半導體公司,為了明確其優勢,AMD提出3A平台的新標誌,在筆記本領域有“AMD VISION”標誌的就表示該電腦採用3A構建方案,AMD 有超過70% 的收入都來自於國際市場,是一家真正意義上的
跨國公司 。
3·Cyrix
曾經風靡一時的世界第三大CPU生產廠家,現在被VIA與AMD分別收購生產線與技術。
·全美達·NexGen·IDT公司
曾經的輝煌,因AMD與Intel大廠之間的競爭而漸漸退出市場。
4·IBM公司
國際商業機器公司IBM,擁有了自己的晶片生產線,主要生產伺服器用POWER處理器。
國產品牌:
5·國產龍芯
GodSon 小名狗剩,是國有自主智慧財產權的通用處理器,目前已經有2代產品。
6·VIA中國威盛
VIA
威盛 是台灣一家主機板晶片組廠商,收購了前述的 Cyrix和IDT的
cpu 部門,推出了自己的CPU,性能可以與Intel的經濟型CPU相比,功耗只有1W,在Intel與AMD的雙重壓迫下艱難生存。
工作原理 基本結構 CPU包括運算邏輯部件、
暫存器 部件和控制部件。CPU從
存儲器 或
高速緩衝存儲器 中取出指令,放入
指令暫存器 ,並對指令翻譯編碼。它把指令分解成一系列的微操作,然後發出各種控制命令,執行微操作系列,從而完成一條指令的執行。
指令是計算機規定執行操作的類型和
運算元 的基本命令。指令是由一個
位元組 或者多個位元組組成,其中包括
操作碼 欄位、一個或多個有關運算元地址的欄位以及一些表征機器狀態的狀態字和特徵碼。有的指令中也直接包含運算元本身。
運算邏輯部件: 運算邏輯部件,可以執行定點或浮點的算術運算操作、移位操作以及邏輯操作,也可執行地址的運算和轉換。
32位CPU的暫存器:通用暫存器又可分定點數和浮點數兩類,它們用來保存指令中的
暫存器運算元 和操作結果。
專用暫存器是為了執行一些特殊操作所需用的暫存器。
控制暫存器通常用來指示機器執行的狀態,或者保持某些指針,有處理
狀態暫存器 、地址轉換目錄的基
地址暫存器 、特權狀態暫存器、條件碼暫存器、處理異常事故暫存器以及檢錯暫存器等。
有的時候,
中央處理器 中還有一些
快取 ,用來暫時存放一些數據指令,快取越大,說明CPU的
運算速度 越快,目前市場上的中高端中央處理器都有2M左右的二級快取。
控制部件: 主要負責對指令解碼,並且發出為完成每條指令所要執行的各個操作的
控制信號 。
其結構有兩種:一種是以微存儲為核心的
微程式 控制方式;一種是以邏輯硬布線結構為主的控制方式。
微存儲中保持微碼,每一個微碼對應於一個最基本的微操作,又稱
微指令 ;各條指令是由不同序列的微碼組成,這種微碼序列構成微程式。中央處理器在對指令
解碼 以後,即發出一定時序的控制信號,按給定序列的順序以微周期為節拍執行由這些微碼確定的若干個微操作,即可完成某條指令的執行。
簡單指令是由(3~5)個微操作組成,複雜指令則要由幾十個微操作甚至幾百個微操作組成。
邏輯
硬布線控制器 則完全是由隨機邏輯組成。指令解碼後,控制器通過不同的邏輯門的組合,發出不同序列的控制
時序信號 ,直接去執行一條指令中的各個操作。
其他: 套用大型、小型和
微型計算機 的
中央處理器 的規模和實現方式很不相同,工作速度也變化較大。中央處理器可以由幾塊電路塊甚至由整個機架組成。如果中央處理器的電路集成在一片或少數幾片大規模
積體電路晶片 上,則稱為
微處理器 (見微型機)。
基本原理 CPU的主要運作原理,不論其外觀,都是執行儲存於被稱為程式里的一系列指令。在此討論的是遵循普遍的架構設計的裝置。程式以一系列數字儲存在電腦
記憶體 中。差不多所有的CPU的運作原理可分為四個階段:提取(Fetch)、解碼(Decode)、執行(Execute)和寫回(Writeback)。
第一階段,提取,從程式記憶體中檢索指令(為數值或一系列數值)。由程式計數器(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這個名稱,早期是對一系列可以執行複雜的
電腦程式 或電腦程式的邏輯機器的描述。這個空泛的定義很容易在“CPU”這個名稱被普遍使用之前將計算機本身也包括在內。
但從20世紀70年代開始,由於積體電路的大規模使用,把本來需要由數個獨立單元構成的CPU集成為一塊微小但功能空前強大的
微處理器 時。這個名稱及其縮寫才真正在電子計算機產業中得到廣泛套用。儘管與早期相比,CPU在物理形態、設計製造和具體任務的執行上都有了戲劇性的發展,但是其基本的操作原理一直沒有改變。
1971年,當時還處在發展階段的Intel公司推出了世界上第一台真正的微處理器--4004。這不但是第一個用於計算器的4位微處理器,也是第一款個人有能力買得起的電腦處理器!
4004含有2300個電晶體,功能相當有限,而且速度還很慢,被當時的藍色巨人IBM以及大部分商業用戶不屑一顧,但是它畢竟是劃時代的產品,從此以後,Intel公司便與微處理器結下了不解之緣。可以這么說,CPU的歷史發展歷程其實也就是Intel公司X86系列CPU的發展歷程,就通過它來展開的“CPU歷史之旅”。
起步的角逐
1978年,Intel公司再次領導潮流,首次生產出16位的
微處理器 ,並命名為i8086,同時還生產出與之相配合的數學協處理器i8087,這兩種晶片使用相互兼容的
指令集 ,但在i8087指令集中增加了一些專門用於對數、指數和三角函式等數學計算的指令。由於這些指令集套用於i8086和i8087,所以人們也把這些指令集中統一稱之為X86指令集。
雖然以後Intel公司又陸續生產出第二代、第三代等更先進和更快的新型CPU,但都仍然兼容原來的X86指令,而且Intel公司在後續CPU的命名上沿用了原先的X86序列,直到後來因商標註冊問題,才放棄了繼續用阿拉伯數字命名。至於在後來發展壯大的其他公司,例如AMD和Cyrix等,在486以前(包括486)的CPU都是按Intel的命名方式為自己的X86系列CPU命名,但到了586時代,市場競爭越來越厲害了,由於商標註冊問題,它們已經無法繼續使用與Intel的X86系列相同或相似的命名,只好另外為自己的586、686兼容CPU命名了。
1979年,Intel公司推出了8088晶片,它仍舊是屬於16位
微處理器 ,內含29000個電晶體,
時鐘頻率 為4.77MHz,
地址匯流排 為20位,可使用1MB記憶體。8088內部
數據匯流排 都是16位,外部數據匯流排是8位,而它的兄弟8086是16位。
微機時代的來臨
1981年,8088晶片首次用於IBM的PC(個人電腦Personal Computer)機中,開創了全新的微機時代。也正是從8088開始,PC的概念開始在全世界範圍內發展起來。
早期的CPU通常是為大型及特定套用的計算機而訂製。但是,這種昂貴為特定套用定製CPU的方法很大程度上已經讓位於開發便宜、標準化、適用於一個或多個目的的處理器類。
這個標準化趨勢始於由單個電晶體組成的大型機和微機年代,隨著積體電路的出現而加速。積體電路使得更為複雜的CPU可以在很小的空間中設計和製造出來(在微米的量級)。
1982年,許多年輕的讀者尚在襁褓之中的時候,Intel公司已經推出了劃時代的最新產品棗80286晶片,該晶片比8086和8088都有了飛躍的發展,雖然它仍舊是16位結構,但是在CPU的內部含有13.4萬個電晶體,
時鐘頻率 由最初的6MHz逐步提高到20MHz。其內部和外部
數據匯流排 皆為16位,
地址匯流排 24位,可
定址 16MB記憶體。從80286開始,CPU的工作方式也演變出兩種來:實模式和保護模式。
1985年,Intel公司推出了80386晶片,它是80X86系列中的第一種32位
微處理器 ,而且製造工藝也有了很大的進步,與80286相比,80386內部內含27.5萬個電晶體,時鐘頻率為12.5MHz,後提高到20MHz、25MHz、33MHz。80386的內部和外部
數據匯流排 都是32位,
地址匯流排 也是32位,可
定址 高達4GB記憶體。它除具有實模式和保護模式外,還增加了一種叫虛擬86的工作方式,可以通過同時模擬多個8086處理器來提供多任務能力。
除了標準的80386晶片,也就是經常說的80386DX外,出於不同的市場和套用考慮,Intel又陸續推出了一些其它類型的80386晶片:80386SX、80386SL、80386DL等。
1988年,Intel推出的80386SX是市場定位在80286和80386DX之間的一種晶片,其與80386DX的不同在於外部數據匯流排和
地址匯流排 皆與80286相同,分別是16位和24位(即
定址 能力為16MB)。
高速CPU時代的騰飛
1990年,Intel公司推出的80386 SL和80386 DL都是低功耗、節能型晶片,主要用於便攜機和節能型台式機。80386 SL與80386 DL的不同在於前者是基於80386SX的,後者是基於80386DX的,但兩者皆增加了一種新的工作方式:系統管理方式。當進入系統管理方式後,CPU 就自動降低運行速度、控制顯示屏和硬碟等其它部件暫停工作,甚至停止運行,進入“休眠”狀態,以達到節能目的。
1989年,大家耳熟能詳的80486 晶片由Intel公司推出,這種晶片的偉大之處就在於它實破了100萬個電晶體的界限,集成了120萬個電晶體。80486的
時鐘頻率 從25MHz逐步提高到了33MHz、50MHz。80486是將80386和數學協處理器80387以及一個8KB的高速快取集成在一個晶片內,並且在80X86系列中首次採用 了RISC(
精簡指令集 )技術,可以在一個
時鐘周期 內執行一條指令。它還採用了突發匯流排方式,大大提高了與記憶體的數據交換速度。
由於這些改進,80486 的性能比帶有80387數學協處理器的80386DX提高了4倍。80486和80386一樣,也陸續出現了幾種類型。上面介紹的最初類型是80486DX。
1990年,Intel公司推出了80486 SX,它是486類型中的一種低價格機型,其與80486DX的區別在於它沒有數學協處理器。80486 DX2由於用了時鐘
倍頻技術 ,也就是說晶片內部的運行速度是
外部匯流排 運行速度的兩倍,即晶片內部以2倍於
系統時鐘 的速度運行,但仍以原有時鐘速度與外界通訊。80486 DX2的內部
時鐘頻率 主要有40MHz、50MHz、66MHz等。80486 DX4也是採用了時鐘倍頻技術的晶片,它允許其內部單元以2倍或3倍於外部匯流排的速度運行。為了支持這種提高了的內部
工作頻率 ,它的片內高速快取擴大到 16KB。80486 DX4的時鐘頻率為100MHz,其運行速度比66MHz的80486 DX2快40%。80486也有SL增強類型,其具有系統管理方式,用於便攜機或節能型台式機。
CPU的標準化和小型化都使得這一類數字設備(香港譯為“電子零件”)在現代生活中的出現頻率遠遠超過有限套用專用的計算機。現代
微處理器 出現在包括從汽車到手機到兒童玩具在內的各種物品中。
奔騰時代
性能指標 主頻
主頻也叫
時鐘頻率 ,單位是兆赫(MHz)或千兆赫(GHz),用來表示CPU的運算、處理數據的速度。
CPU的主頻=
外頻 ×
倍頻係數 。很多人認為主頻就決定著CPU的運行速度,這不僅是片面的,而且對於伺服器來講,這個認識也出現了偏差。至今,沒有一條確定的公式能夠實現主頻和實際的
運算速度 兩者之間的數值關係,即使是兩大處理器廠家Intel(
英特爾 )和AMD,在這點上也存在著很大的爭議,從Intel的產品的發展趨勢,可以看出Intel很注重加強自身主頻的發展。像其他的處理器廠家,有人曾經拿過一塊1GHz的
全美達 處理器來做比較,它的運行效率相當於2GHz的Intel處理器。
主頻和實際的運算速度存在一定的關係,但並不是一個簡單的線性關係. 所以,CPU的主頻與CPU實際的運算能力是沒有直接關係的,主頻表示在CPU內數字脈衝信號震盪的速度。在Intel的處理器產品中,也可以看到這樣的例子:1 GHz Itanium晶片能夠表現得差不多跟2.66 GHz
至強 (
Xeon )/Opteron一樣快,或是1.5 GHz Itanium 2大約跟4 GHz Xeon/Opteron一樣快。CPU的
運算速度 還要看CPU的流水線、匯流排等等各方面的性能指標。
主頻和實際的運算速度是有關的,只能說主頻僅僅是CPU性能表現的一個方面,而不代表CPU的整體性能。
外頻
外頻是CPU的基準頻率,單位是MHz。CPU的外頻決定著整塊主機板的運行速度。通俗地說,在台式機中,所說的
超頻 ,都是超CPU的外頻(當然一般情況下,CPU的
倍頻 都是被鎖住的)相信這點是很好理解的。但對於
伺服器CPU 來講,超頻是絕對不允許的。前面說到CPU決定著主機板的運行速度,兩者是同步運行的,如果把伺服器CPU超頻了,改變了
外頻 ,會產生異步運行,(台式機很多主機板都支持異步運行)這樣會造成整個
伺服器系統 的不穩定。
目前的絕大部分電腦系統中外頻與主機板前端匯流排不是同步速度的,而外頻與前端匯流排(FSB)頻率又很容易被混為一談,下面的前端匯流排介紹談談兩者的區別。
前端匯流排(FSB)頻率
前端匯流排(FSB)頻率(即
匯流排頻率 )是直接影響CPU與記憶體直接數據交換速度。有一條公式可以計算,即數據頻寬=(匯流排頻率×數據
位寬 )/8,數據傳輸最大頻寬取決於所有同時傳輸的數據的寬度和傳輸頻率。比方,現在的支持64位的
至強 Nocona,前端匯流排是800MHz,按照公式,它的數據傳輸最大頻寬是6.4GB/秒。
外頻 與前端匯流排(FSB)頻率的區別:前端匯流排的速度指的是數據傳輸的速度,外頻是CPU與主機板之間同步運行的速度。也就是說,100MHz外頻特指數字脈衝信號在每秒鐘震盪一億次;而100MHz前端匯流排指的是每秒鐘CPU可接受的數據傳輸量是100MHz×64bit÷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的位和字長
位:在數字電路和電腦技術中採用二進制,代碼只有“0”和“1”,其中無論是 “0”或是“1”在CPU中都是 一“位”。
字長 :電腦技術中對CPU在單位時間內(同一時間)能一次處理的二進制數的位數叫字長。所以能處理字長為8位數據的CPU通常就叫8位的CPU。同理32位的CPU就能在單位時間內處理字長為32位的二進制數據。
位元組 和字長的區別:由於常用的英文
字元 用8位二進制就可以表示,所以通常就將8位稱為一個位元組。字長的長度是不固定的,對於不同的CPU、字長的長度也不一樣。8位的CPU一次只能處理一個位元組,而32位的CPU一次就能處理4個位元組,同理
字長 為64位的CPU一次可以處理8個位元組。
倍頻係數
倍頻係數是指CPU主頻與
外頻 之間的相對比例關係。在相同的外頻下,倍頻越高CPU的頻率也越高。但實際上,在相同外頻的前提下,高倍頻的CPU本身意義並不大。這是因為CPU與系統之間數據傳輸速度是有限的,一味追求高主頻而得到高倍頻的CPU就會出現明顯的“瓶頸”效應-CPU從系統中得到數據的極限速度不能夠滿足CPU運算的速度。一般除了工程樣版的Intel的CPU都是鎖了倍頻的,少量的如Inter
酷睿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條命令。目前SSE4也是最先進的指令集,
英特爾 酷睿 系列處理器已經支持
SSE4指令集 ,AMD會在未來雙核心處理器當中加入對SSE4指令集的支持,
全美達 的處理器也將支持這一指令集。
CPU核心和I/O工作電壓
從586CPU開始,CPU的工作電壓分為核心電壓和I/O電壓兩種,通常CPU的核心電壓小於等於I/O電壓。其中核心電壓的大小是根據CPU的生產工藝而定,一般製作工藝越小,核心工作電壓越低;I/O電壓一般都在1.6~5V。低電壓能解決耗電過大和發熱過高的問題。
製造工藝 製造工藝的微米是指IC內電路與電路之間的距離。製造工藝的趨勢是向密集度愈高的方向發展。密度愈高的IC電路設計,意味著在同樣大小面積的IC中,可以擁有密度更高、功能更複雜的電路設計。現在主要的180nm、130nm、90nm、65nm、
45納米 。最近inter已經有
32納米 的製造工藝的
酷睿 i3/i5系列了。
而AMD則表示、自己的產品將會直接跳過32nm工藝(2010年第三季度生產少許32nm產品、如Orochi、Llano)於2011年中期初發布28nm的產品(名稱未定)
指令集
(1)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兩類。
(2)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處理器。
(3)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產生的根本原因。
(4)X86-64 (AMD64 / EM64T)
AMD公司設計,可以在同一時間內處理64位的整數運算,併兼容於X86-32架構。其中支持64位邏輯定址,同時提供轉換為32位定址選項;但數據操作指令默認為32位和8位,提供轉換成64位和16位的選項;支持常規用途
暫存器 ,如果是32
位運算 操作,就要將結果擴展成完整的64位。這樣,指令中有“直接執行”和“轉換執行”的區別,其指令欄位是8位或32位,可以避免欄位過長。
x86-64(也叫AMD64)的產生也並非空穴來風,x86處理器的32bit
定址空間 限制在4GB記憶體,而IA-64的處理器又不能兼容x86。AMD充分考慮顧客的需求,加強x86
指令集 的功能,使這套指令集可同時支持64位的運算模式,因此AMD把它們的結構稱之為x86-64。在技術上AMD在x86-64架構中為了進行64
位運算 ,AMD為其引入了新增了R8-R15
通用暫存器 作為原有X86處理器暫存器的擴充,但在而在32位環境下並不完全使用到這些暫存器。原來的
暫存器 諸如EAX、EBX也由32位擴張至64位。在SSE單元中新加入了8個新暫存器以提供對SSE2的支持。暫存器數量的增加將帶來性能的提升。與此同時,為了同時支持32和64位代碼及暫存器,x86-64架構允許處理器工作在以下兩種模式:Long Mode(長模式)和Legacy Mode(遺傳模式),Long模式又分為兩種子模式(64bit模式和Compatibility mode兼容模式)。該標準已經被引進在AMD伺服器處理器中的Opteron處理器.
而今年也推出了支持64位的EM64T技術,再還沒被正式命為EM64T之前是IA32E,這是英特爾64位擴展技術的名字,用來區別X86
指令集 。Intel的EM64T支持64位sub-mode,和AMD的X86-64技術類似,採用64位的線性平面定址,加入8個新的
通用暫存器 (GPRs),還增加8個暫存器支持SSE指令。與AMD相類似,Intel的64位技術將兼容IA32和IA32E,只有在運行64位作業系統下的時候,才將會採用IA32E。IA32E將由2個sub-mode組成:64位sub-mode和32位sub-mode,同AMD64一樣是向下兼容的。Intel的EM64T將完全兼容AMD的X86-64技術。現在Nocona處理器已經加入了一些64位技術,Intel的Pentium 4E處理器也支持64位技術。
應該說,這兩者都是兼容x86
指令集 的64位
微處理器 架構,但EM64T與AMD64還是有一些不一樣的地方,AMD64處理器中的NX位在Intel的處理器中將沒有提供。
超流水線與超標量
在解釋超流水線與超標量前,先了解流水線(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(對稱多處理器)集成到同一晶片內,各個處理器
並行執行 不同的進程。與CMP比較, SMT處理器結構的靈活性比較突出。但是,當半導體工藝進入0.18微米以後,線延時已經超過了門延遲,要求
微處理器 的設計通過劃分許多規模更小、局部性更好的基本單元結構來進行。相比之下,由於CMP結構已經被劃分成多個處理器核來設計,每個核都比較簡單,有利於最佳化設計,因此更有發展前途。目前,IBM 的Power 4晶片和Sun的 MAJC5200晶片都採用了CMP結構。
多核處理器 可以在處理器內部共享
快取 ,提高快取利用率,同時簡化多處理器系統設計的複雜度。
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 的一致性有多種解決方案,需要作業系統和特殊軟體的支持。圖2中是Sequent公司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%的時間來等待記憶體請求的結束- 比如因為
記憶體延遲 的緣故。
你可以看到Opteron整合的
記憶體控制器 ,它的延遲,與
晶片組 支持雙通道DDR記憶體控制器的延遲相比來說,是要低很多的。
英特爾 也按照計畫的那樣在處理器內部
整合記憶體控制器 ,這樣導致北橋晶片將變得不那么重要。但改變了處理器訪問主存的方式,有助於提高
頻寬 、降低記憶體延時和提升處理器性
製造工藝:現在CPU的製造工藝是
45納米 ,今年1月10號上市最新的I5I可以達到
32納米 ,在將來的CPU製造工藝可以達到24納米。
各種包裝
散裝CPU只有一顆CPU,無包裝。通常店保一年。一般是廠家提供給裝機商,裝機商用不掉而流入市場的。有些經銷商將散裝CPU配搭上風扇,包裝成原裝的樣子,就成了翻包貨。還有另外的主要來源是就是走私的散包。CPU是電腦最重要的部位
原包CPU ,也稱盒裝CPU。 原包CPU,是廠家為零售市場推出的CPU產品,帶原裝風扇和廠家三年質保。 其實散裝和盒裝CPU本身是沒有質量區別的,主要區別在於渠道不同,從而質保不同,盒裝基本都保3年,而散裝基本只保1年,盒裝CPU所配的風扇是原廠封裝的風扇,而散裝不配搭風扇,或者由經銷商自己配搭風扇。
黑盒CPU是指由廠家推出的頂級不
鎖頻 CPU,比如AMD的黑盒5000+,這類CPU不帶風扇,是廠家專門為
超頻 用戶而推出的零售產品。
深包CPU,也稱翻包CPU。經銷商將散裝CPU自行包裝,加風扇。沒有廠家質保,只能店保,通常是店保三年。或把CPU從國外走私到境內,進行二次包裝,加風扇。這類是未稅的,價格比散裝略便宜。
工程樣品CPU,是指處理器廠商在處理器推出前提供給各大
板卡 廠商以及OEM廠商用來測試的處理器樣品。生產的製成是屬於早期產品,但品質並不都低於最終零售CPU,其最大的特點例如:不鎖
倍頻 ,某些功能特殊,是精通DIY的首選。市面上偶爾也能看見此類CPU銷售,這些工程樣品會給廠商打上“ES”標誌(ES=Engine Sample的縮寫)