避让定时机制的制作方法

文档序号:6556965阅读:189来源:国知局
专利名称:避让定时机制的制作方法
技术领域
本发明一般地涉及主设备和从设备之间的通信,而且,更具体地说,本发明涉及关于重试从主设备发送到从设备的请求,实现避让定时(backing-off timing)的系统和方法。
背景技术
现代的高性能计算系统可以包括多个可以实现各种计算系统的设备。例如,可以存在多个处理器(可以用作主、从或者它们二者)、存储器、输入/输出(I/O)设备等。这些不同设备通常连接到总线,因此,它们可以互相通信、传送数据等。因为可以存在许多试图利用总线的无限带宽进行通信的设备,所以设备之间的通信应该尽可能有效。通常以多个步骤或者多个阶段实现通过总线在设备之间执行的事务(transaction)。例如,如果主设备希望将数据写入从设备,则需要在典型系统中该主设备发出写命令,等待来自可以接收该命令的目标从设备的确认,然后,将该写数据传送到总线,以便被发送到该目标从设备。通过总线,在各种设备之间同时执行的这种事务可以有许多,因此,需要实现各种机制,以防止每种事务互相干扰。
如上所述,为了有助于通过分割(split)事务总线进行通信通常实现的机制之一是重试目标设备在第一次尝试时没有收到的命令的避让机制。如上所述,为了执行事务,主设备必须等待来自目标从设备的确认。如果在从设备第一次发送命令时,从设备未准备好接收该命令(例如,如果从设备的命令缓冲器是满的),则该从设备可以将RETRY响应发送到该主设备。在该主设备收到RETRY响应时,它知道该命令未被收到,而且可以在以后的时间重试该命令。
因为设备之间通过总线执行的通信的多阶段性质,可能存在两个不同设备几乎同时尝试互相发送命令的情况。在相应目标设备收到每个命令时,该目标设备可以认为自己不能用于接收其他设备的命令,因为自己的未决命令,因此,该目标设备可以对其他设备发送RETRY响应。因此,两个设备都必须在以后的时间重试发送其命令。如果在再一次发送它们的命令之前,两个设备都等待同样长的时间,则在接收其他设备的命令时,每个设备都再一次处于忙。如果两个设备都陷入无穷循环,则这可以无限重复。该条件被称为“活锁(live lock)”。
为了避免出现活锁情况,通常执行避让定时机制(backing-offtiming)。通常,避让定时机制使得设备在重试未确认的命令之前等待增加的时间。避让定时机制还在选择特定等待周期过程中实现随机性因素。选择等待周期的随机性减少了两个设备连续互相干扰的机会。增大等待周期的大小可以减少在重试该命令时占用的资源量(因为在短等待周期后仍忙碌的设备很可能在另一个短等待周期之后仍忙碌)。
为了实现避让定时机制,通常需要跟踪命令的重试次数和在应该重试该命令之前剩余的时间。在传统系统中,对每个未决命令设置一组寄存器。这些寄存器之一存储相应命令的重试次数(重试计数器或者指示符),而另一个寄存器用作定时器(定时器期满值)。在每次从目标从设备收到重试响应时,更新第一寄存器。通常,第二寄存器存储要重试该命令之前剩余的时间,因此,必须在每个周期更新它。因为典型系统提供大量未决命令(例如,8个或者16个),所以还必须提供相应数量的重试指示符(indicator)和定时器值。因此,鉴于该芯片上它们所需的空间,以及对每个命令更新定时器值所需的处理,所以传统的避让定时机制可能昂贵。
因此,希望提供一种用于在重试命令的过程中实现避让定时的系统和方法,其中该系统和方法可以更有效利用该芯片上它们所需的空间以及跟踪重试定时所需的处理资源。

发明内容
利用本发明的各种实施例可以解决上面概括说明的一个或者多个问题。总体上说,本发明包括用于对通过分割事务总线从主设备发送到从设备的命令的重试实现避让定时的系统和方法。一个实施例包括缓冲器,具有用于存储每个未决命令和相关信息的项,如该命令的重试次数和静态(但是不是永久的)伪随机定时器期满值。根据与对应于该项的命令的重试次数相关的掩码,将每个项的定时器期满值与该运行计数器进行比较。在两个值的未屏蔽位匹配时,重试该命令。在一个实施例中,用于存储重试次数和定时器期满值的缓冲器项的相同部分用于交替存储与确认响应一起接收的从生成标志。在收到从生成标志时,不需要重试次数和定时器期满值,因此,利用该标志覆盖写它们。
一个实施例包括避让定时系统,该避让定时系统包括命令缓冲器、运行计数器、一个或者多个比较器以及控制电路。该命令缓冲器具有多个项,每个项具有相应比较器。配置该控制电路,以在对于对应于该项的命令,收到重试时,将静态定时器期满值存储到每个项内。控制电路还存储重试次数的指示符。该比较器将静态定时器期满值的选择位与运行计数器值的相应位进行比较。如果选择的位匹配,则该控制电路启动动作,例如,对应于匹配项的命令的重试。
变换实施例包括避让定时系统,该避让定时系统包括命令缓冲器和该命令缓冲器的控制电路。命令缓冲器具有多个项,每个项均与相应未决命令相关。配置该控制电路,以当对于对应于该项的命令收到重试响应时,将避让定时信息存储到每个项的第一部分内。当对于对应于该项的命令收到含有从生成标志的确认时,将该从生成标志存储到该项的第一部分,代替该避让定时信息。
另一个变换实施例包括用于避让定时的方法,该方法包括存储含有静态定时器期满值的多个缓冲器项;将定时器期满值的选择位与运行计数器进行比较;以及启动动作,例如,对应于匹配项的命令的重试。
又一个变换实施例包括一种用于避让定时的方法,该方法包括根据是否收到重试响应或者确认响应,存储对应于未决命令的多个缓冲器项并将避让定时信息或者从生成标志交替存储到每个项的相同部分上。
还可以有许多其他实施例。


在阅读了下面的详细说明并参考了附图后,本发明的其他目的和优点显而易见。
图1是示出具有总线的系统的方框图,该总线将根据一个实施例的多个主设备和从设备互连在一起;图2是示出根据一个实施例被配置成执行分割事务的主设备结构的方框图;图3是示出根据一个实施例交替存储s标志或者避让定时值的流程图;图4是示出根据一个实施例实现避让定时机制的命令缓冲器和相应控制电路的结构的示意图。
尽管本发明可以具有各种修改形式和变换形式,但是,作为例子,在附图和下面的详细说明中示出并说明了特定实施例。应该明白,附图和详细说明无意使本发明局限于所描述的特定实施例。相反,该公开意在涵盖落入所附权利要求限定的本发明范围内的所有修改、等同以及变换。
具体实施例方式
下面说明本发明的一个或者多个实施例。应该注意,下面描述的这些以及任何其他实施例是示例性的,意在说明本发明,而非限制本发明。
总体上说,本发明包括用于对通过分割事务总线从主设备发送到从设备的命令的重试实现避让定时的系统和方法,其中与传统系统和方法相比,需要的资源少。在一个实施例中,提供一组寄存器(一个命令缓冲器)用于存储未决命令。对于每个未决命令,存在一个寄存器(缓冲器项(entry)),其被配置成存储指出命令重试的次数和定时器期满值的信息。保持一个运行计数器,用于与存储在对应于未决命令的寄存器内的定时器期满值进行比较。
在首先发出命令时,将该命令存储到缓冲器项之一内,利用相应识别标志索引该缓冲器项。如果必须重试该命令,则将相应命令的重试次数存储到缓冲器项内。伪随机数存储在缓冲器项内,作为定时器期满值。根据该命令的重试次数,对定时器期满值和运行计数器的值施加掩码。在这两个值的未屏蔽位匹配时,重试该命令(即,重发到目标从设备)。
在一个实施例中,将重试计数器和定时器期满值存储到与从生成标志(slave-generated tag)相同的位置。在该实施例中,在从设备响应某个命令时,提供从生成标志,以便于之后识别与各命令有关的通信(在从设备内)。然而,在命令被确认之前,不对该命令分配这种标志,不使用对该标志提供的存储位置。因此,该存储位置可以用于存储重试计数器和定时器期满值。如果从设备以重试命令的确认做出响应,而且随该响应包括从生成标志,可以删除先前存储在命令缓冲器的相应项内的重试计数器和定时器期满值,而且可以将从生成标志存储到其位置。尽管可以在各种系统中实现本发明的各种实施例,但是下面的描述集中说明在多处理器系统内实现的特定实施例。该实施例是示例性的,而非限制性的。
参考图1,图1所示的方框图示出根据一个实施例具有使多个主设备与从设备互连的总线的系统。在该实施例中,该主设备和从设备被配置成交互,以执行各种事务。例如,主设备115和主设备120之一可以对从设备125和130之一产生写命令或者读命令。然后,主设备可以将数据发送到该从设备,或者从该从设备接收数据。分别配置从设备125和130,以在收到该命令后发送应答。应答可以是确认、重试响应或者空响应。确认表示该从设备可以接受或者发送数据,空表示从设备不是该事务的参与者,重试表示此时不能完成请求的事务,而且该主设备需要在以后的时间重试发送该命令。
组合响应单元135被配置成从所有从设备接收应答,组合该应答,然后,对连接到该总线的所有设备(包括主设备和从设备)广播一个组合应答。在一个实施例中,组合响应单元135被配置成如果来自一个或者多个从设备的应答是重试响应,则广播重试组合响应。作为该事务的直接参与者的从设备(例如,数据被写入其内,或者从其读取数据的设备),或者作为间接参与者的从设备(例如,用于观察(observe)该事务并根据该事务更新本地存储信息的设备)可以产生重试响应。在这两种情况下,该设备都没有准备好执行该事务,因此,将重试响应发送到从设备,以迟延该事务。
因为该实施例中的事务被分割为不同部分或者阶段(例如,主设备发送命令,然后,从设备应答该命令,等),所以使用标志方案使每个事务的各不同阶段互相相关。产生了命令后,配置主设备,以使主标志(m标志)与产生的命令相关。与命令一起将m标志发送到从设备,然后,与从设备发送的任何响应或者数据一起,该m标志返回主设备。在主设备接收响应或者数据时,主设备使收到的响应或者数据与对应于所包含的m标志的事务相关。在一个实施例中,m标志可以是进入其中存储了命令和/或者关于该事务的信息的主设备中的命令缓冲器的索引。利用该m标志作为索引,可以从命令缓冲器中迅速检索关于事务的信息,而不必将该m标志与命令缓冲器内的每个项进行比较。
在该实施例中,除了主生成m标志,有时还使用从生成标志(s标志)。以与m标志非常类似的方式使用s标志。差别在于,尽管主设备产生m标志,而且该主设备利用该m标志在主设备的命令缓冲器内进行索引,从设备产生该s标志,而且该从设备利用该s标志在该从设备的命令缓冲器内进行索引。在这两种情况下,使用各标志在相应命令缓冲器内进行索引就不需要昂贵的内容可寻址存储器,否则,则需要它查找与收到的响应有关的事务信息。根据下面对示例性事务所做的解释,m标志和s标志的功能更加显而易见。
参考图2,所示的方框图示出根据一个实施例、被配置用于执行分割事务的主设备结构的方框图。在该实施例中,主设备210被配置成产生写命令,从而通过总线250,将数据从本地(local)存储器220传送到从设备。主设备210还被配置成产生读命令,从而通过总线250,将数据从从设备传送到本地存储器220。
在一个实施例中,主设备210产生命令(例如,写命令),然后,将该命令存储到命令缓冲器230。可以与各种相关信息一起,例如,当前存储了数据的本地存储器220内的地址和要将该数据写入其内的从设备的本地存储器内的地址,存储该命令。可以将该命令存储到命令缓冲器230内,直到与该命令相关的事务结束。
为了将该命令存储到命令缓冲器230内,从自由m标志列表225获取m标志。该列表含有表示哪个m标志可用的信息。如果命令缓冲器内的相应存储位置可用,则特定m标志可用。m标志用作其内存储了命令的命令缓冲器230的索引。例如,标志1可以对应于该缓冲器内的第一位置,标志2可以对应于该缓冲器内的第二位置,等等。
然后,通过线路255,将该命令和选择的m标志发送到总线。不仅要将数据写入其内的从设备可以看到该命令,而且连接到总线的其他设备可以看到该命令。在进行该事务之前,主设备210发送命令(例如,发送要写入的数据),以确保目标从设备和作为该事务的间接参与者的其他设备准备好进行该事务。如果所有设备都准备好进行该事务(例如,如果目标从设备可以接受写命令),则主设备可以继续执行(例如,发送该数据)。
主设备210被配置成响应先前发送到从设备的命令,通过线路260,接收应答。在该实施例中,该应答是表示连接到该总线的所有设备提供的应答的组合应答。主设备210收到的应答含有该主设备最初发送到从设备的m标志以及可以进行与该m标志相关的事务的确认,或者表示应该在以后的时间重新发送该命令的重试响应。
如果主设备210收到的应答是确认,则进行该事务。如果该事务是写事务,则该组合响应包括s标志。(如上所述,该实施例中的从设备对该事务分配s标志,以便于在自己的命令缓冲器内查找该事务)。主设备收到的s标志和与该事务有关的其他信息一起存储在缓冲器230内m标志索引的位置。[在其他实施例中,s标志可以存储在缓冲器230之外的缓冲器内]。在主设备准备好处理该事务时,根据m标志,它在命令缓冲器230内进行索引,然后,检索进行该事务所需的信息。例如,将在其上存储写数据的地址发送到本地存储器,以便可以检索该数据,而将s标志写入s标志缓冲器245。(应该注意,主设备210几乎立即准备好将写数据发送到总线,因此,在主设备收到s标志时,可以将s标志存储到缓冲器245内)。将从本地存储器220检索的数据发送到输出缓冲器235,在输出缓冲器235,使该数据排队,以退出主设备210。然后,通过线路265,将该数据和来自s标志缓冲器245的相应s标志一起发送到从设备。然后,从命令缓冲器230删除该命令和相应信息,并且,在自由m标志列表225内m标志被标识为可用。对于主设备,这样完成了与写命令有关的事务。
如果该事务是读事务,则该从设备无需为了便于定位命令缓冲器的命令而产生s标志。因此,在收到读命令的确认时,该主设备无需将s标志存储到自己的命令缓冲器内。主设备210仅等待接收对应于该命令的数据。在主设备210收到读取的数据时,与该数据一起收到相应m标志。m标志用于在命令缓冲器230内进行索引,然后,检索与该事务有关的信息,例如,数据存储在其上的本地存储器220内的地址。存储了该数据后,从命令缓冲器230内删除该命令和相应信息,而且在自由m标志列表225内,使该m标志可用,完成该主设备内的读事务。
如果主设备210收到的组合应答是重试响应,则必须延迟处理该事务。利用避让定时机制实现该延迟。在该实施例中,在主设备210接收重试响应时,在命令缓冲器230内存储或者更新重试指示符,以反映该命令的重试次数(收到的重试响应可能是第一个,它也可以是对该命令收到的几个之一)。定时器期满值也存储在命令缓冲器230内。在该定时器期满值与运行定时器的当前值匹配时,主设备210再一次发送该命令。
应该注意,在其他实施例中,重试指示符和定时器期满值可以存储在命令缓冲器之外的缓冲器内。还应该注意,无论重试指示符和定时器期满值存储在什么地方,均可以对这些值和s标志采用同样的存储位置。这是因为重试和定时器期满值用于避让定时机制,并因此在收到确认和相应s标志时,不再需要该重试和定时器期满值。同样,在完成与s标志有关的事务并将对应于新事务的信息存储到该位置之前,不需要将避让定时值存储到该s标志使用的位置。
参考图3,所示的流程图示出根据一个实施例交替存储s标志或者避让定时值。首先,主设备确定它在其命令缓冲器内是否具有可用存储位置。如果存在可用存储位置,则该命令与相应m标志相关,并将它和完成该事务所需的各种其他信息一起存储到该位置(块305)。在该实施例中,假定主设备初始化被指定用于存储相应s标志和/或者避让定时值的部分存储位置(块305)。然后,主设备将该命令送到总线(块305)。
在主设备发送了该命令后,该主设备等待应答。在该实施例中,根据连接到该总线的各种设备的应答,利用组合响应单元,产生应答。在主设备收到应答时(块310),确定该应答是否是确认(块315)。如果该应答是确认,则该应答可以包括s标志。如上所述,在一个实施例中,写命令的确认包括s标志,而读命令的确认不包括s标志。因此,确定该确认是否包括s标志(块320)。如果s标志包括在该确认内,则将该s标志存储在对相应命令指定的位置(块321),然后,继续进行该事务(块325)。对于写命令,这可以包括检索写数据,然后,与s标志一起,将该数据发送到总线。如果确定该确认不包括s标志(块320),则继续进行该事务(块325),而没有存储的s标志。
如果在块315,确定对于该命令的组合应答不是确认,则该应答是重试响应。因此,该主设备将重试指示符值和定时器期满值存储到相应命令缓冲器项的指定位置(块330)。将这些值存储到该缓冲器内后,主设备开始根据运行计数器的值检验定时器期满值(块335)。这包括对定时器期满值和运行计数器的值施加掩码(根据重试指示符选择),然后,确定未屏蔽位是否匹配。下面还将对此做详细说明。如果屏蔽值不匹配,则在递增运行计数器之前不采取动作,然后,再将屏蔽值进行比较。在屏蔽值匹配时,重发该命令(块340),然后,该主设备等待对应于该重发命令的应答(块310)。
在一个实施例中,该重试指示符被实现为在每次收到对应于该指示符的重试时递增的计数器。因此,最初,重试指示符是0,然后,在一个重试响应后,它变成1,在两个重试响应后,它变成2,等。该计数器可被配置成在达到相应重试次数时,保持最大值。例如,在收到第八个重试响应时,计数器可以达到最大值8,而且在收到另外的重试响应时,可以保持在该值。应该注意,还可以以许多其他形式实现该重试指示符。
在一个实施例中,利用伪随机数发生器提供定时器期满值。在收到重试响应时,将该发生器提供的伪随机数存储到对应于该重试响应的命令的缓冲器项内。该值是静态的,而且在收到新重试响应以及利用新伪随机数覆盖写该定时器期满值之前,或者在收到该确认并利用s标志或者与该确认有关的其他信息覆盖写该定时器期满值之前,不更新该值。代替更新该定时器期满值,而将该值与运行计数器(定时器)进行比较。因为运行计数器周期性地工作(即,从0递增到N,然后,返回0,之后,再一次开始递增),所以运行计数器是对从0开始的随机定时器期满值,还是对从随机开始值开始的随机定时器期满值进行计数没有差别。
与传统机制相比,使用运行计数器和伪随机定时器期满值可以提高定时机制的效率,因为不是对必须分别更新的每个缓冲器项设置单独计数器,而是仅更新一个运行计数器。因为每个周期更新一个计数器,所以显著减少了避让定时机制的功率消耗和更新计数器所需的处理时间。
尽管运行计数器和伪随机定时器期满值考虑到了不同命令重试的定时之间的变化,但是它们不独自提供定时避让。即,它们不提供从增大的数值范围内选择的随机定时器值。在本实施例中,这是通过对比较值施加掩码实现的。
在该实施例中,每个重试次数(最高达到最大值8)与相应掩码相关。下面的表1示出重试次数和相应掩码。
表1

每个掩码都是8位长,其中0对应于屏蔽位,而1对应于未屏蔽位。对定时器期满值的8个最高有效位施加每个掩码,在该实施例中,定时器期满值是16位长。(在该实施例中,s标志是24位长)。可以看出,对于每个后续的重试,定时器期满值的一个附加位未被屏蔽。因此,对于0次重试,掩码是“00000000”,因此,该定时器期满值的8个最高有效位被屏蔽,而在与运行计数器进行比较时,仅使用8个最低有效位。在一次重试之后,进行比较使用的掩码是“00000001”,因此,在将定时器期满值与运行计数器进行比较时,使用9个最低有效位。
这种机制导致从0-255(0-28-1)内随机选择0次重试的重试周期,从0-511(0-29-1)内选择1次重试的重试周期,等等。下面的表2示出对应于重试次数的重试周期(period)的范围。
表2

由于该计数器的任意数量的最低有效位连续递增到所有可能值,而且由于该定时器期满值的任意数量的最低有效位本身是该屏蔽计数器范围内的伪随机数,因此对命令缓冲器内的所有项,同一运行计数器可以用于避让定时机制。
在图4所示的电路中可以实现上面描述的实施例。图4是示出命令缓冲器和用于实现根据本实施例的避让定时机制的相应控制电路的结构的示意图。在主设备收到对应于写命令的响应时,通过线路405,将包含在该响应内的m标志送到命令缓冲器,然后,锁存在锁存器410内。如果s标志包括在该响应内,则通过线路406,将它送到命令缓冲器。
在锁存器410的输出端的m标志被送到第二锁存器411的输入端,然后,再通过线路401,将它送到复用器421。m标志值用作复用器421的控制输入,使复用器选择对应于该m标志的缓冲器项430-431之一。(缓冲器项430-431设置为复用器421和复用器422的输入-为了清楚起见,该图中仅明确示出到复用器422的连接。)换句话说,m标志用于在命令缓冲器内进行索引。复用器421在其输出端提供选择的项的重试指示符值。通过线路402,将该值送到加法器416。加法器416递增该重试指示符值,然后,将结果送到格式化器417。线性反馈移位寄存器415产生伪随机数,而且还将该值送到格式化器417。
格式化器417接收来自线性反馈移位寄存器415和加法器416的值,然后,格式化这些值,以存储在命令缓冲器的项内。然后,将格式化的值送到复用器423。如果s标志包括在主设备的响应内,则还通过线路406,将该s标志送到复用器423。因为该实施例用于交替存储这些格式化的值(重试和避让信息)或者s标志,所以格式化的避让信息和s标志采用同样的位数(但是,在其他实施例中,无需这样)。主设备接收的响应的类型控制复用器423。如果该响应是重试响应,则复用器423被配置成选择从格式化器417接收的避让信息。如果响应是确认,则复用器423被配置成选择在线路406上接收的s标志。在复用器423的输出端产生选择的值,从复用器423该值被输入到锁存器412。
在将m标志的值锁存到(clock into)锁存器411内后,该值被提供在该锁存器的输出端,而且该值用于在命令缓冲器内进行索引,从而选择命令缓冲器项430-431之一。应该注意,在该实施例中,尽管命令缓冲器包括16个项,但是为了清楚起见,在该图中仅明确示出两个项(430和431)。在将m标志值锁存到锁存器411内时,将复用器423选择的值锁存到锁存器412内。将存储在锁存器412内的值送到根据该m标志值选择的缓冲器项,然后,将它存储到该项内。如果主设备收到的响应是写命令的确认,则存储在命令缓冲器项内的值是s标志。在这种情况下,复用器422可以选择由m标志索引的缓冲器项,以将相应信息送到锁存器413。然后,该信息可以用于从主设备的本地存储器检索写数据,然后,与相应s标志一起,将它送到总线。
如果主设备收到的响应是重试响应,则复用器423选择格式化重试和避让信息,以送到锁存器412。在将该信息锁存到锁存器412内,而将相应m标志锁存到锁存器411内时,将格式化重试和避让信息存储到m标志索引的命令缓冲器项中。每个命令缓冲器项430-431均具有相应比较电路440-441,用于确定是否应该将存储在该项中的命令重发到总线。例如,电路440将缓冲器项430上的重试和避让信息与自由运行计数器418的值进行比较,而电路441将缓冲器项431的信息与该计数器的值进行比较。如果该缓冲器项内的伪随机数的值与计数器418的值匹配(如根据避让信息屏蔽的),则该信号被断言(assert),以开始重试(重发)该命令。
图中示出比较电路441的细节。可以看出,在该实施例中,将存储在该缓冲器项431内的掩码值和伪随机数送到电路441。还将计数器418的值送到比较电路441。比较电路441将缓冲器项431内的伪随机数和计数器418的值逐位进行比较。将这些比较的结果送到改进型“与”门。该改进型“与”门被配置成利用掩码值确定应该考虑哪些比较结果,而应该忽略哪些比较结果。如上所述,该实施例中的掩码标识应该忽略多少(0-8)个最高有效位。如果所有剩余位的比较是真(即,如果所有未屏蔽位匹配),则断言改进型“与”门的输出,指出现在应该重试缓冲器项441内的命令。
如上所述,上面的实施例意在说明本发明的许多可能实施例。变换实施例可以包括一个或者多个上述特征的变型。例如,不将避让定时信息和s标志存储到命令缓冲器内,主设备可以包括用于存储该数据的不同缓冲器。作为另一个例子,变换实施例不存储显式重试计数器值。相反,与避让定时信息一起可以存储对应于重试值的掩码,因此,通过与存储的掩码相关,可以得知重试次数。在这种实施例中,在收到重试响应时,不使该重试计数器递增,而是在存储之前,使该掩码的各位移位(例如,可以使“00000001”移位到“00000011”,或者可以使“00111111”移位到“01111111”)。相反,另一个变换实施例可以显式存储该重试计数器值,而根据其与重试计数器值相关,可以得知要施加的掩码。还可以有许多其他变型。
尽管本申请的公开根据多处理器计算系统描述了本发明,但是应该注意,可以更广泛应用本发明,而且本发明可以用于其他情况下的变型。因此,不应该认为该公开使本发明局限于多媒体游戏系统领域。
本技术领域内的技术人员明白,可以利用各种不同技巧和技术之任一表示信息和信号。例如,可以利用电压、电流、电磁波、磁场或者它们的任意组合,表示在上述整个说明中可以采用的数据、指令、命令、信息、信号、位和符号。
本技术领域内的技术人员还明白,利用电子硬件、计算机软件或者这二者的组合,可以实现结合在此公开的实施例描述的各种示例性逻辑块、模块、电路以及算法步骤。为了清楚地说明硬件和软件的这种可互换性,上面根据其功能,一般性地说明了各种示例性部件、块、模块、电路以及步骤。是利用硬件还是利用软件实现这种功能取决于特定应用和对整个系统设定的设计限制。对于每种特定应用,本技术领域内的技术人员可以以各种方式实现上述功能,但是,不应该认为这种实现判定导致脱离本发明范围。
利用通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或者用于实现在此描述的功能的其他可编程逻辑器件、分立门或者晶体管逻辑、分立硬件部件或者它们的任意组合可以实现或者实施结合在此公开的实施例描述各种示例性逻辑块、模块以及电路。
上面根据特定实施例描述了可以利用本发明实现的好处和优点。不应该认为这些好处和优点以及可能导致它们出现的,或者更明确表达的任意元素或者限定是权利要求之任一或者全部权利要求的重要特征、要求特征或者本质特征。应该将在此使用的术语“包括(comprises)”、“包括(comprising)”或者其任意其他变型理解为不仅仅包括这些术语后面的元素或者限定。因此,包括一组元素的系统、方法或者其他实施例并不局限于仅这些元素,而且可以包括未明确列出的,或者所要求实施例固有的其他元素。
上面对公开的实施例所做的描述是为了使本技术领域内的技术人员明白实施本发明或者使用本发明。对于本技术领域内的技术人员,这些实施例的各种修改是显而易见的,而且在不脱离本发明实质范围的情况下,在此定义的一般原理可以应用于其他实施例。因此,本发明无意局限于在此说明的实施例,而是符合与在此公开的和下面的权利要求引述的原理和新颖特征一致的最广泛范围。
权利要求
1.一种避让定时系统,包括命令缓冲器,被配置成存储多个项;运行计数器,被配置成周期性地通过一组值进行计数;一个或者多个比较器,被配置成对于每一项,将对应于该项的定时器期满值的选择位与该运行计数器的当前值的相应位进行比较;以及控制电路,被配置成响应一个或者多个比较器确定对应于所述多个项中的第一项的定时器期满值的选择位与该运行计数器的当前值的相应位匹配,启动对应于所述多个项中的第一项的动作。
2.根据权利要求1所述的系统,其中在多处理器系统的主设备内实现避让定时系统,而且其中控制电路启动的动作包括与所述多个项中的第一项相关的命令的重试。
3.根据权利要求1所述的系统,进一步包括伪随机数发生器,其中控制电路被配置成存储伪随机数发生器提供的伪随机数作为定时器期满值,而且当对于对应于该项的命令收到重试响应时,将重试次数指示符存储到每个项内。
4.根据权利要求3所述的系统,其中该一个或者多个比较器被配置成根据与重试次数指示符相关的掩码,确定定时器期满值的选择位。
5.根据权利要求4所述的系统,其中该一个或者多个比较器被配置成对定时器期满值施加掩码,而且选择一系列未屏蔽位。
6.根据权利要求1所述的系统,其中对定时器期满值的各位的第一子集施加该掩码,而且其中选择位始终包括该定时器期满值的各位的第二子集。
7.根据权利要求1所述的系统,其中选择的该定时器期满值的各位的子集包括该定时器期满值的一系列连续最低有效位。
8.根据权利要求1所述的系统,其中控制电路被配置成当对于对应于该项的命令收到重试响应时,将定时器期满值和重试次数指示符存储在每个项的第一部分;以及当对于对应于该项的命令收到含有从生成标志的确认时,将从生成标志存储到每个项的第一部分。
9.一种用于避让定时的方法,包括存储对应于未决命令的一个或者多个项,其中每个项均包括静态定时器期满值;保持运行计数器,该运行计数器被配置成周期性地通过一组值进行计数;对于每个项,重复地将对应于定时器期满值的选择位与该运行计数器的当前值的相应位进行比较;以及响应确定对应于所述多个项中的第一项的定时器期满值的选择位与该运行计数器的当前值的相应位匹配,启动对应于所述多个项中的第一项的动作。
10.根据权利要求9所述的方法,其中启动对应于所述多个项中的第一项的动作包括与所述多个项中的第一项相关的命令的重试。
11.根据权利要求9所述的方法,进一步包括,对于每个项产生伪随机数,并存储该伪随机数作为定时器期满值;以及当对于对应于该项的命令收到重试响应时,将重试次数指示符存储到每个项内。
12.根据权利要求11所述的方法,进一步包括根据与该项的重试次数指示符相关的掩码,确定每个项的定时器期满值的选择位。
13.根据权利要求12所述的方法,进一步包括对定时器期满值施加掩码,以选择一系列未屏蔽位。
14.根据权利要求13所述的方法,其中对定时器期满值的各位的第一子集施加该掩码,而且其中选择位始终包括该定时器期满值的各位的第二子集。
15.根据权利要求14所述的方法,其中确定每个项的定时器期满值的选择位包括选择对应于该定时器期满值的一系列连续最低有效位。
16.根据权利要求9所述的方法,进一步包括当对于对应于该项的命令收到重试响应时,将定时器期满值和重试次数指示符存储在每个项的第一部分;以及当对于对应于该项的命令收到含有从生成标志的确认时,将从生成标志存储到每个项的第一部分。
17.一种避让定时系统,包括命令缓冲器,被配置成存储多个项,其中每个项与相应未决命令相关;控制电路,被配置成当对于对应于该项的命令收到重试响应时,将避让定时信息存储到每个项的第一部分,以及当对于对应于该项的命令收到含有从生成标志的确认时,将从生成标志存储到每个项的第一部分。
18.根据权利要求17所述的系统,进一步包括伪随机数发生器;运行计数器,被配置成周期性地通过一组值进行计数;其中控制电路被配置成存储包括表示对应于该项的命令的重试次数的重试指示符和该伪随机数发生器产生的定时器期满值的避让定时信息。
19.一种用于避让定时的方法,包括存储多个缓冲器项,其中每个项与相应未决命令相关;当对于对应于该项的命令收到重试响应时,将避让定时信息存储到每个项的第一部分,以及当对于对应于该项的命令收到含有从生成标志的确认时,将从生成标志存储到每个项的第一部分。
20.根据权利要求19所述的方法,进一步包括保持运行计数器,所述运行计数器被配置成周期性地通过一组值进行计数;以及存储表示对应于该项的命令的重试次数的重试指示器和伪随机定时器期满值,作为避让定时信息。
全文摘要
用于对通过分割事务总线从主设备发送到从设备的命令的重试实现避让定时的系统和方法。一个实施例包括缓冲器,具有用于存储每个未决命令和相关信息的项,包括命令的重试次数和静态伪随机定时器期满值。根据与对应于该项的命令的重试次数相关的掩码,将每个项的定时器期满值与该运行计数器进行比较。在两个值的未屏蔽位匹配时,重试该命令。在一个实施例中,用于存储重试次数和定时器期满值的缓冲器项的相同部分用于交替存储与确认响应一起接收的从生成标志。
文档编号G06F13/14GK1845085SQ20061005987
公开日2006年10月11日 申请日期2006年3月20日 优先权日2005年4月6日
发明者浅野滋博, 石井励 申请人:株式会社东芝
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1