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