一种报文信息处理方法及装置的制造方法
【技术领域】
[0001]本发明涉及通信技术领域,特别涉及一种报文信息处理方法及装置。
【背景技术】
[0002]数据报文根据所属特征分成不同的流,这些不同的流称之为队列。现有技术中,在队列规模较少的情况下队列信息能够放在芯片内部处理,在队列规模较大时,内部信息缓存就不够用了,这时需要外部信息缓存来存储这些队列信息。
[0003]现有技术对报文信息进行处理的过程中,从向外部信息缓存发出读命令,到外部信息缓存返回报文信息,大概需要8个时钟周期。为避免出现,在前后为相同队列的报文信息时,上个报文信息没有来得及刷入到外部信息缓存中,该队列再次进行读取,导致取出的该队列的报文信息不是最新的,最终引起系统信息错误的问题,因此在等待上个报文信息处理完毕后,才能开始下个报文信息的操作。但是,在外部信息缓存访问时延较大的情况下,同时接口流量特大时,如果仍然在等待上个报文信息处理完毕后,才能开始下个报文信息的操作,会引起入口报文信息不能及时处理,导致流量无法达到线速的问题。
【发明内容】
[0004]本发明实施例提供了一种报文信息处理方法及装置,解决在大规模队列,高带宽情况下,如何使队列的报文信息处理能够线速的问题。
[0005]本发明实施例提供了一种报文信息处理方法,包括:接收报文后提取报文信息,按接收顺序将相同队列号的报文信息依次写入到第一内部存储空间的相邻节点;其中,每个节点存储一个报文信息,所述报文信息包括该报文的队列号和报文长度;按写入顺序依次从第一内部存储空间读取报文信息,将相同队列号的报文信息压缩成一个报文信息包存入第二内部存储空间;将第二内部存储空间中的报文信息存储到外部信息缓存。
[0006]本发明实施例还提供了一种报文信息处理装置,包括:接收单元,用于接收报文后提取报文信息,按接收顺序将相同队列号的报文信息依次写入到第一内部存储空间的相邻节点;其中,每个节点存储一个报文信息,所述报文信息包括该报文的队列号和报文长度;重组单元,用于按写入顺序依次从第一内部存储空间读取报文信息,将相同队列号的报文信息压缩成一个报文信息包存入第二内部存储空间;处理单元,用于将第二内部存储空间中的报文信息存储到外部信息缓存。
[0007]通过本发明所提供一种报文信息处理方法及装置,将相同队列号的报文信息依次写入第一内部存储空间的相邻节点,然后将所述相同队列号的报文信息压缩成一个报文信息包存入第二内部存储空间,将第二内部存储空间中的报文信息存储到外部信息缓存。如此,在外部信息缓存访问时延较大的情况下,同时接口流量特大时,队列的报文信息处理也能够达到线速。
【附图说明】
[0008]为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
[0009]图1为本发明实施例报文信息处理方法的流程示意图。
[0010]图2为本发明实施例报文信息处理装置的结构示意图。
[0011]图3为本发明实施例第一内部存储空间为包括多个节点的环时的结构示意图。
【具体实施方式】
[0012]为使本发明的目的、技术方案、及优点更加清楚明白,以下参照附图并举实施例,对本发明进一步详细说明。
[0013]由此,提出本发明,本发明实施例提供了一种报文信息处理方法,其流程示意图如图1所示,该方法包括:
[0014]步骤11、接收报文后提取报文信息,按接收顺序将相同队列号的报文信息依次写入到第一内部存储空间的相邻节点;其中,每个节点存储一个报文信息,所述报文信息包括该报文对应的队列号和报文长度。
[0015]本发明的第一内部存储空间可包括多个节点,每个节点可为一个寄存器。在具体实施例中,第一内部存储空间可以为包括多个节点的环,每个节点存储一个报文信息,读操作和写操作的位移方向为预定方向。
[0016]在本实施例中按接收顺序将相同队列号的报文信息依次写入到第一内部存储空间的相邻节点包括:以写操作节点作为查找起始节点,按预定方向的相反方向查找节点上所存储的报文信息直到读操作节点为止,将查找到的报文信息的队列号和当前的报文信息的队列号相比较;
[0017]如果查找到的报文信息的队列号和当前的报文信息的队列号一致,则按照预定方向对所查找到的报文信息的下一个节点至写操作节点上所存储的报文信息进行移位,将当前的报文信息写入所查找到的报文信息的下一个节点上,将写操作节点的下一个节点作为新的写操作节点。
[0018]如果查找到的报文信息的队列号和当前的报文信息的队列号不一致,将当前的报文信息写入写操作节点,将写操作节点的下一个节点作为新的写操作节点。
[0019]步骤12、按写入顺序依次从第一内部存储空间读取报文信息,并将读取的相同队列号的报文信息压缩成一个报文信息包存入第二内部存储空间。
[0020]本发明中,第二内部存储空间可以是FIFO,FIFO是一种先进先出存储器,用于将从第一内部存储空间中读取的报文信息存入FIFO,再从FIFO中读取报文信息,进行处理。
[0021]具体地,所述按写入顺序依次从第一内部存储空间读取报文信息,将相同队列号的报文信息压缩成一个报文信息包存入第二内部存储空间包括:
[0022]当第二内部存储空间处于非将空状态,依次读取报文信息;
[0023]当所读取的报文信息与之前读取的报文信息的队列号不同时,则将队列号相同的多个报文信息的报文长度进行累加,形成该队列号的报文信息包存入第二内部存储空间。
[0024]不同的FIFO其深度不同,设置的状态所对应的阈值也不同。在一个实施例中,假设FIFO的深度为16,即可存储16个报文,设置O为空,[1,5]为将空状态,[6,16]为非将空状态,[10,16]为将满状态。由此可知,FIFO处于非将空的上限阈值为16,下限阈值为6。
[0025]进一步地,在所述将队列号相同的多个报文信息的报文长度进行累加之前,判断队列号相同的报文信息是否达到预定数量,如果达到,则将预定数量个队列号相同的报文信息的报文长度进行累加,形成该队列号的一个报文信息包存入第二内部存储空间。
[0026]步骤13、将第二内部存储空间中的报文信息存储到外部信息缓存。
[0027]读取第二内部存储空间中的报文信息,将当前所读取的报文信息的队列号与上个报文信息的队列号进行比较;如果队列号相同,则等待上个队列号对应的报文信息存储到夕卜部信息缓存后,再将当前队列号的报文信息存储到外部信息缓存;否则将当前队列号的报文信息存储到外部信息缓存。
[0028]本步骤中的处理,就是对外部信息缓存进行读和写操作。具体包括向外部信息缓存发出读命令,接收外部信息缓存返回的读信息,其中读信息包括当前队列的报文数目,然后向外部信息缓存发出写命令,将当前队列的报文数目加I后回填到外部信息缓存中。
[0029]下面列举实施例对本发明进行详细说明。
[0030]根据芯片工作频率、报文长度、接口带宽,确定完成一个报文处理所需要的时钟周期,本发明实施例中在芯片工作频率为312.5MHZ,接口带宽lOOGbps,且报文为最短64字节长度的数据包时,要求每个报文信息的处理周期为2个时钟周期,才能确保流量线速处理。因此,本发明在接收单元和处理单元之间加入重组单元,将相同队列的报文信息压缩成一个新的报文信息,一方面使得处理单元读取报文信息的队列号全部都不相同,这样就不需要等待上个报文处理完毕才处理下个报文,仍然按照每2个时钟周期处理一个报文信息即可。另一方面,降低了出现相同队列的包频率,即使处理单元读取到相同队列的报文信息,只要压缩后的每个大包包括原来的4个报文信息,使得重组单元每8个时钟周期才将压缩后的大包存入到处理单元的FIFO中,包频率不小于外部信息缓存的时延,即使每个报文处理都等待上个报文处理完毕也不会影响流量线速。
[0031]图2为本发明实施例报文信息处理装置的结构示意图,包括接收单元201、重组单元202和处理单元203。其中重组单元202包括第一内部存储空间,第一内部存储空间为包括多个节点的环。处理单元203包括第二内部存储空间,第二内部存储空间为FIFO。重组单元202向环节点写入报文信息,并从环节点上读取报文信息压缩存入到处理单元的FIFO中。处理单元203从FIFO中读取报文信息对外部信息缓存进行读写操作。
[0032]下面对图2所示报文信息处理装置进行详细说明。
[