多核處理器

多核處理器

多核處理器是指在一枚處理器中集成兩個或多個完整的計算引擎(核心),此時處理器能支持系統匯流排上的多個處理器,由匯流排控制器提供所有匯流排控制信號和命令信號。多核技術的開發源於工程師們認識到,僅僅提高單核晶片的速度會產生過多熱量且無法帶來相應的性能改善,先前的處理器產品就是如此。他們認識到,在先前產品中以那種速率,處理器產生的熱量很快會超過太陽表面。即便是沒有熱量問題,其性價比也令人難以接受,速度稍快的處理器價格要高很多。

基本介紹

  • 中文名:多核處理器
  • 外文名:Multi-core processor
  • 定義:集成兩個或多個完整的計算引擎
  • 首個產品:奔騰D和奔騰四至尊版840
  • 技術優勢:採用了執行緒級並行編程
  • 發行時間:2005年4月
技術發展,發展歷程,技術優勢,技術瓶頸,技術原理,技術關鍵,技術意義,技術種類,技術套用,產品套用,英特爾,

技術發展

英特爾工程師們開發了多核晶片,使之滿足“橫向擴展”(而非“縱向擴充”)方法,從而提高性能。該架構實現了“分治法”戰略。通過劃分任務,執行緒套用能夠充分利用多個執行核心,並可在特定的時間內執行更多任務。多核處理器是單枚晶片(也稱為“矽核”),能夠直接插入單一的處理器插槽中,但作業系統會利用所有相關的資源,將每個執行核心作為分立的邏輯處理器。通過在兩個執行核心之間劃分任務,多核處理器可在特定的時鐘周期內執行更多任務。多核架構能夠使軟體更出色地運行,並創建一個促進未來的軟體編寫更趨完善的架構。儘管認真的軟體廠商還在探索全新的軟體並發處理模式,但是,隨著向多核處理器的移植,現有軟體無需被修改就可支持多核平台。作業系統專為充分利用多個處理器而設計,且無需修改就可運行。為了充分利用多核技術,套用開發人員需要在程式設計中融入更多思路,但設計流程與對稱多處理 (SMP)系統的設計流程相同,並且現有的單執行緒套用也將繼續運行。得益於執行緒技術的套用在多核處理器上運行時將顯示出卓越的性能可擴充性。此類軟體包括多媒體套用(內容創建、編輯,以及本地和數據流回放)、工程和其他技術計算套用以及諸如套用伺服器和資料庫等中間層與後層伺服器套用。多核技術能夠使伺服器並行處理任務,而在以前,這可能需要使用多個處理器,多核系統更易於擴充,並且能夠在更纖巧的外形中融入更強大的處理性能,這種外形所用的功耗更低、計算功耗產生的熱量更少。多核技術是處理器發展的必然。推動微處理器性能不斷提高的因素主要有兩個:半導體工藝技術的飛速進步和體系結構的不斷發展。半導體工藝技術的每一次進步都為微處理器體系結構的研究提出了新的問題,開闢了新的領域;體系結構的進展又在半導體工藝技術發展的基礎上進一步提高了微處理器的性能。這兩個因素是相互影響,相互促進的。一般說來,工藝和電路技術的發展使得處理器性能提高約20倍,體系結構的發展使得處理器性能提高約4倍,編譯技術的發展使得處理器性能提高約1.4倍。但是今天,這種規律性的東西卻很難維持。多核的出現是技術發展和套用需求的必然產物。
256執行緒的CPU256執行緒的CPU

發展歷程

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還可以繼續處理關機、關閉軟體等任務。

技術關鍵

單核處理器相比,多核處理器在體系結構、軟體、功耗和安全性設計等方面面臨著巨大的挑戰,但也蘊含著巨大的潛能。
CMP和SMT一樣,致力於發掘計算的粗粒度並行性。CMP可以看做是隨著大規模積體電路技術的發展,在晶片容量足夠大時,就可以將大規模並行處理機結構中的SMP(對稱多處理機)或DSM(分布共享處理機)節點集成到同一晶片內,各個處理器並行執行不同的執行緒或進程。在基於SMP結構的單晶片多處理機中,處理器之間通過片外Cache或者是片外的共享存儲器來進行通信。而基於DSM結構的單晶片多處理器中,處理器間通過連線分散式存儲器的片內高速交叉開關網路進行通信。
多核處理器
由於SMP和DSM已經是非常成熟的技術了,CMP結構設計比較容易,只是後端設計和晶片製造工藝的要求較高而已。正因為這樣,CMP成為了最先被套用於商用CPU的“未來”高性能處理器結構。
雖然多核能利用集成度提高帶來的諸多好處,讓晶片的性能成倍地增加,但很明顯的是原來系統級的一些問題便引入到了處理器內部。
核結構研究
同構還是異構
CMP的構成分成同構和異構兩類,同構是指內部核的結構是相同的,而異構是指內部的核結構是不同的。為此,面對不同的套用研究核結構的實現對未來微處理器的性能至關重要。核本身的結構,關係到整個晶片的面積、功耗和性能。怎樣繼承和發展傳統處理器的成果,直接影響多核的性能和實現周期。同時,根據Amdahl定理,程式的加速比決定於串列部分的性能,所以,從理論上來看似乎異構微處理器的結構具有更好的性能。
核所用的指令系統對系統的實現也是很重要的,多核之間採用相同的指令系統還是不同的指令系統,能否運行作業系統等,也將是研究的內容之一。
程式執行模型
處理器設計的首要問題是選擇程式執行模型。程式執行模型的適用性決定多核處理器能否以最低的代價提供最高的性能。程式執行模型是編譯器設計人員與系統實現人員之間的接口。編譯器設計人員決定如何將一種高級語言程式按一種程式執行模型轉換成一種目標機器語言程式; 系統實現人員則決定該程式執行模型在具體目標機器上的有效實現。當目標機器是多核體系結構時,產生的問題是: 多核體系結構如何支持重要的程式執行模型?是否有其他的程式執行模型更適於多核的體系結構?這些程式執行模型能多大程度上滿足套用的需要並為用戶所接受?
Cache設計
多級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美元不等。

相關詞條

熱門詞條

聯絡我們