(57)【特許請求の範囲】
【請求項１】
間にアドレス境界を持って複数のゾーンに組織された連続的な物理的アドレスを有する消去可能で再プログラム可能な不揮発性メモリセルの複数の単位を含み、論理的アドレスの別個の範囲が前記ゾーンの各々にマッピングされるようになっているメモリシステムにおける操作の方法であって、
前記ゾーンの各々から少なくとも１つの単位を削除して、前記個々のゾーンにおける単位の数を変えずに前記少なくとも１つの単位を隣接しているゾーンに付け加えるように境界アドレスを割り当てなおすステップと、
その後、データの論理的アドレスに従って前記ゾーン内の前記割り当てなおされたメモリセル単位にデータをプログラムし、またはそれらメモリセル単位からデータを読み出すために前記ゾーンにアクセスするステップと、
少なくとも前記メモリセル単位が全てそれらゾーンから隣接するゾーンへ動かされるまで前記境界アドレスを繰り返し割り当てなおして前記ゾーンにアクセスし、それにより前記論理的アドレスを通してアクセスされた単位の使用が分散されるステップと、
を含む方法。
【請求項２】
請求項１記載の方法において、
前記境界アドレスを割り当てなおすステップは、前記ゾーンの各々から前記ゾーン内の単位の１０％未満の数の単位を削除し、前記数の単位を隣接するゾーンに付け加えるステップを含む方法。
【請求項３】
請求項１記載の方法において、
前記ゾーンは前記ゾーンのメモリセル単位の部分を個々の複数のメモリプレーンに有して形成され、前記境界アドレスを割り当てなおすステップは、前記メモリプレーンの各々の中の前記ゾーンの各々の部分から少なくとも１つの単位を削除し、前記少なくとも１つの単位を同じプレーン内の他のゾーンの隣接する部分に付け加えるステップを含む方法。
【請求項４】
請求項１記載の方法において、
前記メモリセル単位は、複数の同時に消去可能なメモリセルを個々に含む方法。
【請求項５】
請求項４記載の方法において、
前記メモリセル単位は、データで個々にプログラム可能な複数のページを個々に含む方法。
【請求項６】
請求項１記載の方法において、
前記境界アドレスを割り当てなおすステップは、前記少なくとも１つの単位に記憶されている任意のデータを前記ゾーンの各々から前記隣接するゾーンの付け加えられた単位内へコピーするステップを含む方法。
【請求項７】
同時に消去可能な最小数のメモリセルの単位に物理的に組織された消去可能で再プログラム可能な不揮発性メモリセルのシステムを操作する方法であって、
論理的メモリアドレスの３つ以上の重なり合わない範囲のうちの１つの中のデータをプログラムし、または読み出すホストアクセス要求をメモリセル消去単位の対応する数の論理的グループのうちの一意的な１つに向けるステップと、
前記論理的グループからのアクセス要求を複数の消去単位の別個の物理的グループにマッピングするステップと、
ホストアクセス要求により引き起こされたデータプログラミングまたは読み出しの操作と操作の間に、一度に少なくとも１つの消去単位を含む個々の物理的グループの一部を除去し、かつ個々の物理的グループの中の消去単位の均一な個数を維持するように前記除去された消去単位を前記物理的グループのうちの隣接する物理的グループに付け加えることによって前記論理的グループを前記物理的グループに繰り返しマッピングしなおし、これにより時間がたつうちに前記システムでの前記消去単位の使用が均等化されるステップと、
を含む方法。
【請求項８】
複数のプレーン内で最小数の同時に消去可能なメモリセルの複数のブロックに組織されたフラッシュメモリセルのアレイを操作する方法であって、
複数のプレーンの各々からの複数のブロックの一部を個々に含む複数のゾーンを画定するステップと、
論理的アドレスの１つの範囲の異なる部分を前記ゾーンの各々にマッピングするステップと、
各プレーンにおいて前記ゾーンから少なくとも１つのブロックを除去し、かつ前記複数のプレーンの各々において指定された複数のブロックを有する前記複数のゾーンを維持するようにその除去されたブロックをそれら同じプレーン内の前記ゾーンのうちの他のゾーンに付け加えることによって個々のゾーンを繰り返し画定しなおし、これにより論理的アドレスのいろいろな範囲に存するブロックの使用が時間がたつうちに前記アレイに分散されるステップと、
を含む方法。
【請求項９】
一緒に消去可能で再プログラム可能な不揮発性メモリセルの複数の単位を個々に含む複数のゾーンを含むメモリシステムが受け取った１つの別個の範囲の論理的アドレスを前記個々のゾーンにマッピングするようになっている前記メモリシステムにおける操作の方法であって、
前記複数のゾーンのうちの第１のゾーンに記憶されているデータを前記複数のゾーンのうちの第２のゾーンに記憶されているデータと交換するステップと、
その後、前記第１および第２のゾーンのうちの一方の中の前記メモリシステムにアクセスするアドレスを前記第１および第２のゾーンのうちの他方にアクセスするアドレスに変換するステップと、
を含む方法。
【請求項１０】
請求項９記載の方法において、
前記データを交換するステップは、
前記第２のゾーンの物理的アドレスの境界に隣接する物理的アドレスを有する前記第２のゾーン内の第１の消去単位から、消去される前記第２のゾーン内の第２の消去単位へデータを動かすステップと、
前記第１のゾーンの物理的アドレスの境界に隣接する物理的アドレスを有する前記第１のゾーンの消去単位から前記第１の単位へデータを動かすステップと、
を含む方法。
【発明の詳細な説明】
【背景技術】
【０００１】
本発明は、大容量デジタルデータ記憶システムに関し、特に、不揮発性記憶システムの記憶領域に関連する損耗をその記憶領域全体に散布することを自動的に可能にするシステムおよび方法に関する。
【０００２】
フラッシュメモリ記憶システムなどの不揮発性記憶システムの使用は、このようなメモリシステムの物理的サイズがコンパクトであり、不揮発性メモリが繰り返し再プログラムされ得るので、増大しつつある。フラッシュメモリ記憶システムは、物理的サイズがコンパクトであるため、ますます広くいきわたりつつある装置で容易に使用される。フラッシュメモリ記憶システムを使用する装置には、デジタルカメラ、デジタルカムコーダ、デジタルミュージックプレイヤー、ハンドヘルド形パーソナルコンピュータおよび全地球測位装置を含むが、これらに限定されるものではない。フラッシュメモリ記憶システムに含まれる不揮発性メモリは繰り返し再プログラム可能であるので、フラッシュメモリ記憶システムは使用され、かつ再使用され得る。
【０００３】
フラッシュメモリシステム内の不揮発性メモリ、或いは特に不揮発性メモリ記憶セルは、繰り返しプログラムされ、消去され得るけれども、各セル或いは物理的記憶位置は、当該セルが損耗するまでにある回数しか消去され得ない。あるシステムでは、セルが使用不能であると見なされるまでに約１万回消去され得る。他のシステムでは、セルが損耗したと見なされるまでに、セルは約１０万回或いは百万回も消去され得る。セルが損耗し、従って使用不能になったり、或いはフラッシュメモリシステムの全記憶容量の一部に顕著な性能低下が生じたりすると、例えば記憶されたデータが失われたり、或いはデータを記憶させることができなくなるなどの悪影響がフラッシュメモリシステムのユーザに及ぶ可能性がある。
【０００４】
フラッシュメモリシステム内のセルまたは物理的記憶位置の損耗は、当該セルの各々が何回プログラミングされたかにより、まちまちである。セルが、或いはより一般的にはメモリ素子が、一度プログラムされてから実際上再プログラムされなければ、そのセルに関連する損耗は一般に割合に少ない。しかし、セルが繰り返し書き込まれ消去されれば、そのセルに関連する損耗は一般に割合に多い。フラッシュメモリシステムに記憶されているデータにアクセスするために、例えばフラッシュメモリシステムにアクセスするか、或いは使用するシステムなどのホストによって論理的ブロックアドレス（ＬＢＡ）が使用されるので、ホストがデータを書き込み、かつデータを上書きするために同じＬＢＡを繰り返し使用すれば、当業者には理解され得るように、フラッシュメモリシステム内の同じ物理的記憶位置或いはセルが繰り返し書き込まれ、かつ消去されることになる。
【０００５】
一部のセルが実際上損耗し、他のセルが比較的に損耗していないとき、損耗したセルの存在は一般的にフラッシュメモリシステムの性能を低下させる。損耗したセル自体に関連する性能が低下することに加えて、所望のデータを記憶するために充分な数の損耗していないセルを使えないときにはフラッシュメモリシステムの全体としての性能に悪影響が及ぶ。フラッシュメモリシステム内に臨界数の損耗したセルが存在するときには、当該フラッシュメモリシステム内の他の多くのセルが比較的に損耗していなくても、そのフラッシュメモリシステムが使用不能であると見なされることがよくある。
【０００６】
フラッシュメモリシステム内のセルがある程度均一に損耗する可能性を高めるために、損耗均等化操作がよく実行される。損耗均等化操作は、一般に特定のＬＢＡと結び付けられたセルが、同じＬＢＡが常に同じセルと結び付けられないように変更され得るように整えられる。ＬＢＡのセルの結びつきを変更することにより、他のセルが損耗するより遥か前に特定のセルが損耗する可能性は小さくなる。
【０００７】
１つの従来の損耗均等化プロセスは、カスタマーまたはホストＬＢＡの２つの割合に大きな部分がマッピングされる物理的記憶位置をスワッピングすることを含む。すなわち、記憶セルの割合に大きな部分と結び付けられたＬＢＡがスワッピングされる。このようなスワッピングは、例えばホストの使用を通してカスタマーからの手動コマンドを通して開始されるので、その結果としてカスタマーにとっては不透明である。また、記憶セルの２つの割合に大きな部分の間でデータを移動させることを含むスワッピング操作は時間を消費するので、効率が悪い。さらに、フラッシュメモリシステム全体に関連する、例えば時間および処理パワーなどの重要な資源を消費する割合に長時間に及ぶスワッピング操作はフラッシュメモリシステム全体の性能に悪影響を及ぼす。第１の記憶位置からのデータの移動は、通常そのデータを他の記憶位置にコピーし、そのデータを当該第１の記憶位置から消去する動作を含む。
【０００８】
単にセルの損耗を許容することによって損耗均等化を避けることが可能である。セルが実際上損耗したならば、そのセルに割り当てられているセクタを、当該セクタに関連付けられているアドレスを予備領域へマッピングすることによって割り当てなおすことができる。予備領域またはセルの数は限られていて貴重であるので、使用不能のセルと関連付けられているセクタをマッピングすることのできる予備領域が常にあるとは限らない。さらに、セルが使用不能になった後で始めてセクタを実際にマッピングしなおすのは、一般にフラッシュメモリシステム全体の性能の低下を許容することになる。
【０００９】
従って、望ましいのは、フラッシュメモリ記憶システム内で損耗均等化を効率よく、かつ透明に実行する方法および装置である。従って、必要なのは、フラッシュメモリ記憶システムの性能に悪影響を及ぼさずに、フラッシュメモリ記憶システムに関連する物理的記憶位置での均等な損耗を助長する自動損耗均等化プロセスである。
【特許文献１】米国特許第５，８９０，１９２号
【特許文献２】米国特許第５，４３０，８５９号
【発明の開示】
【００１０】
本発明は、不揮発性記憶システムで自動損耗均等化を実行するシステムおよび方法に関する。本発明の一つの態様によれば、コンテンツを含む第１のメモリ素子を有する第１のゾーンと、第２のゾーンとを含む記憶システムで自動損耗均等化を実行する方法は、第１のメモリ素子を特定し、第１のメモリ素子のコンテンツを第１のゾーンから分離するのと同時に第１のメモリ素子のコンテンツを第２のゾーンと関連付けるステップを含む。一実施形態において、第１のメモリ素子のコンテンツを第２のメモリ素子と関連付けるステップは、第２のメモリ素子のコンテンツを第３のメモリ素子にコピーしてから第１のメモリ素子のコンテンツを第２のメモリ素子へ移動させるステップを含む。
【００１１】
一実施形態において、損耗均等化プロセス中に漸進的な自動損耗均等化プロセスを用いて割合に少量のデータを、例えば物理的ブロックなどの異なるメモリ素子に移動させることによって、頻繁に書き込まれ、かつ消去される論理的ブロックアドレスと関連付けられているメモリ素子を、頻繁に書き込まれ、かつ消去される論理的ブロックアドレスと関連付けられる前に頻繁に書き込まれ、かつ消去されていなかったメモリ素子と置き換えることができるので、記憶装置内のメモリ素子のより均一な損耗を達成することができる。同様に、稀に書き込まれ、かつ消去される論理的ブロックアドレスに関連付けられているメモリ素子を、もっと頻繁に書き込まれ、かつ消去される論理的ブロックアドレスと関連付けられていたメモリ素子と置き換えることができ、これによってもメモリ素子の損耗をより均一にすることができる。割合に少量のデータが異なるメモリ素子へ移されるときには、損耗均等化を実行することに関連する性能上のペナルティーは顕著に低減され得る。
【００１２】
本発明の他の態様によれば、メモリシステムにおいて自動損耗均等化を実行する方法は、第１のメモリ素子と第２のメモリ素子とを含む直接アドレス指定方式を含み、第１のメモリ素子に含まれる情報の第１のセットを第２のメモリ素子に提供し、第２のメモリ素子に含まれる情報の第２のセットを第１のメモリ素子に提供するステップを含む。例えば、メモリシステムにアクセスするホストシステムから情報の第１のセットへのアクセスが望まれたときには第２のメモリ素子がアクセスされてもよく、情報の第２のセットへのアクセスが望まれたときには第１のメモリ素子がアクセスされてもよい。一実施形態において、メモリシステムに関連するマッピング情報は、情報の第１のセットが第２のメモリ素子に含まれていることを示し、かつ情報の第２のセットが第１のメモリ素子に含まれていることを示すように更新される。
【００１３】
本発明のさらに他の態様によれば、ゾーン移行方式において、情報を記憶するメモリシステムは、第１のメモリ素子を有する第１のゾーンと第２のメモリ素子を有する第２のゾーンとを含む。第１のメモリ素子は、例えばデータ情報などのコンテンツを含むように構成される。メモリシステムの損耗均等化プロセッサは、第１のメモリ素子を特定し、第１のメモリ素子のコンテンツを第２のメモリ素子と関連付けるように構成される。一実施形態において、第２のゾーンは第３のメモリ素子を含み、当該損耗均等化プロセッサは、第２のメモリ素子のコンテンツを第３のメモリ素子にコピーし、第２のメモリ素子を消去し、第１のメモリ素子のコンテンツを第２のメモリ素子にコピーする。このような実施形態では、メモリシステムは、第２のメモリ素子が当該第１のゾーンと関連付けられたことを示し、かつ第１のメモリ素子が第１のゾーンから分離されたことを示すように損耗均等化プロセッサによって更新されるマッピング情報を含むことができる。
【００１４】
本発明のさらに他の態様によれば、メモリシステムにおいて自動損耗均等化を実行する方法は、メモリシステムと関連付けられている第１のゾーンを特定し、メモリシステムと関連付けられている第２のゾーンを特定するステップを含むゾーンスワッピング方式を含む。第１のゾーンは第１のコンテンツを含む第１のメモリ素子を含み、第２のゾーンは第２のコンテンツを含む第２のメモリ素子を含む。当該方法は、第１のコンテンツを第２のメモリ素子に記憶させ、第２のコンテンツを第１のメモリ素子に記憶させるステップも含む。コンテンツが記憶されれば、第１のコンテンツがアクセスされるときには第１のコンテンツは第２のメモリ素子においてアクセスされ、第２のコンテンツがアクセスされるときには第２のコンテンツは第１のメモリ素子においてアクセスされる。一実施形態では、第１のゾーン内のメモリ素子の実質的に全てのオリジナルコンテンツが第２のゾーン内のメモリ素子に記憶され、第２のゾーン内のメモリ素子の実質的に全てのオリジナルコンテンツが第１のゾーン内のメモリ素子に記憶される。
【００１５】
本発明の付加的な態様、利点および特徴が、その代表例についての以下の説明に含まれている。本願明細書で引用された全ての特許、特許出願、論文、特許刊行物およびその他の刊行物は、その全体があらゆる目的のために本願明細書において参照により援用されている。
【００１６】
本発明を添付図面と関連する以下の説明を参照すれば最も良く理解できよう。
【発明を実施するための最良の形態】
【００１７】
Ａ．メモリ構成および基本的定義
本発明は、消去および書き込みのサイクルの数が増えてゆくときに性能が次第に低下する可能性のあるメモリシステムでの損耗均等化に関する。本願明細書に記載されている実施形態は不揮発性ＥＥＰＲＯＭに基づくメモリシステムについて説明しているけれども、本発明の種々の態様は、“損耗”する可能性のあるあらゆるタイプの記憶媒体に応用可能である。例えば、エマージングタイプの不揮発性メモリ技術はフェーズ変更メモリである。情報は、与えられた材料のフェーズを変更することによって記憶される。このようなシステムも“損耗”しがちであり、記憶媒体は当該媒体がサイクルされた回数が多くなると情報を記憶しにくくなってゆく。本発明は、このような技術にも容易に応用され得る。
【００１８】
一実施形態では、フラッシュメモリメモリシステム内の不揮発性メモリ記憶セルは繰り返しプログラムされ、かつ消去され得るけれども、各セルは、セルが損耗するまでに或る回数しか消去され得ない。セルが損耗すると、フラッシュメモリメモリシステムの全記憶容量のうちの、その損耗したセルを含む部分に関連する性能が割合に顕著に低下し、その部分に記憶されているデータが失われたり、或いはその部分にデータを記憶させることができなくなる。フラッシュメモリメモリシステムの性能に悪影響を及ぼさない自動損耗均等化プロセスは、効率良くかつ実質的に定期的に損耗均等化が行われることを顕著に可能にする。その結果として、フラッシュメモリメモリシステムと関連するセルはより均等に損耗し、すなわち一般に或るセルが他のセルより遥かに急速に損耗するということはない。従って、フラッシュメモリメモリシステムの寿命は、顕著な性能ペナルティーを伴わずに長くなり得る。さらに、損耗均等化が実質的に自動的に行われるので、ユーザが損耗均等化プロセスを開始することを思い出さなくてもよくなる。
【００１９】
始めに図１ａを参照し、例えばコンパクトフラッシュメモリカードなどのメモリカードなどの不揮発性記憶装置を含む一般的なホストシステムについて説明する。ホスト或いはコンピュータシステム１００は、一般にマイクロプロセッサ１０８、ランダムアクセスメモリ（ＲＡＭ）１１２および入出力回路１１６が通信することを可能にするシステムバス１０４を含む。ホストシステム１００が、例えば表示装置およびネットワーキング装置などの他のコンポーネントを一般に含み得ることが理解されるべきであるが、それらは図解の目的のためには示されていない。
【００２０】
一般に、ホストシステム１００は、静止画像情報、オーディオ情報およびビデオ画像情報を含むけれどもこれらに限定はされない情報を捉えたり、或いは記憶したりすることができる。このような情報はリアルタイムで捉えられ、無線でホストシステム１００へ送られ得る。ホストシステム１００は実質的にどんなシステムであってもよいけれども、ホストシステム１００は、通常デジタルカメラ、ビデオカメラ、移動通信装置、携帯用コンピュータ、オーディオプレイヤー或いはビデオプレイヤーなどのシステムである。しかし、ホストシステム１００は、一般にデータ或いは情報を記憶し、データ或いは情報を検索する実質的にどのようなシステムであってもよいことが理解されるべきである。それは、データを捉えるだけ或いはデータを検索するだけのシステムであっても良い。すなわち、ホストシステム１００はデータを記憶する専用システムであってよく、或いはホストシステム１００はデータを読み出す専用シムであってよい。例えば、ホストシステム１００はデータを書き込むだけ或いはデータを記憶するだけであるように構成されたメモリライタであってよい。或いは、ホストシステム１００は、通常データを読み出し或いは検索するように構成されていてデータを捕捉するようには構成されていないＭＰ３プレイヤーなどの装置であってよい。
【００２１】
不揮発性記憶装置１２０は、バス１０４とインタフェースして情報を記憶するように構成されている。随意のインタフェース回路ブロック１３０は、不揮発性記憶装置１２０がバス１０４と通信することを可能にすることができる。存在するときには、例えばインタフェース回路ブロック１３０とインタフェースとは、バス１０４のローディングを減少させるのに役立つ。不揮発性記憶装置１２０は、不揮発性メモリ１２４とメモリ制御システム１２８とを含む。一実施形態では、不揮発性記憶装置１２０は単一のチップまたはダイ上に実現され得る。或いは、不揮発性記憶装置１２０は１つのマルチチップモジュール上に、或いは複数の別々のコンポーネントとして実現され得る。不揮発性記憶装置１２０の一実施形態について図１ｂに関してより詳細に以下で説明する。不揮発性記憶装置１２０は、例えば取り外しできるメモリカード或いは組み込み形サブシステムなどの実質的に任意の適切な不揮発性記憶装置であってよい。
【００２２】
不揮発性メモリ１２４は、必要に応じてデータにアクセスし読み出せるようにデータを記憶するように構成されている。データを記憶し、データを読み出し、データを消去するプロセスは、一般にメモリ制御システム１２８によって制御される。一実施形態では、メモリ制御システム１２８は、本質的に不揮発性メモリ１２４の部分を実質的に均等に損耗させることによってその寿命を実質的に最大にするように不揮発性メモリ１２４の動作を管理する。
【００２３】
不揮発性記憶装置１２０は、メモリ制御システム１２８、すなわちコントローラを含むものとして一般的に説明されている。特に、不揮発性記憶装置１２０は、不揮発性メモリ１２４とコントローラ１２８との機能のために別々のチップを包含することができる。例を挙げると、ＰＣカード、コンパクトフラッシュカード、マルチメディアカードおよびセキュアデジタルカードを含むがこれらに限定はされない不揮発性記憶装置は、別のチップ上に実現され得るコントローラを含むが、他の不揮発性記憶装置は別のチップ上に実現されるコントローラを含まない。不揮発性記憶装置１２０が別々のメモリチップおよびコントローラチップを含まない実施形態では、メモリ機能とコントローラ機能とは単一のチップに統合され得る。さらに、コントローラはホストシステムに置かれてよく、不揮発性記憶装置１２０は、コネクタまたは他の任意のタイプのインタフェースを通して当該ホスト上のコントローラに接続されてよい。とにかく、本発明の範囲はあらゆる形および組み合わせのメモリシステムを含み、それらにおいて記憶媒体内での損耗レベルは制御システムによって制御される。例えば、コントローラはホストシステムのマイクロプロセッサ上でソフトウェアの中で実現される。
【００２４】
図１ｂを参照して、本発明の実施形態による不揮発性記憶装置１２０をより詳しく説明する。図１ｂは、単一のフラッシュメモリチップ１２４と別のコントローラ１２８とを含む不揮発性記憶装置１２０の実施形態を示すことが理解されるべきである。メモリ１２４は半導体基板上に形成された適切なアドレス指定と制御回路を伴うメモリセルアレイであってよくて、電荷の２つ以上のレベルまたは分布のうちの１つをメモリセルの個々のメモリ素子に記憶させることによって１ビット以上のデータが個々のメモリセルに記憶される。不揮発性フラッシュ形の電気的に消去可能でプログラム可能な読み出し専用メモリ（ＥＥＰＲＯＭ）は、このようなシステムのためのありふれたタイプのメモリの例である。
【００２５】
説明される実施形態において、コントローラ１２８は、バス１５を介して、当該メモリシステムを使ってデータを記憶させるホストコンピュータまたはその他のシステムと通信する。バス１５は、一般に図１ａのバス１０４の一部である。制御システム１２８は、メモリセルアレイ１１を含むことのできるメモリ１２４の、ホストから提供されたデータを書き込み、ホストから要求されたデータを読み出し、動作するメモリ１２４で種々のハウスキーピング機能を実行する動作も制御する。制御システム１２８は、関連するメモリ、種々の論理回路などを有する汎用マイクロプロセッサまたはマイクロコントローラを含むことができる。特定のルーチンの実行を制御するために１つ以上の状態マシンが含まれることもよくある。
【００２６】
メモリセルアレイ１１は、通常アドレスデコーダ１７を通して制御システム１２８によりアドレス指定される。デコーダ１７は、制御システム１２８によってアドレス指定されたメモリセルのグループにデータをプログラムし、当該グループからデータを読み出し、或いは当該グループを消去するために、アレイ１１のワードラインおよびビットラインに正しい電圧を印加することができる。付加的な回路１９は、読み出されたり、または書き込まれるデータを一時的に記憶するデータレジスタ、アドレス指定されたグループのセルにプログラムされるデータに依存する当該アレイのエレメントに印加される電圧を制御するプログラミングドライバと、種々の電圧および制御信号の順序付けを制御する状態マシンとを含む。回路１９は、アドレス指定されたグループのメモリセルからデータを読み出すのに必要なセンス増幅器およびその他の回路も含むことができる。アレイ１１にプログラムされるべきデータ、或いはアレイ１１から最近読み出されたデータは、通常制御システム１２８内のバッファメモリ２１に記憶される。制御システム１２８は、普通コマンドおよび状態データなどを一時的に記憶するための種々のレジスタも含む。
【００２７】
１つの特定の実施形態では、アレイ１１はメモリセルの多数のブロック０〜Ｎに分割されている。好ましい実施形態では、ブロックは消去の単位であり、すなわち一緒に消去される最小数のメモリセルである。各ブロックは、図１ｂにも示されているように、数個のページに通常分割される。ページはプログラミングの最小単位であり、ユーザデータの１つ以上のセクタが通常各ページに記憶される。セクタは、ホストが不揮発性メモリをアドレス指定し、或いは当該メモリへまたは当該メモリから転送する論理データの最小単位である。ディスクドライブの用途では、これは通常５１２バイトである。或る不揮発性メモリは部分的なページプログラミングを可能にし、このプログラミングでは、第１のプログラミング後に消去された状態に留まっている個々のビットを、当該ページを始めに消去すること無しに後のページプログラミング操作でプログラムすることができる。或る多状態メモリは、低い方のプログラムされた状態に既にプログラムされているビットを後のページプログラミング操作で高い方の状態にプログラムすることも可能にする。これらのメモリでは、複数のセクタを、或いは複数のセクタの複数の部分を異なる時にプログラムすることができる。それでも、１ページはプログラミングの基本単位のままであり、一部のビットをマスクして後にプログラムするだけである。本発明は、消去、読み出しおよび／または書き込みの単位の物理的実装例に関わらずに任意の適切なメモリシステムに適用され得る。
【００２８】
説明される実施形態の図１ｂに示されているように、１ページはユーザデータとオーバーヘッドデータとの両方を含むことができる。オーバーヘッドデータは、通常当該ページに含まれているユーザデータから計算されたエラー訂正符号（ＥＣＣ）を含み、当該ＥＣＣはオーバーヘッドデータの一部または全部を含むことができる。制御システム１２８の一部分２３は、アレイ１１にデータがプログラムされるときにＥＣＣを計算し、またデータがアレイ１１から読み出されるときにＥＣＣを検査する。オーバーヘッドデータは、ユーザデータの論理アドレス、ページおよび／またはブロックの物理アドレス、アドレスマップ情報、物理的ブロックが経験した消去サイクルの数、暗号化情報および／またはその他の統計或いはデータも含むことができる。図１ｂに示されているように、オーバーヘッドデータの一部または全部を各ページに記憶させることができる。その代わりに、オーバーヘッドデータの一部または全部を各ブロック内の特定の記憶位置に記憶させることができ、或いはそれをユーザデータとは別のブロックに記憶させることもできる。
【００２９】
最も一般的には１セクタのデータが各ページに含まれるけれども、代わりに２つ以上のセクタが１ページを形成することもでき、或いは１ページが１セクタより小さくてもよい。例えば、その全体が参照により本願明細書において援用されている米国特許第５，８９０，１９２号（特許文献１）および第５，４３０，８５９号（特許文献２）は、チャンクを単位としてデータをプログラムしたり、読み出したりすることを開示し、ここでチャンクというのは１セクタの小部分である。あるメモリシステムでは、１セクタが１ページに含まれ、１ページが１ブロックを形成することができる。より一般的には、ＮＡＮＤメモリシステムでは１つ以上のセクタが各ページに含まれ、８，１６または３２ページが１ブロックを形成する。他のメモリシステムでは、ブロックは５１２，１０２４またはそれ以上の割合に大きな数のページから形成される。ブロックの数は、メモリシステムのために望ましいデータ記憶容量を提供するように選択される。アレイ１１は、通常数個のサブアレイ（図示せず）に分割され、その各々はブロックの一部分を含み、それは種々のメモリ動作の実行において並列性の度合いを高めるために或る程度互いに無関係に動作する。複数のサブアレイの使用の例が、前に引用された米国特許第５，８９０，１９２号（特許文献１）に記載されている。
【００３０】
不揮発性メモリ１２４の、例えばメモリ素子のグループなどの特定の部分が繰り返しプログラムされ、かつ消去されるとき、その特定の部分は一般に連続的にプログラムされない部分より速く損耗する。不揮発性メモリ１２４内のいろいろな領域の損耗を効果的に“均等化”するために、繰り返しプログラムされる部分がより少なくプログラムされ、また繰り返しプログラムされる部分を過剰に循環するのではなくて頻繁にはプログラムされない部分を利用することができるように、損耗均等化を自動的に実行することができる。
【００３１】
一般的に、損耗均等化を実行するために、与えられた回数プログラムされた、例えば１つ以上のセルまたはメモリ素子などの１つ以上の物理的記憶位置と関連する論理アドレス（例えば、論理的ブロックアドレスおよび／またはシリンダヘッドセクタアドレス）を、繰り返しプログラムされていなかった別の物理的記憶位置と関連させなおすことができる。例えば、最も多くプログラムされた物理的記憶位置のコンテンツを最も少なくプログラムされた物理的記憶位置のコンテンツと入れ替えて、物理的記憶位置の損耗を本質的に均等化することができる。このようなプロセスは、与えられた論理アドレスが損耗均等化などの何らかの特定のイベントにより割り当てなおされるまでの“長い”期間にわたって特定の物理的記憶位置と関連付けられるようになっている直接マッピングアドレス指定損耗均等化方式で行われ得る。この方式は、時には（静的）連想マッピングと称される。
【００３２】
損耗均等化は、論理アドレスを物理アドレスにマッピングする間接アドレス指定を用いるシステムでも実行され得る。これらのシステムでは、与えられた論理アドレスは異なる時に異なる物理的記憶位置にマッピングし、各論理的更新を用いて変更することがしばしばある。通常、一時的に使用されていないけれども物理的に消去されているブロックの集合は消去プールを形成する。消去プーリング損耗均等化方式では、最も損耗している物理的記憶位置が損耗する速度を遅くするために１つの領域内の最も損耗している物理的記憶位置のコンテンツを同じ領域内の消去されている物理的記憶位置へ移すことができ、或いは、或る物理的記憶位置が他の物理的記憶位置より遥かに高い速度で損耗するのを防止するためにゾーンを入れ替えたり、或いは再定義することができる。
【００３３】
本発明は、物理メモリのゾーンを用いるシステムにおいてさらに実施され得る。ゾーンは、論理的ブロックの指定された範囲がマッピングされる物理メモリまたはメモリシステムの任意の分割された部分集合であり得る。余分な予め消去されているブロックを提供するために、１つのゾーンにマッピングされる論理的ブロックの数より多い物理ブロックをその１つのゾーンに包含させ得る。例えば、６４メガバイトのデータを記憶できるメモリシステムを、ゾーンあたりに１６メガバイトのデータを記憶する４つのゾーンに分割することができる。このとき、論理的ブロックの範囲も、その４つのゾーンの各々の物理ブロックについて１グループずつ、４つのグループに分割される。論理的ブロックは、代表的な実装例では、論理的ブロックがマッピングされる単一の物理ゾーンの外に各々のデータが決して書き込まれないように、束縛される。自分自身のアドレス指定回路、プログラミング回路および読み出し回路を各々有するプレーン（サブアレイ）に分割されたメモリセルアレイでは、各ゾーンは好ましくは複数のプレーンからのブロック、通常各プレーンからの同数のブロックを含む。ゾーンは論理から物理への移行などのアドレス管理を簡略化するために主に使用され、移行テーブルが小さくなり、これらのテーブルを保持するために必要なＲＡＭメモリが少なくなり、メモリの現在の動的な領域をアドレス指定するアクセス時間が速くなるという結果をもたらすけれども、本来制限が多いために最善には及ばない損耗均等化をもたらす可能性を有する。
【００３４】
メモリシステムのサイズが大きくなるにつれて（今日では１ギガバイトのメモリを上回る）、物理的メモリ全体にわたる損耗均等化は煩わしく、時間を消費し、かつ損耗統計を維持するために過大なメモリスペースを必要とするようになる可能性を有する。しかし、１つのゾーン内で消去の単位を損耗均等化することにより１つのゾーン内で（ゾーン内）、または複数のゾーン間で消去の単位を損耗均等化することにより、或いは１つのゾーンが他のゾーンより多くの損耗を有する場合に複数のゾーン全体を入れ替えることによりゾーン間で（ゾーン間）損耗均等化を実行することができる。他の変形では、動的ゾーン損耗均等化またはオフセットゾーン損耗均等化を実施することができる。このような実施形態では、ゾーンのサイズおよび／または場所は静的ではない。例えば、１つ以上の消去単位を第１のゾーンから第２のゾーンへ割り当てて、当該第２のゾーンを当該第１のゾーンより大きくすることは有益であり得る。さらに、１つのゾーンの物理的記憶位置は始めにメモリの１つの物理的部分から出発することができるが、損耗均等化操作後に、当該ゾーンは当該メモリ内でオフセットにより動かされるか、または完全に動かされ得る。これは、物理的メモリの完全利用を可能にするために他のゾーンがオフセットまたは他の何らかのインクリメントだけ同様に移動されることを必要とする。
【００３５】
直接マッピングアドレス指定方式を図２〜５までと関連させて以下で説明し、消去プーリング方式を以下で図６〜１０までを参照して説明する。
【００３６】
Ｂ．直接マッピング損耗均等化
直接マッピングアドレス指定方式では、特定のホスト論理アドレス（例えば、論理的ブロックアドレス、すなわちＬＢＡ）と関連するデータは、一般に書き込み／消去サイクルが繰り返された後でも特定の物理的記憶位置に記憶されている。説明される実施形態は、論理的ブロックアドレスと関連して論じられるけれども、任意のタイプの論理アドレスを利用することができる。ホストシステムが同じ論理的ブロックアドレスに書き込み或いは書き換えるとき、そのデータは同じ物理アドレスに書き込まれる。通常、当該物理アドレスに位置する物理的メモリは、消去されてから、当該ＬＢＡと関連する新しいおよび／または更新されたデータで書き換えられる。論理アドレスから物理アドレスへの対応は、例えば損耗均等化手続きの結果として当該ＬＢＡと関連するマッピングが変更されるまでは一般に存続する。或るＬＢＡが繰り返しプログラムされるということがあるので、それらＬＢＡと関連する物理的記憶位置が割合に早く損耗することになる。繰り返しプログラムされたＬＢＡを、稀にしかプログラムされず、従って稀にしか消去されなかった物理的記憶位置と前は関連していた物理的記憶位置へ再マッピングすることによって、これら２つの物理的記憶位置の損耗を均等化することができる。
【００３７】
図２は、その上で直接アドレス指定損耗均等化方式を実施し得る不揮発性メモリシステムの線図である。不揮発性メモリシステム２００は、メモリコントローラ２０８によって制御される、例えば割り当てられる、不揮発性メモリ２０４を含む。ファームウェア２１１は、損耗均等化機能または損耗均等化プロセッサ２１２を含むことができて、メモリコントローラ２０８と協同して不揮発性メモリ２０４に対して損耗均等化プロセスを実行する。或いは、損耗均等化は、回路、ファームウェア、ソフトウェア、或いはこれらの任意の組み合わせによって実行され得る。マッピング情報２１４は、ＬＢＡを不揮発性メモリ２０４内の物理的記憶位置にマッピングするために、メモリコントローラ２０８によって使用される。
【００３８】
不揮発性メモリ２０４は、一般にプレーン２１８ａ〜２１８ｄに分割される。各プレーンは、例えば物理ページを含むブロックなどの任意の数の消去単位を含むことができる。ブロック２２６ａは、プレーン２１８ａと関連する数個のブロックのうちの１つである。同様に、ブロック２２６ｂは、プレーン２１８ｂと関連する数個のブロックのうちの１つである。各ブロックは１つ以上のページを含み、ページ２２２ａおよびページ２２２ｂはプレーン２１８ａの頂部のブロックと関連する２つのページである。２つ以上の異なるプレーンの各々からの１つのブロックを組み合わせて１つのメタブロックを形成することができる。例えば、ブロック２２６ａ，２２６ｂ，２２６ｃおよび２２６ｄを組み合わせてメタブロック２２６を形成することができる。説明される実施形態では、メモリコントローラ２０８は、損耗均等化プロセッサ２１２と協同して複数のブロック或いはメタブロックを効率的にスワッピングするように構成されている。複数のブロックのスワッピングは、ブロックの、或る場合にはメタブロックの、物理的記憶位置がセクタ、ブロックまたはメタブロックと関連するＬＢＡに関して変更されるようにブロック内のデータのコンテンツを入れ替えることを必要とする。直接マッピングは、単一のページが１つのブロックを形成し、書き込みおよび消去の両方の基本単位が１ページである或るＮＯＲメモリでよく使用される。
【００３９】
図３ａは、物理的記憶位置およびセットを含む不揮発性メモリの実施形態の線図である。不揮発性メモリ３０４は、セクタのセット３１０の形のデータを含む物理的記憶位置３０６を含む。実質的にどのセクタのセット３１０をスワッピングしたり、或いは交換してもよいのであるが、最大の損耗を有する或いは最大のサイクル総数を有する物理的記憶位置３０６にあるセクタのセット３１０が、通常最小の損耗を有する他の物理的記憶位置３０６にあるセクタのセット３１０とスワッピングされる。サイクル総数情報がなければ、記憶位置をランダムに選択したり、或いはアルゴリズム的に選択してよいことが理解されるべきである。
【００４０】
検討の目的のために、物理的記憶位置“０”３０６ａが最も大きく損耗し、物理的記憶位置“Ｎ”３０６ｃが最も少なく損耗している。すなわち、物理的記憶位置“０”３０６ａに含まれているデータはかなり頻繁に消去され、物理的記憶位置“Ｎ”３０６ｃに含まれているデータはあまり頻繁には消去されていない。従って、不揮発性メモリ３０４内の物理的記憶位置３０６に関連する損耗を均等にするために、損耗均等化プロセスで物理的記憶位置“０”３０６ａのコンテンツを物理的記憶位置“Ｎ”３０６ｃのコンテンツとスワッピングすることができる。換言すると、図３ｂに示されているように、セクタのセット“Ａ”３１０ａは物理的記憶位置“Ｎ”３０６ｃに記憶され、セクタのセット“Ｂ”３１０ｃは物理的記憶位置“０”３０６ａに記憶されるように（これらは、スワッピングされるホスト論理的ブロックアドレスと関連している）、セクタのセット“Ａ”３１０ａはセクタのセット“Ｂ”３１０ｃとスワッピングされ得る。従って、セクタのセット“Ａ”３１０ａが次に消去されるとき、消去手続きは物理的記憶位置“Ｎ”３０６ｃに関して行われる。従って、サイクル総数は一般に特定の物理的記憶位置３０６に関連する消去および書き込みサイクルの数を追跡するので、物理的記憶位置“Ｎ”３０６ｃに関連するサイクル総数がインクリメントされる。
【００４１】
一般に、直接アドレス指定方式では、損耗均等化プロセスは、トリガー条件が満たされたときに自動的に開始され得る。トリガー条件は、所定期間の終了、または１つ以上の物理的記憶位置のサイクル総数が相対的或いは絶対的しきい値レベルに達したこと、或いは１つ以上の物理的記憶位置が顕著に低下した性能レベルを呈していると判定されたときであり得る。それは、特定の数のホスト書き込み動作が行われたときにトリガーされてよい。損耗均等化プロセスを開始するために使用される他の方法は、ホスト動作の数を追跡してホスト動作の数が特定の数に達したときに損耗均等化を開始すること、および損耗均等化プロセスを開始するために使われる乱数または擬似乱数を発生させることを含むけれども、これらに限定はされない。
【００４２】
図４を参照して、不揮発性メモリ内の損耗均等化プロセスを受けるべき１つ以上のセクタを特定する動作に関連するステップを説明する。スワッピングされるべき１つ以上のセクタを特定するプロセス４００はステップ４０４から始まり、このステップで、トリガー条件が満たされたか否かが判定される。すなわち、損耗均等化プロセスが開始されるべきか否かに関して判定が行われる。このような判定は、不揮発性メモリを制御するメモリコントローラによって行われ得る。説明される実施形態では、トリガー条件が満たされたか否かの判定は、例えば最後の損耗均等化プロセスから所定期間が経過したか否かの判定である。代わりに、ホストシステムが、損耗均等化動作をいつ開始するかを決定することができる。さらに他の実施形態では、ユーザは損耗均等化の開始についての選択権を持つことができ、このような実施形態ではメモリコントローラまたはホストシステムは損耗均等化動作を開始する適切な時間に関してユーザに入力を促すことができる。
【００４３】
所定期間が経過していないと判定されたならば、例えば少し後に、当該所定期間が経過したか否かもう一度判定を行うことができる。代わりに、所定期間が経過したと判定されたならば、ステップ４０８で、シーク時間を制限するために、不揮発性メモリ内の各物理的記憶位置について、または或る範囲内の各物理的記憶位置についてのホットカウント或いはサイクル総数が得られる。ホットカウントが得られたならば、最も多い知られている損耗を示す最高値を有するホットカウントがステップ４１２で特定される。同様に、最低値または最も低い知られている損耗に伴うホットカウントがステップ４１６で特定される。もちろん、特にサーチアルゴリズムが使用されるとき、最高または最低のホットカウントに近いもの（例えば、充分に高いまたは充分に低い）を使用することもできる。
【００４４】
ステップ４２０で最高のホットカウントを有する物理的記憶位置に記憶されている１つ以上のセクタがセクタのセット“Ａ”として特定され、ステップ４２４で最低のホットカウントを有する物理的記憶位置に記憶されているセクタのセットがセクタのセット“Ｂ”として特定される。セクタのセット“Ａ”とセクタのセット“Ｂ”とが特定されると、最高および最低のホットカウントを有する物理的記憶位置に対して損耗均等化プロセスがステップ４２８で実行される。１つの適切な損耗均等化プロセスに関して図５と関連して以下で検討する。損耗均等化プロセスが実行された後、損耗均等化プロセスを受けるべきセクタのセットを特定するプロセスが完了する。
【００４５】
図５は、損耗均等化プロセス、すなわち図４の実施形態のステップ４２８、に関連するステップの例を示すプロセスの流れ図である。損耗均等化プロセス４２８はステップ５０４から始まり、ここでセクタのセット“Ａ”が、例えば最高のホットカウントを有する物理的領域から、予備領域或いは現在は実質的に情報が記憶されていない不揮発性メモリ内の領域へコピーされる。セクタのセット“Ａ”が当該予備領域へコピーされると、元のセクタのセット“Ａ”と関連する物理的記憶位置はステップ５０８で消去される。ステップ５１２で、セクタのセット“Ｂ”が前はセクタのセット“Ａ”により占められていた物理的記憶位置にコピーされる。セクタのセット“Ｂ”がコピーされると、セクタのセット“Ｂ”がそれからコピーされたところの物理的記憶位置がステップ５１６で消去される。セクタのセット“Ｂ”がそれからコピーされたところの物理的記憶位置が消去された後、予備領域に記憶されているセクタのセット“Ａ”がステップ５２０で前にセクタのセット“Ｂ”により占められていた物理的記憶位置にコピーされる。次に、ステップ５２４で、当該予備領域を消去することができる。
【００４６】
損耗均等化が行われた後に、不揮発性メモリにアクセスしているホストが、より具体的にはホストコンピュータシステムが、不揮発性メモリ内の要求されている情報の位置を突き止めることができるようにするために、メモリコントローラが正しい情報にアクセスすることを可能にするマッピング情報がステップ５２８で更新される。損耗均等化プロセスが行われた後に、セクタのセット“Ａ”および“Ｂ”に記憶されている情報にアクセスするために使用されるホストＬＢＡがセクタのセット“Ａ”および“Ｂ”が記憶されている新しい物理的記憶位置にアクセスするように、マッピング情報が更新される。マッピング情報が更新されると、損耗均等化手続きを実行するプロセスが完了する。当該マッピング情報は、図２のように揮発性ＲＡＭ内のテーブル２１４に記憶され、かつ／または当該不揮発性メモリに部分的に或いは完全に含まれてもよい。
【００４７】
直接アドレス指定に関連しての損耗均等化プロセスを、セクタの２つのセットがスワッピングされるとして説明してきたけれども、このような損耗均等化プロセスは一般的にセクタの任意の数のセットをスワッピングすることを含むことができる。例えば、最高のホットカウントと関連する物理的記憶位置の中のセクタのセットと最低のホットカウントと関連する物理的記憶位置の中のセクタのセットとをスワッピングすることに加えて、２番目に高いホットカウントと関連する物理的記憶位置の中のセクタのセットを２番目に低いホットカウントと関連する物理的記憶位置の中のセクタのセットとスワッピングすることもできる。すなわち、損耗均等化プロセスの数回の繰り返しを並列に或いは逐次に実行することができる。さらに、損耗均等化プロセスのときに最高のホットカウントと関連する物理的記憶位置の中のセクタのセットを最低のホットカウントと関連する物理的記憶位置の中のセクタのセットとスワッピングする代わりに、セクタの実質的にどの２つのセットをスワッピングしてもよく、またそれらをランダムに或いは何らかの決定方法に基づいて選んでもよい。
【００４８】
Ｃ．消去プーリング
前述したように、損耗均等化プロセスを直接アドレス指定方式に組み込む代わりに、損耗均等化プロセスを消去プーリング方式に組み込むことができる。消去プーリング方式では、セクタは、通常物理的ブロックと非静的に関連する論理的ブロックにグループ分けされる。論理的ブロックは一般的に或る範囲のホストＬＢＡについてのデータを含むが、データがこれらのＬＢＡに書き込まれたり、或いは更新されるごとにフラッシュメモリシステムのいろいろな物理的記憶位置に記憶される。各物理的ブロックは、その物理的コンテンツについての論理アドレスフィールドまたは他の何らかの識別を含むことができる。このようなマッピング情報を、コントローラにより便利にアクセスされる揮発性メモリ領域内のテーブルに保つのが便利であることがよくある。或る実施形態では、いろいろなＬＢＡがアクセスされるときにいろいろな論理的ブロックを連続的に探索する必要を軽減するために当該テーブルはフラッシュメモリシステムが給電される毎に形成される。このようなテーブルを作るために必要な情報も、実際のユーザデータと共に或いはそれとは別に、不揮発性メモリに記憶されてよい。
【００４９】
１つのタイプの不揮発性メモリシステムでは、アレイは複数のゾーンをなすように組織される。図６は、このようなゾーンを含む不揮発性メモリシステムの線図である。不揮発性メモリシステム６００は、メモリコントローラ６０８により制御され得る不揮発性メモリ６０４を含む。メモリコントローラ６０８は、損耗均等化プロセッサ６１０を使って不揮発性メモリ２０４に対して損耗均等化プロセスを実行する。メモリコントローラ６０８によりアクセスされ得る揮発性メモリ６１２は、論理−物理アドレスマップなどのマッピング情報を含むことができる。不揮発性メモリ６０４は複数のゾーン６１４に分割されている。ゾーン６１４のサイズ、およびゾーン６１４の数は、不揮発性メモリ６０４のサイズおよび不揮発性メモリシステム６００の必要条件の両方によって変わり得る。ゾーン６１４は、一般に物理的ブロック６１８に分割され、それらは、一実施形態では、前述したようにメタブロックにグループ分けされ得る。各ブロック或いはメタブロックは、各々１つ以上のデータセクタの１つ以上のグループ（ページ）６２２を含む。メモリセルアレイのゾーンの１つの典型的な使用方法では、ホスト論理的ブロックアドレス（ＬＢＡ）の１つの特定の重なり合わない範囲が物理ゾーンの各々にマッピングされ、このマッピングは変更しない。このようにゾーンは複数のプレーンを利用するメモリのアーキテクチャにおいて２つ以上のプレーンからのブロックを含むように定められ、各ゾーンは通常個々のゾーン内の同じ相対物理的アドレスを有する同じ数のブロックを含む。物理的ゾーンは、ホストＬＢＡの別々の範囲のうちの１つがマッピングされるブロックとして定義され、そのようなものとして論理的に再設定され得る。通常、物理的ブロックアドレスは各ゾーンについて連続的であるように選択されるが、これは必要条件ではない。
【００５０】
消去プーリング方式では、損耗均等化は１ゾーン６１４内で或いは複数のゾーン６１４間で行われ得る。例を挙げると、ゾーン６１４内で、セクタの１つのグループ６２２は、同じゾーン６１４の中でどの１つの物理的ブロック６１８も他の物理的ブロック６１８より遥かに速く損耗することのないように、セクタの１つのグループ６２２を物理的ブロック６１８間で動かすことができる。このようなゾーン内消去プーリング方式を図７を参照して以下で説明する。図８および９に関して以下で検討するように、損耗均等化が２つのゾーン６１４間で行われるとき、１つのゾーン６１４が他のゾーン６１４より遥かに速く損耗するのを実質的に防止するようにゾーン６１４の記憶位置を動かすことができる。
【００５１】
１．ゾーン内損耗均等化
ゾーン内損耗均等化プロセスのとき、論理的ブロックは一般に１つのゾーン内に留まり、その結果として、当該ゾーンを画定するゾーン境界は実際上動かされない。しかし、当該ゾーン内での物理的アドレスとの論理的対応は動かされる。図１２ａは、ゾーン内損耗均等化プロセスが行われる前の物理的ブロックを含むゾーンの線図である。ゾーン１２００内で、物理的ブロック１２０２は、論理的コンテンツ、或いは論理的ブロック１２０６に関連するコンテンツを含むことができる。始めは、物理的ブロック１２０２ａは論理的ブロック１２０６ａに関するデータを含むことができ、物理的ブロック１２０２ｂは実際上消去されているブロックであってよい、すなわち論理的ブロック１２０６ｂは実質的にコンテンツを持っていなくてもよい。ゾーン内損耗均等化は、図１２ｂに示されているように、論理的ブロック１２０６がゾーン１２００内で実際上動かされることを可能にする。図に示されているように、ゾーン内損耗均等化が行われれば、論理的ブロック１２０６ａのコンテンツは物理的ブロック１２０２ｂへ移され、これにより物理的ブロック１２０２ａを消去させる。消去された物理的ブロック１２０２ａは、実際上、実質的にコンテンツを持っていない論理的ブロック１２０６ｂを含む。従って、物理的ブロック１２０２ａは消去されているブロックであり、物理的ブロック１２０６ｂは論理的ブロック１２０６ａと関連している。ゾーン１２００に関連するマッピング情報を含むデータ構造が論理的ブロック１２０６ａに関連するデータの新しい記憶位置を保持するように更新され得ることが理解されるべきである。
【００５２】
図７を参照して、ゾーン内消去プーリングに関連しての例としての一般的な損耗均等化プロセスを説明する。プロセス７００はステップ７０２から始まり、ここで損耗均等化プロセスが実行されるべきか否かが判定される。このような判定は、直接アドレス指定損耗均等化プロセスに関して前述したものを含むいろいろな方法或いはトリガー事象を用いて行われ得るけれども、説明される実施形態では、このような判定は乱数または擬似乱数の使用を通して行われる。一実施形態では、１つのゾーンは１つの装置全体または数個の装置を含み得る。
【００５３】
ステップ７０３で、損耗均等化を行うべきであるか否かが判定される。説明される実施形態では、トリガー事象に実際に応答する確立を小さくするために、このような判定はマスクの使用を含むことができる。例えば、トリガーのために使用される乱数に対してＡＮＤを行うために‘１’および‘０’の何らかの組み合わせを含む数がマスクとして使われるならば、一定のトリガー事象は無視され、損耗均等化は行われない。すると、プロセスはステップ７０２に戻り、ここで損耗均等化を実行することが適切であるか否かもう一度判定が行われる。代わりに、ステップ７０３で損耗均等化を実行するべきであると判定されたならば、損耗均等化手続きがステップ７０４で始まり、ここでセクタのセット“Ａ”がセクタのセット“Ａ”と同じゾーン内に位置する消去プールにコピーされる。消去プールは、当該ゾーン内の他の全ての消去されているブロックである。セクタのセット“Ａ”は、一般に実質的にどのような方法を用いて選択されてもよい。例えば、セクタのセット“Ａ”はランダムに選択されても良く、セクタのセット“Ａ”は決定論的に選択されても良い。
【００５４】
セクタのセット“Ａ”が消去プールにコピーされた後、ステップ７０８で、前にセクタのセット“Ａ”を含んでいた物理的記憶位置が消去される。このようなしだいで、消去された物理的記憶位置またはブロックは、実際上消去プールの一部になる。前にセクタのセット“Ａ”を含んでいた物理的記憶位置が消去されると、消去プーリング方式の一部として損耗均等化プロセスを実行するプロセスは完了する。マッピング情報を含むどのようなデータ構造も一般にセクタのセット“Ａ”の新しい記憶位置を反映するように更新されるということが理解されるべきである。
【００５５】
ゾーン内損耗均等化は、一般に与えられたゾーン内に実質的に均等に損耗を分散させることを可能にする。しかし、与えられたゾーンが他のゾーンより遥かに頻繁にプログラムまたは消去されるときには、損耗均等化プロセスの際にいろいろなゾーンに損耗が分散され得ることになる。論理的ゾーンは通常固定された範囲のホストＬＢＡを含むので、いろいろなゾーンに損耗を分散させることはゾーンの物理的境界を動かすことを含み得る。
【００５６】
本願明細書に記載されているゾーン内損耗均等化手法は単一のゾーンを有するメモリシステムに応用され得るものであることにも留意すべきである。さらに、単一ゾーン損耗均等化或いはゾーン内損耗均等化のもうひとつの例が以下のセクション４．に記載されている。
【００５７】
２．ゾーンスワッピング
物理的ブロックの損耗が実質的に装置の１つの部分だけが激しく使われると予想されるような損耗であるときに、激しく損耗したゾーンを軽く損耗したゾーンとスワッピングすることを含む損耗均等化プロセスを有利に使用することができる。ゾーンスワッピングを使用する損耗均等化プロセスは、２つのゾーンの物理的記憶位置をスワッピングすることを可能にする。損耗均等化プロセス或いは動作が開始されると、各ゾーン内のブロックのコンテンツが他方のゾーンにコピーされる。通常は、割合に大量のデータを含む複数のゾーンはスワッピングのために相当の長さの時間をとり得るので、ゾーンスワッピングは、不揮発性記憶装置を必要とする標準的動作のバックグラウンドで実行され得ることが理解されるべきである。
【００５８】
移されるデータがアクセスされることを実質的に防止し、さらに損耗均等化動作の最中に不揮発性記憶装置のパワーダウンが当該不揮発性記憶装置のコンテンツをアクセス不能にすることを実質的に防止するために、種々のデータ構造を実現することができる。例えば、データ構造は、損耗均等化プロセスの現在の段階に依存してデータへのアクセスが実質的に制限され得るように、損耗均等化プロセスがどの段階にあるのか示すことができる。種々のデータ構造が、スワッピング動作がいつ進行しているかを判定することを可能にし、また中断されたスワッピング動作を続行するために使用され得る情報を含むこともできる。
【００５９】
損耗均等化中に２つのゾーンが記憶位置を交換するようにランダム或いは決定論的に選択されたとき、各ゾーンからのブロックを他方にコピーすることができる。ゾーンのスワッピングの際に、ゾーンスワッピング中の各ゾーンの物理的先頭が他方のゾーンに関するブロックを含むように、ブロックを１ゾーンの先頭から他のゾーンに交互にコピーすることができる。図１３ａは、ゾーンスワッピング損耗均等化プロセスの前の物理的ブロックを含むゾーンの例の線図である。物理的ゾーン１３００は、物理的ブロック１３１０，１３２０を含む。具体的には、ゾーン“Ａ”１３００ａは物理的ブロック１３１０を含み、ゾーン“Ｂ”１３００ｂは物理的ブロック１３２０を含む。始めの状態では、論理的ブロック１３１４ａを含む第１の論理的ゾーンは実質的に完全にゾーン“Ａ”１３００ａ内にあり、論理的ブロック１３１４ｂ〜ｄを含む第２の論理的ゾーンは実質的に完全にゾーン“Ｂ”１３００ｂ内にある。図に示されているように、物理的ブロック１３２０ｃは始めは消去されているブロックである。
【００６０】
ゾーンスワッピングの際に、論理的ブロック１３１４のコンテンツはゾーン１３００間で動かされる。１つの特定の例では、物理的ブロック１３２０ａに記憶されている論理的ブロック１３１４ｂに関連しているコンテンツは、同じゾーン内の物理的ブロック１３２０ｃなどの利用可能な消去されているブロックに移されて、スワッピング開始のための空間を作ることができる。その後、物理的ブロック１３２０ａは消去される。次いで、論理的ブロック１３１４ａに関連するコンテンツがゾーン間で物理的ブロック１３１０ａから消去された物理的ブロック１３２０ａに移され、論理的ブロック１３１４ｃのコンテンツはゾーン間で物理的ブロック１３２０ｃから物理的ブロック１３１０ａに移される。その後、物理的ブロック１３１０ｃは消去されてよくて、ゾーン間でのデータスワッピングの次のラウンドのために利用可能になる。図１３ｂは、ゾーン１３００ａおよび１３００ｂ間でのデータの２つの論理的ブロック１３１４ａおよび１３１４ｃのスワッピングを含むこれらの始めのステップの後の図１３ａのゾーン１３００を描いている。図に示されているように、論理的ブロック１３１４ｃはゾーン“Ａ”１３００ａに関連し、論理的ブロック１３１４ａはゾーン“Ｂ”１３００ｂに関連している。ゾーンスワッピングプロセス後、論理的ブロック１３１４ｂ，１３１４ｄはゾーン“Ｂ”１３００ｂと関連したままであるが、論理的ブロック１３１４ｂ，１３１４ｄは異なる物理的ブロック１３２０に含まれる。
【００６１】
一般に、スワッピング境界はゾーンスワッピングの過程で移動する。スワッピング境界は、与えられたゾーン内の、データを含む実質的に全ての前のブロックが他のゾーンからコピーされたデータを有するように境界を定めるブロックである。ゾーンスワッピングに関連する初期ステップの前に、図１３ａに示されているように、ゾーン“Ａ”１３００ａ内のスワッピング境界は物理的ブロック１３１０ａであり、ゾーン“Ｂ”１３００ｂ内のスワッピング境界は物理的ブロック１３２０ａである。しかし、ゾーンスワッピングに関連する初期ステップ後、図１３ｂに示されているように、ゾーン“Ａ”１３００ａ内のスワッピング境界は物理的ブロック１３１０ｂであり、ゾーン“Ｂ”１３００ｂ内のスワッピング境界は物理的ブロック１３２０ｂである。
【００６２】
図８を次に参照して、ゾーンスワッピングを含む損耗均等化を実行する方法例と関連するステップを説明する。プロセス８００はステップ８０２から始まり、ここで損耗均等化プロセスを実行するべきか否かが判定される。前述したように、いろいろな方法を用いてこのような判定を行うことができるけれども、説明される実施形態では、このような判定は乱数または擬似乱数の使用を通して行われる。ステップ８０２で学習された情報に基づいて損耗均等化を実行するべきか否かに関する判定がステップ８０３で行われる。損耗均等化を実行するべきではないと判定されたならば、プロセスの流れはステップ８０２に戻り、ここで損耗均等化を実行することが適切であるか否かもう一度判定が行われる。このような後の判定は、或る長さの時間の後に行われてよい。
【００６３】
代わりに、損耗均等化を実行するべきであるとステップ８０３で判定されたならば、損耗均等化手続きがステップ８０４で始まり、ここで、例えばゾーン“Ｂ”などの第１のゾーンの、ゾーン“Ｂ”に関連するスワッピング境界にある物理的ブロックのコンテンツがゾーン“Ｂ”内の消去されているブロックにコピーされる。当該ゾーン境界にある物理的ブロックが既に消去されているならば、このステップは不要である。スワッピング境界は、プロセス８００の開始の前には、ゾーン“Ｂ”の第１の物理的ブロックであり得る。当該物理的ブロックのコンテンツがステップ８０４でコピーされると、ゾーン“Ｂ”内のスワッピング境界にある物理的ブロックがステップ８０８で消去される。ゾーン“Ｂ”内のスワッピング境界にある物理的ブロックが消去されれば、実際上ゾーン“Ｂ”の先頭にスペースが空けられる。ゾーン“Ｂ”内のスワッピング境界にある物理的ブロックが消去された後、例えばゾーン“Ａ”などの第２のゾーン内のスワッピング境界にある物理的ブロックのコンテンツが、ステップ８１２でゾーン“Ｂ”内のスワッピング境界にある消去されている物理的ブロックにコピーされる。すなわち、“ソースブロック”のコンテンツが“宛先ブロック”にコピーされる。ゾーン“Ａ”内のスワッピング境界にある物理的ブロックのコンテンツがコピーされると、ゾーン“Ａ”内のスワッピング境界にある物理的ブロックがステップ８１６で消去される。その後、ステップ８２０で、マッピング情報が更新される。一般に、マッピング情報の更新は、データがその中にコピーされたところのブロックと、消去されているブロックの消去された状態とについてのマッピング情報を含むデータ構造を更新することを含む。このようなマッピング情報は、不揮発性メモリ或いはコントローラの揮発性メモリに記憶され得る。
【００６４】
マッピング情報の更新が行われると、ステップ８２４で、ゾーン“Ｂ”に関連するスワッピング境界にある物理的ブロックのコンテンツがゾーン“Ａ”内のスワッピング境界にある消去されているブロックにコピーされる。ゾーン“Ａ”に関連するコンテンツがゾーン“Ｂ”に関連する元のスワッピング境界にある物理的ブロックにコピーされたときにスワッピング境界が実際上移されたことにあるので、ステップ８２４におけるゾーン“Ｂ”に関連するスワッピング境界はステップ８０４におけるゾーン“Ｂ”に関連するスワッピング境界とは異なることが理解されるべきである。同様に、ゾーン“Ｂ”に関連するコンテンツが前はゾーン“Ａ”の一部であった物理的ブロックにコピーされるときに、ゾーン“Ａ”に関連するスワッピング境界も実際上移動する。
【００６５】
ステップ８２８で、ゾーン“Ｂ”に関連するスワッピング境界にある物理的ブロックが消去され、すなわちステップ８２４でコンテンツがそれからコピーされたところのソースブロックが消去される。次いで、ステップ８３２で、例えばコピーされたコンテンツなどの特定の情報が置かれている物理的記憶位置を特定し、また消去されている物理的ブロックに関連する消去された状態を特定するようにマッピング情報が更新される。その後、ステップ８３６で、ゾーン“Ａ”およびゾーン“Ｂ”が完全にスワッピングされたか否かということに関する判定が行われる。すなわち、前はゾーン“Ａ”内にあった全てのコンテンツがゾーン“Ｂ”にコピーされたか否か、また前はゾーン“Ｂ”内にあった全てのコンテンツがゾーン“Ａ”にコピーされたか否かが判定される。
【００６６】
ステップ８３６でゾーン“Ａ”およびゾーン“Ｂ”が完全にスワッピングされていると判定されると、ゾーンスワッピングに関連しての損耗均等化を実行するプロセスは完了する。代わりに、ステップ８３６でゾーン“Ａ”およびゾーン“Ｂ”が完全にはスワッピングされていないと判定されたならば、プロセスの流れはステップ８１２に戻り、ここでゾーンＡのスワッピング境界にある物理的ブロックのコンテンツがゾーン“Ｂ”内のスワッピング境界にある消去されているブロックにコピーされる。進行を記録する不揮発性テーブルは、損耗均等化プロセス中、電力の損失後に、或いは損耗均等化プロセスがホストのアクセスによって一時的に中断されても、プロセスが続行され得るように、維持されなければならない。
【００６７】
ゾーンスワッピングが行われる速度は大幅に変動し得る。一実施形態では、ブロックのコンテンツがスワッピングされる速度は、幾つかのホスト動作にわたってスワッピングが徐々に行われるように調整され得る。スワッピング動作がホストの動作のバックグラウンドで行われる場合には、動作はゾーンがスワッピングされつつある間に行われ得る。このような場合、記憶装置の動作は、ゾーンのコンテンツの不連続的な物理的記憶位置が当該記憶装置の動作に殆ど影響を及ぼさないような動作である。換言すれば、ゾーンは２つのばらばらの物理的領域を一時的に包含するけれども、ゾーン管理を支配するアルゴリズムは同様に動作し得る。
【００６８】
１つのゾーンからの論理的ブロックが他方のゾーンにコピーされるように２つのゾーンの記憶位置を交換するということに関してゾーンスワッピングが説明されてきた。一般に、ゾーンスワッピングは３つ以上のゾーンの記憶位置を交換することを含み得る。例えば、第１のゾーンのコンテンツを第２のゾーンにコピーすることができ、第２のゾーンのコンテンツを第３のゾーンにコピーすることができ、第３のゾーンのコンテンツを第１のゾーンにコピーすることができる。実質的に任意の数のゾーンの記憶位置を交換することができるけれども、容認され得る性能ペナルティーであると考えられるものに基づいてゾーンの数を決定し得ることが理解されるべきである。すなわち、一度に３つ以上のゾーンの記憶位置をスワッピングすると、場合によっては容認不能と考えられ得る性能ペナルティーをもたらす結果となり得る。
【００６９】
同様に、２つ以上のブロックのコンテンツは、ゾーンスワッピングプロセス全体の間に複数のゾーン間で入れ替えられ得る。換言すれば、ゾーンスワッピングプロセスが、一度に１ブロックずつゾーン間でコンテンツをスワッピングする動作を含むものとして説明してきたけれども、一度に２つ以上のブロックのコンテンツを複数のゾーン間でスワッピングすることもできることが理解されるべきである。
【００７０】
３．ゾーン境界移行
例えば、最も損耗したゾーンを最も損耗していないゾーンとスワッピングするなどのゾーンを完全にスワッピングする代わりに、ゾーンスワッピング損耗均等化プロセスの際に、ゾーンをゾーン移行損耗均等化プロセスの一部として実際上移行させてもよい。すなわち、ゾーンに関連する境界は、元は１つのゾーンの一部であった１つのまたは複数の物理的ブロックが他のゾーンの一部になるように、シフトされ得る。ゾーン境界をシフトさせることによって、前は繰り返しプログラムされ消去されていた物理的ゾーンに関連していた物理的ブロックがあまり頻繁にはプログラムされたり、消去されない物理的ブロックになり得る。従って、記憶装置における物理的ブロックの損耗を装置全体に均等に分散させることができる。装置全体に物理的ブロックの損耗を分散させることは、カードの幾つかの領域が割合に激しく使用されると予想されるときに特に有益である。移動の期間が充分に短ければ、最小量の損耗均等化が実質的に保証される。
【００７１】
ゾーン境界移行を使用する、すなわち論理的ゾーン境界を実際上移動させる損耗均等化プロセスは、論理的ゾーンの物理的記憶位置を徐々に変更することを可能にする。ゾーン境界の位置は、１つのゾーンのサイズに実質的に等しい間隔を置いて複数のブロックから複数のセクタを読み出すことによって、突き止められ得る。各ブロックに関連するヘッダは１ゾーンフィールドを示すことができる。１つのゾーンからの１つのブロックの位置が突き止められたならば、隣接するゾーンの各々からのブロックが発見されるまで各々の方向に隣接するブロックの少なくともヘッダを読み出すことによって境界を発見することができる。代わりに、実質的に全てのマッピング情報を不揮発性メモリ内のテーブルに記憶させることができる。１つのゾーンのゾーン境界が知られていて、かつ固定されたゾーンサイズが知られているときには、ゾーンの当該固定されたサイズに実質的に等しい間隔を置いてブロックからセクタを読み出すことなく他のゾーンに関連するゾーン境界を一般に決定することができる。すなわち、ゾーンのサイズと順序とが知られていれば、論理的ブロック番号と論理的ゾーンに関連するゾーン情報とを含むヘッダを有する１つのブロックのコンテンツを読み出すことによって、ゾーン境界の位置を突き止めることが可能となる。一般に、ブロックのヘッダは、そのブロックの記憶位置を決定することを可能にする絶対論理的ブロック番号またはゾーンの物理的記憶位置の決定を容易にするようにゾーン情報と共に使用され得る相対論理的ブロック番号を含むことができる。
【００７２】
図９を参照して、ゾーン境界移行を用いる損耗均等化の方法の例と関連するステップを説明する。プロセス９００はステップ９０２から始まり、ここで損耗均等化プロセスが実行されるべきか否かが判定される。例えば、決定論的方法などの種々の異なる方法を用いてこのような判定が行われ得るのであるが、説明される実施形態では、このような判定は乱数または擬似乱数の使用を通して行われる。
【００７３】
ステップ９０３で、損耗均等化が実行されるべきか否かが判定される。損耗均等化が実行されるべきではないと判定されたならば、プロセスの流れはステップ９０２に戻り、ここで損耗均等化を実行することが適切であるか否かもう一度判定が行われる。代わりに、ステップ９０３で損耗均等化が実行されるべきであると判定されたならば、損耗均等化手続きが実際上ステップ９０４で始まり、ここで論理的ゾーン“Ｘ”に位置する第１の物理的ブロックが消去されているか否かということに関しての判定が行われる。すなわち、論理的ゾーン“Ｘ”の先頭に、すなわちゾーン“Ｘ”の下側ゾーン境界にある第１の物理的ブロックが消去されているか否かが判定される。
【００７４】
ゾーン“Ｘ”内の第１の物理的ブロックが消去されていなければ、ゾーン“Ｘ”内の第１の物理的ブロックが情報を含んでいるという指示である。従って、プロセスの流れはステップ９０８に移り、ここで論理的ゾーン“Ｘ”の先頭にある物理的ブロックのコンテンツがゾーン“Ｘ”内の実質的に任意の利用可能なブロックにコピーされる。当該物理的ブロックの当該コンテンツがゾーン“Ｘ”内の消去されているブロックにコピーされると、ゾーン“Ｘ”の先頭にある物理的ブロックがステップ９１２で消去される。
【００７５】
ステップ９１２でゾーン“Ｘ”の先頭にある物理的ブロックが消去された後、論理的ゾーン“Ｘ−１”の先頭にある第１の物理的ブロックのコンテンツがゾーン“Ｘ”内の新たに消去されたブロックにコピーされる。例を挙げると、図６を参照すれば、ゾーン“０”６１４ａの先頭にある物理的ブロックが消去された後、ゾーン“Ｎ”６１４ｃの先頭にある第１の物理的ブロックのコンテンツがその消去されたブロックにコピーされる。その結果として、論理的ゾーン“Ｘ”および論理的ゾーン“Ｘ−１”は、実際上各々１物理的ブロックだけシフトされる。ステップ９０８でゾーン“Ｘ”の第１の物理的ブロック内にあったコンテンツが移動されたことおよびゾーン“Ｘ−１”の先頭にあった第１の物理的ブロックのコンテンツも移動されたことを示すように、ＬＢＡから特定のゾーンにおける物理的ブロックへのマッピングがステップ９２０で更新される。
【００７６】
物理的記憶位置のマッピングが更新されると、シフトされるべきゾーンがもっとあるか否かということに関してステップ９２４で判定が行われる。シフトされるべきゾーンがもう無いと判定されたならば、全てのゾーンが１物理的ブロックだけシフトされ、ゾーン境界が本質的に移されるようにゾーンをシフトさせるプロセスが完了したという指示となる。代わりに、シフトさせるべきゾーンがまだあると判定されたならば、ステップ９２８で新しいゾーン“Ｘ”および新しいゾーン“Ｘ−１”が特定される。その後、プロセスの流れはステップ９０４に戻り、ここでゾーン“Ｘ”内の第１の物理的ブロックが消去されるか否かが判定される。
【００７７】
ステップ９０４に戻って、ゾーン“Ｘ”内の第１の物理的ブロックが消去されると判定されたならば、ゾーン“Ｘ”内の第１の物理的ブロックがコピーのために利用可能であるという指示となる。従って、プロセスの流れはステップ９０４からステップ９１６へ進み、ここでゾーン“Ｘ−１”の先頭にある第１の物理的ブロックのコンテンツがゾーン“Ｘ”内の第１の物理的ブロックにコピーされる。
【００７８】
図１０は、記憶装置の初期状態と、例えば図９のプロセス９００などの例としてのゾーン境界移行プロセス後の当該記憶装置の状態との線図である。装置１０００’は、最初は、例えば５つのゾーンなどの任意の数のゾーン１００４’に分割されている。ゾーン境界移行の１つ以上のサイクルまたは反復が完了した後、例えば各ゾーンが少なくとも１物理的ブロックだけ実際上シフトされた後、ゾーン境界は、装置１０００”内のゾーン１００４’’が本質的に１つ以上の物理的ブロックだけ移動しているように、移されている。図に示されているように、ゾーン境界移行は、ゾーン“４”１００４ｅ’を複数の隣接していない物理的ブロックにシフトさせてゾーン“４”１００４ｅ’’と１００４ｅ’’’とを形成させる。
【００７９】
一般に、最初に与えられたゾーン内にあったどの物理的ブロックも、ゾーン境界移行プロセスが複数回繰り返された後はそのゾーン内に残っていないように、ゾーン境界移行プロセスを反復することができる。すなわち、記憶装置全体にわたって、一度に１物理的ブロックずつ、ゾーンの物理的記憶位置を徐々に移動させることができる。ゾーン境界移行プロセスが複数回反復された後の或るポイントでゾーンの物理的記憶位置がゾーン境界移行プロセス開始前のゾーンの物理的記憶位置と同じとなるように、ゾーン境界を移行させてもよい。
【００８０】
連続するゾーン境界移行プロセス間の時間の長さは、システム全体の要件に応じて変更する。一実施形態では、記憶装置の寿命が終わるまでに、与えられたゾーンが実質的に当該装置全体を横断してそれ以上は移行しないように、ゾーン境界移行プロセスを用いてゾーンをシフトさせる速度を調整することができる。他の実施形態では、損耗均等化に関連する性能ペナルティーを実質的に最小にし、かつゾーン境界移行プロセス自体に起因する付加的な損耗を実際上最小にするために、当該速度をなるべく低くすることができる。しかし、ゾーンがシフトされる速度は性能上の考慮事項のために調整されてよく、或いは当該速度は任意にセットされてよいことが理解されるべきである。
【００８１】
図１１ａ〜ｃを参照して、ゾーン境界移行プロセス中のゾーン境界の移動の例を説明する。図１１ａに示されているように、物理的装置１１００は、最初は任意の数の論理的ゾーン１１０４に分割されている。説明される実施形態では、装置１１００は３つの論理的ゾーンを含んでいるけれども、ゾーン１１０４の数は大幅に変更してもよい。システム情報を記憶する幾つかのブロックの割り当て、消去プールへの割り当て、および欠陥のあるブロックの存在に起因してゾーン全体にわたって散在させられ得る特別なブロックを除いて、論理的ゾーン１１０４の各々は通常ゾーン境界により分離されている隣接する物理的アドレスを有する複数のブロックから形成される。各論理的ゾーン１１０４は、一定の特定された物理的ブロック１１０６を含むように定められる。ホストデータ論理的ブロックアドレス（ＬＢＡ）の全範囲は、通常物理的メモリゾーンの数に等しい連続するＬＢＡの数個のセグメントに分割され、各ＬＢＡセグメントは異なる１つの論理的ゾーン１１０４にマッピングされる。
【００８２】
図１１ｂは、説明される実施形態による初期のゾーン境界移行ステップ中の図１１ａの装置１１００の線図である。最初に、スワッピング境界１１０８ｃに位置するゾーン１１０４ａの第１の物理的ブロックであるブロック１１０６ａのコンテンツがステップ（１）として矢１１２４で示されているように消去されているブロック１１０６ｃに移される。ゾーン１１０４ａの中に利用可能な消去されているブロックが無ければ、有効なデータのページをより少数のブロックに圧縮し、それによりその時に消去される１つ以上のブロックを解放する統合プロセスを当該ゾーン全体に対して始めに実行する。消去されているブロックをこれにより作ることができないというありそうも無いような場合には、当該ゾーン内の１つの使用されているブロックを他のゾーンに移さなければならないか、或いは消去されているブロックをそこから見つけることのできる追加のブロックを含むこととなるように当該ゾーンの境界を拡張しなければならない。ステップ（２）として、ゾーン１１０４ｃに関連する第１の物理的ブロックであり、スワッピング境界１１０８ｂに位置するブロック１１０６ｅのコンテンツが、矢１１２６で示されているように、ブロック１１０６ａに移され、その後ゾーン１１０４ｃの第１の物理的ブロック１１０６ｅは消去される。
【００８３】
ステップ（３）として、矢１１２８により示されているように、スワッピング境界１１０８ａに位置するゾーン１１０４ｂの第１の物理的ブロックであるブロック１１０６ｄのコンテンツをゾーン１１０４ｃに関連する第１の物理的ブロックに移し、これによりゾーン１１０４ｄの第１の物理的ブロックを実際上消去済みとしておくことができる。スワッピング境界１１０８ａにある物理的ブロックに関連するブロック１１０６ｄのコンテンツが移されると、ステップ（４）は、矢１１３０により示されているように、ブロック１１０６ｂのコンテンツをゾーン１１０４ｂの第１の物理的ブロック１１０６ｄに移す。
【００８４】
図１１ｃに示されているように、ブロック１１０６のコンテンツが移されると、すなわちコピーされ消去されると、論理的ゾーン境界は実際上シフトされる。各論理的ゾーン１１０４の物理的ゾーン境界は実際上１物理的ブロックだけシフトされている。例えば、論理的ゾーン境界１１０８ｃおよび１１０８ａは、ゾーン１１０４ａがシフトされるようにシフト或いは移行させられている。同様に、ゾーン１１０４ｂおよび１１０４ｃも、論理的ゾーン境界１１０８ａ，１１０８ｂおよび１１０８ｃの移行に起因して、各々シフトされている。このシフト或いは移行は、前述したようにブロック間でデータを移動させ、それに加えて、各ゾーンについてのＬＢＡの範囲を当該ゾーンに加えられたブロックを含むが当該ゾーンから除去されたブロックを省略したブロックの集合にマッピングしなおすことによって、達成される。一度に１物理的ブロックだけゾーンの境界を移動させるものとしてゾーン境界移行を説明したけれども、一度に２ブロック以上ではあるがゾーン内のブロックの小さな割合の個数（例えば、１０パーセント未満、５パーセント或いは２パーセント）だけゾーン境界を移動させてもよい。目標は、ホストがデータのプログラムまたは読み出しを要求していない期間と、またコントローラがより高い優先度の動作を別に実行していない期間中に、一度に少数のブロックだけ境界移行を実行することである。従って、損耗均等化はメモリの全体的性能に悪影響を及ぼさずに実行される。
【００８５】
さらに、ゾーン境界移行に関して、記憶装置に関連する消去されているブロックが独立のプール内に維持されるならば、例えば個々のゾーン内に維持されないならば、その消去されているブロックのプールは、ゾーン境界移行中に１つのゾーンとして扱われてよい。
【００８６】
４．単一ゾーン損耗均等化
図９〜１１ｃに関して説明された損耗均等化プロセスに類似する１つの損耗均等化プロセスを、単一のゾーンを有するメモリシステムに応用することもできる。前述した移行論理的境界は、損耗均等化処理のためにそれらに直接隣接するブロックを特定する物理的ポインタである。単一ゾーンでは、このようなポインタは、一度に１回だけそれら物理的アドレスの順に当該ブロックを通してインクリメントするなどの何らかの決定論的方法でメモリセルブロックを通して循環する。損耗均等化動作を実行するための基準が満たされたとき、現在指されているブロックに対してプロセスが開始される。それが消去されていなければ、そのコンテンツは当該ゾーン内の消去された状態のブロック、すなわち消去プール内のブロックにコピーされる。その後、コピーされたデータについての記憶位置のこの変更を反映するようにアドレステーブルが更新され、元のブロックが消去される。その後、ポインタは次の損耗均等化サイクルの開始を待つために次のブロックへ移動し、そのときにプロセスはその次のブロックに対して反復される。指されたブロックが最初は消去されている状態であるならば、損耗均等化は行われなくてポインタは単に次のブロックに移るだけである。メモリシステムの寿命が終わる前にポインタが当該ゾーン内の全てのブロックを通ったら、次にポインタはそのサイクルを反復することができる。
【００８７】
この損耗均等化プロセスは、個々のブロックが何回消去され、プログラムし直されたか（ホットカウント）とは無関係に実行される。損耗均等化動作を実行するためのしきい値条件は、最後の損耗均等化動作以降の消去プール内の所定数のブロックのプログラミングであってよい。すなわち、損耗均等化動作は、所定回数のブロックプログラミング動作の間隔で、指されているブロックに対して実行される。また、一度に１つのブロックが処理される代わりに、２つ以上のブロックが各々の損耗均等化動作に含まれてもよい。
【００８８】
このセクションの前の段落で説明されたプロセスは、ゾーン境界を変更せずに各ゾーン内で損耗均等化が行われるマルチゾーンシステムにも応用され得る。
【００８９】
５．ホットカウント
物理的ブロックに基づいてホットカウントを維持する代わりに、論理的ブロックに関してホットカウントを維持してもよいことが理解されるべきである。例えば相対的ホットカウントを維持するなどの論理的ブロックについてホットカウントを維持すれば、最近動かされた論理的ブロックと最も前に動かされた論理的ブロックとを追跡することができる。一実施形態では、論理的ブロックを、それらブロックが最近どのように動かされたかによって実際上セットにグループ分けすることができる。ゾーン内の全てのブロックに初期相対的ホットカウント値を与えることができ、そしてブロックが動かされるごとに当該相対的ホットカウントをその最近に動かされたセットまたはグループの値に更新することができ、それは一般にベース値より１つ上である。最近動かされたグループの中に一定数のブロックが存在するようになると、その最近動かされたグループの値をインクリメントすることができ、その後に動かされたブロックをその新しいグループ値に更新することができる。その結果として、最近動かされたブロックと最も前に動かされたブロックとを割合に明瞭に区別して論理的ブロックまたは物理的ブロックの別々のグループまたはビンを作ることができる。一般に、ブロックの相対的ホットカウント値は、割合に小さな数のフィールドの使用を可能にするようにロールオーバーし得るようにされる。最も前に動かされたブロックを指す低い値と、最近ロールオーバーされた数値フィールドを伴う最近動かされたブロックを指す低い値との区別を考慮して、最近使用された値と最も前に使用された値との間に実質的に常に使用されていない値の大きな集合が存在するように、値を管理することができる。
【００９０】
相対的ホットカウントが実施されるときには、特定の例において例えば‘０’から‘７’までの８個の可能な値があるときに実質的に全てのブロックが‘０’の基準値から出発することができる。その８個の値のうちの７個を使用することができ、最近プログラムされたブロックを表す値と最も古いデータを含むブロックを特定する値との間にギャップを設けるために１つの値を取っておく。この例では、書き込まれたブロックは、それらブロックが最近プログラムし直されたことを示す新しい‘１’の値を受け取る。或る所定数のブロックが新しい‘１’の値に更新されると、プログラムし直されるブロックは新しい値‘２’を受け取ることができる。同じまたは異なる所定数のブロックが値‘２’を持っていたならば、ついには値‘３’を新たにプログラムし直されたブロックに割り当てることができる。これが継続されて、各々の所定数のブロックがプログラムし直された後、プログラムし直されたブロックには次のビン番号が割り当てられる。或るポイントでカウントがロールオーバーして、最も前に使用されたブロックが値‘２’を持ち、最近動かされたブロックが値‘０’を持ち、値‘１’がその２つの間のギャップを提供して、最旧のデータを有するブロックの値と最新のデータを有するブロックの値とが明瞭に識別されることになる。
【００９１】
結局、最旧のビン内の全てのブロックが書き直される。ホスト書き込み、スクラッビング (scrubbing)、或いは他の何らかのメカニズムによらなければ、損耗均等化による。前述した例では、その後に最旧のブロックを含むビン‘２’は空になり、その値はギャップとして役立ち、ビン‘１’は最近書き込まれたブロックを特定するために使用され得る。使用される値の範囲（ビン）の間のより大きなギャップは、適度の近頃に動かされたグループからのブロックが、損耗均等化動作が最も前に動かされたブロックを動かすよりも速くホストまたは他の何らかのメカニズムによって更新される場合から得られる。絶対的ホットカウントを利用することができ、その場合、システムは好ましくは決定を行うために論理的または物理的ブロックの利用情報を使用することができる。
【００９２】
ゾーン内損耗均等化方式では、消去済みブロックに移されるブロックを選択することができる。相対論理的ホットカウントが実施されるときに、ゾーン内損耗均等化方式は最も前に移動されたグループから、或いは最低の値を有するグループからの論理的ブロックを選択することができる。選択されたブロックが動かされると、その選択されたブロックは最近動かされたグループの値を受け取る。一般に、ホストによって非常に頻繁にアクセスされた論理的ブロックは、それらブロックが最近動かされたことを示す値を持ち、従って、損耗均等化システムによって動かされるように選択されない可能性がある。同時に、ホストにより非常に稀にしかアクセスされない論理的ブロックは、結局はそれらブロックが最も前に動かされたことを示す低い値を持つ傾向を有する。最も前に動かされた値を有する論理的ブロックは通常或る期間にわたってアクセスされないので、その結果として、その同じ期間内に他のブロックがより高いレベルの損耗に達している。あまり頻繁にはアクセスされなかった論理的ブロックが消去されている物理的ブロックに動かされると、あまり頻繁にはアクセスされなかった論理的ブロックは通常損耗均等化によって再び動かされるまで、それら現在の物理的記憶位置に留まている。すなわち、あまり頻繁にアクセスされなかった論理的ブロックが存する物理的ブロックは一般にアクセスされず、一方、前に占められた物理的ブロックは将来使用されるように消去プールへ移され、従ってより大きな損耗をこうむる。
【００９３】
消去されている物理的ブロックの消去プールは、１つのゾーン内に含まれるものとして一般的に説明されている。一実施形態では、消去されているブロックのプールは記憶装置内で複数のゾーンとは別に維持され得る。このような複数の消去されているブロックは、記憶装置にある複数のブロックの１つの物理的に連続しているグループから必要に応じて割り当てられ得る。
【００９４】
Ｄ．要約
本発明の種々の態様を一般的にセクタのセットに関して説明してきたが、セクタのセット内のセクタの数は１以上の任意の適切な数であってよい。しかし、セクタのセット内の最も効率的なセクタ数は、通常消去の単位の中のセクタ数と、物理的メモリアレイ内の消去の単位数とに依存する。
【００９５】
種々の損耗均等化プロセスを、フラッシュメモリカードなどの不揮発性メモリシステムに関して実施されるのに適するものとして説明してきた。一般に、損耗均等化プロセスは、実質的にあらゆる適切な不揮発性メモリシステムに応用され得る。適切な不揮発性メモリシステムは、埋め込みメモリおよびメモリドライブを含むが、これらに限定はされない。一実施形態では、このような不揮発性メモリシステムはホストシステムに取り外し可能に結合されてよく、別の実施形態では不揮発性メモリシステムはホストシステム内の埋め込みシステムであってよい。さらに、損耗均等化プロセスを種々の揮発性メモリシステムに応用することができる。
【００９６】
不揮発性メモリシステムをメモリコントローラを含むものとして説明してきたけれども、損耗均等化プロセスはメモリコントローラを含まない不揮発性メモリシステムに適用され得るものであることが理解されるべきである。コントローラを使用する適切なメモリシステムは、ＰＣカード、コンパクトフラッシュカード、マルチメディアカードおよびセキュアデジタルカードを含むが、これらに限定されるものではない。前述した損耗均等化プロセスを使うことができ、メモリシステムと関連するコントローラを使用しないメモリシステムは、損耗均等化を実行するために、スマートメディアカードおよびメモリスティックカードなど、例えばホストコンピュータシステムなどのホストに付随するコントローラを使用することができる。換言すれば、ホストは、損耗均等化が行われるメモリを直接アドレス指定して管理することができる。さらに、メモリシステムがコントローラを含んでいてもいなくても、ホストシステムに常駐する一次プロセッサは当該メモリシステムのためのメモリコントローラとして作用することができる。
【００９７】
本発明の実施形態をほんの幾つか説明しただけであるが、本発明の範囲から逸脱することなく本発明を他の多くの具体的な形で実施し得るということが理解されるべきである。例えば、直接アドレス指定および消去プーリングに関連しての損耗均等化を実質的に自動的なプロセスとして説明してきたけれども、損耗均等化はユーザ駆動プロセスであってもよいことが理解されるべきである。すなわち、ユーザは、ホストインタフェースを通してコマンドを発することによって損耗均等化プロセスをいつ開始するかを決定することができる。
【００９８】
一般に、損耗均等化の種々のプロセスおよび方法に関連するステップは多様であり得る。一般に本発明の範囲から逸脱することなくステップを付け加えたり、取り除いたり、変更したり、並べ替えることができる。例えば、ゾーン境界が移され、或いはゾーンがスワッピングされるときに、マッピング情報を更新することは不要であるかもしれない。物理的ブロックがどの論理的ゾーンに属するかを示す何らかのインジケータを個々の物理的ブロックが有するならば、スワッピングまたは移行の進行を実際上ログすることは不要であり得る。また、本発明の範囲から逸脱することなく、種々の論理的ブロックの位置の選定を容易にするデータ構造またはマッピングの更新に配慮するために前述した種々の方法およびプロセスにステップを付け加えることもできる。さらに、特定の実装例は、複数の実施形態を組み合わせることができる。
【００９９】
従って、これら例は限定的ではなくて例証的なものと見なされるべきであり、本発明は本願明細書に説明されている詳細に限定されるべきではなく、添付の特許請求の範囲内で改変され得る。
【図面の簡単な説明】
【０１００】
【図１ａ】不揮発性記憶装置を含む一般的なホストシステムの線図である。
【図１ｂ】例えば図１ａの記憶装置１２０などのメモリシステムの線図である。
【図２】直接アドレス指定損耗均等化方式を実施し得る不揮発性メモリシステムの実施形態の線図である。
【図３ａ】物理的記憶位置とセクタのセットとを含む不揮発性メモリの実施形態の線図である。
【図３ｂ】セクタのセットがスワッピングされた後の、例えば図３ａの不揮発性メモリ３０４の物理的記憶位置とセクタのセットとを含む不揮発性メモリの実施形態の線図である。
【図４】損耗均等化プロセスにさらされるべき不揮発性メモリ内のセクタのセットを特定することに関連するステップを示すプロセスの流れ図である。
【図５】損耗均等化プロセス、すなわち図４のステップ４２８に関連するステップを示すプロセスの流れ図である。
【図６】ゾーンを含む不揮発性メモリシステムの実施形態の線図である。
【図７】ゾーン内消去プーリングの文脈における一般的な損耗均等化プロセスに関連するステップを示すプロセスの流れ図である。
【図８】ゾーンスワッピングの文脈において損耗均等化を実行する１つの方法に関連するステップを示すプロセスの流れ図である。
【図９】ゾーン境界移行を用いる損耗均等化の１つの方法に関連するステップを示すプロセスの流れ図である。
【図１０】記憶装置の初期状態と、例えば図９のプロセス９００などのゾーン境界移行プロセス後の記憶装置の状態との線図である。
【図１１ａ】ゾーン境界移行プロセス前の記憶装置の初期状態の線図である。
【図１１ｂ】初期ゾーン境界移行ステップ中の記憶装置、すなわち図１１ａの装置１１００の線図である。
【図１１ｃ】初期ゾーン境界移行ステップが行われた後の記憶装置、すなわち図１１ａの装置１１００の線図である。
【図１２ａ】ゾーン内損耗均等化プロセス前の物理的ブロックを含むゾーンの線図である。
【図１２ｂ】ゾーン内損耗均等化プロセス後の物理的ブロックを含むゾーン、すなわち図１２ａのゾーン１２００の線図である。
【図１３ａ】ゾーンスワッピング損耗均等化プロセス前の物理的ブロックを含むゾーンの線図である。
【図１３ｂ】ゾーンスワッピング損耗均等化プロセス後の物理的ブロックを含むゾーン、すなわち図１３ａのゾーン１３００の線図である。
【図１ａ】
0004518951.tif 000002
【図１ｂ】
0004518951.tif 000003
【図２】
0004518951.tif 000004
【図３ａ】
0004518951.tif 000005
【図３ｂ】
0004518951.tif 000006
【図４】
0004518951.tif 000007
【図５】
0004518951.tif 000008
【図６】
0004518951.tif 000009
【図７】
0004518951.tif 000010
【図８】
0004518951.tif 000011
【図９】
0004518951.tif 000012
【図１０】
0004518951.tif 000013
【図１１ａ】
0004518951.tif 000014
【図１１ｂ】
0004518951.tif 000015
【図１１ｃ】
0004518951.tif 000016
【図１２ａ】
0004518951.tif 000017
【図１２ｂ】
0004518951.tif 000018
【図１３ａ】
0004518951.tif 000019
【図１３ｂ】
0004518951.tif 000020