(57)【特許請求の範囲】
【請求項１】
不揮発性メモリ内における複数のブロックの各ブロックが消去された平均回数に従って、メモリシステムの不揮発性メモリを管理する方法であって、前記方法が、
前記複数のブロックの第１のブロックに対して、当該第１のブロック内に記憶された当該ブロックの消去回数を示す消去カウントと前記メモリシステムのシステムメモリに記憶された前記第１のブロックに対する消去カウント値とを比較するステップと、
前記第１のブロック内に記憶された消去カウントが前記システムメモリ内に記憶された前記第１のブロックに対する消去カウント値より大きいことを決定する前記比較ステップに応答して、前記システムメモリ内に記憶された前記第１のブロックに対する消去カウント値を前記第１のブロック内に記憶された消去カウントに対応するように更新するステップと、
前記第１のブロック内に記憶された消去カウントが前記消去カウント値より大きいことを決定する前記比較ステップに応答して、前記複数のブロックの各ブロックに対する消去カウントを取得するステップであって、前記複数のブロックの数が前記不揮発性メモリ内の使用可能な総数であるステップと、
前記複数のブロックに対する取得された消去カウントの合計を生成するステップであって、前記取得された消去カウントの合計が前記複数のブロックに対する複数のカウントから得られるものであるステップと、
平均消去カウントを生成するステップであって、前記平均消去カウントが前記取得された消去カウントの合計から生成されるものであるステップと、
前記メモリシステムのシステムメモリに、前記平均消去カウントのインジケータを記憶するステップであって、前記インジケータが摩耗一様化に用いられるものと、
を備える方法。
【請求項２】
前記不揮発性メモリが、ＮＡＮＤフラッシュメモリである、請求項１に記載の方法。
【請求項３】
前記複数のブロックの各ブロックに対する消去カウントを取得するステップが、
前記複数のブロックの各ブロックに対して、当該ブロック内に記憶された消去カウントを取得するステップを含み、更に、
前記複数のブロックの各ブロックに対する消去カウントを取得するステップの後に、システムメモリ内に記憶された前記複数のブロックそれぞれに対する消去カウント値を前記ブロックに対する取得された消去カウントに対応するように更新するステップを含むことを特徴とする、請求項１に記載の方法。
【請求項４】
前記平均消去カウントを生成するステップが、
前記取得された消去カウントの合計を前記複数のブロックの数によって除算するステップを含むことを特徴とする、請求項３に記載の方法。
【請求項５】
不揮発性メモリシステムであって、
複数のブロックを含む不揮発性メモリであって、各ブロックが当該ブロックに対する消去カウントを含むオーバーヘッドデータを記憶するための冗長領域を含むものと、
前記不揮発性メモリに関連付けられ、消去カウントブロックを含むシステムメモリと、
前記消去カウントブロックを管理する手段であって、
前記複数のブロックの第１のブロックの冗長領域内に記憶された消去カウントと前記消去カウントブロック内に記憶された前記第１のブロックに関連する消去カウント値とを比較する動作であって、前記消去カウントが前記ブロックが消去された回数を示すように構成されているものと、
前記第１のブロック内に記憶された消去カウントが前記第１のブロックに対する消去カウントブロック内に記憶された消去カウント値より大きいことを決定する前記比較動作に応答して、前記第１のブロックに対する前記消去カウントブロック内の消去カウント値を前記第１のブロック内に記憶された消去カウントに対応するように更新する動作と、
前記第１のブロックに対する冗長領域に記憶された消去カウントが前記消去カウントブロック内に記憶された前記第一のブロックに対する消去カウント値より小さいことを決定する前記比較動作に応答して、前記複数のブロックの各ブロックに対する消去カウントを各ブロックの冗長領域から取得する動作と、
前記複数のブロックの各ブロックが消去された平均回数を示す平均消去カウントを生成する動作であって、前記平均消去カウントが前記複数のブロックに対する複数の消去カウントから得られるものである動作と、
を含む動作シーケンスを実行する事によって前記消去カウントブロックを管理する手段と、
前記システムメモリに、前記平均消去カウントに対応する第１のインジケータを記憶する手段であって、前記インジケータが摩耗一様化に用いられるものと、
を備える不揮発性メモリシステム。
【請求項６】
前記平均消去カウントを生成する動作が、
前記複数のブロックに対する取得された消去カウントの合計を生成する動作と、
前記合計を前記複数のブロックの数によって除算する動作と、
を含むことを特徴とする請求項５に記載の不揮発性メモリシステム。
【請求項７】
前記管理手段が、
消去カウントブロック管理ソフトウエア・サブモジュールと、
前記消去カウントブロック管理ソフトウエア・サブモジュールを実行するためのマイクロプロセッサを含むことを特徴とする、請求項５に記載の不揮発性メモリシステム。
【請求項８】
前記消去カウントブロック管理ソフトウエア・サブモジュールが、
前記複数のブロックの各ブロックに対する消去カウントを得るプログラムコードであって、前記複数のブロックの各ブロックに対する消去カウントが、前記複数のブロックの各ブロックが消去された回数を示すように構成され、前記複数のブロックが、前記不揮発性メモリ内の使用可能なブロックである、プログラムコードと、
前記複数のブロックに対する消去カウントの合計を生成するプログラムコードと、
前記平均消去カウントを生成するプログラムコードであって、前記平均消去カウントが、前記複数のブロックが消去された平均回数を示すように構成され、前記平均消去カウントを生成する前記プログラムコードが、前記合計を前記複数のブロック内のブロック数によって除算するプログラムコードを含む、プログラムコードと、
前記プログラムコードを記憶するメモリ領域と、
を備えることを特徴とする請求項７に記載の不揮発性メモリシステム。
【請求項９】
前記不揮発性メモリが、ＮＡＮＤフラッシュメモリである、請求項８に記載の前記メモリシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般に、大量デジタルデータ記憶システムに関する。より具体的には、本発明は、不揮発性記憶システムの記憶領域に関連付けられた摩耗がほぼすべての記憶領域にわたって拡散されることを可能にするために使用される消去カウントを維持することを効率的に可能にするシステムおよび方法に関する。
【背景技術】
【０００２】
本発明は、同時係属米国特許出願＿（弁理士整理番号ＳＡＮＤＰ００５／ＳＤＫ０２７８．０００ＵＳ）、名称「ＡＵＴＯＭＡＴＥＤ  ＷＥＡＲ  ＬＥＶＥＬＩＮＧ  ＩＮ  ＮＯＮ−ＶＯＬＡＴＩＬＥ  ＳＴＯＲＡＧＥ  ＳＹＳＴＥＭＳ」、同時係属米国特許出願１０／２８１７３９（弁理士整理番号ＳＡＮＤＰ０２３／ＳＤＫ０３６６．０００ＵＳ）、名称「ＷＥＡＲ＝ＬＥＶＥＬＩＮＧ  ＩＮ  ＮＯＮ−ＶＯＬＡＴＩＬＥ  ＳＴＯＲＡＧＥ  ＳＹＳＴＥＭＳ」、２００２年１０月２８日出願、同時係属米国特許出願１０／２８１６７０（弁理士整理番号ＳＡＮＤＰ０２５／ＳＤＫ０３６６．００２ＵＳ）、名称「ＴＲＡＣＫＩＮＧ  ＴＨＥ  ＭＯＳＴ  ＦＲＥＱＵＥＮＴＬＹ  ＥＲＡＳＥＤ  ＢＬＯＣＫＳ  ＩＮ  ＮＯＮ−ＶＯＬＡＴＩＬＥ  ＭＥＭＯＲＹ  ＳＹＳＴＥＭＳ」、２００２年１０月２８日出願、同時係属米国特許出願１０／２８１８２４（弁理士整理番号ＳＡＮＤＰ０２６／ＳＤＫ０３６６．００３）、名称「ＴＲＡＣＫＩＮＧ  ＴＨＥ  ＬＥＡＳＴ  ＦＲＥＱＵＥＮＴＬＹ  ＥＲＡＳＥＤ  ＢＬＯＣＫＳ  ＩＮ  ＮＯＮ−ＶＯＬＡＴＩＬＥ  ＭＥＭＯＲＹ  ＳＹＳＴＥＭＳ」、２００２年１０月２８日出願、同時係属米国特許出願１０／２８１６３１（弁理士整理番号ＳＡＮＤＰ０２８／ＳＤＫ０３７１．０００ＵＳ）、名称「ＭＥＴＨＯＤ  ＡＮＤ  ＡＰＰＡＲＡＴＵＳ  ＦＯＲ  ＳＰＬＩＴＴＩＮＧ  Ａ  ＬＯＧＩＣＡＬ  ＢＬＯＣＫ」、２００２年１０月２８日出願、同時係属米国特許出願１０／２８１８５５（弁理士整理番号ＳＡＮＤＰ０２９／ＳＤＫ０４１０．０００ＵＳ）、名称「ＭＥＴＨＯＤ  ＡＮＤ  ＡＰＰＡＲＡＴＵＳ  ＦＯＲ  ＧＲＯＵＰＩＮＧ  ＰＡＧＥＳ  ＷＩＴＨＩＮ  Ａ  ＢＬＯＣＫ」、２００２年１０月２８日出願、同時係属米国特許出願１０／２８１７６２（弁理士整理番号ＳＡＮＤＰ０３０／ＳＤＫ０４１６．０００ＵＳ）、名称「ＭＥＴＨＯＤ  ＡＮＤ  ＡＰＰＡＲＡＴＵＳ  ＦＯＲ  ＲＥＳＯＬＶＩＮＧ  ＰＨＹＳＩＣＡＬ  ＢＬＯＣＫＳ  ＡＳＳＯＣＩＡＴＥＤ  ＷＩＴＨ  Ａ  ＣＯＭＭＯＮ  ＬＯＧＩＣＡＬ  ＢＬＯＣＫ」、２００２年１０月２８日出願、同時係属米国特許出願１０／２８１６９６（弁理士整理番号ＳＡＮＤＰ０３１／ＳＤＫ０４２０．０００ＵＳ）、名称「ＭＡＩＮＴＡＩＮＩＮＧ  ＥＲＡＳＥ  ＣＯＵＮＴＳ  ＩＮ  ＮＯＮ−ＶＯＬＡＴＩＬＥ  ＳＴＯＲＡＧＥ  ＳＹＳＴＥＭＳ」、２００２年１０月２８日出願、同時係属米国特許出願１０／２８１６２６（弁理士整理番号ＳＡＮＤＰ０３２／ＳＤＫ０４２０．００１ＵＳ）、名称「ＭＥＴＨＯＤ  ＡＮＤ  ＡＰＰＡＲＡＴＵＳ  ＦＯＲ  ＭＡＮＡＧＩＮＧ  ＡＮ  ＥＲＡＳＥ  ＣＯＵＮＴ  ＢＬＯＣＫ」、２００２年１０月２８日出願、同時係属米国特許出願１０／２８１８０４（弁理士整理番号ＳＡＮＤＰ０３３／ＳＤＫ０４２６．０００ＵＳ）、名称「ＭＥＴＨＯＤ  ＡＮＤ  ＡＰＰＡＲＡＴＵＳ  ＦＯＲ  ＰＥＲＦＯＲＭＩＮＧ  ＭＵＬＴＩ−ＰＡＧＥ  ＲＥＡＤ  ＡＮＤ  ＷＲＩＴＥ  ＯＰＥＲＡＴＩＯＮＳ  ＩＮ  Ａ  ＮＯＮ−ＶＯＬＡＴＩＬＥ  ＭＥＭＯＲＹ  ＳＹＳＴＥＭ」、２００２年１０月２８日出願、米国特許第６０８１４４７号、および米国特許第６２３０２３３号に関する。これらは、それぞれ、参照によって本明細書に完��に組み込まれる。
【０００３】
フラッシュメモリ記憶システムなどの不揮発性メモリの使用は、そのようなメモリシステムのコンパクトな物理的サイズ、および不揮発性メモリが反復して再プログラムされる能力のために増大している。フラッシュメモリ記憶システムのコンパクトな物理的サイズにより、ますます普及している装置においてそのような記憶システムを使用することが促進される。フラッシュメモリ記憶システムを使用する装置には、デジタルカメラ、デジタルカムコーダ、デジタル音楽プレーヤ、手持ち式パーソナルコンピュータ、および大域的位置決め装置があるが、これに限定されるものではない。フラッシュメモリ記憶システムに含まれる不揮発性メモリを反復して再プログラムする能力により、フラッシュメモリ記憶システムが使用および再使用されることが可能になる。
【０００４】
一般に、フラッシュメモリ記憶システムは、フラッシュ・メモリ・カードおよびフラッシュ・メモリ・チップ・セットを含むことが可能である。フラッシュ・メモリ・チップ・セットは、一般に、フラッシュメモリ構成要素および制御装置構成要素を含む。通常、フラッシュ・メモリ・チップ・セットは、埋込みシステムに組み立てられるように構成されることが可能である。そのようなアセンブリまたはホストシステムの製造業者は、通常、構成要素形態のフラッシュメモリ、ならびに他の構成要素を獲得し、次いでフラッシュメモリおよび他の構成要素をホストシステムに組み立てる。
【０００５】
不揮発性メモリ、またはより具体的にはフラッシュ・メモリ・システム内のフラッシュ・メモリ・ブロックは、反復してプログラムおよび消去されることが可能であるが、各ブロックまたは物理的位置は、ブロックが摩耗する前に、すなわち、メモリがより小さくなり始める前に、ある回数のみ消去されることが可能である。すなわち、各ブロックは、プログラムおよび消去サイクルの制限を有する。いくつかのメモリでは、ブロックが使用不能と見なされる前に、約１万回、ブロックが消去されることが可能である。他のメモリでは、ブロックが摩耗されたと見なされる前に、約数１０万回またはさらには最高で１００万回、ブロックが消去されることが可能である。ブロックが摩耗して、それにより、フラッシュ・メモリ・システムの全記憶ボリュームの一部に対し使用の損失または性能の著しい低下が生じるとき、フラッシュ・メモリ・システムのユーザは、たとえば記憶データを損失する、またはデータを記憶することができないなど、悪影響を受ける可能性がある。
【０００６】
フラッシュ・メモリ・システム内におけるブロックまたは物理的位置に関する摩耗は、ブロックのそれぞれがどの程度プログラムされるかに応じて変化する。ブロック、またはより一般的には記憶要素が、１度プログラムされ、次いで事実上決して再プログラムされない場合、プログラムおよび消去サイクルの数、したがってブロックに関連付けられる摩耗は、一般に比較的小さい。ブロックが、循環されるなど、反復して書き込まれ、かつ消去される場合、ブロックに関連付けられる摩耗は、一般に比較的大きい。論理ブロックアドレス（ＬＢＡ）が、フラッシュ・メモリ・システムに記憶されているデータにアクセスするために、フラッシュ・メモリ・システムにアクセスする、またはそれを使用するシステムなど、ホストによって使用される際に、ホストがデータを書き込み、かつ上書きするために同じＬＢＡを反復して使用する場合、当業者なら理解するように、フラッシュ・メモリ・システム内の同じ物理的位置またはブロックは、反復して書き込まれ、かつ消去される。
【０００７】
いくつかのブロックが、他のブロックが比較的摩耗していない間に事実上摩耗される場合、摩耗ブロックの存在は、一般に、フラッシュ・メモリ・システムの全性能を損なう。摩耗ブロック自体に関連する性能の低下に加えて、フラッシュ・メモリ・システムの全性能は、摩耗されていない不十分な数のブロックが所望のデータを記憶するために利用可能であるとき、損なわれる可能性がある。しばしば、フラッシュ・メモリ・システムは、限界数の摩耗ブロックがフラッシュ・メモリ・システムに存在するとき、フラッシュ・メモリ・システムの多くの他のセルが比較的摩耗していないときでも、使用不能であると見なされる可能性がある。相当数の比較的摩耗していないブロックを含むフラッシュ・メモリ・システムが、使用不能であると見なされるとき、そのフラッシュ・メモリ・システムに関連付けられる多くのリソースは、事実上浪費される。
【０００８】
フラッシュ・メモリ・システム内のブロックが比較的一様（
即ち、均一）に摩耗される可能性を増大させるために、摩耗一様化動作が、しばしば実施される。摩耗一様化動作は、当業者なら理解するように、一般に、特定のＬＢＡに関連付けられた物理的位置またはブロックが、同じＬＢＡが同じ物理的位置またはブロックに常に関連付けられるとは限らないように、変更されることが可能であるように構成される。ＬＢＡのブロック関連付けを変化させることによって、他のブロックが摩耗する前かなり前に、特定のブロックが摩耗することがある可能性が低くなる。
【０００９】
１つの従来の摩耗一様化プロセスは、顧客またはホストのＬＢＡの２つの比較的大きな部分がマッピングされる物理的位置をスワップすることを含む。すなわち、記憶セルの比較的大きなセクションに関連付けられたＬＢＡが、スワップされる。そのようなスワップは、ホストの使用によりなど、顧客からの手動コマンドにより開始され、その結果、顧客には透過的ではない。また、記憶セルの２つの比較的大きなセクション間でデータを移動させることを含むスワップ動作は、時間がかかり、したがって、非効率的である。さらに、フラッシュ・メモリ・システム全体の性能は、フラッシュ・メモリ・システム全体に関連付けられた著しいリソースを消費する比較的長い継続時間のスワップ動作によって、悪影響を受ける可能性がある。当業者なら理解するように、第１位置からデータを移動させることは、通常、データを他の位置にコピーすることと、データを第１位置から消去することとを含む。
【００１０】
他の従来の摩耗一様化プロセスは、ブロックが摩耗することを可能にすることを含む。ブロックが事実上摩耗した後、セクタが記憶されているブロックが摩耗した後に、または使用不能になった後に、ブロックに割り当てられたセクタは、そのセクタに関連付けられたアドレスをスペア領域にマッピングすることによって、再度割り当てられることが可能である。スペア領域またはブロックの数は限定され、かつ貴重であるので、使用不能ブロックに関連付けられたセクタがマッピングされることが可能であるスペア領域が常に存在するとは限らない可能性がある。さらに、ブロックが使用不能になった後でのみ、セクタを事実上再度マッピングすることにより、一般に、フラッシュ・メモリ・システム全体の性能を低下させる。
【発明の開示】
【発明が解決しようとする課題】
【００１１】
したがって、フラッシュメモリ記憶システム内において摩耗一様化を効率的かつほぼ透過的に実施する方法および装置が所望される。すなわち、計算リソースを著しく使用することを必要とせずに、フラッシュメモリ記憶システムに関連付けられた物理位置においてより一様な摩耗を促進する摩耗一様化プロセスが必要とされる。
【課題を解決するための手段】
【００１２】
本発明は、不揮発性メモリシステムのシステムメモリにおいて平均消去カウントを維持するためのシステムおよび方法に関する。本発明の一態様によれば、メモリシステムの不揮発性メモリ内にあるいくつかのブロックの各ブロックが消去された平均回数を決定する方法は、各ブロックが消去された回数を示す各ブロックの消去カウントを得ることを含む。すべての消去カウントが得られた後、消去カウントは合計され、ブロック数の各ブロックが消去された平均回数を示す平均消去カウントが、合計をブロック数によって実質的に除算することによって創出される。
【００１３】
一実施形態では、消去カウントは、ブロックから得られる。そのような実施形態では、消去カウントは、ブロックの冗長領域またはオーバーヘッド領域から得られることが可能である。他の実施形態では、消去カウントは、ブロック数の各ブロックの消去カウントを含むメモリシステムの消去カウントブロックから得られる。
【００１４】
平均消去カウントを維持することによって、全メモリシステム内の平均ブロックが消去された回数の特徴付けが、容易に得られることが可能である。ブロックが消去されるとき、ブロックが消去された回数が表示されない可能性がある。その結果、ブロックに関連する摩耗の量は、容易には決定または推定されない可能性がある。そのようなブロックが何回消去された可能性が高い回数を示す平均消去カウントを使用することにより、ブロックの摩耗の妥当な推定が決定されることが可能になる。したがって、摩耗一様化は、より効率的に行われることが可能である。
【００１５】
本発明の他の態様によれば、データ構造が、複数のブロックの各使用可能なブロックが消去された回数の表示を提供する第１インジケータ、および複数のブロックに含まれるブロックの総数を示す第２インジケータを含む。一実施形態では、データ構造は、第１インジケータおよび第２インジケータを含むヘッダをも含む。
【００１６】
本発明の他の態様によれば、消去ブロックを使用のために実質的に準備する方法が、消去ブロックを得ることと、複数のブロックの各ブロックが消去された回数を特徴付けるインジケータを得ることと、複数のブロックの各ブロックが消去された回数を特徴付けるインジケータを、消去ブロックが消去された回数の表示として消去ブロックに記憶することとを含む。一実施形態では、方法は、また、消去ブロックが消去された回数のインジケータが利用可能であるときを判定することと、消去ブロックが消去された回数のインジケータが利用可能であると判定されるとき、消去ブロックが消去された回数のインジケータを消去ブロックに記憶することとを含む。そのような実施形態では、複数のブロックの各ブロックが消去された回数を特徴付けるインジケータを得ることは、実質的に、消去ブロックが消去された回数のインジケータが利用可能でないときのみ、複数のブロックの各ブロックが消去された回数を特徴付けるインジケータを得ることを含み、複数のブロックの各ブロックが消去された回数を特徴付けるインジケータを記憶することは、実質的に、消去ブロックが消去された回数のインジケータが利用可能ではないと判定されるときのみ、複数のブロックの各ブロックが消去された回数を特徴付けるインジケータを記憶することを含む。
【００１７】
本発明は、添付の図面に関連して取り入れられた以下の記述を参照することによって、最適に理解されることが可能である。
【発明を実施するための最良の形態】
【００１８】
フラッシュ・メモリ・システム内の不揮発性メモリ記憶ブロックは、反復してプログラムおよび消去されることが可能であるが、各ブロックは、一般に、ブロックが摩耗する前に、有限回のみ消去されることが可能である。ブロックが摩耗するとき、摩耗ブロックを含むフラッシュメモリ記憶システムの全記憶ボリュームの一部に関連する性能の比較的著しい低下が生じ、その部分に記憶されているデータが損失される可能性があり、または、データをその部分に記憶することが不可能になる可能性がある。
【００１９】
ブロックがフラッシュメモリ記憶システム内においてより一様に摩耗する可能性を増大させるために、ブロックは、より一様に使用されることが可能である。たとえば消去カウントを使用することにより、各ブロックが消去された回数を追跡することによって、システム内のメモリがより一様に使用されることが可能である。消去カウント管理技術が、特定のブロックが、そのブロックに関連付けられた冗長領域において消去された回数を追跡する消去カウントを記憶することが可能である。表が、使用中のブロックが比較的大きい消去カウントを有するブロックおよび比較的小さい消去カウントを有するブロックから事実上分離されることを実質的に可能にするシステムメモリにおいて構築されることが可能である。使用中のブロックが消去されるとき、ブロックは、適宜、比較的大きい消去カウントを有するブロックの表、または比較的小さい消去カウントを有するブロックの表に「追加」されることが可能である。同様に、ブロックが、比較的大きい消去カウントを有するブロックの表、または比較的小さい消去カウントを有するブロックの表から、ブロックマッピング表に、すなわち使用中のブロックの１セットの表に、ブロックマッピング表から再度割り当てられたあらゆるブロックを実質的に置き換えるために、「移動」されることが可能である。
【００２０】
ブロックをカテゴリ化することによって、ブロックがより一様に使用されることが可能であるが、その理由は、各ブロックの使用が、ブロックに関連付けられた摩耗を一様にするように、より有効に管理されることが可能であるからである。さらに、ブロックを表にカテゴリ化することは、小さい消去カウントを有するブロックおよび大きい消去カウントを有するブロックが容易に識別されることを可能にし、したがって、著しい量の計算リソースを使用しない。したがって、摩耗一様化は、比較的効率的に行われる。その結果、フラッシュ・メモリ・システムの寿命は、フラッシュ・メモリ・システムの性能に著しい影響を与えずに、大幅に延長されることが可能である。
【００２１】
ブロックのカテゴリ化を容易にするために、消去カウントブロックが、フラッシュ・メモリ・システム内において割り付けられることが可能である。そのようなブロックは、データをフラッシュ・メモリ・システム内に記憶するために使用されることが可能であるほぼすべてのブロックの消去カウントを含むように構成されることが可能である。ブロックが消去されるとき、ブロックの消去カウントは、通常、消去される。関連付けられた消去カウントを消去カウントブロックに有するほぼすべてのブロックの消去カウントを記憶することによって、消去ブロックの消去カウントは、たとえば、消去カウントブロックから消去カウントを読み取ることによって、容易に得られることが可能である。
【００２２】
フラッシュ・メモリ・システム、またはより一般的には不揮発性メモリ装置は、一般に、フラッシュ・メモリ・カードおよびチップセットを含む。通常、フラッシュ・メモリ・システムは、ホストシステムがフラッシュ・メモリ・システムにデータを書き込み、またはフラッシュ・メモリ・システムからデータを読み取ることが可能であるように、ホストシステムと関連して使用される。しかし、いくつかのフラッシュ・メモリ・システムは、埋込みフラッシュメモリと、埋込みフラッシュメモリの制御装置として実質的に作用するようにホスト上で実行されるソフトウエアとを含む。まず図１ａを参照すると、コンパクトフラッシュ（登録商標）・メモリ・カードまたは埋込みシステムなど、不揮発性メモリ装置を含む汎用ホストシステムが記述される。ホストまたはコンピュータシステム１００は、一般に、マイクロプロセッサ１０８、ランダム・アクセス・メモリ（ＲＡＭ）１１２、および入力／出力回路１１６が通信することを可能にするシステムバス１０４を含む。ホストシステム１００は、例示の目的では図示されていないディスプレイ装置およびネットワーキング装置など、他の構成要素を一般に含むことが可能であることを理解されたい。
【００２３】
一般に、ホストシステム１００は、静止画像情報、音声情報、およびビデオ画像情報などを含むが、これに限定されない情報を得ることができるとすることが可能である。そのような情報は、実時間で得られることが可能であり、また、無線方式でホストシステム１００に伝送されることが可能である。ホストシステム１００は、実質的にあらゆるシステムとすることが可能であるが、ホストシステム１００は、通常、デジタルカメラ、ビデオカメラ、セルラ通信装置、オーディオプレーヤ、またはビデオプレーヤなどのシステムである。しかし、ホストシステム１００は、一般に、データまたは情報を記憶し、またデータまたは情報を取り出すほぼあらゆるシステムとすることが可能であることを理解されたい。
【００２４】
ホストシステム１００は、データを得るのみである、またはデータを取り出すのみであるシステムとすることも可能である。すなわち、ホストシステム１００は、データを記憶する専用システムとすることが可能であり、または、ホストシステム１００は、データを読み取る専用システムとすることが可能である。例として、ホストシステム１００は、データを書き込む、または記憶するようにのみ構成されるメモリライタとすることが可能である。代替として、ホストシステム１００は、データを読み取る、または取り出すように通常構成され、またデータを得るようには構成されないＭＰ３プレーヤなどの装置とすることが可能である。
【００２５】
一実施形態では、取外し可能不揮発性メモリ装置である不揮発性メモリ装置１２０が、情報を記憶するためにバス１０４とインタフェースするように構成される。随意選択のインタフェースブロック１３０により、不揮発性メモリ装置１２０がバス１０４と間接的にインタフェースすることが可能になると考えられる。存在するとき、入力／出力回路ブロック１３０が、当業者になら理解するように、バス１０４に対する負荷を低減するように作用する。不揮発性メモリ装置１２０は、不揮発性メモリ１２４および随意選択メモリ制御システム１２８を含む。一実施形態では、不揮発性メモリ装置１２０は、単一チップまたはダイの上において実施されることが可能である。代替として、不揮発性メモリ装置１２０は、マルチチップモジュールの上において、またはチップセットを形成することが可能であり、かつ不揮発性メモリ装置１２０として共に使用されることが可能である複数の離散構成要素の上において実施されることが可能である。不揮発性メモリ装置１２０の一実施形態が、図１ｂを参照して以下でより詳細に記述される。
【００２６】
たとえばＮＡＮＤフラッシュメモリなどのフラッシュメモリである不揮発性メモリ１２４は、必要に応じてデータにアクセスして読み取ることが可能であるように、データを記憶するように構成される。不揮発性メモリ１２４に記憶されているデータは、適宜、消去されることも可能であるが、不揮発性メモリ１２４のいくつかのデータは、消去可能ではないとすることが可能であることを理解されたい。データを記憶する、データを読み取る、およびデータを消去するプロセスは、一般に、メモリ制御システム１２８によって制御され、または、メモリ制御システム１２８が存在しないときは、マイクロプロセッサ１０８によって実行されるソフトウエアによって制御される。不揮発性メモリ１２４の動作は、本質的に不揮発性メモリ１２４のセクションをほぼ一様に摩耗させることによって、不揮発性メモリ１２４の寿命がほぼ最大になるように管理されることが可能である。
【００２７】
不揮発性メモリ装置１２０は、随意選択メモリ制御システム１２８、すなわち制御装置を含むとして一般的に記述された。しばしば、不揮発性メモリ装置１２０は、不揮発性メモリ１２４およびメモリ制御システム１２８について別々のチップ、すなわち制御装置機能を含むことが可能である。例として、ＰＣカード、コンパクトフラッシュ（登録商標）カード、マルチメディアカード、およびセキュア・デジタル・カードを含むがこれに限定されない不揮発性メモリ装置は、別々のチップ上で実施されることが可能である制御装置を含むが、他の不揮発性メモリ装置は、別々のチップ上で実施される制御装置を含まないことが可能である。不揮発性メモリ装置１２０が別々のメモリおよび制御装置のチップを含まない実施形態では、メモリおよび制御装置の機能は、当業者には理解されるように、単一チップに統合されることが可能である。代替として、メモリ制御システム１２８の機能は、上記で議論されたように、たとえば不揮発性メモリ装置１２０がメモリ制御装置１２８を含まない実施形態では、マイクロプロセッサ１０８によって提供されることが可能である。
【００２８】
図１ｂを参照すると、本発明の実施形態による不揮発性メモリ装置１２０が、より詳細に記述される。上述されたように、不揮発性メモリ装置１２０は、不揮発性メモリ１２４を含み、また、メモリ制御システム１２８を含むことが可能である。メモリ１２４および制御システム１２８、または制御装置は、不揮発性メモリ装置１２０の構成要素とすることが可能であるが、メモリ１２４がＮＡＮＤ装置に埋め込まれるとき、図１ｃに関して以下で議論されるように、不揮発性メモリ装置１２０は、制御システム１２８を含まないことが可能である。メモリ１２４は、半導体基板の上に形成されたメモリセルのアレイとすることが可能であり、２つ以上の電荷レベルの１つをメモリセルの個々の記憶要素に記憶することによって、データの１つまたは複数のビットが、個々のメモリセルに記憶される。不揮発性フラッシュ電気的消去可能プログラム可能読取り専用メモリ（ＥＥＰＲＯＭ）は、そのようなシステムの一般的なタイプのメモリの例である。
【００２９】
存在するとき、制御システム１２８は、データを記憶するために、メモリシステムを使用しているホストコンピュータまたは他のシステムとバス１５で通信する。バス１５は、一般に、図１ａのバス１０４の一部である。制御システム１２８は、ホストによって提供されるデータを書き込み、ホストによって要求されたデータを読み取り、動作メモリ１２４において様々なハウスキーピング機能を実施するために、メモリ・セル・アレイ１１を含むことが可能であるメモリ１２４の動作も制御する。制御システム１２８は、一般に、関連する不揮発性ソフトウエアメモリ、様々な論理回路などを有する汎用マイクロプロセッサを含む。１つまたは複数の状態機械も、特定のルーチンの性能を制御するために、しばしば含まれる。
【００３０】
メモリ・セル・アレイ１１は、通常、アドレスでコーダ１７を経て制御システム１２８またはマイクロプロセッサ１０８によってアドレスされる。デコーダ１７は、制御システム１２８によってアドレスされているメモリセルのグループに対し、データをプログラムするため、またはそのグループからデータを読み取るため、またはそのグループを消去するために、適切な電圧をアレイ１１のゲートおよびビット線に印加することができる。追加の回路１９が、セルの対処されたグループにプログラムされているデータに依拠するアレイの要素に印加された電圧を制御するプログラミングドライバを含むことができる。回路１９は、メモリセルのアドレスされたグループからデータを読み取るのに必要な感知増幅器および他の回路をも含むことができる。アレイ１１内にプログラムされるデータ、またはアレイ１１から最近読み取られたデータは、図示されるように、制御システム１２８の外部とすることが可能である、または制御システム１２８の内部にあることが可能である、バッファメモリ２１に記憶されることが可能である。制御システム１２８は、通常、コマンドおよび状況データなどを一時的に記憶する様々なレジスタをも含む。
【００３１】
アレイ１１は、多数のＢＬＯＣＫ０〜Ｎのメモリセルに分割される。フラッシュＥＥＰＲＯＭシステムに一般的であるように、ブロックは、通常、消去の最小単位とすることができる。すなわち、各ブロックは、共に消去される最小数のメモリセルを含むことができる。各ブロックは、図２にも示されるように、通常、いくつかのページに分割される。ページは、通常、プログラミングの最小単位とすることができる。すなわち、基本的なプログラミング動作が、メモリセルの１ページの最小限にデータを書き込み、またはそれからデータを読み取ることができる。データの１つまたは複数のセクタが、各ページ内に通常記憶される。図１ｂに示されるように、１つのセクタが、ユーザデータおよびオーバーヘッドデータを含む。オーバーヘッドデータは、セクタのユーザデータから計算されたエラー補正コード（ＥＣＣ）を通常含む。制御システム１２８の一部２３が、データがアレイ１１にプログラムされているとき、ＥＣＣを計算し、また、データがアレイ１１から読み取られているとき、ＥＣＣを検査することができる。代替として、ＥＣＣは、それらが属するユーザデータとは異なるページ、または異なるブロックに記憶されることができる。
【００３２】
ユーザデータのセクタは、磁気ディスクドライブのセクタのサイズに対応して、通常５１２バイトである。オーバーヘッドデータは、通常、追加の１６バイトであるが、オーバーヘッドデータに含まれるバイト数は、変更されることが可能であることを理解されたい。データの１つのセクタが、各ページに含まれることが最も一般的であるが、代わりに、２つ以上のセクタが、ページを形成することが可能である。任意の数のページが、ブロックを形成することが一般に可能である。例として、ブロックは、８ページから最高で５１２、１０２４、またはそれを超えるページから形成されることが可能である。ブロックの数は、望ましいデータ記憶能力をメモリシステムに提供するように選択される。アレイ１１は、いくつかのサブアレイ（図示せず）に通常分割され、それぞれは、様々なメモリ動作の実行において並行の程度を増大させるために、互いにある程度独立に動作するある割合のブロックを含むことができる。複数サブアレイの使用の例が、参照によって本明細書に完全に組み込まれている米国特許第５８９０１９２号において記載されている。
【００３３】
一実施形態では、ＮＡＮＤフラッシュメモリなどの不揮発性メモリは、ホストシステムなどのシステムに埋め込まれる。図１ｃは、埋込み不揮発性メモリを含むホストシステムの概略図である。ホストまたはコンピュータシステム１５０が、ホストシステム１５０の他の構成要素（図示せず）の中でも、マイクロプロセッサ１５８、ＲＡＭ１６２、および入力／出力回路１６６が通信することを可能にするシステムバス１５４を一般に含む。フラッシュメモリなどの不揮発性メモリ１７４により、情報をホストシステム１５０内に記憶することが可能になる。不揮発性メモリ１７４から情報を読み取り、かつ不揮発性メモリ１７４に情報を書き込むことが可能であるように、インタフェース１８０が、不揮発性メモリ１７４とバス１５４との間に提供されることが可能である。
【００３４】
不揮発性メモリ１７４は、不揮発性メモリ１７４を制御するように構成されるソフトウエアまたはファームウエアあるいはその両方を有効に実行するマイクロプロセッサ１５８によって管理されることが可能である。すなわち、マイクロプロセッサ１５８は、不揮発性メモリ１７４を制御することを可能にするコード装置（図示せず）、すなわちソフトウエアコード装置またはファームウエアコード装置を実行することが可能である。そのようなコード装置は、マイクロプロセッサ１５８の内部にＣＰＵが実装されたフラッシュメモリ、別々のフラッシュＲＯＭ、または不揮発性メモリ１７４の内部とすることが可能であり、以下で記述されるように、不揮発性メモリ１７４の物理ブロックに対処することを可能にすると考えられ、また、情報を物理ブロックに記憶する、情報を物理ブロックから読み取る、および情報を物理ブロックから消去することを可能にすると考えられる。
【００３５】
図１ａの不揮発性メモリ１２４の記憶要素などの特定のセクションが、反復して書き込まれ、消去されるなど、連続的にプログラムされるとき、その特定の領域は、一般に、連続的にプログラムされない領域より迅速に摩耗される。不揮発性メモリ１２４内の異なる領域の摩耗を事実上「一様にする」ために、連続的にプログラムされる領域がより少なくプログラムされ、一方、連続的にプログラムされない領域がより多くプログラムされることが可能であるように、摩耗一様化が、ほぼ自動的に実施されることが可能である。
【００３６】
一般に、摩耗一様化を実施するために、物理位置に関連付けられる１セットのセクタなど、反復してプログラムされるブロックが、反復してプログラムされない物理位置に関連付けられるブロックとスワップされることが可能である。すなわち、反復してプログラムされ、したがって消去された物理的ブロックが、より頻繁でなくプログラムされ、かつ消去された物理的ブロックとスワップされることが可能である。
【００３７】
本発明の一実施形態では、特定の物理ブロックが反復してプログラムされ、かつ消去されたかを容易に判定するために、消去カウントがブロックと共に記憶されることが可能である。すなわち、ブロックが消去された回数を追跡するカウンタが維持されて、ブロックが消去されるたびに増分されることが可能である。そのような消去カウントは、特定のブロックが、より頻繁ではなく消去された他のブロックとスワップされるべきであるかの判定を容易にするために使用されることが可能である。図２は、本発明の実施形態による、フラッシュメモリの一部の概略図である。フラッシュメモリ２００は、ページ２０４に分割されることが可能である。約５１２バイトのユーザデータを一般に含む各ページ２０４は、冗長領域２０６を実際に含み、たとえば、ページ２０４ａは、冗長領域２０６ａを含む。各冗長領域２０６またはオーバーヘッド領域は、グループ識別子２１６、更新インデックス２１２、および消去カウント２１４を通常含むが、これに限定されない、最高で約１６バイトの情報を含むことが可能である。
【００３８】
通常、任意の数のページ２０４が、ブロック２１０に含まれる。例示を容易にするために、ページ２０４ａ、２０４ｂが、ブロック２１０に含まれるように示されているが、ブロック２１０に含まれるページ２０４の数は、大きく変化することが可能であることを理解されたい。記述される実施形態では、ブロック２１０は、約６４ページを含むように構成されることが可能である。たとえば、フラッシュメモリ２００が約５１２メガビット（Ｍｂ）を含むとき、フラッシュメモリ２００は、それぞれが３２ページの約４０９６ブロックに事実上分割されることが可能である。
【００３９】
以前に記述されたように、消去カウント２１４は、ユーザデータが関連ブロックから消去されるたびに増分されることが可能である。たとえば、ブロック２１０に関連付けられる消去カウント２１４は、データがブロック２１０から消去されるたびに増分されることが可能である。ブロック２１０に含まれる各ページ２０４ａ、２０４ｂは、一般に消去カウント２１４を有するので、各ページ２０４ａ、２０４ｂに関連付けられた消去カウント２１４は、ブロック２１０が消去されるとき、増分されることが可能である。
【００４０】
一般に、データを含むブロックが消去されるとき、ブロックのデータ領域および冗長領域の両方が消去される、または空にされる。消去されたブロックは、通常、スペア・ブロック・プールに追加され、スペア・ブロック・プールは、他の表の消去ブロックなど、他の消去ブロックの消去カウントより小さい消去カウントを有する消去カウントを含む。スペアブロック表は、本質的に、最低頻度消去ブロック表とすることが可能であり、これについては以下で記述される。本発明の一実施形態では、大きな消去カウントを有する消去ブロックが、他の表の消去ブロックと比較してより大きい消去カウントを含む消去ブロックを含むプールに追加される。大きな消去カウントを有する消去ブロックを含むプールは、最高頻度消去ブロック表とすることが可能であり、これについても以下で記述される。消去されたばかりのブロックの消去カウントは、１つだけ増分され、カウントの値に応じて、最低頻度消去ブロック表または最高頻度消去ブロック表に保存される。
【００４１】
図２に戻ると、消去カウント２１４などの消去カウントが、初期化要求中にアクセスされることが可能である。たとえば、埋込みフラッシュメモリを含むシステムなどのシステムが給電されるとき、システム内のスペアブロックがローで実行されているとき、ユーザがブロックの割付けを均衡させることを要求するとき、およびユーザがブロックの使用がより一様に行われることを要求するとき、初期化要求が作成されることが可能である。図３は、本発明の実施形態による、フラッシュ・メモリ・システムに関する初期化要求を処理することに関連するステップを示すプロセス流れ図である。一般に、初期化要求は、たとえば周期的に、またはトリガ条件が満たされるとき、ユーザによって開始される、またはフラッシュ・メモリ・システムに関連付けられた制御装置によってほぼ自動的に開始されることが可能である。初期化要求に応答するプロセス３００が、ステップ３０４において開始され、初期化要求が実際に受信される。初期化要求は、初期化されるフラッシュメモリと通信する制御装置またはプロセッサによって受信されることが可能である。そのような要求は、たとえば、給電時に、またはブロック割付けが均衡されるときに、ホストを介してユーザによって提供されることが可能である。
【００４２】
初期化要求が受信された後、ステップ３０６において、平均消去カウントが得られる。一実施形態では、平均消去カウントは、システムに関連付けられたＮＡＮＤメモリに書き込まれる消去カウントブロックに記憶されるが、平均消去カウントは、構造に関連付けられたＮＡＮＤメモリのほぼあらゆるデータ構造に記憶される、または書き込まれることが可能であることを理解されたい。平均消去カウントおよび各ブロックの消去カウントを含む消去カウントブロック（ＥＣＢ）は、フラッシュメモリのブロックに記憶される。システムが当初フォーマットされるときなど、消去カウントが創出されるとき、表の平均消去カウントおよび各ブロックの消去カウントは、通常、ゼロの値に初期化されることを理解されたい。消去カウントブロックが、図８ａに関して以下で記述される。平均消去カウントが得られた後、システム内のほぼすべてのブロックの消去カウントが得られる。図２に関して上述されたように、データを含む特定のブロックの消去カウントは、そのブロックに関連付けられる冗長領域に記憶されることが可能である。したがって、データを含むほぼすべてのブロックの消去カウントを得ることは、各ブロックに関連付けられた冗長領域にアクセスすることと、各消去カウントを消去カウントブロックに記憶することとを含むことが可能である。
【００４３】
初期化要求時に、消去ブロックの消去カウントは、消去カウントブロックから得られる。消去カウントブロックは、そのブロックの冗長領域が消去されるので、一般にその値を維持する。システム全体がシャットダウンされるとき、終了要求が通常作成され、したがって、ほぼすべてのブロックの最後の消去カウントを得るように、消去カウント表が更新される。任意の所与の時間において、ブロックは、最高頻度消去ブロック表、最低頻度消去ブロック表、消去カウントブロック、またはブロックマッピング表に属する。消去カウントブロックに属するブロックの消去カウントは、ブロックの冗長領域に記憶される。データを含むブロックの消去カウントは、しばしば、ブロックマッピング表に属し、冗長領域に記憶される。ブロックマッピング表に属する消去ブロックの消去カウントは、ゼロの消去カウントを有するが、その理由は、ブロックが事実上全く使用されていないからである。最低頻度消去ブロック表または最高頻度消去ブロック表のブロックから消去カウントを得ることは、表から値を得ることを含むが、その理由は、表の各エントリが、消去ブロックのブロック数およびその消去カウントの両方を一般に含むからである。初期化要求の処理を完了すると直ちに、消去カウントブロックは、一般に、すべてのブロックの現行消去カウントで更新される。
【００４４】
ステップ３２０において、ブロックマッピング表が、ホストシステムメモリなどのシステムメモリにおいて割り付けられる。当業者なら理解するように、ブロックマッピング表は、論理ブロックアドレス（ＬＢＡ）と物理ブロックアドレス（ＰＢＡ）との間のマッピングを提供するように構成されることが可能である。さらに、最高頻度消去ブロック表および最低頻度消去ブロック表も、ステップ３２０において割り付けられる。
【００４５】
最高頻度消去ブロック表は、通常、最も頻繁に消去された消去ブロックに関する情報を有効に保持するようにサイズ決めされ、そうでない場合は構成される。すなわち、最高頻度消去ブロックが、消去カウントおよびマッピング情報など、システムの最高消去カウントを有する消去ブロックに属する情報を保持するように構成される。同様に、最低頻度消去ブロック表が、一般に、最低消去カウントを有する消去ブロックに属する情報を収容するようにサイズ決めされ、そうでない場合は構成される。最高頻度消去ブロック表のサイズおよび最低頻度消去ブロック表のサイズは、大きく変化することが可能であるが、サイズは、最高頻度で消去されると指定されるブロックの数、および最低頻度で消去されると指定されるブロックの数に依拠する。通常、最高頻度消去ブロック表は、一般に、最低頻度消去ブロック表より少ない消去ブロックの情報を収容するようにサイズ決めされる。例として、最高頻度消去ブロック表は、約１８の消去ブロックの情報を収容するようにサイズ決めされることが可能であり、一方、最低頻度消去ブロック表は、約７０の消去ブロックに関する情報を収容するようにサイズ決めされることが可能である。代替として、最高頻度消去ブロック表は、約１０の消去ブロックの情報を収容するようにサイズ決めされることが可能であり、一方、最低頻度消去ブロック表は、約５０の消去ブロックの情報を収容するようにサイズ決めされることが可能である。
【００４６】
表がステップ３２０において割り付けられた後、消去ブロックが、ステップ３２４において識別される。次いで、ステップ３２８において、「Ｎ」の消去ブロックが、最高頻度消去ブロックに割り当てられ、かつ本質的に、最高頻度消去ブロック表に割り当てられることが可能である。一実施形態では、「Ｎ」の消去ブロックは、すべての消去カウントの比較によって決定される最高消去カウントを有する「Ｎ」の消去ブロックとすることが可能である。代替として、最高頻度消去ブロック表に記憶される「Ｎ」の消去ブロックは、ステップ３０６において得られる平均消去カウントとの比較に基づいて決定されることが可能である。たとえば、「Ｎ」の消去ブロックは、平均消去カウントより大きい約２４パーセントなどの少なくとも所与のパーセンテージである消去カウントを有する「Ｎ」の消去ブロックとすることが可能である。
【００４７】
最高頻度消去ブロックが有効にポピュレートされた後、ステップ３３２において、「Ｍ」の消去ブロックが、識別され、最低頻度消去ブロック表に有効に割り当てられることが可能である。「Ｍ」の消去ブロックは、一般に、システムに関連付けられたすべての消去ブロックの最低消去カウントを有する「Ｍ」の消去ブロックとすることが可能であり、または、「Ｍ」の消去ブロックは、平均消去カウントより小さい少なくとも所与のパーセンテージである消去カウントを有する「Ｍ」の消去ブロックとすることが可能である。「Ｍ」の消去ブロックは、事実上、適宜ブロックマッピング表に割り当てられるスペアブロックである。
【００４８】
残りの消去ブロック、すなわち最低頻度消去ブロック表または最高頻度消去ブロック表に割り当てられなかった消去ブロックが、ステップ３３６において、「未消去」ブロックと共に、ブロックマッピング表に割り当てられる。すなわち、残りの消去ブロックならびに関連付けられた冗長領域以外においてデータを含むブロックが、ブロックマッピング表に関連付けられる。
【００４９】
たとえば対応するブロックに属する消去カウントおよびマッピング情報と共に、ブロックマッピング表、最低頻度消去ブロック表、および最高頻度消去ブロック表が有効にポピュレートされた後、平均消去カウントが、ステップ３３８において決定されることが可能である。平均消去カウントを決定することは、通常、ステップ３０８において得られた個々のブロックの消去カウントを合計することと、ブロックの総数によって合計を除算することとを含む。平均消去カウントは、初期化要求に応答して決定されることが可能であるが、平均消去カウントは、ほぼ随時、更新される、またはそうでない場合は決定されることが可能であることを理解されたい。平均消去カウントを計算する１つの方法に関連するステップが、図１３に関して以下で記述される。
【００５０】
ステップ３３８において計算された平均消去カウントは、システムに関連付けられた消去カウントブロックに記憶される。以前に記述されたように、平均消去カウントは、システムに関連付けられたＮＡＮＤメモリに書き込まれる消去カウントブロックに記憶される。平均消去カウントを消去カウントブロックに記憶すると直ちに、静止ブロック、またはデータを含み、かつ比較的小さい関連付けられた消去カウントを有するブロックが、ステップ３４２において処理されることが可能である。静止ブロックを処理する一方法に関連するステップは、図４に関して以下で記述される。静止ブロックが処理された後、初期化要求を処理するプロセスは、完了される。
【００５１】
フラッシュメモリに関連付けられたブロックのグループ内には、任意の所与の時間において、消去されるブロック、およびデータ、すなわちユーザデータを含むブロックが通常存在する。データを含むブロックのいくつかは、「通常」ブロックと見なされることが可能であり、一方、他は、静止ブロックと見なされることが可能である。静止ブロックは、まれにしか変更されないデータを含むブロックである。すなわち、静止ブロックは、まれにしか消去されない。通常、静止ブロックは、フラッシュメモリに記憶されている比較的古いドキュメント、フラッシュメモリに記憶されている実行可能なプログラム、またはフラッシュメモリに記憶されているオペレーティングシステムに関連付けられることが可能である。静止ブロックは、一般に、フラッシュメモリ内の大半のブロックの消去カウントよりかなり小さい消去カウントを有することが可能である。一実施形態では、ブロックの消去カウントが、フラッシュ・メモリ・システムに関連付けられた平均消去カウントの約２０パーセントなど、あるパーセンテージより小さい場合、データを含むブロックが静止ブロックと見なされることが可能である。
【００５２】
静止ブロックは、まれにしか変更されないデータを含むので、静止ブロックに含まれるデータは、比較的大きい消去カウントを有するブロックにコピーされることが可能である。すなわち、特定の物理ブロックの内容が比較的静止しており、したがって一般に変更されない場合、比較的小さい消去カウントを有する当初の物理ブロックを、最も頻繁に変更される内容を記憶するために使用することを可能にするために、内容は、比較的大きい消去カウントを有する異なる物理ブロックに有効に再度割り当てられることが可能である。図４を参照すると、静止ブロックを処理することに関連するステップ、すなわち図３のステップ３４２が、本発明の実施形態により記述される。システムの静止ブロックを処理するプロセス３４２が、ステップ４０４において開始され、ブロック「Ａ」など、消去されていないブロックの消去カウントがアクセスされる。ブロック「Ａ」の消去カウントがアクセスされた後、ステップ４０８において、不消去ブロック「Ａ」の消去カウントが、システムに関連付けられた平均消去カウントと比較して非常に小さいかについて判定が行われる。
【００５３】
不消去ブロック「Ａ」の消去カウントが、平均消去カウントと比較して小さいかに関する判定は、ほぼあらゆる適切な基準に基づくことが可能であるが、一実施形態では、判定は、ブロック「Ａ」の消去カウントが、平均消去カウントの端数に関連付けられた値より小さい値を有するかに基づいて行われる。たとえば、ブロック「Ａ」の消去カウントは、消去カウントが平均消去カウントの所定のパーセンテージより小さいとき、小さいと見なされることが可能である。
【００５４】
ステップ４０８において、ブロック「Ａ」の消去カウントが平均消去カウントと比較して非常に小さくないと判定される場合、ブロック「Ａ」は、静止ブロックではない可能性が最も高いことを意味する。ブロック「Ａ」は、ブロック「Ａ」の消去カウントが非常に小さいとは見なされない場合でも、依然として静止ブロックであるとすることが可能であるが、そのような場合のブロック「Ａ」の消去カウントは、他のブロックとのブロック「Ａ」のスワップを事実上トリガしないことを理解されたい。したがって、静止ブロックを処理するプロセスは、完了される。
【００５５】
代替として、ステップ４０８において、ブロック「Ａ」の消去カウントが平均消去カウントと比較して非常に小さいと判定される場合、ブロック小さい消去カウントを有するブロック「Ａ」が、比較的頻繁に変更されるデータを記憶するのに自由であるとすることが可能であるように、「Ａ」の内容は、比較的大きい消去カウントを有するブロックに書き込まれることが可能である。すなわち、ブロック「Ａ」の消去カウントが平均消去カウントと比較して非常に小さいとき、ブロック「Ａ」は静止ブロックであることを意味する。したがって、プロセス流れは、ステップ４０８からステップ４１２に移行し、ブロック「Ａ」は、静止ブロックと識別される。ブロック「Ａ」が静止ブロックと識別された後、ステップ４１６において、ブロック、すなわちブロック「Ｂ」が、最高頻度消去ブロック表によって識別された最高頻度消去ブロックのグループから得られることが可能である。
【００５６】
ブロック「Ｂ」が得られた後、ステップ４２０において、ブロック「Ａ」の内容は、ブロック「Ｂ」にコピーされる。すなわち、ステップ４２０において、ブロック「Ａ」に含まれるユーザデータは、ブロック「Ｂ」にコピーされる。ブロック「Ａ」の内容がブロック「Ｂ」にコピーされた後、ステップ４２４において、ブロック「Ａ」は消去される。通常、ブロック「Ａ」が消去されるとき、ブロック「Ａ」に関連付けられた消去カウントは増分される。ブロック「Ｃ」などのブロックが、ブロック「Ｃ」の関連付けが、最低頻度消去ブロック表から最高頻度消去ブロック表に有効に変更されるように、ステップ４２８において最低頻度消去ブロックのグループから最高頻度消去ブロックのグループに移動されることが可能である。すなわち、ブロック「Ｃ」は、最低頻度消去ブロック表から分離されて、最高頻度消去ブロック表に関連付けられる。そのような移動により、最低頻度消去ブロック表のスペースが、小さい消去カウントを有し、したがってシステムの最低頻度消去ブロックの１つであるブロック「Ａ」を収容するように、有効に開放されることが可能になる。通常、ブロック「Ｃ」は、最低頻度消去ブロック表において最高消去カウントを有するブロックである。
【００５７】
ブロック「Ｃ」を最低頻度消去ブロックのグループから移動させる、またはそうでない場合はブロック「Ｃ」を最低頻度消去ブロックから分離すると直ちに、プロセス流れは、ステップ４２８からステップ４３２に移行し、ステップ４３２において、ブロック「Ａ」は、ブロックマッピング表から最低頻度消去ブロックに有効に移動される。次いで、ステップ４３４において、ブロック「Ａ」に以前に含まれていた内容を含むブロック「Ｂ」が、ブロックマッピング表に関連付けられる。当業者なら理解するように、ブロック「Ｂ」をブロックマッピング表に「移動」させることは、通常、この段階でブロック「Ｂ」に関連付けられるブロック「Ａ」に関連付けられていた論理ブロックアドレスのマッピングを更新することを含む。ブロック「Ｃ」に属する情報が、最高頻度消去ブロック表に存在し、ブロック「Ｂ」に属する情報が、ブロックマッピング表に存在し、ブロック「Ａ」に属する情報が、最低頻度消去ブロック表に存在するとき、静止ブロックを処理するプロセスは完了される。プロセス３４２は、システムに関連付けられたほぼすべての静止ブロックが識別され、処理されるまで、反復されることが可能であることを理解されたい。
【００５８】
一般に、ブロックマッピング表、最低頻度消去ブロック表、および最高頻度消去ブロック表は、初期化要求がフラッシュ・メモリ・システム全体に送信されるとき、図１ａのＲＡＭ１１２など、システムメモリにおいて創出されることが可能である。表を構築するために、スペースが、表を収容するように、システムメモリにおいてまず割り付けられることが可能である。
【００５９】
前述されたように、ブロックマッピング表、最低頻度消去ブロック表、および最高頻度消去ブロック表が、平均消去カウントの場合のように、システムメモリにおいて創出される。各ブロックの平均消去カウントおよび消去カウントも、消去カウントブロックに書き込まれる。図５ａは、本発明の実施形態による、システムメモリの概略的なブロック図である。システムメモリ４５４およびフラッシュメモリ４６０が、全システムに含まれ、たとえば、メモリカードの構成要素またはＮＡＮＤメモリなどのフラッシュメモリ４６０が埋め込まれるホスト装置の構成要素と事実上することが可能である。システムメモリ４５４は、ブロックが関連付けられることが可能であるブロックマッピング表４６２を記憶するように構成される。通常、ブロックマッピング表４６２は、ＬＢＡを、フラッシュメモリ４６０に関連付けられた物理ブロックに関連付けるために使用されることが可能である。
【００６０】
システムメモリ４５４は、ブロックマッピング表４６２と同様に、初期化要求に応答して一般に形成される最低頻度消去ブロック表４６６および最高頻度消去ブロック表４７０をも保持する。ブロックの平均消去カウントをフラッシュメモリ４６０内に保持するように構成される平均消去カウント４７４が、フラッシュ・メモリ・システム全体がフォーマットされるとき創出される。一実施形態では、消去カウントブロック４８０が、ほぼすべてのブロック４６５の消去カウントをフラッシュメモリ４６０内に含むように構成される。初期化要求が作成されるたびに、更新された平均消去カウントが計算されて、消去カウントブロック４８０に記憶されることが可能である。
【００６１】
図５ｂは、本発明の実施形態による、「通常」ブロックのグループ、最低頻度消去ブロックのグループ、および最高頻度消去ブロックのグループの概略図である。ブロック５０２のグループは、一般にユーザデータを含む通常ブロックまたは静止ブロックとすることが可能である、あるいは消去されることが可能であるが、最高頻度消去ブロックまたは最低頻度消去ブロックではない可能性があるブロック５１４を含む。最低頻度消去ブロック５０６のグループが、全システム内において消去ブロックの最低消去カウントを有するブロック５１８を一般に含み、一方、最高頻度消去ブロック５１０のグループが、消去ブロックの最高消去カウントを全システム内において有するブロック５２２を一般に含む。一般に、ブロック５１８は、スペアブロックとして有効に使用される。
【００６２】
ブロック５１４が消去されるとき、消去ブロック５１４が、比較的小さい関連付けられた消去カウントまたは比較的大きい関連付けられた消去カウントを有するかについて判定されることが可能である。消去ブロック５１４が、比較的小さい関連付けられた消去ブロックを有するとき、消去ブロック５１４は、最低頻度消去ブロック５０６のグループに追加されることが可能である。一方、消去ブロック５１４が、比較的大きい関連付けられた消去カウントを有するとき、消去ブロック５１４は、最高頻度消去ブロック５１０のグループに再度割り当てられることが可能である。
【００６３】
ほぼあらゆるサイズとすることが可能である最低頻度消去ブロック５０６のグループは、分類されたグループとすることが可能である。すなわち、ブロック５１８は、消去カウントに基づいて実質的に分類されることが可能である。分類は、通常、ブロック５１８に関連付けられたエントリを含む対応する最低頻度消去ブロック表（図示せず）において反映される。たとえば、新しいブロック５１８が最低頻度消去ブロック５０６のグループに移動される、または追加される、あるいはそうでない場合は関連付けられるたびに、ブロック５１８は、最低頻度消去ブロック５０６のグループにおける最低頻度消去ブロック５１８が、グループ５０２になど、再度割り当てられる次のブロック５１８とすることが可能であるように、消去カウントに基づいて本質的に分類されることが可能である。すなわち、データがコピーされる新しいブロックが必要であるとき、ブロック５１８の最低消去ブロック５１８は、最低頻度消去ブロック表を使用して識別されて、最低頻度消去ブロック５０６のグループから取り入れられる。通常、必要とされないデータを含むブロック５１４が消去されるとき、そのブロック５１４は、最低頻度消去ブロック５０６のグループに分類されることが可能であり、最低頻度消去ブロック表は、相応して更新されることが可能である。すなわち、追加ブロックに対応するエントリが、最低頻度消去ブロック表に含まれることが可能である。
【００６４】
最高頻度消去ブロック５１０のグループのブロック５２２も、最低頻度消去ブロック５０６のグループに記憶されているブロック５１８と同様に、消去カウントに基づいて実質的に分類されることが可能である。分類は、通常、ブロック５２２を識別するように作用する最高頻度消去ブロック表（図示せず）においてエントリを分離することによって実施される。一実施形態では、ブロック５２２に関連付けられた平均消去カウントが、計算されることが可能である。すなわち、最高頻度消去ブロック５１０のグループの平均消去カウントが、決定されることが可能である。グループ５０２からのブロック５１４が消去され、消去ブロック５１４の消去カウントが、約２０パーセントを超えるなど所与のパーセンテージを超えることによって、最高頻度消去ブロック５１０のグループの平均消去カウントを超えることが判明するとき、消去ブロック５１４は、最高頻度消去ブロック５１０のグループに追加されることが可能である。新しいブロック５２２が最高頻度消去ブロック５１０のグループに有効に追加されるとき、最低消去カウントを有する頻度消去ブロック５１０のグループ内のブロック５２２が、グループ５２０に再度割り当てられることが可能である。そのような再度割当ては、通常、関連付けられたブロックマッピング表、最低頻度消去ブロック表、および最高頻度消去ブロック表（図示せず）を更新することによって反映される。
【００６５】
グループ５０２、最低頻度消去ブロック５０６のグループ、および最高頻度消去ブロック５１０との間においてブロックをスワップまたは更新することは、一般に、グループ５０２に含まれるブロック５１４が消去または更新されるときに行われることが可能である。代替として、ブロックのスワップまたは更新は、実質的に、スペアブロックがグループ５０２において使用されるために割り付けられることが所望されるたびに、行われることが可能である。次に図６を参照すると、ブロックのより一様な摩耗を見込むために、埋込みフラッシュメモリを有するホストシステムなどのメモリシステム全体においてブロックのスワップまたは更新を実施する１つの方法が、本発明の実施形態により記述される。ブロックのスワップまたは更新を実施するプロセス６００が、ステップ６０４において開始され、ブロック「Ｙ」などのブロックが、ブロックマッピング表から「得られ」、そうでない場合は、ブロックマッピング表を使用して識別される。得られるブロックは、内容をコピーまたは更新するために、ブロックマピング表から有効にスワップされるブロックである。
【００６６】
ブロック「Ｙ」が得られた後、ステップ６０８において、ブロック「Ｘ」などのブロックが、最低頻度消去ブロック表から有効に得られる。すなわち、スペアブロックが、適切なスペアブロックを識別するために、最低頻度消去ブロック表を使用して最低頻度消去ブロックのグループから得られる。一般に、ブロック「Ｘ」は、最低頻度消去ブロックのグループにおいて最低消去カウントを有するブロックであるが、ブロック「Ｘ」は、最低頻度消去ブロックのグループ、したがって最低頻度消去ブロック表に関連付けられたほぼあらゆるブロックとすることが可能である。ブロック「Ｙ」に記憶されているデータ内容、またはブロック「Ｙ」の当初の内容と置き換えられる新しい内容が、ステップ６１２においてブロック「Ｘ」にコピーされる。
【００６７】
ブロック「Ｙ」の内容がブロック「Ｘ」にコピーされた後、ブロック「Ｘ」は、ステップ６１６において、ブロックマピング表に有効に移動される、または関連付けられる。すなわち、ブロック「Ｙ」およびブロック「Ｘ」に関連するマッピングは、ブロック「Ｙ」に以前にマッピングされたＬＢＡがブロック「Ｘ」に再度マッピングされるように、有効に更新される。ブロック「Ｘ」がブロックマッピング表に有効に移動されるとき、ステップ６２０において、ブロック「Ｙ」は消去される。具体的には、ユーザ内容など、ブロック「Ｙ」に記憶されているデータ内容は、ほぼあらゆる適切な技術を使用して消去されることが可能である。次いで、ブロック「Ｙ」に関連付けられた冗長領域に記憶されているブロック「Ｙ」に関連付けられた消去カウントは、ブロック「Ｙ」が再び消去されたことを示すために、ステップ６２４において増分される。一実施形態では、消去カウントブロックに有効に記憶されている「Ｙ」の消去カウントが、更新されることが可能であることを理解されたい。
【００６８】
ステップ６２８において、最高頻度消去ブロック表において最低消去カウントを有するブロックが識別される。上述されたように、一実施形態では、最高頻度消去ブロック表において参照されるブロックが、それぞれの消去カウントに従って分類される。ブロックを分類することは、ブロックの消去カウントに従って、最高頻度消去ブロック表内においてブロックに対する参照を位置決めすることを含むことが可能である。したがって、最高消去カウントを有するブロックを識別することは、最低消去カウントを有するブロック参照に収容するように構成される最高頻度消去ブロック表内の位置において、ブロック参照にアクセスすることを一般に含む。
【００６９】
最高頻度消去ブロック表において参照された最低消去カウントを有するブロックが識別された後、プロセス流れは、ステップ６２８からステップ６３２に移行し、ブロック「Ｙ」の消去カウントが、最高頻度消去ブロック表において参照された最低消去カウントを有するブロックの消去カウントより大きいかについて判定される。ブロック「Ｙ」の消去カウントが、最高頻度消去カウント表において参照された最低消去カウントを有するブロックの消去カウントより大きくないと判定される場合、ブロック「Ｙ」は、頻繁に消去されると見なされないことを意味する。したがって、プロセス流れは、ステップ６３２からステップ６３６に進行し、ブロック「Ｙ」は、最低頻度消去ブロックのグループから移動され、最低頻度消去ブロック表に有効に移動される。すなわち、ブロック「Ｙ」に対応するエントリが、最低頻度消去ブロック表に追加される。一実施形態では、ブロック「Ｙ」を最低頻度消去ブロックのグループに移動させることは、各ブロックの消去カウントを使用して最低頻度消去ブロック表においてほぼすべてのブロック参照を分類することを含むことが可能である。ブロック「Ｙ」が最低頻度消去ブロック表に有効に移動された後、ブロックをスワップまたは更新するプロセスは、完了される。
【００７０】
ステップ６３２に戻ると、ステップ６３２において、ブロック「Ｙ」の消去カウントが、最高頻度消去ブロック表に関連付けられた最低消去カウントを超えると判定される場合、ブロック「Ｙ」は、最高頻度消去ブロックのグループに移動されるべきであり、かつ最高頻度消去ブロック表に有効に移動されるべきであることを意味する。ブロック「Ｙ」が最高頻度消去ブロック表において参照される余地が存在するために、最高頻度消去ブロック表において参照された最低消去カウントを有するブロックなどのブロックが、最高頻度消去ブロック表から除去されることが、実際上必要である。したがって、ステップ６４０において、最高頻度消去ブロック表において参照された最低消去カウントを有するブロックは、最低頻度消去ブロックのグループに移動され、かつ最低頻度消去ブロック表に有効に移動される。ブロックを最低頻度消去ブロックのグループに移動させることは、各ブロックの消去カウントに従って、最低頻度消去ブロック表においてブロック参照を再度分類することを含むことが可能である。
【００７１】
最高頻度消去ブロック表において最低消去カウントを有するブロックが、最高頻度消去ブロック表から有効に移動された後、ステップ６４４において、ブロック「Ｙ」は、最高頻度消去ブロック表に有効に移動される。一実施形態では、ブロック「Ｙ」を最高頻度消去ブロックのグループに移動させ、したがって最高頻度消去ブロック表に有効に移動させることは、ブロック「Ｙ」を含めて、各ブロックの消去カウントに従って最高頻度消去ブロックを分類することを含むことが可能である。ブロック「Ｙ」が最高頻度消去ブロック表に有効に移動されるとき、ブロックをスワップまたは更新するプロセスは、完了される。
【００７２】
一般に、ブロックをスワップまたは更新する要求に応答することなど、表を維持すること、初期化要求に対処すること、および摩耗一様化を実施することに関連付けられる機能は、プログラムコード装置などのソフトウエアにおいて、またはファームウエアとしてホストシステムに提供される。摩耗一様化が行われることを可能にするために、ホストシステムに提供されるソフトウエアまたはファームウエアに関連付けられる適切なシステムアーキテクチャの一実施形態が、図７に示される。システムアーキテクチャ７００は、アプリケーションインタフェース７０４、システム・マネジャ・モジュール７０８、データ・マネジャ・モジュール７１２、データ保全マネジャ７１６、ならびに装置マネジャおよびインタフェースモジュール７２０などを含むが、これに限定されない、様々なモジュールを一般に含む。一般に、システムアーキテクチャ７００は、図１ａのプロセッサ１０８など、プロセッサによってアクセスされることが可能であるソフトウエアコード装置またはファームウエアを使用して実施されることが可能である。
【００７３】
一般に、アプリケーション・インタフェース・モジュール７０４は、初期化要求の過程中に媒体を初期化するために、フラッシュメモリ（図示せず）、またはより一般的には媒体と通信するように構成されることが可能である。アプリケーション・インタフェース・モジュール７０４は、媒体に関連付けられたセクタ、クラスタ、またはページから読み取られる、ならびにそれに書き込まれることも可能である。通常、媒体と通信することに加えて、アプリケーション・インタフェース・モジュール７０４は、システム・マネジャ・モジュール７０８およびデータ・マネジャ・モジュール７１２とも通信する。
【００７４】
一般に、アプリケーション・インタフェース・モジュール７０４は、ホスト、オペレーティングシステム、またはユーザと直接通信するように構成されることが可能である。アプリケーション・インタフェース・モジュール７０４は、システム・マネジャ・モジュール７０８およびデータ・マネジャ・モジュール７１２とも通信する。ユーザがフラッシュメモリを読み取る、それに書き込む、またはそれをフォーマットすることを望むとき、ユーザは、要求をオペレーティングシステムに送信し、要求は、アプリケーション・インタフェース・モジュール７０４に渡される。アプリケーション・インタフェース・モジュール７０４は、要求に応じて、要求をシステム・マネジャ・モジュール７０８またはデータ・マネジャ・モジュール７１２に向ける。
【００７５】
システム・マネジャ・モジュール７０８は、システム初期化サブモジュール７２４、消去カウントブロック管理サブモジュール７２６、および電力管理ブロックサブモジュール７３０を含む。システム初期化サブモジュール７２４は、一般に、初期化要求が処理されることを可能にするように構成され、通常、消去カウントブロック管理サブモジュール７２６と通信する。一実施形態では、システム初期化サブモジュール７２４は、ブロックの消去カウントが更新されることを可能にし、最低頻度使用ブロック表および最高頻度使用ブロック表を創出する役割を実質的に担う。
【００７６】
消去カウントブロック管理サブモジュール７２６は、たとえば消去カウントブロックに、ブロックの消去カウントを記憶する機能と、個々の消去カウントを使用して、平均消去カウントを計算ならびに更新する機能とを含む。すなわち、消去カウントブロック管理サブモジュール７２６により、有効に、消去カウントをカタログ化することが可能になり、かつ平均消去カウントを維持することが可能になる。さらに、一実施形態では、消去カウントブロック管理サブモジュール７２６は、また、システム全の初期化要求中に、消去カウントブロックのほぼすべてのブロックの消去カウントをほぼ同期させる。消去カウントブロック管理サブモジュール７２６は、平均消去カウントが消去カウントブロックに記憶されるように構成されることが可能であるが、電力管理ブロックサブモジュール７３０は、代わりに、平均消去カウントが記憶されることを可能にするために使用されることが可能であることを理解されたい。
【００７７】
アプリケーション・インタフェース・モジュール７０４と通信することに加えて、システム・マネジャ・モジュール７０８は、データ・マネジャ・モジュール７１２、ならびに装置マネジャおよびインタフェースモジュール７２０とも通信する。システム・マネジャ・モジュール７０８およびアプリケーション・インタフェース・モジュール７０４の両方と通信するデータ・マネジャ・モジュール７１２は、ページまたはブロックのマッピングを提供する機能を含むことが可能である。データ・マネジャ・モジュール７１２は、オペレーティングシステムおよびファイル・システム・インタフェース層に関連する機能を含むことも可能である。
【００７８】
システム・マネジャ・モジュール７０８、データ・マネジャ７１２、およびデータ保全マネジャ７１６と通信する装置マネジャおよびインタフェースモジュール７２０は、通常、フラッシュ・メモリ・インタフェースを提供し、Ｉ／Ｏインタフェースなど、ハードウエアアブストラクションに関連する機能を含む。データ保全マネジャモジュール７１６は、機能の中でも、ＥＣＣハンドリングを提供する。
【００７９】
上述されたように、不揮発性メモリシステムの各ブロックの消去カウントが、不揮発性メモリシステムに関連付けられたシステムまたはＮＡＮＤメモリに記憶される確保されたブロックである消去カウントブロックに記憶されることが可能である。消去カウントブロックは、各ブロックの消去カウントの他に、平均消去カウント平均消去カウントを含むことも可能である。図８ａは、本発明の実施形態による、消去カウントブロックの概略図である。消去カウントブロック８００は、消去カウントブロック８００が、消去カウントブロック８００を含む全不揮発性メモリ内に、各ブロックすなわち物理ブロックについてあるビット数を含むように、一般にサイズ決めされる。各ブロックに有効に割り付けられるビット数は、ブロックの全消去カウントが割り付けられたビット数によって適応されることが可能であるように選択されることが可能である。一実施形態では、消去カウントブロック８００は、各ブロックについて約３バイトを含むことが可能であるが、その理由は、３バイトは、約１０万の大きさの消去カウントに適応するために、一般に十分であるからである。３バイトが各ブロックに割り付けられるとき、ブロックあたり６４ページを有する約２０４８のブロックを含む５１２Ｍｂシステムでは、消去カウントブロック８００は、約６０００バイトなど、約１２ページを含むようにサイズ決めされることが可能である。
【００８０】
消去カウントブロック８００は、当業者なら理解するように、消去カウントなどのデータを記憶するために使用されることが可能である約５１２バイトをしばしば含むページ８１０を含む。図示されるように、第１ページ８１０ａが、ブロック「０」から「１６９」の消去カウントエントリを含むように構成されることが可能であり、一方、第２ページ８１０ｂが、ブロック「１７０」から「３３９」の消去カウントエントリを含むように構成されることが可能である。ブロック「１」、すなわち物理ブロック「１」の消去カウントが書き込まれる、または読み取られるとき、第１ページ８１０ａの３から５のバイトがアクセスされることが可能であるが、その理由は、第１ページ８１０ａのバイト３から５は、図８ｂおよび８ｃに関して以下で記述されるように、ブロック「１」に対応する消去カウントエントリを含むように構成されるからである。
【００８１】
消去カウントブロック８００は、ページ８１０を含むことに加えて、消去カウントブロック８００内のほぼあらゆる箇所に一般に配置されることが可能であるヘッダ８２０をも含む。ヘッダ８２０は、図９に関して以下で議論され、ページ８１０に記憶されている消去カウントに関連付けられたブロックを含む不揮発性フラッシュメモリに関する情報を含む消去カウントブロック８００のページとすることが可能である。
【００８２】
図８ｂは、本発明の実施形態による、図８ａの消去カウントブロック８００のページ８１０ａなど、消去カウントブロック内のページの概略図である。ページ８１０ａは、約１７０の物理ブロックに対応するエントリ８３０を保持するように構成される。図示されるように、エントリ８３０は、ページ８１０ａの第１エントリ８３０ａがブロック「０」の消去カウントを含むように構成され、第２エントリ８３０ｂがブロック「１」の消去カウントを含むように構成されるように、ブロックの消去カウントを含む。ページ１８０ａの最終エントリ８３０ｄが、ブロック「１６９」の消去カウントを保持するように構成される。
【００８３】
各エントリ８３０は、ほぼ同じバイト数を含む。図８ｃに示されるように、ブロック「０」に対応するエントリ８３０ａは、ページ８１０ａにおいてバイト０から２とすることが可能であり、一方、ブロック「２」に対応するエントリ８３０ｃは、ページ８１０ａにおいてバイト６から８とすることが可能である。以前に記述されたように、各エントリ８３０は、約３バイトを含むことが可能であるが、各エントリ８３０のバイト数、およびしたがってページ８１０ａのエントリ８３０の数は、変更されることが可能であることを理解されたい。例として、一実施形態では、各エントリ８３０は、約４バイトを含むことが可能である。
【００８４】
ページ８１０ａの各エントリ８３０は、消去カウントを含むように構成されるが、エントリ８３０は、必ずしも消去カウントを含むとは限らない。たとえば、製造または工場の欠陥などのために、特定のブロックが使用不能であり、また、そのブロックに書き込まれる、またはそのブロックから読み取られることが可能ではない場合、そのブロックは、一般に消去カウントを有さない。したがって、図８ａの消去カウントブロック８００などの消去カウントブロックは、使用不能ブロックの消去カウントを含むエントリを一般に有さない。代わりに、消去カウントを保持するのではなく、使用不能ブロックのエントリ８３０は、ブロックを使用不能であると識別するように構成されるインジケータまたはマーキングを保持することが可能である。
【００８５】
図８ｄは、本発明の実施形態による、消去カウント、および特定のブロックが使用不能であることを示すエントリを含む、図８ａの消去カウントブロック８００のページ８１０ａなど、消去カウントブロックのページの概略図である。ブロックが使用可能であるとき、または書き込まれる、もしくは読み取られることが可能であるとき、ブロックは、一般に、消去カウントを有する。たとえば、ブロック「０」に対応する消去カウントを含むように構成されるページ８１０ａのエントリ８３０ａは、ブロック「０」が１００回消去されたとき、「１００」の値を含むことが可能である。同様に、ページ８１０ａのエントリ８３０ｂは、ブロック「１」が３０回消去されたとき、「３０」の値を含むことが可能である。
【００８６】
たとえばブロック「２」内に記憶されているマーキングにより、ブロック「２」が使用不能ブロックであると識別された場合、ブロック「２」に対応するページ８１０ａのエントリ８３０ｃは、ブロック「２」が使用可能ではないことを示すように構成されたマーキングを含むことが可能である。一実施形態では、エントリ８３０ｃの「ＦＦＦＦＦＦ」のマーキングが、工場の欠陥のために、ブロック「２」が使用不能であることを示すことが可能である。ほぼあらゆるマーキングが、ブロックが使用不能であることを示すために使用されることが可能であることを理解されたい。
【００８７】
上記で議論されたように、図８ａの消去カウントブロック８００などの消去カウントブロックが、ヘッダ８２０を通常含み、ヘッダは、一実施形態では、不揮発性メモリシステム内のブロックに一般に関する情報を含む消去カウントブロック８００内のページである。次に図９を参照すると、図８ａの消去カウントブロック８００のヘッダ８２０など、消去カウントブロックのヘッダが、本発明の実施形態により記述される。ヘッダ８２０は、消去カウントブロック内のほぼあらゆる箇所に配置されることが可能であり、情報を記憶するために使用されることが可能である約５１２バイトを含むことが可能である。ヘッダ８２０に記憶されている情報は、署名８５０ａおよび区分情報８５０ｂを含む。署名８５０ａは、セキュリティチェックのために使用されることが可能である。
【００８８】
平均消去カウントが、不揮発性メモリのシステムメモリのほぼあらゆる箇所に記憶されることが可能であるが、記述される実施形態では、平均消去カウントは、情報８５０ｂとしてヘッダ８２０に記憶される。
【００８９】
電力が、消去カウントブロックを含む不揮発性メモリにまず提供されるとき、消去カウントブロックが、一般に初期化される、そうでない場合は消去カウトブロックが作成される。すなわち、不揮発性メモリシステムの不揮発性メモリがまずフォーマットされるとき、消去カウントブロックが、通常、初期化される。図１０を参照すると、不揮発性メモリシステムの不揮発性メモリがまずフォーマットされるとき、消去カウントブロックを初期化する１つの方法に関連するステップが、本発明の実施形態により記述される。プロセス１０００が、ステップ１００４において開始され、不揮発性メモリシステム内のすべてのブロック、またはより具体的にはすべての物理ブロックが調査される。ブロックを調査することは、どのブロックが使用不能である可能性があるか、すなわち、どのブロックが不揮発性メモリの製造業者によって使用不能であると識別されることが可能であるかを判定するために、ブロックの内容を調査することを含むことが可能である。したがって、ステップ１００８において、不揮発性メモリ内の使用不能ブロックが識別される。使用不能ブロックを識別することは、工場の欠陥を有する、またはそうでない場合は含むブロックを識別するために既知である、たとえば「ＦＦＦＦＦＦ」などの特定のマーキングであるマーキングを含む各ブロックを識別することを含むことが可能である。
【００９０】
ほぼすべての使用不能ブロックが識別された後、使用不能ブロックは、ステップ１０１２において、使用不能であると消去カウントブロックにおいてマークされる、またはそうでない場合は識別される。特定のブロックを使用不能であるとマークすることは、特定のマーキングまたはコードを、そのブロックが使用不能であると識別するブロックについて確保される消去カウントブロックの一部に配置することを含むことが可能である。消去カウントブロックにおいて使用不能ブロックをマークすることは、不揮発性メモリ内の使用不能ブロックの総数のカウントを含むように、消去カウントブロックのヘッダを更新することをも通常含むことを理解されたい。
【００９１】
使用不能ブロックが消去カウントブロックにおいてマークされた後、使用可能ブロック、または工場の欠陥を有さないブロックの消去されていない消去カウントが、ステップ１０１６において初期化される。消去カウントを初期化することは、消去されていない各ブロックの消去カウントをゼロの値に設定することを含むことが可能である。ブロックの消去カウントが、ブロックに関連付けられた冗長領域またはオーバーヘッド領域の少なくとも１つに通常記憶される。次いで、消去されたおよび消去されていない使用可能ブロックの両方である使用可能ブロックに対応する消去カウントは、ステップ１０２０において、消去カウントブロックにおいて設定されることが可能である。通常、消去カウントブロックに記憶されている消去カウントが、ゼロの値に設定される、またはそうでない場合は初期化されることが可能であり、あるいは未消去ブロックの場合、対応する未消去ブロックに記憶されている消去カウントと同じ値に設定される、またはそうでない場合は初期化されることが可能である。すなわち、未消去ブロックの消去カウントは、一般に、そのブロックに対応する位置の消去カウントブロックに記憶されている消去カウントと同じである。消去カウントが消去カウントブロックにおいてエントリとして設定された後、平均消去カウントは、ステップ１０３４において、消去カウントブロックにおいて設定されることが可能である。以前に議論されたように、平均消去カウントは、消去カウントブロックのヘッダに記憶されることが可能である。使用可能ブロックの消去カウントが、すべてゼロの値に初期化されるとき、平均消去カウントは、当初、ゼロの値に設定されることが可能である。不揮発性メモリに含まれる不揮発性メモリをフォーマットするプロセスは、平均消去カウントが設定された後、完了される。
【００９２】
初期化プロセスが不揮発性メモリシステム内において処理されるたびに、消去カウントブロックのエントリが更新されることが可能である。しかし、消去カウントブロックは、たとえばユーザによって出されるコマンドに応答して、ほぼ随時更新されることが一般に可能であることを理解されたい。次に図１１を参照すると、初期化要求に応答して消去カウントブロックを更新する１つの方法に関連するステップが、本発明の実施形態により記述される。消去カウントブロックを更新するプロセス１１００が、ステップ１１０８において開始され、未消去使用可能ブロックが得られる。当業者なら理解するように、未消去使用可能ブロックが、一般にデータを得て、有効に使用される。消去カウントブロックにおいて未消去使用可能ブロックについて記憶されている消去カウントエントリが、ステップ１１０８において得られる。すなわち、未消去使用可能ブロックの消去カウントに対応する消去カウントブロックのエントリが、読み取られる。ステップ１１０８において得られた未消去使用可能ブロックの消去カウントのエントリが読み取られた後、ステップ１１１６において、消去カウントエントリが、未消去使用可能ブロックに記憶されている消去カウントより小さい値を有するかについて判定される。
【００９３】
ステップ１１１６において、未消去使用可能ブロックについて消去カウントブロックに記憶されている消去カウントエントリが、未消去使用可能ブロックに記憶されている消去カウントより小さいと判定される場合、消去カウントブロックに記憶されている消去カウントエントリが現行のものではないことを意味する。したがって、プロセスの流れは、ステップ１１１６からステップ１１２０に移行し、未消去使用可能ブロックに対応するエントリとして消去カウントブロックに記憶される消去カウントは、更新される。消去カウントエントリを更新することは、未消去使用可能ブロックの現行消去カウントを消去カウントブロックに記憶することを通常含む。消去カウントエントリが更新された後、ステップ１１２４において、処理される未消去使用可能ブロックがさらに存在するかについて判定が行われる。
【００９４】
ステップ１１２４において、処理される未消去使用可能ブロックがさらに存在すると判定されるとき、プロセスの流れは、ステップ１１０８に戻り、他の未消去使用可能ブロックが得られる。代替として、消去カウントブロックのほぼすべての未消去使用可能ブロックの消去カウントエントリが更新されたなど、ほぼすべての未消去使用可能ブロックが処理されたと判定されるとき、ステップ１１２８において、不揮発性メモリ内のすべての使用可能ブロックの平均消去カウントが再計算される。当業者なら理解するように、平均消去カウントは、図１３に関して以下で記述されるように、消去カウントブロックに記憶されているすべての消去カウントを合計し、次いで、消去カウントブロックに記憶されている消去カウントの数によって除算することによって、決定されることが可能である。平均消去カウントが再計算された後、再計算された平均消去カウントは、ステップ１１３２において、消去カウントブロックに記憶される。以前に議論されたように、平均消去カウントは、消去カウントブロックのヘッダに記憶されることが可能である。平均消去カウントが記憶された後、初期化要求に応答して消去カウントブロックを更新するプロセスは、完了される。
【００９５】
ステップ１１１６に戻ると、得られた未消去使用可能ブロックの消去カウントブロックの消去カウントエントリが、得られた未消去使用可能ブロックに記憶されている消去カウントより小さくないと判定されるとき、消去カウントブロックの消去カウントエントリが最新であることを意味する。したがって、プロセスの流れは、ステップ１１１６からステップ１１２４にほぼ直接移行し、処理される未消去使用可能ブロックがさらに存在するかについて判定される。
【００９６】
以前に議論されたように、ブロックの消去カウントが、ブロックに関連付けられた冗長領域またはオーバーヘッド領域に少なくとも１つに記憶される。たとえば、ブロックの消去カウントが、ブロック内の第１ページに関連付けられた少なくとも冗長領域に記憶されることが可能である。しかし、ブロックが消去されるとき、消去カウントを含めてブロックのほぼすべての内容が、通常消去される。したがって、消去ブロックが使用のために得られるとき、すなわち、消去ブロックが最低頻度消去ブロック表などのスペア・ブロック・プールから得られるとき、消去ブロックは、消去カウントを含まない。
【００９７】
通常、使用のためにスペア・ブロック・プール、すなわちスペアブロックから得られた消去ブロックの消去カウントが、消去カウントブロックから読み取られることが可能である。図１２は、本発明の実施形態による、スペアブロックの消去カウントを得る１つの方法に関連するステップを示すプロセス流れ図である。スペアブロックの消去カウント１２００を得るプロセスが、ステップ１２０４において開始され、得られたスペアブロックの消去エントリが、消去カウントブロックから読み取られる。具体的には、スペアブロックの消去カウントに対応する消去カウントブロックに記憶されているビットが読み取られる。次いで、ステップ１２０８において、消去カウントエントリのビットが有効であるかについて、判定が行われる。すなわち、スペアブロックの消去カウントエントリのビットが、以前に記憶された消去カウントを表すかについて、または、ビットが、増大する欠陥のために以前に利用不可能であったとスペアブロックを識別するかなど、スペアブロックの消去カウントエントリのビットが他のことを表すかについて、判定が行われる。
【００９８】
ステップ１２０８において、消去カウントエントリ、または消去カウントブロックから読み取られた消去カウントが、有効な消去カウントではないと有効に判定される場合、プロセスの流れは、ステップ１２０８からステップ１２１２に移行し、この消去ブロックは、消去ブロックがスペア・ブロック・プールから得られた場合、スペア・ブロック・プールから除去され、または、消去ブロックがスペア・ブロック・プールから得られなかった場合、スペア・ブロック・プールに追加されない。
【００９９】
代替として、ステップ１２０８において、スペアブロックの消去カウントブロックの消去カウントエントリの内容が、消去カウントとして使用されるのに有効であると判定される場合、プロセスの流れは、ステップ１２０８からステップ１２１６に移行し、消去カウントエントリの内容は、スペアブロックの消去カウントとして設定される。すなわち、スペアブロックの消去カウントブロックから読み取られた消去カウントが、有効な消去カウントである場合、消去カウントブロックから読み取られた消去カウントは、スペアブロックの実際の消去カウントとして設定される。スペアブロックの消去カウントが、消去カウントブロックから読み取られた消去カウントに設定された後、スペアブロックの消去カウントを得るプロセスは、完了される。
【０１００】
一般に、平均消去カウントを計算する、または再計算することに関連するステップは、大きく変更されることが可能である。図１３は、本発明の実施形態による、平均消去カウントを計算する１つの方法を示すプロセス流れ図である。平均消去カウントを計算するプロセス１３００が、ステップ１３０４において開始され、すべての使用可能ブロックの消去カウントが得られる。消去される未消去かつ使用可能なブロックにある使用可能ブロックが、関連付けられた消去カウントを有するので、使用不能ブロックが、一般に、消去カウントを有さない、または獲得可能な消去カウントを有さない間、使用可能ブロックのほぼ唯一の消去カウントが得られる。消去カウントは、消去カウントブロックから通常得られるが、未消去使用可能ブロックの消去カウントは、代わりに、未消去使用可能ブロックの冗長領域から得られることが可能であることを理解されたい。
【０１０１】
使用可能ブロックの消去カウントが得られた後、使用可能ブロックの消去カウントは、ステップ１３０８において合計される。すなわち、使用可能ブロックの消去カウントは、共に加算される。次いで、ステップ１３１２において、使用可能ブロックの総数が、ステップ１３１２において決定される。使用可能ブロックの総数は、消去カウントブロックからブロックの総数および未使用ブロックの総数を得て、次いで、ブロックの総数から使用不能ブロックの総数を減算することによって、決定されることが可能である。代替として、使用可能ブロックの総数は、すべてのブロックを経て有効に循環させ、すべての使用可能ブロックのランニングカウントを維持することによって、得られることが可能である。
【０１０２】
使用可能ブロックの総数が得られた後、すべての使用可能ブロックの消去カウントの合計は、平均消去カウントを生成するために、ステップ１３１６において使用可能ブロックの総数によって除算される。使用可能ブロックの総数が消去カウントの合計に分割された後、平均消去カウントを生成するプロセスは完了される。
【０１０３】
本発明のごく少数の実施形態が記述されたが、本発明は、本発明の精神または範囲から逸脱せずに、多くの他の特有の形態において実現されることが可能であることを理解されたい。例として、消去カウントブロック内における消去カウントブロックのサイズおよびヘッダの位置は、大きく変更されることが可能である。さらに、消去カウントブロックのヘッダの内容も、特定のシステムの要件に応じて、変更されることが可能である。
【０１０４】
不揮発性メモリシステムは、関連付けられたメモリ制御装置によって制御される、ホストシステムと関連付けられたソフトウエアまたはファームウエアを使用して制御されると記述されたが、消去カウント管理を含む摩耗一様化プロセスは、不揮発性メモリシステムの実質的に外部にある制御装置と通信する不揮発性メモリシステムに適用されることが可能であることを理解されたい。制御装置を使用する適切なメモリシステムには、ＰＣカード、コンパクトフラッシュ（登録商標）カード、マルチメディアカード、セキュア・デジタル・カード、ならびにフラッシュメモリおよびフラッシュメモリ制御装置を含む埋込みチップセットがあるが、これに限定されるものではない。ホストシステムにロードされたソフトウエアまたはファームウエアを使用することにより制御されるメモリシステムは、埋込みメモリ装置を含む。一実施形態では、上述された消去管理技術および消去カウントブロック管理技術を使用することが可能であり、かつメモリシステムに関連付けられた制御装置を使用しないメモリシステムが、摩耗一様化を実施するために、ホストコンピュータシステムなど、ホストに関連付けられた制御装置を使用することが可能である。すなわち、ホストが、ホストの制御装置を使用することにより摩耗一様化が行われるメモリに直接対処し、かつ管理することが可能である。
【０１０５】
消去カウントブロックは、いくつかのページを含むブロックであると一般的に記述された。しかし、システムメモリのほぼあらゆる適切なデータ構造が、消去カウントおよび平均消去カウントを保持するように構成されることが可能であることを理解されたい。
【０１０６】
一実施形態では、消去カウントブロックが、不揮発性メモリシステム内のブロックの消去カウントに対応するほぼ唯一のエントリを含むことが可能である。そのような実施形態では、消去カウントのヘッダに一般に含まれる情報は、データ構造、または消去カウントブロックとは別であるブロックに記憶されることが可能である。すなわち、平均消去カウントなどの情報は、消去カウントブロックが、実質的に、ブロックに関連付けられた消去カウントに属するエントリを含むようにのみ構成されるとき、消去カウントブロックに、またはより具体的には消去カウントブロックのヘッダに、必ずしも記憶されるとは限らない可能性がある。代替として、消去カウントブロックのヘッダに記憶されるのではなく、平均消去カウントが、消去カウントブロックのほぼあらゆる箇所に代わりに記憶されることが可能である。
【０１０７】
平均消去カウントは、すべての使用可能なブロックの消去カウントを合計し、次いで、使用可能ブロックの消去カウントの合計を使用可能ブロックの総数で除算することによって決定されると記述された。使用可能ブロックの総数で合計を除算するのではなく、合計は、ブロックの総数によって代わりに除算されることが可能であることを理解されたい。さらに、平均消去カウントは、一実施形態では、各ブロックが平均消去カウントにおいて本質的に考慮されるように、各使用不能ブロックの消去カウントを表すために現行平均消去カウントを使用することによって、すべてのブロックの消去カウントを共に有効に合計することによって決定されることが可能である。次いで、使用可能ブロックの実際の消去カウントおよび使用不能ブロックの現行平均消去カウントを含めて、すべての消去カウントの合計は、新しいまたは更新された平均消去カウントを生成するために、ブロックの総数によって除算されることが可能である。
【０１０８】
ブロックの総数の各ブロックが消去された平均回数を有効に反映する平均消去カウントを計算するのではなく、各ブロックが消去された回数の他の特性が、代わりに計算されることが可能である。たとえば、使用ブロックなど、ブロックの総数の各ブロックが消去された中間数が、決定されることが可能である。
【０１０９】
メモリシステム内のブロックの消去カウントを維持するために、消去カウントブロックを使用することが記述されたが、消去カウントブロックは、代わりに、消去されることが可能であるほぼあらゆるメモリ要素の消去カウントを維持するために使用されることが可能であることを理解されたい。例として、一実施形態では、消去カウントブロックまたはデータ構造が、ブロックではなく、ページの消去カウントを維持することが可能である。
【０１１０】
一般に、摩耗一様化の様々なプロセスおよび方法に関連するステップは、大きく変更されることが可能である。ステップは、一般に、本発明の範囲の精神から逸脱せずに、追加、除去、変更、および再順序付けされることが可能である。したがって、本例は、例示的であり、かつ限定的ではないと見なされるべきであり、本発明は、本明細書において与えられた詳細に限定されるものではなく、添付の請求項の範囲内において修正されることが可能である。
【図面の簡単な説明】
【０１１１】
【図１ａ】本発明の実施形態による、不揮発性メモリ装置を含む汎用ホストシステムの概略図である。
【図１ｂ】本発明の実施形態による、図１ａのメモリ装置１２０など、メモリ装置の概略図である。
【図１ｃ】埋込み不揮発性メモリを含むホストシステムの概略図である。
【図２】本発明の実施形態による、フラッシュメモリの一部の概略図である。
【図３】本発明の実施形態による、フラッシュ・メモリ・システムに関する初期化要求を処理することに関連するステップを示すプロセス流れ図である。
【図４】本発明の実施形態による、静止ブロックを処理する１つの方法に関連するステップを示すプロセス流れ図である。
【図５ａ】本発明の実施形態による、システムメモリを示す概略的なブロック図である。
【図５ｂ】本発明の実施形態による、通常ブロック、最低頻度消去ブロック、および最高頻度消去ブロックを示す概略図である。
【図６】本発明の実施形態による、ブロックのより一様な摩耗を見込むために、メモリシステム全体のシステムメモリにおいてブロックスワップ／更新を実施する一方法を示す概略図である。
【図７】本発明の実施形態による、システムアーキテクチャを示す概略的なブロック図である。
【図８ａ】本発明の実施形態による、消去カウントブロックの概略図である。
【図８ｂ】本発明の実施形態による、ページが位置に実質的に分割された、図８ａの消去カウントブロック８００のページ８１０ａなど、消去カウントブロック内のページの概略図である。
【図８ｃ】本発明の実施形態による、ページがバイトに実質的に分割された、図８ａの消去カウントブロック８００のページ８１０ａなど、消去カウントブロック内のページの概略図である。
【図８ｄ】本発明の実施形態による、消去カウント、および特定のブロックが使用不能であることを示すエントリを含む、図８ａの消去カウントブロック８００のページ８１０ａなど、消去カウントブロックのページの概略図である。
【図９】本発明の実施形態による、図８ａの消去カウントブロック８００のヘッダ８２０など、消去カウントブロックのヘッダの概略図である。
【図１０】本発明の実施形態による、不揮発性メモリシステムの不揮発性メモリがまずフォーマットされるとき、消去カウントブロックを初期化する１つの方法に関連するステップを示すプロセス流れ図である。
【図１１】本発明の実施形態による、初期化応答に応答して消去カウントブロックを更新する１つの方法に関連するステップを示すプロセス流れ図である。
【図１２】本発明の実施形態による、スペアブロックの消去カウントを得る１つの方法に関連するステップを示すプロセス流れ図である。
【図１３】本発明の実施形態による、平均消去カウントを計算する１つの方法を示すプロセス流れ図である。
【図１ａ】
0004758648.tif 000002
【図１ｂ】
0004758648.tif 000003
【図１ｃ】
0004758648.tif 000004
【図２】
0004758648.tif 000005
【図３】
0004758648.tif 000006
【図４】
0004758648.tif 000007
【図５ａ】
0004758648.tif 000008
【図５ｂ】
0004758648.tif 000009
【図６】
0004758648.tif 000010
【図７】
0004758648.tif 000011
【図８ａ】
0004758648.tif 000012
【図８ｂ】
0004758648.tif 000013
【図８ｃ】
0004758648.tif 000014
【図８ｄ】
0004758648.tif 000015
【図９】
0004758648.tif 000016
【図１０】
0004758648.tif 000017
【図１１】
0004758648.tif 000018
【図１２】
0004758648.tif 000019
【図１３】
0004758648.tif 000020