一种对协议处理流水线报文地址进行预处理的方法及装置的制造方法

文档序号:8945701阅读:867来源:国知局
一种对协议处理流水线报文地址进行预处理的方法及装置的制造方法
【技术领域】
[0001]本发明涉及计算机技术领域,特别是涉及一种对协议处理流水线报文地址进行预处理的方法及装置。
【背景技术】
[0002]在多路服务器内存一致性协议处理器中,为提高系统处理速度和吞吐率,对协议报文的处理通常采用流水线设计。而流水线结构往往会遇到需要流水线停顿的情况。这是由于同一条流水线中两个报文地址相同会导致错误的读写,所以流水线在探测到入口报文地址和当前正在流水线中处理的报文地址相同时会暂停报文送入,等待当前报文处理完成后再送入新的报文。这样的停顿会降低流水线的处理速率,减小流水线报文吞吐率。
[0003]为了尽可能减少流水线停顿发生,流水线设计中常用到数据转发的方法,即在不同的流水线阶段之间设置旁路分支,让某一阶段产生的数据能够跨越若干级,直接送到较早的流水线阶段。但转发设计仍然无法避免所有类型的流水线停顿,另一方面增加了设计的复杂度。对于多级流水线而言,数据转发设计是十分困难的。
[0004]因此,提供一种对进入流水线的报文序列进行预处理,使得进入流水线的报文序列的地址分布更加分散的方法及装置是非常有必要的。

【发明内容】

[0005]本发明的目的是提供一种对协议处理流水线报文地址进行预处理的方法及装置,以使进入流水线的报文序列的地址分布更加分散,有效降低流水线中出现同一地址报文的概率,从而减少流水线停顿,提升系统协议处理速度和报文吞吐率。
[0006]为解决上述技术问题,本发明提供一种对协议处理流水线报文地址进行预处理的方法,包括:
[0007]将待处理报文按照预设规则分为N组,以使相同地址的报文位于相同的分组中,所述N的值大于等于L的值,所述L为满足流水线连续工作的最小相同地址报文的间隔;
[0008]获取前L-1个正在流水线上处理的报文的地址信息,将其所属的地址分组作为第一地址分组;
[0009]将所述待处理报文中有效地址所属的第二地址分组与所述第一地址分组进行比较;
[0010]当所述第二地址分组中存在与所述第一地址分组不同的分组时,将所述不同的分组中预设优先级最高的分组确定为目标分组;当所述第二地址分组都包含在所述第一地址分组内时,将最靠近流水线后级的分组确定为所述目标分组;
[0011]从所述目标分组中选择待处理报文送入协议处理流水线。
[0012]可选地,所述从所述目标分组中选择待处理报文送入协议处理流水线包括:
[0013]当所述待处理报文为M种,所述M为大于I的正整数时,在M类所述待处理报文中选择一类送入协议处理流水线。
[0014]可选地,所述在M类所述待处理报文中选择一类送入协议处理流水线包括:
[0015]对M类所述待处理报文进行查询,直到查找到有效报文为止,将所述有效报文对应分组的报文送入协议处理流水线。
[0016]可选地,所述在M类所述待处理报文中选择一类送入协议处理流水线包括:
[0017]按预设顺序从M类报文中优先选择满足地址相异条件的分组,将所述分组的报文送入协议处理流水线。
[0018]可选地,所述将待处理报文按照预设规则分为N组包括:
[0019]将所述待处理报文的地址的低K位作为分路器的选通信号,将待处理报文分为N组,其中,所述K与所述N的值满足2K= No
[0020]本发明还提供了一种对协议处理流水线报文地址进行预处理的装置,包括:
[0021]分组模块,用于将待处理报文按照预设规则分为N组,以使相同地址的报文位于相同的分组中,所述N的值大于等于L的值,所述L为满足流水线连续工作的最小相同地址报文的间隔;
[0022]获取模块,用于获取前L-1个正在流水线上处理的报文的地址信息,将其所属的地址分组作为第一地址分组;
[0023]比较模块,用于将所述待处理报文中有效地址所属的第二地址分组与所述第一地址分组进行比较;
[0024]确定模块,用于当所述第二地址分组中存在与所述第一地址分组不同的分组时,将所述不同的分组中预设优先级最高的分组确定为目标分组;当所述第二地址分组都包含在所述第一地址分组内时,将最靠近流水线后级的分组确定为所述目标分组;
[0025]发送模块,用于从所述目标分组中选择待处理报文送入协议处理流水线。
[0026]可选地,所述发送模块用于从所述目标分组中选择待处理报文送入协议处理流水线包括:
[0027]所述发送模块具体用于当所述待处理报文为M种,所述M为大于I的正整数时,在M类所述待处理报文中选择一类送入协议处理流水线。
[0028]可选地,所述发送模块用于在M类所述待处理报文中选择一类送入协议处理流水线包括:
[0029]所述发送模块具体用于对M类所述待处理报文进行查询,直到查找到有效报文为止,将所述有效报文对应分组的报文送入协议处理流水线。
[0030]可选地,所述发送模块用于在M类所述待处理报文中选择一类送入协议处理流水线包括:
[0031]所述发送模块具体用于按预设顺序从M类报文中优先选择满足地址相异条件的分组,将所述分组的报文送入协议处理流水线。
[0032]可选地,所述分组模块用于将待处理报文按照预设规则分为N组包括:
[0033]所述分组模块具体用于将所述待处理报文的地址的低K位作为分路器的选通信号,将待处理报文分为N组,其中,所述K与所述N的值满足2Κ= No
[0034]本发明所提供的对协议处理流水线报文地址进行预处理的方法及装置,通过将待处理报文按照预设规则分为N组,以使相同地址的报文位于相同的分组中;根据前L-1个已经在流水线中的报文的第一地址分组情况,在第二地址分组中选取出最适合发送到流水线的一组。选取的原则是尽量不与前L-1个报文的地址分组相同。若当前有效报文地址组均包含在前L-1个报文的地址组内,则选择最靠近流水线后级的分组,从而使得出现同地址冲突流水线停顿周期数最少。
[0035]可见,本发明所提供的对协议处理流水线报文地址进行预处理的方法及装置,使得进入流水线的报文序列的地址分布更加分散,有效降低了流水线中出现同一地址报文的概率,从而减少了流水线的停顿,提升了系统协议处理速度和报文吞吐率。
【附图说明】
[0036]图1为本发明所提供的对协议处理流水线报文地址进行预处理的方法的一种【具体实施方式】的流程图;
[0037]图2为本发明所提供的对协议处理流水线报文地址进行预处理的方法的另一种【具体实施方式】的流程图;
[0038]图3为本发明所提供的对协议处理流水线报文地址进行预处理的结构示意图;
[0039]图4为本发明所提供的对协议处理流水线报文地址进行预处理的装置的一种【具体实施方式】的结构框图。
【具体实施方式】
[0040]为了使本技术领域的人员更好地理解本发明方案,下面结合附图和【具体实施方式】对本发明作进一步的详细说明。显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0041]本发明所提供的对协议处理流水线报文地址进行预处理的方法的一种【具体实施方式】的流程图如图1所示,该方法包括:
[0042]步骤SlOl:将待处理报文按照预设规则分为N组,以使相同地址的报文位于相同的分组中,所述N的值大于等于L的值,所述
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1