报文缓存方法、装置及设备的制造方法

文档序号:10660757阅读:473来源:国知局
报文缓存方法、装置及设备的制造方法
【专利摘要】本发明适用于通信技术领域,提供了一种报文缓存方法、装置及设备,所述方法包括:根据报文流量的大小调整报文的缓冲通路,通过调整后的缓冲通路对输入的报文进行缓存,并记录所述报文的通路信息;获取所述通路信息,从所述通路信息对应的缓冲通路中读取报文,并输出所读取的报文。本发明实现了根据报文流量的拥塞情况动态调用不同缓冲容量的缓冲通路,且通过记录报文的通路信息保证了报文通过不同的缓冲通路传输时不会出现乱序;以及实现了缓冲存储器Buffer共享读写带宽,提高了缓冲存储器Buffer的利用效率,有利于防止报文在流量拥塞的情况下丢包的情况。
【专利说明】
报文缓存方法、装置及设备
技术领域
[0001]本发明适用于通信技术领域,提供了一种报文缓存方法、装置及设备。
【背景技术】
[0002]在网络处理器芯片中,报文流量具有波动性,在短时间内会出现流量突发,导致数据通道流量拥塞。为了保证报文不会因为流量拥塞而丢弃,需要对数据通道中的报文进行拥塞缓存。现有技术一般为芯片中的每个数据通道添加一个BuffeH即缓存存储器),Buffer的带宽大于或等于数据通道的输入带宽,并且Buffer是串接在数据通道中的,如果数据通道中报文的输入流量大于输出流量时,报文就会在Buffer中缓存;当数据通道中报文的输出流量大于输入流量时,Buffer中缓存的报文就会清空。
[0003]然而,用作Buffer的芯片内置RAM或者芯片外挂的DDR等存储单元的容量和接口带宽增长速率赶不上网络流量的带宽增长速率。当一个网络处理器中包含很多需要添加Buffer的数据通道时,采用现有的将Buffer串接在数据通道中组成缓冲通路的方式,所需要的Buffer数量和Buffer的容量将难以接受;且不管是否发生拥塞,报文都需要经过Buffer所在的缓冲通路,造成存储空间的浪费。

【发明内容】

[0004]鉴于此,本发明实施例提供一种报文缓存方法、装置及设备,以根据报文流量大小动态调用不同缓冲容量的缓冲通路,提高了 Buffer的利用效率。
[0005]第一方面,提供了一种报文缓存方法,所述方法包括:
[0006]根据报文流量的大小调整报文的缓冲通路,通过调整后的缓冲通路对输入的报文进行缓存,并记录所述报文的通路信息;
[0007]获取所述通路信息,从所述通路信息对应的缓冲通路中读取报文,并输出所读取的报文。
[0008]第二方面,提供了一种报文缓存装置,所述装置包括:
[0009]选通模块,用于根据报文流量的大小调整报文的缓冲通路,通过调整后的缓冲通路对输入的报文进行缓存;
[0010]记录模块,用于记录所述报文的通路信息;
[0011]输出模块,用于获取所述通路信息,从所述通路信息对应的缓冲通路中读取报文,并输出所读取的报文。
[0012]第三方面,提供了一种报文缓存设备,所述设备包括多个如上所述的报文缓存装置,以及物理存储设备和多通道控制单元;
[0013]所述报文缓存装置中的第一缓存通路中的第一缓冲存储器通过所述多通道控制单元与所述物理存储设备连接。
[0014]与现有技术相比,本发明实施例增加设置不同容量的缓冲通路用于传输报文,并根据报文流量的大小调整报文的缓冲通路,通过调整后的缓冲通路对输入的报文进行缓存,并记录每一个报文的通路信息;以及根据所述通路信息从所述通路信息对应的缓冲通路读取报文,并输出所读取的报文;实现了根据报文流量的拥塞情况动态调用不同缓冲容量的缓冲通路;且通过记录报文的通路信息保证了报文通过不同的缓冲通路传输时不会出现乱序。
【附图说明】
[0015]为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他附图。
[0016]图1是本发明实施例提供的报文缓存方法的实现流程图;
[0017]图2是本发明实施例提供的报文缓存方法中步骤SlOl的具体实现流程;
[0018]图3是本发明实施例提供的报文缓存装置的组成结构图;
[0019]图4是本发明实施例提供的报文缓存设备的组成结构图;
[0020]图5是本发明实施例提供的报文缓存设备的结构示意图。
【具体实施方式】
[0021]为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
[0022]本发明实施例增加设置不同容量的缓冲通路用于传输报文,并根据报文流量的大小调整报文的缓冲通路,通过调整后的缓冲通路对输入的报文进行缓存,并记录每一个报文的通路信息;以及根据所述通路信息从所述通路信息对应的缓冲通路读取报文,并输出所读取的报文;实现了根据报文流量的拥塞情况动态调用不同缓冲容量的缓冲通路;且通过记录报文的通路信息保证了报文通过不同的缓冲通路传输时不会出现乱序。本发明实施例还提供了相应的装置,以下分别进行详细的说明。
[0023]实施例一
[0024]图1示出了本发明实施例一提供的报文缓存方法的实现流程,为了便于说明,仅不出了与本发明相关的部分。
[0025]如图1所示,所述方法包括:
[0026]在步骤SlOl中,根据报文流量的大小调整报文的缓冲通路。
[0027]在本发明实施例中,所述缓冲通路包括第一缓冲通路和第二缓冲通路,所述第一缓冲通路中包括第一缓冲存储器和第二缓冲存储器,所述第二缓冲通路中包括第三缓冲存储器,所述第一缓冲存储器为Buffer,所述第二缓冲存储器和第三缓冲存储器为FIFO (先进先出的数据缓存器),所述第一缓冲存储器的缓冲容量均大于所述第二缓冲存储器和第三缓冲存储器的缓冲容量,所述第二缓冲存储器与所述第三缓冲存储器的缓冲容量相同。
[0028]图2示出了本发明实施例提供的报文缓存方法中步骤SlOl的具体实现流程。参阅图2,步骤SlOl中包括:
[0029]在步骤S201中,网络处理器初始化后,选通所述第二缓冲通路缓存报文。
[0030]在步骤S202中,在第二缓冲通路处于选通状态时,若检测到所述第三缓冲存储器中的报文流量大于第一阈值,则断开所述第二缓冲通路,接合所述第一缓冲通路。
[0031]在步骤S203中,在第一缓冲通路处于选通状态时,若检测到所述第一缓冲存储器中的报文流量小于第二阈值且所述第三缓冲存储器中不存在报文,则断开所述第一缓冲通路,接合所述第二缓冲通路。
[0032]其中,所述第一阈值小于第三缓冲存储器的缓冲容量且大于第三缓冲存储器的缓冲容量的二分之一;所述第二阈值为所述第三缓冲存储器的缓冲容量的二分之一。由于网络处理器初始化后,报文传输一般没有出现拥塞,默认选择第二缓冲通路,即报文不经过第一缓冲存储器Buffer的缓存,由于第二缓冲通路中的第三缓冲存储器的缓冲容量下,即报文直接传输过去。示例性地,当所述第三缓冲存储器的缓冲容量为最大可同时缓存64个报文时,所述第一阈值可以为60,所述第二阈值可以为32。在报文的传输过程中,当在第二缓冲通路中的报文个数大于60时,表明第二缓冲通路的缓冲容量可能不适用于传输当前的报文流量,则切换为缓冲容量更大的第一缓冲通路;当在第一缓冲通路中的报文个数小于32时,表明第一缓冲通路中的数据传输流畅,则切换为缓冲容量较小的第二缓冲通路;从而实现了根据报文的流量大小动态调用不同缓冲容量的缓冲通路,防止数据通道因为流量拥塞而丢包,也使得报文在传输流畅时不必经过缓冲容量大的缓冲通路,且设置作为切换标准的第一阈值和第二阈值,可以避免两条缓冲通路切换过于频繁而导致的数据通道报文输出效率低的问题。
[0033]在步骤S102中,通过调整后的缓冲通路对输入的报文进行缓存,并记录所述报文的通路信息。
[0034]在本发明实施例中,当调整报文的缓冲通路后,报文将通过调整后的缓冲通路进行缓存及传输,同时,设置所述报文的通路信息为处于选通状态的缓冲通路,记录所述报文的通路信息。优选地,本发明实施例中,所述通路信息的大小为Ibit (比特),当处于选通状态的缓冲通路为第一缓冲通路时,设置报文的通路信息为I;当处于选通状态的缓冲通路为第二缓冲通路时,设置报文的通路信息为O。
[0035]进一步地,每一个报文对应一个通路信息,由于第一缓冲通路的缓冲容量很大,对应的值为I的通路信息的数量也很大,本发明采用计数器来计算值为I的连续通路信息的个数。若所记录的通路信息中,值为I的连续通路信息的个数满足预设阈值且计数器的值为O时,则控制所述计数器开始计算值为I的连续通路信息的个数。所述计数器的值表示有多少个连续报文通过第一缓冲通路传输,值为O的通路信息仍通过FIFO存储。通过使用计数器计数的方式代替直接使用先进先出序列FIFO存储值为I的连续通路信息,能够大规模地降低所需要的存储容量。
[0036]在步骤S103中,获取所述通路信息,从所述通路信息对应的缓冲通路中读取报文,并输出所读取的报文。
[0037]在报文的输出端,依次地获取所记录的通路信息,获得所述通路信息对应的缓冲通路,从所述缓冲通路读取报文,以恢复报文输入时的顺序,并输出所读取的报文。
[0038]其中,当通路信息的值为O时,从第三缓冲存储器中读取报文;当通路信息的值为I时,从第二缓冲存储器中读取报文。
[0039]当通路信息的值为I且前一个通路信息的值为O时,即从第二缓冲通路切换到第一缓冲通路时,若第三缓冲存储器中存在报文,则先读取第三缓冲存储器中的报文,直至所述第二缓冲通路中的报文读取完后,再读取第二缓冲存储器中(即第一缓冲通路中)的报文;当通路信息的值为O且前一个通路信息的值为I时,即从第一缓冲通路切换到第二缓冲通路时,若第二缓冲存储器中存在报文,则先读取第二缓冲存储器中的报文直至所述第一缓冲通路中的报文读取完后,再读取第三缓冲存储器中(即第二缓冲通路中)的报文。
[0040]上述步骤S103根据所记录的通路信息的指示下实现,确保了缓冲通路切换过程中报文输出的顺序不会改变,与报文输入时的传输顺序一致,不会出现乱序的现象。
[0041]本发明实施例增加设置不同容量的缓冲通路用于传输报文,并根据报文流量的大小调整报文的缓冲通路,通过调整后的缓冲通路对输入的报文进行缓存,并记录每一个报文的通路信息;以及根据所述通路信息从所述通路信息对应的缓冲通路读取报文,并输出所读取的报文;实现了根据报文流量的拥塞情况大小动态调用不同缓冲容量的缓冲通路;且通过记录报文的通路信息保证了报文通过不同的缓冲通路传输时不会出现乱序。
[0042]实施例二
[0043]图3示出了本发明实施例二提供的报文缓存装置的组成结构,为了便于说明,仅不出了与本发明相关的部分。
[0044]如图3所示,所述报文缓存装置3包括:
[0045]选通模块31,用于根据报文流量的大小调整报文的缓冲通路,通过调整后的缓冲通路对输入的报文进行缓存。
[0046]记录模块32,用于记录所述报文的通路信息。
[0047]输出模块33,用于获取所述通路信息,从所述通路信息对应的缓冲通路中读取报文,并输出所读取的报文。
[0048]在本发明实施例中,报文从所述选通模块31进入,从所述输出模块33输出。所述选通模块31内设置有不同缓冲容量的缓冲通路,所述缓冲通路包括第一缓冲通路311和第二缓冲通路312 ;
[0049]所述第一缓冲通路311包括第一缓冲存储器和第二缓冲存储器,所述第二缓冲通路312包括第三缓冲存储器,所述第一缓冲存储器的缓冲容量均大于所述第二缓冲存储器和第三缓冲存储器的缓冲容量,所述第二缓冲存储器与所述第三缓冲存储器的缓冲容量相同。优选地,所述第一缓冲存储器为Buffer,所述第二缓冲存储器和第三缓冲存储器为FIFO (先进先出的数据缓存器)。
[0050]所述选通模块31具体用于:
[0051]网络处理器初始化后,选通所述第二缓冲通路缓存报文;
[0052]在第二缓冲通路处于选通状态时,若检测到所述第三缓冲存储器中的报文流量大于第一阈值,则断开所述第二缓冲通路,接合所述第一缓冲通路;
[0053]在第一缓冲通路处于选通状态时,若检测到所述第一缓冲存储器中的报文流量小于第二阈值且所述第三缓冲存储器中不存在报文,则断开所述第一缓冲通路,接合所述第二缓冲通路;
[0054]其中,所述第一阈值小于第三缓冲存储器的缓冲容量且大于第三缓冲存储器的缓冲容量的二分之一;所述第二阈值为所述第三缓冲存储器的缓冲容量的二分之一。从而实现了根据报文的流量大小动态调用不同缓冲容量的缓冲通路,防止数据通道因为流量拥塞而丢包,也使得报文在传输流畅时不必经过缓冲容量大的缓冲通路,且设置作为切换标准的第一阈值和第二阈值,可以避免两条缓冲通路切换过于频繁而导致的数据通道报文输出效率低的问题。
[0055]进一步地,所述记录模块32具体用于:
[0056]设置报文的通路信息为处于选通状态的缓冲通路,记录每一个报文的通路信息;
[0057]其中,所述通路信息的大小为I比特,当处于选通状态的缓冲通路为第一缓冲通路时,设置报文的通路信息为I ;当处于选通状态的缓冲通路为第二缓冲通路时,设置报文的通路信息为O ;
[0058]若所记录的通路信息中,值为I的连续通路信息的个数满足预设阈值且计数器的值为O时,则控制所述计数器开始计算值为I的连续通路信息的个数。
[0059]所述计数器的值表示有多少个连续报文通过第一缓冲通路传输,值为O的通路信息仍通过FIFO存储。通路信息使用最小的信息表示单位以及通过使用计数器计数的方式代替直接使用先进先出序列FIFO存储值为I的连续通路信息,能够大规模地降低所需要的存储容量。
[0060]进一步地,所述输出模块33具体用于:
[0061]当通路信息的值为O时,从所述第三缓冲存储器中读取报文;当通路信息的值为I时,从所述第二缓冲存储器中读取报文;
[0062]其中,当通路信息的值为I且前一个通路信息的值为O时,即从第二缓冲通路切换到第一缓冲通路时,读取所述第三缓冲存储器中的报文直至所述第二缓冲通路中的报文读取完后,再读取所述第二缓冲存储器中(即第一缓冲通路中)的报文;
[0063]当通路信息的值为O且前一个通路信息的值为I时,即从第一缓冲通路切换到第二缓冲通路时,读取所述第二缓冲存储器中的报文直至所述第一缓冲通路中的报文读取完后,再读取所述第三缓冲存储器中(即第二缓冲通路中)的报文。
[0064]上述输出模块33在所述记录模块31的记录下实现,确保了缓冲通路切换过程中报文输出的顺序不会改变,与报文输入时的传输顺序一致,不会出现乱序的现象。
[0065]本发明实施例增加设置不同容量的缓冲通路用于传输报文,并根据报文流量的大小调整报文的缓冲通路,通过调整后的缓冲通路对输入的报文进行缓存,并记录每一个报文的通路信息;以及根据所述通路信息从所述通路信息对应的缓冲通路读取报文,并输出所读取的报文;实现了根据报文流量的拥塞情况动态调用不同缓冲容量的缓冲通路;且通过记录报文的通路信息保证了报文通过不同的缓冲通路传输时不会出现乱序。
[0066]实施例三
[0067]图4示出了本发明实施例三提供的报文缓存设备的组成结构,为了便于说明,仅不出了与本发明相关的部分。
[0068]在本发明实施例中,所述设备包括多个如图3实施例中所述的报文缓存装置3,以及多通道控制单元2和物理存储设备I。
[0069]所述报文缓存装置3中的第一缓存通路31中的第一缓冲存储器通过所述多通道控制单元2与所述物理存储设备I连接。
[0070]进一步地,所述多通道控制单元包括调度器21和接口管理单元22。
[0071]在本发明实施例中,每一个报文缓存装置3中的第一缓冲存储器通过所述调度器21和所述管理接口单元22与所述物理存储设备I连接。每一个报文缓存装置3中的第一缓冲存储器Buffer为虚拟的Buffer,所述第一缓冲存储器Buffer没有分配固定的接口带宽和存储空间容量,而是每一个报文存储装置中的第一缓冲存储器共享同一物理存储设备的接口带宽和缓存空间。调度器21包括写入和读出方向上的数据通道,在写入方向上,接收不同报文缓存装置的第一缓冲存储器写入的报文,汇聚所接收到的报文,并为报文报上通道标识后输入到所述物理存储设备I ;在读出方向上,依次按顺序读出物理存储设备I中的报文,并根据通道标识将所述报文分发至对应的报文缓存装置中的第一缓冲存储器进行输出。所述通道标识表明所述报文通过哪个报文缓存装置写入的。
[0072]所述管理接口单元22接收调度器21的报文写入指令和报文读出指令,根据所述物理存储设备I的写入方向和读出方向上报文流量的大小,调整所述物理存储设备I的写入带宽和读出带宽。在本发明实施例中,所述管理接口单元22根据调度器21中写入方向上的数据通道中报文流量的大小,优先将物理存储设备I的接口带宽用作写带宽,剩余的物理存储设备带宽用作读带宽。示例性地,当调度器中写入方向上的报文流量小于物理存储设备的接口带宽的二分之一,则将小部分物理存储设备的接口带宽用作读带宽;当调度器中写入方向上的报文流量大于物理存储设备的接口带宽的二分之一,则压缩读带宽,将部分读带宽转换为写带宽,以保证足够的写带宽。
[0073]优选地,所述物理存储设备可以为双倍速率同步动态随机存储器DDR或者网络处理器内置的RAM。
[0074]本发明实施例结合多个报文缓存装置,且每一个报文缓存装置中的第一缓冲通路中Buffer并未分配固定的接口带宽和存储空间容量,而是根据需要在同一物理存储设备中申请一定的存储空间,通过多通道控制单元根据第一缓冲存储器所写入报文的流量大小动态调整物理存储设备的接口带宽,实现了缓冲存储器Buffer共享读写带宽,降低了缓冲存储器Buffer对物理存储设备接口带宽的要求,提高了缓冲存储器Buffer的利用效率;且在出现报文流量拥塞的情况下,通过将物理存储设备中的读带宽转换成写带宽,有利于防止丢包的情况。
[0075]参阅图5,本发明实施例提供的报文缓存设备的结构示意图。所述报文缓存设备包括图3实施例中所述的报文缓存装置3,以及物理存储设备1、多通道控制单元2。
[0076]对于所述报文缓存装置3,每一个报文缓存装置3中的选通模块31包括第一缓冲通路311、第二缓冲通路312、选通单元313,所述输出模块33包括合并单元331,所述第一缓冲通路311包括第一缓冲存储器3111和第二缓冲存储器3112,所述第一缓冲存储器3111的输入端与选通单元313连接,输出端与所述第二缓冲存储器3112的输入端连接,所述第二缓冲存储器3112的输出端与所述合并单元331连接。所述第二缓冲通路312包括第三缓冲存储器3121,所述第三缓冲存储器3121的输入端与所述选通单元313连接,输出端与所述合并单元331连接。其中,所述第一缓冲存储器3111为Buffer,且为虚拟Buffer,这里的虚拟是指所述第一缓冲存储器Buffer没有分配固定的缓存空间和缓存带宽,所述第一缓冲存储器Buffer的容量大,能够长时间地容忍流量拥塞导致的报文堆积。所述第二缓冲存储器3112和所述第三缓冲存储器3121为FIFO (—种先进先出的数据缓冲存储器),容量较小,仅用于缓存短时间突发导致的报文堆积。所述第二缓存存储器3112和第三缓冲存储器3121可以为规格相同的FIFO,即读写带宽和容量相同的缓冲存储器FIFO。本发明通过在所述第一缓冲存储器3111后接一个第二缓冲存储器3112,用于接收从第一缓冲存储器Buffer中预读取的报文,以便于合并模块331进行调度。
[0077]在本发明实施例中,网络处理器初始化后,报文传输一般没有出现拥塞,默认选择第二缓冲通路312。在第二缓冲通路312处于工作状态时,若所述选通单元313检测到所述第三缓冲存储器3121中的报文流量大于第一阈值,则断开第二缓冲通路312,接合第一缓冲通路311。在第一缓冲通路311处于工作状态时,若所述选通单元313检测到所述第一缓冲存储器3111中的报文流量小于第二阈值且所述第三缓冲存储器3121中不存在报文,则断开第一缓冲通路311,接合第二缓冲通路312。其中,所述第一阈值小于第三缓冲存储器的缓冲容量且大于第三缓冲存储器的缓冲容量的二分之一;所述第二阈值为所述第三缓冲存储器的缓冲容量的二分之一;从而实现了根据报文的流量大小动态调用不同缓冲容量的缓冲通路,防止数据通道因为流量拥塞而丢包,且可以避免两条缓冲通路切换过于频繁而导致的数据通道报文输出效率低的问题。
[0078]示例性地,若第三缓冲存储器可以缓存64个报文,所述第一阈值可以为60,所述第二阈值可以为32。在第二缓冲通路处于工作状态时,当所述第三缓冲存储器中包含的报文个数大于60时,则断开第二缓冲通路,接合第一缓冲通路,后续报文将从第一缓冲通路进行传输。当第一缓冲通路处于工作状态时,若在所述第一缓冲存储器中缓存的报文个数小于32且第三缓冲存储器所缓存的报文为空时,则断开第一缓冲通路,接合第二缓冲通路,后续报文将从所述第二缓冲通路进行传输。
[0079]进一步地,每一个报文均对应一个通路信息,所述通路信息用以记录所述报文是通过第一缓冲通路还是通过第二缓冲通路进行传输。在本发明中,使用I比特表示报文选择的缓冲通路,即通路信息的大小为lbit。当报文通过第一缓冲通路传输时,所述报文的通路信息为1,当报文通过第二缓冲通路传输时,所述报文的通路信息为O。作为本发明的一个示例,所述记录模块32包括:
[0080]第四缓冲存储器321、计数器322以及第五缓冲存储器323。
[0081]所述第四缓冲存储器321的输入端与所述选通单元313连接、第一输出端与所述第五缓冲存储器323的第一输入端连接、第二输出端与所述计数器322连接,用于从所述选通单元313中获取每一个报文的通路信息,将报文的通路信息传输至所述第五缓冲存储器323,以及在值为I的连续通路信息的个数满足预设阈值且计数器322的值为O时,控制所述计数器322开始计算值为I的连续通路信息的个数。
[0082]所述计数器322的输入端与所述第四缓冲存储器321的第二输出端连接、输出端与所述第五缓冲存储器323的第二输入端连接,用于计算值为I的连续通路信息的个数以及将值为I的通路信息传输至所述第五缓冲存储器323。
[0083]所述第五缓冲存储器323的输出端与所述合并单元331连接,用于将报文的通路信息传输给所述合并单元331。
[0084]作为本发明的一个示例,所述通路记录模块32中的第四缓冲存储器321和第五缓冲存储器323为位宽为I容量为最大可存储64个报文的FIFO,所述计数器322的计数范围足够大,比如0-1000,000, 000,根据第一缓冲通路311中第一缓冲存储器3111的缓冲容量决定。选通单元313根据报文的流量大小选通第一缓冲通路或者第二缓冲通路传输报文并将报文对应的通路信息输入到所述记录模块32,即输入到第四缓冲存储器321,然后按预设逻辑将所述报文的通路信息从所述第四缓冲存储器321中读出,输入到第五缓冲存储器323或者计数器322中。第四缓冲存储器321中读出的通路信息在初始化后默认输入到第五缓冲存储器323 ;当第四缓冲存储器321读出的通路信息中,值为I的连续通路信息的个数满足预设阈值,第四缓冲存储器321中没有更多的通路信息或者下一个通路信息的值仍为I且计数器322的值为O,则第四缓冲存储器321后续输出的通路信息不再直接输出到第五缓冲存储器323,而是每输出一个值为I的通路信息,控制计数器322的值加1,计数器322的值表示了接收到多少个值为I的通路信息,即有多少个连续报文通过第一缓冲通路传输。计数器322再根据第五缓冲存储器323中剩余容量的大小(或者第五缓冲存储器中包含的通道信息的数量),控制值为I的通路信息逐一传输到第五缓冲存储器,每传输一个通路信息,则计数值减I。本发明针对通过第一缓冲通路传输的报文的通路信息(第一缓冲通路的缓冲容量大,直接使用FIFO存储每个值为I的报文的通路信息,需要FIFO的容量非常大),采用计数器来计算值为I的通路信息的个数,能够大规模地降低FIFO的容量。进一步地,本发明还设置在值为I的连续通路信息的个数满足预设阈值且计数器的值为O时才进行计数,所述预设阈值可以为16,即传输的报文中持续16个报文通过第一缓冲通路进行传输才开始计数,能够有效地降低计数器启用和关闭过于频繁时对传输效率的影响。
[0085]在本发明实施例中,所述合并单元331与所述记录模块32的第五缓冲存储器323连接,用于接收第五缓冲存储器323传输过来的通路信息,读取所述通路信息所对应的缓冲通路输出的报文,以恢复报文的顺序,并输出所读取的报文。具体地,所述合并单元331用于:
[0086]当通路信息的值为O时,从所述第三缓冲存储器中读取报文;当通路信息的值为I时,从所述第二缓冲存储器中读取报文;
[0087]其中,当通路信息的值为I且前一个通路信息的值为O时,即从第二缓冲通路切换到第一缓冲通路时,读取所述第三缓冲存储器中的报文直至所述第二缓冲通路中的报文读取完后,再读取所述第二缓冲存储器中(即第一缓冲通路中)的报文;
[0088]当通路信息的值为O且前一个通路信息的值为I时,即从第一缓冲通路切换到第二缓冲通路时,读取所述第二缓冲存储器中的报文直至所述第一缓冲通路中的报文读取完后,再读取所述第三缓冲存储器中(即第二缓冲通路中)的报文。
[0089]可见,所述合并单元331在记录模块32的指示下对报文进行合并,确保了缓冲通路的切换过程中报文输出的顺序是正确的,不会出现乱序。
[0090]在本发明实施例中,所述多通道控制单元2还包括:调度器21、接口管理单元22 ;
[0091]所述调度器21的输入端和输出端均与每一个第一缓冲通路311的第一缓冲存储器3111连接,所述调度器21还与所述接口管理单元22连接,所述接口管理单元22与所述物理存储设备I连接;
[0092]所述调度器21在写入方向上接收不同报文缓存装置的第一缓冲存储器写入的报文并为所述报文添加通道标识,将报文存储值物理存储设备;以及在读出方向上将从物理存储设备读出的报文按照通道标识分发至所述通道标识对应的报文缓存装置。
[0093]所述管理接口单元22接收调度器21的报文写入指令和报文读出指令,接收根据所述物理存储设备的写入方向和读出方向上报文流量的大小,调整所述物理存储设备的写带宽和读带宽。
[0094]在本发明实施例中,所述多通道控制单元2可以接入多个报文缓存装置3中的第一缓冲存储器3111,所接入的第一缓冲存储器3111的数量取决于物理存储设备的接口读写总带宽和多个第一缓冲存储器3111读写带宽的总和:多个第一缓冲存储器3111读写带宽的总和小于物理存储设备I的读写带宽总和。
[0095]需要说明的是,在本发明实施例中,所述调度器21由写入和读出两个方向的数据通道组成,写入通道带宽等于所有接入的第一缓冲存储器3111的写带宽总和,读出通道带宽等于所有接入的第一缓冲存储器3111的读带宽总和。在写入方向上,调度器21的主要功能是将多个第一缓冲存储器3111的流量汇聚,并为每一个报文打上通道标识,输入到物理存储设备。其中,每一个报文缓存装置3的第一缓冲通路311对应一个标识,所述通路标识为所述报文经过的报文缓存装置的第一缓冲通路对应的标识。在读出方向上,调度器21根据每一个报文缓存装置输出方向的反压状态(即根据第二缓冲存储器中的报文个数)以及物理存储设备I的接口带宽状态,采用轮询的方式,从物理存储设备中读出报文,并按照报文的通路标识将所述报文分发到通路标识对应的报文缓存装置的第一缓冲存储器中,经第一缓冲存储器和第二缓冲存储器输出。
[0096]所述接口管理单元22与物理存储设备I对接,可以动态分配物理存储设备的读写带宽。在本发明实施例中,物理存储设备的总接口带宽小于调度器的总接口带宽,接口管理单元22根据调度器的写入方向上的通道流量大小,优先分配物理存储设备的接口带宽作为写入带宽,剩下的物理存储设备的接口带宽作为读出带宽。从而优先保证了写入方向上的带宽,防止丢包的情况。
[0097]需要说明的是,本发明实施例中所述的物理存储设备I为读写带宽可分配的存储单元,可以为网络处理器外置的存储芯片(如DDR、PLDRAM等),也可以为网络处理器内置的RAM ;优选为双倍速率同步动态随机存储器DDR或者内置RAM。
[0098]本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
[0099]所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
[0100]在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
[0101]所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
[0102]另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
[0103]所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
[0104]以上所述,仅为本发明的【具体实施方式】,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。
【主权项】
1.一种报文缓存方法,其特征在于,所述方法包括: 根据报文流量的大小调整报文的缓冲通路,通过调整后的缓冲通路对输入的报文进行缓存,并记录所述报文的通路信息; 获取所述通路信息,从所述通路信息对应的缓冲通路中读取报文,并输出所读取的报文。2.如权利要求1所述的报文缓存方法,其特征在于,所述缓冲通路包括第一缓冲通路和第二缓冲通路; 所述第一缓冲通路中包括第一缓冲存储器和第二缓冲存储器,所述第二缓冲通路中包括第三缓冲存储器; 所述第一缓冲存储器为Buffer,所述第二缓冲存储器和第三缓冲存储器为FIFO,所述第一缓冲存储器的缓冲容量均大于所述第二缓冲存储器和第三缓冲存储器的缓冲容量,所述第二缓冲存储器与所述第三缓冲存储器的缓冲容量相同。3.如权利要求2所述的报文缓存方法,其特征在于,所述根据报文流量的大小调整报文的缓冲通路包括: 在网络处理器初始化后,选通所述第二缓冲通路缓存报文; 在第二缓冲通路处于选通状态时,若检测到所述第三缓冲存储器中的报文流量大于第一阈值,则断开所述第二缓冲通路,接合所述第一缓冲通路; 在第一缓冲通路处于选通状态时,若检测到所述第一缓冲存储器中的报文流量小于第二阈值且所述第三缓冲存储器中不存在报文,则断开所述第一缓冲通路,接合所述第二缓冲通路。4.如权利要求3所述的缓存装置,其特征在于,所述第一阈值小于第三缓冲存储器的缓冲容量且大于第三缓冲存储器的缓冲容量的二分之一; 所述第二阈值为所述第三缓冲存储器的缓冲容量的二分之一。5.如权利要求3或4所述的报文缓存方法,其特征在于,所述记录所述报文的通路信息包括: 设置报文的通路信息为处于选通状态的缓冲通路,记录每一个报文的通路信息; 其中,所述通路信息的大小为lbit,当处于选通状态的缓冲通路为第一缓冲通路时,设置报文的通路信息为I ;当处于选通状态的缓冲通路为第二缓冲通路时,设置报文的通路信息为O。6.如权利要求5所述的报文缓存方法,其特征在于,所述记录每一个报文的通路信息还包括: 若所记录的通路信息中,值为I的连续通路信息的个数满足预设阈值且计数器的值为O时,控制所述计数器开始计算值为I的连续通路信息的个数。7.如权利要求5所述的报文缓存方法,其特征在于,所述从所述通路信息对应的缓冲通路中读取报文包括: 当通路信息的值为O时,从所述第三缓冲存储器中读取报文;当通路信息的值为I时,从所述第二缓冲存储器中读取报文。8.一种报文缓存装置,其特征在于,所述装置包括: 选通模块,用于根据报文流量的大小调整报文的缓冲通路,通过调整后的缓冲通路对输入的报文进行缓存; 记录模块,用于记录所述报文的通路信息; 输出模块,用于获取所述通路信息,从所述通路信息对应的缓冲通路中读取报文,并输出所读取的报文。9.如权利要求8所述的报文缓存装置,其特征在于,所述选通模块包括缓冲通路,所述缓冲通路包括第一缓冲通路和第二缓冲通路; 所述第一缓冲通路中包括第一缓冲存储器和第二缓冲存储器,所述第二缓冲通路中包括第三缓冲存储器; 所述第一缓冲存储器为Buffer,所述第二缓冲存储器和第三缓冲存储器为FIFO,所述第一缓冲存储器的缓冲容量均大于所述第二缓冲存储器和第三缓冲存储器的缓冲容量,所述第二缓冲存储器与所述第三缓冲存储器的缓冲容量相同。 所述选通模块具体用于: 在网络处理器初始化后,选通所述第二缓冲通路缓存报文; 在第二缓冲通路处于选通状态时,若检测到所述第三缓冲存储器中的报文流量大于第一阈值,则断开所述第二缓冲通路,接合所述第一缓冲通路; 在第一缓冲通路处于选通状态时,若检测到所述第一缓冲存储器中的报文流量小于第二阈值且所述第三缓冲存储器中不存在报文,则断开所述第一缓冲通路,接合所述第二缓冲通路; 所述第一阈值小于第三缓冲存储器的缓冲容量且大于第三缓冲存储器的缓冲容量的二分之一; 所述第二阈值为所述第三缓冲存储器的缓冲容量的二分之一。10.如权利要求9所述的报文缓存装置,其特征在于,所述记录模块具体用于: 设置报文的通路信息为处于选通状态的缓冲通路,记录每一个报文的通路信息; 其中,所述通路信息的大小为lbit,当处于选通状态的缓冲通路为第一缓冲通路时,设置报文的通路信息为I;当处于选通状态的缓冲通路为第二缓冲通路时,设置报文的通路信息为O ; 若所记录的通路信息中,值为I的连续通路信息的个数满足预设阈值且计数器的值为O时,控制所述计数器开始计算值为I的连续通路信息的个数。11.如权利要求10所述的报文缓存装置,其特征在于,所述输出模块具体用于: 当通路信息的值为O时,从第三缓冲存储器中读取报文;当通路信息的值为I时,从第二缓冲存储器中读取报文。12.一种报文缓存设备,其特征在于,所述设备包括多个如权利要求8至11任一项所述的报文缓存装置,以及物理存储设备和多通道控制单元; 所述报文缓存装置中的第一缓存通路中的第一缓冲存储器通过所述多通道控制单元与所述物理存储设备连接。13.如权利要求12所述的报文缓存设备,其特征在于,所述多通道控制单元包括调度器和接口管理单元; 所述报文缓存装置中的第一缓冲存储器通过所述调度器和所述管理接口单元与所述物理存储设备连接; 所述调度器接收不同报文缓存装置的第一缓冲存储器写入的报文并为所述报文添加通道标识;以及将从物理存储设备读出的报文按照通道标识分发至所述通道标识对应的报文缓存装置; 所述管理接口单元接收调度器的报文写入指令和报文读出指令,接收根据所述物理存储设备的写入方向和读出方向上报文流量的大小,调整所述物理存储设备的写带宽和读带宽。14.如权利要求13所述的报文缓存设备,其特征在于,所述物理存储设备为双倍速率同步动态随机存储器DDR或者网络处理器内置的RAM。
【文档编号】H04L12/861GK106027413SQ201510474348
【公开日】2016年10月12日
【申请日】2015年8月5日
【发明人】周毅华
【申请人】深圳市恒扬数据股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1