多內核芯片將在市場(chǎng)中大展雄風(fēng)
當前,多內核處理器和并行架構成為了行業(yè)的一個(gè)新熱點(diǎn),過(guò)去微處理器公司希望不斷提高時(shí)鐘頻率和提供越來(lái)越多的指令級并發(fā)率(ILP)來(lái)提高微處理器的性能。
但這意味著(zhù)在性能提高的同時(shí),伴隨而來(lái)的是越來(lái)越大的功耗和不斷上升的成本,讓這種方法讓芯片跑得更快很久以前就已經(jīng)開(kāi)始得不償失。
從1986年到2002年,微處理器性能每年提高52%,每18個(gè)月性能就翻一番。但到2006年,這一進(jìn)步速度已下降到每年不足20%,因此今天微處理器性能翻番可能要花費5年時(shí)間。造成這一速度下降的具體原因有很多。最初,系統架構師不再能夠從ILP技術(shù)中挖掘出更多的增益。他們最常采用的訣竅包括簡(jiǎn)單指令的預提取,但他們現在已被非常復雜的技術(shù)(如執行溢出和分支預測)所包圍。在許多情況下,增加的復雜性已超過(guò)了增加的性能。用任務(wù)級和命令級并行性代替ILP已是獲得更多增益的唯一途徑。
功率是單內核處理器發(fā)展的等式已被改變的另一領(lǐng)域。在亞90納米工藝節點(diǎn)上,有效功率密度(已經(jīng)達到在核反應堆中發(fā)現的每平方厘米100W,并很快將上升到空間火箭噴嘴處發(fā)現的每平方厘米1000W)不是唯一的限制因素。由泄漏電流引起的靜態(tài)功耗現在可能已占到芯片總功耗的40%。
目前業(yè)界大多數人都同意,多內核是一個(gè)必然的發(fā)展方向:多內核設計的主要挑戰已經(jīng)成功地被業(yè)界克服,實(shí)際開(kāi)發(fā)大潮即將啟動(dòng)。多內核技術(shù)的發(fā)展背后有兩大主要推動(dòng)力。第一大推動(dòng)力是:‘真實(shí)世界是并行的’這一認知已經(jīng)變得很清晰。當然,臺式計算機經(jīng)常通過(guò)非??焖俚剞D換順序執行的任務(wù),讓用戶(hù)誤以為好幾件任務(wù)正在并行執行。來(lái)自業(yè)界的顯而易見(jiàn)的要求是更高的性能,從而導致更多的內核需要集成在一塊芯片上,而這將影響到現有的編程模式。
多內核和并行處理系統傳統上一直被認為是很難進(jìn)行編程的,因為它要求專(zhuān)用工具和專(zhuān)家知識(‘唯一能夠對該芯片編程的人是設計該芯片的架構工程師’)。這確實(shí)是為什么多內核處理器在歷史上一直不成功的主要原因。不過(guò),今天的產(chǎn)品(如picoChip的多內核DSP家族)可以利用基于標準的工具進(jìn)行配置和編程,而且芯片設計師和編程人員可以很直觀(guān)地理解這些工具。
但更加重要的是,當計算機科學(xué)家設法確定他們可用作通用構造塊來(lái)開(kāi)發(fā)更復雜程序的原型功能時(shí),他們幾乎總是發(fā)現這些構造塊在本質(zhì)上是并行工作的。而且,電子應用市場(chǎng)增長(cháng)最迅速的部分(例如多媒體處理和數據壓縮)正是這一并行性需求最顯著(zhù)的地方。
幫助設計師開(kāi)發(fā)將這一應用需求和并行架構很自然地融合在一起的產(chǎn)品正是近年來(lái)已經(jīng)取得許多技術(shù)進(jìn)步的領(lǐng)域之一。英特爾和AMD開(kāi)發(fā)的‘主流’處理器正在朝松散耦合的雙內核或四內核處理器方向發(fā)展,這一架構允許在不大幅改變現有編程模式的情況下獲得一些性能增益(大約提高2倍和4倍)。
目前已經(jīng)在市場(chǎng)中銷(xiāo)售的picoChip公司picoArray家族就是一種高效和方便的多內核產(chǎn)品,它是一個(gè)含有幾百個(gè)不同種類(lèi)處理器陣列的芯片,特別針對信號處理任務(wù)進(jìn)行了優(yōu)化。每個(gè)任務(wù)在一對一原則上分配給處理器,每個(gè)任務(wù)的處理可采用標準C或匯編進(jìn)行編程。芯片的性能與處理器的數量成線(xiàn)性關(guān)系,最為關(guān)鍵的是,普通工程師也可以很容易地以很高的效率對該芯片進(jìn)行編程。
picoArray在本質(zhì)上允許快速和直觀(guān)地實(shí)現并行計算任務(wù)(如無(wú)線(xiàn)基帶處理和軟件無(wú)線(xiàn)電),它也允許設計師充分利用這一異質(zhì)多內核架構。與同質(zhì)多內核架構相比,異質(zhì)多內核架構可以提供更多的計算能力、更好的功耗特性和更小的硅片面積,業(yè)界很早就認可了異質(zhì)多內核架構的這些優(yōu)點(diǎn),但一直缺乏直觀(guān)的實(shí)用的設計開(kāi)發(fā)工具。
除了不斷提高的可用性和業(yè)界對許多計算任務(wù)內在并行本質(zhì)的更多認可,多內核技術(shù)的采用又增添了一個(gè)新的推動(dòng)力。盡管時(shí)鐘頻率現在已達到3GHz,集成的晶體管數量也已達到幾億門(mén),但在過(guò)去的5年里,業(yè)內在單內核處理器方面已經(jīng)完全失去了發(fā)展的動(dòng)力。多內核架構提供的解決方案能夠解決已導致這一現象的所有挑戰。
像picoArray這樣的并行架構可在不止一個(gè)層面解決功率問(wèn)題。首先,它們已被證明在本質(zhì)上是執行一個(gè)給定功能的高效能方法,尤其是如果它們是由多個(gè)不同的功能模塊構成,而且每個(gè)功能模塊又是根據特定的應用而設計。其次,一個(gè)緊湊的多內核架構可以更自然地適應現代電源管理技術(shù),如時(shí)鐘門(mén)控和局部電源關(guān)閉,即任何在其時(shí)沒(méi)有參與動(dòng)態(tài)處理過(guò)程的器件可以暫時(shí)關(guān)閉電源。這一技術(shù)使得我們有可能更智能地處理動(dòng)態(tài)功耗和由于現代制造工藝而引起的靜態(tài)泄漏電流問(wèn)題。
多內核器件也有助于解決現代先進(jìn)半導體工藝帶來(lái)的另一個(gè)問(wèn)題,即器件正變得越來(lái)越不可靠。尤其在65nm和45nm節點(diǎn),“合格-失敗”方法正讓位于統計性能評估方法。此外,采用這些工藝制造的器件更易于產(chǎn)生硬錯誤和軟錯誤。
多內核架構使這些器件可以更自然地采用冗余設計技術(shù)(有段時(shí)間常見(jiàn)于存儲器生產(chǎn)中),它允許關(guān)閉器件中超出規格或錯誤的部分。一家微處理器供應商已經(jīng)在銷(xiāo)售其一款芯片的4內核、6內核和8內核版本,它們均基于一個(gè)8處理器設計。
功耗和呈統計變化的性能也已經(jīng)對單內核處理器系統的近期發(fā)展產(chǎn)生了間接的影響,因為它限制了芯片制造商通過(guò)增加的時(shí)鐘頻率來(lái)提高性能的能力。目前最高的3GHz時(shí)鐘頻率已經(jīng)被證明是處理器時(shí)鐘頻率的實(shí)際上限,而自1979年以來(lái)時(shí)鐘頻率一直是處理器制造商用于提高性能的實(shí)用方法。不過(guò),并行架構維持了恢復連續工藝縮小的好處的承諾,因為它使得制造商能夠實(shí)現每一代工藝都使每個(gè)芯片上的標準內核數量翻番的目標。
當然,使這些附加的內核做真正的工作是設計一個(gè)適當架構的問(wèn)題,而這至少包括處理器之間通信架構和計算單元本身的設計。它們兩者均平等地取決于設計流程和編程工具,它必須在單一環(huán)境內支持多種陣列大小。編程工具自動(dòng)配置并行單元的低級別細節、自動(dòng)為多個(gè)內核分配相應任務(wù)和配置互連的能力是至關(guān)重要的。一個(gè)便于使用的多內核設計環(huán)境如picoArray能夠使編程人員將精力集中在設計元素本身,而不是放在它們到底是如何實(shí)現的精確細節上。這與另一種并行結構器件FPGA正好相反,FPGA設計工程師必須處理時(shí)序收斂和行為綜合的細節。
這些問(wèn)題正與過(guò)去數年中在計算領(lǐng)域已發(fā)生的另一巨大變化捆綁在一起:大多數處理性能現在被它們轉移數據的能力而不是計算能力所限制。一次DRAM讀寫(xiě)可能要花費200個(gè)時(shí)鐘周期,而一次浮點(diǎn)乘法經(jīng)常只需要4個(gè)時(shí)鐘周期就能實(shí)現。成本也不僅僅只用時(shí)間來(lái)衡量,使用本地寄存器的效率比讀寫(xiě)全局存儲器高一個(gè)數量級,而這對能耗有限制的環(huán)境來(lái)說(shuō)可能是一個(gè)關(guān)鍵。
PicoArray是一個(gè)含有幾百個(gè)異質(zhì)處理器和存儲單元(或‘內核’)陣列的芯片,它專(zhuān)門(mén)針對信號處理任務(wù)而優(yōu)化。該陣列是異質(zhì)的,這些不同種類(lèi)的內核分別適合不同的任務(wù),但基本的構造模塊是一個(gè)16位的數字信號處理器。這是有意的,因為帶本地存儲器、乘加器和哈佛結構的16位處理器非常傳統和易于編程。多內核架構的創(chuàng )新和力量是其互連交換結構和編程模式:每個(gè)單元都有一個(gè)獨特的已獲專(zhuān)利的互連經(jīng)由一個(gè)雙緩沖接口對它進(jìn)行服務(wù),系統架構設計師在軟件編譯時(shí)對它進(jìn)行精確配置。
多個(gè)獨立的任務(wù)在一對一基礎上分配給每個(gè)處理器,每個(gè)處理器的處理過(guò)程采用標準ANSI C或匯編語(yǔ)言進(jìn)行編程。每個(gè)互連由工程師進(jìn)行描述和配置,這就允許工程師根據特定應用的需求對通信進(jìn)行優(yōu)化。
在本質(zhì)上,編程模式是一個(gè)方塊圖,每個(gè)方塊是自包含的,并通過(guò)明確定義的信號互連。理論范例是“順序通信”,但“適用于DSP的對象導向編程”是另一個(gè)描述,每個(gè)處理程序封裝在一個(gè)單獨的DSP內,它可在該DSP上獨立執行,并僅按定義好的方式通過(guò)嚴格類(lèi)型的鏈接與其它DSP進(jìn)行通信。這使得開(kāi)發(fā)過(guò)程可以更快,因為集成和驗證變得非常容易。
因此,多內核系統的設計師可以通過(guò)選擇正確的通信架構、實(shí)現本地和全局寄存器資源的正確平衡解決許多問(wèn)題。一個(gè)高效的通信交換結構甚至能夠通過(guò)內核之間的直接數據傳輸取代存儲器讀寫(xiě)。
有些架構的關(guān)鍵瓶頸之一已經(jīng)是互連帶寬,或更準確地說(shuō)是信號流的允許復雜度。例如,一些架構使用“NEWS”或“最近的鄰居”連接,這很快就限制了處理器的使用。而在picoArray架構下,每個(gè)陣列包括一個(gè)32位通信鏈接的正方形網(wǎng)孔,它在水平和垂直線(xiàn)交匯處采用了開(kāi)關(guān)矩陣單元。每個(gè)執行單元都有到網(wǎng)孔的多端口通道。通過(guò)在編譯時(shí)定義開(kāi)關(guān)矩陣的狀態(tài),網(wǎng)孔可配置成允許各單元之間進(jìn)行任何通信,包括多路結構如扇出和扇入。
這一方法可在各單元之間提供專(zhuān)有的確定性通信,每個(gè)單元被視為運行獨立的處理程序。由于這些單元的行為表現像“提供者和消費者”,即自動(dòng)處于等待狀態(tài)直到它們遇到請求時(shí)某個(gè)結果變成有效,從編程的角度來(lái)看,它們就可被當作異步功能調用。此時(shí)不需要任何形式的總線(xiàn)仲裁,從而可在硅片面積和程序執行速度兩方面降低通信開(kāi)銷(xiāo)。
這一通信資源和設計基礎架構的結合意味著(zhù),任務(wù)可以模塊化方式進(jìn)行編程、驗證和調試,因為我們認識到,盡管系統是集成的,但其各個(gè)組成部分將繼續與它們被單獨驗證時(shí)一樣工作(亦即“你仿真的就是你所得到的”)。這些相同的特性意味著(zhù),picoArray架構隨著(zhù)處理單元數量的增加,可提供絕對線(xiàn)性性能改善:隨著(zhù)半導體工藝一代一代地向前發(fā)展,這一架構可有效地替代傳統的時(shí)鐘頻率路線(xiàn)。
多內核架構被呼吁解決的最終問(wèn)題是一個(gè)人性化問(wèn)題。許多年來(lái),芯片已變得如此巨大以致于設計工程師不可能再從頭開(kāi)始理解它們,并設計或使用它們。所以設計師和編程人員已經(jīng)要依靠越來(lái)越高的抽象級來(lái)幫助理解。
但在65nm節點(diǎn)及以下,這也已經(jīng)變得不可能。信號完整性、時(shí)鐘抖動(dòng)和許多其它小范圍約束已經(jīng)變成很突出的問(wèn)題,并已使得設計工程師發(fā)現不可能再從頭開(kāi)始或基于上一代產(chǎn)品的抽象描述設計新的大型芯片。不過(guò),多內核架構提供了一種新的抽象模型,它允許設計工程師充分利用90nm以下芯片提供的數量龐大的晶體管。而且,就像我們已經(jīng)看到的那樣,當我們設計更小的子單元時(shí),只要該設計隨后能借助一個(gè)精心設計的通信基礎架構‘擴大’,設計、驗證和確認都可能變得更容易。
結論
自Jack Kilby和Bob Noyce分別在上世紀50年代后期提出硅平面工藝以來(lái),半導體工業(yè)一直在“更小和更快”的鼓聲中前進(jìn)。但到了今天,傳統的推動(dòng)力量(片上更多的晶體管和更高的時(shí)鐘速度)已經(jīng)用盡了?,F在設計師需要開(kāi)始考慮“更智能”,即便它意味著(zhù)要超過(guò)人類(lèi)幾十年來(lái)積累的智慧。隨著(zhù)象picoArray這樣的帶幾百個(gè)內核的產(chǎn)品進(jìn)入批量生產(chǎn)階段,以及它可被工程師采用在主流應用(如3G和WiMAX基帶)處理中獲得廣泛應用的標準工具輕松進(jìn)行編程,多內核架構在今天和未來(lái)的這一新工業(yè)秩序中看來(lái)將必然起一個(gè)關(guān)鍵的作用。
linux操作系統文章專(zhuān)題:linux操作系統詳解(linux不再難懂)
評論