CN101383773B - 一种用于维持多通道顺序规则的装置及相应方法 - Google Patents

一种用于维持多通道顺序规则的装置及相应方法 Download PDF

Info

Publication number
CN101383773B
CN101383773B CN2008102237251A CN200810223725A CN101383773B CN 101383773 B CN101383773 B CN 101383773B CN 2008102237251 A CN2008102237251 A CN 2008102237251A CN 200810223725 A CN200810223725 A CN 200810223725A CN 101383773 B CN101383773 B CN 101383773B
Authority
CN
China
Prior art keywords
bag
packet
address
register
buffering area
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.)
Active
Application number
CN2008102237251A
Other languages
English (en)
Other versions
CN101383773A (zh
Inventor
陈飞
杨晓君
孙凝晖
赵晓芳
安学军
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Honor Device Co Ltd
Original Assignee
Institute of Computing Technology of CAS
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Institute of Computing Technology of CAS filed Critical Institute of Computing Technology of CAS
Priority to CN2008102237251A priority Critical patent/CN101383773B/zh
Publication of CN101383773A publication Critical patent/CN101383773A/zh
Application granted granted Critical
Publication of CN101383773B publication Critical patent/CN101383773B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

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

Description

一种用于维持多通道顺序规则的装置及相应方法
技术领域
本发明涉及总线数据传输,特别涉及用于维持多通道顺序规则的装置及相应方法。
背景技术
在总线的数据传输过程中,为了实现链路的高效利用,同时也为了减少不同类别的数据包之间不必要的相互阻塞,把所要传送的数据包划分为多个类别,每一类数据包在逻辑上占用各自的虚通道,在物理上复用同一个物理链路。以现有技术中常见的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寄存器和所述的读控制逻辑连接;所述的缓冲区与所述的包地址次序池采用先进先出队列;其中,所述的NP包、P包以及R包分别为在虚通道NonPosted Channel、虚通道Posted Channel以及虚通道Respond Channel中所传输的数据包;所述的包首地址为数据包的包首所写入的缓冲区的类别及地址;
所述的写控制逻辑用于从外部得到数据包后,根据所述数据包的类型将所述数据包分别写入对应的缓冲区中,并将所述数据包中的P包以及PPW位无效的NP包和R包的包首地址按照所述数据包的输入顺序写入所述的包地址次序池中;所述PPW位为所述NP包、P包以及R包的头部用于表示是否提高数据包优先级的位;
所述的包地址次序池用于将位于队列头部的NP包或R包的包首地址弹出后存储到所述NP_L寄存器或R_L寄存器,将所述NP_L寄存器或R_L寄存器设为有效状态,并根据所述寄存器的有效状态,将所述NP包或R包缓冲区头部的数据包设为可读状态;
所述的NP包或R包缓冲区用于将PPW位有效的数据包直接设为可读状态;
所述的P包缓冲区用于将与所述包地址次序池的队列头部的包首地址相一致的数据包设为可读状态;
所述的读控制逻辑用于将设为可读状态的数据包读出;其中,当读取NP包或R包时,将所读取的数据包的包首地址与所述NP_L寄存器或R_L寄存器的包首地址进行比较,如果两者一致,则将所述NP_L寄存器或R_L寄存器中表示地址有效的标志置为无效,否则继续从相应缓冲中读取数据包。
上述技术方案中,所述缓冲区与所述包地址次序池采用双端口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)、检查与所述PPW位为无效状态的数据包对应的NP_L寄存器或R_L寄存器的状态,若对应寄存器的状态为有效状态,则将所述PPW位为无效状态的数据包设为可读状态后执行下一步,否则禁止对所述PPW位为无效状态的数据包的读取,并重复执行本步骤;
步骤4)、当所述PPW位为无效状态的数据包从所述缓冲区的头部弹出后,比较该数据包的包首地址与对应的NP_L寄存器或R_L寄存器中的内容,当两者相等时,将对应寄存器的状态设置为无效状态。
本发明还提供了一种在用于维持多通道顺序规则的装置上实现数据包传输的方法,包括:
步骤1)、将所要传输的数据包按照类型分别存储在对应的缓冲区中,并将所述数据包中的P包以及PPW位无效的NP包和R包的包首地址按照所述数据包的输入顺序依次写入所述的包地址次序池中;
步骤2)、当所述包地址次序池中位于头部的数据为NP包的包首地址或R包的包首地址时,将所述的NP包的包首地址弹出并写入所述的NP_L寄存器,或将所述的R包的包首地址弹出并写入所述的R_L寄存器,并将所述的NP_L寄存器或R_L寄存器置为有效状态;
步骤3)、在所述的NP包或R包的缓冲区中,对缓冲区头部的数据包的PPW位进行判断,将所述PPW位为有效状态的数据包设为可读状态后结束操作,对所述PPW位为无效状态的数据包执行下一步;
步骤4)、检查与所述数据包对应的NP_L寄存器或R_L寄存器的状态,若对应寄存器的状态为有效状态,则将所述数据包设为可读状态后执 行下一步,否则禁止对所述数据包的读取,并重复执行本步骤;
步骤5)、当所述数据包从所述缓冲区的头部弹出后,比较该数据包的包首地址与对应的NP_L寄存器或R_L寄存器中的内容,当两者相等时,将对应寄存器的状态设置为无效状态。
上述技术方案中,在所述的步骤3)中,还包括:
步骤3-1)、所述P包的缓冲区发现有数据包后,将该缓冲区头部的P包的包首地址与所述包地址次序池中位于头部的数据包的包首地址进行比较,若包地址次序池中位于头部的数据包为P包,且两个P包的包首地址一致时,将位于所述P包缓冲区的头部的P包设为可读,并执行下一步,否则将位于所述P包缓冲区的头部的P包设为不可读,并重新执行本步骤;
步骤3-2)、当用户将所述P包从缓冲区中读取后,将所述包地址次序池中位于头部的P包的包首地址弹出。
本发明的优点在于:
1、本发明通过在现有装置中添加包地址次序池以及对NP包、R包的寄存器,实现了对NP包、P包和R包等三种数据包的传输,并使得该传输过程在满足多通道顺序规则的同时,避免了现有技术中效率低下、实现复杂、消耗硬件资源多等缺陷。
2、本发明适用于在计算机领域广泛采用的HyperTransport和PCI-E协议规范,具有广泛的应用性。
附图说明
以下,结合附图来详细说明本发明的实施例,其中:
图1为现有技术中总线中的虚通道实现数据传输时的示意图;
图2为本发明的维持多通道顺序规则装置在一个实施例中的结构图;
图3为本发明的维持多通道顺序规则装置中的写控制逻辑在分配数据包时的流程图;
图4为本发明的维持多通道顺序规则装置中的包地址次序池对不同数据包的包首地址的处理流程;
图5为本发明的维持多通道顺序规则装置中的数据包缓冲区对数据包的处理流程。
具体实施方式
下面结合附图和具体实施方式对本发明加以说明。
在图2中给出了本发明的维持多通道顺序规则装置的一个实施例,从图中可以看出,与图1所示的现有技术的相应装置相比,本发明的装置除了具有分别用于缓存NP包、P包以及R包的三个缓冲区外,还增加了用于记录各个数据包的包首地址的包地址次序池,前述的三个缓冲区与包地址次序池分别连接在写控制逻辑和读控制逻辑之间。在读控制逻辑上还连接有用于记录某个特定NP包的包首地址的NP_L寄存器,以及用于记录某个特定R包的包首地址的R_L寄存器。串行的数据包通过写控制逻辑写入缓冲区后,读控制逻辑在包地址次序池以及NP_L寄存器、R_L寄存器的辅助下读出数据包,并通过用户接口输出。
在上述装置中,三个缓冲区以及包地址次序池都是先进先出队列(FIFO),在一个实施例中它们由双端口RAM构成,当数据写入FIFO的时候,可以从RAM的端口获得写入的地址。当数据从FIFO中读出的时候,也可以从RAM的端口获得当前读取的地址。三个缓冲区对数据包进行存储,而包地址次序池则对所存储的数据包的包首所写入的缓冲区的类别及地址进行存储,此处所述的包首所写入的缓冲区的类别及地址也就是前文中所提及的包首地址,在以下的描述中统一用包首地址进行说明。
NP_L寄存器或R_L寄存器用来指出NP包或R包是否允许从相应的缓冲中读出,当NP_L寄存器或者R_L寄存器中的内容是任意一个有效值时,则允许NP缓冲或者R缓冲队列中的第一个数据包被读出;当上述寄存器的内容为一个空值时,则不允许NP缓冲或者R缓冲中的数据包被读取。
写控制逻辑用于将数据包写入对应的缓冲区中,并将PPW位无效的NP包或R包的包首在缓冲区中的地址写入包地址次序池中,对于P包,则无需考虑PPW位有效与否,都要将包首在缓冲区中的地址写入包地址次序池中。
本发明装置中的其它部件在现有技术中已经存在,此处不对它们做重复说明。
在本发明的维持多通道顺序规则装置的基础上,结合相应的方法可以实现对多通道顺序规则的维持。下面结合具体的实例,对具体的实现过程加以说明。
假设外接的物理链路串行输入多个数据包,这些数据包有NP包、P包以及R包等多种类型。在此用如下方式对数据包进行标记:类型+序号, 如NP1包、NP2包、P1包、P2包、R1包、R2包等。为了后续说明的方便,在下面的一个实施例中,给出一串串行输入的数据包集合,它包括:
NP1、NP2、P1、P2、R1、P3、R2
上述各个数据包首先由写控制逻辑进行分配,如图3所示,写控制逻辑对这些数据包的类型进行检查,若为P包,则将数据包写入P包缓冲区中,并将包首地址存储到包地址次序池中;若不是P包,则还需要对数据包的用于标定优先级的PPW位进行检查,若PPW位有效,则将数据包写入相应的缓冲区后即可,若PPW位无效,则不仅要将数据包写入相应的缓冲区,还要将包首地址存储到包地址次序池中。
对于上述实施例中所列举的数据包集合,假设上述数据包的用于标定优先级的PPW位都无效,则各个缓冲区中按从左到右先后顺序存储的数据包分别如下:
NP1、NP2
P1、P2、P3
R1、R2
而在包地址次序池中,各个数据包的包首地址如下:
NP1、NP2、P1、P2、R1、P3、R2
在上述说明中,由于包首地址包括数据包所写入的缓冲区的类型,以及在该类型的缓冲区中的地址。因此,采用了类型+地址的方式对各个数据包的包首地址加以说明。同时为了描述的方便,将NP1包的包首地址同样可以用NP1表示,其它数据包也同样如此。
完成上述操作后,读控制逻辑开始从各个缓冲区读取数据包。如图4所示,由于NP缓冲、P缓冲、R缓冲非空,因此,需要读控制逻辑选择是读取NP1包、P1包还是R1包。根据包地址次序池中所存储的信息可以知道,在正常情况下,应该首先读取NP1包,而P1包和R1包的读取顺序则依次在后。但存在着这样一种可能:用户接口中与NP包相关的数据通道忙碌,无法及时读取NP1包,而与P包相关的数据通道则空闲,可以读取P1包。但由于此时包地址次序池中NP1包的包首地址没有被弹出,P1包的包首地址并不在包地址次序池的出口,造成了P1包也无法被读取,这就违背了前述规则第3条中的“无论P包的PPW位有效与否,P包都可以并且必须可以超越NP包和R包,否则有可能产生死锁”。对于这种情况,可以通过本发明装置中的NP_L寄存器解决。将NP1包的包首地址 从包地址次序池中弹出后存储到NP_L寄存器中,并将该寄存器中的包首地址标记为有效,包地址次序池的出口处变为NP2包的包首地址。此时,用户接口中与NP包相关的数据通道可能仍然忙碌,因此,同样将NP2包的包首地址从包地址次序池中弹出,并将NP_L寄存器中所存储的数据改为NP2包的包首地址。该操作完成后,包地址次序池的出口处变为P1包的包首地址,读控制逻辑将P缓冲区的第一个数据包设为可读,然后根据P1包的包首地址从P包缓冲中读取P1包,并传输到用户接口中。在后续的某一时刻,如图5所示,若用户接口中与NP包相关的数据通道由忙碌变为空闲,则检查NP_L寄存器当前的状态,由于寄存器中地址有效,因此读控制逻辑从NP包缓冲中读出数据包,然后将所读取数据包的包首地址与NP_L寄存器的包首地址进行比较,如果两者一致,则将寄存器中表示地址有效的标志置为无效,否则继续从NP包缓冲中读取数据包。上述实例中,读控制逻辑先后读取NP1、NP2,并在读取NP2后将NP_L寄存器中所存储的地址标志为无效。以上是以NP包为例,对如何维护规则的第3条加以说明。图5中用x_L代替了NP_L或R_L,这说明上述方法对于R包同样适用。例如,在后续读取R1包时,若用户接口中与R包相关的数据通道忙碌,则将R包的包首地址存储到R_L寄存器中,然后对P3包进行读取;当与R包相关的通道空闲后,再从R包的缓冲中读取R1包。通过上述操作,可以保证规则第3条的实现。
在上述的数据包读取过程中,还可能存在着这样一种情况:当读控制逻辑要读取P2包时,用户接口中与P包相关的通道变得忙碌,导致了读控制逻辑无法读取P2包,而用户接口中与R包相关的通道则为空闲。由于此时包地址次序池中出口处为P2包的包首地址,而对于P包而言,并不存在类似NP_L寄存器或R_L寄存器那样的寄存器,因此,可以维持规则第5条中的“PPW无效的NP包和R包都不允许超越P包”。
以上是对PPW无效时相关情况的说明,当PPW有效时,NP包和R包的包首地址不再需要写入到包地址次序池中,当用户接口中与NP包或R包相关的通道空闲时,就可以直接通过读控制逻辑从相应缓冲中读取数据包,而无需考虑与P包间的先后关系。此类操作满足规则第4条“PPW有效的NP包和R包都可以,但不是必须能够超越P包”。
当NP包与R包的PPW无效时,当用户接口中相应的通道忙碌时,它们的包首地址被存储在各自的寄存器中,直到通道空闲后才进行数据包 的读取。由于NP_L寄存器与R_L寄存器之间不存在逻辑关系,因此,NP包与R包间可以相互超越。而当NP包与R包的PPW有效时,两种数据包分别存储在各自的缓冲中,它们是否能够被读控制逻辑读取只与用户接口中相应的通道是否空闲有关,相互之间也不存在逻辑关系。因此,满足规则第6条“NP包与R包之间无论PPW是否被置位,都可以相互超越”。
由于各个缓冲都采用先进先出方式,因此规则第7条“同属一个虚通道内的数据包不能相互超越”显然也是满足的。
综合上述说明,可以知道,将本发明的维持多通道顺序规则装置与方法相结合可以实现规则中的各个条件。与现有技术中的时间戳方法相比,无需同步且简单易行。
最后所应说明的是,以上实施例仅用以说明本发明的技术方案而非限制。尽管参照实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,对本发明的技术方案进行修改或者等同替换,都不脱离本发明技术方案的精神和范围,其均应涵盖在本发明的权利要求范围当中。

Claims (8)

1.一种用于维持多通道顺序规则的装置,包括读控制逻辑、写控制逻辑、分别用于缓存NP包、P包以及R包的三个缓冲区,其特征在于,还包括用于记录各个数据包的包首地址的包地址次序池,以及用于记录NP包的包首地址的NP_L寄存器和用于记录R包的包首地址的R_L寄存器;所述的缓冲区与所述的包地址次序池并行连接在所述的写控制逻辑与所述的读控制逻辑之间;所述的NP_L寄存器、R_L寄存器和所述的读控制逻辑连接;所述的缓冲区与所述的包地址次序池采用先进先出队列;其中,所述的NP包、P包以及R包分别为在虚通道NonPosted Channel、虚通道Posted Channel以及虚通道Respond Channel中所传输的数据包;所述的包首地址为数据包的包首所写入的缓冲区的类别及地址;
所述的写控制逻辑用于从外部得到数据包后,根据所述数据包的类型将所述数据包分别写入对应的缓冲区中,并将所述数据包中的P包以及PPW位无效的NP包和R包的包首地址按照所述数据包的输入顺序写入所述的包地址次序池中;所述PPW位为所述NP包、P包以及R包的头部用于表示是否提高数据包优先级的位;
所述的包地址次序池用于将位于队列头部的NP包或R包的包首地址弹出后存储到所述NP_L寄存器或R_L寄存器,将所述NP_L寄存器或R_L寄存器设为有效状态,并根据所述寄存器的有效状态,将所述NP包或R包缓冲区头部的数据包设为可读状态;
所述的NP包或R包缓冲区用于将PPW位有效的数据包直接设为可读状态;
所述的P包缓冲区用于将与所述包地址次序池的队列头部的包首地址相一致的数据包设为可读状态;
所述的读控制逻辑用于将设为可读状态的数据包读出;其中,当读取NP包或R包时,将所读取的数据包的包首地址与所述NP_L寄存器或R_L寄存器的包首地址进行比较,如果两者一致,则将所述NP_L寄存器或R_L寄存器中表示地址有效的标志置为无效,否则继续从相应缓冲中读取数据包。
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寄存器,并将所述的NP_L寄存器或R_L寄存器置为有效状态;
步骤2)、在所述的NP包或R包的缓冲区中,对缓冲区头部的数据包的PPW位进行判断,将所述PPW位为有效状态的数据包设为可读状态后结束操作,对所述PPW位为无效状态的数据包执行下一步;
步骤3)、检查与所述PPW位为无效状态的数据包对应的NP_L寄存器或R_L寄存器的状态,若对应寄存器的状态为有效状态,则将所述PPW位为无效状态的数据包设为可读状态后执行下一步,否则禁止对所述PPW位为无效状态的数据包的读取,并重复执行本步骤;
步骤4)、当所述PPW位为无效状态的数据包从所述缓冲区的头部弹出后,比较该数据包的包首地址与对应的NP_L寄存器或R_L寄存器中的内容,当两者相等时,将对应寄存器的状态设置为无效状态。
7.一种在权利要求1-4之一的用于维持多通道顺序规则的装置上实现数据包传输的方法,包括:
步骤1)、将所要传输的数据包按照类型分别存储在对应的缓冲区中,并将所述数据包中的P包以及PPW位无效的NP包和R包的包首地址按照所述数据包的输入顺序依次写入所述的包地址次序池中;
步骤2)、当所述包地址次序池中位于头部的数据为NP包的包首地址或R包的包首地址时,将所述的NP包的包首地址弹出并写入所述的NP_L寄存器,或将所述的R包的包首地址弹出并写入所述的R_L寄存器,并将所述的NP_L寄存器或R_L寄存器置为有效状态;
步骤3)、在所述的NP包或R包的缓冲区中,对缓冲区头部的数据包 的PPW位进行判断,将所述PPW位为有效状态的数据包设为可读状态后结束操作,对所述PPW位为无效状态的数据包执行下一步;
步骤4)、检查与所述数据包对应的NP_L寄存器或R_L寄存器的状态,若对应寄存器的状态为有效状态,则将所述数据包设为可读状态后执行下一步,否则禁止对所述数据包的读取,并重复执行本步骤;
步骤5)、当所述数据包从所述缓冲区的头部弹出后,比较该数据包的包首地址与对应的NP_L寄存器或R_L寄存器中的内容,当两者相等时,将对应寄存器的状态设置为无效状态。
8.根据权利要求7所述的在用于维持多通道顺序规则的装置上实现数据包传输的方法,其特征在于,在所述的步骤3)中,还包括:
步骤3-1)、所述P包的缓冲区发现有数据包后,将该缓冲区头部的P包的包首地址与所述包地址次序池中位于头部的数据包的包首地址进行比较,若包地址次序池中位于头部的数据包为P包,且两个P包的包首地址一致时,将位于所述P包缓冲区的头部的P包设为可读,并执行下一步,否则将位于所述P包缓冲区的头部的P包设为不可读,并重新执行本步骤;
步骤3-2)、当用户将所述P包从缓冲区中读取后,将所述包地址次序池中位于头部的P包的包首地址弹出。
CN2008102237251A 2008-10-09 2008-10-09 一种用于维持多通道顺序规则的装置及相应方法 Active CN101383773B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN2008102237251A CN101383773B (zh) 2008-10-09 2008-10-09 一种用于维持多通道顺序规则的装置及相应方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN2008102237251A CN101383773B (zh) 2008-10-09 2008-10-09 一种用于维持多通道顺序规则的装置及相应方法

Publications (2)

Publication Number Publication Date
CN101383773A CN101383773A (zh) 2009-03-11
CN101383773B true CN101383773B (zh) 2011-08-17

Family

ID=40463401

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2008102237251A Active CN101383773B (zh) 2008-10-09 2008-10-09 一种用于维持多通道顺序规则的装置及相应方法

Country Status (1)

Country Link
CN (1) CN101383773B (zh)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1374662A (zh) * 2001-03-09 2002-10-16 矽统科技股份有限公司 多通道存储管理系统
CN1462118A (zh) * 2002-05-27 2003-12-17 华为技术有限公司 虚级联中序列号排序的处理方法
EP1638223A1 (en) * 2003-05-23 2006-03-22 ZTE Corporation A virtual concatenation delay compensation resumable apparatus
CN101039270A (zh) * 2007-03-12 2007-09-19 杭州华为三康技术有限公司 支持多通道数据传输的数据传输装置及方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1374662A (zh) * 2001-03-09 2002-10-16 矽统科技股份有限公司 多通道存储管理系统
CN1462118A (zh) * 2002-05-27 2003-12-17 华为技术有限公司 虚级联中序列号排序的处理方法
EP1638223A1 (en) * 2003-05-23 2006-03-22 ZTE Corporation A virtual concatenation delay compensation resumable apparatus
CN101039270A (zh) * 2007-03-12 2007-09-19 杭州华为三康技术有限公司 支持多通道数据传输的数据传输装置及方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
邵蓉.多通道快速数据栈区的设计.《控制工程》.2003,第10卷(第1期), *

Also Published As

Publication number Publication date
CN101383773A (zh) 2009-03-11

Similar Documents

Publication Publication Date Title
CN100595720C (zh) 用于基于集线器的存储系统中直接存储器访问的设备和方法
CN100444131C (zh) 具有仲裁分组协议的存储器仲裁系统及方法
CN101930416B (zh) 硬件协助处理器间的沟通
JP4480845B2 (ja) メモリー幅の非常に広いtdmスイッチシステム
CN108366111B (zh) 一种用于交换设备的数据包低时延缓存装置与方法
WO2021207919A1 (zh) 控制器、存储器件访问系统、电子设备和数据传输方法
KR20110089321A (ko) 직렬 포트 메모리 통신 레이턴시 및 신뢰성을 향상시키기 위한 방법 및 시스템
CN105656807B (zh) 一种网络芯片多通道数据传输方法及传输装置
EP2038744A1 (en) Method and system of grouping interrupts from a time-dependent data storage means
CN102866980A (zh) 用于多核微处理器片上互连网络的网络通信胞元
US10055365B2 (en) Shared buffer arbitration for packet-based switching
CN103617132B (zh) 一种基于共享存储的以太网终端发送实现方法及终端装置
WO2007147435A1 (en) Method for transmitting a datum from a time-dependent data storage means
CN102388359B (zh) 信号保序方法和装置
CN106101737A (zh) 一种支持实时视频缓存多路读取的帧调整方法
CN101291275B (zh) Spi4.2总线桥接实现方法及spi4.2总线桥接器件
CN101383773B (zh) 一种用于维持多通道顺序规则的装置及相应方法
US20090097494A1 (en) Packet forwarding method and device
CN102118304B (zh) 一种信元交换方法和装置
US10637780B2 (en) Multiple datastreams processing by fragment-based timeslicing
CN102521180B (zh) 一种多通道实时直读存储器结构
JP2010206775A (ja) 並行シリアル通信方法
JP2009206696A (ja) 伝送システム
CN114302089A (zh) 一种基于fpga的多路视频信号缓存控制方法及系统
CN103853692B (zh) 一种基于中断判断机制的多处理器数据通讯方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
ASS Succession or assignment of patent right

Owner name: HUAWEI TECHNOLOGY CO., LTD.

Free format text: FORMER OWNER: INSTITUTE OF COMPUTING TECHNOLOGY, CHINESE ACADEMY OF SCIENCES

Effective date: 20130522

C41 Transfer of patent application or patent right or utility model
COR Change of bibliographic data

Free format text: CORRECT: ADDRESS; FROM: 100190 HAIDIAN, BEIJING TO: 518129 SHENZHEN, GUANGDONG PROVINCE

TR01 Transfer of patent right

Effective date of registration: 20130522

Address after: 518129 Bantian HUAWEI headquarters office building, Longgang District, Guangdong, Shenzhen

Patentee after: HUAWEI TECHNOLOGIES Co.,Ltd.

Address before: 100190 Haidian District, Zhongguancun Academy of Sciences, South Road, No. 6, No.

Patentee before: Institute of Computing Technology, Chinese Academy of Sciences

TR01 Transfer of patent right

Effective date of registration: 20210427

Address after: Unit 3401, unit a, building 6, Shenye Zhongcheng, No. 8089, Hongli West Road, Donghai community, Xiangmihu street, Futian District, Shenzhen, Guangdong 518040

Patentee after: Honor Device Co.,Ltd.

Address before: 518129 Bantian HUAWEI headquarters office building, Longgang District, Guangdong, Shenzhen

Patentee before: HUAWEI TECHNOLOGIES Co.,Ltd.

TR01 Transfer of patent right