(57)【要約】【課題】不揮発性メモリにおいて、書き換え異常や消去異常を検出するフラグ格納領域を設けた場合でも、書き換え異常や消去異常が適切に検出できない問題がある。【解決手段】書き換え異常または消去異常を検出するためのチェックフラグを格納する不揮発性メモリを有する。チェックフラグ用の不揮発性トランジスタが不揮発性トランジスタの制御ゲートに対する印可電圧が書き換えベリファイ電圧にて０（または１）を出力せず消去ベリファイ電圧にて１（または０）を出力しない時は、書き換えまたは消去異常を示すエラー値が生成される。【選択図】図８
2014086108.tif 000002
【特許請求の範囲】
【請求項１】
不揮発性メモリを有し、
前記不揮発性メモリは前記不揮発性メモリの書き換え異常を検出する複数の書き換えチェックフラグを格納する書き換えチェックフラグ格納領域と通常データを格納するデータ格納領域とを有し、
前記複数の書き換えチェックフラグのそれぞれを記憶する第一不揮発性トランジスタは、前記第一不揮発性トランジスタの制御ゲートに対する印可電圧が第一電圧で第一の値を出力する第一状態と、前記第一電圧よりも小さい第二電圧で第二の値を出力する第二状態とを持ち、
前記第一不揮発性トランジスタが前記第一不揮発性トランジスタの制御ゲートに対する印可電圧が前記第一電圧で前記第一の値を出力せず前記第二電圧で前記第二の値を出力しない時は、書き換え異常を示すエラー値が生成される半導体集積回路装置。
【請求項２】
前記不揮発性メモリは、書き換え単位となり、前記データ格納領域と前記書き換えチェックフラグ格納領域をもつ格納領域を複数持ち、
各前記格納領域には互いに異なるアドレスが割り当てられており、
前記複数の書き換えチェックフラグは第一書き換えチェックフラグと第二書き換えチェックフラグとを有し、
前記格納領域の前記通常データを書き換えする際は、
前記第一書き換えチェックフラグを書き換えてから、次に前記通常データの書き換えを行い、その次に前記第二書き換えチェックフラグを書き換える請求項１に記載の半導体集積回路装置。
【請求項３】
前記格納領域が書き換え可能な時は、前記第一および第二書き換えチェックフラグは消去状態となっている請求項２に記載の半導体集積回路装置。
【請求項４】
前記不揮発性メモリは消去単位であるブロックを複数有し、
前記ブロックのそれぞれは前記格納領域を複数と前記不揮発性メモリの消去異常を検出する複数の消去チェックフラグを格納する消去チェックフラグ格納領域とを有し、
前記複数の消去チェックフラグは第一消去チェックフラグと第二消去チェックフラグとを有し、
前記ブロック内のデータの消去処理をする際は、
前記第一消去チェックフラグを書き換えてから、次に前記ブロック内のデータの消去を行い、その次に前記第二消去チェックフラグを書き換える請求項３に記載の半導体集積回路装置。
【請求項５】
中央演算装置を有し、
外部からリセット信号が入力された際、前記書き換えチェックフラグに基づいて書き換えエラーがあったか否かが判別されて、この判別結果が前記中央演算装置が読み出し可能なレジスタに格納される請求項１に記載の半導体集積回路装置。
【請求項６】
前記不揮発性メモリは、書き換え単位となり、前記データ格納領域と前記書き換えチェックフラグ格納領域をもつ格納領域を複数持ち、
各前記格納領域には互いに異なるアドレスが割り当てられており、
前記不揮発性メモリは消去単位であるブロックを複数有し、
前記ブロックのそれぞれは前記格納領域を複数と前記不揮発性メモリの消去異常を検出する複数の消去チェックフラグを格納する消去チェックフラグ格納領域とを有し、
前記中央演算装置は、前記複数のブロックのうちの特定ブロックまたは全てのブロックを指定する指定コマンドを発行し、次に前記指定コマンドに対応する前記ブロックの前記書き換えチェックフラグおよび前記消去チェックフラグを確認する確認コマンドを発行し、その次に前記指定コマンドに対応する前記ブロックの前記書き換えチェックフラグおよび前記消去チェックフラグに基づいて書き換えエラーまたは消去エラーがあるか否かを示す情報が格納された前記レジスタの値が前記中央演算装置によって読み出される請求項５に記載の半導体集積回路装置。
【請求項７】
書き換え対象となる前記データ格納領域を構成する第二不揮発性トランジスタおよび前記第一不揮発性トランジスタの閾値電圧は前記第一電圧以上となるようにされ、
消去対象となる前記データ格納領域を構成する第二不揮発性トランジスタおよび前記第一不揮発性トランジスタの閾値電圧は前記第二電圧以下となるようにされる請求項２に記載の半導体集積回路装置。
【請求項８】
前記データ格納領域を構成する前記第二不揮発性トランジスタの制御ゲートに対する印可電圧が、前記第一電圧と前記第二電圧との間の第三電圧となるとき、前記第一の値が読み出される第三状態と、前記第二の値が読み出される第四状態とがある請求項７に記載の半導体集積回路装置。
【請求項９】
不揮発性メモリを有し、
前記不揮発性メモリは前記不揮発性メモリの消去異常を検出する複数の消去チェックフラグを格納する消去チェックフラグ格納領域と通常データを格納するデータ格納領域とを有し、
前記複数の消去チェックフラグのそれぞれを記憶する第一不揮発性トランジスタは、前記第一不揮発性トランジスタの制御ゲートに対する印可電圧が第一電圧で第一の値を出力する第一状態と、前記第一電圧よりも小さい第二電圧で第二の値を出力する第二状態とを持ち、
前記第一不揮発性トランジスタが前記第一不揮発性トランジスタの制御ゲートに対する印可電圧が第一電圧で第一の値を出力せず前記第二電圧で第二の値を出力しない時は、消去異常を示すエラー値が生成される半導体集積回路装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本明細書は、半導体集積回路装置に関し、特に不揮発性メモリを持つ半導体集積回路装置に関する。
【背景技術】
【０００２】
特許文献１には不揮発性メモリの書き換え中の電源遮断による書き換え異常を、フラグとして記憶するシステムが記載されている。このシステムは各セクタを順番に消去または書き込みを行う際に、消去または書き込みの処理結果をフラグとして次のセクタに書き込むことが開示されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特表２００７−５２０８０１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
不揮発性メモリの書き換え異常や消去異常を検出するためのフラグ格納領域を設けた場合、書き換え異常や消去異常が発生した際にこのフラグ格納領域内のフラグ自体が適切な閾値とならない場合がある。これは電源遮断や電源低下等の電源電圧が変動したときにこのフラグ格納領域内のフラグが書き換えや消去処理がなされていた場合に適切な閾値とならないからである。よってこのフラグを用いたとしても書き換え異常や消去異常が適切に検出できない問題がある。
その他の課題と新規な特徴は、本明細書の記述および添付図面から明らかになるであろう。
【課題を解決するための手段】
【０００５】
一実施の形態による半導体集積回路装置は、書き換え異常または消去異常を検出するためのチェックフラグを格納する不揮発性メモリを有する。チェックフラグ用の不揮発性トランジスタが不揮発性トランジスタの制御ゲートに対する印可電圧が第一電圧で第一の値を出力せず第二電圧で第二の値を出力しない時は、書き換えまたは消去異常を示すエラー値が生成される。
【発明の効果】
【０００６】
上記一実施の形態によれば、チェックフラグ用の不揮発性トランジスタに基づいてエラー値が生成されるため、チェックフラグ自体の消去時や書き換え時に電源電圧の変動によりチェックフラグを格納した不揮発性トランジスタの閾値電圧が不適切な範囲となった時にエラー値が生成されることで、書き換え異常や消去異常を適切に検出できる。
【図面の簡単な説明】
【０００７】
【図１】実施の形態１の半導体集積回路装置の全体図である。
【図２】不揮発性メモリの構成図である。
【図３】不揮発性メモリのチェックフラグ格納領域のフラグに関する情報の読み出しフローが記載されている。
【図４】不揮発性メモリのブロック構成を表す図である。
【図５】不揮発性メモリの格納領域の構造を表す図である。
【図６】不揮発性メモリにおいて消去処理がなされる場合の処理フローが示されている。
【図７】不揮発性メモリにおいて書き換え処理がなされる場合の処理フローが示されている。
【図８】不揮発性メモリの読み出し判定電圧と書き込みベリファイ電圧、および消去ベリファイ電圧と値との関係を示した図である。
【図９】不揮発性メモリのチェックフラグ格納領域のフラグに関する情報の読み出しフローを示した図である。
【発明を実施するための形態】
【０００８】
以下、図面を参照しながら、実施の形態について詳細に説明する。
【０００９】
以下の実施の形態においては便宜上その必要があるときは、複数のセクションまたは実施の形態に分割して説明するが、特に明示した場合を除き、それらはお互いに無関係なものではなく、一方は他方の一部または全部の変形例、応用例、詳細説明、補足説明等の関係にある。また、以下の実施の形態において、要素の数等（個数、数値、量、範囲等を含む）に言及する場合、特に明示した場合および原理的に明らかに特定の数に限定される場合等を除き、その特定の数に限定されるものではなく、特定の数以上でも以下でもよい。
【００１０】
さらに、以下の実施の形態において、その構成要素（動作、タイミングチャート、要素ステップ、動作ステップ等も含む）は、特に明示した場合および原理的に明らかに必須であると考えられる場合等を除き、必ずしも必須のものではない。同様に、以下の実施の形態において、構成要素等の形状、位置関係等に言及するときは、特に明示した場合および原理的に明らかにそうでないと考えられる場合等を除き、実質的にその形状等に近似または類似するもの等を含むものとする。このことは、上記数等（個数、数値、量、範囲等を含む）についても同様である。
【００１１】
なお、実施の形態を説明するための全図において、同一の機能を有する部位や部材には同一または関連する符号を付し、その繰り返しの説明は省略する。また、以下の実施の形態では、特に必要なとき以外は同一または同様な部分の説明を原則として繰り返さない。
【００１２】
また、実施の形態で用いる図面においては、断面図であっても図面を見易くするためにハッチングを省略する場合もある。また、平面図であっても図面を見易くするためにハッチングを付す場合もある。
【００１３】
（実施の形態１．）
図１は実施の形態１の半導体集積回路装置の全体図である。
【００１４】
半導体集積回路装置ＩＣは、中央演算装置ＣＰＵと、ランダムアクセスメモリＲＡＭと不揮発性メモリＦＬＡＳＨと、ＡＤ変換回路ＡＤＣと、入出力回路Ｉ／Ｏと、発振回路ＯＳＣと、バスＢＵＳと、テスト回路ＴＥＳＴとを有する。
【００１５】
中央演算装置ＣＰＵはプログラムに従って半導体集積回路装置ＩＣ全体を制御する。ランダムアクセスメモリＲＡＭは中央演算装置ＣＰＵのワークエリアとして用いられ、各種データや命令等を記憶する記憶領域である。不揮発性メモリＦＬＡＳＨは格納されたデータが書き換え可能となっており、中央演算装置ＣＰＵにて用いられる各種プログラムが記憶されている。入出力回路Ｉ／Ｏは各種ポートの入出力制御を行う回路である。ＡＤ変換回路ＡＤＣはアナログ信号をデジタル信号に変換する回路である。テスト回路ＴＥＳＴはランダムアクセスメモリＲＡＭ等各種内部回路をテストするための回路である。バスＢＵＳは中央演算装置ＣＰＵ、ランダムアクセスメモリＲＡＭ、不揮発性メモリＦＬＡＳＨ、入出力回路Ｉ／Ｏ、テスト回路ＴＥＳＴ、及び発振回路ＯＳＣとの間にて各種データ、コマンド、及びアドレスを互いにやり取りするための複数の信号線である発振回路ＯＳＣは外部のクロック信号に基づいて、中央演算装置ＣＰＵ、ランダムアクセスメモリＲＡＭ、不揮発性メモリＦＬＡＳＨ、入出力回路Ｉ／Ｏ、テスト回路ＴＥＳＴ、および発振回路ＯＳＣにて用いられる各種クロック信号を生成する。
【００１６】
図２は不揮発性メモリの構成図である。
【００１７】
不揮発性メモリＦＬＡＳＨは、フラッシュメモリアレイＦｌａｓｈ−ＭＡと、フラッシュコントローラＦｌａｓｈ−Ｃと、消去書き込み判定レジスタＥＷＤ−ＲＥＧとを有する。
【００１８】
フラッシュメモリアレイＦｌａｓｈ−ＭＡはデータ格納領域ＤＡＴＡ−ＳＲと、チェックフラグ格納領域ＣＦｌａｇ−ＳＲとを持つ。データ格納領域ＤＡＴＡ−ＳＲは不揮発性メモリＦＬＡＳＨ外部から入力されたデータを記憶する格納領域であり、不揮発性メモリＦＬＡＳＨ外部からの制御に従った記憶されたデータを外部に出力する。チェックフラグ格納領域ＣＦｌａｇ−ＳＲは前記データ格納領域ＤＡＴＡ−ＳＲに対するデータの書き込みや消去の状態がどのようになっているのかを表すフラグが格納されている。フラッシュコントローラＦｌａｓｈ−Ｃは中央演算装置ＣＰＵや半導体集積回路装置ＩＣ外部からの指示に従ってフラッシュメモリアレイＦｌａｓｈ−ＭＡにデータを書き込んだり読み出したりする制御を実行する。消去書き込み判定レジスタＥＷＤ−ＲＥＧは、チェックフラグ格納領域ＣＦｌａｇ−ＳＲに格納されているフラグをフラッシュコントローラＦｌａｓｈ−Ｃが読み出して解析し、この解析結果が中央演算装置ＣＰＵや半導体集積回路装置ＩＣ外部から読み出し可能なデータとして格納される領域である。
【００１９】
図３は不揮発性メモリのチェックフラグ格納領域のフラグに関する情報の読み出しフローが記載されている。
【００２０】
ステップＳ１０１において、半導体集積回路装置ＩＣ外部からリセット信号が半導体集積回路装置ＩＣに入力される。
【００２１】
ステップＳ１０１の後ステップＳ１０２において、フラッシュコントローラＦｌａｓｈ−Ｃがチェックフラグ格納領域ＣＦｌａｇ−ＳＲのフラグを読み出す。
【００２２】
ステップＳ１０２の後ステップＳ１０３において、読み出されたフラグの値から、フラッシュコントローラＦｌａｓｈ−Ｃが消去状態や書き込み状態の正常または異常を判別する。
【００２３】
ステップＳ１０３の後ステップＳ１０４において、中央演算装置ＣＰＵが読み出し可能な消去書き込み判定レジスタＥＷＤ−ＲＥＧに、この判別結果をフラッシュコントローラＦｌａｓｈ−Ｃが書き込む。
【００２４】
ステップＳ１０１〜ステップＳ１０４まではハードウエアにてその機能が実行される。
【００２５】
ステップＳ１０４の後ステップＳ１０５において、リセット信号によるリセットが解除されて、ユーザーのプログラムの動作が開始される。
【００２６】
ステップＳ１０５の後ステップＳ１０６において、ユーザーのブートプログラムにて、消去書き込み判定レジスタＥＷＤ−ＲＥＧの値が読み出されたか否かを判定する。読み出された場合はステップＳ１０７に進み、読み出されなかった場合はステップＳ１０８に進む。
【００２７】
ステップＳ１０７において、ユーザーのブートプログラムにて消去書き込み判定レジスタＥＷＤ−ＲＥＧの値が正常を表しているのか、異常を表しているのかを判定する。正常を表している場合はステップＳ１０８に進み、異常を表している場合はステップＳ１１１に進む。
【００２８】
ステップＳ１０８において、各種データ処理や制御処理を行う通常プログラムを実行する。
【００２９】
ステップＳ１１１において、異常対応のプログラムが実行される。
【００３０】
図４は不揮発性メモリのブロック構成を表す図である。
【００３１】
不揮発性メモリＦＬＡＳＨはデータの消去単位となっているブロックを複数持つ。このブロックとして、ブロックＢＬＫ−０〜ＢＬＫ−８、ブロックＢＬＫ−Ａ〜ＢＬＫ−Ｄがある。これら各ブロックは書き込み単位となっている格納領域ＳＲを複数持ち、これら格納領域ＳＲ１つにつきアドレスが１つ割り当てられている。
【００３２】
ブロックＢＬＫ−０には固定割り込みベクタテーブル領域が設けられており、アドレス０ＦＦＤＣ〜アドレス０ＦＦＦＦの格納領域ＳＲが対応している。ここにはリセット処理後に各種初期設定を半導体集積回路装置ＩＣおよびこの半導体集積回路装置ＩＣを含むシステムに対して初期設定を行うユーザーブートプログラムであるリセットベクタ（固定値割り込みベクタＦＩＶ）が配置されている。図３にて説明したステップＳ１０７の動作を行うフラッシュ判別プログラムはユーザーブートプログラムの一部とすればよい。このフラッシュ判別プログラムをユーザーブートプログラムの一部とすれば、このブロックＢＬＫ−０が通常書き換えられることのないブロックであるために、書き換え異常や消去異常をリセット解除後に確実に判定できる。
【００３３】
その他のブロックＢＬＫ−１〜ＢＬＫ−８や、ブロックＢＬＫ−Ａ〜ＢＬＫ−Ｄには各種の通常プログラムや、各種データが格納されている。
【００３４】
図５は不揮発性メモリの格納領域の構造を表す図である。
【００３５】
ブロックＢＬＫ−Ａを例にとると、ブロックＢＬＫ−Ａは書き込み単位となっている複数の格納領域ＳＲを持つ。この格納領域ＳＲそれぞれにはアドレスが割り当てられており、アドレス０３０００〜アドレス０３４ＦＦが各格納領域ＳＲに割り当てられている。
【００３６】
各格納領域ＳＲは、通常データが格納されて読み出される領域であるデータ格納領域ＤＡＴＡ−ＳＲと、書き込みまたは消去状態をチェックするためのフラグが格納されるチェックフラグ格納領域ＣＦｌａｇ−ＲＥＧとで構成される。
【００３７】
各ブロックにおいて、先頭の格納領域ＳＲのデータ格納領域ＤＡＴＡ−ＳＲにはデータが格納されていない。先頭の格納領域ＳＲ（専用の制御信号でアクセス）のチェックフラグ格納領域ＣＦｌａｇ−ＲＥＧは消去状態の異常の有無を検出するための消去チェックフラグＥＣＦｌａｇを格納する消去チェックフラグ格納領域ＥＣＦｌａｇ−ＳＲとなっている。各ブロックにおいて、格納領域ＳＲの格納領域ＳＲ（アドレス０３０００に対応）から最後の格納領域ＳＲ（アドレス０３４ＦＦに対応）のデータ格納領域ＤＡＴＡ−ＳＲには各種データやプログラムが格納される。さらに格納領域ＳＲ（アドレス０３０００に対応）から最後の格納領域ＳＲ（アドレス０３４ＦＦに対応）のチェックフラグ格納領域ＣＦｌａｇ−ＲＥＧは書き換え状態の異常の有無を検出するための書き換えチェックフラグＷＣＦｌａｇを格納する書き換えチェックフラグ格納領域ＷＣＦｌａｇ−ＳＲとなっている。
【００３８】
ブロックＢＬＫ−Ａ以外の各ブロックも同様の構成となっている。
【００３９】
図６は不揮発性メモリにおいて消去処理がなされる場合の処理フローが示されている。
【００４０】
まず初めに、消去対象のブロックの消去チェックフラグ格納領域ＥＣＦｌａｇ−ＳＲは２ビットの格納領域があり、図面にて左側の格納領域が１であり、右側の格納領域が０である。よって２ビットの格納領域が「１０」となっていた場合は消去が可能な状態（初期出荷状態、未消去状態）を示している。
【００４１】
ステップＳ２０１において、消去対象のブロックの消去チェックフラグ格納領域ＥＣＦｌａｇ−ＳＲに０を１ビット書き込む。ここで、図面にて左側の格納領域に０を書き込む。よって２ビットの格納領域が「００」となっていた場合は消去処理が開始された状態を示している。
【００４２】
ステップＳ２０１の後ステップＳ２０２が実行され、通常の消去処理が行われる。よって対象のブロックの各格納領域ＳＲに格納されたデータやフラグが全て１となる。
【００４３】
ステップＳ２０２の後ステップＳ２０３が実行され、消去対象のブロックの消去チェックフラグ格納領域ＥＣＦｌａｇ−ＳＲに０を１ビット書き込む。ここで、図面にて右の格納領域に０を書き込む。よって２ビットの格納領域が「１０」となっていた場合は消去処理が正常に終了された状態も示している。この状態は当然に消去が可能な状態となる。これは正常に消去処理がなされたブロックに再びデータが書き込まれた後、さらに消去がなされるからである。
【００４４】
図７は不揮発性メモリにおいて書き換え処理がなされる場合の処理フローが示されている。
【００４５】
まず初めに、書き換え対象の格納領域ＳＲの書き換えチェックフラグ格納領域ＷＣＦｌａｇ−ＳＲは２ビットの格納領域があり、図面にて左側の格納領域が１であり、右側の格納領域が１である。よって２ビットの格納領域が「１１」となっていた場合は書き換えが可能な状態（初期出荷状態、未書き込み状態）を示している。さらに消去が問題なく処理された場合も「１１」となるために消去完了状態でもある。
【００４６】
ステップＳ３０１において、書き換え対象の格納領域ＳＲの書き換えチェックフラグ格納領域ＷＣＦｌａｇ−ＳＲに０を１ビット書き込む。ここで、図面にて左側の格納領域に０を書き込む。よって２ビットの格納領域が「０１」となっていた場合は書き換え処理が開始された状態を示している。
【００４７】
ステップＳ３０１の後ステップＳ３０２が実行され、通常の書き換え処理が行われる。書き換えチェックフラグ格納領域ＷＣＦｌａｇ−ＳＲは変更されないので、「０１」のままとなる。
【００４８】
ステップＳ３０２の後ステップＳ３０３が実行され、書き換え対象の格納領域ＳＲの書き換えチェックフラグ格納領域ＷＣＦｌａｇ−ＳＲに０を１ビット書き込む。ここで、図面にて右の格納領域に０を書き込む。よって２ビットの格納領域が「００」となっていた場合は書き換え処理が正常に終了された状態も示している。
【００４９】
図８は不揮発性メモリの読み出し判定電圧と書き込みベリファイ電圧、および消去ベリファイ電圧と値との関係を示した図である。
【００５０】
図８の（ｂ）は不揮発性メモリのメモリセルの不揮発性トランジスタと読み出し判定電圧との関係を表すための図である。
【００５１】
不揮発性メモリＦＬＡＳＨのメモリセルの不揮発性トランジスタＦＴは、一方のソース・ドレイン端子Ｓと、他方のソース・ドレイン端子ＤとフローティングゲートＦＧと制御ゲートＣＧとを有する。
【００５２】
他方のソース・ドレイン端子Ｄの電源電圧ＶＤＤが供給され、制御ゲートＣＧに不揮発性メモリＦＬＡＳＨのワードラインＷＬが接続され、このワードラインＷＬに読み出し判定電圧が供給される。一方のソース・ドレイン端子ＳはセンスアンプＳＡと接続され、センスアンプは一方のソース・ドレイン端子Ｓからの信号を増幅してハイレベルＨｉまたはローレベルＬｏの信号を出力する。この信号がフラッシュメモリＦＬＡＳＨのメモリセルの出力信号となる。
【００５３】
図８の（ａ）は不揮発性メモリの読み出し判定電圧と書き込みベリファイ電圧、および消去ベリファイ電圧と値との関係を示した図である。
【００５４】
図において縦軸が電圧レベルを示している。一番高い電圧値となっているのが書き込みベリファイ電圧ＷＶＶであり、書き込みされるメモリセルの不揮発性トランジスタのフローティングゲートＦＧには、読み出し判定電圧がこの電圧となった時に値が０となるように、フローティングゲートＦＧに電荷が注入される。よって閾値電圧は書き込みベリファイ電圧ＷＶＶよりも高い電圧値となる。ワードラインＷＬに印可される読み出し判定電圧が閾値電圧よりも高い時ではメモリセルの出力信号はハイレベルとなり、低い時ではメモリセルの出力信号はローレベルとなる。メモリセルの構造によっては逆のケースもあり、ワードラインＷＬに印可される読み出し判定電圧が閾値電圧よりも高い時ではメモリセルの出力信号はローレベルとなり、低い時ではメモリセルの出力信号はハイレベルとなる。書き込み時においてはデータ格納領域ＤＡＴＡ−ＳＲおよびチェックフラグ格納領域ＣＦｌａｇ−ＳＲのメモリセル両方に、読み出し判定電圧が書き込みベリファイ電圧ＷＶＶとなった時に値が０となるように、フローティングゲートＦＧに電荷が注入される。チェックフラグ格納領域ＣＦｌａｇ−ＳＲのメモリセルには読み出し判定電圧としては、書き込みベリファイ電圧ＷＶＶが印可される。データ格納領域ＤＡＴＡ−ＳＲのメモリセルには読み出し判定電圧として書き込みベリファイ電圧ＷＶＶは印可されない。チェックフラグ格納領域ＣＦｌａｇ−ＳＲのメモリセルの閾値電圧が書き込みベリファイ電圧ＷＶＶ以上であった場合は、読み出される値が０となる。
【００５５】
書き込みベリファイ電圧ＷＶＶよりも小さな電圧値となっているのがデータ読み出し判定電圧ＤＲＤである。読み出し時にデータ読み出し判定電圧ＤＲＤが読み出し判定電圧として印可されるメモリセルはデータ格納領域ＤＡＴＡ−ＳＲのメモリセルであり、チェックフラグ格納領域ＣＦｌａｇ−ＳＲのメモリセルには印可されない。データ格納領域ＤＡＴＡ−ＳＲのメモリセルの閾値電圧がデータ読み出し判定電圧ＤＲＤ以上であった場合は、読み出される値が０となり、データ格納領域ＤＡＴＡ−ＳＲのメモリセルの閾値電圧がデータ読み出し判定電圧ＤＲＤ未満であった場合は、読み出される値が１となる。
【００５６】
データ読み出し判定電圧ＤＲＤよりも小さな電圧値となっているのが消去ベリファイ電圧ＥＶＶである。消去されるメモリセルの不揮発性トランジスタのフローティングゲートＦＧには、読み出し判定電圧がこの電圧となった時に値が１となるように、フローティングゲートＦＧの電荷が引き抜かれる。よって閾値電圧は消去ベリファイ電圧ＥＶＶよりも低い電圧値となる。消去時においてはデータ格納領域ＤＡＴＡ−ＳＲおよびチェックフラグ格納領域ＣＦｌａｇ−ＳＲのメモリセル両方に、読み出し判定電圧が消去ベリファイ電圧ＥＶＶとなった時に値が０となるように、フローティングゲートＦＧの電荷が引き抜かれる。チェックフラグ格納領域ＣＦｌａｇ−ＳＲのメモリセルには読み出し判定電圧としては、消去ベリファイ電圧ＥＶＶが印可される。データ格納領域ＤＡＴＡ−ＳＲのメモリセルには読み出し判定電圧として消去ベリファイ電圧ＥＶＶは印可されない。チェックフラグ格納領域ＣＦｌａｇ−ＳＲのメモリセルの閾値電圧が消去ベリファイ電圧ＥＶＶ以下であった場合は、読み出される値が１となる。
【００５７】
チェックフラグ格納領域ＣＦｌａｇ−ＳＲのメモリセルには読み出し判定電圧として、書き込みベリファイ電圧ＷＶＶと消去ベリファイ電圧ＥＶＶの２つが印可される。データ格納領域ＤＡＴＡ−ＳＲのメモリセルには読み出し判定電圧として、データ読み出し判定電圧ＤＲＤが印可される。チェックフラグ格納領域ＣＦｌａｇ−ＳＲのメモリセルが読み出し判定電圧として書き込みベリファイ電圧ＷＶＶが印可された結果０が出力されるような閾値電圧を持つ場合を持つ。この場合の閾値電圧は書き込みベリファイ電圧ＷＶＶ以上となっている。さらにチェックフラグ格納領域ＣＦｌａｇ−ＳＲのメモリセルが読み出し判定電圧として消去ベリファイ電圧ＥＶＶが印可された結果１が出力されるような閾値電圧を持つ場合を持つ。この場合の閾値電圧は消去ベリファイ電圧ＥＶＶ以下となっている。さらにチェックフラグ格納領域ＣＦｌａｇ−ＳＲのメモリセルが読み出し判定電圧として書き込みベリファイ電圧ＷＶＶが印可された結果０が出力しないような閾値電圧を持ち、チェックフラグ格納領域ＣＦｌａｇ−ＳＲのメモリセルが読み出し判定電圧として消去ベリファイ電圧ＥＶＶが印可された結果１が出力しないような閾値電圧を持つ場合を持つ。この場合の閾値電圧は書き込みベリファイ電圧ＷＶＶよりも小さく、消去ベリファイ電圧ＥＶＶよりも大きな電圧値となっている。このような閾値電圧の時はチェックフラグ格納領域ＣＦｌａｇ−ＳＲのメモリセルの読み出し結果としてはエラー値となる。このエラー値は図３のフローに従って、フラッシュコントローラＦｌａｓｈ−Ｃによって生成され、このエラー値が消去書き込み判定レジスタＥＷＤ−ＲＥＧに書き込まれることとなる。これは書き込みベリファイ電圧ＷＶＶと消去ベリファイ電圧ＥＶＶとの間には本来閾値電圧が存在してはいけないからである。このような間に閾値電圧が存在する場合は、半導体集積回路装置ＩＣの電源電圧の供給が停止したり、大きく変動したりして適切な消去用の電圧や書き込み用の電圧が印可できない状況が考えられるために、消去や書き換え異常を示すエラー値が消去書き込み判定レジスタＥＷＤ−ＲＥＧに書き込まれるようになっている。データ格納領域ＤＡＴＡ−ＳＲは書き換えや消去の状態をチェックするために用いられるわけではないので、書き換えおよび消去処理の累積に伴う閾値電圧の変動による読み出しエラー防いで書き換え回数を増やすためにデータ読み出し判定電圧ＤＲＤを、書き込みベリファイ電圧ＷＶＶと消去ベリファイ電圧ＥＶＶの間に設けるようにしている。
【００５８】
本実施の形態において、ワードライン印可電圧としての読み出し判定電圧が閾値電圧よりも高い場合は０が不揮発性トランジスタＦＴから出力され、読み出し判定電圧が閾値電圧よりも低い場合は１が不揮発性トランジスタＦＴから出力される形態となっているが、逆でもよい。ワードライン印可電圧としての読み出し判定電圧が閾値電圧よりも高い場合は１が不揮発性トランジスタＦＴから出力され、読み出し判定電圧が閾値電圧よりも低い場合は０が不揮発性トランジスタＦＴから出力される形態としてもよい。この場合、本実施の形態において説明した値において「０」としたものは「１」となり、「１」としたものは「０」となる。
【００５９】
本実施の形態において、チェックフラグＣＦｌａｇを格納するチェックフラグ格納領域ＣＦｌａｇ−ＳＲを持つ不揮発性メモリＦＬＡＳＨを有する。チェックフラグＣＦｌａｇ用の不揮発性トランジスタＦＴが不揮発性トランジスタＦＴの制御ゲートＣＧに対する印可電圧が書き込みベリファイ電圧ＷＶＶで「０（または１）」を出力せず消去ベリファイ電圧ＥＶＶで「１（または０）」を出力しない時は、消去または書き換え異常を示すエラー値が生成される。
【００６０】
チェックフラグＣＦｌａｇ用の不揮発性トランジスタＦＴに基づいてエラー値が生成されるため、チェックフラグＣＦｌａｇ自体の消去時や書き換え時に電源電圧の変動によりチェックフラグＣＦｌａｇを格納した不揮発性トランジスタＦＴの閾値電圧が不適切な範囲となった時にエラー値が生成されることで、書き換え異常や消去異常を適切に検出できる。
【００６１】
不揮発性メモリＦＬＡＳＨは、書き換え単位となり、データ格納領域ＤＡＴＡ−ＳＲと書き換えチェックフラグ格納領域ＷＣＦｌａｇ−ＳＲをもつ格納領域ＳＲを複数持っている。各格納領域ＳＲには互いに異なるアドレスが割り当てられている。複数の書き換えチェックフラグＷＣＦｌａｇは２つ存在する。格納領域ＳＲの通常データＤＡＴＡを書き換えする際は、一方の書き換えチェックフラグＷＣＦｌａｇを書き換えてから、次に通常データＤＡＴＡの書き換えを行い、その次に他方の書き換えチェックフラグＷＣＦｌａｇを書き換える。
【００６２】
このように書き換え開始時と書き換え完了時に書き換えチェックＷＣＦｌａｇの書き換え処理を行うことで、通常データＤＡＴＡ書き換え時近辺に電源電圧の変動があった場合、書き換えチェックフラグＷＣＦｌａｇが不適切な値となったり、不適切な閾値電圧となったりするために、書き換えエラーが高精度にて検出できる。
【００６３】
格納領域ＳＲが書き換え可能な時は、２つの書き換えチェックフラグＷＣＦｌａｇは消去状態となっている。このことで、書き換え開始時と書き換え完了時に書き換えチェックＷＣＦｌａｇの書き換え処理を行うことが可能となる。
【００６４】
不揮発性メモリＦＬＡＳＨは消去単位であるブロックＢＬＫを複数有する。ブロックＢＬＫのそれぞれは格納領域ＳＲを複数と不揮発性メモリＦＬＡＳＨの消去異常を検出する複数の消去チェックフラグＥＣＦｌａｇを格納する消去チェックフラグ格納領域ＥＣＦｌａｇ−ＳＲとを有する。複数の消去チェックフラグＥＣＦｌａｇは２つの消去チェックフラグＥＣＦｌａｇを有する。ブロック内のデータの消去処理をする際は、一方の消去チェックフラグＥＣＦｌａｇを書き換えてから、次に前記ブロック内のデータの消去を行い、その次に他方の消去チェックフラグＥＣＦｌａｇを書き換える。
【００６５】
このように消去開始時と消去完了時に書き換えチェックＥＣＦｌａｇの書き換え処理を行うことで、通常データＤＡＴＡ書き換え時近辺に電源電圧の変動があった場合、消去チェックフラグＥＣＦｌａｇが不適切な値となったり、不適切な閾値電圧となったりするために、消去エラーが高精度にて検出できる。
【００６６】
中央演算装置ＣＰＵを有し、外部からリセット信号が入力された際、チェックフラグＣＦｌａｇに基づいて消去または書き換えエラーがあったか否かが判別されて、この判別結果が中央演算装置ＣＰＵが読み出し可能なＥＷＤ＾ＲＥＧレジスタに格納される。このことで、半導体集積回路装置ＩＣの立ち上げ時のリセット後に中央演算装置ＣＰＵが読み出し可能な状態でエラー情報が格納されるので、不適切なデータが格納された状態の不揮発性メモリＦＬＡＳＨのプログラムやデータ等に基づいて半導体集積回路装置ＩＣが動作することを防ぐことができる。
【００６７】
書き換え対象となるデータ格納領域ＳＲを構成する書き換えチェックフラグ格納領域ＷＣＦｌａｇ−ＳＲの不揮発性トランジスタＦＴおよびデータ格納領域ＤＡＴＡ−ＳＲの不揮発性トランジスタＦＴの閾値電圧は書き込みベリファイ電圧以上となるようにされる。このことで書き換えチェックフラグＷＣＦｌａｇの読み出し判定電圧を書き込みベリファイ電圧ＷＶＶとできる。さらに消去対象となるデータ格納領域ＳＲを構成する消去チェックフラグ格納領域ＥＣＦｌａｇ−ＳＲの不揮発性トランジスタＦＴおよびデータ格納領域ＤＡＴＡ−ＳＲの不揮発性トランジスタＦＴの閾値電圧は消去ベリファイ電圧ＥＶＶ以下となるようにされる。このことで消去チェックフラグＥＣＦｌａｇの読み出し判定電圧を消去ベリファイ電圧ＥＶＶとできる。なお、消去の際は消去対象となるデータ格納領域ＳＲの書き換えチェックフラグ格納領域ＷＣＦｌａｇ−ＳＲの不揮発性トランジスタＦＴの閾値電圧も消去ベリファイ電圧ＥＶＶ以下となる。
【００６８】
データ格納領域ＤＡＴＡ−ＳＲを構成する不揮発性トランジスタＦＴの制御ゲートＣＧに対する印可電圧が、データ読み出し判定電圧ＤＲＤとなり、その読み出し結果が「０」である時と、「１」である時とがある。書き換えおよび消去処理の累積に伴う閾値電圧の変動による読み出しエラー防いで書き換え回数を増やすために、データ読み出し判定電圧ＤＲＤを書き込みベリファイ電圧ＷＶＶと消去ベリファイ電圧ＥＶＶの間に設けるようにしている。
【００６９】
（実施の形態２）
実施の形態１における不揮発性メモリのチェックフラグ格納領域のフラグに関する情報の読み出しフローの別の方式を示している。実施の形態１の図３に説明したフローに加えて以下に説明するようなフローを本実施の形態では有している。
【００７０】
図９は不揮発性メモリのチェックフラグ格納領域のフラグに関する情報の読み出しフローを示した図である。
【００７１】
ステップＳ４０１において、中央演算装置ＣＰＵが不揮発性メモリＦＬＡＳＨの特定ブロックまたは全体を指定する指定コマンドを不揮発性メモリＦＬＡＳＨのフラッシュコントローラＦｌａｓｈ−Ｃに出力する。
【００７２】
ステップＳ４０１の後ステップＳ４０２において、ステップＳ４０１にて指定したブロックに対するチェックフラグＣＦｌａｇに基づいた書き換え異常および消去異常の有無を示すデータを、消去書き込み判別レジスタＥＷＤ−ＲＥＧに書き込むように、フラッシュコントローラＦｌａｓｈ−ＣにチェックフラグＣＦｌａｇの確認コマンドを、中央演算装置ＣＰＵが出力する。
【００７３】
ステップＳ４０２の後ステップＳ４０３において、中央演算装置ＣＰＵは書き換え異常および消去異常の有無を示すデータが消去書き込み判別レジスタＥＷＤ−ＲＥＧに書き込まれたか否かを定期的に判定する。書き込まれていない場合はステップＳ４０３を繰り返し、書き込まれた場合はステップＳ４０４に進む。
【００７４】
ステップＳ４０４において、中央演算装置ＣＰＵは書き換え異常および消去異常の有無を示すデータを消去書き込み判別レジスタＥＷＤ−ＲＥＧから読み出して書き換え異常および消去異常の判定を行う。
【００７５】
本実施の形態において、ステップＳ４０１によって書き換え異常や消去異常の判定を行うブロックを限定することで、判定時間の短縮を図っている。全てのブロックが書き換えられていない場合等、特定ブロックのみをチェックしたい場合に有効である。
【００７６】
以上本発明者によってなされた発明を実施形態に基づいて具体的に説明したが、本発明はそれに限定されるものではなく、その要旨を逸脱しない範囲において種々変更可能であることは言うまでもない。
【符号の説明】
【００７７】
ＣＰＵ  中央演算装置
ＦＬＡＳＨ  不揮発性メモリ
Ｆｌａｓｈ−ＭＡ  フラッシュメモリアレイ
Ｆｌａｓｈ−Ｃ  フラッシュコントローラ
ＥＷＤ−ＲＥＧ  消去書き込み判定レジスタ
ＦＩＶ  固定値割り込みベクタ
ＢＬＫ−Ａ〜ＢＬＫ−Ｄ、ＢＬＫ−０〜ＢＬＫ−８  ブロック
ＳＲ  書き込み端子
ＤＡＴＡ−ＳＲ  データ格納領域
ＣＦｌａｇ−ＳＲ  チェックフラグ格納領域
ＥＣＦｌａｇ−ＳＲ  消去チェックフラグ格納領域
ＷＣＦｌａｇ−ＳＲ  書き換えチェックフラグ格納領域
ＤＡＴＡ−ＳＲ  データ格納領域
ＥＣＦｌａｇ  消去チェックフラグ
ＷＣＦｌａｇ  書き換えチェックフラグ
ＤＡＴＡ  データ
ＦＴ  不揮発性トランジスタ
ＣＧ  制御ゲート
ＦＧ  フローティングゲート
ＷＶＶ  書き込みベリファイ電圧
ＤＲＤ  データ読み出し判定電圧
ＥＶＶ  消去ベリファイ電圧
【図１】
2014086108.tif 000003
【図２】
2014086108.tif 000004
【図３】
2014086108.tif 000005
【図４】
2014086108.tif 000006
【図５】
2014086108.tif 000007
【図６】
2014086108.tif 000008
【図７】
2014086108.tif 000009
【図８】
2014086108.tif 000010
【図９】
2014086108.tif 000011