(57)【要約】【課題】  不揮発性メモリの電源投入プロセスを効率的に行うことを可能にする。【解決手段】  本発明は、不揮発性メモリの電源投入プロセスを効率的に行うことを可能にするシステムおよび方法に関する。本発明のある局面によると、少なくとも１つの保留メモリ領域を含む不揮発性メモリを有するメモリシステムを利用する方法は、電力をメモリシステムに提供する工程と、不揮発性メモリを初期化する工程と、第１の署名を保留メモリ領域に書き込む工程とを含む。第１の署名はメモリシステムの初期化が成功したことを示すように構成される。ある実施形態において、この方法はまた、メモリシステムの電源切断プロセスを実行する工程と、電源切断プロセスが実行されたことを示す第２の署名を保留メモリ領域に書き込む工程とを含む。【選択図】  図４
2004152301.tif 000002
【特許請求の範囲】
【請求項１】
メモリシステムを利用する方法であって、該メモリシステムは、不揮発性メモリを含み、該不揮発性メモリは、少なくとも１つの保留メモリ領域を含み、該方法は、
電力を該メモリシステムに提供する工程と、
該不揮発性メモリを初期化する工程と、
第１の署名を該少なくとも１つの保留メモリ領域に書き込む工程であって、該第１の署名は該メモリシステムの初期化が成功したことを示すように構成される、工程と
を包含する、方法。
【請求項２】
前記メモリシステムの電源切断プロセスを実行する工程と、
第２の署名を前記少なくとも１つの保留メモリ領域に書き込む工程であって、該第２の署名は該電源切断プロセスが実行されたことを示すように構成される、工程と
をさらに含む、請求項１に記載の方法。
【請求項３】
前記第２の署名を少なくとも１つの保留メモリ領域に書き込む工程の後に、前記メモリシステムから電力を取り除く工程をさらに含む、請求項２に記載の方法。
【請求項４】
前記第２の署名を少なくとも１つの保留メモリ領域に書き込む工程は、さらなる情報を該第２の署名と共に該少なくとも１つの保留メモリ領域に書き込む工程を含む、請求項２に記載の方法。
【請求項５】
前記少なくとも１つの保留メモリ領域はブロックであり、前記第２の署名を少なくとも１つの保留メモリ領域に書き込む工程は、該第２の署名を該ブロックに含まれる第２のページに書き込む工程を含む、請求項２に記載の方法。
【請求項６】
前記第１の署名を少なくとも１つの保留メモリ領域に書き込む工程は、該第１の署名を該ブロックに含まれる第１のページに書き込む工程を含む、請求項５に記載の方法。
【請求項７】
前記電源切断プロセスは、ファイルコピープロセスを完了する工程および前記不揮発性メモリに関連付けられた物理ブロックを決定する工程のうちの少なくとも１つを含む、請求項２に記載の方法。
【請求項８】
前記第１の署名を少なくとも１つの保留メモリ領域に書き込む工程は、さらなる情報を該第１の署名と共に該少なくとも１つの保留メモリ領域に書き込む工程を含む、請求項１に記載の方法。
【請求項９】
前記少なくとも１つの保留メモリ領域はブロックであり、前記第１の署名を該少なくとも１つの保留メモリ領域に書き込む工程は、該第１の署名を該ブロックに含まれる第１のページに書き込む工程を含む、請求項１に記載の方法。
【請求項１０】
前記不揮発性メモリがＮＡＮＤフラッシュメモリである、請求項１に記載の方法。
【請求項１１】
少なくとも１つの保留メモリ領域を含む不揮発性メモリと、
電力を提供する手段と、
該不揮発性メモリを初期化する手段と、
第１の署名を該少なくとも１つの保留メモリに書き込む手段であって、該第１の署名は該不揮発性メモリの初期化が成功したことを示すように構成される、手段と
を備える、メモリシステム。
【請求項１２】
前記メモリシステムの電源切断プロセスを実行する手段と、
第２の署名を前記少なくとも１つの保留メモリ領域に書き込む手段であって、該第２の署名は該電源切断プロセスが実行されたことを示すように構成される、手段と
をさらに含む、請求項１１に記載のメモリシステム。
【請求項１３】
前記少なくとも１つの保留メモリ領域はブロックであり、前記第１の署名を該少なくとも１つの保留メモリ領域に書き込むことは、該第１の署名を該ブロックに含まれる第１のページに書き込むことを含み、前記第２の署名を少なくとも１つの保留メモリ領域に書き込むことは、該第２の署名を該ブロックに含まれる第２のページに書き込むことを含む、請求項１２に記載のメモリシステム。
【請求項１４】
前記不揮発性メモリがＮＡＮＤフラッシュメモリである、請求項１１に記載のメモリシステム。
【請求項１５】
不揮発性メモリ内の少なくとも１つの保留メモリ領域を維持するように構成されるコードデバイスと、
該不揮発性メモリの初期化が成功した場合、第１の署名が該少なくとも１つの保留メモリ領域に書き込まれるようにして、該不揮発性メモリの初期化が成功したことを示すコードデバイスと、
該コードデバイスを格納するように構成されたメモリデバイスと
を備える、メモリデバイス。
【請求項１６】
電源切断プロセスが成功した場合、第２の署名が前記少なくとも１つの保留メモリ領域に書き込まれるようにして、電源切断プロセスが成功したことを示すコードデバイスをさらに含む、請求項１５に記載のメモリデバイス。
【請求項１７】
前記少なくとも１つの保留メモリ領域がブロックであり、前記第１の署名が少なくとも１つの保留メモリ領域に書き込まれるようにしたコードデバイスは、該第１の署名が該ブロックに含まれる第１のページに書き込まれるようにしたコードデバイスを含み、前記第２の署名が少なくとも１つの保留メモリ領域に書き込まれるようにしたコードデバイスは、該第２の署名が該ブロックに含まれる第２のページに書き込まれるようにしたコードデバイスを含む、請求項１６に記載のメモリデバイス。
【請求項１８】
前記コードデバイスは、ソフトウェアコードデバイスおよびファームウェアコードデバイスのうちの１つである、請求項１５に記載のメモリデバイス。
【請求項１９】
メモリシステムを利用する方法であって、該メモリシステムは、不揮発性メモリを含み、該不揮発性メモリは、少なくとも１つの保留メモリ領域を含み、該方法は、
電力を該メモリシステムに提供する工程と、
該メモリシステムが以前に、実質的に正常な電源切断プロセスにかけられた場合を判定する工程と、
該メモリシステムが正常な電源切断プロセスを受けていないと判定される場合、該不揮発性メモリにおいて第１のプロセスを行う工程であって、該第１のプロセスは該不揮発性メモリを使用に備えて準備するように構成される、工程と、
該メモリシステムが正常な電源切断プロセスを受けたと判定される場合、該不揮発性メモリが用いられることを実質的に可能にする工程と
を包含する、方法。
【請求項２０】
前記不揮発性メモリが用いられることを実質的に可能にする工程は、第１の署名を前記少なくとも１つの保留メモリ領域に書き込んで、該不揮発性メモリが実質的に可能にされたことを示す工程を含む、請求項１９に記載の方法。
【請求項２１】
前記メモリシステムが以前に、実質的に正常な電源切断プロセスにかけられた場合を判定する工程は、前記少なくとも１つの保留メモリ領域が第１の署名を含むかについて判定する工程であって、該第１の署名は、正常な電源切断が以前起きたかを示すように構成される、工程を含む、請求項１９に記載の方法。
【請求項２２】
前記メモリシステムが以前に、実質的に正常な電源切断プロセスにかけられた場合を判定する工程は、前記少なくとも１つの保留メモリ領域が第２の署名を含むかについて判定する工程であって、該第２の署名は、該メモリシステムが初期化プロセスに以前にかけられたことを示すように構成される、工程を含む、請求項２１に記載の方法。
【請求項２３】
前記少なくとも１つの保留メモリ領域が前記第２の署名を含まず、前記第１の署名を含まないことが判定された場合、前記第１のプロセスは、初期化プロセスである、請求項２２に記載の方法。
【請求項２４】
前記少なくとも１つの保留メモリ領域が前記第２の署名を含み、前記第１の署名を含まないことが判定された場合、前記第１のプロセスは、データ修復プロセスである、請求項２２に記載の方法。
【請求項２５】
前記データ修復プロセスは、前記不揮発性メモリ内のメモリを取り戻すように構成される、請求項２４に記載の方法。
【請求項２６】
前記データ修復プロセスは、ファイルコピープロセスを完了する工程および前記不揮発性メモリと関連付けられた物理ブロックを決定する工程のうち少なくとも１つを含む、請求項２５に記載の方法。
【請求項２７】
前記第１のプロセスは、データ修復プロセスおよびメモリ初期化プロセスのうちの１つである、請求項１９に記載の方法。
【請求項２８】
前記不揮発性メモリは、ＮＡＮＤフラッシュメモリである、請求項１９に記載の方法。
【請求項２９】
少なくとも１つの保留メモリ領域を含む不揮発性メモリと、
電力を該メモリシステムに提供する手段と、
該メモリシステムが以前に、実質的に正常な電源切断プロセスにかけられた場合を判定する手段と、
該メモリシステムが正常な電源切断プロセスを受けていないと判定される場合、該不揮発性メモリにおいて第１のプロセスを行う手段であって、該第１のプロセスは該不揮発性メモリを使用に備えて準備するように構成される、手段と、
該メモリシステムが正常な電源切断プロセスを受けたと判定される場合、該不揮発性メモリが用いられることを実質的に可能にする手段と
を包含する、メモリシステム。
【請求項３０】
前記不揮発性メモリが用いられることを実質的に可能にする手段は、第１の署名を前記少なくとも１つの保留メモリ領域に書き込んで、該不揮発性メモリが実質的に可能にされたことを示す手段を含む、請求項２９に記載のメモリシステム。
【請求項３１】
前記メモリシステムが以前に、実質的に正常な電源切断プロセスにかけられた場合を判定する手段は、前記少なくとも１つの保留メモリ領域が第１の署名を含むかについて判定する手段であって、該第１の署名は、正常な電源切断が以前起きたかを示すように構成される、手段を含む、請求項２９に記載のメモリシステム。
【請求項３２】
前記メモリシステムが以前に、実質的に正常な電源切断プロセスにかけられた場合を判定する手段は、前記少なくとも１つの保留メモリ領域が第２の署名を含むかについて判定する手段であって、該第２の署名は、該メモリシステムが初期化プロセスに以前にかけられたことを示すように構成される、手段を含む、請求項３１に記載のメモリシステム。
【請求項３３】
前記少なくとも１つの保留メモリ領域が前記第２の署名を含まず、前記第１の署名を含まないことが判定された場合、該第１のプロセスは、初期化プロセスである、請求項３２に記載のメモリシステム。
【請求項３４】
前記少なくとも１つの保留メモリ領域が前記第２の署名を含み、前記第１の署名を含まないことが判定された場合、該第１のプロセスは、データ修復プロセスである、請求項３２に記載のメモリシステム。
【請求項３５】
前記メモリシステムが以前に、実質的に正常な電源切断プロセスにかけられた場合について判定が行われるようにするコードデバイスと、
該メモリシステムが正常な電源切断プロセスを受けていないと判定される場合、メモリシステムに関連付けられた不揮発性メモリにおいて第１のプロセスが行われるようにするように構成されるコードデバイスであって、該第１のプロセスは該不揮発性メモリを使用に備えて準備するように構成される、コードデバイスと、
該メモリシステムが正常な電源切断プロセスを受けたと判定される場合、該不揮発性メモリが用いられることを実質的に可能にするように構成される、コードデバイスと、
該コードデバイスを格納するように構成されたメモリデバイスと
を備える、メモリシステム。
【請求項３６】
前記不揮発性メモリが用いられることを実質的に可能にするように構成されるコードデバイスは、第１の署名を少なくとも１つの保留メモリ領域に書き込んで、該不揮発性メモリが用いられるために可能にされることを示すように構成される、請求項３５に記載のメモリシステム。
【請求項３７】
前記メモリシステムが以前に、実質的に正常な電源切断プロセスにかけられた場合について判定が行われるようにするコードデバイスは、前記不揮発性メモリの少なくとも１つの保留領域が、第１の署名を含むかについて判定が行われるようにするコードデバイスを含み、該第１の署名は正常電源切断プロセスが以前に起きたことを示すように構成される、請求項３５に記載のメモリシステム。
【請求項３８】
前記メモリシステムが以前に、実質的に正常な電源切断プロセスにかけられた場合について判定が行われるようにするコードデバイスは、前記不揮発性メモリの前記少なくとも１つの保留領域が、第２の署名を含むかについて判定が行われるようにするコードデバイスをさらに含み、該第２の署名は該メモリシステムが以前に初期化プロセスにかけられたことを示すように構成される、請求項３７に記載のメモリシステム。
【請求項３９】
前記少なくとも１つの保留メモリ領域が前記第２の署名を含まず、前記第１の署名を含まないと判定される場合、前記第１のプロセスは初期化プロセスである、請求項３８に記載のメモリシステム。
【請求項４０】
前記少なくとも１つの保留メモリ領域が前記第２の署名を含み、前記第１の署名を含まないことが判定された場合、前記第１のプロセスは、データ修復プロセスである、請求項３８に記載の方法。
【請求項４１】
不揮発性メモリと、
メモリシステムが以前に、実質的に正常な電源切断プロセスにかけられた場合について判定するように構成されて、該メモリシステムが以前に正常な電源切断プロセスにかけられていないと判断される場合、該不揮発性メモリにおいて第１のプロセスを行うコントロールデバイスであって、該第１のプロセスは、該不揮発性メモリを使用に備えて準備するように構成され、該メモリシステムが以前に正常な電源切断プロセスにかけられたと判断される場合、該不揮発性メモリが用いられることを実質的に可能にする、コントロールデバイスと
を備える、メモリシステム。
【請求項４２】
前記第１のプロセスは、データ修復プロセスおよびメモリ初期化プロセスのうちの１つである、請求項４１に記載の方法。
【請求項４３】
前記不揮発性メモリは、ＮＡＮＤフラッシュメモリである、請求項４１に記載の方法。
【請求項４４】
少なくとも１つの保留メモリ領域を含む不揮発性メモリと、
該不揮発性メモリを初期化し、第１の署名を該少なくとも１つの保留メモリ領域に書き込むように構成されるコントローラであって、該第１の署名は該メモリシステムの初期化が成功したことを示すように構成される、メモリシステム。
【請求項４５】
前記コントローラは前記メモリシステムの電源切断プロセスを実行し、第２の署名を前記少なくとも１つの保留メモリ領域に書き込むようにさらに構成され、該第２の署名は該電源切断プロセスが実行されたことを示すように構成される工程をさらに含む、請求項４４に記載のメモリシステム。
【請求項４６】
前記不揮発性メモリは、ＮＡＮＤフラッシュメモリである、請求項４４に記載のメモリシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
（１．発明の分野）
本発明は、概して、大容量デジタルデータ格納システムに関する。より具体的には、本発明は、電源を入れているメモリシステムの電源が、以前、正常に切られたか、または異常に切られたかについての判定を効率的に可能にするシステムおよび方法に関する。
【背景技術】
【０００２】
（２．関連技術の説明）
フラッシュメモリ格納システムなどの不揮発性メモリシステムの使用は、このようなメモリシステムの物理的サイズが小型であること、不揮発性メモリを繰り返し再プログラムすることができることに起因して、増加している。フラッシュメモリ格納システムの物理的サイズが小型であることによって、このような格納システムを、ますます普及しているデバイスにおいて用いることが容易になる。フラッシュメモリ格納システムを用いるデバイスには、デジタルカメラ、デジタルカメラ一体型ビデオ、デジタル音楽プレーヤー、ハンドヘルドパーソナルコンピュータ、およびグローバルポジショニングデバイスが含まれるが、デバイスは、これらに限定されない。フラッシュメモリ格納システムに含まれる不揮発性メモリの繰り返し再プログラムすることができる能力は、フラッシュメモリ格納システムが使用され、再使用されることを可能にする。
【０００３】
概して、フラッシュメモリ格納システムは、フラッシュメモリカードおよびフラッシュメモリチップセットを含み得る。フラッシュメモリチップセットは、概して、フラッシュメモリコンポーネントおよびコントローラコンポーネントを含む。典型的には、フラッシュメモリチップセットは、組み立てて埋込みシステムになるように構成され得る。このようなアセンブリまたはホストシステムの製造業者は、典型的には、フラッシュメモリをコンポーネントの形で、他のコンポーネントとともに獲得し、フラッシュメモリおよび他のコンポーネントをホストシステムに組み立てる。
【０００４】
メモリシステムの電源が切られる場合、ユーザがメモリシステムをシャットダウンしたか、または、メモリシステムに対する電力損失があるかのいずれかが原因で、電源切断が起きる。ユーザがメモリシステムの電源を切ることを選択する場合、メモリシステムは、概して、実質的に全ての進行中のプロセスを完了する。例えば、メモリシステムは、ホストシステムからメモリシステムに関連付けられたディレクトリへのファイルの書き込みプロセスを完了する。電源切断が、例えば、停電に起因する、予測されない、または急な電力損失が原因で起きる場合、進行中のプロセスは完了せず、典型的には中断される。
【０００５】
「正常」な環境で電源が切られた、例えば、メモリシステムへの電力を遮断するというユーザのリクエストに応答して切られたメモリシステムは、電力切断リクエストを受信したときに行われている全てのプロセスが完了しているので、概して、ディスクスキャンまたはデータ修復を行うことを必要としない。これは、典型的には、「正常シャットダウン」または「正常電源切断」と呼ばれる。しかし、当業者によって理解されるように、「異常」な環境で、例えば、停電、バッテリー切れ、または何らかの事故で電力が取り除かれることに起因して、電源が切断されたメモリシステムは、典型的には、ディスクスキャンおよびデータ修復が行われることを必要とする。異常な環境で電源が切られる場合、典型的には、「異常シャットダウン」または「異常電源切断」と呼ばれる。
【発明の開示】
【発明が解決しようとする課題】
【０００６】
従来のフラッシュ不揮発性メモリシステムにおいて、概して、メモリシステムは、電源切断が、意図されて、例えば、ユーザによるシャットダウンによって行われたのか、停電によって行われたのかを判定することができなかった。結果として、比較的時間がかかる修復プロセス、例えば、Ｗｉｎｄｏｗｓ（Ｒ）／ＤＯＳ環境における「スキャンディスク」プロセスが、典型的には、メモリシステムに電源が投入されるたびに、電源が正常に切られたか、または異常に切られたかに関わらず、行われる。メモリシステムが以前に異常環境でシャットダウンされた場合、スキャンディスクまたは類似のプロセスを行うことは、データ修復が行われることを可能にするが、メモリシステムが正常環境でシャットダウンされた場合にそのプロセスを行うことは、そのような修復プロセスが事実上不必要であるので、非効率的になり得る。
【０００７】
従って、メモリシステムが電源投入されるときに、メモリシステムが以前正常にシャットダウンされたか、異常にシャットダウンされたかを判定することを可能にするプロセスおよびシステムが所望される。すなわち、正常にシャットダウンされた場合にはメモリシステムがデータ修復に関連するプロセスを受けることなく、異常にシャットダウンされたメモリシステムに関連するデータをメモリシステムの電源投入のときに修復することを可能にする効率的な方法が必要とされる。
【課題を解決するための手段】
【０００８】
本発明は、不揮発性メモリの電源投入プロセスを効率的に行うことを可能にするシステムおよび方法に関する。本発明のある局面によると、少なくとも１つの保留メモリ領域を含む不揮発性メモリを有するメモリシステムを利用する方法は、電力をメモリシステムに提供する工程と、不揮発性メモリを初期化する工程と、第１の署名を保留メモリ領域に書き込む工程とを含む。第１の署名はメモリシステムの初期化が成功したことを示すように構成される。ある実施形態において、この方法はまた、メモリシステムの電源切断プロセスを実行する工程と、電源切断プロセスが実行されたことを示す第２の署名を保留メモリ領域に書き込む工程とを含む。
【０００９】
初期化および電源切断署名を含むように構成される電力管理ブロックのような保留メモリ領域は、以前に不揮発性メモリシステムから電力が取り除かれた原因がリクエストされた電源切断であったのか、または、停電であったのかについての判定が効率的に行われることを可能にする。ＮＡＮＤフラッシュメモリのような不揮発性メモリに電源が投入される場合、電力管理ブロックがアクセスされるときに、電力管理ブロックのコンテンツは、効率的にスキャンされ得るか、入手されて、一番最近の以前の電源切断がリクエストされたのか、または、停電に起因するものであったのかが判定される。例えば、電源切断署名が見つけられる場合、典型的には、以前の電源切断がリクエストされたものであったことの表れである。従って、メモリまたはデータ修復プロセスは、概して必要とされない。あるいは、電源切断またはシャットダウン署名は見つけられないが、初期化または電源投入署名は見つけられる場合、概して、以前の電源切断が停電に起因するものであったことの表れである。従って、データ修復プロセスは、行われ得る。実質的に、このようなプロセスが不揮発性メモリによって必要とされている場合、例えば、停電が以前に起きた場合にのみ、時間がかかるデータ修復プロセスを電源投入において行うか、または実行することによって、実質上データ修復が必要とされない場合にこのようなプロセスを避けることができるので、不揮発性メモリがより効率的に用いられることが可能になる。
【００１０】
本発明の他の局面によると、保留メモリ領域を含む不揮発性メモリを有するメモリシステムを利用する方法は、電力をメモリシステムに提供する工程と、メモリシステムが以前に、実質的に正常な電源切断プロセスにかけられた場合を判定する工程と、メモリシステムが正常な電源切断プロセスを受けていないと判定される場合、不揮発性メモリにおいて第１のプロセスを行う工程とを含む。第１のプロセスは、典型的には、不揮発性メモリを使用に備えて準備するように構成される。最終的に、その方法は、メモリシステムが正常な電源切断プロセスを受けたと判定される場合、不揮発性メモリが用いられることを実質的に可能にする工程を含む。
【００１１】
ある実施形態において、メモリシステムが以前に、実質的に正常な電源切断プロセスにかけられた場合を判定する工程は、保留メモリ領域が、正常な電源切断が以前起きたかについて第１の署名を含むかについて判定する工程を含む。このような実施形態において、メモリシステムが以前に、実質的に正常な電源切断プロセスにかけられた場合を判定する工程はまた、保留メモリ領域が、メモリシステムが初期化プロセスに以前にかけられたことを示す第２の署名を含むかについて判定する工程を含む。保留メモリ領域が第２の署名を含まず、第１の署名を含まないことが判定された場合、第１のプロセスは、初期化プロセスであり得る。保留メモリ領域が第２の署名を含み、第１の署名を含まないことが判定された場合、第１のプロセスは、データ修復プロセスであり得る。
【００１２】
本発明によるメモリシステムを利用する方法は、該メモリシステムは、不揮発性メモリを含み、該不揮発性メモリは、少なくとも１つの保留メモリ領域を含み、該方法は、電力を該メモリシステムに提供する工程と、該不揮発性メモリを初期化する工程と、第１の署名を該少なくとも１つの保留メモリ領域に書き込む工程であって、該第１の署名は該メモリシステムの初期化が成功したことを示すように構成される、工程とを包含し、それにより上記目的が達成される。
【００１３】
前記メモリシステムの電源切断プロセスを実行する工程と、第２の署名を前記少なくとも１つの保留メモリ領域に書き込む工程であって、該第２の署名は該電源切断プロセスが実行されたことを示すように構成される、工程とをさらに含んでもよい。
【００１４】
前記第２の署名を少なくとも１つの保留メモリ領域に書き込む工程の後に、前記メモリシステムから電力を取り除く工程をさらに含んでもよい。
【００１５】
前記第２の署名を少なくとも１つの保留メモリ領域に書き込む工程は、さらなる情報を該第２の署名と共に該少なくとも１つの保留メモリ領域に書き込む工程を含んでもよい。
【００１６】
前記少なくとも１つの保留メモリ領域はブロックであり、前記第２の署名を少なくとも１つの保留メモリ領域に書き込む工程は、該第２の署名を該ブロックに含まれる第２のページに書き込む工程を含んでもよい。
【００１７】
前記第１の署名を少なくとも１つの保留メモリ領域に書き込む工程は、該第１の署名を該ブロックに含まれる第１のページに書き込む工程を含んでもよい。
【００１８】
前記電源切断プロセスは、ファイルコピープロセスを完了する工程および前記不揮発性メモリに関連付けられた物理ブロックを決定する工程のうちの少なくとも１つを含んでもよい。
【００１９】
前記第１の署名を少なくとも１つの保留メモリ領域に書き込む工程は、さらなる情報を該第１の署名と共に該少なくとも１つの保留メモリ領域に書き込む工程を含んでもよい。
【００２０】
前記少なくとも１つの保留メモリ領域はブロックであり、前記第１の署名を該少なくとも１つの保留メモリ領域に書き込む工程は、該第１の署名を該ブロックに含まれる第１のページに書き込む工程を含んでもよい。
【００２１】
前記不揮発性メモリがＮＡＮＤフラッシュメモリであってもよい。
【００２２】
本発明によるメモリシステムは、少なくとも１つの保留メモリ領域を含む不揮発性メモリと、電力を提供する手段と、該不揮発性メモリを初期化する手段と、第１の署名を該少なくとも１つの保留メモリに書き込む手段であって、該第１の署名は該不揮発性メモリの初期化が成功したことを示すように構成される、手段とを備え、それにより上記目的が達成される。
【００２３】
前記メモリシステムの電源切断プロセスを実行する手段と、第２の署名を前記少なくとも１つの保留メモリ領域に書き込む手段であって、該第２の署名は該電源切断プロセスが実行されたことを示すように構成される、手段とをさらに含んでもよい。
【００２４】
前記少なくとも１つの保留メモリ領域はブロックであり、前記第１の署名を該少なくとも１つの保留メモリ領域に書き込むことは、該第１の署名を該ブロックに含まれる第１のページに書き込むことを含み、前記第２の署名を少なくとも１つの保留メモリ領域に書き込むことは、該第２の署名を該ブロックに含まれる第２のページに書き込むことを含んでもよい。
【００２５】
前記不揮発性メモリがＮＡＮＤフラッシュメモリであってもよい。
【００２６】
本発明によるメモリデバイスは、不揮発性メモリ内の少なくとも１つの保留メモリ領域を維持するように構成されるコードデバイスと、該不揮発性メモリの初期化が成功した場合、第１の署名が該少なくとも１つの保留メモリ領域に書き込まれるようにして、該不揮発性メモリの初期化が成功したことを示すコードデバイスと、該コードデバイスを格納するように構成されたメモリデバイスとを備え、それにより上記目的が達成される。
【００２７】
電源切断プロセスが成功した場合、第２の署名が前記少なくとも１つの保留メモリ領域に書き込まれるようにして、電源切断プロセスが成功したことを示すコードデバイスをさらに含んでもよい。
【００２８】
前記少なくとも１つの保留メモリ領域がブロックであり、前記第１の署名が少なくとも１つの保留メモリ領域に書き込まれるようにしたコードデバイスは、該第１の署名が該ブロックに含まれる第１のページに書き込まれるようにしたコードデバイスを含み、前記第２の署名が少なくとも１つの保留メモリ領域に書き込まれるようにしたコードデバイスは、該第２の署名が該ブロックに含まれる第２のページに書き込まれるようにしたコードデバイスを含んでもよい。
【００２９】
前記コードデバイスは、ソフトウェアコードデバイスおよびファームウェアコードデバイスのうちの１つであってもよい。
【００３０】
本発明によるメモリシステムを利用する方法は、該メモリシステムは、不揮発性メモリを含み、該不揮発性メモリは、少なくとも１つの保留メモリ領域を含み、該方法は、電力を該メモリシステムに提供する工程と、該メモリシステムが以前に、実質的に正常な電源切断プロセスにかけられた場合を判定する工程と、該メモリシステムが正常な電源切断プロセスを受けていないと判定される場合、該不揮発性メモリにおいて第１のプロセスを行う工程であって、該第１のプロセスは該不揮発性メモリを使用に備えて準備するように構成される、工程と、該メモリシステムが正常な電源切断プロセスを受けたと判定される場合、該不揮発性メモリが用いられることを実質的に可能にする工程とを包含し、それにより上記目的が達成される。
【００３１】
前記不揮発性メモリが用いられることを実質的に可能にする工程は、第１の署名を前記少なくとも１つの保留メモリ領域に書き込んで、該不揮発性メモリが実質的に可能にされたことを示す工程を含んでもよい。
【００３２】
前記メモリシステムが以前に、実質的に正常な電源切断プロセスにかけられた場合を判定する工程は、前記少なくとも１つの保留メモリ領域が第１の署名を含むかについて判定する工程であって、該第１の署名は、正常な電源切断が以前起きたかを示すように構成される、工程を含んでもよい。
【００３３】
前記メモリシステムが以前に、実質的に正常な電源切断プロセスにかけられた場合を判定する工程は、前記少なくとも１つの保留メモリ領域が第２の署名を含むかについて判定する工程であって、該第２の署名は、該メモリシステムが初期化プロセスに以前にかけられたことを示すように構成される、工程を含んでもよい。
【００３４】
前記少なくとも１つの保留メモリ領域が前記第２の署名を含まず、前記第１の署名を含まないことが判定された場合、前記第１のプロセスは、初期化プロセスであってもよい。
【００３５】
前記少なくとも１つの保留メモリ領域が前記第２の署名を含み、前記第１の署名を含まないことが判定された場合、前記第１のプロセスは、データ修復プロセスであってもよい。
【００３６】
前記データ修復プロセスは、前記不揮発性メモリ内のメモリを取り戻すように構成されてもよい。
【００３７】
前記データ修復プロセスは、ファイルコピープロセスを完了する工程および前記不揮発性メモリと関連付けられた物理ブロックを決定する工程のうち少なくとも１つを含んでもよい。
【００３８】
前記第１のプロセスは、データ修復プロセスおよびメモリ初期化プロセスのうちの１つであってもよい。
【００３９】
前記不揮発性メモリは、ＮＡＮＤフラッシュメモリであってもよい。
【００４０】
本発明によるメモリシステムは、少なくとも１つの保留メモリ領域を含む不揮発性メモリと、電力を該メモリシステムに提供する手段と、該メモリシステムが以前に、実質的に正常な電源切断プロセスにかけられた場合を判定する手段と、該メモリシステムが正常な電源切断プロセスを受けていないと判定される場合、該不揮発性メモリにおいて第１のプロセスを行う手段であって、該第１のプロセスは該不揮発性メモリを使用に備えて準備するように構成される、手段と、該メモリシステムが正常な電源切断プロセスを受けたと判定される場合、該不揮発性メモリが用いられることを実質的に可能にする手段とを包含し、それにより上記目的が達成される。
【００４１】
前記不揮発性メモリが用いられることを実質的に可能にする手段は、第１の署名を前記少なくとも１つの保留メモリ領域に書き込んで、該不揮発性メモリが実質的に可能にされたことを示す手段を含んでもよい。
【００４２】
前記メモリシステムが以前に、実質的に正常な電源切断プロセスにかけられた場合を判定する手段は、前記少なくとも１つの保留メモリ領域が第１の署名を含むかについて判定する手段であって、該第１の署名は、正常な電源切断が以前起きたかを示すように構成される、手段を含んでもよい。
【００４３】
前記メモリシステムが以前に、実質的に正常な電源切断プロセスにかけられた場合を判定する手段は、前記少なくとも１つの保留メモリ領域が第２の署名を含むかについて判定する手段であって、該第２の署名は、該メモリシステムが初期化プロセスに以前にかけられたことを示すように構成されてもよい。
【００４４】
前記少なくとも１つの保留メモリ領域が前記第２の署名を含まず、前記第１の署名を含まないことが判定された場合、該第１のプロセスは、初期化プロセスであってもよい。
【００４５】
前記少なくとも１つの保留メモリ領域が前記第２の署名を含み、前記第１の署名を含まないことが判定された場合、該第１のプロセスは、データ修復プロセスであってもよい。
【００４６】
前記メモリシステムが以前に、実質的に正常な電源切断プロセスにかけられた場合について判定が行われるようにするコードデバイスと、該メモリシステムが正常な電源切断プロセスを受けていないと判定される場合、メモリシステムに関連付けられた不揮発性メモリにおいて第１のプロセスが行われるようにするように構成されるコードデバイスであって、該第１のプロセスは該不揮発性メモリを使用に備えて準備するように構成される、コードデバイスと、該メモリシステムが正常な電源切断プロセスを受けたと判定される場合、該不揮発性メモリが用いられることを実質的に可能にするように構成される、コードデバイスと、該コードデバイスを格納するように構成されたメモリデバイスとを備えてもよい。
【００４７】
前記不揮発性メモリが用いられることを実質的に可能にするように構成されるコードデバイスは、第１の署名を少なくとも１つの保留メモリ領域に書き込んで、該不揮発性メモリが用いられるために可能にされることを示すように構成されてもよい。
【００４８】
前記メモリシステムが以前に、実質的に正常な電源切断プロセスにかけられた場合について判定が行われるようにするコードデバイスは、前記不揮発性メモリの少なくとも１つの保留領域が、第１の署名を含むかについて判定が行われるようにするコードデバイスを含み、該第１の署名は正常電源切断プロセスが以前に起きたことを示すように構成されてもよい。
【００４９】
前記メモリシステムが以前に、実質的に正常な電源切断プロセスにかけられた場合について判定が行われるようにするコードデバイスは、前記不揮発性メモリの前記少なくとも１つの保留領域が、第２の署名を含むかについて判定が行われるようにするコードデバイスをさらに含み、該第２の署名は該メモリシステムが以前に初期化プロセスにかけられたことを示すように構成されてもよい。
【００５０】
前記少なくとも１つの保留メモリ領域が前記第２の署名を含まず、前記第１の署名を含まないと判定される場合、前記第１のプロセスは初期化プロセスであってもよい。
【００５１】
前記少なくとも１つの保留メモリ領域が前記第２の署名を含み、前記第１の署名を含まないことが判定された場合、前記第１のプロセスは、データ修復プロセスであってもよい。
【００５２】
本発明によるメモリシステムは、不揮発性メモリと、メモリシステムが以前に、実質的に正常な電源切断プロセスにかけられた場合について判定するように構成されて、該メモリシステムが以前に正常な電源切断プロセスにかけられていないと判断される場合、該不揮発性メモリにおいて第１のプロセスを行うコントロールデバイスであって、該第１のプロセスは、該不揮発性メモリを使用に備えて準備するように構成され、該メモリシステムが以前に正常な電源切断プロセスにかけられたと判断される場合、該不揮発性メモリが用いられることを実質的に可能にする、コントロールデバイスとを備え、それにより上記目的が達成される。
【００５３】
前記第１のプロセスは、データ修復プロセスおよびメモリ初期化プロセスのうちの１つであってもよい。
【００５４】
前記不揮発性メモリは、ＮＡＮＤフラッシュメモリであってもよい。
【００５５】
本発明のメモリシステムは、少なくとも１つの保留メモリ領域を含む不揮発性メモリと、該不揮発性メモリを初期化し、第１の署名を該少なくとも１つの保留メモリ領域に書き込むように構成されるコントローラであって、該第１の署名は該メモリシステムの初期化が成功したことを示すように構成され、それにより上記目的が達成される。
【００５６】
前記コントローラは前記メモリシステムの電源切断プロセスを実行し、第２の署名を前記少なくとも１つの保留メモリ領域に書き込むようにさらに構成され、該第２の署名は該電源切断プロセスが実行されたことを示すように構成される工程をさらに含んでもよい。
【００５７】
前記不揮発性メモリは、ＮＡＮＤフラッシュメモリであってもよい。
【発明の効果】
【００５８】
本発明では、初期化および電源切断署名を不揮発性メモリシステム内、例えば、不揮発性メモリの保留部分において維持することによって、以前不揮発性メモリから電力を取り除いたことはリクエストされた電源切断によるものなのか、停電によるものなのかについて、効率的に判定が行われることが可能になる。例えば、リクエストされた電源切断のように正常環境で電源切断が行われる場合、電力切断が正常環境で行われたことを表す電力切断署名が格納され得る。従って、次の電源投入プロセスの間にこのような電力切断署名が見つけられる場合、電力切断署名は、以前の電源切断が正常環境で行われ、メモリ修復プロセスが必要ないことを判定するために用いられ得る。ある実施形態に置いて、メモリコンポーネントまたはチップの保留ブロック、例えば、電力管理ブロックは、正常な電力切断が行われるたびに、保留ブロック内のページに電力切断署名が書き込まれ得るように、構成され得る。次に電力がメモリコンポーネントに印加される場合、保留ブロックは、適切な電力切断署名がその中に含まれているか判定するためにアクセスされ得る。
【発明を実施するための最良の形態】
【００５９】
本願は、２００２年１０月２８日に出願された米国特許仮出願第６０／４２２，１６６号の優先権を主張する。この仮出願は、その全文が本明細書中で参考として援用される。
【００６０】
（関連出願の相互参照）
本発明は、同時係属出願中の米国特許第１０／２８１，７３９、１０／２８１，８２３、１０／２８１，６７０、１０／２８１，８２４、１０／２８１，６３１、１０／２８１，８５５、１０／２８１，７６２、１０／２８１，６９６、１０／２８１，６２６、および１０／２８１，８０４号、および、同時係属出願中の米国仮特許出願第６０／４２１，９１０、６０／４２１，７２５、６０／４２１，９６５、６０／４２１，７４６、および６０／４２１，９１１号に関連する。各出願は、２００２年１０月２８日に出願され、これらの全文が本明細書中で参考として援用される。
【００６１】
本発明は、添付の図面と共に、以下の説明を参照することにより、最良に理解され得る。
【００６２】
（実施形態の詳細な説明）
メモリシステムに対する電力損失は、概して、メモリシステム内の多くの問題点の原因となり得る。問題点には、ファイルをフラッシュメモリに書き込むプロセスの間に電力が失われる場合にデータが失われることが含まれるが、問題点はこれに限定されない。電力損失に起因して起こる問題を正すため、その後のメモリシステムの電源投入の際に、データの完全性を維持するように、修復オペレーションが行われ得る。フラッシュメモリが書き込まれている間に電力損失を受けると、データは、メモリに不正確にプログラムされ得る。壊れたデータがファイル割り当てテーブル（ＦＡＴ）またはディレクトリのようなシステムエリアにある場合、フラッシュメモリは、ホストにとって認識可能でないことがあり得る。修復プロセスが成功することによって、フラッシュメモリが使用可能な状態に戻る。ファイルが部分的に書き込まれている場合、書き込まれていない部分は、典型的には存在しないものとして考えられる。書き込まれた部分は、ユーザが、調べるか、捨てるか、作るか、または、他のファイルとマージするように、テンポラリファイルに回収され得る。典型的には、修復オペレーションは、最後のシャットダウンに関連する状態を知ることなく、メモリシステムが電源投入されるたびに、オペレーションが必要ない場合にさえ、例えば、最後にメモリシステムがシャットダウンされたときに正常電源切断が行われた場合にさえ、行われ得る。
【００６３】
不揮発性メモリコンポーネントに関連して、正常な電源切断と異常な電源切断とを区別する能力は、電源投入プロセスがより効率的に行われることを可能にする。例えば、比較的時間がかかるスキャンディスクオペレーションは、メモリコンポーネントの以前の電源切断が正常であると判定された場合、実質的に避けられ得る。以前の電源切断が異常であると判定される場合、スキャンディスクオペレーションは、失われたメモリを取り戻すために用いられ得る。スキャンディスクプロセスのようなメモリ修復プロセスが、例えば、停電などの異常電源切断があった場合のようなこのようなプロセスを必要とする場合を除き、行われることを実質的に避けることによって、電源投入プロセス全体がより効率的に行われ得る。
【００６４】
初期化および電源切断署名を不揮発性メモリシステム内、例えば、不揮発性メモリの保留部分において維持することによって、以前不揮発性メモリから電力を取り除いたことはリクエストされた電源切断によるものなのか、停電によるものなのかについて、効率的に判定が行われることが可能になる。例えば、リクエストされた電源切断のように正常環境で電源切断が行われる場合、電力切断が正常環境で行われたことを表す電力切断署名が格納され得る。従って、次の電源投入プロセスの間にこのような電力切断署名が見つけられる場合、電力切断署名は、以前の電源切断が正常環境で行われ、メモリ修復プロセスが必要ないことを判定するために用いられ得る。ある実施形態に置いて、メモリコンポーネントまたはチップの保留ブロック、例えば、電力管理ブロックは、正常な電力切断が行われるたびに、保留ブロック内のページに電力切断署名が書き込まれ得るように、構成され得る。次に電力がメモリコンポーネントに印加される場合、保留ブロックは、適切な電力切断署名がその中に含まれているか判定するためにアクセスされ得る。
【００６５】
電力管理ブロックを用いることによって利益を受け得るフラッシュメモリシステム、より一般的には、不揮発性メモリデバイスは、概して、フラッシュメモリカードおよびチップセットを含む。典型的には、フラッシュメモリシステムは、ホストシステムと共に用いられ、その結果、ホストシステムがデータをフラッシュメモリシステムに書き込むか、またはフラッシュメモリシステムから読み出し得る。しかし、図１ｃを参照しながら以下で記載されるように、一部のフラッシュメモリシステムは、埋込みフラッシュメモリと、埋込みフラッシュメモリ用のコントローラとして実質的に機能するようにホスト上で実行されるソフトウェアとを含む。図１ａを参照すると、不揮発性メモリデバイス、例えば、小型フラッシュメモリカードを含む一般的なホストシステムが説明される。ホストまたはコンピュータシステム１００は、概して、マイクロプロセッサ１０８、ランダムアクセスメモリ（ＲＡＭ）１１２，および入力／出力回路１１６が通信することを可能にするシステムバス１０４を含む。ホストシステム１００は、概して、他のコンポーネント、例えば、ディスプレイデバイスおよびネットワークデバイスを含み得ることが理解される。これらは、例示のために図示されていない。
【００６６】
概して、ホストシステム１００は、情報を取り込む能力を有し得る。このような情報には、静止画情報、音声情報、および映像情報が含まれるが、これらに限定されない。このような情報は、リアルタイムで取り込まれ得、無線でホストシステム１００に送信され得る。ホストシステム１００は、実質的には、任意のシステムであり得るが、典型的には、ホストシステム１００は、デジタルカメラ、ビデオカメラ、セルラー式通信デバイス、オーディオプレーヤー、またはビデオプレーヤーなどのシステムである。しかし、ホストシステム１００は、概して、データまたは情報を格納し、データまたは情報を取り出す、実質的に任意のシステムであり得ることが理解される必要がある。
【００６７】
また、ホストシステム１００は、データを取り込むこと、またはデータを取り出すことのいずれかのみを行うシステムであってもよい。すなわち、ある実施形態において、ホストシステム１００は、データを格納する専用システムであってもよいし、データを読み出す専用システムであってもよい。例えば、ホストシステム１００は、データを書き込むか、または格納するようにのみ構成されたメモリライターであり得る。あるいは、ホストシステム１００は、データを取り込むのではなく、データを読み出すか、または取り出すように典型的には構成されたＭＰ３プレーヤーなどのデバイスであり得る。
【００６８】
ある実施形態において、取り外し可能な不揮発性メモリデバイスである不揮発性メモリデバイス１２０は、情報を格納するため、バス１０４とインターフェースするように構成される。任意のインターフェースブロック１３０は、不揮発性メモリデバイス１２０が、バス１０４と間接的にインターフェースすることを可能にし得る。当業者にとって明らかなように、入力／出力回路ブロック１１６が存在する場合、バス１０４へのロードを低減する機能を果たす。不揮発性メモリデバイス１２０は、不揮発性メモリ１２４および任意のメモリコントロールシステム１２８を含む。ある実施形態において、不揮発性メモリデバイス１２０は、シングルチップまたはダイの上に実装され得る。あるいは、不揮発性メモリデバイス１２０は、マルチチップモジュールの上、またはチップセットを形成し得、不揮発性メモリデバイス１２０として共に用いられ得る複数の別個のコンポーネントの上に実装されてもよい。不揮発性メモリデバイス１２０の一実施形態は、図１ｂを参照しながら、以下でより詳細に説明される。
【００６９】
不揮発性メモリ１２４、例えば、ＮＡＮＤフラッシュメモリなどのフラッシュメモリは、必要に応じてデータにアクセスし、読み出せるように、データを格納するように構成される。不揮発性メモリ１２４に格納されたデータは、また、適切に消去され得るが、不揮発性メモリ１２４内の一部のデータは消去不可能であり得ることを理解する必要がある。データを格納し、データを読み出し、データを消去するプロセスは、概して、メモリコントロールシステム１２８によって制御されるが、メモリコントロールシステム１２８がない場合には、マイクロプロセッサ１０８によって実行されるソフトウェアによって制御される。不揮発性メモリ１２４の動作は、本質的に、不揮発性メモリ１２４の部分を実質的に等しく消耗させることによって不揮発性メモリ１２４の寿命が実質的に最長になるように管理され得る。
【００７０】
不揮発性メモリデバイス１２０は、概して、任意のメモリコントロールシステム１２８、すなわち、コントローラを含むものとして説明された。しばしば、不揮発性メモリデバイス１２０は、不揮発性メモリ１２４およびメモリコントロールシステム１２８、すなわち、コントローラの機能のために、別個のチップを含み得る。例えば、ＰＣカード、小型フラッシュカード、マルチメディアカード、および安全デジタルカード（これらに限定されない）を含む不揮発性メモリデバイスは、別のチップ上に実装され得るコントローラを含むが、他の不揮発性メモリデバイスは、別のチップ上に実装されるコントローラを含まなくてもよい。不揮発性メモリデバイス１２０が別のメモリおよびコントローラチップを含まない実施形態において、メモリおよびコントローラ機能は、当業者にとって明らかなように、シングルチップに集積され得る。あるいは、メモリコントロールシステム１２８の機能は、例えば、上述したように、不揮発性メモリデバイス１２０がメモリコントローラ１２８を含まない実施形態において、マイクロプロセッサ１０８によって提供され得る。
【００７１】
図１ｂを参照しながら、本発明の実施形態による、不揮発性メモリデバイス１２０をより詳細に説明する。上述したように、不揮発性メモリデバイス１２０は、不揮発性メモリ１２４を含み、メモリコントロールシステム１２８を含み得る。メモリ１２４およびコントロールシステム１２８、すなわちコントローラは、不揮発性メモリデバイス１２０の一次的コンポーネントであり得るが、メモリ１２４が埋め込みＮＡＮＤデバイスである場合、例えば、不揮発性メモリデバイス１２０は、コントロールシステム１２８を含まなくてもよい。メモリ１２４は、半導体基板上に形成されるメモリセルのアレイであり得る。１つ以上のデータのビットは、メモリセルの個々の格納素子の電荷の２つ以上のレベルのうち１つを格納することによって、個々のメモリセルに格納される。不揮発性フラッシュ電気消去可能プログラマブル読み出し専用メモリ（ＥＥＰＲＯＭ）は、このようなシステムにおける一般的なタイプのメモリの一例である。
【００７２】
コントロールシステム１２８が存在する場合には、バス１５で、ホストコンピュータまたはデータを格納するためにメモリシステムを用いる他のシステムと通信する。バス１５は、概して、図１ａのバス１０４の一部である。コントロールシステム１２８は、また、ホストによって提供されたデータを書き込み、ホストによってリクエストされたデータを読み出し、メモリ１２４の動作における各種のハウスキーピング機能を行う、メモリセルアレイ１１を含み得るメモリ１２４の動作を制御する。コントロールシステム１２８は、概して、関連する不揮発性ソフトウェアメモリ、各種の論理回路などを有する汎用マイクロプロセッサを含む。また、１つ以上のステートマシンが、しばしば、特定のルーチンの性能を制御するため、含まれる。
【００７３】
メモリセルアレイ１１は、典型的には、アドレスデコーダ１７を介して、制御システム１２８またはマイクロプロセッサ１０８によってアドレスされる。デコーダ１７は、正しい電圧を、データをプログラムするか、データを読み出すか、または、コントロールシステム１２８によってアドレスされているメモリセルのグループを消去するために、アレイ１１のゲートおよびビットラインに印加する。さらなる回路１９は、セルのアドレスされるグループにプログラムされるデータに依存する、アレイの素子に印加される電圧を制御するプログラミングドライバを含む。回路１９は、また、センスアンプおよびメモリセルのアドレスされるグループからデータを読み出すために必要な他の回路を含む。アレイ１１にプログラムされるデータ、またはアレイ１１から最近読み出されたデータは、典型的には、コントロールシステム１２８内のバッファメモリ２１に格納される。コントロールシステム１２８はまた、通常は、コマンドおよびステータスデータなどを一時的に格納する、各種のレジスタを含む。
【００７４】
アレイ１１は、複数のＢＬＯＣＫＳ０−Ｎメモリセルに分割される。フラッシュＥＥＰＲＯＭシステムにおいて一般的であるように、ブロックは、典型的には、消去の最小単位である。すなわち、各ブロックは、共に消去される最小限の数のメモリセルを含む。各ブロックは、典型的には、複数のページに分割される。当業者にとっては明らかなように、ページは、プログラミングの最小単位であり得る。すなわち、ベーシックプログラミング動作は、データを、最小限であるメモリセルの１ページに書き込むか、そこから読み出す。データの１つ以上のセクタは、典型的には、各ページ内に格納される。図１ｂに示すように、１つのセクタは、ユーザデータおよびオーバーヘッドデータを含む。オーバーヘッドデータは、典型的には、セクタのユーザデータから計算されたエラー訂正コード（ＥＣＣ）を含む。コントロールシステム１２８の部分２３は、データがアレイ１１にプログラムされているとき、ＥＣＣを計算し、また、データがアレイ１１から読み出されているとき、ＥＣＣをチェックする。あるいは、ＥＣＣは、所属しているユーザデータとは、異なるページ、または異なるブロックに格納される。
【００７５】
ユーザデータのセクタは、典型的には、磁気ディスクドライブのセクタのサイズに対応して、５１２バイトである。オーバーヘッドデータ、または冗長データは、典型的には、さらなる１６バイトである。１セクタのデータは、最も一般的には、各ページに含まれるが、２つ以上のセクタが、代わりに、ページを形成してもよい。任意の数のページは、概して、ブロックを形成し得る。例えば、ブロックは、８ページから５１２，１０２４以上のページから形成され得る。ブロックの数は、メモリシステムにとって所望のデータ格納容量を提供するように選択される。アレイ１１は、典型的には、数固のサブアレイ（図示せず）に分割され、それぞれが、ブロックの一部を含み、様々なメモリ動作の実行において、並列処理の度合いを高めるため、互いからいくらか独立して動作する。複数のサブアレイの使用の例は、米国特許第５，８９０，１９２号に記載されている。この特許は、その全文を通じて、本明細書中で参考として援用される。
【００７６】
ある実施形態において、不揮発性メモリは、システム、例えばホストシステムに組み込まれる。図１ｃは、組込み不揮発性メモリを含むホストシステムを表す図である。ホストまたはコンピュータシステム１５０は、概して、マイクロプロセッサ１５８、ＲＡＭ１６２、および入力／出力回路１６６が、ホストシステム１５０の他のコンポーネント（図示せず）とともに、通信することを可能にするシステムバス１５４を含む。不揮発性メモリ１７４、例えば、フラッシュメモリは、情報がホストシステム１５０内に格納されることを可能にする。インターフェース１８０は、不揮発性メモリ１７４とバス１５４との間に設けられて、情報が不揮発性メモリ１７４から読み出され、不揮発性メモリ１７４に書き込まれることを可能にする。
【００７７】
不揮発性メモリ１７４は、ソフトウェアおよびファームウェアのいずれか、または両方を効率的に実行するマイクロプロセッサ１５８によって管理され得る。すなわち、マイクロプロセッサ１５８は、不揮発性メモリ１７４が制御されることを可能にする、コードデバイス（図示せず）、すなわち、ソフトウェアコードデバイスまたはファームウェアコードデバイスを動作させ得る。このようなコードデバイスは、マイクロプロセッサ１５８内部のＣＰＵとパッケージングされたフラッシュメモリ、別のフラッシュＲＯＭ、または内部の不揮発性メモリ１７４（以下に説明する）であり得る。このようなコードデバイスは、不揮発性メモリ１７４内の物理ブロックがアドレスされることを可能にし得、情報が、物理ブロックに格納され、物理ブロックから読み出され、物理ブロックから消去されることを可能にし得る。
【００７８】
概して、ＮＡＮＤフラッシュメモリチップのような不揮発性メモリコンポーネントは、ブロックに分割される。図２は、本発明の実施形態による、不揮発性メモリコンポーネントを表す図である。メモリコンポーネント２００は、複数のブロック２０４を含む。メモリコンポーネント２００内のブロック２０４の数は、メモリコンポーネント２００の全体のサイズに依存して、大幅に異なり得る。例えば、メモリコンポーネント２００は、５１２ブロック、１０２４ブロック、２０４８ブロック、または４０９６ブロックを含み得る。メモリコンポーネント２００が、概して、Ｎ個のブロック２０４（Ｎは実質的に任意の適切なブロックの数）を含み得ることを理解する必要がある。
【００７９】
メモリコンポーネント２００内のある数のブロック２０４は、保留ブロック２０４ｆ〜ｍとして考えられ得る。保留ブロック２０４ｆ〜ｍは、メモリコンポーネント２００内の使用可能なブロック２０４の最後の数個、例えば、最後の８個のブロック２０４であり得るが、概して、メモリコンポーネント２００内の任意のブロック２０４であってもよい。保留ブロック２０４ｆ〜ｍは、典型的には、電力管理ブロックまたは消去カウントブロックとして用いられるために取っておかれている。このことは、本明細書中で参考として援用される同時係属出願中の米国特許第１０／２８１，８０４号に記載されている。しばしば、保留ブロック２０４ｆ〜ｍは、電流電力管理ブロックが一杯になった後に、保留ブロック２０４ｆ〜ｍから割り当てられた他の電力管理ブロックに取って代わられるか、置き換えられ得る、電流電力管理ブロックを含み得る。
【００８０】
電力がメモリコンポーネント２００に印加される場合、例えば、電力が、初期化プロセスの一部としてまず印加される場合、初期化プロセスが成功したことを表すように構成された初期化署名またはビットが電力管理ブロックに関連付けられたページに格納され得る。図３ａを参照しながら、本発明のある実施形態による、初期化署名を含む電力管理ブロックのある実施形態を説明する。電力管理ブロック３０４は、概して、任意の数のページ３０８を含む。典型的には、電力管理ブロック３０４に含まれるページ３０８の数は、電力管理ブロック３０４を含む不揮発性メモリ全体の中のブロックの標準的なサイズに、少なくとも部分的に依存し得る。
【００８１】
メモリコンポーネント２００の初期化が成功したのち、初期化すなわち「オープン」署名３１２は、電力管理ブロック３０４の第１のページ３０８ａに書き込まれ得る。このように、初期化署名３１２が第１のページ３０８に見受けられる場合、より概略的には、電力管理ブロック３０４において利用可能な一番最近の署名である場合、初期化プロセスが成功したことの表れである。ある実施形態において、初期化署名３１２は、他の情報、例えば、平均消去カウントと共に、ページ３０８ａに書き込まれ得る。
【００８２】
電力管理ブロック３０４を含むメモリコンポーネントに電源が投入される場合、コンテンツが書き込まれた最後のページ３０８が、典型的にはアクセスされる。コンテンツが書き込まれた最後のページ３０８は、以前の初期化プロセスが成功している場合、初期化署名３１２を含み得るが、初期化プロセスの後に行われるシャットダウンプロセスは異常である。初期化プロセス後に行われるシャットダウンプロセスが通常である場合、コンテンツが書き込まれた最後のページ３０８は、典型的には、図３ｂに示すようにシャットダウン署名を含む。シャットダウンすなわち「クローズド」署名３２４は、概して、例えばパターンに構成されるビットを含み得、シャットダウンプロセスが成功に終わったことを表す。概して、コンテンツが書き込まれた最後のページ３０８ｂにおけるシャットダウン署名３２４の存在は、メモリコンポーネントの一番最近の電源切断が、データ修復プロセスを行うことが必要になる、バッテリー切れによる電力の急な損失などの異常な環境ではなく、正常な環境で行われたことを表す。
【００８３】
シャットダウン署名３２４がページ３０８ｂに書き込まれる場合、シャットダウン署名３２４は、他の情報と共にページ３０８ｂに書き込まれ得る。シャットダウン署名３２４と共にページ３０８ｂに書き込まれ得る他の情報には、平均消去カウント、および、最多頻度消去ブロックおよび最小頻度消去ブロックなどのような予備ブロックに属する消去カウントが含まれ得るが、これらに限定されない。
【００８４】
図４を参照しながら、本発明の実施形態による、関連付けられた電力管理ブロックを有する不揮発性メモリコンポーネントを初期的に用いる方法に関連する工程を説明する。不揮発性メモリコンポーネントを初期的に用いるプロセス４００は、工程４０４において開始され、工程４０４において、例えば、最初にメモリコンポーネントの電源が投入された後、メモリコンポーネントが初期化される。メモリコンポーネントの初期化には、メモリコンポーネントに電力を提供する工程、および用いられるメモリコンポーネントをイネーブルするために必要なデータ構造を作成する工程が含まれ得るが、これらに限定されない。
【００８５】
メモリコンポーネントが初期化された後、初期化署名が、工程４０８において、電力管理ブロックに書き込まれ得る。上述したように、初期化署名は、電力管理ブロックの平均的な消去カウントおよび他の情報と同じページに書き込まれ得る。初期化署名が書き込まれた後、メモリコンポーネントが工程４１２において用いられ得る。メモリコンポーネントを用いる工程は、概して、データをメモリコンポーネントに書き込む工程、または格納する工程、および格納されたデータをメモリコンポーネントから読み出す工程を含み得る。
【００８６】
ある時点で、例えば、ユーザがメモリコンポーネントとインターフェースしているホストデバイスの電源を切断することを所望する場合、メモリコンポーネントのユーザはメモリコンポーネントの電源を切断するコマンドまたはリクエストを発行し得る。このように、メモリコンポーネントの電源が切断されるか否かについての決定は、工程４１６において行われる。メモリコンポーネントの電源が切断されないことが決定される場合、プロセスフローは、メモリコンポーネントが用いられ続ける工程４１２に戻る。あるいは、メモリコンポーネントの電源が切断されることが決定される場合、工程４２０において、シャットダウン署名が電力管理ブロックに書き込まれる。ある実施形態において、シャットダウン署名は、他の情報がシャットダウン署名と同じページに格納される時刻と実質的に同じ時刻に書き込まれる。このような情報には、上述したように、平均消去カウント、最小頻度消去ブロックテーブルに関連付けられた識別子、および最多頻度消去ブロックテーブルに関連付けられた識別子が含まれ得るが、これらに限定されない。シャットダウン署名が電力管理ブロックに書き込まれた後、工程４２４において、メモリコンポーネントの電源が切断され、メモリコンポーネントの初期使用のプロセスは完了する。
【００８７】
概して、メモリコンポーネントが初期化されるか否かが既知でない場合、メモリコンポーネントの電力管理ブロックは、初期化署名があるかチェックされ得る。すなわち、メモリコンポーネントに電力が提供されていることが最初に分かった場合に行われ得るように、メモリコンポーネントを自動的に初期化するのではなく、メモリコンポーネントが以前に初期化された否かをまず判定し得、結果として、電源が投入されるか、電源が切断される。図５は、本発明の実施形態による、以前に電源が切断された可能性があるメモリコンポーネントを利用する方法に関連する工程を示すプロセスフロー図である。電力管理ブロックを含むメモリコンポーネントを利用するプロセス５００は、工程５０４において開始し、工程５０４において電力がメモリコンポーネントに提供される。電力がメモリコンポーネントに提供された後、工程５０８において、電力管理ブロックに初期化署名があるか否かが判定される。具体的には、メモリコンポーネントの初期化が以前に完了したか否かが判定される。
【００８８】
適切な初期化署名が電力管理ブロックにあることが判定される場合、メモリコンポーネントの初期化または電源投入が以前に成功したことの表れである。従って、工程５１２において、適切なシャットダウンシャットダウン署名が電力管理ブロックにあるか否かが判定される。適切なシャットダウン署名が電力管理ブロックにある場合、シャットダウン署名が電力管理ブロック内の一番最近の署名であることの表れである。ある実施形態において、適切なシャットダウン署名があるか否かの判定は、初期化署名が電力管理ブロック内の一番最近の署名であるか、または電力管理ブロック内の一番最近に書き込まれたページにあるかを判定する工程を含む。
【００８９】
工程５１２において、適切なシャットダウン署名が電力管理ブロックにあることが判定される場合、メモリコンポーネントを有するデータは、実質的に同期化され、データ修復プロセスが必要ないことの表れである。従って、メモリコンポーネントが工程５３２において用いられ得る。メモリコンポーネントを用いる工程は、初期化またはオープン署名を電力管理ブロックに書き込む工程を含み得ることが理解される必要がある。メモリコンポーネントを用いる工程はまた、シャットダウンまたは電力切断コマンドを受信する場合、シャットダウン署名を電力管理ブロックに書き込む工程を含み得る。工程５３２においてメモリコンポーネントが用いられた後、メモリコンポーネントを利用するプロセスは完了する。
【００９０】
あるいは、シャットダウン署名が電力管理ブロック内の一番最近の署名でないことが工程５１２において判定される場合、メモリコンポーネントの異常シャットダウンが以前行われたことの表れである。すなわち、初期化署名が、電力管理ブロック内の一番最近の署名であり、初期化署名に対応するシャットダウン署名がない場合、メモリコンポーネントの以前のシャットダウン、またはメモリコンポーネントから電力を取り除くことが、正常な環境で行われなかったことを意味する。例えば、メモリコンポーネントへの電力は、バッテリー切れによって失われた可能性がある。従って、プロセスフローは、工程５１２から工程５１６へと移り、そこでブロック同期化プロセスが行われる。典型的には、ブロック同期化プロセスは、メモリコンポーネントに関連付けられるデータが同期化されない可能性がある、例えば、論理ブロックに１つより多い物理ブロックが割り当てられ得るので行われ得る。さらに、ホストシステムは、メモリコンポーネントを用いるシステム全体の以前のシャットダウンが円滑でなかったことを知らされ得、スキャンディスク診断のような回復診断を実行するように、ユーザにプロンプトし得る。
【００９１】
ある実施形態において、データ修復プロセスが行われた後、ブロックに関連付けられる実質的に全ての消去カウントは、同期化され得るか、そうでない場合には、工程５１８において、消去カウントブロックから入手される平均消去カウントを用いて更新され得る。消去カウントブロックの一例は、同時係属出願中の米国特許第１０／２８１，６２６号に記載される。この出願は、本明細書中で参考として援用される。
【００９２】
消去カウントが同期化された後、オペレーティングシステム、すなわちホストは、工程５２４において、以前の電源切断において不適切なシャットダウンまたは停電が起きたことを知らされ得る。すなわち、メモリコンポーネントに関連付けられたホストのファイルシステムは、不適切なシャットダウンを知らされ得る。ホストは、典型的には、データ完全性チェック、および「スキャンディスク」プロセスのような修復プロセスが必要とされ得るかどうかを判定する。このようなプロセスが必要とされ得るか否かについてのクエリがユーザに対してプロンプトされ得る。その後、修復プロセスを開始するか、または通知を無視するかは、ユーザに任され得る。
【００９３】
工程５０８に戻ると、電力管理ブロックに初期化署名がないことが判定される場合、メモリコンポーネントの初期化が以前に成功しなかったことの表れである。従って、工程５２８において、メモリコンポーネントは初期化される。メモリコンポーネントを初期化する工程は、メモリコンポーネントが適切に初期化される場合に初期化署名を電力管理ブロックに書き込む工程を含み得る。メモリコンポーネントが初期化された後、工程５３２においてメモリコンポーネントが用いられ得る。
【００９４】
概して、停電がシステム全体で起きる場合、ファイルに関連するデータ完全性は、損なわれ得る。具体的には、ホストから不揮発性メモリまたはメモリコンポーネントのデータ領域に効率的に書き込まれるファイルのデータ完全性は、書き込みプロセスが停電に起因して早くに中断される場合、損なわれ得る。ユーザからの電力切断リクエストがある場合、ファイルへの書き込みは、典型的には、実際の電力切断が起きる前に完了する。
【００９５】
ファイルが不揮発性メモリに書き込まれる場合、不揮発性メモリの異なる領域が、典型的には、シーケンスに基づいて書き込まれる。例えば、不揮発性メモリのホストシステム領域およびデータ領域は、特定の順序で書き込まれ得る。図６は、本発明の実施形態による、不揮発性メモリのホストシステム領域およびデータ領域を表す図である。説明した実施形態において、不揮発性メモリ６００はＮＡＮＤメモリであるが、不揮発性メモリ６００は、概して、任意の適切なメモリであり得ることが理解される必要がある。
【００９６】
メモリ６００のホストシステム領域は、概して、マスタブートレコード６０２、隠れ領域６０６、パーティションブートレコード６１０、第１のファイル割り当てテーブル６１４、第２のファイル割り当てテーブル６１８、およびルートディレクトリ６２２を含む。マスタブートレコード６０２は、メモリ６００に関連するパーティションがいずれのオペレーティングシステムと互換性を有するかを判定することを可能にする。例えば、マスタブートレコード６０２は、特定のパーティションが、Ｌｉｎｕｘオペレーティングシステムと互換性を有し、他のパーティションがＷｉｎｄｏｗｓ（Ｒ）９８オペレーティングシステムと互換性を有することを特定し得る。当業者であれば理解するように、パーティションブートレコード６１０は、メモリ６００が互換性を有するオペレーティングシステムを、メモリ６００とインターフェースするホストシステムが識別することを可能にする。
【００９７】
メモリ６００のデータ領域６２６は、ルートディレクトリ６２２と関連付けられたサブディレクトリ（図示せず）を含むように構成される。さらに、データ領域６２６は、メモリ６００に関連するファイルのコンテンツを含むように構成される。図７を参照しながら以下で説明されるように、ファイルがメモリ６００に書き込まれる場合、ディレクトリ、例えば、ルートディレクトリ６２２、またはルートディレクトリ６２２に関連するサブディレクトリには、ファイル名が書き込まれ得る。ファイル名の後、ファイルに関連するデータがデータ領域６２６に書き込まれ得る。その後、ファイル割り当てテーブル６１４および６１８が書き込まれ得、ファイル名が書き込まれたディレクトリは、コンテンツの位置、サイズ、ファイルの作成時刻で更新され得る。
【００９８】
図７を参照しながら、本発明の実施形態による、ホストシステムに関連するファイルを不揮発性メモリに書き込む１つの方法に関連する典型的な工程の例を説明する。ファイルを書き込むプロセス７６０は、工程７６４から開始され、工程７６４において、作成されるデータファイル名、作成時刻および属性が、不揮発性メモリ、例えば、ＮＡＮＤメモリに関連するディレクトリに書き込まれる。ファイル名がディレクトリに書き込まれた後、データファイルのコンテンツが、工程７６８において、メモリに関連するデータ領域に書き込まれる。説明する実施形態において、データファイルのコンテンツがデータ領域に書き込まれた後、工程７７２において第１のＦＡＴが書き込まれ得、データ領域におけるファイルに対応するデータの位置が識別されることを可能にする。第２のＦＡＴは工程７７６で書き込まれ得、第２のＦＡＴは、事実上、第１のＦＡＴのコピーである。両方のＦＡＴが書き込まれた後、ファイルに対応するディレクトリエントリは、データ領域のどこからファイルのコンテンツが開始するのかを識別するスターティングクラスタ、ファイルの長さ、いつファイルが事実上作成されたかを識別する最終時刻と共に、工程７８０において更新され得る。工程７８０が行われるまでファイル作成または変更が完了しないので、最終クラスタ、すなわちデータファイルのコンテンツの最終ページは、典型的には、工程７７２および工程７７６の後に書き込まれる。当業者であれば理解するように、クラスタは、任意の数のページを含んでもよく、典型的には、パーティションブートレコードによって定義される。ファイルを書き込むプロセスは、ディレクトリエントリが更新された後、完了される。
【００９９】
電力管理ブロックを用いることによって、以前にメモリから電力が取り除かれたことは、停電に起因するのか、または他の点で異常だったのか確認され得る。メモリの電力切断が異常であった判定される場合、ファイル書き込みプロセスは、早くに中断された可能性がある。このように、システムのデータ完全性を維持するためには、データ修復プロセスを行うことをホストに知らせることが所望され得る。
【０１００】
続けて図７を参照すると、工程７６４の前、または工程７８０の後に電源が切断される場合、ファイルは書き込まれていないか、書き込みが終了しているので、壊れたファイルはない。書き込みプロセスが開始する前に電力が失われたため、書き込まれるべきであるが書き込まれていないファイルは、ユーザにとって利用可能にならない。工程７６８を除き、書き込み動作が開始されるが、工程７６４、工程７７２、工程７７６、または工程７８０のいずれかにおいて完了しない場合、工程は実質上行われない。従って、書き込まれるところであったページは、本質的には放棄され、古いページが修復に用いられる。本発明において、古いページは利用可能である。実質的に壊れたページの代わりに古いページは、ホストにとって透明である。コンテンツの有効性は、ＥＣＣチェッキングによって保護される。ページが壊れた場合、以前の「良い」または壊れていないページは、ホストに戻り得る。このことは、全文が本明細書中で援用される同時係属出願中の米国仮特許第６０／４２１，７２５号に記載されている。ページの更新情報は、古いページを上書きすることなく、消去されたページに実質的に常に書き込まれる。従って、古いページが消去されていない場合、そのデータのコンテンツが、上書きの途中で新たな情報によって壊れることがない。さらに、同時継続出願中の米国特許出願第１０，２８１，６３１号に記載されているように、ＦＡＴおよびディレクトリを含むファイルシステムの重要な領域は、しばしば、複数の物理ブロックに分割される。フラッシュメモリがフォーマットされた後、
典型的には、ＦＡＴおよびルートディレクトリの有効なコピーがある。認識不可能なＦＡＴおよびディレクトリは媒体を修復不可能にするので、バックアップページを新たなページの書き込みが成功しなかった場合に利用可能にすることによって、媒体が修復可能にされる。
【０１０１】
工程７６４において停電が起きて、書き込み動作が失敗する場合、概してディレクトリの以前のコピーが用いられる。書き込み動作が成功に終わる場合、システムは、名前を有するファイルを有し得るが、コンテンツを含まない。すなわち、ファイルサイズはほぼゼロである。従って、ユーザは、典型的には、ファイルがコンテンツと共に格納されるように、ファイルを「再作成」する必要がある。工程７６８の間、または工程７６８の後だが工程７７２の前のある時点で電力損失が起きた場合、書き込まれるデータは、いずれのファイルとも関連せず、従ってユーザにとって利用可能でない。ユーザは、典型的には、サイズがほぼゼロのファイルを有する。電力損失がＦＡＴ１またはＦＡＴ２のいずれかが書き込まれた後に起きる場合、ホストは、データの位置を突き止め、修復プロセスの間情報の一部を回収するためにユーザにとって利用可能にすることが可能であり得る。工程７６８の後の停電は、その損失の間に書き込まれる情報が概して通常の修復プロセスを用いて回復不可能であることが理解される必要がある。ディレクトリエントリが工程７８０までファイルをデータに関連させないので、ユーザは、依然として、ファイルサイズが、工程７７６の後でさえもほぼゼロであることを「見る」。
【０１０２】
本発明は、電力損失が起き、概して修復プロセスが必要であることを、ユーザがホストに知らせることを可能にする。メモリが異常な電源切断後に電源投入される場合、ブロックコピーまたはマージプロセスがまた、異常な電源切断の直後に完了することが必要とされ得る。例えば、複数の物理ブロックが１つの論理ブロックに関連付けられる場合、その論理ブロックが、実質的に全ての現在のデータまたはその論理ブロックに関連付けられる情報を含む１つの物理ブロックのみに関連付けられるように、物理ブロックを決定することが所望され得る。
【０１０３】
コモン論理ブロックに関連付けられる物理ブロックを決定する工程は、いずれの物理ブロックが一番最近論理ブロックと関連付けられたのかを判定する工程を含む。同時係属出願中の米国特許出願第１０，２８１，７６２号に記載されている更新インデックスは、複数の物理ブロックのうちいずれが一番最近に論理ブロックに関連付けられ、論理ブロックに関連付けられる一番最近のコンテンツを含めるように、効率的に更新される必要があるのかを判定するために用いられ得る。しばしば、論理ブロックが関連付けられる物理ブロックを１つより多く有し、論理ブロックと関連付けられる１つの物理ブロックを識別することが本質的に必要である場合、更新インデックスは物理ブロックから入手され得、更新インデックスは、２つの物理ブロックからの更新インデックスの比較が、物理ブロックが決定した後、例えば、マージプロセスがおきた後、２つの物理ブロックのうちいずれが論理ブロックと関連付けられたままであるのか、２つの物理ブロックのうちいずれが論理ブロックから切り離されるのかを識別するように構成される。
【０１０４】
物理ブロックに関連付けられる少なくとも１つのオーバーヘッドまたは冗長領域に格納され得る更新インデックスは、コピーまたはマージする工程に関わる２つの物理ブロックのうちいずれが古い物理ブロックであり、２つの物理ブロックのうちいずれが新しい物理ブロック、または、コンテンツがコピーされている物理ブロックであるのかを示すように構成され得る。例えば、新たな物理ブロックの更新インデックスは、更新インデックスの値が、古い物理ブロック更新インデックスよりも高くなるように設定され得る。従って、いずれの物理ブロックが新たな物理ブロックであるのか判定するために物理ブロックの更新インデックスが調べられる場合、より高い更新インデックスを有する物理ブロックが新たな物理ブロックであると判定され得る。
【０１０５】
例えば、電力管理ブロックを用いて、停電が以前に不揮発性メモリを含むメモリシステム内で起きたことが判定される場合、１つより多い関連付けられた物理ブロックを有する任意の論理ブロックが、例えば、更新インデックスを用いて、物理ブロックが決定され得るように識別され得る。ある実施形態において、実質的に、関連付けられた物理ブロックを１つより多く含み得る論理ブロックのみが、停電が起きたときに書き込まれるプロセスか、または、更新されるプロセス中であった最後の論理ブロックである。図８は、本発明の実施形態による、１つの論理ブロックに関連付けられた物理ブロックを識別し、処理するある方法に関連する工程を示すプロセスフロー図である。プロセス９００は、工程９０４から開始される。工程９０４において、意図的な電源切断または予期されない停電のいずれかに起因して、メモリコンポーネントへの電力が取り除かれた後のある時点で、電力がメモリコンポーネントに提供される。メモリコンポーネントに電力が提供された後、メモリコンポーネントの電力管理ブロックのページが読み出され得、停電が起きたか否かが判定される。上述したように、シャットダウン信号が、実質上、電力管理ブロック内の一番最近の署名である場合、メモリコンポーネントの以前のシャットダウンが、意図的な電源切断であったことの表れである。そうでない場合には、典型的には、メモリコンポーネントの以前のシャットダウンが、停電に起因していたことの表れである。
【０１０６】
工程９１２において、停電が起きたか否かについて判定が行われる。停電が起きなかった場合、１つの論理ブロックに決定される複数の物理ブロックがないことの表れであり得る。このように、物理ブロックを識別し、決定するプロセスが完了される。あるいは、工程９１２において、停電または異常なシャットダウンが起きたことが判定される場合、決定される物理ブロックがある。従って、プロセスフローは、工程９１２から工程９１６へと移る。工程９１６において、メモリコンポーネントに関連付けられた物理ブロックのオーバーヘッド領域が読み出される。オーバーヘッド領域を読み出す工程は、概して、オーバーヘッド領域に格納される更新インデックスを読み出す工程、およびそれぞれの物理ブロックが関連付けられる論理ブロックに属する情報を読み出す工程を含み得る。
【０１０７】
メモリコンポーネントの物理ブロックのオーバーヘッド領域が読み出された後、工程９２０において、任意の論理ブロックが関連付けられる物理ブロックを１つより多く有するか否かが判定される。関連付けられる物理ブロックを１つより多く有する論理ブロックがあることが判定される場合、プロセスフローは、工程９２４へと移る。工程９２４において、物理ブロックの更新インデックスが比較され得るように、コモン論理ブロックに関連付けられる物理ブロックのオーバーヘッド領域から更新インデックスが入手される。関連付けられる物理ブロックを１つより多く有する論理ブロックが複数ある場合、１つの論理ブロックに関連付けられる更新インデックスが全て入手され得ることが理解される必要がある。すなわち、関連付けられる物理ブロックを１つより多く有する、実質的に全ての論理ブロックが、このような論理ブロックに関連付けられる、実質的に全ての物理ブロックを入手することによって、効率的に処理され得る。
【０１０８】
更新インデックスが物理ブロックのオーバーヘッド領域から入手された後、物理ブロックは、各論理ブロックが１つの関連する物理ブロックを有するように、工程９２８において分解される。物理ブロックは、概して、コモン論理ブロックに関連付けられる複数の物理ブロックの更新インデックスが、一番最近コモン論理ブロックに関連付けられた物理ブロックがいずれであるかを識別するために用いられるように、決定される。物理ブロックを決定する工程はまた、実質的に全ての現在の情報またはコモン論理ブロックに関連するデータを、コモン論理ブロックに一番最近に関連付けられた物理ブロックに提供する工程を含み得る。
【０１０９】
物理ブロックを決定する際に、必要に応じて、工程９３２において他のデータ修復が行われ得る。他のデータ修復には、例えば、ファイルコピープロセスが中断した結果失われたクラスタの修復が含まれ得る。データ修復が行われた後、物理ブロックを識別し、決定するプロセスが完了する。
【０１１０】
工程９２０に戻ると、関連付けられる物理ブロックを１つより多く有する論理ブロックがないと判定された場合、決定される物理ブロックがないことの表れである。従って、プロセスフローは工程９３６に移り、工程９３６において必要に応じて他のデータ修復が行われ得る。任意の他の必要なデータ修復が行われる場合、物理ブロックを識別し、決定するプロセスが完了する。
【０１１１】
概して、電力管理ブロックを実装し、維持し、利用することに関連する機能は、不揮発性メモリまたは不揮発性メモリコンポーネントを含むホストシステムに対して、例えば、プログラムコードデバイスのようなソフトウェア、またはファームウェアにおいて提供される。ホストシステムに対して提供されて、電力管理ブロックが実装され、維持され、用いられることを可能にするソフトウェアまたはファームウェアに関連する適切なシステムアーキテクチャのある実施形態を図９に示す。システムアーキテクチャ７００は、概して、各種のモジュールを含む。各種のモジュールには、アプリケーションインターフェースモジュール７０４、システムマネージャーモジュール７０８、データマネージャーモジュール７１２、データ完全性マネージャー７１６、ならびにデバイスマネージャーおよびインターフェースモジュール７２０が含まれ得るが、これらに限定されない。概して、システムアーキテクチャ７００は、プロセッサ例えば、図１ａのプロセッサ１０８によってアクセスされ得る、ソフトウェアコードデバイスまたはファームウェアを用いて実現され得る。
【０１１２】
概して、アプリケーションインターフェースモジュール７０４は、ホスト、オペレーティングシステム、またはユーザと直接通信するように構成され得る。アプリケーションインターフェースモジュール７０４はまた、システムマネージャーモジュール７０８およびデータマネージャーモジュール７１２と通信する。ユーザがフラッシュメモリから読み出すか、フラッシュメモリに書き込むか、またはフォーマットしたい場合、ユーザは、オペレーティングシステムにリクエストを送信する。リクエストは、アプリケーションインターフェースへと渡される。アプリケーションインターフェースは、リクエストを、リクエストに依存して、システムマネージャーモジュール７０８またはデータマネージャーモジュール７１２に向ける。
【０１１３】
システムマネージャーモジュール７０８は、システム初期化サブモジュール７２４、消去カウントブロック管理サブモジュール７２６、および電力管理ブロックサブモジュール７３０を含む。システム初期化サブモジュール７２４は、概して、初期化リクエストが処理されることを可能にするように構成され、典型的には、消去カウントブロック管理サブモジュール７２６と通信する。消去カウントブロック管理サブモジュール７２６は、ブロックの消去カウントを格納させる機能、個々の消去カウントを用いて、平均消去カウントを計算および更新させる機能を含む。消去カウントを用いることは、同時係属出願中の米国特許出願第１０／２８１，７３９号に記載されている。この出願は、その全文が本明細書中で参考として援用される。システム初期化モジュール７２４はまた、１対多数の論理ブロック対物理ブロックの割り当てを決定するように構成され、従って、更新インデックスを利用し得る。電力管理ブロックサブモジュール７３０は、電力管理が実装され、維持され、用いられることを可能にするように構成され得る。例えば、電力管理ブロックサブモジュール７３０は、電力管理ブロックを割り当て、電力管理ブロックに格納され得る署名および他の情報の書き込みを監視するように構成され得る。
【０１１４】
アプリケーションインターフェースモジュール７０４と通信することに加えて、システムマネージャーモジュール７０８はまた、データマネージャーモジュール７１２、ならびにデバイスマネージャーおよびインターフェースモジュール７２０と通信する。データマネージャーモジュール７１２は、システムマネージャーモジュール７０８およびアプリケーションインターフェースモジュール７０４の両方と通信するが、論理セクタを物理セクタに効率的に変換するセクタマッピングを提供する機能を含み得る。すなわち、データマネージャーモジュール７１２は、論理ブロックを物理ブロックにマッピングするように構成される。データマネージャーモジュール７１２はまた、オペレーティングシステムおよびファイルシステムインターフェース層に関連する機能を含み得、ブロック内のグループが管理されることを可能にする。このことは、その全文が本明細書中で参考として援用される、同時係属出願中の米国特許出願第１０／２８１，８５５号に記載されている。
【０１１５】
システムマネージャーモジュール７０８、データマネージャー７１２およびデータ完全性マネージャー７１６と通信するデバイスマネージャーおよびインターフェースモジュール７２０は、典型的には、フラッシュメモリインターフェースを提供し、ハードウェア抽出（ａｂｓｔｒａｃｔｉｏｎ）、例えばＩ／Ｏインターフェースを含む。データ完全性マネージャーモジュール７１６は、他の機能とともに、ＥＣＣ処理を提供する。
【０１１６】
本発明のいくつかの実施形態のみが説明されてきたが、本発明は、本発明の精神および範囲から逸脱することなく、他の特定の形態で実施され得ることが理解されるべきである。例えば、電力管理ブロックは、概して、ＮＡＮＤメモリ、例えば、ＭＬＣ  ＮＡＮＤメモリに関連付けられるように説明されてきたが、概して、電力管理ブロックは、実質的に任意の適切なメモリまたはメモリシステムに対して実装され得る。
【０１１７】
初期化署名およびシャットダウン署名に含まれるビット数は、広く異なり得る。ある実施形態において、署名に含まれるビット数は、具体的なシステムの要件に依存し得る。例えば、署名に含まれるビット数は、１であってもよいし、電力管理ブロックのページに含まれるビット数の数であってもよい。
【０１１８】
本発明の各種の方法に関連するステップは、広く異なり得る。概して、工程は、本発明の精神および範囲から逸脱することなく、追加されてもよいし、省略されてもよいし、順序が変更されてもよいし、変更されてもよい。従って、本発明の実施例は例示的なものであり、制限するものではないと考えられ、本発明は、本明細書中に記載の詳細に限られず、添付の特許請求の範囲内で変更され得る。
【０１１９】
本発明によると、不揮発性メモリの電源投入プロセスを効率的に行うことを可能にする方法および装置が提供される。本発明のある局面によると、少なくとも１つの保留メモリ領域を含む不揮発性メモリを有するメモリシステムを利用する方法は、電力をメモリシステムに提供する工程と、不揮発性メモリを初期化する工程と、第１の署名を保留メモリ領域に書き込む工程とを含む。第１の署名はメモリシステムの初期化が成功したことを示すように構成される。ある実施形態において、この方法はまた、メモリシステムの電源切断プロセスを実行する工程と、電源切断プロセスが実行されたことを示す第２の署名を保留メモリ領域に書き込む工程とを含む。
【０１２０】
以上のように、本発明の好ましい実施形態を用いて本発明を例示してきたが、本発明は、この実施形態に限定して解釈されるべきものではない。本発明は、特許請求の範囲によってのみその範囲が解釈されるべきであることが理解される。当業者は、本発明の具体的な好ましい実施形態の記載から、本発明の記載および技術常識に基づいて等価な範囲を実施することができることが理解される。本明細書において引用した特許、特許出願および文献は、その内容自体が具体的に本明細書に記載されているのと同様にその内容が本明細書に対する参考として援用されるべきであることが理解される。
【図面の簡単な説明】
【０１２１】
【図１ａ】図１ａは、不揮発性メモリを含む概略的なホストシステムを表す図である。
【図１ｂ】図１ｂは、メモリデバイス、例えば、図１ａのメモリデバイス１２０を表す図である。
【図１ｃ】図１ｃは、埋込み不揮発性メモリを含むホストシステムを表す図である。
【図２】図２は、本発明の実施形態による、不揮発性メモリコンポーネントを表す図である。
【図３ａ】図３ａは、本発明の実施形態による、初期化署名を含む電力管理ブロックを表す図である。
【図３ｂ】図３ｂは、本発明の実施形態による、初期化署名およびシャットダウン署名と共に、電力管理ブロック、例えば、図３ａの電力管理ブロック３０４の電力管理ブロックを表す図である。
【図４】図４は、本発明の実施形態による、不揮発性メモリコンポーネントを初期的に用いることに関連する工程を示すプロセスフロー図である。
【図５】図５は、本発明の実施形態による、以前に電源が切断された可能性があるメモリコンポーネントを利用する方法に関連する工程を示すプロセスフロー図である。
【図６】図６は、本発明の実施形態による、不揮発性メモリのホストシステム領域およびデータ領域を表す図である。
【図７】図７は、本発明の実施形態による、不揮発性メモリに、Ｗｉｎｄｏｗｓ（Ｒ）またはＤＯＳのようなファイル割り当てテーブルファイルシステムを用いて、ホストシステムに関連するファイルを書き込むことに関連する工程を示すプロセスフロー図である。
【図８】図８は、本発明の実施形態による、１つの論理ブロックに関連付けられた物理ブロックを識別し、処理するある方法に関連する工程を示すプロセスフロー図である。
【図９】図９は、本発明の実施形態による、システムアーキテクチャを表すブロック図である。
【符号の説明】
【０１２２】
１０４  システムバス
１０８  マイクロプロセッサ
１１２  ランダムアクセスメモリ
１１６  入力／出力回路
１２０  不揮発性メモリデバイス
１２４  不揮発性メモリ
１２８  メモリコントロールシステム
１３０  インターフェースブロック
【図１ａ】
2004152301.tif 000003
【図１ｂ】
2004152301.tif 000004
【図１ｃ】
2004152301.tif 000005
【図２】
2004152301.tif 000006
【図３ａ】
2004152301.tif 000007
【図３ｂ】
2004152301.tif 000008
【図４】
2004152301.tif 000009
【図５】
2004152301.tif 000010
【図６】
2004152301.tif 000011
【図７】
2004152301.tif 000012
【図８】
2004152301.tif 000013
【図９】
2004152301.tif 000014