基于硬件提高多队列随机丢弃报文精度的方法及装置的制造方法_3

文档序号:8265605阅读:来源:国知局
述。
[0047]队列属性配置存储器103用于存储每一个队列的最大丢弃阈值、最小丢弃阈值,以及随机丢弃比例值;所述最大丢弃阈值、最小丢弃阈值,以及随机丢弃比例值均可根据需要具体设定。
[0048]队列指针存储器105用于存储每个所述队列访问数值存储器101的指针读数。
[0049]队列长度存储器107用于存储每个队列的的队列长度;所述队列长度存储器的深度跟总的队列数量保持一致,其初始数值为O。
[0050]进一步的,本实施方式中,数据处理模块200用于根据输入数据所在队列编号访问队列长度存储器107,获取其对应队列的队列长度,以及访问队列属性配置存储器103,获取其对应队列的、最大丢弃阈值、最小丢弃阈值、随机丢弃比例值。
[0051]所述输入数据为报文,所述队列为报文在转发过程中,需要进行排队等候的转发通道。
[0052]进一步的,本实施方式中,数据处理模块200用于根据所述队列长度判断接收或是丢弃所述输入数据。
[0053]若输入数据所在队列的队列长度大于最大丢弃阈值,则丢弃全部的所述输入数据;
若输入数据所在队列的队列长度小于最小丢弃阈值,则接收全部的所述输入数据;
若输入数据所在队列的队列长度介于最大丢弃阈值和最小丢弃阈值之间,则判断是否需要对输入数据进行丢弃,若是,按照所述输入数据所在队列预设的随机丢弃比例值进行丢弃。
[0054]进一步的,当队列长度介于最大阈值和最小阈值之间时,数据处理模块200用于根据所述最大丢弃阈值、最小丢弃阈值、随机丢弃比例值,以及当前队列的队列长度获取当前队列的丢弃概率。
[0055]进一步的,数据处理模块200用于根据所述丢弃概率获取所述输入数据的丢弃概率值。所述丢弃概率值=所述随机丢弃比例值*丢弃概率。
[0056]本示例中,所述随机丢弃比例值为2的幂次方。
[0057]所述丢弃概率依据所述最大丢弃阈值、最小丢弃阈值,以及当前队列的队列长度进行计算。
[0058]本实施方式中,将当前队列的最大丢弃阈值和最小丢弃阈值所在区间划分为N个丢弃区间,N个丢弃区间按照其区间取值范围从小到大依次为丢弃区间1、丢弃区间2…丢弃区间N,每个丢弃区间N内数值的空间丢弃概率依次为1/Ν、2/Ν...Ν/Ν ;所述N为2的幂次方,例如:1、2、4、8、16…。
[0059]例如:预设当前队列的最小丢弃阈值为10,最大丢弃阈值为90,丢弃区间的数量为8,那么,按照上述计算方式,将当前队列的丢弃区间划分为8个,其区间取值范围依次为[10,20]、[20,30]、[30,40]、[40,50]、[50,60]、[60,70]、[70,80]、[80,90],每个丢弃区间N内数值的空间丢弃概率依次为1/8、2/8、3/8、48、5/8、6/8、7/8…8/8。
[0060]进一步的,数据处理模块200用于判断所述队列长度和最小丢弃阈值的差值所分布的丢弃区间,并获取相应丢弃区间的丢弃概率;如此设置后,当所述队列长度介于最大丢弃阈值和最小丢弃阈值之间时,丢弃报文的概率根据队列长度的增加按比例增加,以基于硬件提高多队列随机丢弃报文精度。
[0061]如上示例,假定所述队列的队列长度为55,其与最小丢弃阈值的差值为45,则其差值处于丢弃区间4内,那么,当前队列的丢弃概率为1/2,再根据获取的随机丢弃比例值,即可以得到当前队列的丢弃概率值。
[0062]进一步的,本实施方式中,在计算丢弃概率值的同时,数据处理模块200还用于根据输入数据所在队列编号访问队列指针存储器105,获取访问数值存储器101的队列指针读数;并进一步的根据所述队列指针读数访问数值存储器101,获取与所述队列对应的判断阈值。
[0063]数据处理模块200每次根据输入数据所在队列编号访问队列指针存储器105后,均对队列指针存储器105内相应的所述队列指针读数加1,并将更新后的队列指针读数保存到队列指针存储器105,进而根据获取的所述队列指针读数获取数值存储器101的空间内存储的判断阈值。
[0064]可以理解的是,所述队列指针读数的数值为循环数值,其最大数值依据数值存储器101的深度设定,即初始状态下,队列指针读数的数值为0,之后每次加1,当所述队列指针读数的数值增加到数值存储器101的深度大小时,本示例中,所述队列指针读数的数值增加到127之后,再次访问数值存储器101时,其数值重新变为0,依次类推,在此不做详细赘述。
[0065]进一步的,本实施方式中,数据处理模块200用于根据所述丢弃概率值和所述判断阈值,决定是否丢弃所述输入数据。
[0066]本示例中,将所述丢弃概率值和所述判断阈值进行比较,判断所述丢弃概率值是否大于所述判断阈值;
若是,数据处理模块200按照所述随机丢弃比例值丢弃所述输入数据;
若否,数据处理模块200接收所述输入数据进入当前所述队列;并在每次接收所述输入数据后,均对所述队列长度存储器107内相应的所述队列长度加1,并将更新后的队列长度保存到所述队列长度存储器107。
[0067]可以理解的是,上述示例中,仅针对一个队列的情况做具体描述,在实际应用过程中,多队列的输入数据是依次输入的,其他队列与上述一个队列的执行过程相同,存储模块100、数据处理模块200所起作用大致相同,其区别仅在于,循环处理不同队列的输入数据,在此不做详细赘述。
[0068]另外,需要说明的是,上述示例中,由于数值存储器101的每一个存储空间内,将数值O到127共128个数值随机配置在数值存储器101的128个空间内作为数值存储器101每个空间的判断阈值,如此,需要根据丢弃概率、所述随机丢弃比例值计算丢弃概率值与相应的判断阈值进行比较,而在实际应用中,也可以预先对所述判断阈值进行处理,即:将对应数值存储器101每个空间的数值均除以所述随机丢弃比例值作为判断阈值,之后将该判断阈值直接与所述丢弃概率进行比较,如此,同样能达到本发明的技术效果,在此不做详细赘述。
[0069]综上所述,本发明的基于硬件提高多队列随机丢弃报文精度的方法及装置,通过引入数值存储器,并根据所述存储器的存储空间实时计算多队列的丢弃概率值,如此,在多队列情况下,能够满足不同队列按照预先配置的丢弃精度进行丢弃,提高了丢弃报文的精度,在避免网络拥塞的同时,降低丢弃报文的数量,优化系统的运行。
[0070]为了描述的方便,描述以上装置时以功能分为各种模块分别描述。在实施本申请时仅限于把各模块的功能在ASIC芯片中实现。
[0071]通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到本申请可借助通用硬件平台的方式来实现。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分以ASIC芯片产品的形式体现出来。
[0072]以上所描述的装置实施方式仅仅是示意性的,其中所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件是逻辑模块,即可以位于芯片逻辑中的一个模块中,或者也可以分布到芯片内的多个数据处理模块上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施方式方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
[0073]本申请可用于众多通用或专用的通信芯片中。例如:交换芯片、路由器芯片,服务器芯片等等。
[0074]应当理解,虽然本说明书按照实施方式加以描述,但并非每个实施方式仅包含一个独立的技术方案,说明书的这种叙述方式仅仅是为清楚起见,本领域技术人员应当将说明书作为一个整体,各实施方式中的技术方案也可以经适当组合,形成本领域技术人
当前第3页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1