CN1797380A - 接收装置、收发装置、接收方法和收发方法 - Google Patents
接收装置、收发装置、接收方法和收发方法 Download PDFInfo
- Publication number
- CN1797380A CN1797380A CNA200510129045XA CN200510129045A CN1797380A CN 1797380 A CN1797380 A CN 1797380A CN A200510129045X A CNA200510129045X A CN A200510129045XA CN 200510129045 A CN200510129045 A CN 200510129045A CN 1797380 A CN1797380 A CN 1797380A
- Authority
- CN
- China
- Prior art keywords
- data
- capacity
- reception buffer
- partition capacity
- buffer
- 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
- G06F13/38—Information transfer, e.g. on bus
- G06F13/382—Information transfer, e.g. on bus using universal interface adapter
- G06F13/385—Information transfer, e.g. on bus using universal interface adapter for adaptation of a particular data processing system to different peripheral devices
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Communication Control (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Information Transfer Systems (AREA)
Abstract
本发明所提出的接收装置包括:一个接收缓存器,一个用来判定在接收缓存器内按照每个数据类型的分配容量的初始值和按照接收缓存器的开放更新分配容量的初始值的第一缓存器控制器,以及一个用来动态地更新分配容量的初始值或更新后的分配容量的第二缓存器控制器。
Description
技术领域
本发明与例如适用于使高速传输成为可能的PCI Express标准之类的接收装置、收发装置、接收方法和收发方法有关。
背景技术
近年来业已开发了一些适合高速数据传输的装置。例如,在计算机系统中,PCI Express已经标准化为用来在CPU、内存、图形控制器、存储设备和外围设备之间进行数据传输的高速总线。
通常,流量控制用来保证发送装置与接收装置之间的数据传输。用流量控制来决定需传输的数据量(传输速度),以防接收缓存器溢出。
例如,在JP-A-11-327938中揭示了一种动态执行流量控制的方法。在JP-A-11-327938所揭示的这种方法中,流量控制是按照每个应用执行的。也就是说,执行动态控制以便由每个应用管理将来要接收的分组,以增大接收缓存器的分配给高优先权应用协议的容量。
然而在JP-A-11-327938所揭示的这种方法中,必需支持每个应用的流量控制。而且,不可能按照每个数据类型,诸如每个分组类型,执行流量控制,因此缓存器不能得到高效的利用。
相反,在PCI Express标准中,接收缓存器按照每个分组类型分配,如在PCI Express Base Specification 1.0a,PCI-SIG 2.6,Orderingand Receive Buffer Flow Control,pp.100中所述。在PCI Express标准中,按照每个分组类型分配的接收侧缓存器(接收缓存器)的容量的信息(即信用值)与发送侧的发送数据量比较。也就是说,首先从接收侧将缓存器容量信息发送给发送侧,从而初始化发送侧的流量控制。发送侧根据信用值与要发送的数据量的比较判断数据是否可以发送。
然而,按照每个分组类型分配接收缓存器有时候可能是不合适的。也就是说,有时候会为要发送的数据量较大的分组类型分配较小的容量而为要发送的数据量较小的分组类型分配较大的容量。在这种情况下,如果按照分配容量的初始值执行流量控制,虽然接收缓存器内有空闲也可能不能发送数据。因此存在使接收缓存器的利用效率降低的问题。
发明内容
本发明是考虑到这个问题而提出的,本发明的目的是提供一种接收装置、收发装置、接收方法和收发方法,其中可以灵活地改变按照每个数据类型的接收缓存器的分配,以提高接收缓存器的利用效率,从而使数据传输效率更高。
本发明提供了一种接收装置,这种接收装置包括:接收缓存器;第一缓存器控制器,用来判定在接收缓存器内按照每个数据类型的分配容量的初始值和按照接收缓存器的开放更新分配容量的初始值;以及第二缓存器控制器,用来动态地更新分配容量的初始值和更新后的分配容量中任一个。
在本发明中,发送侧例如根据接收缓存器的分配容量的初始值和总的发送数据量判定数据是否可以发送。分配容量由第一缓存器控制器按照接收缓存器的开放更新。此外,第二缓存器控制器动态地更新分配容量的初始值或更新后的分配容量。这样,接收缓存器的利用效率甚至在初始值不一定被适当设置的情况下也可得到提高。
按照本发明,可以灵活地改变按照每个数据类型的接收缓存器的分配,以提高接收缓存器的利用效率,从而使数据传输效率更高。
附图说明
图1为示出按照本发明的第一实施例设计的收发装置的方框图;
图2为示出接收装置内的流量控制的流程图;
图3为示出发送装置内的流量控制的流程图;
图4为示出本发明的第二实施例的方框图;
图5为说明第二实施例的工作情况的流程图;
图6为示出本发明的第三实施例的方框图;
图7为说明第三实施例的工作情况的流程图;
图8为说明根据业务量统计增大/减小接收缓存器的分配容量的方法的表;
图9为说明根据业务量统计增大/减小接收缓存器的分配容量的方法的表;
图10为说明根据业务量统计增大/减小接收缓存器的分配容量的方法的表;
图11为示出本发明的第四实施例的方框图;
图12为说明第四实施例的工作情况的流程图;
图13为示出在按照任何一个实施例设计的发送装置和接收装置配置在一个计算机内的情况下的外观的说明图;以及
图14A和14B为对照PCI Express的层次结构示出按照任何一个实施例设计的发送装置和接收装置的层次结构的说明图。
具体实施方式
下面将结合这些附图对本发明的实施例进行详细说明。图1为示出按照本发明的第一实施例设计的收发装置的方框图。虽然这个实施例应用于PCI Express标准,但本发明也可用于在发送侧按照接收侧的接收缓存器的空闲容量执行流量控制的各种系统。
例如,发送装置1和接收装置11满足PCI Express标准。发送装置1相当于在PCI Express标准中的一个根复合体(root complex)而接收装置11相当于在PCI Express标准中的一个端点(end point)。
要提一下的是,图1只是示出了发送装置1和接收装置11中涉及流量控制的配置。在这里没有示出和说明用来实现其他功能的配置的情况。
在PCI Express的体系结构内,提供了一个由事务层、数据链路层和物理层组成的层次结构。发送装置1发送位于层次结构中最高位置的事务层内的分组(事务分组:TLP)。TLP有Posted(登记的)、Non-Posted(非登记的)和Completion(完成)三个分组类型。每个TLP由头标和数据排列而成。在头标和数据内分别设置这三个分组类型中的一个类型。也就是说,TLP可以有六个数据类型。
在PCI Express中,可以设置一些称为“虚拟信道(VC)”的独立的虚拟通信通道。在各虚拟信道内分别设置独立的接收缓存器,使得流量控制可以独立执行。图1示出了接收装置11具有一个虚拟信道的情况。在接收装置具有多个虚拟信道的情况下,对每个虚拟信道都设置有与图1中所示的接收装置11内相同的配置。
发送装置1可以按照每个虚拟信道输出六个数据类型的TLP。例如,在有8个虚拟信道时,允许从发送装置1输出的数据类型的数目就为48。
接收装置11从发送装置1接收TLP。接收装置11有一个接收缓存器12。接收缓存器12有一个用来存储包含在接收到的TLP内的头标的区域12a和一个用来存储包含在这些TLP内的数据的区域12b。区域12a含有一个用来存储Posted类型头标的区域PH、一个用来存储Non-Posted类型头标的区域NPH和一个用来存储Completion类型头标的区域CplH。区域12b含有一个用来存储Posted类型数据的区域PD、一个用来存储Non-Posted类型数据的区域NPD和一个用来存储Completion类型数据的区域CplD。
接收装置11被配置成按照数据类型将接收到的数据分别存储在接收缓存器12的这些区域内。存储在接收缓存器12内的数据由一个端点侧软件相继读出。
用作第一和第二缓存器控制器的缓存器控制电路13分配接收缓存器12内区域PH、NPH、CplH、PD、NPD和CplD的各自容量。也就是说,缓存器控制电路13按照每个数据类型分配容量。按照每个数据类型分配的容量由缓存器控制电路13作为流量控制的初始值进行管理。
缓存器控制电路13被配置成将按照每个数据类型分配的区域的容量作为初始信用值发送给发送装置1。用数据链路层内产生的一个分组(数据链路层分组:DLLP)来发送该信用值。
在存储在接收缓存器12的数据被读出而且接收缓存器12的区域开放时,缓存器控制电路13执行一个更新过程,使所开放的区域的信用值增加所开放的容量。缓存器控制电路13被配置成将经更新的信用值发送给发送装置1。
发送装置1接收用DLLP发送的信用值。发送装置发送的总数据量(所耗费的信用值之和)存储在发送装置1的发送量存储器3内。发送装置1的发送控制电路2将总的发送数据量与接收到的信用值相比较,从而判断数据是否要发送。也就是说,在有一些数据要发送给接收装置11时,发送装置1的发送控制电路2将已经发送的总数据量与从接收装置11接收到的信用值相比较。发送控制电路2进行操作,使得在接收到的信用值减去总的发送数据量(所耗费的信用值之和)后大于要发送的数据量时,将要发送的数据作为TLP发送给接收装置11,而在信用值与所耗费的信用值之和之间的差小于要发送的数据量时,不发送要发送的数据。
在这个实施例中,缓存器控制电路13被配置使得可以改变接收缓存器12按照数据类型分给各区域的分配情况。图1中的打有斜线的部分表示按照数据类型分配的各区域的初始值。在区域12a内的一个未打斜线的部分PH表示对于数据类型PH的在初始状态的基础上增大的区域。在区域12b内的一个未打斜线的部分PD表示对于数据类型PD的在初始状态的基础上增大的区域。
缓存器控制电路13计算接收到的TLP的数据类型的统计,亦即业务量统计。缓存器控制电路13根据计算出的业务量统计判定是否要增大接收缓存器12的每个区域的容量和容量的增大量。
每当分配给接收缓存器12的每个区域的容量改变时,缓存器控制电路13按照增大的区域的容量更新信用值并将更新了的信用值发送给发送装置1。要提一下的是,流量控制不加到DLLP上,因此可以始终发送/接收DLLP。
下面将结合图2和3所示的流程图说明如上配置的实施例的工作情况。图2示出了接收装置11内的流量控制。图3示出了发送装置1内的流量控制。
在流量控制初始化时,接收装置11在接收缓存器12内设置从发送装置1的数据发送所需的最小容量。在这种情况下,如果可以预测按照每个数据类型的发送量,缓存器控制电路13就可以按照预测结果设置一个特定的数据类型的信用值和接收缓存器的保留区域比其他数据类型的大。缓存器控制电路13用DLLP将所设置的初始信用值发送给发送装置1(步骤S1)。
这里,假设发送装置1发送预定的TLP。例如,假设接收装置11有一个存储器,以便发送装置1发送要写入这个存储器的TLP。要写入存储器的TLP是一个Posted类型分组。
流量控制初始化刚结束时,并没有数据存储在接收缓存器12内,因此发送装置1可以发送TLP。在发送装置1发送要写入存储器的TLP时,在Posted类型内所耗费的总信用值增加了发送数据量。所耗费的总信用值存储在发送量存储器3内。
另一方面,从发送装置1接收到TLP后,接收装置11就将Posted类型接收信用值之和增加接收数据量。要提一下的是,接收信用值之和等于在发送侧所耗费的信用值之和。接收信用值之和用来监视接收缓存器12的溢出之类。在接收装置11内接收到的TLP存储在接收缓存器12内的Posted类型区域PH和PD内。
此外,假设发送装置1发送要写入存储器的TLP。在这种情况下,发送装置1的发送控制电路2将接收装置11发来的信用值与存储在发送量存储器3内的所耗费的信用值之和相比较(步骤S11)。在接收到的信用值减去所耗费的信用值之和后大于要发送的数据量时发送数据,而在接收到的信用值减去所耗费的信用值之和后小于要发送的数据量时不发送数据(步骤S12)。
现在假设(接收到的信用值-所耗费的信用值之和)>(要发送的数据量),发送装置1就将数据发送给接收装置11(步骤S13)。发送控制电路2通过将存储在发送量存储器3内的耗费信用值之和加上发送数据量而产生新的耗费信用值之和(步骤S14)。
另一方面,接收装置11将接收数据存储在接收缓存器12内的相应数据类型的存储区域内。这里,假设存储在接收缓存器12内的数据由一个端点侧应用读出。这样就开放了接收缓存器12的相应区域,因此可以存储与这个区域相应的数据类型的数据。在缓存器控制电路13在步骤S2判定接收缓存器12的这个存储区域开放时,缓存器控制电路13用由于读出而空闲的容量来更新相应数据类型的信用值。缓存器控制电路13用DLLP将已增大的信用值发送给发送装置1(步骤S3)。
每当接收缓存器12的存储区域由于从接收缓存器12读出数据而开放时就执行更新信用值和发送经更新的信用值。因此,发送装置1可以掌握允许发送的数据量。
这里,假设接收装置11增加一个特定数据类型的分配容量。例如,在从发送装置1发送大量Posted类型数据时,接收装置11的缓存器控制电路13例如通过参考TLP的业务量统计(步骤S4),判定是否要增大存储Posted类型数据的区域PD的容量(步骤S5)。在所分配的区域被增大时,缓存器控制电路13用所增大的容量更新信用值,并将经更新的信用值发送给发送装置1(步骤S6)。要提一下的是,经更新的信用值可以在按照接收缓存器12的存储区域开放而更新信用值的同时发送。也就是说,在这种情况下,发送初始信用值加上(与打开的存储区域相应的信用值+与接收缓存器的分配增量相应的信用值)后所得到的信用值。
然后,发送装置1能相应地对于Posted类型数据将充足的数据量发送给接收装置11。类似地,只要接收缓存器12的容量容许,缓存器控制电路13可以增大分配给每个数据类型的区域(信用值)。因此,例如甚至在按照每个数据类型的初始信用值不能满足按照每个数据类型实际要发送的数据量的情况下,也可以动态地改变按照每个数据类型的分配,以提高接收缓存器12的使用效率。
如上所述,在这个实施例中,由于可以动态地改变接收缓存器的按照每个数据类型的容量分配,因此接收缓存器的使用效率可以得到提高,以达到更高的数据传输速度。
例如,预先为每个数据类型给接收缓存器分配一个小的容量,使得根据实际作为TLP流动的业务量的统计在接收缓存器内保留新的容量,从而可以动态地改变接收缓存器。这样,可以提高接收缓存器的使用效率,有助于提高吞吐量。要提一下的是,可以在PCI Express标准的范围内实现这个实施例。
虽然在发送装置1相当于PCI Express标准中的一个根复合体而接收装置11相当于PCI Express标准中的一个端点的情况下描述了此实施例,但实际上使用的根复合体和端点具有与发送装置1和接收装置11相同的配置,可以相互发送数据和从对方接收数据。
图4为示出本发明的第二实施例的方框图。在图4中,与图1所示的相同的组成部分标以相同的参考标记,不再重复说明。在第一实施例中,可以增大接收缓存器的按照数据类型的分配容量。相反,在这个实施例中,可以减小接收缓存器的按照数据类型的分配容量。
这个实施例与第一实施例不同之处是在这个实施例中所用的接收装置21具有作为第一至第三缓存器控制器的缓存器控制电路23而不是缓存器控制电路13。
在PCI Express标准中,由于规范的限制,初始信用值一旦设置就不能减小。因此,在这个实施例中,能够以在接收缓存器12的存储区域开放时不更新信用值这样的方式等效地减小分配给一个与所开放的区域相应的数据类型的容量。
也就是说,缓存器控制电路23甚至在由于读出存储在接收缓存器12内的数据而开放接收缓存器12的一个与所分配的容量要减小的数据类型相应的区域的情况下,也不更新这个数据类型的信用值。或者,缓存器控制电路23在接收缓存器12的一个与所分配的容量要减小的数据类型相应的区域开放时,无论所开放的容量是多少都对于该数据类型将所开放的存储区域的信用值设置为零或小于所开放的容量的容量。
要提一下的是,增大接收缓存器的分配容量的过程与第一实施例中的相同。
其他配置与第一实施例中的相同。
下面将结合图5所示的流程图说明如上配置的实施例的工作情况。在图5中,与图2中所示的相同的步骤标以相同的参考标记,不再重复说明。
现在假设,在图5中的步骤S2,数据从接收缓存器12的一个存储区域读出,使得接收缓存器12的这个存储区域开放了所读出的数据量。在下一个步骤S11,缓存器控制电路23根据业务量统计判断所开放的区域是否与一个被允许减小分配容量的数据类型相应。在分配容量不减小时,在下一个步骤S12,缓存器控制电路23通过增加所开放的存储区域的信用值更新信用值。经更新的信用值发送给发送装置1。
结果,在这种情况下,对于与所开放的区域相应的数据类型的数据,使允许由发送装置1发送的数据量增大。
另一方面,在所开放的区域与分配容量允许减小的数据类型相应时,在步骤S13,缓存器控制电路23通过增加一个小于所开放的存储区域的值更新信用值或者将这个存储区域视为未开放而不更新信用值。
结果,在这种情况下,虽然数据具有与所开放的区域相应的数据类型,但不改变允许发送的数据量。此外,由于这个区域被开放,在执行与在第一实施例中的相同的缓存器控制时就可以将这个开放的区域分配给另一数据类型的区域。因此,接收缓存器12可以更有效地得到利用。
在图4所示的例子中,每个打有斜线的部分示出了按照每个数据类型分配的区域的初始值。区域12a内的虚线区域PH表示对于数据类型PH从初始或先前状态减掉的区域。区域12b内的虚线区域PD表示对于数据类型PD从初始或先前状态减掉的区域。图4中区域12a和12b内的打网格的区域表示对于数据类型CplH和CplD在初始或先前状态的基础上增加的区域。
图6为示出本发明的第三实施例的方框图。在图6中,与图4中所示的相同的组成部分标以相同的参考标记,不再重复说明。在第二实施例中,能以在接收缓存器开放时信用值不更新这样的方式等效地减小分配容量。然而在第二实施例中,只是对于在接收侧曾收到并存储在接收缓存器内的数据能减小分配容量。然而,需减小接收缓存器的分配容量的数据类型的数据作为TLP从发送装置1发送的可能性很小,以致很少有机会减小接收缓存器的分配容量。因此,本实施例使得动态地减小接收缓存器的分配容量成为可能。
这个实施例与第二实施例不同之处在于在这个实施例中使用了一个具有缓存器控制电路33而不是缓存器控制电路23的接收装置31。
在PCI Express标准中,可以发送对组件没有影响的TLP(以下称为“伪TLP”)。发送装置1可以将这样的伪TLP发送给接收装置31。接收装置31虽然接收伪TLP,但并不将接收到的伪TLP存储在接收缓存器12内。
也就是说,接收装置31的缓存器控制电路33即使在接收缓存器12的应存储伪TLP的区域实际上开放的情况下,也不增大相应的数据类型的信用值。也就是说,在发送伪TLP的发送装置1内,对于与伪TLP的相同的数据类型的可发送的数据量减小了伪TLP的容量。
在这个实施例中,为了从发送装置1输出伪TLP,接收装置31的缓存器控制电路33向发送装置1发送一个指令,使得可以迫使发送装置1发送与接收缓存器的分配容量要减小的数据类型相应的伪TLP。
例如,这个指令是售主特定DLLP(Vendor Specific DLLP)。诸如分配容量要减小的数据类型、头标/数据、VC和减小量之类的信息存储在该DLLP内。另一方面,发送装置1根据接收装置31给出的售主特定DLLP的信息将接收缓存器的分配容量要减小的数据类型的TLP发送给接收装置31。
要提一下的是,增大接收缓存器的分配容量的过程与第一实施例中的相同。
下面将结合图7所示的流程图说明如上配置的实施例的工作情况。在图7中,与图5中所示的相同的步骤标以相同的参考标记,不再重复说明。
在图7中所示的步骤S11,缓存器控制电路33根据业务量统计判断是否有一个分配容量要减小的数据类型。在有一个分配容量要减小的数据类型时,在步骤S23,缓存器控制电路33用售主特定DLLP向发送装置1发送一个指令,命令发送分配容量要减小的数据类型的伪分组。这个指令包括有关分配容量的减小量的信息。
接收到售主特定DLLP后,发送装置1就发送相应数据类型的伪TLP(步骤S24)。结果,对于伪TLP的数据类型,存储在发送量存储器3内的所耗费的总信用值就增大了这些伪TLP的数据量。
另一方面,接收到伪TLP后,接收装置31的缓存器控制电路33不更新对于这些伪TLP的数据类型的信用值(步骤S25)。也就是说,发送装置1内耗费的总信用值增加了这些伪TLP的数据量,而信用值没有改变,虽然接收缓存器12被开放。因此,对于数据类型与这些伪TLP的相同的数据,等效地减小了从发送装置1可以发送的数据量。
要提一下的是,缓存器控制电路33可以发送将信用值增加小于这些伪TLP的数据量的容量而得到的经更新的信用值。在这种情况下,对于数据类型与这些伪TLP的相同的数据,也减小了从发送装置1可以发送的数据量。
此外,由于这个区域被开放,在执行与在第一实施例中的相同的缓存器控制时就可以将这个开放的区域分配给另一数据类型的区域。因此,接收缓存器12可以更有效地得到利用。
在图6所示的例子中,每个打有斜线的部分表示按照每个数据类型分配的区域的初始值。区域12a内的虚线区域PH表示对于数据类型PH的从初始或先前状态减掉的区域。区域12b内的虚线区域PD表示对于数据类型PD的从初始或先前状态减掉的区域。图6中区域12a和12b内的打网格的区域表示对于数据类型CplH和CplD在初始或先前状态的基础上增加的区域。
要提一下的是,由于伪TLP必须不是对组件有影响的TLP,例如,在Posted信用的情况下优选的是使用售主定义的消息(VendorDefined Message)。在Non-Posted信用的情况下优选的是使用对于一个没有影响的地址区域的存储器读取请求(Memory ReadRequest)之类。
在图6所示的例子中,发送装置1发送包括数据的售主定义消息,以减小存储Posted类型数据的区域PD的分配。
在PCI Express标准中,在Completion信用的情况下,不容许没有任何请求的Completion类型数据。因此,在这种情况下,接收装置31向发送装置1发出特定的Non-Posted类型请求,以产生Completion,从而主动实现减小分配容量。在发送一个诸如作为伪数据发送的Non-Posted类型请求之类的特定TLP时,优选的是使这个TLP与在一般的业务内流动的其他TLP不同,以使其不在TLP业务量统计考虑之列。
要提一下的是,在上述各实施例中,根据发送TLP的业务量统计执行增大/减小按照每个数据类型的接收缓存器的分配容量。图8至10为说明根据这样的业务量统计增大/减小接收缓存器的分配容量的方法的表。
业务量统计可以根据接收装置内所记录的接收历史计算。图8示出了用接收装置内的FIFO(先进先出)存储器记录的业务量统计的例子。在8所示的例子中,FIFO存储器有地址为0至F的16个区域。每个区域含有诸如虚拟信道(VC)、数据类型(Type)和数据量(Data)之类的信息。
图9示出了按图8所示的信息存入FIFO存储器的定时写入接收缓存器12的区域12a的每个头标内的数据量。在图9中,按照每个虚拟信道(VC)示出了数据类型(Type)和容量比。在PCI Express中,一个TLP含有一个头标和至少一个数据。因此,每个头标内的容量比等于保存在FIFO存储器内的每个数据类型的数据的数目。
图10示出了按图8所示的信息存入FIFO存储器的定时写入接收缓存器12的区域12b的数据量。在图10中,也按照每个虚拟信道(VC)示出了数据类型(Type)和容量比。对于数据,容量比为保存在FIFO存储器内的每个数据类型的数据量之和。
接收装置内的缓存器控制电路根据图9和10的结果判定增大/减小按照每个数据类型的接收缓存器12的分配容量。例如,缓存器控制电路与图9和10中所示的容量比成比例地分配容量。例如,对于虚拟信道(0),分配给存储Posted类型数据的区域PD的容量与分配给存储Completion类型数据的区域CplD的容量的比例根据图10中所示的结果被决定为14∶19。
要提一下的是,缓存器控制电路不一定要与容量比成比例地分配容量。缓存器控制电路可以在将计算出的接收缓存器容量比与当前缓存器分配相比较时实际执行增大/减小缓存器分配。
要提一下的是,由于接收装置管理TLP的接收缓存器,获取有关在接收装置内接收到的TLP的统计是高效的。
如上所述,在上述任何一个实施例中由于按照实际TLP业务量的趋向而更新按照每个数据类型的接收缓存器的分配容量,因此可以提高接收缓存器的利用效率,增大吞吐量。
图11为示出本发明的第四实施例的方框图。在图11中,与图6中所示的相同的组成部分标以相同的参考标记,不再重复说明。在第三实施例中,可以从发送装置1发送对组件没有影响的伪TLP,因此可以主动执行增大/减小按照每个数据类型的接收缓存器12的分配容量。然而,即使在这样更新接收缓存器的分配容量的情况下,也存在由于在突然发生突发存取时分配容量不足(信用不足)而会停止传输TLP的可能性。
因此,在这个实施例中,发送装置1将一个诸如售主特定DLLP之类的指令发给接收装置以排除信用值的影响,使得可以强制改变接收缓存器的分配容量。
这个实施例与图6所示的不同之处在于发送装置1和接收装置11由发送装置41和接收装置51代替。例如,发送装置41的发送控制电路42可以向接收装置51发送售主特定DLLP,以便增大接收缓存器的分配容量。接收到这个售主特定DLLP后,接收装置51的缓存器控制电路52就优先地保留接收缓存器12的一个与该数据类型相应的存储区域。缓存器控制电路52将按照容量分配更新的信用值发送给发送装置41。
要提一下的是,根据业务量统计增大接收缓存器12的分配容量的通常处理和减小接收缓存器12的分配容量的处理与第三实施例中的相同。
下面将结合图12所示的流程图说明如上配置的实施例的工作情况。在图12中,与图7中所示的相同的步骤标以相同的参考标记,不再重复说明。
现在假设发送装置41由于信用不足而不能发送Completion类型数据的TLP。在这种情况下,过程从图12中的步骤S30转至步骤S31,使得发送装置41的发送控制电路42向接收装置51发送售主特定DLLP,以请求保留接收缓存器。
接收装置51的缓存器控制电路52按照接收到的接收缓存器保留请求而优先增加存储Completion类型数据的区域CplD的分配容量。同时,缓存器控制电路52向发送装置41发送作为Posted类型数据存储区域的缓存器减小请求的售主特定DLLP,使得可以将当前使用频率低的Posted类型数据存储区域的分配改为区域CplD的分配(步骤S32)。
图12示出了在接收缓存器12内不能保留按照接收缓存器保留请求的区域的情况下的一个例子。在这种情况下,缓存器在保留区域之前减小。
发送装置41按照缓存器减小请求向接收装置51发送作为伪Posted消息的售主定义消息(步骤S34)。结果,接收装置51的缓存器控制电路52减小Posted类型数据存储区域(步骤S25)。
如上所述,在这个实施例中,可以从发送装置侧强制增大对于信用不足的数据类型的接收缓存器分配,因此可以避免不能传输特定TLP的问题。结果,可以缩短TLP的事务等待时间,实现高效率的传输。
图13为示出在按照上述任何一个实施例设计的发送装置和接收装置配置在一个计算机内的情况下的说明图。
相当于按照上述任何一个实施例设计的发送装置的根复合体(RC)62形成为一个IC芯片,安装在主板61上。作为一个IC提供的处理器63、存储器控制器64、I/O控制器65等布置在RC 62附近,由并行或串行总线66连接。
RC 62的一个端口(未示出)通过传输通道68与槽67连接。端点设备71与槽67连接。端点(EP)72相当于按照上述任何一个实施例设计的接收装置,安装在端点设备71上。例如,在端点设备71是一个图形设备时,除EP 72外还安装有图形控制器73和图形存储器74。处理器63与图形控制器73之间的数据传输由RC 62和EP 72高速且高效地执行。
图14A和14B为对照PCI Express的层次结构示出按照上述任何一个实施例设计的发送装置和接收装置的层次结构的说明图。
在这个实施例中,与PCI Express的层次结构类似,使用从作为下层的机械层和物理层到作为上层的应用接口的层次结构。类似普通系统的安装,软件通常用来安装上层而硬件通常用来安装下层。如图14A所示,在这个实施例中,直到应用接口的大部分层也可以由硬件安装。
如图14B所示,还可以设想只是直到物理层的下层由硬件安装,而所有与分组/协议有关的层由软件安装。本发明与事务层前后的层有关,主要是与事务层的缓存器管理有关。在图14A所示的例子中,在上述任何一个实施例中的缓存器管理由硬件安装。在图14B所示的例子中,在上述任何一个实施例中的缓存器管理由软件安装。也就是说,无论是硬件安装的方法还是软件安装的方法都可用于上述任何一个实施例。
Claims (9)
1.一种接收装置,所述接收装置包括:
接收缓存器;
第一缓存器控制器,用来判定在接收缓存器内按照每个数据类型的分配容量的初始值和按照接收缓存器的开放更新所述分配容量的初始值;以及
第二缓存器控制器,用来动态地更新所述分配容量的初始值和更新后的分配容量中任一个。
2.按照权利要求1的接收装置,其中所述第二缓存器控制器基于按照每个数据类型的业务量统计而动态地更新所述分配容量。
3.按照权利要求1所述的接收装置,所述接收装置还包括第三缓存器控制器,用来在第一缓存器控制器按照接收缓存器的开放更新分配容量时使所述分配容量保持不变或者使所述分配容量增加比所开放的容量小的容量。
4.按照权利要求3的接收装置,其中所述第三缓存器控制器给发送侧一个命令,命令发送不累积在接收缓存器内的伪数据。
5.一种收发装置,所述收发装置包括:
接收侧,所述接收侧包括:
接收缓存器;
第一缓存器控制器,用来判定在接收缓存器内按照每个数据类型的分配容量的初始值和按照接收缓存器的开放更新所述分配容量的初始值;以及
第二缓存器控制器,用来动态地更新所述分配容量的初始值和更新后的分配容量中任一个;以及
发送侧,所述发送侧包括:
发送量存储器,用来保存与已发送的总数据量有关的信息;以及
发送控制器,用来接收与在接收侧的接收缓存器内按照每个数据类型分配的容量有关的信息,以及将所述总数据量与要发送的数据量相比较,从而判定要发送的数据是否可以被发送。
6.按照权利要求5所述的收发装置,其中所述接收侧还包括第三缓存器控制器,所述第三缓存器控制器给发送侧一个命令,命令发送不累积在接收缓存器内的伪数据,而且所述第三缓存器控制器用来在第一缓存器控制器按照接收缓存器的开放更新分配容量时使所述分配容量保持不变或者使所述分配容量增加比所开放的容量小的容量,以及
其中所述发送侧还包括伪数据发送单元,用来发送所述伪数据。
7.按照权利要求6所述的收发装置,其中所述发送侧还包括用来在第三缓存器控制器给发送侧一个发送所述伪数据的指令之前发出一个增大按照每个数据类型的分配容量的指令的单元。
8.一种接收方法,所述接收方法包括下列步骤:
判定在接收缓存器内按照每个数据类型的分配容量的初始值;
将接收的数据存储在接收缓存器的按照每个数据类型分配的区域内;
按照接收缓存器的开放更新所述分配容量的初始值;以及
动态地更新所述分配容量的初始值或更新后的分配容量。
9.一种收发方法,所述收发方法包括下列步骤:
在接收侧,判定在接收缓存器内按照每个数据类型的分配容量的初始值;
在发送侧,根据已发送的总数据量的信息和所述分配容量的初始值判定要发送的数据是否可以被发送;
在接收侧,动态地更新所述分配容量的初始值或更新后的分配容量;以及
在发送侧,接收与所述分配容量的初始值或更新后的分配容量有关的信息,以及将所述总数据量与要发送的数据量相比较,从而判定要发送的数据是否可以被发送。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2004381785A JP2006189937A (ja) | 2004-12-28 | 2004-12-28 | 受信装置、送受信装置、受信方法及び送受信方法 |
JP2004381785 | 2004-12-28 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1797380A true CN1797380A (zh) | 2006-07-05 |
CN100410913C CN100410913C (zh) | 2008-08-13 |
Family
ID=36653115
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB200510129045XA Expired - Fee Related CN100410913C (zh) | 2004-12-28 | 2005-11-30 | 接收装置、收发装置、接收方法和收发方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US20060153078A1 (zh) |
JP (1) | JP2006189937A (zh) |
CN (1) | CN100410913C (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102763381A (zh) * | 2009-12-04 | 2012-10-31 | 纳派泰克股份公司 | 在通过控制对队列填充级别进行更新来节省带宽的同时接收并存储数据的组件和方法 |
CN103067467A (zh) * | 2012-12-21 | 2013-04-24 | 深信服网络科技(深圳)有限公司 | 缓存方法及装置 |
WO2014139368A1 (en) * | 2013-03-14 | 2014-09-18 | International Business Machines Corporation | Credit-based flow control in lossless ethernet networks |
CN105681222A (zh) * | 2016-03-03 | 2016-06-15 | 深圳市同创国芯电子有限公司 | 一种数据接收缓存方法、装置及通信系统 |
Families Citing this family (30)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7826377B2 (en) * | 2006-06-16 | 2010-11-02 | Ixia | Memory access optimization and communications statistics computation |
US7821962B2 (en) * | 2006-06-16 | 2010-10-26 | Ixia | Memory access optimization |
WO2008050394A1 (fr) * | 2006-10-24 | 2008-05-02 | Fujitsu Limited | Système de transmission/réception de paquets de données, procédé de transmission/réception de paquets de données et programme de transmission/réception de paquets de données |
JP2008210012A (ja) | 2007-02-23 | 2008-09-11 | Fujitsu Ltd | データ復号処理プログラムおよびデータ復号処理装置 |
WO2008152691A1 (ja) * | 2007-06-12 | 2008-12-18 | Fujitsu Limited | リモートコピー方法及びストレージシステム |
JP4802229B2 (ja) * | 2008-08-25 | 2011-10-26 | 株式会社日立製作所 | 複数の集積回路を備えたストレージシステム |
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 |
US20100296520A1 (en) * | 2009-05-19 | 2010-11-25 | Matthews David L | Dynamic quality of service adjustment across a switching fabric |
US8312187B2 (en) * | 2009-09-18 | 2012-11-13 | Oracle America, Inc. | Input/output device including a mechanism for transaction layer packet processing in multiple processor systems |
KR101720259B1 (ko) | 2009-12-04 | 2017-04-10 | 나파테크 에이/에스 | 중앙 제어기에 의해 제어되는 데이터 패킷들을 수신 및 저장하는 장치 및 방법 |
US8286027B2 (en) * | 2010-05-25 | 2012-10-09 | Oracle International Corporation | Input/output device including a mechanism for accelerated error handling in multiple processor and multi-function systems |
US8310942B2 (en) | 2010-08-27 | 2012-11-13 | Ixia | Flow statistics aggregation |
US20120117261A1 (en) * | 2010-11-05 | 2012-05-10 | Nokia Corporation | Method and Apparatus for Rate Adaptation for Adaptive HTTP Streaming |
US9497073B2 (en) | 2011-06-17 | 2016-11-15 | International Business Machines Corporation | Distributed link aggregation group (LAG) for a layer 2 fabric |
JP5966265B2 (ja) * | 2011-07-15 | 2016-08-10 | 株式会社リコー | データ転送装置及び画像形成システム |
US8750129B2 (en) * | 2011-10-06 | 2014-06-10 | International Business Machines Corporation | Credit-based network congestion management |
US9065745B2 (en) | 2011-10-06 | 2015-06-23 | International Business Machines Corporation | Network traffic distribution |
US20130215745A1 (en) * | 2012-02-16 | 2013-08-22 | Broadcom Corporation | Dynamic buffer management in high-throughput wireless systems |
US9094336B2 (en) | 2013-03-15 | 2015-07-28 | Ixia | Methods, systems, and computer readable media for assisting with the debugging of conditions associated with the processing of test packets by a device under test |
US9264340B2 (en) | 2013-03-15 | 2016-02-16 | Ixia | Methods, systems, and computer readable media for misdirected packet drill down and negative packet capture at a network test device |
US9178832B2 (en) | 2013-07-11 | 2015-11-03 | International Business Machines Corporation | Queue credit management |
RO132177A2 (ro) | 2016-03-21 | 2017-09-29 | Ixia, A California Corporation | Metode, sistem şi suport informatic pentru testarea dispozitivelor cu echipament de reţea, folosind protocolul fără conexiune |
US10079782B2 (en) * | 2016-03-31 | 2018-09-18 | Mellanox Technologies Tlv Ltd. | Facilitating communication of data packets using credit-based flow control |
US10193773B2 (en) | 2016-11-09 | 2019-01-29 | Keysight Technologies Singapore (Holdings) Pte. Ltd. | Methods, systems, and computer readable media for distributed network packet statistics collection in a test environment |
US10764148B2 (en) | 2017-11-29 | 2020-09-01 | Keysight Technologies, Inc. | Methods, systems, and computer readable media for network traffic statistics collection |
CN111726379B (zh) * | 2019-03-20 | 2021-11-19 | 华为技术有限公司 | 一种通信方法及装置 |
WO2021147045A1 (zh) * | 2020-01-22 | 2021-07-29 | 华为技术有限公司 | 一种基于PCIe的数据传输方法及装置 |
CN113972962B (zh) * | 2020-07-25 | 2023-02-03 | 华为技术有限公司 | 一种缓冲区管理方法及相关装置 |
US11899601B1 (en) | 2022-07-28 | 2024-02-13 | Beijing Tenafe Electronic Technology Co., Ltd. | Credit synchronization by sending a value for a local credit in a message sender from a message receiver to the message sender in response to a synchronization trigger |
Family Cites Families (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5583652A (en) * | 1994-04-28 | 1996-12-10 | International Business Machines Corporation | Synchronized, variable-speed playback of digitally recorded audio and video |
US5757771A (en) * | 1995-11-14 | 1998-05-26 | Yurie Systems, Inc. | Queue management to serve variable and constant bit rate traffic at multiple quality of service levels in a ATM switch |
US5916309A (en) * | 1997-05-12 | 1999-06-29 | Lexmark International Inc. | System for dynamically determining the size and number of communication buffers based on communication parameters at the beginning of the reception of message |
JP2980075B2 (ja) * | 1997-09-19 | 1999-11-22 | 日本電気株式会社 | レート制御装置 |
JP2000059755A (ja) * | 1998-08-07 | 2000-02-25 | Matsushita Electric Ind Co Ltd | データサーバシステム、データ受信装置およびデータ送信装置 |
US6347337B1 (en) * | 1999-01-08 | 2002-02-12 | Intel Corporation | Credit based flow control scheme over virtual interface architecture for system area networks |
SE0000908L (sv) * | 2000-03-20 | 2001-09-21 | Ericsson Telefon Ab L M | Load regulation |
US6862298B1 (en) * | 2000-07-28 | 2005-03-01 | Crystalvoice Communications, Inc. | Adaptive jitter buffer for internet telephony |
US6993604B2 (en) * | 2000-11-15 | 2006-01-31 | Seagate Technology Llc | Dynamic buffer size allocation for multiplexed streaming |
ATE353503T1 (de) * | 2001-04-24 | 2007-02-15 | Nokia Corp | Verfahren zum ändern der grösse eines zitlerpuffers zur zeitausrichtung, kommunikationssystem, empfängerseite und transcoder |
US7039013B2 (en) * | 2001-12-31 | 2006-05-02 | Nokia Corporation | Packet flow control method and device |
US6877048B2 (en) * | 2002-03-12 | 2005-04-05 | International Business Machines Corporation | Dynamic memory allocation between inbound and outbound buffers in a protocol handler |
CN1215679C (zh) * | 2003-04-14 | 2005-08-17 | 港湾网络有限公司 | 数据传输的流量控制方法 |
-
2004
- 2004-12-28 JP JP2004381785A patent/JP2006189937A/ja not_active Withdrawn
-
2005
- 2005-11-10 US US11/270,442 patent/US20060153078A1/en not_active Abandoned
- 2005-11-30 CN CNB200510129045XA patent/CN100410913C/zh not_active Expired - Fee Related
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102763381A (zh) * | 2009-12-04 | 2012-10-31 | 纳派泰克股份公司 | 在通过控制对队列填充级别进行更新来节省带宽的同时接收并存储数据的组件和方法 |
CN102763381B (zh) * | 2009-12-04 | 2015-04-22 | 纳派泰克股份公司 | 在通过控制对队列填充程度进行更新来节省带宽的同时接收并存储数据的组件和方法 |
CN103067467A (zh) * | 2012-12-21 | 2013-04-24 | 深信服网络科技(深圳)有限公司 | 缓存方法及装置 |
CN103067467B (zh) * | 2012-12-21 | 2016-08-03 | 深圳市深信服电子科技有限公司 | 缓存方法及装置 |
WO2014139368A1 (en) * | 2013-03-14 | 2014-09-18 | International Business Machines Corporation | Credit-based flow control in lossless ethernet networks |
US9237111B2 (en) | 2013-03-14 | 2016-01-12 | International Business Machines Corporation | Credit-based flow control in lossless ethernet networks |
US9363189B2 (en) | 2013-03-14 | 2016-06-07 | International Business Machines Corporation | Credit based flow control in lossless ethernet networks |
US9647953B2 (en) | 2013-03-14 | 2017-05-09 | International Business Machines Corporation | Credit-based flow control in lossless Ethernet networks |
CN105681222A (zh) * | 2016-03-03 | 2016-06-15 | 深圳市同创国芯电子有限公司 | 一种数据接收缓存方法、装置及通信系统 |
Also Published As
Publication number | Publication date |
---|---|
US20060153078A1 (en) | 2006-07-13 |
JP2006189937A (ja) | 2006-07-20 |
CN100410913C (zh) | 2008-08-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1797380A (zh) | 接收装置、收发装置、接收方法和收发方法 | |
US7054968B2 (en) | Method and apparatus for multi-port memory controller | |
US9390039B2 (en) | Providing a fine-grained arbitration system | |
CN100428167C (zh) | 计算机系统、服务器以及作业执行控制方法 | |
CN109154883A (zh) | 驱动级内部服务质量 | |
US7865647B2 (en) | Efficient resource arbitration | |
TWI772279B (zh) | 用於具有可重配置多端口的快捷外設互聯標準儲存系統的服務品質感測輸入輸出管理的方法、系統及設備 | |
CN1667597A (zh) | 资源管理装置 | |
JP2002269023A5 (zh) | ||
US8650270B2 (en) | Distributed computing with multiple coordinated component collections | |
JP6262407B1 (ja) | 共有キャッシュメモリシステムにおける共有キャッシュメモリ割振り制御の提供 | |
CN1904873A (zh) | 嵌入式实时操作系统中多核处理器的核间通信方法及装置 | |
TW201428464A (zh) | 分散式晶片層次的電力系統 | |
CN101056175A (zh) | 磁盘阵列及其访问权限控制方法与装置、服务器及服务器系统 | |
US7555578B2 (en) | Device for controlling endpoints of USB device and method of controlling endpoints of USB device | |
WO2023184991A1 (zh) | 一种流量管控方法、装置、设备及可读存储介质 | |
WO2017016380A1 (en) | Advance cache allocator | |
CN1262934C (zh) | 具有不同资源访问方案的系统集成代理程序 | |
CN110427273A (zh) | 内存调度方法、装置、设备及存储介质 | |
US20240012578A1 (en) | Data storage device for guaranteeing that system resources meet performance requirements, method of operating the same, and memory controller for the same | |
US11609700B2 (en) | Pacing in a storage sub-system | |
EP4134806A1 (en) | Improving pacing in a storage sub-system | |
KR101771351B1 (ko) | 프로그램실행장치, 네트워크장치 및 자원분산 처리방법 | |
CN118642985A (zh) | 一种多端口usb主机芯片的仲裁调度系统及方法 | |
CN118035129A (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 | ||
C19 | Lapse of patent right due to non-payment of the annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |