JP2013513186A - ハイブリッドストレージを使用したssdの寿命の延長 - Google Patents

ハイブリッドストレージを使用したssdの寿命の延長 Download PDF

Info

Publication number
JP2013513186A
JP2013513186A JP2012543182A JP2012543182A JP2013513186A JP 2013513186 A JP2013513186 A JP 2013513186A JP 2012543182 A JP2012543182 A JP 2012543182A JP 2012543182 A JP2012543182 A JP 2012543182A JP 2013513186 A JP2013513186 A JP 2013513186A
Authority
JP
Japan
Prior art keywords
data
write
write cache
cache
trigger
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
JP2012543182A
Other languages
English (en)
Other versions
JP2013513186A5 (ja
JP5808751B2 (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.)
Microsoft Corp
Original Assignee
Microsoft 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 Microsoft Corp filed Critical Microsoft Corp
Publication of JP2013513186A publication Critical patent/JP2013513186A/ja
Publication of JP2013513186A5 publication Critical patent/JP2013513186A5/ja
Application granted granted Critical
Publication of JP5808751B2 publication Critical patent/JP5808751B2/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/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/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0804Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with main memory updating
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • 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
    • 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/1032Reliability improvement, data loss prevention, degraded operation etc
    • G06F2212/1036Life time enhancement
    • 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/224Disk storage

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

ハイブリッドストレージデバイスが、たとえば、ソリッドステートドライブ(SSD)にデータをキャッシュするために、ハードディスクドライブなどの書込みキャッシュを使用する。データは、連続して書込みキャッシュにログを取られ、その後、SSDに移送される。本SSDは、永久にデータを記憶する1次のストレージである。書込みキャッシュは、ログ構造化された形で一時的にディスク書込み動作のデータを記憶することができる永続的な耐久性のあるキャッシュである。移送ポリシーが、データをSDDに移送する前にどの位長くその書込みキャッシュでそのデータをキャッシュするかを決定するために、使用され得る。移送ポリシーは、書込みキャッシュの内容をSSDにフラッシュさせる1つまたは複数の移送トリガーを使用し、実装され得る。移送トリガーは、たとえば、時間切れトリガー、読出し閾値トリガー、および移送サイズトリガーを含み得る。

Description

本発明は、メモリシステムに関し、特に、SSD(solid state drive)に関する。
ソリッドステートドライブ(solid state drive:SSD)は、従来のハードディスクドライブの代替として人気を集めている。SSDは、いくつかの点で従来のハードディスクドライブとは異なる。たとえば、SSDは、半導体特性をもち、可動部をもたず、固有の並列性をもつ。
SSDはハードディスクドライブに置き換わる潜在能力をもつが、SSDの導入の大きな障壁はそれらの限られた寿命である。SSDは、フラッシュメモリブロックに発行され得る書込み動作の数を限定するNANDフラッシュメモリを使用し、構築される。メモリブロックは、各上書きの前に消去されなければならず、そのような消去がSSDの寿命を減らす。加えて、NANDフラッシュメモリのコストがビット密度の増加とともに減少したため、フレッシュメモリが許容し得る消去サイクル(したがって、書込み動作)の数は損なわれた。
さらに、汎用オペレーティングシステムの作業負荷は、特に書込み量および非連続性に関して、ストレージサブシステムでは高くなる。よりストレスの多い作業負荷とより少ない利用可能な消去サイクルの組合せが、場合によっては1年未満まで、SSDの有用な寿命を減らす。
ハイブリッドストレージデバイスは、たとえばソリッドステートドライブ(SSD)にデータをキャッシュするために、ハードディスクドライブなどの書込みキャッシュを使用する。データは書込みキャッシュに連続してログを取られ、その後、SSDに移送される。SSDは、データを永久に記憶する1次のストレージである。書込みキャッシュは、ログ構造化された形で一時的にディスク書込み動作のデータを記憶することができる永続的な耐久性のあるキャッシュである。
ある実装においては、論理アドレス空間に発行される各書込み動作のデータを書込みキャッシュがキャッシュするフルキャッシングが使用される。代わりに、選択的キャッシングが使用され得る。選択的キャッシングでは、データのうちの一部のみ(たとえば、SSDの最も多く上書きされたメモリブロックと関連するもの)が書込みキャッシュでキャッシュされる。
ある実装においては、SSDにデータを移送する前に書込みキャッシュでデータをどの位長くキャッシュするかを決定するために、移送ポリシーが使用され得る。移送ポリシーは、書込みキャッシュの内容をSSDにフラッシュさせる1つまたは複数の移送トリガーを使用して、実装され得る。移送トリガーは、たとえば、時間切れトリガー、読出し閾値トリガー、および移送サイズトリガーを含み得る。
本概要は、詳細な説明で以下にさらに説明される概念の選択を単純化した形で紹介するために、提供される。本概要は、特許請求される主題の重要な特徴または本質的特徴を特定するものではなく、特許請求される主題の範囲を限定するために使用されるものではない。
前述の概要、ならびに例示的実施形態の以下の詳細な説明は、添付の図面とあわせて読まれるときによりよく理解される。実施形態の説明を目的として、それらの図面に実施形態の例示的構造が示されているが、実施形態は開示された特定の方法および手段に限定されない。
例示的なハイブリッドストレージ環境を示す図である。 ハイブリッドストレージに使用され得るハイブリッドディスクコントローラーの一実施形態のブロック図である。 フルキャッシングを使用するハイブリッドストレージの方法の一実装の操作フロー図である。 選択的キャッシングを使用するハイブリッドストレージの方法の一実装の操作フロー図である。 移送ポリシーを使用するハイブリッドストレージの方法の一実装の操作フロー図である。 例示的なコンピュータ環境の図である。
図1は、ハイブリッドストレージデバイス110およびファイルシステム180を備える例示的なハイブリッドストレージ環境100を示す。ハイブリッドストレージデバイス110は、たとえば、MLC(マルチレベルセル)ベースのSSDなどのソリッドステートドライブ(SSD)150に書込み動作のデータをキャッシュするために、ハードディスクドライブ(HDD)などの書込みキャッシュ140を使用する。本明細書でさらに説明するように、書込み動作のデータは、連続して書込みキャッシュ140にログを取られ、その後、SSD150に移送される。読出し動作は、通常はSSD150から、時にはより遅い書込みキャッシュ140から供される。ハイブリッドストレージデバイス110、またはその態様は、図6に示すコンピュータデバイス600などの1つまたは複数のコンピュータデバイスを使用し、実装され得る。
ハイブリッドストレージデバイス110は、書込みキャッシュ140およびSSD150を備える。SSD150は、永久にデータを記憶する1次のストレージである。SSDは図1に示されているが、任意のタイプのフラッシュチップまたは当技術分野で知られている他の不揮発性メモリデバイスが、SSD150の代わりにストレージとして使用され得る。書込みキャッシュ140は、ログ構造化された形で一時的にディスク書込み動作のデータを記憶することができる永続的な耐久性のあるキャッシュである(たとえば、書込みキャッシュ140は、ログ構造化された書込みキャッシュである)。ある実装においては、書込みキャッシュ140は、ハードディスク(HDDとも呼ばれる)または他の形態のソリッドステートメモリ(SLC(シングルレベルセル)チップなど)などの耐久性のあるストレージを備えることができ、ディスク書込み動作のデータのみを記憶することができる。書込みキャッシュ140は、SSD150よりも遅くてもよく、SSD150よりも大きくてもよい(より大きな記憶空間をもつなど)。SSD150は書込みキャッシュ140よりも速いので、ある実装においては、読出し動作の多くは、SSD150に送信される。
データは、フルキャッシングまたは選択的キャッシングなどのキャッシングポリシーにしたがって、書込みキャッシュ140に保存され得る。フルキャッシングでは、すべてのデータがキャッシュされるのに対し、選択的キャッシングでは、最も多く書き込まれたデータなどのある種のデータのみが書込みキャッシュ140にキャッシュされる。ある時点で、キャッシュされたデータは、移送ポリシーにしたがって、書込みキャッシュ140からSSD150に移され得る。いくつかの実装において、データは、書込みキャッシュ140内のデータの量が所定の量を超えると必ず、および/または、ある種のデータが書込みキャッシュ140で記憶されるときに、定期的に(たとえば、15秒、30秒、1分ごと等に、書込みキャッシュ140からSSD150に)移動(すなわち、移送)され得る。書込みキャッシュ140によってサポートされ得るSSDの数に制限はない。したがって、たとえば、単一のHDDが、複数のSSDの書込みキャッシュの役割を果たすことができる。1つのみのSSD150が図1には示されているが、複数のSSDがハイブリッドストレージデバイス110内に備わることができ、書込みキャッシュ140は、複数のSSDの各SSDのためにデータをキャッシュすることができる。さらに、書込みキャッシュ140内のデバイスの数に制限はない。たとえば、いくつかのHDDが書込みキャッシュ140内に備えられ得る。
SSD専門用語では、ブロックはページのコレクションである(たとえば、1セットの64個の4KBページが256KBブロックを形成することになる)。しかし、本明細書では、ブロックは、読出しまたは書込みのユニットであり、フラッシュ特有のブロックではない。したがって、本明細書において、ブロックが読取られるまたは書き込まれる場合、読出しまたは書込みは、たとえば、SSDブロックではなくSSD150内で、セクタまたはページに実行される。一時的に書込みキャッシュ140内にある、特定のメモリブロックのデータなどのキャッシングデータは、SSDの読出し性能に大きく影響を及ぼすことなく、1次のストレージSSD150へのデータの書込みの総数を減らす。たとえば、より長い時間書込み動作のデータをキャッシュすることによって、移送中のSSD150の同メモリブロックへの複数の上書きが回避可能であり、消去サイクルは保護され得る。上書きは、メモリの同じ論理セクタに繰り返される書込みである。SSD150へのデータの書込みの数を減らすことは、場合によっては100パーセントより多く、SSD150の寿命を延ばすことができる。
ハイブリッドストレージデバイス110はさらに、バス125を介して書込みキャッシュ140およびSSD150に通信で結合されたハイブリッドディスクコントローラー120を備え得る。ハイブリッドディスクコントローラー120の一実装のブロック図が、図2に示される。ハイブリッドディスクコントローラー120は、バス125を介して、ブロック特有の動作(ページ読出し、ページ書込み、ブロック消去など)またはオブジェクト特有の動作(オブジェクト作成、オブジェクト削除、オブジェクト読出し、オブジェクト書込みなど)を実行するように動作することができる。ブロック特有のまたはオブジェクト特有の動作は、ハイブリッドディスクコントローラー120によってサポートされ得る。ハイブリッドディスクコントローラー120はさらに、本明細書に記載するようにデータ読出し(たとえば、データ読出しモジュール240を介する)、データ書込み(たとえば、データ書込みモジュール250を介する)、およびデータ移送(たとえば、移送・トリガーモジュール220を介する)を実行するように動作することができる。
書込みキャッシュ140およびSSD150は、ハイブリッドディスクコントローラー120のインターフェース115などのインターフェースを介してファイルシステム180に公開され得る。ファイルシステム180は次いで、ハイブリッドストレージデバイス110にデータ読出しおよび書込み要求を送信することができ、その要求は、書込みキャッシュ140またはSSD150からハイブリッドディスクコントローラー120によって応じられ得る。1つのみの書込みキャッシュ140および1つのSSD150が示されているが、これは単に説明を目的とするものである。キャッシュ、バッファ、メモリ、ストレージデバイス、およびサポートされ得る同類のものの数に制限はない。
書込み動作の多数は、小さな1セットのメモリブロックの上書きである。書込みキャッシュ140は、上書きを融合することができ、それによってSSD150への書込みトラフィックを減らす。ある実装においては、ファイルシステム180は、ハイブリッドストレージデバイス110にアクセスすることなく任意の即時の読出し動作を供することができるキャッシュを備える。それにより、ハイブリッドストレージデバイス110は、わずかな読出しが生じる間に、書込みキャッシュ140での上書きを融合させる期間をもつ。
ある実装において、書込み動作のデータは、書込みキャッシュ140で記憶されたログに付加され、好ましくは次の読出しの前に、SSD150に最終的に移送される。ログとして書込みキャッシュ140を構造化することは、書込みキャッシュ140がその高速順次書込みモードで動作することを可能にする。上書きの融合に加えて、書込みキャッシュ140はまた、SSD150によって観測される作業負荷の連続性を増やす。これは、その寿命にわたってハイブリッドストレージデバイス110に発行され得る書込み動作の総数である、書込み寿命の増大をもたらす。書込み寿命は、SSD150の信頼性特性を大幅に変えることなしに、増大される。書込みキャッシュ140は、障害の追加のポイントを表すが、いずれのそのような事象もファイルシステムをSSD150上にそのままに残し、最近のデータの損失のみをもたらす。
ある実装においては、書込みキャッシュ140が論理アドレス空間に発行されるあらゆる書込みのデータをキャッシュする、フルキャッシングが使用される。図3は、フルキャッシングを使用するハイブリッドストレージの方法300の一実装の動作フローである。本方法300は、たとえば、ハイブリッドストレージデバイス110によって実装され得る。
310で、書込み動作が、ファイルシステム180からハイブリッドストレージデバイス110に発行される。書込み動作は、320で、インターフェース115を介してハイブリッドディスクコントローラー120で受信される。330で、ハイブリッドディスクコントローラー120が、書込みキャッシュ140(たとえば、キャッシュモジュール210を介して)にその書込みに関連するデータを記憶するように命令し、そのデータが書込みキャッシュ140に記憶される。ある時点で、340で、本明細書でさらに説明される、移送ポリシーと移送・トリガーモジュール220とにしたがって、データは、書込みキャッシュ140からSSD150に移動される。
論理アドレス空間に発行されるあらゆる書込みに関連するデータのフルキャッシングの代わりに、選択的キャッシングが、キャッシュモジュール210によって使用および実装され得る。選択的キャッシングでは、SSD150の最も多く上書きされたメモリブロックに関連するデータのみが書込みキャッシュ140内にキャッシュされる。図4は、選択的キャッシングを使用するハイブリッドストレージの方法400の一実装の動作フローである。本方法400は、たとえば、ハイブリッドストレージデバイス110によって実装され得る。
410で、書込み動作が、ファイルシステム180からハイブリッドストレージデバイス110に発行される。その書込み動作は、420で、インターフェース115を介してハイブリッドディスクコントローラー120で受信される。430で、ハイブリッドディスクコントローラー120の上書き率モジュール230が、その書込みに関連するメモリブロックの上書き率を判定する。上書き率は、そのブロックが受信する書込みの数に対する上書きの数の比率である。上書き率は、ストレージ260などのハイブリッドディスクコントローラー120のストレージ内に記憶され得る。
440で、メモリブロックの上書き率が、上書き閾値(ストレージ260などのストレージから検索され得る)と呼ばれる所定の値に比較される。そのブロックの上書き率が440で判定されるように上書き閾値を超える場合、次いで、その書込み動作(そのメモリブロックに関連する)のデータが、450で書込みキャッシュ140に書き込まれる(たとえば、実装によっては、ハイブリッドディスクコントローラー120のデータ書込みモジュール250および/またはキャッシュモジュール210が、書込みキャッシュ140にその書込みに関連するデータを記憶するように命令し、そのデータが書込みキャッシュ140内に記憶される)。ある時点で、460で、本明細書でさらに説明される、移送ポリシーにしたがって、そのデータは、移送・トリガーモジュール220を使用し、書込みキャッシュ140からSSD150に移動され得る。
しかし、ブロックの上書き率が440で判定されるように上書き閾値を超えない場合、次いで、そのデータは、470でSDD150に書き込まれる(たとえば、ハイブリッドディスクコントローラー120が、SDD150にその書込みに関連するデータを記憶するように命令し、そのデータがSDD150内に記憶される)。
上書き閾値は、たとえば、ユーザまたは管理者によって設定され、ストレージ260に記憶され得る。上書き閾値は、たとえば、そのユーザまたは管理者によってその後に変更可能である。上書き閾値が増やされるとき、頻繁に上書きされた結果として、より高い上書き率をもつそれらのメモリブロックのデータのみが、書込みキャッシュ140内にキャッシュされる。ある実装においては、フルキャッシングは、上書き閾値をゼロに設定することによって、可能にすることができる。上書き率は、頻繁に書き込まれたブロックの判定で使用することができるが、任意の技法が頻繁に書き込まれたブロックの判定に使用され得る。
読出しペナルティが、書込みキャッシュ140によって供される全読出しのパーセンテージとして定義され得る。たとえば、ハイブリッドストレージデバイス110が50Mの読出しを受信し、書込みキャッシュ140がこれらの読出しのうちの1Mを受信する場合、読出しペナルティは2パーセントである。理想的には、読出しペナルティは、できる限り低く保たれる。選択的キャッシングは、読出しペナルティを下げ、移送されるデータの量を減らすことができる。しかし、ハイブリッドストレージデバイス110はストレージ260内でブロック毎の上書き率を計算および記憶することができるため、選択的キャッシングは、オーバヘッドをもつ。加えて、選択的キャッシングは、障害からの回復が困難であることがある。
前述のように、データは、SSD150に移送される前に書込みキャッシュ140内にキャッシュされる。移送ポリシーは、データをSDD150に移送する前に、書込みキャッシュ140内にデータをどの位長くキャッシュするかを判断するために、使用され得る。ある実装においては、その時間は、相当な数の上書きをキャプチャするのに十分な長さであるが、書込みキャッシュ140への相当な数の読出しを受信するほど長くはない。WAW(write-after-write:書込み後の書込み)は、同じブロックへの介入する読出しの前のメモリブロックへの2つの連続する書込みの間の時間間隔として定義することができ、そして、RAW(read-after-write:書込み後の読出し)は、同じメモリブロックへの書込みとその後の読出しの間の時間間隔として定義され得る。ある実装においては、移送に先立つメモリブロックのデータのキャッシングの時間は、RAW間隔の所定の数または小数よりも低い書込みキャッシュ140へのいくつかの読出しを受信する間に、WAW間隔の所定の数または小数よりも高いいくつかの上書きをキャプチャするのに十分な長さである。
どの位長くデータをキャッシュするかのポリシーは、ブロック毎の時間値によって判断され得るが、これは維持および実施する費用が高くなり得る。代わりに、移送ポリシーは、書込みキャッシュ140の内容をSSD150にフラッシュさせる1つまたは複数の移送トリガーを使用し、実装され得る。移送トリガーは、たとえば、時間切れトリガー、読出し閾値トリガー、および移送サイズトリガーを含み得る。トリガーおよび移送ポリシーは、たとえば、ハイブリッドディスクコントローラー120の移送・トリガーモジュール220によって維持および監視され得る。ある実装においては、そのトリガーおよび移送ポリシーは、ユーザまたは管理者によって設定または更新され得る。
時間切れトリガーは、所定の量の時間が移送なしに経過した場合に起動するトリガーである。そのようなトリガーは、予測可能であり、書込みキャッシュ140の障害により損失され得るデータの新しさを抑制する。たとえば、5分間の時間切れ値は、5分間よりも古い書込み動作のデータが失われないことを確実にすることになる。しかし、時間切れトリガーは作業負荷に反応しないので、ある一定の作業負荷が高い読出しペナルティを受け得る。
読出し閾値トリガーは、最後の移送以後の測定された読出しペナルティが閾値を超えたときに起動する。そのような手法は、読出しペナルティが有限になることを可能にする。しかし、孤立して使用される場合、読出しペナルティトリガーは、たとえば、データがそのハイブリッドストレージデバイス110から読み出されない場合に、測定された読出しペナルティはゼロに留まることになり、そのデータは書込みキャッシュ140からSDD150に移動されないことになるなどのシナリオに依存し得る。これは、書込みキャッシュ140が空間を使い果たす結果をもたらし、そしてまた、書込みキャッシュ140の障害でのデータ損失に対してシステムをより脆弱なままにする可能性がある。
移送サイズトリガーは、移行可能なデータ全体のサイズがサイズ閾値を超えるときに起動する。これは、書込みキャッシュ140の障害で失われ得るデータの量を抑制することができる。単独でまたは組合せで使用されて、これらのトリガーは、複雑な移送ポリシーを可能にすることができる。たとえば、あるポリシーが、読出しペナルティは5パーセントを上回るべきではないこと、および、書込みキャッシュ140が機能しなくなる場合、たかだか100MBまたは5分間に値するデータが失われるべきであることを提示することができる。
図5は、移送ポリシーを使用するハイブリッドストレージの方法500の一実装の動作フローである。本方法500は、たとえば、ハイブリッドストレージデバイス110によって実装され得る。510で、1つまたは複数の移送トリガーが、ハイブリッドストレージデバイス110内で設定可能であり、たとえば、時間切れトリガー、読出し閾値トリガー、および/または移送サイズトリガーなどが、ハイブリッドディスクコントローラー120の移送・トリガーモジュール220によって設定され得る。520で、データが、たとえば、ファイルシステム180からハイブリッドストレージデバイス110に発行されている書込みに準じて、書込みキャッシュ140内に記憶され得る。データは、その実装に応じて、フルキャッシングポリシーまたは選択的キャッシングポリシーにしたがって書込みキャッシュ140に書き込み可能である。ある実装においては、追加データが、時間とともに、書込みキャッシュ140に書き込み可能である。
ある時点で、530で、トリガーに関する条件が満たされることがあり、そのトリガーがそれに応じて540で起動し得る。550で、トリガーの起動に準じて、そのデータが、書込みキャッシュ140からSDD150に移送され得る。ハイブリッドディスクコントローラー120は、書込みキャッシュ140からSSD150にそのトリガーに関連する適切なデータを移動させることによって、そのトリガーの起動に反応することができる。520で、プロセスを続けることができる。
本データ移送は、速く、直接的である。ある実装においては、データは、書込みキャッシュログから連続して読み出され、SSD150に書き込まれる。書込みキャッシュ140のログおよびファイルシステム180は異なるデバイス上にあるので、このプロセスは、同一デバイス上のログおよびファイルシステム間の往復がランダムなシークを引き起こし得る従来のログ構造化されたファイルシステム内の従来のクリーニング機構の性能の欠点に悩まされない。
ある実装においては、ハイブリッドストレージは、ブロックデバイスレベルの代わりにファイルシステムレベルで実装され得る。ファイルシステムは、ブロックの空間局所参照性を利用するために、メモリブロック間の意味関係の知識を活用することができる。加えて、ハイブリッドストレージは、書込みキャッシュ140上の更新ジャーナル(update journal)およびSSD150上の実際のデータを記憶するために、既存のジャーナリング(journaling)ファイルシステムを修正することによって、実装され得る。
ファイルシステムデザインはまた、理想的な書込みキャッシュの性能にそれが近づくことを可能にすることができる情報へのアクセスを提供する。理想的なキャッシュは、汚れたデータが時間内に移送されて書込みキャッシュからの読出しを回避することができるように、読出しが生じる直前にブロックに差し迫った読出しをそれに通知するオラクル(oracle)を使用する。ブロックレベルでは、そのようなオラクルは存在せず、移送ポリシーが使用される。しかし、ファイルシステムレベルでは、ファイルシステムのバッファキャッシュからのブロックの削除が使用されて、差し迫った読出しを信号で伝えることができる。ファイルシステムがそのバッファキャッシュ内のブロックを記憶する限り、それは、ハイブリッドストレージデバイスにそのブロックについての読出しを発行しないことになる。それがそのブロックを削除した後は、任意のその後の読出しがハイブリッドストレージデバイスから供される。したがって、バッファキャッシュからの削除に応じて書込みキャッシュからSSDにブロックを移送するポリシーは、読出しペナルティなしに最大の書込みの節減をもたらすことになる。
図6は、例示的実装および態様が実装され得る例示的なコンピュータ環境の図である。本コンピュータシステム環境は、適切なコンピュータ環境の一例に過ぎず、使用または機能の範囲に関する何らかの限定を示唆するものではない。
多数の他の汎用または専用コンピュータシステム環境または構成が使用可能である。使用に適し得るよく知られているコンピュータシステム、環境、および/または構成の例は、パーソナルコンピュータ(PC),サーバコンピュータ、ハンドヘルドまたはラップトップデバイス、マルチプロセッサシステム、マイクロプロセッサベースのシステム、ネットワークPC、ミニコンピュータ、メインフレームコンピュータ、組込み型システム、前述のシステムまたはデバイスを含む分散コンピュータ環境などを含むがこれらに限定されない。
コンピュータによって実行されている、プログラムモジュールなどのコンピュータ実行可能命令が使用され得る。概して、プログラムモジュールは、特定のタスクを実行するまたは特定の抽象的データタイプを実装する、ルーチン、プログラム、オブジェクト、構成要素、データ構造などを含む。分散コンピュータ環境は、タスクが通信ネットワークまたは他のデータ伝送媒体を介してリンクされた遠隔プロセシングデバイスによって実行される場合に、使用され得る。ある分散コンピュータ環境では、プログラムモジュールおよび他のデータは、メモリストレージデバイスを含むローカルおよび遠隔の両方のコンピュータストレージ媒体内に置かれ得る。
図6を参照すると、本明細書に記載の態様を実装する例示的なシステムは、コンピュータデバイス600などのコンピュータデバイスを含む。その最も基本的構成では、コンピュータデバイス600は通常は、少なくとも1つのプロセシングユニット602およびメモリ604を含む。コンピュータデバイスの正確な構成およびタイプに応じて、メモリ604は、揮発性(ランダムアクセスメモリ(RAM)など)、不揮発性(読出し専用メモリ(ROM)、フラッシュメモリなど)またはそれら2つの何らかの組合せでもよい。この最も基本的構成は、破線606によって図6に示される。
コンピュータデバイス600は、追加の特徴/機能性をもち得る。たとえば、コンピュータデバイス600は、磁気または光ディスクまたはテープを含むがこれらに限定されない追加のストレージ(リムーバブルおよび/または非リムーバブル)を含み得る。そのような追加のストレージは、リムーバブルストレージ608および非リムーバブルストレージ610によって、図6に示される。
コンピュータデバイス600は通常は、様々なコンピュータ読取り可能媒体を含む。コンピュータ読取り可能媒体は、デバイス600によってアクセス可能な任意の利用可能な媒体でもよく、揮発性および不揮発性の両方の媒体と、リムーバブルおよび非リムーバブルな媒体とを含み得る。
コンピュータストレージ媒体は、コンピュータ読取り可能命令、データ構造、プログラムモジュールまたは他のデータなどの情報の記憶のための任意の方法または技術で実装される、揮発性および不揮発性、ならびにリムーバブルおよび非リムーバブルな媒体を含む。メモリ604、リムーバブルストレージ608、および非リムーバブルストレージ610はすべて、コンピュータストレージ媒体の例である。コンピュータストレージ媒体は、RAM、ROM、電気的消去可能プログラム読出し専用メモリ(EEPROM)、フラッシュメモリまたは他の揮発性もしくは不揮発性メモリ技術、CD−ROM、デジタル多用途ディスク(DVD)または他の光ストレージ、磁気カセット、磁気テープ、磁気ディスクストレージまたは他の磁気ストレージデバイス、あるいは、所望の情報を記憶するために使用され得る、およびコンピュータデバイス600によってアクセス可能な任意の他の媒体を含む。任意のそのようなコンピュータストレージ媒体は、コンピュータデバイス600の一部でもよい。
コンピュータデバイス600は、そのデバイスが他のデバイスと通信できるようにする1つまたは複数の通信接続612を含み得る。コンピュータデバイス600はまた、キーボード、マウス、ペン、音声入力デバイス、タッチ入力デバイスなどの1つまたは複数の入力デバイス614も含み得る。ディスプレイ、スピーカ、プリンタなどの1つまたは複数の出力デバイス616もまた、含まれ得る。すべてのこれらのデバイスは、当技術分野でよく知られており、本文で詳細に論じられる必要はない。
コンピュータデバイス600は、ネットワークによって相互接続された複数のコンピュータデバイス600のうちの1つでもよい。理解され得るように、本ネットワークは、任意の適当なネットワークでもよく、各コンピュータデバイス600は、1つまたは複数の通信接続612を用いて任意の適当な形でそこに接続可能であり、そして、各コンピュータデバイス600は、任意の適当な形でそのネットワーク内の他方のコンピュータデバイス600のうちの1つまたは複数と通信することができる。たとえば、本ネットワークは、組織または住宅などの中のワイヤードまたはワイヤレスネットワークでもよく、インターネットまたは同類のものなどの外部ネットワークへの直接または間接的結合を含み得る。
本明細書に記載された様々な技法は、ハードウェアまたはソフトウェアに、あるいは、適切な場合には、その両方の組合せに関して実装され得ることを理解されたい。したがって、現在開示される主題のプロセスおよび装置、またはそれらのある種の態様または部分は、フロッピディスケット、CD−ROM、ハードドライブ、または任意の他の機械読取り可能なストレージ媒体などの有形的表現媒体で実施されたプログラムコード(即ち、命令)の形をとることができ、そのプログラムコードがコンピュータなどの機械によってロードおよび実行されるとき、その機械は現在開示される主題を実行するための装置になる。
プログラマブルコンピュータでのプログラムコード実行の場合、コンピュータデバイスは概して、プロセッサと、プロセッサによって読出し可能なストレージ媒体(揮発性および不揮発性メモリおよび/またはストレージ要素を含む)と、少なくとも1つの入力デバイスと、少なくとも1つの出力デバイスとを含む。1つまたは複数のプログラムが、たとえば、API、再使用可能制御、または同類のものの使用を介して、現在開示される主題に関して記載されるプロセスを実装または使用することができる。そのようなプログラムは、コンピュータシステムと通信するために、高レベルの手続き型またはオブジェクト指向のプログラミング言語で実装され得る。しかし、1つまたは複数の本プログラムは、必要に応じて、アセンブリまたは機械言語で実装可され得る。いずれの場合にも、その言語はコンパイルされたまたは翻訳された言語でもよく、それは、ハードウェア実装と組み合わせ可能である。
例示的な実装は、1つまたは複数の独立型コンピュータシステムとの関連での現在開示される主題の態様の使用を参照し得るが、本主題はそのように限定されず、そうではなくて、ネットワークまたは分散コンピュータ環境などの任意のコンピュータ環境に関して実装され得る。さらに、現在開示される主題の態様は、複数のプロセシングチップまたはデバイス内でまたはそれらを横切って実装可能であり、ストレージは複数のデバイスにわたって同様に影響を受け得る。そのようなデバイスは、たとえば、PC、ネットワークサーバ、およびハンドヘルドデバイスを含み得る。
本主題は、構造的特徴および/または方法論的行動に特有の言語で説明されてあるが、添付の特許請求の範囲で定義される本主題は、前述の特有の特徴または行動に必ずしも限定されないことを理解されたい。そうではなくて、前述の特有の特徴および行動は、本特許請求の範囲を実装する例示的な形として開示される。

Claims (15)

  1. 書込みキャッシュおよびソリッドステートドライブを備えるハイブリッドストレージデバイスにて書込み動作を受信するステップと、
    前記ハイブリッドストレージデバイスのハイブリッドディスクコントローラーによって前記書込み動作に関連するデータのキャッシングポリシーを決定するステップと、
    前記キャッシングポリシーに基づいて前記書込みキャッシュ内または前記ソリッドステートドライブ内に前記データを記憶するステップと
    を備えることを特徴とする記憶方法。
  2. 前記書込みキャッシュは、ハードディスクドライブを備えることを特徴とする請求項1に記載の方法。
  3. 前記キャッシングポリシーは、前記書込みキャッシュ内の前記データのフルキャッシングであることを特徴とする請求項1に記載の方法。
  4. 前記キャッシングポリシーは、前記データの選択的キャッシングであり、
    前記ソリッドステートドライブのメモリブロックの上書き率を判定するステップであって、前記メモリブロックが前記書込み動作に関連する前記データと関連付けられている、ステップと、
    前記上書き率を閾値と比較するステップと、
    前記上書き率が前記閾値よりも大きい場合には前記書込みキャッシュ内に前記データを記憶し、そうでない場合には前記ソリッドステートドライブ内に前記データを記憶するステップと
    をさらに備えることを特徴とする請求項1に記載の方法。
  5. 前記上書き率は、前記メモリブロックが受信する書込みの数に対する前記メモリブロックが受信する上書きの数の比率であることを特徴とする請求項4に記載の方法。
  6. 前記書込み動作は、ファイルシステムから前記ハイブリッドストレージデバイスにて受信されることを特徴とする請求項1に記載の方法。
  7. 前記データは前記書込みキャッシュ内に記憶され、時間切れトリガー、読出し閾値トリガー、または移送サイズトリガーの起動に応答して前記書込みキャッシュから前記ソリッドステートドライブに前記データを移動するステップをさらに備えることを特徴とする請求項1に記載の方法。
  8. 前記ハイブリッドストレージデバイスにて追加の書込み動作を受信するステップと、
    前記キャッシングポリシーに基づいて前記書込みキャッシュ内または前記ソリッドステートドライブ内に前記追加の書込み動作の追加のデータを記憶するステップであって、前記データのうちの少なくとも一部および前記追加のデータが前記書込みキャッシュ内に記憶される、ステップと、
    移送ポリシーにしたがって、前記書込みキャッシュ内の前記記憶されたデータを前記ソリッドステートドライブに移送するステップと
    をさらに備えることを特徴とする請求項1に記載の方法。
  9. 前記移送ポリシーは、所定の量の時間が移送なしに経過した場合に起動する時間切れトリガーに基づき、前記データを移送することは、前記時間切れトリガーの起動に準じて実行されることを特徴とする請求項8に記載の方法。
  10. 前記移送ポリシーは、読出しペナルティが閾値を超えるときに起動する読出し閾値トリガーに基づき、前記データを移送することは、前記読出し閾値トリガーの起動に準じて実行されることを特徴とする請求項8に記載の方法。
  11. 前記移送ポリシーは、移送されようとする前記データの前記サイズがサイズ閾値を超えるときに起動する移送サイズトリガーに基づき、前記データを移送することは、前記移送サイズトリガーの起動に準じて実行されることを特徴とする請求項8に記載の方法。
  12. 書込みキャッシュと、
    ソリッドステートドライブと、
    書込み動作を受信し、前記書込み動作に関連するデータのキャッシングポリシーを決定し、前記キャッシングポリシーに基づいて前記書込みキャッシュ内または前記ソリッドステートドライブ内に前記データを記憶するようになされたハイブリッドディスクコントローラーと
    を備えることを特徴とするストレージデバイス。
  13. 前記書込みキャッシュは、ログ構造化されたハードドライブを備えることを特徴とする請求項12に記載のデバイス。
  14. 前記ハイブリッドディスクコントローラーは、移送ポリシーにしたがって前記ソリッドステートドライブに前記書込みキャッシュ内に記憶されたデータを移送するようにさらになされたことを特徴とする請求項12に記載のデバイス。
  15. 前記移送ポリシーは、時間切れトリガー、読出し閾値トリガー、または移送サイズトリガーのうちの少なくとも1つを使用することを特徴とする請求項14に記載のデバイス。
JP2012543182A 2009-12-07 2010-12-06 ハイブリッドストレージを使用したssdの寿命の延長 Active JP5808751B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/631,875 2009-12-07
US12/631,875 US8407403B2 (en) 2009-12-07 2009-12-07 Extending SSD lifetime using hybrid storage
PCT/US2010/059100 WO2011071818A2 (en) 2009-12-07 2010-12-06 Extending ssd lifetime using hybrid storage

Publications (3)

Publication Number Publication Date
JP2013513186A true JP2013513186A (ja) 2013-04-18
JP2013513186A5 JP2013513186A5 (ja) 2014-01-09
JP5808751B2 JP5808751B2 (ja) 2015-11-10

Family

ID=44083132

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012543182A Active JP5808751B2 (ja) 2009-12-07 2010-12-06 ハイブリッドストレージを使用したssdの寿命の延長

Country Status (6)

Country Link
US (1) US8407403B2 (ja)
EP (1) EP2510446B1 (ja)
JP (1) JP5808751B2 (ja)
KR (1) KR101872534B1 (ja)
CN (1) CN102648457B (ja)
WO (1) WO2011071818A2 (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2016181640A1 (ja) * 2015-05-11 2016-11-17 日本電気株式会社 計算装置、方法、及び、プログラム
JP2017520030A (ja) * 2014-03-11 2017-07-20 アマゾン・テクノロジーズ・インコーポレーテッド 個々のデータ容量に対し動的に修正する耐久性特徴
JP2017527887A (ja) * 2014-08-15 2017-09-21 マイクロソフト テクノロジー ライセンシング,エルエルシー ファイルシステムにおけるフラッシング
US9967423B2 (en) 2016-03-04 2018-05-08 Canon Kabushiki Kaisha Image forming apparatus and method for controlling image forming apparatus

Families Citing this family (63)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8082384B2 (en) 2008-03-26 2011-12-20 Microsoft Corporation Booting an electronic device using flash memory and a limited function memory controller
US9104580B1 (en) 2010-07-27 2015-08-11 Apple Inc. Cache memory for hybrid disk drives
US8510520B2 (en) * 2010-08-02 2013-08-13 Taejin Info Tech Co., Ltd. Raid controller having multi PCI bus switching
US8825976B1 (en) 2010-09-28 2014-09-02 Western Digital Technologies, Inc. Hybrid drive executing biased migration policy during host boot to migrate data to a non-volatile semiconductor memory
US8578089B2 (en) * 2010-10-29 2013-11-05 Seagate Technology Llc Storage device cache
US8321649B2 (en) * 2011-03-18 2012-11-27 Freescale Semiconductor, Inc. Memory controller address and data pin multiplexing
US8775731B2 (en) * 2011-03-25 2014-07-08 Dell Products, L.P. Write spike performance enhancement in hybrid storage systems
US8621143B2 (en) * 2011-04-15 2013-12-31 Oracle International Corporation Elastic data techniques for managing cache storage using RAM and flash-based memory
US20120284459A1 (en) * 2011-05-05 2012-11-08 International Business Machines Corporation Write-through-and-back cache
IL216056B (en) * 2011-10-31 2018-04-30 Verint Systems Ltd A system and method for integrating databases
US8966204B2 (en) * 2012-02-29 2015-02-24 Hewlett-Packard Development Company, L.P. Data migration between memory locations
US9632866B2 (en) 2012-09-28 2017-04-25 Duke University Systems for and methods of extending lifetime of non-volatile memory
US9281008B1 (en) 2012-10-10 2016-03-08 Seagate Technology Llc Multiple track pitches for SMR
US8922930B1 (en) 2012-10-11 2014-12-30 Seagate Technology Llc Limit disc nodes by band usage
US8896961B1 (en) 2012-10-11 2014-11-25 Seagate Technology Llc Reader positioning in shingled magnetic recording
US8879183B1 (en) 2012-10-11 2014-11-04 Seagate Technology Llc Segmenting of read-modify-write operations
US9058282B2 (en) 2012-12-31 2015-06-16 Intel Corporation Dynamic cache write policy
GB2509505A (en) 2013-01-04 2014-07-09 Ibm Issuing a write to a secondary storage device, when a write to a primary storage device takes too long
CN104956313B (zh) * 2013-01-29 2018-02-09 马维尔国际贸易有限公司 用于基于数据分类将数据存储至固态存储设备的方法和装置
CN103970684A (zh) * 2013-02-04 2014-08-06 联想(北京)有限公司 存储数据的方法和电子设备
US9286936B1 (en) 2013-02-21 2016-03-15 Seagate Technology Llc Zone based band mapping
US8812744B1 (en) 2013-03-14 2014-08-19 Microsoft Corporation Assigning priorities to data for hybrid drives
US9626126B2 (en) 2013-04-24 2017-04-18 Microsoft Technology Licensing, Llc Power saving mode hybrid drive access management
US9946495B2 (en) 2013-04-25 2018-04-17 Microsoft Technology Licensing, Llc Dirty data management for hybrid drives
US9032165B1 (en) 2013-04-30 2015-05-12 Amazon Technologies, Inc. Systems and methods for scheduling write requests for a solid state storage device
US9208101B2 (en) * 2013-06-26 2015-12-08 Western Digital Technologies, Inc. Virtual NAND capacity extension in a hybrid drive
US9218142B2 (en) 2013-08-22 2015-12-22 International Business Machines Corporation Log data store that stores data across a plurality of storage devices using non-disjoint layers
US9070379B2 (en) * 2013-08-28 2015-06-30 Western Digital Technologies, Inc. Data migration for data storage device
US9323467B2 (en) 2013-10-29 2016-04-26 Western Digital Technologies, Inc. Data storage device startup
US9626331B2 (en) 2013-11-01 2017-04-18 International Business Machines Corporation Storage device control
US9195401B2 (en) 2014-02-18 2015-11-24 University Of Florida Research Foundation, Inc. Method and apparatus for virtual machine live storage migration in heterogeneous storage environment
CN103984768B (zh) 2014-05-30 2017-09-29 华为技术有限公司 一种数据库集群管理数据的方法、节点及系统
CN105224475B (zh) 2014-05-30 2018-03-09 国际商业机器公司 用于调整存储装置的分配的方法和装置
US9514054B2 (en) 2014-07-08 2016-12-06 Netapp, Inc. Method to persistent invalidation to ensure cache durability
CN104199784B (zh) * 2014-08-20 2017-12-08 浪潮(北京)电子信息产业有限公司 一种基于分级存储的数据迁移方法及装置
US9348517B2 (en) * 2014-08-28 2016-05-24 International Business Machines Corporation Using a migration threshold and a candidate list for cache management of sequential write storage
WO2016037310A1 (en) * 2014-09-09 2016-03-17 Hua Zhong University Of Science Technology Filtering write request sequences
US8990589B1 (en) 2014-09-18 2015-03-24 Kaspersky Lab Zao System and method for robust full-drive encryption
US9471228B2 (en) * 2014-11-20 2016-10-18 Red Hat, Inc. Caching policies for solid state disks
CN104572491B (zh) 2014-12-30 2017-10-17 华为技术有限公司 一种基于固态硬盘的读缓存管理方法及装置
US20160210044A1 (en) 2015-01-15 2016-07-21 Commvault Systems, Inc. Intelligent hybrid drive caching
US9696934B2 (en) 2015-02-12 2017-07-04 Western Digital Technologies, Inc. Hybrid solid state drive (SSD) using PCM or other high performance solid-state memory
KR20170002866A (ko) * 2015-06-30 2017-01-09 전자부품연구원 분산 환경에서 사용자 애플리케이션의 액세스 특성에 따른 적응형 캐시 관리 방법
US10048876B2 (en) * 2015-09-10 2018-08-14 Western Digital Technologies, Inc. Method for providing nonvolatile storage write bandwidth using a caching namespace
US10108350B2 (en) * 2015-09-10 2018-10-23 Western Digital Technologies, Inc. Method for providing nonvolatile storage write bandwidth using a caching namespace
EP3163789B1 (en) * 2015-10-29 2021-08-18 Airbus Defence and Space GmbH Forward-secure crash-resilient logging device
US10474570B2 (en) * 2015-11-24 2019-11-12 Cisco Technology, Inc. Flashware usage mitigation
CN107025061A (zh) * 2016-01-29 2017-08-08 后旺科技股份有限公司 复合式硬盘的访问方法
US11301422B2 (en) * 2016-02-23 2022-04-12 Samsung Electronics Co., Ltd. System and methods for providing fast cacheable access to a key-value device through a filesystem interface
US10430081B2 (en) * 2016-06-28 2019-10-01 Netapp, Inc. Methods for minimizing fragmentation in SSD within a storage system and devices thereof
CN106201344B (zh) * 2016-06-30 2019-12-24 联想(北京)有限公司 一种信息处理方法及电子设备
US10534716B2 (en) * 2016-07-13 2020-01-14 Seagate Technology Llc Limiting access operations in a data storage device
US9842060B1 (en) * 2016-07-13 2017-12-12 Seagate Technology Llc Cache over-provisioning in a data storage device
WO2019083390A1 (en) * 2017-10-26 2019-05-02 EMC IP Holding Company LLC USE OF RECURRENT WRITE QUOTAS TO OPTIMIZE THE USE OF STATIC SEMICONDUCTOR DISK
CN109597579A (zh) * 2018-12-03 2019-04-09 郑州云海信息技术有限公司 对板卡上扩展芯片及后端磁盘进行策略配置的方法
KR20200118994A (ko) 2019-04-09 2020-10-19 에스케이하이닉스 주식회사 메모리 시스템, 메모리 컨트롤러 및 그 동작 방법
US10877683B2 (en) 2019-04-09 2020-12-29 International Business Machines Corporation Tiered storage optimization and migration
US11237731B2 (en) * 2019-10-24 2022-02-01 Micron Technology, Inc. Quality of service for memory devices using suspend and resume of program and erase operations
US11620053B2 (en) 2019-10-24 2023-04-04 Micron Technology, Inc. Quality of service for the multiple functions in memory devices
US11687244B2 (en) 2019-10-24 2023-06-27 Micron Technology, Inc. Quality of service for memory devices using weighted memory access operation types
US11099785B2 (en) * 2019-12-23 2021-08-24 Micron Technology, Inc. Linking access commands for a memory sub-system
CN112035065B (zh) * 2020-08-28 2022-06-07 北京浪潮数据技术有限公司 一种数据写入方法、装置、设备及计算机可读存储介质
US20230214323A1 (en) * 2021-12-30 2023-07-06 Micron Technology, Inc. Selectable cache writing policies for cache management

Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH03122734A (ja) * 1989-10-05 1991-05-24 Toshiba Corp 外部記憶制御装置
JPH07146820A (ja) * 1993-04-08 1995-06-06 Hitachi Ltd フラッシュメモリの制御方法及び、それを用いた情報処理装置
JPH09297659A (ja) * 1996-04-30 1997-11-18 Toshiba Corp 不揮発性記憶装置およびその制御方法
JP2000099274A (ja) * 1998-09-24 2000-04-07 Sanaka Isao バッファリングシステム
JP2003167781A (ja) * 2001-11-30 2003-06-13 Matsushita Electric Ind Co Ltd 磁気ディスク装置およびデータ読み出し制御方法
US20060143418A1 (en) * 2004-08-30 2006-06-29 Toru Takahashi Storage system and data relocation control device
JP2007528079A (ja) * 2004-03-08 2007-10-04 サンディスク コーポレイション フラッシュコントローラのキャッシュ構造
US20080005462A1 (en) * 2006-06-30 2008-01-03 Mosaid Technologies Incorporated Method of configuring non-volatile memory for a hybrid disk drive
JP2008046763A (ja) * 2006-08-11 2008-02-28 Toshiba Corp ディスクアレイサブシステム及びプログラム
JP2008097225A (ja) * 2006-10-10 2008-04-24 Hitachi Ltd ストレージ装置、制御装置及び制御方法
WO2009102425A1 (en) * 2008-02-12 2009-08-20 Netapp, Inc. Hybrid media storage system architecture

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1031992B1 (en) 1989-04-13 2006-06-21 SanDisk Corporation Flash EEPROM system
US6230233B1 (en) 1991-09-13 2001-05-08 Sandisk Corporation Wear leveling techniques for flash EEPROM systems
US5754888A (en) 1996-01-18 1998-05-19 The Board Of Governors For Higher Education, State Of Rhode Island And Providence Plantations System for destaging data during idle time by transferring to destage buffer, marking segment blank , reodering data in buffer, and transferring to beginning of segment
US5832515A (en) 1996-09-12 1998-11-03 Veritas Software Log device layered transparently within a filesystem paradigm
US6000006A (en) 1997-08-25 1999-12-07 Bit Microsystems, Inc. Unified re-map and cache-index table with dual write-counters for wear-leveling of non-volatile flash RAM mass storage
US7010645B2 (en) * 2002-12-27 2006-03-07 International Business Machines Corporation System and method for sequentially staging received data to a write cache in advance of storing the received data
KR100725390B1 (ko) * 2005-01-06 2007-06-07 삼성전자주식회사 수정 빈도를 고려하여 데이터를 비휘발성 캐쉬부에저장하는 장치 및 방법
US7899987B2 (en) 2007-05-15 2011-03-01 Sandisk Il Ltd. File storage in a computer system with diverse storage media
JP5032371B2 (ja) 2008-03-01 2012-09-26 株式会社東芝 メモリシステム
KR20090102192A (ko) * 2008-03-25 2009-09-30 삼성전자주식회사 메모리 시스템 및 그것의 데이터 저장 방법
KR101553532B1 (ko) 2008-04-17 2015-09-16 삼성전자주식회사 스토리지 장치
KR20100082185A (ko) * 2009-01-08 2010-07-16 삼성전자주식회사 플래시 메모리, 캐시 메모리, 그리고 제어기를 포함하는 사용자 장치
US8312204B2 (en) * 2009-01-23 2012-11-13 Seagate Technology Llc System and method for wear leveling in a data storage device
US8195878B2 (en) * 2009-02-19 2012-06-05 Pmc-Sierra, Inc. Hard disk drive with attached solid state drive cache
US8327076B2 (en) * 2009-05-13 2012-12-04 Seagate Technology Llc Systems and methods of tiered caching
US8271737B2 (en) * 2009-05-27 2012-09-18 Spansion Llc Cache auto-flush in a solid state memory device
US8463983B2 (en) * 2009-09-15 2013-06-11 International Business Machines Corporation Container marker scheme for reducing write amplification in solid state devices
US8285936B2 (en) * 2009-10-20 2012-10-09 The Regents Of The University Of Michigan Cache memory with power saving state

Patent Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH03122734A (ja) * 1989-10-05 1991-05-24 Toshiba Corp 外部記憶制御装置
JPH07146820A (ja) * 1993-04-08 1995-06-06 Hitachi Ltd フラッシュメモリの制御方法及び、それを用いた情報処理装置
JPH09297659A (ja) * 1996-04-30 1997-11-18 Toshiba Corp 不揮発性記憶装置およびその制御方法
JP2000099274A (ja) * 1998-09-24 2000-04-07 Sanaka Isao バッファリングシステム
JP2003167781A (ja) * 2001-11-30 2003-06-13 Matsushita Electric Ind Co Ltd 磁気ディスク装置およびデータ読み出し制御方法
JP2007528079A (ja) * 2004-03-08 2007-10-04 サンディスク コーポレイション フラッシュコントローラのキャッシュ構造
US20060143418A1 (en) * 2004-08-30 2006-06-29 Toru Takahashi Storage system and data relocation control device
US20080005462A1 (en) * 2006-06-30 2008-01-03 Mosaid Technologies Incorporated Method of configuring non-volatile memory for a hybrid disk drive
JP2008046763A (ja) * 2006-08-11 2008-02-28 Toshiba Corp ディスクアレイサブシステム及びプログラム
JP2008097225A (ja) * 2006-10-10 2008-04-24 Hitachi Ltd ストレージ装置、制御装置及び制御方法
WO2009102425A1 (en) * 2008-02-12 2009-08-20 Netapp, Inc. Hybrid media storage system architecture

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2017520030A (ja) * 2014-03-11 2017-07-20 アマゾン・テクノロジーズ・インコーポレーテッド 個々のデータ容量に対し動的に修正する耐久性特徴
JP2017527887A (ja) * 2014-08-15 2017-09-21 マイクロソフト テクノロジー ライセンシング,エルエルシー ファイルシステムにおけるフラッシング
US10579523B2 (en) 2014-08-15 2020-03-03 Microsoft Technology Licensing, Llc Flushing in file system
WO2016181640A1 (ja) * 2015-05-11 2016-11-17 日本電気株式会社 計算装置、方法、及び、プログラム
US9967423B2 (en) 2016-03-04 2018-05-08 Canon Kabushiki Kaisha Image forming apparatus and method for controlling image forming apparatus

Also Published As

Publication number Publication date
CN102648457B (zh) 2015-07-29
EP2510446A4 (en) 2012-12-05
WO2011071818A2 (en) 2011-06-16
EP2510446A2 (en) 2012-10-17
CN102648457A (zh) 2012-08-22
KR20120099272A (ko) 2012-09-07
JP5808751B2 (ja) 2015-11-10
US20110138106A1 (en) 2011-06-09
WO2011071818A3 (en) 2011-10-06
US8407403B2 (en) 2013-03-26
KR101872534B1 (ko) 2018-06-28
EP2510446B1 (en) 2014-08-27

Similar Documents

Publication Publication Date Title
JP5808751B2 (ja) ハイブリッドストレージを使用したssdの寿命の延長
US10223272B2 (en) Latency sensitive metadata object persistence operation for storage device
US9507732B1 (en) System and method for cache management
US9547591B1 (en) System and method for cache management
KR101702201B1 (ko) 솔리드 스테이트 드라이브(ssd)에 대한 최적화된 컨텍스트 드롭
US9996542B2 (en) Cache management in a computerized system
Soundararajan et al. Extending SSD Lifetimes with Disk-Based Write Caches.
JP6005566B2 (ja) 情報処理システム、制御プログラムおよび情報処理装置
US8862808B2 (en) Control apparatus and control method
US9251052B2 (en) Systems and methods for profiling a non-volatile cache having a logical-to-physical translation layer
US10102117B2 (en) Systems and methods for cache and storage device coordination
US20150331624A1 (en) Host-controlled flash translation layer snapshot
JP4372134B2 (ja) データ比較機能を有するストレージシステム
TW201619971A (zh) 耦合至主機dram之綠能與非固態硬碟(nand ssd)驅動器、gnsd應用程式及其操作方法和電腦系統主機、增加非揮發快閃記憶儲存器耐久性之方法
JP2015518987A (ja) フラッシュストレージのためのi/oアクセスパターンの特殊化
US8578089B2 (en) Storage device cache
JP2017079053A (ja) ストレージジャーナリングを改善する方法およびシステム
KR102304130B1 (ko) 비휘발성 랜덤 액세스 메모리를 이용한 세그먼트 클리닝 방법 및 이를 구현하기 위한 메모리 관리 장치
JP6094677B2 (ja) 情報処理装置、メモリダンプ方法、およびメモリダンププログラム
US9514052B2 (en) Write-through-and-back-cache
US10901646B2 (en) Update of RAID array parity
US8938641B2 (en) Method and apparatus for synchronizing storage volumes
KR102113212B1 (ko) 플래시 메모리 시스템 및 그 제어 방법
US20140325168A1 (en) Management of stored data based on corresponding attribute data
US20160259571A1 (en) Storage subsystem

Legal Events

Date Code Title Description
RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20130712

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20130719

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20131114

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20131114

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20140811

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20140819

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20141029

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20150310

A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A711

Effective date: 20150523

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20150608

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20150909

R150 Certificate of patent or registration of utility model

Ref document number: 5808751

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250