执行结构发现的方法、系统和装置转让专利

申请号 : CN200580010848.1

文献号 : CN1938990B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : V·V·格诺夫克W·麦奎恩M·卢霍拉米尼M·萨利文

申请人 : 英特尔公司

摘要 :

本发明描述了执行通信结构的结构发现的方法和设备。

权利要求 :

1.一种执行结构发现的方法,包括:

定位与结构连接的多个设备;

为每个设备收集能力信息,所述收集包括:确定某一设备的能力信息是否已经收集以及根据所述确定通过读取所述设备的一组能力,确定是否存在任何与所述能力相关的参考表,和读取所述参考表来为所述设备收集能力信息;

用所述能力信息更新能力表;以及

用结构信息配置每个设备。

2.权利要求1的方法,其中所述收集包括并行地为多个设备收集能力信息。

3.权利要求1的方法,进一步包括:

检测到所述设备的所有所述能力都被读取;

确定所述设备是否与任何其它设备连接;并且

如果所述设备与所述其他设备连接,则读取所述其他设备的一组能力和相关的参考表。

4.权利要求1的方法,其中所述配置包括用所述结构信息配置至少一个能力。

5.权利要求1的方法,进一步包括:

检测到连接至所述结构的所有设备的能力信息已经被读取;

创建所述多个设备的连接表;以及

在所述设备之间用所述结构和所述连接表传输信息。

6.权利要求1的方法,其中所述收集和配置使用高级交换规范定义的协议接口分组来执行。

7.一种执行结构发现的系统,包括:

多个设备;

通信结构,连接到所述多个设备,所述通信结构在所述设备间传输信息;

结构管理模块,与所述通信结构连接,所述结构管理模块发现并配置所述设备以使用所述通信结构传输所述信息,所述结构管理模块包括结构发现模块以定位与所述通信结构连接的所述多个设备,所述结构发现模块收集每个设备的一组能力信息,并且用结构信息配置每个设备,所述收集包括:确定某一设备的能力信息是否已经收集以及根据所述确定通过读取所述设备的一组能力,确定是否存在任何与所述能力相关的参考表,和读取所述参考表来为所述设备收集能力信息;以及用于所述多个设备、通信结构和结构管理模块的支架。

8.权利要求7的系统,其中至少一个设备包括单板计算机。

9.权利要求7的系统,其中所述通信结构被根据高级交换规范来安排。

10.权利要求7的系统,其中所述结构管理模块包括与结构发现模块连接的能力数据库,所述能力数据库为每个设备存储一个记录。

11.一种执行结构发现的装置,包括:

多个设备;

通信结构,连接到所述多个设备,所述通信结构在所述设备间传输信息;以及结构管理模块,与所述通信结构连接,所述结构管理模块发现并配置所述设备以使用所述通信结构传输所述信息,所述结构管理模块包括结构发现模块以定位与所述通信结构连接的所述多个设备,所述结构发现模块收集每个设备的一组能力信息,并且用结构信息配置每个设备,所述收集包括:确定某一设备的能力信息是否已经收集以及根据所述确定通过读取所述设备的一组能力,确定是否存在任何与所述能力相关的参考表,和读取所述参考表来为所述设备收集能力信息

12.权利要求11的装置,其中至少一个设备包括单板计算机。

13.权利要求11的装置,其中所述通信结构被根据高级交换规范来安排。

14.权利要求11的装置,其中所述结构管理模块包括与所述结构发现模块连接的能力数据库,所述能力数据库为每个设备存储一个记录。

15.权利要求11的装置,其中所述结构发现模块生成所述多个设备的连接表,所述连接表具有与所述通信结构连接的每对设备之间的路径。

说明书 :

执行结构发现的方法、系统和装置

背景技术

[0001] 模块化通信平台(MCP)可能包括能共同操作的硬件和软件构件块的系统,其可以配置成支持许多不同的应用。然而,MCP系统可配置的性质使得难以确定MCP系统的当前配置。

附图说明

[0002] 图1示出了系统100的框图;
[0003] 图2示出了系统200的框图;
[0004] 图3示出了用于处理逻辑300的流程框图;
[0005] 图4示出了用于处理逻辑400的流程框图。

具体实施方式

[0006] 图1示出了系统100的框图。系统100可以包括例如MCP系统100。MCP系统100可以用诸如支架、计算板、管理模块、现场可换部件(FRU)、操作系统、中间件和其他组件的许多模块化构件块来设计。例如在一个实施例中,MCP系统100可以包括由PCI工业计算机制造者组(PICMG)3.x规范族,诸如2002年12月30日的ATCA规范PICMG 3.0(“ATCA规范”)定义的高级电信计算架构(ATCA)系统。
[0007] 在一个实施例中,MCP系统100的一个或多个单元还可以配置成根据诸如AS核心架构规范,版本1.0,日期2003年12月(“AS规范”)的高级交换(AS)规范族进行操作。通常,AS规范定义支持诸如热添加/删除、冗余路径、以及结构管理故障解决(failover)的高可用能力(capability)的交换结构架构(switch fabric architecture)。AS结构架构可以支持不同AS端点设备之间的直接通信。AS结构架构可以提供可升级且可扩展的分组交换结构的解决方案,以便于任何多个传输、网络或链路层协议的隧道化。这些特征使AS结构能够制造一种统一的背板解决方案以用于装载/贮存和基于消息的通信。
[0008] 在一个实施例中,MCP系统100可以实现为任意数量的有线和无线通信系统中的一个或多个网络节点。网络节点的例子可以包括通信基础结构设备,诸如无线网络控制器(RNC)、服务GPRS支持节点(SGSN)、媒体网关(MG)、电信公司级电信服务器等等。实施例并不限于此上下文中。
[0009] 在一个实施例中,MCP系统100的网络节点可以由一种或多种类型的通信媒体来连接。通信媒体的例子可以包括金属导线、半导体材料、双绞线、同轴电缆、光纤、射频(RF)等等。连接可以是物理连接或逻辑连接。
[0010] 例如,在一个实施例中,MCP系统100可以包括由一个或多个通信媒体连接的RNC,该通信媒体包括用于无线网络,例如蜂窝或移动系统的RF频谱。在这种情况中,MCP系统100中示出的网络节点和/或网络可以进一步包括将有线通信媒体承载的信号转换成RF信号的设备和接口。这样的设备和接口的例子可以包括全向天线和无线RF收发信机。实施例并不限于此上下文中。
[0011] 再次参考图1,MCP系统100可以包括多个不同的单元,诸如机架管理模块(CMM)102、通信结构104、板1-N、支架106、以及结构管理模块(FMM)108。虽然图1示出了有限数量的单元,但可以知道MCP系统100可以包括用于给定实现的想要的任意数量的额外单元。实施例并不限于此上下文中。
[0012] 在一个实施例中,MCP系统100可以包括板1-N。板可以包括以与用于MCP系统100的架构可兼容的尺寸和形状因子实现的多种网络节点,该架构是,诸如举例而言,ATCA规范定义的ATCA架构。板1-N的例子可以包括具有单个或多个处理器的单板计算机(SBC)、路由器、交换机、存储系统、网络器具、专用小交换机(PBX)、应用服务器、计算机/电话(CT)器具等等。每个板可以包括与通信结构104的交换接口连接的板接口,并且可以通过通信结构104与其他板通信。例如,在一个实施例中,板1-N可以包括一个或多个遵从ATCA的板,TM诸如由Intel公司制造的 NetStructure MPCBL0001SBC。值得指出的是,由于板
1-N的形状和尺寸,板1-N有时可以称作“片(blade)”。
[0013] 在一个实施例中,MCP系统100可以包括通信结构104。通信结构104可以包括交换结构或背板以使板1-N之间能够进行通信。通信结构104例如可以是包括通信电路板的层2交换结构,通信电路板具有多个交换接口,诸如包括10/100/1000BASE-T以太网的基本接口、包括由PICMG 3.x补充规范规定的串行化器/去串行化器(“SERDES”)接口的结构接口等等。每个交换接口可以提供用于连接到其上的板1-N的公共互连。交换接口可以彼此电通信,并且例如与通信结构104的系统管理总线电通信。
[0014] 在一个实施例中,与通信结构104连接的每个板1-N可以通过通信结构104与其他板和系统资源通信。通信结构104可以具有多种拓扑,从双星形拓扑到全网状拓扑。在双星形拓扑中,每个板1-N具有一对冗余结构接口,分别与两个冗余中央交换机的每一个连接。在全网状拓扑中,每个板1-N具有到每个其它板1-N的点到点的连接,并且每个板具有将该板与通信结构104的交换接口相连接的板接口。冗余路径可以通过这些交换机支持以用于故障解决,并且全网状减少了对专用交换时隙的需求。用于通信结构104的这种类型的拓扑并不限于该上下文中。
[0015] 在一个实施例中,通信结构104和板1-N可以根据诸如第2层通信协议的任何数量的通信协议来传输信息。例如,MCP系统100可以使用下列规范定义的协议来传输信息,即通用交换接口规范(CSIX)论坛,标题为“CSIX-L1:Common Switch Interface Specification-L1”,版本1.0,日期2000年8月5日(“CSIX规范”);Infiniband贸易协会(Infiniband Trade Association)文件,标题为“Infiniband Architecture Specification Volume 1”,版本0.8,日期1999年12月(“Infiniband架构规范卷1”);光纤互连网络论坛(Optical Internetworking Forum,OIF)文件,标题为“System Packet Interface Level 3(SPI-3):OC-48System Interface for Physical and Link Layer Devices”,日期2000年6月(“SPI-3规范”);OIF文件,标题为“System Packet Interface
4(SPI-4)Phase 2:OC-192 System Interface for Physical and Link Layer Devices”,OIF-SPI4-02.0,日期2001年1月(“SPI-4规范”);PCT快速基本和高级交换(PCI Express Base and Advanced Switching)(ExB/AS)规范,评论起草修订本(Review Draft Revision )0.5(“ExB/AS规范”);以及快速输入/输出贸易协会(Rapid Input/Output Trade Association)文件,标题为“RapidIP Interconnect Specification Part VI:Physical Layer 1x/4x LP-Serial Specification”,修订本1.1,日期2001年12月(“S-RIO规范”)。
实施例并不限于该上下文中。
[0016] 在一个实施例中,MCP系统100可以包括支架106。支架106可以包括机架以容纳MCP系统100的其他组件。支架106还可以包括多种组件,以向CMM 102、板1-N、和/或FMM 108(“支架组件”)提供功能性。例如,支架106可以包括诸如电源、冷却风扇、传感器和其他共享组件的支架组件。例如在一个实施例中,支架106可以包括遵从ATCA的支架,例如由Intel公司制造的Intel NetStructure MPCHC000114U支架。
[0017] 在一个实施例中,MCP系统100可以包括CMM 102。CMM 102可以执行用于MCP系统100的集中的系统管理。例如在一个实施例中,CMM 102可以包括遵从ATCA的管理模块,诸如Intel NetStructure MPCMM0001 CMM。CMM 102可能试图在遵从ATCA规范的模块化平台中通过从主机处理器中卸载管理应用来提高服务可用性。CMM 102可以通过管理多个板隙、多个支架传感器以及可选的冗余CMM来提供集中的支架管理。CMM可以从一个或多个FRU问询信息、检测存在、执行支架106的热管理,以及执行每个组件的健康状况监控。它还提供电源管理并控制每个组件的上电顺序以及每个板隙的通电/断电。CMM可以支持多个管理接口,包括远程管理控制协议(RMCP)、远程过程调用(RPC)、简单网络管理协议(SNMP)v1和v3、智能平台管理总线(IPMB)上的智能平台管理接口(IPMI)1.5、串行口上的命令行接口(CLI)、远程登录、安全外壳(Secure shell)等等。实施例并不限于该上下文中。
[0018] 在一个实施例中,MCP系统100可以包括FMM 108。FMM 108可以执行用于通信结构104的结构管理操作。FMM 108可以例如根据结构发现算法执行结构发现。在结构发现过程中,FMM 108记录哪些设备与通信结构104连接,收集关于结构中每个设备的信息,并且构建用于结构的连接表。FMM 108将结合附图2进行更详细的讨论。
[0019] 除了上面所述的,MCP系统100可以包括典型地能够在模块化平台中找到的其他组件。例如,MCP系统100可以包括一个或多个管理总线。总线104可以在板1-N和MCP系统100的其他组件诸如CMM 102和FMM 108之间传输管理控制信号。在一个实施例中,例如,总线104可以包括遵从ATCA的总线,诸如IPMB的双向冗余实现,其基于内部集成电路(I2C)总线并作为IPMI架构的一部分。实施例并不限于该上下文中。
[0020] 图2示出了系统200的框图。系统200可以是表示例如FMM 108的结构管理模块。如图2所示,FMM 200可以包括结构发现模块(FDM)204、能力数据库206,以及处理系统212,它们全都通过总线208连接。处理系统212可以进一步包括处理器202和存储器210。尽管图2示出了有限数量的单元,应该理解系统200中可能使用任意数量的单元。
[0021] 在一个实施例中,处理系统212可以包括处理器202。处理器202可以包括能够提供适合用于实施例的速度和功能性的任何类型的处理器。例如,处理器202可以是由Intel公司制造的处理器和其他处理器。处理器202还可以包括数字信号处理器(DSP)和相应架构。处理器202可以进一步包括诸如网络处理器、嵌入的处理器、微控制器、控制器、输入/输出(I/O)处理器(IOP)等等的专用处理器。实施例并不限于该上下文中。
[0022] 在一个实施例中,处理系统212可以包括存储器210。存储器210可以包括机器可读媒介和伴随的存储器控制器或接口。机器可读媒介可以包括能够存储适于由处理器202执行的指令和数据的任何媒体。这样的媒体的一些例子包括但不限于只读存储器(ROM)、随机存取存储器(RAM)、可编程ROM、可擦除可编程ROM、电可擦除可编程ROM、双倍数据速率(DDR)存储器、动态RAM(DRAM)、同步DRAM(SDRAM)、嵌入的闪存(flash memory)和可存储数字信息的任何其他媒体。实施例并不限于该上下文中。
[0023] 在一个实施例中,FMM 200可以包括FDM 204。FDM 204可以执行连接至通信结构104的设备的发现或枚举操作。由于MCP 100是可配置的,所以FDM 204可以执行发现操作以确定MCP 100的当前配置。FDM 204可以在MCP 100的启动或“引导”的过程中和/或以周期的间隔来执行发现操作。FDM 204还可以响应于诸如用户请求、系统请求、FRU或板
1-N的“热交换”等等外部事件执行发现操作。
[0024] 在一个实施例中,FDM 204还可以在发现操作过程中或之后产生连接表。FDM 204可以从MCP 100的各个组件(例如板1-N)接收信息,并使用接收的信息产生用于通信结构104的连接表。连接表可以提供连接至通信结构104的每对设备之间的一个或者多个路径。
路径可以代表设备间不同类型的路径,诸如最短路径、冗余路径等等。实施例并不限于该上下文中。
[0025] 在一个实施例中,FMM 200可以包括能力数据库206。能力数据库206可以包括一个数据库或数据结构以保存有关作为MCP100一部分的设备,例如板1-N的能力信息。遵从AS规范的设备提供类似于PCI能力寄存器的数据结构以描述支持的功能性。用于AS设备的配置空间的头256字节与PCI设备的配置空间实质上相同,其对设备进行分类。由特定设备支持的唯一的一组特性可以从位于设备的配置空间的能力的链接列表提取。设备可以在设备的上电过程中初始化这些能力。每种能力可以具有相应的唯一的能力识别符和能力偏移量(offset)。该能力偏移量可以是到能力列表中下一能力的偏移量。等于0的偏移量可能指示已经到达能力列表的结尾。
[0026] 在通常的操作中,FMM 200可以操作以执行MCP 100的结构发现。FDM 204可以通过活动端口分析来定位或发现与通信结构104连接的板1-N。FDM 204可以读取每个被定位的设备的能力列表,也可以将结构特定信息写入来自该列表的某些能力。FDM 204还可以读取由能力参考的任何表。读取和写入可以使用如AS规范定义的协议接口(PI)4读取分组和PI-4写入分组分别完成。FDM 204可以用从每个设备读取的信息更新能力数据库206。一旦所有连接至通信结构104的设备都被发现,FDM 204可以创建用于通信结构104的连接表。
[0027] 更具体的,FDM 204首先发现其连接的交换机,在这种情况中为通信结构104。对于每个读取的能力,FDM 204确定这些能力是否参考任何表,如果是,发送PI-4分组来读取这些表。FDM 204还确定是否需要基于能力中发现的信息来更新能力数据库206中存储的该设备的能力表。然后,FDM 204发送PI-4读取分组来读取下一能力。如果已为某一特定设备读取了所有能力,那么将确定该设备是交换机还是多端口端点。如果该设备是交换机或多端口端点,则除了通过其发现该设备本身的那个端口之外,FDM 204向该设备的所有活动端口发送出分组,以发现新的设备。这可能提供了结构发现算法的分布性质的一个例子,因为FDM 204并行地发现所有活动端口上的设备而不是依次地每次一个端口地进行。
[0028] FDM 204可以收集有关每个设备的多种类型的信息。例如,每个设备的信息可能包括设备上物理端口的数量、指示哪些端口为活动的状态、设备支持的事件等等。如果设备是端点,那么FDM 204还可以收集该端点支持哪些协议接口的信息。如果设备是交换机,那么FDM 204可以为该交换机读取与多播支持相关联的信息。
[0029] FDM 204可以使用分配给每个设备的唯一的序列号区分新设备和已经发现的设备。FDM 204可以配置成响应三种不同类型的情况。第一种情况中,序列号可能不是由制造商分配给设备。这可以是通过例如包含“0xFFFFFFFF”的序列号来指示。这种情况中,FDM204可以将一个结构唯一的序列号写入设备并继续发现该设备。第二种情况中,序列号可能已经由制造商分配给设备(例如,不同于“0xFFFFFFFF”的序列号),并且FDM 204没有与该设备有关的记录。这种情况中,FDM 204遇到了新设备。FDM 204为该设备创建一个新的记录并继续发现该设备。第三种情况中,序列号可能已经由制造商分配给设备(例如,不同于“0xFFFFFFFF”的序列号),并且FDM204确实具有与该设备有关的记录。这种情况中,FDM 204发现了到已发现设备的一条替换路径。FDM 204为该设备在记录中对该信息做记录,并且停止发现该设备。
[0030] FDM 204保持当前发现的设备的列表。当该列表变为空时,所有可到达的设备均已被发现。在这点上,FDM 204计算该结构中每对设备之间的最短路径,这些可以稍后例如用于对等通信。在发现过程中发现的任何重复的路径可以在该结构的运行时过程中用于故障修复或用于业务量工程以减轻长期的拥塞。通过路径路由的AS结构,任意两个节点之间的路径总是唯一的。由于效能和其他原因,一些节点可能进行其本身的结构发现以收集有关结构中设备的信息。
[0031] FDM 204还可以配置成在任何多播组变化期间,诸如在设备离开或加入组,或改变了其在组中的状态(例如写入者、收听者或两者都是)时,更新适当的设备。对于诸如通信结构104的AS结构,需要更新的设备可能包括AS交换机。FDM 204可以配置成使这些更新保持为最小。FDM 204可以为给定的多播组维持许多经过进口和出口交换机端口的路径。每次当成员加入或离开组,或改变其状态时,FDM 204都执行对能力数据库206中它的表的检查以确定一个用于给定交换机的多播表是否需要更新。而且,FDM 204可以建立该结构的生成树表,并将该生成树用于设备间的最短路径。以这种方式,FDM 204可以避免多播中循环的状况。
[0032] 用于上述系统的操作将结合下面的附图和伴随的例子进一步描述。一些附图可能包括编程逻辑。尽管这里给出的附图可以包括特定的编程逻辑,但应该理解,编程逻辑仅仅提供了这里描述的一般功能性可如何实现的一个例子。并且,除非另外表明,给出的编程逻辑不必以给出的顺序执行。此外,虽然这里可将给出的编程逻辑描述成在特定系统、节点或模块中实现,但可以理解编程逻辑能够在系统内的任何地方实现,而仍落入实施例的范围内。
[0033] 图3示出了编程逻辑300的流程框图。图3示出了可以代表这里描述的、诸如FMM200的一个或多个系统执行的操作的编程逻辑300。如编程逻辑300中示出的,连接至结构的多个设备在块302被定位。在块304中每个设备的能力信息可被收集。例如,可以并行的收集多个设备的能力信息。在块306处可以用能力信息更新能力表。在块308中每个设备可以用结构信息进行配置。例如,该设备的至少一个能力可以用结构信息进行配置。
[0034] 在一个实施例中,可以通过确定某一设备的能力信息是否已经被收集来收集能力信息。如果该设备的能力信息还未被收集,可以通过读取该设备的一组能力来收集能力信息。可以确定是否存在与能力相关的参考表。如果存在与能力相关的任何参考表,则可以读取该参考表。
[0035] 一旦设备所有的能力都已读取,便可以确定设备是否与其他设备连接。如果设备与其他设备连接,则可以读取该其它设备的能力和相关的参考表。
[0036] 一旦已经读取了所有连接至结构的设备的能力信息,就可为该多个设备产生连接表。可以使用结构和连接表在设备间传输信息。
[0037] 图4示出了一个编程逻辑400的流程框图。编程逻辑400可以表示这里描述的一个或多个系统执行的操作,诸如FMM 200。更具体地,编程逻辑400示出了用于FMM 200的更详细的编程逻辑。然而应该理解,实施例不限于编程逻辑400。
[0038] 如图4所示,在块402,FDM 204可以穿过设备的配置空间,直到其到达AS能力列表。如前面指出的,AS设备提供类似于PCI能力寄存器的能力结构来描述支持的功能性。AS设备配置空间的头256字节与PCI设备的配置空间一致,其对设备进行分类。在地址位置34h存在能力指针,其指向PCI记录的开始。列表中记录之一是AS能力记录,其指向AS能力列表的开始。块402完成找到AS能力列表开始的任务。
[0039] 一旦在块402中找到AS能力列表的开始,则在块404 FDM204可以穿过AS头标直到找到要读取的能力。FDM 204读取附加在每个能力的AS头标,以便使用该AS头标中该能力识别符字段来确定其遇到哪种能力。
[0040] 如果在块406中能力识别符相应于基线能力,那么可以在块432中确定与设备相关的序列号是否存在于能力数据库206中。如果序列号确实存在,将意味着FDM 204已经通过替换路径找到该设备。在块436中可以更新连接表,并且在块438处可以终止对该设备的发现操作。
[0041] 如果在块432处不存在序列号,那么在块434处FDM 204可以读取生成树表的条目零(0)。如果条目零(0)已经被读取,那么在块426处连接表可能已经更新,以反映两个端口被连接。如果条目零(0)未被读取,那么在块424处读取下一能力,控制转到块404。
[0042] 如果在块404找到的能力识别符与块406的基线能力不相应,那么可以确定能力识别符是否与块408处的生成树能力相应。如果能力识别符相应于块408的生成树能力,那么FDM 204需要在块414读取设备的基线能力以确定它是发现新的还是已存在的设备。如果基线能力可以在块414读取,那么可以在块426更新连接表,否则在块424读取下一能力,并且控制转到块404。
[0043] 如果在块404找到的能力识别符与块408的生成树能力不相应,那么在块410FDM204需要确定它是否找到了它需要记住偏移量的至少其中一个能力(例如设备PI、多播路由表、事件以及交换机生成树)。如果FDM 204在块410确实找到了至少一个需要的能力,那么FDM 204可以通过在块416更新本地表来保存该偏移量,并且继续进行在块404读取下一能力。如果FDM 204在块410没有找到至少一个需要的能力,那么FDM 204可以确定其是否已经在块412读取了设备所有的能力。如果在块412未读取设备的所有能力,那么控制转到块404来读取下一能力。如果在块412已经读取设备的所有能力,那么在块420确定设备是否具有多于一个(1)的端口。如果在块420设备具有多于一个(1)的端口,那么在块422,FDM 204通过发送PI-4读取分组到设备的每个端口来开始同时地发现该设备的所有活动端口上的设备。然后在块430该设备被标记为被枚举。
[0044] 一旦在块426更新了连接表,便在块428中确定该设备是否已经通过替换路径找到。如果用于发送读取分组到该设备的TurnPool值和TurnPointer值不等于位于生成树表的条目零(0)中的TurnPointer值和Forward TurnPool值,那么FDM 204通过替换路径找到了该设备。如果是这样,设备的发现操作在块438终止。否则,如果在块428通过替换路径没有找到该设备(例如,在块428中TurnPool和TurnPointer值相同),那么如果需要,在块418可用序列号配置该设备并且控制转到块412。
[0045] 一旦发现或枚举阶段完成,FDM 204便具有了该结构的完全的连通性图,能够通过序列号唯一地识别每一设备,并具有到所有必要能力的偏移量。在FDM204能够到达的所有设备被标记为“已枚举”之后,FMD 204前移到结构发现的下一阶段,即读取每个设备的配置空间。在结构发现的第二阶段的过程中,FDM 204穿过其在前一阶段中获得的设备列表并发送出PI-4读取分组以读取在第一阶段中收集的偏移量处的能力。如果任何能力也参考了表,那么FDM 204还读取那些表。通过读取能力和表获取的相关信息在能力数据库206中存储于每个设备的配置记录中。此信息可以在配置阶段期间使用以及用于运行时服务,诸如对等和多播连接维持。在结构发现的最后阶段过程中,FDM 204穿过设备的列表并将数据写入每个设备的配置空间来配置该设备。这一次,FDM 204发送出PI-4写入分组以更新所有设备的一个或多个事件表。当所有三个阶段都已完成并且所有设备都相继被发现时,FDM 204构建一个连接表以反映两个设备在该结构中是否连接。该连接表在每次需要确定一对设备间的最短路径时使用。此外,FDM 204构建要在多播通信中使用的生成树。
[0046] 这里阐述了许多特定的细节以提供对实施例的完全理解。然而,本领域技术人员应该理解,实施方式可以在不使用这些特定细节的条件下实施。在其他例子中,没有对公知的方法、过程、组件以及电路进行详细描述,以免使该实施例不清楚。应该理解,这里公开的特定结构和功能细节仅是代表性的并不一定限制实施例的范围。
[0047] 值得指出,说明书中对“一个实施例”的任何引用都意味着结合实施例描述的特定特征、结构或特性都包括于至少一个实施例中。在说明书中的不同地方出现短语“在一个实施例中”并不一定意味着全部参照同样的实施例。
[0048] 所有或部分实施例可以使用一种可能根据任何数量的因素变化的结构来实现,这些因素是诸如希望的计算速度、功率水平、耐热性、处理周期预算、输入数据速率、输出数据速率、存储器资源、数据总线速度和其他性能约束。例如,一个实施例可以使用由处理器执行的软件实现,如前面描述的那样。另一个例子中,一个实施例可以被实现为专用硬件,诸如电路、专用集成电路(ASIC)、可编程逻辑器件(PLD)或数字信号处理器(DSP)以及伴随的硬件结构。在另一例子中,实施例可以通过编程的通用计算机组件和定制的硬件组件的任意结合实现。实施例并不限于该上下文中。
[0049] 实施例可能已就一个或多个模块进行了描述。尽管实施例是就模块进行描述来使说明更加容易,但一个或多个电路、组件、寄存器、处理器、软件子例程或其任意结合可以替代一个、几个或所有的模块。实施例并不限于该上下文中。