沈劍良 李思昆 劉 磊 王觀武 汪 欣 劉勤讓
1(國(guó)家數(shù)字交換系統(tǒng)工程技術(shù)研究中心 鄭州 450002)2 (國(guó)防科學(xué)技術(shù)大學(xué)計(jì)算機(jī)學(xué)院 長(zhǎng)沙 410073) (shenjianliang@outlook.com)
粗粒度可重構(gòu)SoC層次化配置存儲(chǔ)器設(shè)計(jì)
沈劍良1,2李思昆2劉 磊2王觀武2汪 欣1劉勤讓1
1(國(guó)家數(shù)字交換系統(tǒng)工程技術(shù)研究中心 鄭州 450002)2(國(guó)防科學(xué)技術(shù)大學(xué)計(jì)算機(jī)學(xué)院 長(zhǎng)沙 410073) (shenjianliang@outlook.com)
配置信息的生成效率與質(zhì)量直接影響著粗粒度可重構(gòu)SoC結(jié)構(gòu)的運(yùn)行效果.傳統(tǒng)的方法將配置信息作為一個(gè)整體存儲(chǔ)器,每個(gè)處理單元在需要配置信息時(shí)都要從該存儲(chǔ)器讀取配置信息,運(yùn)行效率低下且功耗較大.為降低配置信息生成方法的功耗,設(shè)計(jì)了一種低功耗層次式的配置信息存儲(chǔ)器結(jié)構(gòu),將配置信息分為相互獨(dú)立的操作配置信息和互連配置信息存儲(chǔ)器兩部分,實(shí)現(xiàn)了不同層次上的重構(gòu),最后根據(jù)上下文優(yōu)化配置信息生成.實(shí)驗(yàn)結(jié)果表明:在運(yùn)行性能不變的情況下,提出的配置信息生成方法功耗可以減少23.7%~32.6%.同時(shí),由于操作和互連配置信息相分離,使得每次需要配置的存儲(chǔ)器容量較小,在配置速度和性能上也有很大的優(yōu)勢(shì).
粗粒度可重構(gòu)SoC;配置信息存儲(chǔ)體;層次化;低功耗;配置信息生成方法
粗粒度可重構(gòu)多核SoC系統(tǒng)架構(gòu)集成了多個(gè)處理器核,極大地增強(qiáng)了系統(tǒng)的處理能力,但這也對(duì)整個(gè)SoC系統(tǒng)的片上訪存與核間通信提出了更高要求.在粗粒度可重構(gòu)SoC系統(tǒng)設(shè)計(jì)中,配置信息極其關(guān)鍵,它的生成效率與質(zhì)量直接影響著可重構(gòu)結(jié)構(gòu)的運(yùn)行效果.配置信息從硬件上看是一個(gè)存儲(chǔ)器,可重構(gòu)結(jié)構(gòu)中的每個(gè)處理單元從該存儲(chǔ)器讀取配置信息,通過(guò)該配置信息控制處理單元的操作和數(shù)據(jù)流向.配置存儲(chǔ)器的結(jié)構(gòu)性能在很大程度上決定了整個(gè)可重構(gòu)SoC系統(tǒng)實(shí)現(xiàn)應(yīng)用的性能,同時(shí)也影響著系統(tǒng)編譯器的復(fù)雜度設(shè)計(jì),而功耗則已成為當(dāng)前粗粒度可重構(gòu)SoC系統(tǒng)架構(gòu)設(shè)計(jì)繼性能、靈活性之后又一重要指標(biāo)[1],低功耗的配置存儲(chǔ)器設(shè)計(jì)是當(dāng)前研究的熱點(diǎn)之一.
配置信息生成方法研究國(guó)內(nèi)外并不多,一般將其作為編譯映射的一個(gè)子問(wèn)題進(jìn)行描述.配置信息往往較多,一方面對(duì)靜態(tài)存儲(chǔ)時(shí)要求存儲(chǔ)空間較大;另一方面在可重構(gòu)時(shí)每次要提供的數(shù)據(jù)較多,對(duì)配置數(shù)據(jù)帶寬的要求較大.在配置信息存儲(chǔ)器設(shè)計(jì)上,通常大多數(shù)的粗粒度可重構(gòu)系統(tǒng)通過(guò)每個(gè)周期向處理單元發(fā)送配置信息,如圖1所示[1]:

Fig. 1 Distributed configuration memory architecture圖1 分布式配置存儲(chǔ)器結(jié)構(gòu)[1]
文獻(xiàn)[1]在這種通用分布式配置信存儲(chǔ)器結(jié)構(gòu)中按空間映射和時(shí)間映射將配置信息存儲(chǔ)器分成時(shí)間映射配置信息存儲(chǔ)器和空間映射配置信息存儲(chǔ)器.前者由于流水線作用,只需要第1列使用配置信息配置功能,前一列運(yùn)行結(jié)果后將配置信息和結(jié)果打包發(fā)送到下一列中;后者則每個(gè)處理單元都需要配置信息,但是一般而言其總的配置信息層數(shù)較少,因此可以將存儲(chǔ)器設(shè)計(jì)得層數(shù)較少.通過(guò)與優(yōu)化的映射方法配合取得了一定的功耗減低和配置信息總量減少.文獻(xiàn)[2]中Morphosys采用圖1中的結(jié)構(gòu),由于采用SIMD形式挖掘數(shù)據(jù)并行性,每列的8個(gè)處理單元所執(zhí)行的功能相同,因此同列8個(gè)處理單元共用一條配置信息,每條配置信息32 b,總共每個(gè)周期需要32×8 b配置信息.
文獻(xiàn)[3]提出一種一般的粗粒度可重構(gòu)陣列模板,這種陣列結(jié)構(gòu)不僅包括一個(gè)通常的配置信息存儲(chǔ)器,而且在每個(gè)處理器單元中還包括一個(gè)配置信息Caches.只有當(dāng)Caches中的配置信息不足時(shí),才從處理單元外的配置存儲(chǔ)器調(diào)取配置信息,這種結(jié)構(gòu)大大減少了配置信息的訪存頻率.盡管如此,它也帶來(lái)了配置空間這個(gè)新的問(wèn)題,最好的情況是一次程序映射的所有配置信息都可以存儲(chǔ)在Caches中,在一些簡(jiǎn)單循環(huán)映射中這種情況是存在的.圖2為其提出的一般粗粒度可重構(gòu)陣列模板.

Fig. 2 General dynamic reconfigurable architecture template圖2 一般動(dòng)態(tài)可重構(gòu)體系結(jié)構(gòu)模板
文獻(xiàn)[4]在Montium項(xiàng)目中提出一種層次化的配置信息存儲(chǔ)器模型.Montium項(xiàng)目中可重構(gòu)處理器由5個(gè)功能強(qiáng)大的處理單元組成流水線結(jié)構(gòu).它的配置信息存儲(chǔ)器包括單個(gè)算術(shù)邏輯單元(arithmetic logical unit, ALU)配置存儲(chǔ)器(配置單個(gè)ALU在一次程序映射中執(zhí)行8個(gè)不同的操作)和5段ALU配置存儲(chǔ)器(配置5段可重構(gòu)流水線在一次程序映射中可以執(zhí)行32個(gè)不同的數(shù)據(jù)子圖).
然而配置信息對(duì)可重構(gòu)結(jié)構(gòu)的整個(gè)性能和功耗非常重要,如圖3所示為文獻(xiàn)[1]分析的傳統(tǒng)的可重構(gòu)陣列在運(yùn)行2D-FDCT程序時(shí),可重構(gòu)陣列各個(gè)部分消耗的功耗占總功耗的餅狀圖.從圖3中可以看出,功能處理單元陣列所占功耗最大比例最大為48%,其次則為配置信息存儲(chǔ)器占了43%,由于CGRA廣泛挖掘數(shù)據(jù)級(jí)并行的局部性,盡管配置信息存儲(chǔ)器和幀緩存使用的是相同的存儲(chǔ)器技術(shù),但幀緩存(frame buffer, FB)功耗只有8%左右.

Fig. 3 CGRA running 2D-FDCT power consumption pie chart圖3 CGRA運(yùn)行2D-FDCT時(shí)功耗餅狀圖[1]
由于對(duì)配置信息存儲(chǔ)器頻繁的讀操作,導(dǎo)致了配置信息存儲(chǔ)器所消耗的功耗巨大,為降低整個(gè)SoC系統(tǒng)的配置代價(jià),在有效地提升所生成的配置信息的配置性能的同時(shí),本文研究了低功耗的層次化的配置存儲(chǔ)器設(shè)計(jì)及其配置信息生成方法.
傳統(tǒng)可重構(gòu)處理器配置信息從主處理器的外存通過(guò)直接內(nèi)存存取(direct memory access, DMA)載入粗粒度可重構(gòu)處理陣列(coarse grained recon-figurable array, CGRA)的配置信息存儲(chǔ)器,這部分一般可以與主處理器的計(jì)算疊加隱藏,因此一般不考慮其性能影響.當(dāng)CGRA運(yùn)行起來(lái)后,配置信息依舊存儲(chǔ)在配置信息存儲(chǔ)器中,傳統(tǒng)的配置信息發(fā)射方法是每個(gè)處理單元通過(guò)存儲(chǔ)讀操作訪問(wèn)存儲(chǔ)器,同樣這部分訪存操作也可以與CGRA的計(jì)算疊加,但是頻繁的讀操作會(huì)帶來(lái)3個(gè)問(wèn)題[5-6]:
1) 增大的數(shù)據(jù)帶寬要求.由于處理單元個(gè)數(shù)眾多,如果每個(gè)處理單元都需要一次訪存操作的話,整個(gè)CGRA陣列要求的數(shù)據(jù)帶寬就非常大了.
2) 面積.由于訪存單元往往占用較大面積,多個(gè)訪存單元將導(dǎo)致陣列面積快速增加.
3) 功耗.存儲(chǔ)器讀操作雖然與計(jì)算重疊,可以認(rèn)為其不對(duì)性能產(chǎn)生影響,但是讀操作功耗較大,頻繁的存儲(chǔ)器讀操作必將帶來(lái)較大的功耗.
映射到CGRA可重構(gòu)陣列的循環(huán)核心天然地具有循環(huán)重復(fù)特性,由于CGRA中配置信息描述系統(tǒng)操作和互連特性,因此配置信息也天然地具有這種循環(huán)性和重復(fù)特性.使用數(shù)據(jù)局部性是獲得性能和功耗降低的重要方法.如在CPU(central processing unit)中利用數(shù)據(jù)局部性使用高速緩存保存當(dāng)前數(shù)據(jù),因?yàn)楹罄m(xù)操作有非常大的可能性還會(huì)用到當(dāng)前數(shù)據(jù),所以取得性能提升和功耗降低.層次化的配置信息存儲(chǔ)器設(shè)計(jì)思想正是使用這一方法,在配置信息生成方面獲得改進(jìn).通過(guò)局部性原則,在CGRA配置信息生成方面獲得功耗改進(jìn)的原理[5]是:
1) 使用局部寄存器中數(shù)據(jù)比使用局部存儲(chǔ)器中數(shù)據(jù)功耗更小;
2) 使用局部寄存器中數(shù)據(jù)比使用非局部寄存器中數(shù)據(jù)功耗更小;
3) 使用局部存儲(chǔ)器中數(shù)據(jù)比使用非局部存儲(chǔ)器中數(shù)據(jù)功耗更小;

Fig. 4 Traditional reconfigurable system圖4 傳統(tǒng)可重構(gòu)系統(tǒng)[1]
因此在設(shè)計(jì)中分層次使用局部寄存器、局部存儲(chǔ)器和全局存儲(chǔ)器3個(gè)層次組建配置信息存儲(chǔ)器.當(dāng)配置信息位于局部寄存器中時(shí),盡量使用局部寄存器配置信息;當(dāng)配置信息不在局部寄存器中時(shí),盡量使用局部存儲(chǔ)器中配置信息;只有配置信息不在前兩處時(shí),才從全局存儲(chǔ)器中讀取配置信息;當(dāng)全局存儲(chǔ)器中也沒(méi)有配置信息,就必須從SoC外存中調(diào)入配置信息.在設(shè)計(jì)中,期望信息位置越靠近局部寄存器越好.局部寄存器性能較好,但造價(jià)更為昂貴容量較小,全局寄存器雖然性能較差但造價(jià)便宜容量更大.對(duì)于領(lǐng)域應(yīng)用滿足特定領(lǐng)域程序映射要求的配置空間大小情況下,減少局部寄存器容量可以大大減少造價(jià)而不影響性能.圖4給出了傳統(tǒng)可重構(gòu)陣列結(jié)構(gòu)示意圖[1]:
從圖4可以看出配置信息作為一個(gè)整體存儲(chǔ)器,雖然實(shí)現(xiàn)上可能是分布,是多bank存儲(chǔ)器,但是其設(shè)計(jì)思想仍是采用一個(gè)全局外部存儲(chǔ)器,每個(gè)處理單元在需要配置信息時(shí),都是從該存儲(chǔ)器讀取配置信息.
本文研究的配置存儲(chǔ)器設(shè)計(jì)主要分3個(gè)步驟[5]:
1) 設(shè)計(jì)一個(gè)高效層次化的配置信息存儲(chǔ)器.以往在可重構(gòu)結(jié)構(gòu)的配置存儲(chǔ)器設(shè)計(jì)上研究較少,一般都將其設(shè)計(jì)為一個(gè)簡(jiǎn)單的存儲(chǔ)器,但這種設(shè)計(jì)方法忽略了配置信息廣泛存在的局部性,效率低下從而導(dǎo)致配置時(shí)間開(kāi)銷較長(zhǎng).因而本文引入了層次化的配置存儲(chǔ)器設(shè)計(jì),將其設(shè)計(jì)為3個(gè)層次:局部配置寄存器、局部配置存儲(chǔ)器和全局配置存儲(chǔ)器.這種設(shè)計(jì)充分利用了配置信息的局部性,可以帶來(lái)功耗的較大改善.
2) 設(shè)計(jì)互連配置信息存儲(chǔ)器和運(yùn)算操作配置信息存儲(chǔ)器,這其實(shí)是對(duì)運(yùn)行時(shí)系統(tǒng)的運(yùn)行模式進(jìn)行了設(shè)計(jì),這種設(shè)計(jì)需要與編譯流程中映射結(jié)果進(jìn)行銜接,與可重構(gòu)SoC系統(tǒng)架構(gòu)設(shè)計(jì)緊密相關(guān).從可重構(gòu)流水線中提取體系結(jié)構(gòu)模式集,并以該模式集為輸入,以循環(huán)核心為另一輸入進(jìn)行匹配.配置信息存儲(chǔ)器主要分成2個(gè)存儲(chǔ)器,即互連配置信息存儲(chǔ)器和運(yùn)算操作配置信息存儲(chǔ)器,利用這2種配置信息重構(gòu)的頻率和開(kāi)銷,結(jié)合層次化配置信息存儲(chǔ)器,設(shè)計(jì)了各層次上不同容量的設(shè)計(jì)方案.這種設(shè)計(jì)承接了映射的結(jié)果,很好地反映了系統(tǒng)運(yùn)行時(shí)的真實(shí)信息,同時(shí)也帶來(lái)功耗和面積的改善.

Fig. 5 Hierarchical configuration information memory for reconfigurable pipeline圖5 可重構(gòu)流水線層次化配置信息存儲(chǔ)器[5]
3) 配置信息的生成.雖然可重構(gòu)結(jié)構(gòu)靈活性較高,本文在應(yīng)用算法分析和映射時(shí)采用體系結(jié)構(gòu)模式集為基礎(chǔ)進(jìn)行匹配,因而其可重構(gòu)流水線并不復(fù)雜.互連配置信息和運(yùn)算操作配置信息分離的設(shè)計(jì),減少了配置信息的傳輸時(shí)間(配置開(kāi)銷),從而提升了配置信息生成的整體性能.
圖5給出了本文設(shè)計(jì)的層次化配置信息存儲(chǔ)器[5]:
圖5中可以看出,本文的可重構(gòu)流水線采用層次化配置信息存儲(chǔ)器,3個(gè)層次由內(nèi)到外分別為局部配置寄存器、局部配置存儲(chǔ)器和全局配置存儲(chǔ)器.由內(nèi)到外3個(gè)層次速度越來(lái)越慢,容量越來(lái)越大,造價(jià)越來(lái)越高.靠?jī)?nèi)的存儲(chǔ)器均可向靠外的存儲(chǔ)器調(diào)入新的配置信息用來(lái)替換當(dāng)前配置信息.
編譯映射的最終結(jié)果是可重構(gòu)流水線可以識(shí)別和執(zhí)行的配置信息,因此在配置信息生成時(shí)也應(yīng)適應(yīng)編譯映射方法.基于模式的可重構(gòu)編譯方法,以體系結(jié)構(gòu)模式集為被匹配對(duì)象,以循環(huán)核心為待匹配對(duì)象,最終循環(huán)核心被一系列體系結(jié)構(gòu)模式集覆蓋,每個(gè)體系結(jié)構(gòu)模式集匹配成功后還有操作模式補(bǔ)充說(shuō)明此前節(jié)拍各個(gè)處理單元執(zhí)行的操作.之所以選擇使用互連模式作為被匹配對(duì)象而不是操作模式主要基于3個(gè)原因[5,7].
1) 對(duì)于可重構(gòu)流水線定制完成以后,有限的處理單元之間的互連情況可以枚舉出來(lái),而操作模式枚舉的個(gè)數(shù)要遠(yuǎn)遠(yuǎn)大于互連模式的個(gè)數(shù),被匹配集如果過(guò)大,會(huì)急劇增加程序映射時(shí)間,增加編譯映射難度.
2) 一般而言處理單元可執(zhí)行的為幾類簡(jiǎn)單操作和特定的定制指令,操作個(gè)數(shù)有限且較少,在配置信息中用于表示操作的一般為6~7 b,而用于表示互連的往往達(dá)到20幾位.一個(gè)互連模式可以對(duì)應(yīng)多個(gè)操作模式,當(dāng)重構(gòu)操作時(shí),需要的配置信息則較少;反過(guò)來(lái),如果一個(gè)操作模式對(duì)應(yīng)多個(gè)互連模式,當(dāng)重構(gòu)互連時(shí),需要的配置信息則較多.配置信息的多少直接影響到功耗.
3) 簡(jiǎn)化編譯映射.由于圖同構(gòu)是一典型的NP難問(wèn)題,目前還沒(méi)有有效的方法在多項(xiàng)式時(shí)間內(nèi)解決該問(wèn)題.圖同構(gòu)問(wèn)題會(huì)隨著被匹配集的個(gè)數(shù)、被匹配圖中節(jié)點(diǎn)的個(gè)數(shù)急劇增加.從互連模式出發(fā),一方面匹配集的個(gè)數(shù)較少,另一方面每個(gè)匹配圖中最大節(jié)點(diǎn)數(shù)為處理單元個(gè)數(shù).
綜上所述,良好的編譯映射方法可以減少配置信息總量,減少因配置信息重構(gòu)而造成的功耗;同時(shí)一個(gè)良好的配置信息生成方法也可以簡(jiǎn)化編譯映射的難度.兩者需要同時(shí)考慮,互相支持才能使整個(gè)可重構(gòu)編譯流程高效[8-9].
為了支持互連模式和操作模式,本文在設(shè)計(jì)配置信息存儲(chǔ)器時(shí)將其分開(kāi)設(shè)計(jì)為互連配置信息存儲(chǔ)器和運(yùn)算操作配置信息存儲(chǔ)器,分別對(duì)應(yīng)互連模式和操作模式,具體設(shè)計(jì)又有所不同.一個(gè)互連模式可以對(duì)應(yīng)多個(gè)操作模式,但是在某一節(jié)拍,處理單元執(zhí)行的功能是確定的.操作模式即為當(dāng)前互連模式中使用的處理節(jié)點(diǎn)的當(dāng)前節(jié)拍操作.正是因?yàn)橐粋€(gè)互連模式對(duì)應(yīng)多個(gè)操作模式,所以操作模式重構(gòu)的可能性更大,而互連模式相對(duì)比較固定,互連模式相對(duì)比較穩(wěn)定,因此操作配置信息存儲(chǔ)器應(yīng)該設(shè)計(jì)得更靠?jī)?nèi).另一方面操作模式使用的位數(shù)較少,而互連模式描述的信息較多使用的位數(shù)較長(zhǎng),需要的互連配置存儲(chǔ)器容量較大,因此在設(shè)計(jì)互連配置信息存儲(chǔ)器時(shí)應(yīng)該設(shè)計(jì)得靠外.
綜上分析,本文計(jì)劃將配置信息存儲(chǔ)器在上小節(jié)的分層配置信息存儲(chǔ)器基礎(chǔ)上作如下改進(jìn),如圖6所示[5]:

Fig. 6 Operating configuration information and interconnect configuration information memory圖6 互連配置信息存儲(chǔ)器&操作配置信息存儲(chǔ)器[5]
從圖6中可以看出,存儲(chǔ)器分為操作配置信息存儲(chǔ)器、互連配置信息存儲(chǔ)器,以及既包含操作配置信息又包含互連配置信息的全局存儲(chǔ)器.各個(gè)存儲(chǔ)器的大小相對(duì)地表現(xiàn)了存儲(chǔ)器的容量.從圖6中可以看出在處理器內(nèi)部的局部寄存器中,有大量的操作配置信息存儲(chǔ)器和少量的互連配置信息存儲(chǔ)器,這是因?yàn)椴僮魍貥?gòu)的比較頻繁,而互連模式相對(duì)比較穩(wěn)定.在局部存儲(chǔ)器這一層次都存在較多的配置信息存儲(chǔ)器,互連配置信息更多一點(diǎn),這是因?yàn)榛ミB信息往往較大.圖6中雖然是分布式的存儲(chǔ)器布局,但這些分布式存儲(chǔ)器共同決定了一個(gè)模式.對(duì)于全局配置存儲(chǔ)器既包含了互連配置信息,又包含了操作配置信息,當(dāng)前兩層配置空間不足時(shí)即從該處調(diào)取.
依據(jù)第1,2節(jié)的研究方案設(shè)計(jì)好配置信息以后,配置信息的生成方法是本文重點(diǎn)研究的問(wèn)題.良好配置信息生成方案的關(guān)鍵在于充分利用編譯映射方法中的隱含信息和發(fā)揮配置信息存儲(chǔ)器的結(jié)構(gòu)特點(diǎn).配置信息生成的技術(shù)指標(biāo)主要是配置信息總的位數(shù),位數(shù)越多說(shuō)明需要的存儲(chǔ)空間更大,重構(gòu)開(kāi)銷更大,表現(xiàn)為系統(tǒng)指標(biāo)就是面積更大和功耗更大.
基于模式的可重構(gòu)編譯映射方法有許多隱含信息,可以使用這些隱含信息最大程度地減少配置信息的位數(shù).基于模式的可重構(gòu)編譯映射方法使用首先互連映射,以體系結(jié)構(gòu)互連模式集為被匹配對(duì)象,以循環(huán)核心為待匹配對(duì)象[10-11].圖7(a)為3個(gè)節(jié)點(diǎn)的可重構(gòu)流水線體系結(jié)構(gòu)互連模式集[5]:

Fig. 7 Reconfigurable pipelined architecture and interconnection mapping diagram圖7 可重構(gòu)流水線體系結(jié)構(gòu)互連模式及映射示意圖
3個(gè)節(jié)點(diǎn)的可重構(gòu)流水線體系結(jié)構(gòu)互連模式集只有5個(gè),使用3 b就可以標(biāo)識(shí)這5種不同情況,對(duì)于每一個(gè)模式,如果匹配成功,還需再加上當(dāng)前時(shí)刻的操作模式.而對(duì)于某一特定循環(huán)核心的映射,可能只使用了其中的某幾個(gè)模式,這樣互連模式個(gè)數(shù)就更少了.一個(gè)互連模式隱式地就包含了體系結(jié)構(gòu)的互連信息,在生成配置信息時(shí),可以不用再生成全部的互連配置信息,而是通過(guò)模式標(biāo)識(shí)號(hào)就可以表示當(dāng)前互連情況,這樣大大減少了生成的配置信息數(shù)量.而具體的互連信息可以在編譯映射時(shí),將所有使用到的模式及其互連信息建立聯(lián)系,將需要使用的具體的互連信息初始化到全局配置信息存儲(chǔ)器中,配置信息則用相應(yīng)的模式標(biāo)識(shí)表示[10-11].
前面的步驟中模式,程序都以圖的形式表示,在配置信息中不能直接表示圖.一般都是通過(guò)多少位二進(jìn)制數(shù)據(jù)表示,在讀入配置信息后進(jìn)行解碼.在本文設(shè)計(jì)中同樣使用這種形式,但不同的是本文的每個(gè)互連模式都包含了確定的隱含信息,這些信息雖同樣采用二進(jìn)制數(shù)據(jù)表示,通過(guò)預(yù)載入的方式載入,但以標(biāo)號(hào)標(biāo)識(shí),以便下次在進(jìn)行重構(gòu)時(shí)只需通過(guò)標(biāo)號(hào)進(jìn)行載入即可.這種設(shè)計(jì)在重構(gòu)空間滿足程序的情況下,將大大減少功耗.
為了驗(yàn)證層次化配置信息存儲(chǔ)器,本文使用Verilog語(yǔ)言實(shí)現(xiàn)了圖8所示的可重構(gòu)密碼處理SoC的可重構(gòu)部分.該結(jié)構(gòu)包括16個(gè)應(yīng)用定制的處理單元,每個(gè)處理單元根據(jù)密碼應(yīng)用領(lǐng)域定制特定的功能[5].

Fig. 8 Reconfigurable cipher processing SoC圖8 可重構(gòu)密碼處理SoC可重構(gòu)部分[5]
從圖8中可以看到本文將可重構(gòu)配置信息存儲(chǔ)器按層次分為3層:第1層為整個(gè)可重構(gòu)協(xié)處理器部分的全局配置信息存儲(chǔ)器,第2層為每列的列配置信息存儲(chǔ)器,第3層為處理單元內(nèi)部的局部配置信息寄存器.同時(shí)每一層的配置信息存儲(chǔ)器又分為了操作配置信息存儲(chǔ)器部分和互連配置信息部分.
可重構(gòu)結(jié)構(gòu)可以動(dòng)態(tài)改變硬件的操作和連接關(guān)系.傳統(tǒng)的可重構(gòu)結(jié)構(gòu)都是同時(shí)重構(gòu)操作或者互連,配置信息量由配置字位數(shù)乘以需要配置的處理單元個(gè)數(shù).單元個(gè)數(shù)多導(dǎo)致配置信息數(shù)據(jù)量大,導(dǎo)致功耗高、帶寬要求高.實(shí)際上應(yīng)用中大量存在單獨(dú)重構(gòu)操作或者單獨(dú)改變互連的情況,如圖9所示[5]:

Fig. 9 Examples of operations and interconnections change independent圖9 操作與互連單獨(dú)改變實(shí)例[5]
MD5包括4輪處理,每輪處理由16個(gè)迭代步組成,而這64步操作都非常相似.每一步的運(yùn)算形式為
A<-B+(A+F(B,C,D)+M[k]+T[i])<
如圖10所示:

Fig. 10 Each step of the iterative calculation for MD5圖10 MD5中每一步迭代計(jì)算示意圖[5]
應(yīng)用定制時(shí)將該迭代計(jì)算定制為一個(gè)指令MD5round.每個(gè)處理單元都可以在一個(gè)周期內(nèi)完成一步迭代計(jì)算.MD5的64迭代計(jì)算過(guò)程構(gòu)成完美的流水線,這64步的數(shù)據(jù)流向完全相同;每16步的操作也相同.也就是說(shuō)在重構(gòu)的過(guò)程中每16個(gè)迭代需要重構(gòu)操作,整個(gè)64個(gè)迭代都不需要改變互連.綜合時(shí)序報(bào)告顯示其關(guān)鍵路徑為4.635 ns,利用該定制功能部件最大可以運(yùn)行在215 MHz.
5.1 可重構(gòu)密碼處理SoC配置信息生成方法功耗分析
傳統(tǒng)的可重構(gòu)架構(gòu)在可重構(gòu)配置信息設(shè)計(jì)方面有3方面的考慮.
1) 傳統(tǒng)可重構(gòu)配置信息為了配合硬件設(shè)計(jì),往往設(shè)計(jì)成32 b或32的整數(shù)倍.對(duì)于較簡(jiǎn)單的可重構(gòu)體系結(jié)構(gòu)(例如可重構(gòu)流水線),有可能不需要使用到如此多的位數(shù),多余的位數(shù)則浪費(fèi).一方面使芯片面積增大,另一方面增加重構(gòu)的功耗.而面向密碼處理領(lǐng)域的可重構(gòu)SoC配置信息生成方法設(shè)計(jì)了分開(kāi)的操作配置信息存儲(chǔ)器和互連配置信息存儲(chǔ)器,不存在不使用的配置信息位數(shù),從而減少了整個(gè)存儲(chǔ)器容量,減少系統(tǒng)的靜態(tài)功耗[5,12-13].
2) 傳統(tǒng)可重構(gòu)配置信息都是同時(shí)重構(gòu)操作和互連,也就是一次重構(gòu)的位數(shù)為處理單元乘以配置信息位數(shù).配置信息數(shù)據(jù)量大,同時(shí)又是存儲(chǔ)器讀操作,大大增加了系統(tǒng)的功耗.而面向密碼處理領(lǐng)域的可重構(gòu)SoC配置信息生成方法可以單獨(dú)地重構(gòu)操作或互連,需要重構(gòu)的次數(shù)明顯減少,需要傳遞的配置信息總量明顯減少,減少系統(tǒng)的動(dòng)態(tài)功耗[5,12-13].
3) 傳統(tǒng)可重構(gòu)結(jié)構(gòu)為了保證系統(tǒng)功能完備性,往往要設(shè)計(jì)相當(dāng)容量的配置信息存儲(chǔ)器,而面向密碼處理領(lǐng)域的可重構(gòu)SoC配置信息生成方法挖掘了重構(gòu)過(guò)程中的不變性,因此可以適當(dāng)?shù)販p少配置信息存儲(chǔ)器的容量,減少了系統(tǒng)的靜態(tài)功耗[5,14].
為了驗(yàn)證面向密碼處理領(lǐng)域的可重構(gòu)SoC可重構(gòu)部分的功耗特點(diǎn),本文選取了LiverMore loop benchmark,DSPstone和密碼處理領(lǐng)域的關(guān)鍵算法[15-16].
表1給出了可重構(gòu)密碼處理SoC(reconfigurable cryptographic processing SoC,RCPSoC)與傳統(tǒng)可重構(gòu)處理結(jié)構(gòu)(traditional reconfigurable processing architecture,TRPA)不同配置信息生成方法功耗對(duì)比.

Table 1 Power Consumption Comparison Between RCPSoC and TRPA Configuration Information Generation Method
從表1可以看出,由于可重構(gòu)密碼SoC配置信息存儲(chǔ)器層次化設(shè)計(jì)和拆分為操作、互連2個(gè)存儲(chǔ)器,取得了功耗上較大的改善,改善幅度從23.7%~32.6%不等.在MD5和SHA-1這些散列加密算法中大量的迭代計(jì)算間存在較大的相似性,從而在可重構(gòu)密碼SoC中減少了重構(gòu)的次數(shù)和配置信息總量.與其他的測(cè)試程序相比,MD5和SHA-1的重構(gòu)不變的是互連,在配置信息中互連配置信息占主要部分,而操作配置信息占次要部分,因此這2種算法的功耗提升更為明顯[5].
5.2 可重構(gòu)密碼處理SoC配置速度及性能分析
在層次化配置信息存儲(chǔ)器設(shè)計(jì)時(shí),將配置存儲(chǔ)器分為互連配置信息存儲(chǔ)器和操作配置信息存儲(chǔ)器.在這種設(shè)計(jì)方法下,某一種模式的重構(gòu)不需要更改所有的配置信息,而只需修改相應(yīng)的配置信息即可,不僅配置的信息量減小了,而且重構(gòu)的開(kāi)銷也減少了.互連模式是多個(gè)處理單元組合的結(jié)果,互連配置信息存儲(chǔ)器可作用于整條可重構(gòu)流水線;操作模式作用于每個(gè)處理單元,操作配置信息存儲(chǔ)器既可以作用于整條流水線也可以作用于單個(gè)處理單元.將互連配置信息和操作配置信息分離的方法極大地減少了配置空間的大小,使用少數(shù)幾個(gè)模式就可以描述大量的數(shù)據(jù)流圖,在大大減少配置信息存儲(chǔ)器讀操作的同時(shí)又解決了配置空間問(wèn)題,使得每次需要配置的存儲(chǔ)器容量變小,因而性能更優(yōu),速度也更快[5].
在密碼處理算法中,在一個(gè)確定的互連模式下,可以包含可重構(gòu)流水線功能單元的多種操作模式,很多時(shí)候不需要更改互連模式就能完成密碼算法的處理.同時(shí),由于流水線的作用,只需要使用第一條流水線使用的配置信息,前一條流水線運(yùn)行后將配置信息和運(yùn)算結(jié)果打包發(fā)送到下一條流水線中,總的配置信息層數(shù)也較少,層次化配置存儲(chǔ)器的配置信息局部性比較好,有利于降低功耗和提高性能.只有當(dāng)局部配置寄存器中的配置信息不足時(shí),才從處理單元外的局部配置存儲(chǔ)器調(diào)取配置信息,大大減少了配置信息的訪存頻率[5].
基于上述2點(diǎn)分析,從直觀上看,層次化的配置信息存儲(chǔ)器設(shè)計(jì)方法在獲得功耗減小的同時(shí),配置的速度和性能也有很大的優(yōu)勢(shì).為了驗(yàn)證面向密碼處理領(lǐng)域的可重構(gòu)SoC配置信息生成方法的性能,與傳統(tǒng)的可重構(gòu)結(jié)構(gòu)進(jìn)行了比較,配置時(shí)間用時(shí)鐘周期數(shù)來(lái)表示,比較結(jié)果如表2所示[5].
從表2的數(shù)據(jù)可以看出,在完成相同密碼處理程序的時(shí)候,可重構(gòu)密碼SoC配置信息存儲(chǔ)器層次化設(shè)計(jì)由于配置信息容量的減少以及較好的局部性特點(diǎn),獲得了35.3%~53.5%的性能提升[5].

Table 2 Performance Comparison Between RCPSoC and TRPA Configuration Information Generation Method
本文研究了配置信息存儲(chǔ)器的設(shè)計(jì)方法,與大部分傳統(tǒng)可重構(gòu)體系結(jié)構(gòu)使用分布式的配置信息存儲(chǔ)器進(jìn)行動(dòng)態(tài)重構(gòu)相比,本文所采用的方法帶來(lái)較大的功耗提升.本文首先設(shè)計(jì)了層次式的配置信息存儲(chǔ)器結(jié)構(gòu);其次將配置信息分為操作配置信息和互連配置信息存儲(chǔ)器2部分,即可以在不同層次上進(jìn)行重構(gòu),也可以單獨(dú)重構(gòu)某一部分;最后,以面向密碼處理領(lǐng)域的可重構(gòu)SoC的配置信息生成方法為實(shí)例進(jìn)行了驗(yàn)證.實(shí)驗(yàn)表明:在運(yùn)行性能不變的情況下,本文的配置信息生成方法減少了23.7%~32.6%的功耗.對(duì)于不同的應(yīng)用,當(dāng)應(yīng)用中互連狀態(tài)可以不需要重構(gòu)時(shí),由于配置信息中互連信息所占比例較大,因此帶來(lái)更大的功耗改善[5].
[1]Kim Y, Park I, Choi K, et al. Power-conscious configuration cache structure and code mapping for coarse-grained reconfigurable architecture[C] //Proc of the 2006 Int Symp on Low Power Electronics and Design. New York: ACM, 2006: 310-315
[2]Ye Z A, Moshovos A, Hauck S, et al. CHIMAERA: A high-performance architecture with a tightly-coupled reconfigurable functional unit[C] //Proc of Annual Int Symp on Computer Architecture. New York: ACM, 2000: 225-235
[3]Lee J E, Choi K, Dutt N D. Compilation approach for coarse-grained reconfigurable architectures[J]. IEEE Design & Test of Computers, 2003, 20(1): 26-33
[4]Guo Y. Mapping applications to a coarse-grained reconfigurable architecture[D]. Enschede, Overijssel, Netherlands: University of Twente, 2006
[5]Shen Jianliang. Research on the design methodology of application specific coarse grained reconfigurable system on chip[D]. Changsha: National University of Defense Technology, 2014 (in Chinese)(沈劍良. 應(yīng)用定制的粗粒度可重構(gòu)SoC設(shè)計(jì)方法研究[D]. 長(zhǎng)沙: 國(guó)防科學(xué)技術(shù)大學(xué), 2014)
[6]Rauwerda G K, Heysters P M, Smit G J M. Towards software defined radios using coarse-grained reconfigurable hardware[J]. IEEE Trans on Very Large Scale Integration Systems, 2008, 16(1): 3-13
[7]Venkataramani G, Najjar W, Kurdahi F, et al. A compiler framework for mapping applications to a coarse-grained reconfigurable computer architecture[C] //Proc of Int Conf on Compilers, Architecture, and Synthesis for Embedded Systems. New York: ACM, 2001: 116-125
[8]Lee J, Choi K, Dutt N D. An algorithm for mapping loops onto coarse-grained reconfigurable architectures[J]. ACM Sigplan Notices, 2003, 38(7): 183-188
[9]Dmuroulakos G, Galanis M H D, Goutis C E. Optimized back-end compiler techniques for mapping applications on coarse-grained reconfigurable matrices[J]. World Scientific and Engineering Academy and Society Trans on Computers, 2007, 6(1): 181-188
[10]Zuo Yanhui. Research on compiler for coarse grained reconfigurable array processor[D]. Changsha: National University of Defense Technology, 2008 (in Chinese)(左艷輝. 粗粒度可重構(gòu)陣列處理器編譯工具研究[D]. 長(zhǎng)沙: 國(guó)防科學(xué)技術(shù)大學(xué), 2008)
[11]Zhu Min, Liu Leibo, Yin Shouyi. Timing parameter analysis of critical loop to reconfigurable array mapping[J]. Journal of Computer Engineering, 2012, 38(22): 260-262 (in Chinese)(朱敏, 劉雷波, 尹首一. 關(guān)鍵循環(huán)到可重構(gòu)陣列映射中的時(shí)序參數(shù)分析[J]. 計(jì)算機(jī)工程, 2012, 38(22): 260-262)
[12]Yang Xiaohui, Dai Zibin, Zhang Yongfu. Research and design of reconfigurable computing targeted at block CipherProcessing[J]. Journal of Computer Research and Development, 2009, 46(6): 962-967 (in Chinese)(楊曉輝, 戴紫彬, 張永福. 可重構(gòu)分組密碼處理結(jié)構(gòu)模型研究與設(shè)計(jì)[J]. 計(jì)算機(jī)研究與發(fā)展, 2009, 46(6): 962-967)
[13]Garcia A, Berekovic M, Aa T V. Mapping of the AES cryptographic algorithm on a coarse-grain reconfigurable array processor[C] //Proc of Int Conf on Application-Specific Systems, Architectures and Processors. Los Alamitos, CA: IEEE Computer Society, 2008: 245-250
[14]Veredas F J, Scheppler M, Moffat W, et al. Custom implementation of the coarse-grained reconfigurable ADRES architecture for multimedia purposes[C] //Proc of the 15th Int Conf on Field Programmable Logic and Applications. Piscataway, NJ: IEEE, 2005: 106-111
[15]Yoon J W, Shrivastava A, Park S, et al. A graph drawing based spatial mapping algorithm for coarse-grained reconfigurable architectures[J]. IEEE Trans on Very Large Scale Integration Systems, 2009, 17(11): 1565-1578
[16]Lee G, Lee S, Choi K, et al. Routing-aware application mapping considering steiner points for coarse-grained reconfigurable architecture[C] //Proc of Int Symp on Applied Reconfigurable Computing. Berlin: Springer, 2010: 231-243
Hierarchical Configuration Memory Design for Coarse-Grained Reconfigurable SoC
Shen Jianliang1,2, Li Sikun2, Liu Lei2, Wang Guanwu2, Wang Xin1, and Liu Qinrang1
1(National Digital Switching System Engineering & Technological R&D Center, Zhengzhou 450002)2(College of Computer, National University of Defense Technology, Changsha 410073)
The generate efficiency and quality of configuration information directly affect the operation effect of the coarse grained reconfigurable SoC. Since the traditional approach treats the configuration memory as a whole, and each processing unit needs to read configuration information from the memory, the operation efficiency is low and the power consumption is large. In this paper, a low power hierarchical configuration information storage architecture is designed, which divides configuration information into separate operating configuration information and interconnect configuration information, and then generates the configuration information based on the context. Experimental results show that the configuration information generation method proposed in this paper can reduce power consumption of 23.7%-32.6% while keeping the same performance. At the same time, because of the separation of the operation and the configuration information, the configuration information capacity is small, so it has a great advantage in configuration speed and performance.
coarse grained reconfigurable SoC; configuration information memory; hierarchical; low power; configuration information generation method

Shen Jianliang, born in 1982. PhD and lecturer. Member of CCF. His main research interests include reconfigurable computing and embedded SoC design.

Li Sikun, born in 1941. Professor and PhD supervisor. Senior member of CCF. His main research interests include VLSI design methodology and reconfigurable computing (sikunli@126.com).

Liu Lei, born in 1984. PhD candidate. His main research interest is reconfigurable computing (liulei@nudt.edu.cn).

Wang Guanwu, born in 1986. PhD candidate. His main research interest is reconfigurable computing (guanwuwang1986@126.com).

Wang Xin, born in 1986. Master. His main research interests include reconfigurable computing and SoC design (wx@ndsc.com.cn).

Liu Qinrang, born in 1975. PhD and researcher. His main research interests include reconfigurable computing and network architecture (lqr@ndsc.com.cn).
2015-09-30;
2016-08-08
國(guó)家“八六三”高技術(shù)研究發(fā)展計(jì)劃基金項(xiàng)目(2014AA01A704);國(guó)家自然科學(xué)基金創(chuàng)新群體項(xiàng)目(61521003);國(guó)家自然科學(xué)基金面上項(xiàng)目(61572520) This work was supported by the National High Technology Research and Development Program of China (863 program) (2014AA01A704), the Innovation Group Program of the National Natural Science Foundation of China (61521003), and the General Program of the National Natural Science Foundation of China (61572520).
TP391