JP2015186263A - 十分に接続されたメッシュトポロジーのためのPCIExpressファブリックルーティング - Google Patents

十分に接続されたメッシュトポロジーのためのPCIExpressファブリックルーティング Download PDF

Info

Publication number
JP2015186263A
JP2015186263A JP2015055866A JP2015055866A JP2015186263A JP 2015186263 A JP2015186263 A JP 2015186263A JP 2015055866 A JP2015055866 A JP 2015055866A JP 2015055866 A JP2015055866 A JP 2015055866A JP 2015186263 A JP2015186263 A JP 2015186263A
Authority
JP
Japan
Prior art keywords
tlp
layer switch
hub
port
pcie fabric
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
JP2015055866A
Other languages
English (en)
Other versions
JP5819554B2 (ja
Inventor
ジェフリー・ベンジャミン・デイビス
Benjamin Davis Jeffrey
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.)
DSSD Inc
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
Publication of JP2015186263A publication Critical patent/JP2015186263A/ja
Application granted granted Critical
Publication of JP5819554B2 publication Critical patent/JP5819554B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (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

【課題】2つのシステムが、独立した2つのシステムを可能とするための、インターフェース接続可能とするための十分なハードウェア及び/又はソフトウェアを提供する。
【解決手段】PCIeファブリック100は、IO層スイッチ108A、108Bと、ハブ層スイッチ106A、106Bと、ターゲットデバイスと、を含む。IO層スイッチは、TLPをクライアントから受け取り、TLP内のアドレスが第1のIO層スイッチ内のいずれのマルチキャスト・アドレス範囲とも対応付けられず、第1のIO層スイッチ内のいずれの下りポートとも対応付けられない決定に基づき、TLPを、第1のハブ層スイッチにIO層スイッチ内の上りのポートを介してルーティングする。ハブ層スイッチは、TLPがマルチキャストグループと対応付けられる決定に基づき、書き換えられたTLPを生成し、ターゲットデバイスにハブ層スイッチ上の下りポートを介してルーティングする。
【選択図】図1

Description

背景
2つのシステムが、通信する独立した2つのシステムを可能とするために、それぞれのシステムは、2つのシステムがインターフェース接続可能とするための十分なハードウェアおよび/またはソフトウェアを含む必要がある。
概要
一般的に、1つの局面では、本発明は、第1のIO層スイッチと第2のIO層スイッチとを備える入出力(I/O)層と、複数のハブ層スイッチを備えるハブ層であって、複数のハブ層スイッチが第1のハブ層スイッチと第2のハブ層スイッチとを備え、第1のIO層スイッチが第1のリンクを用いて第1のハブ層スイッチに接続され、第1のIO層スイッチがクロスリンクを用いて第2のハブ層スイッチに接続される、ハブ層と、を備えるPCIeファブリックに関する。PCIeファブリックは、複数のターゲットデバイスをさらに備え、各ターゲットデバイスは複数のハブ層スイッチの1つに接続され、第1のハブ層スイッチが、第2のリンクを用いて複数のターゲットデバイスの第1のターゲットデバイスに接続され、第1のハブ層スイッチが、第3のリンクを用いて複数のターゲットデバイスの第2のターゲットデバイスに接続される。第1のIO層スイッチは、トランザクション層パケット(TLP)をクライアントから受け取り、TLP内のアドレスが、第1のIO層スイッチ内のいずれのマルチキャスト・アドレス範囲とも対応付けられていないという第1の決定を行い、TLP内のアドレスが、第1のIO層スイッチ内のいずれの下りポートとも対応付けられていない、という第2の決定を行い、第1の決定と第2の決定とに基づき、TLPを、第1のリンクを用いて、第1のIO層スイッチ上の第1の上りポートを介して、第1のハブ層スイッチにルーティングするよう構成される。第1のハブ層スイッチは、第1のIO層スイッチから、第1の下りポートでTLPを受け取り、TLPが第1のマルチキャストグループと対応付けられている、という第3の決定を行い、第3の決定に基づき、第1の書き換えられたTLPを生成し、第1の書き換えられたTLPを、第1のターゲットデバイスに第2のリンクを用いて第1のハブ層スイッチ上の第2の下りポートを介してルーティングし、第2の下りポートは第1のマルチキャストグループの受信者であるよう構成される。
一般的に、1つの局面では、本発明は、第1のIO層スイッチと第2のIO層スイッチとを備える入出力(I/O)層と、複数のハブ層スイッチを備え、複数のハブ層スイッチが第1のハブ層スイッチと第2のハブ層スイッチとを備え、第1のIO層スイッチが第1のリンクを用いて第1のハブ層スイッチに接続され、第1のIO層スイッチがクロスリンクを用いて第2のハブ層スイッチに接続されるハブ層と、を備えるPCIeファブリックであって、PCIeファブリックは、複数のターゲットデバイスと動作可能に接続され、各複数のターゲットデバイスが複数のハブ層スイッチの1つに接続され、第1のハブ層スイッチが、第2のリンクを用いて複数のターゲットデバイスの第1のターゲットデバイスに接続され、第1のハブ層スイッチが、第3のリンクを用いて複数のターゲットデバイスの第2のターゲットデバイスに接続されるPCIeファブリックに関する。第1のIO層スイッチは、トランザクション層パケット(TLP)をクライアントから受け取り、TLP内のアドレスが、第1のIO層スイッチ内のいずれのマルチキャスト・アドレス範囲とも対応付けられていない、という第1の決定を行い、TLP内のアドレスが、第1のIO層スイッチ内のいずれの下りポートとも対応付けられていない、という第2の決定を行い、第1の決定と第2の決定とに基づき、TLPを、第1のリンクを用いて、第1のIOスイッチ上の第1の上りポートを介して、第1のハブ層スイッチにルーティングするよう構成される。第1のハブ層スイッチは、第1のIO層スイッチから、第1の下りポートでTLPを受け取り、TLPが第1のマルチキャストグループと対応付けられている、という第3の決定を行い、第3の決定に基づき、第1の書き換えられたTLPを生成し、第1の書き換えられたTLPを、第1のターゲットデバイスに第2のリンクを用いて第1のハブ層スイッチ上の第2の下りポートを介してルーティングし、第2の下りポートは第1のマルチキャストグループの受信者であるよう構成される。
本発明の他の局面は、以下の説明と添付された請求項から明らかになるだろう。
本発明の1つあるいは複数の実施形態による、PCIeファブリックを含むシステムを示す図である。 本発明の1つあるいは複数の実施形態による、入出力(IO)層スイッチを示す図である。 本発明の1つあるいは複数の実施形態による、ハブ層スイッチを示す図である。 本発明の1つあるいは複数の実施形態による、PCIeファブリックを構成する方法を示す図である。 本発明の1つあるいは複数の実施形態による、IO層スイッチによってトランザクション・レイヤ・パケット(TLP)を処理する方法を示す図である。 本発明の1つあるいは複数の実施形態による、ハブ層スイッチによってトランザクション・レイヤ・パケットを処理する方法を示す図である。 本発明の1つあるいは複数の実施形態による、PCIeファブリックに接続された永続記憶モジュールによって発行されるTLPを処理する方法を示す図である。
詳細な説明
本発明の具体的実施態様が、添付された図面を参照して、以下に詳細に記述される。以下の実施形態の詳細な説明では、本発明のより完全な理解のために、多数の具体的実施態様が提供されるだろう。しかしながら、当業者とっては、本発明はこれらの具体的な詳細なしに実現してもよいことが明らかであろう。他の例では、説明を不要に複雑化させるのを避けるため、周知の機能は詳細には説明されていない。
以下の図1−7の説明では、図面に関連して説明されたいずれのコンポーネントも、本発明のさまざまな実施態様において、他のいずれの図に関して説明された1つあるいは複数の同様の名称のコンポーネントと同等であってもよい。簡潔にするために、これらのコンポーネントの説明は、各図に対して繰り返されないだろう。したがって、各図のコンポーネントの各すべての実施態様が参考として援用され、1以上の同様の名称のコンポーネントを有する他のすべての図に任意に存在すると仮定される。加えて、本発明のさまざまな実施形態によると、図のコンポーネントのいずれの説明も、他のいずれの図の対応する同様の名称のコンポーネントに関して説明された実施態様に加えて、または組み合わせて、または代わりに実施してもよい任意の実施態様と解すべきである。
一般に、本発明の実施態様は、少なくとも2つの層間で十分に接続されたメッシュトポロジを形成するために接続された、少なくとも2つのスイッチの層を含むPCIeファブリックに関する。さらに、本発明の実施態様は、PCIeファブリック内の1つのスライスに接続されたクライアントが、メモリ、ネットワークエンドポイントデバイス、および/またはPCIeファブリック内の異なるスライス内の永続記憶デバイス上において(例えば、読み書き動作といった)動作を行うことを可能とするPCIeファブリックに関する。
典型的なコミュニケーション・ファブリック(たとえば、イーサネット(登録商標)あるいはインフィニバンド)では、リクエストは、各エンドポイントデバイスに固有のエンドポイントアドレスを対応付け、エンドポイントアドレスをリクエストの一部として特定することによって、コミュニケーションファブリック内のスイッチ間をルーティングされる。PCIeファブリック内では、読み書き動作は、エンドポイントアドレスではなく、むしろアクセスされたメモリアドレスに基づきファブリックスイッチ間をルーティングされる。結果として、十分に接続されたメッシュのためのアドレスに基づくルーティングの典型的構成は、すべてのクライアントがすべてのエンドポイントデバイスにアクセスすることを許可するとは限らない。本発明の1つあるいは複数の実施形態は、この制限を克服する仕組みを提供する。特に、アドレスに基づくルーティングは、すべてのクライアントがすべてのエンドポイントにアクセスする(後述の)層間で十分に接続されたメッシュを実現するために使用されてもよい。
本発明の1つあるいは複数の実施態様では、PCIeファブリック内のコンポーネントはPeripheral Component Interconnect Express(PCIe)規格を、通信および/または実施する。本発明の実施態様は、いずれの従来、現行、あるいは将来のPCIe規格のバージョンに限定されない。さらに、本発明の実施形態は、本発明のさまざまな実施態様を実施するために使用されるPCIe規格の機能と同様の機能を実施する他の規格とともに実施されてもよい。
図1は、本発明の1つあるいは複数の実施形態による、PCIeファブリックを含むシステムを示す。PCIeファブリック(100)は、2つ以上のスライス(104A、104B)からなり、各スライスは、プロセッサ(112A、112B)と、1以上のクライアント(102A−102D)と、に直接接続される。前述の各コンポーネントは下記に説明される。
本発明の1つの実施態様では、各クライアント(102A−102D)は、プロセッサ(あるいは他のタイプのプロセッシング・コンポーネント)と、メモリと、デバイスをPCIeファブリック(100)に接続可能とする物理インターフェース(複数可)と、を含む、物理的デバイスである。さらに、各クライアントは、本発明の1つあるいは複数の実施態様の実施に必要なPCIe規格(あるいはその一部)を実施する機能性を含む。クライアントはまた、トランザクション・レイヤ・パケット(TLP)を送信および/または受信する機能性を含む。TLPは、PCIe規格にしたがって定められるパケットの種類に対応する。本発明の1つの実施形態では、TLPは、クライアントがPCIeファブリックから読み出してPCIeファブリックにデータを書き込み可能とする。別の言い方では、TLPは、クライアントがPCIeファブリック内のロケーション間とデータを転送することを可能とする。本発明の1つの実施形態では、1以上のクライアントがPCIeエンドポイントとして、すなわち、トランザクションが由来するデバイスおよび/またはトランザクションがターゲットとするデバイスとして、動作する。各クライアントは、PCIeファブリックにリンク、すなわち、クライアントとPCIeファブリック間の物理的接続、を介して接続されていてもよい。
図1の説明を続けると、各スライス(104A、104B)は、入出力(I/O)層スイッチ(ITS)(108A、108B)と、ハブ層スイッチ(HTS)(106A、106B)と、1以上の永続記憶モジュール(PSM)と、を含む。これらの各コンポーネントについては、下記に説明する。
ITSに関して、各ITSは、1以上のクライアント(102A−102D)に接続された物理的なPCIeスイッチである。各ITSもまた、ITSが置かれた同スライス内のHTSに接続される。加えて、各ITSは、ITSが置かれたものと異なるスライス内の1以上のHTSに接続されてもよい。本発明の1つの実施形態では、各ITSはPCIファブリック内のすべてのHTSに接続され、PCIeファブリック内の層間で十分に接続されたメッシュをもたらす。本発明の実施形態は、本発明から乖離せずに、層間の十分に接続されたメッシュなしに実施してもよい。
本発明の1つの実施形態では、各ITSは、(i)接続されたクライアントからTLPを受け取り、アドレスルーティングを用いて、ITS上の適切な出口ポート(上りポート、あるいは下りポートの1つ、のいずれか)にTLPをルーティングし、(ii)ITSが接続された1以上のHTSからTLPを受け取り、アドレスルーティングを用いてITS上の適切な出口ポート(例示的に、下りポート)にルーティングするよう、構成される。たとえば、図1において、ITS B(108B)は、TLPをクライアントC(102C)と、クライアントD(102D)と、HTS A(106A)と、HTS B(106B)と、から受け取ってもよい。ITSについての追加的な詳細が、以下に、図2に関して提供される。
HTSに関して、各HTSは、1以上のITS(108A−108B)と、1以上の永続記憶モジュール(PSM)(110A−110D)と、に接続された、物理的なPCIeスイッチである。各HTSは、HTSが置かれたものと同スライス内のITSに接続される。加えて、各HTSは、HTSが置かれたものと異なるスライス内の、0以上のITSに接続してもよい。本発明の1つの実施形態では、各HTSは、PCIeファブリック内の他のすべてのITSに接続され、PCIeファブリック内の層間で十分に接続したメッシュをもたらす。各HTSはまた、プロセッサに、その(図示しない)ルート・ポートを介して接続してもよい。本発明の実施形態は、層間で十分に接続したメッシュなしに本発明から乖離することなく、実施されてもよい。
本発明の1つの実施形態では、各HTSは、(i)接続された永続記憶モジュール(PSM)からTLPを受け取り、アドレス・ルーティングを用いてTLPをHTS上の適切な出口ポート(例示的に、下りポート)にルーティングし、(ii)HTSが接続された1以上のITSからTLPを受け取り、アドレスルーティングを用いてHTS上の適切な出口ポート(上りポート、あるいは1以上の下りポート、のいずれか)にTLPをルーティングするよう、構成される。
たとえば、図1において、HTS B(106B)は、PSM C(110C)と、PSM D(110D)と、ITS A(108A)と、ITS B(108B)と、からTLPを受け取ってもよい。HTSについての追加の詳細が、以下に図3を参照して説明される。
本発明の1つの実施形態では、各永続記憶モジュール(100A−110D)は、(図示しない)永続記憶デバイスと、任意に(図示しない)揮発性メモリ(たとえば、ダイナミック・ランダム・アクセス・メモリ(DRAM)、シンクロナスDRAM、SDR SDRAM、DDR SDRAM)と、を含む。永続記憶デバイスは、NAND型フラッシュメモリ、NOR型フラッシュメモリ、磁気RAMメモリ(M−RAM)、スピントルク型磁気RAMメモリ(ST−MRAM)、相変化メモリ(PCM)、メモリスタメモリ、その他の不揮発ストレージ・クラス・メモリ・デバイス(SCM)として定義されるいずれのメモリ、磁気ディスク、光ディスクを含んでもよいが、これらに限定されない。当業者は、本発明の実施形態が、ストレージ・クラス・メモリに限定されないことを理解できるであろう。本発明の1つの実施形態では、各PSMは1つのスライスのみの一部である。
PCIeファブリックの説明を続けると、上述の通り、PCIeファブリック内の各スライスは、少なくとも1つのプロセッサ(112A、112B)に直接接続されている。各プロセッサは、命令を実行するように構成された単一のコア、あるいは命令を実行するように構成された複数のコアを有する複数の電子回路である。プロセッサは、複合命令セット(CISC)アーキテクチャ、あるいは縮小命令セット(RISC)アーキテクチャを用いて、実施されてもよい。本発明の1つあるいは複数の実施形態では、プロセッサは(PCIe規格によって定義されるような)(図示しない)ルート複合体を含む。ルート複合体は、プロセッサを、少なくとも1つのスライスと、PCIeファブリックを介してアクセス可能であるが、PCIeファブリック内のいずれのスライスの一部ではないメモリ(114A、114B)(たとえば、ダイナミックRAM(DRAM)、シンクロナスDRAM、SDR SDRAM、DDR SDRAM)と、に接続する。
本発明の1つの実施形態では、PCIeファブリック内のプロセッサ(112A、112B)は、たとえばIntel(登録商標)QuickPath相互接続といったプロセッサ相互接続(116)を用いて、直接通信可能である。当業者は、本発明から乖離せずに、プロセッサ(112A、112B)間の直接通信を許可するために、その他のポイントツーポイントの通信機構が使用されてもよいことを理解できるだろう。
発明は、図1において示されるシステムに限定されない。
図1に示すように、クライアントは、HTSに接続されたITSとPSMとに接続されるが、本発明の実施形態は、クライアントが、ITSに接続されHTSとPSMとに接続されるように実施されてもよい。
本発明の別の実施形態では、PCIeファブリックは、いずれのPSMも含まないように実施されていてもよく、むしろ、ITSとHTSとの両方が、別々のクライアントの集合に接続し、PCIeファブリックがクライアント間の通信を促進するよう実施されてもよい。
さらに、図1に示されるPCIeファブリックは、2つのスライスと、2つのプロセッサと、4つのPSMと、のみを含むが、PCIeファブリックは、本発明から乖離せずに、各上述のコンポーネントをより多くまたは少なく有するよう実施されてもよい。加えて、図1内のPCIeファブリックは、4つのクライアントと、2つのメモリと、に接続されているが、本発明の実施形態は、本発明から乖離せずに、PCIeファブリックが、より多くのまたは少ないクライアントおよび/またはメモリに接続可能に実施されてもよい。
さらに、本発明の実施形態は、記憶デバイス(たとえば、PSM(110A−110D))を含むPCIeファブリックに関して記述されているが、本発明の実施形態は、いずれの2つのデバイスがPCIeファブリックを使用して通信可能に実施されてもよい。たとえば、本発明の1つの実施形態では、図1に示されるクライアントは、ブレードサーバーであってもよく、ブレードサーバーはいずれの物理的なNICカードを含まず、PSMはネットワーク・エンドポイント・デバイスに置き換えられてもよい。
本例では、ネットワークエンドポイントデバイスは、ネットワークプロトコルを用いて、ネットワーク(すなわち、有線ネットワーク、無線ネットワーク、それらの組み合わせ)と、またPCIeを介してPCIeファブリックと、の両方でインターフェース接続するよう構成されたデバイスである。ネットワークエンドポイントデバイスの1つの例は、PICe NICカードである。ネットワークエンドポイントデバイスはそれぞれ、(上述のPSMに関して説明された)永続記憶デバイスの組み合わせと、エンドポイント記憶デバイスメモリ(たとえば、ダイナミックRAM(DRAM)、シンクロナスDRAM、SDR SDRAM、DDR SDRAM、あるいは他のいずれのタイプの揮発性メモリ)と、を含んでもよい。
例を続けると、PCIeファブリックは、ブレードサーバーが1以上のネットワークエンドポイントデバイスと通信するのを可能にするだろう。この実施形態は、ブレードサーバーが1以上のネットワークエンドポイントデバイスを効率的に共有することを可能とするだろう。本発明はこの例に限定されない。
別の例では、1つあるいは複数の本発明の実施形態では、PSMは、エンドポイント記憶デバイス(すなわち、データを記憶し、クライアントからの読書きリクエストをサービスする機能性を含むデバイス)に置き換えられてもよい。エンドポイント記憶デバイスはそれぞれ、(上述のPSMに関して説明された)永続記憶デバイスの組み合わせと、エンドポイント記憶デバイスメモリ(たとえば、ダイナミックRAM(DRAM)、シンクロナスDRAM、SDR SDRAM、DDR SDRAM、あるいは他のいずれのタイプの揮発性メモリ)と、を含んでもよい。エンドポイント記憶デバイスの1つの例は、記憶アプライアンスである。発明はこの例に限定されない。
さらに、本発明の実施形態は、PCIeファブリックを介して通信する2以上のデバイスを含めるよう拡張してもよい。一般的なケースでは、(図1において示された)PSMは、ターゲットデバイスに一般化してもよく、PSMと、ネットワークエンドポイントデバイスと、エンドポイント記憶デバイスと、PCIeを用いて通信可能なその他のいずれのデバイスと、を含んでもよい。
PCIeファブリックは図1において、PSM(あるいはより一般的にターゲットデバイス)を含むものとして示されているが、PCIeファブリックは、ターゲットデバイスを含まないように実施されてもよく、むしろ、PCIeファブリックはターゲットデバイスに接続するために必要な物理的コンポーネントのみを含むよう実施されてもよい。
図2は、1以上の本発明の実施形態による入出力(IO)層(ITS)スイッチを示す。ITS(108B)は、1つの上り(US)ポート(USポート1(126))と、1以上の下り(DS)ポート(DSポート1(120)、DSポート2(122))、DSポート3(124))と、を含む。本発明の1つの実施形態では、ポートは、(前述の)ルート複合体に向かう場合、USポートに指定される。代替的に、ポートは、ポートがルート複合体から離れるときには、DSポートに指定される。1つの実施形態では、(下りまたは上りのいずれかの)ポートは、ITSとデバイス(たとえば、クライアント、PCIeスイッチ(たとえば、ITSあるいはHTS)、等)との間の物理インタフェースである。ポートはリンク(すなわち物理的接続)を介してデバイスに接続する。デバイスがITSと異なるスライスにあるとき、リンクはクロスリンクと呼ばれる。さらに、図2においては単一ポートとして示されるが、各ポートは、TLPを送信するときには出口ポートとして、TLPを受け取るときには入口ポートとして動作してもよい。代替的に、図2において示されるポートは、代わりに、それぞれが、2つの別個のポート―たとえば入口ポートと出口ポートといったポート、として実施されてもよい。
図2の説明を続けると、USポート(USポート1(126))はリンクを介してITSと同スライス上のHTSに接続される。USポート(126)はまた、PCIeファブリック(100)内のすべてのスライス(図1内の104A、104B)内の(PCIeファブリック内のPSMのすべての永続記憶デバイスと揮発性メモリとを含む)すべてのメモリの全アドレス範囲を含むアドレス範囲と、PCIeファブリックに接続するすべてのクライアントの(すべての永続記憶デバイスと揮発性メモリとを含む)メモリと、に対応付けられる。前述のアドレス範囲は、プロセッサ(112A、112B)に直接取り付けられたメモリ(114A、114B)を含まない。前述のアドレス範囲は、連続するアドレス範囲であってもよく、複数の不連続のアドレス範囲から構成されてもよい。
本発明の1つの実施形態では、ITS内の少なくとも1つのDSポート(DSポート3(124))が、クロスリンク(118A)を介して、異なるスライス(たとえば、スライスA)のHTS(たとえば、図2のハブ層スイッチA)に接続され、そのスライス(たとえば、図2のスライスA)と対応付けられた(対応するPSM内の永続記憶デバイスを含む)メモリと、そのスライス(たとえば、図2のスライスA)内のITSと接続するすべてのクライアントの(すべての永続記憶デバイスと揮発性メモリとを含む)メモリと、のみを含むアドレス範囲と対応付けられる。前述のアドレス範囲は、連続するアドレス範囲であってもよく、複数の不連続のアドレス範囲から構成されてもよい。より一般的に、PCIeファブリック内で第2のスライスにクロスリンクを介して接続する、第1のスライス内のITS内のDSポートは、それが接続する第2のスライスのメモリのみを含むアドレス範囲に対応付けられる。PCIeファブリックの実施に応じて、各ITSは複数のDSポートを有してもよく、そのような1以上のDSポートは、クロスリンクを介して、異なるスライスのHTSに接続される。ITSはまた、クライアントに接続されたDSポートを含む。本発明の1つの実施形態では、クライアント(たとえば、クライアントC、クライアントD)に接続された各DSポート(120、122)は、それが接続されたクライアントのアドレス範囲のみに対応付けられる。
ITS(108B)は少なくとも1つのマルチキャストグループを実施してもよい。本発明の1つの実施形態では、マルチキャストグループは、マルチキャスト・アドレス範囲に対応付けられ、このマルチキャストアドレス範囲は、USポート(USポート1(126))に対応付けられたアドレス範囲とは異なってもよい(あるいはそのサブセットであってもよい)。さらに、少なくとも1つのマルチキャストグループの唯一の受信者がUSポート(USポート1(126))である。
図2において示されないが、本発明の1つの実施形態では、ITSは同スライス内のITSとHTS間のクロスリンクを含み、クロスリンクはそのスライス内のPSM内の(すべての永続記憶デバイスと揮発性メモリとを含む)すべてのメモリの全アドレス範囲を含むアドレス範囲に対応付けられる。前述のアドレス範囲は、連続するアドレス範囲であってもよく、複数の不連続のアドレス範囲から構成されてもよい。
本発明は図2において示されるシステムに限定されない。
図3は、本発明の1以上の実施形態によるハブ層スイッチを示す。HTS(106B)は、1つの上り(US)ポート(USポート2(136))と、1以上の下り(DS)ポート(DSポート4(130)、DSポート5(128))、DSポート6(132)、DSポート7(134))と、を含む。本発明の1つの実施形態では、ポートは、(前述の)ルート複合体に向かう場合、USポートに指定される。代替的に、ポートは、ポートがルート複合体から離れるときには、DSポートに指定される。1つの実施形態では、(下りまたは上りのいずれかの)ポートは、HTSとデバイス(たとえば、PSM、プロセッサ、PCIeスイッチ(たとえば、ITSあるいはHTS)、等)との間の物理インタフェースである。ポートはリンク(すなわち物理的接続)を介してデバイスに接続する。デバイスがHTSと異なるスライスにあるとき、リンクはクロスリンクと呼ばれる。さらに、図3では単一ポートとして示されるが、各ポートは、TLPを送信するときには出口ポートとして、TLPを受け取るときには入口ポートとして動作してもよい。代替的に、図3において示されるポートは、代わりに、それぞれが、2つの別個のポート―たとえば入口ポートと出口ポートといったポート、として実施されてもよい。
図3の説明を続けると、USポート(USポート2(136))はリンクを介してプロセッサ(たとえば図3のプロセッサB)に接続する。USポート(136)もまた、PCIeファブリック(100)内のすべてのスライス(図1内の104A、104B)内の(PCIeファブリック内のPSM内のすべての永続記憶デバイスと揮発性メモリとを含む)すべてのメモリの全アドレス範囲を含むアドレス範囲と、PCIeファブリックに接続するすべてのクライアントの(すべての永続記憶デバイスと揮発性メモリとを含む)メモリと、に対応付けられる。前述のアドレス範囲は、PCIeファブリック内のプロセッサ(112A、112B)に直接取り付けられたメモリ(114A、114B)を含まない。前述のアドレス範囲は、連続するアドレス範囲であってもよく、複数の不連続のアドレス範囲から構成されてもよい。
本発明の1つの実施形態では、少なくとも1つのDSポート(DSポート5(128))が、クロスリンク(118B)を介して、異なるスライスのITS(たとえば、図3のIO層スイッチB)に接続され、そのスライス(たとえば、図3のスライスA)と対応付けられた(対応するPSM内の永続記憶デバイスを含む)メモリと、そのスライス(たとえば、図3のスライスA)内のITSと接続するすべてのクライアントの(すべての永続記憶デバイスと揮発性メモリとを含む)メモリと、のみを含むアドレス範囲と対応付けられる。前述のアドレス範囲は、連続するアドレス範囲であってもよく、複数の不連続のアドレス範囲から構成されてもよい。より一般的に、PCIeファブリック内で第2のスライスにクロスリンクを介して接続する、第1のスライス内のHTS内のDSポートは、それが接続する第2のスライスのメモリのみを含むアドレス範囲に対応付けられる。PCIeファブリックの実施に応じて、各ITSは多数のDSポートを有してもよく、1以上のそのようなDSポートは、クロスリンクを介して、異なるスライスのITSに接続される。
HTSはまた、PSM(110C、110D)に接続されたDSポートを含む。本発明の1つの実施形態では、PSM(たとえば、PSM C、PSM D)に接続された各DSポート(132、134)は、それが接続されたPSMのアドレス範囲のみに対応付けられる。加えて、HTS(108B)は、HTSと同スライスのITSに接続されたDSポート(DSポート4(130))を含む。
HTS(106B)もまた、1以上のマルチキャストグループを実施してもよい。PCIeファブリックの実施に応じて、各マルチキャストグループは、受信者として、1以上のPSMと対応付けられたDSポートと、プロセッサに接続されたUSポートとを含む。たとえば、1つのマルチキャストグループは、DSポート6と、DSポート7と、USポート2とを受信者として含んでもよい。別の例では、マルチキャストグループは、DSポート6とDSポート7とを受信者として含んでもよい。本発明は上述の例に限定されない。各マルチキャストグループは、固有のマルチキャスト・アドレス範囲に対応付けられ、このマルチキャスト・アドレス範囲は、USポート(USポート2(126))に対応付けられたアドレス範囲(あるいはそのサブセット)や、いずれの下りポートに対応付けられたアドレス範囲や、その他のいずれのマルチキャスト・アドレス範囲とは異なってもよい。
図4−7は1以上の本発明の実施形態によるフローチャートを示す。フローチャート内のさまざまなステップが継時的に示され記述されるが、当業者は、ステップのすべてまたは一部が異なる順序で実行されてもよく、連結されまたは削除されてもよく、ステップのすべてまたは一部が並列に実行されてもよいことを、理解できるであろう。本発明の1つの実施形態では、図4−7に示される各ステップは図4−7に示される他のいずれのステップと平行に行われてもよい。
図4は、本発明の1つあるいは複数の実施形態によるPCIeファブリックを構成する方法を示す。ステップ400では、PCIeファブリック内のすべてのITSとHTS内の各上りポートに対応付けられたアドレス範囲は、同じアドレス範囲、すなわち、PCIeファブリック内のすべてのスライス内の(PCIeファブリック内のPSM内のすべての永続記憶デバイスと揮発性メモリを含む)すべてのメモリと、PCIeファブリックに接続するすべてのクライアントの(すべての永続記憶デバイスと揮発性メモリを含む)メモリと、の全アドレス範囲を含むアドレス範囲に設定される。前述のアドレス範囲は、連続するアドレス範囲であってもよく、複数の不連続のアドレス範囲から構成されてもよい。前述のアドレス範囲は、プロセッサに直接取り付けられたメモリを含まない。本発明の1つの実施形態では、上述の「アドレス範囲」はアドレス範囲の集合として実施されてもよい。本発明の1つの実施形態では、アドレス範囲の集合は32−ビットアドレス範囲および/または64−ビットアドレス範囲を含んでもよい。
ステップ402では、PCIeファブリックのために1以上のマルチキャストグループが生成される。マルチキャストグループの生成は、(i)各マルチキャストグループのマルチキャスト・アドレス範囲を特定することと(ii)各マルチキャスト・アドレス・グループの受信者を特定することと、を含む。上述のように、各ITSは、少なくとも1つのマルチキャスト・アドレス・グループに対応付けられてもよく、このマルチキャスト・アドレス・グループは唯一の受信者−ITS内のUSポート、を有する。さらに、上述のとおり、HTSは、複数のマルチキャスト・アドレス・グループを実施してもよく、この各マルチキャストグループの受信者は、(リンクおよび/またはクロスリンクに接続されてもよい)DSポートの異なる組み合わせおよび/またはUSポートを含む。
ステップ404において、アドレス範囲がクロスリンクに接続する各DSポートに対して設定されるが、そのようなDSポートは、上述の通り、それらが接続されたスライスに対応するアドレス範囲に対応付けられる。ステップ406では、特定のPSMに対応するアドレス範囲が、PSMに接続された各出口DSポートに対し設定される。ステップ408では、特定のクライアントに対応するアドレス範囲が、クライアントに接続された各出口DSポートに対し設定されてもよい。
ステップ410では、ITSに接続されたすべてのクライアントに対するすべてのクライアント・メモリを含むアドレス範囲が、ITSに接続されたHTS上の各出口DSポートに対して設定される。たとえば、図2と図3とを参照すると、出口DSポート4(130)に対応するアドレス範囲(すなわちTLSがHTSからITSに送信されたとき)は、ITS(108B)に接続するすべてのクライアント(102C、102D)のメモリを含むアドレス範囲である。本発明の1つの実施形態では、ステップ410は、与えられたHTS DSポートに対しITS’ USポートにプログラムされたのと等しいアドレス範囲を設定することにより実施される。
図5は、本発明の1つあるいは複数の実施形態による、IO層スイッチによってトランザクション層パケット(TLPs)を処理するための方法を示す。ステップ500では、TLPは、クライアントから入口DSポートで受け取られ、TLPはアドレスとペイロードとに対応付けられ、アドレスはTLPをPCIeファブリック内でルーティングするために使用され、ペイロードはPSMおよび/またはメモリに格納されるべきデータを含み、あるいはTLPは、TLPをルーティングするために使用され、またPSMあるいはメモリからデータを読む開始場所も特定するアドレスに対応付けられる。TLPは、本発明から乖離することなく、その他の情報を含んでもよい。本発明の1つの実施形態では、クライアントは、TLPを生成しPCIeファブリックに発行するダイレクトメモリアドレス(DMA)エンジンを含んでもよい。
ステップ502では、入口DSポートは、TLP内のアドレスがマルチキャストアドレス範囲に対応付けられているかどうかに応じて、TLP内のアドレスがマルチキャストグループ(MCG)に対応付けられるかどうかを決定する。TLP内のアドレスが、マルチキャストグループに対応付けられる場合、プロセスはステップ508へと進み、その他の場合プロセスはステップ504へと進む。
ステップ504では、TLP内のアドレスがマルチキャストグループに対応付けられていない場合、TLP内のアドレスがクロスリンクに接続されたDSポートに対応付けられるアドレス範囲(クロスリンクアドレス範囲と呼ぶ。)内かどうかが決定される。TLP内のアドレスがクロスリンクアドレス範囲に対応付けられる場合、プロセスはステップ506に進み、その他の場合、プロセスはステップ512に進む。ステップ506では、TLPは適切なDSポートとクロスリンクとを介して、異なるスライス内のHTSに送信される。
ステップ508では、TLP内のアドレスがマルチキャストグループに対応付けられる場合、TLPのコピーがマルチキャストの各受信者に提供される。本発明の1つの実施形態では、ITS内のUSポートが唯一の受信者である。各受信者は、TLPのコピーを受信した際に、新しいアドレスを含む書き換えられたTLPを生成する機能性を含み、TLPのコピー内のアドレスは、新しいアドレスを取得するよう翻訳される。ステップ510では、TLP内のアドレスは、マルチキャスト・アドレス範囲(すなわちステップ502で使用されたマルチキャスト・アドレス範囲)内にあるかもしれない、またはないかもしれない新しいアドレスに翻訳される。翻訳の結果、新しいアドレスを含み、元のTLPと同じデータペイロードを含むTLPに書き換えられる。本発明の1つの実施形態では、書き換えられたTLP内の新しいアドレスは、元のTLP内のアドレスと同じである。ステップ512では、(i)ステップ510から書き換えられたTLP、あるいは(ii)ステップ504の元のTLPが、ITS内のUSポートを介して、ITSと同スライス内にあるHTSに送信される。本発明の1つの実施形態では、元のTLP(すなわちステップ500で受け取ったTLP)は、元のTLP内のアドレスがITS内のいずれのポートとも対応付けられておらず、マルチキャスト・アドレス範囲内にないときに、ITS内のUSポートを介してHTSに送信される。
図6は本発明の1つあるいは複数の実施形態による、ハブ層スイッチによってTLPを処理する方法を示す。
ステップ600では、TLPがHTS内の入口DSポートでクライアントから受け取られる。ここで、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内のアドレスに対応付けられるTLPがDS出口ポートから送信される。ステップ608では、TLPは、(TLP内のアドレスを翻訳することなく)プロセッサ(すなわち、HTSが置かれたスライスに接続されたプロセッサ)にHTS内のUSポートを介して送信される。
ステップ610では、TLPがマルチキャストグループに対応付けられる場合、ステップ600で受け取ったTLPのコピーが、マルチキャストの各受信者であるHTS内の各DSポートに提供される。各受信者は、TLPのコピーを受信した際に、新しいアドレスを含む書き換えられたTLPを生成する機能性を含み、TLPのコピー内のアドレスは、PSMに対応付けられ、他のマルチキャストアドレス範囲にない、新しいアドレスに翻訳される。上述の翻訳の結果、書き換えられた一組のTLPを得る。ステップ612では、書き換えられたTLPは、HTS内の対応するDSポートを介して適切なPSMに送信される。
ステップ614では、TLPがマルチキャストグループに対応付けられ、HTS内のUSポートが受信者であるとき、TLP内のアドレスはいずれのマルチキャスト・アドレス範囲にない新しいアドレスに翻訳される。その結果、前述の翻訳は、TLPの書き換えをもたらす。ステップ616では、書き換えられたTLPはUSポートを介してプロセッサに送信される。
本発明の1つの実施形態では、PSMは、HTSから(ステップ606を介して)TLPあるいは(ステップ610を介して)書き換えられたTLPを受信した際に、(i)PSM内の永続記憶デバイス内にTLPのペイロード内にあるデータを格納し、あるいは(ii)TLP内で特定されたPSM内の場所からデータを読む。さらに、本発明の1つの実施形態では、プロセッサがHTSから書き換えられたTLPを受信した際に、プロセッサは、プロセッサに直接接続されたメモリ内にTLPのペイロード内にあるデータを記憶する。
図7は、本発明の1つあるいは複数の実施形態による、PCIeファブリックに接続されたPSMによって発行されたTLP処理方法を示す。
ステップ700では、TLPは、HTS上のDSポートに接続されたPSMからHTSによって受け取られる。本発明の1つの実施形態では、TLPは、アドレスとペイロードとに対応付けられ、アドレスはTLPをPCIeファブリック内でルーティングするために使用され、ペイロードはクライアントあるいはプロセッサメモリに格納すべきデータを含み、または、TLPはTLPをルーティングするために使用され、またクライアントからデータを読み出すための開始場所も特定するためにも使用されるアドレスに対応付けられる。TLPは本発明から乖離することなく、他の情報を含んでもよい。本発明の1つの実施形態では、クライアントは、TLPを生成しPCIeファブリックに発行するダイレクトメモリアドレス(DMA)エンジンを含んでもよい。
ステップ702では、TLP内のアドレスを用いて、TLPが、TLPを受け取ったHTSと同スライスのクライアントに対してであるか、異なるスライスのクライアントに対してであるかの決定が行われる。上述の決定は、TLP内のアドレスを含むアドレス範囲に対応付けられるDSポートがHTS内にあるかどうかによって行われてもよい。TLP内のアドレスがクロスリンクアドレス範囲に対応付けられる場合、プロセスはステップ714へと進み、その他の場合、プロセスはステップ704へと進む。
ステップ704では、アドレスがクロスリンクアドレス範囲に対応付けられない場合、TLPは、TLPを発行したPSMと同スライス内のITSに接続された出口DSポート(たとえば、図3のDSポート4(130))にルーティングされる。ステップ706では、TLPは、ITS内のUSポートに接続された出口DSポートを介してITSに送信される。ステップ708では、ITSはHTSからTLPを受け取る。ステップ710では、TLPは、TLP内のアドレスを含むクライアントアドレス範囲に対応付けられる、出口DSポート(たとえば、図2のDSポート1(102C)あるいはDSポート2(102D))にルーティングされる。ステップ712では、TLPは、TLP内のアドレスを含むアドレス範囲に対応付けられるITS上の出口DSポートを介して、クライアントに送信される
ステップ714では、アドレスがクロスリンクアドレス範囲に対応付られる場合、TLPは、TLPを発行したPSMと異なるスライス内のITSに接続された出口DSポート(たとえば、図5のDSポート5(128))にルーティングされる。ステップ716では、(異なるスライス内の)ITSが、HTSからTLPを受け取る。ステップ718では、TLPは、TLP内のアドレスを含むアドレス範囲に対応付けられる出口DSポート(たとえば、図2においてクライアントAまたはクライアントBにリンクを介して接続するDSポート)にルーティングされる。ステップ720では、TLPは、TLP内のアドレスを含むアドレス範囲に対応付けられるITS上の出口DSポートを介して、クライアントに送信される。
本発明の1つの実施形態では、クライアントは、(ステップ712あるいはステップ720を介して)TLPを受信した際、(i)TLPのペイロード内にあるデータを格納し、あるいは(ii)TLPのペイロードにおいて特定されたクライアント・メモリ(あるいは永続記憶デバイス)内の場所からデータを読み出す。
以下のセクションは本発明の1つあるいは複数の実施形態による例であって、図1−3に示されるPCIeファブリックに基づく例を記述する。本例は本発明のスコープを限定することを意図しない。
例1
ITS B(図1の108B)が、USポート1(126)のみを受信者として含む、第1のマルチキャスト・アドレス範囲に対応付けられた第1のマルチキャストグループを構成しするシナリオを考える。さらに、HTS B(106B)は、(i)DSポート6(132)と、USポート2(136)と、を受信者として含む、第2のマルチキャスト・アドレス範囲に対応付けられた、第2のマルチキャストグループを構成し、(ii)DSポート6(132)と、DSポート7(134)と、を受信者として含む、第3のマルチキャスト・アドレス範囲に対応付けられた、第3のマルチキャストグループを構成し、(iii)DSポート5(128)と、DSポート7(134)と、USポート2(136)と、を受信者として含む、第4のマルチキャスト・アドレス範囲に対応付けられた、第4のマルチキャストグループを構成する。
第1のアドレスを有するTLPが、ITS B(108B)上のDSポート1によってクライアントC(102C)から受け取られるシナリオを考える。DSポート1が受信すると、第1のアドレスが第1のマルチキャスト・アドレス範囲内であるという決定がされる。したがって、TLP内のアドレスは新しいアドレスに翻訳され、書き換えられたTLPが受信者ポート(すなわち本例ではUSポート1)からHTS Bに送信される。
HTS B内のDSポート4によって受信すると、書き換えられた新しいアドレスが第2のマルチキャスト・アドレス範囲内であるという決定がされる。したがって、TLP内の新しいアドレスは、(i)第2の新しいアドレスに翻訳され、その結果書き換えられたTLPが(第2のマルチキャストグループへの受信者である)DSポート6から送信され、(ii)第3の新しいアドレスに翻訳され、その結果書き換えられたTLPが(第2のマルチキャストグループへの受信者ポートである)USポート2から送信される。
例2
ITS A(図1の108A)が、HTS A(106A)に対応づけられたUSポートのみを受信者として含む、第1のマルチキャスト・アドレス範囲に対応付けられた、第1のマルチキャストグループを構成するシナリオを考える。さらに、HTS A(106A)は、PSM A(110A)に対応付けられたDSポートと、PSM B(110B)に対応付けられたDSポートと、プロセッサA(112A)に対応付けられたUSポートと、HTS B(106B)へのクロスリンクに対応付けられたDSポートとを受信者として含む、第2のマルチキャスト・アドレス範囲に対応付けられた、第2のマルチキャストグループを構成する。加えて、HTS Bは、DSポート6(132)と、DSポート7(134)と、を受信者として含む、第3のマルチキャスト・アドレス範囲に対応付けられた、第3のマルチキャストグループを構成する。
図1を参照し、第1のアドレスを有するTLPが、クライアントAからITS Aによって受け取られるシナリオを考える。ITS Aによって受信すると、第1のアドレスが第1のマルチキャスト・アドレス範囲内である、という決定がされる。したがって、TLP内のアドレスが新しいアドレスに翻訳され、書き換えられたTLPが受信者ポート(すなわちITS A内のUSポート)からHTS Aに送信される。
HTS Aによって受信すると、書き換えられたTLP内の新しいアドレスが第2のマルチキャスト・アドレス範囲内である、という決定がされる。したがって、TLP内の新しいアドレスは、(i)第2の新しいアドレスに翻訳され、その結果、第2の新しいアドレスを有する書き換えられたTLPは、DSポートから(第2のマルチキャストグループの受信者である)PSM Aに送信され、(ii)第3の新しいアドレスに翻訳され、その結果、第3の新しいアドレスを有する書き換えられたTLPは、DSポートから(第2のマルチキャストグループの受信者である)PSM Bに送信され、(iii)第4の新しいアドレスに翻訳され、その結果、第4の新しいアドレスを有する書き換えられたTLPは、USポートから(第2のマルチキャストグループの受信者である)プロセッサに送信され、(iv)第5の新しいアドレスに翻訳され、その結果、第5の新しいアドレスを有する書き換えられたTLPは、DSポート5から(第2のマルチキャストグループの受信者である)ITS Bにクロスリンクを介して送信される。
HTS BのDSポート5によって受信すると、書き換えられたTLP内の第5のアドレスが第3のマルチキャスト・アドレス範囲である、という決定される。したがって、DSポート5が受け取ったTLP内の新しいアドレスは、(i)第6の新しいアドレスに翻訳され、その結果、書き換えられたTLPは(第3のマルチキャストグループの受信者である)DSポート6から送信され、(ii)第7の新しいアドレスに翻訳され、その結果、書き換えられたTLPは(第3のマルチキャストグループの受信者である)DSポート7から送信される。
例3
(図1において図示されない)ITS AとHTS Aとの間のクロスリンクがあるシナリオを考える。さらに、HTS A(106A)は、PSM A(110A)に対応付けられたDSポートと、PSM B(110B)に対応付けられたDSポートと、プロセッサA(112A)に対応付けられたUSポートと、を受信者として含むマルチキャスト・アドレス・グループ範囲に対応付けられたマルチキャストグループを構成する。
図1を参照し、第1のアドレスを有するTLPがITSによってクライアントAから受け取られるシナリオを考える。ITS Aによって受信されると、第1のアドレスが、ITS AとHTS Bとの間のクロスリンクに対応付けられるDSポートに対応付けられる、という決定がされる。TLPは続いて、HTS Aに、ITS AとHTS Bとの間のクロスリンクを介して送信される。
HTS Aによって受信されると、書き換えられたTLP内のアドレスがマルチキャスト・アドレス範囲である、という決定がされる。したがって、TLP内のアドレスは、(i)第1の新しいアドレスに翻訳され、その結果、第1の新しいアドレスを有する書き換えられたTLPはDSポートから(マルチキャストグループの受信者である)PSM Aに送信され、(ii)第2の新しいアドレスに翻訳され、その結果、第2の新しいアドレスを有する書き換えられたTLPは、DSポートから(第2のマルチキャストグループの受信者である)PSM Bに送信され、(iii)第3の新しいアドレスに翻訳され、その結果、第3の新しいアドレスを有する書き換えられたTLPは、USポートから(第2のマルチキャストグループの受信者である)プロセッサAに送信される。
本発明は、限られた数の実施形態を用い説明してきたが、この開示の利益を有する当業者は、他の実施形態が、本明細書に開示される本発明の範囲から逸脱することなく考案され得ることを理解するであろう。したがって、本発明の範囲は添付の特許請求の範囲によってのみ限定されるべきである。

Claims (25)

  1. 第1のIO層スイッチと第2のIO層スイッチとを備える入出力(I/O)層と、
    複数のハブ層スイッチを備え、複数のハブ層スイッチが第1のハブ層スイッチと第2のハブ層スイッチとを備え、第1のIO層スイッチが第1のリンクを用いて第1のハブ層スイッチに接続され、第1のIO層スイッチがクロスリンクを用いて第2のハブ層スイッチに接続される、ハブ層と、
    各複数のターゲットデバイスが複数のハブ層スイッチの1つに接続され、第1のハブ層スイッチが、第2のリンクを用いて複数のターゲットデバイスの第1のターゲットデバイスに接続され、第1のハブ層スイッチが、第3のリンクを用いて複数のターゲットデバイスの第2のターゲットデバイスに接続される、複数のターゲットデバイスと、を備え、
    第1のIO層スイッチは、
    トランザクション層パケット(TLP)をクライアントから受け取り、
    TLP内のアドレスが、第1のIO層スイッチ内のいずれのマルチキャスト・アドレス範囲とも対応付けられていないという第1の決定を行い、
    TLP内のアドレスが、第1のIO層スイッチ内のいずれの下りポートとも対応付けられていないという第2の決定を行い、
    第1の決定と第2の決定とに基づき、TLPを、第1のリンクを用いて、第1のIOスイッチ上の第1の上りポートを介して、第1のハブ層スイッチにルーティングするよう構成され、
    第1のハブ層スイッチは、
    第1のIO層スイッチから、第1の下りポートでTLPを受け取り、
    TLPが第1のマルチキャストグループと対応付けられているという第3の決定を行い、
    第3の決定に基づき、
    第1の書き換えられたTLPを生成し、第1の書き換えられたTLPを、第1のターゲットデバイスに第2のリンクを用いて第1のハブ層スイッチ上の第2の下りポートを介してルーティングし、第2の下りポートは第1のマルチキャストグループの受信者であるよう構成される、PCIeファブリック。
  2. 第1のハブ層スイッチは、
    第2の書き換えられたTLPを生成し、第2の書き換えられたTLPを、第1のターゲットデバイスに第3のリンクを用いて第1のハブ層スイッチ上の第3の下りポートを介してルーティングし、第3の下りポートは第1のマルチキャストグループの受信者であるよう、さらに構成される、請求項1に記載の、PCIeファブリック。
  3. 第1のハブ層スイッチに第4のリンクを用いて接続され、第4のリンクが、ハブ層スイッチ上の第2の上りポートとプロセッサ上のルート・ポートとの間にある、プロセッサをさらに備え、
    ルート・ポートは第2のマルチキャストグループと対応付けられ、
    第1のハブ層スイッチは、
    第3の決定に基づき、第3の書き換えられたTLPを生成し、第3の書き換えられたTLPを、プロセッサに第3のリンクを用いて第1のハブ層スイッチ上の第2の上りポートを介してルーティングし、第2の上りポートが第1のマルチキャストグループの受信者であるようさらに構成される、請求項1に記載の、PCIeファブリック。
  4. 第2のプロセッサをさらに備え、プロセッサと第2のプロセッサとがプロセッサ相互接続を介して動作可能に接続するよう構成される、請求項3に記載の、PCIeファブリック。
  5. 第1のIO層スイッチが、
    クライアントから、第2のTLPを受け取り、
    第2のTLPが第1のIO層スイッチ上の第3の下りポートに関連付られたアドレス範囲内である、アドレスを備える、という第4の決定を行い、
    第4の決定に基づき、第2のTLPを第2のハブ層スイッチにクロスリンクを用いて第3の下りポートを介してルーティングするようさらに構成され、
    第2のハブ層スイッチが、
    第1のIO層スイッチから、第2のTLPを第4の下りポートで受け取り、
    第2のTLPが、第2のハブ層スイッチに直接接続するターゲットデバイスと対応付けられる、という第5の決定を行い、
    第5の決定に基づき、第2のTLPを、第2のハブ層スイッチに直接接続するターゲットデバイスにルーティングするよう構成される、請求項1に記載の、PCIeファブリック。
  6. 第1のIO層スイッチは、
    クライアントから、第2のTLPを受け取り、
    第2のTLPが、第1のIO層スイッチ上の第3の下りポートに対応付けられたアドレス範囲内であるアドレスを備える、という第4の決定を行い、
    第4の決定に基づき、第2のTLPを第2のハブ層スイッチにクロスリンクを用いて第3の下りポートを介してルーティングするようさらに構成され、
    第2のハブ層スイッチは、
    第1のIO層スイッチから、第2のTLPを第4の下りポートで受け取り、
    第2のTLPが第2のマルチキャストグループと対応付けられる、という第5の決定を行い、
    第5の決定に基づき、第3の書き換えられたTLPを生成し、第3の書き換えられたTLPを、第3のターゲットデバイスに第4のリンクを用いて第2のハブ層スイッチ上の第5の下りポートを介してルーティングし、第5の下りポートが、第2のマルチキャストグループの受信者であり、第3のターゲットデバイスが、第2のハブ層スイッチに第4のリンクを介して接続されるよう構成される、請求項1に記載の、PCIeファブリック。
  7. 第1のIO層スイッチは、
    クライアントから、第2のTLPを受け取り、
    第2のTLPが第1のマルチキャストグループと対応付けられる、という第3の決定を行い、
    第3の決定に基づき、第2の書き換えられたTLPを生成し、第2の書き換えられたTLPを、第1のハブ層スイッチに第1のリンクを用いてルーティングするようさらに構成され、
    第1のハブ層スイッチは、
    第1のIO層スイッチから、第2の書き換えられたTLPを、第1の下りポートで受け取り、
    第2の書き換えられたTLPが、第1のハブ層スイッチに直接接続するターゲットデバイスと対応付けられる、という第5の決定を行い、
    第5の決定に基づき、第2の書き換えられたTLPを、第2のハブ層スイッチに直接接続するターゲットデバイスにルーティングするよう構成される、請求項1に記載の、PCIeファブリック。
  8. 第1のIO層スイッチ上の第1の上りポートは、プロセッサに直接接続するメモリを除くPCIeファブリック内のすべてのメモリを含む第1のアドレス範囲と、PCIeファブリックに接続するクライアントに対応付けられるすべてのメモリを含む第2のアドレス範囲と、に対応づけられ、第1のアドレス範囲と第2のアドレス範囲とは第1のIO層スイッチで受け取ったTLPパケットをルーティングするために使用される、請求項1に記載の、PCIeファブリック。
  9. クライアントに対応付けられるすべてのメモリが、永続記憶デバイスと揮発性メモリとから成るグループから選択された少なくとも1つを備える、請求項8に記載の、PCIeファブリック。
  10. PCIeファブリック内のすべてのメモリが、永続記憶デバイスと揮発性メモリとを備えるグループから選択された少なくとも1つを備える、請求項8に記載の、PCIeファブリック。
  11. 第1のハブ層スイッチ上の第2の上りポートが、PCIeファブリック内のすべてのスライス内のすべてのメモリを含む第1のアドレス範囲と、PCIeファブリックに接続されたクライアントに対応付けられるすべてのメモリを含む第2のアドレス範囲と、に対応付けられ、第1のIO層スイッチと第1のハブ層スイッチとは、PCIeファブリック内のスライスの第1のスライス内にあり、第1のスライスはプロセッサに直接接続するメモリを含まず、第1のハブ層スイッチに直接接続しない複数のターゲットデバイスのいずれも含まず、第1のアドレス範囲と第2のアドレス範囲とは、第1のIO層スイッチが受けとったTLPパケットをルーティングするために使用される、請求項1に記載の、PCIeファブリック。
  12. クロスリンクが、第1のIO層スイッチの第3の下りポートと、第2のハブ層スイッチの下りポートと、を接続する、請求項1に記載の、PCIeファブリック。
  13. 第1のIO層の第3の下りポートが、PCIeファブリックのスライス内のメモリを含むアドレス範囲と対応付けられ、PCIeファブリックスライス内のメモリは、第2のハブ層スイッチに直接接続する複数のターゲットデバイスを含み、第1のハブ層スイッチに直接接続する複数のターゲットデバイスのいずれも含まない、請求項12に記載の、PCIeファブリック。
  14. 複数のターゲットデバイスの少なくとも1つが、揮発性メモリと永続記憶デバイスとから成るグループから選択された少なくとも1つを備える、請求項1に記載の、PCIeファブリック。
  15. 複数のターゲットデバイスの少なくとも1つが、NANDフラッシュを備える、請求項1に記載の、PCIeファブリック。
  16. 複数のターゲットデバイスの少なくとも1つが、ネットワークエンドポイントデバイスとエンドポイント記憶デバイスとから成るグループから選択された1つを備える、請求項1に記載の、PCIeファブリック。
  17. クライアントがPCIeエンドポイントである、請求項1に記載の、PCIeファブリック。
  18. 第1のIO層スイッチと第1のハブ層スイッチとが、第2のクロスリンクを用いて接続される、請求項1に記載の、PCIeファブリック。
  19. 第1のIO層スイッチがTLPを第1のハブ層スイッチに第2のクロスリンクを用いてルーティングするよう構成される、請求項18に記載の、PCIeファブリック。
  20. 第2のクロスリンクが、いずれのマルチキャストグループとも対応付けられない、請求項18に記載の、PCIeファブリック。
  21. 第2のクロスリンクが、第1のIO層スイッチ上の第1の下りポートと、第1のハブ層スイッチ上の第3の下りポートと、に接続される、請求項18に記載の、PCIeファブリック。
  22. 第1のIO層スイッチと第2のIO層スイッチとを備える入出力(I/O)層と、
    複数のハブ層スイッチを備え、複数のハブ層スイッチが第1のハブ層スイッチと第2のハブ層スイッチとを備え、第1のIO層スイッチが第1のリンクを用いて第1のハブ層スイッチに接続され、第1のIO層スイッチがクロスリンクを用いて第2のハブ層スイッチに接続される、ハブ層と、を備え、
    PCIeファブリックは、複数のターゲットデバイスと動作可能に接続され、各複数のターゲットデバイスが複数のハブ層スイッチの1つに接続され、第1のハブ層スイッチが、第2のリンクを用いて複数のターゲットデバイスの第1のターゲットデバイスに接続され、第1のハブ層スイッチが、第3のリンクを用いて複数のターゲットデバイスの第2のターゲットデバイスに接続され、
    第1のIO層スイッチは、
    トランザクション層パケット(TLP)をクライアントから受け取り、
    TLP内のアドレスが、第1のIO層スイッチ内のいずれのマルチキャスト・アドレス範囲とも対応付けられていないという第1の決定を行い、
    TLP内のアドレスが、第1のIO層スイッチ内のいずれの下りポートとも対応付けられていないという第2の決定を行い、
    第1の決定と第2の決定とに基づき、TLPを、第1のリンクを用いて、第1のIOスイッチ上の第1の上りポートを介して、第1のハブ層スイッチにルーティングするよう構成され、
    第1のハブ層スイッチは、
    第1のIO層スイッチから、第1の下りポートでTLPを受け取り、
    TLPが第1のマルチキャストグループと対応付けられているという第3の決定を行い、
    第3の決定に基づき、
    第1の書き換えられたTLPを生成し、第1の書き換えられたTLPを、第1のターゲットデバイスに第2のリンクを用いて第1のハブ層スイッチ上の第2の下りポートを介してルーティングし、第2の下りポートは第1のマルチキャストグループの受信者であるよう構成される、PCIeファブリック。
  23. 第1のIO層スイッチが、
    クライアントから、第2のTLPを受け取り、
    第2のTLPが第1のIO層スイッチ上の第3の下りポートに関連付られたアドレス範囲内である、アドレスを備えるという第4の決定を行い、
    第4の決定に基づき、第2のTLPを第2のハブ層スイッチにクロスリンクを用いて第3の下りポートを介してルーティングするようさらに構成され、
    第2のハブ層スイッチが、
    第1のIO層スイッチから、第2のTLPを第4の下りポートで受け取り、
    第2のTLPが、第2のハブ層スイッチにに直接接続するターゲットデバイスと対応付けられる、という第5の決定を行い、
    第5の決定に基づき、第2のTLPを、第2のハブ層スイッチに直接接続するターゲットデバイスにルーティングするよう構成される、請求項22に記載の、PCIeファブリック。
  24. 第1のIO層スイッチは、
    クライアントから、第2のTLPを受け取り、
    第2のTLPが、第1のIO層スイッチ上の第3の下りポートに対応付けられたアドレス範囲内であるアドレスを含む、という第4の決定を行い、
    第4の決定に基づき、第2のTLPを第2のハブ層スイッチにクロスリンクを用いて第3の下りポートを介してルーティングするようさらに構成され、
    第2のハブ層スイッチは、
    第1のIO層スイッチから、第2のTLPを第4の下りポートで受け取り、
    第2のTLPが第2のマルチキャストグループと対応付けられる、という第5の決定を行い、
    第5の決定に基づき、第3の書き換えられたTLPを生成し、第3の書き換えられたTLPを、第3のターゲットデバイスに第4のリンクを用いて第2のハブ層スイッチ上の第5の下りポートを介してルーティングし、第5の下りポートが、第2のマルチキャストグループの受信者であり、第3のターゲットデバイスが、第2のハブ層スイッチに第4のリンクを介して接続されるよう構成される、請求項22に記載の、PCIeファブリック。
  25. 第1のIO層スイッチは、
    クライアントから、第2のTLPを受け取り、
    第2のTLPが第1のマルチキャストグループと対応付けられる、という第3の決定を行い、
    第3の決定に基づき、第2の書き換えられたTLPを生成し、第2の書き換えられたTLPを、第1のハブ層スイッチに第1のリンクを用いてルーティングするようさらに構成され、
    第1のハブ層スイッチは、
    第1のIO層スイッチから、第2の書き換えられたTLPを、第1の下りポートで受け取り、
    第2の書き換えられたTLPが、第1のハブ層スイッチに直接接続するターゲットデバイスと対応付けられる、という第5の決定を行い、
    第5の決定に基づき、第2の書き換えられたTLPを、第2のハブ層スイッチに直接接続するターゲットデバイスにルーティングするよう構成される、請求項22に記載の、PCIeファブリック。
JP2015055866A 2014-03-25 2015-03-19 十分に接続されたメッシュトポロジーのためのPCIExpressファブリックルーティング Active JP5819554B2 (ja)

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
JP2015193276A Division JP6328596B2 (ja) 2014-03-25 2015-09-30 十分に接続されたメッシュトポロジーのためのPCIExpressファブリックルーティング

Publications (2)

Publication Number Publication Date
JP2015186263A true JP2015186263A (ja) 2015-10-22
JP5819554B2 JP5819554B2 (ja) 2015-11-24

Family

ID=52627032

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2015055866A Active JP5819554B2 (ja) 2014-03-25 2015-03-19 十分に接続されたメッシュトポロジーのためのPCIExpressファブリックルーティング
JP2015193276A Active JP6328596B2 (ja) 2014-03-25 2015-09-30 十分に接続されたメッシュトポロジーのためのPCIExpressファブリックルーティング

Family Applications After (1)

Application Number Title Priority Date Filing Date
JP2015193276A Active JP6328596B2 (ja) 2014-03-25 2015-09-30 十分に接続されたメッシュトポロジーのためのPCIExpressファブリックルーティング

Country Status (4)

Country Link
US (3) US9003090B1 (ja)
EP (2) EP3151493B1 (ja)
JP (2) JP5819554B2 (ja)
CN (2) CN106533992B (ja)

Families Citing this family (14)

* 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
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
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
TWI721319B (zh) 2016-06-10 2021-03-11 美商利魁得股份有限公司 資料儲存系統中的多埠中介件架構
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 北京百度网讯科技有限公司 用于端到端通信的报文转发的方法和装置
CN109308281A (zh) * 2018-07-16 2019-02-05 郑州云海信息技术有限公司 一种gpu集群和一种计算系统
US10585827B1 (en) 2019-02-05 2020-03-10 Liqid Inc. PCIe fabric enabled peer-to-peer communications

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000261447A (ja) * 1999-03-05 2000-09-22 Nec Corp Usbネットワーク構成システム
US7502878B1 (en) * 2003-06-27 2009-03-10 Cypress Semiconductor Corporation Method and apparatus for switching USB devices between multiple USB hosts
JP2010041335A (ja) * 2008-08-04 2010-02-18 Ricoh Co Ltd データ通信システム、画像処理システム、及びデータ通信方法
JP2010108211A (ja) * 2008-10-30 2010-05-13 Hitachi Ltd ストレージ装置、及びストレージコントローラ内部ネットワークのデータ経路フェイルオーバー方法
JP2011065551A (ja) * 2009-09-18 2011-03-31 Hitachi Ltd 計算機システムの管理方法、計算機システム及びプログラム
JP2012146105A (ja) * 2011-01-12 2012-08-02 Hitachi Ltd 計算機システム
WO2013136522A1 (ja) * 2012-03-16 2013-09-19 株式会社日立製作所 計算機システム及び計算機間のデータ通信方法
JP2013206390A (ja) * 2012-03-29 2013-10-07 Fujitsu Ltd スイッチ、情報処理装置および通信制御方法

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006195871A (ja) * 2005-01-17 2006-07-27 Ricoh Co Ltd 通信装置、電子機器、及び画像形成装置
JP4878185B2 (ja) * 2006-03-17 2012-02-15 株式会社リコー データ通信回路および調停方法
US20070294498A1 (en) * 2006-06-14 2007-12-20 International Business Machines Corporation Storage Allocation Management in Switches Utilizing a Flow Control
JP5108261B2 (ja) * 2006-07-11 2012-12-26 株式会社リコー 情報処理装置およびデータ通信装置
JP4998469B2 (ja) * 2006-08-09 2012-08-15 日本電気株式会社 インターコネクション用スイッチおよびシステム
US7849252B2 (en) * 2008-05-30 2010-12-07 Intel Corporation Providing a prefix for a packet header
WO2011043769A1 (en) * 2009-10-07 2011-04-14 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
US8395416B2 (en) * 2010-09-21 2013-03-12 Intel Corporation Incorporating an independent logic block in a system-on-a-chip
US20130179621A1 (en) * 2012-01-06 2013-07-11 Glenn Willis Smith Extensible daisy-chain topology for compute devices
US8554963B1 (en) * 2012-03-23 2013-10-08 DSSD, Inc. Storage system with multicast DMA and unified address space
IN2013KN03842A (ja) * 2012-10-27 2015-05-01 Huawei Tech Co Ltd
CN103117929B (zh) * 2013-01-31 2015-12-23 中国科学院计算技术研究所 一种基于PCIe数据交换的通信方法及系统

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000261447A (ja) * 1999-03-05 2000-09-22 Nec Corp Usbネットワーク構成システム
US7502878B1 (en) * 2003-06-27 2009-03-10 Cypress Semiconductor Corporation Method and apparatus for switching USB devices between multiple USB hosts
JP2010041335A (ja) * 2008-08-04 2010-02-18 Ricoh Co Ltd データ通信システム、画像処理システム、及びデータ通信方法
JP2010108211A (ja) * 2008-10-30 2010-05-13 Hitachi Ltd ストレージ装置、及びストレージコントローラ内部ネットワークのデータ経路フェイルオーバー方法
JP2011065551A (ja) * 2009-09-18 2011-03-31 Hitachi Ltd 計算機システムの管理方法、計算機システム及びプログラム
JP2012146105A (ja) * 2011-01-12 2012-08-02 Hitachi Ltd 計算機システム
WO2013136522A1 (ja) * 2012-03-16 2013-09-19 株式会社日立製作所 計算機システム及び計算機間のデータ通信方法
JP2013206390A (ja) * 2012-03-29 2013-10-07 Fujitsu Ltd スイッチ、情報処理装置および通信制御方法

Also Published As

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

Similar Documents

Publication Publication Date Title
JP6328596B2 (ja) 十分に接続されたメッシュトポロジーのためのPCIExpressファブリックルーティング
US9215172B2 (en) Hashing-based routing table management
US20170109299A1 (en) Network computing elements, memory interfaces and network connections to such elements, and related systems
US8989193B2 (en) Facilitating insertion of device MAC addresses into a forwarding database
JP2017098935A (ja) 仮想ルータクラスタ、データ転送方法および装置
US20150121060A1 (en) Methods for configurable hardware logic device reloading and devices thereof
US20100020818A1 (en) Sharing buffer space in link aggregation configurations
CN104811392A (zh) 用于处理网络中的资源访问请求的方法和系统
EP3278235B1 (en) Reading data from storage via a pci express fabric having a fully-connected mesh topology
EP3278230B1 (en) Writing data to storage via a pci express fabric having a fully-connected mesh topology
US10616116B1 (en) Network traffic load balancing using rotating hash
US10911292B1 (en) Controlling peer-to-peer communication
US9537799B2 (en) Phase-based packet prioritization
US9258273B2 (en) Duplicating packets efficiently within a network security appliance
US20190065418A1 (en) Message routing in a main memory arrangement
US10466930B2 (en) Method and system for fast ordered writes with atomic multicast

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20150806

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20150901

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20150930

R150 Certificate of patent or registration of utility model

Ref document number: 5819554

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313111

Free format text: JAPANESE INTERMEDIATE CODE: R313113

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250