龐 科,史再峰,周佳慧,陳可鑫
(1.天津大學(xué)計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院,天津 30072;2. 天津大學(xué)微電子學(xué)院,天津 300072)
大數(shù)據(jù)時(shí)代的到來使得嵌入式多媒體領(lǐng)域?qū)Ω咚儆?jì)算性能的需求不斷提升,與此同時(shí),傳統(tǒng)的計(jì)算體系架構(gòu)無法同時(shí)滿足該領(lǐng)域?qū)τ?jì)算性能和靈活性的需求.兼?zhèn)淞送ㄓ锰幚砥鞯墓δ芏嘧冃院蛯S眉呻娐返奶幚砀咝缘目芍貥?gòu)計(jì)算能夠有效地加速多媒體應(yīng)用的處理,同時(shí)還具有低功耗和由于有限非重復(fù)性工程(non-recurring engineering,NRE)費(fèi)用導(dǎo)致的低成本等優(yōu)點(diǎn),填補(bǔ)了通用處理器與專用集成電路之間的空白[1-2].作為動(dòng)態(tài)可配置體系,可重構(gòu)計(jì)算可以針對不同的應(yīng)用,在“硅實(shí)現(xiàn)”后重新定義其計(jì)算功能.這一特征使得可重構(gòu)處理器在有著高計(jì)算密度和高度靈活性的多媒體應(yīng)用領(lǐng)域具有廣闊的應(yīng)用前景.
目前,各種各樣的可重構(gòu)體系架構(gòu)相繼被研究者提出[3-8].與目前最流行的可重構(gòu)加速器現(xiàn)場可編程門陣列(field-programmable gate arrays,F(xiàn)PGAs)相比,CGRA由于其粗粒度和簡化的數(shù)據(jù)路徑,在性能和功耗效率方面具有明顯的優(yōu)勢[8].CGRA可以與實(shí)現(xiàn)復(fù)雜特定應(yīng)用的功能單元集成,從而實(shí)現(xiàn)各種不同的應(yīng)用.
典型的 CGRA有 4個(gè)主要的結(jié)構(gòu)參數(shù):可重構(gòu)陣列單元尺寸、單元間互連拓?fù)渚W(wǎng)絡(luò)結(jié)構(gòu)、本地存儲(chǔ)結(jié)構(gòu)以及可重構(gòu)單元的配置法.其中,拓?fù)浣Y(jié)構(gòu)為不同應(yīng)用實(shí)現(xiàn)提供了靈活而有效地映射方式,并對系統(tǒng)的性能、面積和功耗有著不可忽略的影響.一方面,靈活的互連拓?fù)渚W(wǎng)絡(luò)結(jié)構(gòu)可以簡化可重構(gòu)單元間復(fù)雜而頻繁的數(shù)據(jù)交互,降低不同應(yīng)用在 CGRA系統(tǒng)上映射的復(fù)雜度,為可重構(gòu)單元提供權(quán)衡而精準(zhǔn)的分布及互連,從而改善系統(tǒng)性能,有效地減少面積、降低功耗;另一方面,對系統(tǒng)互連拓?fù)渚W(wǎng)絡(luò)結(jié)構(gòu)有著很大依賴性的資源占用率也對系統(tǒng)的功耗有著巨大的影響.在45,nm CMOS工藝下,動(dòng)態(tài)可配置嵌入式系統(tǒng)架構(gòu)的互連功耗占到總功耗的50%,~60%[9].
目前已經(jīng)被研究者提出的互連拓?fù)渚W(wǎng)絡(luò)結(jié)構(gòu)已有幾十種,主要分為靜態(tài)拓?fù)浣Y(jié)構(gòu)和動(dòng)態(tài)拓?fù)浣Y(jié)構(gòu)[7,,10]兩種.其中,絕大多數(shù)是靜態(tài)拓?fù)洌缇W(wǎng)格型拓?fù)?mesh)和環(huán)形拓?fù)?Torus)[6,,11-13].與動(dòng)態(tài)拓?fù)浣Y(jié)構(gòu)相比,盡管基于 mesh架構(gòu)的靜態(tài)拓?fù)鋾?huì)加大資源和面積的開銷,但它執(zhí)行簡單且無延遲,使得靜態(tài)拓?fù)湓诮^大多數(shù)的 CGRA架構(gòu)中被采用.每一種拓?fù)浣Y(jié)構(gòu)都有其優(yōu)勢和不足.針對于某一種特定的應(yīng)用,哪種拓?fù)浣Y(jié)構(gòu)更優(yōu)很難一概而論.因此,在CGRA應(yīng)用系統(tǒng)設(shè)計(jì)中,對系統(tǒng)的互連拓?fù)渚W(wǎng)絡(luò)結(jié)構(gòu)進(jìn)行評估和開發(fā)也就變得格外重要.因此,在 CGRA系統(tǒng)開發(fā)中,應(yīng)仔細(xì)地衡量時(shí)序、面積以及功耗,從而為不同的應(yīng)用選擇最適宜的互連拓?fù)渚W(wǎng)絡(luò)結(jié)構(gòu).
在 CGRA的設(shè)計(jì)空間開發(fā)研究領(lǐng)域,一些關(guān)于CGRA系統(tǒng)及其互連拓?fù)渚W(wǎng)絡(luò)結(jié)構(gòu)開發(fā)的研究已經(jīng)在進(jìn)行.被報(bào)道的大多數(shù)設(shè)計(jì)空間開發(fā)平臺(tái)都是基于動(dòng)態(tài)可重構(gòu)嵌入式系統(tǒng)架構(gòu)的[12-13],這一架構(gòu)目前被作為 CGRA系統(tǒng)架構(gòu)的主流架構(gòu)模板.基于這一模板,文獻(xiàn)[13]提出了進(jìn)行可重構(gòu)單元開發(fā)的開發(fā)平臺(tái).文獻(xiàn)[14-15]則提出了 CGRA的互連功耗模型.文獻(xiàn)[16]針對粗粒度可重構(gòu)計(jì)算在重構(gòu)粒度、可重構(gòu)性記憶互連網(wǎng)絡(luò)等方面進(jìn)行了硬件開發(fā),并對功耗及可擴(kuò)展性等相關(guān)特性展開討論.
在以上這些文獻(xiàn)中,對 CGRA系統(tǒng)及互連拓?fù)渚W(wǎng)絡(luò)結(jié)構(gòu)的開發(fā)都只是進(jìn)行了軟件仿真.與軟件仿真相比,基于 FPGA的硬件驗(yàn)證平臺(tái)可以為多核系統(tǒng)的開發(fā)提供更合理、更準(zhǔn)確的途徑,可以以更快的速度為設(shè)計(jì)者提供更可靠的驗(yàn)證結(jié)果[17].
本文提出了一種基于 FPGA的粗粒度可重構(gòu)系統(tǒng)架構(gòu)的硬件驗(yàn)證平臺(tái)及相應(yīng)的互連拓?fù)渚W(wǎng)絡(luò)結(jié)構(gòu)開發(fā)流程.根據(jù)該流程,設(shè)計(jì)者可以基于 FPGA開發(fā)板自動(dòng)地搭建一個(gè)可重構(gòu)出具有不同拓?fù)渚W(wǎng)絡(luò)互連的 CGRA系統(tǒng),并在此基礎(chǔ)上,根據(jù)不同應(yīng)用的特性,對不同的互連拓?fù)渚W(wǎng)絡(luò)結(jié)構(gòu)及其配置方法進(jìn)行性能驗(yàn)證和開發(fā).通過將驗(yàn)證結(jié)果與設(shè)計(jì)要求進(jìn)行對比,設(shè)計(jì)者可以迅速確定針對特定應(yīng)用的最適宜的互連拓?fù)渚W(wǎng)絡(luò)結(jié)構(gòu).該開發(fā)流程可適用于同構(gòu)或異構(gòu)的CGRA系統(tǒng)架構(gòu)及任何靜態(tài)拓?fù)浣Y(jié)構(gòu).
本文所提出的 CGRA硬件驗(yàn)證平臺(tái)主要是基于Morphosys系統(tǒng)架構(gòu)建立的.與典型的 CGRA系統(tǒng)[18]一樣,該平臺(tái)系統(tǒng)包括一個(gè)主控制器、一個(gè)可重構(gòu)單元陣列、陣列控制單元(又稱為陣列控制器)和兩個(gè)片上共享存儲(chǔ)單元.可重構(gòu)單元(reconfigurable cell,RC)按照一定的互連拓?fù)渚W(wǎng)絡(luò)結(jié)構(gòu)彼此互連在一起,如圖 1所示.主控制器將配置包和初始數(shù)據(jù)發(fā)送給驗(yàn)證平臺(tái).根據(jù)配置包中的配置信息,驗(yàn)證平臺(tái)可自動(dòng)實(shí)現(xiàn)特定的應(yīng)用并為設(shè)計(jì)者提供準(zhǔn)確的驗(yàn)證結(jié)果.
1.1.1 可重構(gòu)單元RC
在所搭建的 CGRA系統(tǒng)硬件平臺(tái)中,每一個(gè)可重構(gòu)單元都由一個(gè)算術(shù)邏輯單元(ALU)、一個(gè)移位器、兩個(gè)多路選擇器、一個(gè)輸出寄存器、一個(gè)寄存器陣列及一個(gè)配置存儲(chǔ)器構(gòu)成,如圖2所示.
通過存儲(chǔ)在配置存儲(chǔ)器里的配置字可以對可重構(gòu)單元進(jìn)行配置,實(shí)現(xiàn)系統(tǒng)功能和互連的重構(gòu).在每個(gè)內(nèi)核執(zhí)行之初,配置存儲(chǔ)器將配置字發(fā)送到每一個(gè)可重構(gòu)單元RC的配置寄存器.一旦拓?fù)浠ミB網(wǎng)絡(luò)被重構(gòu),可重構(gòu)單元之間則由按照一定規(guī)則連接的路由器陣列來進(jìn)行數(shù)據(jù)交互.
1)基本計(jì)算單元
ALU單元包括一個(gè)乘法器、一個(gè)加法器和一個(gè)減法器.所有計(jì)算單元的輸入和輸出數(shù)據(jù)寬度均為32,bit.ALU單元可執(zhí)行 4種運(yùn)算:乘法、加法、減法以及數(shù)據(jù)轉(zhuǎn)移(數(shù)據(jù)直接從輸入端傳輸?shù)捷敵龆?,不做其他處?.利用數(shù)據(jù)轉(zhuǎn)移這一操作,2個(gè)RC之間可以不直接互連而是通過其他的 RC作介質(zhì)獲得之前內(nèi)核的輸出.
圖1 基于 FPGA的粗粒度可重構(gòu)系統(tǒng)驗(yàn)證平臺(tái)基本架構(gòu)Fig.1 Basic structure of CGRA emulation platform based on FPGA
ALU中的移位寄存器可實(shí)現(xiàn)數(shù)學(xué)邏輯左移和邏輯右移兩種操作.
2個(gè)多路選擇器可以根據(jù)配置字中的控制位為ALU從多個(gè)輸入源中選出所需的輸入數(shù)據(jù).2個(gè)多路選擇器的輸入源有 4個(gè):①該 RC本身的輸出;②該RC的寄存器陣列;③其他RC;④外部片上共享存儲(chǔ).在所提出的驗(yàn)證平臺(tái)系統(tǒng)中,這 2個(gè)多路選擇器各有一個(gè)共享存儲(chǔ)輸入.如果多路選擇器的當(dāng)前輸入來自共享存儲(chǔ),則該RC會(huì)發(fā)出請求信號并等待應(yīng)答.
圖2 可重構(gòu)單元RC的基本結(jié)構(gòu)Fig.2 Basic structure of reconfigurable cell RC
2)配置寄存器
配置寄存器主要是用來存儲(chǔ)每一個(gè)可重構(gòu)單元RC的配置字.與Morphosys中每一個(gè)RC都有一個(gè)配置存儲(chǔ)器不同,所提出的平臺(tái)中,可重構(gòu)陣列中的每一個(gè) RC都配有一個(gè)配置寄存器.通過配置寄存器,RC可以更快速地獲取配置字.其中,寄存器最低2位[1∶0]是ALU配置位,說明了當(dāng)前ALU單元需執(zhí)行的功能;位[9∶2]和[17∶10]分別是輸入 1和輸入2配置位,用來控制2個(gè)多路選擇器的選擇,即為ALU單元選擇兩個(gè)輸入變量;位[26∶18]表示的是輸出配置位,用來控制輸出結(jié)果的去向;[32∶27]描述的是移位寄存器配置位,用來控制當(dāng)前移位寄存器的執(zhí)行.配置字的具體描述如表1所示.
表1 可重構(gòu)單元配置字的具體描述Tab.1 Detailed description of the context word of reconfigurable cell
3)路由器單元
可重構(gòu)單元中的路由器單元結(jié)構(gòu)如圖3所示.
每一個(gè)路由器都由 5個(gè)多路選擇器(MUX)構(gòu)成,而每個(gè)多路選擇器則根據(jù)配置字中對應(yīng)控制位來選擇輸入.在路由單元中,共有 5個(gè)輸入和輸出端口,這 5個(gè)端口分別與 RC本身(P)以及與它互連的4個(gè)相鄰 RC 單元(上 U、下 D、左 L以及右 R)相連.多路選擇器可以選擇任何一個(gè)輸入直接輸出.路由單元對應(yīng)的配置字由10,bit二進(jìn)制數(shù)字構(gòu)成,設(shè)計(jì)者可通過配置字對互連網(wǎng)絡(luò)的拓?fù)浣Y(jié)構(gòu)進(jìn)行配置重構(gòu).
圖3 路由器單元基本結(jié)構(gòu)Fig.3 Basic structure of router cell
1.1.2 可重構(gòu)陣列控制單元及片上共享存儲(chǔ)
在 CGRA驗(yàn)證平臺(tái)中,可重構(gòu)單元陣列有一個(gè)控制單元,它主要用來同步陣列中所有的可重構(gòu)單元.該控制單元可以發(fā)送“開始”信號并接受“結(jié)束”信號,從而同步調(diào)用整個(gè)可重構(gòu)陣列.
在所提出的 CGRA驗(yàn)證平臺(tái)系統(tǒng)中,共有 2個(gè)片上共享存儲(chǔ)器來保存初始數(shù)據(jù)、中間結(jié)果以及最終結(jié)果.在每一個(gè)共享存儲(chǔ)器中,都有一個(gè)仲裁裝置根據(jù)預(yù)設(shè)的優(yōu)先級來對來自整個(gè)可重構(gòu)陣列的請求進(jìn)行應(yīng)答.在該驗(yàn)證平臺(tái)上,可重構(gòu)單元 RC_1~RC_16,其預(yù)設(shè)的優(yōu)先級逐次遞減.可重構(gòu)單元的請求可以是讀請求也可以是寫請求.當(dāng)所有的請求都是來自同一地址(即同一個(gè) RC)的讀請求,仲裁器則會(huì)對數(shù)據(jù)進(jìn)行幀傳送處理.
CGRA的模塊化特性使得該應(yīng)用系統(tǒng)的參數(shù)化架構(gòu)可以從一個(gè)模板構(gòu)造而來.該模板就是互連拓?fù)渚W(wǎng)絡(luò)結(jié)構(gòu)(簡稱拓?fù)浣Y(jié)構(gòu)).本文所提出的硬件驗(yàn)證平臺(tái)以幾種經(jīng)典拓?fù)浣Y(jié)構(gòu)為模板,在此基礎(chǔ)上構(gòu)建不同的CGRA系統(tǒng)架構(gòu).
1.2.1 網(wǎng)格型拓?fù)浜铜h(huán)形拓?fù)?/p>
網(wǎng)格型拓?fù)浜铜h(huán)形拓?fù)湓谄暇W(wǎng)絡(luò)和可重構(gòu)處理架構(gòu)中都是最經(jīng)典的拓?fù)浣Y(jié)構(gòu).如圖 4(a)所示,二維網(wǎng)格型拓?fù)?2D mesh)因其結(jié)構(gòu)簡單、易實(shí)現(xiàn)而被廣泛采用.在 mesh拓?fù)浣Y(jié)構(gòu)的基礎(chǔ)上,環(huán)形拓?fù)?Torus)在邊緣 RC之間添加互連以形成環(huán)形網(wǎng)格結(jié)構(gòu),如圖4(b)所示.
圖4 2D mesh和Torus拓?fù)浣Y(jié)構(gòu)Fig.4 2D mesh and Torus interconnection network topology
1.2.2 完全行列互連網(wǎng)絡(luò)拓?fù)?CRC)
圖 5所示的完全行列互連網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)是一個(gè)具有4行4列可重構(gòu)互連拓?fù)潢嚵?,每一個(gè)RC都可以與同行和同列的其他 RC直接交互數(shù)據(jù).與 2D mesh和 Torus拓?fù)浣Y(jié)構(gòu)相比,這一拓?fù)浣Y(jié)構(gòu)可以更好地滿足密集計(jì)算型算法的要求,但同時(shí)也要消耗更多的面積和功耗.
圖5 完全行列互連網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)Fig.5 Complete row and column interconnection network topology
1.2.3 完全行列及對角互連網(wǎng)絡(luò)拓?fù)?CRCD)
這一拓?fù)浣Y(jié)構(gòu)為可重構(gòu)陣列提供了完全的行、列及對角互連,從最大程度上保證了位于同行或同列或?qū)俏恢玫腞C之間進(jìn)行直接數(shù)據(jù)交互.圖6給出了一個(gè) 4×4完全行列及對角互連可重構(gòu)陣列,每一個(gè)RC都與周圍10個(gè)相鄰RC互連.與前面介紹的3種拓?fù)浣Y(jié)構(gòu)相比,該拓?fù)浣Y(jié)構(gòu)豐富的互連資源使得應(yīng)用在可重構(gòu)陣列上的映射更加簡單.
圖6 完全行列及對角互連網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)Fig.6 Complete row,column and diagonal interconnection network topology
1.2.4 完全路由互連網(wǎng)絡(luò)拓?fù)?CRIN)
在這種拓?fù)浣Y(jié)構(gòu)中,每2個(gè)RC之間都可以通過一個(gè)路由器進(jìn)行互連,如圖 7所示.該拓?fù)浣Y(jié)構(gòu)借助路由器之間的靈活互連,可在減少互連線路的前提下實(shí)現(xiàn)整個(gè)陣列的全互連.這一拓?fù)浣Y(jié)構(gòu),在大大降低了互連復(fù)雜度的同時(shí)保證了陣列全互連的高效性.
圖7 完全路由互連網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)Fig.7 Complete router interconnection network topology
目前,CGRA系統(tǒng)架構(gòu)中可以進(jìn)行完全互連的方法有很多,例如,與 FPGA類似的數(shù)據(jù)總線、多級互連網(wǎng)絡(luò)、片上網(wǎng)絡(luò)和可重構(gòu)互連拓?fù)渚W(wǎng)絡(luò)結(jié)構(gòu).其中,在數(shù)據(jù)總線、多級互連網(wǎng)絡(luò)和片上網(wǎng)絡(luò)上進(jìn)行數(shù)據(jù)傳輸時(shí)都可能會(huì)出現(xiàn)數(shù)據(jù)通路擁塞,設(shè)計(jì)者必須仔細(xì)考察整個(gè)系統(tǒng)的傳輸延遲和功耗.與前三者相比,可重構(gòu)互連拓?fù)渚W(wǎng)絡(luò)結(jié)構(gòu)可以確保數(shù)據(jù)傳輸?shù)臏?zhǔn)確性,并精準(zhǔn)地控制傳輸延遲,因此,本文采用可重構(gòu)互連拓?fù)渚W(wǎng)絡(luò)結(jié)構(gòu)作為整個(gè)系統(tǒng)的互連結(jié)構(gòu).
針對某一特定應(yīng)用,所提出的 CGRA系統(tǒng)硬件驗(yàn)證平臺(tái)可根據(jù)配置信息自動(dòng)地插入所需的驗(yàn)證模塊及模塊間的拓?fù)浠ミB網(wǎng)絡(luò),生成基于某一互連拓?fù)渚W(wǎng)絡(luò)結(jié)構(gòu)的 CGRA驗(yàn)證系統(tǒng).不同的應(yīng)用所需的驗(yàn)證模塊及所生成的互連拓?fù)渚W(wǎng)絡(luò)結(jié)構(gòu)也是截然不同的.設(shè)計(jì)者可以根據(jù)應(yīng)用的特性及設(shè)計(jì)的要求對驗(yàn)證系統(tǒng)進(jìn)行配置重構(gòu),根據(jù)來自主控制器的配置信息,可重構(gòu)陣列可在不同的拓?fù)浠ミB下執(zhí)行不同的計(jì)算功能,進(jìn)而實(shí)現(xiàn)相應(yīng)的特定應(yīng)用.因此,對于不同的應(yīng)用而言,由設(shè)計(jì)者提供的配置信息也是至關(guān)重要的.
每一個(gè)內(nèi)核都對應(yīng)著應(yīng)用某一個(gè)階段的實(shí)現(xiàn).在每一個(gè)內(nèi)核執(zhí)行期間,不同的 RC在同一機(jī)器周期內(nèi)執(zhí)行不同的運(yùn)算,而每一個(gè)機(jī)器周期執(zhí)行結(jié)束,系統(tǒng)都會(huì)對所有的 RC進(jìn)行同步,以防止數(shù)據(jù)交互錯(cuò)誤的發(fā)生,如圖8所示.
圖8 可重構(gòu)陣列的配置和執(zhí)行周期Fig.8 Configuration and execution period of reconfigurable cell array
綜上所述,本文所提出的基于 FPGA的 CGRA系統(tǒng)硬件驗(yàn)證平臺(tái)可以為評估 CGRA應(yīng)用系統(tǒng)提供可靠而高效的驗(yàn)證平臺(tái).在此基礎(chǔ)上,設(shè)計(jì)者可以針對不同的特定應(yīng)用,對不同的互連拓?fù)渚W(wǎng)絡(luò)結(jié)構(gòu)進(jìn)行驗(yàn)證評估,從而挑選出最符合設(shè)計(jì)需求的最適宜的CGRA應(yīng)用系統(tǒng)互連拓?fù)渚W(wǎng)絡(luò)結(jié)構(gòu).
在第 1節(jié)中,本文詳細(xì)介紹了基于 FPGA的CGRA系統(tǒng)硬件驗(yàn)證平臺(tái)的基本架構(gòu).基于該硬件驗(yàn)證平臺(tái),本文進(jìn)一步提出了一個(gè) CGRA系統(tǒng)互連拓?fù)渚W(wǎng)絡(luò)結(jié)構(gòu)的開發(fā)流程.
如圖9所示,在互連拓?fù)渚W(wǎng)絡(luò)結(jié)構(gòu)開發(fā)的第1階段,設(shè)計(jì)者需要通過分析特定應(yīng)用的特性生成該應(yīng)用的數(shù)據(jù)流程圖(data flow graph,DFG).根據(jù)所產(chǎn)生的DFG,設(shè)計(jì)者可以選擇一個(gè)或多個(gè)拓?fù)浣Y(jié)構(gòu)作為備選的拓?fù)浣Y(jié)構(gòu),逐一產(chǎn)生對應(yīng)的應(yīng)用映射方案,并將所產(chǎn)生的應(yīng)用映射方案以配置信息的方式輸入 CGRA系統(tǒng)硬件驗(yàn)證平臺(tái).輸入的應(yīng)用映射方案將為驗(yàn)證平臺(tái)提供可重構(gòu)單元之間的互連信息及各個(gè) RC相應(yīng)的配置信息.
圖9 CGRA互連拓?fù)渚W(wǎng)絡(luò)結(jié)構(gòu)開發(fā)流程Fig.9 Network topology exploration flow of CGRA based on emulation platform
在開發(fā)的第 2階段,根據(jù)輸入的配置信息,該驗(yàn)證平臺(tái)將自動(dòng)重構(gòu)可重構(gòu)單元之間的互連關(guān)系,生成所需要的互連拓?fù)渚W(wǎng)絡(luò),并將指令字發(fā)送給所有的可重構(gòu)單元,從而構(gòu)建出所需的CGRA系統(tǒng)架構(gòu),以實(shí)現(xiàn)所需的特定應(yīng)用.
CGRA系統(tǒng)互連拓?fù)渚W(wǎng)絡(luò)結(jié)構(gòu)開發(fā)的最后一個(gè)階段是針對不同的拓?fù)浠ミB策略,對所生產(chǎn)的CGRA應(yīng)用系統(tǒng)架構(gòu)進(jìn)行性能評估.其中,時(shí)序性能評估的指標(biāo)是各個(gè) RC的執(zhí)行機(jī)器周期.與此同時(shí),根據(jù)不同的互連方案,實(shí)現(xiàn)該應(yīng)用系統(tǒng)所需的 FPGA資源也將被統(tǒng)計(jì)出來,對基于不同拓?fù)浣Y(jié)構(gòu)的 CGRA系統(tǒng) FPGA資源占用率進(jìn)行對比.基于各個(gè)拓?fù)浠ミB策略的系統(tǒng)功耗主要由兩部分組成:RC的瞬態(tài)功耗和系統(tǒng)的互連動(dòng)態(tài)功耗.
不同的特定應(yīng)用有著不同的設(shè)計(jì)要求.基于CGRA系統(tǒng)硬件驗(yàn)證平臺(tái)的互連拓?fù)渚W(wǎng)絡(luò)結(jié)構(gòu)開發(fā)流程可以為 CGRA系統(tǒng)的不同拓?fù)浠ミB策略提供準(zhǔn)確而快速的性能分析.通過對比所分析的結(jié)果,設(shè)計(jì)者可以選出最適宜的 CGRA互連拓?fù)渚W(wǎng)絡(luò)結(jié)構(gòu)以滿足特定應(yīng)用的特殊要求.
本文進(jìn)行了兩組實(shí)驗(yàn)來驗(yàn)證所提出的基于FPGA的 CGRA系統(tǒng)硬件驗(yàn)證平臺(tái)及對應(yīng)的互連拓?fù)渚W(wǎng)絡(luò)結(jié)構(gòu)開發(fā)流程.第 1組實(shí)驗(yàn)主要是對比第1.2節(jié)中所介紹的拓?fù)浣Y(jié)構(gòu)的 FPGA資源占用率,通過在所提出的驗(yàn)證平臺(tái)上實(shí)時(shí)重構(gòu)不同的互連拓?fù)渚W(wǎng)絡(luò)結(jié)構(gòu)并對系統(tǒng)的資源占有率進(jìn)行對比,可以有效地驗(yàn)證所提出的 CGRA系統(tǒng)硬件驗(yàn)證平臺(tái)的高效性.第 2組實(shí)驗(yàn)是在驗(yàn)證平臺(tái)的基礎(chǔ)上,對所提出的CGRA互連拓?fù)渚W(wǎng)絡(luò)結(jié)構(gòu)開發(fā)流程進(jìn)行驗(yàn)證評估.針對不同應(yīng)用,對不同互連拓?fù)渚W(wǎng)絡(luò)結(jié)構(gòu)的性能進(jìn)行有針對性的評估,從而驗(yàn)證該開發(fā)流程的有效性和可靠性.
在本文中,CGRA系統(tǒng)硬件驗(yàn)證平臺(tái)是基于Xilinx Virtex 5 ML506 FPGA開發(fā)板而實(shí)現(xiàn)的.所選擇的可重構(gòu)陣列為最具代表性的 4×4陣列.驗(yàn)證平臺(tái)的系統(tǒng)主時(shí)鐘為 66,MHz,最大有限帶寬可達(dá)到62.94,MByte/s.雖然所實(shí)現(xiàn)的 CGRA應(yīng)用系統(tǒng)均為同構(gòu)架構(gòu),但該硬件驗(yàn)證平臺(tái)的開發(fā)理念及互連拓?fù)渚W(wǎng)絡(luò)結(jié)構(gòu)的開發(fā)流程均可適用于異構(gòu) CGRA系統(tǒng)的設(shè)計(jì)開發(fā).
在這組實(shí)驗(yàn)中,基于CGRA系統(tǒng)硬件驗(yàn)證平臺(tái),將對 4種拓?fù)浣Y(jié)構(gòu)進(jìn)行資源占用率的評估.這 4種拓?fù)浣Y(jié)構(gòu)分別是環(huán)形拓?fù)浣Y(jié)構(gòu)(Torus)、完全行列互連網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)(CRC)、完全行列及對角互連網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)(CRCD)和完全路由互連網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)(CRIN).這 4種拓?fù)浣Y(jié)構(gòu)目前被廣泛應(yīng)用于經(jīng)典的CGRA系統(tǒng)架構(gòu)中,因此本實(shí)驗(yàn)中采用這4種拓?fù)浣Y(jié)構(gòu)進(jìn)行評估.
圖10描繪了采用這4種拓?fù)浣Y(jié)構(gòu)作為互連拓?fù)渚W(wǎng)絡(luò)結(jié)構(gòu)的 CGRA系統(tǒng)所占用的 FPGA資源,主要包括所占用的查找表(LUT)、寄存器(register)、塊存儲(chǔ)器(block RAM)、占用的片(occupied slice)、輸入輸出端口(bonded IOB)、緩存器(BUFG)、數(shù)字信號處理器(DSP48Es)以及邊界掃描鏈(BSCAN)等的數(shù)量.
圖10 不同拓?fù)浣Y(jié)構(gòu)的FPGA資源占用率評估Fig.10 Occupancy rate evaluation of FPGA resources for different network topologies
在圖 11中,進(jìn)一步分析了不同拓?fù)浣Y(jié)構(gòu)下所占用的查找表 LUT和寄存器的數(shù)量.從圖中可以看出,查找表的占用率隨著互連線的增多而增加.在基于 2D mesh結(jié)構(gòu)的前 3種拓?fù)浣Y(jié)構(gòu)中,查找表的占用率隨著互連線的增加幾乎呈線性增長.在CRIN拓?fù)浣Y(jié)構(gòu)中,查找表的數(shù)量只比 Torus拓?fù)浣Y(jié)構(gòu)略有增加,這主要是因?yàn)镃RIN拓?fù)浣Y(jié)構(gòu)中的路由器之間的連線與 Torus拓?fù)浣Y(jié)構(gòu)基本相等,增加的連線主要在路由器的內(nèi)部.在圖 11中,前 3種拓?fù)浣Y(jié)構(gòu)所占用的寄存器數(shù)量基本相同,而CRIN由于在路由器內(nèi)部包含了配置字寄存器而使得其寄存器的占用率遠(yuǎn)遠(yuǎn)高于前3種拓?fù)浣Y(jié)構(gòu).
圖11 不同拓?fù)浣Y(jié)構(gòu)所占用的查找表和寄存器數(shù)量Fig.11 Amount of LUTs and registers for different network topologies
通過第 1組實(shí)驗(yàn),可以很容易看出,不同拓?fù)浣Y(jié)構(gòu)對于 FPGA資源的占用是截然不同的,相對來說,結(jié)構(gòu)越簡單的拓?fù)浣Y(jié)構(gòu)其所占用的資源也越少,但同時(shí),它所能提供的互連方式也就越有限制.
在本組實(shí)驗(yàn)中,兩個(gè)實(shí)際應(yīng)用被選中來進(jìn)一步驗(yàn)證所提出的 CGRA系統(tǒng)硬件驗(yàn)證平臺(tái)和對應(yīng)互連拓?fù)渚W(wǎng)絡(luò)結(jié)構(gòu)開發(fā)流程.這兩個(gè)應(yīng)用分別是 4×4蝶形余弦變化(4×4,DCT)和 32點(diǎn)快速傅里葉變換(32-point FFT).這兩個(gè)應(yīng)用都是圖像處理中最經(jīng)典的測試基準(zhǔn)應(yīng)用,可以為驗(yàn)證平臺(tái)及其開發(fā)流程的評估提供有效而可靠的評估結(jié)果.
按照所提出的互連拓?fù)渚W(wǎng)絡(luò)結(jié)構(gòu)開發(fā)流程,首先需要生成應(yīng)用的數(shù)據(jù)流程圖DFG.基于DCT和FFT的蝶形映射圖,圖12和圖13分別給出了這兩個(gè)應(yīng)用的基于可重構(gòu)陣列的數(shù)據(jù)配置執(zhí)行流程圖(應(yīng)用映射圖).其中,由于所采用的是 4×4可重構(gòu)陣列,因此32點(diǎn) FFT的前16點(diǎn)先被配置執(zhí)行,然后余下的 16點(diǎn)可利用片上共享存儲(chǔ)所保留的中間結(jié)果以同樣的方式再進(jìn)行配置執(zhí)行.在本文中,DCT和 FFT均采用定點(diǎn)運(yùn)算來實(shí)現(xiàn),從而加快系統(tǒng)的執(zhí)行速度并降低系統(tǒng)的實(shí)現(xiàn)難度,因此需要采用移位運(yùn)算來實(shí)現(xiàn)其小數(shù)部分的計(jì)算.當(dāng)需要在兩個(gè)非互連的RC之間進(jìn)行數(shù)據(jù)交換,中間的可重構(gòu)單元可采用“數(shù)據(jù)轉(zhuǎn)移”操作將數(shù)據(jù)不做任何處理而進(jìn)行傳輸.
圖12 4×4,DCT蝶形映射圖Fig.12 Butterfly mapping graph of 4×4,DCT
圖13 32點(diǎn)FFT蝶形映射圖Fig.13 Butterfly mapping graph of 32-point FFT
圖14描繪了DDT和FFT在基于不同互連拓?fù)渚W(wǎng)絡(luò)結(jié)構(gòu)的 CGRA應(yīng)用系統(tǒng)上進(jìn)行實(shí)現(xiàn)而所需的執(zhí)行機(jī)器周期數(shù).從圖中可以看到,對DCT而言,不同的拓?fù)浣Y(jié)構(gòu)其所需的執(zhí)行機(jī)器周期幾乎相等.這是由于 DCT的數(shù)據(jù)交互只存在于相鄰的 4個(gè) RC之間.因此,對于這 4種拓?fù)浣Y(jié)構(gòu),其數(shù)據(jù)交互的途徑基本相同,所導(dǎo)致的執(zhí)行機(jī)器周期也基本相同.與DCT不同,F(xiàn)FT的執(zhí)行需要在同行或同列的 RC之間進(jìn)行數(shù)據(jù)交互.在這種情況下,CRC、CRCD和CRIN拓?fù)浣Y(jié)構(gòu)都可以有效地在同行以及同列的 RC之間進(jìn)行直接的數(shù)據(jù)交互,所以其執(zhí)行機(jī)器周期明顯少于Torus拓?fù)浣Y(jié)構(gòu).
圖14 不同拓?fù)浣Y(jié)構(gòu)下 4×4,DCT和 32點(diǎn) FFT的執(zhí)行機(jī)器周期Fig.14 Number of machine cycles for 4×4,DCT and 32-point FFT with different network topologies
圖 15描繪了這兩個(gè)應(yīng)用在 CGRA應(yīng)用系統(tǒng)上實(shí)現(xiàn)所消耗的系統(tǒng)功耗.系統(tǒng)功耗的評估結(jié)果是采用 Xilinx ISE 13.4中的 XPower工具進(jìn)行統(tǒng)計(jì)評估的.該工具主要是提取構(gòu)建系統(tǒng)架構(gòu)的邏輯單元的功耗而并不考慮互連功耗,因此,由 XPower提供的系統(tǒng)功耗并不完全準(zhǔn)確.
圖15 不同拓?fù)浣Y(jié)構(gòu)下4×4,DCT和32點(diǎn)FFT的系統(tǒng)功耗Fig.15 Energy consumption for 4×4,DCT and 32-point FFT with different network topologies
但是,從圖 15中可以看到,瞬態(tài)功耗在不同拓?fù)浣Y(jié)構(gòu)之間的變化很小,因此,從一定程度上來說,由 XPower所產(chǎn)生的功耗報(bào)告可以反映出不同拓?fù)浣Y(jié)構(gòu)所帶來的系統(tǒng)功耗的變化,進(jìn)而可以為設(shè)計(jì)者提供系統(tǒng)架構(gòu)設(shè)計(jì)的參考.對于系統(tǒng)架構(gòu)中互連網(wǎng)絡(luò)的資源占用率和功耗的評估,設(shè)計(jì)者可以通過互連線的數(shù)量對不同工藝下的不同拓?fù)浣Y(jié)構(gòu)進(jìn)行理論分析.表2列出了不同拓?fù)浣Y(jié)構(gòu)下所需的互連線數(shù)目.
表2 不同拓?fù)浣Y(jié)構(gòu)互連線的數(shù)量Tab.2 Numbers of interconnecting lines for different network topologies
根據(jù)第 2組實(shí)驗(yàn)的評估結(jié)果,可以看出,對于具有較小中間數(shù)據(jù)依賴性的應(yīng)用(如 DCT),或是對于那些對系統(tǒng)性能要求不高但對系統(tǒng)面積和功耗有著較高要求的應(yīng)用而言,環(huán)形拓?fù)?Torus)結(jié)構(gòu)被推薦來進(jìn)行CGRA實(shí)現(xiàn).與之相反,對于那些有著較強(qiáng)數(shù)據(jù)依賴性或是較嚴(yán)格的時(shí)序限制要求的應(yīng)用而言,當(dāng)它們在 CGRA系統(tǒng)上進(jìn)行實(shí)現(xiàn)時(shí),完全行列互連網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)(CRC)或是完全路由互連網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)(CRIN)都是很好的選擇.
然而,對于特定應(yīng)用而言,并不是只有一種拓?fù)浣Y(jié)構(gòu)可以使其 CGRA應(yīng)用系統(tǒng)在不同的應(yīng)用場合下均獲得最佳的系統(tǒng)性能.根據(jù)特定應(yīng)用的不同特性和不同性能要求,其最適宜的拓?fù)浣Y(jié)構(gòu)往往是不同的.利用所提出的互連拓?fù)渚W(wǎng)絡(luò)結(jié)構(gòu)開發(fā)流程,設(shè)計(jì)者可以針對不同應(yīng)用,在基于 FPGA的 CGRA系統(tǒng)硬件驗(yàn)證平臺(tái)上對系統(tǒng)的互連策略進(jìn)行開發(fā),通過衡量整個(gè)系統(tǒng)的性能要求,選擇出該應(yīng)用最適宜的互連拓?fù)渚W(wǎng)絡(luò)結(jié)構(gòu).這樣的開發(fā)輔助工具,將幫助設(shè)計(jì)者為特定應(yīng)用快速地開發(fā)出最適宜的拓?fù)浠ミB策略.
本文探討了粗粒度可重構(gòu)體系架構(gòu) CGRA設(shè)計(jì)中的一個(gè)重要問題:針對特定應(yīng)用如何開發(fā)出最適宜的系統(tǒng)拓?fù)浠ミB策略.本文提出了一個(gè)基于 FPGA的 CGRA系統(tǒng)硬件驗(yàn)證平臺(tái)及對應(yīng)的系統(tǒng)互連拓?fù)渚W(wǎng)絡(luò)結(jié)構(gòu)開發(fā)流程.所提出的驗(yàn)證平臺(tái)和開發(fā)流程可以有效地幫助設(shè)計(jì)者在最短的時(shí)間內(nèi)為特定應(yīng)用找到最適宜的拓?fù)浠ミB策略.
基于 FPGA開發(fā)板,所建立的 CGRA系統(tǒng)通過主控制器輸入的配置信息重構(gòu)系統(tǒng)的互連拓?fù)渚W(wǎng)絡(luò)結(jié)構(gòu),搭建出可對不同互連拓?fù)渚W(wǎng)絡(luò)結(jié)構(gòu)進(jìn)行驗(yàn)證評估的硬件驗(yàn)證平臺(tái).在此平臺(tái)基礎(chǔ)上,利用所提出的互連拓?fù)渚W(wǎng)絡(luò)結(jié)構(gòu)開發(fā)流程,根據(jù) CGRA系統(tǒng)配置參數(shù)、應(yīng)用配置信息以及不同拓?fù)浠ミB策略,設(shè)計(jì)者可生成不同的系統(tǒng)互連方案.將所得到的系統(tǒng)互連方案在驗(yàn)證平臺(tái)上進(jìn)行驗(yàn)證評估并對驗(yàn)證結(jié)果進(jìn)行分析,設(shè)計(jì)者便可根據(jù)設(shè)計(jì)需求找出最適宜于當(dāng)前設(shè)計(jì)需求的拓?fù)浠ミB策略.實(shí)驗(yàn)表明,基于 FPGA的CGRA系統(tǒng)硬件驗(yàn)證平臺(tái)及相應(yīng)的互連拓?fù)渚W(wǎng)絡(luò)結(jié)構(gòu)開發(fā)流程可以有效地幫助設(shè)計(jì)者開發(fā)出滿足特定應(yīng)用設(shè)計(jì)需求的最適宜的拓?fù)浠ミB策略.
在本文中,所提出的應(yīng)用平臺(tái)僅僅可重構(gòu)實(shí)現(xiàn)最經(jīng)典的 4種拓?fù)浣Y(jié)構(gòu).在今后的工作中,將進(jìn)一步開發(fā)更多不同的拓?fù)浠ミB策略使之更準(zhǔn)確地適用于更多不同的應(yīng)用,從而使得所提出的 CGRA系統(tǒng)硬件驗(yàn)證平臺(tái)可適用于所有的拓?fù)浣Y(jié)構(gòu).此外,該平臺(tái)還可以添加可配置的功能,使設(shè)計(jì)者可以為特定應(yīng)用定制特殊的互連拓?fù)渚W(wǎng)絡(luò)結(jié)構(gòu).
:
[1] Cervero T,López S,Callicó G M,et al. Survey of reconfigurable architectures for multimedia applications[C]//Proceedings of SPIE,VLSI Circuits and Systems IV. Dresden,Germany,2009:363-381.
[2] Dutta H,Kissler D,Hannig F,et al. A holistic approach for tightly coupled reconfigurable parallel processors[J].Microprocessors & Microsystems,2009,33(1):53-62.
[3] Rossi D,Campi F,Spolzino S,et al. A heterogeneous digital signal processor for dynamically reconfigurable computing[J].IEEE Journal of Solid-State Circuits,2010,45(8):1615-1626.
[4] Shan Gao,Kihara T,Shimizu S,et al. A novel traffic engineering method using on-chip diorama network on dynamically reconfigurable processor DAPDNA-2[C]//International Conference on High Performance Switching and Routing. Paris,F(xiàn)rance,2009:1-6.
[5] Mei B,Sutter B D,Aa T V,et al. Implementation of acoarse-grained reconfigurable media processor for AVC decoder[J].Journal of Signal Processing Systems for Signal Image & Video Technology,2008,51(3):225-243.
[6] Vahid F,Stitt G,Lysecky R. Warp processing:Dynamic translation of binaries to FPGA circuits[J].Computer,2008,41(7):40-46.
[7] Singh H,Lee M H,Lu G,et al. MorphoSys:An integrated reconfigurable system for data-parallel and computation-intensive applications[J].IEEE Transactions on Computers,2000,49(5):465-481.
[8] Atak O,Atalar A. BilRC:An execution triggered coarse grained reconfigurable architecture[J].IEEE Transactions on Very Large Scale Integration(VLSI)Systems,2013,21(7):1285-1298.
[9] Ansaloni G,Bonzini P,Pozzi L. Heterogeneous coarse-grained processing elements:A template architecture for embedded processing acceleration[C]//Proceedings of the Conference on Design,Automation and Test in Europe.Nice,F(xiàn)rance,2009:542-547.
[10] Marco L,Stefania P,Pasquale C,et al. A new reconfigurable coarse-grain architecture for multimedia applications[C]//2nd NASA/ESA Conference on Adaptive Hardware and Systems. Edinburgh,UK,2007:119-126.
[11] Liang C,Huang X. SmartCell:A power-efficient reconfigurable architecture for data streaming applications[C]//IEEE Workshop on Signal Processing Systems.Washington,USA,2008:257-262.
[12] Bouwens F,Berekovic M,Kanstein A,et al. Architectural exploration of the ADRES coarse-grained reconfigurable array[C]//ARC2007:Reconfigurable Comput-ing:Architectures,Tools and Applications.Mangaratiba,Brazil,2007:1-13.
[13] Bouwens F,Berekovic M,de Sutter B,et al. Architecture enhancements for the ADRES coarse-grained reconfigurable array[C]//Proceedings of High Performance Embedded Architectures and Compilers,HiPEAC2008.G?teborg,Sweden,2008:66-81.
[14] Lambrechts A,Raghavan P,Jayapala M,et al. Energy-aware interconnect optimization for a coarse grained reconfigurable processor[C]//21st International Conference on VLSI Design. Hyderabad,India,2008:201-207.
[15] Palkovic M,Hartmann M,Allam O,et al. Time-space energy consumption modeling of dynamic reconfigurable coarse-grain array processor datapath for wireless applications[C]//2010IEEE Workshop on Signal Processing Systems(SIPS). San Francisco,CA,USA,2010:134-139.
[16] Zain-ul-Abdin,Svensson B. Evolution in architectures and programming methodologies of coarse-grained reconfigurable computing[J].Microprocessors & Microsystems,2009,33(3):161-178.
[17] Liu Yangfan,Liu Peng,Jiang Yingtao. Building a multi-FPGA-based emulation frame-work to support networks-on-chip design and verification[J].International Journal of Electronics-INT J Electron,2010,97(10):1241-1262.
[18] Taylor M B. Is dark silicon useful?:Harnessing the four horsemen of the coming dark silicon apocalypse[C]//Proceeding49th Design Automation Conference. San Francisco,CA,USA,2012:1131-1136.