複製鏈接
請複製以下鏈接發送給好友

多核處理器

鎖定
多核處理器是指在一枚處理器中集成兩個或多個完整的計算引擎(內核),此時處理器能支持系統總線上的多個處理器,由總線控制器提供所有總線控制信號和命令信號。多核技術的開發源於工程師們認識到,僅僅提高單核芯片的速度會產生過多熱量且無法帶來相應的性能改善,先前的處理器產品就是如此。他們認識到,在先前產品中以那種速率,處理器產生的熱量很快會超過太陽表面。即便是沒有熱量問題,其性價比也令人難以接受,速度稍快的處理器價格要高很多。
中文名
多核處理器
外文名
Multi-core processor
定    義
集成兩個或多個完整的計算引擎
首個產品
奔騰D和奔騰四至尊版840
技術優勢
採用了線程級並行編程
發行時間
2005年4月

多核處理器技術發展

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

多核處理器發展歷程

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年台式機也可以實現這一夢想。
使得芯片的製造商以及主要的板級應用的軟件廠商意識到多核編程的機遇和挑戰。 [1] 

多核處理器技術種類

單芯片多處理器(CMP)與同時多線程處理器(SimultaneousMultithreading,SMT),這兩種體系結構可以充分利用這些應用的指令級並行性和線程級並行性,從而顯著提高了這些應用的性能。從體系結構的角度看,SMT比CMP對處理器資源利用率要高,在克服線延遲影響方面更具優勢。CMP相對SMT的最大優勢還在於其模塊化設計的簡潔性。複製簡單設計非常容易,指令調度也更加簡單。同時SMT中多個線程對共享資源的爭用也會影響其性能,而CMP對共享資源的爭用要少得多,因此當應用的線程級並行性較高時,CMP性能一般要優於SMT。此外在設計上,更短的芯片連線使CMP比長導線集中式設計的SMT更容易提高芯片的運行頻率,從而在一定程度上起到性能優化的效果。總之,單芯片多處理器通過在一個芯片上集成多個微處理器核心來提高程序的並行性。每個微處理器核心實質上都是一個相對簡單的單線程微處理器或者比較簡單的多線程微處理器,這樣多個微處理器核心就可以並行地執行程序代碼,因而具有了較高的線程級並行性。由於CMP採用了相對簡單的微處理器作為處理器核心,使得CMP具有高主頻、設計和驗證週期短、控制邏輯簡單、擴展性好、易於實現、功耗低、通信延遲低等優點。此外,CMP還能充分利用不同應用的指令級並行和線程級並行,具有較高線程級並行性的應用如商業應用等可以很好地利用這種結構來提高性能。

多核處理器技術應用

並行計算技術是雲計算的核心技術,也是最具挑戰性的技術之一。多核處理器的出現增加了並行的層次性能使得並行程序的開發比以往更難。而當前業內並無有效的並行計算解決方案,無論是編程模型、開發語言還是開發工具,距離開發者的期望都有很大的差距。自動的並行化解決方案在過去的30年間已經被證明基本是死衚衕,但傳統的手工式的並行程序開發方式又難以為普通的程序員所掌握。Intel、微軟、SUN、Cray等業內巨頭正投入大量人力物力進行相關的研究,但真正成熟的產品在短期內很難出現。可擴展性是雲計算時代並行計算的主要考量點之一,應用性能必須能隨着用户的請求、系統規模的增大有效的擴展。當前大部分並行應用在超過一千個的處理器(核)上都難以獲得有效的加速性能,未來的許多並行應用必須能有效擴展到成千上萬個處理器上。這對開發者是巨大的挑戰。 [2] 

多核處理器產品應用

從Power、UltraSPARC T1、安騰到雙核Opteron、至強Xeon,各個領域都顯示出,多核處理器計算平台勢必成為服務器的主流或者説是強勢計算平台,但這只是上游硬件廠商的樂觀預計。並不是所有的操作系統和應用軟件都做好了迎接多核平台的準備,尤其是在數十年來均為單一線程開發應用的x86服務器領域。微軟軟件架構師HerbSutter曾指出:軟件開發者對多核處理器時代的來臨準備不足。他説,軟件開發社區認識到處理器廠商被迫採用多核設計以應對處理器速度提升帶來的發熱問題,但卻沒有清楚地瞭解這樣的設計為軟件開發帶來多少額外的工作。
在過去一段長時間裏,x86系統上軟件的性能隨着來自Intel和AMD處理器速度越來越快而不斷提高,開發者只需對現有軟件程序作輕微改動就能坐觀其性能在隨着硬件性能的上升而不斷提升。不過,多核設計概念的出現迫使軟件世界不得不直面並行性(將單個任務拆分成多個小塊以便分別處理之後再重新組合的能力)問題。當然,為服務器設計軟件的開發者已經解決了一些此類難題,因為多核處理器和多路系統在服務器市場已經存在多年(在傳統的Unix領域),一些運行在RISC架構多核多路系統上的應用程序已經被設計成多線程以利用系統的並行處理能力。但是,在x86領域,應用程序開發者多年來一直停留在單線程世界,生產所謂的“順序軟件”。
情況是軟件開發者必須找出新的開發軟件的方法,面向對象編程的興起增加了彙編語言的複雜性,並行編程也需要新的抽象層次。另一方面,處理器設計廠商在設計產品時也應該將軟件開發者考慮在內,“處理器的首要着眼點應該是可編程性,而不是速度。”Sutter説。多核處理器要想發揮出威力,關鍵在於並行化軟件支持,多核設計帶動並行化計算的推進,而給軟件帶來的影響更是革命性的。
Intel很早就通過超線程技術實現了邏輯上的雙處理器系統,可以並行計算,但這不過是對處理器閒置資源的一種充分利用而已,並且這種充分利用只有在特定的條件下,尤其是針對流水線比較長且兩種運算並不相互交叉的時候,才會有較高的效率,如編碼解碼、長期重複某種矩陣運算以及一些沒有經過仔細編寫的軟件等。
即使IBM的Power5架構,也需要跟最新的操作系統進行融合,加上運行在其上的軟件,才有可能利用併發多線程。虛擬化技術在一定程度上能夠處理一些因為多核帶來的問題,可以讓應用軟件和操作系統在透明的環境下對處理器資源進行分配和管理。
對稱多處理器方面,操作系統對資源的分配和管理並沒有本質的改變,多以對稱的方式進行平均分配。也就是説,在操作系統層面,當一個任務到來時,剝離成為兩個並行的線程,因為線程之間需要交流以及操作系統監管,它導致的效率損失要比硬件層面大得多。並且,多數軟件並沒有充分考慮到雙核乃至多核的運行情況,導致線程的平均分配時間以及線程之間的溝通時間都會大大增加,尤其是當線程需要反覆訪問內存的時候。多數操作系統還沒有完全實現自由的資源分配,如IBM是通過AIX 5.3L來支持Power5上的虛擬化功能,才實現了資源的動態調配和劃分的。
從長遠來看,需要使用虛擬化技術才可能實現操作系統對任務的具體劃分,這很可能改變一些通用的編程模式。 [3] 

多核處理器英特爾

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美元不等。
參考資料