一种基于数据包偏转统计的网络流量控制方法

文档序号:7798728阅读:544来源:国知局
一种基于数据包偏转统计的网络流量控制方法
【专利摘要】本发明涉及一种基于数据包偏转统计的网络流量控制方法,包括:添加集中式网络拥塞控制器及网络路由部件,统计片上网络流量数据及网络状态,集中控制器收集路由统计数据信息,进行拥塞判断及拥塞源判断,进行网络拥塞控制。现有的网络拥塞控制方法一般采用“黑盒子”方式,不清楚网络中的具体偏转情,当网络发生拥塞时限制注入率高的所有节点,那些注入率高的非拥塞节点同样受到限制;而本发明通过判断每个路由的具体拥塞情况确定拥塞节点,从而进行有效的放矢的网络拥塞控制。与现有技术相比,本发明能更好地确定网络中具体的网络拥塞源,在降低网络平均延迟和网络拥塞程度方面相对提高5%~10%左右。
【专利说明】一种基于数据包偏转统计的网络流量控制方法
【技术领域】
[0001]本发明属于计算机体系结构领域,具体涉及一种基于网络数据包偏转统计的无缓存片上网络(Bufferless NoC)拥塞控制方法。
【背景技术】
[0002]随着半导体技术的不断发展,单一芯片上集成的核心越来越多,传统的总线通信方式不再能够满足片上部件的通信需求,而基于包交换的片上网络(Network-on-Chips,NoC)由于其扩展性和效率等方面优势成为当今主流的片上互联解决方案。NoC的设计通常受限于面积和功耗能,为了进一步减小该方面的开销,一种不同于传统基于虚拟通道的片上网络,无缓存片上网络成为近期的研究热点。在无缓存片上网络中,所有网络路由中的缓存都被去掉,因此其路由方式不同于传统片上网络。
[0003]无缓存片上网络路由中没有可以存储数据包(flit)的缓存,当多个flit竞争同一个路由端口时,只能有一个flit可以获得该端口,其它所有竞争失败的数据包都将从其它端口发出,这种flit被转发到其它端口的情况称之为flit发生了偏转。发生偏转的flit被偏转到其它路由后,同样按照原来的方式进行路由,所以它在选择端口的时候和其它flit发生端口竞争。虽然无缓存片上网络去掉了所有的缓存,但是这种偏转机制使得其比较容易发生网络拥塞。在无缓存片上网络中,一旦一个网络节点发生拥塞,偏转机制就会把该节点的拥塞扩展到整个网络中,对整个系统的性能造成严重影响。
[0004]目前,无缓存片上网络中的拥塞控制研究引起了国内外技术人员越来越多的关注。文献[I] (Nychis, George P., et al.〃0n-chip networks from a networkingperspective:Congestion and scalability in many-core interconnects.〃ACM SIGCOMMComputer Communication Review42.4(2012):407-418.)提出了一种拥塞控制技术,把网络当成一个黑盒子,通过注入节点的饥饿率和平均每条指令的注入率来判断网络的拥塞和需要进行注入限制的节点。该项技术存在的一个最大问题就是无法知道网络中具体的拥塞情况,当网络发生拥塞时仅仅只是限制注入率高的节点,那些注入率高的非拥塞节点的性能将会受到影响。

【发明内容】

[0005]针对现有技术中存在的上述问题,本发明提出一种基于网络数据包偏转统计的网络流量控制方法,通过记录网络中的数据偏转情况,确定具体网络拥塞源,并对拥塞源进行注入控制,有效地减少了无缓存片上网络的拥塞程度。
[0006]为了实现上述目的,本方发明采用以下技术方案。
[0007]一种基于数据包偏转统计的网络流量控制方法,包括以下步骤:
[0008]步骤1,添加集中式网络拥塞控制器及网络路由部件。
[0009]步骤1.1,在片上网络中添加一个集中式网络拥塞控制器。
[0010]集中式网络拥塞控制器CC(Centralized Controller),可以是一个具体的处理器核,通过时钟中断来进行网络拥塞控制,也可以是一个专一的逻辑控制部件。
[0011]步骤1.2,在每个无缓存片上网络路由中添加以下部件:
[0012](I) 一个长度和处理器核数相同的偏转计数器组,记为DRC (Deflection RecordCounter);
[0013](2) 一个统计路由注入端口发生饥饿情况的饥饿计数器,记为SRC (StarvationRecord Counter);
[0014](3) —个用于记录注入数据包数量的注入计数器,记为JRC (Injection RecordCounter);
[0015](4)—个用于记录处理器执行指令数的指令计数器,记为IRC (InstructionRecord Counter);
[0016](5) —个用于限制路由注入快慢的节流寄存器,记为TRR (Throttle RateRegister)。
[0017]步骤2,统计片上网络流量数据及网络状态。
[0018]步骤2.1,路由统计其接受到的所有flit的偏转情况。
[0019]由偏转计数器组DRC统计接受到的所有flit的偏转次数,每一个计数器对应一个路由器。例如,计数器组中的编号为I计数器记录的数据是网络中编号为I的路由发出的数据包在该路由节点上发生的偏转次数。当某个flit在某个路由上发生偏转时,相应的偏转计数器加I。
[0020]步骤2.2,统计饥饿数。
[0021]当路由有数据包需要注入到网络中时,需要先检测它有没有可用的空闲端口,如果没有,数据包注入操作在当前周期内不能完成,延迟到下一个周期。这种不能注入数据包的情况称之为该路由发生了饥饿。
[0022]由饥饿情况计数器SRC统计饥饿数,当路由发生饥饿时,路由中的饥饿计数器SRC加I。
[0023]步骤2.3,统计注入数。
[0024]由数据包注入数量计数器JRC统计注入数,每当路由节点向网络中成功注入一个数据包时,路由中的数据包注入计数器JRC加I。
[0025]步骤2.4,统计指令条量。
[0026]由指令计数器IRC统计指令,每当和网络路由对应的处理器执行完成一条指令后,路由中的指令计数器IRC加I。
[0027]步骤3,集中控制器CC收集步骤2得到的路由统计数据信息。
[0028]步骤3.1,每隔T I)个周期,集中控制器CC向网络中的所有路由器广播信息收集的请求数据包。
[0029]步骤3.2,路由节点收到集中控制器CC发来的数据收集请求后,将收集到的所有数据打成一个网络数据包,然后发送给集中控制器CC作为其请求数据包的响应,同时使所有数据统计计数器归零。
[0030]步骤3.3,集中式控制器CC接收到所有应答数据包后,对数据包中的统计信息进行解析和分类。
[0031]步骤4,进行拥塞判断及拥塞源判断。[0032]步骤4.1,集中控制器CC计算各个路由的饥饿率SR和平均每个flit对应的指令数 IPF (Instruction per flit),公式分别如下:
【权利要求】
1.一种基于数据包偏转统计的网络流量控制方法,其特征在于,通过记录网络中的数据偏转情况,确定具体网络拥塞源,并对拥塞源进行注入控制,有效地减少无缓存片上网络的拥塞程度;所述方法包括以下步骤: 步骤1,添加集中式网络拥塞控制器及网络路由部件; 步骤1.1,在片上网络中添加一个集中式网络拥塞控制器; 步骤1.2,在每个无缓存片上网络路由中添加部件; 步骤2,统计片上网络流量数据及网络状态; 步骤2.1,路由统计其接受到的所有数据包flit的偏转情况; 由偏转计数器组DRC统计接受到的所有flit的偏转次数,每一个计数器对应一个路由器;当某个flit在某个路由上发生偏转时,相应的偏转计数器加I ; 步骤2.2,统计饥饿数; 由饥饿情况计数器SRC统计饥饿数,当路由发生饥饿时,路由中的饥饿计数器SRC加I ; 步骤2.3,统计注入数; 由数据包注入数量 计数器JRC统计注入数,每当路由节点向网络中成功注入一个数据包时,路由中的数据包注入计数器JRC加I ; 步骤2.4,统计指令条量; 由指令计数器IRC统计指令,每当和网络路由对应的处理器执行完成一条指令后,路由中的指令计数器IRC加I ; 步骤3,集中控制器CC收集步骤2得到的路由统计数据信息; 步骤3.1,每隔T个周期,集中控制器CC向网络中的所有路由器广播信息收集的请求数据包;T≥I ; 步骤3.2,路由节点收到集中控制器CC发来的数据收集请求后,将收集到的所有数据打成一个网络数据包,然后发送给集中控制器CC作为其请求数据包的响应,同时使所有数据统计计数器归零; 步骤3.3,集中式控制器CC接收到所有应答数据包后,对数据包中的统计信息进行解析和分类; 步骤4,进行拥塞判断及拥塞源判断; 步骤4.1,集中控制器CC计算各个路由的饥饿率SR和平均每个flit对应的指令数IPF,公式分别如下:
2.根据权利要求1所述的一种基于数据包偏转统计的网络流量控制方法,其特征在于,所述步骤1.1在片上网络中添加的集中式网络拥塞控制器CC,可以是一个具体的处理器核,通过时钟中断来进行网络拥塞控制,也可以是一个专一的逻辑控制部件。
3.根据权利要求1所述的一种基于数据包偏转统计的网络流量控制方法,其特征在于,所述步骤1.2在每个无缓存片上网络路由中添加如下部件: (O 一个长度和处理器核数相同的偏转计数器组,记为DRC ; (2)—个统计路由注入端口发生饥饿情况的饥饿计数器,记为SRC ; (3)一个用于记录注入数据包数量的注入计数器,记为JRC ; (4)一个用于记录处理器执行指令数的指令计数器,记为IRC ; (5)一个用于限制路由注入快慢的节流寄存器,记为TRR。
4.根据权利要求1所述的一种基于数据包偏转统计的网络流量控制方法,其特征在于,步骤2.2所述的饥饿是指:当路由有数据包需要注入到网络中时,如果没有可用的空闲端口,数据包注入操作在需延迟到下一个周期;这种不能注入数据包的情况称为饥饿。
【文档编号】H04L12/24GK103825833SQ201410090412
【公开日】2014年5月28日 申请日期:2014年3月12日 优先权日:2014年3月12日
【发明者】方娟, 姚治成 申请人:北京工业大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1