(57)【要約】【課題】ホスト計算機とストレージ装置に接続され、ストレージ装置へのデータの入出力を制御するストレージ制御装置において、ストレージ制御装置内の記憶装置の有効活用を図り、信頼性が高く、しかも、迅速なデータ入出力制御を行う。【解決手段】中央処理装置１１０とチャネルインターフェース部１６０とディスクインターフェース部１７０と入出力制御部１８０とを備えたストレージ制御装置において、主記憶装置１２０を、電源の切断後の所定時間の間、データの不揮発性が維持されるバッテリバックアップした揮発メモリにより構成し、バッテリバックアップした主記憶装置１２０と入出力制御部１８０の記憶装置１５０とにより、ストレージ制御装置のキャッシュ装置としてのメモリアドレス空間を形成し、キャッシュ装置とディスクドライブ装置との間のステージング及びデステージング処理を行う。【選択図】図１
2010122730.tif 000002
【特許請求の範囲】
【請求項１】
主記憶装置と接続した中央処理装置と、ホスト計算機と接続するチャネルインターフェース部と、ディスクドライブ装置と接続するディスクインターフェース部と、記憶装置と接続した入出力制御部と、を備えたストレージ制御装置において、
前記主記憶装置を、電源の切断後の所定時間の間、データの不揮発性が維持されるバッテリバックアップした揮発メモリにより構成し、前記バッテリバックアップした主記憶装置と前記入出力制御部の記憶装置とにより、前記ストレージ制御装置のキャッシュ装置としてのメモリアドレス空間を形成し、前記ディスクドライブ装置に記憶されたデータを読み出して前記キャッシュ装置に書き込むステージング処理と前記キャッシュ装置に記憶されたデータを読み出して前記ディスクドライブ装置に書き込むデステージング処理を行うことを特徴とするストレージ制御装置。
【請求項２】
請求項１に記載のストレージ制御装置において、
ホスト計算機からの要求指令に応答して、入出力命令と入出力データの種別を判定し、入出力命令と入出力種別に応じて異なる方法でデータの入出力処理を行うことを特徴とするストレージ制御装置。
【請求項３】
請求項２に記載のストレージ制御装置において、
前記判定した入出力命令が書き込み命令の場合は、格納管理テーブルを検索・参照して、前記バッテリバックアップした主記憶装置にデータサイズ分の領域を確保してデータの二重書きを行い、読み出し命令の場合は、バッテリバックアップした主記憶装置にデータサイズ分の領域を確保してディスクドライブ装置からのデータを格納し、ホスト計算機に要求データを転送することを特徴とするストレージ制御装置。
【請求項４】
請求項１に記載のストレージ制御装置において、
ホスト計算機からの要求指令に応答して、データ転送処理の場合には、前記入出力制御部と接続した記憶装置または他系のリモート記憶装置の格納領域を確保し、前記ディスクドライブ装置から前記バッテリバックアップした主記憶装置に読み込んだデータを前記入出力制御部と接続した記憶装置または他系のリモート記憶装置に転送したのち、前記バッテリバックアップした主記憶装置の格納領域を解放することを特徴とするストレージ制御装置。
【請求項５】
主記憶装置と接続した中央処理装置と、ホスト計算機と接続するチャネルインターフェース部と、ディスクドライブ装置と接続するディスクインターフェース部と、記憶装置と接続した入出力制御部と、を備えたストレージ制御装置において、
前記主記憶装置と前記入出力制御部の記憶装置とを、電源の切断後の所定時間の間、データの不揮発性が維持されるバッテリバックアップした揮発メモリにより構成し、前記バッテリバックアップした主記憶装置と前記入出力制御部のバッテリバックアップした記憶装置とにより、前記ストレージ制御装置のキャッシュ装置としてのメモリアドレス空間を形成し、前記ディスクドライブ装置に記憶されたデータを読み出して前記キャッシュ装置に書き込むステージング処理と前記キャッシュ装置に記憶されたデータを読み出して前記ディスクドライブ装置に書き込むデステージング処理を行うことを特徴とするストレージ制御装置。
【請求項６】
請求項５に記載のストレージ制御装置において、
ホスト計算機からの要求指令に応答して、入出力命令と入出力データの種別を判定し、入出力命令と入出力種別に応じて異なる方法でデータの入出力処理を行うことを特徴とするストレージ制御装置。
【請求項７】
請求項６に記載のストレージ制御装置において、
前記判定した入出力命令が書き込み命令の場合は、格納管理テーブルを検索・参照して、前記バッテリバックアップした主記憶装置と前記バッテリバックアップした前記入出力制御部の記憶装置にデータサイズ分の領域を確保してデータの二重書きを行い、読み出し命令の場合は、前記バッテリバックアップした主記憶装置と前記バッテリバックアップした前記入出力制御部の記憶装置にデータサイズ分の領域を確保してディスクドライブ装置からのデータを格納し、ホスト計算機に要求データを転送することを特徴とするストレージ制御装置。
【請求項８】
請求項５に記載のストレージ制御装置において、
ホスト計算機からの要求指令に応答して、データ転送処理の場合には、前記入出力制御部と接続した記憶装置または他系のリモート記憶装置の格納領域を確保し、前記ディスクドライブ装置から前記バッテリバックアップした主記憶装置と前記バッテリバックアップした前記入出力制御部の記憶装置に読み込んだデータを前記入出力制御部と接続した記憶装置または他系のリモート記憶装置に転送したのち、前記バッテリバックアップした主記憶装置と前記バッテリバックアップした前記入出力制御部の記憶装置の格納領域を解放することを特徴とするストレージ制御装置。
【請求項９】
主記憶装置と接続した中央処理装置と、ホスト計算機と接続したチャネルインターフェース部と、ディスクドライブ装置と接続したディスクインターフェース部と、記憶装置と接続した入出力制御部と、を備えた複数のストレージ制御装置と、
前記チャネルインターフェース部を介して前記ストレージ制御装置と接続したホスト計算機と、
前記ディスクインターフェース部を介して前記ストレージ制御装置と接続したディスクドライブ装置と、を有するストレージシステムにおいて、
前記複数のストレージ制御装置の前記主記憶装置と前記前記入出力制御部の記憶装置とを、電源の切断後の所定時間の間、データの不揮発性が維持されるバッテリバックアップした揮発メモリにより構成し、自系のバッテリバックアップした主記憶装置と入出力制御部のバッテリバックアップした記憶装置と、他系のバッテリバックアップした主記憶装置と入出力制御部のバッテリバックアップした記憶装置とにより、ストレージシステムのキャッシュ装置としてのメモリアドレス空間を形成し、前記ディスクドライブ装置に記憶されたデータを読み出して前記キャッシュ装置に書き込むステージング処理と前記キャッシュ装置に記憶されたデータを読み出して前記ディスクドライブ装置に書き込むデステージング処理を行うことを特徴とするストレージシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ストレージ装置のデータ入出力を行う制御装置のメモリの利用効率を向上させたストレージ制御装置及びストレージシステムに関する。
【背景技術】
【０００２】
複数のディスク装置を含むストレージ装置のデータ入出力の制御に用いられるディスク・キャッシュ等の複数のメモリを活用する技術としては、例えば、特許文献１には、ディスク制御装置に接続されるディスク・キャッシュ装置を不揮発性メモリの部分と揮発性メモリの部分とにより構成し、中央処理装置からの出力処理をディスク・キャッシュ装置の不揮発性部分に書きこんだ段階で処理を完了し、更に、ディスク・キャッシュ装置の不揮発性部分上の複数のデータをまとめてディスク装置に書き込む計算機システムが記載されている。
【０００３】
また、例えば、特許文献２には、キャッシュメモリへの書き込み処理を減らしながらデータの二重化を実現して装置性能を向上させるために、ホストコンピュータ／サーバからの書き込みデータを、データ転送制御部により、不揮発性メモリ部と、スイッチ部を介したグローバルキャッシュメモリ部とに転送して二重書きを行うディスクアレイ装置が記載されている。
【０００４】
図１１に、従来例である不揮発メモリを備えたストレージシステムの概略全体図の一例を示す。ストレージシステムは、複数のコントローラ（ＣＴＬ０，ＣＴＬ１）を備えたストレージ制御装置ＣＴＬによりホスト計算機からの入出力命令に対応してディスクドライブ装置へのデータの書き込み及び読み出し制御（入出力制御）を行う。例えば、ストレージ制御装置ＣＴＬ０は、主記憶装置（揮発メモリ１）に応用プログラムを格納し中央処理装置（ＣＰＵ）の指令により各種の制御を行う。応用プログラムとして入出力制御プログラムを用いることにより、ＣＰＵの指令制御によりデータ入出力のソフトウェア制御を行うことが可能である。
【０００５】
また、ホスト計算機と接続する専用のインターフェースコントローラ（チャネルＩＦＣＴＬ）やハードディスクドライブと接続する専用のインターフェースコントローラ（ディスクＩＦＣＴＬ）を用い、データ入出力の制御を行う専用の制御回路（ＩＯＣＴＬ）により入出力のハードウェア制御を行うことができる。データ入出力制御回路には不揮発性（電源を切ってもデータが消えない）のキャッシュメモリ（不揮発メモリ２）を接続し、ホストコンピュータからのデータをキャッシュメモリに一旦記憶し、キャッシュメモリに記憶したデータをハードディスク装置に書き込む（デステージング）制御や、ハードディスク装置に記憶されているデータを読み出してキャッシュメモリに記憶（ステージング）したのち、ホスト計算機に転送するなどの制御が可能となっている。
【０００６】
揮発メモリは、例えば、コンピュータのメインメモリに用いられているＤＲＡＭ(Dynamic Random Access Memory)のように電源を切ると記憶されたデータが消去する揮発性のメモリを意味している。不揮発メモリは、電源を切っても記憶されたデータが残るメモリであり、フラッシュ（Flash）メモリのように電源を切っても記憶されたデータが残る不揮発性メモリや、磁気ディスクメモリ、あるいは、揮発性メモリを電源でバックアップして不揮発性を維持するバッテリバックアップ型のメモリ等を意味している。ストレージ制御装置の入出力制御においては、揮発性メモリを電池または蓄電池に蓄積された電源により、所定時間、不揮発性を維持するバッテリバックアップ型のキャッシュメモリ（メモリ２）が用いられるようになっている。
【特許文献１】特開昭５９−１３５５６３号公報
【特許文献２】特開２００５−３０１４１９号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
揮発メモリは、一般にデータの入出力速度が遅く、電源が切れるとデータが消えてしまう。一方、不揮発メモリは、一般にはデータの入出力速度が速く、電源を切っても記憶されたデータが維持される高性能なメモリであるが、比較的高コストである。大量のキャッシュメモリを用いることが必要なストレージ制御装置においては、ストレージ制御装置に用いる記憶装置にとって、最適なメモリ構成を選択することが重要となっている。
【０００８】
また、ストレージ制御装置の入出力制御の際に、キャッシュメモリとハードディスク装置との間のデステージングやステージングのデータ入出力制御を行うときには、キャッシュメモリ上のデータが既に、例えば、ハードディスク装置に書き込まれていて、仮に消去されても致命的とはならないデータ（クリーンデータ）であるのか、あるいは、データ更新がなされた状態で、例えば、そのデータがキャッシュメモリ上にしかなく、消去されると修復が不可能なデータ（ダーティデータ）であるかに応じて的確な対応が可能な入出力制御が必要である。また、入出力制御するデータが制御データであって消去されると制御に支障のあるデータであるか単なるユーザの記憶データであるかに応じて、対応可能な制御が必要である。
【０００９】
上記の特許文献１または２に記載された技術は、ディスク・キャッシュ装置を不揮発性メモリの部分と揮発性メモリの部分とにより構成したもの、あるいは、不揮発のキャッシュメモリと外部のグローバルキャッシュ装置の双方に記憶するものに過ぎず、いずれの文献にも、格納する情報の種類に応じて、メモリの格納手段や格納方法を異ならせることについては何も開示されていない。
【００１０】
本発明は、ホスト計算機とストレージ装置に接続され、ホスト計算機からの指令に応じてストレージ装置へのデータの入出力を制御するストレージ制御装置において、ストレージ制御装置内の記憶装置の有効活用を図り、信頼性が高く、しかも、迅速なデータ入出力制御を行うことを目的とする。
【課題を解決するための手段】
【００１１】
本発明のストレージ制御装置は、主記憶装置と接続した中央処理装置と、ホスト計算機と接続するチャネルインターフェース部と、ディスクドライブ装置と接続するディスクインターフェース部と、記憶装置と接続した入出力制御部と、を備えており、前記主記憶装置を、電源の切断後の所定時間の間、データの不揮発性が維持されるバッテリバックアップした揮発メモリにより構成し、前記バッテリバックアップした主記憶装置と前記入出力制御部の記憶装置とにより、前記ストレージ制御装置のキャッシュ装置としてのメモリアドレス空間を形成し、前記ディスクドライブ装置に記憶されたデータを読み出して前記キャッシュ装置に書き込むステージング処理と前記キャッシュ装置に記憶されたデータを読み出して前記ディスクドライブ装置に書き込むデステージング処理を行うことを特徴とする。
【００１２】
また、本発明のストレージ制御装置は、主記憶装置と接続した中央処理装置と、ホスト計算機と接続するチャネルインターフェース部と、ディスクドライブ装置と接続するディスクインターフェース部と、記憶装置と接続した入出力制御部と、を備えており、前記主記憶装置と前記前記入出力制御部の記憶装置とを、電源の切断後の所定時間の間、データの不揮発性が維持されるバッテリバックアップした揮発メモリにより構成し、前記バッテリバックアップした主記憶装置と前記入出力制御部のバッテリバックアップした記憶装置とにより、前記ストレージ制御装置のキャッシュ装置としてのメモリアドレス空間を形成し、前記ディスクドライブ装置に記憶されたデータを読み出して前記キャッシュ装置に書き込むステージング処理と前記キャッシュ装置に記憶されたデータを読み出して前記ディスクドライブ装置に書き込むデステージング処理を行うことを特徴とする。
【００１３】
更に、本発明のストレージシステムは、主記憶装置と接続した中央処理装置と、ホスト計算機と接続したチャネルインターフェース部と、ディスクドライブ装置と接続したディスクインターフェース部と、記憶装置と接続した入出力制御部と、を備えた複数のストレージ制御装置と、前記チャネルインターフェース部を介して前記ストレージ制御装置と接続したホスト計算機と、前記ディスクインターフェース部を介して前記ストレージ制御装置と接続したディスクドライブ装置と、を有しており、前記複数のストレージ制御装置の前記主記憶装置と前記前記入出力制御部の記憶装置とを、電源の切断後の所定時間の間、データの不揮発性が維持されるバッテリバックアップした揮発メモリにより構成し、自系のバッテリバックアップした主記憶装置と入出力制御部のバッテリバックアップした記憶装置と、他系のバッテリバックアップした主記憶装置と入出力制御部のバッテリバックアップした記憶装置とにより、ストレージシステムのキャッシュ装置としてのメモリアドレス空間を形成し、前記ディスクドライブ装置に記憶されたデータを読み出して前記キャッシュ装置に書き込むステージング処理と前記キャッシュ装置に記憶されたデータを読み出して前記ディスクドライブ装置に書き込むデステージング処理を行うことを特徴とする。
【発明の効果】
【００１４】
本発明によれば、ストレージ制御装置及びストレージシステムの入出力制御に用いるメモリの利用効率を向上させることができる。また、ストレージ制御装置のキャッシュメモリとストレージ装置との間のステージング及びデステージングの入出力制御を、信頼性が高く、しかも、迅速に行うことができる。
【発明を実施するための最良の形態】
【００１５】
以下、図面を用いて、本発明の実施の形態について説明する。図１は実施例１のストレージ制御装置を備えたストレージシステムの概略全体図であり、図２はストレージ制御装置のメモリ空間の構成を示す格納領域管理テーブルの例である。また、図３は実施例２、図４は実施例３のストレージ制御装置を備えたストレージシステムの概略全体図を示している。
【００１６】
また、図５〜図１０は本発明のストレージ制御装置の各処理の内容を示すフローチャートであり、図６はデータ書き込み（Ｗｒｉｔｅ）処理、図７はデータ書き込み時の処理格納領域確保処理、図８はデータ読み出し（Ｒｅａｄ）処理、図９はデータ読み出し時の処理格納領域確保処理、図１０はデータバックアップ用、及び、リモートコピー用のドライブデータの転送処理を示している。
【実施例１】
【００１７】
図１は、本発明の実施例１のストレージ制御装置を備えたストレージシステムの概略全体図である。また、図２は、本発明のストレージ制御装置のメモリ空間の構成を示す格納領域管理テーブルの例を示している。
【００１８】
図１において、１０はストレージ制御システム、２０，２１はホスト計算機、３０はストレージ装置（ドライブ）、３１，３２はディスク装置、１００，１０１はストレージ制御装置、１１０，１１１は中央処理装置（ＣＰＵ）、１２０，１２１は主記憶装置（メモリ１）、１３０，１３１は入出力制御モジュール（ＩＯモジュール）、１４１はプログラム、１４２は管理情報、１４３はユーザデータ１、１４４はユーザデータ２、１５０，１５１はキャッシュメモリ（メモリ２）、１６０，１６１はチャネルインターフェース部（チャネルＩＦＣＴＬ）、１７０，１７１はディスクインターフェース部（ディスクＩＦＣＴＬ）、１８０，１８１は入出力制御部（ＩＯＣＴＬ）を示している。
【００１９】
なお、実施例１において、図１には、入出力制御部（ＩＯＣＴＬ）１８０とチャネルインターフェース部（チャネルＩＦＣＴＬ）１６０とディスクインターフェース部（ディスクＩＦＣＴＬ）１７０から入出力制御モジュール（ＩＯモジュール）１３０を構成する例が示されているが、これは一実装例を示しているにすぎず、本発明は、図１に示されたモジュールの実装例に限定されず、各々を別のモジュールとして実装する場合、あるいは、入出力制御部（ＩＯＣＴＬ）１８０とＣＰＵ１１０とを同一基板に実装し、チャネルインターフェース部（チャネルＩＦＣＴＬ）１６０とディスクインターフェース部（ディスクＩＦＣＴＬ）１７０とを各々別のモジュールとして実装する場合などの実装形態が可能である。
【００２０】
本発明の実施例１のストレージ制御装置１００は、主記憶装置あるメモリ（１）１２０を備えた中央処理装置（ＣＰＵ）１１０と、ホスト計算機２０と接続するチャネルインターフェース部（チャネルＩＦＣＴＬ）１６０とストレージ装置３０と接続するディスクインターフェース部（ディスクＩＦＣＴＬ）１７０とキャッシュメモリであるメモリ（２）１５０と入出力を制御する入出力制御部（ＩＯＣＴＬ）１８０を備えた入出力制御モジュール（ＩＯモジュール）１３０とから構成されている。
【００２１】
本発明の実施例１では、主記憶装置（メモリ１）１２０は、電池または蓄電池に蓄積された電力により所定時間、不揮発性が維持される（電源が切れても所定時間、記憶されたデータが保持される）ようにバックアップされた揮発メモリから構成されており、バッテリバックアップ（ＢＢＵ：Battery Buck Up）された主記憶装置（メモリ１）には、プログラム１４１、管理情報１４２、ユーザデータ（１）１４３が記憶され、バッテリバックアップされた所定時間の間に、中央処理装置（ＣＰＵ）１１０は、主記憶装置（メモリ１）に記憶されたプログラム１４１により応用プログラムを動作させることができる。
【００２２】
プログラム１４１として、ストレージ制御装置の入出力制御プログラムを格納しておけば、電源が切断しても、バッテリバックアップされた所定時間の間に、中央処理装置（ＣＰＵ）１１０が入出力制御プログラムを作動し、主記憶装置（メモリ１）１２０に記憶された管理情報１４３をも参照し、また、入出力モジュール１３０を制御して、ユーザデータ１，２を所定の記憶装置に入出力するソフトウェア制御を行うことができる。
【００２３】
図２は、データ入出力制御の際に検索してストレージ制御装置のメモリ空間の構成を示す格納領域管理テーブルの例を示している。図２において、２００はメモリ管理テーブル、２０１は先頭アドレス、２０２は終了アドレス、２０３は管理単位、２０４は用途、２１０はメモリアドレスデータテーブル、２１１はキャッシュアドレス、２１２はドライブ番号、２１３はドライブアドレス、２１４はステータスを示している。
【００２４】
メモリ管理テーブル２００は、先頭アドレス２０１、終了アドレス２０２、管理単位２０３、用途２０４の各コラムを備えており、入出力制御されるデータのメモリ空間上でのアドレス位置、入出力制御データの大きさを示す管理単位、入出力制御データが制御データを含む管理情報か各ユーザデータであるかを示す用途情報を記憶している。
【００２５】
また、メモリアドレスデータテーブル２１０は、キャッシュアドレス２１１、ドライブ番号２１２、ドライブアドレス２１３、ステータス２１４の各コラムを備えており、バックアップした主記憶装置（メモリ１）とキャッシュメモリ（メモリ２）を含むキャッシュ装置のメモリ空間におけるキャッシュアドレス２１１と、キャッシュアドレスに記憶されるデータに対応したストレージ装置（ディスク）３０を識別するドライブ番号とストレージ装置（ディスク）３０のメモリ空間におけるドライブアドレスと、記憶されたデータがキャッシュ装置（メモリ１，２）のみに存在するＤｉｒｔｙの状態と、キャッシュ装置（メモリ１，２）とストレージ装置（ディスク）３０の両方に存在するＣｌｅａｎの状態を示すステータスの情報を管理している。
【００２６】
ストレージ制御装置において、中央制御装置（ＣＰＵ）がデータの入出力制御を行うソフトウェア制御の場合、あるいは、データの入出力制御を入出力モジュール（ＩＯモジュール）１０３の専用の入出力制御部（ＩＯＣＴＬ）が行うハードウェア制御の場合には、メモリ１あるいはメモリ２に記憶したストレージ制御装置のメモリ空間の構成を示す格納領域管理テーブルを検索し参照して、入出力処理の格納処理の確保を行い、データの書き込み（Ｗｒｉｔｅ）処理や、データの読み出し（Ｒｅａｄ）処理や、データの転送処理を行う。
【実施例２】
【００２７】
図３は、本発明の実施例２のストレージ制御装置を備えたストレージシステムの概略全体図である。図３において、１０はストレージ制御システム、２０，２１はホスト計算機、３０はストレージ装置（ドライブ）、３１，３２はディスク装置、１００，１０１はストレージ制御装置、１１０，１１１は中央処理装置（ＣＰＵ）、１２０，１２１は主記憶装置（メモリ１）、１３０，１３１は入出力制御モジュール（ＩＯモジュール）、１４１はプログラム、１４２は管理情報、１４３はユーザデータ１、１４４はユーザデータ２、１５０，１５１はキャッシュメモリ（メモリ２）、１６０，１６１はチャネルインターフェース部（チャネルＩＦＣＴＬ）、１７０，１７１はディスクインターフェース部（ディスクＩＦＣＴＬ）、１８０，１８１は入出力制御部（ＩＯＣＴＬ）を示している。
【００２８】
なお、実施例２において、図３には、入出力制御部（ＩＯＣＴＬ）１８０とチャネルインターフェース部（チャネルＩＦＣＴＬ）１６０とディスクインターフェース部（ディスクＩＦＣＴＬ）１７０から入出力制御モジュール（ＩＯモジュール）１３０を構成する例が示されているが、これは一実装例を示しているにすぎず、本発明は、図３に示されたモジュールの実装例に限定されず、各々を別のモジュールとして実装する場合、あるいは、入出力制御部（ＩＯＣＴＬ）１８０とＣＰＵ１１０とを同一基板に実装し、チャネルインターフェース部（チャネルＩＦＣＴＬ）１６０とディスクインターフェース部（ディスクＩＦＣＴＬ）１７０とを各々別のモジュールとして実装する場合などの実装形態が可能である。
【００２９】
本発明の実施例２のストレージ制御装置１００は、主記憶装置あるメモリ（１）１２０を備えた中央処理装置（ＣＰＵ）１１０と、ホスト計算機２０と接続するチャネルインターフェース部（チャネルＩＦＣＴＬ）１６０とストレージ装置３０と接続するディスクインターフェース部（ディスクＩＦＣＴＬ）１７０とキャッシュメモリであるメモリ（２）１５０と入出力を制御する入出力制御部（ＩＯＣＴＬ）１８０を備えた入出力制御モジュール（ＩＯモジュール）１３０とから構成されている。
【００３０】
本発明の実施例１では、主記憶装置（メモリ１）１２０がバッテリバックアップされた揮発メモリから構成されていたが、本発明の実施例２のストレージ制御装置では、主記憶装置（メモリ１）１２０だけでなく、キャッシュメモリ（メモリ２）１５０もバッテリバックアップされた揮発メモリから構成されており、主記憶装置（メモリ１）１２０とキャッシュメモリ（メモリ２）１５０の双方のメモリが、電池または蓄電池に蓄積された電力により所定時間、不揮発性が維持される（電源が切れても所定時間、記憶されたデータが保持される）ように構成され、両者が全体として、キャッシュ装置として機能する、あるいは、バッテリバックアップされた主記憶装置（メモリ１）１２０が、バッテリバックアップされたキャッシュメモリ（メモリ２）１５０のサブメモリとして機能するように構成することができる。
【００３１】
本発明の実施例２では、バッテリバックアップ（ＢＢＵ：Battery Buck Up）された主記憶装置（メモリ１）には、プログラム１４１、ユーザデータ（１）１４３が記憶され、バッテリバックアップ（ＢＢＵ：Battery Buck Up）されたキャッシュメモリ（メモリ２）１５０には、管理情報１４２とユーザデータ２が記憶される。
【００３２】
バッテリバックアップされた所定時間の間に、入出力制御モジュール（ＩＯモジュール）１３０の入出力制御部（ＩＯＣＴＬ）は、入出力制御部（ＩＯＣＴＬ）に組み込まれたハードウェア制御により、バッテリバックアップされたキャッシュメモリ（メモリ２）１５０に記憶された管理情報を参照して、ホスト計算機２０からの入出力指令に応答して、ストレージ装置（ドライブ）３０と、主記憶装置（メモリ１）１２０またはキャッシュメモリ（メモリ２）１５０との間のデータの入出力制御、あるいは、主記憶装置（メモリ１）１２０とキャッシュメモリ（メモリ２）１５０のキャッシュ装置間のデータの入出力制御などを行うことができる。
【実施例３】
【００３３】
図４は、本発明の実施例３のストレージ制御装置を備えたストレージシステムの概略全体図である。図４において、１０はストレージ制御システム、２０，２１はホスト計算機、３０はストレージ装置（ドライブ）、３１，３２はディスク装置、１００，１０１はストレージ制御装置、１１０，１１１は中央処理装置（ＣＰＵ）、１２０，１２１は主記憶装置（メモリ１）、１３０，１３１は入出力制御モジュール（ＩＯモジュール）、１４１はプログラム、１４２は管理情報、１４３はユーザデータ１、１４４はユーザデータ２、１５０，１５１はキャッシュメモリ（メモリ２）、１６０，１６１はチャネルイン１，２ターフェース部（チャネルＩＦＣＴＬ）、１７０，１７１はディスクインターフェース部（ディスクＩＦＣＴＬ）、１８０，１８１は入出力制御部（ＩＯＣＴＬ）を示している。
【００３４】
なお、実施例３において、図４には、入出力制御部（ＩＯＣＴＬ）１８０，１８１とチャネルインターフェース部（チャネルＩＦＣＴＬ）１６０，１６１とディスクインターフェース部（ディスクＩＦＣＴＬ）１７０，１７１から入出力制御モジュール（ＩＯモジュール）１３０，１３１を構成する例が示されているが、これは一実装例を示しているにすぎず、本発明は、図４に示された各モジュールの実装例に限定されず、各々を別のモジュールとして実装する場合、あるいは、入出力制御部（ＩＯＣＴＬ）１８０，１８１とＣＰＵ１１０，１１１とを同一基板に実装し、チャネルインターフェース部（チャネルＩＦＣＴＬ）１６０，１６１とディスクインターフェース部（ディスクＩＦＣＴＬ）１７０，１７１とを各々別のモジュールとして実装する場合などの実装形態が可能である。
【００３５】
本発明の実施例１のストレージ制御装置１００は、主記憶装置あるメモリ（１）１２０を備えた中央処理装置（ＣＰＵ）１１０と、ホスト計算機２０と接続するチャネルインターフェース部（チャネルＩＦＣＴＬ）１６０とストレージ装置３０と接続するディスクインターフェース部（ディスクＩＦＣＴＬ）１７０とキャッシュメモリであるメモリ（２）１５０と入出力を制御する入出力制御部（ＩＯＣＴＬ）１８０を備えた入出力制御モジュール（ＩＯモジュール）１３０とから構成されている。
【００３６】
図１または図３の実施例１，２では、ストレージ制御システム１０のストレージ制御装置１００，１０１の一方、すなわち、ストレージ制御装置１００のみにおいて、主記憶装置（メモリ１）１２０は、電池または蓄電池に蓄積された電力により所定時間、不揮発性が維持される（電源が切れても所定時間、記憶されたデータが保持される）ようにバッテリバックアップされた揮発メモリから構成されており、他系のストレージ制御装置１０１では、上記バッテリバックアップされた揮発メモリの構成が採用されていない。
【００３７】
本発明の実施例３では、図４に示すように、ストレージ制御装置１００とストレージ制御装置１０１のいずれにおいても、主記憶装置（メモリ１）１２０及びキャッシュメモリ（メモリ２）の双方が、電池または蓄電池に蓄積された電力により所定時間、不揮発性が維持される（電源が切れても所定時間、記憶されたデータが保持される）ようにバッテリバックアップされた揮発メモリから構成されている。
【００３８】
本発明の実施例３では、データの二重化を行う場合に、自系のストレージ制御装置１００の主記憶装置（メモリ１）１２０及びキャッシュメモリ（メモリ２）のみならず、他系のストレージ制御装置１０１の主記憶装置（メモリ１）１２０及びキャッシュメモリ（メモリ２）もキャッシュ装置として使用することができ、また、他系のストレージ制御装置１０１の数を更に複数に増加することもでき、ストレージシステムとして、データの入出力制御を行うキャッシュ装置のメモリ空間の大きさを大幅に増大させることができる。
［ストレージ制御装置の制御フロー］
【００３９】
以下、本発明のストレージ制御装置の各処理の内容について説明する。図５〜図１０は、本発明の実施例１から３のストレージ制御装置の各処理の内容を示すフローチャートであり、図６はデータ書き込み（Ｗｒｉｔｅ）処理、図７はデータ書き込み時の処理格納領域確保処理、図８はデータ読み出し（Ｒｅａｄ）処理、図９はデータ読み出し時の処理格納領域確保処理、図１０はデータバックアップ用、及び、リモートコピー用のドライブデータの転送処理を示している。
【００４０】
図５は、本発明のストレージ制御装置のホスト入出力（ＩＯ）処理の内容を示すフローチャートである。図５において、ホストＩＯ処理が開始されると、ステップ５０１において、ホスト計算機２０からの入出力指令（ＩＯ）を受領し、ＣＭＤ（Command：命令）判定を行い、書き込み（Ｗｒｉｔｅ）処理か、読み出し（Ｒｅａｄ）処理かのＩＯ種判定を行う。ホストＩＯ処理は、入出力制御モジュール（ＩＯモジュール）１３０の入出力制御部（ＩＯＣＴＬ）１８０によるハードウェア制御により行うことが可能であり、また、電源の切断後であっても、バッテリバックアップされた所定時間内は、バッテリバックアップされた主メモリ（メモリ１）に記憶された入出力制御プログラム１４１を用いて中央処理装置（ＣＰＵ）１１０がソフトウェア制御により行うことが可能である。
【００４１】
次に、ステップ５０３において、書き込み（Ｗｒｉｔｅ）処理である（Ｙｅｓ）の場合はステップ５０４に移行し、書き込み（Ｗｒｉｔｅ）処理を実行して、ホスト入出力（ＩＯ）処理を終了する。また、ステップ５０３において、書き込み（Ｗｒｉｔｅ）処理でない（Ｎｏ）の場合はステップ５０５に移行し、読み出し（Ｒｅａｄ）処理を実行して、ホスト入出力（ＩＯ）処理を終了する。
【００４２】
図６は、本発明のストレージ制御装置のデータ書き込み（Ｗｒｉｔｅ）処理の内容を示すフローチャートである。図６のデータ書き込み（Ｗｒｉｔｅ）処理は、図５のホストＩＯ処理のステップ５０４に対応している。
【００４３】
図６において、データ書き込み（Ｗｒｉｔｅ）処理が開始されると、ステップ６０１において、キャッシュ領域（メモリ１，２）に格納領域を確保する。実施例１の場合には、バッテリバックアップされた主記憶装置（メモリ１）と、入出力モジュール（ＩＯモジュール）１３０内のキャッシュメモリ（メモリ２）のキャッシュ領域に格納領域を確保し、実施例２の場合には、バッテリバックアップされた主記憶装置（メモリ１）と、入出力モジュール（ＩＯモジュール）１３０内のバッテリバックアップされたキャッシュメモリ（メモリ２）のキャッシュ領域に格納領域を確保する。
【００４４】
また、実施例３の場合には、自系のバッテリバックアップされた主記憶装置（メモリ１）と、入出力制御モジュール（ＩＯモジュール）１３０内のバッテリバックアップされたキャッシュメモリ（メモリ２）、及び、他系のバッテリバックアップされた主記憶装置（メモリ１）と、入出力モジュール（ＩＯモジュール）１３０内のバッテリバックアップされたキャッシュメモリ（メモリ２）のキャッシュ領域内に格納領域を確保する。
【００４５】
続いて、ステップ６０２において、書き込み（Ｗｒｉｔｅ）データをキャッシュに格納し、各キャッシュ領域（メモリ１，２）にデータの二重書き処理を行って、格納領域管理テーブルのステータス情報を更新して、書き込み（Ｗｒｉｔｅ）処理を終了する。各キャッシュ領域（メモリ１，２）書き込まれたデータは必要な場合、所定の時点で、各キャッシュ領域（メモリ１，２）から読み出され、ストレージ装置３０のディスク装置３１，３２に書き込むデステージング処理がなされる。
【００４６】
なお、上記実施例の説明では、ホスト計算機２０からの入出力指令（ＩＯ）を受領し、ＣＭＤ（Command：命令）判定を行い、書き込み（Ｗｒｉｔｅ）処理か、読み出し（Ｒｅａｄ）処理かのＩＯ種判定を行って、書き込み（Ｗｒｉｔｅ）処理の場合にデータの二重書きを行うものとして説明しているが、ホスト計算機から送信される入出力指令（ＩＯ）とデータの種別を判定する際に、送信データが制御データであるか否かを判定して、制御データであると判定された場合には、不揮発性メモリ、または、バッテリバックアップされた揮発メモリにデータ格納領域を確保して制御データの二重書きを行うように構成することが可能である。
【００４７】
図７は、本発明のストレージ制御装置のデータ書き込み（Ｗｒｉｔｅ）処理の格納領域確保処理の内容を示すフローチャートである。図７は、図６のデータ書き込み（Ｗｒｉｔｅ）処理のステップ６０１に対応している。図７において、データ書き込み（Ｗｒｉｔｅ）処理の格納領域確保処理が開始されると、ステップＳ７０１において、格納領域管理テーブルを検索・参照する。格納領域管理テーブルは、例えば、図２のメモリ管理テーブル２００及びメモリアドレスデータテーブルに対応している。メモリ管理テーブル２００は先頭アドレス２０１、２０２は終了アドレス２０２、２０３は管理単位２０３、用途２０４等の情報を記憶し、メモリアドレスデータテーブル２１０は、キャッシュアドレス２１１、ドライブ番号２１２、ドライブアドレス２１３、ステータス２１４等の情報を記憶している。
【００４８】
格納領域管理テーブルは、管理情報として、図１の実施例１の場合には、例えば、バッテリバックアップされた主記憶装置（メモリ１）に、また、図３，４の実施例２，３の場合には、例えば、キャッシュメモリ（メモリ２）に記憶され、入出力のソフトウェア制御を行う中央処理装置（ＣＰＵ）１１０または入出力のハードウェア制御を行う入出力制御部（ＩＯＣＴＬ）により検索・参照される。
【００４９】
続いて、ステップ７０２において、バッテリバックアップした不揮発メモリにデータサイズ分の領域を確保して、データ書き込み（Ｗｒｉｔｅ）処理の格納領域確保処理を終了する。データ書き込み（Ｗｒｉｔｅ）処理の場合は、書き込み先のアドレス領域がデータサイズ分を記憶するための十分な広さの、しかも、不揮発性の、すなわち、電源が切れてもデータが消去されることのないメモリ領域を確保することが特に重要である。
【００５０】
図８は、本発明のストレージ制御装置のデータ読み出し（Ｒｅａｄ）処理の内容を示すフローチャートである。図８において、データ読み出し（Ｒｅａｄ）処理が開始されると、ステップ８０１において、ホスト計算機２０から読み出し要求のあったデータがメモリ上に存在するか否かが判定される。
【００５１】
データ読み出し（Ｒｅａｄ）処理も、データ書き込み（Ｗｒｉｔｅ）処理と同様、入出力制御モジュール（ＩＯモジュール）１３０の入出力制御部（ＩＯＣＴＬ）１８０によるハードウェア制御により行うことが可能であり、また、電源の切断後であっても、バッテリバックアップされた所定時間内は、バッテリバックアップされた主メモリ（メモリ１）に記憶された入出力制御プログラム１４１を用いて中央処理装置（ＣＰＵ）１１０がソフトウェア制御により行うことが可能である。
【００５２】
ステップ８０１において、当該データがメモリ上に存在する（Ｙｅｓ）場合には、ステップ８０４に移行し、ステップ８０４において、ホスト計算機２０に要求データを転送して、データ読み出し（Ｒｅａｄ）処理を終了する。
ステップ８０１において、当該データがメモリ上に存在しない（Ｎｏ）場合には、ステップ８０２に移行し、ステップ８０２において、揮発メモリに格納領域を確保し、ステップ８０３においてデータをストレージ装置（ドライブ）３０から揮発メモリに格納するステージング処理を行う。データ読み出し（Ｒｅａｄ）処理の場合には、データの二重書きは行わない。次に、ステップ８０４において、揮発メモリに格納した要求データ（ステージングされたデータ）をホスト計算機に転送して、データ読み出し（Ｒｅａｄ）処理を終了する。
【００５３】
図９は、本発明のストレージ制御装置のデータ読み出し（Ｒｅａｄ）処理の格納領域確保処理の内容を示すフローチャートである。図９は、図８のデータ読み出し（Ｒｅａｄ）処理のステップ８０２に対応している。図９において、データ読み出し（Ｒｅａｄ）処理の格納領域確保処理が開始されると、ステップ９０１において、格納領域管理テーブルを検索・参照し、ステップ９０２において、揮発メモリにデータサイズ分の領域を確保して、データ読み出し（Ｒｅａｄ）処理の格納領域確保処理を終了する。
【００５４】
格納領域管理テーブルは、例えば、図２のメモリ管理テーブル２００及びメモリアドレスデータテーブルに対応している。メモリ管理テーブル２００は先頭アドレス２０１、２０２は終了アドレス２０２、２０３は管理単位２０３、用途２０４等の情報を記憶し、メモリアドレスデータテーブル２１０は、キャッシュアドレス２１１、ドライブ番号２１２、ドライブアドレス２１３、ステータス２１４等の情報を記憶している。
【００５５】
格納領域管理テーブルは、管理情報として、図１の実施例１の場合には、例えば、バッテリバックアップされた主記憶装置（メモリ１）に、また、図３，４の実施例２，３の場合には、例えば、キャッシュメモリ（メモリ２）に記憶され、入出力のソフトウェア制御を行う中央処理装置（ＣＰＵ）１１０または入出力のハードウェア制御を行う入出力制御部（ＩＯＣＴＬ）により検索・参照される。
【００５６】
図１０は、本発明のストレージ制御装置のデータバックアップ用、及び、リモートコピー用のドライブデータの転送処理の内容を示すフローチャートである。図１０において、データ転送処理が開始されると、ステップ１００１において、ストレージ制御装置１００の入出力制御モジュール（ＩＯモジュール）１３０のキャッシュメモリ（メモリ２）または他系（ストレージ制御装置１０１）のメモリの格納領域確保処理を行う。
【００５７】
次に、ステップ１００２において、ストレージ装置（ドライブ）３０からデータの読み出し（Ｒｅａｄ）を行い、メモリ（例えば、実施例１のバッテリバックアップした主メモリ（メモリ１）１２０へのデータを書き込み（Ｗｒｉｔｅ）を行い、ストレージ装置（ドライブ）３０から揮発メモリへのデータを読み込むステージング処理を行う。
【００５８】
続いて、ステップ１００３において、揮発メモリに記憶されたステージングデータをメモリ２または他系のメモリに転送するデータ転送処理を行い、ステップ１００４において、揮発メモリの格納領域解放処理を行って、データ転送処理を終了する。
【００５９】
データ転送処理のステップ１００１からステップ１００４までの処理を、バッテリバックアップによりメモリの不揮発性が維持されている所定時間内に行うことにより、電源の切断があっても、データの欠落を起こすことなく、迅速かつ効率的にデータ転送処理を行うことができる。
【産業上の利用可能性】
【００６０】
本発明のストレージ制御装置及びストレージシステムは、各種メモリがネットワークで結合され、主記憶装置を備えた中央処理装置により制御を行う記憶システムに適合可能であり、全体システムの省電力化と高速化及び記憶装置の信頼性の確保、利用効率の向上に資するものである。
【図面の簡単な説明】
【００６１】
【図１】図１は、本発明の実施例１のストレージ制御装置を備えたストレージシステムの概略全体図である。
【図２】図２は、本発明のストレージ制御装置のメモリ空間の構成を示す格納領域管理テーブルの例を示す図である。
【図３】図３は、本発明の実施例２のストレージ制御装置を備えたストレージシステムの概略全体図である。
【図４】図４は、本発明の実施例３のストレージ制御装置を備えたストレージシステムの概略全体図である。
【図５】図５は、本発明のストレージ制御装置のホスト入出力（ＩＯ）処理の内容を示すフローチャートである。
【図６】図６は、本発明のストレージ制御装置のデータ書き込み（Ｗｒｉｔｅ）処理の内容を示すフローチャートである。
【図７】図７は、本発明のストレージ制御装置のデータ書き込み（Ｗｒｉｔｅ）処理の格納領域確保処理の内容を示すフローチャートである。
【図８】図８は、本発明のストレージ制御装置のデータ読み出し（Ｒｅａｄ）処理の内容を示すフローチャートである。
【図９】図９は、本発明のストレージ制御装置のデータ読み出し（Ｒｅａｄ）処理の格納領域確保処理の内容を示すフローチャートである。
【図１０】図１０は、本発明のストレージ制御装置のデータバックアップ用、及び、リモートコピー用のドライブデータの転送処理の内容を示すフローチャートである。
【図１１】図１１は、従来例の不揮発メモリを備えたストレージシステムの概略全体図である。
【符号の説明】
【００６２】
１０    ストレージ制御システム
２０，２１    ホスト計算機
３０    ストレージ装置（ドライブ）
３１，３２    ディスク装置
１００，１０１    ストレージ制御装置
１１０，１１１    中央処理装置（ＣＰＵ）
１２０，１２１    主記憶装置（メモリ１）
１３０，１３１    入出力制御モジュール（ＩＯモジュール）
１４１    プログラム
１４２    管理情報
１４３    ユーザデータ１
１４４    ユーザデータ２
１５０，１５１    キャッシュメモリ（メモリ２）
１６０，１６１    チャネルインターフェース部（チャネルＩＦＣＴＬ）
１７０，１７１    ディスクインターフェース部（ディスクＩＦＣＴＬ）
１８０，１８１    入出力制御部（ＩＯＣＴＬ）
２００    メモリ管理テーブル
２０１    先頭アドレス
２０２    終了アドレス
２０３    管理単位
２０４    用途
２１０    メモリアドレスデータテーブル
２１１    キャッシュアドレス
２１２    ドライブ番号
２１３    ドライブアドレス
２１４    ステータス
【図１】
2010122730.tif 000003
【図２】
2010122730.tif 000004
【図３】
2010122730.tif 000005
【図４】
2010122730.tif 000006
【図５】
2010122730.tif 000007
【図６】
2010122730.tif 000008
【図７】
2010122730.tif 000009
【図８】
2010122730.tif 000010
【図９】
2010122730.tif 000011
【図１０】
2010122730.tif 000012
【図１１】
2010122730.tif 000013