(57)【要約】【課題】データアクセスに対する応答性能の向上を図る。【解決手段】ストレージ制御装置１０１は、２次キャッシュに保持するデータの記憶装置１０３上のアドレスを第１の管理情報に、２次キャッシュに保持されたデータの記憶装置１０３上のアドレスを第２の管理情報に記憶する。ストレージ制御装置１０１は、第１の管理情報に含まれ、第２の管理情報に含まれていない記憶領域のアドレスのアクセス要求に応じて、記憶領域のデータを２次キャッシュに保持し、記憶領域のアドレスを第２の管理情報に登録する。これにより、ストレージ制御装置１０１は、第２の管理情報に記憶したアドレスのアクセス要求を２次キャッシュに保持したデータで応答することができる。【選択図】図１
2016051387.tif 000002
【特許請求の範囲】
【請求項１】
１次キャッシュと２次キャッシュと制御部とを有し、記憶装置に対するアクセス制御を行うストレージ制御装置において、
前記制御部は、
前記２次キャッシュに保持するデータの前記記憶装置上のアドレスを含む第１の管理情報と、前記２次キャッシュに保持されたデータの前記記憶装置上のアドレスを含む第２の管理情報とを記憶し、
前記記憶装置のいずれかの記憶領域に対するアクセス要求に応じて、前記記憶領域のアドレスが前記第１の管理情報に含まれ、かつ、前記記憶領域のアドレスが前記第２の管理情報に含まれていない場合に、前記記憶領域のデータを前記２次キャッシュに保持し、
前記記憶領域のアドレスを前記第２の管理情報に登録する、
ことを特徴とするストレージ制御装置。
【請求項２】
前記制御部は、
前記アクセス要求に応じて、前記記憶領域のアドレスが前記第２の管理情報に含まれている場合には、前記記憶領域のアドレスに対応するデータを、前記２次キャッシュから読み出して、または、前記２次キャッシュに書き込んで、前記アクセス要求に応答することを特徴とする請求項１に記載のストレージ制御装置。
【請求項３】
前記制御部は、
前記２次キャッシュに保持されている各データに対するアクセス回数を前記各データの前記記憶装置上のアドレスに関連付けて記憶し、
前記アクセス要求に応じて、前記記憶領域のデータを前記２次キャッシュに保持する際に、前記第２の管理情報に含まれるアドレス数が上限数に達した場合、前記第２の管理情報に含まれるアドレスのうち、最後にアクセスされてから最も時間が経過し、関連付けて記憶されたアクセス回数が第１の所定値未満であるアドレスを前記第２の管理情報から削除するとともに、削除したアドレスに対応するデータを前記２次キャッシュから破棄することを特徴とする請求項１または２に記載のストレージ制御装置。
【請求項４】
前記制御部は、
最後にアクセスされてから最も時間が経過し、関連付けて記憶された前記アクセス回数が前記第１の所定値以上であるアドレスの属性を、最も最近にアクセスされた属性に変更し、関連付けて記憶された前記アクセス回数を初期化することを特徴とする請求項３に記載のストレージ制御装置。
【請求項５】
前記制御部は、
前記１次キャッシュから追い出された各データの前記記憶装置上のアドレスと追い出し回数とを含む第３の管理情報を記憶し、
前記第３の管理情報に含まれるアドレスに対応するデータが前記１次キャッシュから追い出されたことに応じて、追い出されたデータの追い出し回数が第２の所定値以上である場合、前記追い出されたデータを前記２次キャッシュに保持するとともに、前記追い出されたデータの前記記憶装置上のアドレスを第４の管理情報に登録することを特徴とする請求項４に記載のストレージ制御装置。
【請求項６】
前記制御部は、
前記アクセス要求に応じて、前記記憶領域のアドレスが前記第２の管理情報に含まれず、かつ、前記第４の管理情報に含まれている場合には、前記記憶領域のアドレスに対応するデータを、前記２次キャッシュから読み出して、または、前記２次キャッシュに書き込んで、前記アクセス要求に応答することを特徴とする請求項５に記載のストレージ制御装置。
【請求項７】
前記制御部は、
前記アクセス要求に応じて、前記記憶領域のデータを前記２次キャッシュに保持する際に、前記第２の管理情報に登録した前記記憶領域のアドレス数が上限数に達し、かつ、最後にアクセスされてから最も時間が経過したアドレスに関連付けて記憶された前記アクセス回数が前記第１の所定値以上である場合、前記記憶領域のデータを前記２次キャッシュに保持するとともに、前記記憶領域のアドレスを前記第４の管理情報に登録することを特徴とする請求項５または６に記載のストレージ制御装置。
【請求項８】
前記制御部は、
前記アクセス要求に応じて、前記記憶領域のデータを前記２次キャッシュに保持する際に、前記第２の管理情報に含まれるアドレス数および前記第４の管理情報に含まれるアドレス数がそれぞれ上限数に達した場合、前記第４の管理情報に含まれるアドレスのうち、最後にアクセスされてから最も時間が経過したアドレスを前記第４の管理情報から削除するとともに、削除したアドレスに対応するデータを前記２次キャッシュから破棄することを特徴とする請求項５〜７のいずれか一つに記載のストレージ制御装置。
【請求項９】
前記制御部は、
前記第２の管理情報に含むことができるアドレス数の上限数に対する前記第２の管理情報に含まれるアドレス数の使用率を算出し、算出した前記使用率に応じて、前記第２の所定値を変更することを特徴とする請求項５〜８のいずれか一つに記載のストレージ制御装置。
【請求項１０】
１次キャッシュと２次キャッシュとを有し、記憶装置に対するアクセス制御を行うストレージ制御装置に、
前記２次キャッシュに保持するデータの前記記憶装置上のアドレスを含む第１の管理情報と、前記２次キャッシュに保持されたデータの前記記憶装置上のアドレスを含む第２の管理情報とを記憶し、
前記記憶装置のいずれかの記憶領域に対するアクセス要求に応じて、前記記憶領域のアドレスが前記第１の管理情報に含まれ、かつ、前記記憶領域のアドレスが前記第２の管理情報に含まれていない場合に、前記記憶領域のデータを前記２次キャッシュに保持し、
前記記憶領域のアドレスを前記第２の管理情報に登録する、
処理を実行させることを特徴とするストレージ制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ストレージ制御装置およびストレージ制御プログラムに関する。
【背景技術】
【０００２】
従来、ストレージ装置において、ホストからのアクセス要求に応じてディスクから読み出したデータを一時的にキャッシュメモリに保持しておくことで、頻繁にアクセスされるデータのアクセス要求に対する応答性能を高める技術がある。
【０００３】
関連する先行技術としては、例えば、論理ボリュームに格納されているデータセットを管理するカタログ情報を参照することで、ユーザから指定されたデータセットをキャッシュに常駐指示させる技術がある。また、論理ボリュームの領域をキャッシュの特定の領域にあらかじめ割り当てて、当該領域に対して処理されるデータを常にキャッシュ上に常駐させることにより、高速に処理する技術がある。また、サーバで処理されているジョブに関連して発行されたキャッシュ常駐化情報に基づいて、キャッシュ内のジョブに関連するデータの常駐化または非常駐化を制御する技術がある。また、ストレージ装置が、記憶媒体と上位中間記憶機能と下位中間記憶機能とを備える技術がある。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００６−１１８０３号公報
【特許文献２】特開２００７−１０２３１４号公報
【特許文献３】特開２００５−３０９７３９号公報
【特許文献４】特開２０１４−１０６０４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、従来技術によれば、頻繁にアクセスされるデータであってもアクセス要求に対する応答性能が低下してしまう場合がある。例えば、ユーザから指定されたデータをキャッシュに常駐させる場合、ユーザから指定されたデータ以外のデータを保持するための領域が少なくなり、頻繁にアクセスされるようなデータであってもキャッシュに保持されにくくなって応答性能が低下してしまう。
【０００６】
一つの側面では、本発明は、データアクセスに対する応答性能の向上を図るストレージ制御装置およびストレージ制御プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００７】
本発明の一側面によれば、１次キャッシュと２次キャッシュとを有し、記憶装置に対するアクセス制御を行うストレージ制御装置が、２次キャッシュに保持するデータの記憶装置上のアドレスを含む第１の管理情報と、２次キャッシュに保持されたデータの記憶装置上のアドレスを含む第２の管理情報とを記憶し、記憶装置のいずれかの記憶領域に対するアクセス要求に応じて、記憶領域のアドレスが第１の管理情報に含まれ、かつ、記憶領域のアドレスが第２の管理情報に含まれていない場合に、記憶領域のデータを２次キャッシュに保持し、記憶領域のアドレスを第２の管理情報に登録するストレージ制御装置およびストレージ制御プログラムが提案される。
【発明の効果】
【０００８】
本発明の一態様によれば、データアクセスに対する応答性能の向上を図ることを可能にするという効果を奏する。
【図面の簡単な説明】
【０００９】
【図１】図１は、実施の形態にかかるストレージ制御装置１０１の一実施例を示す説明図である。
【図２】図２は、実施の形態にかかるストレージシステム１００のシステム構成例を示す説明図である。
【図３】図３は、実施の形態にかかるストレージ制御装置１０１のハードウェア構成例を示すブロック図である。
【図４】図４は、アクセスアドレス候補リスト（ＳＣＴ）４０１の記憶内容の一例を示す説明図である。
【図５】図５は、アクセス制御テーブル（ＳＢＥ）５０１の記憶内容の一例を示す説明図である。
【図６】図６は、バインドキャッシュテーブル（ＢＣＴ）６０１の記憶内容の一例を示す説明図である。
【図７】図７は、バインドキャッシュ制御テーブル（ＢＣＥ）７０１の記憶内容の一例を示す説明図である。
【図８】図８は、実施の形態にかかるストレージ制御装置１０１の機能的構成例を示すブロック図である。
【図９】図９は、実施の形態にかかるストレージ制御装置１０１のＩ／Ｏ処理手順の一例を示すフローチャートである。
【図１０】図１０は、実施の形態にかかるストレージ制御装置１０１のＤＲＡＭ空き領域作成処理手順の一例を示すフローチャートである。
【図１１】図１１は、実施の形態にかかるストレージ制御装置１０１のデータ展開処理手順の一例を示すフローチャート（その１）である。
【図１２】図１２は、実施の形態にかかるストレージ制御装置１０１のデータ展開処理手順の一例を示すフローチャート（その２）である。
【図１３】図１３は、実施の形態にかかるストレージ制御装置１０１のしきい値Ｘ更新処理手順の一例を示すフローチャートである。
【図１４】図１４は、実施の形態にかかるストレージ制御装置１０１のＩ／Ｏ処理の一実施例を示す説明図（その１）である。
【図１５】図１５は、実施の形態にかかるストレージ制御装置１０１のＩ／Ｏ処理の一実施例を示す説明図（その２）である。
【図１６】図１６は、実施の形態にかかるストレージ制御装置１０１のＩ／Ｏ処理の一実施例を示す説明図（その３）である。
【発明を実施するための形態】
【００１０】
以下に図面を参照して、本発明にかかるストレージ制御装置およびストレージ制御プログラムの実施の形態を詳細に説明する。
【００１１】
（実施の形態）
図１は、実施の形態にかかるストレージ制御装置１０１の一実施例を示す説明図である。図１において、ストレージシステム１００は、ストレージ制御装置１０１と、記憶装置１０３とを含む。
【００１２】
ストレージ制御装置１０１は、１次キャッシュ１１３と２次キャッシュ１１４とを有し、記憶装置１０３にアクセス可能な制御装置である。ストレージ制御装置１０１は、ホスト装置１０２から記憶装置１０３に対するアクセス要求を受け付け、１次キャッシュ１１３、２次キャッシュ１１４または記憶装置１０３が保持するデータでアクセス要求に応答する。例えば、ストレージ制御装置１０１は、ホスト装置１０２とファイバチャネルケーブルまたはイーサネット（登録商標）等で接続される。
【００１３】
アクセス要求は、記憶装置１０３上にデータを書き込む要求、または、記憶装置１０３上のデータを読み出す要求である。アクセス要求に応答とは、アクセス要求がデータを書き込む要求である場合、１次キャッシュ１１３、２次キャッシュ１１４または記憶装置１０３のいずれかにデータを書き込むことである。また、アクセス要求がデータを読み出す要求である場合、アクセス要求に応答とは、１次キャッシュ１１３、２次キャッシュ１１４または記憶装置１０３のいずれかからデータを読み出して、ホスト装置１０２に送信することである。
【００１４】
ホスト装置１０２は、ＰＣ（パーソナル・コンピュータ）またはサーバ等のコンピュータである。記憶装置１０３は、ホスト装置１０２が使用するデータを記憶する。記憶装置１０３は、物理ボリュームであってもよく、また、論理ボリュームであってもよい。物理ボリュームは、１つのハードディスクに対応するものであってもよく、また、ハードディスク内のパーティションに対応するものであってもよい。論理ボリュームは、物理ボリュームを集約したボリューム・グループを論理的に区分化したものである。
【００１５】
ここで、論理ボリュームを識別するための識別子として、ＬＵＮ（Ｌｏｇｉｃａｌ  Ｕｎｉｔ  Ｎｕｍｂｅｒ）を用いることができる。また、論理ボリュームの記憶領域は、例えば、ＬＢＡ（Ｌｏｇｉｃａｌ  Ｂｌｏｃｋ  Ａｄｄｒｅｓｓｉｎｇ）により特定される。ＬＢＡとは、論理ボリューム内の記憶領域に通し番号を振り、通し番号により記憶領域を特定する方式である。
【００１６】
１次キャッシュ１１３は、高速小容量のメモリであり、記憶装置１０３のデータを保持する機能を有する。例えば、１次キャッシュ１１３はＤＲＡＭ（Ｄｙｎａｍｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）である。
【００１７】
２次キャッシュ１１４は、１次キャッシュ１１３より低速大容量で、記憶装置１０３より高速小容量のメモリであり、記憶装置１０３のデータを保持する機能を有する。例えば、２次キャッシュ１１４はフラッシュメモリである。
【００１８】
ここで、既存のストレージ制御装置による２次キャッシュの使用方法として、１次キャッシュから追い出されたデータを２次キャッシュに保持する方法がある。例えば、ストレージ制御装置は、１次キャッシュから追い出されたデータの記憶装置上のアドレスと追い出された回数を記憶する。ストレージ制御装置は、追い出された回数がしきい値を超えた場合に、１次キャッシュから追い出されたデータを２次キャッシュに保持する。
【００１９】
２次キャッシュは記憶装置よりも高速であるため、２次キャッシュに保持されたデータに、再度アクセス要求が来た場合、ストレージ制御装置は２次キャッシュ上のデータで応答することで、アクセス要求に高速に応答できる。
【００２０】
しかしながら、ストレージ制御装置は追い出された回数がしきい値を超えた場合に、１次キャッシュから追い出されたデータを２次キャッシュに保持する。このため、１次キャッシュから追い出されたデータは、すぐに２次キャッシュに保持されない。これにより、頻繁に使用するデータであっても２次キャッシュに保持されず、ストレージ制御装置は、頻繁に使用するデータのアクセス要求に高速に応答できない場合がある。
【００２１】
また、ストレージ制御装置は、しきい値を低く設定して、１次キャッシュから追い出されたデータをすぐに２次キャッシュに保持することもできる。しかしながら、ホスト装置から大量のデータのアクセス要求があり、大量のデータが１次キャッシュから追い出された場合、２次キャッシュは大量のデータを保持する。２次キャッシュの容量に限界があるため、大量のデータにより、頻繁に使用するデータが２次キャッシュに保持されない場合がある。これにより、頻繁に使用するデータであっても２次キャッシュに保持されず、ストレージ制御装置は、頻繁に使用するデータのアクセス要求に高速に応答できない場合がある。
【００２２】
そこで、実施の形態では、ストレージ制御装置１０１は、２次キャッシュ１１４に保持するデータのアドレスを第１の管理情報１１１に記憶する。ストレージ制御装置１０１は、該アドレスのアクセス要求により、該アドレスのデータを２次キャッシュ１１４に保持し、該データのアドレスを第２の管理情報１１２に登録する。
【００２３】
これにより、ストレージ制御装置１０１は、第２の管理情報１１２に登録したアドレスのデータのアクセス要求を２次キャッシュ１１４に保持したデータで応答することができる。このため、ユーザが頻繁に使用するデータのアドレスを第１の管理情報１１１に登録することで、ストレージ制御装置１０１は、１次キャッシュ１１３を使用することなく、ユーザが指定した頻繁に使用するデータの応答性能を向上することができる。
【００２４】
以下、実施の形態にかかるストレージ制御装置１０１の一実施例について説明する。
【００２５】
（１）ストレージ制御装置１０１は、ホスト装置１０２から記憶装置１０３のいずれかの記憶領域に対するアクセス要求を受け付ける。ストレージ制御装置１０１は、２次キャッシュ１１４に保持するデータの記憶装置１０３上のアドレスを含む第１の管理情報１１１と、２次キャッシュ１１４に保持されたデータの記憶装置１０３上のアドレスを含む第２の管理情報１１２とを記憶する。
【００２６】
ここで、アクセス要求を受け付けた記憶領域のアドレスは、第１の管理情報１１１に含まれ、かつ、第２の管理情報１１２に含まれていない。アドレスとは、記憶装置１０３上の記憶領域を特定する情報である。例えば、アドレスは、論理ボリュームを識別するＬＵＮと、論理ボリューム内のデータの記憶位置を特定するＬＢＡとを含む。
【００２７】
図１の例では、第１の管理情報１１１には、ＬＵＮがＡで、ＬＢＡが０ｘ６０００の記憶装置１０３上のアドレスが含まれ、第２の管理情報１１２には、ＬＵＮがＡで、ＬＢＡが０ｘ６０００の記憶装置１０３上のアドレスが含まれていない。この状態で、ストレージ制御装置１０１は、ホスト装置１０２からＬＵＮがＡで、ＬＢＡが０ｘ６０００の記憶領域に対するアクセス要求を受け付ける。ここで、０ｘ６０００は、０ｘ以下の数値が１６進法の数値であることを示す。
【００２８】
（２）ストレージ制御装置１０１は、ホスト装置１０２からアクセス要求があった記憶領域のデータを、１次キャッシュ１１３および２次キャッシュ１１４に保持する。
【００２９】
ストレージ制御装置１０１は、アクセス要求が読み出し要求であった場合、アクセス要求があった記憶領域のデータを記憶装置１０３から読み出す。ストレージ制御装置１０１は、読み出したデータを１次キャッシュ１１３および２次キャッシュ１１４に保持する。
【００３０】
また、ストレージ制御装置１０１は、アクセス要求が書き込み要求であった場合、アクセス要求があった記憶領域のデータを１次キャッシュ１１３および２次キャッシュ１１４に保持する。ストレージ制御装置１０１は、アクセス要求があった記憶領域のデータを記憶装置１０３に書き込む。
【００３１】
図１の例では、ストレージ制御装置１０１は、ＬＵＮがＡで、ＬＢＡが０ｘ６０００である記憶領域のデータを１次キャッシュ１１３および２次キャッシュ１１４に保持する。
【００３２】
（３）ストレージ制御装置１０１は、ホスト装置１０２からアクセス要求があった記憶領域のアドレスを第２の管理情報１１２に登録する。
【００３３】
図１の例では、ストレージ制御装置１０１は、ＬＵＮがＡで、ＬＢＡが０ｘ６０００の記憶領域のアドレスを第２の管理情報１１２に登録する。
【００３４】
（４）ストレージ制御装置１０１は、ホスト装置１０２から記憶装置１０３のいずれかの記憶領域に対するアクセス要求を受け付ける。ここで、アクセス要求を受け付けた記憶領域のアドレスは、第２の管理情報１１２に含まれている。このため、記憶領域のデータは２次キャッシュ１１４に保持されている。
【００３５】
ストレージ制御装置１０１は、アクセス要求が読み出し要求であった場合、２次キャッシュ１１４に保持されたデータを読み出してホスト装置１０２に送信することで、アクセス要求に応答する。
【００３６】
また、ストレージ制御装置１０１は、アクセス要求が書き込み要求であった場合、アクセス要求があった記憶領域のデータを２次キャッシュ１１４に保持することで、アクセス要求に応答する。
【００３７】
図１の例では、ストレージ制御装置１０１は、アクセス要求が読み出し要求であった場合、２次キャッシュ１１４に保持されたＬＵＮがＡで、ＬＢＡが０ｘ６０００の記憶領域のデータを読み出してホスト装置１０２に送信することで、アクセス要求に応答する。また、ストレージ制御装置１０１は、アクセス要求が書き込み要求であった場合、アクセス要求があったＬＵＮがＡで、ＬＢＡが０ｘ６０００の記憶領域のデータを２次キャッシュ１１４に保持することで、アクセス要求に応答する。
【００３８】
アクセス要求を受け付けた記憶領域のデータが１次キャッシュ１１３に保持されている場合、ストレージ制御装置１０１は、１次キャッシュ１１３に保持されたデータでアクセス要求に応答してもよい。また、ストレージ制御装置１０１は、２次キャッシュ１１４に保持されたデータを１次キャッシュ１１３に転送し、転送された１次キャッシュ１１３のデータでホスト装置１０２に応答してもよい。
【００３９】
以上説明したように、ストレージ制御装置１０１は、２次キャッシュ１１４に保持するデータの記憶装置１０３上のアドレスを第１の管理情報１１１に、２次キャッシュ１１４に保持されたデータの記憶装置１０３上のアドレスを第２の管理情報１１２に記憶する。ストレージ制御装置１０１は、第１の管理情報１１１に含まれ、第２の管理情報１１２に含まれていないアドレスのデータのアクセス要求に応じて、データを２次キャッシュ１１４に保持し、データのアドレスを第２の管理情報１１２に登録する。
【００４０】
これにより、ユーザが指定したデータのアドレスを第１の管理情報１１１に登録することで、ストレージ制御装置１０１は、ユーザが指定したデータを最初のアクセス要求で２次キャッシュ１１４に保持できる。従って、ストレージ制御装置１０１は、ユーザが指定したデータのアクセス要求を２次キャッシュ１１４に保持したデータで処理することができる。このため、ストレージ制御装置１０１は、１次キャッシュ１１３を使用することなく、ユーザが指定したデータを高速にアクセスできる状態に即座にすることができ、ユーザが指定したデータに対する応答性能を向上できる。
【００４１】
また、頻繁に使用するデータのアドレスを第１の管理情報１１１に登録することで、ストレージ制御装置１０１は、頻繁に使用するデータを最初のアクセス要求で２次キャッシュ１１４に保持できる。従って、ストレージ制御装置１０１は、頻繁に使用するデータのアクセス要求を２次キャッシュ１１４に保持したデータで処理することができる。このため、ストレージ制御装置１０１は、１次キャッシュ１１３を使用することなく、頻繁に使用するデータを高速にアクセスできる状態に即座にすることができ、頻繁に使用するデータに対する応答性能を向上できる。
【００４２】
また、制御表等の高速なアクセスが要求されるデータのアドレスを第１の管理情報１１１に登録することで、ストレージ制御装置１０１は、制御表等の高速なアクセスが要求されるデータを最初のアクセス要求で２次キャッシュ１１４に保持できる。従って、ストレージ制御装置１０１は、制御表等の高速なアクセスが要求されるデータのアクセス要求を２次キャッシュ１１４に保持したデータで処理することができる。このため、ストレージ制御装置１０１は、１次キャッシュ１１３を使用することなく、制御表等の高速なアクセスが要求されるデータを高速にアクセスできる状態に即座にすることができ、制御表等の高速なアクセスが要求されるデータに対する応答性能を向上できる。
【００４３】
（ストレージシステム１００のシステム構成例）
図２は、実施の形態にかかるストレージシステム１００のシステム構成例を示す説明図である。図２において、ストレージシステム１００は、ストレージ制御装置１０１と、ホスト装置１０２と、記憶装置１０３と、を含む。
【００４４】
ストレージ制御装置１０１は、記憶装置１０３を制御する装置である。ストレージ制御装置１０１は、ＤＲＡＭ２０１と、ＰＦＭ（ＰＣＩｅ  Ｆｌａｓｈ  Ｍｏｄｕｌｅ）２０２と、ＣＡとを含む。ＤＲＡＭ２０１は、ストレージ制御装置１０１の１次キャッシュである。ＰＦＭ２０２は、ストレージ制御装置１０１の２次キャッシュである。具体的には、ＰＦＭ２０２は、ＰＣＩｅ（Ｐｅｒｉｐｈｅｒａｌ  Ｃｏｍｐｏｎｅｎｔ  Ｉｎｔｅｒｃｏｎｎｅｃｔ  ｅｘｐｒｅｓｓ）パスに接続された高速で大容量のＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ）である。ＣＡは、ホスト装置１０２と接続する装置である。
【００４５】
ホスト装置１０２は、ストレージ制御装置１０１にアクセスするコンピュータ、例えば、サーバ、ＰＣなどである。記憶装置１０３は、データを記憶する装置である。例えば、ハードディスク装置またはディスクアレイ装置等の記憶装置である。
【００４６】
（ストレージ制御装置１０１のハードウェア構成例）
図３は、実施の形態にかかるストレージ制御装置１０１のハードウェア構成例を示すブロック図である。図３において、ストレージ制御装置１０１は、ＣＰＵ３０１と、メモリ３０２と、Ｉ／Ｆ（Ｉｎｔｅｒｆａｃｅ）３０３とを有する。また、各構成部は、バス３００によってそれぞれ接続される。
【００４７】
ここで、ＣＰＵ３０１は、ストレージ制御装置１０１の全体の制御を司る。メモリ３０２は、例えば、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）およびフラッシュＲＯＭなどを有する。具体的には、例えば、フラッシュＲＯＭやＲＯＭが各種プログラムを記憶し、ＲＡＭは記憶部としてＣＰＵ３０１のワークエリアとして使用される。メモリ３０２に記憶されるプログラムは、ＣＰＵ３０１にロードされることで、コーディングされている処理をＣＰＵ３０１に実行させる。また、メモリ３０２は、ＤＲＡＭ２０１およびＰＦＭ２０２を含む。
【００４８】
Ｉ／Ｆ３０３は、ホスト装置１０２および記憶装置１０３と接続する装置である。Ｉ／Ｆ３０３は、ＣＡを含む。
【００４９】
（アクセスアドレス候補リスト４０１の一例）
図４は、アクセスアドレス候補リスト（ＳＣＴ）４０１の記憶内容の一例を示す説明図である。図４において、アクセスアドレス候補リスト４０１は、例えば、ストレージ制御装置１０１によって作成、更新され、ストレージ制御装置１０１のメモリ３０２に記憶される。
【００５０】
アクセスアドレス候補リスト４０１は、ＬＵＮ、ＬＢＡおよび追い出し回数の項目を有する。アクセスアドレス候補リスト４０１は、各項目に情報を設定することで、アクセスアドレス候補情報（例えば、アクセスアドレス候補情報４０１−１〜４０１−３）をレコードとして記憶する。
【００５１】
ここで、ＬＵＮは、記憶装置１０３の論理ボリュームを識別するための識別子である。ＬＢＡは、論理ボリューム内の記憶領域を特定する情報である。追い出し回数は、ＬＵＮで識別される論理ボリュームでＬＢＡにより特定される記憶領域から所定の範囲に記憶されるデータが、１次キャッシュから追い出された回数を示す。所定の範囲は、例えば、０ｘ２００である。
【００５２】
図４の例では、レコード４０１−１は、ＬＵＮがＡである論理ボリュームのＬＢＡ０ｘ１０００から所定の範囲に記憶されるデータが、１次キャッシュから１回追い出されたことを示す。
【００５３】
（アクセス制御テーブル５０１の一例）
図５は、アクセス制御テーブル（ＳＢＥ）５０１の記憶内容の一例を示す説明図である。図５において、アクセス制御テーブル５０１は、例えば、ストレージ制御装置１０１によって作成、更新され、ストレージ制御装置１０１のメモリ３０２に記憶される。
【００５４】
アクセス制御テーブル５０１は、ＬＵＮおよびＬＢＡの項目を有する。アクセス制御テーブル５０１は、各項目に情報を設定することで、アクセス制御情報（例えば、アクセス制御情報５０１−１〜５０１−２）をレコードとして記憶する。
【００５５】
ここで、ＬＵＮは、記憶装置１０３の論理ボリュームを識別するための識別子である。ＬＢＡは、２次キャッシュに保持されるデータの論理ボリューム内の記憶領域を特定する情報である。
【００５６】
アクセス制御テーブル５０１のレコードは、２次キャッシュの領域と関連付けることができる。アクセス制御テーブル５０１のＬＢＡより特定される論理ボリューム内の記憶領域から所定の範囲に記憶されるデータが、関連付けられた２次キャッシュの領域に記憶される。所定の範囲は、例えば、０ｘ２００である。
【００５７】
アクセス制御テーブル５０１のレコードのいずれか一つは、最も過去に使われた（ＬＲＵ：Ｌｅａｓｔ  Ｒｅｃｅｎｔｌｙ  Ｕｓｅｄ）レコードである。また、アクセス制御テーブル５０１のレコードのいずれか一つは、最も最近に使われた（ＭＲＵ：Ｍｏｓｔ  Ｒｅｃｅｎｔｌｙ  Ｕｓｅｄ）レコードである。ＬＲＵレコードとは、最後にアクセスされてから最も時間が経過したレコードである。ＭＲＵレコードとは、最も最近にアクセスされたレコードである。
【００５８】
ストレージ制御装置１０１は、アクセス制御テーブル５０１の各レコードの属性により、ＬＲＵレコードまたはＭＲＵレコードを判断することができる。例えば、レコードの属性は、登録およびアクセスされた順番とすることができる。この場合、ストレージ制御装置１０１は、アクセス制御テーブル５０１に上から順番にレコードを登録し、アクセスしたレコードを一番下に移動することで、ＬＲＵレコードは一番上のレコードであり、ＭＲＵレコードは一番下のレコードであると判断できる。
【００５９】
図５の例では、レコード５０１−１は、ＬＵＮがＡである論理ボリュームでＬＢＡ０ｘ２０００から所定の範囲に記憶されるデータが、２次キャッシュに保持されることを示す。また、レコード５０１−１がＬＲＵレコードであり、レコード５０１−２がＭＲＵレコードである。
【００６０】
図５の例では、アクセス制御テーブル５０１はテーブル構造であるが、リスト構造とすることもできる。テーブル構造とは、行とを順に並べる形で構成されている構造であり、リスト構造とは、データの格納場所を示すポインタによって連結されたデータの構造である。
【００６１】
（バインドキャッシュテーブル６０１の一例）
図６は、バインドキャッシュテーブル（ＢＣＴ）６０１の記憶内容の一例を示す説明図である。図６において、バインドキャッシュテーブル６０１は、例えば、ストレージ制御装置１０１の利用者によって、ストレージ制御装置１０１の起動前に、作成、更新され、ストレージ制御装置１０１のメモリ３０２に記憶される。バインドキャッシュテーブル６０１は、図１の第１の管理情報１１１に対応する。
【００６２】
バインドキャッシュテーブル６０１は、ＬＵＮ、開始ＬＢＡおよび終了ＬＢＡの項目を有する。バインドキャッシュテーブル６０１は、各項目に情報を設定することで、バインドキャッシュ情報（例えば、バインドキャッシュ情報６０１−１〜６０１−３）をレコードとして記憶する。
【００６３】
ここで、ＬＵＮは、記憶装置１０３の論理ボリュームを識別するための識別子である。開始ＬＢＡは、論理ボリューム内の開始記憶領域を特定する情報であり、終了ＬＢＡは、論理ボリューム内の終了記憶領域を特定する情報である。
【００６４】
バインドキャッシュテーブル６０１は、ＬＵＮで識別される論理ボリュームの開始ＬＢＡから終了ＬＢＡまでの記憶領域にアクセス要求があった場合、アクセス要求のあった記憶領域が２次キャッシュに保持されることを示す。
【００６５】
図６の例では、レコード６０１−１は、ＬＵＮがＡである論理ボリュームで開始ＬＢＡ０ｘ３０００から終了ＬＢＡ０ｘ３６００の範囲の記憶領域にアクセス要求があった場合、アクセス要求のあった記憶領域が２次キャッシュに保持されることを示す。
【００６６】
（バインドキャッシュ制御テーブル７０１の一例）
図７は、バインドキャッシュ制御テーブル（ＢＣＥ）７０１の記憶内容の一例を示す説明図である。図７において、バインドキャッシュ制御テーブル７０１は、例えば、ストレージ制御装置１０１によって作成、更新され、ストレージ制御装置１０１のメモリ３０２に記憶される。バインドキャッシュ制御テーブル７０１は、図１の第２の管理情報１１２に対応する。
【００６７】
バインドキャッシュ制御テーブル７０１は、ＬＵＮ、ＬＢＡおよびアクセス回数の項目を有する。バインドキャッシュ制御テーブル７０１は、各項目に情報を設定することで、バインドキャッシュ制御情報（例えば、バインドキャッシュ制御情報７０１−１〜７０１−３）をレコードとして記憶する。
【００６８】
ここで、ＬＵＮは、記憶装置１０３の論理ボリュームを識別するための識別子である。ＬＢＡは、２次キャッシュに保持されたデータの論理ボリューム内の記憶領域を特定する情報である。アクセス回数は、２次キャッシュに保持されたデータがホスト装置１０２からアクセス要求があった回数を示す。
【００６９】
バインドキャッシュ制御テーブル７０１のレコードは、２次キャッシュの領域と関連付けることができる。バインドキャッシュ制御テーブル７０１のＬＢＡより特定される論理ボリューム内の記憶領域から所定の範囲に記憶されるデータが、関連付けられた２次キャッシュの領域に記憶される。所定の範囲は、例えば、０ｘ２００である。
【００７０】
バインドキャッシュ制御テーブル７０１のレコードも２次キャッシュの領域と関連付けることができる。このため、例えば、２次キャッシュの領域を２分割して、１つの領域をバインドキャッシュ制御テーブル７０１のレコードに割り当て、他の領域をアクセス制御テーブル５０１のレコードに割り当てる。
【００７１】
バインドキャッシュ制御テーブル７０１のレコードのいずれか一つは、ＬＲＵレコードであり、バインドキャッシュ制御テーブル７０１のレコードのいずれか一つは、ＭＲＵレコードである。
【００７２】
ストレージ制御装置１０１は、バインドキャッシュ制御テーブル７０１の各レコードの属性により、ＬＲＵレコードまたはＭＲＵレコードを判断することができる。例えば、レコードの属性は、登録およびアクセスされた順番とすることができる。この場合、ストレージ制御装置１０１は、バインドキャッシュ制御テーブル７０１に上から順番にレコードを登録し、アクセスしたレコードを一番下に移動することで、ＬＲＵレコードは一番上のレコードであり、ＭＲＵレコードは一番下のレコードであると判断できる。
【００７３】
図７の例では、レコード７０１−１は、ＬＵＮがＡである論理ボリュームでＬＢＡ０ｘ３０００から所定の範囲に記憶されるデータが、２次キャッシュに保持され、ホスト装置１０２からの３回アクセス要求があったことを示す。また、レコード７０１−１がＬＲＵレコードであり、レコード７０１−３がＭＲＵレコードである。
【００７４】
図７の例では、バインドキャッシュ制御テーブル７０１はテーブル構造であるが、リスト構造とすることもできる。
【００７５】
（ストレージ制御装置１０１の機能的構成例）
次に、図２に示したストレージ制御装置１０１の機能的構成例について説明する。図８は、実施の形態にかかるストレージ制御装置１０１の機能的構成例を示すブロック図である。図８以降の説明において、アクセスアドレス候補リスト４０１はＳＣＴ４０１と、アクセス制御テーブル５０１はＳＢＥ５０１と、バインドキャッシュテーブル６０１はＢＣＴ６０１と、バインドキャッシュ制御テーブル７０１はＢＣＥ７０１と記載する。また、ＬＵＮとＬＢＡを含む論理ボリューム上のアドレスを、単にアドレスと称することがある。
【００７６】
図８においてストレージ制御装置１０１は、通信部８０１と、キャッシュ制御部８０２と、Ｉ／Ｏ（Ｉｎｐｕｔ／Ｏｕｔｐｕｔ）制御部８０３と、更新部８０４と、を含む構成である。通信部８０１と、キャッシュ制御部８０２と、Ｉ／Ｏ制御部８０３と、更新部８０４とを含む機能部は、具体的には、例えば、図３に示したメモリ３０２などの記憶装置に記憶されたプログラムをＣＰＵ３０１に実行させることにより、その機能を実現する。各機能部の処理結果は、例えば、図３に示したメモリ３０２などの記憶装置に記憶される。
【００７７】
通信部８０１は、ホスト装置１０２から記憶装置１０３の論理ボリュームのデータに対するアクセス要求を受信し、アクセス要求の応答を送信する機能を有する。通信部８０１は、例えば、アクセス要求を受信する場合、ホスト装置１０２からアクセス種別、論理ボリュームの識別子、論理ボリューム内の記憶領域を特定する情報を受信する。アクセス種別は、例えば、読み出し、書き込み等の要求の種別であり、論理ボリュームの識別子は、ＬＵＮであり、論理ボリューム内の記憶領域を特定する情報はＬＢＮである。
【００７８】
また、通信部８０１は、書き込みの要求の場合、論理ボリュームに書き込むデータも受信する。通信部８０１は、読み出し要求の場合、アクセス要求の応答を送信する際、ホスト装置１０２に論理ボリュームから読み出したデータを送信する。
【００７９】
キャッシュ制御部８０２は、ＤＲＡＭ２０１およびＰＦＭ２０２上のデータを制御する機能を有する。キャッシュ制御部８０２は、ホスト装置１０２から要求された論理ボリュームのデータ（以下、要求データと称する）がＤＲＡＭ２０１上に保持されている場合、ＤＲＡＭ２０１上に保持されているデータでホスト装置１０２からのアクセス要求に応答する。
【００８０】
キャッシュ制御部８０２は、要求データがＤＲＡＭ２０１上に保持されていない場合、要求データを保持するための領域をＤＲＡＭ２０１に確保する。キャッシュ制御部８０２は、ＤＲＡＭ２０１上に空き領域が存在しない場合、ＤＲＡＭ２０１上のページを破棄することで空き領域を確保する。例えば、キャッシュ制御部８０２は、ＤＲＡＭ２０１上のページで最も過去に使われた（ＬＲＵ）ページを破棄することで空き領域を確保する。この空き領域を確保した後の処理は後述する。
【００８１】
ここで、要求データのアドレスがＢＣＥ７０１に登録されたアドレスに含まれる場合、要求データはＰＦＭ２０２に保持されている。この場合、キャッシュ制御部８０２は、要求データをＰＦＭ２０２からＤＲＡＭ２０１に転送し、ＤＲＡＭ２０１上に保持されているデータでホスト装置１０２からのアクセス要求に応答する。要求データのアドレスには、要求データが存在する論理ボリューム（ＬＵＮ）の識別子と当該論理ボリューム上で要求データが記憶される記憶領域を特定するＬＢＡが含まれる。
【００８２】
また、キャッシュ制御部８０２は、ＢＣＴ６０１の要求データのアドレスを含むレコードを最も最近に使われたものに変更し、アクセス回数を１増加させる。
【００８３】
また、要求データのアドレスがＳＢＥ５０１に登録されたアドレスに含まれる場合、要求データはＰＦＭ２０２に保持されている。この場合、キャッシュ制御部８０２は、要求データをＰＦＭ２０２からＤＲＡＭ２０１に転送し、ＤＲＡＭ２０１上に保持されているデータでホスト装置１０２からのアクセス要求に応答する。また、キャッシュ制御部８０２は、ＳＢＥ５０１の要求データのアドレスを含むレコードを最も最近に使われたものに変更する。
【００８４】
一方、要求データのアドレスがＢＣＥ７０１およびＳＢＥ５０１に登録されたアドレスに含まれない場合、要求データはＰＦＭ２０２に保持されていない。この場合、キャッシュ制御部８０２は、要求データのアドレスで特定される論理ボリュームの記憶領域からデータをＤＲＡＭ２０１に転送し、ＤＲＡＭ２０１上に保持されているデータでホスト装置１０２からのアクセス要求に応答する。
【００８５】
論理ボリュームの記憶領域からデータをＤＲＡＭ２０１に転送した場合、キャッシュ制御部８０２は、転送したデータをＰＦＭ２０２に展開する処理を行う。この転送したデータをＰＦＭ２０２に展開する処理の詳細は後述する。
【００８６】
ここで、キャッシュ制御部８０２がＤＲＡＭ２０１上で空き領域を確保した後の処理を説明する。キャッシュ制御部８０２は、破棄したページのアドレスがＳＣＴ４０１に登録されたアドレスに含まれる場合、破棄されたデータのアドレスを含むレコードの追い出し回数を１増加させ、破棄されたデータをＰＦＭ２０２に展開する処理を行う。
【００８７】
キャッシュ制御部８０２は、破棄したページのアドレスがＳＣＴ４０１に登録されたアドレスに含まれない場合、破棄したページのアドレスをＳＣＴ４０１に登録する。また、ＳＣＴ４０１に登録する領域が存在しない場合、キャッシュ制御部８０２は、例えば、最も過去に使われたレコードを破棄することにより、登録する領域を作成する。この後、キャッシュ制御部８０２は、破棄されたデータのアドレスを含むレコードの追い出し回数を１に設定し、破棄されたデータをＰＦＭ２０２に展開する処理を行う。
【００８８】
ここで、キャッシュ制御部８０２がデータをＰＦＭ２０２に展開する処理を説明する。ここでデータは、ホスト装置１０２から処理を要求されたデータまたはＤＲＡＭ２０１上から破棄されたデータである。
【００８９】
キャッシュ制御部８０２は、データのアドレスがＢＣＴ６０１に登録されている場合、ＢＣＥ７０１にデータのアドレスを登録する。この後、キャッシュ制御部８０２は、記憶装置１０３にアクセスし、記憶装置１０３からのデータをＰＦＭ２０２に転送する。ＢＣＥ７０１に登録したレコードは最も最近にアクセスされたものであるため、キャッシュ制御部８０２は、ＢＣＥ７０１に登録したレコードをＭＲＵレコードに変更する。また、ＢＣＥ７０１に登録したレコードは最初のアクセスであるため、キャッシュ制御部８０２は、アクセス回数を１に設定する。
【００９０】
ＢＣＥ７０１に空き領域が存在しなく、ＳＢＥ５０１に空き領域が存在する場合、キャッシュ制御部８０２は、ＳＢＥ５０１にデータのアドレスを登録してもよい。ＢＣＥ７０１に空き領域が存在しない場合、キャッシュ制御部８０２は、ＢＣＥ７０１のレコードの中で最も過去に使われたレコードを削除することにより、空き領域を作成してもよい。また、キャッシュ制御部８０２は、最も過去に使われたレコードのアクセス回数が所定の値以上である場合、最も過去に使われたレコードを削除しなくてもよい。
【００９１】
この場合、キャッシュ制御部８０２は、最も過去に使われたレコードを最も最近に使われたレコードに変更し、アクセス回数を初期化する。アクセス回数の初期化として、例えば、アクセス回数に１を設定する。この後、キャッシュ制御部８０２は、最も過去に使われたレコードのアクセス回数が所定の値未満であるレコードがあるか否かを判断して、最も過去に使われたレコードのアクセス回数が所定の値未満である場合、このレコードを削除する。キャッシュ制御部８０２は、最も過去に使われたレコードのアクセス回数が所定の値未満でない場合、このレコードを最も最近に使われたレコードに変更し、アクセス回数を初期化する。
【００９２】
キャッシュ制御部８０２は、上述した動作を所定回繰り返し、最も過去に使われアクセス回数が所定の値未満であるレコードを削除して、ＢＣＥ７０１に空き領域を作成することができない場合、ＳＢＥ５０１にデータのアドレスを登録する。
【００９３】
キャッシュ制御部８０２は、ＳＢＥ５０１にも空き領域が存在しない場合、ＳＢＥ５０１のレコードの中で最も過去に使われたレコードを破棄することにより、ＳＢＥ５０１に空き領域を作成することができる。
【００９４】
この後、キャッシュ制御部８０２は、記憶装置１０３にアクセスし、記憶装置１０３からのデータをＰＦＭ２０２に転送する。ＳＢＥ５０１に登録したレコードは最も最近にアクセスされたものであるため、キャッシュ制御部８０２は、ＳＢＥ５０１に登録したレコードをＭＲＵレコードに変更する。
【００９５】
キャッシュ制御部８０２は、データのアドレスがＳＣＴ４０１に登録され、データのアドレスのレコードの追い出し回数がしきい値Ｘ以上である場合、ＳＢＥ５０１にデータのアドレスを登録する。この後、キャッシュ制御部８０２は、記憶装置１０３にアクセスし、記憶装置１０３からのデータをＰＦＭ２０２に転送する。
【００９６】
ＳＢＥ５０１に登録したレコードは、最も最近にアクセスされたものであるため、キャッシュ制御部８０２は、ＳＢＥ５０１に登録したレコードをＭＲＵレコードに変更する。この後、キャッシュ制御部８０２は、データのアドレスがＳＢＥ５０１に登録されたため、ＳＣＴ４０１からデータのアドレスを削除する。
【００９７】
また、キャッシュ制御部８０２は、ＰＦＭ２０２上のデータをＤＲＡＭ２０１に転送することなく、ＰＦＭ２０２上に保持されているデータでホスト装置１０２からのアクセス要求に応答してもよい。また、キャッシュ制御部８０２は、記憶装置１０３上のデータをＤＲＡＭ２０１に転送することなく、ＰＦＭ２０２上に転送し、ＰＦＭ２０２上のデータでホスト装置１０２からのアクセス要求に応答してもよい。
【００９８】
また、キャッシュ制御部８０２は、ＤＲＡＭ２０１から破棄されたデータを転送する際、破棄したデータをバッファに保存しておき、バッファからＰＦＭ２０２上に転送してもよい。
【００９９】
Ｉ／Ｏ制御部８０３は、記憶装置１０３に対してＩ／Ｏ処理を行う機能を有する。例えば、ホスト装置１０２からの要求が、データの読み出しであり、ＤＲＡＭ２０１、ＰＦＭ２０２に要求データが保持されていない場合、Ｉ／Ｏ制御部８０３は、記憶装置１０３から要求データを読み出す。また、例えば、ホスト装置１０２からの要求が、データの書き込みである場合、Ｉ／Ｏ制御部８０３は、ＤＲＡＭ２０１、ＰＦＭ２０２に要求データを書き込んだ後、記憶装置１０３に要求データを書き込む。
【０１００】
更新部８０４は、しきい値Ｘを更新する機能を有する。更新部８０４は、ＢＣＥ７０１の使用率を算出する。ここで、ＢＣＥ７０１の使用率は、ＢＣＥ７０１の登録上限のレコード数に対するＬＵＮ、ＬＢＡおよびアクセス回数が登録されたレコード数である。ＢＣＥ７０１の使用率が高いことは、ＢＣＥ７０１のレコードは２次キャッシュと対応しているため、２次キャッシュの空き容量が少ないことになる。
【０１０１】
更新部８０４は、ＢＣＥ７０１の使用率が第１の所定値以上である場合、しきい値Ｘを増加させる。第１の所定値は、例えば、７１〜１００％の値とすることができる。しきい値Ｘが増加することにより、ＳＣＴ４０１に登録されたアドレスがＳＢＥ５０１に登録されないことが増えるため、ＳＢＥ５０１に空き領域が増加する。これにより、ＢＣＥ７０１に登録できなかったアドレスをＳＢＥ５０１に登録でき、ＢＣＴ６０１に登録したアドレスのデータをＰＦＭ２０２に保持することができる。
【０１０２】
更新部８０４は、ＢＣＥ７０１の使用率が第２の所定値以下である場合、しきい値Ｘを減少させる。第２の所定値は、例えば、０〜７０％の値とすることができる。しきい値Ｘが減少することにより、ＳＣＴ４０１に登録されたアドレスがＳＢＥ５０１に登録されることが増えるため、ＳＢＥ５０１に空き領域が減少する。これにより、ＳＣＴ４０１に登録したアドレスのデータをＰＦＭ２０２に保持することができる。
【０１０３】
（Ｉ／Ｏ処理手順の一例）
図９は、実施の形態にかかるストレージ制御装置１０１のＩ／Ｏ処理手順の一例を示すフローチャートである。図９において、まず、ストレージ制御装置１０１は、ホスト装置１０２からデータのアクセス要求があるか否かを判断する（ステップＳ９０１）。
【０１０４】
ホスト装置１０２からデータのアクセス要求がない場合（ステップＳ９０１：Ｎｏ）、ストレージ制御装置１０１の処理は、ステップＳ９０１に戻る。ホスト装置１０２からデータのアクセス要求がある場合（ステップＳ９０１：Ｙｅｓ）、ストレージ制御装置１０１は、要求されたデータがＤＲＡＭ２０１上に保持されているか否かを判断する（ステップＳ９０２）。
【０１０５】
要求されたデータがＤＲＡＭ２０１上に保持されている場合（ステップＳ９０２：Ｙｅｓ）、ストレージ制御装置１０１の処理は、ステップＳ９１４に移行する。要求されたデータがＤＲＡＭ２０１上に保持されていない場合（ステップＳ９０２：Ｎｏ）、ストレージ制御装置１０１は、ＤＲＡＭ２０１にホスト装置１０２から要求されたデータを保持するための空き領域が存在するか否かを判断する（ステップＳ９０３）。
【０１０６】
ＤＲＡＭ２０１に空き領域が存在しない場合（ステップＳ９０３：Ｎｏ）、ストレージ制御装置１０１は、ＤＲＡＭ２０１に空き領域を作成する処理を行う（ステップＳ９０４）。ストレージ制御装置１０１によるＤＲＡＭ空き領域作成処理の詳細は以下の図１０で説明される。
【０１０７】
ＤＲＡＭ２０１に空き領域が存在する場合（ステップＳ９０３：Ｙｅｓ）およびＤＲＡＭ２０１に空き領域が作成された場合、ストレージ制御装置１０１は、要求データのアドレスがＢＣＥ７０１に登録されたＬＵＮとＬＢＡに含まれるか否かを判断する（ステップＳ９０５）。
【０１０８】
要求データのアドレスがＢＣＥ７０１に登録されたＬＵＮとＬＢＡに含まれる場合（ステップＳ９０５：Ｙｅｓ）、要求データはＰＦＭ２０２に保持されているため、ストレージ制御装置１０１は、要求データをＰＦＭ２０２からＤＲＡＭ２０１に転送する（ステップＳ９０６）。ストレージ制御装置１０１は、要求データのアドレスを含むレコードを最も最近に使われたもの（ＭＲＵ）に変更する（ステップＳ９０７）。ストレージ制御装置１０１は、要求データのアドレスを含むレコードのアクセス回数を１増加する（ステップＳ９０８）。この後、ストレージ制御装置１０１の処理は、ステップＳ９１４に移行する。
【０１０９】
要求データのアドレスがＢＣＥ７０１に登録されたＬＵＮとＬＢＡに含まれない場合（ステップＳ９０５：Ｎｏ）、ストレージ制御装置１０１は、要求データのアドレスがＳＢＥ５０１に登録されたＬＵＮとＬＢＡに含まれるか否かを判断する（ステップＳ９０９）。
【０１１０】
要求データのアドレスがＳＢＥ５０１に登録されたＬＵＮとＬＢＡに含まれる場合（ステップＳ９０９：Ｙｅｓ）、要求データはＰＦＭ２０２に保持されているため、ストレージ制御装置１０１は、要求データをＰＦＭ２０２からＤＲＡＭ２０１に転送する（ステップＳ９１０）。ストレージ制御装置１０１は、要求データのアドレスを含むレコードを最も最近に使われたもの（ＭＲＵ）に変更する（ステップＳ９１１）。この後、ストレージ制御装置１０１の処理は、ステップＳ９１４に移行する。
【０１１１】
要求データのアドレスがＳＢＥ５０１に登録されたＬＵＮとＬＢＡに含まれない場合（ステップＳ９０９：Ｎｏ）、要求データはＰＦＭ２０２に保持されていない。このため、ストレージ制御装置１０１は、ホスト装置１０２からのデータの要求がデータの読み出しである場合、要求データのアドレスに含まれる記憶装置１０３の論理ボリュームの記憶領域からデータをＤＲＡＭ２０１に転送する（ステップＳ９１２）。この後、ストレージ制御装置１０１は、要求データのアドレスに含まれる論理ボリュームの記憶領域のデータに対して、データを展開する処理を行う（ステップＳ９１３）。ストレージ制御装置１０１によるデータ展開処理の詳細は以下の図１１および図１２で説明される。
【０１１２】
ストレージ制御装置１０１は、要求されたデータがＤＲＡＭ２０１上に保持されるため、データ要求に対して、ＤＲＡＭ２０１上のデータで応答する（ステップＳ９１４）。ホスト装置１０２からのデータの要求がデータの読み出しである場合、ＤＲＡＭ２０１上のデータがホスト装置１０２に転送される。ホスト装置１０２からのデータの要求がデータの書き込みである場合、ＤＲＡＭ２０１上のデータにホスト装置１０２から転送されたデータが書き込まれる。
【０１１３】
これにより、本フローチャートにおける一連の処理は終了する。本フローチャートを実行することで、ホスト装置１０２から要求されたデータに対する応答が行われる。
【０１１４】
（ＤＲＡＭ空き領域作成処理手順の一例）
図１０は、実施の形態にかかるストレージ制御装置１０１のＤＲＡＭ空き領域作成処理手順の一例を示すフローチャートである。まず、ストレージ制御装置１０１は、ＤＲＡＭ２０１上のページで最も過去に使われた（ＬＲＵ）ページのデータを破棄する（ステップＳ１００１）。
【０１１５】
ストレージ制御装置１０１は、破棄されたデータのアドレスがＢＣＥ７０１またはＳＢＥ５０１に登録されたＬＵＮとＬＢＡに含まれるか否かを判断する（ステップＳ１００２）。破棄されたデータのアドレスがＢＣＥ７０１またはＳＢＥ５０１に登録されたＬＵＮとＬＢＡに含まれる場合（ステップＳ１００２：Ｙｅｓ）、破棄されたデータはＰＦＭ２０２に保持されているため、ストレージ制御装置１０１は、処理を終了する。
【０１１６】
破棄されたデータのアドレスがＢＣＥ７０１およびＳＢＥ５０１に登録されたＬＵＮとＬＢＡに含まれない場合（ステップＳ１００２：Ｎｏ）、ストレージ制御装置１０１は、破棄されたデータのアドレスがＢＣＴ６０１に登録されたＬＵＮとＬＢＡに含まれるか否かを判断する（ステップＳ１００３）。破棄されたデータのアドレスがＢＣＴ６０１に登録されたＬＵＮとＬＢＡに含まれる場合（ステップＳ１００３：Ｙｅｓ）、ストレージ制御装置１０１は破棄されたデータのアドレスをＳＣＴ４０１に登録しなくてもよい。このため、ストレージ制御装置１０１の処理は、ステップＳ１０１０に移行する。
【０１１７】
破棄されたデータのアドレスがＢＣＴ６０１に登録されたＬＵＮとＬＢＡに含まれない場合（ステップＳ１００３：Ｎｏ）、ストレージ制御装置１０１は、破棄されたデータのアドレスがＳＣＴ４０１に登録されたＬＵＮとＬＢＡに含まれるか否かを判断する（ステップＳ１００４）。
【０１１８】
破棄されたデータのアドレスがＳＣＴ４０１に登録されたＬＵＮとＬＢＡに含まれる場合（ステップＳ１００４：Ｙｅｓ）、ストレージ制御装置１０１は、破棄されたデータのアドレスを含むレコードの追い出し回数を１増加する（ステップＳ１００５）。この後、ストレージ制御装置１０１の処理は、ステップＳ１０１０に移行する。
【０１１９】
破棄されたデータのアドレスがＳＣＴ４０１に登録されたＬＵＮとＬＢＡに含まれない場合（ステップＳ１００４：Ｎｏ）、ストレージ制御装置１０１は、ＳＣＴ４０１に空き領域が存在するか否かを判断する（ステップＳ１００６）。ＳＣＴ４０１に空き領域が存在しない場合（ステップＳ１００６：Ｎｏ）、ストレージ制御装置１０１は、ＳＣＴ４０１のレコードで最も過去に使われた（ＬＲＵ）レコードを削除する（ステップＳ１００７）。この後、ストレージ制御装置１０１の処理は、ステップＳ１００８に移行する。
【０１２０】
ＳＣＴ４０１に空き領域が存在する場合（ステップＳ１００６：Ｙｅｓ）、ストレージ制御装置１０１は、ＳＣＴ４０１に破棄したデータのアドレスを登録する（ステップＳ１００８）。ストレージ制御装置１０１は、登録したレコードの追い出し回数を１に設定する（ステップＳ１００９）。
【０１２１】
この後、ストレージ制御装置１０１は、破棄されたデータに対して、データを展開する処理を行う（ステップＳ１０１０）。ストレージ制御装置１０１によるデータ展開処理の詳細は以下の図１１および図１２で説明される。
【０１２２】
これにより、本フローチャートにおける一連の処理は終了する。本フローチャートを実行することで、ＤＲＡＭ２０１上に空き領域が作成され、ＤＲＡＭ２０１から破棄されたデータのアドレスに対する処理が行われる。
【０１２３】
（データ展開処理手順の一例）
図１１および図１２は、実施の形態にかかるストレージ制御装置１０１のデータ展開処理手順の一例を示すフローチャートである。まず、ストレージ制御装置１０１は、データ展開を行うデータのアドレスがＢＣＴ６０１に登録されたＬＵＮとＬＢＡに含まれるか否かを判断する（ステップＳ１１０１）。ここで、データ展開を行うデータは、図９のＳ９１３のデータ展開処理手順から呼び出された場合、ホスト装置１０２から要求されたデータであり、図１０のＳ１０１０のデータ展開処理手順から呼び出された場合、ＤＲＡＭ２０１上から破棄されたデータである。
【０１２４】
データ展開を行うデータのアドレスがＢＣＴ６０１に登録されたＬＵＮとＬＢＡに含まれる場合（ステップＳ１１０１：Ｙｅｓ）、ストレージ制御装置１０１は、ＢＣＥ７０１に空き領域が存在するか否かを判断する（ステップＳ１１０２）。
【０１２５】
ＢＣＥ７０１に空き領域が存在する場合（ステップＳ１１０２：Ｙｅｓ）、ストレージ制御装置１０１の処理は、ステップＳ１１１１に移行する。ＢＣＥ７０１に空き領域が存在しない場合（ステップＳ１１０２：Ｎｏ）、ストレージ制御装置１０１は、ＳＢＥ５０１に空き領域が存在するか否かを判断する（ステップＳ１１０３）。ＳＢＥ５０１に空き領域が存在する場合（ステップＳ１１０３：Ｙｅｓ）、ストレージ制御装置１０１の処理は、ステップＳ１１１７に移行する。
【０１２６】
ＳＢＥ５０１に空き領域が存在しない場合（ステップＳ１１０３：Ｎｏ）、ストレージ制御装置１０１は、ＢＣＥ７０１およびＳＢＥ５０１のどちらにも空き領域が存在しないため、ＢＣＥ７０１から空き領域を確保することを試みる。そのため、まず、ストレージ制御装置１０１は、ＬＲＵ確認回数を１に設定する（ステップＳ１１０４）。次に、ストレージ制御装置１０１は、ＬＲＵ確認回数が所定の回数ｎ以上になったか否かを判断する（ステップＳ１１０５）。
【０１２７】
ＬＲＵ確認回数が所定の回数ｎ以上でない場合（ステップＳ１１０５：Ｎｏ）、ストレージ制御装置１０１は、ＢＣＥ７０１のレコードの中で最も過去に使われた（ＬＲＵ）レコードのアクセス回数が所定の値ｍ以上であるか否かを判断する（ステップＳ１１０６）。ＢＣＥ７０１のレコードの中で最も過去に使われた（ＬＲＵ）レコードのアクセス回数が所定の値ｍ以上である場合（ステップＳ１１０６：Ｙｅｓ）、ストレージ制御装置１０１は、当該レコードはＬＲＵレコードであるが、所定の回数以上アクセスされるため、削除対象外とする。
【０１２８】
このため、ストレージ制御装置１０１は、現在のＬＲＵレコードを最も最近に使われた（ＭＲＵ）レコードに変更する（ステップＳ１１０９）。ストレージ制御装置１０１は、ＭＲＵレコードに変更されたレコードのアクセス回数を初期化してもよい。例えば、ストレージ制御装置１０１は、アクセス回数を１に設定する。その後、ストレージ制御装置１０１は、ＬＲＵ確認回数を１増加し（ステップＳ１１１０）、ストレージ制御装置１０１の処理は、ステップＳ１１０５に移行する。
【０１２９】
ＢＣＥ７０１のレコードの中で最も過去に使われた（ＬＲＵ）レコードのアクセス回数が所定の値ｍ以上でない場合（ステップＳ１１０６：Ｎｏ）、ストレージ制御装置１０１は、ＢＣＥ７０１のＬＲＵレコードと関連付けられるＰＦＭ２０２の領域からデータを破棄する（ステップＳ１１０７）。次に、ストレージ制御装置１０１は、ＢＣＥ７０１のＬＲＵレコードを削除する（ステップＳ１１０８）。
【０１３０】
ＢＣＥ７０１に空き領域が存在する場合、またはＢＣＥ７０１に空き領域が確保された場合、ストレージ制御装置１０１は、ＢＣＥ７０１にデータのアドレスを登録する（ステップＳ１１１１）。次に、ストレージ制御装置１０１は、データのアドレスに含まれる論理ボリュームの記憶領域からデータをＰＦＭ２０２に転送する（ステップＳ１１１２）。
【０１３１】
ストレージ制御装置１０１は、ＢＣＥ７０１に登録したレコードは最も最近にアクセスされたもの（ＭＲＵ）であるため、ＢＣＥ７０１に登録したレコードをＭＲＵレコードに変更する（ステップＳ１１１３）。ストレージ制御装置１０１は、ＢＣＥ７０１に登録したレコードは、最初のアクセスであるため、アクセス回数を１に設定する（ステップＳ１１１４）。次に、ストレージ制御装置１０１の処理は、ステップＳ１１２０に移行する。
【０１３２】
ＬＲＵ確認回数が所定の回数ｎ以上になった場合（ステップＳ１１０５：Ｙｅｓ）、ストレージ制御装置１０１は、ＢＣＥ７０１に空き領域を確保できなかったため、ＳＢＥ５０１から空き領域を確保する。そのため、ストレージ制御装置１０１は、ＳＢＥ５０１のレコードの中で最も過去に使われた（ＬＲＵ）レコードと関連付けられるＰＦＭ２０２の領域からデータを破棄する（ステップＳ１１１５）。次に、ストレージ制御装置１０１は、ＳＢＥ５０１のＬＲＵレコードを削除する（ステップＳ１１１６）。
【０１３３】
ＳＢＥ５０１に空き領域が存在する場合、またはＳＢＥ５０１に空き領域が確保された場合、ストレージ制御装置１０１は、ＳＢＥ５０１にデータのアドレスを登録する（ステップＳ１１１７）。次に、ストレージ制御装置１０１は、データのアドレスに含まれる論理ボリュームの記憶領域からデータをＰＦＭ２０２に転送する（ステップＳ１１１８）。
【０１３４】
次に、ストレージ制御装置１０１は、ＳＢＥ５０１に登録したレコードは、最も最近にアクセスされたもの（ＭＲＵ）であるため、ＭＲＵレコードに変更する（ステップＳ１１１９）。次に、ストレージ制御装置１０１の処理は、ステップＳ１１２０に移行する。
【０１３５】
ここで、データ展開を行うデータのアドレスがＢＣＴ６０１に登録されていない場合（ステップＳ１１０１：Ｎｏ）、ストレージ制御装置１０１は、データのアドレスがＳＣＴ４０１に登録されたＬＵＮとＬＢＡに含まれるか否かを判断する（ステップＳ１２０１）。データのアドレスがＳＣＴ４０１に登録されたＬＵＮとＬＢＡに含まれない場合（ステップＳ１２０１：Ｎｏ）、ＢＣＥ７０１およびＳＢＥ５０１にデータのアドレスを登録しなくてもよいため、ストレージ制御装置１０１の処理は、ステップＳ１１２０に移行する。
【０１３６】
データのアドレスがＳＣＴ４０１に登録されたＬＵＮとＬＢＡに含まれる場合（ステップＳ１２０１：Ｙｅｓ）、ストレージ制御装置１０１は、登録されたデータのアドレスのレコードの追い出し回数がしきい値Ｘ以上であるか否かを確認する（ステップＳ１２０２）。登録されたデータのアドレスのレコードの追い出し回数がしきい値Ｘ以上でない場合（ステップＳ１２０２：Ｎｏ）、ＳＢＥ５０１にデータのアドレスを登録しなくてもよいため、ストレージ制御装置１０１の処理は、ステップＳ１１２０に移行する。
【０１３７】
登録されたデータのアドレスのレコードの追い出し回数がしきい値Ｘ以上である場合（ステップＳ１２０２：Ｙｅｓ）、ＳＢＥ５０１にデータのアドレスを登録するため、ストレージ制御装置１０１は、ＳＢＥ５０１に空き領域が存在するか否かを判断する（ステップＳ１２０３）。ＳＢＥ５０１に空き領域が存在する場合（ステップＳ１２０３：Ｙｅｓ）、ストレージ制御装置１０１の処理は、ステップＳ１２０６に移行する。
【０１３８】
ＳＢＥ５０１に空き領域が存在しない場合（ステップＳ１２０３：Ｎｏ）、ストレージ制御装置１０１は、ＳＢＥ５０１のレコードの中で最も過去に使われた（ＬＲＵ）レコードと関連付けられるＰＦＭ２０２の領域からデータを破棄する（ステップＳ１２０４）。次に、ストレージ制御装置１０１は、ＳＢＥ５０１のＬＲＵレコードを削除する（ステップＳ１２０５）。
【０１３９】
ＳＢＥ５０１に空き領域が存在する場合、またはＳＢＥ５０１に空き領域が確保された場合、ストレージ制御装置１０１は、ＳＢＥ５０１にデータのアドレスを登録する（ステップＳ１２０６）。次に、ストレージ制御装置１０１は、データのアドレスに含まれる論理ボリュームの記憶領域からデータをＰＦＭ２０２に転送する（ステップＳ１２０７）。
【０１４０】
次に、ストレージ制御装置１０１は、ＳＢＥ５０１に登録したレコードは、最も最近にアクセスされたもの（ＭＲＵ）であるため、ＳＢＥ５０１に登録したレコードをＭＲＵレコードに変更する（ステップＳ１２０８）。次に、ストレージ制御装置１０１は、データのアドレスがＳＢＥ５０１に登録されたため、ＳＣＴ４０１からデータのアドレスを削除する（ステップＳ１２０９）。次に、しきい値Ｘを更新する処理を行う（ステップＳ１１２０）。ストレージ制御装置１０１によるしきい値Ｘ更新処理の詳細は以下の図１３で説明される。
【０１４１】
これにより、本フローチャートにおける一連の処理は終了する。本フローチャートを実行することで、ＢＣＥ７０１またはＳＢＥ５０１にデータのアドレスが登録され、論理ボリュームの記憶領域からＰＦＭ２０２にデータが転送される。
【０１４２】
（しきい値Ｘ更新処理手順の一例）
図１３は、実施の形態にかかるストレージ制御装置１０１のしきい値Ｘ更新処理手順の一例を示すフローチャートである。まず、ストレージ制御装置１０１は、ＢＣＥ７０１の使用率を算出する（ステップＳ１３０１）。ストレージ制御装置１０１は、算出したＢＣＥ７０１の使用率が第１の所定値Ｎ１以上であるか否かを判断する（ステップＳ１３０２）。
【０１４３】
算出したＢＣＥ７０１の使用率が第１の所定値Ｎ１以上でない場合（ステップＳ１３０２：Ｎｏ）、ストレージ制御装置１０１の処理は、ステップＳ１３０４に移行する。算出したＢＣＥ７０１の使用率が第１の所定値Ｎ１以上である場合（ステップＳ１３０２：Ｙｅｓ）、ストレージ制御装置１０１は、しきい値Ｘを増加させる（ステップＳ１３０３）。
【０１４４】
次に、ストレージ制御装置１０１は、算出したＢＣＥ７０１の使用率が第２の所定値Ｎ２以下であるか否かを判断する（ステップＳ１３０４）。算出したＢＣＥ７０１の使用率が第２の所定値Ｎ２以下でない場合（ステップＳ１３０４：Ｎｏ）、ストレージ制御装置１０１の処理は、終了する。算出したＢＣＥ７０１の使用率が第２の所定値Ｎ２以下である場合（ステップＳ１３０４：Ｙｅｓ）、ストレージ制御装置１０１は、しきい値Ｘを減少させる（ステップＳ１３０５）。
【０１４５】
これにより、本フローチャートにおける一連の処理は終了する。本フローチャートを実行することで、ＢＣＥ７０１の使用率に応じてしきい値Ｘが増加または減少させられる。
【０１４６】
（Ｉ／Ｏ処理の一実施例）
図１４、図１５および図１６は、実施の形態にかかるストレージ制御装置１０１のＩ／Ｏ処理の一実施例を示す説明図である。図１４、図１５および図１６では、ストレージ制御装置１０１のＩ／Ｏ処理によるストレージ制御装置１０１のＳＣＴ４０１、ＳＢＥ５０１、ＢＣＴ６０１およびＢＣＥ７０１の記憶内容の変遷例を示す。本実施例では、ＳＢＥ５０１、ＢＣＥ７０１のレコードは、それぞれＰＦＭ２０２の０ｘ２００の領域が関連付けられている。
【０１４７】
図１４（Ａ）は、初期状態であり、ストレージ制御装置１０１がＩ／Ｏ処理を一度も行っていない状態である。この状態で、ストレージ制御装置１０１のＳＣＴ４０１、ＳＢＥ５０１およびＢＣＥ７０１には、何も登録されない。一方、ＢＣＴ６０１には、ＬＵＮ＃Ｄの開始ＬＢＡ０ｘ６０００と終了ＬＢＡ０ｘ７０００およびＬＵＮ＃Ａの開始ＬＢＡ０ｘ３０００と終了ＬＢＡ０ｘ３８００がＰＦＭ２０２に保持されるデータとして、事前に登録される。
【０１４８】
図１４（Ａ）の状態で、ホスト装置１０２からＬＵＮ＃ＡのＬＢＡ０ｘ３０００から０ｘ３２００に記憶されるデータのアクセス要求が行われる。
【０１４９】
この場合、ホスト装置１０２からデータのアクセス要求があり（ステップＳ９０１：Ｙｅｓ）、最初のＩ／Ｏである。このため、要求されたデータはＤＲＡＭ２０１上に保持されず（ステップＳ９０２：Ｎｏ）、ＤＲＡＭ２０１に空き領域が存在する（ステップＳ９０３：Ｙｅｓ）。
【０１５０】
また、ＢＣＥ７０１には、何も登録されず（ステップＳ９０５：Ｎｏ）、ＳＢＥ５０１には、何も登録されない（ステップＳ９０９：Ｎｏ）。このため、ストレージ制御装置１０１は、ＬＵＮ＃ＡのＬＢＡ０ｘ３０００から０ｘ３２００までのデータをＤＲＡＭ２０１に転送する（ステップＳ９１２）。この後、ストレージ制御装置１０１は、データ展開処理を行う（ステップＳ９１３）。
【０１５１】
データ展開処理で、ＬＵＮ＃ＡのＬＢＡ０ｘ３０００から０ｘ３２００がＢＣＴ６０１に登録され（ステップＳ１１０１：Ｙｅｓ）、ＢＣＥ７０１に空き領域が存在する（ステップＳ１１０２：Ｙｅｓ）。このため、ストレージ制御装置１０１は、ＢＣＥ７０１にデータのアドレスを登録する（ステップＳ１１１１）。この後、ストレージ制御装置１０１は、ステップＳ１１１２からステップＳ１１１４の処理を行い、ＬＵＮ＃ＡのＬＢＡ０ｘ３０００をＢＣＥ７０１に登録する。この後、ストレージ制御装置１０１は、しきい値Ｘを更新する（ステップＳ１１２０）。しきい値Ｘを更新する処理は、ＳＣＴ４０１、ＳＢＥ５０１、ＢＣＴ６０１およびＢＣＥ７０１の記憶内容の変遷と関係ないため、説明を省略する。
【０１５２】
以上の処理により、図１４（Ｂ）のＳＣＴ４０１、ＳＢＥ５０１、ＢＣＴ６０１およびＢＣＥ７０１に記憶内容が変遷する。具体的には、ＢＣＥ７０１にＬＵＮ＃ＡのＬＢＡ０ｘ３０００のレコードが登録され、アクセス回数が１に設定される。
【０１５３】
図１４（Ｂ）の状態で、ホスト装置１０２からＢＣＴ６０１に登録されたＬＵＮとＬＢＡ以外のＩ／Ｏ処理が行われ、ＤＲＡＭ２０１に空き領域が存在しなくなる。この状態で、ホスト装置１０２から、ＢＣＴ６０１に登録されたＬＵＮとＬＢＡ以外のＩ／Ｏ処理が行われる。
【０１５４】
この場合、ＤＲＡＭ２０１に空き領域が存在しないため、ストレージ制御装置１０１は、ＤＲＡＭ２０１に空き領域を作成する処理を行う（ステップＳ９０４）。ＤＲＡＭ空き領域作成処理で、ストレージ制御装置１０１は、ＤＲＡＭ２０１上のページで最も過去に使われた（ＬＲＵ）ページとし、ＬＵＮ＃ＢのＬＢＡ０ｘ１８００のページを破棄する（ステップＳ１００１）。
【０１５５】
破棄したＬＵＮ＃ＢのＬＢＡ０ｘ１８００は、ＢＣＥ７０１およびＳＢＥ５０１に登録されたＬＵＮとＬＢＡに含まれない（ステップＳ１００２：Ｎｏ）。また、破棄したＬＵＮ＃ＢのＬＢＡ０ｘ１８００は、ＢＣＴ６０１に登録されたＬＵＮとＬＢＡに含まれず（ステップＳ１００３：Ｎｏ）、ＳＣＴ４０１に登録されたＬＵＮとＬＢＡに含まれない（ステップＳ１００４：Ｎｏ）。また、ＳＣＴ４０１に空き領域が存在する（ステップＳ１００６：Ｙｅｓ）。
【０１５６】
このため、ストレージ制御装置１０１は、ＳＣＴ４０１にＤＲＡＭ２０１から破棄したデータのアドレスを登録する（ステップＳ１００８）。ストレージ制御装置１０１は、登録したレコードの追い出し回数を１に設定する（ステップＳ１００９）。
【０１５７】
以上の処理により、図１４（Ｃ）のＳＣＴ４０１、ＳＢＥ５０１、ＢＣＴ６０１およびＢＣＥ７０１に記憶内容が変遷する。具体的には、ＳＣＴ４０１にＬＵＮ＃ＢのＬＢＡ０ｘ１８００のレコードが登録され、追い出し回数が１に設定される。
【０１５８】
図１４（Ｃ）の状態で、ホスト装置１０２から、ＢＣＴ６０１に登録されたＬＵＮとＬＢＡ以外のＩ／Ｏ処理がさらに行われる。これらのＩ／Ｏ処理により、ＬＵＮ＃ＢのＬＢＡ０ｘ１８００のデータがＤＲＡＭ２０１から追い出される。
【０１５９】
この場合、破棄したＬＵＮ＃ＢのＬＢＡ０ｘ１８００は、ＳＣＴ４０１に登録されたＬＵＮとＬＢＡに含まれる（ステップＳ１００４：Ｙｅｓ）。このため、ストレージ制御装置１０１は、破棄されたＬＵＮ＃ＢのＬＢＡ０ｘ１８００のレコードの追い出し回数を１増加する（ステップＳ１００５）。
【０１６０】
以上の処理により、図１４（Ｄ）のＳＣＴ４０１、ＳＢＥ５０１、ＢＣＴ６０１およびＢＣＥ７０１に記憶内容が変遷する。具体的には、ＬＵＮ＃ＢのＬＢＡ０ｘ１８００のレコードの追い出し回数が２になる。
【０１６１】
図１４（Ｄ）の状態で、ホスト装置１０２から、ＢＣＴ６０１に登録されたＬＵＮとＬＢＡ以外のＩ／Ｏ処理がさらに行われる。これらのＩ／Ｏ処理により、ＬＵＮ＃ＣのＬＢＡ０ｘ３０００のデータが３回、ＬＵＮ＃ＡのＬＢＡ０ｘ２８００のデータが４回、ＬＵＮ＃ＤのＬＢＡ０ｘ８０００のデータが２回ＤＲＡＭ２０１から追い出される。
【０１６２】
この場合、ストレージ制御装置１０１は、図１４（Ｃ）および図１４（Ｄ）で行った処理と同じ処理で、ＳＣＴ６０１を更新する。
【０１６３】
以上の処理により、図１４（Ｅ）のＳＣＴ４０１、ＳＢＥ５０１、ＢＣＴ６０１およびＢＣＥ７０１に記憶内容が変遷する。具体的には、ＬＵＮ＃ＣのＬＢＡ０ｘ３０００のレコードの追い出し回数が３になり、ＬＵＮ＃ＡのＬＢＡ０ｘ２８００のレコードの追い出し回数が４になり、ＬＵＮ＃ＤのＬＢＡ０ｘ８０００のレコードの追い出し回数が２になる。
【０１６４】
図１４（Ｅ）の状態で、ホスト装置１０２から、ＢＣＴ６０１に登録されたＬＵＮとＬＢＡ以外のＩ／Ｏ処理がさらに行われ、ＬＵＮ＃ＤのＬＢＡ０ｘ８８００のデータがＤＲＡＭ２０１から追い出される。
【０１６５】
この場合、破棄したＬＵＮ＃ＤのＬＢＡ０ｘ８８００は、ＳＣＴ４０１に登録されたＬＵＮとＬＢＡに含まれない（ステップＳ１００４：Ｎｏ）。ＳＣＴ４０１に空き領域が存在しないため、ストレージ制御装置１０１は、ＳＣＴ４０１のレコードで最も過去に使われた（ＬＲＵ）レコードとして、ＬＵＮ＃ＢのＬＢＡ０ｘ１８００のレコードを削除する（ステップＳ１００７）。ストレージ制御装置１０１は、ＳＣＴ４０１にＬＵＮ＃ＤのＬＢＡ０ｘ８８００を登録する（ステップＳ１００８）。ストレージ制御装置１０１は、登録したレコードの追い出し回数を１に設定する（ステップＳ１００９）。
【０１６６】
以上の処理により、図１５（Ｆ）のＳＣＴ４０１、ＳＢＥ５０１、ＢＣＴ６０１およびＢＣＥ７０１に記憶内容が変遷する。具体的には、ＬＵＮ＃ＢのＬＢＡ０ｘ１８００のレコードがＳＣＴ４０１から削除され、ＬＵＮ＃ＤのＬＢＡ０ｘ８８００がＳＣＴ４０１に登録される。
【０１６７】
図１５（Ｆ）の状態で、ＢＣＴ６０１に登録されたＬＵＮとＬＢＡ以外のＩ／Ｏ処理がさらに行われ、ＬＵＮ＃ＡのＬＢＡ０ｘ２８００のデータがＤＲＡＭ２０１から追い出される。本実施例では、しきい値Ｘは５である。
【０１６８】
この場合、ＬＵＮ＃ＡのＬＢＡ０ｘ２８００のレコードの追い出し回数がしきい値Ｘ以上であり、ＳＢＥ５０１に空き領域が存在する。このため、ストレージ制御装置１０１は、ＳＢＥ５０１にＬＵＮ＃ＡのＬＢＡ０ｘ２８００を登録する（ステップＳ１２０６）。次に、ストレージ制御装置１０１は、データのアドレスに含まれる論理ボリュームの記憶領域からデータをＰＦＭ２０２に転送する（ステップＳ１２０７）。
【０１６９】
次に、ストレージ制御装置１０１は、ＬＵＮ＃ＡのＬＢＡ０ｘ２８００のレコードを、ＭＲＵレコードに変更する（ステップＳ１２０８）。次に、ストレージ制御装置１０１は、ＬＵＮ＃ＡのＬＢＡ０ｘ２８００がＳＢＥ５０１に登録されたため、ＳＣＴ４０１からＬＵＮ＃ＡのＬＢＡ０ｘ２８００のレコードを削除する（ステップＳ１２０９）。
【０１７０】
以上の処理により、図１５（Ｇ）のＳＣＴ４０１、ＳＢＥ５０１、ＢＣＴ６０１およびＢＣＥ７０１に記憶内容が変遷する。具体的には、ＬＵＮ＃ＡのＬＢＡ０ｘ２８００のレコードがＳＢＥ５０１に登録され、ＬＵＮ＃ＡのＬＢＡ０ｘ２８００のレコードがＳＣＴ４０１から破棄される。
【０１７１】
図１５（Ｇ）の状態で、ＢＣＴ６０１に登録されたＬＵＮとＬＢＡ以外のＩ／Ｏ処理がさらに行われ、ＳＣＴ４０１、ＳＢＥ５０１に空き領域が存在しなくなる。また、ＢＣＴ６０１に、ＬＵＮ＃Ｃの開始ＬＢＡ０ｘ２０００と終了ＬＢＡ０ｘ２８００がＰＦＭ２０２に保持されるデータとして、登録される。さらに、ＢＣＴ６０１に登録されたＬＵＮとＬＢＡのＩ／Ｏ処理がさらに行われ、図１５（Ｈ）の状態になる。
【０１７２】
図１５（Ｈ）の状態で、ホスト装置１０２からＬＵＮ＃ＤのＬＢＡ０ｘ６０００から０ｘ６２００に記憶されるデータのアクセス要求が行われる。
【０１７３】
この場合、ＬＵＮ＃ＤのＬＢＡ０ｘ６０００がＢＣＥ７０１に登録されたＬＵＮとＬＢＡに含まれる（ステップＳ９０５：Ｙｅｓ）。このため、ストレージ制御装置１０１は、要求データをＰＦＭ２０２からＤＲＡＭ２０１に転送する（ステップＳ９０６）。ストレージ制御装置１０１は、ＬＵＮ＃ＤのＬＢＡ０ｘ６０００のレコードを最も最近に使われたもの（ＭＲＵ）に変更する（ステップＳ９０７）。ストレージ制御装置１０１は、ＬＵＮ＃ＤのＬＢＡ０ｘ６０００のレコードのアクセス回数を１増加する（ステップＳ９０８）。
【０１７４】
以上の処理により、図１５（Ｉ）のＳＣＴ４０１、ＳＢＥ５０１、ＢＣＴ６０１およびＢＣＥ７０１に記憶内容が変遷する。具体的には、ＬＵＮ＃ＤのＬＢＡ０ｘ６０００のレコードがＭＲＵに変更され、アクセス回数が５になる。
【０１７５】
図１５（Ｉ）の状態で、ホスト装置１０２からＬＵＮ＃ＡのＬＢＡ０ｘ２８００から０ｘ３０００に記憶されるデータのアクセス要求が行われる。
【０１７６】
この場合、ＬＵＮ＃ＤのＬＢＡ０ｘ２８００がＢＣＥ７０１に登録されたＬＵＮとＬＢＡに含まれず（ステップＳ９０５：Ｎｏ）、ＳＢＥ５０１に登録されたＬＵＮとＬＢＡに含まれる（ステップＳ９０９：Ｙｅｓ）。このため、ストレージ制御装置１０１は、要求データをＰＦＭ２０２からＤＲＡＭ２０１に転送する（ステップＳ９１０）。ストレージ制御装置１０１は、要求データのアドレスを含むレコードを最も最近に使われたもの（ＭＲＵ）に変更する（ステップＳ９１１）。
【０１７７】
以上の処理により、図１６（Ｊ）のＳＣＴ４０１、ＳＢＥ５０１、ＢＣＴ６０１およびＢＣＥ７０１に記憶内容が変遷する。具体的には、ＬＵＮ＃ＡのＬＢＡ０ｘ２８００のレコードがＭＲＵに変更される。
【０１７８】
図１６（Ｊ）の状態で、ホスト装置１０２から、ＢＣＴ６０１に登録されたＬＵＮとＬＢＡ以外のＩ／Ｏ処理がさらに行われる。これらのＩ／Ｏ処理により、ＬＵＮ＃ＤのＬＢＡ０ｘ３０００のデータがＤＲＡＭ２０１から追い出される。
【０１７９】
この場合、破棄したＬＵＮ＃ＤのＬＢＡ０ｘ３０００は、ＳＣＴ４０１に登録されたＬＵＮとＬＢＡに含まれる（ステップＳ１００４：Ｙｅｓ）。このため、ストレージ制御装置１０１は、破棄されたＬＵＮ＃ＤのＬＢＡ０ｘ３０００のレコードの追い出し回数を１増加する（ステップＳ１００５）。
【０１８０】
以上の処理により、図１６（Ｋ）のＳＣＴ４０１、ＳＢＥ５０１、ＢＣＴ６０１およびＢＣＥ７０１に記憶内容が変遷する。具体的には、ＬＵＮ＃ＤのＬＢＡ０ｘ３０００のレコードの追い出し回数が３になる。
【０１８１】
図１６（Ｋ）の状態で、ホスト装置１０２からＬＵＮ＃ＡのＬＢＡ０ｘ３６００から０ｘ３８００に記憶されるデータのアクセス要求が行われる。本実施例では、所定の回数ｎは２であり、所定の値ｍは３である。
【０１８２】
この場合、ＬＵＮ＃ＡのＬＢＡ０ｘ３６００がＢＣＥ７０１に登録されたＬＵＮとＬＢＡに含まれず（ステップＳ９０５：Ｎｏ）、ＳＢＥ５０１に登録されたＬＵＮとＬＢＡに含まれない（ステップＳ９０９：Ｎｏ）。このため、ストレージ制御装置１０１は、ＬＵＮ＃ＡのＬＢＡ０ｘ３６００から０ｘ３８００までのデータをＤＲＡＭ２０１に転送する（ステップＳ９１２）。
【０１８３】
データ展開処理で、ＬＵＮ＃ＡのＬＢＡ０ｘ３６００は、ＢＣＴ６０１に登録され（ステップＳ１１０１：Ｙｅｓ）、ＢＣＴ６０１に空き領域が存在せず（ステップＳ１１０２：Ｎｏ）、ＳＢＥ５０１に空き領域が存在しない（ステップＳ１１０３：Ｎｏ）。
【０１８４】
このため、ストレージ制御装置１０１は、ＬＲＵ確認回数を１に設定する（ステップＳ１１０４）。ＬＲＵ確認回数が所定の回数２でなく（ステップＳ１１０５：Ｎｏ）、ＢＣＥ７０１のレコードの中で最も過去に使われたＬＵＮ＃ＡのＬＢＡ０ｘ３０００のアクセス回数２が所定の値３以上でない（ステップＳ１１０６：Ｎｏ）。
【０１８５】
このため、ストレージ制御装置１０１は、ＢＣＥ７０１のＬＵＮ＃ＡのＬＢＡ０ｘ３０００と関連付けられるＰＦＭ２０２の領域からデータを破棄する（ステップＳ１１０７）。次に、ストレージ制御装置１０１は、ＢＣＥ７０１のＬＵＮ＃ＡのＬＢＡ０ｘ３０００のレコードを削除する（ステップＳ１１０８）。
【０１８６】
この後、ストレージ制御装置１０１は、ＢＣＥ７０１にＬＵＮ＃ＡのＬＢＡ０ｘ３６００を登録する（ステップＳ１１１１）。次に、ストレージ制御装置１０１は、ＬＵＮ＃ＡのＬＢＡ０ｘ３６００から０ｘ３８００までのデータをＰＦＭ２０２に転送する（ステップＳ１１１２）。ストレージ制御装置１０１は、ＬＵＮ＃ＡのＬＢＡ０ｘ３６００のレコードをＭＲＵレコードに変更する（ステップＳ１１１３）。ストレージ制御装置１０１は、ＢＣＥ７０１に登録したＬＵＮ＃ＡのＬＢＡ０ｘ３６００のレコードは、最初のアクセスであるため、アクセス回数を１に設定する（ステップＳ１１１４）。
【０１８７】
以上の処理により、図１６（Ｌ）のＳＣＴ４０１、ＳＢＥ５０１、ＢＣＴ６０１およびＢＣＥ７０１に記憶内容が変遷する。具体的には、ＢＣＥ７０１のＬＵＮ＃ＡのＬＢＡ０ｘ３０００のレコードが削除され、ＢＣＥ７０１にＬＵＮ＃ＡのＬＢＡ０ｘ３６００がアクセス回数１で登録される。
【０１８８】
図１６（Ｌ）の状態で、ホスト装置１０２からＬＵＮ＃ＣのＬＢＡ０ｘ２２００から０ｘ２４００に記憶されるデータのアクセス要求が行われる。
【０１８９】
この場合、ＬＵＮ＃ＣのＬＢＡ０ｘ２２００がＢＣＥ７０１に登録されたＬＵＮとＬＢＡに含まれず（ステップＳ９０５：Ｎｏ）、ＳＢＥ５０１に登録されたＬＵＮとＬＢＡに含まれない（ステップＳ９０９：Ｎｏ）。このため、ストレージ制御装置１０１は、ＬＵＮ＃ＣのＬＢＡ０ｘ２２００から０ｘ２４００までのデータをＤＲＡＭ２０１に転送する（ステップＳ９１２）。
【０１９０】
データ展開処理で、ＬＵＮ＃ＣのＬＢＡ０ｘ２２００は、ＢＣＴ６０１に登録され（ステップＳ１１０１：Ｙｅｓ）、ＢＣＥ７０１に空き領域が存在せず（ステップＳ１１０２：Ｎｏ）、ＳＢＥ５０１に空き領域が存在しない（ステップＳ１１０３：Ｎｏ）。
【０１９１】
このため、ストレージ制御装置１０１は、ＬＲＵ確認回数を１に設定する（ステップＳ１１０４）。ＬＲＵ確認回数が所定の回数２でなく（ステップＳ１１０５：Ｎｏ）、ＢＣＥ７０１のレコードの中で最も過去に使われたＬＵＮ＃ＤのＬＢＡ０ｘ６８００のアクセス回数３が所定の値３以上である（ステップＳ１１０６：Ｙｅｓ）。
【０１９２】
このため、ストレージ制御装置１０１は、ＬＵＮ＃ＤのＬＢＡ０ｘ６８００のレコードを最も最近に使われた（ＭＲＵ）レコードに変更する（ステップＳ１１０９）。ストレージ制御装置１０１は、ＭＲＵレコードに変更されたＬＵＮ＃ＤのＬＢＡ０ｘ６８００のレコードのアクセス回数を１に設定する。その後、ストレージ制御装置は、ＬＲＵ確認回数を１増加する（ステップＳ１１１０）。
【０１９３】
ＬＲＵ確認回数が所定の回数２である（ステップＳ１１０５：Ｙｅｓ）。このため、ストレージ制御装置１０１は、ＳＢＥ５０１のレコードの中で最も過去に使われた（ＬＲＵ）ＬＵＮ＃ＢのＬＢＡ０ｘ１８００のレコードと関連付けられるＰＦＭ２０２の領域からデータを破棄する（ステップＳ１１１５）。次に、ストレージ制御装置１０１は、ＳＢＥ５０１のＬＵＮ＃ＢのＬＢＡ０ｘ１８００のレコードを削除する（ステップＳ１１１６）。
【０１９４】
ストレージ制御装置１０１は、ＳＢＥ５０１にデータのアドレスを登録する（ステップＳ１１１７）。次に、ストレージ制御装置１０１は、ＬＵＮ＃ＣのＬＢＡ０ｘ２２００から０ｘ２４００までのデータをＰＦＭ２０２に転送する（ステップＳ１１１８）。
【０１９５】
次に、ストレージ制御装置１０１は、ＳＢＥ５０１のＬＵＮ＃ＣのＬＢＡ０ｘ２２００のレコードは、最も最近にアクセスされたもの（ＭＲＵ）であるため、ＭＲＵレコードに変更する（ステップＳ１１１９）。
【０１９６】
以上の処理により、図１６（Ｍ）のＳＣＴ４０１、ＳＢＥ５０１、ＢＣＴ６０１およびＢＣＥ７０１に記憶内容が変遷する。具体的には、ＳＢＥ５０１のＬＵＮ＃ＢのＬＢＡ０ｘ１８００のレコードが削除され、ＳＢＥ５０１にＬＵＮ＃ＣのＬＢＡ０ｘ２２００のレコードが登録される。
【０１９７】
以上説明したように、実施の形態では、ストレージ制御装置１０１は、ＰＦＭ２０２に保持するデータの記憶装置１０３上のアドレスをＢＣＴ６０１に、ＰＦＭ２０２に保持されたデータの記憶装置１０３上のアドレスをＢＣＥ７０１に記憶する。ストレージ制御装置１０１は、ＢＣＴ６０１に含まれ、ＢＣＥ７０１に含まれていないアドレスのデータのアクセス要求に応じて、データをＰＦＭ２０２に保持し、データのアドレスをＢＣＥ７０１に登録する。
【０１９８】
これにより、ストレージ制御装置１０１は、ＢＣＥ７０１に記憶したアドレスのデータのアクセス要求をＰＦＭ２０２に保持したデータで処理することができる。このため、ユーザが頻繁に使用するデータのアドレスをＢＣＴ６０１に登録することで、ストレージ制御装置１０１は、ＤＲＡＭ２０１を使用することなく、ユーザが指定した頻繁に使用するデータの応答性能を向上することができる。
【０１９９】
また、ストレージ制御装置１０１は、データのアドレスをＢＣＥ７０１に登録する際に、ＢＣＥ７０１に含まれるレコード数が上限数に達した場合、ＢＣＥ７０１に含まれるレコードを削除することができる。この場合、ストレージ制御装置１０１は、ＢＣＥ７０１に含まれるレコードのうち、最も過去に使われ、アクセス回数が所定値ｍ未満であるレコードを削除することができる。
【０２００】
これにより、ストレージ制御装置１０１は、ＢＣＥ７０１に含まれるレコード数が上限数に達した場合、ＢＣＥ７０１のレコードの中で頻繁にアクセスされていないレコードを削除することができる。
【０２０１】
また、ストレージ制御装置１０１は、ＢＣＥ７０１に含まれるレコードのうち、最も過去に使われ、アクセス回数が所定値ｍ以上であるレコードを、最も最近に使われたレコードに変更し、アクセス回数を初期化することができる。
【０２０２】
これにより、ストレージ制御装置１０１は、ＰＦＭ２０２上のデータで頻繁にアクセスされたデータのアドレスを削除対象外とすることができる。また、ストレージ制御装置１０１は、アクセス回数を初期化することで、アクセス回数が所定値ｍ以上であるレコードが永久に削除できないことを防止できる。
【０２０３】
また、ストレージ制御装置１０１は、ＤＲＡＭ２０１から追い出されたデータの記憶装置１０３上のアドレスと追い出し回数をと含むＳＣＴ４０１を記憶することができる。ストレージ制御装置１０１は、ＳＣＴ４０１に含まれるアドレスに対応するデータがＤＲＡＭ２０１から追い出され、追い出し回数がしきい値Ｘ以上である場合、追い出されたデータをＰＦＭ２０２に保持することができる。また、ストレージ制御装置１０１は、追い出されたデータの記憶装置１０３上のアドレスをＳＢＥ５０１に登録することができる。
【０２０４】
これにより、ストレージ制御装置１０１は、ＤＲＡＭ２０１から頻繁に追い出されたデータをＰＦＭ２０２に保持し、頻繁に追い出されたデータのアクセス要求をＰＦＭ２０２に保持したデータで処理することができる。
【０２０５】
また、ストレージ制御装置１０１は、データのアドレスをＢＣＥ７０１に登録する際に、ＢＣＥ７０１に含まれるレコード数が上限数に達し、ＳＢＥ５０１に含まれるレコード数が上限数に達していない場合、ＳＢＥ５０１にアドレスを登録することができる。
【０２０６】
これにより、ストレージ制御装置１０１は、ＢＣＥ７０１に含まれるレコード数が上限数に達した場合でも、ＢＣＥ７０１に登録された頻繁に使用するデータのレコードを削除しなくてよい。
【０２０７】
また、ストレージ制御装置１０１は、データのアドレスをＢＣＥ７０１に登録する際に、ＢＣＥ７０１に含まれるレコード数が上限数に達し、ＳＢＥ５０１に含まれるレコード数が上限数に達した場合、ＢＣＥ７０１に含まれるレコードを削除することができる。この場合、ストレージ制御装置１０１は、ＢＣＥ７０１に含まれるレコードのうち、最も過去に使われ、アクセス回数が所定値ｍ未満であるレコードを削除することができる。
【０２０８】
これにより、ストレージ制御装置１０１は、ＢＣＥ７０１およびＳＢＥ５０１に含まれるレコード数がそれぞれ上限数に達した場合、ＢＣＥ７０１のレコードの中で頻繁にアクセスされていないレコードを削除することができる。
【０２０９】
また、ストレージ制御装置１０１は、データのアドレスをＢＣＥ７０１に登録する際に、ＢＣＥ７０１に含まれるレコード数が上限数に達し、ＳＢＥ５０１に含まれるレコード数が上限数に達した場合、ＢＣＥ７０１に含まれるレコードを削除しないこともできる。この場合、ストレージ制御装置１０１は、ＢＣＥ７０１に含まれるレコードのうち、最も過去に使われ、アクセス回数が所定値ｍ以上であるレコードを削除せず、ＳＢＥ５０１の最も過去に使われたレコードを削除する。
【０２１０】
これにより、ストレージ制御装置１０１は、ＳＢＥ５０１の最も過去に使われたレコードを削除することで、ＳＢＥ５０１に登録された頻繁に使用するデータのレコードを削除しなくてもよい。
【０２１１】
また、ストレージ制御装置１０１は、ＢＣＥ７０１の使用率が第１の所定値Ｎ１以上である場合、しきい値Ｘを増加させることができる。これにより、ＳＢＥ５０１に空き領域が増加し、ＢＣＥ７０１に登録できなかったアドレスをＳＢＥ５０１に登録でき、ＢＣＴ６０１に登録したアドレスのデータをＰＦＭ２０２に保持することができる。
【０２１２】
また、ストレージ制御装置１０１は、ＢＣＥ７０１の使用率が第２の所定値Ｎ２以下である場合、しきい値Ｘを減少させることができる。これにより、ＳＢＥ５０１に空き領域が減少し、ＳＣＴ４０１に登録したアドレスのデータをＰＦＭ２０２に保持することができる。
【０２１３】
なお、本実施の形態で説明したストレージ制御プログラムは、予め用意されたプログラムをパーソナル・コンピュータやワークステーション等のコンピュータで実行することにより実現することができる。本ストレージ制御プログラムは、ハードディスク、フレキシブルディスク、ＣＤ−ＲＯＭ、ＭＯ、ＤＶＤ等のコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。また、本ストレージ制御プログラムは、インターネット等のネットワークを介して配布してもよい。
【０２１４】
上述した実施の形態に関し、さらに以下の付記を開示する。
【０２１５】
（付記１）１次キャッシュと２次キャッシュと制御部とを有し、記憶装置に対するアクセス制御を行うストレージ制御装置において、
前記制御部は、
前記２次キャッシュに保持するデータの前記記憶装置上のアドレスを含む第１の管理情報と、前記２次キャッシュに保持されたデータの前記記憶装置上のアドレスを含む第２の管理情報とを記憶し、
前記記憶装置のいずれかの記憶領域に対するアクセス要求に応じて、前記記憶領域のアドレスが前記第１の管理情報に含まれ、かつ、前記記憶領域のアドレスが前記第２の管理情報に含まれていない場合に、前記記憶領域のデータを前記２次キャッシュに保持し、
前記記憶領域のアドレスを前記第２の管理情報に登録する、
ことを特徴とするストレージ制御装置。
【０２１６】
（付記２）前記制御部は、
前記アクセス要求に応じて、前記記憶領域のアドレスが前記第２の管理情報に含まれている場合には、前記記憶領域のアドレスに対応するデータを、前記２次キャッシュから読み出して、または、前記２次キャッシュに書き込んで、前記アクセス要求に応答することを特徴とする付記１に記載のストレージ制御装置。
【０２１７】
（付記３）前記制御部は、
前記２次キャッシュに保持されている各データに対するアクセス回数を前記各データの前記記憶装置上のアドレスに関連付けて記憶し、
前記アクセス要求に応じて、前記記憶領域のデータを前記２次キャッシュに保持する際に、前記第２の管理情報に含まれるアドレス数が上限数に達した場合、前記第２の管理情報に含まれるアドレスのうち、最後にアクセスされてから最も時間が経過し、関連付けて記憶されたアクセス回数が第１の所定値未満であるアドレスを前記第２の管理情報から削除するとともに、削除したアドレスに対応するデータを前記２次キャッシュから破棄することを特徴とする付記１または２に記載のストレージ制御装置。
【０２１８】
（付記４）前記制御部は、
最後にアクセスされてから最も時間が経過し、関連付けて記憶された前記アクセス回数が前記第１の所定値以上であるアドレスの属性を、最も最近にアクセスされた属性に変更し、関連付けて記憶された前記アクセス回数を初期化することを特徴とする付記３に記載のストレージ制御装置。
【０２１９】
（付記５）前記制御部は、
前記１次キャッシュから追い出された各データの前記記憶装置上のアドレスと追い出し回数とを含む第３の管理情報を記憶し、
前記第３の管理情報に含まれるアドレスに対応するデータが前記１次キャッシュから追い出されたことに応じて、追い出されたデータの追い出し回数が第２の所定値以上である場合、前記追い出されたデータを前記２次キャッシュに保持するとともに、前記追い出されたデータの前記記憶装置上のアドレスを第４の管理情報に登録することを特徴とする付記４に記載のストレージ制御装置。
【０２２０】
（付記６）前記制御部は、
前記アクセス要求に応じて、前記記憶領域のアドレスが前記第２の管理情報に含まれず、かつ、前記第４の管理情報に含まれている場合には、前記記憶領域のアドレスに対応するデータを、前記２次キャッシュから読み出して、または、前記２次キャッシュに書き込んで、前記アクセス要求に応答することを特徴とする付記５に記載のストレージ制御装置。
【０２２１】
（付記７）前記制御部は、
前記アクセス要求に応じて、前記記憶領域のデータを前記２次キャッシュに保持する際に、前記第２の管理情報に登録した前記記憶領域のアドレス数が上限数に達し、かつ、最後にアクセスされてから最も時間が経過したアドレスに関連付けて記憶された前記アクセス回数が前記第１の所定値以上である場合、前記記憶領域のデータを前記２次キャッシュに保持するとともに、前記記憶領域のアドレスを前記第４の管理情報に登録することを特徴とする付記５または６に記載のストレージ制御装置。
【０２２２】
（付記８）前記制御部は、
前記アクセス要求に応じて、前記記憶領域のデータを前記２次キャッシュに保持する際に、前記第２の管理情報に含まれるアドレス数および前記第４の管理情報に含まれるアドレス数がそれぞれ上限数に達した場合、前記第４の管理情報に含まれるアドレスのうち、最後にアクセスされてから最も時間が経過したアドレスを前記第４の管理情報から削除するとともに、削除したアドレスに対応するデータを前記２次キャッシュから破棄することを特徴とする付記５〜７のいずれか一つに記載のストレージ制御装置。
【０２２３】
（付記９）前記制御部は、
前記第２の管理情報に含むことができるアドレス数の上限数に対する前記第２の管理情報に含まれるアドレス数の使用率を算出し、算出した前記使用率に応じて、前記第２の所定値を変更することを特徴とする付記５〜８のいずれか一つに記載のストレージ制御装置。
【０２２４】
（付記１０）１次キャッシュと２次キャッシュとを有し、記憶装置に対するアクセス制御を行うストレージ制御装置に、
前記２次キャッシュに保持するデータの前記記憶装置上のアドレスを含む第１の管理情報と、前記２次キャッシュに保持されたデータの前記記憶装置上のアドレスを含む第２の管理情報とを記憶し、
前記記憶装置のいずれかの記憶領域に対するアクセス要求に応じて、前記記憶領域のアドレスが前記第１の管理情報に含まれ、かつ、前記記憶領域のアドレスが前記第２の管理情報に含まれていない場合に、前記記憶領域のデータを前記２次キャッシュに保持し、
前記記憶領域のアドレスを前記第２の管理情報に登録する、
処理を実行させることを特徴とするストレージ制御プログラム。
【０２２５】
（付記１１）１次キャッシュと２次キャッシュとを有し、記憶装置に対するアクセス制御を行うストレージ制御装置に、
前記２次キャッシュに保持するデータの前記記憶装置上のアドレスを含む第１の管理情報と、前記２次キャッシュに保持されたデータの前記記憶装置上のアドレスを含む第２の管理情報とを記憶し、
前記記憶装置のいずれかの記憶領域に対するアクセス要求に応じて、前記記憶領域のアドレスが前記第１の管理情報に含まれ、かつ、前記記憶領域のアドレスが前記第２の管理情報に含まれていない場合に、前記記憶領域のデータを前記２次キャッシュに保持し、
前記記憶領域のアドレスを前記第２の管理情報に登録する、
処理を実行させるストレージ制御プログラムを記録したことを特徴とする前記ストレージ制御装置のコンピュータに読み取り可能な記録媒体。
【符号の説明】
【０２２６】
１０１  ストレージ制御装置
１０２  ホスト装置
１０３  記憶装置
２０１  ＤＲＡＭ
２０２  ＰＦＭ
８０１  通信部
８０２  キャッシュ制御部
８０３  Ｉ／Ｏ制御部
８０４  更新部
【図１】
2016051387.tif 000003
【図２】
2016051387.tif 000004
【図３】
2016051387.tif 000005
【図４】
2016051387.tif 000006
【図５】
2016051387.tif 000007
【図６】
2016051387.tif 000008
【図７】
2016051387.tif 000009
【図８】
2016051387.tif 000010
【図９】
2016051387.tif 000011
【図１０】
2016051387.tif 000012
【図１１】
2016051387.tif 000013
【図１２】
2016051387.tif 000014
【図１３】
2016051387.tif 000015
【図１４】
2016051387.tif 000016
【図１５】
2016051387.tif 000017
【図１６】
2016051387.tif 000018