(57)【要約】【課題】  ホスト装置に対するレスポンス性能の向上を図る。【解決手段】  本発明の記憶制御装置（２０）は、ホスト装置（１０）と外部接続記憶制御装置（９０）に接続される。記憶制御装置（２０）は、外部接続記憶制御装置（９０）の実ボリューム（７１）がマッピングされた仮想デバイス（４２）と、ホスト装置（１０）からのリクエストに応じて仮想デバイス（４２）にマッピングされた実ボリューム（７１）へのアクセスを制御するチャネル制御部（５０）とを備える。チャネル制御部（５０）はホスト装置（１０）が実ボリューム（７１）にアクセスするためにホスト装置（１０）から送信されたＣＣＷチェインを分割又は統合し、これを外部接続記憶制御装置（９０）に送信する。【選択図】      図１
2006309579.tif 000002
【特許請求の範囲】
【請求項１】
上位装置及び外部接続記憶制御装置に接続され、前記上位装置からのリクエストに応じたデータ処理を行う記憶制御装置であって、
前記外部接続記憶制御装置の実ボリュームがマッピングされた仮想デバイスと、
前記上位装置からのリクエストに応じて、前記仮想デバイスにマッピングされた前記実ボリュームへのアクセスを制御するチャネル制御部と、を備え、
前記チャネル制御部は、前記上位装置が前記実ボリュームにアクセスするために前記上位装置から送信されたＣＣＷチェインを分割し、分割された複数のＣＣＷチェインのそれぞれを前記外部接続記憶制御装置に送信する、記憶制御装置。
【請求項２】
請求項１に記載の記憶制御装置であって、
前記チャネル制御部は、分割された複数のＣＣＷチェインのそれぞれを、複数のパスに分散させて前記外部接続記憶制御装置に送信する、記憶制御装置。
【請求項３】
請求項２に記載の記憶制御装置であって、
前記パスは、前記記憶制御装置と前記外部接続記憶制御装置とを接続する物理パスである、記憶制御装置。
【請求項４】
請求項２に記載の記憶制御装置であって、
前記パスは、前記記憶制御装置と前記外部接続記憶制御装置とを接続する同一の物理パスに設定された複数の論理パスである、記憶制御装置。
【請求項５】
請求項２に記載の記憶制御装置であって、
前記チャネル制御部は、前記ＣＣＷチェインをパス本数分に分割する、記憶制御装置。
【請求項６】
請求項２に記載の記憶制御装置であって、
前記チャネル制御部は、各パスのビジー率に応じて、各パスに送信されるＣＣＷチェインのチェイン数を変える、記憶制御装置。
【請求項７】
請求項２に記載の記憶制御装置であって、
前記チャネル制御部は、各パスのＩ／Ｏレスポンスタイムに応じて、各パスに送信されるＣＣＷチェインのチェイン数を変える、記憶制御装置。
【請求項８】
請求項２に記載の記憶制御装置であって、
前記チャネル制御部は、前記パスに接続される前記外部接続記憶制御装置のターゲットポートのＢＢクレジット数に応じて、各パスに送信されるＣＣＷチェインのチェイン数を変える、記憶制御装置。
【請求項９】
請求項２に記載の記憶制御装置であって、
前記チャネル制御部は、前記ＣＣＷチェインをトラック単位又はシリンダ単位で複数のＣＣＷチェインに分割する、記憶制御装置。
【請求項１０】
請求項２に記載の記憶制御装置であって、
前記チャネル制御部は、前記分割された複数のＣＣＷチェインの全ての応答が前記外部接続記憶制御装置から返ってきた段階で、前記上位装置への完了報告を行う、記憶制御装置。
【請求項１１】
請求項１に記載の記憶制御装置であって、
前記チャネル制御部は、前記上位装置からのリクエストが前記実ボリュームからのデータの読み出しである場合に、前記分割された複数のＣＣＷチェインのうち一部のＣＣＷチェインの応答を前記外部接続記憶制御装置から受信すると、前記分割された複数のＣＣＷチェインの全ての応答を待つことなく、リードデータの順序性を維持した上で前記上位装置にリードデータの先出しを行う、記憶制御装置。
【請求項１２】
複数の上位装置及び外部接続記憶制御装置に接続され、前記複数の上位装置からのリクエストに応じたデータ処理を行う記憶制御装置であって、
前記外部接続記憶制御装置の実ボリュームがマッピングされた仮想デバイスと、
前記上位装置からのリクエストに応じて、前記仮想デバイスにマッピングされた前記実ボリュームへのアクセスを制御するチャネル制御部と、を備え、
前記チャネル制御部は、前記複数の上位装置のそれぞれが前記実ボリュームにアクセスするために前記複数の上位装置のそれぞれから送信された複数のコマンドを、一つのコマンドに置換し、前記一つのコマンドを前記外部接続記憶制御装置に送信する、記憶制御装置。
【請求項１３】
請求項１２に記載の記憶制御装置であって、
前記チャネル制御部は、前記複数の上位装置のそれぞれから送信された複数のコマンドを並べ替えた場合に、前記実ボリュームへのシーケンシャルアクセスになることを条件として、前記複数のコマンドを前記一つのコマンドに置換する、記憶制御装置。
【請求項１４】
上位装置に接続された第一の記憶制御装置と、前記第一の記憶制御装置に接続された第二の記憶制御装置とを備えるストレージシステムであって、
前記第一の記憶制御装置は、
前記第二の記憶制御装置の実ボリュームがマッピングされた仮想デバイスと、
前記上位装置からのリクエストに応じて、前記仮想デバイスにマッピングされた前記実ボリュームへのアクセスを制御するチャネル制御部と、を備え、
前記チャネル制御部は、前記上位装置が前記実ボリュームにアクセスするために前記上位装置から送信されたＣＣＷチェインを分割し、分割された複数のＣＣＷチェインのそれぞれを前記外部接続記憶制御装置に送信し、
前記第二の記憶制御装置は、
前記分割された複数のＣＣＷチェインのそれぞれを同時に並行処理する、ストレージシステム。
【請求項１５】
請求項１４に記載のストレージシステムであって、
前記チャネル制御部は、分割された複数のＣＣＷチェインのそれぞれを、複数のパスに分散させて前記第二の記憶制御装置に送信する、ストレージシステム。
【請求項１６】
請求項１５に記載のストレージシステムであって、
前記パスは、前記第一の記憶制御装置と前記第二の記憶制御装置とを接続する物理パスである、ストレージシステム。
【請求項１７】
請求項１５に記載のストレージシステムであって、
前記パスは、前記第一の記憶制御装置と前記第二の記憶制御装置とを接続する同一の物理パスに設定された複数の論理パスである、ストレージシステム。
【請求項１８】
請求項１５に記載のストレージシステムであって、
前記チャネル制御部は、前記ＣＣＷチェインをパス本数分に分割する、ストレージシステム。
【請求項１９】
請求項１５に記載のストレージシステムであって、
前記チャネル制御部は、前記上位装置からのリクエストが前記実ボリュームからのデータの読み出しである場合に、前記分割された複数のＣＣＷチェインのうち一部のＣＣＷチェインの応答を前記第二の記憶制御装置から受信すると、前記分割された複数のＣＣＷチェインの全ての応答を待つことなく、リードデータの順序性を維持した上で前記上位装置にリードデータの先出しを行う、ストレージシステム。
【請求項２０】
請求項１５に記載のストレージシステムであって、
前記第一の記憶制御装置は、複数の上位装置に接続されており、
前記チャネル制御部は、前記複数の上位装置のそれぞれが前記実ボリュームにアクセスするために前記複数の上位装置のそれぞれから送信された複数のコマンドを、一つのコマンドに置換し、前記一つのコマンドを前記第二の記憶制御装置に送信する、ストレージシステム。
【請求項２１】
上位装置に接続された第一の記憶制御装置と、物理パスを介して前記第一の記憶制御装置に接続された第二の記憶制御装置とを備えるストレージシステムであって、
前記第一の記憶制御装置は、前記上位装置が前記第二の記憶制御装置の記憶デバイスにアクセスするために前記上位装置から送信されたＣＣＷチェインを分割し、分割された複数のＣＣＷチェインのそれぞれを、同一の物理パスに設定された複数の論理パスのそれぞれに送信し、
前記第二の記憶制御装置は、前記分割された複数のＣＣＷチェインのそれぞれを同時に並行処理する、ストレージシステム。
【請求項２２】
請求項２１に記載のストレージシステムであって、
前記第二の記憶制御装置は、前記第一の記憶制御装置に接続されるポートを備え、
前記第一の記憶制御装置は、前記第二の記憶制御装置の備える前記ポートの処理状況についての情報を取得し、前記取得した処理状況に応じて、前記上位装置から送信されるＣＣＷチェインを分割するか統合するかを決定する、ストレージシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は記憶制御装置及びストレージシステムに関する。
【背景技術】
【０００２】
大型計算機システム等の外部ストレージシステムのディスクアクセス方式として、例えば、ＣＫＤ（Count-Key-Data）方式が知られている。ＣＫＤ方式においては、個々のレコード毎にそのデータ転送を指示するＣＣＷ（チャネルコマンドワード）が連続して発行される。ＣＣＷには、チャネルコマンド、データアドレス、チェイニング、及びデータカウントが含まれる。例えば、特許文献１には、チャネルコマンドを使用して、外部ストレージシステムにデータ転送を行う技術が開示されている。また、特許文献２には、一つ又は複数の入出力装置と入出力動作を多重に実行するチャネル装置において、入出力動作の処理を複数のタスクに分割して、分割されたタスクのうち次処理準備処理を低い優先度のタスクとして実行するチャネル装置が開示されている。
【特許文献１】特開平９−１９０２９２号公報
【特許文献２】特開２００１−１３４５２３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
ところで、本発明者は、ホスト装置に接続する記憶制御装置（以下、ホスト接続記憶制御装置と称する場合がある。）が更に外部の記憶制御装置（以下、外部接続記憶制御装置と称する場合がある。）にも接続されており、外部接続記憶制御装置の記憶デバイス（外部デバイス）をホスト接続記憶制御装置の記憶デバイス（内部デバイス）としてホスト装置に提供するシステム構成を検討している。
【０００４】
しかし、ホスト装置からホスト接続記憶制御装置へ送信されてくる一連のＣＣＷチェインを、その送信順序を変えることなく、ホスト接続記憶制御装置が外部接続ケーブルを介して外部接続記憶制御装置にそのままシーケンシャルに転送し、外部接続記憶制御装置の記憶デバイスにデータを読み書きする構成では、ホスト接続記憶制御装置の記憶デバイスにデータを直接読み書きする構成と比較して、コマンド処理時間が長くなるという不都合が生じる。更に、ホスト接続記憶制御装置と外部接続記憶制御装置とを結線する外部接続ケーブルが長い程、ホスト装置に対するレスポンス性能は低下する。
【０００５】
本発明は、上記の問題点に鑑みてなされたもので、本発明の目的は、上述の不都合を解消し、ホスト装置からの指示に対するレスポンス性能を向上させることにある。
【課題を解決するための手段】
【０００６】
上記の課題を解決するため、本発明の記憶制御装置は、上位装置及び外部接続記憶制御装置に接続され、上位装置からのリクエストに応じたデータ処理を行う。この記憶制御装置は、外部接続記憶制御装置の実ボリュームがマッピングされた仮想デバイスと、上位装置からのリクエストに応じて、仮想デバイスにマッピングされた実ボリュームへのアクセスを制御するチャネル制御部と、を備える。チャネル制御部は、上位装置が実ボリュームにアクセスするために上位装置から送信されたＣＣＷチェインを分割し、分割された複数のＣＣＷチェインのそれぞれを外部接続記憶制御装置に送信する。
【０００７】
チャネル制御部は、例えば、分割された複数のＣＣＷチェインのそれぞれを、複数のパスに分散させて外部接続記憶制御装置に送信する。パスとは、例えば、記憶制御装置と外部接続記憶制御装置とを接続する物理パス、或いは同一の物理パスに設定された複数の論理パスである。
【０００８】
チャネル制御部は、上位装置からのＣＣＷチェインをパス本数分に分割することもできる。また、各パスのビジー率、各パスのＩ／Ｏレスポンスタイム、各パスに接続されるターゲットポートのＢＢクレジット数に応じて、各パスに送信されるＣＣＷチェインのチェイン数を変えてもよい。また、上位装置からのＣＣＷチェインを分割する単位として、例えば、トラック単位又はシリンダ単位で分割してもよい。
【０００９】
チャネル制御部は、分割された複数のＣＣＷチェインの全ての応答が外部接続記憶制御装置から返ってきた段階で、上位装置への完了報告を行う。
【００１０】
チャネル制御部は、上位装置からのリクエストが実ボリュームからのデータの読み出しである場合に、分割された複数のＣＣＷチェインのうち一部のＣＣＷチェインの応答を外部接続記憶制御装置から受信すると、分割された複数のＣＣＷチェインの全ての応答を待つことなく、リードデータの順序性を維持した上で上位装置にリードデータの先出しを行ってもよい。
【００１１】
本発明の記憶制御装置は、複数の上位装置及び外部接続記憶制御装置に接続され、複数の上位装置からのリクエストに応じたデータ処理を行う。この記憶制御装置は、外部接続記憶制御装置の実ボリュームがマッピングされた仮想デバイスと、上位装置からのリクエストに応じて、仮想デバイスにマッピングされた実ボリュームへのアクセスを制御するチャネル制御部と、を備える。チャネル制御部は、複数の上位装置のそれぞれが実ボリュームにアクセスするために複数の上位装置のそれぞれから送信された複数のコマンドを、一つのコマンドに置換し、この一つのコマンドを外部接続記憶制御装置に送信する。
【００１２】
チャネル制御部は、例えば、複数の上位装置のそれぞれから送信された複数のコマンドを並べ替えた場合に、実ボリュームへのシーケンシャルアクセスになることを条件として、複数のコマンドを一つのコマンドに置換する。
【００１３】
本発明のストレージシステムは、上位装置に接続された第一の記憶制御装置と、第一の記憶制御装置に接続された第二の記憶制御装置とを備える。第一の記憶制御装置は、第二の記憶制御装置の実ボリュームがマッピングされた仮想デバイスと、上位装置からのリクエストに応じて、仮想デバイスにマッピングされた実ボリュームへのアクセスを制御するチャネル制御部と、を備える。チャネル制御部は、上位装置が実ボリュームにアクセスするために上位装置から送信されたＣＣＷチェインを分割し、分割された複数のＣＣＷチェインのそれぞれを外部接続記憶制御装置に送信する。第二の記憶制御装置は、分割された複数のＣＣＷチェインのそれぞれを同時に並行処理する。
【発明の効果】
【００１４】
本発明によれば、ホスト装置からの指示に対するレスポンス性能を向上させることができる。
【発明を実施するための最良の形態】
【００１５】
以下、各図を参照しながら本発明の実施形態について説明する。
図１は本実施形態におけるストレージシステム１００の主要部を示している。ストレージシステム１００は、ホスト接続記憶制御装置２０と、外部接続記憶制御装置９０とを備えて構成されている。ストレージシステム１００はホスト装置１０からのリクエストに応じたデータ処理を行う。ホスト接続記憶制御装置２０と外部接続記憶制御装置９０とは、共に同一サイトに設定されていてもよく、或いはそれぞれ異なるサイトに設置されていてもよい。
【００１６】
ホスト装置１０は、例えば、ＣＰＵ（Central Processing Unit）やメモリ等を備えた上位装置であり、具体的には、パーソナルコンピュータ、ワークステーション、メインフレーム等である。ホスト装置１０には、ホスト接続パス２００を介して記憶制御装置２０にアクセスするためのポート１１が実装されている。ホスト装置１０には、更に、記憶制御装置２０が提供する記憶資源を利用するデータベースなどのアプリケーションプログラムが実装されている。
【００１７】
ホスト接続パス２００としては、例えば、ＬＡＮ（Local Area Network）、ＳＡＮ（Storage Area Network）、インターネット、専用回線、公衆回線等を適宜用いることができる。ＬＡＮを介するデータ通信は、例えば、TCP/IP（Transmission Control Protocol/Internet Protocol）プロトコルに従って行われる。ホスト装置１０がＬＡＮを介して記憶制御装置２０に接続される場合、ホスト装置１０は、ファイル名を指定してファイル単位でのデータ入出力を要求する。一方、ホスト装置１０がＳＡＮを介して記憶制御装置２０に接続される場合、ホスト装置１０は、ファイバチャネルプロトコルに従って、複数のディスクドライブにより提供される記憶領域のデータ管理単位であるブロックを単位として、データ入出力を要求する。ホスト接続パス２００がＬＡＮである場合、ポート１１として、例えば、ＬＡＮ対応のネットワークカードが用いられる。ホスト接続パス２００がＳＡＮの場合、ポート１１として、例えば、ＨＢＡ（Host Bus Adapter）が用いられる。
【００１８】
記憶制御装置２０は、例えば、ディスクアレイ装置等として構成される。但し、これに限らず、例えば、記憶制御装置２０は、それ自体がＳＣＳＩターゲットになる仮想化スイッチであってもよい。ストレージシステム２０は、後述のように、外部接続記憶制御装置９０の有する記憶資源を自己の論理デバイスとして、ホスト装置１０に提供するものであるから、自己が直接支配するローカルな記憶デバイスを必ずしも有している必要はない。
【００１９】
記憶制御装置２０は、主に、ディスクコントローラ（ＤＫＣ）３０と、ディスク部４０とを備える。ディスクコントローラ３０は、例えば、チャネル制御部５０、キャッシュメモリ３１、共有メモリ３２、及びディスク制御部３３を備えて構成される。チャネル制御部５０、キャッシュメモリ３１、共有メモリ３２、及びディスク制御部３３は、高速スイッチング動作によってデータ伝送を行う超高速クロスバスイッチ等のような高速バスによって接続されている。チャネル制御部５０は、プロトコル制御部６０、ポート５１、ハブ５２、チャネル制御プロセッサ５４、及びメモリ５５を備えて構成されている。
【００２０】
プロトコル制御部６０は、ホスト装置１０との間のインターフェース制御を行う。プロトコル制御部６０は、ポート５１から外部に向けて送信するデータを格納するための送信用レジスタ６１、外部からポート５１を経由して受信したデータを格納するための受信用レジスタ６２、ホスト装置１０及び外部接続記憶制御装置９０との間のインターフェースを制御するプロトコル制御プロセッサ６３、インターフェース制御に必要な制御情報を格納する制御用レジスタ６４を備えて構成されている。
【００２１】
ポート５１には、それぞれを識別するためのネットワークアドレス（例えば、ＩＰアドレスやＷＷＮ（World Wide Name））が割り当てられている。ハブ５２は、プロトコル制御部６０とチャネル制御プロセッサ５４とを接続する。ハブ５２には、通信用のバッファ５３が実装されている。チャネル制御プロセッサ５４は、コマンド処理やデータ転送処理等を行う制御用のプロセッサである。チャネル制御プロセッサ５４は、例えば、ホスト装置１０から送信されたＣＣＷチェインの分割又は統合を行い、外部接続記憶制御装置９０へ転送する機能を有する。ＣＣＷチェインの分割処理又は統合処理の詳細については、後述する。メモリ５５は、チャネル制御プロセッサ５４のワークエリアとして機能する。
【００２２】
尚、記憶制御装置２０は、複数のチャネル制御部５０を実装することができ、それぞれのチャネル制御部５０は、ＮＡＳ（Network Attached Storage）として機能することもできる。また、複数のホスト装置１０が存在する場合、各チャネル制御部５０は、各ホスト装置１０からの要求をそれぞれ個別に受け付けることができる。
【００２３】
キャッシュメモリ３１は、ホスト装置１０から受信したデータや、記憶デバイス４１，４２から読み出したデータを一時的に格納する。共有メモリ３２には、システム管理に必要な各種の制御情報等が格納される。後述するコマンド制御ジョブテーブル、パス管理テーブル、デバイス管理テーブル、外部接続ＤＫＣ管理テーブル、性能モニタリングテーブル等は共有メモリ３２に格納されている。尚、記憶デバイス４１，４２の何れか一つ或いは複数を、キャッシュ用のディスクとして使用してもよい。
【００２４】
ディスク制御部３３は、ディスク部４０の記憶デバイス４１，４２との間のデータ授受を行う。ディスク制御部３３は、ＣＰＵやメモリ等を備えたマイクロコンピュータシステムとして構成されている。ディスク制御部３３は、チャネル制御部５０がホスト装置１０から受信したデータを、ホスト装置１０からのライトコマンドに基づいて、記憶デバイス４１，４２の所定のアドレスに書き込む他、ホスト装置１０からのリードコマンドに基づいて、記憶デバイス４１，４２の所定のアドレスからデータを読み出し、ホスト装置１０に送信する。記憶デバイス４１，４２との間でデータ入出力を行う場合、ディスク制御部３３は、論理的なアドレスを物理的なアドレスに変換する。ディスク制御部３３は、記憶デバイス４１，４２がＲＡＩＤ（Redundant Arrays of Independent Inexpensive Disks）に従って管理されている場合は、ＲＡＩＤ構成に応じたデータアクセスを行う。
【００２５】
ディスク部４０は複数の記憶デバイス４１を備えている。記憶デバイス４１としては、例えば、ハードディスク、フレキシブルディスク、磁気テープ、半導体メモリ、光ディスク等のような物理デバイス（Physical Device）を用いることができる。ディスク部４０内に点線で示される記憶デバイス４２は、記憶制御装置９０の有する記憶デバイス（実ボリューム）７１を記憶制御装置２０側に取り込んだ状態を示すものである。即ち、本実施形態では、記憶制御装置２０から見て外部に存在する外部記憶デバイス７１を、記憶制御装置２０の内部記憶デバイスとして認識し、ホスト装置１０に外部記憶デバイス７１の記憶資源を提供する。外部記憶デバイス７１は、物理デバイスであり、内部記憶デバイス４２は、仮想デバイスである。
【００２６】
外部接続記憶制御装置９０は、チャネル制御部８０、キャッシュメモリ６１、共有メモリ６２、ディスク制御部６３、及びディスク部７０を備えて構成されている。チャネル制御部８０は、ポート８１を備える。ディスク制御部６３は、記憶デバイス７１にデータの読み書きを行うための複数のプロセッサを備える。外部接続記憶制御装置９０の構成は上述したホスト接続記憶制御装置２０の構成と同様である。ホスト接続記憶制御装置２０のポート５１と、外部接続記憶制御装置９０のポート８１とは、外部接続パス３００を介して相互に接続されている。ホスト装置１０が記憶デバイス４２に読み書きするためにホスト装置１０から送信されてくるコマンド（ＣＣＷチェイン）は、ホスト接続記憶制御装置２０内で分割処理又は統合処理された後、外部接続パス３００を介して外部接続記憶制御装置９０に送信される。外部接続記憶制御装置９０では、ホスト接続記憶制御装置２０から送信されてくる複数のＣＣＷチェインを同時に並行処理することにより、記憶デバイス７１に対して読み書きを行う。
【００２７】
尚、外部接続記憶制御装置９０は一台に限らず、複数でもよい。また、複数の外部接続記憶制御装置９０がカスケード接続された状態でホスト接続記憶制御装置２０に接続されていてもよい。また、ホスト装置１０は単一に限らず、複数存在していてもよい。
【００２８】
図２は記憶制御装置２０内の論理的な記憶階層を示している。記憶制御装置２０は、下層側から順番に、ＶＤＥＶ（Virtual Device）１０１、ＬＤＥＶ（Logical Device）１０２、及びＬＵＮ（Logical Unit Number）１０３から成る３層の記憶階層を有している。
【００２９】
ＶＤＥＶ１０１は、論理的な記憶階層の最下位に位置する仮想デバイスである。ＶＤＥＶ１０１は、物理的な記憶資源を仮想化したものであり、例えば、ＲＡＩＤ構成を適用することができる。即ち、一つの記憶デバイス４１から複数のＶＤＥＶ１０１を形成することもできるし（スライシング）、複数の記憶デバイス４１から一つのＶＤＥＶ１０１を形成することもできる（ストライピング）。図２中の左側に示すＶＤＥＶ１０１は、例えば、ＲＡＩＤ構成に従って、記憶デバイス４１を仮想化している。
【００３０】
一方、図２中の右側に示すＶＤＥＶ１０１は、記憶制御装置９０の記憶デバイス７１をマッピングすることにより構成されている。即ち、本実施形態では、記憶デバイス７１により提供される論理デバイス（ＬＤＥＶ）を、ＶＤＥＶ１０１にマッピングすることにより、記憶制御装置２０の内部ボリュームとして使用できるようになっている。同図に示す例では、４つの記憶デバイス７１Ａ〜７１Ｄをストライピングすることにより、ＶＤＥＶ１０１を構築している。各記憶デバイス７１Ａ〜７１Ｄには、それぞれのポート８１Ａ〜８１ＤからそれぞれのＬＵＮ７２Ａ〜７２Ｄを特定することにより、それぞれ個別にアクセスすることができる。各ポート８１Ａ〜８１Ｄには、ユニークな識別情報であるＷＷＮが割り当てられており、更に、各ＬＵＮ７２Ａ〜７２Ｄには、ＬＵＮ番号が設定されているので、ＷＷＮとＬＵＮ番号の組合せによって、記憶デバイス７１Ａ〜７１Ｄを特定できる。
【００３１】
ＶＤＥＶ１０１の上には、ＬＤＥＶ１０２が設けられている。ＬＤＥＶ１０２は、ＶＤＥＶ１０１を仮想化した論理デバイス（論理ボリューム）である。一つのＶＤＥＶ１０１から複数のＬＤＥＶ１０２に接続することもできるし、複数のＶＤＥＶ１０１から一つのＬＤＥＶ１０２に接続することもできる。ＬＤＥＶ１０２には、それぞれのＬＵＮ１０３を介してアクセスすることができる。このように、本実施形態では、ＬＵＮ１０３と記憶デバイス７１との間に位置する中間記憶階層（ＶＤＥＶ１０１，ＬＤＥＶ１０２）に記憶デバイス７１を接続することにより、外部の記憶デバイス７１を記憶制御装置２０の内部デバイスの一つとして利用できるようにしている
【００３２】
次に、ＣＣＷチェインの分割処理の概要について説明を加える。記憶制御装置２０（以下、ホスト接続ＤＫＣと称する場合がある。）は、ホスト装置１０から送信されてくるＣＣＷチェインを複数のＭＳＧ（メッセージ）に分割し、複数のＭＳＧを複数のパス（物理パス又は論理パス）に分散させて、記憶制御装置９０（以下、外部接続ＤＫＣと称する場合がある。）に送信する。外部接続ＤＫＣにおいては、複数のＭＳＧのそれぞれを別々のＣＣＷチェインとして、複数のプロセッサが同時に並行処理（多重処理）することにより、ホスト装置１０に対するレスポンス性能を高める。各ＭＳＧには、ＣＣＷチェインの先頭にプリフィクス（Prefix）コマンド又はDefine Extent（ＤＸ）／Locate Record（ＬＯＣ）コマンドが付加される。ホスト接続ＤＫＣは、ＭＳＧ数、各ＭＳＧのチェイン数、パス数等に応じて、プリフィクスコマンドにおいて指定される書き込み先頭アドレス、書き込み範囲、ＣＣＷチェイン数、チャネルイメージ番号等を再設定する。
【００３３】
ＣＣＷチェインの分割の仕方として、例えば、パス本数（物理パス本数又は論理パス本数）に基づいて、ＣＣＷチェインを分割してもよい。各パスに送信されるＭＳＧのチェイン数は均等であってもよく、又はパス毎にＭＳＧのチェイン数を変えてもよい。パス毎にＭＳＧのチェイン数を変える方法として、例えば、各パスのビジー率、各パスのＩ／Ｏレスポンスタイム、各パスの通信トラック量、各パスに接続されるターゲットポートのＢＢクレジット数等に応じて、ＭＳＧのチェイン数を変えることができる。また、物理パスの距離に応じて、ＭＳＧのチェイン数を変えてもよい。但し、同一の物理パスを使用して同一の論理アドレスにアクセスするには、チャネルイメージ番号が重複しないように設定する必要がある。
【００３４】
また、ＣＣＷチェインの分割の仕方として、例えば、トラック単位又はシリンダ単位で分割してもよい。これは、外部接続ＤＫＣにおいて、トラック単位又はシリンダ単位でデータアクセスのロックをかけるような設定がなされている場合に、ＣＣＷチェインをトラック単位又はシリンダ単位で分割することにより、レスポンス性能の向上を実現できる。
【００３５】
また、ＣＣＷチェインの分割の仕方として、例えば、データをバックアップする場合のようなシーケンシャルなアクセスに対しては、ホスト装置１０に対するレスポンス性能の向上はそれ程要求されないので、ＣＣＷチェインを分割しなくてもよい。一方、日常業務におけるホスト装置１０からのランダムなアクセスに対しては、ホスト装置１０に対するレスポンス性能の向上は要求されるので、ＣＣＷチェインを分割するのが好ましい。
【００３６】
また、ＣＣＷチェインの分割の仕方として、例えば、コマンドのプライオリティ情報を参照して、優先度が高いものについては、ＣＣＷチェインを分割し、優先度の低いものについては、ＣＣＷチェインを分割しないことも可能である。
【００３７】
次に、外部接続パス３００の本数（物理パス本数）に応じてＣＣＷチェインの分割数を決定し、ＣＣＷチェインを分割する処理の概要について、図３を参照しながら説明する。
【００３８】
ここでは、ホスト装置１０からホスト接続ＤＫＣに向けて、ＷＲＵＰＤ（ライトアップデータコマンド）がＣＣＷチェインとして送信された場合を例示する。ホスト装置１０からホスト接続ＤＫＣには、書き込み先頭アドレス、書き込み範囲、ＣＣＷチェイン数等を指定するプリフィクスコマンドに続いて、複数のＷＲＵＰＤがＣＣＷチェインとして送信される。ＷＲＵＰＤ（ＣＹＬ＃Ｌ，ＴＲＫ＃Ｍ，ＲＮ）は、シリンダ番号Ｌのトラック番号ＭのレコードＮの書き込みコマンドであることを示している。ＷＲＵＰＤは、書き込みアドレスやデータサイズ等を指定するカウンタ部Ｃと、ライトデータを格納するデータ部Ｄとを含む。
【００３９】
ホスト接続ＤＫＣは、ホスト装置１０からＣＣＷチェインを受信すると、データ書き込み先の記憶制御装置９０に接続する外部接続パス３００の本数に基づいてＣＣＷチェインの分割数を決定する。例えば、２本の外部接続パス１，２が存在する場合、ホスト接続ＤＫＣは、ＣＣＷチェインを２つのＭＳＧ１，２に分割し、各ＭＳＧ１，２を外部接続パス１，２に送信する。ＭＳＧ１には、ＷＲＵＰＤ（ＣＹＬ＃０，ＴＲＫ＃１，Ｒ９）〜ＷＲＵＰＤ（ＣＹＬ＃０，ＴＲＫ＃１，Ｒ１２）が含まれる。ホスト接続ＤＫＣは、ＭＳＧ１のプリフィクスコマンドが指定する書き込み範囲、及びＣＣＷチェイン数を再設定する。この例では、書き込み範囲として、シリンダ番号０のトラック番号１のレコード９〜１２が指定される。ＣＣＷチェイン数として、４が指定される。ＭＳＧ１の書き込み先頭アドレスは、分割前のＣＣＷチェインの書き込み先頭アドレスと同一であるため、再設定の必要はない。また、ＭＳＧ２には、ＷＲＵＰＤ（ＣＹＬ＃０，ＴＲＫ＃２，Ｒ１）〜ＷＲＵＰＤ（ＣＹＬ＃０，ＴＲＫ＃２，Ｒ４）が含まれる。ホスト接続ＤＫＣは、ＭＳＧ２のプリフィクスコマンドが指定する書き込み先頭アドレス、書き込み範囲、及びＣＣＷチェイン数を再設定する。この例では、書き込み先頭アドレスとして、シリンダ番号０のトラック番号２のレコード１が指定される。書き込み範囲として、シリンダ番号０のトラック番号２のレコード１〜４が指定される。ＣＣＷチェイン数として、４が指定される。
【００４０】
外部接続ＤＫＣは、それぞれ異なる外部接続パス１，２から送信されるＭＳＧ１，２を別々のＣＣＷチェインとして、並行処理する。つまり、外部接続ＤＫＣにおいては、あるプロセッサがＭＳＧ１を処理している最中に、他のプロセッサがＭＳＧ２を処理するので、ＭＳＧ１，２の並行処理が可能になる。ＣＣＷチェインの分割数をＮとすれば、外部接続ＤＫＣにおけるＣＣＷチェインの処理時間は、従来方式と比較して、約１／Ｎとなる。外部接続ＤＫＣにおいては、各ＭＳＧ１，２は別々のＣＣＷチェインとして処理されているので、外部接続ＤＫＣからホスト接続ＤＫＣには、それぞれ別々のライト処理完了を示す完了報告（ＳＴＳ）１，２が送信される。ホスト接続ＤＫＣは、各ＭＳＧ１，２の完了報告１，２を受信すると、ホスト装置１０に対して、ライト処理完了を示す一つの完了報告（ＳＴＳ）を送信する。
【００４１】
次に、物理パス本数に応じてＣＣＷチェインを分割する処理の詳細について、図４を参照しながら説明する。
【００４２】
ホスト装置１０からホスト接続ＤＫＣに送信されたコマンド（ＣＣＷチェイン）は、ポート５１を経由して、受信用レジスタ６２に格納され、更に、通信用バッファ５３に転送されて、チャネル制御プロセッサ５４によるＣＣＷ分割処理がなされる。チャネル制御プロセッサ５４は、ホスト装置１０からコマンドを受信すると、コマンド制御ジョブを起動する（Ｓ１０１）。このコマンド制御ジョブ起動処理では、コマンド処理に対して、コマンド制御ジョブテーブル（図１１）に新規ジョブ番号が割り当てられる。
【００４３】
図１１に示すように、コマンド制御ジョブテーブルは、ホスト接続ＤＫＣがホスト装置１０からコマンドを受信したときに実行される各コマンド処理をジョブとして管理するテーブルである。同テーブルにおいて、ＪＯＢ＃はジョブ番号を示す。ＪＯＢ状態の"Active"はジョブ起動中であることを示し、"Not Active"はジョブ終了であることを示す。DEV Addressはホスト装置１０が認識する記憶デバイス４２の論理アドレスを示す。異常終了Bitの"１"はジョブが異常終了したことを示し、"０"はジョブが正常終了したことを示す。ＭＳＧ数はＣＣＷチェインの分割数を示す。ＭＳＧ完了制御情報は、各ＭＳＧの処理が完了済みであるか未完了であるかを管理するための情報である。ＭＳＧ＃はメッセージ番号を示す。ＭＳＧ完了Bitの"１"はＭＳＧの処理が完了したことを示し、"０"はＭＳＧの処理が未完了であることを示す。データ格納領域＃は、ホスト装置１０からのリードコマンドに応答して、読み出したリードデータのキャッシュメモリ３１上の格納アドレスを示す。
【００４４】
チャネル制御プロセッサ５４は、ＪＯＢ状態が"Not Active"であるＪＯＢ＃に新規ジョブ番号を割り当て、更に、DEV Addressにアクセス先の論理アドレスを登録する（Ｓ１０１）。
【００４５】
次に、チャネル制御プロセッサ５４は、デバイス管理テーブル（図１３）を参照して、アクセス先のデバイスが外部デバイスであるか否かを判定する（Ｓ１０２）。図１３に示すように、デバイス管理テーブルは、各論理アドレス（DEV Address）につき、当該論理アドレスを有するデバイスが外部デバイスであるか否かを外部接続ビットにより管理するとともに、当該論理アドレスを有するデバイスが外部デバイスである場合に、外部接続ＤＫＣの番号を管理するテーブルである。外部接続ビットの"１"は外部デバイスであることを示し、"０"は内部デバイスであることを示す。外部接続ＤＫＣ＃は外部接続ＤＫＣの番号を示す。
【００４６】
アクセス先のデバイスが内部デバイスである場合には（Ｓ１０２；ＹＥＳ）、ホスト接続ＤＫＣは、内部デバイスに対するデータ処理を行う（Ｓ１１０）。一方、アクセス先のデバイスが外部デバイスである場合には（Ｓ１０２；ＮＯ）、チャネル制御プロセッサ５４は、通信用バッファ５３を参照し、ＣＣＷチェイン数をチェックする（Ｓ１０３）。ＣＣＷチェイン数は、ＤＸ／ＬＯＣコマンドで始まるＣＣＷチェインの場合は、ＬＯＣコマンドパラメータのドメインカウントにてチェック可能である。また、プリフィクスコマンドで始まるＣＣＷチェインの場合は、プリフィクスコマンドパラーメタのドメインカウントにてチェック可能である。
【００４７】
次に、チャネル制御プロセッサ５４は、外部接続ＤＫＣ管理テーブル（図１４）を参照して、物理パス本数をチェックする（Ｓ１０４）。図１４に示すように、外部接続ＤＫＣ管理テーブルは、外部接続ＤＫＣに接続する物理パスの番号を管理するためのテーブルである。ＤＫＣ＃は外部接続ＤＫＣの番号を示す。Validビットの"１"は外部接続ＤＫＣが接続していることを示し、"０"は外部接続ＤＫＣが接続していないことを示す。製番は外部接続ＤＫＣの製造番号を示す。物理パス番号は外部接続ＤＫＣに接続する外部接続パス３００の番号を示す。例えば、ＤＫＣ＃１の外部接続ＤＫＣには、４本の物理パス（物理パス番号２，４，６，７）が接続されていることが分かる。
【００４８】
次に、チャネル制御プロセッサ５４は、ＣＣＷチェインを物理パス本数の数に分割し、各ＭＳＧを作成する（Ｓ１０５）。各ＭＳＧのチェイン数は、ＣＣＷチェイン数（ドメインカウント）を物理パス本数で割った値となる。次に、チャネル制御プロセッサ５４は、コマンド制御ジョブ管理テーブルにＭＳＧ数を登録する（Ｓ１０６）。
【００４９】
次に、チャネル制御プロセッサ５４は、第一のパス管理テーブル（図１２）から未使用のＣＨＬＩＭＧ＃を検索し、同テーブルにＪＯＢ＃、ＭＳＧ＃、使用中Bitを登録する（Ｓ１０７）。図１２に示すように、第一のパス管理テーブルは、外部接続ＤＫＣに接続されている物理パスの使用状況（より詳細には、チャネルイメージ番号の使用状況）を管理するためのテーブルである。物理パス番号は物理パスの番号を示す。Port＃はホスト接続ＤＫＣのイニシエータポートの番号を示す。ＤＩＤは外部接続ＤＫＣのターゲットポートのＩＤを示す。DEV Addressはアクセス先の論理アドレスを示す。ＣＨＬＩＭＧ＃はチャネルイメージ番号を示す。ＪＯＢ＃はジョブの番号を示す。ＭＳＧ＃はＭＳＧの番号を示す。使用中BitはＭＳＧの処理を実行中であることを示す。同一の物理パスを使用して同一の論理アドレスにアクセスするには、ＣＨＬＩＭＧ＃を変える必要がある。
【００５０】
次に、チャネル制御プロセッサ５４は、各物理パスを介して外部接続ＤＫＣに各ＭＳＧを転送する指示を各プロトコル制御プロセッサ６３に与える（Ｓ１０８）。すると、各プロトコル制御プロセッサ６３は、各ＭＳＧをイニシエータポート５１の送信用レジスタ６１に格納し、外部接続パス３００を介して外部接続ＤＫＣのターゲットポート８１へ各ＭＳＧを送信する（Ｓ１０９）。
【００５１】
このように、物理パス本数に応じてＣＣＷチェインを分割し、外部接続ＤＫＣにおいて各ＭＳＧを複数のプロセッサによって同時に並行処理することで、ホスト装置１０からの指示に対するレスポンス性能を向上させることができる。
【００５２】
次に、物理パスのビジー率に応じてＣＣＷチェインを分割する処理の詳細について、図５を参照しながら説明する。Ｓ２０１〜Ｓ２０３、Ｓ２０７〜Ｓ２１１の処理ステップはそれぞれ上述したＳ１０１〜Ｓ１０３、Ｓ１０５〜Ｓ１１０の処理ステップと同様であるため、詳細な説明を省略する。
【００５３】
チャネル制御プロセッサ５４は、外部接続ＤＫＣ管理テーブルを参照して、物理パス番号をチェックする（Ｓ２０４）。次に、チャネル制御プロセッサ５４は、性能モニタリングテーブル（図１５）を参照して、各物理パスのビジー率をチェックし（Ｓ２０５）、各ＭＳＧのチェイン数を算出する（Ｓ２０６）。ビジー率とは、単位時間あたりの物理パスの仕事時間である。各ＭＳＧのチェイン数は、例えば、ビジー率が高い程、チェイン数を少なくし、ビジー率が低い程、チェイン数を多くすることにより、各物理パスのビジー率を均等化し、負荷を分散させることができる。例えば、ビジー率が５：３：２の３本の物理パスがあり、チェイン数２０のＣＣＷを３つのＭＳＧに分割する場合、各ＭＳＧのチェイン数は、ビジー率に反比例するように設定することで、５，７，８となる。
【００５４】
このように、物理パスのビジー率に応じて、ＭＳＧのチェイン数を変えることで、物理パスの負荷を分散させることができ、ホスト装置１０からの指示に対するレスポンス性能を向上させることができる。尚、ビジー率に替えて、各パスのＩ／Ｏレスポンスタイムや通信トラフィック量等を用いて、各ＭＳＧのチェイン数を変えてもよい。
【００５５】
次に、Buffer-to-Bufferクレジット制御（ＢＢクレジット制御）の概要について、図１７を参照しながら説明する。
【００５６】
ファイバチャネルプロトコルでは、リンク上のフレームサイズは最大２ＫＢである。通常、リンク上のデータ／制御情報の送受信では、複数のフレームが送受信される。このとき、外部接続ＤＫＣのターゲットポートがＮフレームを格納できるだけのバッファを保有していれば、ホスト接続ＤＫＣのイニシエータポートは、当該ターゲットポートに対してＮフレームのデータ／制御情報を送信できるが、それ以上のフレームを送信するには、当該ターゲットポートのバッファに空きがなければならない。Buffer-to-Bufferクレジット制御では、隣接ポート間で相手ポートのＢＢクレジット数及びバッファ開放通知を行う。
【００５７】
同図において、ポートＡ，Ｂは隣接ポートであり、例えば、ファイバチャネルプロトコルで接続されている。ポートＡ，Ｂともに２ＫＢの受信バッファを４面保有している。リンクイニシャライゼーション処理時に互いのＢＢクレジット数（＝４）を通知する。具体的には、リンク確立時のＦＬＯＧＩＮ  Ｆｒａｍｅ、又はＰＬＯＧＩＮ  Ｆｒａｍｅにて、バッファクレジット数を通知する。また、各ポートは、空きバッファが生じると、バッファ開放通知（Ｒ−ＲＤＹ）を行う。
【００５８】
ＢＢクレジット数に応じてＣＣＷチェインを分割する処理について、図６を参照しながら説明する。Ｓ３０１〜Ｓ３０４、Ｓ３０７〜Ｓ３１１の各処理ステップは、それぞれ上述したＳ２０１〜Ｓ２０４、Ｓ２０７〜Ｓ２１１の各処理ステップと同様であるため、詳細な説明を省略する。
【００５９】
チャネル制御プロセッサ５４は、第二のパス管理テーブル（図１６）を参照して、外部接続ＤＫＣのターゲットポートのＢＢクレジット数を参照する（Ｓ３０５）。図１６に示すように、第二のパス管理テーブルには、上述した第一のパス管理テーブル（図１２）に加えて、ターゲットポートのＢＢクレジット数がリンクイニシャライゼーション時に物理パス毎に格納される。チャネル制御プロセッサ５４は、ＢＢクレジット数の比率を基に各ＭＳＧのチェイン数を算出する（Ｓ３０６）。例えば、ＢＢクレジット数の比率が５：３：２の３本の物理パスが存在する場合において、ＣＣＷチェイン数が２０であるとすると、各物理パスに送信されるＭＳＧのチェイン数は、それぞれ１０，６，４となる。
【００６０】
このように、ＢＢクレジット数に応じて、ＭＳＧのチェイン数を変えることで、適切なフローコントロールを実現しつつ、ホスト装置１０からの指示に対するレスポンス性能も向上させることができる。
【００６１】
次に、同一の外部接続パス（物理パス）３００に複数の論理パスを設定し、ＣＣＷチェインを分割する処理の概要について、図７を参照しながら説明する。
【００６２】
複数のＣＣＷチェインが同一の物理パスを流れる場合、各ＣＣＷチェインのチャネルイメージ番号がそれぞれ異なっていれば、外部接続ＤＫＣはそれぞれ異なるホスト装置から送信されたＣＣＷチェインであると認識する（例えば、ホスト装置１０が論理分割する機能を備えている場合には、外部接続ＤＫＣは、論理的に異なるホスト装置から送信されたＣＣＷチェインであると認識する。）。つまり、同一の物理パスを流れるＣＣＷチェインのチャネルイメージ番号が互いに重複しないように設定することで、同一の物理パスに複数の論理パスを設定することが可能となる。例えば、同図に示すように、ＣＨＬＩＭＧ＃１のＣＣＷチェインがホスト装置１０からホスト接続ＤＫＣに送信された場合を考える。ホスト接続ＤＫＣは、例えば、このＣＣＷチェインを二つのＭＳＧ１，２に分割する。一方のＭＳＧ１のチャネルイメージ番号は、ＣＨＬＩＭＧ＃１であり、他方のＭＳＧ２のチャネルイメージ番号は、ＣＨＬＩＭＧ＃２である。各ＭＳＧ１，２のプリフィクスコマンドで指定される書き込み先頭アドレス、書き込み範囲、ＣＣＷチェイン数、ＣＨＬＩＭＧ＃等は再設定される。
【００６３】
外部接続ＤＫＣは、各ＭＳＧ１，２をそれぞれ異なるホスト装置からのＣＣＷチェインであると認識し、これらのコマンドの並行処理を行う。つまり、外部接続ＤＫＣにおいては、あるプロセッサがＭＳＧ１を処理している最中に、他のプロセッサがＭＳＧ２を処理するので、ＭＳＧ１，２の並行処理が可能になる。同一の物理パスにＮ本の論理パスを設定し、各論理パスを流れるＭＳＧのチェイン数を略同一に設定すれば、外部接続ＤＫＣにおけるＣＣＷチェインの処理時間は、従来方式と比較して、約１／Ｎとなる。外部接続ＤＫＣにおいては、各ＭＳＧ１，２は別々のＣＣＷチェインとして処理されているので、外部接続ＤＫＣからホスト接続ＤＫＣには、それぞれ別々のライト処理完了を示す完了報告（ＳＴＳ）１，２が送信される。ホスト接続ＤＫＣは、各ＭＳＧ１，２の完了報告１，２を受信すると、ホスト装置１０に対して、ライト処理完了を示す一つの完了報告（ＳＴＳ）を送信する。
【００６４】
尚、複数の物理パスのそれぞれに対して、複数の論理パスを設定し、ＣＣＷチェインを上述の如く分割処理することもできる。
【００６５】
次に、論理パス本数に応じてＣＣＷチェインを分割する処理の詳細について、図８を参照しながら説明する。Ｓ４０１〜Ｓ４０４、Ｓ４０６〜Ｓ４１０の各処理ステップは、それぞれ上述したＳ１０１〜Ｓ１０４、Ｓ１０６〜Ｓ１１０の各処理ステップと同様であるため、詳細な説明を省略する。
【００６６】
チャネル制御プロセッサ５４は、ＣＣＷチェインを論理パス本数の数だけ分割し、各ＭＳＧを作成する（Ｓ４０５）。各ＭＳＧのチェイン数は、ＣＣＷチェイン数（ドメインカウント）を論理パス本数で割った値となる。尚、第一のパス管理テーブル（図１２）から未使用のＣＨＬＩＭＧ＃を検索し、同テーブルにＪＯＢ＃、ＭＳＧ＃、使用中Bitを登録する際に、同一の物理パスを使用して同一の論理アドレスにアクセスするには、ＣＨＬＩＭＧ＃が重複しないように設定する必要がある。
【００６７】
次に、ホスト接続ＤＫＣが外部接続ＤＫＣから応答を受信したときの処理について、図９を参照しながら説明する。
【００６８】
チャネル制御プロセッサ５４は、外部接続ＤＫＣからＭＳＧの処理終了を示す完了報告（ＳＴＳ）を受領すると（Ｓ５０１）、パス管理テーブルを参照して、Port＃，ＤＩＤ，デバイスアドレス，ＣＨＬＩＭＧ＃を基に、処理が終了したＭＳＧのＪＯＢ＃とＭＳＧ＃を検索する（Ｓ５０２）。そして、チャネル制御プロセッサ５４は、コマンド制御ジョブテーブルのＭＳＧ完了制御情報の中から処理が終了したＭＳＧのＭＳＧ完了Bitを"１"にする（Ｓ５０３）。
【００６９】
次に、チャネル制御プロセッサ５４は、コマンド制御ジョブテーブルを参照して、ジョブの異常終了Bitが"１"であるか否かをチェックする（Ｓ５０４）。ジョブの異常終了Bitが"１"である場合には（Ｓ５０４；ＹＥＳ）、後述する各処理ステップを実行する必要がないので、全てのＭＳＧの処理が完了したか否かを判定する（Ｓ５０８）。一部のＭＳＧの処理が終了してない場合には（Ｓ５０８；ＮＯ）、当該一部のＭＳＧの応答を待つ（Ｓ５０９）。全てのＭＳＧの処理が終了した場合には（Ｓ５０８；ＹＥＳ）、チャネル制御プロセッサ５４は、コマンド制御ジョブテーブルのＪＯＢ状態を"Not Active"にし、更に、異常終了Bit、ＭＳＧ数、及びＭＳＧ完了制御情報をクリアして、ジョブの終了処理を行う（Ｓ５１７）。
【００７０】
一方、ジョブの異常終了Bitが"０"である場合には（Ｓ５０４；ＮＯ）、チャネル制御プロセッサ５４は、ジョブが正常に終了したか否かを判定する（Ｓ５０５）。ジョブが異常に終了した場合には（Ｓ５０５；ＮＯ）、チャネル制御プロセッサ５４は、コマンド制御ジョブテーブルの異常終了Bitを"１"に設定し（Ｓ５０６）、異常終了ＳＴＳを通信用バッファ５３へ転送し、ホスト装置１０への送信指示をプロトコル制御プロセッサ６３に与える（Ｓ５０７）。その後、チャネル制御プロセッサ５４は、上述したステップＳ５０８，Ｓ５０９の処理を行う。
【００７１】
一方、ジョブが正常に終了した場合には（Ｓ５０５；ＹＥＳ）、チャネル制御プロセッサ５４は、正常に終了したジョブがリード系コマンドであるか、或いはライト系コマンドであるかを判定する（Ｓ５１０）。ライト系コマンドである場合には、チャネル制御プロセッサ５４は、全てのＭＳＧの処理が完了しているか否かを判定する（Ｓ５１１）。一部のＭＳＧの処理が完了してない場合には（Ｓ５１１；ＮＯ）、チャネル制御プロセッサ５４は、当該一部のＭＳＧの応答を待つ（Ｓ５０９）。全てのＭＳＧの処理が完了した場合には（Ｓ５１１；ＹＥＳ）、チャネル制御プロセッサ５４は、正常終了を示す完了報告（ＳＴＳ）を通信用バッファ５３に転送し、ホスト装置１０への送信指示をプロトコル制御プロセッサ６３に与える（Ｓ５１２）。その後、チャネル制御プロセッサ５４は、上述したステップＳ５１７の処理を行う。
【００７２】
一方、リード系コマンドである場合には、チャネル制御プロセッサ５４は、キャッシュメモリ３１上のデータ格納領域に各ＭＳＧのリードデータを格納する（Ｓ５１３）。そして、チャネル制御プロセッサ５４は、全てのＭＳＧの処理が完了したか否かを判定し（Ｓ５１４）、一部のＭＳＧの処理が完了してない場合には（Ｓ５１４；ＮＯ）、当該一部のＭＳＧの応答を待つ（Ｓ５１５）。全てのＭＳＧの処理が完了した場合には（Ｓ５１４；ＹＥＳ）、チャネル制御プロセッサ５４は、データ格納領域からリードデータを読み出して、これを通信用バッファ５３に転送し、ホスト装置１０への送信指示をプロトコル制御プロセッサ６３に与える（Ｓ５１６）。その後、チャネル制御プロセッサ５４は、上述したステップＳ５１７の処理を行う。
【００７３】
次に、ホスト接続ＤＫＣが外部接続ＤＫＣから各ＭＳＧのリード完了報告を受信した場合において、全てのＭＳＧのリードデータが揃う前に、ホスト装置１０に対してリードデータを先出しする処理について、図１０を参照しながら説明する。Ｓ６０１〜Ｓ６１０の各処理ステップは、それぞれ上述したＳ５０１〜Ｓ５１０の各処理ステップと同様であるため、詳細な説明を省略する。
【００７４】
正常に終了したジョブがリード系コマンドである場合に、チャネル制御プロセッサ５４は、リード完了報告を受信した当該ＭＳＧ以前の全てのＭＳＧの処理が完了しているか否かを判定する（Ｓ６１３）。つまり、リード完了報告を受信した当該ＭＳＧのＭＳＧ＃がＮである場合に、ＭＳＧ＃０〜ＭＳＧ＃（Ｎ−１）のＭＳＧの処理が完了しているか否かを判定する。ＭＳＧ＃０〜ＭＳＧ＃（Ｎ−１）のうち何れかのＭＳＧの処理が完了してない場合には（Ｓ６１３；ＮＯ）、未完了ＭＳＧの処理完了を待つ（Ｓ６１７）。
【００７５】
一方、ＭＳＧ＃０〜ＭＳＧ＃（Ｎ−１）の全てのＭＳＧの処理が完了した場合には（Ｓ６１３；ＹＥＳ）、チャネル制御プロセッサ５４は、データ格納領域からＭＳＧ＃ＮのＭＳＧのリードデータを読み出し、これを通信用バッファ５３に転送し、ホスト装置１０への送信指示をプロトコル制御プロセッサ６３に与える（Ｓ６１４）。
【００７６】
次に、チャネル制御プロセッサ５４は、全てのＭＳＧのリードデータの送信が完了したか否かを判定する（Ｓ６１５）。一部のＭＳＧの処理が完了してない場合には（Ｓ６１５；ＮＯ）、Ｎの値を"１"だけインクリメントし、ＭＳＧ＃（Ｎ＋１）のＭＳＧの処理が完了したか否かを判定する（Ｓ６１６）。ＭＳＧ＃（Ｎ＋１）以降の処理のＭＳＧのうち何れかのＭＳＧの処理が完了してない場合には（Ｓ６１６；ＮＯ）、当該ＭＳＧの処理の完了を待つ（Ｓ６１７）。
【００７７】
一方、ＭＳＧ＃（Ｎ＋１）のＭＳＧの処理が完了した場合には（Ｓ６１６；ＹＥＳ）、チャネル制御プロセッサ５４は、データ格納領域からＭＳＧ＃（Ｎ＋１）のＭＳＧのリードデータを読み出し、これを通信用バッファ５３に転送し、ホスト装置１０への送信指示をプロトコル制御プロセッサ６３に与える（Ｓ６１４）。
【００７８】
このようにして、全てのＭＳＧの処理が完了するまで、Ｓ６１４〜Ｓ６１６のループを繰り返し実行する。全てのＭＳＧの処理が完了すると（Ｓ６１５；ＹＥＳ）、チャネル制御プロセッサ５４は、正常終了を示す完了報告（ＳＴＳ）を通信用バッファ５３に転送し、ホスト装置１０への送信指示をプロトコル制御プロセッサ６３に与える（Ｓ６１８）。次に、チャネル制御プロセッサ５４は、コマンド制御ジョブテーブルのＪＯＢ状態を"Not Active"にし、更に、異常終了Bit、ＭＳＧ数、及びＭＳＧ完了制御情報をクリアして、ジョブの終了処理を行う（Ｓ６１９）。
【００７９】
このように、全てのＭＳＧのリードデータが揃う前に、ホスト装置１０に対してリードデータを先出しすることにより、ホスト装置１０からの指示に対するレスポンス性能を向上させることができる。
【００８０】
次に、ＣＣＷチェインの統合処理について、図１８を参照しながら説明する。ホスト接続ＤＫＣが複数のホスト装置Ａ，Ｂ，Ｃに接続している場合において、各ホスト装置Ａ，Ｂ，Ｃからコマンド（ＣＣＷチェイン）を受信すると、チャネル制御プロセッサ５４は、各ホスト装置Ａ，Ｂ，Ｃからのコマンドを統合して一つのコマンドを新たに生成し、この新たなコマンドを外部接続ＤＫＣに送信することもできる。例えば、各ホスト装置Ａ，Ｂ，Ｃからの各コマンドをトラック順に並べ直した場合に、それがシーケンシャルアクセスになるような場合においては、各コマンドを統合し、シーケンシャルアクセス用の新たな一つのコマンドに組み替えることが可能である。
【００８１】
同図に示す例では、ホスト装置ＡからはＣＹＬ＃０のＴＲＫ＃１のデータを読み出すコマンドが、ホスト装置ＢからはＣＹＬ＃０のＴＲＫ＃２のデータを読み出すコマンドが、ホスト装置ＣからはＣＹＬ＃０のＴＲＫ＃３のデータを読み出すコマンドが、それぞれ送信されている。これらのコマンドをトラック順に並べなおすと、ＣＹＬ＃０のＴＲＫ＃１〜ＴＲＫ＃３のデータをシーケンシャルに読み出すコマンドに置き換えることができる。チャネル制御プロセッサ５４は、これらのコマンドを統合した新たなコマンドを生成し、外部接続ＤＫＣに送信する。すると、外部接続ＤＫＣからは、ＣＹＬ＃０のＴＲＫ＃１〜ＴＲＫ＃３からシーケンシャルに読み出したリードデータがホスト接続ＤＫＣへ送られてくる。チャネル制御プロセッサ５４は、このリードデータを分割し、要求元のホスト装置Ａ，Ｂ，Ｃのそれぞれに対して、ＣＹＬ＃０のＴＲＫ＃１のリードデータ、ＣＹＬ＃０のＴＲＫ＃２のリードデータ、ＣＹＬ＃０のＴＲＫ＃３のリードデータを送信する。
【００８２】
このように、複数のホスト装置からの複数のコマンドを統合することによって、コマンド受信側のオーバーヘッドは低下するので、レスポンス性能が向上する。また、外部接続ＤＫＣへの送信フレーム数も少なくなるので、レスポンス性能が向上する。例えば、上記の例において、従来では、外部接続ＤＫＣは、少なくとも３以上のＢＢクレジット数を保有していなければならないが、本実施形態によれば、外部接続ＤＫＣは、少なくとも１以上のＢＢクレジット数を保有していればよい。また、コマンドを統合することによって、先読み機能が働くので、レスポンス性能が向上する。
【００８３】
ＣＣＷチェインを統合する他の例について、図１９を参照しながら説明する。ホスト接続ＤＫＣは、ホスト装置から受信したＣＣＷチェインをコマンド単位で統合し、外部接続ＤＫＣに送信することもできる。例えば、外部接続ＤＫＣのシリンダ番号０のトラック番号１のレコード０〜レコード３にデータを書き込む指示を与えるためのＣＣＷチェインとして、ホスト装置からホスト接続ＤＫＣにＤＸ／ＬＯＣ／ＷＲＵＰＤ／ＷＲＵＰＤ／ＷＲＵＰＤ／ＷＲＵＰＤが送信された場合を考える。１レコードのデータを書き込む指示を与えるＷＲＵＰＤが複数発行されたということは、複数のレコードにデータを書き込む指示が与えられたことを意味するため、複数のＷＲＵＰＤコマンドは、ＷＲＴＲＫＤＡＴＡコマンドに置換することができる。また、ＤＸ／ＬＯＣは、どこからデータを書き込むかを示すレコードの位置を決定するコマンドであるから、このコマンドはPrefixコマンドに置換することができる。上記の例では、ホスト接続ＤＫＣは、ホスト装置から受信したＤＸ／ＬＯＣ／ＷＲＵＰＤ／ＷＲＵＰＤ／ＷＲＵＰＤ／ＷＲＵＰＤを、Prefix／ＷＲＴＲＫＤＡＴＡに置換して、外部接続ＤＫＣに送信することができる。このコマンド統合により、ＣＣＷチェイン数は、６から２になる。ホスト接続ＤＫＣは、外部接続ＤＫＣから書き込み完了を示す完了報告を受信すると、ホスト装置に対して、書き込み完了を示す完了報告を送信する。
【００８４】
ＣＣＷチェインをコマンド単位で統合する例として、上述した例の他に、例えば、複数のＷＲＣＫＤをＷＲＦＵＬＬＴＲＫに置換する例や、複数のＲＤＣＫＤをＲＤＴＲＫに置換する例などを挙げることができる。
【００８５】
コマンド単位でのＣＣＷチェインの統合処理の詳細について、図２０を参照しながら説明する。Ｓ７０１，Ｓ７０２，Ｓ７０６〜Ｓ７０９の各処理ステップは、それぞれ上述したＳ１０１，Ｓ１０２，Ｓ１０７〜Ｓ１１０の各処理ステップと同様であるため、詳細な説明を省略する。
【００８６】
上述の如く、ホスト装置１０からホスト接続ＤＫＣに送信されたコマンド（ＣＣＷチェイン）は、ポート５１を経由して受信用レジスタ６２に格納され、更に、通信用バッファ５３に転送される。チャネル制御プロセッサ５４は、通信用バッファ５３を参照し、コマンド種別をチェックする（Ｓ７０３）。コマンド統合可能なコマンドであれば（Ｓ７０４；ＹＥＳ）、チャネル制御プロセッサ５４は、コマンドを統合し、新たなＭＳＧを生成する（Ｓ７０５）。一方、コマンド統合可能なコマンドでなければ（Ｓ７０４；ＮＯ）、チャネル制御プロセッサ５４は、Ｓ７０６の処理に進む。
【００８７】
ＣＣＷチェインをコマンド単位で統合することにより、コマンド受信側（外部接続ＤＫＣ）のオーバーヘッドは低減し、レスポンス性能が向上する。また、ホスト接続ＤＫＣと外部接続ＤＫＣとの間で送受信されるフレーム数が減少するので、性能が向上する。例えば、上記の例では、ホスト接続ＤＫＣから外部接続ＤＫＣに、ＤＸ／ＬＯＣ／ＷＲＵＰＤ／ＷＲＵＰＤ／ＷＲＵＰＤ／ＷＲＵＰＤを送信するには、外部接続ＤＫＣのターゲットポートのＢＢクレジット数は６以上でなければならいが、Prefix／ＷＲＴＲＫＤＡＴＡであれば、外部接続ＤＫＣのターゲットポートのＢＢクレジット数は２以上であればよい。ホスト接続ＤＫＣと外部接続ＤＫＣとの間の距離が長距離になると、ターゲットポートのＢＢクレジット数に応じて性能が変わるので、コマンド統合をすることにより、性能を向上させることができる。
【００８８】
次に、ホスト装置からコマンド（ＣＣＷチェイン）を受信したホスト接続ＤＫＣがコマンドを統合するか、或いは分割するかを判断し、コマンド統合又はコマンド分割をする例について説明する。
【００８９】
チャネル制御プロセッサ５４がコマンドを統合するか或いは分割するかを判断する情報として、例えば、外部接続ＤＫＣのターゲットポートのバッファ使用率を用いることができる。バッファ使用率とは、バッファ使用数をＢＢクレジット数で除した値である。ターゲットポートのバッファ使用率が高いというのは、ターゲットポートの空きバッファ数が少ないことを意味するので、このような場合に、コマンド分割を実行して複数のコマンドをターゲットポートに送信しようとしても、ターゲットポートの空きバッファが足りないという理由でコマンド送信できない場合がある。そこで、ターゲットポートのバッファ使用率が高い場合には、コマンド統合を実行することで、ターゲットポートへ送信するフレーム数を減らしつつ、見かけ上、多くのコマンドを外部接続ＤＫＣに発行することができる。
【００９０】
一方、ターゲットポートのバッファ使用率が低いというのは、ターゲットポートの空きバッファ数が多いことを意味するので、このような場合には、コマンド分割を実行して複数のコマンドをターゲットポートに送信し、外部接続ＤＫＣにてこれら複数のコマンドを並行処理することで、処理速度の向上を実現できる。
【００９１】
このように、ターゲットポートのバッファ使用率に応じて、コマンド統合或いはコマンド分割を使い分けることにより、システム全体の処理能力を向上させることができる。特に、ホスト接続ＤＫＣと外部接続ＤＫＣとを接続する外部接続パスが長距離に及ぶ場合には、イニシエータポートからターゲットポートにフレームが送信される迄に多くの時間を要するので、ターゲットポートのバッファが空きにくくなる。このような場合でも、バッファ使用率に応じて、コマンド統合或いはコマンド分割を使い分けることにより、システム全体の処理能力を最大限に引き出すことができる。
【００９２】
コマンド統合／分割処理の詳細について、図２１を参照しながら説明する。Ｓ８０１，Ｓ８０２，Ｓ８０８の各処理ステップは、それぞれ上述したＳ１０１，Ｓ１０２，Ｓ１１０の各処理ステップと同様であるため、詳細な説明を省略する。
【００９３】
チャネル制御プロセッサ５４は、デバイス管理テーブル（図１３）と外部接続ＤＫＣ管理テーブル（図１４）とから、外部接続パスの物理パス番号を求める（Ｓ８０３）。次に、チャネル制御プロセッサ５４は、バッファ使用率監視テーブル（図２３）を参照して、Ｓ８０３で求めた物理パス番号を有する物理パスの分割Bitをチェックする（Ｓ８０４）。
【００９４】
図２３に示すバッファ使用監視テーブルは、各物理パスのバッファ使用率を監視するためのテーブルである。バッファ使用率（％）には、モニタリング実行時間内における各物理パスのバッファ使用率の平均値が格納される。上述の如く、バッファ使用率とは、バッファ使用数をＢＢクレジット数で除した値である。ターゲットポートのバッファ使用数は図２２のバッファ使用数カウントテーブルから求めることができる。このバッファ使用数カウントテーブルは、ターゲットポートのバッファ使用数をカウントするためのテーブルである。各物理パスの使用数カウンタには、ホスト接続ＤＫＣと外部接続ＤＫＣとの間のリンクイニシャライゼーション時に、初期値として"０"が格納される。その後、ターゲットポートに１フレーム送信される毎に＋１がカウントされ、イニシエータポートがターゲットポートからバッファ開放通知（Ｒ−ＲＤＹ）を受信する毎に−１がカウントされていく。一方、ターゲットポートのＢＢクレジット数は、第二のパス管理テーブル（図１６）から求めることができる。
【００９５】
図２３に示すように、バッファ使用率が所定の閾値よりも高い場合には、分割Bitには"０"が格納され、バッファ使用率が所定の閾値以下の場合には、分割Bitには"１"が格納される。物理パスの分割Bitが"０"に設定されるということは、その物理パスを流れるコマンドは統合されるべきであることを意味する。一方、物理パスの分割Bitが"１"に設定されるということは、その物理パスを流れるコマンドは分割されるべきであることを意味する。図２３に示す例では、バッファ使用率の閾値として、８０％が設定されているので、バッファ使用率７５％の物理パス番号０ｘ００の物理パスの分割Bitは、"０"に設定されている。一方、バッファ使用率９５％の物理パス番号０ｘ０１の物理パスの分割Bitは、"１"に設定されている。他の物理パスについても、同様にして、分割Bitの値が設定される。
【００９６】
分割Bitが"０"に設定されている場合には（Ｓ８０５；ＮＯ）、チャネル制御プロセッサ５４は、コマンド統合を行う（Ｓ８０６）。コマンド統合の具体的な処理方法として、例えば、上述の如く、各コマンドをトラック順に並べ直した場合に、それがシーケンシャルアクセスになるような場合においては、これらのコマンドをシーケンシャルアクセス用の新たな一つのコマンドに置換してもよく、或いはコマンド単位で統合してもよい。
【００９７】
一方、分割Bitが"１"に設定されている場合には（Ｓ８０５；ＹＥＳ）、チャネル制御プロセッサ５４は、コマンド分割を行う（Ｓ８０７）。コマンド分割の具体的な処理方法として、例えば、上述の如く、パス本数の数だけコマンドを分割してもよく、或いは各パスのビジー率、各パスのＩ／Ｏレスポンスタイム、各パスに接続されるターゲットポートのＢＢクレジット数に応じて、各パスに送信されるＣＣＷチェインのチェイン数を変えてもよい。また、コマンドを分割する単位として、例えば、トラック単位又はシリンダ単位で分割してもよい。
【００９８】
尚、チャネル制御プロセッサ５４がコマンドを統合するか或いは分割するかを判断する情報としては、上述のバッファ使用率に限られるものではなく、各種の情報を用いることができる。例えば、図２４に示す空きバッファ数監視テーブルを用いてもよい。この空きバッファ数監視テーブルは、外部接続ＤＫＣのターゲットポートの空きバッファ数を監視するためのテーブルである。各物理パスの空きバッファ数には、初期値としてＢＢクレジット数が格納される。その後、イニシエータポートからターゲットポートに１フレーム送信される毎に−１がカウントされ、イニシエータポートがターゲットポートからバッファ開放通知（Ｒ−ＲＤＹ）を受信する毎に＋１がカウントされていく。空きバッファ数が所定の閾値よりも多い場合には、分割Bitには"１"が格納され、空きバッファ数が所定の閾値以下の場合には、分割Bitには"０"が格納される。図２４に示す例では、空きバッファ数の閾値として、３が設定されているので、空きバッファ数２の物理パス番号０ｘ００の物理パスの分割Bitは、"０"に設定されている。一方、空きバッファ数１０の物理パス番号０ｘ０１の物理パスの分割Bitは、"１"に設定されている。他の物理パスについても、同様にして、分割Bitの値が設定される。
【００９９】
上記の他に、例えば、チャネル制御プロセッサ５４は、外部接続ＤＫＣのターゲットポートのＢＢクレジット数に応じて、コマンドを統合するか或いは分割するかを判断してもよい。ＢＢクレジット数が所定の閾値以上であれば、コマンドを分割し、ＢＢクレジット数が所定の閾値未満であれば、コマンドを統合する。
【０１００】
更に他の例として、チャネル制御プロセッサ５４は、ストレージシステムの性能をモニタリングして、コマンドを統合するか、或いは分割するかを判断してもよい。チャネル制御プロセッサ５４は、ある一定期間の間、コマンドを統合したり或いは分割したりして、それぞれの場合における外部接続ＤＫＣのコマンド処理時間を測定する。その処理時間に応じて、コマンドを統合するか或いは分割するかを判断してもよい。
【０１０１】
尚、上述の説明では、外部接続ＤＫＣの実ボリュームがホスト接続ＤＫＣの仮想デバイスにマッピングされているストレージシステムを例に挙げて説明したが、必ずしも外部接続ＤＫＣの実ボリュームがホスト接続ＤＫＣの仮想デバイスにマッピングされている必要はない。本発明は、ホスト接続ＤＫＣが外部接続ＤＫＣに接続されているストレージシステムにおいて、ホスト装置からのコマンドをホスト接続ＤＫＣが外部接続ＤＫＣに転送するように構成されているストレージシステムについても適用可能である。このようなストレージシステムにおけるコマンド（ＣＣＷチェイン）の分割或いは統合の具体的な処理方法については、上述の処理方法と同様である。
【図面の簡単な説明】
【０１０２】
【図１】本実施形態のストレージシステムの主要構成図である。
【図２】記憶制御装置内の論理的な記憶階層の説明図である。
【図３】物理パス本数に応じてＣＣＷチェインを分割する処理の説明図である。
【図４】物理パス本数に応じてＣＣＷチェインを分割する処理の流れ図である。
【図５】ビジー率に応じてＣＣＷチェインを分割する処理の流れ図である。
【図６】ＢＢクレジットに応じてＣＣＷチェインを分割する処理の流れ図である。
【図７】論理パス本数に応じてＣＣＷチェインを分割する処理の説明図である。
【図８】論理パス本数に応じてＣＣＷチェインを分割する処理の流れ図である。
【図９】分割されたＣＣＷチェインに対する応答処理の流れ図である。
【図１０】分割されたＣＣＷチェインに対する応答処理の流れ図である。
【図１１】コマンド制御ジョブテーブルの説明図である。
【図１２】第一のパス管理テーブルの説明図である。
【図１３】デバイス管理テーブルの説明図である。
【図１４】外部接続ＤＫＣ管理テーブルの説明図である。
【図１５】性能モニタリングテーブルの説明図である。
【図１６】第二のパス管理テーブルの説明図である。
【図１７】ＢＢクレジット制御の説明図である。
【図１８】ＣＣＷチェインを統合する処理の概要図である。
【図１９】コマンド単位でＣＣＷチェインを統合する処理の説明図である。
【図２０】コマンド単位でＣＣＷチェインを統合する処理の流れ図である。
【図２１】コマンド統合／分割処理を示す流れ図である。
【図２２】バッファ使用数カウントテーブルの説明図である。
【図２３】バッファ使用率監視テーブルの説明図である。
【図２４】バッファ数監視テーブルの説明図である。
【符号の説明】
【０１０３】
１０…ホスト装置  ２０…ホスト接続記憶制御装置  ３０…ディスクコントローラ  ４０…ディスク部  ５０…チャネル制御部  ５４…チャネル制御プロセッサ  ６０…プロトコル制御部  ９０…外部接続記憶制御装置  １００…ストレージシステム
【図１】
2006309579.tif 000003
【図２】
2006309579.tif 000004
【図３】
2006309579.tif 000005
【図４】
2006309579.tif 000006
【図５】
2006309579.tif 000007
【図６】
2006309579.tif 000008
【図７】
2006309579.tif 000009
【図８】
2006309579.tif 000010
【図９】
2006309579.tif 000011
【図１０】
2006309579.tif 000012
【図１１】
2006309579.tif 000013
【図１２】
2006309579.tif 000014
【図１３】
2006309579.tif 000015
【図１４】
2006309579.tif 000016
【図１５】
2006309579.tif 000017
【図１６】
2006309579.tif 000018
【図１７】
2006309579.tif 000019
【図１８】
2006309579.tif 000020
【図１９】
2006309579.tif 000021
【図２０】
2006309579.tif 000022
【図２１】
2006309579.tif 000023
【図２２】
2006309579.tif 000024
【図２３】
2006309579.tif 000025
【図２４】
2006309579.tif 000026