用于共享计算机资源的系统和方法

文档序号:6624968阅读:228来源:国知局
专利名称:用于共享计算机资源的系统和方法
技术领域
本发明一般地涉及计算机资源的共享,并且更具体地涉及一种用于共享计算机资源的记录机制(ticket mechanism)。
背景技术
计算机系统具有很多共享资源,其范围从存储器模块到通信路径。这种共享资源通常是有限的,并且在某些情况下,可能成为性能瓶颈。例如,跨大型多处理器系统的互连路径通常比最优系统性能所要求的互连路径窄。由于成本方面的考虑,信号引脚和芯片的实际情况通常会限制路径和队列的大小。这可能导致各路径段之间的带宽不匹配。如果多个命令、请求或数据源(或者更一般地说,“事务源(transaction sources)”)试图使用同一物理路径,则这种情况会加重。
当事务队列从高带宽段或链路传送到低带宽链路时,通常使事务队列位于上述瓶颈的入口位置,以便管理业务。这种队列的大小是有限的,并且在大业务量周期期间容易溢出。因此,这种队列通常设计用于延缓其某些输入事务。在此将其称为“流量控制”。流量控制可以采用多种形式,包括事务重试协议和忙信号,该忙信号警告发送者在信号改变之前不要扰乱发送。这种流量控制方法对系统性能有副作用。由于失败的事务会占用带宽,所以当需求大大超过链路的带宽时,重试可能严重地影响性能。专用的忙信号有助于避免并经常排除这种多余的尝试,但是由于尝试的次数随源的数目线性增加,所以随着网络大小的增长,其成本迅速变大,以至于不能承受。
因此,利用改善的方法,可以改善事务吞吐量并避免可能的等候,以缓和较高的业务量对共享资源的竞争。

发明内容
本发明描述了改善对计算机系统中的共享资源的管理。在优选实施例中,利用记录机制来提高事务吞吐量,并避免可能的等候。记录机制提供了等待计数器和服务计数器。当由于所请求的事务的目标资源处的空间不够,或者到该目标的路径中的队列处的空间不够,请求的事务失败时,等待计数器递增,并将等待值发送到请求事务源。当在该资源处完成事务时,服务计数器递增,并将该服务计数器的值广播到共享该资源的事务源。当事务源保持等于服务计数值的等待计数值时,该源可以成功地重试上述事务。下面将更全面说明其它实现和实施例。


在所附权利要求中描述了保证本发明特性的新颖特征。然而,当结合附图阅读时,通过参考以下对说明性实施例的详细说明,可以最好地理解本发明自身及其优选使用方式、其它目的和优点,其中图1示出适于实现本发明优选实施例的计算机系统。
图2示出适于实现本发明优选实施例的计算机系统的框图。
图3示出适于实现本发明优选实施例的计算机网络的示图。
图4示出适于实现本发明优选实施例的共享资源和互连网络的示图。
图5示出根据本发明优选实施例的记录计数器的示图。
图6示出根据本发明优选实施例的事务源的待处理事务表。
图7示出用于实现本发明优选实施例的处理步骤的流程图。
具体实施例方式
现在,参考附图,并且特别是参考图1,根据本发明的优选实施例示出可以实现本发明的数据处理系统的图解表示。所示的计算机100包括系统单元102;视频显示终端104;键盘106;存储设备108,可以包括软盘驱动器以及其他类型的固定存储介质和可移动存储介质;以及鼠标110。例如,个人计算机100可以包括辅助输入设备,例如游戏杆、触摸板、触摸屏、轨迹球、麦克风等。利用诸如IBM RS/6000计算机或IntelliStation计算机之类的任何合适的计算机都可以实现计算机100,IBMRS/6000计算机和IntelliStation计算机都是位于纽约阿蒙克市的国际商用机器公司的产品。尽管所示的附图示出了计算机,但是,在诸如网络计算机之类的其他类型的数据处理系统中,也可以实现本发明的其他实施例。计算机100还优选地包括图形用户界面,可以利用驻留在计算机可读介质上、运行于计算机100中的系统软件来实现该图形用户界面。
现在,参考图2,其示出可以实现本发明的数据处理系统的框图。数据处理系统200是诸如图1中的计算机100之类的计算机的一个例子,实现本发明的处理的代码或指令可以位于该计算机中。数据处理系统200采用外围部件互连(PCI)局部总线体系结构。尽管所示的例子采用了PCI总线,但是也可以采用诸如图形加速端口(AGP)和工业标准体系结构(ISA)之类的其他总线体系结构。通过PCI桥接器208,将处理器202和主存储器204连接到PCI局部总线206。PCI桥接器208还可以包括处理器202的集成存储器控制器和缓存。通过直接部件互连或者通过附加板(add-in board),可以实现到PCI局部总线206的附加连接。在所示的例子中,通过直接部件连接,将局域网(LAN)适配器210、小型计算机系统接口SCSI主机总线适配器212以及扩展总线接口214连接到PCI局部总线206。相反,通过插入扩展槽内的附加板,将音频适配器216、图形适配器218以及音频/视频适配器219连接到PCI局部总线206。扩展总线接口214为键盘与鼠标适配器220、调制解调器222以及附加存储器224提供了连接。SCSI主机总线适配器212为硬盘驱动器226、磁带驱动器228以及CD-ROM驱动器230提供了连接。典型的PCI局部总线实现支持三个或四个PCI扩展槽或附加连接器。
操作系统在处理器202上运行,并且用于对图2中的数据处理系统200内的各种部件进行协调和提供控制。该操作系统可以是商用操作系统,例如微软公司出售的Windows2000。诸如Java之类的面向对象的编程系统可以与该操作系统一起运行,并且可以从数据处理系统200上正在执行的Java程序或应用程序访问操作系统。“Java”是SUN微系统公司的商标。操作系统、面向对象的编程系统以及应用程序或程序的指令位于诸如硬盘驱动器206之类的存储设备上,并且可以将这些指令装载到主存储器204内,以便由处理器202执行。
本领域的普通技术人员应当明白,可以根据应用来改变图2中的硬件。除了图2中的硬件之外,或者代替图2中的硬件,还可以使用其他内部硬件或外围设备,例如闪速ROM(或等效非易失性存储器)或光盘驱动器等。此外,本发明的处理还可以应用于多处理器数据处理系统。
例如,如果将数据处理系统200选择性地配置为网络计算机,则它可以不包括SCSI主机总线适配器212、硬盘驱动器226、磁带驱动器228、以及CD-ROM230,如图2中表示任选设备的虚线所示。在这种情况下,计算机,准确地说是客户计算机必须包括某种类型的网络通信接口,例如LAN适配器210、调制解调器222等。作为另一个例子,无论数据处理系统200是否包括某种类型的网络通信接口,数据处理系统200都可以是独立的系统,将其配置为可引导的,不依赖于某种类型的网络通信接口。作为另一个例子,数据处理系统200可以是个人数字助理(PDA),为其配置ROM和/或闪速ROM,以提供非易失性存储器,用于存储操作系统文件和/或用户产生的数据。
图2所示的例子和上述例子无意暗示对体系结构的限制。例如,除了采用PDA的形式外,数据处理系统200还可以是笔记本计算机或手持式计算机。数据处理系统200还可以是电脑亭或者Web设备。
利用计算机执行的指令,处理器202执行本发明的处理,这些计算机执行的指令可以位于诸如主存储器204、存储器224之类的存储器中,或者位于一个或多个外围设备226-230中。
图3示出可以实现本发明的数据处理系统的网络的图解表示。网络数据处理系统300是可以实现本发明的计算机网络。网络数据处理系统300包括网络302,在网络数据处理系统300中,网络302是用于在连接在一起的各种设备和计算机之间提供通信链路的介质。网络302可以包括诸如有线、无线通信链路或光纤电缆之类的连接。
在所示的例子中,将服务器304连同存储单元306一起连接到网络302。此外,将客户机308、310和312也连接到网络302。这些客户机308、310和312可以是例如个人计算机或网络计算机。在所示的例子中,服务器304将诸如引导文件、操作系统映像以及应用程序之类的数据提供给客户机308-312。客户机308、310和312是服务器304的客户机。网络数据处理系统300包括打印机314、316和318,并且还可以包括附加服务器、客户机以及其他未示出的设备。在所示的例子中,网络数据处理系统300是具有网络302的因特网,网络302代表网络和网关的世界性的集合,这些网络和网关采用TCP/IP协议组进行相互通信。因特网的核心是主节点或主计算机之间的高速数据通信线路的主干,其包括许很多路由数据和消息的商用计算机系统、政府计算机系统、教育计算机系统以及其他计算机系统。当然,网络数据处理系统300还可以实现为诸如内网、局域网(LAN)或广域网(WAN)之类的很多不同类型的网络。图3用来作为例子,而不作为对本发明体系结构的限制。
本发明说明了一种记录机制,其以低于专用忙信号成本的成本避免了对共享资源的重试浪费。在下面的说明中,将探听协议(snoop protocol)假定为事务对于需要使用共享资源的所有参与者都可见,并可被其监视。
图4示出适于实现本发明优选实施例的系统中的互连路径的例子。在该例中,示出了示例目标资源402,但是也可以存在多个目标资源。资源402具有相关的队列代理404,其用于通过网络接口406接收和转发从事务源410到目标资源402的事务请求。在该例中,控制器408管理网络接口。在该例中,用实线箭头示出请求和命令,而用虚线箭头示出响应。
在本发明的优选实施例中,沿路径的每个目标或队列代理均维护了两个计数器等待计数器和服务计数器。该目标还产生边带信号,以将计数值广播到各事务源,否则就使这些边带信号对于事务源所进行的探听来说可用。可以用多种方式来实现边带信号。例如,如果延迟和附加资源占用次数是可以接受的,则其路径可以是全计数带宽,或者是串行的。路径还可以是对每个计数器的信号专用的,两个计数器信号也可以共享一条路径。
图5示出与目标资源402相关的计数器的例子。在该例中,目标402包括等待计数器502和服务计数器504。在本发明的优选实施例中,这些计数器用于提醒事务源其请求被拒绝,以及它们何时可以预期一个成功的事务。例如,在一种实现中,只要事务源请求目标资源,例如,如果由于先前的待处理请求,目标资源不能满足该请求,则目标资源通过发送一个记录到该事务源而做出响应,该记录包括由该目标的等待计数器指示的等待计数值。该值指示了何时可以重新尝试该事务。然后,该目标使其等待计数器递增。事务源存储接收到的等待计数值,保持其与失败事务的联系。直到已经通知该源其相关的记录数是列中的下一个,才应当重新尝试该事务。当在目标资源处使用事务时,该目标资源的服务计数器504递增,并将边带服务计数信号506广播到事务源池(并且优选地由该事务源池探听),该事务源池可能已经向该目标资源发出了事务。当持有记录的事务源(即尝试了事务但已经被拒绝并发出等待计数的源)接收服务计数信号时,其将接收到的服务计数与其所有有效等待计数值进行比较。当通知该源其记录数顺序地变为下一个或者可用(例如,根据该实施例,等待计数等于服务计数)时,在确保将接受该事务的情况下,该源重新尝试该事务,包括重发指示符508。
每当目标释放资源并准备好处理另一事务时,该目标使其服务计数器递增,并广播最新的服务计数。目标必须保留该资源,以便重发操作能够避免另一次忙/重试。如下面的图6所示,在源监视网络业务时,它们将探听到的服务计数与其待处理事务队列中的所有有效条目进行比较。如果服务计数值与有效条目的等待计数相匹配,则源将该作业(operation)重新发送到该目标。
紧随重发的事务508,可以使用保留的目标资源,并随后为另一作业释放该目标资源。不能无限期地保留该资源。一旦事务源接收到合适的信号(即广播的服务计数与所持有的等待计数相匹配),最后事务源就必须重发该作业,或者在等待合适的时间周期之后,目标必须释放所持有的资源。
图6示出对事务源所维护的待处理事务表。源维护这些队列,用于跟踪所有未完成的事务。每个条目都包含重试指示符604和记录数602以及用于维护诸如作业类型、目标地址以及有效性之类的事务状态的其他信息606。因此,每个源负责跟踪其失败的作业及其在列中的位置。如果成本是可接受的,则记录位的宽度应该足够大,以便在可同时通过该系统的最大数目的事务中唯一地识别每个事务。降低成本有可能减小尺寸。在优先实施例中,用三位或四位覆盖8至16个竞争的源。
由于预期第一次尝试通常会成功,因此第一次尝试事务时通常是无记录的。图7示出实现本发明的优选实施例的处理步骤。首先,事务源将对无记录的事务的请求发送到目标资源(步骤702)。接着,确定服务是否可用(步骤704)。如果服务可用,则正常地服务于该事务(步骤706)。如果服务不可用,则该事务失败(步骤708)。在这种情况下,利用包括等待计数的记录,目标资源响应该源(步骤710)。然后,该目标使其用于该资源的等待计数器递增(步骤712)。在该源处接收具有等待计数的记录,并将其存储在上面参考图6所述的表中(步骤714)。当该目标服务于事务时,服务计数器递增,并将边带服务计数信号发送到等待源(例如,由等待源探听)(步骤716)。当通知源其记录数增加(例如,在源处所持有的等待计数与广播的服务计数相匹配)时,该源重新尝试该事务(步骤718)。
重要的是注意到尽管是在全功能(fullly functioning)数据处理系统的环境中对本发明进行说明的,但是本领域的普通技术人员应当明白,本发明的处理能够以指令的计算机可读介质的形式以及各种形式分布,并且不管实际上用于执行该分布的承载信号的介质的具体类型如何,本发明同样适用。计算机可读介质的例子包括诸如软盘、硬盘驱动器、RAM、CD-ROM、DVD-ROM之类的可记录型介质以及诸如数字和模拟通信链路、有线或无线通信链路之类的传输型介质,其采用诸如射频和光波传输之类的传输形式。计算机可读介质可以采用编码格式的形式,对该格式进行解码,以便在具体的数据处理系统中实际使用。
本发明的描述是以示意和说明为目的而提出的,并且本发明的描述无意于穷举或将本发明限制于所公开的形式中。本领域的普通技术人员容易想到很多修改和变更。选择并描述上述实施例,是为了最好地说明本发明的原理、实际应用,并且使用适合于预期的具体用途的各种变型的实施例使得本领域的其他普通技术人员理解本发明。
权利要求
1.一种具有共享资源的计算机系统,包括至少一个事务源,所述事务源具有待处理事务表;至少一个目标资源,所述目标资源具有相关的等待计数器和相关的服务计数器;互连网所述络,通过所述互连网络,在所述事务源与所述目标资源之间传送数据。
2.根据权利要求1所述的系统,其中当事务源尝试访问目标资源失败时,将等待计数发送到所述事务源。
3.根据权利要求2所述的系统,其中等待计数存储在待处理事务表的条目中。
4.根据权利要求1所述的系统,其中当事务源尝试访问目标资源失败时,等待计数器递增。
5.根据权利要求1所述的系统,其中当服务计数器递增时,事务源接收到指示所述服务计数器当前值的信号。
6.根据权利要求5所述的系统,其中如果服务计数器的当前值与事务源存储的等待计数匹配,则所述事务源重试与所述等待计数相关的事务。
7.根据权利要求1所述的系统,其中当事务源利用目标资源尝试事务;操作失败;将等待计数发送到所述事务源;将服务计数器的值广播到所述事务源;以及当所述等待计数与所述服务计数器的值匹配时,所述事务源重新尝试所述事务。
8.一种在计算机系统中共享资源的方法,包括步骤从事务源发送用于访问目标资源的请求;如果资源被占用,则将等待计数值发送到所述事务源;广播服务计数信号值;以及如果所述等待计数值与所述服务计数信号值一致,则重新发送所述用于访问目标资源的请求。
9.根据权利要求8所述的方法,其中将等待计数值存储在待处理事务表中。
10.根据权利要求8所述的方法,其中当等待计数值与服务计数信号值相匹配时,所述等待计数值与所述服务计数信号值一致。
11.根据权利要求8所述的方法,其中目标资源具有指示等待计数值的相关的等待计数器,并且其中每当拒绝事务访问所述目标资源时,所述等待计数器递增。
12.根据权利要求8所述的方法,其中目标资源具有指示服务计数信号值的相关的服务计数器,并且其中每当服务于事务时,所述服务计数器递增。
13.根据权利要求8所述的方法,其中当等待计数值等于服务计数值时,所述等待计数值与所述服务计数信号值一致。
14.一种计算机可读介质中的计算机程序产品,包括步骤第一指令,用于从事务源发送访问目标资源的请求;第二指令,用于在资源被占用时,将等待计数值发送到所述事务源;第三指令,用于广播服务计数信号值;以及第四指令,用于在所述等待计数值与所述服务计数信号值一致时,重新发送访问所述目标资源的请求。
15.根据权利要求14所述的计算机程序产品,其中将等待计数值存储在待处理事务表中。
16.根据权利要求14所述的计算机程序产品,其中当等待计数值与服务计数信号值相匹配时,所述等待计数值与所述服务计数信号值一致。
17.根据权利要求14所述的计算机程序产品,其中目标资源具有指示等待计数值的相关的等待计数器,并且其中每当拒绝事务访问所述目标资源时,所述等待计数器递增。
18.根据权利要求14所述的计算机程序产品,其中目标资源具有指示服务计数信号值的相关的服务计数器,并且其中每当服务于事务时,所述服务计数器递增。
19.根据权利要求14所述的计算机程序产品,其中当等待计数值等于服务计数值时,所述等待计数值与所述服务计数信号值一致。
全文摘要
改善对计算机系统中的共享资源的管理。在优选实施例中,利用记录机制提高事务吞吐量,并避免可能的等候。记录机制提供了等待计数器和服务计数器。当请求的事务失败时,等待计数器递增,并将等待值发送到请求事务源。当在该资源完成事务时,服务计数器递增,并将其值广播到共享该资源的事务源。当源保持等于服务计数值的等待计数值时,该源可以成功地重试该事务。
文档编号G06F9/46GK1719414SQ20051007894
公开日2006年1月11日 申请日期2005年6月15日 优先权日2004年7月8日
发明者彼得·史蒂文·莱恩克 申请人:国际商业机器公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1