报文的保序方法、流量调度芯片及分布式存储系统的制作方法

文档序号:7981789阅读:254来源:国知局
报文的保序方法、流量调度芯片及分布式存储系统的制作方法
【专利摘要】本发明实施例提供一种报文的保序方法、流量调度芯片及分布式存储系统,属于数据传输【技术领域】,用于解决报文读写的一致性问题;该方法包括,当报文中的每一个信元写入缓存队列时,向描述符存储队列写入所述信元的信元描述符,当所述信元从缓存队列写入存储器时,将与所述存储器对应的计数装置进行加操作;当所述报文的所有信元均写入缓存队列时,向描述符存储队列写入报文的包描述符;当描述符存储队列队首元素是包描述符,且所有计数装置的计数值均大于或等于初始值时,读出包描述符,以便于根据该包描述符从对应的存储器中读取报文;当描述符存储队列的队首元素是信元描述符时,读出所述队首信元描述符,并将对应的计数装置进行减操作。
【专利说明】报文的保序方法、流量调度芯片及分布式存储系统
【技术领域】
[0001]本发明涉及通信【技术领域】,尤其涉及一种报文的保序方法、流量调度芯片及分布式存储系统。
【背景技术】
[0002]流量调度芯片系统中需要存储大量的报文,通常先将数据按整个报文进行存储。这些报文使用多片独立于芯片的存储器,如DRAM (Dynamic Random Access Memory,动态随机存取存储器),DDR(Double Data Rate,双倍速率同步动态随机存储器)等,进行分布式存储,然后根据某种调度方式,再将数据按一个个整报文进行读出,转发给下一节点或设备。
[0003]如图1所示,现有技术中,向DDR中写入报文时,通过切片构造模块把报文分割成信元(称为cell),在分布式算法的控制下将各个cell送往相应的DDR#缓存队列中,然后按照先入先出的规则被读出缓存队列,写入DDR中。对每一个报文,在切片构造模块会形成一个HKPacket Description,包描述符),出队的F1D信息被送往调度模块进行处理后出队,再进入重组模块中用于从DDR中读取cell,并对各个cell进行重组后输出报文。
[0004]在上述报文读写过程中,由于各个cell的写入和读取是相互独立的过程,有可能出现报文读写不一致的问题,即出现某个cell的读请求进入DDR#缓存队列,但该cell还未写入DDR的情况,这样读出的报文数据是错误的,会导致输出报文出错。

【发明内容】

[0005]本发明的实施例提供一种报文的保序方法、流量调度芯片及分布式存储系统,用以解决报文读写的一致性问题。
[0006]为达到上述目的,本发明的实施例采用如下技术方案:
[0007]第一方面,提供一种报文的保序方法,应用于具有多个存储器的分布式存储系统中,所述方法包括:
[0008]当一个报文中的每一个信元写入缓存队列时,向描述符存储队列写入所述信元的信元描述符,当所述信元从所述缓存队列写入存储器时,将与所述存储器对应的计数装置进行加操作;其中,所述信元描述符包含与存储所述信元的存储器一一对应的存储器编号,且各个存储器都设置有对应的缓存队列和对应的计数装置;
[0009]当所述报文的所有信元均写入缓存队列时,向描述符存储队列写入所述报文的包描述符;
[0010]当所述描述符存储队列的队首元素是包描述符,且所有计数装置的计数值均大于或等于初始值时,读出所述包描述符,以便于根据所述包描述符从对应的存储器中读取报文;其中,所述计数装置的初始值为零;
[0011]当所述描述符存储队列的队首元素是信元描述符时,读出所述队首信元描述符,并将与所述队首信元描述符中的存储器编号对应的计数装置进行减操作;
[0012]其中,所述描述符存储队列是用于存储所述信元描述符和所述包描述符的先入先出队列。
[0013]在根据第一方面的第一种可能的实现方式中,所述包描述符包含有报文的IP地址,优先级,报文长度,报文内起始信元所在的存储器的编号。[0014]在根据第一方面或第一方面的第一种可能的实现方式的第二种可能的实现方式中,所述当所述信元从所述缓存队列写入存储器时,将与所述存储器对应的计数装置进行加操作,包括:
[0015]当所述信元从所述缓存队列写入存储器时,向与所述存储器对应的计数装置发送加操作信息,以便于所述计数装置进行加操作。
[0016]在根据第一方面的第二种可能的实现方式的第三种可能实现方式中,所述加操作Ih息是脉冲号。
[0017]第二方面,提供一种流量调度芯片,应用于具有多个存储器的分布式存储系统中,包括由与所述多个存储器一一对应的多个缓存队列组成的缓存模块,以及切片构造模块和调度模块,还包括:
[0018]描述符处理模块、保序控制模块,以及与各个存储器一一对应的多个计数装置;
[0019]其中,所述切片构造模块用于将输入报文分割成多个信元,并将各个信元发送到所述缓存模块;
[0020]所述保序控制模块,用于当所述输入报文中的每一个信元写入所述缓存模块中的缓存队列时,向所述描述符处理模块写入所述信元的信元描述符,并当所述输入报文的所有信元均写入所述缓存模块中的缓存队列时,向所述描述符处理模块写入所述输入报文的包描述符;当所述描述符处理模块的队首元素是所述信元描述符时,从所述调度模块读出所述队首信元描述符;当所述描述符处理模块的队首元素是所述包描述符,且各个存储器对应的计数装置的数值均大于或等于初始值时,从所述描述符处理模块中读出所述包描述符,并发送给所述调度模块;其中,所述描述符处理模块是用于存储所述信元描述符和所述包描述符的先入先出队列;
[0021]所述调度模块用于,根据所述保序控制模块发送的包描述符,从对应的存储器中读取报文;
[0022]所述保序控制模块还用于,当所述输入报文的每一个信元从所述缓存模块中的缓存队列写入存储器时,将与所述存储器对应的计数装置进行加操作;当所述保序控制模块从所述描述符处理模块读出队首信元描述符时,将与所述队首信元描述符中的存储器编号对应的计数装置进行减操作;
[0023]其中,所述信元描述符包含与存储所述信元的存储器一一对应的存储器编号;所述计数装置的初始值为零。
[0024]在根据第二方面的第一种可能的实现方式中,所述缓存模块和所述保序控制模块之间设置有脉冲产生模块,用于当信元从所述缓存队列写入对应存储器时,向与所述存储器对应的计数装置发送加操作信息,以便于所述计数装置进行加操作。
[0025]在根据第二方面的第一种可能的实现方式的第二种可能的实现方式中,所述加操作?目息是脉冲号。
[0026]在根据第二方面或第二方面的任一种可能的实现方式的第三种可能的实现方式中,所述计数装置是计数器。[0027]第三方面,提供一种分布式存储系统,包括多个存储器,其特征在于,还包括上述第二方面或第二方面的任一可能的实现方式中所述的流量调度芯片。
[0028]本发明实施例提供的报文保序方法、流量调度芯片及分布式存储系统及装置,在信元写入缓存队列时,向描述符存储队列写入信元描述符或者包描述符。通过设置与各个存储器对应的计数装置,并根据信元写入存储器和信元描述符从描述符存储队列读出的情况对该存储器对应的计数装置进行加操作或减操作,通过所有计数装置的数值确定是否要读出描述符存储队列队首的包描述符,保证报文读写的一致性。具体的,在读出描述符存储队列队首的包描述符时,当所有计数装置的数值大于或等于初始值时,表明该包描述符之前写入描述符存储队列的所有信元描述符对应的信元均已全部写入存储器,此时,才允许读出用于在后续过程中从存储器中读取报文的包描述符,这样,就保证了读取报文时,所述报文的所有的信元均已写入对应的存储器,不会出现“尚未写入就被读出”的危险,即保证了报文读写的一致性。
【专利附图】

【附图说明】
[0029]为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0030]图1为现有技术中报文的读写过程示意图;
[0031]图2为本发明实施例提供的报文的保序方法的流程图;
[0032]图3为本发明实施例中报文读写过程示意图;
[0033]图4为本发明实施例中Ta时刻报文的读写状态;
[0034]图5为本发明实施例中t0?t2时刻报文的读写状态;
[0035]图6为本发明实施例中t3?t4时刻报文的读写状态;
[0036]图7为本发明实施例提供的流量调度芯片的结构示意图。
【具体实施方式】
[0037]下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0038]本发明实施例提供的报文的保序方法,应用于具有多个存储器的分布式存储系统中,如图2所示,该方法包括:
[0039]201、当一个报文中的每一个信元写入缓存队列时,向描述符存储队列写入所述信元的信元描述符,当所述信元从所述缓存队列写入存储器时,将与所述存储器对应的计数装置进行加操作。
[0040]其中,所述描述符存储队列是用于存储(写入和读出)所述信元描述符(CellDescriptor,⑶)和所述包描述符(Packet Description, PD)的先入先出队列。所述信元描述符包含与存储所述信兀的存储器 对应的存储器编号,且各个存储器都设置有对应的缓存队列和对应的计数装置。
[0041]202、当所述报文的所有信元均写入缓存队列时,向描述符存储队列写入所述报文的包描述符。
[0042]其中,该包描述符包含有如该报文的IP地址,优先级,报文长度,报文内起始信元所在的存储器的编号等用于描述整个报文的信息。
[0043]203、当所述描述符存储队列的队首元素是包描述符,且所有计数装置的计数值均大于或等于初始值时,读出所述包描述符,以便于根据所述包描述符从对应的存储器中读取报文。
[0044]其中,所述计数装置的初始值为零。
[0045]204、当所述描述符存储队列的队首元素是信元描述符时,读出所述队首信元描述符,并将与所述队首信元描述符中的存储器编号对应的计数装置进行减操作。
[0046]本发明实施例提供的报文保序方法,在信元写入缓存队列时,向描述符存储队列写入信元描述符或者包描述符。通过设置与各个存储器对应的计数装置,并根据信元写入存储器和信元描述符从描述符存储队列读出的情况对该存储器对应的计数装置进行加操作或减操作,通过所有计数装置的数值确定是否要读出描述符存储队列队首的包描述符,保证报文读写的一致性。具体的,在读出描述符存储队列队首的包描述符时,当所有计数装置的数值大于或等于初始值时,表明该包描述符之前写入的所有信元描述符对应的信元均已全部写入存储器,此时,才允许读出用于在后续过程中从存储器中读取报文的包描述符,这样,就保证了读取报文时,所述报文的所有的信元均已写入对应的存储器,不会出现“尚未写入就被读出”的危险,即保证了报文读写的一致性。
[0047]下面结合图2?图6对本发明实施例提供的报文保序方法的具体过程进行详细描述。
[0048]本发明实施例提供的报文的保序方法,应用于具有多个存储器的分布式存储系统中,例如,可以应用于包括流量管理调度芯片以及与该芯片相连的多个相互独立的存储器(如DDR,DRAM等)的分布式存储系统。其中,流量管理调度芯片中包括由与所述多个存储器一一对应的多个缓存队列组成的缓存模块,以及切片构造模块、调度模块和重组模块。各个缓存队列的深度可以不同。示例性的,如图3所示,流量管理调度芯片中包括由六个缓存队列组成的缓存模块2,以及切片构造模块3、调度模块4和重组模块5 ;在切片构造模块3和调度模块4之间设置有描述符处理模块8和保序控制模块9,其中,描述符处理模块8具体可以是用于写入和读出信元描述符和包描述符的先入先出队列(以下各个步骤中将其称为描述符存储队列);在缓存模块2和保序控制模块9之间设置有脉冲产生模块7。其中,六个缓存队列(DDR1#缓存队列?DDR6#缓存队列)分别与独立于芯片的六个存储器I (DDR1# ?DDR6#)相连。
[0049]在输入报文后,切片构造模块3把报文分割成信元(计为cell),并在分布式算法的控制下将各个cell送往对应的缓存队列。示例性的,图3中,在输入报文Packetl#、Packet2#和Packet3#后,切片构造模块3将Packetl#切割成Pl-1和P1-2两个cell,并在分布式流量算法的控制下将Pl-1送往DDR1#对应的缓存队列,将P1-2送往DDR2#对应的缓存队列。将Packet2#切割成P2_1,P2_2和P2-3分别送往DDR3#,DDR4#和DDR5#对应的缓存队列。将Packet3#切割成P3-1和P3-2送往DDR6#和DDR1#对应的缓存队列。[0050]在上述步骤201中,当一个报文中的每一个cell写入对应缓存队列时,向描述符存储队列写入该cell的信元描述符(Cell Descriptor,⑶);当所述信元从所述缓存队列写入存储器时,将与所述存储器对应的计数装置进行加操作。其中,每个cell的CD中包含与存储该cell的存储器一一对应的DDR#编号,且各个存储器都设置有对应的缓存队列和对应的计数装置。
[0051]在上述步骤202中,当整个报文的所有cell都写入对应缓存队列时,向描述符存储队列写入该报文的包描述符(Packet Description, PD)。其中,包描述符包含有如该报文的IP地址,优先级,该报文的长度,该报文起始cell所在的存储器的编号等用于描述包的信息。
[0052]如图4所示,在Ta时刻,三个报文Packetl#、Packet2#和Packet3#的所有cell都写入对应缓存队列,则三个报文的CD和ro都写入描述符存储队列8中。其中,每个报文的所有⑶都写入后,才写入该报文的H)。
[0053]在从描述符存储队列中读出信元描述符或包描述符时,首先要查看描述符存储队列的队首元素。
[0054]若描述符存储队列的队首元素是包描述符,则执行上述步骤203,查看所有计数装置的计数值,只有当各个计数装置的计数值均大于或等于初始值时,读出所述包描述符,以便于根据所述包描述符从对应的存储器中读取报文。
[0055]若描述符存储队列的队首元素是信元描述符,则执行上述步骤204,读出所述队首信元描述符,并将与所述队首信元描述符中的存储器编号对应的计数装置进行减操作。
[0056]示例性的,如图3,在保序控制模块9中设置有与各个存储器一一对应的计数装置。其中,该计数装置可以是计数器。图4中的保序控制模块9中设置有六个计数器(CntI?Cnt 6),分别对应图3中流量管理调度芯片外的六个存储器(DDR1#?DDR6#)。各个计数器的初始值设置为O。图3中,在缓存模块2和保序控制模块9之间设置有脉冲产生模块7。当任意一个cell从缓存队列写入存储器时,脉冲产生模块7向与该存储器对应的计数器发送一个脉冲信号WrEnd,计数器接收到脉冲信号后进行加操作。当从信元描述符中读出队首信元描述符时,将与所述队首信元描述符中的存储器编号对应的计数装置进行减操作。
[0057]—般情况下,各个cell写入缓存队列和脉冲产生模块7向对应的计数器发送脉冲信号的过程是同时独立进行的。为了简单、直观的说明本发明实施例提供的报文读取的方法,假设在所有cell都写入缓存队列之前,没有任何一个DDR的脉冲信号返回给对应的计数器。图4中显示了 Ta时刻,三个报文的所有cell都写入对应的缓存队列,三个报文的CD和H)都写入描述符存储队列8中。各个计数器还未发生变化,即各个计数器的值均为初始值O的情况。
[0058]如图5所示,在t0时亥lj,由于描述符存储队列8的队首元素是CD(Pl-1)和CD(Pl-2)两个信元描述符,则保序控制模块9直接读出这两个信元描述符,并将与这两个信元描述符对应的计数器Cnt_l和Cnt_2进行减法操作。此时,Cnt_l和Cnt_2的数值为-1,计数器Cnt_l?Cnt_6的数值变成{_1,_1,0,0,0,0}。
[0059]如图5所示,在tl时亥IJ,脉冲产生模块7返回了存储器DDR6#(P3-1)和DDR3#(P2-1)对应的两个脉冲信号,表明P3-1和P2-1两个cell已完全写入存储器DDR6#和DDR3#中,则对应的计数器Cnt_3和Cnt_6进行加法操作,Cnt_3和Cnt_6的数值变为1,计数器Cnt_l?Cnt_6的数值变成{_1,_1,1,0,0,1}。
[0060]在t2时刻,脉冲产生模块7返回了存储器DDR1# (Pl-1)和DDR5#(P2_3)对应的两个脉冲信号,则对应的计数器Cnt_l和Cnt_5进行加法操作,Cnt_l和Cnt_5的数值变为1,计数器Cnt_l?Cnt_6的数值变成{0,_1,1,0,1,1}。此时,虽然描述符存储队列8的队首元素是包描述符P1#PD,但计数器Cnt_l?Cnt_6的数值还没有达到全部大于等于初始值O的情况,所以包描述符Pi#ro不能从描述符存储队列8中读出。
[0061]如图6所示,在t3时刻,脉冲产生模块7返回了存储器DDR2# (P1-2)和DDR4# (P2-2)对应的两个脉冲信号,则对应的计数器Cnt_2和Cnt_4进行加法操作,计数器Cnt_l?Cnt_6的数值变成{0,0,1,1,1,1}。此时,所有的计数器Cnt_l?Cnt_6的数值都大于等于初始值0,表明报文Packetl#的所有cell均已写入对应的DDR中,于是描述符存储队列8中的包描述符PliffD被读出,送往调度模块4。
[0062]此后,描述符存储队列8中的信元描述符⑶(P2-1),⑶(P2-2)和⑶(P2_3)被读出,并对计数器Cnt_3,Cnt_4和Cnt_5进行减法操作。Cnt_l?Cnt_6变成了 {O,O,O,O,O,1}。此时,所有的计数器Cnt_l?Cnt_6的数值都大于等于初始值0,表明报文Packet2#的所有cell均已写入对应的DDR中,于是描述符存储队列8中的包描述符Ρ2#Η)被读出,送往调度模块4。
[0063]此后,描述符存储队列8中的信元描述符⑶(Ρ3-1)和⑶(Ρ3-2)被读出,并对计数器 Cnt_6 和 Cnt_l 进行减法操作。Cnt_l ?Cnt_6 变成了 {-1,0,0,0,0,0}。
[0064]在t4时刻,脉冲产生模块7返回了存储器DDR1# (P3_2)对应的脉冲信号,则对应计数器Cnt_l进行加法操作,计数器Cnt_l?Cnt_6的数值变成{0,0,0,0,0,0}。此时,所有的计数器Cnt_l?Cnt_6的数值都等于初始值0,表明报文Packet3#的所有cell均已写入对应的DDR中,于是描述符存储队列8中的包描述符Ρ3#Η)被读出,送往调度模块4。
[0065]至此,三个Packet均在其所有cell被写入对应DDR之后,被送到调度模块4,此后,包描述符进入调度模块4进行控制平面的处理后出队,再从存储器中读取cell,完成报文的读取。
[0066]本发明实施例还提供一种流量调度芯片,应用于具有多个存储器的分布式存储系统中,如图7所示,该流量调度芯片70包括由与多个存储器71 一一对应的多个缓存队列721组成的缓存模块72,以及切片构造模块73和调度模块74,还包括:
[0067]描述符处理模块75、保序控制模块76、以及与各个存储器一一对应的多个计数装置761,其中,计数装置761可以如图7中设置在保序控制模块76中,也可以独立于保序控制模块76单独设置。各个计数装置761的初始值为零;可选的,计数装置761可以是计数器。
[0068]其中,切片构造模块73用于将输入报文分割成多个信元,并将各个信元发送到缓存模块72中对应的缓存队列721 ;
[0069]保序控制模块76,用于当所述输入报文中的每一个信元写入缓存模块72中对应的缓存队列721时,向描述符处理模块75写入所述信元的信元描述符,并当所述输入报文的所有信元均写入缓存模块2中对应的缓存队列721时,向描述符处理模块75写入所述输入报文的包描述符;当描述符处理模块75的队首元素是所述信元描述符时,从调度模块74读出所述队首信元描述符;当描述符处理模块75的队首元素是所述包描述符,且各个存储器71对应的计数装置761的数值均大于或等于初始值时,从描述符处理模块75中读出所述包描述符,并发送给所述调度模块74 ;其中,描述符处理模块75是用于存储(写入和读出)所述信元描述符和所述包描述符的先入先出队列。示例性的,描述符处理模块75可以是先入先出的描述符存储队列。
[0070]调度模块74用于,根据保序控制模块9发送的包描述符,从对应的存储器71中读取报文;
[0071]保序控制模块76还用于,当所述输入报文的每一个信元从缓存模块72中的缓存队列721写入存储器71时,将与所述存储器71对应的计数装置761进行加操作;当保序控制模块76从描述符处理模块75读出队首信元描述符时,将与所述队首信元描述符中的存储器编号对应的计数装置761进行减操作;
[0072]其中,所述信兀描述符包含与存储所述信兀的存储器71 对应的存储器编号;
[0073]进一步的,所述缓存模块72和所述保序控制模块76之间设置有脉冲产生模块77,用于当信元从所述缓存队列721写入对应存储器71时,向与存储器71对应的计数装置761发送加操作信息,以便于所述计数装置761进行加操作。其中,加操作信息可以是脉冲信号。
[0074]本发明实施例还提供另一种流量调度芯片,应用于具有多个存储器的分布式存储系统中,所述流量调度芯片包括:
[0075]处理器,用于当一个报文中的每一个信元写入缓存队列时,向描述符存储队列写入所述信元的信元描述符,当所述信元从所述缓存队列写入存储器时,将与所述存储器对应的计数装置进行加操作;其中,所述信元描述符包含与存储所述信元的存储器一一对应的存储器编号,且各个存储器都设置有对应的缓存队列和对应的计数装置;
[0076]当所述报文的所有信元均写入缓存队列时,向描述符存储队列写入所述报文的包描述符;
[0077]当所述描述符存储队列的队首元素是包描述符,且所有计数装置的计数值均大于或等于初始值时,读出所述包描述符,以便于根据所述包描述符从对应的存储器中读取报文;其中,所述计数装置的初始值为零;
[0078]当所述描述符存储队列的队首元素是信元描述符时,读出所述队首信元描述符,并将与所述队首信元描述符中的存储器编号对应的计数装置进行减操作;
[0079]其中,所述描述符存储队列是用于写入和读出所述信元描述符和所述包描述符的先入先出队列。
[0080]可选的,所述包描述符包含有报文的IP地址,优先级,报文长度,报文内起始信元所在的存储器的编号。
[0081]进一步的,所述当所述信元从所述缓存队列写入存储器时,将与所述存储器对应的计数装置进行加操作,包括:当所述信元从所述缓存队列写入存储器时,向与所述存储器对应的计数装置发送加操作信息,以便于所述计数装置进行加操作。可选的,所述加操作信息是脉冲信号。
[0082]本发明实施例还提供一种分布式存储系统,包括多个存储器以及上述任一流量调
nV-H-1 I
度心片。[0083]本发明实施例中的流量调度芯片和分布式存储系统能够执行上述方法实施例中的步骤,完成方法实施例的各功能,其应用过程中按方法实施例的描述实现报文保序的方法。
[0084]以上所述,仅为本发明的【具体实施方式】,但本发明的保护范围并不局限于此,任何熟悉本【技术领域】的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。
【权利要求】
1.一种报文的保序方法,应用于具有多个存储器的分布式存储系统中,其特征在于,所述方法包括: 当一个报文中的每一个信元写入缓存队列时,向描述符存储队列写入所述信元的信元描述符,当所述信元从所述缓存队列写入存储器时,将与所述存储器对应的计数装置进行加操作;其中,所述信兀描述符包含与存储所述信兀的存储器对应的存储器编号,且各个存储器都设置有对应的缓存队列和对应的计数装置; 当所述报文的所有信元均写入缓存队列时,向描述符存储队列写入所述报文的包描述符; 当所述描述符存储队列的队首元素是包描述符,且所有计数装置的计数值均大于或等于初始值时,读出所述包描述符,以便于根据所述包描述符从对应的存储器中读取报文;其中,所述计数装置的初始值为零; 当所述描述符存储队列的队首元素是信元描述符时,读出所述队首信元描述符,并将与所述队首信元描述符中的存储器编号对应的计数装置进行减操作; 其中,所述描述符存储队列是用于存储所述信元描述符和所述包描述符的先入先出队列。
2.根据权利要求1所述的方法,其特征在于,所述包描述符包含有报文的IP地址,优先级,报文长度,报文内起始信元所在的存储器的编号。
3.根据权利要求1或2所 述的方法,其特征在于,所述当所述信元从所述缓存队列写入存储器时,将与所述存储器对应 的计数装置进行加操作,包括: 当所述信元从所述缓存队列写入存储器时,向与所述存储器对应的计数装置发送加操作信息,以便于所述计数装置进行加操作。
4.根据权利要求3所述的方法,其特征在于,所述加操作信息是脉冲信号。
5.一种流量调度芯片,应用于具有多个存储器的分布式存储系统中,包括由与所述多个存储器一一对应的多个缓存队列组成的缓存模块,以及切片构造模块和调度模块,其特征在于,还包括: 描述符处理模块、保序控制模块,以及与各个存储器一一对应的多个计数装置; 其中,所述切片构造模块用于将输入报文分割成多个信元,并将各个信元发送到所述缓存模块; 所述保序控制模块,用于当所述输入报文中的每一个信元写入所述缓存模块中的缓存队列时,向所述描述符处理模块写入所述信元的信元描述符,并当所述输入报文的所有信元均写入所述缓存模块中的缓存队列时,向所述描述符处理模块写入所述输入报文的包描述符;当所述描述符处理模块的队首元素是所述信元描述符时,从所述调度模块读出所述队首信元描述符;当所述描述符处理模块的队首元素是所述包描述符,且各个存储器对应的计数装置的数值均大于或等于初始值时,从所述描述符处理模块中读出所述包描述符,并发送给所述调度模块;其中,所述描述符处理模块是用于存储所述信元描述符和所述包描述符的先入先出队列; 所述调度模块用于,根据所述保序控制模块发送的包描述符,从对应的存储器中读取报文; 所述保序控制模块还用于,当所述输入报文的每一个信元从所述缓存模块中的缓存队列写入存储器时,将与所述存储器对应的计数装置进行加操作;当所述保序控制模块从所述描述符处理模块读出队首信元描述符时,将与所述队首信元描述符中的存储器编号对应的计数装置进行减操作; 其中,所述信元描述符包含与存储所述信元的存储器一一对应的存储器编号;所述计数装置的初始值为零。
6.根据权利要求5所述的芯片,其特征在于,所述缓存模块和所述保序控制模块之间设置有脉冲产生模块,用于当信元从所述缓存队列写入对应存储器时,向与所述存储器对应的计数装置发送加操作信息,以便于所述计数装置进行加操作。
7.根据权利要求6所述的芯片,其特征在于,所述加操作信息是脉冲信号。
8.根据权利要求5-7任一所述的芯片,其特征在于,所述计数装置是计数器。
9.一种分布式存储系统,包括多个存储器,其特征在于,还包括如权利要求5-8任一所述的流量调度芯片。
【文档编号】H04L12/863GK103581055SQ201210280520
【公开日】2014年2月12日 申请日期:2012年8月8日 优先权日:2012年8月8日
【发明者】张喜全, 卞云峰, 丁德宏 申请人:华为技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1