「為桌上型電腦和筆記型電腦選擇 Intel Core 2 Duo 處理器做為動力核心,即可享有最尖端的效能增強技術,包括高達 4MB 的共用 L2 快取記憶體,以及高達 1066 MHz的前端匯流排.....」(註:以上取自Intel官方網站)。


(感謝DaPang奉獻崩潰的小白鬼一隻)


這年頭,就連CPU的「廣告」都是一堆專有名詞,懂得人當然一看就知道好在哪裡,不懂的人....大概就像我在購物台看果菜機,不管哪一台都覺得好厲害,可以買來讓媽媽變貴婦。所以從這篇開始,我們會深入CPU的規格,解釋那一長串的專有名詞,讓大家真正了解CPU背後的技術。由於CPU已經發展30年了,真要重頭講起可能得寫幾大本書才行,所以這裡盡量以最新的規格為主。

大家先上網抓CPU-Z回來玩一下,它會辨識CPU的型號並列出詳細規格,每台電腦都有CPU,看跑出來的規格再對照下面的說明會更容易理解。

要先說聲抱歉,因為這篇是規格解說,絕大部分都是文字講解,可能會看比較累,先去倒個飲料再來慢慢看吧~



CPU-Z是玩家必備的CPU辨識程式,它會去偵側系統,所以有時會被防毒軟體(比如卡巴斯基)擋下來,別擔心,這程式很安全。


1.製程、封裝腳位、電壓、TDP

CPU是所謂的半導體製程下的產物,台灣是世界知名的半導體代工大國,大家應該對這種高科技、高汙染的產業有點概念,它是用矽化合物做成可通電或不通電的電晶體(所以叫「半」導體),塞在小小一塊面積裡,運算電腦世界中0與1組合的資料,現在主流的CPU大約有1~3億個電晶體在那塊小小的豆干上。

製程(Manufacture Process)是指晶片裡電子移動通道的寬度,現在一般是90nm或65nm(nm為奈米,十億分之一公尺),製程進步就是寬度縮減,讓Die面積縮小,Die面積縮小就可以省錢(晶片是先製造一大塊晶圓,比如八吋、12吋晶圓,再去切割成一顆顆的Die,封裝之後變成晶片);另一方面,寬度縮減也代表可以在相同面積下塞進更多電晶體,讓晶片有更多功能,所以各大半導體廠都把製程縮減列為首要目標。

封裝腳位(Package)則是晶圓做成晶片後,拉出來傳輸資料的腳,前一篇我們已經有拍Intel和AMD產品的針腳,Intel目前用的是LGA775,已經用了好幾年了,數字就是針腳的數目(雖然事實上並沒有「針」腳)。而AMD目前的腳位有點亂,包括Socket 939/AM2/AM2+/AM3,除了Socket 939之外,其他都是940根針腳,但針腳的電氣定義並不相同,AMD針腳數目較多、腳位規格混亂是有原因的,後面的章節再討論。

電壓(Core Voltage)和TDP密不可分,電壓是驅動CPU工作的電力,由於製程精進,CPU所需的電壓愈來愈低了,現在大約在1.3V左右或更低。可是TDP(Thermal Design Power)也得考慮進去,TDP是讓CPU工作而且不會熱當機時所必須散發掉的熱能,單位是瓦(W),現在CPU沒有散熱器就沒辦法運作,所以TDP不是單純指CPU的耗電量而已,65W的TDP是指讓CPU全速運作時,必須散掉65W的熱,CPU才不會過熱當機,而這65W的熱可藉由風扇、熱導管、水冷等各種散熱方式來消除。TDP數值愈低愈好。


2.型號、核心代號

型號沒什麼好說的,就是CPU販賣時的產品名稱。代號(Codename)反而比較值得注意,廠商在製造CPU時,並不是每個產品型號都做一款,而是大量生產少數幾種晶片,再篩選每一顆晶片,依特性去劃分成不同的產品,這樣可節省製造成本。而這少數幾種晶片就是CPU的核心代號,同一個核心會衍生出不同的產品型號,最後的規格也會不同。這是因為晶圓製造並不一定每一顆都很完美,最完美的會劃成高階產品,稍微有問題的,比如無法到達高時脈,或是部分電晶體有缺陷,就降成低階產品,充份利用每一個生產的晶圓。

所以從代號有時可以看出廠商的策略,比如圖中的代號「Conroe」(網路上常戲稱它是「控肉」)是目前最紅的Intel Core 2 Duo的代號,第一代的C2D產品都是用這個核心,可是後來E6300和E6400這兩個產品換成Allendale核心,即使他們最終的產品名稱和規格都一樣。因為Conroe的晶片內部有4MB快取,而E6300/E6400則是2MB快取的產品,初期可能晶圓有缺陷,正好降低規格賣出,但製程良率提升之後,這種有缺陷的晶圓變少了,就得手動關閉部分功能來生出低階產品,這會造成廠商在單個晶圓上的獲利變少(明明是完美的,卻得降價賣),所以這時就會換生產另一顆核心,換比較便宜的晶片來提高獲利,就E6300/E6400的例子,Allendale就是內部原本就只有2MB快取的核心,晶片面積變小,適合較低階的產品。

總之,核心會影響CPU的特性,也能幫助了解CPU產品線的規格。

 
同樣是E6400,卻有Conroe和Allendale兩種核心。


3.核心時脈

時脈(Clock)是CPU最重要的規格,單位是MHz或GHz,意思是CPU每秒跑幾「百萬次」(MHz)或「十億次」(GHz)。CPU內部是一個個的運算單元,像小型計算機那樣可以算一些加減乘除,而所謂的「跑一次」,就是CPU內部所有單元做一次動作,執行某些運算,2GHz的CPU就代表它可以每秒做20億次的動作。所以很直覺的,時脈愈高,數字愈大,執行的速度就愈快,而這也是劃分CPU產品定位的第一標準。

但不同核心的CPU時脈不能混在一起做比較,因為它們「跑一次」所做的事並不一定相同,這就是所謂的「時脈週期」(Clock Cycle)。比如過去Intel Pentium4的CPU動不動就2GHz、3GHz,換到Core 2 Duo之後就變成只有1GHz、2GHz,可是事實上C2D的效能比P4好太多了,好到讓Intel全面放棄舊架構的Pentium4,因為C2D每個時脈週期可以做更多事,就算時脈沒有前一代產品高,整體效能還是比較好。

至於為什麼CPU的時脈都可以拉到GHz這麼高等級,是因為現在CPU內部是「管線化」的架構,講管線好像很難,其實很好理解。假設有一台洗衣機可以做洗衣、脫水、烘乾的步驟,一堆衣服丟進去,整個做下來要30分鐘,如果管線化拆成三台機器,每台只做一個步驟,雖然一堆衣服仍然要30分鐘才能處理完,可是會變成一次可以處理三堆衣服,而且每台機器運作的時間也變短了。而運算時間變短,就是一個時脈週期縮短,也就是時脈提高了。現在新的CPU內部大概都是十幾個階段(Stage),之前Pentium4時脈會那麼誇張,就是用了20個階段來飆速度。


4.外頻、倍頻

CPU得對外和其他零組件溝通,而外頻(Bus Speed)就是CPU「對外」的時脈,那跟前面講的CPU時脈有什麼不同?其實早期外頻和CPU的內部時脈是相同的,但在CPU開始導入管線化架構之後,時脈突飛猛進,遠遠超越其他零組件,所以CPU便使用外頻和倍頻(Multiplier)的機制。CPU內部跑的是高時脈,但對外就降到較低的外頻,現在一般是200~333MHz,而內部的高時脈就是「外頻 x 倍頻」,倍頻的話,現在是6到11不等,不過以前也曾有過20幾倍頻的。

為了進一步讓事情複雜化,外頻也不是其他零組件跑的時脈,而是其他零組件「做為基準」的時脈,因為各零件的發展速度不一,所以便衍生成這種狀況。比如CPU的老相好記憶體,便是以外頻為基準,乘上不同的比值或算法,變成記憶體時脈。而底下要講的FSB則固定是外頻的四倍。

正常販售的CPU的倍頻都是只能下降不能提高(除了少見的工程測試版,或極高階的CPU),倍頻下降是CPU自己啟動的省電機制,降低時脈來節省耗電。所以大家所說的「超頻」都是拉高外頻,而因為外頻是其他零組件做為基準的時脈,一拉外頻就雞犬升天,CPU、記憶體、FSB的速度都跟著提高,電腦的整體效能就會顯著提升。


CPU-Z裡左下方的「Bus Speed」就是外頻,圖中是被我超頻過的300MHz,「Multiplier」中的6.0則是倍頻,300和6相乘就變.....1799.9MHz,0.1的誤差是因為時脈產生器不一定非常精準。



切到CPU-Z的「Memory」(記憶體)部分,Frequency頻率會顯示375MHz,底下有個4:5的比值,就是以外頻為基準,乘上5/4變成記憶體時脈。這個比值有很多種,取決取北橋的記憶體控制器,像1:1、1:2等等,設定比值和外頻時脈,有時可以在CPU超頻後,讓記憶體跑在比原來還低的時脈,增加穩定性。


註:記憶體時脈的算法因記憶體控制器不同,會有不一樣的「公式」。Intel是固定幾種比值乘上外頻,AMD則是連同倍頻一起納入計算,而NVIDIA新的晶片組號稱有Unlink非連結模式,可讓記憶體和外頻時脈各自獨立調整,但那只是內建更多的比值,讓記憶體時脈可以細微變動,基本上仍然都以CPU的外頻為計算基礎。


5.Front Side Bus(Intel)和HyperTransport(AMD)

CPU直接連接一個重要裝置:北橋(關於「北橋」的用途,請參照主機板的章節),而「前端匯流排」(Front Side Bus,或簡稱FSB)就是CPU和北橋之間溝通的速度,北橋連接的全都是高速週邊,所以FSB對效能的影響非常大。要注意的是,FSB是Intel CPU專用,AMD的CPU用的是HyperTransport(簡稱HT),技術不同,但功能一樣是連接北橋。

現在Intel的FSB固定是外頻的四倍,AMD的HT則是外頻五倍,一些低階的產品則是四倍(*註:新架構的AMD CPU不再是外頻4或5倍,算法未知),但因為Intel和AMD的CPU的外頻並不相同,Intel的處理器外頻是200、266和333MHz(依產品定位高低而不同),AMD則固定是200MHz,乘上倍數之後,Intel的FSB是800、1066和1333MHz,AMD的HT則是800或1000MHz,除了Intel最新的1333MHz比較快之外,另外兩個是差不多的。

FSB和HT都是CPU和北橋連接的速度,所以這不僅是CPU的規格,也是主機板北橋的規格,兩邊要支援相同的速度才能搭配。


用CPU-Z看AMD的CPU,Rated FSB的部分會變「HT link」,指的就是HyperTransport的速度。


註:FSB和HyperTransport通道寬度不一樣,FSB是64 bits,HT是32 bits,但HT是「雙倍資料速度」(Double Data Rate),每個時脈週期可以傳兩次資料,抵銷之後,直接比較FSB和HT的時脈就知道誰的頻寬比較大。


6.L1/L2快取

算完一堆數學有點頭昏腦脹了嗎?接下來也是個數大便是美的規格,但不必再乘來乘去了,快取(Cache)。

在這一系列教學的第一篇就有講到,CPU需要記憶體做資料暫存,但CPU實在太快了,在記憶體裡運算資料還是嫌太慢了,所以現在CPU都直接在晶片裡內裝記憶體,也就是快取機制,由於快取記憶體根本就在CPU裡面,時脈和CPU一致,速度飛快。一般是64KB的「L1資料快取」和64KB的「L1指令快取」,還有1MB到4MB不等的「L2資料快取」。

電腦很多地方都有「快取」的設計,它的意義很簡單,就是高速裝置和慢速裝置中間的緩衝區。以CPU為例,當你執行一個軟體,比如Word,資料就先從硬碟載到記憶體,再從記憶體讀到CPU快取裡,CPU是從快取裡執行,這樣遇到需要重複使用的資料時,就能從快取裡讀,不必再繞遠路去翻記憶體。而L1和L2就是第一、第二層快取,因為.....該死的!CPU實在太快,必須要有非常非常快的快取做為它的暫存區,這就是L1,可是這種超高速的快取製作困難,成本極高,量不能太大,通常只有64KB或128KB,暫存最近執行的資料。而第二層的L2就比較大,1MB、2MB、4MB都有人做,放一些較久之前執行的資料,再更久一點的就到記憶體去,而不太常用的才回到硬碟。

而CPU找資料也是從L1、L2、記憶體、硬碟依序從最近(最快,容量最小,最貴),到最遠(最慢、容量最大,最便宜)找下去,而儲存資料時,比如存檔Word文件,也是這樣一步一步回到硬碟去。一些伺服器用的CPU還會有更大的L3快取做第三層緩衝,未來製程進步,也許一般消費端CPU也會有L3。快取是愈大愈好,因為CPU內部的運算單元執行速度超快,對一點點的延遲都很敏感,最好一切都能在快取內執行,需要載入新資料時,不得已才從記憶體裡讀。所以快取大小是評斷CPU效能的依據,通常性能愈強的CPU,也會搭配更大的快取。

但要注意,不同廠商的快取大小不能混為一談,因為所用的架構不同,比如Intel CPU的快取通常是AMD CPU的兩倍或更大,這是有特殊原因的。



CPU存取資料的順序如上圖所示,由最快最近的地方找起,如果沒抓到想要的資料再一層層往下找,因此愈上層的部分,影響效能就愈明顯。寫入資料時也是一層層往下寫,除了硬碟可以永久儲存之外,其他都是一斷電,資料就消失,所以如果你在編輯一個Word檔,在還沒有存檔之前,只有CPU的快取和記憶體裡有資料,一跳電,就完了。



快取對CPU有多重要?有圖有真相,這是一張CPU晶圓的顯微照相圖,周圍一塊是L3快取、中間是L2快取、裡面還有L1快取。事實上,現在CPU電晶體將近1/2都是快取。



CPU-Z裡有個「latency.exe」,執行就可以看讀快取的延遲,圖中顯示L1是3個時脈週期,L2是14個時脈週期。存取記憶體的話,大概需要3位數的時脈週期。


7.Stepping

呼~最難的已經過去了,前面講到一顆核心會衍生不同產品,不過一顆核心也會隨著時間做改版,也就是Stepping。通常一個核心做出來不會是100%完美,可能會有一些bug等等,核心改版通常會改善一些電氣特性,像是耗電量稍低一點、超頻性能好一點、增加功能,甚至提升FSB的速度,雖然還是同一個核心,但Stepping愈新,CPU的體質也會更好。

Stepping由一個英文和一個數字組成,最初可能是A0、A1,數字代表小改版,再來可能是B0、B1、B2,英文字改變代表大改版。比如Intel最新出的FSB 1333MHz的CPU,就仍然是Conroe核心,但Stepping已經到G0了,而最前面圖中是寫L2改版,這是讓CPU在閒置時耗電量從22瓦降到12瓦。


雙核心 / HyperThreading

最後,現在流行的「雙核心」(Dual Core)是什麼?其實就是在一個CPU的晶片裡,有兩個完整的CPU運算核心,他們共用快取來互相分享資料、共用FSB或HyperTransport與外面溝通,運算時則互相幫忙,平分工作量,Windows XP已經支援多核心的CPU,執行緒會自動分派到兩顆核心。用最直覺的比喻,就是以前CPU只能「全速」做一件很操的事,雙核心後就能全速做兩件(比如一邊做3D繪圖,一邊壓縮影片。真是太瘋狂了.....)。會朝向雙核心發展其實有點不得已,因為這幾年,CPU單一時脈週期的效能成長已經逐漸趨緩,利用增加核心來提高效能反而是比較簡單的解決方式,2008年四核心就會普及,接下來就八核心......再接下來,可能就是劃時代的新CPU架構了。


還記得這張圖吧?上一篇曾經出現過。在「CPU使用率記錄」分成兩塊,就是分別顯示兩個CPU核心的負載狀況。


而在雙核心還沒這麼普及以前,Intel想出一個很聰明的作法,稱為「HyperThreading」(超執行緒),有點像虛擬的雙核心。前一篇說過,CPU一次只能跑一條執行緖,HyperThreading則讓CPU可以同時「接收兩條」,當其中一條執行緒只用到CPU一部分的運算單元時,另一條就可以插進去補滿,讓全部的運算單元都有事做。事實上CPU仍然只有單核心的運算資源,只是讓運算單元的利率用提高,由於HyperThreading不是實體的雙核心,所以效能頂多增加10%~15%左右(Intel宣稱有30%,聽聽就好),總比沒有好。Pentium 4絕大部分的產品都有HyperThreading,在Windows XP下看就有兩個CPU佔用率,即使實體上只有一個核心。

Pentium 4滅絕之後,HyperThreading也跟著被淘汰,不過在Intel下一代產品中準備來個大復活,Intel之後會推出一個四核心的產品Penryn,每個核心都內建HyperThreading,猜猜看Windows XP下會看到什麼?沒錯,就是八腳章魚.....!我們真的需要這麼多核心的CPU嗎?這問題等到2009年再來回答好了。


結語

「為桌上型電腦和筆記型電腦選擇 Intel Core 2 Duo 處理器做為動力核心,即可享有最尖端的效能增強技術,包括高達 4MB 的共用 L2 快取記憶體,以及高達 1066 MHz的前端匯流排.....」(註:以上取自Intel官方網站)。

最後,再回頭看最前面那段廣告詞,是不是覺得沒什麼了?只不過點出CPU兩個重要規格而已,這就是技術行銷的真義:在產品廣告裡夾帶一些看起來很厲害的名詞.....。

下一篇難度將會更高一點,講CPU的一些特殊功能,比如SSE、VT等等,相當有趣,是深入了解CPU的一個機會。