文獻(xiàn)標(biāo)識碼: A
DOI:10.16157/j.issn.0258-7998.181095
中文引用格式: 蔣林,劉陽,山蕊,等. 可重構(gòu)陣列處理器中分布式Cache設(shè)計[J].電子技術(shù)應(yīng)用,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 引言
隨著電路技術(shù)飛速發(fā)展,人工智能等新應(yīng)用層出不窮,可重構(gòu)陣列處理器[1-2]兼顧通用處理器(General Purpose Processor,GPP)[3]靈活性和專用集成電路(Application Specific Integrated Circuit,ASIC)[4]計算能力,因而逐漸成為目前密集型應(yīng)用領(lǐng)域的研究熱點??芍貥?gòu)陣列器中海量的訪存數(shù)據(jù)使得目前存儲帶寬嚴(yán)重不足[5],故研究存儲結(jié)構(gòu)解決帶寬嚴(yán)重不足問題是提升整個系統(tǒng)性能的關(guān)鍵。
為了解決以上問題,設(shè)計人員普遍采用Cache技術(shù),其中文獻(xiàn)[6]中CGRA的硬件平臺中,存儲結(jié)構(gòu)采用數(shù)據(jù)共享Cache,此結(jié)構(gòu)數(shù)據(jù)并行性差;CONG J等人提出的FPCA結(jié)構(gòu)通過增加一級共享Cache的容量來提高命中率[7],文獻(xiàn)[8]同樣采用片上大容量共享Cache來進(jìn)行訪存,這種大容量的Cache結(jié)構(gòu)不但使得整個系統(tǒng)的面積增加且訪存的并行性依舊不高。以上多個處理器核對單一Cache空間的共享使得競爭突出[9],延遲有所增加。GALANIS M D等人在其提出的可重構(gòu)數(shù)據(jù)通路中,存儲結(jié)構(gòu)采用共享一級Cache和共享二級Cache來提高訪存速度[10];多倫多大學(xué)SWANSON S等人提出的WaveScalar數(shù)據(jù)流結(jié)構(gòu)中,片上存儲單元只采用一級共享數(shù)據(jù)Cache和指令Cache[11];SOUZA J D等人提出的動態(tài)自適應(yīng)處理器中,存儲單元依舊采用兩級共享Cache來實現(xiàn),其中一級Cache分為數(shù)據(jù)和指令Cache[12]。文獻(xiàn)[13]片上采用分布式buffer設(shè)計來提高數(shù)據(jù)存取效率,但是與外存的交互依舊采用共享Cache技術(shù)來實現(xiàn)。以上多級共享Cache的結(jié)構(gòu)沒有考慮數(shù)據(jù)的局部性特點以及并行性要求,使得訪存的并行性差,吞吐量得到很大的限制。
針對可重構(gòu)陣列處理器訪存數(shù)據(jù)量很大、數(shù)據(jù)并行性要求高且數(shù)據(jù)全局重用少、局部性明顯的特點,本文提出一種“物理分布、邏輯統(tǒng)一”的分布式Cache結(jié)構(gòu)。其中可重構(gòu)陣列處理器對本地Cache以及遠(yuǎn)程Cache都具有讀寫訪問權(quán)限,本地Cache優(yōu)先級高,遠(yuǎn)程Cache訪問通過高效的行列交叉開關(guān)進(jìn)行目的地索引,在與外存進(jìn)行交互時,設(shè)計輪詢仲裁機(jī)制仲裁出一路信號后通過路由器進(jìn)行數(shù)據(jù)傳輸,最后通過Xilinx公司的Virtex-6系列xc6vlx550T開發(fā)板對設(shè)計進(jìn)行測試,實驗結(jié)果表明,該結(jié)構(gòu)在保持簡潔性和擴(kuò)展性的同時,最高能夠提供10.512 GB/s的訪存帶寬,滿足可重構(gòu)陣列處理器訪存的需求。
1 可重構(gòu)陣列處理器分布式Cache結(jié)構(gòu)
本文采用的可重構(gòu)陣列結(jié)構(gòu),是由4×4個PE組成的一個陣列處理器簇(Processing Element Group,PEG),每個PE的訪存數(shù)據(jù)位寬為32位,其分布式Cache結(jié)構(gòu)如圖1所示,由高速緩存器(Cache)、輪詢仲裁器以及網(wǎng)絡(luò)適配器組成。其中每個PE都有一個本地Cache,共16個,這16個Cache結(jié)構(gòu)物理分布、邏輯統(tǒng)一。每個PE通過高效的行列交叉開關(guān)不僅可以訪問本地Cache,也可以對遠(yuǎn)程Cache進(jìn)行操作。在無沖突的情況下,當(dāng)PE訪問本地Cache時,優(yōu)先級最高,一旦本地Cache命中,立即將數(shù)據(jù)返回給請求PE,若不命中,則需要通過輪詢仲裁器仲裁出一路信號通過虛通道路由器VCR0901與外存進(jìn)行通信;當(dāng)PE訪問遠(yuǎn)程Cache時,需通過行列交叉開關(guān)對目的PE進(jìn)行索引,從而完成對遠(yuǎn)程Cache的操作。在本地與遠(yuǎn)程操作沖突的情況下,優(yōu)先進(jìn)行本地訪問,其次將遠(yuǎn)程請求進(jìn)行正確反饋??芍貥?gòu)陣列處理器的分布Cache結(jié)構(gòu)可使16個PE同時對本地Cache進(jìn)行讀寫操作,在無沖突訪問時,分布式Cache結(jié)構(gòu)的訪存帶寬達(dá)到峰值。
1.1 高速緩存器的設(shè)計
高速緩存器主要由命中判斷單元(judge)、標(biāo)志寄存單元(tag_index)、狀態(tài)寄存單元(state)、寫替換策略單元(wr_strategy)以及Cache數(shù)據(jù)存儲單元(Cache_data)組成,如圖2所示。
(1)判斷單元:該單元主要用于接受來自PE的讀寫信號,根據(jù)地址信息讀取標(biāo)志寄存單元的標(biāo)志位信息,然后在判斷單元內(nèi)進(jìn)行比較,輸出讀寫是否命中信息;
(2)標(biāo)志寄存單元:該單元主要用于寄存數(shù)據(jù)的標(biāo)志位以及索引信息,并根據(jù)Cache數(shù)據(jù)存儲單元的信息進(jìn)行實時更新;
(3)狀態(tài)寄存單元:該單元主要用于寄存數(shù)據(jù)的臟位以及有效位信息,并根據(jù)Cache數(shù)據(jù)存儲單元的信息進(jìn)行實時更新;
(4)寫替換策略單元:該單元采用最近最少用策略提供需替換的Cache行,并根據(jù)狀態(tài)寄存單元信息判讀是否需將數(shù)據(jù)寫回外存;
(5)Cache數(shù)據(jù)存儲單元:該單元主要采用寫回策略通過路由與外存進(jìn)行交互。
1.2 輪詢仲裁器的設(shè)計
當(dāng)分布式Cache不命中時,發(fā)送讀或?qū)懺L問信號給仲裁器,仲裁器通過輪詢機(jī)制仲裁出一組信號輸出給網(wǎng)絡(luò)適配器,輪詢仲裁器的結(jié)構(gòu)圖如圖3所示。
1.3 網(wǎng)絡(luò)適配器的設(shè)計
網(wǎng)絡(luò)適配器是PE與外存之間通信的網(wǎng)絡(luò)接口,按照路由器格式對通信信息進(jìn)行打包與解包操作,包格式如圖4所示。
網(wǎng)絡(luò)適配器由寫數(shù)據(jù)模塊以及讀數(shù)據(jù)模塊組成,頂層結(jié)構(gòu)如圖5所示。
2 基于分布式Cache的并行訪問策略
對于可重構(gòu)陣列處理器來說,簇內(nèi)的信息交互通過行列交叉開關(guān)來定位,簇間的信息交互在輪詢仲裁之后通過路由器來傳輸。
PE的讀訪問過程如圖6所示,當(dāng)PE發(fā)出讀請求時,通過地址信息判斷是否讀本地Cache,其中讀本地Cache優(yōu)先級最高。若讀遠(yuǎn)程Cache,則通過行列交叉開關(guān)來定位簇內(nèi)PE的位置;將讀地址與Cache中標(biāo)志位進(jìn)行比較,如果讀命中,則通過行列交叉開關(guān)直接將讀數(shù)據(jù)返回給請求PE;如果讀不命中且命中行無效,則通過路由將外存的數(shù)據(jù)塊搬移到Cache中,再進(jìn)行讀數(shù)據(jù)操作;如果讀不命中且命中行有效,則根據(jù)最近最久用替換算法以及寫回策略來進(jìn)行主存數(shù)據(jù)塊的搬移,最后再通過交叉開關(guān)將讀數(shù)據(jù)返回給請求PE??芍貥?gòu)陣列處理器中16個PE可同時對Cache進(jìn)行以上讀操作。PE的寫訪問過程與讀訪問操作類似,如圖7所示。
3 仿真與性能分析
3.1 設(shè)計仿真
基于分布式Cache的訪問策略對高速緩沖單元、輪詢仲裁器以及網(wǎng)絡(luò)適配器進(jìn)行RTL級設(shè)計,通過編寫幾種典型訪問情況下的測試激勵,使用Questsim進(jìn)行功能仿真后,與可重構(gòu)陣列處理器虛通道路由器、輕核處理器以及Xilinx定制存儲器IP互連,通過Xilinx的Virtex-6系列xc6vlx550T開發(fā)板對設(shè)計進(jìn)行硬件測試,具體參數(shù)如表1所示。
圖8給出了本地與遠(yuǎn)程訪問時無沖突下典型情況數(shù)據(jù)訪問的最小延遲周期數(shù);圖9給出了本地與遠(yuǎn)程訪問沖突時的典型情況數(shù)據(jù)訪問的最小延遲周期數(shù)。
從圖8可以看出,在完全沒有競爭的情況下,訪問遠(yuǎn)程Cache比本地Cache延遲1個時鐘周期數(shù)。由圖9可知,當(dāng)本地與遠(yuǎn)程同時訪問本地Cache時,由于本地Cache優(yōu)先級高,故先響應(yīng)本地Cache請求,遠(yuǎn)程請求將在延遲4個時鐘周期之后進(jìn)行響應(yīng)。
3.2 性能分析
通過Xilinx ISE14.7對設(shè)計進(jìn)行綜合,器件選用xc6vlx550T綜合后,分布式Cache實現(xiàn)方案最大工作頻率可以達(dá)到164.249 MHz,具體器件資源占用情況如表2所示。
文獻(xiàn)[14]設(shè)計了一種共享Cache以及分布式Cache結(jié)構(gòu),并給出了共享Cache和分布式Cache中本地Cache以及遠(yuǎn)程Cache的平均訪問延遲,表3是本文與文獻(xiàn)[14]結(jié)構(gòu)的平均訪問延遲對比結(jié)果。
從表3可知,本文最壞情況下(即沖突時的遠(yuǎn)程訪問)的平均訪問延遲與共享Cache相比,仍舊有所降低;訪問本地Cache時,本文的訪問延遲稍有增加,是由于在不命中時,路由器的訪問延遲較大引起的;在訪問遠(yuǎn)程Cache時,平均訪問延遲明顯較低,相比于文獻(xiàn)[14]減少了30%。
本文中分布式Cache的主要硬件開銷可通過(T+S)×N×W×P計算得到[15],其中,T、S分別表示標(biāo)志位和狀態(tài)位所占的位數(shù);N表示Cache的組數(shù);W表示Cache的相聯(lián)度;P表示處理器核數(shù)。每個處理器核所對應(yīng)的Cache的硬件開銷按上式計算為1.6 KB,只占片上Cache容量的5%。
4 結(jié)論
針對可重構(gòu)陣列處理器訪存量大以及訪存全局重用少、局部性明顯的特點,設(shè)計并實現(xiàn)了一種分布式Cache結(jié)構(gòu),其中Cache采用兩路組相聯(lián)的地址映射策略以及最近最少用的替換算法,利用局部高效交叉開關(guān)以及路由實現(xiàn)Cache共享以提高訪存的并行性,減少延遲。通過Xilinx公司的FPGA開發(fā)板進(jìn)行驗證,實驗結(jié)果表明,在無沖突情況下,16個PE同時發(fā)送讀寫請求,此時帶寬達(dá)到峰值10.512 GB/s,硬件開銷很小,僅為片上Cache容量的5%,在滿足可重構(gòu)陣列處理器訪存要求的同時,保證了結(jié)構(gòu)的可擴(kuò)展性。
參考文獻(xiàn)
[1] 魏少軍,劉雷波,尹首一.可重構(gòu)計算處理器技術(shù)[J].中國科學(xué):信息科學(xué),2012(12):1559-1576.
[2] 周理.高效可重構(gòu)陣列計算:體系結(jié)構(gòu),設(shè)計方法與程序映射技術(shù)研究[D].長沙:國防科學(xué)技術(shù)大學(xué),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].電子技術(shù)應(yīng)用,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設(shè)計方案[J].計算機(jī)工程,2010,36(21):283-285.
作者信息:
蔣 林1,劉 陽2,山 蕊1,劉 鵬1,耿玉榮2
(1.西安郵電大學(xué) 電子工程學(xué)院,陜西 西安710121;2.西安郵電大學(xué) 計算機(jī)學(xué)院,陜西 西安710121)