《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 可編程邏輯 > 設(shè)計(jì)應(yīng)用 > 同構(gòu)與異構(gòu)片上多核系統(tǒng)的演進(jìn)過程
同構(gòu)與異構(gòu)片上多核系統(tǒng)的演進(jìn)過程
2017年電子技術(shù)應(yīng)用第3期
黃樂天1,別麗華2
1.電子科技大學(xué),四川 成都610054;2.華中農(nóng)業(yè)大學(xué) 信息學(xué)院,湖北 武漢430070
摘要: 系統(tǒng)級(jí)芯片是高端電子系統(tǒng)的核心,而片上多核系統(tǒng)是近年來系統(tǒng)級(jí)芯片的主要實(shí)現(xiàn)形式。近十年來,片上多核系統(tǒng)一直是數(shù)字集成電路領(lǐng)域的熱點(diǎn),經(jīng)過眾多研究者的不斷努力誕生了大量很有意義的研究成果。但由于片上多核系統(tǒng)的研究者背景和應(yīng)用領(lǐng)域不同導(dǎo)致發(fā)展演進(jìn)過程較為復(fù)雜而難以理解。為減少這一問題的影響,總結(jié)了片上多核系統(tǒng)的演進(jìn)歷史與現(xiàn)狀,并對(duì)片上多核系統(tǒng)未來的發(fā)展提出了一些看法。
中圖分類號(hào): TN4
文獻(xiàn)標(biāo)識(shí)碼: A
DOI:10.16157/j.issn.0258-7998.2017.03.001
中文引用格式: 黃樂天,別麗華. 同構(gòu)與異構(gòu)片上多核系統(tǒng)的演進(jìn)過程[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.
Evaluation of homogeneous and heterogeneous multi-core System-on-Chip
Huang Letian1,Bie Lihua2
1.University of Electronic Science and Technology of China,Chengdu 610054,China; 2.College of Informatics,Huazhong Agricultural University,Wuhan 430070,China
Abstract: The system level chips are the most important devices of high-end electronic system and the multi-core system on chips are the main architectures of system level chips. The multi-core system on chips are well developed by the researchers and engineers. Unfortunately,the evolution path of the multi-core system is too complex to understand because of different applications and researchers’ background. So,the history of the evolution path of the multi-core system is discussed and concluded in this paper. It would help the reader to understand the history and the future of multi-core system on chips.
Key words : multi-core system on chips;CMP;MPSoC

0 引言

    信息與通信行業(yè)的飛速發(fā)展使得人類生活發(fā)生了巨大變革,計(jì)算機(jī)技術(shù)作為整個(gè)信息與通信行業(yè)的關(guān)鍵支撐技術(shù),在強(qiáng)大需求的驅(qū)動(dòng)下得到了迅猛的發(fā)展。對(duì)計(jì)算能力的巨大需求和單芯片內(nèi)可集成的晶體管數(shù)目的不斷增長促進(jìn)了片上多核系統(tǒng)的誕生[1]與發(fā)展[2-4]。通過將多個(gè)簡單的核心集成在同一塊芯片內(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)的研制開始進(jìn)入高潮。2005 年Intel發(fā)布了64位雙核處理器Montecito[6],IBM公司則發(fā)布了具有9個(gè)核心的Cell處理器[7]。此后的10年間,片上多核系統(tǒng)開始大量被應(yīng)用于各種信息基礎(chǔ)設(shè)備,成為高性能計(jì)算與信息處理平臺(tái)的核心器件。

    但實(shí)際上片上多核系統(tǒng)的研究開始于上個(gè)世紀(jì)90年代中期[1],在過去的20多年中片上多核系統(tǒng)架構(gòu)一直處于不斷發(fā)展和演進(jìn)中。由于應(yīng)用領(lǐng)域和研究人員的學(xué)術(shù)背景不同,片上多核系統(tǒng)的研究從一開始就有著明顯的“流派”之分。隨著研究的的持續(xù)深入,片上多核系統(tǒng)出現(xiàn)了越來越多的技術(shù)分支。對(duì)于很多剛接觸片上多核系統(tǒng)研究的碩士生和低年級(jí)博士生而言,搞清楚這些技術(shù)分支的區(qū)別與聯(lián)系并不是一件輕松的工作。本文針對(duì)這一問題,將總結(jié)片上多核系統(tǒng)近20年來的發(fā)展歷程,嘗試?yán)迩迤隙嗪讼到y(tǒng)發(fā)展的技術(shù)脈絡(luò)。希望通過這一分析總結(jié)出片上多核系統(tǒng)的發(fā)展趨勢,為廣大學(xué)習(xí)片上多核系統(tǒng)的朋友們提供參考依據(jù)。

1 片上多核系統(tǒng)的分類

    片上多核系統(tǒng)由于起源不同、應(yīng)用領(lǐng)域不同以及研究者的學(xué)術(shù)背景不同等原因,發(fā)展出了不同的技術(shù)路線。上文提到的Intel公司發(fā)布的Montecito處理器[6]和IBM公司發(fā)布的Cell處理器[7]就代表了兩種最主要的技術(shù)路線。一類片上多核系統(tǒng)源于Symmetric Multi-Processing System(SMP)系統(tǒng),被稱之為Chip Multiprocessors (CMP)(國內(nèi)一般翻譯為單芯片多處理器),主要用于高性能通用計(jì)算領(lǐng)域。另一類片上多核系統(tǒng)則由片上系統(tǒng)Systemon-Chip(SoC)演進(jìn)而來,被稱為Multi-Processors System-on-Chip(MPSoC)。這類片上多核系統(tǒng)主要作為一種高端的嵌入式處理器被應(yīng)用于通信、信號(hào)處理、多媒 體處理等領(lǐng)域。本文中將介紹這兩類片上多核系統(tǒng)的演進(jìn)歷史,在后文將分別使用CMP和MPSoC代稱這兩類片上多核系統(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ì)算。這類片上多核系統(tǒng)大多采用數(shù)據(jù)并行的并行程序開發(fā)模式,以共享存儲(chǔ)器的方式來交換數(shù)據(jù)。這樣的好處在于開發(fā)難度較低、程序的通用性較好,可以借用類似于OpenMP[8]這樣已經(jīng)較為成熟的并行編程模型加以開發(fā)。又由于科學(xué)計(jì)算、仿真模擬這類應(yīng)用的特點(diǎn)通常是數(shù)據(jù)量超大,但不同處理器上所運(yùn)行的核心程序往往是相同的。因此采用共享存儲(chǔ)的方式使得多個(gè)處理器核心可以很容易共享同一塊虛擬地址空間,這使得同一程序可以很方便地同時(shí)運(yùn)行在不同的核心上,也可以很方便地共享同一個(gè)操作系統(tǒng)或管理程序。

    MPSoC與CMP差不多同時(shí)開始研究,但MPSoC的研究者主要來源于嵌入式處理器芯片設(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)等。由于這一類應(yīng)用通??梢员粍澐殖扇舾瑟?dú)立的子任務(wù)或子系統(tǒng),因此各個(gè)核心通常被設(shè)計(jì)得相對(duì)獨(dú)立。數(shù)據(jù)通常被某一核心獨(dú)立處理后再傳遞給下一核心處理,因而MPSoC架構(gòu)的多核系統(tǒng)大多采用任務(wù)并行的開發(fā)模式,一般不使用共享存儲(chǔ)機(jī)制而依靠核心之間的消息傳遞機(jī)制來直接完成數(shù)據(jù)的交換。

    但隨著研究的深入和技術(shù)的進(jìn)一步發(fā)展,CMP和MPSoC這兩類主流的片上多核系統(tǒng)的特點(diǎn)也在不斷變化。例如以Luca Benini為代表的一部分MPSoC的研究者也曾經(jīng)考慮開發(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年美國斯坦福大學(xué)研制集成了4個(gè)核心的處理器,它被認(rèn)為是首款具備CMP性質(zhì)的片上多核系統(tǒng)。Hydra處理器的架構(gòu)如圖1所示。

yg1-t1.gif

    Hydra處理器采用了4個(gè) MIPS 處理核心,每個(gè)核心擁有私有的指令緩存(I-Cache)和數(shù)據(jù)緩存(D-Cache)。二級(jí)緩存為4個(gè)核心共享,通過核心自身的存儲(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)過程中始終被Hydra處理器的初始設(shè)計(jì)所影響。

2.2 單芯片多處理器架構(gòu)演進(jìn)過程

    單芯片多處理器自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)替代了總線,從而可以支持集成更多的核心。在很長一段時(shí)期內(nèi),這種基于Switch的架構(gòu)成為CMP的主流架構(gòu),例如2009年我國自主研發(fā)的四核龍芯3A處理器[14]依然采用了基于片內(nèi)交換的互聯(lián)方式。

    圖2所示為Piranh處理器架構(gòu)圖,每個(gè)處理器芯片內(nèi)部包含有8個(gè)獨(dú)立的CPU單元,通過片內(nèi)的交換結(jié)構(gòu)和8個(gè)獨(dú)立的二級(jí)緩存模塊互聯(lián)。由于CPU可以通過內(nèi)部交換結(jié)構(gòu)訪問8個(gè)獨(dú)立的二級(jí)緩存模塊中的任意一個(gè),因此8個(gè)獨(dú)立緩存模塊在邏輯上構(gòu)成了一個(gè)完整的共享二級(jí)緩存。片內(nèi)互聯(lián)結(jié)構(gòu)不但為CPU訪問共享存儲(chǔ)提供了通道,CPU也可以通過片內(nèi)互聯(lián)結(jié)構(gòu)去訪問一個(gè)共享的網(wǎng)絡(luò)引擎。通過網(wǎng)絡(luò)引擎不同的芯片可以實(shí)現(xiàn)板級(jí)或機(jī)柜級(jí)片間互聯(lián),從而構(gòu)成一個(gè)更大的并行計(jì)算機(jī)系統(tǒng)。

yg1-t2.gif

    但即使采用了Switch 的架構(gòu),依然難以讓片內(nèi)核心數(shù)目超過8個(gè),片上網(wǎng)絡(luò)(Network on Chip,NoC)逐步發(fā)展起來替代交換結(jié)構(gòu)成為CMP架構(gòu)片上多核系統(tǒng)內(nèi)部互聯(lián)的主流方案。早在1997 年麻省理工學(xué)院MPSoC所研制的RAW微處理器架構(gòu)就開始探索網(wǎng)絡(luò)化互連的方式,其具體架構(gòu)如圖3所示。

yg1-t3.gif

    RAW微處理器架構(gòu)采用了一種被稱為Tile(有國內(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之間通過NoC加以互聯(lián)。這種采用Tile來劃分和組織片上多核系統(tǒng)的方式優(yōu)勢在于每個(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訪問不同Cache Bank的時(shí)間是基本保持一致的。但在使用片上網(wǎng)絡(luò)作為內(nèi)部互聯(lián)以后,CPU訪問不同的Cache Bank的時(shí)間已經(jīng)不可能保持一致了。因此一種被稱為非均勻高速緩存體系結(jié)構(gòu)(Non-Uniform Cache Architecture,NUCA)的概念被提出。NUCA是基于片上網(wǎng)絡(luò)的CMP片上多核系統(tǒng)所必然要面臨的問題,但對(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)一步展開討論。

    經(jīng)過多年的發(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]中稱其為SCC),總共8個(gè)組。每個(gè)組內(nèi)部共享L2 Cache,但其他組不能訪問。L3 Cache為全局共享Cache,可以被所有的所有核心訪問。L3 Cache同樣被劃分為8個(gè)獨(dú)立的bank,和對(duì)應(yīng)的每個(gè)組一起組成了一個(gè)完整的Tile。

yg1-t4.gif

    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ù),從而使得訪問Cache的效率能最大限度的提高。

    除SPARC M7處理器之外,Intel公司設(shè)計(jì)的E5-2600系列處理器[17]、IBM公司設(shè)計(jì)的Z系列處理器[18]等雖然實(shí)現(xiàn)細(xì)節(jié)上有所不同,但基本上都按照按NUMA體系組織片上緩存并使用了片上網(wǎng)絡(luò)來實(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)的專用芯片[19-21],主要被應(yīng)用于數(shù)字電視、多媒體播放器等信號(hào)處理設(shè)備。與追求高性能的通用計(jì)算不同,MPSoC 主要應(yīng)用領(lǐng)域所面臨的主要問題是計(jì)算的實(shí)時(shí)性。由于計(jì)算任務(wù)的確定性更強(qiáng),使得MPSoC的設(shè)計(jì)者和使用者能夠也必須要精確地劃分任務(wù)并合理地分配任務(wù)以應(yīng)對(duì)各種挑戰(zhàn)。圖5所示的Viper處理器即為最早的一批MPSoC之一。

yg1-t5.gif

    從圖5中可以看出,整個(gè)芯片可以被劃分為兩個(gè)相對(duì)獨(dú)立的子系統(tǒng),分別以MIPS(PR3940)CPU和TriMedia(TM32)CPU為核心。圖5左側(cè)為以MIPS(PR3940)CPU為核心的子系統(tǒng),這部分子系統(tǒng)的架構(gòu)類似于一個(gè)通用的嵌入式SoC芯片,集成了如UART、IEEE 1394協(xié)議控制器之類的接口模塊。圖5右側(cè)為以TriMedia(TM32)CPU為核心,在這一子系統(tǒng)中集成了如MPEG-2視頻解碼器、視頻輸入處理器等多媒體處理單元,實(shí)質(zhì)上構(gòu)成了一個(gè)專用的多媒體處理器。因此可以很清楚地判斷Viper處理器中以MIPS(PR3940)CPU為核心的子系統(tǒng)主要負(fù)責(zé)通用處理器控制和數(shù)據(jù)傳輸方面的功能,而以TriMedia(TM32)CPU為核心的子系統(tǒng)則主要負(fù)責(zé)多媒體信號(hào)處理。兩個(gè)子系統(tǒng)相對(duì)獨(dú)立,通過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è)專門的功能,子系統(tǒng)之間相對(duì)獨(dú)立等。這種架構(gòu)設(shè)計(jì)方法充分體現(xiàn)了嵌入式系統(tǒng)的特性,因而被后來的研究者所繼承和發(fā)揚(yáng)。

3.2 多處理器片上系統(tǒng)架構(gòu)演進(jìn)過程

    和CMP架構(gòu)的片上多核系統(tǒng)類似,隨著MPSoC架構(gòu)片上多核系統(tǒng)中核心數(shù)量的增加,不同核心之間的互連方式也由總線演進(jìn)到了NoC這一過程。其后也有部分研究者提出采用交換矩陣(Crossbar Matrix)[22]或點(diǎn)對(duì)點(diǎn)直連[23]的方式來實(shí)現(xiàn)片上互聯(lián)。但這些片上互聯(lián)方法或受制于帶寬無法支持集成太多的核心,或自身復(fù)雜程度會(huì)隨著核心數(shù)量的增加而急劇增加。

    參考文獻(xiàn)[24]介紹了一種“過渡形態(tài)”的MPSoC架構(gòu)片上多核系統(tǒng)。在這顆芯片中采用了6×6陣列的形式來排列36個(gè)簡單的DSP處理器核心,其具體架構(gòu)如圖6所示。

yg1-t6.gif

    AsAP核心內(nèi)部有一個(gè)包含算術(shù)運(yùn)算單元(ALU)、乘累加單元(MAC)以及控制邏輯的運(yùn)算模塊。以該模塊為核心增加64個(gè)字的指令存儲(chǔ)器和128個(gè)字的數(shù)據(jù)存儲(chǔ)器構(gòu)成了一個(gè)精簡的可編程數(shù)字信號(hào)處理器。通過兩個(gè)深度為32個(gè)字的FIFO構(gòu)成了處理器與其他處理器通信的接口。某一個(gè)AsAP核心只能支持和周圍相鄰的核心通信,而無法做到與更多的核心通信。由于很多信號(hào)處理類應(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)處理類的應(yīng)用,但互聯(lián)的靈活性確實(shí)受到了很大的限制。隨著核心數(shù)目和應(yīng)用復(fù)雜度的持續(xù)增加,后續(xù)提出MPSoC架構(gòu)的片上多核系統(tǒng)都普遍采用了片上網(wǎng)絡(luò)來作為核間互聯(lián)的方式。

    除互聯(lián)方式的演進(jìn)外,MPSoC架構(gòu)的片上多核系統(tǒng)在演進(jìn)的過程中還出現(xiàn)了“同構(gòu)多核”和“異構(gòu)多核”兩種不同的發(fā)展路線。

    參考文獻(xiàn)[25]給出了一種典型的同構(gòu)MPSoC架構(gòu)片上多核系統(tǒng),這種芯片采用集成同構(gòu)處理器陣列來構(gòu)建MPSoC架構(gòu)片上多核系統(tǒng)。每一個(gè)獨(dú)立的處理器可以運(yùn)行某個(gè)特定的信號(hào)處理算法,核心之間按照數(shù)據(jù)流的方式來組織多核互聯(lián)。同構(gòu)多核的優(yōu)勢在于通用性很好,可以被用于實(shí)現(xiàn)不同的嵌入式系統(tǒng)。

    參考文獻(xiàn)[26]則介紹了一種名為Tomahawk2的異構(gòu)MPSoC架構(gòu)片上多核系統(tǒng),這種芯片往往是針對(duì)不同的應(yīng)用而專門定制的,更接近于SoC技術(shù)的本源。圖7給出了Tomahawk2的詳細(xì)架構(gòu)。

yg1-t7.gif

    從圖7可以看出,Tomahawk2中包含了Duo-PE、CM、APP幾種不同類型的處理器核心和FEC、SD等專用算法IP核以及FPGA、DDR-SDRAM等專用接口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í)行各類信號(hào)處理以及運(yùn)算任務(wù)。每個(gè)核心均涉及了獨(dú)立的時(shí)鐘生成模塊——ADPLL以及獨(dú)立的功耗管理模塊PMGT。因此從宏觀上來說每一個(gè)核心都可以工作在不同的電壓與頻率上,整個(gè)芯片從全局上來看處于異步工作的狀態(tài)。為解決不同核心之間異步通信的問題,Tomahawk2采用了片上網(wǎng)絡(luò)來互聯(lián)各個(gè)核心。不同的核心通過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ì)并集成專用處理器核從而最大化能效成為片上多核系統(tǒng)的主流趨勢。因此異構(gòu)MPSoC架構(gòu)的片上多核系統(tǒng)目前已經(jīng)成為主流。

    雖然MPSoC架構(gòu)的片上多核系統(tǒng)的形態(tài)差異相當(dāng)大,但卻基本都具備各核心之間相對(duì)獨(dú)立、數(shù)據(jù)傳輸依靠不同核心之間直接建立傳輸途徑而非通過共享存儲(chǔ)器中轉(zhuǎn)等特點(diǎn)。這些特點(diǎn)使得設(shè)計(jì)MPSoC架構(gòu)的片上多核系統(tǒng)時(shí),如何合理地將系統(tǒng)劃分為不同核心為中心的子系統(tǒng)并用適當(dāng)?shù)姆绞郊右越M織和管理成為主要問題。這一過程一般被抽象為任務(wù)劃分和任務(wù)映射問題。但由于這兩大問題涉及到更多的內(nèi)容,在本文中將不做詳細(xì)的介紹。

4 片上多核系統(tǒng)研究展望

    經(jīng)過近20年的發(fā)展,片上多核系統(tǒng)已經(jīng)經(jīng)歷了從萌芽到成熟的整個(gè)歷程。無論是CMP架構(gòu)的片上多核系統(tǒng)還是MPSoC架構(gòu)的片上多核系統(tǒng)的相關(guān)研究都已經(jīng)取得了長足的進(jìn)展,并有大量研究成果已經(jīng)大量應(yīng)用到實(shí)際的高端系統(tǒng)級(jí)芯片中。

    雖然片上多核系統(tǒng)已經(jīng)進(jìn)入到了成熟期,但人類對(duì)于產(chǎn)品性能的永不滿足追求依然將推動(dòng)片上多核持續(xù)發(fā)展。從目前來看,片上多核系統(tǒng)的研究主要呈現(xiàn)以下趨勢:

    (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)卻大行其道。可以預(yù)見未來會(huì)有更多更新的片上互聯(lián)結(jié)構(gòu)被提出。

    (2)由于加速器或?qū)S锰幚砥髟谕瓿商囟ㄈ蝿?wù)時(shí)具有較高的能效,在系統(tǒng)中集成越來越多的專用而非通用的核心將成為必然。同時(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)宏觀上來看卻是一種MPSoC架構(gòu)。這種混合架構(gòu)必將對(duì)片上多核系統(tǒng)的架構(gòu)組織和運(yùn)行管理提出更大的挑戰(zhàn),也將成為未來的一大研究熱點(diǎn)。

    (3)與片上多核系統(tǒng)往“異構(gòu)”發(fā)展相適應(yīng)的是以“軟件為核心”的設(shè)計(jì)方法將成為未來設(shè)計(jì)的主流思潮。以往的設(shè)計(jì)方法是先有基礎(chǔ)的硬件平臺(tái),在此基礎(chǔ)上再設(shè)計(jì)相應(yīng)的軟件來實(shí)現(xiàn)功能。而“以軟件為核心”的設(shè)計(jì)方法則要求硬件設(shè)計(jì)服從軟件設(shè)計(jì)的需求,通過定制專用的核心實(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),未來片上多核系統(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]略


作者信息:

黃樂天1,別麗華2

(1.電子科技大學(xué),四川 成都610054;2.華中農(nóng)業(yè)大學(xué) 信息學(xué)院,湖北 武漢430070)

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。