一种可共享和自配置缓存的路由器结构的制作方法

文档序号:7805683阅读:211来源:国知局
一种可共享和自配置缓存的路由器结构的制作方法
【专利摘要】本发明属于可靠性片上网络设计领域,具体为应用于片上网络的一种可共享和自配置缓存的路由器结构。本发明包括缓存单元、路由计算单元、数据交换开关、仲裁器、邻近通道状态监视器和本地通道状态监视器。本发明在常规的路由器结构中加入了邻近和本地通道状态监视器,可以有效的监控局部片上网络中路由器通道的状态,使得路由计算单元可以根据实时的通道状态信息计算出更加合理的路由路径,从而降低片上网络局部的拥堵概率,提高片上网络的吞吐率,降低其数据到达目的节点的延迟。东南西北四个端口的缓存单元都包含了由三个先入先出队列构成的缓存,形成两个虚拟的数据通道,可自配置地实现缓存的共享,有效地增加数据路由的自适应性。
【专利说明】—种可共享和自配置缓存的路由器结构【技术领域】
[0001]本发明属于可靠性片上网络设计【技术领域】,具体涉及一种应用于片上网络的可共享和自配置缓存的路由器结构。
【背景技术】
[0002]随着芯片规模不断增大和生产工艺的不断发展,基于总线的SoC架构的缺点越来越明显,I)吞吐量和带宽限制,使得总体通信效率低;2)总线能量消耗大,能量利用效率低,且信号延时增大;3)随着集成度的不断增加,芯片线间和不同金属层间信号串扰等越来越严重;4)需要全局同步;5)可扩展性差。这些缺点使得SoC己经在一定程度上不能满足超深亚微米下,超大规模集成电路系统对吞吐率、延时、功耗、稳定性、扩展性以及上市时间的要求,而NoC有着较好的扩展性,设计、仿真、验证复杂度明显降低,并且可以实现全局异步局部同步(GALS )。同时,随着片上网络应用范围越来越广泛,特定应用对片上网络的吞吐率和数据路由延迟提出了更高的要求,如高效视频编码(HighEfficiencyVideoCoding, HEVC),大量的图像数据需要在各个处理器之间传输,这对路由器的性能是一个挑战,急切需要一种能够缓解该问题的新结构。
[0003]同时,在典型的容错路由系统中,在很多特定应用中,通信模式呈现出局部高负载全局低负载的模式,这样就使得很多的路由器缓存单元处于空闲状态,但是有些却处于高负载的忙碌状态,这种负载的不均衡导致NoC系统的高吞吐率特性受到限制,因此急需一种能够解除这种限制的防拥堵路由系统。
【发明内容】

[0004]本发明的目的在于提出一种应用于片上网络的一种负载均衡的、可共享和自配置缓存的路由器结构。
[0005]本发明所提出的可共享和自配置缓存的路由器结构,主要由下述六个模块组成:缓存单元、路由计算单元、交换开关、仲裁器、邻近通道状态监视器和本地通道状态监视器,具体如图1。与传统的路由器相比,缓存单元增加了两个先入先出队列,以增加路由器各端口先入先出队列的可配置性和共享性;为实现可共享和自配置的功能,每个路由器增加了邻近通道状态监视器和本地通道状态监视器。各个模块的具体结构和功能如下:
(I)路由器的东南西北四个端口分别含有一个缓存单元,缓存单元用于完成路由器之间的握手通信,也用于缓存各个输入端口的数据;缓存采用先入先出队列,可以实现异步通信,具体结构如图2。每个缓存单元包含三个先入先出队列,其中一个先入先出队列(FIFOa)的容量是其余两个(FIFOb,FIFOc)的两倍。而整个片上网络所有的路由器的所有FIFOa组成虚拟通道0,所有的路由器的所有FIFOb和FIFOc组成虚拟通道1,但相邻路由器之间的只有一个物理通道。虚拟通道O采用的是扩展东向最后路由算法,而虚拟通道I采用的是扩展西向最后路由算法。扩展东向最后路由算法表明东向数据路由必须是最后一跳或最后多跳,同理,扩展西向最后路由算法表明西向数据路由必须是最后一跳或最后多跳,如图3,这样可以有效的保证这两个算法的免死锁特性。为了防止数据在两个通道之间路由出现死锁,规定虚拟通道O的数据可以发送到虚拟通道1,但虚拟通道I的数据不可以发送到虚拟通道O,如图4。
[0006]如图2所示,每个端口的缓存单元都含有五对输入输出数据链路,分别为邻近路由器输入到该端口的数据链路和该端口缓存单元输出到路由计算单元的数据链路(I对)、本地路由器邻近端口到该端口的输入输出数据链路(2对)以及该端口到本地路由器邻近端口的输入输出数据链路(2对)。利用这五对输入输出数据链路,该端口的缓存单元可以灵活地使用邻近端口的先入先出队列,提高繁忙端口的吞吐率和降低片上网络的数据路由延迟。
[0007]如图2所示,每个端口的缓存单元包含4对数据选择器,分别实现:1)依据路由器的路由算法,选择虚拟通道O或者虚拟通道I ;2)根据当前局部的通道拥堵状态信息,在两个邻近端口的FIFOc、该端口的FIFOc和FIFOa的中选择可用的先入先出队列缓存虚拟通道
O中的数据;3)根据FIFOb和FIFOc是否被共享,选择FIFOb和FIFOc缓存虚拟通道I中的数据;4)FIF0c在两个邻近端口的输入数据、该端口虚拟通道O的数据和该端口虚拟通道I的数据中,选择其需要缓存的数据。所有选择器的控制信息由邻近通道状态监视器产生。
[0008](2)路由器的东南西北四个端口分别含有一个路由计算单元,路由计算单元根据当前局部的通道拥堵状态信息,结合路由器的路由算法,计算出合适的输出端口,向仲裁器请求独占输出端口。
[0009](3)仲裁器根据各个端口的请求,依据wavefront的仲裁机制,为每个请求合理分配输出端口,避免出现饥饿;数据交换开关根据仲裁器的分配方案,将各个端口的缓存在缓存单元的数据发送到相应的输出端口。
[0010](4)邻近通道状态监视器动态搜集邻近路由器相应通道的拥堵状态信息,经过相应处理后,将该处理结果发送给本地的路由计算单元以及仲裁器,以防止出现局部拥堵。邻近通道状态监视器在相应路由器东南西北每个端口搜集到4比特的信息,四个端口共16比特,如图5。这些拥堵信息由邻近和次邻近路由器的本地通道状态监视器提供。邻近通道状态监视器同时需要本地缓存单元的先入先出队列满空状态信息,这些信息直接由本地路由器的各个端口的先入先出队列提供。根据上述信息,邻近通道状态监视器可以生成缓存单元的控制信号,这些信号共8种,分别控制缓存单元中的8个选择器,具体如图6。
[0011](5)本地通道状态监视器动态搜集本地路由器四个端口的拥堵状态信息,经过相应处理后,将该处理结果发送给本地的路由计算单元、仲裁器以及相邻和次相邻路由器的邻近通道状态监视器。当缓存单元中的FIFOa为满状态,并且该状态保持32个时钟周期后,就认为该端口的通道处于忙碌状态,否则处于非忙碌状态,具体电路结构如图7。
[0012]综上所述,本发明提出的应用于片上网络的一种可共享和自配置缓存的路由器结构,可以有效的监控片上网络中局部通道的状态,使得路由计算单元可以根据实时的通道状态信息计算出更加合理的路由路径,并且可自配置地实现缓存的共享,有效的增加数据路由的自适应性,从而降低片上网络局部的拥堵概率,提高片上网络的吞吐率,降低其数据到达目的节点的延迟。
【专利附图】

【附图说明】[0013]图1可共享和自配置缓存的路由器结构。
[0014]图2以西端口为例的缓存单元结构。
[0015]图3扩展东向(西向)最后路由算法说明图。
[0016]图4虚拟通道O和I示意图。
[0017]图5输入邻近通道状态监视器的16比特邻近通道状态信息。
[0018]图6邻近通道状态监视器结构框图。
[0019]图7本地通道状态监视器结构简图。
[0020]图8防拥堵路由算法流程图。
【具体实施方式】
[0021]根据以上的说明内容,本发明的【具体实施方式】如下:
(I)每个路由器的东南西北四个端口分别含有一个缓存单元,缓存单元完成路由器之间的握手通信,也用于缓存各个输入端口的数据,缓存采用先入先出队列,可以实现异步通信,具体结构如图2。每个缓存单元包含三个先入先出队列,其中FIFOa的深度为8,而FIFOb和FIFOc的深度都为4。而整个片上网络所有的路由器的所有FIFOa组成虚拟通道0,所有的路由器的所有FIFOb和FIFOc组成虚拟通道1,但相邻路由器之间的只有一个物理通道。当某个端口的FIFOa处于忙碌状态时,它可以将接下来的输入数据暂时缓存在该端口或者(和)邻近两个端口的FIFOc中,前提是被缓存的FIFOc必须处于非忙碌状态。由于虚拟通道I中的FIFOb不能被共享,并且在实际的应用中,虚拟通道I的数据流量最多只有虚拟通道O的三分之一,所以这种共享机制不会给虚拟通道I引入太大的拥堵可能性,却可以大幅度缓解因局部通信高负载给虚拟通道O带来的瞬时峰值数据流量的拥堵的可能性。虚拟通道O采用的是扩展东向最后路由算法,而虚拟通道I采用的是扩展西向最后路由算法。扩展东向最后路由算法表明东向数据路由必须是最后一跳或最后多跳,但并不关心数据路由方向为南西北是处于数据路由的什么位置;同理扩展西向最后路由算法表明西向数据路由必须是最后一跳或最后多跳,但并不关心数据路由方向为东南北是处于数据路由的什么位置,如图3,这样可以有效的保证这两个算法的免死锁特性。为了防止数据在两个通道之间路由出现死锁,规定虚拟通道O的数据可以发送到虚拟通道1,但虚拟通道I的数据不可以发送到虚拟通道0,如图4。
[0022]如图2所示,每个端口的缓存单元都含有五对输入输出数据链路,分别为邻近路由器的输入到该端口的数据链路和该端口缓存单元输出到路由计算单元的数据链路(I对),以西端口为例,在图2中显示为“数据输入”和“数据输出”;本地路由器邻近端口到该端口的输入输出数据链路(2对),以西端口为例,在图2中显示为“NtW”和“StW”;该端口到本地路由器邻近端口的输入输出数据链路(2对),以西端口为例,在图2中显示为“WtN”和“WtS”。利用这五对输入输出数据链路,该端口的缓存单元可以灵活地使用邻近端口的先入先出队列,提高忙碌端口的吞吐率和降低片上网络的数据路由延迟。以一种最坏的情况为例,当西端口虚拟通道O的FIFOa处于忙绿状态,但该端口的FIFOc、两个邻近端口的FIFOc都处于空闲状态时,西端口可以共享西端口的FIFOc和南北端口的FIFOc,也就是说将接下来的输入数据缓存在西端口的FIFOc和南北端口的FIFOc中,数据可以通过“WtN”和“WtS”到达这些被共享的FIFO。当西端口或者南北端口的虚拟通道I也变成忙绿状态后,西端口的虚拟通道O渐渐释放已经被共享的西端口的FIFOc和南北端口的FIFOc,以恢复正常的工作状态。
[0023]缓存单元最为复杂的结构是控制逻辑,如图2所示,每个端口的缓存单元包含4对数据选择器,分别实现:
1)依据路由器的路由算法,选择虚拟通道O和虚拟通道I;
2)根据当前局部的通道拥堵状态信息,在两个邻近端口的FIFOc、该端口的FIFOc和FIFOa的中选择可用的先入先出队列缓存虚拟通道O中的数据;
3)根据FIFOb和FIFOc是否被共享,选择FIFOb和FIFOc缓存虚拟通道I中的数据;
4)FIFOc在两个邻近端口的输入数据、该端口虚拟通道O的数据和该端口虚拟通道I的数据中,选择其需要缓存的数据。所有选择器的控制信息由邻近通道状态监视器产生。
[0024]每个路由器的除了东南西北四个端口外,还含有一个连接本地处理器的端口,该端口只含有一个虚拟通道,也就是说只存在一个先入先出队列。处理器接收和发送的数据都需要通过该端口。在局部通信高负载的应用中,本地处理器需要接收来自片上网络的数据,因为该端口在一些情况下,可能达到很大的吞吐量峰值。基于这些考虑,该端口的先入先出队列不能被其他端口共享。
[0025](2)路由器的东南西北四个端口分别含有一个路由计算单元,路由计算单元根据当前局部的通道拥堵状态信息,结合路由器的路由算法,计算出合适的输出端口,向仲裁器请求独占输出端口。具体的路由算方法流程图如图8,当一个数据包到达缓存单元,路由计算单元根据数据的包头解析出该数据的目的地,数据首先选择虚拟通道0,也就是首先选择扩展东向最后路由算法,具体过程如下:
1)判断目的地是否为西/西北/西南,若是,则直接自适应的选择非拥堵端口,将数据发送出去,若所要选择的端口为拥堵,等待直到拥堵状态消失;
2)若目的地不是西/西北/西南,则判断是否为北/东北(南/东南),若是,依次判断北、西、南端口是否为拥堵,如果其中一个方向为非拥堵,选择该端口作为输出端口,如果都为拥堵,再判断东端口是否为拥堵,若依旧为拥堵,则进入等待,直到东、南、西、北中有一个为非拥堵。若只有东端口是非拥堵,则进入虚拟通道1,因为虚拟通道O的东向路由只能为最后一跳或最后多跳;
3)若目的地也不是北/东北(南/东南),则判断是否为东,若是,再判断东端口是否为拥堵状态,若是则从北/东北/东南中选择非拥堵端口,并进入虚拟通道I,如果东端口不是拥堵状态,则选择东端口 ;如果不是东端口,则说明数据包是要去本地处理器,选择本地处理器端口。
[0026]当数据选择虚拟通道I时,采用的是扩展西向最后路由算法,算法过程基本和扩展东向最后路由算法相似,这里就不在赘述。
[0027](3)仲裁器根据各个端口的请求,依据wavefront的仲裁机制,为每个请求合理分配输出端口,避免出现饥饿;数据交换开关根据仲裁器的分配方案,将各个端口缓存在缓存单元的数据发送到相应的输出端口。仲裁器和数据交换开关采用的是经典的结构,也不是本发明的新颖点,所以这里也不详细论述。
[0028](4)邻近通道状态监视器动态搜集邻近路由器相应通道的拥堵状态信息,经过相应处理后,将该处理结果发送给本地的路由计算单元以及仲裁器,以防止出现局部拥堵。邻近通道状态监视器在相应路由器东南西北每个端口搜集到4比特的信息,四个端口共16比特,如图5,这些端口信息标示了数据包这一跳和下一跳所有经过的缓存单元的拥堵信息。这些拥堵信息由邻近和次邻近路由器的本地通道状态监视器提供。邻近通道状态监视器同时需要本地缓存单元的先入先出队列满空状态信息,这些信息直接由本地路由器的各个端口的先入先出队列提供。根据上述信息,邻近通道状态监视器可以生成缓存单元的控制信号,这些信号共8种,分别控制缓存单元中的8个选择器,具体如图6。SO和S7为选择虚拟通道的控制信号,根据4个邻近通道的状态和防拥堵路由算法得到,默认状态选择的是虚拟通道0,只有在特定的情况才会选择虚拟通道1,具体见算法图8。SI和S5为选择虚拟通道I中的FIFOb和FIFOc的控制信号,根据本地路由器4个端口的缓存单元状态,状态机在四个状态之间切换,其中“R”表示读该FIFO的数据,“W”表示向该FIFO的写数据,“b”和“c”分别表示FIFOb和FIFOc。S2、S3、S4和S6为选择被共享FIFO的控制信号,也就是控制本地FIFOc和两个邻近通道的FIFOc的分配归属,需要本地FIFOa和FIFOc以及邻近端口的FIFOc空闲状态信息。
[0029](5)本地通道状态监视器动态搜集本地路由器四个端口的拥堵状态信息,经过相应处理后,将该处理结果发送给本地的路由计算单元、仲裁器以及相邻和次相邻路由器的邻近通道状态监视器。当缓存单元中的FIFOa为满状态,并且该状态保持32个时钟周期后,就认为该端口的通道处于忙碌状态,否则处于非忙碌状态,具体电路结构如图7。
[0030]本发明提出的应用于片上网络的一种可共享和自配置缓存的路由器结构,可以通过本地和邻近通道状态监视器动态地有效地监控片上网络中局部通道的状态,路由计算单元可以根据实时的通道状态信息计算出更加合理的路由路径,然后通过缓存单元可自配置地实现缓存的共享,有效的增加数据路由的自适应性,提高片上网络的性能。
【权利要求】
1.一种应用于片上网络的可共享和自配置缓存的路由器结构,其特征在于,由缓存单元、路由计算单元、数据交换开关、仲裁器、邻近通道状态监视器和本地通道状态监视器六类模块组成; 路由器的东南西北四个端口分别含有一个缓存单元,缓存单元完成路由器之间的握手通信,也用于缓存各个输入端口的数据,缓存采用先入先出队列,可以实现异步通信; 路由器的东南西北四个端口分别含有一个路由计算单元,路由计算单元根据当前局部的通道拥堵状态信息,结合路由器的路由算法,计算出合适的输出端口,向仲裁器请求独占输出端口 ; 仲裁器根据各个端口的请求,依据wavefront的仲裁机制,为每个请求合理分配输出端口,避免出现饥饿; 数据交换开关根据仲裁器的分配方案,将各个端口的缓存在缓存单元的数据发送到相应的输出端口; 邻近通道状态监视器动态搜集邻近路由器相应通道的拥堵状态信息,经过相应处理后,将该处理结果发送给本地的路由计算单元以及仲裁器,以防止出现局部拥堵; 本地通道状态监视器动态搜集本地路由器四个端口的拥堵状态信息,经过相应处理后,将该处理结果发送给本地的路由计算单元、仲裁器以及相邻和次相邻路由器的邻近通道状态监视器。
2.根据权利要求1所述的可共享和自配置缓存的路由器结构,其特征在于,每个缓存单元包含三个先入 先出队列,其中一个先入先出队列FIFOa的容量是其余两个FIFOb、FIFOc的两倍;整个片上网络所有的路由器的所有先入先出队列FIFOa组成虚拟通道0,所有的路由器的所有先入先出队列FIFOb和FIFOc组成虚拟通道1,但相邻路由器之间的只有一个物理通道; 每个端口的缓存单元都含有五对输入输出数据链路,分别为:邻近路由器输入到该端口的数据链路和该端口缓存单元输出到路由计算单元的数据链路,为I对;本地路由器邻近端口到该端口的输入输出数据链路,为2对;以及该端口到本地路由器邻近端口的输入输出数据链路,为2对; 每个端口的缓存单元包含4对数据选择器,分别实现: 1)依据路由器的路由算法,选择虚拟通道O或者虚拟通道I; 2)根据当前局部的通道拥堵状态信息,在两个邻近端口FIFOc、该端口 FIFOc和FIFOa的中选择可用的先入先出队列缓存虚拟通道O中的数据; 3)根据FIFOb和FIFOc是否被共享,选择FIFOb和FIFOc缓存虚拟通道I中的数据; 4)FIFOc在两个邻近端口的输入数据、该端口虚拟通道O的数据和该端口虚拟通道I的数据中,选择其需要缓存的数据;所有选择器的控制信息由邻近通道状态监视器产生。
3.根据权利要求1所述的可共享和自配置缓存的路由器结构,其特征在于,邻近通道状态监视器为本地路由器提供邻近和次邻近路由器部分端口的缓存单元拥堵信息,东南西北每个端口搜集到4比特的信息,四个端口共16比特;这些拥堵信息由邻近和次邻近路由器的本地通道状态监视器提供;邻近通道状态监视器同时需要本地缓存单元的先入先出队列满空状态信息,这些信息直接由本地路由器的各个端口的先入先出队列提供;根据上述信息,邻近通道状态监视器可以生成缓存单元的控制信号。
4.根据权利要求1所述的可共享和自配置缓存的路由器结构,其特征在于,本地通道状态监视器动态搜集本地路由器四个端口的拥堵状态信息,当FIFOa为满状态,并且该状态保持32个时钟周期后,就认为该端口的通道处于忙碌状态,否则处于非忙碌状态。
【文档编号】H04L12/701GK104022950SQ201410253106
【公开日】2014年9月3日 申请日期:2014年6月10日 优先权日:2014年6月10日
【发明者】虞志益, 周炜, 俞剑明, 林杰, 朱世凯 申请人:复旦大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1