(57)【要約】      （修正有）【課題】新たな規格を柔軟かつ積極的に取り込みつつデータ転送処理効率を向上した記憶デバイス制御装置及び記憶デバイス制御装置の制御方法を提供する。【解決手段】情報処理装置から送信されるデータ入出力要求を受信するチャネル制御部と、記憶デバイスの制御を行うディスク制御部と、キャッシュメモリとを備え、チャネル制御部は情報処理装置との間で通信を行う通信インタフェース部２１３と、通信インタフェース部２１３と第１のバス２１０３を介して接続し、データの転送を行うデータ転送部５００と、データ転送部５００と第２のバス２１０１を介して接続するプロセッサ２１１とを備える。通信インタフェース部２１３からの読出しコマンドは第１バス２１０３を介してデータ転送部５００へ、さらに第２バス２１０１を介してプロセッサ２１１に送信され、第１のバス２１０３ではその通信規約の種類に応じてスプリット応答を送信するかしないかを切り分け制御する。【選択図】      図２
2005165620.tif 000002
【特許請求の範囲】
【請求項１】
情報処理装置から記憶デバイスに対して送信されるデータ入出力要求を受信するチャネル制御部と、
前記記憶デバイスに対するデータ入出力に関する制御を行うディスク制御部と、
前記チャネル制御部と前記ディスク制御部との間で授受される入出力データを記憶するキャッシュメモリと、を備え、
前記チャネル制御部は、
前記情報処理装置との間で通信を行う通信インタフェース部と、
前記通信インタフェース部と第１のバスを介して接続し、前記通信インタフェース部と前記キャッシュメモリとの間で授受される前記入出力データの転送を行うデータ転送部と、
前記データ転送部と第２のバスを介して接続し、前記データ転送部の制御を行うプロセッサと、
を備え、
前記通信インタフェース部は、前記プロセッサに対して、データを読み出すことを指示する読み出しコマンドを前記データ転送部に送信し、
前記データ転送部は、前記第１のバスが第１の通信規約に従う場合、前記読み出しコマンドに応じた読み出しデータが後から送信されることを示すスプリット応答を前記通信インタフェース部に送信し、前記読み出しコマンドを前記プロセッサに送信し、
前記データ転送部は、前記第１のバスが第２の通信規約に従う場合、前記スプリット応答を前記通信インタフェース部に送信せずに、前記読み出しコマンドを前記プロセッサに送信し、
前記プロセッサは、前記読み出しコマンドを受信し、前記スプリット応答を前記データ転送部に送信し、受信した前記読み出しコマンドに応じた前記読み出しデータを前記データ転送部に送信し、
前記データ転送部は、前記読み出しデータを受信し、受信した前記読み出しデータを前記通信インタフェース部に送信すること、
を特徴とする記憶デバイス制御装置。
【請求項２】
請求項１に記載の記憶デバイス制御装置であって、
前記第１の通信規約は、ＰＣＩ−Ｘ規格であり、
前記第２の通信規約は、ＰＣＩ規格であること、
を特徴とする記憶デバイス制御装置。
【請求項３】
請求項１に記載の記憶デバイス制御装置であって、
前記データ転送部は、前記第１のバスが従う前記通信規約が前記第１の通信規約であるか前記第２の通信規約であるかを示す情報を設定する通信規約設定部を備え、
前記データ転送部は、前記通信規約設定部に設定されている情報に応じて、前記通信インタフェース部に前記スプリット応答を送信するかどうかを決定すること、
を特徴とする記憶デバイス制御装置。
【請求項４】
請求項１に記載の記憶デバイス制御装置であって、
前記プロセッサは、前記通信インタフェース部に対する前記読み出しコマンドを前記データ転送部に送信し、
前記データ転送部は、前記読み出しコマンドを受信し、前記スプリット応答を前記プロセッサに送信し、前記読み出しコマンドを前記通信インタフェース部に送信し、
前記通信インタフェース部は、前記読み出しコマンドに応じた前記読み出しデータを前記データ転送部に送信し、
前記データ転送部は、前記読み出しデータを受信し、受信した前記読み出しデータを前記プロセッサに送信すること、
を特徴とする記憶デバイス制御装置。
【請求項５】
請求項４に記載の記憶デバイス制御装置であって、
前記プロセッサは、前記第１のバスの使用権を獲得した後に、前記読み出しコマンドを前記データ転送部に送信し、
前記プロセッサは、前記スプリット応答を受信し、前記第１のバスの前記使用権を解放し、
前記データ転送部は、前記第１のバスの前記使用権を獲得した後に、前記読み出しデータを前記プロセッサに送信し、前記読み出しデータを前記プロセッサに送信した後に、前記第１のバスの前記使用権を解放すること、
を特徴とする記憶デバイス制御装置。
【請求項６】
請求項１に記載の記憶デバイス制御装置であって、
前記チャネル制御部は、複数の前記通信インタフェースを備え、
第１の前記通信インタフェースは前記データ転送部と前記第１のバスで接続され、
前記チャネル制御部は、第２の前記通信インタフェースと前記データ転送部とを接続する第３のバスを備え、
前記プロセッサは、第１の前記通信インタフェース部に対する第１の前記読み出しコマンドを前記データ転送部に送信し、
前記データ転送部は、前記第１の読み出しコマンドを受信し、前記スプリット応答を前記プロセッサに送信し、前記第１の読み出しコマンドを前記第１の通信インタフェース部に送信し、
前記プロセッサは、第２の前記通信インタフェース部に対する第２の前記読み出しコマンドを前記データ転送部に送信し、
前記データ転送部は、前記第２の読み出しコマンドを受信し、前記スプリット応答を前記プロセッサに送信し、前記第２の読み出しコマンドを前記第２の通信インタフェース部に送信し、
前記第１の通信インタフェース部は、前記第１の読み出しコマンドに応じた第１の前記読み出しデータを前記データ転送部に送信し、
前記データ転送部は、前記第１の読み出しデータを受信し、受信した前記第１の読み出しデータを前記プロセッサに送信し、
前記第２の通信インタフェース部は、前記第２の読み出しコマンドに応じた第２の前記読み出しデータを前記データ転送部に送信し、
前記データ転送部は、前記第２の読み出しデータを受信し、受信した前記第２の読み出しデータを前記プロセッサに送信すること、
を特徴とする記憶デバイス制御装置。
【請求項７】
請求項１に記載の記憶デバイス制御装置であって、
前記チャネル制御部は、複数の前記通信インタフェースを備え、
第１の前記通信インタフェースは前記データ転送部と前記第１のバスで接続され、
前記チャネル制御部は、第２の前記通信インタフェースと前記データ転送部とを接続する第３のバスを備え、
前記データ転送部は、
前記第１のバスと接続し、前記第１の通信インタフェースとの間でデータの授受を行う第１のバスインタフェース部と、
前記第２のバスと接続し、前記プロセッサとの間でデータの授受を行う第２のバスインタフェース部と、
前記第３のバスと接続し、前記第２の通信インタフェースとの間でデータの授受を行う第３のバスインタフェース部と、
を備え、
前記プロセッサは、前記第１の通信インタフェース部に対する第１の前記読み出しコマンドを前記データ転送部に送信し、
前記第２のバスインタフェース部は、前記第１の読み出しコマンドを受信し、受信した前記第１の読み出しコマンドを前記第１のバスインタフェース部に送信し、前記スプリット応答を前記プロセッサに送信し、
前記第１のバスインタフェース部は、受信した前記第１の読み出しコマンドを前記第１の通信インタフェース部に送信し、
前記プロセッサは、第２の前記通信インタフェース部に対する第２の前記読み出しコマンドを前記データ転送部に送信し、
前記第２のバスインタフェース部は、前記第２の読み出しコマンドを受信し、受信した前記第２の読み出しコマンドを前記第３のバスインタフェース部に送信し、前記スプリット応答を前記プロセッサに送信し、
前記第３のバスインタフェース部は、受信した前記第２の読み出しコマンドを前記第２の通信インタフェース部に送信し、
前記第１の通信インタフェース部は、前記第１の読み出しコマンドに応じた第１の前記読み出しデータを前記データ転送部に送信し、
前記第１のバスインタフェース部は、前記第１の読み出しデータを受信し、受信した前記第１の読み出しデータを前記第２のバスインタフェース部に送信し、前記第２のバスインタフェース部は、受信した前記第１の読み出しデータを前記プロセッサに送信し、
前記第２の通信インタフェース部は、前記第２の読み出しコマンドに応じた第２の前記読み出しデータを前記データ転送部に送信し、
前記第３のバスインタフェース部は、前記第２の読み出しデータを受信し、受信した前記第２の読み出しデータを前記第２のバスインタフェース部に送信し、前記第２のバスインタフェース部は、受信した前記第２の読み出しデータを前記プロセッサに送信すること、
を特徴とする記憶デバイス制御装置。
【請求項８】
請求項１に記載の記憶デバイス制御装置であって、
前記チャネル制御部は、複数の前記プロセッサを備え、
第１の前記プロセッサは、前記通信インタフェース部に対する第１の前記読み出しコマンドを前記データ転送部に送信し、
第２の前記プロセッサは、前記通信インタフェース部に対する第２の前記読み出しコマンドを前記データ転送部に送信し、
前記データ転送部は、前記第１及び第２の読み出しコマンドを受信し、前記第１及び第２のプロセッサに前記スプリット応答を送信し、前記第１の読み出しコマンドを前記通信インタフェース部に送信し、
前記通信インタフェース部は、前記第１の読み出しコマンドに応じて第１の前記読み出しデータを前記データ転送部に送信し、
前記データ転送部は、前記第１の読み出しデータを前記第１のプロセッサに送信し、
前記通信インタフェース部は、前記第２の読み出しコマンドに応じて第２の前記読み出しデータを前記データ転送部に送信し、
前記データ転送部は、前記第２の読み出しデータを前記第２のプロセッサに送信すること、
を特徴とする記憶デバイス制御装置。
【請求項９】
請求項８に記載の記憶デバイス制御装置であって、
前記データ転送部は、前記第１及び第２の読み出しコマンドを受信し、前記第１又は第２のコマンドのうち先に受信したものを先に前記通信インタフェース部に送信すること、
を特徴とする記憶デバイス制御装置。
【請求項１０】
請求項１に記載の記憶デバイス制御装置であって、
前記チャネル制御部は複数の前記通信インタフェース部と、複数の前記プロセッサとを備え、
前記チャネル制御部は、
第１の前記通信インタフェース部と前記データ転送装置とを接続する第１のバスと、
第１の前記プロセッサと前記データ転送装置とを接続する第２のバスと、
第２の前記通信インタフェース部と前記データ転送装置とを接続する第３のバスと、
第２の前記プロセッサと前記データ転送装置とを接続する第４のバスと、
を備え、
前記データ転送部は、
前記第１にバスに接続し、前記第１の通信インタフェース部との間でデータを授受する第１のバスブリッジと、
前記第２のバスに接続し、前記第１のプロセッサとの間でデータを授受する第２のバスブリッジと、
前記第３のバスに接続し、前記第２の通信インタフェース部との間でデータを授受する第３のバスブリッジと、
前記第４のバスに接続し、前記第２のプロセッサとの間でデータを授受する第４のバスブリッジと、
を備え、
前記第２のバスブリッジは、前記第１のバスブリッジと前記第３のバスブリッジとに接続し、
前記第４のバスブリッジは、前記第１のバスブリッジと前記第３のバスブリッジとに接続すること、
を特徴とする記憶デバイス制御装置。
【請求項１１】
請求項１０に記載の記憶デバイス制御装置であって、
前記第１のプロセッサは、前記第２のバスの使用権を獲得し、前記第１の通信インタフェース部に対する、データの読み出しを指示する第１の読み出しコマンドを前記データ転送部に送信し、
前記第２のバスブリッジは、前記第１の読み出しコマンドを受信し、第１の前記スプリット応答を前記第１のプロセッサに送信し、受信した前記第１の読み出しコマンドを前記第１のバスブリッジに転送し、
前記第１のプロセッサは、前記第１のスプリット応答を受信し、前記第１のバスの前記使用権を解放し、
前記第１のバスブリッジは、前記第１の読み出しコマンドを受信し、前記第１の読み出しコマンドを前記第１の通信インタフェース部に送信し、
前記第１のプロセッサは、前記第１のバスの前記使用権を獲得し、前記第２の通信インタフェース部に対する第２の読み出しコマンドを前記データ転送部に送信し、
前記第２のバスブリッジは、前記第２の読み出しコマンドを受信し、第２の前記スプリット応答を前記第１のプロセッサに送信し、受信した前記第２の読み出しコマンドを前記第３のバスブリッジに転送し、
前記第１のプロセッサは、前記第２のスプリット応答を受信し、前記第１のバスの前記使用権を解放し、
前記第１の通信インタフェース部は、前記第１の読み出しコマンドに応じた第１の前記読み出しデータを前記データ転送部に送信し、
前記第１のバスブリッジは、前記第１の読み出しデータを受信し、受信した前記第１の読み出しデータを前記第２のバスブリッジに転送し、
前記第２のバスブリッジは、前記第１のバスの前記使用権を獲得し、前記第１の読み出しデータを前記第１のプロセッサに送信し、前記第１のバスの前記使用権を解放し、
前記第２の通信インタフェース部は、前記第２の読み出しコマンドに応じた第２の前記読み出しデータを前記データ転送部に送信し、
前記第３のバスブリッジは、前記第２の読み出しデータを受信し、受信した前記第２の読み出しデータを前記第２のバスブリッジに転送し、
前記第２のバスブリッジは、前記第１のバスの前記使用権を獲得し、前記第２の読み出しデータを前記第１のプロセッサに送信すること、
を特徴とする記憶デバイス制御装置。
【請求項１２】
請求項１０に記載の記憶デバイス制御装置であって、
前記第１のプロセッサは、前記第１の通信インタフェース部に対する第１の読み出しコマンドを前記データ転送部に送信し、
前記第２のプロセッサは、前記第１の通信インタフェース部に対する第２の読み出しコマンドを前記データ転送部に送信し、
前記第２のバスブリッジは、前記第１の読み出しコマンドを受信し、前記第１の読み出しコマンドを前記第１のバスブリッジに転送し、前記第１のプロセッサに前記スプリット応答を送信し、
前記第１のバスブリッジは、前記第２の読み出しコマンドを受信し、前記第２の読み出しコマンドを前記第１の通信インタフェース部に送信し、
前記第４のバスブリッジは、前記第２の読み出しコマンドを受信し、前記第２の読み出しコマンドを前記第１のバスブリッジに転送し、前記第２のプロセッサに前記スプリット応答を送信し、
前記第１のバスブリッジは、前記第２の読み出しコマンドを受信し、
前記第１のバスブリッジは、前記第１の読み出しコマンドに応じた第１の読み出しデータを前記第１の通信インタフェース部から受信し、受信した前記第１の読み出しデータを前記第２のバスブリッジに転送し、
前記第１のバスブリッジは、前記第２の読み出しコマンドを前記第１の通信インタフェース部に送信し、
前記第２のバスブリッジは、前記第１の読み出しデータを受信し、受信した前記第１の読み出しデータを前記第１のプロセッサに送信し、
前記第１のバスブリッジは、前記第２の読み出しコマンドに応じた第２の読み出しデータを前記第１の通信インタフェース部から受信し、受信した前記第２の読み出しデータを前記第４のバスブリッジに転送し、
前記第４のバスブリッジは、前記第２の読み出しデータを前記第２のプロセッサに送信すること、
を特徴とする記憶デバイス制御装置。
【請求項１３】
情報処理装置から記憶デバイスに対して送信されるデータ入出力要求を受信するチャネル制御部と、
前記記憶デバイスに対するデータ入出力に関する制御を行うディスク制御部と、
前記チャネル制御部と前記ディスク制御部との間で授受される入出力データを記憶するキャッシュメモリと、を備え、
前記チャネル制御部は、
前記情報処理装置との間で通信を行う通信インタフェース部と、
前記通信インタフェース部と第１のバスを介して接続し、前記通信インタフェース部と前記キャッシュメモリとの間で授受される前記入出力データの転送を行うデータ転送部と、
前記データ転送部と第２のバスを介して接続し、前記データ転送部の制御を行うプロセッサと、
を備える記憶デバイス制御装置の制御方法であって、
前記通信インタフェース部は、前記プロセッサに対して、データを読み出すことを指示する読み出しコマンドを前記データ転送部に送信し、
前記データ転送部は、前記第１のバスが第１の通信規約に従う場合、前記読み出しコマンドに応じた読み出しデータが後から送信されることを示すスプリット応答を前記通信インタフェース部に送信し、前記読み出しコマンドを前記プロセッサに送信し、
前記データ転送部は、前記第１のバスが第２の通信規約に従う場合、前記スプリット応答を前記通信インタフェース部に送信せずに、前記読み出しコマンドを前記プロセッサに送信し、
前記プロセッサは、前記読み出しコマンドを受信し、前記スプリット応答を前記データ転送部に送信し、受信した前記読み出しコマンドに応じた前記読み出しデータを前記データ転送部に送信し、
前記データ転送部は、前記読み出しデータを受信し、受信した前記読み出しデータを前記通信インタフェース部に送信すること、
を特徴とする記憶デバイス制御装置の制御方法。
【請求項１４】
請求項１３に記載の記憶デバイス制御装置の制御方法であって、
前記プロセッサは、前記通信インタフェース部に対する前記読み出しコマンドを前記データ転送部に送信し、
前記データ転送部は、前記読み出しコマンドを受信し、前記スプリット応答を前記プロセッサに送信し、前記読み出しコマンドを前記通信インタフェース部に送信し、
前記通信インタフェース部は、前記読み出しコマンドに応じた前記読み出しデータを前記データ転送部に送信し、
前記データ転送部は、前記読み出しデータを受信し、受信した前記読み出しデータを前記プロセッサに送信すること、
を特徴とする記憶デバイス制御装置の制御方法。
【請求項１５】
請求項１３に記載の記憶デバイス制御装置の制御方法であって、
前記チャネル制御部は、複数の前記通信インタフェースを備え、
第１の前記通信インタフェースは前記データ転送部と前記第１のバスで接続され、
前記チャネル制御部は、第２の前記通信インタフェースと前記データ転送部とを接続する第３のバスを備え、
前記プロセッサは、第１の前記通信インタフェース部に対する第１の前記読み出しコマンドを前記データ転送部に送信し、
前記データ転送部は、前記第１の読み出しコマンドを受信し、前記スプリット応答を前記プロセッサに送信し、前記第１の読み出しコマンドを前記第１の通信インタフェース部に送信し、
前記プロセッサは、第２の前記通信インタフェース部に対する第２の前記読み出しコマンドを前記データ転送部に送信し、
前記データ転送部は、前記第２の読み出しコマンドを受信し、前記スプリット応答を前記プロセッサに送信し、前記第２の読み出しコマンドを前記第２の通信インタフェース部に送信し、
前記第１の通信インタフェース部は、前記第１の読み出しコマンドに応じた第１の前記読み出しデータを前記データ転送部に送信し、
前記データ転送部は、前記第１の読み出しデータを受信し、受信した前記第１の読み出しデータを前記プロセッサに送信し、
前記第２の通信インタフェース部は、前記第２の読み出しコマンドに応じた第２の前記読み出しデータを前記データ転送部に送信し、
前記データ転送部は、前記第２の読み出しデータを受信し、受信した前記第２の読み出しデータを前記プロセッサに送信すること、
を特徴とする記憶デバイス制御装置の制御方法。
【請求項１６】
請求項１３に記載の記憶デバイス制御装置であって、
前記チャネル制御部は、複数の前記通信インタフェースを備え、
第１の前記通信インタフェースは前記データ転送部と前記第１のバスで接続され、
前記チャネル制御部は、第２の前記通信インタフェースと前記データ転送部とを接続する第３のバスを備え、
前記データ転送部は、
前記第１のバスと接続し、前記第１の通信インタフェースとの間でデータの授受を行う第１のバスインタフェース部と、
前記第２のバスと接続し、前記プロセッサとの間でデータの授受を行う第２のバスインタフェース部と、
前記第３のバスと接続し、前記第２の通信インタフェースとの間でデータの授受を行う第３のバスインタフェース部と、
を備え、
前記プロセッサは、前記第１の通信インタフェース部に対する第１の前記読み出しコマンドを前記データ転送部に送信し、
前記第２のバスインタフェース部は、前記第１の読み出しコマンドを受信し、受信した前記第１の読み出しコマンドを前記第１のバスインタフェース部に送信し、前記スプリット応答を前記プロセッサに送信し、
前記第１のバスインタフェース部は、受信した前記第１の読み出しコマンドを前記第１の通信インタフェース部に送信し、
前記プロセッサは、第２の前記通信インタフェース部に対する第２の前記読み出しコマンドを前記データ転送部に送信し、
前記第２のバスインタフェース部は、前記第２の読み出しコマンドを受信し、受信した前記第２の読み出しコマンドを前記第３のバスインタフェース部に送信し、前記スプリット応答を前記プロセッサに送信し、
前記第３のバスインタフェース部は、受信した前記第２の読み出しコマンドを前記第２の通信インタフェース部に送信し、
前記第１の通信インタフェース部は、前記第１の読み出しコマンドに応じた第１の前記読み出しデータを前記データ転送部に送信し、
前記第１のバスインタフェース部は、前記第１の読み出しデータを受信し、受信した前記第１の読み出しデータを前記第２のバスインタフェース部に送信し、前記第２のバスインタフェース部は、受信した前記第１の読み出しデータを前記プロセッサに送信し、
前記第２の通信インタフェース部は、前記第２の読み出しコマンドに応じた第２の前記読み出しデータを前記データ転送部に送信し、
前記第３のバスインタフェース部は、前記第２の読み出しデータを受信し、受信した前記第２の読み出しデータを前記第２のバスインタフェース部に送信し、前記第２のバスインタフェース部は、受信した前記第２の読み出しデータを前記プロセッサに送信すること、
を特徴とする記憶デバイス制御装置の制御方法。
【請求項１７】
請求項１３に記載の記憶デバイス制御装置の制御方法であって、
前記チャネル制御部は、複数の前記プロセッサを備え、
第１の前記プロセッサは、前記通信インタフェース部に対する第１の前記読み出しコマンドを前記データ転送部に送信し、
第２の前記プロセッサは、前記通信インタフェース部に対する第２の前記読み出しコマンドを前記データ転送部に送信し、
前記データ転送部は、前記第１及び第２の読み出しコマンドを受信し、前記第１及び第２のプロセッサに前記スプリット応答を送信し、前記第１の読み出しコマンドを前記通信インタフェース部に送信し、
前記通信インタフェース部は、前記第１の読み出しコマンドに応じて第１の前記読み出しデータを前記データ転送部に送信し、
前記データ転送部は、前記第１の読み出しデータを前記第１のプロセッサに送信し、
前記通信インタフェース部は、前記第２の読み出しコマンドに応じて第２の前記読み出しデータを前記データ転送部に送信し、
前記データ転送部は、前記第２の読み出しデータを前記第２のプロセッサに送信すること、
を特徴とする記憶デバイス制御装置の制御方法。
【請求項１８】
請求項１７に記載の記憶デバイス制御装置の制御方法であって、
前記データ転送部は、前記第１及び第２の読み出しコマンドを受信し、前記第１又は第２のコマンドのうち先に受信したものを先に前記通信インタフェース部に送信すること、
を特徴とする記憶デバイス制御装置の制御方法。
【請求項１９】
請求項１３に記載の記憶デバイス制御装置の制御方法であって、
前記チャネル制御部は複数の前記通信インタフェース部と、複数の前記プロセッサとを備え、
前記チャネル制御部は、
第１の前記通信インタフェース部と前記データ転送装置とを接続する第１のバスと、
第１の前記プロセッサと前記データ転送装置とを接続する第２のバスと、
第２の前記通信インタフェース部と前記データ転送装置とを接続する第３のバスと、
第２の前記プロセッサと前記データ転送装置とを接続する第４のバスと、
を備え、
前記データ転送部は、
前記第１にバスに接続し、前記第１の通信インタフェース部との間でデータを授受する第１のバスブリッジと、
前記第２のバスに接続し、前記第１のプロセッサとの間でデータを授受する第２のバスブリッジと、
前記第３のバスに接続し、前記第２の通信インタフェース部との間でデータを授受する第３のバスブリッジと、
前記第４のバスに接続し、前記第２のプロセッサとの間でデータを授受する第４のバスブリッジと、
を備え、
前記第２のバスブリッジは、前記第１のバスブリッジと前記第３のバスブリッジとに接続し、
前記第４のバスブリッジは、前記第１のバスブリッジと前記第３のバスブリッジとに接続し、
前記第１のプロセッサは、前記第２のバスの使用権を獲得し、前記第１の通信インタフェース部に対する、データの読み出しを指示する第１の読み出しコマンドを前記データ転送部に送信し、
前記第２のバスブリッジは、前記第１の読み出しコマンドを受信し、第１の前記スプリット応答を前記第１のプロセッサに送信し、受信した前記第１の読み出しコマンドを前記第１のバスブリッジに転送し、
前記第１のプロセッサは、前記第１のスプリット応答を受信し、前記第１のバスの前記使用権を解放し、
前記第１のバスブリッジは、前記第１の読み出しコマンドを受信し、前記第１の読み出しコマンドを前記第１の通信インタフェース部に送信し、
前記第１のプロセッサは、前記第１のバスの前記使用権を獲得し、前記第２の通信インタフェース部に対する第２の読み出しコマンドを前記データ転送部に送信し、
前記第２のバスブリッジは、前記第２の読み出しコマンドを受信し、第２の前記スプリット応答を前記第１のプロセッサに送信し、受信した前記第２の読み出しコマンドを前記第３のバスブリッジに転送し、
前記第１のプロセッサは、前記第２のスプリット応答を受信し、前記第１のバスの前記使用権を解放し、
前記第１の通信インタフェース部は、前記第１の読み出しコマンドに応じた第１の前記読み出しデータを前記データ転送部に送信し、
前記第１のバスブリッジは、前記第１の読み出しデータを受信し、受信した前記第１の読み出しデータを前記第２のバスブリッジに転送し、
前記第２のバスブリッジは、前記第１のバスの前記使用権を獲得し、前記第１の読み出しデータを前記第１のプロセッサに送信し、前記第１のバスの前記使用権を解放し、
前記第２の通信インタフェース部は、前記第２の読み出しコマンドに応じた第２の前記読み出しデータを前記データ転送部に送信し、
前記第３のバスブリッジは、前記第２の読み出しデータを受信し、受信した前記第２の読み出しデータを前記第２のバスブリッジに転送し、
前記第２のバスブリッジは、前記第１のバスの前記使用権を獲得し、前記第２の読み出しデータを前記第１のプロセッサに送信すること、
を特徴とする記憶デバイス制御装置の制御方法。
【請求項２０】
請求項１３に記載の記憶デバイス制御装置の制御方法であって、
前記チャネル制御部は複数の前記通信インタフェース部と、複数の前記プロセッサとを備え、
前記チャネル制御部は、
第１の前記通信インタフェース部と前記データ転送装置とを接続する第１のバスと、
第１の前記プロセッサと前記データ転送装置とを接続する第２のバスと、
第２の前記通信インタフェース部と前記データ転送装置とを接続する第３のバスと、
第２の前記プロセッサと前記データ転送装置とを接続する第４のバスと、
を備え、
前記データ転送部は、
前記第１にバスに接続し、前記第１の通信インタフェース部との間でデータを授受する第１のバスブリッジと、
前記第２のバスに接続し、前記第１のプロセッサとの間でデータを授受する第２のバスブリッジと、
前記第３のバスに接続し、前記第２の通信インタフェース部との間でデータを授受する第３のバスブリッジと、
前記第４のバスに接続し、前記第２のプロセッサとの間でデータを授受する第４のバスブリッジと、
を備え、
前記第２のバスブリッジは、前記第１のバスブリッジと前記第３のバスブリッジとに接続し、
前記第４のバスブリッジは、前記第１のバスブリッジと前記第３のバスブリッジとに接続し、
前記第１のプロセッサは、前記第１の通信インタフェース部に対する第１の読み出しコマンドを前記データ転送部に送信し、
前記第２のプロセッサは、前記第１の通信インタフェース部に対する第２の読み出しコマンドを前記データ転送部に送信し、
前記第２のバスブリッジは、前記第１の読み出しコマンドを受信し、前記第１の読み出しコマンドを前記第１のバスブリッジに転送し、前記第１のプロセッサに前記スプリット応答を送信し、
前記第１のバスブリッジは、前記第２の読み出しコマンドを受信し、前記第２の読み出しコマンドを前記第１の通信インタフェース部に送信し、
前記第４のバスブリッジは、前記第２の読み出しコマンドを受信し、前記第２の読み出しコマンドを前記第１のバスブリッジに転送し、前記第２のプロセッサに前記スプリット応答を送信し、
前記第１のバスブリッジは、前記第２の読み出しコマンドを受信し、
前記第１のバスブリッジは、前記第１の読み出しコマンドに応じた第１の読み出しデータを前記第１の通信インタフェース部から受信し、受信した前記第１の読み出しデータを前記第２のバスブリッジに転送し、
前記第１のバスブリッジは、前記第２の読み出しコマンドを前記第１の通信インタフェース部に送信し、
前記第２のバスブリッジは、前記第１の読み出しデータを受信し、受信した前記第１の読み出しデータを前記第１のプロセッサに送信し、
前記第１のバスブリッジは、前記第２の読み出しコマンドに応じた第２の読み出しデータを前記第１の通信インタフェース部から受信し、受信した前記第２の読み出しデータを前記第４のバスブリッジに転送し、
前記第４のバスブリッジは、前記第２の読み出しデータを前記第２のプロセッサに送信すること、
を特徴とする記憶デバイス制御装置の制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、記憶デバイス制御装置及び記憶デバイス制御装置の制御方法に関する。
【背景技術】
【０００２】
近年情報処理装置で取り扱われるデータ量が増加しており、情報処理装置外部でデータを記憶・管理するストレージ装置では、より大容量かつより高速であることが求められている。
【特許文献１】特開２００３−９１４９７号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
このような状況の下、ストレージ装置の設計においては、新たな規格を柔軟かつ積極的に取り込みつつデータ転送処理効率を向上させることが求められている。
【０００４】
本発明は、このような背景を鑑みてなされたものであり、新たな規格を柔軟かつ積極的に取り込みつつデータ転送処理効率を向上した記憶デバイス制御装置及び記憶デバイス制御装置の制御方法提供することを目的とする。
【課題を解決するための手段】
【０００５】
上記目的を達成するための本発明のうち主たる発明のひとつは、記憶デバイス制御装置であって、情報処理装置から記憶デバイスに対して送信されるデータ入出力要求を受信するチャネル制御部と、前記記憶デバイスに対するデータ入出力に関する制御を行うディスク制御部と、前記チャネル制御部と前記ディスク制御部との間で授受される入出力データを記憶するキャッシュメモリと、を備え、前記チャネル制御部は、前記情報処理装置との間で通信を行う通信インタフェース部と、前記通信インタフェース部と第１のバスを介して接続し、前記通信インタフェース部と前記キャッシュメモリとの間で授受される前記入出力データの転送を行うデータ転送部と、前記データ転送部と第２のバスを介して接続し、前記データ転送部の制御を行うプロセッサと、を備え、前記通信インタフェース部は、前記プロセッサに対して、データを読み出すことを指示する読み出しコマンドを前記データ転送部に送信し、前記データ転送部は、前記第１のバスが第１の通信規約に従う場合、前記読み出しコマンドに応じた読み出しデータが後から送信されることを示すスプリット応答を前記通信インタフェース部に送信し、前記読み出しコマンドを前記プロセッサに送信し、前記データ転送部は、前記第１のバスが第２の通信規約に従う場合、前記スプリット応答を前記通信インタフェース部に送信せずに、前記読み出しコマンドを前記プロセッサに送信し、前記プロセッサは、前記読み出しコマンドを受信し、前記スプリット応答を前記データ転送部に送信し、受信した前記読み出しコマンドに応じた前記読み出しデータを前記データ転送部に送信し、前記データ転送部は、前記読み出しデータを受信し、受信した前記読み出しデータを前記通信インタフェース部に送信することとする。
【発明の効果】
【０００６】
本発明によれば、新たな規格を柔軟かつ積極的に取り込みつつデータ転送処理効率を向上した記憶デバイス制御装置及び記憶デバイス制御装置の制御方法を提供できる。
【発明を実施するための最良の形態】
【０００７】
以下、本発明の実施形態の一例を図面を用いて詳細に説明する。
【０００８】
＝＝＝ストレージシステム全体像＝＝＝
図１は、本発明を適用した記憶デバイス制御装置２００を含む情報処理システムの全体構成を示すブロック図である。図１に示すように、ストレージシステムは、各種の情報処理サービスを提供する情報処理装置１００と、記憶ボリューム３００の記憶領域を情報処理装置１００に提供する記憶デバイス制御装置２００とを含んで構成される。
【０００９】
情報処理装置１００はＣＰＵ（Central Processing Unit）やメモリを備えたコンピュータである。情報処理装置１００では、ＣＰＵにより各種のプログラムが実行され、様々な機能が実現される。情報処理装置１００は、例えば、パーソナルコンピュータやワークステーション、メインフレームコンピュータなどである。情報処理装置１００は１台のコンピュータであってもよいし、複数台のコンピュータであってもよい。情報処理装置１００上ではオペレーティングシステムが実行され、オペレーティングシステム上では様々なアプリケーションプログラムが実行される。
【００１０】
情報処理装置１００は、ＳＡＮ（Storage Area Network）４００を介して記憶デバイス制御装置２００と接続されている。ＳＡＮ４００を介して行われる情報処理装置１００と記憶デバイス制御装置２００との間の通信はファイバチャネルプロトコルに従って行われる。ＳＡＮ４００はファイバチャネルプロトコル以外にもさまざまなプロトコルに従った通信経路とすることもできる。ＳＡＮ４００には、例えば、ＬＡＮ（Local Area Network）やＳＣＳＩ（Small Computer System Interface）、ｉＳＣＳＩ（Internet Small Computer System Interface）、ＥＳＣＯＮ（Enterprise System Connection）（登録商標）、ＦＩＣＯＮ（Fibre Connection）（登録商標）、ＡＣＯＮＡＲＣ（Advanced Connection Architecture）（登録商標）、ＦＩＢＡＲＣ（Fibre connection Architecture）（登録商標）などを用いることができる。なお、情報処理装置１００と記憶デバイス制御装置２００とは直接接続する形態としてもよい。
【００１１】
情報処理装置１００はファイバチャネルプロトコルに従って、データ入出力要求を記憶デバイス制御装置２００に送信する。記憶デバイス制御装置２００は、情報処理装置１００からデータ入出力要求を受信すると、受信したデータ入出力要求に応じて、記憶ボリューム３００に対するデータの入出力に関する処理を行う。このようにして、情報処理装置１００上で実行されるアプリケーションプログラムは、記憶ボリューム３００の記憶領域に適宜アクセスしながら各種処理を実行する。
【００１２】
記憶デバイス制御装置２００は多数の物理ディスクを備え、複数の記憶ボリューム３００の提供する記憶領域を管理している。記憶ボリューム（記憶デバイス）３００とは、物理ディスクにより提供される物理ボリュームと、物理ボリューム上に論理的に設定される論理ボリュームとを含む記憶領域である。物理ディスクとしては、例えば、ハードディスク装置や半導体記憶装置等を用いることができる。記憶デバイス制御装置２００は、複数の記憶ボリューム３００によってディスクアレイを構成し、ＲＡＩＤによって管理される記憶領域を提供することもできるし、単一の物理ディスクによる記憶領域を提供するようにもできる。記憶ボリューム３００は記憶デバイス制御装置２００に一体的に構成されてもよいし、記憶デバイス制御装置２００から独立した装置として、ＳＣＳＩやＬＡＮ、ＳＡＮといった通信経路によって記憶デバイス制御装置２００と接続する形態としてもよい。
【００１３】
図１に示すように、記憶デバイス制御装置２００は、チャネル制御部１乃至３（２１０）、共有メモリ２２０、キャッシュメモリ２３０、ディスク制御部１乃至３（２４０）、接続部２５０を備える。
【００１４】
チャネル制御部２１０は情報処理装置１００との間で通信を行うための通信インタフェースを備え、情報処理装置１００から記憶デバイスに対して送信されるデータ入出力要求を受信する機能を有する。チャネル制御部２１０はデータ入出力要求を受信すると、データ入出力要求に応じて記憶ボリューム３００のアドレスやデータ長等を求め、記憶ボリューム３００へのアクセスを行うためのＩ／Ｏコマンドを作成する。このようにして、記憶デバイス制御装置２００は、記憶ボリューム３００の提供する記憶領域を情報処理装置１００に提供する。なおＩ／Ｏコマンドにはデータの先頭アドレス、データ長、読み出し又は書き込み等のアクセスの種別が含まれている。またデータの書き込みの場合にはＩ／Ｏコマンドには書き込みデータが含まれているようにすることもできる。Ｉ／Ｏコマンドの作成は、後述するマイクロプロセッサ２１１により行われる。
【００１５】
接続部２５０はチャネル制御部２１０、共有メモリ２２０、キャッシュメモリ２３０、ディスク制御部２４０を相互に接続する。チャネル制御部２１０、共有メモリ２２０、キャッシュメモリ２３０、ディスク制御部２４０間でのデータやコマンドの授受は接続部２５０を介して行われる。接続部２５０は、例えば、高速スイッチングによりデータ伝送を行う高速クロスバスイッチなどの高速バスである。
【００１６】
共有メモリ２２０及びキャッシュメモリ２３０は、チャネル制御部２１０やディスク制御部２４０により共有される記憶メモリである。共有メモリ２２０は主に制御情報やコマンド等を記憶するために利用されるのに対し、キャッシュメモリ２３０は主にデータを記憶するために利用される。チャネル制御部２１０は生成したＩ／Ｏコマンドを共有メモリ２２０に書き込む。チャネル制御部２１０は、例えば書き込みデータ等のＩ／Ｏコマンドに付随するデータはキャッシュメモリ２３０に書き込む。
【００１７】
ディスク制御部２４０は記憶ボリューム３００に対するデータ入出力に関する制御を行う。ディスク制御部２４０は、共有メモリ２２０に書き込まれたＩ／Ｏコマンドを読み出し、Ｉ／Ｏコマンドに従って記憶ボリューム３００へデータの入出力に関する制御を行う。また、ディスク制御部２４０は、チャネル制御部２１０がＩ／Ｏコマンドに指定した論理アドレスを物理アドレスに変換する。また、ディスク制御部２４０は、記憶ボリューム３００における物理ディスクがＲＡＩＤにより管理されている場合に、ＲＡＩＤ構成（例えば、ＲＡＩＤ０，１，５）に従ったデータのアクセスを行う。
【００１８】
例えば、チャネル制御部２１０は、情報処理装置１００から受信したデータ入出力要求がデータの読み出し要求である場合には、読み出し対象となるデータがキャッシュメモリ２３０に存在するかどうかを調べる。読み出し対象となるデータがキャッシュメモリ２３０に存在すれば、チャネル制御部２１０はそのデータを情報処理装置１００に送信する。一方、読みだし対象となるデータがキャッシュメモリ２３０に存在しない場合には、チャネル制御部２１０は読み出しコマンドを共有メモリ２２０に書き込むと共に、共有メモリ２２０を監視する。読み出しコマンドが共有メモリ２２０に書き込まれたことを検出したディスク制御部２４０は、記憶ボリューム３００から読みだし対象となるデータを読み出してこれをキャッシュメモリ２３０に書き込むと共に、その旨を共有メモリ２２０に書き込む。チャネル制御部２１０は読みだし対象となるデータがキャッシュメモリ２３０に書き込まれたことを検出すると、そのデータを情報処理装置１００に送信する。  
このようにチャネル制御部２１０及びディスク制御部２４０の間では、キャッシュメモリ２３０を介してデータの授受が行われる。
【００１９】
＝＝＝チャネル制御部＝＝＝
図２は、チャネル制御部２１０の内部構成を示す図である。
【００２０】
マイクロプロセッサ（ＭＰ）１及び２（２１１）（第１のプロセッサ及び第２のプロセッサ）、ローカルメモリ１及び２（２１２）、通信インタフェース（ＰＲＴＣＬ）１及び２（２１３）（第１の通信インタフェース部及び第２の通信インタフェース部）、データバッファ２１４、接続コネクタ２１７、データ転送ＬＳＩ５００（データ転送部）を備える。
【００２１】
通信インタフェース１（２１３）とデータ転送ＬＳＩ５００とは、バス２１０３（第１のバス）により接続されている。マイクロプロセッサ１（２１１）とデータ転送ＬＳＩ５００とは、バス２１０１（第２にバス）により接続されている。
【００２２】
また、通信インタフェース２（２１３）とデータ転送ＬＳＩ５００とはバス２１０４（第３のバス）により接続されている。マイクロプロセッサ２（２１１）とデータ転送ＬＳＩ５００とは、バス２１０２（第４のバス）により接続されている。本実施の形態において、バス２１０１及び２１０２はＰＣＩ−Ｘ規格に従うバスであるものとする。また、バス２１０３及び２１０４はＰＣＩ規格に従うバスであるものとする。
【００２３】
通信インタフェース２１３は、情報処理装置１００との間で通信を行うためのインタフェースを備えている。通信コネクタ２１６は情報処理装置１００と通信を行うためのコネクタである。本実施の形態におけるチャネル制御部２１０の場合、通信コネクタ２１６は、ＳＡＮ４００に接続可能なコネクタであり、例えば、ファイバチャネルに対応している。チャネル制御部２１０が情報処理装置１００からファイル名を指定したデータ入出力要求を受け付けるのであれば、通信コネクタは例えばイーサネット（登録商標）に対応し、チャネル制御部２１０はＬＡＮ経由でデータ入出力要求を受け付けるようにしてもよい。
【００２４】
マイクロプロセッサ２１１はチャネル制御部２１０全体の制御を司る。マイクロプロセッサ２１１がローカルメモリ２１２に記憶されたアプリケーションプログラムを実行することによって、各種の機能が実現する。
【００２５】
接続コネクタ２１７はチャネル制御部２１０が記憶デバイス制御装置２００と接続するためのコネクタである。接続コネクタ２１７が記憶デバイス制御装置２００側のコネクタと嵌合することにより、チャネル制御部２１０のボードは記憶デバイス制御装置２００と電気的に接続される。チャネル制御部２１０は接続コネクタ２１７を介して接続部２５０に接続され、記憶デバイス制御装置２００内の共有メモリ２２０やキャッシュメモリ２３０、ディスク制御部２４０などにアクセスが可能となっている。
【００２６】
データ転送ＬＳＩ５００は、マイクロプロセッサ２１１からの指示により、デバイス間でのデータの転送を行う装置である。データ転送ＬＳＩ５００はＰＣＩバス及びＰＣＩ−Ｘバスのマスタ（イニシエータ）として、バス２１０１乃至２１０４にデータを送出することができる。また、バス２１０１乃至２１０４に接続しているマイクロプロセッサ２１１や通信インタフェース２１３等のデバイスからコマンドを受信するターゲットデバイスとしても動作することができる。データ転送ＬＳＩ５００は、マイクロプロセッサ２１１からコマンドを受信すると、そのコマンドに対する応答が後から送信されることを示すスプリット応答をマイクロプロセッサ２１１に返信することができる。これにより、イニシエータがターゲットへコマンドを送信するサイクルと、ターゲットがイニシエータへ応答を返信するサイクルとを別サイクルとする、いわゆるスプリットトランザクションが実現される。ＰＣＩ−Ｘ規格では上記のスプリットトランザクションが規定されており、バス２１０１及び２１０２はＰＣＩ−Ｘ規格に従うバスであるため、データ転送ＬＳＩ５００はマイクロプロセッサ１及び２（２１１）との間でスプリットトランザクションを実現することができ、バスの使用効率を向上することができる。
【００２７】
また、図２に示すように、データ転送ＬＳＩ５００は、バス間を接続するための４つのブリッジ（ブリッジＡ５０１、ブリッジＢ５０２、ブリッジＣ５０３、及びブリッジＤ５０４）、データバッファ２に対するアクセスを行うバッファコントローラ（ＢＵＦＣＴＬ）５０５、モードセレクタ５０６を備える。
【００２８】
ブリッジＣ５０３（第１のバスブリッジ、第１のバスインタフェース）、ブリッジＡ５０１（第２のバスブリッジ、第２のバスインタフェース）、ブリッジＤ５０４（第３のバスブリッジ、第３のバスインタフェース）、ブリッジＢ５０２（第４のバスブリッジ、第４のバスインタフェース）はいずれも、バス間のデータを転送するための装置である。  
ブリッジＡ５０１は、バス２１０１に接続している。ブリッジＡ５０１は、バス２１０１を介してマイクロプロセッサ１（２１１）との間でデータのやりとりを行う。ブリッジＢ５０２は、バス２１０２に接続している。ブリッジＢ５０２は、バス２１０２を介してマイクロプロセッサ２（２１１）との間でデータのやりとりを行う。  
ブリッジＣ５０３は、バス２１０３に接続している。ブリッジＣ５０３は、バス２１０３を介して通信インタフェース１（２１３）との間でデータのやりとりを行う。ブリッジＤ５０４は、バス２１０４に接続している。ブリッジＤ５０４は、バス２１０４を介して通信インタフェース２（２１３）との間でデータのやりとりを行う。
【００２９】
モードセレクタ５０６は、データ転送ＬＳＩ５００が通信インタフェース１及び２（２１３）と接続するバス２１０３及び２１０４が、ＰＣＩバスであるかＰＣＩ−Ｘバスであるかを設定する信号線である。モードセレクタ５０６は、例えば、ハイレベルの信号が供給されている間はバス２１０３及び２１０４がＰＣＩ−Ｘバスであるものとして、ＰＣＩ−Ｘ規格に従って信号を送受信することができる。なお、モードセレクタ５０６は信号線以外にも、スイッチとしてもよい。また、プロセッサがローカルメモリに設定されている値に応じて、バス２１０３及び２１０４のバスの種類を特定するようにしてもよい。このように、データ転送ＬＳＩ５００は、ＰＣＩ及びＰＣＩ−Ｘの両規格に従うバスに接続することができる。なお、ＰＣＩ規格及びＰＣＩ−Ｘ規格以外の規格に従うバスに対応するようにしてもよい。
【００３０】
このように、データ転送ＬＳＩ５００は、複数の規格に従うバスに接続することができる。そのため、データ転送ＬＳＩ５００を搭載した記憶デバイス制御装置２００は、技術の進歩に伴い新しい規格と古い規格とが混在するような状況においても、様々な規格に柔軟に対応することができる。
【００３１】
＝＝＝データ転送処理１＝＝＝
図３は、本実施の形態に係るデータ転送処理の流れを示す図である。図３は、マイクロプロセッサ１（２１１）が通信インタフェース１（２１３）に対してデータの取得を要求するリードコマンド（読み出しコマンド）を送信し、通信インタフェース１（２１３）からデータを受信する流れを示している。図３に示すデータ転送処理は、例えば、データ転送ＬＳＩ５００がデータバッファ２１４に記憶されているデータをキャッシュメモリ２３０に転送する際、転送するデータ長やアドレス等のデータ転送に必要な情報を取得するときに、その情報を転送する処理として行われる。
【００３２】
マイクロプロセッサ１（２１１）は、バス２１０１の使用権を獲得し、リードコマンド（ＲＥＡＤ−ＣＭＤ）をブリッジＡ５０１に送信する（S3001）。ブリッジＡ５０１は、リードコマンドを受信し、スプリット応答（ＳＰＬＩＴ−ＲＥＳＰ）をマイクロプロセッサ１（２１１）に送信する（S3002）。マイクロプロセッサ１（２１１）は、スプリット応答を受信すると、バス２１０１の使用権を解放する。従って、マイクロプロセッサ１（２１１）は、送信したリードコマンドに応じたデータが返信されるまで他の処理を行うことができる。図３において、期間３１がマイクロプロセッサ１（２１１）が他の処理を行うことができる期間である。
【００３３】
ブリッジＡ５０１は、リードコマンドをブリッジＣ５０３に転送する（S3003）。この時点で、ブリッジＡ５０１は、他のコマンドを受け付けることができるようになる。ブリッジＣ５０３は、リードコマンドを受信すると、バス２１０３の使用権を獲得し、通信インタフェース１（２１３）にリードコマンドを送信する（S3004）。
【００３４】
通信インタフェース１（２１３）はリードコマンドを受信すると、受信したリードコマンドに応じて、例えば、情報処理装置１００から受信したデータ入出力要求のデータ長等のリードデータ（ＲＥＡＤ−ＤＡＴＡ）を作成する。通信インタフェース１（２１３）はデータを作成すると、リードデータをブリッジＣ５０４に送信する（S3005）。バス２１０３が例えばＰＣＩバス等のスプリットトランザクションを用いることができないバスである場合、通信インタフェース１（２１３）がリードデータを作成する間の（S3004）から（S3005）までの期間、ブリッジＣ５０３はビジー状態となる。また、ブリッジＣ５０３がバス２１０３の使用権を獲得しているため、バス２１０３もビジー状態となる。
【００３５】
ここで、ブリッジＡ５０１が通信インタフェース１（２１３）からのデータを待機するとすれば、図３の期間３２の間もブリッジＡ５０１は他のコマンドを受け付けることができないビジー状態となってしまう。しかしながら、上記のブリッジＡ５０１は、期間３２の分だけコマンドを受け付けることができる期間を長くすることができる。本実施の形態において、ブリッジＡ５０１はブリッジＣ５０３とブリッジＤ５０４との両方に接続しているため、ブリッジＣ５０３がビジー状態であったとしても、ブリッジＤ５０４に対してコマンドを転送することができる。従って、ブリッジＡ５０１がコマンドを受け付けることができる期間が長くなる。よって、データ転送ＬＳＩ５００がコマンドをより多く受け付けることが可能となり、効率的なデータ転送ＬＳＩ５００の動作を図ることができる。
【００３６】
一方、ブリッジＣ５０３は、通信インタフェース１（２１３）からリードデータを受信すると、バス２１０３をの使用権を解放し、リードデータをブリッジＡ５０１に転送する（S3006）。  
ブリッジＡ５０１は通信インタフェース１（２１３）から送信されたリードデータを受信すると、バス２１０１の使用権を獲得し、マイクロプロセッサ１（２１１）にリードデータを送信し（S3007）、バス２１０１の使用権を解放する。
【００３７】
このようにして、マイクロプロセッサ２１１（プロセッサ）が通信インタフェース２１３（通信インタフェース部）にリードコマンド（読み出しコマンド）を送信すると、データ転送ＬＳＩ５００（データ転送部）は、通信インタフェース２１３からリードデータの応答であるリードデータを受信するよりも前に、マイクロプロセッサ２１１にスプリット応答を送信することができる。従って、マイクロプロセッサ２１１は、通信インタフェース２１３から送信されるリードデータが到着するまで待機することなく、他の処理を行うことができる。よって、マイクロプロセッサ２１１をより効率的に動作させることができる。マイクロプロセッサ２１１の処理効率が向上すると、記憶デバイス制御装置２００全体としての処理効率も向上することになる。
【００３８】
なお、本実施の形態において、マイクロプロセッサ１（２１１）がバス２１０１の使用権を獲得する仕組みは、ＰＣＩバス等で一般的に用いられている調停回路を利用したものを想定している。マイクロプロセッサ１（２１１）は、例えば、ブリッジＡ５０１の備える調停回路（不図示）に、バス２１０１を使用することを示すリクエスト信号を送信し、調停回路がマイクロプロセッサ１（２１１）にバス２１０１を使用を許可する旨を示す応答信号を送信する。これにより、ブリッジＡ５０１はバス２１０１に接続するデバイスにバス２１０１の使用権を与えることができる。また、ブリッジＢ５０２、ブリッジＣ５０３、及びブリッジＤ５０４も同様に調停回路を備え、夫々バス２１０２、バス２１０３、及びバス２１０４の使用権を各バスに接続するデバイスに与えることができる。
【００３９】
次に、上述したデータ転送処理をタイミングチャートを用いて説明する。図４は、上記の処理における各信号を説明するタイミングチャートである。
【００４０】
ブリッジＡ５０１がマイクロプロセッサ１（２１１）にスプリット応答を返信し、マイクロプロセッサ１（２１１）がバス２１０１の使用権を解放した時点が、Ｔ１である。  
通信インタフェース１（２１３）がリードデータをブリッジＡ５０１に送信し（ＤＡＴＡ−ＴＲＡＮＳ）、ブリッジＡ５０１が受信したリードデータをマイクロプロセッサ１（２１１）に送信し始めた時点がＴ２である。
【００４１】
図４に示すように、Ｔ１〜Ｔ２の期間はバス２１０１の使用権が解放されている。Ｔ１〜Ｔ２の期間は、ブリッジＡ５０１はビジー状態であるため、マイクロプロセッサ１（２１１）は、ブリッジＡ５０１にコマンドを送信することはできない。しかしながら、マイクロプロセッサ１（２１１）はバス２１０１に接続する他のデバイスとやり取りをするなど、他の処理を行うことができる。そのため、より効率的なマイクロプロセッサ１（２１１）の動作を実現することができる。
【００４２】
なお、本実施の形態では、バス２１０３はＰＣＩバスであるとしているが、ＰＣＩ−Ｘバスとしてもよい。この場合、通信インタフェース１（２１３）はスプリット応答をブリッジＣ５０３に返信することができる。図５は、バス２１０３がＰＣＩ−Ｘバスであった場合の上記図３に示すデータ転送処理の流れを示す図である。  
図５に示す処理の流れはほぼ図３に示す処理の流れと同様であるが、通信インタフェース１（２１１）は、ブリッジＣ５０３から受信したリードコマンドに対して、スプリット応答を送信する（S5001）箇所が図３と異なる。ブリッジＡ５０１は、マイクロプロセッサ１（２１１）が送信したリードコマンドに応じてスプリット応答を返信（S3002）している。通信インタフェース１（２１３）から受信したスプリット応答を、ブリッジＣ５０３がブリッジＡ５０１に、ブリッジＡ５０１がマイクロプロセッサ１（２１１）に転送するようにすることもできる。しかしながら、その場合に比べ、本実施の形態によるデータ転送処理では、図５に示すの期間５１の分だけ、マイクロプロセッサ１（２１１）が他の処理を行うことができる期間が長くなっている。
【００４３】
＝＝＝データ転送処理２＝＝＝
図６は、マイクロプロセッサ１（２１１）が通信インタフェース１（２１３）及び通信インタフェース２（２１３）の両方からデータを読み出すときの処理の流れを示す図である。
【００４４】
マイクロプロセッサ１（２１１）は、バス２１０１の使用権を獲得し、通信インタフェース１（２１３）に対するリードコマンド１（ＲＥＡＤ−１）をブリッジＡ５０１に送信する（S6001）。ブリッジＡ５０１はスプリット応答をマイクロプロセッサ１（２１１）に返信し（S6002）、マイクロプロセッサ１（２１１）はバス２１０１の使用権を解放する。ブリッジＡ５０１は、ブリッジＣ５０３にリードコマンド１を転送する（S6003）。ブリッジＣ５０３は、バス２１０３の使用権を獲得し、受信したリードコマンド１を通信インタフェース１（２１３）に送信する（S6004）。通信インタフェース１（２１３）は、受信したリードコマンド１に応じたリードデータ１（ＤＡＴＡ−１）を作成する。
【００４５】
その間に、マイクロプロセッサ１（２１１）は、再度バス２１０１の使用権を獲得し、通信インタフェース２（２１３）に対するリードコマンド２（ＲＥＡＤ−２）をブリッジＡ５０１に送信する（S6005）。ブリッジＡ５０１はスプリット応答をマイクロプロセッサ１（２１１）に返信し（S6006）、マイクロプロセッサ１（２１１）はバス２１０１の使用権を解放する。ブリッジＡ５０１は、ブリッジＤ５０４にリードコマンド２を転送する（S6007）。ブリッジＤ５０４は、バス２１０４の使用権を獲得し、受信したリードコマンド２を通信インタフェース２（２１３）に送信する（S6008）。通信インタフェース２（２１３）は、受信したリードコマンド２に応じたリードデータ２（ＤＡＴＡ−２）を作成する。
【００４６】
通信インタフェース１（２１３）は、リードコマンド１に応じたリードデータ１を作成すると、ブリッジＣ５０３にリードデータ１を返信する（S6009）。ブリッジＣ５０３は、リードデータ１を受信し、バス２１０３をの使用権を解放し、受信したリードデータ１をブリッジＡ５０１に転送する（S6010）。ブリッジＡ５０１は、バス２１０１の使用権を獲得し、受信したリードデータ１をマイクロプロセッサ１に送信し（S6011）、バス２１０１の使用権を解放する。
【００４７】
また、通信インタフェース２（２１３）が、リードコマンド２に応じたリードデータ２を作成すると、ブリッジＤ５０４にリードデータ２を返信する（S6012）。ブリッジＤ５０４は、リードデータ２を受信し、バス２１０４の使用権を解放し、受信したリードデータ２をブリッジＡ５０１に転送する（S6013）。ブリッジＡ５０１は、バス２１０１の使用権を獲得し、受信したリードデータ１をマイクロプロセッサ１に送信し（S6014）、バス２１０１の使用権を解放する。
【００４８】
このようにして、マイクロプロセッサ１（２１１）と通信インタフェース１及び２（２１３）との間でデータが転送される。上記のデータ転送処理では、ブリッジＡ５０１は（S6002）においてマイクロプロセッサ１（２１１）にスプリット応答を返信し、ブリッジＣ５０３にリードコマンド１を転送し、ビジー状態ではなくなる。従って、マイクロプロセッサ１（２１１）は、再送信することなく、リードコマンド２をブリッジＡ５０１に送信（S6005）することができる。
【００４９】
図７及び図８は、上述した、マイクロプロセッサ１（２１１）が通信インタフェース１（２１３）及び通信インタフェース２（２１３）の両方からデータを読み出す際のデータ転送処理にかかる信号を説明する図である。
【００５０】
図７は、ブリッジＡ５０１が、ブリッジＣ５０３及びブリッジＤ５０４と接続せず、直接バス２１０３及びバス２１０４と接続する形態における、上記データ転送処理を説明するタイミングチャートである。図８は、図６に示すデータ転送処理における信号を説明するタイミングチャートである。
【００５１】
図７では、ブリッジＡ５０１は、リードコマンド１を通信インタフェース１（２１３）に送信してからリードデータ１を受信するまでの間、ビジー状態（ＢＲＩＤＧＥ−ＢＵＳＹ７１０１）となっている。そのため、マイクロプロセッサ１（２１１）は、リードコマンド２をブリッジＡ５０１に送信することができず、再送信（ＲＥＴＲＹ）を行う必要がある（S7001）。マイクロプロセッサ１（２１１）が、リードコマンド２を再度送信し（S7002）、通信インタフェース２（２１３）からのリードデータ２を受信し（S7003）、リードデータ２の受信が完了する時点がＴ７である。
【００５２】
これに対し、図８では、ブリッジＡ５０１はマイクロプロセッサ１（２１１）にリードコマンド１に対するスプリット応答を送信し（S8001）て、ビジー状態ではなくなる。そのため、マイクロプロセッサ１（２１１）はリードコマンド２をブリッジＡ５０１に送信しても（S8002）、ブリッジＡ５０１はリードコマンド２を受信することができる。従って、マイクロプロセッサ１（２１１）はリードコマンド２を再送信する必要がない。マイクロプロセッサ１（２１１）が通信インタフェース２（２１３）からのリードデータ２を受信し（S8003）、リードデータ２の受信が完了する時点はＴ８である。
【００５３】
Ｔ７とＴ８とを比較しても明らかなように、本実施の形態におけるデータ転送ＬＳＩ５００によれば、データ転送処理にかかる時間が短縮されることになる。すなわち、本発明によれば、ブリッジＡ５０１（第２のバスインタフェース部）は、リードコマンド１（第１の読み出しコマンド）を受信すると、ブリッジＣ５０３（第１のバスインタフェース部）に送信するため、ビジー状態にならず、リードコマンド２（第２の読み出しコマンド）を受信することができる。従って、マイクロプロセッサ１（２１１）（プロセッサ）は、リードコマンド２（第２のコマンド）を送信するために待機することなく、データ転送ＬＳＩ５００（データ転送部）に第２のコマンドを送信することができる。また、マイクロプロセッサ１（２１１）（プロセッサ）は、第１及び第２のコマンドを送信するとスプリット応答を受信するので、第１及び第２のコマンドに応じた読み出しデータを受信するまでバス２１０１を占有することなく、バス２１０１の使用権を解放することができる。よって、バス２１０１の効率的な使用が可能となる。また、マイクロプロセッサ１（２１１）はリードデータを受信するまで待機することなく、他の処理を行うことができる。よって、マイクロプロセッサ２１１の効率的な利用が可能となる。これにより、マイクロプロセッサ２１１の処理効率が上がり、多くの処理を行うことができるので、記憶デバイス制御装置２００全体の処理効率も向上する。
【００５４】
図９に、バス２１０３及びバス２１０４がＰＣＩ−Ｘバスである場合のデータ転送処理の流れを示す。図９でも上記の図６と同様に、マイクロプロセッサ１（２１１）は、リードコマンド１に対するスプリット応答をブリッジＡ５０１から受信した後、再送信することなく、リードコマンド１に応じたリードデータ１を受信するよりも前に、リードコマンド２をブリッジＡ５０１に送信できるようになっている。
【００５５】
また、マイクロプロセッサ２１１から通信インタフェース２１３に対するコマンドの送信のみならず、通信インタフェース２１３からマイクロプロセッサ２１１に対するコマンドの送信においても同様に、データ転送処理にかかる時間を短縮することができる。  
図１０に、通信インタフェース１（２１３）が、マイクロプロセッサ１及び２（２１１）にリードコマンドを送信する際の、データ転送処理の流れを示す。なお、図１０において、通信インタフェース１（２１３）が接続するバス２１０３は、ＰＣＩ−Ｘバスであることとする。ここでも図９と同様に、ブリッジＣ５０３はリードコマンド１に応じたマイクロプロセッサ１（２１１）からのリードデータ１が応答されるよりも前にリードコマンド２を受信することができる。そのため、通信インタフェース１（２１３）は、リードコマンド１に対するスプリット応答をブリッジＣ５０３から受信した後、リードコマンド２を再送信することなく、ブリッジＣ５０３に送信することができる。従って、通信インタフェース１（２１３）は、リードコマンド２の送信にかける時間を短縮することができる。よって、通信インタフェース１（２１３）は、リードコマンドの送信以外の処理に多く時間をかけることが可能となり、これにより、通信インタフェース１（２１３）は情報処理装置１００からより多くのデータ入出力要求を受信することができるので、記憶デバイス制御装置２００全体として、より多くの記憶デバイスへのアクセスを行うことができる。
【００５６】
＝＝＝データ転送処理３＝＝＝
図１１は、マイクロプロセッサ１及び２（２１１）が通信インタフェース１（２１３）に対して、リードコマンド１を送信するときの処理の流れを示す図である。なお、以下の説明において、マイクロプロセッサ２１１、通信インタフェース２１３、ブリッジ５０１乃至５０４は、コマンドを送信するときにバスの使用権を獲得し、送信したコマンドに対する応答を受信するとバスの使用権を解放するものとする。
【００５７】
マイクロプロセッサ１（２１１）は、通信インタフェース１（２１３）に対するリードコマンド１（ＲＥＡＤ−１）をブリッジＡ５０１に送信する（S11001）。ブリッジＡ５０１は、マイクロプロセッサ１（２１１）にスプリット応答を送信し（S11002）、リードコマンド１をブリッジＣ５０３に転送する（S11003）。  
また、ほぼ同じタイミングで、マイクロプロセッサ２（２１１）が通信インタフェース１（２１３）に対するリードコマンド２（ＲＥＡＤ−２）をブリッジＢ５０２に送信する（S11004）。ブリッジＢ５０２は、マイクロプロセッサ２（２１１）にスプリット応答を送信し（S11005）、リードコマンド２をブリッジＣ５０３に送信する（S11006）。
【００５８】
ブリッジＣ５０３は、ブリッジＡ５０１からのリードコマンド１とブリッジＢ５０２からのリードコマンド２とをほぼ同時に受信するが、通信インタフェース１（２１３）に同時に２つのコマンドを送信しないように調停を行う（S11007）。ここでブリッジＣ５０３は、例えば、リードコマンド１とリードコマンド２のどちらか先に受信した方を先に通信インタフェース１（２１３）に送信するようにできる。図１１において、リードコマンド１が先にブリッジＣ５０３に伝達されたものとする。ブリッジＣ５０３は、先に受信したリードコマンド１を通信インタフェース１（２１３）に転送する（S11008）。通信インタフェース１（２１３）は、受信したリードコマンド１に応じたデータ１（ＤＡＴＡ−１）を作成する。通信インタフェース１（２１３）は、作成したデータ１をブリッジＣ５０３に送信する。なお、この時点で、ブリッジＢ５０２はリードコマンド２がブリッジＣ５０３に受理されていないため、ビジー状態となっている。
【００５９】
ブリッジＣ５０３は、受信したデータ１をブリッジＡ５０１に転送する（S11009）とともに、リードコマンド２を通信インタフェース１（２１３）に送信する（S11010）。  
ブリッジＡ５０１は、ブリッジＣ５０３からデータ１を受信すると、受信したデータ１をマイクロプロセッサ１（２１１）に送信する（S11011）。  
通信インタフェース１（２１３）は、リードコマンド２を受信すると、リードコマンド２に応じたデータ２（ＤＡＴＡ−２）を作成する。通信インタフェース２（２１３）は、作成したデータ２をブリッジＣ５０３に送信する（S11012）。ブリッジＣ５０３は、受信したデータ２をブリッジＢ５０２に転送し（S11013）、ブリッジＢ５０２は受信したデータ２をマイクロプロセッサ２（２１１）に送信する（S11014）。
【００６０】
このようにして、ブリッジＣ５０３は、同時に到達した２つのコマンドに対して調停を行い、２つのコマンドの夫々を順番に通信インタフェース１（２１３）に送信する。このとき、マイクロプロセッサ２（２１１）は、リードコマンド２を、再送信を行うことなくブリッジＢ５０２に送信することができる。そのため、マイクロプロセッサ２（２１１）は、スプリット応答を受信した後、データ２を受信開始するまでの間（図１１における期間１１）、他の処理を行うことができる。従って、マイクロプロセッサ２１１の効率的な動作を図ることができる。また、ブリッジＣ５０３は、リードコマンド１に対応するデータ１を転送し、再度リードコマンド２を受信することなく、リードコマンド２を通信インタフェース１（２１３）に送信することができる。従って、マイクロプロセッサ２（２１１）がリードコマンド２を再送信する場合に比べ、通信インタフェース１（２１３）にリードコマンド２を早く到達させることができる。よって、データ転送処理にかかる時間が短縮される。
【００６１】
この時間の短縮の様子を示したのが、図１２及び図１３のタイミングチャートである。図１２は、ブリッジＣ５０３が直接マイクロプロセッサ１及び２（２１１）からリードコマンドを受信し、マイクロプロセッサ２（２１１）がリードコマンド２を再送する場合の処理を説明するためのタイミングチャートである。図１３は、上記図１１の処理を説明するためのタイミングチャートである。
【００６２】
図１２において、マイクロプロセッサ２（２１１）（ＰＣＩ＿Ｂバス）は、ブリッジＣ５０３（ＢＲＩＤＧＥ）による調停の結果、リードコマンド２を送信することができず、再送信（ＲＥＴＲＹ１２０１）を行う様子を示している。マイクロプロセッサ２（２１１）は、２度目のリードコマンド２の送信により、ブリッジＣ５０３にリードコマンド２を送信し、ブリッジＣ５０３は、リードコマンド２を通信インタフェース１（２１３）（ＰＣＩ＿Ｃバス）に送信する。通信インタフェース１（２１３）からのリードデータ２（ＤＡＴＡ−Ｃ）の受信を完了する時点が図１２のＴ１２である。これに対し、上記図１１に示す処理では、マイクロプロセッサ２（２１１）が通信インタフェース１（２１３）からのリードデータ２の受信を完了する時点は、図１３のＴ１３である。Ｔ１２とＴ１３との比較から見ても明らかなように、本実施の形態のデータ転送処理によって、データ転送処理にかかる時間が短縮されていることが分かる。
【００６３】
図１３において、ブリッジＢ５０２（ＢＲＩＤＧＥ−Ｂ）は、マイクロプロセッサ２（２１１）からのリードコマンド２に応じてスプリット応答を返信した後、ビジー状態となっている。しかしながら、マイクロプロセッサ２（２１１）及びバス２１０２（ＰＣＩ＿Ｂ）はビジー状態とならない。従って、マイクロプロセッサ２（２１１）は、リードコマンド２に対応するデータ２が送信されてくるまでの間、他の処理を行うことが可能である。よって、マイクロプロセッサ２１１の効率的な運用が可能となり、また、データ転送ＬＳＩ５００のデータ転送にかかる時間が短縮され、データ転送処理の効率が図られ、記憶デバイス制御装置２００全体としてのデータ転送効率も向上する。
【００６４】
なお、図１４は、通信インタフェース１（２１３）の接続するバス２１０３がＰＣＩ−Ｘバスであった場合の、データ転送処理の流れを示す図である。図１４においても、上記図１１で説明した処理と同様に、ブリッジＣ５０３がリードコマンド１及び２の調停を行い、マイクロプロセッサ２（２１１）はビジー状態となることなく、他の処理を行うことができる。また、ブリッジＣ５０３は、リードコマンド１に対応するデータ１を受信し、データ１をブリッジＡ５０１に転送するとともに、マイクロプロセッサ２（２１１）から再度リードコマンドを受信することなく、リードコマンド２を通信インタフェース１（２１３）に送信することができる。
【００６５】
また、マイクロプロセッサ２１１から通信インタフェース２１３に対するコマンドの送信のみならず、通信インタフェース２１３からマイクロプロセッサ２１１に対するコマンドの送信においてもまったく上述の図１１に示す処理と同様に、データ転送処理にかかる時間を短縮短縮することができる。図１５に、通信インタフェース１及び２（２１３）からマイクロプロセッサ１（２１１）に対してリードコマンドが送信されるときの処理の流れを示す。図１５に示す例おいても、通信インタフェース２（２１３）はビジー状態になることなく、他の処理を行うことができる。
【００６６】
＝＝＝データ転送処理４＝＝＝
バス２１０３及びバス２１０４がＰＣＩ−Ｘバスである場合には、図１５に示す上述したデータ転送処理により、データ転送処理の効率を向上することが可能である。そこで、本実施の形態に係る、バス２１０３及びバス２１０４がＰＣＩバスである場合において、通信インタフェース１及び２（２１３）からマイクロプロセッサ１（２１１）に対してリードコマンドを送信した場合のデータ転送処理について説明する。なお、以下の説明において、マイクロプロセッサ２１１、通信インタフェース２１３、ブリッジ５０１乃至５０４は、コマンドを送信するときにバスの使用権を獲得し、送信したコマンドに対する応答を受信するとバスの使用権を解放するものとする。
【００６７】
図１６は、通信インタフェース１及び２（２１３）からマイクロプロセッサ１（２１１）に対してリードコマンドが送信される場合の処理の流れを示す図である。バス２１０３及び２１０４はＰＣＩバスであるため、ブリッジＣ５０３やブリッジＤ５０４は、通信インタフェース１（２１３）や通信インタフェース２（２１３）にスプリット応答を返すことができないことが、上述した図１１に示す処理と異なる点である。
【００６８】
図１６において、ブリッジＡ５０１がリードコマンド２（ＲＥＡＤ−２）を受信した（S16001）際、通常の調停回路と同様に、ブリッジＤ５０４に対して再送を要求するようにしてしまうと、通信インタフェース２（２１３）は、ブリッジＡ５０１がデータ１（ＤＡＴＡ−１）をブリッジＣ５０３に転送した後に、再度リードコマンド２を送信する必要がある。しかしながら、ブリッジＣ５０３やブリッジＤ５０４は、通信インタフェース１（２１３）及び通信インタフェース２（２１３）からのリードコマンド１及び２を受信し、受信したリードコマンド１及び２を通信インタフェース２１３に再送させることがない。そのため、通信インタフェース２１３は、リードコマンドを再送するのにかかる時間を節約することができる。従って、通信インタフェース２１３の処理効率が向上し、記憶デバイス制御装置全体としてのデータ転送処理の効率も向上することができる。
【００６９】
図１７及び図１８は、データ転送処理にかかる時間が短縮されたことを説明するためのタイミングチャートである。
【００７０】
図１７では、ブリッジＡ５０１（ＢＲＩＤＧＥ）が直接通信インタフェース１及び２（２１３）からリードコマンドを受信するときの信号を示している。図１７において、ブリッジＡ５０１は、同時に受信するリードコマンドについて、調停（S17001）を行い、どちらか先に到着したものをマイクロプロセッサ１（２１１）に転送し、後に到着したものについてはリードコマンドを再送するように、リードコマンドの送信元に返信する。なお、図１７において、ブリッジＡ５０１は、通信インタフェース２１３が常にビジー状態にならないように、リードコマンドに対するデータが作成できるまで、通信インタフェース２１３に再送（ＲＥＴＲＹ）するようにさせている。
【００７１】
ブリッジＡ５０１は、リードコマンド１を先にマイクロプロセッサ１（２１１）に送信し、スプリット応答を受信する。ブリッジＡ５０１は、通信インタフェース２（２１３）から再送されたリードコマンド２を受信する（S17002）が、マイクロプロセッサ１（２１１）からデータ１の応答を受信するため、先にデータ１を通信インタフェース１（２１３）に転送する。ブリッジＡ５０１は、マイクロプロセッサ１（１２１）から受信したデータ１を転送した後、リードコマンド２をマイクロプロセッサ１（２１１）に送信する（S17003）。  
このようにして、通信インタフェース２（２１３）がリードデータ２の受信を完了した時点がＴ１７である。
【００７２】
これに対し、図１８に示すデータ転送処理では、ブリッジＡ５０１が同時に受信するリードコマンドを調停し、リードコマンド１をマイクロプロセッサ１（２１１）に送信し、マイクロプロセッサ１（２１１）からスプリット応答を受信すると、通信インタフェース２（２１３）から再送されるリードコマンド２を待つことなく、リードコマンド２をマイクロプロセッサ１（２１１）に送信する。これにより、ブリッジＡ５０１は、マイクロプロセッサ１（２１１）がリードコマンド１に対応するデータ１を作成する間に、リードコマンド２もマイクロプロセッサ２（２１１）に送信しておくことができる。通信インタフェース２（２１３）がデータ２の受信を完了する時点は、図１８においてＴ１８である。Ｔ１７とＴ１８を比較しても明らかなように、データ転送処理にかかる時間は短縮されている。
【００７３】
＝＝＝記憶データの読み出し処理＝＝＝
ここまでに説明したデータ転送処理は、マイクロプロセッサ２１１と通信インタフェース２１３との間で行われるデータの転送に用いられる処理である。ここで転送されるデータとは、主に、データバッファ２１４とキャッシュメモリ２３０との間でデータが転送される場合に必要な、データ長やアドレス等の情報である。しかしながら、上述したデータ転送処理は、データバッファ２１４とキャッシュメモリ２３０との間でのデータ転送処理に適用することも可能である。
【００７４】
以下に、データバッファ２１４とキャッシュメモリ２３０との間でデータが転送される処理について説明する。  
上述したように、記憶デバイス制御装置２００の備えるチャネル制御部２１０は、情報処理装置１００からデータ入出力要求を受信し、データ入出力要求に応じて記憶ボリューム３００のアドレスやデータ長等を求め、記憶ボリューム３００へのアクセスを行うためのＩ／Ｏコマンドを作成する。例えば、チャネル制御部２１０が受信したデータ入出力要求がデータの読み出し要求である場合には、チャネル制御部２１０は、読み出し対象となるデータをキャッシュメモリ２３０から読み出し、情報処理装置１００に送信する。
【００７５】
チャネル制御部２１０は、情報処理装置１００との間で通信を行うデータをデータバッファ２１４に記憶する。例えば、記憶デバイス制御装置２００が記憶ボリューム ３００からデータを読み出す場合、データ転送ＬＳＩ５００は、キャッシュメモリ２３０に記憶されているデータをデータバッファ２１４に転送し、通信インタフェース２１３は、データバッファ２１４に記憶されているデータを情報処理装置１００に送信する。
【００７６】
図１９は、通信インタフェース２１３がバッファコントローラ５０５を介してデータバッファ２１４からデータを読み出す処理の流れを説明する図である。
【００７７】
通信インタフェース２１３は、バス２１０３の使用権を獲得し、バッファコントローラ５０５にリードコマンド（ＲＥＡＤ−ＣＭＤ）を送信する。バッファコントローラ５０５は、スプリット応答を返信する。通信インタフェース２１３は、スプリット応答を受信すると、バス２１０３の使用権を解放する。バッファコントローラ５０５は、リードコマンドをデータバッファ２１４に転送する。データバッファ２１４は、リードコマンドに応じて、記憶しているデータをバッファコントローラ５０５に送信する。バッファコントローラ５０５は、バス２１０３の使用権を獲得し、通信インタフェース２１３にデータを転送する。この一連の処理は上記図３に示したデータの転送処理と同様のものである。すなわち、マイクロプロセッサ２１１と通信インタフェース２１３との間のみでなく、通信インタフェース２１３とデータバッファ２１４との間でのデータの転送についても、通信インタフェース２１３及びバス２１０３がビジー状態である期間を短縮し、より効率的な通信インタフェース２１３の動作と、効率的なバス２１０３の利用を図ることができる。
【００７８】
図２０は、通信インタフェース１（２１３）が情報処理装置１００にデータを送信するために、マイクロプロセッサ１（２１１）からデータの転送に必要な情報（データ転送情報）を取得し、また、情報処理装置１００に送信するデータをデータバッファ２１４から取得するときの処理の流れを示す図である。
【００７９】
通信インタフェース１（２１３）は、バス２１０３の使用権を獲得し、マイクロプロセッサ１（２１１）からデータ転送情報を読み出すためのリードコマンド１（ＲＥＡＤ−ＣＴＬ）をブリッジＣ５０３に送信する。ブリッジＣ５０３はリードコマンド１を受信すると、スプリット応答を通信インタフェース１（２１３）に返信する。  
通信インタフェース１（２１３）は、スプリット応答を受信すると、バス２１０３の使用権を解放する。通信インタフェース１（２１３）は、続いてバス２１０３の使用権を獲得し、データバッファ２１４に対するデータの読み出しコマンドをバッファコントローラ５０５に送信する。バッファコントローラ５０５は、データの読み出しコマンドを受信すると、通信インタフェース１（２１３）にスプリット応答を返信する。通信インタフェース１（２１３）は、スプリット応答を受信し、バス２１０３の使用権を解放する。  
通信インタフェース１（２１３）はこの時点で、マイクロプロセッサ１（２１１）に対するリードコマンドと、データバッファ２１４に対するデータ読み出しコマンドとの両方を送信したことになる。
【００８０】
一方、ブリッジＣ５０３は、通信インタフェース１（２１３）から受信したリードコマンド１をブリッジＡ５０１に転送する。ブリッジＡ５０１は、受信したリードコマンド１をマイクロプロセッサ１（２１１）に転送する。マイクロプロセッサ１（２１１）は、リードコマンド１を受信し、スプリット応答をブリッジＡ５０１に返信する。マイクロプロセッサ１（２１１）は、受信したリードコマンド１に応じたリードデータ１を作成する。マイクロプロセッサ１（２１１）はリードデータ１を作成すると、リードデータをブリッジＡ５０１に送信する。ブリッジＡ５０１はリードデータを受信すると、ブリッジＣ５０３にリードデータを転送する。ブリッジＣ５０３は、バス２１０３の使用権を獲得して通信インタフェース１（２１３）にリードデータを送信し、バス２１０３の使用権を解放する。
【００８１】
また、バッファコントローラ５０５は、受信したデータ読み出しコマンドをデータバッファ２１４に転送する。データバッファ２１４は受信したデータ読み出しコマンドに応じて、記憶しているデータを読み出しデータとしてバッファコントローラ５０５に応答する。バッファコントローラ５０５は、バス２１０３の使用権を獲得し、受信した読み出しデータを通信インタフェース１（２１３）に送信し、バス２１０３の使用権を解放する。
【００８２】
以上、本実施の形態に係る記憶デバイス制御装置２００について説明したが、上述したデータ転送処理は、チャネル制御部２１０以外に適用することも可能である。例えば、ディスク制御部２４０が、マイクロプロセッサと、キャッシュメモリ２３０との間で通信を行うインタフェースと、キャッシュメモリ２３０と記憶デバイス３００との間でデータを転送するデータ転送ＬＳＩとを備え、当該データ転送ＬＳＩが複数のブリッジを備えるようにして、マイクロプロセッサとインタフェースとの間でデータ転送を行う処理に、上述したデータ転送処理を適用することができる。
【００８３】
以上、本実施の形態について説明したが、上記実施例は本発明の理解を容易にするためのものであり、本発明を限定して解釈するためのものではない。本発明は、その趣旨を逸脱することなく、変更、改良され得ると共に、本発明にはその等価物も含まれる。
【図面の簡単な説明】
【００８４】
【図１】本発明の一実施の形態による、情報処理システムの全体像を示すブロック図である。
【図２】本発明の一実施の形態による、チャネル制御部２１０の内部構成を示す図である。
【図３】本発明の一実施の形態による、データ転送処理の流れを示す図である。
【図４】本発明の一実施の形態による、図３に示すデータ転送処理の信号を説明するタイミングチャートである。
【図５】本発明の一実施の形態による、データ転送処理の流れを示す図である。
【図６】本発明の一実施の形態による、データ転送処理の流れを示す図である。
【図７】本発明の一実施の形態による、データ転送処理における信号を説明するフローチャートである。
【図８】本発明の一実施の形態による、データ転送処理における信号を説明するフローチャートである。
【図９】本発明の一実施の形態による、データ転送処理の流れを示す図である。
【図１０】本発明の一実施の形態による、データ転送処理の流れを示す図である。
【図１１】本発明の一実施の形態による、マイクロプロセッサ１及び２から通信インタフェース１に対するデータ転送処理の流れを示す図である。
【図１２】本発明の一実施の形態による、ブリッジＣが直接マイクプロセッサ１及び２からコマンドを受信するときのデータ転送処理における信号を説明するフローチャートである。
【図１３】本発明の一実施の形態による、図１１に示すデータ転送処理における信号を説明するフローチャートである。
【図１４】本発明の一実施の形態による、バス２１０３がＰＣＩ−Ｘである場合のデータ転送処理の流れを示す図である。
【図１５】本発明の一実施の形態による、通信インタフェース１及び２からマイクロプロセッサ１に対するデータ転送処理の流れを示す図である。
【図１６】本発明の一実施の形態による、通信インタフェース１及び２からマイクロプロセッサ１に対するデータ転送処理の流れを示す図である。
【図１７】本発明の一実施の形態による、ブリッジＡが直接通信インタフェース２１３からコマンドを受信するときのデータ転送処理のおける信号を説明するフローチャートである。
【図１８】本発明の一実施の形態による、ブリッジＣ及びブリッジＤがブリッジＡにコマンドを転送するデータ転送処理の一例における信号を説明するフローチャートである。
【図１９】本発明の一実施の形態による、通信インタフェースとデータバッファとの間のデータ転送処理の流れを示す図である。
【図２０】本発明の一実施の形態による、通信インタフェースとデータバッファとの間のデータ転送処理の流れを示す図である。
【符号の説明】
【００８５】
１００    情報処理装置              ２００    記憶デバイス制御装置
２１０    チャネル制御部            ２１１    マイクロプロセッサ
２１２    ローカルメモリ            ２１３    通信インタフェース
２１４    データバッファ            ２１６    モードセレクタ
２１０１  バス                      ２１０２  バス
２１０３  バス                      ２１０４  バス
２２０    共有メモリ                ２３０    キャッシュメモリ
２４０    ディスク制御部            ２５０    接続部
３００    記憶ボリューム            ４００    ＳＡＮ
５００    データ転送ＬＳＩ
５０１    ブリッジＡ                ５０２    ブリッジＢ
５０３    ブリッジＣ                ５０４    ブリッジＤ
【図１】
2005165620.tif 000003
【図２】
2005165620.tif 000004
【図３】
2005165620.tif 000005
【図４】
2005165620.tif 000006
【図５】
2005165620.tif 000007
【図６】
2005165620.tif 000008
【図７】
2005165620.tif 000009
【図８】
2005165620.tif 000010
【図９】
2005165620.tif 000011
【図１０】
2005165620.tif 000012
【図１１】
2005165620.tif 000013
【図１２】
2005165620.tif 000014
【図１３】
2005165620.tif 000015
【図１４】
2005165620.tif 000016
【図１５】
2005165620.tif 000017
【図１６】
2005165620.tif 000018
【図１７】
2005165620.tif 000019
【図１８】
2005165620.tif 000020
【図１９】
2005165620.tif 000021
【図２０】
2005165620.tif 000022