多核處理器
集成兩個或多個完整的計算引擎
多核處理器是指在一枚處理器中集成兩個或多個完整的計算引擎(內核),此時處理器能支持系統匯流排上的多個處理器,由匯流排控制器提供所有匯流排控制信號和命令信號。多核技術的開發源於工程師們認識到,僅僅提高單核晶元的速度會產生過多熱量且無法帶來相應的性能改善,先前的處理器產品就是如此。他們認識到,在先前產品中以那種速率,處理器產生的熱量很快會超過太陽表面。即便是沒有熱量問題,其性價比也令人難以接受,速度稍快的處理器價格要高很多。
多核處理器
1971年,英特爾推出的全球第一顆通用型微處理器4004,由2300個晶體管構成。當時,公司的聯合創始人之一戈登摩爾(Gordon Moore),就提出後來被業界奉為信條的“摩爾定律”——每過18個月,晶元上可以集成的晶體管數目將增加一倍。
在一塊晶元上集成的晶體管數目越多,意味著運算速度即主頻就更快。今天英特爾的奔騰(Pentium)四至尊版840處理器,晶體管數量已經增加至2.5億個,相比當年的4004增加了10萬倍。其主頻也從最初的740kHz(每秒鐘可進行74萬次運算),增長到現在的3.9GHz(每秒鐘運算39億次)以上。
當然,CPU主頻的提高,或許在一定程度上也要歸功於1975年進入這個領域的AMD公司的挑戰。正是這樣的“雙雄會”,使得眾多計算機用戶有機會享受不斷上演的“速度與激情”。一些仍不滿足的發燒友甚至選擇了自己超頻,因為在玩很多遊戲時,更快的速度可以帶來額外的饕餮享受。
但到了2005年,當主頻接近4GHz時,英特爾和AMD發現,速度也會遇到自己的極限:那就是單純的主頻提升,已經無法明顯提升系統整體性能。
以英特爾發布的採用NetBurst架構的奔騰四CPU為例,它包括Willamette、Northwood和Prescott等三種採用不同核心的產品。利用冗長的運算流水線,即增加每個時鐘周期同時執行的運算個數,就達到較高的主頻。這三種處理器的最高頻率,分別達到了2.0G、3.4G和3.8G。
按照當時的預測,奔騰四在該架構下,最終可以把主頻提高到10GHz。但由於流水線過長,使得單位頻率效能低下,加上由於緩存的增加和漏電流控制不利造成功耗大幅度增加,3.6GHz奔騰四晶元在性能上反而還不如早些時推出的3.4GHz產品。所以,Prescott產品系列只達到3.8G,就戛然而止。
英特爾上海公司一位工程師在接受記者採訪時表示,Netburst微架構的好處在於方便提升頻率,可以讓產品的主頻非常高。但性能提升並不明顯,頻率提高50%,性能提升可能微不足道。因為Netburst微架構的效率較低,CPU計算資源未被充分利用,就像開車時“邊踩剎車邊踩油門”。
此外,隨著功率增大,散熱問題也越來越成為一個無法逾越的障礙。據測算,主頻每增加1G,功耗將上升25瓦,而在晶元功耗超過150瓦后,現有的風冷散熱系統將無法滿足散熱的需要。3.4GHz的奔騰四至尊版,晶體管達1.78億個,最高功耗已達135瓦。實際上,在奔騰四推出后不久,就在批評家那裡獲得了“電爐”的美稱。更有好事者用它來玩煎蛋的遊戲。
很顯然,當晶體管數量增加導致功耗增長超過性能增長速度后,處理器的可靠性就會受到致命性的影響。就連戈登摩爾本人似乎也依稀看到了“主頻為王”這條路的盡頭——2005年4月,他曾公開表示,引領半導體市場接近40年的“摩爾定律”,在未來10年至20年內可能失效。
多核心CPU解決方案(多核)的出現,似乎給人帶來了新的希望。早在上世紀90年代末,就有眾多業界人士呼籲用CMP(單晶元多處理器)技術來替代複雜性較高的單線程CPU。IBM、惠普、Sun等高端伺服器廠商,更是相繼推出了多核伺服器CPU。不過,由於伺服器價格高、應用面窄,並未引起大眾廣泛的注意。
直到AMD搶先手推出64位處理器后,英特爾才想起利用“多核”這一武器進行“帝國反擊戰”。2005年4月,英特爾倉促推出簡單封裝雙核的奔騰D和奔騰四至尊版840。AMD在之後也發布了雙核皓龍(Opteron)和速龍(Athlon) 64 X2和處理器。但真正的“雙核元年”,則被認為是2006年。這一年的7月23日,英特爾基於酷睿(Core)架構的處理器正式發布。2006年11月,又推出面向伺服器、工作站和高端個人電腦的至強(Xeon)5300和酷睿雙核和四核至尊版系列處理器。與上一代台式機處理器相比,酷睿2 雙核處理器在性能方面提高40%,功耗反而降低40%。作為回應,7月24日,AMD也宣布對旗下的雙核Athlon64 X2處理器進行大降價。由於功耗已成為用戶在性能之外所考慮的首要因素,兩大處理器巨頭都在宣傳多核處理器時,強調其“節能”效果。英特爾發布了功耗僅為50瓦的低電壓版四核至強處理器。而AMD的“Barcelona”四核處理器的功耗沒有超過95瓦。在英特爾高級副總裁帕特基辛格(Pat Gelsinger)看來,從單核到雙核,再到多核的發展,證明了摩爾定律還是非常正確的,因為“從單核到雙核,再到多核的發展,可能是摩爾定律問世以來,在晶元發展歷史上速度最快的性能提升過程”。
從應用需求上去看,越來越多的用戶在使用過程中都會涉及到多任務應用環境,日常應用中用到的非常典型的有兩種應用模式。
一種應用模式是一個程序採用了線程級并行編程,那麼這個程序在運行時可以把并行的線程同時交付給兩個核心分別處理,因而程序運行速度得到極大提高。這類程序有的是為多路工作站或伺服器設計的專業程序,例如專業圖像處理程序、非線視頻編緝程序、動畫製作程序或科學計算程序等。對於這類程序,兩個物理核心和兩顆處理器基本上是等價的,所以,這些程序往往可以不作任何改動就直接運行在雙核電腦上。
還有一些更常見的日常應用程序,例如Office、IE等,同樣也是採用線程級并行編程,可以在運行時同時調用多個線程協同工作,所以在雙核處理器上的運行速度也會得到較大提升。例如,打開IE瀏覽器上網。看似簡單的一個操作,實際上瀏覽器進程會調用代碼解析、Flash播放、多媒體播放、Java、腳本解析等一系列線程,這些線程可以并行地被雙核處理器處理,因而運行速度大大加快(實際上IE瀏覽器的運行還涉及到許多進程級的交互通信,這裡不再詳述)。由此可見,對於已經採用并行編程的軟體,不管是專業軟體,還是日常應用軟體,在多核處理器上的運行速度都會大大提高。
日常應用中的另一種模式是同時運行多個程序。許多程序沒有採用并行編程,例如一些文件壓縮軟體、部分遊戲軟體等等。對於這些單線程的程序,單獨運行在多核處理器上與單獨運行在同樣參數的單核處理器上沒有明顯的差別。但是,由於日常使用的最最基本的程序——操作系統——是支持并行處理的,所以,當在多核處理器上同時運行多個單線程程序的時候,操作系統會把多個程序的指令分別發送給多個核心,從而使得同時完成多個程序的速度大大加快。
另外,雖然單一的單線程程序無法體現出多核處理器的優勢,但是多核處理器依然為程序設計者提供了一個很好的平台,使得他們可以通過對原有的單線程序進行并行設計優化,以實現更好的程序運行效果。
上面介紹了多核心處理器在軟體上面的應用,但遊戲其實也是軟體的一種,作為一種特殊的軟體,對PC發展作出了較大的貢獻。一些多線程遊戲已經能夠發揮出多核處理器的優勢,對於單線程遊戲,相信遊戲廠商也將會改變編程策略,例如,一些遊戲廠商正在對原來的一些單線程遊戲進行優化,採用并行編程使得遊戲運行得更快。有的遊戲可以使用一個線程實現人物動畫,而使用另一個線程來載入地圖信息。或者使用一個線程來實現圖像渲染中的矩陣運算,而使用另一個來實現更高的人工智慧運算。如今,大量的支持多核心的遊戲湧現出來,從而使得多核處理器的優勢能得到進一步的發揮。
布賴恩特直言不諱地指出,要想讓多核完全發揮效力,需要硬體業和軟體業更多革命性的更新。其中,可編程性是多核處理器面臨的最大問題。一旦核心多過八個,就需要執行程序能夠并行處理。儘管在并行計算上,人類已經探索了超過40年,但編寫、調試、優化并行處理程序的能力還非常弱。
易觀國際分析師李也認為,“出於技術的挑戰,雙核甚至多核處理器被強加給了產業,而產業卻並沒有事先做好準備”。或許正是出於對這種失衡的擔心,中國國家智能計算機中心主任孫凝輝告訴《財經》記者,“十年以後,多核這條道路可能就到頭了”。在他看來,一味增加并行的處理單元是行不通的。并行計算機的發展歷史表明,并行粒度超過100以後,程序就很難寫,能做到128個以上的應用程序很少。CPU到了100個核以上后,現在并行計算機系統遇到的問題,在CPU一樣會存在。“如果解決不了主流應用并行化的問題,主流CPU發展到100個核就到頭了。現在還不知道什麼樣的革命性的進展能解決這些問題。”孫補充說。
實際上,市場研究公司In-Stat分析師吉姆克雷格(Jim McGregor)就承認,雖然英特爾已向外界展示了80核處理器原型,但尷尬的是,目前還沒有能夠利用這一處理器的操作系統。中科院軟體所并行計算實驗室副主任張雲泉也持類似的觀點。他對《財經》記者表示,這個問題實際一直就存在,但原來在超級計算機上才會遇到,所以,討論也多局限在學術界。而現在,所有用戶都要面對這樣的問題。
目前,多核心技術在應用上的優勢有兩個方面:為用戶帶來更強大的計算性能;更重要的,則是可滿足用戶同時進行多任務處理和多任務計算環境的要求。兩大巨頭都給消費者描繪出了使用多核處理器在執行多項任務時的美妙前景:同時可以檢查郵件、刻錄CD、修改照片、剪輯視頻,並且同時可以運行殺毒軟體。或者利用同一台電腦,父親在查看財務報表,女兒在打遊戲,母親在給遠方的朋友打網路電話。但並不是所有家庭只有一台電腦,也不是所有用戶都要用電腦一下子做那麼多事,更何況目前的大部分應用程序還並不能自動分割成多任務,分別交給多個核心去執行。所以,對於大多數用戶來說,多核所帶來的實際益處,很可能並不明顯。而多核所帶來的挑戰,或者說麻煩,卻是實實在在的。美國卡內基梅隆大學計算機系教授朗道布賴恩特(Randal E Bryant)在接受《財經》記者採訪時就坦稱,“這給軟體業製造了巨大的問題”。
多核CPU就是基板上集成有多個單核CPU,早期PD雙核需要北橋來控制分配任務,核心之間存在搶二級緩存的情況,後期酷睿自己集成了任務分配系統,再搭配操作系統就能真正同時開工,2個核心同時處理2“份”任務,速度快了,萬一1個核心死機,起碼另一個U還可以繼續處理關機、關閉軟體等任務。
與單核處理器相比,多核處理器在體系結構、軟體、功耗和安全性設計等方面面臨著巨大的挑戰,但也蘊含著巨大的潛能。
多核處理器
由於SMP和DSM已經是非常成熟的技術了,CMP結構設計比較容易,只是後端設計和晶元製造工藝的要求較高而已。正因為這樣,CMP成為了最先被應用於商用CPU的“未來”高性能處理器結構。
雖然多核能利用集成度提高帶來的諸多好處,讓晶元的性能成倍地增加,但很明顯的是原來系統級的一些問題便引入到了處理器內部。
同構還是異構
CMP的構成分成同構和異構兩類,同構是指內部核的結構是相同的,而異構是指內部的核結構是不同的。為此,面對不同的應用研究核結構的實現對未來微處理器的性能至關重要。核本身的結構,關係到整個晶元的面積、功耗和性能。怎樣繼承和發展傳統處理器的成果,直接影響多核的性能和實現周期。同時,根據Amdahl定理,程序的加速比決定於串列部分的性能,所以,從理論上來看似乎異構微處理器的結構具有更好的性能。
核所用的指令系統對系統的實現也是很重要的,多核之間採用相同的指令系統還是不同的指令系統,能否運行操作系統等,也將是研究的內容之一。
處理器設計的首要問題是選擇程序執行模型。程序執行模型的適用性決定多核處理器能否以最低的代價提供最高的性能。程序執行模型是編譯器設計人員與系統實現人員之間的介面。編譯器設計人員決定如何將一種高級語言程序按一種程序執行模型轉換成一種目標機器語言程序; 系統實現人員則決定該程序執行模型在具體目標機器上的有效實現。當目標機器是多核體系結構時,產生的問題是: 多核體系結構如何支持重要的程序執行模型?是否有其他的程序執行模型更適於多核的體系結構?這些程序執行模型能多大程度上滿足應用的需要並為用戶所接受?
多級Cache設計與一致性問題
處理器和主存間的速度差距對CMP來說是個突出的矛盾,因此必須使用多級Cache來緩解。目前有共享一級Cache的CMP、共享二級Cache的CMP以及共享主存的CMP。通常,CMP採用共享二級Cache的CMP結構,即每個處理器核心擁有私有的一級Cache,且所有處理器核心共享二級Cache。
Cache自身的體系結構設計也直接關係到系統整體性能。但是在CMP結構中,共享Cache或獨有Cache孰優孰劣、需不需要在一塊晶元上建立多級Cache,以及建立幾級Cache等等,由於對整個晶元的尺寸、功耗、布局、性能以及運行效率等都有很大的影響,因而這些都是需要認真研究和探討的問題。
另一方面,多級Cache又引發一致性問題。採用何種Cache一致性模型和機制都將對CMP整體性能產生重要影響。在傳統多處理器系統結構中廣泛採用的Cache一致性模型有: 順序一致性模型、弱一致性模型、釋放一致性模型等。與之相關的Cache一致性機制主要有匯流排的偵聽協議和基於目錄的目錄協議。目前的CMP系統大多採用基於匯流排的偵聽協議。
CMP處理器的各CPU核心執行的程序之間有時需要進行數據共享與同步,因此其硬體結構必須支持核間通信。高效的通信機制是CMP處理器高性能的重要保障,目前比較主流的片上高效通信機制有兩種,一種是基於匯流排共享的Cache結構,一種是基於片上的互連結構。
匯流排共享Cache結構是指每個CPU內核擁有共享的二級或三級Cache,用於保存比較常用的數據,並通過連接核心的匯流排進行通信。這種系統的優點是結構簡單,通信速度高,缺點是基於匯流排的結構可擴展性較差。
基於片上互連的結構是指每個CPU核心具有獨立的處理單元和Cache,各個CPU核心通過交叉開關或片上網路等方式連接在一起。各個CPU核心間通過消息通信。這種結構的優點是可擴展性好,數據帶寬有保證; 缺點是硬體結構複雜,且軟體改動較大。
也許這兩者的競爭結果不是互相取代而是互相合作,例如在全局範圍採用片上網路而局部採用匯流排方式,來達到性能與複雜性的平衡。
傳統微處理器中,Cache不命中或訪存事件都會對CPU的執行效率產生負面影響,而匯流排介面單元(BIU)的工作效率會決定此影響的程度。當多個CPU核心同時要求訪問內存或多個CPU核心內私有Cache同時出現Cache不命中事件時,BIU對這多個訪問請求的仲裁機制以及對外存儲訪問的轉換機制的效率決定了CMP系統的整體性能。因此尋找高效的多埠匯流排介面單元(BIU)結構,將多核心對主存的單字訪問轉為更為高效的猝發(burst)訪問; 同時尋找對CMP處理器整體效率最佳的一次Burst訪問字的數量模型以及高效多埠BIU訪問的仲裁機制將是CMP處理器研究的重要內容,目前Inter推出了最新的英特爾智能互連技術(QPI)技術匯流排,更大程度發掘了多核處理器的實力。
任務調度、中斷處理、同步互斥
對於多核CPU,優化操作系統任務調度演演算法是保證效率的關鍵。一般任務調度演演算法有全局隊列調度和局部隊列調度。前者是指操作系統維護一個全局的任務等待隊列,當系統中有一個CPU核心空閑時,操作系統就從全局任務等待隊列中選取就緒任務開始在此核心上執行。
這種方法的優點是CPU核心利用率較高。後者是指操作系統為每個CPU內核維護一個局部的任務等待隊列,當系統中有一個CPU內核空閑時,便從該核心的任務等待隊列中選取恰當的任務執行,這種方法的優點是任務基本上無需在多個CPU核心間切換,有利於提高CPU核心局部Cache命中率。目前多數多核CPU操作系統採用的是基於全局隊列的任務調度演演算法。
多核的中斷處理和單核有很大不同。多核的各處理器之間需要通過中斷方式進行通信,所以多個處理器之間的本地中斷控制器和負責仲裁各核之間中斷分配的全局中斷控制器也需要封裝在晶元內部。
另外,多核CPU是一個多任務系統。由於不同任務會競爭共享資源,因此需要系統提供同步與互斥機制。而傳統的用於單核的解決機制並不能滿足多核,需要利用硬體提供的“讀-修改-寫”的原子操作或其他同步互斥機制來保證。
半導體工藝的迅速發展使微處理器的集成度越來越高,同時處理器表面溫度也變得越來越高並呈指數級增長,每三年處理器的功耗密度就能翻一番。目前,低功耗和熱優化設計已經成為微處理器研究中的核心問題。CMP的多核心結構決定了其相關的功耗研究是一個至關重要的課題。
低功耗設計是一個多層次問題,需要同時在操作系統級、演演算法級、結構級、電路級等多個層次上進行研究。每個層次的低功耗設計方法實現的效果不同——抽象層次越高,功耗和溫度降低的效果越明顯。
當前Intel的CPU的功耗相對較低,得益於先進的英特爾構架和45納米、32納米製程工藝,同時Intel還專門為CPU開發了不少節能技術,比如C6深度節能技、英特爾智能功效管理 和主動管理技術 等等,Intel在移動CPU市場,更是憑藉超低電壓處理器(ULV)和凌動(Atom)系列處理器,遙遙領先於對手。
為了使晶元內核充分地工作,最起碼的要求是晶元能提供與晶元性能相匹配的存儲器帶寬,雖然內部Cache的容量能解決一些問題,但隨著性能的進一步提高,必須有其他一些手段來提高存儲器介面的帶寬,如增加單個管腳帶寬的DDR、DDR2、QDR、XDR等。同樣,系統也必須有能提供高帶寬的存儲器。所以,晶元對封裝的要求也越來越高,雖然封裝的管腳數每年以20%的數目提升,但還不能完全解決問題,而且還帶來了成本提高的問題,為此,怎樣提供一個高帶寬,低延遲的介面帶寬,是必須解決的一個重要問題。
隨著技術革新的發展,處理器的應用滲透到現代社會的各個層面,但是在安全性方面卻存在著很大的隱患。一方面,處理器結構自身的可靠性低下,由於超微細化與時鐘設計的高速化、低電源電壓化,設計上的安全係數越來越難以保證,故障的發生率逐漸走高。另一方面,來自第三方的惡意攻擊越來越多,手段越來越先進,已成為具有普遍性的社會問題。現在,可靠性與安全性的提高在計算機體系結構研究領域備受注目。
今後,CMP這類處理器晶元內有多個進程同時執行的結構將成為主流,再加上硬體複雜性、設計時的失誤增加,使得處理器晶元內部也未必是安全的,因此,安全與可靠性設計任重而道遠。
多核處理器代表了計算技術的一次創新。由於數字數據和網際網路的全球化,商業和消費者開始要求多核處理器帶來性能改進,這個重要創新就開始了;因為多核處理器比單核處理器具有性能和效率優勢,多核處理器將會成為被廣泛採用的計算模型。在驅動pc安全性和虛擬化技術的重大進程過程中,多核處理器扮演著中心作用,這些安全性和虛擬化技術的開發用於為商業計算市場提供更大的安全性、更好的資源利用率、創造更大價值。普通消費者用戶也期望得到前所未有的性能,這將極大地擴展其家庭pc和數字媒體計算系統的使用。多核處理器具有不增加功耗而提高性能的好處,實現更大的性能/能耗比。
在一個處理器中放入兩個或多個功能強大的計算核產生了一個重大的可能性。由於多核處理器能提供比單核處理器更好的性能和效率,下一代的軟體應用程序很有可能是基於多核處理器而開發的。不管這些應用是幫助專業的電影公司以更少的投入和更少的時間完成更真實的電影,還是以更徹底的方法使得pc更自然和直觀,多核處理器技術將永遠改變計算世界。多核處理器表達了amd了解顧客需求並且開發最能滿足客戶要求產品的意願。
微軟多核計算的主管Dan Reed稱,整個世界上很缺乏那些并行計算的研究人員,而一個間接的原因就是學院里對於并行計算的關注度不夠,而這些學院正是下一代軟體開發人員誕生的地方。越來越高的時鐘頻率導致應用程序的代碼運行的越來越快,而對於當前多核處理器來講這一規則雖然成立,但卻有所不同。而這種不同可以做一個形象的比喻,那就是一部跑車和一輛學校的巴士。當跑車能夠以很快的速度飛奔時,巴士雖然比較慢,但它可以載著更多的人前行。問題就是,簡單地在計算機CPU上增加多個核並不能增加傳統應用程序代碼的運行速度,這一結果是根據一項來自於Forrester研究公司的報告得出的。換句話說,複雜的工作需要拆分來填充這輛巴士上的空座位。Forrester的報告還談到:同時,當前四核處理器會激發更多的多處理器設計的思想,我們期待著2009年x86的伺服器使用64個處理器核,並且2012年台式機也可以實現這一夢想。
使得晶元的製造商以及主要的板級應用的軟體廠商意識到多核編程的機遇和挑戰。
單晶元多處理器(CMP)與同時多線程處理器(SimultaneousMultithreading,SMT),這兩種體系結構可以充分利用這些應用的指令級并行性和線程級并行性,從而顯著提高了這些應用的性能。從體系結構的角度看,SMT比CMP對處理器資源利用率要高,在克服線延遲影響方面更具優勢。CMP相對SMT的最大優勢還在於其模塊化設計的簡潔性。複製簡單設計非常容易,指令調度也更加簡單。同時SMT中多個線程對共享資源的爭用也會影響其性能,而CMP對共享資源的爭用要少得多,因此當應用的線程級并行性較高時,CMP性能一般要優於SMT。此外在設計上,更短的晶元連線使CMP比長導線集中式設計的SMT更容易提高晶元的運行頻率,從而在一定程度上起到性能優化的效果。總之,單晶元多處理器通過在一個晶元上集成多個微處理器核心來提高程序的并行性。每個微處理器核心實質上都是一個相對簡單的單線程微處理器或者比較簡單的多線程微處理器,這樣多個微處理器核心就可以并行地執行程序代碼,因而具有了較高的線程級并行性。由於CMP採用了相對簡單的微處理器作為處理器核心,使得CMP具有高主頻、設計和驗證周期短、控制邏輯簡單、擴展性好、易於實現、功耗低、通信延遲低等優點。此外,CMP還能充分利用不同應用的指令級并行和線程級并行,具有較高線程級并行性的應用如商業應用等可以很好地利用這種結構來提高性能。
并行計算技術是雲計算的核心技術,也是最具挑戰性的技術之一。多核處理器的出現增加了并行的層次性能使得并行程序的開發比以往更難。而當前業內並無有效的并行計算解決方案,無論是編程模型、開發語言還是開發工具,距離開發者的期望都有很大的差距。自動的并行化解決方案在過去的30年間已經被證明基本是死胡同,但傳統的手工式的并行程序開發方式又難以為普通的程序員所掌握。Intel、微軟、SUN、Cray等業內巨頭正投入大量人力物力進行相關的研究,但真正成熟的產品在短期內很難出現。可擴展性是雲計算時代并行計算的主要考量點之一,應用性能必須能隨著用戶的請求、系統規模的增大有效的擴展。當前目前大部分并行應用在超過一千個的處理器(核)上都難以獲得有效的加速性能,未來的許多并行應用必須能有效擴展到成千上萬個處理器上。這對開發者是巨大的挑戰。
從Power、UltraSPARC T1、安騰到雙核Opteron、至強Xeon,各個領域都顯示出,多核處理器計算平台勢必成為伺服器的主流或者說是強勢計算平台,但這只是上游硬體廠商的樂觀預計。並不是所有的操作系統和應用軟體都做好了迎接多核平台的準備,尤其是在數十年來均為單一線程開發應用的x86伺服器領域。微軟軟體架構師HerbSutter曾指出:軟體開發者對多核處理器時代的來臨準備不足。他說,軟體開發社區認識到處理器廠商被迫採用多核設計以應對處理器速度提升帶來的發熱問題,但卻沒有清楚地了解這樣的設計為軟體開發帶來多少額外的工作。
在過去一段長時間裡,x86系統上軟體的性能隨著來自Intel和AMD處理器速度越來越快而不斷提高,開發者只需對現有軟體程序作輕微改動就能坐觀其性能在隨著硬體性能的上升而不斷提升。不過,多核設計概念的出現迫使軟體世界不得不直面并行性(將單個任務拆分成多個小塊以便分別處理之後再重新組合的能力)問題。當然,為伺服器設計軟體的開發者已經解決了一些此類難題,因為多核處理器和多路系統在伺服器市場已經存在多年(在傳統的Unix領域),一些運行在RISC架構多核多路系統上的應用程序已經被設計成多線程以利用系統的并行處理能力。但是,在x86領域,應用程序開發者多年來一直停留在單線程世界,生產所謂的“順序軟體”。
現在的情況是軟體開發者必須找出新的開發軟體的方法,面向對象編程的興起增加了彙編語言的複雜性,并行編程也需要新的抽象層次。另一方面,處理器設計廠商在設計產品時也應該將軟體開發者考慮在內,“處理器的首要著眼點應該是可編程性,而不是速度。”Sutter說。多核處理器要想發揮出威力,關鍵在於并行化軟體支持,多核設計帶動并行化計算的推進,而給軟體帶來的影響更是革命性的。
Intel很早就通過超線程技術實現了邏輯上的雙處理器系統,可以并行計算,但這不過是對處理器閑置資源的一種充分利用而已,並且這種充分利用只有在特定的條件下,尤其是針對流水線比較長且兩種運算並不相互交叉的時候,才會有較高的效率,如編碼解碼、長期重複某種矩陣運算以及一些沒有經過仔細編寫的軟體等。
即使IBM的Power5架構,也需要跟最新的操作系統進行融合,加上運行在其上的軟體,才有可能利用併發多線程。虛擬化技術在一定程度上能夠處理一些因為多核帶來的問題,可以讓應用軟體和操作系統在透明的環境下對處理器資源進行分配和管理。
目前在對稱多處理器方面,操作系統對資源的分配和管理並沒有本質的改變,多以對稱的方式進行平均分配。也就是說,在操作系統層面,當一個任務到來時,剝離成為兩個并行的線程,因為線程之間需要交流以及操作系統監管,它導致的效率損失要比硬體層面大得多。並且,多數軟體並沒有充分考慮到雙核乃至多核的運行情況,導致線程的平均分配時間以及線程之間的溝通時間都會大大增加,尤其是當線程需要反覆訪問內存的時候。目前,多數操作系統還沒有完全實現自由的資源分配,如IBM是通過AIX 5.3L來支持Power5上的虛擬化功能,才實現了資源的動態調配和劃分的。
從長遠來看,需要使用虛擬化技術才可能實現操作系統對任務的具體劃分,這很可能改變一些通用的編程模式。
2009年9月6日下午,英特爾在北京發布了業界首款專為多路(MP)伺服器設計的四核英特爾®至強®7300系列伺服器處理器。與英特爾前代雙核產品相比,此次發布的六款全新四核至強®7300系列處理器的性能和性能功耗比分別提升了兩倍和三倍之多。而隨著這些產品的發布,英特爾在不到15個月的時間內完成了向創新和高能效的英特爾®酷睿™微體系架構的快速切換。
據了解,此次推出的至強®7300系列產品包括主頻高達2.93GHz處理器(功耗為130瓦),幾款80瓦處理器,和一款針對四插槽刀片式伺服器和高密度機架式伺服器優化的50瓦版處理器(主頻為1.86GHz)。具備數據流量優化(Data Traffic Optimizations)特性的英特爾®7300晶元組採用平衡的平台設計,具有多項全新技術,以改善數據在處理器、內存和I/O之間的傳輸能力。此外,英特爾還發布了一款50瓦(每內核12.5瓦)的處理器,以推動四插槽刀片式伺服器和高密度機架式伺服器等高能效超密度部署產品的發展。
在晶元設計方面,除內核數量增加一倍之外,相對於前代英特爾多路平台,至強®7300系列處理器和英特爾®7300晶元組所支持的內存容量是原來的4倍,並能支持非常高的整合比例,以減少空間、降低功耗和運營成本。
預計今後將有超過50家的系統製造商發售基於英特爾®至強®7300系列處理器的伺服器,其中包括戴爾、Egenera、富士通、富士通-西門子、日立、惠普、IBM、NEC、Sun、超微和優利等。針對需要基於全新英特爾®至強®7300系列處理器的完整平台的渠道客戶,英特爾特別為其提供了英特爾®S7000FC4UR伺服器平台。該款平台可提供強勁的可擴展性能、業經驗證的企業級可靠性,用於基礎設施的虛擬化和整合。
許多軟體廠商也為基於英特爾®至強®7300系列處理器的平台提供了創新性的支持虛擬化和性能擴展的解決方案,如BEA、微軟、甲骨文、SAP和VMware等。此外,Solaris 操作系統和其上運行的數千款應用能夠充分利用英特爾®至強®7300 系列處理器平台的領先性能優勢,為英特爾®至強®伺服器用戶提供企業級、支持關鍵任務的UNIX操作系統環境。
這些全新四核處理器的定價根據主頻、特性和客戶定購數量的不同,其千枚單價從856美元至2,301美元不等。