CN104954221A - 用于全连接网格拓扑结构的高速pci架构路由 - Google Patents

用于全连接网格拓扑结构的高速pci架构路由 Download PDF

Info

Publication number
CN104954221A
CN104954221A CN201510086459.2A CN201510086459A CN104954221A CN 104954221 A CN104954221 A CN 104954221A CN 201510086459 A CN201510086459 A CN 201510086459A CN 104954221 A CN104954221 A CN 104954221A
Authority
CN
China
Prior art keywords
tlp
switch
hub layers
port
address
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
CN201510086459.2A
Other languages
English (en)
Other versions
CN104954221B (zh
Inventor
J·B·戴维斯
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.)
EMC Corp
Original Assignee
DSSD Inc
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 DSSD Inc filed Critical DSSD Inc
Priority to CN201611089994.4A priority Critical patent/CN106533992B/zh
Publication of CN104954221A publication Critical patent/CN104954221A/zh
Application granted granted Critical
Publication of CN104954221B publication Critical patent/CN104954221B/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/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/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory 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/4063Device-to-bus coupling
    • G06F13/4068Electrical coupling
    • 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
    • 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/4204Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
    • G06F13/4221Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being an input/output bus, e.g. ISA bus, EISA bus, PCI bus, SCSI 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/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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/15Interconnection of switching modules
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/20Support for services
    • H04L49/201Multicast operation; Broadcast operation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/35Switches specially adapted for specific applications

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Computer Hardware Design (AREA)
  • Mathematical Physics (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Small-Scale Networks (AREA)
  • Multi Processors (AREA)
  • Bus Control (AREA)
  • Information Transfer Systems (AREA)

Abstract

一种PCIe架构包括IO层交换机、集线器层交换机以及连接到集线器层交换机中的一个的目标装置。IO层交换机被配置为:从客户端接收TLP;确定TLP中的地址与第一IO层交换机中的任何多播地址范围没有关联并且与第一IO层交换机中的任何下游端口没有关联;并且基于所述确定,经由IO层交换机上的上游端口将TLP路由到第一集线器层交换机。集线器层交换机被配置为:确定TLP与多播组相关联;并且基于所述确定,产生重写的TLP,并且经由集线器层交换机上的下游端口将重写的TLP路由到目标装置。

Description

用于全连接网格拓扑结构的高速PCI架构路由
背景技术
为了使两个独立的系统能够进行通信,这些系统中的每一个均需要包括足以使得这两个系统能够交互的硬件和/或软件。
发明内容
总的来讲,在一个方面,本发明涉及一种PCIe架构,该PCIe架构包括输入/输出(IO)层和集线器层,所述IO层包括第一IO层交换机和第二IO层交换机,所述集线器层包括多个集线器层交换机,其中,所述多个集线器层交换机包括第一集线器层交换机和第二集线器层交换机,其中,第一IO层交换机使用第一链路连接到第一集线器层交换机,其中,第一IO层交换机使用交叉链路连接到第二集线器层交换机。所述PCIe架构还包括多个目标装置,其中,所述多个目标装置中的每一个连接到所述多个集线器层交换机中的一个,其中,第一集线器层交换机使用第二链路连接到所述多个目标装置中的第一目标装置,并且其中,第一集线器层交换机使用第三链路连接到所述多个目标装置中的第二目标装置。第一IO层交换机被配置为:从客户端接收事务层数据包(TLP);进行第一确认,确认TLP中的地址与第一IO层交换机中的任何多播地址范围没有关联;进行第二确认,确认TLP中的地址与第一IO层交换机中的任何下游端口没有关联;基于第一确认和第二确认,经由第一IO层交换机上的第一上游端口,使用第一链路将TLP路由到第一集线器层交换机。第一集线器层交换机被配置为:在第一下游端口从第一IO层交换机接收TLP;进行第三确认,确认TLP与第一多播组相关联;基于第三确认:产生第一重写的TLP,并且经由第一集线器层交换机上的第二下游端口,使用第二链路将第一重写的TLP路由到第一目标装置,其中,第二下游端口是第一多播组的用户。
总的来讲,在一个方面,本发明涉及一种PCIe架构,该PCIe架构包括:输入/输出(IO)层和集线器层,所述IO层包括第一IO层交换机和第二IO层交换机,所述集线器层包括多个集线器层交换机,其中,所述多个集线器层交换机包括第一集线器层交换机和第二集线器层交换机,其中,第一IO层交换机使用第一链路连接到第一集线器层交换机,其中,第一IO层交换机使用交叉链路连接到第二集线器层交换机,其中,所述PCIe架构可操作地连接到多个目标装置,其中,所述多个目标装置中的每一个连接到所述多个集线器层交换机中的一个,其中,第一集线器层交换机使用第二链路连接到所述多个目标装置中的第一目标装置,并且其中,第一集线器层交换机使用第三链路连接到所述多个目标装置中的第二目标装置。第一IO层交换机被配置为:从客户端接收事务层数据包(TLP);进行第一确认,确认TLP中的地址与第一IO层交换机中的任何多播地址范围没有关联;进行第二确认,确认TLP中的地址与第一IO层交换机中的任何下游端口没有关联;基于第一确认和第二确认,经由第一IO层交换机上的第一上游端口,使用第一链路将TLP路由到第一集线器层交换机。第一集线器层交换机被配置为:在第一下游端口从第一IO层交换机接收TLP;进行第三确认,确认TLP与第一多播组相关联;基于第三确认:产生第一重写的TLP,并且经由第一集线器层交换机上的第二下游端口,使用第二链路将第一重写的TLP路由到第一目标装置,其中,第二下游端口是第一多播组的用户。
本发明的其它方面将通过以下内容清楚描述。
附图说明
图1示出根据本发明的一个或多个实施例的包括PCIe架构的系统。
图2示出根据本发明的一个或多个实施例的输入/输出(IO)层交换机。
图3示出根据本发明的一个或多个实施例的集线器层交换机。
图4示出根据本发明的一个或多个实施例的用于配置PCIe架构的方法。
图5示出根据本发明的一个或多个实施例的IO层交换机对事务层数据包(TLP)进行处理的方法。
图6示出根据本发明的一个或多个实施例的通过集线器层交换机对TLP进行处理的方法。
图7示出根据本发明的一个或多个实施例的用于对连接到PCIe架构的永久性存储模块发出的TLP进行处理的方法。
具体实施方式
现在将参照附图来详细描述本发明的特定实施例。在以下对本发明的详细描述中,为了提供本发明的更透彻的理解,阐述了许多特定细节。然而,本领域的普通技术人员将明白,可以在没有这些特定细节的情况下实施本发明。在其他情况下,不对公知的特征进行详细描述以避免不必要地复杂化描述。
在以下对图1-7的描述中,关于一个图描述的任何组件在本发明的各个实施例中可以等同于关于任何其他图描述的一个或多个类似命名的组件。为了简便起见,将不针对每一个图重复这些组件的描述。因此,每一个图的组件的每一个实施例通过引用并入,并且假定可选地存在于具有一个或多个类似命名的组件的每一个其他图中。另外,根据本发明的各个实施例,一个图的组件的任何描述应被解释为除了关于任何其他图中的相应的类似命名的组件所描述的实施例之外、与这些实施例相结合、或者代替这些实施例可以实现的可选实施例。
总的来讲,本发明的实施例涉及一种PCIe架构,该PCIe架构包括至少两层交换机,这些层交换机连接以在所述至少两层之间形成全连接网格拓扑结构。此外,本发明的实施例涉及一种PCIe架构,该PCIe架构使得连接到该PCIe架构中的一个分片的客户端能够对该PCIe架构的不同分片中的存储器、网络端点装置和/或永久性储存器执行操作(例如,读写操作)。
在典型的通信架构(诸如以太网或Infiniband)中,请求是通过下述方式跨过通信架构中的交换机被路由的:将唯一端点地址与每个端点装置相关联,并且将该端点地址指定为请求的一部分。在PCIe架构中,读写操作在架构交换机之间的路由是基于被访问的存储器地址、而不是基于端点地址。因此,用于全连接网格的基于地址的路由的典型布置不允许所有客户端访问所有端点装置。本发明的一个或多个实施例提供可以克服该限制的机制。具体地讲,基于地址的路由可以实现层之间的所有客户端访问所有端点的全连接网格(下面描述)。
在本发明的一个或多个实施例中,PCIe架构中的组件传达和/或实现高速外设组件互连(PCIe)标准。本发明的实施例不限于PCIe标准的任何过去的、当前的或未来的版本。此外,本发明的实施例可以用实现与用于实现本发明的各个实施例的PCIe标准的特征类似的特征的其他标准来实现。
图1示出了根据本发明的一个或多个实施例的包括PCIe架构的系统。PCIe架构(100)由两个或更多个分片(104A、104B)构成,其中,每个分片均直接连接到处理器(112A、112B)和一个或多个客户端(102A-102D)。下面描述前述每一个组件。
在本发明的一个实施例中,每个客户端(102A-102D)均是包括处理器(或其它类型的处理组件)、存储器和使得它能够连接到PCIe架构(100)的一个(或多个)物理接口的物理装置。此外,每个客户端均包括实现实现本发明的一个或多个实施例所需的PCIe标准(或者其部分)的功能。客户端还包括发送和/或接收事务层数据包(TLP)的功能。TLP对应于根据PCIe标准定义的数据包类型。在本发明的一个实施例中,TLP使得客户端能够从PCIe架构读取数据以及将数据写入到PCIe架构。换句话说,TLP使得客户端能够将数据传送到PCIe架构中的位置以及从PCIe架构中的位置传送数据。在本发明的一个实施例中,客户端中的一个或多个作为PCIe端点(即,发起事务的装置和/或作为事务的目标的装置)进行操作。每个客户端可以经由客户端与PCIe架构之间的链路(即,物理连接)连接到PCIe架构。
继续讨论图1,每个分片(104A、104B)均包括输入/输出(IO)层交换机(ITS)(108A、108B)、集线器层交换机(HTS)(106A、106B)以及一个或多个永久性存储模块(PSM)。下面描述这些组件中的每一个。
关于ITS,每个ITS是连接到一个或多个客户端(102A-102D)的物理PCIe交换机。每个ITS还连接到该ITS所在的同一个分片中的HTS。另外,每个ITS可以连接到与该ITS所在分片不同的分片中的一个或多个HTS。在本发明的一个实施例中,每个ITS连接到PCI架构中的每一个HTS,得到PCIe架构中的层之间的全连接网格。在不背离本发明的情况下,本发明的实施例可以实现为在层之间不具有全连接网。
在本发明的一个实施例中,每个ITS被配置为:(i)从它连接的客户端接收TLP,并且使用地址路由将这些TLP路由到ITS上的适当的出站端口(上游端口,或者下游端口之一),以及(ii)从ITS连接的一个或多个HTS接收TLP,并且使用地址路由将这些TLP路由到ITS上的适当的出站端口(通常是下游端口)。例如,在图1中,ITS B(108B)可以从客户端C(102A)、客户端D(102D)、HTS A(106A)和HTS B(106B)接收TLP。下面关于图2提供关于ITS的另外的细节。
关于HTS,每个HTS均是连接到一个或多个ITS(108A-108B)和一个或多个永久性存储模块(PSM(110A-110D))的物理PCIe交换机。每个HTS连接到该HTS所在的同一个分片中的ITS。另外,每个HTS可以连接到与该HTS所在分片不同的分片中的零个或多个ITS。在本发明的一个实施例中,每个HTS连接到PCIe架构中的每一个其他ITS,得到PCIe架构中的层之间的全连接网格。每个HTS还经由其根端口(未示出)连接到处理器。在不背离本发明的情况下,本发明的实施例可以实现为在层之间不具有全连接网格。
在本发明的一个实施例中,每个HTS被配置为:(i)从它连接的永久性存储模块(PSM)接收TLP,并且使用地址路由将这些TLP路由到HTS上的适当的出站端口(通常是下游端口),以及(ii)从该HTS连接的一个或多个ITS接收TLP,并且使用地址路由将这些TLP路由到该HTS上的适当的出站端口(上游端口,或者下游端口中的一个或多个)。例如,在图1中,HTS B(106B)可以从PSM C(110C)、PSM D(110D)、ITS A(108A)和ITSB(108B)接收TLP。下面关于图3提供关于HTS的另外的细节。
在本发明的一个实施例中,永久性存储模块(100A-110D)中的每一个均包括永久性储存器(未示出),可选地,还包括易失性存储器(未示出)(例如,动态随机存取存储器(DRAM)、同步DRAM、SDR SDRAM和DDRSDRAM)。永久性储存器可以包括,但不限于,NAND闪存、NOR闪存、磁性RAM存储器(M-RAM)、自旋力矩磁性RAM存储器(ST-MRAM)、相变存储器(PCM)、记忆性存储器、被定义为非易失性存储级存储器(SCM)的任何其他存储器、磁盘和光盘。本领域的技术人员将意识到,本发明的实施例不限于存储级存储器。在本发明的一个实施例中,每个PSM是仅一个分片的一部分。
继续讨论PCIe架构,如以上所讨论的,PCIe架构中的每个分片直接连接到至少一个处理器(112A、112B)。每个处理器均是具有被配置为执行指令的单个内核或者被配置为执行指令的多个内核的一组电子电路。处理器可以使用复杂指令集(CISC)架构或精简指令集(RISC)架构来实现。在本发明的一个或多个实施例中,处理器包括根联合体(PCIe标准定义)(未示出)。根联合体将处理器连接到至少一个分片、以及可经由PCIe架构访问但不是PCIe架构中的任何分片的一部分的存储器(114A,114B)(例如,动态随机存取存储器(DRAM)、同步DRAM、SDR SDRAM和DDR SDRAM)。
在本发明的一个实施例中,PCIe架构内的处理器(112A、112B)能够使用例如处理器互连器(116)(诸如QuickPath Interconnect)直接进行通信。本领域的技术人员将意识到,在不背离本发明的情况下,其他点对点通信机制可以用于允许处理器(112A、112B)直接进行通信。
本发明不限于图1中所示的系统。
虽然图1示出了连接到ITS的客户端和连接到HTS的PSM,但是本发明的实施例可以实现为客户端连接到HTS而PSM连接到ITS。
在本发明的另一实施例中,PCIe架构可以实现为它不包括任何PSM;更确切的,ITS和HTS都连接到单独的客户端组,其中,PCIe架构促成客户端之间的通信。
此外,虽然图1中所示的PCIe架构仅包括两个分片、两个处理器和四个PSM,但是在不脱离本发明的情况下,PCIe架构可以用更少的或更多数量的前述每一种组件来实现。另外,虽然图1中的PCIe架构连接到四个客户端和两个存储器,但是在不背离本发明的情况下,本发明的实施例可以实现为使得PCIe架构能够与更少的或更多的客户端和/或存储器连接。
此外,虽然已经关于包括储存器(例如,PSM(110A-110D))的PCIe架构描述了本发明的实施例,但是本发明的实施例可以实现为使得任何两个装置能够使用PCIe架构进行通信。例如,在本发明的一个实施例中,图1中所示的客户端可以是刀片服务器,其中,刀片服务器不包括任何物理NIC卡,并且PSM可以被网络端点装置取代。
在这个例子中,网络端点装置是被配置为既使用网络协议与网络(即,有线网络、无线网络或者它们的组合)交互又经由PCIe与PCIe架构交互的装置。网络端点装置的例子为PICe NIC卡。网络端点装置均可以包括下列装置的组合:永久性储存器(以上关于PSM进行了描述)和存储端点装置存储器(例如,动态随机存取存储器(DRAM)、同步DRAM、SDR SDRAM、DDR SDRAM或者任何其他类型的易失性存储器)。
继续这个例子,PCIe架构将使得刀片服务器能够与一个或多个网络端点装置进行通信。这个实施例将使得刀片服务器可以高效率地共享一个或多个网络端点装置。本发明不限于这个例子。
在另一个例子中,在本发明的一个或多个实施例中,PSM可以用存储端点装置(即,包括存储数据以及来自客户端的服务读写请求的功能的装置)取代。存储端点装置均可以包括下列装置的组合:永久性储存器(以上关于PSM进行了描述)和存储端点装置存储器(例如,动态随机存取存储器(DRAM)、同步DRAM、SDR SDRAM、DDR SDRAM、或者任何其他类型的易失性存储器)。存储端点装置的例子是存储设备。本发明不限于这个例子。
此外,本发明的实施例可以扩展到覆盖经由PCIe架构进行通信的两个或更多个装置。在一般情况下,PSM(在图1中示出)可以推广为目标装置,其中,目标装置可以包括PSM、网络端点装置、存储端点装置、或者能够使用PCIe进行通信的任何其他装置。
虽然图1中的PCIe架构被示为包括PSM(或者更一般地,目标装置),但是PCIe架构可以实现为它不包括目标装置;更确切地,PCIe架构仅包括连接到目标装置的必要的物理组件。
图2示出了根据本发明的一个或多个实施例的输入/输出(IO)层(ITS)交换机。ITS(108B)包括一个上游(US)端口(US端口1(126))以及一个或多个下游(DS)端口(DS端口1(120)、DS端口2(122))、DS端口3(124)。在本发明的一个实施例中,如果端口指向根联合体(以上进行了讨论),则该端口被指定为US端口。可替代地,如果端口的指向背离根联合体,则该端口被指定为DS端口。在一个实施例中,端口(下游或上游)是ITS与装置(例如,客户端、PCIe交换机(例如,ITS或HTS)等)之间的物理接口。所述端口经由链路(即,物理连接)连接到所述装置。如果所述装置是与ITS不同的分片,则所述链路被称为交叉链路。此外,尽管在图2中被示为单端口,但是当发送TLP时,这些端口中的每一个均可以作为出站端口进行操作,当接收TLP时,作为入站端口进行操作。可替代地,图2中所示的端口均可以改为实现为两个单独的端口——即,入站端口和出站端口。
继续讨论图2,US端口(US端口(126))经由链路连接到与ITS相同分片中的HTS。US端口(126)还与地址范围相关联,该地址范围包括PCIe架构(100)中的所有分片中的所有存储器(包括PCIe架构中的PSM中的所有的永久性储存器和易失性存储器)、以及连接到PCIe架构的所有客户端的存储器(包括所有的永久性储存器和易失性存储器)的整个地址范围。前述地址范围不包括直接附连到处理器(112A、112B)的存储器(114A、114B)。前述地址范围可以是连续的地址范围,或者可以由一系列不连续的地址范围组成。
在本发明的一个实施例中,ITS中的至少一个DS端口(DS端口3(124))经由交叉链路(118A)连接到不同分片(例如,分片A)中的HTS(例如,图2中的集线器层交换机A),并且与地址范围相关联,该地址范围仅包括与该分片(例如,图2中的分片A)相关联的存储器(包括相应PSM中的永久性储存器)以及连接到该分片(例如,图2中的分片A)中的ITS的所有客户端的存储器(包括所有的永久性储存器和易失性存储器)。前述地址范围可以是连续的地址范围,或者可以由一系列不连续的地址范围组成。更一般地,经由PCIe架构中的交叉链路连接到第二分片的第一分片中的ITS中的DS端口与仅包括它连接的第二分片的存储器的地址范围相关联。根据PCIe架构的实现,每个ITS均可以具有多个DS端口,其中,一个或多个这样的DS端口经由交叉链路连接到不同分片中的HTS。ITS还包括连接到客户端的DS端口。在本发明的一个实施例中,连接到客户端(例如,客户端C、客户端D)的DS端口(120、122)中的每一个均仅与用于它连接的客户端的地址范围相关联。
ITS(108B)还可以实现至少一个多播组。在本发明的一个实施例中,多播组与多播地址范围相关联,所述多播地址范围可以不同于(或者是该地址范围的子集)与US端口(US端口1(126))相关联的地址范围。此外,所述至少一个多播组的唯一用户是US端口(US端口1(126))。
尽管图2中未示出,但是在本发明的一个实施例中,ITS包括在该ITS与同一个分片中的HTS之间的交叉链路,其中,交叉链路与地址范围相关联,该地址范围包括分片中的PSM中的所有存储器(包括所有的永久性储存器和易失性存储器)的整个地址范围。前述地址范围可以是连续的地址范围,或者可以由一系列不连续的地址范围组成。
本发明不限于图2中所示的系统。
图3示出了根据本发明的一个或多个实施例的集线器层交换机。HTS(106B)包括一个上游(US)端口(US端口2(136)以及一个或多个下游(DS)端口(DS端口4(130)、DS端口5(128)、DS端口6(132)、DC端口7(134)))。在本发明的一个实施例中,如果端口指向根联合体(以上进行了讨论),则该端口被指定为US端口。可替代地,如果端口的指向背离根联合体,则该端口被指定为DS端口。在一个实施例中,端口(下游或上游)是HTS与装置(例如,PSM、处理器、PCIe交换机(例如,ITS或HTS)等)之间的物理接口。所述端口经由链路(即,物理连接)连接到所述装置。如果所述装置是不同于HTS的分片,则所述链路被称为交叉链路。此外,尽管在图3中被示为单端口,但是当发送TLP时,这些端口中的每一个均可以作为出站端口进行操作,当接收TLP时,均可以作为入站端口进行操作。可替代地,图3中所示的端口可以改为均实现为两个单独的端口——即,入站端口和出站端口。
继续讨论图3,US端口(US端口2(136))经由链路连接到处理器(例如,图3中的处理器B)。US端口(136)也与地址范围相关联,该地址范围包括PCIe架构(100)中的所有分片(图1中的104A、104B)中的所有存储器(包括PCIe架构中的PSM中的所有的永久性储存器和易失性存储器)、以及连接到PCIe架构的所有客户端的存储器(包括所有的永久性储存器和易失性存储器)的整个地址范围。前述地址范围不包括直接附连到PCIe架构中的处理器(112A、112B)的存储器(114A、114B)。前述地址范围可以是连续的地址范围,或者可以由一系列不连续的地址范围组成。
在本发明的一个实施例中,至少一个DS端口(DS端口5(128))经由交叉链路(118B)连接到不同分片中的ITS(例如,图3中的IO层交换机A),并且与地址范围相关联,该地址范围仅包括与该分片(例如,图3中的分片A)相关联的存储器(包括相应PSM中的永久性储存器)、以及连接到该分片(例如,图3中的分片A)中的ITS的所有客户端的存储器(包括所有的永久性储存器和易失性存储器)。前述地址范围可以是连续的地址范围,或者可以由一系列不连续的地址范围组成。更一般地,PCIe架构中经由交叉链路连接到第二分片的第一分片中的HTS中的DS端口与仅包括它连接的第二分片的存储器的地址范围相关联。根据PCIe架构的实现,每个HTS均可以具有多个DS端口,其中,一个或多个这样的DS端口经由交叉链路连接到不同分片中的ITS。
HTS还包括连接到PSM(110C、110D)的DS端口。在本发明的一个实施例中,连接到PSM(例如,PSM C、PSM D)的DS端口(132、134)均仅与用于它连接的PSM的地址范围相关联。另外,HTS(108B)包括连接到与HTS相同分片中的ITS的DS端口(DS端口4(130))。
HTS(106B)还可以实现一个或多个多播组。根据PCIe架构的实现,每个多播组均包括作为用户的与一个或多个PSM相关联的DS端口以及连接到处理器的US端口。例如,一个多播组可以包括下列用户:DS端口6、DS端口7和US端口2。在另一个例子中,多播组可以包括下列用户:DS端口6和DS端口7。本发明不限于前述例子。每个多播组均与唯一的多播地址范围相关联,该多播地址范围可以不同于(或者是其子集)与US端口(US端口2(136))相关联的地址范围、与下游端口中的任何一个相关联的地址范围、以及任何其他多播地址范围。
图4-7示出了根据本发明的一个或多个实施例的流程图。虽然流程图中的各个步骤是按顺序呈现和描述的,但是本领域的普通技术人员将意识到,这些步骤中的一些或全部可以按不同次序执行,可以组合或省略,并且这些中的一些或全部可以并行执行。在本发明的一个实施例中,图4-7中所示的每个步骤均可以与图4-7中所示的其他任一步骤并行执行。
图4示出了用于配置根据本发明的一个或多个实施例的PCIe架构的方法。在步骤400中,将与PCIe架构中的所有ITS和HTS中的每一个上游端口相关联的地址范围设置为相同的地址范围,即,包括PCIe架构中的所有分片中的所有存储器(包括PCIe架构中的PSM中的所有的永久性储存器和易失性存储器)以及连接到PCIe架构的所有客户端的存储器(包括所有的永久性储存器和易失性存储器)的整个地址范围的地址范围。前述地址范围可以是连续的地址范围,或者可以由一系列不连续的地址范围组成。前述地址范围不包括直接附连到处理器的存储器。在本发明的一个实施例中,前述“地址范围”可以实现为一组地址范围。在本发明的一个实施例中,该组地址范围可以包括一个(多个)32位地址范围和/或一个(多个)64位地址范围。
在步骤402中,对于PCIe架构产生一个或多个多播组。多播组的产生包括:(i)指定用于每个多播组的多播地址范围,以及(ii)指定每个多播地址组的用户。如以上所讨论的,每个ITS均可以与至少一个多播地址组相关联,其中,多播地址组仅具有一个用户——ITS中的US端口。此外,如以上所讨论的,HTS可以实现多个多播地址组,其中,每个多播组的用户均包括DS端口(这些DS端口可以连接到链路和/或交叉链路)和/或US端口的不同组合。
在步骤404中,对于连接到交叉链路的每一个DS端口设置地址范围,其中,这样的DS端口与如以上所讨论的、它们连接的分片相应的地址范围相关联。在步骤406中,对于连接到PSM的每一个出站DS端口设置与特定PSM相应的地址范围。在步骤408中,对于连接到客户端的每一个出站DS端口设置与特定客户端相应的地址范围。
在步骤410中,对于连接到ITS的HTS上的每一个出站DS端口设置包括用于连接到ITS的所有客户端的所有客户端存储器的地址范围。例如,参照图2和图3,用于出站DS端口4(130)(即,当TLP从HTS发送到ITS时)的地址范围是包括连接到ITS(108B)的所有客户端(102C、102D)的存储器的地址范围。在本发明的一个实施例中,步骤410可以通过将用于给定HTS DS端口的地址范围设置为等于编程到ITS的US端口中的地址范围来实现。
图5示出了根据本发明的一个或多个实施例的IO层交换机对事务层数据包(TLP)进行处理的方法。在步骤500中,在ITS中的入站DS端口从客户端接收TLP,其中,TLP与地址和有效载荷相关联,其中,地址用于在PCIe架构中路由TLP,并且有效载荷包括将要存储在PSM和/或存储器中的数据,或者TLP与用于路由TLP并且还识别从PSM或存储器读取的数据的什么起始位置的地址相关联。在不背离本发明的情况下,TLP可以包括其他信息。在本发明的一个实施例中,客户端包括被配置为产生TLP并且将该TLP发放到PCIe架构的直接存储器地址(DMA)引擎。
在步骤502中,入站DS端口通过确定TLP中的地址是否与多播地址范围相关联来确定TLP中的地址是否与多播组(MCG)相关联。如果TLP中的地址与多播组相关联,则所述处理进入步骤508;否则,所述处理进入步骤504。
在步骤504中,当TLP中的地址与多播组没有关联时,确定TLP中的地址是否在与连接到交叉链路的DS端口相关联的地址范围(也被称为交叉链路地址范围)内。如果TLP中的地址与交叉链路地址范围相关联,则所述处理进入步骤506;否则,所述处理进入步骤512。在步骤506中,经由适当的DS端口和交叉链路将TLP发送到不同分片中的HTS。
在步骤508中,当TLP中的地址与多播组相关联时,将TLP的副本提供给多播组播送组的每个用户。在本发明的一个实施例中,ITS中的US端口是唯一的用户。每个用户在接收到TLP的副本时包括产生包括新地址的重写的TLP的功能,其中,TLP的副本中的地址被转换以获得新地址。在步骤510中,将TLP中的地址转换为可以或者可以不在多播地址范围(即,在步骤502中使用的多播地址范围)内的新地址。转换的结果是包括新地址、但是数据有效载荷与原始TLP相同的重写的TLP。在本发明的一个实施例中,重写的TLP中的新地址与原始TLP中的地址相同。在步骤512中,经由ITS中的US端口将(i)来自步骤510的重写的TLP或者(ii)来自步骤504的原始TLP发送到HTS,其中,HTS在与ITS相同的分片中。在本发明的一个实施例中,当原始TLP中的地址与ITS中的任一端口没有关联并且不在多播地址范围内时,经由ITS中的US端口将原始TLP(即,在步骤500中接收的TLP)发送到HTS。
图6示出了根据发明的一个或多个实施例的集线器层交换机对TLP进行处理的方法。
在步骤600中,在HTS中的入站DS端口从客户端接收TLP,其中,TLP与地址和有效载荷相关联,其中,地址用于在PCIe架构中路由TLP,并且有效载荷包括(i)将要存储在PSM和/或存储器中的数据,或者TLP与用于路由TLP并且还识别从PSM或存储器读取的数据的什么起始位置的地址相关联。在不背离本发明的情况下,TLP可以包括其他信息。TLP可以由与HTS相同分片中的ITS接收,或者从与HTS不同的分片中的ITS(经由交叉链路)接收。
在步骤602中,入站DS端口通过确定TLP中的地址是否与多播地址范围相关联来确定TLP中的地址是否与多播组(MCG)相关联。如果TLP中的地址与多播组相关联,则所述处理进入步骤610;否则,所述处理进入步骤604。在步骤604中,确定TLP中的地址是否在DS端口地址范围中。如果TLP中的地址在DS地址端口范围中,则所述处理进入步骤606;否则,所述处理进入步骤608。在步骤606中,从与TLP中的地址相关联的DS出站端口发送出TLP。在步骤608中,经由HTS中的US端口将TLP(不转换TLP中的地址)发送到处理器(即,连接到HTS所在分片的处理器)。
在步骤610中,当TLP与多播组相关联时,将在步骤600中接收的TLP的副本提供给HTS中的作为多播组的用户的每一个DS端口。每个用户在接收到TLP的副本时包括产生包括新地址的重写的TLP的功能,其中,TLP的副本中的地址被转换为与PSM相关联并且不在任一多播地址范围内的新地址。前述转换的结果是一组重写的TLP。在步骤612中,经由HTS中的相应的DS端口将重写的TLP发送到适当的PSM。
在步骤614中,当TLP与多播组相关联并且HTS中的US端口是用户时,将TLP中的地址转换为不在任一多播地址范围内的新地址。前述转换的结果是重写的TLP。在步骤616中,经由US端口将重写的TLP发送到处理器。
在本发明的一个实施例中,PSM在从HTS接收到TLP(经由步骤606)或重写的TLP(经由步骤610)时,(i)将TLP的有效载荷中的数据存储在PSM内的永久性储存器中,或者(ii)从TLP中所指定的PSM中的位置读取数据。此外,在本发明的一个实施例中,当处理器从HTS接收到重写的TLP时,处理器将TLP的有效载荷中的数据存储在直接连接到该处理器的存储器中。
图7示出了对连接到根据本发明的一个或多个实施例的PCIe架构的PSM发出的TLP进行处理的方法。
在步骤700中,HTS从连接到HTS上的DS端口的PSM接收TLP。在本发明的一个实施例中,TLP与地址和有效载荷相关联,其中,地址用于在PCIe架构中路由TLP,并且有效载荷包括将存储在客户端或处理器存储器中的数据,或者TLP与用于路由TLP并且还识别从客户端读取的数据的什么起始位置的地址相关联。在不脱离本发明的情况下,TLP可以包括其他信息。在本发明的一个实施例中,PSM包括被配置为产生TLP并且将该TLP发放到PCIe架构的直接存储器地址(DMA)引擎。
在步骤702中,使用TLP中的地址来确定TLP是用于与接收到该TLP的HTS相同分片中的客户端、还是用于不同分片。前述确定可以通过确定在HTS中是否存在与包括TLP中的地址的地址范围相关联的DS端口来进行。如果TLP中的地址与交叉链路地址范围相关联,则所述处理进入步骤714;否则,所述处理进入步骤704。
在步骤704中,当地址与交叉链路地址范围没有关联时,将TLP路由到连接到与发放TLP的PSM相同分片中的ITS的出站DS端口(例如,图3中的DS端口4(130))。在步骤706中,经由连接到ITS中的US端口的出站DS端口将TLP发送到ITS。在步骤708中,ITS从HTS接收TLP。在步骤710中,将TLP路由到与包括TLP中的地址的客户端地址范围相关联的出站DS端口(例如,图2中的DS端口1(102C)或DS端口2(102D))。在步骤712中,经由ITS上的与包括TLP中的地址的地址范围相关联的出站DS端口将TLP发送到客户端。
在步骤714中,当地址与交叉链路地址范围相关联时,将TLP路由到连接到与发放TLP的PSM不同分片中的ITS的出站DS端口(例如,图5中的DS端口5(128))。在步骤716中,ITS(在不同分片中)从HTS接收TLP。在步骤718中,将TLP路由到与包括TLP中的地址的地址范围相关联的出站DS端口(例如,图2中的经由链路连接到客户端A或客户端B的DS端口)。在步骤720中,经由ITS上的与包括TLP中的地址的地址范围相关联的出站DS端口将TLP发送到客户端。
在本发明的一个实施例中,客户端在接收到TLP(经由步骤712或步骤720)时,(i)将TLP的有效载荷中的数据存储在客户端存储器(或永久性储存器)中的在TLP的有效载荷中指定的位置中,或者(ii)从该位置读取数据。
以下章节描述根据本发明的一个或多个实施例的例子;这些例子基于图1-3中所示的PCIe架构。这些例子并非意图限制本发明的范围。
实施例1
考虑ITS B(图1中的108B)被配置了第一多播组的情况,第一多播组与仅包括作为用户的US端口1(126)的第一多播地址范围相关联。此外,HTS B(106B)被配置了下列多播组:(i)第二多播组,其与包括下列用户的第二多播地址组范围相关联:DS端口6(132)和US端口2(136);(ii)第三多播组,其与包括下列用户的第三多播地址组相关联:DS端口6(132)、DS端口7(134);以及(iii)第四多播组,其与包括下列用户的第四多播地址组相关联:DS端口5(128)、DS端口7(134)和US端口2(136)。
考虑具有第一地址的TLP被ITS B(108B)上的DS端口1从客户端C(102C)接收的情况。当被DS端口1接收时,确定第一地址在第一多播地址范围内。因此,将TLP中的地址转换为新地址,然后将重写的TLP从用户端口(在这个例子中,即,US端口1)发送出到HTS B。
当被HTS B中的DS端口4接收时,确定重写的TLP中的新地址在第二多播地址范围内。因此,TLP中的新地址:(i)被转换为第二新地址,所得的重写的TLP然后被送出DS端口6(其是第二多播组的用户),以及(ii)被转换为第三新地址,所得的重写的TLP然后被送出US端口2(其是第二多播组的用户)。
实施例2
考虑ITS A(图1中的108A)被配置了第一多播组的情况,第一多播组与第一多播地址范围相关联,第一多播地址范围仅包括与HTS A(106A)相关联的US端口作为用户。此外,HTS A(106A)被配置了第二多播组,第二多播组与包括下列用户的第二多播地址组范围相关联:与PSM A(110A)相关联的DS端口、与PSM B(110B)相关联的DS端口、与处理器A(112A)相关联的US端口、以及与到HTS B(106B)的交叉链路相关联的DS端口。另外,HTS B被配置了第三多播组,第三多播组与包括下列用户的第三多播地址组范围相关联:DS端口6(132)和DS端口7(134)。
参照图1,考虑具有第一地址的TLP被ITS A从客户端A接收的情况。当被ITS A接收时,确定第一地址在第一多播地址范围内。因此,TLP中的地址被转换为新地址,并且重写的TLP从用户端口(即,ITS A中的US端口)发送到HTS A。
当被HTS A接收时,确定重写的TLP中的新地址在第二多播地址范围内。因此,TLP中的新地址:(i)被转换为第二新地址,所得的具有第二新地址的重写的TLP然后从DS端口发送到PSM A(其是第二多播组的用户),(ii)被转换为第三新地址,所得的具有第三新地址的重写的TLP然后从DS端口发送到PSM B(其是第二多播组的用户),(iii)被转换为第四新地址,所得的具有第四新地址的重写的TLP然后从US端口发送到处理器A(其是第二多播组的用户),以及(iv)被转换为第五新地址,所得的具有第五新地址的重写的TLP然后从DS端口发送到ITS B(经由交叉链路)(其是第二多播组的用户)。
当被HTS B中的DS端口5接收时,确定重写的TLP中的第五地址在第三多播地址范围内。因此,DS端口5接收的TLP中的新地址:(i)被转换为第六新地址,所得的重写的TLP然后被送出DS端口6(其是第三多播组的用户),以及(ii)被转换为第七新地址,所得的重写的TLP然后被送出DS端口7(其是第三多播组的用户)。
实施例3
考虑在ITS A与HTS A之间存在交叉链路(图1中未示出)的情况。此外,HTS A(106A)被配置了与包括下列用户的多播地址组范围相关联的多播组:与PSM A(110A)相关联的DS端口、与PSM B(110B)相关联的DS端口(110B)、以及与处理器A(112A)相关联的US端口。
参照图1,考虑具有第一地址的TLP被ITS A从客户端A接收的情况。当被ITS A接收时,确定第一地址与和ITS A与HTS B之间的交叉链路相关联的DS端口相关联。TLP随后经由ITS A与HTS A之间的交叉链路发送到HTS A。
当被HTS A接收时,确定重写的TLP中的地址在多播地址范围内。因此,TLP中的新地址:(i)被转换为第一新地址,所得的具有第一新地址的重写的TLP然后从DS端口发送到PSM A(其是多播组的用户),(ii)被转换为第二新地址,并且所得的具有第二新地址的重写的TLP然后从DS端口发送到PSM B(其是第二多播组的用户),以及(iii)被转换为第三新地址,并且所得的具有第三新地址的重写的TLP然后从US端口发送到处理器A(其是第二多播组的用户)。
虽然已经关于有限数量的实施例描述了本发明,但是本领域技术人员得益于本公开将意识到,可以想出不脱离本文中所公开的本发明的范围的其他实施例。因此,本发明的范围应仅由所附权利要求书限制。

Claims (25)

1.一种PCIe架构,包括:
输入/输出(IO)层,所述输入/输出(IO)层包括第一IO层交换机和第二IO层交换机;
集线器层,所述集线器层包括多个集线器层交换机,其中,所述多个集线器层交换机包括第一集线器层交换机和第二集线器层交换机,其中,所述第一IO层交换机使用第一链路连接到所述第一集线器层交换机,其中,所述第一IO层交换机使用交叉链路连接到所述第二集线器层交换机;
多个目标装置,其中,所述多个目标装置中的每一个连接到所述多个集线器层交换机中的一个,其中,所述第一集线器层交换机使用第二链路连接到所述多个目标装置中的第一目标装置,并且其中,所述第一集线器层交换机使用第三链路连接到所述多个目标装置中的第二目标装置;
其中,所述第一IO层交换机被配置为:
从客户端接收事务层数据包(TLP);
进行第一确认,确认所述TLP中的地址与所述第一IO层交换机中的任何多播地址范围没有关联;
进行第二确认,确认所述TLP中的地址与所述第一IO层交换机中的任何下游端口没有关联;
基于所述第一确认和所述第二确认,经由所述第一IO层交换机上的第一上游端口,使用所述第一链路将所述TLP路由到所述第一集线器层交换机;
其中,所述第一集线器层交换机被配置为:
在第一下游端口从所述第一IO层交换机接收所述TLP;
进行第三确认,确认所述TLP与第一多播组相关联;
基于所述第三确认:
产生第一重写的TLP,并且经由所述第一集线器层交换机上的第二下游端口,使用所述第二链路将所述第一重写的TLP路由到第一目标装置,其中,所述第二下游端口是所述第一多播组的用户。
2.根据权利要求1所述的PCIe架构,其中,所述第一集线器层交换机被进一步配置为:
产生第二重写的TLP,并且经由所述第一集线器层交换机上的第三下游端口,使用所述第三链路将所述第二重写的TLP路由到第一目标装置,其中,所述第三下游端口是所述第一多播组的用户。
3.根据权利要求1所述的PCIe架构,还包括:
处理器,其中,所述处理器使用第四链路连接到所述第一集线器层交换机,其中,所述第四链路在所述集线器层交换机上的第二上游端口与所述处理器上的根端口之间,
其中,所述根端口与所述第二多播组相关联,
其中,所述第一集线器层交换机被进一步配置为:
基于所述第三确认,产生第三重写的TLP,并且经由所述第一集线器层交换机上的第二上游端口,使用所述第三链路将所述第三重写的TLP路由到所述处理器,其中,所述第二上游端口是所述第一多播组的用户。
4.根据权利要求3所述的PCIe架构,还包括:
第二处理器,其中,所述处理器和所述第二处理器经由处理器互连器可操作地连接。
5.根据权利要求1所述的PCIe架构,
其中,所述第一IO层交换机被进一步配置为:
从所述客户端接收第二TLP;
进行第四确认,确认所述第二TLP包括在与所述第一IO层交换机上的第三下游端口相关联的地址范围内的地址;
基于所述第四确认,经由第三下游端口,使用所述交叉链路将所述第二TLP路由到所述第二集线器层交换机;
其中,所述第二集线器层交换机被配置为:
在第四下游端口从所述第一IO层交换机接收所述第二TLP;
进行第五确认,确认所述第二TLP与直接连接到所述第二集线器层交换机的目标装置相关联;
基于所述第五确认,将所述第二TLP路由到直接连接到所述第二集线器层交换机的目标装置。
6.根据权利要求1所述的PCIe架构,
其中,所述第一IO层交换机被进一步配置为:
从所述客户端接收第二TLP;
进行第四确认,确认所述第二TLP包括在与所述第一IO层交换机上的第三下游端口相关联的地址范围内的地址;
基于所述第四确认,经由第三下游端口,使用所述交叉链路将所述第二TLP路由到所述第二集线器层交换机;
其中,所述第二集线器层交换机被配置为:
在第四下游端口从所述第一IO层交换机接收所述第二TLP;
进行第五确认,确认所述第二TLP与所述第二多播组相关联;
基于所述第五确认,产生第三重写的TLP,并且经由所述第二集线器层交换机上的第五下游端口,使用第四链路将所述第三重写的TLP路由到第三目标装置,其中,所述第五下游端口是所述第二多播组的用户,并且其中,所述第三目标装置经由所述第四链路连接到所述第二集线器层交换机。
7.根据权利要求1所述的PCIe架构,
其中,所述第一IO层交换机被进一步配置为:
从所述客户端接收第二TLP;
进行第三确认,确认所述第二TLP与所述第一多播组相关联;
基于所述第三确认,产生第二重写的TLP,并且使用所述第一链路将第二重写的TLP路由到所述第一集线器层交换机;
其中,所述第一集线器层交换机被配置为:
在所述第一下游端口从所述第一IO层交换机接收所述第二重写的TLP;
进行第五确认,确认所述第二重写的TLP与直接连接到所述第一集线器层交换机的目标装置相关联;
基于所述第五确认,将第二重写的TLP路由到直接连接到所述第二集线器层交换机的目标装置。
8.根据权利要求1所述的PCIe架构,其中,所述第一IO层交换机上的第一上游端口与第一地址范围和第二地址范围相关联,所述第一地址范围包括除直接连接到所述处理器的存储器之外的所述PCIe架构中的所有存储器,所述第二地址范围包括与连接到所述PCIe架构的客户端相关联的所有存储器,其中,所述第一地址范围和所述第二地址范围用于路由所述第一IO层交换机接收的TLP数据包。
9.根据权利要求8所述的PCIe架构,其中,与所述客户端相关联的所有存储器包括选自由永久性储存器和易失性存储器构成的组的至少一个。
10.根据权利要求8所述的PCIe架构,其中,所述PCIe架构中的所有存储器包括选自由永久性储存器和易失性存储器构成的组的至少一个。
11.根据权利要求1所述的PCIe架构,其中,所述第一集线器层交换机上的第二上游端口与第一地址范围和第二地址范围相关联,所述第一地址范围包括所述PCIe架构中的所有分片中的所有存储器,所述第二地址范围包括与连接到所述PCIe架构的客户端相关联的所有存储器,其中,所述第一IO层交换机和所述第一集线器层交换机在所述PCIe架构中的分片中的第一分片中,其中,所述第一分片不包括直接连接到所述处理器的存储器,并且不包括所述多个目标装置中的非直接连接到第一集线器层交换机的任何一个,其中,所述第一地址范围和第二地址范围用于路由第一IO层交换机接收的TLP数据包。
12.根据权利要求1所述的PCIe架构,其中,所述交叉链路连接所述第一IO层交换机的第三下游端口和所述第二集线器层交换机的下游端口。
13.根据权利要求12所述的PCIe架构,其中,所述第一IO层的第三下游端口与包括所述PCIe架构的分片中的存储器的地址范围相关联,其中,所述PCIe架构的所述分片中的存储器包括直接连接到所述第二集线器层交换机的所述多个目标装置,并且不包括所述多个目标装置中的直接连接到所述第一集线器层交换机的任何一个。
14.根据权利要求1所述的PCIe架构,其中,所述多个目标装置中的至少一个包括选自由易失性存储器和永久性储存器组成的组的至少一个。
15.根据权利要求1所述的PCIe架构,其中,所述多个目标装置中的至少一个包括NAND闪存。
16.根据权利要求1所述的PCIe架构,其中,所述多个目标装置中的至少一个是选自由网络端点装置和存储端点装置组成的组的一个目标装置。
17.根据权利要求1所述的PCIe架构,其中,所述客户端是PCIe端点。
18.根据权利要求1所述的PCIe架构,其中,所述第一IO层交换机和第一集线器层交换机使用第二交叉链路连接。
19.根据权利要求18所述的PCIe架构,其中,所述第一IO层交换机被配置为使用所述第二交叉链路将TLP路由到所述第一集线器层交换机。
20.根据权利要求18所述的PCIe架构,其中,所述第二交叉链路与任何多播组没有关联。
21.根据权利要求18所述的PCIe架构,其中,所述第二交叉链路连接到所述第一IO层交换机上的第一下游端口和所述第一集线器层交换机上的第三下游端口。
22.一种PCIe架构,包括:
输入/输出(IO)层,所述输入/输出(IO)层包括第一IO层交换机和第二IO层交换机;
集线器层,所述集线器层包括多个集线器层交换机,其中,所述多个集线器层交换机包括第一集线器层交换机和第二集线器层交换机,其中,所述第一IO层交换机使用第一链路连接到所述第一集线器层交换机,其中,所述第一IO层交换机使用交叉链路连接到第二集线器层交换机;
其中,所述PCIe架构可操作地连接到多个目标装置,其中,所述多个目标装置中的每一个连接到所述多个集线器层交换机中的一个,其中,所述第一集线器层交换机使用第二链路连接到所述多个目标装置中的第一目标装置,并且其中,所述第一集线器层交换机使用第三链路连接到所述多个目标装置中的第二目标装置;
其中,所述第一IO层交换机被配置为:
从客户端接收事务层数据包(TLP);
进行第一确认,确认所述TLP中的地址与所述第一IO层交换机中的任何多播地址范围没有关联;
进行第二确认,确认所述TLP中的地址与所述第一IO层交换机中的任何下游端口没有关联;
基于所述第一确认和所述第二确认,经由所述第一IO层交换机上的第一上游端口,使用所述第一链路将所述TLP路由到所述第一集线器层交换机;
其中,所述第一集线器层交换机被配置为:
在第一下游端口从所述第一IO层交换机接收所述TLP;
进行第三确认,确认所述TLP与第一多播组相关联;
基于所述第三确认:
产生第一重写的TLP,并且经由所述第一集线器层交换机上的第二下游端口,使用所述第二链路将所述第一重写的TLP路由到所述第一目标装置,其中,所述第二下游端口是所述第一多播组的用户。
23.根据权利要求22所述的PCIe架构,
其中,所述第一IO层交换机被进一步配置为:
从所述客户端接收第二TLP;
进行第四确认,确认所述第二TLP包括在与所述第一IO层交换机上的第三下游端口相关联的地址范围内的地址;
基于所述第四确认,经由第三下游端口,使用所述交叉链路将第二TLP路由到所述第二集线器层交换机;
其中,所述第二集线器层交换机被配置为:
在第四下游端口从第一IO层交换机接收第二TLP;
进行第五确认,确认所述第二TLP与直接连接到所述第二集线器层交换机的目标装置相关联;
基于所述第五确认,将所述第二TLP路由到直接连接到所述第二集线器层交换机的目标装置。
24.根据权利要求22所述的PCIe架构,
其中,所述第一IO层交换机被进一步配置为:
从所述客户端接收第二TLP;
进行第四确认,确认所述第二TLP包括在与所述第一IO层交换机上的第三下游端口相关联的地址范围内的地址;
基于所述第四确认,经由第三下游端口,使用所述交叉链路将所述第二TLP发送到所述第二集线器层交换机;
其中,所述第二集线器层交换机被配置为:
在第四下游端口从所述第一IO层交换机接收所述第二TLP;
进行第五确认,确认所述第二TLP与第二多播组相关联;
基于所述第五确认,产生第三重写的TLP,并且经由所述第二集线器层交换机上的第五下游端口,使用第四链路将所述第三重写的TLP路由到第三目标装置,其中,所述第五下游端口是所述第二多播组的用户,并且其中,所述第三目标装置经由所述第四链路连接到所述第二集线器层交换机。
25.根据权利要求22所述的PCIe架构,
其中,所述第一IO层交换机被进一步配置为:
从所述客户端接收第二TLP;
进行第三确认,确认所述第二TLP与所述第一多播组相关联;
基于所述第三确认,产生第二重写的TLP,并且使用所述第一链路将所述第二重写的TLP路由到所述第一集线器层交换机;
其中,所述第一集线器层交换机被配置为:
在第一下游端口从所述第一IO层交换机接收第二重写的TLP;
进行第五确认,确认所述第二重写的TLP与直接连接到所述第一集线器层交换机的目标装置相关联;
基于所述第五确认,将所述第二重写的TLP路由到直接连接到所述第二集线器层交换机的目标装置。
CN201510086459.2A 2014-03-25 2015-02-16 用于全连接网格拓扑结构的高速pci架构路由 Active CN104954221B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201611089994.4A CN106533992B (zh) 2014-03-25 2015-02-16 用于全连接网格拓扑结构的高速pci架构路由

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US14/224,846 2014-03-25
US14/224,846 US9003090B1 (en) 2014-03-25 2014-03-25 PCI express fabric routing for a fully-connected mesh topology

Related Child Applications (1)

Application Number Title Priority Date Filing Date
CN201611089994.4A Division CN106533992B (zh) 2014-03-25 2015-02-16 用于全连接网格拓扑结构的高速pci架构路由

Publications (2)

Publication Number Publication Date
CN104954221A true CN104954221A (zh) 2015-09-30
CN104954221B CN104954221B (zh) 2016-12-28

Family

ID=52627032

Family Applications (2)

Application Number Title Priority Date Filing Date
CN201510086459.2A Active CN104954221B (zh) 2014-03-25 2015-02-16 用于全连接网格拓扑结构的高速pci架构路由
CN201611089994.4A Active CN106533992B (zh) 2014-03-25 2015-02-16 用于全连接网格拓扑结构的高速pci架构路由

Family Applications After (1)

Application Number Title Priority Date Filing Date
CN201611089994.4A Active CN106533992B (zh) 2014-03-25 2015-02-16 用于全连接网格拓扑结构的高速pci架构路由

Country Status (4)

Country Link
US (3) US9003090B1 (zh)
EP (2) EP2924935B1 (zh)
JP (2) JP5819554B2 (zh)
CN (2) CN104954221B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109308281A (zh) * 2018-07-16 2019-02-05 郑州云海信息技术有限公司 一种gpu集群和一种计算系统

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10191882B2 (en) * 2015-06-29 2019-01-29 Futurewei Technologies, Inc. Method and system for aggregation-friendly address assignment to PCIe devices
US9921756B2 (en) 2015-12-29 2018-03-20 EMC IP Holding Company LLC Method and system for synchronizing an index of data blocks stored in a storage system using a shared storage module
US10013370B2 (en) 2015-12-29 2018-07-03 EMC IP Holding Company LLC Method and system for providing access of a storage system using a shared storage module as a transport mechanism
US10852955B2 (en) 2015-12-29 2020-12-01 EMC IP Holding Company LLC Method and system for accessing data objects stored in a storage system using object descriptors allocated by clients
WO2017214495A1 (en) 2016-06-10 2017-12-14 Liqid Inc. Multi-port interposer architectures in data storage systems
US10311008B2 (en) 2016-08-12 2019-06-04 Samsung Electronics Co., Ltd. Storage device with network access
US10365981B2 (en) 2016-08-19 2019-07-30 Samsung Electronics Co., Ltd. Adaptive multipath fabric for balanced performance and high availability
CN108008657B (zh) * 2016-10-28 2020-07-21 北京计算机技术及应用研究所 一种控制板和交换板总线直连的负载均衡冗余交换系统
US10180924B2 (en) 2017-05-08 2019-01-15 Liqid Inc. Peer-to-peer communication for graphics processing units
US10728172B2 (en) * 2018-03-28 2020-07-28 Quanta Computer Inc. Method and system for allocating system resources
JP6635209B2 (ja) * 2018-04-18 2020-01-22 富士通クライアントコンピューティング株式会社 情報処理システム
CN108471384B (zh) * 2018-07-02 2020-07-28 北京百度网讯科技有限公司 用于端到端通信的报文转发的方法和装置
US10585827B1 (en) 2019-02-05 2020-03-10 Liqid Inc. PCIe fabric enabled peer-to-peer communications

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060173986A1 (en) * 2005-01-17 2006-08-03 Junichi Ikeda Communication apparatus, electronic apparatus, imaging apparatus
US20070220193A1 (en) * 2006-03-17 2007-09-20 Junichi Ikeda Data communication circuit and arbitration method
CN101090323A (zh) * 2006-06-14 2007-12-19 国际商业机器公司 利用流量控制的交换机中的存储设备分配管理方法和系统
CN101501660A (zh) * 2006-08-09 2009-08-05 日本电气株式会社 因特网连接交换机和因特网连接系统
CN101594306A (zh) * 2008-05-30 2009-12-02 英特尔公司 为分组报头提供前缀
CN103098428A (zh) * 2012-10-27 2013-05-08 华为技术有限公司 一种实现pcie交换网络的报文传输方法、设备、系统和存储介质
CN103210589A (zh) * 2010-09-21 2013-07-17 英特尔公司 在芯片上系统中结合独立逻辑块

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3371953B2 (ja) 1999-03-05 2003-01-27 日本電気株式会社 Usbネットワーク構成システム
US7502878B1 (en) * 2003-06-27 2009-03-10 Cypress Semiconductor Corporation Method and apparatus for switching USB devices between multiple USB hosts
JP5108261B2 (ja) * 2006-07-11 2012-12-26 株式会社リコー 情報処理装置およびデータ通信装置
JP5176764B2 (ja) 2008-08-04 2013-04-03 株式会社リコー データ通信システム、画像処理システム、及びデータ通信方法
JP5232602B2 (ja) 2008-10-30 2013-07-10 株式会社日立製作所 ストレージ装置、及びストレージコントローラ内部ネットワークのデータ経路フェイルオーバー方法
JP5266590B2 (ja) 2009-09-18 2013-08-21 株式会社日立製作所 計算機システムの管理方法、計算機システム及びプログラム
US8838907B2 (en) * 2009-10-07 2014-09-16 Hewlett-Packard Development Company, L.P. Notification protocol based endpoint caching of host memory
JP2011100412A (ja) * 2009-11-09 2011-05-19 Hitachi Ltd 計算機装置及びその制御方法
JP5299559B2 (ja) 2010-03-19 2013-09-25 富士通株式会社 情報処理装置及び情報処理装置のデバイス情報収集処理方法
WO2011141963A1 (en) * 2010-05-13 2011-11-17 Hitachi, Ltd. Information processing apparatus and data transfer method
JP2012146105A (ja) 2011-01-12 2012-08-02 Hitachi Ltd 計算機システム
US20130179621A1 (en) * 2012-01-06 2013-07-11 Glenn Willis Smith Extensible daisy-chain topology for compute devices
WO2013136522A1 (ja) 2012-03-16 2013-09-19 株式会社日立製作所 計算機システム及び計算機間のデータ通信方法
US8554963B1 (en) * 2012-03-23 2013-10-08 DSSD, Inc. Storage system with multicast DMA and unified address space
JP5928087B2 (ja) 2012-03-29 2016-06-01 富士通株式会社 スイッチ、情報処理装置および通信制御方法
CN103117929B (zh) * 2013-01-31 2015-12-23 中国科学院计算技术研究所 一种基于PCIe数据交换的通信方法及系统

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060173986A1 (en) * 2005-01-17 2006-08-03 Junichi Ikeda Communication apparatus, electronic apparatus, imaging apparatus
US20070220193A1 (en) * 2006-03-17 2007-09-20 Junichi Ikeda Data communication circuit and arbitration method
CN101090323A (zh) * 2006-06-14 2007-12-19 国际商业机器公司 利用流量控制的交换机中的存储设备分配管理方法和系统
CN101501660A (zh) * 2006-08-09 2009-08-05 日本电气株式会社 因特网连接交换机和因特网连接系统
CN101594306A (zh) * 2008-05-30 2009-12-02 英特尔公司 为分组报头提供前缀
CN103210589A (zh) * 2010-09-21 2013-07-17 英特尔公司 在芯片上系统中结合独立逻辑块
CN103098428A (zh) * 2012-10-27 2013-05-08 华为技术有限公司 一种实现pcie交换网络的报文传输方法、设备、系统和存储介质

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109308281A (zh) * 2018-07-16 2019-02-05 郑州云海信息技术有限公司 一种gpu集群和一种计算系统

Also Published As

Publication number Publication date
US20150278142A1 (en) 2015-10-01
CN106533992B (zh) 2020-01-17
US20160132452A1 (en) 2016-05-12
US10013377B2 (en) 2018-07-03
JP2016036149A (ja) 2016-03-17
JP2015186263A (ja) 2015-10-22
CN104954221B (zh) 2016-12-28
JP5819554B2 (ja) 2015-11-24
EP2924935B1 (en) 2016-11-30
EP2924935A1 (en) 2015-09-30
EP3151493B1 (en) 2018-08-29
US9460039B2 (en) 2016-10-04
CN106533992A (zh) 2017-03-22
US9003090B1 (en) 2015-04-07
JP6328596B2 (ja) 2018-05-23
EP3151493A1 (en) 2017-04-05

Similar Documents

Publication Publication Date Title
CN104954221A (zh) 用于全连接网格拓扑结构的高速pci架构路由
US20220011940A1 (en) Packet routing between memory devices and related apparatuses, methods, and memory systems
EP3239984B1 (en) Methods and systems for analyzing record and usage in post package repair
US9350656B2 (en) Systems and methods for packet routing
US10754588B2 (en) Performing data operations in a storage area network
US20170109299A1 (en) Network computing elements, memory interfaces and network connections to such elements, and related systems
CN110365604A (zh) 储存设备及其队列管理方法
EP3278235B1 (en) Reading data from storage via a pci express fabric having a fully-connected mesh topology
CN105874758A (zh) 内存访问方法、交换机及多处理器系统
US9436403B1 (en) Memory controller with on-chip linked list memory
EP3278230B1 (en) Writing data to storage via a pci express fabric having a fully-connected mesh topology
EP3822776A1 (en) System and method for transaction broadcast in a network-on-chip
US10614019B2 (en) Method and system for fast ordered writes with target collaboration
CN105745900B (zh) 访问文件的方法、分布式存储系统和网络设备
CN108804029B (zh) 使用原子多播的快速排序写入的方法和系统
US11210254B2 (en) Methods, electronic devices, storage systems, and computer program products for storage management
KR101846726B1 (ko) 프로세서간의 통신을 지원하는 시스템 반도체 mmr 칩

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
TR01 Transfer of patent right

Effective date of registration: 20180802

Address after: Massachusetts, USA

Patentee after: EMC Intellectual Property Holdings Ltd.

Address before: Massachusetts, USA

Patentee before: EMC Corp.

Effective date of registration: 20180802

Address after: Massachusetts, USA

Patentee after: EMC Corp.

Address before: California, USA

Patentee before: DSSD, INC.

TR01 Transfer of patent right