文獻(xiàn)標(biāo)識(shí)碼: A
DOI:10.16157/j.issn.0258-7998.2017.03.001
中文引用格式: 黃樂(lè)天,,別麗華. 同構(gòu)與異構(gòu)片上多核系統(tǒng)的演進(jìn)過(guò)程[J].電子技術(shù)應(yīng)用,,2017,43(3):6-11,,20.
英文引用格式: Huang Letian,,Bie Lihua. Evaluation of homogeneous and heterogeneous multi-core System-on-Chip[J].Application of Electronic Technique,2017,,43(3):6-11,,20.
0 引言
信息與通信行業(yè)的飛速發(fā)展使得人類(lèi)生活發(fā)生了巨大變革,計(jì)算機(jī)技術(shù)作為整個(gè)信息與通信行業(yè)的關(guān)鍵支撐技術(shù),,在強(qiáng)大需求的驅(qū)動(dòng)下得到了迅猛的發(fā)展。對(duì)計(jì)算能力的巨大需求和單芯片內(nèi)可集成的晶體管數(shù)目的不斷增長(zhǎng)促進(jìn)了片上多核系統(tǒng)的誕生[1]與發(fā)展[2-4],。通過(guò)將多個(gè)簡(jiǎn)單的核心集成在同一塊芯片內(nèi)使得在單個(gè)芯片內(nèi)部可同時(shí)執(zhí)行多個(gè)線程或任務(wù),進(jìn)程和任務(wù)間通信延遲也大為降低,,極大地提高了系統(tǒng)的吞吐量[5],。自2010年以后,以大數(shù)據(jù)挖掘、機(jī)器學(xué)習(xí)為代表的新興信息技術(shù)領(lǐng)域的巨大發(fā)展,更進(jìn)一步加速了片上多核系統(tǒng)的發(fā)展,。
第一款被大眾所熟知的商用化片上多核系統(tǒng)是著名處理器芯片提供商之一的AMD公司面向個(gè)人電腦推出的ATHLON X2雙核中央處理器Central Processing Unit(CPU),該款CPU在商業(yè)上大獲成功,。此后商用化片上多核系統(tǒng)的研制開(kāi)始進(jìn)入高潮,。2005 年Intel發(fā)布了64位雙核處理器Montecito[6],IBM公司則發(fā)布了具有9個(gè)核心的Cell處理器[7],。此后的10年間,,片上多核系統(tǒng)開(kāi)始大量被應(yīng)用于各種信息基礎(chǔ)設(shè)備,成為高性能計(jì)算與信息處理平臺(tái)的核心器件,。
但實(shí)際上片上多核系統(tǒng)的研究開(kāi)始于上個(gè)世紀(jì)90年代中期[1],,在過(guò)去的20多年中片上多核系統(tǒng)架構(gòu)一直處于不斷發(fā)展和演進(jìn)中。由于應(yīng)用領(lǐng)域和研究人員的學(xué)術(shù)背景不同,,片上多核系統(tǒng)的研究從一開(kāi)始就有著明顯的“流派”之分,。隨著研究的的持續(xù)深入,片上多核系統(tǒng)出現(xiàn)了越來(lái)越多的技術(shù)分支,。對(duì)于很多剛接觸片上多核系統(tǒng)研究的碩士生和低年級(jí)博士生而言,,搞清楚這些技術(shù)分支的區(qū)別與聯(lián)系并不是一件輕松的工作。本文針對(duì)這一問(wèn)題,,將總結(jié)片上多核系統(tǒng)近20年來(lái)的發(fā)展歷程,,嘗試?yán)迩迤隙嗪讼到y(tǒng)發(fā)展的技術(shù)脈絡(luò)。希望通過(guò)這一分析總結(jié)出片上多核系統(tǒng)的發(fā)展趨勢(shì),,為廣大學(xué)習(xí)片上多核系統(tǒng)的朋友們提供參考依據(jù),。
1 片上多核系統(tǒng)的分類(lèi)
片上多核系統(tǒng)由于起源不同、應(yīng)用領(lǐng)域不同以及研究者的學(xué)術(shù)背景不同等原因,,發(fā)展出了不同的技術(shù)路線,。上文提到的Intel公司發(fā)布的Montecito處理器[6]和IBM公司發(fā)布的Cell處理器[7]就代表了兩種最主要的技術(shù)路線。一類(lèi)片上多核系統(tǒng)源于Symmetric Multi-Processing System(SMP)系統(tǒng),,被稱(chēng)之為Chip Multiprocessors (CMP)(國(guó)內(nèi)一般翻譯為單芯片多處理器),,主要用于高性能通用計(jì)算領(lǐng)域。另一類(lèi)片上多核系統(tǒng)則由片上系統(tǒng)Systemon-Chip(SoC)演進(jìn)而來(lái),,被稱(chēng)為Multi-Processors System-on-Chip(MPSoC),。這類(lèi)片上多核系統(tǒng)主要作為一種高端的嵌入式處理器被應(yīng)用于通信、信號(hào)處理,、多媒 體處理等領(lǐng)域,。本文中將介紹這兩類(lèi)片上多核系統(tǒng)的演進(jìn)歷史,在后文將分別使用CMP和MPSoC代稱(chēng)這兩類(lèi)片上多核系統(tǒng)架構(gòu),。
采用CMP架構(gòu)的片上多核系統(tǒng)通常被應(yīng)用于工作站,、服務(wù)器,、云計(jì)算平臺(tái)等通用計(jì)算設(shè)備,所運(yùn)行的主要應(yīng)用通常是以科學(xué)計(jì)算,、仿真模擬為代表的大數(shù)據(jù)量通用計(jì)算,。這類(lèi)片上多核系統(tǒng)大多采用數(shù)據(jù)并行的并行程序開(kāi)發(fā)模式,以共享存儲(chǔ)器的方式來(lái)交換數(shù)據(jù),。這樣的好處在于開(kāi)發(fā)難度較低,、程序的通用性較好,可以借用類(lèi)似于OpenMP[8]這樣已經(jīng)較為成熟的并行編程模型加以開(kāi)發(fā),。又由于科學(xué)計(jì)算,、仿真模擬這類(lèi)應(yīng)用的特點(diǎn)通常是數(shù)據(jù)量超大,但不同處理器上所運(yùn)行的核心程序往往是相同的,。因此采用共享存儲(chǔ)的方式使得多個(gè)處理器核心可以很容易共享同一塊虛擬地址空間,,這使得同一程序可以很方便地同時(shí)運(yùn)行在不同的核心上,也可以很方便地共享同一個(gè)操作系統(tǒng)或管理程序,。
MPSoC與CMP差不多同時(shí)開(kāi)始研究,,但MPSoC的研究者主要來(lái)源于嵌入式處理器芯片設(shè)計(jì)領(lǐng)域。采用MPSoC架構(gòu)的片上多核系統(tǒng)通常面向通信,、網(wǎng)絡(luò),、多媒體等高性能嵌入式計(jì)算應(yīng)用。參考文獻(xiàn)[9]和[10]歸納了運(yùn)行在MPSoC架構(gòu)的多核片上系統(tǒng)上的應(yīng)用的一些特征,。這些特征包括:通常是存儲(chǔ)密集(memory-intensive)型的應(yīng)用,、大多具備流計(jì)算的形式、對(duì)計(jì)算的實(shí)時(shí)性要求較高,、可以被劃分為若干獨(dú)立的子任務(wù)或子系統(tǒng)等,。由于這一類(lèi)應(yīng)用通常可以被劃分成若干獨(dú)立的子任務(wù)或子系統(tǒng),,因此各個(gè)核心通常被設(shè)計(jì)得相對(duì)獨(dú)立,。數(shù)據(jù)通常被某一核心獨(dú)立處理后再傳遞給下一核心處理,因而MPSoC架構(gòu)的多核系統(tǒng)大多采用任務(wù)并行的開(kāi)發(fā)模式,,一般不使用共享存儲(chǔ)機(jī)制而依靠核心之間的消息傳遞機(jī)制來(lái)直接完成數(shù)據(jù)的交換,。
但隨著研究的深入和技術(shù)的進(jìn)一步發(fā)展,CMP和MPSoC這兩類(lèi)主流的片上多核系統(tǒng)的特點(diǎn)也在不斷變化,。例如以Luca Benini為代表的一部分MPSoC的研究者也曾經(jīng)考慮開(kāi)發(fā)符合OpenMP標(biāo)準(zhǔn)的MPSoC架構(gòu)[11],。今后,全世界不同的研究者也必將在總結(jié)前人經(jīng)驗(yàn)的基礎(chǔ)上,,根據(jù)新的應(yīng)用提出更多新的架構(gòu),。
2 單芯片多處理器(CMP)演進(jìn)歷史與現(xiàn)狀
2.1 早期的單芯片多處理器架構(gòu)分析
Hydra處理器是1996年美國(guó)斯坦福大學(xué)研制集成了4個(gè)核心的處理器,它被認(rèn)為是首款具備CMP性質(zhì)的片上多核系統(tǒng)。Hydra處理器的架構(gòu)如圖1所示,。
Hydra處理器采用了4個(gè) MIPS 處理核心,,每個(gè)核心擁有私有的指令緩存(I-Cache)和數(shù)據(jù)緩存(D-Cache)。二級(jí)緩存為4個(gè)核心共享,,通過(guò)核心自身的存儲(chǔ)控制器(Memory Controller,,MC)及一組總線與二級(jí)緩存(L2 Cache)、主存儲(chǔ)器接口(Main Memory Interface)和輸入輸出總線接口(I/O Bus Interface)互連,。由于片上的二級(jí)緩存為4個(gè)核心所共享,,因此4個(gè)核心實(shí)質(zhì)上在邏輯上具備單一的內(nèi)存地址空間。這也使得共享同一個(gè)操作系統(tǒng)或管理程序成為可能,。
Hydra處理器為后續(xù)CMP架構(gòu)片上多核系統(tǒng)的發(fā)展奠定了基礎(chǔ),這一架構(gòu)的片上多核系統(tǒng)在后續(xù)的演進(jìn)過(guò)程中始終被Hydra處理器的初始設(shè)計(jì)所影響,。
2.2 單芯片多處理器架構(gòu)演進(jìn)過(guò)程
單芯片多處理器自Hydra處理器之后持續(xù)演進(jìn),,其改進(jìn)主要體現(xiàn)在內(nèi)部互聯(lián)結(jié)構(gòu)和片上存儲(chǔ)器的組織方式兩大方面。
在內(nèi)部互聯(lián)結(jié)構(gòu)方面的演進(jìn)主要體現(xiàn)在使用更為復(fù)雜的互聯(lián)結(jié)構(gòu)替代原本單一的總線互聯(lián)模式,。2000年由康柏計(jì)算機(jī)公司(Compaq Computer Corporation,,后與惠普公司合并成為新惠普的一部分)發(fā)布的Piranh處理器[13]在繼承Hydra處理器架構(gòu)的基礎(chǔ)上采用片內(nèi)交換互連(Switch)結(jié)構(gòu)替代了總線,從而可以支持集成更多的核心,。在很長(zhǎng)一段時(shí)期內(nèi),,這種基于Switch的架構(gòu)成為CMP的主流架構(gòu),例如2009年我國(guó)自主研發(fā)的四核龍芯3A處理器[14]依然采用了基于片內(nèi)交換的互聯(lián)方式,。
圖2所示為Piranh處理器架構(gòu)圖,,每個(gè)處理器芯片內(nèi)部包含有8個(gè)獨(dú)立的CPU單元,通過(guò)片內(nèi)的交換結(jié)構(gòu)和8個(gè)獨(dú)立的二級(jí)緩存模塊互聯(lián),。由于CPU可以通過(guò)內(nèi)部交換結(jié)構(gòu)訪問(wèn)8個(gè)獨(dú)立的二級(jí)緩存模塊中的任意一個(gè),,因此8個(gè)獨(dú)立緩存模塊在邏輯上構(gòu)成了一個(gè)完整的共享二級(jí)緩存。片內(nèi)互聯(lián)結(jié)構(gòu)不但為CPU訪問(wèn)共享存儲(chǔ)提供了通道,,CPU也可以通過(guò)片內(nèi)互聯(lián)結(jié)構(gòu)去訪問(wèn)一個(gè)共享的網(wǎng)絡(luò)引擎,。通過(guò)網(wǎng)絡(luò)引擎不同的芯片可以實(shí)現(xiàn)板級(jí)或機(jī)柜級(jí)片間互聯(lián),從而構(gòu)成一個(gè)更大的并行計(jì)算機(jī)系統(tǒng),。
但即使采用了Switch 的架構(gòu),,依然難以讓片內(nèi)核心數(shù)目超過(guò)8個(gè),片上網(wǎng)絡(luò)(Network on Chip,,NoC)逐步發(fā)展起來(lái)替代交換結(jié)構(gòu)成為CMP架構(gòu)片上多核系統(tǒng)內(nèi)部互聯(lián)的主流方案,。早在1997 年麻省理工學(xué)院MPSoC所研制的RAW微處理器架構(gòu)就開(kāi)始探索網(wǎng)絡(luò)化互連的方式,其具體架構(gòu)如圖3所示,。
RAW微處理器架構(gòu)采用了一種被稱(chēng)為T(mén)ile(有國(guó)內(nèi)文獻(xiàn)直譯為瓦片,,為避免歧義本文中均使用英文原文指代)的模塊劃分方式。這種劃分方法把CPU、 私有Cache(L1 Cache),、共享Cache(L2 Cache)的一個(gè)Bank,、網(wǎng)絡(luò)接口(Network Interface NI)等硬件資源構(gòu)建為一個(gè)獨(dú)立的Tile。不同的Tile在芯片規(guī)劃的平面內(nèi)按一定的規(guī)律整齊排列,,Tile和Tile之間通過(guò)NoC加以互聯(lián),。這種采用Tile來(lái)劃分和組織片上多核系統(tǒng)的方式優(yōu)勢(shì)在于每個(gè)核心比較規(guī)整,有利于芯片后端設(shè)計(jì)并具備較好的可擴(kuò)展性,。此后雖然有一些其他形式的核心劃分與組織方式的論文發(fā)表,,但基于Tile的劃分與組織方式始終被絕大部分研究者所繼承。
片上網(wǎng)絡(luò)成為CMP架構(gòu)的片上多核系統(tǒng)內(nèi)部互聯(lián)的主流方式之后,,片上緩存的組織方式也相應(yīng)發(fā)生了改變,。在使用總線或交換結(jié)構(gòu)的時(shí)代,CPU訪問(wèn)不同Cache Bank的時(shí)間是基本保持一致的,。但在使用片上網(wǎng)絡(luò)作為內(nèi)部互聯(lián)以后,,CPU訪問(wèn)不同的Cache Bank的時(shí)間已經(jīng)不可能保持一致了。因此一種被稱(chēng)為非均勻高速緩存體系結(jié)構(gòu)(Non-Uniform Cache Architecture,,NUCA)的概念被提出,。NUCA是基于片上網(wǎng)絡(luò)的CMP片上多核系統(tǒng)所必然要面臨的問(wèn)題,但對(duì)NUMA(Non-Uniform Memory Architecture)的研究也推動(dòng)了基于片上網(wǎng)絡(luò)的CMP片上多核系統(tǒng)向前持續(xù)演進(jìn),。改進(jìn)NUMA條件下CMP架構(gòu)片上多核系統(tǒng)的訪存效率,,也成為提升CMP架構(gòu)片上多核系統(tǒng)性能的主要途徑。由于這部分內(nèi)容涉及到較多存儲(chǔ)體系結(jié)構(gòu)方面的研究,,超出了本文所討論的范圍,,因而在此不再進(jìn)一步展開(kāi)討論。
經(jīng)過(guò)多年的發(fā)展,,以片上網(wǎng)絡(luò)為互聯(lián)基礎(chǔ),,以按NUMA體系組織片上緩存的做法已經(jīng)成為CMP架構(gòu)片上多核系統(tǒng)的主流設(shè)計(jì)方法。例如圖4所示的32核心SPARC M7處理器[16],。該款處理器共有32個(gè)核心,,每4個(gè)核心構(gòu)成一個(gè)組(文獻(xiàn)[16]中稱(chēng)其為SCC),總共8個(gè)組,。每個(gè)組內(nèi)部共享L2 Cache,,但其他組不能訪問(wèn)。L3 Cache為全局共享Cache,,可以被所有的所有核心訪問(wèn),。L3 Cache同樣被劃分為8個(gè)獨(dú)立的bank,和對(duì)應(yīng)的每個(gè)組一起組成了一個(gè)完整的Tile,。
SPARC M7處理器采用了片上網(wǎng)絡(luò)互聯(lián)不同的Tile,。為了更有效地互聯(lián)各個(gè)不同的Tile,研究者為SPARC M7處理器設(shè)計(jì)了三套不同的片上網(wǎng)絡(luò),分別是采用環(huán)網(wǎng)(Ring)結(jié)構(gòu)的請(qǐng)求網(wǎng)絡(luò)(Request Network),、采用廣播(Broadcasting)結(jié)構(gòu)的響應(yīng)網(wǎng)絡(luò)(Responses Network)以及采用網(wǎng)格(Mesh)結(jié)構(gòu)的數(shù)據(jù)網(wǎng)絡(luò)(Data Network),。不同的片上網(wǎng)絡(luò)分別傳送不同的控制信息和數(shù)據(jù),從而使得訪問(wèn)Cache的效率能最大限度的提高,。
除SPARC M7處理器之外,,Intel公司設(shè)計(jì)的E5-2600系列處理器[17]、IBM公司設(shè)計(jì)的Z系列處理器[18]等雖然實(shí)現(xiàn)細(xì)節(jié)上有所不同,,但基本上都按照按NUMA體系組織片上緩存并使用了片上網(wǎng)絡(luò)來(lái)實(shí)現(xiàn)互聯(lián),。這兩大特征已幾乎成為現(xiàn)代CMP架構(gòu)的多核片上系統(tǒng)的基本特征。
3 多處理器片上系統(tǒng)(MPSoC)演進(jìn)歷史與現(xiàn)狀
3.1 早期的多處理器片上系統(tǒng)架構(gòu)分析
在MPSoC誕生初期的主要代表是一些集成了多個(gè)數(shù)字信號(hào)處理器(Digital Signal Processor DSP)和微處理器(Microprocessor Unit MPU)的專(zhuān)用芯片[19-21],,主要被應(yīng)用于數(shù)字電視,、多媒體播放器等信號(hào)處理設(shè)備。與追求高性能的通用計(jì)算不同,,MPSoC 主要應(yīng)用領(lǐng)域所面臨的主要問(wèn)題是計(jì)算的實(shí)時(shí)性,。由于計(jì)算任務(wù)的確定性更強(qiáng),使得MPSoC的設(shè)計(jì)者和使用者能夠也必須要精確地劃分任務(wù)并合理地分配任務(wù)以應(yīng)對(duì)各種挑戰(zhàn),。圖5所示的Viper處理器即為最早的一批MPSoC之一。
從圖5中可以看出,,整個(gè)芯片可以被劃分為兩個(gè)相對(duì)獨(dú)立的子系統(tǒng),,分別以MIPS(PR3940)CPU和TriMedia(TM32)CPU為核心。圖5左側(cè)為以MIPS(PR3940)CPU為核心的子系統(tǒng),,這部分子系統(tǒng)的架構(gòu)類(lèi)似于一個(gè)通用的嵌入式SoC芯片,,集成了如UART、IEEE 1394協(xié)議控制器之類(lèi)的接口模塊,。圖5右側(cè)為以TriMedia(TM32)CPU為核心,,在這一子系統(tǒng)中集成了如MPEG-2視頻解碼器、視頻輸入處理器等多媒體處理單元,,實(shí)質(zhì)上構(gòu)成了一個(gè)專(zhuān)用的多媒體處理器,。因此可以很清楚地判斷Viper處理器中以MIPS(PR3940)CPU為核心的子系統(tǒng)主要負(fù)責(zé)通用處理器控制和數(shù)據(jù)傳輸方面的功能,而以TriMedia(TM32)CPU為核心的子系統(tǒng)則主要負(fù)責(zé)多媒體信號(hào)處理,。兩個(gè)子系統(tǒng)相對(duì)獨(dú)立,,通過(guò)Fast C-Bridge、MIPS C-Bridge以及C-Bridge 3個(gè)總線橋相互連接,。
Viper處理器的架構(gòu)很清晰地體現(xiàn)了MPSoC的一些典型特點(diǎn):按任務(wù)需求劃分為若干獨(dú)立的子系統(tǒng),,每個(gè)子系統(tǒng)完成一個(gè)專(zhuān)門(mén)的功能,子系統(tǒng)之間相對(duì)獨(dú)立等,。這種架構(gòu)設(shè)計(jì)方法充分體現(xiàn)了嵌入式系統(tǒng)的特性,,因而被后來(lái)的研究者所繼承和發(fā)揚(yáng)。
3.2 多處理器片上系統(tǒng)架構(gòu)演進(jìn)過(guò)程
和CMP架構(gòu)的片上多核系統(tǒng)類(lèi)似,隨著MPSoC架構(gòu)片上多核系統(tǒng)中核心數(shù)量的增加,,不同核心之間的互連方式也由總線演進(jìn)到了NoC這一過(guò)程,。其后也有部分研究者提出采用交換矩陣(Crossbar Matrix)[22]或點(diǎn)對(duì)點(diǎn)直連[23]的方式來(lái)實(shí)現(xiàn)片上互聯(lián)。但這些片上互聯(lián)方法或受制于帶寬無(wú)法支持集成太多的核心,,或自身復(fù)雜程度會(huì)隨著核心數(shù)量的增加而急劇增加,。
參考文獻(xiàn)[24]介紹了一種“過(guò)渡形態(tài)”的MPSoC架構(gòu)片上多核系統(tǒng)。在這顆芯片中采用了6×6陣列的形式來(lái)排列36個(gè)簡(jiǎn)單的DSP處理器核心,,其具體架構(gòu)如圖6所示,。
AsAP核心內(nèi)部有一個(gè)包含算術(shù)運(yùn)算單元(ALU)、乘累加單元(MAC)以及控制邏輯的運(yùn)算模塊,。以該模塊為核心增加64個(gè)字的指令存儲(chǔ)器和128個(gè)字的數(shù)據(jù)存儲(chǔ)器構(gòu)成了一個(gè)精簡(jiǎn)的可編程數(shù)字信號(hào)處理器,。通過(guò)兩個(gè)深度為32個(gè)字的FIFO構(gòu)成了處理器與其他處理器通信的接口。某一個(gè)AsAP核心只能支持和周?chē)噜彽暮诵耐ㄐ?,而無(wú)法做到與更多的核心通信,。由于很多信號(hào)處理類(lèi)應(yīng)用都可以被抽象成流水線結(jié)構(gòu),因此AsAP的互聯(lián)方式也可以支持大量的應(yīng)用,。文獻(xiàn)[24]中就給出了實(shí)現(xiàn)DCT變換和802.11a/g基帶信號(hào)處理兩個(gè)案例,。
AsAP的架構(gòu)雖然可以支持很多信號(hào)處理類(lèi)的應(yīng)用,但互聯(lián)的靈活性確實(shí)受到了很大的限制,。隨著核心數(shù)目和應(yīng)用復(fù)雜度的持續(xù)增加,,后續(xù)提出MPSoC架構(gòu)的片上多核系統(tǒng)都普遍采用了片上網(wǎng)絡(luò)來(lái)作為核間互聯(lián)的方式。
除互聯(lián)方式的演進(jìn)外,,MPSoC架構(gòu)的片上多核系統(tǒng)在演進(jìn)的過(guò)程中還出現(xiàn)了“同構(gòu)多核”和“異構(gòu)多核”兩種不同的發(fā)展路線,。
參考文獻(xiàn)[25]給出了一種典型的同構(gòu)MPSoC架構(gòu)片上多核系統(tǒng),這種芯片采用集成同構(gòu)處理器陣列來(lái)構(gòu)建MPSoC架構(gòu)片上多核系統(tǒng),。每一個(gè)獨(dú)立的處理器可以運(yùn)行某個(gè)特定的信號(hào)處理算法,,核心之間按照數(shù)據(jù)流的方式來(lái)組織多核互聯(lián)。同構(gòu)多核的優(yōu)勢(shì)在于通用性很好,,可以被用于實(shí)現(xiàn)不同的嵌入式系統(tǒng),。
參考文獻(xiàn)[26]則介紹了一種名為T(mén)omahawk2的異構(gòu)MPSoC架構(gòu)片上多核系統(tǒng),這種芯片往往是針對(duì)不同的應(yīng)用而專(zhuān)門(mén)定制的,,更接近于SoC技術(shù)的本源,。圖7給出了Tomahawk2的詳細(xì)架構(gòu)。
從圖7可以看出,,Tomahawk2中包含了Duo-PE,、CM、APP幾種不同類(lèi)型的處理器核心和FEC,、SD等專(zhuān)用算法IP核以及FPGA,、DDR-SDRAM等專(zhuān)用接口IP核,。CM(Core Manager)核用于芯片的管理,主要負(fù)責(zé)任務(wù)的映射和動(dòng)態(tài)調(diào)度,。APP(Application Processor)為應(yīng)用處理器,,負(fù)責(zé)運(yùn)行操作系統(tǒng)與應(yīng)用程序。Duo-PE是Tomahawk2中的主要運(yùn)算單元,,包含了一個(gè)DSP處理器和一個(gè)RISC處理器,,可以支持執(zhí)行各類(lèi)信號(hào)處理以及運(yùn)算任務(wù)。每個(gè)核心均涉及了獨(dú)立的時(shí)鐘生成模塊——ADPLL以及獨(dú)立的功耗管理模塊PMGT,。因此從宏觀上來(lái)說(shuō)每一個(gè)核心都可以工作在不同的電壓與頻率上,,整個(gè)芯片從全局上來(lái)看處于異步工作的狀態(tài)。為解決不同核心之間異步通信的問(wèn)題,,Tomahawk2采用了片上網(wǎng)絡(luò)來(lái)互聯(lián)各個(gè)核心,。不同的核心通過(guò)NI與片上網(wǎng)絡(luò)連接,而NI本身包含一個(gè)異步FIFO,,從而實(shí)質(zhì)上起到了連接兩個(gè)不同時(shí)鐘域的作用,。Tomahawk2可以加載/配置不同的程序以及設(shè)置不同的連接方式,從而實(shí)現(xiàn)不同的應(yīng)用,。除Tomahawk2外,,后續(xù)發(fā)布的如FAUST[27]等MPSoC架構(gòu)的片上多核系統(tǒng)也都采用了異構(gòu)集成的方式。隨著對(duì)芯片能效需求的提升,,根據(jù)實(shí)際的需求設(shè)計(jì)并集成專(zhuān)用處理器核從而最大化能效成為片上多核系統(tǒng)的主流趨勢(shì),。因此異構(gòu)MPSoC架構(gòu)的片上多核系統(tǒng)目前已經(jīng)成為主流。
雖然MPSoC架構(gòu)的片上多核系統(tǒng)的形態(tài)差異相當(dāng)大,,但卻基本都具備各核心之間相對(duì)獨(dú)立、數(shù)據(jù)傳輸依靠不同核心之間直接建立傳輸途徑而非通過(guò)共享存儲(chǔ)器中轉(zhuǎn)等特點(diǎn),。這些特點(diǎn)使得設(shè)計(jì)MPSoC架構(gòu)的片上多核系統(tǒng)時(shí),,如何合理地將系統(tǒng)劃分為不同核心為中心的子系統(tǒng)并用適當(dāng)?shù)姆绞郊右越M織和管理成為主要問(wèn)題。這一過(guò)程一般被抽象為任務(wù)劃分和任務(wù)映射問(wèn)題,。但由于這兩大問(wèn)題涉及到更多的內(nèi)容,,在本文中將不做詳細(xì)的介紹。
4 片上多核系統(tǒng)研究展望
經(jīng)過(guò)近20年的發(fā)展,,片上多核系統(tǒng)已經(jīng)經(jīng)歷了從萌芽到成熟的整個(gè)歷程,。無(wú)論是CMP架構(gòu)的片上多核系統(tǒng)還是MPSoC架構(gòu)的片上多核系統(tǒng)的相關(guān)研究都已經(jīng)取得了長(zhǎng)足的進(jìn)展,并有大量研究成果已經(jīng)大量應(yīng)用到實(shí)際的高端系統(tǒng)級(jí)芯片中,。
雖然片上多核系統(tǒng)已經(jīng)進(jìn)入到了成熟期,,但人類(lèi)對(duì)于產(chǎn)品性能的永不滿(mǎn)足追求依然將推動(dòng)片上多核持續(xù)發(fā)展。從目前來(lái)看,,片上多核系統(tǒng)的研究主要呈現(xiàn)以下趨勢(shì):
(1)片上多核系統(tǒng)內(nèi)部互聯(lián)方式復(fù)雜化,,多樣化,。雖然片上網(wǎng)絡(luò)已幾乎成為片上多核系統(tǒng)互聯(lián)的必然選擇,但其內(nèi)涵與外延都已發(fā)生了很大變化,。采用標(biāo)準(zhǔn)Mesh拓?fù)浜桶粨Q的經(jīng)典片上網(wǎng)絡(luò)在實(shí)際的產(chǎn)品中并未廣泛采用,,而混合了多種不同互聯(lián)形式的定制化片上網(wǎng)絡(luò)以及總線與網(wǎng)絡(luò)混合的互聯(lián)結(jié)構(gòu)卻大行其道??梢灶A(yù)見(jiàn)未來(lái)會(huì)有更多更新的片上互聯(lián)結(jié)構(gòu)被提出,。
(2)由于加速器或?qū)S锰幚砥髟谕瓿商囟ㄈ蝿?wù)時(shí)具有較高的能效,在系統(tǒng)中集成越來(lái)越多的專(zhuān)用而非通用的核心將成為必然,。同時(shí)CMP和MPSoC兩種架構(gòu)也在逐步走向融合,。參考文獻(xiàn)[28]給出了一種現(xiàn)代異構(gòu)多核片上系統(tǒng)的架構(gòu),在處理器節(jié)點(diǎn)內(nèi)部采用了CMP架構(gòu),,而整個(gè)片上系統(tǒng)宏觀上來(lái)看卻是一種MPSoC架構(gòu),。這種混合架構(gòu)必將對(duì)片上多核系統(tǒng)的架構(gòu)組織和運(yùn)行管理提出更大的挑戰(zhàn),也將成為未來(lái)的一大研究熱點(diǎn),。
(3)與片上多核系統(tǒng)往“異構(gòu)”發(fā)展相適應(yīng)的是以“軟件為核心”的設(shè)計(jì)方法將成為未來(lái)設(shè)計(jì)的主流思潮,。以往的設(shè)計(jì)方法是先有基礎(chǔ)的硬件平臺(tái),在此基礎(chǔ)上再設(shè)計(jì)相應(yīng)的軟件來(lái)實(shí)現(xiàn)功能,。而“以軟件為核心”的設(shè)計(jì)方法則要求硬件設(shè)計(jì)服從軟件設(shè)計(jì)的需求,,通過(guò)定制專(zhuān)用的核心實(shí)現(xiàn)軟件處理的加速。目前這一方法尚在研究中,,還缺乏成熟的設(shè)計(jì)流程和設(shè)計(jì)模式,。
片上多核系統(tǒng)是系統(tǒng)級(jí)芯片發(fā)展到一定階段的必然產(chǎn)物,也是當(dāng)前高端系統(tǒng)級(jí)芯片的主要實(shí)現(xiàn)形式,。隨著技術(shù)的進(jìn)步和需求的推動(dòng),,未來(lái)片上多核系統(tǒng)仍然將不斷有新的研究熱點(diǎn)出現(xiàn)。
參考文獻(xiàn)
[1] OLUKOTUN K,,NAYFEH B A,,HAMMOND L,et al.The case for a single-chip multiprocessor[J].Acm Sigops Operating Systems Review,,1996,,31(9):2-11.
[2] WAINGOLD E,TAYLOR M,,SRIKRISHNA D,,et al.Baring it all to software:Raw machines[J].Computer,1997,,30(9):86-93.
[3] TAYLOR M B,,KIM J,MILLER J,,et al.The raw micropro-cessor:A computational fabric for software circuits and general-purpose programs[J].IEEE Micro,,2002,,22(2):25-35.
[4] TAYLOR M B,LEE W,,MILLER J,,et al.Evaluation of the raw microprocessor:An exposed-wire delay architecture for ILP and streams[J].Acm Sigarch Computer Architecture News,2004,,32(2):2-13.
[5] GORDON M I,,THIES W,AMARASINGHE S.Exploiting coarse-grained task,,data,,and pipelineparallelism in stream programs[J].Acm Sigarch Computer Architecture News,2010,,41(11):151-162.
[6] MCNAIRY C,,BHATIA R.Montecito:A dual-core,dual-thread itanium processor[J].IEEE Micro,,2005,,25(2):10-20.
[7] KAHLE J.The cell processor architecture[C].38th annual IEEE/ACM International Symposium on Microarchitecture,Washington,,DC,,2005:49-56.
[8] DAGUM L,MENON R.OpenMP:an industry standard API for shared-memory programming[J].IEEE Computational Science and Engineering,,1998,,5(1):46-55.
[9] WOLF W.Multiprocessor system-on-chip technology[J].IEEE Signal Processing Magazine,2009,,26(6):50-54.
文獻(xiàn)[10-28]略
作者信息:
黃樂(lè)天1,,別麗華2
(1.電子科技大學(xué),四川 成都610054,;2.華中農(nóng)業(yè)大學(xué) 信息學(xué)院,,湖北 武漢430070)