JP4518951B2 - 不揮発性記憶システムにおける自動損耗均等化 - Google Patents

不揮発性記憶システムにおける自動損耗均等化 Download PDF

Info

Publication number
JP4518951B2
JP4518951B2 JP2004548368A JP2004548368A JP4518951B2 JP 4518951 B2 JP4518951 B2 JP 4518951B2 JP 2004548368 A JP2004548368 A JP 2004548368A JP 2004548368 A JP2004548368 A JP 2004548368A JP 4518951 B2 JP4518951 B2 JP 4518951B2
Authority
JP
Japan
Prior art keywords
zone
physical
memory
zones
block
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
JP2004548368A
Other languages
English (en)
Other versions
JP2006504201A (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.)
SanDisk Corp
Original Assignee
SanDisk 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
Family has litigation
First worldwide family litigation filed litigation Critical https://patents.darts-ip.com/?family=32230329&utm_source=google_patent&utm_medium=platform_link&utm_campaign=public_patent_search&patent=JP4518951(B2) "Global patent litigation dataset” by Darts-ip is licensed under a Creative Commons Attribution 4.0 International License.
Application filed by SanDisk Corp filed Critical SanDisk Corp
Publication of JP2006504201A publication Critical patent/JP2006504201A/ja
Application granted granted Critical
Publication of JP4518951B2 publication Critical patent/JP4518951B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/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/08Address circuits; Decoders; Word-line control circuits
    • 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
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/70Masking faults in memories by using spares or by reconfiguring
    • G11C29/76Masking faults in memories by using spares or by reconfiguring using address translation or modifications
    • 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
    • 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

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)
  • Automatic Assembly (AREA)
  • Moulds For Moulding Plastics Or The Like (AREA)
  • Processing And Handling Of Plastics And Other Materials For Molding In General (AREA)
  • Ventilation (AREA)
  • Safety Devices In Control Systems (AREA)
  • Investigating Or Analyzing Materials By The Use Of Electric Means (AREA)

Description

本発明は、大容量デジタルデータ記憶システムに関し、特に、不揮発性記憶システムの記憶領域に関連する損耗をその記憶領域全体に散布することを自動的に可能にするシステムおよび方法に関する。
フラッシュメモリ記憶システムなどの不揮発性記憶システムの使用は、このようなメモリシステムの物理的サイズがコンパクトであり、不揮発性メモリが繰り返し再プログラムされ得るので、増大しつつある。フラッシュメモリ記憶システムは、物理的サイズがコンパクトであるため、ますます広くいきわたりつつある装置で容易に使用される。フラッシュメモリ記憶システムを使用する装置には、デジタルカメラ、デジタルカムコーダ、デジタルミュージックプレイヤー、ハンドヘルド形パーソナルコンピュータおよび全地球測位装置を含むが、これらに限定されるものではない。フラッシュメモリ記憶システムに含まれる不揮発性メモリは繰り返し再プログラム可能であるので、フラッシュメモリ記憶システムは使用され、かつ再使用され得る。
フラッシュメモリシステム内の不揮発性メモリ、或いは特に不揮発性メモリ記憶セルは、繰り返しプログラムされ、消去され得るけれども、各セル或いは物理的記憶位置は、当該セルが損耗するまでにある回数しか消去され得ない。あるシステムでは、セルが使用不能であると見なされるまでに約1万回消去され得る。他のシステムでは、セルが損耗したと見なされるまでに、セルは約10万回或いは百万回も消去され得る。セルが損耗し、従って使用不能になったり、或いはフラッシュメモリシステムの全記憶容量の一部に顕著な性能低下が生じたりすると、例えば記憶されたデータが失われたり、或いはデータを記憶させることができなくなるなどの悪影響がフラッシュメモリシステムのユーザに及ぶ可能性がある。
フラッシュメモリシステム内のセルまたは物理的記憶位置の損耗は、当該セルの各々が何回プログラミングされたかにより、まちまちである。セルが、或いはより一般的にはメモリ素子が、一度プログラムされてから実際上再プログラムされなければ、そのセルに関連する損耗は一般に割合に少ない。しかし、セルが繰り返し書き込まれ消去されれば、そのセルに関連する損耗は一般に割合に多い。フラッシュメモリシステムに記憶されているデータにアクセスするために、例えばフラッシュメモリシステムにアクセスするか、或いは使用するシステムなどのホストによって論理的ブロックアドレス(LBA)が使用されるので、ホストがデータを書き込み、かつデータを上書きするために同じLBAを繰り返し使用すれば、当業者には理解され得るように、フラッシュメモリシステム内の同じ物理的記憶位置或いはセルが繰り返し書き込まれ、かつ消去されることになる。
一部のセルが実際上損耗し、他のセルが比較的に損耗していないとき、損耗したセルの存在は一般的にフラッシュメモリシステムの性能を低下させる。損耗したセル自体に関連する性能が低下することに加えて、所望のデータを記憶するために充分な数の損耗していないセルを使えないときにはフラッシュメモリシステムの全体としての性能に悪影響が及ぶ。フラッシュメモリシステム内に臨界数の損耗したセルが存在するときには、当該フラッシュメモリシステム内の他の多くのセルが比較的に損耗していなくても、そのフラッシュメモリシステムが使用不能であると見なされることがよくある。
フラッシュメモリシステム内のセルがある程度均一に損耗する可能性を高めるために、損耗均等化操作がよく実行される。損耗均等化操作は、一般に特定のLBAと結び付けられたセルが、同じLBAが常に同じセルと結び付けられないように変更され得るように整えられる。LBAのセルの結びつきを変更することにより、他のセルが損耗するより遥か前に特定のセルが損耗する可能性は小さくなる。
1つの従来の損耗均等化プロセスは、カスタマーまたはホストLBAの2つの割合に大きな部分がマッピングされる物理的記憶位置をスワッピングすることを含む。すなわち、記憶セルの割合に大きな部分と結び付けられたLBAがスワッピングされる。このようなスワッピングは、例えばホストの使用を通してカスタマーからの手動コマンドを通して開始されるので、その結果としてカスタマーにとっては不透明である。また、記憶セルの2つの割合に大きな部分の間でデータを移動させることを含むスワッピング操作は時間を消費するので、効率が悪い。さらに、フラッシュメモリシステム全体に関連する、例えば時間および処理パワーなどの重要な資源を消費する割合に長時間に及ぶスワッピング操作はフラッシュメモリシステム全体の性能に悪影響を及ぼす。第1の記憶位置からのデータの移動は、通常そのデータを他の記憶位置にコピーし、そのデータを当該第1の記憶位置から消去する動作を含む。
単にセルの損耗を許容することによって損耗均等化を避けることが可能である。セルが実際上損耗したならば、そのセルに割り当てられているセクタを、当該セクタに関連付けられているアドレスを予備領域へマッピングすることによって割り当てなおすことができる。予備領域またはセルの数は限られていて貴重であるので、使用不能のセルと関連付けられているセクタをマッピングすることのできる予備領域が常にあるとは限らない。さらに、セルが使用不能になった後で始めてセクタを実際にマッピングしなおすのは、一般にフラッシュメモリシステム全体の性能の低下を許容することになる。
従って、望ましいのは、フラッシュメモリ記憶システム内で損耗均等化を効率よく、かつ透明に実行する方法および装置である。従って、必要なのは、フラッシュメモリ記憶システムの性能に悪影響を及ぼさずに、フラッシュメモリ記憶システムに関連する物理的記憶位置での均等な損耗を助長する自動損耗均等化プロセスである。
米国特許第5,890,192号 米国特許第5,430,859号
本発明は、不揮発性記憶システムで自動損耗均等化を実行するシステムおよび方法に関する。本発明の一つの態様によれば、コンテンツを含む第1のメモリ素子を有する第1のゾーンと、第2のゾーンとを含む記憶システムで自動損耗均等化を実行する方法は、第1のメモリ素子を特定し、第1のメモリ素子のコンテンツを第1のゾーンから分離するのと同時に第1のメモリ素子のコンテンツを第2のゾーンと関連付けるステップを含む。一実施形態において、第1のメモリ素子のコンテンツを第2のメモリ素子と関連付けるステップは、第2のメモリ素子のコンテンツを第3のメモリ素子にコピーしてから第1のメモリ素子のコンテンツを第2のメモリ素子へ移動させるステップを含む。
一実施形態において、損耗均等化プロセス中に漸進的な自動損耗均等化プロセスを用いて割合に少量のデータを、例えば物理的ブロックなどの異なるメモリ素子に移動させることによって、頻繁に書き込まれ、かつ消去される論理的ブロックアドレスと関連付けられているメモリ素子を、頻繁に書き込まれ、かつ消去される論理的ブロックアドレスと関連付けられる前に頻繁に書き込まれ、かつ消去されていなかったメモリ素子と置き換えることができるので、記憶装置内のメモリ素子のより均一な損耗を達成することができる。同様に、稀に書き込まれ、かつ消去される論理的ブロックアドレスに関連付けられているメモリ素子を、もっと頻繁に書き込まれ、かつ消去される論理的ブロックアドレスと関連付けられていたメモリ素子と置き換えることができ、これによってもメモリ素子の損耗をより均一にすることができる。割合に少量のデータが異なるメモリ素子へ移されるときには、損耗均等化を実行することに関連する性能上のペナルティーは顕著に低減され得る。
本発明の他の態様によれば、メモリシステムにおいて自動損耗均等化を実行する方法は、第1のメモリ素子と第2のメモリ素子とを含む直接アドレス指定方式を含み、第1のメモリ素子に含まれる情報の第1のセットを第2のメモリ素子に提供し、第2のメモリ素子に含まれる情報の第2のセットを第1のメモリ素子に提供するステップを含む。例えば、メモリシステムにアクセスするホストシステムから情報の第1のセットへのアクセスが望まれたときには第2のメモリ素子がアクセスされてもよく、情報の第2のセットへのアクセスが望まれたときには第1のメモリ素子がアクセスされてもよい。一実施形態において、メモリシステムに関連するマッピング情報は、情報の第1のセットが第2のメモリ素子に含まれていることを示し、かつ情報の第2のセットが第1のメモリ素子に含まれていることを示すように更新される。
本発明のさらに他の態様によれば、ゾーン移行方式において、情報を記憶するメモリシステムは、第1のメモリ素子を有する第1のゾーンと第2のメモリ素子を有する第2のゾーンとを含む。第1のメモリ素子は、例えばデータ情報などのコンテンツを含むように構成される。メモリシステムの損耗均等化プロセッサは、第1のメモリ素子を特定し、第1のメモリ素子のコンテンツを第2のメモリ素子と関連付けるように構成される。一実施形態において、第2のゾーンは第3のメモリ素子を含み、当該損耗均等化プロセッサは、第2のメモリ素子のコンテンツを第3のメモリ素子にコピーし、第2のメモリ素子を消去し、第1のメモリ素子のコンテンツを第2のメモリ素子にコピーする。このような実施形態では、メモリシステムは、第2のメモリ素子が当該第1のゾーンと関連付けられたことを示し、かつ第1のメモリ素子が第1のゾーンから分離されたことを示すように損耗均等化プロセッサによって更新されるマッピング情報を含むことができる。
本発明のさらに他の態様によれば、メモリシステムにおいて自動損耗均等化を実行する方法は、メモリシステムと関連付けられている第1のゾーンを特定し、メモリシステムと関連付けられている第2のゾーンを特定するステップを含むゾーンスワッピング方式を含む。第1のゾーンは第1のコンテンツを含む第1のメモリ素子を含み、第2のゾーンは第2のコンテンツを含む第2のメモリ素子を含む。当該方法は、第1のコンテンツを第2のメモリ素子に記憶させ、第2のコンテンツを第1のメモリ素子に記憶させるステップも含む。コンテンツが記憶されれば、第1のコンテンツがアクセスされるときには第1のコンテンツは第2のメモリ素子においてアクセスされ、第2のコンテンツがアクセスされるときには第2のコンテンツは第1のメモリ素子においてアクセスされる。一実施形態では、第1のゾーン内のメモリ素子の実質的に全てのオリジナルコンテンツが第2のゾーン内のメモリ素子に記憶され、第2のゾーン内のメモリ素子の実質的に全てのオリジナルコンテンツが第1のゾーン内のメモリ素子に記憶される。
本発明の付加的な態様、利点および特徴が、その代表例についての以下の説明に含まれている。本願明細書で引用された全ての特許、特許出願、論文、特許刊行物およびその他の刊行物は、その全体があらゆる目的のために本願明細書において参照により援用されている。
本発明を添付図面と関連する以下の説明を参照すれば最も良く理解できよう。
A.メモリ構成および基本的定義
本発明は、消去および書き込みのサイクルの数が増えてゆくときに性能が次第に低下する可能性のあるメモリシステムでの損耗均等化に関する。本願明細書に記載されている実施形態は不揮発性EEPROMに基づくメモリシステムについて説明しているけれども、本発明の種々の態様は、“損耗”する可能性のあるあらゆるタイプの記憶媒体に応用可能である。例えば、エマージングタイプの不揮発性メモリ技術はフェーズ変更メモリである。情報は、与えられた材料のフェーズを変更することによって記憶される。このようなシステムも“損耗”しがちであり、記憶媒体は当該媒体がサイクルされた回数が多くなると情報を記憶しにくくなってゆく。本発明は、このような技術にも容易に応用され得る。
一実施形態では、フラッシュメモリメモリシステム内の不揮発性メモリ記憶セルは繰り返しプログラムされ、かつ消去され得るけれども、各セルは、セルが損耗するまでに或る回数しか消去され得ない。セルが損耗すると、フラッシュメモリメモリシステムの全記憶容量のうちの、その損耗したセルを含む部分に関連する性能が割合に顕著に低下し、その部分に記憶されているデータが失われたり、或いはその部分にデータを記憶させることができなくなる。フラッシュメモリメモリシステムの性能に悪影響を及ぼさない自動損耗均等化プロセスは、効率良くかつ実質的に定期的に損耗均等化が行われることを顕著に可能にする。その結果として、フラッシュメモリメモリシステムと関連するセルはより均等に損耗し、すなわち一般に或るセルが他のセルより遥かに急速に損耗するということはない。従って、フラッシュメモリメモリシステムの寿命は、顕著な性能ペナルティーを伴わずに長くなり得る。さらに、損耗均等化が実質的に自動的に行われるので、ユーザが損耗均等化プロセスを開始することを思い出さなくてもよくなる。
始めに図1aを参照し、例えばコンパクトフラッシュメモリカードなどのメモリカードなどの不揮発性記憶装置を含む一般的なホストシステムについて説明する。ホスト或いはコンピュータシステム100は、一般にマイクロプロセッサ108、ランダムアクセスメモリ(RAM)112および入出力回路116が通信することを可能にするシステムバス104を含む。ホストシステム100が、例えば表示装置およびネットワーキング装置などの他のコンポーネントを一般に含み得ることが理解されるべきであるが、それらは図解の目的のためには示されていない。
一般に、ホストシステム100は、静止画像情報、オーディオ情報およびビデオ画像情報を含むけれどもこれらに限定はされない情報を捉えたり、或いは記憶したりすることができる。このような情報はリアルタイムで捉えられ、無線でホストシステム100へ送られ得る。ホストシステム100は実質的にどんなシステムであってもよいけれども、ホストシステム100は、通常デジタルカメラ、ビデオカメラ、移動通信装置、携帯用コンピュータ、オーディオプレイヤー或いはビデオプレイヤーなどのシステムである。しかし、ホストシステム100は、一般にデータ或いは情報を記憶し、データ或いは情報を検索する実質的にどのようなシステムであってもよいことが理解されるべきである。それは、データを捉えるだけ或いはデータを検索するだけのシステムであっても良い。すなわち、ホストシステム100はデータを記憶する専用システムであってよく、或いはホストシステム100はデータを読み出す専用シムであってよい。例えば、ホストシステム100はデータを書き込むだけ或いはデータを記憶するだけであるように構成されたメモリライタであってよい。或いは、ホストシステム100は、通常データを読み出し或いは検索するように構成されていてデータを捕捉するようには構成されていないMP3プレイヤーなどの装置であってよい。
不揮発性記憶装置120は、バス104とインタフェースして情報を記憶するように構成されている。随意のインタフェース回路ブロック130は、不揮発性記憶装置120がバス104と通信することを可能にすることができる。存在するときには、例えばインタフェース回路ブロック130とインタフェースとは、バス104のローディングを減少させるのに役立つ。不揮発性記憶装置120は、不揮発性メモリ124とメモリ制御システム128とを含む。一実施形態では、不揮発性記憶装置120は単一のチップまたはダイ上に実現され得る。或いは、不揮発性記憶装置120は1つのマルチチップモジュール上に、或いは複数の別々のコンポーネントとして実現され得る。不揮発性記憶装置120の一実施形態について図1bに関してより詳細に以下で説明する。不揮発性記憶装置120は、例えば取り外しできるメモリカード或いは組み込み形サブシステムなどの実質的に任意の適切な不揮発性記憶装置であってよい。
不揮発性メモリ124は、必要に応じてデータにアクセスし読み出せるようにデータを記憶するように構成されている。データを記憶し、データを読み出し、データを消去するプロセスは、一般にメモリ制御システム128によって制御される。一実施形態では、メモリ制御システム128は、本質的に不揮発性メモリ124の部分を実質的に均等に損耗させることによってその寿命を実質的に最大にするように不揮発性メモリ124の動作を管理する。
不揮発性記憶装置120は、メモリ制御システム128、すなわちコントローラを含むものとして一般的に説明されている。特に、不揮発性記憶装置120は、不揮発性メモリ124とコントローラ128との機能のために別々のチップを包含することができる。例を挙げると、PCカード、コンパクトフラッシュカード、マルチメディアカードおよびセキュアデジタルカードを含むがこれらに限定はされない不揮発性記憶装置は、別のチップ上に実現され得るコントローラを含むが、他の不揮発性記憶装置は別のチップ上に実現されるコントローラを含まない。不揮発性記憶装置120が別々のメモリチップおよびコントローラチップを含まない実施形態では、メモリ機能とコントローラ機能とは単一のチップに統合され得る。さらに、コントローラはホストシステムに置かれてよく、不揮発性記憶装置120は、コネクタまたは他の任意のタイプのインタフェースを通して当該ホスト上のコントローラに接続されてよい。とにかく、本発明の範囲はあらゆる形および組み合わせのメモリシステムを含み、それらにおいて記憶媒体内での損耗レベルは制御システムによって制御される。例えば、コントローラはホストシステムのマイクロプロセッサ上でソフトウェアの中で実現される。
図1bを参照して、本発明の実施形態による不揮発性記憶装置120をより詳しく説明する。図1bは、単一のフラッシュメモリチップ124と別のコントローラ128とを含む不揮発性記憶装置120の実施形態を示すことが理解されるべきである。メモリ124は半導体基板上に形成された適切なアドレス指定と制御回路を伴うメモリセルアレイであってよくて、電荷の2つ以上のレベルまたは分布のうちの1つをメモリセルの個々のメモリ素子に記憶させることによって1ビット以上のデータが個々のメモリセルに記憶される。不揮発性フラッシュ形の電気的に消去可能でプログラム可能な読み出し専用メモリ(EEPROM)は、このようなシステムのためのありふれたタイプのメモリの例である。
説明される実施形態において、コントローラ128は、バス15を介して、当該メモリシステムを使ってデータを記憶させるホストコンピュータまたはその他のシステムと通信する。バス15は、一般に図1aのバス104の一部である。制御システム128は、メモリセルアレイ11を含むことのできるメモリ124の、ホストから提供されたデータを書き込み、ホストから要求されたデータを読み出し、動作するメモリ124で種々のハウスキーピング機能を実行する動作も制御する。制御システム128は、関連するメモリ、種々の論理回路などを有する汎用マイクロプロセッサまたはマイクロコントローラを含むことができる。特定のルーチンの実行を制御するために1つ以上の状態マシンが含まれることもよくある。
メモリセルアレイ11は、通常アドレスデコーダ17を通して制御システム128によりアドレス指定される。デコーダ17は、制御システム128によってアドレス指定されたメモリセルのグループにデータをプログラムし、当該グループからデータを読み出し、或いは当該グループを消去するために、アレイ11のワードラインおよびビットラインに正しい電圧を印加することができる。付加的な回路19は、読み出されたり、または書き込まれるデータを一時的に記憶するデータレジスタ、アドレス指定されたグループのセルにプログラムされるデータに依存する当該アレイのエレメントに印加される電圧を制御するプログラミングドライバと、種々の電圧および制御信号の順序付けを制御する状態マシンとを含む。回路19は、アドレス指定されたグループのメモリセルからデータを読み出すのに必要なセンス増幅器およびその他の回路も含むことができる。アレイ11にプログラムされるべきデータ、或いはアレイ11から最近読み出されたデータは、通常制御システム128内のバッファメモリ21に記憶される。制御システム128は、普通コマンドおよび状態データなどを一時的に記憶するための種々のレジスタも含む。
1つの特定の実施形態では、アレイ11はメモリセルの多数のブロック0〜Nに分割されている。好ましい実施形態では、ブロックは消去の単位であり、すなわち一緒に消去される最小数のメモリセルである。各ブロックは、図1bにも示されているように、数個のページに通常分割される。ページはプログラミングの最小単位であり、ユーザデータの1つ以上のセクタが通常各ページに記憶される。セクタは、ホストが不揮発性メモリをアドレス指定し、或いは当該メモリへまたは当該メモリから転送する論理データの最小単位である。ディスクドライブの用途では、これは通常512バイトである。或る不揮発性メモリは部分的なページプログラミングを可能にし、このプログラミングでは、第1のプログラミング後に消去された状態に留まっている個々のビットを、当該ページを始めに消去すること無しに後のページプログラミング操作でプログラムすることができる。或る多状態メモリは、低い方のプログラムされた状態に既にプログラムされているビットを後のページプログラミング操作で高い方の状態にプログラムすることも可能にする。これらのメモリでは、複数のセクタを、或いは複数のセクタの複数の部分を異なる時にプログラムすることができる。それでも、1ページはプログラミングの基本単位のままであり、一部のビットをマスクして後にプログラムするだけである。本発明は、消去、読み出しおよび/または書き込みの単位の物理的実装例に関わらずに任意の適切なメモリシステムに適用され得る。
説明される実施形態の図1bに示されているように、1ページはユーザデータとオーバーヘッドデータとの両方を含むことができる。オーバーヘッドデータは、通常当該ページに含まれているユーザデータから計算されたエラー訂正符号(ECC)を含み、当該ECCはオーバーヘッドデータの一部または全部を含むことができる。制御システム128の一部分23は、アレイ11にデータがプログラムされるときにECCを計算し、またデータがアレイ11から読み出されるときにECCを検査する。オーバーヘッドデータは、ユーザデータの論理アドレス、ページおよび/またはブロックの物理アドレス、アドレスマップ情報、物理的ブロックが経験した消去サイクルの数、暗号化情報および/またはその他の統計或いはデータも含むことができる。図1bに示されているように、オーバーヘッドデータの一部または全部を各ページに記憶させることができる。その代わりに、オーバーヘッドデータの一部または全部を各ブロック内の特定の記憶位置に記憶させることができ、或いはそれをユーザデータとは別のブロックに記憶させることもできる。
最も一般的には1セクタのデータが各ページに含まれるけれども、代わりに2つ以上のセクタが1ページを形成することもでき、或いは1ページが1セクタより小さくてもよい。例えば、その全体が参照により本願明細書において援用されている米国特許第5,890,192号(特許文献1)および第5,430,859号(特許文献2)は、チャンクを単位としてデータをプログラムしたり、読み出したりすることを開示し、ここでチャンクというのは1セクタの小部分である。あるメモリシステムでは、1セクタが1ページに含まれ、1ページが1ブロックを形成することができる。より一般的には、NANDメモリシステムでは1つ以上のセクタが各ページに含まれ、8,16または32ページが1ブロックを形成する。他のメモリシステムでは、ブロックは512,1024またはそれ以上の割合に大きな数のページから形成される。ブロックの数は、メモリシステムのために望ましいデータ記憶容量を提供するように選択される。アレイ11は、通常数個のサブアレイ(図示せず)に分割され、その各々はブロックの一部分を含み、それは種々のメモリ動作の実行において並列性の度合いを高めるために或る程度互いに無関係に動作する。複数のサブアレイの使用の例が、前に引用された米国特許第5,890,192号(特許文献1)に記載されている。
不揮発性メモリ124の、例えばメモリ素子のグループなどの特定の部分が繰り返しプログラムされ、かつ消去されるとき、その特定の部分は一般に連続的にプログラムされない部分より速く損耗する。不揮発性メモリ124内のいろいろな領域の損耗を効果的に“均等化”するために、繰り返しプログラムされる部分がより少なくプログラムされ、また繰り返しプログラムされる部分を過剰に循環するのではなくて頻繁にはプログラムされない部分を利用することができるように、損耗均等化を自動的に実行することができる。
一般的に、損耗均等化を実行するために、与えられた回数プログラムされた、例えば1つ以上のセルまたはメモリ素子などの1つ以上の物理的記憶位置と関連する論理アドレス(例えば、論理的ブロックアドレスおよび/またはシリンダヘッドセクタアドレス)を、繰り返しプログラムされていなかった別の物理的記憶位置と関連させなおすことができる。例えば、最も多くプログラムされた物理的記憶位置のコンテンツを最も少なくプログラムされた物理的記憶位置のコンテンツと入れ替えて、物理的記憶位置の損耗を本質的に均等化することができる。このようなプロセスは、与えられた論理アドレスが損耗均等化などの何らかの特定のイベントにより割り当てなおされるまでの“長い”期間にわたって特定の物理的記憶位置と関連付けられるようになっている直接マッピングアドレス指定損耗均等化方式で行われ得る。この方式は、時には(静的)連想マッピングと称される。
損耗均等化は、論理アドレスを物理アドレスにマッピングする間接アドレス指定を用いるシステムでも実行され得る。これらのシステムでは、与えられた論理アドレスは異なる時に異なる物理的記憶位置にマッピングし、各論理的更新を用いて変更することがしばしばある。通常、一時的に使用されていないけれども物理的に消去されているブロックの集合は消去プールを形成する。消去プーリング損耗均等化方式では、最も損耗している物理的記憶位置が損耗する速度を遅くするために1つの領域内の最も損耗している物理的記憶位置のコンテンツを同じ領域内の消去されている物理的記憶位置へ移すことができ、或いは、或る物理的記憶位置が他の物理的記憶位置より遥かに高い速度で損耗するのを防止するためにゾーンを入れ替えたり、或いは再定義することができる。
本発明は、物理メモリのゾーンを用いるシステムにおいてさらに実施され得る。ゾーンは、論理的ブロックの指定された範囲がマッピングされる物理メモリまたはメモリシステムの任意の分割された部分集合であり得る。余分な予め消去されているブロックを提供するために、1つのゾーンにマッピングされる論理的ブロックの数より多い物理ブロックをその1つのゾーンに包含させ得る。例えば、64メガバイトのデータを記憶できるメモリシステムを、ゾーンあたりに16メガバイトのデータを記憶する4つのゾーンに分割することができる。このとき、論理的ブロックの範囲も、その4つのゾーンの各々の物理ブロックについて1グループずつ、4つのグループに分割される。論理的ブロックは、代表的な実装例では、論理的ブロックがマッピングされる単一の物理ゾーンの外に各々のデータが決して書き込まれないように、束縛される。自分自身のアドレス指定回路、プログラミング回路および読み出し回路を各々有するプレーン(サブアレイ)に分割されたメモリセルアレイでは、各ゾーンは好ましくは複数のプレーンからのブロック、通常各プレーンからの同数のブロックを含む。ゾーンは論理から物理への移行などのアドレス管理を簡略化するために主に使用され、移行テーブルが小さくなり、これらのテーブルを保持するために必要なRAMメモリが少なくなり、メモリの現在の動的な領域をアドレス指定するアクセス時間が速くなるという結果をもたらすけれども、本来制限が多いために最善には及ばない損耗均等化をもたらす可能性を有する。
メモリシステムのサイズが大きくなるにつれて(今日では1ギガバイトのメモリを上回る)、物理的メモリ全体にわたる損耗均等化は煩わしく、時間を消費し、かつ損耗統計を維持するために過大なメモリスペースを必要とするようになる可能性を有する。しかし、1つのゾーン内で消去の単位を損耗均等化することにより1つのゾーン内で(ゾーン内)、または複数のゾーン間で消去の単位を損耗均等化することにより、或いは1つのゾーンが他のゾーンより多くの損耗を有する場合に複数のゾーン全体を入れ替えることによりゾーン間で(ゾーン間)損耗均等化を実行することができる。他の変形では、動的ゾーン損耗均等化またはオフセットゾーン損耗均等化を実施することができる。このような実施形態では、ゾーンのサイズおよび/または場所は静的ではない。例えば、1つ以上の消去単位を第1のゾーンから第2のゾーンへ割り当てて、当該第2のゾーンを当該第1のゾーンより大きくすることは有益であり得る。さらに、1つのゾーンの物理的記憶位置は始めにメモリの1つの物理的部分から出発することができるが、損耗均等化操作後に、当該ゾーンは当該メモリ内でオフセットにより動かされるか、または完全に動かされ得る。これは、物理的メモリの完全利用を可能にするために他のゾーンがオフセットまたは他の何らかのインクリメントだけ同様に移動されることを必要とする。
直接マッピングアドレス指定方式を図2〜5までと関連させて以下で説明し、消去プーリング方式を以下で図6〜10までを参照して説明する。
B.直接マッピング損耗均等化
直接マッピングアドレス指定方式では、特定のホスト論理アドレス(例えば、論理的ブロックアドレス、すなわちLBA)と関連するデータは、一般に書き込み/消去サイクルが繰り返された後でも特定の物理的記憶位置に記憶されている。説明される実施形態は、論理的ブロックアドレスと関連して論じられるけれども、任意のタイプの論理アドレスを利用することができる。ホストシステムが同じ論理的ブロックアドレスに書き込み或いは書き換えるとき、そのデータは同じ物理アドレスに書き込まれる。通常、当該物理アドレスに位置する物理的メモリは、消去されてから、当該LBAと関連する新しいおよび/または更新されたデータで書き換えられる。論理アドレスから物理アドレスへの対応は、例えば損耗均等化手続きの結果として当該LBAと関連するマッピングが変更されるまでは一般に存続する。或るLBAが繰り返しプログラムされるということがあるので、それらLBAと関連する物理的記憶位置が割合に早く損耗することになる。繰り返しプログラムされたLBAを、稀にしかプログラムされず、従って稀にしか消去されなかった物理的記憶位置と前は関連していた物理的記憶位置へ再マッピングすることによって、これら2つの物理的記憶位置の損耗を均等化することができる。
図2は、その上で直接アドレス指定損耗均等化方式を実施し得る不揮発性メモリシステムの線図である。不揮発性メモリシステム200は、メモリコントローラ208によって制御される、例えば割り当てられる、不揮発性メモリ204を含む。ファームウェア211は、損耗均等化機能または損耗均等化プロセッサ212を含むことができて、メモリコントローラ208と協同して不揮発性メモリ204に対して損耗均等化プロセスを実行する。或いは、損耗均等化は、回路、ファームウェア、ソフトウェア、或いはこれらの任意の組み合わせによって実行され得る。マッピング情報214は、LBAを不揮発性メモリ204内の物理的記憶位置にマッピングするために、メモリコントローラ208によって使用される。
不揮発性メモリ204は、一般にプレーン218a〜218dに分割される。各プレーンは、例えば物理ページを含むブロックなどの任意の数の消去単位を含むことができる。ブロック226aは、プレーン218aと関連する数個のブロックのうちの1つである。同様に、ブロック226bは、プレーン218bと関連する数個のブロックのうちの1つである。各ブロックは1つ以上のページを含み、ページ222aおよびページ222bはプレーン218aの頂部のブロックと関連する2つのページである。2つ以上の異なるプレーンの各々からの1つのブロックを組み合わせて1つのメタブロックを形成することができる。例えば、ブロック226a,226b,226cおよび226dを組み合わせてメタブロック226を形成することができる。説明される実施形態では、メモリコントローラ208は、損耗均等化プロセッサ212と協同して複数のブロック或いはメタブロックを効率的にスワッピングするように構成されている。複数のブロックのスワッピングは、ブロックの、或る場合にはメタブロックの、物理的記憶位置がセクタ、ブロックまたはメタブロックと関連するLBAに関して変更されるようにブロック内のデータのコンテンツを入れ替えることを必要とする。直接マッピングは、単一のページが1つのブロックを形成し、書き込みおよび消去の両方の基本単位が1ページである或るNORメモリでよく使用される。
図3aは、物理的記憶位置およびセットを含む不揮発性メモリの実施形態の線図である。不揮発性メモリ304は、セクタのセット310の形のデータを含む物理的記憶位置306を含む。実質的にどのセクタのセット310をスワッピングしたり、或いは交換してもよいのであるが、最大の損耗を有する或いは最大のサイクル総数を有する物理的記憶位置306にあるセクタのセット310が、通常最小の損耗を有する他の物理的記憶位置306にあるセクタのセット310とスワッピングされる。サイクル総数情報がなければ、記憶位置をランダムに選択したり、或いはアルゴリズム的に選択してよいことが理解されるべきである。
検討の目的のために、物理的記憶位置“0”306aが最も大きく損耗し、物理的記憶位置“N”306cが最も少なく損耗している。すなわち、物理的記憶位置“0”306aに含まれているデータはかなり頻繁に消去され、物理的記憶位置“N”306cに含まれているデータはあまり頻繁には消去されていない。従って、不揮発性メモリ304内の物理的記憶位置306に関連する損耗を均等にするために、損耗均等化プロセスで物理的記憶位置“0”306aのコンテンツを物理的記憶位置“N”306cのコンテンツとスワッピングすることができる。換言すると、図3bに示されているように、セクタのセット“A”310aは物理的記憶位置“N”306cに記憶され、セクタのセット“B”310cは物理的記憶位置“0”306aに記憶されるように(これらは、スワッピングされるホスト論理的ブロックアドレスと関連している)、セクタのセット“A”310aはセクタのセット“B”310cとスワッピングされ得る。従って、セクタのセット“A”310aが次に消去されるとき、消去手続きは物理的記憶位置“N”306cに関して行われる。従って、サイクル総数は一般に特定の物理的記憶位置306に関連する消去および書き込みサイクルの数を追跡するので、物理的記憶位置“N”306cに関連するサイクル総数がインクリメントされる。
一般に、直接アドレス指定方式では、損耗均等化プロセスは、トリガー条件が満たされたときに自動的に開始され得る。トリガー条件は、所定期間の終了、または1つ以上の物理的記憶位置のサイクル総数が相対的或いは絶対的しきい値レベルに達したこと、或いは1つ以上の物理的記憶位置が顕著に低下した性能レベルを呈していると判定されたときであり得る。それは、特定の数のホスト書き込み動作が行われたときにトリガーされてよい。損耗均等化プロセスを開始するために使用される他の方法は、ホスト動作の数を追跡してホスト動作の数が特定の数に達したときに損耗均等化を開始すること、および損耗均等化プロセスを開始するために使われる乱数または擬似乱数を発生させることを含むけれども、これらに限定はされない。
図4を参照して、不揮発性メモリ内の損耗均等化プロセスを受けるべき1つ以上のセクタを特定する動作に関連するステップを説明する。スワッピングされるべき1つ以上のセクタを特定するプロセス400はステップ404から始まり、このステップで、トリガー条件が満たされたか否かが判定される。すなわち、損耗均等化プロセスが開始されるべきか否かに関して判定が行われる。このような判定は、不揮発性メモリを制御するメモリコントローラによって行われ得る。説明される実施形態では、トリガー条件が満たされたか否かの判定は、例えば最後の損耗均等化プロセスから所定期間が経過したか否かの判定である。代わりに、ホストシステムが、損耗均等化動作をいつ開始するかを決定することができる。さらに他の実施形態では、ユーザは損耗均等化の開始についての選択権を持つことができ、このような実施形態ではメモリコントローラまたはホストシステムは損耗均等化動作を開始する適切な時間に関してユーザに入力を促すことができる。
所定期間が経過していないと判定されたならば、例えば少し後に、当該所定期間が経過したか否かもう一度判定を行うことができる。代わりに、所定期間が経過したと判定されたならば、ステップ408で、シーク時間を制限するために、不揮発性メモリ内の各物理的記憶位置について、または或る範囲内の各物理的記憶位置についてのホットカウント或いはサイクル総数が得られる。ホットカウントが得られたならば、最も多い知られている損耗を示す最高値を有するホットカウントがステップ412で特定される。同様に、最低値または最も低い知られている損耗に伴うホットカウントがステップ416で特定される。もちろん、特にサーチアルゴリズムが使用されるとき、最高または最低のホットカウントに近いもの(例えば、充分に高いまたは充分に低い)を使用することもできる。
ステップ420で最高のホットカウントを有する物理的記憶位置に記憶されている1つ以上のセクタがセクタのセット“A”として特定され、ステップ424で最低のホットカウントを有する物理的記憶位置に記憶されているセクタのセットがセクタのセット“B”として特定される。セクタのセット“A”とセクタのセット“B”とが特定されると、最高および最低のホットカウントを有する物理的記憶位置に対して損耗均等化プロセスがステップ428で実行される。1つの適切な損耗均等化プロセスに関して図5と関連して以下で検討する。損耗均等化プロセスが実行された後、損耗均等化プロセスを受けるべきセクタのセットを特定するプロセスが完了する。
図5は、損耗均等化プロセス、すなわち図4の実施形態のステップ428、に関連するステップの例を示すプロセスの流れ図である。損耗均等化プロセス428はステップ504から始まり、ここでセクタのセット“A”が、例えば最高のホットカウントを有する物理的領域から、予備領域或いは現在は実質的に情報が記憶されていない不揮発性メモリ内の領域へコピーされる。セクタのセット“A”が当該予備領域へコピーされると、元のセクタのセット“A”と関連する物理的記憶位置はステップ508で消去される。ステップ512で、セクタのセット“B”が前はセクタのセット“A”により占められていた物理的記憶位置にコピーされる。セクタのセット“B”がコピーされると、セクタのセット“B”がそれからコピーされたところの物理的記憶位置がステップ516で消去される。セクタのセット“B”がそれからコピーされたところの物理的記憶位置が消去された後、予備領域に記憶されているセクタのセット“A”がステップ520で前にセクタのセット“B”により占められていた物理的記憶位置にコピーされる。次に、ステップ524で、当該予備領域を消去することができる。
損耗均等化が行われた後に、不揮発性メモリにアクセスしているホストが、より具体的にはホストコンピュータシステムが、不揮発性メモリ内の要求されている情報の位置を突き止めることができるようにするために、メモリコントローラが正しい情報にアクセスすることを可能にするマッピング情報がステップ528で更新される。損耗均等化プロセスが行われた後に、セクタのセット“A”および“B”に記憶されている情報にアクセスするために使用されるホストLBAがセクタのセット“A”および“B”が記憶されている新しい物理的記憶位置にアクセスするように、マッピング情報が更新される。マッピング情報が更新されると、損耗均等化手続きを実行するプロセスが完了する。当該マッピング情報は、図2のように揮発性RAM内のテーブル214に記憶され、かつ/または当該不揮発性メモリに部分的に或いは完全に含まれてもよい。
直接アドレス指定に関連しての損耗均等化プロセスを、セクタの2つのセットがスワッピングされるとして説明してきたけれども、このような損耗均等化プロセスは一般的にセクタの任意の数のセットをスワッピングすることを含むことができる。例えば、最高のホットカウントと関連する物理的記憶位置の中のセクタのセットと最低のホットカウントと関連する物理的記憶位置の中のセクタのセットとをスワッピングすることに加えて、2番目に高いホットカウントと関連する物理的記憶位置の中のセクタのセットを2番目に低いホットカウントと関連する物理的記憶位置の中のセクタのセットとスワッピングすることもできる。すなわち、損耗均等化プロセスの数回の繰り返しを並列に或いは逐次に実行することができる。さらに、損耗均等化プロセスのときに最高のホットカウントと関連する物理的記憶位置の中のセクタのセットを最低のホットカウントと関連する物理的記憶位置の中のセクタのセットとスワッピングする代わりに、セクタの実質的にどの2つのセットをスワッピングしてもよく、またそれらをランダムに或いは何らかの決定方法に基づいて選んでもよい。
C.消去プーリング
前述したように、損耗均等化プロセスを直接アドレス指定方式に組み込む代わりに、損耗均等化プロセスを消去プーリング方式に組み込むことができる。消去プーリング方式では、セクタは、通常物理的ブロックと非静的に関連する論理的ブロックにグループ分けされる。論理的ブロックは一般的に或る範囲のホストLBAについてのデータを含むが、データがこれらのLBAに書き込まれたり、或いは更新されるごとにフラッシュメモリシステムのいろいろな物理的記憶位置に記憶される。各物理的ブロックは、その物理的コンテンツについての論理アドレスフィールドまたは他の何らかの識別を含むことができる。このようなマッピング情報を、コントローラにより便利にアクセスされる揮発性メモリ領域内のテーブルに保つのが便利であることがよくある。或る実施形態では、いろいろなLBAがアクセスされるときにいろいろな論理的ブロックを連続的に探索する必要を軽減するために当該テーブルはフラッシュメモリシステムが給電される毎に形成される。このようなテーブルを作るために必要な情報も、実際のユーザデータと共に或いはそれとは別に、不揮発性メモリに記憶されてよい。
1つのタイプの不揮発性メモリシステムでは、アレイは複数のゾーンをなすように組織される。図6は、このようなゾーンを含む不揮発性メモリシステムの線図である。不揮発性メモリシステム600は、メモリコントローラ608により制御され得る不揮発性メモリ604を含む。メモリコントローラ608は、損耗均等化プロセッサ610を使って不揮発性メモリ204に対して損耗均等化プロセスを実行する。メモリコントローラ608によりアクセスされ得る揮発性メモリ612は、論理−物理アドレスマップなどのマッピング情報を含むことができる。不揮発性メモリ604は複数のゾーン614に分割されている。ゾーン614のサイズ、およびゾーン614の数は、不揮発性メモリ604のサイズおよび不揮発性メモリシステム600の必要条件の両方によって変わり得る。ゾーン614は、一般に物理的ブロック618に分割され、それらは、一実施形態では、前述したようにメタブロックにグループ分けされ得る。各ブロック或いはメタブロックは、各々1つ以上のデータセクタの1つ以上のグループ(ページ)622を含む。メモリセルアレイのゾーンの1つの典型的な使用方法では、ホスト論理的ブロックアドレス(LBA)の1つの特定の重なり合わない範囲が物理ゾーンの各々にマッピングされ、このマッピングは変更しない。このようにゾーンは複数のプレーンを利用するメモリのアーキテクチャにおいて2つ以上のプレーンからのブロックを含むように定められ、各ゾーンは通常個々のゾーン内の同じ相対物理的アドレスを有する同じ数のブロックを含む。物理的ゾーンは、ホストLBAの別々の範囲のうちの1つがマッピングされるブロックとして定義され、そのようなものとして論理的に再設定され得る。通常、物理的ブロックアドレスは各ゾーンについて連続的であるように選択されるが、これは必要条件ではない。
消去プーリング方式では、損耗均等化は1ゾーン614内で或いは複数のゾーン614間で行われ得る。例を挙げると、ゾーン614内で、セクタの1つのグループ622は、同じゾーン614の中でどの1つの物理的ブロック618も他の物理的ブロック618より遥かに速く損耗することのないように、セクタの1つのグループ622を物理的ブロック618間で動かすことができる。このようなゾーン内消去プーリング方式を図7を参照して以下で説明する。図8および9に関して以下で検討するように、損耗均等化が2つのゾーン614間で行われるとき、1つのゾーン614が他のゾーン614より遥かに速く損耗するのを実質的に防止するようにゾーン614の記憶位置を動かすことができる。
1.ゾーン内損耗均等化
ゾーン内損耗均等化プロセスのとき、論理的ブロックは一般に1つのゾーン内に留まり、その結果として、当該ゾーンを画定するゾーン境界は実際上動かされない。しかし、当該ゾーン内での物理的アドレスとの論理的対応は動かされる。図12aは、ゾーン内損耗均等化プロセスが行われる前の物理的ブロックを含むゾーンの線図である。ゾーン1200内で、物理的ブロック1202は、論理的コンテンツ、或いは論理的ブロック1206に関連するコンテンツを含むことができる。始めは、物理的ブロック1202aは論理的ブロック1206aに関するデータを含むことができ、物理的ブロック1202bは実際上消去されているブロックであってよい、すなわち論理的ブロック1206bは実質的にコンテンツを持っていなくてもよい。ゾーン内損耗均等化は、図12bに示されているように、論理的ブロック1206がゾーン1200内で実際上動かされることを可能にする。図に示されているように、ゾーン内損耗均等化が行われれば、論理的ブロック1206aのコンテンツは物理的ブロック1202bへ移され、これにより物理的ブロック1202aを消去させる。消去された物理的ブロック1202aは、実際上、実質的にコンテンツを持っていない論理的ブロック1206bを含む。従って、物理的ブロック1202aは消去されているブロックであり、物理的ブロック1206bは論理的ブロック1206aと関連している。ゾーン1200に関連するマッピング情報を含むデータ構造が論理的ブロック1206aに関連するデータの新しい記憶位置を保持するように更新され得ることが理解されるべきである。
図7を参照して、ゾーン内消去プーリングに関連しての例としての一般的な損耗均等化プロセスを説明する。プロセス700はステップ702から始まり、ここで損耗均等化プロセスが実行されるべきか否かが判定される。このような判定は、直接アドレス指定損耗均等化プロセスに関して前述したものを含むいろいろな方法或いはトリガー事象を用いて行われ得るけれども、説明される実施形態では、このような判定は乱数または擬似乱数の使用を通して行われる。一実施形態では、1つのゾーンは1つの装置全体または数個の装置を含み得る。
ステップ703で、損耗均等化を行うべきであるか否かが判定される。説明される実施形態では、トリガー事象に実際に応答する確立を小さくするために、このような判定はマスクの使用を含むことができる。例えば、トリガーのために使用される乱数に対してANDを行うために‘1’および‘0’の何らかの組み合わせを含む数がマスクとして使われるならば、一定のトリガー事象は無視され、損耗均等化は行われない。すると、プロセスはステップ702に戻り、ここで損耗均等化を実行することが適切であるか否かもう一度判定が行われる。代わりに、ステップ703で損耗均等化を実行するべきであると判定されたならば、損耗均等化手続きがステップ704で始まり、ここでセクタのセット“A”がセクタのセット“A”と同じゾーン内に位置する消去プールにコピーされる。消去プールは、当該ゾーン内の他の全ての消去されているブロックである。セクタのセット“A”は、一般に実質的にどのような方法を用いて選択されてもよい。例えば、セクタのセット“A”はランダムに選択されても良く、セクタのセット“A”は決定論的に選択されても良い。
セクタのセット“A”が消去プールにコピーされた後、ステップ708で、前にセクタのセット“A”を含んでいた物理的記憶位置が消去される。このようなしだいで、消去された物理的記憶位置またはブロックは、実際上消去プールの一部になる。前にセクタのセット“A”を含んでいた物理的記憶位置が消去されると、消去プーリング方式の一部として損耗均等化プロセスを実行するプロセスは完了する。マッピング情報を含むどのようなデータ構造も一般にセクタのセット“A”の新しい記憶位置を反映するように更新されるということが理解されるべきである。
ゾーン内損耗均等化は、一般に与えられたゾーン内に実質的に均等に損耗を分散させることを可能にする。しかし、与えられたゾーンが他のゾーンより遥かに頻繁にプログラムまたは消去されるときには、損耗均等化プロセスの際にいろいろなゾーンに損耗が分散され得ることになる。論理的ゾーンは通常固定された範囲のホストLBAを含むので、いろいろなゾーンに損耗を分散させることはゾーンの物理的境界を動かすことを含み得る。
本願明細書に記載されているゾーン内損耗均等化手法は単一のゾーンを有するメモリシステムに応用され得るものであることにも留意すべきである。さらに、単一ゾーン損耗均等化或いはゾーン内損耗均等化のもうひとつの例が以下のセクション4.に記載されている。
2.ゾーンスワッピング
物理的ブロックの損耗が実質的に装置の1つの部分だけが激しく使われると予想されるような損耗であるときに、激しく損耗したゾーンを軽く損耗したゾーンとスワッピングすることを含む損耗均等化プロセスを有利に使用することができる。ゾーンスワッピングを使用する損耗均等化プロセスは、2つのゾーンの物理的記憶位置をスワッピングすることを可能にする。損耗均等化プロセス或いは動作が開始されると、各ゾーン内のブロックのコンテンツが他方のゾーンにコピーされる。通常は、割合に大量のデータを含む複数のゾーンはスワッピングのために相当の長さの時間をとり得るので、ゾーンスワッピングは、不揮発性記憶装置を必要とする標準的動作のバックグラウンドで実行され得ることが理解されるべきである。
移されるデータがアクセスされることを実質的に防止し、さらに損耗均等化動作の最中に不揮発性記憶装置のパワーダウンが当該不揮発性記憶装置のコンテンツをアクセス不能にすることを実質的に防止するために、種々のデータ構造を実現することができる。例えば、データ構造は、損耗均等化プロセスの現在の段階に依存してデータへのアクセスが実質的に制限され得るように、損耗均等化プロセスがどの段階にあるのか示すことができる。種々のデータ構造が、スワッピング動作がいつ進行しているかを判定することを可能にし、また中断されたスワッピング動作を続行するために使用され得る情報を含むこともできる。
損耗均等化中に2つのゾーンが記憶位置を交換するようにランダム或いは決定論的に選択されたとき、各ゾーンからのブロックを他方にコピーすることができる。ゾーンのスワッピングの際に、ゾーンスワッピング中の各ゾーンの物理的先頭が他方のゾーンに関するブロックを含むように、ブロックを1ゾーンの先頭から他のゾーンに交互にコピーすることができる。図13aは、ゾーンスワッピング損耗均等化プロセスの前の物理的ブロックを含むゾーンの例の線図である。物理的ゾーン1300は、物理的ブロック1310,1320を含む。具体的には、ゾーン“A”1300aは物理的ブロック1310を含み、ゾーン“B”1300bは物理的ブロック1320を含む。始めの状態では、論理的ブロック1314aを含む第1の論理的ゾーンは実質的に完全にゾーン“A”1300a内にあり、論理的ブロック1314b〜dを含む第2の論理的ゾーンは実質的に完全にゾーン“B”1300b内にある。図に示されているように、物理的ブロック1320cは始めは消去されているブロックである。
ゾーンスワッピングの際に、論理的ブロック1314のコンテンツはゾーン1300間で動かされる。1つの特定の例では、物理的ブロック1320aに記憶されている論理的ブロック1314bに関連しているコンテンツは、同じゾーン内の物理的ブロック1320cなどの利用可能な消去されているブロックに移されて、スワッピング開始のための空間を作ることができる。その後、物理的ブロック1320aは消去される。次いで、論理的ブロック1314aに関連するコンテンツがゾーン間で物理的ブロック1310aから消去された物理的ブロック1320aに移され、論理的ブロック1314cのコンテンツはゾーン間で物理的ブロック1320cから物理的ブロック1310aに移される。その後、物理的ブロック1310cは消去されてよくて、ゾーン間でのデータスワッピングの次のラウンドのために利用可能になる。図13bは、ゾーン1300aおよび1300b間でのデータの2つの論理的ブロック1314aおよび1314cのスワッピングを含むこれらの始めのステップの後の図13aのゾーン1300を描いている。図に示されているように、論理的ブロック1314cはゾーン“A”1300aに関連し、論理的ブロック1314aはゾーン“B”1300bに関連している。ゾーンスワッピングプロセス後、論理的ブロック1314b,1314dはゾーン“B”1300bと関連したままであるが、論理的ブロック1314b,1314dは異なる物理的ブロック1320に含まれる。
一般に、スワッピング境界はゾーンスワッピングの過程で移動する。スワッピング境界は、与えられたゾーン内の、データを含む実質的に全ての前のブロックが他のゾーンからコピーされたデータを有するように境界を定めるブロックである。ゾーンスワッピングに関連する初期ステップの前に、図13aに示されているように、ゾーン“A”1300a内のスワッピング境界は物理的ブロック1310aであり、ゾーン“B”1300b内のスワッピング境界は物理的ブロック1320aである。しかし、ゾーンスワッピングに関連する初期ステップ後、図13bに示されているように、ゾーン“A”1300a内のスワッピング境界は物理的ブロック1310bであり、ゾーン“B”1300b内のスワッピング境界は物理的ブロック1320bである。
図8を次に参照して、ゾーンスワッピングを含む損耗均等化を実行する方法例と関連するステップを説明する。プロセス800はステップ802から始まり、ここで損耗均等化プロセスを実行するべきか否かが判定される。前述したように、いろいろな方法を用いてこのような判定を行うことができるけれども、説明される実施形態では、このような判定は乱数または擬似乱数の使用を通して行われる。ステップ802で学習された情報に基づいて損耗均等化を実行するべきか否かに関する判定がステップ803で行われる。損耗均等化を実行するべきではないと判定されたならば、プロセスの流れはステップ802に戻り、ここで損耗均等化を実行することが適切であるか否かもう一度判定が行われる。このような後の判定は、或る長さの時間の後に行われてよい。
代わりに、損耗均等化を実行するべきであるとステップ803で判定されたならば、損耗均等化手続きがステップ804で始まり、ここで、例えばゾーン“B”などの第1のゾーンの、ゾーン“B”に関連するスワッピング境界にある物理的ブロックのコンテンツがゾーン“B”内の消去されているブロックにコピーされる。当該ゾーン境界にある物理的ブロックが既に消去されているならば、このステップは不要である。スワッピング境界は、プロセス800の開始の前には、ゾーン“B”の第1の物理的ブロックであり得る。当該物理的ブロックのコンテンツがステップ804でコピーされると、ゾーン“B”内のスワッピング境界にある物理的ブロックがステップ808で消去される。ゾーン“B”内のスワッピング境界にある物理的ブロックが消去されれば、実際上ゾーン“B”の先頭にスペースが空けられる。ゾーン“B”内のスワッピング境界にある物理的ブロックが消去された後、例えばゾーン“A”などの第2のゾーン内のスワッピング境界にある物理的ブロックのコンテンツが、ステップ812でゾーン“B”内のスワッピング境界にある消去されている物理的ブロックにコピーされる。すなわち、“ソースブロック”のコンテンツが“宛先ブロック”にコピーされる。ゾーン“A”内のスワッピング境界にある物理的ブロックのコンテンツがコピーされると、ゾーン“A”内のスワッピング境界にある物理的ブロックがステップ816で消去される。その後、ステップ820で、マッピング情報が更新される。一般に、マッピング情報の更新は、データがその中にコピーされたところのブロックと、消去されているブロックの消去された状態とについてのマッピング情報を含むデータ構造を更新することを含む。このようなマッピング情報は、不揮発性メモリ或いはコントローラの揮発性メモリに記憶され得る。
マッピング情報の更新が行われると、ステップ824で、ゾーン“B”に関連するスワッピング境界にある物理的ブロックのコンテンツがゾーン“A”内のスワッピング境界にある消去されているブロックにコピーされる。ゾーン“A”に関連するコンテンツがゾーン“B”に関連する元のスワッピング境界にある物理的ブロックにコピーされたときにスワッピング境界が実際上移されたことにあるので、ステップ824におけるゾーン“B”に関連するスワッピング境界はステップ804におけるゾーン“B”に関連するスワッピング境界とは異なることが理解されるべきである。同様に、ゾーン“B”に関連するコンテンツが前はゾーン“A”の一部であった物理的ブロックにコピーされるときに、ゾーン“A”に関連するスワッピング境界も実際上移動する。
ステップ828で、ゾーン“B”に関連するスワッピング境界にある物理的ブロックが消去され、すなわちステップ824でコンテンツがそれからコピーされたところのソースブロックが消去される。次いで、ステップ832で、例えばコピーされたコンテンツなどの特定の情報が置かれている物理的記憶位置を特定し、また消去されている物理的ブロックに関連する消去された状態を特定するようにマッピング情報が更新される。その後、ステップ836で、ゾーン“A”およびゾーン“B”が完全にスワッピングされたか否かということに関する判定が行われる。すなわち、前はゾーン“A”内にあった全てのコンテンツがゾーン“B”にコピーされたか否か、また前はゾーン“B”内にあった全てのコンテンツがゾーン“A”にコピーされたか否かが判定される。
ステップ836でゾーン“A”およびゾーン“B”が完全にスワッピングされていると判定されると、ゾーンスワッピングに関連しての損耗均等化を実行するプロセスは完了する。代わりに、ステップ836でゾーン“A”およびゾーン“B”が完全にはスワッピングされていないと判定されたならば、プロセスの流れはステップ812に戻り、ここでゾーンAのスワッピング境界にある物理的ブロックのコンテンツがゾーン“B”内のスワッピング境界にある消去されているブロックにコピーされる。進行を記録する不揮発性テーブルは、損耗均等化プロセス中、電力の損失後に、或いは損耗均等化プロセスがホストのアクセスによって一時的に中断されても、プロセスが続行され得るように、維持されなければならない。
ゾーンスワッピングが行われる速度は大幅に変動し得る。一実施形態では、ブロックのコンテンツがスワッピングされる速度は、幾つかのホスト動作にわたってスワッピングが徐々に行われるように調整され得る。スワッピング動作がホストの動作のバックグラウンドで行われる場合には、動作はゾーンがスワッピングされつつある間に行われ得る。このような場合、記憶装置の動作は、ゾーンのコンテンツの不連続的な物理的記憶位置が当該記憶装置の動作に殆ど影響を及ぼさないような動作である。換言すれば、ゾーンは2つのばらばらの物理的領域を一時的に包含するけれども、ゾーン管理を支配するアルゴリズムは同様に動作し得る。
1つのゾーンからの論理的ブロックが他方のゾーンにコピーされるように2つのゾーンの記憶位置を交換するということに関してゾーンスワッピングが説明されてきた。一般に、ゾーンスワッピングは3つ以上のゾーンの記憶位置を交換することを含み得る。例えば、第1のゾーンのコンテンツを第2のゾーンにコピーすることができ、第2のゾーンのコンテンツを第3のゾーンにコピーすることができ、第3のゾーンのコンテンツを第1のゾーンにコピーすることができる。実質的に任意の数のゾーンの記憶位置を交換することができるけれども、容認され得る性能ペナルティーであると考えられるものに基づいてゾーンの数を決定し得ることが理解されるべきである。すなわち、一度に3つ以上のゾーンの記憶位置をスワッピングすると、場合によっては容認不能と考えられ得る性能ペナルティーをもたらす結果となり得る。
同様に、2つ以上のブロックのコンテンツは、ゾーンスワッピングプロセス全体の間に複数のゾーン間で入れ替えられ得る。換言すれば、ゾーンスワッピングプロセスが、一度に1ブロックずつゾーン間でコンテンツをスワッピングする動作を含むものとして説明してきたけれども、一度に2つ以上のブロックのコンテンツを複数のゾーン間でスワッピングすることもできることが理解されるべきである。
3.ゾーン境界移行
例えば、最も損耗したゾーンを最も損耗していないゾーンとスワッピングするなどのゾーンを完全にスワッピングする代わりに、ゾーンスワッピング損耗均等化プロセスの際に、ゾーンをゾーン移行損耗均等化プロセスの一部として実際上移行させてもよい。すなわち、ゾーンに関連する境界は、元は1つのゾーンの一部であった1つのまたは複数の物理的ブロックが他のゾーンの一部になるように、シフトされ得る。ゾーン境界をシフトさせることによって、前は繰り返しプログラムされ消去されていた物理的ゾーンに関連していた物理的ブロックがあまり頻繁にはプログラムされたり、消去されない物理的ブロックになり得る。従って、記憶装置における物理的ブロックの損耗を装置全体に均等に分散させることができる。装置全体に物理的ブロックの損耗を分散させることは、カードの幾つかの領域が割合に激しく使用されると予想されるときに特に有益である。移動の期間が充分に短ければ、最小量の損耗均等化が実質的に保証される。
ゾーン境界移行を使用する、すなわち論理的ゾーン境界を実際上移動させる損耗均等化プロセスは、論理的ゾーンの物理的記憶位置を徐々に変更することを可能にする。ゾーン境界の位置は、1つのゾーンのサイズに実質的に等しい間隔を置いて複数のブロックから複数のセクタを読み出すことによって、突き止められ得る。各ブロックに関連するヘッダは1ゾーンフィールドを示すことができる。1つのゾーンからの1つのブロックの位置が突き止められたならば、隣接するゾーンの各々からのブロックが発見されるまで各々の方向に隣接するブロックの少なくともヘッダを読み出すことによって境界を発見することができる。代わりに、実質的に全てのマッピング情報を不揮発性メモリ内のテーブルに記憶させることができる。1つのゾーンのゾーン境界が知られていて、かつ固定されたゾーンサイズが知られているときには、ゾーンの当該固定されたサイズに実質的に等しい間隔を置いてブロックからセクタを読み出すことなく他のゾーンに関連するゾーン境界を一般に決定することができる。すなわち、ゾーンのサイズと順序とが知られていれば、論理的ブロック番号と論理的ゾーンに関連するゾーン情報とを含むヘッダを有する1つのブロックのコンテンツを読み出すことによって、ゾーン境界の位置を突き止めることが可能となる。一般に、ブロックのヘッダは、そのブロックの記憶位置を決定することを可能にする絶対論理的ブロック番号またはゾーンの物理的記憶位置の決定を容易にするようにゾーン情報と共に使用され得る相対論理的ブロック番号を含むことができる。
図9を参照して、ゾーン境界移行を用いる損耗均等化の方法の例と関連するステップを説明する。プロセス900はステップ902から始まり、ここで損耗均等化プロセスが実行されるべきか否かが判定される。例えば、決定論的方法などの種々の異なる方法を用いてこのような判定が行われ得るのであるが、説明される実施形態では、このような判定は乱数または擬似乱数の使用を通して行われる。
ステップ903で、損耗均等化が実行されるべきか否かが判定される。損耗均等化が実行されるべきではないと判定されたならば、プロセスの流れはステップ902に戻り、ここで損耗均等化を実行することが適切であるか否かもう一度判定が行われる。代わりに、ステップ903で損耗均等化が実行されるべきであると判定されたならば、損耗均等化手続きが実際上ステップ904で始まり、ここで論理的ゾーン“X”に位置する第1の物理的ブロックが消去されているか否かということに関しての判定が行われる。すなわち、論理的ゾーン“X”の先頭に、すなわちゾーン“X”の下側ゾーン境界にある第1の物理的ブロックが消去されているか否かが判定される。
ゾーン“X”内の第1の物理的ブロックが消去されていなければ、ゾーン“X”内の第1の物理的ブロックが情報を含んでいるという指示である。従って、プロセスの流れはステップ908に移り、ここで論理的ゾーン“X”の先頭にある物理的ブロックのコンテンツがゾーン“X”内の実質的に任意の利用可能なブロックにコピーされる。当該物理的ブロックの当該コンテンツがゾーン“X”内の消去されているブロックにコピーされると、ゾーン“X”の先頭にある物理的ブロックがステップ912で消去される。
ステップ912でゾーン“X”の先頭にある物理的ブロックが消去された後、論理的ゾーン“X−1”の先頭にある第1の物理的ブロックのコンテンツがゾーン“X”内の新たに消去されたブロックにコピーされる。例を挙げると、図6を参照すれば、ゾーン“0”614aの先頭にある物理的ブロックが消去された後、ゾーン“N”614cの先頭にある第1の物理的ブロックのコンテンツがその消去されたブロックにコピーされる。その結果として、論理的ゾーン“X”および論理的ゾーン“X−1”は、実際上各々1物理的ブロックだけシフトされる。ステップ908でゾーン“X”の第1の物理的ブロック内にあったコンテンツが移動されたことおよびゾーン“X−1”の先頭にあった第1の物理的ブロックのコンテンツも移動されたことを示すように、LBAから特定のゾーンにおける物理的ブロックへのマッピングがステップ920で更新される。
物理的記憶位置のマッピングが更新されると、シフトされるべきゾーンがもっとあるか否かということに関してステップ924で判定が行われる。シフトされるべきゾーンがもう無いと判定されたならば、全てのゾーンが1物理的ブロックだけシフトされ、ゾーン境界が本質的に移されるようにゾーンをシフトさせるプロセスが完了したという指示となる。代わりに、シフトさせるべきゾーンがまだあると判定されたならば、ステップ928で新しいゾーン“X”および新しいゾーン“X−1”が特定される。その後、プロセスの流れはステップ904に戻り、ここでゾーン“X”内の第1の物理的ブロックが消去されるか否かが判定される。
ステップ904に戻って、ゾーン“X”内の第1の物理的ブロックが消去されると判定されたならば、ゾーン“X”内の第1の物理的ブロックがコピーのために利用可能であるという指示となる。従って、プロセスの流れはステップ904からステップ916へ進み、ここでゾーン“X−1”の先頭にある第1の物理的ブロックのコンテンツがゾーン“X”内の第1の物理的ブロックにコピーされる。
図10は、記憶装置の初期状態と、例えば図9のプロセス900などの例としてのゾーン境界移行プロセス後の当該記憶装置の状態との線図である。装置1000’は、最初は、例えば5つのゾーンなどの任意の数のゾーン1004’に分割されている。ゾーン境界移行の1つ以上のサイクルまたは反復が完了した後、例えば各ゾーンが少なくとも1物理的ブロックだけ実際上シフトされた後、ゾーン境界は、装置1000”内のゾーン1004’’が本質的に1つ以上の物理的ブロックだけ移動しているように、移されている。図に示されているように、ゾーン境界移行は、ゾーン“4”1004e’を複数の隣接していない物理的ブロックにシフトさせてゾーン“4”1004e’’と1004e’’’とを形成させる。
一般に、最初に与えられたゾーン内にあったどの物理的ブロックも、ゾーン境界移行プロセスが複数回繰り返された後はそのゾーン内に残っていないように、ゾーン境界移行プロセスを反復することができる。すなわち、記憶装置全体にわたって、一度に1物理的ブロックずつ、ゾーンの物理的記憶位置を徐々に移動させることができる。ゾーン境界移行プロセスが複数回反復された後の或るポイントでゾーンの物理的記憶位置がゾーン境界移行プロセス開始前のゾーンの物理的記憶位置と同じとなるように、ゾーン境界を移行させてもよい。
連続するゾーン境界移行プロセス間の時間の長さは、システム全体の要件に応じて変更する。一実施形態では、記憶装置の寿命が終わるまでに、与えられたゾーンが実質的に当該装置全体を横断してそれ以上は移行しないように、ゾーン境界移行プロセスを用いてゾーンをシフトさせる速度を調整することができる。他の実施形態では、損耗均等化に関連する性能ペナルティーを実質的に最小にし、かつゾーン境界移行プロセス自体に起因する付加的な損耗を実際上最小にするために、当該速度をなるべく低くすることができる。しかし、ゾーンがシフトされる速度は性能上の考慮事項のために調整されてよく、或いは当該速度は任意にセットされてよいことが理解されるべきである。
図11a〜cを参照して、ゾーン境界移行プロセス中のゾーン境界の移動の例を説明する。図11aに示されているように、物理的装置1100は、最初は任意の数の論理的ゾーン1104に分割されている。説明される実施形態では、装置1100は3つの論理的ゾーンを含んでいるけれども、ゾーン1104の数は大幅に変更してもよい。システム情報を記憶する幾つかのブロックの割り当て、消去プールへの割り当て、および欠陥のあるブロックの存在に起因してゾーン全体にわたって散在させられ得る特別なブロックを除いて、論理的ゾーン1104の各々は通常ゾーン境界により分離されている隣接する物理的アドレスを有する複数のブロックから形成される。各論理的ゾーン1104は、一定の特定された物理的ブロック1106を含むように定められる。ホストデータ論理的ブロックアドレス(LBA)の全範囲は、通常物理的メモリゾーンの数に等しい連続するLBAの数個のセグメントに分割され、各LBAセグメントは異なる1つの論理的ゾーン1104にマッピングされる。
図11bは、説明される実施形態による初期のゾーン境界移行ステップ中の図11aの装置1100の線図である。最初に、スワッピング境界1108cに位置するゾーン1104aの第1の物理的ブロックであるブロック1106aのコンテンツがステップ(1)として矢1124で示されているように消去されているブロック1106cに移される。ゾーン1104aの中に利用可能な消去されているブロックが無ければ、有効なデータのページをより少数のブロックに圧縮し、それによりその時に消去される1つ以上のブロックを解放する統合プロセスを当該ゾーン全体に対して始めに実行する。消去されているブロックをこれにより作ることができないというありそうも無いような場合には、当該ゾーン内の1つの使用されているブロックを他のゾーンに移さなければならないか、或いは消去されているブロックをそこから見つけることのできる追加のブロックを含むこととなるように当該ゾーンの境界を拡張しなければならない。ステップ(2)として、ゾーン1104cに関連する第1の物理的ブロックであり、スワッピング境界1108bに位置するブロック1106eのコンテンツが、矢1126で示されているように、ブロック1106aに移され、その後ゾーン1104cの第1の物理的ブロック1106eは消去される。
ステップ(3)として、矢1128により示されているように、スワッピング境界1108aに位置するゾーン1104bの第1の物理的ブロックであるブロック1106dのコンテンツをゾーン1104cに関連する第1の物理的ブロックに移し、これによりゾーン1104dの第1の物理的ブロックを実際上消去済みとしておくことができる。スワッピング境界1108aにある物理的ブロックに関連するブロック1106dのコンテンツが移されると、ステップ(4)は、矢1130により示されているように、ブロック1106bのコンテンツをゾーン1104bの第1の物理的ブロック1106dに移す。
図11cに示されているように、ブロック1106のコンテンツが移されると、すなわちコピーされ消去されると、論理的ゾーン境界は実際上シフトされる。各論理的ゾーン1104の物理的ゾーン境界は実際上1物理的ブロックだけシフトされている。例えば、論理的ゾーン境界1108cおよび1108aは、ゾーン1104aがシフトされるようにシフト或いは移行させられている。同様に、ゾーン1104bおよび1104cも、論理的ゾーン境界1108a,1108bおよび1108cの移行に起因して、各々シフトされている。このシフト或いは移行は、前述したようにブロック間でデータを移動させ、それに加えて、各ゾーンについてのLBAの範囲を当該ゾーンに加えられたブロックを含むが当該ゾーンから除去されたブロックを省略したブロックの集合にマッピングしなおすことによって、達成される。一度に1物理的ブロックだけゾーンの境界を移動させるものとしてゾーン境界移行を説明したけれども、一度に2ブロック以上ではあるがゾーン内のブロックの小さな割合の個数(例えば、10パーセント未満、5パーセント或いは2パーセント)だけゾーン境界を移動させてもよい。目標は、ホストがデータのプログラムまたは読み出しを要求していない期間と、またコントローラがより高い優先度の動作を別に実行していない期間中に、一度に少数のブロックだけ境界移行を実行することである。従って、損耗均等化はメモリの全体的性能に悪影響を及ぼさずに実行される。
さらに、ゾーン境界移行に関して、記憶装置に関連する消去されているブロックが独立のプール内に維持されるならば、例えば個々のゾーン内に維持されないならば、その消去されているブロックのプールは、ゾーン境界移行中に1つのゾーンとして扱われてよい。
4.単一ゾーン損耗均等化
図9〜11cに関して説明された損耗均等化プロセスに類似する1つの損耗均等化プロセスを、単一のゾーンを有するメモリシステムに応用することもできる。前述した移行論理的境界は、損耗均等化処理のためにそれらに直接隣接するブロックを特定する物理的ポインタである。単一ゾーンでは、このようなポインタは、一度に1回だけそれら物理的アドレスの順に当該ブロックを通してインクリメントするなどの何らかの決定論的方法でメモリセルブロックを通して循環する。損耗均等化動作を実行するための基準が満たされたとき、現在指されているブロックに対してプロセスが開始される。それが消去されていなければ、そのコンテンツは当該ゾーン内の消去された状態のブロック、すなわち消去プール内のブロックにコピーされる。その後、コピーされたデータについての記憶位置のこの変更を反映するようにアドレステーブルが更新され、元のブロックが消去される。その後、ポインタは次の損耗均等化サイクルの開始を待つために次のブロックへ移動し、そのときにプロセスはその次のブロックに対して反復される。指されたブロックが最初は消去されている状態であるならば、損耗均等化は行われなくてポインタは単に次のブロックに移るだけである。メモリシステムの寿命が終わる前にポインタが当該ゾーン内の全てのブロックを通ったら、次にポインタはそのサイクルを反復することができる。
この損耗均等化プロセスは、個々のブロックが何回消去され、プログラムし直されたか(ホットカウント)とは無関係に実行される。損耗均等化動作を実行するためのしきい値条件は、最後の損耗均等化動作以降の消去プール内の所定数のブロックのプログラミングであってよい。すなわち、損耗均等化動作は、所定回数のブロックプログラミング動作の間隔で、指されているブロックに対して実行される。また、一度に1つのブロックが処理される代わりに、2つ以上のブロックが各々の損耗均等化動作に含まれてもよい。
このセクションの前の段落で説明されたプロセスは、ゾーン境界を変更せずに各ゾーン内で損耗均等化が行われるマルチゾーンシステムにも応用され得る。
5.ホットカウント
物理的ブロックに基づいてホットカウントを維持する代わりに、論理的ブロックに関してホットカウントを維持してもよいことが理解されるべきである。例えば相対的ホットカウントを維持するなどの論理的ブロックについてホットカウントを維持すれば、最近動かされた論理的ブロックと最も前に動かされた論理的ブロックとを追跡することができる。一実施形態では、論理的ブロックを、それらブロックが最近どのように動かされたかによって実際上セットにグループ分けすることができる。ゾーン内の全てのブロックに初期相対的ホットカウント値を与えることができ、そしてブロックが動かされるごとに当該相対的ホットカウントをその最近に動かされたセットまたはグループの値に更新することができ、それは一般にベース値より1つ上である。最近動かされたグループの中に一定数のブロックが存在するようになると、その最近動かされたグループの値をインクリメントすることができ、その後に動かされたブロックをその新しいグループ値に更新することができる。その結果として、最近動かされたブロックと最も前に動かされたブロックとを割合に明瞭に区別して論理的ブロックまたは物理的ブロックの別々のグループまたはビンを作ることができる。一般に、ブロックの相対的ホットカウント値は、割合に小さな数のフィールドの使用を可能にするようにロールオーバーし得るようにされる。最も前に動かされたブロックを指す低い値と、最近ロールオーバーされた数値フィールドを伴う最近動かされたブロックを指す低い値との区別を考慮して、最近使用された値と最も前に使用された値との間に実質的に常に使用されていない値の大きな集合が存在するように、値を管理することができる。
相対的ホットカウントが実施されるときには、特定の例において例えば‘0’から‘7’までの8個の可能な値があるときに実質的に全てのブロックが‘0’の基準値から出発することができる。その8個の値のうちの7個を使用することができ、最近プログラムされたブロックを表す値と最も古いデータを含むブロックを特定する値との間にギャップを設けるために1つの値を取っておく。この例では、書き込まれたブロックは、それらブロックが最近プログラムし直されたことを示す新しい‘1’の値を受け取る。或る所定数のブロックが新しい‘1’の値に更新されると、プログラムし直されるブロックは新しい値‘2’を受け取ることができる。同じまたは異なる所定数のブロックが値‘2’を持っていたならば、ついには値‘3’を新たにプログラムし直されたブロックに割り当てることができる。これが継続されて、各々の所定数のブロックがプログラムし直された後、プログラムし直されたブロックには次のビン番号が割り当てられる。或るポイントでカウントがロールオーバーして、最も前に使用されたブロックが値‘2’を持ち、最近動かされたブロックが値‘0’を持ち、値‘1’がその2つの間のギャップを提供して、最旧のデータを有するブロックの値と最新のデータを有するブロックの値とが明瞭に識別されることになる。
結局、最旧のビン内の全てのブロックが書き直される。ホスト書き込み、スクラッビング (scrubbing)、或いは他の何らかのメカニズムによらなければ、損耗均等化による。前述した例では、その後に最旧のブロックを含むビン‘2’は空になり、その値はギャップとして役立ち、ビン‘1’は最近書き込まれたブロックを特定するために使用され得る。使用される値の範囲(ビン)の間のより大きなギャップは、適度の近頃に動かされたグループからのブロックが、損耗均等化動作が最も前に動かされたブロックを動かすよりも速くホストまたは他の何らかのメカニズムによって更新される場合から得られる。絶対的ホットカウントを利用することができ、その場合、システムは好ましくは決定を行うために論理的または物理的ブロックの利用情報を使用することができる。
ゾーン内損耗均等化方式では、消去済みブロックに移されるブロックを選択することができる。相対論理的ホットカウントが実施されるときに、ゾーン内損耗均等化方式は最も前に移動されたグループから、或いは最低の値を有するグループからの論理的ブロックを選択することができる。選択されたブロックが動かされると、その選択されたブロックは最近動かされたグループの値を受け取る。一般に、ホストによって非常に頻繁にアクセスされた論理的ブロックは、それらブロックが最近動かされたことを示す値を持ち、従って、損耗均等化システムによって動かされるように選択されない可能性がある。同時に、ホストにより非常に稀にしかアクセスされない論理的ブロックは、結局はそれらブロックが最も前に動かされたことを示す低い値を持つ傾向を有する。最も前に動かされた値を有する論理的ブロックは通常或る期間にわたってアクセスされないので、その結果として、その同じ期間内に他のブロックがより高いレベルの損耗に達している。あまり頻繁にはアクセスされなかった論理的ブロックが消去されている物理的ブロックに動かされると、あまり頻繁にはアクセスされなかった論理的ブロックは通常損耗均等化によって再び動かされるまで、それら現在の物理的記憶位置に留まている。すなわち、あまり頻繁にアクセスされなかった論理的ブロックが存する物理的ブロックは一般にアクセスされず、一方、前に占められた物理的ブロックは将来使用されるように消去プールへ移され、従ってより大きな損耗をこうむる。
消去されている物理的ブロックの消去プールは、1つのゾーン内に含まれるものとして一般的に説明されている。一実施形態では、消去されているブロックのプールは記憶装置内で複数のゾーンとは別に維持され得る。このような複数の消去されているブロックは、記憶装置にある複数のブロックの1つの物理的に連続しているグループから必要に応じて割り当てられ得る。
D.要約
本発明の種々の態様を一般的にセクタのセットに関して説明してきたが、セクタのセット内のセクタの数は1以上の任意の適切な数であってよい。しかし、セクタのセット内の最も効率的なセクタ数は、通常消去の単位の中のセクタ数と、物理的メモリアレイ内の消去の単位数とに依存する。
種々の損耗均等化プロセスを、フラッシュメモリカードなどの不揮発性メモリシステムに関して実施されるのに適するものとして説明してきた。一般に、損耗均等化プロセスは、実質的にあらゆる適切な不揮発性メモリシステムに応用され得る。適切な不揮発性メモリシステムは、埋め込みメモリおよびメモリドライブを含むが、これらに限定はされない。一実施形態では、このような不揮発性メモリシステムはホストシステムに取り外し可能に結合されてよく、別の実施形態では不揮発性メモリシステムはホストシステム内の埋め込みシステムであってよい。さらに、損耗均等化プロセスを種々の揮発性メモリシステムに応用することができる。
不揮発性メモリシステムをメモリコントローラを含むものとして説明してきたけれども、損耗均等化プロセスはメモリコントローラを含まない不揮発性メモリシステムに適用され得るものであることが理解されるべきである。コントローラを使用する適切なメモリシステムは、PCカード、コンパクトフラッシュカード、マルチメディアカードおよびセキュアデジタルカードを含むが、これらに限定されるものではない。前述した損耗均等化プロセスを使うことができ、メモリシステムと関連するコントローラを使用しないメモリシステムは、損耗均等化を実行するために、スマートメディアカードおよびメモリスティックカードなど、例えばホストコンピュータシステムなどのホストに付随するコントローラを使用することができる。換言すれば、ホストは、損耗均等化が行われるメモリを直接アドレス指定して管理することができる。さらに、メモリシステムがコントローラを含んでいてもいなくても、ホストシステムに常駐する一次プロセッサは当該メモリシステムのためのメモリコントローラとして作用することができる。
本発明の実施形態をほんの幾つか説明しただけであるが、本発明の範囲から逸脱することなく本発明を他の多くの具体的な形で実施し得るということが理解されるべきである。例えば、直接アドレス指定および消去プーリングに関連しての損耗均等化を実質的に自動的なプロセスとして説明してきたけれども、損耗均等化はユーザ駆動プロセスであってもよいことが理解されるべきである。すなわち、ユーザは、ホストインタフェースを通してコマンドを発することによって損耗均等化プロセスをいつ開始するかを決定することができる。
一般に、損耗均等化の種々のプロセスおよび方法に関連するステップは多様であり得る。一般に本発明の範囲から逸脱することなくステップを付け加えたり、取り除いたり、変更したり、並べ替えることができる。例えば、ゾーン境界が移され、或いはゾーンがスワッピングされるときに、マッピング情報を更新することは不要であるかもしれない。物理的ブロックがどの論理的ゾーンに属するかを示す何らかのインジケータを個々の物理的ブロックが有するならば、スワッピングまたは移行の進行を実際上ログすることは不要であり得る。また、本発明の範囲から逸脱することなく、種々の論理的ブロックの位置の選定を容易にするデータ構造またはマッピングの更新に配慮するために前述した種々の方法およびプロセスにステップを付け加えることもできる。さらに、特定の実装例は、複数の実施形態を組み合わせることができる。
従って、これら例は限定的ではなくて例証的なものと見なされるべきであり、本発明は本願明細書に説明されている詳細に限定されるべきではなく、添付の特許請求の範囲内で改変され得る。
不揮発性記憶装置を含む一般的なホストシステムの線図である。 例えば図1aの記憶装置120などのメモリシステムの線図である。 直接アドレス指定損耗均等化方式を実施し得る不揮発性メモリシステムの実施形態の線図である。 物理的記憶位置とセクタのセットとを含む不揮発性メモリの実施形態の線図である。 セクタのセットがスワッピングされた後の、例えば図3aの不揮発性メモリ304の物理的記憶位置とセクタのセットとを含む不揮発性メモリの実施形態の線図である。 損耗均等化プロセスにさらされるべき不揮発性メモリ内のセクタのセットを特定することに関連するステップを示すプロセスの流れ図である。 損耗均等化プロセス、すなわち図4のステップ428に関連するステップを示すプロセスの流れ図である。 ゾーンを含む不揮発性メモリシステムの実施形態の線図である。 ゾーン内消去プーリングの文脈における一般的な損耗均等化プロセスに関連するステップを示すプロセスの流れ図である。 ゾーンスワッピングの文脈において損耗均等化を実行する1つの方法に関連するステップを示すプロセスの流れ図である。 ゾーン境界移行を用いる損耗均等化の1つの方法に関連するステップを示すプロセスの流れ図である。 記憶装置の初期状態と、例えば図9のプロセス900などのゾーン境界移行プロセス後の記憶装置の状態との線図である。 ゾーン境界移行プロセス前の記憶装置の初期状態の線図である。 初期ゾーン境界移行ステップ中の記憶装置、すなわち図11aの装置1100の線図である。 初期ゾーン境界移行ステップが行われた後の記憶装置、すなわち図11aの装置1100の線図である。 ゾーン内損耗均等化プロセス前の物理的ブロックを含むゾーンの線図である。 ゾーン内損耗均等化プロセス後の物理的ブロックを含むゾーン、すなわち図12aのゾーン1200の線図である。 ゾーンスワッピング損耗均等化プロセス前の物理的ブロックを含むゾーンの線図である。 ゾーンスワッピング損耗均等化プロセス後の物理的ブロックを含むゾーン、すなわち図13aのゾーン1300の線図である。

Claims (10)

  1. 間にアドレス境界を持って複数のゾーンに組織された連続的な物理的アドレスを有する消去可能で再プログラム可能な不揮発性メモリセルの複数の単位を含み、論理的アドレスの別個の範囲が前記ゾーンの各々にマッピングされるようになっているメモリシステムにおける操作の方法であって
    前記ゾーンの各々から少なくとも1つの単位を削除して、前記個々のゾーンにおける単位の数を変えずに前記少なくとも1つの単位を隣接しているゾーンに付け加えるように境界アドレスを割り当てなおすステップと、
    その後、データの論理的アドレスに従って前記ゾーン内の前記割り当てなおされたメモリセル単位にデータをプログラムし、またはそれらメモリセル単位からデータを読み出すために前記ゾーンにアクセスするステップと、
    少なくとも前記メモリセル単位が全てそれらゾーンから隣接するゾーンへ動かされるまで前記境界アドレスを繰り返し割り当てなおして前記ゾーンにアクセスし、それにより前記論理的アドレスを通してアクセスされた単位の使用が分散されるステップと、
    を含む方法。
  2. 請求項1記載の方法において、
    前記境界アドレスを割り当てなおすステップは、前記ゾーンの各々から前記ゾーン内の単位の10%未満の数の単位を削除し、前記数の単位を隣接するゾーンに付け加えるステップを含む方法。
  3. 請求項1記載の方法において、
    前記ゾーンは前記ゾーンのメモリセル単位の部分を個々の複数のメモリプレーンに有して形成され、前記境界アドレスを割り当てなおすステップは、前記メモリプレーンの各々の中の前記ゾーンの各々の部分から少なくとも1つの単位を削除し、前記少なくとも1つの単位を同じプレーン内の他のゾーンの隣接する部分に付け加えるステップを含む方法。
  4. 請求項1記載の方法において、
    前記メモリセル単位は、複数の同時に消去可能なメモリセルを個々に含む方法。
  5. 請求項4記載の方法において、
    前記メモリセル単位は、データで個々にプログラム可能な複数のページを個々に含む方法。
  6. 請求項1記載の方法において、
    前記境界アドレスを割り当てなおすステップは、前記少なくとも1つの単位に記憶されている任意のデータを前記ゾーンの各々から前記隣接するゾーンの付け加えられた単位内へコピーするステップを含む方法。
  7. 同時に消去可能最小数のメモリセルの単位に物理的に組織された消去可能で再プログラム可能な不揮発性メモリセルのシステムを操作する方法であって
    論理的メモリアドレスの3つ以上の重なり合わない範囲のうちの1つの中のデータをプログラムし、または読み出すホストアクセス要求をメモリセル消去単位の対応する数の論理的グループのうちの一意的な1つに向けるステップと、
    前記論理的グループからのアクセス要求を複数の消去単位の別個の物理的グループにマッピングするステップと、
    ホストアクセス要求により引き起こされたデータプログラミングまたは読み出しの操作と操作の間に、一度に少なくとも1つの消去単位を含む個々の物理的グループの一部を除去し、かつ個々の物理的グループの中の消去単位の均一な個数を維持するように前記除去された消去単位を前記物理的グループのうちの隣接する物理的グループに付け加えることによって前記論理的グループを前記物理的グループに繰り返しマッピングしなおし、これにより時間がたつうちに前記システムでの前記消去単位の使用が均等化されるステップと、
    を含む方法。
  8. 複数のプレーン内で最小数の同時に消去可能なメモリセルの複数のブロックに組織されたフラッシュメモリセルのアレイを操作する方法であって
    複数のプレーンの各々からの複数のブロックの一部を個々に含む複数のゾーンを画定するステップと、
    論理的アドレスの1つの範囲の異なる部分を前記ゾーンの各々にマッピングするステップと、
    各プレーンにおいて前記ゾーンから少なくとも1つのブロックを除去し、かつ前記複数のプレーンの各々において指定された複数のブロックを有する前記複数のゾーンを維持するようにその除去されたブロックをそれら同じプレーン内の前記ゾーンのうちの他のゾーンに付け加えることによって個々のゾーンを繰り返し画定しなおし、これにより論理的アドレスのいろいろな範囲に存するブロックの使用が時間がたつうちに前記アレイに分散されるステップと、
    を含む方法。
  9. 一緒に消去可能で再プログラム可能な不揮発性メモリセルの複数の単位を個々に含む複数のゾーンを含むメモリシステムが受け取った1つの別個の範囲の論理的アドレス前記個々のゾーンにマッピングするようになっている前記メモリシステムにおける操作の方法であって
    前記複数のゾーンのうちの第1のゾーンに記憶されているデータを前記複数のゾーンのうちの第2のゾーンに記憶されているデータと交換するステップと、
    その後、前記第1および第2のゾーンのうちの一方の中の前記メモリシステムにアクセスするアドレスを前記第1および第2のゾーンのうちの他方にアクセスするアドレスに変換するステップと、
    を含む方法。
  10. 請求項9記載の方法において、
    前記データを交換するステップは、
    前記第2のゾーンの物理的アドレスの境界に隣接する物理的アドレスを有する前記第2のゾーン内の第1の消去単位から、消去される前記第2のゾーン内の第2の消去単位へデータを動かすステップと、
    前記第1のゾーンの物理的アドレスの境界に隣接する物理的アドレスを有する前記第1のゾーンの消去単位から前記第1の単位へデータを動かすステップと、
    を含む方法。
JP2004548368A 2002-10-28 2003-10-09 不揮発性記憶システムにおける自動損耗均等化 Expired - Fee Related JP4518951B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US42217302P 2002-10-28 2002-10-28
PCT/US2003/032050 WO2004040586A1 (en) 2002-10-28 2003-10-09 Automated wear leveling in non-volatile storage systems

Publications (2)

Publication Number Publication Date
JP2006504201A JP2006504201A (ja) 2006-02-02
JP4518951B2 true JP4518951B2 (ja) 2010-08-04

Family

ID=32230329

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004548368A Expired - Fee Related JP4518951B2 (ja) 2002-10-28 2003-10-09 不揮発性記憶システムにおける自動損耗均等化

Country Status (9)

Country Link
US (2) US7120729B2 (ja)
EP (1) EP1556868B1 (ja)
JP (1) JP4518951B2 (ja)
KR (2) KR101122511B1 (ja)
CN (1) CN100483552C (ja)
AT (1) ATE372578T1 (ja)
AU (1) AU2003282544A1 (ja)
DE (1) DE60316171T2 (ja)
WO (1) WO2004040586A1 (ja)

Families Citing this family (267)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8171203B2 (en) * 1995-07-31 2012-05-01 Micron Technology, Inc. Faster write operations to nonvolatile memory using FSInfo sector manipulation
US6901498B2 (en) * 2002-12-09 2005-05-31 Sandisk Corporation Zone boundary adjustment for defects in non-volatile memories
TWI243303B (en) * 2003-11-14 2005-11-11 Hon Hai Prec Ind Co Ltd System and method for managing flash file stored in a flash memory
JP4347707B2 (ja) * 2004-01-09 2009-10-21 パナソニック株式会社 情報記録媒体のフォーマット方法および情報記録媒体
JP2006024024A (ja) * 2004-07-08 2006-01-26 Toshiba Corp 論理ディスク管理方法及び装置
JP4561246B2 (ja) * 2004-08-31 2010-10-13 ソニー株式会社 メモリ装置
US7590918B2 (en) * 2004-09-10 2009-09-15 Ovonyx, Inc. Using a phase change memory as a high volume memory
US7509526B2 (en) * 2004-09-24 2009-03-24 Seiko Epson Corporation Method of correcting NAND memory blocks and to a printing device employing the method
US7441067B2 (en) * 2004-11-15 2008-10-21 Sandisk Corporation Cyclic flash memory wear leveling
US7412560B2 (en) * 2004-12-16 2008-08-12 Sandisk Corporation Non-volatile memory and method with multi-stream updating
US7386655B2 (en) 2004-12-16 2008-06-10 Sandisk Corporation Non-volatile memory and method with improved indexing for scratch pad and update blocks
US7366826B2 (en) * 2004-12-16 2008-04-29 Sandisk Corporation Non-volatile memory and method with multi-stream update tracking
US7315916B2 (en) * 2004-12-16 2008-01-01 Sandisk Corporation Scratch pad block
US7395404B2 (en) * 2004-12-16 2008-07-01 Sandisk Corporation Cluster auto-alignment for storing addressable data packets in a non-volatile memory array
US7315917B2 (en) 2005-01-20 2008-01-01 Sandisk Corporation Scheduling of housekeeping operations in flash memory systems
JP4665539B2 (ja) * 2005-01-31 2011-04-06 ソニー株式会社 メモリ制御装置、メモリ制御方法、プログラム
US8108691B2 (en) 2005-02-07 2012-01-31 Sandisk Technologies Inc. Methods used in a secure memory card with life cycle phases
US8321686B2 (en) 2005-02-07 2012-11-27 Sandisk Technologies Inc. Secure memory card with life cycle phases
US8423788B2 (en) 2005-02-07 2013-04-16 Sandisk Technologies Inc. Secure memory card with life cycle phases
US20060236025A1 (en) * 2005-04-18 2006-10-19 Intel Corporation Method and apparatus to control number of erasures of nonvolatile memory
US7685360B1 (en) 2005-05-05 2010-03-23 Seagate Technology Llc Methods and structure for dynamic appended metadata in a dynamically mapped mass storage device
US7916421B1 (en) * 2005-05-05 2011-03-29 Seagate Technology Llc Methods and structure for recovery of write fault errors in a dynamically mapped mass storage device
US7748031B2 (en) 2005-07-08 2010-06-29 Sandisk Corporation Mass storage device with automated credentials loading
WO2007013372A1 (ja) 2005-07-29 2007-02-01 Matsushita Electric Industrial Co., Ltd. メモリコントローラ、不揮発性記憶装置、不揮発性記憶システム及び不揮発性メモリのアドレス管理方法
US7680980B2 (en) * 2005-08-12 2010-03-16 Kabushiki Kaisha Toshiba Image forming apparatus
KR101014179B1 (ko) * 2005-09-14 2011-02-14 디스크레틱스 테크놀로지스 엘티디. 플래시 대용량 저장 메모리를 가진 보안 장치를 위한 보안 및 적응형 시스템 구조
US7536540B2 (en) * 2005-09-14 2009-05-19 Sandisk Corporation Method of hardware driver integrity check of memory card controller firmware
US7934049B2 (en) 2005-09-14 2011-04-26 Sandisk Corporation Methods used in a secure yet flexible system architecture for secure devices with flash mass storage memory
US8291295B2 (en) 2005-09-26 2012-10-16 Sandisk Il Ltd. NAND flash memory controller exporting a NAND interface
US7631245B2 (en) 2005-09-26 2009-12-08 Sandisk Il Ltd. NAND flash memory controller exporting a NAND interface
KR100848315B1 (ko) * 2005-12-08 2008-07-24 한국전자통신연구원 이중 저널링을 이용한 데이터 저장 공간 확보 방법
JP2007164318A (ja) * 2005-12-12 2007-06-28 Renesas Technology Corp 記憶装置
US20070150644A1 (en) * 2005-12-28 2007-06-28 Yosi Pinto System for writing non-volatile memories for increased endurance
US7245556B1 (en) * 2005-12-28 2007-07-17 Sandisk Corporation Methods for writing non-volatile memories for increased endurance
US7599261B2 (en) * 2006-01-18 2009-10-06 International Business Machines Corporation Removable storage media with improved data integrity
US20070174549A1 (en) * 2006-01-24 2007-07-26 Yevgen Gyl Method for utilizing a memory interface to control partitioning of a memory module
US8756399B2 (en) * 2006-01-25 2014-06-17 Seagate Technology Llc Mutable association of a set of logical block addresses to a band of physical storage blocks
US20070208904A1 (en) * 2006-03-03 2007-09-06 Wu-Han Hsieh Wear leveling method and apparatus for nonvolatile memory
US8296497B2 (en) * 2006-03-14 2012-10-23 Stmicroelectronics Pvt. Ltd. Self-updating memory controller
US20070255889A1 (en) * 2006-03-22 2007-11-01 Yoav Yogev Non-volatile memory device and method of operating the device
JP4863749B2 (ja) * 2006-03-29 2012-01-25 株式会社日立製作所 フラッシュメモリを用いた記憶装置、その消去回数平準化方法、及び消去回数平準化プログラム
KR101185617B1 (ko) 2006-04-04 2012-09-24 삼성전자주식회사 외부 메모리의 부하를 줄일 수 있는 웨어 레벨링 기법에의한 플래시 파일 시스템의 동작 방법
US7451264B2 (en) * 2006-04-13 2008-11-11 Sandisk Corporation Cycle count storage methods
US7467253B2 (en) * 2006-04-13 2008-12-16 Sandisk Corporation Cycle count storage systems
FR2901035B1 (fr) * 2006-05-11 2008-07-11 St Microelectronics Sa Procede et dispositif de gestion d'une table de correspondance d'acces a une memoire
JP4804218B2 (ja) * 2006-05-11 2011-11-02 株式会社日立製作所 記憶媒体への書き込み回数を管理する計算機システム及びその制御方法
US7778077B2 (en) * 2006-05-15 2010-08-17 Sandisk Corporation Non-volatile memory system with end of life calculation
US7523013B2 (en) * 2006-05-15 2009-04-21 Sandisk Corporation Methods of end of life calculation for non-volatile memories
EP2024839B1 (en) 2006-05-15 2014-07-02 SanDisk Technologies Inc. Non-volatile memory system with end of life calculation
US7349254B2 (en) * 2006-05-31 2008-03-25 Qimonda Flash Gmbh & Co. Kg Charge-trapping memory device and methods for its manufacturing and operation
US20080046630A1 (en) * 2006-08-21 2008-02-21 Sandisk Il Ltd. NAND flash memory controller exporting a logical sector-based interface
US20080046641A1 (en) * 2006-08-21 2008-02-21 Sandisk Il Ltd. NAND flash memory controller exporting a logical sector-based interface
US20080072058A1 (en) * 2006-08-24 2008-03-20 Yoram Cedar Methods in a reader for one time password generating device
US20080052524A1 (en) * 2006-08-24 2008-02-28 Yoram Cedar Reader for one time password generating device
US20080091901A1 (en) * 2006-10-12 2008-04-17 Alan David Bennett Method for non-volatile memory with worst-case control data management
US20080091871A1 (en) * 2006-10-12 2008-04-17 Alan David Bennett Non-volatile memory with worst-case control data management
US20080126685A1 (en) * 2006-11-24 2008-05-29 Radoslav Danilak System, method, and computer program product for reducing memory write operations using an instruction set
US7904764B2 (en) * 2006-11-24 2011-03-08 Sandforce, Inc. Memory lifetime gauging system, method and computer program product
US7747813B2 (en) * 2006-11-24 2010-06-29 Sandforce, Inc. Multi-memory device system and method for managing a lifetime thereof
US7809900B2 (en) * 2006-11-24 2010-10-05 Sandforce, Inc. System, method, and computer program product for delaying an operation that reduces a lifetime of memory
US7904619B2 (en) * 2006-11-24 2011-03-08 Sandforce, Inc. System, method, and computer program product for reducing memory write operations using difference information
US7904672B2 (en) * 2006-12-08 2011-03-08 Sandforce, Inc. System and method for providing data redundancy after reducing memory writes
US8090980B2 (en) * 2006-12-08 2012-01-03 Sandforce, Inc. System, method, and computer program product for providing data redundancy in a plurality of storage 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
KR100881669B1 (ko) * 2006-12-18 2009-02-06 삼성전자주식회사 비휘발성 데이터 저장장치의 정적 데이터 영역 검출 방법,마모도 평준화 방법 및 데이터 유닛 병합 방법과 그 장치
US7710777B1 (en) 2006-12-20 2010-05-04 Marvell International Ltd. Semi-volatile NAND flash memory
DE112006004187B4 (de) * 2006-12-27 2015-09-10 Intel Corporation Verfahren, nicht-flüchtige Speichervorrichtung und Computersystem zum initiativen Abnutzungsausgleich für einen nicht-flüchtigen Speicher
TW200828320A (en) * 2006-12-28 2008-07-01 Genesys Logic Inc Method for performing static wear leveling on flash memory
US8423794B2 (en) 2006-12-28 2013-04-16 Sandisk Technologies Inc. Method and apparatus for upgrading a memory card that has security mechanisms for preventing copying of secure content and applications
CN100504814C (zh) * 2007-01-17 2009-06-24 忆正存储技术(深圳)有限公司 闪存的区块管理方法
KR20080072201A (ko) * 2007-02-01 2008-08-06 삼성전자주식회사 메모리 포맷이 가능한 디지털 전자기기, 메모리 포맷 방법,그리고, 저장기능을 가지는 디지털 전자기기 및 저장방법
KR100882740B1 (ko) * 2007-02-22 2009-02-09 삼성전자주식회사 맵 히스토리 기반의 불휘발성 메모리의 매핑 방법 및 저장장치
US7731365B2 (en) * 2007-03-19 2010-06-08 Johnson&Johnson Vision Care, Inc. Method of fitting contact lenses
US7689762B2 (en) 2007-05-03 2010-03-30 Atmel Corporation Storage device wear leveling
US20080294813A1 (en) * 2007-05-24 2008-11-27 Sergey Anatolievich Gorobets Managing Housekeeping Operations in Flash Memory
US20080294814A1 (en) * 2007-05-24 2008-11-27 Sergey Anatolievich Gorobets Flash Memory System with Management of Housekeeping Operations
JP4444314B2 (ja) 2007-07-13 2010-03-31 株式会社東芝 半導体メモリ情報蓄積装置とその書き込み制御方法
KR100857761B1 (ko) * 2007-06-14 2008-09-10 삼성전자주식회사 웨어 레벨링을 수행하는 메모리 시스템 및 그것의 쓰기방법
CN100538662C (zh) * 2007-07-05 2009-09-09 炬力集成电路设计有限公司 一种基于局部采样的存储器的磨损平衡方法
JP5039463B2 (ja) * 2007-07-12 2012-10-03 株式会社日立製作所 記録装置および記録方法
KR101447188B1 (ko) * 2007-07-31 2014-10-08 삼성전자주식회사 플래시 메모리에 최적화된 입출력 제어 방법 및 장치
TWI373772B (en) * 2007-10-04 2012-10-01 Phison Electronics Corp Wear leveling method and controller using the same
CN101409108B (zh) * 2007-10-09 2011-04-13 群联电子股份有限公司 平均磨损方法及使用此方法的控制器
US20090106522A1 (en) * 2007-10-18 2009-04-23 Sony Corporation Electronic system with dynamic selection of multiple computing device
CN101419834B (zh) * 2007-10-22 2011-03-30 群联电子股份有限公司 平均磨损方法及使用此方法的控制器
US8296498B2 (en) * 2007-11-13 2012-10-23 Sandisk Technologies Inc. Method and system for virtual fast access non-volatile RAM
CA2706099C (en) * 2007-11-19 2014-08-26 Nexxus Lighting, Inc. Apparatus for housing a light assembly
WO2009067556A2 (en) * 2007-11-19 2009-05-28 Nexxus Lighting, Inc. Apparatus and methods for thermal management of light emitting diodes
US7849275B2 (en) * 2007-11-19 2010-12-07 Sandforce, Inc. System, method and a computer program product for writing data to different storage devices based on write frequency
US7903486B2 (en) 2007-11-19 2011-03-08 Sandforce, Inc. System, method, and computer program product for increasing a lifetime of a plurality of blocks of memory
US9183133B2 (en) 2007-11-28 2015-11-10 Seagate Technology Llc System, method, and computer program product for increasing spare space in memory to extend a lifetime of the memory
US7636258B2 (en) * 2007-12-12 2009-12-22 Qimonda Flash Gmbh Integrated circuits, memory controller, and memory modules
US8656083B2 (en) * 2007-12-21 2014-02-18 Spansion Llc Frequency distributed flash memory allocation based on free page tables
US8352671B2 (en) 2008-02-05 2013-01-08 Spansion Llc Partial allocate paging mechanism using a controller and a buffer
US8275945B2 (en) 2008-02-05 2012-09-25 Spansion Llc Mitigation of flash memory latency and bandwidth limitations via a write activity log and buffer
US8209463B2 (en) * 2008-02-05 2012-06-26 Spansion Llc Expansion slots for flash memory based random access memory subsystem
US8332572B2 (en) * 2008-02-05 2012-12-11 Spansion Llc Wear leveling mechanism using a DRAM buffer
US8095724B2 (en) * 2008-02-05 2012-01-10 Skymedi Corporation Method of wear leveling for non-volatile memory and apparatus using via shifting windows
US8423739B2 (en) * 2008-02-06 2013-04-16 International Business Machines Corporation Apparatus, system, and method for relocating logical array hot spots
US8914340B2 (en) * 2008-02-06 2014-12-16 International Business Machines Corporation Apparatus, system, and method for relocating storage pool hot spots
DE102008009768B4 (de) * 2008-02-19 2011-04-07 Texas Instruments Deutschland Gmbh Inkrementierender Zähler mit verlängerter Schreiblebensdauer
JP5010505B2 (ja) * 2008-03-01 2012-08-29 株式会社東芝 メモリシステム
US8560761B2 (en) * 2008-03-31 2013-10-15 Spansion Llc Memory resource management for a flash aware kernel
KR101437123B1 (ko) * 2008-04-01 2014-09-02 삼성전자 주식회사 메모리 시스템 및 그것의 마모도 관리 방법
US20090254729A1 (en) * 2008-04-07 2009-10-08 Skymedi Corporation Method of wear leveling for a non-volatile memory
US20090259819A1 (en) * 2008-04-09 2009-10-15 Skymedi Corporation Method of wear leveling for non-volatile memory
JP4439569B2 (ja) * 2008-04-24 2010-03-24 株式会社東芝 メモリシステム
US8082385B2 (en) * 2008-05-02 2011-12-20 Sony Corporation Systematic memory shift for pre-segmented memory
US8055835B2 (en) * 2008-06-23 2011-11-08 International Business Machines Corporation Apparatus, system, and method for migrating wear spots
US8843691B2 (en) * 2008-06-25 2014-09-23 Stec, Inc. Prioritized erasure of data blocks in a flash storage device
US20100017566A1 (en) * 2008-07-15 2010-01-21 Radoslav Danilak System, method, and computer program product for interfacing computing device hardware of a computing device and an operating system utilizing a virtualization layer
US20100017588A1 (en) * 2008-07-15 2010-01-21 Radoslav Danilak System, method, and computer program product for providing an extended capability to a system
US20100017807A1 (en) * 2008-07-15 2010-01-21 Radoslav Danilak System, method, and computer program product for transparent communication between a storage device and an application
TWI389125B (zh) * 2008-07-18 2013-03-11 A Data Technology Co Ltd 記憶體儲存裝置及其控制方法
KR20100013485A (ko) 2008-07-31 2010-02-10 삼성전자주식회사 메모리 장치 및 웨어 레벨링 방법
CN101640069B (zh) * 2008-08-01 2013-12-18 群联电子股份有限公司 用于闪速存储器的平均磨损方法与平均磨损系统
US20100064093A1 (en) * 2008-09-09 2010-03-11 Radoslav Danilak System, method, and computer program product for converting data in a binary representation to a non-power of two representation
MX2011002697A (es) * 2008-09-11 2011-04-12 Nexxus Lighting Inc Luz y proceso para manufacturar una luz.
TWI364661B (en) * 2008-09-25 2012-05-21 Silicon Motion Inc Access methods for a flash memory and memory devices
KR100974215B1 (ko) * 2008-10-02 2010-08-06 주식회사 하이닉스반도체 반도체 스토리지 시스템 및 그 제어 방법
TWI470428B (zh) * 2008-10-03 2015-01-21 Phison Electronics Corp 用於非揮發性記憶體的資料程式規劃系統、記憶體管理方法及其控制器
US9128821B2 (en) * 2008-10-10 2015-09-08 Seagate Technology Llc Data updating in non-volatile memory
US8285970B2 (en) 2008-11-06 2012-10-09 Silicon Motion Inc. Method for managing a memory apparatus, and associated memory apparatus thereof
US8275933B2 (en) * 2008-11-10 2012-09-25 Fusion-10, Inc Apparatus, system, and method for managing physical regions in a solid-state storage device
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
US20100146236A1 (en) * 2008-12-08 2010-06-10 Radoslav Danilak System, method, and computer program product for rendering at least a portion of data useless in immediate response to a delete command
WO2010067361A1 (en) 2008-12-10 2010-06-17 Amir Ban Method and device of managing a reduced wear memory
US8316201B2 (en) * 2008-12-18 2012-11-20 Sandisk Il Ltd. Methods for executing a command to write data from a source location to a destination location in a memory device
US7940568B1 (en) 2008-12-30 2011-05-10 Micron Technology, Inc. Dynamic polarization for reducing stress induced leakage current
US20100174845A1 (en) * 2009-01-05 2010-07-08 Sergey Anatolievich Gorobets Wear Leveling for Non-Volatile Memories: Maintenance of Experience Count and Passive Techniques
US8094500B2 (en) * 2009-01-05 2012-01-10 Sandisk Technologies Inc. Non-volatile memory and method with write cache partitioning
US8700840B2 (en) * 2009-01-05 2014-04-15 SanDisk Technologies, Inc. Nonvolatile memory with write cache having flush/eviction methods
US8040744B2 (en) 2009-01-05 2011-10-18 Sandisk Technologies Inc. Spare block management of non-volatile memories
US8244960B2 (en) 2009-01-05 2012-08-14 Sandisk Technologies Inc. Non-volatile memory and method with write cache partition management methods
US8250293B2 (en) * 2009-01-19 2012-08-21 Qimonda Ag Data exchange in resistance changing memory for improved endurance
US20100199020A1 (en) * 2009-02-04 2010-08-05 Silicon Storage Technology, Inc. Non-volatile memory subsystem and a memory controller therefor
KR20100091544A (ko) * 2009-02-10 2010-08-19 삼성전자주식회사 메모리 시스템 및 그 마모도 관리 방법
JP5185156B2 (ja) * 2009-02-24 2013-04-17 株式会社東芝 メモリコントローラおよび半導体記憶装置
US8239614B2 (en) 2009-03-04 2012-08-07 Micron Technology, Inc. Memory super block allocation
US8090899B1 (en) 2009-03-04 2012-01-03 Western Digital Technologies, Inc. Solid state drive power safe wear-leveling
KR101038991B1 (ko) * 2009-03-10 2011-06-03 주식회사 하이닉스반도체 메모리 영역의 균등한 사용을 위한 반도체 스토리지 시스템및 그 제어 방법
KR101586047B1 (ko) * 2009-03-25 2016-01-18 삼성전자주식회사 불휘발성 메모리 장치 및 그것의 프로그램 방법
US8090905B2 (en) * 2009-03-27 2012-01-03 Sandforce, Inc. System, method, and computer program product for converting logical block address de-allocation information in a first format to a second format
US8671258B2 (en) 2009-03-27 2014-03-11 Lsi Corporation Storage system logical block address de-allocation management
US8230159B2 (en) 2009-03-27 2012-07-24 Lsi Corporation System, method, and computer program product for sending logical block address de-allocation status information
US20100250830A1 (en) * 2009-03-27 2010-09-30 Ross John Stenfort System, method, and computer program product for hardening data stored on a solid state disk
US8176295B2 (en) 2009-04-20 2012-05-08 Imation Corp. Logical-to-physical address translation for a removable data storage device
US8065469B2 (en) 2009-04-20 2011-11-22 Imation Corp. Static wear leveling
US8250282B2 (en) * 2009-05-14 2012-08-21 Micron Technology, Inc. PCM memories for storage bus interfaces
US20100318719A1 (en) * 2009-06-12 2010-12-16 Micron Technology, Inc. Methods, memory controllers and devices for wear leveling a memory
US8639877B2 (en) * 2009-06-30 2014-01-28 International Business Machines Corporation Wear leveling of solid state disks distributed in a plurality of redundant array of independent disk ranks
US20110004720A1 (en) * 2009-07-02 2011-01-06 Chun-Ying Chiang Method and apparatus for performing full range random writing on a non-volatile memory
US20110004718A1 (en) 2009-07-02 2011-01-06 Ross John Stenfort System, method, and computer program product for ordering a plurality of write commands associated with a storage device
US9792074B2 (en) * 2009-07-06 2017-10-17 Seagate Technology Llc System, method, and computer program product for interfacing one or more storage devices with a plurality of bridge chips
US8140712B2 (en) * 2009-07-17 2012-03-20 Sandforce, Inc. System, method, and computer program product for inserting a gap in information sent from a drive to a host device
US8516166B2 (en) * 2009-07-20 2013-08-20 Lsi Corporation System, method, and computer program product for reducing a rate of data transfer to at least a portion of memory
US8601202B1 (en) * 2009-08-26 2013-12-03 Micron Technology, Inc. Full chip wear leveling in memory device
US8036016B2 (en) * 2009-09-01 2011-10-11 Micron Technology, Inc. Maintenance process to enhance memory endurance
US8234520B2 (en) 2009-09-16 2012-07-31 International Business Machines Corporation Wear leveling of solid state disks based on usage information of data and parity received from a raid controller
US8169833B2 (en) * 2009-10-01 2012-05-01 Micron Technology, Inc. Partitioning process to improve memory cell retention
US8108737B2 (en) * 2009-10-05 2012-01-31 Sandforce, Inc. System, method, and computer program product for sending failure information from a serial ATA (SATA) solid state drive (SSD) to a host device
US8526605B2 (en) * 2009-10-09 2013-09-03 Seagate Technology Llc Data encryption to provide data security and memory cell bit wear leveling
EP2317443A1 (en) 2009-10-29 2011-05-04 Incard SA Method for executing data updates in an IC Card
US8013762B2 (en) * 2009-11-03 2011-09-06 Seagate Technology Llc Evaluating alternative encoding solutions during data compression
US8560770B2 (en) * 2009-11-13 2013-10-15 Seagate Technology Llc Non-volatile write cache for a data storage system
US8495281B2 (en) * 2009-12-04 2013-07-23 International Business Machines Corporation Intra-block memory wear leveling
US8285946B2 (en) 2009-12-15 2012-10-09 International Business Machines Corporation Reducing access contention in flash-based memory systems
TWI484334B (zh) * 2009-12-24 2015-05-11 Univ Nat Taiwan 非揮發記憶體的區域式管理方法
US8443263B2 (en) 2009-12-30 2013-05-14 Sandisk Technologies Inc. Method and controller for performing a copy-back operation
US8595411B2 (en) * 2009-12-30 2013-11-26 Sandisk Technologies Inc. Method and controller for performing a sequence of commands
TWI447735B (zh) * 2010-02-05 2014-08-01 Phison Electronics Corp 記憶體管理與寫入方法及其可複寫式非揮發性記憶體控制器與儲存系統
JP2011164994A (ja) * 2010-02-10 2011-08-25 Toshiba Corp メモリシステム
US8856488B2 (en) 2010-02-11 2014-10-07 Memory Technologies Llc Method for utilizing a memory interface to control partitioning of a memory module
JP5130313B2 (ja) * 2010-04-02 2013-01-30 株式会社日立製作所 管理システム及び計算機システムの管理方法
CN102375693A (zh) * 2010-08-16 2012-03-14 成都市华为赛门铁克科技有限公司 损耗均衡处理方法和系统以及固态硬盘
CN102446071B (zh) * 2010-09-30 2014-10-08 环鸿科技股份有限公司 取得一存储器状态资讯的接取方法、电子装置及程序产品
WO2012065112A2 (en) * 2010-11-12 2012-05-18 Apple Inc. Apparatus and methods for recordation of device history across multiple software emulations
TWI473105B (zh) * 2011-01-18 2015-02-11 Macronix Int Co Ltd 具有錯誤自動檢查與更正位元之三維記憶體結構
US9286204B2 (en) 2011-01-31 2016-03-15 Mitsubishi Electric Corporation Memory controller
WO2012106362A2 (en) 2011-01-31 2012-08-09 Fusion-Io, Inc. Apparatus, system, and method for managing eviction of data
CN102081576B (zh) * 2011-03-01 2012-07-11 华中科技大学 一种闪存的磨损平衡方法
US8732538B2 (en) 2011-03-10 2014-05-20 Icform, Inc. Programmable data storage management
JP2012203443A (ja) 2011-03-23 2012-10-22 Toshiba Corp メモリシステムおよびメモリシステムの制御方法
US8495386B2 (en) 2011-04-05 2013-07-23 Mcafee, Inc. Encryption of memory device with wear leveling
US8762625B2 (en) * 2011-04-14 2014-06-24 Apple Inc. Stochastic block allocation for improved wear leveling
US8862902B2 (en) * 2011-04-29 2014-10-14 Seagate Technology Llc Cascaded data encryption dependent on attributes of physical memory
US8806171B2 (en) * 2011-05-24 2014-08-12 Georgia Tech Research Corporation Systems and methods providing wear leveling using dynamic randomization for non-volatile memory
US20120303878A1 (en) * 2011-05-26 2012-11-29 International Business Machines Corporation Method and Controller for Identifying a Unit in a Solid State Memory Device for Writing Data to
US9514838B2 (en) * 2011-05-31 2016-12-06 Micron Technology, Inc. Apparatus including memory system controllers and related methods for memory management using block tables
KR20120136197A (ko) * 2011-06-08 2012-12-18 삼성전자주식회사 비휘발성 메모리에 대한 웨어 레벨링 방법
CN102841852B (zh) 2011-06-24 2015-06-17 华为技术有限公司 磨损均衡方法、存储装置及信息系统
US8626991B1 (en) * 2011-06-30 2014-01-07 Emc Corporation Multi-LUN SSD optimization system and method
JP5673396B2 (ja) * 2011-07-04 2015-02-18 富士通株式会社 情報処理システム、情報処理プログラム、情報処理方法
CN102955743A (zh) * 2011-08-25 2013-03-06 建兴电子科技股份有限公司 固态储存装置及其损耗平均控制方法
CN102439572B (zh) * 2011-10-27 2014-04-02 华为技术有限公司 控制缓存映射的方法及缓存系统
CN103959258B (zh) * 2011-12-05 2017-03-29 英特尔公司 背景重排序——具有有限开销的预防性的磨损控制机制
US9208070B2 (en) * 2011-12-20 2015-12-08 Sandisk Technologies Inc. Wear leveling of multiple memory devices
US9767032B2 (en) 2012-01-12 2017-09-19 Sandisk Technologies Llc Systems and methods for cache endurance
JP5952036B2 (ja) * 2012-03-13 2016-07-13 株式会社メガチップス 半導体メモリのリユース処理装置、及び半導体メモリ
JP5956791B2 (ja) * 2012-03-13 2016-07-27 株式会社メガチップス 半導体メモリのリユース処理装置、及び半導体メモリ
US11024352B2 (en) 2012-04-10 2021-06-01 Samsung Electronics Co., Ltd. Memory system for access concentration decrease management and access concentration decrease method
US8750045B2 (en) 2012-07-27 2014-06-10 Sandisk Technologies Inc. Experience count dependent program algorithm for flash memory
TWI509615B (zh) * 2012-08-03 2015-11-21 Phison Electronics Corp 資料儲存方法、記憶體控制器與記憶體儲存裝置
KR20140031688A (ko) * 2012-09-05 2014-03-13 삼성전자주식회사 스토리지 시스템을 위한 마모 관리 장치 및 방법
US20140129758A1 (en) * 2012-11-06 2014-05-08 Spansion Llc Wear leveling in flash memory devices with trim commands
US8954694B2 (en) 2012-11-15 2015-02-10 Western Digital Technologies, Inc. Methods, data storage devices and systems for fragmented firmware table rebuild in a solid state drive
US9430339B1 (en) 2012-12-27 2016-08-30 Marvell International Ltd. Method and apparatus for using wear-out blocks in nonvolatile memory
CN103914401B (zh) * 2013-01-06 2017-05-10 北京忆恒创源科技有限公司 具有多处理器的存储设备
CN103914409B (zh) * 2013-01-06 2017-05-10 北京忆恒创源科技有限公司 用于具有多处理器的存储设备的方法
US10445229B1 (en) 2013-01-28 2019-10-15 Radian Memory Systems, Inc. Memory controller with at least one address segment defined for which data is striped across flash memory dies, with a common address offset being used to obtain physical addresses for the data in each of the dies
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
US9465732B2 (en) * 2013-03-15 2016-10-11 Sandisk Technologies Llc Binning of blocks for dynamic linking
US9195590B2 (en) * 2013-08-29 2015-11-24 Micron Technology, Inc. Sub-sector wear leveling in memories
US10019352B2 (en) 2013-10-18 2018-07-10 Sandisk Technologies Llc Systems and methods for adaptive reserve storage
GB201322075D0 (en) 2013-12-13 2014-01-29 Ibm Device for selecting a level for at least one read voltage
KR20150095360A (ko) * 2014-02-13 2015-08-21 에스케이하이닉스 주식회사 저항성 메모리 장치 및 동작 방법
TWI548991B (zh) * 2014-02-14 2016-09-11 群聯電子股份有限公司 記憶體管理方法、記憶體控制電路單元與記憶體儲存裝置
US9230689B2 (en) 2014-03-17 2016-01-05 Sandisk Technologies Inc. Finding read disturbs on non-volatile memories
US10068639B2 (en) 2014-04-29 2018-09-04 International Business Machines Corporation Out-of-place presetting based on indirection table
US9471428B2 (en) 2014-05-06 2016-10-18 International Business Machines Corporation Using spare capacity in solid state drives
US20150339223A1 (en) * 2014-05-22 2015-11-26 Kabushiki Kaisha Toshiba Memory system and method
US9471451B2 (en) 2014-06-18 2016-10-18 International Business Machines Corporation Implementing enhanced wear leveling in 3D flash memories
US10261899B2 (en) * 2014-09-03 2019-04-16 Infineon Technologies Ag Method, device and system for data processing using dedicated mapping between logical and physical addresses
US9542118B1 (en) 2014-09-09 2017-01-10 Radian Memory Systems, Inc. Expositive flash memory control
US9875039B2 (en) 2014-09-30 2018-01-23 Sandisk Technologies Llc Method and apparatus for wear-leveling non-volatile memory
US9563373B2 (en) 2014-10-21 2017-02-07 International Business Machines Corporation Detecting error count deviations for non-volatile memory blocks for advanced non-volatile memory block management
US10365859B2 (en) * 2014-10-21 2019-07-30 International Business Machines Corporation Storage array management employing a merged background management process
US9830087B2 (en) * 2014-11-13 2017-11-28 Micron Technology, Inc. Memory wear leveling
CN107077883B (zh) 2014-11-25 2021-04-27 三星电子株式会社 基于概率信息检测半导体存储器的被最频繁存取的地址的方法
US9990279B2 (en) 2014-12-23 2018-06-05 International Business Machines Corporation Page-level health equalization
US10339048B2 (en) 2014-12-23 2019-07-02 International Business Machines Corporation Endurance enhancement scheme using memory re-evaluation
US10055267B2 (en) * 2015-03-04 2018-08-21 Sandisk Technologies Llc Block management scheme to handle cluster failures in non-volatile memory
US10013177B2 (en) * 2015-04-20 2018-07-03 Hewlett Packard Enterprise Development Lp Low write amplification in solid state drive
US9760437B2 (en) 2015-07-01 2017-09-12 International Business Machines Corporation Error correction based on thermal profile of flash memory device
KR102513491B1 (ko) * 2015-07-15 2023-03-27 에스케이하이닉스 주식회사 메모리 시스템 및 메모리 시스템의 동작 방법
US9942324B2 (en) * 2015-08-05 2018-04-10 Futurewei Technologies, Inc. Rebalancing and elastic storage scheme with elastic named distributed circular buffers
WO2017058184A1 (en) * 2015-09-30 2017-04-06 Hewlett Packard Enterprise Development Lp Remapping operations
US9971685B2 (en) * 2016-04-01 2018-05-15 Intel Corporation Wear leveling based on a swapping operation between sets of physical block addresses of a non-volatile memory
US10031845B2 (en) * 2016-04-01 2018-07-24 Intel Corporation Method and apparatus for processing sequential writes to a block group of physical blocks in a memory device
US9842059B2 (en) * 2016-04-14 2017-12-12 Western Digital Technologies, Inc. Wear leveling in storage devices
US10121555B2 (en) * 2016-05-26 2018-11-06 Advanced Micro Devices, Inc. Wear-limiting non-volatile memory
US10248571B2 (en) * 2016-08-11 2019-04-02 Hewlett Packard Enterprise Development Lp Saving position of a wear level rotation
US11556462B2 (en) * 2016-08-24 2023-01-17 Futurewei Technologies, Inc. Wear-leveling method for cross-point memory for multiple data temperature zones
US10261876B2 (en) * 2016-11-08 2019-04-16 Micron Technology, Inc. Memory management
US10430085B2 (en) 2016-11-08 2019-10-01 Micron Technology, Inc. Memory operations on data
US10248333B1 (en) * 2017-02-07 2019-04-02 Crossbar, Inc. Write distribution techniques for two-terminal memory wear leveling
US10409714B1 (en) 2017-02-09 2019-09-10 Crossbar, Inc. Logical to physical translation for two-terminal memory
US10019332B1 (en) * 2017-03-10 2018-07-10 Western Digital Technologies, Inc. Non-volatile memory with program failure recovery
US10198195B1 (en) * 2017-08-04 2019-02-05 Micron Technology, Inc. Wear leveling
US10459662B1 (en) 2017-09-27 2019-10-29 Amazon Technologies, Inc. Write failure handling for a memory controller to non-volatile memory
US10642727B1 (en) 2017-09-27 2020-05-05 Amazon Technologies, Inc. Managing migration events performed by a memory controller
US20190129627A1 (en) * 2017-10-31 2019-05-02 EMC IP Holding Company LLC Method and system for wear-leveling using a multi-gap progress field
US10606743B2 (en) * 2017-12-05 2020-03-31 Micron Technology, Inc. Data movement operations in non-volatile memory
US11048644B1 (en) 2017-12-11 2021-06-29 Amazon Technologies, Inc. Memory mapping in an access device for non-volatile memory
CN107918530A (zh) * 2018-01-12 2018-04-17 江苏华存电子科技有限公司 一种非易失性存储器的磨损均衡方法和装置
US10635327B2 (en) * 2018-01-31 2020-04-28 Western Digital Technologies, Inc. Data availability during memory inaccessibility
US10585795B2 (en) * 2018-05-31 2020-03-10 Micron Technology, Inc. Data relocation in memory having two portions of data
CN108920386B (zh) * 2018-07-20 2020-06-26 中兴通讯股份有限公司 面向非易失性内存的磨损均衡及访问方法、设备和存储介质
US10761739B2 (en) * 2018-08-23 2020-09-01 Micron Technology, Inc. Multi-level wear leveling for non-volatile memory
US11537307B2 (en) * 2018-08-23 2022-12-27 Micron Technology, Inc. Hybrid wear leveling for in-place data replacement media
KR102545189B1 (ko) 2018-09-07 2023-06-19 삼성전자주식회사 스토리지 장치, 스토리지 시스템 및 스토리지 장치의 동작 방법
US10902929B1 (en) * 2019-08-29 2021-01-26 Micron Technology, Inc. Zone swapping for wear leveling memory
WO2021113420A1 (en) * 2019-12-03 2021-06-10 Burlywood, Inc. Adaptive wear leveling using multiple partitions
CN111639041B (zh) * 2020-05-29 2022-04-08 深圳宏芯宇电子股份有限公司 存储器控制方法、存储器存储装置及存储器控制器
US11429543B2 (en) * 2020-10-22 2022-08-30 Micron Technology, Inc. Managed NAND flash memory region control against endurance hacking
CN112558878B (zh) * 2020-12-16 2023-07-04 北京华弘集成电路设计有限责任公司 一种基于不同类型存储机制的空间调换方法
US11842062B2 (en) 2022-02-09 2023-12-12 Western Digital Technologies, Inc. Method of handling irregular MetaBlock wear leveling and UGSD boot time improvement

Family Cites Families (119)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4093985A (en) * 1976-11-05 1978-06-06 North Electric Company Memory sparing arrangement
DE2840305C3 (de) 1978-09-15 1981-03-26 Siemens AG, 1000 Berlin und 8000 München Verfahren zum Programmieren von wiederholt beschreibbaren Festwertspeichern
JPS5580164A (en) * 1978-12-13 1980-06-17 Fujitsu Ltd Main memory constitution control system
JPS5764383A (en) * 1980-10-03 1982-04-19 Toshiba Corp Address converting method and its device
DE3123444A1 (de) * 1981-06-12 1983-01-05 Siemens AG, 1000 Berlin und 8000 München Verfahren und anordnung zum nichtfluechtigen speichern des zaehlerstandes einer elektronischen zaehlschaltung
DE3123654A1 (de) * 1981-06-15 1983-01-20 Vdo Adolf Schindling Ag, 6000 Frankfurt Schaltungsanordnung zur speicherung eines mehrstelligen dekadischen zaehlwerts einer von einem fahrzeug zurueckgelegten wegstrecke
US4430727A (en) * 1981-11-10 1984-02-07 International Business Machines Corp. Storage element reconfiguration
DE3200872A1 (de) 1982-01-14 1983-07-21 Sartorius GmbH, 3400 Göttingen Elektronische waage
US4530054A (en) * 1982-03-03 1985-07-16 Sperry Corporation Processor-addressable timestamp for indicating oldest written-to cache entry not copied back to bulk memory
JPS58189890A (ja) * 1982-04-30 1983-11-05 Hitachi Ltd 階層記憶装置
JPS58215795A (ja) 1982-06-08 1983-12-15 Toshiba Corp 不揮発性メモリ装置
JPS58215794A (ja) 1982-06-08 1983-12-15 Toshiba Corp 不揮発性メモリ装置
NL8202365A (nl) * 1982-06-11 1984-01-02 Philips Nv Serie-parallel-serie schuifregistergeheugen, hetwelk redundante parallelgeschakelde opslagregisters bevat, en afbeeldtoestel, voorzien van een zodanig georganiseerd beeldgeheugen.
JPS5945695A (ja) 1982-09-07 1984-03-14 Fujitsu Ltd Icメモリ
JPS59162695A (ja) 1983-03-07 1984-09-13 Nec Corp 記憶装置
JPS6049218A (ja) * 1983-08-30 1985-03-18 Nippon Denso Co Ltd 車両用走行距離計
US4612640A (en) * 1984-02-21 1986-09-16 Seeq Technology, Inc. Error checking and correction circuitry for use with an electrically-programmable and electrically-erasable memory array
JPS60179857A (ja) 1984-02-28 1985-09-13 Fujitsu Ltd キヤツシユ装置の制御方式
GB2171543B (en) * 1985-02-27 1988-04-20 Hughes Microelectronics Ltd Counting circuit which provides for extended counter life
US4718041A (en) * 1986-01-09 1988-01-05 Texas Instruments Incorporated EEPROM memory having extended life
US4953073A (en) * 1986-02-06 1990-08-28 Mips Computer Systems, Inc. Cup chip having tag comparator and address translation unit on chip and connected to off-chip cache and main memories
JPH07109717B2 (ja) 1986-05-31 1995-11-22 キヤノン株式会社 メモリ書き込み制御方法
JP2685173B2 (ja) 1986-05-31 1997-12-03 キヤノン株式会社 メモリ書き込み制御方法
JPS63183700A (ja) 1987-01-26 1988-07-29 Mitsubishi Electric Corp Eepromアクセス方法
US4899272A (en) * 1987-10-23 1990-02-06 Chips & Technologies, Inc. Addressing multiple types of memory devices
US4924375A (en) 1987-10-23 1990-05-08 Chips And Technologies, Inc. Page interleaved memory access
JPH0778997B2 (ja) * 1987-10-30 1995-08-23 株式会社東芝 不揮発性半導体メモリ
US4803707A (en) * 1987-12-21 1989-02-07 Ncr Corporation Nonvolatile electronic odometer with excess write cycle protection
JPH0793823B2 (ja) * 1988-02-01 1995-10-09 株式会社日立製作所 電圧形インバータのpwm制御装置
US5053990A (en) * 1988-02-17 1991-10-01 Intel Corporation Program/erase selection for flash memory
JPH01235075A (ja) 1988-03-14 1989-09-20 Fuji Xerox Co Ltd ディスクメモリ制御装置
US4922456A (en) * 1988-04-29 1990-05-01 Scientific-Atlanta, Inc. Method of reducing wearout in a non-volatile memory with double buffer
US5043940A (en) * 1988-06-08 1991-08-27 Eliyahou Harari Flash EEPROM memory systems having multistate storage cells
US5168465A (en) * 1988-06-08 1992-12-01 Eliyahou Harari Highly compact EPROM and flash EEPROM devices
US5095344A (en) 1988-06-08 1992-03-10 Eliyahou Harari Highly compact eprom and flash eeprom devices
US5268870A (en) * 1988-06-08 1993-12-07 Eliyahou Harari Flash EEPROM system and intelligent programming and erasing methods therefor
JP2685825B2 (ja) * 1988-08-12 1997-12-03 株式会社東芝 不揮発性半導体メモリ
JPH0283892A (ja) * 1988-09-20 1990-03-23 Fujitsu Ltd 半導体記憶装置
US5193071A (en) * 1988-12-22 1993-03-09 Digital Equipment Corporation Memory apparatus for multiple processor systems
JPH02189790A (ja) 1989-01-18 1990-07-25 Mitsubishi Electric Corp ダイナミック形半導体記憶装置
US4947410A (en) * 1989-02-23 1990-08-07 General Motors Corporation Method and apparatus for counting with a nonvolatile memory
DE69033438T2 (de) * 1989-04-13 2000-07-06 Sandisk Corp., Santa Clara Austausch von fehlerhaften Speicherzellen einer EEprommatritze
US5163021A (en) * 1989-04-13 1992-11-10 Sundisk Corporation Multi-state EEprom read and write circuits and techniques
US5172338B1 (en) * 1989-04-13 1997-07-08 Sandisk Corp Multi-state eeprom read and write circuits and techniques
WO1994027382A1 (en) 1993-05-11 1994-11-24 Norand Corporation Premises, peripheral and vehicular local area networking
JPH0373496A (ja) 1989-05-16 1991-03-28 Seiko Epson Corp Eeprom書込装置
JPH0692898B2 (ja) * 1989-05-31 1994-11-16 日本精機株式会社 電子式オドメータ
FR2647941B1 (fr) * 1989-06-06 1991-08-30 Gemplus Card Int Procede d'effacement de points memoire, dispositif destine a sa mise en oeuvre, et son utilisation dans un dispositif a memoire non alimente
JPH0325798A (ja) 1989-06-23 1991-02-04 Ricoh Co Ltd Eepromを使用した記憶装置
JPH0330034A (ja) 1989-06-28 1991-02-08 Hitachi Ltd 光デイスクフアイル管理方法
JPH0748320B2 (ja) * 1989-07-24 1995-05-24 セイコー電子工業株式会社 半導体不揮発性メモリ
US5065364A (en) * 1989-09-15 1991-11-12 Intel Corporation Apparatus for providing block erasing in a flash EPROM
US5200959A (en) 1989-10-17 1993-04-06 Sundisk Corporation Device and method for defect handling in semi-conductor memory
US5134589A (en) * 1989-10-30 1992-07-28 Mitsubishi Denki Kabushiki Kaisha Semiconductor memory device having a flash write function
JPH03283094A (ja) 1990-03-29 1991-12-13 Nec Corp 半導体メモリ
JPH0498342A (ja) * 1990-08-09 1992-03-31 Mitsubishi Electric Corp 半導体記憶装置
JPH04123243A (ja) 1990-09-14 1992-04-23 Toshiba Corp データ書込装置
US5303198A (en) * 1990-09-28 1994-04-12 Fuji Photo Film Co., Ltd. Method of recording data in memory card having EEPROM and memory card system using the same
US5222193A (en) * 1990-12-26 1993-06-22 Intel Corporation Training system for neural networks and the like
US5222109A (en) 1990-12-28 1993-06-22 Ibm Corporation Endurance management for solid state files
GB2251324B (en) 1990-12-31 1995-05-10 Intel Corp File structure for a non-volatile semiconductor memory
GB2251323B (en) 1990-12-31 1994-10-12 Intel Corp Disk emulation for a non-volatile semiconductor memory
JP3137993B2 (ja) 1991-01-16 2001-02-26 富士通株式会社 不揮発性半導体記憶装置
US5272669A (en) * 1991-02-20 1993-12-21 Sundisk Corporation Method and structure for programming floating gate memory cells
US5295255A (en) * 1991-02-22 1994-03-15 Electronic Professional Services, Inc. Method and apparatus for programming a solid state processor with overleaved array memory modules
US5270979A (en) * 1991-03-15 1993-12-14 Sundisk Corporation Method for optimum erasing of EEPROM
US5663901A (en) * 1991-04-11 1997-09-02 Sandisk Corporation Computer memory cards using flash EEPROM integrated circuit chips and memory-controller systems
FR2675287B1 (fr) 1991-04-15 1993-06-18 Bull Sa Circuit coupleur et son utilisation dans une carte et procede.
DE4215063C2 (de) 1991-05-10 1999-11-25 Intel Corp Einrichtung und Verfahren zum Seitenwechsel bei einem nicht-flüchtigen Speicher
JP2582487B2 (ja) 1991-07-12 1997-02-19 インターナショナル・ビジネス・マシーンズ・コーポレイション 半導体メモリを用いた外部記憶システム及びその制御方法
JP2549034B2 (ja) 1991-07-22 1996-10-30 株式会社メルコ 記憶装置
US5430859A (en) * 1991-07-26 1995-07-04 Sundisk Corporation Solid state memory system including plural memory chips and a serialized bus
US5245572A (en) * 1991-07-30 1993-09-14 Intel Corporation Floating gate nonvolatile memory with reading while writing capability
US6230233B1 (en) * 1991-09-13 2001-05-08 Sandisk Corporation Wear leveling techniques for flash EEPROM systems
US5263003A (en) * 1991-11-12 1993-11-16 Allen-Bradley Company, Inc. Flash memory circuit and method of operation
JP3231832B2 (ja) 1991-11-26 2001-11-26 株式会社日立製作所 フラッシュメモリを記憶媒体とした半導体ディスク
JPH05151097A (ja) 1991-11-28 1993-06-18 Fujitsu Ltd 書換回数制限型メモリのデータ管理方式
JP3122201B2 (ja) 1991-11-30 2001-01-09 株式会社東芝 メモリカード装置
JPH05176564A (ja) * 1991-12-26 1993-07-13 Aisin Seiki Co Ltd 放射圧を利用したアクチュエータ
US5267218A (en) * 1992-03-31 1993-11-30 Intel Corporation Nonvolatile memory card with a single power supply input
US5341489A (en) * 1992-04-14 1994-08-23 Eastman Kodak Company Memory card with programmable interleaving
KR0121800B1 (ko) 1992-05-08 1997-11-22 사또오 후미오 메모리 카드장치
US5280447A (en) * 1992-06-19 1994-01-18 Intel Corporation Floating gate nonvolatile memory with configurable erasure blocks
JP3105092B2 (ja) * 1992-10-06 2000-10-30 株式会社東芝 半導体メモリ装置
JP3177015B2 (ja) * 1992-10-14 2001-06-18 株式会社東芝 半導体メモリ装置の制御方法
EP0680634B1 (en) * 1993-01-21 1997-05-14 Apple Computer, Inc. Apparatus and method for backing up data from networked computer storage devices
US5388083A (en) * 1993-03-26 1995-02-07 Cirrus Logic, Inc. Flash memory mass storage architecture
DE69321245T2 (de) * 1993-12-29 1999-04-29 Stmicroelectronics S.R.L., Agrate Brianza, Mailand/Milano Integrierte Programmierschaltung für eine elektrisch programmierbare Halbleiterspeicheranordnung mit Redundanz
US5726937A (en) * 1994-01-31 1998-03-10 Norand Corporation Flash memory system having memory cache
JP3507132B2 (ja) * 1994-06-29 2004-03-15 株式会社日立製作所 フラッシュメモリを用いた記憶装置およびその記憶制御方法
JP3219699B2 (ja) * 1996-09-17 2001-10-15 三洋電機株式会社 半導体メモリ装置
GB2317721B (en) * 1996-09-30 2001-09-12 Nokia Mobile Phones Ltd Memory device
JP3130258B2 (ja) * 1996-10-25 2001-01-31 インターナショナル・ビジネス・マシーンズ・コーポレ−ション ディスク装置及びデータ・リアサイン方法
US5890192A (en) * 1996-11-05 1999-03-30 Sandisk Corporation Concurrent write of multiple chunks of data into multiple subarrays of flash EEPROM
US6034897A (en) * 1999-04-01 2000-03-07 Lexar Media, Inc. Space management for managing high capacity nonvolatile memory
DE19718479C1 (de) * 1997-04-30 1998-09-24 Siemens Ag Chipkarte mit Speicherzugriffsmaximierung und Protokollierung
US5930167A (en) * 1997-07-30 1999-07-27 Sandisk Corporation Multi-state non-volatile flash memory capable of being its own two state write cache
JP4079506B2 (ja) * 1997-08-08 2008-04-23 株式会社東芝 不揮発性半導体メモリシステムの制御方法
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
US6085102A (en) * 1997-08-29 2000-07-04 Motorola, Inc. Method and apparatus for providing coverage in a selective messaging system
JP3544859B2 (ja) * 1998-05-11 2004-07-21 富士通株式会社 不揮発性半導体メモリを使用した2次記憶装置
FR2787601A1 (fr) * 1998-12-22 2000-06-23 Gemplus Card Int Systeme de memorisation comprenant des moyens de gestion d'une memoire avec anti-usure et procede de gestion anti-usure d'une memoire
JP2000285688A (ja) * 1999-04-01 2000-10-13 Mitsubishi Electric Corp 不揮発性半導体記憶装置
JP2001067258A (ja) * 1999-08-25 2001-03-16 Mitsubishi Electric Corp フラッシュメモリ内蔵半導体装置及びフラッシュメモリアドレス変換方法
US6141251A (en) * 2000-01-28 2000-10-31 Silicon Storage Technology, Inc. Non-volatile memory array having an index used in programming and erasing
US6535851B1 (en) * 2000-03-24 2003-03-18 Speechworks, International, Inc. Segmentation approach for speech recognition systems
KR100644602B1 (ko) * 2000-10-11 2006-11-10 삼성전자주식회사 플래시메모리를 위한 재사상 제어방법 및 그에 따른플래시 메모리의 구조
US6763424B2 (en) * 2001-01-19 2004-07-13 Sandisk Corporation Partial block data programming and reading operations in a non-volatile memory
US6676281B2 (en) * 2001-05-23 2004-01-13 Sea Gull Lighting Products, Inc. Rail lighting system
US6675281B1 (en) * 2002-01-22 2004-01-06 Icreate Technologies Corporation Distributed mapping scheme for mass storage system
US6985992B1 (en) * 2002-10-28 2006-01-10 Sandisk Corporation Wear-leveling in non-volatile storage systems
US7103732B1 (en) * 2002-10-28 2006-09-05 Sandisk Corporation Method and apparatus for managing an erase count block
US7039788B1 (en) * 2002-10-28 2006-05-02 Sandisk Corporation Method and apparatus for splitting a logical block
US6973531B1 (en) * 2002-10-28 2005-12-06 Sandisk Corporation Tracking the most frequently erased blocks in non-volatile memory systems
US7096313B1 (en) * 2002-10-28 2006-08-22 Sandisk Corporation Tracking the least frequently erased blocks in non-volatile memory systems
US6831865B2 (en) * 2002-10-28 2004-12-14 Sandisk Corporation Maintaining erase counts in non-volatile storage systems
US7035967B2 (en) * 2002-10-28 2006-04-25 Sandisk Corporation Maintaining an average erase count in a non-volatile storage system
US7254668B1 (en) * 2002-10-28 2007-08-07 Sandisk Corporation Method and apparatus for grouping pages within a block
US7234036B1 (en) * 2002-10-28 2007-06-19 Sandisk Corporation Method and apparatus for resolving physical blocks associated with a common logical block

Also Published As

Publication number Publication date
DE60316171T2 (de) 2008-05-29
US20070083698A1 (en) 2007-04-12
EP1556868B1 (en) 2007-09-05
KR20050083850A (ko) 2005-08-26
KR101174308B1 (ko) 2012-08-16
CN100483552C (zh) 2009-04-29
US7552272B2 (en) 2009-06-23
AU2003282544A1 (en) 2004-05-25
KR20110093916A (ko) 2011-08-18
US20040083335A1 (en) 2004-04-29
JP2006504201A (ja) 2006-02-02
DE60316171D1 (de) 2007-10-18
EP1556868A1 (en) 2005-07-27
ATE372578T1 (de) 2007-09-15
KR101122511B1 (ko) 2012-03-15
US7120729B2 (en) 2006-10-10
CN1720590A (zh) 2006-01-11
WO2004040586A1 (en) 2004-05-13

Similar Documents

Publication Publication Date Title
JP4518951B2 (ja) 不揮発性記憶システムにおける自動損耗均等化
US6985992B1 (en) Wear-leveling in non-volatile storage systems
EP1559113B1 (en) Tracking the most frequently erased blocks in non-volatile storage systems
US7096313B1 (en) Tracking the least frequently erased blocks in non-volatile memory systems
EP1559016B1 (en) Maintaining erase counts in non-volatile storage systems
US8200904B2 (en) System and method for clearing data from a cache
US7287118B2 (en) Maintaining an average erase count in a non-volatile storage system
US7103732B1 (en) Method and apparatus for managing an erase count block
EP1713085A1 (en) Automated wear leveling in non-volatile storage systems

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20060925

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20091127

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100105

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100330

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

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

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

Free format text: PAYMENT UNTIL: 20130528

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

Ref document number: 4518951

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20130528

Year of fee payment: 3

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

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

Free format text: PAYMENT UNTIL: 20130528

Year of fee payment: 3

R360 Written notification for declining of transfer of rights

Free format text: JAPANESE INTERMEDIATE CODE: R360

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

Free format text: PAYMENT UNTIL: 20130528

Year of fee payment: 3

R370 Written measure of declining of transfer procedure

Free format text: JAPANESE INTERMEDIATE CODE: R370

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

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

Free format text: PAYMENT UNTIL: 20130528

Year of fee payment: 3

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

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

Free format text: PAYMENT UNTIL: 20130528

Year of fee payment: 3

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R360 Written notification for declining of transfer of rights

Free format text: JAPANESE INTERMEDIATE CODE: R360

R360 Written notification for declining of transfer of rights

Free format text: JAPANESE INTERMEDIATE CODE: R360

R371 Transfer withdrawn

Free format text: JAPANESE INTERMEDIATE CODE: R371

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

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