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

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

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

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

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

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

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

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

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

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

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

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

Table 2 Performance Comparison Between RCPSoC and TRPA Configuration Information Generation Method
本文研究了配置信息存儲器的設計方法,與大部分傳統可重構體系結構使用分布式的配置信息存儲器進行動態重構相比,本文所采用的方法帶來較大的功耗提升.本文首先設計了層次式的配置信息存儲器結構;其次將配置信息分為操作配置信息和互連配置信息存儲器2部分,即可以在不同層次上進行重構,也可以單獨重構某一部分;最后,以面向密碼處理領域的可重構SoC的配置信息生成方法為實例進行了驗證.實驗表明:在運行性能不變的情況下,本文的配置信息生成方法減少了23.7%~32.6%的功耗.對于不同的應用,當應用中互連狀態可以不需要重構時,由于配置信息中互連信息所占比例較大,因此帶來更大的功耗改善[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)(沈劍良. 應用定制的粗粒度可重構SoC設計方法研究[D]. 長沙: 國防科學技術大學, 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)(左艷輝. 粗粒度可重構陣列處理器編譯工具研究[D]. 長沙: 國防科學技術大學, 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)(朱敏, 劉雷波, 尹首一. 關鍵循環到可重構陣列映射中的時序參數分析[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)(楊曉輝, 戴紫彬, 張永福. 可重構分組密碼處理結構模型研究與設計[J]. 計算機研究與發展, 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
國家“八六三”高技術研究發展計劃基金項目(2014AA01A704);國家自然科學基金創新群體項目(61521003);國家自然科學基金面上項目(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