CN103581055A - 报文的保序方法、流量调度芯片及分布式存储系统 - Google Patents
报文的保序方法、流量调度芯片及分布式存储系统 Download PDFInfo
- Publication number
- CN103581055A CN103581055A CN201210280520.3A CN201210280520A CN103581055A CN 103581055 A CN103581055 A CN 103581055A CN 201210280520 A CN201210280520 A CN 201210280520A CN 103581055 A CN103581055 A CN 103581055A
- Authority
- CN
- China
- Prior art keywords
- descriptor
- cell
- queue
- memory
- message
- 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
Links
Images
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明实施例提供一种报文的保序方法、流量调度芯片及分布式存储系统,属于数据传输技术领域,用于解决报文读写的一致性问题;该方法包括,当报文中的每一个信元写入缓存队列时,向描述符存储队列写入所述信元的信元描述符,当所述信元从缓存队列写入存储器时,将与所述存储器对应的计数装置进行加操作;当所述报文的所有信元均写入缓存队列时,向描述符存储队列写入报文的包描述符;当描述符存储队列队首元素是包描述符,且所有计数装置的计数值均大于或等于初始值时,读出包描述符,以便于根据该包描述符从对应的存储器中读取报文;当描述符存储队列的队首元素是信元描述符时,读出所述队首信元描述符,并将对应的计数装置进行减操作。
Description
技术领域
本发明涉及通信技术领域,尤其涉及一种报文的保序方法、流量调度芯片及分布式存储系统。
背景技术
流量调度芯片系统中需要存储大量的报文,通常先将数据按整个报文进行存储。这些报文使用多片独立于芯片的存储器,如DRAM(Dynamic Random Access Memory,动态随机存取存储器),DDR(Double Data Rate,双倍速率同步动态随机存储器)等,进行分布式存储,然后根据某种调度方式,再将数据按一个个整报文进行读出,转发给下一节点或设备。
如图1所示,现有技术中,向DDR中写入报文时,通过切片构造模块把报文分割成信元(称为cell),在分布式算法的控制下将各个cell送往相应的DDR#缓存队列中,然后按照先入先出的规则被读出缓存队列,写入DDR中。对每一个报文,在切片构造模块会形成一个PD(Packet Description,包描述符),出队的PD信息被送往调度模块进行处理后出队,再进入重组模块中用于从DDR中读取cell,并对各个cell进行重组后输出报文。
在上述报文读写过程中,由于各个cell的写入和读取是相互独立的过程,有可能出现报文读写不一致的问题,即出现某个cell的读请求进入DDR#缓存队列,但该cell还未写入DDR的情况,这样读出的报文数据是错误的,会导致输出报文出错。
发明内容
本发明的实施例提供一种报文的保序方法、流量调度芯片及分布式存储系统,用以解决报文读写的一致性问题。
为达到上述目的,本发明的实施例采用如下技术方案:
第一方面,提供一种报文的保序方法,应用于具有多个存储器的分布式存储系统中,所述方法包括:
当一个报文中的每一个信元写入缓存队列时,向描述符存储队列写入所述信元的信元描述符,当所述信元从所述缓存队列写入存储器时,将与所述存储器对应的计数装置进行加操作;其中,所述信元描述符包含与存储所述信元的存储器一一对应的存储器编号,且各个存储器都设置有对应的缓存队列和对应的计数装置;
当所述报文的所有信元均写入缓存队列时,向描述符存储队列写入所述报文的包描述符;
当所述描述符存储队列的队首元素是包描述符,且所有计数装置的计数值均大于或等于初始值时,读出所述包描述符,以便于根据所述包描述符从对应的存储器中读取报文;其中,所述计数装置的初始值为零;
当所述描述符存储队列的队首元素是信元描述符时,读出所述队首信元描述符,并将与所述队首信元描述符中的存储器编号对应的计数装置进行减操作;
其中,所述描述符存储队列是用于存储所述信元描述符和所述包描述符的先入先出队列。
在根据第一方面的第一种可能的实现方式中,所述包描述符包含有报文的IP地址,优先级,报文长度,报文内起始信元所在的存储器的编号。
在根据第一方面或第一方面的第一种可能的实现方式的第二种可能的实现方式中,所述当所述信元从所述缓存队列写入存储器时,将与所述存储器对应的计数装置进行加操作,包括:
当所述信元从所述缓存队列写入存储器时,向与所述存储器对应的计数装置发送加操作信息,以便于所述计数装置进行加操作。
在根据第一方面的第二种可能的实现方式的第三种可能实现方式中,所述加操作信息是脉冲信号。
第二方面,提供一种流量调度芯片,应用于具有多个存储器的分布式存储系统中,包括由与所述多个存储器一一对应的多个缓存队列组成的缓存模块,以及切片构造模块和调度模块,还包括:
描述符处理模块、保序控制模块,以及与各个存储器一一对应的多个计数装置;
其中,所述切片构造模块用于将输入报文分割成多个信元,并将各个信元发送到所述缓存模块;
所述保序控制模块,用于当所述输入报文中的每一个信元写入所述缓存模块中的缓存队列时,向所述描述符处理模块写入所述信元的信元描述符,并当所述输入报文的所有信元均写入所述缓存模块中的缓存队列时,向所述描述符处理模块写入所述输入报文的包描述符;当所述描述符处理模块的队首元素是所述信元描述符时,从所述调度模块读出所述队首信元描述符;当所述描述符处理模块的队首元素是所述包描述符,且各个存储器对应的计数装置的数值均大于或等于初始值时,从所述描述符处理模块中读出所述包描述符,并发送给所述调度模块;其中,所述描述符处理模块是用于存储所述信元描述符和所述包描述符的先入先出队列;
所述调度模块用于,根据所述保序控制模块发送的包描述符,从对应的存储器中读取报文;
所述保序控制模块还用于,当所述输入报文的每一个信元从所述缓存模块中的缓存队列写入存储器时,将与所述存储器对应的计数装置进行加操作;当所述保序控制模块从所述描述符处理模块读出队首信元描述符时,将与所述队首信元描述符中的存储器编号对应的计数装置进行减操作;
其中,所述信元描述符包含与存储所述信元的存储器一一对应的存储器编号;所述计数装置的初始值为零。
在根据第二方面的第一种可能的实现方式中,所述缓存模块和所述保序控制模块之间设置有脉冲产生模块,用于当信元从所述缓存队列写入对应存储器时,向与所述存储器对应的计数装置发送加操作信息,以便于所述计数装置进行加操作。
在根据第二方面的第一种可能的实现方式的第二种可能的实现方式中,所述加操作信息是脉冲信号。
在根据第二方面或第二方面的任一种可能的实现方式的第三种可能的实现方式中,所述计数装置是计数器。
第三方面,提供一种分布式存储系统,包括多个存储器,其特征在于,还包括上述第二方面或第二方面的任一可能的实现方式中所述的流量调度芯片。
本发明实施例提供的报文保序方法、流量调度芯片及分布式存储系统及装置,在信元写入缓存队列时,向描述符存储队列写入信元描述符或者包描述符。通过设置与各个存储器对应的计数装置,并根据信元写入存储器和信元描述符从描述符存储队列读出的情况对该存储器对应的计数装置进行加操作或减操作,通过所有计数装置的数值确定是否要读出描述符存储队列队首的包描述符,保证报文读写的一致性。具体的,在读出描述符存储队列队首的包描述符时,当所有计数装置的数值大于或等于初始值时,表明该包描述符之前写入描述符存储队列的所有信元描述符对应的信元均已全部写入存储器,此时,才允许读出用于在后续过程中从存储器中读取报文的包描述符,这样,就保证了读取报文时,所述报文的所有的信元均已写入对应的存储器,不会出现“尚未写入就被读出”的危险,即保证了报文读写的一致性。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为现有技术中报文的读写过程示意图;
图2为本发明实施例提供的报文的保序方法的流程图;
图3为本发明实施例中报文读写过程示意图;
图4为本发明实施例中Ta时刻报文的读写状态;
图5为本发明实施例中t0~t2时刻报文的读写状态;
图6为本发明实施例中t3~t4时刻报文的读写状态;
图7为本发明实施例提供的流量调度芯片的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例提供的报文的保序方法,应用于具有多个存储器的分布式存储系统中,如图2所示,该方法包括:
201、当一个报文中的每一个信元写入缓存队列时,向描述符存储队列写入所述信元的信元描述符,当所述信元从所述缓存队列写入存储器时,将与所述存储器对应的计数装置进行加操作。
其中,所述描述符存储队列是用于存储(写入和读出)所述信元描述符(Cell Descriptor,CD)和所述包描述符(Packet Description,PD)的先入先出队列。所述信元描述符包含与存储所述信元的存储器一一对应的存储器编号,且各个存储器都设置有对应的缓存队列和对应的计数装置。
202、当所述报文的所有信元均写入缓存队列时,向描述符存储队列写入所述报文的包描述符。
其中,该包描述符包含有如该报文的IP地址,优先级,报文长度,报文内起始信元所在的存储器的编号等用于描述整个报文的信息。
203、当所述描述符存储队列的队首元素是包描述符,且所有计数装置的计数值均大于或等于初始值时,读出所述包描述符,以便于根据所述包描述符从对应的存储器中读取报文。
其中,所述计数装置的初始值为零。
204、当所述描述符存储队列的队首元素是信元描述符时,读出所述队首信元描述符,并将与所述队首信元描述符中的存储器编号对应的计数装置进行减操作。
本发明实施例提供的报文保序方法,在信元写入缓存队列时,向描述符存储队列写入信元描述符或者包描述符。通过设置与各个存储器对应的计数装置,并根据信元写入存储器和信元描述符从描述符存储队列读出的情况对该存储器对应的计数装置进行加操作或减操作,通过所有计数装置的数值确定是否要读出描述符存储队列队首的包描述符,保证报文读写的一致性。具体的,在读出描述符存储队列队首的包描述符时,当所有计数装置的数值大于或等于初始值时,表明该包描述符之前写入的所有信元描述符对应的信元均已全部写入存储器,此时,才允许读出用于在后续过程中从存储器中读取报文的包描述符,这样,就保证了读取报文时,所述报文的所有的信元均已写入对应的存储器,不会出现“尚未写入就被读出”的危险,即保证了报文读写的一致性。
下面结合图2~图6对本发明实施例提供的报文保序方法的具体过程进行详细描述。
本发明实施例提供的报文的保序方法,应用于具有多个存储器的分布式存储系统中,例如,可以应用于包括流量管理调度芯片以及与该芯片相连的多个相互独立的存储器(如DDR,DRAM等)的分布式存储系统。其中,流量管理调度芯片中包括由与所述多个存储器一一对应的多个缓存队列组成的缓存模块,以及切片构造模块、调度模块和重组模块。各个缓存队列的深度可以不同。示例性的,如图3所示,流量管理调度芯片中包括由六个缓存队列组成的缓存模块2,以及切片构造模块3、调度模块4和重组模块5;在切片构造模块3和调度模块4之间设置有描述符处理模块8和保序控制模块9,其中,描述符处理模块8具体可以是用于写入和读出信元描述符和包描述符的先入先出队列(以下各个步骤中将其称为描述符存储队列);在缓存模块2和保序控制模块9之间设置有脉冲产生模块7。其中,六个缓存队列(DDR1#缓存队列~DDR6#缓存队列)分别与独立于芯片的六个存储器1(DDR1#~DDR6#)相连。
在输入报文后,切片构造模块3把报文分割成信元(计为cell),并在分布式算法的控制下将各个cell送往对应的缓存队列。示例性的,图3中,在输入报文Packet1#、Packet2#和Packet3#后,切片构造模块3将Packet1#切割成P1-1和P1-2两个cell,并在分布式流量算法的控制下将P1-1送往DDR1#对应的缓存队列,将P1-2送往DDR2#对应的缓存队列。将Packet2#切割成P2-1,P2-2和P2-3分别送往DDR3#,DDR4#和DDR5#对应的缓存队列。将Packet3#切割成P3-1和P3-2送往DDR6#和DDR1#对应的缓存队列。
在上述步骤201中,当一个报文中的每一个cell写入对应缓存队列时,向描述符存储队列写入该cell的信元描述符(Cell Descriptor,CD);当所述信元从所述缓存队列写入存储器时,将与所述存储器对应的计数装置进行加操作。其中,每个cell的CD中包含与存储该cell的存储器一一对应的DDR#编号,且各个存储器都设置有对应的缓存队列和对应的计数装置。
在上述步骤202中,当整个报文的所有cell都写入对应缓存队列时,向描述符存储队列写入该报文的包描述符(Packet Description,PD)。其中,包描述符包含有如该报文的IP地址,优先级,该报文的长度,该报文起始cell所在的存储器的编号等用于描述包的信息。
如图4所示,在Ta时刻,三个报文Packet1#、Packet2#和Packet3#的所有cell都写入对应缓存队列,则三个报文的CD和PD都写入描述符存储队列8中。其中,每个报文的所有CD都写入后,才写入该报文的PD。
在从描述符存储队列中读出信元描述符或包描述符时,首先要查看描述符存储队列的队首元素。
若描述符存储队列的队首元素是包描述符,则执行上述步骤203,查看所有计数装置的计数值,只有当各个计数装置的计数值均大于或等于初始值时,读出所述包描述符,以便于根据所述包描述符从对应的存储器中读取报文。
若描述符存储队列的队首元素是信元描述符,则执行上述步骤204,读出所述队首信元描述符,并将与所述队首信元描述符中的存储器编号对应的计数装置进行减操作。
示例性的,如图3,在保序控制模块9中设置有与各个存储器一一对应的计数装置。其中,该计数装置可以是计数器。图4中的保序控制模块9中设置有六个计数器(Cnt 1~Cnt 6),分别对应图3中流量管理调度芯片外的六个存储器(DDR1#~DDR6#)。各个计数器的初始值设置为0。图3中,在缓存模块2和保序控制模块9之间设置有脉冲产生模块7。当任意一个cell从缓存队列写入存储器时,脉冲产生模块7向与该存储器对应的计数器发送一个脉冲信号WrEnd,计数器接收到脉冲信号后进行加操作。当从信元描述符中读出队首信元描述符时,将与所述队首信元描述符中的存储器编号对应的计数装置进行减操作。
一般情况下,各个cell写入缓存队列和脉冲产生模块7向对应的计数器发送脉冲信号的过程是同时独立进行的。为了简单、直观的说明本发明实施例提供的报文读取的方法,假设在所有cell都写入缓存队列之前,没有任何一个DDR的脉冲信号返回给对应的计数器。图4中显示了Ta时刻,三个报文的所有cell都写入对应的缓存队列,三个报文的CD和PD都写入描述符存储队列8中。各个计数器还未发生变化,即各个计数器的值均为初始值0的情况。
如图5所示,在t0时刻,由于描述符存储队列8的队首元素是CD(P1-1)和CD(P1-2)两个信元描述符,则保序控制模块9直接读出这两个信元描述符,并将与这两个信元描述符对应的计数器Cnt_1和Cnt_2进行减法操作。此时,Cnt_1和Cnt_2的数值为-1,计数器Cnt_1~Cnt_6的数值变成{-1,-1,0,0,0,0}。
如图5所示,在t1时刻,脉冲产生模块7返回了存储器DDR6#(P3-1)和DDR3#(P2-1)对应的两个脉冲信号,表明P3-1和P2-1两个cell已完全写入存储器DDR6#和DDR3#中,则对应的计数器Cnt_3和Cnt_6进行加法操作,Cnt_3和Cnt_6的数值变为1,计数器Cnt_1~Cnt_6的数值变成{-1,-1,1,0,0,1}。
在t2时刻,脉冲产生模块7返回了存储器DDR1#(P1-1)和DDR5#(P2-3)对应的两个脉冲信号,则对应的计数器Cnt_1和Cnt_5进行加法操作,Cnt_1和Cnt_5的数值变为1,计数器Cnt_1~Cnt_6的数值变成{0,-1,1,0,1,1}。此时,虽然描述符存储队列8的队首元素是包描述符P1#PD,但计数器Cnt_1~Cnt_6的数值还没有达到全部大于等于初始值0的情况,所以包描述符P1#PD不能从描述符存储队列8中读出。
如图6所示,在t3时刻,脉冲产生模块7返回了存储器DDR2#(P1-2)和DDR4#(P2-2)对应的两个脉冲信号,则对应的计数器Cnt_2和Cnt_4进行加法操作,计数器Cnt_1~Cnt_6的数值变成{0,0,1,1,1,1}。此时,所有的计数器Cnt_1~Cnt_6的数值都大于等于初始值0,表明报文Packet1#的所有cell均已写入对应的DDR中,于是描述符存储队列8中的包描述符P1#PD被读出,送往调度模块4。
此后,描述符存储队列8中的信元描述符CD(P2-1),CD(P2-2)和CD(P2-3)被读出,并对计数器Cnt_3,Cnt_4和Cnt_5进行减法操作。Cnt_1~Cnt_6变成了{0,0,0,0,0,1}。此时,所有的计数器Cnt_1~Cnt_6的数值都大于等于初始值0,表明报文Packet2#的所有cell均已写入对应的DDR中,于是描述符存储队列8中的包描述符P2#PD被读出,送往调度模块4。
此后,描述符存储队列8中的信元描述符CD(P3-1)和CD(P3-2)被读出,并对计数器Cnt_6和Cnt_1进行减法操作。Cnt_1~Cnt_6变成了{-1,0,0,0,0,0}。
在t4时刻,脉冲产生模块7返回了存储器DDR1#(P3-2)对应的脉冲信号,则对应计数器Cnt_1进行加法操作,计数器Cnt_1~Cnt_6的数值变成{0,0,0,0,0,0}。此时,所有的计数器Cnt_1~Cnt_6的数值都等于初始值0,表明报文Packet3#的所有cell均已写入对应的DDR中,于是描述符存储队列8中的包描述符P3#PD被读出,送往调度模块4。
至此,三个Packet均在其所有cell被写入对应DDR之后,被送到调度模块4,此后,包描述符进入调度模块4进行控制平面的处理后出队,再从存储器中读取cell,完成报文的读取。
本发明实施例还提供一种流量调度芯片,应用于具有多个存储器的分布式存储系统中,如图7所示,该流量调度芯片70包括由与多个存储器71一一对应的多个缓存队列721组成的缓存模块72,以及切片构造模块73和调度模块74,还包括:
描述符处理模块75、保序控制模块76、以及与各个存储器一一对应的多个计数装置761,其中,计数装置761可以如图7中设置在保序控制模块76中,也可以独立于保序控制模块76单独设置。各个计数装置761的初始值为零;可选的,计数装置761可以是计数器。
其中,切片构造模块73用于将输入报文分割成多个信元,并将各个信元发送到缓存模块72中对应的缓存队列721;
保序控制模块76,用于当所述输入报文中的每一个信元写入缓存模块72中对应的缓存队列721时,向描述符处理模块75写入所述信元的信元描述符,并当所述输入报文的所有信元均写入缓存模块2中对应的缓存队列721时,向描述符处理模块75写入所述输入报文的包描述符;当描述符处理模块75的队首元素是所述信元描述符时,从调度模块74读出所述队首信元描述符;当描述符处理模块75的队首元素是所述包描述符,且各个存储器71对应的计数装置761的数值均大于或等于初始值时,从描述符处理模块75中读出所述包描述符,并发送给所述调度模块74;其中,描述符处理模块75是用于存储(写入和读出)所述信元描述符和所述包描述符的先入先出队列。示例性的,描述符处理模块75可以是先入先出的描述符存储队列。
调度模块74用于,根据保序控制模块9发送的包描述符,从对应的存储器71中读取报文;
保序控制模块76还用于,当所述输入报文的每一个信元从缓存模块72中的缓存队列721写入存储器71时,将与所述存储器71对应的计数装置761进行加操作;当保序控制模块76从描述符处理模块75读出队首信元描述符时,将与所述队首信元描述符中的存储器编号对应的计数装置761进行减操作;
其中,所述信元描述符包含与存储所述信元的存储器71一一对应的存储器编号;
进一步的,所述缓存模块72和所述保序控制模块76之间设置有脉冲产生模块77,用于当信元从所述缓存队列721写入对应存储器71时,向与存储器71对应的计数装置761发送加操作信息,以便于所述计数装置761进行加操作。其中,加操作信息可以是脉冲信号。
本发明实施例还提供另一种流量调度芯片,应用于具有多个存储器的分布式存储系统中,所述流量调度芯片包括:
处理器,用于当一个报文中的每一个信元写入缓存队列时,向描述符存储队列写入所述信元的信元描述符,当所述信元从所述缓存队列写入存储器时,将与所述存储器对应的计数装置进行加操作;其中,所述信元描述符包含与存储所述信元的存储器一一对应的存储器编号,且各个存储器都设置有对应的缓存队列和对应的计数装置;
当所述报文的所有信元均写入缓存队列时,向描述符存储队列写入所述报文的包描述符;
当所述描述符存储队列的队首元素是包描述符,且所有计数装置的计数值均大于或等于初始值时,读出所述包描述符,以便于根据所述包描述符从对应的存储器中读取报文;其中,所述计数装置的初始值为零;
当所述描述符存储队列的队首元素是信元描述符时,读出所述队首信元描述符,并将与所述队首信元描述符中的存储器编号对应的计数装置进行减操作;
其中,所述描述符存储队列是用于写入和读出所述信元描述符和所述包描述符的先入先出队列。
可选的,所述包描述符包含有报文的IP地址,优先级,报文长度,报文内起始信元所在的存储器的编号。
进一步的,所述当所述信元从所述缓存队列写入存储器时,将与所述存储器对应的计数装置进行加操作,包括:当所述信元从所述缓存队列写入存储器时,向与所述存储器对应的计数装置发送加操作信息,以便于所述计数装置进行加操作。可选的,所述加操作信息是脉冲信号。
本发明实施例还提供一种分布式存储系统,包括多个存储器以及上述任一流量调度芯片。
本发明实施例中的流量调度芯片和分布式存储系统能够执行上述方法实施例中的步骤,完成方法实施例的各功能,其应用过程中按方法实施例的描述实现报文保序的方法。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。
Claims (9)
1.一种报文的保序方法,应用于具有多个存储器的分布式存储系统中,其特征在于,所述方法包括:
当一个报文中的每一个信元写入缓存队列时,向描述符存储队列写入所述信元的信元描述符,当所述信元从所述缓存队列写入存储器时,将与所述存储器对应的计数装置进行加操作;其中,所述信元描述符包含与存储所述信元的存储器一一对应的存储器编号,且各个存储器都设置有对应的缓存队列和对应的计数装置;
当所述报文的所有信元均写入缓存队列时,向描述符存储队列写入所述报文的包描述符;
当所述描述符存储队列的队首元素是包描述符,且所有计数装置的计数值均大于或等于初始值时,读出所述包描述符,以便于根据所述包描述符从对应的存储器中读取报文;其中,所述计数装置的初始值为零;
当所述描述符存储队列的队首元素是信元描述符时,读出所述队首信元描述符,并将与所述队首信元描述符中的存储器编号对应的计数装置进行减操作;
其中,所述描述符存储队列是用于存储所述信元描述符和所述包描述符的先入先出队列。
2.根据权利要求1所述的方法,其特征在于,所述包描述符包含有报文的IP地址,优先级,报文长度,报文内起始信元所在的存储器的编号。
3.根据权利要求1或2所述的方法,其特征在于,所述当所述信元从所述缓存队列写入存储器时,将与所述存储器对应的计数装置进行加操作,包括:
当所述信元从所述缓存队列写入存储器时,向与所述存储器对应的计数装置发送加操作信息,以便于所述计数装置进行加操作。
4.根据权利要求3所述的方法,其特征在于,所述加操作信息是脉冲信号。
5.一种流量调度芯片,应用于具有多个存储器的分布式存储系统中,包括由与所述多个存储器一一对应的多个缓存队列组成的缓存模块,以及切片构造模块和调度模块,其特征在于,还包括:
描述符处理模块、保序控制模块,以及与各个存储器一一对应的多个计数装置;
其中,所述切片构造模块用于将输入报文分割成多个信元,并将各个信元发送到所述缓存模块;
所述保序控制模块,用于当所述输入报文中的每一个信元写入所述缓存模块中的缓存队列时,向所述描述符处理模块写入所述信元的信元描述符,并当所述输入报文的所有信元均写入所述缓存模块中的缓存队列时,向所述描述符处理模块写入所述输入报文的包描述符;当所述描述符处理模块的队首元素是所述信元描述符时,从所述调度模块读出所述队首信元描述符;当所述描述符处理模块的队首元素是所述包描述符,且各个存储器对应的计数装置的数值均大于或等于初始值时,从所述描述符处理模块中读出所述包描述符,并发送给所述调度模块;其中,所述描述符处理模块是用于存储所述信元描述符和所述包描述符的先入先出队列;
所述调度模块用于,根据所述保序控制模块发送的包描述符,从对应的存储器中读取报文;
所述保序控制模块还用于,当所述输入报文的每一个信元从所述缓存模块中的缓存队列写入存储器时,将与所述存储器对应的计数装置进行加操作;当所述保序控制模块从所述描述符处理模块读出队首信元描述符时,将与所述队首信元描述符中的存储器编号对应的计数装置进行减操作;
其中,所述信元描述符包含与存储所述信元的存储器一一对应的存储器编号;所述计数装置的初始值为零。
6.根据权利要求5所述的芯片,其特征在于,所述缓存模块和所述保序控制模块之间设置有脉冲产生模块,用于当信元从所述缓存队列写入对应存储器时,向与所述存储器对应的计数装置发送加操作信息,以便于所述计数装置进行加操作。
7.根据权利要求6所述的芯片,其特征在于,所述加操作信息是脉冲信号。
8.根据权利要求5-7任一所述的芯片,其特征在于,所述计数装置是计数器。
9.一种分布式存储系统,包括多个存储器,其特征在于,还包括如权利要求5-8任一所述的流量调度芯片。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210280520.3A CN103581055B (zh) | 2012-08-08 | 2012-08-08 | 报文的保序方法、流量调度芯片及分布式存储系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210280520.3A CN103581055B (zh) | 2012-08-08 | 2012-08-08 | 报文的保序方法、流量调度芯片及分布式存储系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103581055A true CN103581055A (zh) | 2014-02-12 |
CN103581055B CN103581055B (zh) | 2016-12-21 |
Family
ID=50052014
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210280520.3A Active CN103581055B (zh) | 2012-08-08 | 2012-08-08 | 报文的保序方法、流量调度芯片及分布式存储系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103581055B (zh) |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2017016505A1 (zh) * | 2015-07-30 | 2017-02-02 | 华为技术有限公司 | 一种数据入队与出队方法及队列管理单元 |
CN107911317A (zh) * | 2017-11-30 | 2018-04-13 | 杭州迪普科技股份有限公司 | 一种报文调度方法及装置 |
CN108632169A (zh) * | 2017-03-21 | 2018-10-09 | 中兴通讯股份有限公司 | 一种分片的服务质量保证方法及现场可编程逻辑门阵列 |
CN109327405A (zh) * | 2017-07-31 | 2019-02-12 | 迈普通信技术股份有限公司 | 报文保序方法及网络设备 |
CN109802897A (zh) * | 2017-11-17 | 2019-05-24 | 华为技术有限公司 | 一种数据传输方法及通信设备 |
CN111160558A (zh) * | 2019-12-13 | 2020-05-15 | 合肥本源量子计算科技有限责任公司 | 量子芯片控制器、量子计算处理系统和电子设备 |
CN111782694A (zh) * | 2020-06-28 | 2020-10-16 | 百度在线网络技术(北京)有限公司 | 一种信息写入方法、装置以及电子设备 |
CN113067778A (zh) * | 2021-06-04 | 2021-07-02 | 新华三半导体技术有限公司 | 一种流量管理方法及流量管理芯片 |
CN114968893A (zh) * | 2022-07-27 | 2022-08-30 | 井芯微电子技术(天津)有限公司 | 基于时间戳的PCIe报文队列调度方法、系统及设备 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030118044A1 (en) * | 2001-12-21 | 2003-06-26 | International Business Machines Corporation | Queue scheduling mechanism in a data packet transmission system |
CN101246460A (zh) * | 2008-03-10 | 2008-08-20 | 华为技术有限公司 | 缓存数据写入系统及方法和缓存数据读取系统及方法 |
CN101557346A (zh) * | 2009-05-14 | 2009-10-14 | 中国人民解放军信息工程大学 | 轮询式分组排队输出调度方法及分组交换节点 |
CN101594302A (zh) * | 2009-07-01 | 2009-12-02 | 华为技术有限公司 | 数据出队的方法及装置 |
CN101605100A (zh) * | 2009-07-15 | 2009-12-16 | 华为技术有限公司 | 队列存储空间的管理方法和设备 |
CN102035888A (zh) * | 2010-12-15 | 2011-04-27 | 武汉大学 | 一种基于调度期限和带宽感知的数据调度方法 |
CN102238064A (zh) * | 2010-04-23 | 2011-11-09 | 华为技术有限公司 | 数据传输方法、装置和系统 |
CN102368741A (zh) * | 2011-12-05 | 2012-03-07 | 盛科网络(苏州)有限公司 | 支持层次化队列调度和流量整形的方法及装置 |
-
2012
- 2012-08-08 CN CN201210280520.3A patent/CN103581055B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030118044A1 (en) * | 2001-12-21 | 2003-06-26 | International Business Machines Corporation | Queue scheduling mechanism in a data packet transmission system |
CN101246460A (zh) * | 2008-03-10 | 2008-08-20 | 华为技术有限公司 | 缓存数据写入系统及方法和缓存数据读取系统及方法 |
CN101557346A (zh) * | 2009-05-14 | 2009-10-14 | 中国人民解放军信息工程大学 | 轮询式分组排队输出调度方法及分组交换节点 |
CN101594302A (zh) * | 2009-07-01 | 2009-12-02 | 华为技术有限公司 | 数据出队的方法及装置 |
CN101605100A (zh) * | 2009-07-15 | 2009-12-16 | 华为技术有限公司 | 队列存储空间的管理方法和设备 |
CN102238064A (zh) * | 2010-04-23 | 2011-11-09 | 华为技术有限公司 | 数据传输方法、装置和系统 |
CN102035888A (zh) * | 2010-12-15 | 2011-04-27 | 武汉大学 | 一种基于调度期限和带宽感知的数据调度方法 |
CN102368741A (zh) * | 2011-12-05 | 2012-03-07 | 盛科网络(苏州)有限公司 | 支持层次化队列调度和流量整形的方法及装置 |
Cited By (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10326713B2 (en) | 2015-07-30 | 2019-06-18 | Huawei Technologies Co., Ltd. | Data enqueuing method, data dequeuing method, and queue management circuit |
WO2017016505A1 (zh) * | 2015-07-30 | 2017-02-02 | 华为技术有限公司 | 一种数据入队与出队方法及队列管理单元 |
CN108632169A (zh) * | 2017-03-21 | 2018-10-09 | 中兴通讯股份有限公司 | 一种分片的服务质量保证方法及现场可编程逻辑门阵列 |
CN109327405A (zh) * | 2017-07-31 | 2019-02-12 | 迈普通信技术股份有限公司 | 报文保序方法及网络设备 |
CN109802897B (zh) * | 2017-11-17 | 2020-12-01 | 华为技术有限公司 | 一种数据传输方法及通信设备 |
CN109802897A (zh) * | 2017-11-17 | 2019-05-24 | 华为技术有限公司 | 一种数据传输方法及通信设备 |
US11297011B2 (en) | 2017-11-17 | 2022-04-05 | Huawei Technologies Co., Ltd. | Data transmission method and communications device |
CN107911317B (zh) * | 2017-11-30 | 2020-05-12 | 杭州迪普科技股份有限公司 | 一种报文调度方法及装置 |
CN107911317A (zh) * | 2017-11-30 | 2018-04-13 | 杭州迪普科技股份有限公司 | 一种报文调度方法及装置 |
CN111160558A (zh) * | 2019-12-13 | 2020-05-15 | 合肥本源量子计算科技有限责任公司 | 量子芯片控制器、量子计算处理系统和电子设备 |
CN111782694A (zh) * | 2020-06-28 | 2020-10-16 | 百度在线网络技术(北京)有限公司 | 一种信息写入方法、装置以及电子设备 |
CN111782694B (zh) * | 2020-06-28 | 2023-10-20 | 百度在线网络技术(北京)有限公司 | 一种信息写入方法、装置以及电子设备 |
CN113067778A (zh) * | 2021-06-04 | 2021-07-02 | 新华三半导体技术有限公司 | 一种流量管理方法及流量管理芯片 |
CN114968893A (zh) * | 2022-07-27 | 2022-08-30 | 井芯微电子技术(天津)有限公司 | 基于时间戳的PCIe报文队列调度方法、系统及设备 |
CN114968893B (zh) * | 2022-07-27 | 2022-09-30 | 井芯微电子技术(天津)有限公司 | 基于时间戳的PCIe报文队列调度方法、系统及设备 |
Also Published As
Publication number | Publication date |
---|---|
CN103581055B (zh) | 2016-12-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103581055A (zh) | 报文的保序方法、流量调度芯片及分布式存储系统 | |
WO2021088466A1 (zh) | 提高网络芯片报文存储效率的方法、设备及存储介质 | |
CN101515898B (zh) | 芯片的统计数据的管理方法和装置 | |
CN102684976B (zh) | 一种基于ddr sdram进行数据读写的方法、装置及系统 | |
CN101916227B (zh) | 一种rldram sio存储器访问控制方法和装置 | |
JP5205956B2 (ja) | メモリ制御装置 | |
CN100426793C (zh) | 一种存储器的控制器及控制方法 | |
CN1993687B (zh) | 用于控制数据访问的消息管理器和方法以及通信组件 | |
CN101710270B (zh) | 一种基于闪存的高速大容量存储器及芯片数据管理方法 | |
CN107783727B (zh) | 一种内存设备的访问方法、装置和系统 | |
EP3657744B1 (en) | Message processing | |
CN101848135B (zh) | 芯片的统计数据的管理方法和装置 | |
CN103914341A (zh) | 数据队列出队管控方法和装置 | |
CN101771598B (zh) | 一种实时以太网通信调度方法 | |
CN103309626A (zh) | 实现网络芯片多读写端口存储器的方法及相应存储器 | |
CN107077882A (zh) | 一种dram刷新方法、装置和系统 | |
CN103019974A (zh) | 存储器访问处理方法及控制器 | |
CN106951182A (zh) | 一种块设备缓存方法和装置 | |
CN206946471U (zh) | 一种多通道共享读写sdram的电路装置 | |
CN110232029B (zh) | 一种基于索引的fpga中ddr4包缓存的实现方法 | |
CN103455442A (zh) | 多通道先进先出缓存队列控制器及访问方法 | |
CN115083451A (zh) | 多通道的数据处理方法、装置、设备及存储介质 | |
CN105516023A (zh) | 一种报文转发方法和装置 | |
CN103117962B (zh) | 一种星载共享存储交换装置 | |
CN102789424B (zh) | 基于fpga的外扩ddr2的读写方法及基于fpga的外扩ddr2颗粒存储器 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |