JP5452733B2 - 計算機システムおよびルーティング制御方法 - Google Patents
計算機システムおよびルーティング制御方法 Download PDFInfo
- Publication number
- JP5452733B2 JP5452733B2 JP2012549553A JP2012549553A JP5452733B2 JP 5452733 B2 JP5452733 B2 JP 5452733B2 JP 2012549553 A JP2012549553 A JP 2012549553A JP 2012549553 A JP2012549553 A JP 2012549553A JP 5452733 B2 JP5452733 B2 JP 5452733B2
- Authority
- JP
- Japan
- Prior art keywords
- port
- spa
- packet
- switch
- pcie
- 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.)
- Expired - Fee Related
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/40—Bus structure
- G06F13/4004—Coupling between buses
- G06F13/4022—Coupling between buses using switching circuits, e.g. switching matrix, connection or expansion network
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/36—Handling requests for interconnection or transfer for access to common bus or bus system
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/30—Peripheral units, e.g. input or output ports
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Computer Hardware Design (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Bus Control (AREA)
Description
本発明は、計算機システムおよびルーティング制御方法に係り、特に複数のサーバが複数のスイッチを介してI/Oデバイス等に接続される計算機システムにおけるパケット転送のためのルーティング制御に関する。
サーバシャーシ間におけるデータの高速な通信方式として、InfiniBandが一般的に知られている。InfiniBandを使用するためには、別途InfiniBand用のスイッチを用意しなければならず、その導入のためのコストは大きい。これに対して、最近ではサーバとデバイス間の高速な通信方式として、PCI Express(以下PCIeという)が実用化されている。PCIeは、サーバとシャーシ内のスロットに接続されるデバイス間の通信を低コストで実現することが可能である。
大規模データセンタや高信頼な計算機システムでは、冗長化や負荷分散のために1台のサーバに多くのPCIeデバイスを接続したいという要求がある。多くのPCIeデバイスを接続するためには、サーバシャーシにI/Oドロワなどの拡張用のシャーシを接続する必要がある。各シャーシの中にそれぞれPCIeスイッチを用意するとなれば、サーバシステム全体で多くのPCIeスイッチが存在することになる。
PCIeは、高速シリアルインターフェイス(IF)であり、Point-to-Point接続であるが、以前のPCI規格との互換性のため、PCIeスイッチを用いてPCIのバス構成を模している。そのバス構成とは、通常、各デバイスやスイッチどうしが、スイッチのポート部分に存在するブリッジを介してバスで接続されるものをいう。更には、スイッチ内部に仮想バスがあり、スイッチの各ポートのブリッジどうしを接続している。
PCIeバスを用いてサーバとPCIeスイッチ、デバイスが接続される計算機システムでは、一般に、ルーティングを行うことを目的として、全てのバスにバス番号を付与している。PCIeのルーティング方法には、IDルーティングと、アドレスルーティングと、暗黙のルーティングの3種類がある。
IDルーティングでは、ブリッジが3つのバス番号を記憶している。即ち、Primary(Upstream側に接続されているバス番号)、Secondary(Downstream側に接続されているバス番号)、Subordinate(Downstream側に接続されているバスのサブツリーの中のバスのうち、最大のバス番号もの)の3つバス番号である。そして、IDルーティングでは、次のような方法でルーティングを行っている。即ち、あるデバイスからトランザクション層パケット(Transaction Layer Packet (以下TLPという))が出力されると、デバイスが接続されているバスにまずTLPが入力される。バスに接続されている全ブリッジは、バスに入力されたTLPに書かれているバス番号を確認する。そして、ブリッジは、次のような条件でTLPを通過させる。Downstream方向(サーバからデバイス方向)へは、バス番号がSecondaryとSubordinateの間であれば、通過させる。Upstream方向(デバイスからサーバ方向)へは、バス番号がSecondaryとSubordinateの間でなければ、通過させる。この繰り返しで、目的のデバイスやサーバへTLPを転送することができる。
アドレスルーティングでは、ブリッジがアドレスの範囲を記憶している。Downstream方向へは、バスに入力されたTLPの宛先アドレスがブリッジの記憶しているアドレスの範囲であれば通過させる。Upstream方向へは、TLPの宛先アドレスがブリッジの記憶しているアドレスの範囲外であれば通過させる。
また、暗黙のルーティングでは、TLPの種類によってルーティングの方法が決まっているため、スイッチがTLPの種類を見てルーティングを行う。
また、暗黙のルーティングでは、TLPの種類によってルーティングの方法が決まっているため、スイッチがTLPの種類を見てルーティングを行う。
正しくルーティングを行うためには、ブリッジが記憶しているバス番号を物理的なトポロジに合わせる必要があるため、バス番号の付番はスイッチの物理的な接続形態に依存しており、自由に割り当てることはできない。
物理トポロジに合わせたバス番号の付番方法の例を図12に示す。バス番号の付番方法はPCIバスのトポロジに合わせる必要がある。そのため、サーバ101やデバイス104とPCIeスイッチ113を接続するバス番号402の他に、物理的なスイッチの内部やスイッチの間のバスにもバス番号403を割り当てなければならないので、多くのバス番号を消費してしまう。然るに、PCIの規格によって、1つの計算機システムで使用できるバス番号の上限数は256個と決められている。バス番号は、1つの計算機システムにおいて有限個である。
大規模データセンタや高信頼な計算機システムなどの、多くのPCIeスイッチが存在するサーバシステムでは、スイッチ内部やスイッチ間に多数のバスが存在する。そのため、サーバシステムの利用者が意図しない場所、例えばスイッチ内部のバスやスイッチ間のバスで、多数のバス番号が消費されるおそれがある。
スイッチ内部のバスやスイッチ間のバスに多量のバス番号が消費されると、サーバの利用者が意図する箇所、例えばスイッチとデバイス間のバスに割り当て可能なバス番号が減少してしまい、バス番号の不足を招くという問題がある。また、バス番号が不足すると、それ以上のデバイスを接続できなくなり、システム全体に接続できるデバイス数が、少なくなってしまう。
なお、特許文献1及び2には、宛先アドレスを、変換テーブルを用いて別の情報に変換し、Additional HeaderとしてTLPに付加しルーティングに用いる制御方法が開示されている。
上記特許文献1及び2に記載のルーティング制御は、各スイッチでAdditional Header情報も用いてルーティングを行っている。しかし、その情報だけを用いてルーティングを行っているわけではなく、PCIeの規格で定められている通りのバス番号やアドレスを用いたルーティングも行っている。そのため、特許文献1及び2に記載のルーティング制御でもバス番号の付番方法がスイッチのトポロジから自由になるわけではないので、スイッチ間、或いはスイッチ内部のバスにも依然としてバス番号を割り当てなければならず、バス番号の不足は依然として解決されない。
本発明の目的は、PCIeスイッチを用いたルーティング制御におけるバス番号の不足を解決することにある。
本発明は、より具体的には、PCIeスイッチのポートのうち、デバイス又はサーバと接続されているポート間に、システム全体で一意の符号(SPA(システムポートアドレス)という)を用いて、TLPのルーティングを行うものである。
本発明は、より具体的には、PCIeスイッチのポートのうち、デバイス又はサーバと接続されているポート間に、システム全体で一意の符号(SPA(システムポートアドレス)という)を用いて、TLPのルーティングを行うものである。
本発明に係る計算機システムは、好ましくは、サーバと1又は複数のデバイスが、複数のポートを有する複数のPCIeスイッチを介して接続され、該PCIeスイッチの該ポートを通して該サーバとデバイス間でパケットを転送する計算機システムであって、
該ポートのうち、該サーバ又は該デバイスに接続されているポート(外部ポート)に、宛先バス番号を、それに対応付けて割り当てられたシステムポートアドレス(SPA)に変換する変換手段と、
該外部ポートの先に接続される外部ポートのSPAを含むように、該SPAの集合を設定するSPA集合設定手段を有し、
該サーバ又は該デバイスから転送されるパケットを該外部ポートが受けたときに、前記変換手段を参照して、該パケットが有する宛先バス番号に対応するSPAを求め、該SPAをラベルとして該パケットに付加し
該パケットに付加された該SPAを用いて、該SPA集合設定手段が指定するSPAの集合を判断しながら、該SPAの宛先に含まれるポートに該パケットを転送し、
該パケットが、目的とするサーバ又はデバイスが接続された外部ポートに達したときに、該パケットが有する該宛先バス番号を用いて、該パケットを該外部ポートに接続された該サーバ又は該デバイスへ転送することを特徴する計算機システムとして構成される。
該ポートのうち、該サーバ又は該デバイスに接続されているポート(外部ポート)に、宛先バス番号を、それに対応付けて割り当てられたシステムポートアドレス(SPA)に変換する変換手段と、
該外部ポートの先に接続される外部ポートのSPAを含むように、該SPAの集合を設定するSPA集合設定手段を有し、
該サーバ又は該デバイスから転送されるパケットを該外部ポートが受けたときに、前記変換手段を参照して、該パケットが有する宛先バス番号に対応するSPAを求め、該SPAをラベルとして該パケットに付加し
該パケットに付加された該SPAを用いて、該SPA集合設定手段が指定するSPAの集合を判断しながら、該SPAの宛先に含まれるポートに該パケットを転送し、
該パケットが、目的とするサーバ又はデバイスが接続された外部ポートに達したときに、該パケットが有する該宛先バス番号を用いて、該パケットを該外部ポートに接続された該サーバ又は該デバイスへ転送することを特徴する計算機システムとして構成される。
好ましい例の計算機システムにおいて、前記SPA集合設定手段によって指定されるSPAの集合は、該外部ポートをスイッチ内部から外部方向へ通過することができるパケットの宛先となるSPAの範囲であり、かつ、各々の該外部ポートは、自身のポートが外部ポートであることを示すSPAを記憶するレジスタを有する。
また、好ましくは、前記変換手段、前記SPA集合設定手段、及び前記レジスタの内容は、初期設定時に、該複数のPCIeスイッチに接続された管理系より設定される。
また、好ましくは、前記変換手段、前記SPA集合設定手段、及び前記レジスタの内容は、初期設定時に、該複数のPCIeスイッチに接続された管理系より設定される。
また、好ましい例では、ある該スイッチ(第1のスイッチ)のポート(第1のポート)を別の該スイッチ(第2のスイッチ)のポート(第2のポート)に接続し、
第1のポートの前記SPA集合設定手段に、第2のスイッチに、該第1のスイッチ以外のスイッチが接続されている場合は、第2のスイッチ及びその先のスイッチのポートのSPAを含むようにSPAの集合を設定し、
第2のスイッチに、該第1のスイッチ以外のスイッチが接続されていない場合は、第2のスイッチのポートのSPAを含むように、SPAの集合を設定し、
該第1のポートの前記SPA集合設定手段に設定された該集合に、宛先SPAが含まれる該パケットが、第1のスイッチに入力された場合、該パケットを第1のポート、第2のポートの順に経由させることによって、第2のスイッチに転送する。
第1のポートの前記SPA集合設定手段に、第2のスイッチに、該第1のスイッチ以外のスイッチが接続されている場合は、第2のスイッチ及びその先のスイッチのポートのSPAを含むようにSPAの集合を設定し、
第2のスイッチに、該第1のスイッチ以外のスイッチが接続されていない場合は、第2のスイッチのポートのSPAを含むように、SPAの集合を設定し、
該第1のポートの前記SPA集合設定手段に設定された該集合に、宛先SPAが含まれる該パケットが、第1のスイッチに入力された場合、該パケットを第1のポート、第2のポートの順に経由させることによって、第2のスイッチに転送する。
また、好ましい例では、該計算機システム内で複数の該外部ポートを含むアクセス可能集合を定義し、該アクセス可能集合内では一意であるバス番号を各外部ポートに割り当て、
宛先バス番号を指定されたパケットが、該スイッチの外部から該外部ポートに入力した場合、該変換手段により得られたSPAを該パケットの宛先として扱い、該パケットの転送を行う。
宛先バス番号を指定されたパケットが、該スイッチの外部から該外部ポートに入力した場合、該変換手段により得られたSPAを該パケットの宛先として扱い、該パケットの転送を行う。
また、好ましくは、該バス番号を指定されたパケットを受信した該外部ポートにおいて、該SPAで指定された宛先ポートにおいて、該パケットに付加されたSPAを除去した後に該パケットをスイッチ外部に出力する。
また、好ましくは、該計算機システムは複数のサーバを含み、該サーバごとに、該アクセス可能集合を定義する。
また、好ましくは、該計算機システムは複数のサーバを含み、該サーバごとに、該アクセス可能集合を定義する。
また、好ましくは、該外部ポートが、複数の該アクセス可能集合に含まれることにより、
該外部ポートに接続されている該デバイスが複数の該サーバと該パケットの送受信を行う。
また、好ましくは、該SPA及び該バス番号は2進数で表現され、該SPAを表現する2進数がバス番号を表現する2進数のビット数より大きくして、より多くの該デバイスと、より多くの該サーバを単一の計算機システムとして接続する。
該外部ポートに接続されている該デバイスが複数の該サーバと該パケットの送受信を行う。
また、好ましくは、該SPA及び該バス番号は2進数で表現され、該SPAを表現する2進数がバス番号を表現する2進数のビット数より大きくして、より多くの該デバイスと、より多くの該サーバを単一の計算機システムとして接続する。
本発明に係るルーティング制御方法は、好ましくは、複数のポートを有するPCIeスイッチを介して、サーバと1又は複数のデバイスの間でパケットを転送させる計算機システムにおけるパケットのルーティング制御方法であって、
該ポートのうち該サーバ及びデバイスに接続されるポート(外部ポート)に、宛先バス番号に対応付けてシステムポートアドレス(SPA)を割り当てるステップと、
該サーバ又は該デバイスから転送されるパケットを該外部ポートが受けたときに、該パケットが有する宛先バス番号に対応するシステムポートアドレス(SPA)を求め、該SPAをラベルとして該パケットに付加するステップと、
該SPAを用いて、該PCIeスイッチどうしを接続するポート(内部ポート)間に転送される該パケットのルーティングを行うステップと、
該パケットが、目的とするサーバ又はデバイスが接続された外部ポートに達したときに、該パケットが有する該宛先バス番号を用いて、該パケットを該外部ポートに接続された該サーバ又は該デバイスへ転送するステップとを有することを特徴するルーティング制御方法として構成される。
好ましい例では、前記外部ポートに予め用意された、宛先バス番号とSPAの複数の対を登録する変換テーブルを参照して、前記外部ポートに達した該パケットに保持される宛先バス番号から該SPAを求める。
該ポートのうち該サーバ及びデバイスに接続されるポート(外部ポート)に、宛先バス番号に対応付けてシステムポートアドレス(SPA)を割り当てるステップと、
該サーバ又は該デバイスから転送されるパケットを該外部ポートが受けたときに、該パケットが有する宛先バス番号に対応するシステムポートアドレス(SPA)を求め、該SPAをラベルとして該パケットに付加するステップと、
該SPAを用いて、該PCIeスイッチどうしを接続するポート(内部ポート)間に転送される該パケットのルーティングを行うステップと、
該パケットが、目的とするサーバ又はデバイスが接続された外部ポートに達したときに、該パケットが有する該宛先バス番号を用いて、該パケットを該外部ポートに接続された該サーバ又は該デバイスへ転送するステップとを有することを特徴するルーティング制御方法として構成される。
好ましい例では、前記外部ポートに予め用意された、宛先バス番号とSPAの複数の対を登録する変換テーブルを参照して、前記外部ポートに達した該パケットに保持される宛先バス番号から該SPAを求める。
本発明によれば、デバイス又はサーバと接続されているポート間でSPAを用いてTLPのルーティングを行うことにより、バス番号の付番を物理的なトポロジに合わせる必要がなくなる。そのため、スイッチ内部やスイッチ間など、サーバ利用者が意図しない場所におけるバス番号の割り当てを最小限に抑えることができる。これにより計算機システムにおけるバス番号の不足を解決することが可能となる。
また、複数サーバがスイッチを介してデバイスにアクセスする際に、サーバ毎に異なるバス番号とSPAを対応付けることによって、各サーバ上のソフトウェアに対し、それぞれ異なるPCIeトポロジを見せることができる。複数のPCIeトポロジを用いることにより、計算機システム全体で上限とされた256以上のデバイスを扱うことが可能となる。
また、2つのPCIeスイッチどうしを複数のPCIeバスで接続する際に、SPAの下位bitでどのPCIeバスを用いてアクセスするかを切り替えることにより、1本のバスにアクセスが集中することを防止でき、負荷分散が可能となる。
また、2つのPCIeスイッチどうしを複数のPCIeバスで接続する際に、SPAの下位bitでどのPCIeバスを用いてアクセスするかを切り替えることにより、1本のバスにアクセスが集中することを防止でき、負荷分散が可能となる。
以下、図面を参照して本発明の実施例について説明する。
図1は、本実施例による計算機システムの全体構成を示す。
計算機システム100は、サーバ101と、サーバにバス102を介して接続されるPCIeスイッチ1031及びPCIeスイッチ1032,1033(総じて103と示す)と、PCIeスイッチ1032,1033とPCIeバス102で接続される複数のPCIeデバイス104と、各PCIeスイッチ103に接続される管理系500を有して構成される。なお、管理系500以外を称してサーバシステムと呼ぶことがある。
計算機システム100は、サーバ101と、サーバにバス102を介して接続されるPCIeスイッチ1031及びPCIeスイッチ1032,1033(総じて103と示す)と、PCIeスイッチ1032,1033とPCIeバス102で接続される複数のPCIeデバイス104と、各PCIeスイッチ103に接続される管理系500を有して構成される。なお、管理系500以外を称してサーバシステムと呼ぶことがある。
サーバ101はCPU110、メモリ111、チップセット112を有する。また、PCIeデバイス104はディスク装置191、InfiniBand192、Ethernet(登録商標)193などのI/Oデバイス19が接続される。サーバ101内のCPU110は、チップセット112及びPCIeバス102、PCIeスイッチ103、PCIeデバイス104を介して、PCIeデバイス104に接続しているディスク装置やEthernetにアクセスできる。また、PCIeデバイス104が他のPCIeデバイス104にアクセスしたり、PCIeデバイス104がチップセット112を介してメモリ111にもアクセスしたりすることも可能である。詳しくは図7を参照して後述するが、管理系500は管理プロセッサや管理情報を有するサーバであり、パス501を介して各PCIeスイッチ103に接続され、各PCIeスイッチ103の初期設定を行う。
PCIeスイッチ103のポートには、サーバやPCIeデバイスとPCIeバスを介して接続されるポート120(外部ポートという)と、PCIeバスを介してPCIeスイッチどうし(PCIeスイッチ1031とPCIeスイッチ1032、1033)が接続されるポート121(内部ポートという)の2種類がある。外部ポート120には、システムポートアドレス(SPAという)105が割り当てられている。SPAとは、システム内に存在する全ての外部ポートに静的に割り当てられる一意の番号である。また、外部ポート120は、バス番号とSPAを変換するための変換テーブル301を持つが、内部ポート121にはSPAが割り当てられず、変換テーブルも持たない。
PCIeスイッチの各ポートには、ある集合に属するTLPのみを内部から外部へ通過させるための集合を表すために、SPA集合設定手段を持つ必要がある。本実施例では、この集合として、第一の整数以上で第二の整数以下である整数の範囲を設定できることとする。このSPA集合設定手段がレンジレジスタ300である。レンジレジスタ300は2つの整数を記憶することができ、レンジレジスタに設定されている第一の整数以上で第二の整数以下である範囲に含まれるSPAは、外部ポート120又は内部ポート121をスイッチ内部から外部方向へ通過することができる。なお、TLPはスイッチ外部から内部方向へはレンジレジスタ300の設定にかかわらず通過することができる。レンジレジスタ300には、ポートに接続されるPCIeのトポロジのサブセット内に含まれるポートに割り当てられているSPAの範囲が、管理系500によって設定される。変換テーブル301には、バス番号とそれに対応付けられたSPAが記憶される(図3参照)。
詳しくは図7を参照して後述するが、SPA、レンジレジスタ、変換テーブルの設定は、初期設定時に管理系500が予め持っている設定情報を用いて行なわれる。例えば、設定情報としてトポロジに応じて複数種類を予め用意し、いずれの種類を用いたらよいかを選択する。また、初期設定時に管理系が自動的にトポロジを検出し、自動的に変換テーブルやSPAの設定情報を生成してもよいが、これらに限定されるものではない。
宛先SPAがラベルとしてTLPに付加される(図2参照)。PCIeスイッチ1031〜1033間のネットワークでは、バス番号ではなくSPAを用いてパケットのルーティングが行なわれる。具体的には、TLPにラベルとして付加されたSPAを、レンジレジスタに設定されているSPAの範囲に入るポートに転送することを繰り返すことで、ルーティングが行なわれる。TLPが外部ポート120から外に出るときに、SPAは削除される。以下、SPAを用いたルーティング方法について詳細に述べる。
PCIeにおけるルーティング方法は、IDルーティング、アドレスルーティング、暗黙のルーティングの3種類がある。各ルーティングは以下のように行なわれる。
<IDルーティング>
サーバやPCIeデバイスから出力されたTLPが外部ポート120に到達すると、変換テーブル301を参照して、TLPに保持された宛先バス番号に対応する宛先SPAを求める。そして、求めたSPAをラベルとしてTLPに付加する。以後、TLPは、PCIeスイッチネットワークの中ではSPAを用いてルーティングされる。
スイッチ103の外部ポート120又は内部ポート121にスイッチ外からTLPが届くと、スイッチ103はラベルに書かれているSPAとスイッチ内の各ポートのレンジレジスタの値を比較し、該当するポートにTLPを転送する。この動作を繰り返ることで、ポート宛先であるサーバやデバイスと接続された外部ポート120にTLPを転送することができる。
スイッチ内の他のポートから転送されたTLPが外部ポートに到達すると、その外部ポートで、SPAを取り外した後にそのTLPを宛先のデバイスに転送する。
<IDルーティング>
サーバやPCIeデバイスから出力されたTLPが外部ポート120に到達すると、変換テーブル301を参照して、TLPに保持された宛先バス番号に対応する宛先SPAを求める。そして、求めたSPAをラベルとしてTLPに付加する。以後、TLPは、PCIeスイッチネットワークの中ではSPAを用いてルーティングされる。
スイッチ103の外部ポート120又は内部ポート121にスイッチ外からTLPが届くと、スイッチ103はラベルに書かれているSPAとスイッチ内の各ポートのレンジレジスタの値を比較し、該当するポートにTLPを転送する。この動作を繰り返ることで、ポート宛先であるサーバやデバイスと接続された外部ポート120にTLPを転送することができる。
スイッチ内の他のポートから転送されたTLPが外部ポートに到達すると、その外部ポートで、SPAを取り外した後にそのTLPを宛先のデバイスに転送する。
<アドレスルーティング>
アドレスルーティングは、まず、MMIO空間内のPCIeデバイスに割り当てる空間全体のサイズをバス番号の数で割った均等な大きさに分割する。分割されたアドレス空間を、並んでいる順番に、バス番号の小さい順から対応付ける。このようにすると、あるMMIO空間のアドレスは、計算式によってバス番号に変換することができる。
アドレスルーティングは、まず、MMIO空間内のPCIeデバイスに割り当てる空間全体のサイズをバス番号の数で割った均等な大きさに分割する。分割されたアドレス空間を、並んでいる順番に、バス番号の小さい順から対応付ける。このようにすると、あるMMIO空間のアドレスは、計算式によってバス番号に変換することができる。
TLPが外部ポート120に到達すると、TLPに書かれている宛先アドレスを計算式によってバス番号に変換する。アドレスをバス番号に変換した後は、IDルーティングと同様にしてルーティングを行う。
<暗黙のルーティング>
暗黙のルーティングは、TLPの種類によってルーティングの方法が決まっているため、各PCIeスイッチ103がTLPの種類を見てルーティング方法を個別に判断する。
<暗黙のルーティング>
暗黙のルーティングは、TLPの種類によってルーティングの方法が決まっているため、各PCIeスイッチ103がTLPの種類を見てルーティング方法を個別に判断する。
図2は、PCIeスイッチのネットワークでルーティングされるTLPを示す。
TLP200は、TLP本体201と、TLP Prefix202から構成される。TLP本体201の内部には宛先バス番号7を保持するフィールド203がある。本実施例では、バス番号の代わりにSPAを用いてルーティングを行うため、SPA122がラベルとしてTLPに付加される。SPAをTLP内に付加情報として保持するために、TLP Prefix内のVendor definedフィールド内に宛先SPAのフィールド204がある。
PCIeスイッチ同士のネットワーク内では、バス番号ではなく、TLP Prefix内の宛先SPAフィールド204に保持されているSPAをラベルとしてルーティングを行う。
TLP200は、TLP本体201と、TLP Prefix202から構成される。TLP本体201の内部には宛先バス番号7を保持するフィールド203がある。本実施例では、バス番号の代わりにSPAを用いてルーティングを行うため、SPA122がラベルとしてTLPに付加される。SPAをTLP内に付加情報として保持するために、TLP Prefix内のVendor definedフィールド内に宛先SPAのフィールド204がある。
PCIeスイッチ同士のネットワーク内では、バス番号ではなく、TLP Prefix内の宛先SPAフィールド204に保持されているSPAをラベルとしてルーティングを行う。
PCIeスイッチ103のポートには外部ポート120と内部ポート121の2種類がある。この2種類のポートは物理的には同じものである。初期設定時に管理系が、サーバ又はデバイスに接続されているポートか、スイッチ同士を接続するポートかを判断して、何れのポートとなるかが決まる。
図3は、PCIeスイッチの外部ポート120の構成を示す。
外部ポートは、図1に示すように、PCIeバス102を介してPCIeデバイス104又はサーバ101に接続される。外部ポート120は、SPAの範囲を示すレンジレジスタ300、変換テーブル301、ポート自身のSPAを記憶するレジスタ302を備える。PCIeデバイス又はサーバはTLPの宛先となるため、接続されているポートにはSPAが割り当てられる必要がある。SPAは、ポート自身のSPAを記憶するレジスタ302に書き込まれる。また、PCIeデバイス又はサーバから出力されてポートに入力されるTLPには宛先SPAラベルがないため、TLP本体201の中の宛先バス番号フィールド203に書かれている宛先バス番号からSPAを求める必要がある。そのために、バス番号からSPAに変換する変換テーブル301が設けられる。ここで、レンジレジスタ300、変換テーブル301、レジスタ302は1つのメモリに形成されてもよいし、或いは別々のレジスタ又はメモリに形成されてもよい。
外部ポートは、図1に示すように、PCIeバス102を介してPCIeデバイス104又はサーバ101に接続される。外部ポート120は、SPAの範囲を示すレンジレジスタ300、変換テーブル301、ポート自身のSPAを記憶するレジスタ302を備える。PCIeデバイス又はサーバはTLPの宛先となるため、接続されているポートにはSPAが割り当てられる必要がある。SPAは、ポート自身のSPAを記憶するレジスタ302に書き込まれる。また、PCIeデバイス又はサーバから出力されてポートに入力されるTLPには宛先SPAラベルがないため、TLP本体201の中の宛先バス番号フィールド203に書かれている宛先バス番号からSPAを求める必要がある。そのために、バス番号からSPAに変換する変換テーブル301が設けられる。ここで、レンジレジスタ300、変換テーブル301、レジスタ302は1つのメモリに形成されてもよいし、或いは別々のレジスタ又はメモリに形成されてもよい。
変換テーブル301は、バス番号(Bus#)のフィールド303と、SPAのフィールド304を有し、SPAのフィールドにはバス番号に対応するSPAが設定される。SPAの設定は、初期設定時に管理系500により行なわれる。バス番号をキーとして、管理テーブル301を参照することでSPAが求められる。
存在しないバス番号に対応するエントリは無効である。無効であることを示すためには、例えばSPAのうち適当な値は無効を表すことを定めておき、存在しないバス番号に対応する部分に書き込んでおく(例えばバス番号#1に対応するSPAは無効である)。
存在しないバス番号に対応するエントリは無効である。無効であることを示すためには、例えばSPAのうち適当な値は無効を表すことを定めておき、存在しないバス番号に対応する部分に書き込んでおく(例えばバス番号#1に対応するSPAは無効である)。
図4は、PCIeスイッチの内部ポート121の構成を示す。
内部ポートは、機構的には外部ポートと同じ構成であり、レンジレジスタ300、変換テーブル301、自身のSPAを記憶するレジスタ302を備えている。しかし、図1に示すように、内部ポートは外部ポートとは異なり、TLPの受信者や送信者となるサーバやPCIeデバイスと接続されておらず、他スイッチの内部ポートとPCIeバスを介して接続されている。そのため、内部ポートではTLP Prefixの付加/削除は行わず、単にTLPを通過させるのみである。
そのため、初期設定時に、管理系500は内部ポートにSPAを割り当てない。有効になっているのはレンジレジスタ300であり、変換テーブル301やSPA記憶レジスタ302は無効となっている。図4でレンジレジスタ302や変換テーブル301に「−」と書かれているのは、これらが無効であることを示している。
内部ポートは、機構的には外部ポートと同じ構成であり、レンジレジスタ300、変換テーブル301、自身のSPAを記憶するレジスタ302を備えている。しかし、図1に示すように、内部ポートは外部ポートとは異なり、TLPの受信者や送信者となるサーバやPCIeデバイスと接続されておらず、他スイッチの内部ポートとPCIeバスを介して接続されている。そのため、内部ポートではTLP Prefixの付加/削除は行わず、単にTLPを通過させるのみである。
そのため、初期設定時に、管理系500は内部ポートにSPAを割り当てない。有効になっているのはレンジレジスタ300であり、変換テーブル301やSPA記憶レジスタ302は無効となっている。図4でレンジレジスタ302や変換テーブル301に「−」と書かれているのは、これらが無効であることを示している。
レンジレジスタ300は、宛先SPAを有するTLPを何れのポートに転送するかのSPAの集合を示すので、これは一種のSPAの集合選択手段と定義できる。この集合選択手段における集合の選択方法には幾つかの方法があげられる。
例えば、集合選択手段として、本実施例のように、第一の整数以上で第二の整数以下である整数の集合を、選択する機構を1つ又は複数有する。他の方法として、第一の整数で除算したときの余りが第二の整数に等しい整数の集合を、選択する機構を1つ又は複数有する。また、他の方法として、第一の整数以上で第二の整数以下であり、かつ第三の整数で除算したときの余りが第四の整数に等しい整数の集合を、選択する機構を1つ又は複数有する。
例えば、集合選択手段として、本実施例のように、第一の整数以上で第二の整数以下である整数の集合を、選択する機構を1つ又は複数有する。他の方法として、第一の整数で除算したときの余りが第二の整数に等しい整数の集合を、選択する機構を1つ又は複数有する。また、他の方法として、第一の整数以上で第二の整数以下であり、かつ第三の整数で除算したときの余りが第四の整数に等しい整数の集合を、選択する機構を1つ又は複数有する。
次に、図5を参照して、TLPのルーティング制御について説明する。
サーバ101(又はデバイス104)からTLPが出力されると(S500)、PCIeスイッチ103のポートに外部からTLPが到達する(S501)。そして、そのポートが外部ポートであるかを判断する(S502)。外部ポートのSPA記憶レジスタ302には、割り当てられたSPAが記憶されているので、SPAの記憶を見て外部ポートか内部ポートかを判断する。判断の結果、(SPAが記憶されておらず)内部ポートである場合には(S502, No)、到達したTLPは他のPCIeスイッチから届いたTLPである。他のPCIeスイッチから転送されたTLPには、既に宛先SPAが付加されている。そこで、その内部ポートは、到達したTLPに変更を加えないで、ステップS504に進む。
サーバ101(又はデバイス104)からTLPが出力されると(S500)、PCIeスイッチ103のポートに外部からTLPが到達する(S501)。そして、そのポートが外部ポートであるかを判断する(S502)。外部ポートのSPA記憶レジスタ302には、割り当てられたSPAが記憶されているので、SPAの記憶を見て外部ポートか内部ポートかを判断する。判断の結果、(SPAが記憶されておらず)内部ポートである場合には(S502, No)、到達したTLPは他のPCIeスイッチから届いたTLPである。他のPCIeスイッチから転送されたTLPには、既に宛先SPAが付加されている。そこで、その内部ポートは、到達したTLPに変更を加えないで、ステップS504に進む。
一方、上記判断の結果、ポートが外部ポートである場合には(S502, Yes)、到達したTLPはサーバ又はデバイスから届いたTLPである。サーバ又はデバイスから届いたTLPには、宛先SPAラベル122が付加されていない。そこで、外部ポートは、TLPのバス番号フィールドを参照してバス番号を抽出し、変換テーブルを参照して抽出したバス番号に対応するSPAを求め、そのSPAをラベルとしてTLPに付加して(S503)、ステップS504に進む。
ステップS504では、各ポートのレンジレジスタ300と、TLPの宛先SPA122を比較する。比較の結果、宛先SPA122がレンジレジスタの示す範囲に入るポートに、TLPを転送する(S504)。その後、PCIeスイッチのポートにスイッチ内部からTLPが到達する(S505)。
TLPが到達したポートでは、当該ポートが外部ポートであるか判断する(S506)。外部ポートか否かの判断は、上記ステップS502と同様のやり方である。判断の結果、内部ポートである場合には(S506, No)、他のスイッチの内部ポートと接続されているので、TLPに変更を加えないで、そのTLPを接続先のPCIeスイッチの内部ポートへ転送する(S507)。一方、外部ポートである場合には(S506, Yes)、そのポートはサーバ又はデバイスと接続されているため、TLPに付加されたSPA122を取り外して(S508)、そのTLPを宛先のデバイス(又はサーバ)へ転送する(S509)。宛先のデバイス(又はサーバ)は、外部ポートから届いたTLPを受け取って(S510)、当該TLPの転送動作を終了する。
図6は、SPAを用いてルーティングを行った結果、サーバ上のソフトウェアから見える仮想的なPCIeバスのトポロジの例を示す。
サーバ101上のソフトウェアがSPAを意識せずにPCIeデバイスを利用するためには、仮想スイッチ400をサーバやPCIeデバイスに見えるようにする必要がある。またスイッチの中には、PCIeの規格上バスが一つは必要なので、仮想バス401がスイッチ内部にある。PCIeのスイッチの規格上、スイッチの内部バスに接続できるブリッジの数は32が上限である。PCIeスイッチ内のブリッジとPCIeデバイスやサーバはPCIeバスを介して接続されるので、一つのPCIeスイッチでPCIeバスを介して接続できるPCIeデバイスやサーバは、32が上限である。しかし実際には、物理スイッチのポート数の制約のために、32ものデバイスを接続できない場合が多い。
多くのサーバやデバイスを接続するためには、多数の物理スイッチを用いなければならず、物理スイッチ内部のバスや物理スイッチ間のバスで多くのバス番号を消費する。しかし、仮想スイッチは物理的な制約からは自由なので、一つの仮想スイッチには32までのデバイスを接続することができる。すると、物理スイッチの数に対して仮想スイッチの個数を減らすことができるので、スイッチ間やスイッチ内のバスの本数を削減することができる。そのため、スイッチ内部やスイッチ間のバス番号403の消費を最小限に抑え、利用したいバス番号402を多く使うことができるようになる。このように、ポートが多数あるスイッチを用意しなくとも、本発明により、既存のスイッチにわずかな変更を加えるだけで、スイッチの仮想化が可能になり、その結果、スイッチ内部やスイッチ間のバスに割り当てるバス番号を最小限に抑えることができ、バス番号不足の問題を解決することができる。
サーバ101上のソフトウェアがSPAを意識せずにPCIeデバイスを利用するためには、仮想スイッチ400をサーバやPCIeデバイスに見えるようにする必要がある。またスイッチの中には、PCIeの規格上バスが一つは必要なので、仮想バス401がスイッチ内部にある。PCIeのスイッチの規格上、スイッチの内部バスに接続できるブリッジの数は32が上限である。PCIeスイッチ内のブリッジとPCIeデバイスやサーバはPCIeバスを介して接続されるので、一つのPCIeスイッチでPCIeバスを介して接続できるPCIeデバイスやサーバは、32が上限である。しかし実際には、物理スイッチのポート数の制約のために、32ものデバイスを接続できない場合が多い。
多くのサーバやデバイスを接続するためには、多数の物理スイッチを用いなければならず、物理スイッチ内部のバスや物理スイッチ間のバスで多くのバス番号を消費する。しかし、仮想スイッチは物理的な制約からは自由なので、一つの仮想スイッチには32までのデバイスを接続することができる。すると、物理スイッチの数に対して仮想スイッチの個数を減らすことができるので、スイッチ間やスイッチ内のバスの本数を削減することができる。そのため、スイッチ内部やスイッチ間のバス番号403の消費を最小限に抑え、利用したいバス番号402を多く使うことができるようになる。このように、ポートが多数あるスイッチを用意しなくとも、本発明により、既存のスイッチにわずかな変更を加えるだけで、スイッチの仮想化が可能になり、その結果、スイッチ内部やスイッチ間のバスに割り当てるバス番号を最小限に抑えることができ、バス番号不足の問題を解決することができる。
SPAを用いたパケットのルーティングでは、管理系500がレンジレジスタをポートに接続されているバスの先に存在する外部ポートのSPAを含むように設定する。そのため、SPAをレンジレジスタの設定と矛盾なく付番しなければならないなど、SPAの付番方法が物理的なトポロジから自由になるわけではない。しかし、本発明によれば、変換テーブル301を用いることにより、ソフトウェアがSPAを意識する必要をなくしている。そのため、SPAを導入することでバス番号の付番方法が自由になれば、ソフトウェアに対して自由に仮想スイッチを見せることができるようになり、意図しない場所へのバス番号の割り当てを削減することが可能となる。
図7は、PCIeスイッチの初期設定を行うための管理系及び管理用のパスの構成を示す。
計算機システム100にはPCIeバス102とPCIeスイッチ103から成るネットワークの他に、PCIeスイッチ103の初期設定を行う管理系500が含まれる。管理系500は、パス501を介して各PCIeスイッチ103のスイッチ管理ユニット505を接続される。管理系500は、管理プロセッサ502と管理情報503を有するコンピュータである。管理情報は、変換テーブル302とポート設定情報テーブル504に保持される。初期設定前には、PCIeスイッチのポート122が外部ポートであるか内部ポートであるかは決まっていない。何れのポートになるかは、管理系500の持つ管理情報503の中にあるポート設定情報テーブル504に登録された管理情報によって決められる。スイッチ管理ユニット505はスイッチ内設定パス506によって、各ポート122と接続されている。
計算機システム100にはPCIeバス102とPCIeスイッチ103から成るネットワークの他に、PCIeスイッチ103の初期設定を行う管理系500が含まれる。管理系500は、パス501を介して各PCIeスイッチ103のスイッチ管理ユニット505を接続される。管理系500は、管理プロセッサ502と管理情報503を有するコンピュータである。管理情報は、変換テーブル302とポート設定情報テーブル504に保持される。初期設定前には、PCIeスイッチのポート122が外部ポートであるか内部ポートであるかは決まっていない。何れのポートになるかは、管理系500の持つ管理情報503の中にあるポート設定情報テーブル504に登録された管理情報によって決められる。スイッチ管理ユニット505はスイッチ内設定パス506によって、各ポート122と接続されている。
図8は、管理系における管理情報の構成例を示す。
管理情報503には、変換テーブル302と、ポート設定情報テーブル504がある。変換テーブル302は、図3の各外部ポートに設定される変換テーブルと同じものである。変換テーブル302は例えば全ての外部ポートで共通なものとしてよいので、初期設定時にはこの変換テーブル302のコピーが、管理系503からパス501を介して、各PCIeスイッチ103の各ポートに配信される。
ポート設定情報テーブル504には、物理スイッチ番号フィールド600、ポート番号フィールド601、SPAフィールド602、レンジレジスタ設定情報フィールド603が含まれる。ここで、SPAフィールド602が無効になっているポート(「−」で示す)は内部ポートであり、有効になっているポート(SPAが設定されている)は外部ポートである。
管理情報503には、変換テーブル302と、ポート設定情報テーブル504がある。変換テーブル302は、図3の各外部ポートに設定される変換テーブルと同じものである。変換テーブル302は例えば全ての外部ポートで共通なものとしてよいので、初期設定時にはこの変換テーブル302のコピーが、管理系503からパス501を介して、各PCIeスイッチ103の各ポートに配信される。
ポート設定情報テーブル504には、物理スイッチ番号フィールド600、ポート番号フィールド601、SPAフィールド602、レンジレジスタ設定情報フィールド603が含まれる。ここで、SPAフィールド602が無効になっているポート(「−」で示す)は内部ポートであり、有効になっているポート(SPAが設定されている)は外部ポートである。
次に、図9を参照して、PCIeスイッチの初期設定の制御動作について説明する。
管理系500は、ポート設定情報テーブル504を参照して、変換テーブル302と各PCIeスイッチのスイッチ管理ユニットに対応するエントリを、パス501を介して各PCIeスイッチのスイッチ管理ユニット505に転送する(S900)。各PCIeスイッチ管理ユニット505は、転送されたポート設定情報テーブル504と、変換テーブル302の自分に対応するエントリを受け取る(S901)。そして、各PCIeスイッチのスイッチ管理ユニット505は、ポート設定情報テーブルの情報を基に、各ポートのSPAを表すレジスタ302とレンジレジスタ300の設定を行う。各PCIeスイッチの管理ユニット505は、ポート設定情報テーブルを参照して、外部ポートだけに変換テーブル302の設定を行う(S903)。ポートが外部ポートであるかは、ポート設定情報テーブルのSPAフィールド602が有効であるか否かで判断する。
管理系500は、ポート設定情報テーブル504を参照して、変換テーブル302と各PCIeスイッチのスイッチ管理ユニットに対応するエントリを、パス501を介して各PCIeスイッチのスイッチ管理ユニット505に転送する(S900)。各PCIeスイッチ管理ユニット505は、転送されたポート設定情報テーブル504と、変換テーブル302の自分に対応するエントリを受け取る(S901)。そして、各PCIeスイッチのスイッチ管理ユニット505は、ポート設定情報テーブルの情報を基に、各ポートのSPAを表すレジスタ302とレンジレジスタ300の設定を行う。各PCIeスイッチの管理ユニット505は、ポート設定情報テーブルを参照して、外部ポートだけに変換テーブル302の設定を行う(S903)。ポートが外部ポートであるかは、ポート設定情報テーブルのSPAフィールド602が有効であるか否かで判断する。
次に、幾つかの他の実施例について説明する。
図10に示す、本実施例の計算機システム100において、図1の計算機システムと異なる構成は、計算機システム100が複数のサーバ101を有すること、サーバ101が接続される外部ポート120ごとに異なる変換テーブル(バス番号ごとに重複しない異なるSPAが設定された)301を用いることである。(なお、図1と同一部分には同一符号を付してある。)外部ポート120ごとに異なる変換テーブル301を持つことによって、異なるサーバ101から出力されたTLPの宛先バス番号が同一でも、異なる宛先SPAがTLPにラベルとして付加される。そのため、各サーバ上のソフトウェアに、それぞれ異なる仮想PCIeトポロジを見せることができる。各仮想PCIeトポロジで扱うことができるバス番号は256が上限であるが、複数のPCIeトポロジを用いることにより、計算機システム全体で256以上のデバイスを扱うことが可能となる。
図11に示す、本実施例の計算機システム100において、図1の計算機システムと異なる構成は、複数のサーバ101に、1つの共通なPCIeスイッチ1031及びPCIeスイッチ1032が接続されること、PCIeスイッチ1031と1032間を複数のPCIeバス102で接続していること、及び内部ポート121に整数を記憶することができるレジスタ305が設けられていることである。(なお、図1と同一部分には同一符号を付してある。)
レジスタ305に記憶する整数の範囲は、「0」から(PCIeスイッチの間のPCIeバス102の本数−1)までで、それぞれのPCIeバス102と接続している1つのPCIeスイッチ103内の内部ポート121内のレジスタ305で、重複しないように割り当られる。また、これらの内部ポートのレンジレジスタ300には、同じ値を割り当てる。
レジスタ305に記憶する整数の範囲は、「0」から(PCIeスイッチの間のPCIeバス102の本数−1)までで、それぞれのPCIeバス102と接続している1つのPCIeスイッチ103内の内部ポート121内のレジスタ305で、重複しないように割り当られる。また、これらの内部ポートのレンジレジスタ300には、同じ値を割り当てる。
実施例1において、内部ポートがTLPをスイッチ内部から外部へ通過させることができる条件は、TLPの宛先SPAがレンジレジスタ300で示される値の範囲内であったが、本実施例では、実施例1での条件に加え、宛先SPAをある整数で除算した余りが、レジスタ305に記憶されている値と等しいことも条件に加えられる。ここで、ある整数とは、PCIeスイッチ間のPCIeバスの本数である。
レジスタ305に割り当てる整数の条件により、TLPは複数の内部ポートのうちいずれかを通過することができる。レンジレジスタ300と、整数を記憶するレジスタ305の組は、宛先SPAを有するTLPを何れのポートに転送するかのSPAの集合を示すので、これはSPAの集合選択手段の一種である。
レジスタ305に割り当てる整数の条件により、TLPは複数の内部ポートのうちいずれかを通過することができる。レンジレジスタ300と、整数を記憶するレジスタ305の組は、宛先SPAを有するTLPを何れのポートに転送するかのSPAの集合を示すので、これはSPAの集合選択手段の一種である。
実施例1の内部ポート121はそれぞれのレンジレジスタ305が示す範囲が重複してはならない。一方、あるサーバ101から送信されるTLPの宛先SPAの範囲は、近い値に集中している可能性が高い。そのため、2つのPCIeスイッチ103間の転送効率を上げる目的で、PCIeスイッチを複数のPCIeバス102で接続しても、実施例1の内部ポート121を用いると、特定のPCIeバスにだけ通過するTLPが偏り、スイッチ間を複数のPCIeバスで接続した効果が低くなるおそれがある。
これに対して、本実施例における内部ポート121は、TLPをスイッチ内部から外部に通過させる条件として、宛先SPAをある整数で除算した余りとレジスタ305の値が等しいことを条件に加えたため、レンジレジスタ300の値が他の内部ポートのレンジレジスタと重複していてもよい。そのため、あるサーバ101から送信されるTLPの宛先SPAが集中していても、宛先SPAを除算した余りによって、TLPを均等に各PCIeバスに振り分けることができる。そのため、PCIeバスの負荷分散が可能になり、2つのPCIeスイッチ間を複数のPCIeバスで接続した効果を高めることができる。
100:計算機システム 101:サーバ 102:PCIeバス
103:PCIeスイッチ 104:PCIeデバイス 105:CPU
111:メモリ 112:チップセット 120:外部ポート 121:内部ポート
19:I/Oデバイス
200:TLP 201:トランザクション層パケット本体 202:TLP Prefix
203:バス番号フィールド 204:SPAフィールド
300:レンジレジスタ 301:変換テーブル 302:SPA記憶レジスタ
303:バス番号フィールド 304:SPAフィールド
400:仮想PCIeスイッチ 401:仮想PCIeバス
402:スイッチとサーバ又はスイッチとPCIeデバイスを接続するバスのバス番号
403:スイッチ内部又はスイッチ間を接続するバスのバス番号
500:管理系 501:初期設定用パス 502:管理プロセッサ 503:管理情報 504:ポート設定情報テーブル 505:スイッチ管理ユニット 506:スイッチ内設定用パス
600:物理スイッチ番号フィールド 601:ポート番号フィールド
602:SPAフィールド 603:レンジレジスタ設定情報フィールド
103:PCIeスイッチ 104:PCIeデバイス 105:CPU
111:メモリ 112:チップセット 120:外部ポート 121:内部ポート
19:I/Oデバイス
200:TLP 201:トランザクション層パケット本体 202:TLP Prefix
203:バス番号フィールド 204:SPAフィールド
300:レンジレジスタ 301:変換テーブル 302:SPA記憶レジスタ
303:バス番号フィールド 304:SPAフィールド
400:仮想PCIeスイッチ 401:仮想PCIeバス
402:スイッチとサーバ又はスイッチとPCIeデバイスを接続するバスのバス番号
403:スイッチ内部又はスイッチ間を接続するバスのバス番号
500:管理系 501:初期設定用パス 502:管理プロセッサ 503:管理情報 504:ポート設定情報テーブル 505:スイッチ管理ユニット 506:スイッチ内設定用パス
600:物理スイッチ番号フィールド 601:ポート番号フィールド
602:SPAフィールド 603:レンジレジスタ設定情報フィールド
Claims (13)
- サーバと1又は複数のデバイスが、複数のポートを有する複数のPCIeスイッチを介して接続され、該PCIeスイッチの該ポートを通して該サーバとデバイス間でパケットを転送する計算機システムであって、
該ポートは、該PCIeスイッチどうしを接続するポートである内部ポート、又は該サーバ又は該デバイスに接続されているポートである外部ポートであり、
該外部ポートは、該計算機システム内で該外部ポートに一意に割り当てられたシステムポートアドレス(SPA)を保持する記憶部と、該宛先バス番号と前記SPAとの対応付けを管理する変換手段と、該SPAの集合を設定するSPA集合設定手段を有し、
前記内部ポートは、前記SPAが保持されない記憶部と、該SPAの集合を設定するSPA集合設定手段とを有し、
該PCIeスイッチの外部から、パケットを該ポートが受けたとき;
該ポートが外部ポートである場合、
前記変換手段を参照して、該パケットが有する宛先バス番号に対応するSPAを求め、該SPAをラベルとして該パケットに付加し、
該パケットに付加された該SPAを用いて、該SPA集合設定手段が指定するSPAの集合を判断しながら、該SPAの宛先に含まれるポートに該パケットを転送し、
該ポートが内部ポートである場合、
該パケットに付加された該SPAを用いて、該SPA集合設定手段が指定するSPAの集合を判断しながら、該SPAの宛先に含まれるポートに該パケットを転送し、
該PCIeスイッチの内部から、該パケットを該ポートが受けたとき;
該ポートが外部ポートである場合、該パケットに付加した該SPAを削除し、
該パケットが有する宛先バス番号を用いて、該パケットを該外部ポートに接続された該サーバ又は該デバイスへ転送し、
該ポートが内部ポートである場合、該内部ポートに接続される他のスイッチの内部ポートに該パケットを転送する
ことを特徴する計算機システム。 - 前記SPA集合設定手段によって指定されるSPAの集合は、該外部ポートをスイッチ内部から外部方向へ通過することができるパケットの宛先となるSPAの範囲であり、
かつ、各々の該外部ポートは、自身のポートが外部ポートであることを示すSPAを記憶するレジスタを有することを特徴する請求項1記載の計算機システム。 - 前記変換手段、前記SPA集合設定手段、及び前記レジスタの内容は、初期設定時に、該複数のPCIeスイッチに接続された管理系より設定されることを特徴する請求項1の計算機システム。
- ある該スイッチ(第1のスイッチ)のポート(第1のポート)を別の該スイッチ(第2のスイッチ)のポート(第2のポート)に接続し、
第1のポートの前記SPA集合設定手段に、
第2のスイッチに、該第1のスイッチ以外のスイッチが接続されている場合は、第2のスイッチ及びその先のスイッチのポートのSPAを含むようにSPAの集合を設定し、
第2のスイッチに、該第1のスイッチ以外のスイッチが接続されていない場合は、第2のスイッチのポートのSPAを含むように、SPAの集合を設定し、
該第1のポートの前記SPA集合設定手段に設定された該集合に、宛先SPAが含まれる該パケットが、第1のスイッチに入力された場合、該パケットを第1のポート、第2のポートの順に経由させることによって、第2のスイッチに転送する
ことを特徴とする請求項1の計算機システム。 - 該計算機システムは複数のサーバを含み、該サーバごとに、該計算機システム内で複数の該外部ポートを含む該アクセス可能集合を定義することを特徴とする請求項1の計算機システム。
- 該外部ポートが、複数の該アクセス可能集合に含まれることにより、
該外部ポートに接続されている該デバイスが複数の該サーバと該パケットの送受信を行うことを特徴とする請求項7の計算機システム。 - 該SPA及び該バス番号は2進数で表現され、
該SPAを表現する2進数がバス番号を表現する2進数のビット数より大きくして、より多くの該デバイスと、より多くの該サーバを単一の計算機システムとして接続することを特徴とする請求項1の計算機システム。 - 複数のポートを有するPCIeスイッチを介して、サーバと1又は複数のデバイスの間でパケットを転送する計算機システムにおいて、該ポートは、PCIeスイッチどうしを接続するポートである内部ポート、又はサーバ又はデバイスに接続されているポートである外部ポートであり、
該外部ポートは、該計算機システム内で該外部ポートに一意に割り当てられたシステムポートアドレス(SPA)を保持する記憶部と、該宛先バス番号と前記SPAとの対応付けを管理する変換手段と、該SPAの集合を設定するSPA集合設定手段を有し、
前記内部ポートは、前記SPAが保持されない記憶部と、該SPAの集合を設定するSPA集合設定手段とを有する計算機システムにおけるパケットのルーティング制御方法であって、
該PCIeスイッチの外部から、パケットを該ポートが受けたとき;
該ポートが外部ポートである場合、
前記変換手段を参照して、該パケットが有する宛先バス番号に対応するSPAを求め、該SPAをラベルとして該パケットに付加し、
該パケットに付加された該SPAを用いて、該SPA集合設定手段が指定するSPAの集合を判断しながら、該SPAの宛先に含まれるポートに該パケットを転送し、
該ポートが内部ポートである場合、
該パケットに付加された該SPAを用いて、該SPA集合設定手段が指定するSPAの集合を判断しながら、該SPAの宛先に含まれるポートに該パケットを転送し、
該PCIeスイッチの内部から、該パケットを該ポートが受けたとき;
該ポートが外部ポートである場合、該パケットに付加した該SPAを削除し、
該パケットが有する宛先バス番号を用いて、該パケットを該外部ポートに接続された該サーバ又は該デバイスへ転送し、
該ポートが内部ポートである場合、該内部ポートに接続される他のスイッチの内部ポートに該パケットを転送する
ことを特徴するルーティング制御方法。 - 前記外部ポートに予め用意された、宛先バス番号とSPAの複数の対を登録する変換テーブルを参照して、前記外部ポートに達した該パケットに保持される宛先バス番号から該SPAを求めることを特徴する請求項10のルーティング制御方法。
- 該パケットが、目的とするサーバ又はデバイスが接続された外部ポートに達したときに、該パケットに付加された該SPAを除去し、その後に、該パケットを該外部ポートに接続された該サーバ又は該デバイスへ転送することを特徴する請求項10のルーティング制御方法。
- 前記宛先バス番号に対応するSPAの割り当ては、初期設定時に、該複数のPCIeスイッチに接続された管理系より設定されることを特徴する請求項10のルーティング制御方法。
- 前記ポートの前記記憶部を参照して、SPAが保持されている場合は外部ポートであり、SPAが保持されていない場合は内部ポートであることを特徴とする請求項1の計算機システム。
- 前記SPA集合設定手段は、該SPAが付加されたパケットを何れのポートに転送するかのSPAの集合であることを特徴とする請求項1の計算機システム。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/JP2010/073395 WO2012086068A1 (ja) | 2010-12-24 | 2010-12-24 | 計算機システムおよびルーティング制御方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP5452733B2 true JP5452733B2 (ja) | 2014-03-26 |
JPWO2012086068A1 JPWO2012086068A1 (ja) | 2014-05-22 |
Family
ID=46313365
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2012549553A Expired - Fee Related JP5452733B2 (ja) | 2010-12-24 | 2010-12-24 | 計算機システムおよびルーティング制御方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US9612989B2 (ja) |
JP (1) | JP5452733B2 (ja) |
WO (1) | WO2012086068A1 (ja) |
Families Citing this family (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8972611B2 (en) * | 2011-08-11 | 2015-03-03 | Cisco Technology, Inc. | Multi-server consolidated input/output (IO) device |
DE102012102198A1 (de) * | 2012-03-15 | 2013-09-19 | Fujitsu Technology Solutions Intellectual Property Gmbh | Modulares Serversystem, I/O-Modul und Switching-Verfahren |
JP5928087B2 (ja) | 2012-03-29 | 2016-06-01 | 富士通株式会社 | スイッチ、情報処理装置および通信制御方法 |
JP6089835B2 (ja) * | 2013-03-19 | 2017-03-08 | 富士通株式会社 | 情報処理装置及び制御方法 |
US20140372660A1 (en) * | 2013-06-14 | 2014-12-18 | National Instruments Corporation | Packet Routing Based on Packet Type in Peripheral Component Interconnect Express Bus Systems |
WO2015033384A1 (ja) * | 2013-09-03 | 2015-03-12 | 株式会社アキブシステムズ | I/oデバイスの仮想化のためのコンピュータシステム及びその運用方法並びにhub装置 |
US20150347345A1 (en) * | 2014-04-30 | 2015-12-03 | Cirrascale Corporation | Gen3 pci-express riser |
JP6298534B2 (ja) * | 2014-08-05 | 2018-03-20 | 株式会社アキブシステムズ | 経路制御装置及び経路制御方法並びにコンピュータシステム及びプログラム及びプログラムを格納した記憶媒体 |
CN104579772B (zh) * | 2014-12-30 | 2018-12-14 | 华为技术有限公司 | 计算机设备与计算机设备的配置管理方法 |
TWI721319B (zh) * | 2016-06-10 | 2021-03-11 | 美商利魁得股份有限公司 | 資料儲存系統中的多埠中介件架構 |
US10795842B2 (en) | 2017-05-08 | 2020-10-06 | Liqid Inc. | Fabric switched graphics modules within storage enclosures |
JP2019164486A (ja) | 2018-03-19 | 2019-09-26 | 東芝メモリ株式会社 | 情報処理システム、情報処理方法及びメモリシステム |
CN109408451B (zh) * | 2018-11-05 | 2022-06-14 | 英业达科技有限公司 | 一种图形处理器系统 |
US10585827B1 (en) | 2019-02-05 | 2020-03-10 | Liqid Inc. | PCIe fabric enabled peer-to-peer communications |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH10112726A (ja) * | 1996-10-04 | 1998-04-28 | Nippon Telegr & Teleph Corp <Ntt> | パケットルータ処理装置 |
JPH10222453A (ja) * | 1997-01-27 | 1998-08-21 | Internatl Business Mach Corp <Ibm> | コンピュータ・システム内でバス・アドレスを動的に変換する方法及びシステム |
JP2002149592A (ja) * | 2000-10-31 | 2002-05-24 | Fujitsu Ltd | ネットワーク上でのpciブリッジ |
US7293129B2 (en) * | 2005-04-22 | 2007-11-06 | Sun Microsystems, Inc. | Flexible routing and addressing |
JP2008181389A (ja) * | 2007-01-25 | 2008-08-07 | Nec Computertechno Ltd | ノード制御装置および情報処理装置 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7565463B2 (en) | 2005-04-22 | 2009-07-21 | Sun Microsystems, Inc. | Scalable routing and addressing |
WO2013136522A1 (ja) * | 2012-03-16 | 2013-09-19 | 株式会社日立製作所 | 計算機システム及び計算機間のデータ通信方法 |
-
2010
- 2010-12-24 WO PCT/JP2010/073395 patent/WO2012086068A1/ja active Application Filing
- 2010-12-24 JP JP2012549553A patent/JP5452733B2/ja not_active Expired - Fee Related
- 2010-12-24 US US13/997,539 patent/US9612989B2/en active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH10112726A (ja) * | 1996-10-04 | 1998-04-28 | Nippon Telegr & Teleph Corp <Ntt> | パケットルータ処理装置 |
JPH10222453A (ja) * | 1997-01-27 | 1998-08-21 | Internatl Business Mach Corp <Ibm> | コンピュータ・システム内でバス・アドレスを動的に変換する方法及びシステム |
JP2002149592A (ja) * | 2000-10-31 | 2002-05-24 | Fujitsu Ltd | ネットワーク上でのpciブリッジ |
US7293129B2 (en) * | 2005-04-22 | 2007-11-06 | Sun Microsystems, Inc. | Flexible routing and addressing |
JP2008181389A (ja) * | 2007-01-25 | 2008-08-07 | Nec Computertechno Ltd | ノード制御装置および情報処理装置 |
Also Published As
Publication number | Publication date |
---|---|
US20140006679A1 (en) | 2014-01-02 |
WO2012086068A1 (ja) | 2012-06-28 |
US9612989B2 (en) | 2017-04-04 |
JPWO2012086068A1 (ja) | 2014-05-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5452733B2 (ja) | 計算機システムおよびルーティング制御方法 | |
US11429550B2 (en) | System and method for extended peripheral component interconnect express fabrics | |
JP6231679B2 (ja) | 周辺コンポーネント相互接続エクスプレスドメインのためのリソース管理 | |
JP5280135B2 (ja) | データ転送装置 | |
JP5310175B2 (ja) | スイッチシステム、及びスイッチシステムの制御方法 | |
CN104641360A (zh) | 对存储器及对等设备的双播PCIe入站写入 | |
CN105993009A (zh) | 通过非透明桥向PCIe集群中的计算资源传送MSI-X中断的方法和装置 | |
CN106164898B (zh) | 数据处理方法和装置 | |
JP5928087B2 (ja) | スイッチ、情報処理装置および通信制御方法 | |
WO2016065611A1 (zh) | 访问文件的方法、系统和主机 | |
JP6579140B2 (ja) | 変換装置、ホスト装置、入出力スイッチシステム、情報処理システム、方法およびプログラム | |
JP2008181389A (ja) | ノード制御装置および情報処理装置 | |
US11836105B2 (en) | Communication device, information processing system, and communication method | |
JP2013003958A (ja) | I/oデバイス共有方法、および装置 | |
WO2015155997A1 (ja) | 設定装置、制御装置、設定方法及びネットワークスイッチ | |
WO2023112646A1 (ja) | 情報処理装置、及び情報処理装置の制御方法 | |
JP2012113604A (ja) | 計算機システム、方法、及びi/oスイッチ | |
WO2016065612A1 (zh) | 访问文件的方法、系统和主机 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
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: 20131203 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20131227 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 Ref document number: 5452733 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
LAPS | Cancellation because of no payment of annual fees |