(57)【特許請求の範囲】
【請求項１】
ＰＣＩｅシステムとしての情報処理装置であって、
前記情報処理装置は、ルートコンプレクスを含むホストデバイスと、各々がエンドポイントに相当する複数のメモリデバイスとを含み、
複数の前記メモリデバイスのうちの一つがマスターメモリとして定義され、それ以外の前記メモリデバイスがスレーブメモリとして定義され、且つ、前記マスターメモリと論理的に結合されることにより、複数の前記メモリデバイスが一つの仮想ストレージを構成し、
前記ルートコンプレクスから、一つの仮想ストレージを構成する複数の前記メモリデバイスへのアクセス時には、前記ルートコンプレクスは前記マスターメモリにバスマスタを移譲し、
バスマスタを移譲され、且つ、前記ルートコンプレクスからアクセスに係るコマンドを受け取った前記マスターメモリは、アクセスに係るコマンドにおける、前記アクセスのためアドレス情報を、前記スレーブメモリとの論理的関係に基づいて変更して、変更後のアクセスに係るコマンドを全ての又は一部の前記スレーブメモリに送信する、
情報処理装置。
【請求項２】
前記ルートコンプレクスは、付属する情報格納部にアクセスに係るコマンドを格納した上で、前記マスターメモリにバスマスタを移譲し、
バスマスタを移譲された前記マスターメモリは、前記ルートコンプレクスに付属する前記情報格納部に格納された前記アクセスに係るコマンドを読み取ることにより、前記ルートコンプレクスから前記アクセスに係るコマンドを受け取る、
請求項１に記載の情報処理装置。
【請求項３】
前記メモリデバイスは、マスターメモリと成り得る機能を備えるかどうかの情報、容量に関する情報が格納される
請求項１に記載の情報処理装置。
【請求項４】
前記マスターメモリは、前記ルートコンプレクスからバスマスタを移譲され、データの書き込みまたは読み込みが完了すると、前記ルートコンプレクスへバスマスタを移譲し戻す
請求項１に記載の情報処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、ホストデバイスとメモリデバイス間でデータ転送を行う情報処理装置に関する。
【背景技術】
【０００２】
高速シリアルインターフェースとしてＰＣＩ  Ｅｘｐｒｅｓｓ（登録商標：以下、ＰＣＩｅと称する）が、パーソナルコンピュータ等の様々な電子機器に使用されている。【０００３】
例えば、ビデオサーバをホストデバイスとし、メモリカードをメモリデバイスとするシステム構成においても、ＰＣＩｅが用いられている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１４−２５４５号公報
【特許文献２】特開２０１３−４５２３６号公報
【特許文献３】特開２０１３−８８８７９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
本開示は、複数のメモリデバイスが一つの仮想大容量ストレージを構成する情報処理装置を提供する。
【課題を解決するための手段】
【０００６】
本開示における情報処理装置は、ルートコンプレクスを含むホストデバイスと、各々がエンドポイントに相当する複数のメモリデバイスとを含む、ＰＣＩｅシステムとしての情報処理装置である。上記複数のメモリデバイスのうちの一つがマスターメモリとして定義され、それ以外のメモリデバイスがスレーブメモリとして定義され且つマスターメモリと論理的に結合される。これにより、複数のメモリデバイスが一つの仮想ストレージを構成する。ルートコンプレクスから、一つの仮想ストレージを構成する複数のメモリデバイスへのアクセス時には、ルートコンプレクスはマスターメモリにバスマスタを移譲する。バスマスタを移譲され、且つ、ルートコンプレクスからアクセスに係るコマンドを受け取ったマスターメモリは、アクセスに係るコマンドにおける、アクセスのためアドレス情報を、スレーブメモリとの論理的関係に基づいて変更して、変更後のアクセスに係るコマンドを全ての又は一部のスレーブメモリに送信する。
【発明の効果】
【０００７】
本開示における情報処理装置は、複数のメモリデバイスにより構成される一つの仮想大容量ストレージを利用して、長時間記録された画像データ等の大きいサイズのデータを一まとまりとして取り扱うことができる。
【図面の簡単な説明】
【０００８】
【図１】図１は、実施の形態１に係る情報処理装置のシステムツリー構成図である。
【図２】図２は、実施の形態１に係る情報処理装置の詳細なブロック図である。
【図３】図３は、実施の形態１に係る情報処理装置の大容量ストレージの初期化処理のフロー図である。
【図４】図４は、実施の形態１に係る情報処理装置における、マスターメモリの情報格納部に格納される情報例を示す図である。
【図５】図５は、実施の形態１に係る情報処理装置における、仮想の大容量ストレージの全体図である。
【図６】図６は、実施の形態１に係る情報処理装置における、スレーブメモリの情報格納部に格納される情報例を示す図である。
【図７】図７は、実施の形態１に係る情報処理装置における、ルートコンプレクスの情報格納部に格納される情報例を示す図である。
【図８】図８は、コマンドパケットのフォーマット例（図８の（１））、及び、コマンドパケットのデータ例（図８の（２−１）〜（２−３））を示す図である。
【図９】図９は、実施の形態１に係る情報処理装置における、書き込み処理のフロー図である。
【図１０】図１０は、実施の形態１に係る情報処理装置における、読み込み処理のフロー図である。
【図１１】図１１は、実施の形態１の変形例に係る情報処理装置の詳細なブロック図である。
【発明を実施するための形態】
【０００９】
以下、適宜図面を参照しながら、実施の形態を詳細に説明する。但し、必要以上に詳細な説明は省略する場合がある。例えば、既によく知られた事項の詳細説明や実質的に同一の構成に対する重複説明を省略する場合がある。これは、以下の説明が不必要に冗長になるのを避け、当業者の理解を容易にするためである。
【００１０】
なお、発明者（ら）は、当業者が本開示を十分に理解するために添付図面および以下の説明を提供するのであって、これらによって請求の範囲に記載の主題を限定することを意図するものではない。
【００１１】
１．実施の形態に至る経緯
ＰＣＩｅを使用するシステムでは、ホスト機能を有するルートコンプレクスが最上位デバイスとされ、更にローカルデバイスがポイント・ツー・ポイントでツリー状に接続される。一つのＰＣＩｅデバイスツリーには一つのルートコンプレクスのみ接続される。
【００１２】
このように、ポイント・ツー・ポイント接続が基本的形態であるＰＣＩｅバス結合において、スイッチ（Ｓｗｉｔｃｈ）部を設けることにより、エンドポイントとして複数のデバイス（例えば、メモリカード）が接続できるようになる。エンドポイントとして接続されるデバイスがメモリデバイス（例えば、ＳＤカード（登録商標））である場合、ホストデバイスのＣＰＵに接続されるルートコンプレクスは、複数のメモリデバイスとして認識するとともに、個別のメモリデバイスとしてアクセスする（例えば、書き込み処理や読み込み処理を行う）。
【００１３】
ところで、ＰＣＩｅを使用するビデオサーバが大きいサイズの画像データをメモリデバイスに記録しようとしても、従来では、一枚のメモリカードの容量を超える画像データを１ファイルとして記録することはできない。つまり、ビデオサーバは、大きいサイズの画像データを幾つかに分割してメモリデバイスに記録する他は無い。
【００１４】
一方で、長時間記録された画像データを処理するに当たっては、大きいサイズの画像データを一まとまりとして（例えば、１ファイルとして）取り扱うことが要請されている。
【００１５】
実施の形態は、上述の問題を解決するものであり、ルートコンプレクスを含むホストデバイスと、各々がエンドポイントに相当する複数のメモリデバイスとを含む、ＰＣＩｅシステムとしての情報処理装置に関するものである。上記複数のメモリデバイスのうちの一つがマスターメモリとして定義され、それ以外のメモリデバイスがスレーブメモリとして定義され且つマスターメモリと論理的に結合され、これにより複数のメモリデバイスが一つの仮想ストレージを構成する。
【００１６】
ルートコンプレクスから、一つの仮想ストレージを構成する複数のメモリデバイスへのアクセス（例えば、書き込み処理や読み込み処理）時には、ルートコンプレクスはマスターメモリにバスマスタを移譲する。バスマスタを移譲され、且つ、ルートコンプレクスからアクセスに係るコマンドを受け取ったマスターメモリは、アクセスに係るコマンドにおける、アクセスのためアドレス情報をスレーブメモリとの論理的関係に基づいて変更して、変更後のアクセスに係るコマンドを全ての又は一部のスレーブメモリに送信する。
【００１７】
このように、複数のメモリデバイスが一つの仮想大容量ストレージを構成する情報処理装置では、長時間記録された画像データ等の大きいサイズのデータが、一まとまりとして取り扱われることとなる。
【００１８】
２．［実施の形態１］
以下、図１〜図１１を参照して実施の形態１を説明する。
【００１９】
２．１．情報処理装置の構成
図１は、実施の形態１に係る情報処理装置２のシステムツリー構成図である。
【００２０】
情報処理装置２は、ＣＰＵ４、ルートコンプレクス６、及び、二つのスイッチ部８、１０を含む。
【００２１】
ＣＰＵ４及びルートコンプレクス６は、スイッチ部８を介して、第１のメモリデバイス１２である第１のエンドポイントと接続する。またＣＰＵ４及びルートコンプレクス６は、スイッチ部８及びスイッチ部１０を介して、第２のメモリデバイス１４である第２のエンドポイント、及び第３のメモリデバイス１６である第３のエンドポイントと接続する。
【００２２】
後で説明するように、ルートコンプレクス６から第１のメモリデバイス１２へのバスマスタの移譲により、第１のメモリデバイス１２（第１のエンドポイント）は、マスターメモリとなり、第２及び第３のメモリデバイス１４、１６（第２のエンドポイント、第３のエンドポイント）は、マスターメモリに対するスレーブメモリとなる。括弧内における（Ｍａｓｔｅｒ２）、（Ｓｌａｖｅ１）、及び（Ｓｌａｖｅ２）は、そのことを示す。
【００２３】
但し、図１に示す実施の形態１に係るシステムツリー構成において、第１のメモリデバイス１２のみがマスターメモリとなることに限定されるものではない。同様に、第２のメモリデバイス１４及び第３のメモリデバイス１６が、スレーブメモリとなることに限定されるものではない。
【００２４】
また、図１に示す情報処理装置２では、三つのメモリデバイスが接続するが、接続するメモリデバイスは、二つでも、四つ以上でもよい。
【００２５】
図２は、実施の形態１に係る情報処理装置２の詳細なブロック図である。
【００２６】
図２に示す情報処理装置２は、ホストデバイス２０、及びホストデバイス２０とコネクタ（３２：３８、３４：４０、３６：４２）を介して接続するメモリデバイス（１２、１４、１６）により構成される。メモリデバイス（１２、１４、１６）は記録媒体であり、例えば、メモリカードである。
【００２７】
前に説明したように、ホストデバイス２０に接続するメモリデバイスは、二つでも、四つ以上でもよい。
【００２８】
図２に示すホストデバイス２０において、ＣＰＵ４、データ転送部２４、バッファ２６、及びルートコンプレクス６が、ＰＣＩｅバス２２を介して接続される。ルートコンプレクス６は、ＰＣＩｅのツリーのルートとなるデバイスであり、情報格納部６ａを付属する。
【００２９】
更に、ホストデバイス２０のコネクタ３２と、第１のメモリデバイス１２のコネクタ３８とが接続されると、ルートコンプレクス６は、ＰＣＩｅスイッチ８及びＰＣＩｅバス２２を介して第１のメモリデバイス１２と繋がる。
【００３０】
同様に、ホストデバイス２０のコネクタ３４と、第２のメモリデバイス１４のコネクタ４０とが接続されると、ルートコンプレクス６は、ＰＣＩｅスイッチ８、ＰＣＩｅスイッチ１０及びＰＣＩｅバス２２を介して第２のメモリデバイス１４と繋がる。ホストデバイス２０のコネクタ３６と、第３のメモリデバイス１６のコネクタ４２とが接続されると、ルートコンプレクス６は、ＰＣＩｅスイッチ８、ＰＣＩｅスイッチ１０及びＰＣＩｅバス２２を介して第３のメモリデバイス１６と繋がる。
【００３１】
夫々のメモリデバイス（第１のメモリデバイス１２、第２のメモリデバイス１４、第３のメモリデバイス１６）は、個々のメモリデバイスの動作を制御するコントローラ（第１のコントローラ１２ｂ、第２のコントローラ１４ｂ、第３のコントローラ１６ｂ）を備える。
【００３２】
また、第１のメモリデバイス１２、第２のメモリデバイス１４、及び第３のメモリデバイス１６は、夫々、第１のメモリ１２ｃ、第２のメモリ１４ｃ、及び第３のメモリ１６ｃを備える。
【００３３】
これら第１のメモリ１２ｃ、第２のメモリ１４ｃ、及び第３のメモリ１６ｃがデータを格納するためのストレージとなる。更に、第１のメモリデバイス１２、第２のメモリデバイス１４、及び第３のメモリデバイス１６は、夫々、第１の情報格納部１２ａ、第２の情報格納部１４ａ、及び第３の情報格納部１６ａを付属する。第１の情報格納部１２ａ、第２の情報格納部１４ａ、及び第３の情報格納部１６ａの各々は、後で詳しく説明するように、自ら（自メモリデバイス）がマスターメモリと成り得る機能を備えるかどうかの情報、容量に関する情報、性能に関する情報など（図４、図６等参照）を格納する。
【００３４】
なお、第１〜第３の情報格納部１２ａ、１４ａ、１６ａは、夫々、第１〜第３のメモリ１２ｃ、１４ｃ、１６ｃを用いて実現されてもよいし、別のデバイス（例えば、レジスタなど）により実現されてもよい。第１〜第３のメモリ１２ｃ、１４ｃ、１６ｃを用いて実現される場合には、第１〜第３の情報格納部は、実施の形態１に係る情報処理装置によりアクセスされるストレージには含まれない部分ということになる。つまり、その部分は、第１〜第３のコントローラ１２ｂ、１４ｂ、１６ｂが別管理している領域であり、フォーマット処理が行われても情報が消え無い領域である。
【００３５】
図１でも示したように、第１のメモリデバイス１２、第２のメモリデバイス１４、及び第３のメモリデバイス１６は、夫々、ＰＣＩｅのツリー構成におけるルートコンプレクス６に対する、第１のエンドポイント、第２のエンドポイント、及び第３のエンドポイントに相当する。
【００３６】
なお、図１１は、実施の形態１の変形例に係る情報処理装置の詳細なブロック図である。図１１に示す情報処理装置では、ホストデバイス２０と、メモリデバイス１２、１４、１６との間に、ＰＣＩｅスイッチ８、１０とＰＣＩｅバス２２を含むスイッチコネクタ２１が挟まれている。このような変形例に係る情報処理装置も、実施の形態１を実現し得る。
【００３７】
２．２．情報処理装置の動作
図３は、実施の形態１に係る情報処理装置による仮想大容量ストレージの初期化処理のフロー図である。更に図９は、実施の形態１に係る情報処理装置による仮想大容量ストレージへの書き込み処理のフロー図であり、図１０は、実施の形態１に係る情報処理装置による仮想大容量ストレージからの読み込み処理のフロー図である。
【００３８】
実施の形態１では、一つのＰＣＩｅシステム構成例として示される、ホストデバイスと三つのメモリデバイスとを含む情報処理装置において、三つのメモリデバイスのうちの一つがマスターメモリとして定義される。更に、それ以外の二つのメモリデバイスがスレーブメモリとして定義され同時にマスターメモリと論理的に結合される。このような実施の形態１における、初期化処理、並びに、バスマスタを移譲した上での書き込み処理及び読み込み処理を、図３〜図１０を用いて説明する。
【００３９】
２．２．１．初期化処理
図３に示す初期化処理では、開始（ステップＳ０２）後、ホストデバイス２０は、コネクタを介して接続する三つのメモリデバイスについて、物理層の初期化（ステップＳ０４）、及び、論理層の初期化（ステップＳ０６）を行う。続いて、ホストデバイス２０は、三つのメモリデバイスのうち、何れをマスターメモリとし何れをスレーブメモリとするか決定する（ステップＳ０８）。
【００４０】
メモリデバイスのうち、何れをマスターメモリとし何れをスレーブメモリとするか決定するステップについては、メモリデバイスのうちにマスターメモリと成り得る機能を持っているものが少なくとも一つあり、それをホストデバイス２０が選択する（複数ある場合は、ホストデバイス２０が一つを選択する）、という手順にて基本的に行う。例えば、より詳細には、以下のような方針の手順である。
［１］複数のメモリデバイスの中でマスターメモリと成り得る機能を持っているものが一つである場合には、ホストデバイス２０はそれをマスターメモリとして選択する。
［２］複数のメモリデバイスの中でマスターメモリと成り得る機能を持っているものが複数ある場合には、どれをマスターメモリとして選択するかは、ホストデバイス２０が決定する。
［３］複数のメモリデバイスと接続するための、ホストデバイス２０側の複数のコネクタ（スロット）３２、３４、３６のうち、マスターメモリとなるメモリデバイスが装着されるコネクタ（スロット）を、ホストデバイス２０が予め決定しておいてもよい。
［４］複数のメモリデバイスと接続するための、ホストデバイス２０側の複数のコネクタ（スロット）３２、３４、３６において、優先順位をホストデバイス２０が予め設定しており、メモリデバイスの装着時により高い優先順位のコネクタ（スロット）に装着されたメモリデバイスを、ホストデバイス２０がマスターメモリとして決定する、という方針でもよい。
［５］入力デバイスからの入力データに従って、ホストデバイス２０がマスターメモリとスレーブメモリを決定してもよい。
【００４１】
続いて図３に示す初期化処理において、ホストデバイス２０は、メモリデバイスに関する情報（図７の（２−１）、（２−２）参照）を、ルートコンプレクス６の情報格納部６ａに登録（格納）する（ステップＳ１０）。メモリデバイスに関する情報（図７の（２−１）、（２−２）については後で説明する。
【００４２】
図４は、図３の初期化処理終了時点にて、第１のエンドポイントに相当する第１のメモリデバイス１２の第１の情報格納部１２ａに格納される情報例を示す図である。
【００４３】
図４に示す、第１の情報格納部１２ａに格納される情報例では、まず、第１のメモリデバイス１２自身に関する情報（バス番号：１、デバイス番号：１１、サイズ：３２ＧＢ）が記録されている。
【００４４】
次に、図４に示す、第１の情報格納部１２ａに格納される情報例では、一つのマスターメモリ（第１のメモリデバイス１２）と、二つのスレーブメモリ（第２のメモリデバイス１４、第３のメモリデバイス１６）により構成される仮想大容量ストレージにおける、マスターメモリとスレーブメモリとの論理的関係に係る情報が格納されている。
【００４５】
つまり、バス番号「１」デバイス番号「１１」のデバイス（即ち、第１のメモリデバイス１２自身）が、マスタとなってサイズ「１２８ＧＢ」のストレージを構成することが記録されている。続いて、スレーブメモリを「二つ」持つことが記録されている。更に、二つのスレーブメモリは「Ｓｌａｖｅ１（スレーブ１）」と「Ｓｌａｖｅ２（スレーブ２）」とであることが記録されている。更に、バス番号「１」デバイス番号「１２」のデバイスである「Ｓｌａｖｅ１（スレーブ１）」は、大容量ストレージにおいて開始アドレス「３２ＧＢ＋１Ｂ」から終了アドレス「３２ＧＢ＋３２ＧＢ」までの領域を担うメモリであることが記録されている。更に、バス番号「１」デバイス番号「１３」のデバイスである「Ｓｌａｖｅ２（スレーブ２）」は、大容量ストレージにおいて開始アドレス「３２ＧＢ＋３２ＧＢ＋１Ｂ」から終了アドレス「３２ＧＢ＋３２ＧＢ＋６４ＧＢ」までの領域を担うメモリであることが記録されている。
【００４６】
図５は、図１に示す情報処理装置にて作成されて用いられる、仮想大容量ストレージの構成図である。
【００４７】
図５に示す仮想大容量ストレージは、図４に示す第１の情報格納部１２ａに格納される情報例の内容に合わせて構成されているものである。まず、図５に示す仮想大容量ストレージは全体で１２８ＧＢの容量を備える。１２８ＧＢのうち、開始アドレス「０」から終了アドレス「３２ＧＢ」までの領域は、マスターメモリである第１のメモリデバイス１２（容量：３２ＧＢ）が担う。開始アドレス「３２ＧＢ＋１Ｂ」から終了アドレス「３２ＧＢ＋３２ＧＢ」までの領域は、スレーブメモリ「Ｓｌａｖｅ１（スレーブ１）」である第２のメモリデバイス１４（容量：３２ＧＢ）が担う。開始アドレス「３２ＧＢ＋３２ＧＢ＋１Ｂ」から終了アドレス「３２ＧＢ＋３２ＧＢ＋６４ＧＢ」までの領域は、スレーブメモリ「Ｓｌａｖｅ２（スレーブ２）」である第３のメモリデバイス１６（容量：６４ＧＢ）が担う。
【００４８】
このようにして、容量１２８ＧＢの大容量ストレージが実現される。
【００４９】
図６の（１）は、図３の初期化処理終了時点にて、第２のエンドポイントに相当し且つスレーブメモリ「Ｓｌａｖｅ１（スレーブ１）」である、第２のメモリデバイス１４の第２の情報格納部１４ａに格納される情報例を示す。
【００５０】
同様に図６の（２）は、図３の初期化処理終了時点にて、第３のエンドポイントに相当し且つスレーブメモリ「Ｓｌａｖｅ２（スレーブ２）」である、第３のメモリデバイス１６の第３の情報格納部１６ａに格納される情報例を示す。
【００５１】
図６の（１）に示す、第２のメモリデバイス１４の第２の情報格納部１４ａに格納される情報例では、バス番号「１」デバイス番号「１２」サイズ（容量）「３２ＧＢ」のデバイス（即ち、第２のメモリデバイス１４）が、バス番号「１」デバイス番号「１１」のメモリデバイス（即ち、第１のメモリデバイス１２）をマスターメモリとする、スレーブメモリであることが記録されている。
【００５２】
同様に図６の（２）に示す、第３のメモリデバイス１６の第３の情報格納部１６ａに格納される情報例では、バス番号「１」デバイス番号「１３」サイズ（容量）「６４ＧＢ」のデバイス（即ち、第３のメモリデバイス１６）が、バス番号「１」デバイス番号「１１」のメモリデバイス（即ち、第１のメモリデバイス１１）をマスターメモリとする、スレーブメモリであることが記録されている。
【００５３】
図７は、ホストデバイス２０におけるルートコンプレクス６の情報格納部６ａに格納される情報例を示す図である。このうち、図７の（２−１）は初期化後のポート情報であり、図７の（２−２）はコンフィグレーション設定後のポート情報である。
【００５４】
図７の（２−１）の初期化後のポート情報では、バス番号「１」デバイス番号「１１」、バス番号「１」デバイス番号「１２」、及び、バス番号「１」デバイス番号「１３」は、何れも「メモリ」であること、及び、バス番号「１」デバイス番号「１１」のメモリのみが、マスターメモリと成り得ることが、記録されている。
【００５５】
また、図７の（２−２）のコンフィグレーション設定後のポート情報では、バス番号「１」デバイス番号「１１」のメモリ（Ｍａｓｔｅｒ２）及びバス番号「１」デバイス番号「１２」のメモリ（Ｓｌａｖｅ１）は容量（キャパシティ）が３２ＧＢであり、バス番号「１」デバイス番号「１３」のメモリ（Ｓｌａｖｅ２）は容量（キャパシティ）が６４ＧＢであることが、記録されている。更に、図７の（２−２）のポート情報では、バス番号「１」デバイス番号「１１」のメモリ（Ｍａｓｔｅｒ２）は、パフォーマンス（性能）が「高い（Ｈｉｇｈ）」こと、並びに、バス番号「１」デバイス番号「１２」のメモリ（Ｓｌａｖｅ１）及びバス番号「１」デバイス番号「１３」のメモリ（Ｓｌａｖｅ２）は、パフォーマンス（性能）が「中程度である（Ｍｉｄｄｌｅ）」ことが、記録されている。
【００５６】
これらの、初期化後のポート情報（図７の（２−１））、及びコンフィグレーション設定後のポート情報（図７の（２−２））は、図３に示す初期化処理における、ルートコンプレクスへの登録（Ｓ１０）にて記録される。
【００５７】
２．２．２．コマンドパケット
ＰＣＩｅシステムでは、ルートコンプレクスとエンドポイントの間などでコマンドパケットがやり取りされる。
【００５８】
例えば、実施の形態１に係る情報処理装置では、元来のマスターデバイスであるルートコンプレクス６（Ｍａｓｔｅｒ１）から、バスマスタリング機能によりマスタ機能（バスマスタ）を移譲される第１のエンドポイント（第１のメモリデバイス１２）（Ｍａｓｔｅｒ２）へ、コマンドが送信される。
【００５９】
ここで、Ｍａｓｔｅｒ１からＭａｓｔｅｒ２への、即ち、バスマスタを移譲する側（デバイス）からバスマスタを移譲される側（デバイス）への、コマンドの送信は、例えば、以下のような手順で行われる。
【００６０】
まず、Ｍａｓｔｅｒ１は（ルートコンプレクス６の）情報格納部６ａに、ルートコンプレクス６から第１のメモリデバイス１２（Ｍａｓｔｅｒ２）へ送信されるべきコマンドを、格納する。このとき、Ｍａｓｔｅｒ１は、例えば、（図７の（１）に示す）バス情報のコマンドバッファ（バスマスタ変更直後のコマンド格納部）に、コマンドを格納する。更に、Ｍａｓｔｅｒ１は（図７の（１）に示す）バス情報のバスマスタリングを「オン」としつつ、バスマスタ（マスタ機能）をＭａｓｔｅｒ２（第１のメモリデバイス１２）に移譲する。バスマスタを移譲されたＭａｓｔｅｒ２（第１のメモリデバイス１２）の第１のコントローラ１２ｂは、Ｍａｓｔｅｒ１（ルートコンプレクス６）の情報格納部６ａの（１）バス情報における「コマンドバッファ」を読み取るトランザクションを、起動する。
【００６１】
このように、Ｍａｓｔｅｒ２（第１のメモリデバイス１２）が（Ｍａｓｔｅｒ１内の）「コマンドバッファ」を読み取ることにより、Ｍａｓｔｅｒ１内に格納された、Ｍａｓｔｅｒ１からＭａｓｔｅｒ２へのコマンドが、送信されることになる。
【００６２】
図８の（１）は、コマンドパケットのフォーマット例を示している。図８の（１）に示すフォーマット例は、宛先（バス番号、デバイス番号）、送り元（バス番号、デバイス番号）、ファンクション、開始アドレス、ペイロードの長さ、及び、ペイロード（データ送受信用）を含む。ここで、ファンクションは、コマンドの具体的動作・機能を示すものであり、例えば、書き込みや読み込みを示すコードが格納される。
【００６３】
図８の（２−１）は、Ｍａｓｔｅｒ１からＭａｓｔｅｒ２への、コマンドパケットのデータ例である。
【００６４】
「宛先」には、第１のエンドポイント（第１のメモリデバイス１２）を表すデータ（バス番号：１、デバイス番号：１１）が格納されている。「送り元」には、ルートコンプレクス６を表すデータ（バス番号：０、デバイス番号：０）が格納されている。「開始アドレス」には（例として）“０ｘ３００”が格納され、「ペイロードの長さ」には（例として）“０ｘ４５００”が格納されている。なお、「開始アドレス」は、図５に示す、第１のメモリデバイス１２、第２のメモリデバイス１４、及び第３のメモリデバイス１６により構成される、仮想大容量ストレージにおけるアドレスとなっている。
【００６５】
図８の（２−２）は、Ｍａｓｔｅｒ２からＳｌａｖｅ１への、コマンドパケットのデータ例である。
【００６６】
上述のように、ルートコンプレクス６（Ｍａｔｅｒ１）から、バスマスタの移譲、及び、コマンドの送信を受けた第１のメモリデバイス１２（Ｍａｓｔｅｒ２）は、「開始アドレス」について、仮想大容量ストレージにおけるアドレスでは無く、第２のメモリデバイス１４（Ｓｌａｖｅ１）におけるアドレスに書き換えて、「開始アドレス」に格納する（即ち、該アドレスは、マスターメモリとスレーブメモリとの論理的関係に基づいて変更される）。また、「宛先」には、第２のエンドポイント（第２のメモリデバイス１４）を表すデータ（バス番号：１、デバイス番号：１２）が格納されている。「送り元」には、第１のエンドポイント（第１のメモリデバイス１２）を表すデータ（バス番号：１、デバイス番号：１１）が格納されている。
【００６７】
同様に、図８の（２−３）は、Ｍａｓｔｅｒ２からＳｌａｖｅ２への、コマンドパケットのデータ例である。
【００６８】
上述のように、ルートコンプレクス６（Ｍａｔｅｒ１）から、バスマスタの移譲、及び、コマンドの送信を受けた第１のメモリデバイス１２（Ｍａｓｔｅｒ２）は、「開始アドレス」について、仮想大容量ストレージにおけるアドレスでは無く、第３のメモリデバイス１６（Ｓｌａｖｅ２）におけるアドレスに書き換えて、「開始アドレス」に格納する（即ち、該アドレスは、マスターメモリとスレーブメモリとの論理的関係に基づいて変更される）。また、「宛先」には、第３のエンドポイント（第３のメモリデバイス１６）を表すデータ（バス番号：１、デバイス番号：１３）が格納されている。「送り元」には、第１のエンドポイント（第１のメモリデバイス１２）を表すデータ（バス番号：１、デバイス番号：１１）が格納されている。
【００６９】
２．２．３．書き込み処理
図９は、実施の形態１に係る情報処理装置による仮想大容量ストレージへの書き込み処理の概略フロー図である。
【００７０】
ここでの書き込み処理は、大容量ストレージを構成する第１〜第３のエンドポイント（第１のメモリデバイス１２、第２のメモリデバイス１４、第３のメモリデバイス１６）に対して行われるものが想定されている。即ち、書き込み処理の開始点（開始アドレス）から終了点（終了アドレス）までが、メモリデバイスの境界をまたぐ場合の書き込み処理が想定されている。
【００７１】
図９に示す書き込み処理では、開始（Ｓ２０）後、上記にて説明したように、ルートコンプレクス６（Ｍａｓｔｅｒ１）は情報格納部６ａに、書き込み処理のためのコマンドを格納する。更に、ルートコンプレクス６（Ｍａｓｔｅｒ１）はバスマスタを第１のメモリデバイス１２（Ｍａｓｔｅｒ２）に移譲する。バスマスタの移譲を受けて、第１のメモリデバイス１２（Ｍａｓｔｅｒ２）の第１のコントローラ１２ｂは、ルートコンプレクス６（Ｍａｓｔｅｒ１）の情報格納部６ａに格納された書き込み処理のためのコマンドを読み取るトランザクションを起動し、書き込み処理のためのコマンドを読み取る。
【００７２】
このようにして、ルートコンプレクス６（Ｍａｓｔｅｒ１）から第１のメモリデバイス１２（Ｍａｓｔｅｒ２）へのコマンドが送信され、第１のメモリデバイス１２（Ｍａｓｔｅｒ２）が受け取ることになる。
【００７３】
第１のメモリデバイス１２（Ｍａｓｔｅｒ２）が受け取った書き込み処理のためのコマンドについて、対象とされる仮想大容量ストレージにおけるメモリ上のアドレスが第１のコントローラ１２ｂにより判定される（Ｓ２２）。対象とされるアドレスがマスターメモリ（Ｍａｓｔｅｒ２）の第１の情報格納部１２ａにおけるものであれば（例えば、［１〜３２ＧＢ］であれば）、マスターメモリ（Ｍａｔｅｒ２）（第１のメモリデバイス１２）に対して書き込み処理が行われる（Ｓ２４）。対象とされるアドレスがスレーブ１（Ｓｌａｖｅ１）の第２の情報格納部１４ａにおけるものであれば（例えば、［３２ＧＢ＋１Ｂ］〜［３２ＧＢ＋３２ＧＢ］であれば）、スレーブ１（Ｓｌａｖｅ１）（第２のメモリデバイス１４）に対して書き込み処理が行われる（Ｓ２６）。対象とされるアドレスがスレーブ２（Ｓｌａｖｅ２）の第３の情報格納部１６ａにおけるものであれば（例えば、［３２ＧＢ＋３２ＧＢ＋１Ｂ］〜［３２ＧＢ＋３２ＧＢ＋６４ＧＢ］であれば）、スレーブ２（Ｓｌａｖｅ２）（第３のメモリデバイス１６）に対して書き込み処理が行われる（Ｓ２８）。全てのペイロードデータについての書き込みが完了すると、書き込み処理は終了する（Ｓ３０）。
【００７４】
ここで、スレーブ１（Ｓｌａｖｅ１）（第２のメモリデバイス１４）に対しての書き込み処理は、図８の（２−２）に示すような、マスターメモリである第１のメモリデバイス１２（Ｍａｓｔｅｒ２）からスレーブ１（Ｓｌａｖｅ１）へのコマンドにより、実行される。同様に、スレーブ２（Ｓｌａｖｅ２）（第３のメモリデバイス１６）に対しての書き込み処理は、図８の（２−３）に示すような、マスターメモリである第１のメモリデバイス１２（Ｍａｓｔｅｒ２）からスレーブ２（Ｓｌａｖｅ２）へのコマンドにより、実行される。
【００７５】
従って、書き込み処理の開始点（開始アドレス）から終了点（終了アドレス）までが、メモリデバイスの境界を一つまたぐ場合、例えば、第１のメモリデバイス１２（Ｍａｓｔｅｒ２）と第２のメモリデバイス１４（Ｓｌａｖｅ１）との境界をまたぐ場合、マスターメモリは、Ｍａｓｔｅｒ２からＳｌａｖｅ１へのコマンドを分割して発行する（図８の（２−２）参照）。このとき、「開始アドレス」は第２のメモリデバイス１４（Ｓｌａｖｅ１）上のものとされ（即ち、「３２ＧＢ＋１Ｂ」から３２ＧＢが差し引かれ）、「ペイロードの長さ」は元々のペイロードの長さから、Ｍａｓｔｅｒ２における開始アドレスから終端アドレスまでの長さが、差し引かれたものとされ、「ペイロード」には元々のペイロードの先頭から、Ｍａｓｔｅｒ２における開始アドレスから終端アドレスまでに書き込まれるデータが省かれたものが格納される。なお、第１のメモリデバイス１２（Ｍａｓｔｅｒ２）が受け取った書き込み処理のためのコマンドのうち、第１のメモリデバイス１２（Ｍａｓｔｅｒ２）自身に対するもの（即ち、アドレスがＭａｓｔｅｒ２自身に対するもの）については、第１のメモリデバイス１２（Ｍａｓｔｅｒ２）は受け取るのみである（即ち、コマンドを分割せず、該当アドレスについての書き込みを行う）。但し、元々のペイロードの先頭から、自身における開始アドレスから自身の終端アドレスまでの長さのデータについてのみ、書き込みを行う。
【００７６】
また、書き込み処理の開始点（開始アドレス）から終了点（終了アドレス）までが、メモリデバイスの別の境界を一つまたぐ場合、例えば、第２のメモリデバイス１４（Ｓｌａｖｅ１）と第３のメモリデバイス１６（Ｓｌａｖｅ２）との境界をまたぐ場合、マスターメモリは、Ｍａｓｔｅｒ２からＳｌａｖｅ１へのコマンド（図８の（２−２）参照）と、Ｍａｓｔｅｒ２からＳｌａｖｅ２へのコマンド（図８の（２−３）参照）とを、分割して発行する。Ｍａｓｔｅｒ２からＳｌａｖｅ１へのコマンドでは、「開始アドレス」は第２のメモリデバイス１４（Ｓｌａｖｅ１）上のものとされ（即ち、「３２ＧＢ＋１Ｂ〜３２ＧＢ＋３２ＧＢ」から３２ＧＢが差し引かれ）、「ペイロードの長さ」はＳｌａｖｅ１における開始アドレスから終端アドレスまでの長さとされ、「ペイロード」には元々のペイロードの先頭から、Ｓｌａｖｅ１における開始アドレスから終端アドレスまでの長さのデータが格納される。
【００７７】
Ｍａｓｔｅｒ２からＳｌａｖｅ２へのコマンドでは、「開始アドレス」は第３のメモリデバイス１６（Ｓｌａｖｅ２）上のものとされ（即ち、「３２ＧＢ＋３２ＧＢ＋１Ｂ」から（３２ＧＢ＋３２ＧＢ）が差し引かれ）、「ペイロードの長さ」は元々のペイロードの長さから、Ｓｌａｖｅ１における開始アドレスから終端アドレスまでの長さが、差し引かれたものとされ、「ペイロード」には元々のペイロードの先頭から、Ｓｌａｖｅ１における開始アドレスから終端アドレスまでに書き込まれるデータが省かれたものが格納される。
【００７８】
また、書き込み処理の開始点（開始アドレス）から終了点（終了アドレス）までが、メモリデバイスの境界を二つまたぐ場合、つまり、第１のメモリデバイス１２（Ｍａｓｔｅｒ２）と第２のメモリデバイス１４（Ｓｌａｖｅ１）との境界と、第２のメモリデバイス１４（Ｓｌａｖｅ１）と第３のメモリデバイス１６（Ｓｌａｖｅ２）との境界とを、またぐ場合、マスターメモリは、Ｍａｓｔｅｒ２からＳｌａｖｅ１へのコマンド（図８の（２−２）参照）と、Ｍａｓｔｅｒ２からＳｌａｖｅ２へのコマンド（図８の（２−３）参照）とを、分割して発行する。
【００７９】
Ｍａｓｔｅｒ２からＳｌａｖｅ１へのコマンドでは、「開始アドレス」は第２のメモリデバイス１４（Ｓｌａｖｅ１）上のものとされ（即ち、「３２ＧＢ＋１Ｂ」から３２ＧＢが差し引かれ）、「ペイロードの長さ」は自身の開始アドレスから終端アドレスまでの長さ（即ち、３２ＧＢ）とされ、「ペイロード」には、元々のペイロードの先頭からＭａｓｔｅｒ２における開始アドレスから終端アドレスまでに書き込まれるデータが省かれたデータにおける、頭から３２ＧＢ（即ち、自身の開始アドレスから終端アドレスまでの長さ）分のデータが、格納される。
【００８０】
Ｍａｓｔｅｒ２からＳｌａｖｅ２へのコマンドでは、「開始アドレス」は第３のメモリデバイス１６（Ｓｌａｖｅ２）上のものとされる（即ち、「３２ＧＢ＋３２ＧＢ＋１Ｂ」から（３２ＧＢ＋３２ＧＢ）が差し引かれる）。また、「ペイロードの長さ」は元々のペイロードの長さから、Ｍａｓｔｅｒ２における開始アドレスから終端アドレスまでの長さと、Ｓｌａｖｅ１における開始アドレスから終端アドレスまでの長さ（即ち、３２ＧＢ）とが、差し引かれたものとされる。「ペイロード」には、元々のペイロードの先頭から、Ｍａｓｔｅｒ２における開始アドレスから終端アドレスまでに書き込まれるデータと、Ｓｌａｖｅ１における開始アドレスから終端アドレスまでに書き込まれるデータ（即ち、３２ＧＢ分のデータ）とが、省かれたデータが格納される。
【００８１】
なお、第１のメモリデバイス１２（Ｍａｓｔｅｒ２）が受け取った書き込み処理のためのコマンドのうち、第１のメモリデバイス１２（Ｍａｓｔｅｒ２）自身に対するもの（即ち、アドレスがＭａｓｔｅｒ２自身に対するもの）については、第１のメモリデバイス１２（Ｍａｓｔｅｒ２）は受け取るのみである。即ち、第１のメモリデバイス１２（Ｍａｓｔｅｒ２）は、コマンドを分割せず、該当アドレスについての書き込みを行う。但し、元々のペイロードの先頭から、自身における開始アドレスから自身の終端アドレスまでの長さのデータについてのみ書き込みを行う。
【００８２】
なお、書き込み処理の終了時に、第１のメモリデバイス１２（Ｍａｓｔｅｒ２）はバスマスタをルートコンプレクス６（Ｍａｓｔｅｒ１）に移譲し戻してもよい。
【００８３】
２．２．１．読み込み処理
図１０は、実施の形態１に係る情報処理装置による仮想大容量ストレージからの読み込み処理の概略フロー図である。
【００８４】
ここでの読み込み処理は、大容量ストレージを構成する第１〜第３のエンドポイント（第１のメモリデバイス１２、第２のメモリデバイス１４、第３のメモリデバイス１６）に対して行われるものが想定されている。即ち、読み込み処理の開始点（開始アドレス）から終了点（終了アドレス）までが、メモリデバイスの境界をまたぐ場合の読み込み処理が想定されている。
【００８５】
図９に示す読み込み処理では、開始（Ｓ４０）後、上記にて説明したように、ルートコンプレクス６（Ｍａｓｔｅｒ１）は情報格納部６ａに、読み込み処理のためのコマンドを格納する。更に、ルートコンプレクス６（Ｍａｓｔｅｒ１）はバスマスタを第１のメモリデバイス１２（Ｍａｓｔｅｒ２）に移譲する。バスマスタの移譲を受けて、第１のメモリデバイス１２（Ｍａｓｔｅｒ２）の第１のコントローラ１２ｂは、ルートコンプレクス６（Ｍａｓｔｅｒ１）の情報格納部６ａに格納された読み込み処理のためのコマンドを読み取るトランザクションを起動し、読み込み処理のためのコマンドを読み取る。このようにして、ルートコンプレクス６（Ｍａｓｔｅｒ１）から第１のメモリデバイス１２（Ｍａｓｔｅｒ２）へのコマンドが送信され、第１のメモリデバイス１２（Ｍａｓｔｅｒ２）が受け取ることになる。
【００８６】
第１のメモリデバイス１２（Ｍａｓｔｅｒ２）が受け取った読み取り処理のためのコマンドについて、対象とされる仮想大容量ストレージにおけるメモリ上のアドレスが第１のコントローラ１２ｂにより判定される（Ｓ４２）。対象とされるアドレスがマスターメモリ（Ｍａｓｔｅｒ２）の第１の情報格納部１２ａにおけるものであれば（例えば、［１Ｂ〜３２ＧＢ］であれば）、マスターメモリ（Ｍａｔｅｒ２）（第１のメモリデバイス１２）に対して読み込み処理が行われる（Ｓ４４）。対象とされるアドレスがスレーブ１（Ｓｌａｖｅ１）の第２の情報格納部１４ａにおけるものであれば（例えば、［３２ＧＢ＋１Ｂ］〜［３２ＧＢ＋３２ＧＢ］であれば）、スレーブ１（Ｓｌａｖｅ１）（第２のメモリデバイス１４）に対して読み込み処理が行われる（Ｓ４６）。対象とされるアドレスがスレーブ２（Ｓｌａｖｅ２）の第３の情報格納部１６ａにおけるものであれば（例えば、［３２ＧＢ＋３２ＧＢ＋１Ｂ］〜［３２ＧＢ＋３２ＧＢ＋６４ＧＢ］であれば）、スレーブ２（Ｓｌａｖｅ２）（第３のメモリデバイス１６）に対して読み込み処理が行われる（Ｓ４８）。
【００８７】
ここで、スレーブ１（Ｓｌａｖｅ１）（第２のメモリデバイス１４）に対しての読み込み処理は、図８の（２−２）に示すような、マスターメモリである第１のメモリデバイス１２（Ｍａｓｔｅｒ２）からスレーブ１（Ｓｌａｖｅ１）へのコマンドにより、実行される。スレーブ１（Ｓｌａｖｅ１）から読み出されたデータは、当該コマンドパケットの「ペイロード」に格納される。
【００８８】
更に、当該コマンドパケットの「宛先」にはルートコンプレクス６を表すデータが格納され、「送り元」にはマスターメモリ（第１のエンドポイント、第１のメモリデバイス１２）を表すデータが格納され、「開始アドレス」は第２のメモリデバイス１４（Ｓｌａｖｅ１）におけるアドレスでは無く、仮想大容量ストレージにおけるアドレスに書き換えられて（即ち、該アドレスは、マスターメモリとスレーブメモリとの論理的関係に基づいて変更されて）、ルートコンプレクス６に返送される。即ち、スレーブ１（Ｓｌａｖｅ１）から読み出されたデータは、マスターメモリから読み出されたデータとして（マスターメモリを介して）、ルートコンプレクス６に返送されることになる。
【００８９】
同様に、スレーブ２（Ｓｌａｖｅ２）（第３のメモリデバイス１６）に対しての読み込み処理は、図８の（２−３）に示すような、マスターメモリである第１のメモリデバイス１２（Ｍａｓｔｅｒ２）からスレーブ２（Ｓｌａｖｅ２）へのコマンドにより、実行される。
【００９０】
スレーブ２（Ｓｌａｖｅ２）から読み出されたデータは、当該コマンドパケットの「ペイロード」に格納される。
【００９１】
更に、当該コマンドパケットの「宛先」にはルートコンプレクス６を表すデータが格納され、「送り元」にはマスターメモリ（第１のエンドポイント、第１のメモリデバイス１２）を表すデータが格納され、「開始アドレス」は第３のメモリデバイス１６（Ｓｌａｖｅ２）におけるアドレスでは無く、仮想大容量ストレージにおけるアドレスに書き換えられて（即ち、該アドレスは、マスターメモリとスレーブメモリとの論理的関係に基づいて変更されて）、ルートコンプレクス６に返送される。即ち、スレーブ２（Ｓｌａｖｅ２）から読み出されたデータは、マスターメモリから読み出されたデータとして（マスターメモリを介して）、ルートコンプレクス６に返送されることになる。
【００９２】
従って、読み込み処理の（開始アドレス）から終了点（終了アドレス）までが、メモリデバイスの境界を一つ以上またぐ場合には、書き込み処理と同様に、マスターメモリは、コマンドの分割（及び発行）を行う。
【００９３】
まず、読み込み処理の開始点（開始アドレス）から終了点（終了アドレス）までが、メモリデバイスの境界を一つまたぐ場合、例えば、第１のメモリデバイス１２（Ｍａｓｔｅｒ２）と第２のメモリデバイス１４（Ｓｌａｖｅ１）との境界をまたぐ場合、マスターメモリは、Ｍａｓｔｅｒ２からＳｌａｖｅ１へのコマンドを分割して発行する（図８の（２−２）参照）。このとき、「開始アドレス」は第２のメモリデバイス１４（Ｓｌａｖｅ１）上のものとされ（即ち、「３２ＧＢ＋１」から３２ＧＢが差し引かれ）、「ペイロードの長さ」は元々のペイロードの長さから、Ｍａｓｔｅｒ２における開始アドレスから終端アドレスまでの長さが、差し引かれたものとされる。
【００９４】
なお、第１のメモリデバイス１２（Ｍａｓｔｅｒ２）が受け取った読み込み処理のためのコマンドのうち、第１のメモリデバイス１２（Ｍａｓｔｅｒ２）自身に対するもの（即ち、アドレスがＭａｓｔｅｒ２自身に対するもの）については、第１のメモリデバイス１２（Ｍａｓｔｅｒ２）は受け取るのみである（即ち、コマンドを分割せず、該当アドレスについての読み込みを行う）。但し、自身における開始アドレスから自身の終端アドレスまでの長さについてのみ、読み込みを行う。
【００９５】
第２のメモリデバイス１４（Ｓｌａｖｅ１）から読み出されたデータは、前述のように、マスターメモリから読み出されたデータとして（マスターメモリを介して）、ルートコンプレクス６に返送される。
【００９６】
また、読み込み処理の開始点（開始アドレス）から終了点（終了アドレス）までが、メモリデバイスの別の境界を一つまたぐ場合、例えば、第２のメモリデバイス１４（Ｓｌａｖｅ１）と第３のメモリデバイス１６（Ｓｌａｖｅ２）との境界をまたぐ場合、マスターメモリは、Ｍａｓｔｅｒ２からＳｌａｖｅ１へのコマンド（図８の（２−２）参照）と、Ｍａｓｔｅｒ２からＳｌａｖｅ２へのコマンド（図８の（２−３）参照）とを、分割して発行する。
【００９７】
Ｍａｓｔｅｒ２からＳｌａｖｅ１へのコマンドでは、「開始アドレス」は第２のメモリデバイス１４（Ｓｌａｖｅ１）上のものとされ（即ち、「３２ＧＢ＋１Ｂ〜３２ＧＢ＋３２ＧＢ」から３２ＧＢが差し引かれ）、「ペイロードの長さ」はＳｌａｖｅ１における開始アドレスから終端アドレスまでの長さとされる。
【００９８】
Ｍａｓｔｅｒ２からＳｌａｖｅ２へのコマンドでは、「開始アドレス」は第３のメモリデバイス１６（Ｓｌａｖｅ２）上のものとされ（即ち、「３２ＧＢ＋３２ＧＢ＋１Ｂ」から（３２ＧＢ＋３２ＧＢ）が差し引かれ）、「ペイロードの長さ」は元々のペイロードの長さから、Ｓｌａｖｅ１における開始アドレスから終端アドレスまでの長さが、差し引かれたものとされる。
【００９９】
第２のメモリデバイス１４（Ｓｌａｖｅ１）から読み出されたデータは、前述のように、マスターメモリから読み出されたデータとして（マスターメモリを介して）、ルートコンプレクス６に返送される。
【０１００】
第３のメモリデバイス１６（Ｓｌａｖｅ２）から読み出されたデータは、前述のように、マスターメモリから読み出されたデータとして（マスターメモリを介して）、ルートコンプレクス６に返送される。
【０１０１】
また、読み込み処理の開始点（開始アドレス）から終了点（終了アドレス）までが、メモリデバイスの境界を二つまたぐ場合、つまり、第１のメモリデバイス１２（Ｍａｓｔｅｒ２）と第２のメモリデバイス１４（Ｓｌａｖｅ１）との境界と、第２のメモリデバイス１４（Ｓｌａｖｅ１）と第３のメモリデバイス１６（Ｓｌａｖｅ２）との境界とを、またぐ場合、マスターメモリは、Ｍａｓｔｅｒ２からＳｌａｖｅ１へのコマンド（図８の（２−２）参照）と、Ｍａｓｔｅｒ２からＳｌａｖｅ２へのコマンド（図８の（２−３）参照）とを、分割して発行する。
【０１０２】
Ｍａｓｔｅｒ２からＳｌａｖｅ１へのコマンドでは、「開始アドレス」は第２のメモリデバイス１４（Ｓｌａｖｅ１）上のものとされ（即ち、「３２ＧＢ＋１Ｂ」から３２ＧＢが差し引かれ）、「ペイロードの長さ」は自身の開始アドレスから終端アドレスまでの長さ（即ち、３２ＧＢ）とされる。
【０１０３】
Ｍａｓｔｅｒ２からＳｌａｖｅ２へのコマンドでは、「開始アドレス」は第３のメモリデバイス１６（Ｓｌａｖｅ２）上のものとされ（即ち、「３２ＧＢ＋３２ＧＢ＋１Ｂ」から（３２ＧＢ＋３２ＧＢ）が差し引かれ）、「ペイロードの長さ」は元々のペイロードの長さから、Ｍａｓｔｅｒ２における開始アドレスから終端アドレスまでの長さと、Ｓｌａｖｅ１における開始アドレスから終端アドレスまでの長さ（即ち、３２ＧＢ）とが、差し引かれたものとされる。
【０１０４】
なお、第１のメモリデバイス１２（Ｍａｓｔｅｒ２）が受け取った読み込み処理のためのコマンドのうち、第１のメモリデバイス１２（Ｍａｓｔｅｒ２）自身に対するもの（即ち、アドレスがＭａｓｔｅｒ２自身に対するもの）については、第１のメモリデバイス１２（Ｍａｓｔｅｒ２）は受け取るのみである（即ち、コマンドを分割せず、該当アドレスについての読み込みを行う）。但し、自身における開始アドレスから自身の終端アドレスまでの長さについてのみ、読み込みを行う。
【０１０５】
第２のメモリデバイス１４（Ｓｌａｖｅ１）から読み出されたデータは、前述のように、マスターメモリから読み出されたデータとして（マスターメモリを介して）、ルートコンプレクス６に返送される。
【０１０６】
第３のメモリデバイス１６（Ｓｌａｖｅ２）から読み出されたデータは、前述のように、マスターメモリから読み出されたデータとして（マスターメモリを介して）、ルートコンプレクス６に返送される。
【０１０７】
全てのデータについての読み込みが完了すると、読み込み処理は終了する（Ｓ５０）。読み込み処理の終了時に、第１のメモリデバイス１２（Ｍａｓｔｅｒ２）はバスマスタをルートコンプレクス６（Ｍａｓｔｅｒ１）に移譲し戻してもよい。
【０１０８】
２．３．効果等
以上のように、本実施の形態において、ＰＣＩｅシステムとしての情報処理装置は、ルートコンプレクスを含むホストデバイスと、各々がエンドポイントに相当する複数のメモリデバイスとを含む。複数のメモリデバイスのうちの一つがマスターメモリとして定義され、それ以外のメモリデバイスがスレーブメモリとして定義され且つマスターメモリと論理的に結合される。
【０１０９】
このことにより、複数のメモリデバイスが一つの仮想ストレージを構成する。ルートコンプレクスから、一つの仮想ストレージを構成する複数のメモリデバイスへのアクセス時には、ルートコンプレクスはマスターメモリにバスマスタを移譲する。バスマスタを移譲され、且つ、ルートコンプレクスからアクセスに係るコマンドを受け取ったマスターメモリは、アクセスに係るコマンドにおける、アクセスのためアドレス情報を、スレーブメモリとの論理的関係に基づいて変更して、変更後のアクセスに係るコマンドを全ての又は一部のスレーブメモリに送信する。
【０１１０】
これにより、情報処理装置は、複数のメモリデバイスにより構成される一つの仮想大容量ストレージを利用して、長時間記録された画像データ等の大きいサイズのデータを一まとまりとして取り扱うことができる。
【０１１１】
３．他の実施の形態
以上のように、本出願において開示する技術の例示として、実施の形態１を説明した。しかしながら、本開示における技術は、これに限定されず、適宜、変更、置き換え、付加、省略などを行った実施の形態にも適用可能である。
【０１１２】
また、実施の形態を説明するために、添付図面および詳細な説明を提供した。したがって、添付図面および詳細な説明に記載された構成要素の中には、課題解決のために必須な構成要素だけでなく、上記技術を例示するために、課題解決のためには必須でない構成要素も含まれ得る。そのため、それらの必須ではない構成要素が添付図面や詳細な説明に記載されていることをもって、直ちに、それらの必須ではない構成要素が必須であるとの認定をするべきではない。
【０１１３】
また、上述の実施の形態は、本開示における技術を例示するためのものであるから、請求の範囲またはその均等の範囲において種々の変更、置き換え、付加、省略などを行うことができる。
【産業上の利用可能性】
【０１１４】
本開示は、複数のリムーバブルメディアが装着される情報処理装置に適用可能である。具体的には、ビデオサーバなどに、本開示は適用可能である。
【符号の説明】
【０１１５】
４      ＣＰＵ
６      ルートコンプレクス
６ａ    情報格納部
１２    第１のエンドポイント（第１のメモリデバイス）
１２ａ  第１の情報格納部
１４    第２のエンドポイント（第２のメモリデバイス）
１４ａ  第２の情報格納部
１６    第３のエンドポイント（第３のメモリデバイス）
１６ａ  第３の情報格納部
２０    ホストデバイス
２２    ＰＣＩｅバス
【図１】
0006704127.tif 000002
【図２】
0006704127.tif 000003
【図３】
0006704127.tif 000004
【図４】
0006704127.tif 000005
【図５】
0006704127.tif 000006
【図６】
0006704127.tif 000007
【図７】
0006704127.tif 000008
【図８】
0006704127.tif 000009
【図９】
0006704127.tif 000010
【図１０】
0006704127.tif 000011
【図１１】
0006704127.tif 000012