降低报文转发延时的方法及系统的制作方法

文档序号:9846725阅读:739来源:国知局
降低报文转发延时的方法及系统的制作方法
【技术领域】
[0001]本发明涉及网络通信领域,尤其涉及一种降低报文转发延时的方法及系统。
【背景技术】
[0002]传输延时是网络芯片的关键参数之一,低延时是网络芯片设计的重要参考性能。在高密度网络芯片中,多通道的数据汇聚到数据接收模块并调度至芯片内部进行处理,最后将数据处理结果连同数据本身一起存储在数据存储模块中。
[0003]传统的处理流程如图1所示,数据接收模块外接多个数据通道组,通道组之间的控制、存储逻辑相互独立;每个数据通道组包含多个数据通道,数据通道的位宽为W,每个数据通道组使用一块位宽为nXW的I读I写的存储器缓存数据,通过数据拼接逻辑,将通道中原始η个宽度为W的串行数据拼接成一个宽度为nXW的数据,拼接后的数据可表示为:Datanxw={Datai,Data2,..-Datan}。
[0004]当某个通道中的数据位于报文的结尾或者拼满一个nXW的数据时,产生调度该数据的请求。待调度仲裁选中该数据时,从存储器中读出数据发送给数据存储模块。如果调度出来的数据位于报文起始位置,则需要将该数据额外发送给报文解析模块,待产生分析结果后,连同缓存在存储器中的数据一起写进下一级存储器等待进一步处理,上述数据处理过程中,由于因为报文解析延时很长,需要在数据存储模块的入口处先缓存数据。
[0005]在上述架构中,一个长度为nXW的报文从开始接收数据到最终写进数据存储模块的存储器需要的时间为:
T总延时=T数据汇聚+T数据接收模块内部延时+T报文解析模块内部延时+T数据存储模块内部延时;通过对上述架构的剖析,数据在现有架构中的转发延时较长。

【发明内容】

[0006]本发明的目的在于提供一种降低报文转发延时的的方法及系统。
[0007]为实现上述发明目的之一,本发明一实施方式提供了一种降低报文转发延时的方法,所述方法包括:
51、将多个报文分别分解为若干个位宽相同的数据段,每个报文串行通过多个数据通道中的一个数据通道传输;
52、接收来自于各个数据通道的数据,并将其存储至一级缓存器,所述一级缓存器的位宽为每个数据通道位宽的整数倍;
53、根据所述一级缓存器的当前存储状态以及所述数据携带的属性信息,对所述一级缓存器中的数据生成一级调度请求命令和/或生成一级解析请求命令;
所述数据携带的属性信息包括:数据为报头信息或数据为报尾信息;
54、若接收一级调度请求命令,则将当前所述一级缓存器中的全部数据转存至一级调度缓存器;
若接收一级解析请求命令,则对当前一级缓存器中的数据进行解析,并将解析结果存储至一级解析缓存器;
S5、将所述一级调度缓存器中存储的数据和所述一级解析缓存器中存储的数据的解析结果进行匹配,并根据每个数据的属性以及匹配结果决定是否当前数据进行二级调度。
[0008]作为本发明一实施方式的进一步改进,所述方法还包括:
配置一调度计数器;
所述调度计数器用于记录一级缓存器中待调度的数据的数量,所述一级缓存器中每增加一个待调度的数据,将所述调度计数器的数值加I;在产生一级调度请求命令后,将所述调度计数器的数值清零。
[0009]作为本发明一实施方式的进一步改进,所述步骤S3具体包括:
若当前数据存储至所述一级缓存器后,所述一级缓存器中存储的未调度数据的总数量等于系统预设调度阈值,则生成一级调度请求命令;
若当前数据存储至所述一级缓存器后,所述一级缓存器中存储的未调度数据的总数量小于系统预设调度阈值,则判断当前数据是否为报尾信息;
若是,生成一级调度请求命令;
若否,保持所述一级缓存器当前的存储状态。
[0010]作为本发明一实施方式的进一步改进,所述步骤S3具体包括:
Ml、当前数据存储至所述一级缓存器后,判断所述当前数据是否为报头信息;
若是,执行步骤M2 ;
若否,保持所述一级缓存器当前的存储状态;
M2、判断当前一级缓存器中存储的未调度数据的总数量是否小于系统预设解析阈值, 若是,进入步骤M3 ;
若否,进入步骤M4;
M3、判断当前数据是否为报文的最后一个数据,
若是,生成一级解析请求命令;
若否,保持所述一级缓存器当前的存储状态;
M4、判断当前一级缓存器中存储的未调度的数据的总数量是否等于系统预设解析阈值,
若是,生成一级解析请求命令;
若否,保持所述一级缓存器当前的存储状态。
[0011 ]作为本发明一实施方式的进一步改进,所述步骤S5还包括:
若存储到所述一级调度缓存器的数据为报头信息,则搜索所述一级解析缓存器中是否存在与所述一级调度缓存器中的当前数据相匹配的解析结果;
若是,则将当前数据和与其匹配的解析结果同时进行二级调度;
若否,保持所述一级调度缓存器和所述一级解析缓存器当前的存储状态;
若存储到所述一级调度缓存器的数据不是报头信息,则直接对一级调度缓存器中的数据进行二级调度;
若所述一级解析缓存器已存储报头信息的解析结果,则搜索所述一级调度缓存器,判断其是否存在与所述解析结果相匹配的报头信息;
若是,则将当前报头信息和与其匹配的解析结果同时进行二级调度; 若否,保持所述一级调度缓存器和所述一级解析缓存器当前的存储状态。
[0012]为实现上述发明目的之一,本发明一实施方式提供了一种降低报文转发延时的系统,所述系统包括:数据发送模块、数据接收模块、数据处理模块以及数据存储模块;
所述数据存储模块包括:一级缓存器、一级调度缓存器、一级解析缓存器;
所述数据发送模块用于:将多个报文分别分解为若干个位宽相同的数据段,每个报文串行通过多个数据通道中的一个数据通道传输;
所述数据接收模块用于:接收来自于各个数据通道的数据,并将其存储至一级缓存器,所述一级缓存器的位宽为每个数据通道位宽的整数倍;
根据所述一级缓存器的当前存储状态以及所述数据携带的属性信息,对所述一级缓存器中的数据生成一级调度请求命令和/或生成一级解析请求命令;
所述数据携带的属性信息包括:数据为报头信息或数据为报尾信息;
若接收一级调度请求命令,则将当前所述一级缓存器中的全部数据转存至一级调度缓存器;
若接收一级解析请求命令,则对当前一级缓存器中的数据进行解析,并将解析结果存储至一级解析缓存器;
将所述一级调度缓存器中存储的数据和所述一级解析缓存器中存储的数据的解析结果进行匹配,并根据每个数据的属性以及匹配结果决定是否当前数据进行二级调度。
[0013]作为本发明一实施方式的进一步改进,所述系统还包括:调度计数器;
所述调度计数器用于记录一级缓存器中待调度的数据的数量,所述一级缓存器中每增加一个待调度的数据,将所述调度计数器的数值加I;在产生一级调度请求命令后,将所述调度计数器的数值清零。
[0014]作为本发明一实施方式的进一步改进,所述数据处理模块还用于:
若当前数据存储至所述一级缓存器后,所述一级缓存器中存储的未调度数据的总数量等于系统预设调度阈值,则生成一级调度请求命令;
若当前数据存储至所述一级缓存器后,所述一级缓存器中存储的未调度数据的总数量小于系统预设调度阈值,则判断当前数据是否为报尾信息;
若是,生成一级调度请求命令;
若否,保持所述一级缓存器当前的存储状态。
[0015]作为本发明一实施方式的进一步改进,所述数据处理模块还用于:
当前数据存储至所述一级缓存器后,若所述当前数据为报头信息,则判断当前一级缓存器中存储的未调度数据的总数量是否小于系统预设解析阈值,
若是,继续判断当前数据是否为报文的最后一个数据,若为报文的最后一个数据,则生成一级解析请求命令,否则保持所述一级缓存器当前的存储状态;
若否,继续判断当前一级缓存器中存储的未调度的数据的总数量是否等于系统预设解析阈值,若等于系统预设解析阈值,则生成一级解析请求命令,否则保持所述一级缓存器当前的存储状态。
[0016]作为本发明一实施方式的进一步改进,所述数据处理模块还用于:
若存储到所述一级调度缓存器的数据为报头信息,则搜索所述一级解析缓存器中是否存在与所述一级调度缓存器中的当前数据相匹配的解析结果; 若是,则将当前数据和与其匹配的解析结果同时进行二级调度;
若否,保持所述一级调度缓存器和所述一级解析缓存器当前的存储状态;
若存储到所述一级调度缓存器的数据不是报头信息,则直接对一级调度缓存器中的数据进行二级调度;
若所述一级解析缓存器已存储报头信息的解析结果,则搜索所述一级调度缓存器,判断其是否存在与所述解析结果相匹配的报头信息;
若是,则将当前报头信息和与其匹配的解析结果同时进行二级调度;
若否,保持所述一级调度缓存器和所述
当前第1页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1