(57)【要約】      （修正有）【課題】  ＤＭＡ制御におけるＣＰＵの処理負荷を低減した記憶デバイス制御装置を提供する。【解決手段】  情報処理装置からファイル名指定によるデータ入出力要求を受信し情報処理装置との間でデータの送受信を行うチャネル制御部と、記憶ボリウムに記憶されるデータの入出力制御を行うディスク制御部と、チャネル制御部及びディスク制御部の間で授受されるデータを記憶する第１メモリとを備え、チャネル制御部は、第１プロセサと、第２プロセサ及び第２メモリを有するファイルアクセス処理部と、データ転送装置と、第３メモリとが形成された回路基板を備え、第２プロセサが第２メモリにおけるデータの記憶位置情報を第１プロセサに送信し、第１プロセサが第１メモリと第２メモリとにおけるデータの記憶位置情報を含むデータ転送情報を第３メモリに書込み、データ転送装置が第３メモリからデータ転送情報を読出し第１メモリと第２メモリとの間でデータ転送を行う。【選択図】    図１
2005135065.tif 000002
【特許請求の範囲】
【請求項１】
情報処理装置からネットワークを通じてファイル名指定によるデータ入出力要求を受信し、前記情報処理装置との間でデータの送受信を行うチャネル制御部と、
前記データを記憶する記憶ボリウムに記憶される前記データの入出力制御を行うディスク制御部と、
前記チャネル制御部及び前記ディスク制御部の間で授受される前記データを記憶する第１のメモリと
を備え、
前記チャネル制御部は、
前記データ入出力要求に対応するブロック単位でのＩ／Ｏ要求を出力し、前記第１のメモリを制御する第１のプロセッサと、
第２のプロセッサ及び前記第２のプロセッサによって制御される第２のメモリを有し、前記情報処理装置との間で行われる前記データ入出力要求及び前記データの送受信の制御を行うファイルアクセス処理部と、
前記第１のメモリと前記第２のメモリとの間のデータ転送を制御するデータ転送装置と、
前記第１のプロセッサによって制御される第３のメモリと
が形成された回路基板を備え、
前記第２のプロセッサが、前記第２のメモリにおける前記データの記憶位置を示す情報を前記第１のプロセッサに送信し、
前記第１のプロセッサが、前記第１のメモリにおける前記データの記憶位置を示す情報と、前記第２のメモリにおけるデータの記憶位置を示す情報とを含むデータ転送情報を、前記第３のメモリに書き込み、
前記データ転送装置が、前記第３のメモリから前記データ転送情報を読み出し、
前記データ転送装置が、前記データ転送情報に基づいて、前記第１のメモリと前記第２のメモリとの間のデータ転送を制御すること
を特徴とする記憶デバイス制御装置。
【請求項２】
情報処理装置からネットワークを通じてファイル名指定によるデータ入出力要求を受信し、前記情報処理装置との間でデータの送受信を行うチャネル制御部と、
前記データを記憶する記憶ボリウムに記憶される前記データの入出力制御を行うディスク制御部と、
前記チャネル制御部及び前記ディスク制御部の間で授受される前記データを記憶する第１のメモリと
を備え、
前記チャネル制御部は、
前記データ入出力要求に対応するブロック単位でのＩ／Ｏ要求を出力し、前記第１のメモリを制御する第１のプロセッサと、
第２のプロセッサ及び前記第２のプロセッサによって制御される第２のメモリを有し、前記情報処理装置との間で行われる前記データ入出力要求及び前記データの送受信の制御を行うファイルアクセス処理部と、
前記第１のメモリと前記第２のメモリとの間のデータ転送を制御するデータ転送装置と、
前記第１のプロセッサによって制御される第３のメモリと
が形成された回路基板を備え、
前記第２のプロセッサが、前記第２のメモリにおける前記データの記憶位置を示す情報を前記第１のプロセッサに送信し、
前記第１のプロセッサが、前記第１のメモリにおける前記データの記憶位置を示す情報と、前記第２のメモリにおける前記データの記憶位置を示す情報とを含むデータ転送情報を、前記第３のメモリに書き込み、
前記第１のプロセッサが、前記第３のメモリにおける前記データ転送情報の記憶位置を示す情報を前記データ転送装置に送信し、
前記データ転送装置が、前記第３のメモリから前記データ転送情報を読み出し、
前記データ転送装置が、前記データ転送情報に基づいて、前記第１のメモリと前記第２のメモリとの間のデータ転送を制御すること
を特徴とする記憶デバイス制御装置。
【請求項３】
情報処理装置からネットワークを通じてファイル名指定によるデータ入出力要求を受信し、前記情報処理装置との間でデータの送受信を行うチャネル制御部と、
前記データを記憶する記憶ボリウムに記憶される前記データの入出力制御を行うディスク制御部と、
前記チャネル制御部及び前記ディスク制御部の間で授受される前記データを記憶する第１のメモリと
を備え、
前記チャネル制御部は、
前記データ入出力要求に対応するブロック単位でのＩ／Ｏ要求を出力し、前記第１のメモリを制御する第１のプロセッサと、
第２のプロセッサ及び前記第２のプロセッサによって制御される第２のメモリを有し、前記情報処理装置との間で行われる前記データ入出力要求及び前記データの送受信の制御を行うファイルアクセス処理部と、
前記第１のメモリと前記第２のメモリとの間のデータ転送を制御するデータ転送装置と、
前記第１のプロセッサによって制御される第３のメモリと
が形成された回路基板を備え、
前記第１のプロセッサが、前記第１のメモリにおける前記データの記憶位置を示す情報を含む第１のデータ転送情報を、前記第３のメモリに書き込み、
前記第２のプロセッサが、前記第２のメモリにおける前記データの記憶位置を示す情報を含む第２のデータ転送情報を、前記第２のメモリに書き込み、
前記データ転送装置が、前記第２のメモリから前記第２のデータ転送情報を読み出し、
前記データ転送装置が、前記第３のメモリから前記第１のデータ転送情報を読み出し、
前記データ転送装置が、前記第１のデータ転送情報及び前記第２のデータ転送情報に基づいて、前記第１のメモリと前記第２のメモリとの間のデータ転送を制御すること
を特徴とする記憶デバイス制御装置。
【請求項４】
情報処理装置からネットワークを通じてファイル名指定によるデータ入出力要求を受信し、前記情報処理装置との間でデータの送受信を行うチャネル制御部と、
前記データを記憶する記憶ボリウムに記憶される前記データの入出力制御を行うディスク制御部と、
前記チャネル制御部及び前記ディスク制御部の間で授受される前記データを記憶する第１のメモリと
を備え、
前記チャネル制御部は、
前記データ入出力要求に対応するブロック単位でのＩ／Ｏ要求を出力し、前記第１のメモリを制御する第１のプロセッサと、
第２のプロセッサ及び前記第２のプロセッサによって制御される第２のメモリを有し、前記情報処理装置との間で行われる前記データ入出力要求及び前記データの送受信の制御を行うファイルアクセス処理部と、
前記第１のメモリと前記第２のメモリとの間のデータ転送を制御するデータ転送装置と、
前記第１のプロセッサによって制御される第３のメモリと
が形成された回路基板を備え、
前記第１のプロセッサが、前記第１のメモリにおける前記データの記憶位置を示す情報を含む第１のデータ転送情報を、前記第３のメモリに書き込み、
前記第２のプロセッサが、前記第２のメモリにおける前記データの記憶位置を示す情報を含む第２のデータ転送情報を、前記第２のメモリに書き込み、
前記第２のプロセッサが、前記第２のデータ転送情報の記憶位置を示す情報を前記第１のプロセッサに送信し、
前記第１のプロセッサが、前記第１のデータ転送情報の記憶位置を示す情報と、前記第２のデータ転送情報の記憶位置を示す情報とを含む転送起動情報を、前記データ転送装置に送信し、
前記データ転送装置が、前記転送起動情報に基づいて、前記第２のメモリから前記第２のデータ転送情報を読み出し、
前記データ転送装置が、前記転送起動情報に基づいて、前記第３のメモリから前記第１のデータ転送情報を読み出し、
前記データ転送装置が、前記第１のデータ転送情報及び前記第２のデータ転送情報に基づいて、前記第１のメモリと前記第２のメモリとの間のデータ転送を制御すること
を特徴とする記憶デバイス制御装置。
【請求項５】
前記データ転送装置は、前記第１のメモリと前記第２のメモリとの間で行った前記データの転送の結果を示す情報を前記第３のメモリに書き込むこと
を特徴とする請求項１乃至４に記載の記憶デバイス制御装置。
【請求項６】
情報処理装置からネットワークを通じてファイル名指定によるデータ書き込み要求及び書き込みデータを受信するチャネル制御部と、
データを記憶する記憶ボリウムに対して、前記書き込みデータの書き込みを行うディスク制御部と、
前記チャネル制御部及び前記ディスク制御部の間で授受される前記書き込みデータを記憶する第１のメモリと
を備え、
前記チャネル制御部は、
前記データ書き込み要求に対応するブロック単位でのライト要求を出力し、前記第１のメモリを制御する第１のプロセッサと、
第２のプロセッサ及び前記第２のプロセッサによって制御される第２のメモリを有し、前記データ書き込み要求及び前記書き込みデータを前記情報処理装置から受信するファイルアクセス処理部と、
前記第１のメモリと前記第２のメモリとの間のデータ転送を制御するデータ転送装置と、
前記第１のプロセッサによって制御される第３のメモリと
が形成された回路基板を備え、
前記第１のプロセッサが、前記第１のメモリにおける前記書き込みデータの記憶位置を示す情報を含む第１のデータ転送情報を、前記第３のメモリに書き込み、
前記第２のプロセッサが、前記第２のメモリにおける前記書き込みデータの記憶位置を示す情報を含む第２のデータ転送情報を、前記第２のメモリに書き込み、
前記第２のプロセッサが、前記第２のデータ転送情報の記憶位置を示す情報を前記第１のプロセッサに送信し、
前記第１のプロセッサが、前記第１のデータ転送情報の記憶位置を示す情報と、前記第２のデータ転送情報の記憶位置を示す情報とを含む転送起動情報を、前記データ転送装置に送信し、
前記データ転送装置が、前記転送起動情報に基づいて、前記第２のメモリから前記第２のデータ転送情報を読み出し、
前記データ転送装置が、前記転送起動情報に基づいて、前記第３のメモリから前記第１のデータ転送情報を読み出し、
前記データ転送装置が、前記第１のデータ転送情報及び前記第２のデータ転送情報に基づいて、前記書き込みデータを、前記第２のメモリから前記第１のメモリへ転送し、
前記ディスク制御部が、前記ライト要求に基づいて、前記第１のメモリに記憶された前記書き込みデータを前記記憶ボリウムへ書き込むこと
を特徴とする記憶デバイス制御装置。
【請求項７】
情報処理装置からネットワークを通じてファイル名指定によるデータ読み出し要求を受信し、データを記憶する記憶ボリウムから読み出された読み出しデータを前記情報処理装置に送信するするチャネル制御部と、
前記記憶ボリウムに対して、前記読み出しデータの読み出しを行うディスク制御部と、
前記チャネル制御部及び前記ディスク制御部の間で授受される前記読み出しデータを記憶する第１のメモリと
を備え、
前記チャネル制御部は、
前記データ読み出し要求に対応するブロック単位でのリード要求を出力し、前記第１のメモリを制御する第１のプロセッサと、
第２のプロセッサ及び前記第２のプロセッサによって制御される第２のメモリを有し、前記データ読み出し要求を前記情報処理装置から受信するファイルアクセス処理部と、
前記第１のメモリと前記第２のメモリとの間のデータ転送を制御するデータ転送装置と、
前記第１のプロセッサによって制御される第３のメモリと
が形成された回路基板を備え、
前記ディスク制御部が、前記リード要求に基づいて前記記憶ボリウムから読み出した前記読み出しデータを前記第１のメモリに書き込み、
前記第１のプロセッサが、前記第１のメモリにおける前記読み出しデータの記憶位置を示す情報を含む第１のデータ転送情報を、前記第３のメモリに書き込み、
前記第２のプロセッサが、前記第２のメモリにおける前記読み出しデータの記憶位置を示す情報を含む第２のデータ転送情報を、前記第２のメモリに書き込み、
前記第２のプロセッサが、前記第２のデータ転送情報の記憶位置を示す情報を前記第１のプロセッサに送信し、
前記第１のプロセッサが、前記第１のデータ転送情報の記憶位置を示す情報と、前記第２のデータ転送情報の記憶位置を示す情報とを含む転送起動情報を、前記データ転送装置に送信し、
前記データ転送装置が、前記転送起動情報に基づいて、前記第２のメモリから前記第２のデータ転送情報を読み出し、
前記データ転送装置が、前記転送起動情報に基づいて、前記第３のメモリから前記第１のデータ転送情報を読み出し、
前記データ転送装置が、前記第１のデータ転送情報及び前記第２のデータ転送情報に基づいて、前記読み出しデータを、前記第１のメモリから前記第２のメモリへ転送し、
前記第２のプロセッサが、前記第２のメモリに記憶された前記読み出しデータを前記情報処理装置に送信すること
を特徴とする記憶デバイス制御装置。
【請求項８】
情報処理装置からネットワークを通じてファイル名指定によるデータ入出力要求を受信し、前記情報処理装置との間でデータの送受信を行うチャネル制御部と、
前記データを記憶する記憶ボリウムに記憶される前記データの入出力制御を行うディスク制御部と、
前記チャネル制御部及び前記ディスク制御部の間で授受される前記データを記憶する第１のメモリと
を備え、
前記チャネル制御部は、
前記データ入出力要求に対応するブロック単位でのＩ／Ｏ要求を出力し、前記第１のメモリを制御する第１のプロセッサと、
第２のプロセッサ及び前記第２のプロセッサによって制御される第２のメモリを有し、前記情報処理装置との間で行われる前記データ入出力要求及び前記データの送受信の制御を行うファイルアクセス処理部と、
前記第１のメモリと前記第２のメモリとの間のデータ転送を制御するデータ転送装置と、
前記第１のプロセッサによって制御される第３のメモリと
が形成された回路基板を備えた
記憶デバイス制御装置の制御方法であって、
前記第２のプロセッサが、前記第２のメモリにおける前記データの記憶位置を示す情報を前記第１のプロセッサに送信し、
前記第１のプロセッサが、前記第１のメモリにおける前記データの記憶位置を示す情報と、前記第２のメモリにおけるデータの記憶位置を示す情報とを含むデータ転送情報を、前記第３のメモリに書き込み、
前記データ転送装置が、前記第３のメモリから前記データ転送情報を読み出し、
前記データ転送装置が、前記データ転送情報に基づいて、前記第１のメモリと前記第２のメモリとの間のデータ転送を制御すること
を特徴とする記憶デバイス制御装置の制御方法。
【請求項９】
情報処理装置からネットワークを通じてファイル名指定によるデータ入出力要求を受信し、前記情報処理装置との間でデータの送受信を行うチャネル制御部と、
前記データを記憶する記憶ボリウムに記憶される前記データの入出力制御を行うディスク制御部と、
前記チャネル制御部及び前記ディスク制御部の間で授受される前記データを記憶する第１のメモリと
を備え、
前記チャネル制御部は、
前記データ入出力要求に対応するブロック単位でのＩ／Ｏ要求を出力し、前記第１のメモリを制御する第１のプロセッサと、
第２のプロセッサ及び前記第２のプロセッサによって制御される第２のメモリを有し、前記情報処理装置との間で行われる前記データ入出力要求及び前記データの送受信の制御を行うファイルアクセス処理部と、
前記第１のメモリと前記第２のメモリとの間のデータ転送を制御するデータ転送装置と、
前記第１のプロセッサによって制御される第３のメモリと
が形成された回路基板を備えた
記憶デバイス制御装置の制御方法であって、
前記第２のプロセッサが、前記第２のメモリにおける前記データの記憶位置を示す情報を前記第１のプロセッサに送信し、
前記第１のプロセッサが、前記第１のメモリにおける前記データの記憶位置を示す情報と、前記第２のメモリにおける前記データの記憶位置を示す情報とを含むデータ転送情報を、前記第３のメモリに書き込み、
前記第１のプロセッサが、前記第３のメモリにおける前記データ転送情報の記憶位置を示す情報を前記データ転送装置に送信し、
前記データ転送装置が、前記第３のメモリから前記データ転送情報を読み出し、
前記データ転送装置が、前記データ転送情報に基づいて、前記第１のメモリと前記第２のメモリとの間のデータ転送を制御すること
を特徴とする記憶デバイス制御装置の制御方法。
【請求項１０】
情報処理装置からネットワークを通じてファイル名指定によるデータ入出力要求を受信し、前記情報処理装置との間でデータの送受信を行うチャネル制御部と、
前記データを記憶する記憶ボリウムに記憶される前記データの入出力制御を行うディスク制御部と、
前記チャネル制御部及び前記ディスク制御部の間で授受される前記データを記憶する第１のメモリと
を備え、
前記チャネル制御部は、
前記データ入出力要求に対応するブロック単位でのＩ／Ｏ要求を出力し、前記第１のメモリを制御する第１のプロセッサと、
第２のプロセッサ及び前記第２のプロセッサによって制御される第２のメモリを有し、前記情報処理装置との間で行われる前記データ入出力要求及び前記データの送受信の制御を行うファイルアクセス処理部と、
前記第１のメモリと前記第２のメモリとの間のデータ転送を制御するデータ転送装置と、
前記第１のプロセッサによって制御される第３のメモリと
が形成された回路基板を備えた
記憶デバイス制御装置の制御方法であって、
前記第１のプロセッサが、前記第１のメモリにおける前記データの記憶位置を示す情報を含む第１のデータ転送情報を、前記第３のメモリに書き込み、
前記第２のプロセッサが、前記第２のメモリにおける前記データの記憶位置を示す情報を含む第２のデータ転送情報を、前記第２のメモリに書き込み、
前記データ転送装置が、前記第２のメモリから前記第２のデータ転送情報を読み出し、
前記データ転送装置が、前記第３のメモリから前記第１のデータ転送情報を読み出し、
前記データ転送装置が、前記第１のデータ転送情報及び前記第２のデータ転送情報に基づいて、前記第１のメモリと前記第２のメモリとの間のデータ転送を制御すること
を特徴とする記憶デバイス制御装置の制御方法。
【請求項１１】
情報処理装置からネットワークを通じてファイル名指定によるデータ入出力要求を受信し、前記情報処理装置との間でデータの送受信を行うチャネル制御部と、
前記データを記憶する記憶ボリウムに記憶される前記データの入出力制御を行うディスク制御部と、
前記チャネル制御部及び前記ディスク制御部の間で授受される前記データを記憶する第１のメモリと
を備え、
前記チャネル制御部は、
前記データ入出力要求に対応するブロック単位でのＩ／Ｏ要求を出力し、前記第１のメモリを制御する第１のプロセッサと、
第２のプロセッサ及び前記第２のプロセッサによって制御される第２のメモリを有し、前記情報処理装置との間で行われる前記データ入出力要求及び前記データの送受信の制御を行うファイルアクセス処理部と、
前記第１のメモリと前記第２のメモリとの間のデータ転送を制御するデータ転送装置と、
前記第１のプロセッサによって制御される第３のメモリと
が形成された回路基板を備えた
記憶デバイス制御装置の制御方法であって、
前記第１のプロセッサが、前記第１のメモリにおける前記データの記憶位置を示す情報を含む第１のデータ転送情報を、前記第３のメモリに書き込み、
前記第２のプロセッサが、前記第２のメモリにおける前記データの記憶位置を示す情報を含む第２のデータ転送情報を、前記第２のメモリに書き込み、
前記第２のプロセッサが、前記第２のデータ転送情報の記憶位置を示す情報を前記第１のプロセッサに送信し、
前記第１のプロセッサが、前記第１のデータ転送情報の記憶位置を示す情報と、前記第２のデータ転送情報の記憶位置を示す情報とを含む転送起動情報を、前記データ転送装置に送信し、
前記データ転送装置が、前記転送起動情報に基づいて、前記第２のメモリから前記第２のデータ転送情報を読み出し、
前記データ転送装置が、前記転送起動情報に基づいて、前記第３のメモリから前記第１のデータ転送情報を読み出し、
前記データ転送装置が、前記第１のデータ転送情報及び前記第２のデータ転送情報に基づいて、前記第１のメモリと前記第２のメモリとの間のデータ転送を制御すること
を特徴とする記憶デバイス制御装置の制御方法。
【請求項１２】
前記データ転送装置は、前記第１のメモリと前記第２のメモリとの間で行った前記データの転送の結果を示す情報を前記第３のメモリに書き込むこと
を特徴とする請求項８乃至１１に記載の記憶デバイス制御装置の制御方法。
【請求項１３】
情報処理装置からネットワークを通じてファイル名指定によるデータ書き込み要求及び書き込みデータを受信するチャネル制御部と、
データを記憶する記憶ボリウムに対して、前記書き込みデータの書き込みを行うディスク制御部と、
前記チャネル制御部及び前記ディスク制御部の間で授受される前記書き込みデータを記憶する第１のメモリと
を備え、
前記チャネル制御部は、
前記データ書き込み要求に対応するブロック単位でのライト要求を出力し、前記第１のメモリを制御する第１のプロセッサと、
第２のプロセッサ及び前記第２のプロセッサによって制御される第２のメモリを有し、前記データ書き込み要求及び前記書き込みデータを前記情報処理装置から受信するファイルアクセス処理部と、
前記第１のメモリと前記第２のメモリとの間のデータ転送を制御するデータ転送装置と、
前記第１のプロセッサによって制御される第３のメモリと
が形成された回路基板を備えた
記憶デバイス制御装置の制御方法であって、
前記第１のプロセッサが、前記第１のメモリにおける前記書き込みデータの記憶位置を示す情報を含む第１のデータ転送情報を、前記第３のメモリに書き込み、
前記第２のプロセッサが、前記第２のメモリにおける前記書き込みデータの記憶位置を示す情報を含む第２のデータ転送情報を、前記第２のメモリに書き込み、
前記第２のプロセッサが、前記第２のデータ転送情報の記憶位置を示す情報を前記第１のプロセッサに送信し、
前記第１のプロセッサが、前記第１のデータ転送情報の記憶位置を示す情報と、前記第２のデータ転送情報の記憶位置を示す情報とを含む転送起動情報を、前記データ転送装置に送信し、
前記データ転送装置が、前記転送起動情報に基づいて、前記第２のメモリから前記第２のデータ転送情報を読み出し、
前記データ転送装置が、前記転送起動情報に基づいて、前記第３のメモリから前記第１のデータ転送情報を読み出し、
前記データ転送装置が、前記第１のデータ転送情報及び前記第２のデータ転送情報に基づいて、前記書き込みデータを、前記第２のメモリから前記第１のメモリへ転送し、
前記ディスク制御部が、前記ライト要求に基づいて、前記第１のメモリに記憶された前記書き込みデータを前記記憶ボリウムへ書き込むこと
を特徴とする記憶デバイス制御装置の制御方法。
【請求項１４】
情報処理装置からネットワークを通じてファイル名指定によるデータ読み出し要求を受信し、データを記憶する記憶ボリウムから読み出された読み出しデータを前記情報処理装置に送信するするチャネル制御部と、
前記記憶ボリウムに対して、前記読み出しデータの読み出しを行うディスク制御部と、
前記チャネル制御部及び前記ディスク制御部の間で授受される前記読み出しデータを記憶する第１のメモリと
を備え、
前記チャネル制御部は、
前記データ読み出し要求に対応するブロック単位でのリード要求を出力し、前記第１のメモリを制御する第１のプロセッサと、
第２のプロセッサ及び前記第２のプロセッサによって制御される第２のメモリを有し、前記データ読み出し要求を前記情報処理装置から受信するファイルアクセス処理部と、
前記第１のメモリと前記第２のメモリとの間のデータ転送を制御するデータ転送装置と、
前記第１のプロセッサによって制御される第３のメモリと
が形成された回路基板を備えた
記憶デバイス制御装置の制御方法であって、
前記ディスク制御部が、前記リード要求に基づいて前記記憶ボリウムから読み出した前記読み出しデータを前記第１のメモリに書き込み、
前記第１のプロセッサが、前記第１のメモリにおける前記読み出しデータの記憶位置を示す情報を含む第１のデータ転送情報を、前記第３のメモリに書き込み、
前記第２のプロセッサが、前記第２のメモリにおける前記読み出しデータの記憶位置を示す情報を含む第２のデータ転送情報を、前記第２のメモリに書き込み、
前記第２のプロセッサが、前記第２のデータ転送情報の記憶位置を示す情報を前記第１のプロセッサに送信し、
前記第１のプロセッサが、前記第１のデータ転送情報の記憶位置を示す情報と、前記第２のデータ転送情報の記憶位置を示す情報とを含む転送起動情報を、前記データ転送装置に送信し、
前記データ転送装置が、前記転送起動情報に基づいて、前記第２のメモリから前記第２のデータ転送情報を読み出し、
前記データ転送装置が、前記転送起動情報に基づいて、前記第３のメモリから前記第１のデータ転送情報を読み出し、
前記データ転送装置が、前記第１のデータ転送情報及び前記第２のデータ転送情報に基づいて、前記読み出しデータを、前記第１のメモリから前記第２のメモリへ転送し、
前記第２のプロセッサが、前記第２のメモリに記憶された前記読み出しデータを前記情報処理装置に送信すること
を特徴とする記憶デバイス制御装置の制御方法。 
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、記憶デバイス制御装置、及び記憶デバイス制御装置の制御方法に関する。
【背景技術】
【０００２】
近年コンピュータシステムで取り扱われるデータ量が増加している。このようなデータを管理するためのストレージシステムとして、最近ではミッドレンジクラスやエンタープライズクラスと呼ばれるような、巨大な記憶資源を提供するＲＡＩＤ（Redundant Arrays of Inexpensive Disks）方式で管理された記憶ボリウムを備えた大規模なストレージシステムが注目されている。また、かかる膨大なデータを効率よく利用し管理するために、ストレージシステムと情報処理装置とを専用のネットワーク（Storage Area Network、以下ＳＡＮと記す）で接続し、ストレージシステムへの高速かつ大量なアクセスを実現する技術が開発されている。
【０００３】
一方、ストレージシステムと情報処理装置とをＴＣＰ／ＩＰ（Transmission Control Protocol/Internet Protocol）プロトコル等を用いたネットワークで相互に接続し、情報処理装置からのファイル名指定によるアクセスを実現するＮＡＳ（Network Attached Storage）と呼ばれるストレージシステムが開発されている。
【０００４】
またこのようなストレージシステムにおいては、データアクセスの高速化のために、ＣＰＵ（Central Processing Unit）を介さずにデータを転送するＤＭＡ（Direct Memory Access）転送技術が使われている。ＤＭＡ転送に際しては、ＣＰＵはＤＭＡコントローラが備えるレジスタにデータの転送元記憶アドレスや転送先記憶アドレスといったデータの転送に必要なデータ転送情報を書き込んで、ＤＭＡコントローラにデータ転送の開始を指示する。これにより、ＤＭＡコントローラによってデータの転送がＣＰＵを介することなく行われる。
【特許文献１】特開２００３−２２２４６号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかしながら、ＤＭＡコントローラを含むデータ転送回路におけるＣＰＵからＤＭＡコントローラのレジスタへのデータの書き込みには、ＣＰＵからメモリ素子へのデータの書き込みと比べて、より多くの時間を要する。そのため、データ転送が頻繁に発生するような状況では、ＣＰＵによるＤＭＡコントローラのレジスタへのデータの書き込みを含む、ＤＭＡ起動処理にかかる時間が要因となり、データアクセスの高速化が妨げられることとなる。
【０００６】
またデータ入出力制御が複数のＣＰＵを用いて行われる場合において、各ＣＰＵによりそれぞれ制御されるメモリの間でデータの転送を行う場合には、ＤＭＡコントローラの制御を行うＣＰＵは、他のＣＰＵにより制御されるメモリにおけるデータの記憶アドレス等の情報を取得する必要がある。また各メモリによってデータ転送のサイズが異なる場合には、ＤＭＡコントローラの制御を行うＣＰＵは、データ転送のサイズを合わせるための制御も行う必要がある。ＤＭＡコントローラの制御を行うＣＰＵの処理負荷が上昇することは、データアクセスの高速化を妨げる要因となる。このため、ＤＭＡコントローラの制御を行うＣＰＵの処理負荷を軽減することが望まれていた。
【０００７】
本発明は上記課題を鑑みてなされたものであり、記憶デバイス制御装置、及び記憶デバイス制御装置の制御方法を提供することを主たる目的とする。
【課題を解決するための手段】
【０００８】
上記課題を解決するために、本発明は、情報処理装置からネットワークを通じてファイル名指定によるデータ入出力要求を受信し、前記情報処理装置との間でデータの送受信を行うチャネル制御部と、前記データを記憶する記憶ボリウムに記憶される前記データの入出力制御を行うディスク制御部と、前記チャネル制御部及び前記ディスク制御部の間で授受される前記データを記憶する第１のメモリとを備え、前記チャネル制御部は、前記データ入出力要求に対応するブロック単位でのＩ／Ｏ要求を出力し、前記第１のメモリを制御する第１のプロセッサと、第２のプロセッサ及び前記第２のプロセッサによって制御される第２のメモリを有し、前記情報処理装置との間で行われる前記データ入出力要求及び前記データの送受信の制御を行うファイルアクセス処理部と、前記第１のメモリと前記第２のメモリとの間のデータ転送を制御するデータ転送装置と、前記第１のプロセッサによって制御される第３のメモリとが形成された回路基板を備え、前記第２のプロセッサが、前記第２のメモリにおける前記データの記憶位置を示す情報を前記第１のプロセッサに送信し、前記第１のプロセッサが、前記第１のメモリにおける前記データの記憶位置を示す情報と、前記第２のメモリにおけるデータの記憶位置を示す情報とを含むデータ転送情報を、前記第３のメモリに書き込み、前記データ転送装置が、前記第３のメモリから前記データ転送情報を読み出し、前記データ転送装置が、前記データ転送情報に基づいて、前記第１のメモリと前記第２のメモリとの間のデータ転送を制御することを特徴とする記憶デバイス制御装置に関する。
【０００９】
ここで記憶デバイス制御装置とは、情報処理装置から受信したデータ入出力要求に応じて、データが記憶される記憶ボリウムへのデータの読み書きを制御する装置をいう。情報処理装置とはＣＰＵやメモリを備えたコンピュータ等の情報機器をいう。情報処理装置は、上記記憶デバイス制御装置や記憶ボリウムを備えて構成されるストレージシステム、あるいは他の情報処理装置にＬＡＮ（Local Area Network）やＳＡＮ等のネットワークを介して接続される場合には、ストレージシステムや他の情報処理装置と通信を行うことにより、ストレージシステムや他の情報処理装置との間でデータを授受する。また記憶ボリウムは、例えばハードディスク装置などのディスクドライブにより提供される物理的な記憶領域である物理ボリウムと、物理ボリウム上に論理的に設定される記憶領域である論理ボリウムとを含む、データを記憶するための記憶リソースをいう。
【００１０】
ファイルアクセス処理部は情報処理装置との間でファイル名指定によるデータの授受を行う。ファイルアクセス処理部の機能は、第２のプロセッサにより実行されるオペレーティングシステムおよびこのオペレーティングシステム上で動作する例えばＮＦＳ（Network File System）等のソフトウエアによって提供される。
【００１１】
第１のプロセッサは、例えばファイルアクセス処理部のハードウエア要素である第２のプロセッサとは独立したＩＣ（Integrated Circuit）をハードウエア要素とし、第１のメモリを制御する。また第１のプロセッサはファイルアクセス処理部が情報処理装置から受信したファイル単位のデータ入出力要求に応じて、ブロック単位のＩ／Ｏ要求を出力する。このＩ／Ｏ要求によりディスク制御部は、記憶ボリウムに記憶されたデータの入出力制御を行う。第１のメモリとは例えば後述するキャッシュメモリである。またデータ転送装置はＤＭＡコントローラとして機能する。
【００１２】
これにより、例えば情報処理装置からファイルアクセス処理部がファイル名指定によるデータ書き込み要求と書き込みデータとを受信した場合には、まず書き込みデータは第２のメモリに記憶される。そして第１のプロセッサはファイル名指定によるデータ書き込み要求に対応するブロック単位のライト要求を出力する。一方データ転送装置は、第２のメモリに記憶された書き込みデータを第１のメモリに転送する。そしてディスク制御部は、ライト要求に基づいて、第１のメモリから書き込みデータを読み出すと共に、その書き込みデータをブロック単位で記憶ボリウムに書き込む。
【００１３】
また情報処理装置からファイルアクセス処理部がファイル名指定によるデータ読み出し要求を受信した場合には、第１のプロセッサはファイル名指定によるデータ読み出し要求に対応するブロック単位のリード要求を出力する。一方ディスク制御部は、リード要求に基づいて、記憶ボリウムからブロック単位でデータを読み出すと共に、その読み出しデータを第１のメモリに書き込む。そしてデータ転送装置は、第１のメモリに記憶された読み出しデータを第２のメモリに転送する。そしてファイルアクセス処理部は、第２のメモリに記憶された読み出しデータを情報処理装置に送信する。
【００１４】
なお記憶ボリウムに記憶されたデータの入出力は、ディスク制御部が記憶ボリウムと通信することにより行う。ディスク制御部と記憶ボリウムとの間の通信は、例えばファイバチャネル規格のＦＣ−ＡＬによって定められるループを構成する通信路を介して行うようにすることもできる。
【００１５】
データ転送装置が第１のメモリと第２のメモリとの間のデータ転送を制御する場合には、データ転送装置は、それぞれのメモリにおけるデータの記憶位置（データの転送元アドレスや転送先アドレス）をレジスタに記憶しておく必要があるが、本発明に係る記憶デバイス制御装置では、上記のように、これらのデータの記憶位置を示す情報を含むデータ転送情報が第１のプロセッサによって第３のメモリに書き込まれる。そしてデータ転送装置が第３のメモリからデータ転送情報を読み出してレジスタに記憶する。このため、第１のプロセッサは、相対的にアクセス時間の長いデータ転送装置のレジスタにではなく、相対的にアクセス時間の短い第３のメモリにデータ転送情報を書き込んだ後、次の処理の実行に移ることができる。これにより第１のプロセッサのアイドル時間（書き込み完了待ち時間）を減らすことができ、第１のプロセッサを効率良く実行させることができる。このため、情報処理装置からのデータ入出力要求に対して、データの読み書きを高速化することができる。
【００１６】
このようにデータの読み書きを高速化できることは、情報処理システムで取り扱われるデータ量が増大し、また多数の情報処理装置から次々とオンラインかつリアルタイムにデータ入出力要求が送信されてくるような近年のストレージシステムの使用環境の下では、情報処理システム全体の処理性能の向上に大きく貢献する。
【００１７】
その他、本願が開示する課題、及びその解決方法は、発明を実施するための最良の形態の欄、及び図面により明らかにされる。
【発明の効果】
【００１８】
記憶デバイス制御装置、及び記憶デバイス制御装置の制御方法を提供することができる。
【発明を実施するための最良の形態】
【００１９】
＝＝＝第１の実施の形態＝＝＝
＝＝＝全体構成例＝＝＝
まず、本実施の形態に係る記憶デバイス制御装置１００を含むストレージシステム６００の全体構成を示すブロック図を図１に示す。  
ストレージシステム６００は、記憶デバイス制御装置１００とディスク駆動装置３００とを備えている。記憶デバイス制御装置１００は、情報処理装置２００から受信したコマンドに従ってディスク駆動装置３００に対する制御を行う。例えば情報処理装置２００からデータ入出力要求を受信して、ディスク駆動装置３００が備える記憶ボリウム３１０に記憶されるデータの読み書きを行う。記憶ボリウム３１０は、例えばハードディスク装置などのディスクドライブにより提供される物理的な記憶領域である物理ボリウムと、物理ボリウム上に論理的に設定される記憶領域である論理ボリウムとを含む、データを記憶するための記憶リソースをいう。以下、記憶ボリウム３１０又は論理ボリウムをＬＵ（Logical Unit）とも記す。また記憶デバイス制御装置１００は、情報処理装置２００との間で、ストレージシステム６００を管理するための各種コマンドの授受も行う。  
情報処理装置２００はＣＰＵやメモリを備えたコンピュータ等の情報機器である。情報処理装置２００が備えるＣＰＵにより各種プログラムが実行されることにより様々な機能が実現される。情報処理装置２００は、例えばパーソナルコンピュータやワークステーションであることもあるし、メインフレームコンピュータであることもある。
【００２０】
図１において、情報処理装置１乃至３（２００）は、ＬＡＮ（Local Area Network）４００を介して記憶デバイス制御装置１００と接続されている。ＬＡＮ４００は、インターネットとすることもできるし、専用のネットワークとすることもできる。ＬＡＮ４００を介して行われる情報処理装置１乃至３（２００）と記憶デバイス制御装置１００との間の通信は、例えばＴＣＰ／ＩＰプロトコルに従って行われる。情報処理装置１乃至３（２００）からは、ストレージシステム６００に対して、ファイル名指定によるデータアクセス要求（ファイル名指定によるデータ入出力要求。以下、ファイルアクセス要求と記す）が送信される。
【００２１】
またＬＡＮ４００にはバックアップデバイス９１０が接続されている。バックアップデバイス９１０は具体的にはＭＯ（Magneto-Optical disc）やＣＤ−Ｒ（Compact Disc-Recordable）、ＤＶＤ−ＲＡＭ（Digital Video Disc-Random Access Memory）などのディスク系デバイス、ＤＡＴ（Digital Audio Tape）テープ、カセットテープ、オープンテープ、カートリッジテープなどのテープ系デバイスである。バックアップデバイス９１０は、ＬＡＮ４００を介して記憶デバイス制御装置１００との間で通信を行うことにより、ディスク駆動装置３００に記憶されているデータのバックアップデータを記憶する。またバックアップデバイス９１０は情報処理装置１（２００）と接続されるようにすることもできる。この場合は情報処理装置１（２００）を介してディスク駆動装置３００に記憶されているデータのバックアップデータを取得するようにする。
【００２２】
記憶デバイス制御装置１００は、チャネル制御部１乃至４（１１０）を備える。記憶デバイス制御装置１００は、チャネル制御部１乃至４（１１０）によりＬＡＮ４００を介して情報処理装置１乃至３（２００）やバックアップデバイス９１０との間で通信を行う。チャネル制御部１乃至４（１１０）は、ＬＡＮ４００を通じて情報処理装置１乃至３（２００）から送信されるファイルアクセス要求を個々に受信し、情報処理装置２００との間でデータの送受信を行う。すなわち、チャネル制御部１乃至４（１１０）には、個々にＬＡＮ４００上のネットワークアドレス（例えば、ＩＰアドレス）が割り当てられていてそれぞれが個別にＮＡＳとして振る舞い、個々のＮＡＳがあたかも独立したＮＡＳが存在するかのようにＮＡＳとしてのサービスを情報処理装置１乃至３（２００）に提供することができる。以下、チャネル制御部１乃至４（１１０）をＣＨＮ１１０とも記す。このように１台のストレージシステム６００に個別にＮＡＳとしてのサービスを提供するチャネル制御部１乃至４（１１０）を備えるように構成したことで、従来、独立したコンピュータで個々に運用されていたＮＡＳサーバを一台のストレージシステム６００に集約することができる。そして、これによりストレージシステム６００の統括的な管理が可能となり、各種設定・制御や障害管理、バージョン管理といった保守業務の効率化が図られる。
【００２３】
なお、本実施の形態に係る記憶デバイス制御装置１００のチャネル制御部１乃至４（１１０）は、後述するように、一体的にユニット化された回路基板１８０上に形成されたハードウエア及びこのハードウエアにより実行されるオペレーティングシステム（以下、ＯＳと記す）やこのＯＳ上で動作するアプリケーションプログラムなどのソフトウエアにより実現される。このように本実施例のストレージシステム６００では、従来ハードウエアの一部として実装されてきた機能がソフトウエアにより実現されている。このため、本実施例のストレージシステム６００では柔軟性に富んだシステム運用が可能となり、多様で変化の激しいユーザニーズによりきめ細かなサービスを提供することが可能となる。
【００２４】
情報処理装置３乃至４（２００）はＳＡＮ５００を介して記憶デバイス制御装置１００と接続されている。ＳＡＮ５００は、ディスク駆動装置３００が提供する記憶領域におけるデータの管理単位であるブロックを単位として情報処理装置３乃至４（２００）との間でデータの授受を行うためのネットワークである。ＳＡＮ５００を介して行われる情報処理装置３乃至４（２００）と記憶デバイス制御装置１００との間の通信は、一般にファイバチャネルプロトコルに従って行われる。情報処理装置３乃至４（２００）からは、ストレージシステム６００に対して、ファイバチャネルプロトコルに従ってブロック単位のデータアクセス要求（以下、ブロックアクセス要求と記す）が送信される。
【００２５】
ＳＡＮ５００にはＳＡＮ対応のバックアップデバイス９００が接続されている。ＳＡＮ対応バックアップデバイス９００は、ＳＡＮ５００を介して記憶デバイス制御装置１００との間で通信を行うことにより、ディスク駆動装置３００に記憶されているデータのバックアップデータを記憶する。  
記憶デバイス制御装置１００は、チャネル制御部５乃至６（１１０）を備える。記憶デバイス制御装置１００は、チャネル制御部５乃至６（１１０）によりＳＡＮ５００を介して情報処理装置３乃至４（２００）及びＳＡＮ対応バックアップデバイス９００との間の通信を行う。以下、チャネル制御部５乃至６（１１０）をＣＨＦとも記す。
【００２６】
また情報処理装置５（２００）は、ＬＡＮ４００やＳＡＮ５００等のネットワークを介さずに記憶デバイス制御装置１００と接続されている。情報処理装置５（２００）としては例えばメインフレームコンピュータとすることができる。情報処理装置５（２００）と記憶デバイス制御装置１００との間の通信は、例えばＦＩＣＯＮ（Fibre Connection）（登録商標）やＥＳＣＯＮ(Enterprise System Connection) （登録商標）、ＡＣＯＮＡＲＣ（Advanced Connection Architecture）（登録商標）、ＦＩＢＡＲＣ（Fibre Connection Architecture）（登録商標）などの通信プロトコルに従って行われる。情報処理装置５（２００）からは、ストレージシステム６００に対して、これらの通信プロトコルに従ってブロックアクセス要求が送信される。  
記憶デバイス制御装置１００は、チャネル制御部７乃至８（１１０）により情報処理装置５（２００）との間で通信を行う。以下、チャネル制御部７乃至８（１１０）をＣＨＡとも記す。
【００２７】
ＳＡＮ５００には、災害発生時のデータ保護等のために、ストレージシステム６００の設置場所（プライマリサイト）とは遠隔した場所（セカンダリサイト）に設置される他のストレージシステム６１０が接続している。ストレージシステム６１０は、レプリケーション又はリモートコピーの機能におけるデータの複製先の装置として利用される。なお、ストレージシステム６１０はＳＡＮ５００以外にもＡＴＭなどの通信回線によりストレージシステム６００に接続していることもある。この場合には例えばチャネル制御部１１０として上記通信回線を利用するためのインタフェース（チャネルエクステンダ）を備えるチャネル制御部１１０が採用される。
【００２８】
このように本実施例に係るストレージシステム６００では、ストレージシステム６００内にＣＨＮ１１０、ＣＨＦ１１０、ＣＨＡ１１０を混在させて装着させることができる。これにより、異種ネットワークに接続されるストレージシステムを実現できる。具体的には、ストレージシステム６００は、ＣＨＮ１１０を用いてＬＡＮ１４０に接続し、かつＣＨＦ１１０を用いてＳＡＮ５００に接続するという、ＳＡＮ−ＮＡＳ統合ストレージシステムである。
【００２９】
＝＝＝記憶ボリウム＝＝＝
ディスク駆動装置３００は多数のディスクドライブを備えている。これにより情報処理装置２００に対して大容量の記憶領域を提供する。ディスク駆動装置３００は例えば複数のディスクドライブによりディスクアレイを構成するようにすることもできる。この場合、情報処理装置２００に対して提供される記憶領域は、ＲＡＩＤにより管理された複数のディスクドライブにより提供されるようにすることもできる。
【００３０】
記憶デバイス制御装置１００とディスク駆動装置３００との間は図１のように直接に接続される形態とすることもできるし、ネットワークを介して接続されるようにすることもできる。さらにディスク駆動装置３００は記憶デバイス制御装置１００と一体として構成されることもできる。
【００３１】
ディスク駆動装置３００が備えるＬＵ３１０には、情報処理装置２００からアクセス可能なユーザＬＵ３１０や、チャネル制御部１１０の制御のために使用されるシステムＬＵ３１０等がある。システムＬＵ３１０にはＣＨＮ１１０で実行されるオペレーティングシステムも格納される。
【００３２】
＝＝＝記憶デバイス制御装置＝＝＝
記憶デバイス制御装置１００はチャネル制御部１１０、共有メモリ１２０、キャッシュメモリ（第１のメモリ）１３０、ディスク制御部１４０、管理端末１６０、接続部１５０を備える。
【００３３】
チャネル制御部１１０は情報処理装置２００との間で通信を行うための通信インタフェースを備え、情報処理装置２００との間でデータ入出力コマンド等を授受する機能を備える。例えばＣＨＮ１１０は情報処理装置１乃至３（２００）からのファイルアクセス要求を受信する。そしてファイルの記憶アドレスやデータ長等を求めて、ファイルアクセス要求に対応するＩ／Ｏ要求を出力することにより、ディスク駆動装置３００へのアクセスを行う。これによりストレージシステム６００はＮＡＳとしてのサービスを情報処理装置１乃至３（２００）に提供することができる。なおＩ／Ｏ要求にはデータの先頭アドレス、データ長、読み出し又は書き込み等のアクセスの種別が含まれている。またデータの書き込みの場合にはＩ／Ｏ要求には書き込みデータが含まれるようにすることもできる。Ｉ／Ｏ要求の出力は、後述するプロセッサ１（第１のプロセッサ）１１９により行われる。またＣＨＦ１１０は情報処理装置３乃至４（２００）からのファイバチャネルプロトコルに従ったブロックアクセス要求を受け付ける。これによりストレージシステム６００は高速アクセス可能なデータ記憶サービスを情報処理装置３乃至４（２００）に対して提供することができる。またＣＨＡ１１０は情報処理装置５（２００）からのＦＩＣＯＮやＥＳＣＯＮ、ＡＣＯＮＡＲＣ、ＦＩＢＡＲＣ等のプロトコルに従ったブロックアクセス要求を受け付ける。これによりストレージシステム６００は情報処理装置５（２００）のようなメインフレームコンピュータに対してもデータ記憶サービスを提供することができる。
【００３４】
各チャネル制御部１１０は管理端末１６０と共に内部ＬＡＮ１５１で接続されている。これによりチャネル制御部１１０やディスク制御部１４０に実行させるマイクロプログラム等を管理端末１６０から送信しインストールすることが可能となっている。チャネル制御部１１０の構成については後述する。
【００３５】
接続部１５０はチャネル制御部１１０、共有メモリ１２０、キャッシュメモリ１３０、ディスク制御部１４０を相互に接続する。チャネル制御部１１０、共有メモリ１２０、キャッシュメモリ１３０、ディスク制御部１４０間でのデータやコマンドの授受は接続部１５０を介することにより行われる。接続部１５０は例えばクロスバスイッチで構成される。接続部１５０によりチャネル制御部１１０同士が相互に接続されることで、個々のコンピュータ上で動作するＮＡＳサーバがＬＡＮ４００を通じて相互に接続される構成に比べて、チャネル制御部１１０間の通信パフォーマンスが大幅に向上する。またこれにより高速なファイル共有機能や高速なフェイルオーバなどが可能となる。
【００３６】
共有メモリ１２０及びキャッシュメモリ１３０は、チャネル制御部１１０、ディスク制御部１４０により共有される記憶メモリである。共有メモリ１２０は主に制御情報やコマンド等を記憶するために利用されるのに対し、キャッシュメモリ１３０は主にデータを記憶するために利用される。  
例えば、あるチャネル制御部１１０が情報処理装置２００から受信したデータ入出力コマンドが書き込みコマンドであった場合には、当該チャネル制御部１１０は書き込みコマンドを共有メモリ１２０に書き込むと共に、情報処理装置２００から受信した書き込みデータをキャッシュメモリ１３０に書き込む。一方、ディスク制御部１４０は共有メモリ１２０を監視しており、共有メモリ１２０に書き込みコマンドが書き込まれたことを検出すると、当該コマンドに従ってキャッシュメモリ１３０から書き込みデータを読み出してディスク駆動装置３００に書き込む。
【００３７】
またあるチャネル制御部１１０が情報処理装置２００から受信したデータ入出力コマンドが読み出しコマンドであった場合には、読み出し対象となるデータがキャッシュメモリ１３０に存在するかどうかを調べる。ここでキャッシュメモリ１３０に存在すれば、チャネル制御部１１０はそのデータを情報処理装置２００に送信する。一方、読みだし対象となるデータがキャッシュメモリ１３０に存在しない場合には、当該チャネル制御部１１０は読み出しコマンドを共有メモリ１２０に書き込むと共に、共有メモリ１２０を監視する。読み出しコマンドが共有メモリ１２０に書き込まれたことを検出したディスク制御部１４０は、ディスク駆動装置３００から読みだし対象となるデータを読み出してこれをキャッシュメモリ１３０に書き込むと共に、その旨を共有メモリ１２０に書き込む。そして、チャネル制御部１１０は読みだし対象となるデータがキャッシュメモリ１３０に書き込まれたことを検出すると、そのデータを情報処理装置２００に送信する。  
このようにチャネル制御部１１０及びディスク制御部１４０の間では、キャッシュメモリ１３０を介してデータの授受が行われる。
【００３８】
なお、チャネル制御部１１０からディスク制御部１４０に対するデータの書き込みや読み出しの指示を共有メモリ１２０を介在させて間接的に行う構成の他、例えばチャネル制御部１１０からディスク制御部１４０に対してデータの書き込みや読み出しの指示を共有メモリ１２０を介さずに直接に行う構成とすることもできる。  
また、チャネル制御部１１０にディスク制御部１４０の機能を持たせることにより、チャネル制御部１１０がディスク駆動装置３００に記憶されたデータの読み書きを行うようにすることもできる。
【００３９】
ディスク制御部１４０はディスク駆動装置３００の制御を行う。例えば上述のように、チャネル制御部１１０が情報処理装置２００から受信したデータ書き込みコマンドに従ってディスク駆動装置３００へデータの書き込みを行う。またディスク制御部１４０は、チャネル制御部１１０から送信された論理アドレス指定によるＬＵ３１０へのＩ／Ｏ要求を、物理アドレス指定による物理ディスクへのＩ／Ｏ要求に変換する。さらにディスク駆動装置３００における物理ディスクがＲＡＩＤにより管理されている場合には、ＲＡＩＤ構成に従ったデータのアクセスを行う。またディスク制御部１４０は、ディスク駆動装置３００に記憶されたデータの複製管理の制御やバックアップ制御を行う。さらにディスク制御部１４０は、災害発生時のデータ消失防止（ディザスタリカバリ）などを目的としてプライマリサイトのストレージシステム６００のデータの複製をセカンダリサイトに設置された他のストレージシステム６１０にも記憶する制御（レプリケーション機能、又はリモートコピー機能）なども行う。
【００４０】
各ディスク制御部１４０は管理端末１６０と共に内部ＬＡＮ１５１で接続されており、相互に通信を行うことが可能である。これにより、ディスク制御部１４０に実行させるマイクロプログラム等を管理端末１６０から送信しインストールすることが可能となっている。ディスク制御部１４０の構成については後述する。
【００４１】
本実施例においては、共有メモリ１２０及びキャッシュメモリ１３０がチャネル制御部１１０及びディスク制御部１４０に対して独立に設けられていることについて記載したが、本実施例はこの場合に限られるものでなく、共有メモリ１２０又はキャッシュメモリ１３０がチャネル制御部１１０及びディスク制御部１４０の各々に分散されて設けられることも好ましい。この場合、接続部１５０は、分散された共有メモリ１２０又はキャッシュメモリ１３０を有するチャネル制御部１１０及びディスク制御部１４０を相互に接続させることになる。
【００４２】
＝＝＝管理端末＝＝＝
管理端末１６０はストレージシステム６００を保守・管理するためのコンピュータである。管理端末１６０を操作することにより、例えばディスク駆動装置３００内の物理ディスク構成の設定や、ＬＵ３１０の設定、チャネル制御部１１０やディスク制御部１４０において実行されるマイクロプログラムのインストール等を行うことができる。ここで、ディスク駆動装置３００内の物理ディスク構成の設定としては、例えば物理ディスクの増設や減設、ＲＡＩＤ構成の変更（ＲＡＩＤ１からＲＡＩＤ５への変更等）等を行うことができる。さらに管理端末１６０からは、ストレージシステム６００の動作状態の確認や故障部位の特定、チャネル制御部１１０で実行されるオペレーティングシステムのインストール等の作業を行うこともできる。これらの設定や制御は、管理端末１６０で動作するＷｅｂサーバが提供するＷｅｂページをユーザインタフェースとしてオペレータなどにより行われる。オペレータ等は、管理端末１６０を操作して障害監視する対象や内容の設定、障害通知先の設定などを行うこともできる。
【００４３】
管理端末１６０は記憶デバイス制御装置１００に内蔵されている形態とすることもできるし、外付けされている形態とすることもできる。また管理端末１６０は、記憶デバイス制御装置１００及びディスク駆動装置３００の保守・管理を専用に行うコンピュータとすることもできるし、汎用のコンピュータに保守・管理機能を持たせたものとすることもできる。
【００４４】
管理端末１６０の構成を示すブロック図を図４に示す。  
管理端末１６０は、ＣＰＵ１６１、メモリ１６２、ポート１６３、記録媒体読取装置１６４、入力装置１６５、出力装置１６６、記憶装置１６８を備える。
【００４５】
ＣＰＵ１６１は管理端末１６０の全体の制御を司るもので、メモリ１６２に格納されたプログラム１６２ｃを実行することにより上記Ｗｅｂサーバとしての機能等を実現する。メモリ１６２には、物理ディスク管理テーブル１６２ａとＬＵ管理テーブル１６２ｂとプログラム１６２ｃとが記憶されている。
【００４６】
物理ディスク管理テーブル１６２ａは、ディスク駆動装置３００に備えられる物理ディスク（ディスクドライブ）を管理するためのテーブルである。物理ディスク管理テーブル１６２ａを図５に示す。図５においては、ディスク駆動装置３００が備える多数の物理ディスクのうち、ディスク番号＃００１乃至＃００６までが示されている。それぞれの物理ディスクに対して、容量、ＲＡＩＤ構成、使用状況が示されている。  
ＬＵ管理テーブル１６２ｂは、上記物理ディスク上に論理的に設定される論理ボリウム３１０を管理するためのテーブルである。ＬＵ管理テーブル１６２ｂを図６に示す。図６においては、ディスク駆動装置３００上に設定される多数のＬＵ３１０のうち、ＬＵ番号＃１乃至＃３までが示されている。それぞれのＬＵ３１０に対して、物理ディスク番号、容量、ＲＡＩＤ構成が示されている。
【００４７】
記録媒体読取装置１６４は、記録媒体１６７に記録されているプログラムやデータを読み取るための装置である。読み取られたプログラムやデータはメモリ１６２や記憶装置１６８に格納される。従って、例えば記録媒体１６７に記録されたプログラム１６２ｃを、記録媒体読取装置１６４を用いて上記記録媒体１６７から読み取って、メモリ１６２や記憶装置１６８に格納するようにすることができる。記録媒体１６７としてはフレキシブルディスクやＣＤ−ＲＯＭ、半導体メモリ等を用いることができる。記録媒体読取装置１６４は管理端末１６０に内蔵されている形態とすることもできるし、外付されている形態とすることもできる。記憶装置１６８は、例えばハードディスク装置や半導体記憶装置等である。入力装置１６５はオペレータ等による管理端末１６０へのデータ入力等のために用いられる。入力装置１６５としては例えばキーボードやマウス等が用いられる。出力装置１６６は情報を外部に出力するための装置である。出力装置１６６としては例えばディスプレイやプリンタ等が用いられる。ポート１６３は内部ＬＡＮ１５１に接続されており、これにより管理端末１６０はチャネル制御部１１０やディスク制御部１４０等と通信を行うことができる。またポート１６３は、ＬＡＮ４００に接続するようにすることもできるし、電話回線とも接続するようにすることもできる。
【００４８】
＝＝＝外観図＝＝＝
次に、本実施の形態に係るストレージシステム６００の外観構成を図２に示す。また、記憶デバイス制御装置１００の外観構成を図３に示す。  
図２に示すように、本実施の形態に係るストレージシステム６００は記憶デバイス制御装置１００及びディスク駆動装置３００がそれぞれの筐体に納められた形態をしている。記憶デバイス制御装置１００の筐体の両側にディスク駆動装置３００の筐体が配置されている。
【００４９】
記憶デバイス制御装置１００は、正面中央部に管理端末１６０が備えられている。管理端末１６０はカバーで覆われており、図３に示すようにカバーを開けることにより管理端末１６０を使用することができる。なお図３に示した管理端末１６０はいわゆるノート型パーソナルコンピュータの形態をしているが、どのような形態とすることも可能である。
【００５０】
管理端末１６０の下部には、チャネル制御部１１０やディスク制御部１４０、キャッシュメモリ１３０、共有メモリ１２０、接続部１５０を装着するためのスロットが設けられている。チャネル制御部１１０やディスク制御部１４０、キャッシュメモリ１３０、共有メモリ１２０、接続部１５０は回路基板を備えてボードとして構成されており、これらのボードが各スロットに装着される。各スロットにはこれらのボードを装着するためのガイドレールが設けられている。ガイドレールに沿って各ボードをスロットに挿入することにより、チャネル制御部１１０やディスク制御部１４０、キャッシュメモリ１３０、共有メモリ１２０、接続部１５０を記憶デバイス制御装置１００に装着することができる。また各スロットに装着されたボードは、ガイドレールに沿って手前方向に引き抜くことにより取り外すことができる。また各スロットの奥手方向正面部には、各ボードを記憶デバイス制御装置１００と電気的に接続するためのコネクタが設けられている。チャネル制御部１１０には、ＣＨＮ１１０、ＣＨＦ１１０、ＣＨＡ１１０があるが、いずれのチャネル制御部１１０もサイズやコネクタの位置、コネクタのピン配列等に互換性をもたせているため、いずれのチャネル制御部１１０も同一のスロットに装着することが可能である。
【００５１】
スロットに装着された複数のチャネル制御部１１０は、同種の複数のチャネル制御部１１０でクラスタ１８０を構成する。例えば２枚のＣＨＮ１１０をペアとしてクラスタ１８０を構成することができる。クラスタ１８０を構成することにより、チャネル制御部１１０に障害が発生した場合でも、障害が発生したチャネル制御部１１０がそれまで行っていた処理を同一クラスタ１８０内の他のチャネル制御部１１０に引き継ぐようにすることができる（フェイルオーバ制御）。２枚のＣＨＮ１１０でクラスタ１８０が構成される様子を示す図を図１２に示す。
【００５２】
なお、上述したように、チャネル制御部１１０やディスク制御部１４０、キャッシュメモリ１３０、共有メモリ１２０、接続部１５０は上記各スロットに装着可能なボードとして構成されるが、ボードは複数枚数の回路基板を備えて構成されているようにすることもできる。つまり、複数枚数の回路基板から構成されていても、各回路基板が相互に接続されて一つのユニットとして構成され、記憶デバイス制御装置１００のスロットに対して一体的に装着できる場合は、ボードの概念に含まれる。  
また記憶デバイス制御装置１００には、チャネル制御部１１０等から発生する熱を放出するためのファン１７０が設けられている。ファン１７０は記憶デバイス制御装置１００の上面部に設けられる他、スロットの上部にも設けられている。
【００５３】
ところで、記憶デバイス制御装置１００およびディスク駆動装置３００としては、例えばＳＡＮ対応として製品化されている従来構成の装置を利用することができる。特に上記のようにＣＨＮ１１０のコネクタをＣＨＡ１１０やＣＨＦ１１０のコネクタと互換性を持たせ、従来構成の筐体に設けられているスロットにそのまま装着できるようにすることで従来構成の装置をより簡単に利用することができる。つまり本実施例のストレージシステム６００は、既存の製品を利用することで容易に構築することができる。
【００５４】
＝＝＝チャネル制御部＝＝＝
本実施の形態に係るストレージシステム６００は、上述の通りＣＨＮ１１０により情報処理装置１乃至３（２００）からのファイルアクセス要求を受け付け、ＮＡＳとしてのサービスを情報処理装置１乃至３（２００）に提供する。
【００５５】
ＣＨＮ１１０のハードウエア構成を図７に示す。この図に示すようにＣＨＮ１１０のハードウエアは回路基板１１８を備えた一つのユニット化されたボードとして構成される。ＣＨＮ１１０は一枚もしくは複数枚の回路基板１１８を含んで構成される。回路基板１１８には、プロセッサ１（１１９）、プロセッサ２（第２のプロセッサ）１１２、ＤＭＡ（データ転送装置）１１４、メモリ１（第３のメモリ）１１７、メモリ２（第２のメモリ）１１３、メモリコントローラ１（１１１）、メモリコントローラ２（１１１）、及びコネクタ１１６が形成されている。プロセッサ１（１１９）、プロセッサ２（第２のプロセッサ）１１２、ＤＭＡ（データ転送装置）１１４、メモリコントローラ１（１１１）、及びメモリコントローラ２（１１１）はそれぞれＰＣＩ（Peripheral Component Interconnect）バスで通信可能に接続されている。ただし、必ずしも全てがＰＣＩバスで接続されている必要はなく、一部又は全ての接続が他の規格に準拠する構成とすることもできる。
【００５６】
プロセッサ２（１１２）、メモリ２（１１３）及びメモリコントローラ２（１１１）は、情報処理装置２００との間で通信を行うための通信インタフェース機能を提供し、ファイルアクセス処理部として機能する。ＣＨＮ１１０の場合は、例えばＴＣＰ／ＩＰプロトコルに従って情報処理装置２００から送信されたファイルアクセス要求の受信や、データの送受信の制御を行う。メモリコントローラ２（１１１）と接続されるコネクタ１１６は情報処理装置２００と通信を行うためのコネクタである。  
プロセッサ２（１１２）は、メモリ２（１１３）に記憶された様々なプログラムを実行することにより、ＣＨＮ１１０をＮＡＳとして機能させるための制御を司る。
【００５７】
メモリ２（１１３）には様々なプログラムやデータが記憶される。例えば情報処理装置２００との間で授受されるデータが記憶される。また図９に示すメタデータ７３０やロックテーブル７２０、また図１１に示すＮＡＳマネージャ７０６等の各種プログラムが記憶される。メタデータ７３０はファイルシステムが管理しているファイルに対応させて生成される情報である。メタデータ７３０には例えばファイルのデータが記憶されているＬＵ３１０上のアドレスやデータサイズなど、ファイルの保管場所を特定するための情報が含まれる。メタデータ７３０にはファイルの容量、所有者、更新時刻等の情報が含まれることもある。また、メタデータ７３０はファイルだけでなくディレクトリに対応させて生成されることもある。メタデータ７３０の例を図１３に示す。メタデータ７３０はディスク駆動装置３００上の各ＬＵ３１０にも記憶されている。
【００５８】
ロックテーブル７２０は、情報処理装置１乃至３（２００）からのファイルアクセスに対して排他制御を行うためのテーブルである。排他制御を行うことにより情報処理装置１乃至３（２００）でファイルを共有することができる。ロックテーブル７２０を図１４に示す。図１４に示すようにロックテーブル７２０にはファイルロックテーブル７２１とＬＵロックテーブル７２２とがある。ファイルロックテーブル７２１は、ファイル毎にロックが掛けられているか否かを示すためのテーブルである。いずれかの情報処理装置２００によりあるファイルがオープンされている場合に当該ファイルにロックが掛けられる。ロックが掛けられたファイルに対する他の情報処理装置２００によるアクセスは禁止される。ＬＵロックテーブル７２２は、ＬＵ３１０毎にロックが掛けられているか否かを示すためのテーブルである。いずれかの情報処理装置２００により、あるＬＵ３１０に対するアクセスが行われている場合に当該ＬＵ３１０にロックが掛けられる。ロックが掛けられたＬＵ３１０に対する他の情報処理装置２００によるアクセスは禁止される。  
なお、メモリ２（１１３）に記憶されるデータの記憶アドレス（記憶位置）は、プロセッサ２（１１２）により管理される。
【００５９】
プロセッサ１（１１９）、メモリ１（１１７）、ＤＭＡ１１４、及びメモリコントローラ１（１１１）は、ディスク制御部１４０やキャッシュメモリ１３０、共有メモリ１２０、管理端末１６０との間でデータやコマンドの授受を行う。プロセッサ１（１１９）は、メモリ２（１１３）に記憶されたデータのキャッシュメモリ１３０への転送や、キャッシュメモリ１３０に記憶されたデータのメモリ２（１１３）への転送をＤＭＡ１１４に実行させる。すなわちメモリ２（１１３）とキャッシュメモリ１３０との間のデータの転送はＤＭＡ１１４により行われる。
【００６０】
プロセッサ１（１１９）は、プロセッサ２（１１２）が情報処理装置２００から受信したファイルアクセス要求に対応するブロックアクセス要求を、共有メモリ１２０を介してディスク制御部１４０に出力する。またプロセッサ１（１１９）はキャッシュメモリ１３０に記憶されるデータの記憶アドレス（記憶位置）、及びメモリ１（１１７）に記憶されるデータの記憶アドレス（記憶位置）を管理している。  
キャッシュメモリ１３０とメモリ２（１１３）との間で行われるデータ転送の詳細については、後述する。
【００６１】
次にＣＨＦ１１０及びＣＨＡ１１０のハードウエア構成を示す図を図８に示す。ＣＨＦ１１０及びＣＨＡ１１０も、ＣＨＮ１１０と同様に回路基板１１８を備えた一つのユニット化されたボードとして構成される。ＣＨＮ１１０と同様、ＣＨＡ１１０やＣＨＦ１１０は、複数枚数の回路基板を含んで構成されるようにすることもできる。またＣＨＦ１１０及びＣＨＡ１１０は、ＣＨＮ１１０とサイズやコネクタ１１６の位置、コネクタ１１６のピン配列等に互換性をもたせている。
【００６２】
ＣＨＦ１１０及びＣＨＡ１１０の回路基板１１８には、プロセッサ１（１１９）、プロトコルチップ１１５、ＤＭＡ１１４、メモリ１（１１７）、メモリ２（１１３）、メモリコントローラ１（１１１）、メモリコントローラ２（１１１）、コネクタ１１６が形成されている。プロセッサ１（１１９）、プロトコルチップ１１５、ＤＭＡ１１４、メモリコントローラ１（１１１）、及びメモリコントローラ２（１１１）はそれぞれＰＣＩ（Peripheral Component Interconnect）バスで通信可能に接続されている。ただし、必ずしも全てがＰＣＩバスで接続されている必要はなく、一部又は全ての接続が他の規格に準拠する構成とすることもできる。
【００６３】
プロトコルチップ１１５、メモリ２（１１３）及びメモリコントローラ２（１１１）は、情報処理装置２００との間で通信を行うための通信インタフェース機能を提供する。ＣＨＦ１１０の場合は、例えばファイバチャネルプロトコルに従って情報処理装置２００から送信されたブロックアクセス要求を受信する。ＣＨＡ１１０の場合は、例えばＦＩＣＯＮ（登録商標）やＥＳＣＯＮ（登録商標）、ＡＣＯＮＡＲＣ（登録商標）、ＦＩＢＡＲＣ（登録商標）等のプロトコルに従って情報処理装置２００から送信されたブロックアクセス要求を受信する。メモリコントローラ２（１１１）に接続されるコネクタ１１６は情報処理装置２００と通信を行うためのコネクタである。ＣＨＦ１１０の場合はＳＡＮ５００に接続可能なコネクタであり、例えばファイバチャネルに対応している。ＣＨＡ１１０の場合は情報処理装置５と接続可能なコネクタであり、ＦＩＣＯＮ（登録商標）やＥＳＣＯＮ（登録商標）、ＡＣＯＮＡＲＣ（登録商標）、ＦＩＢＡＲＣ（登録商標）等に対応している。
【００６４】
メモリ２（１１３）には例えば情報処理装置２００との間で授受されるデータが記憶される。ＣＨＦ１１０やＣＨＡ１１０の場合は、メモリ２（１１３）に記憶されるデータの記憶アドレス（記憶位置）は、プロセッサ１（１１９）により管理される。  
プロセッサ１（１１９）、メモリ１（１１７）、ＤＭＡ１１４、及びメモリコントローラ１（１１１）は、ディスク制御部１４０やキャッシュメモリ１３０、共有メモリ１２０、管理端末１６０との間でデータやコマンドの授受を行う。プロセッサ１（１１９）は、メモリ２（１１３）に記憶されたデータのキャッシュメモリ１３０への送信や、キャッシュメモリ１３０に記憶されたデータのメモリ２（１１３）への送信をＤＭＡ１１４に実行させる。すなわちメモリ２（１１３）とキャッシュメモリ１３０との間のデータの転送はＤＭＡ１１４により行われる。  
プロセッサ１（１１９）は、情報処理装置２００から受信したブロックアクセス要求を、共有メモリ１２０を介してディスク制御部１４０に出力する。またプロセッサ１（１１９）はキャッシュメモリ１３０に記憶されるデータの記憶アドレス（記憶位置）、及びメモリ１（１１７）に記憶されるデータの記憶アドレス（記憶位置）を管理している。つまり、ＣＨＡ１１０やＣＨＦ１１０の場合は、メモリ２（１１３）とキャッシュメモリ１３０との間のデータの転送は、プロセッサ１（１１９）により管理されるキャッシュメモリ１３０及びメモリ２（１１３）のデータの記憶位置に基づいて行われる。
【００６５】
＝＝＝ディスク制御部＝＝＝
次にディスク制御部１４０の構成を示す図を図１０に示す。  
ディスク制御部１４０は、インタフェース部１４１、メモリ１４３、ＣＰＵ１４２、ＮＶＲＡＭ（nonvolatile random-access memory）１４４、コネクタ１４５を備え、これらが一体的なユニットとして形成されている。
【００６６】
インタフェース部１４１は、接続部１５０を介してチャネル制御部１１０等との間で通信を行うための通信インタフェースや、ディスク駆動装置３００との間で通信を行うための通信インタフェースを備えている。  
ＣＰＵ１４２は、ディスク制御部１４０全体の制御を司ると共に、チャネル制御部１１０やディスク駆動装置３００、管理端末１６０との間の通信を行う。ＣＰＵ１４２によりメモリ１４３やＮＶＲＡＭ１４４に格納された各種プログラムが実行されることにより本実施の形態に係るディスク制御部１４０の機能が実現される。ディスク制御部１４０により実現される機能としては、ディスク駆動装置３００の制御やＲＡＩＤ制御、ディスク駆動装置３００に記憶されたデータの複製管理やバックアップ制御、リモートコピー制御等である。  
ＮＶＲＡＭ１４４はＣＰＵ１４２の制御を司るプログラムを格納する不揮発性メモリである。ＮＶＲＡＭ１４４に記憶されるプログラムの内容は、管理端末１６０や、ＮＡＳマネージャ７０６からの指示により書き込みや書き換えを行うことができる。  
またディスク制御部１４０はコネクタ１４５を備えている。コネクタ１４５が記憶デバイス制御装置１００側のコネクタと嵌合することにより、ディスク制御部１４０は記憶デバイス制御装置１００と電気的に接続される。
【００６７】
＝＝＝ソフトウエア構成＝＝＝
次に、本実施の形態に係るストレージシステム６００におけるソフトウエア構成図を図１１に示す。  
オペレーティングシステム７０１上では、ＲＡＩＤマネージャ７０８、ボリウムマネージャ７０７、ＳＶＰ（SerVice Processor）マネージャ７０９、ファイルシステムプログラム７０３、ネットワーク制御プログラム７０２、バックアップ管理プログラム７１０、障害管理プログラム７０５、ＮＡＳマネージャ７０６などのソフトウエアが動作する。
【００６８】
オペレーティングシステム７０１上で動作するＲＡＩＤマネージャ７０８は、ディスク制御部１４０で実行されるＲＡＩＤ制御部７４０に対するパラメータの設定やＲＡＩＤ制御部７４０を制御する機能を提供する。ＲＡＩＤマネージャ７０８はオペレーティングシステム７０１やオペレーティングシステム７０１上で動作する他のアプリケーション、もしくは管理端末１６０からパラメータや制御指示情報を受け付けて、受け付けたパラメータのＲＡＩＤ制御部７４０への設定や、ＲＡＩＤ制御部指示情報に対応する制御コマンドの送信を行う。
【００６９】
ボリウムマネージャ７０７は、ＲＡＩＤ制御部７４０によって提供されるＬＵ３１０をさらに仮想化した仮想化論理ボリウムをファイルシステムプログラム７０３に提供する。１つの仮想化論理ボリウムは１以上の論理ボリウムによって構成される。  
ファイルシステムプログラム７０３の主な機能は、ネットワーク制御プログラム７０２が受信したファイルアクセス要求に指定されているファイル名とそのファイル名が格納されている仮想化論理ボリウム上のアドレスとの対応づけを管理することである。例えば、ファイルシステムプログラム７０３はファイルアクセス要求に指定されているファイル名に対応する仮想化論理ボリウム上のアドレスを特定する。  
ネットワーク制御プログラム７０２は、ＮＦＳ（Network File System）７１１とＳａｍｂａ７１２の２つのファイルシステムプロトコルを含んで構成される。ＮＦＳ７１１は、ＮＦＳ７１１が動作するＵＮＩＸ（登録商標）系の情報処理装置２００からのファイルアクセス要求を受け付ける。一方、Ｓａｍｂａ７１２はＣＩＦＳ（Common Interface File System）７１３が動作するＷｉｎｄｏｗｓ（登録商標）系の情報処理装置２００からのファイルアクセス要求を受け付ける。
【００７０】
ＮＡＳマネージャ７０６は、ストレージシステム６００について、その動作状態の確認や設定などを行うためのプログラムである。ＮＡＳマネージャ７０６はＷｅｂサーバとしての機能も有し、情報処理装置２００からストレージシステム６００の設定や制御を行うためのＷｅｂページを情報処理装置２００に提供する。そしてＮＡＳマネージャ７０６は、Ｗｅｂページに対する操作に起因して情報処理装置２００から送信される設定や制御に関するデータを受信してそのデータに対応する設定や制御を実行する。これにより、情報処理装置１乃至３（２００）からストレージシステム６００の様々な設定や制御を行うことができる。
【００７１】
バックアップ管理プログラム７１０は、ディスク駆動装置３００に記憶されているデータをＬＡＮ４００経由またはＳＡＮ５００経由でバックアップするためのプログラムである。  
障害管理プログラム７０５は、クラスタ１８０を構成するチャネル制御部１１０間で、上述したフェイルオーバ制御を行うためのプログラムである。  
ＳＶＰマネージャ７０９は、管理端末１６０からの要求に応じて各種のサービスを管理端末１６０に提供する。例えば、ＬＵ３１０の設定内容やＲＡＩＤの設定内容等のストレージシステム６００に関する各種設定内容の管理端末１６０への提供や、管理端末１６０から入力されたストレージシステム６００に関する各種設定の反映等を行う。  
セキュリティ管理プログラム７１６は、コンピュータウイルスの検知、侵入監視、コンピュータウイルス検知プログラムの更新管理、感染したコンピュータウイルスの駆除、ファイアウォール機能などを実現する。
【００７２】
＝＝＝ＤＭＡによるデータ転送＝＝＝
次に、本実施の形態に係るＣＨＮ１１０におけるメモリ２（１１３）とキャッシュメモリ１３０との間のデータ転送について説明する。  
メモリ２は、図１６に示すように、データ領域とスクリプト領域とを有する。データ領域には、キャッシュメモリ１３０に転送されるデータ、あるいはキャッシュメモリ１３０から転送されたデータが記憶される。データ領域に記憶されるこれらの各データの記憶位置や、各データの記憶領域のサイズ（エリア長）等は、各データに対応してプロセッサ２用スクリプト（第２のデータ転送情報）としてメモリ２（１１３）のスクリプト領域に記憶される。プロセッサ２用スクリプトは、「スクリプト識別子」、「領域先頭アドレス」、「エリア長」、「連続Ｆｌａｇ」の各欄を備える。「スクリプト識別子」は、プロセッサ２用スクリプト毎に付される識別番号を示す。「領域先頭アドレス」は、データ領域に記憶されるデータの記憶アドレスを示す。「エリア長」はデータの記憶領域のサイズを示す。「連続Ｆｌａｇ」は、データ領域に記憶される複数のデータをひとまとまりとして転送したい場合に設定されるフラグである。メモリ２（１１３）に記憶されるこれらのプロセッサ２用スクリプトは、プロセッサ２（１１２）により設定され、メモリ２（１１３）のスクリプト領域に書き込まれる。
【００７３】
一方、図１８に示すように、キャッシュメモリ１３０のデータ領域には、メモリ２（１１３）に転送されるデータ、あるいはメモリ２（１１３）から転送されたデータが記憶される。データ領域に記憶されるこれらの各データの記憶位置や、各データの記憶領域のサイズ（エリア長）等は、図１７に示すように、各データに対応してプロセッサ１用スクリプト（第１のデータ転送情報）としてメモリ１（１１７）のスクリプト領域に記憶される。プロセッサ１用スクリプトは、「スクリプト識別子」、「領域先頭アドレス」、「エリア長」、「連続Ｆｌａｇ」の各欄を備える。これらの各欄の意味は、メモリ２（１１３）におけるプロセッサ２用スクリプトと同様である。メモリ１（１１７）に記憶されるこれらのプロセッサ１用スクリプトは、プロセッサ１（１１９）により設定され、メモリ１（１１７）のスクリプト領域に書き込まれる。
【００７４】
次に、これらの各スクリプトに基づいてメモリ２（１１３）とキャッシュメモリ１３０との間のデータ転送を制御するＤＭＡ１１４の構成について、図１５を参照しながら説明する。  
ＤＭＡ１１４は、ＤＭＡ制御部８０１、ＰＣＩインタフェース８０２、転送起動レジスタ８０３、転送レジスタ８０４、初期設定レジスタ８０５、スクリプトレジスタ８０６を備える。  
ＤＭＡ制御部８０１はＤＭＡ１１４全体の制御を司る。例えば上記スクリプトの読み込みや、データの転送制御、終了ステータス（データの転送の結果）の出力等を行う。ＤＭＡ制御部８０１は、ハードウエアのみで構成されるようにすることもできるし、ハードウエアとソフトウエアとの組み合わせにより構成されるようにすることもできる。  
ＰＣＩインタフェース８０２は、ＰＣＩバスを介してメモリコントローラ１１１等と通信を行うための通信インタフェースである。ただし、ＤＭＡ１１４とメモリコントローラ１１１等との接続がＰＣＩ以外の他の規格に準拠している構成の場合には、ＰＣＩインタフェース８０２は、それぞれの規格に準拠する通信インタフェースとすることができる。  
転送起動レジスタ８０３は、「要求転送長」、「転送方向」、「プロセッサ２開始スクリプト番号」、「プロセッサ１開始スクリプト番号」の各レジスタを備える。
【００７５】
「要求転送長」レジスタは、メモリ２（１１３）とキャッシュメモリ１３０との間で転送されるデータの総データ長が記載される。要求転送長は、情報処理装置２００から受信したファイルアクセス要求に基づいて決定される。例えばプロセッサ２（１１２）が情報処理装置２００から８キロバイト（ｋＢ）のデータの書き込み要求を受信した場合には、「要求転送長」レジスタには８ｋＢが記憶される。詳細は後述するが、要求転送長は、ファイルアクセス要求を受信するプロセッサ２（１１２）から一旦プロセッサ１（１１９）に送信され、プロセッサ１（１１９）がＤＭＡ１１４にデータの転送を開始させる際に、プロセッサ１（１１９）によりＤＭＡ１１４の転送起動レジスタ８０３に書き込まれる。
【００７６】
「転送方向」レジスタは、メモリ２（１１３）からキャッシュメモリ１３０への転送であるか、キャッシュメモリ１３０からメモリ２（１１３）への転送であるかが記載される。転送方向は、プロセッサ２（１１２）が情報処理装置２００から受信したファイルアクセス要求に基づいて決定される。例えば、プロセッサ２（１１２）が情報処理装置２００からデータの書き込み要求を受信した場合には、転送方向はメモリ２（１１３）からキャッシュメモリ１３０となる。また、プロセッサ２（１１２）が情報処理装置２００からデータの読み出し要求を受信した場合には、転送方向はキャッシュメモリ１３０からメモリ２（１１３）となる。詳細は後述するが、転送方向は、要求転送長と同様に、ファイルアクセス要求を受信するプロセッサ２（１１２）から一旦プロセッサ１（１１９）に送信され、プロセッサ１（１１９）がＤＭＡ１１４にデータの転送を開始させる際に、プロセッサ１（１１９）によりＤＭＡ１１４の転送起動レジスタ８０３に書き込まれる。
【００７７】
「プロセッサ２開始スクリプト番号」レジスタには、メモリ２（１１３）に記憶されたプロセッサ２用スクリプトの識別子が記載される。ＤＭＡ制御部８０１は、「プロセッサ２開始スクリプト番号」レジスタに記憶されたプロセッサ２用スクリプトをメモリ２（１１３）から読み出して、データの転送を開始する。プロセッサ２開始スクリプト番号は、メモリ２（１１３）を制御するプロセッサ２（１１２）から一旦プロセッサ１（１１９）に送信され、プロセッサ１（１１９）がＤＭＡ１１４にデータの転送を開始させる際に、プロセッサ１（１１９）によりＤＭＡ１１４の転送起動レジスタ８０３に書き込まれる。あるいは、プロセッサ２用スクリプトに連続Ｆｌａｇが設定されている場合には、ＤＭＡ制御部８０１により、プロセッサ２開始スクリプト番号が更新される。
【００７８】
「プロセッサ１開始スクリプト番号」には、メモリ１（１１７）に記憶されたプロセッサ１用スクリプトの識別子が記載される。ＤＭＡ制御部８０１は、「プロセッサ１開始スクリプト番号」レジスタに記憶されたプロセッサ１用スクリプトをメモリ１（１１７）から読み出して、データの転送を開始する。プロセッサ１開始スクリプト番号は、キャッシュメモリ１３０を制御するプロセッサ１（１１２）がＤＭＡ１１４にデータの転送を開始させる際に、プロセッサ１（１１９）によりＤＭＡ１１４の転送起動レジスタ８０３に書き込まれる。あるいは、プロセッサ１用スクリプトに連続Ｆｌａｇが設定されている場合には、ＤＭＡ制御部８０１により、プロセッサ１開始スクリプト番号が更新される。
【００７９】
転送レジスタ８０４は、「転送単位」、「転送元アドレス」、「転送先アドレス」、「残転送長」の各レジスタを備える。  
「転送単位」レジスタには１回のデータ転送におけるデータ転送長が記載される。１回のデータ転送におけるデータ転送長は、ＤＭＡ制御部８０１により算出される。詳細は後述するが、転送単位は図２２に示すフローに従ってＤＭＡ制御部８０１により決定される。  
「転送元アドレス」レジスタは、転送前のデータの記憶位置を示す。転送元アドレスは、転送方向と、プロセッサ１用スクリプトあるいはプロセッサ２用スクリプトとの記載に基づいて決定される。データの転送中は、転送の進捗と共にＤＭＡ制御部８０１によって「転送元アドレス」レジスタの値が適宜インクリメント、あるいはデクリメントされる。  
「転送先アドレス」レジスタは、転送後のデータの記憶位置を示す。転送先アドレスは、転送方向と、プロセッサ１用スクリプトあるいはプロセッサ２用スクリプトとの記載に基づいて決定される。データの転送中は、転送の進捗と共にＤＭＡ制御部８０１によって「転送先アドレス」レジスタの値が適宜インクリメント、あるいはデクリメントされる。  
「残転送長」レジスタは、要求転送長から、転送済みのデータ転送長を引いた値を示す。残転送長は、データ転送の進捗と共に、ＤＭＡ制御部８０１によって適宜更新される。
【００８０】
初期設定レジスタ８０５は、「プロセッサ２用スクリプト領域先頭アドレス」、「プロセッサ２用スクリプト数」、「プロセッサ２用スクリプトサイズ」、「プロセッサ１用スクリプト領域先頭アドレス」、「プロセッサ１用スクリプト数」、「プロセッサ１用スクリプトサイズ」の各レジスタを備える。初期設定レジスタ８０５のこれらの値は、例えばチャネル制御部１１０のパワーオンリセット時に、ＤＭＡ制御部８０１により、ＣＨＮ１１０が備えるＮＶＲＡＭから読み込まれるようにすることができる。  
「プロセッサ２用スクリプト領域先頭アドレス」レジスタは、メモリ２（１１３）におけるスクリプト領域の先頭アドレスを示す。つまり、プロセッサ２用スクリプト０が記憶されるアドレスを示す。  
「プロセッサ２用スクリプト数」レジスタは、プロセッサ２用スクリプトの数を示す。図１６に示す例ではＮ＋１となる。  
「プロセッサ２用スクリプトサイズ」レジスタは、プロセッサ２用スクリプトのサイズを示す。このようにプロセッサ２用スクリプトのサイズを固定とすることにより、プロセッサ２用スクリプトの識別子を特定することにより、スクリプト領域の先頭アドレスを基準とした、目的のプロセッサ２用スクリプトの記憶アドレスを算出することができる。
【００８１】
「プロセッサ１用スクリプト領域先頭アドレス」レジスタ、「プロセッサ１用スクリプト数」レジスタ、及び「プロセッサ１用スクリプトサイズ」レジスタは、それぞれプロセッサ２用スクリプトと同様である。
【００８２】
スクリプトレジスタ８０６は、「プロセッサ２用実行スクリプト番号」、「プロセッサ２用有効エリア長」、「プロセッサ１用実行スクリプト番号」、「プロセッサ１用有効エリア長」の各レジスタを備える。  
「プロセッサ２用実行スクリプト番号」レジスタは、現在実行中のプロセッサ２用スクリプトの識別子を示す。プロセッサ２用実行スクリプト番号は、ＤＭＡ制御部８０１により設定される。  
「プロセッサ２用有効エリア長」レジスタは、プロセッサ２用スクリプトのエリア長欄に記載されたエリア長から、転送済みのデータサイズを引いた値である。データ転送の進捗と共に、ＤＭＡ制御部８０１によって適宜デクリメントされる。  
「プロセッサ１用実行スクリプト番号」レジスタ、及び「プロセッサ１用有効エリア長」レジスタは、「プロセッサ２用実行スクリプト番号」レジスタ、及び「プロセッサ２用有効エリア長」レジスタと同様である。
【００８３】
＝＝＝データ転送の流れ＝＝＝
次に、メモリ２（１１３）とキャッシュメモリ１３０との間で行われるデータ転送の処理流れについて、図１９乃至図２３に示すフローチャートを用いて説明する。  
まずプロセッサ２（１１２）はデータ領域を確保する（S1000）。データ領域を確保するとは、情報処理装置２００から送信されたファイルアクセス要求が書きこみ要求の場合は、書き込みデータをメモリ２（１１３）に記憶するということである。また情報処理装置２００から送信されたファイルアクセス要求が読み出し要求の場合は、読み出しデータを記憶するための記憶領域をメモリ２（１１３）に確保するということである。ここで確保されるデータ領域は一つとは限らない。メモリ２（１１３）におけるデータの記憶可能領域の分布状況等によっては、一つのファイルアクセス要求に係るデータを複数に分割してメモリ２（１１３）に記憶せざるを得ない場合もあるからである。
【００８４】
続いてプロセッサ２（１１２）は、プロセッサ２用スクリプトを作成する（S1001）。S1000 において確保したデータ領域の先頭アドレスやエリア長等をプロセッサ２用スクリプトとして、メモリ２（１１３）のスクリプト領域に記憶する。S1000において確保したデータ領域が複数の場合には、それぞれのデータ領域毎にプロセッサ２用スクリプトが作成される。その際、各プロセッサ２用スクリプトをひとまとまりに管理するために、連続Ｆｌａｇがセットされる。  
これによりメモリ２（１１３）におけるデータの記憶位置を示す情報を含むプロセッサ２用スクリプトがメモリ２（１１３）に書き込まれる。
【００８５】
そしてプロセッサ２（１１２）は、プロセッサ１（１１９）に対して、データ転送要求コマンドを送信する（S1002）。データ転送要求コマンドには、S1001で作成したプロセッサ２用スクリプトの識別子と、要求転送長と、転送方向とが含まれる。要求転送長は、ファイルアクセス要求に記載された読み書きされるデータのサイズとなる。  
そうするとプロセッサ１（１１９）はプロセッサ２（１１２）から送信されたデータ転送要求コマンドを解析する（S1003）。これによりプロセッサ２用スクリプトの番号と要求転送長と転送方向とを認識する。  
つづいてプロセッサ１（１１９）は、要求転送長で指定されたサイズのデータ領域をキャッシュメモリ１３０に確保する（S1004）。ここでもキャッシュメモリ１３０における記憶可能メモリ空間の分布状況等によっては、複数のデータ領域が確保される場合がある。
【００８６】
そしてプロセッサ１（１１９）は、キャッシュメモリ１３０に確保した各データ領域に対応して、プロセッサ１用スクリプトを作成する（S1005）。複数のデータ領域が確保された場合には、各プロセッサ１用スクリプトをひとまとまりに管理するために、連続Ｆｌａｇがセットされる。  
これによりキャッシュメモリ１３０におけるデータの記憶位置を示す情報を含むプロセッサ１用スクリプトがメモリ１（１１７）に書き込まれる。  
その後プロセッサ１（１１９）は、ＤＭＡ１１４に対して、要求転送長、転送方向、プロセッサ２用スクリプトの識別子、及びプロセッサ１用スクリプトの識別子を含む転送起動情報を送信し、ＤＭＡ１１４の転送起動レジスタ８０３にこれらのデータを書き込む。これによりプロセッサ１（１１９）はＤＭＡ１１４を起動する（S1006）。  
そうすると、ＤＭＡ１１４はＤＭＡ転送処理を開始する（S1007）。ＤＭＡ転送処理については、図２０乃至図２３を用いて説明する。
【００８７】
まずＤＭＡ制御部８０１が、転送起動情報に記載されたプロセッサ１用スクリプトの識別子とプロセッサ２用スクリプトの識別子とにより、プロセッサ１用スクリプトとプロセッサ２用スクリプトとをそれぞれ取得する（S2000）。スクリプトの取得は図２１に示すように行われる。
【００８８】
まずＤＭＡ制御部８０１は、転送起動情報に基づいて、プロセッサ１（１１９）から送信された転送起動情報に記載されたプロセッサ１用スクリプトの識別子と、初期設定レジスタ８０５に記憶されたプロセッサ１用スクリプトサイズとから、メモリ１（１１７）におけるプロセッサ１用スクリプトの記憶アドレスを算出する（S3000）。プロセッサ１用スクリプトの記憶アドレスが算出できたら、続いてメモリ１（１１７）のその記憶アドレスからプロセッサ１用スクリプトを読み出す（S3001）。ここで、ＤＭＡ制御部８０１は、プロセッサ１用スクリプトに記載された領域先頭アドレスを、転送方向に応じて転送レジスタ８０４の転送先アドレス欄又は転送元アドレス欄に記載する。そしてスクリプトレジスタ８０６のプロセッサ１用実行スクリプト番号欄、プロセッサ１用有効エリア長欄にそれぞれ、プロセッサ１用スクリプトに記載されたスクリプト識別子、エリア長欄に記載されたエリア長を書き込む（S3002）。
【００８９】
同様に、ＤＭＡ制御部８０１は、転送起動情報に基づいて、プロセッサ１（１１９）から送信された転送起動情報に記載されたプロセッサ２用スクリプトの識別子と、初期設定レジスタ８０５に記憶されたプロセッサ２用スクリプトサイズとから、メモリ２（１１３）におけるプロセッサ２用スクリプトの記憶アドレスを算出する（S3000）。プロセッサ２用スクリプトの記憶アドレスが算出できたら、続いてメモリ２（１１３）のその記憶アドレスからプロセッサ２用スクリプトを読み出す（S3001）。ここで、ＤＭＡ制御部８０１は、プロセッサ２用スクリプトに記載された領域先頭アドレスを、転送方向に応じて転送レジスタ８０４の転送元アドレス欄又は転送先アドレス欄に記載する。そしてスクリプトレジスタ８０６のプロセッサ２用実行スクリプト番号欄、プロセッサ２用有効エリア長欄にそれぞれ、プロセッサ２用スクリプトに記載されたスクリプト識別子、エリア長欄に記載されたエリア長を書き込む（S3002）。  
続いてＤＭＡ制御部８０１は転送単位を決定する（S2001）。転送単位の決定は図２２に示すフローに従って行われる。
【００９０】
まずＤＭＡ制御部８０１は、転送レジスタ８０４の残転送長欄に残転送長を書き込む。転送開始時は、要求転送長を書き込む（S4000）。  
そしてプロセッサ１の有効エリア長とプロセッサ２の有効エリア長と、残転送長のうちの最小のものを転送単位とする（S4001 乃至S4007）。  
そしてＤＭＡ制御部８０１は、転送レジスタ８０４に記憶された転送元アドレスに記憶されたデータを、転送先アドレスに、転送単位のデータサイズだけ転送する（S2002）。
【００９１】
転送実行中は、転送レジスタ８０４の転送元アドレス、転送先アドレス、及び残転送長が順次更新されると共に、スクリプトレジスタ８０６のプロセッサ２用有効エリア長及びプロセッサ１用有効エリア長が順次転送済みデータのサイズの分ずつ減少される。  
スクリプトレジスタ８０６のプロセッサ２用有効エリア長、プロセッサ１用有効エリア長、又は残転送長のいずれかの値が０になったら、ＤＭＡ制御部８０１は転送終了判定処理を行う（S2003）。
【００９２】
転送終了判定処理は図２３に示すフローに従って行われる。  
まずＤＭＡ制御部８０１は、転送レジスタ８０４の残転送長を確認する（S5000）。残転送長が０の場合は要求転送長の全データの転送が完了しているので、"No"に進み処理を終了する。  
一方、残転送長が０でない場合は、プロセッサ１用有効エリア長あるいはプロセッサ２用有効エリア長の少なくともいずれか一方が０である。この場合、有効エリア長が０となった方のスクリプトには、連続Ｆｌａｇで連結された、次に実行すべきスクリプトが存在する。S5001乃至S5004の処理により、連続Ｆｌａｇで連結された、次に実行すべきスクリプトが存在するスクリプトは、プロセッサ１用スクリプトであるのか、あるいはプロセッサ２用スクリプトであるのかを決定する。
【００９３】
まずS5001において、スクリプトレジスタ８０６のプロセッサ１用有効エリア長が０であるか否かを確認する。０であれば"Yes"に進み、S5002 においてプロセッサ１用開始スクリプト番号を更新する。０でなければ"No"に進む。  
続いてプロセッサ２用有効エリア長が０であるか否かを確認する（S5003）。０であれば"Yes"に進み、S5004 においてプロセッサ２用開始スクリプト番号を更新する。０でなければ"No"に進む。  
続いてＤＭＡ制御部８０１はS2000を再び実行する。この際ＤＭＡ制御部８０１は、S5002又はS5004において更新された転送起動レジスタ８０３のプロセッサ１用開始スクリプト番号又はプロセッサ２用開始スクリプトで指定されるスクリプトを読み出す。そしてＤＭＡ制御部８０１は新たに読み出したスクリプトに従って、ＤＭＡ転送を行う。  
最終的に、S2003における転送終了判定処理において転送レジスタ８０４の残転送長が０になったら、ＤＭＡ制御部８０１は転送処理を終了する。そしてＤＭＡ制御部８０１は、転送処理の結果が記載された終了ステータスをメモリ１（１１７）に書き込み（S1008）、プロセッサ１（１１９）に終了通知を行う（S1009）。この終了通知は、例えば割り込み信号の送信により行うことができる。
【００９４】
プロセッサ１（１１９）は、メモリ１（１１７）から終了ステータスを読み出して、その内容に応じた処理を実行する（S1010）。そしてプロセッサ１（１１９）はプロセッサ２（１１２）に終了通知を送信する（S1011）。  
そうするとプロセッサ２（１１２）は、ファイルアクセス要求がデータの読み出し要求であった場合には、メモリ２（１１３）のデータ領域に転送された読み出しデータを読み出して、情報処理装置２００に送信することができる。またファイルアクセス要求がデータの書きこみ要求であった場合には、書き込みデータの記憶されていたメモリ２（１１３）の記憶領域を開放し、他の処理に用いるようにすることができる。
【００９５】
このように、本実施の形態に係る記憶デバイス制御装置１００においては、キャッシュメモリ１３０におけるデータの記憶位置等の情報と、メモリ２（１１３）におけるデータの記憶位置等の情報とが、プロセッサ１（１１９）によって、メモリ１（１１７）に書き込まれる。そしてＤＭＡ１１４がこれらの情報をメモリ１（１１７）から読みだして、データ転送を行う。これにより、プロセッサ１（１１９）のアイドル時間を減らし、プロセッサ１（１１９）を効率良く実行させることができる。これにより、情報処理装置２００からのファイルアクセス要求に対して、データの読み書きを高速化することができる。
【００９６】
さらに本実施の形態に係る記憶デバイス制御装置１００においては、プロセッサ２用スクリプトはメモリ２（１１３）に記憶される。プロセッサ２（１１２）は、プロセッサ１（１１９）に対して、プロセッサ２用スクリプトそのものではなく、プロセッサ２用スクリプトの記憶位置を示す情報を送信する。このようにすることにより、プロセッサ間通信により送信されるデータ量を減らし、通信時間を減少させることができる。このため、ＤＭＡ起動処理時間を短縮することができ、情報処理装置２００からのファイルアクセス要求に対するデータの読み書きを高速化することができる。
【００９７】
また、転送元のデータサイズと転送先のデータサイズとが異なる場合であっても、本実施の形態に係る記憶デバイス制御装置１００によれば、プロセッサ１（１１９）やプロセッサ２（１１２）による制御を行わなくても、ＤＭＡ１１４によりデータ転送が制御される。これにより、プロセッサ１（１１９）やプロセッサ２（１１３）の処理負荷が軽減され、情報処理装置２００からのファイルアクセス要求に対するデータの読み書きを高速化することができる。
【００９８】
さらに本実施の形態に係る記憶デバイス制御装置１００においては、終了ステータスがＤＭＡ１１４のレジスタにではなく、メモリ１（１１７）に書き込まれる。そしてプロセッサ１（１１９）がメモリ１（１１７）から終了ステータスを読み出すようにしている。これにより、プロセッサ１（１１９）が終了ステータスを読み出す時間を短縮することができる。このためプロセッサ１（１１９）のアイドル時間を減らすことができる。これによっても、情報処理装置２００からのファイルアクセス要求に対して、データの読み書きを高速化することができる。
【００９９】
また本実施の形態に係る記憶デバイス制御装置１００によれば、情報処理装置２００からのファイルアクセス要求に対するデータの読み書きを高速化することができるため、セカンダリサイトに設置されたストレージシステム６１０との間で行われるデータの送受信や、バックアップデバイス９００、９１０との間で行われるデータの送受信も高速化することができる。ストレージシステム６００が用いられる情報処理システムの規模を問わずに、情報報処理システム全体の処理性能を大きく向上させることができる。
【０１００】
なおS1002においてプロセッサ２（１１２）からプロセッサ１（１１９）に送信されるデータ転送要求コマンドにプロセッサ２用スクリプトの識別子を含まないようにすることもできる。この場合は、例えばプロセッサ２（１１２）は、メモリ２（１１３）において予め定められた記憶位置にプロセッサ２用スクリプトの識別子を記憶する様にし、ＤＭＡ１１４は、S1007のＤＭＡ転送処理を開始する前に、その記憶位置からプロセッサ２用スクリプトの識別子を読み出すようにすることができる。
【０１０１】
また同様にS1006においても、プロセッサ１（１１９）からＤＭＡ１１４に送信される転送起動情報にプロセッサ１用スクリプト、及びプロセッサ２用スクリプトの識別子を含まないようにすることができる。この場合は、例えばプロセッサ１（１１２）は、メモリ１（１１７）において予め定められた記憶位置にプロセッサ１用スクリプトの識別子、及びプロセッサ２用スクリプトの識別子を記憶する様にし、ＤＭＡ１１４は、S1007のＤＭＡ転送処理を開始する前に、その記憶位置からプロセッサ１用スクリプトの識別子、及びプロセッサ２用スクリプトの識別子を読み出すようにすることができる。
【０１０２】
＝＝＝ＤＭＡ転送の具体例＝＝＝
次に、上記説明したメモリ２（１１３）とキャッシュメモリ１３０との間で行われるデータ転送の処理流れについて、図２４に示す例を用いて具体的に説明する。図２４に示す例は、メモリ２（１１３）に記憶されている２つの４ｋＢのデータを、キャッシュメモリ１３０の６４ｋＢのデータ領域に、２ｋＢのデータ、及び６ｋＢのデータとして転送する場合の例である。
【０１０３】
図１９において、まずプロセッサ２（１１２）はデータ領域を確保する（S1000）。データ領域を確保するとは、ここでは、情報処理装置２００から送信された書き込みデータをメモリ２（１１３）に記憶するということである。図２４に示す例では、２つの４ｋＢのデータがメモリ２（１１３）に記憶される。  
続いてプロセッサ２（１１２）は、プロセッサ２用スクリプトを作成する（S1001）。ここでプロセッサ２（１１２）は、メモリ２（１１３）に記憶された２つのデータに対応して、２つのプロセッサ２用スクリプトを作成する。図２４には、プロセッサ２用スクリプト０とプロセッサ２用スクリプト１とが作成されていることが示される。プロセッサ２用スクリプト０には、エリア長として４ｋＢが記載され、連続Ｆｌａｇがセットされる。またプロセッサ２用スクリプト１には、エリア長として４ｋＢが記載され、連続Ｆｌａｇはセットされない。
【０１０４】
そしてプロセッサ２（１１２）は、プロセッサ１（１１９）に対して、データ転送要求コマンドを送信する（S1002）。データ転送コマンドには、S1001で作成したプロセッサ２用スクリプトの識別子と、要求転送長と転送方向とが含まれる。ここでは、プロセッサ２用スクリプトの識別子として０と１とが送信され、要求転送長としては８ｋＢが送信される。転送方向としては、メモリ２（１１３）からキャッシュメモリ１３０への転送であることが示される。なお、プロセッサ２（１１２）からプロセッサ１（１１９）に対して送信されるプロセッサ２用スクリプトの識別子は０のみとするようにすることもできる。  
続いてプロセッサ１（１１９）はプロセッサ２（１１２）から送信されたデータ転送コマンドを解析する（S1003）。これによりプロセッサ２用スクリプトの番号と要求転送長と転送方向とを認識する。
【０１０５】
プロセッサ１（１１９）は、要求転送長で指定されたサイズのデータ領域をキャッシュメモリ１３０に確保する（S1004）。図２４では、２ｋＢのデータ領域と６ｋＢのデータ領域とが確保されたことが示される。  
そしてプロセッサ１（１１９）は、プロセッサ１用スクリプトを作成する（S1005）。ここでプロセッサ１（１１９）は、キャッシュメモリ１３０に確保された２つのデータ領域に対応して、２つのプロセッサ１用スクリプトを作成する。図２４には、プロセッサ１用スクリプト０とプロセッサ１用スクリプト１とが作成されたことが示される。プロセッサ１用スクリプト０には、エリア長として２ｋＢが記載され、連続Ｆｌａｇがセットされる。またプロセッサ１用スクリプト１には、エリア長として６ｋＢが記載され、連続Ｆｌａｇはセットされない。  
その後プロセッサ１（１１９）は、ＤＭＡ１１４に対して、要求転送長、転送方向、プロセッサ２用スクリプト０の識別子、及びプロセッサ１用スクリプト０の識別子を含む転送起動情報を送信し、ＤＭＡ１１４の転送起動レジスタ８０３にこれらのデータを書き込むことにより、ＤＭＡ１１４を起動する（S1006）。  
そうすると、ＤＭＡ１１４はＤＭＡ転送処理を開始する（S1007）。
【０１０６】
具体的には、まずＤＭＡ制御部８０１がプロセッサ１用スクリプト０とプロセッサ２用スクリプト０とをそれぞれ取得する（S2000）。スクリプトの取得は図２１に示すように行われる。  
まずＤＭＡ制御部８０１は、転送起動情報に基づいて、プロセッサ１（１１９）から送信された転送起動情報に記載されたプロセッサ１用スクリプト０の識別子と、初期設定レジスタに記憶されたプロセッサ１用スクリプトサイズとから、メモリ１（１１７）におけるプロセッサ１用スクリプト０の記憶アドレスを算出する（S3000）。プロセッサ１用スクリプト０の記憶アドレスが算出できたら、続いてメモリ１（１１７）のその記憶アドレスからプロセッサ１用スクリプト０を読み出す（S3001）。ここで、ＤＭＡ制御部８０１は、プロセッサ１用スクリプト０に記載された＃０領域先頭アドレスを転送レジスタ８０４の転送先アドレス欄に記載する。そしてスクリプトレジスタ８０６のプロセッサ１用実行スクリプト番号欄、プロセッサ１用有効エリア長欄にそれぞれ、プロセッサ１用スクリプト０に記載されたスクリプト識別子である０、エリア長欄に記載された２ｋＢを書き込む（S3002）。
【０１０７】
同様に、ＤＭＡ制御部８０１は、転送起動情報に基づいて、プロセッサ１（１１９）から送信された転送起動情報に記載されたプロセッサ２用スクリプト０の識別子と、初期設定レジスタに記憶されたプロセッサ２用スクリプトサイズとから、メモリ２（１１３）におけるプロセッサ２用スクリプト０の記憶アドレスを算出する（S3000）。プロセッサ２用スクリプト０の記憶アドレスが算出できたら、続いてメモリ２（１１３）のその記憶アドレスからプロセッサ２用スクリプト０を読み出す（S3001）。ここで、ＤＭＡ制御部８０１は、プロセッサ２用スクリプト０に記載された＃０領域先頭アドレスを転送レジスタ８０４の転送元アドレス欄に記載する。そしてスクリプトレジスタ８０６のプロセッサ２用実行スクリプト番号欄、プロセッサ２用有効エリア長欄にそれぞれ、プロセッサ２用スクリプト０に記載されたスクリプト識別子である０、エリア長欄に記載された４ｋＢを書き込む（S3002）。  
続いてＤＭＡ制御部８０１は転送単位を決定する（S2001）。転送単位の決定は図２２に示すフローに従って行われる。
【０１０８】
まずＤＭＡ制御部８０１は、転送レジスタ８０４の残転送長欄に要求転送長である８ｋＢを書き込む（S4000）。  
続いて、スクリプトレジスタ８０６における、プロセッサ１の有効エリア長である２ｋＢとプロセッサ２の有効エリア長である４ｋＢとを比較する（S4001）。ここでは後者の方が大きいので"Yes"に進む。そしてプロセッサ１の有効エリア長である２ｋＢと残転送長である８ｋＢとを比較する（S4002）。ここでも後者の方が大きいので"Yes"に進む。これによりプロセッサ１の有効エリア長である２ｋＢが転送単位に決定される（S4003）。  
そしてＤＭＡ制御部８０１は、転送レジスタ８０４に記憶された転送元アドレスに記憶されたデータを、転送先アドレスに、転送単位のデータサイズだけ転送する（S2002）。つまりここでは、メモリ２（１１３）のデータをキャッシュメモリ１３０に２ｋＢだけ転送する。
【０１０９】
転送実行中は、転送レジスタ８０４の転送元アドレス、転送先レジスタ、及び残転送長が順次更新されると共に、スクリプトレジスタ８０６のプロセッサ２用有効エリア長及びプロセッサ１用有効エリア長が順次転送済みデータのサイズの分ずつ減少される。  
スクリプトレジスタ８０６のプロセッサ２用有効エリア長、プロセッサ１用有効エリア長、又は残転送長の値が０になったら、ＤＭＡ制御部８０１は転送終了判定処理を行う（S2003）。この時点では、スクリプトレジスタ８０６のプロセッサ１用有効エリア長が０となっている。またプロセッサ２用有効エリア長は２ｋＢとなっている。残転送長は６ｋＢ（要求転送長８ｋＢ―転送単位２ｋＢ）となっている。
【０１１０】
転送終了判定処理は図２３に示すフローに従って行われる。まずＤＭＡ制御部８０１は、転送レジスタ８０４の残転送長を確認する（S5000）。ここでは、残転送長は６ｋＢであるので、"Yes"に進む。そしてスクリプトレジスタ８０６のプロセッサ１用有効エリア長が０であるか否かを確認する（S5001）。プロセッサ１用有効エリア長は上述のように０であるので、"No"に進む。そして転送起動レジスタ８０３のプロセッサ１用開始スクリプト番号をインクリメントする（S5002）。具体的には、プロセッサ１用開始スクリプト番号を１にする。  
続いてＤＭＡ制御部８０１は、スクリプトレジスタ８０６のプロセッサ２用有効エリア長を確認する（S5003）。プロセッサ２用有効エリア長は上述のように２ｋＢであるので、"Yes"に進む。
【０１１１】
そしてＤＭＡ制御部８０１はS2000を再び実行する。この際ＤＭＡ制御部８０１は、S5002において更新された転送起動レジスタ８０３のプロセッサ１用開始スクリプト番号で指定されるスクリプトを読み出す。すなわちＤＭＡ制御部８０１は、S3000乃至S3001を実行することにより、メモリ１（１１７）からプロセッサ１用スクリプト１を読み出す。そしてＤＭＡ制御部８０１は、プロセッサ１用スクリプト１に記載された＃１領域先頭アドレスを転送レジスタ８０４の転送先アドレス欄に記載する。そしてスクリプトレジスタ８０６のプロセッサ１用実行スクリプト番号欄、プロセッサ１用有効エリア長欄にそれぞれ、プロセッサ１用スクリプト１に記載されたスクリプト識別子である１、エリア長欄に記載された６ｋＢを書き込む（S3002）。  
続いてＤＭＡ制御部８０１は図２２のフローに従って転送単位を決定する（S2001）。
【０１１２】
この時点では、転送レジスタ８０４の残転送長欄は６ｋＢである（S4000）。  
続いてＤＭＡ制御部８０１は、スクリプトレジスタ８０６における、プロセッサ１の有効エリア長である６ｋＢとプロセッサ２の有効エリア長である２ｋＢとを比較する（S4001）。ここでは前者の方が大きいので"No"に進む。そしてプロセッサ２の有効エリア長である２ｋＢと残転送長である６ｋＢとを比較する（S4005）。ここでは後者の方が大きいので"Yes"に進む。これによりプロセッサ２の有効エリア長である２ｋＢが転送単位に決定される（S4006）。
【０１１３】
そしてＤＭＡ制御部８０１は、転送レジスタ８０４に記憶された転送元アドレスに記憶されたデータを、転送先アドレスに、転送単位のデータサイズだけ転送する（S2002）。つまりここでは、メモリ２（１１３）のデータをキャッシュメモリ１３０に２ｋＢだけ転送する。  
転送実行中は、転送レジスタ８０４の転送元アドレス、転送先レジスタ、及び残転送長が順次更新されると共に、スクリプトレジスタ８０６のプロセッサ２用有効エリア長及びプロセッサ１用有効エリア長が順次転送済みデータのサイズの分ずつ減少される。  
スクリプトレジスタ８０６のプロセッサ２用有効エリア長、プロセッサ１用有効エリア長、又は残転送長の値が０になったら、ＤＭＡ制御部８０１は転送終了判定処理を行う（S2003）。この時点では、スクリプトレジスタ８０６のプロセッサ２用有効エリア長が０となっている。またプロセッサ１用有効エリア長は４ｋＢとなっている。残転送長は４ｋＢ（前回の残転送長６ｋＢ―転送単位２ｋＢ）となっている。
【０１１４】
転送終了判定処理は図２３に示すフローに従って行われる。まずＤＭＡ制御部８０１は、転送レジスタ８０４の残転送長を確認する（S5000）。ここでは、残転送長は４ｋＢであるので、"Yes"に進む。そしてスクリプトレジスタ８０６のプロセッサ１用有効エリア長が０であるか否かを確認する（S5001）。プロセッサ１用有効エリア長は上述のように４ｋＢであるので、"Yes"に進む。そしてスクリプトレジスタ８０６のプロセッサ２用有効エリア長が０であるか否かを確認する（S5003）。プロセッサ２用有効エリア長は上述のように０であるので、"No"に進む。そして転送起動レジスタ８０３のプロセッサ２用開始スクリプト番号をインクリメントする（S5004）。具体的には、プロセッサ２用開始スクリプト番号を１にする。
【０１１５】
そしてＤＭＡ制御部８０１はS2000を再び実行する。この際ＤＭＡ制御部８０１は、S5004において更新された転送起動レジスタ８０３のプロセッサ２用開始スクリプト番号で指定されるスクリプトを読み出す。すなわちＤＭＡ制御部８０１は、S3000乃至S3001を実行することにより、メモリ２（１１７）からプロセッサ２用スクリプト１を読み出す。そしてＤＭＡ制御部８０１は、プロセッサ２用スクリプト１に記載された＃１領域先頭アドレスを転送レジスタ８０４の転送元アドレス欄に記載する。そしてスクリプトレジスタ８０６のプロセッサ２用実行スクリプト番号欄、プロセッサ２用有効エリア長欄にそれぞれ、プロセッサ２用スクリプト１に記載されたスクリプト識別子である１、エリア長欄に記載された４ｋＢを書き込む（S3002）。  
続いてＤＭＡ制御部８０１は、再度図２２のフローに従って転送単位を決定する（S2001）。  
この時点では、転送レジスタ８０４の残転送長欄は４ｋＢである（S4000）。
【０１１６】
続いてＤＭＡ制御部８０１は、スクリプトレジスタ８０６における、プロセッサ１の有効エリア長である４ｋＢとプロセッサ２の有効エリア長である４ｋＢとを比較する（S4001）。ここでは前者と後者とが等しいので"No"に進む。そしてプロセッサ２の有効エリア長である４ｋＢと残転送長である４ｋＢとを比較する（S4005）。ここでも前者と後者とは等しいので"No"に進む。これにより残転送長である４ｋＢが転送単位に決定される（S4007）。  
そしてＤＭＡ制御部８０１は、転送レジスタ８０４に記憶された転送元アドレスに記憶されたデータを、転送先アドレスに、転送単位のデータサイズだけ転送する（S2002）。つまりここでは、メモリ２（１１３）のデータをキャッシュメモリ１３０に４ｋＢだけ転送する。  
転送実行中は、転送レジスタ８０４の転送元アドレス、転送先レジスタ、及び残転送長が順次更新されると共に、スクリプトレジスタ８０６のプロセッサ２用有効エリア長及びプロセッサ１用有効エリア長が順次転送済みデータのサイズの分ずつ減少される。  
スクリプトレジスタ８０６のプロセッサ２用有効エリア長、プロセッサ１用有効エリア長、又は残転送長の値が０になったら、ＤＭＡ制御部８０１は転送終了判定処理を行う（S2003）。この時点では、スクリプトレジスタ８０６のプロセッサ１用有効エリア長、プロセッサ２用有効エリア長、及び残転送長共に０となっている。
【０１１７】
転送終了判定処理は図２３に示すフローに従って行われる。残転送長が０であるので、"No"に進み、転送処理を終了する。そしてＤＭＡ制御部８０１は、転送処理の結果が記載された終了ステータスをメモリ１（１１７）に書き込み（S1008）、プロセッサ１（１１９）に終了通知を行う（S1009）。プロセッサ１（１１９）は、メモリ１（１１７）から終了ステータスを読み出して、その内容に応じた処理を実行する（S1010）。そしてプロセッサ１（１１９）はプロセッサ２（１１２）に終了通知を送信する（S1011）。プロセッサ２（１１２）は書き込みデータの記憶されていたメモリ２（１１３）の記憶領域を開放する。  
以上のようにして、情報処理装置２００から８ｋＢのデータ書き込み要求があった場合におけるデータ転送処理が行われる。
【０１１８】
＝＝＝第２の実施の形態＝＝＝
上記第１の実施の形態は、図２５乃至図２７に示す第２の実施の形態のようにすることもできる。第２の実施の形態は、第１の実施の形態に対してプロセッサ２用スクリプトを用いないでデータ転送を行う形態である。  
この場合、図２５に示すように、メモリ２（１１３）には転送データは記憶されるが、プロセッサ２用スクリプトは記憶されない。その代わり図２６に示すように、メモリ１（１１７）プロセッサ１用スクリプトに、メモリ２（１１３）の領域先頭アドレスが記憶される。
【０１１９】
第２の実施の形態における、メモリ２（１１３）とキャッシュメモリ１３０との間で行われるデータ転送の処理流れについて、図２７に示すフローチャートを用いて説明する。  
まずプロセッサ２（１１２）はデータ領域を確保する（S6000）。データ領域を確保するとは、第１の実施の形態と同様に、情報処理装置２００から送信されたファイルアクセス要求が書きこみ要求の場合は、書き込みデータをメモリ２（１１３）に記憶するということである。また情報処理装置２００から送信されたファイルアクセス要求が読み出し要求の場合は、読み出しデータを記憶するための記憶領域をメモリ２（１１３）に確保するということである。
【０１２０】
そしてプロセッサ２（１１２）は、プロセッサ１（１１９）に対して、データ転送要求コマンド（第２のメモリにおけるデータの記憶位置を示す情報）を送信する（S6001）。データ転送要求コマンドには、S1000で確保したデータ領域の個々の記憶アドレスと、個々のデータサイズと、要求転送長と、転送方向とが含まれる。  
そうするとプロセッサ１（１１９）はプロセッサ２（１１２）から送信されたデータ転送要求コマンドを解析する（S6002）。これによりメモリ２（１１２）におけるデータの記憶アドレスとデータサイズと、要求転送長と転送方向とを認識する。
【０１２１】
つづいてプロセッサ１（１１９）は、要求転送長で指定されたサイズのデータ領域をキャッシュメモリ１３０に確保する（S6003）。  
そしてプロセッサ１（１１９）は、キャッシュメモリ１３０に確保した各データ領域に対応して、プロセッサ１用スクリプトを作成する（S6004）。  
これによりキャッシュメモリ１３０におけるデータの記憶位置を示す情報と、メモリ２（１１２）におけるデータの記憶位置を示す情報とを含むプロセッサ１用スクリプトがメモリ１（１１７）に書き込まれる。
【０１２２】
その後プロセッサ１（１１９）は、ＤＭＡ１１４に対して、要求転送長、転送方向、及びプロセッサ１用スクリプトの識別子を含む転送起動情報を送信し、ＤＭＡ１１４の転送起動レジスタ８０３にこれらのデータを書き込む。これによりプロセッサ１（１１９）はＤＭＡ１１４を起動する（S6005）。  
そうすると、ＤＭＡ１１４はＤＭＡ転送処理を開始する（S6006）。  
ＤＭＡ転送が終了したら、ＤＭＡ制御部８０１は、転送処理の結果が記載された終了ステータスをメモリ１（１１７）に書き込み（S6007）、プロセッサ１（１１９）に終了通知を行う（S6008）。
【０１２３】
プロセッサ１（１１９）は、メモリ１（１１７）から終了ステータスを読み出して、その内容に応じた処理を実行する（S6009）。そしてプロセッサ１（１１９）はプロセッサ２（１１２）に終了通知を送信する（S6010）。  
そうするとプロセッサ２（１１２）は、ファイルアクセス要求がデータの読み出し要求であった場合には、メモリ２（１１３）のデータ領域に転送された読み出しデータを読み出して、情報処理装置２００に送信することができる。またファイルアクセス要求がデータの書きこみ要求であった場合には、書き込みデータの記憶されていたメモリ２（１１３）の記憶領域を開放し、他の処理に用いるようにすることができる。
【０１２４】
このように、本実施の形態に係る記憶デバイス制御装置１００においても、キャッシュメモリ１３０におけるデータの記憶位置等の情報と、メモリ２（１１３）におけるデータの記憶位置等の情報とが、プロセッサ１（１１９）によって、メモリ１（１１７）に書き込まれる。そしてＤＭＡ１１４がこれらの情報をメモリ１（１１７）から読みだして、データ転送を行う。これにより、プロセッサ１（１１９）のアイドル時間を減らすことができ、プロセッサ１（１１９）を効率良く実行させることができる。またこれにより、情報処理装置２００からのファイルアクセス要求に対して、データの読み書きを高速化することができる。
【０１２５】
また、転送元のデータサイズと転送先のデータサイズとが異なる場合であっても、本実施の形態に係る記憶デバイス制御装置１００によれば、プロセッサ１（１１９）やプロセッサ２（１１２）による制御を行わなくても、ＤＭＡ１１４によりデータ転送が制御される。これにより、プロセッサ１（１１９）やプロセッサ２（１１３）の処理負荷が軽減され、情報処理装置２００からのファイルアクセス要求に対するデータの読み書きを高速化することができる。
【０１２６】
さらに本実施の形態に係る記憶デバイス制御装置１００においては、終了ステータスがＤＭＡ１１４のレジスタにではなく、メモリ１（１１７）に書き込まれる。そしてプロセッサ１（１１９）がメモリ１（１１７）から終了ステータスを読み出すようにしている。これにより、プロセッサ１（１１９）が終了ステータスを読み出す時間を短縮することができる。このためプロセッサ１（１１９）のアイドル時間を減らすことができる。これによっても、情報処理装置２００からのファイルアクセス要求に対して、データの読み書きを高速化することができる。
【０１２７】
なおS1006においては、プロセッサ１（１１９）からＤＭＡ１１４に送信される転送起動情報にプロセッサ１用スクリプトの識別子を含まないようにすることができる。この場合は、例えばプロセッサ１（１１２）は、メモリ１（１１７）において予め定められた記憶位置にプロセッサ１用スクリプトの識別子を記憶する様にし、ＤＭＡ１１４は、S6006のＤＭＡ転送処理を開始する前に、その記憶位置からプロセッサ１用スクリプトの識別子を読み出すようにすることができる。
【０１２８】
＝＝＝第３の実施の形態＝＝＝
さらに、図２８に示すように第３の実施の形態のようにすることもできる。第３の実施の形態は、ＬＡＮ４００等のネットワークに接続されたコンピュータ等の情報処理装置２００において、第１の実施の形態や第２の実施の形態と同様のＤＭＡ転送を実現する形態である。
【０１２９】
情報処理装置２００には、プロセッサ１（第１のプロセッサ）２０９、プロセッサ２（第２のプロセッサ）２０２、ＤＭＡ（データ転送装置）２０４、メモリ１（第３のメモリ）２０７、メモリ２（第２のメモリ）２０３、メモリコントローラ１（２０１）、メモリコントローラ２（２０１）、Ｉ／Ｏコントローラ２０５、及び記憶装置（第１のメモリ）２１０が形成されている。
【０１３０】
プロセッサ２（２０２）、メモリ２（２０３）及びメモリコントローラ２（２０１）は、ＬＡＮ４００を通じて他の情報処理装置２００との間で通信を行うための通信インタフェース機能を提供する。例えばＴＣＰ／ＩＰプロトコルに従ってＬＡＮ４００を通じて他の情報処理装置２００から送信されたファイルアクセス要求の受信や、データの送受信の制御を行う。
【０１３１】
プロセッサ２（２０２）は、メモリ２（２０３）に記憶された様々なプログラムを実行することにより、情報処理装置２００全体の制御を司る。  
メモリ２（２０３）には様々なプログラムやデータが記憶される。例えばＬＡＮ４００を通じて他の情報処理装置２００との間で授受されるデータが記憶される。  
なお、メモリ２（２０３）に記憶されるデータの記憶アドレス（記憶位置）は、プロセッサ２（２０２）により管理される。
【０１３２】
プロセッサ１（２０９）、メモリ１（２０７）、ＤＭＡ２０４、及びメモリコントローラ１（２０１）は、記憶装置２１０やＩ／Ｏコントローラ２０５との間でデータやコマンドの授受を行う。プロセッサ１（２０９）は、メモリ２（２０３）に記憶されたデータの記憶装置２１０への転送や、記憶装置２１０に記憶されたデータのメモリ２（２０３）への転送をＤＭＡ１１４に実行させる。すなわちメモリ２（２０３）と記憶装置２１０との間のデータの転送はＤＭＡ２０４により行われる。またプロセッサ１（２０９）は、メモリ２（２０３）に記憶されたデータのＩ／Ｏコントローラ２０５への転送や、Ｉ／Ｏコントローラ２０５に記憶されたデータのメモリ２（２０３）への転送をＤＭＡ１１４に実行させる。またプロセッサ１（２０９）は記憶装置２１０やＩ／Ｏコントローラ２０５に記憶されるデータの記憶アドレス（記憶位置）、及びメモリ１（２０７）に記憶されるデータの記憶アドレス（記憶位置）を管理している。
【０１３３】
Ｉ／Ｏコントローラ２０５は、入力装置２０６や出力装置２０７と接続され、入力装置２０６や出力装置２０７と情報処理装置２００との間でのデータの授受を制御する。入力装置２０６は、情報処理装置２００を操作するオペレータ等による情報処理装置２００へのデータ入力等のために用いられる。入力装置２０６としては例えばキーボードやマウス等が用いられる。出力装置２０７は情報を外部に出力するための装置である。出力装置２０７としては例えばディスプレイやプリンタ等が用いられる。記憶装置２１０は、例えばハードディスク装置や半導体記憶装置等である。記憶装置２１０は、図２８に示すように、情報処理装置２００に内蔵されているようにすることもできるし、外付されているようにすることもできる。
【０１３４】
第３の実施の形態に係る情報処理装置２００においては、メモリ２（２０３）と記憶装置２１０との間や、メモリ２（２０３）とＩ／Ｏコントローラ２０５との間、あるいはＩ／Ｏコントローラ２０５と記憶装置２１０との間において、第１の実施の形態、あるいは第２の実施の形態と同様のＤＭＡ転送を行うことにより、プロセッサ１（２０９）のアイドル時間を減少させ、処理効率を向上させることができる。これにより記憶装置２１０へのデータの読み書き、あるいは入力装置２０６や出力装置２０８へのデータの入出力を高速化することができる。
【０１３５】
以上発明を実施するための最良の形態について説明したが、上記実施の形態は本発明の理解を容易にするためのものであり、本発明を限定して解釈するためのものではない。本発明はその趣旨を逸脱することなく変更、改良され得ると共に、本発明にはその等価物も含まれる。
【図面の簡単な説明】
【０１３６】
【図１】本実施の形態に係るストレージシステムの全体構成を示すブロック図である。
【図２】本実施の形態に係るストレージシステムの外観構成を示す図である。
【図３】本実施の形態に係る記憶デバイス制御装置の外観構成を示す図である。
【図４】本実施の形態に係る管理端末の構成を示すブロック図である。
【図５】本実施の形態に係る物理ディスク管理テーブルを示す図である。
【図６】本実施の形態に係るＬＵ管理テーブルを示す図である。
【図７】本実施の形態に係るＣＨＮを示すブロック図である。
【図８】本実施の形態に係るＣＨＦ、ＣＨＡを示すブロック図である。
【図９】本実施の形態に係るメタデータ、ロックテーブルを示す図である。
【図１０】本実施の形態に係るディスク制御部を示すブロック図である。
【図１１】本実施の形態に係るストレージシステムのソフトウエア構成図である。
【図１２】本実施の形態に係るストレージシステムにおけるクラスタ構成を示す図である。
【図１３】本実施の形態に係るメタデータを示す図である。
【図１４】本実施の形態に係るロックテーブルを示す図である。
【図１５】本実施の形態に係るＤＭＡの構成を示すブロック図である。
【図１６】本実施の形態に係るメモリ２を示す図である。
【図１７】本実施の形態に係るメモリ１を示す図である。
【図１８】本実施の形態に係るキャッシュメモリを示す図である。
【図１９】本実施の形態に係るＤＭＡ転送の流れを示すフローチャートである。
【図２０】本実施の形態に係るＤＭＡ転送処理の流れを示すフローチャートである。
【図２１】本実施の形態に係るスクリプト取得処理の流れを示すフローチャートである。
【図２２】本実施の形態に係るＤＭＡ転送単位決定処理の流れを示すフローチャートである。
【図２３】本実施の形態に係る転送終了判定処理の流れを示すフローチャートである。
【図２４】本実施の形態に係るＤＭＡ転送の具体例を示す図である。
【図２５】本実施の形態に係るメモリ２を示す図である。
【図２６】本実施の形態に係るメモリ１を示す図である。
【図２７】本実施の形態に係るＤＭＡ転送の流れを示すフローチャートである。
【図２８】本実施の形態に係る情報処理装置の構成を示すブロック図である。
【符号の説明】
【０１３７】
１００    記憶デバイス制御装置          １１０    チャネル制御部
１１２    プロセッサ２                  １１３    メモリ２
１１４    ＤＭＡ                        １１５    プロトコルチップ
１１７    メモリ１                      １１８    回路基板
１１９    プロセッサ１                  １２０    共有メモリ
１３０    キャッシュメモリ              １４０    ディスク制御部
１５０    接続部                        １６０    管理端末
２００    情報処理装置                  ２０２    プロセッサ２
２０３    メモリ２                      ２０４    ＤＭＡ
２０７    メモリ１                      ２０９    プロセッサ１
２１０    記憶装置                      ３００    ディスク駆動装置
３１０    記憶ボリウム                  ４００    ＬＡＮ
５００    ＳＡＮ                        ６００    ストレージシステム
８０１    ＤＭＡ制御部                  ８０３    転送起動レジスタ
８０４    転送レジスタ                  ８０５    初期設定レジスタ
８０６    スクリプトレジスタ 
【図１】
2005135065.tif 000003
【図２】
2005135065.tif 000004
【図３】
2005135065.tif 000005
【図４】
2005135065.tif 000006
【図５】
2005135065.tif 000007
【図６】
2005135065.tif 000008
【図７】
2005135065.tif 000009
【図８】
2005135065.tif 000010
【図９】
2005135065.tif 000011
【図１０】
2005135065.tif 000012
【図１１】
2005135065.tif 000013
【図１２】
2005135065.tif 000014
【図１３】
2005135065.tif 000015
【図１４】
2005135065.tif 000016
【図１５】
2005135065.tif 000017
【図１６】
2005135065.tif 000018
【図１７】
2005135065.tif 000019
【図１８】
2005135065.tif 000020
【図１９】
2005135065.tif 000021
【図２０】
2005135065.tif 000022
【図２１】
2005135065.tif 000023
【図２２】
2005135065.tif 000024
【図２３】
2005135065.tif 000025
【図２４】
2005135065.tif 000026
【図２５】
2005135065.tif 000027
【図２６】
2005135065.tif 000028
【図２７】
2005135065.tif 000029
【図２８】
2005135065.tif 000030