JP2019020965A - 情報処理装置、プログラム及び情報処理方法 - Google Patents

情報処理装置、プログラム及び情報処理方法 Download PDF

Info

Publication number
JP2019020965A
JP2019020965A JP2017137928A JP2017137928A JP2019020965A JP 2019020965 A JP2019020965 A JP 2019020965A JP 2017137928 A JP2017137928 A JP 2017137928A JP 2017137928 A JP2017137928 A JP 2017137928A JP 2019020965 A JP2019020965 A JP 2019020965A
Authority
JP
Japan
Prior art keywords
memory
data
item
dram
latency
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2017137928A
Other languages
English (en)
Other versions
JP6996139B2 (ja
Inventor
駿 五木田
Shun Gokita
駿 五木田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2017137928A priority Critical patent/JP6996139B2/ja
Priority to US16/032,407 priority patent/US10713182B2/en
Publication of JP2019020965A publication Critical patent/JP2019020965A/ja
Application granted granted Critical
Publication of JP6996139B2 publication Critical patent/JP6996139B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/12Replacement control
    • G06F12/121Replacement control using replacement algorithms
    • G06F12/122Replacement control using replacement algorithms of the least frequently used [LFU] type, e.g. with individual count value
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0811Multiuser, multiprocessor or multiprocessing cache systems with multilevel cache hierarchies
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1016Performance improvement
    • G06F2212/1024Latency reduction

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Memory System (AREA)

Abstract

【課題】メモリに格納されるデータへのアクセス性能を向上させる。
【解決手段】データを格納する第1メモリ12と、データを格納し、第1メモリ12とはアクセス速度が異なる第2メモリ13と、第1メモリ12に格納されている第1のデータ及び第2メモリ13に格納されている第2のデータについてのそれぞれのアクセス確率とレイテンシとに基づき、第1メモリ12及び第2メモリ13の中から、第1のデータ及び第2のデータの格納先を決定する決定部113と、を備える。
【選択図】図7

Description

本発明は、情報処理装置、プログラム及び情報処理方法に関する。
コンピュータのメインメモリとして使われているDynamic Random Access Memory(DRAM)の容量が、近年、限界に近付いている。一方、ビッグデータの分析や機械学習等に代表されるように、大容量のデータをインメモリで高速に処理したいという需要は高まっている。
そこで、巨大なメモリ空間を使用するアプリケーションにおいて、次世代揮発性メモリを使用してメモリ空間を拡張する研究が行なわれている。次世代不揮発性メモリは、例えばNAND型フラッシュメモリであり、低速且つ大容量のメモリであってよい。次世代不揮発性メモリは、DRAM等の高速且つ小容量のメモリと組み合わされて使用されてよい。
このような、DRAMとNAND型フラッシュメモリとを備えるキャッシュサーバにおいては、DRAMの容量当たりの単価が高く、消費電力が大きいという問題がある。容量単価がDRAMと比較して安いNAND型フラッシュメモリを使ってキャッシュサーバのメモリ空間を拡張すればコストの問題は解決するが、NAND型フラッシュメモリはDRAMよりも3桁前後のオーダで速度が低い。このため、キャッシュサーバにおいて、高速化と低価格化とを両立させるためには、DRAMとNAND型フラッシュメモリとを適切に使い分けることが想定される。
図1は、DRAMとNAND型フラッシュメモリとにおけるレイテンシの変化の一例を示すグラフである。図1において、横軸はデータサイズ(キロバイト;KB)であり、縦軸はレイテンシ(ナノ秒;ns)である。
図1に示す例において、データサイズを大きくしていった際のDRAMのレイテンシの変化(符号A1を参照)は、NAND型フラッシュメモリのレイテンシの変化(符号A2を参照)よりも小さい。また、NAND型フラッシュメモリのレイテンシをDRAMのレイテンシで割った値であるNAND/DRAMは、データサイズを大きくすると、小さくなる(符号A3を参照)。なお、データは、アイテムと称されてもよい。
DRAMとNAND型フラッシュメモリとの適切な使い分けとしては、例えば、アクセス頻度によるメモリの使い分け、及び、アイテムサイズによるメモリの使い分けが想定される。
アクセス頻度によるメモリの使い分けは、よくアクセスされるアイテムはDRAMに配置され、あまりアクセスされないアイテムはNAND型フラッシュメモリに配置されることによって実施されてよい(例えば、下記の特許文献1及び2を参照)。
アクセス頻度によるメモリの使い分けは、アクセス頻度に偏りがあるワークロードにおいて効果的である。
図2は、アクセス頻度によるメモリの使い分けの一例である。図2の(1)に示す例において、アクセス頻度順の格納では、DRAMに格納されているアイテムCの人気度(「アクセス頻度」と称されてもよい。)は、NAND型フラッシュメモリに格納されているアイテムD及びEの人気度よりも上位である。
図2の(2)において、NAND型フラッシュメモリに格納されているアイテムが読み出されると、読み出されるアイテムは格納先がDRAMに変更される。
図2の(3)において、NAND型フラッシュメモリに格納されているアイテムが読み出され、かつDRAMに読み出されるアイテムを格納する空き容量がない場合、DRAMに格納されているアイテムは、NAND型フラッシュメモリに追い出される。更に、NAND型フラッシュメモリに格納されているアイテムは、DRAMに格納されることが想定される。
このように、速度の異なるメモリに格納されているアイテムの格納先が変更されることが想定される。尚、上記は、アイテムの格納先が変更される場合の一例である。
アイテムサイズによるメモリの使い分けは、一定サイズ未満のアイテムをDRAMに配置し、一定サイズ以上のアイテムをNAND型フラッシュメモリに配置することによって実施されてよい(例えば、下記の非特許文献1を参照)。
特開2016−170729号公報 特許第5992592号公報
M. Blott, L. Liu, K. Karras, and K. Vissers.「Scaling Out to a Single-Node 80Gbps Memcached Server with 40Terabytes of Memory」HotStorage, 2015.
しかしながら、アクセス頻度によるメモリの使い分けでは、速度の異なるメモリに配置されているアイテムの格納先が変更されることによって、却ってレスポンスが悪化するおそれがある。
1つの側面では、メモリに格納されるデータへのアクセス性能を向上させることを目的とする。
情報処理装置は、データを格納する第1メモリと、データを格納し、前記第1メモリとはアクセス速度が異なる第2メモリと、前記第1メモリに格納されている第1のデータ及び前記第2メモリに格納されている第2のデータについてのそれぞれのアクセス確率とレイテンシとに基づき、前記第1メモリ及び前記第2メモリの中から、前記第1のデータ及び前記第2のデータの格納先を決定する決定部と、を備える。
1つの側面では、メモリに格納されるデータへのアクセス性能を向上させることができる。
DRAMとNAND型フラッシュメモリとにおけるレイテンシの変化の一例を示すグラフである。 アイテム頻度によるメモリの使い分けの一例を示す図である。 関連例におけるデータキャッシュ動作を説明する図である。 関連例におけるキャッシュヒット時の動作とキャッシュミス時の動作とを説明する図である。 関連例におけるキャッシュサーバにおける動作を説明する図である。 実施形態の一例としてのキャッシュサーバにおけるデータの移動動作の概略を説明する図である。 実施形態の一例としてのキャッシュシステムにおけるシステム構成例を模式的に示すブロック図である。 実施形態の一例としてのキャッシュサーバが備えるキャッシュメモリにおけるアイテムの管理方法を説明する図である。 実施形態の一例としてのキャッシュサーバにおけるアイテムの移動処理を例示する図である。 実施形態の一例としてのキャッシュサーバにおけるアイテムの移動判定処理を説明するフローチャートである。 実施形態の第1変形例としてのキャッシュサーバにおけるアイテムの移動処理を例示する図である。 実施形態の第1変形例としてのキャッシュサーバにおけるアイテムの移動判定処理を説明するフローチャートである。 実施形態の第1変形例としてのキャッシュサーバにおけるアイテムの移動判定処理を説明するフローチャートである。 実施形態の第2変形例としてのキャッシュサーバにおけるアイテムの移動判定の開始タイミングの決定処理を説明するフローチャートである。
以下、図面を参照して一実施の形態を説明する。ただし、以下に示す実施形態はあくまでも例示に過ぎず、実施形態で明示しない種々の変形例や技術の適用を排除する意図はない。すなわち、本実施形態を、その趣旨を逸脱しない範囲で種々変形して実施することができる。
また、各図は、図中に示す構成要素のみを備えるという趣旨ではなく、他の機能等を含むことができる。
以下、図中において、同一の各符号は同様の部分を示しているので、その説明は省略する。
〔A〕関連技術
図3は、関連例におけるデータキャッシュ動作を説明する図である。
図3に示すキャッシュシステム800は、大量のアクセスが集中するシステムであり、例示的に、複数(図示する例では4つ)のキャッシュメモリ81、複数(図示する例では2つ)のDatabase Management System(DBMS)82及びサーバ83を備える。また、サーバ83がキャッシュメモリ81又はDBMS82から取得したデータは、不図示の端末によって、ブラウザ84に表示されてよい。
キャッシュメモリ81は、Random Access Memory(RAM)を含む記憶装置である。キャッシュメモリ81は、不図示のキャッシュサーバに備えられてよい。図3に示すようなキャッシュシステム800に備えられるキャッシュサーバは、インメモリ型のキャッシュサーバと称されてもよい。キャッシュサーバは、DBMS82から取得したアイテムをキャッシュして、サーバ83からの要求に応じてキャッシュしているアイテムをサーバ83へ送信する。
キャッシュメモリ81は、例えば、DRAMであってよい。また、近年、DRAMの代替として、PCMやReRAM,MRAM,3DXpoint等の次世代不揮発性メモリが登場している。なお、PCMはPhase Change Memoryの略称であり、ReRAMはResistive Random Access Memoryの略称である。また、MRAMはMagnetoresistive Random Access Memoryの略称であり、3DXpointはthree dee cross pointの略称である。これらの次世代不揮発性メモリは、例えば、バイトアクセスが可能であり、従来の不揮発性メモリよりも高速に動作可能である。一方、次世代不揮発性メモリは、DRAM12と比較して、例えば、レイテンシが大きく(別言すれば、「読み出し性能が低く」)、且つ、書き込み性能が低いという性能がある。
DBMS82は、データを読み書き可能に記憶する装置であり、例えば、HDD(Hard Disk Drive)である。DBMS82は、Relational Database Management System(RDBMS)であってもよい。
サーバ83は、サーバ機能を備えたコンピュータである。サーバ83は、アプリケーションサーバやWebサーバと称されてもよい。
キャッシュシステム800において初回にアクセスされたデータは、サーバ83によってDBMS82から取得される(符号C11を参照)。サーバ83は、取得したデータをアクセスの要求元のブラウザ84へ送信する(符号C12を参照)。また、サーバ83は、取得したデータをキャッシュメモリ81に格納しておく(符号C13を参照)。
一方、キャッシュシステム800において2回目以降にアクセスされたデータは、サーバ83によってキャッシュメモリ81から取得される(符号C21を参照)。サーバ83は、取得したデータをアクセスの要求元のブラウザ84へ送信する(符号C22を参照)。
ディスクベースのDBMS82ではアクセス速度が遅いが、上述したように、一度アクセスされたデータは、キャッシュメモリ81にキャッシュされる。このため、サーバ83は、2回目以降のアクセスされたデータについてのレスポンスを高速にブラウザ84へ返すことができる。
図4の(1)は、関連例におけるキャッシュヒット時の動作を説明する図である。また、図4の(2)は、関連例におけるキャッシュミス時の動作を説明する図である。なお、図4の(1)及び(2)の中の正方形は、アイテムを示す。
図4の(1)に示すように、サーバ83は、所望のアイテムがキャッシュメモリ81にキャッシュされているかを、キャッシュメモリ81に問い合わせる(符号D11の“Get”を参照)。
キャッシュメモリ81において所望のアイテムがヒットした場合には、サーバ83は、キャッシュメモリ81から所望のアイテムを取得する(符号D12の“Hit”を参照)。
すなわち、キャッシュヒット時には、サーバ83は、キャッシュメモリ81から直接アイテムを取得する。
図4の(2)に示すように、サーバ83は、所望のアイテムがキャッシュメモリ81にキャッシュされているかを、キャッシュメモリ81に問い合わせる(符号D21の“Get”を参照)。
キャッシュメモリ81において所望のアイテムがヒットしない場合には、サーバ83は、キャッシュミスが発生した旨をキャッシュメモリ81から取得する(符号D22の“Miss”を参照)。
サーバ83は、DBMS82に対して所望のアイテムを要求する(符号D23の“Request”を参照)。
サーバ83は、DBMS82から所望のアイテムを取得する(符号D24の“Reply”を参照)。
サーバ83は、取得したアイテムをキャッシュメモリ81にセットする(符号D25の“Set”を参照)。
すなわち、キャッシュミス時には、サーバ83は、DBMS82からアイテムを取得して、取得したアイテムをキャッシュメモリ81にセットする。
図5は、関連例におけるキャッシュサーバ91における動作を説明する図である。
図5に示すキャッシュシステム900は、キャッシュサーバ91及びクライアント92を備える。
クライアント92は、サーバ機能を備えたコンピュータであってよい。
キャッシュサーバ91は、DBMS(図5では不図示)から取得したアイテムをキャッシュして、クライアント92からの要求に応じてキャッシュしているアイテムをクライアント92へ送信する。キャッシュサーバ91は、例示的に、Central Processing Unit(CPU)911及びDRAM912を備える。
CPU911は、種々の制御や演算を行なう処理装置である。
DRAM912は、DBMS(図5では不図示)に格納されているアイテムの一部を記憶する。
クライアント92は、キャッシュサーバ91が保持しているアイテムをGetコマンドによって取得する。クライアント92は、所望のアイテムに対するキー(Key)を索引として、目的のアイテムをキャッシュサーバ91から取得してよい。
クライアント92は、Setコマンドにより、キャッシュサーバ91に対して、アイテムの索引となるキー(Key)とアイテムの内容を示すバリュー(Value)との追加や更新を行なう。キャッシュサーバ91において、DRAM912の容量が一杯の場合には、CPU911は、追い出しアルゴリズムによりDRAM912に格納されているアイテムを追い出して、新たなアイテムをDRAM912に追加してよい。追い出しアルゴリズムの一例としては、Least Recently Used(LRU)やLeast Frequently Used(LFU)がある。
〔B〕実施形態の一例
〔B−1〕概要
図6は、実施形態の一例としてのキャッシュサーバ1におけるデータの移動動作の概略を説明する図である。
本実施形態の一例におけるキャッシュサーバ1(図7等を用いて後述)は、キャッシュしているデータのアクセス頻度とレイテンシとを考慮して、オンラインアイテム配置アルゴリズムにより、各アイテムの格納先のメモリを決定する。ここで、オンラインとは、データの格納先を動的に変更できることを意味する。なお、データはアイテムと称されてよく、格納先は配置先と称されてもよい。
各アイテムの格納先は、アクセス頻度順に加えて、アイテムのサイズに応じて定められるレイテンシを考慮して、DRAM12とNAND型フラッシュメモリ13との間でアイテムの入れ替えを行なうように、決定されてよい。アイテムの入れ替えは、キャッシュメモリ全体での評価値が最適化されるように、実施されてよい。なお、DRAM12及びNAND型フラッシュメモリ13については、図7等を用いて後述する。また、評価値については、図9等を用いて後述する。
図6に示す例において、アクセス頻度順の配置では、DRAM12に格納されているアイテムCの人気度(「アクセス頻度」と称されてもよい。)は、NAND型フラッシュメモリ13に格納されているアイテムD及びEの人気度よりも上位である。ここで、アクセス頻度順に加えて、アイテムD及びEをDRAM12へ移動(符号E1を参照)した場合におけるレイテンシの向上と、アイテムCをNAND型フラッシュメモリ13へ移動(符号E2を参照)した場合におけるレイテンシの低下を考慮する。そして、アイテムD及びEについてのレイテンシの向上と、アイテムCについてのレイテンシの低下とによる損得を考慮して、キャッシュメモリ全体として得をするように、アイテムの入れ替えを行なうか否かが決定されてよい。
〔B−2〕システム構成例
図7は、実施形態の一例としてのキャッシュシステム100におけるシステム構成例を模式的に示すブロック図である。
図7に示すキャッシュシステム100は、情報処理システムの一例であり、例示的に、キャッシュサーバ1、DBMS2及びクライアント3を備える。
クライアント3は、上位装置の一例であり、キャッシュサーバ1に対して、所望のデータの読み出しを要求する。また、クライアント3は、所望のデータがキャッシュサーバ1に格納されていない場合に、DBMS2から所望のデータを読み出し、読み出したデータをキャッシュサーバ1に格納する。
DBMS2は、記憶装置の一例である。DBMS2は、データを読み書き可能に記憶する装置であり、例えば、HDDである。DBMS2は、RDBMSであってもよい。
キャッシュサーバ1は、情報処理装置の一例であり、クライアント3に対するレスポンス性能の向上のために、DBMS2に格納されているデータのうち一部のデータを記憶する。図7に示すように、キャッシュサーバ1は、例示的に、CPU11、DRAM12及びNAND型フラッシュメモリ13を備える。
DRAM12は、第1のデータを格納する第1メモリの一例であり、データを読み書き可能に記憶できる揮発性の記憶装置である。
NAND型フラッシュメモリ13は、第2のデータを格納する第2メモリの一例であり、データを読み書き可能に記憶できる不揮発性の記憶装置である。
DRAM12は、NAND型フラッシュメモリ13よりも、アクセス速度が高い。また、NAND型フラッシュメモリ13は、DRAM12よりも、記憶容量が大きい。
DRAM12とNAND型フラッシュメモリ13とは、それぞれキャッシュメモリと称されてもよい。キャッシュサーバ1に備えられる2種類のキャッシュメモリは、互いにアクセス速度が異なっていればよく、DRAM12及びNAND型フラッシュメモリ13に限定されるものではない。キャッシュサーバ1は、例えば、キャッシュメモリとして、複数のアクセス速度の記憶素子を有する階層型メモリを備えてもよい。
CPU11は、例示的に、種々の制御や演算を行なう処理装置であり、キャッシュサーバ1に備えられる補助記憶装置(不図示)から例えばDRAM12に読み出されたOperating System(OS)やプログラムを実行することにより、種々の機能を実現する。すなわち、CPU11は、図7に示すように、第1算出部111、第2算出部112、決定部113、読み出し部114、及び、書き込み部115として機能してよい。
なお、これらの第1算出部111、第2算出部112、決定部113、読み出し部114、及び、書き込み部115としての機能を実現するためのプログラムは、コンピュータ読取可能な記録媒体に記録された形態で提供されてよい。コンピュータ読取可能な記録媒体は、例えば、フレキシブルディスク、CD、DVD、ブルーレイディスク、磁気ディスク、光ディスク、又は、光磁気ディスクであってよい。なお、CDは、CD−ROM、例えば、CD−R、又は、CD−RWであってよい。また、DVDは、例えば、DVD−ROM、DVD−RAM、DVD−R、DVD+R、DVD−RW、DVD+RW、又は、HD DVDであってよい。そして、コンピュータ(例えば、CPU11)は上述した記録媒体から図示しない読取装置を介してプログラムを読み取って内部記録装置または外部記録装置に転送し格納して用いてよい。また、プログラムを、例えば磁気ディスク,光ディスク,光磁気ディスク等の記憶装置(記録媒体)に記録しておき、記憶装置から通信経路を介してコンピュータに提供してもよい。
第1算出部111、第2算出部112、決定部113、読み出し部114、及び、書き込み部115としての機能を実現する際には、内部記憶装置(例えば、DRAM12)に格納されたプログラムがコンピュータ(例えば、CPU11)によって実行されてよい。また、記録媒体に記録されたプログラムをコンピュータが読み取って実行してもよい。
第1算出部111、第2算出部112、及び、決定部113の機能については、図9等を用いて後述する。
読み出し部114は、クライアント3からのデータの読み出し要求に応じて、DRAM12又はNAND型フラッシュメモリ13からデータを読み出す。
書き込み部115は、クライアント3による読み出し対象のデータがDRAM12又はNAND型フラッシュメモリ13に存在しない場合に、DBMS2から取得した読み出し対象のデータをDRAM12に書き込む。DBMS2からのデータの取得は、クライアント3を介して実施されてよい。
DRAM12とNAND型フラッシュメモリ13との間のデータの移動は、読み出し部114及び書き込み部115によって実施されてよい。すなわち、読み出し部114は、後述するように、決定部113によってDRAM12とNAND型フラッシュメモリ13との間で移動させることを決定されたデータを、DRAM12又はNAND型フラッシュメモリ13から読み出す。また、書き込み部115は、読み出し部114によって読み出されたデータを、移動先のNAND型フラッシュメモリ13又はDRAM12に書き込む。
図8の(1)は、実施形態の一例としてのキャッシュサーバ1が備えるDRAM12におけるアイテムの管理方法を説明する図である。図8の(2)は、実施形態の一例としてのキャッシュサーバ1が備えるNAND型フラッシュメモリ13におけるアイテムの管理方法を説明する図である。
図8の(1)及び(2)に示すように、DRAM12とNAND型フラッシュメモリ13とのそれぞれにおいて、アクセス頻度は、1つのLRUによって管理されてよい。DRAM12及びNAND型フラッシュメモリ13においては、データ容量の制約があるため、LRUリストの長さは、固定長ではなく、可変長であってよい。DRAM12及びNAND型フラッシュメモリ13に格納されるアイテムのサイズに応じて、格納されるアイテムの数は変化してよい。
書き込み部115は、DBMS2から新たにキャッシュデータとして追加されるアイテムを、DRAM12に書き込んでよい。書き込み部115は、DRAM12のLRUリストから追い出されたアイテムを、NAND型フラッシュメモリ13のLRUの先頭に配置してよい。
図8の(1)に示す例において、DRAM12のLRUリストには、アイテムA,アイテムB,アイテムCの順に、キャッシュデータが配置されている。また、図8の(2)に示す例において、NAND型フラッシュメモリ13のLRUリストには、アイテムD,アイテムE,アイテムFの順に、キャッシュデータが配置されている。
図9は、実施形態の一例としてのキャッシュサーバ1におけるアイテムの移動処理を例示する図である。
図9において図示しているアイテムA〜Fの大きさは、各アイテムのデータサイズに比例している。例えば、アイテムAはアイテムBよりもデータサイズが大きく、アイテムBはアイテムCよりもデータサイズが小さい。また、アイテムAとアイテムDとアイテムEとは、互いにデータサイズが同じである。
符号F1に示すように、DRAM12のLRUリストには、アイテムA,アイテムB,アイテムCの順に、キャッシュデータが配置されている。また、NAND型フラッシュメモリ13のLRUリストには、アイテムD,アイテムE,アイテムFの順に、キャッシュデータが配置されている。この状態で、アイテムEに対するキャッシュヒットが発生したことを想定する。
符号F2に示すように、キャッシュヒットが発生したアイテムEをDRAM12に移動させない場合には、DRAM12のLRUリストには、符号F1に示した場合と同様に、アイテムA,アイテムB,アイテムCの順に、キャッシュデータが配置されている。一方、NAND型フラッシュメモリ13のLRUリストでは、キャッシュヒットが発生したアイテムEを先頭として、アイテムE,アイテムD,アイテムFの順に、キャッシュデータの配置が変化する。
符号F3に示すように、キャッシュヒットが発生したアイテムEをDRAM12に移動させる場合には、アイテムEと入れ替わりに、DRAM12のLRUリストの最後に配置されていたアイテムCがNAND型フラッシュメモリ13に移動させられる。そして、DRAM12のLRUリストでは、NAND型フラッシュメモリ13から移動してきたアイテムEを先頭として、アイテムE,アイテムA,アイテムBの順に、キャッシュデータの配置が変化する。また、NAND型フラッシュメモリ13のLRUリストでは、DRAM12から移動してきたアイテムCを先頭として、アイテムC,アイテムD,アイテムFの順に、キャッシュデータの配置が変化する。
図9に示す例において、アイテムEのデータサイズは、アイテムCのデータサイズよりも小さい。このため、符号F3においては、DRAM12にアイテムEを登録しても、DRAM12の記憶容量に空きが発生している。
そこで、符号F4に示すように、アイテムEに加えて、符号F2においてNAND型フラッシュメモリ13のLRUリストで2番目に配置されていたアイテムDも、DRAM12に移動されてよい。これにより、DRAM12のLRUリストでは、NAND型フラッシュメモリ13から追加で移動してきたアイテムDを先頭として、アイテムD,アイテムE,アイテムA,アイテムBの順に、キャッシュデータの配置が変化する。また、NAND型フラッシュメモリ13のLRUリストでは、DRAM12へ移動したアイテムDを除いた、アイテムC,アイテムFの順に、キャッシュデータの配置が変化する。
第1算出部111は、キャッシュヒットしたデータをDRAM12に移動させる場合における第1の評価値を算出する。
第2算出部112は、キャッシュヒットしたデータをDRAM12に移動させない場合における第1の評価値を算出する。
評価値は、DRAM12とNAND型フラッシュメモリ13との間において移動候補(「移動対象」と称されてもよい。)となるアイテムの、アクセス確率とレイテンシとを用いて算出されてよい。評価値は、平均レイテンシや平均読み出し時間と称されてもよい。
第1算出部111は、DRAM12とNAND型フラッシュメモリ13との間でアイテムを移動させる場合におけるアクセス確率とレイテンシとの積の、移動候補のデータについての和を、第1の評価値として算出する。別言すれば、第1算出部111は、DRAM12とNAND型フラッシュメモリ13との間でアイテムを移動させる場合において、移動候補の各アイテムについてのアクセス確率とレイテンシとの積を算出し、算出した各アイテムについての積を足し合わせる。
第2算出部112は、DRAM12とNAND型フラッシュメモリ13との間でアイテムを移動させない場合におけるアクセス確率とレイテンシとの積の、移動候補のデータについての和を、第2の評価値として算出する。別言すれば、第2算出部112は、DRAM12とNAND型フラッシュメモリ13との間でアイテムを移動させない場合において、移動候補の各アイテムについてのアクセス確率とレイテンシとの積を算出し、算出した各アイテムについての積を足し合わせる。
レイテンシは、読み出し時間やアクセス時間と称されてもよい。
決定部113は、移動候補のデータについてのアクセス確率とレイテンシとに基づき、移動候補のデータについて、DRAM12とNAND型フラッシュメモリ13との中から格納先を決定する。別言すれば、決定部113は、第1の評価値が第2の評価値よりも小さい場合に、DRAM12に格納されているデータをNAND型フラッシュメモリ13に移動させることを決定する。また、決定部113は、第1の評価値が第2の評価値よりも小さい場合に、NAND型フラッシュメモリ13に格納されているデータをDRAM12に移動させることを決定する。一方、決定部113は、第1の評価値が第2の評価値以上の場合には、DRAM12とNAND型フラッシュメモリ13との間でのアイテムの移動を実施しないことを決定する。
第1算出部111及び第2算出部112は、読み出し部114によってDRAM12及びNAND型フラッシュメモリ13から実際の読み出しがあった回数を含む統計情報に基づき、各アイテムについてのアクセス確率を推定してよい。各アイテムのアクセス確率は、各アイテムへのアクセス回数を、DRAM12及びNAND型フラッシュメモリ13に格納されている全アイテムへのアクセス回数で除算することにより、算出されてよい。
第1算出部111及び第2算出部112は、DRAM12とNAND型フラッシュメモリ13とのそれぞれについての以下の関数を使用して、各アイテムについてのレイテンシを算出してよい。
例えば、チップ規格がDDR3−2133のDRAM12では、レイテンシの算出において、以下の式1が用いられる。ItemSizeは、アイテムのサイズを示す。また、単位MT/sは、1秒間にデータを転送可能な回数を示す。
LDRAM(ItemSize) = ItemSize / (2133MT/s * 8B)・・・(式1)
また、NAND型フラッシュメモリ13のレイテンシの算出においては、以下の式2が用いられる。BusyTimeは、NAND型フラッシュメモリ13へのアクセスリクエストが発生してから、NAND型フラッシュメモリ13からデータが出力し始めるまでの時間を示す。また、BWは、NAND型フラッシュメモリ13とCPU11内部のホストメモリ(不図示)との間のバンド幅を示す。なお、BusyTimeは50μsであり、BWは400MB/sである。
LNAND(ItemSize) = BusyTime + ItemSize / BW・・・(式2)
図9に示す例において、移動候補のアイテムは、アイテムC,D及びEである。DRAM12へアイテムEを移動させ、更に、空いたDRAM12の領域へアイテムDを移動させる場合における、アイテムC,アイテムD及びアイテムEのアクセス確率とレイテンシとは、符号F4に示す通りである。すなわち、アイテムCについて、アクセス確率は0.05であり、NAND型フラッシュメモリ13でのレイテンシは80μsである。また、アイテムDについて、アクセス確率は0.04であり、DRAM12でのレイテンシは0.8μsである。更に、アイテムEについて、アクセス確率は0.03であり、DRAM12でのレイテンシは0.8μsである。
図9の符号F4に示す例において、第1算出部111は、以下の式3によって、第1の評価値を算出する。
0.05*80 + 0.04*0.8 + 0.03*0.8 = 4.06μs・・・(式3)
図9に示す例において、DRAM12にアイテムE及びDを移動させない場合における、アイテムC,アイテムD及びアイテムEのアクセス確率とレイテンシとは、符号F2に示す通りである。すなわち、アイテムCについて、アクセス確率は0.05であり、DRAM12でのレイテンシは1.6μsである。また、アイテムDについて、アクセス確率は0.04であり、NAND型フラッシュメモリ13でのレイテンシは60μsである。更に、アイテムEについて、アクセス確率は0.03であり、NAND型フラッシュメモリ13でのレイテンシは60μsである。
図9の符号F2に示す例において、第2算出部112は、以下の式4によって、第2の評価値を算出する。
0.05*1.6 + 0.04*60 + 0.03*60 = 4.28μs・・・(式4)
決定部113は、第1算出部111によって算出された第1の評価値が第2算出部112によって算出された第2の評価値よりも小さい場合に、移動候補のアイテムを移動させることを決定する。図9に示す例では、第1の評価値4.06μsは、第2の評価値4.28μsよりも小さい。そこで、決定部113は、符号F4に示すように、NAND型フラッシュメモリ13に格納されているアイテムD及びEをDRAM12に移動させ、DRAM12に格納されているアイテムCをNAND型フラッシュメモリ13に移動させることを決定する。
なお、符号F4に示す例において、アイテムDはDRAM12のLRUリストの先頭に配置されているが、これに限定されるものではない。アイテムDに対するキャッシュヒットは発生していないため、アイテムDは、DRAM12のLRUリストにおける2番目や最後尾等のより下位に配置されてもよい。
〔B−3〕動作例
上述した実施形態の一例としてのキャッシュサーバ1におけるアイテムの移動判定処理を、図10に示すフローチャート(ステップS1〜S9)に従って説明する。図10のフローチャートに示す処理は、DRAM12又はNAND型フラッシュメモリ13にキャッシュされたいずれかのアイテムへのキャッシュヒットをトリガとして、開始されてよい。
決定部113は、キャッシュヒットが発生したアイテムXはNAND型フラッシュメモリ13側に配置されているかを判定する(ステップS1)。
アイテムXがNAND型フラッシュメモリ13側に配置されていない(別言すれば、DRAM12側に配置されている)場合には(ステップS1のNoルート参照)、アイテムXの移動を行なわずに、処理は終了する。
一方、アイテムXがNAND型フラッシュメモリ13側に配置されている場合には(ステップS1のYesルート参照)、決定部113は、DRAM12においてアイテムXを移動させるための空き容量があるかを判定する(ステップS2)。
DRAM12に空き容量がある場合には(ステップS2のYesルート参照)、決定部113は、アイテムXをNAND型フラッシュメモリ13からDRAM12に移動させることを決定する(ステップS3)。そして、処理は終了する。
一方、DRAM12に空き容量がない場合には(ステップS2のNoルート参照)、第2算出部112は、アイテムXがNAND型フラッシュメモリ13にある場合の評価値L(X)を算出する。また、第1算出部111は、アイテムXがDRAM12にある場合の評価値L(X)を算出する(ステップS4)。
第1算出部111は、DRAM12側LRUの下位J個のアイテムYがNAND型フラッシュメモリ13にある場合の評価値L(Y)を算出する。また、第2算出部112は、DRAM12側LRUの下位J個のアイテムYがDRAM12にある場合の評価値L(Y)を算出する(ステップS5)。ここで、Jは、正の整数であり、アイテムXを格納するためのデータ容量がDRAM12において確保されるように決定される。別言すれば、Jは、アイテムXのサイズが1又は複数のアイテムYの合計サイズ以下となるための、最小の値である。また、jは、1以上J以下の整数である。
決定部113は、アイテムXをDRAM12に移動しても、まだDRAM12に空き容量があるかを判定する(ステップS6)。
DRAM12に空き容量がない場合には(ステップS6のNoルート参照)、処理はステップS8へ移行する。
一方、DRAM12に空き容量がある場合には(ステップS6のYesルート参照)、処理はステップS7へ移行する。すなわち、第2算出部112は、NAND型フラッシュメモリ13側LRUの2番目から上位I個のアイテムXがNAND型フラッシュメモリ13にある場合の評価値L(X)を算出する。また、第1算出部111は、NAND型フラッシュメモリ13側LRUの2番目から上位I個のアイテムXがDRAM12にある場合の評価値L(X)を算出する(ステップS7)。ここで、Iは、正の整数であり、DRAM12の空き容量が埋まるように決定される。別言すれば、Iは、アイテムXのサイズと、1又は複数のアイテムXの合計サイズとの和が、DRAM12の空き容量以下となるための、最大の値である。また、iは、1以上I以下の整数である。
決定部113は、以下の式5が満たされるかを判定する(ステップS8)。なお、LD(X),LD(Xi)及びLD(Yj)は、上述した式1を用いて算出したレイテンシLDRAM(ItemSize)と、当該アイテムのアクセス確率とを乗算することによって、算出される。また、LN(X),LN(Xi)及びLN(Yj)は、上述した式2を用いて算出したレイテンシLNAND(ItemSize)と、当該アイテムのアクセス確率とを乗算することによって、算出される。
LN(X) + ΣLN(Xi) + ΣLD(Yj) > LD(X) + ΣLD(Xi) +ΣLN(Yj)・・・(式5)
別言すれば、決定部113は、移動候補のアイテムについての移動前の評価値の和が、移動候補のアイテムについての移動後の評価値の和よりも大きいかを判定する。
上記の式5が満たされない場合には(ステップS8のNoルート参照)、アイテムXの移動を行なわずに、処理は終了する。
一方、上記の式5が満たされる場合には(ステップS8のYesルート参照)、決定部113は、アイテムXをNAND型フラッシュメモリ13からDRAM12に移動させることを決定する。加えて、決定部113は、移動候補のアイテムXが存在する場合には、アイテムXをNAND型フラッシュメモリ13からDRAM12に移動させることを決定する。また、決定部113は、アイテムYをDRAM12からNAND型フラッシュメモリ13に移動させることを決定する(ステップS9)。そして、処理は終了する。
〔B−4〕効果
上述した実施形態の一例におけるキャッシュサーバ1によれば、例えば、以下のような効果を奏することができる。
決定部113は、第1及び第2のデータについてのアクセス確率とレイテンシとに基づき、第1及び第2のデータについて、DRAM12及びNAND型フラッシュメモリ13の中から格納先を決定する。
これにより、メモリに格納されるデータへのアクセス性能を向上させることができる。具体的には、アクセス確率とレイテンシとに基づいて、適切なキャッシュメモリに各キャッシュデータを配置することができる。
第1算出部111は、DRAM12とNAND型フラッシュメモリ13との間でデータの格納先を変更する場合における第1の評価値を、アクセス確率とレイテンシとを用いて算出する。また、第2算出部112は、DRAM12とNAND型フラッシュメモリ13との間でデータの格納先を変更しない場合における第2の評価値を、アクセス確率とレイテンシとを用いて算出する。そして、決定部113は、第1の評価値が第2の評価値よりも小さい場合に、第1のデータを第2メモリへ格納させ、第2のデータを第1メモリへ格納させるように、格納先を決定する。
これにより、大きなアイテムをNAND型フラッシュメモリ13に移動させる一方、アクセス頻度が高めの小さなアイテムをDRAM12に移動させるため、キャッシュメモリ全体における評価値を低下させ、アクセス性能を向上できる。
第1の評価値は、DRAM12とNAND型フラッシュメモリ13との間でデータを移動させる場合におけるアクセス確率とレイテンシとの積の、第1及び第2のデータについての和である。また、第2の評価値は、DRAM12とNAND型フラッシュメモリ13との間でデータを移動させない場合におけるアクセス確率とレイテンシとの積の、第1及び第2のデータについての和である。
これにより、評価値の算出を正確にでき、評価値の信頼性を向上できる。また、移動候補のデータ以外のデータについてのレイテンシを算出しないため、算出時間を短縮できる。
決定部113は、NAND型フラッシュメモリ13に格納されている第2のデータについて、DRAM12に格納されているデータのうちアクセス頻度が最も低い第1のデータとの入れ替えを行なうかを決定することにより、格納先を決定する。
これにより、アクセス頻度が低いデータを、高速・低容量のDRAM12から低速・大容量のNAND型フラッシュメモリ13へ移動させることができる。
読み出し部114は、クライアント3からのデータの読み出し要求に応じて、DRAM12又はNAND型フラッシュメモリ13からデータを読み出す。また、DRAM12は、NAND型フラッシュメモリ13よりもアクセス速度が高い。そして、決定部113は、読み出し部114によってNAND型フラッシュメモリ13から読み出された第2のデータについて、DRAM12に格納されている第1のデータとの入れ替えを行なうかを決定する。
これにより、各アイテムへのキャッシュヒットにより、DRAM12又はNAND型フラッシュメモリ13のリスト内でアイテムの順位が入れ替わったことをトリガとして、各アイテムの格納先を決定できるため、格納先の決定を適切なタイミングで実施できる。
決定部113は、入れ替えを行なってもDRAM12の容量に空きがある場合に、読み出し部114によってNAND型フラッシュメモリ13から読み出された第2のデータ以外の他のデータもDRAM12へ移動させるかを決定する。
これにより、アクセス速度が高いDRAM12のデータ容量が一杯になるまでDRAM12へアイテムを移動させることができ、キャッシュメモリ全体における評価値を更に向上できる。
書き込み部115は、クライアント3による読み出し対象のデータがDRAM12又はNAND型フラッシュメモリ13に存在しない場合に、DBMS2から取得した読み出し対象のデータを第1のデータとしてDRAM12に書き込む。また、決定部113は、読み出し部114によってNAND型フラッシュメモリ13から読み出された第2のデータについて、書き込み部115によってDRAM12に書き込まれた第1のデータとの入れ替えを行なうかを決定する。
これにより、新たにDBMS2からキャッシュされたアイテムがDRAM12に配置された場合でも、アイテムのアクセス確率とレイテンシとに基づいた、適切なアイテムの格納先を決定できる。
DRAM12及びNAND型フラッシュメモリ13は、LRUによって格納するデータを管理する。
これにより、キャッシュメモリ内における各アイテムの管理を適切に実施できる。
〔C〕第1変形例
上述した実施形態の一例においてはDRAM12及びNAND型フラッシュメモリ13がLRUによってキャッシュデータを管理していたが、これに限定されるものではない。例えば、DRAM12及びNAND型フラッシュメモリ13は、LFUによってキャッシュデータを管理してもよい。
図11は、実施形態の第1変形例としてのキャッシュサーバ1におけるアイテムの移動処理を例示する図である。
図11において図示しているアイテムA〜Fの大きさは、各アイテムのデータサイズに比例している。例えば、アイテムAはアイテムBよりもデータサイズが大きく、アイテムBはアイテムCよりもデータサイズが小さい。また、アイテムAとアイテムDとアイテムEとは、互いにデータサイズが同じである。
符号G1に示すように、DRAM12のLFUリストには、アイテムA,アイテムB,アイテムCの順に、キャッシュデータが配置されている。また、NAND型フラッシュメモリ13のLFUリストには、アイテムD,アイテムE,アイテムFの順に、キャッシュデータが配置されている。
DRAM12において、アイテムA,B及びCの参照回数は、それぞれ10回,9回及び5回である。また、NAND型フラッシュメモリ13において、アイテムD,E及びFの参照回数は、それぞれ5回,4回及び1回である。すなわち、DRAM12毎、及び、NAND型フラッシュメモリ13毎に、各アイテムは、参照回数順に配置されている。アイテムの参照回数の更新は、アイテムの読み出しを行なう度に、読み出し部114によって実行されてよい。
この状態で、アイテムDに対するキャッシュヒットが発生したことを想定する。これにより、アイテムDの参照回数は、5回から6回に増加する。
符号G2に示すように、キャッシュヒットしたアイテムDをDRAM12に移動させない場合には、DRAM12のLFUリストには、符号G1に示した場合と同様に、アイテムA,アイテムB,アイテムCの順に並ぶように、キャッシュデータが配置されている。また、NAND型フラッシュメモリ13のLFUリストでは、参照回数が6回に増加したアイテムDを先頭として、符号G1に示した場合と同様に、アイテムD,アイテムE,アイテムFの順に並ぶように、キャッシュデータが配置されている。
符号G3に示すように、アイテムDをDRAM12に移動させる場合には、アイテムDと入れ替わりに、DRAM12のLFUリストの最後尾に配置されていたアイテムCをNAND型フラッシュメモリ13に移動させる。そして、DRAM12のLFUリストでは、NAND型フラッシュメモリ13から移動してきたアイテムDを最後尾に、アイテムA,アイテムB,アイテムDの順に並ぶように、キャッシュデータの配置が変化する。また、NAND型フラッシュメモリ13のLFUリストでは、DRAM12から移動してきたアイテムCを先頭として、アイテムC,アイテムE,アイテムFの順に並ぶように、キャッシュデータの配置が変化する。
図11に示す例において、アイテムDのデータサイズは、アイテムCのデータサイズよりも小さい。このため、符号G3においては、DRAM12にアイテムDを登録しても、DRAM12の記憶容量に空きが発生している。
そこで、符号G4に示すように、アイテムDに加えて、符号G2においてNAND型フラッシュメモリ13のLFUリストで2番目に配置されていたアイテムEも、DRAM12に移動されてよい。これにより、DRAM12のLFUリストでは、NAND型フラッシュメモリ13から追加で移動してきたアイテムEを最後尾に、アイテムA,アイテムB,アイテムD,アイテムEの順に並ぶように、キャッシュデータの配置が変化する。また、NAND型フラッシュメモリ13のLFUリストでは、DRAM12へ移動したアイテムEを除いた、アイテムC,アイテムFの順に並ぶように、キャッシュデータの配置が変化する。
決定部113は、NAND型フラッシュメモリ13においてキャッシュヒットしたアイテムの参照回数がDRAM12のLFUリストの最後尾アイテムの参照回数を超えた場合に、実施形態の一例で上述した処理により、アイテムの移動を実施するかを判定してよい。図11の符号G2に示す例では、NAND型フラッシュメモリ13においてキャッシュヒットしたアイテムDの参照回数6回が、DRAM12のLRUリストの最後尾アイテムの参照回数5回を超えている。よって、決定部113は、実施形態の一例で上述した処理により、DRAM12とNAND型フラッシュメモリ13との間でのアイテムの移動を実施するかを判定する。
上述した実施形態の第1変形例としてのキャッシュサーバ1におけるアイテムの移動判定処理を、図12及び図13に示すフローチャート(ステップS11〜S21)に従って説明する。なお、図12にはステップS11〜S15の処理を示し、図13にはステップS16〜S21の処理を示す。図12及び図13のフローチャートに示す処理は、DRAM12又はNAND型フラッシュメモリ13にキャッシュされたいずれかのアイテムへのキャッシュヒットをトリガとして、開始されてよい。
読み出し部114は、アイテムXにキャッシュヒットが発生すると、アイテムXの参照回数を1インクリメントする(図12のステップS11)。
決定部113は、アイテムXはNAND型フラッシュメモリ13側に配置されているかを判定する(図12のステップS12)。
アイテムXがNAND型フラッシュメモリ13側に配置されていない(別言すれば、DRAM12側に配置されている)場合には(図12のステップS12のNoルート参照)、アイテムXは移動されずに、処理は終了する。
一方、アイテムXがNAND型フラッシュメモリ13側に配置されている場合には(図12のステップS12のYesルート参照)、決定部113は、アイテムXの参照回数がアイテムYの参照回数よりも大きいかを判定する(図12のステップS13)。ここで、アイテムYは、DRAM12のLFUリストの最後尾のアイテムである。
アイテムXの参照回数がアイテムYの参照回数以下である場合には(図12のステップS13のNoルート参照)、アイテムXは移動されずに、処理は終了する。
一方、アイテムXの参照回数がアイテムYの参照回数よりも大きい場合には(図12のステップS13のYesルート参照)、決定部113は、DRAM12においてアイテムXを移動させるための空き容量があるかを判定する(図12のステップS14)。
DRAM12に空き容量がある場合には(図12のステップS14のYesルート参照)、決定部113は、アイテムXをNAND型フラッシュメモリ13からDRAM12に移動させることを決定する(図12のステップS15)。そして、処理は終了する。
一方、DRAM12に空き容量がない場合には(図12のステップS14のNoルート参照)、第2算出部112は、アイテムXがNAND型フラッシュメモリ13にある場合の評価値LNavg(X)を算出する。また、第1算出部111は、アイテムXがDRAM12にある場合の評価値LDavg(X)を算出する(図13のステップS16)。
第1算出部111は、DRAM12側LFUの下位J個のアイテムYがNAND型フラッシュメモリ13にある場合の評価値LNavg(Y)を算出する。また、第2算出部112は、DRAM12側LFUの下位J個のアイテムYがDRAM12にある場合の評価値LDavg(Y)を算出する(図13のステップS17)。ここで、Jは、正の整数であり、アイテムXを格納するためのデータ容量がDRAM12において確保されるように決定される。別言すれば、Jは、アイテムXのサイズが1又は複数のアイテムYの合計サイズ以下となるための、最小の値である。また、jは、1以上J以下の整数である。
決定部113は、アイテムXをDRAM12に移動しても、まだDRAM12に空き容量があるかを判定する(図13のステップS18)。
DRAM12に空き容量がない場合には(図13のステップS18のNoルート参照)、処理は図13のステップS20へ移行する。
一方、DRAM12に空き容量がある場合には(図13のステップS18のYesルート参照)、処理は図13のステップS19へ移行する。そして、第2算出部112は、NAND型フラッシュメモリ13側LFUの2番目から上位I個のアイテムXがNAND型フラッシュメモリ13にある場合の評価値LNavg(X)を算出する。また、第1算出部111は、NAND型フラッシュメモリ13側LFUの2番目から上位I個のアイテムXがDRAM12にある場合の評価値LDavg(X)を算出する(図13のステップS19)。ここで、Iは、正の整数であり、DRAM12の空き容量が埋まるように決定される。別言すれば、Iは、アイテムXのサイズと、1又は複数のアイテムXの合計サイズとの和が、DRAM12の空き容量以下となるための、最大の値である。また、iは、1以上I以下の整数である。
決定部113は、以下の式6が満たされるかを判定する(図13のステップS20)。なお、LDavg(X),LDavg(Xi)及びLDavg(Yj)は、上述した式1を用いて算出したレイテンシLDRAM(ItemSize)と、当該アイテムのアクセス確率とを乗算することによって、算出される。また、LNavg(X),LNavg(Xi)及びLNavg(Yj)は、上述した式2を用いて算出したレイテンシLNAND(ItemSize)と、当該アイテムのアクセス確率とを乗算することによって、算出される。
LNavg(X) + ΣLNavg(Xi) + ΣLDavg(Yj) > LDavg(X) + ΣLDavg(Xi) +ΣLNavg(Yj)・・・(式6)
別言すれば、決定部113は、移動候補のアイテムについての移動前の評価値の和が、移動候補のアイテムについての移動後の評価値の和よりも大きいかを判定する。
上記の式6が満たされない場合には(図13のステップS20のNoルート参照)、アイテムXの移動を行なわずに、処理は終了する。
一方、上記の式6が満たされる場合には(図13のステップS20のYesルート参照)、決定部113は、アイテムXをNAND型フラッシュメモリ13からDRAM12に移動させることを決定する。加えて、決定部113は、移動候補のアイテムXが存在する場合には、アイテムXをNAND型フラッシュメモリ13からDRAM12に移動させることを決定する。また、決定部113は、アイテムYをDRAM12からNAND型フラッシュメモリ13に移動させることを決定する(図13のステップS21)。そして、処理は終了する。
上述した実施形態の第1変形例におけるキャッシュサーバ1によれば、実施形態の一例において奏することができる上述した効果の他、例えば、以下のような効果を奏することができる。
DRAM12及びNAND型フラッシュメモリ13は、LFUによって格納するデータを管理する。
これにより、キャッシュメモリ内における各アイテムの管理を適切に実施できる。
〔D〕第2変形例
上述した実施形態の一例及び第1変形例においてはアイテムへのキャッシュヒットをトリガとして、DRAM12とNAND型フラッシュメモリ13との間でアイテムの移動を行なうかを判定していたが、これに限定されるものではない。例えば、アイテムへのキャッシュヒットとは非同期に、バックグラウンドで、DRAM12とNAND型フラッシュメモリ13との間でアイテムの移動を行なうかを判定してもよい。
アイテムの入れ替え処理は、一定時間毎(例えば、1秒毎)に起動し、NAND型フラッシュメモリ13のリスト上位の所定数のアイテム(例えば、10アイテム)に対して実施されてよい。所定数は、入れ替え判定回数の上限値と称されてもよい。
実施形態の第2変形例としてのキャッシュサーバ1におけるアイテムの移動判定の開始タイミングの決定処理を、図14に示すフローチャート(ステップS31〜S36)に従って説明する。
決定部113は、変数nを1に設定する(ステップS31)。
決定部113は、一定時間処理を待機する(ステップS32)。
決定部113は、NAND型フラッシュメモリ13側のアクセス頻度リストにおいて、上位n番目のアイテムに対して、移動判定を行なう(ステップS33)。ステップS33における処理の詳細は、図10,図12及び図13を用いて上述したものと同様である。
決定部113は、変数nを1インクリメントする(ステップS34)。
決定部113は、変数nが入れ替え判定回数の上限値よりも大きいかを判定する(ステップS35)。
変数nが入れ替え判定回数の上限値以下である場合には(ステップS35のNoルート参照)、処理はステップS33に戻る。
一方、変数nが入れ替え判定回数の上限値よりも大きい場合には(ステップS35のYesルート参照)、決定部113は、スレッドが停止したかを判定する(ステップS36)。
スレッドが停止していない場合には(ステップS36のNoルート参照)、処理はステップS31に戻る。
一方、スレッドが停止した場合には(ステップS36のYesルート参照)、処理は終了する。
上述した実施形態の第2変形例におけるキャッシュサーバ1によれば、実施形態の一例において奏することができる上述した効果の他、例えば、以下のような効果を奏することができる。
決定部113は、所定時間が経過する毎に、NAND型フラッシュメモリ13に格納されている第2のデータについて、DRAM12に格納されている第1のデータとの入れ替えを行なうかを決定する。
これにより、クライアント3からのキャッシュデータへのアクセスとアイテムの格納先の決定とを非同期で実施できるため、キャッシュサーバ1における負荷を軽減できる。
〔E〕その他
開示の技術は上述した実施形態に限定されるものではなく、本実施形態の趣旨を逸脱しない範囲で種々変形して実施することができる。本実施形態の各構成及び各処理は、必要に応じて取捨選択することができ、あるいは適宜組み合わせてもよい。
例えば、上述した実施形態の一例及び各変形例においては、キャッシュサーバ1においてキャッシュメモリへのデータの格納先が決定されていたが、これに限定されるものではない。例えば、図7に示したクライアント3のCPU(不図示)の内部に階層型のキャッシュメモリが備えられることにより、キャッシュデータを利用するクライアント3が単独で、キャッシュメモリへのデータの格納先を決定してもよい。
〔F〕付記
以上の実施形態及び変形例に関し、さらに以下の付記を開示する。
(付記1)
データを格納する第1メモリと、
データを格納し、前記第1メモリとはアクセス速度が異なる第2メモリと、
前記第1メモリに格納されている第1のデータ及び前記第2メモリに格納されている第2のデータについてのそれぞれのアクセス確率とレイテンシとに基づき、前記第1メモリ及び前記第2メモリの中から、前記第1のデータ及び前記第2のデータの格納先を決定する決定部と、
を備える、情報処理装置。
(付記2)
前記第1メモリと前記第2メモリとの間で、前記第1のデータ及び前記第2のデータの格納先を変更する場合における前記第1のデータ及び前記第2のデータについての、前記第1のデータ及び前記第2のデータの格納先の決定に用いる第1の評価値を、前記アクセス確率と前記レイテンシとを用いて算出する第1算出部と、
前記第1メモリと前記第2メモリとの間で、前記第1のデータ及び前記第2のデータの格納先を変更しない場合における前記第1のデータ及び前記第2のデータについての、前記第1のデータ及び前記第2のデータの格納先の決定に用いる第2の評価値を、前記アクセス確率と前記レイテンシとを用いて算出する第2算出部と、
を更に備え、
前記決定部は、前記第1の評価値が前記第2の評価値よりも小さい場合に、前記第1のデータを前記第2メモリへ格納させ、前記第2のデータを前記第1メモリへ格納させるように、前記格納先を決定する、
付記1に記載の情報処理装置。
(付記3)
前記第1の評価値は、前記第1メモリと前記第2メモリとの間でデータを移動させる場合における、前記第1のデータについての前記アクセス確率と前記レイテンシとの積と、前記第2のデータについての前記アクセス確率と前記レイテンシとの積との和であり、
前記第2の評価値は、前記第1メモリと前記第2メモリとの間でデータを移動させない場合における、前記第1のデータについての前記アクセス確率と前記レイテンシとの積と、前記第2のデータについての前記アクセス確率と前記レイテンシとの積との和である、
付記2に記載の情報処理装置。
(付記4)
前記第1メモリは、前記第2メモリよりもアクセス速度が高く、
前記決定部は、前記第2メモリに格納されている前記第2のデータについて、前記第1メモリに格納されているデータのうちアクセス頻度が最も低い前記第1のデータとの入れ替えを行なうかを決定することにより、前記格納先を決定する、
付記1〜3のいずれか1項に記載の情報処理装置。
(付記5)
上位装置からのデータの読み出し要求に応じて、前記第1メモリ又は前記第2メモリからデータを読み出す読み出し部を更に備え、
前記第1メモリは、前記第2メモリよりもアクセス速度が高く、
前記決定部は、前記読み出し部によって前記第2メモリから読み出された前記第2のデータについて、前記第1メモリに格納されている前記第1のデータとの入れ替えを行なうかを決定することにより、前記格納先を決定する、
付記1〜4のいずれか1項に記載の情報処理装置。
(付記6)
前記決定部は、前記入れ替えを行なっても前記第1メモリの容量に空きがある場合に、前記読み出し部によって前記第2メモリから読み出された前記第2のデータに加えて、前記第2メモリに格納されている他のデータも前記第1メモリへ移動させるかを決定することにより、前記格納先を決定する、
付記5に記載の情報処理装置。
(付記7)
前記上位装置による読み出し対象のデータが前記第1メモリ又は前記第2メモリに存在しない場合に、前記第1メモリ及び前記第2メモリとは異なる記憶装置から取得した前記読み出し対象のデータを前記第1のデータとして前記第1メモリに書き込む書き込み部を更に備え、
前記決定部は、前記読み出し部によって前記第2メモリから読み出された前記第2のデータについて、前記書き込み部によって前記第1メモリに書き込まれた前記第1のデータとの前記入れ替えを行なうかを決定することにより、前記格納先を決定する、
付記5又は6に記載の情報処理装置。
(付記8)
前記第1メモリは、前記第2メモリよりもアクセス速度が高く、
前記決定部は、所定時間が経過する毎に、前記第2メモリに格納されている前記第2のデータについて、前記第1メモリに格納されている前記第1のデータとの入れ替えを行なうかを決定することにより、前記格納先を決定する、
付記1〜4のいずれか一項に記載の情報処理装置。
(付記9)
前記第1メモリ及び前記第2メモリは、Least Recently Usedによって格納するデータを管理する、
付記1〜8のいずれか1項に記載の情報処理装置。
(付記10)
前記第1メモリ及び前記第2メモリは、Least Frequently Usedによって格納するデータを管理する、
付記1〜8のいずれか1項に記載の情報処理装置。
(付記11)
コンピュータに、
第1メモリに格納されている第1のデータ、及び、前記第1メモリとはアクセス速度が異なる第2メモリに格納されている第2のデータについてのそれぞれのアクセス確率とレイテンシとを算出し、
算出された前記アクセス確率と前記レイテンシとに基づき、前記第1メモリ及び前記第2メモリの中から、前記第1のデータ及び前記第2のデータの格納先を決定する、
処理を実行させる、プログラム。
(付記12)
前記第1メモリと前記第2メモリとの間で、前記第1のデータ及び前記第2のデータの格納先を変更する場合における前記第1のデータ及び前記第2のデータについての、前記第1のデータ及び前記第2のデータの格納先の決定に用いる第1の評価値を、前記アクセス確率と前記レイテンシとを用いて算出し、
前記第1メモリと前記第2メモリとの間で、前記第1のデータ及び前記第2のデータの格納先を変更しない場合における前記第1のデータ及び前記第2のデータについての、前記第1のデータ及び前記第2のデータの格納先の決定に用いる第2の評価値を、前記アクセス確率と前記レイテンシとを用いて算出し、
前記第1の評価値が前記第2の評価値よりも小さい場合に、前記第1のデータを前記第2メモリへ格納させ、前記第2のデータを前記第1メモリへ格納させるように、前記格納先を決定する、
処理を前記コンピュータに実行させる、付記11に記載のプログラム。
(付記13)
前記第1の評価値は、前記第1メモリと前記第2メモリとの間でデータを移動させる場合における、前記第1のデータについての前記アクセス確率と前記レイテンシとの積と、前記第2のデータについての前記アクセス確率と前記レイテンシとの積との和であり、
前記第2の評価値は、前記第1メモリと前記第2メモリとの間でデータを移動させない場合における、前記第1のデータについての前記アクセス確率と前記レイテンシとの積と、前記第2のデータについての前記アクセス確率と前記レイテンシとの積との和である、
付記12に記載のプログラム。
(付記14)
前記第1メモリは、前記第2メモリよりもアクセス速度が高く、
前記第2メモリに格納されている前記第2のデータについて、前記第1メモリに格納されているデータのうちアクセス頻度が最も低い前記第1のデータとの入れ替えを行なうかを決定することにより、前記格納先を決定する、
処理を前記コンピュータに実行させる、付記11〜13のいずれか1項に記載のプログラム。
(付記15)
前記第1メモリは、前記第2メモリよりもアクセス速度が高く、
上位装置からのデータの読み出し要求に応じて、前記第1メモリ又は前記第2メモリからデータを読み出し、
前記第2メモリから読み出された前記第2のデータについて、前記第1メモリに格納されている前記第1のデータとの入れ替えを行なうかを決定することにより、前記格納先を決定する、
処理を前記コンピュータに実行させる、付記11〜14のいずれか1項に記載のプログラム。
(付記16)
第1メモリに格納されている第1のデータ、及び、前記第1メモリとはアクセス速度が異なる第2メモリに格納されている第2のデータについてのそれぞれのアクセス確率とレイテンシとを算出し、
算出された前記アクセス確率と前記レイテンシとに基づき、前記第1メモリ及び前記第2メモリの中から、前記第1のデータ及び前記第2のデータの格納先を決定する、
情報処理方法。
(付記17)
前記第1メモリと前記第2メモリとの間で、前記第1のデータ及び前記第2のデータの格納先を変更する場合における前記第1のデータ及び前記第2のデータについての、前記第1のデータ及び前記第2のデータの格納先の決定に用いる第1の評価値を、前記アクセス確率と前記レイテンシとを用いて算出し、
前記第1メモリと前記第2メモリとの間で、前記第1のデータ及び前記第2のデータの格納先を変更しない場合における前記第1のデータ及び前記第2のデータについての、前記第1のデータ及び前記第2のデータの格納先の決定に用いる第2の評価値を、前記アクセス確率と前記レイテンシとを用いて算出し、
前記第1の評価値が前記第2の評価値よりも小さい場合に、前記第1のデータを前記第2メモリへ格納させ、前記第2のデータを前記第1メモリへ格納させるように、前記格納先を決定する、
付記16に記載の情報処理方法。
(付記18)
前記第1の評価値は、前記第1メモリと前記第2メモリとの間でデータを移動させる場合における、前記第1のデータについての前記アクセス確率と前記レイテンシとの積と、前記第2のデータについての前記アクセス確率と前記レイテンシとの積との和であり、
前記第2の評価値は、前記第1メモリと前記第2メモリとの間でデータを移動させない場合における、前記第1のデータについての前記アクセス確率と前記レイテンシとの積と、前記第2のデータについての前記アクセス確率と前記レイテンシとの積との和である、
付記17に記載の情報処理方法。
(付記19)
前記第1メモリは、前記第2メモリよりもアクセス速度が高く、
前記第2メモリに格納されている前記第2のデータについて、前記第1メモリに格納されているデータのうちアクセス頻度が最も低い前記第1のデータとの入れ替えを行なうかを決定することにより、前記格納先を決定する、
付記16〜18のいずれか1項に記載の情報処理方法。
(付記20)
前記第1メモリは、前記第2メモリよりもアクセス速度が高く、
上位装置からのデータの読み出し要求に応じて、前記第1メモリ又は前記第2メモリからデータを読み出し、
前記第2メモリから読み出された前記第2のデータについて、前記第1メモリに格納されている前記第1のデータとの入れ替えを行なうかを決定することにより、前記格納先を決定する、
付記16〜19のいずれか1項に記載の情報処理方法。
100 :キャッシュシステム
1 :キャッシュサーバ
11 :CPU
111 :第1算出部
112 :第2算出部
113 :決定部
114 :読み出し部
115 :書き込み部
12 :DRAM
13 :NAND型フラッシュメモリ
2 :DBMS
3 :クライアント
800,900:キャッシュシステム
81 :キャッシュメモリ
82 :DBMS
83 :サーバ
84 :ブラウザ
91 :キャッシュサーバ
92 :クライアント
911 :CPU
912 :DRAM

Claims (12)

  1. データを格納する第1メモリと、
    データを格納し、前記第1メモリとはアクセス速度が異なる第2メモリと、
    前記第1メモリに格納されている第1のデータ及び前記第2メモリに格納されている第2のデータについてのそれぞれのアクセス確率とレイテンシとに基づき、前記第1メモリ及び前記第2メモリの中から、前記第1のデータ及び前記第2のデータの格納先を決定する決定部と、
    を備える、情報処理装置。
  2. 前記第1メモリと前記第2メモリとの間で、前記第1のデータ及び前記第2のデータの格納先を変更する場合における前記第1のデータ及び前記第2のデータについての、前記第1のデータ及び前記第2のデータの格納先の決定に用いる第1の評価値を、前記アクセス確率と前記レイテンシとを用いて算出する第1算出部と、
    前記第1メモリと前記第2メモリとの間で、前記第1のデータ及び前記第2のデータの格納先を変更しない場合における前記第1のデータ及び前記第2のデータについての、前記第1のデータ及び前記第2のデータの格納先の決定に用いる第2の評価値を、前記アクセス確率と前記レイテンシとを用いて算出する第2算出部と、
    を更に備え、
    前記決定部は、前記第1の評価値が前記第2の評価値よりも小さい場合に、前記第1のデータを前記第2メモリへ格納させ、前記第2のデータを前記第1メモリへ格納させるように、前記格納先を決定する、
    請求項1に記載の情報処理装置。
  3. 前記第1の評価値は、前記第1メモリと前記第2メモリとの間でデータを移動させる場合における、前記第1のデータについての前記アクセス確率と前記レイテンシとの積と、前記第2のデータについての前記アクセス確率と前記レイテンシとの積との和であり、
    前記第2の評価値は、前記第1メモリと前記第2メモリとの間でデータを移動させない場合における、前記第1のデータについての前記アクセス確率と前記レイテンシとの積と、前記第2のデータについての前記アクセス確率と前記レイテンシとの積との和である、
    請求項2に記載の情報処理装置。
  4. 前記第1メモリは、前記第2メモリよりもアクセス速度が高く、
    前記決定部は、前記第2メモリに格納されている前記第2のデータについて、前記第1メモリに格納されているデータのうちアクセス頻度が最も低い前記第1のデータとの入れ替えを行なうかを決定することにより、前記格納先を決定する、
    請求項1〜3のいずれか1項に記載の情報処理装置。
  5. 上位装置からのデータの読み出し要求に応じて、前記第1メモリ又は前記第2メモリからデータを読み出す読み出し部を更に備え、
    前記第1メモリは、前記第2メモリよりもアクセス速度が高く、
    前記決定部は、前記読み出し部によって前記第2メモリから読み出された前記第2のデータについて、前記第1メモリに格納されている前記第1のデータとの入れ替えを行なうかを決定することにより、前記格納先を決定する、
    請求項1〜4のいずれか1項に記載の情報処理装置。
  6. 前記決定部は、前記入れ替えを行なっても前記第1メモリの容量に空きがある場合に、前記読み出し部によって前記第2メモリから読み出された前記第2のデータに加えて、前記第2メモリに格納されている他のデータも前記第1メモリへ移動させるかを決定することにより、前記格納先を決定する、
    請求項5に記載の情報処理装置。
  7. 前記上位装置による読み出し対象のデータが前記第1メモリ又は前記第2メモリに存在しない場合に、前記第1メモリ及び前記第2メモリとは異なる記憶装置から取得した前記読み出し対象のデータを前記第1のデータとして前記第1メモリに書き込む書き込み部を更に備え、
    前記決定部は、前記読み出し部によって前記第2メモリから読み出された前記第2のデータについて、前記書き込み部によって前記第1メモリに書き込まれた前記第1のデータとの前記入れ替えを行なうかを決定することにより、前記格納先を決定する、
    請求項5又は6に記載の情報処理装置。
  8. 前記第1メモリは、前記第2メモリよりもアクセス速度が高く、
    前記決定部は、所定時間が経過する毎に、前記第2メモリに格納されている前記第2のデータについて、前記第1メモリに格納されている前記第1のデータとの入れ替えを行なうかを決定することにより、前記格納先を決定する、
    請求項1〜4のいずれか一項に記載の情報処理装置。
  9. 前記第1メモリ及び前記第2メモリは、Least Recently Usedによって格納するデータを管理する、
    請求項1〜8のいずれか1項に記載の情報処理装置。
  10. 前記第1メモリ及び前記第2メモリは、Least Frequently Usedによって格納するデータを管理する、
    請求項1〜8のいずれか1項に記載の情報処理装置。
  11. コンピュータに、
    第1メモリに格納されている第1のデータ、及び、前記第1メモリとはアクセス速度が異なる第2メモリに格納されている第2のデータについてのそれぞれのアクセス確率とレイテンシとを算出し、
    算出された前記アクセス確率と前記レイテンシとに基づき、前記第1メモリ及び前記第2メモリの中から、前記第1のデータ及び前記第2のデータの格納先を決定する、
    処理を実行させる、プログラム。
  12. 第1メモリに格納されている第1のデータ、及び、前記第1メモリとはアクセス速度が異なる第2メモリに格納されている第2のデータについてのそれぞれのアクセス確率とレイテンシとを算出し、
    算出された前記アクセス確率と前記レイテンシとに基づき、前記第1メモリ及び前記第2メモリの中から、前記第1のデータ及び前記第2のデータの格納先を決定する、
    情報処理方法。
JP2017137928A 2017-07-14 2017-07-14 情報処理装置、プログラム及び情報処理方法 Active JP6996139B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2017137928A JP6996139B2 (ja) 2017-07-14 2017-07-14 情報処理装置、プログラム及び情報処理方法
US16/032,407 US10713182B2 (en) 2017-07-14 2018-07-11 Information processing apparatus and method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2017137928A JP6996139B2 (ja) 2017-07-14 2017-07-14 情報処理装置、プログラム及び情報処理方法

Publications (2)

Publication Number Publication Date
JP2019020965A true JP2019020965A (ja) 2019-02-07
JP6996139B2 JP6996139B2 (ja) 2022-01-17

Family

ID=64998936

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017137928A Active JP6996139B2 (ja) 2017-07-14 2017-07-14 情報処理装置、プログラム及び情報処理方法

Country Status (2)

Country Link
US (1) US10713182B2 (ja)
JP (1) JP6996139B2 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20210038633A1 (en) * 2019-08-09 2021-02-11 Case Western Reserve University Nanoparticle constructs for systemic co-delivery of anti-tumor agents
CN115933997B (zh) * 2023-01-30 2023-06-13 南京芯驰半导体科技有限公司 数据访问方法、相关设备及存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012247827A (ja) * 2011-05-25 2012-12-13 Ricoh Co Ltd プログラム生成装置、プログラム生成方法及びプログラム
JP2013174997A (ja) * 2012-02-24 2013-09-05 Mitsubishi Electric Corp キャッシュ制御装置、及びキャッシュ制御方法
US20160267008A1 (en) * 2015-03-13 2016-09-15 Kabushiki Kaisha Toshiba Memory system

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6385699B1 (en) * 1998-04-10 2002-05-07 International Business Machines Corporation Managing an object store based on object replacement penalties and reference probabilities
US20090177844A1 (en) * 2008-01-08 2009-07-09 International Business Machines Corporation Method of efficiently choosing a cache entry for castout
US8788758B1 (en) * 2008-11-04 2014-07-22 Violin Memory Inc Least profitability used caching scheme
US8285936B2 (en) * 2009-10-20 2012-10-09 The Regents Of The University Of Michigan Cache memory with power saving state
JP5992592B1 (ja) 2015-09-16 2016-09-14 株式会社東芝 キャッシュメモリシステム

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012247827A (ja) * 2011-05-25 2012-12-13 Ricoh Co Ltd プログラム生成装置、プログラム生成方法及びプログラム
JP2013174997A (ja) * 2012-02-24 2013-09-05 Mitsubishi Electric Corp キャッシュ制御装置、及びキャッシュ制御方法
US20160267008A1 (en) * 2015-03-13 2016-09-15 Kabushiki Kaisha Toshiba Memory system
JP2016170729A (ja) * 2015-03-13 2016-09-23 株式会社東芝 メモリシステム

Also Published As

Publication number Publication date
JP6996139B2 (ja) 2022-01-17
US10713182B2 (en) 2020-07-14
US20190018797A1 (en) 2019-01-17

Similar Documents

Publication Publication Date Title
US10241919B2 (en) Data caching method and computer system
CN103019958B (zh) 使用数据属性来管理固态存储器里的数据的方法
KR101289931B1 (ko) 다양한 블록 크기를 지원하는 주소 사상을 사용하여 플래시 메모리 내에 데이터를 저장하는 방법 및 장치
US8572325B2 (en) Dynamic adjustment of read/write ratio of a disk cache
US10740251B2 (en) Hybrid drive translation layer
JP5434738B2 (ja) ディスク装置
CN107003937A (zh) 针对大型工作数据集的缓存优化技术
CN108804350A (zh) 一种内存访问方法及计算机系统
JP2020046917A (ja) メモリシステム、ストレージシステム、および制御方法
JP2011198133A (ja) メモリシステムおよびコントローラ
CN102760101A (zh) 一种基于ssd 的缓存管理方法及系统
KR101297442B1 (ko) 공간 지역성을 고려한 요구 기반 플래시 메모리 변환 계층을 포함하는 낸드 플래시 메모리 시스템
CN110532200B (zh) 一种基于混合内存架构的内存系统
CN110795363B (zh) 一种存储介质的热页预测方法和页面调度方法
CN104991743B (zh) 应用于固态硬盘阻变存储器缓存的损耗均衡方法
US10713182B2 (en) Information processing apparatus and method
JP6800904B2 (ja) モデル生成装置、情報処理装置、モデル生成方法およびプログラム
CN109002400B (zh) 一种内容感知型计算机缓存管理系统及方法
KR101940382B1 (ko) 페이지의 프리페칭 방법 및 장치
JP6394231B2 (ja) データ配置制御プログラム、データ配置制御装置およびデータ配置制御方法
JP2017072981A (ja) 情報処理装置、キャッシュ制御方法およびキャッシュ制御プログラム
US9268700B2 (en) Cache control device, cache control method, and program thereof
KR20160121819A (ko) 이종 메모리 기반 데이터 관리 장치
KR101351648B1 (ko) 사용자의 요청을 예측하여 컨텐츠를 관리하는 멀티미디어 서버 및 그 관리 방법
Koltsidas et al. Spatial data management over flash memory

Legal Events

Date Code Title Description
RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20190607

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20200409

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20210317

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20210427

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210628

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20210907

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20211108

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20211116

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20211129

R150 Certificate of patent or registration of utility model

Ref document number: 6996139

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150