徐志胜
(安徽广播电视大学信息与建筑工程学院,合肥 230022)
随着半导体工艺技术及设计集成技术水平的飞速发展,越来越多的IP功能模块可以集成制造到一个芯片内,多核技术也越来越成为技术发展及技术应用需求的必然产物[1],但随着芯片设计和制造规模的不断扩大,基于总线的SoC设计遇到了很多的瓶颈,如拓展性差,平均通讯效率低和单一时钟全局等[2]。片上网络(Network-on-Chip,NoC)是一种全新的片上多核网络互连结构[3],片上网络能够克服总线互连结构的瓶颈;目前对2D-mesh拓扑结构的片上网络的研究最多[4]。
影响2D-mesh拓扑结构的片上网络通讯性能的主要因素是路由节点;路由节点主要是由路由算法、仲裁机制和交换策略来具体实现的。在多核系统中各个核不均衡通讯的情况下,通讯量大的路由节点往往成为制约网络性能的主要因素。考虑到通过改变路由算法和交换机制往往会大大增加路由节点的面积和资源消耗,所以本文重点研究了路由节点的仲裁机制对盖上片上网络性能的影响。
目前,研究基于片上网络的仲裁器的设计和实现应用最多的是固定优先级仲裁器[5]和RR仲裁器[6]。在多个IP之间的通讯任务繁重情况不一致的条件下,固定优先级仲裁机制的仲裁器设计会造成在片上网络通讯任务较重时,优先级低的方向的请求一直得不到响应,进而出现“饥饿”现象。而利用RR仲裁器的设计,不能有效区别不同优先程度的请求来减少通讯任务繁重的热点影响。文献[7]提出了一种可设置优先程度的仲裁器,但预先设置优先程度比较困难,而且没有硬件实现的方法,如果用硬件实现这种仲裁也比较复杂。文献[8]提出了一种动态优先级器,可根据网络通讯情况动态调整各个方向的权重,但硬件实现比较困难,且如果用硬件实现,会出现彩票总数超出随机数模的情况,影响仲裁效率。本文提出了一种动态权重的仲裁器,并用简单的硬件方法实现。
本文采用的是2D-Mesh的拓扑结构,如图1所示,该结构主要是由路由节点、接口及链路组成;其中路由节点是本设计的核心,路由节点通过中间链路实现相互之间的连接,并且通过通讯接口与对应IP连接,其中IP核可以是处理单元、存储单元或SoC等。
每个路由节点都设有东、西、南、北和本地共5个通讯方向。每个方向都可以与其他4个通讯方向相互连接。其中Arbiter功能模块是设计实现片上网络路由节点的仲裁算法模块。在片上网络所连接各核的角色不同导致核间通讯出现不均衡的情况下,固定优先级的仲裁机制很可能会导致优先级低的请求一直得不到响应,而RR的仲裁机制设计不能有效区别不同优先程度的通讯请求来减少通讯任务繁重的热点影响。针对这种情况,本文设计实现了一种动态权重仲裁机制。
图1 NoC及路由节点结构图
本文设计实现的动态权重仲裁器设计是以Lottery算法为基础[9]。该算法主要是根据各方向的优先级分配设定数量的“Lottery”来设定权重,通讯任务越重的方向预先设定的“彩票”数量就越多,权重也就越大;反之则越少。如果某方向有仲裁请求时,该方向就会把“Lottery”给仲裁器。仲裁器则在众多方向通讯请求的“Lottery”中随机选择一个“Lottery”,来确定满足哪一个方向的通讯请求,如图2所示。
图2 基于Lottery算法仲裁器示意图
如果Ci(其中i=1、2、3、4、5分别表示E、W、S、N、L)用来表示5个通讯方向,5个通讯方向Ci获得的授权概率满足式(1):
(1)
式中:ti(其中i=1、2、3、4、5分别表示E、W、S、N、L)用来表示5个通讯方向的“Lottery”数;r1,r2,…ri是一系列布尔类型的变量,用来代表各个通讯方向发出通讯请求的情况。如有请求,对应ri=1,否则ri为0。
由此可以得出一个方向在n次仲裁过程后得到响应的概率为:
P′(Ci)=1-(1-P(Ci))n,
(2)
这既能有效减少“饥饿”现象的出现,又能够根据通讯任务情况设定各个方向的权重来解决“热点”问题。
图3 静态权重仲裁器结构图
例如,总彩票数为32,各个方向的权重为1∶2∶3∶4∶5。如果五个通讯方向的通讯请求情况r1r2r3r4r5=11001,则E、W和L通讯方向的“Lottery”数为4、8和20。[0,4)为E通讯方向的通讯请求响应区间,[4,12)为W通讯方向的通讯请求响应区间,[12,32)为L通讯方向的通讯请求响应区间。如果随机数是15,则响应L通讯方向的通讯请求。这样就保证每个方向获得响应的概率为该方向的彩票数除以总的彩票数。
但事先设定的各个通讯方向权重不可能与实际的网络通讯繁重情况完全一致,所以必须在各个通讯方向的权重与实际网络通讯繁重情况不相符时,动态地调整各个通讯方向的权重,调大通讯任务繁重的方向权重,等到通讯任务减轻后再调整为原先设定的权重。有文献的动态调整方法是利用额外增加或减少各个“Lottery”数来调整各个通讯方向请求的权重,但这种设计会在“Lottery”总数和随机数产生器的模(LFSR)不一致时,使LFSR的特性消失,所有的请求有可能都得不到响应;本文在保持“Lottery”的总数量不变的情况下,根据网络通讯繁重情况来转动5个通讯方向所对应的权重,首先考虑通讯任务繁重的情况,将出现堵塞的通讯方向转到大的权重上,再按事先设定的优先级分配5个通讯方向的权重;当堵塞情况解除后,再恢复事先设定的5个通讯方向的权重分配。如图4所示。
图4 动态权重仲裁器结构图
假设根据通讯任务繁重情况为E、W、S、N、L 5个通讯方向事先设定的权重分别是1∶2∶3∶4∶5,并用标志寄存器记录下所有通讯方向的设定权重。设计的仲裁器会不断查询各个通讯方向上存储器的状态,以此辨别5个通讯方向通讯任务的繁重情况。当检测到N方向通讯任务过重,就会对N方向通讯请求的优先级设定在寄存器上的位置进行调整,将N的权重分配为5,L的权重分配为4,即E、W、S、N、L的权重为1∶2∶3∶5∶4;当检测到W和N两个方向都出现了通讯任务过重情况时,就会对W和N两个方向的优先级在寄存器上的位置进行调整,将N的权重分配为5,将W的权重分配为4,即E、W、S、N、L 5个方向的权重为1∶4∶3∶5∶2;如果检查到E、W、S、N和L都发生通讯任务过重情况时,那么E、W、S、N和L方向上的权重则保持不变为1∶2∶3∶4∶5。
平均包延时(Latency)是评价片上网络通讯网络性能的重要指标,其定义如下:
(3)
为了验证所设计的动态权重仲裁器的网络通讯性能,本文分别用实验比较了利用固定优先级仲裁机制、RR仲裁机制和本文设计的动态权重仲裁机制3种仲裁器的片上网络的性能。
本文设计了3组不同通讯繁重情况模式分别对采用了3种仲裁器的片上网络进行网络通讯性能评估。第1组采用热点通讯模式,第2组采用符合泊松分布的非均衡通讯模式,第3组采用实际应用VOPD[10]。
热点模式即让某一个或者多个路由节点成为通讯任务非常繁重的热点,然后其他路由节点都向该通讯任务繁重热点发送数据。图5是热点模式下的平均包延时。
从图5中可以看到,当片上网络通讯任务比较轻时,采用3种仲裁器的片上网络平均包延时相近,当平均注入率逐步加大到0.032 5时,采用动态权重仲裁器的片上网络平均包延时比其他两种分别减少27.7%和18.7%。
图5 热点模式下的平均包延时
图6是符合泊松分布的非均衡通讯模式的平均包延时。
图6 符合泊松分布的非均衡通讯模式的平均包延时
从图6中可以看到,当网络通讯任务比较轻时,基于3种仲裁机制的片上网络的网络通讯延时差不多,当平均注入率加大到0.22时,基于动态权重仲裁机制的片上网络网络延时比其他两种分别减少23.6%和17.1%。
最后,本文利用实际应用VOPD对基于3种仲裁机制的片上网络进行网络通讯性能评估[11],VOPD应用映射到片上网络上的各个IP之间的通讯情况如图7所示[12]。
图7 VOPD应用中各IP之间的通讯情况
本文搭建了一个6×5的2D-Mesh的片上网络,中间的4×3用VOPD的IP,外围的IP用来注入流量。实验结果如图8所示。
图8 VOPD流量的平均延时
利用实际应用VOPD的实验平均包延时也说明,随着平均注入率的逐步加大,基于动态权重仲裁机制设计的片上网络的通讯效率不断提高,当平均注入率加大到0.235时,基于动态权重仲裁机制设计的片上网络的通讯延时比基于固定优先级仲裁机制设计的片上网络和基于RR仲裁机制设计的片上网络分别降低了18.0%和12.4%。
在片上网络的很多实际应用中,各个IP之间的通讯繁重情况差距很大,本文设计了一种基于片上网络的动态权重仲裁器。其既能够根据实际通讯繁重情况区别设定路由节点的各个方向通讯请求的优先程度、有效避免出现较低优先级的通讯方向请求得不到响应的情况,又可以根据实际的通讯繁重情况对各个方向通讯请求的优先级进行调整。实验结果表明,在多个IP之间通讯繁重不一致的情况下,基于动态权重仲裁机制设计的片上网络的通讯延时较低。