CN1700673A - 数据处理设备和流控制方法 - Google Patents
数据处理设备和流控制方法 Download PDFInfo
- Publication number
- CN1700673A CN1700673A CNA2005100684064A CN200510068406A CN1700673A CN 1700673 A CN1700673 A CN 1700673A CN A2005100684064 A CNA2005100684064 A CN A2005100684064A CN 200510068406 A CN200510068406 A CN 200510068406A CN 1700673 A CN1700673 A CN 1700673A
- Authority
- CN
- China
- Prior art keywords
- value
- header
- packet
- data
- size
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4204—Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
- G06F13/4221—Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being an input/output bus, e.g. ISA bus, EISA bus, PCI bus, SCSI bus
- G06F13/4226—Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being an input/output bus, e.g. ISA bus, EISA bus, PCI bus, SCSI bus with asynchronous protocol
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
- G06F15/163—Interprocessor communication
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Software Systems (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Information Transfer Systems (AREA)
Abstract
一种数据处理设备,包括,第一装置(22);与所述第一装置(22)通信的第二装置(21);一种置于所述第二装置(21)内,并保留从所述第一装置(22)传送来的数据包的接收缓冲器,其中每一个所述数据包是包括报头和变长数据的数据包,或是包括报头但不包括数据的另一种数据包;计数单元(202,203),其置于所述第二装置(21)内,并根据每一个从所述接收缓冲器(101)输出的所述数据包中包含的每一个报头和数据的大小对表示所处理的报头的大小的第一值和表示所处理的数据的大小的第二值进行计数;以及流控制信息传送单元(205,206),其置于所述第二装置(21)内,并当所述第一值或所述第二值达到一个对应的参考值时,将表示可被所述第二装置(21)接收的每一个报头和数据的大小的流控制信息传送给所述第一装置(22)。
Description
技术领域
本发明涉及一种诸如计算机和通信装置的数据处理设备,以及一种用于执行数据处理设备中的流控制的方法。
背景技术
被称为PCI EXPRESS的第三代通用I/O互联接口近来被应用于数据处理设备,比如计算机,通信装置和音频视频设备。PCI EXPRESS是通过一系列接口互联装置的标准,它定义为外围部件互联专业组(PCI SIG)。在PCI EXPRESS中,使用数据包在装置之间传送信息。为了满足各种事务要求,比如存储器写请求,存储器读请求,I/O写请求和I/O读请求,在PCI EXPRESS中,不仅使用包括报头和变长数据的数据包,而且使用只包括报头但不包括数据的数据包。比如,作出存储器读请求的存储器读请求数据包和作出I/O读请求的I/O读请求数据包都只包括报头。
基于信用量的流控制被用于PCI EXPRESS。在这个流控制中,接收装置首先将接收装置中表示有效接收缓冲器的大小的信用量作为流控制信息通知传送装置。传送装置按照信用量规定的大小传送信息。在PCI EXPRESS中,可以使用计时器作为从接收装置到传送装置规律地传送信用量的方法。
然而,在上述方法中,只要计时器的值达到一个超时时间,在这段时间内传送装置有足够的信用量自由传送信息,信用量就从接收装置传送至传送装置。装置之间的通信带被无用的信用量传输所占用。超时时间越短,被信用量所占用的带越宽。如果超时时间相当长,传送装置就会缺少信用量,因而不能向接收装置传送信息。
日本专利申请公开出版号为9-205442在0007段公开了一种流控制技术,只要接收缓冲器中产生一个给定空间,表示空间大小的信用量就被传送至传送装置。然而,这种公开的流控制适用于采用固定长度数据包的异步传输模式网络,其报头和数据间没有区别。
在一个系统中同时采用包括报头和变长数据的数据包和仅包括报头的数据包,需要实现区别报头和数据的流控制,以防止接收缓冲器被包括大尺寸数据的数据包所占用。
发明内容
本发明的目的是提供一种数据处理设备和一种流控制方法,该方法能够实现区别报头和数据的流控制,并在适当时机将流控制信息传送给传送装置。
根据本发明的一个实施方式,数据处理设备包括第一装置;与所述第一装置通信的第二装置;置于第二装置内并且保存从所属第一装置传送来的数据包的接收缓冲器,其中每一个数据包或者是包括报头和变长数据,或者是包括报头但不包括数据;置于第二装置内的计数装置,根据包含在从接收缓冲器输出的每一个数据包中的每一个报头和数据的大小,对表示所处理的报头的大小的第一值和表示所处理数据大小的第二值进行计数;置于第二装置内的流控制信息传送单元,当第一值和第二值达到一个参考值时,它将表示可被第二装置接收的每一个报头和数据的大小的流控制信息传送到第一装置。
附图说明
附图,作为说明书的一部分,用以上的概述和以下的详细描述,说明了本发明的实施方式,解释了本发明的原理。
图1是根据本发明的一个实施方式的数据处理设备的系统结构的框图;
图2是表明根据本发明的一个实施方式的数据处理设备中装置之间互联的框图;
图3是表明根据本发明的一个实施方式的数据处理设备中每一个装置内的流控制单元的结构的框图;
图4是表明如图3所示的流控制单元中接收流控制更新单元的结构的框图;
图5是根据本发明的一个实施方式的数据处理设备中在装置之间传递的数据包的结构图;
图6是说明根据本发明的一个实施方式的数据处理设备所实现的流控制操作的流程图;
图7是表明根据本发明的一个实施方式的数据处理设备中每一个装置内的流控制单元的另一种结构的框图;
图8是说明根据本发明的一个实施方式的数据处理设备所实现的另一种流控制操作的流程图;
图9是表明图3或7所示的流控制单元中的接收流控制更新单元的另一种结构的框图;以及
图10是说明根据本发明的一个实施方式的数据处理设备所实现的另一种流控制操作的流程图;
具体实施方式
下面将参照附图对本发明的实施方式进行描述。
图1所示为根据本发明的一个实施方式的数据处理设备1的系统框图。
数据处理设备1可以是计算机,通信装置,音频视频设备等等。这里假设数据处理设备1以计算机来实现。
数据处理设备1包括中央处理单元(CPU)11,主机桥接器12,主存储器13,图形控制器14,I/O控制器15,硬盘驱动器(HDD)16和I/O装置17和18,如图1所示。CPU11是控制设备1工作的处理器。处理器执行从HDD16加载到主存储器13的各种程序(操作系统和应用程序)。主机桥接器12是桥接CPU11和I/O控制器15的桥装置。桥装置具有与图形控制器14通信的功能,并包括控制主存储器13的存储器控制器。在CPU11的控制下,I/O控制器15控制I/O装置17和18。I/O控制器15包括控制HDD16的集成驱动电子(IDE)控制器。
主机桥接器12,图形控制器14,I/O控制器15和I/O装置17和18是遵循PCI EXPRESS的装置(构件)。主机桥接器12和图形控制器14通过其间的PCI EXPRESS链路30互相通信。类似地,主机桥接器12和I/O控制器15通过其间的PCI EXPRESS链路30互相通信。而且,I/O控制器15和I/O装置17和18中的每一个通过其间的PCI EXPRESS链路30互相通信。
图2所示为遵循PCI EXPRESS的两装置(#A)21和(#B)22之间的互联。这些装置(#A)21和(#B)22的组合对应于主机桥接器12和图形控制器14的组合,主机桥接器12和I/O控制器15的组合,或者I/O控制器15和I/O装置17和18中的每一个的组合。
装置(#A)21和(#B)22通过PCI EXPRESS链路30相互连接。PCIEXPRESS链路30是一个以点到点形式连接装置(#A)21和(#B)22的串行接口(串行总线)。PCI EXPRESS链路30包括将信息从装置(#A)21传送到装置(#B)22的微分信号线对,和将信息从装置(#B)22传送到装置(#A)21的微分信号线对。通过PCI EXPRESS链路30在装置(#A)21和(#B)22间信息传送利用数据包来实现。
比如存储器写请求,存储器读请求,I/O写请求和I/O读请求的各项事务,全是利用数据包在装置(#A)21和(#B)22间传送的。
装置(#A)21和(#B)22分别包括流控制单元31和32,从而实现在装置(#A)21和(#B)22之间所传递的信息的流控制。装置(#A)21的流控制单元31将表示装置(#A)21内有效接收缓冲器大小的信用量值作为流控制信息传送给装置(#B)22的流控制单元32。装置(#B)22能够将对应于从装置(#A)21送来的信用量值所表示大小的信息传送给装置(#A)21。同样地,装置(#B)22的流控制单元32将表示装置(#B)22内有效接收缓冲器大小的信用量值作为控制信息传送给装置(#A)21的流控制单元31。装置(#A)21能够将对应于从装置(#B)22送来的信用量值所表示大小的信息传送给装置(#B)22。
参考图3中所示的每一个装置中的流控制单元的结构。装置(#A)21的流控制单元31作为典型如图3所示。
遵循PCI EXPRESS的每一个装置的功能被分为三层,事务层,数据链路层和物理层。流控制通过事务层来实现。流控制单元31的作用相当于事务层。
流控制单元31包括一个接收缓冲器101,接收流控制单元102和接收流控制更新单元103,如图3所示。
接收缓冲器101保存从装置(#B)22接收的数据包(事务层数据包TLP)。如图5所示,事务层数据包TLP包括报头和必要数据(数据有效载荷)。报头的大小是12字节或16字节。数据的大小是可变的,它的大小最小为0字节,最大为4千字节。换句话说,TLP是包括报头但不包括数据的数据包,或是包括报头和数据的数据包。TLP的流控制是以信用量为单位进行的。一个信用量是16字节。
例如,做出存储器读请求的存储器读请求数据包,做出I/O读请求的I/O读请求数据包,做出配置读请求的配置读请求数据包,它们中的每一个都只包括报头而不包括数据有效载荷。例如,做出存储器写请求的存储器写请求数据包包括报头和变长数据有效载荷。
从装置(#A)21的流控制单元31传送到装置(#B)22的流控制信息包括表示可接收的报头的大小的信用量值和表示可接收的数据的大小的信用量值。信用量值被称为信用量数(指信用量的数量)。流控制信息利用数据链路层产生的数据链路层数据包DLLP来传送。
TLP的报头包括多个域,它含有决定TLP的目标和特征的必要信息。TLP的报头也包括一个表示随后数据有效荷载大小的域。
当装置(#A)21被初始化时,流控制单元31用流控制DLLP(FCDLLP)将包括表示有效接收缓冲器101大小的初始信用量值的流控制信息传送给另一端的装置(#B)22。流控制信息包括表示可接收的报头的大小的信用量数和表示可接收数据大小的信用量数。装置(#A)21能够传送将对应于流控制信息所指定的报头和数据大小的报头和数据。
接收流控制单元102引用从装置(#B)22接收的TLP的报头,并获得包含在所接收的TLP中的报头和数据中的每一个的大小作为信用量信息。单元102执行写控制,允许所接收的TLP被写入接收缓冲器101,或者为了防止接收缓冲器101溢出而阻止它被写入。写控制基于在流控制信息所允许的被送入装置(#B)22的报头和数据大小,以及所接收的TLP的报头和数据大小完成。
根据包括在TLP中的报头的内容,接收流控制更新单元103获得从接收缓冲器101输出的TLP中报头和数据的每一个的大小作为信用量信息。然后,单元103在所得信用量信息的基础上将被处理的报头的大小和被处理的数据的大小计数。当对应于被处理的报头的大小的信用量数达到报头的更新信用P1时,或者当对应于被处理的数据大小的信用量数量达到数据更新信用量数P2时,单元103利用更新流控制DLLP(UpdateFC DLLP)将更新流控制信息传送给装置(#A)21。P1和P2由软件设置。UpdateFC DLLP是一种由数据链路层所产生的数据链路层数据包DLLP。更新流控制信息包括一个表示能够被装置(#A)21所接收的报头的大小的新的信用量数(指被更新的报头信用量的数量),和一个表示能够被装置(#A)21所接收的数据的大小的新的信用量数(指被更新的报头信用量的数量)。被更新的报头信用量数和被更新的数据信用量数被提供给接收流控制单元102。
图4所示为接收流控制更新单元103的结构。单元103包括报头/数据信用量检测器201,报头处理信用量计数器202,数据处理信用量计数器203,更新信用量产生器204和UpdateFC DLLP发布器205。
报头/数据信用量检测器201分析从接收缓冲器101输出的TLP重的报头,并检测TLP中每一个报头和数据的信用量数量。在任何TLP中,报头的信用量数永远是一个,另一方面,数据信用量数取决于包含在TLP中的数据大小。报头处理信用量数计数器202将报头的被处理的信用量数Q1计数。Q1是一个表明到目前为止从接收缓冲器101输出的被处理的报头的整体大小的以信用量为单位的值。因为包含在一个TLP中的报头的信用量数量永远是一个,接收缓冲器101每输出一个TLP,Q1增加1。换句话说,Q1与所处理的TLP数量一致。数据处理信用量计数器203将数据的被处理的信用量数Q2计数。Q2是一个表明到目前为止从接收缓冲器101输出的被处理的报头的整体大小的以信用量为单位的值。包含在一个TLP中的数据信用量数是可变的。接收缓冲器101每输出一个TLP,Q2增加相应于TLP中数据大小的信用量数。
更新信用量产生器204用于当一下情况之一发生时,计算更新报头信用量数和更新数据信用量数:报头的被处理的信用量Q1达到报头的更新信用量数P1,数据的被处理信用量Q2达到一个不小于数据的更新信用量数P2的值。例如,更新报头信用量的计算数与报头的处理信用量的当前数Q1一致,更新数据信用量的计算数与数据处理信用量的当前数量Q2一致。UpdateFC DLLP发布器205发布包括由产生器204计算的更新报头信用量数和更新数据信用量数的流控制信息作为UpdateFC DLLP,并将其传送至另一端的装置。
以下参考图6所示的流程图描述流控制单元31的工作。
首先,流控制单元31从软件中获得报头的更新信用量数P1和数据的更新信用量数P2(步骤S101)。P1和P2被保存在,比如,单元31中的寄存器中,被用作决定UpdateFC DLLP生成计时的参考值。然后,单元31初始化Q1和Q2,将它们置0(步骤S102)。
装置(#A)21的事务层从接收缓冲器顺序读出TLP,并顺序处理TLP。当TLP被处理时,装置(#A)21中的存储器和寄存器得到读/写访问。当一个TLP从接收缓冲器101中被读出(步骤S103中的是),流控制单元31根据TLP中报头和数据的每一个的信用量更新Q1和Q2(步骤S104)。Q1增加1,Q2增加TLP中数据信用量数。如果TLP不包括数据,Q2不被更新。
如果以下条件中的任一个被满足(步骤S105中的是或步骤S105中的是),流控制单元31产生包括更新报头信用量数和更新数据信用量数的流控制信息作为UpdateFC DLLP(步骤S107):
P1=Q1
P2≤Q2
UpdateFC DLLP被传送到装置的另一端。之后,单元31初始化数Q1和Q2,将其设置为0(步骤S102)。
流控制单元31根据从接收缓冲器101中实际输出的数据包中包含报头和数据的每一个的大小管理所处理的报头的大小和所处理的数据的大小。当至少所处理的报头和数据大小中的一个达到参考值,单元31产生一个UpdateFC DLLP。在传送装置缺少信用量之前的一个最佳时间,信用量被传送至传送装置。由于大量UpdateFC DLLP而导致的带占用能够被阻止,就像防止传送装置中的信用量短缺。由于单元31的流控制将报头从数据中区别开来,能够防止接收缓冲器被包括大量数据的数据包所占用。因而,接收缓冲器不会溢出,但是仅包括报头的数据包和包括报头和数据的数据包能被高效传送。
图7是表明流控制单元31的另一种结构框图。单元31包括除图3中的构件之外的计时器104。计时器104测量从流控制信息上一次传输所经过的时间。为了防止长时间不生成UpdateFC DLLP,接收流控制更新单103用报头的处理信用量Q1和数据的处理信用量Q2以及计时器104测量的时间来管理UpdateFC DLLP的生成时间。
图8所示为图7中流控制单元31的工作流程图。首先,单元13从软件获得报头的更新信用量P1和数据的更新信用量P2(步骤S201)。P1和P2被保存在,比如,单元31中的寄存器中,它们被用作决定UpdateFC DLLP生成时间的参考值。然后,单元31初始化Q1和Q2,将它们置0(步骤S202)。在步骤S202中,计时器104也被初始化。装置(#A)21的事务层从接收缓冲器顺序读出TLP,并顺序处理TLP。因此,装置(#A)21中的存储器和寄存器得到读/写访问。
流控制单元31确定计时器104的值是否超过一个预置值(是否出现超时)(步骤S203)。如果发生超时(步骤S203中的是),单元31产生包括更新报头信用量和更新数据信用量的流控制信息作为UpdateFC DLLP(步骤S207)。根据Q1和Q2的当前值产生这些量。之后,单元31回到步骤S202从而初始化Q1和Q2以及计时器104。
如果计时器104的值不超过预置值(步骤S203的否),流控制单元31确定接收缓冲器101是否输出TLP(步骤S204)。如果接收缓冲器101输出TLP(步骤S204中的是),单元31根据TLP中的报头和数据的每一个的信用量更新Q1和Q2(步骤S205)。Q1增加1,Q2增加TLP中数据信用量数。如果TLP不包括数据,Q2不被更新。
如果以下条件中的任一个被满足(步骤S206中的是或步骤S207中的是),流控制单元31产生包括更新报头信用量数和更新数据信用量数的流控制信息作为UpdateFC DLLP(步骤S208):
P1=Q1
P2≤Q2
之后,单元31回到步骤S202,初始化数Q1和Q2以及计时器104。
当来自传送装置的TLP数相对较小时,Q1和Q2都不容易增加。有一种情况就是,上述条件都不满足(P1=Q1和P2≤Q2),或者很长时间没有UpdateFC DLLP被传送。传送装置不能确定是否接收装置出现错误,或者传送装置不能从接收装置接收UpdateFC DLLP。长时间没有传送UpdateFC DLLP的情形对于工作的可靠性是不利的。图7中流控制单元31中计时器104的使用允许在没有UpdateFCDLLP传送的时间段的上限落在一个给定范围之内,从而防止上述情况的发生。
图3或7所示流控制单元31内接收流控制更新单元103的另一种结构结合图9如下描述。
图9所示的接收流控制更新单元103将每一个虚拟信道区分为以下三种TLP类型。
公告请求(P):
这种TLP是一种不需要从接收装置返回的请求数据包。例如,存储器写请求数据包是登记数据包。
未登记请求(NP):
这种TLP是需要从接收装置返回的数据包。例如,读请求数据包,I/O写请求数据包和结构请求数据包全是未公告请求。
完成(CPL):
这种TLP是一个结合其相应的未公告请求的返回数据包。例如,传送读数据的数据包和传送确认的数据包是完成数据包。
接收流控制更新单元103的流控制将每一种类型的TLP的报头从其数据中区分出来。因此,在这种流控制中,每一个虚拟信道管理以下六种:
公告请求(P)的报头(PH)
公告请求(P)的数据(PD)
未公告请求(NP)的报头(NPH)
未公告请求(NP)的数据(NPD)
完成(CPL)的报头(CPLH)
完成(CPL)的数据(CPLD)
接收流控制更新单元103包括一个虚拟信道确定单元401和n个对应于多个虚拟信道(VC#0,VC#1,...VC#n)的接收流控制更新模块402。这些虚拟信道是建立在PCI EXPRESS链路30之上的。流控制的实现独立于每一个虚拟信道。
每一个TLP的报头包括一个识别对应于该TLP的虚拟信道的标志符(TC:通信量等级)。根据包含于TLP的报头中的TC,虚拟信道确定单元401确定一个对应于从接收缓冲器101中输出的TLP的虚拟信道序号(VC#0,VC#1,...VC#n)。VC#0号TLP的信息被由其相应的接收流控制更新模块402所处理,VC#1号TLP的信息被由其相应的接收流控制更新模块402所处理,VC#n号TLP的信息被由其相应的接收流控制更新模块402所处理。
每一个接收流控制更新模块402包括TLP类型确定单元501,P型(公告请求)TLP接收流控制更新单元502,NP型(未公告请求)TLP接收流控制更新单503和CPL型(完成)接收流控制更新单元504。每一个模块402将P,NP和CPL中每一类型的报头的处理信用量数Q1和数据的处理信用量数Q2计数。
根据包含在虚拟信道TLP的报头中的TLP类型识别信息,TLP类型确定单元501确定TLP属于P,NP和CPL型中哪一种。P型TLP的信息由单元503处理,NP型TLP的信息由单元502处理,CPL型TLP的信息由单元504处理。单元502,503和504的结构如图4所示,它们中的每一个也包括一个计时器104,并用Q1,Q2和计时器104的值管理UpdateFC DLLP的生成时间。
以下参考图10中的流程图描述图9中接收流控制更新单元103的工作。
首先,单元103从每一个虚拟信道(VC)的软件中获得对应于每一种P,NP和CPL型的报头的更新信用量数P1和数据的更新信用量数P2(步骤S301)。P1和P2被保存在,比如单元103中的寄存器中,用作确定UpdateFC DLLP的生成时间的参考值。然后,单元103初始化Q1和Q2,将它们设置为0(步骤S302)。在步骤S302中,单元103也初始化对应于每一个虚拟信道(VC)的每一种P,NP和CPL类型的计时器104。每一种虚拟信道(VC)和TLP类型的组合都备有计时器104。
接收流控制更新单元103确定计时器104的值超过一个预定的值(是否超时)(步骤S303到S307)。如果计时器104的值不超过预定值,单元103确定接收缓冲器101是否输出一个TLP(步骤S308)。如果接收缓冲器101输出一个TLP(步骤308重的是),单元103确定一个对应于TLP的虚拟信道序号(步骤S309)。虚拟信道序号由TLP的报头中的TC值所确定。之后,单元103确定从接收缓冲器中输出的TLP属于P,NP和CPL类型的哪一种(步骤S310)。P,NP和CPL类型中的每一种由以下过程实现。假设从接收缓冲器101输出的TLP的虚拟信道序号为VC#0,类型为P。
根据从接收缓冲器101输出的P型TLP中包含的每一个报头和数据的信用量数,接收流控制更新单元103更新Q1和Q2(步骤S401)。Q1增加1,Q2就增加包含在P型TLP中数据的信用量数。如果P型TLP不包括数据,Q2就不被更新。
接收流控制更新单元103生成流控制信息作为UpdateFC DLLP(步骤S404),其中包括表示可接收的P型TLP的报头的信用量数的更新报头信用量数,和表示可接收的P型TLP的数据的信用量数的更新数据信用量数,如果一下条件之一被满足的话(步骤S402中的是或者步骤S403中的是):
P1=Q1
P2≤Q2
UpdateFC DLLP包括一个虚拟信道序号和一个TLP类型(=P)。之后,单元103初始化对应于P型的Q1和Q2,和对应于实际信道序号VC#0和型P这种组合的计时器104(步骤S405)。
甚至对应于实际信道序号VC#0和型P这种组合的计时器104发生超时(步骤S303中的是),接收流控制更新单元103生成流控制信息作为UpdateFC DLLP(步骤S404),其中包括表示可接收的P型TLP的报头的信用量数的更新报头信用量数,和表示可接收的P型TLP的数据的信用量数的更新数据信用量数。UpdateFC DLLP包括一个虚拟信道序号和一个TLP类型(=P)。之后,单元103初始化对应于P型的Q1和Q2,和对应于实际信道序号VC#0和型P这种组合的计时器104(步骤S405)。
如上所述,每一种TLP类型的流控制都能够防止接收缓冲器不被特定类型的TLP所占用,结果所有类型的TLP都能被高效传送。
实施方式的流控制功能也能通过软件实现。
其它优点和改进都是本领域的技术人员所能预见的。因此,本发明从广以上来说不限于具体细节和上述代表性的具体实施方式。因而,在不逃离权利要求和其等同所定义的发明构思的精神和范围的情况下,各种形式的修改都是可行的。
Claims (10)
1.一种数据处理设备,其特征在于包括:
第一装置;
与所述第一装置通信的第二装置;
置于所述第二装置内,并保留从所述第一装置传送来的数据包的接收缓冲器,其中每一个所述数据包是包括报头和变长数据的数据包,或是包括报头但不包括数据的另一种数据包;
计数单元,其置于所述第二装置内,并根据从所述接收缓冲器输出的每一个数据包中包含的每一个报头和数据的大小对表示所处理的报头的大小的第一值和表示所处理的数据的大小的第二值进行计数;以及
流控制信息传送单元,其置于所述第二装置内,并当所述第一值或所述第二值达到一个对应的参考值时,将表示可被所述第二装置接收的每一个报头和数据的大小的流控制信息传送给所述第一装置。
2.根据权利要求1的所述数据处理设备,其特征在于所述计数单元以具有给定大小的信用为单位对所述第一值和第二值计数。
3.根据权利要求1的所述数据处理设备,其特征在于,所述设备还包括一个测量从上一次传送所述流控制信息所经过的时间的计时器;以及
当所述第一值或所述第二值达到所述对应参考值和所述经过的时间达到一个给定时间这两个条件之一被满足时,所述流控制信息传送单元被配置为将所述流控制信息传送给所述第一装置。
4.根据权利要求1的所述数据处理设备,其特征在于,所述设备还包括一个置于所述第二装置内的单元,它确定从所述接收缓冲器输出的每一个数据包属于公告请求数据包、未公告请求数据包和完成数据包中的哪一种;以及
所述计数单元被配置成为每一个所述公告请求数据包、未公告请求数据包和完成数据包,对所述第一值和所述第二值进行计数。
5.一种与另一个装置通信的装置,其特征在于包括:
保留从所述另一个装置传送来的数据包的接收缓冲器,每一个所述数据包是包括报头和可变长数据的数据包,或是包括报头但不包括数据的另一种数据包;
计数单元,根据从所述接收缓冲器输出的每一个数据包中包含的每一个报头和数据的大小对表示所处理的报头的大小的第一值和表示所处理的数据的大小的第二值进行计数;以及
流控制信息传送单元,当所述第一值或所述第二值达到一个对应参考值时,将表示可被所述第二装置接收的每一个报头和数据的大小的流控制信息传送给所述第一装置。
6.根据权利要求5的所述装置,其特征在于,所述设备还包括一个测量从上一次传送所述流控制信息所经过的时间的计时器;以及
当所述第一值或所述第二值达到所述对应参考值和所述经过的时间达到一个给定时间这两个条件之一被满足时,所述流控制信息传送单元将所述流控制信息传送给所述另一个装置。
7.根据权利要求5的所述装置,其特征在于,所述设备还包括一个单元,它确定从所述接收缓冲器输出的每一个数据包属于公告请求数据包、未公告请求数据包和完成数据包中的哪一种;以及
所述计数单元为每一个所述公告请求数据包、未公告请求数据包和完成数据包,对所述第一值和所述第二值进行计数。
8.一种实现流控制的方法,用于控制从第一装置到第二装置内的接收缓冲器的数据包的流,每一个所述数据包是包括报头和变长数据的数据包,或是包括报头但不包括数据的另一种数据包,所述方法的特征在于包括:
根据从所述接收缓冲器中输出的每一个所述数据包中包含的每一个报头和数据的大小,对表示所处理的报头大小的第一值和表示所处理的数据大小的第二值进行计数;以及
当所述第一值或所述第二值达到一个对应参考值时,将表示可被所述第二装置接收的每一个报头和数据的大小的流控制信息从所述第二装置传送到所述第一装置。
9.根据权利要求8的所述方法,其特征在于所述方法还包括测量上次所述流控制信息所经过的时间,以及
当所述第一值或所述第二值达到所述对应参考值和所述经过的时间达到一个给定时间这两个条件之一被满足时,所述传送步骤包括将所述流控制信息从所述第二装置传送到所述第一装置。
10.根据权利要求8的所述方法,其特征在于所述方法还包括确定从所述接收缓冲器输出的每一个数据包属于公告请求数据包、未公告请求数据包和完成数据包中的哪一种;以及
为每一个所述公告请求数据包、未公告请求数据包和完成数据包,对所述第一值和所述第二值进行计数。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2004150657 | 2004-05-20 | ||
JP2004150657A JP2005332250A (ja) | 2004-05-20 | 2004-05-20 | データ処理装置およびフロー制御方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1700673A true CN1700673A (zh) | 2005-11-23 |
CN100417134C CN100417134C (zh) | 2008-09-03 |
Family
ID=34939134
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB2005100684064A Expired - Fee Related CN100417134C (zh) | 2004-05-20 | 2005-04-29 | 数据处理设备和流控制方法 |
Country Status (5)
Country | Link |
---|---|
US (1) | US20050259651A1 (zh) |
EP (1) | EP1598746A3 (zh) |
JP (1) | JP2005332250A (zh) |
KR (1) | KR100715710B1 (zh) |
CN (1) | CN100417134C (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102147776A (zh) * | 2009-12-18 | 2011-08-10 | 佳能株式会社 | 数据处理装置和数据处理方法 |
CN101184022B (zh) * | 2006-11-13 | 2011-10-05 | 中芯国际集成电路制造(上海)有限公司 | 信用处理装置和流控制传输装置及其方法 |
WO2015021878A1 (zh) * | 2013-08-15 | 2015-02-19 | 华为技术有限公司 | 一种应用于pci-e的流量控制方法、设备及系统 |
Families Citing this family (22)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4111974B2 (ja) * | 2003-07-18 | 2008-07-02 | 富士通株式会社 | 送信主導型フロー制御装置 |
US7461236B1 (en) * | 2005-03-25 | 2008-12-02 | Tilera Corporation | Transferring data in a parallel processing environment |
US7698477B2 (en) * | 2005-11-30 | 2010-04-13 | Lsi Corporation | Method and apparatus for managing flow control in PCI express transaction layer |
US7694049B2 (en) * | 2005-12-28 | 2010-04-06 | Intel Corporation | Rate control of flow control updates |
US8255599B2 (en) * | 2006-03-28 | 2012-08-28 | Integrated Device Technology Inc. | Packets transfer device having data absorbing buffers with elastic buffer capacities |
US8166156B2 (en) * | 2006-11-30 | 2012-04-24 | Nokia Corporation | Failure differentiation and recovery in distributed systems |
US20080313240A1 (en) * | 2007-06-18 | 2008-12-18 | Freking Ronald E | Method for Creating Data Transfer Packets With Embedded Management Information |
US20090003335A1 (en) * | 2007-06-29 | 2009-01-01 | International Business Machines Corporation | Device, System and Method of Fragmentation of PCI Express Packets |
US8984193B1 (en) * | 2007-07-17 | 2015-03-17 | Unisys Corporation | Line speed sequential transaction packet processing |
US7869356B2 (en) * | 2007-12-18 | 2011-01-11 | Plx Technology, Inc. | Dynamic buffer pool in PCIExpress switches |
GB2465595B (en) * | 2008-11-21 | 2010-12-08 | Nokia Corp | A method and an apparatus for a gateway |
US8045472B2 (en) | 2008-12-29 | 2011-10-25 | Apple Inc. | Credit management when resource granularity is larger than credit granularity |
US9137160B2 (en) | 2009-01-29 | 2015-09-15 | Qualcomm Incorporated | Method and apparatus for accomodating a receiver buffer to prevent data overflow |
CN101534173B (zh) * | 2009-04-20 | 2011-11-09 | 福建星网锐捷网络有限公司 | 一种数据流量控制方法和系统 |
US8819305B2 (en) * | 2009-11-16 | 2014-08-26 | Intel Corporation | Directly providing data messages to a protocol layer |
JP5614410B2 (ja) * | 2009-11-27 | 2014-10-29 | 日本電気株式会社 | フロー制御装置、ネットワークシステム、ネットワーク制御方法およびプログラム |
CN101964745B (zh) * | 2010-06-12 | 2012-06-27 | 福建星网锐捷网络有限公司 | 一种网络转发设备及其进行报文转发的方法 |
JP5958192B2 (ja) * | 2012-08-30 | 2016-07-27 | 富士通株式会社 | 演算処理装置、情報処理装置、及び演算処理装置の制御方法 |
US9524261B2 (en) | 2012-12-21 | 2016-12-20 | Apple Inc. | Credit lookahead mechanism |
WO2014115250A1 (ja) * | 2013-01-22 | 2014-07-31 | 富士通株式会社 | データ転送装置、データ転送方法およびデータ転送プログラム |
US9760514B1 (en) * | 2016-09-26 | 2017-09-12 | International Business Machines Corporation | Multi-packet processing with ordering rule enforcement |
KR20230045306A (ko) | 2021-09-28 | 2023-04-04 | 삼성전자주식회사 | 흐름 제어 모니터링을 통하여 동작을 제어하는 스토리지 장치 및 시스템 |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5063562A (en) * | 1990-05-23 | 1991-11-05 | International Business Machines Corporation | Flow control for high speed networks |
JPH04108242A (ja) * | 1990-08-28 | 1992-04-09 | Nec Corp | 通信制御装置のデータ転送方式 |
US5848297A (en) * | 1991-12-30 | 1998-12-08 | Apple Computer, Inc. | Control apparatus for maintaining order and accomplishing priority promotion in a computer interconnect |
US5260942A (en) * | 1992-03-06 | 1993-11-09 | International Business Machines Corporation | Method and apparatus for batching the receipt of data packets |
SG47794A1 (en) * | 1993-09-30 | 1998-04-17 | Intel Corp | Buffer memory management for a computer network node |
JP2929991B2 (ja) * | 1996-01-29 | 1999-08-03 | 日本電気株式会社 | 最適化クレジット制御方法 |
US5920698A (en) * | 1997-01-06 | 1999-07-06 | Digital Equipment Corporation | Automatic detection of a similar device at the other end of a wire in a computer network |
US6977930B1 (en) * | 2000-02-14 | 2005-12-20 | Cisco Technology, Inc. | Pipelined packet switching and queuing architecture |
US20020167948A1 (en) * | 2001-05-09 | 2002-11-14 | Dayong Chen | Communications methods, apparatus, computer program products and data structures using segment sequence numbers |
US6826634B2 (en) | 2002-06-10 | 2004-11-30 | Sun Microsystems, Inc. | Extended message block for network device drivers |
US6760793B2 (en) * | 2002-07-29 | 2004-07-06 | Isys Technologies, Inc. | Transaction credit control for serial I/O systems |
-
2004
- 2004-05-20 JP JP2004150657A patent/JP2005332250A/ja active Pending
-
2005
- 2005-04-04 EP EP20050102654 patent/EP1598746A3/en not_active Withdrawn
- 2005-04-26 US US11/114,099 patent/US20050259651A1/en not_active Abandoned
- 2005-04-29 CN CNB2005100684064A patent/CN100417134C/zh not_active Expired - Fee Related
- 2005-04-29 KR KR20050036039A patent/KR100715710B1/ko not_active IP Right Cessation
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101184022B (zh) * | 2006-11-13 | 2011-10-05 | 中芯国际集成电路制造(上海)有限公司 | 信用处理装置和流控制传输装置及其方法 |
CN102147776A (zh) * | 2009-12-18 | 2011-08-10 | 佳能株式会社 | 数据处理装置和数据处理方法 |
US8588234B2 (en) | 2009-12-18 | 2013-11-19 | Canon Kabushiki Kaisha | Data processing apparatus, method, and computer-readable storage medium for dynamically controlling a transmission interval |
WO2015021878A1 (zh) * | 2013-08-15 | 2015-02-19 | 华为技术有限公司 | 一种应用于pci-e的流量控制方法、设备及系统 |
CN104375967A (zh) * | 2013-08-15 | 2015-02-25 | 华为技术有限公司 | 一种应用于pci-e的流量控制方法、设备及系统 |
CN104375967B (zh) * | 2013-08-15 | 2017-09-05 | 华为技术有限公司 | 一种应用于pci‑e的流量控制方法、设备及系统 |
Also Published As
Publication number | Publication date |
---|---|
EP1598746A2 (en) | 2005-11-23 |
KR20060045868A (ko) | 2006-05-17 |
JP2005332250A (ja) | 2005-12-02 |
EP1598746A3 (en) | 2007-10-24 |
US20050259651A1 (en) | 2005-11-24 |
KR100715710B1 (ko) | 2007-05-08 |
CN100417134C (zh) | 2008-09-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1700673A (zh) | 数据处理设备和流控制方法 | |
CN1253802C (zh) | 计算机组件间直接传输数据的集线器链路 | |
US20070244972A1 (en) | Method and system for an OS virtualization-aware network interface card | |
CN106257434B (zh) | 一种基于增强型外设互连协议总线的数据传输方法及装置 | |
CN1151449C (zh) | 允许服务器远程访问未通电的客户计算机系统资产信息的数据处理系统和方法 | |
CN101046786A (zh) | 一种实现高效dma传输的dma控制器及传输方法 | |
US20080022016A1 (en) | Network memory pools for packet destinations and virtual machines | |
CN101540727A (zh) | 一种ip报文的硬件分流方法 | |
CN101034384A (zh) | 一种能同时进行读写操作的dma控制器及传输方法 | |
CN1267378A (zh) | 并行数据处理的方法和装置 | |
CN103377092A (zh) | 用于动态资源管理的两级动态资源管理方法和装置 | |
JP3864252B2 (ja) | 相互通信プリプロセッサ | |
CN101034372A (zh) | 非易失存储系统和非易失存储器的管理方法 | |
US20060268936A1 (en) | Communication apparatus and method thereof | |
US10284319B2 (en) | Method and apparatus for multiplexing machine type communication data of multiple MTC devices in a wireless network environment | |
CN1940891A (zh) | 多节点计算机中存储器分配的方法和装置 | |
US7555578B2 (en) | Device for controlling endpoints of USB device and method of controlling endpoints of USB device | |
CN1696917A (zh) | 主从系统中直接内存存取控制器及总线结构 | |
CN1570863A (zh) | 远程加载或升级程序的系统及其方法 | |
CN1561492A (zh) | 用于与总线连接的总线系统和总线接口 | |
CN1933421A (zh) | 一种网元管理方法与系统 | |
CN101034383A (zh) | 一种实现软/硬件复用的dma控制器和传输方法 | |
CN1866233A (zh) | 信号处理装置,信号处理系统及信号处理方法 | |
CN1602475A (zh) | 异步串行数据接口 | |
CN1607767A (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 | ||
C17 | Cessation of patent right | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20080903 |