(57)【要約】【課題】メモリに格納されるデータへのアクセス性能を向上させる。【解決手段】データを格納する第１メモリ１２と、データを格納し、第１メモリ１２とはアクセス速度が異なる第２メモリ１３と、第１メモリ１２に格納されている第１のデータ及び第２メモリ１３に格納されている第２のデータについてのそれぞれのアクセス確率とレイテンシとに基づき、第１メモリ１２及び第２メモリ１３の中から、第１のデータ及び第２のデータの格納先を決定する決定部１１３と、を備える。【選択図】図７
2019020965.tif 000002
【特許請求の範囲】
【請求項１】
データを格納する第１メモリと、
データを格納し、前記第１メモリとはアクセス速度が異なる第２メモリと、
前記第１メモリに格納されている第１のデータ及び前記第２メモリに格納されている第２のデータについてのそれぞれのアクセス確率とレイテンシとに基づき、前記第１メモリ及び前記第２メモリの中から、前記第１のデータ及び前記第２のデータの格納先を決定する決定部と、
を備える、情報処理装置。
【請求項２】
前記第１メモリと前記第２メモリとの間で、前記第１のデータ及び前記第２のデータの格納先を変更する場合における前記第１のデータ及び前記第２のデータについての、前記第１のデータ及び前記第２のデータの格納先の決定に用いる第１の評価値を、前記アクセス確率と前記レイテンシとを用いて算出する第１算出部と、
前記第１メモリと前記第２メモリとの間で、前記第１のデータ及び前記第２のデータの格納先を変更しない場合における前記第１のデータ及び前記第２のデータについての、前記第１のデータ及び前記第２のデータの格納先の決定に用いる第２の評価値を、前記アクセス確率と前記レイテンシとを用いて算出する第２算出部と、
を更に備え、
前記決定部は、前記第１の評価値が前記第２の評価値よりも小さい場合に、前記第１のデータを前記第２メモリへ格納させ、前記第２のデータを前記第１メモリへ格納させるように、前記格納先を決定する、
請求項１に記載の情報処理装置。
【請求項３】
前記第１の評価値は、前記第１メモリと前記第２メモリとの間でデータを移動させる場合における、前記第１のデータについての前記アクセス確率と前記レイテンシとの積と、前記第２のデータについての前記アクセス確率と前記レイテンシとの積との和であり、
前記第２の評価値は、前記第１メモリと前記第２メモリとの間でデータを移動させない場合における、前記第１のデータについての前記アクセス確率と前記レイテンシとの積と、前記第２のデータについての前記アクセス確率と前記レイテンシとの積との和である、
請求項２に記載の情報処理装置。
【請求項４】
前記第１メモリは、前記第２メモリよりもアクセス速度が高く、
前記決定部は、前記第２メモリに格納されている前記第２のデータについて、前記第１メモリに格納されているデータのうちアクセス頻度が最も低い前記第１のデータとの入れ替えを行なうかを決定することにより、前記格納先を決定する、
請求項１〜３のいずれか１項に記載の情報処理装置。
【請求項５】
上位装置からのデータの読み出し要求に応じて、前記第１メモリ又は前記第２メモリからデータを読み出す読み出し部を更に備え、
前記第１メモリは、前記第２メモリよりもアクセス速度が高く、
前記決定部は、前記読み出し部によって前記第２メモリから読み出された前記第２のデータについて、前記第１メモリに格納されている前記第１のデータとの入れ替えを行なうかを決定することにより、前記格納先を決定する、
請求項１〜４のいずれか１項に記載の情報処理装置。
【請求項６】
前記決定部は、前記入れ替えを行なっても前記第１メモリの容量に空きがある場合に、前記読み出し部によって前記第２メモリから読み出された前記第２のデータに加えて、前記第２メモリに格納されている他のデータも前記第１メモリへ移動させるかを決定することにより、前記格納先を決定する、
請求項５に記載の情報処理装置。
【請求項７】
前記上位装置による読み出し対象のデータが前記第１メモリ又は前記第２メモリに存在しない場合に、前記第１メモリ及び前記第２メモリとは異なる記憶装置から取得した前記読み出し対象のデータを前記第１のデータとして前記第１メモリに書き込む書き込み部を更に備え、
前記決定部は、前記読み出し部によって前記第２メモリから読み出された前記第２のデータについて、前記書き込み部によって前記第１メモリに書き込まれた前記第１のデータとの前記入れ替えを行なうかを決定することにより、前記格納先を決定する、
請求項５又は６に記載の情報処理装置。
【請求項８】
前記第１メモリは、前記第２メモリよりもアクセス速度が高く、
前記決定部は、所定時間が経過する毎に、前記第２メモリに格納されている前記第２のデータについて、前記第１メモリに格納されている前記第１のデータとの入れ替えを行なうかを決定することにより、前記格納先を決定する、
請求項１〜４のいずれか一項に記載の情報処理装置。
【請求項９】
前記第１メモリ及び前記第２メモリは、Least Recently Usedによって格納するデータを管理する、
請求項１〜８のいずれか１項に記載の情報処理装置。
【請求項１０】
前記第１メモリ及び前記第２メモリは、Least Frequently Usedによって格納するデータを管理する、
請求項１〜８のいずれか１項に記載の情報処理装置。
【請求項１１】
コンピュータに、
第１メモリに格納されている第１のデータ、及び、前記第１メモリとはアクセス速度が異なる第２メモリに格納されている第２のデータについてのそれぞれのアクセス確率とレイテンシとを算出し、
算出された前記アクセス確率と前記レイテンシとに基づき、前記第１メモリ及び前記第２メモリの中から、前記第１のデータ及び前記第２のデータの格納先を決定する、
処理を実行させる、プログラム。
【請求項１２】
第１メモリに格納されている第１のデータ、及び、前記第１メモリとはアクセス速度が異なる第２メモリに格納されている第２のデータについてのそれぞれのアクセス確率とレイテンシとを算出し、
算出された前記アクセス確率と前記レイテンシとに基づき、前記第１メモリ及び前記第２メモリの中から、前記第１のデータ及び前記第２のデータの格納先を決定する、
情報処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、プログラム及び情報処理方法に関する。
【背景技術】
【０００２】
コンピュータのメインメモリとして使われているDynamic Random Access Memory（ＤＲＡＭ）の容量が、近年、限界に近付いている。一方、ビッグデータの分析や機械学習等に代表されるように、大容量のデータをインメモリで高速に処理したいという需要は高まっている。
【０００３】
そこで、巨大なメモリ空間を使用するアプリケーションにおいて、次世代揮発性メモリを使用してメモリ空間を拡張する研究が行なわれている。次世代不揮発性メモリは、例えばＮＡＮＤ型フラッシュメモリであり、低速且つ大容量のメモリであってよい。次世代不揮発性メモリは、ＤＲＡＭ等の高速且つ小容量のメモリと組み合わされて使用されてよい。
【０００４】
このような、ＤＲＡＭとＮＡＮＤ型フラッシュメモリとを備えるキャッシュサーバにおいては、ＤＲＡＭの容量当たりの単価が高く、消費電力が大きいという問題がある。容量単価がＤＲＡＭと比較して安いＮＡＮＤ型フラッシュメモリを使ってキャッシュサーバのメモリ空間を拡張すればコストの問題は解決するが、ＮＡＮＤ型フラッシュメモリはＤＲＡＭよりも３桁前後のオーダで速度が低い。このため、キャッシュサーバにおいて、高速化と低価格化とを両立させるためには、ＤＲＡＭとＮＡＮＤ型フラッシュメモリとを適切に使い分けることが想定される。
【０００５】
図１は、ＤＲＡＭとＮＡＮＤ型フラッシュメモリとにおけるレイテンシの変化の一例を示すグラフである。図１において、横軸はデータサイズ（キロバイト；ＫＢ）であり、縦軸はレイテンシ（ナノ秒；ｎｓ）である。
【０００６】
図１に示す例において、データサイズを大きくしていった際のＤＲＡＭのレイテンシの変化（符号Ａ１を参照）は、ＮＡＮＤ型フラッシュメモリのレイテンシの変化（符号Ａ２を参照）よりも小さい。また、ＮＡＮＤ型フラッシュメモリのレイテンシをＤＲＡＭのレイテンシで割った値であるＮＡＮＤ／ＤＲＡＭは、データサイズを大きくすると、小さくなる（符号Ａ３を参照）。なお、データは、アイテムと称されてもよい。
【０００７】
ＤＲＡＭとＮＡＮＤ型フラッシュメモリとの適切な使い分けとしては、例えば、アクセス頻度によるメモリの使い分け、及び、アイテムサイズによるメモリの使い分けが想定される。
【０００８】
アクセス頻度によるメモリの使い分けは、よくアクセスされるアイテムはＤＲＡＭに配置され、あまりアクセスされないアイテムはＮＡＮＤ型フラッシュメモリに配置されることによって実施されてよい（例えば、下記の特許文献１及び２を参照）。
【０００９】
アクセス頻度によるメモリの使い分けは、アクセス頻度に偏りがあるワークロードにおいて効果的である。
【００１０】
図２は、アクセス頻度によるメモリの使い分けの一例である。図２の（１）に示す例において、アクセス頻度順の格納では、ＤＲＡＭに格納されているアイテムＣの人気度（「アクセス頻度」と称されてもよい。）は、ＮＡＮＤ型フラッシュメモリに格納されているアイテムＤ及びＥの人気度よりも上位である。
【００１１】
図２の（２）において、ＮＡＮＤ型フラッシュメモリに格納されているアイテムが読み出されると、読み出されるアイテムは格納先がＤＲＡＭに変更される。
【００１２】
図２の（３）において、ＮＡＮＤ型フラッシュメモリに格納されているアイテムが読み出され、かつＤＲＡＭに読み出されるアイテムを格納する空き容量がない場合、ＤＲＡＭに格納されているアイテムは、ＮＡＮＤ型フラッシュメモリに追い出される。更に、ＮＡＮＤ型フラッシュメモリに格納されているアイテムは、ＤＲＡＭに格納されることが想定される。
【００１３】
このように、速度の異なるメモリに格納されているアイテムの格納先が変更されることが想定される。尚、上記は、アイテムの格納先が変更される場合の一例である。
【００１４】
アイテムサイズによるメモリの使い分けは、一定サイズ未満のアイテムをＤＲＡＭに配置し、一定サイズ以上のアイテムをＮＡＮＤ型フラッシュメモリに配置することによって実施されてよい（例えば、下記の非特許文献１を参照）。
【先行技術文献】
【特許文献】
【００１５】
【特許文献１】特開２０１６−１７０７２９号公報
【特許文献２】特許第５９９２５９２号公報
【非特許文献】
【００１６】
【非特許文献１】M. Blott, L. Liu, K. Karras, and K. Vissers.「Scaling Out to a Single-Node 80Gbps Memcached Server with 40Terabytes of Memory」HotStorage, 2015.
【発明の概要】
【発明が解決しようとする課題】
【００１７】
しかしながら、アクセス頻度によるメモリの使い分けでは、速度の異なるメモリに配置されているアイテムの格納先が変更されることによって、却ってレスポンスが悪化するおそれがある。
【００１８】
１つの側面では、メモリに格納されるデータへのアクセス性能を向上させることを目的とする。
【課題を解決するための手段】
【００１９】
情報処理装置は、データを格納する第１メモリと、データを格納し、前記第１メモリとはアクセス速度が異なる第２メモリと、前記第１メモリに格納されている第１のデータ及び前記第２メモリに格納されている第２のデータについてのそれぞれのアクセス確率とレイテンシとに基づき、前記第１メモリ及び前記第２メモリの中から、前記第１のデータ及び前記第２のデータの格納先を決定する決定部と、を備える。
【発明の効果】
【００２０】
１つの側面では、メモリに格納されるデータへのアクセス性能を向上させることができる。
【図面の簡単な説明】
【００２１】
【図１】ＤＲＡＭとＮＡＮＤ型フラッシュメモリとにおけるレイテンシの変化の一例を示すグラフである。
【図２】アイテム頻度によるメモリの使い分けの一例を示す図である。
【図３】関連例におけるデータキャッシュ動作を説明する図である。
【図４】関連例におけるキャッシュヒット時の動作とキャッシュミス時の動作とを説明する図である。
【図５】関連例におけるキャッシュサーバにおける動作を説明する図である。
【図６】実施形態の一例としてのキャッシュサーバにおけるデータの移動動作の概略を説明する図である。
【図７】実施形態の一例としてのキャッシュシステムにおけるシステム構成例を模式的に示すブロック図である。
【図８】実施形態の一例としてのキャッシュサーバが備えるキャッシュメモリにおけるアイテムの管理方法を説明する図である。
【図９】実施形態の一例としてのキャッシュサーバにおけるアイテムの移動処理を例示する図である。
【図１０】実施形態の一例としてのキャッシュサーバにおけるアイテムの移動判定処理を説明するフローチャートである。
【図１１】実施形態の第１変形例としてのキャッシュサーバにおけるアイテムの移動処理を例示する図である。
【図１２】実施形態の第１変形例としてのキャッシュサーバにおけるアイテムの移動判定処理を説明するフローチャートである。
【図１３】実施形態の第１変形例としてのキャッシュサーバにおけるアイテムの移動判定処理を説明するフローチャートである。
【図１４】実施形態の第２変形例としてのキャッシュサーバにおけるアイテムの移動判定の開始タイミングの決定処理を説明するフローチャートである。
【発明を実施するための形態】
【００２２】
以下、図面を参照して一実施の形態を説明する。ただし、以下に示す実施形態はあくまでも例示に過ぎず、実施形態で明示しない種々の変形例や技術の適用を排除する意図はない。すなわち、本実施形態を、その趣旨を逸脱しない範囲で種々変形して実施することができる。
【００２３】
また、各図は、図中に示す構成要素のみを備えるという趣旨ではなく、他の機能等を含むことができる。
【００２４】
以下、図中において、同一の各符号は同様の部分を示しているので、その説明は省略する。
【００２５】
〔Ａ〕関連技術
図３は、関連例におけるデータキャッシュ動作を説明する図である。
【００２６】
図３に示すキャッシュシステム８００は、大量のアクセスが集中するシステムであり、例示的に、複数（図示する例では４つ）のキャッシュメモリ８１、複数（図示する例では２つ）のDatabase Management System（ＤＢＭＳ）８２及びサーバ８３を備える。また、サーバ８３がキャッシュメモリ８１又はＤＢＭＳ８２から取得したデータは、不図示の端末によって、ブラウザ８４に表示されてよい。
【００２７】
キャッシュメモリ８１は、Random Access Memory（ＲＡＭ）を含む記憶装置である。キャッシュメモリ８１は、不図示のキャッシュサーバに備えられてよい。図３に示すようなキャッシュシステム８００に備えられるキャッシュサーバは、インメモリ型のキャッシュサーバと称されてもよい。キャッシュサーバは、ＤＢＭＳ８２から取得したアイテムをキャッシュして、サーバ８３からの要求に応じてキャッシュしているアイテムをサーバ８３へ送信する。
【００２８】
キャッシュメモリ８１は、例えば、ＤＲＡＭであってよい。また、近年、ＤＲＡＭの代替として、ＰＣＭやＲｅＲＡＭ，ＭＲＡＭ，３ＤＸｐｏｉｎｔ等の次世代不揮発性メモリが登場している。なお、ＰＣＭはPhase Change Memoryの略称であり、ＲｅＲＡＭはResistive Random Access Memoryの略称である。また、ＭＲＡＭはMagnetoresistive Random Access Memoryの略称であり、３ＤＸｐｏｉｎｔはthree dee cross pointの略称である。これらの次世代不揮発性メモリは、例えば、バイトアクセスが可能であり、従来の不揮発性メモリよりも高速に動作可能である。一方、次世代不揮発性メモリは、ＤＲＡＭ１２と比較して、例えば、レイテンシが大きく（別言すれば、「読み出し性能が低く」）、且つ、書き込み性能が低いという性能がある。
【００２９】
ＤＢＭＳ８２は、データを読み書き可能に記憶する装置であり、例えば、ＨＤＤ（Hard Disk Drive）である。ＤＢＭＳ８２は、Relational Database Management System（ＲＤＢＭＳ）であってもよい。
【００３０】
サーバ８３は、サーバ機能を備えたコンピュータである。サーバ８３は、アプリケーションサーバやＷｅｂサーバと称されてもよい。
【００３１】
キャッシュシステム８００において初回にアクセスされたデータは、サーバ８３によってＤＢＭＳ８２から取得される（符号Ｃ１１を参照）。サーバ８３は、取得したデータをアクセスの要求元のブラウザ８４へ送信する（符号Ｃ１２を参照）。また、サーバ８３は、取得したデータをキャッシュメモリ８１に格納しておく（符号Ｃ１３を参照）。
【００３２】
一方、キャッシュシステム８００において２回目以降にアクセスされたデータは、サーバ８３によってキャッシュメモリ８１から取得される（符号Ｃ２１を参照）。サーバ８３は、取得したデータをアクセスの要求元のブラウザ８４へ送信する（符号Ｃ２２を参照）。
【００３３】
ディスクベースのＤＢＭＳ８２ではアクセス速度が遅いが、上述したように、一度アクセスされたデータは、キャッシュメモリ８１にキャッシュされる。このため、サーバ８３は、２回目以降のアクセスされたデータについてのレスポンスを高速にブラウザ８４へ返すことができる。
【００３４】
図４の（１）は、関連例におけるキャッシュヒット時の動作を説明する図である。また、図４の（２）は、関連例におけるキャッシュミス時の動作を説明する図である。なお、図４の（１）及び（２）の中の正方形は、アイテムを示す。
【００３５】
図４の（１）に示すように、サーバ８３は、所望のアイテムがキャッシュメモリ８１にキャッシュされているかを、キャッシュメモリ８１に問い合わせる（符号Ｄ１１の“Ｇｅｔ”を参照）。
【００３６】
キャッシュメモリ８１において所望のアイテムがヒットした場合には、サーバ８３は、キャッシュメモリ８１から所望のアイテムを取得する（符号Ｄ１２の“Ｈｉｔ”を参照）。
【００３７】
すなわち、キャッシュヒット時には、サーバ８３は、キャッシュメモリ８１から直接アイテムを取得する。
【００３８】
図４の（２）に示すように、サーバ８３は、所望のアイテムがキャッシュメモリ８１にキャッシュされているかを、キャッシュメモリ８１に問い合わせる（符号Ｄ２１の“Ｇｅｔ”を参照）。
【００３９】
キャッシュメモリ８１において所望のアイテムがヒットしない場合には、サーバ８３は、キャッシュミスが発生した旨をキャッシュメモリ８１から取得する（符号Ｄ２２の“Ｍｉｓｓ”を参照）。
【００４０】
サーバ８３は、ＤＢＭＳ８２に対して所望のアイテムを要求する（符号Ｄ２３の“Ｒｅｑｕｅｓｔ”を参照）。
【００４１】
サーバ８３は、ＤＢＭＳ８２から所望のアイテムを取得する（符号Ｄ２４の“Ｒｅｐｌｙ”を参照）。
【００４２】
サーバ８３は、取得したアイテムをキャッシュメモリ８１にセットする（符号Ｄ２５の“Ｓｅｔ”を参照）。
【００４３】
すなわち、キャッシュミス時には、サーバ８３は、ＤＢＭＳ８２からアイテムを取得して、取得したアイテムをキャッシュメモリ８１にセットする。
【００４４】
図５は、関連例におけるキャッシュサーバ９１における動作を説明する図である。
【００４５】
図５に示すキャッシュシステム９００は、キャッシュサーバ９１及びクライアント９２を備える。
【００４６】
クライアント９２は、サーバ機能を備えたコンピュータであってよい。
【００４７】
キャッシュサーバ９１は、ＤＢＭＳ（図５では不図示）から取得したアイテムをキャッシュして、クライアント９２からの要求に応じてキャッシュしているアイテムをクライアント９２へ送信する。キャッシュサーバ９１は、例示的に、Central Processing Unit（ＣＰＵ）９１１及びＤＲＡＭ９１２を備える。
【００４８】
ＣＰＵ９１１は、種々の制御や演算を行なう処理装置である。
【００４９】
ＤＲＡＭ９１２は、ＤＢＭＳ（図５では不図示）に格納されているアイテムの一部を記憶する。
【００５０】
クライアント９２は、キャッシュサーバ９１が保持しているアイテムをＧｅｔコマンドによって取得する。クライアント９２は、所望のアイテムに対するキー（Ｋｅｙ）を索引として、目的のアイテムをキャッシュサーバ９１から取得してよい。
【００５１】
クライアント９２は、Ｓｅｔコマンドにより、キャッシュサーバ９１に対して、アイテムの索引となるキー（Ｋｅｙ）とアイテムの内容を示すバリュー（Ｖａｌｕｅ）との追加や更新を行なう。キャッシュサーバ９１において、ＤＲＡＭ９１２の容量が一杯の場合には、ＣＰＵ９１１は、追い出しアルゴリズムによりＤＲＡＭ９１２に格納されているアイテムを追い出して、新たなアイテムをＤＲＡＭ９１２に追加してよい。追い出しアルゴリズムの一例としては、Least Recently Used（ＬＲＵ）やLeast Frequently Used（ＬＦＵ）がある。
【００５２】
〔Ｂ〕実施形態の一例
〔Ｂ−１〕概要
図６は、実施形態の一例としてのキャッシュサーバ１におけるデータの移動動作の概略を説明する図である。
【００５３】
本実施形態の一例におけるキャッシュサーバ１（図７等を用いて後述）は、キャッシュしているデータのアクセス頻度とレイテンシとを考慮して、オンラインアイテム配置アルゴリズムにより、各アイテムの格納先のメモリを決定する。ここで、オンラインとは、データの格納先を動的に変更できることを意味する。なお、データはアイテムと称されてよく、格納先は配置先と称されてもよい。
【００５４】
各アイテムの格納先は、アクセス頻度順に加えて、アイテムのサイズに応じて定められるレイテンシを考慮して、ＤＲＡＭ１２とＮＡＮＤ型フラッシュメモリ１３との間でアイテムの入れ替えを行なうように、決定されてよい。アイテムの入れ替えは、キャッシュメモリ全体での評価値が最適化されるように、実施されてよい。なお、ＤＲＡＭ１２及びＮＡＮＤ型フラッシュメモリ１３については、図７等を用いて後述する。また、評価値については、図９等を用いて後述する。
【００５５】
図６に示す例において、アクセス頻度順の配置では、ＤＲＡＭ１２に格納されているアイテムＣの人気度（「アクセス頻度」と称されてもよい。）は、ＮＡＮＤ型フラッシュメモリ１３に格納されているアイテムＤ及びＥの人気度よりも上位である。ここで、アクセス頻度順に加えて、アイテムＤ及びＥをＤＲＡＭ１２へ移動（符号Ｅ１を参照）した場合におけるレイテンシの向上と、アイテムＣをＮＡＮＤ型フラッシュメモリ１３へ移動（符号Ｅ２を参照）した場合におけるレイテンシの低下を考慮する。そして、アイテムＤ及びＥについてのレイテンシの向上と、アイテムＣについてのレイテンシの低下とによる損得を考慮して、キャッシュメモリ全体として得をするように、アイテムの入れ替えを行なうか否かが決定されてよい。
【００５６】
〔Ｂ−２〕システム構成例
図７は、実施形態の一例としてのキャッシュシステム１００におけるシステム構成例を模式的に示すブロック図である。
【００５７】
図７に示すキャッシュシステム１００は、情報処理システムの一例であり、例示的に、キャッシュサーバ１、ＤＢＭＳ２及びクライアント３を備える。
【００５８】
クライアント３は、上位装置の一例であり、キャッシュサーバ１に対して、所望のデータの読み出しを要求する。また、クライアント３は、所望のデータがキャッシュサーバ１に格納されていない場合に、ＤＢＭＳ２から所望のデータを読み出し、読み出したデータをキャッシュサーバ１に格納する。
【００５９】
ＤＢＭＳ２は、記憶装置の一例である。ＤＢＭＳ２は、データを読み書き可能に記憶する装置であり、例えば、ＨＤＤである。ＤＢＭＳ２は、ＲＤＢＭＳであってもよい。
【００６０】
キャッシュサーバ１は、情報処理装置の一例であり、クライアント３に対するレスポンス性能の向上のために、ＤＢＭＳ２に格納されているデータのうち一部のデータを記憶する。図７に示すように、キャッシュサーバ１は、例示的に、ＣＰＵ１１、ＤＲＡＭ１２及びＮＡＮＤ型フラッシュメモリ１３を備える。
【００６１】
ＤＲＡＭ１２は、第１のデータを格納する第１メモリの一例であり、データを読み書き可能に記憶できる揮発性の記憶装置である。
【００６２】
ＮＡＮＤ型フラッシュメモリ１３は、第２のデータを格納する第２メモリの一例であり、データを読み書き可能に記憶できる不揮発性の記憶装置である。
【００６３】
ＤＲＡＭ１２は、ＮＡＮＤ型フラッシュメモリ１３よりも、アクセス速度が高い。また、ＮＡＮＤ型フラッシュメモリ１３は、ＤＲＡＭ１２よりも、記憶容量が大きい。
【００６４】
ＤＲＡＭ１２とＮＡＮＤ型フラッシュメモリ１３とは、それぞれキャッシュメモリと称されてもよい。キャッシュサーバ１に備えられる２種類のキャッシュメモリは、互いにアクセス速度が異なっていればよく、ＤＲＡＭ１２及びＮＡＮＤ型フラッシュメモリ１３に限定されるものではない。キャッシュサーバ１は、例えば、キャッシュメモリとして、複数のアクセス速度の記憶素子を有する階層型メモリを備えてもよい。
【００６５】
ＣＰＵ１１は、例示的に、種々の制御や演算を行なう処理装置であり、キャッシュサーバ１に備えられる補助記憶装置（不図示）から例えばＤＲＡＭ１２に読み出されたOperating System（ＯＳ）やプログラムを実行することにより、種々の機能を実現する。すなわち、ＣＰＵ１１は、図７に示すように、第１算出部１１１、第２算出部１１２、決定部１１３、読み出し部１１４、及び、書き込み部１１５として機能してよい。
【００６６】
なお、これらの第１算出部１１１、第２算出部１１２、決定部１１３、読み出し部１１４、及び、書き込み部１１５としての機能を実現するためのプログラムは、コンピュータ読取可能な記録媒体に記録された形態で提供されてよい。コンピュータ読取可能な記録媒体は、例えば、フレキシブルディスク、ＣＤ、ＤＶＤ、ブルーレイディスク、磁気ディスク、光ディスク、又は、光磁気ディスクであってよい。なお、ＣＤは、ＣＤ−ＲＯＭ、例えば、ＣＤ−Ｒ、又は、ＣＤ−ＲＷであってよい。また、ＤＶＤは、例えば、ＤＶＤ−ＲＯＭ、ＤＶＤ−ＲＡＭ、ＤＶＤ−Ｒ、ＤＶＤ＋Ｒ、ＤＶＤ−ＲＷ、ＤＶＤ＋ＲＷ、又は、ＨＤ  ＤＶＤであってよい。そして、コンピュータ（例えば、ＣＰＵ１１）は上述した記録媒体から図示しない読取装置を介してプログラムを読み取って内部記録装置または外部記録装置に転送し格納して用いてよい。また、プログラムを、例えば磁気ディスク，光ディスク，光磁気ディスク等の記憶装置（記録媒体）に記録しておき、記憶装置から通信経路を介してコンピュータに提供してもよい。
【００６７】
第１算出部１１１、第２算出部１１２、決定部１１３、読み出し部１１４、及び、書き込み部１１５としての機能を実現する際には、内部記憶装置（例えば、ＤＲＡＭ１２）に格納されたプログラムがコンピュータ（例えば、ＣＰＵ１１）によって実行されてよい。また、記録媒体に記録されたプログラムをコンピュータが読み取って実行してもよい。
【００６８】
第１算出部１１１、第２算出部１１２、及び、決定部１１３の機能については、図９等を用いて後述する。
【００６９】
読み出し部１１４は、クライアント３からのデータの読み出し要求に応じて、ＤＲＡＭ１２又はＮＡＮＤ型フラッシュメモリ１３からデータを読み出す。
【００７０】
書き込み部１１５は、クライアント３による読み出し対象のデータがＤＲＡＭ１２又はＮＡＮＤ型フラッシュメモリ１３に存在しない場合に、ＤＢＭＳ２から取得した読み出し対象のデータをＤＲＡＭ１２に書き込む。ＤＢＭＳ２からのデータの取得は、クライアント３を介して実施されてよい。
【００７１】
ＤＲＡＭ１２とＮＡＮＤ型フラッシュメモリ１３との間のデータの移動は、読み出し部１１４及び書き込み部１１５によって実施されてよい。すなわち、読み出し部１１４は、後述するように、決定部１１３によってＤＲＡＭ１２とＮＡＮＤ型フラッシュメモリ１３との間で移動させることを決定されたデータを、ＤＲＡＭ１２又はＮＡＮＤ型フラッシュメモリ１３から読み出す。また、書き込み部１１５は、読み出し部１１４によって読み出されたデータを、移動先のＮＡＮＤ型フラッシュメモリ１３又はＤＲＡＭ１２に書き込む。
【００７２】
図８の（１）は、実施形態の一例としてのキャッシュサーバ１が備えるＤＲＡＭ１２におけるアイテムの管理方法を説明する図である。図８の（２）は、実施形態の一例としてのキャッシュサーバ１が備えるＮＡＮＤ型フラッシュメモリ１３におけるアイテムの管理方法を説明する図である。
【００７３】
図８の（１）及び（２）に示すように、ＤＲＡＭ１２とＮＡＮＤ型フラッシュメモリ１３とのそれぞれにおいて、アクセス頻度は、１つのＬＲＵによって管理されてよい。ＤＲＡＭ１２及びＮＡＮＤ型フラッシュメモリ１３においては、データ容量の制約があるため、ＬＲＵリストの長さは、固定長ではなく、可変長であってよい。ＤＲＡＭ１２及びＮＡＮＤ型フラッシュメモリ１３に格納されるアイテムのサイズに応じて、格納されるアイテムの数は変化してよい。
【００７４】
書き込み部１１５は、ＤＢＭＳ２から新たにキャッシュデータとして追加されるアイテムを、ＤＲＡＭ１２に書き込んでよい。書き込み部１１５は、ＤＲＡＭ１２のＬＲＵリストから追い出されたアイテムを、ＮＡＮＤ型フラッシュメモリ１３のＬＲＵの先頭に配置してよい。
【００７５】
図８の（１）に示す例において、ＤＲＡＭ１２のＬＲＵリストには、アイテムＡ，アイテムＢ，アイテムＣの順に、キャッシュデータが配置されている。また、図８の（２）に示す例において、ＮＡＮＤ型フラッシュメモリ１３のＬＲＵリストには、アイテムＤ，アイテムＥ，アイテムＦの順に、キャッシュデータが配置されている。
【００７６】
図９は、実施形態の一例としてのキャッシュサーバ１におけるアイテムの移動処理を例示する図である。
【００７７】
図９において図示しているアイテムＡ〜Ｆの大きさは、各アイテムのデータサイズに比例している。例えば、アイテムＡはアイテムＢよりもデータサイズが大きく、アイテムＢはアイテムＣよりもデータサイズが小さい。また、アイテムＡとアイテムＤとアイテムＥとは、互いにデータサイズが同じである。
【００７８】
符号Ｆ１に示すように、ＤＲＡＭ１２のＬＲＵリストには、アイテムＡ，アイテムＢ，アイテムＣの順に、キャッシュデータが配置されている。また、ＮＡＮＤ型フラッシュメモリ１３のＬＲＵリストには、アイテムＤ，アイテムＥ，アイテムＦの順に、キャッシュデータが配置されている。この状態で、アイテムＥに対するキャッシュヒットが発生したことを想定する。
【００７９】
符号Ｆ２に示すように、キャッシュヒットが発生したアイテムＥをＤＲＡＭ１２に移動させない場合には、ＤＲＡＭ１２のＬＲＵリストには、符号Ｆ１に示した場合と同様に、アイテムＡ，アイテムＢ，アイテムＣの順に、キャッシュデータが配置されている。一方、ＮＡＮＤ型フラッシュメモリ１３のＬＲＵリストでは、キャッシュヒットが発生したアイテムＥを先頭として、アイテムＥ，アイテムＤ，アイテムＦの順に、キャッシュデータの配置が変化する。
【００８０】
符号Ｆ３に示すように、キャッシュヒットが発生したアイテムＥをＤＲＡＭ１２に移動させる場合には、アイテムＥと入れ替わりに、ＤＲＡＭ１２のＬＲＵリストの最後に配置されていたアイテムＣがＮＡＮＤ型フラッシュメモリ１３に移動させられる。そして、ＤＲＡＭ１２のＬＲＵリストでは、ＮＡＮＤ型フラッシュメモリ１３から移動してきたアイテムＥを先頭として、アイテムＥ，アイテムＡ，アイテムＢの順に、キャッシュデータの配置が変化する。また、ＮＡＮＤ型フラッシュメモリ１３のＬＲＵリストでは、ＤＲＡＭ１２から移動してきたアイテムＣを先頭として、アイテムＣ，アイテムＤ，アイテムＦの順に、キャッシュデータの配置が変化する。
【００８１】
図９に示す例において、アイテムＥのデータサイズは、アイテムＣのデータサイズよりも小さい。このため、符号Ｆ３においては、ＤＲＡＭ１２にアイテムＥを登録しても、ＤＲＡＭ１２の記憶容量に空きが発生している。
【００８２】
そこで、符号Ｆ４に示すように、アイテムＥに加えて、符号Ｆ２においてＮＡＮＤ型フラッシュメモリ１３のＬＲＵリストで２番目に配置されていたアイテムＤも、ＤＲＡＭ１２に移動されてよい。これにより、ＤＲＡＭ１２のＬＲＵリストでは、ＮＡＮＤ型フラッシュメモリ１３から追加で移動してきたアイテムＤを先頭として、アイテムＤ，アイテムＥ，アイテムＡ，アイテムＢの順に、キャッシュデータの配置が変化する。また、ＮＡＮＤ型フラッシュメモリ１３のＬＲＵリストでは、ＤＲＡＭ１２へ移動したアイテムＤを除いた、アイテムＣ，アイテムＦの順に、キャッシュデータの配置が変化する。
【００８３】
第１算出部１１１は、キャッシュヒットしたデータをＤＲＡＭ１２に移動させる場合における第１の評価値を算出する。
【００８４】
第２算出部１１２は、キャッシュヒットしたデータをＤＲＡＭ１２に移動させない場合における第１の評価値を算出する。
【００８５】
評価値は、ＤＲＡＭ１２とＮＡＮＤ型フラッシュメモリ１３との間において移動候補（「移動対象」と称されてもよい。）となるアイテムの、アクセス確率とレイテンシとを用いて算出されてよい。評価値は、平均レイテンシや平均読み出し時間と称されてもよい。
【００８６】
第１算出部１１１は、ＤＲＡＭ１２とＮＡＮＤ型フラッシュメモリ１３との間でアイテムを移動させる場合におけるアクセス確率とレイテンシとの積の、移動候補のデータについての和を、第１の評価値として算出する。別言すれば、第１算出部１１１は、ＤＲＡＭ１２とＮＡＮＤ型フラッシュメモリ１３との間でアイテムを移動させる場合において、移動候補の各アイテムについてのアクセス確率とレイテンシとの積を算出し、算出した各アイテムについての積を足し合わせる。
【００８７】
第２算出部１１２は、ＤＲＡＭ１２とＮＡＮＤ型フラッシュメモリ１３との間でアイテムを移動させない場合におけるアクセス確率とレイテンシとの積の、移動候補のデータについての和を、第２の評価値として算出する。別言すれば、第２算出部１１２は、ＤＲＡＭ１２とＮＡＮＤ型フラッシュメモリ１３との間でアイテムを移動させない場合において、移動候補の各アイテムについてのアクセス確率とレイテンシとの積を算出し、算出した各アイテムについての積を足し合わせる。
【００８８】
レイテンシは、読み出し時間やアクセス時間と称されてもよい。
【００８９】
決定部１１３は、移動候補のデータについてのアクセス確率とレイテンシとに基づき、移動候補のデータについて、ＤＲＡＭ１２とＮＡＮＤ型フラッシュメモリ１３との中から格納先を決定する。別言すれば、決定部１１３は、第１の評価値が第２の評価値よりも小さい場合に、ＤＲＡＭ１２に格納されているデータをＮＡＮＤ型フラッシュメモリ１３に移動させることを決定する。また、決定部１１３は、第１の評価値が第２の評価値よりも小さい場合に、ＮＡＮＤ型フラッシュメモリ１３に格納されているデータをＤＲＡＭ１２に移動させることを決定する。一方、決定部１１３は、第１の評価値が第２の評価値以上の場合には、ＤＲＡＭ１２とＮＡＮＤ型フラッシュメモリ１３との間でのアイテムの移動を実施しないことを決定する。
【００９０】
第１算出部１１１及び第２算出部１１２は、読み出し部１１４によってＤＲＡＭ１２及びＮＡＮＤ型フラッシュメモリ１３から実際の読み出しがあった回数を含む統計情報に基づき、各アイテムについてのアクセス確率を推定してよい。各アイテムのアクセス確率は、各アイテムへのアクセス回数を、ＤＲＡＭ１２及びＮＡＮＤ型フラッシュメモリ１３に格納されている全アイテムへのアクセス回数で除算することにより、算出されてよい。
【００９１】
第１算出部１１１及び第２算出部１１２は、ＤＲＡＭ１２とＮＡＮＤ型フラッシュメモリ１３とのそれぞれについての以下の関数を使用して、各アイテムについてのレイテンシを算出してよい。
【００９２】
例えば、チップ規格がＤＤＲ３−２１３３のＤＲＡＭ１２では、レイテンシの算出において、以下の式１が用いられる。ItemSizeは、アイテムのサイズを示す。また、単位MT/sは、１秒間にデータを転送可能な回数を示す。
LDRAM(ItemSize) = ItemSize / (2133MT/s * 8B)・・・（式１）
【００９３】
また、ＮＡＮＤ型フラッシュメモリ１３のレイテンシの算出においては、以下の式２が用いられる。BusyTimeは、ＮＡＮＤ型フラッシュメモリ１３へのアクセスリクエストが発生してから、ＮＡＮＤ型フラッシュメモリ１３からデータが出力し始めるまでの時間を示す。また、BWは、ＮＡＮＤ型フラッシュメモリ１３とＣＰＵ１１内部のホストメモリ（不図示）との間のバンド幅を示す。なお、BusyTimeは50μsであり、BWは400MB/sである。
LNAND(ItemSize) = BusyTime + ItemSize / BW・・・（式２）
【００９４】
図９に示す例において、移動候補のアイテムは、アイテムＣ，Ｄ及びＥである。ＤＲＡＭ１２へアイテムＥを移動させ、更に、空いたＤＲＡＭ１２の領域へアイテムＤを移動させる場合における、アイテムＣ，アイテムＤ及びアイテムＥのアクセス確率とレイテンシとは、符号Ｆ４に示す通りである。すなわち、アイテムＣについて、アクセス確率は0.05であり、ＮＡＮＤ型フラッシュメモリ１３でのレイテンシは80μsである。また、アイテムＤについて、アクセス確率は0.04であり、ＤＲＡＭ１２でのレイテンシは0.8μsである。更に、アイテムＥについて、アクセス確率は0.03であり、ＤＲＡＭ１２でのレイテンシは0.8μsである。
【００９５】
図９の符号Ｆ４に示す例において、第１算出部１１１は、以下の式３によって、第１の評価値を算出する。
0.05*80 + 0.04*0.8 + 0.03*0.8 = 4.06μs・・・（式３）
【００９６】
図９に示す例において、ＤＲＡＭ１２にアイテムＥ及びＤを移動させない場合における、アイテムＣ，アイテムＤ及びアイテムＥのアクセス確率とレイテンシとは、符号Ｆ２に示す通りである。すなわち、アイテムＣについて、アクセス確率は0.05であり、ＤＲＡＭ１２でのレイテンシは1.6μsである。また、アイテムＤについて、アクセス確率は0.04であり、ＮＡＮＤ型フラッシュメモリ１３でのレイテンシは60μsである。更に、アイテムＥについて、アクセス確率は0.03であり、ＮＡＮＤ型フラッシュメモリ１３でのレイテンシは60μsである。
【００９７】
図９の符号Ｆ２に示す例において、第２算出部１１２は、以下の式４によって、第２の評価値を算出する。
0.05*1.6 + 0.04*60 + 0.03*60 = 4.28μs・・・（式４）
【００９８】
決定部１１３は、第１算出部１１１によって算出された第１の評価値が第２算出部１１２によって算出された第２の評価値よりも小さい場合に、移動候補のアイテムを移動させることを決定する。図９に示す例では、第１の評価値4.06μsは、第２の評価値4.28μsよりも小さい。そこで、決定部１１３は、符号Ｆ４に示すように、ＮＡＮＤ型フラッシュメモリ１３に格納されているアイテムＤ及びＥをＤＲＡＭ１２に移動させ、ＤＲＡＭ１２に格納されているアイテムＣをＮＡＮＤ型フラッシュメモリ１３に移動させることを決定する。
【００９９】
なお、符号Ｆ４に示す例において、アイテムＤはＤＲＡＭ１２のＬＲＵリストの先頭に配置されているが、これに限定されるものではない。アイテムＤに対するキャッシュヒットは発生していないため、アイテムＤは、ＤＲＡＭ１２のＬＲＵリストにおける２番目や最後尾等のより下位に配置されてもよい。
【０１００】
〔Ｂ−３〕動作例
上述した実施形態の一例としてのキャッシュサーバ１におけるアイテムの移動判定処理を、図１０に示すフローチャート（ステップＳ１〜Ｓ９）に従って説明する。図１０のフローチャートに示す処理は、ＤＲＡＭ１２又はＮＡＮＤ型フラッシュメモリ１３にキャッシュされたいずれかのアイテムへのキャッシュヒットをトリガとして、開始されてよい。
【０１０１】
決定部１１３は、キャッシュヒットが発生したアイテムＸはＮＡＮＤ型フラッシュメモリ１３側に配置されているかを判定する（ステップＳ１）。
【０１０２】
アイテムＸがＮＡＮＤ型フラッシュメモリ１３側に配置されていない（別言すれば、ＤＲＡＭ１２側に配置されている）場合には（ステップＳ１のＮｏルート参照）、アイテムＸの移動を行なわずに、処理は終了する。
【０１０３】
一方、アイテムＸがＮＡＮＤ型フラッシュメモリ１３側に配置されている場合には（ステップＳ１のＹｅｓルート参照）、決定部１１３は、ＤＲＡＭ１２においてアイテムＸを移動させるための空き容量があるかを判定する（ステップＳ２）。
【０１０４】
ＤＲＡＭ１２に空き容量がある場合には（ステップＳ２のＹｅｓルート参照）、決定部１１３は、アイテムＸをＮＡＮＤ型フラッシュメモリ１３からＤＲＡＭ１２に移動させることを決定する（ステップＳ３）。そして、処理は終了する。
【０１０５】
一方、ＤＲＡＭ１２に空き容量がない場合には（ステップＳ２のＮｏルート参照）、第２算出部１１２は、アイテムＸがＮＡＮＤ型フラッシュメモリ１３にある場合の評価値ＬＮ（Ｘ）を算出する。また、第１算出部１１１は、アイテムＸがＤＲＡＭ１２にある場合の評価値ＬＤ（Ｘ）を算出する（ステップＳ４）。
【０１０６】
第１算出部１１１は、ＤＲＡＭ１２側ＬＲＵの下位Ｊ個のアイテムＹｊがＮＡＮＤ型フラッシュメモリ１３にある場合の評価値ＬＮ（Ｙｊ）を算出する。また、第２算出部１１２は、ＤＲＡＭ１２側ＬＲＵの下位Ｊ個のアイテムＹｊがＤＲＡＭ１２にある場合の評価値ＬＤ（Ｙｊ）を算出する（ステップＳ５）。ここで、Ｊは、正の整数であり、アイテムＸを格納するためのデータ容量がＤＲＡＭ１２において確保されるように決定される。別言すれば、Ｊは、アイテムＸのサイズが１又は複数のアイテムＹｊの合計サイズ以下となるための、最小の値である。また、ｊは、１以上Ｊ以下の整数である。
【０１０７】
決定部１１３は、アイテムＸをＤＲＡＭ１２に移動しても、まだＤＲＡＭ１２に空き容量があるかを判定する（ステップＳ６）。
【０１０８】
ＤＲＡＭ１２に空き容量がない場合には（ステップＳ６のＮｏルート参照）、処理はステップＳ８へ移行する。
【０１０９】
一方、ＤＲＡＭ１２に空き容量がある場合には（ステップＳ６のＹｅｓルート参照）、処理はステップＳ７へ移行する。すなわち、第２算出部１１２は、ＮＡＮＤ型フラッシュメモリ１３側ＬＲＵの２番目から上位Ｉ個のアイテムＸｉがＮＡＮＤ型フラッシュメモリ１３にある場合の評価値ＬＮ（Ｘｉ）を算出する。また、第１算出部１１１は、ＮＡＮＤ型フラッシュメモリ１３側ＬＲＵの２番目から上位Ｉ個のアイテムＸｉがＤＲＡＭ１２にある場合の評価値ＬＤ（Ｘｉ）を算出する（ステップＳ７）。ここで、Ｉは、正の整数であり、ＤＲＡＭ１２の空き容量が埋まるように決定される。別言すれば、Ｉは、アイテムＸのサイズと、１又は複数のアイテムＸｉの合計サイズとの和が、ＤＲＡＭ１２の空き容量以下となるための、最大の値である。また、ｉは、１以上Ｉ以下の整数である。
【０１１０】
決定部１１３は、以下の式５が満たされるかを判定する（ステップＳ８）。なお、LD(X)，LD(Xi)及びLD(Yj)は、上述した式１を用いて算出したレイテンシLDRAM(ItemSize)と、当該アイテムのアクセス確率とを乗算することによって、算出される。また、LN(X)，LN(Xi)及びLN(Yj)は、上述した式２を用いて算出したレイテンシLNAND(ItemSize)と、当該アイテムのアクセス確率とを乗算することによって、算出される。
LN(X) + ΣLN(Xi) + ΣLD(Yj) > LD(X) + ΣLD(Xi) +ΣLN(Yj)・・・（式５）
【０１１１】
別言すれば、決定部１１３は、移動候補のアイテムについての移動前の評価値の和が、移動候補のアイテムについての移動後の評価値の和よりも大きいかを判定する。
【０１１２】
上記の式５が満たされない場合には（ステップＳ８のＮｏルート参照）、アイテムＸの移動を行なわずに、処理は終了する。
【０１１３】
一方、上記の式５が満たされる場合には（ステップＳ８のＹｅｓルート参照）、決定部１１３は、アイテムＸをＮＡＮＤ型フラッシュメモリ１３からＤＲＡＭ１２に移動させることを決定する。加えて、決定部１１３は、移動候補のアイテムＸｉが存在する場合には、アイテムＸｉをＮＡＮＤ型フラッシュメモリ１３からＤＲＡＭ１２に移動させることを決定する。また、決定部１１３は、アイテムＹｊをＤＲＡＭ１２からＮＡＮＤ型フラッシュメモリ１３に移動させることを決定する（ステップＳ９）。そして、処理は終了する。
【０１１４】
〔Ｂ−４〕効果
上述した実施形態の一例におけるキャッシュサーバ１によれば、例えば、以下のような効果を奏することができる。
【０１１５】
決定部１１３は、第１及び第２のデータについてのアクセス確率とレイテンシとに基づき、第１及び第２のデータについて、ＤＲＡＭ１２及びＮＡＮＤ型フラッシュメモリ１３の中から格納先を決定する。
【０１１６】
これにより、メモリに格納されるデータへのアクセス性能を向上させることができる。具体的には、アクセス確率とレイテンシとに基づいて、適切なキャッシュメモリに各キャッシュデータを配置することができる。
【０１１７】
第１算出部１１１は、ＤＲＡＭ１２とＮＡＮＤ型フラッシュメモリ１３との間でデータの格納先を変更する場合における第１の評価値を、アクセス確率とレイテンシとを用いて算出する。また、第２算出部１１２は、ＤＲＡＭ１２とＮＡＮＤ型フラッシュメモリ１３との間でデータの格納先を変更しない場合における第２の評価値を、アクセス確率とレイテンシとを用いて算出する。そして、決定部１１３は、第１の評価値が第２の評価値よりも小さい場合に、第１のデータを第２メモリへ格納させ、第２のデータを第１メモリへ格納させるように、格納先を決定する。
【０１１８】
これにより、大きなアイテムをＮＡＮＤ型フラッシュメモリ１３に移動させる一方、アクセス頻度が高めの小さなアイテムをＤＲＡＭ１２に移動させるため、キャッシュメモリ全体における評価値を低下させ、アクセス性能を向上できる。
【０１１９】
第１の評価値は、ＤＲＡＭ１２とＮＡＮＤ型フラッシュメモリ１３との間でデータを移動させる場合におけるアクセス確率とレイテンシとの積の、第１及び第２のデータについての和である。また、第２の評価値は、ＤＲＡＭ１２とＮＡＮＤ型フラッシュメモリ１３との間でデータを移動させない場合におけるアクセス確率とレイテンシとの積の、第１及び第２のデータについての和である。
【０１２０】
これにより、評価値の算出を正確にでき、評価値の信頼性を向上できる。また、移動候補のデータ以外のデータについてのレイテンシを算出しないため、算出時間を短縮できる。
【０１２１】
決定部１１３は、ＮＡＮＤ型フラッシュメモリ１３に格納されている第２のデータについて、ＤＲＡＭ１２に格納されているデータのうちアクセス頻度が最も低い第１のデータとの入れ替えを行なうかを決定することにより、格納先を決定する。
【０１２２】
これにより、アクセス頻度が低いデータを、高速・低容量のＤＲＡＭ１２から低速・大容量のＮＡＮＤ型フラッシュメモリ１３へ移動させることができる。
【０１２３】
読み出し部１１４は、クライアント３からのデータの読み出し要求に応じて、ＤＲＡＭ１２又はＮＡＮＤ型フラッシュメモリ１３からデータを読み出す。また、ＤＲＡＭ１２は、ＮＡＮＤ型フラッシュメモリ１３よりもアクセス速度が高い。そして、決定部１１３は、読み出し部１１４によってＮＡＮＤ型フラッシュメモリ１３から読み出された第２のデータについて、ＤＲＡＭ１２に格納されている第１のデータとの入れ替えを行なうかを決定する。
【０１２４】
これにより、各アイテムへのキャッシュヒットにより、ＤＲＡＭ１２又はＮＡＮＤ型フラッシュメモリ１３のリスト内でアイテムの順位が入れ替わったことをトリガとして、各アイテムの格納先を決定できるため、格納先の決定を適切なタイミングで実施できる。
【０１２５】
決定部１１３は、入れ替えを行なってもＤＲＡＭ１２の容量に空きがある場合に、読み出し部１１４によってＮＡＮＤ型フラッシュメモリ１３から読み出された第２のデータ以外の他のデータもＤＲＡＭ１２へ移動させるかを決定する。
【０１２６】
これにより、アクセス速度が高いＤＲＡＭ１２のデータ容量が一杯になるまでＤＲＡＭ１２へアイテムを移動させることができ、キャッシュメモリ全体における評価値を更に向上できる。
【０１２７】
書き込み部１１５は、クライアント３による読み出し対象のデータがＤＲＡＭ１２又はＮＡＮＤ型フラッシュメモリ１３に存在しない場合に、ＤＢＭＳ２から取得した読み出し対象のデータを第１のデータとしてＤＲＡＭ１２に書き込む。また、決定部１１３は、読み出し部１１４によってＮＡＮＤ型フラッシュメモリ１３から読み出された第２のデータについて、書き込み部１１５によってＤＲＡＭ１２に書き込まれた第１のデータとの入れ替えを行なうかを決定する。
【０１２８】
これにより、新たにＤＢＭＳ２からキャッシュされたアイテムがＤＲＡＭ１２に配置された場合でも、アイテムのアクセス確率とレイテンシとに基づいた、適切なアイテムの格納先を決定できる。
【０１２９】
ＤＲＡＭ１２及びＮＡＮＤ型フラッシュメモリ１３は、ＬＲＵによって格納するデータを管理する。
【０１３０】
これにより、キャッシュメモリ内における各アイテムの管理を適切に実施できる。
【０１３１】
〔Ｃ〕第１変形例
上述した実施形態の一例においてはＤＲＡＭ１２及びＮＡＮＤ型フラッシュメモリ１３がＬＲＵによってキャッシュデータを管理していたが、これに限定されるものではない。例えば、ＤＲＡＭ１２及びＮＡＮＤ型フラッシュメモリ１３は、ＬＦＵによってキャッシュデータを管理してもよい。
【０１３２】
図１１は、実施形態の第１変形例としてのキャッシュサーバ１におけるアイテムの移動処理を例示する図である。
【０１３３】
図１１において図示しているアイテムＡ〜Ｆの大きさは、各アイテムのデータサイズに比例している。例えば、アイテムＡはアイテムＢよりもデータサイズが大きく、アイテムＢはアイテムＣよりもデータサイズが小さい。また、アイテムＡとアイテムＤとアイテムＥとは、互いにデータサイズが同じである。
【０１３４】
符号Ｇ１に示すように、ＤＲＡＭ１２のＬＦＵリストには、アイテムＡ，アイテムＢ，アイテムＣの順に、キャッシュデータが配置されている。また、ＮＡＮＤ型フラッシュメモリ１３のＬＦＵリストには、アイテムＤ，アイテムＥ，アイテムＦの順に、キャッシュデータが配置されている。
【０１３５】
ＤＲＡＭ１２において、アイテムＡ，Ｂ及びＣの参照回数は、それぞれ１０回，９回及び５回である。また、ＮＡＮＤ型フラッシュメモリ１３において、アイテムＤ，Ｅ及びＦの参照回数は、それぞれ５回，４回及び１回である。すなわち、ＤＲＡＭ１２毎、及び、ＮＡＮＤ型フラッシュメモリ１３毎に、各アイテムは、参照回数順に配置されている。アイテムの参照回数の更新は、アイテムの読み出しを行なう度に、読み出し部１１４によって実行されてよい。
【０１３６】
この状態で、アイテムＤに対するキャッシュヒットが発生したことを想定する。これにより、アイテムＤの参照回数は、５回から６回に増加する。
【０１３７】
符号Ｇ２に示すように、キャッシュヒットしたアイテムＤをＤＲＡＭ１２に移動させない場合には、ＤＲＡＭ１２のＬＦＵリストには、符号Ｇ１に示した場合と同様に、アイテムＡ，アイテムＢ，アイテムＣの順に並ぶように、キャッシュデータが配置されている。また、ＮＡＮＤ型フラッシュメモリ１３のＬＦＵリストでは、参照回数が６回に増加したアイテムＤを先頭として、符号Ｇ１に示した場合と同様に、アイテムＤ，アイテムＥ，アイテムＦの順に並ぶように、キャッシュデータが配置されている。
【０１３８】
符号Ｇ３に示すように、アイテムＤをＤＲＡＭ１２に移動させる場合には、アイテムＤと入れ替わりに、ＤＲＡＭ１２のＬＦＵリストの最後尾に配置されていたアイテムＣをＮＡＮＤ型フラッシュメモリ１３に移動させる。そして、ＤＲＡＭ１２のＬＦＵリストでは、ＮＡＮＤ型フラッシュメモリ１３から移動してきたアイテムＤを最後尾に、アイテムＡ，アイテムＢ，アイテムＤの順に並ぶように、キャッシュデータの配置が変化する。また、ＮＡＮＤ型フラッシュメモリ１３のＬＦＵリストでは、ＤＲＡＭ１２から移動してきたアイテムＣを先頭として、アイテムＣ，アイテムＥ，アイテムＦの順に並ぶように、キャッシュデータの配置が変化する。
【０１３９】
図１１に示す例において、アイテムＤのデータサイズは、アイテムＣのデータサイズよりも小さい。このため、符号Ｇ３においては、ＤＲＡＭ１２にアイテムＤを登録しても、ＤＲＡＭ１２の記憶容量に空きが発生している。
【０１４０】
そこで、符号Ｇ４に示すように、アイテムＤに加えて、符号Ｇ２においてＮＡＮＤ型フラッシュメモリ１３のＬＦＵリストで２番目に配置されていたアイテムＥも、ＤＲＡＭ１２に移動されてよい。これにより、ＤＲＡＭ１２のＬＦＵリストでは、ＮＡＮＤ型フラッシュメモリ１３から追加で移動してきたアイテムＥを最後尾に、アイテムＡ，アイテムＢ，アイテムＤ，アイテムＥの順に並ぶように、キャッシュデータの配置が変化する。また、ＮＡＮＤ型フラッシュメモリ１３のＬＦＵリストでは、ＤＲＡＭ１２へ移動したアイテムＥを除いた、アイテムＣ，アイテムＦの順に並ぶように、キャッシュデータの配置が変化する。
【０１４１】
決定部１１３は、ＮＡＮＤ型フラッシュメモリ１３においてキャッシュヒットしたアイテムの参照回数がＤＲＡＭ１２のＬＦＵリストの最後尾アイテムの参照回数を超えた場合に、実施形態の一例で上述した処理により、アイテムの移動を実施するかを判定してよい。図１１の符号Ｇ２に示す例では、ＮＡＮＤ型フラッシュメモリ１３においてキャッシュヒットしたアイテムＤの参照回数６回が、ＤＲＡＭ１２のＬＲＵリストの最後尾アイテムの参照回数５回を超えている。よって、決定部１１３は、実施形態の一例で上述した処理により、ＤＲＡＭ１２とＮＡＮＤ型フラッシュメモリ１３との間でのアイテムの移動を実施するかを判定する。
【０１４２】
上述した実施形態の第１変形例としてのキャッシュサーバ１におけるアイテムの移動判定処理を、図１２及び図１３に示すフローチャート（ステップＳ１１〜Ｓ２１）に従って説明する。なお、図１２にはステップＳ１１〜Ｓ１５の処理を示し、図１３にはステップＳ１６〜Ｓ２１の処理を示す。図１２及び図１３のフローチャートに示す処理は、ＤＲＡＭ１２又はＮＡＮＤ型フラッシュメモリ１３にキャッシュされたいずれかのアイテムへのキャッシュヒットをトリガとして、開始されてよい。
【０１４３】
読み出し部１１４は、アイテムＸにキャッシュヒットが発生すると、アイテムＸの参照回数を１インクリメントする（図１２のステップＳ１１）。
【０１４４】
決定部１１３は、アイテムＸはＮＡＮＤ型フラッシュメモリ１３側に配置されているかを判定する（図１２のステップＳ１２）。
【０１４５】
アイテムＸがＮＡＮＤ型フラッシュメモリ１３側に配置されていない（別言すれば、ＤＲＡＭ１２側に配置されている）場合には（図１２のステップＳ１２のＮｏルート参照）、アイテムＸは移動されずに、処理は終了する。
【０１４６】
一方、アイテムＸがＮＡＮＤ型フラッシュメモリ１３側に配置されている場合には（図１２のステップＳ１２のＹｅｓルート参照）、決定部１１３は、アイテムＸの参照回数がアイテムＹの参照回数よりも大きいかを判定する（図１２のステップＳ１３）。ここで、アイテムＹは、ＤＲＡＭ１２のＬＦＵリストの最後尾のアイテムである。
【０１４７】
アイテムＸの参照回数がアイテムＹの参照回数以下である場合には（図１２のステップＳ１３のＮｏルート参照）、アイテムＸは移動されずに、処理は終了する。
【０１４８】
一方、アイテムＸの参照回数がアイテムＹの参照回数よりも大きい場合には（図１２のステップＳ１３のＹｅｓルート参照）、決定部１１３は、ＤＲＡＭ１２においてアイテムＸを移動させるための空き容量があるかを判定する（図１２のステップＳ１４）。
【０１４９】
ＤＲＡＭ１２に空き容量がある場合には（図１２のステップＳ１４のＹｅｓルート参照）、決定部１１３は、アイテムＸをＮＡＮＤ型フラッシュメモリ１３からＤＲＡＭ１２に移動させることを決定する（図１２のステップＳ１５）。そして、処理は終了する。
【０１５０】
一方、ＤＲＡＭ１２に空き容量がない場合には（図１２のステップＳ１４のＮｏルート参照）、第２算出部１１２は、アイテムＸがＮＡＮＤ型フラッシュメモリ１３にある場合の評価値ＬＮａｖｇ（Ｘ）を算出する。また、第１算出部１１１は、アイテムＸがＤＲＡＭ１２にある場合の評価値ＬＤａｖｇ（Ｘ）を算出する（図１３のステップＳ１６）。
【０１５１】
第１算出部１１１は、ＤＲＡＭ１２側ＬＦＵの下位Ｊ個のアイテムＹｊがＮＡＮＤ型フラッシュメモリ１３にある場合の評価値ＬＮａｖｇ（Ｙｊ）を算出する。また、第２算出部１１２は、ＤＲＡＭ１２側ＬＦＵの下位Ｊ個のアイテムＹｊがＤＲＡＭ１２にある場合の評価値ＬＤａｖｇ（Ｙｊ）を算出する（図１３のステップＳ１７）。ここで、Ｊは、正の整数であり、アイテムＸを格納するためのデータ容量がＤＲＡＭ１２において確保されるように決定される。別言すれば、Ｊは、アイテムＸのサイズが１又は複数のアイテムＹｊの合計サイズ以下となるための、最小の値である。また、ｊは、１以上Ｊ以下の整数である。
【０１５２】
決定部１１３は、アイテムＸをＤＲＡＭ１２に移動しても、まだＤＲＡＭ１２に空き容量があるかを判定する（図１３のステップＳ１８）。
【０１５３】
ＤＲＡＭ１２に空き容量がない場合には（図１３のステップＳ１８のＮｏルート参照）、処理は図１３のステップＳ２０へ移行する。
【０１５４】
一方、ＤＲＡＭ１２に空き容量がある場合には（図１３のステップＳ１８のＹｅｓルート参照）、処理は図１３のステップＳ１９へ移行する。そして、第２算出部１１２は、ＮＡＮＤ型フラッシュメモリ１３側ＬＦＵの２番目から上位Ｉ個のアイテムＸｉがＮＡＮＤ型フラッシュメモリ１３にある場合の評価値ＬＮａｖｇ（Ｘｉ）を算出する。また、第１算出部１１１は、ＮＡＮＤ型フラッシュメモリ１３側ＬＦＵの２番目から上位Ｉ個のアイテムＸｉがＤＲＡＭ１２にある場合の評価値ＬＤａｖｇ（Ｘｉ）を算出する（図１３のステップＳ１９）。ここで、Ｉは、正の整数であり、ＤＲＡＭ１２の空き容量が埋まるように決定される。別言すれば、Ｉは、アイテムＸのサイズと、１又は複数のアイテムＸｉの合計サイズとの和が、ＤＲＡＭ１２の空き容量以下となるための、最大の値である。また、ｉは、１以上Ｉ以下の整数である。
【０１５５】
決定部１１３は、以下の式６が満たされるかを判定する（図１３のステップＳ２０）。なお、LDavg(X)，LDavg(Xi)及びLDavg(Yj)は、上述した式１を用いて算出したレイテンシLDRAM(ItemSize)と、当該アイテムのアクセス確率とを乗算することによって、算出される。また、LNavg(X)，LNavg(Xi)及びLNavg(Yj)は、上述した式２を用いて算出したレイテンシLNAND(ItemSize)と、当該アイテムのアクセス確率とを乗算することによって、算出される。
LNavg(X) + ΣLNavg(Xi) + ΣLDavg(Yj) > LDavg(X) + ΣLDavg(Xi) +ΣLNavg(Yj)・・・（式６）
【０１５６】
別言すれば、決定部１１３は、移動候補のアイテムについての移動前の評価値の和が、移動候補のアイテムについての移動後の評価値の和よりも大きいかを判定する。
【０１５７】
上記の式６が満たされない場合には（図１３のステップＳ２０のＮｏルート参照）、アイテムＸの移動を行なわずに、処理は終了する。
【０１５８】
一方、上記の式６が満たされる場合には（図１３のステップＳ２０のＹｅｓルート参照）、決定部１１３は、アイテムＸをＮＡＮＤ型フラッシュメモリ１３からＤＲＡＭ１２に移動させることを決定する。加えて、決定部１１３は、移動候補のアイテムＸｉが存在する場合には、アイテムＸｉをＮＡＮＤ型フラッシュメモリ１３からＤＲＡＭ１２に移動させることを決定する。また、決定部１１３は、アイテムＹｊをＤＲＡＭ１２からＮＡＮＤ型フラッシュメモリ１３に移動させることを決定する（図１３のステップＳ２１）。そして、処理は終了する。
【０１５９】
上述した実施形態の第１変形例におけるキャッシュサーバ１によれば、実施形態の一例において奏することができる上述した効果の他、例えば、以下のような効果を奏することができる。
【０１６０】
ＤＲＡＭ１２及びＮＡＮＤ型フラッシュメモリ１３は、ＬＦＵによって格納するデータを管理する。
【０１６１】
これにより、キャッシュメモリ内における各アイテムの管理を適切に実施できる。
【０１６２】
〔Ｄ〕第２変形例
上述した実施形態の一例及び第１変形例においてはアイテムへのキャッシュヒットをトリガとして、ＤＲＡＭ１２とＮＡＮＤ型フラッシュメモリ１３との間でアイテムの移動を行なうかを判定していたが、これに限定されるものではない。例えば、アイテムへのキャッシュヒットとは非同期に、バックグラウンドで、ＤＲＡＭ１２とＮＡＮＤ型フラッシュメモリ１３との間でアイテムの移動を行なうかを判定してもよい。
【０１６３】
アイテムの入れ替え処理は、一定時間毎（例えば、１秒毎）に起動し、ＮＡＮＤ型フラッシュメモリ１３のリスト上位の所定数のアイテム（例えば、１０アイテム）に対して実施されてよい。所定数は、入れ替え判定回数の上限値と称されてもよい。
【０１６４】
実施形態の第２変形例としてのキャッシュサーバ１におけるアイテムの移動判定の開始タイミングの決定処理を、図１４に示すフローチャート（ステップＳ３１〜Ｓ３６）に従って説明する。
【０１６５】
決定部１１３は、変数ｎを１に設定する（ステップＳ３１）。
【０１６６】
決定部１１３は、一定時間処理を待機する（ステップＳ３２）。
【０１６７】
決定部１１３は、ＮＡＮＤ型フラッシュメモリ１３側のアクセス頻度リストにおいて、上位ｎ番目のアイテムに対して、移動判定を行なう（ステップＳ３３）。ステップＳ３３における処理の詳細は、図１０，図１２及び図１３を用いて上述したものと同様である。
【０１６８】
決定部１１３は、変数ｎを１インクリメントする（ステップＳ３４）。
【０１６９】
決定部１１３は、変数ｎが入れ替え判定回数の上限値よりも大きいかを判定する（ステップＳ３５）。
【０１７０】
変数ｎが入れ替え判定回数の上限値以下である場合には（ステップＳ３５のＮｏルート参照）、処理はステップＳ３３に戻る。
【０１７１】
一方、変数ｎが入れ替え判定回数の上限値よりも大きい場合には（ステップＳ３５のＹｅｓルート参照）、決定部１１３は、スレッドが停止したかを判定する（ステップＳ３６）。
【０１７２】
スレッドが停止していない場合には（ステップＳ３６のＮｏルート参照）、処理はステップＳ３１に戻る。
【０１７３】
一方、スレッドが停止した場合には（ステップＳ３６のＹｅｓルート参照）、処理は終了する。
【０１７４】
上述した実施形態の第２変形例におけるキャッシュサーバ１によれば、実施形態の一例において奏することができる上述した効果の他、例えば、以下のような効果を奏することができる。
【０１７５】
決定部１１３は、所定時間が経過する毎に、ＮＡＮＤ型フラッシュメモリ１３に格納されている第２のデータについて、ＤＲＡＭ１２に格納されている第１のデータとの入れ替えを行なうかを決定する。
【０１７６】
これにより、クライアント３からのキャッシュデータへのアクセスとアイテムの格納先の決定とを非同期で実施できるため、キャッシュサーバ１における負荷を軽減できる。
【０１７７】
〔Ｅ〕その他
開示の技術は上述した実施形態に限定されるものではなく、本実施形態の趣旨を逸脱しない範囲で種々変形して実施することができる。本実施形態の各構成及び各処理は、必要に応じて取捨選択することができ、あるいは適宜組み合わせてもよい。
【０１７８】
例えば、上述した実施形態の一例及び各変形例においては、キャッシュサーバ１においてキャッシュメモリへのデータの格納先が決定されていたが、これに限定されるものではない。例えば、図７に示したクライアント３のＣＰＵ（不図示）の内部に階層型のキャッシュメモリが備えられることにより、キャッシュデータを利用するクライアント３が単独で、キャッシュメモリへのデータの格納先を決定してもよい。
【０１７９】
〔Ｆ〕付記
以上の実施形態及び変形例に関し、さらに以下の付記を開示する。
【０１８０】
（付記１）
データを格納する第１メモリと、
データを格納し、前記第１メモリとはアクセス速度が異なる第２メモリと、
前記第１メモリに格納されている第１のデータ及び前記第２メモリに格納されている第２のデータについてのそれぞれのアクセス確率とレイテンシとに基づき、前記第１メモリ及び前記第２メモリの中から、前記第１のデータ及び前記第２のデータの格納先を決定する決定部と、
を備える、情報処理装置。
【０１８１】
（付記２）
前記第１メモリと前記第２メモリとの間で、前記第１のデータ及び前記第２のデータの格納先を変更する場合における前記第１のデータ及び前記第２のデータについての、前記第１のデータ及び前記第２のデータの格納先の決定に用いる第１の評価値を、前記アクセス確率と前記レイテンシとを用いて算出する第１算出部と、
前記第１メモリと前記第２メモリとの間で、前記第１のデータ及び前記第２のデータの格納先を変更しない場合における前記第１のデータ及び前記第２のデータについての、前記第１のデータ及び前記第２のデータの格納先の決定に用いる第２の評価値を、前記アクセス確率と前記レイテンシとを用いて算出する第２算出部と、
を更に備え、
前記決定部は、前記第１の評価値が前記第２の評価値よりも小さい場合に、前記第１のデータを前記第２メモリへ格納させ、前記第２のデータを前記第１メモリへ格納させるように、前記格納先を決定する、
付記１に記載の情報処理装置。
【０１８２】
（付記３）
前記第１の評価値は、前記第１メモリと前記第２メモリとの間でデータを移動させる場合における、前記第１のデータについての前記アクセス確率と前記レイテンシとの積と、前記第２のデータについての前記アクセス確率と前記レイテンシとの積との和であり、
前記第２の評価値は、前記第１メモリと前記第２メモリとの間でデータを移動させない場合における、前記第１のデータについての前記アクセス確率と前記レイテンシとの積と、前記第２のデータについての前記アクセス確率と前記レイテンシとの積との和である、
付記２に記載の情報処理装置。
【０１８３】
（付記４）
前記第１メモリは、前記第２メモリよりもアクセス速度が高く、
前記決定部は、前記第２メモリに格納されている前記第２のデータについて、前記第１メモリに格納されているデータのうちアクセス頻度が最も低い前記第１のデータとの入れ替えを行なうかを決定することにより、前記格納先を決定する、
付記１〜３のいずれか１項に記載の情報処理装置。
【０１８４】
（付記５）
上位装置からのデータの読み出し要求に応じて、前記第１メモリ又は前記第２メモリからデータを読み出す読み出し部を更に備え、
前記第１メモリは、前記第２メモリよりもアクセス速度が高く、
前記決定部は、前記読み出し部によって前記第２メモリから読み出された前記第２のデータについて、前記第１メモリに格納されている前記第１のデータとの入れ替えを行なうかを決定することにより、前記格納先を決定する、
付記１〜４のいずれか１項に記載の情報処理装置。
【０１８５】
（付記６）
前記決定部は、前記入れ替えを行なっても前記第１メモリの容量に空きがある場合に、前記読み出し部によって前記第２メモリから読み出された前記第２のデータに加えて、前記第２メモリに格納されている他のデータも前記第１メモリへ移動させるかを決定することにより、前記格納先を決定する、
付記５に記載の情報処理装置。
【０１８６】
（付記７）
前記上位装置による読み出し対象のデータが前記第１メモリ又は前記第２メモリに存在しない場合に、前記第１メモリ及び前記第２メモリとは異なる記憶装置から取得した前記読み出し対象のデータを前記第１のデータとして前記第１メモリに書き込む書き込み部を更に備え、
前記決定部は、前記読み出し部によって前記第２メモリから読み出された前記第２のデータについて、前記書き込み部によって前記第１メモリに書き込まれた前記第１のデータとの前記入れ替えを行なうかを決定することにより、前記格納先を決定する、
付記５又は６に記載の情報処理装置。
【０１８７】
（付記８）
前記第１メモリは、前記第２メモリよりもアクセス速度が高く、
前記決定部は、所定時間が経過する毎に、前記第２メモリに格納されている前記第２のデータについて、前記第１メモリに格納されている前記第１のデータとの入れ替えを行なうかを決定することにより、前記格納先を決定する、
付記１〜４のいずれか一項に記載の情報処理装置。
【０１８８】
（付記９）
前記第１メモリ及び前記第２メモリは、Least Recently Usedによって格納するデータを管理する、
付記１〜８のいずれか１項に記載の情報処理装置。
【０１８９】
（付記１０）
前記第１メモリ及び前記第２メモリは、Least Frequently Usedによって格納するデータを管理する、
付記１〜８のいずれか１項に記載の情報処理装置。
【０１９０】
（付記１１）
コンピュータに、
第１メモリに格納されている第１のデータ、及び、前記第１メモリとはアクセス速度が異なる第２メモリに格納されている第２のデータについてのそれぞれのアクセス確率とレイテンシとを算出し、
算出された前記アクセス確率と前記レイテンシとに基づき、前記第１メモリ及び前記第２メモリの中から、前記第１のデータ及び前記第２のデータの格納先を決定する、
処理を実行させる、プログラム。
【０１９１】
（付記１２）
前記第１メモリと前記第２メモリとの間で、前記第１のデータ及び前記第２のデータの格納先を変更する場合における前記第１のデータ及び前記第２のデータについての、前記第１のデータ及び前記第２のデータの格納先の決定に用いる第１の評価値を、前記アクセス確率と前記レイテンシとを用いて算出し、
前記第１メモリと前記第２メモリとの間で、前記第１のデータ及び前記第２のデータの格納先を変更しない場合における前記第１のデータ及び前記第２のデータについての、前記第１のデータ及び前記第２のデータの格納先の決定に用いる第２の評価値を、前記アクセス確率と前記レイテンシとを用いて算出し、
前記第１の評価値が前記第２の評価値よりも小さい場合に、前記第１のデータを前記第２メモリへ格納させ、前記第２のデータを前記第１メモリへ格納させるように、前記格納先を決定する、
処理を前記コンピュータに実行させる、付記１１に記載のプログラム。
【０１９２】
（付記１３）
前記第１の評価値は、前記第１メモリと前記第２メモリとの間でデータを移動させる場合における、前記第１のデータについての前記アクセス確率と前記レイテンシとの積と、前記第２のデータについての前記アクセス確率と前記レイテンシとの積との和であり、
前記第２の評価値は、前記第１メモリと前記第２メモリとの間でデータを移動させない場合における、前記第１のデータについての前記アクセス確率と前記レイテンシとの積と、前記第２のデータについての前記アクセス確率と前記レイテンシとの積との和である、
付記１２に記載のプログラム。
【０１９３】
（付記１４）
前記第１メモリは、前記第２メモリよりもアクセス速度が高く、
前記第２メモリに格納されている前記第２のデータについて、前記第１メモリに格納されているデータのうちアクセス頻度が最も低い前記第１のデータとの入れ替えを行なうかを決定することにより、前記格納先を決定する、
処理を前記コンピュータに実行させる、付記１１〜１３のいずれか１項に記載のプログラム。
【０１９４】
（付記１５）
前記第１メモリは、前記第２メモリよりもアクセス速度が高く、
上位装置からのデータの読み出し要求に応じて、前記第１メモリ又は前記第２メモリからデータを読み出し、
前記第２メモリから読み出された前記第２のデータについて、前記第１メモリに格納されている前記第１のデータとの入れ替えを行なうかを決定することにより、前記格納先を決定する、
処理を前記コンピュータに実行させる、付記１１〜１４のいずれか１項に記載のプログラム。
【０１９５】
（付記１６）
第１メモリに格納されている第１のデータ、及び、前記第１メモリとはアクセス速度が異なる第２メモリに格納されている第２のデータについてのそれぞれのアクセス確率とレイテンシとを算出し、
算出された前記アクセス確率と前記レイテンシとに基づき、前記第１メモリ及び前記第２メモリの中から、前記第１のデータ及び前記第２のデータの格納先を決定する、
情報処理方法。
【０１９６】
（付記１７）
前記第１メモリと前記第２メモリとの間で、前記第１のデータ及び前記第２のデータの格納先を変更する場合における前記第１のデータ及び前記第２のデータについての、前記第１のデータ及び前記第２のデータの格納先の決定に用いる第１の評価値を、前記アクセス確率と前記レイテンシとを用いて算出し、
前記第１メモリと前記第２メモリとの間で、前記第１のデータ及び前記第２のデータの格納先を変更しない場合における前記第１のデータ及び前記第２のデータについての、前記第１のデータ及び前記第２のデータの格納先の決定に用いる第２の評価値を、前記アクセス確率と前記レイテンシとを用いて算出し、
前記第１の評価値が前記第２の評価値よりも小さい場合に、前記第１のデータを前記第２メモリへ格納させ、前記第２のデータを前記第１メモリへ格納させるように、前記格納先を決定する、
付記１６に記載の情報処理方法。
【０１９７】
（付記１８）
前記第１の評価値は、前記第１メモリと前記第２メモリとの間でデータを移動させる場合における、前記第１のデータについての前記アクセス確率と前記レイテンシとの積と、前記第２のデータについての前記アクセス確率と前記レイテンシとの積との和であり、
前記第２の評価値は、前記第１メモリと前記第２メモリとの間でデータを移動させない場合における、前記第１のデータについての前記アクセス確率と前記レイテンシとの積と、前記第２のデータについての前記アクセス確率と前記レイテンシとの積との和である、
付記１７に記載の情報処理方法。
【０１９８】
（付記１９）
前記第１メモリは、前記第２メモリよりもアクセス速度が高く、
前記第２メモリに格納されている前記第２のデータについて、前記第１メモリに格納されているデータのうちアクセス頻度が最も低い前記第１のデータとの入れ替えを行なうかを決定することにより、前記格納先を決定する、
付記１６〜１８のいずれか１項に記載の情報処理方法。
【０１９９】
（付記２０）
前記第１メモリは、前記第２メモリよりもアクセス速度が高く、
上位装置からのデータの読み出し要求に応じて、前記第１メモリ又は前記第２メモリからデータを読み出し、
前記第２メモリから読み出された前記第２のデータについて、前記第１メモリに格納されている前記第１のデータとの入れ替えを行なうかを決定することにより、前記格納先を決定する、
付記１６〜１９のいずれか１項に記載の情報処理方法。
【符号の説明】
【０２００】
１００      ：キャッシュシステム
１          ：キャッシュサーバ
１１        ：ＣＰＵ
１１１      ：第１算出部
１１２      ：第２算出部
１１３      ：決定部
１１４      ：読み出し部
１１５      ：書き込み部
１２        ：ＤＲＡＭ
１３        ：ＮＡＮＤ型フラッシュメモリ
２          ：ＤＢＭＳ
３          ：クライアント
８００，９００：キャッシュシステム
８１        ：キャッシュメモリ
８２        ：ＤＢＭＳ
８３        ：サーバ
８４        ：ブラウザ
９１        ：キャッシュサーバ
９２        ：クライアント
９１１      ：ＣＰＵ
９１２      ：ＤＲＡＭ
【図１】
2019020965.tif 000003
【図２】
2019020965.tif 000004
【図３】
2019020965.tif 000005
【図４】
2019020965.tif 000006
【図５】
2019020965.tif 000007
【図６】
2019020965.tif 000008
【図７】
2019020965.tif 000009
【図８】
2019020965.tif 000010
【図９】
2019020965.tif 000011
【図１０】
2019020965.tif 000012
【図１１】
2019020965.tif 000013
【図１２】
2019020965.tif 000014
【図１３】
2019020965.tif 000015
【図１４】
2019020965.tif 000016