JP4812739B2 - 不揮発性データ保存装置の静的データ領域の検出方法、磨耗度平準化方法及びデータユニットの併合方法とその装置 - Google Patents

不揮発性データ保存装置の静的データ領域の検出方法、磨耗度平準化方法及びデータユニットの併合方法とその装置 Download PDF

Info

Publication number
JP4812739B2
JP4812739B2 JP2007323739A JP2007323739A JP4812739B2 JP 4812739 B2 JP4812739 B2 JP 4812739B2 JP 2007323739 A JP2007323739 A JP 2007323739A JP 2007323739 A JP2007323739 A JP 2007323739A JP 4812739 B2 JP4812739 B2 JP 4812739B2
Authority
JP
Japan
Prior art keywords
data
age
value
unit
recorded
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2007323739A
Other languages
English (en)
Other versions
JP2008152909A (ja
Inventor
聖 勳 鄭
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Samsung Electronics Co Ltd
Original Assignee
Samsung Electronics Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Samsung Electronics Co Ltd filed Critical Samsung Electronics Co Ltd
Publication of JP2008152909A publication Critical patent/JP2008152909A/ja
Application granted granted Critical
Publication of JP4812739B2 publication Critical patent/JP4812739B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/34Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
    • G11C16/349Arrangements for evaluating degradation, retention or wearout, e.g. by counting erase cycles
    • 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
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/34Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
    • G11C16/349Arrangements for evaluating degradation, retention or wearout, e.g. by counting erase cycles
    • G11C16/3495Circuits or methods to detect or delay wearout of nonvolatile EPROM or EEPROM memory devices, e.g. by counting numbers of erase or reprogram cycles, by using multiple memory areas serially or cyclically
    • 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/72Details relating to flash memory management
    • G06F2212/7211Wear leveling

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Read Only Memory (AREA)
  • Memory System (AREA)

Description

本発明は、磨耗度平準化方法に係り、さらに詳細には、不揮発性データ保存装置内のデータユニットに記録時間を表すエイジ値を保存することによって、静的データ領域を検出して磨耗度平準化の効果を極大化させる不揮発性データ保存装置の磨耗度平準化方法及びその装置に関する。
最近、モバイル機器を備える多様なマルチメディア装置として使われる不揮発性データ保存装置のうちフラッシュメモリは、低電力、小型化、少ない発熱、高い安定性などの理由で好まれる保存装置として広く使われており、一つのメモリに保存しうる空間のサイズも速い勢いで増大している。
しかし、フラッシュメモリは、一般的に遅いプログラミング(ライト)速度を有し、またデータが記録されたブロックを更新するためには、リライトの前に該当ブロックを消去せねばならないという短所がある。
しかし、消去動作の基本単位であるブロックごとに単一層セル(Single Level Cell:SLC)タイプの場合、100,000回、多重層セル(Multiple Level Cell:MLC)タイプの場合、10,000回の消去回数についての制約条件が存在する。このような制約条件は、ライト/リード作業の可能な他の不揮発性データ保存装置の場合にも適用され、したがって、後述する内容は、不揮発性データ保存装置に対して全般的に適用可能である。
前述した消去回数についての制約条件によって、メモリの特定ブロックに頻繁な更新が発生する場合、老化(aging)現象によってバッドブロックが発生し、メモリ全体的に急な寿命低下を招くことがある。これを防止するために、フラッシュメモリを運用するソフトウェアであるフラッシュ変換階層(Flash Translation Layer:FTL)は、消去動作を分散する磨耗度平準化技法を必要とし、磨耗度平準化方法によってメモリの寿命に多くの差が現れる。
図1は、従来の技術によるカウンティングランタイム方法によるフラッシュメモリのブロック当たりの消去回数を示す図である。
消去回数を管理するために使われる磨耗度平準化方法は、一般的にブロック当たりの消去回数を保存する方法を使用し、これは、2つに大別される。第1の方法は、保存装置であるフラッシュメモリ内に消去回数情報を含む管理テーブルを有していることであり、第2の方法は、フラッシュメモリではないフラッシュメモリを駆動しているシステム上のメモリ(RAM:ランダムアクセスメモリ)に消去回数情報を含む管理テーブルを有していることである。
第1の方法によれば、フラッシュメモリが内部に備えているブロックマップテーブルで、フラッシュメモリの物理的ブロックアドレスと共に消去回数を保存し、システム上のメモリには、マップテーブルキャッシュのみを保存する。したがって、フラッシュメモリの内部に全てのブロックについての消去回数を保存しているので、該当フラッシュメモリの正確な磨耗度平準化が可能であるが、追加された消去回数情報によってブロックマップテーブルのオーバーヘッドが2倍に増加するという短所がある。
第2の方法によれば、フラッシュメモリの内部にあるブロックマップテーブルには、物理的ブロックアドレスのみが保存され、消去回数情報は、システム上のメモリに消去回数配列形態に保存されて管理される。システムの電源が遮断されれば、消去回数情報が初期化されるので、該当フラッシュメモリの完壁な磨耗度平準化は困難であるが、フラッシュメモリの内部のブロックマップテーブルの更新に必要なオーバーヘッドはないという長所がある。
図1を参照するに、オーバーヘッドのない前記第1の方法によるとき、消去回数の管理による磨耗度平準化方法と、FTLが基本的に運用するアドレス再指定及び廃領域収集の機能によって全体的に消去回数が均一に現れる。ブロック番号0〜749を参照するに、各ブロック当たりの消去回数の差が大きくないということが分かる。
しかし、ブロック番号749〜953領域110を参照するに、消去回数が極めて微小であり、したがって、境界領域のブロックとの消去回数の差が非常に大きいということが分かる。前記領域110は、静的データ領域であって、データが長期間更新(変更)または消去(削除)されずに保管される領域である。このような、静的データ領域は、前記第2の方法によるとき、消去回数情報の初期化によって正確に検出され難い。
このように、第2の方法を利用した磨耗度平準化方法は、電源遮断時に磨耗度と関連した情報(消去回数情報)が何れも初期化されるので、静的データ領域110が広く存在する場合に、磨耗度平準化効果が急減するという短所がある。
図2は、従来の技術による、フラッシュメモリ内の静的領域の磨耗度平準化方法を説明するためのフローチャートである。図2を参照するに、従来の技術による静的領域の磨耗度平準化方法は、記録または消去動作をカウンティングし(210)、カウンティング値が、例えば、1000のような選択された数の倍数値であるとき、ランダムプロセスを発生させて(220)磨耗平準化方法を開始する(230)。磨耗平準化方法は、特定選択順序を設定するか(240)、またはランダムプロセスを発生させて(250)、ユニットを選択し(260)、選択されたユニットのデータを他のフリーユニットに移動させ(270)、選択されたユニットは消去する。
しかし、このような磨耗度平準化方法によれば、ランダム関数を利用してフラッシュメモリ全体に対してブロックの移動または交換を試みるので、静的データ領域でないブロックに対する交換が頻繁に発生する。すなわち、フリーユニット相互間の交換や更新が頻繁なブロックの交換が行われ、また、これによる不要な消去作業がさらに発生してフラッシュメモリ全体の寿命が短縮されるという問題点がある。
本発明は、前記問題点を解決するために案出されたものであって、本発明が解決しようとする技術的課題は、不揮発性データ保存装置内のデータユニットに記録時間を表すエイジ値を保存することによって、静的データ領域を正確に検出して磨耗度平準化の効果を極大化させる磨耗度平準化方法及びその装置を提供することである。
前記技術的課題を解決するために、本発明による不揮発性データ保存装置の静的データ領域の検出方法は、データを記録するために割当てられるユニットに記録時間を表すエイジ値を保存するステップと、前記ユニットに保存されたエイジ値を判読するステップと、前記判読されたエイジ値を通じて静的データ領域を判断するステップと、を含むことを特徴とする検出方法によって達成される。
前記エイジ値は、前記データが記録される時点の先後を相対的に示す値であることが望ましい。
また、前記エイジ値を保存するステップは、前記ユニットを消去した後、前記データを記録する時に共に保存することが望ましく、前記ユニットの余裕空間に保存することが望ましい。
前記エイジ値は、前記不揮発性データ保存装置に少なくとも一つ以上存在するエイジカウンタによって記録されることが望ましく、前記エイジカウンタは、データが記録されていないフリーユニットが割当てられる度に値が変更されることが望ましく、前記変更されるエイジカウンタの値は、順次に値が増加することがさらに望ましい。
また、前記エイジカウンタは、前記割当てられるフリーユニットに対するマッピングテーブルの余裕空間に記録され、前記マッピングテーブルが更新される時に共に保存されることが望ましい。
また、前記保存されるエイジ値は、前記エイジ値と共に保存するデータを記録する時の前記エイジカウンタ値であることが望ましい。
前記不揮発性保存装置は、フラッシュメモリであり、前記ユニットは、データブロックであり、前記エイジ値の保存される余裕空間は、前記データブロックの第1ページの余裕空間であり、前記エイジ値は、前記データブロック当たりの一つずつ存在することが望ましい。
一方、前記保存されたエイジ値を判読するステップは、前記不揮発性データ保存装置を駆動するシステムの遊休時間に行われることが望ましく、前記保存されたエイジ値を判読するステップは、前記データが割当てられた全ての前記ユニットに対して順次に行われることがさらに望ましい。
一方、前記判読されたエイジ値を通じて静的データ領域を判断するステップは、前記判読されたエイジ値と前記エイジカウンタの値とを比較するステップをさらに含むことが望ましく、前記判読されたエイジ値と前記エイジカウンタの値とを比較するステップは、前記判読されたエイジ値とエイジカウンタ値との差が所定の臨界値より大きい場合、前記判読されたエイジ値を有するユニットを静的データ領域と判断することが望ましい。
前記課題を解決するために、本発明による不揮発性データ保存装置の磨耗度平準化方法は、データを記録するために割当てられるユニットに記録時間を表すエイジ値を保存するステップと、前記保存されたエイジ値を判読するステップと、前記判読されたエイジ値を通じて静的データ領域を検出するステップと、前記検出された静的データ領域のデータを他のユニットに移動するステップと、を含むことを特徴とする磨耗度平準化方法によって達成される。
前記エイジ値は、前記データが記録される時点の先後を相対的に示す値であることが望ましく、前記エイジ値を保存するステップは、前記ユニットを消去した後、前記データを記録する時に共に保存し、前記ユニットの余裕空間に保存することが望ましい。
また、前記エイジ値は、前記不揮発性データ保存装置に少なくとも一つ以上存在するエイジカウンタによって記録され、前記エイジカウンタは、データが記録されていないフリーユニットが割当てられる度に値が変更されることが望ましい。
一方、前記保存されたエイジ値を判読するステップは、前記不揮発性データ保存装置を駆動するシステムの遊休時間に行われ、前記データが割当てられた全ての前記ユニットに対して順次に行われることが望ましい。
一方、前記判読されたエイジ値を通じて静的データ領域を検出するステップは、前記判読されたエイジ値と前記エイジカウンタの値とを比較するステップをさらに含み、前記判読されたエイジ値とエイジカウンタ値との比較結果、差値が所定の臨界値より大きい場合、前記判読されたエイジ値を有するユニットを静的データ領域として検出することが望ましい。
一方、前記検出された静的データ領域のデータを他のユニットに移動するステップは、前記静的データ領域のデータを他のデータが記録されていないフリーユニットに移動することが望ましく、前記移動したデータが記録されたユニットのエイジを更新するステップをさらに含むことがさらに望ましい。
また、前記検出された静的データ領域のデータを他のユニットに移動するステップは、前記静的データ領域のデータが記録されたユニットを他のデータが記録されているユニットと交換することが望ましく、前記静的データ領域のデータが録されたユニットと交換されるユニットは、前記静的データ領域のデータが記録されたユニットが有するエイジ値より相対的に高いエイジ値を有するユニットであることが望ましく、前記交換されたデータが記録されたユニットのエイジを更新するステップをさらに含むことがさらに望ましい。
前記検出された静的データ領域のデータを他のユニットに移動するステップは、前記不揮発性データ保存装置を駆動するシステムの遊休時間に行われることが望ましい。
前記のさらに他の技術的課題を解決するために、本発明による不揮発性データ保存装置のデータユニット併合方法は、データを記録するために割当てられるユニットに記録時間を表すエイジ値を保存するステップと、前記保存されたエイジ値を判読するステップと、前記判読されたエイジ値を通じて併合を行う複数の前記ユニットを検出するステップと、前記検出された複数の前記ユニットを併合するステップと、を含むことを特徴とする併合方法によって達成される。
前記エイジ値は、前記データが記録される時点の先後を相対的に表す値であることが望ましく、前記エイジ値を保存するステップは、前記ユニットを消去した後、前記データを記録する時に共に保存し、前記ユニットの余裕空間に保存することが望ましい。
前記エイジ値は、前記不揮発性データ保存装置に少なくとも一つ以上存在するエイジカウンタによって記録され、前記エイジカウンタは、データが記録されていないフリーユニットが割当てられる度に値が変更されることが望ましい。
一方、前記保存されたエイジ値を判読するステップは、前記不揮発性データ保存装置を駆動するシステムの遊休時間に行われ、前記データが割当てられた全ての前記ユニットに対して順次に行われることが望ましい。
一方、前記判読されたエイジ値を通じて併合を行う複数の前記ユニットを検出するステップは、前記判読されたエイジ値と前記エイジカウンタの値とを比較するステップをさらに含み、前記判読されたエイジ値とエイジカウンタ値との比較結果、差値が所定の臨界値より大きい場合、前記判読されたエイジ値を有するユニットを併合を行うユニットとして検出することが望ましい。
また、前記保存されたエイジ値を判読するステップは、前記システムが認識する論理的な単位ユニットに対する複数の前記データユニットのエイジ値の平均値を計算するステップをさらに含むことが望ましい。
前記判読されたエイジ値を通じて併合を行う複数の前記ユニットを検出するステップは、前記計算されたエイジ値の平均値が最も低い前記複数のデータユニットを、前記併合を行うユニットとして検出することが望ましい。
また、前記判読されたエイジ値を通じて併合を行う複数の前記ユニットを検出するステップは、前記併合に伴うコスト及び利得を計算するステップをさらに含み、前記コストは、前記併合によって移動するデータの量及び前記計算されたエイジ値の平均値であり、前記利得は、前記併合によって前記フリーユニットに収集される無効データの量であることが望ましい。
前記判読されたエイジ値を通じて併合を行う複数の前記ユニットを検出するステップは、前記計算されたコストに反比例し、前記利得に比例する優先順位値を計算するステップをさらに含み、前記優先順位値が最も高い前記複数のデータユニットを、前記併合を行うユニットとして検出することが望ましい。
前記課題を解決するために、本発明による不揮発性データ保存装置についての静的データ領域検出装置は、データを記録するために割当てられるユニットに記録時間を表すエイジ値を保存させるエイジ記録部と、前記ユニットに保存されたエイジ値を判読するエイジ判読部と、前記判読されたエイジ値を通じて静的データ領域を判断する静的データ判断部と、を備えることを特徴とする検出装置によって達成される。
前記課題を解決するために、本発明による不揮発性データ保存装置についての磨耗度平準化装置は、データを記録するために割当てられるユニットに記録時間を表すエイジ値を保存させるエイジ記録部と、前記保存されたエイジ値を判読するエイジ判読部と、前記判読されたエイジ値を通じて静的データ領域を検出する静的データ検出部と、前記検出された静的データ領域のデータを他のユニットに移動するデータユニット変換部と、を備えることを特徴とする磨耗度平準化装置によっても達成される。
前記課題を解決するために、本発明による不揮発性データ保存装置についてのデータユニット併合装置は、データを記録するために割当てられるユニットに記録時間を表すエイジ値を保存させるエイジ記録部と、前記保存されたエイジ値を判読するエイジ判読部と、前記判読されたエイジ値を通じて併合を行う複数の前記ユニットを検出する併合対象探索部と、前記検出された複数の前記ユニットを併合する併合部と、を備えることを特徴とする併合装置によっても達成される。
さらに、前記課題を解決するために、本発明による静的データ領域の検出方法または磨耗度平準化方法またはデータユニットの併合方法を具現するためのプログラムが記録されたコンピュータで読み取り可能な記録媒体を含む。
本発明による不揮発性データ保存装置の磨耗度平準化方法によれば、データユニットに保存されたエイジ値を利用して静的データ領域を検出するので、既存方法に比べて正確な静的データ領域を検出してデータを交換しうる。また、データユニットの併合方法によれば、併合演算の対象選定において、静的データ領域を一つの因子変数として追加して、併合対象として静的データが選択される確率を高めうる。したがって、本発明によれば、追加的なオーバーヘッドなしに正確な静的データ領域を検出し、これを移動して保存装置全体の磨耗度平準化の効果を向上させ、保存装置の寿命を延長しうる。
以下、添付された図面を参照して本発明の望ましい実施形態について詳細に説明する。以下で、たとえフラッシュメモリを実施形態として説明しているとしても、これを不揮発性データ保存装置に全般的に適用可能であるというのは、前述した通りである。
図3は、本発明の一実施形態による不揮発性データ保存装置の静的データ領域の検出方法を示すフローチャートである。図3を参照するに、まずデータユニットにエイジ値を保存する(310)。このとき、データユニットは、フラッシュメモリのデータブロックとなりうる。
エイジ値は、記録時間を表すパラメータであって、全てのデータブロックに対して消去(削除)後データが記録される時に一つずつ保存される。すなわち、ブロックの第1ページにデータが記録されるとき、該当第1ページの余裕空間にエイジ値を記録しうる。ブロック内のそれぞれのページは、ECC(Error Correction Code)情報を記録するための16Byteまたは64Byteの余裕空間を有している。ここで使われるエイジ値は、整数ほどの大きさであれば、十分であるので、前記余裕空間を十分に余裕に使用しうる。ここで、記録時間を表すエイジ値は、絶対的な時間ではなく、データブロック間の相対的な時間を表す。エイジ値は、フラッシュメモリのような不揮発性データ保存装置に少なくとも一つ以上存在するエイジカウンタによって記録されるが、データが保存される当時のエイジカウンタ値がエイジ値と記録される。一方、前記エイジカウンタは、フリーブロックのようなデータが記録されていないフリーユニットが割当てられる度に値が変更されるが、もし、エイジカウンタの値が順次に1ずつ増加すれば、例えば、20のエイジ値を有するブロックと21のエイジ値を有するブロックとは、相対的に前者が先に記録(ライト)されたという事実を意味する。このように、エイジ値は、データブロック間の相対的な記録順序の前/後を知らせる値である。重要なものは、前述したように、エイジ値の保存される時点が、ブロックが消去された後にデータが記録される時であるので、エイジ値が相対的に小さいという意味は、以前に消去されたという意味である。それと共に、フリーブロックが割当てられる時は、常にマッピングテーブルが更新されるので、前記エイジカウンタの値は、このとき、マッピングテーブルの更新と共にテーブル内の該当ページの余裕空間に記録される。したがって、エイジ及びエイジカウンタの運用による追加的なオーバーヘッドはなく、電源遮断の如何と関係なく、保存装置は、エイジという記録時間情報を常に保有しうる。
次いで、データブロックに保存されたエイジ値を判読する(320)。保存されたエイジ値を判読する作業は、システムの遊休時間を活用し、これは、データが割当てられた全てのブロックに対して順次に行われる。
最後に、判読されたエイジ値を通じて静的データ領域を判断する(330)。これについては、以下図4で詳細に説明する。
図4は、前記図3のステップ330をさらに具体的に示すフローチャートである。
静的データ領域を判断するために、まず判読されたエイジ値と現在エイジカウンタの値とを比較する(410)。エイジ値は、前述したように、該当ブロックにデータが記録された時間を代表する値であるので、これを現在エイジカウンタの値と比較するものである。それは、エイジカウンタ値は、フリーブロックが割当てられる度に増加された値に変更されるので、前記エイジカウンタ値と該当ブロックのエイジ値とを比較すれば、相対的な記録時間を計れるためである。
したがって、現在エイジカウンタの値から前記判読されたエイジ値を除算した結果値が所定の臨界値より大きい場合には(420)、それほど該当ブロックが使われたのが古くなり、その間に更新が起こらなかったということを意味する。ここで、臨界値は、システム設計者がメモリ保存装置の目的によって任意に定めることができ、実験的に最も最適化された性能を導出する値と定めることもできる。
したがって、前述した現在エイジカウンタの値から前記判読されたエイジ値を除算した結果値が所定の臨界値より大きい場合には、該当エイジ値を有するブロックを静的データ領域と判断しうる(430)。
図5は、本発明の一実施形態によるデータユニット別エイジ値とエイジカウンタ値とを示す図である。図5を参照して、図面で例示されるエイジ値とエイジカウンタの値との関係を説明する。まず、不揮発性データ保存装置であるフラッシュメモリ510があり、消去単位である物理的データブロックが0番〜2番まで現れている(511ないし513)。代表的に0番ブロックを参照するに、第1ページは、データ領域511aと余裕空間511bとで形成されている。前述したように、余裕空間511bに0番ブロックのエイジ値520が保存されており、その値は、12である。他のブロックを見れば、1番ブロック512のエイジ値520が5であり、2番ブロック513のエイジ値520が21である。一方、現在エイジカウンタ値530は、30であるので、最小のエイジ値520を有する1番ブロック512と比較するとき、1番ブロック512が割当てられた後に30−5=25個のフリーブロックがさらに割当てられたという事実が分かる。その間、1番ブロックは、消去されたことがないので、図5では、相対的に静的データ領域と判断しうる。
図6は、本発明の他の実施形態による不揮発性データ保存装置の磨耗度平準化方法を示すフローチャートであり、図7及び図8は、前記図6のステップ640の実施形態を具体的に示すフローチャートである。
動作過程を参照するに、まずデータを記録するために割当てられるユニット(データブロック)に記録時間を表すエイジ値を保存し(610)、保存されたエイジ値を判読した後(620)、判読されたエイジ値を通じて静的データ領域を検出する(630)のは、前述した通りである。
次いで、前記検出された静的データ領域のデータを他のブロックに移動するが(640)、これは、例示的に2つに分けうる。
第一には、静的データをフリーブロックに移動することである(710)。静的データ領域として検出されたブロックは、長時間更新または削除がなされないブロックであるので、このような静的データをフリーブロックに移動させ、以前に静的データを有していたブロックを新たなフリーブロックと指定すれば、次の更新時に新たに割当てられるフリーブロックとして使われて、消去作業と書き込み作業とがさらに頻繁に発生する。一方、以前にフリーブロックであった、静的データが移動したブロックは、前述した方式のように、第1ページの余裕空間に新たなエイジ値(現在エイジカウンタの値)が更新されて保存されるので(720)、以後に再び静的データとして検出される前には、前述したように強制移動されないであろう(もちろん、静的データ領域として残り続ける場合には、次回にもフリーブロックに移動される。)。
第二には、静的データ領域のデータが記録されたブロックを、他のデータが記録されているブロックと交換することである。このために、まず前記静的データの記録されたブロックが有するエイジ値より相対的に高いエイジ値を有するブロックを検出し(810)、検出されたブロックと前記静的データを有するブロックとを交換する(820)。次いで、交換されたデータが記録されたブロックのエイジをそれぞれ更新する(830)。静的データを有するブロックと判断されて検出された該当ブロックを相対的に高いエイジ値を有する他のブロックと交換する理由は、相対的に高いエイジ値を有するブロックは、最近に更新作業が起きたという意味を有するためである。このような場合は、再び更新が起きる確率が高いという意味を内包するので、このような交換によって磨耗度平準化が可能になる。それは、頻繁な更新は、廃領域収集作業をもたらし、これにより、フリーブロックに指定されて再び消去と書き込みとが反復されるためである。
静的データ領域を検出し、検出された静的データを移動または交換する作業は、システムの遊休時間に行われ、前記方法は、システムの目的によって設計者が選択して適用しうる。
図9は、本発明のさらに他の実施形態による不揮発性データ保存装置のデータユニット併合方法を示すフローチャートである。
フラッシュメモリ保存装置で一つの論理的ブロックは、頻繁な更新作業によって多数の物理的データブロックに分散されて保存される。このとき、更新によって使われない領域(無効ページ)を収集してフリーブロックを生成する方法として一般的に併合演算が使われる。すなわち、併合演算は、多数のブロックに分散保存されたデータを一つのブロックに収集し、既存のブロックは、フリーブロックとして収集して再使用する方法を提供する。
図9を参照するに、データを記録するために割当てられるユニットに記録時間を表すエイジ値を保存するステップ(910)と、保存されたエイジ値を判読するステップ(920)と、判読されたエイジ値を通じて併合を行う複数の前記ユニットを検出するステップ(930)と、前記検出された複数の前記ユニットを併合するステップ(940)とを含む。
すなわち、併合演算を行う対象ブロックの検出において、静的データの保存されたブロックが選択されるようにするのに特徴がある。それにより、併合演算を通じて静的データ領域のブロックをフリーブロックとして収集し、次の更新作業時に該当ブロックに消去及び書き込み作業を起こらして磨耗度平準化を図りうる。
図10は、本発明のさらに他の実施形態によるデータユニット併合過程を示す図である。
ファイルシステムで認識する論理的単位ユニット(4個のブロック)が例示的に現れている(1010ないし1040)。各ブロックは、4個のページを有すると仮定する。第1ブロック1010は、4個のページが全部無効ページであり、第2ブロック1020と第3ブロック1030とは、1個のページのみが有効ページであり、第4ブロックは、2個の有効ページと2個の無効ページとを有している。既に論理的単位ユニットが何れも使われてクリーンページがないので、次回の更新時には、これらの4個のブロックに対して併合演算がまず起きる。したがって、前述した4個の有効ページを何れも一つのフリーユニット1050に収集し、図面のように、1個の有効ブロック1060と4個のフリーブロック1070ないし1100とを生成する。
図11及び図12は、前記図9のステップ920及びステップ930の実施形態を具体的に示すフローチャートである。
前述した図10のような併合演算は、静的データ領域を利用して2つの方法で行われる。
第1の方法は、論理的単位ユニットに対する多数のデータブロックのエイジ値の平均値を求め、最も小さい平均値を有するブロックを併合対象と選定することである。他の論理的単位ユニットと比較して、エイジ値の平均値が相対的に小さいという意味は、それほど静的データとしての論理的データという意味であるので、これらの静的データを併合演算の対象と選定してフリーブロックを収集することが本発明の磨耗度平準化の目的に符合するためである。したがって、システムが認識する論理的単位ユニットに対するデータユニットのエイジ値の平均値を計算し(1110)、これを通じて計算された平均値が最も小さいデータユニットを併合演算を行うユニットとして検出する(1120)。
第2の方法は、さらに高速に大量記録(ライト)できるようにコスト及び利得を考慮した方法である。概略的には、システムの論理的単位ユニットに対するデータユニットのエイジ値の平均値を計算し(1210)、優先順位を考慮して(1220)、優先順位を基準に併合対象ブロックを検出する(1230)。
併合演算の目的のうち一つは、多数のフリーブロックを収集することである。したがって、静的データ領域のブロックを併合して磨耗度平準化を図ると共に、さらに低いコストで多くの利得が得られる併合演算を行う必要がある。ここで、コストは、併合演算によって移動せねばならないデータ量であり、利得は、併合演算の結果、フリーブロックに収集される更新前データ、すなわち、無効データ(dirty dataまたはinvalid data)である。それと共に、前述したように、エイジ値の平均が低いほど併合対象として適切であるので、これは、コストと見なせる。このように、コストに反比例し、利得に比例するように、適切な定数値C1,C2,C3を選択して優先順位を下記式(1)のように計算しうる。
優先順位=移動するデータ*C1/(収集される無効データ*C2*エイジ値の平均値*C3) (1)
したがって、優先順位が高いほど、コストよりは利得の比率が高いブロックであるので、これを併合演算の対象ブロックと選定する。前記C1ないしC3は、システムの目的によって、設計者が任意に選択でき、実験によって最高性能を表す値と定めることもある。
図13は、本発明のさらに他の実施形態による不揮発性データ保存装置についての静的データ領域検出装置を示す機能ブロック図である。
各機能ブロック別動作特性を参照するに、不揮発性データ保存装置についての静的データ領域検出装置1300は、データを記録するために割当てられるユニットに記録時間を表すエイジ値を保存させるエイジ記録部1310と、データユニットに保存されたエイジ値を判読するエイジ判読部1320と、判読されたエイジ値を通じて静的データ領域を判断する静的データ判断部1330と、を備える。
図14は、本発明のさらに他の実施形態による不揮発性データ保存装置についての磨耗度平準化装置を示す機能ブロック図である。図14を参照するに、不揮発性データ保存装置についての磨耗度平準化装置1400は、データユニットに記録時間を表すエイジ値を保存させるエイジ記録部1410と、保存されたエイジ値を判読するエイジ判読部1420と、判読されたエイジ値を通じて静的データ領域を検出する静的データ検出部1430と、検出された静的データ領域のデータを他のユニットに移動するデータユニット変換部1440とを備える。
図15は、本発明のさらに他の実施形態による不揮発性データ保存装置についてのデータユニット併合装置を示す機能ブロック図である。図15を参照するに、不揮発性データ保存装置についてのデータユニット併合装置1500は、データユニットに記録時間を表すエイジ値を保存させるエイジ記録部1510と、保存されたエイジ値を判読するエイジ判読部1520と、判読されたエイジ値を通じて併合を行う複数の前記ユニットを検出する併合対象探索部1530と、検出された複数の前記ユニットを併合する併合部1540と、を備えるもので構成される。
本発明による静的データ領域の検出方法、磨耗度平準化方法またはデータユニット併合方法は、またコンピュータで読み取り可能な記録媒体にコンピュータ可読コードとして具現できる。コンピュータで読み取り可能な記録媒体は、コンピュータシステムによって読み取られるデータが保存される全ての種類の記録装置を含む。コンピュータで読み取り可能な記録媒体の例としては、ROM(リードオンリメモリ)、RAM(ランダムアクセスメモリ)、磁気テープ、フロッピー(登録商標)ディスクのようなマグネチック保存媒体とCD−ROM、光データ保存装置のような光学的判読媒体があり、またキャリアウェーブ(例えば、インターネットを通じた伝送)の形態で具現されるものも含む。また、コンピュータで読み取り可能な記録媒体は、ネットワークに連結されたコンピュータシステムに分散され、分散方式でコンピュータ可読コードが保存され、かつ実行される。
以上、本発明についてその望ましい実施形態を中心に説明した。当業者は、本発明の本質的な特性から逸脱しない範囲で変形された形態で具現できるということが分かるであろう。したがって、開示された実施形態は、限定的な観点でなく、説明的な観点で考慮されねばならない。本発明の範囲は、前述した説明でなく、特許請求の範囲に現れており、それと同等な範囲内にある全ての差異点は、本発明に含まれていると解釈されねばならない。
本発明は、半導体メモリ関連の技術分野に適用可能である。
従来の技術によるカウンティングランタイム方法によるフラッシュメモリのブロック当たり消去回数を示す図である。 従来の技術によるフラッシュメモリ内の静的領域の磨耗度平準化方法を説明するためのフローチャートである。 本発明の一実施形態による不揮発性データ保存装置の静的データ領域の検出方法を示すフローチャートである。 前記図3のステップ330をさらに具体的に示すフローチャートである。 本発明の一実施形態によるデータユニット別エイジ値とエイジカウンタ値とを示す図である。 本発明の他の実施形態による不揮発性データ保存装置の磨耗度平準化方法を示すフローチャートである。 前記図6のステップ640の一例を具体的に示すフローチャートである。 前記図6のステップ640の他の例を具体的に示すフローチャートである。 本発明のさらに他の実施形態による不揮発性データ保存装置のデータユニット併合方法を示すフローチャートである。 本発明のさらに他の実施形態によるデータユニット併合過程を示す図である。 前記図9のステップ920及びステップ930の一例を具体的に示すフローチャートである。 前記図9のステップ920及びステップ930の他の例を具体的に示すフローチャートである。 本発明のさらに他の実施形態による不揮発性データ保存装置に対する静的データ領域検出装置を示す機能ブロック図である。 本発明のさらに他の実施形態による不揮発性データ保存装置に対する磨耗度平準化装置を示す機能ブロック図である。 本発明のさらに他の実施形態による不揮発性データ保存装置に対するデータユニット併合装置を示す機能ブロック図である。
符号の説明
1300 静的データ領域検出装置
1310,1410,1510 エイジ記録部
1320,1420,1520 エイジ判読部
1330 静的データ判断部
1400 磨耗度平準化装置
1430 静的データ検出部
1440 データユニット変換部
1500 データユニット併合装置
1530 併合対象探索部
1540 併合部

Claims (13)

  1. 不揮発性データ保存装置について消去単位であるデータユニットのうち長期間更新あるいは消去されていない静的データが記録されたデータユニットである静的データ領域の検出方法において、
    データを記録するために割当てられるデータユニットに記録時間を表すエイジ値を保存するステップと、
    前記データユニットに保存されたエイジ値を判読するステップと、
    前記判読されたエイジ値を通じて静的データ領域を判断するステップと、を含み、
    前記エイジ値は、前記データ及び他のデータ間での記録される時点の先後を相対的に表す値であり、
    前記エイジ値は、前記不揮発性データ保存装置に少なくとも一つ以上存在するエイジカウンタによって記録され、
    前記保存されるエイジ値は、前記エイジ値と共に保存されるデータを記録する時の前記エイジカウンタ値であり、
    前記エイジカウンタの値は、データが記録されていないデータユニットであるフリーユニットが割当てられる度に値が変更されることを特徴とする検出方法。
  2. 前記エイジ値を保存するステップは、前記データユニットの余裕空間に前記エイジ値を保存することを特徴とする請求項に記載の検出方法。
  3. 前記エイジカウンタの値は、前記割当てられるフリーユニットに対するマッピングテーブルの余裕空間に記録され、前記マッピングテーブルが更新される時に共に保存されることを特徴とする請求項1に記載の検出方法。
  4. 前記保存されたエイジ値を判読するステップは、前記不揮発性データ保存装置を駆動するシステムの遊休時間に行われることを特徴とする請求項に記載の検出方法。
  5. 前記保存されたエイジ値を判読するステップは、前記データが割当てられた全ての前記データユニットに対して順次に行われることを特徴とする請求項に記載の検出方法。
  6. 前記判読されたエイジ値を通じて静的データ領域を判断するステップは、前記判読されたエイジ値とエイジカウンタ値との差が所定の臨界値より大きい場合、前記判読されたエイジ値を有するデータユニットを静的データ領域と判断することを特徴とする請求項に記載の検出方法。
  7. 前記判断された静的データ領域のデータを他のデータユニットに移動することによって磨耗度平準化するステップをさらに含むことを特徴とする請求項1に記載の検出方法。
  8. 前記判読されたエイジ値を通じて静的データ領域を判断するステップは、前記判読されたエイジ値と前記エイジカウンタの値とを比較するステップをさらに含み、
    前記判読されたエイジ値とエイジカウンタ値との比較結果、差値が所定の臨界値より大きい場合、前記判読されたエイジ値を有するデータユニットを静的データ領域として検出することを特徴とする請求項1に記載の検出方法。
  9. 前記判断された静的データ領域のデータを他のデータユニットに移動するステップは、前記静的データ領域のデータが記録されたデータユニットを、他のデータが記録されているデータユニットと交換することを特徴とする請求項に記載の検出方法。
  10. 不揮発性データ保存装置について消去単位であるデータユニットのうち長期間更新あるいは消去されていない静的データが記録されたデータユニットである静的データ領域を検出する装置において、
    データを記録するために割当てられるデータユニットに記録時間を表すエイジ値を保存させるエイジ記録部と、
    前記データユニットに保存されたエイジ値を判読するエイジ判読部と、
    前記判読されたエイジ値を通じて静的データ領域を判断する静的データ判断部と、を備え、
    前記エイジ値は、前記データ及び他のデータ間での記録される時点の先後を相対的に表す値であり、
    前記エイジ値は、前記不揮発性データ保存装置に少なくとも一つ以上存在するエイジカウンタによって記録され、
    前記保存されるエイジ値は、前記エイジ値と共に保存されるデータを記録する時の前記エイジカウンタ値であり、
    前記エイジカウンタの値は、データが記録されていないデータユニットであるフリーユニットが割当てられる度に値が変更されることを特徴とする装置。
  11. 前記エイジカウンタの値は、前記割当てられたフリーユニットに対するマッピングテーブルの余裕空間に記録され、前記マッピングテーブルが更新される時に共に保存されることを特徴とする請求項10に記載の装置。
  12. 前記判断された静的データ領域のデータを他のデータユニットに移動する磨耗度平準化データユニット変換部を備えることを特徴とする請求項10に記載の装置。
  13. 請求項1に記載の方法を具現するためのプログラムが記録されたコンピュータで読み取り可能な記録媒体。
JP2007323739A 2006-12-18 2007-12-14 不揮発性データ保存装置の静的データ領域の検出方法、磨耗度平準化方法及びデータユニットの併合方法とその装置 Expired - Fee Related JP4812739B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020060129655A KR100881669B1 (ko) 2006-12-18 2006-12-18 비휘발성 데이터 저장장치의 정적 데이터 영역 검출 방법,마모도 평준화 방법 및 데이터 유닛 병합 방법과 그 장치
KR10-2006-0129655 2006-12-18

Publications (2)

Publication Number Publication Date
JP2008152909A JP2008152909A (ja) 2008-07-03
JP4812739B2 true JP4812739B2 (ja) 2011-11-09

Family

ID=39259497

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007323739A Expired - Fee Related JP4812739B2 (ja) 2006-12-18 2007-12-14 不揮発性データ保存装置の静的データ領域の検出方法、磨耗度平準化方法及びデータユニットの併合方法とその装置

Country Status (5)

Country Link
US (1) US8028121B2 (ja)
EP (1) EP1936632A1 (ja)
JP (1) JP4812739B2 (ja)
KR (1) KR100881669B1 (ja)
CN (1) CN101236789B (ja)

Families Citing this family (134)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7680977B2 (en) * 2004-02-26 2010-03-16 Super Talent Electronics, Inc. Page and block management algorithm for NAND flash
JP5032172B2 (ja) * 2007-03-28 2012-09-26 株式会社東芝 統合メモリ管理装置及び方法並びにデータ処理システム
US8135900B2 (en) 2007-03-28 2012-03-13 Kabushiki Kaisha Toshiba Integrated memory management and memory management method
US8621137B2 (en) * 2007-12-27 2013-12-31 Sandisk Enterprise Ip Llc Metadata rebuild in a flash memory controller following a loss of power
US8185706B2 (en) * 2008-04-30 2012-05-22 Apple Inc. Copyback optimization for memory system
TWI373771B (en) * 2008-06-06 2012-10-01 Phison Electronics Corp Memory management method for non-volatile memory and controller using the same
US8843691B2 (en) * 2008-06-25 2014-09-23 Stec, Inc. Prioritized erasure of data blocks in a flash storage device
US8527690B2 (en) * 2008-06-26 2013-09-03 Microsoft Corporation Optimization of non-volatile solid-state memory by moving data based on data generation and memory wear
FR2935501B1 (fr) * 2008-09-02 2010-12-10 Oberthur Technologies Procede et dispositif de gestion d'acces a une memoire non volatile reinscriptible.
CN101354681B (zh) * 2008-09-23 2010-12-01 美商威睿电通公司 存储器系统、非易失性存储器的磨损均衡方法及装置
US8195899B2 (en) * 2008-09-26 2012-06-05 Micron Technology, Inc. Memory cell operation
CN101685675B (zh) * 2008-09-26 2014-01-15 美光科技公司 存储器单元操作
US20100125696A1 (en) * 2008-11-17 2010-05-20 Prasanth Kumar Memory Controller For Controlling The Wear In A Non-volatile Memory Device And A Method Of Operation Therefor
WO2010076829A1 (en) * 2008-12-30 2010-07-08 Massimo Iaculo Wear leveling for erasable memories
JP2010165251A (ja) * 2009-01-16 2010-07-29 Toshiba Corp 情報処理装置及びプロセッサ並びに情報処理方法
KR20100091544A (ko) * 2009-02-10 2010-08-19 삼성전자주식회사 메모리 시스템 및 그 마모도 관리 방법
US8195878B2 (en) * 2009-02-19 2012-06-05 Pmc-Sierra, Inc. Hard disk drive with attached solid state drive cache
EP2481050A1 (en) * 2009-09-23 2012-08-01 Conor Maurice Ryan A flash memory device and control method
US8543863B2 (en) * 2009-11-18 2013-09-24 Microsoft Corporation Efficiency of hardware memory access using dynamically replicated memory
KR101662273B1 (ko) 2009-11-27 2016-10-05 삼성전자주식회사 비휘발성 메모리 장치, 그것을 포함한 메모리 시스템 및 그것의 마모도 관리 방법
US8495281B2 (en) * 2009-12-04 2013-07-23 International Business Machines Corporation Intra-block memory wear leveling
TWI416525B (zh) * 2009-12-15 2013-11-21 Asolid Technology Co Ltd 非揮發性記憶體裝置及其損耗平均方法
JP2011198433A (ja) * 2010-03-23 2011-10-06 Toshiba Corp メモリシステム
US9104546B2 (en) * 2010-05-24 2015-08-11 Silicon Motion Inc. Method for performing block management using dynamic threshold, and associated memory device and controller thereof
US8949506B2 (en) 2010-07-30 2015-02-03 Apple Inc. Initiating wear leveling for a non-volatile memory
JP2012048770A (ja) * 2010-08-24 2012-03-08 Toshiba Corp 不揮発性半導体記憶装置、及び、メモリシステム
CN102385902A (zh) * 2010-09-01 2012-03-21 建兴电子科技股份有限公司 固态储存装置及其数据控制方法
IT1404161B1 (it) * 2010-12-30 2013-11-15 Incard Sa Metodo e sistema per migliorare il controllo del limite dei cicli di scrittura di una carta a circuito integrato
US8521948B2 (en) * 2011-01-03 2013-08-27 Apple Inc. Handling dynamic and static data for a system having non-volatile memory
CN102637145B (zh) * 2011-02-11 2015-06-17 慧荣科技股份有限公司 用来进行区块管理的方法、记忆装置及其控制器
US8909982B2 (en) * 2011-06-19 2014-12-09 Sandisk Enterprise Ip Llc System and method for detecting copyback programming problems
US8910020B2 (en) 2011-06-19 2014-12-09 Sandisk Enterprise Ip Llc Intelligent bit recovery for flash memory
CN102955743A (zh) * 2011-08-25 2013-03-06 建兴电子科技股份有限公司 固态储存装置及其损耗平均控制方法
US8938658B2 (en) 2011-11-07 2015-01-20 Sandisk Enterprise Ip Llc Statistical read comparison signal generation for memory systems
KR101867282B1 (ko) * 2011-11-07 2018-06-18 삼성전자주식회사 비휘발성 메모리 장치의 가비지 컬렉션 방법
US8924815B2 (en) 2011-11-18 2014-12-30 Sandisk Enterprise Ip Llc Systems, methods and devices for decoding codewords having multiple parity segments
US8954822B2 (en) 2011-11-18 2015-02-10 Sandisk Enterprise Ip Llc Data encoder and decoder using memory-specific parity-check matrix
US9048876B2 (en) 2011-11-18 2015-06-02 Sandisk Enterprise Ip Llc Systems, methods and devices for multi-tiered error correction
CN108595345B (zh) 2012-07-25 2021-11-23 慧荣科技股份有限公司 管理闪存中所储存的数据的方法及相关记忆装置与控制器
US9699263B1 (en) 2012-08-17 2017-07-04 Sandisk Technologies Llc. Automatic read and write acceleration of data accessed by virtual machines
CN102866956B (zh) * 2012-09-14 2015-02-18 上海宝存信息科技有限公司 基于固态存储介质的数据实时跟踪存储系统及方法
KR20140050941A (ko) * 2012-10-22 2014-04-30 삼성전자주식회사 비휘발성 메모리 장치의 데이터 관리 방법
US9501398B2 (en) 2012-12-26 2016-11-22 Sandisk Technologies Llc Persistent storage device with NVRAM for staging writes
US9239751B1 (en) 2012-12-27 2016-01-19 Sandisk Enterprise Ip Llc Compressing data from multiple reads for error control management in memory systems
US9612948B2 (en) 2012-12-27 2017-04-04 Sandisk Technologies Llc Reads and writes between a contiguous data block and noncontiguous sets of logical address blocks in a persistent storage device
US9003264B1 (en) 2012-12-31 2015-04-07 Sandisk Enterprise Ip Llc Systems, methods, and devices for multi-dimensional flash RAID data protection
US9454420B1 (en) 2012-12-31 2016-09-27 Sandisk Technologies Llc Method and system of reading threshold voltage equalization
US9547586B2 (en) * 2013-01-03 2017-01-17 Macronix International Co., Ltd. Metadata containers with indirect pointers
US11249652B1 (en) * 2013-01-28 2022-02-15 Radian Memory Systems, Inc. Maintenance of nonvolatile memory on host selected namespaces by a common memory controller
US9214965B2 (en) 2013-02-20 2015-12-15 Sandisk Enterprise Ip Llc Method and system for improving data integrity in non-volatile storage
US9329928B2 (en) 2013-02-20 2016-05-03 Sandisk Enterprise IP LLC. Bandwidth optimization in a non-volatile memory system
US9734173B2 (en) * 2013-03-12 2017-08-15 Sap Se Assignment of data temperatures in a fragmented data set
US9870830B1 (en) 2013-03-14 2018-01-16 Sandisk Technologies Llc Optimal multilevel sensing for reading data from a storage medium
US9236886B1 (en) 2013-03-15 2016-01-12 Sandisk Enterprise Ip Llc Universal and reconfigurable QC-LDPC encoder
US9244763B1 (en) 2013-03-15 2016-01-26 Sandisk Enterprise Ip Llc System and method for updating a reading threshold voltage based on symbol transition information
US9367246B2 (en) 2013-03-15 2016-06-14 Sandisk Technologies Inc. Performance optimization of data transfer for soft information generation
US9009576B1 (en) 2013-03-15 2015-04-14 Sandisk Enterprise Ip Llc Adaptive LLR based on syndrome weight
US9136877B1 (en) 2013-03-15 2015-09-15 Sandisk Enterprise Ip Llc Syndrome layered decoding for LDPC codes
US9092350B1 (en) 2013-03-15 2015-07-28 Sandisk Enterprise Ip Llc Detection and handling of unbalanced errors in interleaved codewords
US9170941B2 (en) 2013-04-05 2015-10-27 Sandisk Enterprises IP LLC Data hardening in a storage system
US10049037B2 (en) 2013-04-05 2018-08-14 Sandisk Enterprise Ip Llc Data management in a storage system
US9632926B1 (en) * 2013-05-16 2017-04-25 Western Digital Technologies, Inc. Memory unit assignment and selection for internal memory operations in data storage systems
US9159437B2 (en) 2013-06-11 2015-10-13 Sandisk Enterprise IP LLC. Device and method for resolving an LM flag issue
US9524235B1 (en) 2013-07-25 2016-12-20 Sandisk Technologies Llc Local hash value generation in non-volatile data storage systems
US9043517B1 (en) 2013-07-25 2015-05-26 Sandisk Enterprise Ip Llc Multipass programming in buffers implemented in non-volatile data storage systems
US9384126B1 (en) 2013-07-25 2016-07-05 Sandisk Technologies Inc. Methods and systems to avoid false negative results in bloom filters implemented in non-volatile data storage systems
US9235509B1 (en) 2013-08-26 2016-01-12 Sandisk Enterprise Ip Llc Write amplification reduction by delaying read access to data written during garbage collection
US9639463B1 (en) 2013-08-26 2017-05-02 Sandisk Technologies Llc Heuristic aware garbage collection scheme in storage systems
US9442670B2 (en) 2013-09-03 2016-09-13 Sandisk Technologies Llc Method and system for rebalancing data stored in flash memory devices
US9519577B2 (en) 2013-09-03 2016-12-13 Sandisk Technologies Llc Method and system for migrating data between flash memory devices
US9158349B2 (en) 2013-10-04 2015-10-13 Sandisk Enterprise Ip Llc System and method for heat dissipation
US9323637B2 (en) 2013-10-07 2016-04-26 Sandisk Enterprise Ip Llc Power sequencing and data hardening architecture
US9298608B2 (en) 2013-10-18 2016-03-29 Sandisk Enterprise Ip Llc Biasing for wear leveling in storage systems
US9442662B2 (en) 2013-10-18 2016-09-13 Sandisk Technologies Llc Device and method for managing die groups
US9436831B2 (en) 2013-10-30 2016-09-06 Sandisk Technologies Llc Secure erase in a memory device
US9263156B2 (en) 2013-11-07 2016-02-16 Sandisk Enterprise Ip Llc System and method for adjusting trip points within a storage device
US9244785B2 (en) 2013-11-13 2016-01-26 Sandisk Enterprise Ip Llc Simulated power failure and data hardening
US9152555B2 (en) 2013-11-15 2015-10-06 Sandisk Enterprise IP LLC. Data management with modular erase in a data storage system
US9229640B2 (en) 2013-11-15 2016-01-05 Microsoft Technology Licensing, Llc Inexpensive solid-state storage by throttling write speed in accordance with empirically derived write policy table
US9703816B2 (en) 2013-11-19 2017-07-11 Sandisk Technologies Llc Method and system for forward reference logging in a persistent datastore
US9520197B2 (en) 2013-11-22 2016-12-13 Sandisk Technologies Llc Adaptive erase of a storage device
US9280429B2 (en) 2013-11-27 2016-03-08 Sandisk Enterprise Ip Llc Power fail latching based on monitoring multiple power supply voltages in a storage device
US9122636B2 (en) 2013-11-27 2015-09-01 Sandisk Enterprise Ip Llc Hard power fail architecture
US9520162B2 (en) 2013-11-27 2016-12-13 Sandisk Technologies Llc DIMM device controller supervisor
US9250676B2 (en) 2013-11-29 2016-02-02 Sandisk Enterprise Ip Llc Power failure architecture and verification
US9582058B2 (en) 2013-11-29 2017-02-28 Sandisk Technologies Llc Power inrush management of storage devices
US9092370B2 (en) 2013-12-03 2015-07-28 Sandisk Enterprise Ip Llc Power failure tolerant cryptographic erase
US9235245B2 (en) 2013-12-04 2016-01-12 Sandisk Enterprise Ip Llc Startup performance and power isolation
US9129665B2 (en) 2013-12-17 2015-09-08 Sandisk Enterprise Ip Llc Dynamic brownout adjustment in a storage device
CN104731515B (zh) * 2013-12-18 2018-02-23 华为技术有限公司 控制存储设备机群磨损均衡的方法及设备
US9549457B2 (en) 2014-02-12 2017-01-17 Sandisk Technologies Llc System and method for redirecting airflow across an electronic assembly
US9497889B2 (en) 2014-02-27 2016-11-15 Sandisk Technologies Llc Heat dissipation for substrate assemblies
US9703636B2 (en) 2014-03-01 2017-07-11 Sandisk Technologies Llc Firmware reversion trigger and control
US9519319B2 (en) 2014-03-14 2016-12-13 Sandisk Technologies Llc Self-supporting thermal tube structure for electronic assemblies
US9348377B2 (en) 2014-03-14 2016-05-24 Sandisk Enterprise Ip Llc Thermal isolation techniques
US9485851B2 (en) 2014-03-14 2016-11-01 Sandisk Technologies Llc Thermal tube assembly structures
US9390814B2 (en) 2014-03-19 2016-07-12 Sandisk Technologies Llc Fault detection and prediction for data storage elements
US9454448B2 (en) 2014-03-19 2016-09-27 Sandisk Technologies Llc Fault testing in storage devices
US9448876B2 (en) 2014-03-19 2016-09-20 Sandisk Technologies Llc Fault detection and prediction in storage devices
US9390021B2 (en) 2014-03-31 2016-07-12 Sandisk Technologies Llc Efficient cache utilization in a tiered data structure
US9626400B2 (en) 2014-03-31 2017-04-18 Sandisk Technologies Llc Compaction of information in tiered data structure
US9626399B2 (en) 2014-03-31 2017-04-18 Sandisk Technologies Llc Conditional updates for reducing frequency of data modification operations
US9697267B2 (en) 2014-04-03 2017-07-04 Sandisk Technologies Llc Methods and systems for performing efficient snapshots in tiered data structures
US10372613B2 (en) 2014-05-30 2019-08-06 Sandisk Technologies Llc Using sub-region I/O history to cache repeatedly accessed sub-regions in a non-volatile storage device
US9645749B2 (en) 2014-05-30 2017-05-09 Sandisk Technologies Llc Method and system for recharacterizing the storage density of a memory device or a portion thereof
US10146448B2 (en) 2014-05-30 2018-12-04 Sandisk Technologies Llc Using history of I/O sequences to trigger cached read ahead in a non-volatile storage device
US9703491B2 (en) 2014-05-30 2017-07-11 Sandisk Technologies Llc Using history of unaligned writes to cache data and avoid read-modify-writes in a non-volatile storage device
US8891303B1 (en) 2014-05-30 2014-11-18 Sandisk Technologies Inc. Method and system for dynamic word line based configuration of a three-dimensional memory device
US10114557B2 (en) 2014-05-30 2018-10-30 Sandisk Technologies Llc Identification of hot regions to enhance performance and endurance of a non-volatile storage device
US10656842B2 (en) 2014-05-30 2020-05-19 Sandisk Technologies Llc Using history of I/O sizes and I/O sequences to trigger coalesced writes in a non-volatile storage device
US10656840B2 (en) 2014-05-30 2020-05-19 Sandisk Technologies Llc Real-time I/O pattern recognition to enhance performance and endurance of a storage device
US9070481B1 (en) 2014-05-30 2015-06-30 Sandisk Technologies Inc. Internal current measurement for age measurements
US10162748B2 (en) 2014-05-30 2018-12-25 Sandisk Technologies Llc Prioritizing garbage collection and block allocation based on I/O history for logical address regions
US9093160B1 (en) 2014-05-30 2015-07-28 Sandisk Technologies Inc. Methods and systems for staggered memory operations
US9652381B2 (en) 2014-06-19 2017-05-16 Sandisk Technologies Llc Sub-block garbage collection
US9443601B2 (en) 2014-09-08 2016-09-13 Sandisk Technologies Llc Holdup capacitor energy harvesting
CN104298615B (zh) * 2014-10-09 2017-04-19 重庆大学 一种存储器交换分区损耗的均衡方法
KR102282962B1 (ko) 2014-12-22 2021-07-30 삼성전자주식회사 스토리지 장치 및 스토리지 장치의 동작 방법
KR102250423B1 (ko) 2015-01-13 2021-05-12 삼성전자주식회사 불휘발성 메모리 시스템 및 그것의 동작 방법
TWI585770B (zh) 2015-08-11 2017-06-01 群聯電子股份有限公司 記憶體管理方法、記憶體控制電路單元及記憶體儲存裝置
CN106469019B (zh) * 2015-08-18 2020-01-07 群联电子股份有限公司 存储器管理方法、存储器控制电路单元及存储器储存装置
US20170153842A1 (en) * 2015-12-01 2017-06-01 HGST Netherlands B.V. Data allocation in hard drives
KR102593552B1 (ko) * 2016-09-07 2023-10-25 에스케이하이닉스 주식회사 컨트롤러, 메모리 시스템 및 그의 동작 방법
KR102630116B1 (ko) * 2016-10-18 2024-01-29 에스케이하이닉스 주식회사 데이터 저장 장치 및 그것의 동작 방법
TWI626541B (zh) * 2017-08-31 2018-06-11 慧榮科技股份有限公司 將資料寫入至快閃記憶體模組的方法及相關的快閃記憶體控制器與電子裝置
CN111104045A (zh) * 2018-10-25 2020-05-05 深圳市中兴微电子技术有限公司 一种存储控制方法、装置、设备和计算机存储介质
KR20200084201A (ko) * 2019-01-02 2020-07-10 에스케이하이닉스 주식회사 컨트롤러 및 컨트롤러의 동작방법
US11467980B2 (en) 2020-01-10 2022-10-11 Micron Technology, Inc. Performing a media management operation based on a sequence identifier for a block
US10892006B1 (en) * 2020-02-10 2021-01-12 Micron Technology, Inc. Write leveling for a memory device
US20220171713A1 (en) * 2020-11-30 2022-06-02 Micron Technology, Inc. Temperature-aware data management in memory sub-systems
US11494299B2 (en) 2021-02-18 2022-11-08 Silicon Motion, Inc. Garbage collection operation management with early garbage collection starting point
CN112908394B (zh) * 2021-02-23 2022-07-12 中国科学院微电子研究所 一种自动校验数据的sram安全存储系统及其方法
US11494102B2 (en) 2021-03-09 2022-11-08 Micron Technology, Inc. Media management operations based on a ratio of valid data
US20220300184A1 (en) * 2021-03-19 2022-09-22 Silicon Motion, Inc. Method of performing wear-leveling operation in flash memory and related controller and storage system

Family Cites Families (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE69033438T2 (de) * 1989-04-13 2000-07-06 Sandisk Corp Austausch von fehlerhaften Speicherzellen einer EEprommatritze
US6230233B1 (en) * 1991-09-13 2001-05-08 Sandisk Corporation Wear leveling techniques for flash EEPROM systems
JP2914360B2 (ja) * 1997-09-30 1999-06-28 ソニー株式会社 外部記憶装置及びデータ処理方法
US7690031B2 (en) * 2000-01-06 2010-03-30 Super Talent Electronics, Inc. Managing bad blocks in flash memory for electronic data flash card
US6732221B2 (en) * 2001-06-01 2004-05-04 M-Systems Flash Disk Pioneers Ltd Wear leveling of static areas in flash memory
KR100449708B1 (ko) * 2001-11-16 2004-09-22 삼성전자주식회사 플래시 메모리 관리방법
US6542407B1 (en) * 2002-01-18 2003-04-01 Sandisk Corporation Techniques of recovering data from memory cells affected by field coupling with adjacent memory cells
US7096313B1 (en) * 2002-10-28 2006-08-22 Sandisk Corporation Tracking the least frequently erased blocks in non-volatile memory systems
KR101174308B1 (ko) * 2002-10-28 2012-08-16 쌘디스크 코포레이션 비휘발성 저장 시스템들에서 자동 웨어 레벨링
CN1536489A (zh) * 2003-04-11 2004-10-13 英华达(上海)电子有限公司 非挥发性存储器的损耗平衡方法
US7139863B1 (en) * 2003-09-26 2006-11-21 Storage Technology Corporation Method and system for improving usable life of memory devices using vector processing
US8504798B2 (en) * 2003-12-30 2013-08-06 Sandisk Technologies Inc. Management of non-volatile memory systems having large erase blocks
US7441067B2 (en) * 2004-11-15 2008-10-21 Sandisk Corporation Cyclic flash memory wear leveling
JP4366298B2 (ja) * 2004-12-02 2009-11-18 富士通株式会社 記憶装置、その制御方法及びプログラム
US7363421B2 (en) * 2005-01-13 2008-04-22 Stmicroelectronics S.R.L. Optimizing write/erase operations in memory devices
US7315917B2 (en) * 2005-01-20 2008-01-01 Sandisk Corporation Scheduling of housekeeping operations in flash memory systems
JP2006252535A (ja) * 2005-02-09 2006-09-21 Hitachi Ulsi Systems Co Ltd 記憶装置
KR20060106993A (ko) * 2005-04-06 2006-10-13 주식회사 에스원 플래시 메모리 데이터 저장 방법
JP5130646B2 (ja) * 2005-06-06 2013-01-30 ソニー株式会社 記憶装置
KR100624973B1 (ko) 2005-06-29 2006-09-15 박상원 플래시 메모리의 효율적인 소거 횟수 평준화방법(k-평준화)
US7558906B2 (en) * 2005-08-03 2009-07-07 Sandisk Corporation Methods of managing blocks in nonvolatile memory
US20070208904A1 (en) * 2006-03-03 2007-09-06 Wu-Han Hsieh Wear leveling method and apparatus for nonvolatile memory
JP4863749B2 (ja) * 2006-03-29 2012-01-25 株式会社日立製作所 フラッシュメモリを用いた記憶装置、その消去回数平準化方法、及び消去回数平準化プログラム
US7653778B2 (en) * 2006-05-08 2010-01-26 Siliconsystems, Inc. Systems and methods for measuring the useful life of solid-state storage devices

Also Published As

Publication number Publication date
EP1936632A1 (en) 2008-06-25
US20080147998A1 (en) 2008-06-19
CN101236789B (zh) 2012-05-09
CN101236789A (zh) 2008-08-06
US8028121B2 (en) 2011-09-27
JP2008152909A (ja) 2008-07-03
KR100881669B1 (ko) 2009-02-06
KR20080056580A (ko) 2008-06-23

Similar Documents

Publication Publication Date Title
JP4812739B2 (ja) 不揮発性データ保存装置の静的データ領域の検出方法、磨耗度平準化方法及びデータユニットの併合方法とその装置
KR100644602B1 (ko) 플래시메모리를 위한 재사상 제어방법 및 그에 따른플래시 메모리의 구조
US8103820B2 (en) Wear leveling method and controller using the same
US8086787B2 (en) Wear leveling method, and storage system and controller using the same
US7882300B2 (en) Apparatus and method for managing nonvolatile memory
US8046645B2 (en) Bad block identifying method for flash memory, storage system, and controller thereof
KR101849440B1 (ko) 동적 판독에 사용하기 위한 스크럽 기술
US8332576B2 (en) Data reading method for flash memory and controller and storage system using the same
US8296503B2 (en) Data updating and recovering methods for a non-volatile memory array
KR100526190B1 (ko) 플래시 메모리의 재사상 방법
JP4164118B1 (ja) フラッシュメモリを用いた記憶装置
KR20180103106A (ko) 플래시 메모리 디바이스 액세스 방법 및 장치
CN106548789A (zh) 用于操作叠瓦式磁记录设备的方法和装置
KR20090077538A (ko) 반도체 메모리 장치 및 그것의 마모도 관리 방법
US9086805B2 (en) Dynamic tracking of storage region operating parameters
US20090044085A1 (en) Defect management method for storage medium and system thereof
CN110750466A (zh) 提高闪存擦写寿命的方法和装置
JP2010079486A (ja) 半導体記録装置
CN115129262A (zh) 一种固态硬盘垃圾回收方法、装置、设备及介质
JP5180957B2 (ja) メモリコントローラ、半導体記録装置及び書き換え回数通知方法
CN112347001B (zh) 闪存垃圾回收的校验方法、装置及电子设备
US7962810B2 (en) Recording medium structure capable of displaying defect rate
JP2009146539A (ja) 情報記録装置および情報記録方法
US9405668B1 (en) Data storage device initialization information accessed by searching for pointer information
CN115437562A (zh) 减少固态硬盘中闪存读干扰的方法、装置、设备及介质

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20100615

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100629

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100929

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110215

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110516

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

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20110823

R150 Certificate of patent or registration of utility model

Ref document number: 4812739

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140902

Year of fee payment: 3

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees