(57)【要約】【課題】管理情報L2UNITの増大を防止して二次キャッシュ２０を大容量とすること。【解決手段】データセクタ２２のデータL2DATA及び管理情報L2UNITを有する二次キャッシュ２０と、データDATAのアドレスから算出される要約値DGST及び二次の管理情報L2UNITを有する一次キャッシュ１８とを備え、コントローラ１６が、データDATAの読み出しに際して当該データDATAの要約値DGSTを計算する要約値計算部３０と、要約値DGSTから一次キャッシュ１８中の管理情報L2UNITを探索する管理情報探索部３２と、管理情報L2UNITから二次キャッシュ２０のデータセクタ２２を特定して当該データL2DATAを読み出す読出制御部３４とを備えた。【選択図】図１
2013222434.tif 000002
【特許請求の範囲】
【請求項１】
データを格納するディスク部の一次キャッシュを有するメモリと、前記一次キャッシュに対する二次キャッシュを有し前記メモリより大容量で低速な記憶媒体と、前記一次キャッシュ及び前記二次キャッシュを使用した前記データの転送を制御するコントローラとを備え、且つ前記二次キャッシュが、予め定められた容量のセクタを単位として前記データを記憶するデータセクタと、複数の前記データセクタのアドレスを含む管理情報を記憶する管理情報セクタとを備えると共に、
前記一次キャッシュには、前記データのアドレスから算出される要約値と、当該データをキャッシュした前記二次キャッシュ中の前記データセクタのアドレスを含む前記管理情報とが接続させて記憶されており、
前記コントローラが、
前記データを読み出す際に当該データの要約値を計算する要約値計算部と、前記要約値から前記一次キャッシュ中の前記管理情報を探索する管理情報探索部と、前記管理情報から前記二次キャッシュの前記データセクタを特定して当該データを読み出す読出制御部と、を備えていることを特徴としたキャッシュ制御装置。
【請求項２】
前記コントローラが、
前記二次キャッシュの管理情報をキャッシュ制御の対象として前記一次キャッシュにキャッシュさせる管理情報キャッシュ制御部を備えたことを特徴とする請求項１記載のキャッシュ制御装置。
【請求項３】
前記管理情報キャッシュ制御部が、
前記データの読み出しに際して前記管理情報が前記一次キャッシュにキャッシュされていない際には当該管理情報を前記二次キャッシュから読み出すと共に当該管理情報を前記要約値に接続させて前記一次キャッシュに格納する格納制御機能と、
前記一次キャッシュの容量に応じて古い前記管理情報を新しい管理情報に入れ替える入替制御機能と、を備えたことを特徴とする請求項２記載のキャッシュ制御装置。
【請求項４】
前記要約値が前記データのアドレスのハッシュ値HASHであり、
前記管理情報キャッシュ制御部が、
前記複数のデータ及び管理情報の複数組を１つのバンクBANKとして当該バンクBANK単位に当該管理情報の前記一次キャッシュへとキャッシュを制御するバンク管理機能と、
前記ハッシュ値HASHが競合する際にバンクBANKのバンク番号を使用して前記バンクBANK毎に当該ハッシュ値HASHと対応させるハッシュ値管理機能とを備えたことを特徴とする請求項３記載のキャッシュ制御装置。
【請求項５】
前記管理情報は複数の前記データセクタのそれぞれ対応したページを有しており、
当該ページは、前記データのアドレスとなる論理ディスク番号及び論理セクタ番号と、当該キャッシュ対象の入替制御で参照される世代とを有し、ダーティー又はクリーンを特定する属性範囲情報を有さない、ことを特徴とする請求項１，２，３又は４記載のキャッシュ制御装置。
【請求項６】
前記二次キャッシュが、前記バンク毎の複数ウェイのセクタ群を有しており、
管理情報キャッシュ制御部が、前記複数ウェイのセクタ群を対象としたセットアソシアティブ制御をする複数ウェイ制御機能を備えたことを特徴とする請求項５記載のキャッシュ制御装置。
【請求項７】
前記コントローラが、前記二次キャッシュの容量が前記バンクBANK単位に動的に追加された際に、前記ハッシュ値HASHの状態が前記容量の追加前の旧バンク数、移行期又は新バンク数のいずれかであるかに応じて読み出し対象の前記バンクBANKを選別する動的追加制御部を備えた、ことを特徴とする請求項６記載のキャッシュ制御装置。
【請求項８】
前記動的追加制御部が、全てのハッシュ値HASHが新バンク数に切り替わるまで前記管理情報のキャッシュ制御をすることで前記バンク数の移行を制御する移行制御機能を備えた、ことを特徴とする請求項７記載のキャッシュ制御装置。
【請求項９】
データを格納するディスク部の一次キャッシュを有するメモリと、前記一次キャッシュに対する二次キャッシュを有し前記メモリより大容量で低速な記憶媒体と、前記一次キャッシュ及び前記二次キャッシュを使用した前記データの転送を制御するコントローラとを備えると共に、前記二次キャッシュが、予め定められた容量のセクタを単位として前記データを記憶するデータセクタと複数の前記データセクタのアドレスを含む管理情報を記憶する管理情報セクタとを備え、前記一次キャッシュが、前記データのアドレスから算出される要約値と当該データをキャッシュした前記二次キャッシュ中の前記データセクタのアドレスを含む前記管理情報とを接続させて記憶したキャッシュ制御装置にあって、当該キャッシュ制御装置を使用して前記キャッシュを制御するキャッシュ制御方法であって、
前記データを前記データセクタから読み出す際しては、まず当該データの要約値を前記コントローラの要約値計算部が計算し、
前記計算された要約値から前記一次キャッシュ中の前記管理情報を前記コントローラの管理情報探索部が探索し、
この探索されてなる前記管理情報から前記コントローラの読出制御部が、前記二次キャッシュの前記データセクタを特定して当該データを読み出すようにしたことを特徴とするキャッシュ制御方法。
【請求項１０】
データを格納するディスク部の一次キャッシュを有するメモリと、前記一次キャッシュに対する二次キャッシュを有し前記メモリより大容量で低速な記憶媒体と、前記一次キャッシュ及び前記二次キャッシュを使用した前記データの転送を制御するコントローラとを備えると共に、前記二次キャッシュが、予め定められた容量のセクタを単位として前記データを記憶するデータセクタと複数の前記データセクタのアドレスを含む管理情報を記憶する管理情報セクタとを備え、前記一次キャッシュが、前記データのアドレスから算出される要約値と当該データをキャッシュした前記二次キャッシュ中の前記データセクタのアドレスを含む前記管理情報とを接続させて記憶したキャッシュ制御装置にあって、当該キャッシュ制御装置にあって、
前記データを前記データセクタから読み出す際し当該データの要約値を計算する要約値計算手順、
前記計算された要約値から前記一次キャッシュ中の前記管理情報を探索する管理情報探索手順、
および前記管理情報から前記二次キャッシュの前記データセクタを特定して前記データを読み出す読出制御手順、
を設け、これらの各手順を前記コントローラに実現させるようにしたことを特徴とするキャッシュ制御用プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、キャッシュ制御装置、キャッシュ制御方法、及びそのプログラムに関し、特に、容量の大きい二次キャッシュを使用したキャッシュ制御装置、キャッシュ制御方法とプログラムに関する。
【背景技術】
【０００２】
コンピュータシステムの外部記憶装置としてハードディスクドライブ（ＨＤＤ）が使用されており、複数台のＨＤＤを組み合わせて高速化や二重化などのサービスを提供するディスクアレイ装置も使用されている。
【０００３】
ディスク装置やディスクアレイ装置では、これら外部記憶装置に搭載されるメモリの一部をディスクキャッシュとして利用すると、Ｉ／Ｏ（input ／output）の性能を向上させることができる。そして、このディスクキャッシュ容量を増加させて利用度を高めると、ディスクアレイ装置等の性能を向上させることができる。
【０００４】
しかし、ディスクアレイ装置等に搭載されるメモリはディスクアレイ装置等で管理するＨＤＤの総容量と比較して少量であり、メモリ増設を行う場合にも物理的に搭載できるポートの制限などもあり、高容量化には限界がある。
【０００５】
近年、ディスクキャッシュ容量を増加させる手段として、メモリよりも安価で大容量かつＨＤＤよりも高速な記憶媒体（例えば、ＳＳＤ：solid state disk）などを利用したＩ／Ｏ制御による性能向上方法に注目が集まっている。
【０００６】
また、ＳＳＤは一般に4KB 単位でデータ管理され、256KB 単位で消去（Erase ）処理が必要になるなどの特性を有する。ＳＳＤをディスクキャッシュに使用するために、これらの特性に適したキャッシュ制御方法が検討されている。
【０００７】
キャッシュ制御に関連して、次のような技術文献１乃至４が知られている。
特許文献１には、複数のキャッシュラインに対してＮ個のタグを設けたＮウェイセットアソシアティブ制御をする手法（段落〔0003〕〜〔0007〕）が開示されている。又、二次キャッシュのデータの置き換え時に一次キャッシュに対する無効化処理を省略することで、キャッシュの制御動作を簡略化して性能向上を図る手法（段落〔0018〕〔0010〕のノン・インクルーシブ）が開示されている。
【０００８】
特許文献２には、キャッシュラインの状態に応じてプリフェッチ（予測読み出し）を効果的に実行することを目的として、主記憶から共有キャッシュ（二次キャッシュ）にデータを先読みさせておく手法（段落〔0024〕）が開示されている。また、二次キャッシュメモリの記憶の状態とプリフェッチ要求とを管理する二次キャッシュ管理テーブルを二次キャッシュではなくプリフェッチ制御部に格納しておく構成例（段落〔0046〕〔0047〕図１）が開示されている。
【０００９】
特許文献３には、ＳＳＤなどのフラッシュメモリを大容量のキャッシュとして使用する際にアドレス変換等の管理テーブルの容量をできるだけ小容量化する（段落〔0010〕）ために、タグをクラスタ単位で管理する手法（段落〔0070〕図１１）が開示されている。
【００１０】
特許文献４には、二次キャッシュ等のデータがＨＤＤに書き込まれていなくともクラッシュ後にＨＤＤに復旧することを目的として、ＳＳＤ等の二次キャッシュに格納されている一方、ＨＤＤに格納されていないデータを修復ツールにて復帰させる手法（図５、段落００４３から００４５等）が開示されている。又、この例ではメインメモリに二次キャッシュの管理情報を格納する構成例（段落〔0023〕〔0035〕図１）が開示されている。
【先行技術文献】
【特許文献】
【００１１】
【特許文献１】特開2007-58349号公報
【特許文献２】特開2008-059057 号公報
【特許文献３】特開2009-211226 号公報
【特許文献４】特開2012-14435号公報
【発明の概要】
【発明が解決しようとする課題】
【００１２】
しかしながら、上記各文献には、大容量（増設なども含む）に伴う二次キャッシュの管理情報の増大を防ぎ大容量本来の性能を発揮させるための技術的な手法は、何ら開示されていない。
即ち、上記特許文献１から４及びこれらを組み合わせた技術では、大容量の二次キャッシュを高速に管理することができない、という不都合があった。
【００１３】
特に、ＳＳＤなどＨＤＤより高速ではあるが、メモリよりは低速である記憶媒体を二次キャッシュにする際には、アクセス頻度が性能を左右するため、上記先行する関連技術では、性能を確保しつつ容量を増大させていくことが困難である。
【００１４】
（発明の目的）
本発明の目的は、メモリより低速でディスク部（ＨＤＤ等）より高速な中程度の速度を有する記憶媒体を二次キャッシュとして使用する際に、その管理情報の増大を抑制することで、二次キャッシュを大容量とすることができるキャッシュ制御装置、キャッシュ制御方法とプログラムを提供することにある。
【課題を解決するための手段】
【００１５】
上記目的を達成するため、本発明に係るキャッシュ制御装置は、データを格納するディスク部の一次キャッシュを有するメモリと、一次キャッシュに対する二次キャッシュを有しメモリより大容量で低速な記憶媒体と、一次キャッシュ及び二次キャッシュを使用したデータの転送を制御するコントローラとを備えている。
二次キャッシュは、予め定められた容量のセクタを単位としてデータを記憶するデータセクタと、複数のデータセクタのアドレスを含む管理情報を記憶する管理情報セクタとを備えている。そして、一次キャッシュが、データのアドレスから算出される要約値と、当該データをキャッシュした二次キャッシュ中のデータセクタのアドレスを含む管理情報とを接続させて記憶している。
更に、コントローラが、データを読み出す際に当該データの要約値を計算する要約値計算部と、要約値から一次キャッシュ中の管理情報を探索する管理情報探索部と、管理情報から二次キャッシュのデータセクタを特定して当該データを読み出す読出制御部とを備えたことを特徴としている。
【００１６】
上記目的を達成するため、本発明に係るキャッシュ制御方法は、上記キャッシュ制御装置を使用してキャッシュを制御するキャッシュ制御方法であって、まず、データを読み出す際に当該データの要約値をコントローラの要約値計算部が計算する。次に、要約値から一次キャッシュ中の管理情報を管理情報探索部が探索して読出制御部に与える。そして、読出制御部が、管理情報から二次キャッシュのデータセクタを特定して当該データを読み出す、ことを特徴としている。
【００１７】
上記目的を達成するため、本発明に係るキャッシュ制御用プログラムは、上記キャッシュ制御装置のコントローラに、データを読み出す際に当該データの要約値を計算する要約値計算手順と、要約値から一次キャッシュ中の管理情報を探索する管理情報探索手順と、管理情報から二次キャッシュのデータセクタを特定して当該データを読み出す読出制御手順とを実行させる、ことを特徴としている。
【発明の効果】
【００１８】
本発明は以上のように構成され機能するので、これによると、データを読み出す際に当該データの要約値を計算し、要約値から一次キャッシュ中の管理情報を探索するため、二次キャッシュにアクセスせずに二次キャッシュに格納されたデータの管理情報の有無及び内容にアクセスし当該データを読み出すようにしたので、要約値と管理情報のみの簡易な情報で二次キャッシュのデータを管理することができ、従って、二次キャッシュを大容量化しても管理情報の増大を防止することができ、これによりキャッシュの性能を向上させることができる、という優れたキャッシュ制御装置、キャッシュ制御方法とプログラムを提供することができる。
【図面の簡単な説明】
【００１９】
【図１】本発明の実施形態１の構成例を示すブロック図である。
【図２】要約値と管理情報との関係例を示す説明図である。
【図３】管理情報を一次キャッシュにキャッシュする情報処理の一例を示す説明図である。
【図４】二次キャッシュのデータを管理番号とバンク番号とで特定する情報処理の一例を示す説明図である。
【図５】管理情報のデータ構造の一例を示す説明図である。
【図６】二次キャッシュを４ウェイセットアソシアティブ方式とした例を示す説明図である。
【図７】本実施例１でのデータの取り出し処理の一例を示すフローチャートである。
【図８】本発明の実施形態２の構成例を示すブロック図である。
【図９】二次キャッシュを動的増設する例を示す説明図である。
【図１０】本実施形態２でディスク及びキャッシュを二重化した場合の他の例を示す説明図である。
【発明を実施するための形態】
【００２０】
以下、本発明のキャッシュ制御装置にかかる実施形態１を図１乃至図７に基づいて説明する。最初に全体的な構成の概要を説明し、その後に具体的な実施形態を説明する。
（全体的な構成）
まず、本実施形態１によるキャッシュ制御装置１０１は、多くの場合、ディスクアレイ装置１０などの外部記憶装置（ディスク部１０）に使用される。
この場合、ディスクアレイ装置１０は、コンピュータ等の上位装置５０から送信されるデータDATAを記憶し、上位装置５０からの要求に応じたデータDATAを当該上位装置５０に送信する。ディスクアレイ装置１０は、ハードディスクドライブ（ＨＤＤ）にデータDATAを格納する。
【００２１】
ここで、ＨＤＤへのＩ/ Ｏは、上位装置５０の情報処理速度と比較して低速であるため、より高速にデータDATAの転送が可能なメモリ１２をキャッシュとして使用すると、上位装置５０のＩ/ Ｏ待機時間を低減させることができる。
【００２２】
キャッシュ制御装置１０１は、データDATAを格納するディスク部１０の一次キャッシュ１８を有するメモリ１２と、前記一次キャッシュ１８に対する二次キャッシュ２０を有し前記メモリ１２より大容量で低速な記憶媒体１４と、前記一次キャッシュ１８及び前記二次キャッシュ２０を使用した前記データDATAの転送を制御するコントローラ１６とを備えている。又、二次キャッシュ２０は、予め定められた容量のセクタを単位として前記データDATAを記憶するデータセクタ２２と、複数の前記データセクタ２２のアドレスを含む管理情報L2UNITを記憶する管理情報セクタ２４とを備えてる。
【００２３】
そして、一次キャッシュ１８は、前記データDATAのアドレスから算出される要約値DGST（Hash情報）と、当該データDATAをキャッシュした前記二次キャッシュ２０中の前記データセクタ２２のアドレスを含む前記管理情報L2UNITとを接続させた状態で、これを記憶している。
又、コントローラ１６は、前記データDATAを読み出す際に当該データDATAの要約値DGSTを計算する要約値計算部３０と、前記要約値DGSTから前記一次キャッシュ１８中の前記管理情報L2UNITを探索する管理情報探索部３２と、前記管理情報L2UNITから前記二次キャッシュ２０の前記データセクタ２２を特定して当該データL2DATAを読み出す読出制御部３４とを備えている。
【００２４】
これにより、二次キャッシュ２０の管理情報L2UNITを一次キャッシュ１８に記録するため、二次キャッシュ２０が大容量であっても、管理情報L2UNITを一次キャッシュ１８にて高速に探索することができる。従って、大容量の二次キャッシュ２０を高速に管理することができる。
【００２５】
又、前述したコントローラ１６は、前記二次キャッシュ２０の管理情報L2UNITをキャッシュ制御の対象として前記一次キャッシュ１８にキャッシュさせる管理情報キャッシュ制御部３６を備えている。これにより、二次キャッシュ２０へのアクセス頻度を低減させることができる。
【００２６】
更に、管理情報キャッシュ制御部３６は、前記データDATAの読み出しに際して前記管理情報L2UNITが前記一次キャッシュ１８にキャッシュされていない際には当該管理情報L2UNITを前記二次キャッシュ２０から読み出すと共に当該管理情報L2UNITを前記要約値DGSTに接続させて前記一次キャッシュ１８に格納する格納制御機能３６ａと、前記一次キャッシュ１８の容量に応じて古い前記管理情報L2UNITを新しい管理情報L2UNITに入れ替える入替制御機能３６ｂとを備えている。
これにより、データDATAのアドレスから要約値DGSTを算出し、二次キャッシュ２０の管理情報L2UNITと接続するため、転送対象のデータDATAのアドレスから二次キャッシュ２０のデータDATAの有無を直接的に計算することができる。
【００２７】
又、上記要約値DGSTは前記データDATAのアドレスのハッシュ値HASHであり、管理情報キャッシュ制御部３６は、前述した複数のデータL2DATA及び管理情報L2UNITの複数組を１つのバンクBANKとして当該バンクBANK単位に当該管理情報L2UNITの前記一次キャッシュ１８へとキャッシュを制御するバンク管理機能３６ｃと、前記ハッシュ値HASHが競合する際にバンクBANKのバンク番号を使用して前記バンクBANK毎に当該ハッシュ値HASHと対応させるハッシュ値管理機能３６ｄとを備えている。
【００２８】
これにより、ハッシュ値HASHとバンク番号との組み合わせで管理情報L2UNITへのポインタの競合を回避することで、二次キャッシュ２０を大容量化しても、データDATAのアドレスから二次キャッシュ２０のヒット・ミスヒットを判定することができる。
【００２９】
更に、前述した管理情報L2UNITは、複数の前記データセクタ２２のそれぞれ対応したページL2PAGEを備えており、当該ページL2PAGEは、前記データDATAのアドレスとなる論理ディスク番号LDN 及び論理セクタ番号LSN と、当該キャッシュ対象の入替制御で参照される世代GEN とを有し、当該ダーティー又はクリーンを特定する属性範囲情報を有さない構成となっている。このため、属性範囲情報を有さないことで、管理情報L2UNITへのアクセス数が低減される
【００３０】
又、前述した二次キャッシュ２０は前記バンク毎の複数ウェイのセクタ群を有し、
管理情報キャッシュ制御部３６は、前記複数ウェイのセクタ群を対象としたセットアソシアティブ制御をする複数ウェイ制御機能３６ｅを備えている。
これにより、複数のウェイを対象としたセットアソシアティブ制御をする。又、スラッシング（ページL2PAGE置き換えの頻発）が生じる確率を低下させることができる。
【００３１】
以下、これを更に詳述する。
（一次キャッシュ１８と管理情報L2UNIT）
本実施形態１によるキャッシュ制御装置１０１は、高速なメモリ１２による一次キャッシュ１８と、メモリ１２により低速であるが大容量な記憶媒体１４による二次キャッシュ２０とを使用して、高性能なＩ／Ｏを上位装置５０に提供する。
【００３２】
図１に示すように、キャッシュ制御装置１０１は、ディスクアレイ装置１０に接続されている。ディスクアレイ装置１０（又は単体のディスク装置１０）は、ユーザボリューム２６にデータDATAを格納する。このデータDATAがキャッシュ制御の対象となる。
キャッシュ制御装置１０１は、前述したように、メモリ１２と、記憶媒体１４と、コントローラ１６と、一次キャッシュ１８と、二次キャッシュ２０とを有する。
【００３３】
メモリ１２は、データDATAを格納するディスクアレイ装置１０の一次キャッシュ１８を有する。このメモリ１２はＲＡＭ等の半導体メモリ１２である。
記憶媒体１４は、一次キャッシュ１８に対する二次キャッシュ２０を有する。そして、メモリ１２より大容量であるがメモリ１２よりも低速である。このような記憶媒体１４としては、例えばＳＳＤがある。
コントローラ１６は、一次キャッシュ１８及び二次キャッシュ２０を使用したデータDATAの転送を制御する。
【００３４】
二次キャッシュ２０は、予め定められた容量のセクタを単位としてデータDATAを記憶するデータセクタ２２と、複数のデータセクタ２２のアドレスを含む管理情報L2UNITを記憶する管理情報セクタ２４とを備えている。
そして、一次キャッシュ１８が、データDATAのアドレスから算出される要約値DGSTと、当該データDATAをキャッシュした二次キャッシュ２０中のデータセクタ２２のアドレスを含む管理情報L2UNITとを接続させて記憶する。
【００３５】
又、本実施形態１では、コントローラ１６が、要約値計算部３０と、管理情報探索部３２と、読出制御部３４とを備える。
この内、要約値計算部３０は、データDATAを読み出す際に当該データDATAの要約値DGSTを計算する。要約値DGSTは、データDATAのアドレスのダイジェストであり、この例では、ダイジェストからアドレスを復元できなくとも、異なるデータDATAのアドレスについて異なるダイジェストを計算できれば良い。
【００３６】
従って、要約値DGSTは、アドレスを一方向関数で計算した値とすると良く、例えばハッシュ値HASHを使用することができる。
データDATAのアドレスは例えばユーザボリューム２６の論理ディスク番号LDN 及び論理セクタ番号LSN 等の番号である。
【００３７】
管理情報探索部３２は、要約値DGSTから一次キャッシュ１８中の管理情報L2UNITを探索する。二次キャッシュ２０に格納されたデータL2DATAのユーザボリューム２６でのアドレスは、管理情報L2UNITに記録されており、この管理情報L2UNITは、一次キャッシュ１８に格納されている。このため、管理情報探索部３２は、二次キャッシュ２０にアクセスしなくとも、二次キャッシュ２０の管理情報L2UNITに高速にアクセスすることができる。
【００３８】
読出制御部３４は、管理情報L2UNITから二次キャッシュ２０のデータセクタ２２を特定して当該データL2DATAを読み出す。一次キャッシュ１８に管理情報L2UNITが格納されていれば、この管理情報L2UNITを参照して二次キャッシュ２０からデータL2DATAを読み出す。一次キャッシュ１８に管理情報L2UNITが格納されていなければ、二次キャッシュ２０から管理情報L2UNITを読み出してこの管理情報L2UNITを参照して二次キャッシュ２０からデータL2DATAを読み出す。
読出制御部３４は、一次キャッシュ１８及び二次キャッシュ２０に管理情報L2UNITが格納されていない際には、ユーザボリューム２６からデータDATAを読み出す。
【００３９】
本実施形態１は、要約値DGSTと管理情報L2UNITのみの簡易な情報で二次キャッシュ２０のデータDATAを管理するため、二次キャッシュ２０を大容量化しても管理情報L2UNITの増大を防止することができる。さらに、二次キャッシュ２０の管理情報L2UNITを一次キャッシュ１８に記録することで、二次キャッシュ２０が大容量であっても、管理情報L2UNITについては一次キャッシュ１８にて高速に探索することができる。
【００４０】
このような構成を採用することで、本実施形態１によるキャッシュ制御装置１０１は、管理情報L2UNITの増大を防止しつつ、管理情報L2UNITへのアクセスを高速とすることができる。従って、二次キャッシュ２０の容量が大容量となっても、容量に応じたキャッシュの性能を確保することができる。キャッシュ制御方法及びキャッシュ制御用プログラムについても同様である。
以下、これを更に詳細に説明する。
【００４１】
（管理情報L2UNITをキャッシュ制御）
本実施形態１では、好ましくは、前述したコントローラ１６が、管理情報キャッシュ制御部３６を備える。管理情報キャッシュ制御部３６は、二次キャッシュ２０の管理情報L2UNITをキャッシュ制御の対象として一次キャッシュ１８にキャッシュさせる。
管理情報L2UNITをキャッシュ制御の対象として、二次キャッシュ２０の全ての管理情報L2UNITではなく、上位装置５０からのアクセス経過に応じたデータDATAについての管理情報L2UNITを一次キャッシュ１８に格納しておく。
これにより、二次キャッシュ２０が大容量となってもメモリ１２上の管理情報L2UNITを小容量とし、管理情報L2UNITへ高速にアクセスする確率を高め、同時に、二次キャッシュ２０へのアクセス頻度を低減することができる。
【００４２】
又、図２に示すように、メモリ１２の一次キャッシュ１８は、二次キャッシュ２０の全ての管理情報L2UNITの内の一部の管理情報L2UNITをキャッシングする領域を有する。すなわち、一次キャッシュ１８は、一部の管理情報L2UNITを記憶する。また、メモリ１２に、データDATAのアドレスから管理情報L2UNITを検索するための要約値DGST（例えば、Hashリスト情報）を用意する。
【００４３】
そして、ＳＳＤ等の記憶媒体１４上に管理情報L2UNITとデータL2DATAをマッピングし、これを二次キャッシュ２０とする。二次キャッシュ２０のデータDATAはセクタ単位で管理する。二次キャッシュ２０は、データDATAを格納するデータセクタ２２と、管理情報L2UNITを格納する管理情報セクタ２４とを有する。
【００４４】
要約値計算部３０は、データDATAのアドレスから要約値DGSTを計算し、要約値DGSTの１つを特定する。特定した要約値DGSTは管理情報L2UNITと接続されている。この管理情報L2UNITの特定により、アドレスから二次キャッシュ２０のデータL2DATAにアクセスすることができる。
このように、データDATAのアドレスから要約値DGSTを算出し、二次キャッシュ２０の管理情報L2UNITと接続することで、転送対象のデータDATAのアドレスから二次キャッシュ２０のデータDATAの有無を判定することができる。
【００４５】
図３に示す例では、管理情報L2UNIT自体をキャッシュ制御の対象として、管理情報L2UNITを一次キャッシュ１８にキャッシング制御する。すなわち、データアクセスの局所性により、二次キャッシュ２０に格納されたデータDATAのうちのさらに一部のデータが読み出される可能性が高いため、管理情報キャッシュ制御部３６は、この可能性の高いデータDATAの管理情報L2UNITを一次キャッシュ１８にキャッシュするように制御する。
【００４６】
この例では、管理情報キャッシュ制御部３６は、格納制御機能３６ａと、入替制御機能３６ｂとを備える。
格納制御機能３６ａは、データDATAの読み出しに際して、管理情報L2UNITが一次キャッシュ１８にキャッシュされていない際には、当該管理情報L2UNITを二次キャッシュ２０から読み出すと共に、当該管理情報L2UNITを要約値DGSTに接続させて一次キャッシュ１８に格納する。これにより、以後、同一のデータDATAへのアクセスがされた際には、管理情報探索部３２が一次キャッシュ１８にて管理情報L2UNITを探索し、二次キャッシュ２０に格納されたデータDATAを高速に転送することができる。
【００４７】
また、入替制御機能３６ｂは、一次キャッシュ１８の容量に応じて古い管理情報L2UNITを新しい管理情報L2UNITに入れ替える（入替処理）。入替制御機能３６ｂは、定期的にこの入替処理を実行しても良いし、格納制御機能３６ａが管理情報L2UNITを一次キャッシュ１８に格納しようとした際に、空き領域が発見できない時点で当該入替処理を実行しても良い。管理情報L2UNITの新旧は、管理情報L2UNITの世代や、最終アクセス時刻などの情報で管理することができる。
【００４８】
管理情報キャッシュ制御部３６が、格納制御機能３６ａと入替制御機能３６ｂとを備え、二次キャッシュ２０の管理情報L2UNITを一次キャッシュ１８にキャッシュし、管理情報L2UNITの新旧により管理情報L2UNITを入れ替える制御をするため、キャッシュ制御について大容量の二次キャッシュ２０へのアクセスを一次キャッシュ１８へのアクセスと同程度の処理時間で管理することができる。
【００４９】
本実施形態１では、更に、図３及び図４に示すように、バンクBANKとハッシュ値HASHとを使用することで、より大容量の二次キャッシュ２０を高性能で使用することができる。この例では、要約値DGSTとしてハッシュ値HASHを採用する。管理情報キャッシュ制御部３６は、バンク管理機能３６ｃと、ハッシュ値管理機能３６ｄとを備える。ハッシュ値HASHは、データDATAのアドレスから求めるハッシュ値HASHである。
【００５０】
バンク管理機能３６ｃは、複数のデータL2DATA及び管理情報L2UNITの複数組を１つのバンクBANK（図３，図４）として当該バンクBANK単位に当該管理情報L2UNITの一次キャッシュ１８へとキャッシュを制御する。例えば、管理情報L2UNITの世代GEN をバンク単位で管理し、管理情報L2UNITの入替処理をバンク単位とする。バンク単位でキャッシュ制御することで、データDATAの記憶位置を分散させ、その結果、ＳＳＤ等の記憶媒体１４の消去回数も削減することができる。
【００５１】
また、ハッシュ値管理機能３６ｄは、ハッシュ値HASHが競合する際にバンクBANKのバンク番号を使用してバンクBANK毎に当該ハッシュ値HASHを対応させる。これにより、ハッシュ値HASHの競合を解消することができる。
【００５２】
図４に示すように、本実施形態１では、二次キャッシュ２０のデータDATAを管理番号とバンク番号とで次のように特定する。
（１）．LDN/LSN 番号から、Hash番号を算出し、このハッシュ値HASHと接続しているバンクBANK中、当該LDN/LSN 番号を有するBANK番号を探索する。
（２）．ハッシュ値HASHにリンクしてあるメモリ１２の一次キャッシュ１８上の管理情報L2UNIT#rを検索し、LDN/LSN 番号に該当するデータDATAがリンクされているか否かをチェックする。ここでは、管理番号L2UNIT#rと、BANK#0とを特定する。
（３）．リンクされていればその情報を元に、リンクされていなければ読み出す先の情報から読みに行く。
【００５３】
このように、ハッシュ値HASHとバンク番号との組み合わせにより、管理情報L2UNITへのポインタの競合を回避することができる。そして、二次キャッシュ２０を大容量化してもデータDATAのアドレスから二次キャッシュ２０のヒット・ミスヒットの判定を可能とする。
【００５４】
図５に、少ない管理情報L2UNITで大きい容量の二次キャッシュ２０を管理するのに適した管理情報L2UNITのデータ構造の一例を示す。管理情報L2UNIT( 例えば512byte)は、複数のページL2PAGE( 例えば16byte) を有する。ページL2PAGEは、以下の情報を扱い複数のデータL2DATAのデータセクタ２２をまとめた管理用の情報として定義する。管理情報L2UNITは、これらページL2PAGE0 から31( 計32) の集合体として定義する。
【００５５】
論理ディスク(LDN) ：  ユーザボリューム２６の論理ディスク番号LDN
状態（State ）：  状態値( なしNull/ ダーティーDirty/  クリーンClean)
世代( Ｇen) ：  LRU 制御用の世代情報
予約(Rsv) ：  予約Reserved
論理セクタ(LSN) ：  ユーザボリューム２６の論理セクタ番号LSN （データDATAの先頭セクタアドレス）
【００５６】
例えば：データL2DATAの2048セクタを管理情報L2UNITの1 セクタで管理すると、ページL2PAGEは64セクタ分の情報として扱うことになる。
なお、実施例によっては、個々のページL2PAGEの状態（State ）は使用せず、管理情報L2UNIT又はバンクBANK単位でダーティー／クリーン等の状態を管理する。個々のページL2PAGE単位ではこの状態（State ，属性範囲情報）を有さない構成とすると、管理情報L2UNITへのアクセス数を低減することができる。
【００５７】
このように、管理情報L2UNITは、複数のデータセクタ２２のそれぞれ対応したページL2PAGEを有する。このページL2PAGEは、データDATAのアドレスとなる論理ディスク番号LDN
及び論理セクタ番号LSN と、当該キャッシュ対象の入替制御で参照される世代GEN とを有する。状態(state，属性範囲情報) については、好ましい実施例では、データDATA項目に含めない。
【００５８】
図６に示すように、二次キャッシュ２０を４ウェイ・セットアソシアティブ方式とすることができる。この例では、二次キャッシュ２０が、バンクBANK毎の複数ウェイのセクタ群を有する。そして、管理情報キャッシュ制御部３６の複数ウェイ制御機能３６ｅが、複数ウェイのセクタ群を対象としたセットアソシアティブ制御をする。本実施例のセットアソシアティブ制御では、ハッシュ値HASHの競合を回避するために、次のような分散化をすると良い。
【００５９】
・第一分散化例
ユーザボリューム２６のLDN/LSN からハッシュ計算を行うため、LDN/LSN の組み合わせ次第で、異なるアドレスのハッシュ値HASHが同一のHash番号となる。この同一Hash番号となるデータDATA群は一般のプロセッサで言うところのキャッシュラインに相当する。本実施例１では、同一Hash番号となった場合にさらにBANK番号を加味して二次キャッシュ２０内に分散配置(n-way) することでハッシュ競合状態を回避させる。
【００６０】
・第二分散化例
それでも同一Hash/BANK/SubBANK 番号となるケースが存在することを考慮した場合には、該当LDN/LSN のデータDATAを置けるL2UNITを複数区画分(n-way) 割り付けるようにして制御すると良い。
【００６１】
図６に示すように、一次キャッシュ１８の個々のバンクBANKにて、4-way 内はLRU 制御で該当位置を入替ると良い。例えば、図６に示す例では管理情報L2UNIT#sについてはウェイ＝２（way#2 ）の管理情報L2UNITのみ一次キャッシュ１８に格納されている。
【００６２】
BANK/SubBANKが０だったとすると、論理セクタ番号LSN = 0 となる。該当する管理情報L2UNIT#sの位置はPage内オフセット（Offset）換算した場合には5 セクタ目となる。
また、一次キャッシュ１８内の管理情報L2UNITのキャッシュ区画は4 セクタ分で常に管理する。
【００６３】
このように、バンクBANKという大きめの容量を単位とし、複数のウェイを対象としたセットアソシアティブ制御をすることで、スラッシング（ページL2PAGEや管理情報L2UNITの置き換え）の発生確率を下げることができる。
【００６４】
（データ読出し動作）
次に、本実施形態１のキャッシュ制御装置１０１によるデータDATAの読み出し（取り出し）処理の一例を、図７のフローチャートを参照して説明する。ここで、これらの各動作工程は、前述したコントローラ１６が実行する。
【００６５】
即ち、まず、前記データDATAを読み出す際に当該データDATAの要約値DGSTを前記コントローラ１６の要約値計算部３０が計算する。
次に、前記要約値DGSTから前記一次キャッシュ１８中の前記管理情報L2UNITを管理情報探索部３２が探索する。
そして、この探索した結果を、前記読出制御部３４が、前記管理情報L2UNITから前記二次キャッシュ２０の前記データセクタ２２を特定して当該データL2DATAを読み出す。
【００６６】
以下、これを更に詳述する。
まず、ＳＳＤ等の記憶媒体１４に管理情報L2UNIT及びデータL2DATAを配置する。そして、上位装置５０（ホスト）からあるアドレス（LDN/LSN ）に対するI/O が発行され、一次キャッシュ１８にヒットしない場合に、図７に示す処理を行う。
【００６７】
まず、アドレス（LDN/LSN ）からハッシュ計算し（図７：ステップＳ１）、Hash番号とBANK番号を特定する（図７：ステップＳ２）。次に、メモリ１２上のHash番号にリンクされている管理情報L2UNITを検索し（図７：ステップＳ３）、メモリ１２上に当該管理情報L2UNITがキャッシングされているかどうかをチェックする（図７：ステップＳ４）。
このステップ４にて、キャッシングされていなければ図７のステップＳ５へ、キャッシングされておれば図７のステップＳ７に処理を移す。
【００６８】
そして、管理情報L2UNITを、二次キャッシュ２０である記憶媒体１４から読み出し（図７：ステップＳ５）、メモリ１２上に格納しHash番号に接続する（図７：ステップＳ６）。この管理情報L2UNITとHash番号との接続により、メモリ１２上にてアドレス（LDN/LSN
）から管理情報L2UNITを特定することができる。
続いて、管理情報L2UNITを確認し（図７：ステップＳ７）、LDN/LSN に該当するデータDATAがあるかどうかを確認する（図７：ステップＳ８）。
【００６９】
このステップＳ８にて、該当データDATAが有る場合は、ステップＳ９（二次キャッシュ２０ヒット）へ、該当データDATAが無い場合はステップＳ１０（二次キャッシュ２０ミス）へ処理を移行する。
【００７０】
そして、ステップＳ９（二次キャッシュ２０ヒット）では、二次キャッシュ２０にデータDATAが有ると判断して、管理情報L2UNITに対応するデータL2DATAの中から情報を取り出す（図７：ステップＳ９）。そして、取り出されたデータDATAを利用する（図７：ステップＳ１１）。
【００７１】
一方、ステップＳ１０[ 二次キャッシュ２０ミス] では、二次キャッシュ２０にデータDATAが無いと判断し、ディスクアレイ装置１０（ＨＤＤ）のユーザボリューム２６から情報を取り出す（図７：ステップＳ１０）。そして、取り出されたデータDATAを利用する（図７：ステップＳ１１）。
【００７２】
上述したように、本実施形態１によると、次の効果を奏する。
（１）．二次キャッシュ２０としてＳＳＤ等の記憶媒体１４を利用することでＨＤＤからの読み出しを行わずに高速な記憶媒体１４からの読み書きが可能となる。
（２）．一部の管理情報L2UNITをメモリ１２上にキャッシングすることで記憶媒体１４へのアクセスを削減することができる。
（３）．管理情報L2UNITとデータL2DATAの容量比に自由度があり大容量の二次キャッシュ２０であっても管理情報L2UNIT容量が増大しない。
（４）．管理情報L2UNITとデータL2DATAのペア群をBANKとして管理し分散させるためＳＳＤ等の記憶媒体１４は消去（ERASE ）実施確率を低下させ寿命を伸ばしかつ均質にすることができる。
【００７３】
〔実施形態２〕
次に、実施形態２を図８乃至図９に基づいて説明する。
ここで、前述した実施形態１と同一構成部材については同一の符号を東風いるものとする。
【００７４】
図８に示すように、本実施形態２におけるキャッシュ制御装置１０２は、記憶媒体１４Ａによる二次キャッシュ２０の動作中に、新たな記憶媒体１４Ｂを動的に増設する。
この動的増設に対応するため、キャッシュ制御装置１０２は、前述した実施形態１の構成に加えて、コントローラ１６が、動的追加制御部３８を備えている。
その他の構成は前述した実施形態１と同様である。
【００７５】
この場合、新設され動的追加制御部３８は、二次キャッシュ２０の容量がバンクBANK単位に動的に追加された際に、ハッシュ値HASHの状態が容量の追加前の旧バンク数、移行期又は新バンク数のいずれかであるかに応じて読み出し対象のバンクBANKを選別する機能を備えている。
このように、ハッシュ値HASHとバンク数とを管理することで、二次キャッシュ２０を動的に増設することができる。
【００７６】
この動的追加制御部３８は、好ましい例では、全てのハッシュ値HASHが新バンク数に切り替わるまで管理情報L2UNITのキャッシュ制御をすることでバンク数の移行を制御する移行制御機能３８ａを備えると良い。このように、管理情報L2UNITをキャッシュ制御することで二次キャッシュ２０の容量を動的に拡張することができる。
【００７７】
図９に示すように、動的追加制御部３８は、LDN/LSN からHash番号を特定しハッシュ状態が「旧バンク数」「移行期」「新バンク数」なのかをチェックして読み出すBANK位置を変更する。この増設はハッシュ単位で行う。ディスクを追加して二次キャッシュ２０容量を拡張するとバンク数がM →N に増加する。
ハッシュ値HASHにヒット/ ミスヒットを含めて有効情報を含む管理情報L2UNITが接続しているかどうかを監視し、つながっているものが全て新バンク数に切り替わるのを待つ（移行制御機能３８ａ）。
【００７８】
このように、本実施形態２によると、前述した実施形態１における作用効果に加えて、下記の効果を奏する。
（１）．ハッシュ計算時にBANK単位に世代チェックを行うことで容量の動的拡張が可能となる。
【００７９】
（実施形態１，２の利点）
以下、本実施形態の特徴的な技術とその組み合わせによる利点をまとめると、以下のようになる。
特徴１) ：メモリ１２より安価でＨＤＤより高速な大容量記憶媒体１４( 例えばＳＳＤなど) の利用
ディスクアレイ装置１０に搭載可能な大容量記憶媒体１４( ＳＳＤやフラッシュメモリなど) をディスクキャッシュに対する補助キャッシュ( 二次キャッシュ２０) として使用する。
【００８０】
特徴２) ：記憶媒体１４の特性に依存しないデータDATA配置。
データアクセス単位をセクタ( 一般的には512Byte)単位とし記憶媒体１４内にデータDATAの内容を示す管理情報セクタ２４( 管理情報L2UNIT) とデータDATAそのものを格納するセクタ(L2DATA)に分類して配置する（図１、図３）。
【００８１】
特徴３) ：記憶媒体１４へのアクセス頻度を考慮したデータDATA管理。
ディスクアレイ装置１０に搭載されるメモリ１２上に管理情報L2UNITの一部をキャッシングしLRU 制御で管理する（図４）ことで記憶媒体１４へのアクセス頻度を低減させる。
【００８２】
管理情報L2UNIT複数分を１つのデータDATA単位としてキャッシングするように制御することでn-way セットアソシアティブ制御でき（図６）、これによりスラッシング確率を下げてアクセス頻度を低減する。
【００８３】
特徴４) ：アクセス効率・容量効率を考慮した管理情報L2UNIT。
管理情報L2UNITはデータL2DATAの複数セクタを管理するための情報として定義する。
管理情報L2UNITはページL2PAGEの集合データとし、ページL2PAGEはデータアクセス効率を向上させるため頻繁に更新が必要となるデータ範囲情報や属性範囲情報を省略した情報とする。
L2UNITセクタが管理するL2DATAセクタ数を増やすことで容量効率が向上する。
属性範囲情報は、Dirty(ＨＤＤ未書き込み) ／Clean(ＨＤＤ書き込み済み) ／Null( 未使用) 。
【００８４】
特徴５) ：記憶媒体１４の動的拡張( 容量追加など)
管理情報L2UNITとデータL2DATAのペアを複数集めたものをバンクBANKとして定義し記憶媒体１４上に複数配置（図３）。
バンクBANK×n 単位に増設させることで、動作中に二次キャッシュ２０の容量を拡張可能とする（図９）。
バンクBANKとして分散させることで記憶媒体１４特有の消去（ERASE ）処理などが行われる回数も結果として削減が可能となっている。
【００８５】
ここで、上記特徴３) 及び特徴４) により、管理情報L2UNITの更新頻度が下がり記憶媒体１４へのアクセス頻度が改善される。
又、上記特徴４) により、大容量構成の管理情報L2UNIT増加がメモリ１２上及び記憶媒体１４上ともに抑えられる。
更に、上記特徴２) 及び特徴５) により、より二次キャッシュ２０の大容量化が可能となる。
【００８６】
〔その他の例〕
次に、図１０に、ディスクアレイ装置１０に対して二系統のキャッシュ制御装置１０１，１０２を配置した例を示す。また、図１０に示すディスクアレイ装置１０は、コントローラ１６内のメモリ１２に一次キャッシュ１８を搭載している。このディスクアレイ装置１０に、ＨＤＤより高性能な記憶媒体１４( ＳＳＤなど) を二次キャッシュ２０として追加する。上記の記憶媒体１４上に本実施形態で説明する情報を配置し二次キャッシュ２０として管理する。
【００８７】
ここで、上記実施形態１及び実施形態２のキャッシュ制御装置１０１，１０２に共通する動作について説明する。
本実施形態１，２のキャッシュ制御方法は、キャッシュ制御装置１０１，１０２を使用する。キャッシュ制御装置は、上述したように、一次キャッシュ１８を有するメモリ１２と、二次キャッシュ２０を有する記憶媒体１４と、コントローラ１６とを備えている。二次キャッシュ２０は、データDATAを記憶するデータセクタ２２と、管理情報L2UNITを記憶する管理情報セクタ２４とを備えている。一次キャッシュ１８は、アドレスの要約値DGSTと管理情報L2UNITとを接続させて記憶している。
【００８８】
そして、キャッシュ制御方法では、図７に示すように、データDATAを読み出す際に当該データDATAの要約値DGSTをコントローラ１６の要約値計算部３０が計算する（図７：ステップＳ１／要約値DGST計算手順）。
そして、要約値DGSTから一次キャッシュ１８中の管理情報L2UNITを管理情報探索部３２が探索して読出制御部３４に与える（図７：ステップＳ７／管理情報L2UNIT探索手順）。さらに、読出制御部３４が、管理情報L2UNITから二次キャッシュ２０のデータセクタ２２を特定して当該データL2DATAを読み出す（図７：ステップＳ９／読出制御手順）。
【００８９】
ここで、上述した各構成の動作部分における動作内容（特に図７における各動作ステップ）については、これをコンピュータで実行可能にプログラム化し、前述した各ステップ（手順）を実行するコントローラ１６に実行させるようにしても良い。
この場合、プログラム化した各プログラムについては、不揮発性の記録媒体、例えば、ハードディスク、ＤＶＤやＣＤ、又はフラッシュメモリなどに記録させても良い。その場合、本プログラムは、これら記録媒体からコンピュータによって読み出され、実行される。
また、プログラムの実行による他、論理回路の集積により実現することもできる。
【００９０】
上述した各々の実施形態について、その新規な技術内容の要点をまとめると、以下のようになる。なお、上記実施形態の一部又は全部は、新規な技術としては以下のようにまとめられるが、本発明は必ずしもこれに限定されるものではない。
【００９１】
（付記１：図１）
データDATAを格納するディスク部１０の一次キャッシュ１８を有するメモリ１２と、前記一次キャッシュ１８に対する二次キャッシュ２０を有し前記メモリ１２より大容量で低速な記憶媒体１４と、前記一次キャッシュ１８及び前記二次キャッシュ２０を使用した前記データDATAの転送を制御するコントローラ１６とを備え、
前記二次キャッシュ２０が、予め定められた容量のセクタを単位として前記データDATAを記憶するデータセクタ２２と、複数の前記データセクタ２２のアドレスを含む管理情報L2UNITを記憶する管理情報セクタ２４とを備え、
前記一次キャッシュ１８が、前記データDATAのアドレスから算出される要約値DGST（Hash情報）と、当該データDATAをキャッシュした前記二次キャッシュ２０中の前記データセクタ２２のアドレスを含む前記管理情報L2UNITとを接続させて記憶し、
前記コントローラ１６が、
前記データDATAを読み出す際に当該データDATAの要約値DGSTを計算する要約値計算部３０と、
前記要約値DGSTから前記一次キャッシュ１８中の前記管理情報L2UNITを探索する管理情報探索部３２と、
前記管理情報L2UNITから前記二次キャッシュ２０の前記データセクタ２２を特定して当該データL2DATAを読み出す読出制御部３４とを備えたことを特徴とするキャッシュ制御装置。
この付記１では、二次キャッシュ２０の管理情報L2UNITを一次キャッシュ１８に記録するため、二次キャッシュ２０が大容量であっても、管理情報L2UNITを一次キャッシュ１８にて高速に探索することができる。従って、大容量の二次キャッシュ２０を高速に管理することができる。
【００９２】
（付記２：図１）
前記コントローラ１６が、
前記二次キャッシュ２０の管理情報L2UNITをキャッシュ制御の対象として前記一次キャッシュ１８にキャッシュさせる管理情報キャッシュ制御部３６を備えたことを特徴とする付記１記載のキャッシュ制御装置。これにより、二次キャッシュ２０へのアクセス頻度を低減させることができる。
【００９３】
（付記３：図１、図２、図３）
前記管理情報キャッシュ制御部３６が、
前記データDATAの読み出しに際して前記管理情報L2UNITが前記一次キャッシュ１８にキャッシュされていない際には当該管理情報L2UNITを前記二次キャッシュ２０から読み出すと共に当該管理情報L2UNITを前記要約値DGSTに接続させて前記一次キャッシュ１８に格納する格納制御機能３６ａと、
前記一次キャッシュ１８の容量に応じて古い前記管理情報L2UNITを新しい管理情報L2UNITに入れ替える入替制御機能３６ｂとを備えたことを特徴とする付記２記載のキャッシュ制御装置。
この付記３では、データDATAのアドレスから要約値DGSTを算出し、二次キャッシュ２０の管理情報L2UNITと接続するため、転送対象のデータDATAのアドレスから二次キャッシュ２０のデータDATAの有無を直接的に計算することができる。
【００９４】
（付記４：図１、図４）
前記要約値DGSTが前記データDATAのアドレスのハッシュ値HASHであり、
前記管理情報キャッシュ制御部３６が、
前記複数のデータL2DATA及び管理情報L2UNITの複数組を１つのバンクBANKとして当該バンクBANK単位に当該管理情報L2UNITの前記一次キャッシュ１８へとキャッシュを制御するバンク管理機能３６ｃと、
前記ハッシュ値HASHが競合する際にバンクBANKのバンク番号を使用して前記バンクBANK毎に当該ハッシュ値HASHと対応させるハッシュ値管理機能３６ｄとを備えたことを特徴とする付記３記載のキャッシュ制御装置。
付記４では、ハッシュ値HASHとバンク番号との組み合わせで管理情報L2UNITへのポインタの競合を回避することで、二次キャッシュ２０を大容量化しても、データDATAのアドレスから二次キャッシュ２０のヒット・ミスヒットを判定することができる。
【００９５】
（付記５：図１、図５）
前記管理情報L2UNITは、複数の前記データセクタ２２のそれぞれ対応したページL2PAGEを有し、
当該ページL2PAGEは、前記データDATAのアドレスとなる論理ディスク番号LDN 及び論理セクタ番号LSN と、当該キャッシュ対象の入替制御で参照される世代GEN とを有し、当該ダーティー又はクリーンを特定する属性範囲情報を有さない、ことを特徴とする付記１，２，３又は４記載のキャッシュ制御装置。
付記５では、属性範囲情報を有さないことで、管理情報L2UNITへのアクセス数が低減する。
【００９６】
（付記６：図１、図６）
前記二次キャッシュ２０が、前記バンク毎の複数ウェイのセクタ群を有し、
管理情報キャッシュ制御部３６が、前記複数ウェイのセクタ群を対象としたセットアソシアティブ制御をする複数ウェイ制御機能３６ｅを備えたことを特徴とする付記４又は５記載のキャッシュ制御装置。
付記６では、複数のウェイを対象としたセットアソシアティブ制御をする。これにより、スラッシング（ページL2PAGE置き換えの頻発）が生じる確率を低下させることができる。
【００９７】
（付記７：図１、図８）
前記コントローラ１６が、前記二次キャッシュ２０の容量が前記バンクBANK単位に動的に追加された際に、前記ハッシュ値HASHの状態が前記容量の追加前の旧バンク数、移行期又は新バンク数のいずれかであるかに応じて読み出し対象の前記バンクBANKを選別する動的追加制御部３８を備えたことを特徴とする付記３，４，５又は６記載のキャッシュ制御装置。
付記７では、ハッシュ値HASHとバンク数との管理で二次キャッシュ２０を動的に増設することができる。
【００９８】
（付記８：図８）
前記動的追加制御部３８が、全てのハッシュ値HASHが新バンク数に切り替わるまで前記管理情報L2UNITのキャッシュ制御をすることで前記バンク数の移行を制御する移行制御機能３８ａを備えた、ことを特徴とする請求項７記載のキャッシュ制御装置。
付記８では、管理情報L2UNITをキャッシュ制御することで二次キャッシュ２０を動的に自動増設することができる。
【００９９】
（付記９：図１、図７）
データDATAを格納するディスク部１０の一次キャッシュ１８を有するメモリ１２と、前記一次キャッシュ１８に対する二次キャッシュ２０を有し前記メモリ１２より大容量で低速な記憶媒体１４と、前記一次キャッシュ１８及び前記二次キャッシュ２０を使用した前記データDATAの転送を制御するコントローラ１６とを備え、
前記二次キャッシュ２０が、予め定められた容量のセクタを単位として前記データDATAを記憶するデータセクタ２２と、複数の前記データセクタ２２のアドレスを含む管理情報L2UNITを記憶する管理情報セクタ２４とを備え、
前記一次キャッシュ１８が、前記データDATAのアドレスから算出される要約値DGST（Hash情報）と、当該データDATAをキャッシュした前記二次キャッシュ２０中の前記データセクタ２２のアドレスを含む前記管理情報L2UNITとを接続させて記憶したキャッシュ制御装置を使用してキャッシュを制御するキャッシュ制御方法であって、
前記データDATAを読み出す際に当該データDATAの要約値DGSTを前記コントローラ１６の要約値計算部３０が計算し、
前記要約値DGSTから前記一次キャッシュ１８中の前記管理情報L2UNITを管理情報探索部３２が探索して読出制御部３４に与え、
前記読出制御部３４が、前記管理情報L2UNITから前記二次キャッシュ２０の前記データセクタ２２を特定して当該データL2DATAを読み出す、ことを特徴とするキャッシュ制御方法。
【０１００】
（付記１０：図１、図７）
データDATAを格納するディスク部１０の一次キャッシュ１８を有するメモリ１２と、前記一次キャッシュ１８に対する二次キャッシュ２０を有し前記メモリ１２より大容量で低速な記憶媒体１４と、前記一次キャッシュ１８及び前記二次キャッシュ２０を使用した前記データDATAの転送を制御するコントローラ１６とを備え、
前記二次キャッシュ２０が、予め定められた容量のセクタを単位として前記データDATAを記憶するデータセクタ２２と複数の前記データセクタ２２のアドレスを含む管理情報L2UNITを記憶する管理情報セクタ２４とを備え、
前記一次キャッシュ１８が、前記データDATAのアドレスから算出される要約値DGST（Hash情報）と当該データDATAをキャッシュした前記二次キャッシュ２０中の前記データセクタ２２のアドレスを含む前記管理情報L2UNITとを接続させて記憶したキャッシュ制御装置にあって、
前記データDATAを読み出す際に当該データDATAの要約値DGSTを計算する要約値DGST計算手順（符号３０対応）、
前記要約値DGSTから前記一次キャッシュ１８中の前記管理情報L2UNITを探索する管理情報L2UNIT探索手順（符号３２対応）、
および前記管理情報L2UNITから前記二次キャッシュ２０の前記データセクタ２２を特定して当該データL2DATAを読み出す読出制御手順（符号３４対応）、
を設け、これらを前記コントローラ１６に実現させるようにしたことを特徴とするキャッシュ制御用プログラム。
【０１０１】
（付記１１：図１、図３）
前記コントローラ１６に、前記二次キャッシュ２０の管理情報L2UNITをキャッシュ制御の対象として前記一次キャッシュ１８にキャッシュさせる管理情報キャッシュ制御手順（符号３６対応）をさらに実現させるようにしたことを特徴とする付記１０記載のキャッシュ制御用プログラム。
【０１０２】
（付記１２：図８、図９）
前記コントローラ１６に、
前記複数のデータ及び管理情報の複数組を１つのバンクBANKとして当該バンクBANK単位に当該管理情報の前記一次キャッシュへとキャッシュを制御するバンク管理手順（符号３６ｃ対応）、
前記ハッシュ値HASHが競合する際にバンクBANKのバンク番号を使用して前記バンクBANK毎に当該ハッシュ値HASHと対応させるハッシュ値管理手順（符号３６ｄ対応）、
および前記二次キャッシュ２０の容量が前記バンクBANK単位に動的に追加された際に、前記ハッシュ値HASHの状態が前記容量の追加前の旧バンク数、移行期又は新バンク数のいずれかであるかに応じて読み出し対象の前記バンクBANKを選別する動的追加制御手順（符号３８対応）を、
更に実現させるようにしたことを特徴とする付記１１記載のキャッシュ制御用プログラム。
【産業上の利用可能性】
【０１０３】
本発明は、キャッシュを利用する全ての外部記憶装置に対して適用可能である。
特にディスク装置やディスクアレイ装置１０の場合に、本発明はその効果を顕著に発揮しうる。
【符号の説明】
【０１０４】
１０  ディスク部、ディスクアレイ装置
１２  メモリ
１４  記憶媒体
１６  コントローラ
１８  一次キャッシュ
２０  二次キャッシュ
２２  データセクタ
２４  管理情報セクタ
３０  要約値計算部
３２  管理情報探索部
３４  読出制御部
３６  管理情報キャッシュ制御部
３６ａ  格納制御機能
３６ｂ  入替制御機能
３６ｃ  バンク管理機能
３６ｄ  ハッシュ値管理機能
３６ｅ  複数ウェイ制御機能
３８  動的追加制御部
３８ａ  移行制御機能
【図１】
2013222434.tif 000003
【図２】
2013222434.tif 000004
【図３】
2013222434.tif 000005
【図４】
2013222434.tif 000006
【図５】
2013222434.tif 000007
【図６】
2013222434.tif 000008
【図７】
2013222434.tif 000009
【図８】
2013222434.tif 000010
【図９】
2013222434.tif 000011
【図１０】
2013222434.tif 000012