摘 要: 片上网络的设计有很多功耗、面积和性能折中的拓扑结构、缓冲区大小、路由算法和流量控制机制,因此新的NoC设计的研究非常耗时。为了应对这些挑战,提出一种基于快速灵活的FPGA片上网络仿真架构,通过映射虚拟化的NoC组件到一个通用的片上网络仿真引擎上,其基础部件有流量生成器、路由、飞片队列等。并提出基于规则拓扑结构自动生成NoC拓扑结构的设想,且在设计的通用片上网络仿真引擎实施这种设想。实践表明:因为所设计的仿真器是虚拟的,可以模拟任何可用图描述的NoC拓扑结构;任何拓扑结构的片上网络可以映射到机器而无需重建,在一个大型片上网络设计中,用FPGA来实施可以节省很多时间。
关键词: 片上网络; FPGA; 仿真器; 拓扑结构; 虚拟化; 自动生成
中图分类号: TN302⁃34 文献标识码: A 文章编号: 1004⁃373X(2018)19⁃0177⁃06
Abstract: The design of the NoC includes the items of compromising topology between area and performance, buffer size, routing algorithms and flow control mechanisms, so the study on new NoC design will spend a lot of time. A NoC simulation architecture based on fast and flexible FPGA is proposed to overcome these challenges, which can map the virtualized NoC component to a commonly?used NoC simulation engine. The basic components of the architecture contains traffic generator, routing, flyer queues. A thought of automatic generation of NoC topology based on rule topology is proposed, and is implemented on a commonly⁃used NoC simulation engine. The virtualized NoC simulator can simulate any available NoC topology structures described by diagram, and NoC with any topology structure can be mapped to the machine without rebuilding. FPGA used to realize the NoC network can save a lot of time in a large⁃scale NoC design.
Keywords: NoC; FPGA; simulator; topology structure; virtualization; automatic generation
0 引 言
半导体工艺技术已经进入纳米阶段,上亿晶体管集成在单个芯片上已变为现实。如何更好地利用如此庞大的晶体管是芯片设计所必须应对的问题。微处理器是可编程化特殊集成电路,与传统的中央处理器相比,微处理器虽然具有体积小、重量轻和容易模块化等优点;然而,单核处理器面临着互联延迟,最大功耗,存储带宽等性能提升的诸多问题。在此背景下,重新设计芯片体系结构显得尤为重要[1]。
多处理器片上系统(Multi⁃processor System⁃on⁃Chip,MP⁃SoC)结构将多个不同元件集成在单芯片上,通过基于总线架构实现片上通信。这在一定程度上适应了晶体管密度的增加以及更快的工作频率。然而,当处理器单元数目不断增长,片上系统的设计难度也在不断提升。近年来,片上网络(Network⁃on⁃Chip,NoC)概念[2]的提出,是为了解决基于传统的以总线通信的方式的可扩展性和可预测性均达不到设计要求的缺陷,具有更好的能量效率和伸缩性,有效缓解了在深亚微米技术工艺下全局连线所带来的时延和功耗等问题[3]。片上网络的核心思想是将计算机网络通信技术应用于芯片当中,将一个微网络建立在单个芯片之中[4⁃5]。片上网络互连架构很好地满足了未来片上系统在可扩展性、时序收敛及功耗等方面的设计需要,降低了片上通信的设计难度,因此很多商业产品采用了NoC。

目前片上网络用得越来越多,设计要求也越来越严,节点数也越来越多,因此设计难度加大,而且后期维护修改代价昂贵。在进行EDA设计中,仿真能评估不同的方案。仿真分为硬件仿真和软件仿真。软件仿真的好处是灵活性,但是仿真速度太慢,特别是针对大规模的片上网络来说。例如Booksim1仿真器,牺牲了周期准确性,消除了过多的仿真时间。对于硬件仿真,一般采用FPGA来实现。基于FPGA片上网络仿真器克服了软件仿真器的缺陷,主要有两个方向:一种是完全由硬件设计的仿真器,另一种是软硬件结合的仿真器。第一种的优点是在仿真时间上可以获得几个数量级的改进;第二种的优点是除了能获得几个数量级的改进外,还能允许用户动态达到配置NoC参数。因此,基于HW/SW协同设计架构是值得采用[6],如图1所示。
本文提出了基于快速灵活的FPGA的NoC的仿真架构,将虚拟化的NoC的组件映射到一个通用的NoC仿真引擎,并且可以基于规则拓扑结构自动生成NoC拓扑架构。该方法主要有两个优点:因为它具有虚拟化的特征,可以用来模拟任意的NoC;节约时间,因为任意NoC只需参数化配置而无需重新建立就可以映射到机器。
1 基于规则拓扑结构的自动NoC拓扑生成
本文设计的基于FPGA的NoC仿真器,通过输入相关的几个参数,用图来描述片上网络通信连接的拓扑结构,再采用邻接表为每个节点建立一个单链表来描述这个图,并对连接结构进行存储,从而实现基于现有拓扑结构的NoC自动拓扑生成。这样有一个优点,就是只要拓扑结构可以用图来描述,那么都可以用这个方法来实现通过输入参数使拓扑结构自动生成。
1.1 对拓扑结构中节点分布的描述
目前讨论规则的拓扑结构包括常用的2D Mesh,2D Tours,3D Mesh,3D Tours等。
1) 典型的2D Mesh拓扑结构(以4×4为例)
典型的2D Mesh拓扑结构如图2所示。
1.2 自动流量生成与注入
自动流量生成可以用已经封装好的流量生成注入状态机模块,每个节点都配有一个流量生成器(Traffic Generation,TG),自动生成时变流量来形成飞片队列。流量生成器简单结构描述如图4所示。

伯努利状态机:利用随机数生成,然后以符合伯努利分布的有限状态机自动生成按要求排列赋值的36位(可定义的飞片位数)飞片,同时可增加有限状态机的种类(如:泊松分布有限状态机流量注入,高斯分布有限状态机流量注入等),使其具有可选性,但后期实现也需要对比几种分布做性能分析。
output FQ是FIFO(先进先出)的飞片队列的缓冲区,它的存在将有效缓解延迟,因为容量较大的缓冲器虽有较好的吞吐量和较低的延迟,但也会导致更大面积开销和功耗。
自动生成流量注入:每个节点可封装成一个固定的模块,在初始时输入行列数[Nr,Nc]和[Nh]后,计算出所要模拟的节点总数即[N=Nr⋅Nc⋅Nh];然后主程序根据结果调用[N]个node模块,同时在调用节点模块时并行运行TG自动生成时变流量,因为VHDL硬件描述语言是一种并行执行的语言。
1.3 路由选择与拓扑模型生成
路由器用来实现流量控制,而NoC通信结构的性能取决于其流量控制,增大缓冲器可以显著提高流控机制效率,因为缓冲器可以使得相邻通道的分配脱离开。如果没有缓冲器,在连续周期内两通道必须分配给一个包(或飞片),否则包会被丢弃或者出现误传。在带缓冲的流控机制中,依据流控方法,当包到达路由器时,就必须首先抢占某些资源,例如通道带宽和缓冲器容量。每个路由器必须灵活处理多个输入端口的多个输入数据流,并以最高效率将它们送到合适的输出端口。
带缓冲的流控方法基于缓冲分配的粒度和通道带宽分配可以划分为缓冲流控和飞片缓冲流控。因为以飞片为单元的资源分配比以包为单位的存储利用率更高,因此在NoC中通常采用两种飞片缓冲流控结构:虫洞流控和虚拟通道流控。同时也就有了常用的基于飞片的两种路由流控:基于虫洞流控的路由器和基于虚拟通道流控的路由器。路由结构选择基于虚拟通道的流控机制,封装于节点模块中,每一个节点调用一个路由模块。
单个节点与其他节点之间的直接连接、间接连接关系可以描述成图的结构存储。同时根据图论的相关知识,节点间的最短路径可以通过调用图的最短路径算法自动计算出来具体的路径。例如最短路径的Dijkstra算法,可以解决通信间最短路径问题。其他节点若有相同的连接分析,可以用同样的方法。
1.3.2 实现拓扑路径的自动生成
当输入[Nr,Nc],[Nh]时,自动构建总节点数为[N]的二维矩阵或三维结构,同时调用[N]个节点模块,每一个节点模块包含流量生成器、路由。要实现拓扑的自动生成,就需对Mesh结构的连接有一个具体的描述,根据路由表的要求选择静态路由表中的最短路径进行通信。对于拓扑结构的描述思想:即描述一个完整的图的连接并对它进行存储,可以采用邻接(Adjacency List)的方式存储节点间的连接结构。在邻接表中对每一个节点建立一个单链表。其中第[i]个单链表表示依附于点[Ni]的边,这个单链表就称为点[Ni]的边表。边表的头指针和顶点的数据信息采用顺序存储。

根据以上对自动拓扑生成的描述,得知全局互连提供了所有的基于FPGA的NoC仿真器节点之间均匀延迟通信,通过适当的配置路由表,该仿真器可以模拟任何拓扑结构。最大节点基数可由路由器组件中配置的端口数限制。基于对拓扑结构图的描述可实现拓扑结构自动生成,进而实现全局互连的自动生成。现在讨论的只是规则的拓扑结构,当然如果不规则的拓扑结构可以用图描述,后期还是可以用这个思想来实现基于可描述拓扑结构的片上网络自动拓扑生成,从而使全局互连。
2 片上网络仿真器硬件设计
下面将具体介绍基于FPGA的片上网络仿真器的架构设计以及内部节点的设计。
2.1 整体架构设计
对于整个仿真器而言,应包括三个大模块:NoC仿真器与FPGA的输入输出接口模块,控制模块和核心仿真模块。在此着重阐述核心仿真模块,其整體架构也是NoC仿真器的核心部分,细化到每一个节点内部的结构,如图8所示。
通用的基于FPGA的NoC仿真器架构提供了一个可配置的功能模型,通过抽象,常见的NoC功能可分为三个基本组成部分:流量生成器(Traffic Generators,TGs)、飞片队列(也称微片队列,Flit Queues,FQs)和路由器(Routers)。
使用36位的飞片描述符和FPGA上嵌入的RAM块相匹配,用于实现飞片缓冲器的端口宽度,如表2所示。
2.2 飞片队列设计
飞片队列组件在路由器的输入端口模拟了虚拟通道缓冲区,并模拟连接线的注入口的带宽/延迟限制。缓冲区是独立的FIFO(先进先出)队列。
FIFO缓冲区中飞片队列的头部根据它们的时间戳出列,飞片队列(FQ)计算出进入的每一个飞片新出列的时间戳,以正确反映由于对延迟和带宽的约束而遍历连接的延迟。
在时间戳更新以后,飞片根据其虚拟通道排队。当飞片到达FIFO队列的前部并且全局仿真时间等于它的时间戳,该飞片将会转发到下一跳路由器。这将确保所有的飞片到达路由器的时间顺序,这也正是正确模拟路由争用资源所需要的。一个单独的FIFO也用于信用量通道,类似于飞片,信用量只有在其预定时间出列才可以留下飞片队列。
2.3 流量生成器设计
流量生成器组件向仿真网络中注入流量,当TG被使能之后,流量生成器以这样一种模式向通信线路中注入流量:该模式中每个TG都是可配置的,TG在注入微片时用伯努利过程以固定大小的包分组的突发;每个模拟循环,随机数生成器产生一个15位的随机数,并与一个阈值相比较。当所产生的随机数低于阈值时生成一个数据包,允许数据包生成的概率,以通过调整阈值被设置;阈值、RNG种子、包大小(最小2微片)和目的节点地址在每个TG中都是可配置的。因此,TG不能直接模拟一个这样的流量模式,即在不同阶段的模拟过程中节点可以发送到不同的目的节点。但是,基于FPGA的NoC仿真器允许节点进行重新配置时,仿真被暂停,并能用新的配置恢复模拟,所以可以分阶段进行仿真模拟随时间变化的流量(时变流量)。流量生成器内部结构见图9。
2.4 路由设计
路由器组件封装了经典的基于信用量的虫洞虚拟通道路由和分配逻辑。在目前的实现中,端口的数目设为5,同时也可以通过设置Verilog代码改变参数。这里使用基于表的路由,因此任何确定性路由算法都可以实施。该表的内容可配置且无需重新编译FPGA,同时路由表的配置也有助于各种拓扑结构的模拟。
每个输出的虚拟通道都有一个4位的计数器,用于实现基于信用量的流量控制。初始信用值表示在下游路由器在缓冲区中的条目数,当一个飞片被发送计数器开始递减,当一个信用量被接收计数器开始递增。这些值在每个虚拟通道和路由器都是可配置的。
区域⁃面积权衡:在传统的路由器中分配器和交叉开关结构是很复杂的,一个直接的实现需要较多的区域面积;相反,本文设计的基于FPGA的NoC仿真器的路由器采用简单的仲裁器和多路复用器通过权衡方针速度来实现相同的功能。表3列出了分配器和交叉开关在传统路由和基于FPGA的NoC仿真器路由器的等量实施成本。基于FPGA的NoC仿真器的路由器虚拟通道分配器比经典路由器的分配器和交叉开关要小得多。
表3中:pv为输入端口的数目,po为输出端口的数目,v为每个端口虚拟通道的数目。
3 实验结果与分析
从图10可看出,Booksim仿真器的仿真速率随着飞片注入速率的增加而降低,性能必然受飞片注入速率的影响。而从图11可以看出,本文设计的基于FPGA的片上网络仿真器比Booksim有着大约100倍的加速比,仿真速率基本保持穩定。图中的数据都是基于实验运行10次所获得的平均值。
4 结 论
本文为基于FPGA的片上网络仿真提出了一个抽象化的模型,并对基于FPGA的片上网路仿真器的可忽略面积开销相对于不支持的软件配置进行了可行性论证。本文设计的基于FPGA片上网络仿真器与知名的仿真器Booksim比较,验证本文设计的仿真器具有超过100倍的加速比。在赛灵思FPGA上实现了本文设计的基于FPGA的片上网络仿真器和软件配置工具,使得可以在今后的研究中进行构建。
参考文献
[1] 李丽,许居衍.片上网络技术发展现状及趋势浅析[J].电子产品世界,2009,16(1):32⁃37.
LI Li, XU Juyan. Analysis of the development status and trend of on⁃chip network technology [J]. EEPW, 2009, 16(1): 32⁃37.
[2] DALLY W J, TOWLES B. Route packets, not wires: on⁃chip interconnection networks [EB/OL]. [2001⁃03⁃11]. http://ziyang.eecs.umich.edu/~dickrp/aeos/reading/dally⁃noc.pdf.
[3] 赵淳,梁利平.基于多FPGA的片上网络模拟平台设计和实现[J].湖南大学学报(自然科学版),2013,40(6):64⁃68.
ZHAO Chun, LIANG Liping. Design and implementation of on⁃chip network simulation platform based on multiple FPGAs [J]. Journal of Hunan University (natural sciences), 2013, 40(6): 64⁃68.
[4] 王祺,吴宁,葛芬.片上网络仿真与性能评估[C]// 全国第19届计算机技术与应用(CACIS)学术会议论文集(上册).合肥:中国科学技术大学出版社,2008:184⁃187.
WANG Qi, WU Ning, GE Fen. On⁃chip network simulation and performance evaluation [C]// 2008 CACIS. Hefei: USTC Press, 2008: 184⁃187.
[5] 段宜宾,王晓冬,唐磊.片上网络关键技术及仿真方法研究[J].通信技术,2009,42(12):182⁃184.
DUAN Yibin, WANG Xiaodong, TANG Lei. Research on key technologies and simulation methods of on⁃chip network [J]. Communications technology, 2009, 42(12): 182⁃184.
[6] KAMALI H M, HESSABI S. AdapNoc: a fast and flexible FPGA⁃based NoC simulator [C]// 2016 International Conference on Field Programmable Logic and Applications. Lausanne: IEEE, 2016: 1⁃8.
[7] DALLY W, TOWLES B. Principles and practices of interconnection networks [M]. San Francisco: Morgan Kaufmann Publishers, 2003.
[8] PUENTE V, GREGORIO J A, BEIVIDE R. SICOSYS: an integrated framework or studying interconnection network performance in multiprocessor systems [C]// 2002 the 10th Euromicro Workshop on Parallel, Distributed and Network⁃based Proces⁃sing. Spain: IEEE, 2002: 15⁃22.
[9] DALLY W J. Express cubes: improving the performance of k⁃ary n⁃cube interconnection networks [J]. IEEE transactions on computers, 1991, 40(9): 1016⁃1023.
[10] HARDAVELLAS N, SOMOGYI S, WENISCH T F, et al. SimFlex: a fast, accurate, flexible full?system simulation framework for performance evaluation of server architecture [J]. ACM SIGMETRICS performance evaluation review, 2004, 31(4): 31⁃34.
[11] AGARWAL N, KRISHNA T, PEH L S, et al. GARNET: a detailed on⁃chip network model inside a full⁃system simulator [C]// 2009 IEEE International Symposium on Performance Analysis of Systems and Software. Boston: IEEE, 2009: 33⁃42.