(57)【要約】【課題】書込み処理の遅延が抑制された情報記憶装置を提供する。【解決手段】ストレージ装置１００が、複数のＲＡＩＤグループ１６０と、負荷管理部１５５と、アクセス処理部１５４とを備える。負荷管理部１５５は、ＲＡＩＤグループ１６０の状態をビジー状態と、それ以外の低負荷状態（ノーマル状態とリストア状態）とに判別する。アクセス処理部１５４は、書込み先のＲＡＩＤグループ１６０がビジー状態である場合には、そのＲＡＩＤグループ１６０以外のノーマル状態のＲＡＩＤグループ１６０にアクセスして情報を書き込む。【選択図】        図６
2012123551.tif 000002
【特許請求の範囲】
【請求項１】
アドレスが割り当てられている複数の記憶部と、
書込み先のアドレスが指定され書込み対象の情報が与えられて、前記複数の記憶部のうち該書込み先のアドレスが割り当てられている書込み先記憶部にアクセスして該書込み対象の情報を書き込む書込部と、
読出し元のアドレスが指定されて、前記複数の記憶部のうち該読出し元のアドレスが割り当てられている読出し元記憶部にアクセスして該記憶部から情報を読み出す読出部と、
前記複数の記憶部それぞれの状態を、各記憶部に対するアクセス量に基づいて、相対的にアクセス量が多い第１状態と相対的にアクセス量が少ない第２状態とに判別する状態判別部とを備え、
前記書込部は、前記書込み先記憶部の状態が前記第２状態である場合には該書込み先記憶部にアクセスして前記書込み対象の情報を書き込み、該書込み先記憶部の状態が前記第１状態である場合には、前記複数の記憶部のうち該書込み先記憶部以外の前記第２状態である記憶部にアクセスして前記書込み対象の情報を書き込むものであることを特徴とする情報記憶装置。
【請求項２】
前記書込部によって、前記書込み先記憶部以外の記憶部に書き込まれた情報を、該書込み先記憶部が前記第２状態になったときに該書込み先記憶部に移動させる移動部を備えたことを特徴とする請求項１記載の情報記憶装置。
【請求項３】
前記書込部に与えられた書込み対象の情報のうち該書込部による書込みが未了の情報、および前記読出部により前記読出し元記憶部から読み出された情報を保管する、前記記憶部に対する情報の読書き速度よりも高速に情報が出し入れ可能な保管部と、
前記保管部が有する保管領域の状態を管理する管理部であって、前記書込部による書込み前の情報が保管されている保管状態と、該書込み前の情報が未保管である未保管状態とを区別して管理し、更に前記保管状態については、前記書込み先記憶部が前記第１状態である場合の第１の保管状態と、該書込み先記憶部が前記第２状態である場合の第２の保管状態とを区別して管理する管理部とを備え、
前記書込部が、前記第２の保管状態にある保管領域に保管されている情報については前記書込み先記憶部に書き込み、前記第１の保管状態にある保管領域に保管されている情報については、前記複数の記憶部のうち該書込み先記憶部以外の前記第２状態である記憶部に書き込むものであることを特徴とする請求項１又は２記載の情報記憶装置。
【請求項４】
前記読出部は、前記読出し元記憶部が前記第２状態である場合に該読出し元記憶部にアクセスし、該読出し元記憶部が前記第１状態である場合には該読出し元記憶部へのアクセスを延期するものであり、
前記読出部によるアクセス延期の後で前記読出し元記憶部から読み出された情報を、前記複数の記憶部のうち該読出し元記憶部以外の前記第２状態である記憶部に書き込む予備書込部を備え、
前記読出部は、前記読出し元記憶部が前記第１状態であって、かつ、前記読出し元のアドレスに存在する情報が前記予備書込部によって該読出し元記憶部以外の記憶部に書き込まれている場合に、該読出し元記憶部へのアクセスに替えて、該予備書込部によって情報が書き込まれた記憶部にアクセスして情報を読み出すものであることを特徴とする請求項１から３のうちいずれか１項記載の情報記憶装置。
【請求項５】
前記読出部は、前記書込部によって前記書込み先記憶部以外の記憶部に書き込まれた情報に対して指定された書込み先のアドレスと同じアドレスが読出し元のアドレスとして指定された場合に、前記読出し元記憶部へのアクセスに替えて、該書込み先記憶部以外の、該情報が記憶されている記憶部にアクセスして該情報を読み出すものであることを特徴とする請求項１から４のうちいずれか１項記載の情報記憶装置。
【請求項６】
前記書込部は、該書込部によって前記書込み先記憶部以外の記憶部に書き込まれた情報に対して指定された書込み先のアドレスと同じアドレスが書込み先のアドレスとして再び指定された場合に、該書込み先記憶部へのアクセスに替えて、該書込み先記憶部以外の、該情報が記憶されている記憶部にアクセスして新たな書込み対象の情報を上書きするものであることを特徴とする請求項１から５のうちいずれか１項記載の情報記憶装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本件は、情報を記憶する情報記憶装置に関する。
【背景技術】
【０００２】
従来、複数台の記憶モジュールが組み込まれて、全体として１台の記憶装置となっている情報記憶装置が知られている（例えば、特許文献１〜５参照。）。
【０００３】
このような情報記憶装置では、複数台の記憶モジュールに対して完全にアクセスが均等であることは有り得ないので、一部の記憶モジュールにアクセスが集中する。その結果、情報記憶装置全体としては余裕を持って対処可能なアクセス量であるのに、一部の記憶モジュールが高負荷状態になることも多い。
【０００４】
そして、そのような高負荷状態の記憶モジュールが担っている記憶領域に対して、ホスト装置から情報の書込み指示がなされた場合、その情報を書き込む書込み処理は、その記憶モジュールへのアクセス量が減少して低負荷状態となってから実行される。つまり、このような情報記憶装置では、一部の記憶モジュールが高負荷状態となっていると、情報記憶装置全体として情報の書込み処理に遅延が生じるおそれがある。
【０００５】
そこで、このような情報記憶装置において、複数台の記憶モジュールの相互間で、アクセス量の平均化を図ることで、個別の記憶モジュールの負荷を低減させる次のような処理が知られている。例えば、高負荷状態の記憶モジュールと、アクセスがそれほど集中していない低負荷状態の記憶モジュールとの間で情報の一部を入れ替えるスワップ処理が知られている。また、高負荷状態の記憶モジュール中の情報の一部を、低負荷状態の記憶モジュールに移動させるマイグレーション処理が知られている。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開平９−２９７７１０号公報
【特許文献２】特開２００１−３１２３７２号公報
【特許文献３】特開２００３−１５０３２４号公報
【特許文献４】特開２００７−１０２６０７号公報
【特許文献５】特開２００７−２９３４８６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
上記のスワップ処理やマイグレーション処理は、多くの場合、高負荷状態となっている記憶モジュールへのアクセス量が減少して低負荷状態となってから実行される。このため、現に一部の記憶モジュールが高負荷状態にあるときの書込み処理の遅延については、スワップ処理やマイグレーション処理では解消が難しい。また、スワップ処理やマイグレーション処理自体が記憶モジュールへのアクセスを伴うことから、一旦低負荷状態になった記憶モジュールへのアクセス量をまた増大させてしまうおそれがある。
【０００８】
本件は上記事情に鑑み、書込み処理の遅延が抑制された情報記憶装置を提供することを目的とするものである。
【課題を解決するための手段】
【０００９】
上記目的を達成する情報記憶装置は、複数の記憶部と、書込部と、読出部と、状態判別部とを備えている。
【００１０】
複数の記憶部には、アドレスが割り当てられている。
【００１１】
書込部は、書込み先のアドレスが指定され書込み対象の情報が与えられて、上記複数の記憶部のうちその書込み先のアドレスが割り当てられている書込み先記憶部にアクセスしてその書込み対象の情報を書き込むものである。
【００１２】
読出部は、読出し元のアドレスが指定されて、上記複数の記憶部のうちその読出し元のアドレスが割り当てられている読出し元記憶部にアクセスしてその記憶部から情報を読み出すものである。
【００１３】
状態判別部は、上記複数の記憶部それぞれの状態を、各記憶部に対するアクセス量に基づいて、相対的にアクセス量が多い第１状態と相対的にアクセス量が少ない第２状態とに判別するものである。
【００１４】
また、上記書込部は、上記書込み先記憶部の状態が上記第２状態である場合にはその書込み先記憶部にアクセスして上記書込み対象の情報を書き込み、その書込み先記憶部の状態が上記第１状態である場合には、次のような処理を実行する。即ち、この場合には、書込部は、上記複数の記憶部のうちその書込み先記憶部以外の上記第２状態である記憶部にアクセスして上記書込み対象の情報を書き込む。
【発明の効果】
【００１５】
本件によれば、書込み処理の遅延が抑制された情報記憶装置を得ることができる。
【図面の簡単な説明】
【００１６】
【図１】比較例のストレージ装置を示す図である。
【図２】比較例のストレージ装置における情報の書込み処理の流れを示すフローチャートである。
【図３】比較例のストレージ装置における情報の読出し処理の流れを示すフローチャートである。
【図４】情報記憶装置の第１実施形態を示す図である。
【図５】情報記憶装置の第２実施形態であるストレージ装置を示すハードウェアブロック図である。
【図６】図５に示すストレージ装置を、コントローラモジュールの動作に注目して示す機能ブロック図である。
【図７】キャッシュメモリを詳細に示す図である。
【図８】キャッシュページ管理部によるキャッシュページの管理状態の切替えを示す図である。
【図９】キャッシュページ管理テーブルの詳細を示す図である。
【図１０】負荷管理部によるＲＡＩＤグループの状態の判別を示す図である。
【図１１】負荷管理テーブルの詳細を示す図である。
【図１２】ディスクページ管理テーブルの詳細を示す図である。
【図１３】アクセス対象のＲＡＩＤグループがノーマル状態である場合に想定される複数のケースを表形式で示す図である。
【図１４】アクセス対象のＲＡＩＤグループがビジー状態である場合に想定される複数のケースを表形式で示す図である。
【図１５】アクセス対象のＲＡＩＤグループがリストア状態である場合に想定される複数のケースを表形式で示す図である。
【図１６】ライトバック処理について想定される複数のケースを表形式で示す図である。
【図１７】コマンドに応じた情報の動きについての第１の例を示す模式図である。
【図１８】コマンドに応じた情報の動きについての第２の例を示す模式図である。
【図１９】コマンドに応じた情報の動きについての第３の例を示す模式図である。
【図２０】コマンドに応じた情報の動きについての第４の例を示す模式図である。
【図２１】コマンドに応じた情報の動きについての第５の例を示す模式図である。
【発明を実施するための形態】
【００１７】
以下、本件の情報記憶装置の具体的な実施形態としてのストレージ装置の説明に先立って、まず、その実施形態と対比するための比較例のストレージ装置について説明する。
【００１８】
図１は、比較例のストレージ装置を示す図である。
【００１９】
比較例のストレージ装置５００は、ホスト装置であるサーバ６００に、ＳＡＮ（Ｓｔｏｒａｇｅ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）６５０を介して接続されている。
【００２０】
比較例のストレージ装置５００は、複数台のＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）５１１が組み込まれて、全体として１台の情報記憶装置として働く。比較例のストレージ装置５００に搭載された複数台のＨＤＤ５１１は、ｎ＋１個のグループに、１グループ当たり２台ずつ分けられている。
【００２１】
そして、各グループは、２台のＨＤＤ５１１に互いに同じ情報を記憶させる冗長構造として、いわゆるＲＡＩＤ（Ｒｅｄｕｎｄａｎｔ  Ａｒｒａｙｓ  ｏｆ  Ｉｎｅｘｐｅｎｓｉｖｅ  Ｄｉｓｋｓ）構造を有している。このＲＡＩＤ構造によれば、一方のＨＤＤ５１１において磁気ディスクの格子欠陥等により情報の記憶に不良が生じた場合であっても、他方のＨＤＤ５１１内の情報でその不良が補われる。以下、ＲＡＩＤ構造を有するグループをＲＡＩＤグループ５１０と呼ぶ。各ＲＡＩＤグループ５１０には、０番からｎ番までの番号が割り当てられている。
【００２２】
各ＲＡＩＤグループ５１０は、各々単位容量を有する複数の記憶領域（ブロック）を有している。１つのブロックは、ＲＡＩＤグループ５１０に属する２台のＨＤＤ５１１のうちの一方のＨＤＤ５１１内の単位容量の記憶領域と、他方のＨＤＤ５１１内の単位容量の記憶領域との２つの記憶領域で担われている。そして、ブロック１つ分の情報がそれら２つの記憶領域それぞれに記憶される。これにより、一方の記憶領域において記憶に不良が生じた場合であっても、他方の記憶領域の情報でその不良が補われる。このように、比較例のストレージ装置５００では、ブロック単位で情報の記憶の信頼性が高められている。各ブロックには、ＲＡＩＤグループ５１０を跨いだ、比較例のストレージ装置５００全体として一連の通し番号であるアドレスが割り当てられている。
【００２３】
サーバ６００は、ストレージ装置５００に対して情報の読出しや書込みを指示するときには、リードコマンドやライトコマンドを発行する。これらのコマンドでは、アクセス対象のＲＡＩＤグループ５１０の番号（アクセスＲＧ番号）と、アクセス対象のブロックのアドレスとが指定される。
【００２４】
この比較例のストレージ装置５００は、キャッシュ制御部５０１、キャッシュメモリ５０２、およびディスク制御部５０３を備えている。
【００２５】
キャッシュメモリ５０２は、上記のＨＤＤ５１１に対する情報の読書き速度よりも高速に情報が出し入れされる半導体メモリである。サーバ６００から送られてきた書込み情報は、一旦、このキャッシュメモリ５０２に記憶された後、アクセス対象のＲＡＩＤグループ５１０におけるアクセス対象のブロックに書き込まれる。また、アクセス対象のＲＡＩＤグループ５１０におけるアクセス対象のブロックから読み出された読出し情報は、一旦、このキャッシュメモリ５０２に記憶された後でサーバ６００に転送される。
【００２６】
キャッシュ制御部５０１は、サーバ６００からの書込み情報のキャッシュメモリ５０２への記憶や、キャッシュメモリ５０２に記憶されている読出し情報の読出しとサーバ６００への転送を行う。
【００２７】
ディスク制御部５０３は、キャッシュメモリ５０２に記憶されている書込み情報を読み出す。ディスク制御部５０３は、さらに、アクセス対象のＲＡＩＤグループ５１０に対し、その書込み情報と、アクセス対象のブロックへの書込みを指示する書込み指示信号とを送信する。すると、書込み情報と書込み指示信号とを受信したＲＡＩＤグループ５１０では、ＨＤＤ５１１において、アクセス対象のブロックに相当する記憶領域に書込み情報が書き込まれる。ディスク制御部５０３による書込み情報および書込み指示信号の送信と、ＨＤＤ５１１での書込み情報の書込みとを合わせて、以下ではライトバック処理と呼ぶ。
【００２８】
また、ディスク制御部５０３は、アクセス対象のＲＡＩＤグループ５１０に対し、アクセス対象のブロックからの読出し情報の読出しを指示する読出し指示信号を送信する。すると、読出し指示信号を受信したＲＡＩＤグループ５１０では、ＨＤＤ５１１において、アクセス対象のブロックに相当する記憶領域から読出し情報が読み出される。さらに、ディスク制御部５０３は、このように読み出された読出し情報をキャッシュメモリ５０２に記憶する。ディスク制御部５０３による読出し指示信号の送信と、ＨＤＤ５１１での読出し情報の読出しと、ディスク制御部５０３によるキャッシュメモリ５０２への読出し情報の記憶とを合わせて、以下ではステージング処理と呼ぶ。
【００２９】
サーバ６００からリードコマンドが送信されてきたときには、ディスク制御部５０３でのステージング処理によって読出し情報が一旦キャッシュメモリ５０２に記憶される。その後、キャッシュ制御部５０１によって、その記憶された読出し情報がキャッシュメモリ５０２から読み出されてサーバ６００に転送される。
【００３０】
また、サーバ６００からライトコマンドが送信されてきたときには、サーバ６００から転送されてきた書込み情報が、キャッシュ制御部５０１によって一旦キャッシュメモリ５０２に記憶される。その後、ディスク制御部５０３でのライトバック処理によってその書込み情報がアクセス対象のブロックに書き込まれる。
【００３１】
キャッシュメモリ５０２に記憶された読出し情報やライトバック済みの書込み情報は、新規の情報が上書きされるまで記憶され続ける。つまり、これらの読出し情報やライトバック済みの書込み情報は、サーバ６００への転送後、あるいはライトバック後も積極的には消去されずにキャッシュメモリ５０２上に残っている。そして、新しいライトコマンドによるライト処理が発生すると、これらの読出し情報やライトバック済みの書込み情報は不要な情報なので新規の情報で上書きされる。
【００３２】
キャッシュメモリ５０２は、予め決められた数のブロックを各々が有する複数の領域（キャッシュページ）を有している。
【００３３】
各キャッシュページは、次のような３つの管理状態に管理される。１つ目の管理状態は、キャッシュページが空きページであるインバリッド状態である。２つ目の管理状態は、キャッシュページに、上書き可能な情報（バリッド情報）が記憶されているバリッド状態である。３つ目の管理状態は、キャッシュページに、アクセス対象のブロックへの書込み前の書込み情報（ダーティ情報）が記憶されているダーティ状態である。
【００３４】
また、キャッシュ制御部５０１は、各キャッシュページ毎に、次のような３つの状態フラグを有している。１つ目の状態フラグは、インバリッド状態であるか否かを表す状態フラグ（インバリッドフラグ）である。２つ目の状態フラグは、バリッド状態であるか否かを表す状態フラグ（バリッドフラグ）である。３つ目の状態フラグは、ダーティ状態であるか否かを表す状態フラグ（ダーティフラグ）である。キャッシュ制御部５０１は、各キャッシュページについての情報の記憶等に応じて、各キャッシュページの３つの状態フラグを設定又は解除する。これにより、キャッシュ制御部５０１は、各キャッシュページの管理状態を切り替える。
【００３５】
ディスク制御部５０３は、上述したように、ライトバック処理やステージング処理を行う。ここで、ディスク制御部５０３は、ライトバック処理やステージング処理を表すジョブを、サーバ６００から各処理の基となったコマンドが送られてきた順番に格納するキュー管理部５０３ａを備えている。ディスク制御部５０３は、このキュー管理部５０３ａに格納されているジョブが表す処理を、そのジョブの格納順で実行する。
【００３６】
まず、比較例のストレージ装置５００における情報の書込み処理について説明する。
【００３７】
図２は、比較例のストレージ装置における情報の書込み処理の流れを示すフローチャートである。
【００３８】
まず、サーバ６００においてライトコマンドが発行される（ステップＳ８０１）。上述したように、このライトコマンドでは、情報の書込み先として、アクセスＲＧ番号と、アクセス対象のブロックのアドレスとが指定される。サーバ６００が発行したライトコマンドは、キャッシュ制御部５０１で受信される。
【００３９】
キャッシュ制御部５０１は、ライトコマンドを受信すると、キャッシュメモリ５０２内に、インバリッド状態のキャッシュページ（インバリッドページ）が存在するか否かを判定する（ステップＳ８０２）。インバリッドページが存在すると判定された場合（ステップＳ８０２におけるＹｅｓ判定）、キャッシュ制御部５０１は、サーバ６００に、書込み情報の転送を開始しても良い旨を通知する応答信号を送信する（ステップＳ８０３）。サーバ６００は、その応答信号を受信すると、書込み情報の転送を開始する（ステップＳ８０４）。キャッシュ制御部５０１は、サーバ６００から転送されてくる書込み情報を、キャッシュメモリ５０２内のインバリッドページに記憶する（ステップＳ８０５）。
【００４０】
このステップＳ８０５で記憶された情報は、アクセス対象のブロックへの書込み前の書込み情報、即ち、上記のダーティ情報である。キャッシュ制御部５０１は、そのダーティ情報を記憶したキャッシュページについて、次のような状態フラグの設定又は解除を行う（ステップＳ８０６）。即ち、キャッシュ制御部５０１は、このキャッシュページについて、それまで設定されていたインバリッドフラグを解除して、ダーティフラグを設定する。これにより、このキャッシュページの管理状態がダーティ状態に切り替えられる。また、その際には、キャッシュ制御部５０１は、ダーティ情報の書込み先を、そのダーティ状態のキャッシュページ（ダーティページ）に対応付ける。即ち、ダーティ情報の書込み先として、アクセスＲＧ番号と、アクセス対象のブロックのアドレスとが、キャッシュ制御部５０１によって、不図示のメモリに記憶される。
【００４１】
その後、キャッシュ制御部５０１は、サーバ６００に、ライトコマンドに応じた処理が完了したことを通知する完了通知信号を送信する（ステップＳ８０７）。キャッシュ制御部５０１は、この完了通知信号を送信した後は、サーバ６００からの次のコマンドを待つ待機状態となる。
【００４２】
また、上記のステップＳ８０２でインバリッドページが存在しないと判定された場合（ステップＳ８０２におけるＮｏ判定）、キャッシュ制御部５０１は、更に、次のような判定を行う（ステップＳ８０８）。この場合、キャッシュ制御部５０１は、キャッシュメモリ５０２内に、バリッド状態のキャッシュページ（バリッドページ）が存在するか否かを判定する。バリッドページも存在しないと判定された場合（ステップＳ８０８におけるＮｏ判定）、キャッシュ制御部５０１は、予め決められた時間だけ待機する（ステップＳ８０９）。そして、その待機後に、ステップＳ８０２での判定を繰り返す。
【００４３】
一方、バリッドページが存在すると判定された場合（ステップＳ８０８におけるＹｅｓ判定）、キャッシュ制御部５０１は、そのバリッドページに対応付けられたバリッドフラグを解除して、インバリッドフラグを設定する。これにより、そのキャッシュページの管理状態が、バリッド状態からインバリッド状態に切り替えられる（ステップＳ８１０）。その後、キャッシュ制御部５０１は、上述のステップＳ８０３の処理を実行する。
【００４４】
キャッシュ制御部５０１において実行される以上のような処理からは独立したタイミングで、ディスク制御部５０３においてライトバック処理が次のように実行される。ライトバック処理は、上述したようにダーティ情報を、アクセス対象のＲＡＩＤグループ５１０におけるアクセス対象のブロックに書き込む処理である。
【００４５】
ライトバック処理では、ディスク制御部５０３は、キャッシュメモリ５０２に、ダーティページが存在するか否かを判定する（ステップＳ８１１）。ダーティページが存在しないと判定された場合（ステップＳ８１１におけるＮｏ判定）、ディスク制御部５０３は、予め決められた時間だけ待機する（ステップＳ８１２）。そして、その待機後に、ステップＳ８１１での判定を繰り返す。
【００４６】
ダーティページが存在すると判定された場合（ステップＳ８１１におけるＹｅｓ判定）、ディスク制御部５０３は、アクセス対象のＲＡＩＤグループ５１０について、次のような判定を行う（ステップＳ８１３）。
【００４７】
即ち、この場合、ディスク制御部５０３は、アクセス対象のＲＡＩＤグループ５１０について高負荷状態であるか否かを判定する。ここで、高負荷状態とは、キュー管理部５０３ａに格納されているジョブの数（アクセス量）が、予め決められた閾値を超えている状態のことである。ＲＡＩＤグループ５１０が高負荷状態であると判定された場合（ステップＳ８１３におけるＹｅｓ判定）、ディスク制御部５０３は、予め決められた時間だけ待機する（ステップＳ８１４）。そして、その待機後に、ステップＳ８１３での判定を繰り返す。
【００４８】
一方、アクセス対象のＲＡＩＤグループ５１０が高負荷状態ではないと判定された場合（ステップＳ８１３におけるＹｅｓ判定）、ディスク制御部５０３は、次のような処理を実行する（ステップＳ８１５）。ステップＳ８１５では、ディスク制御部５０３は、まず、ダーティページからダーティ情報を読み出す。さらに、ディスク制御部５０３は、そのダーティページに書込み先として対応付けられて記憶されているアクセスＲＧ番号とブロックのアドレスとを参照する。そして、ディスク制御部５０３は、ダーティ情報を、そのアクセスＲＧ番号が示すアクセス対象のＲＡＩＤグループ５１０における、そのアドレスのブロックに書き込む。この書込みが終了すると、ディスク制御部５０３は、ライトバック処理が終了した旨を、そのダーティ情報が記憶されているダーティページを指定して通知する信号をキャッシュ制御部５０１に送信する。ディスク制御部５０３は、この信号の送信後、ステップＳ８１１の判定を繰り返す。ここまでの処理が、ディスク制御部５０３によって実行されるライトバック処理である。
【００４９】
一方、ライトバック処理が終了した旨の信号を受信したキャッシュ制御部５０１は、その信号で指定されたダーティページに対応付けられたダーティフラグを解除して、さらに、バリッドフラグを設定する。これにより、そのキャッシュページの管理状態がダーティ状態からバリッド状態に切り替えられる（ステップＳ８１６）。
【００５０】
以上に説明した処理により、この比較例のストレージ装置５００では、サーバ６００から転送された情報が、キャッシュメモリ５０２を介して、アクセス対象のＲＡＩＤグループ５１０におけるアクセス対象のブロックに書き込まれる。
【００５１】
次に、比較例のストレージ装置５００における情報の読出し処理について説明する。
【００５２】
図３は、比較例のストレージ装置における情報の読出し処理の流れを示すフローチャートである。
【００５３】
まず、サーバ６００においてリードコマンドが発行される（ステップＳ９０１）。このリードコマンドでは、情報の読出し元として、アクセスＲＧ番号と、アクセス対象のブロックのアドレスとが指定される。サーバ６００が発行したリードコマンドは、キャッシュ制御部５０１で受信される。
【００５４】
キャッシュ制御部５０１は、リードコマンドを受信すると、キャッシュメモリ５０２内に、リードコマンドで要求されている読出し情報が記憶されているか否かを判定する（ステップＳ９０２）。
【００５５】
この比較例のストレージ装置５００では、後述するように、リードコマンドに応じて読み出されてサーバ６００に転送された読出し情報が、キャッシュメモリ５０２にバリッド情報として記憶される。また、図２を参照して説明した書込み処理では、書込み情報が、ＲＡＩＤグループ５１０への書込み前にはダーティ情報として、書込み後はバリッド情報としてキャッシュメモリ５０２に記憶される。
【００５６】
上記のステップＳ９０２での判定は、キャッシュ制御部５０１が、キャッシュメモリ５０２内のバリッド情報やダーティ情報の中に、リードコマンドで要求されている読出し情報があるか否かを判定するものである。
【００５７】
キャッシュメモリ５０２内に読出し情報が記憶されていないと判定された場合（ステップＳ９０２におけるＮｏ判定）、キャッシュ制御部５０１は、キャッシュメモリ５０２内にインバリッドページが存在するか否かを判定する（ステップＳ９０３）。
【００５８】
インバリッドページが存在すると判定された場合（ステップＳ９０３におけるＹｅｓ判定）、キャッシュ制御部５０１は、ディスク制御部５０３にステージング処理の実行を要求する要求信号を送信する（ステップＳ９０４）。ステージング処理は、上述したように、アクセス対象のＲＡＩＤグループ５１０におけるアクセス対象のブロックから読出し情報を読出して、キャッシュメモリ５０２に記憶する処理である。
【００５９】
一方、インバリッドページが存在しないと判定された場合（ステップＳ９０３におけるＮｏ判定）、キャッシュ制御部５０１は、更に、キャッシュメモリ５０２内にバリッドページが存在するか否かを判定する（ステップＳ９０５）。バリッドページも存在しないと判定された場合（ステップＳ９０５におけるＮｏ判定）、キャッシュ制御部５０１は、予め決められた時間だけ待機する（ステップＳ９０６）。そして、その待機後に、ステップＳ９０３での判定を繰り返す。一方、バリッドページが存在すると判定された場合（ステップＳ９０３におけるＹｅｓ判定）、キャッシュ制御部５０１は、そのバリッドページに対応付けられたバリッドフラグを解除して、インバリッドフラグを設定する。これにより、そのキャッシュページの管理状態が、バリッド状態からインバリッド状態に切り替えられる（ステップＳ９０７）。その後、キャッシュ制御部５０１は、上述のステップＳ９０４により、ディスク制御部５０３に対して、ステージング処理の実行を要求する要求信号を送信する。
【００６０】
ディスク制御部５０３は、要求信号を受信すると、アクセス対象のＲＡＩＤグループ５１０が上記の高負荷状態であるか否かを判定する（ステップＳ９０８）。
【００６１】
アクセス対象のＲＡＩＤグループ５１０が高負荷状態であると判定された場合（ステップＳ９０８におけるＹｅｓ判定）、ディスク制御部５０３は、予め決められた時間だけ待機する（ステップＳ９０９）。そして、その待機後に、ステップＳ９０８での判定を繰り返す。
【００６２】
一方、アクセス対象のＲＡＩＤグループ５１０が高負荷状態ではないと判定された場合（ステップＳ９０８におけるＹｅｓ判定）、ディスク制御部５０３は、次のような処理を実行する（ステップＳ９１０）。ステップＳ９１０では、ディスク制御部５０３は、アクセス対象のＲＡＩＤグループ５１０におけるアクセス対象のブロックから読出し情報を読出して、キャッシュメモリ５０２内のインバリッドページに記憶する。
【００６３】
この記憶が終了すると、ディスク制御部５０３は、ステージング処理が終了した旨を、その読出し情報を記憶したインバリッドページを指定して通知する信号をキャッシュ制御部５０１に送信する。ここまでの処理が、ディスク制御部５０３によって実行されるステージング処理である。
【００６４】
キャッシュ制御部５０１は、ステージング処理が終了した旨の信号を受信すると、読出し情報が記憶されたインバリッドページについて、インバリッドフラグを解除して、バリッドフラグを設定する。これにより、そのキャッシュページの管理状態がインバリッド状態からバリッド状態に切り替えられる（ステップＳ９１１）。
【００６５】
次に、キャッシュ制御部５０１は、上記の読出し情報を記憶しているバリッドページからその読出し情報を読みだしてサーバ６００に転送する（ステップＳ９１２）。
【００６６】
また、上記のステップＳ９０２で、キャッシュメモリ５０２内に読出し情報がバリッド情報やダーティ情報として記憶されていると判定された場合（ステップＳ９０２におけるＹｅｓ判定）には、ステップＳ９０３からステップＳ９１１の処理が省略される。そして、キャッシュ制御部５０１が、ステップＳ９１２の処理を実行して、バリッドページやダーティページから読出し情報を読み出してサーバ６００に転送する。
【００６７】
その後、キャッシュ制御部５０１は、サーバ６００に、リードコマンドに応じた処理が完了したことを通知する完了通知信号を送信する（ステップＳ９１３）。キャッシュ制御部５０１は、この完了通知信号を送信した後は、サーバ６００からの次のコマンドを待つ待機状態となる。
【００６８】
以上に説明した比較例のストレージ装置５００では、複数のＲＡＩＤグループ５１０に対して完全にアクセスが均等であることは有り得ないので、一部のＲＡＩＤグループ５１０にアクセスが集中する。その結果、比較例のストレージ装置５００全体としては余裕を持って対処可能なアクセス量であるのに、一部のＲＡＩＤグループ５１０が高負荷状態になることも多い。
【００６９】
そして、そのような高負荷状態のＲＡＩＤグループ５１０内のブロックに対して、サーバ６００から情報の書込み指示がなされた場合、上記のライトバック処理は、そのＲＡＩＤグループ５１０が低負荷状態となってから実行される。つまり、比較例のストレージ装置５００では、一部のＲＡＩＤグループ５１０が高負荷状態となっていると、比較例のストレージ装置５００全体として情報の書込み処理に遅延が生じるおそれがある。
【００７０】
また、このような書込み処理の遅延は、キャッシュメモリ５０２がダーティページで占められてしまうという事態を招く恐れがある。ダーティページに記憶されているダーティ情報は、上述したように、アクセス対象のブロックへの書込み前の書込み情報である。従ってダーティ情報を、アクセス対象のブロックとは別のブロックへの書込み情報や、そのような別のブロックからの読出し情報で上書きすることは禁止される。つまり、キャッシュメモリ５０２がダーティページで占められることは、キャッシュメモリ５０２全体についてこのような上書きが禁止されることを意味する。このような事態が生じると、図３の読出し処理におけるステップＳ９０５の判定でＮｏ判定が繰り返されることとなり、その結果、この読出し処理が遅延する。つまり、この比較例のストレージ装置５００では、書込み処理の遅延が読出し処理の遅延にも繋がることとなる。
【００７１】
次に、本件の情報記憶装置の具体的な実施形態について、図面を参照して説明する。
【００７２】
まず、第１実施形態について説明する。
【００７３】
図４は、情報記憶装置の第１実施形態を示す図である。
【００７４】
この図４に示す情報記憶装置１０は、複数の記憶部１１と、書込部１２と、読出部１３と、状態判別部１４とを備えている。
【００７５】
複数の記憶部１１には、アドレスが割り当てられている。
【００７６】
書込部１２は、書込み先のアドレスが指定され書込み対象の情報が与えられる。書込み対象の情報とは、この図４に示す情報記憶装置１０のホスト装置であるサーバ等から転送されてくる情報のことである。書込部１２は、上記複数の記憶部１１のうちその書込み先のアドレスが割り当てられている書込み先の記憶部１１にアクセスしてその書込み対象の情報を書き込む。
【００７７】
読出部１３は、読出し元のアドレスが指定されて、上記複数の記憶部１１のうちその読出し元のアドレスが割り当てられている読出し元の記憶部１１にアクセスしてその記憶部１１から情報を読み出す。
【００７８】
状態判別部１４は、上記複数の記憶部１１それぞれの状態を、各記憶部１１に対するアクセス量に基づいて、相対的にアクセス量が多い第１状態と相対的にアクセス量が少ない第２状態とに判別する。
【００７９】
また、上記書込部１２は、上記書込み先の記憶部１１の状態が上記第２状態である場合にはその書込み先の記憶部１１にアクセスして上記書込み対象の情報を書き込み、その書込み先の記憶部１１の状態が上記第１状態である場合には、次のような処理を実行する。
【００８０】
即ち、上記第１状態である場合には、書込部１２は、上記複数の記憶部１１のうちその書込み先の記憶部１１以外の上記第２状態である記憶部１１にアクセスして上記書込み対象の情報を書き込む。
【００８１】
この情報記憶装置１０によれば、書込み先の記憶部１１が相対的にアクセス量が多い第１状態にあるときには、書込み対象の情報が、その書込み先の記憶部１１以外の上記第２状態である記憶部１１に書き込まれる。このように、情報記憶装置１０では、書込み先の記憶部１１が相対的にアクセス量が多い第１状態あったとしても、情報の書込み自体は、書込み先を別の記憶部１１に替えて直ちに実行されることとなる。これにより、情報記憶装置１０では、第１状態にある記憶部１１があったとしても、書込み処理の遅延が抑制される。
【００８２】
次に、本件の情報記憶装置の第２実施形態について説明する。
【００８３】
図５は、情報記憶装置の第２実施形態であるストレージ装置を示すハードウェアブロック図である。
【００８４】
この図５に示すストレージ装置１００は、複数台のＨＤＤ１０１と、２つのコントローラモジュール１１０とを備えている。各コントローラモジュール１１０は、ＳＡＮ２５０を介してホスト装置であるサーバ２００に接続されている。
【００８５】
ストレージ装置１００は、詳細については後述するが、複数台のＨＤＤ１０１が組み込まれて、全体として１台の情報記憶装置として働く。
【００８６】
コントローラモジュール１１０は、キャッシュ制御部１１１と、キャッシュメモリ１１２と、ディスク制御部１１３とを備えている。複数台のＨＤＤ１０１は、ディスク制御部１１３に接続されている。キャッシュ制御部１１１とキャッシュメモリ１１２は、サーバ２００側から見て、そのサーバ２００に近い側に位置することからフロントエンド１００ａと呼ばれる。一方、ディスク制御部１１３と複数台のＨＤＤ１０１は、サーバ２００から遠い側に位置することからバックエンド１００ｂと呼ばれる。
【００８７】
キャッシュメモリ１１２は、ＨＤＤ１０１に対する情報の読書き速度よりも高速に情報が出し入れされる半導体メモリである。サーバ２００から送られてきた書込み情報は、一旦、このキャッシュメモリ１１２に記憶された後、ＨＤＤ１０１に書き込まれる。また、ＨＤＤ１０１から読み出された読出し情報は、一旦、このキャッシュメモリ１１２に記憶された後でサーバ２００に送られる。
【００８８】
キャッシュ制御部１１１は、サーバ２００からの書込み情報のキャッシュメモリ１１２への記憶や、キャッシュメモリ１１２に記憶されている読出し情報の読出しとサーバ２００への転送を行う。キャッシュ制御部１１１は、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）１１１ａを備えている。そして、キャッシュ制御部１１１は、このＲＯＭ１１１ａ内に格納されている動作プログラムに従ってキャッシュメモリ１１２に対する情報の記憶や読出し等を行う。また、キャッシュ制御部１１１は、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）１１１ｂを備えている。このＲＡＭ１１１ｂには、動作プログラムに従った動作に使われる各種パラメータ等が格納される。
【００８９】
ディスク制御部１１３は、キャッシュメモリ１１２に記憶されている書込み情報を読み出して、後述のＲＡＩＤグループ１６０に対し、その書込み情報と、書込みを指示する書込み指示信号とを送信する。すると、書込み情報と書込み指示信号とを受信したＲＡＩＤグループ１６０では、ＨＤＤ１０１において、アクセス対象のブロックに相当する記憶領域に書込み情報が書き込まれる。
【００９０】
ディスク制御部１１３による書込み情報および書込み指示信号の送信と、ＨＤＤ１０１での書込み情報の書込みとを合わせて、以下ではライトバック処理と呼ぶ。
【００９１】
また、ディスク制御部１１３は、アクセス対象のＲＡＩＤグループ１６０に対し、読出し情報の読出しを指示する読出し指示信号を送信する。すると、読出し指示信号を受信したＲＡＩＤグループ１６０では、ＨＤＤ１０１において読出し情報が読み出される。さらに、ディスク制御部１１３は、このように読み出された読出し情報をキャッシュメモリ１１２に記憶する。
【００９２】
ディスク制御部１１３による読出し指示信号の送信と、ＨＤＤ１０１での読出し情報の読出しと、ディスク制御部１１３によるキャッシュメモリ１１２への読出し情報の記憶とを合わせて、以下ではステージング処理と呼ぶ。
【００９３】
ディスク制御部１１３も、ＲＯＭ１１３ａとＲＡＭ１１３ｂを備えている。ディスク制御部１１３は、ＲＯＭ１１３ａ内に格納されている動作プログラムに従ってライトバック処理やステージング処理等を行う。そして、ＲＡＭ１１３ｂには、これらの処理に使われる各種パラメータ等が格納される。
【００９４】
図６は、図５に示すストレージ装置を、コントローラモジュールの動作に注目して示す機能ブロック図である。
【００９５】
尚、図５に示す２つのコントローラモジュール１１０は、互いに同等な機能を備えているので、この図６では、ストレージ装置１００における、コントローラモジュール１１０１つ分の機能ブロックが代表的に示されている。
【００９６】
ストレージ装置１００に搭載された複数台のＨＤＤ１０１は、ｎ＋１個のグループに、１グループ当たり２台ずつ分けられている。
【００９７】
そして、各グループは、２台のＨＤＤ１０１に互いに同じ情報を記憶させる冗長構造として、いわゆるＲＡＩＤ構造を有している。このＲＡＩＤ構造によれば、一方のＨＤＤ１０１において磁気ディスクの格子欠陥等により情報の記憶に不良が生じた場合であっても、他方のＨＤＤ１０１内の情報でその不良が補われる。以下、ＲＡＩＤ構造を有するグループをＲＡＩＤグループ１６０と呼ぶ。各ＲＡＩＤグループ１６０には、０番からｎ番までの番号が割り当てられている。
【００９８】
各ＲＡＩＤグループ１６０は、各々が５１２バイトの容量を有する複数のブロックを有している。１つのブロックは、ＲＡＩＤグループ１６０に属する２台のＨＤＤ１０１のうちの一方のＨＤＤ１０１内の５１２バイトの記憶領域と、他方のＨＤＤ１０１内の５１２バイトの記憶領域との２つの記憶領域で担われている。そして、ブロック１つ分の情報がそれら２つの記憶領域それぞれに記憶される。これにより、一方の記憶領域において記憶に不良が生じた場合であっても、他方の記憶領域の情報でその不良が補われる。このように、ストレージ装置１００では、ブロック単位で情報の記憶の信頼性が高められている。そして、各ＲＡＩＤグループ１６０は、各ブロックに、アドレスとして、ＲＡＩＤグループ１６０を跨いだ、ストレージ装置１００全体として一連の通し番号（ＬＢＡ：Ｌｏｇｉｃａｌ  Ｂｌｏｃｋ  Ａｄｄｒｅｓｓ）が割り当てられている。
【００９９】
これらｎ＋１個のＲＡＩＤグループ１６０が、アドレスが割り当てられている複数の記憶部の一例に相当する。
【０１００】
サーバ２００は、ストレージ装置１００に対してライトコマンドやリードコマンドを発行して情報の読書きを指示する。各コマンドには、アクセス対象を指定する情報として、次のような３つの情報が付されている。１つ目は、アクセス対象のＲＡＩＤグループ１６０の番号を示すアクセスＲＧ番号である。２つ目は、アクセス対象となる一連のブロックのうち先頭に位置するブロックのＬＢＡ（先頭ＬＢＡ）である。３つ目は、アクセス対象の一連のブロックのブロック数である。
【０１０１】
ストレージ装置１００は、図５にも示すように、フロントエンド１００ａとバックエンド１００ｂとを有している。
【０１０２】
まず、フロントエンド１００ａについて説明する。
【０１０３】
フロントエンド１００ａには、図５にも示すキャッシュメモリ１１２の他に、機能ブロックとして、リードライト処理部１５１、キャッシュページ管理部１５２、およびキャッシュページ管理テーブル１５３が設けられている。
【０１０４】
キャッシュメモリ１１２は、詳細については後述するが、ｎ個のブロックを各々が有する複数のキャッシュページを有している。
【０１０５】
本実施形態では、各キャッシュページが、次のような４つの管理状態に管理される。
【０１０６】
１つ目の管理状態は、キャッシュページが空きページであるインバリッド状態である。
【０１０７】
２つ目の管理状態は、キャッシュページに、上書き可能な情報（バリッド情報）が記憶されているバリッド状態である。
【０１０８】
３つ目の管理状態は、キャッシュページに、アクセス対象のブロックへの書込み前の書込み情報（ダーティ情報）が記憶されているダーティ状態である。
【０１０９】
４つ目の管理状態は、キャッシュページに、次のようなグレイ情報が記憶されているグレイ状態である。グレイ情報とは、後述の退避処理や複製処理により、書込み先や読出し元のＲＡＩＤグループ１６０以外のＲＡＩＤグループ１６０に書き込まれる情報をいう。また、退避処理や複製処理により情報が書き込まれた後は、後述のディスクページ管理テーブル１５８に、その情報の本来の書込み先や読出し元のＲＡＩＤグループ１６０がどのＲＡＩＤグループ１６０であるかといった情報が記憶されることとなる。
【０１１０】
一旦キャッシュページに記憶された情報は、新規の情報が上書きされるまで記憶され続ける。
【０１１１】
リードライト処理部１５１は、サーバ２００が発行したライトコマンドやリードコマンドを受信して、各コマンドに応じた処理を実行する。このリードライト処理部１５１は、ハードウェアとしては、図５に示すキャッシュ制御部１１１がその役割を担っている。
【０１１２】
ライトコマンドを受信すると、リードライト処理部１５１は、キャッシュメモリ１１２内に、書込み情報の記憶のためのキャッシュページを確保した後に、サーバ２００に、書込み情報の転送を開始しても良い旨を通知する応答信号を送信する。サーバ２００は、その応答信号を受信すると、書込み情報の転送を開始する。リードライト処理部１５１は、サーバ２００から転送されてくる書込み情報を、確保したキャッシュページに記憶する。リードライト処理部１５１は、その記憶後、サーバ２００に、ライトコマンドに応じた処理が完了したことを通知する完了通知信号を送信する。キャッシュメモリ１１２に記憶された書込み情報は、バックエンド１００ｂで実行されるライトバック処理によってＲＡＩＤグループ１６０に書き込まれることとなる。
【０１１３】
リードコマンドを受信すると、リードライト処理部１５１は、キャッシュメモリ１１２内のバリッド情報やダーティ情報の中に、リードコマンドで要求されている読出し情報があるか否かを判定する。キャッシュメモリ１１２内に読出し情報がある場合、リードライト処理部１５１は、キャッシュメモリ１１２からその読出し情報を読み出してサーバ２００に転送する。一方、キャッシュメモリ１１２内に読出し情報が無い場合、リードライト処理部１５１は、キャッシュメモリ１１２内に、読出し情報の記憶のためのキャッシュページを確保する。そして、このときには、バックエンド１００ｂでのステージング処理によって読出し情報が、その確保されたキャッシュメモリ１１２に記憶される。すると、リードライト処理部１５１は、キャッシュメモリ１１２からその読出し情報を読みだしてサーバ２００に転送する。サーバ２００への読出し情報の転送後、リードライト処理部１５１は、サーバ２００に、リードコマンドに応じた処理が完了したことを通知する完了通知信号を送信する。
【０１１４】
以下、キャッシュメモリ１１２について詳細に説明する。
【０１１５】
図７は、キャッシュメモリを詳細に示す図である。
【０１１６】
この図７に示すように、キャッシュメモリ１１２は、複数のキャッシュページ１１２ａを有しており、各キャッシュページ１１２ａには、「０」番から始まる通し番号（Ｃページ番号）が割り当てられている。そして、各キャッシュページ１１２ａは、各々が５１２バイトの容量を有するｎ個のブロック１１２ａ＿１を有している。
【０１１７】
図６に示すリードライト処理部１５１は、ライトコマンドやリードコマンドを受信すると、複数のキャッシュページ１１２ａの中から、書込み情報や読出し情報の記憶に十分なキャッシュページ１１２ａを確保する。
【０１１８】
ここで、書込み情報は、ライトコマンドにおいてアクセスＲＧ番号で指定されたアクセス対象のＲＡＩＤグループ１６０内の、そのライトコマンドで先頭ＬＢＡとブロック数で指定されたアクセス対象のブロックに書き込まれる情報である。
【０１１９】
また、読出し情報は、リードコマンドにおいてアクセスＲＧ番号で指定されたアクセス対象のＲＡＩＤグループ１６０内の、そのリードコマンドで先頭ＬＢＡとブロック数で指定されたアクセス対象のブロックに書き込まれる情報である。
【０１２０】
ここで、リードライト処理部１５１は、このストレージ装置１００内の複数のブロックを、キャッシュページ１１２ａのブロック数であるｎ個ずつに区分けしたときの各区分の存在箇所を表すＬＢＡ範囲を、不図示のメモリに記憶している。
【０１２１】
リードライト処理部１５１は、キャッシュページ１１２ａの確保の際には、まず、その不図示のメモリに記憶しているＬＢＡ範囲を参照して、アクセス対象のブロックを包含する１つ又は一連の区分を探す。
【０１２２】
そして、そのような区分を探し出すと、リードライト処理部１５１は、基本的に、以下に述べる処理を実行する。
【０１２３】
この基本的な処理では、インバリッド状態あるいはバリッド状態のキャッシュページ１１２ａの中から、上記のように探し出した区分と同数のキャッシュページ１１２ａを選択する。このキャッシュページ１１２ａの選択については後で詳細に説明する。さらに、その選択した１つ又は一連のキャッシュページ１１２ａに、上記のように探し出した１つ又は一連の区分を一対一に対応付ける。そして、リードライト処理部１５１は、キャッシュページ１１２ａに対応付けた区分の存在箇所を表すＬＢＡを、キャッシュページ管理部１５２に命じてキャッシュページ管理テーブル１５３に格納させる。尚、この区分の存在箇所を表すＬＢＡについてここでは特定しないが、例えば、その区分における先頭のブロックのＬＢＡ等が、区分の存在箇所を表すＬＢＡとして挙げられる。
【０１２４】
ここで、過去のコマンドに応じて確保されたキャッシュページ１１２ａの中に、今回のアクセス対象のブロックを包含する区分に対応付けられているものが存在する可能性がある。このため、リードライト処理部１５１は、上記の基本的な処理に先だって、キャッシュページ管理テーブル１５３に格納されているＬＢＡを参照して、このようなキャッシュページ１１２ａが存在するか否かを判定する。
【０１２５】
そして、そのようなキャッシュページ１１２ａが全く存在しない場合、リードライト処理部１５１は、上記の基本的な処理を実行する。
【０１２６】
一方、今回のアクセス対象のブロックを包含する１つ又は一連の区分の全てについて、キャッシュページ１１２ａが存在する場合、リードライト処理部１５１は、その既存のキャッシュページ１１２ａを今回の書込み情報や読出し情報の記憶先として採用する。
【０１２７】
また、今回のアクセス対象のブロックを包含する区分が一連の区分であって、それら一連の区分のうちの一部の区分についてはキャッシュページ１１２ａが存在するが、他の区分についてはキャッシュページ１１２ａが存在しない場合がある。
【０１２８】
この場合には、キャッシュページ１１２ａが存在しない区分について、新たなキャッシュページ１１２ａの選択と、その区分との対応付けと、その区分の存在箇所を表すＬＢＡの記録とが行われる。そして、その新たなキャッシュページ１１２ａと、既存のキャッシュページ１１２ａとを合わせた一連のキャッシュページ１１２ａが、今回の書込み情報や読出し情報の記憶先として採用される。
【０１２９】
以上に説明した処理によるキャッシュページ１１２ａの確保あるいは採用のことを、以下では一括りにしてキャッシュページ１１２ａの確保と呼ぶ。
【０１３０】
このように確保されたキャッシュページ１１２ａに書込み情報や読出し情報が格納されたときには、各キャッシュページ１１２ａ内のどのブロック１１２ａ＿１に情報が記憶されているかがビットマップとして記述される。このビットマップは、１ブロックに１ビットの符号を対応させたｎビットの情報である。符号「０」が、対応するブロック１１２ａ＿１に情報が未記憶であることを示し、符号「１」が、対応するブロック１１２ａ＿１に情報が記憶されていることを示す。
【０１３１】
キャッシュページ管理部１５２は、キャッシュメモリ１１２内の各キャッシュページ１１２ａの管理状態を、上述したインバリッド状態、ダーティ状態、バリッド状態、およびグレイ状態の４つの管理状態の間で切り替える。このキャッシュページ管理部１５２は、ハードウェアとしては、図５に示すキャッシュ制御部１１１がその役割を担っている。
【０１３２】
キャッシュページ管理部１５２は、管理状態の切替えを次のように実行する。
【０１３３】
図８は、キャッシュページ管理部によるキャッシュページの管理状態の切替えを示す図である。
【０１３４】
ライトコマンドを受けてリードライト処理部１５１によって確保されたキャッシュページ１１２ａの管理状態が、インバリッド状態であったとする。すると、キャッシュページ管理部１５２は、書込み情報が記憶されるキャッシュページ１１２ａの管理状態をダーティ状態に切り替える（ステップＳ１０１）。
【０１３５】
また、バリッド状態のキャッシュページ１１２ａが対応付けられている区分と同じ区分への書込み情報の書込みがライトコマンドで指示されたとする。この場合には、そのバリッド状態のキャッシュページ１１２ａにその書込み情報が記憶される。そして、キャッシュページ管理部１５２は、その書込み情報が記憶されるキャッシュページ１１２ａの管理状態をダーティ状態に切り替える（ステップＳ１０２）。
【０１３６】
ここで、ライトコマンドで指定されたアクセス対象のＲＡＩＤグループ１６０が次のようなビジー状態である場合には、キャッシュページ管理部１５２は、キャッシュページ１１２ａの管理状態をダーティ状態からグレイ状態に切り替える（ステップＳ１０３）。
【０１３７】
ビジー状態とは、後述のキュー管理部１５４ａに格納されているジョブの数（アクセス量）が、予め決められた閾値以上となった高負荷状態が、予め決められた時間以上に亘って続いている状態をいう。
【０１３８】
一方、アクセス対象のＲＡＩＤグループ１６０がビジー状態ではない場合には、キャッシュページ１１２ａ内の書込み情報は、ライトバック処理により、アクセス対象のＲＡＩＤグループ１６０におけるアクセス対象のブロックに書き込まれる。このときには、キャッシュページ管理部１５２は、その書込み情報が記憶されていたキャッシュページ１１２ａの管理状態をバリッド状態に切り替える（ステップＳ１０４）。
【０１３９】
また、リードコマンドを受けてリードライト処理部１５１によって確保されたキャッシュページ１１２ａの管理状態が、インバリッド状態であったとする。すると、キャッシュページ管理部１５２は、読出し情報が記憶されるキャッシュページ１１２ａの管理状態をバリッド状態に切り替える（ステップＳ１０５）。
【０１４０】
このとき、リードコマンドで指定されたアクセス対象のＲＡＩＤグループ１６０がビジー状態である場合には、キャッシュページ管理部１５２は、キャッシュページ１１２ａの管理状態をバリッド状態からグレイ状態に切り替える（ステップＳ１０６）。
【０１４１】
グレイ状態にあるキャッシュページ１１２ａ内の情報は、バックエンド１００ｂで実行される後述の退避処理や複製処理によって、アクセス対象のＲＡＩＤグループ１６０以外のＲＡＩＤグループ１６０に書き込まれる。そして、これらの処理が終了した時点で、キャッシュページ管理部１５２は、そのキャッシュページ１１２ａの管理状態を、バリッド状態に切り替える（ステップＳ１０７）。
【０１４２】
また、バリッド状態のキャッシュページ１１２ａについては、現時点で対応付けられている区分とは別の区分に新たに対応付ける際に、キャッシュページ管理部１５２よって、管理状態がインバリッド状態に切り替えられる（ステップＳ１０８）。そして、インバリッド状態に切り替えられたキャッシュページ１１２ａは、その新たな区分への書込み情報や、その新たな区分からの読出し情報の記憶先として使われる。
【０１４３】
キャッシュページ管理部１５２は、以上に説明したキャッシュページ１１２ａの管理状態の切替えを、各キャッシュページ１１２ａについて用意されている次のような４つの状態フラグを設定又は解除することによって行う。１つ目の状態フラグは、インバリッド状態であるか否かを表す状態フラグ（インバリッドフラグ）である。２つ目の状態フラグは、バリッド状態であるか否かを表す状態フラグ（バリッドフラグ）である。３つ目の状態フラグは、ダーティ状態であるか否かを表す状態フラグ（ダーティフラグ）である。４つ目の状態フラグは、グレイ状態であるか否かを表す状態フラグ（グレイフラグ）である。
【０１４４】
本実施形態では、以下に説明するように、キャッシュページ管理テーブル１５３内に、各キャッシュページ１１２ａのＣページ番号毎に、これら４つの状態フラグが格納されている。
【０１４５】
図９は、キャッシュページ管理テーブルの詳細を示す図である。
【０１４６】
キャッシュページ管理テーブル１５３は、Ｃページ番号格納部１５３ａ、Ｃページ状態格納部１５３ｂ、アクセスＲＧ番号格納部１５３ｃ、ＬＢＡ格納部１５３ｄ、バリッドビットマップ格納部１５３ｅ、ダーティビットマップ格納部１５３ｆを備えている。キャッシュページ管理テーブル１５３は、ハードウェアとしては、図５に示すキャッシュ制御部１１１内のＲＡＭ１１１ｂ中の予め決められた領域がその役割を担っている。
【０１４７】
Ｃページ番号格納部１５３ａには、各キャッシュページ１１２ａに割り当てられたＣページ番号が格納される。
【０１４８】
Ｃページ状態格納部１５３ｂには、インバリッドフラグ、バリッドフラグ、ダーティフラグ、グレイフラグが格納される。キャッシュページ管理部１５２は、これらの状態フラグを設定又は解除することにより、各キャッシュページ１１２ａの管理状態の切替えを行う。
【０１４９】
例えば、キャッシュページ１１２ａの管理状態をインバリッド状態からバリッド状態に切り替えるときには、キャッシュページ管理部１５２は、そのキャッシュページ１１２ａのＣページ番号に対応したインバリッドフラグを解除してバリッドフラグを設定する。
【０１５０】
アクセスＲＧ番号格納部１５３ｃには、ライトコマンドやリードコマンドに応じた情報が記憶されているキャッシュページ１１２ａについて、各コマンドで指定されたアクセスＲＧ番号が格納される。
【０１５１】
ＬＢＡ格納部１５３ｄには、上記のように確保されたキャッシュページ１１２ａについて、そのキャッシュページ１１２ａに対応付けられた上記の区分の存在箇所を表すＬＢＡが格納される。
【０１５２】
バリッドビットマップ格納部１５３ｅには、各キャッシュページ１１２ａ内の各ブロック１１２ａ＿１に、バリッド情報が記憶されているか否かを記述したバリッドビットマップが格納される。バリッドビットマップは、１ブロックに１ビットの符号を対応させたｎビットの情報である。符号「０」が、対応するブロック１１２ａ＿１にバリッド情報が未記憶であることを示し、符号「１」が、対応するブロック１１２ａ＿１にバリッド情報が記憶されていることを示す。
【０１５３】
ダーティビットマップ格納部１５３ｆには、各キャッシュページ１１２ａ内の各ブロック１１２ａ＿１に、ダーティ情報が記憶されているか否かを記述したダーティビットマップが格納される。ダーティビットマップは、１ブロックに１ビットの符号を対応させたｎビットの情報である。符号「０」が、対応するブロック１１２ａ＿１にダーティ情報が未記憶であることを示し、符号「１」が、対応するブロック１１２ａ＿１にダーティ情報が記憶されていることを示す。
【０１５４】
上述したように、過去のコマンドに応じて確保されたキャッシュページ１１２ａの中に、アクセス対象のブロックを包含する１つ又は一連の区分のうち少なくとも一部について、対応するものが存在しない場合に、新たなキャッシュページ１１２ａが確保される。
【０１５５】
そして、そのときには、基本的な処理として上述したように、インバリッド状態あるいはバリッド状態のキャッシュページ１１２ａの中から必要数のキャッシュページ１１２ａが選択される。
【０１５６】
以下、このキャッシュページ１１２ａの選択について説明する。
【０１５７】
この選択に当たって、図６のリードライト処理部１５１は、キャッシュページ管理部テーブル１５３のＣページ状態格納部１５３ｂ内の状態フラグを参照する。この参照により、リードライト処理部１５１は、インバリッド状態あるいはバリッド状態のいずれかのキャッシュページ１１２ａを探す。
【０１５８】
ここで、キャッシュページ１１２ａの探索は、インバリッド状態のキャッシュページ１１２ａについての探索が優先して行われる。その探索の結果、インバリッド状態のキャッシュページ１１２ａが必要数より多く見つかった場合には、リードライト処理部１５１は、次のような選択を行う。この場合、リードライト処理部１５１は、見つかったキャッシュページ１１２ａの中から、Ｃページ番号の小さいものから優先して必要数だけ選択する。
【０１５９】
インバリッド状態のキャッシュページ１１２ａが見つからない場合、あるいは、見つかったインバリッド状態のキャッシュページ１１２ａの数が必要数に満たない場合、バリッド状態のキャッシュページ１１２ａについての探索が行われる。そして、バリッド状態のキャッシュページ１１２ａが必要数あるいは不足数より多く見つかった場合には、リードライト処理部１５１は、次のような選択を行う。
【０１６０】
上述したように、バリッド状態のキャッシュページ１１２ａ内の情報は、リードコマンドに応じて読み出されることがある。そこで、本実施形態では、バリッド状態のキャッシュページ１１２ａの選択方法として、記憶情報に対する読出し回数が少ないものを優先して選択するＬＲＵ（Ｌｅａｓｔ  Ｒｅｃｅｎｔｌｙ  Ｕｓｅｄ）方式が採用されている。
【０１６１】
尚、インバリッド状態あるいはバリッド状態のキャッシュページ１１２ａの選択方法は、上述した方法に限るものではない。この選択方法は、例えば、複数のキャッシュページ１１２ａについて優先順位を予め決めておき、選択をその優先順位に従って行う等といったものであっても良い。
【０１６２】
リードライト処理部１５１は、以上に説明した選択を含むキャッシュページ１１２ａの確保処理が終了すると、コマンドがライトコマンドの場合には、サーバ２００に、書込み情報の転送を開始しても良い旨を通知する応答信号を送信する。そして、サーバ２００から書込み情報が転送されてくると、その書込み情報が、リードライト処理部１５１によってキャッシュページ１１２ａに記憶される。
【０１６３】
ここで、リードライト処理部１５１は、キャッシュページ１１２ａへの書込み情報の記憶が終了すると、バックエンド１００ｂに、その書込み情報についてのライトバック処理の実行を要求する信号（ライトバック要求信号）を送信する。
【０１６４】
ライトバック要求信号には、書込み情報が記憶されているキャッシュページ１１２ａのＣページ番号、アクセスＲＧ番号、および、そのキャッシュページ１１２ａに対応付けられた上記の区分の存在箇所を表すＬＢＡが添付されている。このライトバック要求信号に応じてバックエンド１００ｂで実行されるライトバック処理により、キャッシュページ１１２ａに記憶された書込み情報はＲＡＩＤグループ１６０に書き込まれる。
【０１６５】
また、コマンドがリードコマンドの場合には、リードライト処理部１５１は、バックエンド１００ｂに、ステージング処理の実行を要求する信号（ステージング要求信号）を送信する。ステージング要求信号には、読出し情報の記憶のために確保されたキャッシュページ１１２ａのＣページ番号、アクセスＲＧ番号、および、リードコマンドで指定されたアクセス対象のブロックの先頭ＬＢＡとブロック数が添付されている。このステージング要求信号に応じてバックエンド１００ｂで実行されるステージング処理により、読出し情報がＲＡＩＤグループ１６０から読み出されてキャッシュページ１１２ａに記憶される。
【０１６６】
さらに、リードライト処理部１５１は、キャッシュページ管理部１５２に次のような情報を伝える。即ち、リードライト処理部１５１は、確保したキャッシュページ１１２ａのＣページ番号、その確保の契機となったコマンドの種類、アクセス対象のＲＡＩＤグループ１６０の状態を伝える。
【０１６７】
ここで、ＲＡＩＤグループ１６０の状態とは、そのＲＡＩＤグループ１６０が通常通り情報の出し入れが可能な状態や上記のビジー状態を含む後述の３種類の状態のうちのいずれかをいう。リードライト処理部１５１は、これも後述する負荷管理テーブル１５６を参照することで、このＲＡＩＤグループ１６０の状態を把握する。
【０１６８】
さらに、リードライト処理部１５１は、コマンドで指定されたアクセスＲＧ番号と、確保したキャッシュページ１１２ａに対応付けた区分の存在箇所を表すＬＢＡもキャッシュページ管理部１５２に伝える。
【０１６９】
キャッシュページ管理部１５２は、リードライト処理部１５１から伝えられたＣページ番号、コマンドの種類、アクセス対象のＲＡＩＤグループ１６０の状態に基づいて、管理状態の切替えを行う。即ち、キャッシュページ管理部１５２は、キャッシュページ管理テーブル１５３において、その伝えられたＣページ番号に対応している、Ｃページ状態格納部１５３ｂ内の状態フラグを設定又は解除する。この状態フラグの設定又は解除により、キャッシュページ管理部１５２は、図８を参照して説明した、キャッシュページ１１２ａの管理状態の切替えを行う。
【０１７０】
また、キャッシュページ管理部１５２は、リードライト処理部１５１から伝えられたアクセスＲＧ番号を、上記のように伝えられたＣページ番号に対応しているアクセスＲＧ番号格納部１５３ｃに格納する。また、キャッシュページ管理部１５２は、リードライト処理部１５１から伝えられたＬＢＡを、そのＣページ番号に対応しているＬＢＡ格納部１５３ｄに格納する。
【０１７１】
さらに、リードライト処理部１５１は、キャッシュページ１１２ａへの情報の記憶の際に、キャッシュページ１１２ａのどのブロック１１２ａ＿１に情報を記憶したかをキャッシュページ管理部１５２に伝える。
【０１７２】
すると、キャッシュページ管理部１５２は、バリッドビットマップあるいはダーティビットマップにおける、その伝えられたブロック１１２ａ＿１に対応する符号を「１」にする。このとき、リードライト処理部１５１から伝えられたコマンドの種類がリードコマンドであった場合には、キャッシュページ管理部１５２は、バリッドビットマップ中の符号を「１」にする。また、そのコマンドの種類がライトコマンドであった場合には、キャッシュページ管理部１５２は、ダーティビットマップ中の符号を「１」にする。
【０１７３】
また、キャッシュページ管理部１５２は、キャッシュページ１１２ａの管理状態をダーティ状態からバリッド状態に切り替える際に、そのキャッシュページ１１２ａに対応付けられたダーティビットマップ中の符号を「０」にする。また、キャッシュページ管理部１５２は、キャッシュページ１１２ａの管理状態をバリッド状態からインバリッド状態に切り替える際に、バリッドビットマップ中の符号を「０」にする。
【０１７４】
キャッシュページ管理部１５２によるビットマップ操作には、以上に説明した操作以外にも、例えばバックエンド１００ｂでの処理に応じて行われる操作等もある。このビットマップ操作については、後で、ストレージ装置１００における複数のケースの処理について説明するときに併せて説明する。
【０１７５】
次に、図６に示すストレージ装置１００のバックエンド１００ｂについて説明する。
【０１７６】
バックエンド１００ｂには、複数のＲＡＩＤグループ１６０の他に、機能ブロックとして、アクセス処理部１５４、負荷管理部１５５、負荷管理テーブル１５６、ディスクページ管理部１５７、およびディスクページ管理テーブル１５８が設けられている。
【０１７７】
アクセス処理部１５４は、後述のライトバック処理とステージング処理とリストア処理とを実行する。このアクセス処理部１５４は、ハードウェアとしては、図５に示すディスク制御部１１３がその役割を担っている。
【０１７８】
アクセス処理部１５４は、さらに、機能ブロックとして、キュー管理部１５４ａを有している。上述したように、リードライト処理部１５１からは、ライトコマンドに応じてライトバック要求信号が送られ、リードコマンドに応じてステージング要求信号が送られてくる。アクセス処理部１５４はこれらの要求信号を受信してキュー管理部１５４ａに渡す。
【０１７９】
キュー管理部１５４ａは、これらの要求信号を渡されると、各要求信号が要求する処理を示すジョブを、要求信号が渡された順番に記憶する。そして、アクセス処理部１５４は、このキュー管理部１５４ａに格納されているジョブが表す処理を、そのジョブの格納順で実行する。
【０１８０】
負荷管理部１５５は、ストレージ装置１００内の各ＲＡＩＤグループ１６０について、キュー管理部１５４ａに格納されているジョブのうちそのＲＡＩＤグループ１６０をアクセス対象としたジョブの数（アクセス量）を数える。さらに、負荷管理部１５５は、そのように得たアクセス量と、不図示のタイマで計時される時間とに基づいて、次のような処理を行う。即ち、負荷管理部１５５は、各ＲＡＩＤグループ１６０の状態を、以下に説明するノーマル状態、ビジー状態、およびリストア状態の３つの状態に判別する処理を定期的に実行する。
【０１８１】
ノーマル状態とは、アクセス量が、予め決められた閾値未満となっている低負荷状態であるか、アクセス量が閾値以上となった高負荷状態が続いている時間が、予め決められた時間未満である状態をいう。
【０１８２】
ビジー状態とは、上述したように、アクセス量が、予め決められた閾値以上となった高負荷状態が、予め決められた時間以上に亘って続いている状態をいう。
【０１８３】
リストア状態とは、一旦ビジー状態となったＲＡＩＤグループ１６０について、アクセス量が減少した結果、アクセス量が閾値未満となっている低負荷状態が予め決められた時間以上に亘って続いた後、後述のリストア処理が完了するまでの状態である。
【０１８４】
負荷管理部１５５は、ハードウェアとしては、図５に示すディスク制御部１１３がその役割を担っている。また、この負荷管理部１５５が、複数の記憶部それぞれの状態を、各記憶部に対するアクセス量に基づいて、相対的にアクセス量が多い第１状態と相対的にアクセス量が少ない第２状態とに判別する状態判別部の一例に相当する。また、ビジー状態が第１状態の一例に相当し、ノーマル状態とリストア状態が第２状態の一例に相当する。
【０１８５】
図１０は、負荷管理部によるＲＡＩＤグループの状態の判別を示す図である。
【０１８６】
各ＲＡＩＤグループ１６０の初期状態は、いずれもノーマル状態である。
【０１８７】
負荷管理部１５５は、各ＲＡＩＤグループ１６０に対するアクセス量を、予め決められた閾値と比較する。そして、アクセス量が閾値以上である高負荷状態のＲＡＩＤグループ１６０があると、負荷管理部１５５は、その高負荷状態の継続時間を不図示のタイマを使って計時する。高負荷状態のＲＡＩＤグループ１６０について、その高負荷状態の継続時間が、予め決められた時間に達すると、負荷管理部１５５は、そのＲＡＩＤグループ１６０の状態をビジー状態に判別する（ステップＳ２０１）。
【０１８８】
また、負荷管理部１５５は、過去にビジー状態に判別したＲＡＩＤグループ１６０のうち、アクセス量が閾値未満の低負荷状態のものがあると、その低負荷状態の継続時間を不図示のタイマを使って計時する。そして、その計時において、高負荷状態の継続時間が、予め決められた時間に達したとする。すると、負荷管理部１５５は、そのＲＡＩＤグループ１６０の状態をリストア状態に判別する（ステップＳ２０２）。
【０１８９】
負荷管理部１５５は、任意のＲＡＩＤグループ１６０の状態をリストア状態に判別すると、その旨を図６に示すアクセス処理部１５４に通知する。すると、アクセス処理部１５４が、そのＲＡＩＤグループ１６０についてリストア処理を実行する。
【０１９０】
リストア処理では、詳細については後述するように、複製処理で書き込まれた後に不要となった読出し情報の無効化や、退避処理で書き込まれた情報の本来の書込み先への書込み等が行われる。負荷管理部１５５からアクセス処理部１５４への上記の通知は、このようなリストア処理実行のトリガとなる。
【０１９１】
ここで、このリストア処理における、上記の本来の書込み先への書込みでは、ステージング処理の一種である後述のリストア時ステージング処理Ｃ１と、ライトバック処理の一種である後述の復元処理Ｃ２が実行される。これらの処理の実行も、各処理を表すジョブの、キュー管理部１５４ａへの格納を経て行われる。従って、負荷管理部１５５は、リストア処理に係るこれらのジョブも、ＲＡＩＤグループ１６０のアクセス量として数えることとなる。
【０１９２】
アクセス処理部１５４は、リストア処理が終了すると、その旨を負荷管理部１５５に通知する。
【０１９３】
負荷管理部１５５は、リストア状態に判別したＲＡＩＤグループ１６０について、アクセス処理部１５４からリストア処理が終了した旨の通知を受けると、そのＲＡＩＤグループ１６０の状態をノーマル状態に判別する（ステップＳ２０３）。
【０１９４】
負荷管理部１５５は、以上に説明した判別結果を、負荷管理テーブル１５６に、以下に説明するように記録する。
【０１９５】
図１１は、負荷管理テーブルの詳細を示す図である。
【０１９６】
負荷管理テーブル１５６は、ＲＧ番号格納部１５６ａ、ＲＡＩＤ状態格納部１５６ｂ、Ｄページ先頭ＬＢＡ格納部１５６ｃ、Ｄページ容量格納部１５６ｄ、Ｄページ使用量格納部１５６ｅを備えている。負荷管理テーブル１５６は、ハードウェアとしては、図５に示すディスク制御部１１３内のＲＡＭ１１３ｂ中の予め決められた領域がその役割を担っている。
【０１９７】
ＲＧ番号格納部１５６ａには、各ＲＡＩＤグループ１６０を表した「０」番から「ｎ」番までの番号が昇順で格納されている。
【０１９８】
ＲＡＩＤ状態格納部１５６ｂには、次のような３つの負荷状態フラグが格納される。１つ目の負荷状態フラグは、ノーマル状態であるか否かを表す負荷状態フラグ（ノーマルフラグ）である。２つ目の負荷状態フラグは、ビジー状態であるか否かを表す負荷状態フラグ（ビジーフラグ）である。３つ目の負荷状態フラグは、リストア状態であるか否かを表す負荷状態フラグ（リストアフラグ）である。負荷管理部１５５は、これらの負荷状態フラグを設定又は解除することにより、各ＲＡＩＤグループ１６０について判別した状態をこの負荷管理テーブル１５６に記録する。
【０１９９】
ここで、この図１１の負荷管理テーブル１５６におけるＲＧ番号格納部１５６ａおよびＲＡＩＤ状態格納部１５６ｂ以外の格納部についての説明は後に回すこととして、図６に示すバックエンド１００ｂについての説明に戻る。
【０２００】
上述したように、アクセス処理部１５４は、キュー管理部１５４ａに格納されているジョブが表すライトバック処理やステージング処理を、そのジョブの格納順で実行する。
【０２０１】
まず、ライトバック処理について説明する。
【０２０２】
ライトバック処理では、そのライトバック処理でＲＡＩＤグループ１６０に書き込まれる情報を記憶しているキャッシュページ１１２ａが、ダーティ状態あるいはグレイ状態であるか否かが、キャッシュページ管理テーブル１５３の参照によって判定される。
【０２０３】
そして、キャッシュページ１１２ａがダーティ状態あるいはグレイ状態であった場合には、そのキャッシュページ１１２ａから情報が読み出されてＲＡＩＤグループ１６０に書き込まれる。
【０２０４】
ここで、このライトバック処理には、通常の書込み処理Ａ１と、退避処理Ａ２と、複製処理Ａ３とがある。尚、リストア処理で実行される復元処理Ｃ２もライトバック処理の一種であるが、この復元処理Ｃ２については、後でリストア処理を説明する際に併せて説明する。
【０２０５】
通常の書込み処理Ａ１は、ダーティ状態のキャッシュページ１１２ａに記憶されている書込み情報を、アクセス対象のＲＡＩＤグループ１６０に書き込む処理である。この通常の書込み処理Ａ１は、アクセス対象のＲＡＩＤグループ１６０が上記のノーマル状態である場合に行われる。
【０２０６】
退避処理Ａ２は、書込み情報の書込み先であるアクセス対象のＲＡＩＤグループ１６０が、上記のビジー状態である場合に行われる。退避処理Ａ２では、キャッシュページ１１２ａに記憶されている書込み情報が、アクセス対象のＲＡＩＤグループ１６０以外の、ノーマル状態のＲＡＩＤグループ１６０に書き込まれる。
【０２０７】
複製処理Ａ３は、グレイ状態のキャッシュページ１１２ａに記憶されている読出し情報の読出し元であるアクセス対象のＲＡＩＤグループ１６０が、上記のビジー状態である場合に行われる。複製処理Ａ３でも、キャッシュページ１１２ａに記憶されている読出し情報が、アクセス対象のＲＡＩＤグループ１６０以外の、ノーマル状態のＲＡＩＤグループ１６０に書き込まれる。
【０２０８】
そして、上記のアクセス対象のＲＡＩＤグループ１６０が未だビジー状態であるときに再びその読出し情報を対象としたリードコマンドが送られてきた場合には、複製先となったノーマル状態のＲＡＩＤグループ１６０からその読出し情報が迅速に読み出される。
【０２０９】
各ＲＡＩＤグループ１６０では、予め決められたＬＢＡ範囲の領域が、退避処理Ａ２および複製処理Ａ３において情報の書込みに利用されるディスクページ１６１に割り当てられている。
【０２１０】
尚、サーバ２００に対しては、このディスクページ１６１に相当するＬＢＡ範囲を除いた上で一連の通し番号とした見かけ上のＬＢＡが公開されている。サーバ２００がライトコマンドやリードコマンドで指定する、アクセス対象のブロックについての先頭ＬＢＡは、この見かけ上のＬＢＡである。上述したリードライト処理部１５１は、サーバ２００からコマンドを受信すると、このコマンドで指定されている先頭ＬＢＡを、ディスクページ１６１に相当するＬＢＡ範囲を含む実際のＬＢＡに変換する。そして、ストレージ装置１００内での処理は、この実際のＬＢＡを使って行われる。以下、この実際のＬＢＡのことを単にＬＢＡと呼ぶ。
【０２１１】
ここで、図１１を参照して、負荷管理テーブル１５６におけるＲＧ番号格納部１５６ａおよびＲＡＩＤ状態格納部１５６ｂ以外の格納部について説明する。
【０２１２】
上述したように、この負荷管理テーブル１５６は、Ｄページ先頭ＬＢＡ格納部１５６ｃ、Ｄページ容量格納部１５６ｄ、Ｄページ使用量格納部１５６ｅを備えている。
【０２１３】
Ｄページ先頭ＬＢＡ格納部１５６ｃには、各ＲＡＩＤグループ１６０内でディスクページ１６１に割り当てられている一連のブロックのうちの先頭のブロックのＬＢＡが格納される。
【０２１４】
Ｄページ容量格納部１５６ｄには、各ＲＡＩＤグループ１６０内でディスクページ１６１に割り当てられている一連のブロックにおけるブロック数が格納される。ここで、本実施形態では、１つのディスクページ１６１として、上記のキャッシュページ１１２ａのブロック数（ｎ個）と同数のブロックが割り当てられている。
【０２１５】
尚、ディスクページ１つ分のブロック数は、このようにキャッシュページのブロック数と同数に限るものではなく、例えば、キャッシュページのブロック数の整数倍の数等であっても良い。
【０２１６】
Ｄページ使用量格納部１５６ｅには、ディスクページ１６１の使用量として、上記の退避処理Ａ２や複製処理Ａ３によって情報が書き込まれているブロックの数が格納される。
【０２１７】
尚、ディスクページの使用状況を示す値としては、このように情報が書き込まれているブロックの数に限るものではなく、例えば、未使用のブロックの数を採用しても良い。
【０２１８】
図６に示すアクセス処理部１５４は、退避処理Ａ２や複製処理Ａ３を実行すると、それらの処理で情報を書き込んだディスクページ１６１を有するＲＡＩＤグループ１６０の番号と、その情報を書き込んだブロックの数を負荷管理部１５５に伝える。
【０２１９】
負荷管理部１５５は、負荷管理テーブル１５６のＤページ使用量格納部１５６ｅにおいて、その伝えられた番号に対応する欄に、伝えられたブロック数を格納する。
【０２２０】
以上で、図１１の負荷管理テーブル１５６についての説明を終了する。
【０２２１】
次に、図６に戻って、アクセス処理部１５４で実行されるステージング処理について説明する。
【０２２２】
ステージング処理は、読出し情報をＲＡＩＤグループ１６０から読み出して、リードライト処理部１５１が確保したキャッシュページ１１２ａに記憶する処理である。このステージング処理には、読出し元からのステージング処理Ｂ１と、読出し元以外からのステージング処理Ｂ２とがある。尚、リストア処理で実行されるリストア時ステージング処理Ｃ１もステージング処理の一種であるが、このリストア時ステージング処理Ｃ１についても、後でリストア処理を説明する際に併せて説明する。
【０２２３】
読出し元からのステージング処理Ｂ１は、アクセス対象のＲＡＩＤグループ１６０から読出し情報を読み出してキャッシュページ１１２ａに記憶する処理である。
【０２２４】
読出し元以外からのステージング処理Ｂ２は、読出し情報が、退避処理Ａ２や複製処理Ａ３で読出し元以外のＲＡＩＤグループ１６０に書き込まれた情報である場合に実行される。この処理では、アクセス先が、アクセス対象のＲＡＩＤグループ１６０から、退避処理Ａ２での退避先や複製処理Ａ３での複製先のＲＡＩＤグループ１６０に変更される。そして、読出し情報が、その変更されたＲＡＩＤグループ１６０から読み出されて、キャッシュページ１１２ａに記憶される。
【０２２５】
次に、アクセス処理部１５４で実行されるリストア処理について説明する。
【０２２６】
このリストア処理では、上記の退避処理Ａ２で、ディスクページ１６１に書き込まれた書込み情報を、本来の書込み先である、アクセス対象のＲＡＩＤグループ１６０に移動される。また、リストア処理では、複製処理Ａ３でディスクページ１６１に書き込まれた後に不要となった読出し情報の無効化も行われる。
【０２２７】
上述したように、リストア処理は、各ＲＡＩＤグループ１６０の負荷状態を定期的に判別している負荷管理部１５５から、任意のＲＡＩＤグループ１６０の状態をリストア状態に判別した旨の通知があると実行される。
【０２２８】
リストア処理における本来の書込み先への情報の移動では、アクセス処理部１５４によって、まず、キャッシュメモリ１１２内に、リストア処理の対象である書込み情報の記憶のためのキャッシュページ１１２ａが確保される。このアクセス処理部１５４によるキャッシュページ１１２ａの確保の方法は、上述したリードライト処理部１５１によるキャッシュページ１１２ａの確保の方法と同様である。
【０２２９】
キャッシュページ１１２ａを確保すると、アクセス処理部１５４は、キュー管理部１５４ａに、リストア時ステージング処理Ｃ１を表すジョブと復元処理Ｃ２を表すジョブとの格納を指示する。このとき、ジョブの格納順は、リストア時ステージング処理Ｃ１を表すジョブが先で、復元処理Ｃ２を表すジョブが後である。
【０２３０】
そして、キュー管理部１５４ａに格納されている他のジョブが順次に処理されて、リストア時ステージング処理Ｃ１を表すジョブの番が回ってくると、アクセス処理部１５４が、リストア時ステージング処理Ｃ１を実行する。
【０２３１】
リストア時ステージング処理Ｃ１では、負荷管理部１５５でリストア状態に判別されたＲＡＩＤグループ１６０を本来の書込み先とし、退避処理Ａ２によって、本来の書込み先とは別のＲＡＩＤグループ１６０内のディスクページ１６１に書き込まれた書込み情報が処理対象となる。
【０２３２】
リストア時ステージング処理Ｃ１では、アクセス処理部１５４が、そのような処理対象の書込み情報をディスクページ１６１から読み出して、確保したキャッシュページ１１２ａに記憶する。
【０２３３】
このようにリストア時ステージング処理Ｃ１が終了して、復元処理Ｃ２を表すジョブの番が回ってくると、アクセス処理部１５４は、復元処理Ｃ２を実行する。
【０２３４】
復元処理Ｃ２では、アクセス処理部１５４が、リストア時ステージング処理Ｃ１でキャッシュページ１１２ａに記憶された書込み情報を、負荷管理部１５５でリストア状態に判別された、本来の書込み先のＲＡＩＤグループ１６０に書き込む。
【０２３５】
また、リストア処理における不要となった読出し情報の無効化は、詳細については後述するように、その読出し情報を記憶しているディスクページ１６１の管理状態がディスクページ管理部１５７によってインバリッド状態に切り替えられることにより行われる。
【０２３６】
アクセス処理部１５４は、以上に説明したライトバック処理、ステージング処理、およびリストア処理によって、ＲＡＩＤグループ１６０への情報の書込みと、ＲＡＩＤグループ１６０からの情報の読出しを行う。また、アクセス処理部１５４は、通常の書込み処理Ａ１等の上述した処理が終了する度に、その旨をキュー管理部１５４ａに通知する。すると、キュー管理部１５４ａが、その終了が通知された処理のジョブを消去する。
【０２３７】
以上に説明したアクセス処理部１５４が、次のような書込部と読出部とを兼ねた一例に相当する。
【０２３８】
書込み部は、書込み先記憶部の状態が低負荷状態である場合にはその書込み先記憶部に情報を書き込み、書込み先記憶部の状態が高負荷状態である場合には、その書込み先記憶部以外の低負荷状態である記憶部に情報を書き込むものである。読出部は、読出し元記憶部にアクセスしてその記憶部から情報を読み出すものである。
【０２３９】
次に、図６に示す各ＲＡＩＤグループ１６０に設けられているディスクページ１６１について詳細に説明する。
【０２４０】
ここで、本実施形態では、各ＲＡＩＤグループ１６０に幾つのディスクページ１６１が設けられているかについては特定しないが、全ＲＡＩＤグループ１６０合わせて、キャッシュページ１１２ａと同数のディスクページ１６１が設けられている。そして、各ディスクページ１６１には、ＲＡＩＤグループ１６０を跨いだ通し番号が割り当てられている。
【０２４１】
アクセス処理部１５４は、退避処理Ａ２や複製処理Ａ３の際には、複数のディスクページ１６１の中から、退避先あるいは複製先として利用するディスクページ１６１を確保する。アクセス処理部１５４は、この確保を、ディスクページ管理部１５７によって切り替えられる各ディスクページ１６１の管理状態を参照して行う。
【０２４２】
ディスクページ管理部１５７は、各ディスクページ１６１の管理状態を、以下に説明するインバリッド状態、ダーティ状態、バリッド状態の３つの状態の間で切り替える。このディスクページ管理部１５７は、ハードウェアとしては、図５に示すディスク制御部１１３がその役割を担っている。
【０２４３】
ディスクページ１６１がインバリッド状態にあるとは、そのディスクページ１６１が空きページとなっていることをいう。
【０２４４】
ディスクページ１６１がダーティ状態にあるとは、ディスクページ１６１に、本来の書込み先のＲＡＩＤグループ１６０に書き込まれる前の書込み情報が格納されていることをいう。
【０２４５】
ディスクページ１６１がバリッド状態にあるとは、上書き可能な情報が格納されていることをいう。このバリッド状態では、ディスクページ１６１内の情報が、本来の書込み先のＲＡＩＤグループ１６０に書込み済みの情報やサーバ２００への転送済みの読出し情報であり、そのため、ディスクページ１６１への新規な情報の格納が可能となっている。
【０２４６】
任意のディスクページ１６１の管理状態がインバリッド状態であり、アクセス処理部１５４が、退避処理Ａ２の際に、このディスクページ１６１を退避先として確保したとする。すると、ディスクページ管理部１５７は、その退避先として確保されたディスクページ１６１の管理状態をダーティ状態に切り替える。
【０２４７】
また、任意のディスクページ１６１の管理状態がインバリッド状態であり、アクセス処理部１５４が、複製処理Ａ３の際に、このディスクページ１６１を複製先として確保したとする。すると、ディスクページ管理部１５７は、その複製先として確保されたディスクページ１６１の管理状態をバリッド状態に切り替える。
【０２４８】
また、退避処理Ａ２で書き込まれた情報が、上記のリストア処理における復元処理Ｃ２によって本来の書込み先のＲＡＩＤグループ１６０に書き込まれたとする。すると、ディスクページ管理部１５７は、その情報が書き込まれていたディスクページ１６１の管理状態をインバリッド状態に切り替える。
【０２４９】
また、バリッド状態のディスクページ１６１は、現時点で対応しているキャッシュページ１１２ａとは別のキャッシュページ１１２ａの情報の退避先あるいは複製先として確保されることがある。この場合には、ディスクページ管理部１５７よって、その確保されたディスクページ１６１の管理状態がインバリッド状態に切り替えられる。そして、インバリッド状態に切り替えられたディスクページ１６１が、退避先や複製先として利用されることとなる。また、バリッド状態からインバリッド状態への切替えは、リストア処理において、本来の読出し元のＲＡＩＤグループ１６０がビジー状態でなくなり情報の読出しが可能となったために不要となった読出し情報を無効化する際にも行われる。この場合には、その不要となった読出し情報を記憶しているバリッド状態のディスクページ１６１の管理状態がインバリッド状態に切り替えられる。
【０２５０】
ディスクページ管理部１５７は、以上に説明したディスクページ１６１の管理状態の切替えを、ディスクページ管理テーブル１５８内に、各ディスクページ１６１の番号に対応付けられて記憶されている状態フラグを設定又は解除することによって行う。
【０２５１】
図１２は、ディスクページ管理テーブルの詳細を示す図である。
【０２５２】
ディスクページ管理テーブル１５８は、Ｄページ番号格納部１５８ａ、Ｄページ状態格納部１５８ｂ、アクセスＲＧ番号格納部１５８ｃ、ＬＢＡ格納部１５８ｄ、複製ビットマップ格納部１５８ｅ、退避ビットマップ格納部１５８ｆを備えている。ディスクページ管理テーブル１５８は、ハードウェアとしては、図５に示すディスク制御部１１３内のＲＡＭ１１３ｂ中の予め決められた領域がその役割を担っている。
【０２５３】
Ｄページ番号格納部１５８ａには、各ディスクページ１６１に割り当てられた番号（Ｄページ番号）が格納される。
【０２５４】
Ｄページ状態格納部１５８ｂには、インバリッドフラグ、バリッドフラグ、ダーティフラグが格納される。インバリッドフラグは、ディスクページ１６１がインバリッド状態であるか否かを表す状態フラグである。バリッドフラグは、ディスクページ１６１がバリッド状態であるか否かを表す状態フラグである。ダーティフラグは、ディスクページ１６１がダーティ状態であるか否かを表す状態フラグである。ディスクページ管理部１５７は、これらの状態フラグを設定又は解除することにより、各ディスクページ１６１の管理状態の切替えを行う。
【０２５５】
アクセスＲＧ番号格納部１５８ｃには、退避処理Ａ２や複製処理Ａ３によって情報が書き込まれたディスクページ１６１について、情報の本来の書込み先や読出し元として指定されたアクセスＲＧ番号が格納される。
【０２５６】
ＬＢＡ格納部１５８ｄには、退避処理Ａ２や複製処理Ａ３によって情報が書き込まれたディスクページ１６１について、その情報が記憶されていたキャッシュページ１１２ａに対応付けられた上記の区分の存在箇所を表すＬＢＡが格納される。
【０２５７】
複製ビットマップ格納部１５８ｅには、各ディスクページ１６１内の各ブロックに、複製処理Ａ３で情報が書き込まれているか否かを記述した複製ビットマップが格納される。複製ビットマップは、１ブロックに１ビットの符号を対応させたｎビットの情報である。符号「０」が、対応するブロックに読出し情報が未書込みであることを示し、符号「１」が、対応するブロックに読出し情報が書き込まれていることを示す。
【０２５８】
退避ビットマップ格納部１５８ｆには、各ディスクページ１６１内の各ブロックに、退避処理Ａ２で情報が書き込まれているか否かを記述した退避ビットマップが格納される。退避ビットマップは、１ブロックに１ビットの符号を対応させたｎビットの情報である。符号「０」が、対応するブロックに書込み情報が未書込みであることを示し、符号「１」が、対応するブロックに書込み情報が書き込まれていることを示す。
【０２５９】
上述したように、図６に示すアクセス処理部１５４は、退避処理Ａ２や複製処理Ａ３の実行に当たって、複数のディスクページ１６１の中から、キャッシュページ１１２ａ内の情報の退避先あるいは複製先として利用するディスクページ１６１を確保する。このとき、アクセス処理部１５４は、基本的に、以下に述べる処理を実行する。
【０２６０】
この基本的な処理では、アクセス処理部１５４は、ディスクページ管理部テーブル１５８のＤページ状態格納部１５８ｂ内の状態フラグを参照して、インバリッド状態あるいはバリッド状態のディスクページ１６１を探す。そして、アクセス処理部１５４は、探し出したディスクページ１６１の中から、情報の退避先あるいは複製先として利用するディスクページ１６１を選択する。この選択の方法については、インバリッド状態あるいはバリッド状態のキャッシュページ１１２ａの中から、必要数のキャッシュページ１１２ａを選択する方法と同じ方法である。
【０２６１】
さらに、アクセス処理部１５４は、その選択したディスクページ１６１を、退避対象あるいは複製対象の情報が記憶されているキャッシュページ１１２ａに対応付けられている上記の区分に対応付ける。そして、アクセス処理部１５４は、ディスクページ１６１に対応付けた区分の存在箇所を表すＬＢＡを、ディスクページ管理部１５７に命じてディスクページ管理テーブル１５８に格納させる。
【０２６２】
ここで、過去の退避処理Ａ２や複製処理Ａ３に応じて確保されたディスクページ１６０の中に、上記の区分に対応付けられているものが既に存在する可能性がある。このため、アクセス処理部１５４は、上記の基本的な処理に先だって、ディスクページ管理テーブル１５８を参照して、対応済みのディスクページ１６０が存在するか否かを判定する。
【０２６３】
具体的には、アクセス処理部１５４は、上記の区分の存在箇所を表すＬＢＡで、ディスクページ管理テーブル１５８のＬＢＡ格納部１５８ｄを検索する。そして、このＬＢＡ格納部１５８ｄに、区分の存在箇所を表すＬＢＡが存在したときに、対応済みのディスクページ１６０が存在すると判定する。他方、ＬＢＡ格納部１５８ｄに、区分の存在箇所を表すＬＢＡが存在しなかったときには、対応済みのディスクページ１６０が存在しないと判定する。
【０２６４】
そして、対応済みのディスクページ１６１が存在しない場合、アクセス処理部１５４は、上記の基本的な処理を実行する。
【０２６５】
一方、対応済みのディスクページ１６１が存在する場合、アクセス処理部１５４は、その既存のディスクページ１６１を今回の退避先や複製先として採用する。
【０２６６】
以上に説明した処理によるディスクページ１６１の確保あるいは採用のことを、以下では一括りにしてディスクページ１６１の確保と呼ぶ。
【０２６７】
アクセス処理部１５４は、このようにディスクページ１６１を確保すると、キャッシュページ１１２ａ内の情報を、その確保したディスクページ１６１に格納する。また、アクセス処理部１５４は、ディスクページ管理部１５７に、確保したディスクページ１６１のＤページ番号、確保の契機となった処理の種類（退避処理Ａ２と複製処理Ａ３のうちのいずれあるか）を伝える。さらに、アクセス処理部１５４は、アクセスＲＧ番号と、ディスクページ１６１に対応付けた区分の存在箇所を表すＬＢＡもディスクページ管理部１５７に伝える。
【０２６８】
ディスクページ管理部１５７は、アクセス処理部１５４から伝えられたこれらの情報に基づいて、ディスクページ管理テーブル１５８において、その伝えられたＤページ番号に対応している、Ｄページ状態格納部１５８ｂ内のフラグを設定又は解除する。このフラグの設定又は解除により、ディスクページ管理部１５７は、ディスクページ１６１の管理状態の切替えを行う。
【０２６９】
また、ディスクページ管理部１５７は、アクセスＲＧ番号を、アクセスＲＧ番号格納部１５８ｃにおける、上記のように伝えられたＤページ番号に対応している欄に格納する。
【０２７０】
また、ディスクページ管理部１５７は、上述したように、確保したディスクページ１６１に対応付けた区分の存在箇所を表すＬＢＡを、ＬＢＡ格納部１５８ｄにおける、そのディスクページ１６１のＤページ番号に対応している欄に格納する。
【０２７１】
さらに、アクセス処理部１５４は、ディスクページ１６１に情報を書き込む際に、そのディスクページ１６１のどのブロックに情報を書き込んだかをディスクページ管理部１５７に伝える。
【０２７２】
すると、ディスクページ管理部１５７は、複製ビットマップあるいは退避ビットマップにおける、その伝えられたブロックに対応する符号を「１」にする。このとき、アクセス処理部１５４から伝えられた処理の種類が複製処理Ａ３であった場合には、ディスクページ管理部１５７は、複製ビットマップ中の符号を「１」にする。また、処理の種類が退避処理Ａ３であった場合には、ディスクページ管理部１５７は、退避ビットマップ中の符号を「１」にする。
【０２７３】
以上で、図６に示すストレージ装置１００の各要素についての説明を終了し、以下では、上述の説明と重複する部分もあるが、このストレージ装置１００における処理の詳細について説明する。
【０２７４】
まず、フロントエンド１００ａでの処理に注目した説明を、コマンドで指定されたアクセス対象のＲＡＩＤグループ１６０がノーマル状態である場合、ビジー状態である場合、リストア状態である場合に分けて行う。各場合の説明は、コマンドの種類、上記のキャッシュページ１１２ａの管理状態等によって想定される複数のケースそれぞれについて行う。その後で、バックエンド１００ｂでの処理に注目した説明を行う。
【０２７５】
図１３は、アクセス対象のＲＡＩＤグループがノーマル状態である場合に想定される複数のケースを表形式で示す図である。
【０２７６】
この図１３に示す表Ｔ１には、ケースｎ１からケースｎ３までの３つのケースが示されている。
【０２７７】
リードライト処理部１５１は、上述したように、コマンドを受信すると、過去のコマンドに応じて確保されたキャッシュページ１１２ａの中に、今回のアクセス対象のブロックを包含する区分に対応付けられているものが存在するか否かを判定する。
【０２７８】
このようなキャッシュページ１１２ａが存在する場合を、以下では「確保済み」と称する。また、キャッシュページ１１２ａが全く存在しない場合、あるいは、アクセス対象のブロックを包含する区分の一部についてキャッシュページ１１２ａが存在しない場合を、以下では「未確保」と称する。
【０２７９】
図１３の表Ｔ１におけるケースｎ１は、アクセス対象のＲＡＩＤグループ１６０がノーマル状態であって、キャッシュページ１１２ａが未確保であったケースである。
【０２８０】
以下、このケースｎ１について、コマンドがリードコマンドである場合（ケースｎ１＿１）と、コマンドがライトコマンドである場合（ケースｎ１＿２）を説明する。
［ケースｎ１＿１］
ケースｎ１＿１では、リードライト処理部１５１は、バックエンド１００ｂのステージング処理での読出し情報の記憶に必要な数のキャッシュページ１１２ａを、上述したようにキャッシュメモリ１１２上に確保する。
【０２８１】
キャッシュページ１１２ａが確保されると、リードライト処理部１５１は、アクセス対象のＲＡＩＤグループ１６０からのステージング処理を要求するステージング要求信号をバックエンド１００ｂに送信する。この要求に応じてバックエンド１００ｂで実行されるステージング処理は、図６を参照して説明した読出し元からのステージング処理Ｂ１となる。そして、リードライト処理部１５１は、ステージング処理で読出し情報が記憶されたキャッシュページ１１２ａからその読出し情報を読み出してサーバ２００に転送する。その転送が終了すると、リードライト処理部１５１は、サーバ２００に、リードコマンドに応じた処理が完了したことを通知する完了通知信号を送信する。
【０２８２】
また、リードライト処理部１５１は、キャッシュページ管理部１５２に次のような６つの情報を伝える。
【０２８３】
１つ目の情報は、コマンドの種類である。ケースｎ１＿１では、コマンドの種類はリードコマンドである。２つ目の情報は、コマンドで指定された、アクセス対象のＲＡＩＤグループ１６０を表すアクセスＲＧ番号である。３つ目の情報は、アクセス対象のＲＡＩＤグループ１６０の負荷状態である。リードライト処理部１５１は、この負荷状態を、上述の負荷管理テーブル１５６を参照して得る。ケースｎ１＿１では、この負荷状態はノーマル状態である。４つ目の情報は、確保されたキャッシュページ１１２ａのＣページ番号である。５つ目の情報は、その確保されたキャッシュページ１１２ａに対応付けられた上記の区分の存在箇所を表すＬＢＡである。６つ目の情報は、その確保されたキャッシュページ１１２ａのｎ個のブロック１１２ａ＿１のうち情報が記憶されたブロック１１２ａ＿１の位置である。
【０２８４】
キャッシュページ管理部１５２は、キャッシュページ管理テーブル１５３のアクセスＲＧ番号格納部１５３ｃにおける、伝えられたＣページ番号に対応した欄に、伝えられたアクセスＲＧ番号を格納する。また、キャッシュページ管理部１５２は、ＬＢＡ格納部１５３ｄにおける、そのＣページ番号に対応した欄に、伝えられたＬＢＡを格納する。
【０２８５】
また、キャッシュページ管理部１５２は、Ｃページ状態格納部１５３ｂにおける、そのＣページ番号に対応した欄内の状態フラグに対して次のようなフラグ操作を行う。
【０２８６】
ケースｎ１＿１では、キャッシュページ１１２ａが新たに確保される。この場合、確保時のキャッシュページ１１２ａの管理状態はインバリッド状態である。また、コマンドの種類がリードコマンドであるので、キャッシュページ１１２ａに記憶される情報は、上書き可能なバリッド情報である。そこで、キャッシュページ管理部１５２は、上記の欄内の、インバリッドフラグを解除してバリッドフラグを設定する。このフラグ操作により、確保されたキャッシュページ１１２ａの管理状態がインバリッド状態からバリッド状態に切り替えられる。
【０２８７】
また、キャッシュページ管理部１５２は、バリッドビットマップ格納部１５３ｅにおける、上記のＣページ番号に対応した欄内のバリッドビットマップに対し、次のようなビットマップ操作を行う。即ち、キャッシュページ管理部１５２は、そのバリッドビットマップにおける、その伝えられた位置のブロック１１２ａ＿１に対応する符号を「１」にする。
【０２８８】
次に、図１３の表Ｔ１中のケースｎ１＿２について説明する。
［ケースｎ１＿２］
リードライト処理部１５１は、ケースｎ１＿２の場合、サーバ２００から転送されてくる書込み情報の記憶に必要なキャッシュページ１１２ａを確保する。そして、必要なキャッシュページ１１２ａが確保されると、リードライト処理部１５１は、サーバ２００に対し、書込み情報の転送を開始しても良い旨を通知する応答信号を送信する。
【０２８９】
サーバ２００から書込み情報が転送されてくると、リードライト処理部１５１は、その転送されてきた書込み情報を、確保したキャッシュページ１１２ａの、コマンドで指定されたＬＢＡ範囲に対応するブロック１１２ａ＿１に記憶する。
【０２９０】
また、リードライト処理部１５１は、キャッシュページ管理部１５２に上記の６つの情報を伝える。そして、キャッシュページ管理部１５２が、その伝えられた情報に基づいて、キャッシュページ管理テーブル１５３への情報の格納、フラグ操作、およびビットマップ操作を行う。
【０２９１】
ここで、ケースｎ１＿２では、コマンドの種類がライトコマンドであるので、キャッシュページ１１２ａに記憶される情報は、アクセス対象のＲＡＩＤグループ１６０へ書込み前のダーティ情報である。そこで、キャッシュページ管理部１５２は、インバリッドフラグを解除してダーティフラグを設定する。このフラグ操作により、確保されたキャッシュページ１１２ａの管理状態がインバリッド状態からダーティ状態に切り替えられる。
【０２９２】
また、ビットマップ操作については、ダーティビットマップについて行われる。操作内容については、上記のケースｎ１＿１でのビットマップ操作の操作内容と同じである。
【０２９３】
次に、図１３の表Ｔ１中のケースｎ２について説明する。
［ケースｎ２］
このケースｎ２は、アクセス対象のＲＡＩＤグループ１６０がノーマル状態であって、コマンドがリードコマンドであり、さらに、キャッシュページ１１２ａが確保済みであったケースである。
【０２９４】
このケースｎ２では、確保済みのキャッシュページ１１２ａの管理状態がバリッド状態である場合とダーティ状態である場合とがある。これらの場合、バリッドビットマップやダーティビットマップでは、キャッシュページ１１２ａ内のｎ個のブロック１１２ａ＿１のうち、情報が格納されているブロック１１２ａ＿１に対応する位置の符号が「１」となっている。
【０２９５】
ケースｎ２では、まず、リードライト処理部１５１が、バリッドビットマップとダーティビットマップとのいずれかにおいて、リードコマンドで指定されたＬＢＡ範囲に対応する位置の符号が全て「１」になっているか否かを判定する。
【０２９６】
バリッドビットマップとダーティビットマップとのいずれかにおいて、これらの符号が全て「１」になっている場合、キャッシュページ１１２ａ内に、必要な読出し情報が全てそろっていることとなる。従って、この場合には、リードライト処理部１５１は、そのキャッシュページ１１２ａの、リードコマンドで指定されたＬＢＡ範囲に対応するブロック１１２ａ＿１から読出し情報を読み出してサーバ２００に転送する。
【０２９７】
また、この場合、リードライト処理部１５１は、キャッシュページ管理部１５２に、キャッシュページ管理テーブル１５３内の情報について変更の必要がない旨を通知する。その結果、キャッシュページ管理テーブル１５３内の状態フラグや各ビットマップ等がそのまま維持される。
【０２９８】
一方、リードコマンドで指定されたＬＢＡ範囲に対応する位置の符号のうち、バリッドビットマップとダーティビットマップとの両方で「０」になっているものがある場合、キャッシュページ１１２ａ内に、必要な読出し情報がそろっていないこととなる。つまり、キャッシュページ１１２ａ内で、読出し情報のうち、その「０」の符号に対応するＬＢＡのブロック１１２ａ＿１の情報が欠けている。このため、リードライト処理部１５１は、その「０」の符号に対応するＬＢＡのブロック１１２ａ＿１についてのステージング処理の実行を要求するステージング要求信号をバックエンド１００ｂに送信する。そして、このステージング要求信号に応じて実行されるステージング処理により、キャッシュページ１１２ａ内における上記のような情報の欠けが埋められる。このステージング処理は、図６を参照して説明した読出し元からのステージング処理Ｂ１となる。
【０２９９】
その後、リードライト処理部１５１は、キャッシュページ１１２ａの、リードコマンドで指定されたＬＢＡ範囲に対応するブロック１１２ａ＿１から読出し情報を読み出してサーバ２００に転送する。
【０３００】
また、この場合、リードライト処理部１５１は、キャッシュページ管理部１５２に、キャッシュページ１１２ａのｎ個のブロック１１２ａ＿１のうち、ステージング処理によって情報が記憶されたブロック１１２ａ＿１の位置を伝える。すると、キャッシュページ管理部１５２が、その伝えられた位置に基づいてビットマップ操作を行う。
【０３０１】
また、この場合、リードライト処理部１５１は、キャッシュページ管理部１５２に、キャッシュページ管理テーブル１５３内のバリッドビットマップ以外の情報については変更の必要がない旨を通知する。その結果、状態フラグ等についてはそのまま維持される。
【０３０２】
次に、図１３の表Ｔ１中のケースｎ３について説明する。
［ケースｎ３］
このケースｎ３は、アクセス対象のＲＡＩＤグループ１６０がノーマル状態であって、コマンドがライトコマンドであり、さらに、キャッシュページ１１２ａが確保済みであったケースである。
【０３０３】
ケースｎ３では、まず、リードライト処理部１５１が、サーバ２００に、書込み情報の転送を開始しても良い旨を通知する応答信号を送信する。
【０３０４】
サーバ２００から書込み信号が転送されてくると、リードライト処理部１５１は、キャッシュページ１１２ａの、コマンドで指定されたＬＢＡ範囲に対応するブロック１１２ａ＿１にその書込み情報を上書きする。その後、リードライト処理部１５１は、サーバ２００に完了通知信号を送信する。
【０３０５】
また、このケースｎ３では、リードライト処理部１５１から伝えられる情報に基づいて、キャッシュページ管理部１５２が、確保済みのキャッシュページ１１２ａの状態フラグについて次のようなフラグ操作を行う。
【０３０６】
このケースｎ３でも、上記のケースｎ２と同様に、確保済みのキャッシュページ１１２ａの管理状態がバリッド状態である場合とダーティ状態である場合とがある。
【０３０７】
管理状態がバリッド状態である場合、キャッシュページ管理部１５２は、バリッドフラグを解除してダーティフラグを設定する。一方、管理状態がダーティ状態である場合、キャッシュページ管理部１５２は、設定された状態のダーティフラグをそのまま維持する。
【０３０８】
また、このケースｎ３では、キャッシュページ管理部１５２が、ダーティビットマップとバリッドビットマップとの双方について、次のようなビットマップ操作を行う。
【０３０９】
まず、ダーティビットマップにおける、情報が記憶されたブロック１１２ａ＿１に対応する符号を「１」にする。さらに、キャッシュページ管理部１５２は、バリッドビットマップにおける、そのブロック１１２ａ＿１に対応する符号を「０」にする。
【０３１０】
また、ケースｎ３では、リードライト処理部１５１は、キャッシュページ管理部１５２に、状態フラグとビットマップ以外の情報については変更の必要がない旨を通知する。その結果、アクセスＲＧ番号や、区分の存在箇所を表すＬＢＡ等についてはそのまま維持される。
【０３１１】
以上で、アクセス対象のＲＡＩＤグループ１６０がノーマル状態である場合についての説明を終了する。
【０３１２】
尚、アクセス対象のＲＡＩＤグループ１６０がノーマル状態の場合、そのＲＡＩＤグループ１６０について確保済みのキャッシュページ１１２ａはバリッド状態かダーティ状態となっている。このため、図１３の表Ｔ１では、確保済みのキャッシュページ１１２ａがグレイ状態であるというケースは生じないこととなっている。
【０３１３】
次に、アクセス対象のＲＡＩＤグループがビジー状態である場合について説明する。
【０３１４】
図１４は、アクセス対象のＲＡＩＤグループがビジー状態である場合に想定される複数のケースを表形式で示す図である。
【０３１５】
この図１４に示す表Ｔ２には、ケースｂ１からケースｂ５までの５つのケースが示されている。
【０３１６】
図１４の表Ｔ１におけるケースｂ１は、アクセス対象のＲＡＩＤグループ１６０がビジー状態であって、キャッシュページ１１２ａが未確保であったケースである。
【０３１７】
以下、このケースｂ１について、コマンドがリードコマンドである場合（ケースｂ１＿１）と、コマンドがライトコマンドである場合（ケースｂ１＿２）を説明する。
［ケースｂ１＿１］
ケースｂ１＿１では、リードライト処理部１５１は、まず、読出し情報の記憶に必要なキャッシュページ１１２ａを、キャッシュメモリ１１２上に確保する。
【０３１８】
このケースｂ１＿１では、元々キャッシュページ１１２ａが未確保であったので、キャッシュメモリ１１２には読出し情報は存在していないことになる。
【０３１９】
ただし、このケースｂ１＿１では、アクセス対象のＲＡＩＤグループ１６０がビジー状態となっている。そして、ビジー状態のＲＡＩＤグループ１６０については、図６を参照して説明した退避処理Ａ２や複製処理Ａ３が過去に行われている可能性がある。つまり、今回のリードコマンドで読出しを要求されている情報が、過去に実行された退避処理Ａ２や複製処理Ａ３によってディスクページ１６１に書き込まれている可能性がある。
【０３２０】
このため、ケースｂ１＿１では、リードライト処理部１５１が、このような情報がディスクページ１６１に書き込まれているか否かの判定を行う。この判定は、リードライト処理部１５１が、図１２に示すディスクページ管理テーブル１５８を次のように参照することで行われる。
【０３２１】
リードライト処理部１５１は、まず、リードコマンドで指定されたアクセスＲＧ番号でアクセスＲＧ番号格納部１５８ｃ内を検索する。そのアクセスＲＧ番号がアクセスＲＧ番号格納部１５８ｃ内に存在した場合、リードライト処理部１５１は、ＬＢＡ格納部１５８ｄを参照する。この参照により、リードライト処理部１５１は、コマンドで指定されたＬＢＡ範囲を包含する１つの又は一連の区分に対応したディスクページ１６１が存在しているか否かを判定する。
【０３２２】
そして、対応済みのディスクページ１６１が存在していた場合、リードライト処理部１５１は、そのディスクページ１６１に対応する退避ビットマップと複製ビットマップについて次のような判定を行う。
【０３２３】
リードライト処理部１５１は、その退避ビットマップと複製ビットマップとのいずれかにおいて、リードコマンドで指定されたＬＢＡ範囲に対応する位置の符号が全て「１」になっているか否かを判定する。
【０３２４】
退避ビットマップと複製ビットマップとのいずれかにおいて、これらの符号が全て「１」になっている場合、ディスクページ１６１内に、必要な読出し情報が全てそろっていることとなる。
【０３２５】
この場合、リードライト処理部１５１は、そのディスクページ１６１から読出し情報を読み出して、上記のように確保されたキャッシュページ１１２ａへ記憶するステージング処理の実行を要求するステージング要求信号をバックエンド１００ｂに送信する。
【０３２６】
このディスクページ１６１からのステージング処理は、そのディスクページ１６１が属するＲＡＩＤグループ１６０がノーマル状態であるので、バックエンド１００ｂにおいて直ちに実行されることとなる。このときに実行されるステージング処理は、図６を参照して説明した、読出し元以外からのステージング処理Ｂ２である。
【０３２７】
一方、リードコマンドで指定されたＬＢＡ範囲に対応する位置の符号のうち、退避ビットマップと複製ビットマップとの両方で「０」になっているものがある場合、ディスクページ１６１内に、必要な読出し情報がそろっていないこととなる。
【０３２８】
この場合、リードライト処理部１５１は、アクセス対象のＲＡＩＤグループ１６０から読出し情報を読み出してキャッシュページ１１２ａへ記憶するステージング処理の実行を要求するステージング要求信号をバックエンド１００ｂに送信する。
【０３２９】
このステージング処理は、読出し元のＲＡＩＤグループ１６０がビジー状態であるので、バックエンド１００ｂでは、そのＲＡＩＤグループ１６０が、アクセス量が閾値未満の低負荷状態となるまで実行が延期される。そして、読出し元のＲＡＩＤグループ１６０が低負荷状態となると、ステージング処理が実行される。このときに実行されるステージング処理は、図６を参照して説明した、読出し元からのステージング処理Ｂ１である。
【０３３０】
尚、このときにキャッシュページ１１２ａに記憶された読出し情報は、詳細については後述するように、複製処理Ａ３によって、アクセス対象のＲＡＩＤグループ１６０以外の、ノーマル状態のＲＡＩＤグループ１６０のディスクページ１６１に書き込まれる。
【０３３１】
以上に説明したいずれかのステージング処理によって読出し情報がキャッシュページ１１２ａに記憶されると、リードライト処理部１５１は、キャッシュページ１１２ａから読出し情報を読み出してサーバ２００に転送する。そして、その転送が終了すると、リードライト処理部１５１は、サーバ２００に完了通知信号を送信する。
【０３３２】
また、このケースｂ１＿１では、キャッシュページ管理部１５２が、キャッシュページ管理テーブル１５３において、確保されたキャッシュページ１１２ａに対応付けられたインバリッドフラグを解除してグレイフラグを設定する。これにより、そのキャッシュページ１１２ａの管理状態がグレイ状態に切り替えられる。また、キャッシュページ管理部１５２は、バリッドビットマップについて、情報が記憶されたブロック１１２ａ＿１に対応する位置の符号を「１」にするビットマップ操作を行う。
【０３３３】
次に、図１４の表Ｔ２中のケースｂ１＿２について説明する。
［ケースｂ１＿２］
ケースｂ１＿２では、リードライト処理部１５１は、書込み情報の記憶に必要なキャッシュページ１１２ａを、キャッシュメモリ１１２上に確保する。そして、キャッシュページ１１２ａが確保された後、リードライト処理部１５１は、サーバ２００に対し、書込み情報の転送を開始しても良い旨を通知する応答信号を送信する。サーバ２００から書込み情報が転送されてくると、リードライト処理部１５１は、その転送されてくる書込み情報をキャッシュページ１１２ａに記憶する。その記憶が終了すると、リードライト処理部１５１は、サーバ２００に完了通知信号を送信する。
【０３３４】
尚、このときにキャッシュページ１１２ａに記憶された書込み情報は、詳細については後述するように、退避処理Ａ２によって、アクセス対象のＲＡＩＤグループ１６０以外の、ノーマル状態のＲＡＩＤグループ１６０のディスクページ１６１に書き込まれる。
【０３３５】
そして、このケースｂ１＿２でも、確保されたキャッシュページ１１２ａの管理状態がグレイ状態に切り替えられる。また、ダーティビットマップについて、情報が記憶されたブロック１１２ａ＿１に対応する位置の符号を「１」にするビットマップ操作が行われる。
【０３３６】
次に、図１４の表Ｔ２中のケースｂ２について説明する。
［ケースｂ２］
このケースｂ２は、アクセス対象のＲＡＩＤグループ１６０がビジー状態であって、コマンドがリードコマンドであり、キャッシュページ１１２ａが確保済みであって、さらに、次のような場合に相当する。即ち、このケースｂ２は、その確保済みのキャッシュページ１１２ａの管理状態が、バリッド状態あるいはダーティ状態となっているケースである。
【０３３７】
このケースｂ２で実行される処理では、まず、リードライト処理部１５１が、バリッドビットマップとダーティビットマップとのいずれかにおいて、リードコマンドで指定されたＬＢＡ範囲に対応する位置の符号が全て「１」になっているか否かを判定する。
【０３３８】
バリッドビットマップとダーティビットマップとのいずれかにおいて、これらの符号が全て「１」になっている場合、リードライト処理部１５１は、次のような処理を実行する。即ち、この場合、リードライト処理部１５１は、そのキャッシュページ１１２ａの、リードコマンドで指定されたＬＢＡ範囲に対応するブロック１１２ａ＿１から読出し情報を読み出してサーバ２００に転送する。
【０３３９】
一方、リードコマンドで指定されたＬＢＡ範囲に対応する位置の符号のうち、バリッドビットマップとダーティビットマップとの両方で「０」になっているものがある場合、リードライト処理部１５１は、次のような処理を実行する。
【０３４０】
この場合、読出し情報のうち、バリッドビットマップとダーティビットマップとの両方で「０」になっているＬＢＡに対応した情報が、キャッシュページ１１２ａ内で欠けている。そこで、リードライト処理部１５１は、図１２に示すディスクページ管理テーブル１５８を参照して、上記のようにキャッシュページ１１２ａ内で欠けている情報が、ディスクページ１６１上に存在しているか否かの判定を行う。
【０３４１】
まず、リードコマンドで指定されたアクセスＲＧ番号でアクセスＲＧ番号格納部１５８ｃ内を検索する。そのアクセスＲＧ番号がアクセスＲＧ番号格納部１５８ｃ内に存在した場合、リードライト処理部１５１は、ＬＢＡ格納部１５８ｄを参照する。この参照により、リードライト処理部１５１は、コマンドで指定されたＬＢＡ範囲を包含する１つの又は一連の区分に対応したディスクページ１６１が存在しているか否かを判定する。
【０３４２】
そして、対応済みのディスクページ１６１が存在していた場合、リードライト処理部１５１は、そのディスクページ１６１に対応する退避ビットマップと複製ビットマップについて次のような判定を行う。
【０３４３】
リードライト処理部１５１は、その退避ビットマップと複製ビットマップとのいずれかにおいて、バリッドビットマップとダーティビットマップとの両方で「０」になっているＬＢＡに対応した符号が全て「１」になっているか否かを判定する。
【０３４４】
退避ビットマップと複製ビットマップとのいずれかにおいて、これらの符号が全て「１」になっている場合、キャッシュページ１１２ａ内で欠けている情報が、ディスクページ１６１上に存在していることとなる。この場合、リードライト処理部１５１は、バックエンド１００ｂに対し、次のようなステージング処理の実行を要求するステージング要求信号を送信する。即ち、このステージング処理は、バリッドビットマップとダーティビットマップとの両方で「０」になっているＬＢＡに対応した情報を、ディスクページ１６１から読み出してキャッシュページ１１２ａに記憶する処理である。このステージング処理により、キャッシュページ１１２ａ内における情報の欠けが、ディスクページ１６１内の情報によって埋められる。このディスクページ１６１からのステージング処理は、そのディスクページ１６１が属するＲＡＩＤグループ１６０がノーマル状態であるので、バックエンド１００ｂにおいて直ちに実行されることとなる。このときに実行されるステージング処理は、図６を参照して説明した、読出し元以外からのステージング処理Ｂ２である。
【０３４５】
一方、退避ビットマップと複製ビットマップとの両方で、バリッドビットマップとダーティビットマップとで「０」になっているＬＢＡに対応した符号のうち「０」になっているものがある場合、ディスクページ１６１上でも情報の欠けがあることとなる。
【０３４６】
この場合には、リードライト処理部１５１は、バックエンド１００ｂに対して次のようなステージング処理の実行を要求するステージング要求信号を送信する。
【０３４７】
即ち、このステージング処理は、バリッドビットマップとダーティビットマップとの両方で「０」になっているＬＢＡに対応した情報を、読出し元のＲＡＩＤグループ１６０から読み出してキャッシュページ１１２ａに記憶する処理である。
【０３４８】
ただし、ケースｂ２では、読出し元のＲＡＩＤグループ１６０がビジー状態であるので、バックエンド１００ｂでは、そのＲＡＩＤグループ１６０が、アクセス量が閾値未満の低負荷状態となるまでステージング処理の実行が延期される。そして、読出し元のＲＡＩＤグループ１６０が低負荷状態となると、ステージング処理が実行される。このときに実行されるステージング処理は、図６を参照して説明した、読出し元からのステージング処理Ｂ１である。
【０３４９】
尚、このときにキャッシュページ１１２ａに記憶された読出し情報は、詳細については後述するように、複製処理Ａ３によってディスクページ１６１に書き込まれる。
【０３５０】
以上に説明したいずれかのステージング処理によって読出し情報がキャッシュページ１１２ａに記憶されると、リードライト処理部１５１は、キャッシュページ１１２ａから読出し情報を読み出してサーバ２００に転送する。そして、その転送が終了すると、リードライト処理部１５１は、サーバ２００に完了通知信号を送信する。
【０３５１】
また、このケースｂ２では、キャッシュページ管理部１５２は、読出し情報が記憶されたキャッシュページ１１２ａに対応付けられたバリッドフラグあるいはダーティフラグを解除してグレイフラグを設定する。これにより、そのＣページ番号が示すキャッシュページ１１２ａの管理状態がグレイ状態に切り替えられる。
【０３５２】
また、キャッシュページ１１２ａ内に全ての読出し情報がそろっており、バックエンド１００ｂにステージング要求信号が送信されなかった場合、リードライト処理部１５１は、次のような処理を行う。この場合、リードライト処理部１５１は、キャッシュページ管理部１５２に、キャッシュページ管理テーブル１５３内の、状態フラグ以外の情報について変更の必要がない旨を通知する。その結果、キャッシュページ管理テーブル１５３内の各ビットマップ等がそのまま維持される。
【０３５３】
一方、キャッシュページ１１２ａ内に情報の欠けがあり、バックエンド１００ｂにステージング処理の実行を要求する要求信号を送信した場合、次のようなビットマップ操作が行われる。即ち、バリッドビットマップにおける、情報が記憶されたブロック１１２ａ＿１に対応する符号が「１」にされる。
【０３５４】
また、この場合、キャッシュページ管理テーブル１５３内のアクセスＲＧ番号等についてはそのまま維持される。
【０３５５】
次に、図１４の表Ｔ２中のケースｂ３について説明する。
［ケースｂ３］
このケースｂ３は、アクセス対象のＲＡＩＤグループ１６０がビジー状態であって、コマンドがリードコマンドであり、キャッシュページ１１２ａが確保済みであって、さらに、次のような場合に相当する。即ち、このケースｂ３は、その確保済みのキャッシュページ１１２ａの管理状態がグレイ状態となっているケースである。
【０３５６】
このケースｂ３で実行される処理は、処理の対象となるキャッシュページ１１２ａの管理状態が、元々グレイ状態となっている点を除いて、上述のケースｂ２で実行される処理と同様である。
【０３５７】
尚、このケースｂ３では、キャッシュページ管理テーブル１５３内の、ビットマップ以外の情報についてはそのまま維持される。
【０３５８】
次に、図１４の表Ｔ２中のケースｂ４について説明する。
［ケースｂ４］
このケースｂ４は、アクセス対象のＲＡＩＤグループ１６０がビジー状態であって、コマンドがライトコマンドであり、キャッシュページ１１２ａが確保済みであって、さらに、次のような場合に相当する。即ち、このケースｂ４は、その確保済みのキャッシュページ１１２ａの管理状態が、バリッド状態あるいはダーティ状態となっているケースである。
【０３５９】
ケースｂ４では、リードライト処理部１５１は、キャッシュメモリ１１２ａが確保済みであることを確認すると、サーバ２００に対し、書込み情報の転送を開始しても良い旨を通知する応答信号を送信する。そして、サーバ２００から書込み情報が転送されてくると、リードライト処理部１５１は、確保済みのキャッシュページ１１２ａに、その転送されてきた書込み情報を上書きする。その後、リードライト処理部１５１は、サーバ２００に完了通知信号を送信する。
【０３６０】
尚、このときにキャッシュページ１１２ａに記憶された書込み情報は、詳細については後述するように、退避処理Ａ２によって、アクセス対象のＲＡＩＤグループ１６０以外の、ノーマル状態のＲＡＩＤグループ１６０のディスクページ１６１に書き込まれる。
【０３６１】
また、このケースｂ４では、キャッシュページ管理部１５２が、確保済みのキャッシュページ１１２ａの状態フラグについて、次のようなフラグ操作を行う。即ち、そのキャッシュページ１１２ａがバリッド状態であった場合には、バリッドフラグが解除されてダーティフラグが設定される。一方、キャッシュページ１１２ａが元々ダーティ状態であった場合には、設定された状態のダーティフラグがそのまま維持される。
【０３６２】
また、キャッシュページ管理部１５２は、そのキャッシュページ１１２ａにおいて情報が記憶されたブロック１１２ａ＿１の位置に基づいて、ダーティビットマップとバリッドビットマップに対するビットマップ操作を行う。
【０３６３】
また、キャッシュページ管理テーブル１５３内の、状態フラグとダーティビットマップ以外の情報についてはそのまま維持される。
【０３６４】
次に、図１４の表Ｔ２中のケースｂ５について説明する。
［ケースｂ５］
このケースｂ５は、アクセス対象のＲＡＩＤグループ１６０がビジー状態であって、コマンドがライトコマンドであり、キャッシュページ１１２ａが確保済みであって、さらに、次のような場合に相当する。即ち、このケースｂ４は、その確保済みのキャッシュページ１１２ａの管理状態がグレイ状態となっているケースである。
【０３６５】
このケースｂ５で実行される処理は、処理の対象となるキャッシュページ１１２ａの管理状態が、元々グレイ状態となっている点を除いて、上述のケースｂ４で実行される処理と同様である。
【０３６６】
尚、このケースｂ４では、キャッシュページ管理テーブル１５３内の、ビットマップ以外の情報がそのまま維持される。
【０３６７】
以上で、アクセス対象のＲＡＩＤグループ１６０がビジー状態である場合についての説明を終了する。
【０３６８】
次に、アクセス対象のＲＡＩＤグループ１６０がリストア状態である場合について説明する。
【０３６９】
図１５は、アクセス対象のＲＡＩＤグループがリストア状態である場合に想定される複数のケースを表形式で示す図である。
【０３７０】
この図１５に示す表Ｔ３には、ケースｒ１からケースｒ４までの４つのケースが示されている。
【０３７１】
図１５の表Ｔ３におけるケースｒ１は、アクセス対象のＲＡＩＤグループ１６０がリストア状態であって、キャッシュページ１１２ａが未確保であったケースである。
【０３７２】
以下、このケースｒ１について、コマンドがリードコマンドである場合（ケースｒ１＿１）と、コマンドがライトコマンドである場合（ケースｒ１＿２）を説明する。
［ケースｒ１＿１］
このケースｒ１＿１で実行される処理は、アクセス対象のＲＡＩＤグループ１６０がリストア状態である点を除いて、上述のケースｂ１＿１で実行される処理と同様である。
【０３７３】
このケースｒ１＿１では、確保されたキャッシュページ１１２ａの管理状態がバリッド状態に切り替えられる。
【０３７４】
次に、図１５の表Ｔ３中のケースｒ１＿２について説明する。
［ケースｒ１＿２］
このケースｒ１＿２で実行される処理は、アクセス対象のＲＡＩＤグループ１６０がリストア状態である点を除いて、上述のケースｂ１＿２で実行される処理と同様である。
【０３７５】
このケースｒ１＿２では、確保されたキャッシュページ１１２ａの管理状態がダーティ状態に切り替えられる。
【０３７６】
次に、図１５の表Ｔ３中のケースｒ２について説明する。
［ケースｒ２］
このケースｒ２は、アクセス対象のＲＡＩＤグループ１６０がリストア状態であって、コマンドがリードコマンドであり、キャッシュページ１１２ａが確保済みであって、さらに、次のような場合に相当する。即ち、このケースｒ２は、その確保済みのキャッシュページ１１２ａの管理状態が、バリッド状態、ダーティ状態、グレイ状態のうちのいずれかの状態となっているケースである。
【０３７７】
このケースｒ２で実行される処理は、アクセス対象のＲＡＩＤグループ１６０がリストア状態である点を除いて、上述のケースｂ２で実行される処理と同様である。
【０３７８】
このケースｒ２では、キャッシュページ管理テーブル１５３内の情報がそのまま維持される。
【０３７９】
次に、図１５の表Ｔ３中のケースｒ３について説明する。
［ケースｒ３］
このケースｒ３は、アクセス対象のＲＡＩＤグループ１６０がリストア状態であって、コマンドがライトコマンドであり、キャッシュページ１１２ａが確保済みであって、さらに、次のような場合に相当する。即ち、このケースｒ２は、その確保済みのキャッシュページ１１２ａの管理状態が、バリッド状態あるいはダーティ状態となっているケースである。
【０３８０】
このケースｒ２で実行される処理は、アクセス対象のＲＡＩＤグループ１６０がリストア状態である点を除いて、図１３の表Ｔ１におけるケースｎ３で実行される処理と同様である。
【０３８１】
このケースｒ２でも、ケースｎ３のときと同様、確保されたキャッシュページ１１２ａがバリッド状態であった場合には、管理状態がダーティ状態に切り替えられる。一方、そのキャッシュページ１１２ａが元々ダーティ状態であった場合には、管理状態はダーティ状態のまま維持される。
【０３８２】
次に、図１５の表Ｔ３中のケースｒ４について説明する。
［ケースｒ４］
このケースｒ４は、アクセス対象のＲＡＩＤグループ１６０がリストア状態であって、コマンドがライトコマンドであり、キャッシュページ１１２ａが確保済みであって、さらに、次のような場合に相当する。即ち、このケースｒ２は、その確保済みのキャッシュページ１１２ａの管理状態がグレイ状態となっているケースである。
【０３８３】
このケースｒ４で実行される処理は、キャッシュページ管理部１５２による状態フラグの設定又は解除を除いて、上記のケースｒ３で実行される処理と同様である。
【０３８４】
このケースｒ４では、確保されたキャッシュページ１１２ａの管理状態がグレイ状態からダーティ状態に切り替えられる。
【０３８５】
以上で、ストレージ装置１００における処理の詳細についての、フロントエンド１００ａでの処理に注目した説明を終了する。
【０３８６】
以下では、バックエンド１００ｂでの処理に注目した説明を、ライトバック処理とリストア処理とについて説明する。
【０３８７】
まず、ライトバック処理について説明する。
【０３８８】
上述したように、ライトバック処理は、キャッシュページ１１２ａに記憶されている情報を、ＲＡＩＤグループ１６０に書き込む処理である。以下、このライトバック処理についての説明を、処理対象のキャッシュページ１１２ａの管理状態や、アクセス対象のＲＡＩＤグループ１６０の状態によって想定される複数のケースそれぞれについて行う。
【０３８９】
図１６は、ライトバック処理について想定される複数のケースを表形式で示す図である。
【０３９０】
この図１５に示す表Ｔ４には、ケースｗ１からケースｗ５までの５つのケースが示されている。
【０３９１】
まず、ケースｗ１について説明する。
［ケースｗ１］
ケースｗ１は、処理対象のキャッシュページ１１２ａがダーティ状態であり、アクセス対象のＲＡＩＤグループ１６０がノーマル状態であるケースである。
【０３９２】
このケースｗ１での書込み対象の情報は、ライトコマンドに応じてキャッシュページ１１２ａに記憶されている、ＲＡＩＤグループ１６０への書込み前の書込み情報（ダーティ情報）である。
【０３９３】
そして、ケースｗ１での、その書込み情報の書込み先は、アクセス対象のＲＡＩＤグループ１６０における、キャッシュページ１１２ａに対応付けられた上記の区分内のブロックである。
【０３９４】
ここで、処理対象のキャッシュページ１１２ａでは、読出し情報や、ＲＡＩＤグループ１６０への書込みが既に終了している書込み情報が、バリッド情報として上記のダーティ情報と混在している可能性がある。このような情報は、図９のキャッシュページ管理テーブル１５３において、バリッドビットマップでは「１」に対応しているが、ダーティビットマップでは「０」に対応している。
【０３９５】
そこで、ケースｗ１では、アクセス処理部１５４が、まず、キャッシュページ管理テーブル１５３における、処理対象のキャッシュページ１１２ａに対応付けられたダーティビットマップを参照する。そして、アクセス処理部１５４は、キャッシュページ１１２ａに記憶されている情報のうち、このダーティビットマップ中の「１」に対応する情報のみを読み出す。
【０３９６】
続いて、アクセス処理部１５４は、読み出した情報を、アクセス対象のＲＡＩＤグループ１６０における上記の区分内のブロックに書込む。
【０３９７】
この書込みの終了後、アクセス処理部１５４は、フロントエンド１００ａに対し、次のようなビットマップ操作の実行を要求する要求信号を送信する。
【０３９８】
そのビットマップ操作では、処理対象のキャッシュページ１１２ａに対応付けられたダーティビットマップが、そのキャッシュページ１１２ａに対応付けられたバリッドビットマップに論理和される。そして、その後で、ダーティビットマップの符号が全て「０」に設定される。
【０３９９】
処理対象のキャッシュページ１１２ａ内の、上記のようにＲＡＩＤグループ１６０への書込みが終了した情報は、このビットマップ操作により、バリッドビットマップ中の「１」に対応しダーティビットマップ中の「０」に対応したバリッド情報となる。
【０４００】
また、アクセス処理部１５４は、フロントエンド１００ａに対し、処理対象のキャッシュページ１１２ａの管理状態を、ダーティ状態からバリッド状態に切替える切替え処理の実行を要求する要求信号を送信する。この要求信号を受けて、フロントエンド１００ａでは、キャッシュ管理部１５２が、処理対象のキャッシュページ１１２ａに対応付けられたダーティフラグを解除してバリッドフラグを設定する。
【０４０１】
以上に説明したケースｗ１での処理は、図６を参照して説明した通常の書込み処理Ａ１である。
【０４０２】
次に、ケースｗ２について説明する。
［ケースｗ２］
ケースｗ２は、処理対象のキャッシュページ１１２ａがダーティ状態であり、アクセス対象のＲＡＩＤグループ１６０がビジー状態であるケースである。
【０４０３】
このケースｗ２での書込み対象の情報も、ライトコマンドに応じてキャッシュページ１１２ａに記憶されているダーティ情報である。
【０４０４】
このケースｗ２では、アクセス対象のＲＡＩＤグループ１６０がビジー状態であり、直ぐには、このＲＡＩＤグループ１６０への書込みが難しい。
【０４０５】
そこで、ケースｗ２では、アクセス対象のＲＡＩＤグループ１６０以外の、ノーマル状態のＲＡＩＤグループ１６０内のディスクページ１６１を書込み先とした、図６を参照して説明した退避処理Ａ２のための準備が行われる。
【０４０６】
ケースｗ２では、アクセス処理部１５４が、フロントエンド１００ａに対し、処理対象のキャッシュページ１１２ａの管理状態を、ダーティ状態からグレイ状態に切替える切替え処理の実行を要求する要求信号を送信する。この要求信号を受けて、フロントエンド１００ａでは、キャッシュ管理部１５２が、処理対象のキャッシュページ１１２ａに対応付けられたダーティフラグを解除してグレイフラグを設定する。
【０４０７】
この管理状態の切替え処理により、処理対象のキャッシュページ１１２ａ内の情報は、退避処理Ａ２の実行が予定されたグレイ情報となる。この退避処理Ａ２は、後述のケースｗ４での処理に相当する。
【０４０８】
次に、ケースｗ３について説明する。
［ケースｗ３］
ケースｗ３は、処理対象のキャッシュページ１１２ａがダーティ状態であり、アクセス対象のＲＡＩＤグループ１６０がリストア状態であるケースである。
【０４０９】
このケースｗ３での書込み対象の情報も、ライトコマンドに応じてキャッシュページ１１２ａに記憶されているダーティ情報である。
【０４１０】
そして、ケースｗ３での、その書込み情報の書込み先は、アクセス対象のＲＡＩＤグループ１６０における、キャッシュページ１１２ａに対応付けられた上記の区分内のブロックである。
【０４１１】
このケースｗ３では、過去の退避処理Ａ２によって、処理対象のキャッシュページ１１２ａと同じ区分に対応付けられたディスクページ１６１がダーティ状態で存在する可能性がある。そのようなディスクページ１６１内の情報は、今回のアクセス対象のＲＡＩＤグループ１６０への書込み待ちとなっている。このような情報が存在する場合、最新情報である今回の書込み情報を優先しつつ、今回の書込み情報と、ディスクページ１６１内の情報とを合わせてアクセス対象のＲＡＩＤグループ１６０に書き込む必要がある。
【０４１２】
そこで、このケースｗ３では、アクセス処理部１５４が、まず、このような書込み待ちの書込み情報が存在する可能性があるか否かを判定する。
【０４１３】
この判定は、アクセス処理部１５４が、図１２に示すディスクページ管理テーブル１５８を次のように参照することで行われる。
【０４１４】
アクセス処理部１５４は、まず、アクセス対象のＲＡＩＤグループ１６０を示すアクセスＲＧ番号でアクセスＲＧ番号格納部１５８ｃ内を検索する。
【０４１５】
そのアクセスＲＧ番号がアクセスＲＧ番号格納部１５８ｃ内に存在した場合、アクセス処理部１５４は、処理対象のキャッシュページ１１２ａに対応付けられた区分の存在箇所を表すＬＢＡでＬＢＡ格納部１５８ｄ内を検索する。
【０４１６】
そのＬＢＡがＬＢＡ格納部１５８ｄ内に存在しなかった場合、アクセス処理部１５４は、書込み待ちの書込み情報が存在する可能性はないものと判定する。この場合には、上記のケースｗ１と同様の処理が実行される。
【０４１７】
一方、上記の区分の存在箇所を表すＬＢＡが、ＬＢＡ格納部１５８ｄ内に存在した場合、アクセス処理部１５４は、書込み待ちの書込み情報が存在する可能性があると判定する。この場合には、アクセス処理部１５４は、さらに、次のような処理を行う。
【０４１８】
アクセス処理部１５４は、まず、ディスクページ管理部１５７に対し、そのディスクページ１６１の退避ビットマップにおける、キャッシュページ１１２ａに対応付けられたダーティビットマップの「１」の符号に対応した符号を「０」にするように命じる。
【０４１９】
続いて、アクセス処理部１５４は、そのディスクページ１６１から、退避ビットマップの「１」の符号に対応したブロックの情報を読み出す。そして、アクセス処理部１５４は、キャッシュページ１１２ａに、その読み出した情報を記憶する。
【０４２０】
以上の処理は、ディスクページ１６１内の書込み待ちの情報のうち、キャッシュページ１１２ａ内の最新情報で更新されるものを除いた残りを、キャッシュページ１１２ａに取り込む処理である。
【０４２１】
そして、アクセス処理部１５４は、ディスクページ管理部１５７に対し、そのディスクページ１６１の退避ビットマップの符号と複製ビットマップの符号を全て「０」にして、さらにダーティフラグを解除してインバリッドフラグを設定するように命じる。
【０４２２】
この後は、上記のケースｗ１と同様の処理が実行される。
【０４２３】
次に、ケースｗ４について説明する。
［ケースｗ４］
ケースｗ４は、処理対象のキャッシュページ１１２ａがグレイ状態であり、アクセス対象のＲＡＩＤグループ１６０がビジー状態であるケースである。
【０４２４】
このケースｗ４では、アクセス処理部１５４が、退避処理Ａ２あるいは複製処理Ａ３を実行する。ケースｗ４では、キャッシュページ１１２ａ内の、ダーティビットマップの「１」の符号に対応したブロック１１２ａ＿１の情報だけでなく、バリッドビットマップの「１」の符号に対応したブロック１１２ａ＿１の情報も書込みの対象とする。ダーティビットマップの「１」の符号に対応したブロック１１２ａ＿１の情報を書き込む処理が退避処理Ａ２に相当する。また、バリッドビットマップの「１」の符号に対応したブロック１１２ａ＿１の情報を書き込む処理が複製処理Ａ３に相当する。
【０４２５】
ケースｗ４では、アクセス処理部１５４が、まず、処理対象のキャッシュページ１１２ａに対応した、退避先又は複製先のディスクページ１６１が確保済みであるか否かを判定する。
【０４２６】
この判定は、アクセス処理部１５４が、図１２に示すディスクページ管理テーブル１５８を次のように参照することで行われる。
【０４２７】
アクセス処理部１５４は、まず、アクセス対象のＲＡＩＤグループ１６０を示すアクセスＲＧ番号でアクセスＲＧ番号格納部１５８ｃ内を検索する。
【０４２８】
そのアクセスＲＧ番号がアクセスＲＧ番号格納部１５８ｃ内に存在した場合、アクセス処理部１５４は、処理対象のキャッシュページ１１２ａに対応付けられた上記の区分の存在箇所を表すＬＢＡでＬＢＡ格納部１５８ｄ内を検索する。
【０４２９】
そのＬＢＡがＬＢＡ格納部１５８ｄ内に存在しなかった場合、アクセス処理部１５４は、ディスクページ１６１が未確保であると判定する。この場合、アクセス処理部１５４は、インバリッド状態あるいはバリッド状態のディスクページ１６１の中から、退避先あるいは複製先のディスクページ１６１を確保する。また、このときには、ＬＢＡ格納部１５８ｄにおける、その確保したディスクページ１６１に対応する欄に、上記の検索で使われたＬＢＡが格納される。さらに、キャッシュページ１１２ａに対応付けられたバリッドビットマップとダーティビットマップとが、複製ビットマップと退避ビットマップとして、ディスクページ管理テーブル１５８に格納される。
【０４３０】
一方、上記の区分を表すＬＢＡがＬＢＡ格納部１５８ｄ内に存在した場合、アクセス処理部１５４はディスクページ１６１が確保済みであると判定する。
【０４３１】
この場合には、以下の処理が実行される。
【０４３２】
まず、キャッシュページ１１２ａに対応付けられたバリッドビットマップとダーティビットマップとが、複製ビットマップと退避ビットマップにそれぞれ論理和される。さらに、論理和後の退避ビットマップの「１」の符号に対応する複製ビットマップの符号が「０」にされる。これにより、キャッシュページ１１２ａから書き込まれる最新のダーティ情報が、ディスクページ１６１においても、書込み待ちの情報として扱われることとなる。
【０４３３】
未確保、確保済みそれぞれの場合に応じた上記の処理が行われた後、アクセス処理部１５４は、処理対象のキャッシュページ１１２ａ内の情報をディスクページ１６１に書き込む。
【０４３４】
その後、アクセス処理部１５４は、ディスクページ管理テーブル１５８内の、そのディスクページ１６１に対応する退避ビットマップの符号が全て「０」であるか否かを判定する。
【０４３５】
符号が全て「０」であることは、今回、書き込まれた情報が読出し情報のみであることを意味する。この場合、ディスクページ１６１がインバリッド状態のときにはインバリッドフラグが解除されてバリッドフラグが設定される。また、ディスクページ１６１がバリッド状態のときにはバリッドフラグが設定されたままで維持される。
【０４３６】
一方、退避ビットマップに「１」の符号が存在するということは、今回、書き込まれた情報に、書込み情報が存在していることを意味する。この場合には、インバリッドフラグ又はバリッドフラグが解除されてダーティフラグが設定される。
【０４３７】
さらに、アクセス処理部１５４は、フロントエンド１００ａに対し、処理対象のキャッシュページ１１２ａについて次のようなビットマップ操作とフラグ操作とを実行するよう要求する要求信号を送信する。この要求信号において、アクセス処理部１５４は、まず、バリッドビットマップへのダーティビットマップの論理和と、ダーティビットマップの符号を全て「０」にするビットマップ操作の実行を要求する。また、アクセス処理部１５４は、処理対象のキャッシュページ１１２ａのグレイフラグを解除してバリッドフラグを設定するフラグ操作の実行を要求する。このフラグ操作により、キャッシュページ１１２ａの管理状態が、上書き可能なバリッド状態に切り替えられる。
【０４３８】
尚、本実施形態では、ケースｗ４において、バリッドビットマップで符号が「１」になっている情報と同一の情報が、ディスクページ１６１上の同じＬＢＡに存在した場合、上書きが実行される。この上書きは、本実施形態では、上書きの前後で情報が変わらないため認められている。ただし、バリッドビットマップと、複製ビットマップおよび退避ビットマップとの比較により、このような上書きを排除することとしても良い。
【０４３９】
次に、ケースｗ５について説明する。
［ケースｗ５］
ケースｗ５は、処理対象のキャッシュページ１１２ａがグレイ状態であり、アクセス対象のＲＡＩＤグループ１６０がリストア状態であるケースである。
【０４４０】
ケースｗ５では、アクセス処理部１５４が、キャッシュページ管理テーブル１５３を参照することで、処理対象のキャッシュページ１１２ａに対応付けられたダーティビットマップの符号が全て「０」であるか否かを判定する。
【０４４１】
ダーティビットマップの符号が全て「０」であることは、グレイ状態のキャッシュページ１１２ａ内には読出し情報のみが記憶されていることを意味する。この場合には、処理対象のキャッシュページ１１２ａの管理状態がバリッド状態に切り替えられる。
【０４４２】
一方、ダーティビットマップに「１」の符号が存在するということは、グレイ状態のキャッシュページ１１２ａ内に、アクセス対象のＲＡＩＤグループ１６０への書込み前の書込み情報が記憶されていることを意味する。この場合には、処理対象のキャッシュページ１１２ａの管理状態がダーティ状態に切り替えられる。そして、その後は、上述したケースｗ３と同様の処理が実行されて、キャッシュページ１１２ａ内の書込み情報が、アクセス対象のＲＡＩＤグループ１６０に書き込まれる。
【０４４３】
以上で、ライトバック処理についての説明を終了する。
【０４４４】
尚、ライトバック処理の対象のキャッシュページ１１２ａがグレイ状態であることは、コマンドで指定されたアクセス対象のＲＡＩＤグループ１６０がビジー状態かリストア状態になっていることを意味している。このため、図１６の表Ｔ４では、処理対象のキャッシュページ１１２ａがグレイ状態でアクセス対象のＲＡＩＤグループ１６０がノーマル状態であるというケースは生じないこととなっている。
【０４４５】
次に、リストア処理について説明する。
【０４４６】
リストア処理は、上述したように、ディスクページ１６１に書き込まれた書込み情報を、本来の書込み先である、アクセス対象のＲＡＩＤグループ１６０に移動させる処理である。また、このリストア処理では、ディスクページ１６１に書き込まれた後に不要となった読出し情報の無効化も行われる。
【０４４７】
リストア処理は、上述したように、負荷管理部１５５から、任意のＲＡＩＤグループ１６０の状態をリストア状態に判別した旨の通知があると実行される。
【０４４８】
リストア処理では、まず、アクセス処理部１５４が、キャッシュページ管理テーブル１５３を参照する。そして、アクセスＲＧ番号に対応する、全てのグレイ状態のキャッシュページ１１２ａそれぞれについて、ダーティビットマップの符号が全て「０」であるか否かを判定する。
【０４４９】
ダーティビットマップの符号が全て「０」であった場合、処理対象のキャッシュページ１１２ａの管理状態がバリッド状態に切り替えられる。
【０４５０】
一方、ダーティビットマップに「１」の符号が存在した場合、処理対象のキャッシュページ１１２ａの管理状態がダーティ状態に切り替えられる。
【０４５１】
次に、アクセス処理部１５４は、ディスクページ管理テーブル１５８を参照する。そして、アクセスＲＧ番号に対応する、全てのバリッド状態又はダーティ状態のディスクページ１６１それぞれについて、以下の処理を実行する。
【０４５２】
バリッド状態のディスクページ１６１については、複製ビットマップの符号が全て「０」にされる。そして、そのディスクページ１６１の管理状態がインバリッド状態に切り替えられる。この切替えにより、そのディスクページ１６１に記憶されている情報が無効化されることとなる。
【０４５３】
ダーティ状態のディスクページ１６１については、アクセス処理部１５４は、次のような処理を実行する。
【０４５４】
アクセス処理部１５４は、まず、キャッシュページ管理テーブル１５３を参照する。
【０４５５】
そして、アクセス処理部１５４は、キャッシュページ管理テーブル１５３に、このダーティ状態のディスクページ１６１に対応付られているアクセスＲＧ番号とＬＢＡとが格納されているか否かを判定する。
【０４５６】
これらの情報が格納されていた場合、アクセス処理部１５４は、ダーティ状態のディスクページ１６１内の情報を記憶するためのキャッシュページ１１２ａが確保済みであると判断する。
【０４５７】
一方、上記のアクセスＲＧ番号とＬＢＡが格納されていなかった場合、アクセス処理部１５４は、キャッシュページ１１２ａが未確保であると判断する。
【０４５８】
キャッシュページ１１２ａが未確保である場合、アクセス処理部１５４は、インバリッド状態又はバリッド状態のキャッシュページ１１２ａの中から、情報の記憶のためのキャッシュページ１１２ａを確保する。
【０４５９】
次に、アクセス処理部１５４は、確保済みのキャッシュページ１１２ａ、あるいは、上記のように確保されたキャッシュページ１１２ａに、以下のような処理によって、処理対象のディスクページ１６１の情報を記憶する。
【０４６０】
まず、アクセス処理部１５４は、ディスクページ管理部１５７に対し、次のようなビットマップ操作の実行を命じる。アクセス処理部１５４は、処理対象のディスクページ１６１の退避ビットマップにおける、記憶先のキャッシュページ１１２ａに対応付けられたダーティビットマップで「１」の符号に対応する符号を「０」にするように命じる。
【０４６１】
その後、アクセス処理部１５４は、処理対象のディスクページ１６１から、退避ビットマップで「１」の符号に対応するブロックの情報を読み出して、キャッシュページ１１２ａの対応するブロック１１２ａ＿１に記憶する。
【０４６２】
さらに、アクセス処理部１５４は、フロントエンド１００ａに対し、次のようなビットマップ操作とフラグ操作の実行を要求する要求信号を送信する。
【０４６３】
この要求信号では、情報の記憶先のキャッシュページ１１２ａに対応付けられたダーティビットマップに、処理対象のディスクページ１６１に対応付けられた退避ビットマップを論理和するビットマップ操作が要求される。また、キャッシュページ１１２ａに対応付けられたインバリッドフラグ又はバリッドフラグを解除してダーティフラグを設定するフラグ操作が要求される。また、キャッシュページ１１２ａが元々ダーティ状態であった場合には、ダーティフラグを設定したままでの維持が要求される。
【０４６４】
続いて、アクセス処理部１５４は、ディスクページ管理部１５７に対し、そのディスクページ１６１に対応付けられたダーティフラグを解除してインバリッドフラグを設定するように命じる。これにより、そのディスクページ１６１の管理状態が、インバリッド状態に切り替えられる。
【０４６５】
リストア処理における、ここまでに説明した処理が、図６を参照して説明したリストア時ステージング処理Ｃ１に相当する。
【０４６６】
このリストア時ステージング処理Ｃ１により、ディスクページ１６１内の書込み待ちの情報のうち、キャッシュページ１１２ａ内で情報が未記憶となっているブロックの情報が、その未記憶のブロック１１２ａ＿１に記憶される。これにより、キャッシュページ１１２ａ内の最新の書込み情報と、ディスクページ１６１内の書込み待ちの情報とがキャッシュページ１１２ａ上で合わせられる。
【０４６７】
以上の処理が、アクセス対象のＲＡＩＤグループ１６０に対応する全てのディスクページ１６１について実行されると、アクセス処理部１５４は、負荷管理部１５５に対し、次のようなフラグ操作を命じる。このフラグ操作では、図１１に示す負荷管理テーブル１５６における、アクセスＲＧ番号に対応した、リストア状態を示す状態フラグが解除されて、ノーマル状態を示す状態フラグが設定される。
【０４６８】
そして、その後、アクセス処理部１５４は、上記のようにディスクページ１６１の情報が記憶されたキャッシュページ１１２ａから情報を読み出して、アクセス対象のＲＡＩＤグループ１６０に書き込む。このときの書込みは、図１６の表Ｔ４に示すケースｗ１の処理と同様である。このリストア処理で行われる書込み処理が、図６を参照して説明した復元処理Ｃ２に相当する。
【０４６９】
以上で、図６に示すストレージ装置１００における処理の詳細についての説明を終了する。
【０４７０】
次に、ストレージ装置１００内での、コマンドに応じた情報の動きについて、次のような５つの例を代表例として挙げて説明する。
【０４７１】
図１７は、コマンドに応じた情報の動きについての第１の例を示す模式図である。
【０４７２】
第１の例は、アクセス先のＲＡＩＤグループ１６０がビジー状態であった場合の、ライトコマンドに応じた書込み情報の動きの例である。また、この第１の例では、アクセス先のＲＡＩＤグループ１６０について、今回のライトコマンドの前に、ディスクページ１６１への情報の退避処理や複製処理は行われていないものとする。
【０４７３】
まず、サーバ２００から書込み情報Ｄ１がストレージ装置１００に転送されてくる（ステップＳ３０１）。このとき、ライトコマンドで、アクセスＲＧ番号として「０」番が指定されているものとする。
【０４７４】
第１の例では、この「０」番のＲＡＩＤグループ１６０がビジー状態となっている。
【０４７５】
そのため、まず、その「０」番以外のＲＧ番号の、ノーマル状態のＲＡＩＤグループ１６０内のディスクページ１６１に、書込み情報Ｄ１が書き込まれる（ステップＳ３０２）。第１の例では、「２」番のＲＡＩＤグループ１６０のディスクページ１６１が、書込み情報Ｄ１の退避先として使われている。
【０４７６】
この書込みは、図１４の表Ｔ２に示す上述のケースｂ１＿２、ケースｂ４、ケースｂ５のうちのいずれかの処理によるキャッシュメモリ１１２への記憶と、図１６の表Ｔ４に示す上述のケースｗ２と、ケースｗ４のライトバック処理によって行われる。
【０４７７】
次に、「０」番のＲＡＩＤグループ１６０がリストア状態になると、上記のディスクページ１６１内の書込み情報Ｄ１が、本来の書込み先である「０」番のＲＡＩＤグループ１６０に書き込まれる（ステップＳ３０３）。
【０４７８】
このように、本実施形態では、本来の書込み先のＲＡＩＤグループ１６０がビジー状態であったとしても、書込み先を別のノーマル状態のＲＡＩＤグループ１６０に変更することで書込み処理の遅延が抑制されることとなる。
【０４７９】
また、本実施形態では、別のＲＡＩＤグループ１６０に書き込まれた書込み情報は、本来の書込み先のＲＡＩＤグループ１６０がリストア状態となったときに、アクセス処理部１５４によってそのＲＡＩＤグループ１６０に移される。これにより、その別のＲＡＩＤグループ１６０における、それまで書込み情報が書き込まれていたディスクページ１６１が、他の情報の書込みに利用できるようになる。このように、本実施形態では、各ＲＡＩＤグループ１６０が、ディスクページ１６１の利用の点で、効率的に運用されることとなっている。このことは、本件の情報記憶装置に対し、次のような応用形態が好適であることを意味している。
【０４８０】
この応用形態は、上記書込部によって、上記書込み先記憶部以外の記憶部に書き込まれた情報を、その書込み先記憶部が上記第２状態になったときにその書込み先記憶部に移動させる移動部を備えている。
【０４８１】
本実施形態におけるアクセス処理部１５４は、この応用形態における移動部の一例にも相当している。
【０４８２】
また、本実施形態のストレージ装置１００は、キャッシュメモリ１１２と、そのキャッシュメモリ１１２が有する複数のキャッシュページ１１２ａそれぞれの状態管理等を行うキャッシュページ管理部１５２とを備えている。
【０４８３】
そして、このストレージ装置１００では、アクセス対象であってノーマル状態やリストア状態となっているＲＡＩＤグループ１６０に対応したキャッシュページ１１２ａ内の書込み情報が、そのＲＡＩＤグループ１６０に書き込まれる。
【０４８４】
一方で、アクセス対象であってビジー状態となっているＲＡＩＤグループ１６０に対応したキャッシュページ１１２ａ内の書込み情報は、そのＲＡＩＤグループ１６０以外のノーマル状態のＲＡＩＤグループ１６０に書き込まれる。
【０４８５】
ＲＡＩＤグループ１６０に対するアクセス速度よりも高速のアクセスが可能なメモリであるキャッシュメモリ１１２を介したこのような書込み処理により、書込み処理の遅延が一層抑制されることとなる。このことは、本件の情報記憶装置に対し、次のような応用形態が好適であることを意味している。
【０４８６】
この応用形態は、次のような保管部と管理部とを備えている。
【０４８７】
保管部は、上記書込部に与えられた書込み対象の情報のうちその書込部による書込みが未了の情報、および上記読出部により上記読出し元記憶部から読み出された情報を保管する。そして、この保管部は、上記記憶部に対する情報の読書き速度よりも高速に情報が出し入れ可能なものとなっている
管理部は、上記保管部が有する保管領域の状態を管理する管理部である。そして、管理部は、次のような保管状態と未保管状態とを区別して管理する。保管状態は、上記書込部による書込み前の情報が保管されている状態である。未保管状態は、その書込み前の情報が未保管である状態である。管理部は、更に保管状態については、次のような第１の保管状態と第２の保管状態とを区別して管理する。第１の保管状態は、上記書込み先記憶部が上記第１状態である場合の保管状態である。第２の保管状態は、その書込み先記憶部が上記第２状態である場合の保管状態である。
【０４８８】
そして、この応用形態では、上記書込部が、上記第２の保管状態にある保管領域に保管されている情報については上記書込み先記憶部に書き込む。また、この書込部は、上記第１の保管状態にある保管領域に保管されている情報については、上記複数の記憶部のうちその書込み先記憶部以外の上記第２状態である記憶部に書き込む。
【０４８９】
本実施形態におけるキャッシュメモリ１１２が、この応用形態における保管部の一例に相当している。また、本実施形態におけるキャッシュページ管理部１１２ａが、この応用形態における管理部の一例に相当する。また、キャッシュページ１１２ａについてのダーティ状態が、この応用形態にいう保管状態の一例に相当する。また、キャッシュページ１１２ａについてのインバリッド状態とバリッド状態が、この応用形態にいう未保管状態の一例に相当する。また、ダーティ状態のうち、記憶している情報の本来の書込み先のＲＡＩＤグループ１６０がビジー状態となっている状態が、この応用形態にいう第１の保管状態の一例に相当する。また、ダーティ状態のうち、記憶している情報の本来の書込み先のＲＡＩＤグループ１６０がノーマル状態又はリストア状態となっている状態が、この応用形態にいう第２の保管状態の一例に相当する。また、本実施形態におけるアクセス処理部１５４は、この応用形態における書込部の一例にも相当している。
【０４９０】
図１８は、コマンドに応じた情報の動きについての第２の例を示す模式図である。
【０４９１】
第２の例は、アクセス先のＲＡＩＤグループ１６０がビジー状態であった場合の、リードコマンドに応じた読出し情報の動きの例である。また、この第２の例でも、アクセス先のＲＡＩＤグループ１６０について、今回のリードコマンドの前に、ディスクページ１６１への情報の退避処理や複製処理は行われていないものとする。
【０４９２】
まず、サーバ２００からのリードコマンドに応じて、読出し元のＲＡＩＤグループ１６０から読出し情報Ｄ２が読み出されて、キャッシュメモリ１１２に記憶される（ステップＳ４０１）。このとき、リードコマンドで、アクセスＲＧ番号として「０」番が指定されているものとする。
【０４９３】
第２の例でも、この「０」番のＲＡＩＤグループ１６０がビジー状態である。
【０４９４】
本実施形態では、ビジー状態のＡＩＤグループ１６０の情報の読出しは、そのＡＩＤグループ１６０へのアクセス量が閾値未満に減少して、リストア状態にまでは至らないまでも低負荷状態となるまでは延期される。そして、その延期の後で読み出された読出し情報Ｄ２が、その「０」番以外のＲＧ番号の、ノーマル状態のＲＡＩＤグループ１６０内のディスクページ１６１に書き込まれる（ステップＳ４０２）。第２の例では、「３」番のＲＡＩＤグループ１６０のディスクページ１６１が、読出し情報Ｄ２の書込み先として使われている。
【０４９５】
この書込みは、図１４の表Ｔ２に示す上述のケースｂ１＿１、ケースｂ２、ケースｂ３のうちのいずれかの処理によるキャッシュメモリ１１２への記憶と、図１６の表Ｔ４に示す上述のケースｗ４のライトバック処理によって行われる。
【０４９６】
そして、この読出し後であって、「０」番のＲＡＩＤグループ１６０がビジー状態であるときに、上記の読出し情報Ｄ２について、リードコマンドで再度読出しが要求された場合には、上記のディスクページ１６１から読出し情報Ｄ２が読み出される。このディスクページ１６１は、上述したようにノーマル状態のＲＡＩＤグループ１６０のディスクページ１６１である。従って、この再度の読出しは、本来の読出し元のＲＡＩＤグループ１６０がビジー状態であっても遅延することなく実行される。このことは本件の情報記憶装置に対し、次のような応用形態が好適であることを意味している。
【０４９７】
この応用形態では、上記読出部は、上記読出し元記憶部が上記第２状態である場合にその読出し元記憶部にアクセスし、その読出し元記憶部が上記第１状態である場合にはその読出し元記憶部へのアクセスを延期するものとなっている。
【０４９８】
また、この応用形態は、上記読出部によるアクセス延期の後で上記読出し元記憶部から読み出された情報を、上記複数の記憶部のうちその読出し元記憶部以外の上記第２状態である記憶部に書き込む予備書込部を備えている。
【０４９９】
さらに、この応用形態では、上記読出部は、上記読出し元記憶部が上記第１状態であって、かつ、上記読出し元のアドレスに存在する情報が上記予備書込部によってその読出し元記憶部以外の記憶部に書き込まれている場合に、次のような処理を実行する。読出部は、この場合に、その読出し元記憶部へのアクセスに替えて、その予備書込部によって情報が書き込まれた記憶部にアクセスして情報を読み出す。
【０５００】
本実施形態におけるアクセス処理部１５４は、この応用形態における読出部と予備書込部とを兼ねた一例にも相当している。
【０５０１】
図１９は、コマンドに応じた情報の動きについての第３の例を示す模式図である。
【０５０２】
第３の例は、アクセス先のＲＡＩＤグループ１６０がビジー状態であった場合の、ライトコマンドに応じた読出し情報の動きの例である。
【０５０３】
尚、この第３の例では、アクセス先のＲＡＩＤグループ１６０について、今回のライトコマンドの前に、ディスクページ１６１への情報の複製処理が行われていたものとする。
【０５０４】
まず、サーバ２００から書込み情報Ｄ３がストレージ装置１００に転送されてくる（ステップＳ５０１）。このとき、ライトコマンドで、アクセスＲＧ番号として「０」番が指定されているものとする。
【０５０５】
第３の例では、この「０」番のＲＡＩＤグループ１６０がビジー状態である。
【０５０６】
そのため、まず、その「０」番以外のＲＧ番号の、ノーマル状態のＲＡＩＤグループ１６０内のディスクページ１６１に、書込み情報Ｄ３が書き込まれる（ステップＳ５０２）。
【０５０７】
ここで、この第３の例では、「３」番のＲＡＩＤグループ１６０内の、過去の複製処理で読出し情報Ｄ４が書き込まれているディスクページ１６１が、書込み情報Ｄ３の書込み先として使われる。この第３の例では、このディスクページ１６１への書込み情報Ｄ３の書込みは、そのディスクページ１６１上の読出し情報Ｄ４への上書きによって行われる。
【０５０８】
この書込みも、図１４の表Ｔ２に示す上述のケースｂ１＿１、ケースｂ４、ケースｂ５のうちのいずれかの処理によるキャッシュメモリ１１２への記憶と、図１６の表Ｔ４に示す上述のケースｗ４のライトバック処理によって行われる。
【０５０９】
次に、「０」番のＲＡＩＤグループ１６０がリストア状態になると、上記のディスクページ１６１内の書込み情報Ｄ３のみが、本来の書込み先である「０」番のＲＡＩＤグループ１６０に書き込まれる（ステップＳ５０３）。
【０５１０】
この第３の例でも、本来の書込み先のＲＡＩＤグループ１６０がビジー状態であったとしても、書込み先を別のノーマル状態のＲＡＩＤグループ１６０に変更することで書込み処理の遅延が抑制されることとなる。
【０５１１】
図２０は、コマンドに応じた情報の動きについての第４の例を示す模式図である。
【０５１２】
第４の例は、アクセス先のＲＡＩＤグループ１６０がビジー状態であった場合の、ライトコマンドに応じた読出し情報の動きの例である。
【０５１３】
尚、この第４の例では、アクセス先のＲＡＩＤグループ１６０について、今回のライトコマンドの前に、ディスクページ１６１への情報の退避処理が行われていたものとする。
【０５１４】
まず、サーバ２００から書込み情報Ｄ５がストレージ装置１００に転送されてくる（ステップＳ６０１）。このとき、ライトコマンドで、アクセスＲＧ番号として「０」番が指定されているものとする。
【０５１５】
第４の例では、この「０」番のＲＡＩＤグループ１６０がビジー状態である。
【０５１６】
そのため、まず、その「０」番以外のＲＧ番号の、ノーマル状態のＲＡＩＤグループ１６０内のディスクページ１６１に、書込み情報Ｄ５が書き込まれる（ステップＳ６０２）。
【０５１７】
ここで、この第４の例では、「２」番のＲＡＩＤグループ１６０内の、過去の退避処理で書込み情報Ｄ６が書き込まれているディスクページ１６１が、今回の書込み情報Ｄ５の書込み先として使われている。また、この過去の退避処理における書込み情報Ｄ６の本来の書込み先も、今回の書込み情報Ｄ５の書込み先と同じ「０」番のＲＡＩＤグループ１６０である。そして、今回のライトコマンドが発行された段階で、書込み情報Ｄ６は書込み待ちとなっている。
【０５１８】
この第４の例では、このディスクページ１６１への今回の書込み情報Ｄ５の書込みは、そのディスクページ１６１上の過去の書込み情報Ｄ６への上書きによって行われる。そして、この第４の例では、今回の書込み情報Ｄ５を過去の書込み情報Ｄ６に上書きした情報全体がリストア処理の対象となる。
【０５１９】
この書込みも、図１４の表Ｔ２に示す上述のケースｂ１＿１、ケースｂ４、ケースｂ５のうちのいずれかの処理によるキャッシュメモリ１１２への記憶と、図１６の表Ｔ４に示す上述のケースｗ４のライトバック処理によって行われる。
【０５２０】
次に、「０」番のＲＡＩＤグループ１６０がリストア状態になると、上記のディスクページ１６１内の上記の上書き後の情報全体が、本来の書込み先である「０」番のＲＡＩＤグループ１６０に書き込まれる（ステップＳ６０３）。
【０５２１】
この第４の例のように、本実施形態では、過去にディスクページ１６１に書き込まれて書込み待ちとなっている書込み情報Ｄ６と書込み先が同じ書込み情報Ｄ５が、ディスクページ１６１上で、その書込み待ちの書込み情報Ｄ６に上書きされる。これにより、退避処理が複数回行われたとしても、ディスクページ１６１には最新の書込み情報が格納される。このことは、本件の情報記憶装置に対し、次のような応用形態が好適であることを意味している。
【０５２２】
この応用形態では、上記書込部は、その書込部によって上記書込み先記憶部以外の記憶部に書き込まれた情報に対して指定された書込み先のアドレスと同じアドレスが書込み先のアドレスとして再び指定された場合に、次のような処理を行う。即ち、この場合、書込部は、その書込み先記憶部へのアクセスに替えて、その書込み先記憶部以外の、その情報が記憶されている記憶部にアクセスして新たな書込み対象の情報を上書きする。
【０５２３】
本実施形態におけるアクセス処理部１５４は、この応用形態における書込部の一例にも相当している。
【０５２４】
図２１は、コマンドに応じた情報の動きについての第５の例を示す模式図である。
【０５２５】
第５の例は、アクセス先のＲＡＩＤグループ１６０がビジー状態であった場合の、リードコマンドに応じた読出し情報の動きの例である。
【０５２６】
尚、この第５の例では、アクセス先のＲＡＩＤグループ１６０について、今回のライトコマンドの前に、ディスクページ１６１への情報の退避処理が行われていたものとする。
【０５２７】
また、この第５の例では、リードコマンドで、その退避処理でディスクページ１６１に格納されている書込み情報Ｄ７を含んだ、この書込み情報Ｄ７よりも多い情報の読出しが要求されているものとする。
【０５２８】
第５の例では、リードコマンドで指定された本来の読出し元は、「０」番のＲＡＩＤグループ１６０である。この「０」番のＲＡＩＤグループ１６０がビジー状態となっている。また、過去の退避処理によって、その「０」番のＲＡＩＤグループ１６０を本来の書込み先とした書込み情報Ｄ７が、ノーマル状態の「２」番のＲＡＩＤグループ１６０のディスクページ１６１に書き込まれて、本来の書込み先への書込み待ちとなっている。
【０５２９】
まず、今回要求されている情報のうち、「２」番のＲＡＩＤグループ１６０のディスクページ１６１に格納されている書込み情報Ｄ７が、そのディスクページ１６１から読み出されてキャッシュメモリ１１２に記憶される（ステップＳ７０１）。
【０５３０】
次に、今回要求されている情報のうち、その書込み情報Ｄ７以外の読出し情報Ｄ８が、本来の読出し元である「０」番のＲＡＩＤグループ１６０から読み出されてキャッシュメモリ１１２に記憶される（ステップＳ７０２）。尚、このステップＳ７０２での読出しは、「０」番のＲＡＩＤグループ１６０が低負荷状態となるのを待って行われる。
【０５３１】
ここまでの処理は、図１４の表Ｔ２に示す上述のケースｂ１＿１、ケースｂ２、ケースｂ３のうちのいずれかの処理によって行われる。
【０５３２】
ここまでの処理により、キャッシュメモリ１１２上に、今回要求されている情報の全てがそろうこととなる。
【０５３３】
そして、このようにそろった情報が、キャッシュメモリ１１２から読み出されてサーバ２００に転送される（ステップＳ７０３）。
【０５３４】
この転送の時点で、「０」番のＲＡＩＤグループ１６０がビジー状態であるならば、上記のようにキャッシュメモリ１１２上にそろった情報全体が、「２」番のＲＡＩＤグループ１６０のディスクページ１６１に上書きされる（ステップＳ７０４）。
【０５３５】
このステップＳ７０４の上書きは、図１６の表Ｔ４に示す上述のケースｗ２と、ケースｗ４のライトバック処理によって行われる。
【０５３６】
そして、「０」番のＲＡＩＤグループ１６０がリストア状態になると、上記のディスクページ１６１内の情報のうち、書込み待ちとなっていた書込み情報Ｄ７のみが、本来の書込み先である「０」番のＲＡＩＤグループ１６０に書き込まれる（ステップＳ７０５）。
【０５３７】
この第５の例のように、本実施形態では、本来の読出し元がビジー状態であって、読出し情報が、一部でも、書込み待ちの書込み情報としてディスクページ１６１上に存在する場合には、このディスクページ１６１から情報が読み出される。書込み待ちの書込み情報が格納されたディスクページ１６１を有するＲＡＩＤグループ１６０はノーマル状態であるので、少なくとも、このディスクページ１６１からの読出しは遅延することなく実行される。このことは、本件の情報記憶装置に対し、次のような応用形態が好適であることを意味している。
【０５３８】
この応用形態では、上記読出部は、上記書込部によって上記書込み先記憶部以外の記憶部に書き込まれた情報に対して指定された書込み先のアドレスと同じアドレスが読出し元のアドレスとして指定された場合に、次のような処理を行う。即ち、この場合、読出部は、上記読出し元記憶部へのアクセスに替えて、その書込み先記憶部以外の、その情報が記憶されている記憶部にアクセスしてその情報を読み出す。
【０５３９】
本実施形態におけるアクセス処理部１５４は、この応用形態における読出部の一例にも相当している。
【符号の説明】
【０５４０】
１０    情報記憶装置
１１    記憶部
１２    書込部
１３    読出部
１４    状態判別部
１００    ストレージ装置
１００ａ    フロントエンド
１００ｂ    バックエンド
１０１，５１１    ＨＤＤ
１１０    コントローラモジュール
１１１，５０１    キャッシュ制御部
１１１ａ，１１３ａ    ＲＯＭ
１１１ｂ，１１３ｂ    ＲＡＭ
１１２，５０２    キャッシュメモリ
１１２ａ    キャッシュページ
１１２ａ＿１    ブロック
１１３，５０３    ディスク制御部
１５１    リードライト処理部
１５２    キャッシュページ管理部
１５３    キャッシュページ管理テーブル
１５３ａ    Ｃページ番号格納部
１５３ｂ    Ｃページ状態格納部
１５３ｃ，１５８ｃ    アクセスＲＧ番号格納部
１５３ｄ，１５８ｄ    ＬＢＡ格納部
１５３ｅ    バリッドビットマップ格納部
１５３ｆ    ダーティビットマップ格納部
１５４    アクセス処理部
１５４ａ，５０３ａ    キュー管理部
１５５    負荷管理部
１５６    負荷管理テーブル
１５６ａ    ＲＧ番号格納部
１５６ｂ    ＲＡＩＤ状態格納部
１５６ｃ    Ｄページ先頭ＬＢＡ格納部
１５６ｄ    Ｄページ容量格納部
１５６ｅ    Ｄページ使用量格納部
１５７    ディスクページ管理部
１５８    ディスクページ管理テーブル
１５８ａ    Ｄページ番号格納部
１５８ｂ    Ｄページ状態格納部
１５８ｅ    複製ビットマップ格納部
１５８ｆ    退避ビットマップ格納部
１６０，５１０    ＲＡＩＤグループ
１６１    ディスクページ
２００，６００    サーバ
２５０，６５０    ＳＡＮ
５００    比較例のストレージ装置
【図１】
2012123551.tif 000003
【図２】
2012123551.tif 000004
【図３】
2012123551.tif 000005
【図４】
2012123551.tif 000006
【図５】
2012123551.tif 000007
【図６】
2012123551.tif 000008
【図７】
2012123551.tif 000009
【図８】
2012123551.tif 000010
【図９】
2012123551.tif 000011
【図１０】
2012123551.tif 000012
【図１１】
2012123551.tif 000013
【図１２】
2012123551.tif 000014
【図１３】
2012123551.tif 000015
【図１４】
2012123551.tif 000016
【図１５】
2012123551.tif 000017
【図１６】
2012123551.tif 000018
【図１７】
2012123551.tif 000019
【図１８】
2012123551.tif 000020
【図１９】
2012123551.tif 000021
【図２０】
2012123551.tif 000022
【図２１】
2012123551.tif 000023