文献标识码: 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 引言
随着电路技术飞速发展,人工智能等新应用层出不穷,可重构阵列处理器[1-2]兼顾通用处理器(General Purpose Processor,GPP)[3]灵活性和专用集成电路(Application Specific Integrated Circuit,ASIC)[4]计算能力,因而逐渐成为目前密集型应用领域的研究热点。可重构阵列器中海量的访存数据使得目前存储带宽严重不足[5],故研究存储结构解决带宽严重不足问题是提升整个系统性能的关键。
为了解决以上问题,设计人员普遍采用Cache技术,其中文献[6]中CGRA的硬件平台中,存储结构采用数据共享Cache,此结构数据并行性差;CONG J等人提出的FPCA结构通过增加一级共享Cache的容量来提高命中率[7],文献[8]同样采用片上大容量共享Cache来进行访存,这种大容量的Cache结构不但使得整个系统的面积增加且访存的并行性依旧不高。以上多个处理器核对单一Cache空间的共享使得竞争突出[9],延迟有所增加。GALANIS M D等人在其提出的可重构数据通路中,存储结构采用共享一级Cache和共享二级Cache来提高访存速度[10];多伦多大学SWANSON S等人提出的WaveScalar数据流结构中,片上存储单元只采用一级共享数据Cache和指令Cache[11];SOUZA J D等人提出的动态自适应处理器中,存储单元依旧采用两级共享Cache来实现,其中一级Cache分为数据和指令Cache[12]。文献[13]片上采用分布式buffer设计来提高数据存取效率,但是与外存的交互依旧采用共享Cache技术来实现。以上多级共享Cache的结构没有考虑数据的局部性特点以及并行性要求,使得访存的并行性差,吞吐量得到很大的限制。
针对可重构阵列处理器访存数据量很大、数据并行性要求高且数据全局重用少、局部性明显的特点,本文提出一种“物理分布、逻辑统一”的分布式Cache结构。其中可重构阵列处理器对本地Cache以及远程Cache都具有读写访问权限,本地Cache优先级高,远程Cache访问通过高效的行列交叉开关进行目的地索引,在与外存进行交互时,设计轮询仲裁机制仲裁出一路信号后通过路由器进行数据传输,最后通过Xilinx公司的Virtex-6系列xc6vlx550T开发板对设计进行测试,实验结果表明,该结构在保持简洁性和扩展性的同时,最高能够提供10.512 GB/s的访存带宽,满足可重构阵列处理器访存的需求。
1 可重构阵列处理器分布式Cache结构
本文采用的可重构阵列结构,是由4×4个PE组成的一个阵列处理器簇(Processing Element Group,PEG),每个PE的访存数据位宽为32位,其分布式Cache结构如图1所示,由高速缓存器(Cache)、轮询仲裁器以及网络适配器组成。其中每个PE都有一个本地Cache,共16个,这16个Cache结构物理分布、逻辑统一。每个PE通过高效的行列交叉开关不仅可以访问本地Cache,也可以对远程Cache进行操作。在无冲突的情况下,当PE访问本地Cache时,优先级最高,一旦本地Cache命中,立即将数据返回给请求PE,若不命中,则需要通过轮询仲裁器仲裁出一路信号通过虚通道路由器VCR0901与外存进行通信;当PE访问远程Cache时,需通过行列交叉开关对目的PE进行索引,从而完成对远程Cache的操作。在本地与远程操作冲突的情况下,优先进行本地访问,其次将远程请求进行正确反馈。可重构阵列处理器的分布Cache结构可使16个PE同时对本地Cache进行读写操作,在无冲突访问时,分布式Cache结构的访存带宽达到峰值。
1.1 高速缓存器的设计
高速缓存器主要由命中判断单元(judge)、标志寄存单元(tag_index)、状态寄存单元(state)、写替换策略单元(wr_strategy)以及Cache数据存储单元(Cache_data)组成,如图2所示。
(1)判断单元:该单元主要用于接受来自PE的读写信号,根据地址信息读取标志寄存单元的标志位信息,然后在判断单元内进行比较,输出读写是否命中信息;
(2)标志寄存单元:该单元主要用于寄存数据的标志位以及索引信息,并根据Cache数据存储单元的信息进行实时更新;
(3)状态寄存单元:该单元主要用于寄存数据的脏位以及有效位信息,并根据Cache数据存储单元的信息进行实时更新;
(4)写替换策略单元:该单元采用最近最少用策略提供需替换的Cache行,并根据状态寄存单元信息判读是否需将数据写回外存;
(5)Cache数据存储单元:该单元主要采用写回策略通过路由与外存进行交互。
1.2 轮询仲裁器的设计
当分布式Cache不命中时,发送读或写访问信号给仲裁器,仲裁器通过轮询机制仲裁出一组信号输出给网络适配器,轮询仲裁器的结构图如图3所示。
1.3 网络适配器的设计
网络适配器是PE与外存之间通信的网络接口,按照路由器格式对通信信息进行打包与解包操作,包格式如图4所示。
网络适配器由写数据模块以及读数据模块组成,顶层结构如图5所示。
2 基于分布式Cache的并行访问策略
对于可重构阵列处理器来说,簇内的信息交互通过行列交叉开关来定位,簇间的信息交互在轮询仲裁之后通过路由器来传输。
PE的读访问过程如图6所示,当PE发出读请求时,通过地址信息判断是否读本地Cache,其中读本地Cache优先级最高。若读远程Cache,则通过行列交叉开关来定位簇内PE的位置;将读地址与Cache中标志位进行比较,如果读命中,则通过行列交叉开关直接将读数据返回给请求PE;如果读不命中且命中行无效,则通过路由将外存的数据块搬移到Cache中,再进行读数据操作;如果读不命中且命中行有效,则根据最近最久用替换算法以及写回策略来进行主存数据块的搬移,最后再通过交叉开关将读数据返回给请求PE。可重构阵列处理器中16个PE可同时对Cache进行以上读操作。PE的写访问过程与读访问操作类似,如图7所示。
3 仿真与性能分析
3.1 设计仿真
基于分布式Cache的访问策略对高速缓冲单元、轮询仲裁器以及网络适配器进行RTL级设计,通过编写几种典型访问情况下的测试激励,使用Questsim进行功能仿真后,与可重构阵列处理器虚通道路由器、轻核处理器以及Xilinx定制存储器IP互连,通过Xilinx的Virtex-6系列xc6vlx550T开发板对设计进行硬件测试,具体参数如表1所示。
图8给出了本地与远程访问时无冲突下典型情况数据访问的最小延迟周期数;图9给出了本地与远程访问冲突时的典型情况数据访问的最小延迟周期数。
从图8可以看出,在完全没有竞争的情况下,访问远程Cache比本地Cache延迟1个时钟周期数。由图9可知,当本地与远程同时访问本地Cache时,由于本地Cache优先级高,故先响应本地Cache请求,远程请求将在延迟4个时钟周期之后进行响应。
3.2 性能分析
通过Xilinx ISE14.7对设计进行综合,器件选用xc6vlx550T综合后,分布式Cache实现方案最大工作频率可以达到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分别表示标志位和状态位所占的位数;N表示Cache的组数;W表示Cache的相联度;P表示处理器核数。每个处理器核所对应的Cache的硬件开销按上式计算为1.6 KB,只占片上Cache容量的5%。
4 结论
针对可重构阵列处理器访存量大以及访存全局重用少、局部性明显的特点,设计并实现了一种分布式Cache结构,其中Cache采用两路组相联的地址映射策略以及最近最少用的替换算法,利用局部高效交叉开关以及路由实现Cache共享以提高访存的并行性,减少延迟。通过Xilinx公司的FPGA开发板进行验证,实验结果表明,在无冲突情况下,16个PE同时发送读写请求,此时带宽达到峰值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一致性协议的验证[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,FASTHUBER 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中基于目录的协作Cache设计方案[J].计算机工程,2010,36(21):283-285.
作者信息:
蒋 林1,刘 阳2,山 蕊1,刘 鹏1,耿玉荣2
(1.西安邮电大学 电子工程学院,陕西 西安710121;2.西安邮电大学 计算机学院,陕西 西安710121)