一种用于维持多通道顺序规则的装置及相应方法制造方法及图纸

技术编号:3544805 阅读:251 留言:0更新日期:2012-04-11 18:40
本发明专利技术提供一种用于维持多通道顺序规则的装置,包括读控制逻辑、写控制逻辑、分别用于缓存NP包、P包以及R包的三个缓冲区,还包括用于记录各个数据包的包首地址的包地址次序池,以及位于所述读控制逻辑上的用于记录NP包的包首地址的NP_L寄存器和用于记录R包的包首地址的R_L寄存器;缓冲区与包地址次序池并行连接在写控制逻辑与读控制逻辑之间;缓冲区与包地址次序池采用先进先出队列。本发明专利技术通过在现有装置中添加包地址次序池以及对NP包、R包的寄存器,实现了对NP包、P包和R包等三种数据包的传输,并使得该传输过程在满足多通道顺序规则的同时,避免了现有技术中效率低下、实现复杂、消耗硬件资源多等缺陷。

【技术实现步骤摘要】

本专利技术涉及总线数据传输,特别涉及用于维持多通道顺序规则的装置及相应方法
技术介绍
在总线的数据传输过程中,为了实现链路的高效利用,同时也为了减少不同类别的数据包之间不必要的相互阻塞,把所要传送的数据包划分为多个类别,每一类数据包在逻辑上占用各自的虚通道,在物理上复用同一个物理链路。以现有技术中常见的HyperTransport总线或PCI-e总线为例,采用HyperTransport总线或PCI-e总线的设备支持三种基本的虚通道,分别用于传输读、写、回复三种类型的数据包,因此,这些虚通道也被分别称为NonPosted Channel、Posted Channel以及Respond Channel(为了说明的方便,在下文中将三种虚通道所传输的数据包简称为NP包、P包以及R包)。上述虚通道都通过分时复用机制在一个物理链路上复用。总线中的各个虚通道分别对应各自的缓存,总线在传送数据包时,将根据虚通道的类型把数据包传送到特定的缓存中,再由用户接口从缓存中读取数据。例如,在图1中给出了一种支持HyperTransport总线或PCI-e总线的设备的接收端,该设备中的物理链路通过分发器分别连接到三个缓冲区,其中的一个缓冲区与第一虚通道(VC,Virtual Channel)连接,因此该缓冲区被称为VC1缓冲区,类似的,其它缓冲区分别被称为VC2缓冲区以及VC3缓冲区。当设备的接收端通过物理链路串行依次接收到标号为1,2,...,7的7个数据包后,需要根据他们的虚通道属性分发到上述的三个虚通道缓冲区内,如将数据包1和5分发到VC1缓冲区,将数据包2、3、4分发到VC2缓冲区,将数据包6、7分发到VC3缓冲区。与上述缓冲区连接的用户接口再按照一定的顺序从三个缓冲区中读取数据包并进行后继处理。用户接口从不同的缓冲区读取数据包的顺序在通过多虚通道传送数据的过程中十分重要,因此需要有一个规则来维护多个虚通道之间数据包-->的读取顺序,否则用户接口会无序随机读取三个缓冲区的数据包,引起读、写、回复不按照规定次序执行,从而导致系统行为不可预知的错误。这种规则被称为多通道顺序规则,其描述如下:1.首先定义“超越”的定义:当数据包A在串行链路上的次序先于数据包B,而在用户接口处,B先于A被读取,则称之为B数据包超越A数据包。2.NP包、P包和R包的头部都有一个位(bit)来表示是否提高这个包的优先级,在这里统称它们为PPW位。3.无论P包的PPW位有效与否,P包都可以并且必须可以超越NP包和R包,否则有可能产生死锁。4.PPW有效的NP包和R包都可以,但不是必须能够超越P包。5.PPW无效的NP包和R包都不允许超越P包。6.NP包与R包之间无论PPW有效与否,都可以相互超越。7.同属一个虚通道内的数据包不能相互超越。上述的多通道顺序规则具有广泛的适用性,现有技术中应用范围很广的HyperTransport或PCI-e协议都采用了上述规则。现有技术中采用了一定的技术手段来保证上述规则的实现,一种最为常见的方法为时间戳方法。在时间戳方法中,在存储数据包的时候,根据数据包的接收次序给每个数据包附带上一个时间戳,然后在用户接口处比较多个虚通道之间的首包的时间戳大小,从而还原出它们之间原来的次序,再应用上述次序规则来保证数据包的读取符合协议规范要求。但上述的时间戳方法会面临时间戳溢出的问题。例如,用8个位表示时间戳,即时间戳可以用数字0-255表示。假设当前有3个数据包,对于第一个数据包用数字254表示,对于第二个数据包用数字255表示,在表示第三个数据包时,由于8位已满,因此只能用0表示,这种情况就是时间戳溢出。时间戳溢出容易对不同数据包间的时间顺序造成混乱,因此在现有技术中需要通过定时同步多个虚通道之间的数据包来保证时间顺序的正确性。采用时间戳的规则实现方法由于需要频繁的同步而具有效率低下的缺陷,且整个方法还具有实现复杂,消耗硬件资源多的缺陷。
技术实现思路
本专利技术的目的是克服现有的时间戳方法在实现多通道顺序规则时效-->率低下、实现复杂、消耗硬件资源多的缺陷,从而提供一种能够方便地实现多通道顺序规则的装置。本专利技术提供了一种用于维持多通道顺序规则的装置,包括读控制逻辑、写控制逻辑、分别用于缓存NP包、P包以及R包的三个缓冲区,还包括用于记录各个数据包的包首地址的包地址次序池,以及用于记录NP包的包首地址的NP_L寄存器和用于记录R包的包首地址的R_L寄存器;所述的缓冲区与所述的包地址次序池并行连接在所述的写控制逻辑与所述的读控制逻辑之间;所述的NP_L寄存器、R_L寄存器和所述的读控制逻辑连接;所述的缓冲区与所述的包地址次序池采用先进先出队列;其中,所述的写控制逻辑用于从外部得到数据包后,根据所述数据包的类型将所述数据包分别写入对应的缓冲区中,并将所述数据包中的P包以及PPW位无效的NP包和R包的包首地址按照所述数据包的输入顺序写入所述的包地址次序池中;所述的包地址次序池用于将位于队列头部的NP包或R包的包首地址弹出后,将所述NP_L寄存器或R_L寄存器设为有效状态,并根据所述寄存器的有效状态,将所述NP包或R包缓冲区头部的数据包设为可读状态;所述的NP包或R包缓冲区用于将PPW位有效的数据包直接设为可读状态;所述的P包缓冲区用于将与所述包地址次序池的队列头部的包首地址相一致的数据包设为可读状态;所述的读控制逻辑用于将设为可读状态的数据包读出。上述技术方案中,所述缓冲区与所述包地址次序池采用双端口RAM。上述技术方案中,所述的NP_L寄存器用于指示是否允许NP包从保存NP包的缓存中读出。上述技术方案中,所述的R_L寄存器用于指示是否允许R包从保存R包的缓存中读出。本专利技术还提供了一种在用于维持多通道顺序规则的装置上实现数据包写操作的方法,包括:步骤1)、对要写入缓冲区的数据包的类型进行检查;步骤2)、将数据包中的P包写入对应的缓冲区,并将所述P包的包首在缓冲区中的地址按数据包的输入顺序写入包地址次序池中;步骤3)、将数据包中的NP包和R包写入对应的缓冲区,并对所述-->NP包和R包的PPW的有效性进行判断;步骤4)、将PPW位无效的NP包和R包的包首在缓冲区中的地址按数据包的输入顺序写入包地址次序池中。本专利技术又提供了一种在用于维持多通道顺序规则的装置上实现数据包读操作的方法,包括:步骤1)、当所述包地址次序池中位于头部的数据为NP包的包首地址或R包的包首地址时,将所述的NP包的包首地址弹出并写入所述的NP_L寄存器,或将所述的R包的包首地址弹出并写入所述的R_L寄存器,并将所述的NP_L寄存器或R_L寄存器置为有效状态;步骤2)、在所述的NP包或R包的缓冲区中,对缓冲区头部的数据包的PPW位进行判断,将所述PPW位为有效状态的数据包设为可读状态后结束操作,对所述PPW位为无效状态的数据包执行下一步;步骤3)、检查与所述数据包对应的NP_L寄存器或R_L寄存器的状态,若对应寄存器的状态为有效状态,则将所述数据包设为可读状态后执行下一步,否则禁止对所述数据包的读取,并重复执行本步骤;步骤4)、当所述数据包从所述缓冲区的头部弹出后,比较该数据包的包首地址与对应的NP_L寄存器或R_L寄存器中的内容,当两者相等时,将对应寄存器的状态本文档来自技高网
...

【技术保护点】
一种用于维持多通道顺序规则的装置,包括读控制逻辑、写控制逻辑、分别用于缓存NP包、P包以及R包的三个缓冲区,其特征在于,还包括用于记录各个数据包的包首地址的包地址次序池,以及用于记录NP包的包首地址的NP_L寄存器和用于记录R包的包首地址的R_L寄存器;所述的缓冲区与所述的包地址次序池并行连接在所述的写控制逻辑与所述的读控制逻辑之间;所述的NP_L寄存器、R_L寄存器和所述的读控制逻辑连接;所述的缓冲区与所述的包地址次序池采用先进先出队列;其中, 所述的写控制逻辑用于从外部得到数据包后,根据所述数据包的类型将所述数据包分别写入对应的缓冲区中,并将所述数据包中的P包以及PPW位无效的NP包和R包的包首地址按照所述数据包的输入顺序写入所述的包地址次序池中; 所述的包地址次序池用于将位于队列头部的NP包或R包的包首地址弹出后,将所述NP_L寄存器或R_L寄存器设为有效状态,并根据所述寄存器的有效状态,将所述NP包或R包缓冲区头部的数据包设为可读状态; 所述的NP包或R包缓冲区用于将PPW位有效的数据包直接设为可读状态; 所述的P包缓冲区用于将与所述包地址次序池的队列头部的包首地址相一致的数据包设为可读状态; 所述的读控制逻辑用于将设为可读状态的数据包读出。...

【技术特征摘要】
1、一种用于维持多通道顺序规则的装置,包括读控制逻辑、写控制逻辑、分别用于缓存NP包、P包以及R包的三个缓冲区,其特征在于,还包括用于记录各个数据包的包首地址的包地址次序池,以及用于记录NP包的包首地址的NP_L寄存器和用于记录R包的包首地址的R_L寄存器;所述的缓冲区与所述的包地址次序池并行连接在所述的写控制逻辑与所述的读控制逻辑之间;所述的NP_L寄存器、R_L寄存器和所述的读控制逻辑连接;所述的缓冲区与所述的包地址次序池采用先进先出队列;其中,所述的写控制逻辑用于从外部得到数据包后,根据所述数据包的类型将所述数据包分别写入对应的缓冲区中,并将所述数据包中的P包以及PPW位无效的NP包和R包的包首地址按照所述数据包的输入顺序写入所述的包地址次序池中;所述的包地址次序池用于将位于队列头部的NP包或R包的包首地址弹出后,将所述NP_L寄存器或R_L寄存器设为有效状态,并根据所述寄存器的有效状态,将所述NP包或R包缓冲区头部的数据包设为可读状态;所述的NP包或R包缓冲区用于将PPW位有效的数据包直接设为可读状态;所述的P包缓冲区用于将与所述包地址次序池的队列头部的包首地址相一致的数据包设为可读状态;所述的读控制逻辑用于将设为可读状态的数据包读出。2、根据权利要求1所述的用于维持多通道顺序规则的装置,其特征在于,所述缓冲区与所述包地址次序池采用双端口RAM。3、根据权利要求1所述的用于维持多通道顺序规则的装置,其特征在于,所述的NP_L寄存器用于指示是否允许NP包从保存NP包的缓存中读出。4、根据权利要求1所述的用于维持多通道顺序规则的装置,其特征在于,所述的R_L寄存器用于指示是否允许R包从保存R包的缓存中读出。5、一种在权利要求1-4之一的用于维持多通道顺序规则的装置上实现数据包写操作的方法,包括:步骤1)、对要写入缓冲区的数据包的类型进行检查;步骤2)、将数据包中的P包写入对应的缓冲区,并将所述P包的包首在缓冲区中的地址按数据包的输入顺序写入包地址次序池中;步骤3)、将数据包中的NP包和R包写入对应的缓冲区,并对所述NP包和R包的PPW的有效性进行判断;步骤4)、将PPW位无效的NP包和R包的包首在缓冲区中的地址按数据包的输入顺序写入包地址次序池中。6、一种在权利要求1-4之一的用于维持多通道顺序规则的装置上实现数据包读操作的方法,包括:步骤1)、当所述包地址次序池中位于头部的数据为NP包的包首地址或R包的包首地址时,将所述的NP包的包首地址弹出并写入所述的NP_L寄存器,或将所述的R包的包首地址弹出并写入所述的R_L寄存...

【专利技术属性】
技术研发人员:陈飞杨晓君孙凝晖赵晓芳安学军
申请(专利权)人:中国科学院计算技术研究所
类型:发明
国别省市:11[中国|北京]

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

1