(57)【要約】【課題】  論理ページの更新に応答して生じる多数の書き込みおよび消去プロセスが低減されることを可能にする方法および装置を提供すること。【解決手段】  不揮発性メモリのブロックと関連するコンテンツを処理する方法は、コンテンツの第１のセットを取得する工程であって、該コンテンツの第１のセットは、第１の論理ブロックの第１の論理グループと関連付けられ、該第１のグループは、該第１の論理ブロックと関連する第１の複数の論理ページを含み、該第１の論理ブロックは、第１の物理ブロックにマッピングされる、取得する工程と、該コンテンツの第１のセットをメモリ領域に書き込む工程と、該コンテンツの第１のセットを該メモリ領域から第２の物理ブロックの第１の物理グループに書き込む工程と、該第２の物理ブロックを該第１の論理ブロックにマッピングする工程とを包含する。【選択図】  なし【特許請求の範囲】
【請求項１】
不揮発性メモリのブロックと関連するコンテンツを処理する方法であって、該不揮発性メモリは、メモリシステムと関連付けられ、該方法は、
コンテンツの第１のセットを取得する工程であって、該コンテンツの第１のセットは、第１の論理ブロックの第１の論理グループと関連付けられ、該第１のグループは、該第１の論理ブロックと関連する第１の複数の論理ページを含み、該第１の論理ブロックは、第１の物理ブロックにマッピングされる、取得する工程と、
該コンテンツの第１のセットをメモリ領域に書き込む工程と、
該コンテンツの第１のセットを該メモリ領域から第２の物理ブロックの第１の物理グループに書き込む工程であって、該第１の物理グループは、該第２の物理ブロックと関連する第１の複数の物理ページを含む、書き込む工程と、
該第２の物理ブロックを該第１の論理ブロックにマッピングする工程と
を包含する、方法。
【請求項２】
前記第１の物理ブロックは、コンテンツの第２のセットを含み、前記方法は、
該コンテンツの第２のセットの少なくともいくつかを前記コンテンツの第１のセットを有する前記第２の物理ブロックに書き込む工程をさらに包含する、請求項１に記載の方法。
【請求項３】
前記コンテンツの第２のセットを前記第１の物理ブロックから消去する工程と、
該第１の物理ブロックと該第１の論理ブロックとのマッピングを実質的にはずす工程と
をさらに包含する、請求項２に記載の方法。
【請求項４】
前記コンテンツの第１のセットを前記メモリ領域から消去する工程をさらに包含する、請求項３に記載の方法。
【請求項５】
前記第１の物理ブロックは、コンテンツの第２のセットを含み、前記方法は、
該コンテンツの第２のセットを前記メモリ領域に書き込む工程をさらに包含する、請求項１に記載の方法。
【請求項６】
前記コンテンツの第１のセットを前記メモリ領域に書き込む工程は、前記メモリ領域における前記コンテンツの第２のセットの少なくともいくつかを上書きする工程を包含する、請求項５に記載の方法。
【請求項７】
前記メモリ領域は、ＲＡＭキャッシュである、請求項６に記載の方法。
【請求項８】
前記コンテンツの第１のセットは、前記第１の論理ブロックと関連する更新を含む、請求項１に記載の方法。
【請求項９】
コンテンツの第３のセットを取得する工程であって、前記コンテンツの第１のセットは、前記第１の論理ブロックの第２の論理グループと関連付けられ、該第２の論理グループは、該第１の論理ブロックと関連する第２の複数の論理ページを含む、取得する工程と、
該コンテンツの第３のセットを前記メモリ領域に書き込む工程と、
該コンテンツの第３のセットを該第２の物理ブロックの第２の物理グループに書き込む工程であって、該第２の物理グループは、該第２の物理ブロックと関連する第２の複数の物理ページを含む、工程と
をさらに包含する、請求項１に記載の方法。
【請求項１０】
前記第１の論理ブロックと関連する取得されるべきコンテンツのセットが実質的に他にない場合を判定する工程であって、取得されるべきコンテンツのセットが他にないと判定された場合、前記コンテンツの第１のセットおよび前記コンテンツの第３のセットが前記メモリ領域に書き込まれる、決定する工程をさらに包含する、請求項９に記載の方法。
【請求項１１】
前記第１の論理ブロックと関連する取得されるべきコンテンツのセットが実質的に他にない場合を判定する工程は、第２の論理ブロックが更新されるべき場合を判定する工程を包含する、請求項１０に記載の方法。
【請求項１２】
前記第２の論理ブロックが更新されるべきであると判定された場合、前記方法は、
該第２の物理ブロックを実質的に直ちに取得する工程と、
前記コンテンツの第１のセットおよび前記コンテンツの第３のセットを該第２の物理ブロックに実質的に直ちに書き込む工程と
をさらに包含する、請求項１０に記載の方法。
【請求項１３】
前記第２の物理ブロックを取得する工程は、該第２の物理ブロックを前記第１の論理ブロックにマッピングする工程を包含する、請求項１２に記載の方法。
【請求項１４】
コンテンツの前記第２のセットを前記第１の物理ブロックから消去する工程と、
該第１の物理ブロックと前記第１の論理ブロックとのマッピングを実質的にはずす工程と
をさらに包含する、請求項１３に記載の方法。
【請求項１５】
前記第２の物理ブロックを取得する工程と、
該第２の物理ブロックを前記第１の論理ブロックにマッピングする工程と
をさらに包含する、請求項１に記載の方法。
【請求項１６】
前記第１の物理ブロックは、前記コンテンツの第１のセットを収容するように構成される、請求項１に記載の方法。
【請求項１７】
前記メモリ領域は、第３の物理ブロックおよびＲＡＭキャッシュの１つである、請求項１に記載の方法。
【請求項１８】
前記不揮発性メモリは、ＮＡＮＤフラッシュメモリである、請求項１に記載の方法。
【請求項１９】
不揮発性メモリシステム内の第１の論理ブロックと関連する更新されたコンテンツを処理する方法であって、該第１の論理ブロックは、第１の物理ブロックにマッピングされ、該方法は、
該第１の論理ブロックと関連する第１の更新を受信する工程であって、該第１の更新は、該第１の論理ブロックの第１の論理グループへの更新であり、該第１の論理グループは、該第１の論理ブロックと関連する第１の複数の論理ページを含むように構成される、受信する工程と、
該第１の更新をキャッシュに記憶する工程と、
該キャッシュのコンテンツを第２の物理ブロックに記憶する場合を判定する工程であって、該キャッシュのコンテンツは、該第１の更新を含む、判定する工程と、
該キャッシュのコンテンツが該第２の物理ブロックに記憶されるべきであると判定された場合、該キャッシュのコンテンツを該第２の物理ブロックに記憶する工程であって、該キャッシュのコンテンツを記憶する工程は、該第１の更新を該第１の物理ブロックにおける第１の物理グループに記憶する工程を包含し、該第１の物理グループは、該第１の物理グループに含まれる第１の複数の物理ページを含む、記憶する工程と、
該キャッシュのコンテンツが該第２の物理ブロックに記憶された後に、該第２の物理ブロックを該第１の論理ブロックにマッピングする工程と、
該キャッシュのコンテンツが該第２の物理ブロックに記憶された後に、該第１の物理ブロックと該第１の論理ブロックとのマッピングをはずす工程と
を包含する、方法。
【請求項２０】
前記キャッシュのコンテンツを前記第２の物理ブロックに記憶する場合を判定する工程は、第２の論理ブロックが処理されるべき場合を判定する工程を包含し、該第２の論理ブロックが処理されるべきであると判定された場合、該キャッシュのコンテンツは、該第２の物理ブロックに記憶される、請求項１９に記載の方法。
【請求項２１】
前記第２の物理ブロックを取得する工程をさらに包含する、請求項１９に記載の方法。
【請求項２２】
前記キャッシュのコンテンツは、前記第１の物理ブロックと関連する少なくともいくつかのコンテンツを含む、請求項１９に記載の方法。
【請求項２３】
前記第１の物理ブロックのコンテンツを前記キャッシュにコピーする工程であって、前記第１の更新は該キャッシュに記憶され、該第１の更新は、該第１の物理ブロックと関連する該コピーされたコンテンツの少なくとも一部分を実質的に上書きする、コピーする工程をさらに包含する、請求項２２に記載の方法。
【請求項２４】
前記キャッシュは、ＲＡＭキャッシュである、請求項２３に記載の方法。
【請求項２５】
前記キャッシュのコンテンツを前記第２の物理ブロックに記憶する場合を判定する工程は、第２の論理ブロックが処理されるべき場合を判定する工程を包含し、該第２の論理ブロックが処理されるべきであると判定された場合、該キャッシュのコンテンツの少なくともいくつかが該第２の物理ブロックに記憶される、請求項１９に記載の方法。
【請求項２６】
前記第２の論理ブロックが処理されるべきであると判定された場合、前記第１の物理ブロックの前記コンテンツの少なくともいくつかを前記第２の物理ブロックに記憶する工程をさらに包含する、請求項２５に記載の方法。
【請求項２７】
前記キャッシュのコンテンツの少なくともいくつかが前記第２の物理ブロックに記憶された後で、前記第１の物理ブロックを消去する工程をさらに包含する、請求項２５に記載の方法。
【請求項２８】
前記キャッシュは、物理ブロックキャッシュである、請求項２５に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、米国特許仮出願第６０／４２１，９１０号（２００２年１０月２８日出願）の優先権を主張し、この出願は、参考のため、本明細書中にその全体が援用される。
【０００２】
（関連出願の相互参照）
本発明は、同時係属中の米国特許出願第１０／２８１，７３９号、第１０／２８１，８２３号、第１０／２８１，６７０号、第１０／２８１，８２４号、第１０／２８１，６３１号、第１０／２８１，８５５号、第１０／２８１，７６２号、第１０／２８１，６９６号、第１０／２８１，６２６号および第１０／２８１，８０４号、ならびに同時係属中の米国仮特許出願第６０／４２１，７２５号、第６０／４２１，９６５号、第６０／４２２，１６６号、第６０／４２１，７４６号および第６０／４２１，９１１号（各々、２００２年１０月２８日出願）に関し、これらの出願は、各々、参考のため、本明細書中にその全体が援用される。
【背景技術】
【０００３】
（発明の背景）
（１．発明の分野）
本発明は、概して、大容量デジタルデータ記憶システムに関する。より具体的には、本発明は、論理ブロックの論理ページと関連する更新されたコンテンツが、その論理ブロックに対応する物理ブロックに書き込まれる前にキャッシュされることを可能にするシステムおよび方法に関する。
【０００４】
（２．関連技術の説明）
フラッシュメモリ記憶システム等の不揮発性メモリシステムは、このようなメモリシステムの物理サイズが小さく、繰返し再プログラムされるという不揮発性メモリの能力のために益々使用されている。フラッシュメモリ記憶システムの小さい物理サイズは、益々普及しつつあるデバイスにおけるこのような記憶システムの使用を容易にする。フラッシュメモリ記憶システムを用いるデバイスは、デジタルカメラ、デジタルカムコーダ、デジタルミュージックプレーヤー、ハンドヘルドパーソナルコンピュータおよびグローバルポジショニングデバイスを含むがこれらに限定されない。フラッシュメモリ記憶システムに含まれる不揮発性メモリに繰り返し再プログラムする能力は、フラッシュメモリ記憶システムが使用かつ再使用されることを可能にする。
【０００５】
一般に、フラッシュメモリ記憶システムは、フラッシュメモリカードおよびフラッシュメモリチップセットを含み得る。フラッシュメモリチップセットは、通常、フラッシュメモリコンポーネントおよびコントローラコンポーネントを含む。通常、フラッシュメモリチップセットは、埋め込みシステムに組み入れられるように構成され得る。このようなアセンブリまたはホストシステムの製造業者は、通常、コンポーネントの形態のフラッシュメモリ、および他のコンポーネントを取得し、その後、フラッシュメモリおよび他のコンポーネントをホストシステムに組み入れる。
【０００６】
フラッシュメモリシステムの論理ブロックは、通常、物理ブロックにマッピングされる。例えば、３２個の論理ページを含む論理ブロックは、３２個の物理ページを含む物理ブロックにマッピングされ得る。論理ブロックと関連する、新しいか、または更新されたデータは、物理ブロックに書き込まれるべきであり、物理ブロックにデータを収容するための利用可能な空間がない場合、通常、予備物理ブロックが取得される。一旦予備物理ブロックが取得されると、新しいか、または更新されたデータは、もとの物理ブロックからのデータを有する予備物理ブロックにマージされる。
【０００７】
図１は、更新されたコンテンツを有する論理ブロック、および、更新されたコンテンツを収容するために取得され得る物理ブロックの概略図である。時間ｔ１において、論理ブロック「Ａ」２０２の第３の論理ページ２０４ｃに新しいデータが含まれるように、論理ブロック「Ａ」２０２が更新される。第３の論理ページ２０４ｃと関連する物理ブロック「Ａ］２１２の更新されたコンテンツが、物理ブロック「Ａ」２１２に書き込まれ得ないほどまでに一杯である場合、物理ブロック「Ａ」２１２は、新しい物理ブロック「Ｂ」２２２が取得され得る。物理ブロック「Ａ」２１２の実質的にすべての物理ページ「Ａ」２１２のコンテンツは、第３の物理ページ２１４ｃのコンテンツを除いて、第３の論理ページ２０４ｃと関連する更新されたコンテンツと共に物理ブロック「Ｂ」２２２に書き込まれ得る。その結果、物理ブロック「Ｂ」２２２は、時間ｔ１において論理ブロック「Ａ」２０２と関連する最新のデータを含む。一旦物理ブロック「Ｂ」２２２が書き込まれると、論理ブロック２０２は物理ブロック「Ｂ」２２２にマッピングされ、物理ブロック「Ａ」２１２は、通常、消去される。更新されたコンテンツを物理ブロックに書き込む１つの従来のプロセスが図２を参照して後述される。
【０００８】
時間ｔ２において、物理ブロック「Ｂ」２２２にマッピングされる論理ブロック「Ａ」２０２’が更新され、従って、第１の論理ページ２０４ａ’と関連するコンテンツは新しいか、または更新される。物理ブロック「Ｂ」２２２は、一杯になるか、または他の理由で、第１の論理ページ２０４ａ’に関連したコンテンツを含むように更新され得ないので、新しい物理ブロック「Ｃ」２３２が取得され得る。物理ブロック「Ｂ」２２２の実質的にすべての物理ページ２２４のコンテンツは、第１の物理ページ２２４ａを除いて、第１の論理ページ２１４ａと関連する更新されたコンテンツと共に物理ブロック「Ｃ」２３２に書き込まれ得、従って、物理ブロック「Ｃ」２３２は、時間ｔ２において論理ブロック「Ａ」２０２’と関連する最新データを含む。物理ブロック「Ｂ」２２２は、物理ブロック「Ｃ」２３２が論理ブロック「Ａ」２０２’に書き込みおよびマッピングされた後に、通常、消去される。
【０００９】
次に、図２を参照して、論理ブロックと関連するページの更新されたコンテンツを物理ブロックに書き込む１方法と関連する工程が記載される。論理ブロックと関連する更新されたページが物理ブロックに書き込まれることを可能にするプロセス２５０は、工程２５４にて開始し、ここで、例えば、論理ブロック「Ａ」と関連するページ「Ｘ」等のページが更新される。論理ブロック「Ａ」のページ「Ｘ」を更新する工程は、通常、ページ「Ｘ」と関連するコンテンツを変更する工程を包含する。一旦論理ブロック「Ａ」のページ「Ｘ」が更新されると、論理ブロック「Ａ」にマッピングされるか、そうでない場合、これと関連付けられるべき新しい物理ブロック「Ｂ」が、工程２５８において取得される。論理ブロック「Ａ」と現在関連付けられている物理ブロックは、ページ「Ｘ」の更新されたコンテンツが書き込まれ得る利用可能な空間を有しない場合、新しい物理ブロック「Ｂ」が取得され得る。当業者によって理解されるように、新しい物理ブロック「Ｂ」が予備ブロックプールから取得され得る。
【００１０】
工程２６２において、新しい物理ブロック「Ｂ」が取得された後、論理ブロック「Ａ」と現在関連付けられている物理ブロック「Ａ」の古いコンテンツは、論理ブロック「Ａ」のページ「Ｘ」の更新されたコンテンツと共に物理ブロック「Ｂ」にマージされる。換言すると、物理ブロック「Ａ」の実質的にすべてのコンテンツは、論理ブロック「Ａ」のページ「Ｘ」と関連したコンテンツを除いて、論理ブロック「Ａ」のページ「Ｘ」の更新されたコンテンツを有する論理ブロック「Ｂ」に書き込まれる。従って、物理ブロック「Ｂ」は、論理ブロック「Ａ」と関連する最新のコンテンツを含む。
【００１１】
コンテンツが物理ブロック「Ｂ」に書き込まれた後、物理ブロック「Ａ」は、工程２６６において消去され、工程２７０において、論理ブロック「Ａ」との関連がはずされる。一旦物理ブロック「Ａ」が消去され、かつ物理ブロック「Ａ」との関連がはずされると、物理ブロック「Ａ」は、通常、予備ブロックとして用いられるように利用可能であり、論理ブロックと関連する更新されたページが物理ブロックに書き込まれることを可能にするプロセスが完了する。
【発明の開示】
【発明が解決しようとする課題】
【００１２】
通常、物理ブロックにコンテンツを書き込むプロセス、および物理ブロックのコンテンツを消去するプロセスは時間がかかり、かつ、かなりの計算リソースを消費し得る。多くの場合、論理ブロックの論理ページが更新されるごとに１つの物理ブロックが書き込まれる一方で、もう一方の物理ブロックが消去される。従って、更新されるべきページが複数の場合、ブロックの消去が実質的に連続的に行われ得、新しいブロックが取得され得、かつ新しいブロックにデータが書き込まれ得る。ブロックを連続的に書き込む工程、およびブロックを消去する工程は、メモリシステムの性能を比較的著しく低下させ得る。
【００１３】
従って、必要とされるのは、論理ページの更新に応答して生じる多数の書き込みおよび消去プロセスが低減されることを可能にする方法および装置である。特に、所望されるのは、物理ブロックドメインにおいて更新を実行する能力を実質的に損なうことなく、論理ブロックドメインにおける更新に対応する物理ブロックドメインにおける更新を実行することと関連する書き込みおよび消去の量が低減されることを可能にするシステムである。
【課題を解決するための手段】
【００１４】
（発明の要旨）
本発明による方法は、不揮発性メモリのブロックと関連するコンテンツを処理する方法であって、該不揮発性メモリは、メモリシステムと関連付けられ、該方法は、コンテンツの第１のセットを取得する工程であって、該コンテンツの第１のセットは、第１の論理ブロックの第１の論理グループと関連付けられ、該第１のグループは、該第１の論理ブロックと関連する第１の複数の論理ページを含み、該第１の論理ブロックは、第１の物理ブロックにマッピングされる、取得する工程と、該コンテンツの第１のセットをメモリ領域に書き込む工程と、該コンテンツの第１のセットを該メモリ領域から第２の物理ブロックの第１の物理グループに書き込む工程であって、該第１の物理グループは、該第２の物理ブロックと関連する第１の複数の物理ページを含む、書き込む工程と、該第２の物理ブロックを該第１の論理ブロックにマッピングする工程とを包含し、それにより上記目的が達成される。
【００１５】
前記第１の物理ブロックは、コンテンツの第２のセットを含み、前記方法は、該コンテンツの第２のセットの少なくともいくつかを前記コンテンツの第１のセットを有する前記第２の物理ブロックに書き込む工程をさらに包含してもよい。
【００１６】
前記コンテンツの第２のセットを前記第１の物理ブロックから消去する工程と、該第１の物理ブロックと該第１の論理ブロックとのマッピングを実質的にはずす工程とをさらに包含してもよい。
【００１７】
前記コンテンツの第１のセットを前記メモリ領域から消去する工程をさらに包含してもよい。
【００１８】
前記第１の物理ブロックは、コンテンツの第２のセットを含み、前記方法は、該コンテンツの第２のセットを前記メモリ領域に書き込む工程をさらに包含してもよい。
【００１９】
前記コンテンツの第１のセットを前記メモリ領域に書き込む工程は、前記メモリ領域における前記コンテンツの第２のセットの少なくともいくつかを上書きする工程を包含してもよい。
【００２０】
前記メモリ領域は、ＲＡＭキャッシュであってもよい。
【００２１】
前記コンテンツの第１のセットは、前記第１の論理ブロックと関連する更新を含んでもよい。
【００２２】
コンテンツの第３のセットを取得する工程であって、前記コンテンツの第１のセットは、前記第１の論理ブロックの第２の論理グループと関連付けられ、該第２の論理グループは、該第１の論理ブロックと関連する第２の複数の論理ページを含む、取得する工程と、該コンテンツの第３のセットを前記メモリ領域に書き込む工程と、該コンテンツの第３のセットを該第２の物理ブロックの第２の物理グループに書き込む工程であって、該第２の物理グループは、該第２の物理ブロックと関連する第２の複数の物理ページを含む、工程とをさらに包含してもよい。
【００２３】
前記第１の論理ブロックと関連する取得されるべきコンテンツのセットが実質的に他にない場合を判定する工程であって、取得されるべきコンテンツのセットが他にないと判定された場合、前記コンテンツの第１のセットおよび前記コンテンツの第３のセットが前記メモリ領域に書き込まれる、決定する工程をさらに包含してもよい。
【００２４】
前記第１の論理ブロックと関連する取得されるべきコンテンツのセットが実質的に他にない場合を判定する工程は、第２の論理ブロックが更新されるべき場合を判定する工程を包含してもよい。
【００２５】
前記第２の論理ブロックが更新されるべきであると判定された場合、前記方法は、該第２の物理ブロックを実質的に直ちに取得する工程と、前記コンテンツの第１のセットおよび前記コンテンツの第３のセットを該第２の物理ブロックに実質的に直ちに書き込む工程とをさらに包含してもよい。
【００２６】
前記第２の物理ブロックを取得する工程は、該第２の物理ブロックを前記第１の論理ブロックにマッピングする工程を包含してもよい。
【００２７】
コンテンツの前記第２のセットを前記第１の物理ブロックから消去する工程と、該第１の物理ブロックと前記第１の論理ブロックとのマッピングを実質的にはずす工程とをさらに包含してもよい。
【００２８】
前記第２の物理ブロックを取得する工程と、該第２の物理ブロックを前記第１の論理ブロックにマッピングする工程とをさらに包含してもよい。
【００２９】
前記第１の物理ブロックは、前記コンテンツの第１のセットを収容するように構成されてもよい。
【００３０】
前記メモリ領域は、第３の物理ブロックおよびＲＡＭキャッシュの１つであってもよい。
【００３１】
前記不揮発性メモリは、ＮＡＮＤフラッシュメモリであってもよい。
【００３２】
不揮発性メモリシステム内の第１の論理ブロックと関連する更新されたコンテンツを処理する方法であって、該第１の論理ブロックは、第１の物理ブロックにマッピングされ、該方法は、該第１の論理ブロックと関連する第１の更新を受信する工程であって、該第１の更新は、該第１の論理ブロックの第１の論理グループへの更新であり、該第１の論理グループは、該第１の論理ブロックと関連する第１の複数の論理ページを含むように構成される、受信する工程と、該第１の更新をキャッシュに記憶する工程と、該キャッシュのコンテンツを第２の物理ブロックに記憶する場合を判定する工程であって、該キャッシュのコンテンツは、該第１の更新を含む、判定する工程と、該キャッシュのコンテンツが該第２の物理ブロックに記憶されるべきであると判定された場合、該キャッシュのコンテンツを該第２の物理ブロックに記憶する工程であって、該キャッシュのコンテンツを記憶する工程は、該第１の更新を該第１の物理ブロックにおける第１の物理グループに記憶する工程を包含し、該第１の物理グループは、該第１の物理グループに含まれる第１の複数の物理ページを含む、記憶する工程と、該キャッシュのコンテンツが該第２の物理ブロックに記憶された後に、該第２の物理ブロックを該第１の論理ブロックにマッピングする工程と、該キャッシュのコンテンツが該第２の物理ブロックに記憶された後に、該第１の物理ブロックと該第１の論理ブロックとのマッピングをはずす工程とを包含し、それにより上記目的が達成される。
【００３３】
前記キャッシュのコンテンツを前記第２の物理ブロックに記憶する場合を判定する工程は、第２の論理ブロックが処理されるべき場合を判定する工程を包含し、該第２の論理ブロックが処理されるべきであると判定された場合、該キャッシュのコンテンツは、該第２の物理ブロックに記憶されてもよい。
【００３４】
前記第２の物理ブロックを取得する工程をさらに包含してもよい。
【００３５】
前記キャッシュのコンテンツは、前記第１の物理ブロックと関連する少なくともいくつかのコンテンツを含んでもよい。
【００３６】
前記第１の物理ブロックのコンテンツを前記キャッシュにコピーする工程であって、前記第１の更新は該キャッシュに記憶され、該第１の更新は、該第１の物理ブロックと関連する該コピーされたコンテンツの少なくとも一部分を実質的に上書きする、コピーする工程をさらに包含してもよい。
【００３７】
前記キャッシュは、ＲＡＭキャッシュであってもよい。
【００３８】
前記キャッシュのコンテンツを前記第２の物理ブロックに記憶する場合を判定する工程は、第２の論理ブロックが処理されるべき場合を判定する工程を包含し、該第２の論理ブロックが処理されるべきであると判定された場合、該キャッシュのコンテンツの少なくともいくつかが該第２の物理ブロックに記憶されてもよい。
【００３９】
前記第２の論理ブロックが処理されるべきであると判定された場合、前記第１の物理ブロックの前記コンテンツの少なくともいくつかを前記第２の物理ブロックに記憶する工程をさらに包含してもよい。
【００４０】
前記キャッシュのコンテンツの少なくともいくつかが前記第２の物理ブロックに記憶された後で、前記第１の物理ブロックを消去する工程をさらに包含してもよい。
【００４１】
前記キャッシュは、物理ブロックキャッシュであってもよい。
【００４２】
本発明は、更新、または論理ブロックと関連する新しいデータをキャッシュするシステムおよび方法に関する。本発明の１局面によると、不揮発性メモリのブロックと関連するコンテンツを処理する方法は、第１の論理ブロックと関連する第１のグループの論理ページと関連付けられるコンテンツの第１のセットを取得する工程と、およびコンテンツの第１のセットをメモリ領域に書き込む工程とを包含する。コンテンツの第１のセットは、その後、メモリ領域から第１の論理ブロックにマッピングされる第２の物理ブロックと関連する第１のグループの物理ページに書き込まれる。１実施形態において、メモリ領域は、ＲＡＭキャッシュおよび物理ブロックキャッシュの１つである。
【００４３】
別の実施形態において、第１の物理ブロックは、コンテンツの第２のセットを含み、この方法は、コンテンツの第２のセットの少なくともいくつかを、コンテンツの第１のセットと共に第２の物理ブロックに書き込む工程を包含する。このような実施形態において、コンテンツの第２のセットは、第１の物理ブロックから消去され得、第１の物理ブロックはマッピングされ得ないか、または、第１の論理ブロックとの関連が実質的にはずされ得る。
【００４４】
論理ブロックと関連する、更新されたコンテンツであり得る新しいコンテンツをキャッシュすることは、論理ブロックと関連する、実質的にすべての新しいコンテンツが処理されるまで、新しいコンテンツが一時的に記憶されることを可能にする。処理されるべきすべての新しいコンテンツが処理された場合、論理ブロックにマッピングされるもとの物理ブロックの任意の適切なコンテンツと共に、新しいコンテンツの少なくともいくつかがコピーされ得、従って、論理ブロックと関連する最新のコンテンツが、新しい物理ブロックに書き込まれる。キャッシングプロセスを用いることによって、更新を処理することと関連する書き込み動作および読み出し動作の数、または論理ブロックと関連する新規の追加が、通常、低減され得る。従って、キャッシュプロセスを用いるメモリシステム全体の性能が強化され得る。
【００４５】
本発明の別の局面によると、不揮発性メモリシステム内の第１の論理ブロックと関連する更新されたコンテンツを処理する方法は、第１の論理ブロックと関連する第１の更新を受信する工程、第１の更新をキャッシュに記憶する工程と、キャッシュのコンテンツを第２の物理ブロックに記憶する場合を判定する工程とを包含する。この方法は、キャッシュのコンテンツが第２の物理ブロックに記憶されるべきであると判定された場合、第１の更新を含むキャッシュのコンテンツを第２の物理ブロックに記憶する工程をさらに包含する。第２の物理ブロックは、その後、第１の論理ブロックにマッピングされ得、第１の物理ブロックは、キャッシュのコンテンツが第２の物理ブロックに記憶された後、第１の物理ブロックとのマッピングがはずされ得る。
【００４６】
１実施形態において、キャッシュのコンテンツを第２の物理ブロックに記憶する場合を判定する工程は、第２の論理ブロックが処理されるべきであると判定する工程を包含する。第２の論理ブロックがプロセスされるべきであると判定された場合、キャッシュのコンテンツは、第２の物理ブロックに記憶される。別の実施形態において、キャッシュのコンテンツは、第１の物理ブロックと関連する少なくともいくつかのコンテンツを含む。
【００４７】
本発明のこれら、および他の利点は、以下の詳細な説明を読み、かつ図面の種々の図を検討することによって明らかになる。
【００４８】
本発明は、添付の図面と関連付けられた以下の説明を参照することによって最良に理解され得る。
【発明の効果】
【００４９】
本発明により、論理ページの更新に応答して生じる多数の書き込みおよび消去プロセスが低減されることを可能にする方法および装置が提供される。特に、所望されるのは、物理ブロックドメインにおいて更新を実行する能力を実質的に損なうことなく、論理ブロックドメインにおける更新に対応する物理ブロックドメインにおける更新を実行することと関連する書き込みおよび消去の量が低減されることを可能にするシステムである。
【発明を実施するための最良の形態】
【００５０】
（実施形態の詳細な説明）
物理ブロックを書き込みおよび物理ブロックを消去するプロセスは、相対的に時間がかかり、かつ、かなりの計算上のオーバーヘッドを用い得る。従って、書き込みおよび消去が比較的頻繁に行われる場合、物理ブロックを含むシステムの性能全体が不利な影響を受け得る。論理ブロックの論理ページが更新されるごとに論理ブロックにマッピングされる第１の物理ブロックが実質的に一杯である場合、第１の物理ブロックの更新およびいくつかのコンテンツが新しい物理ブロックに書き込まれ得る一方で、第１の物理ブロックが消去される。論理ブロックに関して複数のページが更新される場合、物理ブロックの消去が実質的に連続的に行われ、新しい物理ブロックが取得され、かつ新しい物理ブロックにデータが書き込まれ得る。物理ブロックが有効に連続的に書き込まれるか、または消去される場合、ブロックを含むメモリシステムの性能が低下され得る。
【００５１】
単一の論理ブロックにおける論理ページが連続的に更新される状態において、論理ブロックに対応する物理ブロックを書き込みおよび消去のために相当量の時間およびオーバーヘッドが費やされ得る。特に、論理ブロックにおける単一の論理ページが繰り返し更新され、論理ページへの更新ごとに「物理ブロックドメイン」において更新を実行する工程は、「論理ブロックドメイン」が連続的に変化する場合、物理ブロックドメインにおける更新が繰返し上書きされ得るため、特にむだであり得る。論理ブロックへの実質的にすべての更新が完了するまで物理ブロックの更新をしばらくの間待つことは、書き込み動作および消去動作の数が低減されることを可能にする。従って、メモリシステムの性能は改善され得る。
【００５２】
論理ブロック、または論理ブロックと関連する新しいデータへの更新をキャッシュするキャッシュプロセスの使用は、論理ブロックへの実質的にすべての更新または論理ブロックへの新しいデータの追加が終了するまで、更新がしばらくの間一時的に記憶されることを可能にする。少なくとも他の論理ブロックの処理が終わるまで、または、キャッシュが一杯の場合、論理ブロックへの更新データまたは新しいデータの追加がもはやなされないことが一旦有効に知られると、少なくともいくつかのキャッシュされた更新データおよび新しいデータが、論理ブロックへマッピングされるもとの物理ブロックの任意の適切なコンテンツと共にコピーされ得、従って、論理ブロックと関連する最新のコンテンツが新しい物理ブロックに書き込まれる。新しい物理ブロックが書き込まれた場合、もとの物理ブロックは消去され得る。その結果、複数の更新データまたは新規の追加を処理することと関連する書き込み動作および読み出し動作の数が低減され得る。本明細書中、および、後で議論を容易にするために、更新は、通常、新しいコンテンツを含む。同様に、ブロックにおけるコンテンツを更新する工程は、通常、ブロックに新しいコンテンツを追加する工程を含む。
【００５３】
ランダムアクセスメモリ（ＲＡＭ）等のメモリが利用可能であるようなシステムのソフトウェア要件である場合、キャッシュは、ＲＡＭキャッシュであり得る。ＲＡＭキャッシュの使用は、通常、書き込みプロセスが効率的に行われることを可能にする。しかしながら、１実施形態において、利用可能なＲＡＭの容量が不十分である場合、キャッシュは、ブロックキャッシュであり得る。すなわち、キャッシュは、物理ブロックであり得る。
【００５４】
フラッシュメモリシステム、または、より一般的には、不揮発性メモリは、ＲＡＭキャッシュ、または更新データが物理ブロックに書き込まれる前に更新されたデータを一時的にキャッシュするブロックキャッシュの使用から利益を受け得る。通常、フラッシュメモリシステムは、ホストシステムとの関連で用いられ、従って、ホストシステムは、フラッシュメモリシステムにデータを書き込み得るか、ここからデータを読み出し得る。しかしながら、いくつかのフラッシュメモリシステムは、図３ｃを参照して後述されるように、埋め込みフラッシュメモリ、および、埋め込みフラッシュメモリのコントローラとして実質的に機能するようなホスト上で実行するソフトウェアを含む。図３ａを参照して、例えば、コンパクトフラッシュ（Ｒ）メモリカード等の不揮発性メモリデバイスを含む一般的ホストシステムが記載される。ホストまたはコンピュータシステム１００は、通常、マイクロプロセッサ１０８、ランダムアクセスメモリ（ＲＡＭ）１１２、および入力／出力回路１１６が通信することを可能にするシステムバス１０４を含む。ホストシステム１００が、通常、例えば、ディスプレイデバイスおよびネットワークデバイス等の他のコンポーネント（例示の目的で図示されない）を含み得る。
【００５５】
一般的に、ホストシステム１００は、静止画像情報、オーディオ情報、およびビデオ画像情報を含むが、これらに限定されない情報を取り込むことができ得る。このような情報は、リアルタイムで取り込まれ得、かつ無線方式でホストシステム１００に転送され得る。ホストシステム１００は、実質的に、任意のシステムであり得るが、ホストシステム１００は、通常、デジタルカメラ、ビデオカメラ、セルラー通信デバイス、オーディオプレーヤまたはビデオプレーヤ等のシステムである。しかしながら、ホストシステム１００は、通常、データまたは情報を記憶し、かつデータまたは情報を取り出す、実質的に、任意のシステムであり得る。
【００５６】
ホストシステム１００は、さらに、データを取り込むだけか、またはデータを取り出すかのどちらかのシステムであり得る。すなわち、ホストシステム１００は、１実施形態において、データを記憶する専用システムであり得るか、またはホストシステム１００は、データを読み出す専用システムであり得る。例示的に、ホストシステム１００は、データを書き込むかまたは記憶するようにのみ構成されるメモリライタであり得る。あるいは、ホストシステム１００は、ホストシステム１００は、通常、データを読み込みまたは取り出し、データを取り込むことはしないように構成されたＭＰ３プレーヤ等のデバイスであり得る。
【００５７】
１実施形態において、除去可能な不揮発性メモリデバイスである不揮発性メモリデバイス１２０は、情報を記憶するためにバス１０４とインターフェース接続するように構成される。選択的インターフェースブロック１３０は、不揮発性メモリデバイス１２０がバス１０４と間接的にインターフェース接続することを可能にし得る。当業者によって理解されるように、入力／出力回路ブロック１１６は、存在する場合、バス１０４上に負荷がかかることを低減するために利用される。不揮発性メモリデバイス１２０は、不揮発性メモリ１２４および選択的メモリ制御システム１２８を含む。１実施形態において、不揮発性メモリデバイス１２０は、単一チップまたはダイ上にインプリメントされ得る。あるいは、不揮発性メモリデバイス１２０は、マルチチップモジュール上、または、チップセットを形成し得、かつ不揮発性メモリデバイス１２０として共に用いられ得る複数のディスクリートコンポーネント上にインプリメントされ得る。不揮発性メモリデバイス１２０の１実施形態において、図３ｂを参照してより詳細に後述される。
【００５８】
例えば、ＮＡＮＤフラッシュメモリといったフラッシュメモリ等の不揮発性メモリ１２４は、データが必要に応じてアクセスおよび読み出しされ得るようにデータを記憶するように構成される。不揮発性メモリ１２４内に記憶されたデータは、さらに、適切に消去され得るが、不揮発性メモリ１２４内の特定のデータは、消去可能ではあり得ないことが理解されるべきである。データを記憶、データを読み出し、およびデータを消去するプロセスは、通常、メモリ制御システム１２８によって制御されるか、または、メモリ制御システム１２８が存在しない場合、マイクロプロセッサ１０８により実行されるソフトウェアによって制御される。不揮発性メモリ１２４の動作は、従って、基本的に、不揮発性メモリ１２４のセクションを実質的に等しく消耗させることによって、不揮発性メモリ１２４の寿命が実質的に最大化されるように管理され得る。
【００５９】
不揮発性メモリデバイス１２０は、通常、選択的メモリ制御システム１２８、すなわちコントローラを含むことが記載された。多くの場合、不揮発性メモリデバイス１２０は、不揮発性メモリ１２４およびメモリ制御システム１２８、すなわちコントローラの機能の別個のチップを含み得る。例示的に、ＰＣカード、コンパクトフラッシュ（Ｒ）カード、マルチメディアカード、およびセキュアデジタルカードを含むが、これらに限定されない不揮発性メモリデバイスは、別々のチップ上にインプリメントされ得るコントローラを含む一方で、他の不揮発性メモリデバイスは、別々のチップ上でインプリメントされるコントローラを含み得ない。当業者によって理解されるように、不揮発性メモリデバイス１２０が別々のメモリおよびコントローラチップを含まない実施形態において、メモリおよびコントローラ機能は、単一チップに統合され得る。あるいは、上述のように、例えば、不揮発性メモリデバイス１２０がメモリコントローラ１２８を含まない実施形態において、メモリ制御システム１２８の機能性は、マイクロプロセッサ１０８によって提供され得る。
【００６０】
図３ｂを参照して、不揮発性メモリデバイス１２０は、本発明の実施形態により、より詳細に説明される。上述のように、不揮発性メモリデバイス１２０は、不揮発性メモリ１２４を含み、かつ、メモリ制御システム１２８を含み得る。１実施形態において、メモリ１２４および制御システム１２８、またはコントローラは、不揮発性メモリデバイス１２０の一次コンポーネントであり得るが、メモリ１２４は、埋め込みＮＡＮＤデバイスであり、例えば、不揮発性メモリデバイス１２０は、制御システム１２８を含み得ない。メモリ１２４は、半導体基板上に形成されるメモリセルのアレイであり得、ここで、データの１つ以上のビットは、２以上の電荷のレベルの１つをメモリセルの個々の記憶素子に記憶することによって個々のメモリセルに記憶される。電気的消去再書込み可能プログラム可能読み出し専用メモリ（ＥＥＰＲＯＭ）は、このようなシステムの一般的なタイプのメモリの１例である。
【００６１】
制御システム１２８が不揮発性メモリデバイス１２０内に存在する場合、この制御システム１２８は、バス１５を介してホストコンピュータ、またはデータを記憶するためにメモリシステムを用いる他のシステムに通信する。バス１５は、通常、図３ａのバス１０４の一部分である。制御システム１２８は、さらに、メモリ１２４の動作を制御し、これは、ホストにより提供されるデータを書き込み、ホストによってリクエストされるデータを読み出し、かつオペレーティングメモリ１２４における種々のハウスキーピング（ｈｏｕｓｅ  ｋｅｅｐｉｎｇ）機能を実行するメモリセルアレイ１１を含み得る。制御システム１２８は、通常、関連する不揮発性ソフトウェアメモリ、種々の論理回路等を有する多目的マイクロプロセッサを含む。多くの場合、１つ以上の状態マシンが、特定のルーチンの性能を制御するためにさらに含まれ得る。
【００６２】
メモリセルアレイ１１は、１実施形態において、制御システム１２８、またはアドレス復号化器１７を通じてマイクロプロセッサ１０８によってアドレス指定される。このような実施形態において、復号化器１７は、制御システム１２８によってアドレス指定されるメモリセルのグループにデータをプログラムし、そこからデータを読み出すか、またはそれを消去するために、正確な電圧をアレイ１１のゲートおよびビット線に印加する。さらなる回路１９は、セルのアドレス指定されたグループにプログラムされるデータに依存する、アレイの素子に印加された電圧を制御するプログラミングドライバを含む。回路１９は、センス増幅器、およびアドレス指定されたメモリセルのグループからデータを読み出すために必要とされる他の回路をさらに含む。アレイ１１にプログラムされるべきデータ、またはアレイ１１から最近読み出されたデータは、制御システム１２８と関連するバッファメモリ２１に記憶され得るが、データは、その代わりに、他のバッファメモリ（図示せず）に記憶され得る。制御システム１２８は、通常、コマンドおよび状態データ等を一時的に記憶するための種々のレジスタもまた含み得る。
【００６３】
アレイ１１は、多数のＢＬＯＣＫＳ０−Ｎメモリセルに分割されることが多い。フラッシュＥＥＰＲＯＭシステムについて一般的であるように、ブロックは、通常、消去の最小ユニットである。すなわち、各ブロックは、共に消去される最小数のメモリセルを含む。各ブロックは、通常、複数のページに分割される。当業者によって理解されるように、ページは、プログラミングの最小ユニットであり得る。すなわち、基本プログラミング動作は、最小限のメモリセルの１つのページにデータを書き込むか、またはここからデータを読み出し得る。１つ以上のデータのセクタは、各ページ内に記憶される。図３ｂに示されるように、１つのセクタは、ユーザデータおよびオーバーヘッドデータを含む。オーバーヘッドデータは、通常、セクタのユーザデータから計算されたエラー訂正コード（ＥＣＣ）を含む。制御システム１５の一部分２３は、データがアレイ１１にプログラムされる場合にＥＣＣを計算し、さらに、アレイ１１からデータが読み出される場合、ＥＣＣをチェックする。あるいは、ＥＣＣは、異なったページ、またはこれらが属するユーザデータとは異なるブロックに記憶される。
【００６４】
ユーザデータの１セクタは、通常、５１２バイトであり、磁気ディスクドライブにおけるセクタのサイズに対応する。オーバーヘッドデータは、通常、さらなる１６バイトであるが、オーバーヘッドデータは、通常、任意の数のバイトを含み得ることが理解されるべきである。データの１セクタは、最も一般的には、各ページに含まれるが、２つ以上のセクタは、その代わりにページを形成し得る。任意の数のページは、通常、ブロックを形成し得る。例示的に、ブロックは、８ページから５１２、１０２４またはそれ以上までのページから形成され得る。ブロックの数は、多くの場合、メモリシステムに所望のデータ記憶容量を提供するために選択される。アレイ１１は、通常、いくつかのサブアレイ（図示せず）に分割され、これらの各々は、ブロックの一部分を含み、サブアレイは、種々のメモリ動作の実行において並列処理の程度を高めるために、互いにいくらか独立して動作する。複数のサブアレイの使用の例は、米国特許第５，８９０，１９２号に記載され、この出願は、参考のため、その全体が本明細書中に援用される。
【００６５】
１実施形態において、不揮発性メモリは、例えば、ホストシステム等のシステムに埋め込まれる。図３ｃは、埋め込み不揮発性メモリを含むホストシステムの概略図である。ホストまたはコンピュータシステム１５０は、通常、マイクロプロセッサ１５８、ＲＡＭ１６２、および入力／出力回路１６６が、ホストシステム１５０の他のコンポーネント（図示せず）の中で通信することを可能にするシステムバス１５４を含む。例えば、フラッシュメモリ等の不揮発性メモリ１７４は、情報がホストシステム１５０内に記憶されることを可能にする。インターフェース１８０は、不揮発性メモリ１７４とバス１５４との間に提供され得、情報が不揮発性メモリ１７４から読み出されおよびこれに書き込まれることを可能にする。
【００６６】
不揮発性メモリ１７４は、ソフトウェア、および不揮発性メモリ１７４を制御するように構成されるファームウェアのどちらか、または両方を有効に実行するマイクロプロセッサ１５８によって管理され得る。すなわち、マイクロプロセッサ１５８は、コードデバイス（図示せず）、すなわち、ソフトウェアコードデバイスまたはファームウェアコードデバイスを動作させ得、これは、不揮発性メモリ１７４が制御されることを可能にする。ＣＰＵ内部マイクロプロセッサ１５８、別個のフラッシュＲＯＭ、または内部不揮発性メモリ１７４で実装されるフラッシュメモリであり得るこのようなコードデバイス（後述される）は、不揮発性メモリ１７４における物理ブロックがアドレス指定されることを可能にし得、かつ、情報が物理ブロックに記憶され、ここから読み出され、かつここから消去されることを可能にし得る。
【００６７】
論理ブロックと関連する新しいか、または更新されたデータが受信された場合、例えば、論理ブロックと関連する更新が、実質的に完了し、かつ、異なった論理ブロックと関連する更新が処理されるべきときまで、データは、ＲＡＭキャッシュにて一時的にキャッシュされ得る。図４ａは、論理ブロック、物理ブロック、および、本発明による実施形態による論理ブロックと関連する更新をキャッシュするように構成されるＲＡＭキャッシュの概略図である。例えば、ＮＡＮＤフラッシュメモリメモリコンポーネント等の不揮発性メモリコンポーネントに配置される物理ブロック「Ａ」４１０は、論理ブロック「Ａ」４００にマッピングされる。記載された実施形態において、物理ブロック「Ａ」４１０は、実質的に一杯であり、従って、論理ブロック「Ａ」４００と関連する更新されたか、または新しいコンテンツを受取り得ない。従って、論理ブロック「Ａ」４００の論理ページ４０２ｃのコンテンツが更新された場合、更新されたコンテンツ４０６は、物理ブロック「Ａ」４１０に記憶され得ない。その代わりに、更新されたコンテンツ４０６は、物理ブロック「Ａ」４１０がＲＡＭキャッシュ４２０にコピーまたはキャッシュされた後、ＲＡＭキャッシュ４２０に一時的に記憶されるか、そうでない場合、これに書き込まれ、すなわち、キャッシュされる。
【００６８】
更新されたコンテンツ４０６をＲＡＭキャッシュ４２０に書き込む工程は、ＲＡＭキャッシュ４２０に含まれる古いコンテンツを上書きする工程を包含することが理解されるべきである。例えば、更新されたコンテンツ４０６は、ＲＡＭキャッシュ４２０に予め記憶された古いデータコンテンツを上書きし得る。ＲＡＭキャッシュ４２０がメモリシステム全体の中の実質的にどこにでも配置され得る一方で、１実施形態において、ＲＡＭキャッシュ４２０は、不揮発性メモリコンポーネント、従って、物理ブロック「Ａ」４１０を有効に制御するコントローラと関連付けられ得る。
【００６９】
実質的に、任意の他のブロック（図示せず）が更新されるべき前に、論理ブロック「Ａ」４００に次の更新がなされる場合、次の更新は、さらに、ＲＡＭキャッシュ４２０に記憶され得る。図４ｂに示されるように、論理ブロック「Ａ」４００のページ４０２ｅと関連するコンテンツ４２６が更新された場合、更新されたコンテンツ４２６は、ＲＡＭ内の実質的に任意の適切な場所におけるＲＡＭキャッシュ４２０にキャッシュされ得る。論理ブロック「Ａ」４００と関連する更新の現在のセットが完了するまで、更新は、実質的に連続的にＲＡＭキャッシュ４２０に記憶され得る。論理ブロック「Ａ」４００への更新の現在のセットは、１実施形態において、論理ブロック「Ａ」４００への実質的にすべての更新であり得、これは、異なった論理ブロック（図示せず）と関連する更新が処理される前に処理され得る。
【００７０】
論理ブロック「Ａ」４００への更新の現在のセットがすべてＲＡＭキャッシュ４２０にキャッシュされた場合、例えば、更新されたコンテンツ４０６、４２６等の、ＲＡＭキャッシュ４２０に一時的に記憶された更新は、新しい物理ブロックに書き込まれるか、そうでない場合、これにコピーされ得る。図４ｃは、物理ブロックおよびＲＡＭキャッシュ、すなわち、図４ｂの物理ブロック４１０およびＲＡＭキャッシュ４２０の概略図であり、本発明の実施形態による新しい物理ブロックに書き込まれるべきコンテンツを伴う。
【００７１】
一般に、論理ブロック「Ａ」４００と関連する最新または最近のコンテンツは、物理ブロック「Ｂ」４４０に書き込まれ得る。論理ブロック「Ａ」４００と関連する最新のコンテンツは、実質的にすべてＲＡＭキャッシュ４２０内に含まれる。従って、ＲＡＭキャッシュ４２０のコンテンツを物理ブロック「Ｂ」４４０にコピーする工程は、物理ブロック「Ｂ」４４０が、本質的に物理ブロックドメイン内の論理ブロック「Ａ」４００のバージョンであることを可能にする。物理ブロック「Ｂ」４４０は、論理ブロック「Ａ」４００と関連する実質的にすべての現在の情報を含む場合、物理ブロック「Ａ」４１０は消去され得、かつ、論理ブロック「Ａ」４００との関連がはずされるか、またはマッピングがはずされ得る。その結果、論理ブロック「Ａ」４００は、通常、任意の所与の時間にて単一の物理ブロックのみにマッピングされる。従って、システム内の物理ブロックの使用は、物理ブロック「Ｂ」４４０が論理ブロック「Ａ」４００と関連付けられ、物理ブロック「Ａ」４１０と論理ブロック「Ａ」４００との関連がはずされ、かつ、予備ブロックプールに戻され得るのと実質的に同時に有効に節約される。
【００７２】
次に、図５を参照して、ＲＡＭキャッシュの使用を通じて物理ブロックドメインにおけるページのコンテンツを更新する１方法と関連する工程が、本発明の実施形態により記載される。ＲＡＭキャッシュを用いてページを一時的に記憶するプロセス５００は、工程５０４にて開始し、ここで、ホストは、論理ブロック「Ａ」の処理を開始する。例えば、不揮発性メモリは、インターフェース接続するシステム、または不揮発性メモリが埋め込まれるシステム等のホストは、論理ブロック「Ａ」内に含まれるページと関連する更新を処理する場合、論理ブロック「Ａ」の処理を開始し得る。
【００７３】
論理ブロック「Ａ」と関連する物理ブロック「Ａ」において利用可能な空間が実質的にない場合、物理ブロック「Ａ」は、更新を有効に収容することができない。従って、ＲＡＭキャッシュは、更新が新しい物理ブロックに記憶される前に更新をキャッシュするために用いられ得る。工程５０４から、プロセスフローは、工程５０５に進み、ここで、新しい物理ブロック「Ｂ」が取得される。新しい物理ブロック「Ｂ」が、例えば、予備ブロックのセット等から取得されて、マッピングされるか、そうでない場合、論理ブロック「Ａ」と関連付けられる。物理ブロック「Ａ」の実質的にすべてのコンテンツは、工程５０６においてＲＡＭキャッシュにキャッシュまたは書き込まれ得る。工程５０８において、論理ブロック「Ａ」に含まれるページへの更新は、例えば、コントローラ等によってＲＡＭキャッシュに記憶される。通常、更新は、更新されたデータまたは新しいデータを含み得、更新は、物理ブロック「Ａ」と関連するデータがＲＡＭキャッシュにて上書きされるようにし得る。上述のように、図４ａ〜図４ｃを参照して、ＲＡＭキャッシュは、ＲＡＭ、または更新データを一時的に記憶する際に用いるために利用可能である同様のメモリである。一旦論理ページへの更新がＲＡＭキャッシュに記憶されると、工程５１２において、例えば、論理ブロック「Ｂ」等の異なった論理ブロックの処理を開始する準備ができているか否かに関する判定が下される。換言すると、別のブロックが処理される前に、ＲＡＭキャッシュに記憶されることを必要とする論理ブロック「Ａ」と関連する任意のさらなる更新がなされるか否かが判定される。
【００７４】
工程５１２において、論理ブロック「Ｂ」の処理を開始するときではないと判定された場合、論理ブロック「Ａ」と関連するさらなる更新があることを示す。従って、プロセスフローは、工程５０８に戻り、ここで、論理ブロック「Ａ」と関連する更新がＲＡＭキャッシュに記憶される。あるいは、本質的に、異なった論理ブロックを処理するときではないと判定された場合、ＲＡＭキャッシュのコンテンツは、工程５１８において、物理ブロック「Ｂ」に書き込まれ、従って、論理ブロック「Ａ」と関連する最新のコンテンツが物理ブロック「Ｂ」にて記憶または書き込まれる。
【００７５】
一旦情報が物理ブロック「Ｂ」に記憶されると、物理ブロック「Ａ」は、工程５２４において消去される。ＲＡＭキャッシュに記憶される情報は上書きされ得るので、ＲＡＭキャッシュのコンテンツが物理ブロック「Ｂ」にマージされた後で、ＲＡＭキャッシュを消去することは、通常、必要とされないことが理解されるべきである。通常、別の物理ブロックのコンテンツが、ＲＡＭキャッシュに記憶された場合、ＲＡＭキャッシュの前のコンテンツが上書きされる。しかしながら、１実施形態において、一旦ＲＡＭキャッシュのコンテンツが物理ブロック「Ｂ」にマージされると、ＲＡＭキャッシュは消去され得る。
【００７６】
工程５２４において、物理ブロック「Ａ」が消去された後、工程５２８において、物理ブロック「Ａ」と論理ブロックとの関連がはずされる。物理ブロック「Ａ」と論理ブロック「Ａ」との関連をはずす工程は、マッピングを更新して、論理ブロック「Ａ」が物理ブロック「Ｂ」と関連付けられることを示す工程を包含し得る。物理ブロック「Ａ」と論理ブロック「Ａ」との関連をはずす工程の後で、論理ブロックと関連するページ更新を一時的に記憶するためにＲＡＭキャッシュを用いるプロセスが完了する。
【００７７】
更新を物理ブロックに書き込む前に、論理ブロックと関連する更新を一時的に記憶するためにＲＡＭキャッシュを用いることは有効であるが、メモリシステムは、ＲＡＭキャッシュとして用いるために利用可能なＲＡＭを常に有しているわけではあり得ない。通常、ＲＡＭキャッシュは、ブロックの実質的にすべてのコンテンツを収容し得るサイズである。従って、ＲＡＭキャッシュのサイズは、システム内の物理ブロックのサイズに依存して異なり得る。例えば、システム内の物理ブロックが、通常、約３２ページを含む場合、ＲＡＭキャッシュは、少なくとも約３２ページのブロックのコンテンツを収容するために十分な大きさのサイズであり得る。ソフトウェアの必要があり、物理ブロックを収容するために適切なサイズのＲＡＭキャッシュが利用可能でないというような場合、実際の物理ブロックは、その代わりに、情報が論理ブロックと関連する物理ブロックに書き込まれる前に、情報を一時的に保持するために用いられ得る。換言すると、ＲＡＭキャッシュである「キャッシュブロック」をインプリメントするのではなく、その代わりに物理ブロックがインプリメントされ得るキャッシュブロックをインプリメントする。
【００７８】
図６ａは、論理ブロック、物理ブロック、および、本発明の実施形態による論理ブロックと関連する更新をキャッシュするように構成される、例えば、物理ブロックキャッシュ等のキャッシュブロックの概略図である。不揮発性メモリコンポーネントの物理ブロック「Ａ」６１０が論理ブロック「Ａ」６００にマッピングされる。物理ブロック「Ａ」６１０が実質的に一杯であり、実際に、論理ブロック「Ａ」６００と関連して更新されたか、または新しいコンテンツを収容することができない場合、物理ブロックキャッシュ６１２は、更新されるか、または新しいコンテンツを一時的にキャッシュするために用いられ得る。
【００７９】
示されるように、論理ブロック６０の論理ページ６０２ｃは、更新されたコンテンツ６０６を含む。更新されたコンテンツ６０６が論理ページ６０２ｃと関連付けられるという表示が物理ブロックキャッシュ６１２に記憶されるか、または利用可能であり、従って更新されたコンテンツ６０６が論理ページ６０２ｃと関連付けられるとして識別され得る場合、更新されたコンテンツ６０６は、物理ブロックキャッシュ６１２内の、実質的にどこにでも記憶され得る。例示的に、更新されたコンテンツ６０６は、示されるように、物理ブロックキャッシュ６１２内の第１の利用可能なページにキャッシュされ得る。あるいは、１実施形態において、更新されたコンテンツ６０６は、論理ページ６０２ｃと対応する場所における物理ブロックキャッシュ６１２に書き込まれるか、またはキャッシュされ得る。
【００８０】
例えば、更新されたコンテンツ６１６が論理ページ６０２ｅと関連付けられる場合等、有効になされた次の更新がある場合、更新されたコンテンツ６１６は、さらに、物理ブロックキャッシュ６１２にキャッシュされ得る。例えば、異なった論理ブロック（図示せず）を処理するときである場合等、一旦論理ブロック「Ａ」６００と関連する実質的にすべての更新が、少なくとも一時的に完了すると、図６ｂを参照して説明されるように、更新６０６、６１６を含む、論理ブロック「Ａ」６００と関連する最新データが新しい物理ブロックに書き込まれ得る。いくつかの実施形態において、論理ブロック「Ａ」６００と関連する「最新データ」は、更新のみを含み得る一方で、示されるような実施形態を含む他の実施形態において、論理ブロック「Ａ」６００と関連する最新データは、更新６０６、６１６、および、更新６０６、６１６によって奪われなかった物理ブロック「Ａ」６１０のいくつかのコンテンツを含み得る。異なった論理ブロック（図示せず）を処理するときではない場合でさえ、物理ブロックキャッシュ６１２が一杯である場合、論理ブロック「Ａ」６００と関連する最新コンテンツを新しい物理ブロックに供給するために、マージ動作または同様の動作が行われることが理解されるべきである。新しい物理ブロックは、その後、「古い」物理ブロックになり得、論理ブロック「Ａ」６００と関連するさらなる更新が、新しい物理ブロックキャッシュ６１２にキャッシュされ得る。
【００８１】
図６ｂに示されるように、異なった論理ブロックが処理されるべきであると仮定すると、論理ブロック「Ａ」６００にマッピングされる新しい物理ブロック「Ｂ」６２０が取得され得る。新しい物理ブロック「Ｂ」６２０が必要に応じて取得され得るか、または、１実施形態において、論理ブロック「Ａ」６００と関連するキャッシュプロセスが最初に開始する場合に取得され得ることが理解されるべきである。一般に、論理ブロック「Ａ」６００と関連する最新または最近のコンテンツは、物理ブロック「Ｂ」６２０に書き込まれ得る。多くの場合、論理ブロック「Ａ」６００と関連する最新のコンテンツは、物理ブロック「Ａ」６１０および物理ブロックキャッシュ６１２の両方に含まれ得る。特に、論理ブロック「Ａ」６００の実質的に任意の更新されたコンテンツは、物理ブロックキャッシュ６１２に含まれる一方で、古いコンテンツ、または更新の現在のセットの結果として更新されなかったコンテンツが物理ブロック「Ａ」６１０に含まれる。例えば、より新規に更新されたコンテンツ（図示せず）が更新されたコンテンツ６０６を有効に奪い得る等、論理ブロック「Ａ」６００のいくつかの更新されたコンテンツは、論理ブロック「Ａ」６００内にも含まれる、より最近更新されたコンテンツによって奪われ得ることが理解されるべきである。
【００８２】
物理ブロック「Ａ」６１０および物理ブロックキャッシュ６１２のコンテンツが有効に組み合わされて、物理ブロック「Ｂ」６２０のページが、物理ブロックキャッシュ６１２から取得された更新されたコンテンツ６０６、６１６、および現在の物理ブロック「Ａ」６１０のコンテンツ、すなわち、物理ブロックキャッシュ６１２のコンテンツによって有効に奪われなかった物理ブロック「Ａ」６１０のコンテンツを含む。いくつかの場合、物理ブロック「Ａ」６１０の実質的にすべてのコンテンツは、物理ブロックキャッシュのコンテンツによって奪われ得、従って、物理ブロックのコンテンツは物理ブロック「Ｂ」６２０に含まれない。一旦物理ブロック「Ｂ」６２０が本質的に物理ブロックドメインにおける論理ブロック「Ａ」６００のバージョンであり、従って、論理ブロック「Ａ」６００と関連する実質的にすべての現在の情報を含むと、物理ブロック「Ａ」６１０が消去され得る。
【００８３】
図７は、本発明の実施形態による、物理ブロックキャッシュの使用により物理ブロックドメインにおけるページのコンテンツを更新する１方法と関連する工程を示すプロセスフローチャートである。論理ページの更新を一時的に記憶するためにブロックキャッシュを用いるプロセス６６０は、工程６７０において開始し、ここで、ホストは、論理ブロック「Ａ」の処理を開始する。換言すると、不揮発性メモリがインターフェース接続するシステム、または、不揮発性メモリが埋め込まれるシステムは、論理ブロック「Ａ」のコンテンツへの更新の処理を開始し得る。
【００８４】
ホストが論理ブロック「Ａ」の処理を開始した後、論理ブロック「Ａ」にマッピングされるべき新しい物理ブロック「Ｂ」が工程６７２において取得される。その後、論理ブロック「Ａ」に含まれるページへの更新が、コントローラによる例のように、工程６７４におけるブロックキャッシュに記憶される。図６ａおよび図６ｂを参照して述べられたように、論理ブロック「Ａ」にマッピングされる物理ブロック「Ａ」がページの更新を収容し得ない場合、ページの更新は、キャッシュに記憶され得る。一旦論理ブロック「Ａ」におけるページへの更新がブロックキャッシュに記憶されると、工程６７８において、ホストが例えば、論理ブロック「Ｂ」等の異なった論理ブロックの処理を開始する準備ができたか否かに関する判定が下される。すなわち、処理されることを必要とする論理ブロック「Ａ」と関連する任意のさらなる更新の有無が判定される。
【００８５】
工程６７８における判定が、論理ブロック「Ｂ」の処理を開始するときではないという場合、論理ブロック「Ａ」と関連するさらなる更新があることが示される。従って、プロセスフローは、工程６７４に戻り、ここで、論理ブロック「Ａ」と関連更新がブロックキャッシュに記憶される。他方、論理ブロック「Ｂ」の処理を開始するときでないと判定された場合、物理ブロック「Ａ」およびブロックキャッシュのコンテンツは、工程６８６において、物理ブロック「Ｂ」に組み合わされ得、従って、論理ブロック「Ａ」と関連する最新コンテンツは、物理ブロック「Ｂ」に書き込まれる。すなわち、物理ブロック「Ａ」のコンテンツ、および、ブロックキャッシュのコンテンツは、有効にマージされ、かつ、物理ブロック「Ｂ」に記憶され、従って、物理ブロック「Ｂ」は、論理ブロック「Ａ」のページと関連する現在のコンテンツを含む。いくつかの場合において、ブロックキャッシュのコンテンツは、物理ブロック「Ａ」のコンテンツを有効に奪い得、従って、実質的に、物理ブロック「Ａ」のコンテンツが物理ブロック「Ｂ」にコピーまたは記憶されない。
【００８６】
論理ブロック「Ａ」と関連する現在のコンテンツが物理ブロック「Ｂ」に書き込まれた後、物理ブロック「Ａ」は、工程６９０において消去される。その後、工程６９４において、ブロックキャッシュが消去される。一旦ブロックキャッシュが消去されると、工程６９８において、物理ブロック「Ａ」と論理ブロック「Ａ」との関連がはずされる。物理ブロック「Ａ」と論理ブロック「Ａ」との関連をはずす工程は、マッピングを更新する工程を包含し得、これは、論理ブロック「Ａ」が物理ブロック「Ｂ」と関連することを示す。物理ブロック「Ａ」と論理ブロック「Ａ」との関連がはずされた後、論理ブロックと関連するページの更新を一時的に記憶するためにブロックキャッシュを用いるプロセスが完了する。
【００８７】
一般に、ＲＡＭキャッシュまたはブロックキャッシュが利用されることを可能にすることと関連する機能性が、例えば、プログラムコードデバイスとして、またはホストシステムへのファームウェアとして等ソフトウェアに提供される。本発明の実施形態によるホストシステムに提供されるソフトウェアまたはファームウェアと関連する適切なシステムアーキテクチャの１実施形態が図８に示される。システムアーキテクチャ７００は、通常、アプリケーションインターフェースモジュール７０４、システムマネージャモジュール７０８、データマネージャモジュール７１２、データインテグリティマネージャ７１６およびデバイスマネージャならびにインターフェースモジュール７２０を含み得るがこれらに限定されない多様なモジュールを含む。一般に、システムアーキテクチャ７００は、ソフトウェアコードデバイス、または、例えば、図３ａのプロセッサ１０８等のプロセッサによってアクセスされ得るファームウェアを用いてインプリメントされ得る。
【００８８】
一般に、アプリケーションインターフェースモジュール７０４は、ホスト、オペレーティングシステムまたはユーザと直接的に通信するように構成され得る。アプリケーションインターフェースモジュール７０４は、さらに、システムマネージャモジュール７０８およびデータマネージャモジュール７１２とも通信する。ユーザがフラッシュメモリを読み出し、書き込みまたはフォーマット化することを所望する場合、ユーザは、オペレーティングシステムにリクエストを送信し、リクエストは、アプリケーションインターフェースモジュール７０４に渡される。アプリケーションインターフェースモジュール７０４は、リクエストに依存して、システムマネージャモジュール７０８またはデータマネージャモジュール７１２にリクエストを方向付ける。
【００８９】
システムマネージャモジュール７０８は、システム初期化サブモジュール７２４、消去カウントブロック管理サブモジュール７２６、および電力管理ブロックサブモジュール７３０を含む。システム初期化サブモジュール７２４は、通常、初期化リクエストが処理されることを可能にするように構成され、かつ、通常、消去管理サブモジュール７２６と通信する。
【００９０】
アプリケーションインターフェースモジュール７０４と通信することに加えて、システムマネージャモジュール７０８は、データマネージャモジュール７１２、ならびにデバイスマネージャおよびインターフェースモジュール７２０とも通信する。システムマネージャモジュール７０８およびアプリケーションインターフェースモジュール７０４の両方と通信するデータマネージャモジュール７１２は、ページまたはブロックマッピングを提供する機能性を含み得る。データマネージャモジュール７１２は、オペレーティングシステムおよびファイルシステムインターフェースレイヤと関連する機能性をさらに含み得る。
【００９１】
システムマネージャモジュール７０８、データマネージャ７１２およびデータインテグリティマネージャ７１６と通信するデバイスマネージャおよびインターフェースマネージャ７２０は、通常、フラッシュメモリインターフェースを提供し、かつ、例えば、Ｉ／Ｏインターフェース等のハードウェア抽象化と関連する機能性を含む。データインテグリティマネージャモジュール７１６は、機能性の中でもＥＣＣハンドリングを提供する。
【００９２】
本発明の１実施形態において、キャッシュが実質的にページ上で、実質的にページ単位で行われるようにブロックキャッシュを実行するのではなく、ブロックキャッシュは、グループ単位で実行され得る。同時係属中の米国特許出願第１０／２８１，８５５号に記載されるように、グループは、ブロック内の任意の数のページを含む。例えば、３２ページを含むブロックは、３２ページが、それぞれが８ページの４つのグループにグループ分けされるように構成され得る。一般に、ブロックにおけるグループの数、およびグループにおけるページの数は様々である。
【００９３】
グループ化スキーマが用いられた場合、更新データは、グループの一部分として物理ブロックに書き込まれ得る。図９ａは、論理ブロック、物理ブロック、および本発明の実施形態によるグループに分割される新しい物理ブロックの概略図である。論理ブロック「Ａ」９００は、論理グループ９０４に分割され、これは、次に、各々が、多数の論理ページ９０８を含む。論理ブロック「Ａ」９００は、４つの論理グループ９０４を含むことが示され、これらの各々が、４つのページ９０８を含み、論理ブロック「Ａ」９００に含まれるグループ９０４およびページ９０８の数は様々であり得る。特定のページ９０８が属するグループ９０４は、通常、各ページ９０８と関連するオーバーヘッドまたは冗長領域において通常識別される。
【００９４】
物理ブロック「Ｂ」９１２は、論理ブロック「Ａ」９００と関連付けられ、従って、物理ブロック「Ｂ」９１２は、論理ブロック「Ａ」９００と関連するデータまたはコンテンツを含む。示されるように、物理ページ（図示せず）を含む、物理ブロック「Ｂ」９１２の第１の物理グループ９１６ａは、論理グループ９０４ａと関連するデータ９２０ａを含む。同様に、第２の物理グループ９１６ｂは、論理グループ９０４ｂと関連するデータ９２０ｂを含み、第３の物理グループ９１６ｃは、論理グループ９０４ｃと関連するデータ９２０ｃを含み、第４の物理グループ９１６ｄは、論理グループ９０４ｄと関連するデータ９２０ｄを含む。
【００９５】
論理グループ９０４ｂと関連するデータが更新されるべきことを示す更新９２４が、例えば、ホストから受信された場合、更新９２４がデータ９２０ｂと有効にマージされ、かつ、新しい物理ブロック「Ｂ１」９２８における第１の利用可能なグループ９３２ａに記憶される。マージは、論理グループ９０４ｂの各ページと関連する最新コンテンツがグループ９３２ａに記憶されることを可能にするように行われる。更新されたグループと関連するデータおよびもとのデータのマージは、図１０を参照して後述される。図９ｂに示されるように、論理ブロック「Ａ」９００と関連する更新プロセスが完了した場合、物理ブロック「Ｂ１」９２８は、論理ブロック「Ａ」９００と関連する物理ブロックになり得、すなわち、物理ブロック「Ｂ１」９２８は、論理ブロック「Ａ」９００と関連するようになり得る一方で、物理ブロック「Ｂ」９１２は、論理ブロック「Ａ」９００との関連がはずされる。
【００９６】
物理ブロック「Ｂ」９１２と論理ブロック「Ａ」９００との関連がはずされる前に、物理ブロック「Ｂ」９１２のコンテンツは物理ブロック「Ｂ１」９２８にマージされていない。例えば、第１の論理グループ９０４ａと関連するデータ９２０ｂは、コピーされるか、そうでない場合、物理ブロック「Ｂ１」９２８の第２の物理グループ９３２ｂに提供される一方で、第３の論理グループ９０４ｃと関連するデータ９２０ｃは、第３の物理グループ９３２ｃに提供される。同様に、第４の論理グループ９０４ｄと関連するデータ９２０ｄは、第４の物理グループ９３２ｄに提供され得る。その結果、論理ブロック「Ａ」９００と関連する最新コンテンツが物理ブロック「Ｂ１」９２８に存在する。
【００９７】
物理ブロック「Ｂ１」９２８が論理ブロック「Ａ」９００と関連する物理ブロックになった後、論理ブロック「Ａ」９００にさらなる更新がなされ得る。図９ｃを参照して、予め更新され、かつ、グループ９０４に分割される論理ブロック「Ａ」９００へのさらなる更新を処理するプロセスが本発明の実施形態により記載される。論理グループ９０４ｂと関連する新しい更新９４０が処理されるべき場合、物理ブロック「Ｂ」９１２は、論理ブロックと関連する最新コンテンツをもはや含まず、物理ブロック「Ｂ１」９２８が有効に一杯であるので、更新９４０を記憶するために新しい物理ブロック「Ｂ２」９４４が取得され得る。特に、物理グループ９３２ａに記憶される論理グループ９０４ｂと関連するデータ９３６は、更新９４０とマージされ、かつ、物理ブロック「Ｂ２」９４４の第１の利用可能なグループ９４６ａに更新データ９４８として記憶される。更新データ９４８は、論理グループ９０４ｂ内のページと関連する最新コンテンツを含む。
【００９８】
一旦更新プロセスが完了すると、論理ブロック「Ａ」９００と関連する最新データは、物理ブロック「Ｂ２」９４４に提供され得る。例示的に、第１の論理グループ９０４ａと関連するデータ９２０ａが物理ブロック「Ｂ２」９４４の第２の物理グループ９４６ｂに提供され得、第３の論理グループ９０４ｃと関連するデータ９２０ｃが第３の物理グループ９４６ｃに提供され得、かつ、第４の論理グループ９０４ｄと関連するデータ９２０ｄは、第４の物理グループ９４６ｄに提供され得る。物理ブロック「Ｂ２」９４４が論理ブロック「Ａ」９００と関連する最新コンテンツを含む場合、物理ブロック「Ｂ２」９４４は、論理ブロック「Ａ」９００と関連付けられ得る一方で、物理ブロック「Ｂ１」９２８は、論理ブロック「Ａ」９００との関連がはずされ得る。
【００９９】
グループに分割される物理ブロックが、最初、コンテンツを有さない場合、論理ブロックと関連する新しいか、または更新されたデータが受信されると、ホストからの例について言えば、データのいくつかが、物理ブロックに記憶される他のデータを有効に奪う場合であっても、新しいか、または更新されたデータが物理ブロックに記憶され得る。図９ｄは、グループに分割された論理ブロックと、論理ブロックに関連付けられた更新データを含む論理ブロックと、本発明の実施形態による論理ブロックに関連付けられる最新のデータとを含む新しい物理ブロックの概略図である。コンテンツが論理ブロック「Ａ」９５０と関連させられるべきときに、論理ブロック「Ａ」９５０が、最初、コンテンツを含まない場合、そのコンテンツは、論理ブロック「Ａ」９５０と関連する物理ブロック「Ｂ」９５６に書き込まれ得る。示されるように、論理ブロック「Ａ」９５０の第２の論理グループ９５２ｂと関連する新しいデータ９６０ａが提供された場合、データ９６０ａは、物理ブロック「Ｂ」９５６の第１の利用可能な物理グループ９５８ａに記憶され得る。
【０１００】
第２の論理グループ９５２ｂと関連するデータが更新された場合、更新データ９６０ａ’は、例えば、第２の物理グループ９５８ｂ等の、次の利用可能な物理グループ９５８に記憶され得る。データ９６０ａ’が記憶された後、第３の論理グループ９５２ｃと関連する新しいデータ９６０ｂが受信された場合、データ９６０ｂは、次の利用可能な物理グループ９５８すなわち、第３の物理グループ９５８ｃに記憶される。最後に、第２の論理グループ９５２ｂと関連する更新データ９６０ａ’’が受信された場合、更新データ９６０ａ’’は、記載された実施形態において、物理ブロック「Ｂ」９５６において利用可能な最後の物理グループ９５８である第４の物理グループ９５８ｄに記憶される。
【０１０１】
一旦物理ブロック「Ｂ」９５６が一杯であると、すなわち、一旦物理ブロック「Ｂ」９５６内のすべてのグループがデータ９６０を含み、論理ブロック「Ａ」９５０と関連する新しいか、または更新されたデータが受信されると、通常、使用する新しい物理ブロックが取得される。例示的に、論理グループ９５２ｄの新しいデータ９６６が受信される場合、データ９６６を収容するための新しい物理ブロック「Ｂ１」９６２が取得され得る。データ９６６は、物理ブロック「Ｂ１」９６２における第１の利用可能なグループ９６４ａに記憶され得る。データ９６６が記憶された後、物理ブロック「Ｂ」９５６に含まれるデータ９６０は、物理ブロック「Ｂ２」９６２に記憶され得る。
【０１０２】
物理ブロック「Ｂ」９５６に含まれるデータ９６０を物理ブロック「Ｂ」９６２に記憶するために、グループ９５８は、「後から先（ｂｏｔｔｏｍ  ｆｉｒｓｔ）」の態様で、すなわち、グループ９５８ｄから開始してグループ９５８ａで終了するように、物理ブロック「Ｂ」９５６から読み出され得る。データが、論理グループ９５２ｂと関連するデータ９６０を含む物理グループ９５８ａ、９５８ｂ、９５８ｄ内の同じページオフセットにて存在する場合、物理グループ９５８ｄにおけるページオフセットにて含まれるデータは、最新データであると判断される。一般に、物理グループの数が高いほど、同グループのデータは新しい。一旦論理グループ９５２ｂと関連する最新データが識別されるか、または、一旦データ９６０ａ、データ９６０ａ’およびデータ９６０ａ’’が適切にマージされると、マージされ、論理グループ９５２ｂと関連する更新されたデータ９６８は、物理ブロック「Ｂ１」９６２内のグループ９６４ｂに記憶される。実質的に、物理ブロック「Ｂ」９５６内のただ１つのグループ９５８ｃが、論理グループ９５２ｄと関連するデータ９６０ｂを含むので、データ９６０ｂは、物理ブロック「Ｂ１」９６２の第３のグループ９６４ｃに提供され得る。グループ９６４ｄにはデータが記憶されないので、グループ９６４ｄは、例えば、論理グループ９５２ａ等の新しい論理グループと関連するデータを収容するために有効に利用可能である。
【０１０３】
上述のように、論理グループのための更新データが受信されると、そのグループのより古いデータが存在する場合、そのより古いデータは、適宜、更新データとマージされ得る。１実施形態において、更新データは、グループ内の実質的に各ページの更新データを含む場合、更新データは、すべてのより古いデータを有効に上書きする。しかしながら、更新データがグループ内のいくつかのページのみへの更新を含む場合、マージプロセスが行われ得る。次に図１０を参照して、もとのデータのグループを新しいデータのグループとマージする１方法が、本発明の実施形態により説明される。グループ「Ｘ」１０００は、８ページ１００２を含み得る。いくつかのページ１００２は、データを含み得る一方で、他のページ１００２は、実質的に空であり得る。示されるように、ページ１００２ａ、１００２ｄ、１００２ｅは、もとのデータを含む。
【０１０４】
グループ「Ｘ」１０００の新しいデータが、更新の形態でホストから受信された場合、新しいデータは、グループ更新１００６のページ１００８にて提供され得る。ページ１００８ａ〜ｄおよびページ１００８ｇは、グループ「Ｘ」１０００に含まれるデータとマージされるべき新しいか、または更新されたデータを含む。マージプロセスは、通常、グループ「Ｘ」１０００と関連する最新データを識別する工程を含む。新しいデータがもとのデータを有効に上書きするので、新しいデータは、グループ「Ｘ」１０００と関連する最新データであると考えられる。他方、もとのデータを有効に上書きする新しいデータがない場合、もとのデータは、最新データであると考えられ得る。
【０１０５】
グループ「Ｘ」１０００のもとのデータを更新１００６のグループとマージした結果を含むマージされたデータ１０１０は、ページ１０１２を含み、従って、グループ「Ｘ」１０００の第１のページ１００２に対応する第１のページ１０１２ａは、ページ１００８ａからの新しいデータを含む。なぜなら、ページ１００８ａからの新しいデータは、第１のページ１００２において記憶されるもとのデータを有効に奪うからである。本来、データがページ１００２ｂ、１００２ｃに含まれないので、ページ１００８ｂ、１００８ｃが提供された新しいデータは、ページ１０１２ｂ、１０１２ｃにそれぞれ書き込まれる。ページ１００８ｄに含まれるデータは、ページ１００２ｄに含まれるデータよりも最新であるので、ページ１０１２ｄは、ページ１００８ｄからの新しいデータを含む。更新１００６のグループは、ページ１００８ｅにおいて更新されたコンテンツが含まれなかったので、ページ１０１２ｅは、ページ１００２ｅからのもとのデータを含む。最後に、ページ１０１２ｇは、ページ１００８ｇに含まれる新しいデータを含む。一旦マージされたデータ１０１０が完了すると、マージされたデータ１０１０は、有効にグループ「Ｘ」１０００になる。
【０１０６】
一般に、グループへの更新が特定のページと関連するデータを含む場合、データは、生じたグループのマージされたデータ内の対応するページに含まれる。なぜなら、このデータは、特定のページと関連する唯一のデータであるか、またはそのデータは、特定のページと関連するもとのデータを上書きするからである。あるいは、所与のページのもとのデータが、ページを含むグループへの更新によって上書きされない場合、もとのデータは、グループの結果として生じるマージされたデータ内で対応するページに含まれる。
【０１０７】
図１１ａおよび図１１ｂは、本発明の実施形態によるグループに分割される論理ブロックと関連するコンテンツを更新する１方法と関連する工程を示すプロセスフローチャートである。コンテンツを更新するプロセス１１００は、工程１１０２にて開始し、ここで、物理ブロック「Ｂ」と関連する、論理ブロック「Ａ」のグループ「Ｘ」と関連するコンテンツは、例えば、ホストによって更新される。通常、論理グループ「Ｘ」は、２つ以上のページを含む。一旦論理グループ「Ａ」のグループ「Ｘ」と関連するコンテンツが更新されると、新しい物理ブロック「Ｂ１」が取得されて、工程１１０４において論理ブロック「Ａ」と関連付けられる。
【０１０８】
工程１１０６において、通常、物理ブロック「Ｂ」内のグループに記憶される、論理グループ「Ｘ」と関連する古いコンテンツは、論理グループ「Ｘ」の新しいか、または更新されたコンテンツとマージされ、かつ、物理ブロック「Ｂ１」に記憶される。マージされたコンテンツが物理ブロック「Ｂ１」に記憶された後、工程１１０８において、記憶されるべき論理ブロック「Ａ」のより新しいか、または更新されたコンテンツの有無に関する判定が下される。記憶されるべき、新しいか、または更新されたさらなるコンテンツがあると判定された場合、プロセスフローは、工程１１０５に戻り、ここで、論理ブロック「Ａ」内の異なった論理グループであり得る論理グループ「Ｘ」と関連する古いコンテンツは、新しいか、または更新されたコンテンツとマージされる。換言すると、新しいか、または更新されたコンテンツは、論理ブロック「Ａ」内の実質的に任意の論理グループと関連付けられ得、従って、このマージは、新しいか、または更新されたコンテンツと適切な論理グループとの間で生じる。
【０１０９】
あるいは、工程１１０８において、論理ブロック「Ａ」の新しいか、または更新されたコンテンツがもはや記憶されないことが判定された場合、工程１１１０において、物理ブロック「Ｂ」の物理ブロック「Ｂ１」にマージされなかったコンテンツ等の、残りのコンテンツを記憶するための十分な空間が物理ブロック「Ｂ１」内に有るか否かに関する判定が下される。すなわち、論理ブロック「Ａ」と関連する現在のコンテンツの全部の物理的表現（ｆｕｌｌ  ｐｈｙｓｉｃａｌ  ｒｅｐｒｅｓｅｎｔａｔｉｏｎ）が物理ブロック「Ｂ」に記憶され得るか否かが判定される。物理ブロック「Ｂ」の残りのコンテンツを物理ブロック「Ｂ１」に記憶するために、物理ブロック「Ｂ１」において利用可能なグループが十分にあると判定された場合、工程１１２０において、物理ブロック「Ｂ」からの残りのコンテンツは、物理ブロック「Ｂ１」にコピーされる。
【０１１０】
物理ブロック「Ｂ」からの残りのコンテンツが物理ブロック「Ｂ１」にコピーされた後、物理ブロック「Ｂ１」は、論理ブロック「Ａ」と関連する最新コンテンツまたは現在のコンテンツを含む。従って、物理ブロック「Ｂ」は、工程１１２２において消去され、かつ、工程１１２４において論理ブロック「Ａ」との関連がはずされる。一旦物理ブロック「Ｂ」と論理ブロック「Ａ」との関連が外されると、論理ブロックと関連するコンテンツを更新するプロセスが完了する。
【０１１１】
工程１１１０に戻って、物理ブロック「Ｂ」の残りのコンテンツを記憶するために物理ブロック「Ｂ１」において利用可能なグループが十分にないと判定された場合、新しい物理ブロックが取得されて、「論理ブロック「Ａ」と関連する最新コンテンツを含むことが示される。従って、プロセスフローは、工程１１１２に進み、ここで、新しい物理ブロック「Ｂ２」が論理ブロック「Ａ」と関連付けられるように割り当てられる。一旦新しい物理ブロック「Ｂ２」が取得されると、物理ブロック「Ｂ」および物理ブロック「Ｂ１」のコンテンツが工程１１１４において物理ブロック「Ｂ２」にマージされ、従って、論理ブロック「Ａ」と関連する最新コンテンツは物理ブロック「Ｂ２」に記憶される。一般に、物理ブロック「Ｂ」および物理ブロック「Ｂ１」のコンテンツをマージする工程は、物理ブロック「Ｂ」および物理ブロック「Ｂ１」内のグループのコンテンツをマージする工程を包含する。
【０１１２】
コンテンツが物理ブロック「Ｂ２」にマージされた後、物理ブロック「Ｂ１」は、工程１１１６において消去される。一旦物理ブロック「Ｂ１」が消去されると、物理ブロック「Ｂ１」と論理ブロック「Ａ」との関連は、工程１１１８においてはずされる。その後、プロセスフローは、工程１１２２に進み、ここで、物理ブロック「Ｂ」は消去される。
【０１１３】
上述のＲＡＭキャッシュは、論理グループと関連する更新のグループをキャッシュするために用いられ得る。ＲＡＭキャッシュの使用は、通常、論理ブロックと関連する更新プロセスの進行中に必要とされる消去プロセスの数を低減し得る。なぜなら、ＲＡＭキャッシュは、更新プロセスが完了するまで更新され、その時点にて、新しい物理ブロックが取得されて、論理ブロックと関連する最新データを記憶し、かつ古い物理ブロックが消去され得るからである。
【０１１４】
図１２ａを参照して、グループに有効に分割されるＲＡＭキャッシュの使用が、本発明の実施形態により説明される。論理ブロック「Ａ」１２００は、論理グループ１２０４に分割され、その後、各々が多数の論理ページ１２０８を含む。物理ブロック「Ｂ」１２１２は、論理ブロック「Ａ」１２００と関連付けられ、従って、物理ブロック「Ｂ」１２１２は、論理ブロック「Ａ」１２００と関連するデータまたはコンテンツを含む。示されるように、物理ブロック「Ｂ」１２１２の物理ページ（図示せず）を含む第１の物理グループ１２１６ａは、論理グループ１２０４ａと関連するデータ１２２０ａを含む。同様に、第２の物理グループ１２１６ｂは、論理グループ１２０４ｂと関連するデータ１２２０ｂを含み、第３の物理グループ１２１６ｃは、論理グループ１２０４ｃと関連するデータ１２２０ｃを含み、かつ、第４の物理グループ１２１６ｄは、論理グループ１２０４ｄと関連するデータ１２２０ｄを含む。
【０１１５】
ホストによる例のように、論理グループ１２０４ｂと関連するデータが更新されるべきであることを示す更新１２２４が受信されると、更新１２２４は、ＲＡＭキャッシュ１２２８内の第１の利用可能なグループ１２３２ａに記憶される。あるいは、１実施形態において、更新１２２４が第２の論理グループ１２０４ｂと関連付けられるので、更新１１２４は、第２のＲＡＭグループ１２３２ｂに記憶され得る。
【０１１６】
論理グループ１２０４ｂと関連するデータが再び更新されるべきことを示すさらなる更新が受信される場合、このような更新は、ＲＡＭキャッシュ１２２８内のグループ１２３２ａのコンテンツとマージされ得る。図１２ｂに示されるように、論理グループ１２０４ｂに対応する新しい更新１２３６が受信される場合、新しい更新１２３６におけるデータは、ＲＡＭグループ１２３２ａに予め記憶されたコンテンツとマージされ得、論理グループ１２０４ｂと関連するマージされ、更新されたデータ１２２４’を形成する。いくつかの例において、新しい更新されたデータ１２３６のいくつかは、マージプロセスの間、前の更新されたデータ、すなわち、図１２ａの新しいデータ１２２４を上書きし得る。なぜなら、ＲＡＭが上書きされ得るからである。
【０１１７】
論理グループ１２０４ｄの更新１２４０の場合、更新１２４０は、次の利用可能なＲＡＭページ１２３２ｂに記憶され得る。更新１２４０が更新１２３６の前に受信されるか、後に受信されるかに関わらず、更新１２３６は、依然として、グループ１２３２ａに組み込まれ、かつ更新１２４０はグループ１２３２ｂに記憶されることが理解されるべきである。
【０１１８】
一旦論理ブロック「Ａ」１２００になされるべき実質的にすべての更新が完了すると、すなわち、別の論理ブロックが更新されるべきときである場合、ＲＡＭキャッシュ１２２８のコンテンツおよび物理ブロック「Ｂ」１２１２のコンテンツが新しい物理ブロックにマージされ得る。図１２ｃは、本発明の実施形態により、ＲＡＭキャッシュ１２２８および物理ブロック「Ｂ」１２１２が新しい物理ブロックにマージされた後の、論理ブロック「Ａ」１２００および新しい物理ブロックの概略図である。一旦論理ブロック「Ａ」１２００になされるべき更新が完了したことが判定されると、物理ブロック「Ｂ１」１２３６が、通常、取得される。一旦物理ブロック「Ｂ１」１２３６が取得されると、図１０を参照して説明された例のように、ＲＡＭキャッシュ１２２８のグループ１２３２のコンテンツは、物理ブロック「Ｂ」１２１２のグループ１２２０のコンテンツとマージされ得、そして、物理ブロック「Ｂ１」１２３６に記憶され得る。
【０１１９】
論理グループ１２０４ｂと関連するデータがＲＡＭキャッシュ１２２８内で更新されたので、更新データ１２２４’は、論理グループ１２０４ｂと関連付けられたもとのデータを表すデータ１２２０ｂとマージされる。データ１２２０ｂは、論理グループ１２０４と関連するいくつかの現在のコンテンツを含み得るか、または、データ１２２０ｂは、更新されたデータ１２２４’からみて有効に古くなり（ｏｕｔｄａｔｅｄ）得ることが理解されるべきである。論理グループ１２０４ｂと関連する最新または現在のデータが物理ブロック「Ｂ１」１２３６において表されることを実質的に保証するために、更新されたデータ１２２４’およびデータ１２２０ｂからマージされたデータ１２４４を生成するためにマージプロセスが用いられる。同じ論理グループ１２０４と関連する同じページオフセットが、対応する物理グループ１２１６内にさらなるデータを含む場合、ＲＡＭキャッシュ１２２８のＲＡＭグループ１２３２に含まれるデータは、通常、マージされたデータに含まれる。すなわち、論理グループ１２０４内のページオフセットに対応するデータが、物理グループ１２１６およびＲＡＭグループ１２３２の両方に存在する場合、ＲＡＭグループ１２３２におけるデータは、マージされたデータに含まれる。なぜなら、ＲＡＭグループ１２３２におけるデータはより最近のものだからである。
【０１２０】
記載された実施形態において、論理グループ１２０４ａと関連するもとのデータであるデータ１２２０ａが物理グループ１２４０ａに記憶された後、マージされたデータ１２４４が第２の物理グループ１２４０ｂに記憶され得る。論理グループ１２０４ｃと関連するデータ１２２０ｃは、更新されなかったので、データ１２２０ｃは、物理グループ１２４０ｃに記憶され得る。論理グループ１２０４ｄが、物理ブロック「Ｂ」１２１２の物理グループ１２１６ｄに記憶される関連するもとのデータ１２２０ｄ、および、ＲＡＭキャッシュ１２２８のＲＡＭグループ１２３２ｂに記憶される、新しいか、または更新されたデータ１２４０を有する。従って、マージプロセスがデータ１２２０ｄおよび、新しいか、または更新されたデータ１２４０を用いて実行され、論理グループ１２０４ｄと関連する最新または現在のコンテンツを表すマージされたデータ１２４８を生成する。示されるように、マージされたデータ１２４８は、物理グループ１２４０ｄに記憶される。従って、物理ブロック「Ｂ」１２１２は、古くなり、かつ、消去され得、ならびに、論理ブロック「Ａ」１２００との関連がはずされる。なぜなら、物理ブロック「Ｂ１」１２３６は、ここで、論理ブロック「Ａ」１２００と関連する現在のコンテンツを含むからである。
【０１２１】
図１２ｄは、論理ブロック１２００、物理ブロック１２１２およびＲＡＭキャッシュ１２２８の概略図であり、ここで、ＲＡＭキャッシュのコンテンツが存在する。なぜなら、本発明の実施形態により、新しいデータを収容するための十分な空間が物理ブロック内にないからである。物理ブロック１２１２のグループ１２１６は、従って、グループ１２１６ａが論理グループ１２０４ｂと関連するもとのデータ１２２０ａを含み、グループ１２１６ｂが論理グループ１２０４ｂと関連する更新データ１２２０ａ’を含み、グループ１２１６ｃが、論理グループ１２０４ｃと関連するデータ１２２０ｃを含み、そして、グループ１２１６ｄが論理グループ１２０４ｄと関連するデータ１２２０ａ’’を含むというふうである。従って、データが書き込まれ得る利用可能なさらなるグループ１２１６がない物理ブロック１２１２は一杯である。
【０１２２】
論理グループ１２０４ｄに対応する新しいデータ１２４０が提供される場合、新しいデータ１２４０は、ＲＡＭキャッシュ１２２８における適切なＲＡＭグループ１２３２に記憶される。１実施形態において、適切なＲＡＭグループ１２３２は、ＲＡＭキャッシュ１２２８内で最初に利用可能なＲＡＭグループ１２３２ａであり得る。論理ブロック「Ａ」１２００になされるべきさらなる更新がないと判定された場合、論理ブロック「Ａ」１２００と関連付けられる新しい物理ブロック「Ｂ１」１２５２が取得され得る。
【０１２３】
物理ブロック「Ｂ１」１２５２内で、第１の物理グループ１２６０は、論理グループ１２０４ｂと関連するマージされたデータ１２６０を含む。マージされたデータ１２６０は、データ１２２０ａ、データ１２２０ａ’、およびデータ１２２０ａ’’をマージすることによって生成され、従って、論理グループ１２０４ｂと関連する最新データは、マージされたデータ１２６０において含まれる。論理グループ１２０４ｂと関連する最新データがマージされたデータ１２６０に含まれることを実質的に保証するために、グループ１２１６は、グループ１２１６ｄで開始し、かつグループ１２１６ａで終了して処理され、従って、最新データは、所与の論理グループと関連する特定のページオフセットに含まれる。
【０１２４】
一旦マージされたデータ１２６０が生成され、かつ、グループ１２５６ａに記憶されると、論理グループ１２０４ｃと関連するデータ１２２０ｃは、グループ１２５６ｂに記憶され、ＲＡＭキャッシュ１２２８に存在するデータ１２４０はグループ１２５６に記憶される。その結果、物理ブロック「Ｂ１」１２５２は、論理ブロック「Ａ」１２００と関連する最新データを含む。
【０１２５】
図１３を参照して、論理ブロックの論理グループと関連する更新を記憶するためにＲＡＭキャッシュを用いる１方法と関連する工程が本発明の実施形態により記載される。プロセス１３００は、工程１３０４にて開始し、ここで、ホストは、物理ブロック「Ｂ」と関連する論理ブロック「Ａ」を処理することを開始する。論理ブロック「Ａ」を処理する工程は、通常、論理ブロック「Ａ」内の論理グループの更新を処理する工程を包含する。
【０１２６】
工程１３０８において、ＲＡＭキャッシュはクリアされる。一旦ＲＡＭキャッシュがクリアされると、論理ブロック「Ａ」と関連する更新されたコンテンツは、工程１３１２において、ＲＡＭキャッシュに記憶される。特に、更新されたコンテンツは、更新されたコンテンツが関連付けられる論理グループに基づいて、適切なＲＡＭグループに記憶され得る。その後、工程１３１６において、記憶されるべき論理ブロック「Ａ」と関連する更新されたさらなるコンテンツの有無が判定される。記憶するさらなるコンテンツがあることが判定された場合、プロセスフローは工程１３１２に戻り、ここで、更新されたコンテンツは記憶される。
【０１２７】
あるいは、工程１３１２において、論理ブロック「Ａ」の更新されたさらなるコンテンツがないと判定された場合、新しい物理ブロック「Ｂ１」は、工程１３２０において、論理ブロック「Ａ」と関連付けられるように割り当てられる。換言すると、論理ブロック「Ａ」と関連する最新データが書き込まれるべき物理ブロック「Ｂ１」が取得される。一旦新しい物理ブロック「Ｂ１」が割り当てられると、ＲＡＭキャッシュのコンテンツおよび物理ブロック「Ｂ」のコンテンツは、工程１３２４において、物理ブロック「Ｂ１」に、適宜、マージされる。コンテンツをマージする工程は、通常、各論理グループと関連するコンテンツをマージする工程を含み得、従って、マージされたコンテンツは、各論理グループと関連する最新または現在のコンテンツである。
【０１２８】
一旦ＲＡＭキャッシュのコンテンツおよび物理ブロック「Ｂ」のコンテンツがマージされると、物理ブロック「Ｂ１」は、論理ブロック「Ａ」と関連する最新コンテンツを有効に含む。従って、工程１３２８において、物理ブロック「Ｂ」は消去され得る。物理ブロック「Ｂ」が消去された後、物理ブロック「Ｂ」と論理ブロック「Ａ」との関連がはずされ、かつ、更新を記憶するためにＲＡＭキャッシュを用いるプロセスが完了する。
【０１２９】
いくつかの場合、例えば、利用可能なＲＡＭがシステム内に十分にない場合の例のように、ＲＡＭキャッシュの使用は可能になり得ない。ＲＡＭキャッシュが用いられない場合、キャッシュブロックまたはブロックキャッシュが、その代わりに、論理ブロックと関連するグループへの更新を記憶するために用いられ得る。図１４ａは、グループに有効に分割され、かつ、本発明の実施形態により、グループに分割される論理ブロックと関連する更新を記憶する際に用いるために適切であるＲＡＭキャッシュの概略図である。論理ブロック「Ａ」１４００は、論理グループ１４０４に分割され、その後、各々は、多数の論理ページ１４０８を含む。物理ブロック「Ｂ」１４１２は、論理ブロック「Ａ」４２００と関連し、従って、物理ブロック「Ｂ」１４１２は、論理ブロック「Ａ」１４００と関連するデータを含む。物理ページ（図示せず）を含む物理ブロック「Ｂ」１４１２の第１の物理グループ１４１６ａは、論理グループ１４０４ａと関連するデータ１４２０ａを含む。同様に、第４の物理グループ１４１６ｄは、論理グループ１４０４ｂと関連する更新データ１４２０ｄを含む。第２の物理グループ１４１６ｂは、論理グループ１４０４ａと関連するデータ１４２０ｂを含み、第３の物理グループ１４１６ｃは、論理グループ１２０４ｃと関連するデータ１４２０ｃを含む。物理ブロック「Ｂ」１４１２は、論理グループ１４０４ｄと関連する任意のデータを含まない。
【０１３０】
論理グループ１４０４ｄと関連するデータを含む更新１４２４が受信され、更新１４２４は、物理ブロックキャッシュ１４２８内の第１の利用可能なグループ１４３２ａに記憶される。論理グループ１４０４ｄと関連するデータが再び更新されるべきことを示すさらなる更新が受信される場合、このような更新は、ブロックキャッシュ１４２８内の、次の利用可能なグループ１４３２ｂに記憶され得る。図１４ｂに示されるように、論理グループ１４０４ｄに対応する新しい更新１４２６が受信されると、新しい更新１４２６におけるデータは、グループ１４３２ｂに記憶される。１実施形態において、データ１４２４およびデータ１４２６の両方に含まれる論理グループ１４０４ｄと関連する特定の現在のデータがあり得ることが理解されるべきである。しかしながら、情報のページがデータ１４２６に存在すると、データ１４２４における対応するページが、さらに情報を含む場合、データ１４２６におけるその情報は、通常、論理グループ１４０４ｄと関連する最近のデータが必要とされる場合に用いられる。
【０１３１】
図１４ｃは、論理ブロック、すなわち、図１４ｂの論理ブロック「Ａ」１４００、ならびに、ブロックキャッシュのコンテンツ、および論理ブロックと関連するもとの物理ブロック（すなわち、図１４ｂのブロックキャッシュ１４２８および物理ブロック「Ｂ」１４１２）が、本発明の実施形態による新しい物理ブロックにマージされた後の新しい物理ブロックの概略図である。新しい物理ブロック「Ｂ１」１４４０が取得され得、論理ブロック「Ａ」１４００になされるべき更新が本質的にもはやない場合論理ブロック「Ａ」１４００と関連付けられる。論理ブロック「Ａ」１４００と関連する更新が完了した場合、ブロックキャッシュ１４２８内で利用可能なグループ１４３２ｃ、１４３２ｄが有効に空になり、かつ、新しいか、または異なった論理ブロック、論理ブロック「Ａ」１４００の論理グループと関連するデータを記憶するために後からさえも利用可能であることが理解されるべきである。
【０１３２】
図１０に示される例のように、一旦新しい物理ブロック「Ｂ１」１４４０が取得されると、論理グループ１４０４ｂと関連付けられるデータ１４２０ａおよびデータ１４２０ｄがマージされ、新しい物理ブロック「Ｂ１」１４４０のグループ１４４４ａに記憶され得るマージされたデータ１４４６を形成する。データ１４２０ｂは、グループ１４１６ｂからグループ１４４４ｂにコピーされ得、データ１４２０ｃは、グループ１４１６ｃからグループ１４４４ｃにコピーされ得る。
【０１３３】
ブロックキャッシュ１４２８は、論理グループ１４０４ｄと関連付けられるデータ１４２４およびデータ１４２６を含むので、データ１４２４およびデータ１４２６はマージされて、新しい物理ブロック「Ｂ１」１４４０の物理グループ１４４４ｄに記憶されるマージされたデータ１４４８を形成する。マージされたデータ１４４８は、通常、論理グループ１４０４ｄと関連する最新または現在のコンテンツを含む。一旦新しい物理ブロック「Ｂ１」１４４０が占有されると、新しい物理ブロック「Ｂ１」１４４０は、論理ブロック「Ａ」１４００と関連する最新または現在のコンテンツを有効に含む。従って、物理ブロック「Ｂ」１４１２は、実質的に古くなり、かつ、消去され得、および論理ブロック「Ａ」１４００との関連がはずされ得る。
【０１３４】
上述のように、ブロックキャッシュ１４２８は利用可能なグループ１４３２を含む。このグループは、次の更新プロセスの進行中に、異なった論理ブロックまたは論理ブロック「Ａ」１４００と関連する更新または新しいデータを記憶するために用いられ得る。図１４ｄを参照して、論理ブロック「Ａ」１４００と関連する新しい更新を記憶するための、ブロックキャッシュ１４２８内で利用可能なグループ１４３２ｃ、１４３２ｄの使用が本発明の実施形態により説明される。ブロックキャッシュ１４２８内のグループ１４３２ａ、１４３２ｂのコンテンツは、実質的に任意の論理ブロックと関連する古いコンテンツであり得、かつ、論理ブロック「Ａ」１４００と関連する古いコンテンツであることに限定されないことが理解されるべきである。通常、グループ１４３２ａ、１４３２ｂの古いコンテンツは、異なった論理ブロックと関連付けられる。
【０１３５】
論理グループ１４０４ｄと関連付けられる更新が受信される場合、更新のコンテンツは、論理グループ１４０４ｄに対応し、かつ、物理ブロック１４１２’の物理グループ１４１６ａ’に記憶される先行するデータ１４２２ａとマージされ得る。論理グループ１４０４ｄと関連付けられるマージされたデータ１４５０は、その後、ブロックキャッシュ１４２８内の第１の利用可能なグループ１４３２ｃに記憶され得る。同様に、論理グループ１４０４ｂと関連する更新が受信された場合、更新のコンテンツは、論理グループ１４０４ｂに対応する物理グループ１４１６ｃ’に記憶された前のデータ１４２２ｃとマージされ得る。
【０１３６】
論理ブロック「Ａ」１４００と関連するさらなる情報がキャッシュされる必要がある場合、ブロックキャッシュ１４２８が一杯なので、新しいブロックキャッシュが取得され得る。次に、図１４ｅを参照して、論理ブロック「Ａ」１４００と関連する更新を記憶する２つのブロックキャッシュの使用が本発明の実施形態により記載される。新しいか、または現在のブロックキャッシュ１４６４は、ブロックキャッシュ１４２８が一杯であり、かつ、論理ブロック「Ａ」１４００への更新が受信されると取得され得る。例えば、論理グループ１４０４ｃと関連する更新が受信された場合、更新と関連するデータは、グループ１４１６ｂ’に含まれるデータ１４２２ｂとマージされ得る。なぜなら、データ１４２２ｂは、さらに、論理グループ１４０４ｃと関連付けられるからである。一旦マージされたデータ１４６０が生成されると、マージされたデータ１４６０は、現在のブロックキャッシュ１４６４における第１の利用可能グループ１４６８に記憶され得る。
【０１３７】
一般に、現在のキャッシュブロック１４６４は、現在のキャッシュブロック１４６４が利用可能なグループをもはや有しなくなるまで、適宜、更新、またはマージされた更新を記憶するために用いられ得る。現在のキャッシュブロック１４６４が一杯であり、かつ、論理ブロック「Ａ」１４００と関連する更新がさらに必要とされる場合、新しい現在のキャッシュブロックが取得され得る。
【０１３８】
マージされたデータ１４６０が第１の利用可能なグループ１４６８に記憶された後、論理ブロック「Ａ」１４００と関連する更新がもはやない場合、物理ブロック「Ｂ」１４１２’およびブロックキャッシュ１４２８のコンテンツを現在のブロックキャッシュ１４６４にマージすることが可能か否か、または、物理ブロック「Ｂ」１４１２’、ブロックキャッシュ１４２８および現在のブロックキャッシュ１４６４のコンテンツが新しい物理ブロックにマージされるべきか否かが判定され得る。示されるような実施形態において、物理ブロック「Ｂ」１４１２’およびブロックキャッシュ１４２８のコンテンツを現在のブロックキャッシュ１４６４にマージすることが可能である。図１４ｆは、ブロックキャッシュ１４２８のコンテンツおよび物理ブロック「Ｂ」１４１２’のコンテンツが本発明の実施形態により現在のブロックキャッシュ１４６４にマージされた後の現在のブロックキャッシュ１４６４の概略図である。現在のブロックキャッシュは、論理グループ１４０４ｃと関連するデータ１４６０をすでに含む。ブロックキャッシュ１４２８が、論理グループ１４０４ｄと関連するマージされたデータ１４５０、および論理グループ１４０４ｂと関連するマージされたデータ１４５２をすでに含むので、すなわち、ブロックキャッシュ１４２８は、論理グループ１４０４ｂおよび１４０４ｃと関連する最新データをすでに含むので、マージされたデータ１４５０は、グループ１４６８ｂにコピーされ得る一方で、マージされたデータ１４５２は、グループ１４６８ｃにコピーされ得る。最後に、論理グループ１４０４ａと関連付けられ、かつ、物理ブロック「Ｂ」１４１２’のグループ１４１６ｄ’に含まれるもとのデータ１４２２ｄがグループ１４６８ｄにコピーされ得、これにより、論理ブロック「Ａ」１４００と関連する最新コンテンツを現在のブロックキャッシュ１４６４に有効に統合する。現在のブロックキャッシュ１４６４は、その後、論理ブロック「Ａ」１４００と関連付けられる新しい物理ブロックとしての論理ブロック「Ａ」１４００と関連付けられ得ることが理解されるべきである。
【０１３９】
次に、図１５ａおよび図１５ｂを参照して、更新されたコンテンツを、グループを用いるブロックキャッシュに記憶する１方法と関連する工程が、本発明の実施形態により記載される。プロセス１５００は、工程１５０４にて開始し、ここで、ホストは、例えば、論理ブロック「Ａ」の更新を処理する等、物理ブロック「Ｂ」と関連付けられる論理ブロック「Ａ」を処理することで開始する。工程１５０８において、論理ブロック「Ａ」と関連する現在のキャッシュブロックの有無、および、現在のキャッシュブロックにおいて利用可能な空間の有無が判定される。
【０１４０】
工程１５０８において、現在のキャッシュブロックがないか、または現在のキャッシュブロックが利用可能な空間を有さないかが判定された場合、新しい現在のキャッシュブロックが工程１５１２において取得される。一旦新しい現在のキャッシュブロックが取得されると、プロセスフローは工程１５１６に進み、ここで、物理ブロック「Ｂ」内の物理グループに記憶される所与の論理グループと関連するデータをマージすることによって生成されたコンテンツ、および、所与の論理グループと関連する新しいデータが現在のキャッシュブロックに記憶される。工程１５０８において、現在のキャッシュブロックが利用可能な空間を有すると判定された場合、プロセスフローは、工程１５０８から直接的に１５１６に進む。
【０１４１】
一旦マージされたコンテンツが現在のキャッシュブロックに記憶されると、工程１５２０において論理ブロック「Ａ」の更新された記憶するさらなるコンテンツの有無が判定される。記憶されるべき更新されたさらなるコンテンツがあると判定された場合、プロセスフローは、工程１５０８に戻り、ここで、現在のキャッシュブロックにおいて利用可能な空間の有無が判定される。あるいは、記憶されるべき論理ブロック「Ａ」の更新されたコンテンツがもはやないと判定された場合、工程１５２４において、現在のキャッシュブロックにおいて十分な空間があり、物理ブロック「Ｂ」に含まれる情報、および、実質的に任意のより古いか、または古くなったキャッシュブロックが現在のキャッシュブロックへのマージを実行するか否かに関する判定が下される。
【０１４２】
現在のキャッシュブロックへのマージを実行するための十分な空間があると判定された場合、現在のキャッシュブロックが、論理ブロック「Ａ」と関連する新しい物理ブロックになるために適切であり、従って、論理ブロック「Ａ」と関連する実質的にすべての現在のデータを含むために適切である。従って、工程１５３６において、物理ブロック「Ｂ」内のグループのコンテンツ、および任意のより古いキャッシュブロックにおけるグループのコンテンツが、現在のキャッシュブロックに、適宜、マージされ、従って、現在のキャッシュブロックが論理ブロック「Ａ」内のグループと関連する最新データを含む。
【０１４３】
現在のキャッシュブロックへのマージプロセスが完了した後、物理ブロック「Ｂ」および任意のより古いか、または古くなったキャッシュブロックが工程１５４０において消去される。一旦物理ブロック「Ｂ」が消去されると、物理ブロック「Ｂ」は、工程１５４４において、論理ブロック「Ａ」との関連がはずされ、マージされた現在のキャッシュブロックは、工程１５４８において、論理ブロック「Ａ」と関連付けられ、これにより、有効に論理ブロック「Ａ」と関連する物理ブロックになり、かつ、論理ブロック「Ａ」と関連する最新コンテンツを含む。一旦マージされたキャッシュブロックが論理ブロック「Ａ」と関連付けられると、ブロックキャッシュにおいて更新されたコンテンツを記憶するプロセスは完了する。
【０１４４】
工程１５２４を参照して、現在のキャッシュブロックへのマージが実行され得ない場合、現在のキャッシュブロックにおいて現在表現されていない論理グループと関連するデータを収容するために、現在のキャッシュブロック内に不十分な数の物理グループがあることを示す。従って、工程１５２８において、新しい物理ブロック「Ｂ１」は、論理ブロック「Ａ」に割り当てられる。その後、工程１５３２において、物理ブロック「Ｂ」内のグループのコンテンツは、すべてのキャッシュブロックにおけるグループのコンテンツと共に物理ブロック「Ｂ１」に、適宜、マージされる。工程１５３２から、プロセスフローは、工程１５４０に進み、ここで、物理ブロック「Ｂ」およびキャッシュブロックが消去される。工程１５４８において、マージされたキャッシュブロックは、論理ブロック「Ａ」と関連付けられ、物理ブロック「Ｂ１」が論理ブロック「Ａ」と関連付けられる場合に実行されないことが理解されるべきである。
【０１４５】
本発明のほんのわずかな実施形態が記載されたが、本発明は、本発明の主旨または範囲から逸脱することなく、多くの他の特定の形態で具体化され得ることが理解されるべきである。例示的に、更新されたデータを少なくとも一時的に記憶またはキャッシュするためのＲＡＭキャッシュおよび物理ブロックキャッシュの使用が記載されたが、更新されたデータをキャッシュするために、実質的に任意の適切なメモリが用いられ得る。換言すると、更新が論理ブロックにマップされる物理ブロックに書き込まれる前に、論理ブロックと関連する更新を記憶するキャッシュは、ＲＡＭキャッシュまたは物理ブロックキャッシュであることに限定されない。
【０１４６】
フラッシュメモリのサイズ、およびそのフラッシュメモリ内のブロックのサイズは様々である。ブロックのサイズは、一般的に、約３２ページを含むと記載されてきたが、ブロックは、任意の数のページ、または、より一般的には、ブロックを構成する任意の数のエレメントを含む。例えば、ブロックは、約６４エレメントまたはページを含み得る。その結果、システム内のブロックの数は様々であり得る。５１２Ｍｂ  ＮＡＮＤフラッシュメモリ内で、ブロックが約３２ページを含み、これらが、各々、約５１２バイトを含む場合、合計４０９６の物理ブロックがフラッシュメモリ内に存在する。あるいは、同じ５１２Ｍｂ  ＮＡＮＤフラッシュメモリ内で、各物理ブロックが約６４ページを含み、これらの各々が約５１２バイトを含む場合、合計２０４８の物理ブロックがフラッシュメモリ内に存在し得る。一般に、ページのサイズは、さらに多様である。
【０１４７】
本発明の種々の方法と関連する工程は多様であり得る。一般に、工程は、加算され、順序が変更され、および改変され得る。例示的に、物理ブロックキャッシュを用いる方法は、本発明の主旨または範囲から逸脱することなく、更新を物理ブロックキャッシュにキャッシュすることを継続する前に、物理ブロックキャッシュが一杯である場合を判定する工程、ならびに、物理ブロックキャッシュおよび物理ブロック「Ａ」のコンテンツを物理ブロック「Ｂ」に、適宜、組み合わせる工程を包含する。さらに、例えば、ＲＡＭキャッシュのコンテンツを物理ブロックにコピーするべきときである場合、または、古い物理ブロックおよび物理ブロックキャッシュのコンテンツをマージするべきときである場合、必要に応じて、新しい物理ブロックが取得され得る等、新しい物理ブロックは、必ずしも更新がキャッシュされる前に取得され得ない。従って、本実施例は、例示的であり、限定的でないと考えられるべきであり、本発明は、本明細書中に示された詳細に限定されるべきでなく、上掲の請求項の範囲内で改変され得る。
【０１４８】
論理ブロックと関連する更新または新しいデータをキャッシュする方法および装置が開示される。本発明の１局面によると、不揮発性メモリのブロックと関連するコンテンツを処理する方法は、第１の論理ブロックと関連する論理ページの第１のグループと関連付けられるコンテンツの第１のセットを取得する工程、および、コンテンツの第１のセットをメモリ領域に書き込む工程を包含する。コンテンツの第１のセットは、メモリ領域から、後で第１の論理ブロックにマッピングされる第２の物理ブロックと関連する物理ページの第１のグループに書き込まれる。１実施形態において、メモリ領域は、ＲＡＭキャッシュおよび物理ブロックキャッシュの１つである。
【図面の簡単な説明】
【０１４９】
【図１】図１は、更新されたコンテンツを収容するために取得され得る、更新されたコンテンツおよび物理ブロックを有する論理ブロックの概略図である。
【図２】図２は、論理ブロックと関連するページの更新されたコンテンツを物理ブロックに書き込む１方法と関連する工程を示すプロセスフローチャートである。
【図３ａ】図３ａは、不揮発性メモリを含む一般的ホストシステムの概略図である。
【図３ｂ】図３ｂは、例えば、図３ａのメモリデバイス１２０等のメモリデバイスの概略図である。
【図３ｃ】図３ｃは、埋め込み不揮発性メモリを含むホストシステムの概略図である。
【図４ａ】図４ａは、本発明の実施形態による、論理ブロック、物理ブロック、および、論理ブロックと関連する更新をキャッシュするように構成されるＲＡＭキャッシュの概略図である。
【図４ｂ】図４ｂは、論理ブロック、物理ブロックおよびＲＡＭキャッシュ、すなわち、図４ａの論理ブロック４００、物理ブロック４１０、およびＲＡＭキャッシュ４２０の概略図であり、ＲＡＭキャッシュは、本発明の実施形態による論理ブロックと関連する複数の更新をキャッシュした。
【図４ｃ】図４ｃは、物理ブロックおよびＲＡＭキャッシュ、すなわち、図４ｂの物理ブロック４１０およびＲＡＭキャッシュ４２０の概略図であり、本発明の実施形態による新しい物理ブロックに書き込まれるべきコンテンツを伴う。
【図５】図５は、本発明の実施形態による、ＲＡＭキャッシュを使用することにより物理ブロックドメインにおけるページのコンテンツを更新する１方法と関連する工程を示すプロセスフローチャートである。
【図６ａ】図６ａは、論理ブロック、物理ブロック、および、本発明の実施形態による論理ブロックと関連する更新をキャッシュするように構成される物理ブロックキャッシュの概略図である。
【図６ｂ】図６ｂは、物理ブロックおよび物理ブロックキャッシュ、すなわち、図６ａの物理ブロック６１０および物理ブロックキャッシュ６１２の概略図であり、本発明の実施形態による新しい物理ブロックにマージされるべきコンテンツを伴う。
【図７】図７は、本発明の実施形態による、物理ブロックキャッシュを使用することにより物理ブロックドメインにおけるページのコンテンツを更新する１方法と関連する工程を示すプロセスフローチャートである。
【図８】図８は、本発明の実施形態によるシステムのアーキテクチャのブロック図の概略図である。
【図９ａ】図９ａは、本発明の実施形態による、論理ブロック、物理ブロック、および、グループに分割される新しい物理ブロックの概略図である。
【図９ｂ】図９ｂは、論理ブロック、物理ブロックおよび新しい物理ブロック、すなわち、図９ａの論理ブロック９００、物理ブロック９１２、および新しい物理ブロック９２８の概略図であり、新しい物理ブロックは、本発明の実施形態による、論理ブロックと関連する最新のコンテンツを含む。
【図９ｃ】図９ｃは、論理ブロックおよび物理ブロック、すなわち、図９ｂの論理ブロック９００および物理ブロック９２８、ならびに新しい物理ブロックの概略図であり、新しい物理ブロックは、本発明の実施形態による論理ブロックと関連する最新のコンテンツを含む。
【図９ｄ】図９ｄは、グループに分割される論理ブロック、論理ブロックと関連する更新されたデータを含む物理ブロック、および、本発明の実施形態による論理ブロックと関連する最新のデータを含む新しい物理ブロックの概略図である。
【図１０】図１０は、本発明の１実施形態による、もとのデータのグループ、新しいか、または更新されたデータのグループ、ならびに、もとのデータ、および新しいか、または更新されたデータの混合の概略図である。
【図１１ａ】図１１ａは、本発明の実施形態による、グループに分割される論理ブロックと関連するコンテンツを更新する１方法と関連する工程を示すプロセスフローチャートである。
【図１１ｂ】図１１ｂは、本発明の実施形態による、グループに分割される論理ブロックと関連するコンテンツを更新する１方法と関連する工程を示すプロセスフローチャートである。
【図１２ａ】図１２ａは、本発明の実施形態による、グループに有効に分割され、かつ、グループに分割される論理ブロックと関連する更新を記憶する際に用いられるために適切であるＲＡＭキャッシュの概略図である。
【図１２ｂ】図１２ｂは、図１２ａのＲＡＭキャッシュ１２２８等のＲＡＭキャッシュの概略図であり、本発明の実施形態により、同じ論理グループへの繰返される更新が同じＲＡＭグループに記憶する。
【図１２ｃ】図１２ｃは、論理ブロック、すなわち、図１２ｂの論理ブロック「Ａ」１２００、および、ＲＡＭのコンテンツ、および論理ブロック、すなわち、図１２ｂのＲＡＭキャッシュ１２２８および物理ブロック「Ｂ」１２１２がと関連するもとの物理ブロックのコンテンツが、本発明の実施形態により新しい物理ブロックにマージされた後の新しい物理ブロックの概略図である。
【図１２ｄ】図１２ｄは、論理ブロック、物理ブロック、およびＲＡＭキャッシュの概略図であり、ここで、本発明の実施形態による新しいデータを収容するために、物理ブロック内に十分な空間がないので、ＲＡＭキャッシュのコンテンツは存在する。
【図１３】図１３は、本発明の実施形態による、論理ブロックの論理グループと関連する更新を記憶するためにＲＡＭキャッシュを用いる１方法を示すプロセスフローチャートである。
【図１４ａ】図１４ａは、本発明の実施形態による、グループに有効に分割され、かつ、グループに分割される論理ブロックと関連する更新を記憶する際に用いられるために適切であるブロックキャッシュの概略図である。
【図１４ｂ】図１４ｂは、例えば、図１４ａのブロックキャッシュ１４２８等の概略図であり、本発明の実施形態により、同じ論理グループへの更新が記憶される。
【図１４ｃ】図１４ｃは、論理ブロック、すなわち、図１４ｂの論理ブロック「Ａ」１４００、ならびに、論理ブロックと関連するブロックキャッシュおよびもとの物理ブロック、すなわち、図１４ｂのブロックキャッシュ１４２８および物理ブロック「Ｂ」１４１２のコンテンツが、本発明の実施形態により、新しい物理ブロックにマージされた後の新しい物理ブロックの概略図である。
【図１４ｄ】図１４ｄは、利用不可能なグループを含む、例えば、図１４ｃのブロックキャッシュ１４２８等のブロックキャッシュの概略図であり、例えば、１４ｃの論理ブロック「Ａ」１４００等の論理ブロックと関連する更新は、本発明の実施形態により記憶され得る。
【図１４ｅ】図１４ｅは、本発明の実施形態による、例えば、図１４ｄの論理ブロック「Ａ」１４００等の論理ブロックと関連する更新を記憶するために用いられ得る２つのブロックキャッシュの概略図である。
【図１４ｆ】図１４ｆは、例えば、図１４ｅのブロックキャッシュ１４２８および物理ブロック「Ｂ」１４１２’のコンテンツ等のブロックキャッシュのコンテンツおよび物理ブロックのコンテンツが、本発明の実施形態により現在のブロックキャッシュにマージされた後の、例えば、図１４ｅの現在のブロックキャッシュ１４６４等の現在のブロックキャッシュの概略図である。
【図１５ａ】図１５ａは、本発明の実施形態による、グループを用いるブロックキャッシュ内に更新されたコンテンツを記憶する１方法と関連する工程を示すプロセスフローチャートである。
【図１５ｂ】図１５ｂは、本発明の実施形態による、グループを用いるブロックキャッシュ内に更新されたコンテンツを記憶する１方法と関連する工程を示すプロセスフローチャートである。
【図１】
2004152302.tif 000002
【図２】
2004152302.tif 000003
【図３ａ】
2004152302.tif 000004
【図３ｂ】
2004152302.tif 000005
【図３ｃ】
2004152302.tif 000006
【図４ａ】
2004152302.tif 000007
【図４ｂ】
2004152302.tif 000008
【図４ｃ】
2004152302.tif 000009
【図５】
2004152302.tif 000010
【図６ａ】
2004152302.tif 000011
【図６ｂ】
2004152302.tif 000012
【図７】
2004152302.tif 000013
【図８】
2004152302.tif 000014
【図９ａ】
2004152302.tif 000015
【図９ｂ】
2004152302.tif 000016
【図９ｃ】
2004152302.tif 000017
【図９ｄ】
2004152302.tif 000018
【図１０】
2004152302.tif 000019
【図１１ａ】
2004152302.tif 000020
【図１１ｂ】
2004152302.tif 000021
【図１２ａ】
2004152302.tif 000022
【図１２ｂ】
2004152302.tif 000023
【図１２ｃ】
2004152302.tif 000024
【図１２ｄ】
2004152302.tif 000025
【図１３】
2004152302.tif 000026
【図１４ａ】
2004152302.tif 000027
【図１４ｂ】
2004152302.tif 000028
【図１４ｃ】
2004152302.tif 000029
【図１４ｄ】
2004152302.tif 000030
【図１４ｅ】
2004152302.tif 000031
【図１４ｆ】
2004152302.tif 000032
【図１５ａ】
2004152302.tif 000033
【図１５ｂ】
2004152302.tif 000034