(57)【要約】【課題】  フラッシュメモリの連続ページに対する書込みが途中で中断された場合でも、その書込みが完了したか否かを判定できるようにする。【解決手段】  フラッシュメモリの連続したページＰ０〜Ｐ３１にデータを書込む際に、書込開始ページＰ０，Ｐ１１の冗長領域に、書込終了ページに対応する終点情報として（０１０１１），（１１０００）を設定し、書込終了ページＰ１０，Ｐ２３の冗長領域に書込完了情報として（０１０１１），（１１０００）を設定する。ここで、書込処理が中断された場合には、書込完了情報としての（０１０１１），（１１０００）が設定されないので、例えば書込終了ページＰ１０，Ｐ２３の冗長領域を確認すれば、書込処理が完了したか否かを判断できる。【選択図】  図３
2005292926.tif 000002
【特許請求の範囲】
【請求項１】
ホストシステム側からの要求に基づいて、フラッシュメモリ内の同一ブロックに属する連続した複数ページに、データを書込む連続書込機能と、
前記複数ページの書込開始ページの冗長領域に、書込終了ページを示す終点情報を設定する終点情報設定機能と、
前記複数ページの書込終了ページの冗長領域に、該書込終了ページに対する書込処理が完了していることを示す処理完了情報を設定する処理完了情報設定機能と、
を備えることを特徴とするメモリコントローラ。
【請求項２】
前記処理完了情報として、前記終点情報と同一の情報を用いることを特徴とする請求項１に記載のメモリコントローラ。
【請求項３】
前記複数ページの書込開始ページから書込終了ページまでの全ページの冗長領域に、前記終点情報を設定することを特徴とする請求項１又は２に記載のメモリコントローラ。
【請求項４】
請求項１乃至３のいずれか１項に記載のメモリコントローラとフラッシュメモリを備えることを特徴とするフラッシュメモリシステム。
【請求項５】
ホストシステム側からの要求に基づいて、フラッシュメモリ内の同一ブロックに属する連続した複数ページに、データを書込む連続書込処理と、
前記複数ページの書込開始ページの冗長領域に、書込終了ページを示す終点情報を設定する終点情報設定処理と、
前記複数ページの書込終了ページの冗長領域に、該書込終了ページに対する書込処理が完了していることを示す処理完了情報を設定する処理完了情報設定処理と、
を含むことを特徴とするフラッシュメモリの制御方法。
【請求項６】
前記処理完了情報として、前記終点情報と同一の情報を用いることを特徴とする請求項５に記載のフラッシュメモリの制御方法。
【請求項７】
前記複数ページの書込開始ページから書込終了ページまでの全ページの冗長領域に、前記終点情報を設定することを特徴とする請求項５又は６に記載のフラッシュメモリの制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びに、フラッシュメモリの制御方法に関する。
【背景技術】
【０００２】
近年、メモリーカードやシリコンディスクといったメモリシステムにて使用される半導体メモリに、フラッシュメモリが広く採用されている。フラッシュメモリは、不揮発性メモリの一種であり、フラッシュメモリに格納されたデータは、電力が供給されていないときでも保持されていることが要求される。
【０００３】
ＮＡＮＤ型フラッシュメモリは、上記のメモリシステムで特に多く用いられるフラッシュメモリの一種である。ＮＡＮＤ型フラッシュメモリに含まれている複数のメモリセルのそれぞれは、他のメモリセルとは独立して、論理値“１”を示すデータが格納されている消去状態から、論理値“０”を示すデータが格納されている書込状態へと変化することができる。
【０００４】
これとは対照的に、書込状態から消去状態へと変化するときには、各メモリセルは他のメモリセルと独立して変化することができない。このときには、ブロックと称される予め定められた数のメモリセルが、全て同時に消去状態になる。この一括消去動作は、一般的に、“ブロック消去”と称されている。
ＮＡＮＤ型フラッシュメモリに対する書込処理若しくは読出処理は、ページと称される予め定められた数のメモリセル単位で処理が行なわれる。消去処理の単位であるブロックは複数のページで構成されている。
【０００５】
ＮＡＮＤ型フラッシュメモリを用いたメモリシステムでは、突然の電源遮断等により、書込処理が中断される場合がある。このような場合、ＮＡＮＤ型フラッシュメモリには、不完全な書込みデータが残されてしまう。その後、電源を投入したときに、このような不完全な書込みデータと正常な書込みデータを判別することが困難なときがある。
【０００６】
このような問題を解消するために、下記特許文献１では、各ブロックの先頭ページ（冗長領域）に無効フラグを、最終ページ（冗長領域）に有効フラグを設け、正常に書込処理が終了したときに、有効フラグが有効となる設定処理を行ない、そのブロックのデータが不要となったときに、無効フラグが有効となる設定処理を行なっている。このようにすることにより、有効フラグが有効となる設定がなされているか否かにより、正常に書込処理が終了したか、又は中断したかを判別することができる。
【特許文献１】特開２００３−１５９２９号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
特許文献１（特開２００３−１５９２９号公報）では、ブロック内の全ページにデータを書込んだときに有効フラグが有効となる設定処理を行なっているが、ブロック内の全ページにデータを書込まずに処理を終了させる場合もある。例えば、最初の処理で、ブロック内の一部のページにデータを書込んで処理を終了させ、次回の処理でその続きを書込む場合がある。このような場合、ブロック内の一部のページにデータを書込む処理が正常に終了したときには、有効フラグが有効となる設定処理は行なわれない。よって、その処理が正常に終了したかを判断することができない。
【０００８】
そこで、本発明は、ブロック内の一部のページにデータを書込む処理の場合でも、その処理が正常に行なわれたか否かを判断することができるメモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びに、フラッシュメモリの制御方法を提供することを目的とする。
【課題を解決するための手段】
【０００９】
上記目的を達成するために、本発明の第１の観点に係るメモリコントローラは、ホストシステム側からの要求に基づいて、フラッシュメモリ内の同一ブロックに属する連続した複数ページに、データを書込む連続書込機能と、前記複数ページの書込開始ページの冗長領域に、書込終了ページを示す終点情報を設定する終点情報設定機能と、前記複数ページの書込終了ページの冗長領域に、該書込終了ページに対する書込処理が完了していることを示す処理完了情報を設定する処理完了情報設定機能と、を備えることを特徴とする。
【００１０】
なお、前記処理完了情報として、前記終点情報と同一の情報を用いてもよい。
また、前記複数ページの書込開始ページから書込終了ページまでの全ページの冗長領域に、前記終点情報を設定してもよい。
【００１１】
上記目的を達成するために、本発明の第２の観点に係るフラッシュメモリシステムは、本発明の第１の観点に係るメモリコントローラと、フラッシュメモリとを備えることを特徴とする。
【００１２】
上記目的を達成するために、本発明の第３の観点に係るフラッシュメモリの制御方法は、ホストシステム側からの要求に基づいて、フラッシュメモリ内の同一ブロックに属する連続した複数ページに、データを書込む連続書込処理と、前記複数ページの書込開始ページの冗長領域に、書込終了ページを示す終点情報を設定する終点情報設定処理と、前記複数ページの書込終了ページの冗長領域に、該書込終了ページに対する書込処理が完了していることを示す処理完了情報を設定する処理完了情報設定処理と、を含むことを特徴とする。
【００１３】
なお、前記処理完了情報として、前記終点情報と同一の情報を用いてもよい。
また、前記複数ページの書込開始ページから書込終了ページまでの全ページの冗長領域に、前記終点情報を設定してもよい。
【発明の効果】
【００１４】
本発明によれば、ホストシステム側からの要求に基づいて、フラッシュメモリ内の同一ブロックに属する連続した複数ページにデータを書込むときに、その書込処理の書込開始ページの冗長領域に、書込終了ページを示す終点情報を設定し、書込終了ページの冗長領域に、該書込終了ページに対する書込処理が完了していることを示す処理完了情報を設定している。このようにすることにより、書込開始ページの冗長領域に設定されている終点情報と、書込終了ページの冗長領域に設定されている処理完了情報の整合がとれているか否かで、その書込み処理が正常に行なわれたか否かを判断することができる。
【発明を実施するための最良の形態】
【００１５】
以下、図面に基づき、本発明の実施の形態について詳細に説明する。
[フラッシュメモリシステム１の説明]
図１は、本発明に係るフラッシュメモリシステム１を概略的に示すブロック図である。
【００１６】
図１に示したように、フラッシュメモリシステム１は、フラッシュメモリ２とそれを制御するメモリコントローラ（以下、単にコントローラという）３とで構成されている。フラッシュメモリシステム１は、通常、ホストシステム４に着脱可能に装着されて使用され、ホストシステム４に対して一種の外部記憶装置として用いられる。
【００１７】
尚、ホストシステム４としては、文字、音声、あるいは画像情報等の種々の情報を処理するパーソナルコンピュータやデジタルスチルカメラをはじめとする各種情報処理装置が挙げられる。
【００１８】
フラッシュメモリ２は、ページ単位で読出し又は書込みを、ブロック単位で消去を実行するデバイスであり、例えば、１ブロックは３２ページで構成され、１ページは５１２バイトのユーザ領域と１６バイトの冗長領域で構成されている。
【００１９】
コントローラ３は、ホストインターフェース制御ブロック５と、マイクロプロセッサ６と、ホストインターフェースブロック７と、ワークエリア８と、バッファ９と、フラッシュメモリインターフェースブロック１０と、ＥＣＣ（エラー・コレクション・コード）ブロック１１と、フラッシュメモリシーケンサブロック１２とから構成される。これら機能ブロックによって構成されるコントローラ３は、一つの半導体チップ上に集積されている。以下に各ブロックの機能を説明する。
【００２０】
マイクロプロセッサ６は、コントローラ３を構成する各機能ブロック全体の動作を制御する機能ブロックである。
ホストインターフェース制御ブロック５は、ホストインターフェースブロック７の動作を制御する機能ブロックである。ここで、ホストインターフェース制御ブロック５は、ホストインターフェースブロック７の動作を設定する動作設定レジスタ（図示せず）を備えており、この動作設定レジスタに基づきホストインターフェースブロック７は動作する。
【００２１】
ホストインターフェースブロック７は、ホストシステム４とデータ、アドレス情報、ステータス情報及び外部コマンド情報の授受を行なう機能ブロックである。
すなわち、フラッシュメモリシステム１がホストシステム４に装着されると、フラッシュメモリシステム１とホストシステム４は、外部バス１３を介して相互に接続され、かかる状態において、ホストシステム４よりフラッシュメモリシステム１に供給されるデータ等は、ホストインターフェースブロック７を入口としてコントローラ３の内部に取り込まれる。フラッシュメモリシステム１からホストシステム４に供給されるデータ等は、ホストインターフェースブロック７を出口としてホストシステム４に供給される。
【００２２】
さらに、ホストインターフェースブロック７は、ホストシステム４より供給されるホストアドレス及び外部コマンドを一時的に格納するタスクファイルレジスタ（図示せず）及びエラーが発生した場合にセットされるエラーレジスタ（図示せず）等を有している。
【００２３】
ワークエリア８は、フラッシュメモリ２の制御に必要なデータが一時的に格納される作業領域であり、複数のＳＲＡＭ（Ｓｔａｔｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）セルによって構成される機能ブロックである。
【００２４】
バッファ９は、フラッシュメモリ２から読出したデータ及びフラッシュメモリ２に書込むデータを一時的に保持する機能ブロックである。すなわち、フラッシュメモリ２から読出したデータは、ホストシステム４の受取準備ができるまでバッファ９に保持され、フラッシュメモリ２に書込むデータは、フラッシュメモリ２の書込準備ができるまでバッファ９に保持される。
【００２５】
フラッシュメモリシーケンサブロック１２は、内部コマンドに基づきフラッシュメモリ２の動作を制御する機能ブロックである。フラッシュメモリシーケンサブロック１２は、複数のレジスタ（図示せず）を備え、この複数のレジスタに内部コマンドを実行する際に必要な情報が設定される。この複数のレジスタに内部コマンドを実行する際に必要な情報が設定されると、フラッシュメモリシーケンサブロック１２は、その情報に基づいて処理を実行する。ここで、「内部コマンド」とは、コントローラ３からフラッシュメモリ２に与えられるコマンドであり、ホストシステム４からフラッシュメモリシステム１に与えられるコマンドである「外部コマンド」と区別される。
【００２６】
フラッシュメモリインターフェースブロック１０は、内部バス１４を介して、フラッシュメモリ２とデータ、アドレス情報、ステータス情報、内部コマンド情報及びデバイスＩＤ情報等の授受を行う機能ブロックである。
【００２７】
ＥＣＣブロック１１は、フラッシュメモリ２に書込むデ―タに付加されるエラーコレクションコードを生成するとともに、読出しデータに付加されたエラーコレクションコードに基づいて、読出したデータに含まれる誤りを検出・訂正する機能ブロックである。
【００２８】
[フラッシュメモリ２の説明]
フラッシュメモリ２は、ＮＡＮＤ型フラッシュメモリであり、ストレージデバイスへの用途として(ハードディスクの代わりになるものとして)開発された不揮発性メモリである。ＮＡＮＤ型フラッシュメモリは、ランダムアクセスを行なうことができず、書込みと読出しはページ単位で、消去はブロック単位で行なわれる。又、データの上書きができないので、データを書込むときは、消去されている領域にデータの書込みが行なわれる。
【００２９】
フラッシュメモリ２は、このような特徴を有するため、通常、データの書替を行なう場合には、ブロック消去されている消去済ブロックに新たなデータ（書替後のデータ）を書込み、古いデータ（書替前のデータ）が書込まれていたブロックを消去するという処理を行なっている。
【００３０】
このようなデータの書替を行なった場合、書替後のデータは書替前と異なるブロックに書込まれるため、ホストシステム４側から与えられるアドレスに基づく論理ブロックアドレスと、フラッシュメモリ２内でのブロックアドレスである物理ブロックアドレスとの対応関係は、データを書替える毎に動的に変化する。この論理ブロックアドレスと物理ブロックアドレスとの対応関係は、通常、その対応関係を示したアドレス変換テーブルによって管理されており、アドレス変換テーブルは、後述する対応論理ブロックアドレスに基づいて作成される。
【００３１】
ここで、上記ブロックとページの関係を図２を参照して説明する。
図２（ａ），（ｂ）は、ブロック及びページの関係を説明する説明図である。
フラッシュメモリにおけるブロックとページの関係は、フラッシュメモリの仕様によって異なるが、一般的なフラッシュメモリでは、図２（ａ）に示したように、１ブロックが３２ページ（Ｐ０〜Ｐ３１）で構成され、各ページが５１２バイトのユーザ領域と１６バイトの冗長領域で構成されている。
【００３２】
又、記憶容量の増加に伴い、図２（ｂ）に示したように、１ブロックが６４ページ（Ｐ０〜Ｐ６３）で構成され、各ページが２０４８バイトのユーザ領域と６４バイトの冗長領域で構成されているものも提供されている。
ユーザ領域は、主に、ホストシステム４から供給されるデ―タが記憶される領域であり、冗長領域は、エラーコレクションコード、対応論理ブロックアドレス及びブロックステータス等の付加データが記憶される領域である。エラ―コレクションコードは、ユーザ領域に記憶されているデータに含まれる誤りを検出、訂正するための付加データであり、外部のＥＣＣブロックによって生成される。対応論理ブロックアドレスは、そのブロックにデータが格納されている場合に、そのブロックがどの論理ブロックアドレスに対応するかを示している。
【００３３】
尚、そのブロックにデータが格納されていない場合は、対応論理ブロックアドレスも格納されていないので、対応論理ブロックアドレスが格納されているか否かで、そのブロックが消去済ブロックであるか否かを判断することもできる。つまり、対応論理ブロックアドレスが格納されていない場合は、消去済ブロックであると判断される。ブロックステータスは、そのブロックが不良ブロック（正常にデータの書込み等を行なうことができないブロック）であるか否かを示すフラグであり、そのブロックが不良ブロックであると判断された場合には、不良ブロックであることを示すフラグが設定される。
【００３４】
次に、フラッシュメモリ２の回路構成について説明する。フラッシュメモリ２は、一般的なＮＡＮＤ型フラッシュメモリと同様に、書込みデータ若しくは読出しデータを保持するためのレジスタと、データを記憶するメモリセルアレイとによって構成されている。
【００３５】
メモリセルアレイは、複数のメモリセルが直列に接続されたメモリセル群を複数備えており、ワード線によってメモリセル群の特定のメモリセルが選択される。このワード線によって選択されたメモリセルとレジスタの間で、データの複写（レジスタからメモリセルへの複写、若しくはメモリセルからレジスタへの複写）が行なわれる。
【００３６】
メモリセルアレイを構成するメモリセルは、２つのゲートを備えたＭＯＳトランジスタで構成されている。ここで、上側のゲートはコントロールゲートと、下側のゲートはフローティングゲートと呼ばれており、フローティングゲートに電荷（電子）を注入若しくはフローティングゲートから電荷（電子）を排出することによって、データの書込み若しくはデータの消去を行なっている。
【００３７】
フローティングゲートは周囲を絶縁体で囲まれているので、注入された電子は長期間にわたって保持される。尚、フローティングゲートに電子を注入するときは、コントロールゲートが高電位側となる高電圧を印加して電子を注入し、フローティングゲートから電子を排出するときは、コントロールゲートが低電位側となる高電圧を印加して電子を排出する。ここで、フローティングゲートに電子が注入されている状態（書込状態）が、論理値の「０」のデータに対応し、フローティングゲートから電子が排出されている状態（消去状態）が、論理値の「１」のデータに対応する。
【００３８】
［動作説明］
フラッシュメモリシステム１では、ホストシステム４側からの要求に基づいて、フラッシュメモリ２内の同一ブロックに属する連続した複数ページにデータを書込む書込処理を行なうときに、その書込処理の書込開始ページの冗長領域に、書込終了ページを示す終点情報を設定し、書込終了ページの冗長領域に、該書込終了ページに対する書込処理が完了していることを示す処理完了情報を設定する。以下に、この終点情報と処理完了情報について図面を参照して説明する。
【００３９】
図３は、フラッシュメモリ２内のページの冗長領域に設定される終点情報と処理完了情報の一例を示す図である。
図３では、３２個のページで構成されたブロックに対して、ステップ１〜３の書込処理を行なっている。例えば、ステップ１では、ページ０〜１０（Ｐ０〜Ｐ１０の１１個のページ）のユーザ領域にデータが書込まれ、ステップ２では、ページ１１〜２３（Ｐ１１〜Ｐ２３の１３個のページ）のユーザ領域にデータが書込まれ、ステップ３では、ページ２４〜３１（Ｐ２４〜Ｐ３１の８個のページ）のユーザ領域にデータが書込まれる。
【００４０】
各ページのユーザ領域にデータを書込むときに、終点情報若しくは処理完了情報に対応する情報が冗長領域に設定される。ステップ１の書込処理では、書込開始ページであるページ０（Ｐ０）から書込終了ページであるページ１０（Ｐ１０）までの全ての冗長領域に、次回の書込処理（ステップ２）で書込みが開始されるページのページの番号である１１（２進数の０１０１１ｂ）が設定される。この１１（２進数の０１０１１ｂ）は、書込み開始ページに、書込み対象のページ数を加算した値であり、書込終了ページに対応する。
【００４１】
ステップ１と同様、ステップ２の書込処理では、書込開始ページであるページ１１（Ｐ１１）から書込終了ページであるページ２３（Ｐ２３）までの全ての冗長領域に、次回の書込処理（ステップ３）で書込みが開始されるページの番号である２４（２進数の１１０００ｂ）が設定される。
ステップ３の書込処理では、このブロックの最終ページであるページ３１（Ｐ３１）までデータが書込まれるので、書込開始ページであるページ２４（Ｐ２４）から書込終了ページであるページ３１（Ｐ３１）までの全ての冗長領域に、０（２進数の０００００ｂ）が設定される。ここで、書込処理の書込終了ページが、そのブロックの最終ページである場合、次回の書込処理で書込みが開始されるページの番号として０（２進数の０００００ｂ）を設定している。
【００４２】
この例では、終点情報に対応する情報として、次回の書込処理で書込みが開始されるページの番号を用い、処理完了情報に対応する情報についても、次回の書込処理で書込みが開始されるページの番号を用いている。
このようにした場合、書込開始ページの冗長領域に設定されているページ番号の１個前のページが書込終了ページに対応するので、書込開始ページの冗長領域に設定されているページ番号の、１個前のページの冗長領域に、書込開始ページと同一のページ番号が設定されていれば、書込開始ページから書込終了ページまでの書込処理が正常に行われたと判断できる。
【００４３】
つまり、ステップ１で、ステップ１の書込開始ページであるページ０（Ｐ０）の冗長領域に、１１（２進数の０１０１１ｂ）が設定されていた場合、ページ１０（Ｐ１０）がステップ１の書込終了ページに対応するので、ページ１０（Ｐ１０）の冗長領域に１１（２進数の０１０１１ｂ）が設定されていれば、ステップ１の書込処理が正常に行われたと判断できる。ステップ２で、ステップ２の書込開始ページであるページ１１（Ｐ１１）の冗長領域に、２４（２進数の１１０００ｂ）が設定されていた場合、ページ２３（Ｐ２３）がステップ２の書込終了ページに対応するので、ページ２３（Ｐ２３）の冗長領域に２４（２進数の１１０００ｂ）が設定されていれば、ステップ２の書込処理が正常に行われたと判断できる。
【００４４】
ステップ３で、ステップ３の書込開始ページであるページ２４（Ｐ２４）の冗長領域に、０（２進数の０００００ｂ）が設定されていた場合、ページ３１（Ｐ３１）がステップ３の書込終了ページに対応するので、ページ３１（Ｐ３１）の冗長領域に０（２進数の０００００ｂ）が設定されていれば、ステップ３の書込処理が正常に行われたと判断てきる。
【００４５】
次に、書込処理が途中で中断した場合について、図４を参照して説明する。
図４は、書込処理中に処理が中断した場合の冗長領域の設定状態（その１）を示す図である。
ステップ２の書込処理では、ページ１１〜２３（Ｐ１１〜Ｐ２３）のユーザ領域にデータが書込まれるので、ページ１１〜２３の冗長領域に、次回の書込処理で書込みが開始されるページの番号である２４（２進数の１１０００ｂ）が設定される。ここで、ユーザ領域に対する書込処理と冗長領域に対する書込処理は同時進行するので、ユーザ領域に対する書込処理が途中で中断したときには、同様に冗長領域に対する書込処理も中断する。
【００４６】
図４に示した例では、ページ１１〜１９（Ｐ１１〜Ｐ１９）の冗長領域に、次回の書込処理で書込みが開始されるページの番号である２４（２進数の１１０００ｂ）が設定されているが、ページ２０〜２３（Ｐ２０〜Ｐ２３）の冗長領域には、２４（２進数の１１０００ｂ）が設定されていない。従って、ステップ２の書込処理は、ページ１９（Ｐ１９）に対する書込処理が終了した後に処理が中断したと判断することができる。つまり、書込終了ページ以外のページの冗長領域にも処理完了情報を設定すれば、書込処理が中断したときの処理の進行状況を検知することができる。
【００４７】
図３の例では、書込開始ページから書込終了ページまでの全て冗長領域に同じ値を設定していたが、書込開始ページと書込終了ページとの間に存在するページの冗長領域には、終点情報若しくは処理完了情報を設定しない構成にしてもよい（図５参照）。
【００４８】
図５は、書込処理中に処理が中断した場合の冗長領域の設定状態（その２）を示す図である。
図５の例では、書込終了ページ以外のページの冗長領域には処理完了情報を設定していない（２進数の１１１１１ｂ）。このようにした場合、書込処理が中断したときの処理の進行状況を検知することはできないが、書込処理が正常に終了したか否かは判断することができる。
【００４９】
つまり、ステップ２の書込処理の書込開始ページであるページ１１（Ｐ１１）の冗長領域には、次回の書込処理で書込みが開始されるページの番号である２４（２進数の１１０００ｂ）が設定されているが、書込終了ページであるページ２３（Ｐ２３）の冗長領域には、処理完了情報として２４（２進数の１１０００ｂ）が設定されていないので、ステップ２の書込処理は途中で中断したと判断することができる。
【００５０】
図３〜図５では、書込開始ページの冗長領域に設定される終点情報と書込終了ページの冗長領域に設定する処理完了情報とを同じにした場合を説明したが、終点情報と書込完了情報とを異ならせてもよい。その例を、図６〜図８を用いて説明する。
【００５１】
図６は、フラッシュメモリ内のページの冗長領域に設定される終点情報と処理完了情報の他の例を示す図である。
図６に示した例では、終点情報に対応する情報として、次回の書込処理で書込みが開始されるページの番号を用い、処理完了情報に対応する情報として、冗長領域に０（２進数の０００００ｂ）を設定し、書込開始ページを除いた書込終了ページまでの全てのページの冗長領域に書込んでいる。この場合、書込開始ページの冗長領域に設定されているページ番号の、１個前のページの冗長領域に、（２進数の０００００ｂ）が設定されていれば、書込開始ページから書込終了ページまでの書込処理が正常に行われたと判断できる。
【００５２】
つまり、ステップ１で、ステップ１の書込開始ページであるページ０（Ｐ０）の冗長領域に、１１（２進数の０１０１１ｂ）が設定されていた場合、ページ１０（Ｐ１０）の冗長領域に０（２進数の０００００ｂ）が設定されていれば、ステップ１の書込処理が正常に行われたと判断できる。
【００５３】
ステップ２で、ステップ２の書込開始ページであるページ１１（Ｐ１１）の冗長領域に、２４（２進数の１１０００ｂ）が設定されていた場合、ページ２３（Ｐ２３）の冗長領域に０（２進数の０００００ｂ）が設定されていれば、ステップ２の書込処理が正常に行われたと判断できる。
【００５４】
ステップ３で、ステップ３の書込開始ページであるページ２４（Ｐ２４）の冗長領域に、０（２進数の０００００ｂ）が設定されていた場合、ページ３１（Ｐ３１）の冗長領域に０（２進数の０００００ｂ）が設定されていれば、ステップ３の書込処理が正常に行われたと判断できる。
【００５５】
図７は、書込処理中に処理が中断した場合の冗長領域の設定状態（その３）を示す図である。
図７のステップ２の書込処理でページ１１〜２３（Ｐ１１〜Ｐ２３）のユーザ領域にデータを書込む予定であったが、ページ２０の書込みが完了した段階で処理が中断された場合、ページ１２〜２０（Ｐ１２〜Ｐ２０）の冗長領域には、０（２進数の０００００ｂ）が設定されているが、ページ２１〜２３（Ｐ２１〜Ｐ２３）の冗長領域には、０（２進数の０００００ｂ）が設定されていない。従って、ステップ２の書込処理は、ページ２０（Ｐ２０）に対する書込処理が終了した後に処理が中断したと判断することができる。つまり、書込終了ページ以外のページの冗長領域にも処理完了情報を設定すれば、書込処理が中断したときの処理の進行状況を検知することができる。
【００５６】
図６の例では、書込開始ページを除く書込終了ページまでの全ての冗長領域に同じ値を設定していたが、書込開始ページと書込終了ページとの間に存在するページの冗長領域には、終点情報若しくは処理完了情報を設定しない構成にしてもよい（図８参照）。
【００５７】
図８は、書込処理中に処理が中断した場合の冗長領域の設定状態（その４）を示す図である。
図８のように、書込終了ページ以外のページの冗長領域には処理完了情報を設定していない。このようにした場合、書込処理が中断したときの処理の進行状況を検知することはできないが、書込処理が正常に終了したか否かは判断することができる。
【００５８】
つまり、ステップ２の書込処理の書込開始ページであるページ１１（Ｐ１１）の冗長領域には、次回の書込処理で書込みが開始されるページの番号である２４（２進数の１１０００ｂ）が設定されているが、書込終了ページであるページ２３（Ｐ２３）の冗長領域には、処理完了情報として０（２進数の０００００ｂ）が設定されていないので、ステップ２の書込処理は途中で中断したと判断することができる。
【００５９】
尚、以上の説明では、終点情報として次回の書込処理で書込みが開始されるページの番号を用いたが、終点情報は直接的若しくは間接的に書込終了ページを示している情報であれば、他の情報であってもよい。例えば、終点情報として書込終了ページの番号等を用いてもよい。処理完了情報についても、上述の例に限定されず、書込終了ページの番号等を用いてもよい。
【図面の簡単な説明】
【００６０】
【図１】本発明に係るフラッシュメモリシステムを概略的に示すブロック図である。
【図２】ブロック及びページの関係を説明する説明図である。
【図３】フラッシュメモリ内のページの冗長領域に設定される終点情報と処理完了情報の一例を示す図である。
【図４】書込処理中に処理が中断した場合の冗長領域の設定状態（その１）を示す図である。
【図５】書込処理中に処理が中断した場合の冗長領域の設定状態（その２）を示す図である。
【図６】フラッシュメモリ内のページの冗長領域に設定される終点情報と処理完了情報の他の例を示す図である。
【図７】書込処理中に処理が中断した場合の冗長領域の設定状態（その３）を示す図である。
【図８】書込処理中に処理が中断した場合の冗長領域の設定状態（その４）を示す図である。
【符号の説明】
【００６１】
１      フラッシュメモリシステム
２      フラッシュメモリ
３      メモリコントローラ
４      ホストシステム
【図１】
2005292926.tif 000003
【図２】
2005292926.tif 000004
【図３】
2005292926.tif 000005
【図４】
2005292926.tif 000006
【図５】
2005292926.tif 000007
【図６】
2005292926.tif 000008
【図７】
2005292926.tif 000009
【図８】
2005292926.tif 000010