(57)【要約】      （修正有）【課題】オープン系ディスク装置、メインフレーム系ディスク装置の両方からの要求に柔軟に対応できる制御装置を実現する。【解決手段】情報処理装置との間でデータの送受信を行う複数のチャネル制御部を備え、複数のチャネル制御部の各々は、情報処理装置からデータ入出力要求を受信しデータ格納メモリと情報処理装置との間のデータの送受信を制御する入出力制御部と、プロセッサと、データ格納メモリと、データ格納メモリ内のデータをキャッシュメモリに対して転送するデータ転送装置とを有し、複数のチャネル制御部のうち第一のチャネル制御部において、プロセッサがデータ格納メモリ内のデータ格納空間を管理し、第二のチャネル制御部において、入出力制御部がデータ格納メモリ内のデータ格納空間を管理し、プロセッサに対してデータ格納空間に関する情報を通知するストレージ制御装置に関する。【選択図】    図９
2005196422.tif 000002
【特許請求の範囲】
【請求項１】
第１の情報処理装置からデータ入出力要求を受信し、前記第１の情報処理装置との間でデータの送受信を行う第１のチャネル制御部と、
第２の情報処理装置からデータ入出力要求を受信し、前記第２の情報処理装置との間でデータの送受信を行う第２のチャネル制御部と、
前記データ入出力要求に応じて、データを記憶する記憶ボリュームに対してデータの読み書きを行うディスク制御部と、
前記第１のチャネル制御部、前記第２のチャネル制御部、及び前記ディスク制御部の間で授受されるデータを記憶するキャッシュメモリと、
を備え、
前記第１のチャネル制御部は、
第１のメモリと、
前記第１の情報処理装置からデータ入出力要求を受信し、前記第１のメモリと前記第１の情報処理装置との間のデータの送受信を制御する第１の入出力制御部と、
前記第１のメモリ及び前記キャッシュメモリを制御する第１のプロセッサと、
前記第１のメモリへのデータの読み書きを行う第１のメモリコントローラ及び前記第１のメモリと前記キャッシュメモリとの間のデータ転送を制御する第１のデータ転送制御部を有する第１のデータ転送装置と、
を備え、
前記第２のチャネル制御部は、
第２のメモリと、
前記第２のメモリを制御し、前記第２の情報処理装置からデータ入出力要求を受信し、前記第２のメモリと前記第２の情報処理装置との間のデータの送受信を制御する第２の入出力制御部と、
前記キャッシュメモリを制御する第２のプロセッサと、
前記第２のメモリへのデータの読み書きを行う第２のメモリコントローラ及び前記第２のメモリと前記キャッシュメモリとの間のデータ転送を制御する第２のデータ転送制御部を有する第２のデータ転送装置と、
を備え、
前記第１のチャネル制御部は、
前記第１の入出力制御部が前記第１の情報処理装置から受信した前記データ入出力要求が第１のデータ書き込み要求である場合には、
前記第１の入出力制御部が、前記第１のデータ書き込み要求を前記第１のプロセッサに送信し、
前記第１のプロセッサが、前記第１の情報処理装置から送信される第１の書き込みデータの前記第１のメモリにおける記憶位置を示す情報を含む第１の記憶位置情報を前記第１の入出力制御部に送信し、
前記第１の入出力制御部が、前記第１の書き込みデータの前記第１のメモリにおける記憶位置を示す情報と前記第１の書き込みデータとの前記第１のメモリコントローラへの送信を開始し、
前記第１のメモリコントローラが、前記第１の書き込みデータの前記第１のメモリへの書き込みを開始し、
前記第１のプロセッサが、前記第１の書き込みデータの前記第１のメモリにおける記憶位置を示す情報、及び前記第１の書き込みデータの前記キャッシュメモリにおける記憶位置を示す情報を含む第１のデータ転送情報を前記第１のデータ転送制御部に送信し、
前記第１のデータ転送制御部が、前記第１のデータ転送情報に基づいて、前記第１のメモリに書き込まれた前記第１の書き込みデータのリード要求を前記第１のメモリコントローラに送信し、
前記第１のメモリコントローラが、前記第１の書き込みデータの前記第１のメモリからの読み出しを開始し、
前記第１のデータ転送制御部が、前記第１のメモリから読みだされる前記第１の書き込みデータの前記キャッシュメモリへの転送を開始し、
前記第２のチャネル制御部は、
前記第２の入出力制御部が前記第２の情報処理装置から受信した前記データ入出力要求が第２のデータ書き込み要求である場合には、
前記第２の入出力制御部が、前記第２の情報処理装置から送信される第２の書き込みデータの前記第２のメモリにおける記憶位置を示す情報と前記第２の書き込みデータとの前記第２のメモリコントローラへの送信を開始し、
前記第２のメモリコントローラが、前記第２の書き込みデータの前記第２のメモリへの書き込みを開始し、
前記第２の入出力制御部が、前記第２の書き込みデータの前記第２のメモリにおける記憶位置を示す情報を含む第２の記憶位置情報を前記第２のプロセッサに送信し、
前記第２のプロセッサが、前記第２の書き込みデータの前記第２のメモリにおける記憶位置を示す情報、及び前記第２の書き込みデータの前記キャッシュメモリにおける記憶位置を示す情報を含む第２のデータ転送情報を前記第２のデータ転送制御部に送信し、
前記第２のデータ転送制御部が、前記第２のデータ転送情報に基づいて、前記第２のメモリに書き込まれた前記第２の書き込みデータのリード要求を前記第２のメモリコントローラに送信し、
前記第２のメモリコントローラが、前記第２の書き込みデータの前記第２のメモリからの読み出しを開始し、
前記第２のデータ転送制御部が、前記第２のメモリから読みだされる前記第２の書き込みデータの前記キャッシュメモリへの転送を開始すること
を特徴とするストレージ制御装置。
【請求項２】
前記第１のチャネル制御部は、
前記第１の入出力制御部が前記第１の情報処理装置から受信した前記データ入出力要求が第１のデータ読み出し要求である場合には、
前記第１の入出力制御部が、前記第１のデータ読み出し要求を前記第１のプロセッサに送信し、
前記第１のプロセッサが、前記第１の情報処理装置に送信される第１の読み出しデータの前記キャッシュメモリにおける記憶位置を示す情報、及び前記第１の読み出しデータの前記第１のメモリにおける記憶位置を示す情報を含む第３のデータ転送情報を前記第１のデータ転送制御部に送信し、
前記第１のデータ転送制御部が、前記第３のデータ転送情報に基づいて、前記キャッシュメモリからの前記第１の読み出しデータの読み出しを開始し、
前記第１のデータ転送制御部が、前記第１の読み出しデータの前記第１のメモリにおける記憶位置を示す情報と前記第１の読み出しデータとの前記第１のメモリコントローラへの送信を開始し、
前記第１のメモリコントローラが、前記第１の読み出しデータの前記第１のメモリへの書き込みを開始し、
前記第１のプロセッサが、前記第１の読み出しデータの前記第１のメモリにおける記憶位置を示す情報を含む第３の記憶位置情報を前記第１の入出力制御部に送信し、
前記第１の入出力制御部が、前記第３の記憶位置情報に基づいて、前記第１のメモリに書き込まれた前記第１の読み出しデータのリード要求を前記第１のメモリコントローラへ送信し、
前記第１のメモリコントローラが、前記第１の読み出しデータの前記第１のメモリからの読み出しを開始し、
前記第１の入出力制御部が、前記第１のメモリから読みだされる前記第１の読み出しデータを前記第１の情報処理装置に送信し、
前記第２のチャネル制御部は、
前記第２の入出力制御部が前記第２の情報処理装置から受信した前記データ入出力要求が第２のデータ読み出し要求である場合には、
前記第２の入出力制御部が、前記第２の情報処理装置に送信される第２の読み出しデータの前記第２のメモリにおける記憶位置を示す情報を含む第４の記憶位置情報を前記第２のプロセッサに送信し、
前記第２のプロセッサが、前記第２の読み出しデータの前記キャッシュメモリにおける記憶位置を示す情報、及び前記第２の読み出しデータの前記第２のメモリにおける記憶位置を示す情報を含む第４のデータ転送情報を前記第２のデータ転送制御部に送信し、
前記第２のデータ転送制御部が、前記第４のデータ転送情報に基づいて、前記キャッシュメモリからの前記第２の読み出しデータの読み出しを開始し、
前記第２のデータ転送制御部が、前記第２の読み出しデータの前記第２のメモリにおける記憶位置を示す情報と前記第２の読み出しデータとの前記第２のメモリコントローラへの送信を開始し、
前記第２のメモリコントローラが、前記第２の読み出しデータの前記第２のメモリへの書き込みを開始し、
前記第２の入出力制御部が、前記第２のメモリに書き込まれた前記第２の読み出しデータのリード要求を前記第２のメモリコントローラへ送信し、
前記第２のメモリコントローラが、前記第２の読み出しデータの前記第２のメモリからの読み出しを開始し、
前記第２の入出力制御部が、前記第２のメモリから読みだされる前記第２の読み出しデータを前記第２の情報処理装置に送信すること
を特徴とする請求項１に記載のストレージ制御装置。
【請求項３】
前記第１のチャネル制御部は、
前記第１の入出力制御部が前記第１の情報処理装置から受信した前記データ入出力要求が第１のデータ書き込み要求である場合には、
前記第１の入出力制御部が、前記第１のデータ書き込み要求を前記第１のプロセッサに送信し、
前記第１のプロセッサが、前記第１の記憶位置情報を前記第１の入出力制御部に送信し、
前記第１の入出力制御部が、前記第１の書き込みデータの前記第１のメモリにおける記憶位置を示す情報と前記第１の書き込みデータとの前記第１のメモリコントローラへの送信を開始し、
前記第１の入出力制御部が、前記第１の書き込みデータの送信の際に、所定量の前記第１の書き込みデータ毎に、前記所定量の第１の書き込みデータを所定のアルゴリズムに従って変換して算出した変換データと前記所定量の第１の書き込みデータの誤り有無を示す誤り有無データとを含むチェックコードを付加し、
前記第１のメモリコントローラが、前記第１の書き込みデータ及び前記チェックコードの前記第１のメモリへの書き込みを開始し、
前記第１のプロセッサが、前記第１のデータ転送情報を前記第１のデータ転送制御部に送信し、
前記第１のデータ転送制御部が、前記第１のデータ転送情報に基づいて、前記第１のメモリに書き込まれた前記第１の書き込みデータ及び前記チェックコードのリード要求を前記第１のメモリコントローラに送信し、
前記第１のメモリコントローラが、前記第１の書き込みデータ及び前記チェックコードの前記第１のメモリからの読み出しを開始し、
前記第１のデータ転送制御部が、前記第１のメモリから読みだされる前記第１の書き込みデータの前記キャッシュメモリへの転送を開始し、
前記第１のデータ転送制御部が、前記第１の書き込みデータの転送の際に、前記所定量の第１の書き込みデータ毎に、前記所定量の第１の書き込みデータを前記所定のアルゴリズムに従って変換して算出したデータと前記所定量の第１の書き込みデータに付加された前記チェックコードの前記変換データとを比較し、比較の結果に応じて、前記第１の書き込みデータの前記キャッシュメモリへの転送を中止し、
前記第２のチャネル制御部は、
前記第２の入出力制御部が前記第２の情報処理装置から受信した前記データ入出力要求が第２のデータ書き込み要求である場合には、
前記第２の入出力制御部が、前記第２の書き込みデータの前記第２のメモリにおける記憶位置を示す情報と前記第２の書き込みデータとの前記第２のメモリコントローラへの送信を開始し、
前記第２の入出力制御部が、前記第２の書き込みデータの送信の際に、所定量の前記第２の書き込みデータ毎に、前記所定量の第２の書き込みデータを所定のアルゴリズムに従って変換して算出した変換データと前記所定量の第２の書き込みデータの誤り有無を示す誤り有無データとを含むチェックコードを付加し、
前記第２のメモリコントローラが、前記第２の書き込みデータ及び前記チェックコードの前記第２のメモリへの書き込みを開始し、
前記第２の入出力制御部が、前記第２の記憶位置情報を前記第２のプロセッサに送信し、
前記第２のプロセッサが、前記第２のデータ転送情報を前記第２のデータ転送制御部に送信し、
前記第２のデータ転送制御部が、前記第２のデータ転送情報に基づいて、前記第２のメモリに書き込まれた前記第２の書き込みデータ及び前記チェックコードのリード要求を前記第２のメモリコントローラに送信し、
前記第２のメモリコントローラが、前記第２の書き込みデータ及び前記チェックコードの前記第２のメモリからの読み出しを開始し、
前記第２のデータ転送制御部が、前記第２のメモリから読みだされる前記第２の書き込みデータの前記キャッシュメモリへの転送を開始し、
前記第２のデータ転送制御部が、前記第２の書き込みデータの転送の際に、前記所定量の第２の書き込みデータ毎に、前記所定量の第２の書き込みデータを前記所定のアルゴリズムに従って変換して算出したデータと前記所定量の第２の書き込みデータに付加された前記チェックコードの前記変換データとを比較し、比較の結果に応じて、前記第２の書き込みデータの前記キャッシュメモリへの転送を中止すること
を特徴とする請求項１に記載のストレージ制御装置。
【請求項４】
前記第１のチャネル制御部は、
前記第１の入出力制御部が前記第１の情報処理装置から受信した前記データ入出力要求が第１のデータ読み出し要求である場合には、
前記第１の入出力制御部が、前記第１のデータ読み出し要求を前記第１のプロセッサに送信し、
前記第１のプロセッサが、前記第３のデータ転送情報を前記第１のデータ転送制御部に送信し、
前記第１のデータ転送制御部が、前記第３のデータ転送情報に基づいて、前記キャッシュメモリからの前記第１の読み出しデータの読み出しを開始し、
前記第１のデータ転送制御部が、前記第１の読み出しデータの前記第１のメモリにおける記憶位置を示す情報と前記第１の読み出しデータとの前記第１のメモリコントローラへの送信を開始し、
前記第１のデータ転送制御部が、前記第１の読み出しデータの送信の際に、所定量の前記第１の読み出しデータ毎に、前記所定量の第１の読み出しデータを所定のアルゴリズムに従って変換して算出した変換データと前記所定量の第１の読み出しデータの誤り有無を示す誤り有無データとを含むチェックコードを付加し、
前記第１のメモリコントローラが、前記第１の読み出しデータ及び前記チェックコードの前記第１のメモリへの書き込みを開始し、
前記第１のプロセッサが、前記第３の記憶位置情報を前記第１の入出力制御部に送信し、
前記第１の入出力制御部が、前記第３の記憶位置情報に基づいて、前記第１のメモリに書き込まれた前記第１の読み出しデータ及び前記チェックコードのリード要求を前記第１のメモリコントローラへ送信し、
前記第１のメモリコントローラが、前記第１の読み出しデータ及び前記チェックコードの前記第１のメモリからの読み出しを開始し、
前記第１のデータ転送制御部が、前記所定量の第１の読み出しデータが読みだされる毎に、前記所定量の第１の読み出しデータを前記所定のアルゴリズムに従って変換して算出したデータと前記所定量の第１の読み出しデータに付加された前記チェックコードの前記変換データとを比較し、比較の結果に応じて、前記チェックコードに、前記第１の読み出しデータに誤りがあることを示す所定のデータを書き込み、
前記第１の入出力制御部が、前記第１のメモリから読みだされる前記第１の読み出しデータを前記第１の情報処理装置に送信し、
前記第１の入出力制御部が、前記所定量の第１の読み出しデータ毎に付加される前記チェックコードに、前記第１の読み出しデータに誤りがあることを示す前記所定のデータが書き込まれている場合には、前記第１の読み出しデータの前記第１の情報処理装置への送信を中止し、
前記第２のチャネル制御部は、
前記第２の入出力制御部が前記第２の情報処理装置から受信した前記データ入出力要求が第２のデータ読み出し要求である場合には、
前記第２の入出力制御部が、前記第４の記憶位置情報を前記第２のプロセッサに送信し、
前記第２のプロセッサが、前記第４のデータ転送情報を前記第２のデータ転送制御部に送信し、
前記第２のデータ転送制御部が、前記第４のデータ転送情報に基づいて、前記キャッシュメモリからの前記第２の読み出しデータの読み出しを開始し、
前記第２のデータ転送制御部が、前記第２の読み出しデータの前記第２のメモリにおける記憶位置を示す情報と前記第２の読み出しデータとの前記第２のメモリコントローラへの送信を開始し、
前記第２のデータ転送制御部が、前記第２の読み出しデータの送信の際に、所定量の前記第２の読み出しデータ毎に、前記所定量の第２の読み出しデータを所定のアルゴリズムに従って変換して算出した変換データと前記所定量の第２の読み出しデータの誤り有無を示す誤り有無データとを含むチェックコードを付加し、
前記第２のメモリコントローラが、前記第２の読み出しデータ及び前記チェックコードの前記第２のメモリへの書き込みを開始し、
前記第２の入出力制御部が、前記第２のメモリに書き込まれた前記第２の読み出しデータ及び前記チェックコードのリード要求を前記第２のメモリコントローラへ送信し、
前記第２のメモリコントローラが、前記第２の読み出しデータ及び前記チェックコードの前記第２のメモリからの読み出しを開始し、
前記第２のデータ転送制御部が、前記所定量の第２の読み出しデータが読みだされる毎に、前記所定量の第２の読み出しデータを前記所定のアルゴリズムに従って変換して算出したデータと前記所定量の第２の読み出しデータに付加された前記チェックコードの前記変換データとを比較し、比較の結果に応じて、前記チェックコードに、前記第２の読み出しデータに誤りがあることを示す所定のデータを書き込み、
前記第２の入出力制御部が、前記第２のメモリから読みだされる前記第２の読み出しデータを前記第２の情報処理装置に送信し、
前記第２の入出力制御部が、前記所定量の第２の読み出しデータ毎に付加される前記チェックコードに、前記第２の読み出しデータに誤りがあることを示す前記所定のデータが書き込まれている場合には、前記第２の読み出しデータの前記第２の情報処理装置への送信を中止すること
を特徴とする請求項２に記載のストレージ制御装置。
【請求項５】
前記第２の入出力制御部が前記第２の記憶位置情報を前記第２のプロセッサに送信する際に、前記第２の書き込みデータの前記第２のメモリへの書き込みが終了している場合には、
前記第２の記憶位置情報には、前記第２の書き込みデータの前記第２のメモリにおける最終書き込みアドレスを示す情報が含まれ、
前記第２のデータ転送情報には、前記第２の書き込みデータの前記第２のメモリにおける最終書き込みアドレスを示す情報が含まれること
を特徴とする請求項１に記載のストレージ制御装置。
【請求項６】
前記第１の情報処理装置はオープン系の情報処理装置であり、
前記第２の情報処理装置はメインフレーム系の情報処理装置であること
を特徴とする請求項１に記載のストレージ制御装置。
【請求項７】
情報処理装置からデータ入出力要求を受信し、前記情報処理装置との間でデータの送受信を行うチャネル制御部と、
前記データ入出力要求に応じて、データを記憶する記憶ボリュームに対してデータの読み書きを行うディスク制御部と、
前記チャネル制御部及び前記ディスク制御部の間で授受されるデータを記憶するキャッシュメモリと、
を備え、
前記チャネル制御部は、
メモリと、
前記情報処理装置からデータ入出力要求を受信し、前記メモリと前記情報処理装置との間のデータの送受信を制御する入出力制御部と、
前記メモリ及び前記キャッシュメモリを制御するプロセッサと、
前記メモリへのデータの読み書きを行うメモリコントローラ及び前記メモリと前記キャッシュメモリとの間のデータ転送を制御する複数のデータ転送制御部を有するデータ転送装置と、
を備え、
前記入出力制御部が前記情報処理装置から第１のデータ書き込み要求及び第２のデータ書き込み要求を受信した場合には、
前記入出力制御部が、前記第１のデータ書き込み要求を前記プロセッサに送信し、
前記入出力制御部が、前記第２のデータ書き込み要求を前記プロセッサに送信し、
前記プロセッサが、前記情報処理装置から送信される前記第１のデータ書き込み要求に対応する第１の書き込みデータの前記メモリにおける記憶位置を示す情報を含む第１の記憶位置情報と前記情報処理装置から送信される前記第２のデータ書き込み要求に対応する第２の書き込みデータの前記メモリにおける記憶位置を示す情報を含む第２の記憶位置情報とを前記入出力制御部に送信し、
前記入出力制御部が、前記第１の書き込みデータの前記メモリにおける記憶位置を示す情報と前記第１の書き込みデータとの前記メモリコントローラへの送信を開始し、
前記メモリコントローラが、前記第１の書き込みデータの前記メモリへの書き込みを開始し、
前記プロセッサが、前記第１の書き込みデータの前記メモリにおける記憶位置を示す情報、及び前記第１の書き込みデータの前記キャッシュメモリにおける記憶位置を示す情報を含む第１のデータ転送情報を第１の前記データ転送制御部に送信し、
前記第１のデータ転送制御部が、前記第１のデータ転送情報に基づいて、前記メモリに書き込まれた前記第１の書き込みデータのリード要求を前記メモリコントローラに送信し、
前記メモリコントローラが、前記第１の書き込みデータの前記メモリからの読み出しを開始し、
前記第１のデータ転送制御部が、前記メモリから読みだされる前記第１の書き込みデータの前記キャッシュメモリへの転送を開始し、
前記入出力制御部が、前記第２の書き込みデータの前記メモリにおける記憶位置を示す情報と前記第２の書き込みデータとの前記メモリコントローラへの送信を開始し、
前記メモリコントローラが、前記第２の書き込みデータの前記メモリへの書き込みを開始し、
前記プロセッサが、前記第２の書き込みデータの前記メモリにおける記憶位置を示す情報、及び前記第２の書き込みデータの前記キャッシュメモリにおける記憶位置を示す情報を含む第２のデータ転送情報を第２の前記データ転送制御部に送信し、
前記第２のデータ転送制御部が、前記第２のデータ転送情報に基づいて、前記メモリに書き込まれた前記第２の書き込みデータのリード要求を前記メモリコントローラに送信し、
前記メモリコントローラが、前記第２の書き込みデータの前記メモリからの読み出しを開始し、
前記第２のデータ転送制御部が、前記メモリから読みだされる前記第２の書き込みデータの前記キャッシュメモリへの転送を開始すること
を特徴とするストレージ制御装置。
【請求項８】
前記入出力制御部が前記情報処理装置から前記第１のデータ書き込み要求及び前記第２のデータ書き込み要求を受信した場合には、
前記入出力制御部が、前記第１のデータ書き込み要求を前記プロセッサに送信し、
前記入出力制御部が、前記第２のデータ書き込み要求を前記プロセッサに送信し、
前記プロセッサが、前記第１の記憶位置情報と前記第２の記憶位置情報とを前記入出力制御部に送信し、
前記入出力制御部が、前記第１の書き込みデータの前記メモリにおける記憶位置を示す情報と前記第１の書き込みデータとの前記メモリコントローラへの送信を開始し、
前記入出力制御部が、前記第１の書き込みデータの送信の際に、所定量の前記第１の書き込みデータ毎に、前記所定量の第１の書き込みデータを所定のアルゴリズムに従って変換して算出した変換データと前記所定量の第１の書き込みデータの誤り有無を示す誤り有無データとを含むチェックコードを付加し、
前記メモリコントローラが、前記第１の書き込みデータ及び前記チェックコードの前記メモリへの書き込みを開始し、
前記プロセッサが、前記第１のデータ転送情報を前記第１のデータ転送制御部に送信し、
前記第１のデータ転送制御部が、前記第１のデータ転送情報に基づいて、前記メモリに書き込まれた前記第１の書き込みデータ及び前記チェックコードのリード要求を前記メモリコントローラに送信し、
前記メモリコントローラが、前記第１の書き込みデータ及び前記チェックコードの前記メモリからの読み出しを開始し、
前記第１のデータ転送制御部が、前記メモリから読みだされる前記第１の書き込みデータの前記キャッシュメモリへの転送を開始し、
前記第１のデータ転送制御部が、前記第１の書き込みデータの転送の際に、前記所定量の第１の書き込みデータ毎に、前記所定量の第１の書き込みデータを前記所定のアルゴリズムに従って変換して算出したデータと前記所定量の第１の書き込みデータに付加された前記チェックコードの前記変換データとを比較し、比較の結果に応じて、前記第１の書き込みデータの前記キャッシュメモリへの転送を中止し、
前記入出力制御部が、前記第２の書き込みデータの前記メモリにおける記憶位置を示す情報と前記第２の書き込みデータとの前記メモリコントローラへの送信を開始し、
前記入出力制御部が、前記第２の書き込みデータの送信の際に、所定量の前記第２の書き込みデータ毎に、前記所定量の第２の書き込みデータを所定のアルゴリズムに従って変換して算出した変換データと前記所定量の第２の書き込みデータの誤り有無を示す誤り有無データとを含むチェックコードを付加し、
前記メモリコントローラが、前記第２の書き込みデータ及び前記チェックコードの前記メモリへの書き込みを開始し、
前記プロセッサが、前記第２のデータ転送情報を前記第２のデータ転送制御部に送信し、
前記第２のデータ転送制御部が、前記第２のデータ転送情報に基づいて、前記メモリに書き込まれた前記第２の書き込みデータ及び前記チェックコードのリード要求を前記メモリコントローラに送信し、
前記メモリコントローラが、前記第２の書き込みデータ及び前記チェックコードの前記メモリからの読み出しを開始し、
前記第２のデータ転送制御部が、前記メモリから読みだされる前記第２の書き込みデータの前記キャッシュメモリへの転送を開始し、
前記第２のデータ転送制御部が、前記第２の書き込みデータの転送の際に、前記所定量の第２の書き込みデータ毎に、前記所定量の第２の書き込みデータを前記所定のアルゴリズムに従って変換して算出したデータと前記所定量の書き込みデータに付加された前記チェックコードの前記変換データとを比較し、比較の結果に応じて、前記第２の書き込みデータの前記キャッシュメモリへの転送を中止すること
を特徴とする請求項７に記載のストレージ制御装置。
【請求項９】
第１の情報処理装置からデータ入出力要求を受信し、前記第１の情報処理装置との間でデータの送受信を行う第１のチャネル制御部と、
第２の情報処理装置からデータ入出力要求を受信し、前記第２の情報処理装置との間でデータの送受信を行う第２のチャネル制御部と、
前記データ入出力要求に応じて、データを記憶する記憶ボリュームに対してデータの読み書きを行うディスク制御部と、
前記第１のチャネル制御部、前記第２のチャネル制御部、及び前記ディスク制御部の間で授受されるデータを記憶するキャッシュメモリと、
を備え、
前記第１のチャネル制御部は、
第１のメモリと、
前記第１の情報処理装置からデータ入出力要求を受信し、前記第１のメモリと前記第１の情報処理装置との間のデータの送受信を制御する第１の入出力制御部と、
前記第１のメモリ及び前記キャッシュメモリを制御する第１のプロセッサと、
前記第１のメモリへのデータの読み書きを行う第１のメモリコントローラ及び前記第１のメモリと前記キャッシュメモリとの間のデータ転送を制御する複数の第１のデータ転送制御部を有する第１のデータ転送装置と、
を備え、
前記第２のチャネル制御部は、
第２のメモリと、
前記第２のメモリを制御し、前記第２の情報処理装置からデータ入出力要求を受信し、前記第２のメモリと前記第２の情報処理装置との間のデータの送受信を制御する第２の入出力制御部と、
前記キャッシュメモリを制御する第２のプロセッサと、
前記第２のメモリへのデータの読み書きを行う第２のメモリコントローラ及び前記第２のメモリと前記キャッシュメモリとの間のデータ転送を制御する第２のデータ転送制御部を有する第２のデータ転送装置と、
を備え、
前記第１のチャネル制御部は、
前記第１の入出力制御部が前記第１の情報処理装置から第１のデータ書き込み要求及び第２のデータ書き込み要求を受信した場合には、
前記第１の入出力制御部が、前記第１のデータ書き込み要求を前記第１のプロセッサに送信し、
前記第１の入出力制御部が、前記第２のデータ書き込み要求を前記第１のプロセッサに送信し、
前記第１のプロセッサが、前記第１の情報処理装置から送信される前記第１のデータ書き込み要求に対応する第１の書き込みデータの前記第１のメモリにおける記憶位置を示す情報を含む第１の記憶位置情報と前記第１の情報処理装置から送信される前記第２のデータ書き込み要求に対応する第２の書き込みデータの前記第１のメモリにおける記憶位置を示す情報を含む第２の記憶位置情報とを前記第１の入出力制御部に送信し、
前記第１の入出力制御部が、前記第１の書き込みデータの前記第１のメモリにおける記憶位置を示す情報と前記第１の書き込みデータとの前記第１のメモリコントローラへの送信を開始し、
前記第１のメモリコントローラが、前記第１の書き込みデータの前記第１のメモリへの書き込みを開始し、
前記第１のプロセッサが、前記第１の書き込みデータの前記第１のメモリにおける記憶位置を示す情報、及び前記第１の書き込みデータの前記キャッシュメモリにおける記憶位置を示す情報を含む第１のデータ転送情報を前記第１のデータ転送制御部のいずれかに送信し、
前記第１のデータ転送情報が送信された前記第１のデータ転送制御部が、前記第１のデータ転送情報に基づいて、前記第１のメモリに書き込まれた前記第１の書き込みデータのリード要求を前記第１のメモリコントローラに送信し、
前記第１のメモリコントローラが、前記第１の書き込みデータの前記第１のメモリからの読み出しを開始し、
前記第１のデータ転送情報が送信された前記第１のデータ転送制御部が、前記第１のメモリから読みだされる前記第１の書き込みデータの前記キャッシュメモリへの転送を開始し、
前記第１の入出力制御部が、前記第２の書き込みデータの前記第１のメモリにおける記憶位置を示す情報と前記第２の書き込みデータとの前記第１のメモリコントローラへの送信を開始し、
前記第１のメモリコントローラが、前記第２の書き込みデータの前記第１のメモリへの書き込みを開始し、
前記第１のプロセッサが、前記第２の書き込みデータの前記第１のメモリにおける記憶位置を示す情報、及び前記第２の書き込みデータの前記キャッシュメモリにおける記憶位置を示す情報を含む第２のデータ転送情報を、前記第１のデータ転送情報が送信された前記第１のデータ転送制御部とは異なる他の前記第１のデータ転送制御部に送信し、
前記第２のデータ転送情報が送信された前記第１のデータ転送制御部が、前記第２のデータ転送情報に基づいて、前記第１のメモリに書き込まれた前記第２の書き込みデータのリード要求を前記第１のメモリコントローラに送信し、
前記第１のメモリコントローラが、前記第２の書き込みデータの前記第１のメモリからの読み出しを開始し、
前記第１のデータ転送情報が送信された前記第２のデータ転送制御部が、前記第１のメモリから読みだされる前記第２の書き込みデータの前記キャッシュメモリへの転送を開始し、
前記第２のチャネル制御部は、
前記第２の入出力制御部が前記第２の情報処理装置から受信した前記データ入出力要求が第３のデータ書き込み要求である場合には、
前記第２の入出力制御部が、前記第２の情報処理装置から送信される前記第３のデータ書き込み要求に対応する第３の書き込みデータの前記第２のメモリにおける記憶位置を示す情報と前記第３の書き込みデータとの前記第２のメモリコントローラへの送信を開始し、
前記第２のメモリコントローラが、前記第３の書き込みデータの前記第２のメモリへの書き込みを開始し、
前記第２の入出力制御部が、前記第３の書き込みデータの前記第２のメモリにおける記憶位置を示す情報を含む第３の記憶位置情報を前記第２のプロセッサに送信し、
前記第２のプロセッサが、前記第３の書き込みデータの前記第２のメモリにおける記憶位置を示す情報、及び前記第３の書き込みデータの前記キャッシュメモリにおける記憶位置を示す情報を含む第３のデータ転送情報を前記第２のデータ転送制御部に送信し、
前記第２のデータ転送制御部が、前記第３のデータ転送情報に基づいて、前記第２のメモリに書き込まれた前記第３の書き込みデータのリード要求を前記第２のメモリコントローラに送信し、
前記第２のメモリコントローラが、前記第３の書き込みデータの前記第２のメモリからの読み出しを開始し、
前記第２のデータ転送制御部が、前記第２のメモリから読みだされる前記第３の書き込みデータの前記キャッシュメモリへの転送を開始すること
を特徴とするストレージ制御装置。
【請求項１０】
前記第１の情報処理装置はオープン系の情報処理装置であり、
前記第２の情報処理装置はメインフレーム系の情報処理装置であること
を特徴とする請求項９に記載のストレージ制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ストレージ制御装置に関する。
【背景技術】
【０００２】
近年の情報技術の進歩に伴い、ストレージ装置の記憶容量は増加の一途を辿っている。このような大容量のストレージ装置を複数の情報処理装置と通信可能に接続し、ストレージ装置が提供する大容量の記憶資源をこれらの複数の情報処理装置で利用する技術が開発されている。この場合、オープン系の情報処理装置とメインフレーム系の情報処理装置とを混在させてストレージ装置の記憶資源を利用する技術も開発されている。
【特許文献１】特開平９−３２５９０５号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
しかしながら、オープン系の情報処理装置とメインフレーム系の情報処理装置とでは、前者が比較的コストを重視する傾向があり、後者が比較的性能を重視する傾向がある点で、ストレージ装置に求める特性に相違がある。  
そのため、両者のいずれの要求にも柔軟に対応可能なストレージ装置が求められていた。  
本発明は上記課題を鑑みてなされたものであり、ストレージ制御装置を提供することを主たる目的とする。
【課題を解決するための手段】
【０００４】
上記課題を解決するために、本発明は、第１の情報処理装置からデータ入出力要求を受信し、前記第１の情報処理装置との間でデータの送受信を行う第１のチャネル制御部と、第２の情報処理装置からデータ入出力要求を受信し、前記第２の情報処理装置との間でデータの送受信を行う第２のチャネル制御部と、前記データ入出力要求に応じて、データを記憶する記憶ボリュームに対してデータの読み書きを行うディスク制御部と、前記第１のチャネル制御部、前記第２のチャネル制御部、及び前記ディスク制御部の間で授受されるデータを記憶するキャッシュメモリとを備え、前記第１のチャネル制御部は、第１のメモリと、前記第１の情報処理装置からデータ入出力要求を受信し、前記第１のメモリと前記第１の情報処理装置との間のデータの送受信を制御する第１の入出力制御部と、前記第１のメモリ及び前記キャッシュメモリを制御する第１のプロセッサと、前記第１のメモリへのデータの読み書きを行う第１のメモリコントローラ及び前記第１のメモリと前記キャッシュメモリとの間のデータ転送を制御する第１のデータ転送制御部を有する第１のデータ転送装置とを備え、前記第２のチャネル制御部は、第２のメモリと、前記第２のメモリを制御し、前記第２の情報処理装置からデータ入出力要求を受信し、前記第２のメモリと前記第２の情報処理装置との間のデータの送受信を制御する第２の入出力制御部と、前記キャッシュメモリを制御する第２のプロセッサと、前記第２のメモリへのデータの読み書きを行う第２のメモリコントローラ及び前記第２のメモリと前記キャッシュメモリとの間のデータ転送を制御する第２のデータ転送制御部を有する第２のデータ転送装置とを備え、前記第１のチャネル制御部は、前記第１の入出力制御部が前記第１の情報処理装置から受信した前記データ入出力要求が第１のデータ書き込み要求である場合には、前記第１の入出力制御部が、前記第１のデータ書き込み要求を前記第１のプロセッサに送信し、前記第１のプロセッサが、前記第１の情報処理装置から送信される第１の書き込みデータの前記第１のメモリにおける記憶位置を示す情報を含む第１の記憶位置情報を前記第１の入出力制御部に送信し、前記第１の入出力制御部が、前記第１の書き込みデータの前記第１のメモリにおける記憶位置を示す情報と前記第１の書き込みデータとの前記第１のメモリコントローラへの送信を開始し、前記第１のメモリコントローラが、前記第１の書き込みデータの前記第１のメモリへの書き込みを開始し、前記第１のプロセッサが、前記第１の書き込みデータの前記第１のメモリにおける記憶位置を示す情報、及び前記第１の書き込みデータの前記キャッシュメモリにおける記憶位置を示す情報を含む第１のデータ転送情報を前記第１のデータ転送制御部に送信し、前記第１のデータ転送制御部が、前記第１のデータ転送情報に基づいて、前記第１のメモリに書き込まれた前記第１の書き込みデータのリード要求を前記第１のメモリコントローラに送信し、前記第１のメモリコントローラが、前記第１の書き込みデータの前記第１のメモリからの読み出しを開始し、前記第１のデータ転送制御部が、前記第１のメモリから読みだされる前記第１の書き込みデータの前記キャッシュメモリへの転送を開始し、前記第２のチャネル制御部は、前記第２の入出力制御部が前記第２の情報処理装置から受信した前記データ入出力要求が第２のデータ書き込み要求である場合には、前記第２の入出力制御部が、前記第２の情報処理装置から送信される第２の書き込みデータの前記第２のメモリにおける記憶位置を示す情報と前記第２の書き込みデータとの前記第２のメモリコントローラへの送信を開始し、前記第２のメモリコントローラが、前記第２の書き込みデータの前記第２のメモリへの書き込みを開始し、前記第２の入出力制御部が、前記第２の書き込みデータの前記第２のメモリにおける記憶位置を示す情報を含む第２の記憶位置情報を前記第２のプロセッサに送信し、前記第２のプロセッサが、前記第２の書き込みデータの前記第２のメモリにおける記憶位置を示す情報、及び前記第２の書き込みデータの前記キャッシュメモリにおける記憶位置を示す情報を含む第２のデータ転送情報を前記第２のデータ転送制御部に送信し、前記第２のデータ転送制御部が、前記第２のデータ転送情報に基づいて、前記第２のメモリに書き込まれた前記第２の書き込みデータのリード要求を前記第２のメモリコントローラに送信し、前記第２のメモリコントローラが、前記第２の書き込みデータの前記第２のメモリからの読み出しを開始し、前記第２のデータ転送制御部が、前記第２のメモリから読みだされる前記第２の書き込みデータの前記キャッシュメモリへの転送を開始することを特徴とするストレージ制御装置に関する。
【０００５】
その他、本願が開示する課題、及びその解決方法は、発明を実施するための最良の形態の欄、及び図面により明らかにされる。
【発明の効果】
【０００６】
ストレージ制御装置を提供することができる。
【発明を実施するための最良の形態】
【０００７】
＝＝＝全体構成例＝＝＝
まず、本実施の形態に係るストレージ制御装置１００を含むストレージシステム６００の全体構成を示すブロック図を図１に示す。  
ストレージシステム６００は、ストレージ制御装置１００とストレージ駆動装置３００とを備える。ストレージ制御装置１００は、例えば情報処理装置１乃至５（２００）から受信したコマンドに従ってストレージ駆動装置３００に対する制御を行う。例えば情報処理装置１乃至５（２００）からデータ入出力要求を受信して、ストレージ駆動装置３００が備える記憶ボリューム３１０に対してデータの読み書きを行う。
【０００８】
情報処理装置１乃至５（２００）はＣＰＵ（Central Processing Unit）やメモリを備えたコンピュータ等の情報機器である。情報処理装置１乃至５（２００）が備えるＣＰＵにより各種プログラムが実行されることにより様々な機能が実現される。情報処理装置１乃至５（２００）は、例えば銀行の自動預金預け払いシステムや航空機の座席予約システム等における中枢コンピュータとして利用される。
【０００９】
情報処理装置１乃至４（２００）は、例えばパーソナルコンピュータやワークステーション等のオープン系コンピュータ（オープン系の情報処理装置）とすることができる。また情報処理装置５（２００）はメインフレームコンピュータ（メインフレーム系の情報処理装置）とすることができる。メインフレームコンピュータでは、メインフレーム系オペレーティングシステムによる制御の下、メインフレーム系アプリケーションプログラムが実行される。メインフレームコンピュータは、主として高性能が求められるアプリケーションプログラムを実行するコンピュータシステムにおいて用いられることが多い。そのため、メインフレームコンピュータに接続されたストレージ制御装置１００及びストレージ駆動装置３００は、メインフレームコンピュータからのデータ入出力要求に対して、短時間にデータ入出力処理を行うことが求められる。一方、オープン系コンピュータは、公開された技術規格に従って製造されており、規格が合えば異なるメーカ同士の機器を接続して使用できるという特徴を持つ。オープン系コンピュータ上では、オープン系オペレーティングシステムによる制御の下、オープン系アプリケーションプログラムが実行される。オープン系コンピュータの場合はメインフレームコンピュータと比べて、部品共通化等による低コスト化が重視される傾向にあり、高性能化の比重は比較的小さい。
【００１０】
図１において、情報処理装置１乃至４（２００）はＳＡＮ（Storage Area network）５００を介してストレージ制御装置１００と通信可能に接続されている。ＳＡＮ５００は、ストレージ制御装置１００と情報処理装置１乃至４（２００）との間でデータ入出力要求やデータの送受信を行うためのネットワークである。ＳＡＮ５００を介して行われる情報処理装置１乃至４（２００）とストレージ制御装置１００との間の通信は、例えばファイバチャネルプロトコルに従って行われるようにすることができる。この場合、情報処理装置１乃至４（２００）とストレージ制御装置１００との間では、例えば２ｋＢ（キロバイト）のデータブロックを単位としてデータの送受信が行われる。例えば情報処理装置１乃至４（２００）からストレージ制御装置１００に対して１０ｋＢの書き込みデータが送信される場合には、その書き込みデータは２ｋＢ毎のブロックデータに分割されて送信される。ストレージ制御装置１００はＳＡＮ５００を介して複数の情報処理装置１乃至４（２００）に接続されているので、各情報処理装置１乃至４（２００）からの様々なデータ入出力要求やデータブロックを混在して受信することになる。なお、もちろん、情報処理装置１乃至４（２００）とストレージ制御装置１００との間は、ＳＡＮ５００を介して接続されている必要はなく、例えば、ＬＡＮ（Local Area Network）を介して接続されているようにすることもできる。
【００１１】
情報処理装置５（２００）は、ＳＡＮ５００等のネットワークを介さずにストレージ制御装置１００と接続されている。情報処理装置５（２００）とストレージ制御装置１００との間の通信は、例えばＦＩＣＯＮ（Fibre Connection）（登録商標）やＥＳＣＯＮ(Enterprise System Connection) （登録商標）、ＡＣＯＮＡＲＣ（Advanced Connection Architecture）（登録商標）、ＦＩＢＡＲＣ（Fibre Connection Architecture）（登録商標）などの通信プロトコルに従って行われるようにすることができる。情報処理装置５（２００）とストレージ制御装置１００との間では、これらの通信プロトコルに従ってデータ入出力要求やデータの送受信が行われる。この場合も、情報処理装置５（２００）とストレージ制御装置１００との間では、所定のデータブロックを単位としてデータの送受信が行われる。なお、もちろん、情報処理装置５（２００）とストレージ制御装置１００との間がＳＡＮ５００で接続され、ファイバチャネルプロトコルに従って通信が行われるようにすることもできる。
【００１２】
＝＝＝ストレージ駆動装置＝＝＝
ストレージ駆動装置３００はデータを記憶するための多数の物理ディスクドライブを備えている。これにより情報処理装置１乃至５（２００）に対して大容量の記憶領域を提供することができる。物理ディスクドライブは、ハードディスクドライブなどのデータ記憶媒体、あるいは、ＲＡＩＤ（Redundant Arrays of Inexpensive Disks）を構成する複数のハードディスクドライブにより構成されてなるようにすることができる。また物理ディスクドライブにより提供される物理的な記憶領域である物理ボリュームには、論理的な記憶領域である論理ボリュームを設定することができる。物理ボリュームと論理ボリュームとを含む、データを記憶するための記憶領域を記憶ボリューム３１０とも記す。  
ストレージ制御装置１００とストレージ駆動装置３００との間は図１のように直接に接続される形態とすることもできるし、ネットワークを介して接続されるようにすることもできる。さらにストレージ駆動装置３００はストレージ制御装置１００と一体として構成されるようにすることもできる。
【００１３】
＝＝＝ストレージ制御装置＝＝＝
ストレージ制御装置１００はチャネル制御部１１０、共有メモリ１２０、キャッシュメモリ１３０、ディスク制御部１４０、管理端末１６０、内部接続部１５０を備える。  
ストレージ制御装置１００は、チャネル制御部１乃至６（１１０）によりＳＡＮ５００を介して情報処理装置１乃至４（２００）との間の通信を行う。またチャネル制御部７乃至８（１１０）により情報処理装置５（２００）との間の通信を行う。  
チャネル制御部１１０は情報処理装置２００との間で通信を行うための通信インタフェースを備え、情報処理装置２００からデータ入出力要求を受信し、情報処理装置との間でデータの送受信を行う。  
各チャネル制御部１１０は管理端末１６０と共に内部ＬＡＮ１５１で接続されている。これによりチャネル制御部１１０に実行させるマイクロプログラム等を管理端末１６０から送信しインストールすることが可能となっている。チャネル制御部１１０の構成については後述する。
【００１４】
内部接続部１５０はチャネル制御部１１０、共有メモリ１２０、キャッシュメモリ１３０、ディスク制御部１４０を相互に接続する。チャネル制御部１１０、共有メモリ１２０、キャッシュメモリ１３０、ディスク制御部１４０の間でのデータやコマンドの授受は内部接続部１５０を介することにより行われる。内部接続部１５０は例えばクロスバスイッチで構成される。  
共有メモリ１２０及びキャッシュメモリ１３０は、チャネル制御部１１０、ディスク制御部１４０の間で授受されるデータを記憶するメモリである。共有メモリ１２０は主に制御情報やコマンド等を記憶するために利用されるのに対し、キャッシュメモリ１３０は、主にデータを記憶するために利用される。
【００１５】
例えば、あるチャネル制御部１１０が情報処理装置２００から受信したデータ入出力要求がデータ書き込み要求であった場合には、当該チャネル制御部１１０はデータ書き込み要求を共有メモリ１２０に書き込むと共に、情報処理装置２００から受信した書き込みデータをキャッシュメモリ１３０に書き込む。一方、ディスク制御部１４０は共有メモリ１２０を監視しており、共有メモリ１２０にデータ書き込み要求が書き込まれたことを検出すると、当該データ書き込み要求に従ってキャッシュメモリ１３０から書き込みデータを読み出してストレージ駆動装置３００に書き込む。
【００１６】
またあるチャネル制御部１１０が情報処理装置２００から受信したデータ入出力要求がデータ読み出し要求であった場合には、読み出し対象となる読み出しデータがキャッシュメモリ１３０に存在するかどうかを調べる。ここでキャッシュメモリ１３０に存在すれば、チャネル制御部１１０はその読み出しデータを情報処理装置２００に送信する。一方、読みだしデータがキャッシュメモリ１３０に存在しない場合には、当該チャネル制御部１１０はデータ読み出し要求を共有メモリ１２０に書き込むと共に、共有メモリ１２０を監視する。データ読み出し要求が共有メモリ１２０に書き込まれたことを検出したディスク制御部１４０は、ストレージ駆動装置３００から読みだし対象となる読み出しデータを読み出してこれをキャッシュメモリ１３０に書き込むと共に、その旨を共有メモリ１２０に書き込む。そして、チャネル制御部１１０は読みだし対象となる読み出しデータがキャッシュメモリ１３０に書き込まれたことを検出すると、その読み出しデータを情報処理装置２００に送信する。
【００１７】
このようにチャネル制御部１１０及びディスク制御部１４０の間では、キャッシュメモリ１３０を介してデータの授受が行われる。
【００１８】
なお、チャネル制御部１１０からディスク制御部１４０に対するデータの書き込みや読み出しの指示を共有メモリ１２０を介在させて間接的に行う構成の他、例えばチャネル制御部１１０からディスク制御部１４０に対してデータの書き込みや読み出しの指示を共有メモリ１２０を介さずに直接に行う構成とすることもできる。  
また、チャネル制御部１１０とディスク制御部１４０とを一体的に構成し、両機能を合わせ持った制御部を設けるようにすることもできる。
【００１９】
ディスク制御部１４０は、データを記憶する記憶ボリューム３１０と通信可能に接続され、ストレージ駆動装置３００の制御を行う。例えば上述のように、チャネル制御部１１０が情報処理装置２００から受信したデータ入出力要求に応じて、記憶ボリューム３１０に対してデータの読み書きを行う。  
各ディスク制御部１４０は管理端末１６０と共に内部ＬＡＮ１５１で接続されており、相互に通信を行うことが可能である。これにより、ディスク制御部１４０に実行させるマイクロプログラム等を管理端末１６０から送信しインストールすることが可能となっている。ディスク制御部１４０の構成については後述する。
【００２０】
本実施例においては、共有メモリ１２０及びキャッシュメモリ１３０がチャネル制御部１１０及びディスク制御部１４０に対して独立に設けられている場合について記載したが、本実施例はこの場合に限られるものでない。例えば共有メモリ１２０又はキャッシュメモリ１３０がチャネル制御部１１０及びディスク制御部１４０の各々に分散されて設けられることも好ましい。この場合、内部接続部１５０は、分散された共有メモリ１２０又はキャッシュメモリ１３０を有するチャネル制御部１１０及びディスク制御部１４０を相互に接続させることになる。  
また、チャネル制御部１１０、ディスク制御部１４０、内部接続部１５０、共有メモリ１２０、キャッシュメモリ１３０の少なくともいずれかが一体として構成されているようにすることもできる。
【００２１】
＝＝＝管理端末＝＝＝
管理端末１６０はストレージシステム６００を保守・管理するための情報機器である。オペレータは、管理端末１６０を操作することにより、例えばストレージ駆動装置３００内の物理ディスクドライブの構成の設定や、情報処理装置２００とチャネル制御部１１０との間の通信路であるパスの設定、記憶ボリューム３１０の設定、チャネル制御部１１０やディスク制御部１４０において実行されるマイクロプログラムのインストール等を行うことができる。これらの設定や制御は、管理端末１６０が備えるユーザインタフェース、あるいは管理端末１６０で動作するＷｅｂサーバにより提供されるＷｅｂページを表示する情報処理装置１乃至５（２００）のユーザインタフェースから行うようにすることができる。
【００２２】
管理端末１６０はストレージ制御装置１００に内蔵されている形態とすることもできるし、外付けされている形態とすることもできる。また管理端末１６０は、ストレージ制御装置１００及びストレージ駆動装置３００の保守・管理を専用に行うコンピュータとすることもできるし、汎用のコンピュータに保守・管理機能を持たせたものとすることもできる。
【００２３】
管理端末１６０の構成を示すブロック図を図４に示す。  
管理端末１６０は、ＣＰＵ１６１、メモリ１６２、ポート１６３、記録媒体読取装置１６４、入力装置１６５、出力装置１６６、記憶装置１６８を備える。
【００２４】
ＣＰＵ１６１は管理端末１６０の全体の制御を司るもので、メモリ１６２に記憶された各種の動作を行うためのコードから構成されるストレージ管理プログラム１６２Ａを実行することにより、ストレージシステム６００の保守・管理機能を提供することができる。また同様に例えばストレージ管理プログラム１６２Ａを実行することにより上記Ｗｅｂサーバとしての機能等を実現するようにすることができる。
【００２５】
記録媒体読取装置１６４は、記録媒体１６７に記録されているプログラムやデータを読み取るための装置である。読み取られたプログラムやデータはメモリ１６２や記憶装置１６８に格納される。従って、例えば記録媒体１６７に記録されたストレージ管理プログラム１６２Ａを、記録媒体読取装置１６４を用いて上記記録媒体１６７から読み取って、メモリ１６２や記憶装置１６８に格納するようにすることができる。記録媒体１６７としてはフレキシブルディスクやＣＤ−ＲＯＭ、半導体メモリ等を用いることができる。記録媒体読取装置１６４は管理端末１６０に内蔵されている形態とすることもできるし、外付されている形態とすることもできる。記憶装置１６８は、例えばハードディスク装置や半導体記憶装置等である。入力装置１６５はオペレータ等による管理端末１６０へのデータ入力等のために用いられるユーザインタフェースである。入力装置１６５としては例えばキーボードやマウス等が用いられる。出力装置１６６は情報を外部に出力するために用いられるユーザインタフェースである。出力装置１６６としては例えばディスプレイやプリンタ等が用いられる。ポート１６３は内部ＬＡＮ１５１に接続されており、これにより管理端末１６０はチャネル制御部１１０やディスク制御部１４０等と通信を行うことができる。またポート１６３は例えばＬＡＮ等と通信可能に接続されるようにすることもできる。この場合管理端末１６０は、ＬＡＮを通じて情報処理装置１乃至５（２００）と通信を行うようにすることもできる。
【００２６】
＝＝＝外観図＝＝＝
次に、本実施の形態に係るストレージシステム６００の外観構成を図２に示す。また、ストレージ制御装置１００の外観構成を図３に示す。  
図２に示すように、本実施の形態に係るストレージシステム６００はストレージ制御装置１００及びストレージ駆動装置３００がそれぞれの筐体に納められた形態をしている。図２に示す例では、ストレージ制御装置１００の筐体の両側にストレージ駆動装置３００の筐体が配置されている。
【００２７】
ストレージ制御装置１００は、正面中央部に管理端末１６０が備えられている。管理端末１６０はカバーで覆われており、図３に示すようにカバーを開けることにより管理端
末１６０を使用することができる。なお図３に示した管理端末１６０はいわゆるノート型パーソナルコンピュータの形態をしているが、どのような形態とすることも可能である。
【００２８】
管理端末１６０の下部には、チャネル制御部１１０やディスク制御部１４０、キャッシュメモリ１３０、共有メモリ１２０、内部接続部１５０を装着するためのスロットが設けられている。チャネル制御部１１０やディスク制御部１４０、キャッシュメモリ１３０、共有メモリ１２０、内部接続部１５０は回路基板を備えてボードとして構成されており、これらのボードが各スロットに装着される。各スロットにはこれらのボードを装着するためのガイドレールが設けられている。ガイドレールに沿って各ボードをスロットに挿入することにより、チャネル制御部１１０やディスク制御部１４０、キャッシュメモリ１３０、共有メモリ１２０、内部接続部１５０をストレージ制御装置１００に装着することができる。各スロットの奥手方向正面部には、各ボードをストレージ制御装置１００と電気的に接続するためのコネクタが設けられている。
【００２９】
またストレージ制御装置１００には、チャネル制御部１１０等から発生する熱を放出するためのファン１７０が設けられている。ファン１７０はストレージ制御装置１００の上面部に設けられる他、スロットの上部にも設けられている。
【００３０】
＝＝＝チャネル制御部＝＝＝
チャネル制御部１１０の構成を図５及び図２７に示す。図５に示すチャネル制御部はオープン系チャネル制御部１１０Ａであり、図２７に示すチャネル制御部はメインフレーム系チャネル制御部１１０Ｂである。オープン系チャネル制御部１１０Ａは、オープン系情報処理装置２００からデータ入出力要求を受信し、オープン系情報処理装置２００との間でデータの送受信を行う。例えば図１に示すチャネル制御部１乃至６（１１０Ａ）である。メインフレーム系チャネル制御部１１０Ｂは、メインフレーム系情報処理装置２００からデータ入出力要求を受信し、メインフレーム系情報処理装置２００との間でデータの送受信を行う。例えば図１に示すチャネル制御部７乃至８（１１０Ｂ）である。オープン系チャネル制御部１１０Ａとメインフレーム系チャネル制御部１１０Ｂとを区別する必要がない場合には、単にチャネル制御部１１０とも記す。
【００３１】
オープン系チャネル制御部１１０Ａは回路基板１１８を備えた一つのユニット化されたボードとして構成される。オープン系チャネル制御部１１０Ａは一枚もしくは複数枚の回路基板１１８を含んで構成される。回路基板１１８には、オープン系プロセッサ１１９Ａ、オープン系ホストＩ／Ｆ制御ＬＳＩ（ホストInterFace制御Large Scale Integration、入出力制御部）１１５Ａ、データ転送装置１１４、データ格納メモリ（メモリ）１１７、ローカルメモリ１１１、及びコネクタ１１６が形成されている。
【００３２】
オープン系ホストＩ／Ｆ制御ＬＳＩ１１５Ａは、オープン系情報処理装置２００との間で通信を行うための通信インタフェース機能を提供し、オープン系情報処理装置２００からデータ入出力要求を受信し、データ格納メモリ１１７とオープン系情報処理装置２００との間のデータの送受信を制御する。オープン系ホストＩ／Ｆ制御ＬＳＩ１１５Ａと接続されるコネクタ１１６Ａは、オープン系情報処理装置２００と通信可能に接続される通信ポートを構成する。
【００３３】
オープン系プロセッサ１１９Ａは、データ格納メモリ１１７やキャッシュメモリ１３０を制御する。すなわち、オープン系プロセッサ１１９は、オープン系ホストＩ／Ｆ制御ＬＳＩ１１５Ａがオープン系情報処理装置２００との間で送受信するデータの、キャッシュメモリ１３０やデータ格納メモリ１１７における記憶位置を制御する。
【００３４】
データ格納メモリ１１７は、オープン系チャネル制御部１１０Ａがオープン系情報処理装置２００との間で送受信するデータを記憶するためのメモリである。例えば、オープン系ホストＩ／Ｆ制御ＬＳＩ１１５Ａがオープン系情報処理装置２００から書き込みデータを受信した場合には、その書き込みデータは、データ格納メモリ１１７の、オープン系プロセッサ１１９Ａにより指示された記憶位置に一旦書き込まれる。そしてこの書き込みデータはデータ転送装置１１４によりキャッシュメモリ１３０に転送される。
【００３５】
この際、前述したようにオープン系情報処理装置２００から送信される書き込みデータは所定のデータブロックに分割されて送信される。オープン系情報処理装置２００から送信される書き込みデータをキャッシュメモリ１３０へ転送する際には、これらのデータブロックをある程度ひとまとめにして転送した方が、データ転送の回数を少なくできるので、データ転送の効率が良い。どの程度のデータブロックをひとまとめにするのが良いかはオープン系プロセッサ１１９Ａが判断し、データ転送装置１１４に指示する。
【００３６】
データ転送装置１１４は、オープン系プロセッサ１１９Ａからの指示に従い、データ格納メモリ１１７とキャッシュメモリ１３０との間のデータ転送を制御する。詳細は後述するが、データ転送装置１１４は、データ格納メモリ１１７へのデータの読み書きを行うメモリコントローラ８４０及びデータ格納メモリ１１７とキャッシュメモリ１３０との間のデータ転送を制御する一つあるいは複数のＤＭＡ（Direct Memory Access、データ転送制御部）８００を有する。
【００３７】
ローカルメモリ１１１は、オープン系プロセッサ１１９Ａにより実行されるプログラム等を記憶する。このプログラムは例えば管理端末１６０から内部ＬＡＮ１５１を通じて書き込まれるようにすることができる。
【００３８】
データ転送装置１１４と接続されるコネクタ１１６Ｂがストレージ制御装置１００側のコネクタと嵌合することにより、オープン系チャネル制御部１１０Ａはストレージ制御装置１００の内部接続部１５０や管理端末１６０等と電気的に接続される。
【００３９】
メインフレーム系チャネル制御部１１０Ｂも回路基板１１８を備えた一つのユニット化されたボードとして構成される。メインフレーム系チャネル制御部１１０Ｂは一枚もしくは複数枚の回路基板１１８を含んで構成される。回路基板１１８には、メインフレーム系プロセッサ１１９Ｂ、メインフレーム系ホストＩ／Ｆ制御ＬＳＩ（入出力制御部）１１５Ｂ、データ転送装置１１４、データ格納メモリ１１７、ローカルメモリ１１１、及びコネクタ１１６が形成されている。
【００４０】
メインフレーム系ホストＩ／Ｆ制御ＬＳＩ１１５Ｂは、メインフレーム系情報処理装置２００との間で通信を行うための通信インタフェース機能を提供し、データ格納メモリ１１７を制御すると共に、メインフレーム系情報処理装置２００からデータ入出力要求を受信し、データ格納メモリ１１７とメインフレーム系情報処理装置２００との間のデータの送受信を制御する。メインフレーム系チャネル制御部１１０Ｂの場合は、データ格納メモリ１１７に記憶されるデータの記憶位置はメインフレーム系ホストＩ／Ｆ制御ＬＳＩ１１５Ｂに制御される。メインフレーム系ホストＩ／Ｆ制御ＬＳＩ１１５Ｂと接続されるコネクタ１１６Ａは、メインフレーム系情報処理装置２００と通信可能に接続される通信ポートを構成する。
【００４１】
メインフレーム系プロセッサ１１９Ｂは、キャッシュメモリ１３０を制御する。すなわち、メインフレーム系プロセッサ１１９Ｂは、メインフレーム系ホストＩ／Ｆ制御ＬＳＩ１１５Ｂがメインフレーム系情報処理装置２００との間で送受信するデータの、キャッシュメモリ１３０における記憶位置を制御する。
【００４２】
データ格納メモリ１１７は、メインフレーム系チャネル制御部１１０Ｂがメインフレーム系情報処理装置２００との間で送受信するデータを記憶するためのメモリである。例えば、メインフレーム系ホストＩ／Ｆ制御ＬＳＩ１１５Ｂがメインフレーム系情報処理装置２００から書き込みデータを受信した場合には、その書き込みデータは、データ格納メモリ１１７の、メインフレーム系ホストＩ／Ｆ制御ＬＳＩ１１５Ｂにより指示された記憶位置に一旦書き込まれる。そしてこの書き込みデータはデータ転送装置１１４によりキャッシュメモリ１３０に転送される。
【００４３】
この際、前述したようにメインフレーム系情報処理装置２００から送信される書き込みデータは所定のデータブロックに分割されて送信される。メインフレーム系情報処理装置２００から送信される書き込みデータをキャッシュメモリ１３０へ転送する際には、これらのデータブロックをある程度ひとまとめにして転送した方が、データ転送の回数を少なくできるので、データ転送の効率が良い。どの程度のデータブロックをひとまとめにするのが良いかはメインフレーム系プロセッサ１１９Ｂが判断し、データ転送装置１１４に指示する。
【００４４】
データ転送装置１１４は、メインフレーム系プロセッサ１１９Ｂからの指示に従い、データ格納メモリ１１７とキャッシュメモリ１３０との間のデータ転送を制御する。詳細は後述するが、データ転送装置１１４は、データ格納メモリ１１７へのデータの読み書きを行うメモリコントローラ８４０及びデータ格納メモリ１１７とキャッシュメモリ１３０との間のデータ転送を制御する一つあるいは複数のＤＭＡ（データ転送制御部）８００を有する。
【００４５】
ローカルメモリ１１１は、メインフレーム系プロセッサ１１９Ｂにより実行されるプログラム等を記憶する。このプログラムは例えば管理端末１６０から内部ＬＡＮ１５１を通じて書き込まれるようにすることができる。
【００４６】
データ転送装置１１４と接続されるコネクタ１１６Ｂがストレージ制御装置１００側のコネクタと嵌合することにより、メインフレーム系チャネル制御部１１０Ｂはストレージ制御装置１００の内部接続部１５０や管理端末１６０等と電気的に接続される。
【００４７】
＝＝＝ディスク制御部＝＝＝
次にディスク制御部１４０の構成を示す図を図６に示す。  
ディスク制御部１４０は、インタフェース部１４１、メモリ１４３、ＣＰＵ１４２、ＮＶＲＡＭ（nonvolatile random-access memory）１４４、コネクタ１４５を備え、これらが一体的なユニットとして形成されている。
【００４８】
インタフェース部１４１は、内部接続部１５０を介してチャネル制御部１１０等との間で通信を行うための通信インタフェースや、ストレージ駆動装置３００との間で通信を行うための通信インタフェースを備えている。  
ＣＰＵ１４２は、ディスク制御部１４０全体の制御を司ると共に、チャネル制御部１１０やストレージ駆動装置３００、管理端末１６０との間の通信を行う。ＣＰＵ１４２によりメモリ１４３やＮＶＲＡＭ１４４に格納された各種プログラムが実行されることにより本実施の形態に係るディスク制御部１４０の機能が実現される。  
ＮＶＲＡＭ１４４はＣＰＵ１４２の制御を司るプログラムを格納する不揮発性メモリである。ＮＶＲＡＭ１４４に記憶されるプログラムの内容は、管理端末１６０からの指示により書き込みや書き換えを行うことができる。  
またディスク制御部１４０はコネクタ１４５を備えている。コネクタ１４５がストレージ制御装置１００側のコネクタと嵌合することにより、ディスク制御部１４０はストレージ制御装置１００の内部接続部１５０や、ストレージ駆動装置３００、管理端末１６０等と電気的に接続される。
【００４９】
＝＝＝情報処理装置＝＝＝
次に、本実施の形態に係る情報処理装置２００の構成を示すブロック図を図７に示す。情報処理装置２００には、上述したようにオープン系情報処理装置２００とメインフレーム系情報処理装置２００とがあるが、両者の構成は基本的に同一であるので、両者を区別する必要がない場合には単に情報処理装置２００と記す。  
情報処理装置２００は、ＣＰＵ２１０、メモリ２２０、ポート２３０、記録媒体読取装置２４０、入力装置２５０、出力装置２６０、記憶装置２８０を備える。
【００５０】
ＣＰＵ２１０は情報処理装置２００の全体の制御を司るもので、メモリ２２０に記憶された各種の動作を行うためのコードから構成されるプログラム２２０Ａを実行することにより本実施の形態に係る各種機能を実現する。例えば、上述した銀行の自動預金預け払いサービス等の情報処理サービスの提供は、ＣＰＵ２１０がプログラム２２０Ａを実行することにより行われる。また、ＣＰＵ２１０がプログラム２２０Ａを実行することにより、上述した管理端末１６０で動作するＷｅｂサーバにより提供されるＷｅｂページの表示や、物理ディスクドライブ３３０の構成の変更や、情報処理装置２００とチャネル制御部１１０との間の通信路であるパスの設定、論理ボリューム３１０の設定等を行うことができる。  
記録媒体読取装置２４０は記録媒体２７０に記録されているプログラムやデータを読み取るための装置である。読み取られたプログラムやデータはメモリ２２０や記憶装置２８０に格納される。従って、例えば記録媒体２７０に記録されたプログラム２２０Ａを、記録媒体読取装置２４０を用いて上記記録媒体２７０から読み取って、メモリ２２０や記憶装置２８０に記憶するようにすることができる。記録媒体２７０としてはフレキシブルディスクやＣＤ−ＲＯＭ、半導体メモリ等を用いることができる。  
記録媒体読取装置２４０は情報処理装置２００に内蔵されている形態とすることもできるし、外付されている形態とすることもできる。記憶装置２８０は、例えばハードディスク装置や半導体記憶装置等とすることができる。また記憶装置２８０は情報処理装置２００に内蔵されるようにすることもできるし、外付けされるようにすることもできる。外付けされる場合には、通信ネットワークを介して接続される他の情報処理装置２００の記憶装置２８０とすることもできる。またＳＡＮ５００を介して接続されるストレージシステム６００とすることもできる。  
入力装置２５０は情報処理装置２００を操作するオペレータ等による情報処理装置２００へのデータ入力等のために用いられるユーザインタフェースである。入力装置２５０としては例えばキーボードやマウス等が用いられる。出力装置２６０は情報を外部に出力するためのユーザインタフェースである。出力装置２６０としては例えばディスプレイやプリンタ等が用いられる。ポート２３０は、ＳＡＮ５００を介してオープン系チャネル制御部１１０Ａと通信を行うための装置とすることができる。この場合、ポート２３０は例えばＨＢＡ（Host Bus Adapter）により構成されるようにすることができる。またポート２３０はメインフレーム系チャネル制御部１１０Ｂと通信を行うための装置とすることもできる。またポート２３０は、ＬＡＮ等の通信ネットワークを通じて他の情報処理装置２００や管理端末１６０と通信を行うための装置とすることもできる。この場合、例えばプログラム２２０Ａをポート２３０を介して他の情報処理装置２００から受信して、メモリ２２０や記憶装置２８０に記憶するようにすることもできる。
【００５１】
＝＝＝データ転送装置＝＝＝
次に本実施の形態に係るデータ転送装置１１４について、図８を参照しながら説明する。  
図８に示すように、本実施の形態に係るデータ転送装置１１４は、メモリコントローラ８４０と、ＤＭＡ０乃至３（８００）と、接続Ｉ／Ｆ（InterFace）回路８３０とを有する。
【００５２】
メモリコントローラ８４０は、データ格納メモリ１１７へのデータの読み書きを行う。メモリコントローラ８４０は、メモリ制御部８４１と、ライトアドレスレジスタ８４２と、リードアドレスレジスタ８４３とを備える。ライトアドレスレジスタ８４２は、データ格納メモリ１１７にデータを書き込む際の書き込みアドレスが記憶される。リードアドレスレジスタ８４３は、データ格納メモリ１１７からデータを読みだす際の読み出しアドレスが記憶される。図８に示すように、ライトアドレスレジスタ８４２とリードアドレスレジスタ８４３とは、ＤＭＡ０乃至３（８００）のそれぞれ毎に設けられる。そのため、各ＤＭＡ０乃至３（８００）は、それぞれが独立にメモリコントローラ８４０に対して、データ格納メモリ１１７へのデータの読み書きの指示を行うことができる。メモリ制御部８４１は、ライトアドレスレジスタ８４２あるいはリードアドレスレジスタ８４３に記憶される、データ格納メモリ１１７のアドレスに対してデータの読み書きを行う。  
ライトアドレスレジスタ８４２やリードアドレスレジスタ８４３への、データ格納メモリ１１７のアドレスの書き込みは、ホストＩ／Ｆ制御ＬＳＩ１１５やＤＭＡ０乃至３（８００）により行われる。
【００５３】
ＤＭＡ８００は、データ格納メモリ１１７とキャッシュメモリ１３０との間のデータ転送を制御する。ＤＭＡ８００は、ＤＭＡ制御部８１０、転送元アドレスレジスタ８２０、転送先アドレスレジスタ８２１、要求転送長レジスタ８２２、転送単位レジスタ８２３、ＦＩＦＯ（First In First Out）設定レジスタ８２４、転送方向レジスタ８２５、ＴＯＰアドレスレジスタ８２６、ＢＯＴＴＯＭアドレスレジスタ８２７、最終データ格納アドレスレジスタ８２８、制御情報格納レジスタ８２９を有する。
【００５４】
ＤＭＡ制御部８１０は、ＤＭＡ８００全体の制御を司る。ＤＭＡ制御部８１０は、ハードウエアのみで構成されるようにすることもできるし、ハードウエアとソフトウエアとの組み合わせにより構成されるようにすることもできる。
【００５５】
転送元アドレスレジスタ８２０には、データ格納メモリ１１７の記憶アドレス又はキャッシュメモリ１３０の記憶アドレスが記憶される。データ格納メモリ１１７に記憶されるデータをキャッシュメモリ１３０に転送する場合には、転送元アドレスレジスタ８２０には、データ格納メモリ１１７の記憶アドレスが記憶される。キャッシュメモリ１３０に記憶されるデータをデータ格納メモリ１１７に転送する場合には、転送元アドレスレジスタ８２０には、キャッシュメモリ１３０の記憶アドレスが記憶される。転送元アドレスレジスタ８２０への転送元アドレスの書き込みは、プロセッサ１１９から送信されるデータ転送情報に基づいてＤＭＡ制御部８１０により行われる。データ転送情報については後述する。
【００５６】
転送先アドレスレジスタ８２１には、データ格納メモリ１１７の記憶アドレス又はキャッシュメモリ１３０の記憶アドレスが記憶される。データ格納メモリ１１７に記憶されるデータをキャッシュメモリ１３０に転送する場合には、転送先アドレスレジスタ８２１には、キャッシュメモリ１３０の記憶アドレスが記憶される。キャッシュメモリ１３０に記憶されるデータをデータ格納メモリ１１７に転送する場合には、転送先アドレスレジスタ８２１には、データ格納メモリ１１７の記憶アドレスが記憶される。転送先アドレスレジスタ８２１への転送先アドレスの書き込みは、プロセッサ１１９から送信されるデータ転送情報に基づいてＤＭＡ制御部８１０により行われる。
【００５７】
要求転送長レジスタ８２２には、チャネル制御部１１０が情報処理装置２００から受信したデータ入出力要求に記述されたデータ長が記憶される。例えばチャネル制御部１１０が情報処理装置２００から１００ｋＢのデータ書き込み要求を受信した場合には、要求転送長レジスタ８２２には１００ｋＢが記載される。なおこの場合、上述したように情報処理装置２００からチャネル制御部１１０への書き込みデータの送信は、複数のデータブロックに分割されて行われる。要求転送長レジスタ８２２へのデータ長の書き込みは、プロセッサ１１９から送信されるデータ転送情報に基づいてＤＭＡ制御部８１０により行われる。
【００５８】
転送単位レジスタ８２３には、データ格納メモリ１１７とキャッシュメモリ１３０との間で転送されるデータのデータ長が記憶される。例えば上述のように、チャネル制御部１１０が情報処理装置２００から１００ｋＢのデータ書き込み要求を受信した場合に、転送単位レジスタ８２３に１０ｋＢが記憶されていると、ＤＭＡ８００は、情報処理装置２００から送信される書き込みデータが、データ格納メモリ１１７に１０ｋＢ記憶される毎に、その１０ｋＢのデータのキャッシュメモリ１３０への転送を開始する。転送単位レジスタ８２３への転送単位の書き込みは、プロセッサ１１９から送信されるデータ転送情報に基づいてＤＭＡ制御部８１０により行われる。
【００５９】
ＦＩＦＯ設定レジスタ８２４には、データ格納メモリ１１７をＦＩＦＯとして使用して、情報処理装置２００とキャッシュメモリ１３０との間でデータ転送を行うか否かを示す情報が記憶される。例えば、ＦＩＦＯ設定レジスタ８２４に、データ格納メモリ１１７をＦＩＦＯとして使用することを示す情報が書き込まれている場合には、上述したように、例えばチャネル制御部１１０が情報処理装置２００から１００ｋＢのデータ書き込み要求を受信した場合に、転送単位レジスタ８２３に１０ｋＢが記憶されていると、ＤＭＡ８００は、情報処理装置２００から１００ｋＢのデータが全てデータ格納メモリ１１７に書き込まれるのを待たずに、情報処理装置２００からの書き込みデータがデータ格納メモリ１１７に１０ｋＢ記憶される毎に、その１０ｋＢのデータのキャッシュメモリ１３０への転送を開始する。つまり、いわゆるウォームホール（wormhole）転送を行う。一方、ＦＩＦＯ設定レジスタ８２４に、データ格納メモリ１１７をＦＩＦＯとして使用しないことを示す情報が書き込まれている場合には、上述した例で言うと、チャネル制御部１１０が情報処理装置２００から１００ｋＢのデータ書き込み要求を受信した場合に、ＤＭＡ８００は、情報処理装置２００から１００ｋＢのデータが全てデータ格納メモリ１１７に書き込まれるのを待ってから、１００ｋＢの書き込みデータのキャッシュメモリ１３０への転送を開始する。つまり、いわゆるストアアンドフォワード（store and forward）転送を行う。ＦＩＦＯ設定レジスタ８２４への書き込みは、プロセッサ１１９から送信されるデータ転送情報に基づいてＤＭＡ制御部８１０により行われる。
【００６０】
転送方向レジスタ８２５には、データ格納メモリ１１７とキャッシュメモリ１３０との間で行われるデータ転送が、データ格納メモリ１１７に記憶されるデータをキャッシュメモリ１３０に転送する方向に行われるのか、キャッシュメモリ１３０に記憶されるデータをデータ格納メモリ１１７に転送する方向に行われるのかを示す情報が記憶される。転送方向レジスタ８２５への転送方向の書き込みは、プロセッサ１１９から送信されるデータ転送情報に基づいてＤＭＡ制御部８１０により行われる。
【００６１】
ＴＯＰアドレスレジスタ８２６には、上記転送単位毎にデータ格納メモリ１１７とキャッシュメモリ１３０との間でデータ転送が行われる場合に、ホストＩ／Ｆ制御ＬＳＩ１１５又はＤＭＡ８００によりデータ格納メモリ１１７に書き込まれる、上記転送単位の先頭のデータのデータ格納メモリ１１７における記憶アドレスが記憶される。そして転送単位のデータが転送される毎に値が更新される。ＴＯＰアドレスレジスタ８２６の値の更新は、転送単位のデータの転送が行われる毎に、ＤＭＡ制御部８１０により行われる。
【００６２】
ＢＯＴＴＯＭアドレスレジスタ８２７には、ホストＩ／Ｆ制御ＬＳＩ１１５やＤＭＡ８００によりデータ格納メモリ１１７に書き込まれるデータのデータ格納メモリ１１７における記憶アドレスが記憶される。ＢＯＴＴＯＭアドレスレジスタ８２７の値は、メモリコントローラ８４０のライトアドレスレジスタ８４２の値に従って、ＤＭＡ制御部８１０により更新される。つまりＤＭＡ制御部８１０は、メモリコントローラ８４０のライトアドレスレジスタ８４２を監視しており、ライトアドレスレジスタ８４２の値が更新される毎に、更新後のライトアドレスレジスタ８４２の値をＢＯＴＴＯＭアドレスレジスタ８２７に書き込む。そしてＤＭＡ制御部８１０は、ＢＯＴＴＯＭアドレスレジスタ８２７に記憶されているアドレスとＴＯＰアドレスレジスタ８２６に記憶されているアドレスとの差に基づいて、データ格納メモリ１１７に記憶されているデータのデータ長を知ることができる。そしてそのデータ長が転送単位に達した場合には、ＤＭＡ制御部８１０はデータ転送を開始することができる。
【００６３】
最終データ格納アドレスレジスタ８２８には、情報処理装置２００から送信される全ての書き込みデータが、ホストＩ／Ｆ制御ＬＳＩ１１５によりデータ格納メモリ１１７に書き込まれた場合に、そのデータの最終書き込みアドレスを示す情報が書き込まれる。例えばチャネル制御部１１０が情報処理装置２００から１００ｋＢのデータ書き込み要求を受信した場合に、ホストＩ／Ｆ制御ＬＳＩ１１５によりデータ格納メモリ１１７に書き込まれた１００ｋＢ目のデータの、データ格納メモリ１１７における記憶アドレスが、最終データ格納アドレスレジスタ８２８に書き込まれる。最終データ格納アドレスレジスタ８２８への最終書き込みアドレスを示す情報の書き込みは、プロセッサ１１９から送信されるデータ転送情報に基づいてＤＭＡ制御部８１０により行われる。
【００６４】
制御情報格納レジスタ８２９には、情報処理装置２００から送信されたデータ書き込み要求に記述された書き込みデータ長よりも短いデータしか送信されない旨の情報を、ホストＩ／Ｆ制御ＬＳＩ１１５が情報処理装置２００から受信した場合などに、その旨の制御情報が書き込まれる。制御情報格納レジスタ８２９への制御情報の書き込みは、プロセッサ１１９から送信されるデータ転送情報に基づいてＤＭＡ制御部８１０により行われる。
【００６５】
接続Ｉ／Ｆ回路８３０は、ＰＣＩ（Peripheral Component Interconnect）バスを介してメモリコントローラ８４０と、ＤＭＡ８００と、ホストＩ／Ｆ制御ＬＳＩ１１５と、プロセッサ１１９等との間で通信を行うための通信インタフェース回路である。ただし、ＰＣＩ以外の他の規格に準拠している構成とすることもできる。その場合には、接続Ｉ／Ｆ回路８３０は、それぞれの規格に準拠する通信インタフェース回路とすることができる。
【００６６】
＝＝＝データ転送＝＝＝
次に、本実施の形態に係るストレージ制御装置１００が備えるチャネル制御部１１０におけるデータ転送の概要について図９を用いて説明する。
【００６７】
本実施の形態に係るチャネル制御部１１０においては、図９に示すように、ホストＩ／Ｆ制御ＬＳＩ１１５が情報処理装置２００からデータ書き込み要求を受信した場合には、書き込みデータは一旦データ格納メモリ１１７に記憶され、データ格納メモリ１１７から読み出されてキャッシュメモリ１３０に転送される。その際、前述したようにＦＩＦＯ設定レジスタ８２４の設定により、全ての書き込みデータがデータ格納メモリ１１７に書き込まれる前に、データ格納メモリ１１７からキャッシュメモリ１３０へのデータ転送を開始するようにすることができる。つまり、本実施の形態に係るストレージ制御装置１００が備えるチャネル制御部１１０においては、データ格納メモリ１１７をＦＩＦＯとして使用することができる。
【００６８】
ここで本実施の形態においては、データ格納メモリ１１７はデータ転送装置１１４とは別の回路として構成されるため、必要に応じた記憶容量のデータ格納メモリ１１７を用いることができる。これにより、必要に応じた記憶容量のＦＩＦＯを構成することができる。つまり、データ格納メモリ１１７がデータ転送装置１１４と一体に構成される場合や、データ格納メモリ１１７がデータ転送装置１１４に内蔵される場合には、データ格納メモリ１１７の記憶容量は、一つのＬＳＩに集約可能なトランジスタ数の限界により、制約を受けるが、本実施の形態においてはそのような制約は受けないようにすることが可能となる。これにより、データ格納メモリ１１７を、複数の大容量のＦＩＦＯとして用いることができるようになる。図９にはデータ転送装置１１４にＤＭＡ８００が一つしか記載されていないが、図８に示したように、データ転送装置１１４には複数のＤＭＡ８００を設けるようにすることが可能となる。そして各ＤＭＡ８００がデータ格納メモリ１１７を大容量のＦＩＦＯとして用いることが可能となるのである。さらには、メモリコントローラ８４０に設けられるライトアドレスレジスタ８４２やリードアドレスレジスタ８４３を、各ＤＭＡ８００に対して複数備えるようにすることにより、各ＤＭＡ８００に対して複数のＦＩＦＯをデータ格納メモリ１１７上に構成するようにすることもできるのである。なお、図８には、データ転送装置１１４は４つのＤＭＡ８００を備えるように記載されているが、もちろんそれ以上の数のＤＭＡ８００を備えるようにすることも可能である。
【００６９】
これにより、本実施の形態においては、ストレージ制御装置１００は、情報処理装置２００から送信されるデータ入出力要求に対する処理をより高速に行うことが可能となる。つまりデータの読み書きをより高速化することが可能となる。またより多くの情報処理装置２００からより大量のデータ入出力要求を受信して、データの読み書きを行うことが可能となる。
【００７０】
ホストＩ／Ｆ制御ＬＳＩ１１５が情報処理装置２００からデータ書き込み要求を受信した場合の処理の流れを示すフローチャートを図１０に示す。また書き込みデータの流れを示すデータフローを図１１及び図１２に示す。なお、図１０に示すフローチャートは、オープン系チャネル制御部１１０における処理の流れを示す。メインフレーム系チャネル制御部１１０における処理の流れについては後述する。また、図１１と図１２はいずれも、ホストＩ／Ｆ制御ＬＳＩ１１５が２種類のデータ書き込み要求を受信し、それぞれの書き込みデータがＤＭＡ０（８００）及びＤＭＡ１（８００）により、データ格納メモリ１１７を経由してキャッシュメモリ１３０へ転送されるまでの様子を示すものである。図１１、図１２において、第１の書き込みデータはデータブロック毎に網掛け模様で示され、第２の書き込みデータはデータブロック毎に白抜き模様で示されている。なお、図１２においては第１の書き込みデータはデータブロック毎に（Ａ１）、（Ａ２）、（Ａ３）、（Ａ４）で示され、第２の書き込みデータはデータブロック毎に（Ｂ１）、（Ｂ２）で示されている。また図１１及び図１２において”Ｗ”は「Ｗｒｉｔｅ」を表し、”Ｒ”は「Ｒｅａｄ」を表す。情報処理装置２００から送信される書き込みデータは、上述したように所定のデータブロックに分割されて送信されるが、図１１及び図１２には、各データブロックがデータ格納メモリ１１７で所定の転送単位毎にひとまとめにされてキャッシュメモリ１３０に転送される様子が示されている。
【００７１】
図１０において、まずホストＩ／Ｆ制御ＬＳＩ１１５が情報処理装置２００からデータ書き込み要求を受信すると（S1000）、ホストＩ／Ｆ制御ＬＳＩ１１５はデータ書き込み要求をプロセッサ（ＭＰ）１１９に送信する（S1001）。プロセッサ１１９がデータ書き込み要求を受信すると（S1002）、プロセッサ１１９は書き込みデータのデータ格納メモリ１１７における記憶位置を示す情報を含む記憶位置情報をホストＩ／Ｆ制御ＬＳＩ１１５に送信する（S1003）。そうすると、ホストＩ／Ｆ制御ＬＳＩ１１５は、データ格納メモリ１１７へのデータ転送を開始する（S1004）。具体的には、ホストＩ／Ｆ制御ＬＳＩ１１５が、書き込みデータのデータ格納メモリ１１７における記憶位置を示す情報と書き込みデータとのメモリコントローラ８４０への送信を開始し、メモリコントローラ１１７が、ライトアドレスレジスタ８４２に書き込まれた書き込みデータのデータ格納メモリ１１７における記憶位置を示す情報に従って、書き込みデータのデータ格納メモリ１１７への書き込みを開始する（S1006）。  
なお、記憶位置情報にはＤＭＡ８００を指定する情報が含まれる様にし、ホストＩ／Ｆ制御ＬＳＩ１１５が指定されたＤＭＡ８００に対して、書き込みデータのデータ格納メモリ１１７における記憶位置を示す情報と書き込みデータとの送信を開始し、ＤＭＡ８００が書き込みデータのデータ格納メモリ１１７における記憶位置を示す情報と書き込みデータとのメモリコントローラ８４０への送信を開始するようにすることもできる。
【００７２】
一方プロセッサ１１９は、ＤＭＡ８００に対してデータ転送情報を送信する（S1005）。ここで送信されるデータ転送情報には、書き込みデータのデータ格納メモリ１１７における記憶位置を示す情報及び書き込みデータのキャッシュメモリ１３０における記憶位置を示す情報を含む。さらには、書き込みデータのデータ格納メモリ１１７における最終書き込みアドレスを示す情報を含むようにすることもできる。  
具体的には、例えば、上述したように、転送元アドレスレジスタ８２０に書き込まれる情報、転送先アドレスレジスタ８２１に書き込まれる情報、要求転送長レジスタ８２２に書き込まれる情報、転送単位レジスタ８２３に書き込まれる情報、ＦＩＦＯ設定レジスタ８２４に書き込まれる情報、転送方向レジスタ８２５に書き込まれる情報、最終データ格納アドレスレジスタ８２８に書き込まれる情報、制御情報格納レジスタ８２９に書き込まれる情報を含むようにすることができる。
【００７３】
そしてＤＭＡ８００が、データ転送情報に基づいて、データ格納メモリ１１７に書き込まれた書き込みデータのリード要求をメモリコントローラ８４０に送信する。具体的にはＤＭＡ８００がメモリコントローラ８４０のリードアドレスレジスタ８４３に、書き込みデータの記憶アドレスを書き込んで書き込みデータの読み出しを指示する。
【００７４】
そして、メモリコントローラ８４０が、書き込みデータのデータ格納メモリ１１７からの読み出しを開始し（S1007）、ＤＭＡ８００が、データ格納メモリ１１７から読みだされる書き込みデータのキャッシュメモリ１３０への転送を開始する。
【００７５】
ホストＩ／Ｆ制御ＬＳＩ１１５及びＤＭＡ８００は、それぞれ、データ転送が終了すると、プロセッサ１１９に転送終了報告を送信する（S1008、S1009）。これによりキャッシュメモリ１３０へのデータ転送が終了する（S1010）。
【００７６】
次に、ホストＩ／Ｆ制御ＬＳＩ１１５が情報処理装置２００からデータ読み出し要求を受信した場合の処理の流れを示すフローチャートを図１３に示す。また読み出しデータの流れを示すデータフローを図１４及び図１５に示す。なお、図１３に示すフローチャートは、オープン系チャネル制御部１１０における処理の流れを示す。メインフレーム系チャネル制御部１１０における処理の流れについては後述する。  
また、図１４と図１５はいずれも、ホストＩ／Ｆ制御ＬＳＩ１１５が２種類のデータ読み出し要求を受信し、それぞれの読み出しデータがＤＭＡ０（８００）及びＤＭＡ１（８００）によりキャッシュメモリ１３０から読み出され、データ格納メモリ１１７を経由してホストＩ／Ｆ制御ＬＳＩ１１５に転送されるまでの様子を示すものである。図１４、図１５において、第１の読み出しデータはデータブロック毎に網掛け模様で示され、第２の読み出しデータはデータブロック毎に白抜き模様で示されている。  
なお、図１５においては第１の読み出しデータはデータブロック毎に（Ａ１）、（Ａ２）、（Ａ３）、（Ａ４）で示され、第２の読み出しデータはデータブロック毎に（Ｂ１）、（Ｂ２）で示されている。また図１４及び図１５において”Ｗ”は「Ｗｒｉｔｅ」を表し、”Ｒ”は「Ｒｅａｄ」を表す。情報処理装置２００に送信される読み出しデータは、上述したように所定のデータブロックに分割されて送信されるが、図１４及び図１５には、各読み出しデータがデータ格納メモリ１１７で所定のデータブロックに分割されてホストＩ／Ｆ制御ＬＳＩ１１５に転送される様子が示されている。
【００７７】
図１３において、まずホストＩ／Ｆ制御ＬＳＩ１１５が情報処理装置２００からデータ読み出し要求を受信すると（S2000）、ホストＩ／Ｆ制御ＬＳＩ１１５はデータ読み出し要求をプロセッサ（ＭＰ）１１９に送信する（S2001）。プロセッサ１１９がデータ読み出し要求を受信すると（S2002）、プロセッサ１１９が、データ転送情報をＤＭＡ８００に送信する（S2003）。そうすると、ＤＭＡ８００が、データ転送情報に基づいて、キャッシュメモリ１３０からの読み出しデータの読み出しを開始し、ＤＭＡ８００が、読み出しデータのデータ格納メモリ１１７における記憶位置を示す情報と読み出しデータとのメモリコントローラ８４０への送信を開始し、メモリコントローラ８４０が、読み出しデータのデータ格納メモリ１１７への書き込みを開始する（S2004）。
【００７８】
一方、プロセッサ１１９は、読み出しデータのデータ格納メモリ１１７における記憶位置を示す情報を含む記憶位置情報をホストＩ／Ｆ制御ＬＳＩ１１５に送信する（S2005）。そうすると、ホストＩ／Ｆ制御ＬＳＩ１１５は、記憶位置情報に基づいて、データ格納メモリ１１７に書き込まれた読み出しデータのリード要求をメモリコントローラ８４０へ送信し、メモリコントローラ８４０が、読み出しデータのデータ格納メモリ１１７からの読み出しを開始する（S2007）。そしてホストＩ／Ｆ制御ＬＳＩ１１５が、データ格納メモリ１１７から読みだされる読み出しデータを情報処理装置２００に送信する。
【００７９】
ホストＩ／Ｆ制御ＬＳＩ１１５及びＤＭＡ８００は、それぞれ、データ転送が終了すると、プロセッサ１１９に転送終了報告を送信する（S2008、S2009）。これにより情報処理装置２００へのデータ転送が終了する（S2010）。
【００８０】
ここで、前述したように、本実施の形態に係るストレージ制御装置１００においては、各ＤＭＡ８００に対して複数のＦＩＦＯをデータ格納メモリ１１７上に構成するようにすることができる。その様子を図１６及び図１８に示す。図１６には、メモリコントローラ８４０に設けられるライトアドレスレジスタ８４２やリードアドレスレジスタ８４３を、各ＤＭＡ８００に対して１つずつ備える場合に、各ＤＭＡ８００に対して複数のＦＩＦＯをデータ格納メモリ１１７上に構成する場合を示す。図１８には、メモリコントローラ８４０に設けられるライトアドレスレジスタ８４２やリードアドレスレジスタ８４３を、各ＤＭＡ８００に対して複数備える場合に、各ＤＭＡ８００に対して複数のＦＩＦＯをデータ格納メモリ１１７上に構成する場合を示す。
【００８１】
図１６に示す構成の場合は、ライトアドレスレジスタ８４２やリードアドレスレジスタ８４３を各ＤＭＡ８００に対して１つしか備えていないので、ホストＩ／Ｆ制御ＬＳＩ１１５が複数のデータ入出力要求を情報処理装置２００から受信した場合に、一つ目のデータ入出力要求に対応するデータのデータ格納メモリ１１７への読み書きを行っている間は、２つ目のデータ入出力要求に対応するデータのデータ格納メモリ１１７への読み書きを行うことができない。つまり２つめのデータ入出力要求に対応するデータのデータ格納メモリ１１７への読み書きは、１つめのデータ入出力要求に対応するデータのデータ格納メモリ１１７への読み書きが終了してからでなければ行うことができない。しかしながら、各ＤＭＡ８００に対して複数のＦＩＦＯをデータ格納メモリ１１７上に構成するようにすることで、データ格納メモリ１１７を制御しているプロセッサ１１９は、各データ入出力要求のそれぞれに対してＦＩＦＯをデータ格納メモリ１１７に設定しておくことができるので、ホストＩ／Ｆ制御ＬＳＩ１１５に対して、データ格納メモリ１１７へのデータ書き込み指示、あるいはデータ格納メモリ１１７からのデータ読み出し指示を先に行っておくことが可能となる。これにより、情報処理装置２００から先に送信されたデータ入出力要求に対するデータの読み書き処理が終了していない間に、次のデータ入出力要求が情報処理装置２００から送信された場合であっても、プロセッサ１１９は、各データ入出力要求に対する処理を行っておくことが可能となる。これにより、データ入出力性能の向上を図ることが可能となる。
【００８２】
ホストＩ／Ｆ制御ＬＳＩ１１５が情報処理装置２００から２つのデータ書き込み要求を受信した場合の処理の流れを示すフローチャートを図１７に示す。  
まず、ホストＩ／Ｆ制御ＬＳＩ１１５が情報処理装置２００から一つ目のデータ書き込み要求を受信すると（S3000）、ホストＩ／Ｆ制御ＬＳＩ１１５は一つ目のデータ書き込み要求をプロセッサ（ＭＰ）１１９に送信する（S3001）。そしてプロセッサ１１９が一つ目のデータ書き込み要求を受信する（S3002）。次に、ホストＩ／Ｆ制御ＬＳＩ１１５が情報処理装置２００から二つ目のデータ書き込み要求を受信すると（S3003）、ホストＩ／Ｆ制御ＬＳＩ１１５は二つ目のデータ書き込み要求をプロセッサ（ＭＰ）１１９に送信する（S3004）。そしてプロセッサ１１９が二つ目のデータ書き込み要求を受信する（S3005）。そうすると、プロセッサ１１９は一つ目の書き込みデータのデータ格納メモリ１１７における記憶位置を示す情報を含む記憶位置情報と二つ目の書き込みデータのデータ格納メモリ１１７における記憶位置を示す情報を含む記憶位置情報とをホストＩ／Ｆ制御ＬＳＩ１１５に送信する（S3006）。そうすると、ホストＩ／Ｆ制御ＬＳＩ１１５は、まず一つ目の書き込みデータのデータ格納メモリ１１７へのデータ転送を開始する（S3007）。具体的には、ホストＩ／Ｆ制御ＬＳＩ１１５が、一つ目の書き込みデータのデータ格納メモリ１１７における記憶位置を示す情報と一つ目の書き込みデータとのメモリコントローラ８４０への送信を開始し、メモリコントローラ１１７が、ライトアドレスレジスタ８４２に書き込まれた一つ目の書き込みデータのデータ格納メモリ１１７における記憶位置を示す情報に従って、一つ目の書き込みデータのデータ格納メモリ１１７への書き込みを開始する（S3009）。
【００８３】
一方プロセッサ１１９は、ＤＭＡ８００に対して一つ目のデータ書き込み要求に対するデータ転送情報を送信する（S3008）。  
そしてＤＭＡ８００が、一つ目のデータ転送情報に基づいて、データ格納メモリ１１７に書き込まれた一つ目の書き込みデータのリード要求をメモリコントローラ８４０に送信する。具体的にはＤＭＡ８００がメモリコントローラ８４０のリードアドレスレジスタ８４３に、一つ目の書き込みデータの記憶アドレスを書き込んで一つ目の書き込みデータの読み出しを指示する。
【００８４】
そして、メモリコントローラ８４０が、一つ目の書き込みデータのデータ格納メモリ１１７からの読み出しを開始し（S3012）、ＤＭＡ８００が、データ格納メモリ１１７から読みだされる一つ目の書き込みデータのキャッシュメモリ１３０への転送を開始する。  
ホストＩ／Ｆ制御ＬＳＩ１１５及びＤＭＡ８００は、それぞれ、データ転送が終了すると、プロセッサ１１９に転送終了報告を送信する（S3010、S3013）。これによりキャッシュメモリ１３０への一つ目の書き込みデータのデータ転送が終了する（S3014）。
【００８５】
一方、ホストＩ／Ｆ制御ＬＳＩ１１５は、一つ目の書き込みデータのデータ格納メモリ１１７へのデータ転送が終了すると（S3010）、二つ目の書き込みデータのデータ格納メモリ１１７へのデータ転送を開始する（S3011）。具体的には、ホストＩ／Ｆ制御ＬＳＩ１１５が、二つ目の書き込みデータのデータ格納メモリ１１７における記憶位置を示す情報と二つ目の書き込みデータとのメモリコントローラ８４０への送信を開始し、メモリコントローラ１１７が、ライトアドレスレジスタ８４２に書き込まれた二つ目の書き込みデータのデータ格納メモリ１１７における記憶位置を示す情報に従って、二つ目の書き込みデータのデータ格納メモリ１１７への書き込みを開始する（S3016）。
【００８６】
一方プロセッサ１１９は、ＤＭＡ８００に対して二つ目のデータ書き込み要求に対するデータ転送情報を送信する（S3015）。  
そしてＤＭＡ８００が、二つ目のデータ転送情報に基づいて、データ格納メモリ１１７に書き込まれた二つ目の書き込みデータのリード要求をメモリコントローラ８４０に送信する。具体的にはＤＭＡ８００がメモリコントローラ８４０のリードアドレスレジスタ８４３に、二つ目の書き込みデータの記憶アドレスを書き込んで二つ目の書き込みデータの読み出しを指示する。
【００８７】
そして、メモリコントローラ８４０が、二つ目の書き込みデータのデータ格納メモリ１１７からの読み出しを開始し（S3017）、ＤＭＡ８００が、データ格納メモリ１１７から読みだされる二つ目の書き込みデータのキャッシュメモリ１３０への転送を開始する。  
ホストＩ／Ｆ制御ＬＳＩ１１５及びＤＭＡ８００は、それぞれ、データ転送が終了すると、プロセッサ１１９に転送終了報告を送信する（S3018、S3019）。これによりキャッシュメモリ１３０への二つ目の書き込みデータのデータ転送が終了する（S3020）。
【００８８】
一方、図１８に示す構成の場合は、ライトアドレスレジスタ８４２やリードアドレスレジスタ８４３を各ＤＭＡ８００に対して複数備えているので、ホストＩ／Ｆ制御ＬＳＩ１１５が複数のデータ入出力要求を情報処理装置２００から受信した場合であっても、一つ目のデータ入出力要求に対応するデータのデータ格納メモリ１１７への読み書きを行っている間に、２つ目のデータ入出力要求に対応するデータのデータ格納メモリ１１７への読み書きを行うことができる。これにより、情報処理装置２００から先に送信されたデータ入出力要求に対するデータの読み書き処理が終了していない間に、次のデータ入出力要求が情報処理装置２００から送信された場合であっても、各データ入出力処理を並行して実行することが可能となるので、データ入出力性能をさらに向上させることが可能となる。
【００８９】
なお、図８に示した本実施の形態に係るデータ転送装置１１４のように、各ＤＭＡ８００には一つのライトアドレスレジスタ８４２と一つのリードアドレスレジスタ８４３とが備えられるがＤＭＡ８００が複数備えられる構成は、例えば、ＤＭＡ８００は一つしか備えられていないが複数のライトアドレスレジスタ８４２と複数のリードアドレスレジスタ８４３とが備えられる構成と比較して、いずれも、ホストＩ／Ｆ制御ＬＳＩ１１５が複数のデータ入出力要求を情報処理装置２００から受信した場合であっても、一つ目のデータ入出力要求に対応するデータのデータ格納メモリ１１７への読み書きを行っている間に、２つ目のデータ入出力要求に対応するデータのデータ格納メモリ１１７への読み書きを行うことができ、データ入出力性能をより向上させることが可能となる点においては、同等である。
【００９０】
つまりまず、ライトアドレスレジスタ８４２やリードアドレスレジスタ８４３を各ＤＭＡ８００に対して複数備えている構成において、ホストＩ／Ｆ制御ＬＳＩ１１５が情報処理装置２００から２つのデータ書き込み要求を受信した場合には、ＤＭＡ８００が、第１のライトアドレスレジスタ８４２に、一つ目のデータ入出力要求に対応する書き込みデータのデータ格納メモリ１１７における書き込みアドレスを指定することにより、データ格納メモリ１１７への読み書きを行っている間に、第２のライトアドレスレジスタ８４２に、二つ目のデータ入出力要求に対応する書き込みデータのデータ格納メモリ１１７における書き込みアドレスを指定することにより、データ格納メモリ１１７への読み書きを行うことができる。
【００９１】
一方、図８に示した本実施の形態に係るデータ転送装置１１４のように、各ＤＭＡ８００には一つのライトアドレスレジスタ８４２と一つのリードアドレスレジスタ８４３とが備えられるがＤＭＡ８００が複数備えられる構成において、ホストＩ／Ｆ制御ＬＳＩ１１５が情報処理装置２００から２つのデータ書き込み要求を受信した場合には、第１のＤＭＡ８００が、ライトアドレスレジスタ８４２に、一つ目のデータ入出力要求に対応する書き込みデータのデータ格納メモリ１１７における書き込みアドレスを指定することにより、データ格納メモリ１１７への読み書きを行っている間に、第２のＤＭＡ８００が、ライトアドレスレジスタ８４２に、二つ目のデータ入出力要求に対応する書き込みデータのデータ格納メモリ１１７における書き込みアドレスを指定することにより、データ格納メモリ１１７への読み書きを行うことができる。
【００９２】
ところで本実施の形態においては、上述したように、データ格納メモリ１１７はデータ転送装置１１４とは別の回路として構成される。そのため、チャネル制御部１１０の回路基板１１８を構成する部品点数が増えることになる。一般的に部品点数が増えると故障発生率が上昇する。しかし、ストレージ制御装置１００はデータを記憶する記憶ボリューム３１０を備えるストレージ駆動装置３００を制御する装置であるため、ストレージ制御装置１００には極めて高い信頼性が要求される。このことから、本実施の形態に係るストレージ制御装置１００においては、ホストＩ／Ｆ制御ＬＳＩ１１５とキャッシュメモリ１３０との間でデータ転送を行う際に、図１９乃至図２１に示すように、転送されるデータにチェックコード（保証コード）を付加することにより、信頼性の向上を図っている。
【００９３】
すなわち、図１９に示すように、ホストＩ／Ｆ制御ＬＳＩ１１５からキャッシュメモリ１３０へデータが転送される場合には、ホストＩ／Ｆ制御ＬＳＩ１１５が、書き込みデータの送信の際に、所定量の書き込みデータ毎に、所定量の書き込みデータを所定のアルゴリズムに従って変換して算出した変換データと所定量の書き込みデータの誤り有無を示す誤り有無データとを含むチェックコードを付加する。そして  ＤＭＡ８００が、書き込みデータをデータ格納メモリ１１７からキャッシュメモリ１３０へ転送する際に、所定量の書き込みデータ毎に、所定量の書き込みデータを所定のアルゴリズムに従って変換して算出したデータと所定量の書き込みデータに付加されたチェックコードの変換データとを比較し、比較の結果に応じて、書き込みデータのキャッシュメモリ１３０への転送を中止する。
【００９４】
ここで、所定量の書き込みデータとは例えば５１２Ｂ（バイト）とすることができる。もちろん、その他のデータ長とすることができる。また所定のアルゴリズムとは、例えばＣＲＣ（Cyclic Redundancy Check）とすることができる。その他、パリティチェックやハミングコードチェック等とすることもできる。また誤り有無データとは、所定量の書き込みデータに誤りがあるか否かを示すデータであり、例えば、誤りがある場合には「０」とし、誤りがない場合には「１」とすることができる。もちろん、その他のデータとすることもできる。また、比較の結果に応じて書き込みデータのキャッシュメモリ１３０への転送を中止するとは、例えば、所定量の書き込みデータを所定のアルゴリズムに従って変換して算出したデータと、所定量の書き込みデータに付加されたチェックコードの変換データとが一致しない場合には、書き込みデータのキャッシュメモリ１３０への転送を中止するようにすることができる、という意味である。もちろん、アルゴリズムによっては、例えば、所定量の書き込みデータを所定のアルゴリズムに従って変換して算出したデータと、所定量の書き込みデータに付加されたチェックコードの変換データとが一致する場合には、書き込みデータのキャッシュメモリ１３０への転送を中止するようにすることもできる。
【００９５】
所定量のデータにチェックコードが付加された状態のデータを示す一例を図２０に示す。データ部７１０は、情報処理装置２００との間で送受信される書き込みデータあるいは読み出しデータの所定量のデータである。チェックコード７２０は、タグ７２１と変換データ７２２とを備える。変換データ７２２は、所定量の書き込みデータ７１０を所定のアルゴリズムに従って変換して算出した変換データである。タグ７２１は、所定量の書き込みデータの誤り有無を示す誤り有無データである。
【００９６】
また、図２１に示すように、キャッシュメモリ１３０からホストＩ／Ｆ制御ＬＳＩ１１５へデータが転送される場合には、ＤＭＡ８００が、キャッシュメモリ１３０からデータ格納メモリ１１７へ読み出しデータを送信する際に、所定量の読み出しデータ毎に、所定量の読み出しデータを所定のアルゴリズムに従って変換して算出した変換データと所定量の読み出しデータの誤り有無を示す誤り有無データとを含むチェックコードを付加する。そして、ＤＭＡ８００が、データ格納メモリ１１７から所定量の読み出しデータを読みだす毎に、所定量の読み出しデータを所定のアルゴリズムに従って変換して算出したデータと所定量の読み出しデータに付加されたチェックコードの変換データとを比較し、比較の結果に応じて、チェックコードに、読み出しデータに誤りがあることを示す所定のデータを書き込む。そして、ホストＩ／Ｆ制御ＬＳＩ１１５は、所定量の読み出しデータ毎に付加されるチェックコードに、読み出しデータに誤りがあることを示す所定のデータが書き込まれている場合には、読み出しデータの情報処理装置２００への送信を中止する。
【００９７】
ここで、ＤＭＡ８００が、データ格納メモリ１１７から所定量の読み出しデータを読みだす毎に、所定量の読み出しデータを所定のアルゴリズムに従って変換して算出したデータと所定量の読み出しデータに付加されたチェックコードの変換データとを比較し、比較の結果に応じてチェックコードに書き込まれる、読み出しデータに誤りがあることを示す所定のデータは、上述の誤り有無データにおける、誤り有りを示すデータであり、例えば「０」とすることができる。
【００９８】
このようにすることにより、ホストＩ／Ｆ制御ＬＳＩ１１５は、ＤＭＡ８００から送信された読み出しデータに誤りがあることを検知することができる。これにより、ホストＩ／Ｆ制御ＬＳＩ１１５は、誤りのあるデータを情報処理装置２００へ送信してしまうことを防止することが可能となる。
【００９９】
さらに、以下に記す効果も奏することが可能となる。すなわち、ホストＩ／Ｆ制御ＬＳＩ１１５とＤＭＡ８００との間は、上述したようにＰＣＩバスで接続されている。ＰＣＩバスの規格においては、ホストＩ／Ｆ制御ＬＳＩ１１５が一旦データのリード要求を出すと、そのリード要求を取り下げることができない。つまりＰＣＩバス規格においては、一旦リード要求が出されると、そのリード要求に対応するデータを受信するか、ＰＣＩバスがリセットされるまで、ホストＩ／Ｆ制御ＬＳＩ１１５は、そのリード要求に対応するデータが送信されてくるのをいつまでも待ち続ける。従って、ＤＭＡ８００は、データ格納メモリ１１７から読み出した読み出しデータに誤りがあることを検知した場合にも、何らかのデータをホストＩ／Ｆ制御ＬＳＩ１１５に送信しなくてはならない。さも無くば、ホストＩ／Ｆ制御ＬＳＩ１１５は、データが送られてくるのを永久に待ち続けるからである。しかしながら、データ格納メモリ１１７から読み出した読み出しデータをホストＩ／Ｆ制御ＬＳＩ１１５に送信してしまうと、ホストＩ／Ｆ制御ＬＳＩ１１５により、誤りのあるデータが情報処理装置２００に送信されてしまうことになる。その場合、情報処理装置２００はその読み出しデータに誤りがあることを検知できないまま、プログラム２２０Ａの実行を行ってしまう。一方で、データ格納メモリ１１７から読み出した、誤りのある読み出しデータをホストＩ／Ｆ制御ＬＳＩ１１５に送信しないようにするために、ＰＣＩバスをリセットするようにすると、そのＰＣＩバスを使用して送信中の全ての読み出しデータや書き込みデータがリセットされてしまうことになる。  
そこで、本実施の形態においては、上述のように、ＤＭＡ８００が、データ格納メモリ１１７から所定量の読み出しデータを読みだす毎に、所定量の読み出しデータを所定のアルゴリズムに従って変換して算出したデータと所定量の読み出しデータに付加されたチェックコードの変換データとを比較し、比較の結果に応じて、チェックコードに、読み出しデータに誤りがあることを示す所定のデータを書き込むようにする。そうすれば、リード要求を既に出したホストＩ／Ｆ制御ＬＳＩ１１５が読み出しデータが送信されてくるのを永久に待ち続けることを回避可能となると共に、ホストＩ／Ｆ制御ＬＳＩ１１５は、所定量の読み出しデータ毎に付加されるチェックコードに、読み出しデータに誤りがあることを示す所定のデータが書き込まれていることを検知することにより、誤りのある読み出しデータを情報処理装置２００へ送信することを中止することができるのである。
【０１００】
次に、本実施の形態に係るストレージ制御装置１００が備えるメインフレーム系チャネル制御部１１０におけるデータ転送の概要について図２２乃至図２６を用いて説明する。上述のように、メインフレームコンピュータに接続されたストレージ制御装置１００及びストレージ駆動装置３００は、メインフレームコンピュータからのデータ入出力要求に対して、短時間にデータ入出力処理を行うことが求められる。そのため、メインフレーム系チャネル制御部１１０におけるデータ転送の処理は、オープン系チャネル制御部におけるデータ転送の処理と異なっている。
【０１０１】
まずホストＩ／Ｆ制御ＬＳＩ１１５が情報処理装置２００からデータ書き込み要求を受信した場合の処理の流れを示すフローチャートを図２３及び図２４に示す。図２３は、情報処理装置２００から送信される書き込みデータを全てデータ格納メモリ１１７に書き込んでから、キャッシュメモリ１３０に送信する場合のフローチャートである。図２４は、情報処理装置２００から送信される書き込みデータをデータ格納メモリ１１７に書き込みつつ、全ての書き込みデータがデータ格納メモリ１１７に書き込まれる前に、キャッシュメモリ１３０に送信を開始する場合のフローチャートである。
【０１０２】
まず図２３において、ホストＩ／Ｆ制御ＬＳＩ１１５が情報処理装置２００からデータ書き込み要求を受信すると（S4000）、ホストＩ／Ｆ制御ＬＳＩ１１５が、書き込みデータのデータ格納メモリ１１７における記憶位置を示す情報と書き込みデータとのメモリコントローラ８４０への送信を開始する（S4001）。メインフレーム系チャネル制御部１１０においては、データ格納メモリ１１７におけるデータの記憶位置は、ホストＩ／Ｆ制御ＬＳＩ１１５が制御しているからである。これにより、ホストＩ／Ｆ制御ＬＳＩ１１５が情報処理装置２００からデータ書き込み要求を受信した際に、プロセッサ１１９との間での通信が不要となるので、その分、書き込みデータのデータ格納メモリ１１７への書き込みを早く開始することができる。  
一方で、ホストＩ／Ｆ制御ＬＳＩ１１５は、書き込みデータのデータ格納メモリ１１７における記憶位置を示す情報を含む記憶位置情報をプロセッサ１１９に送信する（S4001）。このときプロセッサ１１９が他の情報処理を行っている等の理由で、ホストＩ／Ｆ制御ＬＳＩ１１５とプロセッサ１１９との間でなかなか通信が成立しない場合があるが、そのような場合であっても、メモリコントローラ１１７が、ライトアドレスレジスタ８４２に書き込まれた書き込みデータのデータ格納メモリ１１７における記憶位置を示す情報に従って、書き込みデータのデータ格納メモリ１１７への書き込みを開始する（S4002、S4003）。ホストＩ／Ｆ制御ＬＳＩ１１５とプロセッサ１１９との間で通信が成立しないまま、全ての書き込みデータのデータ格納メモリ１１７への書き込みが終了した場合には（S4004）、ホストＩ／Ｆ制御ＬＳＩ１１５は、プロセッサ１１９に転送終了報告を送信する（S4005）。この転送終了報告には、書き込みデータのデータ格納メモリ１１７における記憶位置を示す情報と、書き込みデータのデータ格納メモリ１１７における最終書き込みアドレスを示す情報を含む記憶位置情報が含まれる。
【０１０３】
プロセッサ１１９が記憶位置情報を受信すると（S4006）、プロセッサ１１９は、データ転送情報をＤＭＡ８００に送信する（S4007）。  
そしてＤＭＡ８００が、データ転送情報に基づいて、データ格納メモリ１１７に書き込まれた書き込みデータのリード要求をメモリコントローラ８４０に送信する。具体的にはＤＭＡ８００がメモリコントローラ８４０のリードアドレスレジスタ８４３に、書き込みデータの記憶アドレスを書き込んで書き込みデータの読み出しを指示する。  
そして、メモリコントローラ８４０が、書き込みデータのデータ格納メモリ１１７からの読み出しを開始し（S4008）、ＤＭＡ８００が、データ格納メモリ１１７から読みだされる書き込みデータのキャッシュメモリ１３０への転送を開始する。ＤＭＡ８００は、データ転送が終了すると、プロセッサ１１９に転送終了報告を送信する（S4009）。これによりキャッシュメモリ１３０へのデータ転送が終了する（S4010）。
【０１０４】
次に図２４において、ホストＩ／Ｆ制御ＬＳＩ１１５が情報処理装置２００からデータ書き込み要求を受信すると（S5000）、ホストＩ／Ｆ制御ＬＳＩ１１５が、書き込みデータのデータ格納メモリ１１７における記憶位置を示す情報と書き込みデータとのメモリコントローラ８４０への送信を開始する（S5001）。そしてホストＩ／Ｆ制御ＬＳＩ１１５は、書き込みデータのデータ格納メモリ１１７における記憶位置を示す情報を含む記憶位置情報をプロセッサ１１９に送信する（S5001）。このときホストＩ／Ｆ制御ＬＳＩ１１５とプロセッサ１１９との間で通信が成立した場合には、プロセッサ１１９は、書き込みデータのデータ格納メモリ１１７における記憶位置を示す情報を含む記憶位置情報を受信する（S5002）。
【０１０５】
一方で、メモリコントローラ１１７は、ライトアドレスレジスタ８４２に書き込まれた書き込みデータのデータ格納メモリ１１７における記憶位置を示す情報に従って、書き込みデータのデータ格納メモリ１１７への書き込みを開始する（S5003、S5004）。
【０１０６】
プロセッサ１１９は、ホストＩ／Ｆ制御ＬＳＩ１１５に対して、ＦＩＦＯでデータ転送を行うことを通知すると共に（S5005）、データ転送情報をＤＭＡ８００に送信する（S5006、S5008）。S5006に記されているデータ格納アドレスをＦＩＦＯ空間に設定するのは、ＦＩＦＯ設定レジスタ８２４にデータ格納メモリ１１７をＦＩＦＯとして使用する旨の情報が書き込まれるようにデータ転送情報を設定することにより行うことができる。ＤＭＡ８００は、ＴＯＰアドレスレジスタ８２６、及びＢＯＴＴＯＭアドレスレジスタ８２７により、データ格納量の監視を行い（S5007）、データ格納量が転送単位になったら、データ格納メモリ１１７からのリードを開始する（S5009）。データ格納メモリ１１７からのリードは、具体的には、ＤＭＡ８００が、データ転送情報に基づいて、データ格納メモリ１１７に書き込まれた書き込みデータのリード要求をメモリコントローラ８４０に送信し、メモリコントローラ８４０が、書き込みデータのデータ格納メモリ１１７からの読み出しを開始することにより行われる。
【０１０７】
ホストＩ／Ｆ制御ＬＳＩ１１５からデータ格納メモリ１１７への全ての書き込みデータの書き込みが終了した場合には（S5010）、ホストＩ／Ｆ制御ＬＳＩ１１５は、書き込みデータのデータ格納メモリ１１７における最終書き込みアドレスを示す情報と、制御情報とを含む記憶位置情報をプロセッサ１１９に送信する（S5011）。そしてプロセッサ１１９は、書き込みデータのデータ格納メモリ１１７における最終書き込みアドレスを示す情報と、制御情報とを含むデータ転送情報をＤＭＡ８００に送信する。そしてＤＭＡ８００は、最終書き込みアドレスを示す情報を最終データ格納アドレスレジスタ８２８に書き込み、制御情報を制御情報格納レジスタ８２９に書き込む。なお、書き込みデータのデータ格納メモリ１１７における最終書き込みアドレスを示す情報と、制御情報とを含む記憶位置情報は、図２４に示すようにホストＩ／Ｆ制御ＬＳＩ１１５からＤＭＡ８００に対して直接送信されるようにすることもできる。ＤＭＡ８００は、最終データ格納アドレスレジスタ８２８と、制御情報格納レジスタ８２９に基づいて、データ格納メモリ１１７からキャッシュメモリ１３０へのデータ転送が終了したことを認識すると（S5012）、プロセッサ１１９に転送終了報告を送信する（S5013）。これによりキャッシュメモリ１３０へのデータ転送が終了する（S5014）。
【０１０８】
次にホストＩ／Ｆ制御ＬＳＩ１１５が情報処理装置２００からデータ読み出し要求を受信した場合の処理の流れを示すフローチャートを図２５に示す。
【０１０９】
まずホストＩ／Ｆ制御ＬＳＩ１１５が情報処理装置２００からデータ読み出し要求を受信すると（S6000）、ホストＩ／Ｆ制御ＬＳＩ１１５は、読み出しデータのデータ格納メモリ１１７における記憶位置を示す情報を含む記憶位置情報をプロセッサ１１９に送信する（S6001）。プロセッサ１１９は、記憶位置情報を受信すると（S6002）、データ転送情報をＤＭＡ８００に送信する（S6003、S6005）。S6003に記されているデータ格納アドレスをＦＩＦＯ空間に設定するのは、ＦＩＦＯ設定レジスタ８２４にデータ格納メモリ１１７をＦＩＦＯとして使用する旨の情報が書き込まれるようにデータ転送情報を設定することにより行うことができる。ＤＭＡ８００は、ＴＯＰアドレスレジスタ８２６、ＢＯＴＴＯＭアドレスレジスタ８２７により、データ格納量の監視を行い（S6004）、データ転送情報に基づいて、キャッシュメモリ１３０からの読み出しデータの読み出しを開始する。そしてＤＭＡ８００は、読み出しデータのデータ格納メモリ１１７における記憶位置を示す情報と読み出しデータとのメモリコントローラ８４０への送信を開始する。そしてメモリコントローラ８４０が、読み出しデータのデータ格納メモリ１１７への書き込みを開始する（S6006）。
【０１１０】
一方、プロセッサ１１９が、データ格納メモリ１１７へ読み出しデータの書き込みが開始されたことをホストＩ／Ｆ制御ＬＳＩ１１５に通知すると（S6007）、ホストＩ／Ｆ制御ＬＳＩ１１５は、データ格納メモリ１１７に書き込まれた読み出しデータのリード要求をメモリコントローラ８４０へ送信し、メモリコントローラ８４０が読み出しデータのデータ格納メモリ１１７からの読み出しを開始する（S6009）。そしてホストＩ／Ｆ制御ＬＳＩ１１５が、データ格納メモリ１１７から読みだされる読み出しデータを情報処理装置２００に送信する。
【０１１１】
ホストＩ／Ｆ制御ＬＳＩ１１５及びＤＭＡ８００は、それぞれ、データ転送が終了すると、プロセッサ１１９に転送終了報告を送信する（S6010、S6012）。これにより情報処理装置２００へのデータ転送が終了する（S6011）。  
また本実施の形態に係るメインフレーム系チャネル制御部１１０においては、ホストＩ／Ｆ制御ＬＳＩ１１５とキャッシュメモリ１３０との間でデータ転送を行う際に、転送されるデータにチェックコード（保証コード）を付加することにより、信頼性の向上を図っている。
【０１１２】
ホストＩ／Ｆ制御ＬＳＩ１１５からキャッシュメモリ１３０へデータが転送される場合には、ホストＩ／Ｆ制御ＬＳＩ１１５が、書き込みデータの送信の際に、所定量の書き込みデータ毎に、所定量の書き込みデータを所定のアルゴリズムに従って変換して算出した変換データと所定量の書き込みデータの誤り有無を示す誤り有無データとを含むチェックコードを付加する。そして  ＤＭＡ８００が、書き込みデータをデータ格納メモリ１１７からキャッシュメモリ１３０へ転送する際に、所定量の書き込みデータ毎に、所定量の書き込みデータを所定のアルゴリズムに従って変換して算出したデータと所定量の書き込みデータに付加されたチェックコードの変換データとを比較し、比較の結果に応じて、書き込みデータのキャッシュメモリ１３０への転送を中止する。
【０１１３】
また、キャッシュメモリ１３０からホストＩ／Ｆ制御ＬＳＩ１１５へデータが転送される場合には、ＤＭＡ８００が、キャッシュメモリ１３０からデータ格納メモリ１１７へ読み出しデータを送信する際に、所定量の読み出しデータ毎に、所定量の読み出しデータを所定のアルゴリズムに従って変換して算出した変換データと所定量の読み出しデータの誤り有無を示す誤り有無データとを含むチェックコードを付加する。そして、ＤＭＡ８００が、データ格納メモリ１１７から所定量の読み出しデータを読みだす毎に、所定量の読み出しデータを所定のアルゴリズムに従って変換して算出したデータと所定量の読み出しデータに付加されたチェックコードの変換データとを比較し、比較の結果に応じて、チェックコードに、読み出しデータに誤りがあることを示す所定のデータを書き込む。そして、ホストＩ／Ｆ制御ＬＳＩ１１５は、所定量の読み出しデータ毎に付加されるチェックコードに、読み出しデータに誤りがあることを示す所定のデータが書き込まれている場合には、読み出しデータの情報処理装置２００への送信を中止する。
【０１１４】
このようにすることにより、ホストＩ／Ｆ制御ＬＳＩ１１５は、ＤＭＡ８００から送信された読み出しデータに誤りがあることを検知することができる。これにより、ホストＩ／Ｆ制御ＬＳＩ１１５は、誤りのあるデータを情報処理装置２００へ送信してしまうことを防止することが可能となる。
【０１１５】
上述したように、メインフレーム系チャネル制御部１１０の場合には、プロセッサ１１９が知らない間に、ホストＩ／Ｆ制御ＬＳＩ１１５からデータ格納メモリ１１７への全書き込みデータの書き込みが終了してしまう場合や、情報処理装置２００からの書き込みデータの送信が、情報処理装置２００から送信されたデータ書き込み要求に記述された書き込みデータ長に至らないまま終了してしまう場合がある。このような場合にその旨の情報をＤＭＡ８００に知らせないと、ＤＭＡ８００は、いつまでもホストＩ／Ｆ制御ＬＳＩ１１５からの書き込みデータの続きが送信されるのを待ち続けることになる。これを回避するために、図２６に示すように、本実施の形態に係るデータ転送装置１１４は、最終データ格納アドレスレジスタ８２８、及び制御情報格納レジスタ８２９を備えている。最終データ格納アドレスレジスタ８２８には、情報処理装置２００から送信される全ての書き込みデータが、ホストＩ／Ｆ制御ＬＳＩ１１５によりデータ格納メモリ１１７に書き込まれた場合に、そのデータの最終書き込みアドレスを示す情報が書き込まれる。また制御情報格納レジスタ８２９には、情報処理装置２００から送信されたデータ書き込み要求に記述された書き込みデータ長よりも短いデータしか送信されない旨の情報を、ホストＩ／Ｆ制御ＬＳＩ１１５が情報処理装置２００から受信した場合などに、その旨の制御情報が書き込まれる。
【０１１６】
以上説明したように、本実施の形態に係るストレージ制御装置１００においては、オープン系チャネル制御部１１０と、メインフレーム系チャネル制御部１１０とを備えることにより、情報処理装置２００に対して、データ入出力性能の異なる２つのストレージ制御装置１００を提供することが可能となる。つまり、オープン系の情報処理装置２００とメインフレーム系の情報処理装置２００とでは、前者が比較的コストを重視する傾向があり、後者が比較的性能を重視する傾向がある点で、ストレージシステム６００に求める特性に相違があるが、両者のいずれの要求にも柔軟に対応可能なストレージシステム６００を提供することが可能となる。つまり、情報処理装置１００が要求するストレージ制御装置１００のデータ入出力性能に応じて、適切なデータ入出力性能を情報処理装置２００に提供することが可能となる。
【０１１７】
また本実施の形態に係るストレージ制御装置１００が備えるチャネル制御部１１０においては、データ格納メモリ１１７をＦＩＦＯとして使用することができる。ここでデータ格納メモリ１１７はデータ転送装置１１４とは別の回路として構成される。これにより、必要に応じた大きさの記憶容量のＦＩＦＯを一つ又は複数必要に応じて構成することができるようになる。
【０１１８】
これにより、本実施の形態におけるストレージ制御装置１００においては、情報処理装置２００から送信されるデータ入出力要求に対する処理をより高速に行うことが可能となる。つまりデータの読み書きをより高速化することが可能となる。またより多くの情報処理装置２００からより大量のデータ入出力要求を受信して、データの読み書きを行うことが可能となる。
【０１１９】
さらに本実施の形態に係るストレージ制御装置１００においては、ホストＩ／Ｆ制御ＬＳＩ１１５とキャッシュメモリ１３０との間でデータ転送を行う際に、転送されるデータにチェックコードを付加するようにすることにより、信頼性の向上を図ることも可能となる。
【０１２０】
以上発明を実施するための最良の形態について説明したが、上記実施の形態は本発明の理解を容易にするためのものであり、本発明を限定して解釈するためのものではない。本発明はその趣旨を逸脱することなく変更、改良され得ると共に、本発明にはその等価物も含まれる。
【図面の簡単な説明】
【０１２１】
【図１】本実施の形態に係るストレージシステムの全体構成を示すブロック図である。
【図２】本実施の形態に係るストレージシステムの外観構成を示す図である。
【図３】本実施の形態に係るストレージ制御装置の外観構成を示す図である。
【図４】本実施の形態に係る管理端末の構成を示すブロック図である。
【図５】本実施の形態に係るチャネル制御部を示すブロック図である。
【図６】本実施の形態に係るディスク制御部を示すブロック図である。
【図７】本実施の形態に係る情報処理装置を示すブロック図である。
【図８】本実施の形態に係るデータ転送装置を示す図である。
【図９】本実施の形態に係るデータ転送を説明するための図である。
【図１０】本実施の形態に係るデータ書き込み処理の流れを示すフローチャートである。
【図１１】本実施の形態に係る書き込みデータの流れを示すデータフローである。
【図１２】本実施の形態に係る書き込みデータの流れを示すデータフローである。
【図１３】本実施の形態に係るデータ読み出し処理の流れを示すフローチャートである。
【図１４】本実施の形態に係る読み出しデータの流れを示すデータフローである。
【図１５】本実施の形態に係る読み出しデータの流れを示すデータフローである。
【図１６】他の実施形態に係るＦＩＦＯを説明するための図である。
【図１７】本実施の形態に係る複数のデータ書き込み処理の流れを示すフローチャートである。
【図１８】本実施の形態に係るＦＩＦＯを説明するための図である。
【図１９】本実施の形態に係るチェックコードを説明するための図である。
【図２０】本実施の形態に係るチェックコードを説明するための図である。
【図２１】本実施の形態に係るチェックコードを説明するための図である。
【図２２】本実施の形態に係るデータ転送を説明するための図である。
【図２３】本実施の形態に係るデータ書き込み処理の流れを示すフローチャートである。
【図２４】本実施の形態に係るデータ書き込み処理の流れを示すフローチャートである。
【図２５】本実施の形態に係るデータ読み出し処理の流れを示すフローチャートである。
【図２６】本実施の形態に係るデータ転送を説明するための図である。
【図２７】本実施の形態に係るチャネル制御部を示すブロック図である。
【符号の説明】
【０１２２】
１００    ストレージ制御装置              １１０    チャネル制御部
１１４    データ転送装置                  １１５    ホストＩ／Ｆ制御ＬＳＩ
１１７    データ格納メモリ                １１９    プロセッサ
１２０    共有メモリ                      １３０    キャッシュメモリ
１４０    ディスク制御部                  １５０    内部接続部
１６０    管理端末                        ２００    情報処理装置
３００    ストレージ駆動装置              ５００    ＳＡＮ
６００    ストレージシステム              ７２０    チェックコード
７２１    タグ                            ７２２    変換データ
８００    ＤＭＡ                          ８１０    ＤＭＡ制御部
８２０    転送元アドレスレジスタ          ８２１    転送先アドレスレジスタ
８２２    要求転送長レジスタ              ８２３    転送単位レジスタ
８２４    ＦＩＦＯ設定レジスタ            ８２５    転送方向レジスタ
８２６    ＴＯＰアドレスレジスタ          ８２７    ＢＯＴＴＯＭアドレスレジスタ
８２８    最終データ格納アドレスレジスタ  ８２９    制御情報格納レジスタ
８４０    メモリコントローラ              ８４１    メモリ制御部
８４２    ライトアドレスレジスタ          ８４３    リードアドレスレジスタ
【図１】
2005196422.tif 000003
【図２】
2005196422.tif 000004
【図３】
2005196422.tif 000005
【図４】
2005196422.tif 000006
【図５】
2005196422.tif 000007
【図６】
2005196422.tif 000008
【図７】
2005196422.tif 000009
【図８】
2005196422.tif 000010
【図９】
2005196422.tif 000011
【図１０】
2005196422.tif 000012
【図１３】
2005196422.tif 000013
【図１６】
2005196422.tif 000014
【図１７】
2005196422.tif 000015
【図１８】
2005196422.tif 000016
【図１９】
2005196422.tif 000017
【図２０】
2005196422.tif 000018
【図２１】
2005196422.tif 000019
【図２２】
2005196422.tif 000020
【図２３】
2005196422.tif 000021
【図２４】
2005196422.tif 000022
【図２５】
2005196422.tif 000023
【図２６】
2005196422.tif 000024
【図２７】
2005196422.tif 000025
【図１１】
2005196422.tif 000026
【図１２】
2005196422.tif 000027
【図１４】
2005196422.tif 000028
【図１５】
2005196422.tif 000029