JP5399570B2 - 計算機システム、それに使用されるスイッチ及びパケット転送制御方法 - Google Patents

計算機システム、それに使用されるスイッチ及びパケット転送制御方法 Download PDF

Info

Publication number
JP5399570B2
JP5399570B2 JP2012546587A JP2012546587A JP5399570B2 JP 5399570 B2 JP5399570 B2 JP 5399570B2 JP 2012546587 A JP2012546587 A JP 2012546587A JP 2012546587 A JP2012546587 A JP 2012546587A JP 5399570 B2 JP5399570 B2 JP 5399570B2
Authority
JP
Japan
Prior art keywords
pci
virtual
bridge
pci bridge
packet data
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
Application number
JP2012546587A
Other languages
English (en)
Other versions
JPWO2012073304A1 (ja
Inventor
一輝 佐藤
貴司 戸▲高▼
亮 ▲高▼瀬
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hitachi Ltd filed Critical Hitachi Ltd
Application granted granted Critical
Publication of JP5399570B2 publication Critical patent/JP5399570B2/ja
Publication of JPWO2012073304A1 publication Critical patent/JPWO2012073304A1/ja
Expired - Fee Related 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/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4004Coupling between buses
    • G06F13/4027Coupling between buses using bus bridges
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4004Coupling between buses
    • G06F13/4027Coupling between buses using bus bridges
    • G06F13/404Coupling between buses using bus bridges with address mapping
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2213/00Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F2213/0024Peripheral component interconnect [PCI]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2213/00Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F2213/0026PCI express

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Bus Control (AREA)

Description

本発明は、計算機システム、それに使用されるスイッチ及びパケット転送制御方法に係り、特に、複数の計算機と複数のI/Oデバイスを、PCIeスイッチを用いて接続する計算機システムにおける、PCIeスイッチによるパケットデータの転送制御に関する。
PCI Express(以下、PCIeという)は、PCI−SIG(PCI Special Interest Group)により策定された、計算機で使用される拡張バスの一種である。PCIeは、シリアル転送インターフェースと全二重通信方式とを採用している。PCIeのデータ転送方式は、ネットワークでのパケットデータ(以下単にパケットという)の送受信に近い形で行われ、このパケットの伝送路は、PCIeリンクと呼ばれる。
PCIeの構成要素は、Root Complex、Endpoint、及びPCIeスイッチである。Root Complexは、CPUとPCIeリンクとを結び付ける機能である。Root Complexは、一般的に、計算機内のI/Oコントローラに内蔵される。Endpointは、PCIeリンクの末端の機能である。Endpointは、一般的に、I/Oデバイスに内蔵される。
PCIeスイッチは、PCIeリンクの数を拡張し、パケットを中継する機能であり、複数のPCI−PCIブリッジで構成される。PCI−PCIブリッジは、受信したパケットの通過可否を判定する機能を持つ。PCIeスイッチとI/Oデバイスとは、計算機内のRoot Complexに、PCIeリンクで接続される。Root Complexに接続されたPCIe構成要素の接続形態を、PCIeトポロジと呼ぶ。
PCI Manager(以下、PCIM)は、PCIeトポロジの生成、削除、変更等の、PCIeトポロジの管理及び制御を行う。PCIMはソフトウェアとして実装されるため、計算機でも実行可能であるが、一般的にセキュリティの面を考慮してSupervisor Processor(SVP)に実装される。PCIMは、PCIMが認識したそれぞれのPCIeリンクに、バス番号と呼ばれる番号を付与する。PCIeでは、バス番号を使用して、各PCIeリンクの識別を行う。
また、PCIMは、PCIMが認識した、各PCI−PCIブリッジとI/Oデバイスとから、あらかじめ付与されたデバイス番号と呼ばれる番号を読み出す。PCIeでは、デバイス番号を使用して、各PCI−PCIブリッジや各I/Oデバイスの識別を行う。例えば、あるI/Oデバイスにパケットを送信する際、I/Oデバイスに接続しているPCIeリンクのバス番号、及びI/Oデバイスのデバイス番号の情報をパケットの宛先に付加することで、パケットを宛先のデバイスに正しく伝達することができる。
データスイッチを用いた、I/Oデバイスとサーバとの間のルーティング制御に関して、例えば特許文献1には、データスイッチをプロキシコントローラに接続して、パケットをデータ転送のパケットと制御用のパケットとに分類し、制御用のパケットをプロキシコントローラで処理する技術が開示されている。また、少なくとも1台のサーバから仮想化されたI/Oデバイスをアクセスすることについて記載されている。
また、例えば特許文献2には、コンフィギュレーション・エンティティと呼ばれる、パケットの分類器と組み込みプロセッサとを一体としたモジュールをPCIeスイッチに内蔵し、パケットをデータ転送のパケットと制御用のパケットとに分類し、制御用のパケットを組み込みプロセッサで処理する技術が開示されている。
米国特許出願公開第2009/0150563号 米国特許第7752376号
PCIMは、PCIeトポロジに基づいて、I/Oコントローラに接続されたPCIeリンク、PCIeスイッチ、及びI/Oデバイスを認識する。そのため、PCIeトポロジにおいて、PCIeリンクとバス番号との対応付けは、一意に決められている。
例えば、I/OコントローラにPCIeスイッチを多段に接続し、末端のPCIeスイッチにI/Oデバイスを接続した場合、PCI−PCIブリッジ間を接続するPCIeリンクが多数必要になる。このPCIeリンクはI/Oデバイスが接続されないが、PCIMによってバス番号が付与される。一方、PCIeの仕様では、使用可能なバス番号の数は256個に制約されている。そのため、I/Oデバイスが接続するためのPCIeリンクに付与できるバス番号の数は減少する。したがって、PCIMが認識可能なI/Oデバイスの数が減少するという課題が生じる。特許文献1、及び特許文献2には、上記課題に対する格別な解決策の示唆がない。
本発明の第1の目的は、PCIeスイッチを介して計算機とI/Oデバイスを接続してPCIeトポロジを構築する場合、接続可能なI/Oデバイスの数が減少するのを防止することにある。
また、特許文献2の技術を用いたPCIeスイッチでは、入力された全ての制御用のパケットを組み込みプロセッサが処理する。そのため、組み込みプロセッサに負荷がかかり、パケットを処理する能力が低下する懸念がある。
本発明の第2の目的は、PCIeスイッチに含まれるプロセッサの負荷を軽減し、パケットを処理する能力が低下するのを防止することにある。
本発明に係る計算機システムは、好ましくは、計算機とI/Oデバイスに接続されるスイッチを介して、パケットデータを転送する計算機システムであって、
該スイッチは、該計算機側に配置された第1のPCI−PCIブリッジと、該I/Oデバイス側に配置された第2のPCI−PCIブリッジと、該スイッチに入力されるパケットデータを捕捉する捕捉部と、該パケットデータをI/Oデバイスへ転送するパケット・ルーティング部を有し、
該捕捉部に接続され、プログラムの実行によって仮想PCI−PCIブリッジ及び仮想リンクを該計算機に提供する管理プロセッサを有し、
該捕捉部は、該計算機から転送されるパケットデータの宛先を判定し、
該判定の結果、該宛先がI/Oデバイスの場合は該パケットデータを捕捉せず通過させ、該パケットデータは、該パケット・ルーティング部及び該第2のPCI−PCIブリッジを介してI/Oデバイスへ転送され、
該判定の結果、該宛先が仮想PCI−PCIブリッジの場合は該パケットデータを捕捉して該管理プロセッサへ送信し、
該管理プロセッサは、該パケットデータに応じて応答用のパケットデータを、第1のPCI−PCIブリッジを介して該計算機へ送信することを特徴とする計算機システムとして構成される。
好ましい例によれば、上記計算機システムにおいて、前記スイッチは、前記管理プロセッサとメモリを有する半導体スイッチであり、該メモリは、仮想PCI−PCIブリッジのアドレス空間を保持する。
また、好ましくは、上記計算機システムにおいて、前記計算機が有するプロセッサで、前記管理プロセッサの動作を行う。
また、好ましくは、上記計算機システムにおいて、前記捕捉部は、該計算機から送信されるパケットデータを受信するPCIeパケット受信部と、PCI−PCIブリッジが使用するアドレスの範囲、バス番号、及びデバイス番号を記憶しており、入力されたパケットデータの宛先と比較して、該パケットデータを捕捉するか否かを判断する比較部と、該管理プロセッサとの間で転送されるパケットデータを一時保存するバッファと、該管理プロセッサとの間でパケットデータの転送する入出力部と、該管理プロセッサから転送される宛先がI/Oコントローラのパケットデータを送信するPCIeパケット送信部を有する。
また、好ましくは、上記計算機システムにおいて、前記計算機は、自らで動作するプログラムによって該管理プロセッサが提供する前記仮想PCIeトポロジを認識することができ、
かつ該仮想PCIeトポロジは、PCIeスイッチ間を接続するPCI−PCIブリッジを仮想PCI−PCIブリッジと、該計算機及びPCIeスイッチ及びI/Oデバイス間を接続する仮想PCIeリンクとを含み、
該計算機システムの物理構成に含まれるPCI−PCIブリッジを物理PCI−PCIブリッジとし、
該仮想PCI−PCIブリッジと該物理PCI−PCIブリッジとを1対1で対応付け可能なPCI−PCIブリッジについては、対応付け可能なPCI−PCIブリッジのアドレス空間は、物理PCI−PCIブリッジ上に実現し、
該仮想PCI−PCIブリッジと該物理PCI−PCIブリッジとを1対1で対応付けできないPCI−PCIブリッジについては、対応付けをしない仮想PCI−PCIブリッジのアドレス空間をメモリ内に展開し、
前記管理プロセッサは、該メモリ内の該仮想PCI−PCIブリッジのアドレス空間をアクセスして、必要な場合には該メモリから応答を取得して、該応答を該捕捉部へ送信する。
また、好ましくは、上記計算機システムにおいて、前記仮想PCI−PCIブリッジと、前記物理PCI−PCIブリッジの対応付けを変更することにより、該I/Oデバイスに付与されるバス番号を変化させる。
本発明に係るスイッチは、好ましくは、計算機とI/Oデバイスに接続されて、パケットデータを転送するPCIeスイッチであって、
該計算機側に配置された第1のPCI−PCIブリッジと、該I/Oデバイス側に配置された第2のPCI−PCIブリッジと、
該スイッチに入力されるパケットデータを捕捉する捕捉部と、
該パケットデータをI/Oデバイスへ転送するパケット・ルーティング部と、
該捕捉部に接続され、プログラムの実行によって仮想PCI−PCIブリッジ及び仮想リンクを該計算機に提供する管理プロセッサを有し、
該捕捉部は、該計算機から転送されるパケットデータの宛先を判定し、
該判定の結果、該宛先がI/Oデバイスの場合は該パケットデータを捕捉せず通過させ、該パケットデータは、該パケット・ルーティング部及び該第2のPCI−PCIブリッジを介してI/Oデバイスへ転送され、
該判定の結果、該宛先が仮想PCI−PCIブリッジの場合は該パケットデータを捕捉して該管理プロセッサへ送信し、
該管理プロセッサは、該パケットデータに応じて応答用のパケットデータを、第1のPCI−PCIブリッジを介して該計算機へ送信することを特徴とするPCIeスイッチとして構成される。
好ましくは、前記スイッチは、該仮想PCI−PCIブリッジのアドレス空間を保持するメモリを有し、該管理プロセッサは、該メモリ内の、該仮想PCI−PCIブリッジのアドレス空間をアクセスして、必要な場合には該メモリから応答を取得して、該応答を該捕捉部へ送信する。
また、好ましくは、上記PCIeスイッチにおいて、前記捕捉部は、該計算機から送信されるパケットデータを受信するPCIeパケット受信部と、PCI−PCIブリッジが使用するアドレスの範囲、バス番号、及びデバイス番号を記憶しており、入力されたパケットデータの宛先と比較して、該パケットデータを捕捉するか否かを判断する比較部と、該管理プロセッサとの間で転送されるパケットデータを一時保存するバッファと、該管理プロセッサとの間でパケットデータの転送する入出力部と、該管理プロセッサから転送される宛先がI/Oコントローラのパケットデータを送信するPCIeパケット送信部を有する。
また、好ましくは、上記PCIeスイッチにおいて、該仮想PCIeトポロジは、PCIeスイッチ間を接続するPCI−PCIブリッジを仮想PCI−PCIブリッジと、該計算機及びPCIeスイッチ及びI/Oデバイス間を接続する仮想PCIeリンクとを含み、
該計算機システムの物理構成に含まれるPCI−PCIブリッジを物理PCI−PCIブリッジとし、
該仮想PCI−PCIブリッジと該物理PCI−PCIブリッジとを1対1で対応付け可可能なPCI−PCIブリッジについては、対応付け可能なPCI−PCIブリッジのアドレス空間は、物理PCI−PCIブリッジ上に実現し、
該仮想PCI−PCIブリッジと該物理PCI−PCIブリッジとを1対1で対応付けできないPCI−PCIブリッジについては、対応付けをしない仮想PCI−PCIブリッジのアドレス空間をメモリ内に展開する。
本発明に係るパケット転送制御方法は、好ましくは、計算機とI/Oデバイスに接続されるPCIeスイッチを用いてパケットデータの転送を制御するパケット転送制御方法であって、PCIeスイッチのTrapperモジュールは、PCIeスイッチに入力されるパケットデータの宛先を参照して、該パケットデータを捕捉するか否かを判定し、
該判定の結果、該宛先がPCI−PCIブリッジのパケットデータの場合、該Trapperモジュールは、該パケットデータを捕捉して管理プロセッサへ転送し、
該判定の結果、該宛先がI/Oデバイスのパケットデータの場合、該Trapperモジュールは、該パケットデータを捕捉しないで、該I/Oデバイスへ転送し、
該管理プロセッサは、該Trapperモジュールから転送される該パケットデータを受信すると、該管理プロセッサに接続するメモリに実現されたPCI−PCIブリッジのアドレス空間をアクセスして、必要な場合には該メモリから応答を取得して、該応答を該Trapperモジュールへ送信し、
該Trapperモジュールは、管理プロセッサから取得した該応答を、該計算機へ送信することを特徴とするパケット転送制御方法として構成される。
本発明に係るパケット転送制御方法は、また、好ましくは、計算機とI/Oデバイスに接続されるPCIeスイッチを用いてパケットデータの転送を制御するパケット転送制御方法であって、PCI−PCIブリッジを管理する管理プロセッサに接続されるメモリは、その内に仮想PCI−PCIブリッジ及び仮想リンクを予め用意するステップと、
該PCIeスイッチは、該計算機側に配置された第1のPCI−PCIブリッジを介して、該計算機から転送されるパケットデータを受信するステップと、
該PCIeスイッチの捕捉部は、受信したパケットデータの宛先を判定するステップと、
該判定の結果、該宛先がI/Oデバイスの場合、該捕捉部は該パケットデータを捕捉せず通過させ、該I/Oデバイス側に配置された第2のPCI−PCIブリッジを介してI/Oデバイスへ転送するステップと、
該判定の結果、該宛先が仮想PCI−PCIブリッジの場合、該捕捉部は該パケットデータを捕捉して、該捕捉部に接続された管理プロセッサへ送信するステップと、
該管理プロセッサは、該捕捉部より受信した該パケットデータに応じて、該メモリを参照して応答用のパケットデータを用意して、第1のPCI−PCIブリッジを介して該計算機へ送信するステップを有することを特徴とするパケット転送制御方法として構成される。
本発明によれば、計算機にPCIeスイッチを多段に接続し、末端のPCIeスイッチにI/Oデバイスを接続してPCIeトポロジを構築する場合、接続可能なI/Oデバイスの数が減少するのを防止することが可能となる。とりわけ、仮想PCIeトポロジへのアクセスを、異なる物理構成を持つPCIeトポロジに実現することができ、かつ、物理的な接続に依存しない仮想PCIeトポロジを実現することが可能となる。これにより、I/Oデバイスが接続するPCIeリンクに、PCIMがバス番号を柔軟に割り当てることが可能となる。
一実施形態による計算機システムの構成を示す図。 一実施形態による仮想PCIeトポロジの構成を示す図。 一実施形態によるTrapperモジュールの構成を示す図。 一実施形態によるPCIeのパケットを示す図。 一実施形態によるTrapperモジュールの動作を示すフローチャート図。 一実施形態によるメモリのアドレス空間を示すブロック図。 一実施形態によるバス番号と仮想PCIeリンクの対応付けを示す図。 一実施形態による管理プロセッサ上で動作するファームウェアの処理を示すフローチャート図。 一実施形態によるI/Oコントローラから仮想PCI−PCIブリッジへのアクセスが発生した場合の処理を示すフローチャート図。 一実施形態によるI/Oコントローラから仮想PCI−PCIブリッジへのアクセスが発生した場合の処理を示すフローチャート図。 一実施形態によるI/Oコントローラから仮想PCI−PCIブリッジへのアクセスが発生した場合のパケットの流れを示す図。 一実施形態によるI/Oコントローラから仮想PCI−PCIブリッジへのアクセスが発生した場合のパケットの流れを示す図。 一実施形態によるI/Oコントローラから仮想PCI−PCIブリッジへのアクセスが発生した場合のパケットの流れを示す図。 一実施形態によるI/OコントローラからI/Oデバイスへのアクセスが発生した場合のパケットの流れを示す図。
以下、図面を参照して、本発明の実施形態について説明する。
図1は、一実施形態における計算機システムの構成を示す。
この計算機システムは、複数の計算機100−1〜100−4と、複数のI/Oデバイス120−1〜120−4を含み、これらは互いに複数のPCIeスイッチ110−1〜110−4を介して接続される。PCIeスイッチは半導体(LSI)で構成されるので、PCIeスイッチLSIということがある。(なお、複数の計算機やI/Oデバイス、PCIeスイッチ等は、特に区別しない限り、単に100、120、110と示す。その他の構成要素に関する符号ついても同様である。)計算機100は、プログラムの実行によって種々のデータ処理を行うプロセッサ(CPU)102と、メモリ103と、PCIeスイッチに接続されるI/Oコントローラ101を有する。
PCIeスイッチ110は、PCI−PCIブリッジ111、112、113と、Trapperモジュール114と、パケット・ルーティング部115と、管理プロセッサ116と、メモリ117を有して構成される。
Trapperモジュール114と管理プロセッサ116との間は、PCIeの仕様に依らない、独自のバス118で接続される。計算機100とPCIeスイッチ110との間は、PCIeリンク130で接続される。異なるPCIeスイッチ110の間は、PCIeリンク140で接続される。PCIeスイッチ110とI/Oデバイス120との間は、PCIeリンク150で接続される。
ここで、Trapperモジュール114の構成について、図3を参照して説明する。
Trapperモジュール114は、本発明に特徴的な構成を成し、パケットの宛先に応じて、PCI−PCIブリッジのパケットを捕捉するか否かを判断する処理機能を有する。図3に示すように、Trapperモジュール114は、PCIeパケット受信部301、パケットの宛先比較部302、バッファ303、管理プロセッサとの入出力部304、及びPCIeパケット送信部305を備えて構成される。
PCIeパケット受信部301は、I/Oコントローラ101からパケットを受信する機能を持つ。パケットの宛先比較部302は、受信したパケットの宛先がPCI−PCIブリッジか否かを判定する。図4のように、PCIeのパケット400のヘッダには、パケットの宛先401が含まれる。パケットの宛先比較部302は、パケットの宛先401を参照して比較することで、パケットを捕捉するか否かを判断する。
パケットの宛先401には2種類の形式がある。1種類目は、宛先をアドレスで指定する形式である。2種類目は、宛先をバス番号、及びデバイス番号で指定する形式である。パケットの宛先比較部302は、PCI−PCIブリッジが使用するアドレスの範囲、バス番号、及びデバイス番号を記憶しており、入力されたパケットの宛先401と比較して、パケットを捕捉するか否かを判断する。PCI−PCIブリッジが使用するアドレスの範囲、バス番号、及びデバイス番号は、管理プロセッサ116から独自バス118を使用して、Trapperモジュール114へ転送される。
Trapperモジュール114は、パケットをデータ転送のパケットと制御用のパケットとで区別しておらず、パケットの宛先でパケットを捕捉するか否かを判断する。そのため、制御用パケットを受信した場合、パケットの宛先がI/Oデバイスであれば、パケットを管理プロセッサに転送せずに通過させる。そのため、制御用のパケットを全て管理プロセッサに転送する場合と比較して、本発明は管理プロセッサの負荷を軽減できる。そして、パケットを処理する能力が低下するのを防止することができる。
バッファ303は、Trapperモジュール114と、後述する管理プロセッサ116との間でパケットを仲介するため、パケットを一時保存する。管理プロセッサとの入出力部304は、管理プロセッサ116と接続され、独自のバスを介してパケットを転送する。PCIeパケット送信部305は、管理プロセッサから転送される宛先がI/Oコントローラ101の応答用パケットを送信する。
Trapperモジュール114は、図1のように、I/Oコントローラ101に接続されるPCI−PCIブリッジ111−1〜111−4と、パケット・ルーティング部115−1、115−2との間に存在することによって、宛先が物理的に存在しないPCI−PCIブリッジのパケットを捕捉することが可能である。
本実施形態では、同一のPCIeスイッチ110を複数個組み合わせることで、計算機システムにおけるパケットのルーティング制御機構が構築される。Trapperモジュール114の各機能は、PCIeスイッチ110がI/Oコントローラ101に接続されている場合に有効にされる。したがって、PCIeスイッチ110−1、110−2に含まれるTrapperモジュール114−1〜114−4は、それらの機能が有効に働いて管理プロセッサを使用したルーティング制御が行われる。
一方、I/Oコントローラ101に接続されないPCIeスイッチ110−3、110−4内の、Trapperモジュール114−5〜114−8はTrapperモジュール114の機能を無効とし、全てのパケットを通過させる。即ち、Trapperモジュール114の機能が働かないので(不要なので)、全てのパケットは管理プロセンサを介さないルーティング制御が行われる。
PCIeリンクは、送信と受信の信号線が分離した、全二重方式で通信を行う。そのため、Trapperモジュール114−1〜114−4に入力される信号線は、PCI−PCIブリッジ111から入力される信号線と、パケット・ルーティング部115から入力される信号線とに分離している。Trapperモジュール114は、PCI−PCIブリッジ111から入力される信号線に、上述のTrapperモジュール114の機能を実装する。そのため、これらTrapperモジュール114の各機能は、PCI−PCIブリッジ111から入力されるパケットに対して機能する。パケット・ルーティング部115から入力される信号線には、Trapperモジュール114の各機能を実装しない。そのため、パケット・ルーティング部115から入力されたパケットは、PCI−PCIブリッジ111に通過する。
本発明は、Trapperモジュール114と管理プロセッサ116とを、一体とはせずに異なるモジュールとしている。そのため、Trapperモジュール114を複数配置することで、1つのTrapperモジュール114にパケットが集中して入力されることを回避し、パケットを管理プロセッサ116へ高速に転送可能である。
図5は、Trapperモジュール114の動作を示すフローチャートである。
この処理は、Trapperモジュール114が、I/Oコントローラ101からパケットを受信することで実行される(S501)。受信したパケットは、その宛先401がPCI−PCIブリッジか否かを判定される(S502)。判定の結果、Yesの場合(即ちPCI−PCIブリッジ)には、S503へ進み、No(PCI−PCIブリッジでない)の場合には、S504へ進む。
処理S503では、Trapperモジュール114は受信したパケットを捕捉して、管理プロセッサ116へ転送する。管理プロセッサ116へパケットを転送する場合の処理については、図8を参照して後述する。
また、処理S504では、Trapperモジュール114は受信したパケットを、宛先の変更をせずに通過させる。この場合、パケットは宛先401に含まれるアドレスや、バス番号及びデバイス番号で指定される、いずれかのI/Oデバイス120へ転送される。
S503又はS504のいずれかの処理が完了すると、Trapperモジュール114は動作を終了する。
図1の説明に戻ると、パケット・ルーティング部115は、Trapperモジュール114、管理プロセッサ116、及びPCI−PCIブリッジ112、113と接続され、入力されたパケットを、宛先に転送する機能を持つ。パケット・ルーティング部は、PCIeの仕様に依る必要はなく、パケットが宛先に到達するならば、ルーティングの形式は問わない。
管理プロセッサ116は、PCI−PCIブリッジを管理するファームウェアを動作させる処理装置である。ファームウェアの動作については後述する。また、管理プロセッサ116にはメモリ117が接続される。管理プロセッサ116及びメモリ117は、Trapperモジュール114と同様に、PCIeスイッチ110がI/Oコントローラ101に接続されている場合に、その機能を有効にする。それに対応して、管理プロセッサ116−1、116−2はその機能を有効とされ、一方、管理プロセッサ116−3、116−4は、その機能を無効とされる。
メモリ117についても同様に、メモリ117−1、117−2は機能を有効とし、メモリ117−3、117−4は機能を無効とされる。
なお、本実施形態では、管理プロセッサ116及びメモリ117をPCIeスイッチ110内に実装しているが、これに限定されない。例えば、管理プロセッサ116又はメモリ117のいずれか一方または両者を、PCIeスイッチ110の外部に配置してもよい。
また、本実施形態では、管理プロセッサ116をPCIeスイッチ110に内蔵しているが、これに限定されず、管理プロセッサ116は計算機100に含まれるCPU102で代用してもよい。同様に、メモリ117は、計算機100に含まれるメモリ103で代用してもよい。
図2は、例えば計算機100−1で動作するプログラムが認識する、PCIeトポロジである。なお、計算機100−2〜100−4で動作するプラグラムも同様に認識可能である。このPCIeトポロジは、物理構成とは異なり論理的なものであるため、ここでは仮想PCIeトポロジということとする。
仮想PCIeトポロジは、計算機100で動作するプログラムが認識するPCIeトポロジである。計算機100で動作するプログラムは、PCIeリンク、PCI−PCIブリッジ、及びI/Oデバイスを探索することで、仮想PCIeトポロジを認識する。
以下、仮想PCIeトポロジに含まれるPCI−PCIブリッジ221、222、231、232を、仮想PCI−PCIブリッジということにする。また、PCIeスイッチ220、230を仮想PCIeスイッチということにする。さらに、PCIeリンク250、260、270、280、290を仮想PCIeリンクということにする。
計算機100−1には、仮想PCIeリンク250を介して仮想PCIeスイッチ220が接続する。また、仮想PCIeスイッチ220には、仮想PCIeリンク270を介して複数の仮想PCIeスイッチ230が接続する。さらに、仮想PCIeスイッチ230には、仮想PCIeリンク290を介して複数のI/Oデバイス240が接続する。
なお、図2において、PCIeスイッチ220、230は、2段重ねてI/Oコントローラ201に接続されているが、本発明はこれに限定されない。例えば、PCIeスイッチは1段、もしくは3段以上重ねて接続してもよい。仮想PCIeトポロジの形状は、計算機100やI/Oデバイス120の数を基に、ユーザが任意に決定することができる。したがって、図1のPCIeスイッチの数と、図2の仮想PCIeスイッチの数と間に依存関係はないといえる。なお、PCIeの仕様では、1台の計算機に接続される使用可能なバス番号の数は最大256であるので、図2の例を拡張すれば、計算機100−1に接続されるPCI−PCIブリッジ(即ちPCIeスイッチ220)は最大8つ、PCIeスイッチ220に接続されるPCI−PCIブリッジはそれぞれ32個ずつということになる。
以下、仮想PCI−PCIブリッジと区別するため、図1の計算機システムの物理構成に含まれるPCI−PCIブリッジを物理PCI−PCIブリッジということにする。
仮想PCI−PCIブリッジのアドレス空間は、全てメモリ117上に実現することも可能である。しかし、全ての仮想PCI−PCIブリッジのアドレス空間を、メモリ117上に実現すると、メモリ117の必要量が増大する。また、この場合、仮想PCI−PCIブリッジの処理を、管理プロセッサ116が全て行うため、管理プロセッサ116の負荷が増大する。
以上の理由から、本実施形態では、仮想PCI−PCIブリッジと物理PCI−PCIブリッジとを1対1で対応付け可能なPCI−PCIブリッジについては、その対応付けを利用するのが好ましい。これにより、対応付け可能なPCI−PCIブリッジのアドレス空間は、物理PCI−PCIブリッジ上に実現する。一方、対応付けをしない仮想PCI−PCIブリッジのアドレス空間は、メモリ117上に実現する。仮想PCIeトポロジの形状と図1の計算機システムの物理構成が決定すると、以下のような対応付けが決定できる。
図2の仮想PCI−PCIブリッジは、次の3種類に分類することができる。1種類目は、I/Oコントローラ101−1に接続する仮想PCI−PCIブリッジ221、2種類目は、仮想PCIeトポロジ上のI/Oデバイス240に接続する仮想PCI−PCIブリッジ232、3種類目は、仮想PCIeスイッチ220と230の間を接続する仮想PCI−PCIブリッジ222と231である。
図1の計算機システムに含まれる物理PCI−PCIブリッジは、次の3種類に分類することができる。1種類目は、I/Oコントローラ101に接続する物理PCI−PCIブリッジ111、2種類目は、物理構成上のI/Oデバイス120に接続する物理PCI−PCIブリッジ113、3種類目は、PCIeスイッチ110−1,110−2とPCIeスイッチ110−3,110−4との間を接続する物理PCI−PCIブリッジ112である。
例えば、計算機100−1から物理構成上のI/Oデバイス120−1、及び120−4を認識する場合、仮想PCI−PCIブリッジ221と、物理PCI−PCIブリッジ111−1とが対応付けされる。また、仮想PCI−PCIブリッジ232−1と、物理PCI−PCIブリッジ113−1とが対応付けされる。さらに、仮想PCI−PCIブリッジ232−2と、物理PCI−PCIブリッジ113−4とが対応付けされる。ここで、仮想PCI−PCIブリッジ222、231は、物理PCI−PCIブリッジと対応付けがされない。また、異なるPCIeスイッチ110間を接続する物理PCI−PCIブリッジ112は、パケットの通過可否を判断するといったPCI−PCIブリッジとしての機能を無効化し、全てのパケットを通過させる。
仮想PCI−PCIブリッジと物理PCI−PCIブリッジとが対応付けされると、I/Oデバイスも1対1で対応付けされる。上記の例の場合、仮想PCIeトポロジ上のI/Oデバイス240−1と物理構成上のI/Oデバイス120−1とが対応付けされる。また、仮想PCIeトポロジ上のI/Oデバイス240−2と物理構成上のI/Oデバイス120−4とが対応付けされる。
以上のように、仮想PCI−PCIブリッジ221のアドレス空間は、物理PCI−PCIブリッジ111に実現することがわかる。また、仮想PCI−PCIブリッジ232のアドレス空間は、物理PCI−PCIブリッジ113に実現する。仮想PCI−PCIブリッジ222、231のアドレス空間は、図6のように、メモリ117上に実現される。即ち、図2の例を用いれば、仮想PCI−PCIブリッジ222−1、222−2、222−3、231−1、231−2、231−3のようにアドレス空間がメモリ117に確保される。
PCIMが図2の仮想PCIeトポロジを認識すると、PCIMは、仮想PCIeリンクにバス番号を、以下のように付与する。
まず、I/Oコントローラ101に接続されたデバイスを探索する。すると、I/Oコントローラ101に、仮想PCI−PCIブリッジ221が接続されていることを、PCIMは認識する。これにより、I/Oコントローラ101と、仮想PCI−PCIブリッジ221とを接続するPCIeリンク250に、PCIMはバス番号0を付与する(図7参照)。
次に、仮想PCI−PCIブリッジ221に接続されたデバイスを探索する。すると、仮想PCI−PCIブリッジ221に、仮想PCI−PCIブリッジ222−1、222−2、及び222−3が接続されていることを、PCIMは認識する。これにより、仮想PCI−PCIブリッジ221と、仮想PCI−PCIブリッジ222とを接続するPCIeリンク260に、PCIMはバス番号1を付与する。
次に、仮想PCI−PCIブリッジ222−1に接続するデバイスを探索する。すると、仮想PCI−PCIブリッジ222−1に、仮想PCI−PCIブリッジ231−1が接続されていることを、PCIMは認識する。これにより、仮想PCI−PCIブリッジ222−1と、仮想PCI−PCIブリッジ231−1とを接続するPCIeリンク270−1に、PCIMはバス番号2を付与する。
以上のような操作をPCIMが続けると、バス番号と仮想PCIeリンクとの対応付けは、図7のようになる。そのため、本実施形態の例では、物理構成上のI/Oデバイス120−1に仮想PCIeリンク290−1が接続されることから、バス番号4が付与される。また、物理構成上のI/Oデバイス120−4に仮想PCIeリンク290−2が接続されることから、バス番号5が付与される。
仮想PCI−PCIブリッジと物理PCI−PCIブリッジの対応付けを変更することによって、I/Oデバイスに付与されるバス番号は変化する。例えば、仮想PCI−PCIブリッジ232−4と物理PCI−PCIブリッジ113−4とを対応付けると、物理構成上のI/Oデバイス120−4に仮想PCIeリンク290−4が接続されるため、バス番号9が付与される。このように、バス番号をI/Oデバイスに柔軟に割り当てることが可能である。
次に、図8を参照して、管理プロセッサ116上で動作するファームウェアの処理について説明する。このファームウェアの処理は、管理プロセッサ116が、Trapperモジュール114からパケットを受信する(S801)、またはパケット・ルーティング部115からパケットを受信する(S807)ことで、実行される。
まず、Trapperモジュール114から受信したパケットの宛先を認識する(S802)。その結果、パケットの宛先が、物理PCI−PCIブリッジと対応付けされた仮想PCI−PCIブリッジか否かを判定する(S803)。判定結果が正(Yes)の場合はS804へ進み、偽(No)の場合はS805へ進む。
S804では、Trapperモジュール114から受信したパケットを、対応付けされた物理PCI−PCIブリッジへ転送する。一方、S805では、Trapperモジュールから受信したパケットに基づき、ファームウェアが、メモリ117に実現した仮想PCI−PCIブリッジのアドレス空間に対してアクセスを行う。そして、ファームウェア処理の結果、応答をI/Oコントローラに返す必要がある場合、応答パケットを生成して、Trapperモジュール114経由で、応答パケットをI/Oコントローラ101に返送する(S806)。
また、パケット・ルーティング部からパケットを受信した場合(S807)、その受信したパケットを、Trapperモジュール114経由で、I/Oコントローラ101に返送する(S808)。
図1の計算機システムで動作するプログラムが認識するPCIeトポロジは、図2のような仮想PCIeトポロジである。そのため、I/Oコントローラ101から、仮想PCI−PCIブリッジ221、222、231、232へアクセスが発生する。このアクセスのパケットが、図1のPCIeスイッチ110に入力された場合に、PCIeスイッチ110が行う処理の流れを、図9と図10を用いて、以下に説明する。
ここで、仮想PCI−PCIブリッジ221、222、231、232へのアクセスが発生する場合とは、例えば、計算機100からの命令によって、PCI−PCIブリッジが有するメモリの内容(例えばPCI−PCIブリッジの識別情報)を読みだす場合、或いはPCI−PCIブリッジのパラメータを初期設定する(書き込み)場合、或いはPCI−PCIブリッジに設定されたパラメータを解除する場合などである。
図9は、図2の仮想PCIeトポロジにおいて、I/Oコントローラ101から仮想PCI−PCIブリッジ222、231へのアクセスが発生した場合、PCIeスイッチ110が行う処理の流れを示す。
I/Oコントローラ101からパケットがPCI−PCIブリッジ宛てに送信されると(S901)、Trapperモジュール114は、パケットを捕捉し、Trapperモジュール114内のバッファ303に順次書き込む(S902)。Trapperモジュール114は、捕捉したパケットをバッファ303に書き終えたら、管理プロセッサ116に、パケットを捕捉したことを通知する(S903)。
管理プロセッサ116は、パケットの捕捉通知を受けると、Trapperモジュール114に、バッファ303内のデータ読み出し命令を送信する(S904)。すると、Trapperモジュール114は、バッファ303内からパケットのデータを読み出して(S905)、読み出したデータを管理プロセッサ116に送信する(S906)。
管理プロセッサ116は、パケットのデータを受信すると、パケットの宛先を認識する(S907)。その結果、パケットの宛先が仮想PCI−PCIブリッジ222、231であることを認識すると(S907)、管理プロセッサ116は、メモリ117上にある、仮想PCI−PCIブリッジ用のアドレス空間へアクセスする(S908)。
メモリへのアクセスは一般的に、書き込み処理では応答が無く、読み出し処理では読み出したデータの応答が有る。そのため、パケットが仮想PCI−PCIブリッジへの書き込み処理の場合、メモリ117から管理プロセッサ116への応答は無い。パケットが仮想PCI−PCIブリッジへの読み出し処理の場合、管理プロセッサ116はメモリ117から応答を受信する(S909)。
I/Oコントローラ101からのアクセスが、メモリ空間への読み出しやコンフィギュレーション空間へのアクセスなど、応答のパケットが必要な場合、管理プロセッサ116は、I/Oコントローラ101宛ての応答用パケットを生成する(S910)。そして、管理プロセッサ116は、生成した応答用パケットをTrapperモジュール114に送信する(S911)。
Trapperモジュール114は、管理プロセッサ116から受信した応答用パケットを、Trapperモジュール114内のバッファ303に順次書き込む(S912)。
管理プロセッサ116は、全ての応答用パケットをTrapperモジュール114に送信すると、応答用パケットをI/Oコントローラ101宛てに送信する命令を、Trapperモジュール114に通知する(S913)。すると、Trapperモジュール114はバッファ303から応答用パケットを読み出し(S914)、I/Oコントローラ101宛てに応答用パケットを送信する(S915)。
I/Oコントローラ101からのアクセスが、メモリ空間への書き込みなど応答のパケットが不要の場合、管理プロセッサ116は、Trapperモジュール114に処理終了を通知する(S916)。
I/Oコントローラ101宛てに応答用パケットを送信完了した場合、または管理プロセッサ116から処理終了の通知を受信した場合、Trapperモジュール114はバッファ303内のパケットを、全て消去する(S917)。
以上で、I/Oコントローラ101から仮想PCI−PCIブリッジ222、231へのアクセスに対する計算機システムの処理は終了する。
図10は、図2の仮想PCIeトポロジにおいて、I/Oコントローラ101から仮想PCI−PCIブリッジ232へのアクセスが発生した場合、PCIeスイッチ110が行う処理の流れを示す。S901からS906までの動作は、図9の処理と同じである。
管理プロセッサ116は、パケットの宛先が仮想PCI−PCIブリッジ232であることを認識すると(S1001)、対応付けされた物理PCI−PCIブリッジを求める(S1002)。そして、パケットの宛先を求めた物理PCI−PCIブリッジ113に変更して(S1003)、パケットを物理PCI−PCIブリッジ113へ転送する(S1004)。
I/Oコントローラ101からのアクセスが、メモリ空間への読み出しやコンフィギュレーション空間へのアクセスなど応答のパケットを必要とする場合、管理プロセッサ116は物理PCI−PCIブリッジ113から、応答のパケットを受信する(S1005)。
以後、S910からS917までの動作は、図9の処理と同じである。以上で、I/Oコントローラ101から仮想PCI−PCIブリッジ232へのアクセスに対する、計算機システムの処理は終了する。
次に、図2の仮想PCIeトポロジにおいて、I/Oコントローラ101から仮想PCI−PCIブリッジ221、222、231、232や、物理構成上のI/Oデバイス120へアクセスが発生した場合、図1の計算機システムでパケットを伝達する際の、ルーティング制御の具体例を説明する。
図11は、図2の仮想PCIeトポロジにおいて、I/Oコントローラ101−1から仮想PCI−PCIブリッジ221へのアクセスが発生した場合、計算機システムにおけるパケットの流れを示す。
この場合、パケットがTrapperモジュール114−1に到達する前に、対応付けされた物理PCI−PCIブリッジ111−1へ到達する。そのため、I/Oコントローラ101−1から、仮想PCI−PCIブリッジ221に対応付けされた物理PCI−PCIブリッジ111−1へアクセスが直接行われる。
図12は、図2の仮想PCIeトポロジにおいて、I/Oコントローラ101−1から仮想PCI−PCIブリッジ222、231へのアクセスが発生した場合、計算機システムにおけるパケットの流れを示す。
この場合、I/Oコントローラ101−1に最も近いTrapperモジュール114−1はパケットを捕捉し、管理プロセッサ116−1に専用バスを用いて転送する。管理プロセッサ116−1は、パケットを受信すると、図9に示したような処理をファームウェアで行う。そして、管理プロセッサ116−1はI/Oコントローラ101−1宛に応答用パケットを生成し、Trapperモジュール114−1経由で応答用パケットを返す。
図13は、図2の仮想PCIeトポロジにおいて、I/Oコントローラ101−1から仮想PCI−PCIブリッジ232−1へのアクセスが発生した場合、計算機システムにおけるパケットの流れを示す。
この場合、I/Oコントローラ101−1に最も近いTrapperモジュール114−1は、パケットを捕捉し、管理プロセッサ116−1に独自バス118−1を用いて転送する。管理プロセッサ116−1はパケットを受信すると、図10に示したように、仮想PCI−PCIブリッジ232−1に対応付けされた物理PCI−PCIブリッジ113−1へ、パケットの宛先を変更して、受信したパケットを転送する。管理プロセッサ116−1が、物理PCI−PCIブリッジ113−1から応答パケットを受信すると、管理プロセッサ116−1はI/Oコントローラ101−1宛に、Trapperモジュール114−1経由で応答用パケットを返す。
図14は、図2の仮想PCIeトポロジにおいて、I/Oコントローラ101−1から仮想PCIeトポロジ上の仮想PCIeトポロジ上のI/Oデバイス240−1へのアクセスが発生した場合、計算機システムにおけるパケットの流れを示す。この場合、Trapperモジュール114−1はパケットを捕捉しない。I/Oコントローラ101−1から、仮想PCIeトポロジ上のI/Oデバイス240−1に対応付けされた、物理構成上のI/Oデバイス120−1へアクセスが直接行われる。
以上、本発明の好ましい実施形態について説明したが、本発明は上記実施例に限定されることなく、更に種々変形して実施し得る。
例えば、上記実施形態では、Trapperモジュール114の各機能は、PCIeスイッチ110がI/Oコントローラ101に接続されている場合その機能を有効にし、一方I/Oコントローラ101に接続されない場合、PCIeスイッチ110−3、110−4内のTrapperモジュール114−5〜114−8の機能を無効にして、全てのパケットを通過させる、とした。これは、半導体で構成されるPCIeスイッチ110が、全てTrapperモジュールを持つような同一構成を有することを前提としているために生じる説明である。もし、I/Oコントローラ101に接続されるPCIeスイッチ(第1のPCIeスイッチ)と、I/Oコントローラ101に接続されないPCIeスイッチ(第2のPCIeスイッチ)とをそれぞれ別の半導体で形成できるならば、第1のPCIeスイッチはTrapperモジュールを有するものとして常にその機能を有効に利用できる。一方、第2のPCIeスイッチはTrapperモジュールの機能が無効なので、最初からTrapperモジュールを備えない半導体として構成とすることができる。
また、メモリ117内に展開する仮想PCI−PCIブリッジのアドレス空間について、上記実施形態では、メモリ117の容量及び管理プロセッサ116の負荷の増大を抑えるために、可能な限り仮想PCI−PCIブリッジと物理PCI−PCIブリッジとを1対1で対応付けている。しかし、他の例では、メモリ117の容量が十分あり、かつ管理プロセッサ116の負荷も許容できるならば、全ての仮想PCI−PCIブリッジのアドレス空間は、メモリに展開してもよい。メモリが全ての仮想PCI−PCIブリッジのアドレス空間を持てば、仮想PCI−PCIブリッジと物理PCI−PCIブリッジとが1対1で対応付けられているか(S803:図8)のような処理は不要となり、全ての受信パケットを管理プロセッサで処理することで対応可能である。
以上のように、本発明の好ましい実施態様によれば、物理的な接続に依存しない仮想PCIeトポロジを実現できる。そのため、I/Oデバイスに接続するPCIeリンクに、PCIMがバス番号を柔軟に割り当てることが可能である。そして、I/OコントローラにPCIeスイッチを多段に接続し、末端のPCIeスイッチにI/Oデバイスを接続した場合でも、接続可能なI/Oデバイスの数が減少する課題を解決することができる。また、I/Oコントローラから全ての仮想PCI−PCIブリッジ及びI/Oデバイスに対してアクセスが可能である。
100:計算機 101:I/Oコントローラ 102:CPU 103:メモリ 110:PCIeスイッチ 111〜113:物理PCI−PCIブリッジ 114:Trapperモジュール 115:パケット・ルーティング部 116:管理プロセッサ 117:メモリ 118:独自バス 120:I/Oデバイス 130〜150:PCIeリンク 220:仮想PCIeスイッチ 221〜222:仮想PCI−PCIブリッジ 230:仮想PCIeスイッチ 231〜232:仮想PCI−PCIブリッジ 240:I/Oデバイス 250〜290:仮想PCIeリンク 301:PCIeパケット受信部 302:パケットの宛先比較部 303:バッファ 304:管理プロセッサとの入出力部 305:PCIeパケット送信部 400:パケット 401:パケットの宛先

Claims (13)

  1. 計算機とI/Oデバイスに接続されるスイッチを介して、パケットデータを転送する計算機システムであって、
    該スイッチは、該計算機側に配置された第1のPCI−PCIブリッジと、該I/Oデバイス側に配置された第2のPCI−PCIブリッジと、該スイッチに入力されるパケットデータを捕捉する捕捉部と、
    該パケットデータをI/Oデバイスへ転送するパケット・ルーティング部を有し、
    該捕捉部に接続され、プログラムの実行によって仮想PCI−PCIブリッジ及び仮想リンクを該計算機に提供する管理プロセッサを有し、
    該計算機システムの物理構成に含まれるPCI−PCIブリッジを物理PCI−PCIブリッジとし、
    該仮想PCI−PCIブリッジと該物理PCI−PCIブリッジとを1対1で対応付け可能なPCI−PCIブリッジについては、対応付け可能なPCI−PCIブリッジのアドレス空間は、物理PCI−PCIブリッジ上に実現し、
    該仮想PCI−PCIブリッジと該物理PCI−PCIブリッジとを1対1で対応付けできないPCI−PCIブリッジについては、対応付けをしない仮想PCI−PCIブリッジのアドレス空間をメモリ内に展開し、
    該捕捉部は、該計算機から転送されるパケットデータの宛先を判定し、
    該判定の結果、該宛先がI/Oデバイスの場合は該パケットデータを捕捉せず通過させ、該パケットデータは、該パケット・ルーティング部及び該第2のPCI−PCIブリッジを介してI/Oデバイスへ転送され、
    該判定の結果、該宛先が仮想PCI−PCIブリッジの場合は該パケットデータを捕捉して該管理プロセッサへ送信し、
    該管理プロセッサは、該宛先が該物理PCI−PCIブリッジと対応付された仮想PCI−PCIブリッジであるかを判定し、
    該判定の結果、対応付けされた仮想PCI−PCIブリッジである場合、受信した該パケットデータを対応付けされた該物理PCI−PCIブリッジへ転送し、
    該判定の結果、対応付けされていない仮想PCI−PCIブリッジである場合、受信した該パケットデータに基づき、該メモリ内の該仮想PCI−PCIブリッジのアドレス空間をアクセスし、必要な場合には該メモリから応答を取得して、該応答を該捕捉部へ送信する
    ことを特徴とする計算機システム。
  2. 前記スイッチは、前記管理プロセッサとメモリを有する半導体スイッチであり、該メモリは、仮想PCI−PCIブリッジのアドレス空間を保持することを特徴とする請求項1の計算機システム。
  3. 前記計算機が有するプロセッサで、前記管理プロセッサの動作を行う
    ことを特徴とする請求項1の計算機システム。
  4. 前記捕捉部は、
    該計算機から送信されるパケットデータを受信するPCIeパケット受信部と、
    PCI−PCIブリッジが使用するアドレスの範囲、バス番号、及びデバイス番号を記憶しており、入力されたパケットデータの宛先と比較して、該パケットデータを捕捉するか否かを判断する比較部と、
    該管理プロセッサとの間で転送されるパケットデータを一時保存するバッファと、
    該管理プロセッサとの間でパケットデータの転送する入出力部と、
    該比較部による判断の結果、該管理プロセッサから転送される宛先がI/Oコントローラのパケットデータを送信するPCIeパケット送信部を有する
    ことを特徴とする請求項1の計算機システム。
  5. 前記計算機は、自らで動作するプログラムによって該管理プロセッサが提供する前記仮想PCIeトポロジを認識することができ、
    かつ仮想PCIeトポロジは、PCIeスイッチ間を接続するPCI−PCIブリッジを仮想PCI−PCIブリッジと、該計算機及びPCIeスイッチ及びI/Oデバイス間を接続する仮想PCIeリンクとを含む、
    ことを特徴とする請求項1の計算機システム。
  6. 前記仮想PCI−PCIブリッジと、前記物理PCI−PCIブリッジの対応付けを変更することにより、該I/Oデバイスに付与されるバス番号を変化させる
    ことを特徴とする請求項5の計算機システム。
  7. 計算機とI/Oデバイスに接続されて、パケットデータを転送するPCIeスイッチであって、
    該計算機側に配置された第1のPCI−PCIブリッジと、該I/Oデバイス側に配置された第2のPCI−PCIブリッジと、
    該スイッチに入力されるパケットデータを捕捉する捕捉部と、
    該パケットデータをI/Oデバイスへ転送するパケット・ルーティング部と、
    該捕捉部に接続され、プログラムの実行によって仮想PCI−PCIブリッジ及び仮想リンクを該計算機に提供する管理プロセッサを有し、
    該計算機システムの物理構成に含まれるPCI−PCIブリッジを物理PCI−PCIブリッジとし、
    該仮想PCI−PCIブリッジと該物理PCI−PCIブリッジとを1対1で対応付け可能なPCI−PCIブリッジについては、対応付け可能なPCI−PCIブリッジのアドレス空間は、物理PCI−PCIブリッジ上に実現し、
    該仮想PCI−PCIブリッジと該物理PCI−PCIブリッジとを1対1で対応付けできないPCI−PCIブリッジについては、対応付けをしない仮想PCI−PCIブリッジのアドレス空間をメモリ内に展開し、
    該捕捉部は、該計算機から転送されるパケットデータの宛先を判定し、
    該判定の結果、該宛先がI/Oデバイスの場合は該パケットデータを捕捉せず通過させ、該パケットデータは、該パケット・ルーティング部及び該第2のPCI−PCIブリッジを介してI/Oデバイスへ転送され、
    該判定の結果、該宛先が仮想PCI−PCIブリッジの場合は該パケットデータを捕捉して該管理プロセッサへ送信し、
    該管理プロセッサは、該宛先が該物理PCI−PCIブリッジと対応付された仮想PCI−PCIブリッジであるかを判定し、
    該判定の結果、対応付けされた仮想PCI−PCIブリッジである場合、受信した該パケットデータを対応付けされた該物理PCI−PCIブリッジへ転送し、
    該判定の結果、対応付けされていない仮想PCI−PCIブリッジである場合、受信した該パケットデータに基づき、該メモリ内の該仮想PCI−PCIブリッジのアドレス空間をアクセスし、必要な場合には該メモリから応答を取得して、該応答を該捕捉部へ送信する
    ことを特徴とするPCIeスイッチ。
  8. 前記スイッチは、該仮想PCI−PCIブリッジのアドレス空間を保持するメモリを有し、該管理プロセッサは、該メモリ内の、該仮想PCI−PCIブリッジのアドレス空間をアクセスして、必要な場合には該メモリから応答を取得して、該応答を該捕捉部へ送信する
    ことを特徴とする請求項7のPCIeスイッチ。
  9. 前記捕捉部は、
    該計算機から送信されるパケットデータを受信するPCIeパケット受信部と、
    PCI−PCIブリッジが使用するアドレスの範囲、バス番号、及びデバイス番号を記憶しており、入力されたパケットデータの宛先と比較して、該パケットデータを捕捉するか否かを判断する比較部と、
    該管理プロセッサとの間で転送されるパケットデータを一時保存するバッファと、
    該管理プロセッサとの間でパケットデータの転送する入出力部と、
    該比較部による判断の結果、該管理プロセッサから転送される宛先がI/Oコントローラのパケットデータを送信するPCIeパケット送信部を有する
    ことを特徴とする請求項7のPCIeスイッチ。
  10. 該仮想PCIeトポロジは、PCIeスイッチ間を接続するPCI−PCIブリッジを仮想PCI−PCIブリッジと、該計算機及びPCIeスイッチ及びI/Oデバイス間を接続する仮想PCIeリンクとを含む、
    ことを特徴とする請求項8のPCIeスイッチ。
  11. 計算機とI/Oデバイスに接続されるPCIeスイッチを用いてパケットデータの転送を制御する、計算機システムにおけるパケット転送制御方法であって、
    該計算機システムの物理構成に含まれるPCI−PCIブリッジを物理PCI−PCIブリッジとし、
    該仮想PCI−PCIブリッジと該物理PCI−PCIブリッジとを1対1で対応付け可能なPCI−PCIブリッジについては、対応付け可能なPCI−PCIブリッジのアドレス空間は、物理PCI−PCIブリッジ上に実現し、
    該仮想PCI−PCIブリッジと該物理PCI−PCIブリッジとを1対1で対応付けできないPCI−PCIブリッジについては、対応付けをしない仮想PCI−PCIブリッジのアドレス空間をメモリ内に展開し、
    PCIeスイッチのTrapperモジュールは、PCIeスイッチに入力されるパケットデータの宛先を参照して、該パケットデータを捕捉するか否かを判定し、
    該判定の結果、該宛先がPCI−PCIブリッジのパケットデータの場合、該Trapperモジュールは、該パケットデータを捕捉して管理プロセッサへ転送し、
    該判定の結果、該宛先がI/Oデバイスのパケットデータの場合、該Trapperモジュールは、該パケットデータを捕捉しないで、該I/Oデバイスへ転送し、
    該管理プロセッサは、該宛先が該物理PCI−PCIブリッジと対応付された仮想PCI−PCIブリッジであるかを判定し、
    該判定の結果、対応付けされた仮想PCI−PCIブリッジである場合、受信した該パケットデータを対応付けされた該物理PCI−PCIブリッジへ転送し、
    該判定の結果、対応付けされていない仮想PCI−PCIブリッジである場合、受信した該パケットデータに基づき、該メモリ内の該仮想PCI−PCIブリッジのアドレス空間をアクセスし、必要な場合には該メモリから応答を取得して、該応答を該Trapperモジュールへ送信する
    ことを特徴とするパケット転送制御方法。
  12. 計算機とI/Oデバイスに接続されるPCIeスイッチを用いてパケットデータの転送を制御する、計算機システムにおけるパケット転送制御方法であって、
    PCI−PCIブリッジを管理する管理プロセッサに接続されるメモリ内に、仮想PCI−PCIブリッジ及び仮想リンクを予め用意するステップと、
    該PCIeスイッチは、該計算機側に配置された第1のPCI−PCIブリッジを介して、該計算機から転送されるパケットデータを受信するステップと、
    該PCIeスイッチの捕捉部は、受信したパケットデータの宛先を判定するステップと、
    該判定の結果、該宛先がI/Oデバイスの場合、該捕捉部は該パケットデータを捕捉せず通過させ、該I/Oデバイス側に配置された第2のPCI−PCIブリッジを介してI/Oデバイスへ転送するステップと、
    該判定の結果、該宛先が仮想PCI−PCIブリッジの場合、該捕捉部は該パケットデータを捕捉して、該捕捉部に接続された管理プロセッサへ送信するステップと、
    該管理プロセッサは、該捕捉部より受信した該パケットデータに応じて、該メモリを参照して応答用のパケットデータを用意して、第1のPCI−PCIブリッジを介して該計算機へ送信するステップを有し、
    仮想PCIeトポロジは、PCIeスイッチ間を接続するPCI−PCIブリッジを仮想PCI−PCIブリッジと、該計算機及びPCIeスイッチ及びI/Oデバイス間を接続する仮想PCIeリンクとを含み、
    該計算機システムの物理構成に含まれるPCI−PCIブリッジを物理PCI−PCIブリッジとし、
    該仮想PCI−PCIブリッジと該物理PCI−PCIブリッジとを1対1で対応付け可能なPCI−PCIブリッジについては、対応付け可能なPCI−PCIブリッジのアドレス空間は、物理PCI−PCIブリッジ上に実現し、
    該仮想PCI−PCIブリッジと該物理PCI−PCIブリッジとを1対1で対応付けできないPCI−PCIブリッジについては、対応付けをしない仮想PCI−PCIブリッジのアドレス空間をメモリ内に展開し、
    前記管理プロセッサは、該メモリ内の該仮想PCI−PCIブリッジのアドレス空間をアクセスして、必要な場合には該メモリから応答を取得して、該応答を該捕捉部へ送信する
    ことを特徴とするパケット転送制御方法。
  13. 前記仮想PCI−PCIブリッジと、前記物理PCI−PCIブリッジの対応付けを変更することにより、該I/Oデバイスに付与されるバス番号を変化させる
    ことを特徴とする請求項12のパケット転送制御方法。
JP2012546587A 2010-11-29 2010-11-29 計算機システム、それに使用されるスイッチ及びパケット転送制御方法 Expired - Fee Related JP5399570B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2010/071250 WO2012073304A1 (ja) 2010-11-29 2010-11-29 計算機システム、それに使用されるスイッチ及びパケット転送制御方法

Publications (2)

Publication Number Publication Date
JP5399570B2 true JP5399570B2 (ja) 2014-01-29
JPWO2012073304A1 JPWO2012073304A1 (ja) 2014-05-19

Family

ID=46171292

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012546587A Expired - Fee Related JP5399570B2 (ja) 2010-11-29 2010-11-29 計算機システム、それに使用されるスイッチ及びパケット転送制御方法

Country Status (3)

Country Link
US (1) US9396150B2 (ja)
JP (1) JP5399570B2 (ja)
WO (1) WO2012073304A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9479461B2 (en) 2012-03-16 2016-10-25 Hitachi, Ltd. Computer system and method for communicating data between computers

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102012102198A1 (de) * 2012-03-15 2013-09-19 Fujitsu Technology Solutions Intellectual Property Gmbh Modulares Serversystem, I/O-Modul und Switching-Verfahren
JP6203272B2 (ja) * 2013-09-03 2017-09-27 株式会社アキブシステムズ I/oデバイスの仮想化のためのコンピュータシステム及びその運用方法並びにhub装置
US9253028B2 (en) * 2013-12-13 2016-02-02 International Business Machines Corporation Software-defined networking tunneling extensions
US9501441B2 (en) * 2013-12-16 2016-11-22 Dell Products, Lp Mechanism to boot multiple hosts from a shared PCIe device
US9384158B2 (en) 2014-03-14 2016-07-05 International Business Machines Corporation Dynamic universal port mode assignment
US9684575B2 (en) 2014-06-23 2017-06-20 Liqid Inc. Failover handling in modular switched fabric for data storage systems
EP3158455B1 (en) * 2014-06-23 2020-03-18 Liqid Inc. Modular switched fabric for data storage systems
US10402363B2 (en) 2016-06-10 2019-09-03 Liqid Inc. Multi-port interposer architectures in data storage systems
US10503678B1 (en) * 2016-09-22 2019-12-10 EMC IP Holding Company LLC Fabric management system and method
US10235316B1 (en) 2016-09-22 2019-03-19 EMC IP Holding Company LLC Fabric management system and method
US10235317B1 (en) 2016-09-22 2019-03-19 EMC IP Holding Company LLC Fabric management system and method
US20180143932A1 (en) * 2016-11-21 2018-05-24 Intel Corporation Apparatuses and methods to spawn multiple virtual serial bus hub instances on a same physical serial bus hub
US10795842B2 (en) 2017-05-08 2020-10-06 Liqid Inc. Fabric switched graphics modules within storage enclosures
JP7181447B2 (ja) * 2018-03-30 2022-12-01 株式会社ソシオネクスト 情報処理システム、情報処理方法及び半導体装置
US11016669B2 (en) * 2018-05-01 2021-05-25 Qualcomm Incorporated Persistent write data for energy-backed memory
JP7179489B2 (ja) * 2018-05-18 2022-11-29 キヤノン株式会社 ストレージシステム及びその制御方法、プログラム、並びに記憶制御システム
US10585827B1 (en) 2019-02-05 2020-03-10 Liqid Inc. PCIe fabric enabled peer-to-peer communications

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004531838A (ja) * 2001-06-29 2004-10-14 インテル コーポレイション 仮想pciデバイス装置及び方法
JP2008046722A (ja) * 2006-08-11 2008-02-28 Nec Corp I/o装置及び方法
WO2010044409A1 (ja) * 2008-10-15 2010-04-22 日本電気株式会社 マルチルートpciエクスプレススイッチ、その起動方法、及び、マルチルートpciマネージャプログラム

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9836424B2 (en) * 2001-08-24 2017-12-05 Intel Corporation General input/output architecture, protocol and related methods to implement flow control
US7752376B1 (en) 2006-08-11 2010-07-06 Oracle America, Inc. Flexible configuration space
GB2455347B (en) 2007-12-07 2012-04-11 Virtensys Ltd Control path I/O virtualisation
US8151145B2 (en) * 2008-04-03 2012-04-03 Oracle America, Inc. Flow control timeout mechanism to detect PCI-express forward progress blockage
JP2009282917A (ja) 2008-05-26 2009-12-03 Hitachi Ltd サーバ間通信機構及びコンピュータシステム

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004531838A (ja) * 2001-06-29 2004-10-14 インテル コーポレイション 仮想pciデバイス装置及び方法
JP2008046722A (ja) * 2006-08-11 2008-02-28 Nec Corp I/o装置及び方法
WO2010044409A1 (ja) * 2008-10-15 2010-04-22 日本電気株式会社 マルチルートpciエクスプレススイッチ、その起動方法、及び、マルチルートpciマネージャプログラム

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9479461B2 (en) 2012-03-16 2016-10-25 Hitachi, Ltd. Computer system and method for communicating data between computers

Also Published As

Publication number Publication date
US9396150B2 (en) 2016-07-19
JPWO2012073304A1 (ja) 2014-05-19
US20130254453A1 (en) 2013-09-26
WO2012073304A1 (ja) 2012-06-07

Similar Documents

Publication Publication Date Title
JP5399570B2 (ja) 計算機システム、それに使用されるスイッチ及びパケット転送制御方法
US11379277B2 (en) System and method for computational storage device intercommunication
JP4998469B2 (ja) インターコネクション用スイッチおよびシステム
JP6958440B2 (ja) 情報処理装置、情報処理システム及びプログラム
JP5310175B2 (ja) スイッチシステム、及びスイッチシステムの制御方法
US9052829B2 (en) Methods and structure for improved I/O shipping in a clustered storage system
US9742671B2 (en) Switching method
US7822908B2 (en) Discovery of a bridge device in a SAS communication system
JP4931787B2 (ja) データ処理システム内で第1のホスト・システムと第2のホスト・システムとの間で通信するための方法、プログラム、およびシステム(トランザクション・プロトコルおよび共用メモリを使用するホスト・システム間の通信のためのシステムおよび方法)
JP6899852B2 (ja) ストレージ装置
US6675253B1 (en) Dynamic routing of data across multiple data paths from a source controller to a destination controller
JP5928087B2 (ja) スイッチ、情報処理装置および通信制御方法
US10698849B2 (en) Methods and apparatus for augmented bus numbering
JP2008152787A (ja) データ処理システム内で実行中の通信ファブリックにコンポーネントをホット・プラグするための方法、プログラム、およびシステム(実行中のPCIeファブリックにおける新しいコンポーネントのホット・プラグ/除去のためのシステムおよび方法)
JP2008152786A (ja) データ処理システム内で1つまたは複数のエンドポイントの第1の物理機能から第2の物理機能に仮想機能を移行するための方法、プログラム、およびシステム(単一ルート・ステートレス仮想機能の移行のためのシステムおよび方法)
JP2008165776A (ja) データ処理システムの複数のルート複合体間の通信のために共用メモリを初期設定するための方法、プログラム、およびシステム(複数のルート複合体全域でエンドポイントを共用するために共用メモリを初期設定するためのシステムおよび方法)
JP6254293B2 (ja) データ重複排除方法及びストレージアレイ
CA2511046A1 (en) Multi-node system, internodal crossbar switch, node and medium embodying program
US10169279B2 (en) Input/output control device, input/output control system, and input/output control method for conversion of logical address of instruction into local address of device specified in instruction
JP2007507793A (ja) 共用資源を有するデータ記憶システム
JP2003044421A (ja) 仮想ストレージシステム及び同システムに使用されるスイッチングノード
TWI791134B (zh) 通信裝置、資訊處理系統及通信方法
US20230198740A1 (en) Systems and methods for integrating fully homomorphic encryption (fhe) with a storage device
JP2020184224A (ja) 情報処理システム、プラットフォーム、およびブリッジドライバ
US7003553B2 (en) Storage control system with channel control device having data storage memory and transfer destination circuit which transfers data for accessing target cache area without passing through data storage memory

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: 20130924

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20131023

R150 Certificate of patent or registration of utility model

Ref document number: 5399570

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees