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

技术编号:9671264 阅读:160 留言:0更新日期:2014-02-14 18:20
本发明专利技术实施例提供一种报文的保序方法、流量调度芯片及分布式存储系统,属于数据传输技术领域,用于解决报文读写的一致性问题;该方法包括,当报文中的每一个信元写入缓存队列时,向描述符存储队列写入所述信元的信元描述符,当所述信元从缓存队列写入存储器时,将与所述存储器对应的计数装置进行加操作;当所述报文的所有信元均写入缓存队列时,向描述符存储队列写入报文的包描述符;当描述符存储队列队首元素是包描述符,且所有计数装置的计数值均大于或等于初始值时,读出包描述符,以便于根据该包描述符从对应的存储器中读取报文;当描述符存储队列的队首元素是信元描述符时,读出所述队首信元描述符,并将对应的计数装置进行减操作。

【技术实现步骤摘要】
报文的保序方法、流量调度芯片及分布式存储系统
本专利技术涉及通信
,尤其涉及一种报文的保序方法、流量调度芯片及分布式存储系统。
技术介绍
流量调度芯片系统中需要存储大量的报文,通常先将数据按整个报文进行存储。这些报文使用多片独立于芯片的存储器,如DRAM(DynamicRandomAccessMemory,动态随机存取存储器),DDR(DoubleDataRate,双倍速率同步动态随机存储器)等,进行分布式存储,然后根据某种调度方式,再将数据按一个个整报文进行读出,转发给下一节点或设备。如图1所示,现有技术中,向DDR中写入报文时,通过切片构造模块把报文分割成信元(称为cell),在分布式算法的控制下将各个cell送往相应的DDR#缓存队列中,然后按照先入先出的规则被读出缓存队列,写入DDR中。对每一个报文,在切片构造模块会形成一个PD(PacketDescription,包描述符),出队的PD信息被送往调度模块进行处理后出队,再进入重组模块中用于从DDR中读取cell,并对各个cell进行重组后输出报文。在上述报文读写过程中,由于各个cell的写入和读取是相互独立的过程,有可能出现报文读写不一致的问题,即出现某个cell的读请求进入DDR#缓存队列,但该cell还未写入DDR的情况,这样读出的报文数据是错误的,会导致输出报文出错。
技术实现思路
本专利技术的实施例提供一种报文的保序方法、流量调度芯片及分布式存储系统,用以解决报文读写的一致性问题。为达到上述目的,本专利技术的实施例采用如下技术方案:第一方面,提供一种报文的保序方法,应用于具有多个存储器的分布式存储系统中,所述方法包括:当一个报文中的每一个信元写入缓存队列时,向描述符存储队列写入所述信元的信元描述符,当所述信元从所述缓存队列写入存储器时,将与所述存储器对应的计数装置进行加操作;其中,所述信元描述符包含与存储所述信元的存储器一一对应的存储器编号,且各个存储器都设置有对应的缓存队列和对应的计数装置;当所述报文的所有信元均写入缓存队列时,向描述符存储队列写入所述报文的包描述符;当所述描述符存储队列的队首元素是包描述符,且所有计数装置的计数值均大于或等于初始值时,读出所述包描述符,以便于根据所述包描述符从对应的存储器中读取报文;其中,所述计数装置的初始值为零;当所述描述符存储队列的队首元素是信元描述符时,读出所述队首信元描述符,并将与所述队首信元描述符中的存储器编号对应的计数装置进行减操作;其中,所述描述符存储队列是用于存储所述信元描述符和所述包描述符的先入先出队列。在根据第一方面的第一种可能的实现方式中,所述包描述符包含有报文的IP地址,优先级,报文长度,报文内起始信元所在的存储器的编号。在根据第一方面或第一方面的第一种可能的实现方式的第二种可能的实现方式中,所述当所述信元从所述缓存队列写入存储器时,将与所述存储器对应的计数装置进行加操作,包括:当所述信元从所述缓存队列写入存储器时,向与所述存储器对应的计数装置发送加操作信息,以便于所述计数装置进行加操作。在根据第一方面的第二种可能的实现方式的第三种可能实现方式中,所述加操作信息是脉冲信号。第二方面,提供一种流量调度芯片,应用于具有多个存储器的分布式存储系统中,包括由与所述多个存储器一一对应的多个缓存队列组成的缓存模块,以及切片构造模块和调度模块,还包括:描述符处理模块、保序控制模块,以及与各个存储器一一对应的多个计数装置;其中,所述切片构造模块用于将输入报文分割成多个信元,并将各个信元发送到所述缓存模块;所述保序控制模块,用于当所述输入报文中的每一个信元写入所述缓存模块中的缓存队列时,向所述描述符处理模块写入所述信元的信元描述符,并当所述输入报文的所有信元均写入所述缓存模块中的缓存队列时,向所述描述符处理模块写入所述输入报文的包描述符;当所述描述符处理模块的队首元素是所述信元描述符时,从所述调度模块读出所述队首信元描述符;当所述描述符处理模块的队首元素是所述包描述符,且各个存储器对应的计数装置的数值均大于或等于初始值时,从所述描述符处理模块中读出所述包描述符,并发送给所述调度模块;其中,所述描述符处理模块是用于存储所述信元描述符和所述包描述符的先入先出队列;所述调度模块用于,根据所述保序控制模块发送的包描述符,从对应的存储器中读取报文;所述保序控制模块还用于,当所述输入报文的每一个信元从所述缓存模块中的缓存队列写入存储器时,将与所述存储器对应的计数装置进行加操作;当所述保序控制模块从所述描述符处理模块读出队首信元描述符时,将与所述队首信元描述符中的存储器编号对应的计数装置进行减操作;其中,所述信元描述符包含与存储所述信元的存储器一一对应的存储器编号;所述计数装置的初始值为零。在根据第二方面的第一种可能的实现方式中,所述缓存模块和所述保序控制模块之间设置有脉冲产生模块,用于当信元从所述缓存队列写入对应存储器时,向与所述存储器对应的计数装置发送加操作信息,以便于所述计数装置进行加操作。在根据第二方面的第一种可能的实现方式的第二种可能的实现方式中,所述加操作信息是脉冲信号。在根据第二方面或第二方面的任一种可能的实现方式的第三种可能的实现方式中,所述计数装置是计数器。第三方面,提供一种分布式存储系统,包括多个存储器,其特征在于,还包括上述第二方面或第二方面的任一可能的实现方式中所述的流量调度芯片。本专利技术实施例提供的报文保序方法、流量调度芯片及分布式存储系统及装置,在信元写入缓存队列时,向描述符存储队列写入信元描述符或者包描述符。通过设置与各个存储器对应的计数装置,并根据信元写入存储器和信元描述符从描述符存储队列读出的情况对该存储器对应的计数装置进行加操作或减操作,通过所有计数装置的数值确定是否要读出描述符存储队列队首的包描述符,保证报文读写的一致性。具体的,在读出描述符存储队列队首的包描述符时,当所有计数装置的数值大于或等于初始值时,表明该包描述符之前写入描述符存储队列的所有信元描述符对应的信元均已全部写入存储器,此时,才允许读出用于在后续过程中从存储器中读取报文的包描述符,这样,就保证了读取报文时,所述报文的所有的信元均已写入对应的存储器,不会出现“尚未写入就被读出”的危险,即保证了报文读写的一致性。附图说明为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1为现有技术中报文的读写过程示意图;图2为本专利技术实施例提供的报文的保序方法的流程图;图3为本专利技术实施例中报文读写过程示意图;图4为本专利技术实施例中Ta时刻报文的读写状态;图5为本专利技术实施例中t0~t2时刻报文的读写状态;图6为本专利技术实施例中t3~t4时刻报文的读写状态;图7为本专利技术实施例提供的流量调度芯片的结构示意图。具体实施方式下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下本文档来自技高网...
报文的保序方法、流量调度芯片及分布式存储系统

【技术保护点】
一种报文的保序方法,应用于具有多个存储器的分布式存储系统中,其特征在于,所述方法包括:当一个报文中的每一个信元写入缓存队列时,向描述符存储队列写入所述信元的信元描述符,当所述信元从所述缓存队列写入存储器时,将与所述存储器对应的计数装置进行加操作;其中,所述信元描述符包含与存储所述信元的存储器一一对应的存储器编号,且各个存储器都设置有对应的缓存队列和对应的计数装置;当所述报文的所有信元均写入缓存队列时,向描述符存储队列写入所述报文的包描述符;当所述描述符存储队列的队首元素是包描述符,且所有计数装置的计数值均大于或等于初始值时,读出所述包描述符,以便于根据所述包描述符从对应的存储器中读取报文;其中,所述计数装置的初始值为零;当所述描述符存储队列的队首元素是信元描述符时,读出所述队首信元描述符,并将与所述队首信元描述符中的存储器编号对应的计数装置进行减操作;其中,所述描述符存储队列是用于存储所述信元描述符和所述包描述符的先入先出队列。

【技术特征摘要】
1.一种报文的保序方法,应用于具有多个存储器的分布式存储系统中,其特征在于,所述方法包括:当一个报文中的每一个信元写入缓存队列时,向描述符存储队列写入所述信元的信元描述符,当所述信元从所述缓存队列写入存储器时,将与所述存储器对应的计数装置进行加操作;其中,所述信元描述符包含与存储所述信元的存储器一一对应的存储器编号,且各个存储器都设置有对应的缓存队列和对应的计数装置;当所述报文的所有信元均写入缓存队列时,向描述符存储队列写入所述报文的包描述符;当所述描述符存储队列的队首元素是包描述符,且所有计数装置的计数值均大于或等于初始值时,读出所述包描述符,以便于根据所述包描述符从对应的存储器中读取报文;其中,所述计数装置的初始值为零;当所述描述符存储队列的队首元素是信元描述符时,读出队首信元描述符,并将与所述队首信元描述符中的存储器编号对应的计数装置进行减操作;其中,所述描述符存储队列是用于存储所述信元描述符和所述包描述符的先入先出队列。2.根据权利要求1所述的方法,其特征在于,所述包描述符包含有报文的IP地址,优先级,报文长度,报文内起始信元所在的存储器的编号。3.根据权利要求1或2所述的方法,其特征在于,所述当所述信元从所述缓存队列写入存储器时,将与所述存储器对应的计数装置进行加操作,包括:当所述信元从所述缓存队列写入存储器时,向与所述存储器对应的计数装置发送加操作信息,以便于所述计数装置进行加操作。4.根据权利要求3所述的方法,其特征在于,所述加操作信息是脉冲信号。5.一种流量调度芯片,应用于具有多个存储器的分布式存储系统中,包括由与所述多个存储器一一对应的多个缓存队列组成的缓存模块,以及切片构造模块和调度模块,其特征在于,还包括:描述符处理模块、保序控制模块,以及与各个存储器一一对应的多个计数装置;其中,所述...

【专利技术属性】
技术研发人员:张喜全卞云峰丁德宏
申请(专利权)人:华为技术有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1