文獻標識碼: A
DOI:10.16157/j.issn.0258-7998.181095
中文引用格式: 蔣林,,劉陽,山蕊,,等. 可重構陣列處理器中分布式Cache設計[J].電子技術應用,,2018,44(12):9-12,,16.
英文引用格式: Jiang Lin,,Liu Yang,Shan Rui,,et al. Design of the distributed Cache for reconfigurable array processor[J]. Application of Electronic Technique,,2018,44(12):9-12,,16.
0 引言
隨著電路技術飛速發(fā)展,,人工智能等新應用層出不窮,,可重構陣列處理器[1-2]兼顧通用處理器(General Purpose Processor,GPP)[3]靈活性和專用集成電路(Application Specific Integrated Circuit,,ASIC)[4]計算能力,,因而逐漸成為目前密集型應用領域的研究熱點??芍貥嬯嚵衅髦泻A康脑L存數(shù)據(jù)使得目前存儲帶寬嚴重不足[5],,故研究存儲結構解決帶寬嚴重不足問題是提升整個系統(tǒng)性能的關鍵。
為了解決以上問題,,設計人員普遍采用Cache技術,,其中文獻[6]中CGRA的硬件平臺中,存儲結構采用數(shù)據(jù)共享Cache,,此結構數(shù)據(jù)并行性差,;CONG J等人提出的FPCA結構通過增加一級共享Cache的容量來提高命中率[7],文獻[8]同樣采用片上大容量共享Cache來進行訪存,,這種大容量的Cache結構不但使得整個系統(tǒng)的面積增加且訪存的并行性依舊不高,。以上多個處理器核對單一Cache空間的共享使得競爭突出[9],延遲有所增加,。GALANIS M D等人在其提出的可重構數(shù)據(jù)通路中,,存儲結構采用共享一級Cache和共享二級Cache來提高訪存速度[10];多倫多大學SWANSON S等人提出的WaveScalar數(shù)據(jù)流結構中,,片上存儲單元只采用一級共享數(shù)據(jù)Cache和指令Cache[11],;SOUZA J D等人提出的動態(tài)自適應處理器中,存儲單元依舊采用兩級共享Cache來實現(xiàn),,其中一級Cache分為數(shù)據(jù)和指令Cache[12],。文獻[13]片上采用分布式buffer設計來提高數(shù)據(jù)存取效率,但是與外存的交互依舊采用共享Cache技術來實現(xiàn),。以上多級共享Cache的結構沒有考慮數(shù)據(jù)的局部性特點以及并行性要求,,使得訪存的并行性差,吞吐量得到很大的限制,。
針對可重構陣列處理器訪存數(shù)據(jù)量很大,、數(shù)據(jù)并行性要求高且數(shù)據(jù)全局重用少,、局部性明顯的特點,本文提出一種“物理分布,、邏輯統(tǒng)一”的分布式Cache結構,。其中可重構陣列處理器對本地Cache以及遠程Cache都具有讀寫訪問權限,本地Cache優(yōu)先級高,,遠程Cache訪問通過高效的行列交叉開關進行目的地索引,,在與外存進行交互時,設計輪詢仲裁機制仲裁出一路信號后通過路由器進行數(shù)據(jù)傳輸,,最后通過Xilinx公司的Virtex-6系列xc6vlx550T開發(fā)板對設計進行測試,實驗結果表明,該結構在保持簡潔性和擴展性的同時,,最高能夠提供10.512 GB/s的訪存帶寬,,滿足可重構陣列處理器訪存的需求。
1 可重構陣列處理器分布式Cache結構
本文采用的可重構陣列結構,,是由4×4個PE組成的一個陣列處理器簇(Processing Element Group,,PEG),每個PE的訪存數(shù)據(jù)位寬為32位,,其分布式Cache結構如圖1所示,,由高速緩存器(Cache)、輪詢仲裁器以及網(wǎng)絡適配器組成,。其中每個PE都有一個本地Cache,,共16個,這16個Cache結構物理分布,、邏輯統(tǒng)一,。每個PE通過高效的行列交叉開關不僅可以訪問本地Cache,也可以對遠程Cache進行操作,。在無沖突的情況下,,當PE訪問本地Cache時,優(yōu)先級最高,,一旦本地Cache命中,,立即將數(shù)據(jù)返回給請求PE,若不命中,,則需要通過輪詢仲裁器仲裁出一路信號通過虛通道路由器VCR0901與外存進行通信,;當PE訪問遠程Cache時,需通過行列交叉開關對目的PE進行索引,,從而完成對遠程Cache的操作,。在本地與遠程操作沖突的情況下,優(yōu)先進行本地訪問,,其次將遠程請求進行正確反饋,。可重構陣列處理器的分布Cache結構可使16個PE同時對本地Cache進行讀寫操作,在無沖突訪問時,,分布式Cache結構的訪存帶寬達到峰值,。
1.1 高速緩存器的設計
高速緩存器主要由命中判斷單元(judge)、標志寄存單元(tag_index),、狀態(tài)寄存單元(state),、寫替換策略單元(wr_strategy)以及Cache數(shù)據(jù)存儲單元(Cache_data)組成,如圖2所示,。
(1)判斷單元:該單元主要用于接受來自PE的讀寫信號,,根據(jù)地址信息讀取標志寄存單元的標志位信息,然后在判斷單元內(nèi)進行比較,,輸出讀寫是否命中信息,;
(2)標志寄存單元:該單元主要用于寄存數(shù)據(jù)的標志位以及索引信息,并根據(jù)Cache數(shù)據(jù)存儲單元的信息進行實時更新,;
(3)狀態(tài)寄存單元:該單元主要用于寄存數(shù)據(jù)的臟位以及有效位信息,,并根據(jù)Cache數(shù)據(jù)存儲單元的信息進行實時更新;
(4)寫替換策略單元:該單元采用最近最少用策略提供需替換的Cache行,,并根據(jù)狀態(tài)寄存單元信息判讀是否需將數(shù)據(jù)寫回外存,;
(5)Cache數(shù)據(jù)存儲單元:該單元主要采用寫回策略通過路由與外存進行交互。
1.2 輪詢仲裁器的設計
當分布式Cache不命中時,,發(fā)送讀或寫訪問信號給仲裁器,,仲裁器通過輪詢機制仲裁出一組信號輸出給網(wǎng)絡適配器,輪詢仲裁器的結構圖如圖3所示,。
1.3 網(wǎng)絡適配器的設計
網(wǎng)絡適配器是PE與外存之間通信的網(wǎng)絡接口,,按照路由器格式對通信信息進行打包與解包操作,包格式如圖4所示,。
網(wǎng)絡適配器由寫數(shù)據(jù)模塊以及讀數(shù)據(jù)模塊組成,,頂層結構如圖5所示。
2 基于分布式Cache的并行訪問策略
對于可重構陣列處理器來說,,簇內(nèi)的信息交互通過行列交叉開關來定位,,簇間的信息交互在輪詢仲裁之后通過路由器來傳輸。
PE的讀訪問過程如圖6所示,,當PE發(fā)出讀請求時,,通過地址信息判斷是否讀本地Cache,其中讀本地Cache優(yōu)先級最高,。若讀遠程Cache,,則通過行列交叉開關來定位簇內(nèi)PE的位置;將讀地址與Cache中標志位進行比較,,如果讀命中,,則通過行列交叉開關直接將讀數(shù)據(jù)返回給請求PE,;如果讀不命中且命中行無效,則通過路由將外存的數(shù)據(jù)塊搬移到Cache中,,再進行讀數(shù)據(jù)操作,;如果讀不命中且命中行有效,則根據(jù)最近最久用替換算法以及寫回策略來進行主存數(shù)據(jù)塊的搬移,,最后再通過交叉開關將讀數(shù)據(jù)返回給請求PE,。可重構陣列處理器中16個PE可同時對Cache進行以上讀操作,。PE的寫訪問過程與讀訪問操作類似,,如圖7所示。
3 仿真與性能分析
3.1 設計仿真
基于分布式Cache的訪問策略對高速緩沖單元,、輪詢仲裁器以及網(wǎng)絡適配器進行RTL級設計,,通過編寫幾種典型訪問情況下的測試激勵,使用Questsim進行功能仿真后,,與可重構陣列處理器虛通道路由器,、輕核處理器以及Xilinx定制存儲器IP互連,,通過Xilinx的Virtex-6系列xc6vlx550T開發(fā)板對設計進行硬件測試,,具體參數(shù)如表1所示。
圖8給出了本地與遠程訪問時無沖突下典型情況數(shù)據(jù)訪問的最小延遲周期數(shù),;圖9給出了本地與遠程訪問沖突時的典型情況數(shù)據(jù)訪問的最小延遲周期數(shù),。
從圖8可以看出,在完全沒有競爭的情況下,,訪問遠程Cache比本地Cache延遲1個時鐘周期數(shù),。由圖9可知,當本地與遠程同時訪問本地Cache時,,由于本地Cache優(yōu)先級高,,故先響應本地Cache請求,遠程請求將在延遲4個時鐘周期之后進行響應,。
3.2 性能分析
通過Xilinx ISE14.7對設計進行綜合,,器件選用xc6vlx550T綜合后,分布式Cache實現(xiàn)方案最大工作頻率可以達到164.249 MHz,,具體器件資源占用情況如表2所示,。
文獻[14]設計了一種共享Cache以及分布式Cache結構,并給出了共享Cache和分布式Cache中本地Cache以及遠程Cache的平均訪問延遲,,表3是本文與文獻[14]結構的平均訪問延遲對比結果,。
從表3可知,本文最壞情況下(即沖突時的遠程訪問)的平均訪問延遲與共享Cache相比,,仍舊有所降低,;訪問本地Cache時,,本文的訪問延遲稍有增加,是由于在不命中時,,路由器的訪問延遲較大引起的,;在訪問遠程Cache時,平均訪問延遲明顯較低,,相比于文獻[14]減少了30%,。
本文中分布式Cache的主要硬件開銷可通過(T+S)×N×W×P計算得到[15],其中,,T,、S分別表示標志位和狀態(tài)位所占的位數(shù);N表示Cache的組數(shù),;W表示Cache的相聯(lián)度,;P表示處理器核數(shù)。每個處理器核所對應的Cache的硬件開銷按上式計算為1.6 KB,,只占片上Cache容量的5%,。
4 結論
針對可重構陣列處理器訪存量大以及訪存全局重用少、局部性明顯的特點,,設計并實現(xiàn)了一種分布式Cache結構,,其中Cache采用兩路組相聯(lián)的地址映射策略以及最近最少用的替換算法,利用局部高效交叉開關以及路由實現(xiàn)Cache共享以提高訪存的并行性,,減少延遲,。通過Xilinx公司的FPGA開發(fā)板進行驗證,實驗結果表明,,在無沖突情況下,,16個PE同時發(fā)送讀寫請求,此時帶寬達到峰值10.512 GB/s,,硬件開銷很小,,僅為片上Cache容量的5%,在滿足可重構陣列處理器訪存要求的同時,,保證了結構的可擴展性,。
參考文獻
[1] 魏少軍,劉雷波,,尹首一.可重構計算處理器技術[J].中國科學:信息科學,,2012(12):1559-1576.
[2] 周理.高效可重構陣列計算:體系結構,設計方法與程序映射技術研究[D].長沙:國防科學技術大學,2014.
[3] SCHMIDHUBER J.Deep learning in neural networks:an overview.[J].Neural Networks the Official Journal of the International Neural Network Society,,2014,,61:85.
[4] HAN X,ZHOU D,,WANG S,,et al.CNN-MERP:An FPGA-based memory-efficient reconfigurable processor for forward and backward propagation of convolutional neural networks[C].IEEE,,International Conference on Computer Design.IEEE,2016:320-327.
[5] ROMANOV A Y,,ROMANOVA I I.Use of irregular topologies for the synthesis of networks-on-chip[C].IEEE,,International Conference on Electronics and Nanotechnology.IEEE,2011:445-449.
[6] YIN S,,YAO X,,LIU D,et al.Memory-aware loop mapping on coarse-grained reconfigurable architectures[J].IEEE Transactions on Very Large Scale Integration Systems,,2016,,24(5):1895-1908.
[7] CONG J,HUANG H,,MA C,,et al.A fully pipelined and dynamically composable architecture of CGRA[C].IEEE,International Symposium on Field-ProgrammableCustom Computing Machines.IEEE,2014:9-16.
[8] LIANG S,,YIN S,,LIU L,et al.A coarse-grained reconfig-urable architecture for compute-intensive mapreduce acceleration[J].IEEE Computer Architecture Letters,,2016,,PP(99):1-1.
[9] 李崇民,王海,,李兆麟.CMP中Cache一致性協(xié)議的驗證[J].電子技術應用,,2005,,31(12):1-4.
[10] GALANIS M D,,THEODORIDIS G,TRAGOUDAS S,,et al.A reconfigurable coarse-graindata-pathfor accelerating computational intensive kernels[J].Journal of Circuits Systems & Computers,,2005,14(4):877-893.
[11] SWANSON S,,SCHWERIN A,,MERCALDI M,et al.The wave scalararchitecture[J].ACM Transactions on Computer Systems,,2007,,25(2):1-54.
[12] SOUZA J D,CARRO L,,RUTZIG M B,,et al.A reconfig-urable heterogeneous multicore with a homogeneous ISA[C].Design,Automation & Test in Europe Conference & Exhibition.IEEE,,2016:1598-1603.
[13] DU Z,,LIU S,,F(xiàn)ASTHUBER R,et al.An accelerator for high efficient vision processing[J].IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems,,2017,,36(2):227-240.
[14] BECKMANN B M,MARTY M R,,WOOD D A.ASR:adaptive selective replication for CMP Caches[C].IEEE/ACM International Symposium on Microarchitecture.IEEE Computer Society,,2006:443-454.
[15] 趙小雨,吳俊敏,,隋秀峰,,等.CMP中基于目錄的協(xié)作Cache設計方案[J].計算機工程,2010,,36(21):283-285.
作者信息:
蔣 林1,,劉 陽2,山 蕊1,,劉 鵬1,,耿玉榮2
(1.西安郵電大學 電子工程學院,陜西 西安710121,;2.西安郵電大學 計算機學院,,陜西 西安710121)