(57)【特許請求の範囲】
【請求項１】
可変長のキャッシュページのキャッシュデータを格納するようキャッシュメモリを制御するキャッシュメモリ制御方式において、
前記キャッシュメモリを予め決められた一定サイズの複数のセグメントに分割し、該セグメントのうち１つのセグメントには同一属性のキャッシュデータを格納するとともに、
前記セグメントには優先度を設け、特定属性のキャッシュデータを格納するセグメントが満杯になると、前記優先度が低いセグメントのキャッシュデータを破棄して空きセグメントを作成することを特徴とするキャッシュメモリ制御方式。
【請求項２】
前記キャッシュデータの属性は、ホストコマンドのリード又はライトにより判別することを特徴とする請求項１に記載のキャッシュメモリ制御方式。
【請求項３】
前記キャッシュデータの属性は、ホストコマンドのシーケンシャルアクセス又はランダムアクセスにより判別することを特徴とする請求項１又は２に記載のキャッシュメモリ制御方式。
【請求項４】
前記同一属性のセグメントをＬＲＵアルゴリズムにより管理し、前記破棄対象になるセグメントは、最もアクセス頻度の少ないものを選択することを特徴とする請求項１乃至３の何れかに記載のキャッシュメモリ制御方式。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明はキャッシュメモリ制御方式、特にディスクキャッシュ（ディスクアレイ装置）に搭載されるキャッシュメモリの制御方式に関する。
【０００２】
【従来の技術】
ディスクキャッシュ（disk  cache）又はＲＡＭディスク（RAM-disk）は、コンピュータの主記憶領域の一部又は外付けＲＡＭを、（磁気）ディスクの代わりに使用してアクセス時間を短縮するソフトウエアおよびハードウエアである。これにより、主記憶領域の一部をディスク装置として扱うことができるソフトウエアおよびディスク装置と同様に扱うことができる外付け半導体メモリ装置の２種に大別できる。
【０００３】
斯かるディスクキャッシュに搭載されるキャッシュメモリ（cache  memory）の制御は、キャッシュデータの格納単位であるキャッシュページを固定長で管理する方式および可変長で管理する方式の２方式が提案されている。前者は、処理単位が固定であるために、オーバーヘッドが少なく、比較的簡単な制御方式であるという特徴を有する。しかし、そのページサイズよりも十分大きいアクセスに対しては、ページ分割数分のオーバーヘッドが常に発生してしまう傾向がある。一方、後者は、キャッシュページサイズによらず一定のオーバーヘッドが維持でき、特にライト処理の場合には、要求のあったアクセスサイズに合わせてヒットさせることができるという特徴を有する。しかし、可変長であるために、キャッシュページの管理が複雑になる傾向がある。
【０００４】
斯かるキャッシュメモリの制御方式の従来例は、例えば特開平２−９８７５５号公報の「キャッシュ無効化処理方式」等に開示されている。この特許公報には、緩衝記憶装置におけるキャッシュメモリに登録されているｎ種の意味の違った或いは大きさの異なったブロックデータを個別に無効化することにより登録されたブロックデータを無駄に消してしまうことをなくし且つ高速化を可能にしたブロックデータの無効化処理方式を開示している。
【０００５】
【発明が解決しようとする課題】
上述した如き可変長のキャッシュページサイズによるキャッシュ制御方法では、キャッシュデータの置き換えアルゴリズムをLRUアルゴリズムにて行う。そこで、キャッシュデータの破棄（図３（Ａ）参照）を行うと、散発的なエリヤが破棄されることが多くなる（図３（Ｂ）参照）。このため、破棄するキャッシュページのサイズが小さい場合およびキャッシュメモリ上の離れた場所のキャッシュページを破棄する場合が多いと、空き領域が散発的となり、フラグメンテーションが発生してしまうことになる。この状態では、ガーべジコレクションをする等により、空き領域の管理を常に行う必要がある。そこで、複雑なキャッシュ制御によりディスクアレイ装置の性能が低下することとなる。
【０００６】
【発明の目的】
従って、本発明の目的は、上述した従来技術の課題を解消又は軽減し、空き領域の発生による性能低下を阻止するディスクキャッシュ等に搭載のキャッシュメモリの制御方式を提供することである。
【０００７】
【課題を解決するための手段】
本発明のキャッシュメモリ制御方式は、可変長のキャッシュページのキャッシュデータを格納するようにキャッシュメモリを制御するものであって、キャッシュメモリを予め決められた一定サイズの複数のセグメントに分割し、これらセグメントのうち１つのセグメントには同一属性のキャッシュデータを格納する。また、セグメントには優先度を設け、特定属性のキャッシュデータを格納するセグメントが満杯になると、優先度が低いセグメントのキャッシュデータを破棄して空きセグメントを作成する。
【０００８】
また、本発明のキャッシュメモリ制御方式の好適実施形態によると、キャッシュデータの属性は、ホストコマンドのリード／ライト又はシーケンシャルアクセス／ランダムアクセスにより判別することを特徴とする。また、同一属性のセグメントをＬＲＵアルゴリズムにより管理し、破棄対象になるセグメントは、最もアクセス頻度の少ないものを選択する。
【０００９】
【発明の実施の形態】
以下、本発明によるキャッシュメモリ制御方式の好適実施形態の構成および動作を、添付図を参照して詳細に説明する。
【００１０】
先ず、図１は、本発明によるキャッシュメモリ制御方式の好適実施形態の内部構成を示す図である。図１において、キャッシュメモリ１は、キャッシュメモリ全体を示す。キャッシュページ２は、可変長のキャッシュデータであり、キャッシュメモリ１にデータを格納する際の連続したデータの単位である。セグメント３は、キャッシュメモリ１を一定サイズで分割した領域であり、キャッシュページ２の集合体である。
【００１１】
次に、図１に示す本発明のキャッシュメモリ１にデータを書き込む場合の動作例を説明する。先ず、複数のセグメント３内に配置するキャッシュページ２は、同一のセグメント３内は全て同じ種類（属性）のものにする。例えば、この属性のタイプは、ホストから発行される命令（ホストコマンド）のパターンによって分けるようにする。
【００１２】
図３は、この属性の判別処理を示すフローチャートである。先ず、ホストコマンドを受信する（ステップＳ１）。次に、リード／ライト（読み出し／書き込み）を判別する（ステップＳ２）。次に、シーケンシャルアクセスかランダムアクセスかを判別する（ステップＳ３）。更に、セグメント属性を決定する（ステップＳ４）。そして、シーケンシャルライトセグメント（ステップＳ５）、ランダムライトセグメント（ステップＳ６）、シーケンシャルリードセグメント（ステップＳ７）およびランダムリードセグメント（ステップＳ８）を行う。
【００１３】
上述の如く、リードおよびライトのコマンドによって分けることで、一般的にいうクリーンデータとダーティデータに明確に分けることができる。そのために、ライトバックが必要なセグメントとそれ以外のセグメントとを容易に区別することが可能となる。また、シーケンシャルアクセスによって得られたキャッシュデータと、ランダムアクセスによって得られたキャッシュデータによって分けることにより、キャッシュデータの先読み処理と連動させることができるというメリットがある。
【００１４】
次に、新たなキャッシュページ２をキャッシュメモリ１内に作成する場合を説明する。この場合に重要となるのは、どのセグメント３内にキャッシュページ２を作成するかである。セグメント属性は、一義的に決まるので、その属性を示すセグメントにキャッシュページ２を作成すれば良い。
【００１５】
しかし、対象となるセグメント３が既に満杯（フル）状態で且つ他に同じ属性のセグメント３が存在しない場合には、新たにその属性を有するセグメント３を作成しなければならない。そのためには、１つのセグメント３を破棄して空きセグメント３として確保する必要がある。破棄するセグメント３の選択方法は、次のとおりである。
【００１６】
先ず、属性別に破棄対象になる場合の優先度を設ける。そして、優先度が低いセグメント３ほど、破棄される確率が高くなるようにする。反対に、優先度が高いセグメント３ほど、キャッシュメモリ１内に常駐させる事ができる。また、優先度の同じセグメントが多数存在する場合があるため、同一属性のセグメント３をＬＲＵアルゴリズムによって管理することにより、破棄対象になるセグメント３は、最もアクセス頻度の低いものを選択することも可能である。
【００１７】
上述の如く、空き領域を新たに作る際に、セグメント単位にキャッシュデータを破棄することにより、一度に連続したメモリ領域を確保することができる。これにより、可変長のキャッシュページであっても、キャッシュメモリ１を効率よく利用することが可能である。
【００１８】
以上、本発明によるキャッシュメモリ制御方式の好適実施形態の構成および動作を詳述した。しかし、斯かる実施形態は、本発明の単なる例示に過ぎず、何ら本発明を限定するものではないことに留意されたい。本発明の要旨を逸脱することなく、特定用途に応じて種々の変形変更が可能であること、当業者には容易に理解できよう。
【００１９】
【発明の効果】
以上の説明から理解される如く、本発明のキャッシュメモリ制御方式によると、次の如き実用上の顕著な効果が得られる。即ち、キャッシュメモリ内のキャッシュデータを破棄する際に、常に連続した領域（セグメント）を空き領域として使用することが可能であるので、従来技術の如く分断された空き領域が生じず、キャッシュメモリの使用効率が改善される。また、本発明によると、常に安定した性能を提供することが可能である。
【図面の簡単な説明】
【図１】本発明によるキャッシュメモリ制御方式を説明するためのキャッシュメモリの内部構成を示す図である。
【図２】本発明におけるキャッシュページの属性判別処理を示すフローチャートである。
【図３】従来技術を示し、（Ａ）はキャッシュメモリ内のキャッシュデータの破棄を示し、（Ｂ）は破棄後に分断された空き領域を示す。
【符号の説明】
１    キャッシュメモリ
２    キャッシュページ
３    セグメント
【図１】
0003751814.tif 000002
【図２】
0003751814.tif 000003
【図３】
0003751814.tif 000004