JP5434738B2 - ディスク装置 - Google Patents

ディスク装置 Download PDF

Info

Publication number
JP5434738B2
JP5434738B2 JP2010071431A JP2010071431A JP5434738B2 JP 5434738 B2 JP5434738 B2 JP 5434738B2 JP 2010071431 A JP2010071431 A JP 2010071431A JP 2010071431 A JP2010071431 A JP 2010071431A JP 5434738 B2 JP5434738 B2 JP 5434738B2
Authority
JP
Japan
Prior art keywords
cache
block
data
target data
recorded
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.)
Expired - Fee Related
Application number
JP2010071431A
Other languages
English (en)
Other versions
JP2011204060A (ja
Inventor
俊 栗田
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.)
NEC Corp
Original Assignee
NEC Corp
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 NEC Corp filed Critical NEC Corp
Priority to JP2010071431A priority Critical patent/JP5434738B2/ja
Priority to US13/036,501 priority patent/US9003099B2/en
Publication of JP2011204060A publication Critical patent/JP2011204060A/ja
Application granted granted Critical
Publication of JP5434738B2 publication Critical patent/JP5434738B2/ja
Expired - Fee Related 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/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0866Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
    • G06F12/0871Allocation or management of cache space
    • 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/0888Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using selective caching, e.g. bypass
    • 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/12Replacement control
    • G06F12/121Replacement control using replacement algorithms
    • G06F12/128Replacement control using replacement algorithms adapted to multidimensional cache systems, e.g. set-associative, multicache, multiset or multilevel
    • 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/0893Caches characterised by their organisation or structure
    • G06F12/0897Caches characterised by their organisation or structure with two or more cache hierarchy levels
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/21Employing a record carrier using a specific recording technology
    • G06F2212/217Hybrid disk, e.g. using both magnetic and solid state storage devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/22Employing cache memory using specific memory technology
    • G06F2212/222Non-volatile memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/22Employing cache memory using specific memory technology
    • G06F2212/225Hybrid cache memory, e.g. having both volatile and non-volatile portions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/26Using a specific storage system architecture
    • G06F2212/261Storage comprising a plurality of storage devices
    • G06F2212/262Storage comprising a plurality of storage devices configured as RAID
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/28Using a specific disk cache architecture
    • G06F2212/283Plural cache memories
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/31Providing disk cache in a specific location of a storage system
    • G06F2212/312In storage controller
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/31Providing disk cache in a specific location of a storage system
    • G06F2212/313In storage device
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/46Caching storage objects of specific type in disk cache
    • G06F2212/461Sector or disk block
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/46Caching storage objects of specific type in disk cache
    • G06F2212/466Metadata, control data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/60Details of cache memory
    • G06F2212/604Details relating to cache allocation

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Memory System (AREA)
  • Signal Processing For Digital Recording And Reproducing (AREA)

Description

本発明は、キャッシュメモリを備えたディスク装置に関する。
磁気ディスク装置、光ディスク装置、データアレイ装置などのディスク装置は、一般にシステムパフォーマンス等の観点からキャッシュメモリを備えている。キャッシュメモリは、典型的には、SRAM(Static Random Access Memory)、DRAM(Dynamic Random Access Memory)等の揮発性メモリから構成されており、ディスク装置の稼働中にアクセスされたデータをキャッシュメモリに格納しておくことにより、次にアクセス要求があったとき、要求されたデータがキャッシュメモリ上に存在すれば、低速なディスクをアクセスせずに、高速なキャッシュメモリ上のデータを利用することができるので、アクセス要求に対する応答性能を向上させることができる。
また、キャッシュメモリを備えたディスク装置において、応答性能を更に向上させるため、HDD(Hard Disk Drive)の一部をSSD(Solid State Drive)に置き換えるようにしたものも知られている(例えば、特許文献1参照)。SSDは、記憶素子として不揮発性のフラッシュメモリを使用したディスクドライブである。SSDは、HDDに比較して高速にデータを読み書きすることができるが、ブロックに対する消去、書き込み回数に制限がある。このため、特許文献1では、記憶領域の内の頻繁に書き換えが行われる部分(Writeブロック)のデータは、HDD側に記録し、書き換えが余り行われず、読み出される機会が多い部分(Readブロック)のデータは、SSDに記録することにより、応答性能を向上させつつ、SSDの寿命を延ばすようにしている。
特開2009−163647号公報
上述した特許文献1に記載されている技術によれば、応答性能を向上させつつ、SSDの寿命を延ばすことができる。しかし、特許文献1に記載されている技術は、記憶領域が、頻繁に書き換えが行われるWriteブロックと、書き換えが余り行われず、読み出される機会が多いReadブロックとに分けられるものにしか適用できないという問題がある。
ところで、応答性能を向上させる技術として、キャッシュメモリを1次キャッシュ、2次キャッシュというように階層化する技術が知られている。この技術を利用すれば、記憶領域がWriteブロックとReadブロックに分けられないディスク装置においても応答性能を向上させることができる。ここで、2次キャッシュは、その容量が多いほど、応答性能を高くすることができるので、大容量化が可能なSSDを2次キャッシュとして利用することが考えられる。
しかし、SSDは、ブロックに対する消去、書き込み回数に制限があるため、SSDを2次キャッシュとして利用した場合には、次のような問題が発生する。1次キャッシュのキャッシュページ(キャッシュライン)が全て利用されている状態で、更に、1次キャッシュ上に存在しないブロックに対するアクセス要求が発生すると、通常、1次キャッシュからブロックが1つ追い出され、2次キャッシュに書き込まれる。従って、SSDを2次キャッシュとして利用した場合は、1次キャッシュから追い出されたブロックの書き込み処理によって2次キャッシュの寿命が短くなるという問題がある。
[発明の目的]
そこで、本発明の目的は、SSDを2次キャッシュとして利用した場合に、2次キャッシュの寿命が短くなるという課題を解決したディスク装置を提供することにある。
本発明に係る第1のディスク装置は、
ディスクと、
該ディスクに記録されているデータの一部の写しが記録される1次キャッシュと、
SSDにより構成され、前記ディスクに記録されているデータの一部の写しが記録される2次キャッシュと、
前記1次キャッシュ上に空き領域を生成するために破棄対象として選択したブロックの1次キャッシュ上での読み込み回数が閾値を超えているとき、前記ブロックを前記2次キャッシュに記録し、読み込み要求時、読み込み対象データが前記1次キャッシュ上に存在する場合は、前記1次キャッシュ上の読み込み対象データを要求元に返却し、読み込み対象データが前記1次キャッシュ上に存在せず、前記2次キャッシュ上に存在する場合は、前記2次キャッシュ上に存在する前記読み込み対象データを含んだブロックを前記1次キャッシュに書き込んだ後、前記1次キャッシュ上の読み込み対象データを要求元に返却する制御手段とを備える。
本発明に係る2次キャッシュ利用方法は、
ディスクと、該ディスクに記録されているデータの一部の写しが記録される1次キャッシュと、SSDにより構成され、前記ディスクに記録されているデータの一部の写しが記録される2次キャッシュとを備えたディスク装置における2次キャッシュ利用方法であって、
制御手段が、前記1次キャッシュ上に空き領域を生成するために破棄対象として選択したブロックの1次キャッシュ上での読み込み回数が閾値を超えているとき、前記ブロックを前記2次キャッシュに記録し、読み込み要求時、読み込み対象データが前記1次キャッシュ上に存在する場合は、前記1次キャッシュ上の読み込み対象データを要求元に返却し、読み込み対象データが前記1次キャッシュ上に存在せず、前記2次キャッシュ上に存在する場合は、前記2次キャッシュ上に存在する前記読み込み対象データを含んだブロックを前記1次キャッシュに書き込んだ後、前記1次キャッシュ上の読み込み対象データを要求元に返却する。
本発明に係るプログラムは、
ディスクと、該ディスクに記録されているデータの一部の写しが記録される1次キャッシュと、SSDにより構成され、前記ディスクに記録されているデータの一部の写しが記録される2次キャッシュとを備えたディスク装置に実装されているCPUを、
前記1次キャッシュ上に空き領域を生成するために破棄対象として選択したブロックの1次キャッシュ上での読み込み回数が閾値を超えているとき、前記ブロックを前記2次キャッシュに記録し、読み込み要求時、読み込み対象データが前記1次キャッシュ上に存在する場合は、前記1次キャッシュ上の読み込み対象データを要求元に返却し、読み込み対象データが前記1次キャッシュ上に存在せず、前記2次キャッシュ上に存在する場合は、前記2次キャッシュ上に存在する前記読み込み対象データを含んだブロックを前記1次キャッシュに書き込んだ後、前記1次キャッシュ上の読み込み対象データを要求元に返却する制御手段として機能させる。
本発明によれば、SSDを2次キャッシュとして利用した場合に、2次キャッシュの寿命が短くなるという課題を解決することができる。
本発明の実施の形態の構成例を示すブロック図である。 キャッシュメモリ4の内容例を示す図である。 本発明の実施の形態の処理例(主に読み込み要求時)を示すフローチャートである。 本発明の実施の形態の処理例(主に書き込み要求時)を示すフローチャートである。 本発明の実施の形態の処理例(キャッシュメモリからのブロック破棄時)の処理例を示すフローチャートである。 対応表60の内容例を示す図である。 管理情報リスト部43の具体例を示す図である。 実施の形態の変形例を示すブロック図である。
次に、本発明の実施の形態について図面を参照して詳細に説明する。
[本発明の実施の形態]
図1を参照すると、本発明の一実施の形態としてのディスクアレイ装置1が示されている。図1において、ディスクアレイ装置1は、コントローラ2と、ディスク部6とを備えている。
ディスク部6は、RAID(Redundant
Arrays of Inexpensive Disks)によって管理される複数台のHDD7と、2次キャッシュとして利用されるSSD8とを備えている。2次キャッシュとして利用されるSSD8には、HDD7に記録されているデータの一部の写しが記録される。なお、図1では、SSD8の台数を1台としたが、複数台であっても構わない。
コントローラ2は、ホスト制御部3と、1次キャッシュとして利用されるキャッシュメモリ4と、ディスク制御部5とを備えている。
図2を参照すると、キャッシュメモリ4は、キャッシュページ部41と、ディスクアレイ制御情報部42と、管理情報リスト部43とを備えている。
キャッシュページ部41は、所定サイズの複数のキャッシュページ(キャッシュライン)411から構成され、各キャッシュページ411には、HDD7に記録されているデータの一部の写しが記録されている。また、各キャッシュページ411には、それぞれ異なるキャッシュページ番号が割り当てられている。
ディスクアレイ制御情報部42には、ディスク制御部5がディスクアレイを制御するために必要になるディスクアレイ制御情報(例えば、RAID構成を示す情報など)が記録される。
管理情報リスト部43には、キャッシュページ411に割り当てられているキャッシュページ番号(単に、ページ番号と記す場合もある)431に関連付けて、そのキャッシュページに格納されているブロック上のデータがホスト制御部3によって読み込まれた回数(読み込み回数)432と、そのキャッシュページの読み込み回数が予め定められている規定回数を超えているか否かを表すSSDフラグ433と、そのキャッシュページがアクセスされた順番が、アクセス順が最も新しいキャッシュページから数えて何番目であるかを表すアクセス順434と、そのキャッシュページに格納されているデータの中に、HDD7或いはSSD8上の対応するデータと内容が異なっているものが存在するか否かを示す変更フラグ435とが記録されている。なお、本実施の形態では、SSDフラグ433は、読み込み回数が規定回数以下の場合には無効(“0”)、規定回数を超える場合には有効(“1”)となる。
ホスト制御部3は、コンピュータなどのホスト装置9からのアクセス要求を処理するものであり、制御手段31と、管理情報リスト更新手段32とを備えている。
制御手段31は、ホスト装置9からのアクセス要求を受け付け、その種類(書き込み要求なのか、読み込み要求なのか)や、要求されているデータがキャッシュメモリ4上に存在するか否かや、ブロックの置き換えが必要な否かなどを判定し、判定結果に応じた処理を行う。その際、必要に応じて管理情報リスト更新手段32を利用したり、ディスク制御部5に対して処理要求を出力する。
管理情報リスト更新手段32は、制御手段31から読み込み回数をインクリメントするキャッシュページ番号が通知されると、管理情報リスト部43に記録されている読み込み回数432の内、上記キャッシュページ番号に関連付けて記録されている読み込み回数をインクリメントし、インクリメント後の読み込み回数が予め定められている規定回数を超えている場合には、SSDフラグ433を“1”とする。
ディスク制御部5は、ホスト制御部3からの指示に従って、ディスク部6内のHDD7や、SSD8に対してデータの読み書きを行うものであり、制御手段51と転送手段52とを備えている。
制御手段51は、ホスト制御部3からの要求を処理する。その際、必要に応じて転送手段52を利用する。
転送手段52は、制御手段51からの指示に従って、HDD7或いはSSD8上のブロックをキャッシュページ411に書き込んだり、キャッシュページ411に格納されているブロックをHDD7あるいはSSD8に書き込む。
なお、コントローラ2は、CPU(中央処理装置)によって実現可能であり、CPUによって実現する場合は、CPUをホスト制御部3およびディスク制御部5として機能させるためのプログラムを記録したディスクなどの記録媒体を用意し、CPUに上記プログラムを読み取らせる。CPUは、読み取ったプログラムに従って自身の動作を制御することにより、自CPU上にホスト制御部3およびディスク制御部5を実現する。
次に、本実施の形態の動作について詳細に説明する。
図3を参照すると、ホスト装置9からアクセス要求があると、ホスト制御部3内の制御手段31は、アクセス要求の種類が書き込み要求なのか、読み込み要求なのかを判定する(ステップS301)。
読み込み要求であった場合には、要求されたデータがキャッシュメモリ4上に存在するか否かを判定する(ステップS302)。この判定は、例えば、図6に示すように、キャッシュページ番号と、そのキャッシュページに格納されているブロックを構成する複数のデータそれぞれのアドレスと、各アドレスのデータが有効であるか否かを示すアドレス有効ビットと、そのキャッシュページが有効であるか否かを示すページ有効ビットとが対応付けて記録されている対応表60を利用して行う。つまり、制御手段31は、対応表60を検索し、ページ有効ビットが有効(“1”)になっているキャッシュページのページ番号に関連付けて、読み込み要求中のリードアドレスと同一のアドレスであって、アドレス有効ビットが有効(“1”)になっているアドレスが記録されているか否かを調べることにより、要求されたデータがキャッシュメモリ4上に存在するか否かを判定する。
また、ステップS302では、制御手段31は、ページ有効ビットが有効になっているキャッシュページのページ番号に関連付けて、読み込み要求中のリードアドレスと同一アドレスであるが、対応するアドレス有効ビットが無効(“0”)になっているアドレスが記録されている場合は、合成フラグを有効にすると共に、上記リードアドレスが関連付けて記録されているキャッシュページ番号を保持する。例えば、対応表60が図6に示すものであり、読み込み要求中のリードアドレスが「0x00000001」である場合には、ページ有効ビットが有効になっているキャッシュページ番号「0」に関連付けて上記リードアドレス「0x00000001」が登録されているが、対応するアドレス有効ビットが無効(“0”)になっているので、制御手段31は、合成フラグを有効(“1”)にすると共に、キャッシュページ番号「0」を保持する。
そして、読み込み要求されたデータがキャッシュメモリ4上に存在する場合(ステップS302がYES)には、制御手段31は、管理情報リスト更新手段32に対して、要求データが格納されているキャッシュページのページ番号を通知し、そのキャッシュページの読み込み回数をインクリメントすることを指示する。これにより、管理情報リスト更新手段32は、管理情報リスト部43に記録されている読み込み回数432の内、制御手段31から通知されたキャッシュページの読み込み回数をインクリメントする(ステップS303)。また、ステップS303では、管理情報リスト部43に記録されているアクセス順434の内、制御手段31から通知されたキャッシュページのアクセス順を、最新アクセスを示すものに変更し、他のキャッシュページのアクセス順を、順序を保って繰り下げる処理も行う。
その後、管理情報リスト更新手段32は、インクリメント後の読み込み回数と予め定められている規定回数とを比較し、読み込み回数が規定回数を超えているか否かを判定する(ステップS304)。
そして、読み込み回数が規定回数以下である場合は、制御手段31に対して処理終了を通知し、読み込み回数が規定回数を超えている場合は、制御手段31から通知されているキャッシュページのSSDフラグ433を有効化した後(ステップS305)、制御手段31に対して処理終了を通知する。この通知を受けると、制御手段31は、後述するホスト装置への応答処理を行う(ステップS314)。
一方、ステップS302において、読み込み要求されたデータがキャッシュメモリ4上に存在しないと判定した場合は、制御手段31は、合成フラグが有効(“1”)になっているか否かを判定する(ステップS306)。
そして、無効になっている場合(ステップS306がNO)は、読み込み要求されているデータのアドレスをディスク制御部5に渡し、上記データを含むブロックをキャッシュメモリ4に格納することを指示する。これにより、ディスク制御部5内の制御手段51は、上記データを含むブロックが、2次キャッシュとして利用しているSSD8上に存在しているか否かを判定する(ステップS307)。この判定は、SSD8上のキャッシュページのページ番号と、そのキャッシュページに記録されているブロックのブロック番号と、そのキャッシュページが有効であるか否かを示す有効ビットとが対応付けて記録されているSSD対応表(図示せず)を利用して行う。つまり、読み込み要求されたデータを含むブロックのブロック番号がSSD対応表に記録され、且つ、対応する有効ビットが有効になっている場合、SSD8上に存在すると判定する。
そして、SSD8上に存在する場合には、制御手段51は、転送手段52を利用して、要求データを含んでいるブロックをSSD8から読み込んで、キャッシュメモリ4上の空いているキャッシュページに書き込み、更に、対応表60を更新する(ステップS308,S309)。対応表60の更新処理では、ブロックを書き込んだキャッシュページのページ番号に対応するページ有効ビットおよびアドレス有効ビットを有効にすると共に、上記ページ番号に関連付けて上記ブロック中の各データのアドレスを記録する。その後、制御手段51は、ホスト制御部3に対してブロックを書き込んだキャッシュページのページ番号を通知する。これにより、ホスト制御部3内の制御手段31は、管理情報リスト部43に記録されているアクセス順に対する更新処理を行い(ステップS310)、その後、ホスト装置に対する応答処理を行う(ステップS314)。これに対して、SSD8上に存在しない場合(ステップS307がNO)は、HDD7から要求データを含んでいるブロックを読み込んでキャッシュメモリ4に格納すると共に、対応表60を更新し(ステップS311,S309)、その後、前述したステップS310の処理を行う。
これに対して、ステップS306で合成フラグが有効になっていると判定した場合は、制御手段31は、ディスク制御部5に対して、読み込み要求されているデータのアドレスと、ステップS302で保持しておいたキャッシュページ番号と通知し、HDD上の上記データを含むブロックの内容と、上記キャッシュページ番号のキャッシュページの内容とを合成することを指示する。これにより、ディスク制御部5内の制御手段51は、HDD7から該当するブロックを読み込むと共に、上記キャッシュページ番号のキャッシュページの内容を読み込む。そして、HDD7から読み込んだデータの内の、対応表60中のアドレス有効ビットが有効になっているアドレスのデータを、キャッシュページから読み込んだ対応するデータで置き換える(ステップS312)。例えば、ブロック中の先頭アドレスに対するアドレス有効ビットが有効になっている場合は、制御手段51は、HDD7から読み込んだブロック中の先頭データを、該当するキャッシュページから読み込んだブロック中の先頭データで置き換える。その後、制御手段51は、合成したブロックを、キャッシュメモリ4上の上記キャッシュページに格納し、更に、対応表60に記録されている、上記キャッシュページに関するアドレス有効ビットを全て有効化する(ステップS313)。その後、制御手段51は、ホスト制御部3に対してブロックを書き込んだキャッシュページのページ番号を通知する。これにより、ホスト制御部3内の制御手段31は、前述したステップS310の処理を行う。
また、ステップS301において、ホスト装置9からのアクセス要求が、書き込み要求であると判定した場合は、制御手段31は、図4のフローチャートに示すように、書き込み要求されたデータを含むブロックに関するキャッシュページ(該当キャッシュページ)がキャッシュメモリ4上に存在するか否かを判定する(ステップS41)。この判定は、対応表60を検索し、ページ有効ビットが有効になっており、且つ、書き込み要求中のライトアドレスと同一のアドレスが関連付けて記録されているキャッシュページ番号が存在するか否かを判定することにより行う。
そして、該当キャッシュページが存在すると判定した場合は、そのキャッシュページ内の該当位置にデータを書き込むと共に、データを書き込んだアドレスに対応するアドレス有効ビットを有効化する(ステップS42)。その後、制御手段31は、書き込み要求データが格納されているキャッシュページのページ番号を管理情報リスト更新手段32に渡し、そのページ番号に対応する変更フラグを有効化することを指示する。これにより、管理情報リスト更新手段32は、管理情報リスト部43に記録されている変更フラグ435の内、制御手段31から指示されたキャッシュページの更新フラグを有効化し、更に、アクセス順434に対して前述した更新処理を行う(ステップS46)。その後、制御手段31は、ホスト装置への応答処理を行う(ステップS314)。
これに対して、該当キャッシュページがキャッシュメモリ4上に存在しないと判定した場合は、制御手段31は、書き込み要求されているデータのアドレスをディスク制御部5に渡し、上記データを含むブロックをキャッシュメモリ4に格納することを指示する。これにより、ディスク制御部5内の制御手段51は、上記データを含んでいるブロックがSSD8上に存在するか否かを判定する(ステップS43)。
そして、SSD8上に存在すると判定した場合は、制御手段51は転送手段52を利用してSSD8から該当するブロックを読み込み、キャッシュメモリ4上の空いているキャッシュページに書き込む(ステップS44)。その後、制御手段51は、ホスト制御部3に対してブロックを書き込んだキャッシュページのページ番号を通知する。これにより、ホスト制御部3内の制御手段31は、上記キャッシュページの該当位置に書き込み要求されているデータを書き込み、更に、対応表60の更新処理を行う(ステップS45)。その後、前述したステップS46の処理を行う。
これに対して、SSD8上に存在しないと判定した場合は、制御手段51は、その旨をホスト制御部3に通知する。これにより、ホスト制御部3内の制御手段31は、キャッシュメモリ4上の空いているキャッシュページに書き込み要求されているデータを書き込むと共に、対応表60の更新処理を行う(ステップS47)。ステップS45或いはステップS47の処理が終了すると、制御手段31は、前述したステップS46と同様の処理を行い、その後、ホスト装置に対する応答処理を実行する(ステップS314)。
ステップS314のホスト装置への応答処理では、ホスト装置9からのアクセス要求が読み込み要求であった場合は、キャッシュメモリ4上に存在する読み込み対象データを要求元のホスト装置9へ返却し、その後、読み込み処理完了をホスト装置9へ送信する。これに対して、ホスト装置9からのアクセス要求が書き込み要求であった場合は、ホスト制御部3は、書き込み処理完了をホスト装置9へ送信する。
ところで、図3,図4のフローチャートでは説明を省略したが、キャッシュメモリ4上の全てのキャッシュページが使用されている状態(空きのキャッシュページが存在しない状態)で、さらにホスト装置9からキャッシュメモリ4上に存在しないブロックに対するアクセス要求が送られてきた場合には、キャッシュメモリ4上の何れかのキャッシュページに格納されているブロックを1つ、キャッシュメモリ4から破棄し(追い出し)、キャッシュメモリ4上に空きのキャッシュページを作成する破棄処理を行うことが必要になる。このような破棄処理は、キャッシュメモリ4上の全てのキャッシュページが使用されている状態で、ステップS302の判定結果がNOとなった場合、および、ステップS41の判定結果がNOとなった場合に行われる。そして、破棄処理が完了すると、ステップS306或いはステップS43の処理が行われる。以下、図5のフローチャートを参照して廃棄処理について説明する。
図5を参照すると、ホスト制御部3の制御手段31は、先ず、破棄するブロックが格納されているキャッシュページ(破棄対象キャッシュページ)のページ番号を求める(ステップS51)。具体的には、制御手段31は、管理情報リスト部43に記録されている各キャッシュページのアクセス順434に基づいて、最も遠い過去に参照されたブロックを格納しているキャッシュページのページ番号を求め、それを破棄対象キャッシュページのページ番号とする。即ち、本実施の形態では、LRU(Least Recently Used)方式によって、破棄対象キャッシュページを決定している。しかし、破棄対象キャッシュページの決定方法は、これに限られるものではなく、参照された頻度が最も少ないブロックを格納しているキャッシュページを破棄対象キャッシュページとするLFU(Least Frequently Used)方式など、他の方法を採用するようにしてもよい。
その後、制御手段31は、破棄対象キャッシュページのページ番号に関連付けて記録されているSSDフラグ433が有効になっているか否かを判定する(ステップS52)。
そして、有効になっている場合は、ディスク制御部5に対して、破棄対象キャッシュページに格納されているブロックを、SSD8に書き込むことを指示する。これにより、ディスク制御部5内の制御手段51は、転送手段52を利用して、キャッシュメモリ4の破棄対象キャッシュページに格納されているブロックをSSDに書き込む(ステップS53)。つまり、SSD対応表に上記ブロックのブロック番号が記録されている場合には、そのブロック番号に対応付けて記録されているキャッシュページ番号のキャッシュページ(SSD8上のキャッシュページ)に上記ブロックを書き込む。また、SSD対応表に上記ブロック番号が記録されていない場合には、空いているキャッシュページのページ番号に対応付けて上記ブロック番号を記録すると共に、その有効ビットを有効にする。その後、ホスト制御部3の制御手段31は、前述した対応表60の、上記破棄対象キャッシュページのページ有効ビット、アドレス有効ビットを無効化するなどすることにより、破棄対象キャッシュページに格納されているブロックを破棄する(ステップS54)。更に、制御手段31は、管理情報リスト更新手段32を利用して、破棄対象キャッシュページのページ番号に対応付けて記録されている読み込み回数432、SSDフラグ433、アクセス順434、変更フラグ435をクリアする(ステップS55)。
これに対して、破棄対象キャッシュページについてのSSDフラグ433が無効になっている場合(ステップS52がNO)は、制御手段31は、破棄対象キャッシュページについての変更フラグ435が有効になっているか否かを判定する(ステップS56)。
そして、変更フラグ435が有効になっている場合は、キャッシュメモリ4上のブロックの内容と、HDD7上の対応するブロックの内容とが異なっているので、制御手段31はディスク制御部5に対して、破棄対象キャッシュページに格納されているデータの内、対応表60のアドレス有効ビットが有効になっているデータをHDD7に書き戻すことを指示する。これにより、ディスク制御部5内の制御手段51は、転送手段52を利用して、破棄対象キャッシュページに格納されている該当データをHDD7に書き戻す(ステップS57)。また、ステップS57では、SSD対応表上に上記データを含むブロックのブロック番号が登録されている場合は、そのブロック番号に対応付けて記録されている有効ビットを無効にする。その後、制御手段31は、前述したステップS54,S55の処理を行う。
これに対して変更フラグ435が無効になっている場合は、破棄対象キャッシュページに格納されているブロックの内容と、HDD7上の対応するブロックの内容とは一致しているので、制御手段31は、直ちに前述したステップS54,S55の処理を行う。
なお、上述した処理に加え、次のような処理を行うようにしてもよい。ディスク制御部5内の制御手段51は、定期的に管理情報リスト部43の変更フラグ435を参照する。そして、変更フラグ435が有効になっているキャッシュページについては、転送手段52を利用して、上記キャッシュページに格納されているデータの内の、アドレス有効ビットが有効になっているデータをHDD7に書き戻し、その後、該当する変更フラグ435を無効化する。更に、SSD対応表に上記データを含むブロックのブロック番号が記録されている場合は、そのブロック番号に対応付けて記録されている有効ビットを無効化する。このような処理を行うことにより、前述した図4のステップS57の処理が行われる回数を減らすことができるので、ホスト装置9からのアクセス要求に対する応答性能を更に高いものにすることができる。
次に、具体例を挙げて本実施の形態の動作について説明する。
今、管理情報リスト部43の内容が図7に示すものであるとする。なお、この例では、SSDフラグを有効化する規定回数(図3のステップS304における規定回数)を「80回」としている。
このような状態において、図5のステップS51において、破棄対象キャッシュページのページ番号として「0ページ」が求められたとする。「0ページ」は、読み込み回数が「30回」であり、規定回数以下であるので、「0ページ」のSSDフラグ433は、“0”となっている。また、この例では、「0ページ」の変更フラグ435は、“0”となっている。従って、ステップS52,S56の判定結果が共にNOとなり、廃棄対象キャッシュページに格納されているブロックを破棄する処理(ステップS54)、および、ページ番号「0ページ」に関連付けて記録されている読み込み回数432などをクリアする処理が行われる(ステップS55)。すなわち、ホスト装置9からの読み込み回数が少ないページ番号「0」のキャッシュページに格納されているブロックを破棄する場合には、SSD8に対する書き込み処理は行われない。
また、図5のステップS51において、破棄対象キャッシュページのページ番号として「1ページ」が求められたとすると、次のような処理が行われる。「1ページ」は、読み込み回数が「100回」であり、規定回数を超えているので、「0ページ」のSSDフラグは、“1”になっている。従って、ステップS52の判定結果がYESとなり、ページ番号「1」のキャッシュページに格納されていたブロックは、SSD8に書き込まれる(ステップS43)。
以上の動作により、キャッシュメモリ4から破棄するブロックのうち、キャッシュメモリ4からの読み込み回数が多いブロックのみをSSD8に保存することができる。これにより、SSD8への書き込み回数を削減することができ、SSD8の寿命を延ばすことができる。
なお、上述した説明では、2次キャッシュとして使用するSSD8をディスク部6内に配置するようにしたが、図8に示すように、SSD8をコントローラ2内に配置するようにしてもよい。
[実施の形態の効果]
本実施の形態によれば、SSDを2次キャッシュとして利用した場合に、2次キャッシュの寿命が短くなるという課題を解決することができる。その理由は、1次キャッシュからブロックを破棄する際、上記ブロックに対する読み込み回数が閾値を超えるか否かを判定し、閾値を超える場合に限り、上記ブロックをSSDに記録するようにしているからである。
また、本実施の形態では、転送時間がかかるHDDからキャッシュメモリへの転送処理は、ホスト装置から読み込み要求があり、且つ要求されたデータがSSDに存在しない場合だけであるので、キャッシュメモリからブロックを破棄する際、ホスト装置から再度アクセスされる可能性が高い、読み込み回数が多いブロックだけをSSDに記録するようにするだけでも、応答性能を十分に高いものにすることができる。
1 ディスクアレイ装置
2 コントローラ
3 ホスト制御部
4 キャッシュメモリ
5 ディスク制御部
6 ディスク部
7 HDD
8 SSD
9 ホスト装置
31 制御手段
32 管理情報リスト更新手段
41 キャッシュページ部
42 ディスクアレイ制御情報部
43 管理情報リスト部
51 制御手段
52 転送手段
60 対応表

Claims (8)

  1. ディスクと、
    該ディスクに記録されているデータの一部の写しが記録される1次キャッシュと、
    SSDにより構成され、前記ディスクに記録されているデータの一部の写しが記録される2次キャッシュと、
    前記1次キャッシュ上に空き領域を生成するために破棄対象として選択したブロックの1次キャッシュ上での読み込み回数が閾値を超えているとき、前記ブロックを前記2次キャッシュに記録し、読み込み要求時、読み込み対象データが前記1次キャッシュ上に存在する場合は、前記1次キャッシュ上の読み込み対象データを要求元に返却し、読み込み対象データが前記1次キャッシュ上に存在せず、前記2次キャッシュ上に存在する場合は、前記2次キャッシュ上に存在する前記読み込み対象データを含んだブロックを前記1次キャッシュに書き込んだ後、前記1次キャッシュ上の読み込み対象データを要求元に返却する制御手段とを備えたことを特徴とするディスク装置。
  2. 請求項1記載のディスク装置において、
    前記制御手段は、書き込み要求時、書き込み対象データが前記1次キャッシュ上に存在する場合は、前記1次キャッシュに書き込み対象データを書き込み、書き込み対象データが前記1次キャッシュ上に存在せず、前記2次キャッシュ上に存在する場合は、前記2次キャッシュ上に存在する前記書き込み対象データを含んだブロックを前記1次キャッシュに書き込んだ後、前記1次キャッシュに書き込み対象データを書き込み、書き込み対象データが前記1次キャッシュ上及び前記2次キャッシュ上に存在しない場合は、前記1次キャッシュ上の空き領域に書き込み対象データを書き込むことを特徴とするディスク装置。
  3. 請求項1または2記載のディスク装置において、
    前記制御手段は、前記ブロックに対する読み込み回数が前記閾値未満である場合は、前記ブロック中の有効データを前記ディスクに書き戻すことを特徴とするディスク装置。
  4. 請求項1または2記載のディスク装置において、
    前記制御手段は、前記ブロックに対する読み込み回数が前記閾値未満である場合は、前記ブロックに対して書き込みが行われているか否かを判定し、書き込みが行われている場合は、前記ブロック中の有効データを前記ディスクに書き戻し、書き込みが行われていない場合は、前記ブロックを破棄することを特徴とするディスク装置。
  5. 請求項1または2記載のディスク装置において、
    定期的に、書き込みが行われているブロック中の有効データを前記ディスクに書き戻す書き戻し手段を備え、
    前記制御手段は、前記ブロックに対する読み込み回数が前記閾値未満である場合は、前記書き戻し手段によって前記ブロックの有効データが前記ディスクに書き戻されていれば、前記ブロックを破棄し、書き戻されていなければ、前記ブロック中の有効データを前記ディスクに書き戻すことを特徴とするディスク装置。
  6. 請求項1乃至5の何れか1項に記載のディスク装置において、
    前記ディスクは、アレイ構成を有することを特徴とするディスク装置。
  7. ディスクと、該ディスクに記録されているデータの一部の写しが記録される1次キャッシュと、SSDにより構成され、前記ディスクに記録されているデータの一部の写しが記録される2次キャッシュとを備えたディスク装置における2次キャッシュ利用方法であって、
    制御手段が、前記1次キャッシュ上に空き領域を生成するために破棄対象として選択したブロックの1次キャッシュ上での読み込み回数が閾値を超えているとき、前記ブロックを前記2次キャッシュに記録し、読み込み要求時、読み込み対象データが前記1次キャッシュ上に存在する場合は、前記1次キャッシュ上の読み込み対象データを要求元に返却し、読み込み対象データが前記1次キャッシュ上に存在せず、前記2次キャッシュ上に存在する場合は、前記2次キャッシュ上に存在する前記読み込み対象データを含んだブロックを前記1次キャッシュに書き込んだ後、前記1次キャッシュ上の読み込み対象データを要求元に返却することを特徴とする2次キャッシュ利用方法。
  8. ディスクと、該ディスクに記録されているデータの一部の写しが記録される1次キャッシュと、SSDにより構成され、前記ディスクに記録されているデータの一部の写しが記録される2次キャッシュとを備えたディスク装置に実装されているCPUを、
    前記1次キャッシュ上に空き領域を生成するために破棄対象として選択したブロックの1次キャッシュ上での読み込み回数が閾値を超えているとき、前記ブロックを前記2次キャッシュに記録し、読み込み要求時、読み込み対象データが前記1次キャッシュ上に存在する場合は、前記1次キャッシュ上の読み込み対象データを要求元に返却し、読み込み対象データが前記1次キャッシュ上に存在せず、前記2次キャッシュ上に存在する場合は、前記2次キャッシュ上に存在する前記読み込み対象データを含んだブロックを前記1次キャッシュに書き込んだ後、前記1次キャッシュ上の読み込み対象データを要求元に返却する制御手段として機能させるためのプログラム。
JP2010071431A 2010-03-26 2010-03-26 ディスク装置 Expired - Fee Related JP5434738B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2010071431A JP5434738B2 (ja) 2010-03-26 2010-03-26 ディスク装置
US13/036,501 US9003099B2 (en) 2010-03-26 2011-02-28 Disc device provided with primary and secondary caches

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2010071431A JP5434738B2 (ja) 2010-03-26 2010-03-26 ディスク装置

Publications (2)

Publication Number Publication Date
JP2011204060A JP2011204060A (ja) 2011-10-13
JP5434738B2 true JP5434738B2 (ja) 2014-03-05

Family

ID=44657651

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010071431A Expired - Fee Related JP5434738B2 (ja) 2010-03-26 2010-03-26 ディスク装置

Country Status (2)

Country Link
US (1) US9003099B2 (ja)
JP (1) JP5434738B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9558065B2 (en) 2015-02-02 2017-01-31 Kabushiki Kaisha Toshiba Memory system including cache

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10152423B2 (en) * 2011-10-31 2018-12-11 International Business Machines Corporation Selective population of secondary cache employing heat metrics
US9158706B2 (en) 2011-10-31 2015-10-13 International Business Machines Corporation Selective space reclamation of data storage memory employing heat and relocation metrics
US8972661B2 (en) * 2011-10-31 2015-03-03 International Business Machines Corporation Dynamically adjusted threshold for population of secondary cache
US8930624B2 (en) * 2012-03-05 2015-01-06 International Business Machines Corporation Adaptive cache promotions in a two level caching system
JP2013222434A (ja) 2012-04-19 2013-10-28 Nec Corp キャッシュ制御装置、キャッシュ制御方法、及びそのプログラム
JP5953245B2 (ja) * 2013-02-12 2016-07-20 株式会社日立製作所 情報処理システム
US9189409B2 (en) * 2013-02-19 2015-11-17 Avago Technologies General Ip (Singapore) Pte. Ltd. Reducing writes to solid state drive cache memories of storage controllers
JP6273678B2 (ja) * 2013-03-01 2018-02-07 日本電気株式会社 ストレージ装置
JP6098262B2 (ja) * 2013-03-21 2017-03-22 日本電気株式会社 記憶装置および記憶方法
US20150089102A1 (en) * 2013-09-23 2015-03-26 Lsi Corporation Solid state drives that cache boot data
WO2015173889A1 (ja) * 2014-05-13 2015-11-19 株式会社日立製作所 ストレージ装置
CN104572491B (zh) 2014-12-30 2017-10-17 华为技术有限公司 一种基于固态硬盘的读缓存管理方法及装置
US20160210044A1 (en) * 2015-01-15 2016-07-21 Commvault Systems, Inc. Intelligent hybrid drive caching
CN108733313B (zh) * 2017-04-17 2021-07-23 伊姆西Ip控股有限责任公司 利用预备盘建立多级闪速缓存的方法、设备和计算机可读介质
CN111124270B (zh) 2018-10-31 2023-10-27 伊姆西Ip控股有限责任公司 缓存管理的方法、设备和计算机程序产品

Family Cites Families (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06139147A (ja) * 1992-10-23 1994-05-20 Fujitsu Ltd キャッシュメモリシステム
JP3030229B2 (ja) * 1994-06-20 2000-04-10 インターナショナル・ビジネス・マシーンズ・コーポレイション データを転送する方法及びデータ記憶システム
JPH10154101A (ja) * 1996-11-26 1998-06-09 Toshiba Corp データ記憶システム及び同システムに適用するキャッシュ制御方法
US6507893B2 (en) * 2001-01-26 2003-01-14 Dell Products, L.P. System and method for time window access frequency based caching for memory controllers
CA2498154A1 (en) * 2002-09-16 2004-03-25 Tigi Corporation Storage system architectures and multiple caching arrangements
JP2004355365A (ja) * 2003-05-29 2004-12-16 Fujitsu Ltd キャッシュ管理装置およびキャッシュメモリ管理方法
US20060143396A1 (en) * 2004-12-29 2006-06-29 Mason Cabot Method for programmer-controlled cache line eviction policy
KR100725390B1 (ko) * 2005-01-06 2007-06-07 삼성전자주식회사 수정 빈도를 고려하여 데이터를 비휘발성 캐쉬부에저장하는 장치 및 방법
US8166248B2 (en) * 2006-06-12 2012-04-24 Arris Group, Inc. Caching of information according to popularity
US7596662B2 (en) * 2006-08-31 2009-09-29 Intel Corporation Selective storage of data in levels of a cache memory
JP4437489B2 (ja) * 2006-10-25 2010-03-24 株式会社日立製作所 揮発性キャッシュメモリと不揮発性メモリとを備えたストレージシステム
US7568068B2 (en) * 2006-11-13 2009-07-28 Hitachi Global Storage Technologies Netherlands B. V. Disk drive with cache having volatile and nonvolatile memory
US20080147974A1 (en) * 2006-12-18 2008-06-19 Yahoo! Inc. Multi-level caching system
JP4900807B2 (ja) * 2007-03-06 2012-03-21 株式会社日立製作所 ストレージシステム及びデータ管理方法
US7865669B2 (en) * 2007-08-02 2011-01-04 International Machines Business Corporation System and method for dynamically selecting the fetch path of data for improving processor performance
JP2009163647A (ja) 2008-01-10 2009-07-23 Hitachi Ltd ディスクアレイ装置
TWI375953B (en) * 2008-02-21 2012-11-01 Phison Electronics Corp Data reading method for flash memory, controller and system therof
JP2009205335A (ja) * 2008-02-27 2009-09-10 Hitachi Ltd 2種のメモリデバイスをキャッシュに用いるストレージシステム及びそのストレージシステムを制御する方法
US8166229B2 (en) * 2008-06-30 2012-04-24 Intel Corporation Apparatus and method for multi-level cache utilization
JP2010049502A (ja) * 2008-08-21 2010-03-04 Hitachi Ltd ストレージサブシステム、及びこれを有するストレージシステム
US8103822B2 (en) * 2009-04-26 2012-01-24 Sandisk Il Ltd. Method and apparatus for implementing a caching policy for non-volatile memory
WO2011074040A1 (en) * 2009-12-17 2011-06-23 Hitachi,Ltd. Storage apparatus and its control method
US9213628B2 (en) * 2010-07-14 2015-12-15 Nimble Storage, Inc. Methods and systems for reducing churn in flash-based cache
US8458402B1 (en) * 2010-08-16 2013-06-04 Symantec Corporation Decision-making system and method for improving operating system level 2 cache performance
US8924646B2 (en) * 2010-10-07 2014-12-30 Lsi Corporation Methods for managing data movement and destaging data in a multi-level cache system utilizing threshold values and metadata
WO2012116369A2 (en) * 2011-02-25 2012-08-30 Fusion-Io, Inc. Apparatus, system, and method for managing contents of a cache

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9558065B2 (en) 2015-02-02 2017-01-31 Kabushiki Kaisha Toshiba Memory system including cache

Also Published As

Publication number Publication date
US20110238908A1 (en) 2011-09-29
JP2011204060A (ja) 2011-10-13
US9003099B2 (en) 2015-04-07

Similar Documents

Publication Publication Date Title
JP5434738B2 (ja) ディスク装置
US8291175B2 (en) Processor-bus attached flash main-memory module
US9378131B2 (en) Non-volatile storage addressing using multiple tables
US9489239B2 (en) Systems and methods to manage tiered cache data storage
US9390020B2 (en) Hybrid memory with associative cache
US20100088459A1 (en) Improved Hybrid Drive
US20150058527A1 (en) Hybrid memory with associative cache
US8572325B2 (en) Dynamic adjustment of read/write ratio of a disk cache
KR20100021868A (ko) 플래시 메모리 장치를 위한 버퍼 캐쉬 관리 방법
US10430346B2 (en) DDR storage adapter
US10635581B2 (en) Hybrid drive garbage collection
US20090094391A1 (en) Storage device including write buffer and method for controlling the same
JP4585599B1 (ja) データ記憶装置及びキャッシュ制御方法
US20140258591A1 (en) Data storage and retrieval in a hybrid drive
JP2021047889A (ja) メモリ装置及びその制御方法
JP7160792B2 (ja) キャッシュエントリ転送のためにキャッシュ位置情報を記憶するシステム及び方法
US9846647B2 (en) Cache device and control method threreof
JP6595654B2 (ja) 情報処理装置
JP6378111B2 (ja) 情報処理装置及びプログラム
US9454488B2 (en) Systems and methods to manage cache data storage
JP2010176305A (ja) 情報処理装置およびデータ記憶装置
KR101353967B1 (ko) 환형 구조의 비휘발성 메모리 캐쉬에 데이터를 읽고 쓰기 위한 데이터 처리 방법
US20240061786A1 (en) Systems, methods, and apparatus for accessing data in versions of memory pages
KR101373613B1 (ko) 환형 구조의 비휘발성 메모리 캐쉬를 포함하는 하이브리드 스토리지 장치
JP6878341B2 (ja) 管理装置、情報処理装置およびメモリ制御方法

Legal Events

Date Code Title Description
RD07 Notification of extinguishment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7427

Effective date: 20120718

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20121102

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20131009

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: 20131112

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20131125

R150 Certificate of patent or registration of utility model

Ref document number: 5434738

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees