一种基于令牌的流控方法及装置的制造方法

文档序号:8459184阅读:708来源:国知局
一种基于令牌的流控方法及装置的制造方法
【技术领域】
[0001]本发明涉及数据缓存调度技术领域,尤其涉及一种基于令牌的流控方法及装置。
【背景技术】
[0002]调度是实现网络通信系统中QoS (Quality of Service,服务质量)的关键技术,网络中节点的出端口都有最大处理能力,当节点的入端口流量大于出口处理能力的情况下,该节点就出现了拥塞,拥塞导致的结果是丢包。在不提供QoS保障的网络节点,通常采取FIFO (First In First Out,先进先出)的方法暂存数据包,一旦由于拥塞造成FIFO满,那么新进入该节点的数据包被丢弃,而并不关心丢弃的是什么数据包,采取尾丢弃机制(droptail)丢弃新进入的数据包。为了对不同业务流提供不同的服务质量等级,提出了 QoS概念,网络中节点需识别不同的业务流,给予差别化的服务。其中节点中采取多队列的方法暂存数据包,不同的业务流存储在不同的队列中,当节点发生拥塞时,给予各队列中的业务流不同的服务保证,如给予视频业务低时延保证,数据业务高带宽保证等。而调度就是从不同业务流队列中按照服务质量要求,选择一个队列出来给予服务,是实现QoS的核心技术。
[0003]当队列数目较大,基于包的调度器要感知所有队列中的包长信息,从实现上来看,将面临较大困难,因为要存储巨大数量队列(几十甚至几百K)的包长信息,将会消耗大量的存储资源,同时管理上将变得复杂。另外,在网络带宽非常高的应用,基于包的调度将需要采取非常高的频率进行调度数据包,硬件时序上也面临挑战。
[0004]基于令牌(credit)的调度,是另一种调度策略,与基于包的调度不同,调度器不需感知包长信息,而是把所有队列中的包长看成定长包,每次调度结果是给予能发送一个定长包的令牌,调度器感知的是队列的长度,队列长度大于O的队列请求调度,而对于队列长度小于的O的队列,调度器不给予调度机会。基于令牌调度适合在队列数目较大的地方使用,同样能提供较好的服务质量保证。
[0005]但是在基于credit的调度技术上也存在弊端,特别是当队列O的剩余credit全部用完,调度器才能继续分配非零的credit,显然只要队列O非空,那么调度器一直调度该队列,最终导致其他低优先级队列得不到调度机会,同时出口带宽不限速,带宽浪费。
[0006]在一个credit base的流量控制系统中,发送侧能够发送的报文数目受到credit数量的限制,接收侧会发送credit给发送侧,发送侧会以flit为单位消耗credit,发送侧在有credit的情况下才会发生flit,每次发出一个flit对应的credit就减I。其中,flit指的是传输过程的数据单元,类似packet。

【发明内容】

[0007]为此,需要提供一种基于令牌的流控方法及装置,解决现有数据调度效果不理想的问题。
[0008]为实现上述目的,发明人提供了一种基于令牌的流控装置,包括发送侧和接收侧,所述发送侧包括调度单元,所述接收侧包括独立缓存单元和共享缓存单元,所述调度单元与独立缓存单元、共享缓存单元连接,所述独立缓存单元包含有用于标记独立缓存单元剩余容量的独立缓存令牌,所述共享缓存单元包含有用于标记共享缓存单元剩余容量的共享缓存令牌;
[0009]所述接收侧用于发送独立缓存令牌给发送侧,所述调度单元用于接收独立缓存类型的数据时根据独立缓存令牌判断对应的独立缓存单元的剩余容量是否充足,在充足时发送数据到接收侧,接收侧存储数据到对应的独立缓存单元。
[0010]可选的,所述接收侧还用于在独立缓存单元剩余容量不足时,判断是否还有共享缓存单元剩余容量,如果还有共享缓存剩余容量,则发送独立缓存令牌给发送侧,接收侧接收到数据后存储到共享缓存单元。
[0011]可选的,所述接收侧还用于发送共享缓存令牌给发送侧,所述调度单元用于在接收到独立缓存类型数据且独立缓存单元剩余容量不足时,通过共享缓存令牌判断共享缓存单元的剩余容量是否充足,在充足时发送数据到共享缓存单元。
[0012]可选的,所述调度单元还用于优先发送令牌优先程度高的数据。
[0013]以及发明人还提供一种基于令牌的流控方法,应用于发送侧和接收侧,所述发送侧具有调用单元,所述接收侧具有独立缓存单元和共享缓存单元,其特征在于:包括如下步骤:
[0014]所述接收侧发送标记独立缓存单元剩余容量的独立缓存令牌给发送侧,
[0015]所述调度单元接收独立缓存类型的数据时,根据独立缓存令牌判断对应的独立缓存单元的剩余容量是否充足,在充足时发送数据到接收侧,接收侧存储数据到对应的独立缓存单元。
[0016]可选的,还包括如下步骤:
[0017]所述接收侧在独立缓存单元剩余容量不足时,判断是否还有共享缓存单元剩余容量,
[0018]如果还有共享缓存剩余容量,则发送独立缓存令牌给发送侧,
[0019]接收侧接收到数据后存储到共享缓存单元。
[0020]可选的,还包括如下步骤:
[0021]所述接收侧发送共享缓存令牌给发送侧,
[0022]所述调度单元接收到独立缓存类型数据且独立缓存单元剩余容量不足时,
[0023]通过共享缓存令牌判断共享缓存单元的剩余容量是否充足,在充足时发送数据到共享缓存单元。
[0024]可选的,还包括如下步骤:调度单元优先发送令牌优先程度高的数据。
[0025]区别于现有技术,上述技术方案通过令牌实现调度,同时可以通过共享缓存单元实现在数据拥挤时的数据缓存,避免数据的丢失,独立缓存单元可以为多个,则可以根据不同的业务类型存储数据到不同的独立缓存单元。将共享和独立的缓存单元进行分开管理并支持共享缓存令牌,对请求通道的均衡分配,可以有效提高数据流量传输过程中的实时控制以及数据传输效率,在日益增长的网络高速数据交互的系统中,本方案可以有效提高整系统性能。
【附图说明】
[0026]图1为本发明装置实施例的结构示意图;
[0027]图2为本发明方法实施例的流程图;
[0028]图3为本发明方法另一实施例的流程图。
[0029]附图标记说明:
[0030]101-104、数据,
[0031]110、调度单元,
[0032]120、共享缓存单元,
[0033]130、140、150、独立缓存单元。
【具体实施方式】
[0034]为详细说明技术方案的技术内容、构造特征、所实现目的及效果,以下结合具体实施例并配合附图详予说明。
[0035]请参阅图1,本实施例提供一种基于令牌的流控装置,包括发送侧和接收侧,所述发送侧包括调度单元110,所述接收侧包括独立缓存单元130和共享缓存单元120,所述调度单元110与独立缓存单元130、共享缓存单元120连接,所述独立缓存单元130包含有用于标记独立缓存单元剩余容量的独立缓存令牌,所述共享缓存单元120包含有用于标记共享缓存单元剩余容量的共享缓存令牌。
[0036]接收侧用于发送独立缓存令牌给发送侧,此时调度单元110会收到该独立缓存令牌,调度单元110用于接收独立缓存类型的数据时根据独立缓存令牌判断对应的独立缓存单元的剩余容量是否充足,在充足时发送数据到接收侧,接收侧存储数据到对应的独立缓存单元。在本实施例中,独立缓存单元可以有多个,针对不同的独立缓存单元对应有不同的业务类型数据,如可以有独立缓存单元140和独立缓存单元150。令牌可以是标记缓存单元剩余容量大小的数字。本发明在进行调度时,调度单元110接收到数据后,会根据数据的类型存储到对应的独立缓存单元。如收到数据101则存到独立缓存单元130,收到数据102、103则存到独立缓存单元140,收到数据104则存到独立缓存单元150。在独立缓存单元被数据填满后,会将数据存到共享缓存单元,从而避免了数据的丢失。这样独立业务类型的数据都有缓存单元进行单独存储,避免了某种业务类型的数据一直缓存而造成其他业务类型无法缓存的情况。
[0037]针对于共享缓存令牌,可以采用不同的管理策略,本实施例提供显式的令牌管理机制和隐式的令牌管理机制。显式的令牌管理机制:接收侧将令牌区分为每个通道保留的独立缓存令牌和各类协议类型共享的共享缓存令牌,接收侧显式的通知发送侧共享缓存以及独立缓存令牌的状态,共享缓存部分由发送侧分发给哪个通道使用。则接收侧还用于发送共享缓存令牌给发送侧,调度单元会收到共享缓存令牌,在上述实施例基础上,接收侧还会收到独立缓存令牌,则调度单元在接收到独立缓存类型数据且独立缓存单元剩余容量不足时,通过共享缓存令牌判断共享缓存单元的剩余容量是否充足。在共享缓存单元的剩余容量充足时发送数据到共享缓存单元,数据到达接收侧之后接收侧需要判断共享缓存单元的数据到底是属于哪个通道的。在显式的令牌管理机制中,只有当接收侧释放共享缓存单元后才会通知发送侧。
[0038]上述显式的令牌管理机制由发送侧实现对共享缓存令牌的管理和判断,隐式的令牌管理机制在接收侧实现对共享缓存令牌的管理。具体的隐式的令牌管理机制为:接收侧发送区分通道的令牌给发送侧,共享缓存部分的缓存由接收侧自行管理。接收侧发送独立缓存令牌给发送侧,发送侧据此发送数据,当接收侧某个通道没有缓存的时候,在共享缓存单元还有缓存时也会发出这个通道的令牌。发送侧接收到令牌后还是会发出数据,但是发送到接收侧的时候是缓存在了共享缓存单元,消耗的已经是共享缓存令牌。这个判断令牌是在接收侧实现。则接收侧还用于在独立缓存单元剩余容量不足时,判断是否还有共享缓存单元剩余容量,如果还有共享缓存剩余容量,则发送独立缓存
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1