CN106027413A - 报文缓存方法、装置及设备 - Google Patents

报文缓存方法、装置及设备 Download PDF

Info

Publication number
CN106027413A
CN106027413A CN201510474348.9A CN201510474348A CN106027413A CN 106027413 A CN106027413 A CN 106027413A CN 201510474348 A CN201510474348 A CN 201510474348A CN 106027413 A CN106027413 A CN 106027413A
Authority
CN
China
Prior art keywords
message
path
buffering
buffer
buffer storage
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201510474348.9A
Other languages
English (en)
Other versions
CN106027413B (zh
Inventor
周毅华
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shenzhen Hengxin Data Ltd By Share Ltd
Original Assignee
Shenzhen Hengxin Data Ltd By Share Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Shenzhen Hengxin Data Ltd By Share Ltd filed Critical Shenzhen Hengxin Data Ltd By Share Ltd
Priority to CN201510474348.9A priority Critical patent/CN106027413B/zh
Publication of CN106027413A publication Critical patent/CN106027413A/zh
Application granted granted Critical
Publication of CN106027413B publication Critical patent/CN106027413B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明适用于通信技术领域,提供了一种报文缓存方法、装置及设备,所述方法包括:根据报文流量的大小调整报文的缓冲通路,通过调整后的缓冲通路对输入的报文进行缓存,并记录所述报文的通路信息;获取所述通路信息,从所述通路信息对应的缓冲通路中读取报文,并输出所读取的报文。本发明实现了根据报文流量的拥塞情况动态调用不同缓冲容量的缓冲通路,且通过记录报文的通路信息保证了报文通过不同的缓冲通路传输时不会出现乱序;以及实现了缓冲存储器Buffer共享读写带宽,提高了缓冲存储器Buffer的利用效率,有利于防止报文在流量拥塞的情况下丢包的情况。

Description

报文缓存方法、装置及设备
技术领域
本发明适用于通信技术领域,提供了一种报文缓存方法、装置及设备。
背景技术
在网络处理器芯片中,报文流量具有波动性,在短时间内会出现流量突发,导致数据通道流量拥塞。为了保证报文不会因为流量拥塞而丢弃,需要对数据通道中的报文进行拥塞缓存。现有技术一般为芯片中的每个数据通道添加一个Buffer(即缓存存储器),Buffer的带宽大于或等于数据通道的输入带宽,并且Buffer是串接在数据通道中的,如果数据通道中报文的输入流量大于输出流量时,报文就会在Buffer中缓存;当数据通道中报文的输出流量大于输入流量时,Buffer中缓存的报文就会清空。
然而,用作Buffer的芯片内置RAM或者芯片外挂的DDR等存储单元的容量和接口带宽增长速率赶不上网络流量的带宽增长速率。当一个网络处理器中包含很多需要添加Buffer的数据通道时,采用现有的将Buffer串接在数据通道中组成缓冲通路的方式,所需要的Buffer数量和Buffer的容量将难以接受;且不管是否发生拥塞,报文都需要经过Buffer所在的缓冲通路,造成存储空间的浪费。
发明内容
鉴于此,本发明实施例提供一种报文缓存方法、装置及设备,以根据报文流量大小动态调用不同缓冲容量的缓冲通路,提高了Buffer的利用效率。
第一方面,提供了一种报文缓存方法,所述方法包括:
根据报文流量的大小调整报文的缓冲通路,通过调整后的缓冲通路对输入的报文进行缓存,并记录所述报文的通路信息;
获取所述通路信息,从所述通路信息对应的缓冲通路中读取报文,并输出所读取的报文。
第二方面,提供了一种报文缓存装置,所述装置包括:
选通模块,用于根据报文流量的大小调整报文的缓冲通路,通过调整后的缓冲通路对输入的报文进行缓存;
记录模块,用于记录所述报文的通路信息;
输出模块,用于获取所述通路信息,从所述通路信息对应的缓冲通路中读取报文,并输出所读取的报文。
第三方面,提供了一种报文缓存设备,所述设备包括多个如上所述的报文缓存装置,以及物理存储设备和多通道控制单元;
所述报文缓存装置中的第一缓存通路中的第一缓冲存储器通过所述多通道控制单元与所述物理存储设备连接。
与现有技术相比,本发明实施例增加设置不同容量的缓冲通路用于传输报文,并根据报文流量的大小调整报文的缓冲通路,通过调整后的缓冲通路对输入的报文进行缓存,并记录每一个报文的通路信息;以及根据所述通路信息从所述通路信息对应的缓冲通路读取报文,并输出所读取的报文;实现了根据报文流量的拥塞情况动态调用不同缓冲容量的缓冲通路;且通过记录报文的通路信息保证了报文通过不同的缓冲通路传输时不会出现乱序。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他附图。
图1是本发明实施例提供的报文缓存方法的实现流程图;
图2是本发明实施例提供的报文缓存方法中步骤S101的具体实现流程;
图3是本发明实施例提供的报文缓存装置的组成结构图;
图4是本发明实施例提供的报文缓存设备的组成结构图;
图5是本发明实施例提供的报文缓存设备的结构示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
本发明实施例增加设置不同容量的缓冲通路用于传输报文,并根据报文流量的大小调整报文的缓冲通路,通过调整后的缓冲通路对输入的报文进行缓存,并记录每一个报文的通路信息;以及根据所述通路信息从所述通路信息对应的缓冲通路读取报文,并输出所读取的报文;实现了根据报文流量的拥塞情况动态调用不同缓冲容量的缓冲通路;且通过记录报文的通路信息保证了报文通过不同的缓冲通路传输时不会出现乱序。本发明实施例还提供了相应的装置,以下分别进行详细的说明。
实施例一
图1示出了本发明实施例一提供的报文缓存方法的实现流程,为了便于说明,仅示出了与本发明相关的部分。
如图1所示,所述方法包括:
在步骤S101中,根据报文流量的大小调整报文的缓冲通路。
在本发明实施例中,所述缓冲通路包括第一缓冲通路和第二缓冲通路,所述第一缓冲通路中包括第一缓冲存储器和第二缓冲存储器,所述第二缓冲通路中包括第三缓冲存储器,所述第一缓冲存储器为Buffer,所述第二缓冲存储器和第三缓冲存储器为FIFO(先进先出的数据缓存器),所述第一缓冲存储器的缓冲容量均大于所述第二缓冲存储器和第三缓冲存储器的缓冲容量,所述第二缓冲存储器与所述第三缓冲存储器的缓冲容量相同。
图2示出了本发明实施例提供的报文缓存方法中步骤S101的具体实现流程。参阅图2,步骤S101中包括:
在步骤S201中,网络处理器初始化后,选通所述第二缓冲通路缓存报文。
在步骤S202中,在第二缓冲通路处于选通状态时,若检测到所述第三缓冲存储器中的报文流量大于第一阈值,则断开所述第二缓冲通路,接合所述第一缓冲通路。
在步骤S203中,在第一缓冲通路处于选通状态时,若检测到所述第一缓冲存储器中的报文流量小于第二阈值且所述第三缓冲存储器中不存在报文,则断开所述第一缓冲通路,接合所述第二缓冲通路。
其中,所述第一阈值小于第三缓冲存储器的缓冲容量且大于第三缓冲存储器的缓冲容量的二分之一;所述第二阈值为所述第三缓冲存储器的缓冲容量的二分之一。由于网络处理器初始化后,报文传输一般没有出现拥塞,默认选择第二缓冲通路,即报文不经过第一缓冲存储器Buffer的缓存,由于第二缓冲通路中的第三缓冲存储器的缓冲容量下,即报文直接传输过去。示例性地,当所述第三缓冲存储器的缓冲容量为最大可同时缓存64个报文时,所述第一阈值可以为60,所述第二阈值可以为32。在报文的传输过程中,当在第二缓冲通路中的报文个数大于60时,表明第二缓冲通路的缓冲容量可能不适用于传输当前的报文流量,则切换为缓冲容量更大的第一缓冲通路;当在第一缓冲通路中的报文个数小于32时,表明第一缓冲通路中的数据传输流畅,则切换为缓冲容量较小的第二缓冲通路;从而实现了根据报文的流量大小动态调用不同缓冲容量的缓冲通路,防止数据通道因为流量拥塞而丢包,也使得报文在传输流畅时不必经过缓冲容量大的缓冲通路,且设置作为切换标准的第一阈值和第二阈值,可以避免两条缓冲通路切换过于频繁而导致的数据通道报文输出效率低的问题。
在步骤S102中,通过调整后的缓冲通路对输入的报文进行缓存,并记录所述报文的通路信息。
在本发明实施例中,当调整报文的缓冲通路后,报文将通过调整后的缓冲通路进行缓存及传输,同时,设置所述报文的通路信息为处于选通状态的缓冲通路,记录所述报文的通路信息。优选地,本发明实施例中,所述通路信息的大小为1bit(比特),当处于选通状态的缓冲通路为第一缓冲通路时,设置报文的通路信息为1;当处于选通状态的缓冲通路为第二缓冲通路时,设置报文的通路信息为0。
进一步地,每一个报文对应一个通路信息,由于第一缓冲通路的缓冲容量很大,对应的值为1的通路信息的数量也很大,本发明采用计数器来计算值为1的连续通路信息的个数。若所记录的通路信息中,值为1的连续通路信息的个数满足预设阈值且计数器的值为0时,则控制所述计数器开始计算值为1的连续通路信息的个数。所述计数器的值表示有多少个连续报文通过第一缓冲通路传输,值为0的通路信息仍通过FIFO存储。通过使用计数器计数的方式代替直接使用先进先出序列FIFO存储值为1的连续通路信息,能够大规模地降低所需要的存储容量。
在步骤S103中,获取所述通路信息,从所述通路信息对应的缓冲通路中读取报文,并输出所读取的报文。
在报文的输出端,依次地获取所记录的通路信息,获得所述通路信息对应的缓冲通路,从所述缓冲通路读取报文,以恢复报文输入时的顺序,并输出所读取的报文。
其中,当通路信息的值为0时,从第三缓冲存储器中读取报文;当通路信息的值为1时,从第二缓冲存储器中读取报文。
当通路信息的值为1且前一个通路信息的值为0时,即从第二缓冲通路切换到第一缓冲通路时,若第三缓冲存储器中存在报文,则先读取第三缓冲存储器中的报文,直至所述第二缓冲通路中的报文读取完后,再读取第二缓冲存储器中(即第一缓冲通路中)的报文;当通路信息的值为0且前一个通路信息的值为1时,即从第一缓冲通路切换到第二缓冲通路时,若第二缓冲存储器中存在报文,则先读取第二缓冲存储器中的报文直至所述第一缓冲通路中的报文读取完后,再读取第三缓冲存储器中(即第二缓冲通路中)的报文。
上述步骤S103根据所记录的通路信息的指示下实现,确保了缓冲通路切换过程中报文输出的顺序不会改变,与报文输入时的传输顺序一致,不会出现乱序的现象。
本发明实施例增加设置不同容量的缓冲通路用于传输报文,并根据报文流量的大小调整报文的缓冲通路,通过调整后的缓冲通路对输入的报文进行缓存,并记录每一个报文的通路信息;以及根据所述通路信息从所述通路信息对应的缓冲通路读取报文,并输出所读取的报文;实现了根据报文流量的拥塞情况大小动态调用不同缓冲容量的缓冲通路;且通过记录报文的通路信息保证了报文通过不同的缓冲通路传输时不会出现乱序。
实施例二
图3示出了本发明实施例二提供的报文缓存装置的组成结构,为了便于说明,仅示出了与本发明相关的部分。
如图3所示,所述报文缓存装置3包括:
选通模块31,用于根据报文流量的大小调整报文的缓冲通路,通过调整后的缓冲通路对输入的报文进行缓存。
记录模块32,用于记录所述报文的通路信息。
输出模块33,用于获取所述通路信息,从所述通路信息对应的缓冲通路中读取报文,并输出所读取的报文。
在本发明实施例中,报文从所述选通模块31进入,从所述输出模块33输出。所述选通模块31内设置有不同缓冲容量的缓冲通路,所述缓冲通路包括第一缓冲通路311和第二缓冲通路312;
所述第一缓冲通路311包括第一缓冲存储器和第二缓冲存储器,所述第二缓冲通路312包括第三缓冲存储器,所述第一缓冲存储器的缓冲容量均大于所述第二缓冲存储器和第三缓冲存储器的缓冲容量,所述第二缓冲存储器与所述第三缓冲存储器的缓冲容量相同。优选地,所述第一缓冲存储器为Buffer,所述第二缓冲存储器和第三缓冲存储器为FIFO(先进先出的数据缓存器)。
所述选通模块31具体用于:
网络处理器初始化后,选通所述第二缓冲通路缓存报文;
在第二缓冲通路处于选通状态时,若检测到所述第三缓冲存储器中的报文流量大于第一阈值,则断开所述第二缓冲通路,接合所述第一缓冲通路;
在第一缓冲通路处于选通状态时,若检测到所述第一缓冲存储器中的报文流量小于第二阈值且所述第三缓冲存储器中不存在报文,则断开所述第一缓冲通路,接合所述第二缓冲通路;
其中,所述第一阈值小于第三缓冲存储器的缓冲容量且大于第三缓冲存储器的缓冲容量的二分之一;所述第二阈值为所述第三缓冲存储器的缓冲容量的二分之一。从而实现了根据报文的流量大小动态调用不同缓冲容量的缓冲通路,防止数据通道因为流量拥塞而丢包,也使得报文在传输流畅时不必经过缓冲容量大的缓冲通路,且设置作为切换标准的第一阈值和第二阈值,可以避免两条缓冲通路切换过于频繁而导致的数据通道报文输出效率低的问题。
进一步地,所述记录模块32具体用于:
设置报文的通路信息为处于选通状态的缓冲通路,记录每一个报文的通路信息;
其中,所述通路信息的大小为1比特,当处于选通状态的缓冲通路为第一缓冲通路时,设置报文的通路信息为1;当处于选通状态的缓冲通路为第二缓冲通路时,设置报文的通路信息为0;
若所记录的通路信息中,值为1的连续通路信息的个数满足预设阈值且计数器的值为0时,则控制所述计数器开始计算值为1的连续通路信息的个数。
所述计数器的值表示有多少个连续报文通过第一缓冲通路传输,值为0的通路信息仍通过FIFO存储。通路信息使用最小的信息表示单位以及通过使用计数器计数的方式代替直接使用先进先出序列FIFO存储值为1的连续通路信息,能够大规模地降低所需要的存储容量。
进一步地,所述输出模块33具体用于:
当通路信息的值为0时,从所述第三缓冲存储器中读取报文;当通路信息的值为1时,从所述第二缓冲存储器中读取报文;
其中,当通路信息的值为1且前一个通路信息的值为0时,即从第二缓冲通路切换到第一缓冲通路时,读取所述第三缓冲存储器中的报文直至所述第二缓冲通路中的报文读取完后,再读取所述第二缓冲存储器中(即第一缓冲通路中)的报文;
当通路信息的值为0且前一个通路信息的值为1时,即从第一缓冲通路切换到第二缓冲通路时,读取所述第二缓冲存储器中的报文直至所述第一缓冲通路中的报文读取完后,再读取所述第三缓冲存储器中(即第二缓冲通路中)的报文。
上述输出模块33在所述记录模块31的记录下实现,确保了缓冲通路切换过程中报文输出的顺序不会改变,与报文输入时的传输顺序一致,不会出现乱序的现象。
本发明实施例增加设置不同容量的缓冲通路用于传输报文,并根据报文流量的大小调整报文的缓冲通路,通过调整后的缓冲通路对输入的报文进行缓存,并记录每一个报文的通路信息;以及根据所述通路信息从所述通路信息对应的缓冲通路读取报文,并输出所读取的报文;实现了根据报文流量的拥塞情况动态调用不同缓冲容量的缓冲通路;且通过记录报文的通路信息保证了报文通过不同的缓冲通路传输时不会出现乱序。
实施例三
图4示出了本发明实施例三提供的报文缓存设备的组成结构,为了便于说明,仅示出了与本发明相关的部分。
在本发明实施例中,所述设备包括多个如图3实施例中所述的报文缓存装置3,以及多通道控制单元2和物理存储设备1。
所述报文缓存装置3中的第一缓存通路31中的第一缓冲存储器通过所述多通道控制单元2与所述物理存储设备1连接。
进一步地,所述多通道控制单元包括调度器21和接口管理单元22。
在本发明实施例中,每一个报文缓存装置3中的第一缓冲存储器通过所述调度器21和所述管理接口单元22与所述物理存储设备1连接。每一个报文缓存装置3中的第一缓冲存储器Buffer为虚拟的Buffer,所述第一缓冲存储器Buffer没有分配固定的接口带宽和存储空间容量,而是每一个报文存储装置中的第一缓冲存储器共享同一物理存储设备的接口带宽和缓存空间。调度器21包括写入和读出方向上的数据通道,在写入方向上,接收不同报文缓存装置的第一缓冲存储器写入的报文,汇聚所接收到的报文,并为报文报上通道标识后输入到所述物理存储设备1;在读出方向上,依次按顺序读出物理存储设备1中的报文,并根据通道标识将所述报文分发至对应的报文缓存装置中的第一缓冲存储器进行输出。所述通道标识表明所述报文通过哪个报文缓存装置写入的。
所述管理接口单元22接收调度器21的报文写入指令和报文读出指令,根据所述物理存储设备1的写入方向和读出方向上报文流量的大小,调整所述物理存储设备1的写入带宽和读出带宽。在本发明实施例中,所述管理接口单元22根据调度器21中写入方向上的数据通道中报文流量的大小,优先将物理存储设备1的接口带宽用作写带宽,剩余的物理存储设备带宽用作读带宽。示例性地,当调度器中写入方向上的报文流量小于物理存储设备的接口带宽的二分之一,则将小部分物理存储设备的接口带宽用作读带宽;当调度器中写入方向上的报文流量大于物理存储设备的接口带宽的二分之一,则压缩读带宽,将部分读带宽转换为写带宽,以保证足够的写带宽。
优选地,所述物理存储设备可以为双倍速率同步动态随机存储器DDR或者网络处理器内置的RAM。
本发明实施例结合多个报文缓存装置,且每一个报文缓存装置中的第一缓冲通路中Buffer并未分配固定的接口带宽和存储空间容量,而是根据需要在同一物理存储设备中申请一定的存储空间,通过多通道控制单元根据第一缓冲存储器所写入报文的流量大小动态调整物理存储设备的接口带宽,实现了缓冲存储器Buffer共享读写带宽,降低了缓冲存储器Buffer对物理存储设备接口带宽的要求,提高了缓冲存储器Buffer的利用效率;且在出现报文流量拥塞的情况下,通过将物理存储设备中的读带宽转换成写带宽,有利于防止丢包的情况。
参阅图5,本发明实施例提供的报文缓存设备的结构示意图。所述报文缓存设备包括图3实施例中所述的报文缓存装置3,以及物理存储设备1、多通道控制单元2。
对于所述报文缓存装置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进行调度。
在本发明实施例中,网络处理器初始化后,报文传输一般没有出现拥塞,默认选择第二缓冲通路312。在第二缓冲通路312处于工作状态时,若所述选通单元313检测到所述第三缓冲存储器3121中的报文流量大于第一阈值,则断开第二缓冲通路312,接合第一缓冲通路311。在第一缓冲通路311处于工作状态时,若所述选通单元313检测到所述第一缓冲存储器3111中的报文流量小于第二阈值且所述第三缓冲存储器3121中不存在报文,则断开第一缓冲通路311,接合第二缓冲通路312。其中,所述第一阈值小于第三缓冲存储器的缓冲容量且大于第三缓冲存储器的缓冲容量的二分之一;所述第二阈值为所述第三缓冲存储器的缓冲容量的二分之一;从而实现了根据报文的流量大小动态调用不同缓冲容量的缓冲通路,防止数据通道因为流量拥塞而丢包,且可以避免两条缓冲通路切换过于频繁而导致的数据通道报文输出效率低的问题。
示例性地,若第三缓冲存储器可以缓存64个报文,所述第一阈值可以为60,所述第二阈值可以为32。在第二缓冲通路处于工作状态时,当所述第三缓冲存储器中包含的报文个数大于60时,则断开第二缓冲通路,接合第一缓冲通路,后续报文将从第一缓冲通路进行传输。当第一缓冲通路处于工作状态时,若在所述第一缓冲存储器中缓存的报文个数小于32且第三缓冲存储器所缓存的报文为空时,则断开第一缓冲通路,接合第二缓冲通路,后续报文将从所述第二缓冲通路进行传输。
进一步地,每一个报文均对应一个通路信息,所述通路信息用以记录所述报文是通过第一缓冲通路还是通过第二缓冲通路进行传输。在本发明中,使用1比特表示报文选择的缓冲通路,即通路信息的大小为1bit。当报文通过第一缓冲通路传输时,所述报文的通路信息为1,当报文通过第二缓冲通路传输时,所述报文的通路信息为0。作为本发明的一个示例,所述记录模块32包括:
第四缓冲存储器321、计数器322以及第五缓冲存储器323。
所述第四缓冲存储器321的输入端与所述选通单元313连接、第一输出端与所述第五缓冲存储器323的第一输入端连接、第二输出端与所述计数器322连接,用于从所述选通单元313中获取每一个报文的通路信息,将报文的通路信息传输至所述第五缓冲存储器323,以及在值为1的连续通路信息的个数满足预设阈值且计数器322的值为0时,控制所述计数器322开始计算值为1的连续通路信息的个数。
所述计数器322的输入端与所述第四缓冲存储器321的第二输出端连接、输出端与所述第五缓冲存储器323的第二输入端连接,用于计算值为1的连续通路信息的个数以及将值为1的通路信息传输至所述第五缓冲存储器323。
所述第五缓冲存储器323的输出端与所述合并单元331连接,用于将报文的通路信息传输给所述合并单元331。
作为本发明的一个示例,所述通路记录模块32中的第四缓冲存储器321和第五缓冲存储器323为位宽为1容量为最大可存储64个报文的FIFO,所述计数器322的计数范围足够大,比如0-1000,000,000,根据第一缓冲通路311中第一缓冲存储器3111的缓冲容量决定。选通单元313根据报文的流量大小选通第一缓冲通路或者第二缓冲通路传输报文并将报文对应的通路信息输入到所述记录模块32,即输入到第四缓冲存储器321,然后按预设逻辑将所述报文的通路信息从所述第四缓冲存储器321中读出,输入到第五缓冲存储器323或者计数器322中。第四缓冲存储器321中读出的通路信息在初始化后默认输入到第五缓冲存储器323;当第四缓冲存储器321读出的通路信息中,值为1的连续通路信息的个数满足预设阈值,第四缓冲存储器321中没有更多的通路信息或者下一个通路信息的值仍为1且计数器322的值为0,则第四缓冲存储器321后续输出的通路信息不再直接输出到第五缓冲存储器323,而是每输出一个值为1的通路信息,控制计数器322的值加1,计数器322的值表示了接收到多少个值为1的通路信息,即有多少个连续报文通过第一缓冲通路传输。计数器322再根据第五缓冲存储器323中剩余容量的大小(或者第五缓冲存储器中包含的通道信息的数量),控制值为1的通路信息逐一传输到第五缓冲存储器,每传输一个通路信息,则计数值减1。本发明针对通过第一缓冲通路传输的报文的通路信息(第一缓冲通路的缓冲容量大,直接使用FIFO存储每个值为1的报文的通路信息,需要FIFO的容量非常大),采用计数器来计算值为1的通路信息的个数,能够大规模地降低FIFO的容量。进一步地,本发明还设置在值为1的连续通路信息的个数满足预设阈值且计数器的值为0时才进行计数,所述预设阈值可以为16,即传输的报文中持续16个报文通过第一缓冲通路进行传输才开始计数,能够有效地降低计数器启用和关闭过于频繁时对传输效率的影响。
在本发明实施例中,所述合并单元331与所述记录模块32的第五缓冲存储器323连接,用于接收第五缓冲存储器323传输过来的通路信息,读取所述通路信息所对应的缓冲通路输出的报文,以恢复报文的顺序,并输出所读取的报文。具体地,所述合并单元331用于:
当通路信息的值为0时,从所述第三缓冲存储器中读取报文;当通路信息的值为1时,从所述第二缓冲存储器中读取报文;
其中,当通路信息的值为1且前一个通路信息的值为0时,即从第二缓冲通路切换到第一缓冲通路时,读取所述第三缓冲存储器中的报文直至所述第二缓冲通路中的报文读取完后,再读取所述第二缓冲存储器中(即第一缓冲通路中)的报文;
当通路信息的值为0且前一个通路信息的值为1时,即从第一缓冲通路切换到第二缓冲通路时,读取所述第二缓冲存储器中的报文直至所述第一缓冲通路中的报文读取完后,再读取所述第三缓冲存储器中(即第二缓冲通路中)的报文。
可见,所述合并单元331在记录模块32的指示下对报文进行合并,确保了缓冲通路的切换过程中报文输出的顺序是正确的,不会出现乱序。
在本发明实施例中,所述多通道控制单元2还包括:调度器21、接口管理单元22;
所述调度器21的输入端和输出端均与每一个第一缓冲通路311的第一缓冲存储器3111连接,所述调度器21还与所述接口管理单元22连接,所述接口管理单元22与所述物理存储设备1连接;
所述调度器21在写入方向上接收不同报文缓存装置的第一缓冲存储器写入的报文并为所述报文添加通道标识,将报文存储值物理存储设备;以及在读出方向上将从物理存储设备读出的报文按照通道标识分发至所述通道标识对应的报文缓存装置。
所述管理接口单元22接收调度器21的报文写入指令和报文读出指令,接收根据所述物理存储设备的写入方向和读出方向上报文流量的大小,调整所述物理存储设备的写带宽和读带宽。
在本发明实施例中,所述多通道控制单元2可以接入多个报文缓存装置3中的第一缓冲存储器3111,所接入的第一缓冲存储器3111的数量取决于物理存储设备的接口读写总带宽和多个第一缓冲存储器3111读写带宽的总和:多个第一缓冲存储器3111读写带宽的总和小于物理存储设备1的读写带宽总和。
需要说明的是,在本发明实施例中,所述调度器21由写入和读出两个方向的数据通道组成,写入通道带宽等于所有接入的第一缓冲存储器3111的写带宽总和,读出通道带宽等于所有接入的第一缓冲存储器3111的读带宽总和。在写入方向上,调度器21的主要功能是将多个第一缓冲存储器3111的流量汇聚,并为每一个报文打上通道标识,输入到物理存储设备。其中,每一个报文缓存装置3的第一缓冲通路311对应一个标识,所述通路标识为所述报文经过的报文缓存装置的第一缓冲通路对应的标识。在读出方向上,调度器21根据每一个报文缓存装置输出方向的反压状态(即根据第二缓冲存储器中的报文个数)以及物理存储设备1的接口带宽状态,采用轮询的方式,从物理存储设备中读出报文,并按照报文的通路标识将所述报文分发到通路标识对应的报文缓存装置的第一缓冲存储器中,经第一缓冲存储器和第二缓冲存储器输出。
所述接口管理单元22与物理存储设备1对接,可以动态分配物理存储设备的读写带宽。在本发明实施例中,物理存储设备的总接口带宽小于调度器的总接口带宽,接口管理单元22根据调度器的写入方向上的通道流量大小,优先分配物理存储设备的接口带宽作为写入带宽,剩下的物理存储设备的接口带宽作为读出带宽。从而优先保证了写入方向上的带宽,防止丢包的情况。
需要说明的是,本发明实施例中所述的物理存储设备1为读写带宽可分配的存储单元,可以为网络处理器外置的存储芯片(如DDR、PLDRAM等),也可以为网络处理器内置的RAM;优选为双倍速率同步动态随机存储器DDR或者内置RAM。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。

Claims (14)

1.一种报文缓存方法,其特征在于,所述方法包括:
根据报文流量的大小调整报文的缓冲通路,通过调整后的缓冲通路对输入的报文进行缓存,并记录所述报文的通路信息;
获取所述通路信息,从所述通路信息对应的缓冲通路中读取报文,并输出所读取的报文。
2.如权利要求1所述的报文缓存方法,其特征在于,所述缓冲通路包括第一缓冲通路和第二缓冲通路;
所述第一缓冲通路中包括第一缓冲存储器和第二缓冲存储器,所述第二缓冲通路中包括第三缓冲存储器;
所述第一缓冲存储器为Buffer,所述第二缓冲存储器和第三缓冲存储器为FIFO,所述第一缓冲存储器的缓冲容量均大于所述第二缓冲存储器和第三缓冲存储器的缓冲容量,所述第二缓冲存储器与所述第三缓冲存储器的缓冲容量相同。
3.如权利要求2所述的报文缓存方法,其特征在于,所述根据报文流量的大小调整报文的缓冲通路包括:
在网络处理器初始化后,选通所述第二缓冲通路缓存报文;
在第二缓冲通路处于选通状态时,若检测到所述第三缓冲存储器中的报文流量大于第一阈值,则断开所述第二缓冲通路,接合所述第一缓冲通路;
在第一缓冲通路处于选通状态时,若检测到所述第一缓冲存储器中的报文流量小于第二阈值且所述第三缓冲存储器中不存在报文,则断开所述第一缓冲通路,接合所述第二缓冲通路。
4.如权利要求3所述的缓存装置,其特征在于,所述第一阈值小于第三缓冲存储器的缓冲容量且大于第三缓冲存储器的缓冲容量的二分之一;
所述第二阈值为所述第三缓冲存储器的缓冲容量的二分之一。
5.如权利要求3或4所述的报文缓存方法,其特征在于,所述记录所述报文的通路信息包括:
设置报文的通路信息为处于选通状态的缓冲通路,记录每一个报文的通路信息;
其中,所述通路信息的大小为1bit,当处于选通状态的缓冲通路为第一缓冲通路时,设置报文的通路信息为1;当处于选通状态的缓冲通路为第二缓冲通路时,设置报文的通路信息为0。
6.如权利要求5所述的报文缓存方法,其特征在于,所述记录每一个报文的通路信息还包括:
若所记录的通路信息中,值为1的连续通路信息的个数满足预设阈值且计数器的值为0时,控制所述计数器开始计算值为1的连续通路信息的个数。
7.如权利要求5所述的报文缓存方法,其特征在于,所述从所述通路信息对应的缓冲通路中读取报文包括:
当通路信息的值为0时,从所述第三缓冲存储器中读取报文;当通路信息的值为1时,从所述第二缓冲存储器中读取报文。
8.一种报文缓存装置,其特征在于,所述装置包括:
选通模块,用于根据报文流量的大小调整报文的缓冲通路,通过调整后的缓冲通路对输入的报文进行缓存;
记录模块,用于记录所述报文的通路信息;
输出模块,用于获取所述通路信息,从所述通路信息对应的缓冲通路中读取报文,并输出所读取的报文。
9.如权利要求8所述的报文缓存装置,其特征在于,所述选通模块包括缓冲通路,所述缓冲通路包括第一缓冲通路和第二缓冲通路;
所述第一缓冲通路中包括第一缓冲存储器和第二缓冲存储器,所述第二缓冲通路中包括第三缓冲存储器;
所述第一缓冲存储器为Buffer,所述第二缓冲存储器和第三缓冲存储器为FIFO,所述第一缓冲存储器的缓冲容量均大于所述第二缓冲存储器和第三缓冲存储器的缓冲容量,所述第二缓冲存储器与所述第三缓冲存储器的缓冲容量相同。
所述选通模块具体用于:
在网络处理器初始化后,选通所述第二缓冲通路缓存报文;
在第二缓冲通路处于选通状态时,若检测到所述第三缓冲存储器中的报文流量大于第一阈值,则断开所述第二缓冲通路,接合所述第一缓冲通路;
在第一缓冲通路处于选通状态时,若检测到所述第一缓冲存储器中的报文流量小于第二阈值且所述第三缓冲存储器中不存在报文,则断开所述第一缓冲通路,接合所述第二缓冲通路;
所述第一阈值小于第三缓冲存储器的缓冲容量且大于第三缓冲存储器的缓冲容量的二分之一;
所述第二阈值为所述第三缓冲存储器的缓冲容量的二分之一。
10.如权利要求9所述的报文缓存装置,其特征在于,所述记录模块具体用于:
设置报文的通路信息为处于选通状态的缓冲通路,记录每一个报文的通路信息;
其中,所述通路信息的大小为1bit,当处于选通状态的缓冲通路为第一缓冲通路时,设置报文的通路信息为1;当处于选通状态的缓冲通路为第二缓冲通路时,设置报文的通路信息为0;
若所记录的通路信息中,值为1的连续通路信息的个数满足预设阈值且计数器的值为0时,控制所述计数器开始计算值为1的连续通路信息的个数。
11.如权利要求10所述的报文缓存装置,其特征在于,所述输出模块具体用于:
当通路信息的值为0时,从第三缓冲存储器中读取报文;当通路信息的值为1时,从第二缓冲存储器中读取报文。
12.一种报文缓存设备,其特征在于,所述设备包括多个如权利要求8至11任一项所述的报文缓存装置,以及物理存储设备和多通道控制单元;
所述报文缓存装置中的第一缓存通路中的第一缓冲存储器通过所述多通道控制单元与所述物理存储设备连接。
13.如权利要求12所述的报文缓存设备,其特征在于,所述多通道控制单元包括调度器和接口管理单元;
所述报文缓存装置中的第一缓冲存储器通过所述调度器和所述管理接口单元与所述物理存储设备连接;
所述调度器接收不同报文缓存装置的第一缓冲存储器写入的报文并为所述报文添加通道标识;以及将从物理存储设备读出的报文按照通道标识分发至所述通道标识对应的报文缓存装置;
所述管理接口单元接收调度器的报文写入指令和报文读出指令,接收根据所述物理存储设备的写入方向和读出方向上报文流量的大小,调整所述物理存储设备的写带宽和读带宽。
14.如权利要求13所述的报文缓存设备,其特征在于,所述物理存储设备为双倍速率同步动态随机存储器DDR或者网络处理器内置的RAM。
CN201510474348.9A 2015-08-05 2015-08-05 报文缓存方法、装置及设备 Active CN106027413B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201510474348.9A CN106027413B (zh) 2015-08-05 2015-08-05 报文缓存方法、装置及设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510474348.9A CN106027413B (zh) 2015-08-05 2015-08-05 报文缓存方法、装置及设备

Publications (2)

Publication Number Publication Date
CN106027413A true CN106027413A (zh) 2016-10-12
CN106027413B CN106027413B (zh) 2019-04-02

Family

ID=57082633

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510474348.9A Active CN106027413B (zh) 2015-08-05 2015-08-05 报文缓存方法、装置及设备

Country Status (1)

Country Link
CN (1) CN106027413B (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110096228A (zh) * 2019-03-29 2019-08-06 联想(北京)有限公司 数据存储方法、数据存储装置和数据存储系统
CN110944358A (zh) * 2018-09-25 2020-03-31 华为技术有限公司 数据传输方法和设备
CN111309678A (zh) * 2020-02-22 2020-06-19 呼和浩特市奥祥电力自动化有限公司 一种数据循环存储方法及网络报文记录分析装置

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6192028B1 (en) * 1997-02-14 2001-02-20 Advanced Micro Devices, Inc. Method and apparatus providing programmable thresholds for half-duplex flow control in a network switch
US6687254B1 (en) * 1998-11-10 2004-02-03 Alcatel Canada Inc. Flexible threshold based buffering system for use in digital communication devices
CN101291275A (zh) * 2008-06-02 2008-10-22 杭州华三通信技术有限公司 Spi4.2总线桥接实现方法及spi4.2总线桥接器件
CN101309194A (zh) * 2008-06-02 2008-11-19 杭州华三通信技术有限公司 Spi4.2总线桥接实现方法及spi4.2总线桥接器件
CN102439916A (zh) * 2011-07-27 2012-05-02 华为技术有限公司 Pci快速通道设备、链路能量管理方法及系统

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6192028B1 (en) * 1997-02-14 2001-02-20 Advanced Micro Devices, Inc. Method and apparatus providing programmable thresholds for half-duplex flow control in a network switch
US6687254B1 (en) * 1998-11-10 2004-02-03 Alcatel Canada Inc. Flexible threshold based buffering system for use in digital communication devices
CN101291275A (zh) * 2008-06-02 2008-10-22 杭州华三通信技术有限公司 Spi4.2总线桥接实现方法及spi4.2总线桥接器件
CN101309194A (zh) * 2008-06-02 2008-11-19 杭州华三通信技术有限公司 Spi4.2总线桥接实现方法及spi4.2总线桥接器件
CN102439916A (zh) * 2011-07-27 2012-05-02 华为技术有限公司 Pci快速通道设备、链路能量管理方法及系统

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110944358A (zh) * 2018-09-25 2020-03-31 华为技术有限公司 数据传输方法和设备
US11509597B2 (en) 2018-09-25 2022-11-22 Huawei Technologies Co., Ltd. Data transmission method and device
CN110096228A (zh) * 2019-03-29 2019-08-06 联想(北京)有限公司 数据存储方法、数据存储装置和数据存储系统
CN110096228B (zh) * 2019-03-29 2021-09-14 联想(北京)有限公司 数据存储方法、数据存储装置和数据存储系统
CN111309678A (zh) * 2020-02-22 2020-06-19 呼和浩特市奥祥电力自动化有限公司 一种数据循环存储方法及网络报文记录分析装置
CN111309678B (zh) * 2020-02-22 2023-01-03 呼和浩特市奥祥电力自动化有限公司 一种数据循环存储方法及网络报文记录分析装置

Also Published As

Publication number Publication date
CN106027413B (zh) 2019-04-02

Similar Documents

Publication Publication Date Title
US8225026B2 (en) Data packet access control apparatus and method thereof
US8346998B2 (en) System and method for transmitting data packets in a computer system having a memory hub architecture
US8400924B2 (en) Credit management when resource granularity is larger than credit granularity
US20060072598A1 (en) Variable size FIFO memory
US20030110303A1 (en) Method and apparatus for unscheduled flow control in packet form
US20070214291A1 (en) Elasticity buffer for streaming data
KR950022986A (ko) 영상축적 배송장치 및 영상축적 배송시스템
CN107783727B (zh) 一种内存设备的访问方法、装置和系统
US10419370B2 (en) Hierarchical packet buffer system
CN106027413A (zh) 报文缓存方法、装置及设备
JP2005503071A (ja) 共用メモリデータ交換
CN105335323B (zh) 一种数据突发的缓存装置和方法
JP2018520434A (ja) Usb2.0帯域幅予約のための方法およびシステム
US8717891B2 (en) Shaping apparatus and method
CN105488108A (zh) 一种多个视频文件高速并行存储的方法及装置
CN104409099A (zh) 基于FPGA的高速eMMC阵列控制器
CN103685062A (zh) 缓存管理方法及装置
CN108833200A (zh) 一种大数据文件自适应单向传输方法及装置
CN103838547B (zh) 一种队列的管理方法和装置
CN101789840B (zh) 一种全t交叉装置和方法
US11388115B2 (en) Circuit within switch and method for managing memory within switch
US20030223447A1 (en) Method and system to synchronize a multi-level memory
CN102571535A (zh) 一种数据延迟装置、方法及通信系统
US6876664B1 (en) Asynchronous data buffer and a method of use thereof
EP1624601B1 (en) Digital delay buffers and related methods

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
PE01 Entry into force of the registration of the contract for pledge of patent right

Denomination of invention: Message caching method, device and equipment

Effective date of registration: 20200826

Granted publication date: 20190402

Pledgee: Bank of Beijing Limited by Share Ltd. Shenzhen branch

Pledgor: Shenzhen Hengyang Data Co.,Ltd.

Registration number: Y2020980005382

PE01 Entry into force of the registration of the contract for pledge of patent right
PC01 Cancellation of the registration of the contract for pledge of patent right
PC01 Cancellation of the registration of the contract for pledge of patent right

Date of cancellation: 20210803

Granted publication date: 20190402

Pledgee: Bank of Beijing Limited by Share Ltd. Shenzhen branch

Pledgor: Shenzhen Hengyang Data Co.,Ltd.

Registration number: Y2020980005382

PE01 Entry into force of the registration of the contract for pledge of patent right
PE01 Entry into force of the registration of the contract for pledge of patent right

Denomination of invention: Message caching method, device and equipment

Effective date of registration: 20210816

Granted publication date: 20190402

Pledgee: Bank of Beijing Limited by Share Ltd. Shenzhen branch

Pledgor: Shenzhen Hengyang Data Co.,Ltd.

Registration number: Y2021440020082

PC01 Cancellation of the registration of the contract for pledge of patent right

Granted publication date: 20190402

Pledgee: Bank of Beijing Limited by Share Ltd. Shenzhen branch

Pledgor: Shenzhen Hengyang Data Co.,Ltd.

Registration number: Y2021440020082