JP2014519112A - 記憶デバイスにおいて少ないオーバープロビジョニングで低い書き込み増幅率を実現する方法 - Google Patents

記憶デバイスにおいて少ないオーバープロビジョニングで低い書き込み増幅率を実現する方法 Download PDF

Info

Publication number
JP2014519112A
JP2014519112A JP2014512851A JP2014512851A JP2014519112A JP 2014519112 A JP2014519112 A JP 2014519112A JP 2014512851 A JP2014512851 A JP 2014512851A JP 2014512851 A JP2014512851 A JP 2014512851A JP 2014519112 A JP2014519112 A JP 2014519112A
Authority
JP
Japan
Prior art keywords
ssd
zone
data
list
logical
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
JP2014512851A
Other languages
English (en)
Other versions
JP6016137B2 (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 JP2014519112A publication Critical patent/JP2014519112A/ja
Application granted granted Critical
Publication of JP6016137B2 publication Critical patent/JP6016137B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0616Improving the reliability of storage systems in relation to life time, e.g. increasing Mean Time Between Failures [MTBF]
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • 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
    • 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/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0652Erasing, e.g. deleting, data cleaning, moving of data to a wastebasket
    • 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/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • 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

Landscapes

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

Abstract

【解決手段】ソリッドステートドライブ(SSD)は、SSDに関連付けられた複数の論理アドレスのそれぞれに格納されるデータがどのくらい頻繁に更新されるのかに対応する頻度を判断し、頻度に基づいて論理アドレスからなる複数のグループを形成するSSD制御モジュールと、データを、複数のグループに基づいてSSD記憶領域のブロック内の物理アドレスに書き換えるメモリ制御モジュールとを含む。
【選択図】図1

Description

[関連出願の相互参照]
本願は、2012年5月2日に提出された米国登録実用新案第13/461,899号公報の優先権と、2011年5月24日に提出された米国仮出願第61/489,628号の便益とを主張する。上記出願の開示はそれらの全体が参照により本明細書に組み込まれる。
本開示は、記憶デバイスにおける書き込み増幅率の最小化に関する。
本セクションで示される背景技術は、本開示の背景を一般的に示すことを目的としている。この背景技術のセクションで説明される範囲において、本願発明の発明者らによる研究は、および提出時点において先行技術として見なされ得ない説明の態様は、本開示の先行技術として明示的にも暗示的にも認められない。
ソリッドステートドライブ(SSD)などの記憶デバイスは、1以上のフラッシュメモリデバイスを含みうる。あくまで例としてではあるが、フラッシュメモリデバイスはNANDベースのフラッシュメモリを含みうる。典型的には、フラッシュメモリの記憶領域は、アドレス指定可能なページにそれぞれ区分けされた複数のブロック内に配置されている。フラッシュメモリにおいてデータは、ブロック内でページ毎に書き込まれ格納される。逆に、データを書き換える、または消去する場合、対応するブロック全体が消去される。
特定のページに格納されたデータが更新される場合、対応するブロック内の有効なデータの全て(つまり、変更または更新されていないデータを格納するあらゆるページ)を消去し書き換える必要がある。無効なデータ(つまり、変更または更新され、よって既に他の場所に書き換えられたデータを格納するあらゆるページ)は単純に消去され得る。例えば、記憶デバイスに書き込みを行うホストは、論理ブロックアドレス(LBA)など論理アドレスにデータを書き込む。逆に、記憶デバイスは、当該論理アドレスに対応する物理アドレスに当該データをマッピングし書き込む。記憶デバイスが、特定の物理アドレス(つまり、ブロック内の1以上のページ)のデータを更新する必要がある場合、ブロック全体が消去され同じかまたは異なるブロックに書き込まれるが、対応する論理アドレスは同じままである。したがって、記憶デバイスを含むシステムは、ホストが行うよりも多く書き込み動作を行うことになる。
言い換えると、物理的書き込みの回数は、論理的書き込みの回数よりも多い。論理的書き込みの回数に対する物理的書き込みの回数の比率は、書き込み増幅率(WA)とも呼ばれ得る。書き込み増幅率が比較的高い(例えばWAが5より大きい)場合、記憶デバイスの劣化の度合いが高くなり、よって、記憶デバイスの寿命が短くなる。逆に、書き込み増幅率が比較的低い(例えばWAが1に近い)場合、記憶デバイスの性能および寿命が向上する。
記憶デバイスは、書き込み増幅率を最小化すべくウェアレベリングおよびオーバープロビジョニングを実施し得る。例えば、オーバープロビジョニングとは、ホストに関連付けられた論理アドレスの対応する数(つまり、ホストの論理容量)よりも多く、記憶デバイス内に物理的位置を設けることを指す。言い換えると、記憶デバイスは、ホストが含む論理的位置よりも多くの物理的位置を含む。余剰の物理的位置が設けられることによって、余剰物理容量を記憶デバイスに提供する。記憶デバイスの全物理容量(およびホストの論理容量)に対する記憶デバイスの余剰物理容量の比率は、オーバープロビジョニング比率(OPR)と呼ばれる。例えば記憶デバイスの全物理容量が100ギガバイト(GB)であり、ホストの論理容量が75GBである場合、OPRは25:100、つまり25%となる。
記憶デバイスのOPRは、記憶デバイスの書き込み増幅率に直接的に関連し得る。例えば、フラッシュメモリデータの1つのページに格納されるデータが更新される場合、現在当該データを格納しているブロック全体を消去する代わりに、当該データは、フラッシュメモリの異なるブロック内の余剰の物理的位置の空きページに書き換えられ得る。当該データを格納している元のページは、ブロック全体を完全に書き換えることを避けるべく、単に、古いまたは無効であるものとしてマークされ得る。この処理は、ブロック全体が無効なデータで埋められるまで、または、有効なデータに対する無効なデータの比率が閾値よりも大きくなるまで、および/または、クリーンアップおよびマージ動作(例えばガーベジコレクション)に従って、更なる書き込みに関して繰り返される。したがって、記憶デバイスのOPRが大きくなると、更なる書き換えの回数を減らすことが出来るので当該記憶デバイスの書き込み増幅率は小さくなる。あくまで例としてではあるが、10%のOPRは約5の書き込み増幅率に対応し、25%のOPRは約2の書き込み増幅率に対応し、50%のOPRは、1に近い書き込み増幅率に対応する。
ソリッドステートドライブ(SSD)は、SSDに関連付けられた複数の論理アドレスのそれぞれに格納されるデータがどのくらい頻繁に更新されるのかに対応する頻度を判断し、頻度に基づいて論理アドレスからなる複数のグループを形成するSSD制御モジュールと、データを、複数のグループに基づいてSSD記憶領域のブロック内の物理アドレスに書き換えるメモリ制御モジュールとを含む。
ソリッドステートドライブ(SSD)の動作方法は、SSDに関連付けられた複数の論理アドレスのそれぞれに格納されるデータがどのくらい頻繁に更新されるのかに対応する頻度を判断する段階と、頻度に基づいて論理アドレスからなる複数のグループを形成する段階と、データを、複数のグループに基づいてSSD記憶領域のブロック内の物理アドレスに書き換える段階とを含む。
本開示の適用可能な領域は、発明を実施するための形態、特許請求の範囲、および図面から明らかとなる。詳細な説明および特定の例は、例示のみを目的としており、本開示の範囲を限定することを目的としていない。
本開示は、発明を実施するための形態および添付の図面から、より完全に理解されるであろう。
本開示の原理に従う、記憶ドライブシステムの機能ブロック図である。 本開示の原理に従う、ソリッドステートドライブ制御モジュールの機能ブロック図である。 本開示の原理に従う、論理アドレスゾーンリストの例を示す。 本開示の原理に従う、論理アドレスゾーンリストの例を示す。 ゾーンリストに従って再配置することなくデータを格納するフラッシュメモリブロックを示す。 ゾーンリストに従って再配置することなくデータを格納するフラッシュメモリブロックを示す。 ゾーンリストに従ってデータを格納するフラッシュメモリブロックを示す。 ゾーンリストに従ってデータを格納するフラッシュメモリブロックを示す。 本開示の原理に従う、ソリッドステートドライブ制御方法を示す。
本開示に係るシステムは、オーバープロビジョニングを少なくしつつ、記憶デバイス(例えば、NANDベースのフラッシュメモリを含むソリッドステートドライブまたはSSD)の書き込み増幅率(WA)を小さくする。あくまで例としてではあるが、記憶デバイスは、ホストに対して1テラバイト(TB)の論理容量を提供し、オーバープロビジョニング比率(OPR)に対応する余剰物理容量は16ギガバイト(GB)だけであり得る。これにより、1.1という比較的低い書き込み増幅率が実現され得る。
システムは、より動的である(つまり、頻繁に書き込まれ、書き換えられる)記憶デバイスの論理領域に対しより多くの余剰物理容量を割り当てる。逆に、システムはより静的な(つまり頻繁に書き換えられない)記憶デバイスの論理領域に対しより少ない余剰物理容量を割り当てる。結果的に、OPRはより動的な論理領域に関して比較的高くなり、オーバープロビジョニングをそれ程必要とせず、よってそれ程高い書き込み増幅率を必要としない、より静的な論理領域に関して比較的低くなる。システムは、ホストの利用パターンに動的に基づいて、各論理領域に関してOPRを調整してよい。例えば、利用パターンはホストのオペレーティングシステム、ホストのアプリケーション、および、特定の論理領域の利用に関連する他の要因に基づいて異なり得る。
本開示はSSDに関するシステムを説明するが、当該システムの原理は、書き込み性能を向上させ、クリーンアップ/マージ動作のオーバーヘッドを低減し、オーバープロビジョニングに関連するコストを削減すべく、ハードディスクドライブ(HDD)など他の記憶デバイスに関して実装されてもよい。
図1において、記憶ドライブシステム100は、ホストインタフェース112を介してホスト108と通信を行うソリッドステートドライブ(SSD)104を含む。ホストインタフェース112は、SSD104へ格納されるデータをホスト108から(例えば書き込み動作を介して)受信し、SSD104に格納されたデータをホスト108へ(例えば読み取り動作を介して)送信する。
SSD104は、メモリ制御モジュール120と、SSD制御モジュール124と、フラッシュメモリアレイ128などのSSD記憶領域とを含む。書き込み動作の間、メモリ制御モジュール120はホスト108からのデータをフラッシュメモリアレイ128に書き込む。例えば、書き込み動作によって、論理ブロックアドレス(LBA)などの論理アドレスにデータが書き込まれる。メモリ制御モジュール120は、フラッシュメモリアレイ内の物理アドレスに各LBAをマッピングし、対応する物理アドレスに当該データを書き込む。あくまで例としてではあるが、揮発性メモリ132、不揮発性メモリ136、または他のメモリ(例えば、メモリ制御モジュール120内のメモリ)が、各LBAを物理アドレスと関連付けるマッピング情報を格納する。逆に、読み取り動作の間、ホスト108はLBAからのデータを要求し、メモリ制御モジュール120は、フラッシュメモリアレイ128内の対応する物理アドレスから当該データを読み取る。ホストインタフェース112、メモリ制御モジュール120、SSD制御モジュール124、揮発性メモリ132、および不揮発性メモリ136など、SSD104のコンポーネントのうち1以上は、システムオンチップ(SOC)に配置されてもよい。
フラッシュメモリアレイ128は、1以上のフラッシュメモリデバイス140−1、140−2、・・・、140−nを含み得る。これら1以上のフラッシュメモリデバイスは総じてフラッシュメモリデバイス140と呼ぶ。各フラッシュメモリデバイス140は、複数のブロック内にデータを格納し、複数のブロックのうちそれぞれは、複数のアドレス指定可能なページを含む。アドレス指定可能なページのうちのそれぞれは、物理アドレスに対応する物理メモリ位置である。そして物理アドレスは、LBAと関連付けられている。したがって、ホスト108により書き込まれる、または読み取られる各LBAは、複数のアドレス指定可能なページのうちの1つに従ってアクセスされる複数のフラッシュメモリデバイスのうちの1つのフラッシュメモリデバイス内の物理的位置に対応する。あくまで例としてではあるが、フラッシュメモリデバイス140はNANDベースのフラッシュメモリセルを実装し得る。
SSD制御モジュール124は、本開示の原理に従ってオーバープロビジョニングの割り当てを実施する。SSD制御モジュール124は、どのLBAが比較的静的であり、どのLBAが比較的動的であるかを判断する。言い換えると、比較的静的なLBAはそれ程頻繁に更新(例えば、書き込みおよび書き換え)がされず、比較的動的なLBAは、より頻繁に更新される。あくまで例としてではあるが、比較的静的なLBAは、プログラムまたはアプリケーションファイル、写真、音楽、若しくは他のマルチメディアファイルなどのデータに対応し得る。逆に、比較的動的なLBAは、ユーザによって頻繁に更新されるデータに対応し得る。
SSD制御モジュール124は、更新頻度に基づいて配置されたLBAの全てを含むリストを保持し得る。当該リストは、通常動作時には揮発性メモリ132に格納され得、データ損失を避けるべく、定期的に不揮発性メモリ136に格納され得る。リストは、それぞれ異なる更新頻度に対応する複数の異なるゾーンにLBAを配置し得る。各ゾーンは複数のLBAを含む。あくまで例としてではあるが、リストは、それぞれLBAの10%を含む10のゾーンを含みうる。若しくは、リストは、それぞれLBAの1%を含む100のゾーンを含みうる。SSD制御モジュール124は対応するゾーンに基づいてLBAを再配置する。あくまで例としてではあるが、SSD制御モジュール124は、不揮発性メモリ136に格納されたファームウェアを実行する1以上のプロセッサを含みうる。
図2において、例としてのSSD制御モジュール200は、LBAゾーン制御モジュール204と、低利用頻度(LRU)モジュール208とを含む。LBAゾーン制御モジュール204は、LBAのそれぞれホスト108によってどのくらい頻繁に更新されているかに基づいて、各ゾーンにどのLBAが属するかを判断する。SSD制御モジュール200がLBAをフラッシュメモリアレイ128内の対応する対応する物理アドレスにリマッピングする際、SSD制御モジュール200は、ゾーンに従ってフラッシュメモリアレイ128のブロック内にLBAを配置する。
例えば、SSD制御モジュール200は定期的に、ガーベジコレクションまたは他のメンテナンス手順の間、物理ゾーンへのLBAのマッピングに基づいてフラッシュメモリアレイ128に格納されたあらゆる有効なデータを再配置するようメモリ制御モジュール212に指示し得る。データの再配置には、1以上の第1ブロックのデータの部分(つまり、有効なデータに対応する部分)を第2ブロックに書き換え、第1ブロックのデータを消去することが含まれうる。したがって、フラッシュメモリアレイ128の特定の物理的位置に格納された有効なデータは、同じLBAを保持するが、LBAは新たな物理的位置にマッピングされ得る。
LBAゾーン制御モジュール204は、例えばLRUモジュール208から受信した情報に基づいて、どのLBAをどのゾーンに割り当てるかを決定する。LRUモジュール208は、各LBAがどれだけ直近で用いられたかに基づいて順序が付けられたLRUリストにLBAを配置するLRUエンジンまたはアルゴリズムを実装してよい。例えば、LRUリストの最上部のLBAは、書き込みが行われたのが最も前であるLBAに対応し、LRUリストの最下部のLBAは、書き込みが行われたのが最も最近であるLBAに対応する。あくまで例としてではあるが、あるLBAに書き込みが行われると、当該LBAは、LRUリストの最下部に下げられる。このようにして、書き込みが行われたのが最も最近であるLBAは、LRUリストの最下部近くに配置されるようになり、比較的動的なLBAに対応することとなる。逆に、書き込みが行われたのが最も前であるLBAは、LRUリストの最上部近くに配置されるようになり、比較的静的なLBAに対応することとなる。LRUモジュール208はメモリ216内にLRUリストを格納してもよく、および/または、当該LRUリストをLBAゾーン制御モジュール204へ送信してもよい。あくまで例としてではあるが、メモリ216は、図1に示すように揮発性メモリ132および/または不揮発性メモリ136に対応してもよい。
LBAゾーン制御モジュール204は、LRUモジュール208から受信したLRUリストに基づいてゾーンリストを保持してもよい。例えば、ゾーンリストは、それぞれLBAの10%を含む10のゾーンを含みうる。あくまで例としてではあるが、書き込みを行われたのが最も前であるLBAの最初の10%に対応するLBA(つまり、LRUリストの最上部の10%のLBA)は、ゾーン1に割り当てられる。書き込みを行われたのが最も前であるLBAの次の10%は、ゾーン2に割り当てられる。逆に、最後の10%(つまり、LRUリストの最下部の10%のLBA)は、ゾーン10に割り当てられる。
図3Aは、10のゾーンを含むゾーンリスト300の例を示す。図3Bは、100のゾーンを含むゾーンリスト320の例を示す。用いられるゾーンの数はどのようなものであってもよいことは理解されよう。例えば、ゾーンリストは2つのゾーンだけを含んでもよく、この場合、1つのゾーンは静的ゾーンを表し、他方のゾーンは動的ゾーンを表してもよい。さらに、LBAはどのような割合で各ゾーンに割り当てられてもよい。言い換えると、各ゾーンは同じ数のLBAを含んでいる必要はない。例えば、ゾーンリストが2つのゾーンのみを含む場合、静的ゾーンを表す第1ゾーンは75%のLBAを含んでもよい。逆に、動的ゾーンを表す第2ゾーンは、25%のLBAを含んでもよい。
図4Aおよび図4Bは、ゾーンリストに従って再配置することなくデータを格納したフラッシュメモリブロック400、404、408、412を示す。説明を単純にすべく、2つのゾーン(ゾーン1およびゾーン2)のみが用いられているが、ゾーンの数はどのようなものであってもよい。同様に、9つのアドレス指定可能なページをそれぞれ有する4つのブロックのみが示されているが、ブロックの数も、各ブロックが有するアドレス指定可能なページの数もどのようなものであってもよい。
図4Aに示すように、ブロック400は、1A、1B、および1Cを含むゾーン1のデータ、並びに、2Aおよび2Bを最初は含むゾーン2のデータを格納し得る。続いて、ゾーン2のデータは更新され、よって、2A'および2B'として書き換えられる。したがって、2Aおよび2Bに対応するページは無効なデータを格納していることになる。ゾーン2のデータが更新され再び2A''および2B''として書き換えられた場合、2A'および2B'に対応するページも無効なデータを格納していることになる。したがって、ゾーン2のデータを何度か書き換えた後、ブロック400は全体が埋められた状態になるが、無効なデータを格納する4つのページを含むことになる。
同様に、ブロック404は、1D、1E、および1Fを含むゾーン1のデータ、並びに、2C、2D、および2Eを最初は含むゾーン2のデータを格納し得る。続いて、ゾーン2のデータは更新され、同じ論理アドレス2C、2D、および2Eにそれぞれ対応する2C'、2D'、および2E'として書き換えられる。したがって、2C、2D、および2Eに対応するページは、無効なデータを格納していることになる。したがって、ゾーン2のデータの1以上の書き換えの後、ブロック404は全体が埋められた状態になるが、無効なデータを格納する3つのページを含むことになる。ブロック408、412は全く埋められてない状態であり、ブロック400、404のためのオーバープロビジョニングとして用いられ得る。言い換えると、クリーンアップ/マージ動作の前にブロック400、404内のゾーン2のデータのいずれかに対して更なる書き換えが行われる場合、ブロック400、404に有効なゾーン1のデータと無効なゾーン2のデータとが依然として格納されたまま、ゾーン2のデータはブロック408、412に書き換えられる。
図4Bを参照すると、ブロック400、404に格納された有効なデータはブロック408、412に書き換えられ、ブロック400、404は完全に消去される。したがって、ゾーン1のデータ、および有効なゾーン2までもが消去され書き換えられる。しかし、続いて行われるゾーン2のデータの更新により、新たなゾーン2のデータおよび無効なゾーン2のデータによって、ブロック408、412が比較的直ぐ埋められることになる。よって、書き換えに対応するべく更なるオーバープロビジョニングが必要となり、そのようなオーバープロビジョニングに対応すべく、複数のブロックが必要となるであろう。さらに、ゾーン1のデータが静的であり有効であるにも関わらず、更新されるゾーン2のデータによってブロックの1つが埋められる度に、ゾーン1のデータを格納する各ページの消去が行われ書き換えられる。
示されるように、2つのブロックからのデータが2つの異なるブロックに書き換えられているが、2以上のブロックからのデータを1つのブロック内で組み合わせてもよく、若しくは、最適な格納となるよう再配置されてもよい。
図5Aおよび図5Bは、ゾーンリストに従ってデータを格納するフラッシュメモリブロック500、504、508、512を示す。図5Aに示すように、ブロック500は、1A、1B、および1Cを含むゾーン1のデータ、並びに、2Aおよび2Bを最初は含むゾーン2のデータを格納し得る。続いて、ゾーン2のデータは更新され、よって、2A'および2B'として書き換えられる。したがって、2Aおよび2Bに対応するページは無効なデータを格納していることになる。ゾーン2のデータが更新され再び2A''および2B''として書き換えられた場合、2A'および2B'に対応するページも無効なデータを格納していることになる。したがって、ゾーン2のデータを何度か書き換えた後、ブロック500は全体が埋められた状態になるが、無効なデータを格納する4つのページを含むことになる。
同様に、ブロック504は、1D、1E、および1Fを含むゾーン1のデータ、並びに、2C、2D、および2Eを最初は含むゾーン2のデータを格納し得る。続いて、ゾーン2のデータは更新され、2C'、2D'、および2E'として書き換えられる。したがって、2C、2D、および2Eに対応するページは、無効なデータを格納していることになる。したがって、ゾーン2のデータの1以上の書き換えの後、ブロック504は全体が埋められた状態になるが、無効なデータを格納する3つのページを含むことになる。ブロック508、512は全く埋められてない状態であり、ブロック500、504のためのオーバープロビジョニングとして用いられ得る。言い換えると、クリーンアップ/マージ動作の前にブロック500、504内のゾーン2のデータのいずれかに対して更なる書き換えが行われる場合、ブロック500、504に有効なゾーン1のデータと無効なゾーン2のデータが依然として格納されたまま、ゾーン2のデータはブロック508、512に書き換えられる。
図5Bを参照すると、ブロック500、504に格納された有効なデータはブロック508、512に書き換えられ、ブロック500、504は完全に消去される。しかし、図4Aおよび図4Bとは対照的に、データはゾーンリストに従って再配置される。例えば、図3Aおよび図3Bに示されるLRUリストおよびゾーンリストに基づいて、ゾーン1のデータはまとめてブロック508に格納される。逆に、LRUリストおよびゾーンリストに基づいてゾーン2のデータはまとめてブロック512に格納される。
したがって、ブロック508に格納された静的なゾーン1のデータは書き換えを避けられ、1つのブロックがゾーン1のデータとゾーン2のデータとの両方を格納する場合よりもより長い時間、オーバープロビジョニングを避けることが出来る。例えば、特定のタイプのゾーン1のデータは更新されることはない。続いて行われる他のブロックの書き込み動作または書き換え動作の間、更なるゾーン1のデータが、ブロック508内の空きページに書き込まれ得る。しかし、ブロック508のためのオーバープロビジョニングが低減されることを理解されよう。より詳細には、ブロック508に格納されたデータは静的なゾーン1のデータのみであるので、更新は頻繁には行われない。よって、ブロック508が無効なデータで埋められてしまい、オーバープロビジョニングされた記憶領域を必要とする可能性は非常に低くなる。
逆に、ブロック512に格納された動的なゾーン2のデータは、より頻繁に更新され得る。よって、ブロック512が無効なデータで埋められてしまい、オーバープロビジョニングされた記憶領域を必要とする可能性はより高い。しかし、ブロック508がオーバープロビジョニングを必要とする可能性が低いので、ブロック512、および/または動的なゾーン2のデータを格納する更なるブロックのためにオーバープロビジョニングを行うべく必要とされるのはブロック500、504のうちの一方だけであり得る。したがって、比較的少ない余剰容量が提供され、OPRは最小化され、オーバープロビジョニングされた記憶領域は動的ゾーンに含まれるLBAに対して、より多く割り当てられ得る。例えば、OPRは5%未満であり得る。あくまで例としてではあるが、OPRは約1.5%であり得、約1.1の書き込み増幅率を実現し得る。
図6を参照すると、SSD制御方法600は604から開始される。方法600の608において、各論理アドレスがどのくらい頻繁に用いられているか判断される。例えば方法600において、論理アドレスのLRUリストが生成され保持される。方法600の612において、LRUリストに基づいて、異なる複数のゾーンに論理アドレスが配置される。各ゾーンは、それぞれの論理アドレスがどのくらい頻繁に更新されているか(つまり、書き込まれているか)に対応する。例えば、方法600において、論理アドレスのためのゾーンリストが生成され保持される。方法600の616において、フラッシュメモリの複数のブロックに対してクリーンアップ/マージ、または他のメンテナンス動作が行われる。方法600の620において、複数のブロックに格納されたデータがゾーンリストに基づいて書き換えられる。例えば、方法600において、同じゾーン内の論理アドレスに対応するデータは、同じブロックに格納される。方法600は624で終了する。
上記の説明は、単なる例に過ぎず、本開示の内容、用途または使用を限定することを意図していない。本開示の幅広い教示を、様々な形式で実装可能である。したがって、本開示は特定の例を含むが、本開示の真の範囲はこれら特定の例に限定されず、図面、明細書および添付の特許請求の範囲を参照することにより、その他の変形例が明らかとなるであろう。説明を明確にすることを目的として、図面において同様な要素には同じ参照番号が付与されている。本明細書で使用されている、"A、BおよびCのうちの少なくとも1つ"という表現は、非排他的論理ORを使用して、論理の(AまたはBまたはC)という意味に解釈されるべきである。方法の1以上の段階は、本開示の原理を変更することなく、異なる順番で(または同時に)実行されてもよいことは明らかである。
本明細書で用いるモジュールという用語は、特定用途向け集積回路(ASIC)、電子回路、組み合せ論理回路、フィールドプログラマブルゲートアレイ(FPGA)、コードを実行するプロセッサ(共有、専用、またはグループ)、説明される機能を実現する適した他のハードウェアコンポーネント、或いはシステムオンチップなどにおけるこれらのいくつかまたは全ての組み合せを言及してもよく、これらの一部であってもよく、若しくはこれらを含んでもよい。モジュールという用語は、プロセッサによって実行されるコードを格納するメモリ(共有、専用、グループ)を含んでもよい。
上記で用いたコードという用語は、ソフトウェア、ファームウェア、および/またはマイクロコードを含んでもよく、プログラム、ルーチン、機能、クラス、および/またはオブジェクトを指してもよい。上記で用いた共有という用語は、複数のモジュールからのいくつか、または全てのコードが、単一の(共有)プロセッサを用いて実行され得ることを意味する。加えて、複数のモジュールからのいくつか、または全てのコードは、単一の(共有)メモリに格納されてもよい。上記で用いたグループという用語は、単一のモジュールからのいくつかの、または全てのコードが、1グループの複数のプロセッサを用いて実行され得ることを意味する。加えて、単一のモジュールからのいくつか、または全てのコードは、1グループの複数のメモリに格納されてもよい。
本明細書で開示した装置および方法は、1以上のプロセッサにより実行される1以上のコンピュータプログラムによって実行され得る。コンピュータプログラムは、非一時的な有形のコンピュータ可読媒体に格納された、プロセッサ実行可能命令を含む。コンピュータプログラムは格納されたデータも含む。非一時的な有形のコンピュータ可読媒体の非限定的な例は、不揮発性メモリ、磁気記憶装置、および光学記憶装置を含む。

Claims (16)

  1. ソリッドステートドライブ(SSD)であり、
    前記SSDに関連付けられた複数の論理アドレスのそれぞれに格納されるデータがどのくらい頻繁に更新されるのかに対応する頻度を判断し、前記頻度に基づいて前記複数の論理アドレスからなる複数のグループを形成するSSD制御モジュールと、
    前記データを、前記複数のグループに基づいてSSD記憶領域のブロック内の物理アドレスに書き換えるメモリ制御モジュールと
    を備え、
    前記複数のグループを形成することは、
    前記複数の論理アドレスのそれぞれに格納される前記データがどのくらい頻繁に更新されるのかを示す、最も直近で使用されてない前記複数の論理アドレスのリスト(LRUリスト)を生成することと、
    前記LRUリスト内の前記複数の論理アドレスの異なる範囲にそれぞれ対応し、前記複数の論理アドレスのうち少なくとも1つをそれぞれ含む複数のゾーンを含むゾーンリストを前記LRUリストに基づいて生成することと
    を含む、ソリッドステートドライブ。
  2. 前記SSD制御モジュールは、
    前記LRUリストを生成するLRUモジュールと、
    前記ゾーンリストを生成するゾーン制御モジュールと
    を有する、請求項1に記載のソリッドステートドライブ。
  3. 前記複数の論理アドレスは複数の論理ブロックアドレス(LBA)を含む、請求項1または2に記載のソリッドステートドライブ。
  4. 前記メモリ制御モジュールは、前記複数のゾーンのうち第1ゾーンに関連付けられた第1論理アドレスの第1データを、前記SSD記憶領域の第1ブロックに書き換え、前記複数のゾーンのうち第2ゾーンに関連付けられた第2論理アドレスの第2データを、前記SSD記憶領域の第2ブロックに書き換える、請求項1から3のいずれか1項に記載のソリッドステートドライブ。
  5. 前記SSD記憶領域はフラッシュメモリアレイを含む、請求項1から4のいずれか1項に記載のソリッドステートドライブ。
  6. 前記SSD制御モジュールは、ファームウェアを実行するプロセッサを有する、請求項1から5のいずれか1項に記載のソリッドステートドライブ。
  7. 前記LRUリストおよび前記ゾーンリストは、揮発性メモリと不揮発性メモリとのうち少なくとも一方に格納される、請求項1から6のいずれか1項に記載のソリッドステートドライブ。
  8. 前記SSDに関連付けられた第1の数の物理アドレスは、第2の数の前記複数の論理アドレスよりも多く、
    前記第1の数と前記第2の数との差の、前記第2の数に対する比率は5%未満である、請求項1から7のいずれか1項に記載のソリッドステートドライブ。
  9. 前記SSDの書き込み増幅率は約1.1である、請求項8に記載のソリッドステートドライブ。
  10. ソリッドステートドライブ(SSD)の動作方法であり、
    前記SSDに関連付けられた複数の論理アドレスのそれぞれに格納されるデータがどのくらい頻繁に更新されるのかに対応する頻度を判断する段階と、
    前記頻度に基づいて前記複数の論理アドレスからなる複数のグループを形成する段階と
    前記データを、前記複数のグループに基づいてSSD記憶領域のブロック内の物理アドレスに書き換える段階と
    を備え、
    前記複数のグループを形成する段階は、
    前記SSDに関連付けられた前記複数の論理アドレスのそれぞれに格納される前記データがどのくらい頻繁に更新されるのかを示す、最も直近で使用されてない前記複数の論理アドレスのリスト(LRUリスト)を生成する段階と、
    前記LRUリスト内の前記複数の論理アドレスの異なる範囲にそれぞれ対応し、前記複数の論理アドレスのうち少なくとも1つをそれぞれ含む複数のゾーンを含むゾーンリストを前記LRUリストに基づいて生成する段階と
    を有する方法。
  11. 前記複数の論理アドレスは複数の論理ブロックアドレス(LBA)を含む、請求項10に記載の方法。
  12. 前記複数のゾーンのうち第1ゾーンに関連付けられた第1論理アドレスの第1データを、前記SSD記憶領域の第1ブロックに書き換え、前記複数のゾーンのうち第2ゾーンに関連付けられた第2論理アドレスの第2データを、前記SSD記憶領域の第2ブロックに書き換える段階をさらに備える、請求項10または11に記載の方法。
  13. 前記SSD記憶領域はフラッシュメモリアレイを含む、請求項10から12のいずれか1項に記載の方法。
  14. 前記LRUリストおよび前記ゾーンリストは、揮発性メモリと不揮発性メモリとのうち少なくとも一方に格納される、請求項10から13のいずれか1項に記載の方法。
  15. 前記SSDに関連付けられた第1の数の物理アドレスは、第2の数の前記複数の論理アドレスよりも多く、
    前記第1の数と前記第2の数との差の、前記第2の数に対する比率は5%未満である、請求項10から14のいずれか1項に記載の方法。
  16. 前記SSDの書き込み増幅率は約1.1である、請求項15に記載の方法。
JP2014512851A 2011-05-24 2012-05-02 ソリッドステートドライブおよびその動作方法 Active JP6016137B2 (ja)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201161489628P 2011-05-24 2011-05-24
US61/489,628 2011-05-24
PCT/US2012/036070 WO2012161933A1 (en) 2011-05-24 2012-05-02 Method for storage devices to achieve low write amplification with low over provision
US13/461,899 US9678676B2 (en) 2011-05-24 2012-05-02 Method for storage devices to achieve low write amplification with low over provision
US13/461,899 2012-05-02

Publications (2)

Publication Number Publication Date
JP2014519112A true JP2014519112A (ja) 2014-08-07
JP6016137B2 JP6016137B2 (ja) 2016-10-26

Family

ID=46177486

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014512851A Active JP6016137B2 (ja) 2011-05-24 2012-05-02 ソリッドステートドライブおよびその動作方法

Country Status (6)

Country Link
US (1) US9678676B2 (ja)
EP (1) EP2715510B1 (ja)
JP (1) JP6016137B2 (ja)
KR (1) KR101982251B1 (ja)
CN (1) CN103562842B (ja)
WO (1) WO2012161933A1 (ja)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014179078A (ja) * 2013-03-13 2014-09-25 Seagate Technology Llc 記憶デバイスおよび記憶空間割当方法
CN105159622A (zh) * 2015-10-22 2015-12-16 湖南国科微电子股份有限公司 一种减小ssd读写io时延的方法与系统
JP2018060575A (ja) * 2011-11-14 2018-04-12 シーゲイト テクノロジー エルエルシーSeagate Technology LLC 記憶デバイスファームウェアおよび製造用ソフトウェア
JP2018516410A (ja) * 2015-12-17 2018-06-21 ▲騰▼▲訊▼科技(深▲セン▼)有限公司 ストレージデバイスを管理するための方法および装置
JP2018200720A (ja) * 2018-08-27 2018-12-20 東芝メモリ株式会社 メモリシステム

Families Citing this family (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9501392B1 (en) * 2011-05-12 2016-11-22 Avago Technologies General Ip (Singapore) Pte. Ltd. Management of a non-volatile memory module
US8699175B1 (en) * 2012-07-20 2014-04-15 Western Digital Technologies, Inc. Disk drive mapping low frequency write addresses to circular buffer write zone
US9141532B2 (en) * 2012-12-26 2015-09-22 Western Digital Technologies, Inc. Dynamic overprovisioning for data storage systems
US10445229B1 (en) * 2013-01-28 2019-10-15 Radian Memory Systems, Inc. Memory controller with at least one address segment defined for which data is striped across flash memory dies, with a common address offset being used to obtain physical addresses for the data in each of the dies
KR102098697B1 (ko) 2013-03-15 2020-04-08 삼성전자주식회사 비휘발성 메모리 시스템, 이를 포함하는 시스템 및 상기 비휘발성 메모리 시스템의 적응적 사용자 저장 영역 조절 방법
US20140359196A1 (en) * 2013-05-31 2014-12-04 Daniel J. Ragland On-the-fly performance adjustment for solid state storage devices
CN104850500B (zh) * 2014-02-14 2019-06-07 腾讯科技(深圳)有限公司 用于数据存储的数据处理方法和装置
US10025530B2 (en) 2014-09-29 2018-07-17 Western Digital Technologies, Inc. Optimized garbage collection for solid-state storage devices
US9792069B2 (en) 2014-09-29 2017-10-17 Western Digital Technologies, Inc. Offline deduplication for solid-state storage devices
US9129628B1 (en) 2014-10-23 2015-09-08 Western Digital Technologies, Inc. Data management for data storage device with different track density regions
US10691531B2 (en) * 2014-12-04 2020-06-23 Western Digital Technologies, Inc. Systems and methods for multi-zone data tiering for endurance extension in solid state drives
US9678677B2 (en) 2014-12-09 2017-06-13 Intel Corporation Determining adjustments to the spare space in a storage device unavailable to a user based on a current consumption profile of a storage device
CN104461397A (zh) * 2014-12-19 2015-03-25 上海新储集成电路有限公司 一种固态硬盘及其读写方法
US9760281B2 (en) * 2015-03-27 2017-09-12 Intel Corporation Sequential write stream management
JP6403162B2 (ja) * 2015-07-23 2018-10-10 東芝メモリ株式会社 メモリシステム
CN106484331B (zh) 2015-09-29 2019-04-12 华为技术有限公司 一种数据处理方法、装置及闪存设备
US10592110B2 (en) * 2016-02-19 2020-03-17 International Business Machines Corporation Techniques for dynamically adjusting over-provisioning space of a flash controller based on workload characteristics
US10403357B2 (en) * 2017-09-18 2019-09-03 Nxp Usa, Inc. Resistive non-volatile memory and a method for sensing a memory cell in a resistive non-volatile memory
US11042490B2 (en) * 2018-11-15 2021-06-22 Micron Technology, Inc. Address obfuscation for memory
US11163482B2 (en) 2019-06-26 2021-11-02 International Business Machines Corporation Dynamic performance-class adjustment for storage drives
US11049570B2 (en) 2019-06-26 2021-06-29 International Business Machines Corporation Dynamic writes-per-day adjustment for storage drives
US11137915B2 (en) 2019-06-27 2021-10-05 International Business Machines Corporation Dynamic logical storage capacity adjustment for storage drives
CN110442555B (zh) * 2019-07-26 2021-08-31 华中科技大学 一种选择性预留空间的减少碎片的方法及系统
US11593258B2 (en) 2019-11-26 2023-02-28 Micron Technology, Inc. Enhanced filesystem support for zone namespace memory
US11379117B2 (en) * 2020-06-19 2022-07-05 Western Digital Technologies, Inc. Storage system and method for using host-assisted variable zone speed grade modes to minimize overprovisioning
CN113311992B (zh) * 2020-08-31 2024-01-23 阿里巴巴集团控股有限公司 固态硬盘预留空间的动态调整方法及装置
US11436138B2 (en) * 2020-10-21 2022-09-06 EMC IP Holding Company LLC Adaptive endurance tuning of solid-state storage system

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050144358A1 (en) * 2003-12-30 2005-06-30 Conley Kevin M. Management of non-volatile memory systems having large erase blocks
WO2007073536A2 (en) * 2005-12-21 2007-06-28 Sandisk Corporation Non-volatile memories and methods with memory allocation for a directly mapped file storage system
JP2007172447A (ja) * 2005-12-26 2007-07-05 Jatco Ltd フラッシュメモリ
US20090327592A1 (en) * 2008-06-30 2009-12-31 KOREA POLYTECHNIC UNIVERSITY Industry and Academic Cooperation Foundation Clustering device for flash memory and method thereof

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008310685A (ja) * 2007-06-15 2008-12-25 Hitachi Ltd 冗長性を維持した性能最適化を行うストレージシステム
US8180995B2 (en) 2009-01-21 2012-05-15 Micron Technology, Inc. Logical address offset in response to detecting a memory formatting operation
KR20110018157A (ko) * 2009-08-17 2011-02-23 삼성전자주식회사 플래시 메모리 장치의 액세스 방법
US8463983B2 (en) 2009-09-15 2013-06-11 International Business Machines Corporation Container marker scheme for reducing write amplification in solid state devices
CN101719099B (zh) 2009-11-26 2011-12-07 成都市华为赛门铁克科技有限公司 减小固态硬盘写入放大的方法及装置
US8677054B1 (en) * 2009-12-16 2014-03-18 Apple Inc. Memory management schemes for non-volatile memory devices
US8438334B2 (en) * 2009-12-22 2013-05-07 International Business Machines Corporation Hybrid storage subsystem with mixed placement of file contents
US8521972B1 (en) * 2010-06-30 2013-08-27 Western Digital Technologies, Inc. System and method for optimizing garbage collection in data storage
US8621328B2 (en) * 2011-03-04 2013-12-31 International Business Machines Corporation Wear-focusing of non-volatile memories for improved endurance

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050144358A1 (en) * 2003-12-30 2005-06-30 Conley Kevin M. Management of non-volatile memory systems having large erase blocks
JP2007517319A (ja) * 2003-12-30 2007-06-28 サンディスク コーポレイション 大きな消去ブロックを有する不揮発性メモリシステムの管理
WO2007073536A2 (en) * 2005-12-21 2007-06-28 Sandisk Corporation Non-volatile memories and methods with memory allocation for a directly mapped file storage system
JP2007172447A (ja) * 2005-12-26 2007-07-05 Jatco Ltd フラッシュメモリ
US20090327592A1 (en) * 2008-06-30 2009-12-31 KOREA POLYTECHNIC UNIVERSITY Industry and Academic Cooperation Foundation Clustering device for flash memory and method thereof

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
JPN6016032492; 石墨 紀孝,外2名: '"組込みシステム向けフラッシュメモリファイルシステムの設計"' 電子情報通信学会論文誌 Vol.J84-D-I No.1, 20010101, pp. 90-99, 社団法人 電子情報通信学会 *
JPN6016032494; Li-Pin Chang et al.: '"An Adaptive Striping Architecture for Flash Memory Storage Systems of Embedded Systems"' Proceedings of the Eighth IEEE Real-Time and Embedded Technology and Applications Symposium (RTAS'02 , 200209, pp. 187-196, IEEE *

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2018060575A (ja) * 2011-11-14 2018-04-12 シーゲイト テクノロジー エルエルシーSeagate Technology LLC 記憶デバイスファームウェアおよび製造用ソフトウェア
US10803970B2 (en) 2011-11-14 2020-10-13 Seagate Technology Llc Solid-state disk manufacturing self test
JP2014179078A (ja) * 2013-03-13 2014-09-25 Seagate Technology Llc 記憶デバイスおよび記憶空間割当方法
US9542306B2 (en) 2013-03-13 2017-01-10 Seagate Technology Llc Dynamic storage device provisioning
US10223010B2 (en) 2013-03-13 2019-03-05 Seagate Technology Llc Dynamic storage device provisioning
CN105159622A (zh) * 2015-10-22 2015-12-16 湖南国科微电子股份有限公司 一种减小ssd读写io时延的方法与系统
JP2018516410A (ja) * 2015-12-17 2018-06-21 ▲騰▼▲訊▼科技(深▲セン▼)有限公司 ストレージデバイスを管理するための方法および装置
US10198180B2 (en) 2015-12-17 2019-02-05 Tencent Technology (Shenzhen) Company Limited Method and apparatus for managing storage device
JP2018200720A (ja) * 2018-08-27 2018-12-20 東芝メモリ株式会社 メモリシステム

Also Published As

Publication number Publication date
CN103562842A (zh) 2014-02-05
US20120303873A1 (en) 2012-11-29
WO2012161933A1 (en) 2012-11-29
KR20140035426A (ko) 2014-03-21
EP2715510A1 (en) 2014-04-09
CN103562842B (zh) 2018-09-14
JP6016137B2 (ja) 2016-10-26
US9678676B2 (en) 2017-06-13
KR101982251B1 (ko) 2019-05-24
EP2715510B1 (en) 2018-05-02

Similar Documents

Publication Publication Date Title
JP6016137B2 (ja) ソリッドステートドライブおよびその動作方法
CN109240938B (zh) 存储系统以及控制非易失性存储器的控制方法
US10657047B2 (en) Data storage device and method of performing partial garbage collection
US10185658B2 (en) Efficient implementation of optimized host-based garbage collection strategies using xcopy and multiple logical stripes
US9229876B2 (en) Method and system for dynamic compression of address tables in a memory
US10915475B2 (en) Methods and apparatus for variable size logical page management based on hot and cold data
KR101185617B1 (ko) 외부 메모리의 부하를 줄일 수 있는 웨어 레벨링 기법에의한 플래시 파일 시스템의 동작 방법
CN109144887B (zh) 存储器系统及控制非易失性存储器的控制方法
US9753847B2 (en) Non-volatile semiconductor memory segregating sequential, random, and system data to reduce garbage collection for page based mapping
KR101457270B1 (ko) Lba 비트맵 사용
KR100823171B1 (ko) 파티션된 플래시 변환 계층을 갖는 컴퓨터 시스템 및플래시 변환 계층의 파티션 방법
US9104554B2 (en) Storage apparatus, storage controller and method for relocating data in solid state drive
US10949355B2 (en) Methods and apparatus for workload based dynamic cache control in SSD
JP6076506B2 (ja) ストレージ装置
US9990277B2 (en) System and method for efficient address translation of flash memory device
US20130103889A1 (en) Page-buffer management of non-volatile memory-based mass storage devices
US20120246397A1 (en) Storage device management device and method for managing storage device
KR20120030137A (ko) 영구 가비지 컬렉션을 갖는 메모리 시스템
JP2018101411A (ja) データストレージデバイスおよびその操作方法
US8489804B1 (en) System for using dynamic random access memory to reduce the effect of write amplification in flash memory
JP7392080B2 (ja) メモリシステム
US11055004B2 (en) Data storage device and control method for non-volatile memory
US11922048B2 (en) Memory controller managing map data and operating method thereof
US11182286B2 (en) Data storage device and control method for non-volatile memory
TWI713032B (zh) 資料儲存裝置以及非揮發式記憶體控制方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20150421

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20160527

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20160531

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160721

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20160915

R150 Certificate of patent or registration of utility model

Ref document number: 6016137

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R371 Transfer withdrawn

Free format text: JAPANESE INTERMEDIATE CODE: R371

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250