Intel和AMD的雙核技術
AMD雙核技術
AMD的雙核技術它並不只是簡單地將兩個Opteron處理器核心集成在一個矽晶片(Die)上,與單核Opteron相比,它增添了“系統請求接口”(System Request Interface,SRI)和“交叉開關”(Crossbar Switch)。它們的作用據AMD方面介紹應是對兩個核心的任務進行仲裁、及實現核與核之間的通信。它們與集成的記憶體控制器和HyperTransport匯流排配合,可讓每個核心都有獨享的I/O頻寬、避免資源爭搶,實現更小的記憶體延遲,並提供了更大的擴展空間,讓雙核能輕易擴展成為多核。
Intel雙核技術
從集成的角度來看,通常把多處理器計算機系統分為“緊耦合”和“松耦合”兩種形態。例如通過將多台計算機組成集群(Cluster)的方式來增加計算機系統處理器數量以提高計算性能的做法就是一種相對比較松的耦合,與它相比,在一台計算機上通過SMP(對稱多處理器)架構來增加處理器數量的方式就是一種緊耦合,與SMP相比,在一個處理器上集成多個處理器核心則是更緊密的耦合,把這種在單個晶片或基板上集成多個處理器核心的架構稱之為CMP(單晶片多處理器)架構。
奔騰至尊版和奔騰D都是每個核心配有獨享的一級和二級快取,不同的是Intel將雙核爭用前端匯流排的任務仲裁功能放在了晶片組的北橋晶片中。
雙核與雙芯
AMD和Intel的雙核技術在物理結構上也有很大不同之處。AMD將兩個核心做在一個Die(核心)上,通過直連架構連線起來,集成度更高。Intel則是採用兩個獨立的核心封裝在一起,因此有人將Intel的方案稱為“雙芯”,認為AMD的方案才是真正的“雙核”。
從用戶端的角度來看,AMD的方案能夠使雙核CPU的管腳、功耗等指標跟單核CPU保持一致,從單核升級到雙核,不需要更換電源、晶片組、散熱系統和主機板,只需要刷新BIOS軟體即可,這對於主機板廠商、計算機廠商和最終用戶的投資保護是非常有利的。
客戶可以利用其現有的90納米基礎設施,通過BIOS更改移植到基於雙核心的系統。計算機廠商可以輕鬆地提供同一硬體的單核心與雙核心版本,使那些既想提高性能又想保持IT環境穩定性的客戶能夠在不中斷業務的情況下升級到雙核心。在一個機架密度較高的環境中,通過在保持電源與基礎設施投資不變的情況下移植到雙核心,客戶的系統性能將得到巨大的提升。在同樣的系統占地空間上,通過使用雙核心處理器,客戶將獲得更高水平的計算能力和性能。
為什麼需要雙核技術?
從一些物理和電子的基礎知識得出,由於目前半導體工藝製造的原因,電晶體的缺陷會造成無法克服的功耗和發熱量。因此,如果要提高產品的性能,就要從其他技術手段來入手,如64位技術、對稱多處理技術(SMP)以及提出的雙核技術。
無法克服的功耗和發熱量
現在的晶片都是在單晶矽大圓片上製成的,大面積的圓片本身也難免存在一些缺陷,生產中的流程有時候也會給矽晶體帶來缺陷。另外雖然工廠的清潔程度非常之高,但在生產過程中還是免不了帶入一些雜質,互連層在製造中也會引入自己的缺陷形式。這樣大規模的晶片很難保證全無任何缺陷。現在半導體進入90納米以下的工藝,缺陷和雜質帶來的影響就更為普遍,電晶體的尺寸已經和某些缺陷或雜質的尺寸在一個量級,甚至電晶體尺寸更小。一般來說,非致命的缺陷會造成電路性能下降,為彌補缺陷帶來的損失,就需要給電路更高的電壓和更大的電流,許多缺陷在降低電晶體性能的同時還會增加電晶體的功耗,以前CMOS數字電路的主要功耗是工作時的動態功耗,但到了90nm工藝以後,情況發生了很大變化,許多原來基本可以忽略不計的功耗因素現在都占據了較大的比重,例如電路互連損耗,泄漏損耗。其中,泄漏損耗的影響急劇增加。這就是為什麼採用0.09微米工藝之後,各種處理器的發熱量和功耗還是一路呈攀升趨勢的原因,高頻的Prescott處理器功耗將近100W,要知道,一個可以把焊錫快速融化的電烙鐵也不過50W左右,因此,高功耗和嚇人的發熱量成為CPU繼續向高頻挺進的一大障礙,當時就有很多人預言,4GHz的處理器誕生之後,大家將可以通過CPU散熱片來煮雞蛋。
高頻之外的解決方案
既然無法通過繼續提升頻率來實現更高的頻率,那么用戶對產品性能提升的需要應該如何得到滿足?
第一種做法是使用64位技術,為什麼64位運算會比32位運算性能強大,這個比較好理解,例如你使用32位的CPU,要向外輸出一個64位的數據,需要消耗兩個時脈,但是如果你使用64位的CPU,只要一個時脈就完成了。
另外一種做法就是使用對稱多處理技術,其基本理論就是用兩個處理器去完成一個處理器做的事,看上去就跟磁碟陣列技術一樣,RAID 0就是使用兩塊硬碟來同時存取一個檔案,各存取一半,因此花費的時間減半,假如使用4塊硬碟,就是每塊各存取1/4,所需時間自然更短;CPU的對稱多處理技術的工作原理也是這樣的。
對稱多處理技術的難處
要通過2個甚至4個硬碟實現高性能的陣列存儲並不難,安裝RAID控制器驅動即可,因為RAID控制器會自動控制各塊硬碟的工作方式,程式設計師或者說CPU只要告訴RAID控制器要讀出或寫入什麼數據,具體怎么分拆數據,幾塊硬碟如何分配讀寫等問題根本不需要計算機用戶、編程人員考慮,因此原有作業系統和軟體都不需要進行改動;但是CPU的對稱多處理工作就不同了,因為計算機的所有指令都是經CPU去執行的,要是編程人員只下令CPU去執行什麼指令而不告訴計算機哪顆CPU去執行這條指令,那么就會天下大亂,而且如果是兩顆CPU,指令的調度分配還比較好設計,如果是4-8顆,那么情況就非常複雜,就像兩台電梯的聯合控制程式容易寫,但是4台電梯的聯合控制程式非常難寫一樣,因為他們之間是2的2次方跟4的2次方這種關係。
如何用好對稱多處理
對稱多處理工作模式需要程式設計師設計的軟體本身就能支持多個CPU的指令調度,這樣所有CPU才是以最合理最高效的調度安排去協同工作。由於套用軟體大多都是採用大量的API函式開發的,所以擔任指令-機器互動角色的作業系統就是對稱多處理開發的根本和關鍵所在,一套作業系統能不能很好的協調多個CPU之間的工作關係,是多路模式能否成功發揮其性能的關鍵。
雙核的優勢
首先,雙核技術的引入是提高處理器性能的行之有效的方法。由於生產技術的限制,傳統通過提升工作頻率來提升處理器性能的作法目前面臨嚴重的阻礙,高頻CPU的耗電量和發熱量越來越大,已經給整機散熱帶來十分嚴峻的考驗。雙核技術可以很好的避免這一點。增加一個核心,處理器每個時鐘周期內可執行的單元數將增加一倍。
其次,引入雙核架構也將可以全面增加處理器的功能,這是一個十分重要的影響因素。雙處理器架構的引入和微軟下一代Longhorn(Vista)作業系統將在很大程度上促進虛擬技術的發展。
虛擬化技術在2006-2007年將成為計算機平台的新亮點。無論是Intel的VT(Virtualization Technology)技術還是AMD Pacifica技術,都可以讓一台物理計算機虛擬出若干個虛擬的系統,這些虛擬系統能使用同樣的PC資源獨立工作。換句話說,這些技術允許用戶在他們的PC上同時運行超過一個作業系統,以便每個作業系統解決特定的運算任務。比如,一個虛擬系統能夠掃描病毒,另外的虛擬系統則可以執行應用程式、文字處理或者玩遊戲。
雙核心技術與超執行緒技術的區別
超執行緒技術已經不是什麼新鮮事物了,但普通用戶可能與雙核心技術區分不開。例如開啟了超執行緒技術的
Pentium 4 630與Pentium D 820在作業系統中都同樣被識別為兩顆處理器,它們究竟是不是一樣的呢?這個問題確實具有迷惑性。
其實,可以簡單地把雙核心技術理解為兩個"物理"處理器,是一種"硬"的方式;而超執行緒技術只是兩個"邏輯"處理器,是一種"軟"的方式。
從原理上來說,超執行緒技術屬於Intel版本的多執行緒技術。這種技術可以讓單CPU擁有處理多執行緒的能力,而物理上只使用一個處理器。超執行緒技術為每個物理處理器設定了兩個入口-AS(Architecture State,架構狀態)接口,從而使作業系統等軟體將其識別為兩個邏輯處理器。
這兩個邏輯處理器像傳統處理器一樣,都有獨立的IA-32架構,它們可以分別進入暫停、中斷狀態,或直接執行特殊執行緒,並且每個邏輯處理器都擁有APIC(Advanced Programmable Interrupt Controller,高級可程式中斷控制器)。雖然支持超執行緒的Pentium 4能同時執行兩個執行緒,但不同於傳統的雙處理器平台或雙核心處理器,超執行緒中的兩個邏輯處理器並沒有獨立的執行單元、整數單元、暫存器甚至快取等等資源。它們在運行過程中仍需要共用執行單元、快取和系統匯流排接口。在執行多執行緒時兩個邏輯處理器均是交替工作,如果兩個執行緒都同時需要某一個資源時,其中一個要暫停並要讓出資源,要待那些資源閒置時才能繼續。因此,超執行緒技術所帶來的性能提升遠不能等同於兩個相同時鐘頻率處理器帶來的性能提升。可以說Intel的超執行緒技術僅可以看做是對單個處理器運算資源的最佳化利用。
而雙核心技術則是通過"硬"的物理核心實現多執行緒工作:每個核心擁有獨立的指令集、執行單元,與超執行緒中所採用的模擬共享機制完全不一樣。在作業系統看來,它是實實在在的雙處理器,可以同時執行多項任務,能讓處理器資源真正實現並行處理模式,其效率和性能提升要比超執行緒技術要高得多,不可同日而語。