(57)【要約】システムホスト（２）はローカルデバイス（６）に対するコマンドを要求し、ローカルホスト（１０）は要求されたコマンドを解釈してローカルデバイス（６）にコマンドを発行する。ローカルデバイス（６）はコマンドの完了の割り込みをローカルホスト（１０）へ通知し、ローカルホスト（１０）はシステムホスト（２）へコマンドの完了を通知する。システムホスト（２）とローカルデバイス（６）とのデータ転送は高機能スイッチ部（８）を介して行い、高機能スイッチ部（８）は、ローカルホスト（１０）側のアドレスをシステムホスト（２）側のアドレスへ変換して、ローカルホスト（１０）とシステムホスト（２）との間でＰＣＩパケットを転送する。
2017154943.tif 000002
【特許請求の範囲】
【請求項１】
システムホストとＰＣＩｅバスで接続される情報処理装置であって、
前記情報処理装置は、
ローカルホストと、高機能スイッチ部と、
を備え、
前記高機能スイッチ部は、
データ入出力ポートとしてのノントランスペアレントポートと、
前記システムホストの通信用の制御レジスタ群と、
を有し、
前記システムホストのＰＣＩｅバスは、前記情報処理装置を経由して、ローカルデバイスに接続され、
前記ノントランスペアレントポートにより、前記システムホスト側のＰＣＩｅバスと、前記ローカルホスト側のＰＣＩｅバスとの、バス番号およびアドレス体系は、それぞれ独立して構成され、
前記制御レジスタ群は、前記ローカルホストからは直接制御され、前記システムホストからは前記システムホスト側のメモリ空間上にマッピングされ、
前記ローカルホストは、
前記システムホストから前記システムホスト側の前記メモリ空間上にマッピングされた前記制御レジスタ群に要求されたコマンドを解釈して、前記ローカルデバイスに対して前記コマンドを発行し、
前記ローカルデバイスからの、前記コマンドの完了の割り込みを受信し、
前記制御レジスタ群を通じて前記システムホストへ前記コマンドの完了を通知し、
前記システムホストと前記ローカルデバイスとの間のデータ転送は、前記高機能スイッチ部を介して行われ、
前記高機能スイッチ部は、前記ローカルホスト側のアドレスおよびリクエスタＩＤを、前記システムホスト側のアドレスおよびリクエスタＩＤへ変換して、前記ローカルデバイスとシステムホスト側との間で、ＰＣＩｅパケットを転送する、
情報処理装置。
【請求項２】
前記高機能スイッチ部は、前記ローカルデバイスの前記情報処理装置への挿抜を検出する挿抜検出部を、さらに備え、
前記挿抜検出部は、前記ローカルデバイスの挿抜発生時において、挿抜の発生を前記ローカルホストへ通知し、
前記ローカルホストは、挿抜発生の割り込みを、前記制御レジスタ群を介して前記システムホストに通知する、
請求項１に記載の情報処理装置。
【請求項３】
前記ローカルホストは、前記ローカルデバイスの挿入後に、接続された前記ローカルデバイスを確認することで転送方式を決定し、決定された前記転送方式に応じて、
前記システムホストから前記システムホスト側の前記メモリ空間上にマッピングされた前記制御レジスタ群に要求されたコマンドを解釈して、前記ローカルデバイスに対して前記コマンドを発行する場合と、
前記システムホストから前記システムホスト側の前記メモリ空間上にマッピングされた前記制御レジスタ群に要求されたコマンドを、直接、前記ローカルデバイスに対して前記コマンドを発行する場合と、を切り替える、
請求項２に記載の情報処理装置。
【請求項４】
前記転送方式がＮＶＭｅの場合、前記ローカルホストは、前記システムホストから前記システムホスト側の前記メモリ空間上にマッピングされた前記制御レジスタ群に要求されたコマンドを、直接、前記ローカルデバイスに対して前記コマンドを発行し、
前記転送方式がＮＶＭｅでない場合、前記ローカルホストは、前記システムホストから前記システムホスト側の前記メモリ空間上にマッピングされた前記制御レジスタ群に要求されたコマンドを解釈して、前記ローカルデバイスに対して前記コマンドを発行する、
請求項３に記載の情報処理装置。
【請求項５】
前記システムホスト、前記情報処理装置、複数の前記ＰＣＩｅデバイスの通信経路は、前記ＰＣＩｅパケットを等価的に送受信可能に構成される、
請求項１に記載の情報処理装置。
【請求項６】
前記通信経路の前記ＰＣＩｅパケットは、前記アドレスおよび前記リクエスタＩＤに基づいて、前記ＰＣＩパケットをスイッチングするバスで構成される、
請求項５に記載の情報処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、ホストとデバイス間でデータ転送を行う情報処理装置に関する。
【背景技術】
【０００２】
高速シリアルインターフェースとして、ＰＣＩ  Ｅｘｐｒｅｓｓ（登録商標：以下、「ＰＣＩｅ」と記す）が、パーソナルコンピュータなどの様々な電子機器に使用されている。【０００３】
ＰＣＩｅは、例えばビデオサーバをシステムホストとし、メモリカードをローカルデバイスとするシステム構成などに用いられている（例えば、特許文献１から特許文献４参照）。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１４−２５４５号公報
【特許文献２】特開２０１３−４５２３６号公報
【特許文献３】特開２０１３−８８８７９号公報
【特許文献４】特開２０１２−３８０３７号公報
【発明の概要】
【０００５】
本開示は、システムホストとローカルホストとを含むＰＣＩｅバスを用いた情報処理システムにおいて、ローカルデバイスを構成する複数のＰＣＩｅデバイスと、システムホストとの間で、高速のデータ転送を実現するとともに、システムホスト側のリソース不足を解消できる情報処理装置を提供する。
【０００６】
つまり、本開示は、システムホストとＰＣＩｅバスで接続される情報処理装置である。情報処理装置は、ローカルホストと、高機能スイッチ部を備える。高機能スイッチ部は、データ入出力ポートとしてのノントランスペアレントポートと、システムホストの通信用の制御レジスタ群を有する。システムホストのＰＣＩｅバスは、情報処理装置を経由して、ローカルデバイスに接続される。ノントランスペアレントポートにより、システムホスト側のＰＣＩｅバスと、ローカルホスト側のＰＣＩｅバスとの、バス番号およびアドレス体系は、それぞれ独立して構成される。制御レジスタ群は、ローカルホストからは直接制御され、システムホストからはシステムホスト側のメモリ空間上にマッピングされる。ローカルホストは、システムホストからシステムホスト側のメモリ空間上にマッピングされた制御レジスタ群に要求されたコマンドを解釈して、ローカルデバイスに対してコマンドを発行する。ローカルホストは、ローカルデバイスからの、コマンドの完了の割り込みを受信し、制御レジスタ群を通じてシステムホストへコマンドの完了を通知する。システムホストとローカルデバイスとの間のデータ転送は、高機能スイッチ部を介して行われる。高機能スイッチ部は、ローカルホスト側のアドレスおよびリクエスタＩＤを、システムホスト側のアドレスおよびリクエスタＩＤへ変換して、ローカルデバイスとシステムホスト側との間で、ＰＣＩｅパケットを転送するように構成される。
【０００７】
本開示の情報処理装置によれば、システムホストとローカルホストとを含む情報処理システムにおいて、二つのホストのドメインを分離して、ローカルデバイスを構成するＰＣＩｅデバイスとシステムホストとの間のデータ転送を高速で行うことができる。また、複数のＰＣＩｅデバイスと接続する場合、システムホストから見てＰＣＩｅデバイスの接続に必要なレジスタをメモリ空間に適切にマッピングする。これにより、システムホスト側のリソース不足を解消できる。
【図面の簡単な説明】
【０００８】
【図１】図１は、実施の形態１に係る情報処理装置を含む情報処理システムの概略のブロック図である。
【図２】図２は、同実施の形態に係る情報処理装置を含む情報処理システムの詳細なブロック図である。
【図３】図３は、同実施の形態に係る情報処理装置の動作を示すフロー図である。
【図４】図４は、同実施の形態に係る情報処理装置におけるアダプタ初期化処理の動作を示すシーケンス図である。
【図５】図５は、同実施の形態に係る情報処理装置における、ローカルデバイス挿入時の初期化処理の動作を示すシーケンス図である。
【図６】図６は、同実施の形態に係る情報処理装置における、データ転送処理の動作を示すシーケンス図である。
【図７】図７は、同実施の形態に係る情報処理装置における、ローカルデバイス抜去時の処理の動作を示すシーケンス図である。
【図８】図８は、コンフィグレーションレジスタにおけるコンフィグレーション空間（タイプ０）を示す図である。
【図９】図９は、コンフィグレーションレジスタにおけるコンフィグレーション空間（タイプ１）を示す図である。
【図１０】図１０は、リクエスタ（Ｒｅｑｕｅｓｔｏｒ）ＩＤ変換テーブルの例を示す図である。
【図１１】図１１は、機能（Ｃａｐａｂｉｌｉｔｙ）レジスタの説明図である。
【図１２】図１２は、ＭＳＩ（Ｍｅｓｓａｇｅ  Ｓｉｇｎａｌｌｅｄ  Ｉｎｔｅｒｒｕｐｔ）の機能構造（Ｃａｐａｂｉｌｉｔｙ  Ｓｔｒｕｃｔｕｒｅ）の内容を説明する図である。
【図１３】図１３は、同実施の形態におけるアドレス変換テーブルの例を示す図である。
【図１４】図１４は、同実施の形態における、システムホストとローカルデバイス側とにおける、アドレスの対応例を示す図である。
【図１５】図１５は、同実施の形態における、システムホストとローカルデバイス側とにおける、アドレスの対応例を説明する図である。
【図１６】図１６は、実施の形態２に係る情報処理装置を含む情報処理システムの概略のブロック図である。
【図１７】図１７は、同実施の形態に係る情報処理装置を含む情報処理システムの詳細なブロック図である。
【図１８】図１８は、同実施の形態に係る情報処理装置の動作を示すフロー図である。
【図１９】図１９は、同実施の形態に係る情報処理装置におけるアダプタとローカルデバイスの初期化処理の動作を示すシーケンス図である。
【図２０】図２０は、同実施の形態に係る情報処理装置における、アダプタ初期化処理の動作、および、ローカルデバイスのテーブル設定処理の動作を示すシーケンス図である。
【図２１】図２１は、同実施の形態に係る情報処理装置における、マスタ機能部を有する場合のデータ転送処理の動作、および、マスタ機能部を備えない場合のデータ転送処理の動作を示すシーケンス図である。
【図２２】図２２は、同実施の形態における、アドレス変換テーブルの例を示す図である。
【図２３】図２３は、同実施の形態における、システムホストとローカルデバイス側とにおける、アドレスの対応例を示す図である。
【図２４】図２４は、同実施の形態における、システムホストとローカルデバイス側とにおける、アドレスの対応例を説明する図である。
【図２５】図２５は、別の実施の形態における、情報処理装置を含む情報処理システムの概略のブロック図である。
【図２６】図２６は、同実施の形態における、リクエスタ（Ｒｅｑｕｅｓｔｏｒ）ＩＤ変換テーブルの例を示す図である。
【図２７】図２７は、同実施の形態における、デバイス制御レジスタ内の拡張Ｔａｇフィールド有効ビットを説明する図である。
【図２８】図２８は、同実施の形態における、リクエスタＩＤおよびＴａｇを説明する図である。
【図２９】図２９は、さらに別の実施の形態における、情報処理装置を含む情報処理システムの概略のブロック図である。
【発明を実施するための形態】
【０００９】
以下、図面を参照しながら、実施の形態を詳細に説明する。但し、必要以上に詳細な説明は省略する場合がある。例えば、既によく知られた事項の詳細説明や実質的に同一の構成に対する重複説明を省略する場合がある。これは、以下の説明が不必要に冗長になるのを避け、当業者の理解を容易にするためである。
【００１０】
なお、添付図面および以下の説明は、当業者が本開示を十分に理解するために提供されるのであって、これらによって請求の範囲に記載の主題を限定することを意図するものではない。
【００１１】
（実施の形態に至る経緯）
ＰＣＩｅを使用する情報処理システムは、ホスト機能を有するルートコンプレクスが最上位デバイスとして構成される。ルートコンプレクスは、ローカルデバイスを構成するＰＣＩｅデバイスが、ポイント・ツー・ポイントでツリー状に接続される。通常、一つのＰＣＩｅデバイスツリーには、一つのルートコンプレクスのみが接続される。つまり、情報処理システムは、通常、複数のホスト（例えば、システムホストとローカルホスト）をそれぞれのドメインで制御を完全に分離できない。そのため、上記情報処理システムでは、複数のホストが互いの動作を制約する。
【００１２】
そこで、複数のホストをそれぞれのドメインで分離処理するために、データ転送先を分離するアドレスフィルタを設けた情報処理システムがある。しかし、この場合でも、部分的にアドレスをフィルタリングしているのみで、複数のホストの制御を完全に分離することはできない。
【００１３】
また、上記課題を解決するために、ノントランスペアレントポート（以下、「ＮＴポート」と記す）を有するＰＣＩｅスイッチを使用して、複数のホストの制御を分離するシステムが提案されている。つまり、システムホストとローカルホストのそれぞれにルートコンプレクスを設け、互いにＮＴポートを有するＰＣＩｅスイッチを介して接続する。これにより、システム領域（管理領域）を分離した上で、システムホストとローカルホストとの通信を可能にしている。しかし、上記システムの場合、ローカルデバイスからシステムホストへのデータ転送が、ローカルホストによる制御により制限される。そのため、データ転送の速度が、低速化する。
【００１４】
そこで、本実施の形態は、システムホストとローカルホストとを含む情報処理システムにおいて、二つのホストのドメインを分離しながら、ローカルデバイスとシステムホストとの間の高速のデータ転送を実現する情報処理装置を提供する。
【００１５】
また、本実施の形態は、複数のＰＣＩｅデバイスを構成するローカルデバイスと接続する場合、システムホストから見てローカルデバイスの接続に必要なレジスタをメモリ空間に適切にマッピングする。これにより、システムホスト側のリソース不足を解消できる情報処理装置を提供する。
【００１６】
（実施の形態１）
以下、図１から図１５を参照して、実施の形態１の情報処理装置を含む情報処理システムについて説明する。
【００１７】
（１．１．情報処理装置の構成）
まず、本実施の形態の情報処理装置を含む情報処理システムの概略構成について、図１を用いて説明する。
【００１８】
図１は、実施の形態１に係る情報処理装置を含む情報処理システムの概略のブロック図である。
【００１９】
図１に示すように、情報処理システムは、システムホスト２、アダプタ４、および、ローカルデバイス６などで構成される。アダプタ４は、情報処理装置を構成し、高機能スイッチ部８（高機能の表現は必要ですか？）、ローカルホスト１０、スロット１２などを含む。ローカルデバイス６は、ＰＣＩｅデバイスを構成し、不揮発性メモリ１４などを含む。
【００２０】
システムホスト２、アダプタ４、ローカルデバイス６は、ＰＣＩｅバスおよびスロット１２を介して、接続される。
【００２１】
なお、ローカルホスト１０は、アダプタ４の外部や、高機能スイッチ部８の内部などに設けてもよい。また、ローカルデバイス６は、例えばリムーバブルメディアなどで例示されるが、特定の種類に限定されない。
【００２２】
つぎに、情報処理装置を含む情報処理システムの構成について、図２を用いて、詳細に説明する。
【００２３】
図２は、同実施の形態に係る情報処理装置を含む情報処理システムの詳細なブロック図である。
【００２４】
図２に示すように、システムホスト２は、主記憶であるメモリ２０、ＣＰＵなどのプロセッサ２４、および、ルートコンプレクス２２などを備える。
【００２５】
ルートコンプレクス２２は、ＰＣＩｅのツリーのルートとなるデバイスを構成する。ルートコンプレクス２２は、例えばアダプタ４などの端末側へ向かう方向へ設けられたポートであるＤＳＰ（Ｄｏｗｎ  Ｓｔｒｅａｍ  Ｐｏｒｔ）２５を有する。一方、後述するＵＳＰ（Ｕｐ  Ｓｔｒｅａｍ  Ｐｏｒｔ）は、端末側から上流（プロセッサ２４）へ向かう方向へ設けられたポートである。
【００２６】
ローカルデバイス６は、上述の不揮発性メモリ１４の他に、コマンド解析部７６、データ転送部７８、および、ＵＳＰ７４などを備える。コマンド解析部７６は、ＵＳＰ７４から入力されるデータ転送コマンドを受け付けて、その内容を解釈し、データ転送コマンドの内容に応じた処理を行う。データ転送部７８は、コマンド解析部７６で解釈したコマンドがデータ転送を伴うコマンドの場合、ＵＳＰ７４からＰＣＩｅバスを介してデータ転送を行う。なお、ローカルデバイス６は、データ転送を行う際に、自ら主体となってデータ転送を行う機能であるマスタ機能部を備えてもよい。マスタ機能部の詳細は、後述する。
【００２７】
情報処理装置を構成するアダプタ４は、高機能スイッチ部８、ローカルホスト１０などを備える。なお、ローカルホスト１０は、上述したように、外部に設けてもよい。
【００２８】
高機能スイッチ部８は、ＵＳＰのＮＴポート２６（ノントランスペアレントポート）、ＤＳＰのＮＴポート２８、イベント通知部３０、パケット転送部４０、およびＰＣＩｅスイッチ５０などを備える。
【００２９】
なお、ＰＣＩｅを用いた情報処理システムの構成は、通常、上述したように、ルートコンプレクスをルートとするツリー構造の形態を取る。そのため、ＰＣＩｅに接続される全てのデバイスは、ルートコンプレクスからのアクセスが可能となる。しかし、上述のように、基本的に、ＰＣＩｅを用いた情報処理システムは、ホスト毎やデバイス毎のドメインの分離や、複数のルートコンプレクスを設けることができない。
【００３０】
そこで、本実施の形態では、スイッチである高機能スイッチ部８をエンドポイントデバイスとして扱う。これにより、スイッチに繋がる、例えば二つのシステムホストおよびローカルホストのドメインを分離する形態を実現できる。このとき、ＮＴポート２６およびＮＴポート２８が、上記分離形態を実現するポートを構築する。
【００３１】
高機能スイッチ部８のイベント通知部３０は、複数の制御レジスタから成る制御レジスタ群３２、システムホスト割込送信部３４、ローカルホスト割込送信部３６、および、挿抜検出部３８などを備える。制御レジスタ群３２は、システムホスト２とローカルホスト１０とからアクセス可能な通信用のレジスタ群を構成する。制御レジスタ群３２は、システムホスト２とローカルホスト１０との間でメッセージの交換を行うためのレジスタおよびメモリ領域を有する。なお、制御レジスタ群３２は、システムホスト２からアダプタ４への要求コマンドの登録や、アダプタ４からシステムホスト２へのコマンド完了の通知に用いられる。
【００３２】
システムホスト割込送信部３４は、制御レジスタ群３２の特定のレジスタを監視する。そして、システムホスト割込送信部３４は、ローカルホスト１０から特定のレジスタへの書き込みを検出した場合、システムホスト２への割り込みにより、イベントをシステムホスト２に通知する。
【００３３】
ローカルホスト割込送信部３６は、システムホスト割込送信部３４と同様に、制御レジスタ群３２の特定のレジスタを監視する。そして、ローカルホスト割込送信部３６は、システムホスト２から特定のレジスタへの書き込みを検出した場合、ローカルホスト１０への割り込みにより、イベントをローカルホスト１０に通知する。
【００３４】
挿抜検出部３８は、ローカルデバイス６がスロット１２に挿入されているか、抜き去られているかを示す信号線を監視する。そして、挿抜検出部３８は、信号線の状態が変化した時に、ローカルホスト割込送信部３６に対して、ローカルホスト１０への割り込みを要求する。
【００３５】
高機能スイッチ部８のパケット転送部４０は、アドレス変換テーブル４２、ＲｅｑＩＤ変換テーブル４４、アドレス変換部４６、および、ＲｅｑＩＤ変換部４８などを備える。アドレス変換テーブル４２は、アドレス領域における、システムホスト側の体系と、ローカルホスト側の体系との整合を取るための、対応関係を記述するテーブルである。なお、システムホスト側とローカルホスト側のアドレスの体系は、それぞれに対して独立した体系で構成される。なお、上記体系とは、システムホスト側／ローカルホスト側を動作させるためにそれぞれの設定（コンフィグレーション）を完了して初期化が完了した状態を意味する。
【００３６】
ＲｅｑＩＤ変換テーブル４４は、バス番号、デバイス番号、ファンクション番号から構成される。ＲｅｑＩＤ変換テーブル４４は、ＲｅｑＩＤ（Ｒｅｑｕｅｓｔｏｒ  ＩＤ）における、システムホスト側の体系とローカルホスト側の体系との整合を取るための、対応関係を記述するテーブルである。なお、システムホスト側とローカルホスト側のバス番号の体系は、それぞれに対して独立した体系で構成される。
【００３７】
アドレス変換部４６は、システムホストからローカルホスト側へデータを転送する場合、アドレス変換テーブル４２の情報に基づいて、システムホスト側のアドレスをローカルホスト側のアドレスへ変換する。同様に、ローカルホスト側からシステムホスト側へデータを転送する場合、アドレス変換テーブル４２の情報に基づいて、ローカルホスト側のアドレスをシステムホスト側のアドレスへ変換する。
【００３８】
ＲｅｑＩＤ変換部４８は、システムホスト側からローカルホスト側へリクエスタ（Ｒｅｑｕｅｓｔｏｒ）を転送する場合、ＲｅｑＩＤ変換テーブル４４の情報に基づいて、システムホスト側のＲｅｑＩＤをローカル側のＲｅｑＩＤへ変換する。同様に、ローカルホスト側からシステムホスト側へリクエスタを転送する場合、ＲｅｑＩＤ変換テーブル４４の情報に基づいて、ローカルホスト側のＲｅｑＩＤをシステムホスト側のＲｅｑＩＤへ変換する。
【００３９】
なお、図１０に、システムホスト側とローカル側のリクエスタＩＤを変換するための、ＲｅｑＩＤ変換テーブル４４の一例を示す。
【００４０】
また、ＰＣＩｅを用いた情報処理システムの構成は、ピアツーピア接続が基本である。そのため、ＰＣＩｅスイッチ５０は、複数のＰＣＩｅポートを備えている。これにより、ＰＣＩｅポートを介して、複数のローカルデバイスとの接続が可能となる。
【００４１】
ローカルホスト１０は、図２に示す実施の形態では、アダプタ４の内部に設けられている。ローカルホスト１０は、ローカル制御部５８、ルートコンプレクス６８、および、主記憶であるメモリ７０などを備える。
【００４２】
ローカル制御部５８は、ローカルデバイス初期化部６０、ローカルデバイス種別判別部６２、アドレス変換テーブル設定部６４、および、ＲｅｑＩＤ変換テーブル設定部６６などを含む。
【００４３】
ローカルデバイス初期化部６０は、ローカルデバイス６のコンフィグレーション空間の初期設定を行い、ローカルデバイス６を動作可能な状態にする。
【００４４】
ローカルデバイス種別判別部６２は、ローカルデバイス６のコンフィグレーションレジスタを読み出して、ローカルデバイス６の種別を判別する。これにより、ローカルデバイス種別判別部６２は、その後の処理において、判別したローカルデバイスごとの処理に切り替える。
【００４５】
アドレス変換テーブル設定部６４は、システムホスト側のアドレス体系とローカルホスト側のアドレス体系とを取得する。そして、アドレス変換テーブル設定部６４は、高機能スイッチ部８のパケット転送部４０のアドレス変換テーブル４２へ、アドレスの対応を登録する。
【００４６】
ＲｅｑＩＤ変換テーブル設定部６６は、システムホスト側のＲｅｑＩＤとローカルホスト側のＲｅｑＩＤとを取得する。そして、ＲｅｑＩＤ変換テーブル設定部６６は、高機能スイッチ部８のパケット転送部４０のＲｅｑＩＤ変換テーブル４４へ、ＲｅｑＩＤの対応を登録する。
【００４７】
以上のように、情報処理装置を含む情報処理システムは構成される。
【００４８】
（１．２．情報処理装置の動作）
以下、情報処理装置を含む情報処理システムの動作について、図３を用いて説明する。
【００４９】
図３は、同実施の形態に係る情報処理システムを構築する情報処理装置およびその周辺の装置の動作を表すフロー図である。
【００５０】
図３に示すように、実施の形態の情報処理装置およびその周辺の装置は、電源オンまたはアダプタ４がシステムホスト２に挿入される（ステップＳ１）と、アダプタ初期化（ステップＳ２）、ローカルデバイスが挿入されたか否かの検出（ステップＳ３）、ローカルデバイス挿入時の初期化処理（ステップＳ４）、データ転送処理（ステップＳ５）、およびローカルデバイス抜去時の処理（ステップＳ６）などの動作を実行する。
【００５１】
なお、各動作におけるデバイスや装置間の信号およびデータの遣り取りについては、図４〜図７に示すシーケンス図を用いて、以下で詳細に説明する。
【００５２】
（１．２．１．アダプタ初期化処理）
図４は、同実施の形態にかかる情報処理装置およびその周辺の装置におけるアダプタ初期化処理の動作を示すシーケンス図である。
【００５３】
図４に示すように、まず、システムホスト２は、高機能スイッチ部８とのリンクアップを確立する（ステップＳ１０）。
【００５４】
つぎに、システムホスト２は、ルートコンプレクス２２で、コンフィグレーションレジスタにおけるコンフィグレーション空間（タイプ１）（図９参照）を設定する（ステップＳ１２）。具体的には、システムホスト２は、コンフィグレーションレジスタのメモリベース（Ｍｅｍｏｒｙ  Ｂａｓｅ）およびメモリリミット（Ｍｅｍｏｒｙ  Ｌｉｍｉｔ）を設定する。
【００５５】
つぎに、システムホスト２は、高機能スイッチ部８におけるコンフィグレーションレジスタ（タイプ０）（図８参照）を読み取る。そして、システムホスト２は、高機能スイッチ部８におけるデバイスＩＤ（Ｄｅｖｉｃｅ  ＩＤ）、ベンダＩＤ（Ｖｅｎｄｅｒ  ＩＤ）、およびクラスコード（Ｃｌａｓｓ  Ｃｏｄｅ）を確認する（ステップＳ１４）。これにより、システムホスト２は、接続されたデバイスを確認する。
【００５６】
つぎに、システムホスト２は、高機能スイッチ部８におけるコンフィグレーションレジスタ（タイプ０）（図８参照）に対して、ベースアドレスレジスタ（Ｂａｓｅ  Ａｄｄｒｅｓｓ  Ｒｅｇｉｓｔｅｒ）、およびコマンド（Ｃｏｍｍａｎｄ）を書き込んで、接続されたデバイスを設定する（ステップＳ１６）。
【００５７】
つぎに、ローカルホスト１０は、高機能スイッチ部８とのリンクアップを確立する（ステップＳ１８）。
【００５８】
つぎに、ローカルホスト１０は、ルートコンプレクス６８で、コンフィグレーションレジスタにおけるコンフィグレーション空間（タイプ１）（図９参照）を設定する（ステップＳ１９）。具体的には、ローカルホスト１０は、特に、コンフィグレーションレジスタのメモリベースおよびメモリリミットを設定する。
【００５９】
つぎに、ローカルホスト１０は、高機能スイッチ部８におけるコンフィグレーションレジスタ（タイプ０）（図８参照）を読み取る。そして、ローカルホスト１０は、高機能スイッチ部８におけるデバイスＩＤ、ベンダＩＤ、およびクラスコードを確認する（ステップＳ２０）。これにより、ローカルホスト１０は、接続されたデバイスを確認する。
【００６０】
つぎに、ローカルホスト１０は、高機能スイッチ部８におけるコンフィグレーションレジスタ（タイプ０）（図８参照）に対して、ベースアドレスレジスタ、およびコマンドを書き込んで、接続されたデバイスを設定する（ステップＳ２２）。
【００６１】
以上のように、情報処理装置およびその周辺の装置のアダプタ初期化処理が実行される。
【００６２】
（１．２．２．ローカルデバイス挿入時の初期化処理）
図５は、同実施の形態の情報処理装置およびその周辺の装置におけるローカルデバイス挿入時の初期化処理の動作を示すシーケンス図である。
【００６３】
図５に示すように、まず、ローカルデバイス６がアダプタ４のスロット１２（図１参照）に挿入される。このとき、ローカルデバイス６は、アダプタ４の挿抜検出部３８を介して高機能スイッチ部８に挿入を通知する。これにより、高機能スイッチ部８は、ローカルデバイス６の挿入を検出する（ステップＳ２４）。
【００６４】
つぎに、高機能スイッチ部８は、ローカルデバイス６とのリンクアップを確立する（ステップＳ２６）。そして、高機能スイッチ部８は、ローカルホスト割込送信部３６を介して、ローカルホスト１０にローカルデバイス６の挿入を通知する（ステップＳ２８）。
【００６５】
つぎに、ローカルホスト１０は、ローカルデバイス６におけるコンフィグレーションレジスタ（タイプ０）（図８参照）を読み取る。そして、ローカルホスト１０は、ローカルデバイス６におけるデバイスＩＤ、ベンダＩＤ、およびクラスコードを確認する（ステップＳ３０）。これにより、ローカルホスト１０は、接続されたデバイスを確認し、転送方式を決定する。
【００６６】
つぎに、ローカルホスト１０は、ローカルデバイス６におけるコンフィグレーションレジスタ（タイプ０）（図８参照）に対して、ベースアドレスレジスタ、およびコマンドを書き込んで、接続されたデバイスを設定する（ステップＳ３２）。
【００６７】
つぎに、ローカルホスト１０は、高機能スイッチ部８のパケット転送部４０におけるアドレス変換テーブル４２およびＲｅｑＩＤ変換テーブル４４を設定する（ステップＳ３４）。設定は、ローカルホスト１０のアドレス変換テーブル設定部６４およびＲｅｑＩＤ変換テーブル設定部６６を用いて、実行される。
【００６８】
つぎに、ローカルホスト１０は、ローカルデバイス６に対して、システムホスト２を割込先として設定する（ステップＳ３６）。
【００６９】
つぎに、ローカルホスト１０は、アダプタ４の高機能スイッチ部８のイベント通知部３０の所定の制御レジスタに書き込みを行う。そして、ローカルホスト１０は、高機能スイッチ部８に対して、システムホスト２への、ローカルデバイス６の挿入通知に関する割込送信要求を行う（ステップＳ３８）。これにより、高機能スイッチ部８のシステムホスト割込送信部３４は、割込送信要求を受けて、システムホスト２に、ローカルデバイス６の挿入通知に関する割込を行う（ステップＳ４０）。
【００７０】
つまり、ローカルホスト１０からシステムホスト２への割込送信が、高機能スイッチ部８の制御レジスタを介して行われる。
【００７１】
以上のように、情報処理装置およびその周辺の装置のローカルデバイス挿入時の初期化処理が実行される。
【００７２】
（１．２．３．データ転送処理）
図６は、同実施の形態の情報処理装置およびその周辺の装置における、データ転送処理の動作を示すシーケンス図である。なお、図６は、ローカルデバイス６からシステムホスト２へデータが転送される場合を例に、図示している。
【００７３】
図６に示すように、まず、システムホスト２は、アダプタ４の高機能スイッチ部８に転送コマンドを発行する（ステップＳ４２）。そして、高機能スイッチ部８は、転送コマンドを受けて、イベント通知部３０の制御レジスタ群３２における所定の制御レジスタに書き込みを行う。これにより、イベント通知部３０は、高機能スイッチ部８に対して、ローカルホスト１０への、転送コマンド発行に関する割込送信要求を行う。
【００７４】
つぎに、高機能スイッチ部８は、割込送信要求を受けて、ローカルホスト１０に、転送コマンド発行に関する割込通知を行う（ステップＳ４４）。割込通知を受けたローカルホスト１０は、ローカルデバイス６へ転送コマンドを発行する（ステップＳ４６）。
【００７５】
つぎに、ローカルデバイス６は、発行された転送コマンドの内容をコマンド解析部７６で解析する。そして、ローカルデバイス６は、解析結果に基づいて、データ転送部７８によりＰＣＩｅスイッチ５０を介して、高機能スイッチ部８に、データ、アドレス、およびＲｅｑＩＤなどを転送する（ステップＳ４８）。
【００７６】
つぎに、高機能スイッチ部８は、アドレス変換部４６およびＲｅｑＩＤ変換部４８により、転送されたアドレスおよびＲｅｑＩＤを変換する（ステップＳ４９）。
【００７７】
そして、高機能スイッチ部８は、データ、および、変換されたアドレスとＲｅｑＩＤをシステムホスト２に転送する（ステップＳ５０）。なお、データ、アドレス、およびＲｅｑＩＤなどの転送は、ＰＣＩｅパケットを用いて行われる。
【００７８】
つぎに、ローカルデバイス６は、転送処理が完了すると、完了を示す割込通知をローカルホスト１０に送る（ステップＳ５２）。なお、割込通知は、図８、図９、図１１および図１２を用いて後で、説明するように、ＭＳＩ割込により行われる。
【００７９】
つぎに、ローカルホスト１０は、完了の割込通知を受け取ると、高機能スイッチ部８のイベント通知部３０の制御レジスタ群３２における所定の制御レジスタに書き込みを行う。そして、ローカルホスト１０は、高機能スイッチ部８に対して、システムホスト２への、ローカルデバイス６の転送処理完了に関する割込送信要求を行う（ステップＳ５４）。これにより、高機能スイッチ部８のシステムホスト割込送信部３４は、割込送信要求を受けて、システムホスト２に、ローカルデバイス６の転送処理完了に関する割込通知を行う（ステップＳ５６）。
【００８０】
以上のように、情報処理装置およびその周辺の装置のデータ転送処理が実行される。
【００８１】
（１．２．４．ローカルデバイス抜去時の処理）
図７は、同実施の形態の情報処理装置およびその周辺の装置における、ローカルデバイス抜去時の処理の動作を示すシーケンス図である。
【００８２】
図７に示すように、まず、ローカルデバイス６がアダプタ４のスロット１２（図１参照）から抜去される。このとき、アダプタ４の挿抜検出部３８は、ローカルデバイス６に接続されていた信号線の電位変化により、ローカルデバイス６の抜去を検知する。そして、挿抜検出部３８を介して、高機能スイッチ部８に、ローカルデバイス６の抜去を検出する（ステップＳ５８）。
【００８３】
つぎに、高機能スイッチ部８は、イベント通知部３０のローカルホスト割込送信部３６を介して、ローカルホスト１０に、ローカルデバイス６の抜去を通知する（ステップＳ６０）。
【００８４】
つぎに、ローカルホスト１０は、高機能スイッチ部８のイベント通知部３０の制御レジスタ群３２における所定の制御レジスタに書き込みを行う。そして、ローカルホスト１０は、高機能スイッチ部８に対して、システムホスト２への、ローカルデバイス６の抜去に関する割込通知要求を行う（ステップＳ６２）。これにより、高機能スイッチ部８のシステムホスト割込送信部３４は、割込通知要求を受けて、システムホスト２に、ローカルデバイス６の抜去に関する割込通知を行う（ステップＳ６４）。
【００８５】
以上のように、情報処理装置およびその周辺の装置のローカル抜去処理が実行される。
【００８６】
つまり、上記実施の形態の情報処理システムでは、図４から図７に示すように、システムホスト２とローカルホスト１０との間の割込を含む制御コマンドの遣り取りを、高機能スイッチ部８のイベント通知部３０における制御レジスタ群３２を介して行う。また、システムホスト２とローカルホスト１０との間の、データ、アドレス、およびＲｅｑＩＤなどの遣り取りを、高機能スイッチ部８のパケット転送部４０におけるアドレス変換部４６およびＲｅｑＩＤ変換部４８を介して行う。そのため、データ転送は、ローカルホスト１０の制御による制限を受けない。これにより、データ転送の低速化は、発生しない。
【００８７】
（１．２．５．ＭＳＩ割込）
以下に、上述したＭＳＩ割込について、図８、図９、図１１および図１２を用いて、説明する。
【００８８】
まず、図８および図９に示すように、コンフィグレーションレジスタの“３４ｈ”には、「機能ポインタ（Ｃａｐａｂｉｌｉｔｉｅｓ  Ｐｏｉｎｔｅｒ）」が格納されている。“３４ｈ”のポインタは、機能（Ｃａｐａｂｉｌｉｔｙ）を格納するアドレスを示している。例えば、図１１に示すように、「機能ポインタ」を格納する“３４ｈ”には、アドレスＡ４ｈが格納されている。“Ａ４ｈ”には、機能の内容であるＣａｐａｂｉｌｉｔｙ  ＩＤが格納されている。
【００８９】
なお、Ｃａｐａｂｉｌｉｔｙ  ＩＤは、複数の設定を格納可能である。つまり、図１１に示すように、Ｃａｐａｂｉｌｉｔｙ  ＩＤが格納されるアドレスの直ぐ隣のアドレスには、次の「機能ポインタ」を示す“５Ｃｈ”が格納されている。さらに、機能ポインタの“５Ｃｈ”のＣａｐａｂｉｌｉｔｙ  ＩＤを格納するアドレスの直ぐ隣のアドレスには、次の「機能ポインタ」を示す“Ｅ０ｈ”が格納されている。このように、コンフィグレーションレジスタは、Ｃａｐａｂｉｌｉｔｙ  ＩＤが連鎖的に設けられるように構成されている。
【００９０】
つぎに、機能の内容を示すＣａｐａｂｉｌｉｔｙ  ＩＤの構成について、図１２を用いて説明する。
【００９１】
図１２の（ａ）は、Ｃａｐａｂｉｌｉｔｙ  ＩＤがＭＳＩ割込設定の場合における、Ｃａｐａｂｉｌｉｔｙの構成を表す説明図である。そして、この構成において、図１２の（ｂ）に示すように、ＭＳＩ割込のアドレス（Ｍｅｓｓａｇｅ  Ａｄｄｒｅｓｓ）として、例えば０ｘ１０００＿００００が設定されるとする。
【００９２】
このとき、ローカルデバイス６は、例えば転送コマンドを完了すると、アドレスを０ｘ１０００＿００００に設定して、メモリライトコマンドを、ローカルホスト１０に発行する。
【００９３】
ローカルホスト１０のローカル制御部５８は、発行されたメモリライトコマンドを受けて、割込が発生したと判断する。
【００９４】
以上のように、ＭＳＩ割込が実行される。
【００９５】
（１．２．６．アドレス変換の例）
以下に、システムホスト２と、ローカルホスト１０やローカルデバイス６との間のアドレス変換の一例について、図１３から図１５を用いて、説明する。
【００９６】
図１３の（ａ）は、システムホスト２からローカルデバイス６へのアドレス変換テーブルの一例を示す。図１３の（ｂ）は、ローカルデバイス６からシステムホスト２へのアドレス変換テーブルの一例を示す。
【００９７】
図１４は、図１３の（ａ）に示すシステムホスト２からローカルデバイス６へのアドレス変換の、ＢＡＲ（ベースアドレスレジスタ）空間における対応関係を示す図である。
【００９８】
図１４に示すように、システムホスト２のコンフィグレーション空間におけるアドレスは、０ｘＡ０００＿００００〜０ｘＡ０００＿ＦＦＦＦが割り当てられている。
【００９９】
このとき、図１３の（ａ）に示すように、図１４に示すシステムホスト２のアドレスのうち、０ｘＡ０００＿００００から１Ｋバイト（０ｘ１０００）は、ローカル側の０ｘＦ０００＿００００から１Ｋバイト（０ｘ１０００）に対応する。また、システムホスト２の０ｘＡ０００＿１０００から１Ｋバイト（０ｘ１０００）は、ローカル側の０ｘＢ０００＿００００から１Ｋバイト（０ｘ１０００）に対応する。
【０１００】
さらに、図１３の（ａ）に示すローカル側の０ｘＦ０００＿００００から１Ｋバイト（０ｘ１０００）は、図１４に示す高機能スイッチ部８の制御レジスタ群３２に割り当てられる。また、図１３の（ａ）に示すローカル側の０ｘＢ０００＿００００から１Ｋバイト（０ｘ１０００）は、図１４に示すローカルデバイスの一つであるローカルデバイス（０）に割り当てられる。
【０１０１】
図１５は、図１３に示すアドレス変換の、コンフィグレーション空間における対応関係を説明する図である。なお、図１５に示すローカルデバイスは、図１４におけるローカルデバイス（０）に相当する。
【０１０２】
図１５に示すように、システムホスト２からローカルデバイス６へのデータ転送要求は、ノンプリフェッチバッファ空間を利用して行われる。すなわち、システムホスト２側のメモリ空間上の仮想的マッピングを用いて、データ転送要求が実行される。
【０１０３】
システムホスト２側のコンフィグレーション空間は、０ｘＡ０００＿００００〜０ｘＡ００Ｆ＿ＦＦＦＦが割り当てられる。一方、これに対応するローカルデバイス６側のコンフィグレーション空間は、図１３の（ａ）、図１４および図１５に示すように、０ｘＢ０００＿００００〜０ｘＢ０００＿０ＦＦＦが割り当てられる。
【０１０４】
そして、システムホスト２からローカルデバイス６へのデータ転送要求時においては、図１３の（ａ）に示すアドレス変換テーブルにより、システムホスト２側のアドレスがローカルデバイス６側のアドレスへ変換される。
【０１０５】
また、ローカルデバイス６からシステムホスト２へのデータ転送要求時においては、ノンプリフェッチバッファ空間以外の空間（図１５では、プリフェッチバッファ空間）が利用される。
【０１０６】
このとき、ローカルデバイス６側のコンフィグレーション空間は、０ｘＣ０００＿００００〜０ｘＣ０００＿０ＦＦＦが割り当てられる。一方、これに対応するシステムホスト２側のコンフィグレーション空間は、図１３の（ｂ）および図１５に示すように、０ｘＤ０００＿００００〜０ｘＤ０００＿０ＦＦＦが割り当てられる。
【０１０７】
これにより、ローカルデバイス６からシステムホスト２へのデータ転送要求時において、図１３の（ｂ）に示すアドレス変換テーブルにより、ローカルホスト１０やローカルデバイス６側のアドレスが、システムホスト２側のアドレスへ変換される。
【０１０８】
以上のように、システムホスト２と、ローカルホスト１０やローカルデバイス６との間でアドレス変換が対応つけられる。
【０１０９】
（１．３．効果等）
以上のように、本実施の形態において、情報処理装置４は、システムホストとＰＣＩｅバスで接続される。情報処理装置４は、ローカルホスト１０と、高機能スイッチ部８を備える。高機能スイッチ部８は、データ入出力ポートとしてのノントランスペアレントポート２６、２８と、システムホスト２の通信用の制御レジスタ群３２を有する。システムホスト２のＰＣＩｅバスは、情報処理装置４を経由して、ローカルデバイス６に接続される。ノントランスペアレントポート２６、２８により、システムホスト２側のＰＣＩｅバスと、ローカルホスト１０側のＰＣＩｅバスとの、バス番号およびアドレス体系は、それぞれ独立して構成される。制御レジスタ群３２は、ローカルホスト１０からは直接制御され、システムホスト２からはシステムホスト側のメモリ空間上にマッピングされる。ローカルホスト１０は、システムホスト２からシステムホスト側のメモリ空間上にマッピングされた制御レジスタ群３２に要求されたコマンドを解釈して、ローカルデバイス６に対してコマンドを発行する。ローカルホスト１０は、ローカルデバイス６からの、コマンドの完了の割り込みを受信し、制御レジスタ群３２を通じてシステムホスト２へコマンドの完了を通知する。システムホスト２とローカルデバイス６との間のデータ転送は、高機能スイッチ部８を介して行われる。高機能スイッチ部８は、ローカルホスト１０側のアドレスおよびリクエスタＩＤを、システムホスト２側のアドレスおよびリクエスタＩＤへ変換して、ローカルデバイス６とシステムホスト側との間で、ＰＣＩｅパケットを転送するように構成される。
【０１１０】
これにより、情報処理装置４は、システムホスト２とローカルホスト１０とを含むＰＣＩｅを用いた情報処理システムにおいて、二つのホストのドメインを分離しながら、ローカルデバイス６とシステムホスト２との間の高速のデータ転送を実現できる。
【０１１１】
（実施の形態２）
以下、図１６から図２４を参照して、実施の形態２の情報処理装置を含む情報処理システムについて、説明する。
【０１１２】
（２．１．情報処理装置の構成）
まず、本実施の形態の情報処理装置を含む情報処理システムの概略構成について、図１６を用いて説明する。
【０１１３】
図１６は、実施の形態２に係る情報処理装置を含む情報処理システムの概略のブロック図である。
【０１１４】
なお、実施の形態２に係る情報処理装置は、図１に示す実施の形態１に係る情報処理装置と略同様の構成である。
【０１１５】
図１６に示すように、本実施の形態の情報処理装置を含む情報処理システムは、スロット１２を経由して接続される複数のローカルデバイス６、６ａと、後述する高機能スイッチ部８のパケット転送部４０にダイレクトメモリアクセス転送部４７（以下、「ＤＭＡ転送部４７」と略記する）（図１７参照）を備える点で、実施の形態１とは異なる。それ以外の構成は、図１に示す情報処理装置を含む情報処理システムと、基本的に同様の構成を備える。
【０１１６】
つまり、図１６に示すように、本実施の形態の情報処理システムは、システムホスト２、情報処理装置を構成するアダプタ４、および、マスタ機能部を有する複数のローカルデバイス６、マスタ機能部の無いローカルデバイス６ａなどで構成される。
【０１１７】
アダプタ４は、情報処理装置を構成し、高機能スイッチ部８、ローカルホスト１０、スロット１２などを含む。ローカルデバイス６、６ａは、スロット１２を介してアダプタ４と接続される。
【０１１８】
なお、ローカルホスト１０は、アダプタ４の外部や高機能スイッチ部８の内部などに設けてもよい。また、ローカルデバイス６は、例えばリムーバブルメディアなどで例示されるが、特定の種類に限定されない。
【０１１９】
以上のように、情報処理装置を含む情報処理システムの概略が構成される。
【０１２０】
つぎに、情報処理装置を含む情報処理システムの詳細な構成について、図１７を用いて説明する。
【０１２１】
図１７は、同実施の形態に係る情報処理装置を含む情報処理システムの詳細なブロック図である。
【０１２２】
なお、図１７に示す情報処理システムは、実施の形態１の情報処理システムと基本的な構成は同じであるので、以下では異なる構成について詳述する。
【０１２３】
図１７に示すように、本実施の形態の情報処理システムでは、アダプタ４のＰＣＩｅスイッチ５０は、複数のＤＳＰ（Ｄｏｗｎ  Ｓｔｒｅａｍ  Ｐｏｒｔ）を備える。ＰＣＩｅスイッチ５０には、それぞれのＤＳＰを介して、複数のローカルデバイス６、６ａが接続される。図１７では、ＤＳＰのＤＳＰ＃０（５６（０））、ＤＳＰ＃１（５６（１））、・・・、ＤＳＰ＃Ｎ−１（５６（ｎ−１））、ＤＳＰ＃Ｎ（５６（ｎ））を介して、複数（Ｎ＋１）のローカルデバイス６、６ａと接続する構成を例に図示している。
【０１２４】
このとき、ローカルデバイスには、マスタ機能部７７を備えるローカルデバイス６（ＤＳＰ＃０からＤＳＰ＃Ｎ−１）と、備えないローカルデバイス６ａ（ＤＳＰ＃Ｎ）などが含まれる。なお、マスタ機能部７７は、データ転送を行う際に、ローカルデバイス自体が主体となってデータ転送を行う機能部である。
【０１２５】
具体的には、本実施の形態のローカルデバイス６は、ＵＳＰ７４、コマンド解析部７６、マスタ機能部７７を有するデータ転送部７８などを備える。一方、ローカルデバイス６ａは、ＵＳＰ７４ａ、コマンド解析部７６ａ、データ転送部７８ａなどを備える。
【０１２６】
また、本実施の形態の情報処理システムは、上述したように、情報処理装置を構成するアダプタ４の高機能スイッチ部８のパケット転送部４０に、ＤＭＡ転送部４７を備える。
【０１２７】
ＤＭＡ転送部４７は、マスタ機能部７７を備えないローカルデバイス６ａに対して、システムホスト２からのデータの書き込みの制御、および、ローカルデバイス６ａからシステムホスト２へのデータの書き込みの制御を行う。
【０１２８】
具体的には、ＤＭＡ転送部４７は、システムホスト２からローカルデバイス６ａへのデータ書き込み時に、システムホスト２に対してメモリリードコマンドを発行してデータを取得する。そして、ＤＭＡ転送部４７は、取得したデータをローカルデバイス６ａに対して、メモリライトコマンドにより書き込む。
【０１２９】
一方、システムホスト２へローカルデバイス６ａのデータを書き込む時に、ＤＭＡ転送部４７は、ローカルデバイス６ａに対してメモリリードコマンドを発行して、データを取得する。そして、ＤＭＡ転送部４７は、取得したデータをシステムホスト２に対して、メモリライトコマンドにより書き込む。
【０１３０】
つまり、マスタ機能部７７の無いローカルデバイス６ａは、システムホスト２との間でＤＭＡ転送部４７のダイレクト転送機能を介して、データ転送が実行される。具体的には、ローカルデバイス６ａのメモリ空間とシステムホスト２側のメモリ空間との間で、ＤＭＡ転送部４７を介して、データ転送が行われる。
【０１３１】
以上のように、情報処理装置を含む情報処理システムは構成される。
【０１３２】
（２．２．情報処理装置の動作）
以下、情報処理装置を含む情報処理システムの動作について、図１８を用いて説明する。
【０１３３】
図１８は、同実施の形態に係る情報処理システムを構築する情報処理装置およびその周辺の装置の動作を表すフロー図である。
【０１３４】
図１８に示すように、本実施の形態の情報処理装置およびその周辺の装置は、電源がオンされる（ステップＳ１０１）と、アダプタとローカルデバイスの初期化処理とリンクアップ（ステップＳ１０２）、アダプタ初期化（ステップＳ１０３）、ローカルデバイスのテーブル設定処理（ステップＳ１０４）を実行する。さらに、マスタ機能部の有無の判断（ステップＳ１０５）により、マスタ機能がある場合のデータ転送処理（ステップＳ１０６）、および、マスタ機能が無い場合のデータ転送処理（ステップＳ１０７）を実行する。
【０１３５】
以下に、各動作におけるデバイスや装置間の信号およびデータの遣り取りについて、図１９から図２１に示すシーケンス図を用いて、詳細に説明する。
【０１３６】
（２．２．１．アダプタとローカルデバイスの初期化処理とリンクアップ）
図１９は、情報処理装置およびその周辺の装置におけるアダプタとローカルデバイスの初期化処理とリンクアップの動作を示すシーケンス図である。
【０１３７】
図１９に示すシーケンスでは、まず、電源がオンされ、Ｎ個（＃０から＃Ｎ−１のマスタ機能部７７を有するローカルデバイス６と、１個（＃Ｎ）のマスタ機能部の無いローカルデバイス６ａとが、既にアダプタ４のスロット１２に挿入されている状態を想定し、以後の処理を説明する。
【０１３８】
上記の状態において、ローカルホスト１０は、ローカルデバイス６、６ａのコンフィグレーションレジスタ（タイプ０）（図８参照）を読み取る。そして、ローカルホスト１０は、例えばデバイスＩＤ（Ｄｅｖｉｃｅ  ＩＤ）、ベンダＩＤ（Ｖｅｎｄｅｒ  ＩＤ）、およびクラスコード（Ｃｌａｓｓ  Ｃｏｄｅ）などの内容を確認する（ステップＳ１１０からステップＳ１１６）。これにより、ローカルホスト１０は、接続されたデバイスを確認する。
【０１３９】
そして、内容を確認後、ローカルホスト１０は、取得したローカルデバイス６、６ａの情報に基づいて、リソースの演算を行う（ステップＳ１１７）。
【０１４０】
つぎに、ローカルホスト１０は、ローカルデバイス６、６ａのコンフィグレーションレジスタ（タイプ０）（図８参照）に対して、リソースの演算結果に基づいて、所定の内容を書き込んで、接続されたデバイスを設定する（ステップＳ１１８からステップＳ１２４）。ここで、所定の内容は、例えばベースアドレスレジスタ（Ｂａｓｅ  Ａｄｄｒｅｓｓ  Ｒｅｇｉｓｔｅｒ）、およびコマンド（Ｃｏｍｍａｎｄ）などである。
【０１４１】
つぎに、リソースの演算結果に基づいて、ローカルホスト１０は、高機能スイッチ部８のイベント通知部３０の制御レジスタ群３２へ、システムホスト２へのリソース要求のコマンドを登録する。これにより、ローカルホスト１０は、ローカルデバイスを設定する（ステップＳ１２６）。さらに、ローカルホスト１０は、制御レジスタ群３２へ、システムホスト２からのリンクアップ許可のコマンドを登録する（ステップＳ１２８）。
【０１４２】
以上のように、アダプタ４とローカルデバイス６、６ａの初期化処理とリンクアップが実行される。
【０１４３】
（２．２．２．アダプタ初期化処理）
図２０の（ａ）は、情報処理装置およびその周辺の装置におけるアダプタ初期化処理の動作を示すシーケンス図である。
【０１４４】
図２０の（ａ）に示すように、まず、システムホスト２は、高機能スイッチ部８とのリンクアップを確立する（ステップＳ１３０）。
【０１４５】
つぎに、システムホスト２は、高機能スイッチ部８におけるコンフィグレーションレジスタ（タイプ０）（図８参照）を読み取る。そして、ローカルホスト１０は、例えば高機能スイッチ部８におけるデバイスＩＤ、ベンダＩＤ、およびクラスコードなどの内容を確認する（ステップＳ１３２）。これにより、システムホスト２は、接続されたデバイスを確認する。
【０１４６】
つぎに、システムホスト２は、高機能スイッチ部８におけるコンフィグレーションレジスタ（タイプ０）（図８参照）に対して、所定の内容を書き込んで、接続されたデバイスを設定する（ステップＳ１３４）。ここで、所定の内容は、例えばベースアドレスレジスタ、およびコマンドなどである。
【０１４７】
以上のように、アダプタ４の初期化処理が実行される。
【０１４８】
（２．２．３．ローカルデバイスのテーブル設定処理）
図２０の（ｂ）は、情報処理装置およびその周辺の装置におけるローカルデバイスのテーブル設定処理の動作を示すシーケンス図である。
【０１４９】
図２０の（ｂ）に示すように、まず、システムホスト２は、高機能スイッチ部８のイベント通知部３０の制御レジスタ群３２へ、ローカルホスト１０の起動を確認するコマンドを登録する（ステップＳ１３６）。
【０１５０】
つぎに、高機能スイッチ部８は、イベント通知部３０の制御レジスタ群３２へ登録されたコマンドにより、ローカルホスト１０の起動を確認する（ステップＳ１３８）。
【０１５１】
つぎに、ローカルホスト１０は、高機能スイッチ部８のパケット転送部４０のアドレス変換テーブル４２およびＲｅｑＩＤ変換テーブル４４を設定する（ステップＳ１４０）。設定は、ローカルホスト１０のアドレス変換テーブル設定部６４およびＲｅｑＩＤ変換テーブル設定部６６を用いて、実行される。
【０１５２】
設定後、アダプタ４の高機能スイッチ部８は、割込処理により、システムホスト２へローカルホスト１０の起動を通知する（ステップＳ１４２）。
【０１５３】
以上のように、ローカルデバイスのテーブル設定処理が実行される。
【０１５４】
（２．２．４．マスタ機能部がある場合のデータ転送処理）
図２１の（ａ）は、情報処理装置およびその周辺の装置におけるマスタ機能部がある場合のデータ転送処理の動作を示すシーケンス図である。
【０１５５】
図２１の（ａ）は、マスタ機能部７７を備えるローカルデバイス６の場合のデータ転送処理を示している。
【０１５６】
図２１の（ａ）に示すように、まず、システムホスト２は、転送コマンドを、＃０から＃Ｎ−１で示す複数（Ｎ個）のローカルデバイス６に発行する（ステップＳ１４４からステップＳ１４８）。
【０１５７】
そして、転送コマンドの転送処理が完了すると、それぞれのローカルデバイス６は、システムホスト２へ向けて完了通知を行う（ステップＳ１５０からステップＳ１５６）。
【０１５８】
なお、図２１の（ａ）に示すシーケンス図において、システムホスト２からの転送コマンドにおけるアドレスおよびＲｅｑＩＤは、アダプタ４のパケット転送部４０のアドレス変換部４６およびＲｅｑＩＤ変換部４８により変換される。そして、変換された転送コマンドが、Ｎ個のうちの適切なローカルデバイス６に向けて発行される（図２２の（ａ）参照）。
【０１５９】
一方、転送コマンドを受けたローカルデバイス６がシステムホスト２にデータ（データ、アドレス、およびＲｅｑＩＤ）を転送する場合は、アドレスおよびＲｅｑＩＤが高機能スイッチ部８のアドレス変換部４６およびＲｅｑＩＤ変換部４８により変換される（図２２の（ｂ）参照）。
【０１６０】
以上により、マスタ機能があるローカルデバイス６の場合のデータ転送処理が実行される。
【０１６１】
（２．２．５．マスタ機能部が無い場合のデータ転送処理）
図２１の（ｂ）は、情報処理装置およびその周辺の装置におけるマスタ機能部が無い場合のデータ転送処理の動作を示すシーケンス図である。
【０１６２】
図２１の（ｂ）は、マスタ機能部を備えないローカルデバイス６ａの場合のデータ転送処理を示している。
【０１６３】
図２１の（ｂ）に示すように、まず、システムホスト２は、転送コマンドを発行する。そして、システムホスト２は、高機能スイッチ部８のイベント通知部３０の所定の制御レジスタに書き込みを行う。これにより、システムホスト２は、高機能スイッチ部８に対して、ローカルホスト１０への、転送コマンドの発行に関するコマンド要求を行う（ステップＳ１６０）。
【０１６４】
つぎに、高機能スイッチ部８は、コマンド要求を受けて、ローカルホスト１０に、転送コマンドの発行に関するコマンド受信通知を行う（ステップＳ１６２）。
【０１６５】
つぎに、ローカルホスト１０は、コマンド受信通知を受けると、ローカルデバイス６ａへ転送コマンドを発行する（ステップＳ１６４）。
【０１６６】
つぎに、ローカルデバイス６ａは、転送コマンドを受けて、コマンド完了を示す通知をローカルホスト１０に送る（ステップＳ１６６）。このとき、割込通知は、上述したＭＳＩ割込により実行される。
【０１６７】
つぎに、ローカルホスト１０は、高機能スイッチ部８のパケット転送部４０におけるＤＭＡ転送部４７の設定を要求する（ステップＳ１６８）。
【０１６８】
このとき、転送コマンドが、ローカルデバイス６ａからのデータの読み出し（リード）を示すコマンドの場合、ＤＭＡ転送部４７は、まず、ローカルデバイス６ａのメモリにおける該当アドレスのデータを読み出す（ステップＳ１７０）。そして、ＤＭＡ転送部４７は、データ転送後（ステップＳ１７１）、システムホスト２のメモリ２０に書き出す（ステップＳ１７２）。
【０１６９】
一方、転送コマンドが、ローカルデバイス６ａへのデータの書き込み（ライト）を示すコマンドの場合、ＤＭＡ転送部４７は、まず、システムホストのメモリのデータを読み出す（ステップＳ１７２）。そして、ＤＭＡ転送部４７は、データ転送後（ステップＳ１７１）、ローカルデバイス６ａのメモリにおける該当アドレスに書き出す（ステップＳ１７０）。
【０１７０】
つぎに、高機能スイッチ部８は、パケット転送部４０のＤＭＡ転送部４７によるデータ転送の完了を、ローカルホスト１０に発行する（ステップＳ１７４）。
【０１７１】
つぎに、ローカルホスト１０は、高機能スイッチ部８に対して、システムホスト２への、ローカルデバイス６の転送処理完了に関する割込送信要求を行う（ステップＳ１７６）。これにより、高機能スイッチ部８のシステムホスト割込送信部３４は、割込送信要求を受けて、システムホスト２に、ローカルデバイス６の転送処理完了に関する割込通知を行う（ステップＳ１７８）。
【０１７２】
以上により、マスタ機能部が無いローカルデバイス６ａの場合のデータ転送処理が実行される。
【０１７３】
（２．２．６．アドレス変換の例）
以下に、システムホスト２と、ローカルホスト１０やローカルデバイス６、６ａとの間のアドレス変換の一例について、図２２から図２４を用いて、説明する。
【０１７４】
図２２の（ａ）は、システムホスト２からローカルデバイス６へのアドレス変換テーブルの一例を示す。図２２の（ｂ）は、ローカルデバイスからシステムホストへのアドレス変換テーブルの一例を示す。
【０１７５】
図２３は、図２２の（ａ）に示すシステムホスト２からローカルデバイス６へのアドレス変換についての、ＢＡＲ（ベースアドレスレジスタ）空間における対応関係を示す図である。
【０１７６】
図２３に示すように、システムホスト２のコンフィグレーション空間におけるアドレスは、０ｘＡ０００＿００００〜０ｘＡ００１＿ＦＦＦＦが割り当てられている。
【０１７７】
このとき、図２２の（ａ）に示すように、図２３に示すシステムホスト２のアドレスのうち、０ｘＡ０００＿００００から１Ｋバイト（０ｘ１０００）は、ローカル側の０ｘＦ０００＿００００から１Ｋバイト（０ｘ１０００）に対応する。また、システムホスト２の０ｘＡ０００＿１０００から１Ｋバイト（０ｘ１０００）は、ローカル側の０ｘＢ００１＿００００から１Ｋバイト（０ｘ１０００）に対応する。さらに、システムホスト２の０ｘＡ０００＿２０００から１Ｋバイト（０ｘ１０００）は、ローカル側の０ｘＢ００２＿００００から１Ｋ（０ｘ１０００）に対応する。
【０１７８】
また、システムホスト２の０ｘＡ０００＿（Ｎ＋１）０００から１Ｋバイト（０ｘ１０００）は、ローカル側の０ｘＢ００（Ｎ）＿００００から１Ｋ（０ｘ１０００）に対応する（但し、０＜Ｎ＜Ｆｈ（１６進））。さらに、システムホスト２の０ｘＡ００１＿００００から１Ｋバイト（０ｘ１０００）は、ローカル側の０ｘＢ００Ｆ＿００００から１Ｋバイト（０ｘ１０００）に対応する。
【０１７９】
このとき、図２３に示すように、ローカル側の０ｘＦ０００＿００００から１Ｋバイト（０ｘ１０００）は、高機能スイッチ部８の制御レジスタ群３２に割り当てられる。また、ローカル側の０ｘＢ０００＿００００、０ｘＢ００１＿００００、０ｘＢ００Ｎ＿００００からの、１Ｋバイト（０ｘ１０００）、および、ローカル側の０ｘＢ００Ｆ＿００００から１Ｋバイト（０ｘ１０００）は、それぞれ、ローカルデバイス（０）、（１）、（Ｎ）、および、（０ｘＦ）に割り当てられる。
【０１８０】
つまり、それぞれのローカルデバイス６のメモリ空間のうちでシステムホスト２から制御の対象となる一部が、システムホスト２側からのメモリ空間上にマッピングされる。そして、マッピングされた、それぞれを重ねる。これにより、複数のローカルデバイス６が、仮想的に一つのローカルデバイスとして、システムホスト２側からのメモリ空間（ＮＴ  Ｐｏｒｔ  ＢＡＲ０）上に再構築される。
【０１８１】
つぎに、変換されたアドレスのコンフィグレーション空間における対応関係について、図２４を用いて説明する。
【０１８２】
図２４は、図２２に示すアドレス変換の、コンフィグレーション空間における対応関係を説明する図である。なお、図２４は、複数のローカルデバイス６を、斜視図のように重ねて図示している。そして、図２４の最前面のローカルデバイス６は、図２３におけるローカルデバイス（０）に相当する。
【０１８３】
図２４に示すように、システムホスト２からローカルデバイス６へのデータ転送要求は、ノンプリフェッチバッファ空間を利用して行われる。すなわち、システムホスト２側のメモリ空間上の仮想的マッピングを用いて、データ転送要求が実行される。
【０１８４】
システムホスト２側のコンフィグレーション空間は、０ｘＡ０００＿００００〜０ｘＡ００Ｆ＿ＦＦＦＦが割り当てられる。一方、これに対応するローカルデバイス６側のコンフィグレーション空間は、図２２の（ａ）、図２３および図２４に示すように、０ｘＢ０００＿００００〜０ｘＢ０００＿ＦＦＦＦが割り当てられる。
【０１８５】
そして、システムホスト２からローカルデバイス６へのデータ転送要求時においては、図２２の（ａ）に示すアドレス変換テーブルにより、システムホスト２側のアドレスがローカルデバイス６側のアドレスへ変換される。
【０１８６】
また、ローカルデバイス６からシステムホスト２へのデータ転送要求時においては、ノンプリフェッチバッファ空間以外の空間（図２４では、プリフェッチバッファ空間）が利用される。
【０１８７】
このとき、ローカルデバイス６側のコンフィグレーション空間は、０ｘＣ０００＿００００〜０ｘＣ０００＿０ＦＦＦが割り当てられる。一方、これに対応するシステムホスト２側のコンフィグレーション空間は、図２２の（ｂ）および図２４に示すように、０ｘＤ０００＿００００〜０ｘＤ０００＿０ＦＦＦが割り当てられる。
【０１８８】
これにより、ローカルデバイス６からシステムホスト２へのデータ転送要求時において、図２２の（ｂ）に示すアドレス変換テーブルにより、ローカルホスト１０やローカルデバイス６側のアドレスが、システムホスト２側のアドレスへ変換される。
【０１８９】
以上のように、システムホスト２と、ローカルホスト１０やローカルデバイス６、６ａとの間でアドレス変換が対応つけられる。
【０１９０】
（２．３．効果等）
以上のように、本実施の形態において、情報処理装置４は、高機能スイッチ部８を備える。システムホスト２からのＰＣＩｅバスは、高機能スイッチ部８を経由して、複数のローカルデバイス（ＰＣＩｅデバイス）６、６ａと、ローカルデバイスを制御するローカルホスト１０と、に接続される。システムホスト２側のＰＣＩｅバスと、ローカルホスト１０側のＰＣＩｅバスとの、バス番号およびアドレス体系は、それぞれ独立して構成される。高機能スイッチ部８は、データ入出力ポートとしてのノントランスペアレントポート２６、２８と、システムホスト２とローカルホスト１０との通信用の制御レジスタ群３２と、を備える。制御レジスタ群３２は、ローカルホスト１０とＰＣＩｅバスで直接接続され、システムホスト２からはメモリ空間上にマッピングされる。システムホスト２は、ローカルデバイス６、６ａに対するコマンドを、制御レジスタ群３２を用いて要求し、ローカルホスト１０は、制御レジスタ群３２に要求されたコマンドを解釈してローカルデバイス６、６ａに対してコマンドを発行する。さらに、ローカルデバイス６、６ａは、コマンドの完了の割り込みをローカルホスト１０へ通知し、ローカルホスト１０は制御レジスタ群３２を通じてシステムホスト２へコマンドの完了を通知する。システムホスト２とローカルデバイス６、６ａとの間のデータ転送は、高機能スイッチ部８を介して行われ、高機能スイッチ部８は、ローカルホスト１０側のアドレスおよびリクエスタＩＤをシステムホスト２側のアドレスおよびリクエスタＩＤへ変換する。そして、高機能スイッチ部８は、ローカルホスト１０側とシステムホスト２側との間で、ＰＣＩｅパケットを転送する。ローカルデバイス６がマスタ転送機能を備える場合、それぞれのローカルデバイス６のメモリ空間の内で、システムホスト２から制御の対象となる一部を、システムホスト２側からのメモリ空間上にマッピングし、複数のローカルデバイス６を一つのローカルデバイス６として、仮想的に再構築するように構成される。
【０１９１】
この構成によれば、複数のローカルデバイス６と接続する場合、情報処理装置は、システムホスト２から見てローカルデバイス６の必要なレジスタを適切にメモリ空間にマッピングする。これにより、システムホスト２側のリソース不足を解消できる。
【０１９２】
（他の実施の形態）
以上のように、本出願において開示する技術の例示として、実施の形態１〜２を説明した。しかしながら、本開示における技術は、これに限定されず、変更、置き換え、付加、省略などを行った実施の形態にも適用可能である。また、上記実施の形態１〜２で説明した各構成要素を組み合わせて、新たな実施の形態とすることも可能である。
【０１９３】
例えば、本開示は、システムホストとＰＣＩｅバスで接続される情報処理装置である。情報処理装置は、ローカルホストと、高機能スイッチ部を備える。高機能スイッチ部は、データ入出力ポートとしてのノントランスペアレントポートと、システムホストの通信用の制御レジスタ群を有する。システムホストのＰＣＩｅバスは、情報処理装置を経由して、ローカルデバイスに接続される。ノントランスペアレントポートにより、システムホスト側のＰＣＩｅバスと、ローカルホスト側のＰＣＩｅバスとの、バス番号およびアドレス体系は、それぞれ独立して構成される。制御レジスタ群は、ローカルホストからは直接制御され、システムホストからはシステムホスト側のメモリ空間上にマッピングされる。ローカルホストは、システムホストからシステムホスト側のメモリ空間上にマッピングされた制御レジスタ群に要求されたコマンドを解釈して、ローカルデバイスに対してコマンドを発行する。ローカルホストは、ローカルデバイスからの、コマンドの完了の割り込みを受信し、制御レジスタ群を通じてシステムホストへコマンドの完了を通知する。システムホストとローカルデバイスとの間のデータ転送は、高機能スイッチ部を介して行われる。高機能スイッチ部は、ローカルホスト側のアドレスおよびリクエスタＩＤを、システムホスト側のアドレスおよびリクエスタＩＤへ変換して、ローカルデバイスとシステムホスト側との間で、ＰＣＩｅパケットを転送するように構成してもよい。
【０１９４】
また、本開示の情報処理装置の高機能スイッチ部は、ローカルデバイスの情報処理装置への挿抜を検出する挿抜検出部を、さらに備える。挿抜検出部は、ローカルデバイスの挿抜発生時において、挿抜の発生をローカルホストへ通知し、ローカルホストは、挿抜発生の割り込みを、制御レジスタ群を介してシステムホストに通知する構成としてもよい。
【０１９５】
また、本開示の情報処理装置のローカルホストは、ローカルデバイスの挿入後に、接続されたローカルデバイスを確認することで転送方式を決定する。そして、決定された転送方式に応じて、システムホストからシステムホスト側のメモリ空間上にマッピングされた制御レジスタ群に要求されたコマンドを解釈して、ローカルデバイスに対してコマンドを発行する場合と、システムホストからシステムホスト側のメモリ空間上にマッピングされた制御レジスタ群に要求されたコマンドを、直接、ローカルデバイスに対してコマンドを発行する場合と、を切り替える構成としてもよい。
【０１９６】
また、本開示の情報処理装置は、転送方式がＮＶＭｅの場合、ローカルホストは、システムホストからシステムホスト側のメモリ空間上にマッピングされた制御レジスタ群に要求されたコマンドを、直接、ローカルデバイスに対してコマンドを発行する。転送方式がＮＶＭｅでない場合、ローカルホストは、システムホストからシステムホスト側のメモリ空間上にマッピングされた制御レジスタ群に要求されたコマンドを解釈して、ローカルデバイスに対してコマンドを発行する構成としてもよい。
【０１９７】
また、本開示の情報処理装置は、システムホスト、情報処理装置、複数のＰＣＩｅデバイスの通信経路が、他の通信プロトコルのパケットにラッピングして通信して、ＰＣＩｅパケットを等価的に送受信可能に構成してもよい。
【０１９８】
また、本開示の情報処理装置は、通信経路のＰＣＩｅパケットは、アドレスおよびリクエスタＩＤに基づいて、ＰＣＩパケットをスイッチングするバスで構成してもよい。
【０１９９】
また、本開示の情報処理装置は、一つのＰＣＩｅバスに複数のデバイスが論理的に接続されるマルチファンクションデバイスに対応する場合、図２５に示すように構成としてもよい。つまり、図２５に示す情報処理装置は、Ｔａｇ変換部１０３とマルチファンクションコントローラ１００とローカルデバイス＃０、＃１（１０１、１０２）を有する。そして、Ｔａｇ変換部１０３は、システムホスト２とアダプタ４との間のＴａｇの値を、アダプタ４とマルチファンクションコントローラ１００間のファンクション番号の値へ変換する構成としてもよい。
【０２００】
具体的なＴａｇ変換部１０３の動作について、図２６から図２８を用いて説明する。
【０２０１】
図２６は、図２５の情報処理装置を含む情報処理システムにおける、Ｔａｇ変換部の具体的な変換値の一例を示す図である。図２７は、同実施の形態のデバイス制御レジスタ内の拡張Ｔａｇフィールド有効ビットを説明する図である。図２８は、同実施の形態のリクエスタＩＤおよびＴａｇを説明する図である。
【０２０２】
図２６に示すように、まず、システムホスト２とローカルデバイス＃０（１０１）の変換は、拡張Ｔａｇの上位３ビットに００１ｂを設定する。設定された拡張Ｔａｇの上位ビット００１ｂを、高機能スイッチ部８に設けたＴａｇ変換部１０３で、ファンクション番号０に変換する。さらに、拡張Ｔａｇの上位３ビットを０００ｂに置き換える。なお、図２６に示す拡張Ｔａｇの下位５ビットｘｘｘｘｘｂは、転送元のデバイスがＰＣＩｅの転送時に付加している値をそのまま利用する。
【０２０３】
同様に、システムホスト２とローカルデバイス＃１（１０２）と間の変換は、図２６に示すように、まず、拡張Ｔａｇの上位３ビットに０１０ｂを設定する。設定された拡張Ｔａｇの上位ビット０１０ｂを、Ｔａｇ変換部１０３で、ファンクション番号１に変換する。さらに、拡張Ｔａｇの上位３ビットを０００ｂに置き換える。
【０２０４】
そして、図２７に示すように、拡張Ｔａｇを有効にするデバイスコントロールレジスタのＥｘｔｅｎｄｅｄ  Ｔａｇ  Ｆｉｅｌｄ  Ｅｎａｂｌｅビットを有効にする。これにより、拡張Ｔａｇの上位３ビットを利用することが可能になる。なお、図２８に示す拡張Ｔａｇ８ビット中の上位３ビットが、拡張Ｔａｇ領域に対応する。このように、本開示の情報処理装置がマルチファンクションデバイスに対応する場合、Ｔａｇ変換部１０３で、Ｔａｇの値を拡張して拡張Ｔａｇを変換する。そして、変換した拡張Ｔａｇに基づいて、対応するローカルデバイス二対して、ＰＣＩｅパケットのスイッチングを行うように構成してもよい。
【０２０５】
また、本開示の情報処理装置を含む情報処理システムは、図２９に示すように、システムホスト２に複数のアダプタ４ａ〜４ｂを接続する構成としてもよい。
【０２０６】
図２９は、さらに別の実施の形態における、情報処理装置を含む情報処理システムの概略のブロック図である。
【０２０７】
図２９に示すように、本開示の情報処理装置を含む情報処理システムは、システムホスト２にアダプタ４ａ、４ｂが、例えばディジーチェイン（ｄａｉｓｅｙ  Ｃｈａｉｎ）形式で接続される。そして、アダプタ４ａ、４ｂは、ブリッジ１１０ａ〜１１０ｂにより、自分のアダプタ４ａ、４ｂに関連するＰＣＩｅパケットを自分の高機能スイッチ８ａ、８ｂへスイッチングする。高機能スイッチ８ａ、８ｂは、エンドポイントとしてＰＣＩｅバスを終端する。
【０２０８】
リムーバブルメディア１１３ａ、１１３ｂ内のローカルデバイス１１１ａ、１１１ｂ、１１１ｃ、１１１ｄは、ＰＣＩｅスイッチ１１２ａ、１１２ｂを経由して、アダプタ４ａ、４ｂに接続される。
【０２０９】
つまり、高機能スイッチ８ａ、８ｂで、ＰＣＩｅバスをエンドポイントとして終端する。これにより、リムーバブルメディア１１３ａ、１１３ｂ内のバス番号が変わっても、システムホスト２側の構成には変更が生じない。そのため、リムーバブルメディア１１３ａ、１１３ｂの挿抜への対応が容易にできる。
【０２１０】
なお、上記各実施の形態では、高機能スイッチ部８は、制御レジスタ群３２に要求されたコマンドを解釈して、ＰＣＩｅデバイスに対してコマンドを発行する構成を例に説明したが、これに限られない。例えば、システムホスト２側とアダプタ４側がＮＶＭｅ（Ｎｏｎ  Ｖｏｌａｔｉｌｅ  Ｍｅｍｏｒｙ  Ｅｘｐｒｅｓｓ）で、ローカルデバイス６側がＳＡＴＡ（Ｓｅｒｉａｌ−ＡＴＡ）など、システムホスト２と、アダプタ４と、ローカルデバイス６と、が異なる転送方式の場合、高機能スイッチ部８は、制御レジスタ群３２に要求されたコマンドを解釈して、ＰＣＩｅデバイスに対してコマンドを発行する構成としてもよい。
【０２１１】
一方、システムホスト２と、アダプタ４と、ローカルデバイス６と、が同一の転送方式（ＮＶＭｅ）の場合、高機能スイッチ部８は、コマンドを解釈せず、直接、ローカルデバイス６へコマンドを発行するように切り替える構成としてもよい。これらの構成により、アダプタ４の高機能スイッチ部８は、接続されるローカルデバイスに応じて、適切に処理を切り替えることができる。
【０２１２】
なお、上述の実施の形態は、本開示における技術を例示するためのものであるから、請求の範囲またはその均等の範囲において種々の変更、置き換え、付加、省略などを行うことができる。
【産業上の利用可能性】
【０２１３】
本開示は、複数のリムーバブルメディアが装着される情報処理装置に適用可能である。具体的には、ビデオサーバなどに、本開示は適用可能である。
【符号の説明】
【０２１４】
２    システムホスト
４，４ａ，４ｂ    アダプタ（情報処理装置）
６，６ａ，１０１，１０２，１１１ａ，１１１ｂ，１１１ｃ，１１１ｄ    ローカルデバイス（ＰＣＩｅデバイス）
８    高機能スイッチ部
８ａ，８ｂ    高機能スイッチ
１０    ローカルホスト
１２    スロット
１４    不揮発性メモリ
２０，７０    メモリ
２２，６８    ルートコンプレクス
２４    プロセッサ（ＣＰＵ）
２６，２８    ＮＴポート（ノントランスペアレントポート）
３０    イベント通知部
３２    制御レジスタ群
３４    システムホスト割込送信部
３６    ローカルホスト割込送信部
３８    挿抜検出部
４０    パケット転送部
４２    アドレス変換テーブル
４４    ＲｅｑＩＤ変換テーブル
４６    アドレス変換部
４７    ＤＭＡ転送部
４８    ＲｅｑＩＤ変換部
５０    ＰＣＩｅスイッチ
５８    ローカル制御部
６０    ローカルデバイス初期化部
６２    ローカルデバイス種別判別部
６４    アドレス変換テーブル設定部
６６    ＲｅｑＩＤ変換テーブル設定部
７６，７６ａ    コマンド解析部
７７    マスタ機能部
７８，７８ａ    データ転送部
１００    マルチファンクションコントローラ
１０３    Ｔａｇ変換部
１１０ａ，１１０ｂ    ブリッジ
１１２ａ，１１２ｂ    ＰＣＩｅスイッチ
１１３ａ，１１３ｂ    リムーバブルメディア
【図１】
2017154943.tif 000003
【図２】
2017154943.tif 000004
【図３】
2017154943.tif 000005
【図４】
2017154943.tif 000006
【図５】
2017154943.tif 000007
【図６】
2017154943.tif 000008
【図７】
2017154943.tif 000009
【図８】
2017154943.tif 000010
【図９】
2017154943.tif 000011
【図１０】
2017154943.tif 000012
【図１１】
2017154943.tif 000013
【図１２】
2017154943.tif 000014
【図１３】
2017154943.tif 000015
【図１４】
2017154943.tif 000016
【図１５】
2017154943.tif 000017
【図１６】
2017154943.tif 000018
【図１７】
2017154943.tif 000019
【図１８】
2017154943.tif 000020
【図１９】
2017154943.tif 000021
【図２０】
2017154943.tif 000022
【図２１】
2017154943.tif 000023
【図２２】
2017154943.tif 000024
【図２３】
2017154943.tif 000025
【図２４】
2017154943.tif 000026
【図２５】
2017154943.tif 000027
【図２６】
2017154943.tif 000028
【図２７】
2017154943.tif 000029
【図２８】
2017154943.tif 000030
【図２９】
2017154943.tif 000031
【手続補正書】
【提出日】平成30年8月31日(2018.8.31)
【手続補正１】
【補正対象書類名】明細書
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、ホストとデバイス間でデータ転送を行う情報処理装置に関する。
【背景技術】
【０００２】
高速シリアルインターフェースとして、ＰＣＩ  Ｅｘｐｒｅｓｓ（登録商標：以下、「ＰＣＩｅ」と記す）が、パーソナルコンピュータなどの様々な電子機器に使用されている。
【０００３】
ＰＣＩｅは、例えばビデオサーバをシステムホストとし、メモリカードをローカルデバイスとするシステム構成などに用いられている（例えば、特許文献１から特許文献４参照）。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１４−２５４５号公報
【特許文献２】特開２０１３−４５２３６号公報
【特許文献３】特開２０１３−８８８７９号公報
【特許文献４】特開２０１２−３８０３７号公報
【発明の概要】
【０００５】
本開示は、システムホストとローカルホストとを含むＰＣＩｅバスを用いた情報処理システムにおいて、ローカルデバイスを構成する複数のＰＣＩｅデバイスと、システムホストとの間で、高速のデータ転送を実現するとともに、システムホスト側のリソース不足を解消できる情報処理装置を提供する。
【０００６】
つまり、本開示は、システムホストとＰＣＩｅバスで接続される情報処理装置である。情報処理装置は、ローカルホストと、高機能スイッチ部を備える。高機能スイッチ部は、データ入出力ポートとしてのノントランスペアレントポートと、システムホストの通信用の制御レジスタ群を有する。システムホストのＰＣＩｅバスは、情報処理装置を経由して、ローカルデバイスに接続される。ノントランスペアレントポートにより、システムホスト側のＰＣＩｅバスと、ローカルホスト側のＰＣＩｅバスとの、バス番号およびアドレス体系は、それぞれ独立して構成される。制御レジスタ群は、ローカルホストからは直接制御され、システムホストからはシステムホスト側のメモリ空間上にマッピングされる。ローカルホストは、システムホストからシステムホスト側のメモリ空間上にマッピングされた制御レジスタ群に要求されたコマンドを解釈して、ローカルデバイスに対してコマンドを発行する。ローカルホストは、ローカルデバイスからの、コマンドの完了の割り込みを受信し、制御レジスタ群を通じてシステムホストへコマンドの完了を通知する。システムホストとローカルデバイスとの間のデータ転送は、高機能スイッチ部を介して行われる。高機能スイッチ部は、ローカルホスト側のアドレスおよびリクエスタＩＤを、システムホスト側のアドレスおよびリクエスタＩＤへ変換して、ローカルデバイスとシステムホスト側との間で、ＰＣＩｅパケットを転送するように構成される。
【０００７】
本開示の情報処理装置によれば、システムホストとローカルホストとを含む情報処理システムにおいて、二つのホストのドメインを分離して、ローカルデバイスを構成するＰＣＩｅデバイスとシステムホストとの間のデータ転送を高速で行うことができる。また、複数のＰＣＩｅデバイスと接続する場合、システムホストから見てＰＣＩｅデバイスの接続に必要なレジスタをメモリ空間に適切にマッピングする。これにより、システムホスト側のリソース不足を解消できる。
【図面の簡単な説明】
【０００８】
【図１】図１は、実施の形態１に係る情報処理装置を含む情報処理システムの概略のブロック図である。
【図２】図２は、同実施の形態に係る情報処理装置を含む情報処理システムの詳細なブロック図である。
【図３】図３は、同実施の形態に係る情報処理装置の動作を示すフロー図である。
【図４】図４は、同実施の形態に係る情報処理装置におけるアダプタ初期化処理の動作を示すシーケンス図である。
【図５】図５は、同実施の形態に係る情報処理装置における、ローカルデバイス挿入時の初期化処理の動作を示すシーケンス図である。
【図６】図６は、同実施の形態に係る情報処理装置における、データ転送処理の動作を示すシーケンス図である。
【図７】図７は、同実施の形態に係る情報処理装置における、ローカルデバイス抜去時の処理の動作を示すシーケンス図である。
【図８】図８は、コンフィグレーションレジスタにおけるコンフィグレーション空間（タイプ０）を示す図である。
【図９】図９は、コンフィグレーションレジスタにおけるコンフィグレーション空間（タイプ１）を示す図である。
【図１０】図１０は、リクエスタ（Ｒｅｑｕｅｓｔｏｒ）ＩＤ変換テーブルの例を示す図である。
【図１１】図１１は、機能（Ｃａｐａｂｉｌｉｔｙ）レジスタの説明図である。
【図１２】図１２は、ＭＳＩ（Ｍｅｓｓａｇｅ  Ｓｉｇｎａｌｌｅｄ  Ｉｎｔｅｒｒｕｐｔ）の機能構造（Ｃａｐａｂｉｌｉｔｙ  Ｓｔｒｕｃｔｕｒｅ）の内容を説明する図である。
【図１３】図１３は、同実施の形態におけるアドレス変換テーブルの例を示す図である。
【図１４】図１４は、同実施の形態における、システムホストとローカルデバイス側とにおける、アドレスの対応例を示す図である。
【図１５】図１５は、同実施の形態における、システムホストとローカルデバイス側とにおける、アドレスの対応例を説明する図である。
【図１６】図１６は、実施の形態２に係る情報処理装置を含む情報処理システムの概略のブロック図である。
【図１７】図１７は、同実施の形態に係る情報処理装置を含む情報処理システムの詳細なブロック図である。
【図１８】図１８は、同実施の形態に係る情報処理装置の動作を示すフロー図である。
【図１９】図１９は、同実施の形態に係る情報処理装置におけるアダプタとローカルデバイスの初期化処理の動作を示すシーケンス図である。
【図２０】図２０は、同実施の形態に係る情報処理装置における、アダプタ初期化処理の動作、および、ローカルデバイスのテーブル設定処理の動作を示すシーケンス図である。
【図２１】図２１は、同実施の形態に係る情報処理装置における、マスタ機能部を有する場合のデータ転送処理の動作、および、マスタ機能部を備えない場合のデータ転送処理の動作を示すシーケンス図である。
【図２２】図２２は、同実施の形態における、アドレス変換テーブルの例を示す図である。
【図２３】図２３は、同実施の形態における、システムホストとローカルデバイス側とにおける、アドレスの対応例を示す図である。
【図２４】図２４は、同実施の形態における、システムホストとローカルデバイス側とにおける、アドレスの対応例を説明する図である。
【図２５】図２５は、別の実施の形態における、情報処理装置を含む情報処理システムの概略のブロック図である。
【図２６】図２６は、同実施の形態における、リクエスタ（Ｒｅｑｕｅｓｔｏｒ）ＩＤ変換テーブルの例を示す図である。
【図２７】図２７は、同実施の形態における、デバイス制御レジスタ内の拡張Ｔａｇフィールド有効ビットを説明する図である。
【図２８】図２８は、同実施の形態における、リクエスタＩＤおよびＴａｇを説明する図である。
【図２９】図２９は、さらに別の実施の形態における、情報処理装置を含む情報処理システムの概略のブロック図である。
【発明を実施するための形態】
【０００９】
以下、図面を参照しながら、実施の形態を詳細に説明する。但し、必要以上に詳細な説明は省略する場合がある。例えば、既によく知られた事項の詳細説明や実質的に同一の構成に対する重複説明を省略する場合がある。これは、以下の説明が不必要に冗長になるのを避け、当業者の理解を容易にするためである。
【００１０】
なお、添付図面および以下の説明は、当業者が本開示を十分に理解するために提供されるのであって、これらによって特許請求の範囲に記載の主題を限定することを意図するものではない。
【００１１】
（実施の形態に至る経緯）
ＰＣＩｅを使用する情報処理システムは、ホスト機能を有するルートコンプレクスが最上位デバイスとして構成される。ルートコンプレクスは、ローカルデバイスを構成するＰＣＩｅデバイスが、ポイント・ツー・ポイントでツリー状に接続される。通常、一つのＰＣＩｅデバイスツリーには、一つのルートコンプレクスのみが接続される。つまり、情報処理システムは、通常、複数のホスト（例えば、システムホストとローカルホスト）をそれぞれのドメインで制御を完全に分離できない。そのため、上記情報処理システムでは、複数のホストが互いの動作を制約する。
【００１２】
そこで、複数のホストをそれぞれのドメインで分離処理するために、データ転送先を分離するアドレスフィルタを設けた情報処理システムがある。しかし、この場合でも、部分的にアドレスをフィルタリングしているのみで、複数のホストの制御を完全に分離することはできない。
【００１３】
また、上記課題を解決するために、ノントランスペアレントポート（以下、「ＮＴポート」と記す）を有するＰＣＩｅスイッチを使用して、複数のホストの制御を分離するシステムが提案されている。つまり、システムホストとローカルホストのそれぞれにルートコンプレクスを設け、互いにＮＴポートを有するＰＣＩｅスイッチを介して接続する。これにより、システム領域（管理領域）を分離した上で、システムホストとローカルホストとの通信を可能にしている。しかし、上記システムの場合、ローカルデバイスからシステムホストへのデータ転送が、ローカルホストによる制御により制限される。そのため、データ転送の速度が、低速化する。
【００１４】
そこで、本実施の形態は、システムホストとローカルホストとを含む情報処理システムにおいて、二つのホストのドメインを分離しながら、ローカルデバイスとシステムホストとの間の高速のデータ転送を実現する情報処理装置を提供する。
【００１５】
また、本実施の形態は、複数のＰＣＩｅデバイスを構成するローカルデバイスと接続する場合、システムホストから見てローカルデバイスの接続に必要なレジスタをメモリ空間に適切にマッピングする。これにより、システムホスト側のリソース不足を解消できる情報処理装置を提供する。
【００１６】
（実施の形態１）
以下、図１から図１５を参照して、実施の形態１の情報処理装置を含む情報処理システムについて説明する。
【００１７】
（１．１．情報処理装置の構成）
まず、本実施の形態の情報処理装置を含む情報処理システムの概略構成について、図１を用いて説明する。
【００１８】
図１は、実施の形態１に係る情報処理装置を含む情報処理システムの概略のブロック図である。
【００１９】
図１に示すように、情報処理システムは、システムホスト２、アダプタ４、および、ローカルデバイス６などで構成される。アダプタ４は、情報処理装置を構成し、高機能スイッチ部８、ローカルホスト１０、スロット１２などを含む。ローカルデバイス６は、ＰＣＩｅデバイスを構成し、不揮発性メモリ１４などを含む。
【００２０】
システムホスト２、アダプタ４、ローカルデバイス６は、ＰＣＩｅバスおよびスロット１２を介して、接続される。
【００２１】
なお、ローカルホスト１０は、アダプタ４の外部や、高機能スイッチ部８の内部などに設けてもよい。また、ローカルデバイス６は、例えばリムーバブルメディアなどで例示されるが、特定の種類に限定されない。
【００２２】
つぎに、情報処理装置を含む情報処理システムの構成について、図２を用いて、詳細に説明する。
【００２３】
図２は、同実施の形態に係る情報処理装置を含む情報処理システムの詳細なブロック図である。
【００２４】
図２に示すように、システムホスト２は、主記憶であるメモリ２０、ＣＰＵなどのプロセッサ２４、および、ルートコンプレクス２２などを備える。
【００２５】
ルートコンプレクス２２は、ＰＣＩｅのツリーのルートとなるデバイスを構成する。ルートコンプレクス２２は、例えばアダプタ４などの端末側へ向かう方向へ設けられたポートであるＤＳＰ（Ｄｏｗｎ  Ｓｔｒｅａｍ  Ｐｏｒｔ）２５を有する。一方、後述するＵＳＰ（Ｕｐ  Ｓｔｒｅａｍ  Ｐｏｒｔ）は、端末側から上流（プロセッサ２４）へ向かう方向へ設けられたポートである。
【００２６】
ローカルデバイス６は、上述の不揮発性メモリ１４の他に、コマンド解析部７６、データ転送部７８、および、ＵＳＰ７４などを備える。コマンド解析部７６は、ＵＳＰ７４から入力されるデータ転送コマンドを受け付けて、その内容を解釈し、データ転送コマンドの内容に応じた処理を行う。データ転送部７８は、コマンド解析部７６で解釈したコマンドがデータ転送を伴うコマンドの場合、ＵＳＰ７４からＰＣＩｅバスを介してデータ転送を行う。なお、ローカルデバイス６は、データ転送を行う際に、自ら主体となってデータ転送を行う機能であるマスタ機能部を備えてもよい。マスタ機能部の詳細は、後述する。
【００２７】
情報処理装置を構成するアダプタ４は、高機能スイッチ部８、ローカルホスト１０などを備える。なお、ローカルホスト１０は、上述したように、外部に設けてもよい。
【００２８】
高機能スイッチ部８は、ＵＳＰのＮＴポート２６（ノントランスペアレントポート）、ＤＳＰのＮＴポート２８、イベント通知部３０、パケット転送部４０、およびＰＣＩｅスイッチ５０などを備える。
【００２９】
なお、ＰＣＩｅを用いた情報処理システムの構成は、通常、上述したように、ルートコンプレクスをルートとするツリー構造の形態を取る。そのため、ＰＣＩｅに接続される全てのデバイスは、ルートコンプレクスからのアクセスが可能となる。しかし、上述のように、基本的に、ＰＣＩｅを用いた情報処理システムは、ホスト毎やデバイス毎のドメインの分離や、複数のルートコンプレクスを設けることができない。
【００３０】
そこで、本実施の形態では、スイッチである高機能スイッチ部８をエンドポイントデバイスとして扱う。これにより、スイッチに繋がる、例えば二つのシステムホストおよびローカルホストのドメインを分離する形態を実現できる。このとき、ＮＴポート２６およびＮＴポート２８が、上記分離形態を実現するポートを構築する。
【００３１】
高機能スイッチ部８のイベント通知部３０は、複数の制御レジスタから成る制御レジスタ群３２、システムホスト割込送信部３４、ローカルホスト割込送信部３６、および、挿抜検出部３８などを備える。制御レジスタ群３２は、システムホスト２とローカルホスト１０とからアクセス可能な通信用のレジスタ群を構成する。制御レジスタ群３２は、システムホスト２とローカルホスト１０との間でメッセージの交換を行うためのレジスタおよびメモリ領域を有する。なお、制御レジスタ群３２は、システムホスト２からアダプタ４への要求コマンドの登録や、アダプタ４からシステムホスト２へのコマンド完了の通知に用いられる。
【００３２】
システムホスト割込送信部３４は、制御レジスタ群３２の特定のレジスタを監視する。そして、システムホスト割込送信部３４は、ローカルホスト１０から特定のレジスタへの書き込みを検出した場合、システムホスト２への割り込みにより、イベントをシステムホスト２に通知する。
【００３３】
ローカルホスト割込送信部３６は、システムホスト割込送信部３４と同様に、制御レジスタ群３２の特定のレジスタを監視する。そして、ローカルホスト割込送信部３６は、システムホスト２から特定のレジスタへの書き込みを検出した場合、ローカルホスト１０への割り込みにより、イベントをローカルホスト１０に通知する。
【００３４】
挿抜検出部３８は、ローカルデバイス６がスロット１２に挿入されているか、抜き去られているかを示す信号線を監視する。そして、挿抜検出部３８は、信号線の状態が変化した時に、ローカルホスト割込送信部３６に対して、ローカルホスト１０への割り込みを要求する。
【００３５】
高機能スイッチ部８のパケット転送部４０は、アドレス変換テーブル４２、ＲｅｑＩＤ変換テーブル４４、アドレス変換部４６、および、ＲｅｑＩＤ変換部４８などを備える。アドレス変換テーブル４２は、アドレス領域における、システムホスト側の体系と、ローカルホスト側の体系との整合を取るための、対応関係を記述するテーブルである。なお、システムホスト側とローカルホスト側のアドレスの体系は、それぞれに対して独立した体系で構成される。なお、上記体系とは、システムホスト側／ローカルホスト側を動作させるためにそれぞれの設定（コンフィグレーション）を完了して初期化が完了した状態を意味する。
【００３６】
ＲｅｑＩＤ変換テーブル４４は、バス番号、デバイス番号、ファンクション番号から構成される。ＲｅｑＩＤ変換テーブル４４は、ＲｅｑＩＤ（Ｒｅｑｕｅｓｔｏｒ  ＩＤ）における、システムホスト側の体系とローカルホスト側の体系との整合を取るための、対応関係を記述するテーブルである。なお、システムホスト側とローカルホスト側のバス番号の体系は、それぞれに対して独立した体系で構成される。
【００３７】
アドレス変換部４６は、システムホストからローカルホスト側へデータを転送する場合、アドレス変換テーブル４２の情報に基づいて、システムホスト側のアドレスをローカルホスト側のアドレスへ変換する。同様に、ローカルホスト側からシステムホスト側へデータを転送する場合、アドレス変換テーブル４２の情報に基づいて、ローカルホスト側のアドレスをシステムホスト側のアドレスへ変換する。
【００３８】
ＲｅｑＩＤ変換部４８は、システムホスト側からローカルホスト側へリクエスタ（Ｒｅｑｕｅｓｔｏｒ）を転送する場合、ＲｅｑＩＤ変換テーブル４４の情報に基づいて、システムホスト側のＲｅｑＩＤをローカル側のＲｅｑＩＤへ変換する。同様に、ローカルホスト側からシステムホスト側へリクエスタを転送する場合、ＲｅｑＩＤ変換テーブル４４の情報に基づいて、ローカルホスト側のＲｅｑＩＤをシステムホスト側のＲｅｑＩＤへ変換する。
【００３９】
なお、図１０に、システムホスト側とローカル側のリクエスタＩＤを変換するための、ＲｅｑＩＤ変換テーブル４４の一例を示す。
【００４０】
また、ＰＣＩｅを用いた情報処理システムの構成は、ピアツーピア接続が基本である。そのため、ＰＣＩｅスイッチ５０は、複数のＰＣＩｅポートを備えている。これにより、ＰＣＩｅポートを介して、複数のローカルデバイスとの接続が可能となる。
【００４１】
ローカルホスト１０は、図２に示す実施の形態では、アダプタ４の内部に設けられている。ローカルホスト１０は、ローカル制御部５８、ルートコンプレクス６８、および、主記憶であるメモリ７０などを備える。
【００４２】
ローカル制御部５８は、ローカルデバイス初期化部６０、ローカルデバイス種別判別部６２、アドレス変換テーブル設定部６４、および、ＲｅｑＩＤ変換テーブル設定部６６などを含む。
【００４３】
ローカルデバイス初期化部６０は、ローカルデバイス６のコンフィグレーション空間の初期設定を行い、ローカルデバイス６を動作可能な状態にする。
【００４４】
ローカルデバイス種別判別部６２は、ローカルデバイス６のコンフィグレーションレジスタを読み出して、ローカルデバイス６の種別を判別する。これにより、ローカルデバイス種別判別部６２は、その後の処理において、判別したローカルデバイスごとの処理に切り替える。
【００４５】
アドレス変換テーブル設定部６４は、システムホスト側のアドレス体系とローカルホスト側のアドレス体系とを取得する。そして、アドレス変換テーブル設定部６４は、高機能スイッチ部８のパケット転送部４０のアドレス変換テーブル４２へ、アドレスの対応を登録する。
【００４６】
ＲｅｑＩＤ変換テーブル設定部６６は、システムホスト側のＲｅｑＩＤとローカルホスト側のＲｅｑＩＤとを取得する。そして、ＲｅｑＩＤ変換テーブル設定部６６は、高機能スイッチ部８のパケット転送部４０のＲｅｑＩＤ変換テーブル４４へ、ＲｅｑＩＤの対応を登録する。
【００４７】
以上のように、情報処理装置を含む情報処理システムは構成される。
【００４８】
（１．２．情報処理装置の動作）
以下、情報処理装置を含む情報処理システムの動作について、図３を用いて説明する。
【００４９】
図３は、同実施の形態に係る情報処理システムを構築する情報処理装置およびその周辺の装置の動作を表すフロー図である。
【００５０】
図３に示すように、実施の形態の情報処理装置およびその周辺の装置は、電源オンまたはアダプタ４がシステムホスト２に挿入される（ステップＳ１）と、アダプタ初期化（ステップＳ２）、ローカルデバイスが挿入されたか否かの検出（ステップＳ３）、ローカルデバイス挿入時の初期化処理（ステップＳ４）、データ転送処理（ステップＳ５）、およびローカルデバイス抜去時の処理（ステップＳ６）などの動作を実行する。
【００５１】
なお、各動作におけるデバイスや装置間の信号およびデータの遣り取りについては、図４〜図７に示すシーケンス図を用いて、以下で詳細に説明する。
【００５２】
（１．２．１．アダプタ初期化処理）
図４は、同実施の形態にかかる情報処理装置およびその周辺の装置におけるアダプタ初期化処理の動作を示すシーケンス図である。
【００５３】
図４に示すように、まず、システムホスト２は、高機能スイッチ部８とのリンクアップを確立する（ステップＳ１０）。
【００５４】
つぎに、システムホスト２は、ルートコンプレクス２２で、コンフィグレーションレジスタにおけるコンフィグレーション空間（タイプ１）（図９参照）を設定する（ステップＳ１２）。具体的には、システムホスト２は、コンフィグレーションレジスタのメモリベース（Ｍｅｍｏｒｙ  Ｂａｓｅ）およびメモリリミット（Ｍｅｍｏｒｙ  Ｌｉｍｉｔ）を設定する。
【００５５】
つぎに、システムホスト２は、高機能スイッチ部８におけるコンフィグレーションレジスタ（タイプ０）（図８参照）を読み取る。そして、システムホスト２は、高機能スイッチ部８におけるデバイスＩＤ（Ｄｅｖｉｃｅ  ＩＤ）、ベンダＩＤ（Ｖｅｎｄｅｒ  ＩＤ）、およびクラスコード（Ｃｌａｓｓ  Ｃｏｄｅ）を確認する（ステップＳ１４）。これにより、システムホスト２は、接続されたデバイスを確認する。
【００５６】
つぎに、システムホスト２は、高機能スイッチ部８におけるコンフィグレーションレジスタ（タイプ０）（図８参照）に対して、ベースアドレスレジスタ（Ｂａｓｅ  Ａｄｄｒｅｓｓ  Ｒｅｇｉｓｔｅｒ）、およびコマンド（Ｃｏｍｍａｎｄ）を書き込んで、接続されたデバイスを設定する（ステップＳ１６）。
【００５７】
つぎに、ローカルホスト１０は、高機能スイッチ部８とのリンクアップを確立する（ステップＳ１８）。
【００５８】
つぎに、ローカルホスト１０は、ルートコンプレクス６８で、コンフィグレーションレジスタにおけるコンフィグレーション空間（タイプ１）（図９参照）を設定する（ステップＳ１９）。具体的には、ローカルホスト１０は、特に、コンフィグレーションレジスタのメモリベースおよびメモリリミットを設定する。
【００５９】
つぎに、ローカルホスト１０は、高機能スイッチ部８におけるコンフィグレーションレジスタ（タイプ０）（図８参照）を読み取る。そして、ローカルホスト１０は、高機能スイッチ部８におけるデバイスＩＤ、ベンダＩＤ、およびクラスコードを確認する（ステップＳ２０）。これにより、ローカルホスト１０は、接続されたデバイスを確認する。
【００６０】
つぎに、ローカルホスト１０は、高機能スイッチ部８におけるコンフィグレーションレジスタ（タイプ０）（図８参照）に対して、ベースアドレスレジスタ、およびコマンドを書き込んで、接続されたデバイスを設定する（ステップＳ２２）。
【００６１】
以上のように、情報処理装置およびその周辺の装置のアダプタ初期化処理が実行される。
【００６２】
（１．２．２．ローカルデバイス挿入時の初期化処理）
図５は、同実施の形態の情報処理装置およびその周辺の装置におけるローカルデバイス挿入時の初期化処理の動作を示すシーケンス図である。
【００６３】
図５に示すように、まず、ローカルデバイス６がアダプタ４のスロット１２（図１参照）に挿入される。このとき、ローカルデバイス６は、アダプタ４の挿抜検出部３８を介して高機能スイッチ部８に挿入を通知する。これにより、高機能スイッチ部８は、ローカルデバイス６の挿入を検出する（ステップＳ２４）。
【００６４】
つぎに、高機能スイッチ部８は、ローカルデバイス６とのリンクアップを確立する（ステップＳ２６）。そして、高機能スイッチ部８は、ローカルホスト割込送信部３６を介して、ローカルホスト１０にローカルデバイス６の挿入を通知する（ステップＳ２８）。
【００６５】
つぎに、ローカルホスト１０は、ローカルデバイス６におけるコンフィグレーションレジスタ（タイプ０）（図８参照）を読み取る。そして、ローカルホスト１０は、ローカルデバイス６におけるデバイスＩＤ、ベンダＩＤ、およびクラスコードを確認する（ステップＳ３０）。これにより、ローカルホスト１０は、接続されたデバイスを確認し、転送方式を決定する。
【００６６】
つぎに、ローカルホスト１０は、ローカルデバイス６におけるコンフィグレーションレジスタ（タイプ０）（図８参照）に対して、ベースアドレスレジスタ、およびコマンドを書き込んで、接続されたデバイスを設定する（ステップＳ３２）。
【００６７】
つぎに、ローカルホスト１０は、高機能スイッチ部８のパケット転送部４０におけるアドレス変換テーブル４２およびＲｅｑＩＤ変換テーブル４４を設定する（ステップＳ３４）。設定は、ローカルホスト１０のアドレス変換テーブル設定部６４およびＲｅｑＩＤ変換テーブル設定部６６を用いて、実行される。
【００６８】
つぎに、ローカルホスト１０は、ローカルデバイス６に対して、システムホスト２を割込先として設定する（ステップＳ３６）。
【００６９】
つぎに、ローカルホスト１０は、アダプタ４の高機能スイッチ部８のイベント通知部３０の所定の制御レジスタに書き込みを行う。そして、ローカルホスト１０は、高機能スイッチ部８に対して、システムホスト２への、ローカルデバイス６の挿入通知に関する割込送信要求を行う（ステップＳ３８）。これにより、高機能スイッチ部８のシステムホスト割込送信部３４は、割込送信要求を受けて、システムホスト２に、ローカルデバイス６の挿入通知に関する割込を行う（ステップＳ４０）。
【００７０】
つまり、ローカルホスト１０からシステムホスト２への割込送信が、高機能スイッチ部８の制御レジスタを介して行われる。
【００７１】
以上のように、情報処理装置およびその周辺の装置のローカルデバイス挿入時の初期化処理が実行される。
【００７２】
（１．２．３．データ転送処理）
図６は、同実施の形態の情報処理装置およびその周辺の装置における、データ転送処理の動作を示すシーケンス図である。なお、図６は、ローカルデバイス６からシステムホスト２へデータが転送される場合を例に、図示している。
【００７３】
図６に示すように、まず、システムホスト２は、アダプタ４の高機能スイッチ部８に転送コマンドを発行する（ステップＳ４２）。そして、高機能スイッチ部８は、転送コマンドを受けて、イベント通知部３０の制御レジスタ群３２における所定の制御レジスタに書き込みを行う。これにより、イベント通知部３０は、高機能スイッチ部８に対して、ローカルホスト１０への、転送コマンド発行に関する割込送信要求を行う。
【００７４】
つぎに、高機能スイッチ部８は、割込送信要求を受けて、ローカルホスト１０に、転送コマンド発行に関する割込通知を行う（ステップＳ４４）。割込通知を受けたローカルホスト１０は、ローカルデバイス６へ転送コマンドを発行する（ステップＳ４６）。
【００７５】
つぎに、ローカルデバイス６は、発行された転送コマンドの内容をコマンド解析部７６で解析する。そして、ローカルデバイス６は、解析結果に基づいて、データ転送部７８によりＰＣＩｅスイッチ５０を介して、高機能スイッチ部８に、データ、アドレス、およびＲｅｑＩＤなどを転送する（ステップＳ４８）。
【００７６】
つぎに、高機能スイッチ部８は、アドレス変換部４６およびＲｅｑＩＤ変換部４８により、転送されたアドレスおよびＲｅｑＩＤを変換する（ステップＳ４９）。
【００７７】
そして、高機能スイッチ部８は、データ、および、変換されたアドレスとＲｅｑＩＤをシステムホスト２に転送する（ステップＳ５０）。なお、データ、アドレス、およびＲｅｑＩＤなどの転送は、ＰＣＩｅパケットを用いて行われる。
【００７８】
つぎに、ローカルデバイス６は、転送処理が完了すると、完了を示す割込通知をローカルホスト１０に送る（ステップＳ５２）。なお、割込通知は、図８、図９、図１１および図１２を用いて後で、説明するように、ＭＳＩ割込により行われる。
【００７９】
つぎに、ローカルホスト１０は、完了の割込通知を受け取ると、高機能スイッチ部８のイベント通知部３０の制御レジスタ群３２における所定の制御レジスタに書き込みを行う。そして、ローカルホスト１０は、高機能スイッチ部８に対して、システムホスト２への、ローカルデバイス６の転送処理完了に関する割込送信要求を行う（ステップＳ５４）。これにより、高機能スイッチ部８のシステムホスト割込送信部３４は、割込送信要求を受けて、システムホスト２に、ローカルデバイス６の転送処理完了に関する割込通知を行う（ステップＳ５６）。
【００８０】
以上のように、情報処理装置およびその周辺の装置のデータ転送処理が実行される。
【００８１】
（１．２．４．ローカルデバイス抜去時の処理）
図７は、同実施の形態の情報処理装置およびその周辺の装置における、ローカルデバイス抜去時の処理の動作を示すシーケンス図である。
【００８２】
図７に示すように、まず、ローカルデバイス６がアダプタ４のスロット１２（図１参照）から抜去される。このとき、アダプタ４の挿抜検出部３８は、ローカルデバイス６に接続されていた信号線の電位変化により、ローカルデバイス６の抜去を検知する。そして、挿抜検出部３８を介して、高機能スイッチ部８は、ローカルデバイス６の抜去を検出する（ステップＳ５８）。
【００８３】
つぎに、高機能スイッチ部８は、イベント通知部３０のローカルホスト割込送信部３６を介して、ローカルホスト１０に、ローカルデバイス６の抜去を通知する（ステップＳ６０）。
【００８４】
つぎに、ローカルホスト１０は、高機能スイッチ部８のイベント通知部３０の制御レジスタ群３２における所定の制御レジスタに書き込みを行う。そして、ローカルホスト１０は、高機能スイッチ部８に対して、システムホスト２への、ローカルデバイス６の抜去に関する割込通知要求を行う（ステップＳ６２）。これにより、高機能スイッチ部８のシステムホスト割込送信部３４は、割込通知要求を受けて、システムホスト２に、ローカルデバイス６の抜去に関する割込通知を行う（ステップＳ６４）。
【００８５】
以上のように、情報処理装置およびその周辺の装置のローカル抜去処理が実行される。
【００８６】
つまり、上記実施の形態の情報処理システムでは、図４から図７に示すように、システムホスト２とローカルホスト１０との間の割込を含む制御コマンドの遣り取りを、高機能スイッチ部８のイベント通知部３０における制御レジスタ群３２を介して行う。また、システムホスト２とローカルホスト１０との間の、データ、アドレス、およびＲｅｑＩＤなどの遣り取りを、高機能スイッチ部８のパケット転送部４０におけるアドレス変換部４６およびＲｅｑＩＤ変換部４８を介して行う。そのため、データ転送は、ローカルホスト１０の制御による制限を受けない。これにより、データ転送の低速化は、発生しない。
【００８７】
（１．２．５．ＭＳＩ割込）
以下に、上述したＭＳＩ割込について、図８、図９、図１１および図１２を用いて、説明する。
【００８８】
まず、図８および図９に示すように、コンフィグレーションレジスタの“３４ｈ”には、「機能ポインタ（Ｃａｐａｂｉｌｉｔｉｅｓ  Ｐｏｉｎｔｅｒ）」が格納されている。“３４ｈ”のポインタは、機能（Ｃａｐａｂｉｌｉｔｙ）を格納するアドレスを示している。例えば、図１１に示すように、「機能ポインタ」を格納する“３４ｈ”には、アドレスＡ４ｈが格納されている。“Ａ４ｈ”には、機能の内容であるＣａｐａｂｉｌｉｔｙ  ＩＤが格納されている。
【００８９】
なお、Ｃａｐａｂｉｌｉｔｙ  ＩＤは、複数の設定を格納可能である。つまり、図１１に示すように、Ｃａｐａｂｉｌｉｔｙ  ＩＤが格納されるアドレスの直ぐ隣のアドレスには、次の「機能ポインタ」を示す“５Ｃｈ”が格納されている。さらに、機能ポインタの“５Ｃｈ”のＣａｐａｂｉｌｉｔｙ  ＩＤを格納するアドレスの直ぐ隣のアドレスには、次の「機能ポインタ」を示す“Ｅ０ｈ”が格納されている。このように、コンフィグレーションレジスタは、Ｃａｐａｂｉｌｉｔｙ  ＩＤが連鎖的に設けられるように構成されている。
【００９０】
つぎに、機能の内容を示すＣａｐａｂｉｌｉｔｙ  ＩＤの構成について、図１２を用いて説明する。
【００９１】
図１２の（ａ）は、Ｃａｐａｂｉｌｉｔｙ  ＩＤがＭＳＩ割込設定の場合における、Ｃａｐａｂｉｌｉｔｙの構成を表す説明図である。そして、この構成において、図１２の（ｂ）に示すように、ＭＳＩ割込のアドレス（Ｍｅｓｓａｇｅ  Ａｄｄｒｅｓｓ）として、例えば０ｘ１０００＿００００が設定されるとする。
【００９２】
このとき、ローカルデバイス６は、例えば転送コマンドを完了すると、アドレスを０ｘ１０００＿００００に設定して、メモリライトコマンドを、ローカルホスト１０に発行する。
【００９３】
ローカルホスト１０のローカル制御部５８は、発行されたメモリライトコマンドを受けて、割込が発生したと判断する。
【００９４】
以上のように、ＭＳＩ割込が実行される。
【００９５】
（１．２．６．アドレス変換の例）
以下に、システムホスト２と、ローカルホスト１０やローカルデバイス６との間のアドレス変換の一例について、図１３から図１５を用いて、説明する。
【００９６】
図１３の（ａ）は、システムホスト２からローカルデバイス６へのアドレス変換テーブルの一例を示す。図１３の（ｂ）は、ローカルデバイス６からシステムホスト２へのアドレス変換テーブルの一例を示す。
【００９７】
図１４は、図１３の（ａ）に示すシステムホスト２からローカルデバイス６へのアドレス変換の、ＢＡＲ（ベースアドレスレジスタ）空間における対応関係を示す図である。
【００９８】
図１４に示すように、システムホスト２のコンフィグレーション空間におけるアドレスは、０ｘＡ０００＿００００〜０ｘＡ０００＿ＦＦＦＦが割り当てられている。
【００９９】
このとき、図１３の（ａ）に示すように、図１４に示すシステムホスト２のアドレスのうち、０ｘＡ０００＿００００から４Ｋバイト（０ｘ１０００）は、ローカル側の０ｘＦ０００＿００００から４Ｋバイト（０ｘ１０００）に対応する。また、システムホスト２の０ｘＡ０００＿１０００から４Ｋバイト（０ｘ１０００）は、ローカル側の０ｘＢ０００＿００００から４Ｋバイト（０ｘ１０００）に対応する。
【０１００】
さらに、図１３の（ａ）に示すローカル側の０ｘＦ０００＿００００から４Ｋバイト（０ｘ１０００）は、図１４に示す高機能スイッチ部８の制御レジスタ群３２に割り当てられる。また、図１３の（ａ）に示すローカル側の０ｘＢ０００＿００００から４Ｋバイト（０ｘ１０００）は、図１４に示すローカルデバイスの一つであるローカルデバイス（０）に割り当てられる。
【０１０１】
図１５は、図１３に示すアドレス変換の、コンフィグレーション空間における対応関係を説明する図である。なお、図１５に示すローカルデバイスは、図１４におけるローカルデバイス（０）に相当する。
【０１０２】
図１５に示すように、システムホスト２からローカルデバイス６へのデータ転送要求は、ノンプリフェッチバッファ空間を利用して行われる。すなわち、システムホスト２側のメモリ空間上の仮想的マッピングを用いて、データ転送要求が実行される。
【０１０３】
システムホスト２側のコンフィグレーション空間は、０ｘＡ０００＿００００〜０ｘＡ００Ｆ＿ＦＦＦＦが割り当てられる。一方、これに対応するローカルデバイス６側のコンフィグレーション空間は、図１３の（ａ）、図１４および図１５に示すように、０ｘＢ０００＿００００〜０ｘＢ０００＿０ＦＦＦが割り当てられる。
【０１０４】
そして、システムホスト２からローカルデバイス６へのデータ転送要求時においては、図１３の（ａ）に示すアドレス変換テーブルにより、システムホスト２側のアドレスがローカルデバイス６側のアドレスへ変換される。
【０１０５】
また、ローカルデバイス６からシステムホスト２へのデータ転送要求時においては、ノンプリフェッチバッファ空間以外の空間（図１５では、プリフェッチバッファ空間）が利用される。
【０１０６】
このとき、ローカルデバイス６側のコンフィグレーション空間は、０ｘＣ０００＿００００〜０ｘＣ０００＿０ＦＦＦが割り当てられる。一方、これに対応するシステムホスト２側のコンフィグレーション空間は、図１３の（ｂ）および図１５に示すように、０ｘＤ０００＿００００〜０ｘＤ０００＿０ＦＦＦが割り当てられる。
【０１０７】
これにより、ローカルデバイス６からシステムホスト２へのデータ転送要求時において、図１３の（ｂ）に示すアドレス変換テーブルにより、ローカルホスト１０やローカルデバイス６側のアドレスが、システムホスト２側のアドレスへ変換される。
【０１０８】
以上のように、システムホスト２と、ローカルホスト１０やローカルデバイス６との間でアドレス変換が対応つけられる。
【０１０９】
（１．３．効果等）
以上のように、本実施の形態において、情報処理装置４は、システムホストとＰＣＩｅバスで接続される。情報処理装置４は、ローカルホスト１０と、高機能スイッチ部８を備える。高機能スイッチ部８は、データ入出力ポートとしてのノントランスペアレントポート２６、２８と、システムホスト２の通信用の制御レジスタ群３２を有する。システムホスト２のＰＣＩｅバスは、情報処理装置４を経由して、ローカルデバイス６に接続される。ノントランスペアレントポート２６、２８により、システムホスト２側のＰＣＩｅバスと、ローカルホスト１０側のＰＣＩｅバスとの、バス番号およびアドレス体系は、それぞれ独立して構成される。制御レジスタ群３２は、ローカルホスト１０からは直接制御され、システムホスト２からはシステムホスト側のメモリ空間上にマッピングされる。ローカルホスト１０は、システムホスト２からシステムホスト側のメモリ空間上にマッピングされた制御レジスタ群３２に要求されたコマンドを解釈して、ローカルデバイス６に対してコマンドを発行する。ローカルホスト１０は、ローカルデバイス６からの、コマンドの完了の割り込みを受信し、制御レジスタ群３２を通じてシステムホスト２へコマンドの完了を通知する。システムホスト２とローカルデバイス６との間のデータ転送は、高機能スイッチ部８を介して行われる。高機能スイッチ部８は、ローカルホスト１０側のアドレスおよびリクエスタＩＤを、システムホスト２側のアドレスおよびリクエスタＩＤへ変換して、ローカルデバイス６とシステムホスト側との間で、ＰＣＩｅパケットを転送するように構成される。
【０１１０】
これにより、情報処理装置４は、システムホスト２とローカルホスト１０とを含むＰＣＩｅを用いた情報処理システムにおいて、二つのホストのドメインを分離しながら、ローカルデバイス６とシステムホスト２との間の高速のデータ転送を実現できる。
【０１１１】
（実施の形態２）
以下、図１６から図２４を参照して、実施の形態２の情報処理装置を含む情報処理システムについて、説明する。
【０１１２】
（２．１．情報処理装置の構成）
まず、本実施の形態の情報処理装置を含む情報処理システムの概略構成について、図１６を用いて説明する。
【０１１３】
図１６は、実施の形態２に係る情報処理装置を含む情報処理システムの概略のブロック図である。
【０１１４】
なお、実施の形態２に係る情報処理装置は、図１に示す実施の形態１に係る情報処理装置と略同様の構成である。
【０１１５】
図１６に示すように、本実施の形態の情報処理装置を含む情報処理システムは、スロット１２を経由して接続される複数のローカルデバイス６、６ａと、後述する高機能スイッチ部８のパケット転送部４０にダイレクトメモリアクセス転送部４７（以下、「ＤＭＡ転送部４７」と略記する）（図１７参照）を備える点で、実施の形態１とは異なる。それ以外の構成は、図１に示す情報処理装置を含む情報処理システムと、基本的に同様の構成を備える。
【０１１６】
つまり、図１６に示すように、本実施の形態の情報処理システムは、システムホスト２、情報処理装置を構成するアダプタ４、および、マスタ機能部を有する複数のローカルデバイス６、マスタ機能部の無いローカルデバイス６ａなどで構成される。
【０１１７】
アダプタ４は、情報処理装置を構成し、高機能スイッチ部８、ローカルホスト１０、スロット１２などを含む。ローカルデバイス６、６ａは、スロット１２を介してアダプタ４と接続される。
【０１１８】
なお、ローカルホスト１０は、アダプタ４の外部や高機能スイッチ部８の内部などに設けてもよい。また、ローカルデバイス６は、例えばリムーバブルメディアなどで例示されるが、特定の種類に限定されない。
【０１１９】
以上のように、情報処理装置を含む情報処理システムの概略が構成される。
【０１２０】
つぎに、情報処理装置を含む情報処理システムの詳細な構成について、図１７を用いて説明する。
【０１２１】
図１７は、同実施の形態に係る情報処理装置を含む情報処理システムの詳細なブロック図である。
【０１２２】
なお、図１７に示す情報処理システムは、実施の形態１の情報処理システムと基本的な構成は同じであるので、以下では異なる構成について詳述する。
【０１２３】
図１７に示すように、本実施の形態の情報処理システムでは、アダプタ４のＰＣＩｅスイッチ５０は、複数のＤＳＰ（Ｄｏｗｎ  Ｓｔｒｅａｍ  Ｐｏｒｔ）を備える。ＰＣＩｅスイッチ５０には、それぞれのＤＳＰを介して、複数のローカルデバイス６、６ａが接続される。図１７では、ＤＳＰのＤＳＰ＃０（５６（０））、ＤＳＰ＃１（５６（１））、・・・、ＤＳＰ＃Ｎ−１（５６（ｎ−１））、ＤＳＰ＃Ｎ（５６（ｎ））を介して、複数（Ｎ＋１）のローカルデバイス６、６ａと接続する構成を例に図示している。
【０１２４】
このとき、ローカルデバイスには、マスタ機能部７７を備えるローカルデバイス６（ＤＳＰ＃０からＤＳＰ＃Ｎ−１）と、備えないローカルデバイス６ａ（ＤＳＰ＃Ｎ）などが含まれる。なお、マスタ機能部７７は、データ転送を行う際に、ローカルデバイス自体が主体となってデータ転送を行う機能部である。
【０１２５】
具体的には、本実施の形態のローカルデバイス６は、ＵＳＰ７４、コマンド解析部７６、マスタ機能部７７を有するデータ転送部７８などを備える。一方、ローカルデバイス６ａは、ＵＳＰ７４ａ、コマンド解析部７６ａ、データ転送部７８ａなどを備える。
【０１２６】
また、本実施の形態の情報処理システムは、上述したように、情報処理装置を構成するアダプタ４の高機能スイッチ部８のパケット転送部４０に、ＤＭＡ転送部４７を備える。
【０１２７】
ＤＭＡ転送部４７は、マスタ機能部７７を備えないローカルデバイス６ａに対して、システムホスト２からのデータの書き込みの制御、および、ローカルデバイス６ａからシステムホスト２へのデータの書き込みの制御を行う。
【０１２８】
具体的には、ＤＭＡ転送部４７は、システムホスト２からローカルデバイス６ａへのデータ書き込み時に、システムホスト２に対してメモリリードコマンドを発行してデータを取得する。そして、ＤＭＡ転送部４７は、取得したデータをローカルデバイス６ａに対して、メモリライトコマンドにより書き込む。
【０１２９】
一方、システムホスト２へローカルデバイス６ａのデータを書き込む時に、ＤＭＡ転送部４７は、ローカルデバイス６ａに対してメモリリードコマンドを発行して、データを取得する。そして、ＤＭＡ転送部４７は、取得したデータをシステムホスト２に対して、メモリライトコマンドにより書き込む。
【０１３０】
つまり、マスタ機能部７７の無いローカルデバイス６ａは、システムホスト２との間でＤＭＡ転送部４７のダイレクト転送機能を介して、データ転送が実行される。具体的には、ローカルデバイス６ａのメモリ空間とシステムホスト２側のメモリ空間との間で、ＤＭＡ転送部４７を介して、データ転送が行われる。
【０１３１】
以上のように、情報処理装置を含む情報処理システムは構成される。
【０１３２】
（２．２．情報処理装置の動作）
以下、情報処理装置を含む情報処理システムの動作について、図１８を用いて説明する。
【０１３３】
図１８は、同実施の形態に係る情報処理システムを構築する情報処理装置およびその周辺の装置の動作を表すフロー図である。
【０１３４】
図１８に示すように、本実施の形態の情報処理装置およびその周辺の装置は、電源がオンされる（ステップＳ１０１）と、アダプタとローカルデバイスの初期化処理とリンクアップ（ステップＳ１０２）、アダプタ初期化（ステップＳ１０３）、ローカルデバイスのテーブル設定処理（ステップＳ１０４）を実行する。さらに、マスタ機能部の有無の判断（ステップＳ１０５）により、マスタ機能がある場合のデータ転送処理（ステップＳ１０６）、および、マスタ機能が無い場合のデータ転送処理（ステップＳ１０７）を実行する。
【０１３５】
以下に、各動作におけるデバイスや装置間の信号およびデータの遣り取りについて、図１９から図２１に示すシーケンス図を用いて、詳細に説明する。
【０１３６】
（２．２．１．アダプタとローカルデバイスの初期化処理とリンクアップ）
図１９は、情報処理装置およびその周辺の装置におけるアダプタとローカルデバイスの初期化処理とリンクアップの動作を示すシーケンス図である。
【０１３７】
図１９に示すシーケンスでは、まず、電源がオンされ、Ｎ個（＃０から＃Ｎ−１）のマスタ機能部７７を有するローカルデバイス６と、１個（＃Ｎ）のマスタ機能部の無いローカルデバイス６ａとが、既にアダプタ４のスロット１２に挿入されている状態を想定し、以後の処理を説明する。
【０１３８】
上記の状態において、ローカルホスト１０は、ローカルデバイス６、６ａのコンフィグレーションレジスタ（タイプ０）（図８参照）を読み取る。そして、ローカルホスト１０は、例えばデバイスＩＤ（Ｄｅｖｉｃｅ  ＩＤ）、ベンダＩＤ（Ｖｅｎｄｅｒ  ＩＤ）、およびクラスコード（Ｃｌａｓｓ  Ｃｏｄｅ）などの内容を確認する（ステップＳ１１０からステップＳ１１６）。これにより、ローカルホスト１０は、接続されたデバイスを確認する。
【０１３９】
そして、内容を確認後、ローカルホスト１０は、取得したローカルデバイス６、６ａの情報に基づいて、リソースの演算を行う（ステップＳ１１７）。
【０１４０】
つぎに、ローカルホスト１０は、ローカルデバイス６、６ａのコンフィグレーションレジスタ（タイプ０）（図８参照）に対して、リソースの演算結果に基づいて、所定の内容を書き込んで、接続されたデバイスを設定する（ステップＳ１１８からステップＳ１２４）。ここで、所定の内容は、例えばベースアドレスレジスタ（Ｂａｓｅ  Ａｄｄｒｅｓｓ  Ｒｅｇｉｓｔｅｒ）、およびコマンド（Ｃｏｍｍａｎｄ）などである。
【０１４１】
つぎに、リソースの演算結果に基づいて、ローカルホスト１０は、高機能スイッチ部８のイベント通知部３０の制御レジスタ群３２へ、システムホスト２へのリソース要求のコマンドを登録する。これにより、ローカルホスト１０は、ローカルデバイスを設定する（ステップＳ１２６）。さらに、ローカルホスト１０は、制御レジスタ群３２へ、システムホスト２からのリンクアップ許可のコマンドを登録する（ステップＳ１２８）。
【０１４２】
以上のように、アダプタ４とローカルデバイス６、６ａの初期化処理とリンクアップが実行される。
【０１４３】
（２．２．２．アダプタ初期化処理）
図２０の（ａ）は、情報処理装置およびその周辺の装置におけるアダプタ初期化処理の動作を示すシーケンス図である。
【０１４４】
図２０の（ａ）に示すように、まず、システムホスト２は、高機能スイッチ部８とのリンクアップを確立する（ステップＳ１３０）。
【０１４５】
つぎに、システムホスト２は、高機能スイッチ部８におけるコンフィグレーションレジスタ（タイプ０）（図８参照）を読み取る。そして、ローカルホスト１０は、例えば高機能スイッチ部８におけるデバイスＩＤ、ベンダＩＤ、およびクラスコードなどの内容を確認する（ステップＳ１３２）。これにより、システムホスト２は、接続されたデバイスを確認する。
【０１４６】
つぎに、システムホスト２は、高機能スイッチ部８におけるコンフィグレーションレジスタ（タイプ０）（図８参照）に対して、所定の内容を書き込んで、接続されたデバイスを設定する（ステップＳ１３４）。ここで、所定の内容は、例えばベースアドレスレジスタ、およびコマンドなどである。
【０１４７】
以上のように、アダプタ４の初期化処理が実行される。
【０１４８】
（２．２．３．ローカルデバイスのテーブル設定処理）
図２０の（ｂ）は、情報処理装置およびその周辺の装置におけるローカルデバイスのテーブル設定処理の動作を示すシーケンス図である。
【０１４９】
図２０の（ｂ）に示すように、まず、システムホスト２は、高機能スイッチ部８のイベント通知部３０の制御レジスタ群３２へ、ローカルホスト１０の起動を確認するコマンドを登録する（ステップＳ１３６）。
【０１５０】
つぎに、高機能スイッチ部８は、イベント通知部３０の制御レジスタ群３２へ登録されたコマンドにより、ローカルホスト１０の起動を確認する（ステップＳ１３８）。
【０１５１】
つぎに、ローカルホスト１０は、高機能スイッチ部８のパケット転送部４０のアドレス変換テーブル４２およびＲｅｑＩＤ変換テーブル４４を設定する（ステップＳ１４０）。設定は、ローカルホスト１０のアドレス変換テーブル設定部６４およびＲｅｑＩＤ変換テーブル設定部６６を用いて、実行される。
【０１５２】
設定後、アダプタ４の高機能スイッチ部８は、割込処理により、システムホスト２へローカルホスト１０の起動を通知する（ステップＳ１４２）。
【０１５３】
以上のように、ローカルデバイスのテーブル設定処理が実行される。
【０１５４】
（２．２．４．マスタ機能部がある場合のデータ転送処理）
図２１の（ａ）は、情報処理装置およびその周辺の装置におけるマスタ機能部がある場合のデータ転送処理の動作を示すシーケンス図である。
【０１５５】
図２１の（ａ）は、マスタ機能部７７を備えるローカルデバイス６の場合のデータ転送処理を示している。
【０１５６】
図２１の（ａ）に示すように、まず、システムホスト２は、転送コマンドを、＃０から＃Ｎ−１で示す複数（Ｎ個）のローカルデバイス６に発行する（ステップＳ１４４からステップＳ１４８）。
【０１５７】
そして、転送コマンドの転送処理が完了すると、それぞれのローカルデバイス６は、システムホスト２へ向けて完了通知を行う（ステップＳ１５０からステップＳ１５６）。
【０１５８】
なお、図２１の（ａ）に示すシーケンス図において、システムホスト２からの転送コマンドにおけるアドレスおよびＲｅｑＩＤは、アダプタ４のパケット転送部４０のアドレス変換部４６およびＲｅｑＩＤ変換部４８により変換される。そして、変換された転送コマンドが、Ｎ個のうちの適切なローカルデバイス６に向けて発行される（図２２の（ａ）参照）。
【０１５９】
一方、転送コマンドを受けたローカルデバイス６がシステムホスト２にデータ（データ、アドレス、およびＲｅｑＩＤ）を転送する場合は、アドレスおよびＲｅｑＩＤが高機能スイッチ部８のアドレス変換部４６およびＲｅｑＩＤ変換部４８により変換される（図２２の（ｂ）参照）。
【０１６０】
以上により、マスタ機能があるローカルデバイス６の場合のデータ転送処理が実行される。
【０１６１】
（２．２．５．マスタ機能部が無い場合のデータ転送処理）
図２１の（ｂ）は、情報処理装置およびその周辺の装置におけるマスタ機能部が無い場合のデータ転送処理の動作を示すシーケンス図である。
【０１６２】
図２１の（ｂ）は、マスタ機能部を備えないローカルデバイス６ａの場合のデータ転送処理を示している。
【０１６３】
図２１の（ｂ）に示すように、まず、システムホスト２は、転送コマンドを発行する。そして、システムホスト２は、高機能スイッチ部８のイベント通知部３０の所定の制御レジスタに書き込みを行う。これにより、システムホスト２は、高機能スイッチ部８に対して、ローカルホスト１０への、転送コマンドの発行に関するコマンド要求を行う（ステップＳ１６０）。
【０１６４】
つぎに、高機能スイッチ部８は、コマンド要求を受けて、ローカルホスト１０に、転送コマンドの発行に関するコマンド受信通知を行う（ステップＳ１６２）。
【０１６５】
つぎに、ローカルホスト１０は、コマンド受信通知を受けると、ローカルデバイス６ａへ転送コマンドを発行する（ステップＳ１６４）。
【０１６６】
つぎに、ローカルデバイス６ａは、転送コマンドを受けて、コマンド完了を示す通知をローカルホスト１０に送る（ステップＳ１６６）。このとき、割込通知は、上述したＭＳＩ割込により実行される。
【０１６７】
つぎに、ローカルホスト１０は、高機能スイッチ部８のパケット転送部４０におけるＤＭＡ転送部４７の設定を要求する（ステップＳ１６８）。
【０１６８】
このとき、転送コマンドが、ローカルデバイス６ａからのデータの読み出し（リード）を示すコマンドの場合、ＤＭＡ転送部４７は、まず、ローカルデバイス６ａのメモリにおける該当アドレスのデータを読み出す（ステップＳ１７０）。そして、ＤＭＡ転送部４７は、データ転送後（ステップＳ１７１）、システムホスト２のメモリ２０に書き出す（ステップＳ１７２）。
【０１６９】
一方、転送コマンドが、ローカルデバイス６ａへのデータの書き込み（ライト）を示すコマンドの場合、ＤＭＡ転送部４７は、まず、システムホストのメモリのデータを読み出す（ステップＳ１７２）。そして、ＤＭＡ転送部４７は、データ転送後（ステップＳ１７１）、ローカルデバイス６ａのメモリにおける該当アドレスに書き出す（ステップＳ１７０）。
【０１７０】
つぎに、高機能スイッチ部８は、パケット転送部４０のＤＭＡ転送部４７によるデータ転送の完了を、ローカルホスト１０に発行する（ステップＳ１７４）。
【０１７１】
つぎに、ローカルホスト１０は、高機能スイッチ部８に対して、システムホスト２への、ローカルデバイス６の転送処理完了に関する割込送信要求を行う（ステップＳ１７６）。これにより、高機能スイッチ部８のシステムホスト割込送信部３４は、割込送信要求を受けて、システムホスト２に、ローカルデバイス６の転送処理完了に関する割込通知を行う（ステップＳ１７８）。
【０１７２】
以上により、マスタ機能部が無いローカルデバイス６ａの場合のデータ転送処理が実行される。
【０１７３】
（２．２．６．アドレス変換の例）
以下に、システムホスト２と、ローカルホスト１０やローカルデバイス６、６ａとの間のアドレス変換の一例について、図２２から図２４を用いて、説明する。
【０１７４】
図２２の（ａ）は、システムホスト２からローカルデバイス６へのアドレス変換テーブルの一例を示す。図２２の（ｂ）は、ローカルデバイスからシステムホストへのアドレス変換テーブルの一例を示す。
【０１７５】
図２３は、図２２の（ａ）に示すシステムホスト２からローカルデバイス６へのアドレス変換についての、ＢＡＲ（ベースアドレスレジスタ）空間における対応関係を示す図である。
【０１７６】
図２３に示すように、システムホスト２のコンフィグレーション空間におけるアドレスは、０ｘＡ０００＿００００〜０ｘＡ００１＿ＦＦＦＦが割り当てられている。
【０１７７】
このとき、図２２の（ａ）に示すように、図２３に示すシステムホスト２のアドレスのうち、０ｘＡ０００＿００００から４Ｋバイト（０ｘ１０００）は、ローカル側の０ｘＦ０００＿００００から４Ｋバイト（０ｘ１０００）に対応する。また、システムホスト２の０ｘＡ０００＿１０００から４Ｋバイト（０ｘ１０００）は、ローカル側の０ｘＢ００１＿００００から４Ｋバイト（０ｘ１０００）に対応する。さらに、システムホスト２の０ｘＡ０００＿２０００から４Ｋバイト（０ｘ１０００）は、ローカル側の０ｘＢ００２＿００００から４Ｋバイト（０ｘ１０００）に対応する。
【０１７８】
また、システムホスト２の０ｘＡ０００＿（Ｎ＋１）０００から４Ｋバイト（０ｘ１０００）は、ローカル側の０ｘＢ００（Ｎ）＿００００から４Ｋバイト（０ｘ１０００）に対応する（但し、０＜Ｎ＜Ｆｈ（１６進））。さらに、システムホスト２の０ｘＡ００１＿００００から４Ｋバイト（０ｘ１０００）は、ローカル側の０ｘＢ００Ｆ＿００００から４Ｋバイト（０ｘ１０００）に対応する。
【０１７９】
このとき、図２３に示すように、ローカル側の０ｘＦ０００＿００００から４Ｋバイト（０ｘ１０００）は、高機能スイッチ部８の制御レジスタ群３２に割り当てられる。また、ローカル側の０ｘＢ０００＿００００、０ｘＢ００１＿００００、０ｘＢ００Ｎ＿００００からの、４Ｋバイト（０ｘ１０００）、および、ローカル側の０ｘＢ００Ｆ＿００００から４Ｋバイト（０ｘ１０００）は、それぞれ、ローカルデバイス（０）、（１）、（Ｎ）、および、（０ｘＦ）に割り当てられる。
【０１８０】
つまり、それぞれのローカルデバイス６のメモリ空間のうちでシステムホスト２から制御の対象となる一部が、システムホスト２側からのメモリ空間上にマッピングされる。そして、マッピングされた、それぞれを重ねる。これにより、複数のローカルデバイス６が、仮想的に一つのローカルデバイスとして、システムホスト２側からのメモリ空間（ＮＴ  Ｐｏｒｔ  ＢＡＲ０）上に再構築される。
【０１８１】
つぎに、変換されたアドレスのコンフィグレーション空間における対応関係について、図２４を用いて説明する。
【０１８２】
図２４は、図２２に示すアドレス変換の、コンフィグレーション空間における対応関係を説明する図である。なお、図２４は、複数のローカルデバイス６を、斜視図のように重ねて図示している。そして、図２４の最前面のローカルデバイス６は、図２３におけるローカルデバイス（０）に相当する。
【０１８３】
図２４に示すように、システムホスト２からローカルデバイス６へのデータ転送要求は、ノンプリフェッチバッファ空間を利用して行われる。すなわち、システムホスト２側のメモリ空間上の仮想的マッピングを用いて、データ転送要求が実行される。
【０１８４】
システムホスト２側のコンフィグレーション空間は、０ｘＡ０００＿００００〜０ｘＡ００Ｆ＿ＦＦＦＦが割り当てられる。一方、これに対応するローカルデバイス６側のコンフィグレーション空間は、図２２の（ａ）、図２３および図２４に示すように、０ｘＢ０００＿００００〜０ｘＢ０００＿ＦＦＦＦが割り当てられる。
【０１８５】
そして、システムホスト２からローカルデバイス６へのデータ転送要求時においては、図２２の（ａ）に示すアドレス変換テーブルにより、システムホスト２側のアドレスがローカルデバイス６側のアドレスへ変換される。
【０１８６】
また、ローカルデバイス６からシステムホスト２へのデータ転送要求時においては、ノンプリフェッチバッファ空間以外の空間（図２４では、プリフェッチバッファ空間）が利用される。
【０１８７】
このとき、ローカルデバイス６側のコンフィグレーション空間は、０ｘＣ０００＿００００〜０ｘＣ０００＿０ＦＦＦが割り当てられる。一方、これに対応するシステムホスト２側のコンフィグレーション空間は、図２２の（ｂ）および図２４に示すように、０ｘＤ０００＿００００〜０ｘＤ０００＿０ＦＦＦが割り当てられる。
【０１８８】
これにより、ローカルデバイス６からシステムホスト２へのデータ転送要求時において、図２２の（ｂ）に示すアドレス変換テーブルにより、ローカルホスト１０やローカルデバイス６側のアドレスが、システムホスト２側のアドレスへ変換される。
【０１８９】
以上のように、システムホスト２と、ローカルホスト１０やローカルデバイス６、６ａとの間でアドレス変換が対応つけられる。
【０１９０】
（２．３．効果等）
以上のように、本実施の形態において、情報処理装置４は、高機能スイッチ部８を備える。システムホスト２からのＰＣＩｅバスは、高機能スイッチ部８を経由して、複数のローカルデバイス（ＰＣＩｅデバイス）６、６ａと、ローカルデバイスを制御するローカルホスト１０と、に接続される。システムホスト２側のＰＣＩｅバスと、ローカルホスト１０側のＰＣＩｅバスとの、バス番号およびアドレス体系は、それぞれ独立して構成される。高機能スイッチ部８は、データ入出力ポートとしてのノントランスペアレントポート２６、２８と、システムホスト２とローカルホスト１０との通信用の制御レジスタ群３２と、を備える。制御レジスタ群３２は、ローカルホスト１０とＰＣＩｅバスで直接接続され、システムホスト２からはメモリ空間上にマッピングされる。システムホスト２は、ローカルデバイス６、６ａに対するコマンドを、制御レジスタ群３２を用いて要求し、ローカルホスト１０は、制御レジスタ群３２に要求されたコマンドを解釈してローカルデバイス６、６ａに対してコマンドを発行する。さらに、ローカルデバイス６、６ａは、コマンドの完了の割り込みをローカルホスト１０へ通知し、ローカルホスト１０は制御レジスタ群３２を通じてシステムホスト２へコマンドの完了を通知する。システムホスト２とローカルデバイス６、６ａとの間のデータ転送は、高機能スイッチ部８を介して行われ、高機能スイッチ部８は、ローカルホスト１０側のアドレスおよびリクエスタＩＤをシステムホスト２側のアドレスおよびリクエスタＩＤへ変換する。そして、高機能スイッチ部８は、ローカルホスト１０側とシステムホスト２側との間で、ＰＣＩｅパケットを転送する。ローカルデバイス６がマスタ転送機能を備える場合、それぞれのローカルデバイス６のメモリ空間の内で、システムホスト２から制御の対象となる一部を、システムホスト２側からのメモリ空間上にマッピングし、複数のローカルデバイス６を一つのローカルデバイス６として、仮想的に再構築するように構成される。
【０１９１】
この構成によれば、複数のローカルデバイス６と接続する場合、情報処理装置は、システムホスト２から見てローカルデバイス６の必要なレジスタを適切にメモリ空間にマッピングする。これにより、システムホスト２側のリソース不足を解消できる。
【０１９２】
（他の実施の形態）
以上のように、本出願において開示する技術の例示として、実施の形態１〜２を説明した。しかしながら、本開示における技術は、これに限定されず、変更、置き換え、付加、省略などを行った実施の形態にも適用可能である。また、上記実施の形態１〜２で説明した各構成要素を組み合わせて、新たな実施の形態とすることも可能である。
【０１９３】
例えば、本開示は、システムホストとＰＣＩｅバスで接続される情報処理装置である。情報処理装置は、ローカルホストと、高機能スイッチ部を備える。高機能スイッチ部は、データ入出力ポートとしてのノントランスペアレントポートと、システムホストの通信用の制御レジスタ群を有する。システムホストのＰＣＩｅバスは、情報処理装置を経由して、ローカルデバイスに接続される。ノントランスペアレントポートにより、システムホスト側のＰＣＩｅバスと、ローカルホスト側のＰＣＩｅバスとの、バス番号およびアドレス体系は、それぞれ独立して構成される。制御レジスタ群は、ローカルホストからは直接制御され、システムホストからはシステムホスト側のメモリ空間上にマッピングされる。ローカルホストは、システムホストからシステムホスト側のメモリ空間上にマッピングされた制御レジスタ群に要求されたコマンドを解釈して、ローカルデバイスに対してコマンドを発行する。ローカルホストは、ローカルデバイスからの、コマンドの完了の割り込みを受信し、制御レジスタ群を通じてシステムホストへコマンドの完了を通知する。システムホストとローカルデバイスとの間のデータ転送は、高機能スイッチ部を介して行われる。高機能スイッチ部は、ローカルホスト側のアドレスおよびリクエスタＩＤを、システムホスト側のアドレスおよびリクエスタＩＤへ変換して、ローカルデバイスとシステムホスト側との間で、ＰＣＩｅパケットを転送するように構成してもよい。
【０１９４】
また、本開示の情報処理装置の高機能スイッチ部は、ローカルデバイスの情報処理装置への挿抜を検出する挿抜検出部を、さらに備える。挿抜検出部は、ローカルデバイスの挿抜発生時において、挿抜の発生をローカルホストへ通知し、ローカルホストは、挿抜発生の割り込みを、制御レジスタ群を介してシステムホストに通知する構成としてもよい。
【０１９５】
また、本開示の情報処理装置のローカルホストは、ローカルデバイスの挿入後に、接続されたローカルデバイスを確認することで転送方式を決定する。そして、決定された転送方式に応じて、システムホストからシステムホスト側のメモリ空間上にマッピングされた制御レジスタ群に要求されたコマンドを解釈して、ローカルデバイスに対してコマンドを発行する場合と、システムホストからシステムホスト側のメモリ空間上にマッピングされた制御レジスタ群に要求されたコマンドを、直接、ローカルデバイスに対してコマンドを発行する場合と、を切り替える構成としてもよい。
【０１９６】
また、本開示の情報処理装置は、転送方式がＮＶＭｅの場合、ローカルホストは、システムホストからシステムホスト側のメモリ空間上にマッピングされた制御レジスタ群に要求されたコマンドを、直接、ローカルデバイスに対してコマンドを発行する。転送方式がＮＶＭｅでない場合、ローカルホストは、システムホストからシステムホスト側のメモリ空間上にマッピングされた制御レジスタ群に要求されたコマンドを解釈して、ローカルデバイスに対してコマンドを発行する構成としてもよい。
【０１９７】
また、本開示の情報処理装置は、システムホスト、情報処理装置、複数のＰＣＩｅデバイスの通信経路が、他の通信プロトコルのパケットにラッピングして通信して、ＰＣＩｅパケットを等価的に送受信可能に構成してもよい。
【０１９８】
また、本開示の情報処理装置は、通信経路のＰＣＩｅパケットは、アドレスおよびリクエスタＩＤに基づいて、ＰＣＩｅパケットをスイッチングするバスで構成してもよい。
【０１９９】
また、本開示の情報処理装置は、一つのＰＣＩｅバスに複数のデバイスが論理的に接続されるマルチファンクションデバイスに対応する場合、図２５に示すように構成としてもよい。つまり、図２５に示す情報処理装置は、Ｔａｇ変換部１０３とマルチファンクションコントローラ１００とローカルデバイス＃０、＃１（１０１、１０２）を有する。そして、Ｔａｇ変換部１０３は、システムホスト２とアダプタ４との間のＴａｇの値を、アダプタ４とマルチファンクションコントローラ１００間のファンクション番号の値へ変換する構成としてもよい。
【０２００】
具体的なＴａｇ変換部１０３の動作について、図２６から図２８を用いて説明する。
【０２０１】
図２６は、図２５の情報処理装置を含む情報処理システムにおける、Ｔａｇ変換部の具体的な変換値の一例を示す図である。図２７は、同実施の形態のデバイス制御レジスタ内の拡張Ｔａｇフィールド有効ビットを説明する図である。図２８は、同実施の形態のリクエスタＩＤおよびＴａｇを説明する図である。
【０２０２】
図２６に示すように、まず、システムホスト２とローカルデバイス＃０（１０１）の変換は、拡張Ｔａｇの上位３ビットに００１ｂを設定する。設定された拡張Ｔａｇの上位ビット００１ｂを、高機能スイッチ部８に設けたＴａｇ変換部１０３で、ファンクション番号０に変換する。さらに、拡張Ｔａｇの上位３ビットを０００ｂに置き換える。なお、図２６に示す拡張Ｔａｇの下位５ビットｘｘｘｘｘｂは、転送元のデバイスがＰＣＩｅパケットの転送時に付加している値をそのまま利用する。
【０２０３】
同様に、システムホスト２とローカルデバイス＃１（１０２）と間の変換は、図２６に示すように、まず、拡張Ｔａｇの上位３ビットに０１０ｂを設定する。設定された拡張Ｔａｇの上位ビット０１０ｂを、Ｔａｇ変換部１０３で、ファンクション番号１に変換する。さらに、拡張Ｔａｇの上位３ビットを０００ｂに置き換える。
【０２０４】
そして、図２７に示すように、拡張Ｔａｇを有効にするデバイスコントロールレジスタのＥｘｔｅｎｄｅｄ  Ｔａｇ  Ｆｉｅｌｄ  Ｅｎａｂｌｅビットを有効にする。これにより、拡張Ｔａｇの上位３ビットを利用することが可能になる。なお、図２８に示す拡張Ｔａｇ８ビット中の上位３ビットが、拡張Ｔａｇ領域に対応する。このように、本開示の情報処理装置がマルチファンクションデバイスに対応する場合、Ｔａｇ変換部１０３で、Ｔａｇの値を拡張して拡張Ｔａｇを変換する。そして、変換した拡張Ｔａｇに基づいて、対応するローカルデバイスに対して、ＰＣＩｅパケットのスイッチングを行うように構成してもよい。
【０２０５】
また、本開示の情報処理装置を含む情報処理システムは、図２９に示すように、システムホスト２に複数のアダプタ４ａ〜４ｂを接続する構成としてもよい。
【０２０６】
図２９は、さらに別の実施の形態における、情報処理装置を含む情報処理システムの概略のブロック図である。
【０２０７】
図２９に示すように、本開示の情報処理装置を含む情報処理システムは、システムホスト２にアダプタ４ａ、４ｂが、例えばディジーチェイン（ｄａｉｓｙ  Ｃｈａｉｎ）形式で接続される。そして、アダプタ４ａ、４ｂは、ブリッジ１１０ａ〜１１０ｂにより、自分のアダプタ４ａ、４ｂに関連するＰＣＩｅパケットを自分の高機能スイッチ８ａ、８ｂへスイッチングする。高機能スイッチ８ａ、８ｂは、エンドポイントとしてＰＣＩｅバスを終端する。
【０２０８】
リムーバブルメディア１１３ａ、１１３ｂ内のローカルデバイス１１１ａ、１１１ｂ、１１１ｃ、１１１ｄは、ＰＣＩｅスイッチ１１２ａ、１１２ｂを経由して、アダプタ４ａ、４ｂに接続される。
【０２０９】
つまり、高機能スイッチ８ａ、８ｂで、ＰＣＩｅバスをエンドポイントとして終端する。これにより、リムーバブルメディア１１３ａ、１１３ｂ内のバス番号が変わっても、システムホスト２側の構成には変更が生じない。そのため、リムーバブルメディア１１３ａ、１１３ｂの挿抜への対応が容易にできる。
【０２１０】
なお、上記各実施の形態では、高機能スイッチ部８は、制御レジスタ群３２に要求されたコマンドを解釈して、ＰＣＩｅデバイスに対してコマンドを発行する構成を例に説明したが、これに限られない。例えば、システムホスト２側とアダプタ４側がＮＶＭｅ（Ｎｏｎ  Ｖｏｌａｔｉｌｅ  Ｍｅｍｏｒｙ  Ｅｘｐｒｅｓｓ）で、ローカルデバイス６側がＳＡＴＡ（Ｓｅｒｉａｌ−ＡＴＡ）など、システムホスト２と、アダプタ４と、ローカルデバイス６と、が異なる転送方式の場合、高機能スイッチ部８は、制御レジスタ群３２に要求されたコマンドを解釈して、ＰＣＩｅデバイスに対してコマンドを発行する構成としてもよい。
【０２１１】
一方、システムホスト２と、アダプタ４と、ローカルデバイス６と、が同一の転送方式（ＮＶＭｅ）の場合、高機能スイッチ部８は、コマンドを解釈せず、直接、ローカルデバイス６へコマンドを発行するように切り替える構成としてもよい。これらの構成により、アダプタ４の高機能スイッチ部８は、接続されるローカルデバイスに応じて、適切に処理を切り替えることができる。
【０２１２】
なお、上述の実施の形態は、本開示における技術を例示するためのものであるから、特許請求の範囲またはその均等の範囲において種々の変更、置き換え、付加、省略などを行うことができる。
【産業上の利用可能性】
【０２１３】
本開示は、複数のリムーバブルメディアが装着される情報処理装置に適用可能である。具体的には、ビデオサーバなどに、本開示は適用可能である。
【符号の説明】
【０２１４】
２    システムホスト
４，４ａ，４ｂ    アダプタ（情報処理装置）
６，６ａ，１０１，１０２，１１１ａ，１１１ｂ，１１１ｃ，１１１ｄ    ローカルデバイス（ＰＣＩｅデバイス）
８    高機能スイッチ部
８ａ，８ｂ    高機能スイッチ
１０    ローカルホスト
１２    スロット
１４    不揮発性メモリ
２０，７０    メモリ
２２，６８    ルートコンプレクス
２４    プロセッサ（ＣＰＵ）
２６，２８    ＮＴポート（ノントランスペアレントポート）
３０    イベント通知部
３２    制御レジスタ群
３４    システムホスト割込送信部
３６    ローカルホスト割込送信部
３８    挿抜検出部
４０    パケット転送部
４２    アドレス変換テーブル
４４    ＲｅｑＩＤ変換テーブル
４６    アドレス変換部
４７    ＤＭＡ転送部
４８    ＲｅｑＩＤ変換部
５０    ＰＣＩｅスイッチ
５８    ローカル制御部
６０    ローカルデバイス初期化部
６２    ローカルデバイス種別判別部
６４    アドレス変換テーブル設定部
６６    ＲｅｑＩＤ変換テーブル設定部
７６，７６ａ    コマンド解析部
７７    マスタ機能部
７８，７８ａ    データ転送部
１００    マルチファンクションコントローラ
１０３    Ｔａｇ変換部
１１０ａ，１１０ｂ    ブリッジ
１１２ａ，１１２ｂ    ＰＣＩｅスイッチ
１１３ａ，１１３ｂ    リムーバブルメディア
【手続補正２】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
システムホストとＰＣＩｅバスで接続される情報処理装置であって、
前記情報処理装置は、
ローカルホストと、高機能スイッチ部と、
を備え、
前記高機能スイッチ部は、
データ入出力ポートとしてのノントランスペアレントポートと、
前記システムホストの通信用の制御レジスタ群と、
を有し、
前記システムホストのＰＣＩｅバスは、前記情報処理装置を経由して、ローカルデバイスに接続され、
前記ノントランスペアレントポートにより、前記システムホスト側のＰＣＩｅバスと、前記ローカルホスト側のＰＣＩｅバスとの、バス番号およびアドレス体系は、それぞれ独立して構成され、
前記制御レジスタ群は、前記ローカルホストからは直接制御され、前記システムホストからは前記システムホスト側のメモリ空間上にマッピングされ、
前記ローカルホストは、
前記システムホストから前記システムホスト側の前記メモリ空間上にマッピングされた前記制御レジスタ群に要求されたコマンドを解釈して、前記ローカルデバイスに対して前記コマンドを発行し、
前記ローカルデバイスからの、前記コマンドの完了の割り込みを受信し、
前記制御レジスタ群を通じて前記システムホストへ前記コマンドの完了を通知し、
前記システムホストと前記ローカルデバイスとの間のデータ転送は、前記高機能スイッチ部を介して行われ、
前記高機能スイッチ部は、前記ローカルホスト側のアドレスおよびリクエスタＩＤを、前記システムホスト側のアドレスおよびリクエスタＩＤへ変換して、前記ローカルデバイスとシステムホスト側との間で、ＰＣＩｅパケットを転送する、
情報処理装置。
【請求項２】
前記高機能スイッチ部は、前記ローカルデバイスの前記情報処理装置への挿抜を検出する挿抜検出部を、さらに備え、
前記挿抜検出部は、前記ローカルデバイスの挿抜発生時において、挿抜の発生を前記ローカルホストへ通知し、
前記ローカルホストは、挿抜発生の割り込みを、前記制御レジスタ群を介して前記システムホストに通知する、
請求項１に記載の情報処理装置。
【請求項３】
前記ローカルホストは、前記ローカルデバイスの挿入後に、接続された前記ローカルデバイスを確認することで転送方式を決定し、決定された前記転送方式に応じて、
前記システムホストから前記システムホスト側の前記メモリ空間上にマッピングされた前記制御レジスタ群に要求されたコマンドを解釈して、前記ローカルデバイスに対して前記コマンドを発行する場合と、
前記システムホストから前記システムホスト側の前記メモリ空間上にマッピングされた前記制御レジスタ群に要求されたコマンドを、直接、前記ローカルデバイスに対して前記コマンドを発行する場合と、を切り替える、
請求項２に記載の情報処理装置。
【請求項４】
前記転送方式がＮＶＭｅの場合、前記ローカルホストは、前記システムホストから前記システムホスト側の前記メモリ空間上にマッピングされた前記制御レジスタ群に要求されたコマンドを、直接、前記ローカルデバイスに対して前記コマンドを発行し、
前記転送方式がＮＶＭｅでない場合、前記ローカルホストは、前記システムホストから前記システムホスト側の前記メモリ空間上にマッピングされた前記制御レジスタ群に要求されたコマンドを解釈して、前記ローカルデバイスに対して前記コマンドを発行する、
請求項３に記載の情報処理装置。
【請求項５】
前記システムホスト、前記情報処理装置、複数の前記ローカルデバイスの通信経路は、前記ＰＣＩｅパケットを等価的に送受信可能に構成される、
請求項１に記載の情報処理装置。
【請求項６】
前記通信経路の前記ＰＣＩｅパケットは、前記アドレスおよび前記リクエスタＩＤに基づいて、前記ＰＣＩｅパケットをスイッチングするバスで構成される、
請求項５に記載の情報処理装置。
【手続補正３】
【補正対象書類名】図面
【補正対象項目名】全図
【補正方法】変更
【補正の内容】
【図１】
2017154943.tif 000032
【図２】
2017154943.tif 000033
【図３】
2017154943.tif 000034
【図４】
2017154943.tif 000035
【図５】
2017154943.tif 000036
【図６】
2017154943.tif 000037
【図７】
2017154943.tif 000038
【図８】
2017154943.tif 000039
【図９】
2017154943.tif 000040
【図１０】
2017154943.tif 000041
【図１１】
2017154943.tif 000042
【図１２】
2017154943.tif 000043
【図１３】
2017154943.tif 000044
【図１４】
2017154943.tif 000045
【図１５】
2017154943.tif 000046
【図１６】
2017154943.tif 000047
【図１７】
2017154943.tif 000048
【図１８】
2017154943.tif 000049
【図１９】
2017154943.tif 000050
【図２０】
2017154943.tif 000051
【図２１】
2017154943.tif 000052
【図２２】
2017154943.tif 000053
【図２３】
2017154943.tif 000054
【図２４】
2017154943.tif 000055
【図２５】
2017154943.tif 000056
【図２６】
2017154943.tif 000057
【図２７】
2017154943.tif 000058
【図２８】
2017154943.tif 000059
【図２９】
2017154943.tif 000060
【国際調査報告】
2017154943.tif 000061
2017154943.tif 000062