(57)【要約】【課題】フラッシュ媒体などのページベースデータ記憶媒体を管理する方法、この方法を用いるシステム、およびこの方法を実行するためのコードを保持するコンピュータ可読記憶媒体を得る。【解決手段】各ページについて、そのページへの書き込みが中断された場合にデータが破損の危険にさらされる他のページの対応する危険ゾーンが識別される。新しいデータを書き込むためにページが選択されると、その危険ゾーンにおける書き込み済みページが、ログにコピーされる。必要に応じて、破損したデータは、ログからの対応するデータと取り替えられる。【選択図】図３
2008544345.tif 000002
【特許請求の範囲】
【請求項１】
複数のページを含むメモリの管理方法であって、
（ａ）各ページのそれぞれの危険ゾーンを識別するステップと、
（ｂ）新しいデータを書き込むために少なくとも１つの未書き込みページを選択するステップと、
（ｃ）少なくとも１つの書き込み済みページを自身の危険ゾーンが含む各前記未書き込みページのために、各前記書き込み済みページをログにコピーするステップと、
を含む方法。
【請求項２】
（ｄ）前記新しいデータを前記少なくとも１つの未書き込みページに書き込むステップをさらに含む、請求項１に記載の方法。
【請求項３】
前記新しいデータが２ページ以上にわたる場合に、前記書き込みがほぼ同時に行われる、請求項２に記載の方法。
【請求項４】
前記コピーステップおよび前記書き込みステップが、ほぼ同時に行われる、請求項２に記載の方法。
【請求項５】
（ｅ）少なくとも１つの書き込み済みページに格納されたデータが破損しているかどうかをチェックするステップと、
（ｆ）前記データが破損している場合には、前記データを前記ログからの対応するデータと取り替えるステップと、
をさらに含む、請求項２に記載の方法。
【請求項６】
前記チェックステップが誤り検出符号を用いて行われる、請求項５に記載の方法。
【請求項７】
前記チェックステップおよび前記取り替えステップが、メモリを含むシステムが電源投入されるときに行われる、請求項５に記載の方法。
【請求項８】
未書き込みページに書き込まれる前記新しいデータが、前記未書き込みページの前記危険ゾーンにおける全ての書き込み済みページが前記ログにコピーされて初めて、前記未書き込みページに書き込まれる請求項２に記載の方法であって、前記方法が、前記ログにコピーされる各書き込み済みページのために、
（ｅ）対応するフラグを設定するステップと、
（ｆ）前記各書き込み済みページを自身の危険ゾーンが含む前記少なくとも１つの未書き込みページに書き込まれることになる前記新しいデータが、前記各書き込み済みページを自身の危険ゾーンが含む全ての前記少なくとも１つの未書き込みページに書き込まれた後で、前記対応するフラグをクリアするステップと、
をさらに含む方法。
【請求項９】
（ｇ）設定される各前記フラグについて、前記各フラグに対応する前記書き込み済みページに格納されたデータを、前記ログからの対応するデータと取り替えるステップをさらに含む、請求項８に記載の方法。
【請求項１０】
前記取り替えが、前記メモリを含むシステムが電源投入されるときに行われる、請求項９に記載の方法。
【請求項１１】
前記新しいデータが２ページ以上にわたる場合には、前記選択された未書き込みページが順次的に書き込まれる、請求項２に記載の方法。
【請求項１２】
前記新しいデータが２ページ以上にわたる場合には、前記選択された未書き込みページがランダムな順序で書き込まれる、請求項２に記載の方法。
【請求項１３】
前記コピーステップおよび前記書き込みステップが、それぞれ異なる書き込みモードを用いて行われる、請求項２に記載の方法。
【請求項１４】
前記コピーステップの前記書き込みモードが、前記書き込みステップの前記書き込みモードより、メモリのセルに少数のビットを書き込む、請求項１３に記載の方法。
【請求項１５】
全ての前記危険ゾーンが等しいページ数を含む、請求項１に記載の方法。
【請求項１６】
各前記危険ゾーンが１ページを含む、請求項１５に記載の方法。
【請求項１７】
少なくとも２つの前記危険ゾーンが、異なるページ数を含む、請求項１に記載の方法。
【請求項１８】
（ａ）複数のページを含むデータ記憶媒体と、
（ｂ）ログと、
（ｃ）（ｉ）前記複数のページにおける各ページのそれぞれの危険ゾーンを識別するステップと、
（ｉｉ）前記新しいデータを書き込むために、前記複数のページの少なくとも１つの未書き込みページを選択するステップと、
（ｉｉｉ）前記複数のページの少なくとも１つの書き込みページを自身の危険ゾーンが含む各前記未書き込み済みページのために、各前記書き込み済みページを前記ログにコピーするステップと、を含むステップによって、前記複数のページに新しいデータを書き込むためのコントローラと、
を含むデータ記憶システム。
【請求項１９】
前記データ記憶媒体が不揮発性である、請求項１８に記載のデータ記憶システム。
【請求項２０】
前記データ記憶媒体がフラッシュメモリである、請求項１９に記載のデータ記憶システム。
【請求項２１】
前記フラッシュメモリが複数のマルチレベルセルを含む、請求項２０に記載のデータ記憶システム。
【請求項２２】
前記フラッシュメモリが、複数のブロックの各ブロックが前記複数のページのそれぞれのサブ複数を含むように、前記複数のブロックを含み、前記コントローラが、前記新しいデータを、各前記ブロックの前記ページに順次的にのみ書き込む、請求項２０に記載のデータ記憶システム。
【請求項２３】
前記フラッシュメモリが、複数のブロックの各ブロックが前記複数のページのそれぞれのサブ複数を含むように、前記複数のブロックを含み、前記コントローラが、前記新しいデータを、各前記ブロックの前記ページにランダムな順序で書き込む、請求項２０に記載のデータ記憶システム。
【請求項２４】
前記ログが、前記データ記憶媒体の一部である、請求項１８に記載のデータ記憶システム。
【請求項２５】
前記コントローラが、
（ｉｖ）前記複数のページの前記少なくとも１つの未書き込みページに前記新しいデータを書き込むステップ、
をさらに含むステップによって、前記複数のページに前記新しいデータを書き込む、請求項１８に記載のデータ記憶システム。
【請求項２６】
前記ログへの前記コピーステップおよび前記少なくとも１つの未書き込みページへの前記書き込みステップが、それぞれ異なる書き込みモードを用いて行われる、請求項２５に記載のデータ記憶システム。
【請求項２７】
前記ログへの前記コピーステップの前記書き込みモードが、前記少なくとも１つの未書き込みページへの前記書き込みステップの前記書き込みモードより、前記データ記憶媒体のセルに少数のビットを書き込む、請求項２６に記載のデータ記憶システム。
【請求項２８】
コンピュータ可読コードを自身に埋め込んだコンピュータ可読記憶媒体であって、前記コンピュータ可読コードが、データ記憶媒体の複数のページの少なくとも１つに新しいデータを書き込むためのものであり、前記コンピュータ可読コードが、
（ａ）各ページのそれぞれの危険ゾーンを識別するためのプログラムコードと、
（ｂ）新しいデータを書き込むために少なくとも１つの未書き込みページを選択するためのプログラムコードと、
（ｃ）少なくとも１つの書き込み済みページを自身の危険ゾーンが含む各前記未書き込みページのために、各前記書き込み済みページをログにコピーするためのプログラムコードと、
を含むコンピュータ可読記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、フラッシュメモリの管理方法に関し、特に、電力が不意に遮断された場合にデータ破損に強い、マルチレベルセルフラッシュメモリの管理方法に関する。
【背景技術】
【０００２】
フラッシュメモリは、ＥＥＰＲＯＭ（電気的消去可能プログラム可能読み出し専用メモリ）不揮発性メモリ型である。図１Ａは、一般的なフラッシュベースデータ記憶装置１０の高レベル概略ブロック図であるが、この装置１０は、１つまたは複数のＮＡＮＤフラッシュ媒体１２にデータを格納するためにホスト装置（図示せず）によって用いられる。装置１０の動作は、ランダムアクセスメモリ（ＲＡＭ）１６および補助不揮発性メモリ１８の助けを借りて、マイクロプロセッサベースコントローラ１４によって制御される。このために、フラッシュ装置１０およびホストシステムは、フラッシュ装置１０の通信ポート２０を介して通信する。典型的には、磁気ハードディスクなどのブロックメモリ装置へ向けて自身のオペレーティングシステムが適応されているホスト装置との後方互換性のために、フラッシュ装置１０は、米国特許公報５，４０４，４８５号明細書および米国特許公報５，９３７，４２５号明細書においてバン（Ｂａｎ）が教示する方法などのフラッシュ管理方法を実行する補助不揮発性メモリ１８に格納されたファームウェアを用いて、ブロックメモリ装置をエミュレートする。またこれらの特許の両方とも、本明細書に完全に述べられているかのように、参照により全ての目的のために組み込まれている。装置１０の構成要素は、共通ハウジング１５に共に収容される。
【０００３】
データを格納するためにＮＡＮＤフラッシュ媒体を用いる他の装置が知られている。図１Ｂは、パーソナルコンピュータ１０’を示すが、このコンピュータ１０’では、長期的な不揮発性データ記憶のための磁気ハードディスクに加えてまたは代替品としてＮＡＮＤフラッシュ媒体１２が用いられる。ここで、コントローラ１４は、パーソナルコンピュータ１０’の中央処理装置を表わす。ここで、補助不揮発性メモリ１８は、パーソナルコンピュータ１０’の他の不揮発性メモリの全てを表わすが、これらのメモリには、ブートコードが格納されるＢＩＯＳと、フラッシュ管理システムを始めとする、パーソナルコンピュータ１０’のオペレーティングシステムを格納するための磁気ハードディスク（ＮＡＮＤフラッシュ媒体１２が磁気ハードディスクの代替品である場合を除く。なぜなら、その場合には、オペレーティングシステムはＮＡＮＤフラッシュ媒体１２に格納されるからである）とが含まれる。パーソナルコンピュータ１０’のＮＡＮＤフラッシュ媒体１２、コントローラ１４、ＲＡＭ１６、補助不揮発性メモリ１８および他の構成要素（図示せず）は、バス１９を介して互いに通信する。パーソナルコンピュータ１０’のいくつかの構成において、ＮＡＮＤフラッシュ媒体１２は、着脱自在なカード上にある。パーソナルコンピュータ１０’の他の構成では、図示の構成要素は、単一の一体型物理装置に統合され、その結果、ＮＡＮＤフラッシュ媒体１２は、物理的に別個のエンティティではなくなる。
【０００４】
コントローラ１４がＮＡＮＤフラッシュ媒体１２に対して実行する動作には、読み出し動作、書き込み動作および消去動作が含まれる。ＮＡＮＤフラッシュ媒体１２は、典型的には、「ページ」と呼ばれる単位で書き込まれ、ページのそれぞれは、典型的には５１２バイト〜２０４８バイトを含み、典型的には「ブロック」と呼ばれる単位で消去され、またブロックのそれぞれは、典型的には１６〜６４ページを含む。ＮＡＮＤフラッシュ媒体１２の消去可能な単位を指す単語「ブロック」の使用を、用語「ブロックメモリ装置」における単語「ブロック」の使用と混同すべきでないことに留意されたい。ブロックメモリ装置の「ブロック」の本質は、次の事実を指す。すなわち、デバイスドライバが、典型的には「セクタ」と呼ばれる固定サイズ単位の整数倍の単位でのみデータを交換するインタフェースをエクスポートする、という事実である。
【０００５】
ＮＡＮＤフラッシュ媒体１２の管理を容易にするために、コントローラ１４は、「未書き込み」または「書き込み済み」のステータスを各ページに割り当てる。ステータスが「未書き込み」のページは、それが最後に消去されたとき以来書き込まれていないページであり、したがって、書き込みに利用可能である。ステータスが「書き込み済み」のページは、データが書き込まれて、まだ消去されていないページである。装置１０のいくつかの実施形態において、コントローラ１４はまた、いくつかのページに、「削除済み」のステータスを割り当てる。ステータスが「削除済み」のページは、無効（典型的には破棄されたか期限切れの）データを含むページである。「削除済み」ページをサポートする装置１０の実施形態において、「書き込み済み」ステータスは、有効データを含むページのために取っておかれる。本明細書において、ステータスが「未書き込み」のページは、「未書き込みページ」と呼ばれ、ステータスが「書き込み済み」のページは、「書き込み済みページ」と呼ばれ、ステータスが「削除済み」ページは、「削除済みページ」と呼ばれる。
【０００６】
装置１０は不揮発性データ記憶に用いられるので、装置１０が、そこに書き込まれたデータを、全ての状況下で保持することが不可欠である。装置１０に格納されたデータの完全性に対する主な危険は、装置１０が動作している最中に、装置１０への電源が事前通知なしに遮断される突然の電源異常である。かかる電源異常のために、中断された動作が、不安定なまたは予測できない結果をもたらすことが多い。
【０００７】
装置１０が、ＮＡＮＤフラッシュ媒体１２の内容を変更する動作の最中に、たとえばデータページの書き込みの最中かまたはブロックを消去している最中に、電源異常が発生した場合には、中断されたページまたはブロックの内容は、装置１０が再び電源投入された後は予測不能であり、実際にはでたらめになる可能性がある。その理由として、影響を受けたビットのうちのいくつかは、電力が遮断された時間までの動作によって、それらに割り当てられた状態に到着したかもしれないが、一方で他のビットが遅れて、まだそれらの目標値に達しなかったからである。さらに、いくつかのビットが中間ステータスに捕捉され、したがって、これらのビットは、それらの読み出しが様々な読み出し動作において異なる結果を返す信頼できないモードに、入る可能性がある。
【０００８】
この問題は、多くの先行技術のフラッシュ管理ソフトウェアシステム、たとえば、イスラエルのクファル  サバ（Ｋｆａｒ  Ｓａｂａ）のエム−システムズ  フラッシュ  ディスク  パイオニアーズ  リミテッド（Ｍ−Ｓｙｓｔｅｍｓ  Ｆｌａｓｈ  Ｄｉｓｋ  Ｐｉｏｎｅｅｒｓ  Ｌｔｄ．）が用いるツルーＦＦＳ（ＴｒｕｅＦＦＳ）ＴＭフラッシュ管理システムによってうまく処理される。これらの先行技術のシステムがこの問題を防ぐことができる理由は、データ破損が、電源異常が発生したときに変更されているページまたはブロックに局所化されるからである。ＮＡＮＤフラッシュ媒体１２における他の全てのページは、それらの内容を維持し、破損されない。したがって、書き込み動作が中断された場合に、先行技術のフラッシュ管理システムは、他の全てのページの有効性を仮定し、最後に書き込まれたページに専念することができる。利用可能ないくつかのアプローチがある。
【０００９】
１つのアプローチは、書き込むべきページまたは消去すべきブロックへのポインタを、動作の前に所定の位置に格納することであり、その結果、装置１０が再び電源投入されたときに、コントローラ１４は、このポインタを調べて、直ちに、どのページまたはブロックが最後に目標とされたものだったかを知ることができる。この方法は、動作が成功裡に完了したかどうかをコントローラ１４に知らせる１つまたは複数の有効性フラグを通常用いる。たとえば米国特許公報６，９７７，８４７号明細書を参照されたいが、この特許は、本明細書に完全に述べられているかのように、参照により全ての目的のために組み込まれている。この特許出願は、消去中の電源喪失に対する保護のためのかかる方法の例を教示している。
【００１０】
別のアプローチは、所与の時間にデータを書き込み可能な位置を、ページのサブセットだけに制限することである。次に、コントローラ１４は、全てのかかる位置を潜在的に破損しているものと見なすことができ、電源投入時にそこに格納されたデータの利用を避けることができる。代わりにコントローラ１４は、それらのデータを破損していないとして信頼する前に、データを「有効性テスト」にかけることができる。このアプローチを適用できるフラッシュ管理方法の例が、米国特許公報６，６７８，７８５号明細書で教示されており、またこの特許は、本明細書に完全に述べられているかのように、参照により全ての目的のために組み込まれている。米国特許公報６，６７８，７８５号明細書によれば、書き込みアルゴリズムは、各ブロック内で順次的に新しいページを書き込むことに制限されている。したがって、電源投入時に、所与のブロックにおいて最後に書き込まれたページが、そのブロックにおいて最も高い番号を付けられた書き込み済みページであることが分かる。
【００１１】
他のシステムは、かかる近道に適してなく、疑わしいページを識別する総当り方法を用いてもよい。しかしながら、電源喪失データ破損問題の処理は、最後に書き込まれたページのデータだけが破損したかもしれず、他の全てのページに格納されたデータは信頼できるということを知ることによって比較的簡単になる。
【００１２】
上記の解説が、スタンドアロンエンティティとしてのページの有効性に当てはまることを指摘すべきである。たとえページの書き込みが中断されなかった場合でも、システム全体が有効かどうかは、全く別の問題である。かかる問題は、たとえば、ユーザレベル動作がいくつかのページレベル動作からなるファイルシステムにおいて発生する場合がある。たとえば、新しいファイルの作成には、ディレクトリエントリを書き込むこと、１つまたは複数のセクタ割り当てテーブルを書き込むこと、およびそのときになってようやく実際のファイルデータを書き込むことが含まれる。電源が故障したときまでにこれらの書き込み動作のうちのいくつかだけが完了し、一方で残りの書き込み動作がまだ始まっていない場合には、ページは破損しないが、しかしファイルシステム全体は破損している。かかる問題に対して保護する方法が知られている（たとえば、同時係属中の米国特許出願第１０／３９７，３９８号明細書を参照されたい）が、それらは、本発明の範囲外である。
【００１３】
最近、電源喪失時におけるデータ破損の局所性に関する上記の仮定が有効でないＮＡＮＤフラッシュ媒体１２が、使用されるようになった。かかるＮＡＮＤフラッシュ媒体１２の例には、トーシバ（Ｔｏｓｈｉｂａ）のマルチレベルセル（ＭＬＣ）ＮＡＮＤフラッシュ素子（たとえばＴＣ５８ＤＶＧ０４Ｂ１ＦＴ００）が含まれる。かかる素子では、各セルは、１ビットではなく２ビットを格納する。その素子の内部配置は、物理ページが５２８×８＝４２２４セルのグループ内に存在するようになる。しかし他の素子において、かかるセルグループが５２８バイトの１ページを格納するのに対して、トーシバ（Ｔｏｓｈｉｂａ）ＭＬＣ  ＮＡＮＤフラッシュ素子では、かかるセルグループは、かかる２データページを格納する。２以上のデータページを格納するかかるセルグループは、本明細書において「スーパーページ」と呼ばれる。
【００１４】
図２は、１つのかかるＭＬＣ  ＮＡＮＤフラッシュ素子のブロック３０の概略図である。ブロック３０には、３２のスーパーページ３４において、論理アドレスがそれぞれ０〜６３である６４のページ３２が含まれる。ページ３２の論理アドレスは、図２においてブロック３０の左側の列に示す。
【００１５】
ここで、次のイベントシーケンスを考える。
１．２ページのスーパーページ３４のうちのページ３２の１つが、成功裡に書き込まれ、もう一方のページが、書き込まれていない。
２．２ページのスーパーページ３４のうちのもう一方のページ３２への書き込みが、電源喪失によって中断される。
【００１６】
このスーパーページ３４の２つのページ３２が同じ物理セルを共有するので、電源喪失は、両方のページ３２を破損する可能性がある。両方のページ３２がどのように破損される可能性があるかを理解するために、ＭＬＣフラッシュセル内でビットがどのように符号化されるかを考えることが必要である。ＭＬＣフラッシュセルでビットを符号化する一方法が、米国特許公報５，０９５，３４４号明細書および米国特許公報５，０４３，９４０号明細書においてハラーリ（Ｈａｒａｒｉ）によって教示されている。この方法によれば、ビットは、異なる電荷量をフラッシュセルのフローティングゲートに注入し、それによりセルの異なるレベルの閾値電圧ＶＴ１を生成することによって、ＭＬＣフラッシュセルにおいて符号化される。次のテーブルは、セルに格納された２つのビットの値を閾値電圧に応じて示す。
【００１７】
（表１）
ＶＴ１        ビット１の値      ビット２の値
−３.０Ｖ    １                １
−０.５Ｖ    １                ０
＋２.０Ｖ    ０                １
＋４.５Ｖ    ０                ０
【００１８】
実際には、２ビットフラッシュセルの４つの可能なビット組み合わせが、４つの異なる閾値電圧範囲として格納される。上記の例において、閾値電圧範囲は、（０、０）のための＋３．２５Ｖ〜＋５．７５Ｖ、（０、１）のための＋０．７５Ｖ〜＋３．２５Ｖ、（１、０）のための−１．７５Ｖ〜＋０．７５Ｖ、および（１、１）のための−４．２５Ｖ〜−１．７５Ｖである。２つのビットのいずれか１つを変更することには、セルの同じ物理属性（すなわち閾値電圧）を変更することが含まれるので、１ビットを変更するプロセスが、もう一方のビットを、その以前の安定状態からシフトさせることは明らかである。変更が正確に完了しない場合には、それは、どちらかまたは両方のビットの値に対する間違った解釈に帰着する可能性がある。
【００１９】
この問題に対して防御する際の真の困難は、スーパーページ３４の２つのページ３２が、２つの異なった、広く離れた時間に書き込まれる可能性があるために生じる。考えられるところでは、あるときに書き込まれたスーパーページ３４の第１のページ３２は、そのスーパーページ３４の第２のページ３２への不完全な書き込みによって、何年も後に破損される可能性がある。さらに、フラッシュ管理システムの上位に位置するほとんどのファイルシステムは、連続的または非連続的にページ３２をファイルに割り当てるので、結果として、同じスーパーページ３４のページ３２が全く無関係なファイルに属する場合がある。一ファイルの更新中における電源喪失は、危険にさらされているとは思えないような全く無関係なファイルを破損する可能性がある。明らかに、これらの状態は、先行技術のフラッシュ管理システムの対処能力を超えている。
【００２０】
米国特許公報６，９８８，１７５号明細書（本明細書に完全に述べられているかのように、参照により全ての目的のために組み込まれている）は、ページの書き込みが、他のページにおける他の無関係な以前に書き込まれたデータを、危険にさらすことのないページにのみ着信データを格納する方針を採用することによって、電力遮断のこの問題を解決する。米国特許公報６，９８８，１７５号明細書の方法は、書き込みの中断よってデータが破損される可能性があるページの「危険ゾーン」を定義することに基づいている。新しいデータを書き込むために１つまたは複数のページが選択された場合に、その書き込み動作のために選択されたページの危険ゾーンは、その／それらの危険ゾーンにおける他のページのいずれかが有効データを格納している可能性があるかどうか、すなわち、その／それらの危険ゾーンにおける他のページのいずれかのステータスが「書き込み済み」かどうかを確認するためにチェックされる。その／それらの危険ゾーンにおける他のページのいずれかが、実際に有効データ格納している可能性がある場合には、選択されたページは書き込まれない。代わりに、フラッシュ管理システムは、書き込み動作のために異なるページ（単数または複数）を捜す。
【００２１】
ページの危険ゾーンは、ページが書き込まれた場合に、データが破損の危険にさらされる他のページのセットとして、米国特許公報６，９８８，１７５号明細書で定義されている。たとえば、図２では、各ページ３２の危険ゾーンは、そのページ３２のスーパーページ３４のもう一方のページ３２である。１つまたは複数の未書き込みページが書き込みのために選択される場合には、選択されたページ（単数または複数）は、それらの危険ゾーンのいずれにも書き込み済みページがない場合にのみ書き込まれる。
【００２２】
書き込まれるデータが２ページ以上にわたる場合には、目標ページは、順次的にかまたはランダムな順序で書き込んでもよい。「順次」書き込みは、米国特許公報６，６７８，７８５号明細書におけるように、ブロックのページが、論理アドレスの増加順でのみ書き込まれることを意味する。「ランダム」書き込みは、任意の論理アドレス順でブロックのページを書き込んでもよいことを意味する。米国特許公報６，９８８，１７５号明細書および本発明双方の方法は、両方のケースに等しく適用可能である。
【００２３】
米国公報特許第６，９８８，１７５号明細書の方法は、電力遮断の結果としてのデータ破損問題への解決策を提供するが、これらの方法には、２つの主な欠点がある。第１の欠点は、以前に書き込まれたページの危険ゾーン内にあるページへの書き込みを避けることによって、それらのページを抜かして未使用にしておかなければならないということである。これによって、フラッシュメモリの物理アドレス空間内に「穴」が生成され、書き込み済みページに囲まれた未使用ページができる。たとえば、図２の（および順次書き込みを仮定する）場合に、ユーザが最初にページ０を書き込んだ後、そのブロックに書き込まれる次のデータはページ２へ向けられ、ページ１を未使用にしておく。したがって、ページ１は、ページ０とページ２と間の「穴」になる。フラッシュメモリへのデータの書き込み中における穴の生成は、貴重な空間を無駄にし、また読み出し時にこれらの穴に遭遇する準備をし、かつ有効データを含むものとしてこれらの穴を解釈することを避けなければならないフラッシュ管理ソフトウェアを複雑にする。
【００２４】
米国特許公報６，９８８，１７５号明細書の方法における第２の欠点は、危険ゾーンの配置が図２におけるほど対称的でないフラッシュ素子を取り扱う際に比較的非効率なことである。図２において、ページ番号２０の危険ゾーンはページ番号２１であり、ページ番号２１の危険ゾーンはページ番号２０である。したがって、我々は、これらのページを、互いに素なグループに分割されているかのように見ることができる。この場合に、グループのメンバーは、互いを危険にさらす可能性があるが、それらのグループ外のページは決して危険にさらさない。ページ２０およびページ２１は１つのかかるグループを構成するが、実際には、それらのどちらも、それらのグループ外の他のどんなページも危険にさらさない。しかしながら、これが事実でない、すなわち、図２においてページ２１とページ２２との間にある境界のように「危険の伝播」を止める「境界」がないフラッシュメモリ素子がある。これらの素子では、全てのページは、少なくともそれに続くページを危険にさらし、いくつかのページは、より高いアドレスを有するさらなるページを危険にさらす。かかる複雑な危険ゾーン構造は、マルチレベルセルフラッシュ素子が、そのフラッシュセル配列の隣接するワード線間の干渉を低減または除去するための技術を実行する場合に生成されることがあるが、それは、かかる技術が、ページの書き込み順序に影響するからである。かかる技術の例が、「複数のデータ状態で動作する不揮発性メモリのストレージエレメント間の結合による影響を低減させるための動作技術（Ｏｐｅｒａｔｉｎｇ  Ｔｅｃｈｎｉｑｕｅｓ  Ｆｏｒ  Ｒｅｄｕｃｉｎｇ  Ｅｆｆｅｃｔｓ  Ｏｆ  Ｃｏｕｐｌｉｎｇ  Ｂｅｔｗｅｅｎ  Ｓｔｏｒａｇｅ  Ｅｌｅｍｅｎｔｓ  Ｏｆ  ａ  Ｎｏｎ−Ｖｏｌａｔｉｌｅ  Ｍｅｍｏｒｙ  Ｏｐｅｒａｔｅｄ  ｉｎ  Ｍｕｌｔｉｐｌｅ  Ｄａｔａ  Ｓｔａｔｅｓ）」なる名称の米国特許公報６，５２２，５８０号明細書においてチェン（Ｃｈｅｎ）らによって開示されており、またこの特許は、本明細書に完全に述べられているかのように、参照により全ての目的のために組み込まれている。かかる素子に米国特許公報６，９８８，１７５号明細書の方法を適用すると、記憶空間の非常に非効率的な利用に帰着する。すなわち、ブロック内のどのページが書き込み動作の目標かにかかわらず、（ブロックのまさに最初のページに書き始めるときを除いて）我々は、常に少なくとも１ページを抜かし、穴を生成しなければならない。
【発明の開示】
【発明が解決しようとする課題】
【００２５】
かくして、マルチレベルセルに基づくＮＡＮＤフラッシュ媒体１２に対する電力遮断に対処でき、かつフラッシュ素子の広範な種類に対する効率的で改善されたフラッシュ管理システムの必要性があり、それを有することは非常に有利であろう。
【課題を解決するための手段】
【００２６】
本発明によれば、以前に書き込まれたページの危険ゾーンの使用を避けるのではなく、我々は、危険ゾーン内のページを用いるが、危険性のあるページを危険にさらす前に、それらをバックアップする。
【００２７】
したがって、本発明に従い、複数のページを含むメモリの管理方法が提供されるが、この方法には、（ａ）各ページのそれぞれの危険ゾーンを識別するステップと、（ｂ）新しいデータを書き込むための少なくとも１つの未書き込みページを選択するステップと、（ｃ）危険ゾーンが少なくとも１つの書き込み済みページを含む各未書き込みページのために、各書き込み済みページをログにコピーするステップと、が含まれる。
【００２８】
さらに、本発明に従って、データ記憶システムが提供されるが、このシステムには、（ａ）複数のページを含むデータ記憶媒体と、（ｂ）ログと、（ｃ）（ｉ）複数のページにおける各ページのそれぞれの危険ゾーンを識別するステップと、（ｉｉ）新しいデータを書き込むために複数のページのうちの少なくとも１つの未書き込みページを選択するステップと、（ｉｉｉ）複数のページのうちの少なくとも１つの書き込み済みページを自身の危険ゾーンが含む各未書き込みページのために、各書き込み済みページをログにコピーするステップと、を含むステップによって、新しいデータを複数のページに書き込むためのコントローラと、が含まれる。
【００２９】
さらに、本発明に従って、コンピュータ可読コードを自身に埋め込んだコンピュータ可読記憶媒体が提供されるが、このコンピュータ可読コードは、データ記憶媒体の複数のページの少なくとも１つに新しいデータを書き込むためにあり、またこのコンピュータ可読コードには、（ａ）各ページのそれぞれの危険ゾーンを識別するためのプログラムコードと、（ｂ）新しいデータを書き込むための少なくとも１つの未書き込みページを選択するためのプログラムコードと、（ｃ）少なくとも１つの書き込み済みページを自身の危険ゾーンが含む各未書き込みページのために、各書き込み済みページをログにコピーするためのプログラムコードと、が含まれる。
【００３０】
メモリを管理するための本発明の基本的方法に従って、メモリの各ページのそれぞれの危険ゾーンが識別される。新しいデータがメモリに書き込まれる場合に、１つまたは複数の未書き込みページが、新しいデータを書き込むために選択される。選択されたページの危険ゾーンにおける書き込み済みページがもしあれば、ログにコピーされる。次に、新しいデータが、選択されたページに書き込まれる。
【００３１】
新しいデータが２ページ以上にわたる場合には、選択されたページへの新しいデータの書き込みは、ほぼ同時に行われるのが好ましい。
【００３２】
危険ゾーンにおける書き込み済みページのコピーイングおよび選択されたページへの新しいデータの書き込みは、ほぼ同時に行われるのが好ましい。
【００３３】
たとえば、メモリを含むシステムが電源投入された場合に、メモリの書き込み済みページに格納されたデータは、それらのデータが破損しているかどうかを判定するためにチェックされるのが好ましい。破損していると判定されたデータは、ログからの対応するデータと取り替えられる。チェックは、誤り検出符号を用いて行われるのが最も好ましい。
【００３４】
代替として、選択されたページに書き込まれる新しいデータは、危険ゾーンにおける全ての書き込み済みページがログにコピーされた後でのみ、そのように書き込まれる。書き込み済みページがログにコピーされると、対応するフラグが設定される。その書き込み済みページを自身の危険ゾーンが含む選択されたページに書き込まれることになる新しいデータがそのように書き込まれた後で、フラグがクリアされる。後で、たとえば、メモリを含むシステムが電源投入されたときに、設定されたフラグに対応する書き込み済みページに格納されたデータは、ログからの対応するデータと取り替えられる。
【００３５】
新しいデータが２ページ以上にわたる場合には、選択された未書き込みページは、順次的にかまたはランダムな順序で書き込まれる。
【００３６】
選択されたページへの新しいデータの書き込みおよびログへの書き込み済みページのコピーイングは、それぞれ異なるモードを用いて行われるのが好ましい。コピーイングのために用いられるモードは、書き込みのために用いられるモードより、メモリのセル当たり少数のビットを書き込むのが最も好ましい。たとえば、以下で解説する本発明の一実施形態において、コピーイングは、シングルレベルセルモードで行われ、書き込みは、マルチレベルセルモードで行われる。
【００３７】
全ての危険ゾーンには、等しいページ数、たとえば危険ゾーン当たり１ページが含まれるのが好ましい。代替として、少なくとも２つの危険ゾーンには、異なるページ数が含まれる。
【００３８】
本発明の基本データ記憶システムには、複数のページを備えたデータ記憶媒体、ログ、およびコントローラが含まれる。複数のページに新しいデータを書き込むために、コントローラは、ページのそれぞれの危険ゾーンを識別し、ページの中から少なくとも１つの未書き込みページを選択する。コントローラは、選択されたページの危険ゾーンにおける書き込み済みページ（もしあれば）をログへコピーする。
【００３９】
データ記憶媒体は、フラッシュメモリなどの不揮発性メモリであるのが好ましい。かかるフラッシュメモリには、複数のマルチレベルセルが含まれるのが好ましい。また、かかるフラッシュメモリには、複数のブロックが含まれ、各ブロックには、複数のページのそれぞれのサブ複数が含まれるのが好ましい。本発明の好ましい代替実施形態において、コントローラは、新しいデータを各ブロックのページに、順次的にだけかまたはランダムな順序で書き込む。
【００４０】
ログは、データ記憶媒体の一部であるのが好ましい。
【００４１】
コントローラは、選択された未書き込みページに新しいデータを書き込むのが好ましい。コピーイングおよび書き込みは、それぞれ異なる書き込みモードを用いて行われるのがより好ましい。書き込み済みページをコピーするために用いられる書き込みモードは、新しいデータを書き込むために用いられる書き込みモードより、データ記憶媒体のセル当たり少数のビットを書き込むのが最も好ましい。
【００４２】
本発明の範囲にはまた、コンピュータ可読記憶媒体が含まれるが、この記憶媒体において、本発明の基本方法に従って新しいデータをデータ記憶媒体のページに書き込むためのコンピュータ可読コードが具現される。
【００４３】
本発明は、本明細書では添付の図面に関連してあくまでも例として説明される。
【発明を実施するための最良の形態】
【００４４】
本発明は、書き込み動作の中断による、以前に書き込まれたページのデータ破損を防ぐように、ページベースのメモリの管理方法である。具体的には、本発明を用いて、マルチレベルセルを備えたフラッシュメモリを管理することができる。
【００４５】
本発明によるメモリ管理の原理および動作は、図面および付随する説明に関連して、よりよく理解されるであろう。
【００４６】
再び図２を参照するが、しかし今は、危険ゾーンを定義する規則が以前とは異なる例を挙げる。すなわち、ブロックのページ番号Ｎの危険ゾーンは、ページＮ−１およびページＮ−２から構成される（ブロックの最初の２ページを除いて。すなわち、ページ１の危険ゾーンはページ０であり、ページ０の危険ゾーンはない）。異なるページの危険ゾーンが、上記の例においてページ１を過ぎたページの場合のように全て同じサイズである必要が必ずしもないことを強調すべきである。２ページの危険ゾーンを有するページがある一方で、３ページの危険ゾーンを有する他のページがあってもよい。いくつかのページにはまた、両方向に向かう危険ゾーン、すなわち、上記の例におけるように後ろだけでなく前後に向かう危険ゾーンがあってもよい。本発明の方法は、上記の例に限定されないが、しかし簡単にするために、以下の説明は、この単一の例の文脈で提供される。
【００４７】
図３は、書き込みコマンドが、本発明の方法に従ってどのように処理されるかを示す。ステップ１００において、記憶システムにデータを書き込むための書き込みコマンドが受信されるが、データは、単一のページまたは多数のページ用である。ステップ１１０において、データが書き込まれることになる物理位置を発見する。書き込むべき物理ページの発見は、そのシステムの特定のアルゴリズムに従ってフラッシュ管理システムによって行われる。米国特許公報６，６７８，７８５号明細書または米国特許公報５，９３７，４２５号明細書に開示されたものなどの異なるフラッシュ管理システムは、ホストコンピュータの目標論理アドレスを物理アドレスへマッピングするために異なる方法を用いるが、しかし本発明の方法は、かかる全てのマッピング方法に等しく適用可能である。
【００４８】
簡単にするために、本明細書では、目標物理アドレスとしてステップ１１０で発見された物理ページは全て、１つのブロック内に存在すると仮定する。これが事実でない場合には、同じ論理が、同じブロック内に含まれる、これらの物理ページの各サブグループに別々に適用される。
【００４９】
ステップ１２０において、目標物理ページへの書き込みが、いくつかの以前に書き込まれたページを危険にさらすかどうかがチェックされる。これは、以前に書き込まれたどのページが、目標ページの少なくとも１つの危険ゾーン内に含まれるかどうかを発見することによって行われる。たとえば、図２のページ０〜２０が既に書き込まれ、ページ２１〜６３が自由に利用できると仮定する。５ページを書き込むためのコマンドが受信され、ページ２１〜２５が、書き込むべき目標物理ページとして発見される。危険にさらされる、以前に書き込まれたページを探すと、
ａ．ページ１９およびページ２０が、ページ２１の危険ゾーン内にあること、
ｂ．ページ２０が、ページ２２の危険ゾーン内にあること、
ｃ．ページ２３が、その危険ゾーン内に書き込み済みページを含まないこと、
ｄ．ページ２４が、その危険ゾーン内に書き込み済みページを含まないこと、
ｅ．ページ２５が、その危険ゾーン内に書き込み済みページを含まないこと、
が分かる。
【００５０】
結論として、書き込み済みページ１９および２０は、書き込み動作によって危険にさらされるが、しかしページ０〜１８のどれも危険にさらされない。本発明の方法は、米国特許公報６，９８８，１７５号明細書の方法とは、たとえ両方が危険ゾーンの同じ概念に依存していても、同じではないことに留意されたい。両方の方法において、「この目標ページは、以前に書き込まれたページをその危険ゾーン内に含むか？」と尋ねられる。しかし米国特許公報６，９８８，１７５号明細書では、意図は、「目標ページの危険ゾーン内に書き込み済みページがある場合には、我々はその目標ページを抜かす」であるのに対し、本発明では、意図は、「目標ページの危険ゾーン内に書き込み済みページがある場合には、我々は書き込み済みページのバックアップを取る」である。
【００５１】
ステップ１２０の質問に対する答えが、危険にさらされる、以前に書き込まれたページがないということである場合には（たとえば、ブロックがまだ完全に未使用の場合には）、新しいデータが目標物理ページに書き込まれるステップ１４０に直接移る。しかしながら、質問に対する答えが、危険にさらされるページがあるということである場合には、ステップ１３０を介して進む。ステップ１３０において、危険にさらされるページ（上記の例ではページ１９およびページ２０）は、バックアップログにコピーされる。我々は、そのときになってようやくステップ１４０に到達し、新しいデータを目標物理ページに書き込む。
【００５２】
図４は、バックアップログが、電源喪失によって引き起こされたデータ破損から回復するために、どのように用いられるかを示す。ステップ２００において、記憶システムが電源投入される。ステップ２１０において、いずれかのページが電源喪失の結果として破損しているかどうかが、チェックされる。これは、典型的には各データページに関連する誤り検出符号（ＥＤＣ）を作動させることによって行ってもよい。ページ内容を読み出し、かつ結果としてのシンドロームを計算することによって、格納データが有効かどうかを見出す。破損したページが見つからない場合には、システムは、ステップ２３０において通常動作を継続する。しかしながら、少なくとも１ページが破損していると分かった場合に、ステップ２２０は、書き込み動作に先立ってそのデータが格納されたバックアップログから破損したデータを回復し、図３に示すように、それらのデータを１つまたは複数の未書き込みページに書き込む。
【００５３】
これらの方法は、以前に書き込まれたページの回復を保証するが、最後の書き込みコマンドによって書き込まれたページの回復は保証しないことに留意されたい。上記の例において、ページ２１の書き込み最中に電源が故障した場合に、ページ１９およびページ２０は、ひとたび図４の回復手順が完了すれば、有効で破損していないことが保証される。しかし、ページ２１は、バックアップされず、たとえ破損していることが分かった場合でも回復できない。しかしながら、これは、我々が達成したかったこと、すなわち、書き込みが不意に中断された現在の新しいデータの保護ではなく、システムに以前に格納されたデータの保護である。
【００５４】
上記の方法の変形は、バックアップログにおける各ページを、そのページがバックアップのためにまだ必要かどうかを示すフラグと関連付けることである。図３においてバックアップログにページを書き込む場合には、最初に、フラグを「必要」に設定する。書き込み動作を完了した後で、現在の動作によってバックアップログにコピーされた全てのページは、「不必要」に設定される。書き込み動作の最中に電源異常が発生した場合には、バックアップログにおけるページは、「必要」フラグを残され、一方で動作が成功裡に完了した場合には、ページは「不必要」フラグを残される。電源投入時に、バックアップログにおける最後のページのフラグが、チェックされる。すなわち、少なくとも１ページが「必要」であると分かった場合には、我々は、電源異常が発生したことを知り、「フラグを立てられた」ページを含むブロックのために回復を実行する。方法におけるこの変形は、ランダムな破損データが、そのようなものとしてＥＤＣによって識別されないことが理論的にあり得るＥＤＣ技術に依存するよりも信頼できるデータ破損検出を提供する。
【００５５】
バックアップログは、ログを実現するための、先行技術において周知の任意の方法で実現してもよい。一インプリメンテーションは、ログに割り当てられたフラッシュエリアに、バックアップされたページを順次的に書き込み、ひとたびそのエリアの端部に達したならば、エリアの始めに戻ることである。もはや必要でないブロックのガーベジコレクションのためのハウスキーピング動作もまた管理しなければならない。しかしながら、電力遮断がバックアップログを破損しないように注意しなければならない。これは、米国特許公報６，９８８，１７５号明細書の方法で達成され、その結果、ログにおけるいくつかの物理ページが抜かされて、バックアップされたページが決して危険にさらされないように保証する。代替として、ログは、フラッシュ媒体の異なる書き込みモード、すなわち、危険ゾーンを有しないことによって電源異常のデータ破損を免れたモードを用いて書き込まれる。例として、マルチレベルセル（ＭＬＣ）およびシングルレベルセル（ＳＬＣ）モードの両方を提供するフラッシュメモリ素子を用いるフラッシュシステムがある。かかる素子が、米国特許公報６，４５６，５２８号明細書においてチェン（Ｃｈｅｎ）によって開示され、またこの特許は、本明細書に完全に述べられているかのように、参照により全ての目的のために組み込まれている。システムに格納される通常のデータが、高記憶密度を達成するために「危険な」ＭＬＣモードを用いて書き込まれるのに対して、バックアップログは、危険ゾーンを生成しない安全なＳＬＣモードを用いて書き込まれる。これにはまた、バックアップログを書き込む際に費やされるオーバーヘッドタイムを低減するという追加的な利点がある。なぜなら、ＳＬＣ書き込みは、ＭＬＣ書き込みよりはるかに迅速だからである。
【００５６】
書き込みコマンドが、多数のページの書き込み用である場合には、上記の方法が非常に効率的であることに注目されたい。かかる場合に、典型的には、以前に書き込まれたバックアップすべきページ数は、書き込み済みページの数よりはるかに少なく、したがって、書き込み済みページごとの相対的オーバヘッドは、コマンドにおけるページ数が大きければ大きいほど小さい。単一コマンドの結果としての多数ページの書き込みは、本明細書において、これらのページの「同時」書き込みと見なされる。
【００５７】
本発明の方法を米国特許公報６，９８８，１７５号明細書と比較すると、本発明が使用ブロック内に未使用ギャップを残さず、決してページを抜かさない限り、本発明が米国特許公報６，９８８，１７５号明細書より優れていることが分かる。したがって、本発明は、フラッシュメモリのスペース利用の効率において、米国特許公報６，９８８，１７５号明細書よりはるかによく、また、システムの論理を複雑にするギャップに対処する必要のないフラッシュ管理システムによって取り扱うのがより簡単である。さらに、本発明は、上記で提示した例を始めとする多くのケースにおいてかなり非効率的な米国特許公報６，９８８，１７５号明細書と異なり、任意の種類の危険ゾーンパターンに効率的に適用可能である。
【００５８】
図５Ａは、本発明のフラッシュベース記憶装置１１０の高レベル概略ブロック図であるが、この記憶装置１１０は、図１Ａにおける先行技術の装置１０のように、１つまたは複数のＮＡＮＤフラッシュ媒体１１２にデータを格納するためにホスト装置によって用いられる。装置１１０の動作は、ＲＡＭ１１６および補助不揮発性メモリ１１８の助けを借りてマイクロプロセッサベースコントローラ１１４によって制御される。このため、フラッシュ装置１１０およびホストシステムは、フラッシュ装置１１０における共通のポート１２０を介して通信する。装置１１０の構成要素は、共通ハウジング１１５に共に収容される。
【００５９】
先行技術の装置１０のように、フラッシュ装置１１０は、補助不揮発性メモリ１１８に格納されたファームウェアを用いて、ブロックメモリ素子をエミュレートする。電源異常の場合にこれらのデータを破損から保護するために、補助不揮発性メモリ１１８に格納されたファームウェアにはまた、本発明の方法に従って、破損の危険にさらされるデータをバックアップログへおよびそこからコピーするためのコードが含まれる。ＮＡＮＤフラッシュ媒体１１２は、通常のデータ記憶に用いられるＭＬＣ部分１０６およびバックアップログに用いられるＳＬＣ部分１０８に分割される。本発明によって、ホスト装置のソフトウェアアプリケーションは、それがファイル管理アプリケーションであれ任意の他のソフトウェアアプリケーションであれ、任意のランダムな順序で、本発明のかかる装置１１０へ書き込みコマンドを自由に送信することが可能になり、またソフトウェアアプリケーションは、ＮＡＮＤフラッシュ媒体１１２のページ間の危険関係を無視することが可能になる。本発明の方法は、電源喪失が書き込みコマンドを中断する場合に破損される可能性がある唯一のページが、中断された書き込みコマンドによって書き込まれているページであるという意味で、電源喪失に対する完全な保護を提供する。他の全てのページは、有効なままであることが保証される。
【００６０】
図５Ｂは、図１Ｂにおける先行技術のパーソナルコンピュータ１０’に似たパーソナルコンピュータ１１０’の高レベル部分概略ブロック図であり、ＮＡＮＤフラッシュ媒体１１２が、長期的な不揮発性データ記憶のために、磁気ハードディスクに加えてかまたはその代替品として用いられる。ここで、コントローラ１１４は、パーソナルコンピュータ１１０’の中央処理装置を表わす。ここで、補助メモリ１１８は、パーソナルコンピュータ１１０’の他の不揮発性メモリの全てを表わすが、これらのメモリには、ブートコードが格納されるＢＩＯＳと、パーソナルコンピュータ１１０’の、フラッシュ管理システムを始めとするオペレーティングシステムを格納するための磁気ハードディスク（ＮＡＮＤフラッシュ媒体１１２が磁気ハードディスクの代替品である場合を除く。なぜなら、その場合には、オペレーティングシステムはＮＡＮＤフラッシュ媒体１１２に格納されるからである）とが含まれる。パーソナルコンピュータ１１０’のＮＡＮＤフラッシュ媒体１１２、コントローラ１１４、ＲＡＭ１１６、補助不揮発性メモリ１１８および他の構成要素（図示せず）は、バス１１９を介して互いに通信する。
【００６１】
パーソナルコンピュータ１１０’のオペレーティングシステムコードの一部として補助不揮発性メモリ１１８またはＮＡＮＤフラッシュ媒体１１２に格納され、かつコントローラ１１４によって実行されるフラッシュ管理ソフトウェアには、ＮＡＮＤフラッシュ媒体１１２への書き込み動作が電源異常によって中断された場合に、ＮＡＮＤフラッシュ媒体１１２のＭＬＣ部分１０６に以前に格納されたデータの破損を防ぐために、本発明のフラッシュ管理方法を実行するためのコードが含まれる。具体的には、破損の危険にさらされるデータは、上記のように、ＮＡＮＤフラッシュ媒体１１２のＳＬＣ部分１０８におけるバックアップログへおよびそこからコピーされる。
【００６２】
装置１１０および１１０’の補助不揮発性メモリ１１８（およびオペレーティングシステムがＮＡＮＤフラッシュ媒体１１２に格納された装置１１０’の実施形態における装置１１０’のＮＡＮＤ媒体フラッシュ１１２）は、本発明の方法を実行するためのコンピュータ可読コードが具現されるコンピュータ可読記憶媒体の例である。
【００６３】
限られた数の実施形態に関連して本発明を説明したが、本発明の多くの変形、修正および他の適用例が達成可能であることが認識されよう。
【図面の簡単な説明】
【００６４】
【図１Ａ】不揮発性データ記憶のためにＮＡＮＤフラッシュ媒体を用いる先行技術の装置の高レベル概略ブロック図である。
【図１Ｂ】不揮発性データ記憶のためにＮＡＮＤフラッシュ媒体を用いる先行技術の装置の高レベル概略ブロック図である。
【図２】マルチレベルセルフラッシュメモリのブロックの例示的な実施形態の概略図である。
【図３】本発明に従って、新しいデータをメモリに書き込むフローチャートである。
【図４】本発明に従って、電源投入時に破損データを復元するフローチャートである。
【図５Ａ】本発明に従って修正された図１Ａおよび１Ｂの装置の高レベル概略ブロック図である。
【図５Ｂ】本発明に従って修正された図１Ａおよび１Ｂの装置の高レベル概略ブロック図である。
【図１Ａ】
2008544345.tif 000003
【図１Ｂ】
2008544345.tif 000004
【図２】
2008544345.tif 000005
【図３】
2008544345.tif 000006
【図４】
2008544345.tif 000007
【図５Ａ】
2008544345.tif 000008
【図５Ｂ】
2008544345.tif 000009
【国際調査報告】
2008544345.tif 000010
2008544345.tif 000011