JP2016506579A - データストレージシステム向けの優先度に基づくガベージコレクション - Google Patents

データストレージシステム向けの優先度に基づくガベージコレクション Download PDF

Info

Publication number
JP2016506579A
JP2016506579A JP2015550378A JP2015550378A JP2016506579A JP 2016506579 A JP2016506579 A JP 2016506579A JP 2015550378 A JP2015550378 A JP 2015550378A JP 2015550378 A JP2015550378 A JP 2015550378A JP 2016506579 A JP2016506579 A JP 2016506579A
Authority
JP
Japan
Prior art keywords
data
memory area
data unit
data storage
garbage collection
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
JP2015550378A
Other languages
English (en)
Other versions
JP6266019B2 (ja
Inventor
ロバート エル. ホーン
ロバート エル. ホーン
Original Assignee
ウェスタン デジタル テクノロジーズ インコーポレーテッド
ウェスタン デジタル テクノロジーズ インコーポレーテッド
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 ウェスタン デジタル テクノロジーズ インコーポレーテッド, ウェスタン デジタル テクノロジーズ インコーポレーテッド filed Critical ウェスタン デジタル テクノロジーズ インコーポレーテッド
Publication of JP2016506579A publication Critical patent/JP2016506579A/ja
Application granted granted Critical
Publication of JP6266019B2 publication Critical patent/JP6266019B2/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/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0253Garbage collection, i.e. reclamation of unreferenced memory
    • 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/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • 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/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • 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/12Replacement control
    • G06F12/121Replacement control using replacement algorithms
    • G06F12/126Replacement control using replacement algorithms with special data handling, e.g. priority of data or instructions, handling errors or pinning
    • G06F12/127Replacement control using replacement algorithms with special data handling, e.g. priority of data or instructions, handling errors or pinning using additional replacement algorithms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • 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
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1016Performance improvement
    • 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/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/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/72Details relating to flash memory 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/72Details relating to flash memory management
    • G06F2212/7205Cleaning, compaction, garbage collection, erase 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/72Details relating to flash memory management
    • G06F2212/7209Validity control, e.g. using flags, time stamps or sequence numbers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7211Wear leveling
    • 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/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks

Landscapes

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

Abstract

優先度に基づくガベージコレクションは、ガベージコレクションと、ストレージシステム全体の効率を向上するために、不揮発性メモリアレイに格納されたデータの属性を用いる。優先度の低い一連のデータは、不揮発性メモリアレイから選択的に追い出し可能である。これにより、例えばガベージコレクションに伴うライトアンプリフィケーションを低減できる。優先度の低い、他の一連のデータは、不揮発性メモリアレイ内の別の領域において再編成又は併合できる。更に、ガベージコレクションを強化又は最適化するために、データのフラッシュが行われて良い。これにより、性能及び耐久性が向上できる。【選択図】図1

Description

本開示は、コンピュータシステム向けのデータストレージシステムに関する。より具体的には、本開示は、データストレージシステム向けの優先度に基づくガベージコレクションに関する。
データストレージシステムは、通常の動作中に、多くのハウスキーピング動作を実行する。例えば、有効なデータと無効なデータの両方を含み得るメモリ領域においてガベージコレクションは頻繁に行われる。ある領域がガベージコレクション向けに選択されると、ガベージコレクション動作は、そのメモリ領域内の有効なデータを、メモリ内の新規の場所へコピーし、その後領域全体を消去又は解放することで、領域を、将来的なデータの格納のために利用可能にする。
しかしながら、ガベージコレクションの実行は、データの格納にソリッドステートメモリが用いられている場合にはライトアンプリフィケーションの増加等の、相当のオーバーヘッドを伴う。したがって、より効率的なガベージコレクションのメカニズムを提供することが望ましい。
本発明の多様な特徴を実施するシステム及び方法は、以下の図面を参照して説明される。
本発明の一の実施形態に係る優先度に基づくガベージコレクションを実装する、ホストシステムとデータストレージシステムとの組み合わせを図示する図である。 本発明の一の実施形態に係る優先度情報に基づくランキングを図示する図である。 本発明の一の実施形態に係る優先度に基づくガベージコレクションの動作を図示する図である。 本発明の別の実施形態に係る優先度に基づくガベージコレクションのフロー図である。 本発明の一の実施形態に係るガベージコレクション向けの1以上の領域を選択することを図示する図である。
特定の実施形態が説明されるが、これらの実施形態は例示のみを目的とするもので保護範囲を限定する意図はない。実際、本稿において説明される新規の方法及びシステムは他の様々な形態で実施され得る。更に、本稿において説明される方法及びシステムの形態には、多様な省略、置換、変更が、保護範囲を逸脱すること無く行われ得る。
概要
フラッシュストレージデバイス等のデータストレージシステムは、性能と寿命の改善のために、ガベージコレクション、ウェアレベリング、不良ブロック管理等の内部システム動作を行う。ガベージコレクションは、あるメモリ領域に格納された有効なデータを別のメモリ領域にコピーし、更に前者のメモリ領域がいかなる有効なデータも格納していないと示すことを伴ってよい。ガベージコレクションは、ガベージコレクションされるメモリ領域内に残存する無効なデータの量を優先度付けに用いることができる。しかしながら、ガベージコレクション動作は、相当のオーバーヘッドを伴い、無効なデータの量のみに基づいたガベージコレクションの優先度付けは、望ましくない非効率性につながり得る。例えば、格納されたデータは様々なレベルの優先度に関連付けられ得て、ガベージコレクションを行う際にデータの優先度を考慮に入れることが有利になるだろう。
本発明の実施形態は、ガベージコレクションを行う際に格納されたデータの優先度を考慮に入れる、ガベージコレクションに関する。一の実施形態において、不揮発性ソリッドステートメモリ(non−volatile solid−state memory(NVSM))は、NVSMと回転磁気メディアとが対にされたハイブリッドディスクドライブ内でキャッシュとして機能する。NVSM内のメモリ領域のガベージコレクション中、例えばデータを移動するか、データをキャッシュから追い出す(evict)か、データをキャッシュに併合(consolidate)するか、等を決定するために優先度情報が用いられてよい。例えば、ガベージコレクション中に収集された有効なデータを保持するために、優先度の高いデータは異なるメモリ領域に移動されてよく、その一方で、優先度の低いデータはキャッシュから追い出されてよい。追い出しの対象となるデータの優先度よりもわずかに高い特定の優先度範囲内にあるデータは、また別のメモリ領域に併合されてよい。というのは、このようなデータは後に追い出しの対象となり、ガベージコレクションの観点からは無効なデータになると考えられるからであり、ガベージコレクション中に、無効となりそうなデータにこのような併合を行うことは、オーバーヘッドを削減し、将来的なガベージコレクション動作に関連する効率を向上できる。更に、優先度情報は、キャッシュから磁気ディスク等の別の格納媒体へのデータのフラッシュについての決定を行うために用いることができる。例えば、キャッシュに格納された非冗長な優先度の低いデータは、別のデータストレージ媒体へと定期的にフラッシュされてよい。これにより、後にキャッシュからの追い出しの候補となり得るこのようなデータを確実に同期できる。
一部の実施形態において、優先度情報は次のうち1以上の組み合わせであってよい:ホストシステムによって提供された優先度情報(例えば、データ書き込みコマンドの一部として)、データのアクセス頻度、データへの最後のアクセスからの持続時間、及びデータの読み出し/書き込み頻度(例えば、読み/書き率)、ある優先度レベル内でのデータの相対的重要度、データが他のストレージと同期されているか、等。例えば、頻繁にアクセスされるデータをキャッシュ内に保持することでデータストレージシステムの性能が改善する可能性があるため、頻繁にアクセスされるデータにはより高い優先度が割り当てられる。別の例として、他のデータよりも最近アクセスされたデータは将来的にまたアクセスされると考えられるため、最近アクセスされたデータにはより高い優先度が割り当てられ得る。更に別の例として、書き込みよりも読み出しが頻繁に行われるデータにはより高い優先度が割り当てられ得るが、これは、このような頻繁に読み出しされるデータをキャッシュ内に保持することで性能を改善し、かつNVSMの消耗を低減する可能性があるためである。一部の実施形態において、優先度は、上記の要素のうち1以上の、重み付き組み合わせに基づいて割り当てられ得る。
単純化と説明を目的として、以下の説明は、不揮発性メモリアレイ150が磁気ストレージ160に対するキャッシュメモリとして機能する例示的な実施形態を中心に行う。しかしながら、本開示の範囲は、このような実施形態に限定されない。例えば、他の実施形態において、データストレージシステム120は磁気ストレージ160に代わって、第2の不揮発性メモリアレイ等、別の種類のデータストレージを含み得る。例えば、不揮発性メモリアレイ150は、第2の不揮発性メモリアレイで用いられているメモリの種類よりも高速な読み/書き性能を提供する種類のメモリを含み得る。一部の実施形態において、不揮発性メモリアレイ150は離れた場所にあるデータストレージに対するキャッシュとして機能し得て、1以上のネットワーク接続を介してデータの同期が行われ得る。
システム概要
図1は、本発明の一の実施形態に係る優先度に基づくガベージコレクションを実装する、ホストシステムとデータストレージシステムとの組み合わせ100を図示する。図示のように、データストレージシステム120(例えばハイブリッドディスクドライブ)は、コントローラー130及び不揮発性メモリアレイ150、ならびに、磁気メディア164を有する磁気ストレージ160を含む。不揮発性メモリアレイ150は、フラッシュ集積回路、カルコゲナイドRAM(C−RAM)、相変化メモリ(PC−RAM又はPRAM)、プログラマブルメタライゼーションセルRAM(PMC−RAM又はPMCm)、Ovonic Unified Memory(OUM)、抵抗RAM(RRAM(登録商標))、NANDメモリ(例えばシングルレベルセル(SLC)メモリ、マルチレベルセル(MLC)メモリ、又はこれらの任意の組み合わせ)、NORメモリ、EEPROM、強誘電体メモリ(FeRAM)、磁気抵抗RAM(MRAM)、その他のディスクリートNVM(不揮発性メモリ)チップ、もしくはこれらの任意の組み合わせ、といった不揮発性メモリを含み得る。不揮発性メモリアレイ150は、ブロック、ページ等の1以上のメモリ領域を含んでよい。メモリ領域はメモリ単位を含んでよい。一の実施形態において、不揮発性メモリアレイ150は磁気ストレージ160に対するキャッシュとして機能してよい。データストレージシステム120は更に他の種類のストレージを含んでよい。
コントローラー130は、ホストシステム110のストレージインターフェイスモジュール112(例えばデバイスドライバー)から、データ及び/又はストレージアクセスコマンドを受信するように構成されてよい。ストレージインターフェイス112によって通信されるストレージアクセスコマンドは、ホストシステム110によって発行されたデータ書き込み及びデータ読み出しコマンドを含んでよい。読み出し及び書き込みコマンドは、データストレージシステム120へのアクセスに用いる論理アドレス(例えば論理ブロックアドレス又はLBA)を指定できる。コントローラー130は、不揮発性メモリアレイ150で、受信したコマンドを実行できる。
データストレージシステム120は、ホストシステム110によって通信されたデータを格納できる。換言すると、データストレージシステム120は、ホストシステム110のメモリストレージとして機能してよい。この機能を容易にするため、コントローラー130は論理インターフェイスを実装してよい。論理インターフェイスは、データストレージシステムのメモリを、ユーザーデータを格納可能な1組の論理アドレス(例えば連続アドレス)としてホストシステム110に提供できる。内部的に、コントローラー130は、論理アドレスを、不揮発性メモリアレイ150、磁気ストレージ160、及び/又はその他のストレージモジュール内の多様な物理位置又はアドレスにマッピングできる。物理位置は、データを格納するように構成されてよい。コントローラー130は、不揮発性メモリアレイ150のガベージコレクションを行うように構成されたガベージコレクションモジュール132と、不揮発性メモリアレイ150に格納(例えばキャッシュ)されたデータを磁気ストレージ160及び/又はその他のストレージモジュールと同期するように構成されたデータフラッシュモジュール134とを含む。一の実施形態において、ガベージコレクションモジュール132は、ガベージコレクションを行うメモリ単位(例えばブロック)を選択するタスクを含む、優先度に基づくガベージコレクションを行うように構成される。一の実施形態において、データフラッシュモジュール134は、優先度に基づくデータのフラッシュを行うように構成される。
優先度に基づくガベージコレクション
図2は、本発明の一の実施形態に係るデータ単位の優先度情報に基づくデータ単位のランキング200を図示する。ランキング200は、リスト、キュー、テーブル、ハッシュテーブル、グラフ等、適切なデータ構造を用いて表すことができる。一の実施形態において、ランキング200は、優先度情報に従ってソートされたキューとして表されることができる。例えば、ランキング200は、格納されたデータに関連付けられた優先度情報に従ってソートされた、不揮発性メモリアレイ150に格納されたデータ単位の位置(例えば論理アドレス)を示すことができる。一の実施形態において、データ単位は、ホストから受信された示唆された優先度情報に従って一次的にソートされ、その後、最低使用頻度(LRU)基準等の観察されたデータアクセス基準に基づいて二次的にソートされ得る。
図示のように、ランキング範囲202に対応するデータ単位は、併合閾値210及び追い出し閾値220を満たさない(例えば、より高い)優先度情報を有する。例えば、併合閾値が優先度スコア9に設定されており、追い出し閾値が6に設定されている場合、優先度スコア15のデータ単位(例えば、論理ブロックアドレス(logical block address(LBA)))はいずれの閾値も上回ることになり、ランキング範囲202内にあることになる。このようなデータ単位は、1以上の実施形態において、ハイブリッドドライブのキャッシュとして機能する不揮発性メモリアレイ150に保持しておくべき優先度の高いデータ(例えば、高頻度で読み出されるデータ)であり得る。そのため、ランキング範囲202内の優先度の高いデータ単位(例えばLBA)は、ガベージコレクション中、不揮発性メモリアレイ150の別のメモリ領域に移動又はコピーされてよい。このような別のメモリ領域は、ガベージコレクション中に保持するべき有効なデータを格納するために指定される空きメモリ領域であり得る。
本発明の実施形態は、他のランキング範囲にあるデータ単位に対する従来のガベージコレクションを修正する。第1の修正例は、併合閾値210を満たす(例えば、より低い)が追い出し閾値220よりも高い優先度情報を有する、ランキング範囲204にあるデータ単位に関する。上述のように、優先度情報が示唆するとおり、このようなデータは近い将来不揮発性メモリアレイ150から追い出され得る。したがって、ランキング範囲204内のデータ単位は、ガベージコレクション中、不揮発性メモリアレイ150のまた別のメモリ領域に併合されてよい。このようなメモリ領域は、多様なメモリ領域からのデータ単位を併合するのに用いられ得る。これを描写するために以下の例を検討したい。従来のガベージコレクションプロセスであれば、特定のブロック1〜NからフリーブロックXへと全ての有効なデータ単位をコピーし得る。しかしながら、一の実施形態においては、ブロック1〜Nの有効なデータ単位には、その優先度ランキングに基づいて、異なる処理が行われる。例えば、ランキング範囲204内のこれらの有効なデータは、ブロックXにはコピーされず、このようなデータの併合用に予約されたブロックYにコピーされるだろう。一方、ランキング範囲202内の有効なデータは、ブロックXへとコピーされるだろう。ブロックYは、近く無効となると思われる、すなわち将来的なガベージコレクション動作の良い候補となり得る、このような優先度の低いデータで満たされる。
第2の修正例は、併合閾値210及び追い出し閾値220を満たす(例えば、より低い)優先度情報を有する、ランキング範囲206内のデータ単位に関する。ランキング範囲206にあるデータ単位は、ガベージコレクション中に不揮発性メモリアレイ150から追い出される、又は追い出し用にマーキングされてよい。上述のように不揮発性メモリアレイ150はキャッシュとして機能しているため、特定のデータは、追い出されるべきであるというこのような低い優先度を有し得る。したがって、本発明の一部の実施形態は、従来のガベージコレクション方法では普通保持されるだろう特定の有効なデータが、一部の実施形態のガベージコレクション方法では保持されないように、この追い出しの検討をガベージコレクションのプロセスに統合する。つまり、このような有効なデータは、無効なデータであるかのように扱われる。例えば、ランキング範囲206にあるデータ単位は、削除向けにマーキングされることができ、不揮発性メモリアレイ150内のいかなるメモリ領域にも移動又はコピーされない。上記の例を続けると、ガベージコレクション中に遭遇する、ランキング範囲206にある有効なデータは、やはりいかなるブロックにもコピーされない(従来の方法ではブロックXにコピーされると考えられる)。
一の実施形態において、追い出し閾値220及び/又は併合閾値210は、多様な要因に基づいて選択できる。例えば、追い出し閾値を高く設定する(例えば、より多くのデータが追い出されるようにする)ことは、新規データが不揮発性メモリアレイ150に格納されることを可能にするだろう。一方、既に格納されたデータは追い出され得る。これは、データストレージシステム120が、不揮発性メモリアレイ150に格納されたデータの少なくとも一部が古い、又は陳腐化していると判断した場合に有利となり得る。この判断は、ホストシステム110の動作に少なくとも部分的に基づき得る。一の実施形態において、追い出し閾値220及び/又は併合閾値210は、データストレージシステム120の動作中に動的に調整されてよい。当業者は、図2に示した優先度ランキングは例示に過ぎず、他の実施形態においては異なる方法を用いる(例えば、優先度ランキングの決定に関して、「最高」と「最低」の意味を逆転させる)ことが可能であることを理解するだろう。他の実施形態においては、優先度の追跡に、データフラグ、リンクされたリンク、ビットマップ、等のその他の方法が用いられ得る。上述のガベージコレクションシステム及び手順は、特定の優先度追跡メカニズムに依存しない。
図3は、本発明の実施形態に係る優先度に基づくガベージコレクション300の動作を図示する。優先度に基づくガベージコレクション300は、コントローラー130及び/又はデータフラッシュモジュール134によって実行できる。図示のように、メモリ領域310及び320はガベージコレクションされている。優先度に基づくガベージコレクション300は、領域310のデータ単位312、314、316、318、319と、領域320のデータ単位322、324、326、328、329と関連付けられた優先度情報を決定する。一の実施形態において、優先度に基づくガベージコレクション300は、ランキング200を用いて優先度情報を決定する。例えば、優先度に基づくガベージコレクション300は、データ単位に関連付けられた優先度情報を検索できる。
図3の例において、データ単位312、314、316、318は優先度に基づくガベージコレクションによって有効である(例えば、陳腐化していない、又は他の場所に格納されたデータのコピーによって無効化されていない)と決定されている。上述のとおり、有効なデータには、関連付けられた優先度情報によって、異なる処理が行われる。
第1のケースでは、優先度に基づくガベージコレクション300は、データ単位312に関連付けられた優先度情報が、追い出しの対象であることを示すことを決定する。例えば、ガベージコレクション300は、優先度情報が追い出し閾値220を満たすことを決定する。更に、優先度に基づくガベージコレクション300は、データ単位312が、例えば磁気ストレージ160と同期されていないと決定する。例えば、データ単位312はホストシステム110によって格納されたデータの最新のコピーであってよい。つまり、メモリ単位312に格納されたデータは非冗長である。このため、データ単位312は、不揮発性メモリアレイ150から追い出し不可である。一の実施形態において、データ単位312は、異なるメモリ領域にコピー可能である。
第2のケースでは、優先度に基づくガベージコレクション300は、データ単位314に関連付けられた優先度情報が、追い出しの対象であることを示すと決定する。データ単位312とは異なり、データ単位314は、例えば磁気ストレージ160と同期されている。したがって、データ単位314は、磁気ストレージ160にフラッシュせずに不揮発性メモリアレイ150から追い出し可能である。一の実施形態において、データ単位314を格納しているメモリ領域310内のメモリ位置は、後の削除又は上書きのためにマーキングされてよい。
第3のケースでは、優先度に基づくガベージコレクション300は、データ単位316に関連付けられた優先度情報が、併合の対象であることを示す(例えば、優先度情報が併合閾値210を満たす)と決定する。このため、データ単位316は、併合向けに指定されたデータを格納するように構成されるメモリ領域340において併合可能である。一の実施形態において、1以上のメモリ領域内の優先度の低いデータを併合すると、このようなデータは将来的に追い出されると考えられることから、ガベージコレクションの効率を向上できる。例えば、不揮発性メモリアレイ150内のデータの移動又はコピーに関連するライトアンプリフィケーションが、1以上のメモリ領域内の優先度の低いデータを併合した結果として、低減できる。図示のように、データ単位316は、メモリ領域340にコピーされる。一の実施形態において、データ単位316を格納しているメモリ領域310内のメモリ位置は、後の削除又は上書きのためにマーキングされてよい。
第4のケースでは、優先度に基づくガベージコレクション300は、データ単位318に関連付けられた優先度情報が、追い出し又は併合の対象ではないことを示す。例えば、ガベージコレクション300は、優先度情報が併合閾値210も追い出し閾値220も満たさないことを決定する。このため、データ単位318は、従来のガベージコレクションにおいてと同様に、別のメモリ領域330に移動又はコピー可能である。例えば、このようなデータは、不揮発性メモリアレイ150に保持すべき優先度の高いデータであり得る。図示のように、データ単位318はメモリ領域330にコピーされる。一の実施形態において、データ単位318を格納しているメモリ領域310内のメモリ位置は、後の削除又は上書きのためにマーキングされてよい。
最後に、優先度に基づくガベージコレクション300によって発見された全ての無効なデータは、従来のガベージコレクションと同様に処理される。このため、無効である(例えば、陳腐化している、又は他の場所に格納されたデータのコピーによって無効化されている)データ単位319は、別のメモリ領域にはコピーされず、データ単位319を格納しているメモリ領域310内のメモリ位置は、後の削除又は上書きのためにマーキングされてよい。
メモリ領域320について、メモリ領域310における上述の例と同様に、優先度に基づくガベージコレクション300は、データ単位322、324、326、328、329に同様の処理を行い、各々を、関連付けられた優先度情報に従って扱う。一の実施形態において、データ単位326は、データ単位316がコピーされた先とは異なるメモリ領域にコピーされてよい。例えば、メモリ領域340が満杯であれば、別の併合領域が用いられ得る。
同様に、一の実施形態において、データ単位328は、データ単位318がコピーされた先とは異なるメモリ領域にコピーされてよい。例えば、メモリ領域330が満杯であれば、別のメモリ領域が用いられ得る。
図4は、本発明の一の実施形態に係る優先度に基づくガベージコレクションのプロセス400を示すフロー図である。プロセス400は、コントローラー130及び/又はガベージコレクションモジュール132及び/又はデータフラッシュモジュール134によって実行できる。プロセス400は、ガベージコレクション用のメモリ領域を選択するブロック402から開始する。プロセス400は、有効なデータを格納する1以上のメモリ単位を識別するブロック404に遷移する。このようなメモリ単位の各々について、プロセス400は次の動作を行う。
ブロック406において、プロセス400は、メモリ単位に格納されたデータ単位が追い出しの対象であるかどうかを決定する。一の実施形態において、プロセス400は、データ単位に関連付けられた優先度情報が追い出し閾値220を満たすかどうか、及び、データが冗長かどうかを決定する。プロセス400がこれらの条件がいずれも満たされると決定すると、データ単位は追い出し可能となり、プロセスは、データ単位を不揮発性メモリ150から追い出すブロック408に遷移する。一の実施形態において、プロセス400は、データ単位を、後の削除又は上書き用にマーキングしてよい。プロセス400はその後、処理するべき追加のメモリ単位が存在するかどうかを決定するブロック416に遷移する。プロセス400が、処理するべき1以上の追加のメモリ単位が存在すると決定すると、プロセス400は次のデータ単位を処理する406に遷移する。それ以外の場合には、プロセス400は終了する。
ブロック406において、データ単位が追い出しの対象ではないとプロセス400が決定すると、プロセスは、そのデータ単位が併合の対象かどうかを決定するブロック410に遷移する。一の実施形態において、プロセス400は、そのデータ単位に関連付けられた優先度情報が併合閾値210を満たすかどうかを決定する。プロセス400が、そのデータ単位が併合の対象であると決定すると、プロセスは、併合メモリ領域として構成される第1のメモリ領域内のメモリ単位にデータ単位をコピーするブロック412に遷移する。プロセス400は、その後、処理するべき追加のメモリ単位が存在するかどうかを決定するブロック416に遷移する。プロセス400が、処理するべき1以上の追加のメモリ単位が存在すると決定すると、プロセス400は、次のデータ単位を処理する406に遷移する。それ以外の場合には、プロセス400は終了する。
ブロック410において、データ単位が併合の対象ではないとプロセス400が決定すると、プロセスは、ブロック414に遷移する。例えばデータ単位は、図2のランキング範囲202からのデータ単位のような優先度の高いデータ、もしくは非冗長な優先度の低いデータである。ブロック414において、プロセス400は、このデータ単位を、標準メモリ領域として構成される第2のメモリ領域のメモリ単位に移動又はコピーする。プロセス400は、その後、処理するべき追加のメモリ単位が存在するかどうかを決定するブロック416に遷移する。プロセス400が、処理するべき1以上の追加のメモリが存在することを決定すると、プロセス400は、次のデータ単位を処理する406に遷移する。それ以外の場合には、プロセス400は終了する。
図5は、本発明の一の実施形態に係るガベージコレクション向けの1以上の領域を選択することを図示する。ガベージコレクション向けの1以上の領域を選択することは、コントローラー130及び/又はガベージコレクションモジュール132によって実行可能である。一の実施形態において、この選択は、図4のブロック402において実行可能である。ガベージコレクション候補リスト500は、ブロック、502、504、506、520、530等のメモリ領域を含む。伝統的に、ガベージコレクション候補リストは、メモリ領域内の無効なデータ単位の数によってソートされてよい。一の実施形態において、ガベージコレクション候補リスト500は、データ単位に関連付けられた優先度情報によってもソートされる。例えば、領域内の無効なデータの数と、領域に格納されたデータ単位の優先度情報とを考慮に入れた、複合的な基準が算出されてよい。一の実施形態において、複合的な基準は、無効なデータ単位の数と追い出し可能なデータ単位の数との合計(例えば、優先度情報が追い出し閾値を満たす冗長なデータ単位)である。別の実施形態において、複合的な基準は、無効なデータ単位の数と、領域に格納されたデータ単位に関連付けられた優先度情報の加重平均である。リスト500内のエントリは、優先度の降順でソートされてよい。つまり、より高い複合的な基準を有する領域が、リスト500の先頭に位置してよい。より高い複合的な基準は、領域がよりガベージコレクションの候補になりやすいことを示してよい。例えば、領域502は、最も可能性の高いガベージコレクションの候補であってよい。別の実施形態において、リストのエントリは、優先度の昇順でソートされてよい。別の実施形態において、より高い複合的な基準は、領域がよりガベージコレクションの候補になりにくいことを示してよい。更に別の実施形態において、キュー、テーブル、ハッシュテーブル、グラフ等の任意の適切なデータ構造は、リスト500と共に、またはそれに代わって、用いられてよい。
一の実施形態において、ガベージコレクション中、無効なデータを格納するデータ単位、及び優先度情報が追い出し閾値220を満たす、有効かつ冗長な(例えば、同期された)データを有するデータ単位が、別のいかなるメモリ領域にもコピー又は移動されないため、このようなデータ単位は、効率的にガベージコレクション可能である。優先度情報が追い出し閾値220を満たすが、データは非冗長である、有効なデータを有するデータ単位は、追い出し不可であり、ガベージコレクション中に別のメモリ領域へコピー又は移動する必要があり得る。例えば、磁気ディスクはガベージコレクション中に回転していない可能性があるため、非冗長データは同期できない。別の例として、磁気ディスクが回転していたとしても、非冗長データをディスクにコピーすることは、コピーに伴う遅延のために、望ましくない場合がある。したがって、ガベージコレクションの効率を向上させるために、有効で非冗長な優先度の低いデータ単位を、磁気ストレージ160にフラッシュすることは有利であり得る。このようなフラッシュは、データフラッシュモジュール134によって行われてよい。
一の実施形態において、非冗長な優先度の低いデータ単位のフラッシュは、データ単位に関連付けられた優先度情報を考慮に入れる。フラッシュされたデータ単位の優先度情報が追い出し閾値220を満たしていると仮定すると、非冗長なデータ単位をフラッシュすることは、データ単位が格納された領域の複合的な基準を上昇させ得る。データフラッシュモジュール134は、優先度情報が追い出し閾値220を満たす、1以上の非冗長なデータ単位をフラッシュ向けに選択してよく、これにより、このような1以上の領域を、ガベージコレクションにより適した候補とする。このような非冗長なデータ単位は、一旦フラッシュされると、ガベージコレクション中に追い出し可能である。したがって、ガベージコレクションの効率が向上する。このアプローチを採用することで、ガベージコレクションの効率が向上するよう、優先度の低いデータのフラッシュが並べ替え、又は優先度付けされる。
一の実施形態において、データ単位に追い出し閾値220を満たす優先度を与えることにより、磁気ストレージ160との同期向けに、データ単位が選択されて良く、ガベージコレクション候補である1以上のメモリ領域に格納される。このように選択された少なくともいくつかのデータ単位が同期又はフラッシュされる。これらのフラッシュされたデータ単位は、ガベージコレクション中に追い出されてよい。例えば、フラッシュされたデータ単位は、ガベージコレクション中いかなるメモリ領域にもコピーされないよう指定されてよい。
例えば、領域506は、無効なデータ単位50%と、優先度情報が追い出し閾値220を満たす有効で冗長なデータ単位10%と、優先度情報が追い出し閾値220を満たす有効で非冗長なデータ単位15%と、を格納していると仮定する。非冗長な優先度の低いデータ単位がフラッシュされる前に、領域506の複合的な基準は60である。しかしながら、全ての非冗長な優先度の低いデータ単位がフラッシュ又は同期されると、領域の複合的な基準は75に上昇する。したがって、ガベージコレクション中に別のメモリ領域にコピー又は移動を必要とするのが、領域に格納されたデータ単位の25%のみであることから、領域506は、ガベージコレクションにより適した候補となる。
結論
開示された優先度に基づくガベージコレクションは、ガベージコレクションと、格納システム全体の効率を向上するために、不揮発性メモリアレイに格納されたデータの属性を用いる。優先度の低い一連のデータは、不揮発性メモリアレイから選択的に追い出し可能である。これにより、例えばガベージコレクションに伴うライトアンプリフィケーションを低減できる。優先度の低い、他の一連のデータは、不揮発性メモリアレイ内の別の領域において再編成又は併合できる。更に、ガベージコレクションを強化又は最適化するために、データのフラッシュが行われて良い。これにより、性能及び耐久性が向上できる。
その他の変形例
当業者は、一部の実施形態において、開示された技術が、格納システムによって実行される他のハウスキーピング動作に適用可能であることを理解するだろう。例えば、ウェアレベリングや不良ブロック管理等の際に、データの優先度が考慮に入れられてよい。また、格納されたデータの優先度を決定するために、追加の要素が用いられてよい。更に、格納されたデータの優先度は、要素の任意の適切な組み合わせを用いて、また、平均、加重平均、最小二乗決定、その他の線形関数及び/又は非線形関数といった任意の適切な関数をこの組み合わせに適用して、決定されてよい。図3及び4に図示するプロセスのような、開示されたプロセスにおいて行われる実際の工程は、図示されたものとは異なり得る。追加のシステムコンポーネントが用いられてよく、開示されたシステムコンポーネントは組み合わせ又は省略されてよい。実施形態によっては、上述した工程のうちいくつかは削除されてよく、他の工程が追加されてよい。したがって、本開示の範囲は、添付の請求の範囲への参照によってのみ定義されるよう意図される。
特定の実施形態が記載されたが、これらの実施形態は例示のためにのみ提供されたものであり、保護の範囲を限定することを意図しない。実際に、本稿に記載の新規な方法及びシステムは他の多様な形態で実施され得る。更に、本稿に記載の方法及びシステムの形態の様々な省略、置換、及び変更が、保護の精神から逸脱することなく加えられ得る。添付の請求の範囲及びその等価物は、このような形態又は変形をも、本開示の精神及び範囲に含まれるものとして包含するよう意図されている。例えば、本稿に記載のシステム及び方法は、ハードディスクドライブ、ソリッドステートドライブ等に適用可能である。更に、その他の形態の格納媒体(例えばDRAM又はSRAM、バッテリーバックアップ揮発性DRAM又はSRAM装置、EPROM、EEPROMメモリ等)が、追加又は代替として用いられ得る。別の例として、図面に図示された様々な要素は、ソフトウェア及び/又はプロセッサ上のファームウェア、ASIC/FPGA、又は専用ハードウェアとして実装され得る。更に、上述した特定の実施形態の機能及び属性は、異なる方法で組み合わせられて追加の実施形態を成立し得て、その全てが、本開示の範囲に包含される。本開示は特定の好適な実施形態及び応用を提供しているが、本稿に記載の全ての機能及び利点を提供しない実施形態を含む、当業者にとって明白なその他の実施形態も、本開示の範囲に包含される。したがって、本開示の範囲は、添付の請求の範囲を参照することによってのみ定義されるよう意図される。

Claims (23)

  1. データストレージシステムであって、
    複数のデータ単位を格納するように構成された複数のメモリ領域を有する不揮発性メモリアレイと、
    データを格納するように構成された磁気ストレージと、
    少なくとも、
    有効なデータを含む第1のメモリ領域内のデータ単位を識別し、
    各データ単位に関連付けられた優先度情報に基づいて、有効なデータを含む少なくともいくつかのデータ単位を、第2のメモリ領域にコピーしないデータ単位として指定することであって、以下のうち少なくとも1つを含む、
    1)前記不揮発性メモリアレイ内の追い出し用のいかなるメモリ領域にもコピーしないデータ単位を指定すること、及び
    2)併合用の第3のメモリ領域にコピーするデータ単位を指定すること、
    有効なデータを含み、前記第2のメモリ領域にコピーしないデータ単位として指定されていないデータ単位を前記第2のメモリ領域にコピーすること、
    により、前記第1のメモリ領域のガベージコレクションを行うように構成されたコントローラーと、を備える、データストレージシステム。
  2. 請求項1に記載のデータストレージシステムであって、前記コントローラーは、有効なデータを含み、かつ併合用に指定されているデータ単位を前記第3のメモリ領域にコピーするように更に構成される、データストレージシステム。
  3. 請求項2に記載のデータストレージシステムであって、前記コントローラーは、前記第3のメモリ領域内の少なくとも一部のデータ単位を、前記不揮発性メモリアレイ内のいかなるメモリ領域にもコピーしないデータ単位として指定するように更に構成される、データストレージシステム。
  4. 請求項1に記載のデータストレージシステムであって、前記コントローラーは、前記優先度情報を追い出し閾値と比較することによって、前記不揮発性メモリアレイ内のいかなるメモリ領域にもコピーしないデータ単位を指定するように構成される、データストレージシステム。
  5. 請求項1に記載のデータストレージシステムであって、前記コントローラーは、
    前記メモリ領域内の前記データ単位の前記優先度情報に少なくとも部分的に基づいて、前記メモリ領域のガベージコレクションランキングを決定し、
    前記ランキングに基づいて、ガベージコレクション用の1以上のメモリ領域を選択する、
    ように更に構成される、データストレージシステム。
  6. 請求項5に記載のデータストレージシステムであって、ガベージコレクション用に選択された前記1以上のメモリ領域は、前記第1のメモリ領域を含む、データストレージシステム。
  7. 請求項5に記載のデータストレージシステムであって、前記コントローラーは、
    前記磁気ストレージとの同期用にデータを選択する際、(1)関連付けられた優先度に基づいた追い出し閾値を満し、かつ(2)ガベージコレクションの候補である1以上のメモリ領域内に存在する、データを優先し、
    前記選択されたデータの少なくとも一部を同期し、
    前記同期されたデータを、ガベージコレクション中に不揮発性メモリアレイ内のいかなるメモリ領域にもコピーしないよう指定する、
    ように更に構成される、データストレージシステム。
  8. 請求項1に記載のデータストレージシステムであって、前記コントローラーは、前記優先度情報を併合閾値と比較することによって、併合用の前記第3のメモリ領域にコピーするデータ単位を指定するように構成される、データストレージシステム。
  9. 請求項1に記載のデータストレージシステムであって、
    データ単位に関連付けられた前記優先度情報は、ホストシステムによって提供された優先度情報、前記データ単位のアクセス頻度、前記データ単位への最後のアクセスからの持続時間、及び前記データ単位の読み出し/書き込み率、のうち1以上に基づいている、
    データストレージシステム。
  10. 複数のデータ単位を格納するように構成された複数のメモリ領域を有する不揮発性メモリアレイを含むデータストレージシステムにおいて、ガベージコレクションを行う方法であって、
    有効を含む第1のメモリ領域内のデータ単位を識別するステップと、
    各データ単位に関連付けられた優先度情報に基づいて、有効なデータを含む少なくともいくつかのデータ単位を、第2のメモリ領域にコピーしないデータ単位として指定するステップであって、以下のうち
    1)前記不揮発性メモリアレイ内の、別のデータストレージへの追い出し用のいかなるメモリ領域にもコピーしないデータ単位を指定すること、及び
    2)併合用の第3のメモリ領域にコピーするデータ単位を指定すること、
    の少なくとも1つを含むステップと、
    有効なデータを含み、前記第2のメモリ領域にコピーしないデータ単位として指定されていないデータ単位を前記第2のメモリ領域にコピーするステップと、を含み、
    コントローラーの制御下で行われる、方法。
  11. 請求項10に記載の方法であって、有効なデータを含み、かつ併合用に指定されているデータ単位を前記第3のメモリ領域にコピーするステップを更に含む、方法。
  12. 請求項11に記載の方法であって、前記第3のメモリ領域内の少なくとも一部のデータ単位を、前記不揮発性メモリアレイ内のいかなるメモリ領域にもコピーしないデータ単位として指定するステップを更に含む、方法。
  13. 請求項10に記載の方法であって、前記不揮発性メモリアレイ内のいかなるメモリ領域にもコピーしないデータ単位を指定するステップは、前記優先度情報を追い出し閾値と比較することを含む、方法。
  14. 請求項10に記載の方法であって、
    前記メモリ領域内の前記データ単位の前記優先度情報に少なくとも部分的に基づいて、前記メモリ領域のガベージコレクションランキングを決定するステップと、
    前記ランキングに基づいて、ガベージコレクション用の1以上のメモリ領域を選択するステップと、
    を更に含む、方法。
  15. 請求項14に記載の方法であって、ガベージコレクション用に選択された前記1以上のメモリ領域は、前記第1のメモリ領域を含む、方法。
  16. 請求項14に記載の方法であって、
    前記別のデータストレージとの同期用にデータを選択する際、(1)関連付けられた優先度に基づいた追い出し閾値を満たし、かつ(2)ガベージコレクションの候補である1以上のメモリ領域内に存在する、データを優先し、
    前記選択されたデータの少なくとも一部を同期し、
    前記同期されたデータを、ガベージコレクション中に不揮発性メモリアレイ内のいかなるメモリ領域にもコピーしないよう指定する、
    方法。
  17. 請求項10に記載の方法であって、併合用の前記第3のメモリ領域にコピーするデータ単位を指定するステップは、前記優先度情報を併合閾値と比較することを含む、方法。
  18. 請求項10に記載の方法であって、データ単位に関連付けられた前記優先度情報は、ホストシステムによって提供された優先度情報、前記データ単位のアクセス頻度、前記データ単位への最後のアクセスからの持続時間、及び前記データ単位の読み出し/書き込み率、のうち1以上に基づいている、方法。
  19. 請求項10に記載の方法であって、前記データストレージシステムは、前記別のデータストレージとして構成された磁気メディアを更に含み、前記不揮発性メモリアレイは、磁気ストレージのキャッシュメモリとして構成される、方法。
  20. 請求項10に記載の方法であって、前記別のデータストレージは、リモートデータストレージを含み、前記不揮発性メモリアレイは、前記リモートデータストレージへのキャッシュメモリとして構成される、方法。
  21. データストレージシステムであって、
    複数のデータ単位を格納するように構成された複数のメモリ領域を有する不揮発性メモリアレイと、
    少なくとも、
    有効なデータを含む第1のメモリ領域内のデータ単位を識別し、
    各データ単位に関連付けられた優先度情報に基づいて、有効なデータを含む少なくともいくつかのデータ単位を、第2のメモリ領域にコピーしないデータ単位として指定することであって、以下のうち少なくとも1つを含む、
    1)前記不揮発性メモリアレイ内の、別のデータストレージへの追い出し用のいかなるメモリ領域にもコピーしないデータ単位を指定すること、及び
    2)併合用の第3のメモリ領域にコピーするデータ単位を指定すること、
    有効なデータを含み、前記第2のメモリ領域にコピーしないデータ単位として指定されていないデータ単位を前記第2のメモリ領域にコピーすること、
    により、前記第1のメモリ領域のガベージコレクションを行うように構成されたコントローラーと、を備える、データストレージシステム。
  22. 請求項21に記載のデータストレージシステムであって、前記データストレージシステムは、前記別のデータストレージとして構成された磁気メディアを更に含み、前記不揮発性メモリアレイは、磁気ストレージのキャッシュメモリとして構成される、データストレージシステム。
  23. 請求項21に記載のデータストレージシステムであって、
    前記別のデータストレージは、リモートデータストレージを含み、
    前記不揮発性メモリアレイは、前記リモートデータストレージへのキャッシュメモリとして構成される、
    データストレージシステム。
JP2015550378A 2012-12-26 2013-09-24 データストレージシステム向けの優先度に基づくガベージコレクション Active JP6266019B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/727,278 US9430376B2 (en) 2012-12-26 2012-12-26 Priority-based garbage collection for data storage systems
US13/727,278 2012-12-26
PCT/US2013/061473 WO2014105229A1 (en) 2012-12-26 2013-09-24 Priority-based garbage collection for data storage systems

Publications (2)

Publication Number Publication Date
JP2016506579A true JP2016506579A (ja) 2016-03-03
JP6266019B2 JP6266019B2 (ja) 2018-01-24

Family

ID=50976073

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015550378A Active JP6266019B2 (ja) 2012-12-26 2013-09-24 データストレージシステム向けの優先度に基づくガベージコレクション

Country Status (7)

Country Link
US (1) US9430376B2 (ja)
EP (1) EP2939120B1 (ja)
JP (1) JP6266019B2 (ja)
KR (1) KR101894625B1 (ja)
CN (1) CN105074673B (ja)
HK (1) HK1217371A1 (ja)
WO (1) WO2014105229A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11880578B2 (en) 2017-03-23 2024-01-23 Netapp, Inc. Composite aggregate architecture

Families Citing this family (136)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9176859B2 (en) 2009-01-07 2015-11-03 Siliconsystems, Inc. Systems and methods for improving the performance of non-volatile memory operations
US10079048B2 (en) 2009-03-24 2018-09-18 Western Digital Technologies, Inc. Adjusting access of non-volatile semiconductor memory based on access time
US9753847B2 (en) 2009-10-27 2017-09-05 Western Digital Technologies, Inc. Non-volatile semiconductor memory segregating sequential, random, and system data to reduce garbage collection for page based mapping
US8782327B1 (en) 2010-05-11 2014-07-15 Western Digital Technologies, Inc. System and method for managing execution of internal commands and host commands in a solid-state memory
US9026716B2 (en) 2010-05-12 2015-05-05 Western Digital Technologies, Inc. System and method for managing garbage collection in solid-state memory
US8959284B1 (en) 2010-06-28 2015-02-17 Western Digital Technologies, Inc. Disk drive steering write data to write cache based on workload
US9058280B1 (en) 2010-08-13 2015-06-16 Western Digital Technologies, Inc. Hybrid drive migrating data from disk to non-volatile semiconductor memory based on accumulated access time
US8769190B1 (en) 2010-09-15 2014-07-01 Western Digital Technologies, Inc. System and method for reducing contentions in solid-state memory access
US8788779B1 (en) 2010-09-17 2014-07-22 Western Digital Technologies, Inc. Non-volatile storage subsystem with energy-based performance throttling
US9021192B1 (en) 2010-09-21 2015-04-28 Western Digital Technologies, Inc. System and method for enhancing processing of memory access requests
US9164886B1 (en) 2010-09-21 2015-10-20 Western Digital Technologies, Inc. System and method for multistage processing in a memory storage subsystem
US9069475B1 (en) 2010-10-26 2015-06-30 Western Digital Technologies, Inc. Hybrid drive selectively spinning up disk when powered on
US8700950B1 (en) 2011-02-11 2014-04-15 Western Digital Technologies, Inc. System and method for data error recovery in a solid state subsystem
US8700951B1 (en) 2011-03-09 2014-04-15 Western Digital Technologies, Inc. System and method for improving a data redundancy scheme in a solid state subsystem with additional metadata
US8707104B1 (en) 2011-09-06 2014-04-22 Western Digital Technologies, Inc. Systems and methods for error injection in data storage systems
US9195530B1 (en) 2011-09-06 2015-11-24 Western Digital Technologies, Inc. Systems and methods for improved data management in data storage systems
US8713357B1 (en) 2011-09-06 2014-04-29 Western Digital Technologies, Inc. Systems and methods for detailed error reporting in data storage systems
US8700834B2 (en) 2011-09-06 2014-04-15 Western Digital Technologies, Inc. Systems and methods for an enhanced controller architecture in data storage systems
US9268701B1 (en) 2011-11-21 2016-02-23 Western Digital Technologies, Inc. Caching of data in data storage systems by managing the size of read and write cache based on a measurement of cache reliability
US8959416B1 (en) 2011-12-16 2015-02-17 Western Digital Technologies, Inc. Memory defect management using signature identification
US9348741B1 (en) 2011-12-19 2016-05-24 Western Digital Technologies, Inc. Systems and methods for handling write data access requests in data storage devices
US9053008B1 (en) 2012-03-26 2015-06-09 Western Digital Technologies, Inc. Systems and methods for providing inline parameter service in data storage devices
US9977612B1 (en) 2012-05-11 2018-05-22 Western Digital Technologies, Inc. System data management using garbage collection and logs
US9170932B1 (en) 2012-05-22 2015-10-27 Western Digital Technologies, Inc. System data storage mechanism providing coherency and segmented data loading
US8924832B1 (en) 2012-06-26 2014-12-30 Western Digital Technologies, Inc. Efficient error handling mechanisms in data storage systems
US8954653B1 (en) 2012-06-26 2015-02-10 Western Digital Technologies, Inc. Mechanisms for efficient management of system data in data storage systems
US8966343B2 (en) 2012-08-21 2015-02-24 Western Digital Technologies, Inc. Solid-state drive retention monitor using reference blocks
US9489296B1 (en) 2012-10-17 2016-11-08 Western Digital Technologies, Inc. Methods, devices and systems for hardware-based garbage collection in solid state drives
US8972826B2 (en) 2012-10-24 2015-03-03 Western Digital Technologies, Inc. Adaptive error correction codes for data storage systems
US9177638B2 (en) 2012-11-13 2015-11-03 Western Digital Technologies, Inc. Methods and devices for avoiding lower page corruption in data storage devices
US8954694B2 (en) 2012-11-15 2015-02-10 Western Digital Technologies, Inc. Methods, data storage devices and systems for fragmented firmware table rebuild in a solid state drive
US9021339B2 (en) 2012-11-29 2015-04-28 Western Digital Technologies, Inc. Data reliability schemes for data storage systems
US9059736B2 (en) 2012-12-03 2015-06-16 Western Digital Technologies, Inc. Methods, solid state drive controllers and data storage devices having a runtime variable raid protection scheme
US9032271B2 (en) 2012-12-07 2015-05-12 Western Digital Technologies, Inc. System and method for lower page data recovery in a solid state drive
US8954655B2 (en) 2013-01-14 2015-02-10 Western Digital Technologies, Inc. Systems and methods of configuring a mode of operation in a solid-state memory
US8972655B2 (en) 2013-01-21 2015-03-03 Western Digital Technolgies, Inc. Initialization of a storage device
US9274966B1 (en) 2013-02-20 2016-03-01 Western Digital Technologies, Inc. Dynamically throttling host commands to disk drives
US9454474B2 (en) 2013-03-05 2016-09-27 Western Digital Technologies, Inc. Methods, devices and systems for two stage power-on map rebuild with free space accounting in a solid state drive
US8924824B1 (en) 2013-03-12 2014-12-30 Western Digital Technologies, Inc. Soft-decision input generation for data storage systems
US8990668B2 (en) 2013-03-14 2015-03-24 Western Digital Technologies, Inc. Decoding data stored in solid-state memory
US9335950B2 (en) 2013-03-15 2016-05-10 Western Digital Technologies, Inc. Multiple stream compression and formatting of data for data storage systems
US9448738B2 (en) 2013-03-15 2016-09-20 Western Digital Technologies, Inc. Compression and formatting of data for data storage systems
US9218279B2 (en) 2013-03-15 2015-12-22 Western Digital Technologies, Inc. Atomic write command support in a solid state drive
US9946495B2 (en) * 2013-04-25 2018-04-17 Microsoft Technology Licensing, Llc Dirty data management for hybrid drives
US9338927B2 (en) 2013-05-02 2016-05-10 Western Digital Technologies, Inc. Thermal interface material pad and method of forming the same
US9195293B1 (en) 2013-05-03 2015-11-24 Western Digital Technologies, Inc. User controlled data storage device power and performance settings
US10417123B1 (en) 2013-05-16 2019-09-17 Western Digital Technologies, Inc. Systems and methods for improving garbage collection and wear leveling performance in data storage systems
US9081700B2 (en) 2013-05-16 2015-07-14 Western Digital Technologies, Inc. High performance read-modify-write system providing line-rate merging of dataframe segments in hardware
US9170938B1 (en) 2013-05-17 2015-10-27 Western Digital Technologies, Inc. Method and system for atomically writing scattered information in a solid state storage device
US9280200B1 (en) 2013-05-20 2016-03-08 Western Digital Technologies, Inc. Automatic peak current throttle of tiered storage elements
US9740248B2 (en) 2013-06-07 2017-08-22 Western Digital Technologies, Inc. Component placement within a solid state drive
US9274978B2 (en) 2013-06-10 2016-03-01 Western Digital Technologies, Inc. Migration of encrypted data for data storage systems
US9436630B2 (en) 2013-06-11 2016-09-06 Western Digital Technologies, Inc. Using dual phys to support multiple PCIe link widths
US9830257B1 (en) 2013-06-12 2017-11-28 Western Digital Technologies, Inc. Fast saving of data during power interruption in data storage systems
US9665501B1 (en) 2013-06-18 2017-05-30 Western Digital Technologies, Inc. Self-encrypting data storage device supporting object-level encryption
US9304560B2 (en) 2013-06-19 2016-04-05 Western Digital Technologies, Inc. Backup power for reducing host current transients
US9208101B2 (en) 2013-06-26 2015-12-08 Western Digital Technologies, Inc. Virtual NAND capacity extension in a hybrid drive
US9583153B1 (en) 2013-06-28 2017-02-28 Western Digital Technologies, Inc. Memory card placement within a solid state drive
US9042197B2 (en) 2013-07-23 2015-05-26 Western Digital Technologies, Inc. Power fail protection and recovery using low power states in a data storage device/system
US9442668B1 (en) 2013-08-29 2016-09-13 Western Digital Technologies, Inc. Adaptive power management control with performance feedback
US9263136B1 (en) 2013-09-04 2016-02-16 Western Digital Technologies, Inc. Data retention flags in solid-state drives
US10444998B1 (en) 2013-10-24 2019-10-15 Western Digital Technologies, Inc. Data storage device providing data maintenance services
US9330143B2 (en) 2013-10-24 2016-05-03 Western Digital Technologies, Inc. Data storage device supporting accelerated database operations
US9007841B1 (en) 2013-10-24 2015-04-14 Western Digital Technologies, Inc. Programming scheme for improved voltage distribution in solid-state memory
US9323467B2 (en) 2013-10-29 2016-04-26 Western Digital Technologies, Inc. Data storage device startup
US9286176B1 (en) 2013-11-08 2016-03-15 Western Digital Technologies, Inc. Selective skipping of blocks in an SSD
US9270296B1 (en) 2013-11-13 2016-02-23 Western Digital Technologies, Inc. Method and system for soft decoding through single read
US9529710B1 (en) 2013-12-06 2016-12-27 Western Digital Technologies, Inc. Interleaved channels in a solid-state drive
US9652373B2 (en) * 2013-12-16 2017-05-16 International Business Machines Corporation Adaptive statistics for a linear address space
US10140067B1 (en) 2013-12-19 2018-11-27 Western Digital Technologies, Inc. Data management for data storage device with multiple types of non-volatile memory media
US9524236B1 (en) * 2014-01-09 2016-12-20 Marvell International Ltd. Systems and methods for performing memory management based on data access properties
US9036283B1 (en) 2014-01-22 2015-05-19 Western Digital Technologies, Inc. Data storage device with selective write to a first storage media or a second storage media
US9337864B1 (en) 2014-01-29 2016-05-10 Western Digital Technologies, Inc. Non-binary LDPC decoder using binary subgroup processing
US9250994B1 (en) 2014-02-05 2016-02-02 Western Digital Technologies, Inc. Non-binary low-density parity check (LDPC) decoding using trellis maximization
US9384088B1 (en) 2014-02-24 2016-07-05 Western Digital Technologies, Inc. Double writing map table entries in a data storage system to guard against silent corruption
US9354955B1 (en) 2014-03-19 2016-05-31 Western Digital Technologies, Inc. Partial garbage collection for fast error handling and optimized garbage collection for the invisible band
US9268487B2 (en) 2014-03-24 2016-02-23 Western Digital Technologies, Inc. Method and apparatus for restricting writes to solid state memory when an end-of life condition is reached
US9348520B2 (en) 2014-03-24 2016-05-24 Western Digital Technologies, Inc. Lifetime extension of non-volatile semiconductor memory for data storage device
US9448742B2 (en) 2014-03-27 2016-09-20 Western Digital Technologies, Inc. Communication between a host and a secondary storage device
US9564212B2 (en) 2014-05-06 2017-02-07 Western Digital Technologies, Inc. Solid-state memory corruption mitigation
US9690696B1 (en) 2014-05-14 2017-06-27 Western Digital Technologies, Inc. Lifetime extension of memory for data storage system
US9472222B2 (en) 2014-05-16 2016-10-18 Western Digital Technologies, Inc. Vibration mitigation for a data storage device
US10645002B2 (en) 2014-06-20 2020-05-05 Hewlett Packard Enterprise Development Lp System, apparatus and method for managing redundancy elimination in packet storage during observation of data movement
US10521358B2 (en) * 2014-06-20 2019-12-31 Hewlett Packard Enterprise Development Lp System, apparatus and method for prioritizing the storage of content based on a threat index
US9275741B1 (en) 2014-09-10 2016-03-01 Western Digital Technologies, Inc. Temperature compensation management in solid-state memory
US9875039B2 (en) * 2014-09-30 2018-01-23 Sandisk Technologies Llc Method and apparatus for wear-leveling non-volatile memory
US9418699B1 (en) 2014-10-09 2016-08-16 Western Digital Technologies, Inc. Management of sequentially written data
US9405356B1 (en) 2014-10-21 2016-08-02 Western Digital Technologies, Inc. Temperature compensation in data storage device
US9530490B2 (en) 2014-10-27 2016-12-27 Sandisk Technologies Llc Compaction process for a data storage device
US9823859B2 (en) 2014-11-06 2017-11-21 Western Digital Technologies, Inc. Mechanical shock mitigation for data storage
US20160179401A1 (en) * 2014-12-17 2016-06-23 Sk Hynix Memory Solutions Inc. Memory system and the operation method thereof
US9921963B1 (en) * 2015-01-30 2018-03-20 EMC IP Holding Company LLC Method to decrease computation for cache eviction using deferred calculations
US9892045B1 (en) * 2015-01-30 2018-02-13 EMC IP Holding Company LLC Methods to select segments of an evicted cache unit for reinsertion into the cache
US9720835B1 (en) * 2015-01-30 2017-08-01 EMC IP Holding Company LLC Methods to efficiently implement coarse granularity cache eviction based on segment deletion hints
US9892044B1 (en) * 2015-01-30 2018-02-13 EMC IP Holding Company LLC Methods to efficiently implement coarse granularity cache eviction
US9857995B1 (en) 2015-03-09 2018-01-02 Western Digital Technologies, Inc. Data storage device and method providing non-volatile memory buffer for real-time primary non-volatile memory protection
US9785563B1 (en) 2015-08-13 2017-10-10 Western Digital Technologies, Inc. Read command processing for data storage system based on previous writes
US9668337B2 (en) 2015-09-08 2017-05-30 Western Digital Technologies, Inc. Temperature management in data storage devices
US9727261B2 (en) 2015-09-24 2017-08-08 Western Digital Technologies, Inc. Weighted programming patterns in solid-state data storage systems
US9836232B1 (en) 2015-09-30 2017-12-05 Western Digital Technologies, Inc. Data storage device and method for using secondary non-volatile memory for temporary metadata storage
US10013174B2 (en) 2015-09-30 2018-07-03 Western Digital Technologies, Inc. Mapping system selection for data storage device
WO2017069646A1 (en) * 2015-10-19 2017-04-27 Huawei Technologies Co., Ltd. Method and device for determination of garbage collector thread number and activity management in log-structured file systems
US9620226B1 (en) 2015-10-30 2017-04-11 Western Digital Technologies, Inc. Data retention charge loss and read disturb compensation in solid-state data storage systems
US10126981B1 (en) 2015-12-14 2018-11-13 Western Digital Technologies, Inc. Tiered storage using storage class memory
TWI598733B (zh) * 2016-01-12 2017-09-11 瑞昱半導體股份有限公司 權重式資料搬遷控制裝置與方法
US10884914B2 (en) 2016-02-19 2021-01-05 International Business Machines Corporation Regrouping data during relocation to facilitate write amplification reduction
US10248327B2 (en) * 2016-04-01 2019-04-02 SK Hynix Inc. Throttling for a memory system using a GC/HOST ratio and operating method thereof
EP3336706B1 (en) * 2016-04-07 2021-06-30 Huawei Technologies Co., Ltd. Method and storage device for processing stripes in storage device
KR101950759B1 (ko) * 2016-04-26 2019-02-21 한양대학교 산학협력단 저장 장치의 메모리 컨트롤러가 수행하는 가비지 컬렉션 방법 및 메모리 컨트롤러
US10387303B2 (en) 2016-08-16 2019-08-20 Western Digital Technologies, Inc. Non-volatile storage system with compute engine to accelerate big data applications
CN106502579B (zh) * 2016-09-22 2019-10-11 广州华多网络科技有限公司 一种数据存储失败时的重建方法及装置
US10459644B2 (en) 2016-10-28 2019-10-29 Western Digital Techologies, Inc. Non-volatile storage system with integrated compute engine and optimized use of local fast memory
TWI615710B (zh) 2016-12-14 2018-02-21 群聯電子股份有限公司 記憶體管理方法、記憶體儲存裝置及記憶體控制電路單元
CN106775479B (zh) * 2016-12-21 2020-05-12 合肥兆芯电子有限公司 存储器管理方法、存储器储存装置及存储器控制电路单元
US10565123B2 (en) 2017-04-10 2020-02-18 Western Digital Technologies, Inc. Hybrid logical to physical address translation for non-volatile storage devices with integrated compute module
US10579288B2 (en) * 2017-08-31 2020-03-03 Micron Technology, Inc. Prioritized security
US10509722B2 (en) 2017-08-31 2019-12-17 Micron Technology, Inc. Memory device with dynamic cache management
KR102347871B1 (ko) * 2017-11-14 2022-01-06 삼성전자주식회사 캐시 관리 매커니즘을 갖는 컴퓨팅 시스템 및 그 동작방법
CN108038001B (zh) * 2017-12-13 2022-10-14 腾讯科技(深圳)有限公司 垃圾文件清理策略生成方法、装置及服务器
US10572184B2 (en) 2018-01-11 2020-02-25 International Business Machines Corporation Garbage collection in data storage systems
US10360155B1 (en) 2018-04-05 2019-07-23 Western Digital Technologies, Inc. Multi-tier memory management
US10776268B2 (en) * 2018-04-19 2020-09-15 Western Digital Technologies, Inc. Priority addresses for storage cache management
KR20200016075A (ko) 2018-08-06 2020-02-14 에스케이하이닉스 주식회사 메모리 시스템에서의 유효 데이터 탐색 방법 및 장치
US10769062B2 (en) 2018-10-01 2020-09-08 Western Digital Technologies, Inc. Fine granularity translation layer for data storage devices
US10956071B2 (en) 2018-10-01 2021-03-23 Western Digital Technologies, Inc. Container key value store for data storage devices
US10740231B2 (en) 2018-11-20 2020-08-11 Western Digital Technologies, Inc. Data access in data storage device including storage class memory
TWI759580B (zh) * 2019-01-29 2022-04-01 慧榮科技股份有限公司 管理快閃記憶體模組的方法及相關的快閃記憶體控制器與電子裝置
TWI781886B (zh) * 2019-01-29 2022-10-21 慧榮科技股份有限公司 管理快閃記憶體模組的方法及相關的快閃記憶體控制器與電子裝置
US10878907B1 (en) 2019-06-05 2020-12-29 Sandisk Technologies Llc Sub-block size reduction for 3D non-volatile memory
US11016905B1 (en) 2019-11-13 2021-05-25 Western Digital Technologies, Inc. Storage class memory access
US10978152B1 (en) 2019-11-13 2021-04-13 Sandisk Technologies Llc Adaptive VPASS for 3D flash memory with pair string structure
US11194714B2 (en) 2020-03-31 2021-12-07 International Business Machines Corporation Deep object graph traversal
US11249921B2 (en) 2020-05-06 2022-02-15 Western Digital Technologies, Inc. Page modification encoding and caching
KR20210138996A (ko) 2020-05-13 2021-11-22 삼성전자주식회사 메모리 장치, 이를 포함하는 스토리지 장치 및 스토리지 장치의 동작 방법
TWI751580B (zh) 2020-06-10 2022-01-01 財團法人工業技術研究院 儲存空間暫存檔案的管理方法及用於儲存多個暫存檔案的記錄裝置
JP2023108843A (ja) 2022-01-26 2023-08-07 キオクシア株式会社 メモリシステム

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009503735A (ja) * 2005-08-03 2009-01-29 サンディスク コーポレイション フラッシュメモリシステムのデータ記憶容量の解放
JP2009181314A (ja) * 2008-01-30 2009-08-13 Toshiba Corp 情報記録装置およびその制御方法
JP2012033002A (ja) * 2010-07-30 2012-02-16 Toshiba Corp メモリ管理装置およびメモリ管理方法
US20120059978A1 (en) * 2010-09-07 2012-03-08 Daniel L Rosenband Storage array controller for flash-based storage devices
US20120191936A1 (en) * 2011-01-21 2012-07-26 Seagate Technology Llc Just in time garbage collection
US20120198174A1 (en) * 2011-01-31 2012-08-02 Fusion-Io, Inc. Apparatus, system, and method for managing eviction of data
US8341339B1 (en) * 2010-06-14 2012-12-25 Western Digital Technologies, Inc. Hybrid drive garbage collecting a non-volatile semiconductor memory by migrating valid data to a disk
JP2013504142A (ja) * 2009-09-08 2013-02-04 フュージョン−アイオー・インコーポレーテッド ソリッドステート記憶デバイス上にデータをキャッシングするための装置、システム、および方法
JP2014513850A (ja) * 2011-05-17 2014-06-05 サンディスク テクノロジィース インコーポレイテッド 小さな論理グループがアクティブなslcおよびmlcメモリパーティションに分散させられる不揮発性メモリおよび方法

Family Cites Families (46)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0744325A (ja) 1993-07-27 1995-02-14 Fuji Electric Co Ltd ディスク記憶装置の起動およびデータ読み書き方式
US5586291A (en) 1994-12-23 1996-12-17 Emc Corporation Disk controller with volatile and non-volatile cache memories
US6044439A (en) 1997-10-27 2000-03-28 Acceleration Software International Corporation Heuristic method for preloading cache to enhance hit rate
US7886108B2 (en) 2000-01-06 2011-02-08 Super Talent Electronics, Inc. Methods and systems of managing memory addresses in a large capacity multi-level cell (MLC) based flash memory device
US6539456B2 (en) 1999-10-13 2003-03-25 Intel Corporation Hardware acceleration of boot-up utilizing a non-volatile disk cache
US7610438B2 (en) 2000-01-06 2009-10-27 Super Talent Electronics, Inc. Flash-memory card for caching a hard disk drive with data-area toggling of pointers stored in a RAM lookup table
US6807630B2 (en) 2000-12-15 2004-10-19 International Business Machines Corporation Method for fast reinitialization wherein a saved system image of an operating system is transferred into a primary memory from a secondary memory
US7120806B1 (en) 2001-10-31 2006-10-10 Western Digital Technologies, Inc. Method for setting a power operating mode transition interval of a disk drive in a mobile device based on application category
US6968450B1 (en) 2002-06-01 2005-11-22 Western Digital Technologies, Inc. Disk drive caching initial host requested data in non-volatile semiconductor memory to reduce start-up time of a host computer
US7017037B2 (en) 2002-06-27 2006-03-21 Microsoft Corporation Apparatus and method to decrease boot time and hibernate awaken time of a computer system utilizing disk spin-up-time
KR100484147B1 (ko) * 2002-07-26 2005-04-18 삼성전자주식회사 플래시 메모리 관리 방법
US7028174B1 (en) 2002-09-30 2006-04-11 Western Digital Technologies, Inc. Disk drive employing a non-volatile serial semiconductor memory for storing a control program for a microprocessor
US7082494B1 (en) 2002-12-24 2006-07-25 Western Digital Technologies, Inc. Disk drive executing a preemptive multitasking operating system comprising tasks of varying priority
US7139864B2 (en) 2003-12-30 2006-11-21 Sandisk Corporation Non-volatile memory and method with block management system
US7334082B2 (en) 2003-12-30 2008-02-19 Intel Corporation Method and system to change a power state of a hard drive
US7395452B2 (en) 2004-09-24 2008-07-01 Microsoft Corporation Method and system for improved reliability in storage devices
US7472222B2 (en) 2004-10-12 2008-12-30 Hitachi Global Storage Technologies Netherlands B.V. HDD having both DRAM and flash memory
US7516346B2 (en) 2004-10-28 2009-04-07 Nec Laboratories America, Inc. System and method for dynamically changing the power mode of storage disks based on redundancy and system load
US8452929B2 (en) 2005-04-21 2013-05-28 Violin Memory Inc. Method and system for storage of data in non-volatile media
WO2007019217A1 (en) * 2005-08-03 2007-02-15 Sandisk Corporation Nonvolatile memory with block management
US7409489B2 (en) 2005-08-03 2008-08-05 Sandisk Corporation Scheduling of reclaim operations in non-volatile memory
US7644231B2 (en) 2005-08-11 2010-01-05 International Business Machines Corporation Selective information caching on disk drive
US7509471B2 (en) 2005-10-27 2009-03-24 Sandisk Corporation Methods for adaptively handling data writes in non-volatile memories
US7613876B2 (en) 2006-06-08 2009-11-03 Bitmicro Networks, Inc. Hybrid multi-tiered caching storage system
US7411757B2 (en) 2006-07-27 2008-08-12 Hitachi Global Storage Technologies Netherlands B.V. Disk drive with nonvolatile memory having multiple modes of operation
KR100801015B1 (ko) 2006-08-30 2008-02-04 삼성전자주식회사 하이브리드 하드 디스크 드라이브와 데이터 저장 방법
US8015433B2 (en) 2006-09-13 2011-09-06 Hitachi Global Storage Technologies Netherlands B.V. Disk drive with nonvolatile memory for storage of failure-related data
KR100789406B1 (ko) * 2006-11-03 2007-12-28 삼성전자주식회사 플래시 메모리 시스템 및 그것의 가비지 컬렉션 방법
US9104599B2 (en) 2007-12-06 2015-08-11 Intelligent Intellectual Property Holdings 2 Llc Apparatus, system, and method for destaging cached data
KR100881187B1 (ko) 2007-01-16 2009-02-05 삼성전자주식회사 하이브리드 하드 디스크 드라이브, 하이브리드 하드 디스크드라이브를 내장하는 컴퓨터 시스템, 그리고 하이브리드하드 디스크 드라이브의 플래시 메모리 dma 회로
KR100866962B1 (ko) 2007-03-08 2008-11-05 삼성전자주식회사 Hdd를 하이브리드 hdd에서 노멀 hdd로 전환시키는방법
KR101297563B1 (ko) 2007-11-15 2013-08-19 삼성전자주식회사 스토리지 관리 방법 및 관리 시스템
US20090271562A1 (en) 2008-04-25 2009-10-29 Sinclair Alan W Method and system for storage address re-mapping for a multi-bank memory device
EP2315126A4 (en) 2008-08-11 2012-06-20 Fujitsu Ltd PEST INFORMATION COLLECTION PROGRAM, PASSING INFORMATION COLLECTION METHOD, AND PASSING INFORMATION COLLECTION SYSTEM
US8094500B2 (en) * 2009-01-05 2012-01-10 Sandisk Technologies Inc. Non-volatile memory and method with write cache partitioning
US8180995B2 (en) * 2009-01-21 2012-05-15 Micron Technology, Inc. Logical address offset in response to detecting a memory formatting operation
US8166233B2 (en) 2009-07-24 2012-04-24 Lsi Corporation Garbage collection for solid state disks
US8463826B2 (en) * 2009-09-03 2013-06-11 Apple Inc. Incremental garbage collection for non-volatile memories
US8677203B1 (en) * 2010-01-11 2014-03-18 Apple Inc. Redundant data storage schemes for multi-die memory systems
US8356137B2 (en) * 2010-02-26 2013-01-15 Apple Inc. Data storage scheme for non-volatile memories based on data priority
US8458417B2 (en) 2010-03-10 2013-06-04 Seagate Technology Llc Garbage collection in a storage device
US8595463B2 (en) 2010-09-15 2013-11-26 International Business Machines Corporation Memory architecture with policy based data storage
KR20120028581A (ko) 2010-09-15 2012-03-23 삼성전자주식회사 비휘발성 메모리 장치, 이의 동작 방법, 및 이를 포함하는 장치들
WO2012051600A2 (en) * 2010-10-15 2012-04-19 Kyquang Son File system-aware solid-state storage management system
US9176864B2 (en) * 2011-05-17 2015-11-03 SanDisk Technologies, Inc. Non-volatile memory and method having block management with hot/cold data sorting
CN102799535A (zh) * 2012-06-29 2012-11-28 记忆科技(深圳)有限公司 固态硬盘的数据处理方法及固态硬盘

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009503735A (ja) * 2005-08-03 2009-01-29 サンディスク コーポレイション フラッシュメモリシステムのデータ記憶容量の解放
JP2009181314A (ja) * 2008-01-30 2009-08-13 Toshiba Corp 情報記録装置およびその制御方法
JP2013504142A (ja) * 2009-09-08 2013-02-04 フュージョン−アイオー・インコーポレーテッド ソリッドステート記憶デバイス上にデータをキャッシングするための装置、システム、および方法
US8341339B1 (en) * 2010-06-14 2012-12-25 Western Digital Technologies, Inc. Hybrid drive garbage collecting a non-volatile semiconductor memory by migrating valid data to a disk
JP2012033002A (ja) * 2010-07-30 2012-02-16 Toshiba Corp メモリ管理装置およびメモリ管理方法
US20120059978A1 (en) * 2010-09-07 2012-03-08 Daniel L Rosenband Storage array controller for flash-based storage devices
US20120191936A1 (en) * 2011-01-21 2012-07-26 Seagate Technology Llc Just in time garbage collection
US20120198174A1 (en) * 2011-01-31 2012-08-02 Fusion-Io, Inc. Apparatus, system, and method for managing eviction of data
JP2014513850A (ja) * 2011-05-17 2014-06-05 サンディスク テクノロジィース インコーポレイテッド 小さな論理グループがアクティブなslcおよびmlcメモリパーティションに分散させられる不揮発性メモリおよび方法

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11880578B2 (en) 2017-03-23 2024-01-23 Netapp, Inc. Composite aggregate architecture

Also Published As

Publication number Publication date
US9430376B2 (en) 2016-08-30
EP2939120A1 (en) 2015-11-04
CN105074673B (zh) 2018-11-13
JP6266019B2 (ja) 2018-01-24
KR20150100862A (ko) 2015-09-02
US20140181432A1 (en) 2014-06-26
WO2014105229A1 (en) 2014-07-03
KR101894625B1 (ko) 2018-09-03
CN105074673A (zh) 2015-11-18
EP2939120A4 (en) 2016-06-22
HK1217371A1 (zh) 2017-01-06
EP2939120B1 (en) 2020-02-12

Similar Documents

Publication Publication Date Title
JP6266019B2 (ja) データストレージシステム向けの優先度に基づくガベージコレクション
US10761777B2 (en) Tiered storage using storage class memory
US8788778B1 (en) Garbage collection based on the inactivity level of stored data
US11355197B2 (en) Memory system with nonvolatile cache and control method thereof
US10216639B2 (en) Identification of blocks to be retained in a cache based on temperature
EP3384394B1 (en) Efficient implementation of optimized host-based garbage collection strategies using xcopy and multiple logical stripes
KR101717644B1 (ko) 고체-상태 저장 디바이스 상에서 데이터를 캐싱하는 장치, 시스템, 및 방법
CN107622022B (zh) 数据存储设备中的高速缓存超量配置
US8793429B1 (en) Solid-state drive with reduced power up time
US9785564B2 (en) Hybrid memory with associative cache
US20120166749A1 (en) Data management in solid-state storage devices and tiered storage systems
US20150127889A1 (en) Nonvolatile memory system
KR20100107456A (ko) 호스트 기록 작업과 캐시 플러싱을 균형화하기 위한 방법과 시스템
JP6139381B2 (ja) メモリシステムおよび方法
US9208101B2 (en) Virtual NAND capacity extension in a hybrid drive
CN110413537B (zh) 一种面向混合固态硬盘的闪存转换层及转换方法
JP2013242908A (ja) ソリッドステートメモリ、それを含むコンピュータシステム及びその動作方法
KR20100132244A (ko) 메모리 시스템 및 메모리 시스템 관리 방법
US20170228191A1 (en) Systems and methods for suppressing latency in non-volatile solid state devices
US10635581B2 (en) Hybrid drive garbage collection
US10013174B2 (en) Mapping system selection for data storage device
KR101017067B1 (ko) 낸드 플래시 메모리를 위한 지역성 기반의 가비지 컬렉션기법
KR101026634B1 (ko) 하이브리드 플래시 메모리의 데이터 저장 방법
WO2014185038A1 (ja) 半導体記憶装置およびその制御方法
Tong et al. Pgc: An Efficient Parallel Garbage Collection Scheme Based on Hot and Cold Data Separation

Legal Events

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

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20151217

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20160920

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20170706

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20170718

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20170807

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20170817

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170912

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

R150 Certificate of patent or registration of utility model

Ref document number: 6266019

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