(57)【要約】【課題】拡張周辺コンポーネント相互接続エクスプレスファブリックのためのシステムおよび方法を提供する。【解決手段】実施例の拡張周辺コンポーネント相互接続エクスプレス(PCIe)デバイスは、ホストルートコンプレックスを含むホストPCIeファブリックを備える。ホストPCIeファブリックは、ホストCPU上に、バス番号の第1のセットと、第1のメモリマップト入力/出力(MMIO)空間を有する。拡張PCIeファブリックは、ホストPCIeファブリックのエンドポイントの一部として、ルートコンプレックスエンドポイント(RCEP)を含む。拡張PCIeファブリックは、バス番号の第1のセットおよび第1のMMIO空間からそれぞれ別けられたバス番号の第2のセットおよび第2のMMIO空間を有する。【選択図】図１
2018125028.tif 000002
【特許請求の範囲】
【請求項１】
拡張周辺コンポーネント相互接続エクスプレス(PCIe)トポロジーにおいて、
ホストルートコンプレックスを含むホストPCIeファブリックであって、前記ホストPCIeファブリックは、ホスト中央処理装置(CPU)上に、バス番号の第1のセットおよび第1のメモリマップト入力/出力(MMIO)空間を有する、ホストPCIeファブリックと、
前記ホストPCIeファブリックのエンドポイントの一部としてルートコンプレックスエンドポイント(RCEP)を含む拡張PCIeファブリックであって、前記拡張PCIeファブリックは、前記バス番号の第1のセットおよび前記第1のMMIO空間からそれぞれ別けられたバス番号の第2のセットおよび第2のMMIO空間を有する、拡張PCIeファブリックと
を含むPCIeトポロジー。
【請求項２】
前記RCEPは、前記拡張PCIeファブリックと前記ホストPCIeファブリックとの間のブリッジである、請求項1に記載のPCIeトポロジー。
【請求項３】
前記第2のMMIO空間は、前記第1のMMIO空間にマッピングされる、請求項1または2に記載のPCIeトポロジー。
【請求項４】
前記拡張ファブリックの32ビットメモリ空間は、前記第1のMMIO空間の64ビットMMIO空間にマッピングされ、
前記拡張ファブリックの64ビットメモリ空間は、前記第1のMMIO空間の64ビットMMIO空間にマッピングされ、または
前記拡張PCIeファブリックのPCIeコンフィギュレーション空間は、前記第1のMMIO空間の64ビットMMIO空間にマッピングされる、請求項1から3のいずれか一項に記載のPCIeトポロジー。
【請求項５】
前記拡張PCIeファブリックの各デバイス機能が、前記64ビットMMIO空間の各4キロバイトにマッピングされる、請求項4に記載のPCIeトポロジー。
【請求項６】
前記拡張PCIeファブリックに関連付けられた各デバイス機能のためのコンフィギュレーションレジスタが、ベース/デバイス/機能アドレッシングを使用してアドレッシングされるように構成される、請求項4に記載のPCIeトポロジー。
【請求項７】
バス番号の前記第2のセットは、前記拡張PCIeファブリックのための256までの固有のバス番号を含む、請求項1から6のいずれか一項に記載のPCIeトポロジー。
【請求項８】
前記RCEPは、前記拡張PCIeファブリックに由来する障害を隔離するように構成される、請求項1から6のいずれか一項に記載のPCIeトポロジー。
【請求項９】
前記拡張PCIeファブリックは、前記ホストPCIeファブリックと同様に周辺デバイスと対話する、請求項1から6のいずれか一項に記載のPCIeトポロジー。
【請求項１０】
拡張PCIeファブリックを備える周辺コンポーネント相互接続エクスプレス(PCIe)トポロジーであって、前記拡張PCIeファブリックは、ルートコンプレックスエンドポイント(RCEP)デバイスを備え、前記RCEPデバイスは、第1レベルPCIeファブリックのエンドポイントの一部であるように構成され、かつ前記拡張PCIeファブリックは、メモリマップト入力/出力(MMIO)空間と、バス番号のセットとを含む、PCIeトポロジー。
【請求項１１】
前記MMIO空間は、前記第1レベルPCIeファブリックの64ビットのアドレス可能な物理アドレス空間にマッピングされる、請求項10に記載のPCIeトポロジー。
【請求項１２】
前記RCEPデバイスは、1以上のルートポートを備える、請求項10または11に記載のPCIeトポロジー。
【請求項１３】
前記拡張PCIeファブリックは、1以上のエンドポイントを前記RCEPに電気的に相互接続している1以上のスイッチを備える請求項10から12のいずれか一項に記載のPCIeトポロジー。
【請求項１４】
周辺デバイスを設計するための方法であって、
ホストPCIeファブリックのエンドポイントの一部として拡張周辺コンポーネント相互接続エクスプレス(PCIe)ファブリックをホストするルートコンプレックスエンドポイント(RCEP)を含むステップであって、前記拡張PCIeファブリックは、前記ホストPCIeファブリックの第2のMMIO空間から別けられた第1のMMIO空間を有する、ステップと、
前記第1のMMIO空間を前記第2のMMIO空間にマッピングするステップと
を含む方法。
【請求項１５】
前記拡張PCIeファブリックは、前記ホストPCIeファブリックのバス番号の第2のセットから別けられた256までの固有のバス番号の第1のセットをさらに含む、請求項14に記載の方法。
【請求項１６】
前記RCEPデバイスによって、前記拡張PCIeファブリック上で発生する下流障害をインターセプトするステップをさらに含む、請求項14または15に記載の方法。
【請求項１７】
前記拡張PCIeファブリックのPCIeコンフィギュレーション空間と、32ビットメモリ空間と、64ビットメモリ空間とを前記第2のMMIO空間にマッピングするステップをさらに含む、請求項14から16のいずれか一項に記載の方法。
【請求項１８】
前記RCEPデバイスによって、メッセージ形式の割込み(MSI)を使用して、前記拡張PCIeファブリック上で発生するデバイス割込みを処理するステップをさらに含む、請求項14から16のいずれか一項に記載の方法。
【請求項１９】
ダイレクトメモリアクセス(DMA)要求が前記ホストPCIeファブリックの上流に転送されるとき、DMA要求内の発信デバイスIDをRCEP IDで置き換えることによって、前記拡張PCIeファブリックに接続されたデバイスからの前記DMA要求を処理するステップをさらに含む、請求項14から16のいずれか一項に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
関連出願の相互参照
本出願は、2013年6月28日に出願した、発明の名称「System and Method for Extended Peripheral Component Interconnect Express Fabrics」という名称の米国非仮出願第13/931,640号の利益を主張するものであり、この出願は、参照により本明細書に組み込まれる。
【０００２】
本発明は、広くコンピューティング業界に関し、かつより具体的には、周辺コンポーネント相互接続エクスプレス(PCIe)ファブリックを拡張するシステム、方法、コンピュータプログラム製品、および装置に関する。
【背景技術】
【０００３】
周辺コンポーネント相互接続エクスプレス(PCIe)は、様々なハードウェアデバイス(例えば、ストレージデバイス、ネットワークカード、およびサウンドカード等)をホスト中央処理装置(CPU)に取り付けるために広く使用される高速シリアルコンピュータ拡張バス規格である。ホストCPUメモリ構成はベンダ特有であってよいため、PCIeは、様々なデバイスをCPUに接続するための入力/出力(I/O)規格を提供する。PCIeは、古いバス規格(例えば、PCIおよびPCI-eXtended)を越えて様々な改良を可能にする。例えば、PCIeは、一般には、高い最大のシステムバススループット、低いI/Oピンカウント、小さいバスフットプリント、ネイティブホットプラグ機能、およびその他の利点を可能にする。
【０００４】
PCIeバス規格が有する問題は、各PCIeファブリックがリソースの有限量によって制限されることである。例えば、各PCIeファブリックの32ビットのアドレスのメモリ空間のサイズが4GBを超えないようにし、かつ各ファブリックは、最大値の256バス番号を有することができる。PCIeは、ポイントツーポイントのシリアル接続で動作するので、これらの制限は、PCIeファブリックに取り付けることができるノード(すなわち、デバイス)の最大数の上限を定める。つまり、様々なデバイス用のバス番号は、重複しなくてもよく、それぞれ取り付けられたデバイスは、機能するために固有のバス番号のセットを必要とする。PCIeファブリック内の様々なバス番号は、特定の使用(例えば、PCIeスイッチの内部のバス番号またはホットプラグ機能等)のために予約されてもよく、さらに利用可能なバス番号の数を制限する。
【０００５】
さらに、PCIeファブリックに取り付けられている任意のコンポーネントで発生する障害は、障害のあるコンポーネントに取り付けられている任意の他の下流または上流のコンポーネントに影響を与える可能性がある。PCIeファブリックに取り付けられるコンポーネントおよびソフトウェアドライバの数が増加すると、障害処理はより困難になり、かつ任意の障害の伝播は、システム全体のクラッシュにつながる可能性がある。
【発明の概要】
【０００６】
拡張周辺コンポーネント相互接続エクスプレスファブリックを提供する本発明の好適な実施形態によって、これらおよび他の問題は、一般に解決または回避され、かつ技術的利点が一般に達成される。
【０００７】
一実施例によれば、周辺コンポーネント相互接続エクスプレストポロジーは、ホストルートコンプレックスを備えるホストPCIeファブリックを含む。ホストPCIeファブリックは、ホスト中央処理装置(CPU)上にバス番号の第1のセットおよび第1のメモリマップト入力/出力(MMIO)空間を含む。さらに、ホストPCIeファブリックのエンドポイントの一部としてルートコンプレックスエンドポイント(RCEP)を含む拡張PCIeファブリックが提供される。拡張PCIeファブリックはまた、バス番号の第1のセットおよび第1のMMIO空間から別けられたバス番号の第2のセットおよび第2のMMIO空間をそれぞれ含む。
【０００８】
別の実施例によれば、周辺コンポーネント相互接続エクスプレス(PCIe)トポロジーは、拡張PCIeファブリックを含む。拡張PCIeファブリックは、ルートコンプレックスエンドポイント(RCEP)を含む。RCEPは、第1レベルPCIeファブリックのエンドポイントの一部であるように構成される。さらに、拡張PCIeファブリックは、メモリマップト入力/出力(MMIO)空間およびバス番号のセットを備える。
【０００９】
さらに別の実施例によれば、周辺機器を接続するための方法は、ホストPCIeファブリックのエンドポイントの一部として、拡張周辺コンポーネント相互接続エクスプレス(PCIe)ファブリックをホストするルートコンプレックスエンドポイント(RCEP)を提供するステップを含む。拡張PCIeファブリックは、ホストPCIeファブリックの第2のMMIO空間から別けられた第1のMMIO空間を有する。方法は、第1のMMIO空間を第2のMMIO空間にマッピングするステップをさらに含む。
【図面の簡単な説明】
【００１０】
本発明と、その利点をより十分に理解するために、添付図面と併せて以下の説明が参照される。
【００１１】
【図１】様々な実施例に基づく周辺コンポーネント相互接続エクスプレス(PCIe)ファブリックのブロック図である。
【図２Ａ】様々な実施例に基づく拡張ファブリックをマッピングし、かつアドレッシングするPCIeコンフィギュレーション空間のブロック図である。
【図２Ｂ】様々な実施例に基づく拡張ファブリックをマッピングし、かつアドレッシングするPCIeコンフィギュレーション空間のブロック図である。
【図３Ａ】様々な実施例に基づく拡張ファブリックをマッピングし、かつアドレッシングする32ビットメモリ空間のブロック図である。
【図３Ｂ】様々な実施例に基づく拡張ファブリックをマッピングし、かつアドレッシングする32ビットメモリ空間のブロック図である。
【図４Ａ】様々な実施例に基づく拡張ファブリックをマッピングし、かつアドレッシングする64ビットメモリ空間のブロック図である。
【図４Ｂ】様々な実施例に基づく拡張ファブリックをマッピングし、かつアドレッシングする64ビットメモリ空間のブロック図である。
【図５】様々な実施例に基づくPCIeファブリックを有するコンピューティングシステムのシステム図である。
【発明を実施するための形態】
【００１２】
包含されるイノベーションの様々な態様をカバーする実施例が、以下に、より詳細に説明される。しかしながら、本発明は、多種多様な特定のコンテンツに具現することができる多くの適用可能な固有かつ新規なコンセプトを提供するということは理解されるべきである。従って、本明細書に記載される特定の実施形態は、本発明の様々な態様を作成、使用、および実装するための特定の方法を単に例示しているに過ぎず、特に断らない限り、必ずしもその範囲を限定しない。
【００１３】
以下の様々な実施例は、特定のコンテキスト、すなわち、周辺コンポーネント相互接続エクスプレス(PCIe)バス規格ファブリックで説明される。しかしながら、理解されるように、そのような実施例は、他のファブリック(例えば、リソース制限を有する上下逆ツリー(upside down tree)トポロジー)をさらに拡張してもよい。
【００１４】
本明細書で説明するように、ルートコンプレックスは、PCIeファブリックと、ホスト中央処理装置(CPU)との間のブリッジとしての機能を果たすハードウェア構成である。ルートコンプレックスは、CPUの一部として統合されてもよい。例えば、図5は、CPU500の一部としてルートコンプレックス502を示している。ルートコンプレックスは、CPUと、同一のPCIeファブリック(例えば、PCIeファブリック504)に接続されたデバイス(例えば、デバイス506および508)との間の様々な要求を管理し、かつ転送する。ルートコンプレックスは、PCIeメモリ空間上に、様々な接続されたデバイス(レジスタおよびメモリロケーションのようなデバイス記憶場所を含む)をさらにマッピングする。マッピングおよびメモリ空間のこれらのタイプは、メモリマップト入力/出力(MMIO)空間として知られる。
【００１５】
さらに、本明細書で使用されるように、MMIO空間は、32ビットアドレスを使用してアドレス可能なメモリの一部分を含んでもよく、一般にMMIO空間の第1の4GBに制限される。MMIO空間は、64ビットアドレスを使用してアドレス可能なメモリの一部分をさらに含んでもよく、第1の4GBの上のMMIO空間にマッピングされてもよい。本明細書で説明される様々な実施例は、ホストPCIeファブリックのエンドポイントの一部として、1以上の追加のルートコンプレックスハードウェア構造を含む。ルートコンプレックス機能をエンドポイント(ルートコンプレックスエンドポイント(RCEP)と呼ばれる)に追加することによって、追加のPCIeファブリックは、ホストPCIeの有限リソースに限定されない拡張PCIeファブリックを形成するように接続されてもよい。
【００１６】
例えば、図5は、追加のエンドポイント(例えば、デバイス512および514)をホストCPU500に接続するRCEP508および拡張PCIeファブリック510を示している。様々な実施例によれば、これらのRCEPは、障害を、ファブリックまたはデバイスに隣接する汚染から単離するために使用されてもよい。さらに、他の実施例は、既存の周辺デバイスドライバと互換性があるRCEPsおよび拡張PCIeファブリックを提供し、従って、既存のデバイスドライバへのソフトウェア更新のいかなる必要性も排除する。
【００１７】
図1は、様々な実施例に基づく拡張PCIeファブリック118に接続された第1レベルPCIeファブリック100のブロック図を示している。PCIeファブリック100は、ホストCPUと、PCIeファブリック100に接続された様々なデバイスとの間の様々な要求を管理し、かつ転送するホストルートコンプレックス102を備えてもよい。一般に、ルートコンプレックス102は、256の固有のバス番号のセットと、MMIO空間とを所有しており、かつそれは、様々な接続されたデバイス(それらに関連するレジスタおよび/またはメモリーハードウェアを含む)を、そのMMIO空間にマッピングする。さらに、ルートコンプレックス102は、ホストCPUと、PCIeファブリック100(例えば、エンドポイント106および108)に接続されたデバイスとの間で、PCI対PCI接続を可能にするハードウェアブリッジ構造であるルートポート103を含んでもよい。図1は、1つのみのルートポート103を有するとするルートコンプレックス102を示しているが、典型的ルートコンプレックス102は、複数のルートポート103(例えば、4つから6つのルートポート)を有してもよい。
【００１８】
図1に示されるように、ルートコンプレックス102は、ルートポート103およびスイッチ104を介して、電気的にエンドポイント106および108に接続されている。典型的には、エンドポイント106および108は、PCIeファブリック100の末端部を成す構造である。そのようなエンドポイント106および108は、ストレージデバイスと、ネットワークデバイスと、サウンドカードと、ビデオカード等とを含んでもよい。図1には、スイッチ104が示されており、様々なエンドポイント(例えば、106および108)をルートコンプレックス102に相互接続している少なくとも1つのアップストリームポート(ポート104A)および多数のダウンストリームポート(例えば、ポート104B)を含んでもよい。本明細書において一般に使用されるように、アップストリームポートは、ホストルートコンプレックス(例えば、ルートコンプレックス102)に向かってポイントするポートを示し、一方で、ダウンストリームポートは、それから離れてポイントするポートを示している。
【００１９】
スイッチ104は、複数のデバイスが単一のルートポート103に接続することを可能にする内部バスを含んでもよく、一方でさらに、PCIe規格によって使用されるポイントツーポイントのシリアル接続を維持する。図1は、2つのエンドポイント106および108をルートポート103に接続する1つのスイッチ104を示しているに過ぎないが、様々な実施例は、任意の数のスイッチに接続される複数のルートポートを意図しており、各スイッチは、任意の様々な数のエンドポイントに接続されてもよい。あるいは、または組み合わせて、ルートポート103は、エンドポイントに直接接続されてもよい。従って、本明細書における図1または他の図面に示される構成は、例示目的のみであり、他の方法で明示的に主張されない限り、本発明の範囲を制限またはそうでなければ狭めることを意図していない。
【００２０】
図1に示されるように、実施例によれば、エンドポイント106は、ルートコンプレックスエンドポイント(RCEP)であってもよく、拡張PCIeファブリック118と、第1レベルPCIeファブリック100との間のハードウェアブリッジを提供する。すなわち、RCEP106は、拡張PCIeファブリック118をホストしてもよい。このような実施形態によれば、RCEP106は、ホストルートコンプレックス(例えば、ルートコンプレックス102)にビルド(build)およびロジックにおいて類似してもよい。このように、RCEP106は、ルートコンプレックス102のものから別けられたそれ独自のバス番号のセット、PCIeコンフィギュレーション空間、およびMMIO空間を含んでもよい。従って、ルートコンプレックス102が、利用可能なリソース(例えば、バス番号)の十分な量を有していないときであっても、追加のデバイスは、RCEP106に接続されてよい。
【００２１】
例えば、エンドポイント114および116は、スイッチ112およびルートポート110を介してRCEP106に電気的に接続されてもよい。上述のように、エンドポイント114および116は、ストレージデバイス、ネットワークデバイス、サウンドカード、およびビデオカード等を含む、ほとんど任意のタイプの周辺デバイスであってもよい。前述のPCIeファブリックと同様に、エンドポイント114および116は、単に拡張PCIeファブリック118の末端部を成してもよい。あるいは、さらに実施例によれば、エンドポイント114および/または116は、それ独自のバス番号のセットおよびMMIO空間を有している別のRCEPを含んでもよく、従って、別の拡張PCIeファブリックを形成する。従って、RCEPは、基本的にPCIeエンドポイントにゲートウェイ機能を追加し、従って、理論的には、ホストルートコンプレックスに取り付けられるノードの事実上無限の数を可能にする。
【００２２】
図1は、1つのルートポイント110、1つのスイッチ112、並びに2つのエンドポイント114および116のみを有するような拡張PCIeファブリック118を示しているが、様々な実施形態は、複数のルートポート、拡張ファブリックごとの複数のスイッチ、およびスイッチごとの複数のエンドポイントを有する拡張PCIeファブリックを含んでもよい。
【００２３】
実施例によれば、RCEP106のMMIOは、32ビットアドレス(32ビットメモリ空間と呼ばれる)を使用するアドレス可能な一部分と、64ビットアドレス(64ビットメモリ空間と呼ばれる)を使用する一部分とを有してもよい。このような実施形態によれば、RCEP106のPCIeコンフィギュレーション空間、32ビットメモリ空間、および64ビットメモリ空間は、ホストPCIeファブリック100の64ビットMMIO空間(すなわち、64ビットアドレスを使用してアドレス可能なPCIeファブリック100のMMIO空間の一部分)にマッピングされてもよい。従って、このような実施形態によれば、RCEP106は、ホストPCIeファブリック100のMMIO空間からアクセスされてもよい。RCEP106の拡張ファブリックのマッピングと列挙は、RCEP106と関連付けられたエンドポイントドライバを使用して行われてもよく、以下により詳細に説明される。
【００２４】
他の実施例によれば、RCEP106は、その下流デバイス(例えば、エンドポイント114および116)で発生する任意の障害を解決する障害処理メカニズムをさらに含んでもよい。従って、このような実施形態において、障害が、RCEP106によって含まれ、かつ上流のPCIeファブリック100に伝播しないように、かつRCEP106が、障害境界として作用してもよい。さらに、RCEP106は、ホストルートコンプレックス102に任意の障害を通知するために、エラー割込みを生成してもよい。このような実施形態において、これらのエラー割込みは、報告メカニズムとして使用されてもよく、かつRCEP106の下流デバイスで発生する任意のPCIe障害は、RCEP106によって処理されてもよく、かつ上流のホストルートコンプレックス102に渡されなくてもよい。エラー割込み報告と障害処理についての具体的な詳細は、特定の実装である場合があり、かつコンピューティングプラットフォーム/ルートコンプレックス間で異なる場合がある。例えば、現在のPCIe規格は、コンピューティングプラットフォーム/ルートコンプレックスの異なる様々なベンダ固有の実装にオープンな障害をルートコンプレックスがどのように処理するのかについての実装詳細を無視している。従って、RCEP106の障害処理およびエラー報告メカニズムの実装詳細は、適用可能なコンピューティングプラットフォーム/ルートコンプレックス構成に応じて、異なる実装に同様にオープンであってもよい。
【００２５】
拡張ファブリック118のためのPCIeコンフィギュレーション空間にマッピングし、かつアクセスすることは、任意の適切な構成を使用して行われてもよい。例えば、図2Aおよび2Bは、PCIコンフィギュレーション空間にアクセスするためにMMIOを使用してサポートする実施例に基づくPCIeコンフィギュレーション空間マッピングおよびアクセスの実施例を示している。一般に、物理アドレス空間200は、ホストCPUの物理アドレス空間であり、例えば、サイズが2n-1バイト(“n”は、ホストCPUによって実行される物理アドレスビットの数である)であってもよい。図示されるように、物理アドレス空間200は、64ビット物理アドレスを介してアドレス可能な残りの一部分204とともに、32ビット物理アドレスを介してアドレス可能な空間の一部分202を含んでもよい。このような実施形態において、一部分202は、アドレス空間200の第1の4GBを占めてもよい一方で、一部分204は、アドレス空間200の残りを占めてもよい。さらに、一部分204は、ホストである第1レベルPCIeファブリック(例えば、PCIeファブリック100)の64ビットMMIO空間に割り当てられた一部分206をさらに含んでもよい。当然ながら、他のメモリ割り当て、構成、およびPCIeファブリックへのMIMO空間のマッピングは、本明細書で意図され、従って、本明細書に記載された任意の特定の実装が、特に明示的に主張されない限り、例示目的のみに使用される。
【００２６】
実施例によれば、PCIeファブリック100に接続されるデバイスの全ての機能(または任意の一部分)、すなわち拡張ファブリック118は、それらそれぞれのファブリック専用の256MBのコンフィギュレーション空間にマッピングされてもよい。そのような空間は、例えば、特定のデバイス機能のための8ビットPCIバス、5ビットデバイス、および3ビット機能番号を知ることによって、アドレス可能であってもよい。機能アドレッシングのこのタイプは、バス/デバイス/機能(BDF)アドレッシングとして本明細書に言及されてもよく、各PCIeファブリックについて、合計256バス番号、32デバイス、および8機能を可能にする。一般に、このような実施形態において、デバイス番号は、PCIeのシリアルポイントツーポイント接続構造によるPCIeバス規格ファブリックに基づいて、0に設定されてもよい。さらに、このような実施形態に基づいて、各デバイス機能は、構成レジスタの4KBの権利を有してもよい。
【００２７】
図示されるように、第1レベルPCIeファブリック(例えば、ファブリック100)のためのPCIeコンフィギュレーション空間は、空間の一部分202のアドレス空間208の256MBを占めてもよい。このような実施形態において、拡張PCIe(例えば、拡張ファブリック118)のためのPCIeコンフィギュレーション空間は、64ビットMMIO空間206内のアドレス空間210の256MBにマッピングされてもよい。さらに、アドレス空間208または210内の任意のMMIOトランザクションは、それぞれそれらの対応するルートコンプレックスによって、PCIeホストファブリック100または拡張ファブリック118のいずれかのためのPCIeコンフィギュレーションアクセストランザクションとして扱われてもよい。
【００２８】
このような実施形態において、拡張PCIeコンフィギュレーション空間210のアドレスは、ベース値212で開始してもよい。従って、バス番号B、デバイス番号D、および機能番号Fに位置するPCIeデバイス機能のコンフィギュレーション空間レジスタは、例えば、ベース+(B+D+F)*4Kで開始してもよい。あるいは、デバイス空間レジスタをアドレッシングするための他の適切な構成も意図されるが、本明細書におけるBDFアドレッシングの説明は、例示目的のみに使用される。
【００２９】
図2Bは、実施例に基づく、例示のPCIeデバイス物理アドレスフォーマット220を示している。フォーマット220は、ベースフィールド222(例えば、ビットn-1と28の間に位置する)、バスフィールド224(例えば、ビット27と20の間に位置する)、デバイスフィールド226(例えば、ビット19と15の間に位置する)、および機能フィールド228(例えば、ビット14と12の間に位置する)を含んでいてもよい。さらに、このような実施形態において、ビット11から0は、アクセスされるコンフィギュレーション空間レジスタ(例えば、デバイス内に)のオフセットを含んでもよく、例えば、メモリアライメントの目的で含まれてもよい。
【００３０】
拡張PCIeファブリック118のために32ビットメモリ空間にマッピングし、かつアクセスすることは、適切な構成を使用して行われてもよい。例えば、図3Aおよび図3Bは、実施例に基づくPCIe32ビットメモリ空間マッピングおよびアクセスの実施例を示している。一般に、32ビットメモリ空間アクセスは、32ビットアドレスでアクセスされるデバイスレジスタバンクに使用されてもよい。このような実施形態において、対応するトランザクションが、例えば、PCIeパケットヘッダ内に、32ビットPCIeメモリ空間アクセスとしてマークされてもよい。当然ながら、PCIeファブリックへのMIMO空間の他のメモリ割り当て、構成、およびマッピングが、本明細書で意図され、従って、本明細書に記載された任意の特定の実施形態は、唯一に特に明示的に主張されない限り、例示目的のみに使用される。
【００３１】
現在のPCIe規格の下では、32ビットアドレス空間の最大化サイズは4GBである。さらに、現在のPCIe規格によれば、特定のコンピューティングプラットフォーム(例えば、x86プラットフォーム)上で、第1レベルPCIeファブリック100のための32ビットメモリは、そのPCIeコンフィギュレーション空間と共有されてもよく、従って、サイズが256MBのみであってもよい。
【００３２】
実施例によれば、拡張PCIeファブリック118は、ホストCPUの物理アドレス空間200から別けられたそれ独自の32ビットメモリ空間を有してもよい。さらに、図3Aに示されるように、RCEP106は、メモリ空間302によって示されるように、拡張ファブリック118の32ビットアドレス空間を、ホストの64ビットMMIO空間206上の高い64ビットアドレスウィンドウにマッピングしてもよい。このような実施形態において、メモリ空間302は、第1レベルファブリック(例えば、PCIeファブリック100)のための32ビットメモリ空間300から別けられてもよい。さらに、メモリ空間300は、ホストCPUの32ビットのアドレス可能な空間202に位置付けられてもよく、PCIeコンフィギュレーション空間208と同じ下位4G空間内であってもよい。図示されるように、メモリ空間302は、ベースアドレス304で開始し、かつサイズは4GBまでであってよい。従って、このような実施形態によれば、デバイスレジスタバンク(例えば、レジスタバンク308)は、レジスタバンクの適切なオフセット(例えば、オフセット306)を知ることによってアドレッシングされてもよい。すなわち、レジスタバンク308のアドレスは、ベース304+オフセット306であってよい。あるいは、レジスタバンク308をアドレッシングするための他の適切なスキームも意図される。
【００３３】
図3Bは、実施例に基づくホストアドレス空間および拡張ファブリックアドレス空間のためのレジスタバンク物理アドレスフォーマット310および312をそれぞれ示している。フォーマット310は、ベースフィールド314(例えば、ビットn-1から32を占有する)およびオフセットフィールド316(例えば、ビット31から0を占有する)を含んでもよい。このような実施形態において、フォーマット310が、MMIO空間206にマッピングされたデバイスレジスタバンクをアドレッシングするために使用されてもよい。フォーマット312は、拡張ファブリック(例えば、ファブリック118)上でデバイスレジスタバンクをアドレッシングするために、オフセットフィールド318(例えば、32ビットを占有する)を含むのみであってもよい。さらに、拡張ファブリック118にPCieパケットを配置する前に、RCEP106は、上位32ビットフォーマット310(64ビット長であってもよい)を取り除い(strip)てもよく、かつ取り除かれたPCIeパケットを32ビットアドレスパケットとしてマークしてもよい。
【００３４】
拡張PCIeファブリック118のために、64ビットメモリ空間をマッピングし、かつアクセスすることは、任意の適切な構成を使用して行われてもよい。例えば、図4Aおよび図4Bは、実施例に基づく64ビットメモリ空間マッピングおよびアクセスの実施例を示している。一般に、64ビットメモリ空間アクセスは、64ビットアドレスまたは32ビットアドレスでアクセスされうるデバイスレジスタバンクのために使用されてもよい。なお、32ビットアドレス範囲が64ビットアドレスに割り当てられている場合、PCIeハードウェアは、アクセスするために、32ビットPCIメモリ空間構成スキームを使用してもよい(例えば、図3Aおよび図3Bに記載されている構成)。このような実施形態において、対応するトランザクションが、PCIeパケットヘッダ内に64ビットPCIeメモリ空間アクセスとしてマークされてもよい。また、ヒストリカルな理由のために、64ビットメモリ空間は一般に、物理アドレス空間の下位4GBの上に位置付けられてもよい。当然ながら、PCIeファブリックへのMIMO空間の他のメモリ割り当て、構成、およびマッピングは、本明細書で意図され、従って、本明細書において記載される任意の特定の実施形態は、唯一に特に明示的に主張されない限り、例示目的のみに使用される。
【００３５】
このような実施形態において、拡張PCIeファブリック118は、ホストCPUの物理アドレス空間200から別けられたそれ独自の64ビットメモリ空間を有してもよい。図4Aに示されるように、RCEP106は、メモリ空間402によって示されるように、拡張ファブリック118の64ビットアドレス空間をホストCPUの64ビットMMIO空間206にマッピングしてもよい。さらに、メモリ空間402は、第1レベルファブリック100の64ビットPCIeメモリ空間400から別けられていてもよく、64ビットMMIO空間206に位置付けられてもよい。このような実施形態において、メモリ空間402は、ベースアドレス404で開始してもよく、かつ例えば、サイズは4GBのm倍であってもよい(mは定数であり、空間402は4GBの1倍以上のサイズを有してもよいことを示す)。さらに、デバイスレジスタバンク(例えば、レジスタバンク408)は、レジスタバンクの適切なオフセット(例えば、オフセット406)を知ることによってアドレッシングされてもよい。従って、このような実施形態によれば、レジスタバンク408のアドレスは、ベース404+オフセット406であってもよい。あるいは、レジスタバンク408をアドレッシングするための他の適切なスキームも意図される。
【００３６】
図4Bは、実施例に基づくホストCPUアドレス空間および拡張ファブリックアドレス空間のためのレジスタバンク物理アドレスフォーマット410および416/418をそれぞれ示している。フォーマット410は、ベースフィールド412(例えば、ビットn-1からpを占有する)と、オフセットフィールド414(例えば、ビットp-1から0を占有する)とを含んでもよい。定数pの値は、32+ln(m)であってもよく、次の最大整数値に丸められてもよい。フォーマット410は、64ビットMMIO空間206にマッピングされたデバイスレジスタバンクをアドレッシングするために使用されてもよい。
【００３７】
特定の実施例では、拡張ファブリック118上のデバイスレジスタバンクをアドレッシングすることが、フォーマット416を使用して行われてもよい。例えば、もしベース物理アドレスが拡張ファブリック118のメモリ空間構成にアラインされたサイズである場合に、フォーマット416が使用されてもよい。フォーマット416を使用して、RCEP106は、拡張ファブリック118のための64ビットアドレスを形成するために、フォーマット410の上位ビット(例えば、63ビットからpビット)を取り除いてもよい。他の実施例では、もしベース物理アドレスが拡張ファブリック118のメモリ空間にアラインされたサイズでない場合、フォーマット418が使用されてもよい。このような実施形態では、物理アドレスの不整合(non-alignment)を補償するために、オフセット420が、64ビットシステムベースアドレス422に追加されてもよい。さらに、もしベースアドレスが、アラインされた少なくとも4GB(例えば、下位32ビットが0)である場合、サイズの調整は、ベースアドレスの上位32ビットのために実行されるのみであってもよい。
【００３８】
実施例において、拡張ファブリック118のPCIeコンフィギュレーション空間210、32ビットメモリ空間302、および64ビットメモリ空間402は、ホストCPUにおいて重複してもよい。このような実施形態では、RCEP106は、ホストCPUから、すべての必要なアドレス範囲(例えば、空間210、302、および402)を収容するのに十分に大きい共通マッピングウィンドウを要求してもよく、次いで、RCEP106は、必要に応じて、共通マッピングウィンドウを、様々な必要なアドレス範囲に分割してもよい。
【００３９】
実施例によれば、拡張ファブリック118は、デバイス割込みをサポートしてもよく、任意の適切な方法を使用して処理されてもよい。例えば、拡張ファブリック118は、メッセージ形式の割込み(MSI)構成を使用してもよい。このような実施形態において、拡張ファブリック118に接続されたデバイス(例えば、エンドポイント114および116)から発生するMSIは、PCIeバス規格によれば、適用可能なルートポート(例えば、ルートポート110)に配信されてもよい。さらに、RCEP106のルートポート110は、MSIのために事前に割り当てられたアドレスウィンドウを有してもよい。このような実施形態において、メモリ書き込みアドレスが、事前に割り当てられたMSIアドレスウィンドウに一致するとき、トランザクションは、割り込みとして認識されてもよい。また、ルートポート110は、その下流のファブリックから発生するMSIを全て収集し、かつそれらをキューに配置してもよい(キューは、物理アドレス空間200内のホストCPUのメモリに位置付けられてもよい)。次いで、ルートポート110は、その上流ルートポート(例えば、ホストルートポート103)に、MSIであってもよい別個の割込みをシグナリングしてもよい。次いで、ホストルートポート102は、受信された割込みに基づいて、適切なソフトウェアハンドラをトリガしてもよい。次いで、RCEP106のルートポート110の割込みハンドラは、メインメモリ内のMSIキューを調べ、発信デバイス(例えば、エンドポイント114または116)を決定し、かつデバイスドライバの適切な割込みハンドラをディスパッチしてもよい。当然ながら、デバイス割込みを処理する他のスキームは、本明細書で意図され、従って、本明細書に記載の任意の特定の実施形態は、唯一に特に明示的に主張されない限り、例示目的のみに使用される。
【００４０】
他の実施例によれば、拡張ファブリック118は、ダイレクトメモリアクセス(DMA)をサポートしてもよく、任意の適切な方法を使用して処理されてもよい。このような実施形態では、DMAトランザクションは、読み取り要求、読み取り補完、および書き込み要求を含んでもよい。PCIeパケットは、システム物理アドレス、またはIOMMU(入力/出力メモリ管理ユニット)によって変換されるIO(入力/出力)仮想アドレスを搬送してもよい。また、PCIeリクエスタIDは、ファブリックごとであってもよい。従って、リクエスタIDは、要求がPCIeファブリック境界を渡り、かつ上流のホストPCIeファブリック100に行くとき、RCEP106のIDと置き換えられてもよい。すなわち、拡張ファブリック118上で、リクエスタIDは、エンドポイントデバイス(例えば、エンドポイント114または116)のIDであってもよい。要求が上流のルートコンプレックス102に転送されるとき、リクエスタIDは、RCEP106のIDと置き換えられてもよい。
【００４１】
このような実施形態において、DMA書き込みは、デバイス(例えば、エンドポイント114または116)からホストCPUのメモリへの移動データを示す。RCEP106は、要求が上流へRCEP106によってルートコンプレックス102およびホストCPUに渡されるとき、デバイスIDを、RCEP106のIDで置き換えられてもよい。さらに、DMA読み取りは、ホストCPUのメモリからデバイスへの移動データを示す。このような実施形態において、RCEP106は、トランザクションのためのトランザクションタグを(例えば、要求パケットの一部として)ファブリック100に割り当てることによって、全ての読み取り要求を追跡するために、ハードウェアスコアボードを利用してもよい。これらのトランザクションタグは、RCEP106のスコアボードエントリにリンクされてもよく、かつ拡張ファブリック118上で発生する読み取り要求パケットのリクエスタIDを記録するために使用されてもよい。ルートコンプレックス102からRCEP106によって受信される完了データは、このような実施形態に基づいて対応する読み取り要求と同一のトランザクションタグを搬送してもよい。従って、このような実施形態において、トランザクションタグは、拡張ファブリック118上で使用される適切なデバイスIDを決定するために、スコアボードエントリと照合するために使用されてもよい。当然ながら、DMA要求を処理するための他のスキームが、本明細書で意図され、従って、本明細書に記載される任意の特定の実施形態は、唯一に特に明示的に主張されない限り、例示目的のみに使用される。
【００４２】
従って、上述した段落の実施例に記載された様々なPCIeコンフィギュレーションアクセス、メモリアクセス、DMA、割込みメカニズムを使用して、RCEPデバイスは、拡張PCIeファブリックをホストし、かつ追加のデバイス(例えば、追加のRCEPデバイスおよび/または周辺デバイス)をホストルートコンプレックスに接続するために使用されてもよい。RCEPデバイスは、典型的なPCIeルートコンプレックスロジックと同様であってもよい。各拡張PCIeファブリックは、それ独自のMMIO空間およびバス番号のセットを有してもよい。従って、ホストCPUに接続される全ての取り付けられ得るデバイスの総数は、ホストPCIeファブリックの利用可能なバス番号の数に限定されなくてもよい。このような実施形態において、アクセスを容易にするために、各拡張ファブリックのMMIO空間は、その親ファブリック(例えば、拡張ファブリック118のための親ファブリックは第1レベルファブリック100である)の64ビットMMIO空間にマッピングされてもよい。さらに、拡張ファブリックのファブリックの列挙は、RCEPエンドポイントデバイスドライバを介して達成されてもよい。このような実施形態において、各RCEPは、適用可能な拡張ルートコンプレックスファブリック上で発生する障害を処理してもよい。従って、下流のファブリック障害が拡張PCIeファブリックのファブリック境界でインターセプトされ、かつ上流に伝播されないようにするために、障害単離が達成されてもよい。
【００４３】
実施例によれば、ほぼすべての周辺デバイス(例えば、サウンドカード、ビデオカード、ネットワークドライバ、およびメモリカード等)が、拡張ファブリックに接続されてもよく、かつそれらのドライバソフトウェアを変更する必要がない。このような実施形態において、拡張PCIeファブリックが、第1レベルPCIeファブリックと同一の方法で周辺デバイスと相互作用する。さらに、ホストCPUのソフトウェア(例えば、オペレーティングシステム)およびRCEPドライバが、レジスタマッピング、DMAアドレスマッピングを設定するために修正および/または作成されてもよく、RCEPを介して割込みハンドラおよび他の同様な機能を実行してもよい。従って、周辺デバイスに、それらが第1レベルPCIeファブリックの代わりに拡張PCIeファブリックに接続されていることを通知する必要はない。従って、拡張PCIeファブリックおよびRCEPは、既存の周辺デバイスドライバと互換性を有してもよい。
【００４４】
本発明は、説明に役立つ実施例を参照して説明されたが、この説明は、限定的な意味に解釈されることを意図していない。説明に役立つ実施例の様々な修正および組み合わせ並びに発明の他の実施形態は、説明を参照すれば、当業者には明らかであろう。従って、添付の特許請求の範囲は、任意のそのような修正または実施形態を包含することが意図される。
【符号の説明】
【００４５】
１００    PCIeファブリック
１０２    ルートコンプレックス
１０３    ルートポート
１０４    スイッチ
１０４Ａ  アップストリームポート
１０４Ｂ  ダウンストリームポート
１０６    エンドポイント
１０８    エンドポイント
１１０    ルートポート
１１２    スイッチ
１１４    エンドポイント
１１６    エンドポイント
１１８    拡張ファブリック
【図１】
2018125028.tif 000003
【図２Ａ】
2018125028.tif 000004
【図２Ｂ】
2018125028.tif 000005
【図３Ａ】
2018125028.tif 000006
【図３Ｂ】
2018125028.tif 000007
【図４Ａ】
2018125028.tif 000008
【図４Ｂ】
2018125028.tif 000009
【図５】
2018125028.tif 000010
【手続補正書】
【提出日】平成30年4月11日(2018.4.11)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
拡張周辺コンポーネント相互接続エクスプレス(PCIe)システムにおいて、
ホストルートコンプレックスを含むホストPCIeファブリックであって、前記ホストPCIeファブリックは、ホスト中央処理装置(CPU)上に、バス番号の第1のセットおよび第1のメモリマップト入力/出力(MMIO)空間を有する、ホストPCIeファブリックと、
前記ホストPCIeファブリックのエンドポイントであるルートコンプレックスエンドポイント(RCEP)を含む拡張PCIeファブリックであって、前記拡張PCIeファブリックは、前記バス番号の第1のセットおよび前記第1のMMIO空間からそれぞれ別けられたバス番号の第2のセットおよび第2のMMIO空間を有する、拡張PCIeファブリックと
を含むPCIeシステム。
【請求項２】
前記RCEPは、前記拡張PCIeファブリックと前記ホストPCIeファブリックとの間のブリッジである、請求項1に記載のPCIeシステム。
【請求項３】
前記第2のMMIO空間は、前記第1のMMIO空間にマッピングされる、請求項1または2に記載のPCIeシステム。
【請求項４】
前記拡張ファブリックの32ビットメモリ空間は、前記第1のMMIO空間の64ビットMMIO空間にマッピングされ、
前記拡張ファブリックの64ビットメモリ空間は、前記第1のMMIO空間の64ビットMMIO空間にマッピングされ、または
前記拡張PCIeファブリックのPCIeコンフィギュレーション空間は、前記第1のMMIO空間の64ビットMMIO空間にマッピングされる、請求項1から3のいずれか一項に記載のPCIeシステム。
【請求項５】
前記拡張PCIeファブリックの各デバイス機能が、前記64ビットMMIO空間の各4キロバイトにマッピングされる、請求項4に記載のPCIeシステム。
【請求項６】
前記拡張PCIeファブリックに関連付けられた各デバイス機能のためのコンフィギュレーションレジスタが、ベース/デバイス/機能アドレッシングを使用してアドレッシングされるように構成される、請求項4に記載のPCIeシステム。
【請求項７】
バス番号の前記第2のセットは、前記拡張PCIeファブリックのための256までの固有のバス番号を含む、請求項1から6のいずれか一項に記載のPCIeシステム。
【請求項８】
前記RCEPは、前記拡張PCIeファブリックに由来する障害を隔離するように構成される、請求項1から6のいずれか一項に記載のPCIeシステム。
【請求項９】
前記拡張PCIeファブリックは、前記ホストPCIeファブリックと同様に周辺デバイスと対話する、請求項1から6のいずれか一項に記載のPCIeシステム。
【請求項１０】
拡張PCIeファブリックを備える周辺コンポーネント相互接続エクスプレス(PCIe)システムであって、前記拡張PCIeファブリックは、ルートコンプレックスエンドポイント(RCEP)デバイスを備え、前記RCEPデバイスは、第1レベルPCIeファブリックのエンドポイントであるように構成され、かつ前記拡張PCIeファブリックは、メモリマップト入力/出力(MMIO)空間と、バス番号のセットとを含む、PCIeシステム。
【請求項１１】
前記MMIO空間は、前記第1レベルPCIeファブリックの64ビットのアドレス可能な物理アドレス空間にマッピングされる、請求項10に記載のPCIeシステム。
【請求項１２】
前記RCEPデバイスは、1以上のルートポートを備える、請求項10または11に記載のPCIeシステム。
【請求項１３】
前記拡張PCIeファブリックは、1以上のエンドポイントを前記RCEPに電気的に相互接続している1以上のスイッチを備える請求項10から12のいずれか一項に記載のPCIeシステム。
【請求項１４】
周辺デバイスを設計するための方法であって、
ホストPCIeファブリックのエンドポイントである拡張周辺コンポーネント相互接続エクスプレス(PCIe)ファブリックをホストするルートコンプレックスエンドポイント(RCEP)デバイスを含むステップであって、前記拡張PCIeファブリックは、前記ホストPCIeファブリックの第2のMMIO空間から別けられた第1のMMIO空間を有する、ステップと、
前記第1のMMIO空間を前記第2のMMIO空間にマッピングするステップと
を含む方法。
【請求項１５】
前記拡張PCIeファブリックは、前記ホストPCIeファブリックのバス番号の第2のセットから別けられた256までの固有のバス番号の第1のセットをさらに含む、請求項14に記載の方法。
【請求項１６】
前記RCEPデバイスによって、前記拡張PCIeファブリック上で発生する下流障害をインターセプトするステップをさらに含む、請求項14または15に記載の方法。
【請求項１７】
前記拡張PCIeファブリックのPCIeコンフィギュレーション空間と、32ビットメモリ空間と、64ビットメモリ空間とを前記第2のMMIO空間にマッピングするステップをさらに含む、請求項14から16のいずれか一項に記載の方法。
【請求項１８】
前記RCEPデバイスによって、メッセージ形式の割込み(MSI)を使用して、前記拡張PCIeファブリック上で発生するデバイス割込みを処理するステップをさらに含む、請求項14から16のいずれか一項に記載の方法。
【請求項１９】
ダイレクトメモリアクセス(DMA)要求が前記ホストPCIeファブリックの上流に転送されるとき、DMA要求内の発信デバイスIDをRCEP IDで置き換えることによって、前記拡張PCIeファブリックに接続されたデバイスからの前記DMA要求を処理するステップをさらに含む、請求項14から16のいずれか一項に記載の方法。
【請求項２０】
拡張周辺コンポーネント相互接続エクスプレス(PCIe)ファブリックであって、
ホストPCIeファブリックのエンドポイントとして、かつ前記拡張PCIeファブリックと前記ホストPCIeファブリックの間のブリッジとして構成されたルートコンプレックスエンドポイント(RCEP)デバイスと、
前記拡張PCIeファブリックの第1のメモリマップト入力/出力(MMIO)空間と、前記拡張PCIeファブリックのバス番号のセットとで構成されたリソースであって、前記第1のMMIO空間は、前記ホストPCIeファブリックの第2のMMIO空間から別けられている、リソースと
を含む拡張PCIeファブリック。
【請求項２１】
前記第1のMMIO空間は、前記ホストPCIeファブリックの前記第2のMMIO空間にマッピングされる、請求項20に記載の拡張PCIeファブリック。
【請求項２２】
前記拡張PCIeファブリックのPCIeコンフィギュレーション空間は、前記ホストPCIeファブリックの前記第2のMMIO空間にマッピングされる、請求項20に記載の拡張PCIeファブリック。
【請求項２３】
前記拡張PCIeファブリックのエンドポイントは、追加の拡張PCIeファブリックの追加のRCEPデバイスであり、前記追加の拡張PCIeファブリックは、前記ホストPCIeファブリックのホストルートコンプレックスのリソースによって提供される前記ホストPCIeファブリックの容量と、前記拡張PCIeファブリックの前記RCEPのリソースによって提供される前記拡張PCIeファブリックの容量とを超えて、追加のデバイスを前記ホストCPUに接続することを可能にする追加のバス番号セットを含む、請求項20に記載の拡張PCIeファブリック。
【請求項２４】
周辺コンポーネント相互接続エクスプレス(PCIe)ファブリックを拡張するためのシステムであって、
ホストルートコンプレックスを含むホストPCIeファブリックであって、前記ホストPCIeファブリックは、バス番号の第1のセットを有する、ホストPCIeファブリックと、
ルートコンプレックスエンドポイント(RCEP)を含む拡張PCIeファブリックであって、前記RCEPは、前記拡張PCIeファブリックと前記ホストPCIeファブリックとの間のブリッジであり、前記拡張PCIeファブリックは、バス番号の前記第1のセットから別けられたバス番号の第2のセットを有する、拡張PCIeファブリックと、
前記ホストルートコンプレックスを介して前記ホストPCIeファブリックに接続された複数のエンドポイントであって、前記RCEPは、前記複数のエンドポイントのうちの1つのエンドポイントである、複数のエンドポイントと
を含む、システム。
【請求項２５】
前記システムは、前記RCEPを介して前記拡張PCIeファブリックに接続される複数のエンドポイントをさらに含む、請求項24に記載のシステム。
【請求項２６】
前記RCEPは、前記拡張PCIeファブリックに由来する障害を隔離するように構成される、請求項24または25に記載のPCIeシステム。
【請求項２７】
周辺デバイスのための方法であって、
ルートコンプレックスエンドポイント(RCEP)によって、第1のメモリマップト入力/出力(MMIO)空間と、バス番号の第1のセットとを有する拡張周辺コンポーネント相互接続エクスプレス(PCIe)ファブリックホストするステップであって、前記RCEPは、ホストPCIeファブリックのエンドポイントとして構成される、ステップと
前記拡張PCIeファブリックの前記第1のMMIO空間を、前記ホストPCIeファブリックの第2のMMIO空間にマッピングするステップであって、前記第1のMMIO空間は、前記第2のMMIO空間から別けられており、前記拡張PCIeファブリックは、バス番号の第1のセットを含み、前記ホストPCIeファブリックは、バス番号の前記第1のセットとは別けられたバス番号の第2のセットを含む、ステップと
を含む方法。
【請求項２８】
前記RCEPは、前記拡張PCIeファブリックと前記ホストPCIeファブリックとの間のブリッジである、請求項27に記載の方法。
【請求項２９】
前記RCEPデバイスによって、前記拡張PCIeファブリック上で発生する下流障害をインターセプトするステップをさらに含む、請求項27に記載の方法。
【外国語明細書】
2018125028000001.pdf