(57)【要約】【課題】  欠陥ブロックとして識別される、潜在的に使用可能なブロックが予備ブロックとして用いられることを可能にする。【解決手段】  本発明は、不揮発性メモリ１２４内で欠陥があるとして識別された少なくとも１つの物理ブロックに試験を受けさせる工程であって、該試験は、欠陥がある物理ブロックが使用可能であるか否かを判定するように構成される、工程と、欠陥があるとして識別された該物理ブロックが該試験に合格した場合を判定する工程と、欠陥があるとして識別された該物理ブロックが該試験に合格したことが判定された場合、欠陥があるとして識別された該物理ブロックを使用可能な物理ブロックとして識別する工程とを包含する。【選択図】  図５
2004152299.tif 000002
【特許請求の範囲】
【請求項１】
不揮発性メモリ内の予備ブロックを識別する方法であって、
該不揮発性メモリ内で欠陥があるとして識別された少なくとも１つの物理ブロックに試験を受けさせる工程であって、該試験は、欠陥がある物理ブロックが使用可能であるか否かを判定するように構成される、工程と、
欠陥があるとして識別された該物理ブロックが該試験に合格した場合を判定する工程と、
欠陥があるとして識別された該物理ブロックが該試験に合格したことが判定された場合、欠陥があるとして識別された該物理ブロックを使用可能な物理ブロックとして識別する工程と
を包含する、方法。
【請求項２】
欠陥があるとして識別された前記少なくとも１つの物理ブロックに前記試験を受けさせる工程は、欠陥があるとして識別された該少なくとも１つの物理ブロックに、欠陥があるとして識別された該物理ブロックにビットを書き込む書き込みプロセス、欠陥があるとして識別された該物理ブロックから該ビットを読み出す読み出しプロセス、および、欠陥があるとして識別された該物理ブロックから該ビットを消去する消去プロセスのうちの少なくとも１つを受けさせる工程を包含する、請求項１に記載の方法。
【請求項３】
前記物理ブロックを使用可能な物理ブロックとして識別する工程は、
欠陥があるとして識別された該物理ブロックを第１の予備ブロックとして識別する工程と、
該第１の予備ブロックを前記不揮発性メモリと関連する予備ブロックのプールに追加する工程であって、該第１の予備ブロックは、ビットを格納する際に用いるための該予備ブロックのプールから取得されるように構成される、工程と
を包含する、請求項１に記載の方法。
【請求項４】
前記不揮発性メモリ内で少なくとも１つのさらなる予備ブロックが必要とされる場合を判定する工程と、
該少なくとも１つのさらなる予備ブロックが必要とされることが判定された場合、前記物理ブロックに欠陥があるとして識別されたブロックを識別する工程と
をさらに包含する、請求項１に記載の方法。
【請求項５】
欠陥があるとして識別された前記物理ブロックを識別する工程は、
前記不揮発性メモリと関連するデータ構造を走査する工程であって、該データ構造は、欠陥があるとして識別された該物理ブロックに欠陥があることを示すように構成されたビットを含むように構成される、工程を包含する、請求項４に記載の方法。
【請求項６】
前記データ構造は、欠陥があるとして識別された前記物理ブロックが工場欠陥を有する場合を識別するためのビットの第１のセット、および、欠陥があるとして識別された該物理ブロックが成長欠陥を有する場合を識別するためのビットの第２のセットの１つを含むようにさらに構成される、請求項５に記載の方法。
【請求項７】
前記データ構造は、消去カウントブロックである、請求項４に記載の方法。
【請求項８】
欠陥があるとして識別された前記物理ブロックは、成長欠陥を含む、請求項１に記載の方法。
【請求項９】
前記不揮発性メモリは、フラッシュメモリである、請求項１に記載の方法。
【請求項１０】
前記フラッシュメモリは、ＮＡＮＤフラッシュメモリおよびＭＬＣ  ＮＡＮＤフラッシュメモリの１つである、請求項９に記載の方法。
【請求項１１】
不揮発性メモリ内の使用不能物理格納素子を管理する方法であって、
第１の物理格納素子に欠陥があるとして識別される場合を判定する工程と、
該第１の物理格納素子に欠陥があることが判定された場合、使用可能な物理格納素子のプールから該第１の物理格納素子を実質的に除去する工程と、
該不揮発性メモリにおけるデータ構造に第１の署名を格納する工程であって、該第１の署名は、該第１の物理格納素子に欠陥があるとして識別するように構成される、工程と
を包含する、方法。
【請求項１２】
前記第１の物理格納素子に欠陥がある場合を判定する工程は、該第１の物理格納素子が首尾よく読み出され得ない場合を判定する工程、該第１の物理格納素子が首尾よく書き込まれない場合を判定する工程、および、該物理格納素子が首尾よく消去され得ない場合を判定する工程のうちの少なくとも１つを包含する、請求項１１に記載の方法。
【請求項１３】
前記第１の物理格納素子に欠陥があることが判定された場合、該第１の物理格納素子は成長欠陥を含み、前記第１の署名は、該第１の物理格納素子が該成長欠陥を有するとして識別するように構成される、請求項１２に記載の方法。
【請求項１４】
前記第１の物理格納素子に欠陥がある場合を判定する工程は、前記ビットは、該第１の物理格納に欠陥があることを示すように構成されるか否かを判定するために、該第１の物理格納素子に含まれるビットを読み出す工程を包含する、請求項１１に記載の方法。
【請求項１５】
前記第１の物理格納素子に欠陥があることが判定された場合、該第１の物理格納素子は工場欠陥を含み、前記第１の署名は、該第１の物理格納素子が該工場欠陥を有するとして識別するように構成される、請求項１４に記載の方法。
【請求項１６】
前記データ構造は、前記使用可能格納素子に関連するビットを含むようにさらに構成される、請求項１１に記載の方法。
【請求項１７】
前記不揮発性メモリ内の実質的にすべての物理素子を走査して、前記第１の物理素子を識別する工程をさらに包含する、請求項１１に記載の方法。
【請求項１８】
前記第１の物理素子は、第１の物理ブロックであり、前記使用可能物理素子は使用可能物理ブロックである、請求項１１に記載の方法。
【請求項１９】
前記不揮発性メモリは、フラッシュメモリである、請求項１１に記載の方法。
【請求項２０】
前記フラッシュメモリは、ＮＡＮＤフラッシュメモリおよびＭＬＣ  ＮＡＮＤフラッシュメモリの１つである、請求項１９に記載の方法。
【請求項２１】
不揮発性メモリと関連する、欠陥があるとして識別された少なくとも１つの物理ブロックに試験を受けさせるコードデバイスであって、該試験は、欠陥があるとして識別された物理ブロックが使用可能であるか否かを判定するように構成される、コードデバイスと、
欠陥があるとして識別された該物理ブロックが該試験に合格した場合に関して判定させるコードデバイスと、
欠陥があるとして識別された該物理ブロックが該試験に合格したことが判定された場合、欠陥があるとして識別された該物理ブロックを使用可能な物理ブロックとして識別させるコードデバイスと、
該コードデバイスを格納するメモリ領域と
を備える、不揮発性メモリシステム。
【請求項２２】
欠陥があるとして識別された前記物理ブロックに試験を受けさせる前記コードデバイスは、欠陥があるとして識別された該物理ブロックに欠陥があるとして識別された該物理ブロックにビットを書き込む書き込みプロセスを受けさせるコードデバイス、欠陥があるとして識別された該物理ブロックに欠陥があるとして識別された該物理ブロックから該ビットを読み出す読み出しプロセスを受けさせるコードデバイス、および、欠陥があるとして識別された該欠陥がある物理ブロックに該ビットを消去する消去プロセスを受けさせるコードデバイスのうちの少なくとも１つを備える、請求項２１に記載の不揮発性メモリシステム。
【請求項２３】
欠陥があるとして識別された前記物理ブロックを利用可能な物理ブロックとして識別させる前記コードデバイスは、
欠陥があるとして識別された該物理ブロックを第１の予備ブロックとして識別させるコードデバイスと、
該第１の予備ブロックを、前記不揮発性メモリと関連する予備ブロックのプールに追加させるコードデバイスであって、該第１の予備ブロックは、ビットを格納する際に用いるための該予備ブロックのプールから取得されるように構成される、コードデバイスと
を備える、請求項２１に記載の不揮発性メモリシステム。
【請求項２４】
前記不揮発性メモリ内で少なくとも１つのさらなる予備ブロックが必要とされる場合の判定をさせるコードデバイスと、
該少なくとも１つのさらなる予備ブロックが必要とされることが判定された場合、欠陥があるとして識別された前記物理ブロックを識別させるコードデバイスであって、該不揮発性メモリに関連するデータ構造を走査させるコードデバイスを含み、該データ構造は、欠陥があるとして識別された該物理ブロックに欠陥があることを示すように構成されるビットを含むように構成される、コードデバイスと
をさらに備える、請求項２１に記載の不揮発性メモリシステム。
【請求項２５】
前記データ構造は、欠陥があるとして識別された前記物理ブロックが工場欠陥を有する場合を識別するためのビットの第１のセット、および欠陥があるとして識別された該物理ブロックが成長欠陥を有する場合を識別するためのビットの第２のセットの１つを含むようにさらに構成される、請求項２４に記載の不揮発性メモリシステム。
【請求項２６】
欠陥があるとして識別された前記物理ブロックは成長欠陥を含む、請求項２１に記載の不揮発性メモリシステム。
【請求項２７】
前記コードデバイスは、ソフトウェアコードデバイスおよびファームウェアコードデバイスの１つである、請求項２１に記載の不揮発性メモリシステム。
【請求項２８】
不揮発性メモリの第１の物理格納素子に欠陥がある場合に関して判定させるコードデバイスと、
該第１の物理格納素子に欠陥があることが判定された場合、該第１の物理格納素子を、使用可能な物理格納素子のプールから実質的に除去させるコードデバイスと、
第１の署名を不揮発性メモリにおけるデータ構造に格納させるコードデバイスであって、該第１の署名は、該第１の物理格納素子に欠陥があるとして識別するように構成される、コードデバイスと、
該コードデバイスを格納するメモリ領域と
を備える、不揮発性メモリシステム。
【請求項２９】
前記第１の物理格納素子に欠陥がある場合の判定をさせる前記コードデバイスは、該第１の物理格納素子が首尾よく読み出され得ない場合の判定をさせるコードデバイス、該第１の物理格納素子が首尾よく書き込まれ得ない場合の判定をさせるコードデバイス、および該第１の物理格納素子が首尾よく消去され得ない場合の判定をさせるコードデバイスのうちの少なくとも１つを備える、請求項２８に記載の不揮発性メモリシステム。
【請求項３０】
前記第１の物理格納素子に欠陥があることが判定される場合、該第１の物理格納素子は成長欠陥を含み、第１の署名は、該第１の物理格納素子が該成長欠陥を有するとして識別するように構成される、請求項２９に記載の不揮発性メモリシステム。
【請求項３１】
前記第１の物理格納素子に欠陥がある場合の判定をさせる前記コードデバイスは、前記ビットが該第１の物理格納に欠陥があることを示すように構成されるか否かを判定するために、該第１の物理格納素子内に含まれるビットを読み出させるコードデバイスを含む、請求項２８に記載の不揮発性メモリシステム。
【請求項３２】
前記第１の物理格納素子に欠陥があることが判定された場合、該第１の物理格納素子は工場欠陥を含み、前記第１の署名は、該第１の物理格納素子を該工場欠陥を有するとして識別するように構成される、請求項３１に記載の不揮発性メモリシステム。
【請求項３３】
前記不揮発性メモリ内の実質的にすべての物理素子を走査させて、前記第１の物理素子を識別するコードデバイスをさらに備える、請求項２８に記載の不揮発性メモリシステム。
【請求項３４】
前記第１の物理素子は、第１の物理ブロックであり、前記使用可能な物理素子は、使用可能な物理ブロックである、請求項２８に記載の不揮発性メモリシステム。
【請求項３５】
前記コードデバイスは、ソフトウェアコードデバイスおよびファームウェアコードデバイスの１つである、請求項２８に記載の不揮発性メモリシステム。
【請求項３６】
不揮発性メモリと、
該不揮発性メモリと関連する少なくとも１つの欠陥がある物理ブロックに試験を受けさせる手段と、
該欠陥がある物理ブロックが該試験に合格した場合を判定する手段と、
該欠陥がある物理ブロックが該試験に合格したことが判定される場合、該欠陥がある物理ブロックを使用可能な物理ブロックとして識別する手段と
を備える、不揮発性メモリシステム。
【請求項３７】
前記欠陥がある物理ブロックは、成長欠陥を含む、請求項１に記載の不揮発性メモリシステム。
【請求項３８】
前記不揮発性メモリは、フラッシュメモリである、請求項３６に記載の不揮発性メモリシステム。
【請求項３９】
前記フラッシュメモリは、ＮＡＮＤフラッシュメモリおよびＭＬＣ  ＮＡＮＤフラッシュメモリの１つである、請求項３８に記載の不揮発性メモリシステム。
【請求項４０】
不揮発性メモリと、
第１の物理格納素子に欠陥がある場合を判定する手段と、
該第１の物理格納素子に欠陥があることが判定された場合、使用可能な物理格納素子のプールから該第１の物理格納素子を実質的に除去する手段と、
該不揮発性メモリ内のデータ構造に第１の署名を格納する手段であって、第１の署名は、該第１の物理格納素子を欠陥があるとして識別するように構成される、手段と、
を備える、不揮発性メモリシステム。
【請求項４１】
前記第１の物理格納素子に欠陥がある場合を判定する前記手段は、該第１の物理格納素子が首尾よく読み出され得ない場合を判定する手段、該第１の物理格納素子が首尾よく書き込まれ得ない場合を判定する手段、および、該第１の物理格納素子が首尾よく消去され得ない場合を判定する手段のうちの少なくとも１つを備える、請求項４０に記載の不揮発性メモリシステム。
【請求項４２】
前記第１の物理格納素子に欠陥があることが判定された場合、該第１の物理格納素子は成長欠陥を含み、前記第１の署名は、該第１の物理格納素子を該成長欠陥を有するとして識別するように構成される、請求項４１に記載の不揮発性メモリシステム。
【請求項４３】
前記第１の物理格納素子に欠陥がある場合を判定する手段は、該第１の物理格納素子内に含まれるビットを読み出す手段を含み、該ビットが該第１の物理格納に欠陥があることを示すように構成されるか否かを判定する、請求項４０に記載の不揮発性メモリシステム。
【請求項４４】
前記第１の物理格納素子に欠陥があることが判定された場合、該第１の物理格納素子は工場欠陥を含み、前記第１の署名は、該第１の物理格納素子を該工場欠陥を有するとして識別するように構成される、請求項４３に記載の不揮発性メモリシステム。
【請求項４５】
前記第１の物理素子は、第１の物理ブロックであり、前記使用可能な物理素子は、使用可能な物理ブロックである、請求項４０に記載の不揮発性メモリシステム。
【請求項４６】
前記不揮発性メモリは、フラッシュメモリである、請求項４０に記載の不揮発性メモリシステム。
【請求項４７】
前記フラッシュメモリは、ＮＡＮＤフラッシュメモリおよびＭＬＣ  ＮＡＮＤフラッシュメモリの１つである、請求項４６に記載の不揮発性メモリシステム。
【請求項４８】
不揮発性メモリシステム内のブロックを管理する方法であって、
該不揮発性メモリシステムの不揮発性メモリ内の第１の物理ブロックが工場欠陥を有する場合を判定する工程と、
該第１の物理ブロックが該工場欠陥を有することが判定された場合、該第１の物理ブロックを該工場欠陥を有するとして識別する第１の署名を該不揮発性メモリと関連するデータ構造に格納する工程と、
該第１の物理ブロックが該工場欠陥を有することが判定された場合、該第１の物理ブロックが情報を格納するために用いられることを実質的に防止する工程と、
該不揮発性メモリ内の第２の物理ブロックが成長欠陥を有する場合を判定する工程と、
該第２の物理ブロックが該成長欠陥を有することが判定された場合、該第２の物理ブロックを該成長欠陥を有するとして識別する第２の署名を該データ構造に格納する工程と、
該第１の物理ブロックが該成長欠陥を有することが判定された場合、該第２の物理ブロックが情報を格納するために用いられることを実質的に防止する工程と
を包含する、方法。
【請求項４９】
前記不揮発性メモリ内で予備ブロックが必要とされる場合を判定する工程と、
該第２の物理ブロックを試験して、前記第２の物理ブロックが使用可能である場合を判定する工程と、
該第２の物理ブロックが使用可能であることが判定された場合、該第２の物理ブロックを該予備ブロックとして指定する工程と
をさらに包含する、請求項４８に記載の方法。
【請求項５０】
前記第２の署名を配置することによって前記第２の物理ブロックを識別するために、前記データ構造を走査する工程をさらに包含する、請求項４９に記載の方法。
【請求項５１】
前記不揮発性メモリは、ＮＡＮＤフラッシュメモリおよびＭＬＣ  ＮＡＮＤフラッシュメモリの１つである、請求項４８に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
（本発明の背景）
（１．発明の分野）
本発明は、概して、大容量デジタルデータ格納システムに関する。より具体的には、本発明は、欠陥があるか、または使用不能な物理ブロックが管理されることを可能にして、予備ブロックが必要とされる場合、成長欠陥を有する欠陥ブロックが、場合によっては再生利用（ｒｅｃｌａｉｍｅｄ）され得るシステムおよび方法に関する。
【背景技術】
【０００２】
（２．関連技術の説明）
フラッシュメモリ格納システム等の不揮発性メモリシステムは、このようなメモリシステムの物理サイズが小さく、繰返し再プログラムされるという不揮発性メモリの能力のために益々使用されている。フラッシュメモリ格納システムの小さい物理サイズは、益々普及しつつあるデバイスにおけるこのような格納システムの使用を容易にする。フラッシュメモリ格納システムを用いるデバイスは、デジタルカメラ、デジタルカムコーダ、デジタルミュージックプレーヤー、ハンドヘルドパーソナルコンピュータおよびグローバルポジショニングデバイスを含むがこれらに限定されない。フラッシュメモリ格納システムに含まれる不揮発性メモリに繰り返し再プログラムする能力は、フラッシュメモリ格納システムが使用かつ再使用されることを可能にする。
【０００３】
一般に、フラッシュメモリ格納システムは、フラッシュメモリカードおよびフラッシュメモリチップセットを含み得る。フラッシュメモリチップセットは、通常、フラッシュメモリコンポーネントおよびコントローラコンポーネントを含む。通常、フラッシュメモリチップセットは、埋め込みシステムに組み入れられるように構成され得る。このようなアセンブリまたはホストシステムの製造業者は、通常、コンポーネントの形態のフラッシュメモリ、および他のコンポーネントを取得し、その後、フラッシュメモリおよび他のコンポーネントをホストシステムに組み入れる。
【０００４】
フラッシュメモリが製造される場合、通常、製造欠陥（ｍａｎｕｆａｃｔｕｒｉｎｇ  ｄｅｆｅｃｔｓ）または工場欠陥（ｆａｃｔｏｒｙ  ｄｅｆｅｃｔｓ）は、フラッシュメモリの製造業者によって識別される。一般に、フラッシュメモリが含む、欠陥があるか、または使用不能な物理ブロックが特定の数または特定の比率よりも小さい場合、そのフラッシュメモリは、例えば、フラッシュメモリカードの製造業者に販売され得る。欠陥ブロックは、例えば、電荷を保持することの失敗し得、かつフラッシュメモリの製造業者によって適用される応力試験ではねられ得る。工場欠陥が識別された場合、フラッシュメモリの製造業者は、工場欠陥を含むブロックを欠陥があるとして有効にマークし得る。
【０００５】
工場欠陥を含むフラッシュメモリにおける欠陥ブロックは、フラッシュメモリに電力が印加された場合に走査プロセスを用いて識別され得る。一般に、走査プロセスは、さらに、成長欠陥（ｇｒｏｗｉｎｇ  ｄｅｆｅｃｔ）を含む欠陥ブロック、すなわち、一旦使用可能であったが使用不能になったブロックを識別する。走査プロセスが欠陥ブロックを識別する一方で、走査プロセスは、通常、工場欠陥を有する欠陥ブロックと、成長欠陥を有する欠陥ブロックとを区別しない。欠陥ブロックの識別は、欠陥ブロックが使用されることを防止することによってフラッシュメモリシステム全体の完全性（ｉｎｔｅｇｒｉｔｙ）を保証するために重要である。例えば、データを保持することができない欠陥ブロックがデータを格納するために用いられた場合、データは失われ得る。
【０００６】
通常、フラッシュメモリに電力が印加されると、欠陥ブロックが走査プロセスによって識別された場合、欠陥ブロックの一時的または揮発性リストが生成され得る。図１を参照して、メモリシステム内の欠陥ブロックのリストをコンパイルする１つの従来の方法と関連する工程が記載される。欠陥があるかまたは使用不能ブロックのリストをコンパイルするプロセス２００は、メモリシステムに電力が供給される工程２０４にて開始する。一旦メモリシステムが電源投入されると、実質的にすべてのブロック、すなわち、メモリシステムの不揮発性メモリにおける物理ブロックが工程２０８の順序にて走査されて、欠陥ブロックを識別する。通常、最初にシステムが電源投入されてフォーマット化される場合、欠陥ブロックは、工場欠陥、すなわち、不揮発性メモリと関連する製造プロセスの間に初めて識別された欠陥を有するブロックのみを含む。次に続く電源投入（ｐｏｗｅｒ  ｕｐ）プロセスにて、欠陥ブロックは、工場欠陥を有するブロックおよび成長欠陥を有するブロックの両方、あるいはメモリシステムが用いられている間に生じる欠陥を含み得る。
【０００７】
欠陥ブロックが識別された後、工程２１２において、バッファにて欠陥ブロックのリストが生成され得る。多くの場合、このリストは、メモリシステムと関連する揮発性バッファにて生成され、従って、メモリシステムから電力が除去された場合、リストは失われる。さらに、欠陥ブロックのリストは、通常、工場欠陥が原因で欠陥があるブロックと、成長欠陥が原因で欠陥があるブロックとを区別しない。そうではなく、リストにあるブロックは、通常、使用不能であるとして識別されるにすぎない。
【０００８】
工程２１６において、欠陥があるか、または使用不能ブロックは、使用が防止される。欠陥ブロックの使用の防止は、欠陥ブロックのリストにおけるブロックが、予備ブロックとしての使用のためにアクセスされないことを確実にすることを含み得る。従って、リストに含まれないブロックは、工程２２０にて、データまたは情報の格納における使用のために用いられる。時折、欠陥ブロックのリストに含まれないブロックは、首尾よく読み出され得ず、首尾よく書き込まれ得ず、または首尾よく消去され得ない。換言すると、欠陥ブロックのリストに含まれないブロックは、例えば、生じた成長欠陥が原因等のように欠陥があり得る。従って、プロセスの流れは、工程２２０から工程２２４に進み、ここで、欠陥ブロックのリストに含まれないブロックが実際には欠陥があることが判定される。
【０００９】
工程２２４にて、ブロックに欠陥がないことが判定された場合、プロセスの流れは工程２２０に戻り、ここで、リストに含まれないブロックが引き続き使用される。あるいは、工程２２４において、リストに含まれないブロックに欠陥があることが判定された場合、このブロックは、工程２２８にて欠陥ブロックのリストに追加される。一旦このブロックが欠陥ブロックのリストに追加されると、プロセスの流れは工程２２０に戻り、ここで、欠陥ブロックのリストに含まれないブロックが用いられる。
【００１０】
欠陥ブロックのリストの生成は、欠陥ブロックが使用されることを、通常、有効に防止
するが、多くの場合、リストにて識別されたブロックの少なくともいくつかが実際は使用可能であり得る。特に、成長欠陥を含む欠陥ブロックの少なくともいくつかは、実際、過酷なパターンを有する試験プロセスに合格し得る。すなわち、欠陥ブロックの少なくともいくつかは、実際には使用可能であることが証明され得る。いくつかの場合において、特定の「極端」な環境すなわちまれな環境において欠陥があると思われるブロックは、「正常」な環境すなわちより一般的な環境においては、実際には欠陥がみられ得ない。その結果、実際には使用可能であるブロックが用いられ得ず、メモリシステムが、実際には使用可能であるブロックのすべてを用いることができないために、メモリシステムは、あまり効率的に動作し得ない。例えば、ＮＡＮＤフラッシュメモリが、通常、ほとんどのフラッシュメモリの仕様範囲から外れている約９０℃の環境にさらされる場合、通常、多くの成長欠陥が検出される。仕様範囲から外れている環境にて検出されるこれらの使用不能な成長欠陥の多くは、メモリが、例えば、メモリの仕様書に記載された範囲内のより正常な温度に戻された場合、使用可能であり得る。
【００１１】
時には、フラッシュメモリコンポーネントを含むメモリシステムを用いる間に、メモリシステムが、データの格納において用いるために利用可能な予備ブロックを十分に有さないことが判定され得る。データの格納において用いるために利用可能な予備ブロックが十分にない場合、データの格納において使用するためのさらなるフラッシュメモリコンポーネントをユーザが取得することが必要とされ得る。メモリシステムと共に用いるさらなるフラッシュメモリコンポーネントの取得は、時間がかかり、かつ相対的に高価であり得る。使用不能であると特徴付けられた使用可能ブロックがあり得る場合、メモリシステム内で利用可能な予備ブロックの欠如を補償することは、特に非効率的であり得る。なぜなら、潜在的に使用可能ないくつかのブロックが事実上廃棄されるからである。
【発明の開示】
【発明が解決しようとする課題】
【００１２】
従って、必要とされるのは、欠陥ブロックとして識別される、潜在的に使用可能なブロックが予備ブロックとして用いられることを可能にする方法および装置である。すなわち、所望されるのは、成長欠陥が原因で欠陥があると特徴付けられるブロックを、これらのブロックが実際は使用可能である場合、「再利用」すなわち再生する方法および装置である。
【課題を解決するための手段】
【００１３】
（発明の要旨）
本発明は、所望ならば、少なくともいくつかの欠陥ブロックが使用可能性について容易に識別および試験され得るように欠陥ブロックを追跡するシステムおよび方法に関する。本発明の１局面によると、不揮発性メモリ内の予備ブロックを識別する方法は、不揮発性メモリと関連する少なくとも１つの欠陥がある物理ブロックに、欠陥がある物理ブロックが使用可能であるか否かを判定するように構成される試験を受けさせる工程を包含する。本方法は、いつ欠陥がある物理ブロックが試験に合格したかを判定する工程、および欠陥がある物理ブロックが試験に合格したことを判定された場合、その欠陥がある物理ブロックを使用可能な物理ブロックとして識別する工程をさらに包含する。１実施形態において、欠陥がある物理ブロックを使用可能な物理ブロックとして識別する工程は、欠陥がある物理ブロックを第１の予備ブロックとして識別する工程、および不揮発性メモリと関連する予備ブロックのプールに第１の予備ブロックを追加する工程を包含する。
【００１４】
使用不能であるとして予め識別された潜在的に使用可能ブロックを再生する能力は、不揮発性メモリシステム内、実質的にあらゆる利用可能なブロックがデータを格納するために用いられることを有効に可能にし、これにより、メモリシステムが用いられ、従って、メモリシステムがより効率的に動作することを可能にする。１実施形態において、一旦「良好」であったが、「不良（ｂａｄ）」になった、首尾よく消去できない等の成長欠陥を有するブロックが、過酷な試験の後、場合によっては再生され得る。いくつかのブロックが再生されることを可能にすることによって、メモリシステムのリソースは、より効率的に用いられ得る。
【００１５】
本発明の別の局面によると、不揮発性メモリ内の使用不能な物理格納素子を管理する方法は、第１の物理格納素子に欠陥があるとしていつ識別されるかを判定する工程、および、第１の物理格納素子に欠陥があるとして識別されたことを判定された場合、その第１の物理格納素子を使用可能な物理格納素子のプールから実質的に除去する工程を包含する。この方法は、第１の物理格納素子に欠陥があるとして識別する不揮発性メモリにおけるデータ構造に第１の署名を格納する工程をさらに包含する。このようなデータ構造は、米国特許出願第１０／２８１，６２６号に記載されるような消去カウントブロックであり得る。１実施形態において、第１の物理格納素子に欠陥がある時を判定する工程は、第１の物理格納素子がいつ首尾よく読み出されないかもしれない場合を判定する工程、第１の物理格納素子が首尾よく書き込まれないかもしれない場合を判定する工程、および第１の物理格納素子が首尾よく消去されないかもしれない場合を判定する工程の少なくとも１つを包含する。
【００１６】
本発明のさらに別の局面によると、不揮発性メモリシステム内のブロックを管理する方法は、不揮発性メモリシステムの不揮発性メモリ内の第１の物理ブロックが、工場欠陥を有するのはいつかを判定する工程、第１の物理ブロックが工場欠陥を有すると判定された場合、第１の物理ブロックがその工場欠陥を有するとして識別する不揮発性メモリと関連するデータ構造に第１の署名を格納する工程を包含する。この方法は、第１の物理ブロックが工場欠陥を有することが判定された場合、第１の物理ブロックが情報を格納するために用いられることを実質的に防止する工程、不揮発性メモリ内の第２の物理ブロックが成長欠陥を有するのはいつかを判定する工程、および、第２の物理ブロックが成長欠陥を有すると判定された場合、第２の物理ブロックを、成長欠陥を有するとして識別するデータ構造に第２の署名を格納する工程をさらに包含する。最後に、この方法は、第１の物理ブロックが成長欠陥を有すると判定された場合、第２の物理ブロックが情報を格納するために用いられることを実質的に防止する工程を包含する。
【００１７】
本発明による不揮発性メモリ内の予備ブロックを識別する方法は、該不揮発性メモリ内で欠陥があるとして識別された少なくとも１つの物理ブロックに試験を受けさせる工程であって、該試験は、欠陥がある物理ブロックが使用可能であるか否かを判定するように構成される、工程と、欠陥があるとして識別された該物理ブロックが該試験に合格した場合を判定する工程と、欠陥があるとして識別された該物理ブロックが該試験に合格したことが判定された場合、欠陥があるとして識別された該物理ブロックを使用可能な物理ブロックとして識別する工程とを包含し、それにより上記目的が達成される。
【００１８】
欠陥があるとして識別された前記少なくとも１つの物理ブロックに前記試験を受けさせる工程は、欠陥があるとして識別された該少なくとも１つの物理ブロックに、欠陥があるとして識別された該物理ブロックにビットを書き込む書き込みプロセス、欠陥があるとして識別された該物理ブロックから該ビットを読み出す読み出しプロセス、および、欠陥があるとして識別された該物理ブロックから該ビットを消去する消去プロセスのうちの少なくとも１つを受けさせる工程を包含してもよい。
【００１９】
前記物理ブロックを使用可能な物理ブロックとして識別する工程は、欠陥があるとして識別された該物理ブロックを第１の予備ブロックとして識別する工程と、該第１の予備ブロックを前記不揮発性メモリと関連する予備ブロックのプールに追加する工程であって、該第１の予備ブロックは、ビットを格納する際に用いるための該予備ブロックのプールから取得されるように構成される、工程とを包含してもよい。
【００２０】
前記不揮発性メモリ内で少なくとも１つのさらなる予備ブロックが必要とされる場合を判定する工程と、該少なくとも１つのさらなる予備ブロックが必要とされることが判定された場合、前記物理ブロックに欠陥があるとして識別されたブロックを識別する工程とをさらに包含してもよい。
【００２１】
欠陥があるとして識別された前記物理ブロックを識別する工程は、前記不揮発性メモリと関連するデータ構造を走査する工程であって、該データ構造は、欠陥があるとして識別された該物理ブロックに欠陥があることを示すように構成されたビットを含むように構成される、工程を包含してもよい。
【００２２】
前記データ構造は、欠陥があるとして識別された前記物理ブロックが工場欠陥を有する場合を識別するためのビットの第１のセット、および、欠陥があるとして識別された該物理ブロックが成長欠陥を有する場合を識別するためのビットの第２のセットの１つを含むようにさらに構成されてもよい。
【００２３】
前記データ構造は、消去カウントブロックであってもよい。
【００２４】
欠陥があるとして識別された前記物理ブロックは、成長欠陥を含んでもよい。
【００２５】
前記不揮発性メモリは、フラッシュメモリであってもよい。
【００２６】
前記フラッシュメモリは、ＮＡＮＤフラッシュメモリおよびＭＬＣ  ＮＡＮＤフラッシュメモリの１つであってもよい。
【００２７】
本発明による不揮発性メモリ内の使用不能物理格納素子を管理する方法は、第１の物理格納素子に欠陥があるとして識別される場合を判定する工程と、該第１の物理格納素子に欠陥があることが判定された場合、使用可能な物理格納素子のプールから該第１の物理格納素子を実質的に除去する工程と、該不揮発性メモリにおけるデータ構造に第１の署名を格納する工程であって、該第１の署名は、該第１の物理格納素子に欠陥があるとして識別するように構成される、工程とを包含し、それにより上記目的が達成される。
【００２８】
前記第１の物理格納素子に欠陥がある場合を判定する工程は、該第１の物理格納素子が首尾よく読み出され得ない場合を判定する工程、該第１の物理格納素子が首尾よく書き込まれない場合を判定する工程、および、該物理格納素子が首尾よく消去され得ない場合を判定する工程のうちの少なくとも１つを包含してもよい。
【００２９】
前記第１の物理格納素子に欠陥があることが判定された場合、該第１の物理格納素子は成長欠陥を含み、前記第１の署名は、該第１の物理格納素子が該成長欠陥を有するとして識別するように構成されてもよい。
【００３０】
前記第１の物理格納素子に欠陥がある場合を判定する工程は、前記ビットは、該第１の物理格納に欠陥があることを示すように構成されるか否かを判定するために、該第１の物理格納素子に含まれるビットを読み出す工程を包含してもよい。
【００３１】
前記第１の物理格納素子に欠陥があることが判定された場合、該第１の物理格納素子は工場欠陥を含み、前記第１の署名は、該第１の物理格納素子が該工場欠陥を有するとして識別するように構成されてもよい。
【００３２】
前記データ構造は、前記使用可能格納素子に関連するビットを含むようにさらに構成されてもよい。
【００３３】
前記不揮発性メモリ内の実質的にすべての物理素子を走査して、前記第１の物理素子を識別する工程をさらに包含してもよい。
【００３４】
前記第１の物理素子は、第１の物理ブロックであり、前記使用可能物理素子は使用可能物理ブロックであってもよい。
【００３５】
前記不揮発性メモリは、フラッシュメモリであってもよい。
【００３６】
前記フラッシュメモリは、ＮＡＮＤフラッシュメモリおよびＭＬＣ  ＮＡＮＤフラッシュメモリの１つであってもよい。
【００３７】
本発明による不揮発性メモリと関連する、欠陥があるとして識別された少なくとも１つの物理ブロックに試験を受けさせるコードデバイスは、該試験は、欠陥があるとして識別された物理ブロックが使用可能であるか否かを判定するように構成される、コードデバイスと、欠陥があるとして識別された該物理ブロックが該試験に合格した場合に関して判定させるコードデバイスと、欠陥があるとして識別された該物理ブロックが該試験に合格したことが判定された場合、欠陥があるとして識別された該物理ブロックを使用可能な物理ブロックとして識別させるコードデバイスと、該コードデバイスを格納するメモリ領域と
を備え、それにより上記目的が達成される。
【００３８】
欠陥があるとして識別された前記物理ブロックに試験を受けさせる前記コードデバイスは、欠陥があるとして識別された該物理ブロックに欠陥があるとして識別された該物理ブロックにビットを書き込む書き込みプロセスを受けさせるコードデバイス、欠陥があるとして識別された該物理ブロックに欠陥があるとして識別された該物理ブロックから該ビットを読み出す読み出しプロセスを受けさせるコードデバイス、および、欠陥があるとして識別された該欠陥がある物理ブロックに該ビットを消去する消去プロセスを受けさせるコードデバイスのうちの少なくとも１つを備えてもよい。
【００３９】
欠陥があるとして識別された前記物理ブロックを利用可能な物理ブロックとして識別させる前記コードデバイスは、欠陥があるとして識別された該物理ブロックを第１の予備ブロックとして識別させるコードデバイスと、該第１の予備ブロックを、前記不揮発性メモリと関連する予備ブロックのプールに追加させるコードデバイスであって、該第１の予備ブロックは、ビットを格納する際に用いるための該予備ブロックのプールから取得されるように構成される、コードデバイスとを備えてもよい。
【００４０】
前記不揮発性メモリ内で少なくとも１つのさらなる予備ブロックが必要とされる場合の判定をさせるコードデバイスと、該少なくとも１つのさらなる予備ブロックが必要とされることが判定された場合、欠陥があるとして識別された前記物理ブロックを識別させるコードデバイスであって、該不揮発性メモリに関連するデータ構造を走査させるコードデバイスを含み、該データ構造は、欠陥があるとして識別された該物理ブロックに欠陥があることを示すように構成されるビットを含むように構成される、コードデバイスとをさらに備えてもよい。
【００４１】
前記データ構造は、欠陥があるとして識別された前記物理ブロックが工場欠陥を有する場合を識別するためのビットの第１のセット、および欠陥があるとして識別された該物理ブロックが成長欠陥を有する場合を識別するためのビットの第２のセットの１つを含むようにさらに構成されてもよい。
【００４２】
欠陥があるとして識別された前記物理ブロックは成長欠陥を含んでもよい。
【００４３】
前記コードデバイスは、ソフトウェアコードデバイスおよびファームウェアコードデバイスの１つであってもよい。
【００４４】
本発明による不揮発性メモリシステムは、不揮発性メモリの第１の物理格納素子に欠陥がある場合に関して判定させるコードデバイスと、該第１の物理格納素子に欠陥があることが判定された場合、該第１の物理格納素子を、使用可能な物理格納素子のプールから実質的に除去させるコードデバイスと、第１の署名を不揮発性メモリにおけるデータ構造に格納させるコードデバイスであって、該第１の署名は、該第１の物理格納素子に欠陥があるとして識別するように構成される、コードデバイスと、該コードデバイスを格納するメモリ領域とを備え、そのことにより上記目的が達成される。
【００４５】
前記第１の物理格納素子に欠陥がある場合の判定をさせる前記コードデバイスは、該第１の物理格納素子が首尾よく読み出され得ない場合の判定をさせるコードデバイス、該第１の物理格納素子が首尾よく書き込まれ得ない場合の判定をさせるコードデバイス、および該第１の物理格納素子が首尾よく消去され得ない場合の判定をさせるコードデバイスのうちの少なくとも１つを備えてもよい。
【００４６】
前記第１の物理格納素子に欠陥があることが判定される場合、該第１の物理格納素子は成長欠陥を含み、第１の署名は、該第１の物理格納素子が該成長欠陥を有するとして識別するように構成されてもよい。
【００４７】
前記第１の物理格納素子に欠陥がある場合の判定をさせる前記コードデバイスは、前記ビットが該第１の物理格納に欠陥があることを示すように構成されるか否かを判定するために、該第１の物理格納素子内に含まれるビットを読み出させるコードデバイスを含んでもよい。
【００４８】
前記第１の物理格納素子に欠陥があることが判定された場合、該第１の物理格納素子は工場欠陥を含み、前記第１の署名は、該第１の物理格納素子を該工場欠陥を有するとして識別するように構成されてもよい。
【００４９】
前記不揮発性メモリ内の実質的にすべての物理素子を走査させて、前記第１の物理素子を識別するコードデバイスをさらに備えてもよい。
【００５０】
前記第１の物理素子は、第１の物理ブロックであり、前記使用可能な物理素子は、使用可能な物理ブロックであってもよい。
【００５１】
前記コードデバイスは、ソフトウェアコードデバイスおよびファームウェアコードデバイスの１つであってもよい。
【００５２】
本発明による不揮発性メモリシステムは、不揮発性メモリと、該不揮発性メモリと関連する少なくとも１つの欠陥がある物理ブロックに試験を受けさせる手段と、該欠陥がある物理ブロックが該試験に合格した場合を判定する手段と、該欠陥がある物理ブロックが該試験に合格したことが判定される場合、該欠陥がある物理ブロックを使用可能な物理ブロックとして識別する手段とを備え、そのことにより上記目的が達成される。
【００５３】
前記欠陥がある物理ブロックは、成長欠陥を含んでもよい。
【００５４】
前記不揮発性メモリは、フラッシュメモリであってもよい。
【００５５】
前記フラッシュメモリは、ＮＡＮＤフラッシュメモリおよびＭＬＣ  ＮＡＮＤフラッシュメモリの１つであってもよい。
【００５６】
本発明による不揮発性メモリシステムは、不揮発性メモリと、第１の物理格納素子に欠陥がある場合を判定する手段と、該第１の物理格納素子に欠陥があることが判定された場合、使用可能な物理格納素子のプールから該第１の物理格納素子を実質的に除去する手段と、該不揮発性メモリ内のデータ構造に第１の署名を格納する手段であって、第１の署名は、該第１の物理格納素子を欠陥があるとして識別するように構成される、手段と、を備え、そのことにより、上記目的が達成される。
【００５７】
前記第１の物理格納素子に欠陥がある場合を判定する前記手段は、該第１の物理格納素子が首尾よく読み出され得ない場合を判定する手段、該第１の物理格納素子が首尾よく書き込まれ得ない場合を判定する手段、および、該第１の物理格納素子が首尾よく消去され得ない場合を判定する手段のうちの少なくとも１つを備えてもよい。
【００５８】
前記第１の物理格納素子に欠陥があることが判定された場合、該第１の物理格納素子は成長欠陥を含み、前記第１の署名は、該第１の物理格納素子を該成長欠陥を有するとして識別するように構成されてもよい。
【００５９】
前記第１の物理格納素子に欠陥がある場合を判定する手段は、該第１の物理格納素子内に含まれるビットを読み出す手段を含み、該ビットが該第１の物理格納に欠陥があることを示すように構成されるか否かを判定してもよい。
【００６０】
前記第１の物理格納素子に欠陥があることが判定された場合、該第１の物理格納素子は工場欠陥を含み、前記第１の署名は、該第１の物理格納素子を該工場欠陥を有するとして識別するように構成されてもよい。
【００６１】
前記第１の物理素子は、第１の物理ブロックであり、前記使用可能な物理素子は、使用可能な物理ブロックであってもよい。
【００６２】
前記不揮発性メモリは、フラッシュメモリであってもよい。
【００６３】
前記フラッシュメモリは、ＮＡＮＤフラッシュメモリおよびＭＬＣ  ＮＡＮＤフラッシュメモリの１つであってもよい。
【００６４】
本発明による不揮発性メモリシステム内のブロックを管理する方法は、該不揮発性メモリシステムの不揮発性メモリ内の第１の物理ブロックが工場欠陥を有する場合を判定する工程と、該第１の物理ブロックが該工場欠陥を有することが判定された場合、該第１の物理ブロックを該工場欠陥を有するとして識別する第１の署名を該不揮発性メモリと関連するデータ構造に格納する工程と、該第１の物理ブロックが該工場欠陥を有することが判定された場合、該第１の物理ブロックが情報を格納するために用いられることを実質的に防止する工程と、該不揮発性メモリ内の第２の物理ブロックが成長欠陥を有する場合を判定する工程と、該第２の物理ブロックが該成長欠陥を有することが判定された場合、該第２の物理ブロックを該成長欠陥を有するとして識別する第２の署名を該データ構造に格納する工程と、該第１の物理ブロックが該成長欠陥を有することが判定された場合、該第２の物理ブロックが情報を格納するために用いられることを実質的に防止する工程とを包含し、そのことにより上記目的が達成される。
【００６５】
前記不揮発性メモリ内で予備ブロックが必要とされる場合を判定する工程と、該第２の物理ブロックを試験して、前記第２の物理ブロックが使用可能である場合を判定する工程と、該第２の物理ブロックが使用可能であることが判定された場合、該第２の物理ブロックを該予備ブロックとして指定する工程とをさらに包含してもよい。
【００６６】
前記第２の署名を配置することによって前記第２の物理ブロックを識別するために、前記データ構造を走査する工程をさらに包含してもよい。
【００６７】
前記不揮発性メモリは、ＮＡＮＤフラッシュメモリおよびＭＬＣ  ＮＡＮＤフラッシュメモリの１つであってもよい。
【００６８】
本発明のこれらおよび他の利点は、以下の詳細な説明を読み、かつ図面の種々の図を検討することによって明らかになる。
【００６９】
本発明は、添付の図面と関連付けて以下の説明を参照することによって最良に理解され得る。
【発明の効果】
【００７０】
本発明によると、消去カウントブロックを含む不揮発性メモリシステムに電力が最初に供給された場合、消去カウントブロックは、通常、初期化されるか、そうでない場合、生成される。換言すると、通常、不揮発性メモリシステムの不揮発性メモリが最初にフォーマット化された場合、および任意の使用不能ブロックが識別された場合、消去カウントブロックは、通常、初期化される。不揮発性メモリシステムの不揮発性メモリが最初にフォーマット化された場合、消去ブロックを初期化する工程が本発明の実施形態により記載される。不揮発性メモリシステム内のすべてのブロック、またはより具体的には、すべての物理ブロックが検査される。通常、システムが最初にフォーマット化された場合、使用不能ブロックは、実質的に、不揮発性メモリの製造業者によって使用不能であるとして識別されたブロック、すなわち、工場欠陥を有するブロックのみを含む。このようなブロックは、ブロック内に格納されたビットによって工場欠陥を有するとして識別され得る。従って、不揮発性メモリ内の使用不能ブロックが識別される。
【発明を実施するための最良の形態】
【００７１】
本特許出願は、米国特許仮出願第６０／４２１，９６５号（２００２年１０月２８日出願）の優先権を主張し、この出願は、参考のため、本明細書中にその全体が援用される。
【００７２】
（関連出願の相互参照）
本発明は、同時係属中の米国特許出願第１０／２８１，７３９号、第１０／２８１，８２３号、第１０／２８１，６７０号、第１０／２８１，８２４号、第１０／２８１，６３１号、第１０／２８１，８５５号、第１０／２８１，７６２号、第１０／２８１，６９６号、第１０／２８１，６２６号および第１０／２８１，８０４号、ならびに同時係属中の米国特許仮出願第６０／４２１，９１０号、第６０／４２１，７２５号、第６０／４２２，１６６号、第６０／４２１，７４６号および第６０／４２１，９１１号（各々、２００２年１０月２８日出願）に関し、これらの出願は、各々、参考のため、本明細書中にその全体が援用される。
【００７３】
（実施形態の詳細な説明）
不揮発性メモリを含むメモリシステムが空のすなわち、低速走行する予備の物理ブロックのプールを有する場合、メモリシステムのユーザは、利用可能なメモリの低速走行によって、有効に補償することを強いられ得る。例えば、ユーザは、高価であり得るさらなる不揮発性メモリを取得し得る。時折、いくつかの環境において使用不能または欠陥があるとして識別された不揮発性メモリの物理ブロックは、後から、異なった環境において、実際に使用するために適切であり得る。例えば、成長欠陥が原因で使用不能であるとして識別された物理ブロックは、過酷なパターンを有する徹底的な試験プロセスのインプリメンテーションにおいて再生可能であり得る。使用不能であると特徴付けられた使用可能ブロックがあり得る場合、いくつかの潜在的に使用可能なブロックが事実上廃棄される。
【００７４】
使用不能であると予め識別された潜在的に使用可能なブロックを再生することによって、使用するために適切である実質的にあらゆる利用可能なブロックがデータを格納するために用いられ得、これにより、メモリシステム全体が用いられ、従って、より効率的に動作することを可能にする。通常、例えば、電荷の格納レベルを維持できない等の工場欠陥を有するブロックは、これらのブロックが製造された時点で欠陥があり、かつ、実質的に、常に欠陥があり、従って、再生不可能である。しかしながら、一旦「良好」であったが「不良」になった、首尾よく消去できない等の成長欠陥を有するブロックは、いくつかの場合、再生され得る。従って、１実施形態において、成長欠陥を有するブロックは、そのブロックが実際に使用可能であるか否かを判定するために試験され得る一方で、工場欠陥を有するブロックは試験されないかもしれない。
【００７５】
使用不能ブロックが、工場欠陥が原因で使用不能であるのか、または成長欠陥が原因で使用不能であるのかを識別することは、ブロック再生プロセス全体がより効率的になることを可能にする。これは、工場欠陥を有するブロックの試験が回避され得るからである。換言すると、潜在的に再生可能であるブロック、すなわち、成長欠陥を有するブロックのみを実質的に試験することによって、ブロックを再生するための試験プロセスが効率的にインプリメントされ得るが、これは、おそらく再生されないブロックが、全般的に、試験されないからである。使用不能ブロックが識別された場合、使用不能ブロックを、工場欠陥が原因で使用不能であるか、または成長欠陥が原因で使用不能であるかをマークすることは、成長欠陥を有する使用不能ブロックが容易に識別されることを可能にする。
【００７６】
使用不能ブロックが工場欠陥を含むか、または成長欠陥を含むかを追跡することによって、使用不能ブロックを管理することは、メモリシステムのリソースが効率的に用いられることを可能にする。成長欠陥を有する不揮発性メモリ内の少なくともいくつかの使用不能ブロックを再生する可能性がある場合、利用可能なブロックの欠如が原因で不揮発性メモリを置換する必要性を少なくとも遅延することが可能であり得る。
【００７７】
フラッシュメモリシステム、または、より一般的には、使用不能ブロックを管理し、一旦さらなる予備ブロックが必要とされると、使用不能であると予め識別されたブロックを再生する能力から利益を受け得る不揮発性メモリデバイスは、例えば、ＮＡＮＤまたはＭＬＣ  ＮＡＮＤの、カードおよびチップセット等のフラッシュメモリを通常含む。通常、フラッシュメモリシステムは、ホストシステムとの関連で用いられ、従って、ホストシステムは、フラッシュメモリシステムにデータを書き込み得るか、またはフラッシュメモリシステムからデータを読み出し得る。しかしながら、いくつかのフラッシュメモリシステムは、図２ｃを参照して後述されるように、埋め込みフラッシュメモリ、およびホスト上で実行して埋め込みフラッシュメモリのコントローラとして実質的に機能するソフトウェアを含む。図２ａを参照して、例えば、コンパクトフラッシュ（Ｒ）メモリカード等の不揮発性メモリデバイスを含む一般的ホストシステムが説明される。ホストまたはコンピュータシステム１００は、通常、マイクロプロセッサ１０８、ランダムアクセスメモリ（ＲＡＭ）１１２および入力／出力回路１１６が通信することを可能にするシステムバス１０４を含む。ホストシステム１００は、通常、例えば、表示デバイスおよびネットワークデバイス等の他のコンポーネントを含み得ることが理解されるべきである。これらは、例示の目的で図示されない。
【００７８】
一般に、ホストシステム１００は、さらに、画像情報、オーディオ情報およびビデオ画像情報を含むが、これらに限定されない情報を取り込むことが可能であり得る。このような情報は、リアルタイムで取り込まれ得、かつ無線方式でホストシステム１００に送信され得る。ホストシステム１００が実質的に任意のシステムであり得る一方で、ホストシステム１００は、通常、デジタルカメラ、ビデオカメラ、セルラー通信デバイス、オーディオプレーヤまたはビデオプレーヤなどのシステムである。しかしながら、ホストシステム１００は、通常、データまたは情報を格納し、データまたは情報を取り出す実質的に任意のシステムであり得ることが理解されるべきである。
【００７９】
ホストシステム１００は、さらに、データを取り込むだけか、またはデータを取り出すだけのシステムであり得る。すなわち、ホストシステム１００は、１実施形態において、データを格納する専用システムであり得るか、または、ホストシステム１００は、データを読み出す専用システムであり得る。例示的に、ホストシステム１００は、データを書き込むかまたは格納するだけのために構成されるメモリライタであり得る。あるいは、ホストシステム１００は、通常、データを読み出すか、または取り出すために構成されるが、データを取り込むようには構成されないＭＰ３プレーヤ等のデバイスであり得る。
【００８０】
１実施形態において、除去可能な不揮発性メモリデバイスである不揮発性メモリデバイス１２０は、情報を格納するためにバス１０４とインターフェース接続するように構成される。選択的インターフェースブロック１３０は、不揮発性メモリデバイス１２０が、バス１０４と間接的にインターフェース接続することを可能にし得る。存在する場合、当業者によって理解されるように、入力／出力回路ブロック１１６がバス１０４上の負荷を低減するために利用される。不揮発性メモリデバイス１２０は、不揮発性メモリ１２４および選択的メモリ制御システム１２８を含む。１実施形態において、不揮発性メモリデバイス１２０は、単一チップまたはダイ上でインプリメントされ得る。あるいは、不揮発性メモリデバイス１２０は、マルチチップモジュール上、または、チップセットを形成し得、かつ不揮発性メモリデバイス１２０として共に用いられ得る複数の別個のコンポーネント上でインプリメントされ得る。不揮発性メモリデバイス１２０の１実施形態は、図２ｂを参照してより詳細に後述される。
【００８１】
例えば、ＮＡＮＤフラッシュメモリまたはＭＬＣ  ＮＡＮＤフラッシュメモリといったフラッシュメモリ等の不揮発性メモリ１２４は、データを格納するように構成され、従って、データが必要に応じてアクセスされ、かつ読み出され得る。不揮発性メモリ１２４に格納されたデータは、さらに、適宜消去され得るが、不揮発性メモリ１２４における特定のデータは、消去されないかもしれないことが理解されるべきである。データを格納、データを読み出し、およびデータを消去するプロセスは、通常、メモリ制御システム１２８によって制御されるか、またはメモリ制御システム１２８が存在しない場合、マイクロプロセッサ１０８によって実行されるソフトウェアによって制御される。不揮発性メモリ１２４の動作は管理され得、従って、不揮発性メモリ１２４の寿命は、不揮発性メモリ１２４のセクションを基本的に実質的に等しく消耗させることによって実質的に最大化される。
【００８２】
不揮発性メモリデバイス１２０が、選択的メモリ制御システム１２８、すなわちコントローラを含むように大局的に記載された。多くの場合、不揮発性メモリデバイス１２０は、不揮発性メモリ１２４およびメモリ制御システム１２８、すなわちコントローラ機能の別個のチップを含み得る。例示的に、ＰＣカード、コンパクトフラッシュ（Ｒ）カード、マルチメディアカードおよびセキュアデジタルカードを含むが、これに限定されない不揮発性メモリデバイスは、別個のチップ上でインプリメントされ得るコントローラを含み、他の不揮発性メモリデバイスは、別個のチップ上でインプリメントされるコントローラを含み得ない。不揮発性メモリデバイス１２０が別個のメモリおよびコントローラチップを含まない実施形態において、当業者によって理解されるように、メモリおよびコントローラ機能は、単一チップに統合され得る。あるいは、メモリ制御システム１２８の機能性は、上述の不揮発性メモリデバイス１２０がメモリコントローラ１２８を含まない実施形態における実施例のように、マイクロプロセッサ１０８によって提供され得る。
【００８３】
図２ｂを参照して、本発明の実施形態による不揮発性メモリデバイス１２０がより詳細に説明される。上述のように、不揮発性メモリデバイス１２０は、不揮発性メモリ１２４を含み、かつメモリ制御システム１２８を含み得る。メモリ１２４および制御システム１２８すなわちコントローラは、不揮発性メモリデバイス１２０の一次コンポーネントであり得るが、メモリ１２４が、埋め込みＭＬＣ  ＮＡＮＤメモリといった埋め込みＮＡＮＤデバイスである場合、例えば、不揮発性メモリデバイス１２０は、制御システム１２８を含み得ない。メモリ１２４は、半導体基板上に形成されたメモリセルのアレイであり得、ここで、２のうちの１つ、またはより多くの電荷のレベルをメモリセルの個々の格納素子に格納することによって、１ビット以上のデータが個々のメモリセルに格納される。不揮発性性フラッシュ電気的消去再書込み可能プログラム可能読み出し専用メモリ（ＥＥＰＲＯＭ）は、このようなシステムの一般的なタイプのメモリの例である。
【００８４】
存在する場合、制御システム１２８は、バス１５を介してホストコンピュータ、またはデータを格納するためにメモリシステムを用いる他のシステムに通信する。バス１５は、通常、図２ａのバス１０４の一部分である。制御システム１２８は、さらに、メモリ１２４の動作を制御し、これは、ホストにより提供されるデータを書き込み、ホストによってリクエストされるデータを読み出し、かつオペレーティングメモリ１２４における種々のハウスキーピング機能を実行するメモリセルアレイ１１を含み得る。制御システム１２８は、通常、関連する不揮発性性ソフトウェアメモリ、種々の論理回路等を有する多目的マイクロプロセッサを含む。多くの場合、１つ以上の状態マシンが、特定のルーチンの性能を制御するためにさらに含まれる。
【００８５】
メモリセルアレイ１１は、通常、制御システム１２８、またはアドレス復号器１７を通じてマイクロプロセッサ１０８によってアドレス指定される。復号器１７は、制御システム１２８によってアドレス指定されるメモリセルの群にデータをプログラムし、そこからデータを読み出すか、またはそれを消去するために、正確な電圧をアレイ１１のゲートおよびビット線に印加する。さらなる回路１９は、セルのアドレス指定された群にプログラムされるデータに依存する、アレイの素子に印加された電圧を制御するプログラミングドライバを含む。回路１９は、センス増幅器、およびアドレス指定されたメモリセルの群からデータを読み出すために必要とされる他の回路をさらに含む。アレイ１１にプログラムされるべきデータ、またはアレイ１１から最近読み出されたデータは、通常、制御システム１２８内のバッファメモリ２１に格納される。制御システム１２８は、通常、コマンドおよび状態データ等を一時的に格納するための種々のレジスタもまた含む。
【００８６】
アレイ１１は、多数のＢＬＯＣＫＳ０−Ｎメモリセルに分割される。フラッシュＥＥＰＲＯＭシステムについて一般的であるように、ブロックは、通常、消去の最小ユニットである。すなわち、各ブロックは、共に消去される最小数のメモリセルを含む。各ブロックは、通常、複数のページに分割される。当業者によって理解されるように、ページは、プログラミングの最小ユニットであり得る。すなわち、基本プログラミング動作は、メモリセルの１ページの最小にデータを書き込むか、またはここからデータを読み出す。１つ以上のデータのセクタは、通常、各ページ内に格納される。図２ｂに示されるように、１セクタは、ユーザデータおよびオーバヘッドデータを含む。オーバヘッドデータは、通常、セクタのユーザデータから計算されたエラー訂正コード（ＥＣＣ）を含む。制御システム１２８の一部分２３は、データがアレイ１１にプログラムされる場合にＥＣＣを計算し、さらに、アレイ１１からデータが読み出される場合、ＥＣＣをチェックする。あるいは、複数のＥＣＣは、これらが属するユーザデータとは異なったページ、または異なるブロックに格納される。
【００８７】
ユーザデータの１セクタは、通常、５１２バイトであり、磁気ディスクドライブにおけるセクタのサイズに対応する。オーバヘッドデータまたは冗長データは、通常、さらなる１６バイトである。データの１セクタは、最も一般的には、各ページに含まれるが、２つ以上のセクタは、その代わりにページを形成し得る。任意の数のページは、通常、ブロックを形成し得る。例示的に、ブロックは、８ページから５１２まで、１０２４またはそれ以上のページから形成され得る。メモリシステムに所望のデータ格納容量を提供するためにブロックの数が選択される。アレイ１１は、通常、いくつかのサブアレイ（図示せず）に分割され、これらの各々は、ブロックの一部分を含み、サブアレイは、種々のメモリ動作の実行において並列処理の程度を高めるために、互いにいくらか独立して動作する。複数のサブアレイの使用の例は、米国特許第５，８９０，１９２号に記載され、この出願は、参考のため、その全体が本明細書中に援用される。
【００８８】
１実施形態において、ＭＬＣ  ＮＡＮＤメモリ等の不揮発性メモリは、例えば、ホストシステム等のシステムに埋め込まれる。図２ｃは、埋め込み不揮発性メモリを含むホストシステムの図示である。ホストまたはコンピュータシステム１５０は、通常、マイクロプロセッサ１５８、ＲＡＭ１６２、および入力／出力回路１６６が、ホストシステム１５０の他のコンポーネント（図示せず）の中で通信することを可能にするシステムバス１５４を含む。例えば、フラッシュメモリ等の不揮発性メモリ１７４は、情報がホストシステム１５０内に格納されることを可能にする。インターフェース１８０は、不揮発性メモリ１７４とバス１５４との間に提供され得、情報が不揮発性メモリ１７４から読み出されおよびこれに書き込まれることを可能にする。
【００８９】
不揮発性メモリ１７４は、不揮発性メモリ１７４を制御するように構成されるソフトウェアおよびファームウェアのどちらか、または両方を有効に実行するマイクロプロセッサ１５８によって管理され得る。すなわち、マイクロプロセッサ１５８は、コードデバイス、すなわち、ソフトウェアコードデバイスまたはファームウェアコードデバイスを実行し得、これは、不揮発性メモリ１７４が制御されることを可能にする。ＣＰＵ内部マイクロプロセッサ１５８、別個のフラッシュＲＯＭ、または内部不揮発性メモリ１７４で実装されるフラッシュメモリであり得るこのようなコードデバイス（後述される）は、不揮発性メモリ１７４における物理ブロックがアドレス指定されることを可能にし得、かつ、情報が物理ブロックに格納され、ここから読み出され、かつここから消去されることを可能にし得る。
【００９０】
使用不能ブロック、例えば、工場欠陥を有する使用不能ブロックおよび成長欠陥を有する使用不能ブロックが容易に識別され得るように区別されることを可能にするために、ビットの第１の連続は、工場欠陥を有する使用不能ブロックを識別するために用いられ得、および、ビットの第１の連続は、成長欠陥を有する使用不要ブロックを識別するために用いられ得る。ビットの異なった連続、例えば、署名またはマーキングは、工場欠陥を有するブロックと成長欠陥を有するブロックとを実質的に一意的に識別するように構成され得る。
【００９１】
通常、工場欠陥を有するとしてブロックを識別する署名、および成長欠陥を有するとしてブロックを識別する署名は、不揮発性メモリシステムと関連するデータ構造に格納され得る。好適には、不揮発性メモリコンポーネント内のデータ構造に格納され、従って、データ構造は、システム全体が電源切断される場合に無傷の状態で保持される、このようなデータ構造は、メモリコンポーネント内に存在する実質的にあらゆる物理ブロックと関連するビットを含み得る。使用不能の物理ブロックと関連するビットは、署名であり得、この署名は、使用不能ブロックを、工場欠陥または成長欠陥のどちらかを有するとして実質的に一意的に識別する。
【００９２】
工場欠陥を有する使用不能ブロックおよび成長欠陥を有する使用不能ブロックを識別する署名またはマーキングを格納するために用いられ得るデータ構造は、米国特許出願第１０／２８１，６２６号（参考のため、援用された）に記載されるような、不揮発性メモリシステムと関連する消去カウントブロックであり得、これは、例えば、ＮＡＮＤメモリ等のメモリに格納される保留ブロックである。消去カウントブロックは、成長欠陥を有する使用不能ブロックが、例えば、識別されることを可能にするために、再生プロセスが行われるべき場合にアクセスされ得る。不揮発性メモリシステム内の物理ブロックが消去された回数を有効に追跡するために用いられ得る消去カウントも、消去カウントブロックに格納され得る。一般に、消去カウントブロックは、各物理ブロックの消去カウントに加えて、不揮発性メモリシステム内の各使用不可能な物理ブロックが消去された平均回数のインジケータであるように構成される平均消去カウントも含み得る。図３ａは、本発明の実施形態による消去カウントブロックの図示である。消去カウントブロック３００は、通常、大きさが調整され、従って、消去カウントブロック３００が消去カウントブロック３００を含む不揮発性性システム全体内のブロックすなわち物理ブロックごとに特定の数のビットを含む。各ブロックに有効に割り当てられたビットの数は、ブロックの全消去カウントが、割り当てられたビットによって適応され得るように選択され得る。１実施形態において、消去カウントブロック３００は、ブロックごとに約３バイトを含み得る。これは、３バイトは、約十万のオーダー（ｏｒｄｅｒ）で消去カウントを適応するために、通常、十分だからである。３バイトがブロックごとに割り当てられた場合、ブロックごとに約６４ページを有する約２０４８ブロックを含む５１２Ｍｂシステムにおいて、消去カウントブロック３００は、約１２ページ、例えば、約６０００バイトを含むように大きさが調整され得る。
【００９３】
消去カウントブロック３００は、ページ３１０を含み、これは、当業者によって理解されるように、多くの場合、約５１２バイトを含み、これは、消去カウントなどのデータを格納するために用いられ得る。示されたように、第１のページ３１０ａは、ブロック「０」〜「１６９」の消去カウントエントリを含むように構成され得る一方で、第２のページ３１０ｂは、ブロック「１７０」〜「３３９」の消去カウントエントリを含むように構成され得る。ブロック「１」すなわち、物理ブロック「１」の消去カウントが書き込まれるか読み出されるべき場合、第１のページ３１０ａの３〜５バイトがアクセスされ得る。これは、図３ｂおよび図３ｃを参照して以下に説明されるように、第１のページ３１０ａのバイト３〜５がブロック「１」に対応する消去カウントエントリを含むように構成されるからである。
【００９４】
消去カウントブロック３００は、ページ３１０を含むことに加えて、通常、消去カウントブロック３００内の実質的にどこにでも配置され得るヘッダ３２０も含む。示されるように、ヘッダ３２０は、消去カウントブロック３００のページ３１０ｃと３１０ｄとの間に配置されるが、このヘッダ３２０は、多くの場合、消去カウントブロック３００の開始点に配置されることが理解されるべきである。図４を参照して後述されるヘッダ３２０は、ページ３１０に格納される消去カウントと関連するブロックを含む不揮発性性フラッシュメモリと関連する情報を含む消去カウントブロック３００におけるページである得る。
【００９５】
図３ｂは、例えば、本発明の実施形態による、図３ａの消去カウントブロック３００のページ３１０ａ消去カウントブロック内のページの図示である。ページ３１０ａは、約１７０の物理ブロックに対応するエントリ３３０を保持するように構成される。示されるように、エントリ３３０は、ブロックの消去カウントを含み、従って、ページ３１０ａにおける第１のエントリ３３０ａがブロック「０」の消去カウントを含むように構成され、かつ第２のエントリ３３０ｂは、ブロック「１」の消去カウントを含むように構成される。ページ３１０ａにおける最後のエントリ３３０ｅは、ブロック「１６９」の消去カウントを保持するように構成される。
【００９６】
各エントリ３３０は、実質的に同じ数のバイトを含む。図３ｃに示されるように、ページ３１０ａにおけるブロック「０」に対応するエントリ３３０ａは、バイト０〜２であり得る一方で、ページ３１０ａにおけるブロック「２」に対応するエントリ３３０ｃは、バイト６〜８であり得る。すでに述べたように、各エントリ３３０は、約３バイトを含み得るが、各エントリ３３０におけるバイトの数、従って、ページ３１０ａにおけるエントリ３３０の数は変化し得ることが理解されるべきである。例示的に、１実施形態において、各エントリ３３０は、約４バイトを含み得る。
【００９７】
ページ３１０ａにおける各エントリ３３０が消去カウントすなわち特定のエントリ３３０が、これまでに消去された回数の表示を含むように構成される一方で、エントリ３３０は、消去カウントを必ずしも含まれなくてもよい。例えば、特定のブロックが使用不能であり、かつ、例えば、製造または工場欠陥が原因で書き込まれないかもしれないか、または読み出されないかもしれない場合、そのブロックは、通常、消去カウントを有さない。従って、図３ａの消去カウントブロック３００等の消去カウントブロックは、通常、使用不能ブロックの消去カウントを含むエントリを有さない。そうではなく、消去カウントを保持する代わりに、使用不能ブロックのエントリ３３０が、ブロックが使用不能であるとして識別するように構成されるインジケータまたはマーキングを保持し得る。より具体的には、エントリ３３０は、ブロックを工場欠陥または製造欠陥が原因で使用不能であるか、または成長欠陥が原因で使用不能であるかを識別するインジケータを保持し得る。
【００９８】
図３ｄは、例えば、図３ａの消去カウントブロック３００のページ３１０ａ等の消去カウントブロックにおけるページの図示であり、これは、本発明の実施形態により特定のブロックが、使用不能であることを示す消去カウントおよびエントリを含む。ブロックが使用不可能であるか、すなわち、あるいはブロックに書き込まれるか、またはブロックから読み出され得る場合、このブロックは、通常、消去カウントを有する。例えば、ブロック「０」に対応する消去カウントを含むように構成されるページ３１０ａのエントリ３３０ａは、ブロック「０」が１００回消去された場合、「１００」の値を含み得る。同様に、ページ３１０ａのエントリ３３０ｂは、ブロック「１」が３０回消去された場合「３０」の値を含み得る。
【００９９】
ブロック「２」が、例えば、ブロック「２」内に格納されたマーキングまたは署名を通じて、工場欠陥が原因で使用不能ブロックとして識別された場合、ブロック「２」と対応するページ３１０ａのエントリ３３０ｃは、ブロック「２」が工場欠陥が原因で使用可能でないことを示すように構成されるマーキングを含み得る。記載された実施形態において、エントリ３３０ｃにおける「ＦＦＦＦＦＦ」のマーキングまたは署名は、ブロック「２」が工場欠陥が原因で使用不能であることを示す。実質的に任意のマーキングは、工場欠陥または製造欠陥が原因でブロックが使用不能であることを示すために用いられ得ることが理解されるべきである。
【０１００】
ブロック「３」が、成長欠陥、または工場欠陥以外の欠陥が原因で使用不能ブロックとして識別された場合、ブロック「３」に対応するページ３１０ａのエントリ３３０ｄは、成長欠陥が原因でブロック「３」が使用可能でないことを示すように構成されるマーキングを含み得る。示されるように、エントリ３３０ｄにおける「７ＦＦＦＦＦ」のマーキングまたは署名は、ブロック「３」が、成長欠陥が原因で使用不能であることを示し得る。成長欠陥が原因でブロックが使用不能であることを識別するために用いられ得る署名の別の例は、「８ＸＸＸＸＸ」等の署名であり、ここで、「ＸＸＸＸＸ」は、消去カウント  の約２０ビットであり得る。成長欠陥のマーキングにおいて消去カウントが含まれ得る署名を用いることによって、欠陥があるとして識別されたブロックの消去カウントがブロック内で維持されることを可能にし得る。
【０１０１】
上述のように、図３ａの消去カウントブロック３００等の消去カウントブロックは、１実施形態において、通常、不揮発性メモリシステム内のブロックに関する情報を含む消去カウントブロック３００内のページであるヘッダ３２０を通常含む。次に図４を参照して、消去カウントブロックのヘッダ、例えば、図３ａの消去カウントブロック３００のヘッダ３２０は、本発明の実施形態により記載される。消去カウントブロック内の実質的にどこにでも配置され得るヘッダ３２０は、情報を格納するために用いられ得る約５１２バイトを含み得る。ヘッダ３２０に格納される情報は、通常、セキュリティチェックのために用いられ得る署名３５０ａを含む。不揮発性メモリにおける保留ブロック３５０ｄの数に関する情報３５０ｄに加えて、不揮発性メモリにおいて隠れたブロックの数に関する情報３５０ｃが、ヘッダ３２０にさらに含まれ得る。情報３５０ｆは、不揮発性メモリに含まれるブロックの総数を含み得、かつ平均消去カウントが、ヘッダ３２０における情報３５０ｇとして格納される。
【０１０２】
ヘッダ３２０は、通常、他のコンテンツを含み得ることを理解されるべきである。例示的に、ヘッダ３２０は、使用中か、または使用するために利用可能である使用可能ブロックの総数に関する情報、ならびに分割情報を含み得る。あるいは、ヘッダ３２０は、工場欠陥を有するブロックの数および成長欠陥を有するブロックの数に関する情報を維持し得る。
【０１０３】
消去カウントブロックを含む不揮発性メモリシステムに電力が最初に供給された場合、消去カウントブロックは、通常、初期化されるか、そうでない場合、生成される。換言すると、通常、不揮発性メモリシステムの不揮発性メモリが最初にフォーマット化された場合、および任意の使用不能ブロックが識別された場合、消去カウントブロックは、通常、初期化される。図５を参照して、不揮発性メモリシステムの不揮発性メモリが最初にフォーマット化された場合、消去ブロックを初期化する１つの方法に関連する工程が本発明の実施形態により記載される。プロセス５００は、ステップ５０４で始まり、ここでは、不揮発性メモリシステム内のすべてのブロック、またはより具体的には、すべての物理ブロックが検査される。欠陥走査プロセスは、１実施形態において、下レベルフォーマットの欠陥走査プロセスを含み得る。ブロックを検査する工程は、どのブロックが使用不能であり得るかを判定するためにブロックのコンテンツを検査する工程を含み得る。通常、システムが最初にフォーマット化された場合、使用不能ブロックは、実質的に、不揮発性メモリの製造業者によって使用不能であるとして識別されたブロック、すなわち、工場欠陥を有するブロックのみを含む。このようなブロックは、ブロック内に格納されたビットによって工場欠陥を有するとして識別され得る。従って、工程５０８において、不揮発性メモリ内の使用不能ブロックが識別される。使用不能ブロックを識別する工程は、ブロックを工場欠陥有するか、そうでない場合これを含むとして識別することが知られている、ビットまたはマーキング、例えば、ブロックの所定のページにおける「０」等の特定の署名などを含む各ブロックを識別する工程を包含し得る。
【０１０４】
一旦、実質的にすべての使用不能ブロックが識別されると、使用不能なブロックは、工程５１２において消去カウントブロックにおいて使用不能であるとマークされるか、または、そうでない場合は識別される。特定のブロックを使用不能であるとマークする工程は、ブロックを使用不能であるとして識別するブロックについて保留される消去カウントブロックの部分において特定のマーキングまたはコードを配置する工程を含み得る。「ＦＦＦＦＦＦ」等の署名は、消去カウントブロックの適切なセクションに配置され得、特定のブロックが、工場欠陥が原因で使用不能であることを示す。消去カウントブロックにおける使用不能ブロックをマークする工程は、通常、不揮発性メモリ内の使用不能ブロックの総数のカウントを含むように、消去カウントブロックのヘッダを更新する工程をさらに包含することを理解されるべきである。
【０１０５】
使用不能ブロックが消去カウントブロックにおいてマークされた後、使用可能ブロック、すなわち、消去されない工場欠陥を有さないブロックの消去カウントが、工程５１６にて初期化される。消去カウントを初期化する工程は、消去される各ブロックの消去カウントを０の値に設定する工程を含み得る。消去されないブロックの消去カウントは、通常、そのブロックと関連する少なくとも１つの冗長またはオーバヘッド領域に格納される。使用可能ブロックに対応する消去カウント、消去される使用可能ブロックおよび消去されない使用可能ブロックの両方は、その後、工程５２０において、消去カウントブロックにて設定され得る。通常、消去カウントブロックに格納された消去カウントは、０の値に、または消去されないブロックの場合には、その対応する消去されないブロックに格納される消去カウントと同じ値に設定されるか、そうでない場合、初期化され得る。換言すると、消去されないブロックの消去カウントは、通常、そのブロックに対応する位置における消去カウントブロックに格納される消去カウントと同じである。一旦、消去カウントが消去カウントブロックにおけるエントリのように設定されると、平均消去カウントは、消去カウントブロックにおいて工程５２４にて設定され得る。上述のように、平均消去カウントは、消去カウントブロックのヘッダに格納され得る。使用可能ブロックの消去カウントがすべて０の値に初期化された場合、平均消去カウントは、初期に、０の値に設定され得る。不揮発性メモリシステムに含まれる不揮発性メモリをフォーマット化するプロセスは、平均消去カウントが設定された後に完了する。
【０１０６】
不揮発性メモリシステム内の物理ブロックを用いる間に、いくつかのブロックは、成長欠陥を有するとして識別され得る。前に使用可能であったブロックがもはや使用可能でないと判定された場合、そのブロックは、通常、成長欠陥を有する。図６を参照して、成長欠陥を有し得るブロックの処理と関連する工程は、本発明の実施形態により記載される。ブロックを有効に区別する工程と関連するプロセス５５０がブロックを使用する試みがなされる工程５５４にて開始する。記載される実施形態において、ブロックの使用を企てる工程は、予備ブロックプールからブロックを取得する工程およびデータをそのブロックに書き込むことを試みる工程を含み得る。あるいは、ブロックの使用を企てる工程は、ブロックからデータを読み出すことを試みる工程、またはブロックを消去することを試みる工程をさらに包含し得る。
【０１０７】
ブロックが使用可能であるか否かに関する判定が工程５５８にてなされる。換言すると、ブロックが首尾よく書き込まれたか、首尾よく読み出されたか、または首尾よく消去されたかが判定される。ブロックが使用不能でないことが判定された場合、ブロックが使用可能ブロックであり、かつ使用可能ブロックのプール全体に残り得ることが表示される。従って、プロセスの流れは、ブロックが用いられる工程５６２に進む。ブロックを用いる工程は、ブロックを用いてデータを格納する工程、およびブロックを予備ブロックプールに追加する工程を包含し得る。一旦ブロックが用いられ、かつ利用可能であると有効に区別されると、ブロックを区別するプロセスが完了する。
【０１０８】
あるいは、工程５５８において、ブロックが利用可能でないことが判定された場合、工程５６６において、ブロックは、利用可能なブロックのプール全体から有効に除去される。例えば、そのブロックが予備ブロックプールから取得され、かつ工程５５４において、そのブロックを用いる試みがブロックに書き込むことを試みる工程を含む場合、利用可能なブロックのプール全体からブロックを除去する工程は、予備ブロックプールからブロックを除去する工程を包含し得る。一般に、使用可能ブロックのプール全体からブロックを除去する工程は、ブロックをマークして、そのブロックが利用可能でないことを示す工程を包含し得る。
【０１０９】
ブロックが利用可能なブロックのプール全体から除去された後、成長欠陥署名、例えば、「７ＦＦＦＦＦ」署名は、工程５７０においてシステムの消去カウントブロックに書き込まれ得、ブロックが成長欠陥を有することを示す。このような署名は、通常、ブロックに対応する消去カウントブロック内の位置に書き込まれる。一旦成長欠陥署名が消去カウントブロックに書き込まれると、工程５７４にて別のブロックを用いる試みがなされ得る。例えば、工程５７０にて成長欠陥を有するとマークされたブロックがデータを格納するために用いられるべき場合、成長欠陥を有するとマークされたブロックに格納されることに失敗したデータを格納する際に用いるために異なったブロックが取得され得る。別のブロックを用いる試みがなされる場合、プロセスの流れは、工程５５８に戻り、ここで、ブロックが使用不能であるか否かが判定される。
【０１１０】
例えば、消去カウントブロック内の異なった署名を用いることにより、工場欠陥を有する使用不能ブロックと成長欠陥を有する使用不能ブロックとを実質的に区別することによって、少なくともいくつかの成長欠陥を有する使用不能ブロックを再生することが可能であり得る。すなわち、実質的に常に不良のブロック、すなわち、工場欠陥を有する使用不能なブロックが、一旦良好であったが、不良になったブロック、すなわち、成長欠陥を有する使用不能ブロックから容易に区別されることを可能にすることによって、成長欠陥を有する使用不能ブロックの少なくともいくつかを、さらなるブロックの必要がある場合再生することが可能であり得る。使用不能ブロックを再生する工程は、通常、使用不能ブロックについての比較的徹底的な試験を実行して、再び利用可能であり得る任意のブロックを識別する工程を包含する。
【０１１１】
図７ａおよび図７ｂは、本発明の実施形態による不揮発性メモリシステム内の使用不能ブロックを再生するプロセスをインプリメントする１つの方法に関連する工程を図示するプロセスフロー図である。使用不能なブロックが再生されることを可能にする不揮発性性システム全体を動作させるプロセス６００が、工程６０２にて開始し、ここで、メモリシステムが電源投入されるプロセスにあるか否かが判定される。システムが電量投入プロセスを経ていないことが判定される場合、プロセスの流れは、工程６０４に進み、ここで、消去カウントブロックが維持される。消去カウントブロックを維持する工程は、成長欠陥が原因で使用不能である使用不能ブロックを識別する消去カウントブロックに署名を書き込む工程を包含し得る。通常、消去カウントブロックは、システム内のブロックが用いられていると維持される。
【０１１２】
システムの動作中の特定の時点にて、ステップ６０８において、予備ブロックプール、すなわち、通常、データの格納に用いられるために利用可能であるブロックのプールが低速走行するのはいつかが判定され得る。すなわち、工程６０８において、使用するために利用可能である十分な数の予備ブロックがあるか否かが判定される。例えば、コントローラによって、または、不揮発性メモリシステムと関連するプロセッサによって予備ブロックプールが低速走行していると判定される場合、プロセスの流れは、ステップ６０４に戻り、ここで、消去カウントブロックが引き続き維持される。
【０１１３】
あるいは、工程６０８にて、予備ブロックが低速走行していると判定された場合、成長欠陥を有するいくつかの使用不能ブロックを再生させることを試みることが所望され得ることが表示される。換言すると、成長欠陥を有するとして識別された任意のブロックが実際は使用可能であるか否かを判定することは有益であり得る。従って、プロセスの流れは、工程６０８から工程６１２に進み、ここで、消去カウントブロックは成長欠陥署名について走査される。一旦消去カウントブロックの走査が開始すると、工程６１６において、成長欠陥を識別する署名が見出されたか否かが判定される。
【０１１４】
工程６１６における判定が、成長欠陥を識別する署名が見出されなかったというものである場合、工程６１８において、成長欠陥を識別する署名を走査するための消去カウントブロックにおいてより多くのエントリがあるか否かに関しての判定がなされる。走査するより多くのエントリがあると判定された場合、消去カウントブロックは、工程６１２において、成長欠陥を識別する署名について走査される。他方、消去カウントブロックにおいて、走査するエントリがもはやないと判定された場合、プロセスの流れは工程６０４に戻り、ここで、消去カウントブロックが引き続き維持される。
【０１１５】
工程６１６に戻って、成長欠陥署名が見出されたと判定された場合、成長欠陥署名が見出されたブロックは、工程６２０にて試験される。ブロックを試験する工程は、情報またはビットをブロックから消去するための消去試験、ビットをブロックに書き込むための書き込み試験、およびブロックから情報を読み出すための読み出し試験のうちの任意の１つまたはこれらの任意の組み合わせをブロックに対して行う工程を包含し得る。当業者によって理解されるように、消去試験は、通常、ブロックが適切に消去され得るか否かを判定するために用いられ、書き込み試験は、通常、ブロックが書き込まれ得るか否かを判定するために用いられ、読み出し試験は、通常、ブロックが読み出され得るか否かを判定するために用いられる。しかしながら、一般に、過酷なパターンを有する実質的に任意の比較的徹底的なブロックの試験が用いられ得る。
【０１１６】
一旦成長欠陥署名が見出されたブロックが試験されると、工程６２４において、ブロックが試験に合格したか否かが判定される。１実施形態において、ブロックが試験に合格したか否かを判定する工程は、そのブロックが消去プロセス、書き込みプロセスおよび読み出しプロセスの少なくとも１つを首尾よく受けたか否かを判定する工程を包含し得る。ブロックが、受けた試験に合格したと判定された場合、ブロックはもはや使用不能でなく、従って、使用のために再生され得ることが表示される。従って、プロセスの流れは、工程６３２に進み、ここで、ブロックの消去カウントが、例えば、システム全体と関連する平均消去カウントに設定される。ブロックの消去カウントが設定された後、ブロックは、工程６３６において予備ブロックプールに追加される。ブロックを予備ブロックプールに追加することは、必要に応じて、ブロックが使用のために取得されることを可能にする。
【０１１７】
工程６３６から、プロセスの流れは工程６２８に進み、ここで、消去カウントブロックの走査が完了するか否かが判定される。換言すると、工程６２８において、ブロックを、成長欠陥を有するとして識別する署名について走査をするために、消去カウントブロックにさらなるエントリがあるか否かが判定される。スキャンするさらなるエントリがあり、かつ、従って、消去カウントブロックの走査が完了されないと判定された場合、プロセスの流れは、工程６１２に戻り、ここで、消去カウントブロックは、ブロックが成長欠陥を有するとして識別する署名について走査される。あるいは、工程６２８において、消去カウントブロックの走査が完了したと判定された場合、プロセスの流れは、工程６０４に戻り、ここで、消去カウントブロックが引き続き維持される。
【０１１８】
工程６２４に戻って、工程６２０において試験されたブロックが試験に合格しなかったことが判定された場合、ブロックは、依然として使用不能であることを示す。従って、ブロックは再生されないかもしれない。１実施形態において、ブロックは、事実上、永久的に使用不能であると考えられ得る。工程６２４において、ブロックが試験に合格しなかった場合、ブロックは、依然として使用不能であると判定され、プロセスの流れは工程６２６に進み、工程６２６において、ブロックが工場欠陥を有するとマークされる。ブロックが工場欠陥を有するとマークする工程は、消去カウントブロックにブロックの工場欠陥署名を書き込む工程を通常包含することが理解されるべきである。ブロックが工場欠陥を有するとマークされた後、消去カウントブロックの走査が完了したか否かが工程６２８において判定される。
【０１１９】
工程６０２に戻って参照して、システムが電源投入プロセスを受けると判定された場合、１実施形態において、成長欠陥を有する使用不能ブロックが試験されて、このようなブロックが実際に利用可能であるか否かを判定し得る。従って、工程６０２から、プロセスの流れは、工程６１２に進み、ここで、消去カウントブロックが成長欠陥署名について走査される。
【０１２０】
使用不能ブロックを管理することと関連する機能性は、通常、ソフトウェアにて、例えば、プログラムコードデバイスとして、または、不揮発性メモリまたは不揮発性メモリコンポーネントを含むホストシステムとのファームウェアとして、提供される。使用不能ブロックが消去カウントブロックにて署名を用いて追跡されることを有効に可能にし、かつ、成長欠陥を有するブロックが場合によっては再生されることを可能にするためにホストシステムに提供される、ソフトウェア、またはファームウェアと関連する適切なシステムアーキテクチャの１実施形態が図８に示される。システムアーキテクチャ７００は、通常、アプリケーションインターフェースモジュール７０４、システムマネージャモジュール７０８、データマネージャモジュール７１２、データ完全性マネージャ７１６およびデバイスマネージャおよびインターフェースモジュール７２０を含む種々のモジュールを含み得るが、これらに限定され得ない。一般に、システムアーキテクチャ７００は、例えば、図２ａのプロセッサ１０８等のプロセッサによってアクセスされ得るソフトウェアコードデバイス、または、ファームウェアを用いてインプリメントされ得る。
【０１２１】
一般に、アプリケーションインターフェースモジュール７０４は、ホスト、オペレーティングシステム、またはユーザと直接的に通信するように構成され得る。アプリケーションインターフェースモジュール７０４は、さらに、システムマネージャモジュール７０８およびデータマネージャモジュール７１２と通信する。ユーザが、フラッシュメモリを読み出し、書き込みまたはフォーマット化することをリクエストした場合、ユーザは、通常、オペレーティングシステムにリクエストを送信し、その後、アプリケーションインターフェースモジュール７０４に転送する。アプリケーションインターフェースモジュール７０４は、このリクエストをリクエストに依存して、システムマネージャモジュール７０８またはデータマネージャモジュール７１２に方向付けする。
【０１２２】
システムマネージャモジュール７０８は、システム初期化サブモジュール７２４、消去カウントブロック管理サブモジュール７２６、および電力管理ブロックサブモジュール７３０を含む。システム初期化サブモジュール７２４は、通常、初期化のリクエストが処理されることを可能にするように構成され、通常、消去カウントブロック管理サブモジュール７２６と通信する。
【０１２３】
消去カウントブロック管理サブモジュール７２６は、個々の消去カウントを用いてブロックの消去カウントが格納されるようにする機能性、および、平均消去カウントが計算され、かつ更新されるようにする機能性を含む。換言すると、消去カウントブロック管理サブモジュール７２６は、消去カウントが登録されることを事実上可能にし、かつ、平均消去カウントが維持されることを可能にする。さらに、１実施形態において、消去カウントブロック管理サブモジュール７２６は、さらに、システム全体の初期化リクエストの間、消去カウントブロックにおける実質的にすべてのブロックの消去カウントを実質的に同期化する。消去カウントブロック管理サブモジュール７２６が、平均消去カウントが消去カウントブロックにて格納されることをもたらすように構成され得るが、電力管理ブロックサブモジュール７３０は、その代わりに、平均消去カウントが格納されることを可能にするために用いられ得ることが理解されるべきである。
【０１２４】
アプリケーションインターフェースモジュール７０４と通信することに加えて、システム管理モジュール７０８は、データ管理モジュール７１２ならびにデバイスマネージャおよびインターフェースモジュール７２０ともまた通信する。システムマネージャモジュール７０８およびアプリケーションインターフェースモジュール７０４の両方と通信するデータ管理モジュール７１２は、論理セクタを物理セクタに有効に変換するセクタマッピングを提供する機能性を含み得る。すなわち、データ管理モジュール７１２は、論理ブロックを物理ブロックにマッピングするように構成される。データ管理モジュール７１２は、さらに、オペレーティングシステムおよびファイルシステムインターフェースレイヤと関連する機能を含み得、かつ、ブロック内の群が管理されることを可能にする。これは、同時係属中の米国特許出願第１０／２８１，８５５号に記載され、この出願は、参考のため、本明細書中にその全体が援用される。１実施形態において、データ管理モジュール７１２は、実質的にアウトオブシーケンス（ｏｕｔ−ｏｆ−ｓｅｑｕｅｎｃｅ）の書き込みプロセスが生じることを可能にするように構成され得る。
【０１２５】
システムマネージャモジュール７０８、データマネージャ７１２およびデータ完全性マネージャ７１６と通信するデバイスマネージャおよびインターフェースモジュール７２０は、通常、フラッシュメモリインターフェースを提供し、かつ、例えば、Ｉ／Ｏインターフェース等のハードウェア抽象化と関連する機能性を含む。データ完全性マネージャモジュール７１６は、機能性の中でもＥＣＣ処理を提供する。
【０１２６】
本発明のほんのわずかな実施形態が記載されたが、本発明は、本発明の意図または範囲から逸脱することなく、多くの他の特定の形態で具体化され得ることが理解されるべきである。例示的に、成長欠陥を有する使用不能ブロック、および工場欠陥を有する使用不能ブロックが、消去カウントブロックにおける異なった署名を用いて追跡されることが記載されたが、異なったタイプの使用不能ブロックが、実質的に任意の適切なデータ構造を用いて追跡され得る。換言すると、１タイプのマーキングまたは署名、および工場欠陥を有するブロックを用いて、消去カウントブロック内の別のタイプのマーキングまたは署名を用いて、成長欠陥を有するブロックを追跡する代わりに、このようなブロックは、使用不能ブロックに関する情報を実質的に排他的に含むように構成されるデータ構造を含むがこれに限定されない種々のデータ構造で追跡され得る。このようなデータ構造内で、成長欠陥を有するブロックが識別され得、かつ工場欠陥を有するブロックが識別され得、再生の目的で、成長欠陥を有するブロックを容易に識別することが可能であり得る。
【０１２７】
一般に、実質的に任意のマーキングまたは署名が、ブロック内に存在する欠陥のタイプを識別するために用いられ得る。すなわち、「７ＦＦＦＦＦ」の署名は、ブロックが成長欠陥を有するとして識別する際に用いられるために適切であると記載され、「ＦＦＦＦＦＦ」の署名は、ブロックが工場欠陥を有するとして識別する際に用いられるために適切であるとして識別されたが、この署名は、多様であり得る。
【０１２８】
消去カウントブロックのヘッダのコンテンツは、本発明の意図または範囲から逸脱することなく、多様であり得る。例えば、使用不能ブロックの総数は、必ずしもヘッダにて格納されないかもしれず、その代わりに、多数の使用不能ブロックに関する情報が格納されないかもしれず、または、成長欠陥を有する多数の使用不能ブロックおよび工場欠陥を有する多数の使用不能ブロックが別々に格納され得る。あるいは、分割情報は、実質的に、ヘッダから削除され得る。
【０１２９】
実質的に成長欠陥を有する使用不能ブロックのみを試験して、成長欠陥を有する任意の使用不能ブロックが再生され得るか否かを判定することに関して使用不能ブロックの再利用または再生が記載された一方で、その代わりに、実質的にすべての使用不能ブロックが試験され得、再生のために適切であり得る任意の使用不能ブロックがあるか否かを判定する。実質的にすべての使用不能なブロックが試験される実施形態において、使用不能なブロックを識別するために消去カウントブロックにおいて格納された署名は、成長欠陥を有するブロックおよび工場欠陥を有するブロックの両方について同じであり得る。すなわち、使用不能なブロックが再生されることを可能にするシステムにおいて、消去カウントブロックにおける署名は、使用不能ブロックと関連する欠陥のタイプ間を必ずしも区別し得ず、その代わりに、ブロックが使用不能であることのみを実質的に識別し得る。
【０１３０】
本発明の種々の方法と関連する工程は、多様であり得る。一般に、工程は、本発明の意図または範囲から逸脱することなく追加、除去、再編成、および変更され得る。例示的に、予備ブロックプールが低速走行している場合、成長欠陥を有するブロックを再生することを試みる代わりに、ブロックは、実質的にいつでも再生され得る。さらに、成長欠陥を有し得るブロックの処理は、コンテンツを有するブロックが成長欠陥を有すると判定されると、ブロックの任意のコンテンツを別のブロックにコピーするか、または少なくともコピーすることを試みる工程を包含し得る。従って、本実施例は、例示的であり、限定的ではないと考えられるべきであり、本発明は、本明細書中に与えられた詳細に限定されるべきでないが、添付の請求項の範囲内で改変され得る。
【０１３１】
本発明では、少なくともいくつかの欠陥ブロックが、所望でならば、使用可能性について容易に識別および試験され得るように欠陥ブロックを追跡する方法および装置が開示される。本発明の１局面によると、不揮発性メモリ内の予備ブロックを識別する方法は、その不揮発性メモリと関連する少なくとも１つの欠陥物理ブロックが使用可能であるか否かを判定するように構成された試験を、その欠陥物理ブロックに受けさせる工程を包含する。この方法は、欠陥物理ブロックが試験に合格した場合を判定する工程、および、その欠陥物理ブロックが試験に合格したことが判定された場合、その欠陥物理ブロックを使用可能な物理ブロックとして識別する工程をさらに包含する。
【０１３２】
以上のように、本発明の好ましい実施形態を用いて本発明を例示してきたが、本発明は、この実施形態に限定して解釈されるべきものではない。本発明は、特許請求の範囲によってのみその範囲が解釈されるべきであることが理解される。当業者は、本発明の具体的な好ましい実施形態の記載から、本発明の記載および技術常識に基づいて等価な範囲を実施することができることが理解される。本明細書において引用した特許、特許出願および文献は、その内容自体が具体的に本明細書に記載されているのと同様にその内容が本明細書に対する参考として援用されるべきであることが理解される。
【図面の簡単な説明】
【０１３３】
【図１】図１は、メモリシステム内の欠陥ブロックのリストをコンパイルする１つの従来の方法による工程を示すプロセスの流れ図である。
【図２ａ】図２ａは、不揮発性メモリを含む一般的ホストシステムの図示である。
【図２ｂ】図２ｂは、例えば、図２ａのメモリデバイス１２０等のメモリデバイスの図示である。
【図２ｃ】図２ｃは、埋め込み不揮発性メモリを含むホストシステムの図示である。
【図３ａ】図３ａは、本発明の実施形態による、消去カウントブロックの図示である。
【図３ｂ】図３ｂは、例えば、図３ａの消去カウントブロック３００のページ３１０ａ等の消去カウントブロック内のページの図示であり、ページは、本発明の実施形態により、実質的にロケーションに分割される。
【図３ｃ】図３ｃは、例えば、図３ａの消去カウントブロック３００のページ３１０ａ等の消去カウントブロック内のページの図示であり、ページは、本発明の実施形態により実質的にバイトに分割される。
【図３ｄ】図３ｄは、例えば、図３ａの消去カウントブロック３００のページ３１０ａ等の消去カウントブロック内のページの図示であり、これは、消去カウント、および本発明の実施形態により特定のブロックが使用不能であることを示すエントリを含む。
【図４】図４は、例えば、本発明の実施形態による、図３ａの消去カウントブロック３００のヘッダ３２０等の消去カウントブロックのヘッダの図示である。
【図５】図５は、不揮発性メモリシステムの不揮発性メモリが本発明の実施形態により最初にフォーマット化される場合、消去カウントブロックを初期化する１方法と関連する工程を示すプロセスの流れ図である。
【図６】図６は、本発明の実施形態による、成長欠陥を有し得るブロックを処理する工程に関する工程を示すプロセスの流れ図である。
【図７ａ】図７ａは、本発明の実施形態による不揮発性メモリシステム内の使用不能ブロックを再生するプロセスをインプリメントする１方法に関連する工程を示すプロセスの流れ図である。
【図７ｂ】図７ｂは、本発明の実施形態による不揮発性メモリシステム内の使用不能ブロックを再生するプロセスをインプリメントする１方法に関連する工程を示すプロセスの流れ図である。
【図８】図８は、本発明の実施形態によるシステムのアーキテクチャのブロック図の図示である。
【符号の説明】
【０１３４】
１０４  システムバス
１０８  マイクロプロセッサ
１１２  ランダムアクセスメモリ
１１６  入力／出力回路
１２０  不揮発性メモリデバイス
１２４  不揮発性メモリ
１２８  選択的メモリ制御システム
１３０  選択的インターフェースブロック
【図１】
2004152299.tif 000003
【図２ａ】
2004152299.tif 000004
【図２ｂ】
2004152299.tif 000005
【図２ｃ】
2004152299.tif 000006
【図３ａ】
2004152299.tif 000007
【図３ｂ】
2004152299.tif 000008
【図３ｃ】
2004152299.tif 000009
【図３ｄ】
2004152299.tif 000010
【図４】
2004152299.tif 000011
【図５】
2004152299.tif 000012
【図６】
2004152299.tif 000013
【図７ａ】
2004152299.tif 000014
【図７ｂ】
2004152299.tif 000015
【図８】
2004152299.tif 000016