(57)【要約】【課題】不揮発性メモリ装置において、記憶性能の低下した不良メモリセルをより迅速かつより精度良く検出する。【解決手段】バイナリデータ判定部は２６、アクセス判定部２０による判定結果に基づいて、当該読み出しアクセスが、第一のメモリ領域１６ａからの読み出しであるときには、Ｈ／Ｌレベルの中央値から上または下にオフセットしたレベルを閾値としてＨ／Ｌレベル判定を行い、他方、第二のメモリ領域１６ｂからの読み出しであるときには、Ｈ／Ｌレベルのほぼ中央値を閾値としてＨ／Ｌレベル判定を行う。【選択図】図２
2005141864.tif 000002
【特許請求の範囲】
【請求項１】
それぞれ複数のメモリセルからなる第一のメモリ領域および第二のメモリ領域を含み、各メモリセルにＨ／Ｌバイナリデータとしてデータを格納する不揮発性メモリ部と、
前記不揮発性メモリ部から読み出されたバイナリデータのＨ／Ｌレベル判定を行うバイナリデータ判定部と、
読み出すデータのアクセス先のアドレスデータに基づいて、その読み出しアクセスが第一のメモリ領域からの読み出しかあるいは第二のメモリ領域からの読み出しかを判定するアクセス判定部と、
を備え、
前記バイナリデータ判定部は、前記アクセス判定部による判定結果に基づいて、第一のメモリ領域からの読み出しであるときには、Ｈ／Ｌレベルの中央値から上または下にオフセットしたレベルを閾値としてＨ／Ｌレベル判定を行うことを特徴とする不揮発性メモリ装置。
【請求項２】
前記バイナリデータ判定部は、前記アクセス判定部による判定結果に基づいて、第二のメモリ領域からの読み出しであるときには、Ｈ／Ｌレベルのほぼ中央値を閾値としてバイナリデータのＨ／Ｌレベル判定を行うことを特徴とする請求項１に記載の不揮発性メモリ装置。
【請求項３】
前記バイナリデータ判定部は、前記アクセス判定部による判定結果に基づいて、第一のメモリ領域からの読み出しであるときには、さらに、Ｈ／Ｌレベルのほぼ中央値を閾値としてバイナリデータのＨ／Ｌレベル判定を行うことを特徴とする請求項１または２に記載の不揮発性メモリ装置。
【請求項４】
入力されたコマンドに基づいて、前記バイナリデータ判定部の閾値を切り替える閾値制御信号を出力するコマンドデコーダと、
前記アクセス判定部における判定結果に基づいて前記閾値制御信号の値を切り替える信号切替部と、
を備え、
前記バイナリデータ判定部は、前記信号切替部を経て入力された閾値制御信号に基づいて閾値を変更することを特徴とする請求項２または３に記載の不揮発性メモリ装置。
【請求項５】
前記バイナリデータ判定部でのＨ／Ｌレベル判定用のプログラムデータが、前記第二のメモリ領域に格納されていることを特徴とする請求項１〜４のうちいずれか一つに記載の不揮発性メモリ装置。
【請求項６】
前記第二のメモリ領域は、不揮発性メモリ部においてアドレスが最大値となる位置から連続する領域として設けられ、
前記アクセス判定部は、バイナリのアドレスデータの最上位ビットから連続するＭビット（ただしＭ＜Ｎ；ここに、Ｎ：アドレスデータの全ビット数）の値に基づいて、第一のメモリ領域からの読み出しかあるいは第二のメモリ領域からの読み出しかを判定することを特徴とする請求項１〜５のうちいずれか一つに記載の不揮発性メモリ装置。
【請求項７】
請求項１〜６のうちいずれか一つに記載の不揮発性メモリ装置と、
前記第一のメモリ領域に書き込むべきデータと、前記第一のメモリ領域に書き込まれた後に当該第一のメモリ領域から読み出され前記バイナリデータ判定部によってＨ／Ｌレベル判定されたデータと、を比較する比較部と、
を備えるマイクロコンピュータ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＥＥＰＲＯＭ（Electronically Erasable and Programmable Read Only Memory）やフラッシュメモリ等の不揮発性メモリを含む装置に関する。
【背景技術】
【０００２】
不揮発性メモリは、通常の使用法の範囲内では、長期に亘って良好なデータ保持性能を維持し、データの書き換えを反復して行った場合にも、メモリセルの劣化等による問題が生じることはあまり無い。
【０００３】
しかしながら、データの書き換えを非常に長期間に亘って頻繁に繰り返して行ったような場合や、劣悪な環境下で使用した場合、あるいは何らかの外的要因により異常が生じたような場合には、特定のメモリセルが劣化し、十分なデータ保持性能が得られなくなってしまう場合もあり得る。
【０００４】
そこで、従来より、不揮発性メモリにデータを書き込む際には、一旦書き込んだデータを読み出して、それを書き込む前のデータと比較し、それらデータの一致／不一致から不良なメモリセル（不良セル）を特定し、当該不良セルをデータ書き込み領域として採用しないことで、データのより確実な保持が図られている。なお、従来のこの種の不揮発性メモリ装置としては、例えば特許文献１に開示されるものがある。
【０００５】
【特許文献１】特開平６−６０６７４号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
このように、従来の不揮発性メモリにおいても、メモリセルの劣化によって特に問題が生じることは無い。しかしながら、より早期にあるいはより精度良くメモリセルの劣化を把握することができれば、不揮発性メモリの交換等の対策をより早期に実行することができるなど、データの保存に関する信頼性は一層向上することになる。
【課題を解決するための手段】
【０００７】
本発明にかかる不揮発性メモリ装置は、それぞれ複数のメモリセルからなる第一のメモリ領域および第二のメモリ領域を含み、各メモリセルにＨ／Ｌバイナリデータとしてデータを格納する不揮発性メモリ部と、上記不揮発性メモリ部から読み出されたバイナリデータのＨ／Ｌレベル判定を行うバイナリデータ判定部と、読み出すデータのアクセス先のアドレスデータに基づいて、その読み出しアクセスが第一のメモリ領域からの読み出しかあるいは第二のメモリ領域からの読み出しかを判定するアクセス判定部と、を備え、上記バイナリデータ判定部は、上記アクセス判定部による判定結果に基づいて、第一のメモリ領域からの読み出しであるときには、Ｈ／Ｌレベルの中央値から上または下にオフセットしたレベルを閾値としてＨ／Ｌレベル判定を行う。
【０００８】
また、上記本発明にかかる不揮発性メモリ装置では、上記バイナリデータ判定部は、上記アクセス判定部による判定結果に基づいて、第二のメモリ領域からの読み出しであるときには、Ｈ／Ｌレベルのほぼ中央値を閾値としてバイナリデータのＨ／Ｌレベル判定を行うのが好適である。
【０００９】
また、上記本発明にかかる不揮発性メモリ装置では、上記バイナリデータ判定部は、上記アクセス判定部による判定結果に基づいて、第一のメモリ領域からの読み出しであるときには、さらに、Ｈ／Ｌレベルのほぼ中央値を閾値としてバイナリデータのＨ／Ｌレベル判定を行うのが好適である。
【００１０】
また、上記本発明にかかる不揮発性メモリ装置では、入力されたコマンドに基づいて、上記バイナリデータ判定部の閾値を切り替える閾値制御信号を出力するコマンドデコーダと、上記アクセス判定部における判定結果に基づいて上記閾値制御信号の値を切り替える信号切替部と、を備え、上記バイナリデータ判定部は、上記信号切替部を経て入力された閾値制御信号に基づいて閾値を変更するのが好適である。
【００１１】
また、上記本発明にかかる不揮発性メモリ装置では、上記バイナリデータ判定部でのＨ／Ｌレベル判定用のプログラムデータが、上記第二のメモリ領域に格納されているのが好適である。
【００１２】
また、上記本発明にかかる不揮発性メモリ装置では、上記第二のメモリ領域は、不揮発性メモリ部においてアドレスが最大値となる位置から連続する領域として設けられ、上記アクセス判定部は、バイナリのアドレスデータの最上位ビットから連続するＭビット（ただしＭ＜Ｎ；ここに、Ｎ：アドレスデータの全ビット数）の値に基づいて、第一のメモリ領域からの読み出しかあるいは第二のメモリ領域からの読み出しかを判定するのが好適である。
【００１３】
また、本発明にかかるマイクロコンピュータは、上記本発明にかかる不揮発性メモリ装置と、上記第一のメモリ領域に書き込むべきデータと、上記第一のメモリ領域に書き込まれた後に当該第一のメモリ領域から読み出され上記バイナリデータ判定部によってＨ／Ｌレベル判定されたデータと、を比較する比較部と、を備える。
【発明を実施するための最良の形態】
【００１４】
以下、本発明の実施形態について図面を参照して説明する。図１は、本発明の実施形態にかかるマイクロコンピュータ１０の一例を示すブロック図、図２は、図１のマイクロコンピュータ１０に含まれる不揮発性メモリ装置１２の一例を示すブロック図、図３は、図２の不揮発性メモリ装置１２に含まれるメモリ領域１６のメモリマップの一例を示す図、また図４は、図３のメモリ領域１６用に構成されたアクセス判定部２０の回路構成の一例を示す図である。
【００１５】
図１のマイクロコンピュータ１０は、不揮発性メモリ装置１２とＣＰＵ１４とを含む。このうち、ＣＰＵ１４は、不揮発性メモリ装置１２に、制御信号（図１の例では、チップイネーブル（ＣＥ）、アウトプットイネーブル（ＯＥ）およびライトイネーブル（ＷＥ））およびアドレスデータ（ＡＤ）を入力し、不揮発性メモリ装置１２のメモリ領域（１６；図２）に対するデータ（ＤＡＴＡ）の読み出し、および当該メモリ領域１６からのデータの書き込みを指令する。また、ＣＰＵ１４は、不揮発性メモリ装置１２に一旦書き込んだ後に読み出されたデータと、書き込むべきデータ（書き込む前のデータ）とを比較し、不揮発性メモリ装置１２のメモリ領域内の不良セルを検出する。すなわち、その比較により一致しないデータがあった場合、当該データを書き込んだメモリセルのデータ保持性能が不十分であったと判定する。そして、不良セルが検出された場合、それ以降、当該不良セルをデータ格納領域として使用しないよう、当該不良セル（または当該不良セルを含む特定の区画）のアドレスを、不揮発性メモリ装置１２または他の記憶領域に記憶する。なお、図１の例では、ＣＰＵ１４が比較部としての機能を有するが、これはあくまで一例であり、この機能を他の外部素子に持たせることももちろん可能である。
【００１６】
図２の不揮発性メモリ装置１２は、メモリ領域１６、制御回路１８、アクセス判定部２０、コマンドデコーダ２２、信号切替部２４を含む。
【００１７】
メモリ領域１６は、多数のメモリセルを有しており、当該メモリセル毎に書き込まれたＨレベルまたはＬレベルを維持することで、バイナリデータを保持する。ただし、各セルに保持されたデータがＨレベルであるかＬレベルであるかは、メモリ領域１６の外部に設けられるバイナリデータ判定部２６（図２の例では制御回路１８に含まれる；後述）で判定される。
【００１８】
また、メモリ領域１６は、図２および図３にその一例を示すように、第一のメモリ領域１６ａと、第二のメモリ領域１６ｂとを含む。このうち、第一のメモリ領域１６ａは、例えば、通常処理においてデータの書き込みおよび消去の許可される領域として設定され、この不揮発性メモリ装置１２の記憶処理の対象たる種々のデータ用の記憶領域である。他方、第二のメモリ領域１６ｂは、例えば、通常処理においてデータの書き込みおよび処理の許可されない領域として設定され、例えば、通常は書き換える必要性の低いプログラムデータ（例えばバイナリデータ判定部２６に所定のデータ判定を実行させるプログラム等）などが記憶される。なお、図３に示すように、第一のメモリ領域１６ａおよび第二のメモリ領域１６ｂは、それぞれ、アドレスの順にメモリセルが連続した領域として設定するのが好適である。ちなみに図３の例では、アドレスが「００００」（１６進数；図では後にＨを付けて表記）〜「Ｆ７ＦＦ」を第一のメモリ領域１６ａとし、「Ｆ８００」〜「ＦＦＦＦ」を第二のメモリ領域１６ｂとしている。
【００１９】
さて、図２の制御回路１８は、メモリ領域１６に対するデータの書き込みおよび読み出しを実行する。この例では、制御回路１８は、その外部（この例ではＣＰＵ１４）から制御信号（この例ではＣＥ，ＯＥ，ＷＥ）、データ、およびアドレスを受け取り、それらより特定される準備コマンド、および当該コマンドにしたがった処理を実行する。さらに、制御回路１８は、メモリ領域１６より取得したデータおよびその格納元のアドレスを、その外部（この例ではＣＰＵ１４）に出力する。
【００２０】
また、この例では、制御回路１８にバイナリデータ判定部２６が設けられている。バイナリデータ判定部２６は、メモリ領域１６の各メモリセルに電圧値として記憶されたデータを取得し、そのＨ／Ｌレベルを判定する。そして、Ｈレベルと判定した場合には「１」を出力し、Ｌレベルと判定した場合には「０」を出力する。こうして出力された「１」および「０」が、メモリ領域１６に記憶されていたデータとして演算処理に用いられる。
【００２１】
バイナリデータ判定部２６は、そのリファレンスレベル（閾値となる電圧レベルＶｒｅｆ）を可変自在なオペアンプ（センスアンプ）を含み、当該リファレンスレベルを変化させることで、バイナリデータのＨ／Ｌ判定条件を厳しくしたり緩和したりすることができる。例えば、ＨレベルおよびＬレベルのほぼ中央となる電圧レベル（例えば既定のＨレベルの電圧値の５０％）をリファレンスレベルとするＨ／Ｌ判定は、比較的緩やかな判定条件であると言える（以下、この判定をノーマルモードとする）。また、ＨレベルおよびＬレベルの中央よりＨレベル側にオフセットした電圧レベル（例えばＨレベルの電圧値の７５％）をリファレンスレベルとするＨレベル判定は、やや厳しいＨレベル判定であると言える（この判定をマージン１モードとする）。また、ＨレベルおよびＬレベルの中央よりＬレベル側にオフセットした電圧レベル（例えばＨレベルの電圧値の２５％）をリファレンスレベルとするＬレベル判定は、やや厳しいＬレベル判定であると言える（この判定をマージン０モードとする）。
【００２２】
ここで、第一のメモリ領域１６ａからの読み出しアクセスと第二のメモリ領域１６ｂからの読み出しアクセスとで、バイナリデータ判定部２６が実行するＨ／Ｌ判定を切り替えるのが好適である。例えば、書き込みの許可される第一のメモリ領域１６ａからの読み出しアクセスについては、上記マージン１モードおよび／またはマージン０モードによってＨ／Ｌ判定を行うのが好適である。これにより、通常処理における不揮発性メモリ装置１２のデータ記憶に関する信頼性を向上することができる。また、通常、各メモリセルにおける記憶性能の劣化は徐々に進行し、例えばＨレベルとして記憶される電圧値は徐々に低下してくるから、マージン１モードで判定を行うことで、メモリセルの劣化を、より早期に検出することができるようになる。マージン０モードでの判定についても同様である。
【００２３】
一方、書き込みが行われないメモリセルは、頻繁に書き込み（書き換え）が行われるメモリセルに比べて記憶性能の劣化は発生しにくいため、記憶性能の劣化のためにＨ／Ｌ判定を厳しく行う必要性は低い。また、演算処理の元となるプログラム（データ）等について厳しいＨ／Ｌ判定を行うと、演算処理を正しく行うことができなくなる等の不都合が生じることが考えられる。そこで、書き込みの禁止される第二のメモリ領域１６ｂからの読み出しアクセスについては、上記ノーマルモードによってＨ／Ｌ判定を行うのが好適である。
【００２４】
そして、こうしたバイナリデータ判定部２６のリファレンスレベル、すなわちＨ／Ｌ判定モードの切り替えを実行すべく、図２の例では、アクセス判定部２０、コマンドデコーダ２２、および信号切替部２４が設けられており、制御回路１８は、これらより受け取った閾値制御信号（ＭＲＧ０，ＭＲＧ１）に基づいて、その切り替えを実行する。なお、図２の例では、制御回路１８は、ＭＲＧ０が「１」の場合には、バイナリデータ判定部２６のリファレンスレベルをマージン０モードとし、ＭＲＧ１が「１」の場合には、マージン１モードとし、ＭＲＧ０およびＭＲＧ１のいずれもが「０」の場合には、ノーマルモードとする。
【００２５】
アクセス判定部２０は、メモリ領域１６に対する読み出しアクセスが、第一のメモリ領域１６ａからの読み出しであるか、あるいは第二のメモリ領域１６ｂからの読み出しであるかを判定する。その判定は、当該アクセスの読み出し元のアドレスに基づいて行うことができる。
【００２６】
図４は、図３のメモリ領域１６からの読み出しアクセスを対象として構築されたアクセス判定部２０の一例を示す図である。ここで、図３のように、第二のメモリ領域１６ｂのアドレスは、１６進数表記で「Ｆ８００」〜「ＦＦＦＦ」である場合、２進数表記（バイナリ）では「１１１１１０００００００００００」〜「１１１１１１１１１１１１１１１１」となる。すなわち、この場合、第二のメモリ領域１６ｂのバイナリのアドレスデータは、１６ビットのデータのうち連続する上位５ビット（ＡＤ１１〜ＡＤ１５）が全て「１」となる。そこで、図４のアクセス判定部２０は、それらアドレスデータ（ＡＤ１１〜ＡＤ１５）を入力とするＮＡＮＤゲート２８ａ，２８ｂ、当該ＮＡＮＤゲート２８ａ，２８ｂの出力を入力とするＮＯＲゲート３０、および当該ＮＯＲゲート３０の出力をＤ入力とするディレイフリップフロップ（ＤＦＦ）３２を備え、それら上位５ビットのアドレスデータ（ＡＤ１１〜ＡＤ１５）が全て「１」のときに、ＤＦＦ３２のＱ出力（制御信号Ａ）として「１」が出力されるようになっている。この場合、当然ながら、アドレスデータ（ＡＤ１１〜ＡＤ１５）のうち一つでも「０」が含まれる状態では、制御信号Ａとして「１」は出力されない。
【００２７】
なお、図４のアクセス判定部２０は、さらに、ＣＥおよびＯＥと、ＷＥの反転成分とを入力とするＮＯＲゲート３４を備え、当該ＮＯＲゲート３４の出力がＤＦＦ３２のクロック入力となるよう構成されており、その値が「１」である制御信号Ａは、ＣＥおよびＯＥが「０」であり、かつＷＥが「１」となった場合をトリガとして出力されるようになっている。なお、この例では、ＣＥ、ＯＥおよびＷＥがローアクティブ（すなわちアクティブのとき「０」）に設定されている。つまり、ＮＯＲゲート３４は、チップが選択され（ＣＥ：「０」）、読み出し（出力）が許可され（ＯＥ：「０」）、かつ書き込みが禁止されたとき（ＷＥ：「１」）に、制御信号Ａとして「１」を出力させる設定である。ただし、かかる設定および構成は、あくまで一例であって、アクセス判定部２０の構成は、各信号の設定に合わせて適宜変更すればよいし、また等価な他の回路によっても実現可能である。
【００２８】
さて、図２のコマンドデコーダ２２は、外部（例えばＣＰＵ１４）より入力されたデータ（コマンド）に基づいてバイナリデータ判定部２６のリファレンスレベルを切り替えるための閾値制御信号（ＭＲＧ０Ａ，ＭＲＧ１Ａ）を出力する。図２の例では、コマンドデコーダ２２は、入力されたコマンドにより、マージン０モードが指示された場合にはＭＲＧ０Ａとして「１」を出力し、マージン１モードが指示された場合にはＭＲＧ１Ａとして「１」を出力する。そして、その他の場合には、ＭＲＧ０ＡおよびＭＲＧ１Ａはいずれも「０」を出力する。
【００２９】
信号切替部２４は、アクセス判定部２０の判定結果に基づいて閾値制御信号の値を変更する。図２の例では、アクセス判定部２０より制御信号Ａとして「１」が出力された場合、すなわち第二のメモリ領域１６ｂからの読み出しアクセスであった場合には、コマンドデコーダ２２から出力された閾値制御信号（ＭＲＧ０Ａ，ＭＲＧ１Ａ）の値によらず、制御回路１８に入力される閾値制御信号（ＭＲＧ０，ＭＲＧ１）をいずれも「０」とする。これにより、制御回路１８は、バイナリデータ判定部２６をノーマルモードに設定する。図２の信号切替部２４は、かかる制御を実行すべく、インバータ３６、ＮＡＮＤゲート３８ａ，３８ｂ、およびインバータ４０ａ，４０ｂを備える。ＮＡＮＤゲート３８ａには、インバータ３６を介したアクセス判定部２０の出力とＭＲＧ０Ａとが入力され、当該ＮＡＮＤゲート３８ａの出力がインバータ４０ａによって反転された値が、ＭＲＧ０として制御回路１８に入力される。また、ＮＡＮＤゲート３８ｂには、インバータ３６を介したアクセス判定部２０の出力とＭＲＧ１Ａとが入力され、当該ＮＡＮＤゲート３８ｂの出力がインバータ４０ｂによって反転された値が、ＭＲＧ１として制御回路１８に入力される。なお、かかる設定および構成は、あくまで一例であって、信号切替部２４の構成は、各信号の設定に合わせて適宜変更すればよいし、また等価な他の回路によっても実現可能である。
【００３０】
次に、図２〜図４の不揮発性メモリ装置１２の動作について図面を参照して説明する。図５は、不揮発性メモリ装置１２において、マージン０モードあるいはマージン１モードによってＨ／Ｌ判定が行われ、データが読み出される場合のタイミングチャートの一例であり、そのうち（ａ）はコマンド入力開始時、（ｂ）はコマンド入力終了時、（ｃ）はデータ読み出し時を示す図である。
【００３１】
図５（ａ）〜（ｃ）において、ＣＥはつねに「０」である。すなわち、その間、不揮発性メモリ装置１２が有効となっていることを示す。また、メモリ領域１６からのデータ（ＤＡＴＡ）の読み出し（出力）は、ＯＥをトリガとして実行される。この例では、メモリ領域１６からのデータ読み出しを行うタイミングでＯＥは「０」となる。それ以外のタイミングにおいてＯＥは「１」である。
【００３２】
コマンド（Ｃｏｍｍａｎｄ）は、バイナリデータ判定部２６においてマージン０モードまたはマージン１モードによるＨ／Ｌ判定を行ってデータを読み出す（出力する）ための準備となる処理（例えばリファレンスレベルを変更するための準備）である。当該コマンド（Ｃｏｍｍａｎｄ）は、ＷＥをトリガとして（すなわちＷＥが０となったときに）実行される。このコマンドは、図５の（ａ）〜（ｂ）の間、そのコマンドを実行する前に第二のメモリ領域１６ｂから読み出されたプログラムデータ（ＰＲＯＧ  ＤＴ）にしたがい、複数回に分けて実行される。なお、プログラムデータ（ＰＲＯＧ  ＤＴ）の格納元が、プログラムアドレス（ＰＲＯＧ  ＡＤ）である。
【００３３】
上述したように、図４のアクセス判定部２０からは、読み出しアクセスのアクセス先が第二のメモリ領域１６ｂであるときは、制御信号Ａとして「１」が出力される。そして、その間、ＯＥやＷＥが「０」となってもＤＦＦ３２のクロックの値が変化するのみであり、Ｄ入力としての「１」が変化しない限り、制御信号Ａとしての「１」は変化しない。したがって、第一のメモリ領域１６ａからの読み出しアクセスの無い準備期間としての図５（ａ）および（ｂ）では、制御信号Ａは常に「１」となっている。なお、この間、ＭＲＧ０またはＭＲＧ１は「０」であり、Ｈ／Ｌ判定はノーマルモードで行われる。
【００３４】
コマンドデコーダ２２は、コマンドの実行が完了されると、ＭＲＧ０ＡまたはＭＲＧ１Ａとして「１」を出力する。これは、バイナリデータ判定部２６（および制御回路１８）において、マージン０モードまたはマージン１モードによるＨ／Ｌ判定が可能となったことを意味する。ここで、図５（ｃ）において、制御信号Ａが「１」のときは、第二のメモリ領域１６ｂからのデータ読み出しであることになるが、このときは、ＭＲＧ０ＡまたはＭＲＧ１Ａが「１」であっても、ＭＲＧ０またはＭＲＧ１は「０」となる。したがって、図５（ｃ）で読み出されたプログラムデータ（ＰＲＯＧ  ＤＴ）については、バイナリデータ判定部２６は、ノーマルモードでＨ／Ｌ判定を行う。
【００３５】
そして、図５（ｃ）において、第一のメモリ領域１６ａからのデータ（ＤＡＴＡ  ＤＴ）の読み出しに際し、アクセス判定部２０は、制御信号Ａとして「０」を出力する。このとき、ＭＲＧ０ＡまたはＭＲＧ１Ａが「１」であると、ＭＲＧ０またはＭＲＧ１は「１」となる。したがって、図５（ｃ）で第一のメモリ領域１６ａから読み出されたデータ（ＤＡＴＡ  ＤＴ）については、バイナリデータ判定部２６は、閾値制御信号（ＭＲＧ０，ＭＲＧ１）に従い、マージン０モードまたはマージン１モードによるＨ／Ｌ判定を行う。
【００３６】
次に、図２〜図４の不揮発性メモリ装置１２にデータを書き込んだ場合における、図１のマイクロコンピュータ１０によるデータの検証および不良セルの検出について図面を参照して説明する。図６は、そのフローチャートの一例である。
【００３７】
第一のメモリ領域１６ａに対するデータの書き込み処理の後（ステップＳ１０）、制御回路１８はマージン０モードでＨ／Ｌレベル判定を行い「１」または「０」のデータを読み出す（出力する）ためのコマンドを実行する（ステップＳ１１）。ステップＳ１１におけるタイミングチャートの一例が図５（ａ）〜（ｂ）である。次いで、制御回路１８は、ステップＳ１１によって準備された状態でデータを読み出す（出力する）処理を実行する（ステップＳ１２）。ステップＳ１２におけるタイミングチャートの一例が図５（ｃ）であり、このとき、第一のメモリ領域１６ａから読み出されたデータに対してマージン０モードによるＨ／Ｌレベル判定が実行される。
【００３８】
次いで、ステップＳ１２において出力されたデータ、すなわち一旦第一のメモリ領域１６ａに書き込まれた後に読み出されてマージン０モードでＨ／Ｌ判定されたデータと、書き込むべきデータとが、例えばＣＰＵ１４において比較される（ステップＳ１３）。ここで、データが一致しなかった場合、ＣＰＵ１４は、当該不一致データのメモリセルを不良セルとして検出する（ステップＳ１４）。この後、当該メモリセルを記憶領域として用いないための処理や、データの再書き込み等の処理が実行される。
【００３９】
ステップＳ１３において、データが全て一致した場合、制御回路１８は、マージン１モードでＨ／Ｌ判定を行う場合のステップＳ１５〜Ｓ１７を実行する。これらステップＳ１５〜Ｓ１７での処理は、モードが異なる点以外、ステップＳ１１〜Ｓ１３と同様であるから、その詳細な説明を省略する。
【００４０】
そして、ステップＳ１７においてデータが全て一致した場合、制御回路１８はノーマルモードでＨ／Ｌレベル判定を行い「１」または「０」のデータを読み出す（出力する）ためのコマンドを実行する（ステップＳ１８）。次いで、制御回路１８は、ステップＳ１８によって準備された状態でデータを読み出す（出力する）処理を実行する（ステップＳ１９）。このステップＳ１９で第一のメモリ領域１６ａから読み出されたデータに対して、ノーマルモードによるＨ／Ｌレベル判定が実行される。
【００４１】
最後に、ステップＳ１９において出力されたデータ、すなわち一旦第一のメモリ領域１６ａに書き込まれた後に読み出されてノーマルモードでＨ／Ｌ判定されたデータと、書き込むべきデータとが、例えばＣＰＵ１４において比較される（ステップＳ２０）。このように、図６の例では、マージン０モードおよびマージン１モードによるＨ／Ｌ判定に加え、ノーマルモードによるＨ／Ｌ判定を行うことにより、信頼性の更なる向上が図られている。なお、マージン０モード、マージン１モードおよびノーマルモードを行う順序は、入れ替えても構わない。
【００４２】
以上、本発明の好適な実施形態について説明したが、上記実施形態で説明したのはあくまでその一例に過ぎず、本発明は、種々の変形が可能である。例えば、上記実施形態では、マージン０モード、マージン１モードおよびノーマルモードという、リファレンスレベル（閾値レベル）の異なる３種類のＨ／Ｌレベル判定について開示したが、より多種のＨ／Ｌレベル判定を行うようにしてもよいし、各モードにおけるリファレンスレベルとして、上記実施形態での例示以外の電圧レベルを採用してもよい。また、各部は、等価な別の回路によって構築してもよい。
【図面の簡単な説明】
【００４３】
【図１】本発明の実施形態にかかるマイクロコンピュータの一例を示すブロック図である。
【図２】本発明の実施形態にかかる不揮発性メモリ装置の一例を示すブロック図である。
【図３】本発明の実施形態にかかる不揮発性メモリ装置に含まれるメモリ領域のメモリマップの一例を示す図である。
【図４】本発明の実施形態にかかる不揮発性メモリ装置に含まれるアクセス判定部の回路構成の一例を示す図である。
【図５】本発明の実施形態にかかる不揮発性メモリ装置において実行されるコマンドおよび当該コマンドにしたがったデータの読み出し（出力）の一例を示すタイミングチャートである。
【図６】本発明の実施形態にかかる不揮発性メモリ装置に対するデータ書き込み時に実行されるデータの検証および不良セルの検出の一例を示すフローチャートである。
【符号の説明】
【００４４】
１０  マイクロコンピュータ、１２  不揮発性メモリ装置、１４  ＣＰＵ、１６  メモリ領域、１６ａ  第一のメモリ領域、１６ｂ  第二のメモリ領域、１８  制御回路、２０  アクセス判定部、２２  コマンドデコーダ、２４  信号切替部、２６  バイナリデータ判定部、２８ａ，２８ｂ  ＮＡＮＤゲート、３０  ＮＯＲゲート、３２  ディレイフリップフロップ（ＤＦＦ）、３４  ＮＯＲゲート、３６  インバータ、３８ａ，３８ｂ  ＮＡＮＤゲート、４０ａ，４０ｂ  インバータ。
【図１】
2005141864.tif 000003
【図２】
2005141864.tif 000004
【図３】
2005141864.tif 000005
【図４】
2005141864.tif 000006
【図５】
2005141864.tif 000007
【図６】
2005141864.tif 000008