(57)【特許請求の範囲】
【請求項１】
プログラムを実行するための計算機、及び、記憶装置を有するデータ処理システムにおけるキャッシュ制御方法において、
前記計算機は、同起点処理部を有し、
前記記憶装置は、
前記プログラムの実行結果として転送されたデータを格納するキャッシュメモリと、キャッシュ管理テーブルを有するキャッシュ制御部と、前記キャッシュメモリに格納されたデータを格納する記憶媒体とを有し、
前記同期点処理部は、
前記記憶装置に発行可能なライトスルーモードまたはライトアフターモードを指定した書き込み要求のうち、前記プログラムによって処理されたデータの前記計算機の有するメモリに保持された更新済みデータの、ライトスルーモードでの書き込み要求を生成して転送し、前記記憶装置に未反映の前記プログラムのデータを更新し、
前記キャッシュメモリに格納された更新済みデータを前記記憶媒体に反映するために、前記キャッシュ制御部にフラッシュ命令を前記転送処理と同期したタイミングで発行し、さらに、チェックポイントまでの同期点処理の完了を前記記憶装置に記録する同期点ジャーナルの書き込みを要求するために、前記ライトスルーモードでの前記記憶装置に対する書き込み要求を生成して前記計算機から前記記憶装置に転送し、
前記記憶装置の前記キャッシュ制御部は、
前記更新済みデータの書き込み要求時に指定されるモードがライトスルーモードであるかライトアフターモードであるかの情報、前記記憶媒体の論理領域が使用するキャッシュページの格納する更新済みデータが前記記憶媒体に反映状態か未反映状態かを含む前記キャッシュページの情報を持つキャッシュ管理エントリ、及び前記キャッシュ管理エントリを指すリストの先頭ポインタを示すキャッシュポインタの情報、を格納するキャッシュ管理テーブルにおいて、前記フラッシュ命令によって処理対象として指定された前記記憶媒体の論理領域が使用する前記キャッシュページに対応するモードが、ライトアフターに一致する場合、前記同期点処理部からの前記フラッシュ命令に応じて、前記キャッシュ管理テーブル内の前記ページのキャッシュポインタで示される前記ページを前記記憶媒体に書き込み、前記キャッシュ管理テーブル内のキャッシュ管理エントリを反映状態に変更し、
前記記憶装置の前記キャッシュ制御部は、前記書き込み要求時に指示されたモードがライトアフターの場合、前記書き込み要求に応じて、データを前記キャッシュメモリに書き込み、さらに、前記キャッシュ管理テーブル内の前記キャッシュ管理エントリを未反映状態に変更し、
前記記憶装置の前記キャッシュ制御部は、前記書き込み要求時に指示されたモードがライトスルーの場合、前記書き込み要求に応じて、前記ページを前記キャッシュメモリと前記記憶媒体の双方に書き込み、その後、前記キャッシュ管理テーブル内のキャッシュ管理エントリを反映状態に変更することを特徴とするキャッシュ制御方法。
【請求項２】
請求項１記載のキャッシュ制御方法において、前記書き込み要求及び前記フラッシュ命令のそれぞれは、前記キャッシュメモリ内の領域を特定するための領域識別情報を含み、さらに、
前記書き込み要求が入力されると、前記転送されたデータは、前記書き込み要求の前記領域識別情報によって特定された領域に格納され、前記フラッシュ命令が入力されると、
前記書き込み要求の前記領域識別情報によって特定された領域に格納された前記データを前記記憶媒体に格納することを特徴とするキャッシュ制御方法。
【請求項３】
請求項２記載のキャッシュ制御方法において、前記キャッシュメモリの前記領域識別情報はボリューム識別情報及びセグメント識別情報を含むことを特徴とするキャッシュ制御方法。
【請求項４】
プログラムを実行する計算機、及び、記憶装置を有するデータ処理システムにおいて、
前記計算機は、同期点処理部を有し、
前記記憶装置は、
前記プログラムの実行結果として転送されたデータを格納するキャッシュメモリと、キャッシュ管理テーブルを有するキャッシュ制御部と、前記キャッシュメモリに格納されたデータを格納する記憶媒体とを有し、
前記同期点処理部は、
前記記憶装置に発行可能なライトスルーモードまたはライトアフターモードを指定した書き込み要求のうち、前記プログラムによって処理されたデータの前記計算機の有するメモリに保持された更新済みデータの、ライトスルーモードでの書き込み要求を生成して転送し、前記記憶装置に未反映の前記プログラムのデータを更新し、
前記キャッシュメモリに格納された更新済みデータを前記記憶媒体に反映するために、前記キャッシュ制御部にフラッシュ命令を前記転送処理と同期したタイミングで発行し、さらに、チェックポイントまでの同期点処理の完了を前記記憶装置に記録する同期点ジャーナルの書き込みを要求するために、前記ライトスルーモードでの前記記憶装置に対する書き込み要求を生成して前記計算機から前記記憶装置に転送し、
前記更新済みデータの書き込み要求時に指定されるモードがライトスルーモードであるかライトアフターモードであるかの情報、前記記憶媒体の論理領域が使用するキャッシュページの格納する更新済みデータが前記記憶媒体に反映状態か未反映状態かを含む前記キャッシュページの情報を持つキャッシュ管理エントリ、及び前記キャッシュ管理エントリを指すリストの先頭ポインタを示すキャッシュポインタの情報、を格納するキャッシュ管理テーブルにおいて、前記フラッシュ命令によって処理対象として指定された前記記憶媒体の論理領域が使用する前記キャッシュページに対応するモードが、ライトアフターに一致する場合、前記同期点処理部からの前記フラッシュ命令に応じて、前記キャッシュ管理テーブル内の前記ページのキャッシュポインタで示される前記ページを前記記憶媒体に書き込み、前記キャッシュ管理テーブル内のキャッシュ管理エントリを反映状態に変更し、
前記記憶装置の前記キャッシュ制御部は、前記書き込み要求時に指示されたモードがライトアフターの場合、前記書き込み要求に応じて、データを前記キャッシュメモリに書き込み、さらに、前記キャッシュ管理テーブル内の前記キャッシュ管理エントリを未反映状態に変更し、
前記記憶装置の前記キャッシュ制御部は、前記書き込み要求時に指示されたモードがライトスルーの場合、前記書き込み要求に応じて、前記ページを前記キャッシュメモリと前記記憶媒体の双方に書き込み、その後、前記キャッシュ管理テーブル内のキャッシュ管理エントリを反映状態に変更することを特徴とするデータ処理システム。
【請求項５】
請求項４記載のデータ処理システムにおいて、前記書き込み要求及び前記フラッシュ命令のそれぞれは、前記キャッシュメモリ内の領域を特定するための領域識別情報を含み、さらに、
前記書き込み要求が入力されると、前記転送されたデータは、前記書き込み要求の前記領域識別情報によって特定された領域に格納され、前記フラッシュ命令が入力されると、
前記書き込み要求の前記領域識別情報によって特定された領域に格納された前記データを前記記憶媒体に格納することを特徴とするデータ処理システム。
【請求項６】
請求項５記載のデータ処理システムにおいて、前記キャッシュメモリの前記領域識別情報はボリューム識別情報及びセグメント識別情報を含むことを特徴とするデータ処理システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はキャッシュメモリを有する記憶装置のキャッシュフラッシュ処理を、記憶装置外部のタイミングで実施するキャッシュ制御技術に関する。
【背景技術】
【０００２】
特許文献1で述べられているように、電源が遮断されたタイミングで、ディスク記憶装置を停止するためにディスク記憶装置内のキャッシュメモリの内容を磁気ディスクに強制的にキャッシュをフラッシュするキャッシュ制御方式が開示されている。
【０００３】
【特許文献１】特開平10-254780号
【発明の開示】
【発明が解決しようとする課題】
【０００４】
上記従来技術は、データ処理装置で稼動するプログラムから記憶装置に対してフラッシュ指示ができないという問題があった。
本発明の目的は、記憶装置外部からプログラムの処理のタイミングでキャッシュメモリから記録媒体への書き込みを実施することにある。
【課題を解決するための手段】
【０００５】
上記目的を達成するために、上位装置のアプリケーションプログラムの同期点処理において、記憶装置に付属するキャッシュへのフラッシュ指示をするようにして、アプリケーションの同期点処理とフラッシュ処理を連動させるようにしたものである。
【発明の効果】
【０００６】
本発明によれば、記憶装置外部からプログラムの処理のタイミングでキャッシュメモリから記録媒体への書き込みを実施することが可能となる。
【発明を実施するための最良の形態】
【０００７】
以下、本発明の実施例を図面に基づいて詳細に説明する。図１は本発明の一実施例である上位装置と記憶装置の構成を示すブロック図である。本実施例では、上位装置１０と記憶装置１１で構成されており、上位装置１０ではアプリケーションプログラム１００が稼動し、アプリケーションプログラム１００には読出／書込処理部１０１と同期点処理部１０２が割り当てられている。書込／読出処理部１０１は記憶装置１１に読出要求１０３や書込要求１０４を発行する。同期点処理部１０２は記憶装置１１に書込要求１０５やフラッシュ指示１０６を発行する。記憶装置１１にはキャッシュ制御部１１０とキャッシュメモリ１２０と記憶媒体１３０が割り当てられている。キャッシュ制御部１１０はキャッシュ管理テーブル１１７を参照してヒット判定１１３、キャッシュメモリメモリ１２０に対するキャッシュ読出１１３やキャッシュ書込１１４、記憶媒体１３０に対する媒体読出１１５や媒体書込１１６を行う。キャッシュメモリ１２０はボリューム毎の区画１２１に分かれる、更に細分化したＬＵ単位の区画１２２（ＬＵ：論理ユニット）に分かれて、ＬＵ内はＬＢＡ（ＬＢＡ：論理ブロックアドレス）が記憶されている。記憶媒体１３０は複数のボリューム１３１を有する。本実施例ではキャッシュメモリ１２０をボリューム単位の区画１２１やＬＵ単位の区画１２２に分ける実施例を示したが、ボリューム単位の区画１２１やＬＵ単位の区画１２２に分けなくてもよい。ここで説明した各処理部は、プログラムを一例として説明しているが、オブジェクトやプロセス、スレッド、ハードウェアなどで実現しても良い。
【０００８】
データベース管理システムなどでは、障害に備え、定期的にＤＢの整合性を保証する為、稼動中にチェックポイントを取得する。チェックポイントは、システム障害時の再開始処理を行う起点となるデータベースの整合性が保証されたポイントとなる。主にチェックポイントは稼動中に出力したログブロック数がある一定の回数に達した時点に取得する場合が多い。チェックポイント処理では、その時点のデータベースバッファにおける更新が行われたデータベースブロックを記憶装置上に全て書き出す処理が行われる。アプリケーションプログラム１００として、データベース管理システムが利用された場合、フラッシュ指示１０６として上記のチェックポイント処理が効力を発揮する。例えば、データベース管理システムで書き込んだデータを、フラッシュ指示１０６として上記のチェックポイントが発生したタイミングを用いてフラッシュ指示を実施することにより、チェックポイント毎にキャッシュメモリにおけるデータベース管理システムで書き込んだデータがディスクへフラッシュされることになる。このようにすることにより、電源断の発生やシステムを停止する場合に、ディスクへのフラッシュが行われているため、記憶媒体１３０を停止する時間を短縮することが可能となる。
【０００９】
図２は同期点処理部１０２における同期点処理の流れを示す。アプリケーションプログラム１００のメモリに保持され記憶装置１１に未反映の更新データをｗｒｉｔｅ  ｔｈｏｕｇｈモードで書込要求１０４を出し（ステップ２１）、記憶媒体１３０に未反映のキャッシュメモリ１２０上のページを記憶媒体１３０に反映するために記憶装置１１にフラッシュ指示１０５を出し（ステップ２２）、記憶装置１１に当該同期点処理が終了したことを記録する同期点ジャーナルをｗｒｉｔｅ  ｔｈｏｕｇｈモードで記憶装置１１に書込要求１０４を出す（ステップ２３）。
【００１０】
図３はキャッシュ制御部１１０によるフラッシュ指示処理の流れを示す。キャッシュ管理テーブル１１７のファイル管理部５１を走査して最初のファイル５０１の情報を参照し（ステップ３０１）、フラッシュ指示１０５で指定されたボリュームとボリューム５０２が一致する又はボリュームの指定がない条件が成立しなければ次のファイル５０１の走査に戻り、条件が成立すれば次の処理に進み（ステップ３０２）、フラッシュ指示１０５で指定されたＬＵとＬＵ５０３が一致する又はＬＵの指定がない条件が成立しなければ次のファイル５０１の走査に戻り、条件が成立すれば次の処理に進み（ステップ３０３）、モード５０５がｗｒｉｔｅ  ａｆｔｅｒに一致しなければ記憶媒体１３０に反映されているので次のファイル５０１の走査に戻り、モード５０５がｗｒｉｔｅ  ａｆｔｅｒに一致すれば次の処理に進み（ステップ３０４）、キャッシュメモリポインタ５０６がキャッシュ管理エントリ５２を指していなければ次のファイル５０１の走査に戻り、キャッシュメモリポインタ５０６がキャッシュ管理エントリ５２を指していれば次の処理に進む（ステップ３０５）。
【００１１】
次にキャッシュ管理エントリ５３を参照し（ステップ３０６）、当該キャッシュ管理エントリ５３の指すページ５１２が記憶媒体１３０に反映済であれば次のキャッシュ管理エントリ５２の走査に戻り、記憶媒体１３０へ未反映であれば次の処理に進み（ステップ３０７）、当該キャッシュ管理エントリ５３の指すページ５１２を記憶媒体１３０に媒体書込１１６を行って、キャッシュ管理エントリ５３を反映済に変更し（ステップ３０８）、ネクストポインタ５１１があれば次のキャッシュ管理エントリ５２の走査に戻り、ネクストポインタ５１１がなければ次の処理に進み（ステップ３０９）、ファイル管理部５１の全てのファイルを走査していなければ次のファイル５０１の走査に戻り、全てのファイルを走査していればフラッシュ指示処理を終了する（ステップ３１０）。
【００１２】
図４はキャッシュ制御部１１０による書込要求処理の流れを示す。キャッシュ管理テーブル１１７のファイル管理部５１を走査して書込要求１０４で指定されたファイルと一致するファイル５０１を検索してキャッシュポインタ５０６を取得して（ステップ４０１）、書き込みデータと突き合わせて対応するキャッシュ管理エントリ５３を検索し（ステップ４０２）、書き込みデータに対応するキャッシュ管理エントリ５３がヒットすれば次の処理進み、書き込みデータに対応するキャッシュ管理エントリ５３がヒットしなければ（ステップ４０３）、新規キャッシュ管理エントリ５３及びキャッシュメモリページの確保とキャッシュ管理エントリ５３のリストメンテナンスを行い（ステップ４０４）、書込要求１０４時に指定されたモードがｗｒｉｔｅ  ａｆｔｅｒであればステップ４０６の処理に分岐し（ステップ４０５）、書き込みデータをキャッシュメモリ１２０にキャッシュ書込１１４して（ステップ４０６）、キャッシュ管理エントリ５３を未反映５１２に変更し（ステップ４０８）、ステップ４１０の処理に進む。一方、書込要求１０４時に指定されたモードがｗｒｉｔｅ  ｔｈｒｏｕｇｈであればステップ４０７の処理に分岐し（ステップ４０５）、書き込みデータをキャッシュメモリ１２０にキャッシュ書込１１４すると共に記憶媒体１３０に媒体書込１１６を行い（ステップ４０７）、キャッシュ管理エントリ５３を反映済５１２に変更し（ステップ４０９）、ステップ４１０の処理に進む。書き込みデータの全てについてキャッシュ管理エントリ５３と突合せ検索が終っていなければ突合せ検索に戻り、終っていれば次の処理に進み（ステップ４１０）、書込要求１０４時に指定されたモードをモード５０５に設定し（ステップ４１１）、書込要求処理を終了する。
【００１３】
図５はキャッシュ制御部１１０におけるキャッシュ管理テーブル１１７のデータ構造図を示す。キャッシュ管理テーブル１１７はファイル管理部５１とキャッシュ管理部５２からなる。ファイル管理部５１において、ファイル５０１はファイル名を保持し、ボリューム５０２はファイルの格納ボリュームを示し、ＬＵ５０３は格納ＬＵを示し、ＬＢＡ５０４は格納ＬＢＡを示し、モード５０５はファイル書込要求時に記憶媒体１３０とキャッシュメモリ１２０の両方に書き込み動作を行うｗｒｉｔｅ  ｔｈｒｏｕｇｈモードと書込要求時はキャッシュメモリ１２０のみに書き込み、フラッシュ時に記憶媒体１４０に書き込み動作を行うｗｒｉｔｅ  ａｆｔｅｒモードがある。キャッシュポインタ５０６は、当該ファイルで使用しているキャッシュ管理エントリ５３を指すリストの先頭ポインタを保持する。キャッシュ管理部５２は対応するキャッシュページの情報を持つ複数のキャッシュ管理エントリ５３からなる。ネクストポインタ５１１は当該ファイル５０１の次のキャッシュ管理エントリ５３を指す。ページ５１２はキャッシュメモリ１２０内のページを示す。ＬＢＡ５１３は記憶媒体１３０の格納位置を示す。反映済又は未反映５１４は当該キャッシュメモリページが記憶媒体１３０に反映された状態（内容が一致する）であるか、反映されていない状態（内容が不一致）であるかを保持する。
【００１４】
以上によれば、記憶装置のキャッシュメモリの内容が失われる障害発生してもアプリケーションプログラムの同期点までの更新内容が記録媒体に書き込まれていることを保証できるため、障害後のアプリケーションプログラムの回復処理では回復開始地点を正確に決めることができる。
【００１５】
また、アプリケーションプログラムの制御により逐次キャッシュフラッシュが行えるため、大量のキャッシャメモリを有する記憶装置における電源停止時にアプリケーションの制御に因らずにキャッシュに蓄積された大量の更新データのフラッシュ処理より、停止処理に時間を要する問題を回避することができる。
【図面の簡単な説明】
【００１６】
【図１】本発明の一実施例である上位装置と記憶装置の構成を示すブロック図である。
【図２】本発明の一実施例である上位装置のアプリケーションの同期点処理を示すフローチャートである。
【図３】本発明の一実施例による記憶装置のフラッシュ指示処理を示すフローチャートである。
【図４】本発明の一実施例による記憶装置の書込要求処理を示すフローチャートである。
【図５】本発明の一実施例によるキャッシュ管理テーブルのデータ構造図である。
【符号の説明】
【００１７】
１０  上位装置
１００  アプリケーションプログラム
１０１  読出／書込処理部
１０２  同期点処理部
１１  記憶装置
１１０  キャッシュ制御部
１２０  キャッシュメモリ
１３０  記憶媒体
【図１】
0004892812.tif 000002
【図２】
0004892812.tif 000003
【図３】
0004892812.tif 000004
【図４】
0004892812.tif 000005
【図５】
0004892812.tif 000006