記憶媒体に記憶されるデータを一時的に保存し、前記記憶媒体よりもレイテンシの小さいキャッシュと、前記キャッシュが記憶するデータのデータ長が長いほど、前記キャッシュが置換を行う際の前記データの解放優先順位を高くする解放優先順位決定部と、を具備する記憶装置。前記解放優先順位決定部は、前記キャッシュが記憶するデータについて、前記データへのアクセスが最後に行われてからの経過時間が長いほど、前記キャッシュが置換を行う際の解放優先順位を高くする請求項1に記載の記憶装置。前記解放優先順位決定部は、前記キャッシュが記憶するデータについて、前記データへのアクセス頻度が低いほど、前記キャッシュが置換を行う際の解放優先順位を高くする請求項1または請求項2に記載の記憶装置。前記キャッシュよりも上位のキャッシュである上位キャッシュをさらに具備する請求項1から3のいずれか一項に記載の記憶装置。前記記憶媒体はハードディスクである請求項1から4のいずれか一項に記載の記憶装置。前記キャッシュは、不揮発性の半導体で構成される記憶媒体にて構成される請求項1から5のいずれか一項に記載の記憶装置。記憶媒体に記憶されるデータを一時的に保存し、前記記憶媒体よりもレイテンシの小さいキャッシュを具備する記憶装置の、前記キャッシュが置換を行う際の解放優先順位決定方法であって、前記キャッシュが記憶するデータのデータ長が長いほど、前記キャッシュが置換を行う際の前記データの解放優先順位を高くすることを具備する解放優先順位決定方法。記憶媒体に記憶されるデータを一時的に保存し、前記記憶媒体よりもレイテンシの小さいキャッシュを具備する記憶装置の、前記キャッシュが置換を行う際の解放優先順位を決定するコンピュータに、前記キャッシュが記憶するデータのデータ長が長いほど、前記キャッシュが置換を行う際の前記データの解放優先順位を高くすることを実行させるためのプログラム。しかしながら、LRUやLFU等の方法では、記憶媒体のアクセス性能の特性に応じて適切な置換を行うことはできない。例えば、ハードディスクは、不連続のブロックに対するアクセスを行う毎にシーク時間および回転待ち時間による遅延が生じる不連続のブロックに対するアクセスとは、記憶媒体上で離れたアドレスに位置するブロックに対するアクセスを意味する。ハードディスクの場合は、一般的に、プラッタ上で物理的に離れた位置にあるブロックに対するアクセスとなる。。外部からデータ読出要求があった際に、この遅延によりアクセスに要する時間が長くなってしまうおそれがある。しかしながら、LRUやLFU等の方法では、この遅延に対する配慮はなされていない。本発明は、このような事情を考慮してなされた。本発明の目的の一例は、記憶媒体のアクセス性能特性に応じてキャッシュに格納すべきデータを選択して格納し、キャッシュにおけるヒット率向上を図ることのできる記憶装置、解放優先順位決定方法およびプログラムを提供することにある。この発明は上述した課題を解決するためになされた。本発明の一態様による記憶装置は、記憶媒体に記憶されるデータを一時的に保存し、前記記憶媒体よりもレイテンシの小さいキャッシュと、前記キャッシュが記憶するデータのデータ長が長いほど、前記キャッシュが置換を行う際の前記データの解放優先順位を高くする解放優先順位決定部と、を具備する。本発明の一態様による解放優先順位決定方法は、記憶媒体に記憶されるデータを一時的に保存し、前記記憶媒体よりもレイテンシの小さいキャッシュを具備する記憶装置の、前記キャッシュが置換を行う際の解放優先順位決定方法であって、前記キャッシュが記憶するデータのデータ長が長いほど、前記キャッシュが置換を行う際の前記データの解放優先順位を高くすることを具備する。本発明の一態様によるプログラムは、記憶媒体に記憶されるデータを一時的に保存し、前記記憶媒体よりもレイテンシの小さいキャッシュを具備する記憶装置の、前記キャッシュが置換を行う際の解放優先順位を決定するコンピュータに、前記キャッシュが記憶するデータのデータ長が長いほど、前記キャッシュが置換を行う際の前記データの解放優先順位を高くすることを実行させる。本発明によれば、記憶媒体のアクセス性能特性に応じてキャッシュに格納すべきデータを選択して格納し、キャッシュにおけるヒット率向上を図ることができる。以下、図面を参照して、本発明の実施の形態について説明する。図1は、本発明の一実施形態における記憶装置を含むコンピュータネットワークシステムの概略構成を示す構成図である。図1に示すコンピュータネットワークシステムは、1台以上のホスト10と、記憶装置20と、ネットワーク30とを具備する。ホスト10は、記憶装置20に対して、書込要求や読出要求以下では、書込要求と読出要求とを併せて処理要求と称するを送信し、読出要求に基づいて読み出されたデータを受信する。記憶装置20は、ホスト10からの書込要求に基づいてデータを記憶し、読出要求に基づいてデータを返信する。ネットワーク30は、ホスト10と記憶装置20とを接続して、ホスト10から記憶装置20へ送信される処理要求や、記憶装置20からホスト10へ送信される処理結果を伝送する。ホスト10と記憶装置20との接続構成は、図1に示すネットワークを介した構成に限らない。ホスト10と記憶装置20とが直接接続されていてもよい。記憶装置20がホスト10の内部に組み込まれていてもよい。図2は、記憶装置20の概略構成を示す構成図である。図2において、記憶装置20は、ハードディスク記憶媒体210と、SSDキャッシュキャッシュ220と、DRAMキャッシュ上位キャッシュ230と、アクセス処理部240と、記憶媒体性能測定部250と、性能情報記憶部260と、解放優先順位決定部270と、データ情報記憶部280とを具備する。ハードディスク210は、アクセス処理部240により書き込まれるデータを記憶する。上述したように、ハードディスク210は、データを読み出す際に、データ毎にシーク時間および回転待ち時間による遅延が生じる。ハードディスク210のメモリ空間はブロックに区切られており、ブロック毎にアドレスが付されている。ハードディスク210のアドレスは、記憶装置20の外部から記憶装置20にアクセスする際のアドレス、すなわち、記憶装置20の仮想メモリ空間のアドレス以下では、仮想アドレスと称するとしても用いられる。すなわち、ハードディスク210のアドレスと仮想アドレスとは一致する。ハードディスク210、及びハードディスク210の管理手段は、既存技術を用いる。記憶装置20が具備するハードディスクの台数は図1に示す1台に限らず、2台以上であってもよい。記憶装置20が具備するSSDキャッシュ220の台数も図1に示す1台に限らず、2台以上であってもよい。SSDキャッシュ220とDRAMキャッシュ230とで、ハードディスク210に対する2層のキャッシュを構成する。SSDキャッシュ220は、SSD上述のように、フラッシュメモリで構成されたSSDにて構成されるキャッシュである。SSDキャッシュ220は、ハードディスク210に対する二次的なキャッシュとして機能する。SSDキャッシュ220は、ハードディスク210よりもスループットが高い。SSDキャッシュ220は、特に、磁気ヘッドやプラッタ等の物理的な可動部分を有しないため、レイテンシが非常に小さい。SSDキャッシュのメモリ空間は、ハードディスク210のブロックと同じ大きさのブロックに区切られており、ブロック毎にアドレスが付されている。DRAMキャッシュ230は、SSDキャッシュ220よりも、さらに読み書きの速度が速い。DRAMキャッシュ230は、SSDキャッシュ220よりも上位の一次的なキャッシュとして機能する。DRAMキャッシュ230のメモリ空間は、ハードディスク210のブロックと同じ大きさのブロックに区切られており、ブロック毎にアドレスが付されている。DRAMキャッシュ230、及びDRAMキャッシュ230の管理手段は、既存技術を用いる。本実施形態では、SSDキャッシュ220およびDRAMキャッシュのデータ更新方式としてライトバック方式WriteBackAlgorithmを採用する。しかしながら、本発明の実施形態の適用範囲はこれに限らず、ライトスルー方式WriteThroughAlgorithmによってデータ更新が行われるキャッシュにも適用できる。アクセス処理部240は、ホスト10図1から送信される処理要求に応じて、ハードディスク210と、SSDキャッシュ220と、DRAMキャッシュ230とに対してデータの読み書きを行い、データ情報記憶部280のデータを更新する。また、アクセス処理部240は、処理結果をホスト10に返信する。記憶媒体性能測定部250は、記憶装置20がホスト10からの処理要求に応じた処理を行う前処理として、予め、ハードディスク210と、SSDキャッシュ220との各々に対し、連続のブロックに対するアクセスを行う場合と、離散的なアクセスを行う場合との各々について、かつ、読出Readの場合と、書込Writeの場合との各々について、アクセス速度スループットと、遅延時間レイテンシとを含むアクセス性能特性を測定する。記憶媒体性能測定部250は、測定したデータを、性能情報記憶部260に書き込んでおく。性能情報記憶部260は、記憶媒体性能測定部250が測定したアクセス性能特性を記憶する。連続のブロックに対するアクセスとは、記憶媒体上で隣接するアドレスに位置するブロックに対するアクセスを意味する。ハードディスクの場合は、プラッタ上で物理的に近い位置にあるブロックに対するアクセスとなる。ハードディスク210およびSSDキャッシュ220のアクセス性能特性が既知の場合は、性能情報記憶部260が、これら既知のアクセス性能特性を予め記憶しておくようにしてもよい。これにより、記憶装置20が、記憶媒体性能測定部250を具備する必要が無くなり、装置構成を簡略にできる。解放優先順位決定部270は、性能情報記憶部260の記憶する、ハードディスク210およびSSDキャッシュ220のアクセス性能特性を用いて、SSDキャッシュ220の記憶するデータや、DRAMキャッシュ230から解放されるデータについて、解放優先指標値を算出する。解放優先順位決定部270は、算出した解放優先指標値に基づいて、各データの解放優先順位を決定する。この解放優先順位は、SSDキャッシュ220にて置換を行う際に、SSDキャッシュ220から解放される優先順位DRAMキャッシュ230から解放されるデータについては、SSDキャッシュ220に書き込まれる優先順位を示す。データ情報記憶部280は、SSDキャッシュ220が記憶する各データのアドレスやアクセス頻度等を示すSSDキャッシュ管理テーブルを記憶する。また、データ情報記憶部280は、DRAMキャッシュ230が記憶する各データのアドレスやアクセス頻度等を示すDRAMキャッシュ管理テーブルを記憶する。さらに、データ情報記憶部280は、ハードディスク210が記憶する各データのアドレスやアクセス頻度等を示すハードディスク管理テーブルを記憶する。SSDキャッシュ220がSSDキャッシュ管理テーブルを記憶するようにしてもよい。同様に、DRAMキャッシュ230がDRAMキャッシュ管理テーブルを記憶するようにしてもよい。同様に、ハードディスク210がハードディスク管理テーブルを記憶するようにしてもよい。特に、SSDキャッシュ220がSSDキャッシュ管理テーブルを記憶し、かつ、DRAMキャッシュ230がDRAMキャッシュ管理テーブルを記憶し、かつ、ハードディスク210がハードディスク管理テーブルを記憶する場合、記憶装置20は、データ情報記憶部280を具備する必要がない。次に、図3~図5を参照して、性能情報記憶部260およびデータ情報記憶部280が記憶するデータのデータ構成について説明する。図3は、性能情報記憶部260の記憶する性能情報テーブルの例を示す図である。図3に示すように、性能情報テーブルは、ハードディスク210及びSSDキャッシュ220の、遅延時間およびアクセス速度を格納する。遅延時間としては、レイテンシアクセス初期の遅延時間を格納する。アクセス速度としては、連続のブロックにアクセスする際の速度を格納する。本実施形態では、ハードディスク210及びSSDキャッシュ220は、データを読み出す際と書き込む際との遅延時間やアクセス速度が同一であるとする。このため、性能情報テーブルは、読み出しの際と書き込みの際とに共通するデータを記憶している。読み出しの際と書き込みの際とで値が異なる場合は、性能情報記憶部260が、それぞれについてデータを格納するようにする。図4Aおよび図4Bは、データ情報記憶部280の記憶するSSDキャッシュ管理テーブルの例を示す図である。図4Aに示すように、SSDキャッシュ管理テーブルは、DirtyフラグDirtyflag欄と、先頭アドレスSSD欄と、先頭アドレス仮想欄と、データ長欄と、アクセス頻度欄とを含む。SSDキャッシュ管理テーブルは、SSDキャッシュ220上の各データについて、各欄の情報を格納する。Dirtyフラグ欄には、ハードディスク210の記憶するデータの更新の要否を示すDirtyフラグが格納される。Dirtyフラグの値としては、SSDキャッシュ220上のデータ以下、図4Aおよび4Bの説明において、当該データと称するについて、ホスト10から新たに書込要求があった場合には、データを更新する必要があることを示す1が格納される。一方、ハードディスク210に未反映の書込要求がない場合は、Dirtyフラグに更新する必要が無いことを示す0が格納される。先頭アドレスSSD欄には、SSDのメモリ空間のアドレス以下では、SSDアドレスと称するにおける、当該データの先頭アドレス以下では、先頭アドレスSSDと称するが格納される。先頭アドレス仮想欄には、仮想アドレス記憶装置20のアドレスにおける、当該データの先頭アドレス以下では、先頭アドレス仮想と称するが格納される。データ長欄には、当該データのデータ長がブロック数の表記にて格納される。アクセス頻度欄には、ホスト10からの当該データに対するアクセス頻度直近の一定時間内におけるアクセス回数が格納される。図4Bに示すように、SSDキャッシュ管理テーブルに、アクセス頻度に代えて、LRU順序、すなわち、ホスト10から当該データに対する処理要求が最後に行われてから現在までの経過時間の長い順の順序が格納されていてもよい。図5は、データ情報記憶部280の記憶するDRAMキャッシュ管理テーブルの例を示す図である。図5に示すように、DRAMキャッシュ管理テーブルは、Dirtyフラグ欄と、先頭アドレスDRAM欄と、先頭アドレス仮想欄と、データ長欄と、アクセス頻度欄とを含む。DRAMキャッシュ管理テーブルは、DRAMキャッシュ230上の各データについて、各欄の情報を格納する。Dirtyフラグ欄には、図4Aを参照して説明したのと同様、ハードディスク210の記憶するデータの更新の要否を示すDirtyフラグが格納される。先頭アドレスSSD欄には、SSDのメモリ空間のアドレス以下では、SSDアドレスと称するにおける、DRAMキャッシュ230上のデータ以下、図5の説明において、当該データと称するの先頭アドレス以下では、先頭アドレスDRAMと称するが格納される。先頭アドレス仮想欄には、当該データの先頭アドレス仮想が格納される。データ長欄には、当該データのデータ長がブロック数の表記にて格納される。アクセス頻度欄には、ホスト10からの当該データに対するアクセス頻度が格納される。DRAMキャッシュ230に適用される置換ポリシーはLFUに限られない。また、DRAMキャッシュ管理テーブルに格納される情報も、アクセス頻度情報に限らない。例えば、DRAMキャッシュ230に対してLRUを適用してもよく、この場合は、DRAMキャッシュ管理テーブルは、アクセス頻度欄に代えてLRU順序情報欄を具備し、その情報を格納する。図6は、データ情報記憶部280の記憶するハードディスク管理テーブルの例を示す図である。図6に示すように、ハードディスク管理テーブルは、先頭アドレス仮想欄と、データ長欄と、アクセス頻度欄とを含む。ハードディスク管理テーブルは、ハードディスク210上の各データについて、各欄の情報を格納する。先頭アドレス仮想欄には、仮想アドレスにおける、ハードディスク上のデータ以下、図6の説明において、当該データと称するの先頭アドレス仮想が格納される。上述したように、ハードディスク210のメモリ空間のアドレスは、仮想アドレスと一致しており、先頭アドレス仮想は、ハードディスク210における先頭アドレスをも示している。アクセス頻度欄には、ホスト10からの当該データに対するアクセス頻度が格納される。SSDキャッシュ220およびDRAMキャッシュ230に対してLFU以外の置換ポリシーが適用される場合は、ハードディスク管理テーブルは、そのポリシーに応じたデータを格納する。たとえば、SSDキャッシュ220およびDRAMキャッシュ230に対してLRUが適用される場合、ハードディスク管理テーブルは、アクセス頻度欄に代えてLRU順序情報欄を具備し、その情報を格納する。上述したように、ハードディスク210のアドレスと、記憶装置20の仮想アドレスとは一致する。よって、ハードディスク管理テーブルにて、ハードディスク210のアドレスと、記憶装置20の仮想アドレスとの対応付けを記憶しておく必要はない。したがって、ハードディスク210の記憶するデータについて、置換ポリシーに応じた情報アクセス頻度あるいはLRU順序情報などを記憶する必要が無い場合は、ハードディスク管理テーブルは不要である。例えば、SSDキャッシュ管理テーブルのアクセス頻度欄のデータとして、SSDキャッシュ管理テーブルに格納された後のアクセス頻度を格納する場合、そのデータがハードディスク210に格納されている時点でのアクセス頻度は不要である。この場合、データ情報記憶部280が、ハードディスク管理テーブルを記憶しないようにでき、必要な記憶容量を削減できる。ハードディスク210のアドレスと仮想アドレスとが一致しない場合は、置換ポリシーに応じた情報を記憶する必要の有無にかかわらず、ハードディスク210のアドレスと仮想アドレスとの対応関係を記憶するためにハードディスク管理テーブルが必要となる。すなわち、記憶装置20は、ハードディスク210にデータを書き込む際に、ハードディスク210上のデータを書き込んだ位置すなわち、ハードディスク210のアドレスと、外部からの書込要求に含まれる仮想アドレスとを対応付けて、ハードディスク管理テーブルに格納しておく。そして、記憶装置20は、仮想アドレスによりデータを指定する読出要求を外部から受けると、仮想アドレスに基づいてハードディスク管理テーブルを検索して、ハードディスク210のアドレスを取得し、取得したアドレスに基づいてハードディスク210からデータを読み出す。ただし、本実施形態では、上述のように、ハードディスク210のアドレスと、記憶装置20の仮想アドレスとが一致するので、ハードディスク210のアドレスと仮想アドレスとの対応関係を記憶する必要は無い。従って、置換ポリシーに応じた情報を記憶する必要が無い場合は、ハードディスク管理テーブルは不要である。SSDキャッシュ220に適用される置換ポリシーと、DRAMキャッシュ230に適用される置換ポリシーとが異なっていてもよい。この場合、SSDキャッシュ管理テーブルと、DRAMキャッシュ管理テーブルと、ハードディスク管理テーブルとは、両ポリシーに応じたデータを格納する。たとえば、SSDキャッシュ220にLRUが適用され、DRAMキャッシュ230にLFUが適用される場合は、SSDキャッシュ管理テーブルと、DRAMキャッシュ管理テーブルと、ハードディスク管理テーブルとは、それぞれ、アクセス頻度欄と、LRU順序情報欄とを含み、それらの情報を格納する。データ情報記憶部280の各テーブルのアクセス頻度欄のデータは、アクセス処理部240によって定期的に更新される。例えば、データ情報記憶部280が、各データに対するアクセス履歴ホスト10からの処理要求履歴を記憶している。アクセス処理部240は、そのアクセス履歴に基づいて、アクセス頻度欄のデータを更新する。図7Aおよび7Bは、ホスト10から送信される処理要求の例を示す図である。図7Aは読出要求の例を示す。図7Bは書込要求の例を示す。図7Aおよび7Bに示すように、処理要求には、先頭アドレス仮想およびデータ長が含まれている。この先頭アドレス仮想およびデータ長は、アクセス処理部240が、処理対象のデータを特定するために用いられる。次に、図8~11を参照して、記憶装置20の動作について説明する。図8は、ホスト10図1からの読出要求を受信した際の、記憶装置20の処理手順を示すフローチャートである。記憶装置20は、ホスト10からの読出要求を受信する毎に、図8の処理を行う。ホスト10からの読出要求を受信すると、アクセス処理部240は、まず、DRAMキャッシュ230からのデータの読み出しを試みる。まず、アクセス処理部240は、データ情報記憶部280の記憶するDRAMキャッシュ管理テーブルを検索する。具体的には、アクセス処理部240は、読出要求から先頭アドレス仮想およびデータ長を読み出し、DRAMキャッシュ管理テーブル上で、先頭アドレス仮想およびデータ長の一致する行を検索する以上、ステップS101。そして、アクセス処理部240は、読出要求されたデータがDRAMキャッシュ230上に存在するか否かを判定する。具体的には、アクセス処理部240は、ステップS101で行った検索にて、一致する行を発見した場合は、読出要求されたデータがDRAMキャッシュ230上に存在すると判定する。一方、アクセス処理部240は、ステップS101で行った検索にて、一致する行を発見しなかった場合は、存在しないと判定する。先頭アドレスのみが一致し、データ長が一致しない行を発見した場合は、要求されているデータが記憶装置20の記憶するデータと齟齬している。そのため、アクセス処理部240は、ホスト10にエラーメッセージを送信返信して図8の処理を終了する以上、ステップS102。ステップS102にて、読出要求されたデータがDRAMキャッシュ230上に存在すると判定した場合ステップS102:YES、アクセス処理部240は、読出要求されたデータをDRAMキャッシュ230から読み出し、読出要求に対する結果データとしてホスト10に送信返信する。具体的には、アクセス処理部240は、ステップS101で行った検索にて一致した行に格納されている、先頭アドレスDRAMおよびデータ長が示す、DRAMキャッシュ230上の領域1つのデータを格納するために用いられるブロックの集合を、1つの領域と称する。以下同様からデータを読み出して、ホスト10に送信するステップS111。その後、図8の処理を終了する。一方、読出要求されたデータがDRAMキャッシュ上に存在しないと判定した場合ステップS102:NO、アクセス処理部240は、次に、SSDキャッシュ220からのデータの読み出しを試みる。まず、アクセス処理部240は、データ情報記憶部280の記憶するSSDキャッシュ管理テーブルを検索する。具体的には、ステップS101と同様、先頭アドレス仮想およびデータ長の一致する行を検索する以上、ステップS121。そして、アクセス処理部240は、読出要求されたデータがSSDキャッシュ220上に存在するか否かを判定する。具体的には、ステップS102と同様、ステップS103で行った検索にて、一致する行を発見した場合は、データが存在すると判定する。一方、ステップS103で行った検索にて、一致する行を発見しなかった場合は、存在しないと判定する。先頭アドレスのみが一致し、データ長が一致しない行を発見した場合は、ステップS102と同様、ホスト10にエラーメッセージを送信して図8の処理を終了する以上、ステップS122。ステップS122にて、読出要求されたデータがSSDキャッシュ220上に存在すると判定した場合ステップS122:YES、アクセス処理部240は、読出要求されたデータをSSDキャッシュ220から読み出し、読出要求に対する結果データとしてホスト10に送信返信する。具体的には、ステップS111と同様、アクセス処理部240は、ステップS121で行って検索にて一致した行に格納されている、先頭アドレスSSDおよびデータ長が示す、SSDキャッシュ220上の領域からデータを読み出して、ホスト10に送信するステップS131。その後、処理がステップS151に進む。一方、ステップS122にて、読出要求されたデータがSSDキャッシュ220上に存在しないと判定した場合ステップS122:NO、アクセス処理部240は、読出要求されたデータをハードディスク210から読み出し、読出要求に対する結果データとしてホスト10に送信返信する。具体的には、ハードディスク210上のアドレスは仮想アドレスと一致するので、アクセス処理部240は、ステップS121で行って検索にて一致した行に格納されている、先頭アドレス仮想およびデータ長が示す、ハードディスク210上の領域からデータを読み出して、ホスト10に送信するステップS141。ステップS131またはステップS141にてホスト10にデータを送信したアクセス処理部240は、そのステップにて読み出したデータ以下、図8の説明において、格納対象データと称する。をDRAMキャッシュ230に格納する処理を行う。本実施形態では、DRAMキャッシュ230の置換ポリシーとして、ホスト10から処理要求を受けたデータを必ずDRAMキャッシュ230に格納するポリシーを採用している。しかしながら、本発明の実施形態の適用範囲はこれに限らない。例えば、処理要求を受けたデータのアクセス頻度と、DRAMキャッシュ230上の各データのアクセス頻度とを比較し、処理要求を受けたデータよりもアクセス頻度の低いデータをDRAMキャッシュ230上から解放することによって、処理要求を受けたデータの容量を確保可能か否かを判定するようにしてもよい。この場合、アクセス処理部240は、データの容量を確保可能と判定した場合のみ、以下の処理を行う。一方、アクセス処理部240は、データの容量を確保不可能と判定した場合は、処理要求を受けたデータ処理要求を受けたデータに該当するSSDキャッシュ220上またはハードディスク210上のデータのアクセス頻度を更新するのみで、DRAMキャッシュ230における置換は行わずに図8の処理を終了する。格納対象データをDRAMキャッシュ230に格納する処理において、アクセス処理部240は、まず、DRAMキャッシュ230上の空き容量を取得する。例えば、アクセス処理部240は、データ情報記憶部280の記憶するDRAMキャッシュ管理テーブルのデータ長欄の値を合計し、得られた値をDRAMキャッシュ230の全体容量から減算して空き容量を算出する以上、ステップS151。そして、アクセス処理部240は、格納対象データのデータ長と、DRAMキャッシュ230の空き容量とを比較して、格納対象データを格納可能な空き容量がDRAMキャッシュ230上に存在するか否かを判定するステップS152。アクセス処理部240は、格納対象データを格納可能な空き容量がDRAMキャッシュ230上に存在すると判定した場合ステップS152:YES、ステップS163に進む。一方、ステップS152にて、格納対象データを格納可能な空き容量がDRAMキャッシュ230上に存在しないと判定した場合ステップS152:NO、アクセス処理部240は、空き容量を確保するために解放するデータを選択する。具体的には、アクセス処理部240は、データ情報記憶部280の記憶するDRAMキャッシュ管理テーブルを参照して、アクセス頻度の低い順に、データ長の合計が格納対象データのデータ長以上になるまで、DRAMキャッシュ230上のデータを選択するステップS161。次に、アクセス処理部240は、ステップS161にて選択したデータの各々について、必要に応じてSSDキャッシュ220、または、ハードディスク210に格納する処理を行う。この処理の詳細については後述する。その後、アクセス処理部240は、ステップS161にて選択したデータを解放して、格納対象データを格納可能な空き容量を確保する。以上、ステップS162。そして、アクセス処理部240は、格納対象データをDRAMキャッシュ230に書き込むステップS163。その後、図8の処理を終了する。図9は、ホスト10図1からの書込要求を受信した際の、記憶装置20の処理手順を示すフローチャートである。記憶装置20は、ホスト10からの書込要求を受信する毎に、図9の処理を行う。図9のステップS201~S213は、図8のステップS151~S163と同様である。ステップS201~S213においては、ホスト10から書込要求のあったデータが、ステップS151~S163の格納対象データに相当する。書込要求のあったデータが、新規のデータである場合、すなわち、書込要求に含まれる先頭アドレスおよびデータ長の示す領域が、ハードディスク210上の空き領域である場合について説明する。この場合は、アクセス処理部240は、ハードディスク210上のその空き領域を、書込要求のあったデータを格納する領域として確保した後、図9の処理を行う。ホスト10から、解放要求データ長が0の書込要求を受信した場合は、アクセス処理部240は、DRAMキャッシュ230上、SSDキャッシュ220上、ハードディスク210上の各々において、該当する領域を解放し、データ情報記憶部280の記憶するSSDキャッシュ管理テーブルおよびDRAMキャッシュ管理テーブルを更新する。図10および図11は、ステップS162図8およびステップS212図9における、解放対象として選択されたデータ以下、図9および10の説明において、被選択データDRAMと称するの各々について、必要に応じてSSDキャッシュ220、または、ハードディスク210に格納する処理手順を示すフローチャートである。図10および11の処理において、アクセス処理部240は、まず、被選択データDRAMの各々に対して、アクセス頻度の高い順に処理を行うループL1を開始する。アクセス頻度の高い順に処理を行う理由は、SSDキャッシュに書き込んだ被選択データDRAMが、他の被選択データDRAMに対する処理を行う際に解放されるスワップアウトする無駄を無くすためである以上、ステップS301。アクセス処理部240は、SSDキャッシュ220上の空き容量およびSSDキャッシュ220上の各データの解放優先順位に基づいて、被選択データDRAMをSSDキャッシュ220に格納するか否かを判定する。具体的には、アクセス処理部240は、まず、SSDキャッシュ220上の空き容量を取得する。例えば、アクセス処理部240は、データ情報記憶部280の記憶するSSDキャッシュ管理テーブルのデータ長欄の値を合計し、得られた値をSSDキャッシュ220の全体容量から減算して空き容量を算出する以上、ステップS302。次に、アクセス処理部240は、格納対象データのデータ長と、SSDキャッシュ220の空き容量とを比較して、格納対象データを格納可能な空き容量がSSDキャッシュ220上に存在するか否かを判定するステップS303。アクセス処理部240は、格納対象データを格納可能な空き容量がSSDキャッシュ220上に存在すると判定した場合ステップS303:YES、ステップS331に進む。一方、ステップS303にて、格納対象データを格納可能な空き容量がSSDキャッシュ220上に存在しないと判定した場合ステップS303:NO、アクセス処理部240は、解放優先順位決定部270に対して、解放優先順位の決定を要求する。そして、解放優先順位決定部270は、ループL1にて処理対象となっている被選択データDRAM以下、図9および10の説明において、ループL1データと称すると、SSDキャッシュ220上の各データについて、解放優先順位を決定し、アクセス処理部240に出力する。解放優先順位の決定方法については後述する。解放優先順位決定部270が、SSDキャッシュ220上の各データについて、ループL1の開始前に解放優先順位を算出しておくようにしてもよい。これにより、解放優先順位を繰り返し算出する必要が無くなり、計算量を削減できる以上、ステップS311。解放優先順位の出力を受けたアクセス処理部240は、SSDキャッシュ220上の各データおよびループL1データの中から、解放対象とするデータを選択するステップS312。ステップS312の処理は、具体的には以下のとおりである。まず、アクセス処理部240は、SSDキャッシュ220上のデータのうち、ループL1データよりも解放優先順位の高いデータのデータ長を合計するステップS401。アクセス処理部240は、合計したデータ長が、ループL1データのデータ長以下か否かを判定するステップS402。アクセス処理部240は、合計したデータ長が、ループL1データのデータ長以下と判定した場合は、ループL1データを解放対象とするデータとして選択するステップS411。一方、アクセス処理部240は、合計したデータ長が、ステップS402にてループL1データのデータ長よりも大きいと判定した場合は、SSDキャッシュ上のデータを、解放優先順位の高い順に、データ長の合計値SDDキャッシュ上の空き容量が、ループL1データのデータ長よりも長く大きくなるまで選択するステップS412。以上で、ステップS312の処理を終了し、ステップS313に進む。次に、アクセス処理部240は、ステップS312にて選択したデータ以下、図10および11の説明において、被選択データSSDと称するの各々に対する処理を行うループL2を開始するステップS313。このループでは、アクセス処理部240は、被選択データSSDのうち、ホスト10からの書込要求によりデータが更新されているものすなわち、Dirtyフラグがセットされている被選択データSSDのみをハードディスク210に書き込む。ループL2の処理において、まず、アクセス処理部240は、データ情報記憶部280の記憶するSSDキャッシュ管理テーブルまたはDRAMキャッシュ管理テーブルを参照して、ループL2にて処理対象となっている被選択データSSD以下、図10および11の説明において、ループL2データと称するのDirtyフラグの値を読み出すステップS314。次に、アクセス処理部240は、読み出したDirtyフラグの値に基づき、Dirtyフラグがセットされているか否かすなわち、読み出した値が1であるか否かを判定する。アクセス処理部240は、Dirtyフラグがセットされていないと判定した場合ステップS315:NO、ステップS322に進む。一方、ステップS315にて、アクセス処理部240は、Dirtyフラグがセットされていると判定した場合ステップS315:YES、ループL2データをハードディスク210に書き込む、すなわち、ハードディスク210上のループL2データを更新するステップS321。アクセス処理部240は、全ての被選択データSSDに対してループL2の処理を完了したか否かを判定する。アクセス処理部240は、未処理の被選択データSSDが存在すると判定した場合は、ステップS313に戻り、ループL2の処理を継続する。一方、アクセス処理部240は、全ての被選択データSSDに対してループL2の処理を完了したと判定した場合は、ループL2を終了する以上、ステップS322。次に、アクセス処理部240は、ステップS312にて選択したデータが、SSDキャッシュ上のデータか否かを判定するステップS323。アクセス処理部240は、ステップS312にて選択したデータが、SSDキャッシュ上のデータではないすなわち、ループL1データを選択したと判定した場合ステップS323:YES、ステップS333に進む。この場合は、ループL1データのSSDキャッシュ220への書き込みは行われない。一方、ステップS323にて、ステップS312にて選択したデータが、SSDキャッシュ上のデータであると判定した場合ステップS323:YES、アクセス処理部240は、ステップS312にて選択した各データをSSDキャッシュから解放する。さらに、アクセス処理部240は、SSDキャッシュ管理テーブルを更新する、すなわちSSDキャッシュから解放したデータの情報をSSDキャッシュ管理テーブルから削除するステップS331。そして、アクセス処理部240は、ループL1データ、すなわち、DRAMキャッシュ230から解放されるデータを、SSDキャッシュ220に書き込む。さらに、アクセス処理部240は、SSDキャッシュ管理テーブルを更新する、すなわち、SSDキャッシュ220に書き込んだデータに対応する行を、SSDキャッシュ管理テーブルに設け、各項目の情報を書き込む以上、ステップS332。アクセス処理部240は、全ての被選択データDRAMに対してループL1の処理を完了したか否かを判定する。アクセス処理部240は、未処理の被選択データDRAMが存在すると判定した場合は、ステップS301に戻り、ループL1の処理を継続する。一方、アクセス処理部240は、全ての被選択データDRAMに対してループL1の処理を完了したと判定した場合は、ループL1を終了する以上、ステップS333。アクセス処理部240は、全ての被選択データDRAMをDRAMキャッシュ230から解放する。さらに、アクセス処理部240は、DRAMキャッシュ管理テーブルを更新する、すなわちDRAMキャッシュから解放したデータの情報をDRAMキャッシュ管理テーブルから削除する以上、ステップS334。その後、図10および11の処理を終了する。ステップS311において、解放優先順位決定部270が、解放優先順位を決定する方法について説明する。解放優先順位決定部270は、データ長の長いデータほど解放優先順位を高くする。例えば、解放優先順位決定部270は、解放優先順位決定対象の各データについて、データ長の長い順に解放優先順位を付す。後述するように、アクセス処理部240は、解放優先順位の高いデータを優先的にSSDキャッシュ220から解放するので、データ長の短いデータがSSDキャッシュ220に残りやすくなる。データ長の短いデータは、アクセスに要する時間全体に対するアクセス初期の遅延時間レイテンシの割合が大きいデータである。すなわち、データ長の短いデータは、そのデータがSSDキャッシュ220から読み出される場合にデータ読み出しに要する時間に対する、そのデータがハードディスク210から読み出される場合にデータ読み出しに要する時間の比が大きい。この点において、データ長の短いデータは、SSDキャッシュ220上でヒットしなかった場合のコストが大きいデータである。このようなデータがSSDキャッシュ220に記憶されることで、記憶装置20がホスト10からの読出要求を受信してからそのデータ全て送信するまでの応答時間について、キャッシュ利用による短縮率が高まることが期待できる。このように、ハードディスク210およびSSDキャッシュ220の、記憶媒体のアクセス性能特性に応じて適切な置換を行える。解放優先順位決定部270が解放優先順位を決定する方法は、上述した、データ長の長い順に解放優先順位を付す方法に限らない。例えば、解放優先順位決定部270が、式1に基づいて、解放優先指標値Rを算出し、解放優先指標値Rの小さい順に解放優先順位を付すようにしてもよい。R=F/L式1ここで、Fは、解放優先順位決定対象のデータに対するアクセス頻度を示す。Lは、そのデータのデータ長を示す。このように優先順位を決定することにより、データ長の長いデータほど高い解放優先順位が付されるので、データ長の長い順に解放優先順位を付す場合と同様、SSDキャッシュ220上でヒットしなかった場合のコストが大きいデータをSSDキャッシュ220に残せる。加えて、このように優先順位を決定する場合、アクセス頻度の低いデータほど高い解放優先順位が付されるので、アクセス頻度の高いデータをSSDキャッシュ220に残せる。これにより、ヒット率の向上が期待できる。このように、ハードディスク210およびSSDキャッシュ220の、記憶媒体アクセス性能特性に応じて適切な置換を行いつつ、ヒット率の向上を図れる。解放優先順位決定部270が、式2に基づいて、解放優先指標値Qを算出し、解放優先指標値Qの小さい順に解放優先順位を付すようにしてもよい。Q=R/L式2ここで、Rは、解放優先順位決定対象のデータの、LRU置換の優先順位、すなわち、最終アクセス時刻の古い順を示す。Lは、そのデータのデータ長を示す。データ毎のアクセス頻度がほぼ固定されている場合、LRU置換の優先順位が高いほどアクセス頻度が低い。従って、解放優先指標値Qの小さい順に解放優先順位を付する場合は、式1に基づいて解放優先順位を付す上記の場合と同様、SSDキャッシュ220上でヒットしなかった場合のコストが大きいデータをSSDキャッシュ220に残せる。加えて、解放優先指標値Qの小さい順に解放優先順位を付する場合は、アクセス頻度の低いデータほど高い解放優先順位が付されるので、アクセス頻度の高いデータをSSDキャッシュ220に残せる。このように、ハードディスク210およびSSDキャッシュ220の、記憶媒体のアクセス性能特性に応じて適切な置換を行いつつ、ヒット率の向上を図れる。解放優先順位決定部270が、性能情報記憶部260の記憶する、ハードディスク210およびSSDキャッシュ220の、遅延時間およびアクセス速度を用いて解放優先指標値を算出するようにしてもよい。例えば、まず、解放優先順位を決定する対象データのデータ長をLとする。そのデータに対するアクセス頻度をFとする。ハードディスク210のデータ読出速度および書込速度は共にshであるとする。SSDキャッシュ220のデータ読出速度および書込速度は共にssであるとする。ハードディスク210の遅延時間は読み書き共にahであるとする。SSDキャッシュ220の遅延時間は0であるすなわち、遅延時間はないとする。この場合、データがSSDキャッシュ220から読み出される際に、読出要求を受けてから全データを読み終わるまでの読出時間は、式3にて算出される。L/ss式3データがハードディスク210から読み出される際に、読出要求を受けてから全データを読み終わるまでの読出時間は、式4にて算出される。ahL/sh式4したがって、データがSSDキャッシュ220から読み出される場合の読出時間を、ハードディスク210から読み出される場合の読出時間で除した比は、式5のようになる。L/ss/ahL/sh式5この値が小さいデータほど、ハードディスク210から読み出される場合に対する、SSDキャッシュ220から読み出される場合の、読出時間の短縮率が大きい。この点で、式5により算出される値が小さいデータほど、SSDキャッシュ220上でヒットしなかった場合のコストが大きい。そこで、解放優先順位決定部270が、式5にアクセス頻度Fを乗じて得られる、式6の解放優先指標値Pを算出し、解放優先指標値Pの小さい順に解放優先順位を付すようにしてもよい。P=L/ss/ahL/shF式6このように優先順位を決定することにより、SSDキャッシュ220上でヒットしなかった場合のコストが大きいデータをSSDキャッシュ220に残せる。加えて、解放優先指標値Pの小さい順に解放優先順位を付する場合は、アクセス頻度の低いデータほど高い解放優先順位が付されるので、アクセス頻度の高いデータをSSDキャッシュ220に残せる。このように、ハードディスク210およびSSDキャッシュ220の、記憶媒体のアクセス性能特性に応じて適切な置換を行いつつ、ヒット率の向上を図れる。式6は、式7のように変形できる。P=1/ss/ah/L1/shF式7したがって、Lの値が大きいほど解放優先指標値Pの値は小さくなる。すなわち、データ長の長いデータほど解放優先順位が高くなる。解放優先順位決定部270が解放優先順位を決定するタイミングは、ステップS311が実行されるタイミングに限らない。例えば、解放優先順位決定部270が、定期的に各データの解放優先順位を決定し、アクセス処理部240が、その解放優先順位を用いるようにしてもよい。この場合、アクセス処理部240が、ステップ311にて解放優先順位決定部270の解放優先順位決定を待つ必要がなく、処理時間の短縮を図れる。次に、図12~図21を参照して、記憶装置20の動作例について説明する。以下では、ハードディスク210はブロックに分割され、ブロック毎にアドレスが0から順番に割り当てられているとする。ハードディスク210は、1つのデータを連続するブロックに格納するとする。書き込まれるデータ量に対してハードディスクの容量は充分に大きく、フラグメントの問題は生じないとする。ハードディスク210の、不連続のブロックにアクセスする際の遅延時間は読出、書込共に20msミリセカンドであるとする。読出を開始した後、連続のブロックにアクセスする際の読出速度は、1秒あたり50000ブロックであるとする。SSDキャッシュ220は、ハードディスク210と同サイズのブロックに分割され、ブロック数が10000であるとする。SSDキャッシュ220の、不連続のブロックにアクセスする際の遅延時間は、読出、書込によらず0msであるとする。したがって、フラグメントによる読出または書込の遅延は生じないとする。読出を開始した後、連続のブロックにアクセスする際の読出速度は、1秒あたり100000ブロックであるとする。DRAMキャッシュ230は、ハードディスク210と同サイズのブロックに分割され、ブロック数が1000であるとする。DRAMキャッシュ230上の置換するデータの決定ポリシーとしてLRUを使用する。記憶装置20全体のアドレス空間は、ハードディスク210のブロックのアドレス空間に一致するとする。図12は、後述する一連の処理の開始時以下、処理開始時と称するにおいて、DRAMキャッシュ管理テーブルが格納する情報を示す図である。説明を簡単にするため、1つのデータは、DRAMキャッシュ230上の連続するブロックに格納され、先頭アドレスおよびデータ長にて領域が指定されるとする。前述したように、DRAMキャッシュ230は、遅延時間レイテンシが0であるため、1つのデータがDRAMキャッシュ230上の不連続のブロックに格納される場合でも、記憶装置20の動作タイミングは以下の説明と同様である。以下では、図12の状態におけるDRAMキャッシュ230上の領域のうち、先頭アドレス910から10ブロックの領域を領域Aと称する。先頭アドレス880から30ブロックの領域を領域Bと称する。先頭アドレス380から500ブロックの領域を領域Cと称する。図12の状態における、使用中のブロック数は、領域Aの先頭アドレス910にデータ長10を加えた920ブロックである。したがって、空き容量は、DRAMキャッシュ230の容量である1000ブロックから920ブロックを減じた80ブロックである。図12に示されるデータのうち、領域Aのデータが、最も解放優先順位が高く、すなわち、アクセス頻度が低く、次いで、領域Bのデータ、領域Cのデータ、の順に解放優先順位が高いとする。図13は処理開始時において、SSDキャッシュ管理テーブルが格納する情報を示す図である。DRAMキャッシュ230と同様、1つのデータは、データ情報記憶部280上の連続するブロックに格納され、先頭アドレスおよびデータ長にて領域が指定されるとする。DRAMキャッシュ230と同様、SSDキャッシュ220は、遅延時間レイテンシが0であるため、1つのデータがSSDキャッシュ220上の不連続のブロックに格納される場合でも、記憶装置20の動作タイミングは以下の説明と同様である。以下では、図13の状態におけるSSDキャッシュ220上の各領域を、それぞれ符号にて示すように、領域P、領域Q、、領域Uと称する。図13の状態における、使用中のブロック数は、領域Uの先頭アドレス9780にデータ長200を加えた9980ブロックである。したがって、空き容量は、SSDキャッシュ220の容量である10000ブロックから9980ブロックを減じた20ブロックである。図13に示されるデータは、アクセス頻度の低い順、すなわち、領域Uのデータ、領域Tのデータ、、領域Pのデータの順に解放優先順位が高い。図14は、ホスト10図1から記憶装置20に送信される一連の処理要求の例を示す図である。図14に示す矢印αの順に処理が行われる。図14に示す、読出要求T符号Tを付した行に示す読出要求は図13の状態におけるSSDキャッシュ220上の領域Tに格納されたデータの読出要求である。一方、読出要求X、Y、Zは、それぞれ、ハードディスク210上の領域X、Y、Zに格納されたデータの読出要求である。これらのデータは、図12の状態におけるDRAMキャッシュ230上および図13の状態におけるSSDキャッシュ220上には格納されておらず、ハードディスク210上に格納されている。ホスト10から記憶装置20に対して読出要求Tが送信されると、アクセス処理部240は、まず、データ情報記憶部280上のDRAMキャッシュ管理テーブルを参照して、DRAMキャッシュ230に領域Tのデータが格納されているか否かを判定する。ここでは、DRAMキャッシュ230には、領域Tのデータは格納されていない図12。そこで、アクセス処理部240はデータ情報記憶部280上のSSDキャッシュ管理テーブルを参照して、SSDキャッシュ220に領域Tのデータが格納されているか否かを判定する。SSDキャッシュ220には、領域Tのデータが格納されている図13。そこで、アクセス処理部240は、領域TのデータをSSDキャッシュ220から読み出し、読み出したデータを、読出要求Tに対する結果として読出要求Tの送信元のホスト10に送信する。その後、アクセス処理部240は、データ情報記憶部280の記憶するSSDキャッシュ管理テーブルに格納される領域Tのアクセス頻度を更新する。具体的には、アクセス処理部240は、領域Tのアクセス頻度999に1を加算して1000とする。図16は、読出要求Tに対する一連の処理を行った後のSSDキャッシュ管理テーブルが格納する情報を示す。処理開始時において、DRAMキャッシュ230の空き容量は80ブロックであるため図12、他のデータを解放せずに領域Tのデータ80ブロックをDRAMキャッシュ230に格納可能である。そこで、アクセス処理部240は、領域TのデータをDRAMキャッシュ230に書き込む。これにより、DRAMキャッシュ230の空き容量は0ブロックとなる。図15は、読出要求Tに対する一連の処理を行った後のDRAMキャッシュ管理テーブルが格納する情報を示す。読出要求Tに続いて、ホスト10から記憶装置20に対して読出要求Xが送信されると、アクセス処理部240はDRAMキャッシュ230に領域Xのデータが格納されているか否かを判定する。ここでは、DRAMキャッシュ230には領域Xのデータが格納されていない図15。そこで、アクセス処理部240は、SSDキャッシュ220に領域Xのデータが格納されているか否かを判定する。ここでは、SSDキャッシュ220上に領域Xのデータは格納されていない図16。そこで、アクセス処理部240は、ハードディスク210から領域Xのデータを読み出し、読み出したデータを、読出要求Xに対する結果として読出要求Xの送信元のホスト10に送信する。その後、アクセス処理部240は、領域XのデータをDRAMキャッシュ230に格納する。DRAMキャッシュ230の空き容量は0ブロックであるため図15、そのままでは、領域XのデータをDRAMキャッシュ230に格納できない。そこで、アクセス処理部240は、DRAMキャッシュ230上の領域のうち、解放優先順位が最も高い領域Aのデータを、DRAMキャッシュ230上から解放し、領域Xのデータを書き込む。この際、アクセス処理部240は、解放される領域Aのデータを、SSDキャッシュ220に書き込むか否かを判定する。データ情報記憶部280上のSSDキャッシュ管理テーブルを参照すると、SSDキャッシュ220の空き容量は、20ブロックであり図16、他のデータを解放せずに領域Aのデータ10ブロックを格納可能である。そこで、アクセス処理部240は、領域AのデータをSSDキャッシュ220に書き込む。これによりSSDキャッシュ220の空き容量は10ブロックとなる。図17は、読出要求Xに対する一連の処理を行った後のDRAMキャッシュ管理テーブルが格納する情報を示す。図18は、読出要求Xに対する一連の処理を行った後のSSDキャッシュ管理テーブルが格納する情報を示す。読出要求Xに続いて、ホスト10から読出要求Yが送信されると、アクセス処理部240は、DRAMキャッシュ230に領域Yのデータが格納されているか否かを判定する。DRAMキャッシュ230には領域Yのデータが格納されていない図17。そこで、アクセス処理部240は、SSDキャッシュ220に領域Yのデータが格納されているか否かを判定する。ここでは、SSDキャッシュ220上に領域Yのデータは格納されていない図18。そこで、アクセス処理部240は、ハードディスク210から領域Yのデータを読み出し、読み出したデータを、読出要求Yに対する結果として読出要求Yの送信元のホスト10に送信する。その後、アクセス処理部240は、領域YのデータをDRAMキャッシュ230に格納する。DRAMキャッシュ230の空き容量は0ブロックであるため図17、そのままでは、領域XのデータをDRAMキャッシュ230に格納できない。そこで、アクセス処理部240は、DRAMキャッシュ230上の領域のうち、データ置換の優先度が最も高い領域Bのデータを、DRAMキャッシュ230上から解放し、領域Yのデータを書き込む。この際、アクセス処理部240は、解放される領域Bのデータを、SSDキャッシュ220に書き込むか否かを判定する図11:ステップS302~312。データ情報記憶部280上のSSDキャッシュ管理テーブルを参照すると、SSDキャッシュ220の空き容量は10ブロックであり図18、領域Bの30ブロック分のデータを格納するためにはSSDキャッシュ220上のデータを開放する必要がある。そこで、解放優先順位決定部270が、SSDキャッシュ220上の各データについて解放優先順位を算出し、解放するデータを決定する図11:ステップS331。解放優先順位決定部270は、SSDキャッシュ管理テーブルに格納された各データの参照回数Fと、各データのデータ長Lとに基づいて、指標値F/Lを算出し、算出した指標値が低データから順に解放優先順位を付す。この時点でSSDキャッシュ220に存在するのは領域P、Q、R、S、T、U、Aのデータである図18。これらのデータの指標値を計算すると以下のとおりである。Pの指標値は50000/5000=10である。Qの指標値は36000/3000=12である。Rの指標値は10800/1200=9である。Sの指標値は5500/500=11である。Tの指標値は本実施例内で1回アクセスされているため9991/80=12.5である。Uの指標値は50/200=0.25である。Aの指標値は500/10=50である。DRAMキャッシュ230から解放される領域Bのデータについて指標値を算出すると、900/30=30となる。そこで、解放優先順位決定部270は、指標値が最小である領域Uのデータに対して最も高い解放優先順位を付す。この領域Uのデータ長は200ブロックであるため、領域Uのデータを解放することで、現在の空き容量と合計して210ブロックまでのデータを格納可能となる。そのため領域B20ブロックのデータを格納するために領域U以外のデータを置き換える必要はない。したがって、アクセス処理部240は、領域Uのデータを解放対象に決定する。アクセス処理部240は、解放対象となる領域Uのデータについて、SSDキャッシュ管理テーブルから、Dirtyフラグの値を読み出す図11:ステップS314。ここでは、Dirtyフラグがセットされている図18。そのため、アクセス処理部240は、領域Uのデータをハードディスク210に書き込む図11:ステップS321。その後、アクセス処理部240は、SSDキャッシュ220上から領域Uのデータを解放し、データ情報記憶部280のSSDキャッシュ管理テーブルに含まれる領域Uの情報も削除する図11:ステップS331。その後、アクセス処理部240はデータ情報記憶部280上のSSDキャッシュ管理テーブルに領域Bのデータの情報を追加し、SSDキャッシュ220に領域Bのデータを格納する図11:ステップS332。これによりSSDキャッシュ220の空き容量は10200-30=180ブロックとなる。図20は、読出要求Yに対する一連の処理を行った後のSSDキャッシュ管理テーブルが格納する情報を示す。その後DRAMキャッシュ230から領域Bのデータを解放し図11:ステップS334、領域Yのデータを新たにDRAMキャッシュ230に格納する図8:ステップS163。DRAMキャッシュ230の空き容量は、10ブロックとなる。図19は、読出要求Yに対する一連の処理を行った後のDRAMキャッシュ管理テーブルが格納する情報を示す。読出要求Yに続いて、ホスト10から読出要求Zが送信されると、アクセス処理部240はDRAMキャッシュ230に領域Zのデータが格納されているか否かを判定する。DRAMキャッシュ230には領域Zのデータが格納されていない。そこで、アクセス処理部240は、SSDキャッシュ220に領域Zのデータが格納されているか否かを判定する。SSDキャッシュ220上に領域Zのデータは格納されていない。そこで、アクセス処理部240は、ハードディスク210から領域Zのデータを読み出し、読み出したデータを、読出要求Zに対する結果として読出要求Z送信元のホスト10に送信する。その後、アクセス処理部240は、領域ZのデータをDRAMキャッシュ230に格納する。DRAMキャッシュ230の空き容量は10ブロックであるため図19、そのままでは、領域XのデータをDRAMキャッシュ230に格納できない。そこで、アクセス処理部240は、DRAMキャッシュ230上の領域のうち、解放優先順位が最も高い領域Cのデータを、DRAMキャッシュ230上から解放し、領域Zのデータを書き込む。この際、アクセス処理部240は、解放される領域Cのデータを、SSDキャッシュ220に書き込むか否かを判定する。データ情報記憶部280上のSSDキャッシュ管理テーブルを参照すると、SSDキャッシュ220の空き容量は180ブロックであり図20、領域Cの500ブロック分のデータを格納するためにはSSDキャッシュ220上のデータを開放する必要がある。そこで、解放優先順位決定部270が、SSDキャッシュ220上の各データについて解放優先順位を算出し、解放するデータを決定する図11:ステップS331。この時点でSSDキャッシュ220に存在するのは領域P、Q、R、S、T、B、Aのデータである図20。これらの指標値を計算すると以下のとおりとなる。Pの指標値は50000/5000=10である。Qの指標値は36000/3000=12である。Rの指標値は10800/1200=9である。Sの指標値は5500/500=11である。Tの指標値は1000/80=12.5である。Aの指標値は500/10=50である。Bの指標値は900/30=30である。一方DRAMキャッシュ230から解放される領域Cのデータについて指標値を求めると、Cの指標値は2000/500=4となる。このように、指標値が最小となるデータはSSDキャッシュ220に格納されたデータではなく、DRAMキャッシュ230から解放される領域Cのデータである。解放優先順位決定部270は、この指標値が最小である領域Cのデータに対して最も高い解放優先順位を付す。これにより、アクセス処理部240は、SSDキャッシュ220に格納されたデータを開放せず、また、領域CのデータをSSDキャッシュ220に格納しない図11:ステップS323:NO。領域CのデータのDirtyフラグは0であるため図19、アクセス処理部240は、領域Cのデータのハードディスク210への書き込みも行わない図11:ステップS315:NO。その後、アクセス処理部240は、領域CのデータをDRAMキャッシュ230から解放し図11:ステップS334、領域ZのデータをDRAMキャッシュ230に書き込む図8:ステップS163。図21は、読出要求Zに対する一連の処理を行った後のDRAMキャッシュ管理テーブルが格納する情報を示す。以上により、記憶装置20は、図14に示される処理命令T、X、Y、Zに対する処理を終了する。以上のように、解放優先順位決定部270は、SSDキャッシュ220の記憶するデータのデータ長が長いほど、SSDキャッシュ220が置換を行う際のそのデータの解放優先順位を高くするので、データ長の短いデータを優先的にSSDキャッシュ220に残すことができる。このデータ長の短いデータは、読出時間に占めるレイテンシアクセス初期の遅延時間の割合の大きいデータであり、キャッシュに格納することによる読出時間の短縮率が高い。一方、SSDキャッシュ220から解放されるデータ長の長いデータに対して、読出要求を受信した場合、記憶装置20は、ハードディスク210からデータを読み出して返信を行う。その際、データ長の長いデータでは、読出時間に占めるレイテンシの割合が小さく、レイテンシによる読出時間の増大は比較的軽微である。このように、記憶装置20は、データ長の短いデータを優先的にSSDキャッシュ220に残し、データ長の長いデータはハードディスク210から読み出すようにしている。これにより、レイテンシによる読出時間の増大を抑え、読出速度の向上を図ることができる。特に、SSDキャッシュ220の記憶するデータのデータ長が長いほど、SSDキャッシュ220が置換を行う際のそのデータの解放優先順位を高くすることにより、ストリームデータ等、参照頻度が低く、かつ長大なデータを優先的に解放でき、さらには、SSDキャッシュに格納されないようにすることができる。これにより、SSDキャッシュ220の利用効率を向上させることができる。また、データ長の短いデータが、置換によりSSDキャッシュ220から追い出されることを防止できる。特に、ストリームデータは、一般的に、アクセス頻度が低く、かつ、データ長が長いデータである。データ長が長いほど解放優先順位を高くする上記の方法を用いて、このストリームデータをSSDキャッシュ220に格納されないようにする、あるいは優先的に解放することにより、SSDキャッシュ220におけるヒット率向上を図ることができる。さらには、ストリームデータは、データの先頭から順にアクセスされるのが通常であり、連続のブロックに対するアクセスによってアクセスが行われる。そのため、ストリームデータがキャッシュ上でヒットしないことによるアクセス速度の低下は、他のデータに比べて小さい。このストリームデータの解放優先順位を高くして、他のデータを優先的にSSDキャッシュ220に格納することにより、記憶装置20のアクセス速度向上を図ることができる。また、解放優先順位決定部270は、SSDキャッシュ220の記憶するデータのデータ長が長いほど、かつ、データへのアクセスが最後に行われてからの経過時間が長いほど、SSDキャッシュ220が置換を行う際の解放優先順位を高くする。このため、記憶媒体のレイテンシに応じて適切な置換を行いつつ、ヒット率の向上を図れる。また、解放優先順位決定部270は、SSDキャッシュ220の記憶するデータのデータ長が長いほど、かつ、そのデータへのアクセス頻度が高いほど、SSDキャッシュ220が置換を行う際の解放優先順位を高くする。このため、記憶媒体のレイテンシに応じて適切な置換を行いつつ、ヒット率の向上を図れる。また、SSDキャッシュ220を二次的なキャッシュとし、一次的なキャッシュとしてDRAMキャッシュ230を設けることにより、大容量かつ高速なキャッシュを比較的安価に実現できる。本発明の実施形態は、1層のキャッシュを備える記憶装置にも適用できる。この場合、アクセス処理部240は、ホスト10からの処理要求に応じて、DRAMキャッシュ230に対する処理を除いた処理を行う。具体的には、読出要求に対して、ステップS121~S141図8、および、ステップS302~S332図10、11を実行し、書込要求に対して、ステップS302~S332図10、11を実行する。上述した記憶装置20における一連の処理の過程は、プログラムの形式でコンピュータ読み取り可能な記録媒体に記憶されていてもよい。このプログラムをコンピュータが読み出して実行することによって、上記処理が行われてもよい。すなわち、記憶装置20における、各処理は、CPU等の中央演算処理装置がROMやRAM等の主記憶装置に上記プログラムを読み出して、情報の加工、演算処理を実行することにより実現されてもよい。以上、本発明の実施形態について図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の設計変更等も含まれる。この出願は、2010年7月1日に出願された日本出願特願2010-151052を基礎とする優先権を主張し、その開示の全てをここに取り込む。