集群化多个独立的高速pci层次结构的装置和方法

文档序号:6457091阅读:101来源:国知局
专利名称:集群化多个独立的高速pci层次结构的装置和方法
技术领域
0001本发明涉及高速PCI (PCI Express)系统架构并且更具 体地涉及修改高速PCI架构来使得能够进行多个独立的高速PCI层次 结构的互连以形成互连的高速PCI层次结构集群,所述集群可以共享 对集群化的层次结构中任何一个中的端点设备的访问。
背景技术
在较老的并行总线结构PCI层次结构中,每个PCI层次 结构通常不能与具有另一个根设备的第二PCI层次结构的组件进行通 信。而且,每个层次结构通常是分离的并且独立的,使得其具有单个 根设备及其相关联的端点设备集。PCI层次结构的这种分离有助于避 免具有多个根设备时所存在的问题,即每个根设备都试图初始化PCI 总线结构的多个片段(segment)和/或试图用不同配置信息初始化相 同的端点设备。然而,这种分离通常还使一个层次结构不能容易地访 问另 一 个层次结构内的组件,这种访问使得每个层次结构可以共享对 端点设备的访问,从而提高处理及其中通信功率的利用率。尽管PCI 桥设备已知用来允许耦接其它分离的PCI总线片段,但这类设备给系 统增加了较大的成本和管理复杂性。尽管目前没有被标准化为公布的、工业领域所采用的规 范,但PCISIG (PCI特别兴趣小组——定义PCI架构的实际工业标 准机构)近来所进行的开发已经开始定义允许在一个PCIe系统中有多 个才艮i殳备的架构。PCISIG已经提出了多才艮(multi-root) I/O结构, 使得多个层次结构可以物理地集成并且在单个系统内物理地互连一一 即,每个层次结构具有单个指定的根设备并且具有相关联的端点设备, 所有设备共享公共的物理的、交换的连接。然而,即使这些改进 (evolving)的标准也仍然逻辑地分离端点设备集,使得每个端点设备 仅仅可以由系统内的单个层次结构来访问。换言之,每个设备是单个层次结构的成员,该层次结构包括仅仅与该一个层次结构相关联的设 备集及其相应的根设备。尽管多个端点设备可以共享单个物理设备并 且共享公共的互连,但它们必须被分派给不同的层次结构。因而,尽
管多个层次结构可以物理地互连,但在系统的各个层次结构之间不准
许访问的共享。而且,改进的PCIe设备和交换机逻辑地分离设备(每 一个设备到其所在的层次结构),尽管设备可以通过改进的交换设备 来共享公共的物理通信路径。此外,对于需要访问特定物理设备的每
个层次结构,则必须为每个层次结构提供单独的逻辑端点结构。这种 要求将能够访问物理设备的层次结构的数目限制为由物理设备所提供 的逻辑端点设备的数目。为了准许在多个层次结构之间共享设备,现有解决方案通 常需要通过其它互连介质和协议耦接系统的层次结构以提供期望的层 次结构之间的设备共享。例如,光纤通道、以太网络以及其它公知的 网络连接介质和协议可以用来互连各种层次结构,从而提供对集群的 每个层次结构中的端点设备的共享访问。然而,这些以及其它连网解 决方案给这种共享访问的处理增加了较大的开销。对另 一个层次结构 中的远程设备的访问必须首先从PCIe所封包的事务转换为用于与其 它层次结构网络交换的另一种协议。这种协议转换能给期望的共享访 问增加显著的处理开销,并且因而在高性能应用中实际上可能是不可 用的。鉴于上述讨论,清楚地存在如下问题在每一个层次结构具有相关联的根设备的物理集群中提供多个PCIe层次结构之间的端 点设备共享。

发明内容
图7和图8是描述根据本发明各个特征和方面的、可以在 集群的第一和第二层次结构之间交换的存储器地址和事务ID的映射 或转换过程的图。

图1是示出了具有每个均耦接至相应服务器的多个存储 控制器102和122的典型计算组织(enterprise) 100的框图。通常配 置是控制器中每一个都可以适合于支持特定的主机附接介质和协议。 例如, 一个存储控制器102可以适合于与附接的服务器(attached server )的光纤通道通信协议,而第二存储控制器122可以适合于iSCSI 或者任何其它合适的协议。因而,组织100中的多个存储控制器通常 使用多个连接协议和介质来将存储系统和设备耦接至各种服务器。按照类似的方式,还可以根据PCIe配置空间的分区来重 映射或者转换由PCIe交换中的事务ID所定义的PCIe空间。例如, 根据本发明的各个特征和方面,为了保存本地层次结构中启动设备的 总线编号,可以限制事务ID的总线编号、设备编号、功能编号和标志 字段为任意的位数。当将通过PCIe交换机进行转发的任何相关事务返 回至启动层次结构时,可以在事务ID总线编号字段中插入从其它层次 结构和交换结构的角度观察的启动层次结构的总线编号以识别层次结 构。作为实例,事务ID中被指定为8位宽度的总线编号字段可以被限 制为仅有5位,使得本地层次结构仅仅可以访问其本地层次结构内编 号为0到31的本地总线片段。按照类似的方式,事务ID中被指定为 5位字段的设备编号可以被限制为3位,使得在本地层次结构的编号
15为0到31的任何本地总线片段上的本地设备编号可以仅仅在0到7之 间的范围内。此外,按照类似的方式,事务ID中通常被指定为8位宽 度的标志字段可以被限制为5位,使得标志编号被限制为0到31之间 的值,以用于本地层次结构内的交换。接下来,通过限制事务ID的字 段而可以自由使用的未用位可以被用于保存事务ID的本地层次结构 总线编号值。具体地,指示启动事务的设备的本地层次结构中的总线 编号的总线编号字段的低位5位可以被保存在空闲的、保留的位中。 接下来,能够在总线编号字段的8位中插入层次结构的总线编号,从 而当相关的返回事务使用事务ID字段来通过多个层次结构的集群端 口返回信息时,识别要#>访问的特定启动层次结构。图4是提供图3的PCIe空间转换器元件308的结构的示 例性附加细节的框图。转换器逻辑308内的功能元件可以包括存储器 地址重映射元件400,其用于映射/转换PCIe在层次结构之间交换的 PCIe事务中所使用的存储器地址。如上所述,通过集群端口逻辑来逻 辑地将PCIe空间分区,使得空间的第一部分对应于被编码为零的高 (upper)地址位以及仅在PCIe交换中使用的存储器地址中的低阶地 址位。该第 一部分用来在层次结构内引用该层次结构内的本地组件一 —换言之,PCIe空间的第一部分中的存储器地址不由集群端口 (即, 由转换器逻辑)来转换而单独地在特定的本地层次结构内使用。PCIe 空间的第二部分对应于高阶地址位中指定非零值的剩余存储器地址。 这种存储器地址由第一层次结构用来引用第二、远程层次结构中的远 程组件。笫一层次结构的集群端口的转换器逻辑308接收引用远 程组件的地址,并且通过标准的PCIe交换机将所接收的存储器地址事 务转发至远程/第二层次结构。交换机根据用来识别系统的特定集群端 口或层次结构的存储器地址的高阶的位来路由事务。第二/远程层次结 构的集群端口将接收来自第 一层次结构的地址,并且将所接收的地址 转换/重映射为其相应层次结构内相应本地组件的适当存储器地址。一 般而言,该转换将仅仅涉及屏蔽用来在两个层次结构之间路由事务的 高阶的位。仅仅需要低阶的位来将被接收且被转换的事务转发至第二 接收层次结构(包含接收集群端口的层次结构)中。接下来,可以通 过第二或者接收层次结构内的本地访问来处理事务。如上所述,根据本发明各个特征和方面的集群端口实施包 括事务ID值的分区的PCIe空间分区,从而可以由第一层次结构生成 事务ID以引用第二层次结构中的組件。例如,可以减少事务ID中用 于定义各种字段(例如总线ID和设备ID)的位的数目以便保留用来 识别集群或者层次结构的位以识别在完成相关联的事务的过程中信息 随后可以返回的集群。因而,集群端口 300的转换器逻辑3fl8中的配 置空间转换器元件402用来转换或者重映射在第一或本地层次结构和 第二或远程层次结构之间交换的事务ID值。例如,当引用本地层次结 构内的总线片段时,总线编号值可以被限制为标准8位字段中的5位。 接下来,根据本发明的各个特征和方面,可以重定义事务ID的总线编 号字段的高阶3位以编码集群或者层次结构编号的全部或者一部分。 按照类似的方式,事务ID的5个标准设备编号位中的低3位可以用于 引用本地层次结构内的设备。接下来,设备编号字段的高阶2位可以 用于编码集群或者层次结构编号的全部或者一部分。按照类似的方式, 可以保留标志ID字段和/或功能编号字段的一部分,使得在本地层次 结构中仅仅可以使用有限范围的标志值和/或功能值并且剩余的高阶的位可以用于编码集群或者层次结构编号的全部或者一部分。用于编 码集群编号或者总线编号的要被重映射的位的具体数目可以作为针对 特定应用的设计选择的问题来选择。某些应用可能需要较大的本地
PCIe空间而其它应用可能需要较大的用于映射远程设备和总线的 PCIe空间。本领域技术人员将清楚地认识到完整功能的集群端口 300 和/或转换器逻辑308内的许多附加和/或等同元件。因此,图3和图4 仅仅旨在作为集群端口实施例中典型功能元件的一种可能的功能分解 的示例。此外,本领域技术人员将清楚地认识到实现集群端口 300和 转换器逻辑308的重映射和转换功能的众多組合逻辑电路设计。优选地,当在本地PCIe层次结构中生成由存储器地址(存 储器读取或者写入)路由的包,且这些高阶的位(48到63)中的任何 一个有效(ON)时,包将会被导向其集群端口和集群化的层次结构。 本地PCIe总线可以被配置成将具有大于或等于256太字节的存储器地 址值的包导向其集群端口并且从此通过集群层次结构交换机/多个交 换机导向另一个/远程层次结构。因而,存储器地址的第47到0位用 于路由本地PCIe层次结构内的存储器包并且存储器地址的第63到48 位用以作为集群层次结构中的路由位。该特定的示例性映射建议集群 层次结构中定义的全部本地层次结构存储器窗口(如上所述)与不同 的256太字节边界对准。这些窗口不一定具有256太字节大小,但应 当在256太字节的对准上开始。换言之,应当初始化集群PCIe层次结 构,使得由地址路由的包仅仅基于所应用的存储器地址的第63到48 个地址位来被路由。该初始化包括初始化集群中的全部PCIe交换机, 使得它们基于256太字节的粒度(上游、下游或者点对点)来转发包。 下文将介绍这种初始化的示例的附加细节。
0050除了图5的存储器地址所示例的存储器地址空间的分区 之外,根据本发明的各个特征和方面,集群端口还关于事务ID值完成 PCIe空间的分区(例如,配置空间的分区)。如本领域技术人员所公 知的,读取请求(例如,作为基于存储器地址的PCIe事务而启动)的 完成通常在单独的PCIe事务中所请求数据的返回之后完成。该返回数 据PCIe事务包括事务ID ( 600),其一般针对将返回信息被作为事务 而应用的设备来识别总线片段(602 )和总线片段上的设备ID ( 604 )。 标志字段(608 )和功能值(606)可以进一步识别信息要被返回的特 定事务。为了保存事务ID中的初始本地总线编号,可以将本地层 次结构中用来引用设备编号(604)的位的数目限制为标准的5位中的 3位并且可以在本地层次结构内使用标志字段(608)中定义的有限数 目的标准位以进一步识别特定事务。例如,标志字段608的低阶5位 可以用于本地层次结构内的事务ID。或者,例如,可以使用功能字段 的有限数目的位并且剩余位可以自由地用于编码集群信息。
0053在本地层次结构事务中没有用于本地层次结构交换的附 加位应当全部为零,从而定义PCIe空间的配置空间的第一部分。在通 过PCIe交换机/多个交换机以及第一和第二层次结构的集群端口的、 第一和第二层次结构之间交换的事务中,当相关事务从第二层次结构
返回至第一层次结构时,保留位用来保存第一层次结构内的发起设备 的总线编号。本领域技术人员将清楚地认识到使得发起设备的总线编 号可以在附加的保留位内被编码(即,保存)的、事务ID中的位的各 种分配和重新布置。按照类似的方式,对于本领域技术人员而言将显而易见的是,准许保存和恢复发起设备的总线编号的、事务ID600的 位的其它映射是可行的。因而,图6所示的示例性重映射或者转换仅 仅旨在作为如下这种映射的一种可能方式当在系统的第一层次结构 和第二层次结构之间交换事务ID时准许事务ID 600的位被重映射或 者转换。接下来,通过交换结构将所转换的事务ID转发至所识别的目标层次结构或者包括所提供的事务ID的基础事务中识別的集群。因而,接收集群端口接收包括所转换的事务ID 806的事务并且保留所转换的事务ID以用于与基础事务请求相关联的信息的可能返回。例如,如本领域技术人员所公知的,第一层次结构可生成包括初始事务ID 802并且使用上面关于图7所述的存储器地址而被寻址至远程组件的事务。这种事务可能请求某些信息(例如,在前存储的用户数据、管理状态相关的信息等等)的返回。如PCIe架构中所公知的,其它层次结构的远程组件可能需要一些处理时间来完成所请求的事务并且返回所请求的信息。因而,与所接收的事务相关联的事务ID用来使请求返回信息的初始事务与所返回信息联系。当第二层次结构中的远程组件完成所提供的基础事务时,通过使用第二层次结构保存的所转换的事务ID 806,将把所请求的信息返回至第一层次结构。因而,如上所述,由PCIe交换机或者多个交换机使用被编码到所转换的事务ID 806中的集群编号来将所返回的信息导回发起集群或者层次结构编号(即,在事务ID的编码中识别的集群)。当被适当地导到发起集群编号时,该发起第一层次结构的集群端口接收所编码的、所转换的事务ID 804并且转换或者重映射各个位字段以恢复事务ID 802中所指示的初始事务ID值。特别地,事务ID中不再需要集群编号(所转换的事务ID 804的C0…C7)并且可以恢复所保存的总线编号(B0…B4)为其正常的、标准化的位的位置和值。特别地,如图8所示,本地层次结构内的启动设备的初始总线编号可以从保留位中所保存的副本(copy)中恢复并且被恢复到启动本地层次结构内使用的事务ID的总线编号字段。本领域技术人员将清楚地认识到才艮据本发明的各个特征和方面,对通过PCIe交换结构在第一层次结构和第二层次结构之间交换的存储器地址或者事务ID进行转换的许多等同映射步骤。因而,图7和图8仅仅旨在作为多个层次结构之间的这种映射和转换处理的一个示例性实施例。接下来,通过每个根设备运行第二遍枚举(a second pass of enumeration)以i殳置它们的本地交换机(对于其层次结构来说本地 的)来将所有地址大于或等于256太字节的存储器地址路由的包二以及 总线编号大于31的ID路由的包路由至它们的PCIe集群端口。此夕卜, 集群层次结构的根设备应当在集群层次结构上运行第二次枚举以设置 集群层次结构中的所有总线编号为大于31的值。期望附加的枚举,因 为典型的PCI枚举不太可能满足该PCIe集群化方法的需求。尽管已经在附图和此前的描述中说明和描述了本发明,但 这种说明和描述被认为是示例性的并且没有文字上的限制。已经示出
30和描述了本发明的一个实施例及其较小的变化。期望对来自于本发明 的精神内的所有改变和修改的保护。本领域技术人员将理解落入本发 明范围内的上述实施例的变化。特别地,本领域技术人员将清楚地认 识到可以在电子电路中或者由通用或专用目的处理器的适当编程的指 令来等同地实现本发明的各个特征和方面。电路和编程设计的这种等 同性作为设计选择的问题是本领域技术人员所公知的。结果,本发明 不限于以上所讨论的特定实例和说明,而仅仅由所附的权利要求及其 等同物来限定。
权利要求
1.一种系统,包含多个高速PCI层次结构,每个层次结构具有相关联的根控制器,并且每个层次结构具有相关联的集群端口;以及耦接至每个层次结构的集群端口的高速PCI交换机,其中,每个层次结构的所述集群端口使得第一层次结构能够通过交换机受控地访问所述多个层次结构中的任何其它层次结构内的组件,以及其中,每个层次结构的所述集群端口将所述系统的高速PCI空间分区,使得所述空间的第一部分在所述每个层次结构内用来引用所述每个层次结构内的本地组件并且使得所述空间的第二部分在所述每个层次结构内用来引用多个层次结构中的其它层次结构内的远程组件。
2. 如权利要求l所述的系统,其中,每个层次结构的所述集群端口还包含用于映射所述高速PCI空间的存储器地址的存储器地址映射元 件,所述映射元件用来在与包含所述集群端口的第 一层次结构的本地 组件相关联的地址与另一个层次结构的远程组件的地址之间转换存储 器地址。
3. 如权利要求2所述的系统,其中,所述存储器地址转换器适合于将每个层次结构与所述高速 PCI空间的在存储器地址的指定的高阶地址位中具有非零值的片段相 关联,以及其中,所述存储器地址转换器还适合于将笫一层次结构的本地组 件与所述高速PCI空间的在指定的高阶地址位中具有零值的片段相关 联。
4. 如权利要求l所述的系统,其中,每个层次结构的所述集群端口进一步包含用于转换所述高速PCI空间中的高速PCI事务ID的配置空间转换器,所述转换器用来转换在包含所述集群端口的第一层次结构与另一个层次结构之间交换的事务ID。
5. 如权利要求4所述的系统,其中,所述系统适合于在所述事务ID的一个或更多字段中保留 多个位,其中,所述配置空间转换器适合于在所保留的位中保存所述事务 ID的初始总线编号,其中,所述配置空间转换器适合于插入
6. 如权利要求5所述的系统,其中,所述系统适合于保留来自所述事务ID的一个或更多字段 中的五个位。
7. 如权利要求6所述的系统,其中,所述系统适合于在所述事务ID的总线编号字段中保留3 个位,在所述事务ID的设备编号字段中保留2个位,并且在所述事务 ID的标志字段中保留3个位。
8. —种高速PCI层次结构中的集群端口,所述集群端口包含 对于高速PCI交换机的本地接口 ,用于将所述集群端口耦接到本地层次结构;远程接口,用于将所述集群端口耦接至一个或更多其它高速PCI 层次结构中的远程组件;配置存储装置,用于存储与本地层次结构相关和与其它层次结构 相关的高速PCI配置信息;以及转换器元件,用于在本地层次结构与其它层次结构中的任何一个 之间的高速PCI事务转换进行转换,其中,所述集群端口使得能够在本地层次结构的组件与一个或更 多其它层次结构内的远程组件之间进行受控的访问,以及其中,所述集群端口适合于将系统的高速PCI空间分区,使得所 述空间的第一部分在本地层次结构内用来引用本地层次结构内的本地 组件,并且使得所述空间的第二部分用来引用其它层次结构中的另一个内的远程组件。
9. 如权利要求8所述的集群端口, 其中,所述转换器元件还步包含用于映射所述高速PCI空间的存储器地址的存储器地址映射元 件,所述映射元件用来在与本地层次结构的本地组件相关联的地址和 其它层次结构的远程组件的地址之间转换存储器地址。
10. 如权利要求9所述的集群端口,其中,所述存储器地址转换器适合于将每个其它层次结构与所述 高速PCI空间的在存储器地址的指定的高阶地址位中具有非零值的片 段相关联,以及其中,所述存储器地址转换器进一步适合于将本地层次结构的本 地组件与所述高速PCI空间的在指定的高阶地址位中具有零值的片段 相关联。
11. 如权利要求8所述的集群端口, 其中,所述转换器元件还包含用于转换所述高速PCI空间中的高速PCI事务ID的配置空间转 换器,所述转换器用来转换在本地层次结构与另一个层次结构之间交 换的事务ID。
12. 如权利要求11所述的集群端口 ,其中,所述集群端口适合于在所述事务ID的一个或更多字段中 保留多个位以识别其它层次结构中的特定层次结构。
13. 如权利要求12所述的集群端口 ,其中,所述集群端口适合于保留来自所述事务ID的一个或更多 字段中的八个位。
14. 如权利要求13所述的集群端口 ,其中,所述集群端口适合于在所述事务ID的总线编号字段中保 留3个位,在所述事务ID的设备编号字段中保留2个位,并且在所述 事务ID的标志字段中保留3个位。
15. —种方法,包含以下步骤提供多个高速PCI层次结构,每个层次结构具有相关联的根控制 器并且每个层次结构具有相关联的集群端口 ;提供耦接至每个层次结构的所述集群端口的高速PCI交换机;配置每个畢次结构的所述集群端口以准许其它层次结构的其它 组件对所述每个层次结构的所选組件进行访问;以及从第一层次结构通过其相应的集群端口访问另一个层次结构的组件。
16. 如;f又利要求15所述的方法, 其中,配置步骤进一步包含以下步骤将多个层次结构中的每个层次结构的高速PCI空间分区,使得所 述空间的第一部分在所述每个层次结构内用来引用所述每个层次结构 内的本地组件并且使得所述空间的第二部分在所述每个层次结构内用 来引用多个层次结构的其它层次结构内的远程组件。
17. 如^又利要求16所述的方法, 其中,访问步骤进一步包含以下步骤操作所述集群端口以通过在与包含所述集群端口的第一层次结 构的本地组件相关联的地址和另一个层次结构的远程组件的地址之间 转换存储器地址来映射高速PCI空间的存储器地址。
18. 如权利要求16所述的方法, 其中,访问步骤进一步包含以下步骤操作所述集群端口以转换在包含所述集群端口的第一层次结构 和另 一个层次结构之间交换的高速PCI事务ID。
19. 如4又利要求16所述的方法, 其中配置步骤还包含以下步骤初始化多个层次结构中的每一个以访问其本地层次结构内的组件;根据分区步骤所定义的第一和第二部分来初始化所述每个层次 结构的集群端口;以及根据分区步骤所定义的第一和第二部分来初始化所述高速PCI交换机。
20.如权利要求19所述的方法,还包含以下步骤 将多个层次结构中的一个层次结构指定为管理层次结构, 其中通过所述管理层次结构的操作来执行初始化高速PCI交换 机的步骤。
全文摘要
集群化多个高速PCI层次结构以使得能够访问不同层次结构中的组件的装置、系统和方法。每个高速PCI层次结构包括根设备以及通过高速PCI交换结构将每个层次结构耦接至物理集群的每一个其它层次结构的集群端口。通过每个层次结构的集群端口重映射存储器地址和事务ID以将多层次结构系统的高速PCI空间分区。所分区空间的第一部分被保留用于对层次结构内的本地组件的访问。空间的第二部分用来从不同的第一层次结构内访问其它层次结构的远程组件。通过每个层次结构的集群端口重映射和使用在这种远程事务中交换的地址和事务ID值以路由使用标准的PCIe根设备、端点设备和交换机的层次结构之间的交换。
文档编号G06F3/00GK101669082SQ200780051203
公开日2010年3月10日 申请日期2007年9月21日 优先权日2007年2月28日
发明者C·E·尼科尔斯, D·E·盖茨, J·R·克洛普纳, M·H·艾尔-巴塔尔, R·E·斯塔伯斯, R·J·亨利 申请人:Lsi公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1