(57)【要約】  複数のデータ転送装置を用いて行われるデータ転送を効率よく行なう。第１ＤＭＡ１１４２、第２ＤＭＡ１１１２、及びメモリ１１３を備えるチャネル制御部１１と、プロセッサ部１２と、記憶装置１７と通信するディスク制御部１３とを備えるストレージ装置１０において、チャネル制御部１１が、キャッシュメモリ１４に格納されているデータをホスト装置３に転送する際、第１ＤＭＡ１１４２が、プロセッサ部１２から第２ＤＭＡ１１１２の第２転送パラメータ１５２が付帯する第１ＤＭＡ１１４２の第１転送パラメータ１５１の設定を受け付け、第１転送パラメータ１５１に従いキャッシュメモリ１４からメモリ１１３への第１データ転送を行うとともに、第２転送パラメータを第２ＤＭＡ１１１２に設定してメモリ１１３からホスト装置３にデータ転送するようにする。【選択図】  図１３
2013515978.tif 000002
【特許請求の範囲】
【請求項１】
転送元装置及びメモリと通信可能に接続され、他の装置による第１転送パラメータの設定を受け付け、受け付けた前記第１転送パラメータに従い前記転送元装置から前記メモリへの第１データ転送を行う、第１データ転送装置と、
転送先装置、前記メモリ、及び前記第１データ転送装置と通信可能に接続され、他の装置による第２転送パラメータの設定を受け付け、受け付けた前記第２転送パラメータに従い前記メモリから前記転送先装置への第２データ転送を行う、第２データ転送装置と
を備えるデータ転送制御装置における、前記第１データ転送装置として機能するデータ転送装置であって、
他の装置から前記第２転送パラメータが付帯する前記第１転送パラメータを受け付け、受け付けた前記第１転送パラメータに従い前記第１データ転送を行うとともに、前記第１転送パラメータに付帯する前記第２転送パラメータを前記第２データ転送装置に設定する
データ転送装置。
【請求項２】
請求項１に記載のデータ転送装置であって、
前記第１転送パラメータに従った前記第１データ転送が終了したか否かを判断し、前記第１データ転送が終了したと判断すると、前記第１転送パラメータに付帯する前記第２転送パラメータを前記第２データ転送装置に設定し、
前記第２データ転送装置は、前記第１データ転送装置から前記第２転送パラメータの設定を受け付けた後、前記第２データ転送のためのデータ読み出し要求を前記メモリに送信し、
前記メモリは、前記第１データ転送の実行中に前記データ読み出し要求を受信すると、受信した前記データ読み出し要求を前記第１データ転送が終了するまで待ち状態とし、前記第１データ転送が終了した後、前記第２データ転送を開始し、
前記第２データ転送装置は、前記第１データ転送装置から前記第２転送パラメータの設定を受け付けた後、前記メモリにアクセスすることにより前記第１データ転送が終了したか否かを判断し、前記第１データ転送が終了したと判断すると前記第２データ転送を開始し、
前記第１データ転送装置は、前記第１データ転送を開始すると前記第２データ転送装置に前記第１データ転送を開始したことを示す開始通知を送信し、
前記第２データ転送装置は、前記開始通知を受信した後、前記メモリへのアクセスを開始し、
前記第１データ転送装置は、複数の前記他の装置から第１転送パラメータの設定を受け付け、受け付けた前記第１転送パラメータの夫々に従い前記第１データ転送を行い、
前記第１データ転送装置は、
前記他の装置から前記第１転送パラメータの設定を受け付けると、受け付けた前記第１転送パラメータに前記第２転送パラメータが付帯するか否かを判断し、
前記第１転送パラメータに前記第２転送パラメータが付帯しない場合は、前記第１転送パラメータに従い前記第１データ転送を行い、
前記第１転送パラメータに前記第２転送パラメータが付帯する場合は、前記第１転送パラメータに従い前記第１データ転送を行うとともに、前記第１転送パラメータに付帯する前記第２転送パラメータを前記第２データ転送装置に設定し、
前記第１データ転送装置は、前記第１転送パラメータに従い前記第１データ転送を行う第１ＤＭＡ（Direct Memory Access）を備え、
前記第２データ転送装置は、前記第２転送パラメータに従い前記第２データ転送を行う第２ＤＭＡを備え
前記第１データ転送装置は、前記第１データ転送の終了後、前記他の装置に前記第１データ転送についての第１終了ステータスを通知し、
前記第２データ転送装置は、前記第２データ転送の終了後、前記他の装置に前記第２データ転送についての第２終了ステータスを通知し、
前記第１転送パラメータは、前記第１データ転送により転送されるデータの前記転送元装置における格納位置を示す情報である第１転送元情報、及び前記データの前記メモリにおける格納位置を示す情報である第１転送先情報を含み、
前記第２転送パラメータは、前記第２データ転送により転送されるデータの前記メモリにおける格納位置を示す情報である第２転送元情報、及び前記データの前記転送先装置における格納位置を示す情報である第２転送先情報を含み、
前記データ転送制御装置は、ホスト装置と通信するチャネル制御部と、記憶装置と通信するドライブ制御部と、キャッシュメモリと、前記チャネル制御部、前記ドライブ制御部、及び前記キャッシュメモリの間のデータ転送を行うプロセッサ部と、前記チャネル制御部及び前記プロセッサ部を通信可能に接続する内部スイッチと、を備えるストレージ装置における、前記チャネル制御部を構成し、
前記メモリは、前記チャネル制御部が備えるメモリであり、
前記転送元装置は、前記キャッシュメモリであり、
前記転送先装置は、前記ホスト装置であり、
前記他の装置は、前記プロセッサ部が備えるマイクロプロセッサであり、  
前記プロセッサ部は、メモリと複数の前記マイクロプロセッサを備え、
前記第１データ転送装置は、前記第１データ転送の終了後、前記第１転送パラメータを設定した前記マイクロプロセッサに割り当てられている前記メモリの記憶領域に前記第１データ転送についての第１終了ステータスを書き込み、
前記第２データ転送装置は、前記第２データ転送の終了後、前記第１転送パラメータを設定した前記マイクロプロセッサに割り当てられている前記メモリの記憶領域に前記第２データ転送についての第２終了ステータスを書き込む
データ転送装置。
【請求項３】
請求項１に記載のデータ転送装置であって、
前記第１転送パラメータに従った前記第１データ転送が終了したか否かを判断し、前記第１データ転送が終了したと判断すると、前記第１転送パラメータに付帯する前記第２転送パラメータを前記第２データ転送装置に設定する
データ転送装置。
【請求項４】
請求項１に記載のデータ転送装置であって、
前記第２データ転送装置は、前記第１データ転送装置から前記第２転送パラメータの設定を受け付けた後、前記第２データ転送のためのデータ読み出し要求を前記メモリに送信し、  
前記メモリは、前記第１データ転送の実行中に前記データ読み出し要求を受信すると、受信した前記データ読み出し要求を前記第１データ転送が終了するまで待ち状態とし、前記第１データ転送が終了した後、前記第２データ転送を開始する
データ転送装置。
【請求項５】
請求項１に記載のデータ転送装置であって、
前記第２データ転送装置は、前記第１データ転送装置から前記第２転送パラメータの設定を受け付けた後、前記メモリにアクセスすることにより前記第１データ転送が終了したか否かを判断し、前記第１データ転送が終了したと判断すると前記第２データ転送を開始する
データ転送装置。
【請求項６】
請求項５に記載のデータ転送装置であって、
前記第１データ転送装置は、前記第１データ転送を開始すると前記第２データ転送装置に前記第１データ転送を開始したことを示す開始通知を送信し、
前記第２データ転送装置は、前記開始通知を受信した後、前記メモリへのアクセスを開始する
データ転送装置。
【請求項７】
請求項６に記載のデータ転送装置であって、
前記第１データ転送装置は、複数の前記他の装置から第１転送パラメータの設定を受け付け、受け付けた前記第１転送パラメータの夫々に従い前記第１データ転送を行う
データ転送装置。
【請求項８】
請求項１に記載のデータ転送装置であって、
前記第１データ転送装置は、
前記他の装置から前記第１転送パラメータの設定を受け付けると、受け付けた前記第１転送パラメータに前記第２転送パラメータが付帯するか否かを判断し、
前記第１転送パラメータに前記第２転送パラメータが付帯しない場合は、前記第１転送パラメータに従い前記第１データ転送を行い、
前記第１転送パラメータに前記第２転送パラメータが付帯する場合は、前記第１転送パラメータに従い前記第１データ転送を行うとともに、前記第１転送パラメータに付帯する前記第２転送パラメータを前記第２データ転送装置に設定する
データ転送装置。
【請求項９】
請求項１に記載のデータ転送装置であって、
前記第１データ転送装置は、前記第１転送パラメータに従い前記第１データ転送を行う第１ＤＭＡ（Direct Memory Access）を備え、
前記第２データ転送装置は、前記第２転送パラメータに従い前記第２データ転送を行う第２ＤＭＡを備える
データ転送プロセッサ。
【請求項１０】
請求項１に記載のデータ転送装置であって、
前記第１データ転送装置は、前記第１データ転送の終了後、前記他の装置に前記第１データ転送についての第１終了ステータスを通知し、
前記第２データ転送装置は、前記第２データ転送の終了後、前記他の装置に前記第２データ転送についての第２終了ステータスを通知する
データ転送装置。
【請求項１１】
請求項１に記載のデータ転送装置であって、
前記第１転送パラメータは、前記第１データ転送により転送されるデータの前記転送元装置における格納位置を示す情報である第１転送元情報、及び前記データの前記メモリにおける格納位置を示す情報である第１転送先情報を含み、
前記第２転送パラメータは、前記第２データ転送により転送されるデータの前記メモリにおける格納位置を示す情報である第２転送元情報、及び前記データの前記転送先装置における格納位置を示す情報である第２転送先情報を含む
データ転送装置。
【請求項１２】
請求項１に記載のデータ転送装置であって、
前記データ転送制御装置は、ホスト装置と通信するチャネル制御部と、記憶装置と通信するディスク制御部と、キャッシュメモリと、前記チャネル制御部、前記ディスク制御部、及び前記キャッシュメモリの間のデータ転送を行うプロセッサ部と、前記チャネル制御部及び前記プロセッサ部を通信可能に接続する内部スイッチと、を備えるストレージ装置における、前記チャネル制御部を構成し、
前記メモリは、前記チャネル制御部が備えるメモリであり、
前記転送元装置は、前記キャッシュメモリであり、
前記転送先装置は、前記ホスト装置であり、
前記他の装置は、前記プロセッサ部が備えるマイクロプロセッサである
データ転送装置。
【請求項１３】
請求項１２に記載のデータ転送装置であって、
前記プロセッサ部は、メモリと複数の前記マイクロプロセッサを備え、
前記第１データ転送装置は、前記第１データ転送の終了後、前記第１転送パラメータを設定した前記マイクロプロセッサに割り当てられている前記メモリの記憶領域に前記第１データ転送についての第１終了ステータスを書き込み、
前記第２データ転送装置は、前記第２データ転送の終了後、前記第１転送パラメータを設定した前記マイクロプロセッサに割り当てられている前記メモリの記憶領域に前記第２データ転送についての第２終了ステータスを書き込む
データ転送装置。
【請求項１４】
転送元装置及びメモリと通信可能に接続され、他の装置による第１転送パラメータの設定を受け付け、受け付けた前記第１転送パラメータに従い前記転送元装置から前記メモリへの第１データ転送を行う、第１データ転送装置と、
転送先装置、前記メモリ、及び前記第１データ転送装置と通信可能に接続され、他の装置による第２転送パラメータの設定を受け付け、受け付けた前記第２転送パラメータに従い前記メモリから前記転送先装置への第２データ転送を行う、第２データ転送装置と
を備えるデータ転送制御装置を用いたデータ転送方法であって、
前記第１データ転送装置が、他の装置から前記第２転送パラメータが付帯する前記第１転送パラメータを受け付け、受け付けた前記第１転送パラメータに従い前記第１データ転送を行うとともに、前記第１転送パラメータに付帯する前記第２転送パラメータを前記第２データ転送装置に設定する
データ転送方法。
【請求項１５】
請求項１４に記載のデータ転送方法であって、
前記第１データ転送装置が、前記第１転送パラメータに従った前記第１データ転送が終了したか否かを判断し、前記第１データ転送が終了したと判断すると、前記第１転送パラメータに付帯する前記第２転送パラメータを前記第２データ転送装置に設定する
データ転送方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ転送装置及びデータ転送方法に関し、とくに複数のデータ転送装置を用いて行われるデータ転送を効率よく行えるようにするための技術に関する。
【背景技術】
【０００２】
ＤＭＡ（Direct Memory Access）等のデータ転送装置に関しては、データ転送効率向上を目的として様々な技術が提案されている。例えば、特許文献１には、第１のＤＭＡ転送チャネルの転送パラメータを制御する第１カウント制御部と第２のＤＭＡ転送チャネルの転送パラメータを制御する第２カウント制御部とを交互に制御するＤＭＡコントローラに関し、ＣＰＵによる制御を不要とし、あるデータブロックの転送終了から次のブロックの転送開始までの間に生じる遅延を解消すべく、複数のブロックのデータ転送を実行する際、第１カウント制御部のデータ転送の空きサイクル中に第２カウント制御部が次に転送すべきデータブロックの転送パラメータをメモリからロードすることが記載されている。
【０００３】
また特許文献２には、ＣＰＵ負荷を軽減すべく、ＤＭＡの転送パラメータの主記憶装置におけるアドレス情報をアドレスレジスタに記憶しておき、アドレスレジスタに記憶されているアドレス情報に基づき転送パラメータを読み出してパラメータレジスタに登録しておくことにより、ＤＭＡ転送ごとに行われていたＣＰＵへの割り込みを不要とすることが記載されている。
【０００４】
特許文献３には、第１のプロセッサと第２のプロセッサを備えた装置において、第１のプロセッサが、第１の記憶領域における記憶位置を示す情報と第２の記憶領域における記憶位置を示す情報とを含むデータ転送情報をメモリに書き込み 、第２のプロセッサがメモリからデータ転送情報を読み出し、第２のプロセッサがデータ転送情報に基づき第１の記憶領域に記憶されているデータを第２の記憶領域に転送することにより、第１のプロセッサが第２のプロセッサからの通知を待つことなく次の処理の実行に移ることができるようにすることで、第１のプロセッサ及び第２のプロセッサの効率的な利用を図ることが記載されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開平９−６２６１０号公報
【特許文献２】特開平８−７７０９９号公報
【特許文献３】特開２００５−７８５９６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
図２２は、通信可能に接続されたホスト装置３に対してデータの保管庫として機能するストレージ装置１０のハードウエア構成例である。同図に示すように、このストレージ装置１０は、チャネル制御部１１、プロセッサ部１２、キャッシュメモリ１４、及びこれらを通信可能に接続する内部スイッチ１６を備えている。
【０００７】
チャネル制御部１１は、ホスト装置３と通信する外部通信Ｉ／Ｆ１１１、内部スイッチ１６を介してプロセッサ部１２やキャッシュメモリ１４と通信する内部通信Ｉ／Ｆ１１４、及び、外部通信Ｉ／Ｆ１１１と内部通信Ｉ／Ｆ１１４との間のデータ転送におけるバッファとして機能するメモリ１１３、を備えている。外部通信Ｉ／Ｆ１１１は、第２ＤＭＡ１１１２を、内部通信Ｉ／Ｆ１１４は、第１ＤＭＡ１１４２を夫々備えている。
【０００８】
図２３は、ストレージ装置１０にて行われるデータ転送に関する動作を説明した図であり、より詳細には、チャネル制御部１１が、キャッシュメモリ１４に格納されているデータを読み出してホスト装置３に送信する際に行われる動作を説明したフローチャートである。
【０００９】
図２２及び図２３に示すように、データ転送に際し、まずプロセッサ部１２は第１ＤＭＡ１１４２に転送パラメータを設定する（Ｓ２２１１，Ｓ２３１１）。すると第１ＤＭＡ１１４２は、設定された転送パラメータに従いデータ転送（キャッシュメモリ１４に格納されているデータのメモリ１１３へのデータ転送）を開始する（Ｓ２２１２，Ｓ２３１２）。
【００１０】
データ転送の実行中、内部通信Ｉ／Ｆ１１４は、第１ＤＭＡ１１４２によるデータ転送が完了したか否かを監視しており（Ｓ２３１３）、データ転送が完了すると（Ｓ２３１３：ＹＥＳ）、その終了ステータスをプロセッサ部１２に通知する（Ｓ２２１３，Ｓ２３１４）。
【００１１】
プロセッサ部１２は、内部通信Ｉ／Ｆ１１４から終了ステータスが通知されると、第２ＤＭＡ１１１２に転送パラメータを設定し（Ｓ２２１４，Ｓ２３１５）、これにより第２ＤＭＡ１１１２が転送パラメータに従いデータ転送（メモリ１１３に格納されているデータのホスト装置３へのデータ転送）を開始する（Ｓ２２１５，Ｓ２３１６）。
【００１２】
データ転送の実行中、外部通信Ｉ／Ｆ１１１は、第２ＤＭＡ１１１２によるデータ転送が完了したか否かを監視している（Ｓ２３１７）。データ転送が完了すると（Ｓ２３１７：ＹＥＳ）、外部通信Ｉ／Ｆ１１１は終了ステータスをプロセッサ部１２に通知する（Ｓ２２１６，Ｓ２３１８）。
【００１３】
ここで上記処理においては、プロセッサ部１２が、第１ＤＭＡ１１４２及び第２ＤＭＡ１１１２の夫々に対して内部スイッチ１６を介した通信を行うことにより、夫々に転送パラメータを設定しているが、このように内部スイッチ１６を介した通信が夫々に対して行われることによりデータ転送全体の処理に遅延が生じ、ひいてはストレージ装置１０の性能（例えばホスト装置３に対するレスポンス性能やスループット性能）に影響を与えることとなる。またプロセッサ部１２は、第１ＤＭＡ１１４２からの終了ステータスの通知を待ってから第２ＤＭＡ１１１２を起動しているが、この通知も内部スイッチ１６を介して行われるために遅延が生じ、ストレージ装置１０の性能に影響を与えることとなる。
【００１４】
昨今、大規模化や冗長化によりストレージ装置１０の構成が複雑化し、データ転送を起動する側（プロセッサ部１２）と起動される側（第１ＤＭＡ１１４２、第２ＤＭＡ１１１２）との間の通信距離が拡大している。そのため、上記のような理由で生じる遅延がストレージ装置１０の性能に与える影響を必ずしも無視できない状況になってきている。
【００１５】
本発明は、このような背景に鑑みてなされたもので、複数のデータ転送装置を用いて行われるデータ転送を効率よく行うことが可能なデータ転送装置及びデータ転送方法を提供することを目的とする。
【課題を解決するための手段】
【００１６】
上記目的を達成する為の本発明の一つは、
転送元装置及びメモリと通信可能に接続され、他の装置による第１転送パラメータの設定を受け付け、受け付けた前記第１転送パラメータに従い前記転送元装置から前記メモリへの第１データ転送を行う、第１データ転送装置と、
転送先装置、前記メモリ、及び前記第１データ転送装置と通信可能に接続され、他の装置による第２転送パラメータの設定を受け付け、受け付けた前記第２転送パラメータに従い前記メモリから前記転送先装置への第２データ転送を行う、第２データ転送装置と
を備えるデータ転送制御装置における、前記第１データ転送装置として機能するデータ転送装置であって、
他の装置から前記第２転送パラメータが付帯する前記第１転送パラメータを受け付け、受け付けた前記第１転送パラメータに従い前記第１データ転送を行うとともに、前記第１転送パラメータに付帯する前記第２転送パラメータを前記第２データ転送装置に設定する
こととする。
【００１７】
その他、本願が開示する課題、及びその解決方法は、発明を実施するための形態の欄の記載、及び図面の記載等により明らかにされる。
【発明の効果】
【００１８】
本発明によれば、複数のデータ転送装置を用いて行われるデータ転送を効率よく行うことができる。
【図面の簡単な説明】
【００１９】
【図１】情報処理システム１の概略的な構成を示す図である。
【図２】ホスト装置３のハードウエア構成を示す図である。
【図３】ストレージ装置１０のハードウエア構成を示す図である。
【図４】チャネル制御部１１のハードウエア構成を示す図である。
【図５】プロセッサ部１２のハードウエア構成を示す図である。
【図６】ドライブ制御部１３のハードウエア構成を示す図である。
【図７】管理装置７のハードウエア構成を示す図である。
【図８】ストレージ装置１０が備える主な機能を示す図である。
【図９】データ書き込み処理Ｓ９００を説明するフローチャートである。
【図１０】データ読み出し処理Ｓ１０００を説明するフローチャートである。
【図１１】ホスト装置３からストレージ装置１０へのアクセス経路（パス）を説明する模式図である。
【図１２】データ書き込み要求１２００及びデータ読み出し要求１２５０のデータフォーマットの一例である。
【図１３】ストレージ装置１０にて行われるデータ転送に関する動作を説明した図である。
【図１４】図１３に示す動作の時系列的な関係を説明したフローチャートである。
【図１５】転送パラメータ１５００のデータ構造の一例である。
【図１６】図１３及び図１４とともに説明した動作に関係する内部通信Ｉ／Ｆ１１４の機能を説明した図である。
【図１７】第１ＤＭＡ用転送パラメータ１５１又は第２ＤＭＡ用転送パラメータ１５２の一例（データ１７００）である。
【図１８】第１終了ステータス又は第２終了ステータスの一例（データ１８００）である。
【図１９】第２実施形態におけるストレージ装置１０の動作を説明したフローチャートである。
【図２０】第３実施形態におけるストレージ装置１０の動作を説明したフローチャートである。
【図２１】第４実施形態におけるストレージ装置１０の動作を説明したフローチャートである。
【図２２】ストレージ装置１０のハードウエア構成の一例である。
【図２３】データ転送に関する動作の一例を説明した図である。
【発明を実施するための形態】
【００２０】
以下、図面とともに実施形態について説明する。
［第１実施形態］
図１に第１実施形態として説明する情報処理システム１の概略的な構成を示している。同図に示すように、情報処理システム１は、一つ以上のホスト装置３（外部装置）、及び一つ以上のストレージ装置１０を含んで構成されている。
【００２１】
ホスト装置３は、例えば銀行の自動預金預け払いサービスやインターネットのＷｅｂページ閲覧サービス等のサービスを提供するコンピュータである。ストレージ装置１０は、ホスト３装置にて実行されるアプリケーションプログラム等にデータの記憶領域を提供する。
【００２２】
ホスト装置３とストレージ装置１０とは、ストレージネットワーク５を介して通信可能に接続している。ストレージネットワーク５は、例えば、ＬＡＮ（Local Area Network）、ＷＡＮ（Wide Area Network）、ＳＡＮ（Storage Area Network）、インターネット、公衆通信網、専用線などである。ストレージネットワーク５を介して行われる通信は、例えば、ＴＣＰ／ＩＰ、ｉＳＣＳＩ（internet Small Computer System Interface）、ファイバーチャネルプロトコル（Fibre Channel Protocol）、ＦＩＣＯＮ（Fibre Connection）（登録商標）、ＥＳＣＯＮ（Enterprise System Connection） （登録商標）、ＡＣＯＮＡＲＣ（Advanced Connection Architecture）（登録商標）、ＦＩＢＡＲＣ（Fibre Connection Architecture）（登録商標）などのプロトコルに従って行われる。
【００２３】
ホスト装置３のハードウエアは、例えばパーソナルコンピュータ、メインフレーム（Mainframe）、オフィスコンピュータなどである。ホスト装置３は、ストレージ装置１０が提供する上記記憶領域にアクセスするに際し、データＩ／Ｏ要求（データ書き込み要求、データ読み出し要求等）を含んだデータフレーム（以下、フレームと略記する。）をストレージ装置１０に送信する。フレームは、例えばファイバーチャネルのフレーム（ＦＣフレーム（FC: Fibre Channel））である。
【００２４】
図２にホスト装置３として用いられる情報処理装置（コンピュータ）のハードウエアの一例を示している。同図に示すように、この情報処理装置は、ＣＰＵ３１、揮発性または不揮発性のメモリ３２（ＲＡＭまたはＲＯＭ）、記憶装置３３（例えばＨＤＤ（Hard Disk Drive）、半導体記憶装置（ＳＳＤ（Solid State Drive）））、キーボードやマウス等の入力装置３４、液晶モニタやプリンタ等の出力装置３５、及びＮＩＣ（Network Interface Card）やＨＢＡ（Host Bus Adapter）等の通信インタフェース（通信Ｉ／Ｆ３６と表記する。）を備えている。
【００２５】
図３にストレージ装置１０のハードウエア構成の一例を示している。ストレージ装置１０は例えばディスクアレイ装置である。同図に示すように、ストレージ装置１０は、一つ以上のチャネル制御部１１、一つ以上のプロセッサ部１２（Micro Processor）、一つ以上のドライブ制御部１３、キャッシュメモリ１４（Cache Memory）、共有メモリ１５（Shared Memory）、内部スイッチ１６、記憶装置１７、及び保守装置１８（SVP: SerVice Processor）を備えている。チャネル制御部１１、プロセッサ部１２、ドライブ制御部１３、キャッシュメモリ１４、及び共有メモリ１５は、内部スイッチ１６を介して互いに通信可能に接続されている。
【００２６】
このうちチャネル制御部１１は、ホスト装置３から送られてくるフレームを受信し、受信したフレームに含まれているデータＩ／Ｏ要求についての処理の応答（例えば読み出したデータ、読み出し完了報告、書き込み完了報告）を含むフレームをホスト装置３に送信する。
【００２７】
プロセッサ部１２は、チャネル制御部１１が受信したフレームに含まれている上記データＩ／Ｏ要求に応じてチャネル制御部１１、ドライブ制御部１３、及びキャッシュメモリ１４の間で行われるデータ転送に関する処理を行う。プロセッサ部１２は、キャッシュメモリ１４を介して行われる、チャネル制御部１１とドライブ制御部１３との間のデータ（記憶装置１７から読み出したデータ、記憶装置１７に書き込むデータ）の引き渡しや、キャッシュメモリ１４に格納されるデータのステージング（記憶装置１７からのデータの読み出し）又はデステージング（キャッシュメモリ１４のデータの記憶装置１７への書き出し）などを行う。
【００２８】
キャッシュメモリ１４は、例えば、高速アクセスが可能なＲＡＭ（Random Access Memory）を用いて構成されている。キャッシュメモリ１４には、記憶装置１７に書き込まれるデータ（以下、書き込みデータと称する。）や記憶装置１７から読み出されたデータ（以下、読み出しデータと記載する。）等が格納される。
【００２９】
共有メモリ１５には、ストレージ装置１０の制御に用いられる各種の情報が格納される。
【００３０】
ドライブ制御部１３は、記憶装置１７からのデータの読み出しや記憶装置１７へのデータの書き込みに際し記憶装置１７と通信を行う。
【００３１】
内部スイッチ１６は、例えば高速クロスバースイッチ（Cross Bar Switch）を用いて構成される。内部スイッチ１６を介して行われる通信は、ファイバーチャネル、ｉＳＣＳＩ、ＴＣＰ／ＩＰ等のプロトコルに従って行われる。
【００３２】
記憶装置１７は、物理的な記憶媒体である複数の物理ドライブ１７１を備えて構成されている。物理ドライブ１７１は、ＳＡＳ（Serial Attached SCSI）、ＳＡＴＡ（Serial ATA）、ＦＣ（Fibre Channel）、ＰＡＴＡ（Parallel ATA）、ＳＣＳＩなどの形式のハードディスクドライブ、半導体記憶装置（ＳＳＤ）などのハードウエアを用いて構成されている。尚、記憶装置１７は、ストレージ装置１０と同一の筐体に収容されていてもよいし、ストレージ装置１０とは別の筐体に収容されていてもよい。
【００３３】
図４にチャネル制御部１１のハードウエア構成を示している。同図に示すように、チャネル制御部１１は、ホスト装置３と通信するための一つ以上のポート（通信ポート）を備えた外部通信インタフェース（以下、外部通信Ｉ／Ｆ１１１（第２データ転送装置）と表記する。）、メモリ１１３、及びプロセッサ部１２と通信するためのポート（通信ポート）を有する内部通信インタフェース（以下、内部通信Ｉ／Ｆ１１４（第１データ転送装置）と表記する。）を備えている。
【００３４】
外部通信Ｉ／Ｆ１１１は、ストレージネットワーク５における通信に用いられる通信規約（通信プロトコル）に従いストレージネットワーク５を介してホスト装置３と通信する。同図に示すように、外部通信Ｉ／Ｆ１１１は、ＣＰＵ（Central Processing Unit）、ＭＰＵ（Micro Processing Unit）、もしくはＡＳＩＣ（Application Specific Integrated Circuit）などの半導体装置（又は半導体集積回路）を用いて構成される制御装置（以下、第２制御装置１１１１と称する。）と、ＤＭＡ（Direct Memory Access）（以下、第２ＤＭＡ１１１２と称する。）とを備える。尚、第２ＤＭＡ１１１２は、第２制御装置１１１１の内部に組み込まれていてもよいし、第２制御装置１１１１とは別体（別のパッケージ）であってもよい。
【００３５】
第２制御装置１１１１は、ホスト装置３や内部通信Ｉ／Ｆ１１４と通信する。また第２制御装置１１１１は、第２ＤＭＡ１１１２を制御して、メモリ１１３に格納されているデータをホスト装置３に転送する。また第２制御装置１１１１は、第２ＤＭＡ１１１２を制御して、ホスト装置３から送られてくるデータをメモリ１１３に格納する。
【００３６】
内部通信Ｉ／Ｆ１１４は、内部スイッチ１６を介して、プロセッサ部１２、ドライブ制御部１３、キャッシュメモリ１４、及び共有メモリ１５と通信する。同図に示すように、内部通信Ｉ／Ｆ１１４は、ＣＰＵ、ＭＰＵ、もしくはＡＳＩＣなどの半導体装置（又は半導体集積回路）を用いて構成される制御装置（以下、第１制御装置１１４１と称する。）と、ＤＭＡ（以下、第１ＤＭＡ１１４２と称する。）とを備える。尚、第１ＤＭＡ１１４２は、第１制御装置１１４１の内部に組み込まれていてもよいし、第１制御装置１１４１とは別体（別のパッケージ）であってもよい。
【００３７】
第１制御装置１１４１は、第１ＤＭＡ１１４２を制御して、メモリ１１３に格納されているデータをキャッシュメモリ１４に転送する。また第１制御装置１１４１は、第１ＤＭＡ１１４２を制御して、キャッシュメモリ１４に格納されているデータをメモリ１１３に転送する。
【００３８】
メモリ１１３は、ＲＯＭ（Read Only Memory）及びＲＡＭ（Random Access Memory）を含む。メモリ１１３は、外部通信Ｉ／Ｆ１１１と内部通信Ｉ／Ｆ１１４との間、並びに内部通信Ｉ／Ｆ１１４とキャッシュメモリ１４との間で行われるデータ転送に際してデータの一時的な格納領域（データバッファ）を提供する。メモリ１１３にはマイクロプログラムが格納されている。外部通信Ｉ／Ｆ１１１又は内部通信Ｉ／Ｆ１１４が、メモリ１１３からマイクロプログラムを読み出して実行することにより、チャネル制御部１１が提供する各種の機能が実現される。
【００３９】
図５にプロセッサ部１２のハードウエア構成を示している。プロセッサ部１２は、一つ以上のマイクロプロセッサ（Micro Processor）（以下、ＭＰ１２２と称する。）、及びローカルメモリ（Local Memory）（以下、ＬＭ１２３と称する。）を備えている。ＭＰ１２２は、ＣＰＵ、ＭＰＵ、ＡＳＩＣ等を用いて構成されている。ＬＭ１２３にはマイクロプログラムが格納されている。ＭＰ１２２が、ＬＭ１２３から上記マイクロプログラムを読み出して実行することにより、プロセッサ部１２が提供する各種の機能が実現される。
【００４０】
尚、ＭＰ１２２及びＬＭ１２３は、多対一の関係（例えば複数ＭＰ１２２が共通のＬＭ１２３を利用する場合）、多対多の関係（例えばＭＰ１２２ごとに異なるＬＭ１２３が設けられる場合）などストレージ装置１０の種類に応じて様々な態様で設けられる。
【００４１】
図６にドライブ制御部１３のハードウエア構成を示している。ドライブ制御部１３は、内部通信インタフェース（以下、内部通信Ｉ／Ｆ１３１と表記する。）、メモリ１３３、及びドライブインタフェース（以下、ドライブＩ／Ｆ１３４と表記する。）を備えている。
【００４２】
内部通信Ｉ／Ｆ１３１は、ＣＰＵ、ＭＰＵ、ＡＳＩＣ等を用いて構成される演算制御装置と、ＤＭＡとを備える。尚、ＤＭＡは、演算制御装置の内部に組み込まれていてもよいし、演算制御装置とは別体（別のパッケージ）であってもよい。内部通信Ｉ／Ｆ１３１は、内部スイッチ１６を介して、チャネル制御部１１、プロセッサ部１２、キャッシュメモリ１４、及び共有メモリ１５と通信する。
【００４３】
ドライブＩ／Ｆ１３４は、所定の通信方式に従って記憶装置１７と通信する。
【００４４】
メモリ１３３は、ＲＯＭ及びＲＡＭを含む。メモリ１３３は、内部通信Ｉ／Ｆ１３１とドライブＩ／Ｆ１３４との間、並びに内部通信Ｉ／Ｆ１３１とキャッシュメモリ１４との間で行われるデータ転送に際してデータの一時的な格納領域（データバッファ）を提供する。メモリ１３３にはマイクロプログラムが格納されている。内部通信Ｉ／Ｆ１３１又はドライブＩ／Ｆ１３４が、メモリ１３３からマイクロプログラムを読み出して実行することにより、ドライブ制御部１３が提供する各種の機能が実現される。
【００４５】
図３に示す保守装置１８は、ストレージ装置１０の各構成要素の制御や状態監視を行う。保守装置１８は、パーソナルコンピュータやオフィスコンピュータ等である。保守装置１８は、内部スイッチ１６又はＬＡＮ等の通信手段を介してチャネル制御部１１、プロセッサ部１２、ドライブ制御部１３、キャッシュメモリ１４、共有メモリ１５、及び内部スイッチ１６等のストレージ装置１０の構成要素と随時通信を行い、各構成要素から稼働情報等を取得して管理装置７に提供する。また保守装置１８は管理装置７から送られてくる制御情報や稼働情報に基づき、各構成要素の設定や制御、保守（ソフトウエアの導入や更新を含む）を行う。
【００４６】
管理装置７は、保守装置１８とＬＡＮ等を介して通信可能に接続されるコンピュータである。管理装置７はストレージ装置１０の制御や監視のためのＧＵＩ（Graphical User Interface）やＣＬＩ（Command Line Interface）等を用いたユーザインタフェースを備える。
【００４７】
図７は管理装置７として利用可能な情報処理装置（コンピュータ）のハードウエアの一例である。同図に示すように、この装置は、ＣＰＵ７１、揮発性または不揮発性のメモリ７２（ＲＡＭまたはＲＯＭ）、記憶装置７３（例えばＨＤＤ（Hard Disk Drive）、半導体記憶装置（ＳＳＤ（Solid State Drive）））、キーボードやマウス等の入力装置７４、液晶モニタやプリンタ等の出力装置７５、及び保守装置１８と通信するための通信インタフェース（通信Ｉ／Ｆ７６）を備えている。
【００４８】
図８にストレージ装置１０の基本的な機能を示している。同図に示すように、ストレージ装置１０は、記憶装置１７へのデータの書き込みに関する処理を行う書き込み処理部８１１、及び記憶装置１７からのデータの読み出しに関する処理を行う読み出し処理部８１２からなるＩ／Ｏ処理部８１を備える。
【００４９】
図９は、ストレージ装置１０がホスト装置３からデータ書き込み要求を含んだフレームを受信した場合に、Ｉ／Ｏ処理部８１の書き込み処理部８１１が行う基本的な処理（以下、書き込み処理Ｓ９００と称する。）を説明するフローチャートである。以下、同図とともに書き込み処理Ｓ９００について説明する。尚、以下の説明において、符号の前に付している「Ｓ」の文字はステップを意味する。
【００５０】
ホスト装置３から送信されてくるデータ書き込み要求のフレームは、ストレージ装置１０のチャネル制御部１１によって受信される（Ｓ９１１，Ｓ９１２）。チャネル制御部１１はフレームを受信するとその旨をプロセッサ部１２に通知する（Ｓ９１３）。
【００５１】
プロセッサ部１２は、チャネル制御部１１から上記通知を受信すると（Ｓ９２１）、当該フレームのデータ書き込み要求に基づくドライブ書き込み要求を生成し、書き込みデータをキャッシュメモリ１４に格納する。次にプロセッサ部１２は、生成したドライブ書き込み要求をドライブ制御部１３に送信する（Ｓ９２２，Ｓ９２３）。チャネル制御部１１は、ホスト装置３に完了報告を送信し（Ｓ９１４）、ホスト装置３は完了報告を受信する（Ｓ９１５）。
【００５２】
ドライブ制御部１３は、ドライブ書き込み要求を受信すると書き込み処理待ちキューに登録する（Ｓ９２４）。ドライブ制御部１３は、書き込み処理待ちキューからドライブ書き込み要求を随時読み出す（Ｓ９２５）。ドライブ制御部１３は、読み出したドライブ書き込み要求に指定されている書き込みデータをキャッシュメモリ１４から読み出し、読み出した書き込みデータを物理ドライブ１７１に書き込む（Ｓ９２６）。  
【００５３】
次にドライブ制御部１３は、ドライブ書き込み要求について書き込みデータの書き込みが完了した旨の報告（完了報告）をプロセッサ部１２に通知し（Ｓ９２７）、プロセッサ部１２は送られてきた完了報告を受信する（Ｓ９２８）。
【００５４】
図１０はストレージ装置１０がホスト装置３からデータ読み出し要求を含んだフレームを受信した場合にストレージ装置１０のＩ／Ｏ処理部８１の読み出し処理部８１２によって行われるＩ／Ｏ処理（以下、読み出し処理Ｓ１０００と称する。）を説明するフローチャートである。以下、同図とともに読み出し処理Ｓ１０００について説明する。
【００５５】
ホスト装置３から送信されてくるフレームは、ストレージ装置１０のチャネル制御部１１によって受信される（Ｓ１０１１，Ｓ１０１２）。チャネル制御部１１は、ホスト装置３からフレームを受信すると、その旨をドライブ制御部１３に通知する。
【００５６】
ドライブ制御部１３は、チャネル制御部１１から上記通知を受信すると（Ｓ１０１３）、当該フレームに含まれているデータ読み出し要求に指定されているデータ（例えばＬＢＡ（Logical Block Address）によって指定される）を、記憶装置１７（物理ドライブ１７１）から読み出す（Ｓ１０１４）。尚、キャッシュメモリ１４に読み出しデータが存在する場合（キャッシュヒットした場合）には、記憶装置１７からの読み出し処理（Ｓ１０１４）は省略される。プロセッサ部１２は、ドライブ制御部１３によって読み出されたデータをキャッシュメモリ１４に書き込む（Ｓ１０１５）。プロセッサ部１２は、キャッシュメモリ１４に書き込んだデータを通信Ｉ／Ｆに随時転送する（Ｓ１０１６）。
【００５７】
チャネル制御部１１は、プロセッサ部１２から送られてくる読み出しデータをホスト装置３に順次送信する（Ｓ１０１７，Ｓ１０１８）。読み出しデータの送信が完了すると、チャネル制御部１１はホスト装置３に完了報告を送信し（Ｓ１０１９）、ホスト装置３は送られてきた完了報告を受信する（Ｓ１０２０）。
【００５８】
ホスト装置３の通信Ｉ／Ｆ３６が備える通信ポート（以下、ホストポートと称する。）には、ストレージネットワーク５に接続している機器を識別するための識別情報であるポートＩＤ（例えばＷＷＮ（World Wide Name））が付与されている。ポートＩＤは、通信Ｉ／Ｆ３６が有する通信ポートのそれぞれに付与されている。従って、例えばストレージネットワーク５に接続するための通信ポートを複数備える通信Ｉ／Ｆ３６は夫々の通信ポートに異なるポートＩＤが付与される。
【００５９】
一方、ストレージ装置１０のチャネル制御部１１がストレージネットワーク５に接続するために備える通信ポート（以下、ストレージポートと称する。）にもポートＩＤ（例えばＷＷＮやＭＡＣアドレス）が付与されている。
【００６０】
以下ホスト装置３の通信Ｉ／Ｆ３６に付与されているポートＩＤのことをホストポートＩＤと、チャネル制御部１１が備える通信ポートの夫々に付与されているポートＩＤのことをチャネルポートＩＤと称する。
【００６１】
ストレージ装置１０は、物理ドライブ１７１の記憶領域を予め定められた割当単位（以下、物理ページと称する。）で割り当てることにより構成される論理的な記憶領域である論理ユニット（ＬＵ：Logical Unit）を単位として、物理ドライブ１７１の記憶領域をホスト装置３に提供する。例えば論理ユニットは、ホスト装置３にインストールされているオペレーティングシステムにおいてデバイスファイル(Device File）やドライブレター（ドライブ名）に対応づけられる。論理ユニットの夫々には論理ユニットごとに固有の識別子である論理ユニット番号（ＬＵＮ（Logical Unit Number)）が付与される。ホスト装置３は、ＬＵＮにより論理ユニットを特定する。ＬＵＮは例えばホスト装置３からストレージ装置１０に送信されるデータ入出力要求に設定される。
【００６２】
ストレージ装置１０は、物理ドライブ１７１が提供する物理的な記憶領域（以下、物理記憶領域と称する）を、この物理記憶領域を用いて論理的に設定される記憶領域である論理デバイス（ＬＤＥＶ（Logical Device））を単位として認識している。各論理デバイスには、論理デバイスごとに固有の論理デバイス番号（ＬＤＥＶ番号）が識別子として付与されている。論理デバイスの記憶領域は、例えば複数のハードウエアをＲＡＩＤ（Redundant Arrays of Inexpensive （or Independent) Disks）方式（ＲＡＩＤ０〜６の少なくともいずれか）で制御することによって構成されている。
【００６３】
図１１は、ホスト装置３からストレージ装置１０へのアクセス経路（パス）を説明する模式図である。同図に示すように、ホスト装置３からストレージ装置１０へのアクセス経路は、ホストポートＩＤ（ホストポート１、ホストポート２、・・・）、ストレージポートＩＤ（ストレージポート１、ストレージポート２、・・・）、ＬＵＮ（ＬＵＮ１、ＬＵＮ２、・・・）及びＬＤＥＶ番号（ＬＤＥＶ１、ＬＤＥＶ２、・・・）の組み合わせによって特定することができる。
【００６４】
図１２にストレージ装置１０の記憶装置１７にデータの書き込みを行おうとする際、ホスト装置３がストレージ装置１０に送信するデータ書き込み要求１２００のデータフォーマットの一例、及び、ストレージ装置１０の記憶装置１７からデータを読み出そうとする際、ホスト装置３がストレージ装置１０に送信するデータ読み出し要求１２５０のデータフォーマットの一例を示している。
【００６５】
同図に示すように、データ書き込み要求１２００には、Ｉ／Ｏコマンド１２１１、ＬＵＮ１２１２、アドレス１２１３、送信元ポートＩＤ１２１４、及び書き込みデータ１２１５などの情報が含まれている。このうちＩ／Ｏコマンド１２１１には、ストレージ装置１０にデータの書き込みを要求するコマンドが設定される。ＬＵＮ１２１２には、データの書き込み先の論理ユニットのＬＵＮが設定される。アドレス１２１３には、データの書き込み先となる記憶領域を指定するアドレスが設定される。送信元ポートＩＤ１２１４には、当該要求の送信元のホスト装置３の通信Ｉ／Ｆ３６に付与されているホストポートＩＤが設定される。書き込みデータ１２１５には、当該要求により記憶装置１７に書き込もうとする書き込みデータが設定される。
【００６６】
また同図に示すように、データ読み出し要求１２５０には、Ｉ／Ｏコマンド１２５１、ＬＵＮ１２５２、アドレス１２５３、送信元ポートＩＤ１２５４、及びデータサイズ１２５５等の情報が含まれている。このうちＩ／Ｏコマンド１２５１には、ストレージ装置１０にデータの読み出しを要求するコマンドが設定される。ＬＵＮ１２５２には、データの読み出し先の論理ユニットのＬＵＮが設定される。アドレス１２５３には、データの読み出し先となる記憶領域を指定するアドレスが設定される。送信元ポートＩＤ１２５４には、当該要求の送信元のホスト装置３の通信Ｉ／Ｆ３６に付与されているホストポートＩＤが設定される。データサイズ１２５５には、当該要求によって記憶装置１７から読み出そうとしているデータのデータサイズが設定される。
【００６７】
図１３は、ストレージ装置１０にて行われるデータ転送に関する動作を説明した図であり、チャネル制御部１１（データ転送制御装置）がキャッシュメモリ１４（転送元装置）に格納されているデータを読み出してホスト装置３（転送先装置）に送信する際に行われる動作を説明した図である。また図１４は、図１３に示す動作の時系列的な関係を説明したフローチャートである。
【００６８】
これらの図に示す動作は、例えば、ホスト装置３から送られてくるデータ読み出し要求１２５０に応じて行われ、例えば、図１０のＳ１０１６〜Ｓ１０１７の処理に際して行われる動作である。以下、図１３及び図１４とともに説明する。
【００６９】
まずプロセッサ部１２のＭＰ１２２（他の装置）は、第１ＤＭＡ１１４２にデータ転送パラメータ（以下、転送パラメータ１５００と称する。）を設定する（Ｓ１３１１，Ｓ１４１１）。この転送パラメータ１５００によるデータ転送の対象となるデータは、例えば、ドライブ制御部１３によってキャッシュメモリ１４にステージングされたデータである。
【００７０】
尚、第１ＤＭＡ１１４２に対する転送パラメータ１５００は、このようにＭＰ１２２が第１ＤＭＡ１１４２に対して直接設定するようにしてもよいし、ＭＰ１２２から第１制御装置１１４１に転送パラメータ１５００を送信し、これを受信した第１制御装置１１４１が第１ＤＭＡ１１４２に対して転送パラメータ１５００を設定するように、つまりＭＰ１２２が、第１制御装置１１４１を介して第１ＤＭＡ１１４２に転送パラメータ１５００を設定するようにしてもよい。
【００７１】
尚、ホスト装置３から送られてくるデータ読み出し要求１２５０に応じて上記動作が行われる場合、転送パラメータ１５００の設定はそのデータ読み出し要求１３００について必要な回数だけ繰り返し行われる。必要な回数は、例えば、ＣＣＷ（Channel Command Word）チェインを構成しているＣＣＷの数に対応した回数である。
【００７２】
図１５に上記転送パラメータ１５００のデータ構造を示す。同図に示すように、転送パラメータ１５００には、第１ＤＭＡ１１４２のデータ転送のためのパラメータ（以下、第１ＤＭＡ用転送パラメータ１５１（第１転送パラメータ）と称する。）に加えて、第２ＤＭＡ１１１２のデータ転送のためのパラメータ（以下、第２ＤＭＡ用転送パラメータ１５２（第２転送パラメータ）と称する。）が付帯している。同図に示しているように、第２ＤＭＡ用転送パラメータ１５２は、例えば、転送パラメータ１５００のデータフォーマットの空き領域１５５に設定される。
【００７３】
第１ＤＭＡ用転送パラメータ１５１は、第１転送元情報１５１１及び第１転送先情報１５１２を含む。第１転送元情報１５１１には、第１ＤＭＡ１１４２によるデータ転送についてのデータの転送元を示す情報が設定される。第１転送先情報１５１２には、第１ＤＭＡ１１４２によるデータ転送についてのデータの転送先を示す情報が設定される。
【００７４】
例えば、第１ＤＭＡ１１４２によるデータ転送の転送方向が、キャッシュメモリ１４からメモリ１１３である場合には、第１転送元情報１５１１にはキャッシュメモリ１４のアドレスが、第１転送先情報１５１２にはメモリ１１３のアドレスが、夫々設定されることになる。また例えば、第１ＤＭＡ１１４２によるデータ転送の転送方向が、メモリ１１３からキャッシュメモリ１４である場合には、第１転送元情報１５１１にはメモリ１１３のアドレスが、第１転送先情報１５１２にはキャッシュメモリ１４のアドレスが、夫々設定されることになる。
【００７５】
第２ＤＭＡ用転送パラメータ１５２は、第２転送元情報１５２１及び第２転送先情報１５２２を含む。第２転送元情報１５２１には、第２ＤＭＡ１１１２によるデータ転送についてのデータの転送元を示す情報が設定される。第２転送先情報１５２２には、第２ＤＭＡ１１１２によるデータ転送についてのデータの転送先を示す情報が設定される。
【００７６】
例えば、第２ＤＭＡ１１１２によるデータ転送の転送方向が、メモリ１１３からホスト装置３である場合には、第２転送元情報１５２１にはメモリ１１３のアドレスが、第２転送先情報１５２２にはホスト装置３側の転送先のデータの格納位置を示す情報が、夫々設定されることになる。また例えば、第２ＤＭＡ１１１２によるデータ転送の転送方向が、ホスト装置３からメモリ１１３である場合には、第２転送元情報１５２１にはホスト装置３の転送元のデータの格納位置を示す情報が、第２転送先情報１５２２にはメモリ１１３のアドレスが、夫々設定されることになる。
【００７７】
第１ＤＭＡ用転送パラメータ１５１及び第２ＤＭＡ用転送パラメータ１５２の内容は、キャッシュメモリ１４の記憶領域の管理方法やメモリ１１３の記憶領域の管理方法など、ストレージ装置１０におけるデータの管理方法に応じて設定される。
【００７８】
第１ＤＭＡ１１４２の転送パラメータ１５００が設定されると（Ｓ１３１１，Ｓ１４１１）、内部通信Ｉ／Ｆ１１４は、転送パラメータ１５００の制御フラグ１５３の内容を参照する（Ｓ１４１２）。
【００７９】
上記制御フラグ１５３には、その転送パラメータ１５００に第２ＤＭＡ用転送パラメータ１５２が設定されているか否かを示す情報が設定される。制御フラグ１５３の内容はＭＰ１２２が設定する。ＭＰ１２２は、転送パラメータ１５００によって第１ＤＭＡ１１４２のみを起動させる場合は制御フラグ１５３に「オフ」を、第１ＤＭＡ１１４２によるデータ転送に後続して第２ＤＭＡ１１１２によるデータ転送を行う場合は制御フラグ１５３に「オン」を設定する。従って、制御フラグ１５３に「オン」が設定されている場合は転送パラメータ１５００に第２ＤＭＡ用転送パラメータ１５２が設定されることになる。
【００８０】
Ｓ１４１２において、制御フラグ１５３に「オン」が設定されていた場合（Ｓ１４１２：オン）、内部通信Ｉ／Ｆ１１４は転送パラメータ１５００に付帯する第２ＤＭＡ用転送パラメータ１５２をメモリ１１３又は内部通信Ｉ／Ｆ１１４が備える記憶領域に記憶する（Ｓ１４１３）。Ｓ１４１２において、制御フラグ１５３に「オフ」が設定されていた場合（Ｓ１４１２：オフ）はＳ１４１４に進む。
【００８１】
Ｓ１４１４（Ｓ１３１２）では、第１ＤＭＡ１１４２が、転送パラメータ１５００の第１ＤＭＡ用転送パラメータ１５１に基づくデータ転送（キャッシュメモリ１４に格納されているデータのメモリ１１３への転送（第１データ転送））を開始する。
【００８２】
データ転送の実行中、内部通信Ｉ／Ｆ１１４は、データ転送が完了したか否かをリアルタイムに監視する（Ｓ１４１５）。内部通信Ｉ／Ｆ１１４は、第１ＤＭＡ１１４２によるデータ転送が完了したと判断すると（Ｓ１４１５：ＹＥＳ）、終了ステータス（以下、第１終了ステータスと称する。）をＭＰ１２２のＬＭ１２３に書き込む（Ｓ１４１６，Ｓ１３１３）。これによりＭＰ１２２は第１ＤＭＡ１１４２によるデータ転送が終了したことを知ることができる。
【００８３】
Ｓ１４１７では、内部通信Ｉ／Ｆ１１４が制御フラグ１５３の内容を参照する（Ｓ１４１７）。制御フラグ１５３に「オン」が設定されていれば（Ｓ１４１７：オン）、内部通信Ｉ／Ｆ１１４はＳ１４１３にて記憶した第２ＤＭＡ用転送パラメータ１５２を外部通信Ｉ／Ｆ１１１の第２ＤＭＡ１１１２に設定する（Ｓ１３１４，Ｓ１４１８）。
【００８４】
尚、第２ＤＭＡ１１１２に対する第２ＤＭＡ用転送パラメータ１５２の設定は、このように内部通信Ｉ／Ｆ１１４が第２ＤＭＡ１１１２に対して直接行うようにしてもよいし、第２ＤＭＡ１１１２から第２制御装置１１１１に第２ＤＭＡ用転送パラメータ１５２を送信し、これを受信した第２制御装置１１１１が第２ＤＭＡ１１１２に対して第２ＤＭＡ用転送パラメータ１５２を設定するように、つまり第２制御装置１１１１を介して間接的に第２ＤＭＡ１１１２に第２ＤＭＡ用転送パラメータ１５２を設定するようにしてもよい。
【００８５】
Ｓ１４１７において、制御フラグ１５３に「オフ」が設定されていた場合には（Ｓ１４１７：オフ）、処理が終了する。尚、ＬＭ１２３に書き込まれた第１終了ステータスはＭＰ１２２によって適宜参照される（Ｓ１４３１）。
【００８６】
内部通信Ｉ／Ｆ１１４によって第２ＤＭＡ用転送パラメータ１５２が設定されると（Ｓ１３１４，Ｓ１４１８）、第２ＤＭＡ１１１２は、第２ＤＭＡ用転送パラメータ１５２に基づきデータ転送（メモリ１１３に格納されているデータのホスト装置３への転送（第２データ転送））を開始する（Ｓ１３１５，Ｓ１４１９）。
【００８７】
データ転送の実行中、外部通信Ｉ／Ｆ１１１は、データ転送が完了したか否かをリアルタイムに監視する（Ｓ１４２０）。データ転送が完了すると（Ｓ１４２０：ＹＥＳ）、外部通信Ｉ／Ｆ１１１は、その終了ステータス（以下、第２終了ステータスと称する。）をＭＰ１２２のＬＭ１２３に書き込む（Ｓ１３１６，Ｓ１４２１）。尚、ＬＭ１２３に書き込まれた第１終了ステータス及び第２終了ステータスはＭＰ１２２によって適宜参照される（Ｓ１４３２）。
【００８８】
以上に説明したように、本実施形態のストレージ装置１０においては、チャネル制御部１１が備える第１ＤＭＡ１１４２と第２ＤＭＡ１１１２とを用いてキャッシュメモリ１４に格納されているデータをホスト装置３に送信する際、ＭＰ１２２が第１ＤＭＡ１１４２のための転送パラメータ１５００の空き領域１５５に第２ＤＭＡ用転送パラメータ１５２を記述して送信し、第１ＤＭＡ１１４２のデータ転送が終了すると内部通信Ｉ／Ｆ１１４が第２ＤＭＡ１１１２に第２ＤＭＡ用転送パラメータ１５２を設定して第２ＤＭＡ１１１２を起動する。
【００８９】
このように本実施形態のストレージ装置１０においては、ＭＰ１１２が第２ＤＭＡ１１１２に第２ＤＭＡ用転送パラメータ１５２を設定するのではなく、第１ＤＭＡ１１４２が第２ＤＭＡ１１１２に第２ＤＭＡ用転送パラメータ１５２を設定して第２ＤＭＡ１１１２を起動させる。このため、第１ＤＭＡ１１４２のデータ転送が終了した後に速やかに第２ＤＭＡ１１１２を起動させることができる。これによれば、データ転送を起動する側（プロセッサ部１２）と起動される側（第１ＤＭＡ１１４２、第２ＤＭＡ１１１２）との通信距離が長い場合でも、キャッシュメモリ１４に格納されているデータのホスト装置３へのデータ転送を高速に行うことができ、ストレージ装置１０のホスト装置３に対するレスポンス性能やスループットを向上させることができる。
【００９０】
また制御フラグ１５３を設定することにより、ＭＰ１２２にて内部通信Ｉ／Ｆ１１４により第２ＤＭＡ１１１２の起動（Ｓ１３１４，Ｓ１４１８）させるか否かを制御することができる。
【００９１】
以上の説明はチャネル制御部１１が備える第１ＤＭＡ１１４２と第２ＤＭＡ１１１２とによってキャッシュメモリ１４に格納されているデータをホスト装置３に送信する場合であったが、以上に説明した仕組みは他の様々な場面に適用することができる。例えば、ストレージ装置１０が、ホスト装置３から送られてくるデータ書き込み要求１２００に従いホスト装置３から送られてくる書き込みデータをキャッシュメモリ１４に格納する場面（例えば図９のＳ９１１〜Ｓ９１３、Ｓ９２１、Ｓ９２２にて行われる動作）に適用することができる。この場合には、例えば、第２ＤＭＡ１１１２の第２ＤＭＡ用転送パラメータ１５２の転送パラメータ１５００をＭＰ１２２が設定する際、その転送パラメータ１５００の空き領域１５５に第１ＤＭＡ用転送パラメータ１５１を付帯させて送信するようにし、第２ＤＭＡ用転送パラメータ１５２に基づく自身のデータ転送の終了に際して第２ＤＭＡ１１１２が（ＭＰ１２２を介さずに）第１ＤＭＡ１１４２に第１ＤＭＡ用転送パラメータ１５１を設定して第１ＤＭＡ１１４２を起動するようにする。
【００９２】
尚、以上に説明した構成は、例えばドライブ制御部１３の内部通信Ｉ／Ｆ１３１及びドライブＩ／Ｆ１３４の夫々が備えるＤＭＡによって行われる、記憶装置１７とキャッシュメモリ１４との間のデータ転送にも応用することができる。また以上に説明した構成の適用範囲はストレージ装置１０の技術分野に限られず、バッファを介して複数のデータ転送主体が連携してデータ転送を行う様々な場面に応用することができる。
【００９３】
データ転送主体はＤＭＡに限られず、転送パラメータを設定して外部から起動される他の種類のデータ転送主体とすることもできる。
【００９４】
図１６は、図１３及び図１４とともに説明した動作に関係する内部通信Ｉ／Ｆ１１４の機能を説明した図である。同図において、「Ｓ」の文字が付された符号はいずれも図１３又は図１４に示した符号と対応している。
【００９５】
内部通信Ｉ／Ｆ１１４は、転送パラメータＩ／Ｆ１６１、転送パラメータ処理部１６２、及びデータ転送部１６３の各機能を有する。同図に示すように、転送パラメータ処理部１６２は、少なくともプロセッサ部１２が備えるＭＰ１２２の数に対応する数以上のバッファ１６２１（同図では「ＢＦ」と表記している。）を有する。
【００９６】
データ転送部１６３は、第１通信Ｉ／Ｆ１６３１、メモリＩ／Ｆ１６３２、及び第２通信Ｉ／Ｆ１６３３を備える。尚、これらの機能は、内部通信Ｉ／Ｆ１１４が備えるハードウエアによって、もしくは内部通信Ｉ／Ｆ１１４の第１制御装置１１４１が、内部通信Ｉ／Ｆ１１４やメモリ１１３に保持されているプログラムを読み出して実行することにより実現される。
【００９７】
転送パラメータＩ／Ｆ１６１は、プロセッサ部１２が備える一つ以上のＭＰ１２２のうちのいずれかのＭＰ１２２から送られてくる転送パラメータ１５００を受信し、受信した転送パラメータ１５００を、そのＭＰ１２２に対応するバッファ１６２１に格納する（Ｓ１３１１，Ｓ１４１１）。
【００９８】
転送パラメータ１５００がバッファ１６２１に格納されると、データ転送部１６３は、転送パラメータ１５００の第１ＤＭＡ用転送パラメータ１５１に基づき、メモリＩ／Ｆ１６３２及び第２通信Ｉ／Ｆ１６３３によりデータ転送（キャッシュメモリ１４に格納されているデータのメモリ１１３へのデータ転送）を開始する（Ｓ１３１２，Ｓ１４１４）。
【００９９】
転送パラメータ処理部１６２は、第１ＤＭＡ１１４２によるデータ転送が完了すると、第１終了ステータスをＭＰ１２２のＬＭ１２３に書き込む（Ｓ１３１３，Ｓ１４１６）。尚、プロセッサ部１２が複数のＭＰ１２２を備えている場合には、Ｓ１３１１（Ｓ１４１１）にて転送パラメータ１５００の設定を行ったＭＰ１２２に割り当てられているＬＭ１２３の記憶領域に第１終了ステータスを書き込む。
【０１００】
制御フラグ１５３に「オン」が設定されている場合（Ｓ１４１２）、転送パラメータ処理部１６２は、バッファ１６２１に保持されている第２ＤＭＡ用転送パラメータ１５２を外部通信Ｉ／Ｆ１１１の第２ＤＭＡ１１１２に設定して第２ＤＭＡ１１１２を起動する（Ｓ１３１４，Ｓ１４１８）。第２ＤＭＡ１１１２は、第２ＤＭＡ用転送パラメータ１５２に基づきデータ転送（メモリ１１３に格納されているデータのホスト装置３へのデータ転送）を開始する（Ｓ１３１５，Ｓ１４１９）。
【０１０１】
第２ＤＭＡ１１１２によるデータ転送が完了すると（Ｓ１４２０：ＹＥＳ）、外部通信Ｉ／Ｆ１１１は、第２終了ステータスをＭＰ１２２のＬＭ１２３に書き込む（Ｓ１３１６，Ｓ１４２１）。尚、プロセッサ部１２が複数のＭＰ１２２を備えている場合には、Ｓ１３１１（Ｓ１４１１）にて転送パラメータ１５００の設定を行ったＭＰ１２２に割り当てられているＬＭ１２３の記憶領域に第２終了ステータスを書き込む。
【０１０２】
図１７に第１ＤＭＡ用転送パラメータ１５１（第２ＤＭＡ用転送パラメータ１５２も同様）の一例（データ１７００）を示す。同図に示すように、このデータ１７００には、転送バイト数１７１１、転送元アドレス１７１２、転送先アドレス１７１３、転送方向１７１４、誤り検出符号１７１５、チェインフラグ１７１６などの情報が含まれる。このデータ１７００は、例えば、１０ワード（＝４バイト）のデータ長を有する。尚、データ１７００のデータ長は必ずしもこの値に限定されない。データ長は可変長であってもよい。
【０１０３】
転送バイト数１７１１には転送対象となるデータのデータ長が設定される。転送元アドレス１７１２には第１転送元情報１５１１や第２転送元情報１５２１が設定される。転送先アドレス１７１３には第１転送先情報１５１２や第２転送先情報１５２２が設定される。転送方向１７１４にはデータ転送の方向を示す情報、例えば、キャッシュメモリ１４からメモリ１１３へのデータ転送であるのか、メモリ１１３からキャッシュメモリ１４へのデータ転送であるのかを示す情報が設定される。
【０１０４】
誤り検出符号１７１５には、転送対象となるデータの誤り検出符号（例えばＣＲＣ（Cyclic Redundancy Check）符号やＬＲＣ（Longitudinal Redundancy Check)符号）が設定される。誤り検出符号によって誤りが検出された場合、チャネル制御部１１は、例えばデータ転送を中止して保守装置１８にエラー情報を出力する。チェインフラグ１７１６には、例えば、ＣＣＷチェインにおける後続のＣＣＷの存在有無を示す情報が設定される。
【０１０５】
図１８に第１終了ステータス又は第２終了ステータスの一例（データ１８００）を示している。同図に示すように、このデータ１８００には、転送終了フラグ１８１１、障害情報１８１２、誤り検出符号１８１３などの情報が含まれる。
【０１０６】
このうち転送終了フラグ１８１１には、データ転送が終了したか否かを示す値が設定される。障害情報１８１２には、データ転送に際し何等かの障害が発生した場合に障害の内容を示す情報が設定される。ＭＰ１２２は、障害情報１８１２を参照することによりデータ転送時の障害の有無を検出する。誤り検出符号１８１３には、例えば、図１７の誤り検出符号１７１５の内容がそのまま設定される。ＭＰ１２２は、誤り検出符号１８１３を参照することによりデータ転送時のエラーの有無を検出する。
【０１０７】
［第２実施形態］
図１４に示したように、第１実施形態では、第１ＤＭＡ１１４２のデータ転送が完了する前に第２ＤＭＡ１１１２のデータ転送が行われてしまうのを防ぐべく、第１ＤＭＡ１１４２のデータ転送が終了したか否かの確認を内部通信Ｉ／Ｆ１１４にて行い（Ｓ１４１５）、データ転送の終了を確認（Ｓ１４１５：ＹＥＳ）した後、内部通信Ｉ／Ｆ１１４が第２ＤＭＡ用転送パラメータ１５２を設定して第２ＤＭＡ１１１２を起動している（Ｓ１４１８）。以下に説明する第２実施形態では、第１ＤＭＡ１１４２のデータ転送が終了したか否かの確認をメモリ１１３にて行うことにより、第１ＤＭＡ１１４２のデータ転送が完了する前に第２ＤＭＡ１１１２のデータ転送が行われてしまうのを防ぐようにしている。
【０１０８】
図１９は第２実施形態におけるストレージ装置１０の動作を説明したフローチャートである。以下、同図とともに説明する。
【０１０９】
まずプロセッサ部１２のＭＰ１２２は、チャネル制御部１１の内部通信Ｉ／Ｆ１１４の第１ＤＭＡ１１４２にデータ転送パラメータ（以下、転送パラメータ１５００と称する。）を設定する（Ｓ１９１１）。
【０１１０】
次に内部通信Ｉ／Ｆ１１４が、転送パラメータ１５００の制御フラグ１５３の内容を参照する（Ｓ１９１２）。制御フラグ１５３に「オン」が設定されていた場合は（Ｓ１９１２：オン）Ｓ１９１３に進み、制御フラグ１５３に「オン」が設定されていた場合は（Ｓ１９１２：オフ）Ｓ１９１５に進む。
【０１１１】
Ｓ１９１５では、第１ＤＭＡ１１４２が、転送パラメータ１５００の第１ＤＭＡ用転送パラメータ１５１に基づくデータ転送（キャッシュメモリ１４に格納されているデータのメモリ１１３への転送）を開始する。
【０１１２】
データ転送の実行中、内部通信Ｉ／Ｆ１１４は、データ転送が完了したか否かをリアルタイムに監視する（Ｓ１９１６）。第１ＤＭＡ１１４２によるデータ転送が完了すると（Ｓ１９１６：ＹＥＳ）、内部通信Ｉ／Ｆ１１４は第１終了ステータスをＭＰ１２２のＬＭ１２３に書き込む（Ｓ１９１７）。尚、ＬＭ１２３に書き込まれた第１終了ステータスはＭＰ１２２によって適宜参照される（Ｓ１９３１）。
【０１１３】
Ｓ１９１３では、内部通信Ｉ／Ｆ１１４は、転送パラメータ１５００に付帯する第２ＤＭＡ用転送パラメータ１５２を外部通信Ｉ／Ｆ１１１の第２ＤＭＡ１１１２に設定する（Ｓ１９１３）。第２ＤＭＡ１１１２は、第２ＤＭＡ用転送パラメータ１５２に基づきデータ転送（メモリ１１３に格納されているデータのホスト装置３への転送）のための動作を開始してメモリ１１３へのアクセスを開始する。
【０１１４】
ここで第１ＤＭＡ１１４２のデータ転送の実行中、メモリ１１３はキャッシュメモリ１４から転送されてきたデータに対する第２ＤＭＡ１１１２からのアクセスを禁止する。そのため、第１ＤＭＡ１１４２のデータ転送の実行中に行われた第２ＤＭＡ１１１２からのアクセスは第１ＤＭＡ１１４２のデータ転送が終了するまでメモリ１１３側で待ち状態（キューイングされた状態）として保持される。第１ＤＭＡ１１４２のデータ転送が終了すると待ち状態が解除され（Ｓ１９２１：ＹＥＳ）、第２ＤＭＡ１１１２によるデータ転送が開始される（Ｓ１９２２）。
【０１１５】
データ転送の実行中は外部通信Ｉ／Ｆ１１１によってデータ転送が完了したか否かがリアルタイムに監視される（Ｓ１９２３）。データ転送が完了すると（Ｓ１９２３：ＹＥＳ）、外部通信Ｉ／Ｆ１１１は、第２終了ステータスをＭＰ１２２のＬＭ１２３に書き込む（Ｓ１９２４）。尚、ＬＭ１２３に書き込まれた第１終了ステータス及び第２終了ステータスはＭＰ１２２によって適宜参照される（Ｓ１９３２）。
【０１１６】
以上に説明したように、本実施形態では、第１ＤＭＡ１１４２のデータ転送が終了したか否かの監視をメモリ１１３側で行うようにしているので、その分、内部通信Ｉ／Ｆ１１４の負荷が軽減される。このため、内部通信Ｉ／Ｆ１１４のリソースを他の処理に割り当てることができ、ストレージ装置１０のホスト装置３に対するレスポンス性能やスループットを向上させることができる。
【０１１７】
また第１実施形態では、内部通信Ｉ／Ｆ１１４が、第１終了ステータスの書き込み（Ｓ１４１６）及び第２ＤＭＡ１１１２のデータ転送の起動（Ｓ１４１８）の双方の処理を担当するため、その分、第２ＤＭＡ１１１２のデータ転送の起動が遅延するが、本実施形態では予め第２ＤＭＡ用転送パラメータ１５２の第２ＤＭＡ１１１２への設定は済んでいるので、第１ＤＭＡ１１４２のデータ転送の終了後は外部通信Ｉ／Ｆ１１１にて直ちに内部通信Ｉ／Ｆ１１４の介在無しに第２ＤＭＡ１１１２のデータ転送を起動させることができる。これによれば、データ転送全体の処理時間が短縮され、ストレージ装置１０のホスト装置３に対するレスポンス性能やスループットを向上させることができる。
【０１１８】
また本実施形態では、第１ＤＭＡ１１４２のデータ転送が開始される前に予め第２ＤＭＡ用転送パラメータ１５２を設定しておくので（Ｓ１９１３）、第１実施形態のように制御フラグ１５３を何度も確認する必要がなく（図１４のＳ１４１２，Ｓ１４１７）、その分、全体の処理時間が短縮される。
【０１１９】
［第３実施形態］
第２実施形態では、第１ＤＭＡ１１４２によるデータ転送が終了したか否かの監視をメモリ１１３にて行っているが、第３実施形態では、第１ＤＭＡ１１４２によるデータ転送が終了したか否かの監視を外部通信Ｉ／Ｆ１１１にて行うようにしている。図２０は第３実施形態におけるストレージ装置１０の動作を説明したフローチャートである。以下、同図とともに説明する。尚、同図におけるＳ２０１１、Ｓ２０１２の処理は、図１９におけるＳ１９１１、Ｓ１９１２の処理と同様である。
【０１２０】
Ｓ２０１２において、制御フラグ１５３が「オフ」の場合は（Ｓ２０１２：オフ）Ｓ２０１５に進む。Ｓ２０１５では、第１ＤＭＡ１１４２が、転送パラメータ１５００の第１ＤＭＡ用転送パラメータ１５１に基づくデータ転送（キャッシュメモリ１４に格納されているデータのメモリ１１３へのデータ転送）を開始する。Ｓ２０１６、Ｓ２０１７、Ｓ２０３１の処理は図１９におけるＳ１９１６、Ｓ１９１７、Ｓ１９３１の処理と同様である。
【０１２１】
Ｓ２０１２において、制御フラグ１５３が「オン」の場合は（Ｓ２０１２：オン）Ｓ２０１３に進む。Ｓ２０１３において、内部通信Ｉ／Ｆ１１４は、転送パラメータ１５００に付帯する第２ＤＭＡ用転送パラメータ１５２を外部通信Ｉ／Ｆ１１１の第２ＤＭＡ１１１２に設定する。
【０１２２】
第２ＤＭＡ用転送パラメータ１５２が設定されると、外部通信Ｉ／Ｆ１１１は、第１ＤＭＡ１１４２のデータ転送が終了したか否かの監視を開始する（Ｓ２０２１）。この監視は、例えば第２ＤＭＡ用転送パラメータ１５２の第２転送元情報１５２１で特定されるデータへのアクセスが可能か否かを判断することにより行われる。この監視は随時（例えば数μＳの間隔で定期的に）行われる。
【０１２３】
第１ＤＭＡ１１４２のデータ転送が終了すると（Ｓ２０２１：ＹＥＳ）、第２ＤＭＡ１１１２は、第２ＤＭＡ用転送パラメータ１５２に基づきデータ転送（メモリ１１３に格納されているデータのホスト装置３へのデータ転送）を開始する（Ｓ２０２２）。尚、Ｓ２０２３、Ｓ２０２４、Ｓ２０３２の処理は図１９におけるＳ１９２３、Ｓ１９２４、Ｓ１９３２の処理と同様である。
【０１２４】
以上に説明したように、本実施形態では、第１ＤＭＡ１１４２のデータ転送が終了したか否かの監視を外部通信Ｉ／Ｆ１１１にて行うので、その分、内部通信Ｉ／Ｆ１１４の負荷が軽減され、内部通信Ｉ／Ｆ１１４のリソースを他の処理に割り当てることができ、ストレージ装置１０のホスト装置３に対するレスポンス性能やスループットを向上させることができる。
【０１２５】
また第１実施形態では、内部通信Ｉ／Ｆ１１４が、第１終了ステータスの書き込み（Ｓ１４１６）と第２ＤＭＡ１１１２のデータ転送の起動（Ｓ１４１８）の双方を担当するため、その分、第２ＤＭＡ１１１２のデータ転送の起動が遅延する可能性があったが、本実施形態では、予め第２ＤＭＡ用転送パラメータ１５２の第２ＤＭＡ１１１２への設定を済ませているので、第１ＤＭＡ１１４２のデータ転送の終了後は外部通信Ｉ／Ｆ１１１にて直ちに内部通信Ｉ／Ｆ１１４の介在無しに第２ＤＭＡ１１１２のデータ転送を起動させることができ、データ転送全体の処理時間が短縮される。
【０１２６】
また本実施形態では、第１ＤＭＡ１１４２のデータ転送が開始される前に予め第２ＤＭＡ用転送パラメータ１５２を設定しておくので（Ｓ２０１３）、第１実施形態のように制御フラグ１５３の確認を何度も行う必要がなく（図１４のＳ１４１２，Ｓ１４１７）、その分、全体の処理時間が短縮される。
【０１２７】
［第４実施形態］
第３実施形態では、第１ＤＭＡ１１４２のデータ転送が終了したか否かの監視を外部通信Ｉ／Ｆ１１１にて行うようにしている。そのため、第１ＤＭＡ１１４２のデータ転送に時間がかかると、外部通信Ｉ／Ｆ１１１は何度もメモリ１１３に対して確認のためのアクセスを行うことになり、外部通信Ｉ／Ｆ１１１及びメモリ１１３のリソースが無駄に消費されてしまうことになる。この問題はとくに内部通信Ｉ／Ｆ１１４がプロセッサ部１２が備える複数のＭＰ１２２から送られてくる転送パラメータ１５００を受け付ける構成になっている場合に顕在化する。
【０１２８】
即ち上記のような構成である場合にはあるＭＰ１２２のデータ転送により他のＭＰ１２２のデータ転送の開始が待たされる場合が生じるが、そのような場合でも、外部通信Ｉ／Ｆ１１１は、内部通信Ｉ／Ｆ１１４による第２ＤＭＡ１１１２への第２ＤＭＡ用転送パラメータ１５２の設定（Ｓ２０１３）が行われた後、直ちに第１ＤＭＡ１１４２のデータ転送が終了したか否かの確認（メモリ１１３へのアクセス）を開始してしまう（Ｓ２０２１）。そのため、第２ＤＭＡ１１１２に第２ＤＭＡ用転送パラメータ１５２が設定されてから第１ＤＭＡ１１４２のデータ転送が終了するまでの間、外部通信Ｉ／Ｆ１１１及びメモリ１１３によってリソース（第１ＤＭＡ１１４２のデータ転送が終了したか否かを監視する際に用いるリソース）を無駄に消費されてしまうことになる。
【０１２９】
そこで第４実施形態では、第１ＤＭＡ１１４２のデータ転送が開始した際、その開始通知を内部通信Ｉ／Ｆ１１４から外部通信Ｉ／Ｆ１１１に送信し、外部通信Ｉ／Ｆ１１１は、開始通知を受信した後に第１ＤＭＡ１１４２のデータ転送が終了したか否かの監視を開始するようにしている。
【０１３０】
図２１は第４実施形態におけるストレージ装置１０の動作を説明したフローチャートである。以下同図とともに説明する。尚、同図におけるＳ２１１１、Ｓ２１１２、Ｓ２１１３、Ｓ２１１５の処理は図２０におけるＳ２０１１、Ｓ２０１２、Ｓ２０１３、Ｓ２０１５の処理と同様である。
【０１３１】
Ｓ２１１６では、内部通信Ｉ／Ｆ１１４が、第１ＤＭＡ１１４２のデータ転送を開始した旨（以下、開始通知と称する。）を外部通信Ｉ／Ｆ１１１に送信する。Ｓ２１１８、Ｓ２１３１の処理は図２０におけるＳ２０１７、Ｓ２０３１の処理と同様である。
【０１３２】
一方、外部通信Ｉ／Ｆ１１１は、第２ＤＭＡ１１１２に対して第２ＤＭＡ用転送パラメータ１５２の設定が行われたことを契機として、内部通信Ｉ／Ｆ１１４から送られてくる開始通知の受信待機を開始する（Ｓ２１２１）。開始通知を受信すると（Ｓ２１２１：ＹＥＳ）、外部通信Ｉ／Ｆ１１１は、第１ＤＭＡ１１４２のデータ転送が終了したか否かの監視を開始する（Ｓ２１２２）。この監視は、第２ＤＭＡ用転送パラメータ１５２の第２転送元情報１５２１で特定されるデータへのアクセスが可能になるまで、繰り返し（例えば数μＳなどの間隔で定期的に）行われる。Ｓ２１２３、Ｓ２１２４、Ｓ２１２５、Ｓ２１３２の処理は図２０におけるＳ２０２２、Ｓ２０２３、Ｓ２０２４、Ｓ２０３２と同様である。
【０１３３】
尚、上記監視は、例えば第２ＤＭＡ用転送パラメータ１５２の第２転送元情報１５２１で特定されるデータへのアクセスが可能か否か（例えば第１ＤＭＡ１１４２のデータ転送の実行中は、外部通信Ｉ／Ｆ１１１から第２転送元情報１５２１で特定されるデータへのアクセスが禁止される。）を判断することにより行われる。
【０１３４】
以上に説明したように、第４実施形態においては、外部通信Ｉ／Ｆ１１１は開始通知の受信を契機として第１ＤＭＡ１１４２のデータ転送が終了したか否かの監視を開始する。このため、外部通信Ｉ／Ｆ１１１は、内部通信Ｉ／Ｆ１１４による第２ＤＭＡ１１１２への第２ＤＭＡ用転送パラメータ１５２の設定がされてから第１ＤＭＡ１１４２のデータ転送が開始されるまでの間、第１ＤＭＡ１１４２のデータ転送が終了したか否かの監視を行わず、この間に外部通信Ｉ／Ｆ１１１及びメモリ１１３のリソースが無駄に消費されてしまうのを防ぐことができる。これによれば外部通信Ｉ／Ｆ１１１及びメモリ１１３のリソースを他の処理に割り当てることができ、ストレージ装置１０のホスト装置３に対するレスポンス性能やスループットを向上させることができる。
【０１３５】
以上、本発明の好適な実施例を説明したが、これらは本発明の説明のための例示であって、本発明の範囲を実施例にのみ限定する趣旨ではない。本発明は、他の種々の形態でも実施することが可能である。
【図１】
2013515978.tif 000003
【図２】
2013515978.tif 000004
【図３】
2013515978.tif 000005
【図４】
2013515978.tif 000006
【図５】
2013515978.tif 000007
【図６】
2013515978.tif 000008
【図７】
2013515978.tif 000009
【図８】
2013515978.tif 000010
【図９】
2013515978.tif 000011
【図１０】
2013515978.tif 000012
【図１１】
2013515978.tif 000013
【図１２】
2013515978.tif 000014
【図１３】
2013515978.tif 000015
【図１４】
2013515978.tif 000016
【図１５】
2013515978.tif 000017
【図１６】
2013515978.tif 000018
【図１７】
2013515978.tif 000019
【図１８】
2013515978.tif 000020
【図１９】
2013515978.tif 000021
【図２０】
2013515978.tif 000022
【図２１】
2013515978.tif 000023
【図２２】
2013515978.tif 000024
【図２３】
2013515978.tif 000025
【国際調査報告】
2013515978.tif 000026
2013515978.tif 000027