(57)【要約】【課題】不揮発性メモリにおける電源遮断時の異常を迅速に解消できるようにする。【解決手段】半導体メモリ装置１を、フラッシュメモリ等の不揮発性メモリ２と、データの書き込みおよび消去等の制御を行う制御部３と、データの入出力を行うためのインタフェース４とにより構成する。不揮発性メモリ２の記憶領域を第１および第２のバンクＢ１，Ｂ２に分け、各バンクＢ１の状態を表すフラグをバンクＢ２に、バンクＢ２の状態を表すフラグをバンクＢ１に書き込む。【選択図】図１
2010134822.tif 000002
【特許請求の範囲】
【請求項１】
不揮発性メモリおよび該不揮発性メモリに対するデータの書き込みおよび消去の制御を行う制御部を備えた半導体メモリ装置において、
前記制御部は、前記不揮発性メモリを複数の記憶領域により管理し、各記憶領域の状態情報を自身とは異なる他の記憶部に書き込み、前記データの消去中に電源が遮断された場合、電源オン時における前記各記憶領域に書き込まれた状態情報に基づいて、前記電源遮断時に前記データが消去中であった消去中記憶領域を検出し、少なくとも該消去中記憶領域の異常状態を解消するよう前記不揮発性メモリを制御することを特徴とする半導体メモリ装置。
【請求項２】
前記他の記憶部は、前記自身とは異なる他の記憶領域であることを特徴とする請求項１記載の半導体メモリ装置。
【請求項３】
前記制御部は、前記不揮発性メモリを２つの記憶領域により管理し、前記電源オン時における一方の記憶領域に書き込まれた状態情報が消去中である場合、他方の記憶領域のデータの消去を実行し、該消去が完了した後に前記一方の記憶領域へのデータの書き込みまたは消去を実行することにより前記消去中記憶領域の異常状態を解消するよう、前記不揮発性メモリを制御することを特徴とする請求項２記載の半導体メモリ装置。
【請求項４】
前記制御部は、前記各記憶領域に書き込まれるデータ量を管理する管理情報を該各記憶領域自身に書き込み、該管理情報にも基づいて前記消去中記憶領域を検出するよう、前記不揮発性メモリを制御することを特徴とする請求項２または３記載の半導体メモリ装置。
【請求項５】
前記制御部は、前記不揮発性メモリを３以上の記憶領域により管理し、前記各記憶領域の状態情報を自身とは異なる他の複数の記憶領域に書き込み、前記電源オン時における前記消去中記憶領域の検出を、前記複数の記憶領域に書き込まれた前記各記憶領域の状態情報に基づいて行うよう、前記不揮発性メモリを制御することを特徴とする請求項２記載の半導体メモリ装置。
【請求項６】
前記他の記憶部は、前記不揮発性メモリとは異なる、専用の電源を有する他の不揮発性メモリであることを特徴とする請求項１記載の半導体メモリ装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、不揮発性メモリにデータの書き込みを行う半導体メモリ装置に関するものである。
【背景技術】
【０００２】
書き換え可能なフラッシュメモリ等の不揮発性メモリを有する半導体メモリ装置は、デジタルカメラ等のメモリカードの他、各種電子機器の記憶装置として広く用いられている。このような不揮発性メモリにおいては、すでにデータが書き込まれている記憶領域に新たなデータを書き込む際には、書き込まれているデータを一旦消去することが必要となる。ここで、フラッシュメモリは、データの書き込みおよび読み出しは、比較的大きいブロック単位（例えば５１２バイト）で行われるが、消去は複数ブロックからなる記憶領域単位で行われる。このように、フラッシュメモリにおいては、データの消去の単位が大きいため、数ミリから数十ミリ秒という、比較的長いデータ消去時間が必要であり、その結果、データの書き込み中に電源遮断が生じてしまう可能性が高くなる。
【０００３】
このため、不揮発性メモリに電源遮断が生じた場合の異常を解消するための各種手法が提案されている。例えば、フラッシュメモリ上の消去ブロックごとに、各ブロックの状態を表すフラグを持たせるとともに、ブロック内のセクタ毎にフラグを持たせ、システムの起動時に各消去ブロックおよび各セクタのフラグを読み出し、このフラグに基づいてフラッシュメモリに記憶されているデータを保証するシステムが提案されている（特許文献１参照）。また、半導体メモリ装置に第１および第２の不揮発性メモリを設け、第１の不揮発性メモリのデータへの書き込み時にその経過を第２の不揮発性メモリに記憶しておき、電源投入時にその経過の情報に基づいて、電源遮断時の異常を解消する手法も提案されている（特許文献２参照）。さらに、一連のデータ書き込み中に、データが書き換えられたブロックに対するアドレス管理用情報を無効予定情報とし、一連の書き込みが終了するまでは書き込みを禁止することにより、データ書き込み中に電源遮断が生じても、書き込み前の状態に戻すことができるようにした手法も提案されている（特許文献３参照）。
【特許文献１】特開２００１−５１８８９号公報
【特許文献２】特開２００５−２２２２０２号公報
【特許文献３】特開２００５−２４３０００号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかしながら、特許文献１に記載された手法では多数のフラグをすべて検索する必要があるため、どのブロックがデータ消去中であったかを検出するためには、処理に時間を要する。また、特許文献２に記載された手法では、第２の不揮発性メモリへのデータの書き込み時に電源遮断が発生してしまうと、電源遮断時の異常を解消することができない。さらに特許文献３に記載された手法では、データを確実に保護することができるものの、データそのものを記憶するための領域が必要であるため、その領域にデータを移行するための処理に時間を要するものとなる。
【０００５】
本発明は上記事情に鑑みなされたものであり、不揮発性メモリにおける電源遮断時の異常を迅速に解消できるようにすることを目的とする。
【課題を解決するための手段】
【０００６】
本発明による半導体メモリ装置は、不揮発性メモリおよび該不揮発性メモリに対するデータの書き込みおよび消去の制御を行う制御部を備えた半導体メモリ装置において、
前記制御部は、前記不揮発性メモリを複数の記憶領域により管理し、各記憶領域の状態情報を自身とは異なる他の記憶部に書き込み、前記データの消去中に電源が遮断された場合、電源オン時における前記各記憶領域に書き込みまれた状態情報に基づいて、前記電源遮断時に前記データが消去中であった消去中記憶領域を検出し、少なくとも該消去中記憶領域の異常状態を解消するよう前記不揮発性メモリを制御することを特徴とするものである。
【０００７】
「各記憶領域の状態情報を自身とは異なる他の記憶部に書き込む」とは、ある記憶領域の状態情報を、その記憶領域とは異なる記憶部に書き込むことを意味する。
【０００８】
「少なくとも消去中記憶領域の異常状態を解消する」とは、消去中記憶領域のみならず、他に異常があった記憶領域の異常状態を解消することをも意味する。
【０００９】
なお、本発明による半導体メモリ装置においては、前記他の記憶部を、前記自身とは異なる他の記憶領域としてもよい。
【００１０】
また、本発明による半導体メモリ装置においては、前記制御部を、前記不揮発性メモリを２つの記憶領域により管理し、前記電源オン時における一方の記憶領域に書き込まれた状態情報が消去中である場合、他方の記憶領域のデータの消去を実行し、該消去が完了した後に前記一方の記憶領域へのデータの書き込みまたは消去を実行することにより前記消去中記憶領域の異常状態を解消するよう、前記不揮発性メモリを制御するものとしてもよい。
【００１１】
また、本発明による半導体メモリ装置においては、前記制御部を、前記各記憶領域に書き込まれるデータ量を管理する管理情報を該各記憶領域自身に書き込み、該管理情報にも基づいて前記消去中記憶領域を検出するよう、前記不揮発性メモリを制御するものとしてもよい。
【００１２】
「管理情報」とは、記憶領域に書き込まれるデータをチェックすることが可能な情報であり、具体的にはチェックサムおよびＣＲＣ等を用いることができる。
【００１３】
また、本発明による半導体メモリ装置においては、前記制御部を、前記不揮発性メモリを３以上の記憶領域により管理し、前記各記憶領域の状態情報を自身とは異なる他の複数の記憶領域に書き込み、前記電源オン時における前記消去中記憶領域の検出を、前記複数の記憶領域に書き込まれた前記各記憶領域の状態情報に基づいて行うよう、前記不揮発性メモリを制御するものとしてもよい。
【００１４】
また、本発明による半導体メモリ装置においては、前記他の記憶部を、前記不揮発性メモリとは異なる、専用の電源を有する他の不揮発性メモリとしてもよい。
【００１５】
「専用の電源」とは、不揮発性メモリにデータを書き込むための電源が遮断されても、他の不揮発性メモリに電力を供給可能な電源を意味する。
【発明の効果】
【００１６】
本発明によれば、不揮発性メモリが複数の記憶領域により管理され、各記憶領域の状態情報が自身とは異なる他の記憶部に書き込まれる。そして、データの消去中に電源が遮断された場合、電源オン時における各記憶領域に書き込まれた状態情報に基づいて消去中記憶領域が検出され、少なくとも消去中記憶領域の異常状態を解消するよう不揮発性メモリが制御される。ここで、不揮発性メモリは記憶領域単位でデータの消去が行われるため、不揮発性メモリを複数の記憶領域により管理することにより、不揮発性メモリへのデータの消去中に電源遮断が生じた場合、正常にデータの書き込みまたは消去が完了している記憶領域が必ず存在することとなる。このため、データの消去中に電源が遮断されても、他の記憶部に書き込まれている状態情報を参照すれば、いずれの記憶領域が消去中であったかを、特許文献１に記載された手法のように多数のフラグの検索を行うことなく検出することができる。したがって、本発明によれば、電源遮断時における消去中記憶領域の異常を迅速に解消することができる。
【００１７】
また、他の記憶部を複数の記憶領域のそれぞれについて、それぞれとは異なる他の記憶領域とすることにより、装置に他のメモリを設ける必要がなくなるため、装置の構成を簡易なものとすることができる。
【００１８】
また、不揮発性メモリを互いに対応する２つの記憶領域により管理し、電源オン時における一方の記憶領域に書き込まれた状態情報が消去中である場合、他方の記憶領域のデータの消去を実行し、消去が完了した後に一方の記憶領域へのデータの書き込みまたは消去を実行して消去中記憶領域の異常状態を解消することにより、消去中記憶領域の異常状態を直ちに解消して、データの書き込みを行うことができることとなる。
【００１９】
また、各記憶領域に書き込まれるデータ量を管理する管理情報を各記憶領域自身に書き込み、管理情報にも基づいて消去中記憶領域を検出することにより、消去中記憶領域に書き込まれている状態情報が破損し、記憶領域間の状態情報に矛盾が生じたような場合でも、消去中記憶領域を確実に検出することができる。
【００２０】
また、不揮発性メモリを３以上の記憶領域に管理し、各記憶領域の状態情報を自身とは異なる他の複数の記憶領域に書き込み、電源オン時における消去中記憶領域の検出を、複数の記憶領域に書き込まれた各記憶領域の状態情報に基づいて行うことにより、消去中記憶領域に書き込まれている状態情報が破損し、記憶領域間の状態情報に矛盾が生じたような場合でも、消去中記憶領域を確実に検出することができる。
【００２１】
また、他の記憶部を、不揮発性メモリとは異なる、専用の電源を有する他の不揮発性メモリとすることにより、不揮発性メモリおよび他の不揮発性メモリの双方に同時に電源遮断が生じる可能性はきわめて低いものとなるため、状態情報が破損する可能性をより低減して、消去中記憶領域を確実に検出することができることとなる。
【発明を実施するための最良の形態】
【００２２】
以下、図面を参照して本発明の実施形態について説明する。図１は本発明の第１の実施形態による半導体メモリ装置の構成を示す概略ブロック図である。図１に示すように第１の実施形態による半導体メモリ装置１は、フラッシュメモリ等の不揮発性メモリ２と、データの書き込みおよび消去等の制御を行う制御部（本実施形態においてはＣＰＵ）３と、データの入出力を行うためのインターフェース４とを備える。
【００２３】
本実施形態においては、不揮発性メモリ２の記憶領域は第１および第２のバンクＢ１，Ｂ２に分けられている。またバンクＢ１，Ｂ２はデータの書き込み単位である複数のブロックに分けられており、複数のブロックのうちの１つのブロックには、他方のバンクの状態を表すフラグが書き込まれる。すなわち、バンクＢ１にはバンクＢ２の状態を表すフラグが、バンクＢ２にはバンクＢ１の状態を表すフラグがそれぞれ書き込まれる。ここで、フラグの値としては、バンクの消去が完了していることおよび使用中であることを表す0×7777、0×1111、消去中であることを表す0×3333、およびそれ以外の状態であることを表す0×FFFFが用いられる。なお、図１においては、バンクＢ１，Ｂ２のフラグはともに0×FFFFが設定されている。また、0×FFFFのフラグは、他のフラグとは異なり、フラグが書き込まれるバンク自身の状態を表すものとなる。また、フラグはビット数が減少する方向に変化することとなるため、0×7777、0×3333、0×1111の順に変化することとなる。
【００２４】
次いで、本実施形態による半導体メモリ装置１におけるデータの書き込みおよび消去、並びにフラグの設定について説明する。図２はバンクＢ１，Ｂ２の書き込み状態が不明の場合におけるデータの書き込みおよび消去、並びにフラグの設定を説明するための図である。なお、この状態においては、バンクＢ１，Ｂ２のフラグはともに0×FFFFに設定されている。この状態にある不揮発性メモリ２は、まずバンクＢ１のデータが消去され、次いでバンクＢ２のデータが消去される。そして、バンク１におけるバンクＢ２についてのフラグが0×7777に設定され、次いでバンク２におけるバンクＢ１についてのフラグが0×7777に設定される。これにより、バンクＢ１，Ｂ２はデータを書き込み可能な状態となる。
【００２５】
図３はバンクＢ１，Ｂ２にデータが書き込まれていない場合におけるデータの書き込みおよびフラグの設定を説明するための図である。データの書き込みが開始されるとバンクＢ１のブロックから順にデータが書き込まれる。なお、図３および以降の説明においては、データが書き込まれていることを斜線で示す。そしてバンクＢ１が一杯になると、次いでバンクＢ２へのデータの書き込みが開始される。なお、バンクＢ１，Ｂ２のフラグは使用中であることを表す0×7777に設定された状態となっている。
【００２６】
図４はバンクＢ１，Ｂ２が使用中の場合におけるデータの書き込みおよび消去、並びにフラグの設定を説明するための図である。図３の最後に示す状態からさらにデータが書き込まれ、バンクＢ２の残りのブロックが１つになると、バンクＢ１のデータの消去を開始するために、バンクＢ２におけるバンクＢ１についてのフラグが、消去中であることを示す0×3333に設定される。バンクＢ１の消去が開始されると、バンクＢ１のフラグが0×FFFFに設定される。そして、バンクＢ１の消去が完了すると、バンクＢ１におけるバンクＢ２についてのフラグが、使用可能であることを表す0×7777に設定され、さらにバンクＢ２におけるバンクＢ１についてのフラグが、使用可能であることを表す0×1111に設定される。これにより、バンクＢ２へのデータの書き込みが再開される。
【００２７】
図５はバンクＢ１，Ｂ２が使用中の場合におけるデータの書き込みおよび消去、並びにフラグの設定を説明するための図である。図４の最後に示す状態からさらにバンクＢ１にデータが書き込まれ、バンクＢ１の残りのブロックが１つになると、バンクＢ２のデータの消去を開始するために、バンクＢ１におけるバンクＢ２についてのフラグが、消去中であることを示す0×3333に設定される。バンクＢ２の消去が開始されると、バンクＢ２のフラグが0×FFFFに設定される。そして、バンクＢ２の消去が完了すると、バンクＢ２におけるバンクＢ１についてのフラグが、使用可能であることを表す0×7777に設定され、さらにバンクＢ１におけるバンクＢ２についてのフラグが、使用可能であることを表す0×1111に設定される。これにより、バンクＢ１へのデータの書き込みが再開される。
【００２８】
図６はデータの書き込みを行っている状態において電源遮断が発生した場合におけるバンクＢ１，Ｂ２上のフラグが取り得る組合せ、およびフラグがその状態のときに電源がオンとされた場合に行う処理を示すテーブルである。なお、図６には９通りの組合せが示されており、そのそれぞれに１〜９の番号を付与するものとする。また、バンクＢ１上のフラグとは、バンクＢ１に書き込まれたバンクＢ２についてのフラグを、バンクＢ２上のフラグとは、バンクＢ２に書き込まれたバンクＢ１についてフラグをそれぞれ意味する。
【００２９】
１番目の組合せは、図２に示す左から３つ分の状態のときに電源遮断が生じた場合のものであり、電源オン時の処理は、バンクＢ１，Ｂ２とも消去および0×7777のフラグを設定する処理となる。なお、これは図２の処理に相当する。また、この処理を第１の処理と称する。
【００３０】
２番目の組合せは、図４に示す左から３番目の状態のときに電源遮断が生じた場合のものであり、電源オン時の処理は、バンクＢ１に対しては、消去およびバンクＢ２についての0×7777のフラグを設定する処理となり、バンクＢ２に対しては、バンク１の消去後、バンクＢ１についての0×1111のフラグを設定する処理となる。なお、これは図４の左から３番目以降の処理に相当する。また、この処理を第２の処理と称する。
【００３１】
３番目の組合せは、本実施形態においては発生し得ない状態のときに電源遮断が生じた場合のものであり、電源オン時の処理は、バンクＢ１に対しては、消去およびバンクＢ２についての0×7777のフラグを設定する処理となり、バンクＢ２に対しては、フラグを変更することなく通常使用の状態を維持する処理となる。この処理を第３の処理と称する。
【００３２】
４番目の組合せは、図５に示す左から３番目の状態のときに電源遮断が生じた場合のものであり、電源オン時の処理は、バンクＢ１に対しては、バンクＢ２の消去後、バンクＢ２についての0×1111のフラグを設定する処理となり、バンクＢ２に対しては、消去およびバンクＢ１についての0×7777のフラグを設定する処理となる。なお、これは図５の左から３番目以降の処理に相当する。また、この処理を第４の処理と称する。
【００３３】
５番目の組合せは、一方のバンクの消去中に電源遮断が生じ、偶然消去中のバンクのフラグが0×FFFFから0×3333となってしまった場合のものであり、電源オン時の処理は、双方のバンクＢ１，Ｂ２に対して、消去および双方のバンクについての0×7777のフラグを設定する処理となる。この処理を第５の処理と称する。
【００３４】
６番目の組合せは、図５に示す左から４番目の状態のときに電源遮断が生じた場合のものであり、電源オン時の処理は、バンクＢ１に対しては、バンクＢ２の消去後、バンクＢ２についての0×1111のフラグを設定する処理となり、バンクＢ２に対しては、消去およびバンクＢ１についての0×7777のフラグを設定する処理となる。なお、これは図５の左から３番目以降の処理に相当する。また、この処理を第６の処理と称する。
【００３５】
７番目の組合せは、図２に示す左から４番目の状態のときに電源遮断が生じた場合のものであり、電源オン時の処理は、バンクＢ１に対しては通常使用の状態を維持する処理となり、バンク２に対しては消去およびバンクＢ１についての0×7777のフラグを設定する処理となる。また、この処理を第７の処理と称する。
【００３６】
８番目の組合せは、図４に示す左から４番目の状態のときに電源遮断が生じた場合のものであり、電源オン時の処理は、バンクＢ１に対しては、消去およびバンクＢ２についての0×7777のフラグを設定する処理となり、バンクＢ２に対しては、バンク１の消去後、バンクＢ１についての0×1111のフラグを設定する処理となる。なお、これは図４の左から３番目以降の処理に相当する。また、この処理を第８の処理と称する。
【００３７】
９番目の組合せは、図３に示すすべての状態、並びに図４および図５に示す左から１，５，７番目の状態のときに電源遮断が生じた場合のものであり、電源オン時の処理は、双方のバンクＢ１，Ｂ２が消去状態でないことから、通常使用の状態を維持する処理となる。また、この処理を第９の処理と称する。
【００３８】
次いで、第１の実施形態において行われる処理について説明する。図７および図８は第１の実施形態において電源遮断が生じた後の電源オン時に行われる処理を示すフローチャートである。電源オンとされることにより制御部３が処理を開始し、まずバンクＢ２に書き込まれているバンクＢ１のフラグを読み出し（ステップＳＴ１）、次いでバンクＢ１に書き込まれているバンクＢ２のフラグを読み出す（ステップＳＴ２）。
【００３９】
次いで、読み出したフラグが１番目の組合せであるか否かを判定し（ステップＳＴ３）、ステップＳＴ３が肯定されると第１の処理を行い（ステップＳＴ４）、処理を終了する。
【００４０】
ステップＳＴ３が否定されると、読み出したフラグが２番目の組合せであるか否かを判定し（ステップＳＴ５）、ステップＳＴ５が肯定されると第２の処理を行い（ステップＳＴ６）、処理を終了する。
【００４１】
ステップＳＴ５が否定されると、読み出したフラグが３番目の組合せであるか否かを判定し（ステップＳＴ７）、ステップＳＴ７が肯定されると第３の処理を行い（ステップＳＴ８）、処理を終了する。
【００４２】
ステップＳＴ７が否定されると、読み出したフラグが４番目の組合せであるか否かを判定し（ステップＳＴ９）、ステップＳＴ９が肯定されると第４の処理を行い（ステップＳＴ１０）、処理を終了する。
【００４３】
ステップＳＴ９が否定されると、読み出したフラグが５番目の組合せであるか否かを判定し（ステップＳＴ１１）、ステップＳＴ１１が肯定されると第５の処理を行い（ステップＳＴ１２）、処理を終了する。
【００４４】
ステップＳＴ１１が否定されると、読み出したフラグが６番目の組合せであるか否かを判定し（ステップＳＴ１３）、ステップＳＴ１３が肯定されると第６の処理を行い（ステップＳＴ１４）、処理を終了する。
【００４５】
ステップＳＴ１３が否定されると、読み出したフラグが７番目の組合せであるか否かを判定し（ステップＳＴ１５）、ステップＳＴ１５が肯定されると第８の処理を行い（ステップＳＴ１６）、処理を終了する。
【００４６】
ステップＳＴ１５が否定されると、読み出したフラグが８番目の組合せであるか否かを判定し（ステップＳＴ１７）、ステップＳＴ１７が肯定されると第８の処理を行い（ステップＳＴ１８）、処理を終了する。
【００４７】
ステップＳＴ１７が否定されると、読み出したフラグは９番目の組合せであることから第９の処理を行い（ステップＳＴ１９）、処理を終了する。
【００４８】
このように、第１の実施形態においては、不揮発性メモリ２の記憶領域を２つのバンクＢ１，Ｂ２に分けて管理し、各バンクＢ１，Ｂ２の状態を表すフラグを自身とは異なるバンクに書き込み、データの消去中に電源が遮断された場合、電源オン時における各バンクＢ１，Ｂ２に書き込まれたフラグに基づいて消去中であったバンクを検出し、消去中バンクの異常状態を解消するようにしたものである。ここで、不揮発性メモリ２はバンク単位でデータの消去が行われるため、不揮発性メモリ２を複数のバンクＢ１，Ｂ２によって管理することにより、不揮発性メモリ２へのデータの消去中に電源遮断が生じた場合、正常にデータの書き込みまたは消去が完了しているバンクが必ず存在することとなる。このため、データの消去中に電源が遮断されても、他のバンクに書き込まれているフラグを参照すれば、いずれのバンクが消去中であったかを、特許文献１に記載された手法のように、多数のフラグを検索することなく検出することができる。したがって、本実施形態によれば、電源遮断時におけるバンクＢ１，Ｂ２の異常を迅速に解消することができる。
【００４９】
また、電源オン時に一方のバンクのフラグが消去中である場合、この一方のバンクのデータの消去を実行し、消去が完了した後に他方のバンクへのデータの書き込みまたは消去を実行することにより、電源遮断により異常が生じたバンクＢ１，Ｂ２の異常を直ちに解消して、データの書き込みを行うことができることとなる。
【００５０】
なお、上記第１の実施形態において、バンクＢ１，Ｂ２のフラグが５番目の組合せとなった場合に、双方のバンクＢ１，Ｂ２について、消去および0×7777のフラグを設定する処理を行っているが、５番目の組合せは、一方のバンクの消去中のフラグ0×FFFFが電源遮断が生じた際の何らかの原因により、偶然0×3333となってしまったために生じたものである。このような状態においては、電源遮断時にバンクＢ１が消去中であった場合、バンクＢ２のデータは正常に記録された状態にある。しかしながら、上記第１の実施形態においては、５番目の組合せとなった場合、双方のバンクの消去が行われてしまうため、正常に記憶されているデータも消去されてしまうこととなる。
【００５１】
以下、これを解決するための手法を第２の実施形態として説明する。図９は第２の実施形態における不揮発性メモリ２のバンクＢ１，Ｂ２を模式的に示す図である。図９に示すように第２の実施形態においては、バンクＢ１，Ｂ２に、フラグを書き込むブロックを設けるとともに、各バンクＢ１，Ｂ２に記憶されるデータの誤りを検出するためのチェックサムを書き込むブロックを設けるようにしたものである。
【００５２】
なお、第２の実施形態においては、チェックサムの算出は、バンクＢ１，Ｂ２に記録されるデータのみを用いて行い、フラグのブロックに書き込まれるフラグのデータは使用しないものとする。また、チェックサムはバンクＢ１，Ｂ２にデータが書き込まれる毎に算出する必要があるため、データ件数分のブロックをチェックサム用のブロックとして確保する必要がある。
【００５３】
次いで、第２の実施形態において行われる処理について説明する。なお、第２の実施形態において行われる処理は、上記第１の実施形態においてバンクＢ１，Ｂ２のフラグの組合せが５番目の組合せとなったときに行われるものであるため、ここでは、第１の実施形態におけるステップＳＴ１１が肯定された以降の処理についてのみ説明する。図１０は第２の実施形態において電源遮断が生じた後の電源オン時に行われる処理を示すフローチャートである。
【００５４】
ステップＳＴ１１が否定されると、制御部３は、バンクＢ１，Ｂ２上のチェックサム（すなわちバンクＢ１，Ｂ２に書き込まれているチェックサム）を読み出し（ステップＳＴ２１）、まずバンクＢ１に書き込まれているデータを用いて、バンクＢ１上のチェックサムにエラーが生じているか否かを判定する（ステップＳＴ２２）。ステップＳＴ２２が肯定されると、バンクＢ１の消去中に電源遮断が生じてバンクＢ１上のフラグが0×FFFFから0×3333となってしまったことが推定できるため、バンクＢ１の消去を行い（ステップＳＴ２３）、消去完了後バンクＢ１に書き込まれるバンクＢ２についてのフラグを0×7777に設定し（ステップＳＴ２４）、さらにバンクＢ２に書き込まれるバンクＢ１についてのフラグを0×1111に設定し（ステップＳＴ２５）、処理を終了する。
【００５５】
一方、ステップＳＴ２２が否定されると、バンクＢ２に書き込まれているデータを用いて、バンクＢ２上のチェックサムにエラーが生じているか否かを判定する（ステップＳＴ２６）ステップＳＴ２６が肯定されると、バンクＢ２の消去中に電源遮断が生じてバンクＢ２上のフラグが0×FFFFから0×3333となってしまったことが推定できるため、バンクＢ２の消去を行い（ステップＳＴ２７）、消去完了後バンクＢ２に書き込まれるバンクＢ１についてのフラグを0×7777に設定し（ステップＳＴ２８）、さらにバンクＢ１に書き込まれるバンクＢ２についてのフラグを0×1111に設定し（ステップＳＴ２９）、処理を終了する。
【００５６】
さらに、ステップＳＴ２６が否定されると、電源遮断時の状況が分からないことから、第１の実施形態と同様に第５の処理を行い（ステップＳＴ３０）、処理を終了する。
【００５７】
このように、第２の実施形態においては、バンクＢ１，Ｂ２にチェックサムを書き込み、５番目の組合せのように、バンクＢ１，Ｂ２のフラグのみでは消去中であったバンクを検出不可能な場合にチェックサムを用いるようにしたため、データの消去中であったバンクを確実に検出することができ、その結果、異常がないバンクのデータを消去してしまうことを防止できる。
【００５８】
なお、上記第２の実施形態においては、チェックサムを用いているが、チェックサムに代えてＣＲＣを用いるようにしてもよい。
【００５９】
また、上記第１の実施形態においては、不揮発性メモリ２を２つのバンクに分けて管理しているが３つのバンクに分けるようにしてもよい。以下、これを第３の実施形態として説明する。図１１は第３の実施形態における不揮発性メモリ２のバンクを模式的に示す図である。図１１に示すように第３の実施形態においては、不揮発性メモリ２は第１から第３のバンクＢ１〜Ｂ３に分けられて管理されており、各バンクＢ１〜Ｂ３には自身とは異なるバンクの状態を表すフラグを書き込むための２つのブロックが設けられている。すなわち、バンクＢ１にはバンクＢ２，Ｂ３のフラグが、バンクＢ２にはバンクＢ３，Ｂ１のフラグが、バンクＢ３にはバンクＢ１，Ｂ２のフラグがそれぞれ書き込まれる。
【００６０】
このようにフラグを書き込む場合においては、電源遮断が生じた後の電源オン時に、各バンクに設定されたフラグを読み出し、フラグを比較することにより、いずれのバンクが消去中であったかを判定することができる。例えば、バンクＢ１，Ｂ２が通常状態にあり、バンクＢ３が消去中であるときに電源遮断が生じ、バンクＢ３のフラグが偶然変更されてしまった場合、各バンクＢ１〜Ｂ３のフラグは図１２に示す状態となる。各バンクＢ１〜Ｂ３にはそれぞれ２つのフラグが設定されるため、各バンクＢ１〜Ｂ３設定されたフラグを比較すると、バンクＢ１については２つのフラグはともに0×7777であるため電源遮断が生じた際には通常使用中であったことが分かる。バンクＢ２については0×7777および0×3333が設定されているため、電源遮断が生じた際の状態が分からない。バンクＢ３については２つのフラグはともに0×3333であるため、電源遮断が生じた際には消去中であったことが分かる。
【００６１】
以上より、いすれのフラグも消去中であるバンクを検出することにより、消去中であったバンクが分かるため、電源オン時には消去中であったバンクの消去の処理を実行し、消去後にそのバンクについてのフラグを0×7777に設定すればよいこととなる。これにより、消去中であったバンクを確実に検出することができるため、異常がないバンクのデータを消去してしまうことを防止できる。
【００６２】
なお、上記第３の実施形態においては、不揮発性メモリ２を３つのバンクに分けているが、４以上のバンクに分けるようにしてもよい。この場合、各バンクのフラグは少なくとも２つの他のバンクに書き込むようにすればよい。
【００６３】
次いで、本発明の第４の実施形態について説明する。図１３は本発明の第４の実施形態による半導体メモリ装置の構成を示す概略ブロック図である。なお、第４の実施形態において第１の実施形態と同一の構成については同一の参照番号を付与し、ここでは詳細な説明は省略する。図１３に示すように第４の実施形態による半導体メモリ装置１０は、通常電源により駆動する第１の領域１０Ａおよびバックアップ電源により駆動する第２の領域１０Ｂに分け、第１の領域１０Ａに不揮発性メモリ２およびインターフェース４を、第２の領域１０Ｂに制御部３および他の不揮発性メモリ５を設けるようにした点が第１の実施形態と異なる。
【００６４】
そして、第４の実施形態においては、不揮発性メモリ２の各バンクＢ１，Ｂ２にフラグを書き込む際に、不揮発性メモリ５にフラグをバックアップする。このようにフラグをバックアップ電源により駆動する領域１０Ｂに設けられた不揮発性メモリ５にバックアップすることにより、バックアップ中に通常電源の電源遮断が生じても、バックアップ電源によりバックアップは継続されることとなる。このため、通常電源の電源遮断によって不揮発性メモリ２の各バンクＢ１，Ｂ２のフラグが偶然変更されてしまっても、不揮発性メモリ５に書き込まれたフラグは、各バンクＢ１，Ｂ２の状態を正しく表すものとなる。
【００６５】
したがって、電源遮断が生じた後の電源オン時に、不揮発性メモリ５に記憶されたフラグを参照することにより、各バンクＢ１，Ｂ２の状態を認識することができるため、各バンクＢ１，Ｂ２のフラグの組合せに応じて、上記第１の実施形態と同様の処理を行うことにより、電源遮断により異常が生じたバンクＢ１，Ｂ２の異常を直ちに解消して、データの書き込みを行うことができることとなる。
【００６６】
なお、上記第４の実施形態においては、不揮発性メモリ２の各バンクＢ１，Ｂ２にフラグを書き込む際に、不揮発性メモリ５にフラグをバックアップする構成としているが、不揮発性メモリ２の各バンクＢ１，Ｂ２にフラグを書き込むことなく、不揮発性メモリ５に直接フラグを書き込む構成としてもよい。これにより、通常電源の電源遮断が生じたときのみならず、通常利用時においても不揮発性メモリ５に書き込まれたフラグを参照することにより、判定のための処理を少なくすることができ、その結果、処理を高速に行うことが可能となる。
【００６７】
なお、上記第１から第３の実施形態による半導体メモリ装置は、不揮発性メモリを使用する各種機器に使用することができる。例えば、電話機およびファックスの電話帳、通話履歴および通信履歴を残すためのメモリ、ファックスにおける受信した画像を保存するためのメモリ、孔版印刷機のエラー履歴および所望とする印刷の態様を設定した印刷設定データ等を残すためのメモリ、カーナビゲーションシステムの軌跡データを残すためのメモリ、体重計および血圧計等の健康器具の計測データを残すためのメモリ等に使用することができる。
【図面の簡単な説明】
【００６８】
【図１】本発明の第１の実施形態による半導体メモリ装置の構成を示す概略ブロック図
【図２】バンクＢ１，Ｂ２の書き込み状態が不明の場合におけるデータの書き込みおよび消去、並びにフラグの設定を説明するための図
【図３】バンクＢ１，Ｂ２にデータが書き込まれていない場合におけるデータの書き込みおよびフラグの設定を説明するための図
【図４】バンクＢ１，Ｂ２が使用中の場合におけるデータの書き込みおよび消去、並びにフラグの設定を説明するための図
【図５】バンクＢ１，Ｂ２が使用中の場合におけるデータの書き込みおよび消去、並びにフラグの設定を説明するための図
【図６】データの書き込みを行っている状態において電源遮断が発生した場合におけるバンクＢ１，Ｂ２上のフラグが取り得る組合せ、およびフラグがその状態のときに電源がオンとされた場合に行う処理を示すテーブル
【図７】第１の実施形態において電源遮断が生じた後の電源オン時に行われる処理を示すフローチャート（その１）
【図８】第１の実施形態において電源遮断が生じた後の電源オン時に行われる処理を示すフローチャート（その２）
【図９】第２の実施形態における不揮発性メモリ２のバンクＢ１，Ｂ２を模式的に示す図
【図１０】第２の実施形態において電源遮断が生じた後の電源オン時に行われる処理を示すフローチャート
【図１１】第３の実施形態における不揮発性メモリのバンクを模式的に示す図
【図１２】第３の実施形態における不揮発性メモリのフラグの状態を示す図
【図１３】本発明の第４の実施形態による半導体メモリ装置の構成を示す概略ブロック図
【符号の説明】
【００６９】
１，１０      半導体メモリ装置
２，５    不揮発性メモリ
３    制御部
４    インターフェース
【図１】
2010134822.tif 000003
【図２】
2010134822.tif 000004
【図３】
2010134822.tif 000005
【図４】
2010134822.tif 000006
【図５】
2010134822.tif 000007
【図６】
2010134822.tif 000008
【図７】
2010134822.tif 000009
【図８】
2010134822.tif 000010
【図９】
2010134822.tif 000011
【図１０】
2010134822.tif 000012
【図１１】
2010134822.tif 000013
【図１２】
2010134822.tif 000014
【図１３】
2010134822.tif 000015