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