徹底看穿雙核CPU Intel與AMD多核處理器剖解
所謂雙核心處理器,簡單地說就是在一塊CPU基板上集成兩個處理器核心,并通過并行總線將各處理器核心連接起來。雙核心并不是一個新概念,而只是CMP(Chip Multi Processors,單芯片多處理器)中最基本、最簡單、最容易實現(xiàn)的一種類型。其實在RISC處理器領(lǐng)域,雙核心甚至多核心都早已經(jīng)實現(xiàn)。CMP最早是由美國斯坦福大學提出的,其思想是在一塊芯片內(nèi)實現(xiàn)SMP(Symmetrical Multi-Processing,對稱多處理)架構(gòu),且并行執(zhí)行不同的進程。早在上個世紀末,惠普和IBM就已經(jīng)提出雙核處理器的可行性設(shè)計。IBM 在2001年就推出了基于雙核心的POWER4處理器,隨后是Sun和惠普公司,都先后推出了基于雙核架構(gòu)的UltraSPARC以及PA-RISC芯片,但此時雙核心處理器架構(gòu)還都是在高端的RISC領(lǐng)域,直到前不久Intel和AMD相繼推出自己的雙核心處理器,雙核心才真正走入了主流的X86領(lǐng)域。
MCM模塊內(nèi)封裝了4個Power4芯片,共有8個CPU核心
Intel和AMD之所以推出雙核心處理器,最重要的原因是原有的普通單核心處理器的頻率難于提升,性能沒有質(zhì)的飛躍。由于頻率難于提升,Intel在發(fā)布3.8GHz的產(chǎn)品以后只得宣布停止4GHz的產(chǎn)品計劃;而AMD在實際頻率超過2GHz以后也無法大幅度提升,3GHz成為了AMD無法逾越的一道坎。正是在這種情況下,為了尋找新的賣點,Intel和AMD都不約而同地祭起了雙核心這面大旗。
Sun UltraSPARC IV雙核處理器
二、AMD雙核心處理器的簡介
AMD目前的桌面平臺雙核心處理器代號為Toledo和Manchester,基本上可以簡單看作是把兩個Athlon 64所采用的 Venice核心整合在同一個處理器內(nèi)部,每個核心都擁有獨立的512KB或1MB二級緩存,兩個核心共享Hyper Transport,從架構(gòu)上來說相對于目前的Athlon 64架構(gòu)并沒有任何改變。
與Intel的雙核心處理器不同的是,由于AMD的Athlon 64處理器內(nèi)部整和了內(nèi)存控制器,而且在當初Athlon 64設(shè)計時就為雙核心做了考慮,但是仍然需要仲裁器來保證其緩存數(shù)據(jù)的一致性。AMD在此采用了SRQ(System Request Queue,系統(tǒng)請求隊列)技術(shù),在工作的時候每一個核心都將其請求放在SRQ中,當獲得資源之后請求將會被送往相應的執(zhí)行核心,所以其緩存數(shù)據(jù)的一致性不需要通過北橋芯片,直接在處理器內(nèi)部就可以完成。與Intel的雙核心處理器相比,其優(yōu)點是緩存數(shù)據(jù)延遲得以大大降低。
AMD目前的桌面平臺雙核心處理器是Athlon 64 X2,其型號按照PR值分為3800+至4800+等幾種,同樣采用0.09微米制程,Socket 939接口,支持1GHz的Hyper Transport,當然也都支持雙通道DDR內(nèi)存技術(shù)。
Athlon 64 X2
由于AMD雙核心處理器的仲裁器是在CPU內(nèi)部而不是在北橋芯片上,所以在主板芯片組的選擇上要比Intel雙核心處理器要寬松得多,甚至可以說與主板芯片組無關(guān)。理論上來說,任何Socket 939的主板通過更新BIOS都可以支持Athlon 64 X2。對普通消費者而言,這樣可以保護已有的投資,而不必象Intel雙核心處理器那樣需要同時升級主板
三、Intel雙核心構(gòu)架剖析
AMD的“真?zhèn)坞p核論”雖無法立足,但它點出的英特爾雙核處理器可能出現(xiàn)前端總線資源爭搶的問題是否真是實情呢?對此,英特爾表示:AMD并不了解我們的產(chǎn)品和我們將來產(chǎn)品的技術(shù)走向,對自己的競爭對手及其產(chǎn)品妄加猜測和評論的行為是不值得贊賞的。AMD曾經(jīng)指出奔騰至尊版是兩個核心共享一個二級緩存,這就是一個非常明顯的錯誤。事實上,奔騰至尊版和奔騰D都是每個核心配有獨享的一級和二級緩存,不同的是英特爾將雙核爭用前端總線的任務(wù)仲裁功能放在了芯片組的北橋芯片中。
圖1:基于Smithfield衍生出的奔騰至尊版和奔騰D,主要區(qū)別就在于奔騰至尊版支持超線程,而奔騰D屏蔽了超線程功能。
按照“離得越近、走得越快”的集成電路設(shè)計原則,把這些功能組件集成在處理器中確實可以提高效率,減少延遲。不過,在臺式機還不可能在短期內(nèi)就支持4個內(nèi)核和更多內(nèi)核的現(xiàn)實情況下,只要有高帶寬的前端系統(tǒng)總線,就算把這些任務(wù)仲裁組件外置,對于雙核處理器的臺式機來說帶來的延遲和性能損失也是微乎其微的。
英特爾945和955系列芯片組目前可提供800MHz(用于目前的奔騰D)和1066MHz(用于奔騰至尊版)前端總線,如果是供一個四核處理器使用,那肯定會造成資源爭搶,但對于雙核來說,這個帶寬已經(jīng)足夠了。英特爾認為目前雙核系統(tǒng)中的主要瓶頸還是內(nèi)存、I/O總線和硬盤系統(tǒng),提升這些模塊的速度才能使整個系統(tǒng)的計算平臺更加均衡。
基于這種設(shè)計思路,英特爾在945和955系列芯片組中加強了對PCI-Express總線的支持,增加了對更高速DDR2內(nèi)存的支持,對SATA(串行ATA)的支持速度增加了一倍由1.5Gb/s升級3Gb/s,進一步增加了磁盤陣列RAID 5 和 RAID 10的支持。
圖2:單核奔騰4處理器(左)和雙核奔騰D處理器(右)微架構(gòu)示意圖
此外,英特爾奔騰至尊版有一個獨門“絕活”,那就是雙核心加超線程的架構(gòu),這種架構(gòu)可同時處理四個線程,這讓它在多任務(wù)多線程的應用中具有明顯優(yōu)勢。而且CMP與SMT(同時多線程,英特爾超線程就是一種SMT技術(shù))的結(jié)合是業(yè)界公認的處理器重要發(fā)展趨勢,最早推出雙核處理器的IBM也是這一趨勢的推動者。
圖3:奔騰至尊版的雙核+超線程架構(gòu)讓它具備同時四線程處理能力
英特爾之所以在奔騰至尊版和奔騰D上采用共享前端總線的雙核架構(gòu),還是出于雙核架構(gòu)自身的緊湊設(shè)計和生產(chǎn)進程方面的考慮,這種架構(gòu)使英特爾能夠迅速推出全系列的雙核處理器家族,加快雙核處理器的產(chǎn)品化,而且它帶來的成本優(yōu)勢也大大降低了奔騰至尊版、奔騰D與現(xiàn)有主流單核處理器——奔騰4系列的差價,有利于雙核處理器在PC市場上的迅速普及。
四、AMD雙核心架構(gòu)剖析
從架構(gòu)上來看,Athlon 64 X2除了多個“芯”外與目前的Athlon 64并沒有任何區(qū)別。Athlon 64 X2的大多數(shù)技術(shù)特征、功能與目前市售的、基于AMD64架構(gòu)的處理器是一樣的,而且這些雙核心處理器仍將使用1GHz HyperTransport總線與芯片組連接及支持雙通道DDR內(nèi)存技術(shù)。
實際上Toledo核心就相當于是兩個San Diego核心的Athlon 64處理器的集成,至于Manchester自然就相當于兩個
另外我們不難發(fā)現(xiàn)的是,AMD的臺式雙核心處理器的頻率與其單核心產(chǎn)品基本上處于同一水平上—這一點與Intel非常不一樣(Intel目前頻率最高的桌面單核心處理器達到了3.8GHz,而其最高頻率的雙核心處理器只不過3.2GHz)。當然這并不難理解,因為Athlon 64處理器,特別是采用了90nm SOI工藝的Athlon 64處理器的發(fā)熱量要比Intel的高頻率的Prescott核心處理器要低不少,所以自然可以采用比較高的工作頻率了(當然從頻率的角度來看,Athlon 64 X2也還是低于Pentium D的)。
由于Intel受發(fā)熱量限制目前的雙核心處理器最高只有3.2GHz,因此在性能上肯定要比AMD的 Athlon 64 X2要低一些——不過Pentium D不如Athlon64 X2的地方并不僅僅只有這方面而已。在處理器的架構(gòu)上AMD也有其獨到之處,下圖所示就是AMD的雙核心處理器的架構(gòu)示意圖。
AMD的雙核心方案面臨一個重要的問題,就是隨著第二核心的出現(xiàn),對內(nèi)存與I/O帶寬的資源將會出現(xiàn)爭奪,如何解決好這個問題是AMD雙核心處理器的性能的關(guān)鍵問題之一。與Pentium D不同的是,Athlon 64 X2的兩個內(nèi)核并不需要通過外部FSB通信這一途徑。Athlon 64 X2內(nèi)部整合了一個System Request Queue(SRQ)仲裁裝備,每一個核心將其請求放在SRQ中,當獲得資源之后請求將會被送往相應的執(zhí)行核心,所有的過程都在CPU核心范圍之內(nèi)完成。
AMD雙核心強調(diào)是真正將兩個核心崁入整合在一個硅晶內(nèi)核上,可以真正發(fā)揮雙核心效率,不像對手的產(chǎn)品事實上為兩個Packet的設(shè)計,會有兩個核心之間傳輸瓶頸的問題。因此Athlon 64 X2的架構(gòu)要優(yōu)于Pentium D架構(gòu),尤其是在高負載的多線程/多任務(wù)的環(huán)境下,AMD的處理器將會表現(xiàn)出比Intel的處理器更好的性能。
此外,隨著第二核心的出現(xiàn),對內(nèi)存與I/O帶寬的資源將會出現(xiàn)爭奪,如何解決好這個問題是AMD雙核心處理器的性能的關(guān)鍵問題之一。AMD信引入了Crossbar控制器,這個全新的控制器結(jié)合優(yōu)化的系統(tǒng)請求隊列,可以有效的降低這個問題的危害性。
AMD處理器集成的內(nèi)存控制器在進化到雙核心時代表現(xiàn)出來的優(yōu)勢更加明顯,低延時的內(nèi)存控制器使得對CPU的緩存的依賴也大幅減少,在這樣的情況下,在日后過渡到多核心的時候,需要考慮的問題更多的是基于各個核心之間的連接。我們可以看到,兩個核心所采用的L2緩存也是分別獨享的,也就是兩個L2緩存中保存的數(shù)據(jù)是一致的。
實際的可利用容量和一個核心的L2緩存容量是 相同的—這一點和Intel一樣。與Intel有所不同的是,AMD方案的兩個核心之間的通信是通過處理器內(nèi)部的Crossbar實現(xiàn)的。相比之下Intel的Pentium D處理器的核心之間的通信則是需要通過芯片組的MCH來進行—這顯然比AMD的方案要帶來更多的延遲時間。不過AMD的架構(gòu)也并非十全十美,雙核心處理器仍然只支持雙通道DDR400內(nèi)存無疑是一個有些令人遺憾的地方—兩個處理器核心自然需要更大的內(nèi)存帶寬。要解決這個矛盾,只能使用全新的針腳設(shè)計,DDR2或許是一個不錯的選擇。
Athlon 64 X2這樣的設(shè)計還有一個好處,那就是如果打算支持新的雙內(nèi)核處理器的話,對舊平臺而言唯一的要求就是升級到最新BIOS就OK了,這將大大降低平臺的應用、升級成本。當然AMD沿用以前的內(nèi)存控制器也是有很大的好處的,那就是雙核心的Athlon 64 X2處理器可以在目前幾乎所有的Socket 939主板上使用。這方面AMD有著Intel無可比擬的優(yōu)勢—因為以前的915/925主板并不能支持Intel的雙核心處理器。
此外,與Pentium D是通過降低頻率來降低功耗不同,同樣采用0.0 9微米生產(chǎn)技術(shù)的Athlon 64 X2似乎并不需要面臨這樣的問題。這都得益于AMD在Athlon 64 X2處理器上所采用的“Dual Stress Liner”應變硅技術(shù)。Dual Stress Liner技術(shù)是由AMD和IBM聯(lián)合開發(fā)的,據(jù)稱可以將半導體晶體管的響應速度提高24%。
事實上,DSL很類似于英特爾在90nm生產(chǎn)技術(shù)中引入的應變硅技術(shù)。我們都知道,晶體管越微細化,運行速度就越高,但同時也會引發(fā)泄漏電流增加、開關(guān)效率降低,從而導致耗電和發(fā)熱量的增加。而DSL通過向晶體管的硅層施加應力,同時實現(xiàn)了速度的提高與耗電量的降低。
與Intel使用的應變硅不同,來自AMD和IBM的DSL能夠被用于兩種類型的晶體管:NMOS和PMOS(具有n和p通道)而無需使用極難獲得的硅鍺層,硅鍺層會增加成本,并且有可能影響芯片的產(chǎn)量。 DSL這種雙重性,讓它比英特爾的應變硅更有效—DSL可以將晶體管的響應速度提升24%,而應變硅能提供的最大改進在15-20%。
并且更重要的是,AMD和IBM 這項新技術(shù)對產(chǎn)量及生產(chǎn)成本并沒有任何負面影響。由于在生產(chǎn)時無需使用新的生產(chǎn)方法,所以使用標準生產(chǎn)設(shè)備和材料便可迅速展開量產(chǎn)。另外,配合使用硅絕緣膜構(gòu)造(SOI,絕緣體上硅)與應變硅,還可生產(chǎn)性能更高、耗電更低的晶體管。AMD工程師們表示,DSL和SOI一起結(jié)合可以讓Athlon 64處理器的頻率潛力有大約16%的增長。而Athlon 64 X2的初始頻率與目前Athlon 64持平上也可以看到DSL技術(shù)的確很有效。
當然,AMD也將在未來轉(zhuǎn)移更先進的65nm生產(chǎn)線上,改進他們的內(nèi)存控制器來對DDR2,DDR3和FB-DIMM等高性能內(nèi)存提供支持,也將開始使用更快的HyperTransport 2.0總線,及更有效的節(jié)能降耗技術(shù)。
五、雙核心技術(shù)與超線程技術(shù)的區(qū)別
超線程技術(shù)已經(jīng)不是什么新鮮事物了,但普通用戶可能與雙核心技術(shù)區(qū)分不開。例如開啟了超線程技術(shù)的Pentium 4 530與Pentium D 530在操作系統(tǒng)中都同樣被識別為兩顆處理器,它們究竟是不是一樣的呢?這個問題確實具有迷惑性。
其實,可以簡單地把雙核心技術(shù)理解為兩個"物理"處理器,是一種"硬"的方式;而超線程技術(shù)只是兩個"邏輯"處理器,是一種"軟"的方式。
從原理上來說,超線程技術(shù)屬于Intel版本的多線程技術(shù)。這種技術(shù)可以讓單CPU擁有處理多線程的能力,而物理上只使用一個處理器。超線程技術(shù)為每個物理處理器設(shè)置了兩個入口-AS(Architecture State,架構(gòu)狀態(tài))接口,從而使操作系統(tǒng)等軟件將其識別為兩個邏輯處理器。這兩個邏輯處理器像傳統(tǒng)處理器一樣,都有獨立的IA-32架構(gòu),它們可以分別進入暫停、中斷狀態(tài),或直接執(zhí)行特殊線程,并且每個邏輯處理器都擁有APIC(Advanced Programmable Interrupt Controller,高級可編程中斷控制器)。
雖然支持超線程的Pentium 4能同時執(zhí)行兩個線程,但不同于傳統(tǒng)的雙處理器平臺或雙內(nèi)核處理器,超線程中的兩個邏輯處理器并沒有獨立的執(zhí)行單元、整數(shù)單元、寄存器甚至緩存等等資源。它們在運行過程中仍需要共用執(zhí)行單元、緩存和系統(tǒng)總線接口。在執(zhí)行多線程時兩個邏輯處理器均是交替工作,如果兩個線程都同時需要某一個資源時,其中一個要暫停并要讓出資源,要待那些資源閑置時才能繼續(xù)。因此,超線程技術(shù)所帶來的性能提升遠不能等同于兩個相同時鐘頻率處理器帶來的性能提升??梢哉fIntel的超線程技術(shù)僅可以看做是對單個處理器運算資源的優(yōu)化利用。
而雙核心技術(shù)則是通過"硬"的物理核心實現(xiàn)多線程工作:每個核心擁有獨立的指令集、執(zhí)行單元,與超線程中所采用的模擬共享機制完全不一樣。在操作系統(tǒng)看來,它是實實在在的雙處理器,可以同時執(zhí)行多項任務(wù),能讓處理器資源真正實現(xiàn)并行處理模式,其效率和性能提升要比超線程技術(shù)要高得多,不可同日而語。
六、雙核心處理器的適用范圍
目前,Windows XP專業(yè)版等操作系統(tǒng)支持雙物理核心和四個邏輯核心,但這并不意味著所有軟件對此都有優(yōu)化。
事實上大量的測試已經(jīng)證明,無論是Intel還是AMD的雙核心處理器,相對于其各自的同頻率的單核心處理器而言,對于目前的普通應用例如多媒體軟件、游戲和辦公軟件等等都沒有任何性能提升,甚至可能還稍有降低,因為這些普通應用目前都還只是單線程程序,在處理器執(zhí)行指令時實際上只有一個核心在工作,而另外一個核心則處于空閑狀態(tài)幫不上忙。
所以對普通用戶而言,只要日常應用的程序仍然是單線程的話,雙核心處理器實際上沒有任何意義,反而還增大了購買成本。除非經(jīng)常執(zhí)行大運算量的多任務(wù)處理,例如在游戲的同時進行音視 頻處理等等,這時雙核心處理器才能真正發(fā)揮作用。
目前最適合雙核心處理器發(fā)揮威力的平臺是服務(wù)器和工作站,這是因為其經(jīng)常進行多任務(wù)處理,而且日常運行的大量程序都是多線程程序,例如圖形工作站所使用的Adobe Photoshop和3D MAX等都是多線程程序。一般來說,在執(zhí)行多任務(wù)處理和多線程程序時,雙核心處理器要比同頻率的單核心處理器的性能要高大約50%-70%,甚至在某些應用下性能幾乎能提升100%。
當然,隨著雙核心處理器的強勢推出和逐漸普及,日后支持多線程的普通應用程序也會逐漸增多,對普通用戶而言那時雙核心處理器才會真正發(fā)揮作用。
七、雙核心處理器目前所存在的問題
無論是Intel的Pentium D和Pentium EE,還是AMD的Athlon 64 X2處理器,都是簡單地將兩個物理內(nèi)核"疊加"在一起,這必然帶來晶體管數(shù)量的大幅度增加,雙方都已經(jīng)達到了兩億三千萬個以上的晶體管;帶來的直接后果就是由泄漏電流引起的功耗大幅度增加,就算是采用了節(jié)能技術(shù)其發(fā)熱量也居高不下,從而導致雙核心處理器相對于單核心處理器而言頻率提升更加困難。
而且由于目前的制造工藝的限制,雙核心處理器的良品率要比單核心處理器的低,這必然會帶來成本的居高不下,所以目前的雙核心處理器的價格都太貴了,距離普及還差得很遠。當然,隨著處理器核心架構(gòu)和制造技術(shù)的發(fā)展,今后必然會解決目前所遇到的問題。
linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)
評論