JP2010515127A - 不揮発性メモリのイニシアチブウェアレベリング - Google Patents

不揮発性メモリのイニシアチブウェアレベリング Download PDF

Info

Publication number
JP2010515127A
JP2010515127A JP2009543319A JP2009543319A JP2010515127A JP 2010515127 A JP2010515127 A JP 2010515127A JP 2009543319 A JP2009543319 A JP 2009543319A JP 2009543319 A JP2009543319 A JP 2009543319A JP 2010515127 A JP2010515127 A JP 2010515127A
Authority
JP
Japan
Prior art keywords
memory
block
blocks
slope
erase
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
JP2009543319A
Other languages
English (en)
Other versions
JP5006940B2 (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.)
Intel Corp
Original Assignee
Intel Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Intel Corp filed Critical Intel Corp
Publication of JP2010515127A publication Critical patent/JP2010515127A/ja
Application granted granted Critical
Publication of JP5006940B2 publication Critical patent/JP5006940B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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/10Programming or data input circuits
    • G11C16/14Circuits for erasing electrically, e.g. erase voltage switching circuits
    • G11C16/16Circuits for erasing electrically, e.g. erase voltage switching circuits for erasing blocks, e.g. arrays, words, groups
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/20Employing a main memory using a specific memory technology
    • G06F2212/202Non-volatile memory
    • G06F2212/2022Flash 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/72Details relating to flash memory management
    • G06F2212/7211Wear leveling

Abstract

【課題】不揮発性メモリ用イニシアチブウェアレベリングの方法および装置を提供する。
【解決手段】方法の一実施形態は、不揮発性メモリの複数のメモリブロックから成るメモリブロック群のそれぞれについて消去サイクルをカウントすることを含み、各メモリブロックについて消去サイクルをカウントすることは、当該メモリブロックの物理ブロックアドレスの第1カウントをインクリメントすることと、当該メモリブロックが予備メモリブロックでない場合には当該メモリブロックの論理ブロックアドレスの第2カウントをインクリメントすることとを含む。当該方法はさらに、複数のメモリブロックの消去サイクルのカウントに少なくとも部分的に基づいて、不揮発性メモリのメモリブロックが不均一に磨耗しているか否かを判断することを含む。
【選択図】図2

Description

本発明の実施形態は、コンピュータメモリに関する。特に、本発明の実施形態は、不揮発性メモリのウェアレベリングに関する。
コンピュータおよび電子デバイスの動作において、フラッシュメモリおよび同様の不揮発性メモリは、データの保存に関して大きな利点を有しており、低コスト且つ高密度と同時に低電力で処理を実行することができる。このようなメモリは、データの格納を処理に必要な電力を最小限に抑えると共に格納状態を維持する上で電力を必要としない圧縮形式で行うので、多くの用途で用いられるようになっている。
しかし、不揮発性メモリの動作に関しては欠点もある。例えば、フラッシュメモリのようなメモリは、書き込みサイクルの度に劣化していく傾向があるので、寿命が限られている。このため、メモリの所与の部分に対して行われる書き込み動作が、当該メモリの別の部分に対して行われる書き込み動作よりも多い場合、書き込みの数が多い方の部分は、劣化、および最終的には故障がより早期に発生してしまう。
フラッシュメモリ全体の寿命を長くすることを目的として、ウェアレベリング処理を実行するとしてよい。ウェアレベリング処理は、メモリ内でより使用が少ない部分に書き込み動作を割り当てることによって、ストレージデバイス全体にわたって磨耗をより均等に分散させることを目的とする。このようなウェアレベリング処理は、ホストシステムに認識されることなく、メモリコントローラによって実行されるとしてよい。
ウェアレベリング処理は、論理ブロックアドレスをデバイスの固体メモリアレイ内の別の物理ブロックアドレスにリマッピングするアルゴリズムを含むとしてよい。しかし、利用されるアルゴリズムは、メモリ動作の効率およびウェアレベリング処理の効果に大きな影響を及ぼす可能性がある。リマッピング処理のタイミング、リマッピング用に適切な物理領域を特定するやり方等、さまざまな関連事項は、メモリ動作を大きく左右し得る。
本発明の実施形態を添付図面において図示するが、これらは本発明を限定するものではなく例示に過ぎない。添付図面では、同様の参照番号を用いて同様の構成要素を指し示すものとする。
不揮発性メモリの実施形態を示す図である。
ウェアレベリング処理の実施形態を示すフローチャートである。
ウェアレベリングに先立って不揮発性メモリについて生成される回帰直線を示す図である。
ウェアレベリングの実施形態が実施された後で不揮発性メモリについて生成される回帰直線を示す図である。
ウェアレベリング処理の実施形態における、メモリブロックリクレーム(reclaim)処理の例を示す図である。 ウェアレベリング処理の実施形態における、メモリブロックリクレーム処理の例を示す図である。 ウェアレベリング処理の実施形態における、メモリブロックリクレーム処理の例を示す図である。 ウェアレベリング処理の実施形態における、メモリブロックリクレーム処理の例を示す図である。
不揮発性メモリデバイスの実施形態を示す図である。
本発明の実施形態を用いるコンピュータシステムを示す図である。
本発明の一実施形態は、不揮発性メモリ用のイニシアチブウェアレベリングに関する。
本明細書で使用する場合、以下の用語は以下に定義する意味を持つものとする。
「不揮発性メモリ」とは、メモリに電力が供給されない場合でもメモリの内容を保持するメモリを意味する。不揮発性メモリは、フラッシュメモリを含む。
「フラッシュメモリ」とは、電気的に消去および再プログラミングが可能な不揮発性コンピュータメモリを意味する。フラッシュメモリは、「セル」と呼ばれるフローティングゲートトランジスタのアレイに情報を格納する。各セルは、1ビット以上の情報を格納する。「フラッシュメモリ」は、本明細書で使用する場合、フラッシュメモリストレージ用の技術の一部を含むとしてよい。例えば、フラッシュメモリは、NOR型およびNAND型のメモリの両方を含むとしてよい。また、フラッシュメモリは、メモリセル毎に格納する情報のビット数が異なる技術、例えば、1ビット1セルフラッシュメモリおよびセル毎に複数ビットを格納するマルチレベルセル構造を含むとしてよい。
「磨耗(Wear)」は、不揮発性メモリの使用量を意味する。
「ブロック」は、1回の動作で消去され得る、不揮発性メモリアレイの一部分を意味し、複数のセルを含む。消去されたフラッシュメモリブロックの個々のセルはプログラムされ得るが、フラッシュメモリのブロック内のセルはメモリのブロック全体を消去することによってのみ変更され得る。
本発明の一実施形態によると、フラッシュメモリまたはその他の不揮発性メモリの磨耗が不均衡になる問題について、ウェアレベリング処理を用いて対処する。本発明の一実施形態によると、磨耗が最も大きいメモリブロック群からのデータと、磨耗が最も少ないメモリブロック群からのデータとを交換することによって、ウェアレベリングを実施する。一実施形態によると、不揮発性メモリ用のウェアレベリングプロセスは、各物理ブロックアドレスおよび各論理ブロックアドレスについて、メモリブロックに対する消去動作のカウントを維持することを含む。一実施形態によると、ウェアレベリングプロセスは、各メモリブロックの物理ブロック消去カウントと論理ブロック消去カウントとを表す線の傾きがしきい値を超えたと判断されると、所定の間隔でトリガされる。
フラッシュメモリ等の不揮発性メモリは、許可される消去−書込サイクルの数が有限なので動作が制限され、あるブロックのセルにデータを書き込む前に、当該ブロックを消去する必要がある。例えば、市販されているフラッシュ製品の大半は、100万回のプログラミングサイクルに耐えることが保証されている。このため、オペレーティングシステム等のハードドライブベースのアプリケーションをコンパクトフラッシュ(登録商標)等のフラッシュメモリベースのデバイスに移動させる際には注意が必要である。磨耗が不均衡なことの影響は部分的に、セクタ間で書き込み動作を分散させるべく書き込みをカウントしてブロックを動的にリマッピングする任意のチップファームウェアまたはファイルシステムドライバによって、または、書き込みエラーの場合に備えてセクタを残しておくための書き込み検証およびリマッピングによって相殺され得る。しかし、時間が経過するにつれて、データ動作のバラツキは概して磨耗が不均衡になる原因となる。
不揮発性メモリの動作においては、メモリブロック毎に発生する書き込みサイクル数を監視して分散させるべくウェアレベリング処理またはアルゴリズムを実施することも通常推奨されている。これは、書き込み処理が多く発生するアプリケーションでは特に重要である。ウェアレベリングが実施されないと、メモリブロックの利用率がメモリブロック毎に大きく異なってしまう場合がある。長期間保存されるデータを有するブロックは、頻繁に変更されるデータを有するブロックほど多くの消去−書込サイクルに耐える必要はない。ウェアレベリング処理は、各ブロックについて利用可能な書き込みサイクルを全て概して均一に使用することを保証するべく実行される。ウェアレベリングは一般的に、メモリブロック間でのデータの交換を含んでよい。
本発明の一実施形態によると、ウェアレベリング処理(イニシアチブウェアレベリング(IWL)と呼ぶとしてよい)は、不揮発性メモリにおいて実施される。本発明の一実施形態によると、不揮発性メモリのウェアレベリングは、個々のメモリブロックではなく、メモリブロック群の交換を含む。当該実施形態によると、第1のメモリブロック群は不揮発性メモリデバイスのうち最も磨耗が大きいメモリブロックを表し、第2のメモリブロック群は磨耗が最も小さいメモリブロックを表すとしてよい。このようなメモリブロック群に含まれるブロック同士の間で、データを交換するとしてよい。
本発明の一実施形態によると、不揮発性メモリのウェアレベリング処理は、物理アドレスおよび論理アドレスの両方について、メモリブロックに対する消去動作の回数を記録することを含む。一実施形態によると、物理ブロックにおいてリクレーム動作が何回実行されたかをトラッキングするべく物理ブロック消去カウント(PBEC)値を維持することに加えて、論理ブロック毎にデータの変更頻度をトラッキングするための各メモリブロックの論理ブロック指標によって示される論理ブロック消去カウント(LBEC)値を維持する。このような構成として、メモリブロックがリクレームされる度に、対応するPBEC値およびLBEC値をそれぞれ1だけ大きくする。
一実施形態によると、PBEC値およびLBEC値について以下の関係が成り立つ。
1.PBECインクリメント=LBECインクリメント(メモリブロックがリクレームされると、PBECおよびLBECの両方をインクリメントすることになる)
2.デバイスの全PBECの合計≧デバイスの全LBECの合計
3.ファイルシステムが未使用メモリデバイスで開始されると、デバイスの全PBECの合計=デバイスの全LBECの合計
ファイルシステムが初期化されてシャットダウンされ、メモリのフォーマッティングが行われない場合、LBEC値およびPBEC値は互いに等しくなる。ファイルシステムが初期化される前にメモリデバイスがフォーマッティングされれば、PBEC値は保持されるか、フォーマッティングが終了した後で復元されると考えられる。しかし、ブロックデータが消去されるので、LBEC値は消去され得る。この場合ブロックデータはデータがどの程度アクティブかを反映するべく利用されるので、データが削除された後でもLBECを保存しておく理由がない。このため、未使用/新規/完全消去のメモリデバイスでは、LBEC合計値=PBEC合計値となる。デバイスがフォーマッティングされると、LBECが消去され、続いてPBEC合計値はLBEC合計値よりも大きくなる。
本発明の一実施形態によると、PBECフィールドは、各物理ブロックに対して何回リクレーム動作が発生したかをトラッキングするべく利用される。一実施形態によると、追加のLBECフィールドは、論理ブロックによってデータの変更頻度をトラッキングするための論理ブロック指標によって示される。このように、論理データブロックがリクレームされる度に、対応するLBECは1だけ大きくなり、関連する物理データブロックのPBECも1だけ大きくなる。一実施形態によると、
(1)PBECインクリメント=LBECインクリメント(ブロックがリクレームされる度にそれぞれ1だけインクリメントされる)
(2)全PBECの合計≧全LBECの合計
(3)ファイルシステムが未使用フラッシュで初期化されると、全PBECの合計=全LBECの合計
本発明の一実施形態によると、IWLウェアレベリング処理では少なくとも2つの磨耗ブロック群(WBG)が指定される。第1ブロック群は「大ブロック群」と呼ばれる。大ブロック群は、PBEC値およびLBEC値が比較的大きく、リクレーム処理は不揮発性メモリの予備ブロックに対して頻繁に発生するので、予備ブロックを含み得る。第2ブロック群は、「小ブロック群」と呼ばれ、PBEC値およびLBEC値が比較的小さく、予備ブロックは含まれていない。IWL処理では、この2つのブロック群の間で、LBEC値が大きい論理ブロックとLBEC値が小さい論理ブロックとをスワップすることを目的とする。このような論理ブロックのスワップは、一連のリクレーム処理に基づいて実現され得る。この手順は、WBGスワップと呼ばれる。WBGスワップの目的は、長期間保存される(LBEC値の小さい)データブロックを、磨耗が大きい(PBEC値が大きい)ブロックへとポピュレートして、頻繁に変更される(LBEC値が大きい)データブロックを、磨耗が小さい(PBEC値が小さい)ブロックにポピュレートすることである。このような処理によると、予備ブロックは次のリクレームブロックになる可能性が高く、PBEC値が大きい予備ブロックは反対側のブロック群に移される。
しかし、ウェアレベリング処理は、通常リクレーム動作等の一部の普通のメモリ動作に影響を及ぼし得る。このため、ウェアレベリングを実行する際は、メモリ性能との間でバランスを取る必要が出てくるとしてよい。本発明の一実施形態によると、ウェアレベリングの磨耗の頻度に影響を与える任意の値を設定するとしてよい。実施形態によると、ユーザは消去カウント間隔(ECMOD)値および傾きしきい値(SLOPETH)値を設定するとしてよい。これらの値を大きくすると、不揮発性デバイスの寿命をある程度犠牲にする可能性はあるが、性能の低下は低減される。
本発明の一実施形態によると、不揮発性メモリは、メモリの各物理ブロックに対する消去動作の回数およびメモリの各論理ブロックに対する消去回数の回数に、少なくとも部分的に基づいて行われるウェアレベリングを含む。一実施形態によると、回帰直線の傾きがしきい値を超えると、ウェアレベリング処理は開始される。回帰直線は、各ブロックに対する物理消去カウント対各ブロックに対する論理消去カウントに基づいて生成される。
本発明の一実施形態によると、IWL処理の開始は、各メモリブロックの物理ブロック消去カウントおよび論理ブロック消去カウントのグラフに適合する線の傾きによってトリガされるとしてもよい。当該線の傾きに基づいて、処理が成功しているか否かを判断する。一実施形態によると、統計的手法を用いて、当該線をエラーカウントデータに適合させるとしてよい。特定の実施形態によると、直線回帰を用いて、IWL処理が必要なタイミングを決定し、実行されているIWL処理がどの程度成功しているのか測定する。直線回帰は、一次方程式を得られたデータに適合させることによって、2つの変数の関係をモデル化することを試みる。回帰直線適合の最も一般的な方法は、最小二乗法である。線形最小二乗法は、切片がaで傾きがbの直線グラフである、f(x)=a+bxという式を適用する。線形最小二乗法は、以下に示すように、生データセット(l,p),(l,p),・・・,(l,p)のトレンドを記載する。
Figure 2010515127
不揮発性メモリデバイスの処理において、回帰直線の傾きbについては3つの場合が考えられる。
(1)b=0、未使用のフラッシュでシステムが初期化された場合、または、ウェアレベリングが維持されている場合
(2)b>0、磨耗が平滑化されていない場合
(3)b<0、WBGがスワップされて処理が成功している場合
本発明の一実施形態によると、ウェアレベリングは、所定の期間が経過した後でのみ実行されるように限定されるとしてもよい。例えば、ECMODは、IWL処理がトリガされる前に経過する消去カウント間隔である。例えば、ECMODは1000サイクル以下であってよい。さらに、ウェアレベリングのトリガは、PBEC−LBEC回帰直線の傾きのしきい値であるSLOPETHによって制御される。不揮発性メモリの通常のリクレーム動作は、無効メモリスペースを開放することを目的として、無効データを有する「汚染」メモリブロックをリクレームするべく利用されるとしてよい。IWLを実装する場合、不揮発性メモリの通常のリクレーム手順は変更されないが、ウェアレベリング処理は、バックグラウンドリクレームタスクの成果に影響を及ぼし得る。ユーザまたは設計者は、メモリの寿命および性能に対する顧客の要望といった問題について、共にウェアレベリングの頻度を決定するECMODおよびSLOPETHといったパラメータを調整することによって対処してよい。例えば顧客は、ECMODおよびSLOPETHを大きくすることによって、ウェアレベリングによる性能の劣化を低減してよい。
ウェアレベリングを実装する場合、処理は概して固体メモリコントローラによって実行され得るので、ホストシステムからは独立している。このように実装する場合、ホストシステムは、論理ブロックアドレスのみに対して読み書きを実行し、基礎となる物理ブロックアドレスは利用しない。このように、ホストは、ウェアレベリングが実行される結果生じるデータの移動は認識しない。しかし、本発明の実施形態は、メモリ制御に関して変形するとしてよく、任意の特定のメモリ制御方法に限定されない。
ファイルシステムが初期化されてシャットダウンされ、且つ、フォーマッティング処理が実行されない場合、LBECのインクリメントとPBECのインクリメントとは互いに等しい。しかし、ファイルシステムが初期化される前にフラッシュがフォーマッティングされれば、PBECは保持されるかまたはフォーマッティングが終了した後に復元される。一方、LBECは、ブロックデータが消去されて、対応するLBECを保存する必要がないので、全て消去されると考えられる。この結果、未使用、新規または完全消去のフラッシュについては、LBEC合計値=PBEC合計値となる。フォーマッティングが実行されると、LBECは消去されて、PBEC合計値はLBEC合計値よりも大きくなるとしてよい。
上述の例では、ウェアレベリング処理の開始タイミングおよび終了タイミングの決定に用いられるしきい値は1つである。しかし、本発明の実施形態は複数のしきい値を利用するとしてもよい。本発明の一実施形態によると、交換処理が必要な回数を低減するべく、2つのしきい値を利用するとしてもよい。この例では、不揮発性メモリは通常通り使用されており、メモリブロックの物理ブロック消去カウント値および論理ブロック消去カウント値に対する回帰直線適合が次第に大きくなる。磨耗したブロックの交換処理は、メモリブロックに対する回帰直線の傾きが第1しきい値を超えた時に開始されるとしてよい。磨耗したブロック群の交換は、開始されると、回帰直線の傾きが第2しきい値未満となるまで継続して、交換処理を停止するとしてよい。そしてこの処理は、回帰直線の傾きが第1のしきい値を再度超えると磨耗したブロックの交換処理が開始されるという、元の状態に戻る。通常処理に戻ると、非常にアクティブなメモリブロックで消去サイクルがさらに実行されるに従って、回帰直線の傾きは再び次第に大きくなっていく。
図1は、不揮発性メモリの実施形態を示す図である。同図に示すように、不揮発性メモリデバイス100はメモリブロックアレイ105を備える。一例として、メモリブロックアレイ105は、物理ブロックアドレスPB1および論理ブロックアドレスLB7を持つ第1のメモリブロック110と、物理ブロックアドレスPB4および論理ブロックアドレスLB5を持つ第2のメモリブロック115とを有するとしてよい。上述のアドレスは単なる例に過ぎず、物理アドレスまたは論理アドレスは任意のものであってよい。それぞれの動作で、メモリアレイ105の各ブロックには複数の消去サイクルおよび書込サイクルが実行され、各サイクルが実行されることによって対応するセルの寿命が短くなっていく。
図示されているように、第1メモリブロック110は、消去されて、データセットA120が125で書き込まれており、比較的アクティブでないとしてもよい。逆に、第2メモリブロック115は、例えば、データB130が135で変更されて、各書込処理では当該ブロック内のデータを消去する必要があるので、第2ブロック115のセルに対して複数の消去および書込動作140が実行され、比較的アクティブである。このため、時間が経過すると、第2メモリブロック115の磨耗は、第1メモリブロック110の磨耗よりかなり大きいと考えられる。
本発明の一実施形態によると、メモリブロックの磨耗を均一化するべくメモリブロックアレイにはウェアレベリングが実行される。本実施形態によると、ウェアレベリングは、物理ブロック書き込みサイクルのカウントおよび論理ブロックの書き込みサイクルのカウントに基づいて実行される。一実施形態によると、ウェアレベリングアルゴリズムは、直線回帰によって物理ブロック書き込みサイクルおよび論理ブロック書き込みサイクルに適合する線の傾きがしきい値に到達すると、開始される。一実施形態によると、当該アルゴリズムによって、最も磨耗が大きいブロック群(第2メモリブロック115を含むとしてよい)に含まれるデータと、最も磨耗が小さいブロック群(第1メモリブロック110を含むとしてよい)に含まれるデータとを交換する、データリクレームが実現される。別の例を挙げると、最も磨耗が小さいブロック群は、予備メモリブロックを含むとしてよい。予備メモリブロックは、リクレームされる可能性が非常に高い。指定されたメモリブロック群同士の間での交換の後、残りのブロックに対して更に交換処理が実行されるとしてよく、回帰直線の傾きがしきい値を超えることがなくなるまで、処理を継続する。
図2は、ウェアレベリング処理の実施形態を示すフローチャートである。同図に示すように、205でバックグラウンドメモリリクレーム処理が実行される。この処理は、通常のメモリリクレームと、ウェアレベリング用のメモリリクレームとを含む。リクレーム処理は、動作が繰り返し継続する「永久ループ」210と呼ばれる処理として実行される。このループでは、通常のメモリリクレーム処理は215で実行される。
バックグラウンドリクレームタスクの開始から、または、前回のウェアレベリング動作から、220でエラーカウント係数(ECMOD)が追加消去カウント以下となると、ウェアレベリング処理が開始される。物理ブロック消去カウント(PBEC)および論理ブロック消去カウント(LBEC)に対する回帰直線の傾きbを、しきい値SLOPETH225と比較して評価する。傾きbがしきい値を超えない限り、ループは継続する。傾きbがしきい値を超えると、磨耗されたブロック群のスワップが230で実行され、最も磨耗が大きいブロック群(PBEC値およびLBEC値がより大きいメモリブロックおよび予備メモリブロックを含むメモリブロック群)に含まれるデータと、最も磨耗が小さいブロック群(PBEC値およびLBEC値がより小さいメモリブロックを含み、予備メモリブロックを含まないメモリブロック群)に含まれるデータとを交換する。スワップ処理を実行した後、傾きbをしきい値SLOPETH225と再び比較して、傾きbがしきい値SLOPETHを超えなくなるまでスワップ処理を継続する。
一実施形態によると、ウェアレベリングに用いられるしきい値について、処理を変更するとしてもよい。例えば、ウェアレベリング処理は、傾きbが第1しきい値(SLOPETH1)を超えると開始されて、傾きbが第2のしきい値(SLOPETH2)未満となるまで継続するとしてもよく、例えば、SLOPETH2はSLOPETH1よりも小さいとしてよい。
図3Aは、ウェアレベリングに先立って不揮発性メモリ用に生成される回帰直線を示す図である。同図では、不揮発性メモリの各ブロックを、仮想的に、物理ブロック消去カウント(PBEC305)および論理ブロック消去カウント(LBEC310)によって表している。新規のフラッシュメモリの場合、最初の物理ブロック消去カウントおよび論理ブロック消去カウントは、非常に小さいかまたはゼロとなっている。しかし、書き込みサイクルが実行されるにつれて、図3Aに示すように、メモリブロックがアクティブであるほど、物理ブロック消去カウントおよび論理ブロック消去カウントの両方のカウント値が大きくなっていく。
同図に示すように、時間が経過すると、PBEC値およびLBEC値が小さいメモリブロック315と、PBEC値およびLBEC値が中程度のメモリブロック320と、PBEC値およびLBEC値が大きいメモリブロック325とが出てくるものと思われる。本発明の一実施形態によると、直線回帰を用いてメモリブロック値335に対して回帰直線を生成する。図示の便宜上、対称線330を示す。対称線330の右側のメモリブロックは、対称線330の左側のメモリブロックに比べて、磨耗の程度が高い。このため、ウェアレベリングが実行されなければ、デバイスの故障の発生が早まってしまう。
本発明の一実施形態によると、ウェアレベリングの評価は、消去イベントが所定回数実行された後で行われるとしてよい。評価について説明すると、回帰直線335の傾きがしきい値よりも大きい場合、ウェアレベリング処理を開始するとしてよく、この結果、磨耗したブロック群350が交換される。交換について説明すると、最も磨耗が大きいブロック群325のブロックに含まれているデータと、最も磨耗が少ないブロック群315のブロックのデータとを交換する。一実施形態によると、このようなスワップは一連のリクレーム処理に基づいて実行される。交換の後、回帰直線が再び生成されて、傾きを再びしきい値と比較する。このような処理は、傾きがしきい値未満となるよう十分に変更されるまで継続される。
図3Bは、ウェアレベリングの実施形態が実施された後で不揮発性メモリについて生成される回帰直線を示す図である。同図では、不揮発性メモリの各ブロックを再度、仮想的に、物理ブロック消去カウント(PBEC355)および論理ブロック消去カウント(LBEC360)を用いて表している。磨耗したブロック群同士の間で交換を実行した結果得られる回帰直線の傾きは385に示すように変化している。交換の後では、PBEC値が大きくてLBEC値が小さいメモリブロック365と、PBEC値およびLBEC値が中程度のメモリブロック370(これらのメモリブロックは交換されていない可能性が高い)と、PBEC値が小さくてLBEC値が高いメモリブロック375とが存在することになる。図示の便宜上、対称線380をここでも示している。まとめると、対称線380の右側にあるメモリブロックは現時点では、磨耗が比較的小さいブロックだが今後磨耗する可能性があるアクティブなデータを含むメモリブロックである。対称線380の左側にあるメモリブロックは現時点では、磨耗が比較的大きいブロックであるが、よりアクティブでないデータを有しており、今後の磨耗はより小さくなると考えられる。
図4から図7は、ウェアレベリング処理の実施形態のメモリブロックリクレーム処理の一例を示す図である。図4から図7では、不揮発性メモリの一例が備えるメモリブロックを図示する。図中で、PBnはn番目の物理ブロックを意味し、LBnはn番目の論理ブロックを意味する。同図から分かるように、どのメモリブロックも、物理ブロックアドレスを有し、さらに、論理ブロックアドレスを有しているか、または、予備として指定されている。図示されている例では、メモリデバイスは8つのメモリブロック(PB0からPB7)を備えている。各図では、各メモリブロックが、物理ブロックアドレス405と、論理ブロックアドレス410と、論理ブロック消去カウント415と、物理ブロック消去カウント420とによって指定されている。本発明の一実施形態によると、IWL処理が実施されて、適切なメモリブロック群のメモリブロックに含まれているデータ同士を、一連のリクレーム処理に基づいてスワップする。図4から図7はデータスワップの特定の処理を図示しているが、本発明の実施形態は、スワップ処理を実行する際に任意の特定のプロセスに限定されるわけではない。
図4は、不揮発性メモリの一例が備えるブロックを示す。図示の便宜上、磨耗は概してPB0からPB7の順に大きくなっている。しかし実際には、メモリブロックのいずれが磨耗するとしてもよく、必ずしも順序があるわけではない。特定の実施例によると、間隔および傾きのしきい値が設定され、この場合はECMOD=135でSLOPETH=0.09であってよい。これらの値は、この例について具体的に設定される値であるが、必要に応じて変更することができる。
図4において、生データセット(l,p),(l,p),・・・,(l,p)のトレンドを算出すると、LBEC合計値=135で、PBEC合計値=135で、b=0.0976515である。消去カウントがECMODに到達しているので、傾きを評価する。この場合、傾きはSLOPETH値の0.09よりも大きく、メモリの磨耗が著しく不均衡になっていることを示している。このため、ウェアレベリング処理が開始される。
本発明の一実施形態によると、メモリブロックをメモリブロック群に分割する際にはさまざまな方法を用いるとしてよい。図4に簡略化して示した例では、小ブロック群はPB0 425(LBEC=7およびPBEC=4)およびPB1 430(LBEC=3およびPBEC=6)を含むとしてよい。これらのブロックは磨耗が小さく、アクティブなデータを含んでいるようには見えないことが分かる。大ブロック群のブロックには、PB6 455(LBEC=30およびPBEC=28)およびPB7 460(PBEC=30の予備ブロック)が含まれるとしてよい。同図では、大ブロック群および小ブロック群は隣接するメモリブロックから構成されているが、図示の便宜上こうなっているに過ぎない。実際には、大ブロック群または小ブロック群はどのメモリブロックを含むとしてもよい。残りのブロック(PB2 435、PB3 440、PB4 445、およびPB5 450)は、中程度ブロック群に分類され、スワップには関係しない。スワップの結果得られる傾きの変化が十分でない場合には、これらの残りのブロックもスワップ処理のために大ブロック群および小ブロック群に入れられるとしてよい。
本発明の一実施形態によると、従来のリクレーム処理を用いる一連の動作に基づいてスワップを実施するとしてよい。例えば、PB0 425とPB7 460との間でリクレーム(PB0、PB7)という処理を用いてスワップが行われると、PB0からPB7へとデータを複製して、PB0を消去して、PB0を予備ブロックとして設定する。図4に示す例では、リクレーム(PB0、PB7)は第1スワップモードである。
図5は、リクレーム(PB0,PB7)実行後のメモリを示す図である。この例では、PB0 525は現時点では、予備ブロックで、PBECは4から5へと大きくなっている。PB7 560は現時点では、LB6となっており、LBECは7から8へと大きくなっている。(PB7 560のPBECは、予備ブロックなので、30のままである。このため、既に消去されており、データを書き込む前に消去する必要はない。)この時点で、LBEC合計値=136、PBEC合計値=136、およびb=−0.11161である。
図6は、その後に続いてリクレーム(PB6,PB0)という処理が実行された結果のメモリを示す図である。この処理の実行後、PB6 655は予備ブロックとなり、PBECは28から29へと大きくなっている。PB0 625は、LB0となり、LBECは30から31へと大きくなっている。交換処理のこの時点において、LBEC合計値=137、PBEC合計値=137、b=−0.28086である。
図7は、一連の処理のうち最後になるリクレーム(PB6,PB1)という処理が実行された結果のメモリを示す図である。この最終段階では、PB0 625はLBEC=31でPBEC=5であり、PB1 730は予備ブロック(このため次のリクレームブロックとなる可能性が高い)でPBEC=7となっている。このため、磨耗の程度が最も低いブロック群はこの時点で、よりアクティブなデータを有しており、低い磨耗の程度と高いデータのアクティブ性とを一致させている。さらに、PB6 755はLBEC=4でPBEC=29であり、PB7 560はLBEC=8でPBEC=30である。磨耗の程度が最も高いブロック群はこの時点で、よりアクティブでないデータを有し、高い磨耗の程度と低いデータのアクティブ性とを一致させている。一連のリクレーム処理の最後の処理の実行後、LBEC合計値=138、PBEC合計値=138、b=−0.54262となる。このように、PBEC−LBEC回帰直線の傾きはしきい値未満まで低減されている。本発明の実施形態によると、ウェアレベリング処理はここで完了する。この後システムは、ECMODに等しい数の消去サイクルが経過するのを待って、再び傾きをしきい値と比較してもう一度ウェアレベリングサイクルが必要か否かを判断する。PBEC−LBEC回帰直線の傾きがしきい値未満まで低減していなければ交換処理を継続し、さらにデータを交換して、求められている値未満になるまで傾きを低減する。
図8は、不揮発性メモリデバイスの一実施形態を示す図である。同図に示すように、フラッシュメモリ等の不揮発性メモリデバイス800は、装置815に結合されているとしてもよいし、装置815の一部であるとしてもよい。装置は、コンピュータ、携帯情報端末(PDA)またはハンドヘルドコンピュータ、デジタルカメラ、デジタルミュージックプレーヤ等の装置を含む、電子メモリを必要とする装置であればどのようなものであってもよい。メモリデバイス800は、メモリコントローラ810に結合されているメモリアレイ805を備え、メモリコントローラ810はメモリアレイ805におけるデータの格納を制御する。メモリアレイ805は、複数のメモリセルを含むメモリブロックを複数有する。一例を挙げると、第1メモリブロック820および第2メモリブロック825を有する。本例では、第1メモリブロック820は、物理ブロックPB0であり、論理ブロックLB5である。第2メモリブロック825は、物理ブロックPB3であり、論理ブロックLB2である。メモリコントローラ810は、例えば、論理ロケーションによって装置815がメモリセルをアドレス指定するように、論理メモリロケーションの割り当てを担当するとしてよく、メモリセルの物理ロケーションは認識していない。
本発明の一実施形態によると、メモリコントローラ810は、メモリアレイ805について消去−書込サイクルのカウントを記録する。カウントは、各物理ブロックおよび各論理ブロックについてのカウントを含む。一実施形態によると、このカウントに基づいて、メモリデバイスのウェアレベリング処理を実施する。一実施形態によると、メモリデバイス800は、現在の書込−消去サイクルカウントを含むレジストリを1以上備えるとしてよい。図示されているように、メモリデバイス800は、物理ブロック消去カウント830のレジストリと論理ブロック消去カウント835のレジストリとを備える。同図に示すように、物理ブロック消去カウント830のレジストリは、第1のメモリブロック820についてPB0EC(PB0の消去カウント)840、第2のメモリブロック825についてPB3EC 845、というようにn番目の物理ブロックについてPBnEC 850を有する。論理ブロック消去カウント835のレジストリは、第1のメモリブロック820についてLB2EC(LB2の消去カウント)855、第2のメモリブロック825についてLB5EC 860、というようにm番目の論理ブロックについてLBmEC 865を有する。メモリアレイ805は、論理メモリブロックに割り当てられていない予備ブロックを1以上備えるとしてよいので、mはnより小さいとしてよい。
本発明の一実施形態によると、メモリコントローラ810はメモリアレイ805に含まれるブロックの現在の磨耗の状態を評価する。一実施形態によると、この評価は、ECMODに等しい数の消去サイクルが経過した後で実施される。本発明の一実施形態によると、メモリコントローラ810は、物理ブロック消去カウント830のレジストリおよび論理ブロック消去カウント835のレジストリに含まれるデータについての回帰直線の傾きを算出する。メモリコントローラ810は、回帰直線の傾きがしきい値(SLOPETH)より大きければ、磨耗が大きいメモリブロック群(PBEC値およびLBEC値が大きいメモリブロックであって、予備ブロックを含む)および磨耗が小さいメモリブロック群(PBEC値およびLBEC値が小さいメモリブロック)を特定して、特定されたメモリブロック群同士の間でデータを交換して、アクティブなデータを磨耗が小さいメモリブロックに移す。
図9は、本発明の一実施形態を利用するコンピュータシステムを示す図である。本発明に特に関連しない標準的および公知の構成要素は図示していない。本発明の一実施形態によると、コンピュータ900は、情報を通信するための通信手段であるバス905と、情報を処理するべくバス905に結合されている2以上のプロセッサ910(図中では、第1プロセッサ915および第2プロセッサ920と示している)である処理手段とを備える。プロセッサ910は、1以上の物理プロセッサおよび1以上の論理プロセッサを有するとしてよい。さらに、プロセッサ910が有する各プロセッサは、複数のプロセッサコアを含むとしてよい。コンピュータ900は、図示の便宜上1つのバス905を備えるものとして図示されているが、複数の異なるバスを備えるとしてもよく、このようなバスに対する構成要素の接続方法はさまざまであってよい。図9に図示しているバス905は、任意の1以上の別個の物理的バス、ポイントツーポイント接続、または、適切なブリッジ、アダプタまたはコントローラによって接続された両者を抽象的に表したものである。このためバス905は、例えば、システムバス、周辺機器インターコネクト(PCI)バス、ハイパートランスポート(HyperTransport)または業界標準アーキテクチャ(ISA)バス、スモールコンピュータシステムインターフェース(SCSI)バス、ユニバーサルシリアルバス(USB)、IIC(I2C)バス、または、「ファイヤワイヤ」と呼ばれることもある米国電気電子学会(IEEE)規格1394バス(「高性能シリアルバスの規格」、1394−1995、IEEE、1996年8月30日出版、およびその付録)を含むとしてよい。
コンピュータ900はさらに、情報およびプロセッサ910によって実行される命令を格納するべく、メインメモリ925として、ランダムアクセスメモリ(RAM)等のダイナミックストレージデバイスを備える。メインメモリ925はさらに、プロセッサ910が命令を実行している間、一時的な変数またはその他の中間情報を格納するべく利用されるとしてもよい。RAMメモリは、メモリコンテンツのリフレッシュが必要なダイナミックランダムアクセスメモリ(DRAM)およびコンテンツをリフレッシュする必要がないがコストが大きくなるスタティックランダムアクセスメモリ(SRAM)を含む。DRAMメモリは、信号を制御するべくクロック信号を含むシンクロナスダイナミックランダムアクセスメモリ(SDRAM)および拡張データアウトダイナミックランダムアクセスメモリ(EDO DRAM)を含むとしてよい。メインメモリは、無線デバイスから受信した信号を格納するべく利用されるとしてよい。コンピュータ900はさらに、リードオンリーメモリ(ROM)930および/またはプロセッサ910用のスタティック情報および命令を格納するためのその他のスタティックストレージデバイスを備えるとしてよい。
コンピュータ900のバス905にはさらに、情報および命令を格納するべくデータストレージ935が結合されるとしてよい。データストレージ935は、磁気ディスクまたは光ディスクおよび対応するドライブ、フラッシュメモリまたはその他の不揮発性メモリ、もしくはその他のメモリデバイスを含むとしてよい。このような構成要素は、互いに組み合わせられるとしてもよいし、または、別個の構成要素として構成されるとしてもよく、コンピュータ900のほかの構成要素の一部分を利用するとしてよい。本発明の一実施形態によると、データストレージ935はフラッシュメモリ937を有するとしてよい。実施形態によると、フラッシュメモリ937は、各メモリブロックの消去−書込サイクルが不均一に実施されるためフラッシュメモリ937のメモリブロックが不均一に磨耗すると、それを均一化するべくウェアレベリング処理を実現する。
コンピュータ900はさらに、バス905を介して、エンドユーザに情報を表示するための表示デバイス940に結合されるとしてよい。表示デバイス940は、例えば、陰極線管(CRT)ディスプレイ、液晶ディスプレイ(LCD)、プラズマディスプレイ、またはその他の任意のディスプレイ技術である。ある環境においては、表示デバイスは、入力デバイスの少なくとも一部分としても利用されるタッチスクリーンであってよい。ある環境においては、表示デバイス940は、音声情報を提供するためのスピーカ等である音声デバイスであってもよいし、そのような音声デバイスを含むとしてもよい。入力デバイス945は、プロセッサ910に対して情報および/またはコマンド選択を通信するべく、バス905に結合されるとしてよい。さまざまな実施例によると、入力デバイス945は、キーボード、キーパッド、タッチスクリーンおよびスタイラス、音声作動システム等の入力デバイス、またはこれらの入力デバイスの組み合わせとしてもよい。別の種類のユーザ入力デバイスとしては、1以上のプロセッサ910に対して方向情報およびコマンド選択を通信して、表示デバイス940上でのカーソルの動きを制御するマウス、トラックボール、またはカーソル方向キー等のカーソル制御デバイス950が挙げられる。
通信デバイス955がさらにバス905に結合されるとしてよい。特定の実施例によっては、通信デバイス955は、マザーボード上の送受信機、無線モデム、ネットワークインターフェースカード、ローカルエリアネットワーク(LAN)、またはその他のインターフェースデバイスを有するとしてよい。通信デバイス955は、無線デバイスからの信号を受信するべく利用されるとしてよい。無線通信用に、通信デバイス955は1以上のアンテナ958を有するとしてよい。一実施形態によると、通信デバイス955はコンピュータ900を不適切なアクセスから保護するためのファイヤーウォールを有するとしてよい。コンピュータ900は、インターネット、ローカルエリアネットワーク、またはその他の環境へのリンクを含む通信デバイス955を用いて、ローカルエリアネットワーク(LAN)965等のネットワーク、または、その他のデバイスに接続されるとしてよい。コンピュータ900はさらに、電力デバイスまたはシステム960を備えるとしてよく、電力デバイスまたはシステム960は、電源、電池、太陽電池、燃料電池、もしくは電力を供給または生成するその他のシステムまたはデバイスを含むとしてよい。電力デバイスまたはシステム960から供給される電力は、必要に応じてコンピュータ900の構成要素に分配されるとしてよい。
当業者であれば、本開示内容を参照することによって、本発明の範囲内で上述の記載および図面に基づいて他にも多くの変形例を成し得ることに想到するであろう。実際、本発明は上述した詳細な内容に限定されない。本発明の範囲は、補正を含む本願の請求項によって定義される。
上述の記載において、説明を目的として、本発明を完全に理解していただくべく具体的且つ詳細な内容を数多く記載している。しかし、そのような具体的且つ詳細な記載は本発明を実施する際には必須でないことは、当業者には明らかである。また、公知の構造およびデバイスをブロック図で示している。
本発明はさまざまな処理を含み得る。本発明の処理は、ハードウェア素子によって実施されるとしてもよく、または、命令がプログラミングされた汎用または特定用途向けのプロセッサまたは論理回路に当該処理を実行させるべく用いられる機械実行可能命令において実施されるとしてもよい。これに代えて、当該処理は、ハードウェアおよびソフトウェアの組み合わせによって実行されるとしてよい。
本発明の一部は、本発明に係る処理を実行させるべくコンピュータ(またはその他の電子デバイス)をプログラミングするべく利用される命令を格納している機械可読媒体を備えるコンピュータプログラム製品として提供されるとしてよい。機械可読媒体は、これらに限定されないが、フロッピーディスク(登録商標)、光ディスク、コンパクトディスクリードオンリーメモリ(CD−ROM、および光磁気ディスク、リードオンリーメモリ(ROM)、ランダムアクセスメモリ(RAM)、消去可能且つプログラミング可能リードオンリーメモリ(EPROM)、電気的に消去可能且つプログラミング可能リードオンリーメモリ(EEPROM(登録商標))、磁気カードまたは光カード、フラッシュメモリ、またはその他の種類の電子命令を格納するのに適している媒体/機械可読媒体を含むとしてよい。さらに、本発明は、コンピュータプログラム製品としてダウンロードされるとしてもよく、当該プログラムはリモートコンピュータから要求元コンピュータへと、通信リンク(例えば、モデムまたはネットワーク接続)を介した搬送波またはその他の伝播媒体として実施されるデータ信号によって、転送されるとしてよい。
記載した方法の多くは、最も基本的な形態を説明しているが、本発明の基本的な範囲を逸脱することなく、上述した方法のいずれについても処理の追加または削除が可能であり、上述のメッセージのいずれについても情報の追加または削除が可能である。さらなる変形および変更が可能であることは当業者には明らかである。特定の実施形態は、本発明を限定するためではなく説明するために記載されている。本発明の範囲は、上述した具体例によって決まるのではなく、本願の請求項によってのみ決まる。
また、本明細書で「一実施形態」または「実施形態」という場合、特定の特徴が本発明の実施に含まれることを意味すると考えられたい。同様に、本発明の実施形態例の上述の説明において、本発明の開示を整理すると共にさまざまな発明的側面のうち1以上を理解しやすくすることを目的として、本発明のさまざまな特徴を1つの実施形態、図面または説明にまとめていることがあると考えられたい。しかし、このように開示しているからといって、請求している発明が各請求項に明示的に記載しているよりも多くの特徴を必要としているという意図を反映していると解釈されるべきではない。逆に、本願の請求項から分かるように、発明的側面は、先に開示されている実施形態のうち1つが有するすべての特徴よりも少ない特徴に存在する。このように、請求項はここにおいて本明細書に明確に組み込まれると共に、各請求項はそれ自身が本発明の独立した実施形態となる。

Claims (18)

  1. 不揮発性メモリの複数のメモリブロックの各メモリブロックについて消去サイクルをカウントすることと、
    前記複数のメモリブロックの前記消去サイクルをカウントすることに少なくとも部分的に基づいて、前記不揮発性メモリのメモリブロックが不均一に磨耗しているか否かを判断することと
    を含み、
    前記各メモリブロックについて消去サイクルをカウントすることは、
    前記各メモリブロックの物理ブロックアドレスについての第1カウントをインクリメントすることと、
    前記メモリブロックが予備メモリブロックでなければ、前記各メモリブロックの論理ブロックアドレスについての第2カウントをインクリメントすることと
    を含む
    不揮発性メモリのウェアレベリングの方法。
  2. 前記不揮発性メモリが不均一に磨耗している場合、
    前記不揮発性メモリの磨耗レベルが高い複数のメモリブロックを含む第1メモリブロック群、および、前記不揮発性メモリの磨耗レベルが低い複数のモリブロックを含む第2メモリブロック群を特定し、
    前記第1メモリブロック群の1以上のメモリブロックからのデータと、前記第2メモリブロック群の1以上のメモリブロックからのデータとを交換する
    請求項1に記載の方法。
  3. 前記複数のメモリブロックのうち第1メモリブロックと第2メモリブロックとの間でデータを交換することは、前記第1メモリブロックから前記第2メモリブロックへと前記論理ブロックアドレスを移すことを含む
    請求項2に記載の方法。
  4. 前記第1メモリブロック群の1以上のメモリブロックからのデータと、前記第2メモリブロック群の1以上のメモリブロックからのデータとを交換することは、一連のメモリブロックリクレーム処理を含む
    請求項2に記載の方法。
  5. 前記不揮発性メモリのメモリブロックが不均一に磨耗しているか否かを判断することは、各物理ブロックアドレスの前記消去サイクルおよび各論理ブロックアドレスの前記消去サイクルを表す線を直線回帰によって生成することを含む
    請求項1に記載の方法。
  6. 前記不揮発性メモリのメモリブロックが不均一に磨耗しているか否かを判断することはさらに、前記生成された線の傾きを傾きしきい値と比較することを含む
    請求項5に記載の方法。
  7. 前記生成された線の前記傾きは、前記不揮発性メモリについて消去サイクルが所定数発生した後に前記傾きしきい値と比較される
    請求項6に記載の方法。
  8. 前記不揮発性メモリはフラッシュメモリである
    請求項1に記載の方法。
  9. 複数のメモリブロックを有するメモリアレイと、
    前記メモリアレイに結合され、前記メモリアレイにおけるデータの格納を制御するメモリコントローラと、
    前記メモリアレイの前記複数のメモリブロックについて消去動作の回数を記録する1以上のレジスタと
    を備え、
    前記複数のメモリブロックはそれぞれ、物理ブロックアドレスを持ち、
    前記複数のメモリブロックはそれぞれ、論理ブロックアドレスを持つか、または、予備メモリブロックであり、
    前記1以上のレジスタは、各物理ブロックアドレスについての消去サイクルカウントおよび各論理ブロックアドレスについての消去サイクルカウントを有する
    不揮発性メモリデバイス。
  10. 前記メモリコントローラは、各物理ブロックアドレスについての消去サイクルの数および各論理ブロックアドレスについての消去サイクルの数を表す線の傾きを決定する
    請求項9に記載のデバイス。
  11. 前記メモリコントローラは、消去サイクルが所定数発生した後で、前記線の前記傾きを決定する
    請求項10に記載のデバイス。
  12. 前記メモリコントローラは、前記線の前記傾きをしきい値と比較して、前記線の前記傾きは前記しきい値を超える場合に、メモリブロックの交換を実行する
    請求項10に記載のデバイス。
  13. 前記メモリブロックの交換は、消去カウントが大きい複数のメモリブロックを含む第1メモリブロック群と、消去カウントが小さい複数のメモリブロックを含む第2メモリブロック群との間で、データを交換することを含む
    請求項12に記載のデバイス。
  14. 前記メモリアレイは、フラッシュメモリアレイを有する
    請求項9に記載のデバイス。
  15. バスと、
    前記バスに結合され、複数のメモリブロックを有するフラッシュメモリデバイスと、
    前記バスに結合されているダイナミックランダムアクセスメモリと、
    前記バスに結合されているプロセッサと
    を備えるコンピュータシステムであって、
    前記プロセッサは、前記ダイナミックランダムアクセスメモリと前記フラッシュメモリデバイスとの間でデータを転送し、
    前記システムは、前記複数のメモリブロックのそれぞれについて、物理ブロックアドレスおよび論理ブロックアドレスの消去サイクルの数をトラッキングする
    コンピュータシステム。
  16. 前記システムは、前記複数のメモリブロックのそれぞれについて、前記物理ブロックアドレスおよび前記論理ブロックアドレスの前記消去サイクルの数に少なくとも部分的に基づいて、前記フラッシュメモリデバイスが不均一に磨耗しているか否かを判断する
    請求項15に記載のシステム。
  17. 前記システムは、前記複数のメモリブロックのそれぞれについての前記物理ブロックアドレスおよび前記論理ブロックアドレスの前記消去サイクルの数に関する回帰直線の傾きと傾きしきい値とを比較することによって、前記フラッシュメモリデバイスが不均一に磨耗しているか否かを判断する
    請求項16に記載のシステム。
  18. 前記システムは、消去サイクルが所定数発生する度に、前記フラッシュメモリデバイスが不均一に磨耗しているか否かを判断する
    請求項16に記載のシステム。
JP2009543319A 2006-12-27 2006-12-27 不揮発性メモリのイニシアチブウェアレベリング Expired - Fee Related JP5006940B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2006/003615 WO2008077284A1 (en) 2006-12-27 2006-12-27 Initiative wear leveling for non-volatile memory

Publications (2)

Publication Number Publication Date
JP2010515127A true JP2010515127A (ja) 2010-05-06
JP5006940B2 JP5006940B2 (ja) 2012-08-22

Family

ID=39562076

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009543319A Expired - Fee Related JP5006940B2 (ja) 2006-12-27 2006-12-27 不揮発性メモリのイニシアチブウェアレベリング

Country Status (5)

Country Link
US (1) US8356152B2 (ja)
JP (1) JP5006940B2 (ja)
KR (1) KR101087308B1 (ja)
DE (1) DE112006004187B4 (ja)
WO (1) WO2008077284A1 (ja)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9201786B2 (en) 2012-12-21 2015-12-01 Kabushiki Kaisha Toshiba Memory controller and memory system
US9799407B2 (en) 2015-09-02 2017-10-24 Samsung Electronics Co., Ltd. Method for operating storage device managing wear level depending on reuse period
US9837167B2 (en) 2015-08-24 2017-12-05 Samsung Electronics Co., Ltd. Method for operating storage device changing operation condition depending on data reliability
US10127984B2 (en) 2015-08-24 2018-11-13 Samsung Electronics Co., Ltd. Method for operating storage device determining wordlines for writing user data depending on reuse period
KR20200032764A (ko) * 2017-08-23 2020-03-26 마이크론 테크놀로지, 인크 메모리에서의 감지 동작

Families Citing this family (109)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2007132456A2 (en) 2006-05-12 2007-11-22 Anobit Technologies Ltd. Memory device with adaptive capacity
WO2007132457A2 (en) 2006-05-12 2007-11-22 Anobit Technologies Ltd. Combined distortion estimation and error correction coding for memory devices
WO2007132452A2 (en) 2006-05-12 2007-11-22 Anobit Technologies Reducing programming error in memory devices
WO2007132453A2 (en) 2006-05-12 2007-11-22 Anobit Technologies Ltd. Distortion estimation and cancellation in memory devices
US8060806B2 (en) 2006-08-27 2011-11-15 Anobit Technologies Ltd. Estimation of non-linear distortion in memory devices
WO2008053472A2 (en) 2006-10-30 2008-05-08 Anobit Technologies Ltd. Reading memory cells using multiple thresholds
CN101601094B (zh) 2006-10-30 2013-03-27 苹果公司 使用多个门限读取存储单元的方法
US7924648B2 (en) 2006-11-28 2011-04-12 Anobit Technologies Ltd. Memory power and performance management
US7706182B2 (en) 2006-12-03 2010-04-27 Anobit Technologies Ltd. Adaptive programming of analog memory cells using statistical characteristics
US8151163B2 (en) 2006-12-03 2012-04-03 Anobit Technologies Ltd. Automatic defect management in memory devices
US9153337B2 (en) * 2006-12-11 2015-10-06 Marvell World Trade Ltd. Fatigue management system and method for hybrid nonvolatile solid state memory system
US7900102B2 (en) 2006-12-17 2011-03-01 Anobit Technologies Ltd. High-speed programming of memory devices
US7751240B2 (en) 2007-01-24 2010-07-06 Anobit Technologies Ltd. Memory device with negative thresholds
US8151166B2 (en) 2007-01-24 2012-04-03 Anobit Technologies Ltd. Reduction of back pattern dependency effects in memory devices
US8369141B2 (en) 2007-03-12 2013-02-05 Apple Inc. Adaptive estimation of memory cell read thresholds
US8001320B2 (en) 2007-04-22 2011-08-16 Anobit Technologies Ltd. Command interface for memory devices
US8234545B2 (en) 2007-05-12 2012-07-31 Apple Inc. Data storage with incremental redundancy
US8429493B2 (en) 2007-05-12 2013-04-23 Apple Inc. Memory device with internal signap processing unit
US7925936B1 (en) 2007-07-13 2011-04-12 Anobit Technologies Ltd. Memory device with non-uniform programming levels
US8259497B2 (en) 2007-08-06 2012-09-04 Apple Inc. Programming schemes for multi-level analog memory cells
KR101413736B1 (ko) * 2007-09-13 2014-07-02 삼성전자주식회사 향상된 신뢰성을 갖는 메모리 시스템 및 그것의웨어-레벨링 기법
US8174905B2 (en) 2007-09-19 2012-05-08 Anobit Technologies Ltd. Programming orders for reducing distortion in arrays of multi-level analog memory cells
US7773413B2 (en) 2007-10-08 2010-08-10 Anobit Technologies Ltd. Reliable data storage in analog memory cells in the presence of temperature variations
US8068360B2 (en) 2007-10-19 2011-11-29 Anobit Technologies Ltd. Reading analog memory cells using built-in multi-threshold commands
US8000141B1 (en) 2007-10-19 2011-08-16 Anobit Technologies Ltd. Compensation for voltage drifts in analog memory cells
US8527819B2 (en) 2007-10-19 2013-09-03 Apple Inc. Data storage in analog memory cell arrays having erase failures
KR101509836B1 (ko) 2007-11-13 2015-04-06 애플 인크. 멀티 유닛 메모리 디바이스에서의 메모리 유닛의 최적화된 선택
US8225181B2 (en) 2007-11-30 2012-07-17 Apple Inc. Efficient re-read operations from memory devices
US8209588B2 (en) 2007-12-12 2012-06-26 Anobit Technologies Ltd. Efficient interference cancellation in analog memory cell arrays
US8456905B2 (en) 2007-12-16 2013-06-04 Apple Inc. Efficient data storage in multi-plane memory devices
US8085586B2 (en) 2007-12-27 2011-12-27 Anobit Technologies Ltd. Wear level estimation in analog memory cells
US8156398B2 (en) 2008-02-05 2012-04-10 Anobit Technologies Ltd. Parameter estimation based on error correction code parity check equations
US7924587B2 (en) 2008-02-21 2011-04-12 Anobit Technologies Ltd. Programming of analog memory cells using a single programming pulse per state transition
US7864573B2 (en) 2008-02-24 2011-01-04 Anobit Technologies Ltd. Programming analog memory cells for reduced variance after retention
US8230300B2 (en) 2008-03-07 2012-07-24 Apple Inc. Efficient readout from analog memory cells using data compression
US8400858B2 (en) 2008-03-18 2013-03-19 Apple Inc. Memory device with reduced sense time readout
US8059457B2 (en) 2008-03-18 2011-11-15 Anobit Technologies Ltd. Memory device with multiple-accuracy read commands
TWI385669B (zh) * 2008-07-23 2013-02-11 Phison Electronics Corp 用於快閃記憶體的平均磨損方法、儲存系統與控制器
KR101103061B1 (ko) * 2008-07-28 2012-01-06 주식회사 팍스디스크 반도체 스토리지 시스템 및 그 제어 방법
US7995388B1 (en) 2008-08-05 2011-08-09 Anobit Technologies Ltd. Data storage using modified voltages
US7924613B1 (en) 2008-08-05 2011-04-12 Anobit Technologies Ltd. Data storage in analog memory cells with protection against programming interruption
US8169825B1 (en) 2008-09-02 2012-05-01 Anobit Technologies Ltd. Reliable data storage in analog memory cells subjected to long retention periods
US8949684B1 (en) 2008-09-02 2015-02-03 Apple Inc. Segmented data storage
US8000135B1 (en) 2008-09-14 2011-08-16 Anobit Technologies Ltd. Estimation of memory cell read thresholds by sampling inside programming level distribution intervals
US8482978B1 (en) 2008-09-14 2013-07-09 Apple Inc. Estimation of memory cell read thresholds by sampling inside programming level distribution intervals
US8239734B1 (en) 2008-10-15 2012-08-07 Apple Inc. Efficient data storage in storage device arrays
US8891298B2 (en) 2011-07-19 2014-11-18 Greenthread, Llc Lifetime mixed level non-volatile memory system
US8713330B1 (en) 2008-10-30 2014-04-29 Apple Inc. Data scrambling in memory devices
US8208304B2 (en) 2008-11-16 2012-06-26 Anobit Technologies Ltd. Storage at M bits/cell density in N bits/cell analog memory cell devices, M>N
US8397131B1 (en) 2008-12-31 2013-03-12 Apple Inc. Efficient readout schemes for analog memory cell devices
US8248831B2 (en) 2008-12-31 2012-08-21 Apple Inc. Rejuvenation of analog memory cells
US8924661B1 (en) 2009-01-18 2014-12-30 Apple Inc. Memory system including a controller and processors associated with memory devices
US8228701B2 (en) 2009-03-01 2012-07-24 Apple Inc. Selective activation of programming schemes in analog memory cell arrays
US8832354B2 (en) 2009-03-25 2014-09-09 Apple Inc. Use of host system resources by memory controller
US8259506B1 (en) 2009-03-25 2012-09-04 Apple Inc. Database of memory read thresholds
US8238157B1 (en) 2009-04-12 2012-08-07 Apple Inc. Selective re-programming of analog memory cells
US8065469B2 (en) 2009-04-20 2011-11-22 Imation Corp. Static wear leveling
US8176295B2 (en) 2009-04-20 2012-05-08 Imation Corp. Logical-to-physical address translation for a removable data storage device
US8732389B2 (en) 2009-06-23 2014-05-20 Seagate Technology Llc Memory wear control
EP2270525A1 (en) * 2009-07-02 2011-01-05 Gemalto SA Method of auditing the wear of a memory embedded in a secure electronic token
US8479080B1 (en) 2009-07-12 2013-07-02 Apple Inc. Adaptive over-provisioning in memory systems
US8447915B2 (en) * 2009-07-23 2013-05-21 Hitachi, Ltd. Flash memory device for allocating physical blocks to logical blocks based on an erase count
TWI421869B (zh) * 2009-10-14 2014-01-01 Phison Electronics Corp 用於快閃記憶體的資料寫入方法及其控制器與儲存系統
US8495465B1 (en) 2009-10-15 2013-07-23 Apple Inc. Error correction coding over multiple memory pages
US8677054B1 (en) 2009-12-16 2014-03-18 Apple Inc. Memory management schemes for non-volatile memory devices
US8694814B1 (en) 2010-01-10 2014-04-08 Apple Inc. Reuse of host hibernation storage space by memory controller
US8677203B1 (en) 2010-01-11 2014-03-18 Apple Inc. Redundant data storage schemes for multi-die memory systems
US8694853B1 (en) 2010-05-04 2014-04-08 Apple Inc. Read commands for reading interfering memory cells
US8572423B1 (en) 2010-06-22 2013-10-29 Apple Inc. Reducing peak current in memory systems
TWI457941B (zh) * 2010-06-25 2014-10-21 Macronix Int Co Ltd 區塊為基礎快閃記憶體之位元組存取的方法與裝置
US8595591B1 (en) 2010-07-11 2013-11-26 Apple Inc. Interference-aware assignment of programming levels in analog memory cells
US9104580B1 (en) 2010-07-27 2015-08-11 Apple Inc. Cache memory for hybrid disk drives
US8767459B1 (en) 2010-07-31 2014-07-01 Apple Inc. Data storage in analog memory cells across word lines using a non-integer number of bits per cell
US8856475B1 (en) 2010-08-01 2014-10-07 Apple Inc. Efficient selection of memory blocks for compaction
US9146875B1 (en) * 2010-08-09 2015-09-29 Western Digital Technologies, Inc. Hybrid drive converting non-volatile semiconductor memory to read only based on life remaining
US8493781B1 (en) 2010-08-12 2013-07-23 Apple Inc. Interference mitigation using individual word line erasure operations
US8694854B1 (en) 2010-08-17 2014-04-08 Apple Inc. Read threshold setting based on soft readout statistics
US9021181B1 (en) 2010-09-27 2015-04-28 Apple Inc. Memory management for unifying memory cell conditions by using maximum time intervals
US20120198124A1 (en) * 2011-01-28 2012-08-02 Apple Inc. Methods and systems for optimizing read operations in a non-volatile memory
US20120324143A1 (en) 2011-06-15 2012-12-20 Data Design Corporation Methods and apparatus for data access by a reprogrammable circuit module
US9417894B1 (en) 2011-06-15 2016-08-16 Ryft Systems, Inc. Methods and apparatus for a tablet computer system incorporating a reprogrammable circuit module
US11024352B2 (en) 2012-04-10 2021-06-01 Samsung Electronics Co., Ltd. Memory system for access concentration decrease management and access concentration decrease method
US20140089560A1 (en) * 2012-09-25 2014-03-27 Adesto Technologies Corporation Memory devices and methods having write data permutation for cell wear reduction
US9754648B2 (en) 2012-10-26 2017-09-05 Micron Technology, Inc. Apparatuses and methods for memory operations having variable latencies
US20150143021A1 (en) * 2012-12-26 2015-05-21 Unisys Corporation Equalizing wear on storage devices through file system controls
US9734097B2 (en) 2013-03-15 2017-08-15 Micron Technology, Inc. Apparatuses and methods for variable latency memory operations
US9262315B2 (en) 2013-07-05 2016-02-16 Apple Inc. Uneven wear leveling in analog memory devices
US9317367B2 (en) 2013-08-01 2016-04-19 Globalfoundries Inc. Re-distributing high usage data in a raid solid state drive array
US9727493B2 (en) 2013-08-14 2017-08-08 Micron Technology, Inc. Apparatuses and methods for providing data to a configurable storage area
US9501400B2 (en) 2013-11-13 2016-11-22 Sandisk Technologies Llc Identification and operation of sub-prime blocks in nonvolatile memory
US10365835B2 (en) * 2014-05-28 2019-07-30 Micron Technology, Inc. Apparatuses and methods for performing write count threshold wear leveling operations
JP6107802B2 (ja) * 2014-12-15 2017-04-05 コニカミノルタ株式会社 不揮発性メモリ制御装置、不揮発性メモリ制御方法及びプログラム
KR102250423B1 (ko) 2015-01-13 2021-05-12 삼성전자주식회사 불휘발성 메모리 시스템 및 그것의 동작 방법
US9760303B2 (en) 2015-09-29 2017-09-12 Sandisk Technologies Llc Partially-bad block operation in 3-D nonvolatile memory
US10643700B2 (en) 2015-10-29 2020-05-05 Micron Technology, Inc. Apparatuses and methods for adjusting write parameters based on a write count
US9898215B2 (en) 2015-12-07 2018-02-20 International Business Machines Corporation Efficient management of page retirement in non-volatile memory utilizing page retirement classes
TWI571882B (zh) * 2016-02-19 2017-02-21 群聯電子股份有限公司 平均磨損方法、記憶體控制電路單元及記憶體儲存裝置
CN107122308A (zh) * 2016-02-25 2017-09-01 群联电子股份有限公司 平均磨损方法、内存控制电路单元及内存储存装置
US9842059B2 (en) 2016-04-14 2017-12-12 Western Digital Technologies, Inc. Wear leveling in storage devices
KR20180014975A (ko) * 2016-08-02 2018-02-12 에스케이하이닉스 주식회사 데이터 저장 장치 및 그것의 동작 방법
KR20180040288A (ko) 2016-10-12 2018-04-20 삼성전자주식회사 비휘발성 메모리 장치의 리클레임 제어 방법, 상기 비휘발성 메모리 장치를 포함하는 저장 장치의 동작 방법 및 저장 장치
JP7020989B2 (ja) 2018-04-23 2022-02-16 株式会社メガチップス 不揮発性記憶装置、メモリ制御装置、及びメモリ制御方法
KR102545189B1 (ko) 2018-09-07 2023-06-19 삼성전자주식회사 스토리지 장치, 스토리지 시스템 및 스토리지 장치의 동작 방법
US11416163B2 (en) * 2020-04-09 2022-08-16 SK Hynix Inc. Systems and methods for dynamic logical block address distribution between multicores
KR20220138759A (ko) * 2021-04-06 2022-10-13 에스케이하이닉스 주식회사 메모리 시스템 및 그 동작 방법
US11556416B2 (en) 2021-05-05 2023-01-17 Apple Inc. Controlling memory readout reliability and throughput by adjusting distance between read thresholds
CN113707206B (zh) * 2021-05-17 2024-03-22 深圳市国微电子有限公司 Flash存储器的数据保护方法、装置、电子设备及存储介质
DE102021116828A1 (de) 2021-06-30 2023-01-05 Harman Becker Automotive Systems Gmbh Verfahren und Vorrichtung zur Überwachung einer Nutzlast eines Speichermediums
US11847342B2 (en) 2021-07-28 2023-12-19 Apple Inc. Efficient transfer of hard data and confidence levels in reading a nonvolatile memory

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0816482A (ja) * 1994-06-29 1996-01-19 Hitachi Ltd フラッシュメモリを用いた記憶装置およびその記憶制御方法
JP2004157686A (ja) * 2002-11-05 2004-06-03 Matsushita Electric Ind Co Ltd メモリ管理装置及びメモリ管理方法
JP2006504221A (ja) * 2002-10-28 2006-02-02 サンディスク コーポレイション 不揮発性記憶システムにおける最高頻度消去ブロックの追跡
JP2006504195A (ja) * 2002-10-28 2006-02-02 サンディスク コーポレイション 不揮発性記憶システムにおける摩耗一様化

Family Cites Families (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6230233B1 (en) 1991-09-13 2001-05-08 Sandisk Corporation Wear leveling techniques for flash EEPROM systems
TW261687B (ja) 1991-11-26 1995-11-01 Hitachi Seisakusyo Kk
JP3641280B2 (ja) * 1992-10-30 2005-04-20 インテル・コーポレーション フラッシュeepromアレイのクリーン・アップすべきブロックを決定する方法
US5485595A (en) * 1993-03-26 1996-01-16 Cirrus Logic, Inc. Flash memory mass storage architecture incorporating wear leveling technique without using cam cells
US5479638A (en) * 1993-03-26 1995-12-26 Cirrus Logic, Inc. Flash memory mass storage architecture incorporation wear leveling technique
US5568423A (en) * 1995-04-14 1996-10-22 Unisys Corporation Flash memory wear leveling system providing immediate direct access to microprocessor
US5835935A (en) * 1995-09-13 1998-11-10 Lexar Media, Inc. Method of and architecture for controlling system data with automatic wear leveling in a semiconductor non-volatile mass storage memory
US5963970A (en) * 1996-12-20 1999-10-05 Intel Corporation Method and apparatus for tracking erase cycles utilizing active and inactive wear bar blocks having first and second count fields
US6000006A (en) * 1997-08-25 1999-12-07 Bit Microsystems, Inc. Unified re-map and cache-index table with dual write-counters for wear-leveling of non-volatile flash RAM mass storage
KR100297986B1 (ko) * 1998-03-13 2001-10-25 김영환 플래쉬 메모리 셀 어레이의 웨어 레벨링 시스템 및 웨어 레벨링 방법
US6732221B2 (en) * 2001-06-01 2004-05-04 M-Systems Flash Disk Pioneers Ltd Wear leveling of static areas in flash memory
US6937948B2 (en) * 2001-11-13 2005-08-30 Intel Corporation Flash memory program and erase operations
KR100484147B1 (ko) * 2002-07-26 2005-04-18 삼성전자주식회사 플래시 메모리 관리 방법
US7035967B2 (en) * 2002-10-28 2006-04-25 Sandisk Corporation Maintaining an average erase count in a non-volatile storage system
EP1556868B1 (en) * 2002-10-28 2007-09-05 SanDisk Corporation Automated wear leveling in non-volatile storage systems
US6865122B2 (en) * 2003-04-11 2005-03-08 Intel Corporation Reclaiming blocks in a block-alterable memory
US20050055495A1 (en) * 2003-09-05 2005-03-10 Nokia Corporation Memory wear leveling
US7032087B1 (en) * 2003-10-28 2006-04-18 Sandisk Corporation Erase count differential table within a non-volatile memory system
US7106636B2 (en) * 2004-06-22 2006-09-12 Intel Corporation Partitionable memory device, system, and method
US7057934B2 (en) * 2004-06-29 2006-06-06 Intel Corporation Flash memory with coarse/fine gate step programming
US20060069850A1 (en) * 2004-09-30 2006-03-30 Rudelic John C Methods and apparatus to perform a reclaim operation in a nonvolatile memory
US7818342B2 (en) * 2004-11-12 2010-10-19 Sap Ag Tracking usage of data elements in electronic business communications
US7441067B2 (en) * 2004-11-15 2008-10-21 Sandisk Corporation Cyclic flash memory wear leveling

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0816482A (ja) * 1994-06-29 1996-01-19 Hitachi Ltd フラッシュメモリを用いた記憶装置およびその記憶制御方法
JP2006504221A (ja) * 2002-10-28 2006-02-02 サンディスク コーポレイション 不揮発性記憶システムにおける最高頻度消去ブロックの追跡
JP2006504195A (ja) * 2002-10-28 2006-02-02 サンディスク コーポレイション 不揮発性記憶システムにおける摩耗一様化
JP2004157686A (ja) * 2002-11-05 2004-06-03 Matsushita Electric Ind Co Ltd メモリ管理装置及びメモリ管理方法

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9201786B2 (en) 2012-12-21 2015-12-01 Kabushiki Kaisha Toshiba Memory controller and memory system
US9837167B2 (en) 2015-08-24 2017-12-05 Samsung Electronics Co., Ltd. Method for operating storage device changing operation condition depending on data reliability
US10127984B2 (en) 2015-08-24 2018-11-13 Samsung Electronics Co., Ltd. Method for operating storage device determining wordlines for writing user data depending on reuse period
US9799407B2 (en) 2015-09-02 2017-10-24 Samsung Electronics Co., Ltd. Method for operating storage device managing wear level depending on reuse period
KR20200032764A (ko) * 2017-08-23 2020-03-26 마이크론 테크놀로지, 인크 메모리에서의 감지 동작
KR102371039B1 (ko) 2017-08-23 2022-03-07 마이크론 테크놀로지, 인크 메모리에서의 감지 동작

Also Published As

Publication number Publication date
KR20090094333A (ko) 2009-09-04
KR101087308B1 (ko) 2011-11-25
DE112006004187B4 (de) 2015-09-10
DE112006004187T5 (de) 2009-11-26
US20100161880A1 (en) 2010-06-24
JP5006940B2 (ja) 2012-08-22
US8356152B2 (en) 2013-01-15
WO2008077284A1 (en) 2008-07-03

Similar Documents

Publication Publication Date Title
JP5006940B2 (ja) 不揮発性メモリのイニシアチブウェアレベリング
US10209902B1 (en) Method and apparatus for selecting a memory block for writing data, based on a predicted frequency of updating the data
US10579278B2 (en) Techniques for controlling recycling of blocks of memory
JP4790007B2 (ja) 相対的な等級を用いて、フラッシュメモリ内の損耗平準化を達成するための方法
JP4362534B2 (ja) フラッシュメモリシステムにおけるハウスキーピング操作のスケジューリング
US8103820B2 (en) Wear leveling method and controller using the same
JP5819610B2 (ja) 異なる記憶装置にデータを書き込む方法及び装置
US8452913B2 (en) Semiconductor memory device and method of processing data for erase operation of semiconductor memory device
US8255762B2 (en) Semiconductor memory device with error correction
US7409490B2 (en) Method of flash memory management
TWI507871B (zh) 資料儲存元件、記憶體系統以及使用非揮發性記憶體元件之計算系統
US9665481B2 (en) Wear leveling method based on timestamps and erase counts, memory storage device and memory control circuit unit
KR20090077538A (ko) 반도체 메모리 장치 및 그것의 마모도 관리 방법
KR20110060493A (ko) 메모리 장치의 소거 카운트 관리 방법 및 장치
TWI791981B (zh) 資料寫入方法、記憶體控制電路單元以及記憶體儲存裝置
TWI748410B (zh) 用來針對非揮發性記憶體進行區塊管理的方法以及設備
KR20110015280A (ko) 플래시 메모리에서 각 블록에 대한 블록 정보를 기록하는 방법
KR20110015288A (ko) 플래시 메모리의 소거 정보를 복원하는 방법

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20111214

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20111226

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120326

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

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

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

Free format text: PAYMENT UNTIL: 20150601

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

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

LAPS Cancellation because of no payment of annual fees