CN107851078A - 一种PCIe设备的聚合友好型地址分配的方法和系统 - Google Patents

一种PCIe设备的聚合友好型地址分配的方法和系统 Download PDF

Info

Publication number
CN107851078A
CN107851078A CN201680038504.XA CN201680038504A CN107851078A CN 107851078 A CN107851078 A CN 107851078A CN 201680038504 A CN201680038504 A CN 201680038504A CN 107851078 A CN107851078 A CN 107851078A
Authority
CN
China
Prior art keywords
address
interconnection
pci
layer
node
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201680038504.XA
Other languages
English (en)
Other versions
CN107851078B (zh
Inventor
诺伯特·埃吉
托马斯·博伊尔
施广宇
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Publication of CN107851078A publication Critical patent/CN107851078A/zh
Application granted granted Critical
Publication of CN107851078B publication Critical patent/CN107851078B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4282Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4004Coupling between buses
    • G06F13/4022Coupling between buses using switching circuits, e.g. switching matrix, connection or expansion network
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4004Coupling between buses
    • G06F13/4027Coupling between buses using bus bridges
    • G06F13/404Coupling between buses using bus bridges with address mapping
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4282Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
    • G06F13/4295Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus using an embedded synchronisation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2213/00Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F2213/0026PCI express
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2213/00Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F2213/0052Assignment of addresses or identifiers to the modules of a bus system

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Mathematical Physics (AREA)
  • Small-Scale Networks (AREA)

Abstract

一种外围组件互连快递PCI‑e网络系统,包括处理器,用于:(a)向PCI‑e拓扑树分配地址,包括:在给定层横向遍历到互连的下行链路耦合;在该层确定哪个下行链路耦合连接到节点;在该层将地址分配给已确定的具有节点的下行链路耦合的节点;(b)传播层,包括:在该层纵向遍历到所述PCI‑e网络的所述互连的下行链路耦合;在该层确定哪个下行链路耦合与其他互连纵向耦合;纵向连续进行直到下一个互连的所述下行链路耦合的下一层;交替重复(a)和(b)直到所述PCI‑e拓扑网络的所述节点都分配了地址。

Description

一种PCIe设备的聚合友好型地址分配的方法和系统
相关申请案交叉申请
本申请要求于2015年6月29日递交的发明名称为“一种PCIe设备的聚合友好型地址分配的方法和系统”的第14/753,400号美国非临时申请案的在先申请优先权,该在先申请的内容以引入的方式并入本文。
技术领域
本发明实施例通常涉及外围组件互连快递架构,特别是数据中心互连技术。
发明背景
外围组件互连快递(Peripheral Component Interconnect Express,简称PCI-e)是外围组件互连(Peripheral Component Interconnect,简称PCI)技术的后继者,其是CPU等处理器与部署在台式计算机和服务器中的外围设备之间最广泛使用的互连标准。PCI总线因自身的高吞吐量、低延迟、以及基于分组交换的互连技术而备受好评。
PCIe是比串行总线接口更像网络耦合的串行连接。例如,PCIe总线并不是一个处理来自多个源端的数据的总线,而是具有控制多个点到点串行连接的交换机。这些连接从交换机复用出来,并直接连接到要发送数据的设备。每个设备都有其特定的专用连接,因此设备不再共享带宽,这与普通总线操作不同。
目前,PCIe主要部署在单机箱机器(例如,服务器和PC)内,主要部署在印刷电路板(printed circuit board,简称PCB)这一级。凭借其所具有的特性和优势,PCIe显然可以成为如以太网(ETH)和InfiniBand(IB)等当前数据中心互连技术的一种灵活且具有成本效益的替代方案。随着多处理器设备的发展,特别是关于地址分配空间,需要进行更好的内存利用。最初,当主机设备上电时,其并不知道系统拓扑,因此其需要发现并了解哪些设备存在以及如何将它们映射到其内存空间中。为了支持标准发现和配置软件,PCI规范定义了控制寄存器和状态寄存器的标准格式。系统设计人员使用多处理器并利用自己的本地内置处理器开发功能节点。这种做法导致一个问题,即主机处理器和PCIe中的智能适配器(上电时)将尝试枚举整个系统,从而引起系统冲突,并最终导致非功能系统的产生。因此,开发了非透明桥(none transparent bridge,简称NTB)作为发现过程的功能节点,从而消除了这些软件冲突。
鉴于上述描述,对于更复杂的节点拓扑,需要更好的智能发现机制来更有效地映射地址空间。更具体地说,随着NTB桥的出现,需要将地址从一个内存空间转换到另一个内存空间,因此在发现阶段中进行的地址分配的任何优化将提供更稳健和更可靠的PCIe架构。
发明内容
本发明实施例涉及以某种方式将内存地址分配给PCIe设备,该方式使得能够使用单个转换寄存器将设备有效地聚合到单个地址中,并且大致上可使与内存地址使用相关联的开销最小化。本发明实施例描述了一种用于节点地址寻址的唯一方法,其能够在地址之间实现最佳地址聚合能力。
本发明实施例提供了一种外围组件互连快递PCI-e网络系统,其包括处理器,用于实现向所述PCI-e网络的拓扑树的节点分配地址的方法。将地址分配给PCI-e拓扑树。该方法可以执行如下:(在给定层横向)遍历到所述PCI-e网络的互连的下行链路耦合;然后(在该层)确定哪个下行链路耦合连接到节点;再(在该层)将地址分配给已确定的具有节点的下行链路耦合的节点。该方法包括传播所述PCI-e拓扑树的层。该方法可以执行如下:(在该层纵向)遍历到所述PCI-e网络的所述互连的下行链路耦合,然后(在该层)确定哪个下行链路耦合与其他互连纵向耦合,再(纵向)连续进行直到下一个互连的所述下行链路耦合的下一层。该方法包括交替重复地址分配和传播过程,直到所述PCI-e树拓扑网络内的所有节点都分配了地址。
本发明另一实施例提供了一种外围组件互连快递PCI-e网络系统,其使用非透明桥(none transparent bridge,简称NTB)在其拓扑树中进行附加连接。所述NTB执行一种方法,包括:将第一组地址分配给以第一互连交换机作为根的子树中的第一地址的节点;将第二组地址分配给以第二互连交换机作为根的子树中的第二地址的节点;使用包括第一地址和相应的所述第一互连的所述子树的第一组地址的地址在转换寄存器中编程所述第一地址的单个地址;使用包括第二地址和相应的所述第二互连的所述子树的第二组地址的地址在转换寄存器中编程所述第二地址的单个地址;使用编程寄存器将到达所述第一互连和所述第二互连之间的所述NTB任一侧上的报文的报文地址转换为所述第一地址集合和所述第二地址集合的所述第一地址或所述第二地址。
本发明的另一目的是提供一种方法和系统,其通过向NTB下行链路连接分配地址集合来实现冗余,以实现拓扑树的互连之间的冗余下行链路连接。
附图说明
附图包含在并且构成本说明书的一部分,示出了本发明的各种实施例,并且与描述内容一起用于解释本发明的原则:
图1是本发明实施例提供的采用PCI-e互连的架构的示意图,其中示出了地址分配过程的交替步骤。
图2是本发明实施例提供的根据PCI-e树的处理的每个步骤进行的地址分配的表格图。
图3是本发明实施例提供的横向纵向流程和纵向流程递归交替的例程的流程图。
图4是本发明实施例提供的遍历PCI-e树的示意图。
图5是一示例性实施例提供的网络或系统500的一部分的框图。
图6是一实施例提供的示例性非透明桥800的框图。
具体实施方式
现在将详细地给出一些实施例的参考。虽然结合可替代的实施例描述该主题,但应该理解它们不是旨在将请求保护的主题限制于这些实施例。相反,请求保护的主题旨在覆盖可以包括在由附加的权利要求书限定的请求保护的主题的精神和范围内的替代物、修改和等同物。
另外,在以下本发明的详细描述中,阐述了许多特定细节以便提供对请求保护主题的透彻理解。然而,所属领域的技术人员将认识到,可以在没有这些具体细节的情况下实践实施例。在其它实例中没有详细描述众所周知的方法、流程、部件和电路,以免对本请求保护的主题的各方面和特征造成不必要地模糊。
该具体实施方式的一些部分按照程序、步骤、逻辑块、处理、以及对计算机存储器中的数据位的操作的其它符号表示来呈现。这些描述和表示是数据处理领域技术人员向该领域其他技术人员有效传达工作实质内容使用的方法。将程序、计算机执行的步骤、逻辑块、过程等一般设想为首尾一致的步骤或指令序列,以产生期望的结果。这些步骤需要物理量的物理操控。通常,并不是完全必须的,这些量以电信号或磁信号的形式存在,可以被存储、转移、合并和比较,否则将在电脑系统中被操控。有时候这种方法被证明是行之有效的,主要出于常见用法的考虑,将这些信号作为比特位、数值、元素、符号、字符、术语、或数字等等。
然而,应牢记,所有这些和类似术语与适当物理量相关联,且仅为应用于这些量的方便标签。除非另有说明,从以下讨论中明显得知,整个讨论中所使用的术语,如“访问”、“写入”、“包括”、“存储”、“传输”、“遍历”、“关联”、“识别”等是指计算机系统或类似电子计算设备的动作和过程,所述动作和过程执行操作并将表示为计算机系统的寄存器和存储器内的物理(电子)量的数据转换为类似地表示为计算机系统存储器或寄存器或其他此类信息存储、传输或显示设备内的物理量的其他数据。
通过支持该技术的大量基于PCIe的不同的输入/输出(Input/Output,简称I/O)设备,PCIe技术提供硬件级资源共享。该技术本身在服务器中已广泛使用,大多数最新的CPU已经将PCIe内置到芯片中,因此不需要在CPU和外设之间连接任何附加的芯片组。因此,由于系统中所需的组件数量和类型较少,基于PCIe互连的集群或数据中心将大大提高成本效率。此外,与ETH和IB相比,PCIe交换机的功耗(每Gbps)降低了几倍,从而进一步提高了这种系统的成本效率。
在功能上,除了硬件级资源虚拟化之外,PCIe还提供远程直接数据存取(RemoteDirect Memory Access,简称RDMA)功能,其为高速低延迟的CPU-to-CPU通信提供了可行性解决方案。PCIe还使用基于信用的内置流量控制,在硬件级提供可靠的数据传输,从而需要一个“更薄”的软件栈。该技术还支持网络跨越更远距离的走线,并且足够灵活以支持不同的网络拓扑。有几个具有低成本适配器和电缆的解决方案已经通过验证,其可以使PCIe成为数据中心潜在的、具有成本效益的互连标准。
下表1.0总结了相较于以太网和InfiniBand,PCI-Express所具有的一些关键属性。
表1.0
该技术的另一个优点是其标准化组织(例如,PCI-SIG)仅定义了协议和数据包格式,但是实施该技术的供应商可以自由地在其设备(例如交换机和功能节点等)内部实现任何功能,具有极大的灵活性和潜力,支持其他数据中心互连技术所缺失的应用的不同功能。应理解的是,利用所有上述属性,可以将PCI-Express描述为统一互连,其用于所有组件之间的数据中心内所需的所有类型的通信。
PCI-Express是具有巨大潜力的新兴数据中心互连技术。越来越多的提供IT解决方案的主导公司正在研究和采用不仅仅用于单个服务器中的CPU和外设之间的互连的PCI-Express。PCIe技术最初设计为板载互连技术,只有几个节点(CPU和I/O设备)连接到PCIe网络。这些网络通常由单个PCIe交换机组成。然而,该技术本身能够成为一个大型的互联网络,但是必须要解决几个挑战才能使其发挥作用。本发明实施例描述了一种用于节点地址寻址的唯一方法,其能够在地址之间实现最佳地址聚合能力。
当(1)使用诸如非透明桥(none transparent bridge,简称NTB)之类的快捷方法来进行所述PCIe网络中的附加冗余连接时,并且当(2)CPU通过NTB(允许多个CPU连接到PCIe网络的典型方法)访问的I/O设备的数量超过所述NTB中的基地址寄存器(baseaddress register,简称BAR)的数量(通常为2到5)时,网络节点的拓扑中的地址聚合能力就变得至关重要。换言之,当连接节点的网络缩放时,会导致连接设备的数量比可用的BAR多,因此,本发明实施例提供了一种可将所述CPU连接到所述PCIe网络的便捷寻址聚合解决方案。
本发明的实施例包括地址分配方案,其中分配给网络的末端节点的地址可以是全局连续的。换言之,单个地址不需要是邻近的或靠近的,而可以是虚拟化的地址。所述术语“连续”用于宽泛地表示相邻地址的边界并不一定是必须互连的,只要相邻地址能近到基于PCIe地址计算方案的约束。为了符合PCIe标准,地址必须以2的指数(例如,2的幂)开始,但地址的长度可以是任意长度。当地址的长度不是2的幂时,下一个设备(或相邻设备)的地址的起始点就不在前一个地址的末端之后。然而,下一个或相邻的地址的起始点通常尽可能地紧接在前一个的地址功能节点之后。所述下一个地址的所述起始点将最接近于等于2的幂的地址点。
另外,所述术语“全局连续”地址不仅指连接到相同交换机的设备的地址是连续的,而且整个PCIe网络的任何子网络中的所有设备的地址都是连续的。这意味着在全局PCI网络的任何一部分网络内,分配给该子网中的设备的地址是连续的。
这种“全局连续”的地址分配通过将横向优先和纵向优先相结合的树遍历过程来实现。图1中示出了处理器内的操作过程。在图1中,示出了连接到具有下行链路[0……N](130)的交换机“S”(120)的根节点“RC”(110)和耦合到端口交换机(120)和交换机(150)的下行链路(140)。图1示出了相关交换机(120)到(250)的节点之间的横向搜索(1)……(12)。采用交替进行的先横向优先步骤(1)……(12)和后纵向优先步骤(13)、(14)和(15)等,从根节点(root node,简称RC)来遍历树。对于第一层的交换机(120),在该过程中,步骤(1)中从0到N来枚举从下行链路(130)(1)到下行链路(130)(n)的所述交换机(120)的所有下行链路(130),并且将地址连续分配给连接到此交换机的末端节点(如果有的话)。此时,为末端节点(135)(1)至末端节点(135)(n)分配地址。将地址分配给连接到该顶层交换机的各个末端节点(130')(1)至(130')(n),并且从端口0到N以连续方式完成该地址分配。在该分配步骤(1)中,末端节点连接到哪个端口以及连接到其相邻端口的设备是末端节点还是交换机是无关紧要的。将地址分配给连接到下行链路(130)(1)至(n)的每个末端节点。上述过程的示例性伪代码如下所示:
一旦将地址分配给具有末端节点的所有下行链路,则该过程接着进行纵向优先的步骤,通过连接到所述顶部交换机(120)的第一端口的交换机(150)遍历该树。此时,在图1所示的初始情况下,这意味着在处理完所有下行链路(130)(1)至下行链路(130)(n)并将地址都分配给所述末端节点之后,将对交换机(120)到交换机(150)执行下行链路或纵向步骤(2)。在第二步骤中,交换机(150)具有下行链路(135)(1)至下行链路(135)(n)。不为下行链路(135)(1)和下行链路(135)(2)分配地址,因为没有连接到其上的末端节点,并且进行步骤(3)中交换机(160)的过程。不为下行链路(145)(1)和下行链路(145)(2)分配地址,因为没有连接到其上的末端节点,并且进行步骤(4)中交换机(170)的过程。
这里,在该过程中评估下行链路(175)(1)至下行链路(175)(n),并且从耦合到首先进行评估的已寻址的第一末端节点(176)的下行链路开始进行分配,然后对随后耦合到第二节点(177)的下行链路进行评估并为其分配地址。在该步骤(4)中,没有更多可用的下行链路将交换机耦合到交换机。例如,交换机(170)没有与其耦合的下行链路,因此该过程采取递归步骤,返回到交换机(160)这一层,并且对与交换机(160)耦合的下一可用下行链路进行该过程,其中交换机(160)与交换机(180)耦合。此时,该过程重复横向优先的交替分配过程,为耦合到所有下行链路的所有末端节点分配地址,然后进行到与交换机(190)耦合的可用端口或下行链路,其是从交换机(180)到交换机(200)的下行链路。一旦在下行链路的特定分支中所有末端节点都分配了地址,则该过程返回到上一层。在这种情况下,一旦步骤(7)完成且将地址分配给交换机(200)中的下行链路的两个末端节点,则该过程返回到层(5)或交换机(180)。
由于所有下行链路都分配了地址,并且没有更多可用的下行链路,所以该过程进行到步骤(3),对于已分配地址的所有下行链路,其结果类似,因此该过程进行到步骤(2)。在步骤(2),该过程能够处理耦合到交换机(210)的下行链路或端口。因此,在步骤(2)中,该过程进行到步骤(8),然后进行到步骤(9)。一旦处理了步骤(8)和步骤(9),并且分配了地址,则该过程进行到上一层并返回到步骤(2)。由于所有末端节点都处理了,并且没有其他下行链路耦合到任何其他交换机,所以该过程进行到步骤(1)。因此,该过程进行逐步(逐层)检查以确保正确处理了耦合到交换机的所有下行链路。在这种逐层方法审查中,每个可用下行链路与每一层相关联,这就不会在地址分配过程中遗漏或错过(末端节点的)任何分支。
在图2中,示出了根据图1中的树形拓扑地址分配的地址分配技术。在图2中,示出了结合所列举步骤的地址分配过程。在图1的步骤(1)中,有两个末端节点耦合到下行链路(130)(1)和(2),因此分配了两个地址。在步骤2中,与交换机(150)相关联的下行链路没有末端节点,因此不用分配地址。在图1的步骤(3)中,也没有末端节点与耦合到交换机(160)的下行链路相关联。在步骤4中,有两个下行链路与交换机(170)相关联,因此将地址分配给图2中的表。填充在表中的地址以横向和纵向交替模式进行排序,其中,仅在这些步骤中,具有可用末端节点的下行链路具有相关联的地址。
图3示出了处理图1的拓扑结构的末端节点的示例性过程的流程图。在图3中的框(300),该过程从RC进行到图1的第一耦合交换机(120)。对于交换机(120)的下行链路使用从左到右处理技术来执行步骤(1),并且确定是否存在耦合到下行链路的末端节点。如果经过处理后的第一下行链路(框320)“是”(框330)具有与其耦合的末端节点,则将地址分配给第一下行链路的末端节点(框340),并且该过程进行到下一个连续下行链路(框360),并且如果“否”(框350),则处理该层的下一个连续下行链路(框360)的末端节点直到处理完所有下行链路。一旦处理了所有的下行链路,就执行纵向检查(框370),并且如果存在下一层的下行链路(框380),则该过程进行到下一层,否则进行到上一层(框375)。同样,连续处理所有下行链路。重复这些横向检查(390)和纵向检查(400),直到处理了所有下行链路并为其分配了地址。如果横向检查表明存在新的纵向层,则分配更新计数器。如果没有末端节点或没有下行链路耦合到其他交换机,则该过程回到上一层,返回框(375),并寻找到交换机的可用下行链路。重复该过程直到处理完所有层和所有下行链路。然后,该过程返回到开始或第一层(310)。
图4示出耦合到交换机Sx(510)和Sy(530)的非透明桥NTB(520)。非透明桥在功能上类似于透明桥,除了在桥两侧各有一个智能设备或处理器,每个都有自己独立的地址域。在本发明的一个实施例中,上述过程确保了给定子树中的末端节点所分配的地址包括连续地址范围,其可通过子树的最顶层交换机的上行链路看到。当在所述PCIe网络中使用NTB并且NTB为冗余和拓扑扩展提供内置附加连接时(例如,将拓扑从基本树扩展到可用于大量节点的更复杂和更有效的树,例如胖树或CLOS),此属性重要且有益。这样,子树中的所有设备的串接地址可结合长度来优化。换言之,该实施例不会浪费任何地址,并且可以简单地通过分配有相同的地址长度的所述NTB中的单个基地址寄存器BAR来访问。
图4示出了如何对NTB的地址分配创建冗余连接,并利用末端节点进行有效的地址分配。在这个例子中,将地址a1,……和az(515)分配给以交换机SX(510)作为根的子树中的末端节点,将地址b1,……和bj(535)分配给以交换机SY(530)为根的子树中的末端节点。地址a1,……和az(515)共同构成地址A,可以通过交换机SX(510)看到。A的“起始地址”等于a1(515)的“起始地址”,其“结束地址”等于az的“结束地址”。类似地,这是地址B,b1,……和bj(535)的情况。
为了通过NTB(520)访问源自于交换机Sx的子网络,需要将地址分配给NTB(520)的相对侧上的基地址寄存器BAR,该地址具有与地址A相同的长度,标记为地址A'。并且单个地址转换寄存器需要被编程为地址A和A',因为地址A是从NTB(520)的SY侧到达的报文的地址A'的转换地址。反之亦然,对于另一方向,当从NTB(520)的相对侧(例如,从SX所驻留的方向)访问来自SY的子树时,B'将被转换为B。
应当理解的是,地址A和地址B具有最小长度,并且分配给NTB(520)的两侧的地址A'和地址B'也将是最小长度。因此,所述PCIe网络地址空间中使用的地址最终也将是最小的。
图5是一示例性实施例提供的网络或系统500的一部分的框图。所述网络500包括根节点或根控制器“RC”(550)、交换机570和580以及末端节点或功能节点591和592。所述根控制器“RC”(550)与所述交换机570通信耦合,所述交换机570又与所述交换机580和所述末端节点或所述功能节点591和592通信耦合。所述根控制器550包括处理器551、存储器552和通信端口553。所述交换机570包括内部连接组件572和通信端口571、573、574和575。所述交换机580包括内部连接组件582和通信端口581、583和584。
所述网络500的组件协作操作以传送和处理信息。所述根控制器550通过网络控制通信,包括向网络500中的组件分配地址。所述交换机570和580将信息传送到网络500中的其他组件。所述功能节点591和592执行各种信息处理操作。
在一个实施例中,所述根控制器550包括处理器551、存储器552和通信端口553。所述处理器551指示与向网络500的节点(例如,末端节点、交换机和非透明桥等)分配地址相关联的操作。所述根控制器550使用便于将一些节点或设备聚合成单个地址的方式分配地址。该过程或方法与图3所示的一系列操作类似。
该方法可以包括第一组操作:将地址分配给PCI-e拓扑树(例如,在每一层)。所述第一组操作包括:在某一层横向遍历到所述PCI-e系统的互连的下行链路耦合;在该层确定哪个下行链路耦合连接到节点;在该层将地址分配给已确定的具有末端节点或功能节点的下行链路耦合的节点。该方法还可包括第二组操作:传播所述PCI-e拓扑树或系统的层。所述第二组操作包括:在该层纵向遍历到所述PCI-e系统的所述互连的下行链路耦合;在该层确定哪个下行链路耦合与其他互连纵向耦合;纵向连续进行直到下一个互连的所述下行链路耦合的下一层。该方法还可以包括交替地重复所述第一组操作和所述第二组操作,直到节点都分配了地址。
在一个示例性实现中,所述互连包括用于耦合下行链路的交换机和端口的其中之一。该层包括耦合到所述拓扑树的根连接的互连的初始层。下一层包括下一互连的上层和下层的其中之一。在从第一层开始并以所述第一层结束的节点上执行所述分配和所述传播,从而实现所述拓扑树的树支的地址分配。交替重复实现了地址空间大致上的最小分配,并且避免了地址空间中的间隙(例如,通过为节点进行连续的地址分配等)。
执行地址分配的方法可以包括:与网络500中的其他组件进行通信。所述根控制器550可以通过所述通信端口553与下游组件进行通信。所述交换机570的所述通信端口571、573、574和575与端口553、功能节点591、功能节点592和通信端口581之间传送信息。内部连接组件572在所述通信端口571、573、574和575之间传送信息。所述交换机580的通信端口581与端口575之间传送信息。所述通信端口583和584与其它网络组件(未示出)之间传送信息。所述内部连接组件582在通信端口581、583和584之间传送信息。应理解的是,可以使用具有不同于所述交换机570和580(例如,具有附加的通信端口等)配置的其他交换机。
在一个实施例中,网络500的组件类似于图3所示的组件。例如,所述根节点550类似于根节点110,所述交换机570类似于交换机120,所述末端节点591和592类似于末端节点130和140,所述交换机580类似于交换机150等等。应理解的是,附加的组件(未示出)可以耦合到所述交换机570和580(例如,类似于耦合到交换机150的交换机160、180和210,耦合到交换机120的交换机230等)。
在将地址分配给末端节点或功能节点之后,所述RC550的处理器551继续将网络地址分配给其他节点,包括交换机和非透明桥(none transparent bridge,简称NTB)等。NTB(未示出)可以包括拓扑树的互连之间的附加下行链路连接。所述NTB可类似于图4中所示的NTB。在一个实施例中,所述NTB包括第一互连组件和第二互连组件。根节点或根控制器(例如,RC550)将一地址分配给第一互连组件,将另一地址分配给第二互连组件。所述非透明桥分配到的地址可类似于图4所示的A'和B'。通过将地址分配到NTB下行链路连接可以实现拓扑互连之间的冗余下行链路连接。所述NTB可以位于第一互连和第二互连之间,其中所述第一互连和所述第二互连之前未通过下行链路耦合进行耦合。
图6是一实施例提供的示例性非透明桥(none transparent bridge,简称NTB)800的框图。非透明桥800可以实现非透明桥配置过程和通信过程。在一个实施例中,所述非透明桥800类似于非透明桥220。所述非透明桥800包括端口811、812和813,内部连接组件835和包括处理组件831和存储器832的控制器830。所述端口811、812和813接收和发送通信信息,并且可以通过各种方式(例如,通信端口和输入/输出终端等)来实现。所述内部连接组件835将所述端口811、812和813选择性地耦合到彼此。所述控制器830控制所述内部连接组件835。在一个实施例中,所述存储器832存储用于执行各种操作(例如,包括非透明桥电路配置操作和内部连接控制操作等)的指令和数据(例如,地址转换表等),并且所述处理组件831实现指令。所述处理组件831可操作与通信相关联的地址之间的直接转换,其中所述转换包括至少一个设备考虑用作功能节点地址的至少一个地址与至少一个其他设备的地址之间的转换,并且按照该转换进行通信转发。
所述非透明桥800耦合到包括交换机801、804和805的各种其他组件或资源。所述非透明桥800分配有或者与至少一对功能节点的地址(例如,地址A'和地址B')相联系。所述存储器832存储地址转换表850。在一个示例性实现方式中,所述存储器832可以包括基地址寄存器。所述地址转换表850包括NTB地址列851和资源地址列852。所述NTB地址列851包括与资源地址b1(列852所示)相对应的NTB地址B'的一部分。所述NTB地址列851还包括对应于资源地址b2(列852所示)的NTB地址B'的另一部分。从所述通信端口811接收数据包841。所述处理器831指示从数据包841去除地址B',并使用地址转换表查找地址B'到地址b1的映射,地址b1附着至有效载荷G以形成数据包842。根据地址b1,将所述数据包842从所述端口813转发到所述交换机804。类似地,可以使用地址A'和地址空间A的一部分(例如,a1和a2等)将数据包从所述交换机804传送到所述交换机801。所述交换机804和所述交换机801可分别分配有地址A和B或与地址A和B相关联,其分别位于地址a1至az和b1至bj的上游。所述数据包841从所述交换机801发送到所述非透明桥800,所述数据包842从所述非透明桥800发送到所述交换机804。
在一个实施例中,所述NTB800执行与促进外围组件互连快递(PeripheralComponent Interconnect Express,简称PCI-e)系统的拓扑树中的附加连接相关联的操作。将第一组地址(例如,A、a1至az等)分配给将第一互连交换机(例如,801、180和510等)作为根的子树中的第一地址的节点交换机。将第二组地址(例如,B、b1至bj等)分配给将第二互连交换机(例如,804、210和530等)作为根的子树中的第二地址的节点。该操作包括:使用包括第一地址和相应的所述第一互连的所述子树的第一组地址的地址在转换寄存器中编程所述第一地址的单个地址。该操作还包括:使用包括第二地址和相应的所述第二互连的所述子树的第二组地址的地址在转换寄存器中编程所述第二地址的单个地址。使用寄存器将到达所述第一互连和所述第二互连之间的所述NTB任一侧上的报文的地址转换为所述第一地址集合和所述第二地址集合的所述第一地址或所述第二地址。NTB可以包括大致上的最小长度的地址集合。
应理解的是,所述处理组件551和831(例如,中央处理单元(central processingunit,简称CPU)、专用集成电路(application-specific integrated circuit,简称ASIC)和处理电路等)和所述存储器552和832(例如,随机存取存储器、闪速存储器和高速缓存等)可以具有各种配置和实现方式。
根据本发明的实施例如此处所述。虽然本公开已经在特定实施例中进行了描述,但是应理解,本公开不应该被解释为这些实施例的限制,而是根据以下权利要求书进行解释。

Claims (21)

1.一种外围组件互连快递(Peripheral Component Interconnect Express,简称PCI-e)系统,其特征在于,包括:
处理器,可用于执行向PCI-e系统的拓扑树的节点分配地址的方法,包括:
(a)向所述PCI-e拓扑树分配地址,所述(a)包括:
在某一层横向遍历到所述PCI-e系统的互连的下行链路耦合;
在该层确定哪个下行链路耦合连接到节点;
在该层将地址分配给已确定的具有节点的下行链路耦合的节点;
(b)传播所述PCI-e拓扑树的层,其中所述(b)包括:
在该层纵向遍历到所述PCI-e系统的所述互连的下行链路耦合;
在该层确定哪个下行链路耦合与其他互连纵向耦合;
纵向连续进行直到下一个互连的所述下行链路耦合的下一层;
(c)交替重复(a)和(b)直到所述节点都分配了地址。
2.根据权利要求1所述的PCI-e系统,其特征在于,在(c)中对节点进行了连续地址分配,其中所述连续地址分配避免了地址空间中的间隙。
3.根据权利要求1所述的PCI-e系统,其特征在于,通过(c)实现了地址空间大致上的最小分配。
4.根据权利要求1所述的PCI-e系统,其特征在于,所述互连包括用于耦合下行链路的交换机和端口的其中之一。
5.根据权利要求1所述的PCI-e系统,其特征在于,所述下一层包括下一互连的上层和下层的其中之一。
6.根据权利要求1所述的PCI-e系统,其特征在于,所述层包括耦合到所述拓扑树的根连接的所述互连的初始层。
7.根据权利要求1所述的PCI-e系统,其特征在于,还包括:
非透明桥(none transparent bridge,简称NTB),用于实现所述拓扑树的互连之间的附加下行链路连接。
8.根据权利要求7所述的PCI-e系统,其特征在于,还包括:
通过向NTB下行链路连接分配地址,以实现所述拓扑树的互连之间的冗余下行链路连接。
9.根据权利要求7所述的PCI-e系统,其特征在于,所述NTB位于第一互连和第二互连之间,其中所述第一互连和第二互连之前未通过下行链路耦合进行耦合。
10.根据权利要求7所述的PCI-e系统,其特征在于,还包括:
将第一组地址分配给所述第一互连的子树的第一地址的节点;
将第二组地址分配给所述第二互连的子树的第二地址的节点;
使用包括第一地址和相应的所述第一互连的所述子树的第一组地址的地址在转换寄存器中编程所述第一地址的单个地址;
使用包括第二地址和相应的所述第二互连的所述子树的第二组地址的地址在转换寄存器中编程所述第二地址的单个地址;
使用寄存器将到达所述第一互连和所述第二互连之间的所述NTB任一侧上的报文的地址转换为所述第一地址集合和所述第二地址集合的所述第一地址或所述第二地址。
11.一种外围组件互连快递PCI-e系统的地址分配和节点传播方法,其特征在于,所述方法包括:
在所述PCI-e系统的每一层分配地址,所述分配包括:
在给定层横向遍历到所述PCI-e系统的互连的下行链路耦合;
在该层确定哪个下行链路耦合耦合到节点;
在该层将地址分配给已确定的具有节点的下行链路耦合的节点;
传播所述PCI-e系统的每一层,其中所述传播包括:
在该层纵向遍历到所述PCI-e系统的所述互连的下行链路耦合;
在该层确定哪个下行链路耦合与其他互连纵向耦合;
纵向连续进行直到下一个互连的所述下行链路耦合的下一层;
交替重复分配和传播,直到所述PCI-e系统内的所述节点都分配了地址。
12.根据权利要求11所述的方法,其特征在于,通过为节点进行连续地址分配,所述交替重复避免了地址空间中的间隙。
13.根据权利要求11所述的方法,其特征在于,所述交替重复实现了地址空间大致上的的最小分配。
14.根据权利要求11所述的方法,其特征在于,所述互连包括用于耦合下行链路的交换机和端口的其中之一。
15.根据权利要求11所述的方法,其特征在于,所述下一层包括下一互连的上层和下层的其中之一。
16.根据权利要求11所述的方法,其特征在于,所述层包括耦合到所述拓扑树的根连接的所述互连的初始层。
17.根据权利要求14所述的方法,其特征在于,在从第一层开始并以所述第一层结束的节点上执行所述分配和所述传播,从而实现所述拓扑树的树支的地址分配。
18.在外围组件互连快递(Peripheral Component Interconnect Express,简称PCI-e)系统中,使用非透明桥(none transparent bridge,简称NTB)来促进其拓扑树中的附加连接,所述NTB执行下列步骤:
将第一组地址分配给以第一互连交换机作为根的子树中的第一地址的节点;
将第二组地址分配给以第二互连交换机作为根的子树中的第二地址的节点;
使用包括第一地址和相应的所述第一互连的所述子树的第一组地址的地址在转换寄存器中编程所述第一地址的单个地址;
使用包括第二地址和相应的所述第二互连的所述子树的第二组地址的地址在转换寄存器中编程所述第二地址的单个地址;
使用寄存器将到达所述第一互连和所述第二互连之间的所述NTB任一侧上的报文的地址转换为所述第一地址集合和所述第二地址集合的所述第一地址或所述第二地址。
19.根据权利要求18所述的NTB,其特征在于,还用于执行下列步骤:
通过向NTB下行链路连接分配地址集合,实现所述拓扑树的互连之间的冗余下行链路连接。
20.根据权利要求18所述的NTB,其特征在于,所述NTB包括大致上的的最小长度的地址集合。
21.根据权利要求18所述的NTB,其特征在于,所述第一互连和所述第二互连包括用于耦合下行链路的交换机和端口的其中之一。
CN201680038504.XA 2015-06-29 2016-06-25 一种PCIe设备的聚合友好型地址分配的方法和系统 Active CN107851078B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/753,400 2015-06-29
US14/753,400 US10191882B2 (en) 2015-06-29 2015-06-29 Method and system for aggregation-friendly address assignment to PCIe devices
PCT/CN2016/087187 WO2017000848A1 (en) 2015-06-29 2016-06-25 Method and system for aggregation-friendly address assignment to pcie devices

Publications (2)

Publication Number Publication Date
CN107851078A true CN107851078A (zh) 2018-03-27
CN107851078B CN107851078B (zh) 2021-05-11

Family

ID=57602672

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201680038504.XA Active CN107851078B (zh) 2015-06-29 2016-06-25 一种PCIe设备的聚合友好型地址分配的方法和系统

Country Status (3)

Country Link
US (1) US10191882B2 (zh)
CN (1) CN107851078B (zh)
WO (1) WO2017000848A1 (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109902038A (zh) * 2019-02-21 2019-06-18 杭州迪普科技股份有限公司 一种PCIe总线地址空间分配方法及装置
CN114389995A (zh) * 2021-12-03 2022-04-22 阿里巴巴(中国)有限公司 资源共享的方法、装置以及电子设备

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107851058B (zh) * 2016-05-27 2021-02-12 华为技术有限公司 存储系统及设备扫描方法
US11803503B2 (en) * 2021-07-08 2023-10-31 Mediatek Inc. Chip having dual-mode device that switches between root complex mode and endpoint mode in different system stages and associated computer system
WO2023138256A1 (zh) * 2022-01-24 2023-07-27 华为技术有限公司 一种通信方法及通信装置
CN114817115A (zh) * 2022-05-20 2022-07-29 深圳市广和通无线通信软件有限公司 串口通信方法及相关装置

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060218426A1 (en) * 2002-12-31 2006-09-28 Michael Gutman Active state link power management
CN101882126A (zh) * 2010-07-13 2010-11-10 中国科学院计算技术研究所 多个HT总线到单个PCIe总线的桥接装置及其方法
CN102117259A (zh) * 2009-12-31 2011-07-06 成都市华为赛门铁克科技有限公司 地址空间资源分配处理方法及装置
US20120137042A1 (en) * 2009-08-07 2012-05-31 Chengdu Huawei Symantec Technologies Co., Ltd. Method and system for taking over devices
US20150026384A1 (en) * 2013-07-22 2015-01-22 GigaIO Networks, Inc. Network Switch
US9003090B1 (en) * 2014-03-25 2015-04-07 DSSD, Inc. PCI express fabric routing for a fully-connected mesh topology

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090077297A1 (en) 2007-09-14 2009-03-19 Hongxiao Zhao Method and system for dynamically reconfiguring PCIe-cardbus controllers
CN101242371B (zh) 2008-03-14 2010-11-10 杭州华三通信技术有限公司 基于PCIe交换架构路由器堆叠的方法、系统和装置

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060218426A1 (en) * 2002-12-31 2006-09-28 Michael Gutman Active state link power management
US20120137042A1 (en) * 2009-08-07 2012-05-31 Chengdu Huawei Symantec Technologies Co., Ltd. Method and system for taking over devices
CN102117259A (zh) * 2009-12-31 2011-07-06 成都市华为赛门铁克科技有限公司 地址空间资源分配处理方法及装置
CN101882126A (zh) * 2010-07-13 2010-11-10 中国科学院计算技术研究所 多个HT总线到单个PCIe总线的桥接装置及其方法
US20150026384A1 (en) * 2013-07-22 2015-01-22 GigaIO Networks, Inc. Network Switch
US9003090B1 (en) * 2014-03-25 2015-04-07 DSSD, Inc. PCI express fabric routing for a fully-connected mesh topology

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109902038A (zh) * 2019-02-21 2019-06-18 杭州迪普科技股份有限公司 一种PCIe总线地址空间分配方法及装置
CN109902038B (zh) * 2019-02-21 2020-12-29 杭州迪普科技股份有限公司 一种PCIe总线地址空间分配方法及装置
CN114389995A (zh) * 2021-12-03 2022-04-22 阿里巴巴(中国)有限公司 资源共享的方法、装置以及电子设备

Also Published As

Publication number Publication date
US10191882B2 (en) 2019-01-29
CN107851078B (zh) 2021-05-11
US20160378706A1 (en) 2016-12-29
WO2017000848A1 (en) 2017-01-05

Similar Documents

Publication Publication Date Title
CN107851078A (zh) 一种PCIe设备的聚合友好型地址分配的方法和系统
CN104737142B (zh) 多时隙链路层流控制单元
US9043526B2 (en) Versatile lane configuration using a PCIe PIe-8 interface
US9331958B2 (en) Distributed packet switching in a source routed cluster server
US10042804B2 (en) Multiple protocol engine transaction processing
CN104836755B (zh) 用于高性能、低功率数据中心互连结构的系统和方法
CN111190553B (zh) 使用混合存储器立方体链路的互连系统及方法
CN103353861B (zh) 实现分布式i/o资源池化的方法及装置
CN103023824B (zh) 基于周边组件接口快速通道PCIe的数据传输系统及方法
CN103546299B (zh) 使用串行器/解串器通道的50Gb/s以太网
US8904079B2 (en) Tunneling platform management messages through inter-processor interconnects
US9479461B2 (en) Computer system and method for communicating data between computers
CN104426814A (zh) Numa节点外围交换机
CN109240832B (zh) 一种硬件重构系统及方法
US20190034367A1 (en) Unified address space for multiple links
WO2014209347A1 (en) Mechanism to control resource utilization with adaptive routing
CN101669082A (zh) 集群化多个独立的高速pci层次结构的装置和方法
CN106575283B (zh) 使用元胞自动机的群集服务器配置
CN105025070A (zh) 用于优化约束系统内的网络数据流的方法
US9830283B2 (en) Multi-mode agent
CN107315697A (zh) 用于减少管理端口的计算机可读取存储装置、系统及方法
CN115586964A (zh) 资源共享装置、资源管理装置及资源管理方法
CN108471384A (zh) 用于端到端通信的报文转发的方法和装置
US9411763B2 (en) Allocation of flow control credits for high performance devices
CN114124814B (zh) 片上网络、控制及配置方法、装置、路由单元及设备

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant