JP5533867B2 - I/oシステム、下流pciエクスプレスブリッジ、i/oシステムの制御方法、およびプログラム - Google Patents

I/oシステム、下流pciエクスプレスブリッジ、i/oシステムの制御方法、およびプログラム Download PDF

Info

Publication number
JP5533867B2
JP5533867B2 JP2011521794A JP2011521794A JP5533867B2 JP 5533867 B2 JP5533867 B2 JP 5533867B2 JP 2011521794 A JP2011521794 A JP 2011521794A JP 2011521794 A JP2011521794 A JP 2011521794A JP 5533867 B2 JP5533867 B2 JP 5533867B2
Authority
JP
Japan
Prior art keywords
pci express
downstream
bridge
unit
bridges
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.)
Active
Application number
JP2011521794A
Other languages
English (en)
Other versions
JPWO2011004548A1 (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.)
NEC Corp
Original Assignee
NEC Corp
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 NEC Corp filed Critical NEC Corp
Priority to JP2011521794A priority Critical patent/JP5533867B2/ja
Publication of JPWO2011004548A1 publication Critical patent/JPWO2011004548A1/ja
Application granted granted Critical
Publication of JP5533867B2 publication Critical patent/JP5533867B2/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
    • 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)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Computer Hardware Design (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Description

本発明は、I/O(Input/Output)システム、下流PCIエクスプレス(Peripheral C
omponent Interconnect Express)ブリッジ、I/Oシステムの制御方法、およびプログ
ラムに関する。本発明は、特に、複数のCPU(Central Processing Unit)および複数
のルートコンプレックス(Root Complex;RC)間でPCIエクスプレスデバイスを共有
する技術に関する。
複数のRC間でPCI Expressデバイスを共有する方法として、業界標準団体PCI−SIG(Special Interest Group)は、MR−IOV(Multi-Root I/O Virtualization)を規格化している(例えば、非特許文献1参照)。
図10は、MR−IOVの基本構成を示すブロック図である。MR−IOVは、複数のCPU・RC10−1、…、MRA−SW(Multi-root aware PCIe (PCI Express) Switch)10−2、複数のMRA−DEV(Multi-root aware PCIe Device)10−3、…、およびMR−PCIM(MR-PCI Manager)10−4から構成される。
MR−PCIM10−4はCPU・RC10−1上に配置される。また、MR−PCIM10−4は、MR−IOVシステム全体のトポロジーの発見、および、デバイスの発見を行い、その結果に基づき、MRA−SW10−2の設定を行う。さらに、MR−PCIM10−4は、MRA−DEV10−3の設定を行う。その結果、複数のCPU・RC10−1、…間でMRA−DEV10−3を同時に共有して使用することが可能となる。
Multi-Root I/O Virtualization and Sharing Specification Revision 1.0, PCI-SIG, May 12, 2008, pp. 27-28
しかしながら、上述したMR−IOVシステムでは、CPU・RC10−1側に搭載されたMR−PCIM10−4が集中的に制御を行う。このため、MR−PCIM10−4へのアクセスが障害等で制限されると、システム全体が障害状態となってしまうという問題がある。
また、MRA−SW10−2の設定を行わないと、MRA−DEV10−3の設定が行えない。このため、グラフィックカード等のデバイスがBIOS(Basic Input/Output System)起動時から使用できないという問題がある。
さらに、MR−PCIM10−4の設定が複雑なため、起動時間が長く、実装コストが大きいという問題がある。
本発明は、このような事情を考慮してなされたものであり、その目的は、複数のCPU・RCがI/Oデバイスを共有するI/Oシステムにおいて、耐障害性を向上させ、I/Oシステム起動時の機能制限の回避および起動時間の短縮化を図ることができるI/Oシステム、下流PCIエクスプレスブリッジ、I/Oシステムの制御方法、およびプログラムを提供することにある。
上述した課題を解決するために、本発明は、シングルルート対応の複数のPCIエクスプレスデバイスと、前記複数のPCIエクスプレスデバイスを共有する複数のルートコンプレックスと、前記複数のルートコンプレックスの各々に接続される複数の上流PCIエクスプレスブリッジと、前記複数のPCIエクスプレスデバイスの各々に接続される複数の下流PCIエクスプレスブリッジと、前記複数の上流PCIエクスプレスブリッジと前記複数の下流PCIエクスプレスブリッジとの間でデータが授受されるネットワークとを備え、前記複数の下流PCIエクスプレスブリッジの各々は、自身に接続されているPCIエクスプレスデバイスの電源ONを契機として当該PCIエクスプレスデバイスの設定を行うデバイス制御手段と、自身に接続されている前記PCIエクスプレスデバイスとの間における物理リンクの状態を制御および監視する物理リンク制御監視手段と、自身に接続されている前記PCIエクスプレスデバイスのエラーの監視および通知を行うエラー監視処理手段とを備えるI/Oシステムである。
また、本発明は、ネットワークを介して自身の下流PCIエクスプレスブリッジとデータの授受を行う複数の上流PCIエクスプレスブリッジの各々に接続された複数のルートコンプレックスが共有するシングルルート対応の複数のPCIエクスプレスデバイスのうち、自身の下流PCIエクスプレスブリッジに接続されているPCIエクスプレスデバイスの電源ONを契機として当該PCIエクスプレスデバイスの設定を行うデバイス制御手段と、自身の下流PCIエクスプレスブリッジに接続されている前記PCIエクスプレスデバイスとの間における物理リンクの状態を制御および監視する物理リンク制御監視手段と、自身の下流PCIエクスプレスブリッジに接続されている前記PCIエクスプレスデバイスのエラーの監視および通知を行うエラー監視処理手段とを備える下流PCIエクスプレスブリッジである。
また、本発明は、複数のルートコンプレックス間でシングルルート対応の複数のPCIエクスプレスデバイスを共有し、前記複数のルートコンプレックスの各々に接続される複数の上流PCIエクスプレスブリッジと、前記複数のPCIエクスプレスデバイスの各々に接続される複数の下流PCIエクスプレスブリッジと、前記複数の上流PCIエクスプレスブリッジと前記複数の下流PCIエクスプレスブリッジとの間でデータが授受されるネットワークとで仮想マルチルートPCIエクスプレススイッチを構成したI/Oシステムにおいて、前記複数の下流PCIエクスプレスブリッジの各々が、自身に接続されているPCIエクスプレスデバイスの電源ONを契機として当該PCIエクスプレスデバイスの設定を行い、前記複数の下流PCIエクスプレスブリッジの各々が、自身に接続されている前記PCIエクスプレスデバイスとの間における物理リンクの状態を制御および監視し、前記複数の下流PCIエクスプレスブリッジの各々が、自身に接続されている前記PCIエクスプレスデバイスのエラーの監視および通知を行うI/Oシステムの制御方法である。
また、本発明は、複数のルートコンプレックスの各々に接続される複数の上流PCIエクスプレスブリッジと、シングルルート対応の複数のPCIエクスプレスデバイスの各々に接続される複数の下流PCIエクスプレスブリッジと、前記複数の上流PCIエクスプレスブリッジと前記複数の下流PCIエクスプレスブリッジとの間でデータが授受されるネットワークとで仮想マルチルートPCIエクスプレススイッチを構成し、前記複数のルートコンプレックス間で前記複数のPCIエクスプレスデバイスを共有するI/Oシステムのコンピュータに、前記複数の下流PCIエクスプレスブリッジの各々が、自身に接続されているPCIエクスプレスデバイスの電源ONを契機として当該PCIエクスプレスデバイスの設定を行うデバイス制御機能と、前記複数の下流PCIエクスプレスブリッジの各々が、自身に接続されている前記PCIエクスプレスデバイスとの間における物理リンクの状態を制御および監視する物理リンク制御監視機能と、前記複数の下流PCIエクスプレスブリッジの各々が、自身に接続されている前記PCIエクスプレスデバイスのエラーの監視および通知を行うエラー監視処理機能とを実行させるプログラムである。
本発明では、複数のCPU・RCがI/Oデバイスを共有するI/Oシステムにおいて、耐障害性を向上させ、I/Oシステム起動時の機能制限の回避および起動時間の短縮化を図ることができる。
本発明の実施形態におけるI/Oシステムの全体構成を示すブロック図である。 本実施形態におけるU−PEBの構成を示すブロック図である。 本実施形態におけるD−PEBの構成を示すブロック図である。 本実施形態におけるSR−DEVの構成を示すブロック図である。 本実施形態のI/Oシステムにおける初期設定動作の概要を示すフローチャートである。 本実施形態のI/Oシステムにおいて、RC側からSR−DEV側にデータを転送する動作を示すフローチャートである。 本実施形態のI/Oシステムにおいて、SR−DEV側からRC側にデータを転送する動作を示すフローチャートである。 本実施形態のI/Oシステムにおける、物理リンクの制御および監視に関する動作を示すフローチャートである。 本実施形態のI/Oシステムにおける、エラー監視処理に関する動作を示すフローチャートである。 関連する技術に従ったMR−IOVシステムの全体構成を示すブロック図である。
以下、本発明の一実施形態を、図面を参照して説明する。
図1は、本発明の実施形態に従ったI/Oシステムの全体構成を示すブロック図である。図1において、I/Oシステム1は、複数のCPU101、…、複数のメモリ102、…、複数のRC103、…、複数のU−PEB(上流側PCI−Expressブリッジ)104、…、ネットワーク105、複数のD−PEB(下流側PCI−Expressブリッジ)106、…、複数のSR−DEV(Single-Root Device)107、…から構成される。
なお、SR−DEV107は、SR−IOV(Single-Root I/O Virtualization)対応デバイスであり、詳しくは、参考文献(Single-Root I/O Virtualization and Sharing Specification Revision 1.0, PCI-SIG, September 11, 2007, pp. 11-18)を参照されたい。
RC103は、1つまたは複数のCPU101(図1では1台のCPU101)と、1つまたは複数のメモリ102(図1では1台のメモリ102)と、1つまたは複数のU−PEB104(図1では1台のU−PEB104)とに接続される。U−PEB104は、RC103とネットワーク105とに接続される。ネットワーク105は、U−PEB104とD−PEB106とに接続される。D−PEB106は、ネットワーク105とSR−DEV107と接続される。ネットワーク105の例としては、イーサネット(登録商標)、インフィニバンド、ファイバチャネルなどがある。
本実施形態では、上記複数のU−PEB104と、複数のD−PEB106と、ネットワーク105とが、仮想マルチルートPCI Expressスイッチ(仮想MR−SW)を構成する。
図2は、本実施形態のU−PEB104の構成を示すブロック図である。U−PEB104は、PCIe(PCI Express)処理部201と、カプセル化部202と、コンフィグ(configuration)レジスタ203と、フィルタリング部204と、デカプセル化部205と、コネクション管理部206とから構成される。
PCIe処理部201は、RC103とカプセル化部202とコンフィグレジスタ203とデカプセル化部205とコネクション管理部206とに接続される。カプセル化部202は、ネットワーク105とPCIe処理部201とコネクション管理部206とに接続される。コンフィグレジスタ203は、PCIe処理部201とデカプセル化部205とに接続される。フィルタリング部204は、ネットワーク105とデカプセル化部205とコネクション管理部206とに接続される。デカプセル化部205は、PCIe処理部201とコンフィグレジスタ203とフィルタリング部204とコネクション管理部206とに接続される。コネクション管理部206は、変換テーブル207を有し、PCIe処理部201とカプセル化部202とフィルタリング部204とデカプセル化部205と接続される。
PCIe処理部201は、PCI Express Upstream側スイッチポート処理とPCIeパケットの宛先読み取りとを行う。カプセル化部202は、変換テーブル207を参照し、コネクション管理部206の指示でPCIeパケットをネットワーク105の転送フォーマットに変換する。コンフィグレジスタ203は、U−PEB104の設定を記録する。
フィルタリング部204は、ネットワーク105からのカプセル化フレームの識別子を読み取り、自ノード宛以外のカプセル化フレームをフィルタリングする。デカプセル化部205は、カプセル化フレームの宛先を読み取って転送先を解析し、その解析結果からカプセル化フレームをデカプセル化し、PCIe処理部201、あるいは、コンフィグレジスタ203、あるいは、コネクション管理部206に対してデカプセル化されたフレームを転送する。コネクション管理部206は、複数のD−PEB106、…とのコネクションを管理する。変換テーブル207は、OS(Operating System)が設定するPCI Express空間とネットワーク105上のアドレス空間との間で変換を行うためのテーブルである。
図3は、本実施形態のD−PEB106の構成を示すブロック図である。D−PEB106は、PCIe処理部301と、SR−DEV制御部302と、コンフィグレジスタ303と、フィルタリング部304と、デカプセル化部305と、コネクション管理部306と、カプセル化部308と、物理リンク制御監視部309と、エラー監視処理部310とから構成される。なお、SR−DEV制御部302は、一般的に、デバイス制御機能を実行するデバイス制御手段と呼ぶことができる。また、物理リンク制御監視部309は、一般的に、物理リンク制御監視機能を実行する物理リンク制御監視手段と呼ぶことができる。さらに、エラー監視処理部310は、一般的に、エラー監視処理機能を実行するエラー監視処理手段と呼ぶことができる。
PCIe処理部301は、SR−DEV107とSR−DEV制御部302と物理リンク制御監視部309とに接続される。SR−DEV制御部302は、仮想化部3021とアクセス変換テーブル3022とSR−DEV設定部3023とを有する。SR−DEV制御部302は、PCIe処理部301とコンフィグレジスタ303とデカプセル化部305とコネクション管理部306と物理リンク制御監視部309とエラー監視処理部310とに接続される。コンフィグレジスタ303は、SR−DEV制御部302とデカプセル化部305と物理リンク制御監視部309とエラー監視処理部310とに接続される。
フィルタリング部304は、ネットワーク105とデカプセル化部305とコネクション管理部306とに接続される。デカプセル化部305は、SR−DEV制御部302とコンフィグレジスタ303とフィルタリング部304とコネクション管理部306とに接続される。コネクション管理部306は、変換テーブル307を有し、SR−DEV制御部302とフィルタリング部304とデカプセル化部305とカプセル化部308とエラー監視処理部310とに接続される。
カプセル化部308は、ネットワーク105とSR−DEV制御部302とコネクション管理部306とエラー監視処理部310とに接続される。物理リンク制御監視部309は、PCIe処理部301とSR−DEV制御部302とコンフィグレジスタ303とエラー監視処理部310とに接続される。エラー監視処理部310は、SR−DEV制御部302とコンフィグレジスタ303とコネクション管理部306とカプセル化部308と物理リンク制御監視部309とに接続される。
PCIe処理部301は、PCI Express Downstream側スイッチポート処理を行う。SR−DEV制御部302はSR−DEV107を制御する。SR−DEV制御部302において、仮想化部3021は、任意のRC103に割当られたSR−DEV107のVF(Virtual Function)4022(後述)を、通常のPCI Expressデバイスに見せる。アクセス変換テーブル3022は、任意のRC103に割り当てられたSR−DEV107のVF4022へのアクセス変換を行うために使用される。SR−DEV設定部3023は、SR−DEV107のPF(Physical Function)4021(後述)とVF4022とを設定する。なお、PF(Physical Function)およびVF(Virtual Function)については、例えば、上記参考文献において説明されている。
コンフィグレジスタ303は、D−PEB106の設定を記録する。フィルタリング部304は、ネットワーク105からのカプセル化フレームの識別子を読み取り、自ノード宛以外のカプセル化フレームをフィルタリングする。デカプセル化部305は、カプセル化フレームの宛先を読み取って転送先を解析し、その解析結果からカプセル化フレームをデカプセル化し、デカプセル化されたフレームをSR−DEV制御部302、あるいは、コンフィグレジスタ303、あるいは、コネクション管理部306に転送する。
コネクション管理部306は、複数のU−PEB104とのコネクションを管理する。コネクション管理部306において、変換テーブル307は、OSが設定するPCI Express空間とネットワーク105上のアドレス空間との変換を行うためのテーブルである。カプセル化部308は、変換テーブル307を参照し、コネクション管理部306の指示でPCIeパケットをネットワーク105の転送フォーマットに変換する。物理リンク制御監視部309は、SR−DEV107との物理リンクの制御と監視を行う。エラー監視処理部310は、SR−DEV107のエラー情報を監視し、エラー状況に応じて、U−PEB104、あるいは、CPU101およびRC103にエラー情報を通知する。
図4は、本実施形態のSR−DEV107の構成を示すブロック図である。SR−DEV107は、SR−IOV対応のPCI Expressデバイスである。図4では、本発明を説明するために必要な機能ブロックのみを示してある。SR−DEV107は、PCIe処理部401とIO機能部402とから構成される。PCIe処理部401は、D−PEB106とIO機能部402とに接続される。IO機能部402は、PF4021とVF4022とを有し、PCIe処理部401と接続される。
次に、本実施形態のI/Oシステムの動作について説明する。
図5は、本実施形態のI/Oシステムにおける初期設定動作の概要を示すフローチャートである。SR−DEV側の電源ONを契機としてSR−DEV側の初期設定動作が開始される(ステップS1)。すなわち、D−PEB106およびSR−DEV107の初期化が行われ、コンフィグレジスタ303、および、PF4021、および、VF4022に初期値が設定される(ステップS2)。次に、物理リンク制御監視部309がD−PEB106とSR−DEV107間のPCI Express物理リンクの設定および確立を行う(ステップS3)。
次に、SR−DEV設定部3023は、SR−DEV107のPF4021の初期値を読込み、その値に従いPF4021の設定を行う(ステップS4)。次に、SR−DEV設定部3023は、SR−DEV107のVF4022の初期値を読込み、その値を仮想化部3021に設定する(ステップS5)。そして、コネクション管理部306は、コネクション管理用パケットの送信を行い、U−PEB104からコネクション設定用パケットが到着するまで待機する(ステップS6)。
一方、RC側の電源ONを契機として(ステップS7)、CPU101、メモリ102、RC103、U−PEB104の初期化が行われ、コンフィグレジスタ203に初期値が設定される(ステップS8)。次に、RC103とU−PEB104との間の物理リンクが設定され確立される(ステップS9)。そして、CPU101上でBIOSが起動される(ステップS10)。BIOSは、U−PEB104の設定を行う(ステップS11)。U−PEB104のコネクション管理部206がコネクション管理用の制御パケットの送信を行い、D−PEB106からコネクション設定用パケットが到着するまで待機する(ステップS12)。
そして、コネクション設定用パケットがD−PEB106のコネクション管理部306およびU−PEB104のコネクション管理部206にそれぞれ到着すると(ステップS6のYES、および、ステップS12のYES)、コネクション管理部206とコネクション管理部306とでコネクションの確立を行う(ステップS13)。コネクションが確立されると、SR−DEV107およびD−PEB106は、そのコネクションに対し、任意のVF4022および仮想化部3021を割り当てる(ステップS14)。そして、D−PEB106およびSR−DEV107は、BIOSおよびOSのコンフィグレーションを行い、コンフィグレジスタ303と、割り当てられた仮想化部3021およびVF4022と、メモリ空間と、I/O空間とを設定する(ステップS15)。その結果に従って、変換テーブル207と変換テーブル307とアクセス変換テーブル3022とが設定され(ステップS16)、初期設定動作が完了する。
図6および図7は、本実施形態のI/Oシステムの初期設定後のデータ転送の動作を示すフローチャートである。図6は、RC側からSR−DEV側へのデータ転送についてのフローチャートである。一方、図7は、SR−DEV側からRC側へのデータ転送についてのフローチャートである。
まず、RC側からSR−DEV側へデータ転送される場合について説明する。図6において、RC103は、メモリ102から読み出されたデータをPCI Expressトランザクションレイヤパケット(TLP)としてU−PEB104に転送する(ステップS20)。U−PEB104のPCIe処理部201は、TLPの宛先を解析し、その結果をコネクション管理部206に通知する(ステップS21)。その通知を受け取ったコネクション管理部206は、変換テーブル207を参照し、転送先D−PEB106の情報をカプセル化部202に通知する(ステップS22)。
そして、カプセル化部202は、ネットワーク105を介してTLPが転送先D−PEB106に転送されるように、TLPをカプセリングし(ステップS23)、カプセル化されたTLPをネットワーク105に送信する(ステップS24)。カプセル化されたTLPは、ネットワーク105を通過し、目的のD−PEB106に到着する(ステップS25)。
フィルタリング部304は、到着したカプセル化されたTLPが自D−PEB106宛かを識別する(ステップS26)。フィルタリング部304は、カプセル化されたTLPが自D−PEB106宛であれば、カプセル化されたTLPをデカプセル化部305に転送する(ステップS26の自D−PEB宛)。一方、フィルタリング部304は、カプセル化されたTLPがコネクション管理用であれば、カプセル化されたTLPをコネクション管理部306に転送する(ステップS26のコネクション管理用)。他方、フィルタリング部304は、カプセル化されたTLPが自D−PEB106宛でもなくコネクション管理用でもなければ、カプセル化されたTLPを廃棄する(ステップS29)。
デカプセル化部305は、カプセル化されたTLPのカプセル化をとく(ステップS28)。次に、デカプセル化部305は、TLPの宛先がSR−DEV107向けか、または、D−PEB106向けかを識別する(ステップS30)。デカプセル化部305は、TLPの宛先がD−PEB106ならば、TLPをコンフィグレジスタ303へ転送する(ステップS30のD−PEB向け)。一方、デカプセル化部305は、TLPの宛先がSR−DEV107ならば、RC103毎に付けられている識別子とともにSR−DEV制御部302にTLPを転送する(ステップS30のSR−DEV向け)。
TLPがコンフィグレジスタ303に転送された場合、転送されたTLPは、コンフィグレジスタ303で処理される(ステップS31)。一方、TLPがSR−DEV制御部302に転送された場合には、SR−DEV制御部302は、アクセス変換テーブル3022に従って、RC103毎に付けられている識別子とTLPの宛先から転送先を判断し(ステップS32)、仮想化部3021、あるいは、SR−DEV107のVF4022にTLPを転送する(それぞれステップS32の仮想化部レンジ、または、VFレンジ)。
転送先が仮想化部レンジに入っている場合には、TLPは仮想化部3021で処理される(ステップS33)。一方、転送先がVF4022レンジに入っている場合には、TLPはPCIe処理部301およびPCIe処理部401を経由してVF4022で処理される(ステップS34)。
次に、SR−DEV側からRC側へデータ転送される場合について説明する。図7において、PF4021およびVF4022はTLPを生成する(ステップS40)。該TLPは、PCIe処理部401およびPCIe処理部301を経由してSR−DEV制御部302に転送される。SR−DEV制御部302は、到着したTLPのTLP発行元を解析する(ステップS41)。SR−DEV制御部302は、PF4021からのTLPであれば(ステップS41のPF)、その処理対象を解析する(ステップS42)。TLPは、解析された内容に従って、SR−DEV制御部302内のSR−DEV設定部3023にて処理されるか(ステップS43。ステップS42における「パケット」の場合)、あるいは、物理リンク制御監視部309にて処理されるか(ステップS44。ステップS42における「リンク」の場合)、あるいは、エラー監視処理部310にて処理される(ステップS45。ステップS42における「エラー」の場合)。
一方、SR−DEV制御部302は、VF4022からのTLPであれば(ステップS41のVF)、アクセス変換テーブル3022を参照してTLPの宛先を解析し、解析された宛先に関する情報をコネクション管理部306へ通知する(ステップS46)。コネクション管理部306は、その情報を基に変換テーブル307を参照し、カプセル化部308に転送先U−PEBを通知する(ステップS47)。そして、カプセル化部308は、TLPがネットワーク105を介して転送先U−PEB104に転送されるように、TLPをカプセリングし(ステップS48)、カプセル化されたTLPをネットワーク105に送信する(ステップS49)。カプセル化されたTLPは、ネットワーク105を通過し、目的のU−PEB104に到着する(ステップS50)。
フィルタリング部204は、到着したカプセル化されたTLPが自U−PEB104宛かを識別する(ステップS51)。フィルタリング部204は、カプセル化されたTLPが自U−PEB104宛であれば、カプセル化されたTLPをデカプセル化部205に転送する(ステップS51の自U−PEB宛)。一方、フィルタリング部204は、カプセル化されたTLPがコネクション管理用であれば、カプセル化されたTLPをコネクション管理部206に転送する(ステップS51のコネクション管理用)。転送されたTLPは、コネクション管理部206で処理される(ステップS52)。他方、フィルタリング部204は、カプセル化されたTLPが自U−PEB104宛でもなくコネクション管理用でもなければ、TLPを廃棄する(ステップS53)。
デカプセル化部205は、転送されたTLPのカプセル化をとく(ステップS54)。次に、デカプセル化部205は、TLPの宛先がRC向けであるか、U−PEB向けであるか識別する(ステップS55)。デカプセル化部205は、TLPの宛先がU−PEB104ならば、TLPをコンフィグレジスタ203に転送する(ステップS55のU−PEB向け)。転送されたTLPは、コンフィグレジスタ203で処理される(ステップS56)。一方、デカプセル化部205は、TLPの宛先がRC103ならば、PCIe処理部201にTLPを転送する(ステップS55のRC向け)。転送されたTLPは、RC103へ転送されて処理される(ステップS57)。
図8は、本実施形態のI/Oシステムにおいて、初期設定後における物理リンクの制御および監視に関する動作を示すフローチャートである。初期設定が完了すると、物理リンク制御監視部309は、PCIe処理部301とPCIe処理部401との間のPCI Express物理リンク状態の変化、および、SR−DEV107のPF4021からの物理リンクに関するTLPの受信を監視する(ステップS60)。物理リンク状態に変化があるか、あるいは、PF4021からの物理リンクに関するTLPを受信した場合、物理リンク制御監視部309が、PCI Express物理リンク状態の変化に対応した処理を行い、あるいは、受信した物理リンクに関するTLPに対応する処理を行い(ステップS61)、その処理結果をコンフィグレジスタ303およびエラー監視処理部310に通知する(ステップS62)。
図9は、本実施形態のI/Oシステムにおいて、初期設定後のエラー監視処理に関する動作を示すフローチャートである。初期設定が完了すると、エラー監視処理部310は、SR−DEV107のPF4021からのエラーに関するTLPの受信を監視する(ステップS70)。PF4021からのエラーに関するTLP受信があった場合、エラー監視処理部310は、エラー種別を識別し(ステップS71)、エラーの影響を受けるCPU・RCを特定し(ステップS72)、エラー情報(すなわち、識別されたエラー種別)を該当するRC103に通知する(ステップS73)。そして、エラーは、各RC103で処理される。
以上のように、上述した実施形態では、複数のRC103には、各々、複数の上流側のU−PEB104が接続される。また、複数のSR−DEV107には、各々、複数の下流側のD−PEB106が接続される。さらに、複数のU−PEB104と、複数のD−PEB106と、これらの間の情報の転送を行うネットワーク105とから仮想マルチルートPCI Expressスイッチ(仮想MR−SW)が構成される。そして、複数のD−PEB106は、接続されているSR−DEV107の設定、物理リンクの制御および監視、ならびに、エラー監視処理を各々独立して行う。
そして、上述した実施形態では、各SR−DEV107に接続されたD−PEB106に搭載されるSR−DEV設定部3023が、接続されているSR−DEV107の設定のみを行う。このため、障害が発生した場合にも、該当するD−PEB106とSR−DEV107のみに影響を留めることができる。ゆえに、複数のRC103間でSR−DEV107を共有した場合に、SR−DEV107のエラー状況を、そのSR−DEV107に接続されたD−PEB106のエラー監視処理部310が監視できる。このため、そのSR−DEV107を共有している全てのRC103にエラー状況を通知することができるようになる。したがって、各RC103が適切なエラー処理を行え、I/Oシステムの耐障害性を向上させることができる。
また、上述した実施形態では、各SR−DEV107の設定を、そのSR−DEV107に接続されているD−PEB106に搭載されているSR−DEV設定部3023が行う。このため、MR−PCIM(図1では図示を省略)が全I/Oデバイスを設定する時間をより短くすることができる。また、ネットワークコネクションが確立する前からSR−DEV107を設定することが可能であるため、I/Oシステムの起動時間を短縮できる。
さらに、上述した実施形態では、CPU・RC上のBIOSが起動する前に、各SR−DEV107に接続されているD−PEB106に搭載されたSR−DEV設定部3023が各SR−DEV107を設定する。このため、BIOS起動時からSR−DEV107を使用することができる。
以上、実施形態を参照して本発明を説明したが、本発明は上述した実施形態に限定されるものではない。本発明の構成や詳細には、本発明の範囲内で当業者が理解し得る様々な変更を加えることができる。
例えば、I/Oシステム1を構成する構成要素(例えば、U−PEB104やD−PEB106)は、その機能を実現するためのプログラムを実行するコンピュータを用いて実現してもよい。このコンピュータは、コンピュータ読み取り可能な記録媒体に記録された上記プログラムを読み込んで実行することで、上記構成要素として機能する。なお、コンピュータ読み取り可能な記録媒体とは、フレキシブルディスク、光磁気ディスク、CD−ROM(Compact Disk Read Only Memory)等の記録媒体、コンピュータシステムに内蔵されるハードディスク装置等の記憶装置を指す。
この出願は、2009年7月6日に出願された日本出願特願2009−159704号を基礎とする優先権を主張し、その開示の全てをここに取り込む。
本発明は、例えば、複数のCPU−および複数のRC間でPCIエクスプレスデバイスを共有するI/Oシステムに利用できる。本発明では、耐障害性を向上させ、I/Oシステム起動時の機能制限を回避し、起動時間の短縮化を図ることができる。
1 I/Oシステム
101 CPU
102 メモリ
103 RC
104 U−PEB
105 ネットワーク
106 D−PEB
107 SR−DEV
201 PCIe処理部
202 カプセル化部
203 コンフィグレジスタ
204 フィルタリング部
205 デカプセル化部
206 コネクション管理部
207 変換テーブル
301 PCIe処理部
302 SR−DEV制御部
3021 仮想化部
3022 アクセス変換テーブル
3023 SR−DEV設定部
303 コンフィグレジスタ
304 フィルタリング部
305 デカプセル化部
306 コネクション管理部
307 変換テーブル
308 カプセル化部
309 物理リンク制御監視部
310 エラー監視処理部
401 PCIe処理部
402 I/O制御部
4021 PF
4022 VF

Claims (8)

  1. シングルルート対応の複数のPCIエクスプレスデバイスと、
    前記複数のPCIエクスプレスデバイスを共有する複数のルートコンプレックスと、
    前記複数のルートコンプレックスの各々に接続される複数の上流PCIエクスプレスブリッジと、
    前記複数のPCIエクスプレスデバイスの各々に接続される複数の下流PCIエクスプレスブリッジと、
    前記複数の上流PCIエクスプレスブリッジと前記複数の下流PCIエクスプレスブリッジとの間でデータが授受されるネットワークと
    を備え、
    前記複数の下流PCIエクスプレスブリッジの各々は、
    自身に接続されているPCIエクスプレスデバイスの電源ONを契機として当該PCIエクスプレスデバイスの設定を行うデバイス制御手段と、
    自身に接続されている前記PCIエクスプレスデバイスとの間における物理リンクの状態を制御および監視する物理リンク制御監視手段と、
    自身に接続されている前記PCIエクスプレスデバイスのエラーの監視および通知を行うエラー監視処理手段と
    を備えるI/Oシステム。
  2. 前記上流PCIエクスプレスブリッジが、ルートコンプレックスから受信したトランザクションレイヤパケットをネットワークを介して前記下流PCIエクスプレスブリッジへ転送し、ネットワークを介して前記下流PCIエクスプレスブリッジから転送されたトランザクションレイヤパケットをデカプセル化して前記ルートコンプレックスに転送し、
    前記下流PCIエクスプレスブリッジが、デバイスから受信したトランザクションレイヤパケットをネットワークを介して前記上流PCIエクスプレスブリッジへ転送し、ネットワークを介して前記上流PCIエクスプレスブリッジから転送されたトランザクションレイヤパケットをデカプセル化して前記デバイスに転送する
    請求項1に記載のI/Oシステム。
  3. ネットワークを介して自身の下流PCIエクスプレスブリッジとデータの授受を行う複数の上流PCIエクスプレスブリッジの各々に接続されたシングルルート対応の複数のPCIエクスプレスデバイスのうち、自身の下流PCIエクスプレスブリッジに接続されているPCIエクスプレスデバイスの電源ONを契機として当該PCIエクスプレスデバイスの設定を行うデバイス制御手段と、
    自身の下流PCIエクスプレスブリッジに接続されている前記PCIエクスプレスデバイスとの間における物理リンクの状態を制御および監視する物理リンク制御監視手段と、
    自身の下流PCIエクスプレスブリッジに接続されている前記PCIエクスプレスデバイスのエラーの監視および通知を行うエラー監視処理手段と
    を備える下流PCIエクスプレスブリッジ。
  4. 前記エラー監視処理手段は、前記エラーの種別を識別し、前記エラーの影響を受けるルートコンプレックスを特定し、前記特定されたルートコンプレックスに対して、前記識別されたエラーの種別を通知する請求項3に記載の下流PCIエクスプレスブリッジ。
  5. 前記デバイス制御手段は、自身の下流PCIエクスプレスブリッジに接続されているPCIエクスプレスデバイスのPF(Physical Function)およびVF(Virtual Function
    )の設定を行う請求項3から請求項4のいずれか1項に記載の下流PCIエクスプレスブリッジ。
  6. 前記デバイス制御手段は、ネットワークコネクションが確立する前に、自身の下流PCIエクスプレスブリッジに接続されている前記PCIエクスプレスデバイスの設定を行う請求項3から請求項5のいずれか1項に記載の下流PCIエクスプレスブリッジ。
  7. 複数のルートコンプレックス間でシングルルート対応の複数のPCIエクスプレスデバイスを共有し、前記複数のルートコンプレックスの各々に接続される複数の上流PCIエクスプレスブリッジと、前記複数のPCIエクスプレスデバイスの各々に接続される複数の下流PCIエクスプレスブリッジと、前記複数の上流PCIエクスプレスブリッジと前記複数の下流PCIエクスプレスブリッジとの間でデータが授受されるネットワークとで仮想マルチルートPCIエクスプレススイッチを構成したI/Oシステムにおいて、前記複数の下流PCIエクスプレスブリッジの各々が、自身に接続されているPCIエクスプレスデバイスの電源ONを契機として当該PCIエクスプレスデバイスの設定を行い、
    前記複数の下流PCIエクスプレスブリッジの各々が、自身に接続されている前記PCIエクスプレスデバイスとの間における物理リンクの状態を制御および監視し、
    前記複数の下流PCIエクスプレスブリッジの各々が、自身に接続されている前記PCIエクスプレスデバイスのエラーの監視および通知を行うI/Oシステムの制御方法
  8. 複数のルートコンプレックスの各々に接続される複数の上流PCIエクスプレスブリッジと、シングルルート対応の複数のPCIエクスプレスデバイスの各々に接続される複数の下流PCIエクスプレスブリッジと、前記複数の上流PCIエクスプレスブリッジと前記複数の下流PCIエクスプレスブリッジとの間でデータが授受されるネットワークとで仮想マルチルートPCIエクスプレススイッチを構成し、前記複数のルートコンプレックス間で前記複数のPCIエクスプレスデバイスを共有するI/Oシステムの前記下流PCIエクスプレスブリッジのコンピュータに、
    身に接続されているPCIエクスプレスデバイスの電源ONを契機として当該PCIエクスプレスデバイスの設定を行うデバイス制御機能と、
    身に接続されている前記PCIエクスプレスデバイスとの間における物理リンクの状態を制御および監視する物理リンク制御監視機能と、
    身に接続されている前記PCIエクスプレスデバイスのエラーの監視および通知を行うエラー監視処理機能とを実行させるプログラム。
JP2011521794A 2009-07-06 2010-06-11 I/oシステム、下流pciエクスプレスブリッジ、i/oシステムの制御方法、およびプログラム Active JP5533867B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2011521794A JP5533867B2 (ja) 2009-07-06 2010-06-11 I/oシステム、下流pciエクスプレスブリッジ、i/oシステムの制御方法、およびプログラム

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
JP2009159704 2009-07-06
JP2009159704 2009-07-06
JP2011521794A JP5533867B2 (ja) 2009-07-06 2010-06-11 I/oシステム、下流pciエクスプレスブリッジ、i/oシステムの制御方法、およびプログラム
PCT/JP2010/003903 WO2011004548A1 (ja) 2009-07-06 2010-06-11 I/oシステム、下流pciエクスプレスブリッジ、インターフェース共有方法、およびプログラム

Publications (2)

Publication Number Publication Date
JPWO2011004548A1 JPWO2011004548A1 (ja) 2012-12-13
JP5533867B2 true JP5533867B2 (ja) 2014-06-25

Family

ID=43428980

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2011521794A Active JP5533867B2 (ja) 2009-07-06 2010-06-11 I/oシステム、下流pciエクスプレスブリッジ、i/oシステムの制御方法、およびプログラム

Country Status (3)

Country Link
US (1) US8868814B2 (ja)
JP (1) JP5533867B2 (ja)
WO (1) WO2011004548A1 (ja)

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8938568B2 (en) * 2010-08-19 2015-01-20 Ineda Systems Pvt. Ltd Multi-processor electronic systems
RU2584449C2 (ru) * 2011-03-23 2016-05-20 Нек Корпорейшн Система управления связью, коммутационный узел и способ управления связью
JP6048402B2 (ja) * 2011-06-08 2016-12-21 日本電気株式会社 コンピュータシステム、接続装置、電源制御方法、及び電源制御プログラム
JP5542787B2 (ja) * 2011-12-08 2014-07-09 シャープ株式会社 画像形成装置
US9298658B2 (en) * 2013-02-26 2016-03-29 Avago Technologies General Ip (Singapore) Pte. Ltd. Using PCI-E extended configuration space to send IOCTLS to a PCI-E adapter
US10452316B2 (en) 2013-04-17 2019-10-22 Apeiron Data Systems Switched direct attached shared storage architecture
KR102147629B1 (ko) * 2013-11-18 2020-08-27 삼성전자 주식회사 플렉시블 서버 시스템
US9501441B2 (en) * 2013-12-16 2016-11-22 Dell Products, Lp Mechanism to boot multiple hosts from a shared PCIe device
CN103701710B (zh) * 2013-12-20 2017-01-11 杭州华为数字技术有限公司 一种数据传输方法、核心转发设备以及端点转发设备
CN105721357B (zh) * 2016-01-13 2019-09-03 华为技术有限公司 交换设备、外围部件互连高速系统及其初始化方法
US10708199B2 (en) 2017-08-18 2020-07-07 Missing Link Electronics, Inc. Heterogeneous packet-based transport
US11356388B2 (en) 2017-08-18 2022-06-07 Missing Link Electronics, Inc. Real-time multi-protocol heterogeneous packet-based transport
WO2019111400A1 (ja) 2017-12-08 2019-06-13 株式会社アキブシステムズ コンピュータの起動方法
US11614986B2 (en) * 2018-08-07 2023-03-28 Marvell Asia Pte Ltd Non-volatile memory switch with host isolation
US11544000B2 (en) 2018-08-08 2023-01-03 Marvell Asia Pte Ltd. Managed switching between one or more hosts and solid state drives (SSDs) based on the NVMe protocol to provide host storage services
US10977199B2 (en) 2018-08-08 2021-04-13 Marvell Asia Pte, Ltd. Modifying NVMe physical region page list pointers and data pointers to facilitate routing of PCIe memory requests

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007219873A (ja) * 2006-02-17 2007-08-30 Nec Corp スイッチ及びネットワークブリッジ装置
JP2007280237A (ja) * 2006-04-11 2007-10-25 Nec Corp PCIExpressリンク、マルチホストコンピュータシステム、およびPCIExpressリンクの再構成方法
JP2008078887A (ja) * 2006-09-20 2008-04-03 Nec Corp I/o機器の共有システムと情報処理装置共有システム及びそれらに用いる方法

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5232602B2 (ja) * 2008-10-30 2013-07-10 株式会社日立製作所 ストレージ装置、及びストレージコントローラ内部ネットワークのデータ経路フェイルオーバー方法
US8346997B2 (en) * 2008-12-11 2013-01-01 International Business Machines Corporation Use of peripheral component interconnect input/output virtualization devices to create redundant configurations
US8144582B2 (en) * 2008-12-30 2012-03-27 International Business Machines Corporation Differentiating blade destination and traffic types in a multi-root PCIe environment
US8265075B2 (en) * 2009-03-16 2012-09-11 International Business Machines Corporation Method and apparatus for managing, configuring, and controlling an I/O virtualization device through a network switch

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007219873A (ja) * 2006-02-17 2007-08-30 Nec Corp スイッチ及びネットワークブリッジ装置
JP2007280237A (ja) * 2006-04-11 2007-10-25 Nec Corp PCIExpressリンク、マルチホストコンピュータシステム、およびPCIExpressリンクの再構成方法
JP2008078887A (ja) * 2006-09-20 2008-04-03 Nec Corp I/o機器の共有システムと情報処理装置共有システム及びそれらに用いる方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
JPN7013002761; Alex Umansky: 'Software-Hardware Interoperability in Multi-GPU Systems' PCI-SIG Developers Conference Europe 2009 March 2009 , 200903, pp.1-29, PCI-SIG *
JPN7014001056; Renatto Reciio: 'Single Root ResourceDiscovery and Allocation' I/O Virtualization Interactive Technology Assessment November 2006 , 200611, pp.1-25, PCI-SIG *

Also Published As

Publication number Publication date
WO2011004548A1 (ja) 2011-01-13
US8868814B2 (en) 2014-10-21
US20120110233A1 (en) 2012-05-03
JPWO2011004548A1 (ja) 2012-12-13

Similar Documents

Publication Publication Date Title
JP5533867B2 (ja) I/oシステム、下流pciエクスプレスブリッジ、i/oシステムの制御方法、およびプログラム
JP7118922B2 (ja) スイッチングデバイス、ペリフェラル・コンポーネント・インターコネクト・エクスプレスシステムおよびその初期化方法
US10263891B2 (en) Switching device, computer system, method, and program
TWI756488B (zh) 支援多模式及/或多速度之跨架構高速非揮發性記憶體裝置的系統與方法及儲存裝置
US7934033B2 (en) PCI-express function proxy
US10684880B2 (en) Allocating and initializing I/O devices at virtual
US20150261709A1 (en) Peripheral component interconnect express (pcie) distributed non- transparent bridging designed for scalability,networking and io sharing enabling the creation of complex architectures.
US20130346653A1 (en) Versatile lane configuration using a pcie pie-8 interface
US8843689B2 (en) Concurrent repair of the PCIe switch units in a tightly-coupled, multi-switch, multi-adapter, multi-host distributed system
US10698849B2 (en) Methods and apparatus for augmented bus numbering
US11086703B2 (en) Distributed input/output virtualization
JP6094575B2 (ja) I/oデバイス共有システムおよびi/oデバイス共有方法
US20240104029A1 (en) Network instantiated peripheral devices
JP2009282917A (ja) サーバ間通信機構及びコンピュータシステム
JP6573046B1 (ja) 情報処理装置、情報処理システムおよび情報処理プログラム
JP6597925B1 (ja) 情報処理システム
US20230169017A1 (en) Dynamic server rebalancing
JP6631742B1 (ja) 情報処理システム
WO2023177982A1 (en) Dynamic server rebalancing
Curd PCI Express for the 7 Series FPGAs

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130730

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130930

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

R150 Certificate of patent or registration of utility model

Ref document number: 5533867

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20140414