JP6665207B2 - スイッチングデバイス、ペリフェラル・コンポーネント・インターコネクト・エクスプレスシステムおよびその初期化方法 - Google Patents

スイッチングデバイス、ペリフェラル・コンポーネント・インターコネクト・エクスプレスシステムおよびその初期化方法 Download PDF

Info

Publication number
JP6665207B2
JP6665207B2 JP2017563323A JP2017563323A JP6665207B2 JP 6665207 B2 JP6665207 B2 JP 6665207B2 JP 2017563323 A JP2017563323 A JP 2017563323A JP 2017563323 A JP2017563323 A JP 2017563323A JP 6665207 B2 JP6665207 B2 JP 6665207B2
Authority
JP
Japan
Prior art keywords
pcie
host
switching device
configuration
module
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
JP2017563323A
Other languages
English (en)
Other versions
JP2018521402A (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.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies Co 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 Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Publication of JP2018521402A publication Critical patent/JP2018521402A/ja
Application granted granted Critical
Publication of JP6665207B2 publication Critical patent/JP6665207B2/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/382Information transfer, e.g. on bus using universal interface adapter
    • G06F13/385Information transfer, e.g. on bus using universal interface adapter for adaptation of a particular data processing system to different peripheral devices
    • 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/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4204Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
    • G06F13/4221Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being an input/output bus, e.g. ISA bus, EISA bus, PCI bus, SCSI bus
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/46Interconnection of networks
    • H04L12/4633Interconnection of networks using encapsulation techniques, e.g. tunneling
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0803Configuration setting
    • H04L41/0806Configuration setting for initial configuration or provisioning, e.g. plug-and-play
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/74Address processing for routing
    • H04L45/745Address table lookup; Address filtering
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/10Packet switching elements characterised by the switching fabric construction
    • H04L49/102Packet switching elements characterised by the switching fabric construction using shared medium, e.g. bus or ring
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/30Peripheral units, e.g. input or output ports
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/35Switches specially adapted for specific applications
    • 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)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • Mathematical Physics (AREA)
  • Information Transfer Systems (AREA)
  • Bus Control (AREA)

Description

本出願は、通信分野に関し、より具体的には、スイッチングデバイス、ペリフェラル・コンポーネント・インターコネクト・エクスプレスシステム、および、ペリフェラル・コンポーネント・インターコネクト・エクスプレスシステムを初期化する方法に関する。
周辺装置相互接続スペシャル・インタレスト・グループ(Peripheral Component Interconnect Special Interest Group,PCI−SIG)によって提案されたシングルルートI/O仮想化(Single−Root Input/Output Virtualization,SR−IOV)技術は、ホスト内の複数プロセス間で入力/出力(Input/Output,I/O)デバイスを共有するシナリオに適用される。SR−IOV技術は、PCIエクスプレス(PCI express,PCIe)デバイスに対して、上位層のホストが呼び出すための複数の仮想機能(Virtual Function,VF)を仮想化する。
マルチルートI/O仮想化(Multi−Root Input/Output Virtualization,MR−IOV)技術は、複数のホストによってI/Oデバイスを共有するシナリオに適用される。本技術は、複数ホストによって呼び出されるべき複数のPCI仮想階層(Virtual Hierarchy,VH)を仮想化する。しかしながら、この技術は、PCIeプロトコルのうちデータリンク層より上のプロトコルに変更を加える。したがって、トポロジ構造内の複数のノード、例えば、MR−IOVをサポートするルートポート(Root Port,RP)、スイッチ(Switch)またはPCIeデバイスが適応化を行う必要がある。MR−IOV技術は、産業チェーンの適応化を必要とし、互換性の低下をもたらす。現状では、この規格をサポートする製品は存在しない。
従来技術においては、SR−IOVデバイスを利用することで複数のホストによってI/Oデバイスを共有する解決策が提供されている。図1は、従来技術における典型的な実装形態を示す。システム100は、N個のホスト(ホスト1からホストNまで)110と、PCIeスイッチ120と、M個のI/Oデバイス(I/Oデバイス1からI/OデバイスMまで)130と、外付け管理CPU140と、メモリ150とを含んでいる、ただし1≦M≦N。管理CPU140は、I/Oデバイス側でデバイスの列挙および発見を行い、およびデバイスの構成および管理を行う役割を担う。PCIeスイッチ120は、非透過的リンク(Non−Transparent Link,NT−L)モジュールと、複数のPCIeアップストリームポート(Upstream Port,UP)と、グローバル非透過的(Non−Transparent,NT)EPモジュールと、複数の仮想PCIeダウンストリームポート(Downstream Port,DP)とを含んでいる。グローバルNT EPモジュールは、レジスタを管理し、およびメモリアドレスに対してマッピングし、ならびに非透過的仮想(Non−Transparent Virtual,NT−V)機能を実装するように構成されている。システム100は、複数の仮想階層(Virtual Hierarchy,VH)を含んでもよい。
この技術的解決策においては、管理CPUが追加的に配置される必要があり、管理CPUに対応するメモリは外部的に配置される必要があり、かつ、別個のPCIe管理インタフェースが提供される必要がある。それゆえ、この技術的解決策は製品レイアウトの点では適していない。加えて、図1に示すシステム100においては、システム全体を管理するための管理CPUは1個のみ配置されており、管理リンクが1つしかない。ひとたび管理リンクに異常が生じると、ネットワーク全体が故障して利用することができなくなる。それゆえ、安定性および信頼性は比較的低い。
本発明の実施形態は、比較的高い安定性および信頼性を実現するために、スイッチングデバイス、PCIeシステムおよびPCIeシステムを初期化する方法を提供する。
第1の態様によれば、スイッチングデバイスが提供され、このスイッチングデバイスは、少なくとも1つのホストに接続するように構成されている複数のPCIeアップストリームポートと、少なくとも1つのI/Oデバイスに接続するように構成されている少なくとも1つのPCIeダウンストリームポートと、スイッチングデバイスの内部接続ラインを用いることにより、少なくとも1つのPCIeダウンストリームポートに接続された内部処理装置と、を含み、内部処理装置は、
内部接続ラインを用いることにより、コンフィギュレーションリード/ライトパケットを少なくとも1つのPCIeダウンストリームポートに送信し、
内部接続ラインを用いることにより少なくとも1つのPCIeダウンストリームポートによって送信されたコンフィギュレーションリード/ライト応答パケットであって、コンプリータ識別子を保持している、コンフィギュレーションリード/ライト応答パケット、を受信し、かつ、
コンフィギュレーションリード/ライト応答パケット内に保持されたコンプリータ識別子に従って、スイッチングデバイスがコンプリータ識別子を識別子として有するI/Oデバイスに接続されていると判定するように構成されている。
内部処理装置は、スイッチングデバイスに接続された物理デバイス(すなわち、実デバイス)を列挙するように構成されていてもよい。任意選択的に、内部処理装置は、複数のコンフィギュレーションリード/ライトパケットを少なくとも1つのPCIeダウンストリームポートに送信してもよく、その場合、複数のコンフィギュレーションリード/ライトパケットは、異なるコンプリータ識別子を保持する。少なくとも1つのPCIeダウンストリームポートは、複数のコンフィギュレーションリード/ライトパケットを、少なくとも1つのPCIeダウンストリームポートに接続された物理デバイスに転送するように構成され、かつ、接続された物理デバイスによって送信された少なくとも1つのコンフィギュレーションリード/ライト応答パケットを受信すると、少なくとも1つのコンフィギュレーションリード/ライト応答パケットを内部処理装置に転送するように構成されており、少なくとも1つのコンフィギュレーションリード/ライト応答パケットは、複数のコンフィギュレーションリード/ライトパケットの少なくとも1つと一対一の対応関係で対応しており、各コンフィギュレーションリード/ライト応答パケットは、コンフィギュレーションリード/ライト応答パケットに対応するコンフィギュレーションリード/ライトパケット内のコンプリータ識別子を保持する。内部処理装置は、少なくとも1つのPCIeダウンストリームポートによって転送された少なくとも1つのコンフィギュレーションリード/ライト応答パケットを受信して、少なくとも1つのコンフィギュレーションリード/ライト応答パケットの各々に保持されたコンプリータ識別子に従って、少なくとも1つのPCIeダウンストリームポート(またはスイッチングデバイス)に接続された物理デバイスを判定してもよい。物理デバイスは、I/Oデバイスを含んでもよく、または、さらに、PCIeスイッチおよび/または別の装置を含んでもよい。
したがって、本発明のこの実施形態に係るスイッチングデバイスは、少なくとも1つのホストに接続するように構成された複数のPCIeアップストリームポートと、少なくとも1つのI/Oデバイスに接続するように構成された少なくとも1つのPCIeダウンストリームポートと、内部処理装置とを含んでいる。処理装置は内部バスを用いることにより少なくとも1つのPCIeダウンストリームポートに接続され、また、内部接続ラインを用いることによりコンフィギュレーションリード/ライトパケットを少なくとも1つのPCIeダウンストリームポートに送信し、内部接続ラインを用いることにより少なくとも1つのPCIeダウンストリームポートによって送信されたコンフィギュレーションリード/ライト応答パケットを受信して、コンフィギュレーションリード/ライト応答パケットにおいて保持されるコンプリータ識別子に従って、スイッチングデバイスがコンプリータ識別子を識別子(例えば、BDF)として有するI/Oデバイスに接続されていると判定するように構成されている。このように、スイッチングデバイスが故障すると、スイッチングデバイスに接続された少なくとも1つのホストおよび少なくとも1つのI/Oデバイスのみが影響を受け、システム内の別のスイッチングデバイスならびに別のスイッチングデバイスに接続されたホストおよびI/Oデバイスは影響を受けない。したがって、従来技術における外部管理CPUと比較すると、システムの安定性および信頼性が改善されることができる。
第1の態様の第1の可能な実装形態においては、少なくとも1つのPCIeダウンストリームポートが単機能I/Oデバイスに接続されている場合、スイッチングデバイスは、単機能I/Oデバイスと単機能I/Oデバイスに対応するホストとの間で情報を透過的に送信するように特に構成されている。
この場合、単機能I/Oデバイスの機能は、少なくとも1つのホストのうちの1つのみによって用いられることができる、すなわち、単機能I/Oデバイスは、単機能I/Oデバイスの機能を用いるホストに対応する。
前述の可能な実装形態に関して、第1の態様の第2の可能な実装形態においては、スイッチングデバイスは、さらに、少なくとも1つのPCIeダウンストリームポートに接続されていて、少なくとも1つのPCIeダウンストリームポートに接続された少なくとも1つのI/OデバイスのPCIeコンフィギュレーションの内容を格納するように構成された、少なくとも1つのミラーリングエンドポイントデバイスモジュールと、少なくとも1つのホストに対応するPCIeドメインと少なくとも1つのI/Oデバイスに対応するPCIeドメインとの間のマッピングを実装するように構成されたマッピングモジュールと、少なくとも1つのPCIeダウンストリームポートに接続された少なくとも1つのI/Oデバイスの機能が少なくとも1つのホストによって用いられるように、機能を仮想化するように構成された、少なくとも1つの仮想エンドポイントデバイスモジュールと、を含んでいる。
任意選択的に、少なくとも1つのミラーリングエンドポイントデバイスモジュールの一端が少なくとも1つのダウンストリームポートに接続され、少なくとも1つの仮想エンドポイントデバイスモジュールの一端が複数のPCIeアップストリームポートに接続され、かつ、マッピングモジュールは、少なくとも1つのミラーリングエンドポイントデバイスモジュールの他端と少なくとも1つの仮想エンドポイントデバイスモジュールの他端とに別個に接続されている。
任意選択的に、マッピングモジュールは、少なくとも1つのミラーリングエンドポイントデバイスモジュールと少なくとも1つの仮想エンドポイントデバイスモジュールとの間の、例えば、識別子および/またはアドレスのマッピングを実装するように特に構成されていてもよい。
前述の可能な実装形態に関して、第1の態様の第3の可能な実装形態においては、少なくとも1つのPCIeダウンストリームポートのうち第1のPCIeダウンストリームポートがPCIeコンフィギュレーション空間を有しておらず、かつ、複数のPCIeアップストリームポートの各々がPCIeコンフィギュレーション空間を有する。
前述の可能な実装形態に関して、第1の態様の第4の可能な実装形態においては、スイッチングデバイスは、さらに、少なくとも1つのPCIeダウンストリームポートの各々に対応する少なくとも1つのPCIeコンフィギュレーション空間を備え、少なくとも1つの仮想エンドポイントデバイスモジュールは、少なくとも1つのPCIeダウンストリームポートに対応する少なくとも1つのPCIeコンフィギュレーション空間を用いて複数のPCIeアップストリームポートに特に接続されている。
前述の可能な実装形態に関して、第1の態様の第5の可能な実装形態においては、マッピングモジュールは、少なくとも1つのホストに対応するPCIeドメインにおける識別子から少なくとも1つのI/Oデバイスに対応するPCIeドメインにおける識別子へのマッピング関係を格納するために用いられる第1のマッピングテーブルと、少なくとも1つのI/Oデバイスに対応するPCIeドメインにおける識別子から少なくとも1つのホストに対応するPCIeドメインにおける識別子へのマッピング関係を格納するために用いられる第2のマッピングテーブルと、を格納している。
任意選択的に、第1のマッピングテーブルは、少なくとも1つの仮想エンドポイントデバイスモジュールの識別子から少なくとも1つのミラーリングエンドポイントデバイスモジュールの識別子へのマッピング関係を格納するために用いられる。第2のマッピングテーブルは、特に、少なくとも1つのミラーリングエンドポイントデバイスモジュールの識別子から少なくとも1つの仮想エンドポイントデバイスモジュールの識別子へのマッピング関係を格納するために用いられる。
任意選択的に、マッピングモジュールは、少なくとも1つの仮想エンドポイントデバイスモジュールの識別子と少なくとも1つのミラーリングエンドポイントデバイスモジュールの識別子との間のマッピングを、第1のマッピングテーブルおよび第2のマッピングテーブルに従って実装するように特に構成されている。
前述の可能な実装形態に関して、第1の態様の第6の可能な実装形態においては、少なくとも1つのミラーリングエンドポイントデバイスモジュールのうち第1のミラーリングエンドポイントデバイスモジュールは、特に第3のマッピングテーブルであり、第3のマッピングテーブルは、少なくとも1つのI/Oデバイスのうち第1のI/Oデバイスの仮想機能のベースアドレスレジスタBARアドレスおよびBARサイズを格納するために用いられ、かつ、第1のミラーリングエンドポイントデバイスモジュールは、第1のI/OデバイスのPCIeコンフィギュレーションの内容を格納するように構成されている。
任意選択的に、マッピングモジュールは、少なくとも1つの仮想エンドポイントデバイスモジュールのアドレスから少なくとも1つのミラーリングエンドポイントデバイスモジュールのアドレスへのマッピングを、第3のマッピングテーブルおよび第1のマッピングテーブルに従って実装するように特に構成されている。
前述の可能な実装形態に関して、第1の態様の第7の可能な実装形態においては、少なくとも1つの仮想エンドポイントデバイスモジュールのうち第1の仮想エンドポイントデバイスモジュールは、少なくとも1つのI/Oデバイスのうち第2のI/Oデバイスの物理機能が少なくとも1つのホストのうち第1のホストによって用いられるように、物理機能を仮想化するように特に構成され、かつ、第2のI/Oデバイスの物理機能ドライブは、第1のホストのプロセッサによってロードされる。
前述の可能な実装形態に関して、第1の態様の第8の可能な実装形態においては、少なくとも1つの仮想エンドポイントデバイスモジュールのうち第2の仮想エンドポイントデバイスモジュールは、少なくとも1つのI/Oデバイスのうち第3のI/Oデバイスの仮想機能が少なくとも1つのホストのうち第2のホストによって用いられるように、仮想機能を仮想化するように特に構成され、かつ、第3のI/Oデバイスの物理機能ドライブは、少なくとも1つのホスト内の管理BMCによってロードされる。
前述の可能な実装形態に関して、第1の態様の第9の可能な実装形態においては、少なくとも1つの仮想エンドポイントデバイスモジュールのうち第3の仮想エンドポイントデバイスモジュールは、少なくとも1つのI/Oデバイスのうち第4のI/Oデバイスの物理機能および仮想機能が少なくとも1つのホストのうち第3のホストによって用いられるように、物理機能と仮想機能とを仮想化するように特に構成され、第4のI/Oデバイスの物理機能ドライブは、少なくとも1つのホスト内の管理BMCによってロードされ、かつ、第3の仮想エンドポイントデバイスモジュールの物理機能ドライブは、第3のホストのプロセッサによってロードされる。
前述の可能な実装形態に関して、第1の態様の第10の可能な実装形態においては、スイッチングデバイスは、特にホストスイッチングデバイスおよびI/Oスイッチングデバイスであり、ホストスイッチングデバイスとI/Oスイッチングデバイスとは、イーサネットインタフェースを用いることにより接続され、ホストスイッチングデバイスは、複数のPCIeアップストリームポートを備え、かつ、I/Oスイッチングデバイスは、内部処理装置と、少なくとも1つの仮想エンドポイントデバイスモジュールと、マッピングモジュールと、少なくとも1つのミラーリングエンドポイントデバイスモジュールと、少なくとも1つのPCIeダウンストリームポートとを含んでいる。
前述の可能な実装形態に関して、第1の態様の第11の可能な実装形態においては、内部処理装置は、少なくとも1つのホスト内の管理BMCによって送信された初期化命令を受信し、および初期化命令に従って、コンフィギュレーションリード/ライトパケットを、内部接続ラインを用いることにより少なくとも1つのPCIeダウンストリームポートに送信するように構成され、また、内部処理装置は、さらに、スイッチングデバイスに接続されたI/Oデバイスが判定された後で、スイッチングデバイスに接続されたI/Oデバイスに関する情報を管理BMCに対して報告するように構成され、かつ、情報は識別情報を含む。
任意選択的に、内部処理装置は、内部接続ラインを用いることにより、複数のPCIeアップストリームポートに接続されていてもよく、また、内部処理装置は、特に、複数のPCIeアップストリームポートを使用して、管理BMCによって送信される初期化命令を受信してもよい。内部処理装置は、初期化命令に従って、コンフィギュレーションリード/ライトパケットを少なくとも1つのPCIeダウンストリームポートに送信し、受信されたコンフィギュレーションリード/ライト応答パケットに従って、スイッチングデバイスに接続されたI/Oデバイスに関する情報を判定して、複数のPCIeアップストリームポートを使用して、スイッチングデバイスに接続されたI/Oデバイスに関する情報を管理BMCに報告してもよく、情報は、識別情報(例えば、BDF)を含んでもよく、または、さらにトポロジ構造(例えば、PCIe構造ツリー)等を含んでもよい。
前述の可能な実装形態に関して、第1の態様の第12の可能な実装形態においては、内部処理装置は、さらに、少なくとも1つのホスト内の管理BMCによって送信されるコンフィギュレーション管理情報を受信し、および複数のPCIeアップストリームポートおよび少なくとも1つのPCIeダウンストリームポートをコンフィギュレーション管理情報に従って構成するように構成されている。
前述の可能な実装形態に関して、第1の態様の第13の可能な実装形態においては、内部処理装置は、さらに、異常イベントおよびホットスワップイベントを処理するように構成されている。
第2の態様によれば、PCIeシステムが提供され、このPCIeシステムは、少なくとも1つのホストと、第1の態様または第1の態様の可能な実装形態に係るスイッチングデバイスと、少なくとも1つのI/Oデバイスと、を含んで含んでおり、少なくとも1つのホストは、コンフィギュレーション管理機能を有する管理ベースボード管理コントローラBMCを含む。
任意選択的に、管理BMCは、スイッチングデバイスの構成を管理および制御するように構成されていてもよい。例えば、管理BMCは、以下のコンフィギュレーション、すなわち、少なくとも1つのI/Oデバイスの物理機能に対応する仮想機能、スイッチングデバイス内の少なくとも1つのPCIeダウンストリームポートに対応するPCIeコンフィギュレーション空間、少なくとも1つのPCIeダウンストリームポートに対応するPCIeコンフィギュレーション空間とPCIeアップストリームポートとの間の接続関係、少なくとも1つの仮想エンドポイントデバイスモジュールの仮想機能、少なくとも1つのホストによって用いられることができる機能等、の少なくとも1つを判定するように構成されていてもよい。
第2の態様の第1の可能な実装形態においては、少なくとも1つのI/Oデバイスのうち第2のI/Oデバイスは、複数の物理機能を有し、複数の物理機能は、いずれも、対応する仮想機能を有しておらず、少なくとも1つの仮想エンドポイントデバイスモジュールのうち第1の仮想エンドポイントデバイスモジュールは、第2のI/Oデバイスの複数の物理機能が少なくとも1つのホストのうち第1のホストによって用いられるように、物理機能を仮想化するように特に構成され、かつ、第1のホストのプロセッサは、第2のI/Oデバイスの物理機能ドライブをロードするように構成されている。
前述の可能な実装形態に関して、第2の態様の第2の可能な実装形態においては、少なくとも1つの仮想エンドポイントデバイスモジュールのうち第2の仮想エンドポイントデバイスモジュールは、少なくとも1つのI/Oデバイスのうち第3のI/Oデバイスの仮想機能が少なくとも1つのホストのうち第2のホストによって用いられるように、仮想機能を仮想化するように特に構成され、かつ、管理BMCは、さらに、第3のI/Oデバイスの物理機能ドライブをロードするように構成されている。
前述の可能な実装形態に関して、第2の態様の第3の可能な実装形態においては、少なくとも1つの仮想エンドポイントデバイスモジュールのうち第3の仮想エンドポイントデバイスモジュールは、少なくとも1つのI/Oデバイスのうち第4のI/Oデバイスの物理機能および仮想機能が少なくとも1つのホストのうち第3のホストによって用いられるように、物理機能と仮想機能とを仮想化するように特に構成され、第3のホストのプロセッサは、第3の仮想エンドポイントデバイスモジュールの物理機能ドライブをロードするように構成され、かつ、管理BMCは、さらに、第4のI/Oデバイスの物理機能ドライブをロードするように構成されている。
前述の可能な実装形態に関して、第2の態様の第4の可能な実装形態においては、システムは、PCIeスイッチをさらに備え、かつ、少なくとも1つのPCIeダウンストリームポートは、PCIeスイッチを用いることにより、少なくとも1つのI/Oデバイスに接続するように特に構成されている。
前述の可能な実装形態に関して、第2の態様の第5の可能な実装形態においては、システムは、SMMをさらに備え、かつ、管理BMCは、さらに、少なくとも1つのホスト、スイッチングデバイスおよび少なくとも1つのI/Oデバイスのネットワーク構成情報をSMMに送信するように構成されている。
任意選択的に、ネットワーク構成情報は、コンフィギュレーション管理情報を含んでもよく、または、さらに、他の情報を含んでもよい。
第3の態様によれば、別のスイッチングデバイスが提供される。スイッチングデバイスは、少なくとも1つのホストに接続するように構成された少なくとも1つのPCIeアップストリームポートと、少なくとも1つのI/Oデバイスに接続するように構成された少なくとも1つのPCIeダウンストリームポートと、少なくとも1つのPCIeダウンストリームポートに接続されていて、少なくとも1つのPCIeダウンストリームポートに接続された少なくとも1つのI/OデバイスのPCIeコンフィギュレーションの内容を格納するように構成された、少なくとも1つのミラーリングエンドポイントデバイスモジュールと、少なくとも1つのPCIeダウンストリームポートに接続されていて、少なくとも1つのPCIeダウンストリームポートに接続された少なくとも1つのI/Oデバイスの機能が少なくとも1つのホストによって用いられるように、機能を仮想化するように構成された、少なくとも1つの仮想エンドポイントデバイスモジュールと、少なくとも1つの仮想エンドポイントデバイスモジュールおよび少なくとも1つのミラーリングエンドポイントデバイスモジュールに別個に接続されていて、少なくとも1つのホストに対応するPCIeドメインと少なくとも1つのI/Oデバイスに対応するPCIeドメインとの間のマッピングを実装するように構成された、マッピングモジュールと、を備え、少なくとも1つのPCIeダウンストリームポートのうち第1のPCIeダウンストリームポート、および、第1のPCIeダウンストリームポートに対応するPCIeコンフィギュレーション空間は、スイッチングデバイス内に別個に配置されている。
このように、ホストに対して提供される利用可能なポートの数の増加を容易にするために、PCIeダウンストリームポートおよび、PCIeダウンストリームポートに対応するPCIeコンフィギュレーション空間は、別個に配置されており、これによりリソースの利用が改善される。
第3の態様の第1の可能な実装形態においては、少なくとも1つの仮想エンドポイントデバイスモジュールは、特に、第1のPCIeダウンストリームポートの少なくとも1つのPCIeコンフィギュレーション空間を用いることにより、少なくとも1つのPCIeアップストリームポートに接続されている。
スイッチングデバイスは、第1のPCIeダウンストリームポートの1つまたは複数のPCIeコンフィギュレーション空間を含んで含んでもよく、少なくとも1つの仮想エンドポイントデバイスモジュールの全部または一部は、第1のPCIeダウンストリームポートの少なくとも1つのPCIeコンフィギュレーション空間を用いることにより、少なくとも1つのPCIeアップストリームポートの全部または一部に接続されている。
このように、各ホストに接続された仮想エンドポイントデバイスモジュールの数の増加を容易にし、これによりシステムパフォーマンスを改善するために、少なくとも1つの仮想エンドポイントデバイスモジュールは、第1のPCIeダウンストリームポートに対応する少なくとも1つのPCIeコンフィギュレーション空間を用いることにより、複数のPCIeアップストリームポートに接続されている。
第4の態様によれば、別のスイッチングデバイスが提供される。スイッチングデバイスは、少なくとも1つのホストに接続するように構成された少なくとも1つのPCIeアップストリームポートと、少なくとも1つのI/Oデバイスに接続された少なくとも1つのPCIeダウンストリームポートと、少なくとも1つのPCIeダウンストリームポートに接続されていて、少なくとも1つのPCIeダウンストリームポートに接続された少なくとも1つのI/OデバイスのPCIeコンフィギュレーションの内容を格納するように構成された少なくとも1つのミラーリングエンドポイントデバイスモジュールと、少なくとも1つのPCIeダウンストリームポートに接続されていて、少なくとも1つのPCIeダウンストリームポートに接続された少なくとも1つのI/Oデバイスの機能が少なくとも1つのホストによって用いられるように機能を仮想化するように構成された、少なくとも1つの仮想エンドポイントデバイスモジュールと、少なくとも1つの仮想エンドポイントデバイスモジュールおよび少なくとも1つのミラーリングエンドポイントデバイスモジュールに別個に接続されていて、少なくとも1つのホストに対応するPCIeドメインと少なくとも1つのI/Oデバイスに対応するPCIeドメインとの間のマッピングを実装するように構成されたマッピングモジュールと、を備え、
マッピングモジュールは、少なくとも1つのホストに対応するPCIeドメイン内の識別子から少なくとも1つのI/Oデバイスに対応するPCIeドメイン内の識別子へのマッピング関係を格納するために用いられる第1のマッピングテーブルと、少なくとも1つのI/Oデバイスに対応するPCIeドメイン内の識別子から少なくとも1つのホストに対応するPCIeドメイン内の識別子へのマッピング関係を格納するために用いられる第2のマッピングテーブルと、を格納する。
このように、ホストに対応するPCIeドメイン内の識別子とI/Oデバイスに対応するPCIeドメイン内の識別子との間のマッピング関係は、マッピングテーブル状に格納される。従来技術と比較すると、この解決策は、マッピングモジュールによって占有されるストレージスペースと複雑性とを低減し、およびシステムのストレージリソースを節約することができる。
第5の態様によれば、別のスイッチングデバイスが提供される。スイッチングデバイスは、少なくとも1つのホストに接続するように構成された少なくとも1つのPCIeアップストリームポートと、少なくとも1つのI/Oデバイスに接続された少なくとも1つのPCIeダウンストリームポートと、少なくとも1つのPCIeダウンストリームポートに接続されていて、少なくとも1つのPCIeダウンストリームポートに接続された少なくとも1つのI/OデバイスのPCIeコンフィギュレーションの内容を格納するように構成された少なくとも1つのミラーリングエンドポイントデバイスモジュールと、少なくとも1つのPCIeダウンストリームポートに接続されていて、少なくとも1つのPCIeダウンストリームポートに接続された少なくとも1つのI/Oデバイスの機能が少なくとも1つのホストによって用いられるように機能を仮想化するように構成された少なくとも1つの仮想エンドポイントデバイスモジュールと、少なくとも1つの仮想エンドポイントデバイスモジュールおよび少なくとも1つのミラーリングエンドポイントデバイスモジュールに別個に接続されていて、少なくとも1つのホストに対応するPCIeドメインと少なくとも1つのI/Oデバイスに対応するPCIeドメインとの間のマッピングを実装するように構成されたマッピングモジュールと、を備え、
少なくとも1つのミラーリングエンドポイントデバイスモジュールのうち第1のミラーリングエンドポイントデバイスモジュールは、特に第3のマッピングテーブルであり、第3のマッピングテーブルが少なくとも1つのI/Oデバイスのうち第1のI/Oデバイスの仮想機能のベースアドレスレジスタBARアドレスおよびBARサイズを格納するために用いられ、第1のミラーリングエンドポイントデバイスモジュールは、第1のI/OデバイスのPCIeコンフィギュレーションの内容を格納するように構成されている。
このように、I/Oデバイスの仮想機能のアドレス情報はマッピングテーブル状に格納される。従来技術と比較すると、この解決策は、mEPおよびスイッチングデバイスによって占有されるストレージスペースを低減することができ、システムのストレージリソースを節約することができる。
第6の態様によれば、PCIeシステムを初期化する方法が提供され、この方法は、第2の態様および第2の態様の可能な実装形態のいずれかにおけるPCIeシステムに適用される。この方法は、管理BMCによって、初期化命令をスイッチングデバイス内の内部処理装置に送信することと、初期化命令に従って内部処理装置によって、スイッチングデバイスに接続されたI/Oデバイスを判定して、スイッチングデバイスに接続されたI/Oデバイスに関する情報を管理BMCに報告することと、少なくとも1つのホストによって、少なくとも1つのホストに接続されたデバイスに関する情報を取得することと、少なくとも1つのホストに接続されたデバイスに関する情報に従って少なくとも1つのホストによって、少なくとも1つのI/Oデバイスの仮想機能ドライブおよび物理機能ドライブをロードすることと、を含む。
第6の態様の第1の可能な実装形態においては、少なくとも1つのホストに接続されたデバイスに関する情報に従って少なくとも1つのホストによってとは、少なくとも1つのホストのうち第1のホストであって、スイッチングデバイスの複数のPCIeアップストリームポートのうち第1のPCIeアップストリームポートに接続された第1のホストによって、コンフィギュレーションリードパケットを送信することと、スイッチングデバイスの少なくとも1つの対象仮想エンドポイントデバイスモジュールであって、少なくとも1つの仮想エンドポイントデバイスモジュールに含まれかつ各々が第1のPCIeアップストリームポートに接続された少なくとも1つの対象仮想エンドポイントデバイスモジュール、によって、第1のPCIeアップストリームポートを使用して、第1のホストにより送信されたコンフィギュレーションリードパケットを受信し、かつコンフィギュレーションリードパケットに従って、コンフィギュレーションリード応答パケットを第1のホストに送信することと、第1のホストによって、受信されたコンフィギュレーションリード応答パケットに従ってコンフィギュレーションライトパケットを送信することと、少なくとも1つのI/Oデバイスに含まれる少なくとも1つの対象I/Oデバイスの機能を仮想化するように構成された少なくとも1つの対象仮想エンドポイントデバイスモジュールによって、第1のPCIeアップストリームポートを使用して、第1のホストによって送信されたコンフィギュレーションライトパケットを受信し、および少なくとも1つのPCIeダウンストリームポートのうち少なくとも1つの第1のPCIeダウンストリームポートを使用して、コンフィギュレーションライトパケットを、少なくとも1つの対象I/Oデバイスに転送することと、少なくとも1つの第1のPCIeダウンストリームポートを使用して少なくとも1つの対象I/Oデバイスによって、少なくとも1つの対象仮想エンドポイントデバイスモジュールによって転送されたコンフィギュレーションライトパケットを受信し、かつ受信されたコンフィギュレーションライトパケットに従ってコンフィギュレーションライト応答パケットをスイッチングデバイスに送信することと、スイッチングデバイスによって、少なくとも1つの対象I/Oデバイスによって送信されたコンフィギュレーションライト応答パケットを受信し、かつ第1のPCIeアップストリームポートを使用して、コンフィギュレーションライト応答パケットを第1のホストに転送することと、第1のホストによって、第1のホストに接続された少なくとも1つの対象仮想エンドポイントデバイスモジュールに関する情報を、受信されたコンフィギュレーションライト応答パケットから取得することと、を含む。
第6の態様の第1の可能な実装形態においては、方法は、スイッチングデバイスの内部処理装置によって、少なくとも1つの対象仮想エンドポイントデバイスモジュールに関する情報をコンフィギュレーションライトパケットから取得し、かつ少なくとも1つの対象仮想エンドポイントデバイスモジュールに関する取得された情報に従って、スイッチングデバイスのマッピングモジュールを構成することをさらに含む。
前述の可能な実装形態に関して、第6の態様の第2の可能な実装形態においては、少なくとも1つのホストに接続されたデバイスに関する情報に従って少なくとも1つのホストによって、少なくとも1つのI/Oデバイスの仮想機能ドライブおよび物理機能ドライブをロードすることは、少なくとも1つの仮想エンドポイントデバイスモジュールのうち第1の仮想エンドポイントデバイスモジュールが少なくとも1つのI/Oデバイスのうち第2のI/Oデバイスの仮想機能を仮想化するように構成されている場合、少なくとも1つのホスト内の管理BMCによって、第2のI/Oデバイスの物理機能ドライブをロードすること、を含む。
前述の可能な実装形態に関して、第6の態様の第3の可能な実装形態においては、少なくとも1つのホストに接続されたデバイスに関する情報に従って少なくとも1つのホストによって、少なくとも1つのI/Oデバイスの仮想機能ドライブおよび物理機能ドライブをロードすることは、少なくとも1つの仮想エンドポイントデバイスモジュールのうち第2の仮想エンドポイントデバイスモジュールが少なくとも1つのI/Oデバイスのうち第3のI/Oデバイスの物理機能を仮想化するように構成されている場合、少なくとも1つのホストのうち第2のホストのプロセッサによって、第3のI/Oデバイスの物理機能ドライブをロードすることを含み、第2の仮想エンドポイントデバイスモジュールは、複数のPCIeアップストリームポートを使用して第2のホストに接続されている。
従来技術におけるPCIeシステムの概略ブロック図である。 本発明の一実施形態に係るPCIeシステムの概略ブロック図である。 本発明の一実施形態に係るPCIeシステムの別の概略ブロック図である。 本発明の一実施形態に係るPCIeシステムの別の概略ブロック図である。 本発明の一実施形態に係るPCIeシステムの別の概略ブロック図である。 本発明の一実施形態に係るPCIeシステムの別の概略ブロック図である。 本発明の一実施形態に係るPCIeシステムの別の概略ブロック図である。 本発明の一実施形態に係るPCIeシステムの別の概略ブロック図である。 本発明の一実施形態に係るPCIeシステムの別の概略ブロック図である。 本発明の一実施形態に係るPCIeシステムを初期化する方法の概略フローチャートである。
以下、本発明の実施形態における技術的解決策について、本発明の実施形態における添付図面を参照して説明する。
図2は、本発明の一実施形態に係るPCIeシステム200の概略的アーキテクチャ図である。PCIeシステム200は、1つのホスト内の複数のプロセスによるI/Oデバイスの共有を実装するように、または、複数のホストによるI/Oデバイスの共有を実装するように構成されていてもよい。
図2に示すように、PCIeシステム200は、N1個のホスト210と、スイッチングデバイス220と、M1個のI/Oデバイス230とを含んでいる(ただしN1≧1かつM1≧1)。I/Oデバイスはまた、エンドポイント(Endpoint,EP)デバイスと呼ばれることもある。
図2は、一例を用いつつ、PCIeシステム200がスイッチングデバイスを1つのみ備え、かつ、スイッチングデバイスが少なくとも1つのホストと少なくとも1つのI/Oデバイスとに接続されていることを示す。しかしながら、代替的には、PCIeシステム200が複数のスイッチングデバイスを備え、かつ、各スイッチングデバイスが少なくとも1つのホストと少なくとも1つのI/Oデバイスとに接続されていてもよいことが理解されるべきである。各スイッチングデバイスならびにスイッチングデバイスに接続された少なくとも1つのホストおよび少なくとも1つのI/Oデバイスは、ネットワークユニットと見なすことができる。これに対応して、PCIeシステム200は、1つまたは複数のネットワークユニットを含んでもよい。しかしながら、本発明のこの実施形態はこれに限定されるものではない。
任意選択的に、本発明のこの実施形態においては、ホストは、特にサーバやパーソナルコンピュータなどの装置であってもよい。代替的には、ホストは仮想マシンであってもよい。本発明のこの実施形態はこれに限定されるものではない。任意選択的に、N1個のホストの一部または全部が、ベースボード管理コントローラ(Baseboard Management Controller,BMC)を含んでもよい。すなわち、N1個のホストが1つまたは複数のBMCを含んでもよい。1つまたは複数のBMCのうちの少なくとも1つは、コンフィギュレーション管理機能を有していてもよく、少なくとも1つのホストと、スイッチングデバイスと、少なくとも1つのI/Oデバイスとを含むネットワークユニットを管理および制御するように特に構成されている。説明の便宜上、以下の説明では、コンフィギュレーション管理機能を有するBMCを管理BMCとよぶ。任意選択的に、管理BMCは、従来技術における管理CPUによって所有されるコンフィギュレーション管理機能を実装するように構成されていてもよい。しかしながら、従来の管理CPUとは異なり、管理BMCは、スイッチングデバイスと、管理BMCが属するネットワークユニット内のスイッチングデバイスに接続された少なくとも1つのホストおよび少なくとも1つのI/Oデバイスと、のコンフィギュレーション管理のみについて役割を担う一方、ネットワークに存在する可能性のある他のネットワークユニットのホスト、I/Oデバイスおよびスイッチングデバイスのコンフィギュレーション管理のついては役割を担わなくてもよい。本発明のこの実施形態はこれに限定されるものではない。
任意選択的に、I/Oデバイスは、特に、ホストバスアダプタ(Host Bus Adapter,HBA)またはソリッドステートディスク(Solid State Disk,SSD)などのデバイスであってもよい。これは本発明のこの実施形態に限定されるものではない。
本発明のこの実施形態においては、スイッチングデバイス220は、N2個のPCIeアップストリームポート221と、M2個のPCIeダウンストリームポート222と、内部処理装置223とを含んでもよい(ただしN2>1かつM2≧1)。N2個のPCIeアップストリームポート221は、N1個のホスト210に接続するように構成されている。M2個のPCIeダウンストリームポート222は、M1個のI/Oデバイス230に接続するように構成されている。内部処理装置223は、スイッチングデバイスの内部接続ラインを用いることによりM2個のPCIeダウンストリームポート222に接続されていてもよく、また、スイッチングデバイスの内部接続ラインを用いることによりN2個のPCIeアップストリームポート221に接続されていてもよい。
具体的には、スイッチングデバイス220は、N2個のPCIeアップストリームポート221を使用してN1個のホスト210に接続されてもよい。N2=N1の場合、すなわち、スイッチングデバイスのPCIeアップストリームポートの数がスイッチングデバイスに接続されたホストの数と等しい場合、N2個のPCIeアップストリームポートは、N1個のホストに一対一の対応関係で接続されていてもよい。N2>N1の場合、すなわち、スイッチングデバイスのPCIeアップストリームポートの数がスイッチングデバイスに接続されたホストの数より多い場合、N2個のPCIeアップストリームポートのうちN1個は、N1個のホストに一対一の対応関係で接続されていてもよく、かつ、残りの(N2−N1)個のPCIeアップストリームポートはアイドル状態であるか、またはPCIeダウンストリームポートとして設定されてもよい。しかしながら、これは本発明のこの実施形態に限定されるものではない。
同様に、スイッチングデバイス220は、M2個のPCIeダウンストリームポート222を使用してM1個のI/Oデバイス230に接続されてもよい。M2=M1の場合、すなわち、スイッチングデバイスのPCIeダウンストリームポートの数がスイッチングデバイスに接続されたI/Oデバイスの数に等しい場合、M2個のPCIeダウンストリームポートは、M1個のI/Oデバイスに1対1の対応関係で接続されていてもよい。M2>M1の場合、すなわち、スイッチングデバイスのPCIeダウンストリームポートの数がスイッチングデバイスに接続されたI/Oデバイスの数より多い場合、M2個のPCIeダウンストリームポートのうちM1個はN1個のI/Oデバイスに1対1の対応関係で接続されてもよく、かつ、残りの(M2−M1)個のPCIeダウンストリームポートはアイドル状態であるか、またはPCIeアップストリームポートとして設定されてもよい。M2<M1の場合、すなわちスイッチングデバイスのPCIeダウンストリームポートの数が、スイッチングデバイスに接続されたI/Oデバイスの数より小さい場合、PCIeシステム200は、1つまたは複数のPCIeスイッチをさらに含んでもよく、M2個のPCIeダウンストリームポートの一部または全部が、PCIeスイッチを用いることによりM1個のI/Oデバイスに接続されてもよい。このように、スイッチングデバイスに接続されたI/Oデバイスの数が増えてもよく、しかもスイッチング性能は低下しない。しかしながら、これは本発明のこの実施形態に限定されるものではない。
任意選択的に、PCIeシステム200は、PCIeスイッチをさらに含んでおり、M2個のPCIeダウンストリームポートは、PCIeスイッチを用いることによって、M1個のI/Oデバイスに接続されてもよい。
加えて、スイッチングデバイス220は、内部処理装置223をさらに含んでいる。内部処理装置223は、特に、例えばプロセッサまたは/またはハードウェア処理回路等の処理モジュールであってもよい。任意選択的に、内部処理装置は、プロセッサおよびハードウェア回路によって実装されてもよい。代替的には、内部処理装置はハードウェア回路のみによって実装されてもよい。これは本発明のこの実施形態に限定されるものではない。
本発明のこの実施形態においては、内部処理装置は、スイッチングデバイス配下の物理デバイス(すなわち、機能モジュールを含まない実デバイス)を列挙するように構成されてもよく、例えば、M2個のPCIeダウンストリームポート222を使用して、スイッチングデバイスに接続された物理デバイスを判定してもよく、またはスイッチングデバイスに接続された複数の物理デバイスの情報、例えば識別子(BDF)またはトポロジ構造といった情報をさらに取得してもよく、さらに、複数の物理デバイスに関する情報に従ってPCIeドメイン構造ツリーを構築してもよい。物理デバイスは、I/Oデバイスおよび/またはPCIeスイッチを含んでもよい。この場合、内部処理装置は、仮想ルートポート(Root Port,RP)またはルートコンプレックス(Root Complex,RC)とみなしてもよい。しかしながら、これは本発明のこの実施形態に限定されるものではない。
任意選択的に、内部処理装置223は、デバイスの列挙を能動的に行ってもよく、例えば、システム初期化段階でデバイスの列挙を行ってもよい。代替的には、内部処理装置223は、別のデバイスからの指示を受けたときに、その指示に従ってデバイスの列挙を行ってもよい。例えば、内部処理装置223は、管理BMCから送信される初期化命令または列挙命令を受信し、初期化命令または列挙命令に従ってデバイスの列挙を行ってもよい。しかしながら、これは本発明のこの実施形態に限定されるものではない。
具体的には、デバイス列挙を行う場合、内部処理装置223は、複数のコンフィギュレーションリード/ライトパケットを少なくとも1つのPCIeダウンストリームポート222に送信してもよい。コンフィギュレーションリード/ライトパケットは、リクエスト識別子(Request Identification,RID)およびコンプリータ識別子(Completer Identification,CID)を保持するもので、RIDの値は内部処理装置223のBDFに設定されてもよく、かつ、CIDの値は、順次、初期値から始まる番号を与えられてもよい。内部処理装置223は、複数のコンフィギュレーションリード/ライトパケットの少なくとも1つに対応するコンフィギュレーションリード/ライト応答パケットを受信してもよい。コンフィギュレーションリード/ライト応答パケットは、対応するコンフィギュレーションリード/ライトパケット内のRIDおよびCIDを保持する。このようにして、内部処理装置223は、コンフィギュレーションリード/ライト応答パケットを認識(例えばコンフィギュレーションリード/ライト応答パケット内のCIDを認識)することにより、スイッチングデバイス220が、コンフィギュレーションリード/ライト応答パケット内のCIDをBDF番号として有する物理デバイスに接続されているか否かを判定する。しかしながら、これは本発明のこの実施形態に限定されるものではない。
任意的実施形態においては、内部処理装置223がプロセッサとハードウェア回路とで実装されている(ここではプロセッサとハードウェア回路とは内部バスを用いることにより接続されている)場合、プロセッサは、初期化命令(または列挙命令)を管理BMCから受信し、初期化命令に従って、列挙パケットに関する情報であってタイプ0(Type0)およびタイプ1(Type1)のコンフィギュレーションリード/ライトパケットによって必要とされる情報を含む情報を生成し、生成した情報を内部バスに出力するように構成されていてもよい。ハードウェア回路は、内部バスを用いることにより、プロセッサによって生成された情報を受信し、その情報をトランザクション層パケット(Transaction Layer Packet,TLP)としてカプセル化し、内部処理装置223に接続された次レベルのモジュールまたは回路を用いることにより、TLPを少なくとも1つのPCIeダウンストリームポート222に送信してもよい。加えて、ハードウェア回路は、さらに、少なくとも1つのPCIeダウンストリームポート222によって送信されたコンフィギュレーションリード/ライト応答パケットを受信すると、コンフィギュレーションリード/ライト応答パケットを認識するように構成されていてもよい。例えば、ハードウェア回路は、少なくとも1つのPCIeダウンストリームポート222によって送信されたコンプリーション(Completion,CPL)/(Completion Data,CPLD)パケットを受信し、受信したCPL/CPLDパケット内のIDを認識してもよい。CPL/CPLDパケットは、ハードウェア回路の割り込みトリガにより、内部バスを用いることにより内部処理装置223のプロセッサに送信されてもよい。具体的には、ハードウェア回路は、CPL/CPLDパケットを内部バスのタイムシーケンスに従ったデータフォーマットに分解し、CPL/CPLDパケットを内部バスに送信してもよい。内部処理装置223のプロセッサは、さらに、受信したパケット情報を解析し、パケット情報を格納して、パケット情報に従ってPCIeドメインの構造ツリーを生成するように構成されていてもよい。デバイスの列挙が完了した後、プロセッサは、さらに、複数のPCIeアップストリームポート221を使用して、生成されたPCIe構造ツリーに関する情報を管理BMCに送信してもよい。しかしながら、これは本発明のこの実施形態に限定されるものではない。
したがって、本発明のこの実施形態によって提供されるPCIeシステムは、少なくとも1つのホストと、スイッチングデバイスと、少なくとも1つのI/Oデバイスとを含んでいる。スイッチングデバイスは、少なくとも1つのホストに接続するように構成された複数のPCIeアップストリームポートと、少なくとも1つのI/Oデバイスに接続するように構成された少なくとも1つのPCIeダウンストリームポートと、内部処理装置とを含んでいる。処理装置は、内部バスを用いることにより少なくとも1つのPCIeダウンストリームポートに接続されており、内部接続ラインを用いることによりコンフィギュレーションリード/ライトパケットを少なくとも1つのPCIeダウンストリームポートに送信し、内部接続ラインを用いることにより少なくとも1つのPCIeダウンストリームポートによって送信されたコンフィギュレーションリード/ライト応答パケットを受信し、コンフィギュレーションリード/ライト応答パケットに保持されたコンプリータ識別子に従って、スイッチングデバイスが、コンプリータ識別子を識別子として有するI/Oデバイスに接続されていると判定するように構成されている。
このように、PCIeシステム内のスイッチングデバイスが故障している場合、スイッチングデバイスに接続されている少なくとも1つのホストおよび少なくとも1つのI/Oデバイスのみが影響を受けることがあり、他のスイッチングデバイス、ならびに、PCIeシステム内の別のスイッチングデバイスに接続されたホストおよびI/Oデバイスは影響を受けることがない。したがって、従来の外付けされた管理CPUと比較して、PCIeシステムの安定性および信頼性を向上することができる。
任意選択的に、内部処理装置223は、以下の機能の少なくとも1つ、すなわち、ホットスワップイベント処理、異常イベント処理およびコンポーネント構成(例えばレジスタ構成)の少なくとも1つの機能をさらに有していてもよい。
内部処理装置223は、ホットスワップイベントを処理するように構成されていてもよい。具体的には、内部処理装置223は、管理BMCおよび/またはハードウェアによってトリガされるホットスワップイベントを検出して、対応するホットスワップ処理手順を行ってもよい。内部処理装置223は、さらに、異常イベントを処理するように構成されていてもよい。具体的には、内部処理装置223は、ハードウェア異常を処理し、異常イベントログを記録して、異常イベントログを報告してもよい。加えて、内部処理装置223は、さらに、コンポーネントを構成するように構成されていてもよい。具体的には、内部処理装置223は、初期化段階でレジスタを構成し、または、レジスタの構成を変更してもよい。内部処理装置223は、デバイスの列挙のプロセスにおいてコンポーネントのコンフィギュレーションに必要な情報を取得し、または、管理BMCによって送信されたコンフィギュレーション管理情報を受信して、コンフィギュレーション管理情報等に従ってコンポーネントを構成してもよい。これは本発明のこの実施形態に限定されるものではない。
任意的実施形態においては、内部処理装置223がプロセッサとハードウェア回路とによって実装されている場合、異常イベント処理の機能を実装するにあたり、内部処理装置223内のハードウェア回路はI/Oデバイスの物理機能に関する異常情報を獲得して、内部処理装置223内のプロセッサによって構成された異常情報を用いることによりプロセッサをトリガしてもよい。内部処理装置223のプロセッサは異常種別を認識してもよい。異常種別が具体的に修正可能または修正不能な非致命的エラーである場合、プロセッサは、自己処理を行い、報告することなく警告のみを出力してもよい。異常種別が具体的に修正不能な致命的エラーである場合、プロセッサは、I/O装置のリンクを破棄し、破棄されたI/O装置のリンクを管理BMCに報告してもよい。リンクが破棄されたI/O装置を学習した後で、管理BMCはI/Oデバイスに対応するドライブをアンインストールしてもよい。加えて、任意選択的に、管理BMCは、シェルフ管理モジュール(Shelf Management Module,SMM)に対して、ネットワーク情報の更新を通知してもよい。SMMは、異常を有するI/Oデバイスに対応するホストを管理および制御し、例えば、ドライブのアンインストールを行いまたは初期化処理をリセットする。これは本発明のこの実施形態に限定されるものではない。
本発明のこの実施形態においては、内部処理装置223は、M1個のI/Oデバイス230から送信されるデータパケットを、M2個のPCIeダウンストリームポート222を使用して受信し、受信されたデータパケットを処理し、例えば、タイムシーケンスを変換して、処理されたデータパケットを、内部接続ラインを利用してN2個のPCIeアップストリームポート221に送信してもよい。加えて、内部処理装置223は、さらに、N1個のホスト210によって送信されたデータパケットを、N2個のPCIeアップストリームポート221を使用して受信し、受信されたデータパケットを処理し、例えば、タイムシーケンスを変換して、処理されたデータパケットを、内部接続ラインを用いることによりM2個のPCIeダウンストリームポート222に送信するように構成されていてもよい。
任意的実施形態においては、内部処理装置223がプロセッサとハードウェア回路とにより実装されている場合、ホストにより送信されるデータを受信する際、内部処理装置内のプロセッサは、管理BMCのインタフェースのバスのタイムシーケンスを解析して、内部バスのタイムシーケンスにおけるデータを出力してもよい。次レベルのモジュールまたは回路によって転送されたデータを受信する際、プロセッサは、内部バスのタイムシーケンスを解析して、管理BMCのインタフェースのバスのタイムシーケンスにデータを出力してもよい。しかしながら、これは本発明のこの実施形態に限定されるものではない。
任意選択的に、本発明のこの実施形態においては、管理BMCはネットワークポートを用いることによりネットワーク情報(またはネットワーク構成情報)をSMMに報告してもよい。SMMは、ネットワーク全体を管理する役割を担うように構成されていてもよい。ユーザは、要求仕様に応じて、SMMのヒューマン‐コンピュータ・インタラクション・インタフェースを利用して、ホストとI/Oデバイスとの間のマッピング接続を設定してもよい。この場合、任意選択的に、管理BMCは、さらに、SMMによって送信される構成要求仕様情報を受信して、構成要求仕様情報に従ってコンフィギュレーション管理情報を決定するように構成されていてもよい。しかしながら、これは本発明のこの実施形態に限定されるものではない。
任意選択的に、本発明のこの実施形態においては、N2個のPCIeアップストリームポート221お各々が、PCIeコンフィギュレーション空間を有し、かつ、M2個のPCIeダウンストリームポート222はいずれもPCIeコンフィギュレーション空間を有しない。
本発明のこの実施形態においては、スイッチングデバイス220におけるPCIeアップストリームポート221はPCIeコンフィギュレーション空間を有し、標準PCIeポート(すなわち、標準P2Pアップストリームブリッジ)である。スイッチングデバイス220におけるPCIeダウンストリームポート222は、PCIeコンフィギュレーション空間を有しておらず、標準PCIeポートではない(すなわち、標準P2Pダウンストリームブリッジではない)。任意選択的に、スイッチングデバイス220は、M2個のPCIeダウンストリームポート222のPCIeコンフィギュレーション空間を追加的に格納しなくてもよい、すなわち、スイッチングデバイス220におけるPCIeダウンストリームポート222にはPCIeコンフィギュレーション空間が存在しない。代替的には、スイッチングデバイス220は、M2個のPCIeダウンストリームポート222の各々のPCIeコンフィギュレーション空間を追加的に格納してもよい、すなわち、PCIeダウンストリームポート222のPCIeコンフィギュレーション空間は、スイッチングデバイス220におけるPCIeダウンストリームポート222から分離されている。代替的には、スイッチングデバイス220は、M2個のPCIeダウンストリームポート222のうち一部のPCIeコンフィギュレーション空間を追加的に格納しつつ、それ以外のPCIeダウンストリームポート222のPCIeコンフィギュレーション空間を追加的に格納しなくてもよい。これは本発明のこの実施形態に限定されるものではない。
任意選択的に、本発明のこの実施形態においては、PCIeダウンストリームポート222は、少なくとも1つのPCIeコンフィギュレーション空間に対応していてもよく、この少なくとも1つのPCIeコンフィギュレーション空間はPCIeダウンストリームポート222に対応し、PCIeダウンストリームポート222はスイッチングデバイス220内に別個に配置されてもよい、すなわち、PCIeダウンストリームポート222は、PCIeダウンストリームポート222に対応する少なくとも1つのePCIeコンフィギュレーション空間から分離されていてもよい。加えて、任意選択的に、PCIeダウンストリームポート222に対応する少なくとも1つのPCIeコンフィギュレーション空間は、N1個のホスト210に対応するPCIeドメインに属してもよい。このように、スイッチングデバイス220がPCIeダウンストリームポート222に対応する複数のPCIeコンフィギュレーション空間を格納すると、PCIeダウンストリームポート222は、システムのリソース利用を改善するために、ホスト210によって使用される複数のポートとして用いられてもよい。
2個のスイッチングデバイス220におけるPCIeアップストリームポート221がすべてPCIeコンフィギュレーション空間を有し、かつ、M2個のPCIeダウンストリームポート222がいずれもPCIeコンフィギュレーション空間を有しない例は、前述した実施形態の説明のために用いられていることが理解されるべきである。任意選択的に、M2個のPCIeダウンストリームポート222の一部がPCIeコンフィギュレーション空間を有していてもよく、また、PCIeダウンストリームポート222の他の一部がPCIeコンフィギュレーション空間を有しなくてもよい。代替的には、M2個のPCIeダウンストリームポート222のすべてがPCIeコンフィギュレーション空間を有する。別の任意的実施形態においては、N2個のPCIeアップストリームポート221の一部または全部がPCIeコンフィギュレーション空間を有しなくてもよい。これは本発明のこの実施形態に限定されるものではない。
任意選択的に、図3に示すように、スイッチングデバイス220は、N3個の仮想エンドポイントデバイスモジュール(vEPと略す)224と、マッピングモジュール(MAP)225と、M3個のミラーリングエンドポイントデバイスモジュール(mEPと略す)226とをさらに含んでいる。
3個のvEP224は、N2個のPCIeアップストリームポート221に接続されていてもよく、M2個のPCIeダウンストリームポート222に接続されたM1個のI/Oデバイス230の機能がN2個のPCIeアップストリームポート221に接続されたN1個のホスト210(ただしN3≧1)によって用いられるようにM1個のI/Oデバイス230の機能を仮想化するように構成されている。
3個のmEP226は、M2個のPCIeダウンストリームポート222に接続されていてもよく、M2個のPCIeダウンストリームポート222に接続されたM1個のI/Oデバイス230(ただしM3≧1)のPCIeコンフィギュレーションの内容を格納するように構成されている。
マッピングモジュール225は、N3個のvEP224とM3個のmEP226とに別個に接続されていてもよく、N1個のホスト210に対応するPCIeドメインとM1個のI/Oデバイス230に対応するPCIeドメインとの間のマッピングを実装するように構成されている。
本発明のこの実施形態においては、任意選択的に、スイッチングデバイス220は、1つまたは複数のmEP226と、マッピングモジュール225と、1つまたは複数のvEP224とをさらに含んでもよい。N3の値は、N1個のホスト210によって用いられる必要があるまたは用いられることができる機能の数によって決定されてもよく、N3は、M3と等しくてもよく、等しくなくてもよい。例えば、N3およびM3は双方ともM1個のI/Oデバイス230が所有する機能の総数(例えば、VFの総数)に等しくてもよい。これは本発明のこの実施形態に限定されるものではない。
具体的には、mEP226は、実在するEPのミラーリングであってもよく、I/Oデバイス(すなわち、エンドポイントデバイス)230のPCIeコンフィギュレーションの内容を格納するように構成されている。vEP224は、エンドポイントデバイス230の物理機能および/または仮想機能を仮想化するように構成されていてもよく、そして、具体的には、エンドポイントデバイス230の物理機能または仮想機能に対応するPCIeコンフィギュレーション空間であってもよい。マッピングモジュール225は、受信された情報および/またはデータが送信された送信先のモジュール(またはコンポーネント)を判定するために、N1個のホスト210に対応するPCIeドメインと、少なくとも1つのI/Oデバイス230に対応するPCIeドメインと、に対応する識別子および/またはアドレスの間のマッピングを実装するように構成されていてもよい。任意的な例においては、vEP224は、ホスト210に対応するPCIeドメインに属していてもよく、mEP226は、I/Oデバイス230に対応するPCIeドメインに属していてもよい。これに対応して、マッピングモジュール225は、N1個のホスト210とM1個のI/Oデバイス230との間で送信されるデータパケットに対する天象処理を行うために、M3個のmEP226の識別子および/またはアドレスと、N3個のvEP224の識別子および/またはアドレスとの間のマッピングを実装する(すなわち、vEPからmEPへのマッピングを行う、または、mEPからvEPへのマッピングを行う)ように特に構成されていてもよい。しかしながら、これは本発明のこの実施形態に限定されるものではない。
任意選択的に、N2個のPCIeアップストリームポート221、N3個のvEP224、マッピングモジュール225、M3個のmEP226およびM2個のPCIeダウンストリームポート222は、順次接続されていてもよい。具体的には、vEP224の一端がPCIeアップストリームポート221に接続されていてもよく、その他端がマッピングモジュール225に接続されていてもよい。N3個のvEP224はN2個のPCIeアップストリームポート221の一部または全部に直接的または間接的に接続されていてもよい。mEP226の一端がPCIeダウンストリームポート222に接続されていてもよく、その他端がマッピングモジュール225に接続されていてもよい。M3個のmEP226は、M2個のPCIeダウンストリームポート222の一部または全部に直接的または間接的に接続されていてもよい。しかしながら、これは本発明のこの実施形態に限定されるものではない。
2個のPCIeダウンストリームポート222のPCIeコンフィギュレーション空間がスイッチングデバイス220に追加的に設定されていない場合、N3個のvEP224は、N2個のPCIeアップストリームポート221の一部または全部に直接的に接続されていてもよい。任意選択的に、スイッチングデバイス220がさらに、1つまたは複数のPCIeダウンストリームポート222に対応するPCIeコンフィギュレーション空間を追加的に格納する場合、例えば、図3に示すように、スイッチングデバイス220は、N4個のPCIeダウンストリームポートコンフィギュレーション空間(DP_CFGと略す)227を格納してもよく、各PCIeダウンストリームポート222は、0個、1個または複数個のDP_CFG227に対応していてもよい。この場合、N3個のvEP224は、N4個のDP_CFG227を用いることによりN2個のPCIeアップストリームポート221に接続されていてもよい。このように、PCIeアップストリームポート221は、各ホストによって用いられることができるvEPの数を増加させてシステムパフォーマンスを増大させるために、PCIeダウンストリームポート222に対応するPCIeコンフィギュレーション空間を用いることにより、vEP224に接続されている。
加えて、本発明のこの実施形態においては、仮想機能をホストにおいて用いるためにPCIeシステムがWindowsのあらゆるバージョンをサポートするように、仮想機能がホストに対して提示される。
任意的実施形態においては、マッピングモジュール225は、
1個のホスト210に対応するPCIeドメイン内の識別子からM1個のI/Oデバイス230に対応するPCIeドメイン内の識別子へのマッピング関係を格納するために用いられる第1のマッピングテーブルと、
1個のI/Oデバイス230に対応するPCIeドメイン内の識別子からN1個のホスト210に対応するPCIeドメイン内の識別子へのマッピング関係を格納するために用いられる第2のマッピングテーブルと、
を格納している。
任意選択的に、第1のマッピングテーブルは、具体的に、N3個のvEP224の識別子からM3個のmEP226の識別子へのマッピング関係、例えば、少なくとも1つのvEP224のBDF番号から少なくとも1つのmEP226のBDF番号へのマッピング関係、を格納するために用いられてもよい。第2のマッピングテーブルは、具体的に、M3個のmEP226の識別子からN3個のvEP224の識別子へのマッピング関係を格納するために用いられてもよい。しかしながら、これは本発明のこの実施形態に限定されるものではない。
任意選択的に、本発明のこの実施形態においては、マッピングモジュール225は、レジスタとハードウェア処理回路とによって実装されてもよい。この場合、第1のマッピングテーブルおよび第2のマッピングテーブルは、レジスタによって別個に格納されてもよい。加えて、任意選択的に、第1のマッピングテーブルおよび第2のマッピングテーブル内の識別子は、BDFによって表されてもよい。代替的には、各機能のインデックスを取得するために、I/Oデバイス230の機能またはvEP224の機能は、番号を再度与えられてもよく、例えば、1から開始する連番で番号を付与されてもよく、インデックスは、ストレージスペースを節約するために、ファンクションインデックス形式にてマッピングテーブルに格納される。
表1および表2は、それぞれ、第1のマッピングテーブルおよび第2のマッピングテーブルの可能な実装形態を示す。表1に示すように、第1のマッピングテーブルは、4つの列を含んでもよい。「ファンクションインデックス」列内の値は、I/Oデバイス230に対応するPCIeドメイン内の機能のインデックスを示す。インデックスは、全機能のBDFに番号を付することによって取得されてもよく、1ないし数ビットを占めてもよい。「イネーブル表示」列内の値は、ファンクションインデックスに対応する機能が存在するか否かを示す。「mEPバス番号」および「mEPファンクション番号」は、それぞれ、「ファンクションインデックス」に対応するmEP226のバス番号およびデバイスファンクション番号を示してもよい。mEPバス番号およびmEPファンクション番号は、組み合わせられてmEP226のBDFとなる。mEP226のBDF番号は、mEP226に対応するI/Oデバイス230のBDF番号と関連付けられてもよい。第1のマッピングテーブルに含まれる行の数は本発明のこの実施形態においては限定されない。例えば、第1のマッピングテーブルは、1024個のエントリを含んでもよい。しかしながら、これは本発明のこの実施形態に限定されるものではない。
Figure 0006665207
表2に示すように、第2のマッピングテーブルは、5つの列を含んでもよい。「ファンクションインデックス」列内の値は、ホスト210に対応するPCIeドメイン内の機能(ホスト210によって列挙により発見される仮想機能モジュールおよび/または物理デバイスであってもよい)のインデックス(例えば、vEP224のファンクションインデックス)を示す。インデックスは、全機能のBDFに番号を付することによって取得されてもよく、1ないし数ビットを占めてもよい。「利用可否表示」列内の値は、ファンクションインデックスに対応する機能が存在するか否かを示す。eVFバス番号およびeVFデバイスファンクション番号は、それぞれ、ファンクションインデックスに対応するeVF224のバス番号およびデバイスファンクション番号を示す。eVFバス番号およびeVFデバイスファンクション番号は、組み合わせられてeVF224のBDFとなる。「PF表示」列内の値は、ファンクションインデックスに対応する機能がvFおよびPFのいずれであるかを示すために用いられる。第2のマッピングテーブルに含まれる行の数は本発明のこの実施形態においては限定されない。例えば、第2のマッピングテーブルは、1024個のエントリを含んでもよい。しかしながら、これは本発明のこの実施形態に限定されるものではない。
Figure 0006665207
このように、ホスト210に対応するPCIeドメイン内の識別子とI/Oデバイス230に対応するPCIeドメイン内の識別子との間のマッピング関係は、マッピングテーブル状に格納される。従来技術と比較すると、この解決策は、マッピングモジュール225によって占有されるストレージスペースおよび複雑さを低減させることができ、システムのストレージリソースを節約することができる。加えて、全機能のBDFに番号が与えられ、これらの番号がマッピングテーブルに格納される。16ビットのBDFを格納するのと比較すると、マッピングモジュール225によって占有されるストレージスペースはさらに低減されることができる。
任意選択的に、本発明のこの実施形態においては、mEP226に格納された、エンドポイントデバイス230のPCIeコンフィギュレーションの内容は、特に、エンドポイントデバイス230のPCIeコンフィギュレーション空間であってもよく、または、エンドポイントデバイス230のPCIeコンフィギュレーション空間における部分コンフィギュレーションの内容であってもよい。例えば、M3個のmEP226のすべてが特にマッピングテーブルであってもよい。代替的には、M3個のmEP226の一部が特にマッピングテーブルであってもよい。これは本発明のこの実施形態に限定されるものではない。
任意的実施形態においては、M3個のmEP226のうち第1番目のmEPは、特に第3のマッピングテーブルである。第3のマッピングテーブルは、M1個のI/Oデバイスのうち第1のI/Oデバイスの仮想機能のベースアドレスレジスタ(Base Address Register,BAR)アドレスとBARサイズとを格納するために用いられる。第1のmEPは、第1のI/Oデバイスのコンフィギュレーションの内容を格納するように構成されている。
表3は、第3のマッピングテーブルの実装例を示す。第3のマッピングテーブルは、mEPインデックスと、mEPインデックスに対応するBARアドレスおよびBARサイズとを含む。任意選択的に、各mEPは、6つのBARアドレスを含んでもよい。しかしながら、これは本発明のこの実施形態に限定されるものではない。
Figure 0006665207
この場合、マッピングモジュール225は、第3のマッピングテーブルおよび第1のマッピングテーブルを参照して、ホスト210のPCIeドメイン内のアドレスからI/Oデバイス230のPCIeドメイン内のアドレスへのマッピングを実装してもよい。しかしながら、これは本発明のこの実施形態に限定されるものではない。
このように、I/Oデバイスの仮想機能のアドレス情報は、マッピングテーブル状に格納される。従来技術と比較すると、この解決策は、mEPによって占有されるストレージスペースを低減させることができ、システムのストレージリソースを節約することができる。
表1ないし表3の例は当業者が本発明のこの実施形態をより一層理解が容易となることを意図したものであって本発明のこの実施形態の範囲を限定する趣旨ではないことが理解されるべきである。明らかなように、当業者は、提供された表1ないし表3の例に従って様々な等価的な修正または変更を行ってもよい。修正または変更されたものもまた、本発明のこの実施形態の範囲に属する。
任意選択的に、本発明のこの実施形態においては、第1のマッピングテーブル、第2のマッピングテーブルまたは第3のマッピングテーブルは、スイッチングデバイス220内の内部処理装置223とホスト210とによって共同的に構成されていてもよい。例えば、内部処理装置223は、デバイス列挙または別の仕方により、スイッチングデバイス220に接続された物理デバイスに関する情報を、M1個のPCIeダウンストリームポート222を使用して取得し、かつ取得された情報に従って、マッピングテーブルを構成してもよく、例えば、物理デバイスに関する情報をマッピングテーブルに格納してもよい。ホスト210は、デバイス列挙(すなわち、ホスト210配下の物理デバイスおよび/または機能モジュールを発見する)プロセスにおいてまたは別の仕方により取得された、ホスト210に対応するPCIeドメインに関する構成情報を、マッピングテーブル内に格納してもよい。しかしながら、これは本発明のこの実施形態に限定されるものではない。
加えて、N3個のvEP224、マッピングモジュール225およびM3個のmEP226は、レジスタにより、またはレジスタとハードウェア回路とにより実装されてもよく、ソフトウェアコードを用いることによりPCIe構造ツリーを実装することがなく、利用が簡単である。加えて、ソフトウェア実装プロセスにおける格納および転送プロセスは、仮想デバイスおよび実デバイスのコンフィギュレーションライトのデュアルオペレーションを用いることにより回避される。
本発明のこの実施形態においては、PCIeシステム200は、複数の動作モードをサポートしていてもよい。複数の動作モードは、以下のモード、すなわち、VFダイレクトモード、VFシェアドモード、PFシェアドモードおよびEP透過的送信モードのうち少なくとも1つのモードを含んでもよい。VFダイレクトモードおよびVFシェアドモードは、SRIOVをサポートするI/Oデバイスに適用されてもよい。PFシェアドモードは、複数の機能をサポートするI/Oデバイスに適用されてもよい。EP透過的送信モードは、単機能I/Oデバイスに適用されてもよい。
具体的には、VFダイレクトモードでは、N3個のvEP224は、M1個のI/Oデバイス230の仮想機能を仮想化するように構成されている。例えば、図4に示すように、PCIeシステムは、2つのホストすなわちホスト0およびホスト1と、PCIeスイッチと、2つのエンドポイントデバイスすなわちEP0およびEP1と、スイッチングデバイスとを含んでもよい。スイッチングデバイスは、ホスト0およびホスト1にそれぞれ接続された2つのPCIeアップストリームポートと、PCIeスイッチを用いることによりEP0およびEP1にそれぞれ接続された2つのPCIeダウンストリームポートと、2つのPCIeダウンストリームポートにそれぞれ対応するPCIeコンフィギュレーション空間DP_CFG0およびDP_CFG1と、内部処理装置と、マッピングモジュールと、vEP0と、vEP1とを含んでいる。vEP0は、DP_CFG0を用いて一方のPCIeアップストリームポートに接続され、かつ、vEP1はDP_CFG1を用いて他方のPCIeアップストリームポートに接続されている。EP0およびEP1の各々は、PFとしてPF0を、および、VFとしてPF0に対応するVF0を有する。この場合、vEP0は、EP0のVF0がホスト0によって用いられるように、VF0を仮想化するように構成されていてもよい。具体的には、vEP0は、EP0のPF0およびVF0のPCIeとのコンフィギュレーション空間の組み合わせであってもよい。vEP1は、EP0のVF0がホスト1によって用いられるように、VF0を仮想化するように構成されていてもよい。具体的には、vEP1は、EP1のPF0およびVF0のPCIeコンフィギュレーション空間の組み合わせであってもよい。しかしながら、これは本発明のこの実施形態に限定されるものではない。
任意選択的に、VFダイレクトモードでは、M1個のI/Oデバイス230のPFドライブは、管理BMCによってロードされてもよく、M1個のI/Oデバイス230のVFドライブは、N1個のホスト210のプロセッサによってロードされてもよい。具体的には、各ホストは、ホストによって列挙されたvEPによって仮想化された、I/OデバイスのVFドライブをロードしてもよい。しかしながら、これは本発明のこの実施形態に限定されるものではない。
VFシェアドモードでは、N3個のvEP224は、M1個のI/Oデバイス230の物理機能および仮想機能を仮想化するように構成されている。この場合、vEP224によって仮想化された機能のうち、VFのみがホスト210によって使用されるサービスポートとして用いられてもよく、PFは、ホスト210によって使用されるサービスポートとして使用されることができない。任意選択的に、vEP224は、特に、仮想化されたPFのPCIeコンフィギュレーション空間であってもよい。PCIeコンフィギュレーション空間は、SRIOVケイパビリティスペースを含んでもよい。しかしながら、これは本発明のこの実施形態に限定されるものではない。例えば、図5に示すように、PCIeシステムは、2つのホストすなわちホスト0およびホスト1と、PCIeスイッチと、エンドポイントデバイスとしてEP0と、スイッチングデバイスとを含んでもよい。スイッチングデバイスは、ホスト0およびホスト1にそれぞれ接続された2つのPCIeアップストリームポートと、PCIeスイッチを用いることによりEP0に接続されたPCIeダウンストリームポートと、PCIeダウンストリームポートに対応する2つのPCIeコンフィギュレーション空間DP_CFG0およびDP_CFG1と、内部処理装置と、マッピングモジュールと、vEP0と、vEP1とを含んでいる。EP0は、物理機能(Physical Function,PF)としてPF0を有し、PF0に対応する2つの仮想機能(Virtual Function,VF)としてVF0およびVF1をもつ。この場合、vEP0およびvEP1は、具体的に、それぞれVF0およびVF1を仮想化するために、SRIOVケイパビリティスペースを保持する、PF0のPCIeコンフィギュレーション空間であってもよい。任意選択的に、VFシェアドモードでは、M1個のI/Oデバイス230のPFドライブは、管理BMCによってロードされてもよい。VFダイレクトモードとは異なり、N1個のホスト210のプロセッサは、さらに、N3個のvEP224によって仮想化されたVFを有効にするために、N3個のvEP224に対応するPFドライブをロードする必要があるため、N1個のホスト210はVFを正常に利用することができる。
PFシェアドモードでは、N3個のvEP224は、M1個のI/Oデバイス230の物理機能を仮想化するように構成されていてもよい。この場合、任意選択的に、M1個のI/Oデバイス230は、PFのみを有しVFを有しなくてもよい、すなわち、M1個のI/Oデバイス内のPFは、PFに対応するVFを有しない。任意選択的に、vEP224は、特に、vEP224によって仮想化されたPFのPCIeコンフィギュレーション空間であってもよく、PCIeコンフィギュレーション空間は、SRIOVケイパビリティスペースを含まなくてもよい。例えば、図6に示すように、PCIeシステムは、2つのホストすなわちホスト0およびホスト1と、PCIeスイッチと、エンドポイントデバイスとしてEP0と、スイッチングデバイスとを含んでもよい。スイッチングデバイスは、ホスト0およびホスト1にそれぞれ接続された2つのPCIeアップストリームポートと、PCIeスイッチを用いることによりEP0に接続されたPCIeダウンストリームポートと、PCIeダウンストリームポートに対応する2つのPCIeコンフィギュレーション空間DP_CFG0およびDP_CFG1と、マッピングモジュールと、vEP0と、vEP1とを含んでいる。EP0は2つのPFsすなわちPF0およびPF1を有し、VFを有しない。この場合、vEP0は、PF0がホスト1によって用いられるようにPF0を仮想化するように構成されていてもよい。vEP1は、PF1がホスト2によって用いられるように、PF1を仮想化するように構成されていてもよい。しかしながら、これは本発明のこの実施形態に限定されるものではない。任意選択的に、PFシェアドモードでは、M1個のI/Oデバイス230のPFドライブは、N1個のホスト210のプロセッサによってロードされてもよい。具体的には、各ホスト210のプロセッサは、プロセッサによって列挙されたvEPによって仮想化されたPFのドライブをロードしてもよい。
EP透過的送信モードでは、スイッチングデバイス220は、スイッチングデバイス220に接続されたM1個のI/Oデバイス230とN1個のホスト210との間で送信された情報を透過的に送信してもよい。この場合、M1個のI/Oデバイス230は、単機能デバイスであってもよい、すなわち、PFのみを有し、VFを有しなくてもよい。例えば、図7に示すように、PCIeシステムは、2つのホストすなわちホスト0およびホスト1と、PCIeスイッチと、3つのエンドポイントデバイスすなわちEP0、EP1およびEP2と、スイッチングデバイスとを含んでもよい。スイッチングデバイスは、ホスト0およびホスト1にそれぞれ接続された2つのPCIeアップストリームポートと、EP0およびEP1にPCIeスイッチを用いることにより接続されたPCIeダウンストリームポートと、EP2に直接的に接続されたPCIeダウンストリームポートと、を含んでいる。EP0、EP1およびEP2の各々は、1つのPFすなわちPF0のみを有する。スイッチングデバイスは、いずれのPCIeダウンストリームポートのPCIeコンフィギュレーション空間も格納しなくてもよい。この場合、ホスト0は、EP0およびEP1のPFを用いてもよい。ホスト1は、EP2のPFを用いてもよい。スイッチングデバイス内のすべてのモジュールは、透過的な送信を行い、複数のホストによって同一のEPを共用する機能を実装することができない。任意選択的に、EP透過的送信モードでは、VFドライブおよびPFドライブはロードされる必要はない。
任意選択的に、PCIeシステム200は、前述した複数の動作モードの特定のモードで常時動作してもよく、または、前述した複数の動作モード間で切り替えられてもよい。任意選択的に、PCIeシステム200は、さらに、別の動作モードをサポートしてもよい。これは本発明のこの実施形態に限定されるものではない。
図4ないし図7の例は当業者が本発明のこの実施形態をより一層理解が容易となることを意図したものであって本発明のこの実施形態の範囲を限定する趣旨ではないことがさらに理解されるべきである。明らかなように、当業者は、提供された図4ないし図7の例に従って様々な等価的な修正または変更を行ってもよい。修正または変更されたものもまた、本発明のこの実施形態の範囲に属する。
前述した例はすべて、PCIeシステムが1つのスイッチングデバイスを含んでいる例を用いることにより説明されていることがさらに理解されるべきである。任意選択的に、PCIeシステムは、複数のスイッチングデバイスを含んでもよい。図8に示すように、PCIeシステム200は、2つのスイッチングデバイスとしてスイッチングデバイス1およびスイッチングデバイス2を含んでいる。各スイッチングデバイスは、2つのホストと2つのI/Oデバイスに接続されていてもよい。具体的には、スイッチングデバイス1は、ホスト0、ホスト1、IO0およびIO1に別個に接続されていてもよい。スイッチングデバイス2は、ホスト2、ホスト3、IO2およびIO3に別個に接続されている。このように、スイッチングデバイスが異常を有する場合、例えば、IO0およびIO1に接続されたスイッチングデバイス1が異常を有する場合、異常対応処理、例えば、リセット動作または関連するサービスの中断、が実際の状況に応じて行われてもよい。IO2およびIO3に接続されたスイッチングデバイス2が正常に動作している場合、ホスト2およびホスト3は、依然として正常に動作することができ、これによりシステムの信頼性および安定性を高めることができる。
前述した実施形態はすべて、スイッチングデバイス220が具体的に1つの物理デバイスである例を用いることにより説明されていることがさらに理解されるべきである。任意選択的に、スイッチングデバイス220は、具体的に複数の物理デバイスであってもよい。例えば、図8および図9に示すように、スイッチングデバイス220はABチップ形式であってもよい、すなわち、スイッチングデバイス220は、特にホストスイッチングデバイス220aおよびI/Oスイッチングデバイス220bであってもよい。ホストスイッチングデバイス220aおよびI/Oスイッチングデバイス220bは、イーサネットインタフェースまたは別のタイプのスイッチドインタフェースを用いることにより接続されていてもよい。任意的実施形態においては、ホストスイッチングデバイス220aは、N2個のPCIeアップストリームポート221と、I/Oスイッチングデバイス220bに接続するように構成された少なくとも1つの第1のスイッチドインタフェースとを含んでもよい。I/Oスイッチングデバイス220bは、ホストスイッチングデバイス220aに接続するように構成された少なくとも1つの第2のスイッチドインタフェースと、内部処理装置223と、M2個のPCIeダウンストリームポート222とを含んでもよい。任意選択的に、図8に示すように、少なくとも1つの第1のスイッチドインタフェースおよび少なくとも1つの第2のスイッチドインタフェースは、直接的に接続されていてもよい。代替的には、図9に示すように、少なくとも1つの第1のスイッチドインタフェースおよび少なくとも1つの第2のスイッチドインタフェースは、イーサネットスイッチまたは別のタイプの内部スイッチングデバイスを用いることにより接続されていてもよい。内部スイッチングデバイスは、ホストスイッチングデバイスとI/Oスイッチングデバイスとに接続されるように構成された複数のスイッチドインタフェースを提供してもよい。この場合、少なくとも1つの第1のスイッチドインタフェースは、内部スイッチングデバイスに接続するように構成されていてもよく、少なくとも1つの第2のスイッチドインタフェースは、内部スイッチングデバイスに接続するように構成されていてもよい。これは本発明のこの実施形態に限定されるものではない。
別の任意的実施形態においては、内部処理装置223は、ホストスイッチングデバイス220a内に配置された処理装置(すなわち、第1の処理装置)と、I/Oスイッチングデバイス220b内に配置された処理装置(すなわち、第2の処理装置)を含んでもよい。この場合、第1の内部処理装置は、複数のPCIeアップストリームポートと少なくとも1つの第1のスイッチドインタフェースとに、ホストスイッチングデバイスの内部接続ラインを用いることにより、別個に接続されていてもよい。第2の内部処理装置は、I/Oスイッチングデバイスの内部接続ラインを用いることにより、少なくとも1つのPCIeダウンストリームポートと少なくとも1つの第2のスイッチドインタフェースとに別個に接続されていてもよい。しかしながら、これは本発明のこの実施形態に限定されるものではない。
この場合、任意選択的に、第1の内部処理装置は、複数のPCIeアップストリームポートを使用して、第1のデータパケットを、少なくとも1つのホストから受信し、第1のデータパケットを処理して第1の処理を行う対象である第1のデータパケットを取得し、かつ内部スイッチングデバイスに対して、少なくとも1つの第1のスイッチドインタフェースを用いることにより、第1の処理を行う対象である第1のデータパケットを送信するように構成されていてもよい。
第2の内部処理装置は、内部スイッチングデバイスによって送信される、第1の処理を行う対象である第1のデータパケットを、少なくとも1つの第2のスイッチドインタフェースを用いることにより受信し、第1の処理を行う対象である第1のデータパケットを処理して第2の処理を行う対象である第1のデータパケットを取得し、かつ少なくとも1つのI/Oデバイスに対して、少なくとも1つのPCIeダウンストリームポートを使用して、第2の処理を行う対象である第1のデータパケットを送信するように構成されている。
任意選択的に、第2の内部処理装置は、さらに、少なくとも1つのPCIeダウンストリームポートを使用して、第2のデータパケットを少なくとも1つのI/Oデバイスから受信し、第2のデータパケットを処理して第1の処理を行う対象である第2のデータパケットを取得し、かつ内部スイッチングデバイスに対して、少なくとも1つの第2のスイッチドインタフェースを用いることにより、第1の処理を行う対象である第2のデータパケットを送信するように構成されている。
第1の内部処理装置は、さらに、内部スイッチングデバイスによって送信される、第1の処理を行う対象である第2のデータパケットを、少なくとも1つの第1のスイッチドインタフェースを用いることにより受信し、第1の処理を行う対象である第2のデータパケットを処理して第2の処理を行う対象である第2のデータパケットを取得し、かつ少なくとも1つのホストに対して、複数のPCIeアップストリームポートを用いることにより、第2の処理を行う対象である第2のデータパケットを送信するように構成されている。
任意選択的に、I/Oスイッチングデバイス220bは、N3個のvEP224と、マッピングモジュール225と、M3個のmEP226とをさらに含んでもよい。ホストスイッチングデバイス220aは、N4個のDP_CFG227およびN3個のvEP224をさらに含んでもよい。
図8に示すように、スイッチングデバイス1は、ホストスイッチングデバイス1とI/Oスイッチングデバイス1とを含んでもよく、かつ、スイッチングデバイス2は、ホストスイッチングデバイス2とI/Oスイッチングデバイス2とを含んでもよい。ホストスイッチングデバイスとI/Oスイッチングデバイスとは、イーサネットインタフェース(例えば、メディアアクセス制御(Media Access Control,MAC)インタフェース)を用いることにより接続されている。この場合、ホストスイッチングデバイス1がホスト0に接続されていてホスト1が異常を有する場合、ホストスイッチングデバイス1は、実際の状況に応じて代替されてもよいが、ホスト2およびホスト3は、依然として、I/Oデバイスへのアクセスを継続することができ、サービスは運用され続けることができる。I/Oスイッチングデバイス1がIO0に接続されていてIO1が異常を有する場合、I/Oスイッチングデバイス2がIO2に接続されており、かつ、IO3が正常なのであるから、ホスト2およびホスト3が、ホストスイッチングデバイス2と、イーサネットスイッチと、I/Oスイッチングデバイス2とを用いて、IO2およびIO3を使用することができるだけでなく、ホスト0およびホスト1がホストスイッチングデバイス1と、イーサネットスイッチと、I/Oスイッチングデバイス2とを用いてIO2およびIO3を使用することができるので、4つのホストがすべてサービスを運用し続けることができ、これにより、システムの信頼性と安定性とをより一層高めることができる。
具体的には、本発明のこの実施形態においては、ホストスイッチングデバイスは、少なくとも1つのホストに接続するように構成された複数のPCIeアップストリームポートを含んでもよい。I/Oスイッチングデバイスは、内部処理装置と、少なくとも1つのI/Oデバイスに接続するように構成された少なくとも1つのPCIeダウンストリームポートとを含んでもよい。
別の任意的実施形態においては、スイッチングデバイスが、少なくとも1つのmEPと、マッピングモジュールと、少なくとも1つのvEPとを含んでいる場合、少なくとも1つのmEPと、マッピングモジュールと、少なくとも1つのvEPとは、専らI/Oスイッチングデバイス内に配置されてもよい。代替的には、図9に示すように、ホストスイッチングデバイスは、少なくとも1つのvEPを含んでもよく、ホストスイッチングデバイス内の少なくとも1つのvEPは、I/Oスイッチングデバイス内の少なくとも1つのvEPと、一対一の対応関係で同一である。しかしながら、これは本発明のこの実施形態に限定されるものではない。
「ホストスイッチングデバイス」および「I/Oスイッチングデバイス」は異なるスイッチングデバイスを区別するための単なる呼称にすぎないことが理解されるべきである。代替的には、「ホストスイッチングデバイス」は、第1のスイッチングデバイスと呼ばれることもあり、「I/Oスイッチングデバイス」は第2のスイッチングデバイスと呼ばれることもある。呼称は本発明の実施形態の保護範囲に対するいかなる限定にもなるべきではない。
したがって、本発明のこの実施形態において提供されるPCIeシステムは、少なくとも1つのホストと、スイッチングデバイスと、少なくとも1つのI/Oデバイスとを含んでいる。スイッチングデバイスは、少なくとも1つのホストに接続するように構成された複数のPCIeアップストリームポートと、少なくとも1つのI/Oデバイスに接続するように構成された少なくとも1つのPCIeダウンストリームポートと、内部処理装置とを含んでいる。処理装置は、内部接続ラインを用いることにより少なくとも1つのPCIeダウンストリームポートに接続されていて、コンフィギュレーションリード/ライトパケットを、少なくとも1つのPCIeダウンストリームポートに、内部接続ラインを用いることにより送信し、少なくとも1つのPCIeダウンストリームポートによって内部接続ラインを用いることにより送信されたコンフィギュレーションリード/ライト応答パケットを受信して、コンフィギュレーションリード/ライト応答パケットにおいて保持されるコンプリータ識別子に従って、スイッチングデバイスがコンプリータ識別子を識別子として有するI/Oデバイスに接続されていると判定するように構成されている。このように、PCIeシステム内のスイッチングデバイスが故障している場合、スイッチングデバイスに接続された少なくとも1つのホストおよび少なくとも1つのI/Oデバイスだけが影響を受け、システム内の別のスイッチングデバイスならびに別のスイッチングデバイスに接続されたホストおよびI/Oデバイスは影響を受けない。したがって、従来技術における外部管理CPUと比較すると、システムの安定性および信頼性が改善されることができる。
加えて、従来技術における従来のPCIe技術は、主として、ボードに適用されるものであり、例えばホストのPCIeポート数に対する制限、限られたスペースおよび拡張性の低さといった比較的多くの制約条件を有するものである。スイッチングデバイスは2つの物理デバイスとして配設され、PCIeドメインは送信用にイーサネット上に設けられている。このようにスペースおよび距離に係る制約条件が打破されることができ、PCIeトポロジが柔軟に設定されることができ、I/Oデバイスが柔軟に配置されることができ、そして、PCIeドメインが遠隔的に配置されることができないという従来技術における課題が解決される。
本発明の実施形態は、さらに、スイッチングデバイスを提供する。スイッチングデバイスは、前述したシステムに係る実施形態におけるとおりのものであってもよい。簡潔さのために、詳細はここでは再度説明しない。
本発明の実施形態において提供されるPCIeシステムおよびスイッチングデバイスについては、図2ないし図9を参照して上述のとおり説明したところである。PCIeシステムの操作手順について以下詳述する。
図10は、本発明の実施形態に係るPCIeシステムを初期化する方法300を示す。初期化方法300は、前述した実施形態におけるPCIeシステムに適用されてもよい。
S310:管理BMCがスイッチングデバイス内の内部処理装置に初期化命令を送信する。
電源投入後、管理BMCは、初期化命令を処理装置に送信してもよい。初期化命令は、処理装置に対して処理を行うために、例えば、デバイス列挙を行い、および/または、システム初期化に関連してスイッチングデバイス内のモジュール(またはコンポーネント)に対して初期化構成を行うように指示するために用いられてもよい。
S320:初期化命令を受信した後、スイッチングデバイスの処理装置は、初期化命令に従って、スイッチングデバイスの少なくとも1つのPCIeダウンストリームポートを使用してスイッチングデバイスに接続された物理デバイスを列挙する。なお、物理デバイスは、少なくとも1つのI/Oデバイスを含む。
本発明のこの実施形態においては、管理BMCは、識別子を割り当ててもよく、例えば、デバイス識別子をスイッチングデバイス内の内部処理装置に割り当ててもよい。デバイス識別子は3つのフィールド、すなわち、バス番号、デバイス番号およびファンクション番号を含んでもよい。バス番号フィールドの欄はデバイスが配置されているバスの数を表し、デバイス番号のフィールドはデバイスの番号を表し、ファンクション番号のフィールドはデバイスによって所有される機能の番号を表す。通常は、デバイス識別子はまた、バス・デバイス・ファンクション(Bus Device Function,BDF)番号と呼ばれることもある。任意選択的に、管理BMCによって処理装置に割り当てられたデバイス識別子はシステム内で一意とされていてもよい。例えば、X86システムでは、管理BMCは、処理装置のデバイス識別子として「0.0.7」を割り当ててもよい。しかしながら、これは本発明のこの実施形態に限定されるものではない。
デバイス列挙を行う際、処理装置は、特に、少なくとも1つのPCIeダウンストリームポートを利用してスイッチングデバイスに接続された実デバイスを検出してもよい。具体的には、内部処理装置は、内部接続バスを用いることにより複数のTLPを少なくとも1つのPCIeダウンストリームポートに送信してもよい。TLPは、特に、コンフィギュレーションリード/ライト要求であってもよく、TLPが有するRIDの値は、処理装置のBDFに設定されてもよく、また、CIDは連番で付番されてもよい。コンフィギュレーションリード/ライトパケットを受信すると、PCIeダウンストリームポートは、受信されたコンフィギュレーションリード/ライト要求を、PCIeダウンストリームポートに接続された物理デバイスに転送してもよい。物理デバイスは、受信されたコンフィギュレーションリード/ライト要求に従って、コンフィギュレーションリード/ライト応答パケット、例えば、CPLパケットまたはCPLDパケットを、物理デバイスに接続されたPCIeダウンストリームポートに送信してもよい。コンフィギュレーションリード/ライト応答パケットは、受信されたコンフィギュレーションリード/ライトパケット内に存在するRIDおよびCIDを保持してもよい。このように、コンフィギュレーションリード/ライト応答パケットをPCIeダウンストリームポートを使用して受信すると、処理装置は、スイッチングデバイスが、コンフィギュレーションリード/ライト応答パケット内のCIDをBDF番号として有する物理デバイスに接続されていると判定してもよく、また、さらに、物理デバイスに関する情報であってコンフィギュレーションリード/ライト応答パケットにより保持される情報を取得してもよい。しかしながら、これは本発明のこの実施形態に限定されるものではない。
S330:スイッチングデバイスが内部処理装置のデバイス列挙結果を管理BMCに送信する。
具体的には、内部処理装置は、デバイス列挙結果を複数のPCIeアップストリームポートを使用して管理BMCに対して報告してもよい。列挙結果は、少なくとも1つのPCIeダウンストリームポートを使用してスイッチングデバイスに接続された物理デバイスと、物理デバイスのトポロジ構造とを含んでもよく、または、PCIe構造ツリーを含んでもよい。これは本発明のこの実施形態に限定されるものではない。
S340:少なくとも1つのホストの各々が、各ホストに接続されたデバイスを列挙する。
少なくとも1つのホストの各々のプロセッサは、プロセッサに接続されたデバイスを列挙してもよい。デバイスは、仮想デバイス(すなわち、機能モジュール)および/または物理デバイス、例えば、スイッチングデバイスのPCIeアップストリームポートであってホストに接続されたスイッチングデバイス、および、少なくとも1つのvEPを含んでもよい。列挙はvEPをもって終了してもよい。しかしながら、これは本発明のこの実施形態に限定されるものではない。
具体的には、ホストのプロセッサは、コンフィギュレーションリードパケットを送信してもよく、その場合、コンフィギュレーションリードパケットはスイッチングデバイスのvEPをもって終了する。コンフィギュレーションリードパケットを受信した後、スイッチングデバイスは、PCIeアップストリームポートを使用してコンフィギュレーションリード応答パケットをホストに返してもよい。コンフィギュレーションリード応答パケットを受信した後、ホストのプロセッサはコンフィギュレーションライトパケットをvEPに送信してもよい。具体的には、コンフィギュレーションライトパケットは、vEPのレジスタにアクセスするために用いられてもよい。任意選択的に、各コンフィギュレーションライトパケットは、各回ごとにレジスタの4KB空間にアクセスしてもよい。なお、コンフィギュレーションライトパケットは依然としてスイッチングデバイスのvEPにて終了する。コンフィギュレーションライトパケットを受信した後、スイッチングデバイスのvEPは、PCIeダウンストリームポートを使用して、コンフィギュレーションライトパケットをvEPに接続されたI/Oデバイスに転送してもよい(すなわち、vEPは、I/Oデバイスの機能を仮想化するように構成されている)。コンフィギュレーションライトパケットを受信後、vEPに対応するI/Oデバイスは、PCIeダウンストリームポートを使用して、コンフィギュレーションライト応答パケットをスイッチングデバイスに返してもよく、その場合、コンフィギュレーションライト応答パケットはI/OデバイスのBDF番号を保持してもよい。任意選択的に、コンフィギュレーションライト応答パケットを受信した後、スイッチングデバイスのマッピングモジュールは、コンフィギュレーションライト応答パケットが保持するCIDに従って、第2のマッピングテーブルに対して検索を行い、コンフィギュレーションライト応答パケットに対応するvEPのBDF番号を取得してもよく、また、コンフィギュレーションライト応答パケット内のCIDを、CIDに対応するvEPのBDF番号で置き換えてもよい。そして、スイッチングデバイスのマッピングモジュールは、コンフィギュレーションライト応答パケットが有するRIDに従って、コンフィギュレーションライト応答パケットをスイッチングデバイスのPCIeアップストリームポートに送信し、PCIeアップストリームポートを使用してコンフィギュレーションライト応答パケットをホストに返すことを決定してもよい。
任意選択的に、少なくとも1つのホストおよび/またはスイッチングデバイスは、自動学習を利用して、前述した列挙を行うプロセスにおいて取得された情報(例えば、BDF番号)をvEPおよび/またはmEPに書き込んでもよい。これは本発明のこの実施形態に限定されるものではない。
S350:少なくとも1つのホストが、少なくとも1つのI/OデバイスのVFドライブおよびPFドライブをロードする。
具体的には、VFドライブは、ホストのプロセッサによってロードされてもよく、また、PFドライブは、異なる動作モードに応じてホストのプロセッサまたは管理BMCによってロードされてもよい。
具体的には、VFダイレクトモードおよびVFシェアドモードでは、I/OデバイスのPFドライブは管理BMCによってロードされてもよい。加えて、VFシェアドモードでは、ホストのプロセッサはさらに、vEPのPFドライブをロードしてもよい、すなわち、各ホストのプロセッサは、ホストのプロセッサによって列挙されたvEPのPFドライブをロードしてもよい。PFシェアドモードでは、I/OデバイスのPFドライブは、ホストのプロセッサによってロードされてもよい、すなわち、各ホストのプロセッサは、ホストのプロセッサによって列挙されたvEPに対応するI/OデバイスのPFドライブ(vEPによって仮想化されたPFのPFドライブ)をロードしてもよい。しかしながら、これは本発明のこの実施形態に限定されるものではない。
別の任意的実施形態においては、S330の後、方法300はさらに以下のステップを含む。
スイッチングデバイス内の内部処理装置は、スイッチングデバイス内で機能モジュールを構成する。具体的には、機能モジュールは、少なくとも1つのvEPと、マッピングモジュールと、少なくとも1つのmEPとを含んでいる。この場合、処理装置は、少なくとも1つのmEPと少なくとも1つのvEPとの間のマッピング関係を確立してもよい、すなわち、少なくとも1つのI/Oデバイスの機能と、vEPによって仮想化された機能であって少なくとも1つのホストによって用いられることができる機能との間のマッピング関係を確立してもよい。処理装置は、特に、スイッチングデバイス配下の物理デバイスに関する情報をスイッチングデバイスの機能モジュールに格納してもよい。例えば、処理装置は、前述した実施形態における第1のマッピングテーブルと、第2のマッピングテーブルと、第3のマッピングテーブルとを、取得されたデバイス情報に従って構成してもよい。物理デバイスに関する情報は、処理装置によるデバイス列挙のプロセスにおいて取得されてもよい。例えば、各デバイスに関する情報、例えば、BDF番号は、コンフィギュレーションリード/ライト応答パケットから取得される。代替的には、物理デバイスに関する情報は、管理BMCによって配信されてもよい。これに対応して、任意選択的に、方法300は、さらに、処理装置がスイッチングデバイス内に機能モジュールを構成するのに先立って、管理BMCがコンフィギュレーション管理情報を処理装置に送信することを含んでもよい。コンフィギュレーション管理情報は、スイッチングデバイスの機能モジュールを構成するのに必要な、PCIeダウンストリームポートおよびPCIeアップストリームポートの情報、例えば、現在使用中の動作モード(例えば、前述した動作モードのいずれか)、コンフィギュレーション情報(例えば、PCIeダウンストリームポートに対応するPCIeコンフィギュレーション空間の数、各PCIeコンフィギュレーション空間配下のvEPの数、PCIeダウンストリームポートとI/Oデバイスとの間の接続関係、または各PCIeポートのMACアドレス)、または、I/OデバイスのPCIeコンフィギュレーション空間に関する情報、を含んでもよい。しかしながら、これは本発明のこの実施形態に限定されるものではない。
初期化手順を行った後、システムはサービスを運用してもよい。この場合、ホストによって送信されたコンフィギュレーションパケット内のコンフィギュレーションライトパケットについては、スイッチングデバイス(例えば、スイッチングデバイスのマッピングモジュール)は、コンフィギュレーションライトパケット内のCIDを変更する必要がある。ホストによって配信されるMemリード/ライトパケットについては、Memリード/ライトパケットのアドレスは変更される必要がある(例えば、異なるドメインに対応するアドレスに対してベースアドレスの置換が行われ、オフセットは変化しない)。ホストによって送信されるコンプリーションパケットCPLD/CPLについては、CIDのみが変更される必要がある。I/Oデバイスによって送信されるMemリード/ライトパケットについては、Memリード/ライトパケットのRIDが変更されてもよいが、アドレスは変更される必要はない。I/Oデバイスによって送信されるコンプリーションパケットCPLD/CPLについては、コンプリーションパケットCPLD/CPLのCIDのみが変更される必要がある。しかしながら、これは本発明のこの実施形態に限定されるものではない。
初期化方法については、前述したシステムの実施形態の具体的記載が参照されてもよいことが理解されるべきである。簡潔さのために、詳細はここでは再度説明しない。加えて、本出願の各実施形態の記載は、一実施形態と別の実施形態との間の相違点を強調しており、一実施形態と別の実施形態との間の類似点は相互参照のために利用されてもよい。
前述した各プロセスのシーケンス番号は行う順序を意味するものではないことが理解されるべきである。行う順序は各プロセスの機能および内部ロジックに従って決定されるべきであり、本発明のこの実施形態の実装プロセスに対するいかなる限定も構成すべきではない。
加えて、本発明の実施形態は、さらに、スイッチングシステムを提供する。このスイッチングシステムは、第1のスイッチングデバイスと第2のスイッチングデバイスとを含んでいる。第1のスイッチングデバイスおよび第2のスイッチングデバイスは、ネットワークを用いることにより接続されている。
第1のスイッチングデバイスは、少なくとも1つのホストに接続するように構成された複数のPCIeアップストリームポートを含んでもよい。
第2のスイッチングデバイスは、少なくとも1つのデバイスに接続するように構成された少なくとも1つのPCIeダウンストリームポートを含んでもよい。
任意選択的に、スイッチングシステムは、さらに、ネットワーク内に配置されたネットワークスイッチングデバイスを含んでもよい。ネットワークスイッチングデバイスは、第1のスイッチングデバイスおよび第2のスイッチングデバイスに接続するように構成された複数のスイッチドインタフェースを有していてもよい。
この場合、任意選択的に、第1のスイッチングデバイスは、さらに、ネットワークスイッチングデバイスに接続するように構成された少なくとも1つの第1のスイッチドインタフェースを含んでいる。第2のスイッチングデバイスは、さらに、ネットワークスイッチングデバイスに接続するように構成された少なくとも1つの第2のスイッチドインタフェースを含んでいる。
任意選択的に、ネットワークスイッチングデバイスは、特に図8に示すイーサネットスイッチであってもよい。しかしながら、これは本発明のこの実施形態に限定されるものではない。
任意選択的に、第1のスイッチングデバイスは、特にホストスイッチングデバイスであってもよく、かつ、第2のスイッチングデバイスは特にI/Oスイッチングデバイスであってもよい。図8および図9に示すように、ホストスイッチングデバイス220aおよびI/Oスイッチングデバイス220bは、イーサネットインタフェースまたは別のタイプのスイッチドインタフェースを用いることにより接続されていてもよい。任意的実施形態においては、ホストスイッチングデバイス220aは、N2個のPCIeアップストリームポート221と、I/Oスイッチングデバイス220bに接続するように構成された少なくとも1つの第1のスイッチドインタフェースとを含んで含んでもよい。I/Oスイッチングデバイス220bは、ホストスイッチングデバイス220aに接続するように構成された少なくとも1つの第2のスイッチドインタフェースと、内部処理装置223と、M2個のPCIeダウンストリームポート222とを含んでもよい。
任意選択的に、図9に示すように、少なくとも1つの第1のスイッチドインタフェースと少なくとも1つの第2のスイッチドインタフェースとは、直接的に接続されている。代替的には、図8に示すように、少なくとも1つの第1のスイッチドインタフェースおよび少なくとも1つの第2のスイッチドインタフェースは、任意のタイプのイーサネットスイッチまたはネットワークスイッチングデバイスを用いることにより接続されていてもよい。ネットワークスイッチングデバイスは、ホストスイッチングデバイスおよびI/Oスイッチングデバイスに接続するように構成された複数のスイッチドインタフェースを提供してもよい。この場合、少なくとも1つの第1のスイッチドインタフェースは、ネットワークスイッチングデバイスに接続するように構成されていてもよく、少なくとも1つの第2のスイッチドインタフェースは、ネットワークスイッチングデバイスに接続するように構成されていてもよい。これは本発明のこの実施形態に限定されるものではない。
任意的実施形態においては、第2のスイッチングデバイスは、第1のスイッチングデバイスによってネットワークを用いることにより送信された第1のデータパケットを受信し、第1のデータパケットを処理してPCIeプロトコルに準拠した第2のデータパケットを取得し、かつ第2のデータパケットを第2のデータパケット対象I/Oデバイスに送信するように構成されていてもよい。
任意選択的に、第2のスイッチングデバイスは、第1のデータパケットをPCIeプロトコルに準拠した第2のデータパケットに変換するように構成されていてもよい。任意選択的に、この変換は、解析処理、パケットフォーマット変換処理、タイムシーケンス変換処理等を含んでもよい。しかしながら、これは本発明のこの実施形態に限定されるものではない。
任意選択的に、第1のデータは、特に、ネットワークのネットワークプロトコルに準拠したデータパケットであってもよい。任意的実施形態においては、図8に示すように、ネットワークはイーサネットであってもよい。この場合、第2のスイッチングデバイスは、特に、イーサネットプロトコルに準拠した第1のデータパケットを、PCIeプロトコルに準拠した第2のデータパケットに変換するように構成されていてもよい。しかしながら、これは本発明のこの実施形態に限定されるものではない。
任意選択的に、第2のスイッチングデバイスは、さらに、受信されたデータパケットにおいて保持された情報にしたがって、または、データパケットを受信するように構成されたポートに従って、データパケットの対象デバイスを判定して、データパケットの対象デバイスに応じてデータパケットを送信するように構成されていてもよい。例えば、第2のスイッチングデバイスは、さらに、第1のデータパケットにおいて保持された情報に従って、第1のデータパケットの対象I/Oデバイスを判定して、第1のデータパケットの対象I/Oデバイスに、第1のデータパケットを処理することにより取得された第2のデータパケットを送信してもよい。しかしながら、これは本発明のこの実施形態に限定されるものではない。
任意選択的に、第1のスイッチングデバイスは、少なくとも1つの第1のスイッチドインタフェースを用いることにより、ネットワークスイッチングデバイスによって送信されるアップリンクデータパケットを受信してもよく、また、少なくとも1つの第1のスイッチドインタフェースを用いることにより、ダウンリンクデータパケットをネットワークスイッチングデバイスに送信してもよい。例えば、第1のスイッチングデバイスは、少なくとも1つのスイッチドインタフェースを用いることにより第1のデータパケットを第2のスイッチングデバイスに送信してもよい。しかしながら、これは本発明のこの実施形態に限定されるものではない。
任意選択的に、第2のスイッチングデバイスは、少なくとも1つの第2のスイッチドインタフェースを用いることにより、ネットワークスイッチングデバイスによって送信されるダウンリンクデータパケットを受信してもよく、また、少なくとも1つの第2のスイッチドインタフェースを用いることにより、アップリンクデータパケットをネットワークスイッチングデバイスに送信してもよい。例えば、第2のスイッチングデバイスは、少なくとも2つのスイッチドインタフェースを用いることにより、第1のスイッチングデバイスによって送信される第1のデータパケットを受信してもよい。しかしながら、これは本発明のこの実施形態に限定されるものではない。
任意選択的に、第2のスイッチングデバイスは、さらに、第2のスイッチングデバイスの内部接続ラインを用いることにより少なくとも1つのPCIeダウンストリームポートに接続された第1の内部処理装置を含んでいる。
任意選択的に、第2のスイッチングデバイスが第1のデータパケットを処理してPCIeプロトコルに準拠した第2のデータパケットを取得するように構成されていることは、第1の内部処理装置が、第1のデータパケットを処理して、PCIeプロトコルに準拠した第2のデータパケットを取得するように構成されていることを含む。
任意選択的に、第2のスイッチングデバイスは、さらに、アップリンクデータパケットを処理するように構成されていてもよい。
任意選択的に、第2のスイッチングデバイス内の第1の処理装置は、少なくとも1つのI/Oデバイスから第3のデータパケットを受信し、第3のデータパケットを処理してネットワークのネットワークプロトコルに準拠した第4のデータパケットを取得し、かつネットワークを用いることにより第4のデータパケットを第1のスイッチングデバイスに送信するように構成されている。
任意選択的に、第1の処理装置は、PCIeプロトコルに準拠した第3のデータパケットに対して変換処理を行って、ネットワークのネットワークプロトコルに準拠した第4のデータパケットを取得してもよい。
任意選択的に、第1のスイッチングデバイスは、受信されたアップリンクデータパケットおよび/またはダウンリンクデータパケットを処理してもよい。
別の任意的実施形態においては、内部処理装置223は、ホストスイッチングデバイス220a内に配置された処理装置(すなわち、第1の処理装置)と、I/Oスイッチングデバイス220b内に配置された処理装置(すなわち、第2の処理装置)とを含んでもよい。この場合、第1の内部処理装置は、ホストスイッチングデバイスの内部接続ラインを用いることにより、複数のPCIeアップストリームポートおよび少なくとも1つの第1のスイッチドインタフェースに別個に接続されていてもよい。第2の内部処理装置は、少なくとも1つのPCIeダウンストリームポートおよび少なくとも1つの第2のスイッチドインタフェースに、I/Oスイッチングデバイスの内部接続ラインを用いることにより別個に接続されていてもよい。しかしながら、これは本発明のこの実施形態に限定されるものではない。
任意選択的に、第1のスイッチングデバイスはさらに、第1のスイッチングデバイスの内部接続ラインを用いることにより複数のPCIeアップストリームポートに接続された第2の内部処理装置を含んでいる。
任意選択的に、第2の内部処理装置は、受信されたアップリンク/ダウンリンクデータパケットを処理するように構成されていてもよい。
任意的実施形態においては、第2の内部処理装置は、少なくとも1つのホストから第5のデータパケットを受信し、第5のデータパケットを処理してネットワークのネットワークプロトコルに準拠した第1のデータパケットを取得し、かつネットワークを用いることにより第1のデータパケットを第2のスイッチングデバイスに送信するように構成されている。
任意選択的に、第5のデータパケットは、PCIeプロトコルに準拠したものであってもよい。第2の処理装置は、特に、第5のデータパケットを第1のデータパケットに変換するように構成されていてもよい。なお、第1のデータパケットは、ネットワークのネットワークプロトコルに準拠している。
任意選択的に、第2の処理装置は、さらに、第5のデータパケットにおいて保持された情報および/または第5のデータパケットを受信するPCIeアップストリームポートに従って、第5のデータパケットに対応する第1のスイッチドインタフェースを判定し、対応する第1のスイッチドインタフェースを用いることにより第1のデータパケットを第2のスイッチングデバイスに送信してもよい。しかしながら、これは本発明のこの実施形態に限定されるものではない。
別の任意的実施形態においては、第2の内部処理装置は、ネットワークを用いることにより、第1のスイッチングデバイスによって送信される第4のデータパケットを受信し、第4のデータパケットを処理してPCIeプロトコルに準拠した第6のデータパケットを取得し、かつ第6のデータパケットを第6のデータパケットの対象ホストに送信するように構成されている。
任意選択的に、第2の処理装置は、ネットワークを用いることにより、第2のスイッチングデバイスによって送信される第4のデータパケットを受信してもよく、その場合、第4のデータパケットは、ネットワークのネットワークプロトコルに準拠したデータパケットであってもよい。第2の処理装置は、第4のデータパケットに対して変換処理を行ってPCIeプロトコルに準拠した第6のデータパケットを取得してもよい。
任意選択的に、第2の処理装置は、受信されたデータパケットにおいて保持された情報に従って、または、データパケットを受信するように構成されたポートに従って、データパケットの対象デバイスを判定して、データパケットの対象デバイスに応じてデータパケットを送信するように構成されていてもよい。例えば、第2の処理装置は、第4のデータパケットにおいて保持された情報に従って、第4のデータパケットの対象ホストを判定して、第4のデータパケットを処理することにより取得された第6のデータパケットを第4のデータパケットの対象ホストに送信してもよい。しかしながら、これは本発明のこの実施形態に限定されるものではない。
任意選択的に、第1のスイッチングデバイスは、複数のPCIeアップストリームポートに接続されていて、少なくとも1つのI/Oデバイスの機能が少なくとも1つのホストによって用いられるように機能を仮想化するように構成された、少なくとも1つの仮想エンドポイントデバイスモジュールをさらに含んでいる。
第2のスイッチングデバイスは、
少なくとも1つのPCIeダウンストリームポートに接続されていて、少なくとも1つのI/OデバイスのPCIeコンフィギュレーションの内容を格納するように構成された、少なくとも1つのミラーリングエンドポイントデバイスモジュール、および、
少なくとも1つのホストに対応するPCIeドメインと少なくとも1つのI/Oデバイスに対応するPCIeドメインとの間のマッピングを実装するように構成されたマッピングモジュールと、
をさらに含んでいる。
任意選択的に、少なくとも1つのPCIeダウンストリームポートのいずれもPCIeコンフィギュレーション空間を有しておらず、かつ、複数のPCIeアップストリームポートの各々がPCIeコンフィギュレーション空間を有する。
任意選択的に、第1のスイッチングデバイスは、少なくとも1つのPCIeダウンストリームポートに対応する少なくとも1つのPCIeコンフィギュレーション空間をさらに含んでいる。少なくとも1つの仮想エンドポイントデバイスモジュールは、特に、少なくとも1つのPCIeダウンストリームポートに対応する少なくとも1つのPCIeコンフィギュレーション空間を用いることにより複数のPCIeアップストリームポートに接続されている。
任意選択的に、少なくとも1つのPCIeダウンストリームポートに対応する少なくとも1つのPCIeコンフィギュレーション空間は、特に、N4個のDP_CFG227であってもよい。しかしながら、これは本発明のこの実施形態に限定されるものではない。任意選択的に、少なくとも1つのPCIeダウンストリームポートの各々は、0個、1個または複数個のPCIeコンフィギュレーション空間に対応していてもよい。これは本発明のこの実施形態に限定されるものではない。
任意選択的に、マッピングモジュールは、
少なくとも1つのホストに対応するPCIeドメイン内の識別子から少なくとも1つのI/Oデバイスに対応するPCIeドメイン内の識別子へのマッピング関係を格納するために用いられる第1のマッピングテーブル、および、
少なくとも1つのI/Oデバイスに対応するPCIeドメイン内の識別子から少なくとも1つのホストに対応するPCIeドメイン内の識別子へのマッピング関係を格納するために用いられる第2のマッピングテーブル、
を格納する。
任意選択的に、少なくとも1つのミラーリングエンドポイントデバイスモジュールのうち第1のミラーリングエンドポイントデバイスモジュールは、特に、第3のマッピングテーブルであり、第3のマッピングテーブルは、少なくとも1つのI/Oデバイスのうち第1のI/Oデバイスの仮想機能のベースアドレスレジスタ(BAR)アドレスおよびBARサイズを格納するために用いられ、第1のミラーリングエンドポイントデバイスモジュールは、第1のI/OデバイスのPCIeコンフィギュレーションの内容を格納するように構成されている。
任意選択的に、少なくとも1つの仮想エンドポイントデバイスモジュールのうち第1の仮想エンドポイントデバイスモジュールは、特に、少なくとも1つのI/Oデバイスのうち第2のI/Oデバイスの物理機能が少なくとも1つのホストのうち第1のホストによって用いられるように物理機能を仮想化するように構成されており、第2のI/Oデバイスの物理機能ドライブは、第1のホストのプロセッサによってロードされる。
任意選択的に、少なくとも1つの仮想エンドポイントデバイスモジュールのうち第2の仮想エンドポイントデバイスモジュールは、特に、少なくとも1つのI/Oデバイスのうち第3のI/Oデバイスの仮想機能が少なくとも1つのホストのうち第2のホストによって用いられるように、仮想機能を仮想化するように構成されており、第3のI/Oデバイスの物理機能ドライブは、少なくとも1つのホスト内のベースボード管理コントローラBMCによってロードされる。
任意選択的に、少なくとも1つの仮想エンドポイントデバイスモジュールのうち第3の仮想エンドポイントデバイスモジュールは、特に、少なくとも1つのI/Oデバイスのうち第4のI/Oデバイスの物理機能および仮想機能が少なくとも1つのホストのうち第3のホストによって用いられるように物理機能および仮想機能を仮想化するように構成されており、第4のI/Oデバイスの物理機能ドライブは、少なくとも1つのホスト内の管理BMCによってロードされ、第3の仮想エンドポイントデバイスモジュールの物理機能ドライブは、第3のホストのプロセッサによってロードされる。
少なくとも1つの仮想エンドポイントデバイスモジュールは、特にN3個のvEP224であってもよく、少なくとも1つのミラーリングエンドポイントデバイスモジュールは、特にM3個のmEP226であってもよく、かつ、マッピングモジュールは、特にマッピングモジュール225であってもよいことが理解されるべきである。したがって、少なくとも1つの仮想エンドポイントデバイスモジュール、少なくとも1つのミラーリングエンドポイントデバイスモジュール、および、マッピングモジュールの具体的実装については、前述した記載を参照されたい。簡潔さのために、詳細はここでは再度説明しない。
任意選択的に、第1のスイッチングデバイスは、特に、ホストスイッチングデバイスであってもよく、第2のスイッチングデバイスは、特に、I/Oスイッチングデバイスであってもよい。第1のスイッチングデバイスおよび第2のスイッチングデバイスの具体的実装については、前述した記載を参照されたい。簡潔さのために、詳細はここでは再度説明しない。ここにおける「ホストスイッチングデバイス」、「I/Oスイッチングデバイス」、「第1のスイッチングデバイス」、および、「第2のスイッチングデバイス」は、異なるスイッチングデバイスを区別するための単なる呼称にすぎないことが理解されるべきである。呼称は、本発明の実施形態の保護範囲に対するいかなる限定をも構成すべきでない。
本発明の実施形態は、さらにPCIeシステムを提供し、PCIeシステムは、少なくとも1つのホストと、前述した実施形態におけるスイッチングシステムと、少なくとも1つのI/Oデバイスとを含んでいる。
本発明の実施形態においては、用語「複数の」は少なくとも2つまたは3つを示すことがあり、用語「および/または」は関連するオブジェクトを記述するための関連関係のみを記述し、3つの関係が存在することを表すことが理解されるべきである。例えば、Aおよび/またはBは、以下の3つの場合、すなわち、Aのみが存在する場合、AおよびBの両方が存在する場合、およびBのみが存在する場合の3つの場合を表すことがある。加えて、本明細書中の文字「/」は、一般に、関連するオブジェクト間の「または」関係を示す。
当業者は、本明細書に開示された実施形態において記載された例と組み合わせて、方法のステップおよびユニットが電子ハードウェア、コンピュータソフトウェア、またはこれらの組み合わせによって実装されることができることを認識することがある。ハードウェアとソフトウェアとの間の互換性を明確に説明するために、前述の説明は、機能に従って各実施形態のステップおよび構成部分を一般的に説明した。機能がハードウェアによって行われるかソフトウェアによって行われるかは、技術的解決策の特定の用途および設計制約条件に依存する。当業者は、各特定の用途のための記載された機能を実装するために異なる方法を使用することがあるが、実装が本出願の範囲を超えていると考えるべきではない。
好適かつ簡単な説明を目的として、前述のシステム、装置、およびユニットの詳細な動作プロセスについては、前述の方法の実施形態における対応するプロセスが参照されてもよいことが当業者によって明確に理解されることがあるので、詳細はここでは説明しない。
本出願で提供されるいくつかの実施形態においては、開示されたシステム、装置、および方法は、他の方法で実施され得ることが理解されるべきである。例えば、記載された装置係る実施形態は単なる一例にすぎない。例えば、ユニットの区分は単なる論理的な機能の区分であって、実際の実装では他の区分であってもよい。例えば、複数のユニットまたはコンポーネントが組み合わせられてもよく、または別のシステムに統合されてもよく、またはいくつかの機能が無視されてもよくもしくは行われなくてもよい。加えて、表示または議論された相互的結合または直接的結合または通信接続は、いくつかのインターフェース、装置間またはユニット間の間接的結合もしくは通信接続、または、電気的接続、機械的接続もしくは他の形態の接続によって実装することができる。
別個のパーツとして記載されているユニットは、物理的に別個のものであってもなくてもよく、ユニットとして表示されるパーツは、物理ユニットであってもなくてもよく、1つの位置に配置されていてもよく、複数のネットワークユニット上に分散されていてもよい。本発明の実施形態における解決策の目的を達成するために、ユニットの一部または全部は、実際のニーズに応じて選択されてもよい。
加えて、本出願の実施形態における機能ユニットは、1つの処理ユニットに統合されてもよいし、ユニットの各々が物理的に単独で存在してもよいし、2つまたは複数のユニットが1つのユニットに統合されてもよい。統合ユニットは、ハードウェアの形態で実装されてもよく、ソフトウェア機能ユニットの形態で実装されてもよい。
統合ユニットがソフトウェア機能ユニットの形態で実装され、独立した製品として販売または使用される場合、統合ユニットはコンピュータ読み取り可能記憶媒体に格納されてもよい。かかる理解に基づいて、本願の技術的解決策は本質的に、または、先行技術に寄与する部分または技術的解決策の全部もしくは一部は、ソフトウェア製品の形態で実装されてもよい。コンピュータソフトウェア製品は、記憶媒体に格納された、コンピュータ装置(パーソナルコンピュータ、サーバ、ネットワーク装置などであってもよい)に対して本出願の実施形態に記載された方法のステップの全部または一部を行うよう指示するためのいくつかの命令を含む。前述した記憶媒体には、USBフラッシュドライブ、リムーバブルハードディスク、読み取り専用メモリ(Read−Only Memory,ROM)、ランダムアクセスメモリ(Random Access Memory,RAM)、磁気ディスク、光ディスクなどのプログラムコードを格納可能な任意の媒体が含まれる。
前述の説明は、本出願の特定の実装形態にすぎないが、本出願の保護範囲を限定するものではない。本出願に開示された技術的範囲内で当業者によって容易に理解されるいかなる修正または置換もまた、本出願の保護範囲内に入るものとする。したがって、本願の保護範囲は、請求項の保護範囲に従うべきものである。

Claims (9)

  1. 少なくとも1つのホストに接続するように構成されている複数のペリフェラル・コンポーネント・インターコネクト・エクスプレス(PCIe)アップストリームポートと、
    少なくとも1つの入力/出力(I/O)デバイスに接続するように構成されている少なくとも1つのPCIeダウンストリームポートと、
    スイッチングデバイスの内部接続ラインを用いることにより、前記少なくとも1つのPCIeダウンストリームポートに接続された内部処理装置と、
    を備えたスイッチングデバイスであって、
    前記内部処理装置は、
    前記内部接続ラインを用いることにより、コンフィギュレーションリード/ライトパケットを前記少なくとも1つのPCIeダウンストリームポートに送信し、
    前記内部接続ラインを用いることにより前記少なくとも1つのPCIeダウンストリームポートによって送信されたコンフィギュレーションリード/ライト応答パケットであって、コンプリータ識別子を保持している、前記コンフィギュレーションリード/ライト応答パケット、を受信し、かつ、
    前記コンフィギュレーションリード/ライト応答パケット内に保持された前記コンプリータ識別子に従って、前記スイッチングデバイスが前記コンプリータ識別子を識別子として有するI/Oデバイスに接続されていると判定する
    ように構成され、
    前記スイッチングデバイスは、
    前記少なくとも1つのPCIeダウンストリームポートに接続されていて、前記少なくとも1つのPCIeダウンストリームポートに接続された前記少なくとも1つのI/OデバイスのPCIeコンフィギュレーションの内容を格納するように構成された少なくとも1つのミラーリングエンドポイントデバイスモジュールと、
    前記複数のPCIeアップストリームポートに接続されていて、前記少なくとも1つのPCIeダウンストリームポートに接続された前記少なくとも1つのI/Oデバイスの機能が前記複数のPCIeアップストリームポートに接続された前記少なくとも1つのホストによって用いられるように、前記機能を仮想化するように構成された少なくとも1つの仮想エンドポイントデバイスモジュールと、
    前記少なくとも1つのミラーリングエンドポイントデバイスモジュールおよび前記少なくとも1つの仮想エンドポイントデバイスモジュールに別個に接続されていて、前記少なくとも1つのホストに対応するPCIeドメインと前記少なくとも1つのI/Oデバイスに対応するPCIeドメインとの間のマッピングを実装するように構成されたマッピングモジュールと、
    をさらに備えている、スイッチングデバイス。
  2. 前記マッピングモジュールは、
    前記少なくとも1つのホストに対応する前記PCIeドメインにおける識別子から前記少なくとも1つのI/Oデバイスに対応する前記PCIeドメインにおける識別子へのマッピング関係を格納するために用いられる第1のマッピングテーブルと、
    前記少なくとも1つのI/Oデバイスに対応する前記PCIeドメインにおける前記識別子から前記少なくとも1つのホストに対応する前記PCIeドメインにおける前記識別子へのマッピング関係を格納するために用いられる第2のマッピングテーブルと、
    を格納している、請求項1に記載のスイッチングデバイス。
  3. 前記スイッチングデバイスは、ホストスイッチングデバイスおよびI/Oスイッチングデバイスであり、
    前記ホストスイッチングデバイスと前記I/Oスイッチングデバイスとは、イーサネットインタフェースを用いることにより接続され、
    前記ホストスイッチングデバイスは、前記複数のPCIeアップストリームポートを備え、かつ、
    前記I/Oスイッチングデバイスは、前記内部処理装置と、前記少なくとも1つの仮想エンドポイントデバイスモジュールと、前記マッピングモジュールと、前記少なくとも1つのミラーリングエンドポイントデバイスモジュールと、前記少なくとも1つのPCIeダウンストリームポートとを備えている、
    請求項1または2に記載のスイッチングデバイス。
  4. 前記内部処理装置は、
    前記少なくとも1つのホスト内の管理ベースボード管理コントローラ(BMC)によって送信された初期化命令を受信し、および
    前記初期化命令に従って、コンフィギュレーションリード/ライトパケットを、前記内部接続ラインを用いることにより前記少なくとも1つのPCIeダウンストリームポートに送信する
    ように構成され、
    前記内部処理装置は、さらに、
    前記スイッチングデバイスに接続されたI/Oデバイスが判定された後で、前記スイッチングデバイスに接続された前記I/Oデバイスに関する情報を前記管理BMCに対して報告するように構成され、かつ、
    前記情報は、識別情報を含む、
    請求項1ないし3のいずれか一項に記載のスイッチングデバイス。
  5. 少なくとも1つのホストと、
    請求項1ないし4のいずれか一項に記載の前記スイッチングデバイスと、
    少なくとも1つの入力/出力(I/O)デバイスと、
    を備えたペリフェラル・コンポーネント・インターコネクト・エクスプレス(PCIe)システムであって、
    前記少なくとも1つのホストは、コンフィギュレーション管理機能を有する管理ベースボード管理コントローラ(BMC)を含む、
    PCIeシステム。
  6. 請求項5に記載のPCIeシステムに適用される、ペリフェラル・コンポーネント・インターコネクト・エクスプレスPCIeシステムを初期化する方法であって、
    前記管理BMCによって、初期化命令を前記スイッチングデバイス内の前記内部処理装置送信することと、
    前記初期化命令に従って前記内部処理装置によって、前記スイッチングデバイスに接続されたI/Oデバイスを判定して、前記スイッチングデバイスに接続された前記I/Oデバイスに関する情報を前記管理BMCに報告することと、
    前記少なくとも1つのホストによって、前記少なくとも1つのホストに接続されたデバイスに関する情報を取得することと、
    前記少なくとも1つのホストに接続された前記デバイスに関する前記情報に従って前記少なくとも1つのホストによって、前記少なくとも1つのI/Oデバイスの仮想機能ドライブおよび物理機能ドライブをロードすることと、
    を含む方法。
  7. 前記少なくとも1つのホストに接続された前記デバイスに関する前記情報に従って前記少なくとも1つのホストによってとは、
    前記少なくとも1つのホストのうち第1のホストであって、前記スイッチングデバイスの複数のPCIeアップストリームポートのうち第1のPCIeアップストリームポートに接続された前記第1のホストによって、コンフィギュレーションリードパケットを送信することと、
    前記スイッチングデバイスの少なくとも1つの対象仮想エンドポイントデバイスモジュールであって、前記少なくとも1つの仮想エンドポイントデバイスモジュールに含まれかつ各々が前記第1のPCIeアップストリームポートに接続された前記少なくとも1つの対象仮想エンドポイントデバイスモジュール、によって、前記第1のPCIeアップストリームポートを使用して、前記第1のホストにより送信された前記コンフィギュレーションリードパケットを受信し、かつ前記コンフィギュレーションリードパケットに従って、コンフィギュレーションリード応答パケットを前記第1のホストに送信することと、
    前記第1のホストによって、前記受信されたコンフィギュレーションリード応答パケットに従ってコンフィギュレーションライトパケットを送信することと、
    前記少なくとも1つのI/Oデバイスに含まれる少なくとも1つの対象I/Oデバイスの機能を仮想化するように構成された前記少なくとも1つの対象仮想エンドポイントデバイスモジュールによって、前記第1のPCIeアップストリームポートを使用して、前記第1のホストによって送信された前記コンフィギュレーションライトパケットを受信し、および前記少なくとも1つのPCIeダウンストリームポートのうち少なくとも1つの第1のPCIeダウンストリームポートを使用して、前記コンフィギュレーションライトパケットを、前記少なくとも1つの対象I/Oデバイスに転送することと、
    前記少なくとも1つの第1のPCIeダウンストリームポートを使用して前記少なくとも1つの対象I/Oデバイスによって、前記少なくとも1つの対象仮想エンドポイントデバイスモジュールによって転送された前記コンフィギュレーションライトパケットを受信し、かつ前記受信されたコンフィギュレーションライトパケットに従ってコンフィギュレーションライト応答パケットを前記スイッチングデバイスに送信することと、
    前記スイッチングデバイスによって、前記少なくとも1つの対象I/Oデバイスによって送信された前記コンフィギュレーションライト応答パケットを受信し、かつ前記第1のPCIeアップストリームポートを使用して、前記コンフィギュレーションライト応答パケットを前記第1のホストに転送することと、
    前記第1のホストによって、前記第1のホストに接続された前記少なくとも1つの対象仮想エンドポイントデバイスモジュールに関する情報を、前記受信されたコンフィギュレーションライト応答パケットから取得することと、
    を含む、請求項6に記載の方法。
  8. コンピュータ読み取り可能な記録媒体であって、記録されたプログラムを有し、前記プログラムは、コンピュータに請求項6または7に記載の方法を実行させる、コンピュータ読み取り可能な記録媒体。
  9. コンピュータに請求項6または7に記載の方法を実行させる、プログラム。
JP2017563323A 2016-01-13 2017-01-13 スイッチングデバイス、ペリフェラル・コンポーネント・インターコネクト・エクスプレスシステムおよびその初期化方法 Active JP6665207B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
CN201610022697.1A CN105721357B (zh) 2016-01-13 2016-01-13 交换设备、外围部件互连高速系统及其初始化方法
CN201610022697.1 2016-01-13
PCT/CN2017/071081 WO2017121376A1 (zh) 2016-01-13 2017-01-13 交换设备、外围部件互连高速系统及其初始化方法

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2019081171A Division JP7118922B2 (ja) 2016-01-13 2019-04-22 スイッチングデバイス、ペリフェラル・コンポーネント・インターコネクト・エクスプレスシステムおよびその初期化方法

Publications (2)

Publication Number Publication Date
JP2018521402A JP2018521402A (ja) 2018-08-02
JP6665207B2 true JP6665207B2 (ja) 2020-03-13

Family

ID=56147068

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2017563323A Active JP6665207B2 (ja) 2016-01-13 2017-01-13 スイッチングデバイス、ペリフェラル・コンポーネント・インターコネクト・エクスプレスシステムおよびその初期化方法
JP2019081171A Active JP7118922B2 (ja) 2016-01-13 2019-04-22 スイッチングデバイス、ペリフェラル・コンポーネント・インターコネクト・エクスプレスシステムおよびその初期化方法

Family Applications After (1)

Application Number Title Priority Date Filing Date
JP2019081171A Active JP7118922B2 (ja) 2016-01-13 2019-04-22 スイッチングデバイス、ペリフェラル・コンポーネント・インターコネクト・エクスプレスシステムおよびその初期化方法

Country Status (7)

Country Link
US (2) US10810151B2 (ja)
EP (2) EP3276899B1 (ja)
JP (2) JP6665207B2 (ja)
CN (2) CN110489365B (ja)
ES (1) ES2773032T3 (ja)
SG (2) SG11201708829YA (ja)
WO (1) WO2017121376A1 (ja)

Families Citing this family (41)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110489365B (zh) * 2016-01-13 2023-09-12 华为技术有限公司 交换设备、外围部件互连高速系统及其初始化方法
US10082957B2 (en) * 2016-07-20 2018-09-25 Western Digital Technologies, Inc. Dual-ported PCI express-based storage cartridge including single-ported storage controllers
CN106648836A (zh) * 2016-12-28 2017-05-10 郑州云海信息技术有限公司 一种虚拟机配置中设备地址的分配方法和装置
CN109428903B (zh) * 2017-08-22 2021-08-13 佛山市顺德区顺达电脑厂有限公司 Pci装置的远程监控系统及其远程监控方法
CN108021521B (zh) * 2017-12-01 2021-04-27 郑州云海信息技术有限公司 一种基于bmc更改系统拓扑配置的系统以及级联配置方法
JP7181447B2 (ja) 2018-03-30 2022-12-01 株式会社ソシオネクスト 情報処理システム、情報処理方法及び半導体装置
JP6635209B2 (ja) * 2018-04-18 2020-01-22 富士通クライアントコンピューティング株式会社 情報処理システム
WO2019203331A1 (ja) * 2018-04-18 2019-10-24 富士通クライアントコンピューティング株式会社 中継装置および情報処理システム
CN109522245B (zh) * 2018-11-15 2021-10-29 郑州云海信息技术有限公司 一种硬件管理的方法及管理装置
US11218397B2 (en) * 2019-01-27 2022-01-04 Mellanox Technologies, Ltd. Dual purpose NIC/PCIe protocol logic analyzer
US10585833B1 (en) * 2019-01-28 2020-03-10 Quanta Computer Inc. Flexible PCIe topology
GB2586957A (en) * 2019-04-18 2021-03-17 Fujitsu Client Computing Ltd Repeating device and information processing system
US11256643B2 (en) * 2019-06-21 2022-02-22 Dell Products L.P. System and method for high configurability high-speed interconnect
CN112131166A (zh) 2019-06-24 2020-12-25 三星电子株式会社 轻量桥接器电路及其操作方法
CN112491672B (zh) * 2019-09-11 2022-05-06 杭州海康威视数字技术股份有限公司 一种pcie通信系统、通信配置参数备份方法及pcie交换机
CN111158984B (zh) * 2019-12-29 2023-08-18 浪潮商用机器有限公司 一种服务器硬件监控方法、装置、设备及存储介质
US11609866B2 (en) * 2020-01-02 2023-03-21 Texas Instruments Incorporated PCIe peripheral sharing
US11132326B1 (en) * 2020-03-11 2021-09-28 Nvidia Corporation Techniques to transfer data among hardware devices
CN113297124B (zh) * 2020-04-08 2022-05-06 阿里巴巴集团控股有限公司 设备枚举方法、设备、系统及存储介质
CN113300984B (zh) * 2020-04-08 2022-09-13 阿里巴巴集团控股有限公司 通信方法、设备、系统及存储介质
CN113297116A (zh) * 2020-04-08 2021-08-24 阿里巴巴集团控股有限公司 信息配置方法、端口访问方法、设备及存储介质
CN111581050B (zh) * 2020-04-13 2023-06-27 加弘科技咨询(上海)有限公司 机箱、机箱监控系统及监控方法
CN111538692B (zh) * 2020-04-20 2022-03-18 深圳市汇川技术股份有限公司 变频器系统及其控制方法
TWI759772B (zh) * 2020-06-19 2022-04-01 英業達股份有限公司 快速周邊組件互連資料傳輸控制系統
US11392325B2 (en) * 2020-09-28 2022-07-19 Quanta Computer Inc. Method and system for parallel flash memory programming
CN112256618B (zh) * 2020-10-23 2022-10-21 新华三信息安全技术有限公司 一种映射关系确定方法及装置
US11354259B1 (en) * 2020-12-08 2022-06-07 Hewlett Packard Enterprise Development Lp Computer system configurations based on accessing data elements presented by baseboard management controllers
US20220206879A1 (en) * 2020-12-30 2022-06-30 Heena Bhatia PCIe Race Condition secure by Trait Claims and Address Space by using Portable Stimulus
CN113132199B (zh) * 2021-04-21 2022-07-01 无锡众星微系统技术有限公司 一种PCIe NTB的系统实现管理方法
US11714775B2 (en) 2021-05-10 2023-08-01 Zenlayer Innovation LLC Peripheral component interconnect (PCI) hosting device
CN116724308A (zh) * 2021-05-24 2023-09-08 华为技术有限公司 一种数据传输的方法及装置
CN113709066B (zh) * 2021-07-31 2023-04-07 浪潮电子信息产业股份有限公司 一种PCIe通信装置及BMC
CN115811446A (zh) * 2021-09-14 2023-03-17 华为技术有限公司 一种总线系统、通信方法及相关设备
CN113904938B (zh) * 2021-09-28 2022-04-29 北京大禹智芯科技有限公司 一种动态配置PCIe终端设备的系统和方法
CN114125902A (zh) * 2021-11-30 2022-03-01 上海移远通信技术股份有限公司 Wwan设备及其配置方法、装置、存储介质
US20230251990A1 (en) * 2022-02-09 2023-08-10 Microchip Technology Incorporated Switching data based on a bus identifier and a device identifier
CN114584411B (zh) * 2022-02-25 2024-04-02 山东云海国创云计算装备产业创新中心有限公司 PCIe多播验证方法、装置、电子设备及存储介质
CN114389947B (zh) * 2022-03-24 2022-05-27 苏州浪潮智能科技有限公司 数据传输方法、系统及计算机可读存储介质
CN115277407B (zh) * 2022-07-25 2024-01-23 北京天融信网络安全技术有限公司 网口配置处理方法、装置、电子设备和存储介质
CN117591449B (zh) * 2024-01-17 2024-04-23 苏州元脑智能科技有限公司 一种基板的可编程逻辑器件系统及其应用设备
CN117743240B (zh) * 2024-02-19 2024-04-19 井芯微电子技术(天津)有限公司 一种具备透明和非透明双模式的PCIe桥设备

Family Cites Families (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB0123410D0 (en) * 2001-09-28 2001-11-21 Memquest Ltd Memory system for data storage and retrieval
US7188209B2 (en) * 2003-04-18 2007-03-06 Nextio, Inc. Apparatus and method for sharing I/O endpoints within a load store fabric by encapsulation of domain information in transaction layer packets
US7729284B2 (en) * 2005-01-19 2010-06-01 Emulex Design & Manufacturing Corporation Discovery and configuration of devices across an Ethernet interface
WO2009025381A1 (ja) * 2007-08-23 2009-02-26 Nec Corporation I/oシステムおよびi/o制御方法
KR101324844B1 (ko) 2008-03-25 2013-11-01 휴렛-팩커드 디벨롭먼트 컴퍼니, 엘.피. 기능 변환 시스템 및 방법과 변환 수행 시스템
JP5272265B2 (ja) * 2008-09-29 2013-08-28 株式会社日立製作所 Pciデバイス共有方法
US8868814B2 (en) * 2009-07-06 2014-10-21 Nec Corporation I/O system, downstream PCI express bridge, interface sharing method, and program
JP5266590B2 (ja) * 2009-09-18 2013-08-21 株式会社日立製作所 計算機システムの管理方法、計算機システム及びプログラム
US8463934B2 (en) * 2009-11-05 2013-06-11 Rj Intellectual Properties, Llc Unified system area network and switch
US8732349B2 (en) * 2009-11-18 2014-05-20 Fusion-Io, Inc. Assignment of resources in an input/output (I/O) virtualization system
JP5598148B2 (ja) 2010-08-05 2014-10-01 富士通株式会社 スイッチング装置、情報処理装置、及びスイッチング装置の制御方法
JP5541021B2 (ja) 2010-09-09 2014-07-09 富士通株式会社 スイッチ装置
CN102075401B (zh) * 2011-01-28 2013-08-07 华为技术有限公司 在pcie总线上传输报文的方法、设备和系统
JP5794011B2 (ja) * 2011-07-19 2015-10-14 富士通株式会社 ネットワーク管理装置及びネットワーク管理方法
KR102154642B1 (ko) * 2012-04-05 2020-09-10 한국전자통신연구원 PCIe 스위치 장치 및 그의 접속제어 방법
CN102707991B (zh) * 2012-05-17 2016-03-30 中国科学院计算技术研究所 多根i/o虚拟化共享方法和系统
CN102722414B (zh) * 2012-05-22 2014-04-02 中国科学院计算技术研究所 用于多根i/o 虚拟化共享系统的i/o 资源管理方法
US9268732B2 (en) * 2012-06-08 2016-02-23 Advanced Micro Devices, Inc. Tunnel suitable for multi-segment communication links and method therefor
CN103023824B (zh) * 2012-12-11 2015-08-26 华为技术有限公司 基于周边组件接口快速通道PCIe的数据传输系统及方法
CN103117929B (zh) * 2013-01-31 2015-12-23 中国科学院计算技术研究所 一种基于PCIe数据交换的通信方法及系统
US9734096B2 (en) * 2013-05-06 2017-08-15 Industrial Technology Research Institute Method and system for single root input/output virtualization virtual functions sharing on multi-hosts
CN103701710B (zh) * 2013-12-20 2017-01-11 杭州华为数字技术有限公司 一种数据传输方法、核心转发设备以及端点转发设备
US9336173B1 (en) * 2013-12-20 2016-05-10 Microsemi Storage Solutions (U.S.), Inc. Method and switch for transferring transactions between switch domains
US9563591B2 (en) * 2014-03-06 2017-02-07 International Business Machines Corporation Peripheral component interconnect express (PCIe) ping in a switch-based environment
US9401873B2 (en) * 2014-05-14 2016-07-26 International Business Machines Corporation Fibre channel over ethernet (FCoE) zoning in a distributed ethernet switch
CN110489365B (zh) * 2016-01-13 2023-09-12 华为技术有限公司 交换设备、外围部件互连高速系统及其初始化方法

Also Published As

Publication number Publication date
CN105721357A (zh) 2016-06-29
EP3661141A1 (en) 2020-06-03
SG10202005939TA (en) 2020-07-29
WO2017121376A1 (zh) 2017-07-20
US20210004343A1 (en) 2021-01-07
JP2019145153A (ja) 2019-08-29
CN110489365B (zh) 2023-09-12
JP7118922B2 (ja) 2022-08-16
EP3276899A1 (en) 2018-01-31
EP3276899A4 (en) 2018-10-10
ES2773032T3 (es) 2020-07-09
US11080221B2 (en) 2021-08-03
SG11201708829YA (en) 2017-11-29
US20180052793A1 (en) 2018-02-22
JP2018521402A (ja) 2018-08-02
EP3276899B1 (en) 2019-11-13
CN110489365A (zh) 2019-11-22
CN105721357B (zh) 2019-09-03
US10810151B2 (en) 2020-10-20

Similar Documents

Publication Publication Date Title
JP6665207B2 (ja) スイッチングデバイス、ペリフェラル・コンポーネント・インターコネクト・エクスプレスシステムおよびその初期化方法
US11016924B2 (en) System and method for supporting multi-mode and/or multi-speed non-volatile memory (NVM) express (NVMe) over fabrics (NVMe-oF) devices
KR101324844B1 (ko) 기능 변환 시스템 및 방법과 변환 수행 시스템
US8412863B2 (en) Storage apparatus and virtual port migration method for storage apparatus
US7925817B2 (en) Computer system and method for monitoring an access path
JP5305848B2 (ja) データ処理システム内で入出力(i/o)仮想化を管理するための方法およびデータ処理システムならびにコンピュータ・プログラム
US9760455B2 (en) PCIe network system with fail-over capability and operation method thereof
US8583848B2 (en) Switching circuit connected to an I/O device, and switching circuit connected to an I/O device control method
US8359415B2 (en) Multi-root I/O virtualization using separate management facilities of multiple logical partitions
US9678826B2 (en) Fault isolation method, computer system, and apparatus
US7707465B2 (en) Routing of shared I/O fabric error messages in a multi-host environment to a master control root node
US20170118115A1 (en) Switching device, computer system, method, and program
US10684880B2 (en) Allocating and initializing I/O devices at virtual
US11175977B2 (en) Method and system to detect failure in PCIe endpoint devices
WO2017049433A1 (zh) 计算机系统和计算机系统中端点设备访问的方法
CN115203095A (zh) PCIe装置及其操作方法
US10509759B2 (en) Multiple storage devices implemented using a common connector
US20120324078A1 (en) Apparatus and method for sharing i/o device
US20210064108A1 (en) Information processing system
US20230350824A1 (en) Peripheral component interconnect express device and operating method thereof

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20171206

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20171206

RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20180511

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20180511

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20181219

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20181207

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20190129

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190422

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20190924

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20191224

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20200219

R150 Certificate of patent or registration of utility model

Ref document number: 6665207

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250