(57)【要約】【課題】ディスクキャッシュにおいて、キャッシュページの排他制御を行うことによって生じるライトＩ／Ｏ命令完了応答の遅延を軽減し、常にキャッシュヒットライトの応答性能を保証する。【解決手段】キャッシュメモリ２４０がキャッシュページ０〜Ｎとは別に擬似キャッシュページＡ〜Ｊを有し、キャッシュメモリ管理手段２３１がキャッシュページ０〜Ｎの１つに競合し且つキャッシュページ排他制御手段２３３により退けられたライトＩ／Ｏ命令を受け入れてデータを擬似キャッシュページＡ〜Ｊの１つに書き込む機能を備え、完了通知手段２３２が擬似キャッシュページＡ〜Ｊの１つにデータが書き込まれたタイミングでＩ／Ｏ命令の完了通知を出力する機能を備えている。【選択図】図１
2008234532.tif 000002
【特許請求の範囲】
【請求項１】
上位装置とメインメモリとの間で入出力されるデータを一時格納するキャッシュメモリを備え、このキャッシュメモリが幾つかのキャッシュページで分割されたキャッシュ領域を有したキャッシュメモリ装置において、
前記キャッシュメモリが前記上位装置からの前記メインメモリに対するライトＩ／Ｏ命令に従って前記データを対応するキャッシュページに書き込み非同期で前記メインメモリに転送するキャッシュメモリ管理手段と、前記キャッシュページに前記データが書き込まれたタイミングで前記Ｉ／Ｏ命令の完了通知を前記上位装置へ出力する完了通知手段と、前記上位装置からのＩ／Ｏ命令の処理中にこの処理に係るキャッシュページが別のＩ／Ｏ命令によるアクセスを受けないように前記キャッシュページを排他制御するキャッシュページ排他制御手段とを備え、
前記キャッシュメモリが前記キャッシュ領域とは別の記憶領域である擬似キャッシュページを有し、前記キャッシュメモリ管理手段が、前記キャッシュページの１つに競合し且つ前記キャッシュページ排他制御手段により退けられたライトＩ／Ｏ命令を受け入れて前記擬似キャッシュページにデータを書き込む機能を備え、前記完了通知手段が、前記擬似キャッシュページに前記データが書き込まれたタイミングで前記Ｉ／Ｏ命令の完了通知を出力する機能を備えたことを特徴とするキャッシュメモリ装置。
【請求項２】
前記請求項１に記載のキャッシュメモリ装置において、
前記キャッシュメモリ管理手段が、前記擬似キャッシュページに記憶されたデータを、対応するキャッシュページの排他状態が前記キャッシュページ排他制御手段により解除されたタイミングで当該キャッシュページへ書き込む機能を備えたことを特徴とするキャッシュメモリ装置。
【請求項３】
前記請求項１又は２に記載のキャッシュメモリ装置において、
前記擬似キャッシュページが前記キャッシュページと同様の固定長区画であることを特徴とするキャッシュメモリ装置。
【請求項４】
前記請求項１乃至３のいずれか一項に記載のキャッシュメモリ装置において、
前記キャッシュメモリ管理手段が、前記擬似キャッシュページに前記データを書き込むタイミングでこの擬似キャッシュページを当該データにかかるキャッシュページに対応付ける機能を有したことを特徴とするキャッシュメモリ装置。
【請求項５】
前記請求項１乃至４のいずれか一項に記載のキャッシュメモリ装置において、
前記キャッシュメモリ管理手段が、前記排他状態のキャッシュページに対してさらにライトＩ／Ｏ命令が競合した場合にそのキャッシュページに対応付けられた擬似キャッシュページにデータを書き込み当該擬似キャッシュページ内のデータを統合する機能を備えたことを特徴とするキャッシュメモリ装置。
【請求項６】
上位装置とメインメモリとの間で入出力されるデータを一時格納するキャッシュメモリを備え、このキャッシュメモリが幾つかのキャッシュページで分割されたキャッシュ領域を有したキャッシュメモリ装置にあって、前記上位装置からのＩ／Ｏ命令の処理中にこの処理に係るキャッシュページが別のＩ／Ｏ命令によるアクセスを受けないように前記キャッシュページを排他制御するキャッシュ管理方法において、
前記上位装置からの前記メインメモリに対するライトＩ／Ｏ命令を入力するライトＩ／Ｏ入力ステップと、
このライトＩ／Ｏ命令が指定するキャッシュページが排他状態に設定されている場合に、前記キャッシュメモリの記憶領域のうち前記キャッシュページとは別に確保された領域である擬似キャッシュページに前記ライトＩ／Ｏ命令に係るデータを書き込む擬似キャッシュページ書込ステップと、
前記擬似キャッシュページに前記データが書き込まれたタイミングで前記Ｉ／Ｏ命令の完了通知を前記上位装置へ出力する擬似完了通知ステップを設けたことを特徴とするキャッシュ管理方法。
【請求項７】
前記請求項６に記載のキャッシュ管理方法において、
前記擬似完了通知ステップ後に、前記擬似キャッシュページに記憶されたデータを、対応するキャッシュページの排他状態が解除されたタイミングで当該キャッシュページへ書き込むキャッシュページ書込ステップを設けたことを特徴とするキャッシュ管理方法。
【請求項８】
前記請求項６又は７に記載のキャッシュ管理方法において、
前記擬似キャッシュページが前記キャッシュページと同様の固定長区画であることを特徴とするキャッシュ管理方法。
【請求項９】
前記請求項６乃至８のいずれか一項に記載のキャッシュ管理方法において、
前記擬似キャッシュページに前記データを書き込むタイミングでこの擬似キャッシュページを当該データにかかるキャッシュページに対応付ける擬似キャッシュページ対応付けステップを設けたことを特徴とするキャッシュ管理方法。
【請求項１０】
前記請求項６乃至９のいずれか一項に記載のキャッシュ管理方法において、
前記排他状態のキャッシュページに対してさらにライトＩ／Ｏ命令が競合した場合には、そのキャッシュページに対応付けられた擬似キャッシュページにデータを書き込み当該擬似キャッシュページ内のデータを統合するデータ統合ステップを設けたことを特徴とするキャッシュ管理方法。
【請求項１１】
上位装置とメインメモリとの間で入出力されるデータを一時格納するキャッシュメモリを備え、このキャッシュメモリが幾つかのキャッシュページで分割されたキャッシュ領域を有したキャッシュメモリ装置の動作を制御するコンピュータに、
前記上位装置からの前記メインメモリに対するライトＩ／Ｏ命令を入力するＩ／Ｏ命令入力処理と、このライトＩ／Ｏ命令に従って前記データを対応するキャッシュページに書き込むデータ書込処理と、前記キャッシュページに前記データが書き込まれたタイミングで前記Ｉ／Ｏ命令の完了通知を前記上位装置へ出力する完了通知処理と、このキャッシュページに記憶されたデータを非同期で前記メインメモリに転送するデータ転送処理と、前記上位装置からのＩ／Ｏ命令の処理中にこの処理に係るキャッシュページが別のＩ／Ｏ命令によるアクセスを受けないように前記キャッシュページを排他制御するキャッシュページ排他制御処理とを実行させると共に、
前記キャッシュページの１つに競合し且つ前記キャッシュページ排他制御処理により退けられたライトＩ／Ｏ命令を受け入れて、前記キャッシュメモリの記憶領域のうち前記キャッシュページとは別に確保された領域である擬似キャッシュページにデータを書き込む擬似キャッシュページ書込処理と、前記擬似キャッシュページに前記データが書き込まれたタイミングで前記Ｉ／Ｏ命令の完了通知を出力する擬似完了通知処理とを実行させることを特徴とするキャッシュ管理用プログラム。
【請求項１２】
前記請求項１１に記載のキャッシュ管理用プログラムにおいて、
前記擬似キャッシュページに記憶されたデータを、対応するキャッシュページの排他状態が前記キャッスページ排他制御処理により解除されたタイミングで当該キャッシュページへ書き込むキャッシュページ書込処理を前記コンピュータに実行させることを特徴とするキャッシュ管理用プログラム。
【請求項１３】
前記請求項１０又は１２に記載のキャッシュ管理用プログラムにおいて、
前記擬似キャッシュページを前記キャッシュページと同様の固定長区画とすることを特徴とするキャッシュ管理用プログラム。
【請求項１４】
前記請求項１０乃至１３のいずれか一項に記載のキャッシュ管理用プログラムにおいて、
前記擬似キャッシュページに前記データを書き込むタイミングでこの擬似キャッシュページを当該データにかかるキャッシュページに対応付ける擬似キャッシュページ対応付け処理を前記コンピュータに実行させることを特徴とするキャッシュ管理用プログラム。
【請求項１５】
前記請求項１０乃至１４のいずれか一項に記載のキャッシュ管理用プログラムにおいて、
前記排他状態のキャッシュページに対してさらにライトＩ／Ｏ命令が競合した場合に、そのキャッシュページに対応付けられた擬似キャッシュページにデータを書き込み当該擬似キャッシュページ内のデータを統合するデータ統合処理を前記コンピュータに実行させることを特徴とするキャッシュ管理用プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、上位装置からのメイン記憶装置に対するＩ／Ｏ命令に応じてデータを一時格納し転送するキャッシュメモリ装置及びそのキャッシュ管理方法，キャッシュ管理用プログラムに関し、特に、キャッシュメモリのＩ／Ｏ命令に対する排他制御を実行するキャッシュメモリ装置及びそのキャッシュ管理方法，キャッシュ管理用プログラムに関する。
【背景技術】
【０００２】
従来、ディスクアレイ装置では、Ｉ／Ｏ命令を高速に処理するためのキャッシュメモリを搭載し、ホストからのリードＩ／Ｏ命令に対してキャッシュヒットすれば、低速のディスクアレイにアクセスせずにデータをホストへ出力することで高速レスポンスを可能とし、ホストからのライトＩ／Ｏ命令に対しても、キャッシュメモリにデータを書き込んだ時点でライトＩ／Ｏ命令の完了を出力し、そのデータを非同期でディスクアレイに転送し格納することで高速レスポンスを可能としている。
【０００３】
このような従来技術を用いたものとして、例えば、キャッシュメモリ上の管理情報をローカルメモリ内にも記録して２元管理することでさらに高速レスポンスを可能としている記憶制御装置が特許文献１に開示されている。
【０００４】
また、特許文献２には、コントローラを多重化した記憶サブシステムであって、コントローラごとに使用するキャッシュ領域を個別に割り当てることにより、別々のコントローラからのＩ／Ｏ命令がキャッシュメモリに競合することをなくし、レスポンスの遅延を軽減した記憶サブシステムが開示されている。
【０００５】
また、特許文献３には、複数のホストディレクタとこれらホストディレクタに共有されたディスクキャッシュの共有メモリを搭載したディスクアレイ装置であって、共有メモリ内のキャッシュページのオープン／クローズ処理について示す管理情報を、共有メモリ内に記録せずに、各ホストディレクタのローカルメモリに記録してキャッシュページは定常オープン状態にしておくことで、キャッシュページの管理情報へのアクセス時間を短縮したディスクアレイ装置が開示されている。
【０００６】
【特許文献１】特開２００１‐１６６９９３号公報
【特許文献２】特開平９‐１４６８４２号公報
【特許文献１】特開２００３‐２２８４６１号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
しかしながら、これら開示された従来技術では、キャッシュメモリ使用における同一キャッシュページへのＩ／Ｏ命令競合時の排他制御によるレスポンス遅延については改善されていないという課題があった。
【０００８】
例えば、図１１に示すような、キャッシュメモリ２４０のデータ格納領域２４１を固定長区画のキャッシュページ０〜Ｎに区切ってメモリ使用の排他制御を行う主制御部２５０を備えた従来のストレージ装置は、ホスト側のサーバ１００からライトＩ／Ｏ命令を入力すると、Ｉ／Ｏ長を処理可能な数のキャッシュページ１を取得してデータを受け取り、そのデータを用いてＲＡＩＤ処理を行いディスクエンクロージャ３００内の物理ディスク（ＰＤ）へ書き込みを行っていた。
【０００９】
このような従来の装置において、キャッシュページ０〜Ｎを１ページあたり６４セクタ（３２ＫＢ）の固定長と仮定すると、ホスト側のサーバ１００から１セクタのシーケンシャルライトＩ／Ｏ命令が連続で発行された場合、最初の１セクタを処理するためのキャッシュページ１が選択され、この１セクタを処理して物理ディスク（ＰＤ）に書き終えるまでこのキャッシュページ１は排他され、次の１セクタのライトＩ／Ｏ命令が待機状態になる。
【００１０】
このキャッシュページ単位の排他制御は、使用中のキャッシュページに対して、別のＩ／Ｏ命令がアクセスしたり、追い出し処理を実行したりするのを防ぐための処理であるが、この排他制御によるライトＩ／Ｏ命令の待機によってレスポンスの遅延が生じてしまい、さらに悪化するとＩ／Ｏエラーとなってしまうという問題があった。
【００１１】
［目的］
そこで、本発明は、上記従来技術の問題を改善し、ディスクキャッシュにおいて、キャッシュページの排他制御によって生じるライトＩ／Ｏ命令完了応答の遅延を軽減し、常にキャッシュヒットライトの応答性能を保証することを、その目的とする。
【課題を解決するための手段】
【００１２】
上記目的を達成するため、本発明のキャッシュメモリ装置は、上位装置とメインメモリとの間で入出力されるデータを一時格納するキャッシュメモリを備え、このキャッシュメモリが幾つかのキャッシュページで分割されたキャッシュ領域を有したキャッシュメモリ装置であり、上位装置からのメインメモリに対するライトＩ／Ｏ命令に従ってデータを対応するキャッシュページに書き込み非同期でメインメモリに転送するキャッシュメモリ管理手段と、キャッシュページにデータが書き込まれたタイミングでＩ／Ｏ命令の完了通知を上位装置へ出力する完了通知手段と、上位装置からのＩ／Ｏ命令の処理中にこの処理に係るキャッシュページが別のＩ／Ｏ命令によるアクセスを受けないようにキャッシュページを排他制御するキャッシュページ排他制御手段とを備え、上記のキャッシュメモリがキャッシュ領域とは別の記憶領域である擬似キャッシュページを有し、キャッシュメモリ管理手段が、キャッシュページの１つに競合し且つキャッシュページ排他制御手段により退けられたライトＩ／Ｏ命令を受け入れて擬似キャッシュページにデータを書き込む機能を備え、完了通知手段が、擬似キャッシュページにデータが書き込まれたタイミングでＩ／Ｏ命令の完了通知を出力する機能を備えたことを特徴とする。
【００１３】
このようなキャッシュメモリ装置によれば、キャッシュメモリがキャッシュページとは別の記憶領域として擬似キャッシュページを有し、キャッシュページの１つに競合し且つキャッシュページ排他制御手段により退けられたライトＩ／Ｏ命令を、キャッシュメモリ管理手段が受け入れて擬似キャッシュページにデータを書き込み、擬似キャッシュページにデータが書き込まれたタイミングで完了通知手段がＩ／Ｏ命令の完了通知を出力するので、キャッシュページの排他制御によって生じるライトＩ／Ｏ命令完了応答の遅延を軽減できる。
【００１４】
また、上記のキャッシュメモリ装置において、上述したキャッシュメモリ管理手段が、擬似キャッシュページに記憶されたデータを、対応するキャッシュページの排他状態がキャッシュページ排他制御手段により解除されるタイミングで当該キャッシュページへ書き込む機能を備えてもよい。
【００１５】
このようにすると、擬似キャッシュページは、キャッシュページがＩ／Ｏ処理を完了するまでの時間のみデータを記憶しておけばよいので、記憶容量を小さくすることができる。
【００１６】
また、上記のキャッシュメモリ装置において、上述した擬似キャッシュページがキャッシュページと同様の固定長区画であってもよい。このようにすると、擬似キャッシュページをキャッシュページの１つにリンクさせることができ、対応するキャッシュページに容易にデータを転送することができる。
【００１７】
また、上記のキャッシュメモリ装置において、上述したキャッシュメモリ管理手段が、擬似キャッシュページにデータを書き込むタイミングでこの擬似キャッシュページを当該データに対応するキャッシュページに対応付ける機能を備えてもよい。このようにすると、データを格納している擬似キャッシュページにキャッシュページをリンクさせることができ、擬似キャッシュページ内のデータをそのまま対応するキャッシュページへ転送することができる。
【００１８】
また、上記のキャッシュメモリ装置において、上述したキャッシュメモリ管理手段が、排他状態のキャッシュページに対して新たにライトＩ／Ｏ命令が競合した場合にそのキャッシュページに対応付けられた擬似キャッシュページにデータを書き込み当該擬似キャッシュページ内のデータを統合する機能を備えてもよい。このようにすれば、排他状態のキャッシュページに対していくらライトＩ／Ｏ命令が競合しても、完了応答の遅延を生じることはない。
【００１９】
次に、本発明のキャッシュ管理方法は、上位装置とメインメモリとの間で入出力されるデータを一時格納するキャッシュメモリを備え、このキャッシュメモリが幾つかのキャッシュページで分割されたキャッシュ領域を有したキャッシュメモリ装置にあって、上位装置からのＩ／Ｏ命令の処理中にこの処理に係るキャッシュページが別のＩ／Ｏ命令によるアクセスを受けないようにキャッシュページを排他制御するキャッシュ管理方法であり、上位装置からのメインメモリに対するライトＩ／Ｏ命令を入力するライトＩ／Ｏ入力ステップと、このライトＩ／Ｏ命令が指定するキャッシュページが排他状態に設定されている場合に、キャッシュメモリの記憶領域のうちキャッシュページとは別に確保された領域である擬似キャッシュページにライトＩ／Ｏ命令が示すデータを書き込む擬似キャッシュページ書込ステップと、擬似キャッシュページにデータが書き込まれたタイミングでＩ／Ｏ命令の完了通知を上位装置へ出力する擬似完了通知ステップを設けたことを特徴とする。
【００２０】
また、上記のキャッシュ管理方法においては、上述した完了通知ステップ後に、擬似キャッシュページに記憶されたデータを、対応するキャッシュページの排他状態が解除されるタイミングで当該キャッシュページへ書き込むキャッシュページ書込ステップを設けてもよい。
【００２１】
また、上記のキャッシュ管理方法において、上述した擬似キャッシュページがキャッシュページと同様の固定長区画であってもよい。
【００２２】
また、上記のキャッシュ管理方法においては、擬似キャッシュページにデータを書き込むタイミングでこの擬似キャッシュページを当該データに対応するキャッシュページに対応付ける擬似キャッシュページ対応付けステップを設けてもよい。
【００２３】
また、上記のキャッシュ管理方法においては、排他状態のキャッシュページに対して新たにライトＩ／Ｏ命令が競合した場合には、そのキャッシュページに対応付けられた擬似キャッシュページにデータを書き込み当該擬似キャッシュページ内のデータを統合するデータ統合ステップを設けてもよい。
【００２４】
このようなキャッシュ管理方法によれば、ライトＩ／Ｏ命令が指定するキャッシュページが排他状態である場合に、予めキャッシュメモリ内に確保された擬似キャッシュページにライトＩ／Ｏ命令が示すデータを書き込み、擬似キャッシュページにデータが書き込まれたタイミングでＩ／Ｏ命令の完了通知を出力するので、上述したキャッシュメモリ装置と同様に、キャッシュページの排他制御によって生じるライトＩ／Ｏ命令完了応答の遅延を軽減できる。
【００２５】
次に、本発明のキャッシュ管理用プログラムは、上位装置とメインメモリとの間で入出力されるデータを一時格納するキャッシュメモリを備え、このキャッシュメモリが幾つかのキャッシュページで分割されたキャッシュ領域を有したキャッシュメモリ装置の動作を制御するコンピュータに、上位装置からのメインメモリに対するライトＩ／Ｏ命令を入力するＩ／Ｏ命令入力処理と、このライトＩ／Ｏ命令に従ってデータを対応するキャッシュページに書き込むデータ書込処理と、キャッシュページにデータが書き込まれたタイミングでＩ／Ｏ命令の完了通知を上位装置へ出力する完了通知処理と、このキャッシュページに記憶されたデータを非同期でメインメモリに転送するデータ転送処理と、上位装置からのＩ／Ｏ命令の処理中にこの処理に係るキャッシュページが別のＩ／Ｏ命令によるアクセスを受けないようにキャッシュページを排他制御するキャッシュページ排他制御処理とを実行させると共に、キャッシュページの１つに競合し且つキャッシュページ排他制御処理により退けられたライトＩ／Ｏ命令を受け入れて、キャッシュメモリの記憶領域のうちキャッシュページとは別に確保された領域である擬似キャッシュページにデータを書き込む擬似キャッシュページ書込処理と、擬似キャッシュページにデータが書き込まれたタイミングでＩ／Ｏ命令の完了通知を出力する擬似完了通知処理とを実行させることを特徴とする。
【００２６】
また、上記のキャッシュ管理用プログラムにおいては、擬似キャッシュページに記憶されたデータを、対応するキャッシュページの排他状態がキャッシュページ排他制御処理により解除されるタイミングで当該キャッシュページへ書き込むキャッシュページ書込処理をコンピュータに実行させてもよい。
【００２７】
また、上記のキャッシュ管理用プログラムにおいて、上述した擬似キャッシュページをキャッシュページと同様の固定長区画としてもよい。
【００２８】
また、上記のキャッシュ管理用プログラムにおいては、擬似キャッシュページにデータを書き込むタイミングでこの擬似キャッシュページを当該データに対応するキャッシュページに対応付ける擬似キャッシュページ対応付け処理をコンピュータに実行させてもよい。
【００２９】
また、上記のキャッシュ管理用プログラムにおいて、排他状態のキャッシュページに対して新たにライトＩ／Ｏ命令が競合した場合に、そのキャッシュページに対応付けられた擬似キャッシュページにデータを書き込み当該擬似キャッシュページ内のデータを統合するデータ統合処理をコンピュータに実行させてもよい。
【００３０】
このようなキャッシュ管理用プログラムによれば、キャッシュページの１つに競合し且つキャッシュページ排他制御処理により退けられたライトＩ／Ｏ命令を受け入れて、キャッシュメモリの記憶領域のうちキャッシュページとは別に確保された領域である擬似キャッシュページにデータを書き込み、擬似キャッシュページにデータが書き込まれたタイミングでＩ／Ｏ命令の完了通知を出力するので、上述したキャッシュメモリ装置と同様に、キャッシュページの排他制御によって生じるライトＩ／Ｏ命令完了応答の遅延を軽減できる。
【発明の効果】
【００３１】
本発明は以上のように構成され機能するため、これにより、キャッシュページの１つに競合し且つ排他制御により退けられたライトＩ／Ｏ命令を待機させずに受け入れて、キャッシュメモリの記憶領域のうちキャッシュページとは別に確保された領域である擬似キャッシュページにデータを書き込み、この擬似キャッシュページにデータが書き込まれたタイミングでＩ／Ｏ命令の完了通知を出力するので、キャッシュページの排他制御を行うことによって生じるライトＩ／Ｏ命令完了応答の遅延をなくし、常にキャッシュヒットライトの応答性能を保証することができる。
【発明を実施するための最良の形態】
【００３２】
以下、本発明における一実施形態を、図面を参照して説明する。
【００３３】
図１は、本実施形態のキャッシュメモリ装置の構成を示すブロック図である。本実施形態のキャッシュメモリ装置２００は、図１に示すように、上位装置であるサーバ１００と接続されたストレージ装置４００内に搭載され、メインメモリに相当するデスクアレイを搭載したディスクエンクロージャ３００とディスクアダプタ４０２を介して接続しており、ホストアダプタ４０１を介してサーバ１００と接続している。
【００３４】
本実施形態のキャッシュメモリ装置２００は、キャッシュメモリ装置２００の動作を制御する主制御部２３０と、サーバ１００とディスクエンクロージャ３００との間で入出力されるデータを一時格納するキャッシュメモリ２４０とを備えて構成されている。
【００３５】
キャッシュメモリ２４０は、固定長のキャッシュページ０〜Ｎで分割されたキャッシュ領域２４１を有し、このキャッシュページ０〜Ｎを管理するためのコントロールデータ２４０Ａを記憶している。そしてさらに、キャッシュメモリ２４０は、固定長の擬似キャッシュページＡ〜Ｊからなる擬似キャッシュ領域２４２をキャッシュページ０〜Ｎとは別に有し、この擬似キャッシュページＡ〜Ｊを管理するための擬似キャッシュコントロールデータ２４０Ｂを記憶している。
【００３６】
主制御部２３０は、サーバ１００からのディスクエンクロージャ３００に対するライトＩ／Ｏ命令に従ってキャッシュページ０〜Ｎのうち対応するページにデータを書き込み非同期で対応する論理ディスクに書き込むためにディスクエンクロージャ３００へ転送するキャッシュメモリ管理手段２３１と、キャッシュページ０〜Ｎにデータが書き込まれたタイミングでＩ／Ｏ命令の完了通知をサーバ１００へ出力する完了通知手段２３２と、サーバ１００からのＩ／Ｏ命令の処理中にこの処理に係るキャッシュページ０〜Ｎの１つが別のＩ／Ｏ命令によるアクセスを受けないようにキャッシュページ０〜Ｎを排他制御するキャッシュページ排他制御手段２３３とを備えている。
【００３７】
キャッシュメモリ管理手段２３１は、キャッシュページ０〜Ｎのうちの１つに競合し且つキャッシュページ排他制御手段２３３により退けられたライトＩ／Ｏ命令を受け入れて擬似キャッシュページＡ〜Ｊのいずれかにデータを書き込む機能と、擬似キャッシュページＡ〜Ｊの１つにデータを書き込んだタイミングでこの擬似キャッシュページＡ〜Ｊの１つを対応するキャッシュページ０〜Ｎの１つに対応付ける機能と、キャッシュページ０〜Ｎのうち排他状態のページに対して新たにライトＩ／Ｏ命令が競合した場合にそのページに対応付けられた擬似キャッシュページＡ〜Ｊの１つにデータを書き込みこの擬似キャッシュページ内のデータを統合する機能と、擬似キャッシュ領域２４２の擬似キャッシュページＡ〜Ｊの１つに記憶されたデータをその擬似キャッシュページＡ〜Ｊの１つに対応付けられたキャッシュページの排他状態がキャッシュページ排他制御手段２３３により解除されるタイミングでそのキャッシュページへ書き込む機能とを備えている。
【００３８】
また、完了通知手段２３２は、擬似キャッシュ領域２４２にデータが書き込まれたタイミングでＩ／Ｏ命令の完了通知を出力する機能を備えている。
【００３９】
キャッシュメモリ２４０内のキャッシュページ０〜Ｎ及び擬似キャッシュページＡ〜Ｊは、それぞれが固定長のブロック領域であり、本実施形態では、この固定長を６４セクタ（３２ＫＢ）に設定している。キャッシュメモリ２４０に記憶されているコントロールデータ２４０Ａは、図２に示すように、キャッシュページ０〜Ｎそれぞれに対して、関連付けされている論理ディスク番号（ＬＤＮ），関連付けされている先頭論理セクタアドレス（ＬＳＮ），書き込まれているデータの格納範囲を示す論理セクタアドレス（Ｄｉｒｔｙ），転送済みデータの格納範囲を示す論理セクタアドレス（Ｃｌｅａｎ），排他状態に設定されているか否かを表す情報（Ｓｅｉｚｅ）であり、キャッシュメモリ管理手段２３１によってキャッシュページ０〜Ｎのいずれかにデータが記録されるのに同期して該当する項目が書き換えられる。
【００４０】
また、擬似キャッシュコントロールデータ２４０Ｂは、図３に示すように、擬似キャッシュページＡ〜Ｊそれぞれに対して、関連付けされている論理ディスク番号，関連付けされている先頭論理セクタアドレス，書き込まれているデータの格納範囲を示す論理セクタアドレス，対応しているキャッシュページ番号を対応付けた情報であり、キャッシュメモリ管理手段２３１によって擬似キャッシュページＡ〜Ｊのいずれかにデータが記録されるのに同期して該当する項目が書き換えられることで、その擬似キャッシュページがキャッシュページ０〜Ｎのいずれかと対応付けられる。また、キャッシュメモリ管理手段２３１によって擬似キャッシュページＡ〜Ｊのいずれかに格納されたデータが対応するキャッシュページに転送されるのに同期して擬似キャッシュコントロールデータ２４０Ｂはリセットされる。
【００４１】
ここで、上述した主制御部２３０、すなわち、キャッシュメモリ管理手段２３１，完了通知手段２３２，キャッシュページ排他制御手段２３３については、その機能内容をプログラム化しコンピュータに実行させるように構成してもよい。
【００４２】
次に、本実施形態の全体の動作について説明する。ここで、キャッシュ管理方法についてもその各ステップを示して同時に説明する。
【００４３】
図４は、本実施形態のキャッシュメモリ装置２００の動作を示すフローチャートである。図５〜１０は、キャッシュメモリ装置２００が管理している論理ディスクに対して、ホストサーバ１００から、１セクタずつのライトＩ／Ｏ命令が連続で発行された場合を例にして、本実施形態のキャッシュメモリ装置２００の処理動作について示す説明図である。
【００４４】
まず、図５の［手順１］に示すように、ホストサーバ１００から、論理ディスク番号４の論理セクタアドレス０×２１０から１セクタずつのライトＩ／Ｏ命令が連続で発行される。キャッシュメモリ装置２００が、このライトＩ／Ｏ命令を入力すると（図４のステップＳ１のイエス，Ｉ／Ｏ命令入力ステップ）、図５の［手順２］に示すように、キャッシュメモリ装置２００のキャッシュメモリ管理手段２３１が、コントロールデータ２４０Ａを参照し、論理ディスクの論理セクタアドレス０×２００から６４セクタに関連付けられているキャッシュページを検索する（図４のステップＳ２）。
【００４５】
検索した結果、関連付けられたキャッシュページが見つかりそのキャッシュページが他のタスクで使用されていない状態だった場合、もしくは関連付けられたページが無く新たに関連付けたキャッシュページを作成する場合のキャッシュヒットライト可能な場合は（図４のステップＳ３のノー）、関連付けられたキャッシュページをそのまま取得する。本実施形態においては、キャッシュページ１を取得する。
【００４６】
キャッシュページ１の取得が完了したら、図６の［手順３］に示すように、キャッシュメモリ管理手段２３１は、サーバ１００からのデータをキャッシュページ１へ格納すると共に、コントロールデータ２４０Ａの書き込み範囲アドレスと排他状態情報とを更新する（図４のステップＳ４）。
【００４７】
そして、図６の［手順４］に示すように、キャッシュメモリ装置２００の完了通知手段２３２が、サーバ１００へライト処理完了を通知し（図４のステップＳ５）、その後、キャッシュページ１に格納されたデータを対応する論理ディスクへ書き込むために、キャッシュメモリ管理手段２３１がデータをディスクエンクロージャ３００へ転送する（図４のステップＳ６）。
【００４８】
一方で、キャッシュページ０〜Ｎを検索した結果、関連付けられたキャッシュページ１が見つかり、そのキャッシュページ１を他のタスクが使用中、すなわち、キャッシュページ１が排他状態に設定されていた場合（図４のステップＳ３のイエス）、従来のディスクアレイ装置では、図７に示すように、キャッシュページ１の解放待ちを行う必要があるが、本実施形態では、ここで解放待ちを行わず、図８の［手順８］に示すように、キャッシュメモリ管理手段２３１が、擬似キャッシュページＡ〜Ｊのうち擬似キャッシュページＡを取得する。
【００４９】
擬似キャッシュページＡ〜Ｊは、キャッシュページ０〜Ｎと同様に固定長の領域であり、排他状態にあるキャッシュページ０〜Ｎの１つが解放されるまで一時的に使用される。図８の［手順９］に示すように、キャッシュメモリ管理手段２３１が、擬似キャッシュページＡへデータを格納し（図４のステップＳ９，擬似キャッシュページ書込ステップ）、擬似キャッシュページコントロールデータを更新して擬似キャッシュページＡにキャッシュページ１を対応付ける（擬似キャッシュページ対応付けステップ）。そして、完了通知手段２３２がサーバ１００へライト処理完了を通知する（図４のステップＳ１０，擬似完了通知ステップ）。これにより、常にキャッシュヒットライト状態の応答性能を保証する。
【００５０】
擬似キャッシュページＡのデータはキャッシュページ１の排他状態がキャッシュページ排他制御手段２３３によって解放されるまで保持される。図９の［手順１１］に示すように、キャッシュページ１が解放される前に、さらに競合するライトＩ／Ｏ命令が発行され受信した場合（図４のステップＳ８のイエス）、キャッシュメモリ管理手段２３１は、擬似キャッシュページＡにデータを書き込み、擬似キャッシュページＡ内でデータをマージ（統合）する（図４のステップＳ１４，データ統合ステップ）。
【００５１】
そして、図１０の［手順１３］に示すように、キャッシュページ排他制御手段２３３によってキャッシュページ１が解放されるタイミングで（図４のステップＳ１１）、キャッシュメモリ管理手段２３１は、擬似キャッシュページＡのデータをキャッシュページ１へ入れ替える（図４のステップＳ１２，キャッシュページ書込ステップ）。そして、キャッシュメモリ管理手段２３１は、擬似キャッシュページＡ内のデータをキャッシュページ１へ格納すると、コントロールデータ２４０Ａの書き込み範囲アドレスと排他状態情報とを更新する。その後、キャッシュページ１に格納されたデータを対応する論理ディスクへの書き込むために、キャッシュメモリ管理手段２３１がデータをディスクエンクロージャ３００へ転送する（図４のステップＳ１３）。
【００５２】
本実施形態のキャッシュメモリ装置２００は、以上のように構成し動作するので、同一キャッシュページへのＩ／Ｏ命令競合による応答遅延が発生しなくなり、常にキャッシュヒットライトの応答性能を保証することができる。
【００５３】
ここで、本実施形態におけるキャッシュメモリ装置２００は、サーバ１００からのデータを記憶するストレージ装置４００内に搭載されている構成であるが、上位とメインメモリとの間のキャッシュを担う構成であれば、これに限らず、クライアント端末など情報処理端末内に搭載されてもよい。
【図面の簡単な説明】
【００５４】
【図１】本発明における一実施形態のキャッシュメモリ装置の構成を示すブロック図である。
【図２】図１に開示された実施形態におけるコントロールデータを示す図である。
【図３】図１に開示された実施形態における擬似コントロールデータを示す図である。
【図４】図１に開示された実施形態のキャッシュメモリ装置の動作を示すフローチャートである。
【図５】図１に開示された実施形態の全体動作の一例の一部分を示す説明図である。
【図６】図１に開示された実施形態の全体動作の一例の一部分を示す説明図である。
【図７】図１に開示された実施形態の全体動作の一例の一部分を示す説明図である。
【図８】図１に開示された実施形態の全体動作の一例の一部分を示す説明図である。
【図９】図１に開示された実施形態の全体動作の一例の一部分を示す説明図である。
【図１０】図１に開示された実施形態の全体動作の一例の一部分を示す説明図である。
【図１１】従来のストレージ装置を示すブロック図である。
【符号の説明】
【００５５】
０〜Ｎ  キャッシュページ
１００  サーバ
１１０  ホストバスアダプタ
２００  キャッシュメモリ装置
２３０  主制御部
２３１  キャッシュメモリ管理手段
２３２  完了通知手段
２３３  キャッシュページ排他制御手段
２４０  キャッシュメモリ
２４０Ａ  コントロールデータ
２４０Ｂ  擬似キャッシュコントロールデータ
２４１  キャッシュ領域
２４２  擬似キャッシュ領域
３００  ディスクエンクロージャ
４００  ストレージ装置
４０１  ホストアダプタ
４０２  ディスクアダプタ
Ａ〜Ｊ  擬似キャッシュページ
【図１】
2008234532.tif 000003
【図２】
2008234532.tif 000004
【図３】
2008234532.tif 000005
【図４】
2008234532.tif 000006
【図５】
2008234532.tif 000007
【図６】
2008234532.tif 000008
【図７】
2008234532.tif 000009
【図８】
2008234532.tif 000010
【図９】
2008234532.tif 000011
【図１０】
2008234532.tif 000012
【図１１】
2008234532.tif 000013