用于分布式计算系统的方法和装置转让专利

申请号 : CN200610126586.1

文献号 : CN1976350B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : W·T·博伊德D·M·弗赖穆特W·G·霍兰S·W·亨特R·J·雷西奥S·M·瑟伯M·维加

申请人 : 国际商业机器公司

摘要 :

在具有多个根节点的分布式计算机系统中,提供了质询协议以用于确定其中实际驻留PCI配置管理器(PCM)的根节点。此节点被称为主节点。在一个有用的实施例中,本发明涉及一种用于以上类型的分布式计算机系统的方法,所述系统还具备PCI交换机以及可用于由不同节点共享的适配器。所述方法包括以下步骤:选择所述根节点中的第一根节点作为主根节点,以及运行所述第一根节点以查询所述PCI交换机中的一个特定PCI交换机的配置空间。所述方法还包括检测指示第二根节点被看作所述特定交换机的主根节点的信息。实现质询协议以响应此检测的信息,以试图确认所述第一根节点是主根节点。如果确认所述第一根节点是主根节点,则继续配置空间查询过程,否则中止所述过程。

权利要求 :

1.一种在具备多个根节点并且还具备一个或多个PCI交换机以及可用于由不同节点共享的一个或多个适配器的分布式计算系统中的方法,其中每个根节点包括计算机主机CPU集和相连接的根复合体,所述方法包括以下步骤:选择所述根节点中的第一根节点作为所述系统的主根节点;

运行所述第一根节点中的PCI配置管理器组件以实现配置空间查询过程,在该配置空间查询过程中所述第一根节点查询所述PCI交换机中的一个特定PCI交换机的配置空间;

检测指示第二根节点而不是所述第一根节点被看作所述特定PCI交换机的主根节点的信息;

实现质询过程以响应所述检测的信息,以试图确认所述第一根节点是所述系统的主根节点;以及如果所述质询过程确认所述第一根节点是主根节点,则继续所述配置空间查询过程。

2.根据权利要求1的方法,其中:

所述质询过程包括判定所述第一根节点是否符合预先选择的准则。

3.根据权利要求2的方法,其中:

根据对选定值字段中的值的比较得出所述准则,其中所述选定值字段是从至少包括每个所述根节点的关键产品数据标识、用户标识以及用户优先级的一组值字段中选择的。

4.根据权利要求1的方法,其中:

所述检测的信息包括指示所述第二根节点被看作所述特定PCI交换机的主根节点的数据表表项。

5.根据权利要求1的方法,其中:

当正在执行所述质询过程时,所述配置空间查询过程被暂停。

6.根据权利要求5的方法,其中:

如果所述质询过程确认所述第一根节点为所述主根节点,则所述配置空间查询过程被恢复,否则所述配置空间查询过程被中止。

7.根据权利要求1的方法,其中:

实现所述质询过程需要在指定时间段内的响应,并且如果在所述指定的时间段内没有出现所述需要的响应,则所述配置空间查询过程被中止。

8.根据权利要求1的方法,其中:

选择性地由系统用户或由程序自动将所述第一根节点初始指定为所述系统的主根节点。

9.根据权利要求1的方法,其中:

所述第一根节点在被确认是所述主根节点时被用于配置通过每个所述PCI交换机的路由,每个所述配置的路由仅与所述根节点中的一个根节点对应,并且每个路由提供了在其相应根节点与所述适配器中的一个适配器之间的数据业务的路径,所述第一根节点在其余根节点分别处于静止状态时配置所述路由。

10.根据权利要求9的方法,其中:

所述第一根节点将已配置的路由信息提供给与所述配置的路由对应的一个根节点,所述已配置的路由信息包括表示所述分布式计算系统的物理组件的树的子集,其中所述子集只指示了可由与所述配置的路由对应的一个根节点访问的PCI交换机、适配器和网桥。

12.一种用于分布式计算系统的装置,所述装置包括:多个根节点,所述多个根节点包括至少第一和第二根节点,其中每个根节点包括计算机主机CPU集和相连接的根复合体;

至少一个PCI适配器;

一个或多个PCI交换机,所述PCI交换机可用于连接不同的根节点以共享同一适配器;

PCI配置管理器组件,所述PCI配置管理器组件驻留在所述第一根节点中并可用于实现配置空间查询过程,在该配置空间查询过程中所述第一根节点查询所述PCI交换机中的一个特定PCI交换机的配置空间;

处理器组件,所述处理器组件用于检测指示所述第二根节点而不是所述第一根节点被看作所述特定PCI交换机的主根节点的信息,以及用于实现质询过程以响应所述检测的信息,以试图确认所述第一根节点是所述系统的主根节点;以及所述PCI配置管理器组件还可用于在所述质询过程确认所述第一根节点是主根节点的情况下继续所述配置空间查询过程。

13.根据权利要求12的装置,其中:

所述质询过程包括判定所述第一根节点是否符合预先选择的准则;以及根据对选定值字段中的值的比较得出所述准则,其中所述选定值字段是从至少包括每个所述根节点的关键产品数据标识、用户标识以及用户优先级的一组值字段中选择的。

14.根据权利要求12的装置,其中:

所述检测的信息包括指示所述第二根节点被看作所述特定PCI交换机的主根节点的数据表表项。

15.根据权利要求12的装置,其中:

当正在执行所述质询过程时,所述PCI配置管理器组件暂停所述配置空间查询过程。

16.根据权利要求15的装置,其中:

如果所述质询过程确认所述第一根节点为所述主根节点,则所述PCI配置管理器组件恢复所述配置空间查询过程,否则中止所述配置空间查询过程。

说明书 :

用于分布式计算系统的方法和装置

技术领域

[0001] 在此披露和要求保护的发明一般地涉及通过输入/输出(I/O)交换结构总线在多个根节点与PCI适配器之间进行数据传输的方法和相关装置。具体地说,本发明涉及一种以上类型的方法,其中可以通过所述I/O结构来路由不同的根节点以共享同一适配器,并且用于配置所有根节点的路由的单个控制驻留在所述节点中的一个节点内。更具体地说,本发明涉及一种以上类型的方法,其中提供了质询过程以解决关于哪个节点用作控制节点的任何不确定性。

背景技术

[0002] 如本领域的技术人员所公知的,在计算机系统中广泛使用PCI Express(PCI-E)来借助I/O交换结构总线等将主机单元互连到适配器或其他组件。但是,PCI-E当前不允许在存在多个主机(具有多个共享的PCI总线)的拓扑中共享PCI适配器。结果,尽管在使用刀片集群或其他集群的服务器时此类共享能力非常有价值,但是用于PCI-E和辅助网络(例如,FC、IB、Enet)的适配器目前一般集成在单个刀片和服务器系统中。因此,此类适配器不能在集群刀片之间,或者甚至不能在集群系统中的多个根之间共享。
[0003] 在包含多个刀片或刀片集群的环境中,将PCI适配器仅专用于与单个刀片一起使用是非常昂贵的。例如,一个10吉比特以太网(10GigE)适配器目前价格大约为$6,000。不能在刀片之间共享这些昂贵的适配器实际上造成了较慢地采用某些新的网络技术(如
10GigE)。此外,还存在由刀片中可用于容纳PCI适配器的有限空间所施加的限制。如果PC网络能够支持将多个主机连接到单个PCI适配器,以使虚拟PCI I/O适配器可以在多个主机间被共享,则可以解决有限空间的问题。
[0004] 在包括多主机环境等的分布式计算机系统中,在主机或其他根节点之间共享的I/O结构的任何部分的配置不能由多个主机来控制。这是因为一个主机可以做出影响其他主机的更改。因此,要实现以上在不同主机间共享PCI适配器的目标,提供某种类型的中央管理机制是必要的。需要此管理机制来配置I/O结构的PCI交换机以及根复合体、PCI适配器和其他由PCI交换机互连的设备所使用的路由。
[0005] 应当理解,术语“根节点”在此一般用来描述可以包括计算机主机CPU集等和连接到其的根复合体的实体。主机集可以具有一个或多个分离的CPU。但是,术语“根节点”并不一定限于主机CPU集。术语“根复合体”在此一般用来描述根节点中用于将根节点及其主机CPU集连接到I/O结构的结构。
[0006] 在一种非常有用的方法中,特定的指定根节点包括是整个多主机系统的PCI配置管理器(PCM)的组件。PCM配置所有PCI交换机、根复合体和适配器的通过I/O结构的所有路由。但是,在PCI交换结构中,允许多个结构管理器。此外,可以将任何结构管理器插入任何根交换机端口,即,直接连接到根复合体的PCI交换机的端口。结果,当以上类型的PCM参与配置通过PCI结构的路由时,它有时会遇到似乎由结构管理器而不是PCM控制的、驻留在根节点而不是指定节点处的交换机。因此,有必要提供一种质询过程,以便确定或确认哪个根节点实际包含控制结构配置管理器。

发明内容

[0007] 本发明总体上提供了一种在以上类型的多主机系统中确定PCI配置主机或管理器实际驻留于其中的根节点的质询过程或协议。此节点被称为主节点。只要由包含PCM的根节点确定的PCM的标识显得不确定,就激活所述质询过程。所述质询过程解决这种不确定性,并使得PCM能够继续配置系统中的路由。在一个有用的实施例中,本发明涉及一种用于具备多个根节点并且还具备一个或多个PCI交换机以及具备可用于由不同节点共享的适配器和其他组件的分布式计算机系统的方法。所述方法包括以下步骤:选择所述根节点中的第一根节点作为所述系统的主根节点,以及运行所述第一根节点以实现过程,由此所述第一根节点查询所述PCI交换机中的一个特定PCI交换机的配置空间。所述方法还包括检测指示第二根节点(而不是所述第一根节点)被看作特定交换机的主根节点的信息。实现质询过程以响应此检测的信息,以试图确认所述第一根节点实际上是所述系统的主根节点。如果所述第一根节点被确认是所述主根节点,则继续配置空间查询过程。否则,所述查询过程被中止,以便可以采取纠正操作。有用地,当PCM正在执行PCI配置时,所有所述根节点都处于静止状态。在已配置所述交换结构后,所述PCM将配置信息写入根交换机,然后使得每个根端口能够访问其配置。
[0008] 在本发明的一个方面,提供了一种在具备多个根节点并且还具备一个或多个PCI交换机以及可用于由不同节点共享的一个或多个适配器的分布式计算系统中的方法,其中每个根节点包括计算机主机CPU集和相连接的根复合体,所述方法包括以下步骤:选择所述根节点中的第一根节点作为所述系统的主根节点;运行所述第一根节点中的PCI配置管理器组件以实现配置空间查询过程,在该配置空间查询过程中所述第一根节点查询所述PCI交换机中的一个特定PCI交换机的配置空间;检测指示第二根节点而不是所述第一根节点被看作所述特定PCI交换机的主根节点的信息;实现质询过程以响应所述检测的信息,以试图确认所述第一根节点是所述系统的主根节点;以及如果所述质询过程确认所述第一根节点是主根节点,则继续所述配置空间查询过程。
[0009] 在本发明的另一个方面,提供了一种用于分布式计算系统的装置,所述装置包括:多个根节点,所述多个根节点包括至少第一和第二根节点,其中每个根节点包括计算机主机CPU集和相连接的根复合体;至少一个PCI适配器;一个或多个PCI交换机,所述PCI交换机可用于连接不同的根节点以共享同一适配器;PCI配置管理器组件,所述PCI配置管理器组件驻留在所述第一根节点中并可用于实现配置空间查询过程,在该配置空间查询过程中所述第一根节点查询所述PCI交换机中的一个特定PCI交换机的配置空间;处理器组件,所述处理器组件用于检测指示所述第二根节点而不是所述第一根节点被看作所述特定PCI交换机的主根节点的信息,以及用于实现质询过程以响应所述检测的信息,以试图确认所述第一根节点是所述系统的主根节点;以及所述PCI配置管理器组件还可用于在所述质询过程确认所述第一根节点是主根节点的情况下继续所述配置空间查询过程。

附图说明

[0010] 在所附权利要求中说明了被认为是本发明特性的新颖特征。但是,当结合附图阅读时,通过参考以下对示例性实施例的详细说明,可以最佳地理解发明本身及其优选使用方式、进一步的目的和优点,这些附图是:
[0011] 图1是示出了其中可以实现本发明的实施例的通用分布式计算机系统的方块图;
[0012] 图2是示出了图1的系统中的示例性逻辑分区平台的方块图;
[0013] 图3是示出根据本发明的实施例的具备可共同操作的多个主机和相应PCI族组件的分布式计算机系统的方块图;
[0014] 图4是示出适合与本发明的实施例一起使用的PCI配置空间的示意图;
[0015] 图5是示出图3的系统的每个主机集的信息空间的示意图;
[0016] 图6是示出由PCM构建以提供已配置和设置的路由记录的结构表的组件的示意图;
[0017] 图7是示出由PCM在构建图6的表中执行的步骤(包括本发明的实施例的各步骤)的流程图;以及
[0018] 图8是示出根据图7的实施例的质询协议的流程图。

具体实施方式

[0019] 图1示出了其中可以实现本发明的优选实施例的分布式计算机系统100。所述分布式计算机系统100采取多个根复合体(RC)110,120,130,140和142的形式,所述多个根复合体分别通过I/O链路150,152,154,156和158连接到I/O结构144,并连接到根节点(RN)160-166的存储器控制器108,118,128和138。所述I/O结构通过链路180-194连接到I/O适配器(IOA)168-178。IOA可以是单个功能,例如IOA 168-170和176,或者是多个功能,例如IOA 172-174和178。此外,相应的IOA可以通过单个链路(例如链路180-186)或出于冗余通过多个链路(例如链路188-194)连接到I/O结构144。
[0020] RC 110,120和130分别是RN 160,162和164的集成组件。RN中可以有多个RC,例如都是RN 166的集成组件的RC 140和142。除了RC之外,每个RN包括一个或多个中央处理单元(CPU)102-104,112-114,122-124和132-134,存储器106,116,126和128,以及存储器控制器108,118,128和138。存储器控制器分别互连CPU,存储器和它们相应RN的I/O RC,并且执行诸如处理相应存储器的一致性业务之类的功能。
[0021] RN可以在其存储器控制器处被连接在一起,例如通过在RN 160和162的存储器控制器108与118之间延伸的链路146。这形成了一个可用作单个对称多处理(SMP)系统的一致性域。可替代地,如在RN 164和166中,节点可以彼此独立并具有单独的一致性域。
[0022] 图1还示出了结合到某一RN(如RN 160)中作为其集成组件的PCI配置管理器(PCM)148。PCM配置I/O结构的共享资源并将资源分配到RN。
[0023] 应当理解,节点160-166中的任一节点都可以支持PCM。但是,只能有一个PCM来配置整个系统100中的所有路由并分配所有资源。明显地,如果系统100中似乎存在多个PCM且每个PCM驻留在不同的根节点中,则会出现显著的不确定性。因此,提供了本发明的实施例,首先判定与PCM有关的不确定条件存在,然后解决此不确定性。
[0024] 在一个非常有用的实施例中,质询协议可识别包括在系统的交换结构中的PCI交换机似乎处于与当前控制系统的PCM不同的PCM的控制之下。在识别到此条件时,质询协议会确认当前PCM具有对交换机的控制,或者会中止交换机的配置。以下将结合图7和8详细描述此质询协议或过程。
[0025] 可以使用各种可从市场上购买的计算机系统来实现分布式计算系统100。例如,可以使用可从国际商业机器公司获得的IBM eServer iSeriesModel 840系统来实现分布式计算系统100。此类系统可以支持使用OS/400操作系统(其也可从国际商业机器公司获得)来进行逻辑分区。
[0026] 本领域的技术人员将理解,图1中示出的硬件可以有所不同。例如,除了所示的硬件以外,或替代所示的硬件,还可以使用诸如光盘驱动器之类的其他外围设备。所描述的实例并非旨在暗示有关本发明的体系结构限制。
[0027] 参考图2,图2示出了其中可以实现本发明的示例性逻辑分区平台200的方块图。逻辑分区平台200中的硬件可以被实现为例如图1中的数据处理系统100。逻辑分区平台
200包括分区的硬件230,操作系统202,204,206,208和系统管理程序210。操作系统202,
204,206和208可以是单个操作系统的多个副本,或者可以是同时运行在平台200上的多个异构操作系统。可以使用OS/400(其被设计成与系统管理程序联系)来实现这些操作系统。操作系统202,204,206和208分别位于分区212,214,216和218中。此外,这些分区分别包括固件加载器222,224,226和228。当分区212,214,216和218被实例化时,系统管理程序的分区管理器将开放固件的副本加载到每个分区中。然后将与分区关联或指派到分区的处理器分派给分区的存储器以执行分区固件。
[0028] 分区的硬件230包括多个处理器232-238,多个系统存储器单元240-246,多个输入/输出(I/O)适配器248-262,以及存储单元270。分区的硬件230还包括可用于提供不同服务(例如处理分区中的错误)的服务处理器290。每个处理器232-238,存储器单元240-246,NVRAM 298,以及I/O适配器248-262可以被指派给逻辑分区平台200内的多个分区中的一个分区,每个分区与操作系统202,204,206和208中的一个操作系统相对应。
[0029] 分区管理固件(系统管理程序)210为分区212,214,216和218执行一系列功能和服务来创建和实施对逻辑分区平台200的分区。系统管理程序210是与基础硬件完全相同的固件实现的虚拟机。系统管理程序软件可从国际商业机器公司获得。固件是存储在无需电源即可保持其内容的存储器芯片(例如,只读存储器(ROM),可编程只读存储器(PROM),电可擦除可编程只读存储器(EEPROM),以及非易失性随机存取存储器(NVRAM))中的“软件”。因此,系统管理程序210允许通过虚拟化逻辑分区平台200的所有硬件资源来同时执行单独的操作系统映像202,204,206和208。
[0030] 可以通过硬件管理控制台(如硬件管理控制台280)来控制不同分区的操作。硬件管理控制台280是单独的分布式计算系统,系统管理员可以从其执行包括将资源重新分配给不同分区的各种功能。
[0031] 在图2所示的此类环境中,一个分区中的资源或程序不允许影响其他分区中的操作。此外,有用地,需要细分资源分配。例如,将特定PHB下的所有IOA分配到同一分区通常是不可接受的,因为这将限制系统的可配置性,包括在分区间动态移动资源的能力。
[0032] 因此,在将IOA连接到I/O总线的网桥中需要某些功能,以便能够将诸如单个IOA或IOA的各部分之类的资源分配给单独的分区;并且同时防止已分配的资源例如通过获得对其他分区的资源的访问来影响其他分区。
[0033] 参考图3,其中示出了包括图1中示出的I/O交换结构144的详细表示的分布式计算机系统300。更具体地说,为了进一步说明通过使用多个交换机来支持多个根节点的PCI族结构的概念,结构144在图3中示为包括多个PCIe交换机(或PCI族网桥)302,304和306。图3还示出了分别具备端口308-314,316-324和326-330的交换机302,304和306。
出于以下说明的原因,交换机302和304被称为多根感知(aware)交换机。应当理解,当在此单独使用时,术语“交换机”可以同时包括交换机和网桥。在此使用的术语“网桥”通常涉及用于将使用相同协议的网络的两个段相连的设备。
[0034] 再参考图3,其中示出了主机CPU集332,334和336,每个主机CPU集都包含单个或多个系统映像(SI)。因此,主机332包含系统映像SI 1和SI 2,主机334包含系统映像SI 3,以及主机336包含系统映像SI 4和SI 5。应当理解,如以上结合图2描述的,每个系统映像与分区等效或与分区对应。每个主机CPU集都具有如上所述的关联的根复合体,通过所述根复合体,相应主机的系统映像与I/O结构144联系或访问I/O结构144。更具体地说,主机集332-336分别与RC 338-342互连。根复合体338具有端口344和346,根复合体340和342分别只具有单个端口,即端口348和350。每个主机CPU集与其相应的根复合体一起包括根节点(如图1中所示的RN 160-166)的示例或实例。此外,主机CPU集332具备与图1的PCM 148相似或相同的PCM 370。
[0035] 图3还示出了连接到端口316-320之一的每个RC 338-342,所述端口分别包括多根感知交换机304的端口。每个多根感知交换机304和302提供了配置PCI族结构(如具有多个路由或数据路径的I/O结构144)的能力,以便适应多个根节点。
[0036] 多根感知交换机(如交换机302和304)的相应端口可用作上游端口,下游端口,或同时用作上游和下游端口。通常,上游端口离RC更近。下游端口离RC更远。上游/下游端口可以具有上游和下游端口两者的特性。在图3中,端口316,318,320,326和308是上游端口。端口324,312,314,328和330是下游端口,并且端口322和310是上游/下游端口。
[0037] 配置为下游端口的端口将被附加或连接到适配器或其他交换机的上游端口。在图3中,多根感知交换机302使用下游端口312来连接到具有两个虚拟I/O适配器或资源354和356的I/O适配器352。类似地,多根感知交换机302使用下游端口314来连接到具有三个虚拟I/O适配器或资源360、362或364的I/O适配器358。多根感知交换机304使用下游端口324来连接到交换机306的端口326。多根感知交换机304分别使用下游端口328和330来连接到I/O适配器366(其具有两个虚拟I/O适配器或资源353和351)以及连接到I/O适配器368。
[0038] 每个配置为上游端口的端口用于连接到根复合体338-342中的一个根复合体。因此,图3示出了多根感知交换机302使用上游端口308来连接到RC 338的端口344。类似地,多根感知交换机304使用上游端口316,318和320来分别连接到根复合体338的端口346,RC 340的单个端口348,以及RC 342的单个端口350。
[0039] 配置为上游/下游端口的端口用于连接到其他交换机的上游/下游端口。因此,图3示出了多根感知交换机302使用上游/下游端口310来连接到多根感知交换机304的上游/下游端口322。
[0040] I/O适配器352被示为虚拟化I/O适配器,其功能0(F0)被分配给系统映像SI 1并可由系统映像SI 1访问,并且其功能1(F1)被分配给系统映像SI 2并可由系统映像SI2访问。类似地,I/O适配器358被示为虚拟化I/O适配器,其功能0(F0)被分配给系统映像SI 3并可由系统映像SI 3访问,其功能1(F1)被分配给系统映像SI 4并可由系统映像SI 4访问,并且其功能3(F3)被分配给系统映像SI 5。I/O适配器366被示为虚拟化I/O适配器,其功能F0被分配给系统映像SI 2并可由系统映像SI 2访问,并且其功能F1被分配给系统映像SI 4并可由系统映像SI 4访问。I/O适配器368被示为单功能I/O适配器,所述功能被分配给系统映像SI 5并可由系统映像SI 5访问。
[0041] 参考图4,其中示出了根据本发明的实施例的用于与分布式计算机系统300等一起使用的PCI配置空间。如所公知的,在诸如数据处理系统300之类的系统中的每个交换机、网桥和适配器都由商业/设备/功能(BDF)编号来标识。所述配置空间具备用于每个BDF编号的PCI配置标头400,并且还具备扩展功能区域402。图4中在402a处示出了可包括在扩展功能区域402中的相应信息字段。这些字段包括例如功能ID、功能版本号和功能数据。此外,可以将新的功能添加到扩展功能402。PCI-Express通常使用PCI配置标头400中的功能指针404来指向新的功能。PCI-Express在PCI配置标头400中的固定地址处启动其扩展功能402。
[0042] 根据本发明,已认识到扩展功能区域402可用于判定PCI组件是否为多根感知PCI组件。更具体地说,PCI-Express功能402具备多根感知位403。如果扩展功能区域402设置了用于PCI组件的多根感知位403,则PCI组件将支持在此说明的多根PCI配置。此外,图4示出了扩展功能区域402具备PCI配置管理器(PCM)标识(ID)字段405。如果PCI组件支持多根PCI配置机制,则其也将支持PCM ID字段405。
[0043] 应当理解,PCM ID是在整个分布式计算机系统(如系统100或300)中唯一标识PCM的值。更具体地说,PCM ID清楚地指示了PCM组件位于其中的根节点或CPU集。
[0044] 参考图5,其中示出了信息空间502,其中之一与每个根节点或主机CPU集相对应。每个信息空间502都包括多个信息字段(如字段504-508),所述字段分别提供了用于其相应根节点或主机CPU集的关键产品数据(VPD)ID、用户ID以及用户优先级。应当理解,每个信息空间502中还可以包括其他未示出的信息字段。用户ID和用户优先级可由系统用户、管理员或管理代理分配给相应的根节点。
[0045] 如本领域的技术人员所公知的,当制造主机CPU集时会将唯一的VPDID分配给该主机CPU集。因此,系统300的各个主机CPU集将具有彼此不同的VPD ID值。接着,为了提供唯一的PCM ID值,可以初始地将具有最高VPD ID值的主机CPU集选择为包含所述PCM,并且将PCM ID设置成该最高的VPD ID值。可替代地,具有最高用户ID、最高用户优先级以及信息空间502中未示出的参数的最高值的主机CPU集可以初始地被选择为包含PCM组件,并且将PCM ID设置成该最高值。初始地指定为包含PCM并且由此成为系统的主根节点的根节点或主机CPU单元可以由系统用户来选择或者可替代地由程序来自动选择。
[0046] 再参考图5,其中示出了具有活动/非活动(A/I)字段510的信息空间502。PCM位于该处的根节点在其字段510中示出了活动状态,并且系统的其余根节点中的每个根节点示出非活动状态。作为一个实例,系统300的主机CPU集332将在字段510中具有活动状态,因为其包含PCM 370,而主机集334和336将都具有非活动状态。
[0047] 在已配置相应路由后,PCM 370的一个重要功能是确定分布式处理系统300中的每个交换机的状态。这通过操作PCM以查询图4中描述的与系统300的每个组件有关的PCI配置空间来有效地完成。执行此操作以提供系统配置信息,同时每个其他主机集保持非活动或静止。所述配置信息指示了系统相应端口的彼此的互连,并因此可用于显示通过交换结构144的PCI交换机的数据路径或路由。
[0048] 参考图6,其中示出了结构表602,其由PCM在获取配置信息时构建。如以下结合图7描述的,通过查询分别连接到一系列活动端口(AP)的PCI-E配置空间的各部分来有效地获得所述配置信息。
[0049] 再参考图6,其中示出了包括示出分布式系统300中的特定交换机的状态的信息空间604的结构表602。信息空间604包括字段606(包含当前PCM的标识)以及字段608(指示交换机具有的端口总数)。对于每个端口,字段610指示了该端口是活动的还是非活动的,并且字段612指示了与该端口关联的树是否已被初始化。字段614示出了端口是连接到根复合体(RC)、网桥或交换机(S)还是端点(EP)。
[0050] 图6还示出了包括分别与其他交换机或PCI组件有关的附加信息空间616和618的结构表602。虽然没有示出,但是结构表602整体包括与系统300的每个组件的空间604类似的信息空间。结构表602可以被实现为一个包含结构中所有交换机和PCI组件的信息空间的表,或者实现为表的链接列表,其中每个表包含单个PCI交换机或PCI组件的信息空间。
[0051] 在诸如图1和3的那些系统之类的系统中,允许多个结构管理器,并且可以将其插入多根感知交换机(如交换机302和304)的任何部分中。结果,并且如上所述,在当前PCM从特定交换机的字段606获得PCM标识信息时,与所述交换机关联的PCM ID可以不同于当前PCM的标识。为了构建结构表,本发明提供了质询协议来处理此类事件。
[0052] 参考图7,其中示出了由PCM有效执行的过程以便构建结构表602。一般地,PCM连续地查询每个交换机及其他PCI组件的PCI配置空间。执行此操作是为了确定组件具有的端口数和相应端口是活动端口(AP)还是非活动端口。然后,PCM将此信息与PCI组件的VPD ID一起记录在结构表中。
[0053] 功能块702和决策块704指示图7的过程开始以查询配置空间以发现连接到端口AP的组件是否为交换机。功能块706显示如果组件为交换机,则在PCM结构表中设置了字段“连接到端口(AP)的组件是交换机”。然后,根据决策块707,有必要判定被查询的交换机是否已显示PCM ID(当前活动的PCM或不同PCM的标识)。更具体地说,决策块707要求判定交换机的字段606是否显示等于0的PCM ID。
[0054] 图7还示出了如果决策块707的判定是肯定的,则根据功能块708在交换机的PCM配置表中设置了参与构建结构表的当前PCM的ID。此表是结构表602中属于所述交换机的信息空间。功能块710示出了通过为配置中端口AP的交换机之下的交换机重新输入此算法来发现所述交换机之下的结构。功能块712示出了端口AP然后被设置成下一端口(端口AP-1),并且重复由功能块702指示的步骤。
[0055] 再次参考图7的决策块707,可以看到如果块707的判定是否定的,则被查询的交换机必须包含PCM ID的非零值。因此,如决策块730所示,有必要判定此PCM ID值是否等于当前PCM ID,即,控制所述系统的PCM。如果此判定为肯定的,则功能块732指示PCM禁用了到交换机的端口连接,并在结构表中记录发现循环。然后执行将在以下详细描述的功能块720处说明的任务。
[0056] 再参考图7的决策块730,其查询的否定结果将指示交换机具有与当前PCM ID不同的PCM ID。在此情况下,有必要调用PCM质询协议,如功能块734所示。以下结合图8描述了此协议,并且根据决策块736,此协议将由或将不会由当前PCM ID赢得。如果质询成功,则图7的过程再次前进到功能块720。如果质询失败,则中止此过程,如功能块738所示。
[0057] 再参考图7的决策块704,如果被查询的组件不是交换机,则有必要判定该组件是否为根复合体,如决策块714所示。如果此查询是肯定的,则在PCM结构表中设置了消息“连接到端口AP的组件是RC”,如功能块716所示。否则,在PCM结构表中设置了消息“连接到端口AP的组件是端点”,如功能块718所示。在任一情况下,端口AP都随即被设置成AP-1,如功能块720所示。然后根据决策块722,有必要判定新端口AP值是否大于零。如果是,则为新的端口AP重复功能块702的步骤。如果否,则结束图7的过程。
[0058] 当完成结构表602时,PCM将与主机CPU集中的给定主机集有关的配置路由信息写入该给定主机集的根复合体。这使得给定主机集能够访问PCM分配给其的每个PCI适配器(如接收的路由信息所指示的)。但是,所述给定主机集没有接收任何其他主机CPU集的配置路由信息。因此,所述给定主机仅被允许访问PCM分配给其的PCI适配器。
[0059] 有用地,写入给定主机的根复合体的配置路由信息包括表示分布式计算系统300的物理组件的树的子集。所述子集只指示了可由给定主机CPU集访问的PCI交换机、适配器和网桥。
[0060] 作为进一步的功能,只有包含PCM的主机CPU集才能够发出写操作,或者执行写操作。其余主机CPU集分别被修改,以完全防止它们发出写操作,或者要求它们使用PCM主机集作为代理来执行写操作。
[0061] 参考图8,其中示出了描述本发明的实施例的质询协议的流程图。功能块802指示了在发现PCI交换机显示不是当前PCM ID的PCM ID时输入所述协议,如以上结合图7的功能块734所描述的。在输入协议时,将质询交换机配置的消息发送到在交换机处发现的PCM所标识的根节点(以下称为质询PCM)。如功能块804所示,所述质询消息被导向已标识的根节点的BDF号。在发送消息后,功能块806指示定时器循环(TL)被设置为与时间段关联的整数N。N可以例如为5并且时间段可以是5毫秒。功能块806示出了还选择了相应的周期时间X。如果将周期时间选择为1毫秒,将发生5次循环或重复,直到与N关联的时间段结束。如以下描述的,分别选择与功能块806和808有关的值以建立最大响应时间段。
[0062] 再参考图8,决策块810和812指示所述质询PCM可以通过提供其质询PCM ID来响应发送到已标识根节点的质询消息。如果当前PCM接收到此类响应,则将质询PCM ID与当前PCM ID相比较,如决策块812所示。如果发现当前PCM ID大于质询PCM ID,则提供当前PCM确实为正确的PCM的确认。相应地,将质询记录为成功,如功能块814所示,并且协议在818退出。因此,图7中所示的过程将进行到功能块720。
[0063] 在发现质询PCM ID等于或大于当前PCM ID的情况下,将质询记录为失败,如功能块816所指示的。根据功能块738,将退出协议并中止图7的过程。
[0064] 再参考图8的决策块810,如果质询PCM没有在周期时间内响应质询消息,则将定时器循环TL递减1,如功能块820所示。对于为5的TL,TL-1将为4。如果TL不是0,则根据决策块822,协议将返回功能块808。然后协议将等待另一个周期时间段X以便质询PCM响应所述消息。在多次此类重复且没有响应后,TL将达到0。当出现此情况时,将创建错误消息并中止与交换机有关的配置,如功能块824所示。
[0065] 适合于存储和/或执行程序代码的数据处理系统将包括至少一个通过系统总线直接或间接连接到存储器元件的处理器。所述存储器元件可以包括在程序代码的实际执行期间采用的本地存储器、大容量存储装置以及提供至少某些程序代码的临时存储以减少必须在执行期间从大容量存储装置检索代码的次数的高速缓冲存储器。
[0066] 输入/输出或I/O设备(包括但不限于键盘、显示器、指点设备等)可以直接或通过中间I/O控制器与系统相连。
[0067] 网络适配器也可以被连接到系统以使所述数据处理系统能够通过中间专用或公共网络变得与其他数据处理系统或远程打印机或存储设备相连。调制解调器、电缆调制解调器和以太网卡只是几种当前可用的网络适配器类型。
[0068] 出于示例和说明目的给出了对本发明的描述,并且所述描述并非旨在是穷举的或是将本发明限于所公开的形式。对于本领域的技术人员来说,许多修改和变化都将是显而易见的。实施例的选择和描述是为了最佳地解释本发明的原理、实际应用,并且当适合于所构想的特定使用时,使得本领域的其他技术人员能够理解本发明的具有各种修改的各种实施例。