(57)【要約】【課題】  不揮発性メモリの物理ブロックにコンテンツを効果的に格納可能にするための方法および装置が開示される。【解決手段】  本発明の１つの局面によると、メモリユニットを有する不揮発性メモリシステムで書き込み操作を実行するための方法は、メモリユニットの第１の物理サブユニットに第１のコンテンツのセットを書き込むステップと、第１のコンテンツのセットが第１の物理サブユニットに書き込まれた後に、メモリユニットの第２の物理サブユニットに第２のコンテンツのセットを書き込むステップとを含む。第１の物理サブユニットは、メモリユニットの第２の物理サブユニットより順番的に前にある。第１のコンテンツのセットは、論理ユニットの第２論理サブユニットに関連し、第２のコンテンツのセットは、論理ユニットの第２の論理サブユニットの順番的に前にある論理ユニットの第１の論理サブユニットと関連する。【選択図】  図５
2004164633.tif 000002
【特許請求の範囲】
【請求項１】
不揮発性メモリシステムにおいて書込み操作を実行するための方法であって、該不揮発性メモリシステムは、メモリユニットを有する不揮発性メモリを含み、該メモリユニットは、論理ユニットに関連し、該メモリユニットは、第１の物理サブユニットおよび第２の物理サブユニットを含み、該第２の物理サブユニットは、該第１の物理サブユニットよりも該メモリユニットの順番的に後ろにあり、該論理ユニットは、第１の論理サブユニットおよび第２の論理サブユニットを含み、該第２の論理サブユニットは、該第１の論理サブユニットの順番的に後ろにある方法であって、該方法は、
第１のコンテンツのセットを該第１の物理サブユニットに書き込むステップと、
該第１のコンテンツのセットが該第１の物理サブユニットに書き込まれた後に、第２のコンテンツのセットを該第２の物理サブユニットに書き込むステップであって、該第１のコンテンツのセットは、該第２の論理サブユニットに関連し、該第２のコンテンツのセットは、該第１の論理サブユニットに関連するステップと
を含む、方法。
【請求項２】
前記第１の物理サブユニットは、第１の物理グループの一部であり、該第２の物理サブユニットは、第２の物理グループの一部であり、該第１の物理グループおよび該第２の物理グループは、前記メモリユニットに関連する、請求項１に記載の方法。
【請求項３】
前記第２の物理グループは、複数のサブユニットを含み、該複数のサブユニットは、前記第２の物理サブユニットを含み、前記第２のコンテンツのセットが該第２の物理サブユニットに書き込まれた後に、該第２の物理グループに含まれる該複数のサブユニットに書き込まれる実質的に任意のコンテンツは、前記第１の論理サブユニットの順番的に後ろにある論理サブユニットに関連する、請求項２に記載の方法。
【請求項４】
第１の識別子を前記第１の物理グループへ書き込むステップであって、該第１の識別子は、前記第２の論理サブユニットを実質的に識別するように構成されるステップと、
第２の識別子を前記第２の物理グループへ書き込むステップであって、該第２の識別子は、前記第１の論理サブユニットを実質的に識別するように構成されるステップと
をさらに含む、請求項２に記載の方法。
【請求項５】
前記メモリユニットは、物理ブロックであり、前記論理ユニットは、論理ブロックであり、前記第１の物理サブユニットは、第１の物理ページであり、前記第２の物理サブユニットは、第２の物理ページであり、前記第１の論理サブユニットは、第１の論理ページであり、前記第２の論理サブユニットは、第２の論理ページである、請求項１に記載の方法。
【請求項６】
前記不揮発性メモリは、フラッシュメモリである、請求項５に記載の方法。
【請求項７】
前記フラッシュメモリは、ＮＡＮＤフラッシュメモリおよびＭＬＣ  ＮＡＮＤフラッシュメモリの一方である、請求項６に記載の方法。
【請求項８】
フラッシュメモリシステムにおいて書込み操作を実行するための方法であって、該フラッシュメモリシステムは、メモリユニットを含み、該メモリユニットは、論理ユニットに関連し、該メモリユニットは、第１の物理サブユニットおよび第２の物理サブユニットを含み、該第２の物理サブユニットは、該第１の物理サブユニットよりも該メモリユニットの順番的に後ろにあり、該論理ユニットは、第１の論理サブユニットを含む方法であって、該方法は、
第１のコンテンツのセットを該第１の物理サブユニットに書き込むステップと、
該第１のコンテンツのセットが該第１の物理サブユニットに書き込まれた後に、第２のコンテンツのセットを該第２の物理サブユニットに書き込むステップであって、該第１のコンテンツのセットおよび該第２のコンテンツのセットは、該第１の論理サブユニットに関連し、該第２のコンテンツのセットは、実質的に該第１のコンテンツを更新するように構成されるステップと
を含む、方法。
【請求項９】
前記第１の物理サブユニットは、第１の物理グループの一部であり、前記第２の物理サブユニットは、第２の物理グループの一部であり、該第１の物理グループおよび該第２の物理グループは、前記メモリユニットに関連する、請求項８に記載の方法。
【請求項１０】
前記第１の論理サブユニットは、前記論理ユニット内の第１の論理グループ分けに含まれ、前記方法は、
該第１の論理グループ分けを前記第１の物理グループに関連するとして実質的に識別する該第１の物理グループに、第１の識別子を書き込むステップと、
該第１の論理グループ分けを前記第２の物理グループに関連するとして実質的に識別する第２の識別子を該第２の物理グループに、書き込むステップと
をさらに含む、請求項９に記載の方法。
【請求項１１】
前記第２の物理グループは、複数のサブユニットを含み、該複数のサブユニットは、前記第２の物理サブユニットを含み、前記第２のコンテンツのセットが該第２の物理サブユニットに書き込まれた後に、該第２の物理グループに含まれる該複数のサブユニットに書き込まれる実質的に任意のコンテンツは、前記第１の論理サブユニットの順番的に後ろにある論理サブユニットに関連する、請求項９に記載の方法。
【請求項１２】
前記メモリユニットは、物理ブロックであり、前記論理ユニットは、論理ブロックであり、前記第１の物理サブユニットは、第１の物理ページであり、前記第２の物理サブユニットは、第２の物理ページであり、前記第１の論理サブユニットは、第１の論理ページである、請求項８に記載の方法。
【請求項１３】
前記不揮発性メモリは、フラッシュメモリである、請求項１２に記載の方法。
【請求項１４】
前記フラッシュメモリは、ＮＡＮＤフラッシュメモリおよびＭＬＣ  ＮＡＮＤフラッシュメモリの一方である、請求項１３に記載の方法。
【請求項１５】
メモリユニットを有する不揮発性メモリであって、該メモリユニットは、論理ユニットと関連し、該メモリユニットは、第１の物理サブユニットおよび第２の物理サブユニットを含み、該第２の物理サブユニットは、該第１の物理サブユニットよりも該メモリユニットの順番的に後ろにあり、該論理ユニットは、第１の論理サブユニットおよび第２の論理サブユニットを含み、該第２の論理サブユニットは、該第１の論理サブユニットの順番的に後ろにある、不揮発性メモリと、
該第１の物理サブユニットへ第１のコンテンツのセットを書き込ませるコードデバイスと、
該第１のコンテンツのセットが該第１の物理サブユニットに書き込まれた後に、該第２の物理サブユニットに第２のコンテンツのセットを書き込ませるコードデバイスであって、該第１のコンテンツのセットは、該第２の論理サブユニットに関連し、該第２のコンテンツのセットは、該第１の論理サブユニットおよび該第２の論理サブユニットの一方に関連する、コードデバイスと、
該コードデバイスを格納するメモリ部分と
を含む、不揮発性メモリシステム。
【請求項１６】
前記第２のコンテンツのセットは、前記第２の論理サブユニットに関連し、該第２のコンテンツのセットは、前記第１のコンテンツのセットを実質的に更新するように構成される、請求項１５に記載の不揮発性メモリシステム。
【請求項１７】
前記第１の物理サブユニットは、第１の物理グループの一部であり、前記第２の物理サブユニットは、第２の物理グループに一部であり、該第１の物理グループおよび該第２の物理グループは、前記メモリユニットに関連する、請求項１５に記載の不揮発性メモリシステム。
【請求項１８】
付加的なコンテンツを前記第２の物理グループへ書き込ませるコードデバイスであって、該第２の物理グループは、複数のサブユニットを含み、該複数のサブユニットは、前記第２の物理サブユニットを含み、前記第２のコンテンツのセットが該第２の物理サブユニットに書き込まれた後に、該第２の物理グループに含まれる該複数のサブユニットに書き込まれる実質的に任意のコンテンツは、前記第１の論理サブユニットの順番的に後ろにある論理サブユニットに関連する、コードデバイスをさらに含む、請求項１７に記載の不揮発性メモリシステム。
【請求項１９】
前記メモリユニットは、物理ブロックであり、前記論理ユニットは、論理ブロックであり、前記第１の物理サブユニットは、第１の物理ページであり、前記第２の物理サブユニットは、第２の物理ページであり、前記第１の論理サブユニットは、第１の論理ページであり、前記第２の論理サブユニットは、第２の論理ページである、請求項１５に記載の不揮発性メモリシステム。
【請求項２０】
前記不揮発性メモリシステムは、フラッシュメモリである、請求項１９に記載の不揮発性メモリシステム。
【請求項２１】
前記フラッシュメモリは、ＮＡＮＤフラッシュメモリおよびＭＬＣ  ＮＡＮＤフラッシュメモリの一方である、請求項２０に記載の不揮発性メモリシステム。
【請求項２２】
メモリユニットを有する不揮発性メモリであって、該メモリユニットは、論理ユニットと関連し、該メモリユニットは、第１の物理サブユニットおよび第２の物理サブユニットを含み、該第２の物理サブユニットは、該第１の物理サブユニットよりも該メモリユニットの順番的に後ろにあり、該論理ユニットは、第１の論理サブユニットおよび第２の論理サブユニットを含み、該第２の論理サブユニットは、該第１の論理サブユニットの順番的に後ろにある、不揮発性メモリと、
該第１の物理サブユニットへ第１のコンテンツのセットを書き込ませるための手段と、
該第１のコンテンツのセットが該第１の物理サブユニットに書き込まれた後に、該第２の物理サブユニットに第２のコンテンツのセットを書き込ませるための手段であって、該第１のコンテンツのセットは、該第２の論理サブユニットに関連し、該第２のコンテンツのセットは、該第１の論理サブユニットおよび該第２の論理サブユニットの一方に関連する、手段と
を含む、不揮発性メモリシステム。
【請求項２３】
物理メモリユニットであって、該物理メモリユニットは、不揮発性メモリ内に位置し、該物理メモリユニットは、第１の論理グループ分けおよび第２の論理グループ分けを有する論理メモリユニットに関連し、該第２の論理グループ分けは、該論理メモリユニット内の該第１の論理グループ分けの順番的に後である、物理メモリユニットは、
第１の物理グループ分けと、
第２の物理グループ分けと、
第１の物理サブユニットであって、該第１の物理サブユニットは、該第１の物理グループ分け内に含まれ、該第１の物理サブユニットは、第１のコンテンツのセットを含み、該第１のコンテンツのセットは、該第２の論理グループ分けに関連し、該第２の論理グループ分けと関連するとして該第１のコンテンツのセットを実質的に識別する第１の識別子は、該第１の物理グループ分け内に格納される、第１の物理サブユニットと、
第２の物理サブユニットであって、該第２の物理サブユニットは、該第２の物理グループ分け内に含まれ、該第２の物理サブユニットは、第２のコンテンツのセットを含み、該第２のコンテンツのセットは、該第１の論理グループ分けに関連し、該第１の論理グループ分けと関連するとして該第２のコンテンツのセットを実質的に識別する第２の識別子は、該第２の物理グループ分け内に格納される、第２の物理サブユニットと
を含む、物理メモリユニット。
【請求項２４】
前記物理メモリユニットは、物理ブロックであり、前記論理メモリユニットは、論理ブロックであり、前記第１の物理サブユニットは、第１の物理ページであり、前記第２の物理サブユニットは、第２の物理ページである、請求項２３に記載の物理メモリユニット。
【請求項２５】
前記第１の物理グループ分けは、第１の複数の物理サブユニットを含み、前記第２の物理グループ分けは、第２の複数の物理サブユニットを含み、前記第１の識別子は、該第１の物理グループ分けの開始点に位置する該第１の複数の物理サブユニットの第１の物理サブユニットに格納され、前記第２の識別子は、該第２の物理グループ分けの開始点の開始点に位置する該第２の複数の物理サブユニットの第２の物理サブユニットに格納される、請求項２３に記載の物理メモリユニット。
【請求項２６】
前記不揮発性メモリは、フラッシュメモリである、請求項２３に記載の物理メモリ装置。
【請求項２７】
前記フラッシュメモリは、ＮＡＮＤフラッシュメモリおよびＭＬＣ  ＮＡＮＤフラッシュメモリの一方である、請求項２６に記載の物理メモリユニット。
【請求項２８】
論理ブロックに関連するコンテンツを物理ブロックに提供するための方法であって、該物理ブロックは、メモリシステムの不揮発性メモリに含まれる方法であり、該方法は、
該論理ブロックの第１の論理グループの第１の論理ページと関連する第１のコンテンツのセットを入手するステップと、
該物理ブロック内に該第１のコンテンツのセットを格納するステップであって、該物理ブロックに該第１のコンテンツのセットを格納するステップは、該物理ブロックの第１の物理グループの第１の物理ページに該第１のコンテンツのセットを格納するステップと、該第１の論理グループと関連するとして該第１のコンテンツのセットを識別するインディケータを該第１の物理グループに格納するステップとを含む、ステップと
を含む方法。
【請求項２９】
前記第１の物理グループは、複数の物理ページを含み、該複数の物理ページは、開始する物理ページを含み、該開始する物理ページは、該第１の物理グループの開始点において構成され、該第１の物理グループに前記インディケータを格納するステップは、該開始する物理ページに該インディケータを格納するステップを含む、請求項２８に記載の方法。
【請求項３０】
前記論理ブロックと関連する第２のコンテンツのセットを入手するステップと、
該第２のコンテンツのセットが、前記第１の論理グループの第２の論理ページと関連し、かつ、該第１の論理グループの該第２の論理ページが、該第１の論理グループ内の該第１の論理ページの順番的に後ろにある場合に、前記第１の物理グループに該第２のコンテンツのセットを格納するステップと
をさらに含む、請求項２８に記載の方法。
【請求項３１】
前記論理ブロックと関連する第２のコンテンツのセットを入手するステップと、
該第２のコンテンツのセットが、前記第１の論理グループの前記第１の論理ページに関連する場合に、前記物理ブロックの第２の物理グループに、該第２のコンテンツのセットを格納するステップと、
前記第１の論理グループに関連するとして該第２のコンテンツのセットを識別する識別子を該第２の物理グループに、格納するステップと
をさらに含む、請求項２８に記載の方法。
【請求項３２】
前記論理ブロックと関連する第２のコンテンツのセットを入手するステップと、
該第２のコンテンツのセットが、該論理ブロックの第２の論理グループの第２の論理ページに関連する場合に、該第２のコンテンツのセットを第２の物理グループ格納するステップと、
該第２の論理グループと関連するとして該第２のコンテンツのセットを識別する該第２の物理グループに、インディケータを格納するステップと
をさらに含む、請求項２８に記載の方法。
【請求項３３】
前記第１の論理ページは、前記論理ブロックの第２の論理ページの順番的に後ろにあり、前記第２の物理グループは、前記物理ブロックの前記第１の物理グループの順番的に後ろにある、請求項３２に記載の方法。
【請求項３４】
前記不揮発性メモリは、フラッシュメモリである、請求項２８に記載の方法。
【請求項３５】
前記フラッシュメモリは、ＮＡＮＤフラッシュメモリおよびＭＬＣ  ＮＡＮＤフラッシュメモリの一方である、請求項３４に記載の方法。
【請求項３６】
論理ブロックの第１の論理グループの第１の論理ページに関連する第１のコンテンツのセットに構成されるコードデバイスと、
不揮発性メモリの物理ブロックに該第１のコンテンツのセットを格納するように構成されるコードデバイスであって、該物理ブロックに該第１のコンテンツのセットを格納するように構成される該コードデバイスは、該物理ブロックの第１の物理グループの第１の物理ページに該第１のコンテンツのセットを格納し、かつ、該第１の論理グループと関連するとして該第１のコンテンツのセットを識別するインディケータを該第１の物理グループに、格納するように構成されるコードデバイスを含む、コードデバイスと、
該コードデバイスを格納するためのストレージと
を含む、メモリシステム。
【請求項３７】
前記第１の物理グループは、複数の物理ページを含み、該複数の物理ページは、開始する物理ページを含み、該開始する物理ページは、該第１の物理グループの開始点に配置され、該第１の物理グループに前記インディケータを格納するように構成された前記コードデバイスは、該第１の物理ページに該インディケータを格納するように構成されたコードデバイスを含む、請求項３６に記載のメモリシステム。
【請求項３８】
前記論理ブロックに関連する第２のコンテンツのセットを入手するように構成されるコードデバイスと、
該第２のコンテンツのセットが、該第１の論理グループの第２の論理ページに関連し、かつ、該第１の論理グループの該第２の論理ページが、該第１の論理グループ内の該第１の論理ページの順番的に後ろにある場合に、該第１の物理グループに該第２のコンテンツのセットを格納するように構成されるコードデバイスと
をさらに含む、請求項３６に記載のメモリシステム。
【請求項３９】
前記論理ブロックに関連する第２のコンテンツのセットを入手するように構成されるコードデバイスと、
該第２のコンテンツのセットが、該第１の論理グループの該第１の論理ページに関連する場合に、該物理ブロックの第２の物理グループに該第２のコンテンツのセットを格納するように構成されるコードデバイスと、
該第１の論理グループと関連するとして該第２のコンテンツのセットを識別する識別子を該第２の物理グループに、格納するように構成されるコードデバイスと
をさらに含む、請求項３６に記載のメモリシステム。
【請求項４０】
前記論理ブロックに関連する第２のコンテンツのセットを入手するように構成されるコードデバイスと、
該第２のコンテンツのセットが、該論理ブロックの該第２の論理グループの第２の論理ページに関連する場合に、第２の物理グループに該第２のコンテンツのセットを格納するように構成されるコードデバイスと、
該第２の論理グループと関連するとして該第２のコンテンツのセットを識別するインディケータを該第２の物理グループに、格納するように構成されるコードデバイスと
をさらに含む、請求項３６に記載のメモリシステム。
【請求項４１】
前記第１の論理ページは、前記論理ブロックの前記第２の論理ページの順番的に後ろにあり、前記第２物理グループは、前記物理ブロックの前記第１の物理グループの順番的に後ろにある、請求項４０に記載のメモリシステム。
【請求項４２】
前記コードデバイスは、ソフトウェアコードデバイスおよびファームウェアコードデバイスの一方である、請求項３６に記載のメモリシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
（１．発明の分野）
本発明は、一般的に、大容量デジタルデータストレージシステムに関する。より詳細には、本発明は、ブロックのページが実質的にアウトオブシーケンスで効果的に書き込まれることを可能にするためのシステムおよび方法に関する。
【背景技術】
【０００２】
（２．関連技術の説明）
フラッシュメモリストレージシステム等の不揮発性メモリシステムの利用は、そのようなメモリシステムの物理サイズがコンパクトであり、かつ、不揮発性メモリは繰り返し再プログラムされ得るために、増加している。フラッシュメモリストレージシステムの物理サイズのコンパクトさが、ますます普及しつつあるデバイスにおけるそのようなストレージシステムの利用を促進する。フラッシュメモリストレージシステムを利用するデバイスは、デジタルカメラ、デジタルカムコーダ、デジタル音楽プレイヤ、ハンドヘルドパーソナルコンピュータ、および、グローバルポジショニングデバイスを含むが、それらに制限されない。フラッシュメモリストレージシステムに含まれる不揮発性メモリを繰り返し再プログラムできるという能力により、フラッシュメモリストレージシステムは、利用および再利用が可能になる。
【０００３】
一般的に、フラッシュメモリストレージシステムは、フラッシュメモリカードおよびフラッシュメモリチップセットを含む。フラッシュメモリチップセットは、一般的に、フラッシュメモリコンポーネントおよびコントローラコンポーネントを含む。典型的には、フラッシュメモリチップセットは、組み込みシステムへ組み立てられるように構成される。そのような組み立て品またはホストシステムの製造は、典型的には、コンポーネント形式のフラッシュメモリ、および、他のコンポーネントを確保し、その後、フラッシュメモリおよび他のコンポーネントをホストシステムに組み立てる。
【０００４】
効果的にフラッシュメモリを利用する能力は、フラッシュメモリシステム全体が高性能規格に適合させることを可能にする上で、不可欠である。一般的に、非効率なフラッシュメモリの利用によって、結果として、フラッシュメモリシステム全体の操作を著しく遅延させ得る消去操作および書き込み操作が頻繁に起こり得る。例えば、図１に示されるように、物理ブロック１００は、第３のページと論理ブロック（示されない）の最後のページに対する第３のページとに関連するコンテンツ１０４を含み得る。論理ブロック（示されない）に関連するアップデート１１０が、論理ブロックの第４のページに関連して受信される場合、物理ブロック１００内のスペースが利用可能であっても、アップデート１１０は物理ブロック１００内に格納され得ない。なぜなれば、ページ「Ｎ−２」１１２ａは、既に書き込みされており、アップデート１１０は、ページ「３」１１２ｂに対して意図されているからである。すなわち、ページ「Ｎ−２」１１２ａのような物理ブロック１００の後のページが書き込まれている場合、ページ「３」１１２ｂのような物理ブロックの前のページは、書き込まれ得ない。
【０００５】
アップデート１１０に、物理ブロック１００内への書き込みを許可することによって、一般的に、結果として、アウトオブシーケンス妨害、例えば、書き込み妨害が発生する。ＭＬＣ  ＮＡＮＤフラッシュメモリ等のＮＡＮＤフラッシュメモリを含むいくらかのフラッシュメモリシステムでは、アウトオブシーケンス書き込み、および部分的書き込みが許可されない。従って、一旦、コンテンツ１０４ｂがページ「Ｎ−２」１１２ａに存在してしまうと、ページ「３」１１２ｂにアップデート１１０を書き込むことは、多くの場合、可能ではない。
【０００６】
アップデート１１０に収容するために、新しい物理ブロック１２０は典型的に調達される。次に、コンテンツ１０４ａ、アップデート１１０、および、コンテンツ１０４ｂは、新しい物理ブロック１２０へ書き込まれる。一旦、新しい物理ブロック１２０に書き込むと、続いて、物理ブロック１００のコンテンツは、消去され得る。この論理ブロック（示されない）の第４のページに関連するアップデートが絶え間なく行われる場合、新しい物理ブロックを調達し、新しい物理ブロックに書き込み、古い物理ブロックを消去する繰り返しプロセスが必要となり得る。結果として、「Ｎ」ページを含む各物理ブロックの３ページだけが、実質的に書き込まれ得る一方、多くのページ、例えば、Ｎ−３ページは、実質的に空のままである。相対的に多数の書き込みおよび消去プロセスを一般的に必要としながら、各物理ブロックのＮ−３ページを効果的に浪費することは、フラッシュメモリシステム全体を非効率に操作させ得る。メモリリソースがより効果的に使われ得るように物理ブロック１００等の物理ブロックのページを書き込み可能にすることによって、ＭＬＣ  ＮＡＮＤフラッシュメモリシステム等のフラッシュメモリシステム全体の性能を向上させ得る。
【発明の開示】
【発明が解決しようとする課題】
【０００７】
従って、必要とされるのは、不揮発性メモリシステムにおけるメモリリソースを、より効果的に利用し得るシステムおよび方法である。具体的には、望まれるのは、ＭＬＣ  ＮＡＮＤフラッシュメモリシステム等のメモリシステムにおける物理ブロックの物理ページが、実質的にアウトオブシーケンスで書き込まれることを効果的に可能にし得るシステムおよび方法である。
【課題を解決するための手段】
【０００８】
（発明の要旨）
本発明は、コンテンツを物理ブロック内に効果的に格納可能にするシステムおよび方法に関する。本発明の１つの局面によると、メモリユニットを有する不揮発性メモリシステムで書き込み操作を実行するための方法は、第１のコンテンツのセットを、メモリユニットの第１の物理サブユニットへ書き込むステップと、第１のコンテンツのセットが第２の物理サブユニットに書き込まれた後に、第２のコンテンツのセットを、メモリユニットの第２の物理サブユニットに書き込むステップとを含む。第１の物理サブユニットは、メモリユニットの第２の物理サブユニットの順番的に前にある。第１のコンテンツのセットは、論理ユニットの第２の論理サブユニットに関連し、第２のコンテンツのセットは、論理ユニットの第２の論理サブユニットの順番的に前にある論理ユニットの第１の論理サブユニットに関連する。
【０００９】
１つの実施形態では、メモリユニットは物理ブロックであり、論理ユニットは、論理ブロックであり、第１の物理サブユニットは、第１の物理ページであり、第２の物理サブユニットは、第２の物理ページであり、第１の論理サブユニットは、第１の論理ページであり、第２の論理サブユニットは、第２の論理ページである。別の実施形態では、メモリユニットは、ＭＬＣ  ＮＡＮＤメモリの一部であり得る。
【００１０】
関連するコンテンツがすでに物理ブロックに書き込まれた論理ページの順番的に前にある論理ページと関連するコンテンツの物理ブロックへの格納（ｓｔｏｒａｇｅ）を許すことによって、実際の物理ページは順番に書き込まれるが、物理ブロックにコンテンツの観点からはアウトオブシーケンスの態様で効果的に書き込むことを可能にする。論理ブロックのコンテンツが順序ばらばらで物理ブロックに効果的に書き込まれることを許すことにより、必要とされる書き込みおよび消去操作が低減され得るという点において、物理ブロックをより効果的に利用することが可能になる。例えば、実質的にアウトオブシーケンス書込み操作が発生し得る場合に、新しい物理ブロックの代わりに物理ブロック内のグループが調達され得るように、ブロック内のページをグループ分けすることによって、書き込みページに関連する全体効率を改善することが可能になる。
【００１１】
本発明の別の局面によると、論理ブロックに関連するコンテンツをメモリシステムの不揮発性メモリの一部である物理ブロックに提供するための方法は、論理ブロックの第１の論理ブロックの第１の論理ページに関連する第１のコンテンツのセットを入手するステップと、物理ブロックに第１のコンテンツのセットを格納するステップとを含む。物理ブロックに第１のコンテンツのセットを格納するステップは、物理ブロックの第１の物理グループの第１の物理ページに第１のコンテンツのセットを格納するステップと、第１の論理グループと関連するとして第１のコンテンツのセットを識別するインディケータを、第１の物理グループに格納するステップとを含む。
【００１２】
１つの実施形態では、第１の物理グループは、第１の物理グループの開始点において開始する物理ページを有する複数の物理ページを含み、第１の物理グループにインディケータを格納するステップは、開始する物理ページにインディケータを格納するステップを含む。別の実施形態では、本方法はまた、論理ブロックに関連する第２のコンテンツのセットを入手するステップと、第２のコンテンツのセットが第１の論理グループの第２の論理ページに関連し、かつ、第１の論理グループの第２の論理ページが第１の論理グループ内の第１の論理ページの順番的に後ろにある場合に、第１の物理グループに第２のコンテンツのセットを格納するステップとを含む。
【００１３】
本発明による方法は、不揮発性メモリシステムにおいて書込み操作を実行するための方法であって、該不揮発性メモリシステムは、メモリユニットを有する不揮発性メモリを含み、該メモリユニットは、論理ユニットに関連し、該メモリユニットは、第１の物理サブユニットおよび第２の物理サブユニットを含み、該第２の物理サブユニットは、該第１の物理サブユニットよりも該メモリユニットの順番的に後ろにあり、該論理ユニットは、第１の論理サブユニットおよび第２の論理サブユニットを含み、該第２の論理サブユニットは、該第１の論理サブユニットの順番的に後ろにある方法であって、該方法は、第１のコンテンツのセットを該第１の物理サブユニットに書き込むステップと、該第１のコンテンツのセットが該第１の物理サブユニットに書き込まれた後に、第２のコンテンツのセットを該第２の物理サブユニットに書き込むステップであって、該第１のコンテンツのセットは、該第２の論理サブユニットに関連し、該第２のコンテンツのセットは、該第１の論理サブユニットに関連するステップとを含み、これにより上記目的が達成される。
【００１４】
前記第１の物理サブユニットは、第１の物理グループの一部であり、該第２の物理サブユニットは、第２の物理グループの一部であり、該第１の物理グループおよび該第２の物理グループは、前記メモリユニットに関連してもよい。
【００１５】
前記第２の物理グループは、複数のサブユニットを含み、該複数のサブユニットは、前記第２の物理サブユニットを含み、前記第２のコンテンツのセットが該第２の物理サブユニットに書き込まれた後に、該第２の物理グループに含まれる該複数のサブユニットに書き込まれる実質的に任意のコンテンツは、前記第１の論理サブユニットの順番的に後ろにある論理サブユニットに関連してもよい。
【００１６】
第１の識別子を前記第１の物理グループへ書き込むステップであって、該第１の識別子は、前記第２の論理サブユニットを実質的に識別するように構成されるステップと、第２の識別子を前記第２の物理グループへ書き込むステップであって、該第２の識別子は、前記第１の論理サブユニットを実質的に識別するように構成されるステップとをさらに含んでもよい。
【００１７】
前記メモリユニットは、物理ブロックであり、前記論理ユニットは、論理ブロックであり、前記第１の物理サブユニットは、第１の物理ページであり、前記第２の物理サブユニットは、第２の物理ページであり、前記第１の論理サブユニットは、第１の論理ページであり、前記第２の論理サブユニットは、第２の論理ページであってもよい。
【００１８】
前記不揮発性メモリは、フラッシュメモリであってもよい。
【００１９】
前記フラッシュメモリは、ＮＡＮＤフラッシュメモリおよびＭＬＣ  ＮＡＮＤフラッシュメモリの一方であってもよい。
【００２０】
本発明による方法は、フラッシュメモリシステムにおいて書込み操作を実行するための方法であって、該フラッシュメモリシステムは、メモリユニットを含み、該メモリユニットは、論理ユニットに関連し、該メモリユニットは、第１の物理サブユニットおよび第２の物理サブユニットを含み、該第２の物理サブユニットは、該第１の物理サブユニットよりも該メモリユニットの順番的に後ろにあり、該論理ユニットは、第１の論理サブユニットを含む方法であって、該方法は、第１のコンテンツのセットを該第１の物理サブユニットに書き込むステップと、該第１のコンテンツのセットが該第１の物理サブユニットに書き込まれた後に、第２のコンテンツのセットを該第２の物理サブユニットに書き込むステップであって、該第１のコンテンツのセットおよび該第２のコンテンツのセットは、該第１の論理サブユニットに関連し、該第２のコンテンツのセットは、実質的に該第１のコンテンツを更新するように構成されるステップとを含み、これにより上記目的が達成される。
【００２１】
前記第１の物理サブユニットは、第１の物理グループの一部であり、前記第２の物理サブユニットは、第２の物理グループの一部であり、該第１の物理グループおよび該第２の物理グループは、前記メモリユニットに関連してもよい。
【００２２】
前記第１の論理サブユニットは、前記論理ユニット内の第１の論理グループ分けに含まれ、前記方法は、該第１の論理グループ分けを前記第１の物理グループに関連するとして実質的に識別する該第１の物理グループに、第１の識別子を書き込むステップと、該第１の論理グループ分けを前記第２の物理グループに関連するとして実質的に識別する第２の識別子を該第２の物理グループに、書き込むステップとをさらに含んでもよい。
【００２３】
前記第２の物理グループは、複数のサブユニットを含み、該複数のサブユニットは、前記第２の物理サブユニットを含み、前記第２のコンテンツのセットが該第２の物理サブユニットに書き込まれた後に、該第２の物理グループに含まれる該複数のサブユニットに書き込まれる実質的に任意のコンテンツは、前記第１の論理サブユニットの順番的に後ろにある論理サブユニットに関連してもよい。
【００２４】
前記メモリユニットは、物理ブロックであり、前記論理ユニットは、論理ブロックであり、前記第１の物理サブユニットは、第１の物理ページであり、前記第２の物理サブユニットは、第２の物理ページであり、前記第１の論理サブユニットは、第１の論理ページであってもよい。
【００２５】
前記不揮発性メモリは、フラッシュメモリであってもよい。
【００２６】
前記フラッシュメモリは、ＮＡＮＤフラッシュメモリおよびＭＬＣ  ＮＡＮＤフラッシュメモリの一方であってもよい。
【００２７】
本発明による不揮発性メモリシステムは、メモリユニットを有する不揮発性メモリであって、該メモリユニットは、論理ユニットと関連し、該メモリユニットは、第１の物理サブユニットおよび第２の物理サブユニットを含み、該第２の物理サブユニットは、該第１の物理サブユニットよりも該メモリユニットの順番的に後ろにあり、該論理ユニットは、第１の論理サブユニットおよび第２の論理サブユニットを含み、該第２の論理サブユニットは、該第１の論理サブユニットの順番的に後ろにある、不揮発性メモリと、該第１の物理サブユニットへ第１のコンテンツのセットを書き込ませるコードデバイスと、該第１のコンテンツのセットが該第１の物理サブユニットに書き込まれた後に、該第２の物理サブユニットに第２のコンテンツのセットを書き込ませるコードデバイスであって、該第１のコンテンツのセットは、該第２の論理サブユニットに関連し、該第２のコンテンツのセットは、該第１の論理サブユニットおよび該第２の論理サブユニットの一方に関連する、コードデバイスと、該コードデバイスを格納するメモリ部分とを含み、これにより上記目的が達成される。
【００２８】
前記第２のコンテンツのセットは、前記第２の論理サブユニットに関連し、該第２のコンテンツのセットは、前記第１のコンテンツのセットを実質的に更新するように構成されてもよい。
【００２９】
前記第１の物理サブユニットは、第１の物理グループの一部であり、前記第２の物理サブユニットは、第２の物理グループに一部であり、該第１の物理グループおよび該第２の物理グループは、前記メモリユニットに関連してもよい。
【００３０】
付加的なコンテンツを前記第２の物理グループへ書き込ませるコードデバイスであって、該第２の物理グループは、複数のサブユニットを含み、該複数のサブユニットは、前記第２の物理サブユニットを含み、前記第２のコンテンツのセットが該第２の物理サブユニットに書き込まれた後に、該第２の物理グループに含まれる該複数のサブユニットに書き込まれる実質的に任意のコンテンツは、前記第１の論理サブユニットの順番的に後ろにある論理サブユニットに関連する、コードデバイスをさらに含んでもよい。
【００３１】
前記メモリユニットは、物理ブロックであり、前記論理ユニットは、論理ブロックであり、前記第１の物理サブユニットは、第１の物理ページであり、前記第２の物理サブユニットは、第２の物理ページであり、前記第１の論理サブユニットは、第１の論理ページであり、前記第２の論理サブユニットは、第２の論理ページであってもよい。
【００３２】
前記不揮発性メモリシステムは、フラッシュメモリであってもよい。
【００３３】
前記フラッシュメモリは、ＮＡＮＤフラッシュメモリおよびＭＬＣ  ＮＡＮＤフラッシュメモリの一方であってもよい。
【００３４】
本発明による不揮発性メモリシステム、メモリユニットを有する不揮発性メモリであって、該メモリユニットは、論理ユニットと関連し、該メモリユニットは、第１の物理サブユニットおよび第２の物理サブユニットを含み、該第２の物理サブユニットは、該第１の物理サブユニットよりも該メモリユニットの順番的に後ろにあり、該論理ユニットは、第１の論理サブユニットおよび第２の論理サブユニットを含み、該第２の論理サブユニットは、該第１の論理サブユニットの順番的に後ろにある、不揮発性メモリと、該第１の物理サブユニットへ第１のコンテンツのセットを書き込ませるための手段と、該第１のコンテンツのセットが該第１の物理サブユニットに書き込まれた後に、該第２の物理サブユニットに第２のコンテンツのセットを書き込ませるための手段であって、該第１のコンテンツのセットは、該第２の論理サブユニットに関連し、該第２のコンテンツのセットは、該第１の論理サブユニットおよび該第２の論理サブユニットの一方に関連する、手段とを含みこれにより上記目的が達成される。
【００３５】
本発明による物理メモリユニットは、物理メモリユニットであって、該物理メモリユニットは、不揮発性メモリ内に位置し、該物理メモリユニットは、第１の論理グループ分けおよび第２の論理グループ分けを有する論理メモリユニットに関連し、該第２の論理グループ分けは、該論理メモリユニット内の該第１の論理グループ分けの順番的に後である、物理メモリユニットは、第１の物理グループ分けと、第２の物理グループ分けと、第１の物理サブユニットであって、該第１の物理サブユニットは、該第１の物理グループ分け内に含まれ、該第１の物理サブユニットは、第１のコンテンツのセットを含み、該第１のコンテンツのセットは、該第２の論理グループ分けに関連し、該第２の論理グループ分けと関連するとして該第１のコンテンツのセットを実質的に識別する第１の識別子は、該第１の物理グループ分け内に格納される、第１の物理サブユニットと、第２の物理サブユニットであって、該第２の物理サブユニットは、該第２の物理グループ分け内に含まれ、該第２の物理サブユニットは、第２のコンテンツのセットを含み、該第２のコンテンツのセットは、該第１の論理グループ分けに関連し、該第１の論理グループ分けと関連するとして該第２のコンテンツのセットを実質的に識別する第２の識別子は、該第２の物理グループ分け内に格納される、第２の物理サブユニットとを含み、これにより上記目的が達成される。
【００３６】
前記物理メモリユニットは、物理ブロックであり、前記論理メモリユニットは、論理ブロックであり、前記第１の物理サブユニットは、第１の物理ページであり、前記第２の物理サブユニットは、第２の物理ページであってもよい。
【００３７】
前記第１の物理グループ分けは、第１の複数の物理サブユニットを含み、前記第２の物理グループ分けは、第２の複数の物理サブユニットを含み、前記第１の識別子は、該第１の物理グループ分けの開始点に位置する該第１の複数の物理サブユニットの第１の物理サブユニットに格納され、前記第２の識別子は、該第２の物理グループ分けの開始点の開始点に位置する該第２の複数の物理サブユニットの第２の物理サブユニットに格納されてもよい。
【００３８】
前記不揮発性メモリは、フラッシュメモリであってもよい。
【００３９】
前記フラッシュメモリは、ＮＡＮＤフラッシュメモリおよびＭＬＣ  ＮＡＮＤフラッシュメモリの一方であってもよい。
【００４０】
本発明による方法は、論理ブロックに関連するコンテンツを物理ブロックに提供するための方法であって、該物理ブロックは、メモリシステムの不揮発性メモリに含まれる方法であり、該方法は、該論理ブロックの第１の論理グループの第１の論理ページと関連する第１のコンテンツのセットを入手するステップと、該物理ブロック内に該第１のコンテンツのセットを格納するステップであって、該物理ブロックに該第１のコンテンツのセットを格納するステップは、該物理ブロックの第１の物理グループの第１の物理ページに該第１のコンテンツのセットを格納するステップと、該第１の論理グループと関連するとして該第１のコンテンツのセットを識別するインディケータを該第１の物理グループに格納するステップとを含む、ステップとを含み、これにより上記目的が達成される。
【００４１】
前記第１の物理グループは、複数の物理ページを含み、該複数の物理ページは、開始する物理ページを含み、該開始する物理ページは、該第１の物理グループの開始点において構成され、該第１の物理グループに前記インディケータを格納するステップは、該開始する物理ページに該インディケータを格納するステップを含んでもよい。
【００４２】
前記論理ブロックと関連する第２のコンテンツのセットを入手するステップと、該第２のコンテンツのセットが、前記第１の論理グループの第２の論理ページと関連し、かつ、該第１の論理グループの該第２の論理ページが、該第１の論理グループ内の該第１の論理ページの順番的に後ろにある場合に、前記第１の物理グループに該第２のコンテンツのセットを格納するステップとをさらに含んでもよい。
【００４３】
前記論理ブロックと関連する第２のコンテンツのセットを入手するステップと、該第２のコンテンツのセットが、前記第１の論理グループの前記第１の論理ページに関連する場合に、前記物理ブロックの第２の物理グループに、該第２のコンテンツのセットを格納するステップと、前記第１の論理グループに関連するとして該第２のコンテンツのセットを識別する識別子を該第２の物理グループに、格納するステップとをさらに含んでもよい。
【００４４】
前記論理ブロックと関連する第２のコンテンツのセットを入手するステップと、該第２のコンテンツのセットが、該論理ブロックの第２の論理グループの第２の論理ページに関連する場合に、該第２のコンテンツのセットを第２の物理グループ格納するステップと、該第２の論理グループと関連するとして該第２のコンテンツのセットを識別する該第２の物理グループに、インディケータを格納するステップとをさらに含んでもよい。
【００４５】
前記第１の論理ページは、前記論理ブロックの第２の論理ページの順番的に後ろにあり、前記第２の物理グループは、前記物理ブロックの前記第１の物理グループの順番的に後ろにあってもよい。
【００４６】
前記不揮発性メモリは、フラッシュメモリであってもよい。
【００４７】
前記フラッシュメモリは、ＮＡＮＤフラッシュメモリおよびＭＬＣ  ＮＡＮＤフラッシュメモリの一方であってもよい。
【００４８】
本発明によるメモリシステムは、論理ブロックの第１の論理グループの第１の論理ページに関連する第１のコンテンツのセットに構成されるコードデバイスと、不揮発性メモリの物理ブロックに該第１のコンテンツのセットを格納するように構成されるコードデバイスであって、該物理ブロックに該第１のコンテンツのセットを格納するように構成される該コードデバイスは、該物理ブロックの第１の物理グループの第１の物理ページに該第１のコンテンツのセットを格納し、かつ、該第１の論理グループと関連するとして該第１のコンテンツのセットを識別するインディケータを該第１の物理グループに、格納するように構成されるコードデバイスを含む、コードデバイスと、該コードデバイスを格納するためのストレージとを含み、これにより上記目的が達成される。
【００４９】
前記第１の物理グループは、複数の物理ページを含み、該複数の物理ページは、開始する物理ページを含み、該開始する物理ページは、該第１の物理グループの開始点に配置され、該第１の物理グループに前記インディケータを格納するように構成された前記コードデバイスは、該第１の物理ページに該インディケータを格納するように構成されたコードデバイスを含んでもよい。
【００５０】
前記論理ブロックに関連する第２のコンテンツのセットを入手するように構成されるコードデバイスと、該第２のコンテンツのセットが、該第１の論理グループの第２の論理ページに関連し、かつ、該第１の論理グループの該第２の論理ページが、該第１の論理グループ内の該第１の論理ページの順番的に後ろにある場合に、該第１の物理グループに該第２のコンテンツのセットを格納するように構成されるコードデバイスとをさらに含んでもよい。
【００５１】
前記論理ブロックに関連する第２のコンテンツのセットを入手するように構成されるコードデバイスと、該第２のコンテンツのセットが、該第１の論理グループの該第１の論理ページに関連する場合に、該物理ブロックの第２の物理グループに該第２のコンテンツのセットを格納するように構成されるコードデバイスと、該第１の論理グループと関連するとして該第２のコンテンツのセットを識別する識別子を該第２の物理グループに、格納するように構成されるコードデバイスとをさらに含んでもよい。
【００５２】
前記論理ブロックに関連する第２のコンテンツのセットを入手するように構成されるコードデバイスと、該第２のコンテンツのセットが、該論理ブロックの該第２の論理グループの第２の論理ページに関連する場合に、第２の物理グループに該第２のコンテンツのセットを格納するように構成されるコードデバイスと、該第２の論理グループと関連するとして該第２のコンテンツのセットを識別するインディケータを該第２の物理グループに、格納するように構成されるコードデバイスとをさらに含んでもよい。
【００５３】
前記第１の論理ページは、前記論理ブロックの前記第２の論理ページの順番的に後ろにあり、前記第２物理グループは、前記物理ブロックの前記第１の物理グループの順番的に後ろにあってもよい。
【００５４】
前記コードデバイスは、ソフトウェアコードデバイスおよびファームウェアコードデバイスの一方であってもよい。
【発明の効果】
【００５５】
関連するコンテンツがすでに物理ブロックに書き込まれた論理ページの順番的に前にある論理ページと関連するコンテンツの物理ブロックへの格納（ｓｔｏｒａｇｅ）を許すことによって、実際の物理ページは順番に書き込まれるが、物理ブロックにコンテンツの観点からはアウトオブシーケンスの態様で効果的に書き込むことを可能にする。論理ブロックのコンテンツが順序ばらばらで物理ブロックに効果的に書き込まれることを許すことにより、必要とされる書き込みおよび消去操作が低減され得るという点において、物理ブロックをより効果的に利用することが可能になる。例えば、実質的にアウトオブシーケンス書込み操作が発生し得る場合に、新しい物理ブロックの代わりに物理ブロック内のグループが調達され得るように、ブロック内のページをグループ分けすることによって、書き込みページに関連する全体効率を改善することが可能になる。
【発明を実施するための最良の形態】
【００５６】
本発明は、２００２年１０月２８日に出願され、その全体を本明細書中で参照として援用する米国仮特許出願第６０／４２１，７２５号の優先権を主張する。
（関連出願の相互参照）
本発明は、同時係属米国特許出願第１０／２８１，７３９号、第１０／２８１，８２３号、第１０／２８１，６７０号、第１０／２８１，８２４，１０／２８１，６３１号、第１０／２８１，８５５号、第１０／２８１，７６２号、第１０／２８１，６９６号、第１０／２８１，６２６号、第１０／２８１，８０４号、および、同時係属米国仮特許出願第６０／４２１，９１０号、第６０／４２１，９６５号、第６０，４２２，１６６号、第６０／４２１，７４６号、第６０／４２１，９１１号に関連し、それぞれ２００２年１０月２８日に出願され、それぞれその全体を本明細書中で参照として援用する。
【００５７】
本発明のこれらおよび他の利点は、以下の詳細な説明を読み、図面の様々な図を検討することで、明らかになる。
【００５８】
本発明は、付属の図に関連する以下の説明を参照して最も理解され得る。
（実施形態の詳細な説明）
ＭＬＣ  ＮＡＮＤメモリシステム等のいくらかの不揮発性メモリシステムにおけるページが部分書き込みなしに順番に書き込まれることの必要性によって、多くの場合、結果として、相対的に多数の書き込みおよび消去操作を含む、論理ブロックに関連するコンテンツのアップデートのために利用される操作が発生する。例えば、論理ブロックの特定の論理ページに関連するコンテンツが絶え間なくアップデートされる場合に、相対的に多数の書き込みおよび消去操作が発生し得る。そのようなアップデートは、多くの場合、異なる物理ブロックを調達することを必要とし得、必然的に物理ブロックのコンテンツをマージし、従って、書き込みおよび消去することが必要となる。書き込みおよび消去操作は、典型的に時間を消費するので、多数の書き込みおよび消去操作は、不揮発性メモリシステムの性能に逆の悪い影響を与え得る。
【００５９】
アップデートページを格納するか、そうでなければ再書き込みするために必要となるオーバーヘッドと時間との総量を低減することによって、システム全体（例えば、ＭＬＣ  ＮＡＮＤメモリチップのような組み込み不揮発性メモリチップを有するホストシステム全体）をより効果的に操作することが可能になる。ブロック内のページを効果的にグループにグループ分けすることによって、ブロック全体のページが、ブロックに関連して実質的にアウトオブシーケンスで書き込まれることが可能になる。ブロック内のページのグループ分けは、一般的に、その全体を参照として援用する、同時係属中の米国特許第１０／２８１，８５５号に記載される。物理ブロック内に少なくとも１つの利用可能なグループが存在する場合に物理ブロックへページを書き込むために、物理ブロック内のグループが新しい物理ブロックの代わりに調達されるようにブロック内のページをグループ分けすることによって、ぺージの書き込みに関連する効率全体は、一般的に、改善され得る。さらに、物理ブロックの各グループ内のページは実質的に順番に書き込まれるが、物理ブロックに関して、ページのコンテンツは、効果的にアオウトオブシーケンスで書き込まれ得る。具体的には、論理ブロックの第１の論理ページの後に続く第２の論理ページに関連するコンテンツが物理ブロック内に書き込まれた後に、論理ブロックの第１の論理ページに関連するコンテンツが物理ブロック内に書き込まれるように、論理ブロックに関連するページが物理ブロック内に書き込まれ得る。しかし、論理ブロックの第１のページに関連するコンテンツが書き込まれる物理ブロックのページは、論理ブロックの第２のページに関連するコンテンツが書き込まれる物理ブロックのページの後に続く。
【００６０】
フラッシュメモリシステム、または、より一般的には、不揮発性メモリデバイスは、論理ブロックに関連するアップデートが実質的にアウトオブシーケンスの態様で書き込まれることを効果的に可能にするブロック内のグループの利用から、恩恵を受け得、このデバイス、一般的に、ＮＡＮＤまたはＭＬＣ  ＮＡＮＤ、カード、および、チップセット等のフラッシュメモリを含む。典型的には、フラッシュメモリシステムはホストシステムと連携して利用され、その結果、ホストシステムは、フラッシュメモリシステムへデータを書き込み、または、フラッシュメモリシステムからデータを読み出し得る。しかし、いくらかのフラッシュメモリシステムは、図２ｃに関連して以下で議論されるように、組み込みフラッシュメモリと、組み込みフラッシュメモリのためのコントローラとして実質的に動作するホスト上で実行するソフトウェアとを含む。図２ａを参照して、ＣｏｍｐａｃｔＦｌａｓｈメモリカード等の不揮発性メモリデバイスを含む一般的なホストシステムについて、説明される。ホストまたはコンピュータシステム１００は、一般的に、システムバス１０４を含み、このバスは、マイクロプロセッサ１０８、ランダムアクセスメモリ（ＲＡＭ）１１２、および、入力／出力回路１１６の通信を可能にする。ホストシステム１００は、一般的に、説明の目的のために図示されないディスプレイデバイスおよびネットワーキングデバイス等の他のコンポーネントを含むことが理解されるべきである。
【００６１】
一般的に、ホストシステム１００は、静止画像情報、オーディオ情報、および、ビデオイメージを含む情報を取得し得るが、それらに制限されない。そのような情報は、リアルタイムで取得され得、ワイヤレスの態様でホストシステム１００に伝送され得る。ホストシステム１００は、実質的に任意のシステムであってもよいが、ホストシステム１００は、典型的には、デジタルカメラ、ビデオカメラ、携帯電話通信デバイス、オーディオプレイヤ、または、ビデオプレイヤである。しかし、ホストシステム１００は、一般的に、データまたは情報を格納し、かつ、データまたは情報を取り出す実質的に任意のシステムであってもよいことが理解されるべきである。
【００６２】
ホストシステム１００はまた、データを取得するだけか、または、データを取り出すだけかのどちらかのシステムであってもよい。すなわち、ホストシステム１００は、１つの実施形態では、データを格納する専用システムであってもよく、または、ホストシステム１００は、データを読み出す専用システムであってもよい。一例として、ホストシステム１００は、データを書き込む、または、格納するためだけに構成されたメモリライタであってもよい。もしくは、ホストシステム１００は、データを読み出す、または、取り出すが、データを取得しないように典型的に構成されたＭＰ３プレイヤなどのデバイスであってもよい。
【００６３】
１つの実施形態では、リムーバブル不揮発性メモリデバイスである不揮発性メモリ１２０は、情報を格納するためにバス１０４とインターフェイスするように構成される。選択的インターフェイスブロック１３０により、不揮発性メモリデバイス１２０はバス１０４と間接的にインターフェイスし得る。存在する場合は、当業者に理解されるように、入力／出力回路ブロック１１６は、バス１０４における負荷を低減するのに役立つ。不揮発性メモリデバイス１２０は、不揮発性メモリ１２４および選択的メモリ制御システム１２８を含む。１つの実施形態では、不揮発性メモリデバイス１２０は、単一のチップもしくはダイ上で実装され得る。もしくは、不揮発性メモリデバイス１２０は、マルチチップモジュール、または、不揮発性メモリデバイス１２０として一緒にチップセットを形成し得、かつ、利用され得る複数のディスクリートコンポーネント上で実装され得る。不揮発性メモリデバイス１２０の１つの実施形態は、図２ｂに関連して、以下により詳細が説明される。
不揮発性メモリ１２４、例えば、ＮＡＮＤフラッシュメモリまたはＭＬＣ  ＮＡＮＤフラッシュメモリ等のフラッシュメモリは、データを格納するように構成され、その結果、データが必要とされる場合にアクセスされ、かつ、読み出され得る。不揮発性メモリ１２４内に格納されたデータはまた、必要に応じて消去され得るが、不揮発性メモリ１２４内のいくらかのデータは消去され得ないことが理解されるべきである。データを格納し、データを読み出し、かつ、データを消去するプロセスは、一般的に、メモリ制御システム１２８によってか、あるいは、メモリ制御システム１２８が存在しない場合は、マイクロプロセッサ１０８により実行されるソフトウェアによって制御される。不揮発性メモリ１２４の操作は、基本的に不揮発性メモリ１２４のセクションを実質的に同等に消耗させることによって、不揮発性メモリ１２４の耐用年数が実質的に最大化されるように、管理される。
【００６４】
不揮発性メモリデバイス１２０は、一般的に、選択的メモリ制御システム１２８、すなわち、コントローラを含むように説明された。多くの場合、不揮発性メモリデバイス１２０は、不揮発性メモリ１２４と、メモリ制御システム１２８、すなわち、コントローラ機能に対して別個のチップを含み得る。一例として、ＰＣカード、ＣｏｍｐａｃｔＦｌａｓｈカード、ＭｕｌｔｉＭｅｄｉａカード、および、セキュアデジタルカードを含むが、それらに制限されない不揮発性メモリデバイスが、別個のチップ上で実装され得るコントローラを含むのに対して、他の不揮発性メモリデバイスは、別個のチップ上で実装されるコントローラを含み得ない。不揮発性メモリデバイス１２０が別個のメモリおよびコントローラチップを含まない実施形態では、当業者に理解されるように、メモリおよびコントローラ機能は、単一のチップに集積され得る。もしくは、例えば、不揮発性メモリデバイス１２０が上述のようにメモリコントローラ１２８を含まない実施形態の場合は、メモリ制御システム１２８の機能性は、マルチプロセッサ１０８によって提供され得る。
【００６５】
図２ｂを参照して、本発明の実施形態に沿って、不揮発性メモリデバイス１２０が、より詳細に述べられる。上述されたように、不揮発性メモリデバイス１２０は、不揮発性メモリ１２４を含み、メモリ制御システム１２８を含み得る。メモリ１２４および制御システム１２８、または、コントローラは、不揮発性メモリデバイス１２０の主要なコンポーネントであるが、メモリ１２４が組み込みＭＬＣ  ＮＡＮＤメモリ等の組み込みＮＡＮＤデバイスである場合は、例えば、不揮発性メモリデバイス１２０は、制御システム１２８を含まなくてもよい。メモリ１２４は、半導体基板上に形成されたメモリセルの配列であり得る。ここで、１以上のデータのビットは、メモリセルの個々のストレージエレメントに２つ以上のレベルの電荷の１つを格納することによって、個々のメモリセル内に格納される。不揮発性フラッシュの電気的に消去可能プログラム可能リードオンリーメモリ（ＥＥＰＲＯＭ）は、そのようなシステムに対するメモリの共通のタイプの例である。
【００６６】
存在する場合は、制御システム１２８は、バス１５を介して、データを格納するメモリシステムを利用するホストコンピューターまたは他のシステムと通信する。バス１５は、一般的に、図２ａのバス１０４の一部である。制御システム１２８はまた、メモリセル配列１１を含み得るメモリ１２４の動作を制御して、ホストによって提供されるデータを書き込み、ホストによって要求されるデータを読み出し、メモリ１２４を操作する際に様々なハウスキーピング機能を実行する。制御システム１２８は、一般的に、関連する不揮発性ソフトウェアメモリおよび様々な論理回路などを有する一般的な目的のマイクロプロセッサを含む。１つ以上の状態マシンもまた、多くの場合、特定のルーティンの性能を制御するために含まれる。
【００６７】
メモリセル配列１１は、典型的には、アドレスデコーダ１７を介して、制御システム１２８またはマイクロプロセッサ１０８によってアドレス指示される。デコーダ１７は、配列１１のゲートおよびビットラインに適切な電圧を印加し、制御システム１２８によってアドレス指示されたメモリセルのグループに対してデータをプログラムし、データを読み出し、メモリセルのグループを消去する。さらなる回路１９は、プログラミングドライバを含み、このプログラミングドライバは、アドレス指示されたグループのセルにグループにプログラムされたデータに依存する配列のエレメントに印加された電圧を制御する。回路１９はまた、センス増幅器、および、メモリセルのアドレス指示されたグループからデータを読み出すのに必要な他の回路を含む。配列１１にプログラムされるべきデータ、または、配列１１から最近に読み出されたデータは、典型的に、制御システム１２８内のバッファメモリ２１において格納される。制御システム１２８はまた、通常、一時的に格納されているコマンドおよびステータスデータ等のための様々なレジスタを含む。
【００６８】
配列１１は、複数のＢＬＯＣＫ０−Ｎメモリセルに分割される。フラッシュＥＥＰＲＯＭシステムに共通なように、ブロックは、典型的には、消去の最小単位である。すなわち、各ブロックは、一緒に消去される最小の数のメモリセルを含む。各ブロックは、典型的には、複数のページに分けられる。当業者に理解されるように、ページは、プログラミングの最小単位であり得る。すなわち、基本のプログラミング操作は、最小のメモリセルの１ページにデータを書き込み、最小のメモリセルの１ページからデータを読み出す。１つ以上のデータのセクタは、典型的に、各ページ内に格納される。オーバーヘッドデータは、典型的には、セクタのユーザデータから計算されたエラー訂正コード（ＥＣＣ）を含む。制御システム１２８の一部分２３は、データが配列１１へプログラムされるときにＥＣＣを計算し、また、データが配列１１から読み出されるときにＥＣＣをチェックする。もしくは、ＥＣＣは、ＥＣＣが関連するユーザデータとは異なるページ、または、異なるブロックに格納される。
【００６９】
ユーザデータのセクタは、典型的には、５１２バイトであり、磁気ディスクドライブにおけるセクタのサイズに対応する。オーバーヘッドデータ、または、冗長なデータは、典型的には、付加的な１６バイトである。最もよくある場合では、データの１つのセクタが各ページに含まれるが、そうではなく２つ以上のセクタがページを形成してもよい。任意の数のページが、一般的にブロックを形成し得る。一例としては、ブロックは、８ページから５１２、１０２４またはそれより多いページまでから形成され得る。ブロックの数は、メモリシステムに所望のデータ記憶容量を提供するために選択される。配列１１は、典型的には、２、３のサブ配列（示されない）へ分割され、各サブ配列は、ブロックのある割合を含み、ブロックは、互いに独立していくらか動作することにより、様々なメモリ操作の実行における並行度を増加させる。多重サブ配列を利用する例としては、その全体を本明細書中で参照として援用する、米国特許第５，８９０，１９２号内に記載される。
【００７０】
１つの実施形態では、ＭＬＣ  ＮＡＮＤメモリ等の不揮発性メモリは、システム、例えば、ホストシステムに組み込まれる。図２ｃは、組み込み不揮発性メモリを含むホストシステムの図式表示である。ホストまたはコンピュータシステム１５０は、一般的に、ホストシステム１５０の他のコンポーネント（示されない）の間で、マイクロプロセッサ１５８、ＲＡＭ１６２、および、入力／出力回路１６６を通信させるシステムバス１５４を含む。不揮発性メモリ１７４、例えば、フラッシュメモリは、情報をホストシステム１５０内に格納させることを可能にする。インターフェイス１８０は、不揮発性メモリ１７４と、不揮発性メモリ１７４からの読み出しおよび不揮発性メモリ１７４へ書き込みを可能にするバス１５４と間に提供され得る。
【００７１】
不揮発性メモリ１７４は、不揮発性メモリ１７４を制御するように構成されたソフトウェアとファームウェアのどちらかまたは両方を効果的に実行するマイクロプロセッサ１５８によって、管理され得る。すなわち、マイクロプロセッサ１５８は、コードデバイス、すなわち、ソフトウェアコードデイバスまたはファームウェアコードデバイスを実行し得る。コードデバイスは、不揮発性メモリ１７４を制御することを可能にする。以下に説明されるそのようなコードデバイスは、不揮発性メモリ１７４内の物理ブロックが、アドレス指示されるのを可能にし得、情報の物理ブロックへ格納、物理ブロックからの読み出し、物理ブロックからの消去を可能にする。
【００７２】
図３は、本発明の実施形態に沿った、アップデートを実質的にアウトオブシーケンスに書き込み可能にするグループに分割された物理ブロックの図式表示である。物理ブロック３００は、一般的に、任意の数のページ３０４を含み得る。示されるように、物理ブロック３００は、４つのグループ３０８に分割された１６ページ３０４を含む。従って、各グループ３０８は、前のグループ３０８から４ページのオフセットで開始するとみなされ得る。しかし、理解されるべきことは、ページ３０４の総数、グループ３０８の数、および、各グループ３０８におけるページ３０４の数は、特定のメモリシステムの要件（要件に限定されないが）を含み得る要因の変化に応じて、広範囲に変化し得る。
【００７３】
物理ブロック３００は、「アップデート」物理ブロックであり得、「アップデート」物理ブロックは、論理ブロックのより古いコンテンツを効果的に更新する論理ブロック（示されない）と関連するアップデートされたコンテンツを含むように構成される。示されるように、ブロック３００内の第１のグループ３０８ａのページ３０４ａは、ブロック３００に関連する論理ブロック（示されない）の第１のページに関連するコンテンツ３１２を含む。コンテンツ３１２がページ３０４ａに書き込まれる場合、ページ３０４ａのデータ領域、および、オーバーヘッドまたは冗長な領域は、実質的に同時に書き込まれる。第１のグループ３０８ａはまた、論理ブロック（示されない）の第４のページに関連するコンテンツ３１４を含む第４のページ３０４ｄを含む。
【００７４】
第１のグループ３０８ａに含まれるページ３０４ｂ、３０４ｃは実質的に空であるが、さらにアップデートされたコンテンツは、ブロック３００内に格納されるとき、そのようなコンテンツは、ページ３０４ｂ、３０４ｃに格納され得ない。グループ３０８内のページ３０４は、一般的に、順番に書き込まれ得るのみであり、その結果、より高いページ３０４が一旦書書き込まれると、より低い、または、前のページ３０４が書き込まれ得ない。一例として、ブロック３００に対応する論理ブロック（示されない）の第３のページに関連するコンテンツ３１６が、ブロック３００内に書き込まれる場合、コンテンツ３１６は、次に利用可能なグループ３０８、すなわち、グループ３０８ｂに含まれる第３のページ３０４ｇへ書き込まれる。第２のグループ３０８ｂの第３のページ３０４ｇは、ブロック３００に関連する全体ページで第７番目である。
【００７５】
論理ブロック（示されない）の第１のページに関連するコンテンツ３１２がアップデートされたコンテンツ３１２’によって更新される場合、第２グループ３０８ｂのページ３０４ｅ、３０４ｆ、３０４ｈは実質的に空であるが、アップデートされたコンテンツ３１２’は、第２グループ３０８ｂへ書き込まれ得ない。代わりに、アップデートされたコンテンツ３１２’は、第３のグループ３０８ｃの第１のページ３０４ｉへ書き込まれ、第３のグループ３０８ｃは、ブロック３００と関連する全体ページで第９番目である。アップデートされたコンテンツが現在のグループ３０８内に書き込まれる場合に、部分的書き込み妨害、もしくは、現在のグループ３０８に関連するアウトオブシーケンス妨害のどちらかがが発生し得るときは実質的にいつでも、一般的に、新しい利用可能なグループ３０８が利用するために調達され得る。理解されるべきことは、アップデートされたコンテンツ３１２’が第３のグループ３０８ｃの第１のページ３０４ｉへ書き込まれる前に、第２グループ３０８ｂの第４のぺージ３０４ｈが、基本的に論理ブロック（示されない）の第４のページに関連するコンテンツでのみ、書き込まれてもよいことである。
【００７６】
一旦、アップデートされたコンテンツ３１２’が第３のグループ３０８ｃの第１のページ３０４ｉへ書き込まれると、論理ブロック（示されない）の第３のページの第３ページに関連するアップデートされたコンテンツ３１６’書き込まれるが場合に、アップデートされたコンテンツ３１６’は、第３グループ３０８ｃ内の適切なページ、すなわち、第３のグループ３０８ｃの第３のページ３０４ｋへ書き込まれ得る。理解されるべきことは、アップデートされたコンテンツ３１６’が書き込まれた後に、ページ３０４ｄに書き込まれる実質的にコンテンツ３１４に関連したアップデートされるコンテンツのみが、グループ３０８ｃへ書き込まれ得ることである。他のコンテンツまたはアップデートされたコンテンツは、一般的に、第４のグループ３０８ｄへ書き込まれる。例えば、論理ブロック（示されない）の第２のページに関連するコンテンツ３１８が書き込まれる場合に、コンテンツ３１８は、第４のグループ３０８ｄの第２のページ２０４ｎへ格納される。
【００７７】
コンテンツが物理ブロック３００へ書き込まれる場合に、コンテンツは、ページの順序に関連した「下向き」方向で書き込まれる。しかし、コンテンツが物理ブロックから読み出される場合は、コンテンツは、「上向き」方向で読み出され、その結果、所与の論理ページに関連した最も最近のコンテンツが読み出され得、かつ、所与の論理ページに関連した古いか、または、更新されたコンテンツが効果的に無視され得るかまたは省略され得る。言い換えると、書き込みプロセスは、一般的に、物理ブロック３００の最初で開始が実行されるのに対して、読み出しプロセスは、一般的に、物理ブロック３００の最後で開始が実行される。
【００７８】
論理ブロック（示されない）のページに関連するコンテンツがグループ３０８に書き込まれる場合に、論理ブロックのページは、実質的にアウトオブシーケンスの態様で、物理ブロック３００に効果的に書き込まれる。すなわち、物理ブロック３００が効果的にグループ３０８なしに「ビューされる（ｖｉｅｗｅｄ）」場合に、論理ブロック（示されない）のページに関連するコンテンツが物理ブロック３００内に実質的にアウトオブシーケンスで書き込まれると考えられる。例えば、論理ブロックの第４のページに関連するコンテンツ３１４が書き込まれた後に、論理ブロックの第３のページに関連するコンテンツ３１６が書き込まれる。しかし、コンテンツは、各グループ３０８内に実質的に順番に書き込まれる。物理ブロック３００に関連して、例えば第３グループ３０８ｃのような各グループ３０８内に実質的に順番にコンテンツを書き込みむが、コンテンツは、実質的にアウトオブシーケンスで効果的に書き込まれる。
【００７９】
一般的に、論理ブロックのページは、論理グループに分割され得る。論理ブロックのページを論理グループに分割するステップまたはグループ分けをするステップにより、論理ブロックに関連した物理ブロックの物理グループに格納されたコンテンツを、より容易に識別可能になる。図４ａを参照して、論理グループを含む論理ブロックおよび物理グループを含む物理ブロックは、本発明の実施形態に従って説明される。論理グループ４０８にグループ分けされた論理ページ４０４を含む論理ブロック４００は、物理ブロック４２０に関連する。物理グループ４２８にグループ分けされたページ４２４を含む物理ブロック４２０は、論理ブロック４００に関連し、物理ブロック４２０はコンテンツ、例えば新しいもしくはアップデートされたコンテンツを含むように構成され、新しいもしくはアップデートされたコンテンツは、論理ブロック４００に関連する。従って、物理ブロック４２０は、論理ブロック４００に関連するアップデートされたコンテンツが格納され得る「アップデート」物理ブロックとみなし得る。
【００８０】
論理ブロック４００および物理ブロック４２０は、一般的に、任意の数のページ４０４、４２４をそれぞれ含み得る。ページ４０４、４２４の数は、ブロック４００、４２０を含むホストシステム不揮発性メモリシステムの要件に依存し得る。示されるように、ページの数は広範囲に変更され得るが、論理ブロック４００は、３２ページ４０４を含み、物理ブロック４２０は、３２ページ４２４を含む。例えば、ブロック４００、４２０は、８、１６、６４、１２８、または、２５６ページを含み得る。同様に、各グループ４０８は、８ページ４０４を含み、各グループ４２８は８ページ４２４を含むが、１つのグループにおけるページの数もまた、ホストシステムの要件に依存して広範囲に変化し得る。
【００８１】
典型的に、各論理グループ４０８は、論理グループ識別子によって識別される。例えば、第１の論理グループ４０８ａは、「ＬＧ１」として識別され得る一方で、第２の論理グループ４０８ｂは、「ＬＧ２」として識別され得る。１つの実施形態では、各論理グループ識別子は、論理ブロック４００内で論理グループ４０８を一意に識別するビットまたは一連のビットであり得る。論理ページ４０４に関連したコンテンツが物理グループ４２８へ格納される場合に、コンテンツは、一般的に、そのコンテンツがどの論理グループと関連するかを識別する論理グループ識別子とともに格納される。示されるように、第１の論理グループ４０８ａの第１のページ４０４ａと関連したアップデートされるコンテンツ４３０がブロック４２０に書き込まれ、かつ、全ての物理グループ４２８ａが利用可能である場合に、アップデートされるコンテンツ４３０は、物理ページ４２８ａのコンテンツが第１の論理グループ４０８ａと関連するとして識別する論理グループ識別子４３２とともに、第１の物理グループ４２８ａの第１のページ４２４ａに書き込まれる。論理グループ識別子４３２は、第１の物理グループ４２８ａ等の物理グループ４２８内の実質的に任意のページ４２４に書き込まれ得るが、論理識別子４３２は、典型的には、第１の物理グループ４２８ａの第１のページ４２４ａ等の物理グループ４２８の第１のページ４２４の冗長なまたはオーバーヘッド領域に書き込まれる。
【００８２】
一旦、第１の物理グループ４２８ａが第１の論理グループ４０８ａに関連付けられると、例えば論理グループ識別子４３２を利用するので、第１の物理グループ４２８ａ内のページ４２４は、一般的に、第１の論理グループ４０８ａ内のページ４０４に関連するコンテンツを含むのみであり得る。すなわち、説明される実施形態では、各物理グループ４２８は、単一の論理グループ４０８に関連するコンテンツを含む。第１の物理グループ４２８ａが第１の論理グループ４０８ａに関連付けられた後、第１の論理ページ４０４ａの順番的または数字的に「後」になる論理ページ４０４に関連する第１の論理グループ４０８ａに関連したアップデートされるもしくは新しいコンテンツは、第１の物理グループ４２８ａ内のページ４２４に書き込まれ得る、または、格納され得る。一例として、第８の論理ページ４０４ｂと関連したアップデートされるコンテンツ４３４は、物理ページ４２４ｃへ格納され得る。
【００８３】
論理グループ４０８ａの第７の論理ページ（示されない）と関連したアップデートされるコンテンツ４３６が物理ブロック４２０へ書き込まれるべき場合は、そのようなコンテンツ４３６が第１の物理グループ４２８ａに書き込まれ得ないので、コンテンツ４３６は、利用可能な物理グループ４２８（例えば、第２の物理グループ４２８ｂ）内の適切なページ４２４ｅに書き込まれる。示されるように、第２の物理グループ４２８ｂのコンテンツが第１の論理グループ４０８ａと関連するとして識別する論理グループ識別子４３８は、第２の物理グループ４２８ｂに（例えば、物理グループ４２８ｂの第１の物理ページ４２４ｄに）書き込まれる。次に、第８の論理ページ４０４ｂと関連したより新しくアップデートされるコンテンツ４４０が書き込まれるべき場合では、より新しいアップデートされるコンテンツ４４０は、第２の物理グループ４２８ｂと関連した第８の物理ページ４２４ｆに書き込まれ得る。
【００８４】
アップデートされたコンテンツ４４０が第２の物理グループ４２８ｂに書き込まれた後に、論理ブロック４００に関連したアップデートが連続して発生すべき場合は、新しいアップデートされたコンテンツは、次の利用可能な物理グループ４２８に書き込まれる。例えば、第３の論理グループ４０８ｃの第２から第４の論理ページ４０４に関連する新しいまたはアップデートされるコンテンツ４２２、４４４、４４６が、それぞれ、物理ブロック４２０に書き込まれるべき場合は、コンテンツ４２２、４４４、４４６は、第３の物理グループ４２８ｃに書き込まれる。具体的には、コンテンツ４２２は、第３の物理グループ４２８ｃの第２のページ４２４ｈに書き込まれ、コンテンツ４４４は、第３の物理グループ４２８ｃの第３のページ４２４ｉに書き込まれ、コンテンツ４４６は、第３の物理グループ４２８ｃの第４のページ４２４ｊに書き込まれる。第３の物理グループ４２８ｃを第３の論理グループ４０８ｃに関連するとして容易に識別するために、第３の論理グループ４０８ｃを識別する論理グループ識別子４４８は、第３の物理グループ４２８ｃに（例えば、第３の物理グループ４２８ｃの第１の物理ページ４２４ｇと関連するオーバーヘッド領域に）格納される。
【００８５】
部分的書き込み妨害、または、アウトオブシーケンス妨害を避けるために、さらなるアップデートが論理グループ４０８ａと関連したコンテンツにされる場合は、たとえさらなる利用可能なページ（例えば、４２４ｋ）が第３の物理グループ４２８ｃに存在し得ようとも、そのようなアップデートされるコンテンツは、第４の物理グループ４２８ｄに書き込まれる。示されるように、第４の物理グループ４２８ｄは、第１の論理グループ４０８ａが第４の物理グループ４２８ｄと関連するとして識別する論理グループ識別子４５０を含む。論理ページ４０４ａと関連したアップデートされるコンテンツ４５２が、物理グループ４２８ｄの第１のページ４２４ｌに格納される一方、第１の論理グループ４０８ａの第５の論理ページ（示されない）と関連するコンテンツ４５４は、アップデートされるコンテンツ４５２が格納された後のある時点で、第４の物理グループ４２８ｄの第５のページ４５４ｐに書き込まれる。最後に、論理ページ４０４ｂと関連したアップデートされるコンテンツ４５６は、第４の物理グループ４２８ｄの第８の物理ページ４２４ｓに書き込まれ得る。
【００８６】
一旦、論理ブロック４００に関連したアップデートを収容する物理ブロック４２０内の利用可能な適切な物理グループ４２８が存在しなくなると、１つの実施形態では、図４ｂおよび４ｃに関連して以下に議論されるように、物理ブロック４２０のコンテンツは、論理ブロックと関連する「元の」物理ブロックのコンテンツと、例えば、新しい物理ブロックにマージされ得る。すなわち、論理ブロック４００は、典型的には、１つより多い関連する物理ブロックを有するので、物理ブロック４２０を含む複数の物理ブロックは分割され得る。物理ブロック４２０のコンテンツが新しい物理ブロックにマージされるか、そうでなければ分割された後、別の新しい物理ブロックが、論理ブロック４００と関連したアップデートされるコンテンツを格納するのに適した「アップデート」物理ブロックとして役立つように調達され得る。
【００８７】
共通の論理ブロックに関連する物理ブロックを分解するステップは、典型的には、どの物理ブロックがより最も最近に論理ブロックと関連付けられ、従って、共通の論理ブロック（例えば、論理ブロック４００）と関連するより最近のコンテンツを含むのかを決定するステップを含む。参照として援用される同時係属中の米国特許出願第１０／２８１，７６２号に記載されるアップデートインデックスは、複数の物理ブロックのどれが、論理ブロックにより最近に関連付けられたかを決定するために利用され得る。多くの場合、論理ブロックが１つより多い関連する物理ブロックを有し、かつ、その論理ブロックと関連付けられるべき１つの物理ブロックを識別することが本質的に必要な場合、アップデートインデックスは、物理ブロックから入手され得る。なぜならば、２つの物理ブロックからのアップデートインデックスの比較により、２つの物理ブロックのどちらがその論理ブロックに関連付けられるより最近のコンテンツを含むのかを識別するように、アップデートインデックスが構成されるからである。
【００８８】
物理ブロックに関連付けられた少なくとも１つのオーバーヘッドまたは冗長な領域内に格納され得るアップデートインデックスは、コピーまたはマージするプロセスに関与する２つの物理ブロックのどちらがより古い物理ブロックであるのかと、２つの物理ブロックのどちらがより新しい物理ブロックか、または、「アップデート」物理ブロックであるのかとを示すように構成され得る。例えば、新しい物理ブロックのアップデートインデックスは、そのアップデートインデックスの値が古い物理ブロックのアップデートインデックスよりも大きいように設定され得る。従って、物理ブロックのアップデートインデックスが、どの物理ブロックが「アップデート」物理ブロックであるかを決定するためにチェックされるとき、より大きいアップデートインデックスを有する物理ブロックが「アップデート」物理ブロックであると決定され得る。
【００８９】
図４ｂは、本発明の実施形態に沿った、より古い物理ブロックと、例えば図４ａの論理ブロック４００のような共通の論理ブロックと関連した、例えば図４ａの物理ブロック４２０のような「アップデート」物理ブロックとの図式表示である。物理ブロック４２０が、図４ａの論理ブロック４００と関連するアップデートをそれ以上受取ることができない場合に、物理ブロック４２０のコンテンツは、論理ブロック４００と関連した元の物理ブロックであり得る物理ブロック４６０のコンテンツ４６２と、実質的にマージされ得る。すなわち、物理ブロック４６０のコンテンツ４６２および物理ブロック４２０のコンテンツは、図４ａの論理ブロック４００と関連する最も最近のコンテンツまたはデータを識別するために、効果的に比較され得る。典型的には、図４ａの論理ブロック４００に関連する最も最近にアップデートされたコンテンツは、物理ブロック４２０内に位置する。しかし、物理ブロック４６０に書き込まれて以来アップデートされていない図４ａの論理ブロック４００に関連する最も最近のコンテンツは、物理ブロック４６０から入手される。
【００９０】
図４ａの論理ブロック４００と関連する最も最近のコンテンツは、幾つかのケースでは、物理ブロック４２０に格納され得るが、論理ブロック４００に関連する最も最近のコンテンツは、典型的には、新しく調達された物理ブロック（例えば、図４ｃのブロック４８０）に格納される。物理ブロック４２０、４６０に関与するコピーまたはマージのプロセスの間、読み出しプロセスは、各ブロック４２０、４６０の最後で開始を実行され得る。一例として、ブロック４２０のページ４２４ｓは、最初に読み出され得る。図４ｃのブロック４８０に、図４ａの論理ブロック４００と関連する最も最近のコンテンツが書き込まれるとき、ブロック４８０の最初で開始して、ブロック４８０が書き込まれ得る。
【００９１】
ブロック４２０、４６０のどちらがより古いブロックであり、かつ、ブロック４２０、４６０のどちらがアップデートされたコンテンツを含む「アップデート」ブロックであるかを決定するために、各ブロック４２０、４６０に関連したオーバーヘッド領域に格納されるアップデートインデックスが、比較され得る。アップデートインデックス４７０が、どちらのブロック４２０、４６０がより新しいかを示すので、アップデートインデックス４７０ｂにより、ブロック４２０が図４ａの論理ブロック４００とより最近に関連付けられたことを示されるとき、その後ブロック４２０が、「アップデート」ブロックであることを決定される。説明される実施形態では、ブロック４２０が「アップデートブロック」であるので、アップデートインデックス４７０ｂは、そのブロック４２０がブロック４６０よりも事実上新しいことを示すように構成される。
【００９２】
ブロック４２０のコンテンツが読み出されるとき、ブロック４２０内のどのコンテンツがブロック４２０内の他のコンテンツを更新することを意図されるのかに関して、決定がなされ得る。一例として、コンテンツ４５６が読み出されるとき、コンテンツ４５６が、実質的に図４ａの論理ブロック４００の第８の論理ページ４０４ｂに関連付けられる任意の他のコンテンツを更新することが決定され得る。さらに、図４ａのどの論理ページが特定のグループ４２８のコンテンツに関連付けられるのかの決定を促進するために、ブロック４２０内に格納される論理グループインディケータが利用され得る。
【００９３】
図４ａの論理ブロック４００と関連する最も最近または現在のコンテンツが識別されるように、物理ブロック４２０、４６０が分割された後、最も最近のコンテンツは、図４ｃに示されるように、物理ブロック４８０に書き込まれ得る。示されるように、ほとんどの物理ブロック４２０のアップデートされたコンテンツ、すなわち、コンテンツ４５２、４５４、４４０、４５６、４４２、４４４、４４６のように、図４ｂの物理ブロック４６０において以前に存在し、かつ、図４ｂの物理ブロック４２０の任意のコンテンツによって更新されていない元のコンテンツ４６２が、物理ブロック４８０に含まれる。物理ブロック４８０は、図４ａの論理ブロックに関連する最も最近のコンテンツを含むのに加えて、物理ブロック４８０内の実質的に任意のページのオーバーヘッドまたは冗長な領域に格納され得るアップデートインデックスをも含む。
【００９４】
物理ブロック４８０は、一般的に、本質的に物理ブロック４２０へ書き込まれるアップデートがそれ以上ないか、物理ブロック４２０がさらなるアップデートを収容することができないかのどちらかの場合に、多くのものを住まわせ得る、例えば、図４ｂの物理ブロック４２０、４６０が分割され得る。さらなるアップデートが図４ｂの物理ブロック４２０に格納され得ないために物理ブロック４８０に多くのものを住まわせる場合、一旦、物理ブロック４８０に多くのものが住まわされると、新しい「アップデート」物理ブロックが調達され得る。１つの実施形態では、新しい「アップデート」物理ブロックにおけるアップデートインデックスは、新しい「アップデート」物理ブロックが、物理ブロック４８０よりもより新しく図４ａの論理ブロック４００に関連付けられていることを示すように設定され得る。
【００９５】
図５を参照して、アウトオブシーケンス書き込みプロセスとみなし得る書き込みプロセスを実行する１つの方法と関連するステップが、本発明の実施形態に従って説明される。１つまたは複数のアップデートを物理ブロックへ書き込むプロセス５００は、現在の論理ブロックと関連付けられたアップデートが入手されるステップ５０４から開始する。ホストシステムが現在の論理ブロックに関連する新しいまたは変更されたデータを提供するときに、アップデートが入手され得る。一旦、アップデートが入手されると、アップデートが書き込まれ得る「アップデート」物理ブロック内で適切な物理グループが利用可能であるかどうかに関して、ステップ５０８で決定がなされる。「アップデート」物理ブロックは、上述のように、現在の論理ブロックと関連する、アップデートされたまたは新しい情報を含むように構成され、かつ、物理グループナンバーによって識別され、現在の論理ブロックの論理グループにそれぞれが対応し得るグループに実質的に分割され得る物理ブロックであり得る。
【００９６】
利用可能または適切なグループが存在することが決定されると、次に、現在のグループ（すなわち、書き込みがなされた最も最近のグループ）がアップデートのためのスペースを有するか、または、書き込まれ得る新しいグループが存在するかのどちらかを指示する。従って、プロセスフローは、アップデートが「アップデート」物理ブロック内の適切なグループに書き込まれるステップ５１２へ移動する。典型的には、アップデートを適切なグループに書き込むステップに加えて、アップデートが関連付けられる論理グループを識別する識別子はまた、適切なグループに書き込まれる。
【００９７】
一旦、アップデートが適切なグループに書き込まれると、現在の論理ブロックに関連するさらなるアップデートが存在するかどうかに関して、ステップ５１６において決定がなされる。現在の論理ブロックに関連するさらなるアップデートが存在することが決定される場合、次に、プロセスフローは、現在の論理ブロックに関連する次のアップデートが入手されるステップ５０４に戻る。もしくは、現在の論理ブロックと関連するアップデートがそれ以上ないことが決定される場合、次に、現在の物理ブロックのコンテンツ（例えば、現在の論理ブロックに関連するアップデートが効果的に処理される前に、現在の論理ブロックと関連付けられていた「元の」コンテンツを含む物理ブロックのコンテンツ）は、ステップ５２０において、「アップデート」物理ブロックのコンテンツと必要に応じてマージされ得る。２つの物理ブロックのコンテンツは、１つの実施形態において、新しい現在の物理ブロックにマージされ得る。現在の物理ブロックおよび「アップデート」物理ブロックのコンテンツがマージされるか、そうでなければ分割された後、１つまたは複数のアップデートを書き込むプロセスは完了する。
【００９８】
ステップ５０８に戻って、現在の論理ブロックと関連する現在のアップデートが書き込まれ得る「アップデート」物理ブロック内に、利用可能なグループが存在しないことが決定される場合、次に、プロセスフローは、新しい物理ブロックが調達されるステップ５２４に移動する。具体的には、説明される実施形態において、現在の論理ブロックと関連する現在の物理ブロックのコンテンツは、「アップデート」物理ブロックのコンテンツを単一の物理ブロックに、必要に応じてマージされるか、分割される。一旦、現在の論理ブロックに関連する新しい現在の物理ブロックである単一の物理ブロックが、現在の論理ブロックと関連する最も最近の情報で書き込まれると、次に、現在の論理ブロックと関連するアップデートが格納され得る新しい「アップデート」物理ブロックが、ステップ５２８において調達される。１つの実施形態では、新しい「アップデート」物理ブロックを調達するステップは、新しい「アップデート」物理ブロックと関連するアップデートインデックスを、現在の物理ブロック内のアップデートインデックスの値と関連する適切な値に設定するステップを含む。
【００９９】
新しい「アップデート」物理ブロックが調達された後、現在の論理ブロックと関連する現在のアップデートは、ステップ５３２において、新しい「アップデート」物理ブロック内の第１のグループに書き込まれ得る。典型的には、アップデートが関連付けられる現在の論理ブロック内で論理グループを識別する識別子とともに、アップデートが第１の物理グループに書き込まれる。プロセスフローは、次に、現在の論理ブロックと関連するさらなるアップデートが存在するかどうかを決定するステップ５１６へ移動する。
【０１００】
一般的に、電力管理ブロックを実装するステップ、維持するステップ、および、活用するステップと関連する機能が、ソフトウェア（例えば、プログラムコードデバイス、または、ファームウェア）として、不揮発性メモリまたは不揮発性メモリコンポーネントを含むホストシステムに対して提供される。電力管理ブロックを実装し、維持し、利用可能にするホストシステムに提供されるソフトウェアまたはファームウェアと関連する適切なシステムアーキテクチャの１つの実施形態が、図６に示される。システムアーキテクチャ７００は、一般的に、アプリケーションインターフェイスモジュール７０４、システムマネージャモジュール７０８、データマネージャモジュール７１２、データインテグリティマネージャ７１６、および、デバイスマネージャおよびインターフェイスモジュール７２０を含み得るがそれらに制限されない様々なモジュールを含む。一般的に、システムアーキテクチャ７００は、プロセッサ（例えば、図２ａのプロセッサ１０８）によってアクセスされ得るソフトウェアコードデバイスまたはファームウェアを利用して実装され得る。
【０１０１】
一般的に、アプリケーションインターフェイスモジュール７０４は、要求の初期化、または、システムフォーマッティングの過程の間にメディアを初期化するために、フラッシュメモリ（示されない）などの不揮発性メモリ（より一般的には、メディア）と通信するように構成され得る。アプリケーションインターフェイスモジュール７０４はまた、メディアと関連するセクタ、クラスタ、または、ページに対して読み出し、かつ、書き込み得る。典型的には、メディアと通信するステップに加えて、アプリケーションインターフェイスモジュール７０４はまた、システムマネージャモジュール７０８およびデータマネージャモジュール７１２と通信する。
【０１０２】
システムマネージャモジュール７０８は、システム初期化サブモジュール７２４、消去カウントブロック管理サブモジュール７２６、および、電力管理ブロックサブモジュール７３０を含む。システム初期化サブモジュール７２４は、一般的に、初期化要求を処理可能にするように構成され、典型的には、消去カウントブロック管理サブモジュール７２６と通信する。消去カウントブロック管理サブモジュール７２６は、ブロックの消去カウントを格納させる機能と、個々の消去カウントを利用して平均消去カウントを計算させ、かつ、アップデートさせる機能とを含む。システム初期化モジュール７２４はまた、１対多の論理対物理ブロックの割り当てを分割するように構成され、従って、アップデートインデックスを活用し得る。
【０１０３】
アプリケーションインターフェイスモジュール７０４との通信に加えて、システムマネージャモジュール７０８はまた、データマネージャモジュール７１２、および、デバイスマネージャおよびインターフェイスモジュール７２０と通信する。システムマネージャモジュール７０８およびアプリケーションインターフェイスモジュール７０４の両方と通信するデータマネージャモジュール７１２は、論理セクタを物理セクタへ効果的に変換するセクターマッピングを提供する機能を含み得る。すなわち、データマネージャモジュール７１２は、論理ブロックを物理ブロックへマップするように構成される。データマネージャモジュール７１２はまた、同時係属中の米国特許出願第１０／２８１，８５５号に記載されるように（その全体を本明細書中で参照として援用される）、オペレーティングシステムおよびファイルシステムインターフェイス層と関連する機能を含み得、ブロック内のグループを管理可能にする。１つの実施形態では、データマネージャモジュール７１２は、実質的にアウトオブシーケンス書き込みプロセスが発生可能なように構成され得る。
【０１０４】
システムマネージャモジュール７０８、データマネージャ７１２、およびデータインテグリティマネージャ７１６と通信するデバイスマネージャおよびインターフェイスモジュール７２０は、典型的には、フラッシュメモリインターフェイスを提供し、ハードウェア抽象化と関連する機能（例えばＩ／Ｏインターフェイス）を含む。データインテグリティマネージャモジュール７１６は、他にも機能はあるが、ＥＣＣ処理を提供する。
【０１０５】
本発明のほんの２、３の実施形態のみが説明されたが、理解されるべきことは、本発明は、本発明の意図または範囲を逸脱することなしに、多くの他の特定の形式で実施され得ることである。一例として、本質的なアウトオブシーケンス書き込みを発生可能にするグループの利用が、一般的に、ＮＡＮＤメモリ（例えば、ＭＬＣ  ＮＡＮＤメモリ）と関連するように説明された。しかし、一般的には、ブロックをグループに分割することを含む本質的なアウトオブシーケンス書き込みは、実質的に任意の適切なメモリまたはメモリシステムに関連して実装され得る。
【０１０６】
アップデートインデックスは、「アップデート」物理ブロックおよび現在の物理ブロックを分割可能にする際の利用に適するように説明された。しかし、理解されるべきことは、実質的に任意の適切な方法、例えば、アップデートインデックスの利用と関係しない方法が、複数の物理ブロックを分割可能にするために利用され得る。
【０１０７】
本発明の様々な方法と関連するステップは、広範囲に変化し得る。一般的に、本発明の意図または範囲から逸脱することなく、ステップが追加され、取り除かれ、順番を変えられ、変更され得る。例えば、論理ブロック内の特定の論理グループに関連するアップデートが、「アップデート」物理ブロック内の適切な物理グループへ書き込まれるべきであり、かつ、そのアップデートが、物理グループ内に書き込まれるべき第１のアップデートである場合は、このアップデートを書き込むステップは、論理グループと関連する物理グループとして識別する識別子を物理グループに書き込むステップを含み得る。そのようなインディケータは、実質的に任意の物理グループのページに書き込まれ得、そのような識別子は、多くの場合、物理グループの第１のページ（すなわち開始ページ）に書き込まれる。理解されるべきことは、識別子は、アップデートが書き込まれる前に書き込まれ得るか、または、識別子は、アップデートと実質的に同時に（例えば、アップデートが物理グループの第１のページへ書き込まれるとき）書き込まれ得ることである。従って、本例は、実例であるが制限されないものとしてみなされ得る。本発明は、本明細書中に与えられた詳細に制限されないが、付属の特許請求の範囲の範囲内で改変され得る。
【０１０８】
不揮発性メモリの物理ブロックにコンテンツを効果的に格納可能にするための方法および装置が開示される。
【０１０９】
本発明の１つの局面によると、メモリユニットを有する不揮発性メモリシステムで書き込み操作を実行するための方法は、メモリユニットの第１の物理サブユニットに第１のコンテンツのセットを書き込むステップと、第１のコンテンツのセットが第１の物理サブユニットに書き込まれた後に、メモリユニットの第２の物理サブユニットに第２のコンテンツのセットを書き込むステップとを含む。第１の物理サブユニットは、メモリユニットの第２の物理サブユニットより順番的に前にある。第１のコンテンツのセットは、論理ユニットの第２論理サブユニットに関連し、第２のコンテンツのセットは、論理ユニットの第２の論理サブユニットの順番的に前にある論理ユニットの第１の論理サブユニットと関連する。
【０１１０】
以上のように、本発明の好ましい実施形態を用いて本発明を例示してきたが、本発明は、この実施形態に限定して解釈されるべきものではない。本発明は、特許請求の範囲によってのみその範囲が解釈されるべきであることが理解される。当業者は、本発明の具体的な好ましい実施形態の記載から、本発明の記載および技術常識に基づいて等価な範囲を実施することができることが理解される。本明細書において引用した特許、特許出願および文献は、その内容自体が具体的に本明細書に記載されているのと同様にその内容が本明細書に対する参考として援用されるべきであることが理解される。
【図面の簡単な説明】
【０１１１】
【図１】図１は、コンテンツの第１のセットと、第２の物理ブロックへ書き込まれるべきアップデートとを有する第１の物理ブロックの図式表示である。
【図２ａ】図２ａは、不揮発性メモリを含む一般的なホストシステムの図式表示である。
【図２ｂ】図２ｂは、メモリデバイス、例えば、図２のメモリデバイス１２０の図式表示である。
【図２ｃ】図２ｃは、組み込み不揮発性メモリを含むホストシステムの図式表示である。
【図３】図３は、本発明の実施形態に沿った、アップデートを実質的にアウトオブシーケンスに書き込み可能にするグループに分割された物理ブロックの図式表示である。
【図４ａ】図４ａは、本発明の実施形態に沿った、論理グループを含む論理ブロックおよび物理グループを含む物理ブロックの図式表示である。
【図４ｂ】図４ｂは、本発明の実施形態に沿った、より古い物理ブロックと、例えば図４ａの論理ブロック４００のような共通の論理ブロックと関連した、例えば図４ａの物理ブロック４２０のような「アップデート」物理ブロックとの図式表示である。
【図４ｃ】図４ｃは、本発明の実施形態に沿った、例えば図４ｂの元の物理ブロック４６０および「アップデート」物理ブロック４２０のような、元の物理ブロックおよび「アップデート」物理ブロックと関連するコンテンツを含む物理ブロックの図式表示である。
【図５】図５は、本発明の実施形態に沿った、アウトオブシーケンス書き込みプロセスとみなし得る書き込みプロセスを実行する１つの方法に関連したステップを示すプロセスフロー図である。
【図６】図６は、本発明の実施形態に沿った、システムアーキテクチャの図式ブロック図表示である。
【符号の説明】
【０１１２】
１１  メモリセル配列
１５  バス
１７  アドレスデコーダ
１９  回路
２１  バッファメモリ
２３  制御システム１２８の一部分
１００  物理ブロック
１０４  コンテンツ
１０４ａ  コンテンツ
１０４ｂ  コンテンツ
１０８  マイクロプロセッサ
１１０  アップデート
１１２  ランダムアクセスメモリ（ＲＡＭ）
１１２ａ  ページ「Ｎ−２」
１１２ｂ  ページ「３」
１１６  入力／出力回路
１２０  物理ブロック
１２４  不揮発性メモリ
１２８  メモリ制御システム
１３０  インターフェイスブロック
１５０  ホストまたはコンピュータシステム
１５４  システムバス
１５８  マイクロプロセッサ
１６２  ＲＡＭ
１６６  入力／出力回路
１８０  インターフェイス
７００  システムアーキテクチャ
【図１】
2004164633.tif 000003
【図２ａ】
2004164633.tif 000004
【図２ｂ】
2004164633.tif 000005
【図２ｃ】
2004164633.tif 000006
【図３】
2004164633.tif 000007
【図４ａ】
2004164633.tif 000008
【図４ｂ】
2004164633.tif 000009
【図４ｃ】
2004164633.tif 000010
【図５】
2004164633.tif 000011
【図６】
2004164633.tif 000012