記憶情報を電気的に書込みおよび消去が可能である複数のメモリセルを含み、かつメモリブロックに分割されるメモリアレイを備え、前記メモリブロックは、データを記憶する第1のメモリセルと、消去動作の完了の有無表わすための第2のメモリセルを含み、前記メモリブロックの消去動作が終了後に、前記第2のメモリセルを書込状態に設定する制御部を備えた、不揮発性半導体記憶装置。前記メモリブロックは、さらに、消去動作の完了の有無を表わすための第3のメモリセルを含み、前記制御部は、前記メモリブロックの消去前書込みを実施し、前記制御部は、前記メモリブロックの消去動作が完了後に前記第3のメモリセルを消去状態に設定する、請求項1記載の不揮発性半導体記憶装置。前記メモリブロックは、前記メモリブロックの使用の有無を表わす情報を記憶する第4のメモリセルを含み、前記制御部は、初めて前記メモリブロックの前記第1のメモリセルにデータを書き込む前に、前記第4のメモリセルを書込状態に設定する、請求項2記載の不揮発性半導体記憶装置。前記メモリブロックは、消去動作および書込み動作が禁止状態であることを表わすロックビットを記憶する第5のメモリセルを含み、前記第2のメモリセル、前記第3のメモリセル、前記第4のメモリセルおよび前記第5のメモリセルは、別個の外部との接続用の入出力部と接続し、前記制御部は、前記第2のメモリセル、前記第3のメモリセル、前記第4のメモリセルおよび前記第5のメモリセルを同時に読出す、請求項3記載の不揮発性半導体記憶装置。前記制御部は、外部より指定アドレスと、前記指定アドレスに本来書き込まれているはずのデータとを受けて、前記制御部は、前記指定アドレスのメモリセルからデータを読み出し、前記外部から入力された本来書き込まれているはずのデータと、前記読み出したデータとを比較し、一致すれば外部にパスを表わす信号を出力し、不一致であればエラーを表わす信号を出力する、請求項1記載の不揮発性半導体記憶装置。しかしながら、特許文献1に記載の方式では、書込み動作または消去動作の途中での電源電圧の供給停止の発生に応答して書込み動作または消去動作を中断する。すなわち、電源電圧の供給停止を検出する必要がある。したがって、電源電圧の供給停止を検出するための回路が必要となる。それゆえに、本発明の目的は、電源電圧の供給停止を検出せずに、かつメモリセルからデータを読み出すことなく、書き換え動作中の電源遮断が容易に検出できる不揮発性半導体記憶装置を提供することである。本発明の一実施形態の不揮発性半導体記憶装置は、記憶情報を電気的に書込みおよび消去が可能である複数のメモリセルを含み、かつメモリブロックに分割されるメモリアレイを備える。メモリブロックは、データを記憶する第1のメモリセルと、消去動作の完了の有無表わすための第2のメモリセルを含む。不揮発性半導体記憶装置は、メモリブロックの消去動作が終了後に、第2のメモリセルを書込状態に設定する制御部を備える。本発明の一実施形態によれば、電源電圧の供給停止を検出せずに、かつメモリからデータを読み出すことなく、書き換え動作中の電源遮断が容易に検出できる。以下、本発明の実施形態について図面を参照して説明する。[第1の実施形態]構成図1は、第1の実施形態の不揮発性半導体記憶装置の構成を表わす図である。図1を参照して、この半導体記憶装置1は、電源回路2と、プリデコーダ3と、ロウデコーダ4と、カラムデコーダ5と、メモリブロック0~3からなるメモリアレイ99と、カラムゲート9と、センスアンプ書込み回路7と、制御回路6とを備える。電源回路2は、各構成要素に電力を供給する。メモリアレイ99内には行列上に複数のフラッシュメモリセルが配置される。フラッシュメモリセルは、記憶情報を電気的に書込み、消去可能である。フラッシュメモリセルは、閾値電圧に対応して情報を記憶する。プリデコーダ3は、アドレスをプリデコードする。ロウデコーダ4は、プリデコードされたアドレスをさらにデコードしてロウアドレスを選択する。カラムデコーダ5は、プリデコードされたアドレスをさらにデコードしてカラムアドレスを選択する。カラムゲート9は、センスアンプ書込み回路7と、メモリアレイ99内の選択されたカラムとを接続する。センスアンプ書込み回路7は、読出し時には、メモリアレイ99内のメモリセルから読み出されたデータを増幅し、書込み時には、メモリアレイ99内のメモリセルにデータを書込む。制御回路6は、外部から制御信号、アドレス信号、コマンド、ライトデータ書込みデータを受けて、様々な制御を行なう。また、制御回路6は、外部へリードデータ読出しデータを出力する。図2は、図1に含まれるメモリブロック08-0の構成を表わす図である。メモリブロック1~3の構成も、これと同様である。図2を参照して、メモリブロック0が、n2ビットを単位としてサブブロック020-0~サブブロック720-7を有する場合を示している。サブブロックごとに外部との接続用のI/O入出力部を有する。図2に示すように、メモリブロック0は、行ごとのワード線WLと、ブロックで共通となるソース線SLとを有する。サブブロックi20-iは、n2個の列からなる。サブブロックi20-iには、n1個のメインビット線MBL_i0~MBL_inと、1個のフラグメインビット線MBL_iFlagが設けられている。図3は、サブブロック020-0のメモリセルの配置を表わす図である。図3に示すように、1行に、n1x2個のノーマルメモリセルNCと、1個のフラグメモリセルFCとを備える。フラグメモリセルFCは、フラグメインビット線MBL_0Flagに接続されたサブビット線に接続される。なお、フラグメモリセルFCは、独立のメインビット線ではなく、ノーマルメモリセルのメインビット線に接続されたサブビット線に接続するものであってもよい。また、フラグメモリセルFCが、サブブロックに1個のみが含まれることとしたが、サブブロックに複数個のセルが含まれるものであってもよい。本実施の形態では、サブブロック0のフラグメモリセルFCに、第1のブロック消去完了フラグを記憶することとしたが、他のサブブロック1~7に割り当てることとしてもよい。本実施の形態では、制御回路6は、サブブロック0のフラグメモリセルFCのベリファイをノーマルメモリセルNCに先んじて実施するように制御する。また、制御回路6は、消去動作フローの終了後に、第1のブロック消去完了フラグに対してのみ書込みを行う。その結果、ブロック消去動作完了後、第1のブロック消去完了フラグの値は書込み状態を表わす0となる。図4は、NOR型フラッシュメモリを表わす図である。図5は、各動作時にNOR型フラッシュメモリに与える電位を表わす図である。図5に示すように、読出し時には、コントロールゲートCGに5Vが与えられ、ドレインDに1Vが与えられ、ソースSに0Vが与えられ、PウエルPwに0Vが与えられる。書込みパルス印加時には、コントロールゲートCGに9Vが与えられ、ドレインDに4Vが与えられ、ソースSに0Vが与えられ、PウエルPwに-1Vが与えられる。書込みベリファイ時には、コントロールゲートCGに7Vが与えられ、ドレインDに1Vが与えられ、ソースSに0Vが与えられ、PウエルPwに0Vが与えられる。消去前書込み時には、コントロールゲートCGに9Vが与えられ、ドレインDがフローティグ状態に、ソースSに-9Vが与えられ、PウエルPwに-9Vが与えられる。消去パルス印加時には、コントロールゲートCGに-9Vが与えられ、ドレインDに1Vが与えられ、ソースSに0Vが与えられ、PウエルPwに0Vが与えられる。過消去ベリファイ時には、コントロールゲートCGに1Vが与えられ、ドレインDに1Vが与えられ、ソースSに0Vが与えられ、PウエルPwに0Vが与えられる。書戻しパルス印加時には、コントロールゲートCGに1Vが与えられ、ドレインDに4Vが与えられ、ソースSに0Vが与えられ、PウエルPwに-1Vが与えられる。ブロック消去動作図6は、本実施の形態のブロック消去動作のフローチャートである。図7は、ブロック消去動作の過程でのメモリセルの閾値電圧分布を表わす図である。図6および図7を参照して、図7aに示すように、消去前の状態は、消去状態1と書込み状態0とが混在する。まず、制御回路6は、消去前の書込みが行なわれるように制御するステップS101。図7bに示す前に、消去前の書込みによって、すべてのメモリセルが書込み状態となる。次に、制御回路6は、アドレスをフラグ領域サブブロック0のフラグメモリセルFCを指定するアドレスに設定するステップS102。次に、消去ベリファイがパスするまで、制御回路6は、消去パルスが印加されるように制御するステップS103~S105。次に、制御回路6は、アドレスを先頭のアドレス0に設定するステップS106。次に、消去ベリファイがパスするまで、制御回路6は、消去パルスが印加されるように制御するステップS107~S109。図7cは、消去ベリファイが失敗している状態を表わす。図7dは、消去ベリファイが成功している状態を表わす。制御回路6は、アドレスが最終アドレスに設定されるまでステップS110でYES、設定アドレスをインクリメントしステップS111、ステップS107~S109の動作が繰返される。設定アドレスが最終アドレスとなると、制御回路6は、アドレスがフラグ領域を指定するアドレスに設定するステップS112。次に、過消去ベリファイがパスするまで、制御回路6は、書き戻しパルスが印加されるように制御するステップS113~S115。次に、制御回路6は、アドレスを先頭のアドレス0に設定するステップS116。次に、過消去ベリファイがパスするまで、制御回路6は、書き戻しパルスが印加されるように制御するステップS117~S119。図7eは、過消去ベリファイが成功し、消去が完了した状態を表わす。設定アドレスが最終アドレスとなるまでステップS120でYES、制御回路6は、設定アドレスをインクリメントしてステップS121、ステップS117~S119の動作が繰返される。次に、制御回路6は、第1のブロック消去完了フラグが書込まれるように制御するステップS122。以上のようにして、フラグメインビット線上のフラグメモリセルFCは他のメモリセルと同様に、ブロック消去動作フローに従ったパルス印加およびベリファイが行われる。消去完了フラグ書込動作図8は、ステップS122の第1のブロック消去完了フラグの書込み動作のフローチャートである。まず、制御回路6は、アドレスがフラグ領域サブブロック0のフラグメモリセルFCを指定するアドレスに設定するステップS301。次に、書込みベリファイがパスするまで、制御回路6は、書込みパルスが印加されるように制御する。この結果、第1のブロック消去完了フラグの値は書込み状態を表わす0となるステップS302~S304。以上のように、第1のブロック消去完了フラグが書込まれていることを確認すれば、ブロック消去動作が正常に完了していると判断できる。従来、電源遮断が発生した場合は直前の消去動作は有効ではなく、再度、消去動作を実施する必要があったが、本実施の形態では、確実に判断できるようになる。さらにこのフラグは、ブロック消去動作が正常に完了していることを示していることから、そのブロックが消去状態ブランク状態であることの確認にも利用できる。[第1の実施形態の変形例1]第1の実施形態では、サブブロック0のフラグメモリセルFCについてのみ説明した。通常は、サブブロック0のフラグメモリセルFCに第1のブロック消去完了フラグを割り当て、ブロック消去動作完了後、第1のブロック消去完了フラグを書込み状態に設定することでブロック消去動作完了を認識することができる。しかしながら、図6のステップS101のように、ブロック消去動作中に消去前書込みが実施される場合、消去前書込み直後の電源遮断では、第1のブロック消去完了フラグフラグが書込み状態となっているのもかかわらずブロック消去動作は完了していないことになる。この問題を解決するために、本変形例では、サブブロック120-1のフラグメモリセルFCに第2のブロック消去完了フラグを割り当てる。サブブロック1のフラグメモリセルFCは他のメモリセルと同様にブロック消去動作フローに従ったパルス印加、ベリファイが行われる。制御回路6は、サブブロック1のフラグメモリセルFCのベリファイを他のメモリセルに先んじて実施する。本変形例では、消去動作フロー終了後、図6のステップS122において、制御回路6は、サブブロック0のフラグメモリセルFCに割り当てられた第1のブロック消去完了フラグに対してのみ書込みを行うが、サブブロック1のフラグメモリセルFCに割り当てられた第2のブロック消去完了フラグに対して書込みを行なわない。その結果、ブロック消去動作完了後、第1のブロック消去完了フラグの値は書込み状態を表わす0となり、第2のブロック消去完了フラグの値は消去状態を表わす1となる。制御回路6は、第2のブロック消去完了フラグが消去状態であり、かつ第1のブロック消去完了フラグが書込み状態であることを確認することによって、ブロック消去動作フロー中に消去前書込み動作が含まれている場合であっても、ブロック消去動作が正常に完了していると判断できる。第1のブロック消去完了フラグおよび第2のブロック消去完了フラグは、別個のIOに割り当てられているため、確認のためのリード動作を同時に実施することができる。なお、本変形例では、サブブロック1のフラグメインビット線と接続されたサブビット線に接続するフラグメモリセルFCに第2のブロック消去完了フラグを割り当てることとしたが、サブブロック2~サブブロック7のフラグメインビット線と接続されたサブビット線に接続するフラグメモリセルFCに第2のブロック消去完了フラグを割り当てることとしてもよい。なお、フラグメモリセルFCは、独立のメインビット線ではなく、ノーマルメモリセルのメインビット線に接続されたサブビット線に接続するものであってもよい。また、フラグメモリセルFCが、サブブロックに1個のみが含まれることとしたが、サブブロックに複数個のセルが含まれるものであってもよい。[第1の実施形態の変形例2]第1の実施形態および変形例1で、サブブロック0およびサブブロック1のフラグメモリセルFCについてのみ説明した。これらは、ブロック消去動作完了で値が固定される。ブロック消去動作が正しく完了していることを認識するには十分であるが、本変形例では、さらにサブブロック2のフラグメインビット線に接続されるフラグメモリセルFCにブロック使用フラグを記憶させる。制御回路6は、初めてメモリブロックにデータを書込む前に、そのメモリブロックのサブブロック2のブロック使用フラグを書込み状態を表わす0に設定する。ブロック使用フラグの書込動作は、図8に示したものと同様のステップで構成される。制御回路6は、サブブロック2のフラグメモリセルFCのベリファイを他のメモリセルに先んじて実施する。本変形例では、消去動作フロー終了後、図6のステップS122において、制御回路6は、サブブロック0のフラグメモリセルFCに割り当てられた第1のブロック消去完了フラグに対して書込みを行うが、サブブロック1のフラグメモリセルFCに割り当てられた第2のブロック消去完了フラグに対して書込みを行なわず、サブブロック2のフラグメモリセルFCに割り当てたブロック使用フラグに対しても書込みを行なわない。その結果、ブロック消去動作完了後、第1のブロック消去完了フラグの値は書込み状態を表わす0となり、第2のブロック消去完了フラグの値は消去状態を表わす1となり、ブロック使用フラグの値は消去状態を表わす1となる。制御回路6は、ブロック使用フラグが消去状態であり、かつ第2のブロック消去完了フラグが消去状態であり、かつ第1のブロック消去完了フラグが書込み状態であることを確認することによって、ブロック消去動作が正常に完了していると判断できる。第1のブロック消去完了フラグ、第2のブロック消去完了フラグ、およびブロック使用フラグは別個のIOに割り当てられているため、確認のためのリード動作を同時に実施することができる。なお、本変形例では、サブブロック2のフラグメインビット線と接続されたサブビット線に接続するフラグメモリセルFCにブロック使用フラグを割り当てることとしたが、サブブロック3~サブブロック7のフラグメインビット線と接続されたサブビット線に接続するフラグメモリセルFCにブロック使用フラグを割り当てることとしてもよい。なお、フラグメモリセルFCは、独立のメインビット線ではなく、ノーマルメモリセルのメインビット線に接続されたサブビット線に接続するものであってもよい。また、フラグメモリセルFCが、サブブロックに1個のみが含まれることとしたが、サブブロックに複数個のセルが含まれるものであってもよい。[第1の実施形態の変形例3]第1の実施形態およびその変形例では、サブブロック0、サブブロック1、およびサブブロック2のフラグメモリセルFCについてのみ説明した。これらのフラグビットの確認時は、通常のリードと同様に読み出してもよいが、読み出し時のコントロールゲート電圧を図7に示すような読出しレベルよりも高く、かつ書込みベリファイ電圧よりも低い電圧とすることで、各フラグビットの値をより正しく認識することができる。そのために、本実施の形態では、ブロックステータスチェックコマンドを用いて、メモリブロックが正常に消去動作を終了し、かつ消去状態が保持されているかを確認する。図9は、第1の実施形態の変形例3のブロックステータスチェックコマンドによる消去動作の確認手順を表わすフローチャートである。図9を参照して、ブロックステータスチェックコマンドが入力されたときに、制御回路6は、アドレスをフラグ領域サブブロック0のフラグメモリセルFC、サブブロック1のフラグメモリセルFC、およびサブブロック2のフラグメモリセルFCを指定するアドレスに設定するステップS401。次に、制御回路6は、サブブロック0のフラグメモリセルFCに割り当てられた第1のブロック消去完了フラグの値をチェックするステップS402。制御回路6は、第1のブロック消去完了フラグの値が消去状態を表わす1の場合にはステップS403でNO、消去動作が失敗したと判定して終了する。制御回路6は、第1のブロック消去完了フラグの値が書込み状態を表わす0の場合にはステップS403でYES、サブブロック1のフラグメモリセルFCに割り当てられた第2のブロック消去完了フラグの値をチェックするステップS404。制御回路6は、第2のブロック消去完了フラグの値が書込状態を表わす0の場合にはステップS405でNO、消去動作が失敗したと判定して終了する。制御回路6は、第2のブロック消去完了フラグの値が消去状態を表わす1の場合にはステップS405でYES、サブブロック2のフラグメモリセルFCに割り当てられたブロック使用フラグの値をチェックするステップS406。制御回路6は、ブロック使用フラグの値が書込状態を表わす0の場合にはステップS407でNO、消去動作が失敗したと判定して終了する。制御回路6は、ブロック使用フラグの値が消去状態を表わす1の場合にはステップS407でYES、消去動作が成功したすなわちメモリブロックが正常に消去動作を終了し、かつ消去状態が保持されていると判定して終了する。本実施の形態によれば、ブロックステータスチェックコマンドによって、そのメモリブロックが正常に消去動作終了し、消去状態が保持されていることを容易に確認できる。第2の実施形態]第1の実施形態、第1の実施形態の変形例では、サブブロック0、サブブロック1、およびサブブロック2のフラグメモリセルFCについてのみ説明した。メモリアレイによっては、メモリブロックのデータを保護するロックビットを備えているものもある。ロックビットは消去動作および書込み動作開始時にチェックされるビットであり、このビットが書込み状態の場合には、消去動作および書込み動作は中止される。本実施の形態では、ロックビットを備えるメモリにおけるブロック消去動作を説明する。本実施の形態では、ロックビットを、第1のブロック消去完了フラグ、第2のブロック消去完了フラグ、およびブロック使用フラグと同時に読み出させるように、サブブロック7のフラグメインビット線に接続されるフラグメモリセルFCに記憶することとする。図10は、ロックビットを備えるメモリにおけるブロック消去の動作手順を表わすフローチャートである。図10のフローチャートが、図6のフローチャートと相違する点は、動作開始直後にロックビットをチェックするステップS501である。なわち、ロックビットが書込み状態であれば消去動作が中止される。図11は、第2の実施形態のブロックステータスチェックコマンドによる消去動作の確認手順を表わすフローチャートである。図11を参照して、ブロックステータスチェックコマンドが入力されたら、制御回路6は、アドレスがフラグ領域サブブロック0のフラグメモリセルFC、サブブロック1のフラグメモリセルFC、サブブロック2のフラグメモリセルFCを指定するアドレスに設定するステップS601。次に、制御回路6は、サブブロック0のフラグメモリセルFCに割り当てられた第1のブロック消去完了フラグの値をチェックするステップS602。制御回路6は、第1のブロック消去完了フラグの値が消去状態を表わす1の場合にはステップS603でNO、消去動作が失敗したと判定して終了する。制御回路6は、第1のブロック消去完了フラグの値が書込み状態を表わす0の場合にはステップS603でYES、サブブロック1のフラグメモリセルFCに割り当てられた第2のブロック消去完了フラグの値をチェックするステップS604。制御回路6は、第2のブロック消去完了フラグの値が書込状態を表わす0の場合にはステップS605でNO、消去動作が失敗したと判定して終了する。制御回路6は、第2のブロック消去完了フラグの値が消去状態を表わす1の場合にはステップS605でYES、サブブロック2のフラグメモリセルFCに割り当てられたブロック使用フラグの値をチェックするステップS606。制御回路6は、ブロック使用フラグの値が書込状態を表わす0の場合にはステップS607でNO、消去動作が失敗したと判定して終了する。制御回路6は、ブロック使用フラグの値が消去状態を表わす1の場合にはステップS607でYES、サブブロック7のフラグメモリセルFCに割り当てられたロックビットの値をチェックするステップS608。制御回路6は、ロックの値が書込状態を表わす0の場合にはステップS609でNO、消去動作が失敗したと判定して終了する。制御回路6は、ロックビットの値が消去状態を表わす1の場合にはステップS609でYES、消去動作が成功したすなわちメモリブロックが正常に消去動作を終了し、かつ消去状態が保持されていると判定して終了する。本実施の形態によれば、ブロックステータスチェックコマンドによって、そのメモリブロックが正常に消去動作終了し、消去状態が保持されていることを容易に確認できる。図12は、第2の実施形態の書込み手順を表わすフローチャートである。まず、制御回路6は、アドレスをフラグ領域サブブロック2およびサブブロック7のフラグメモリセルFCおよびを指定するアドレスに設定するステップS701。次に、制御回路6は、サブブロック2のフラグメモリセルFCに割り当てられたブロック使用フラグの値と、サブブロック7のフラグメモリセルFCに割り当てられたロックビットの値をチェックするステップS702。制御回路6は、ブロック使用フラグの値が消去状態を表わす1で、かつロックビットの値が消去状態を表わす1でない場合にはステップS703でNO、消去動作が正常に終了していないと判断して終了する。制御回路6は、ブロック使用フラグの値が消去状態を表わす1で、かつロックビットの値が消去状態を表わす1である場合にはステップS703でYES、アドレスを書込みアドレスに設定するステップS704。次に、書込みベリファイがパスするまで、制御回路6は、書込みパルスが印加されるように制御するステップS705~S707。図12で説明したように、ロックビットとブロック使用フラグを、データを書込み前に確認することで、書込みのための動作時間が従来より増加することなく、機能組み込みが可能である。図13は、ロックビットの書込み手順を表わすフローチャートである。まず、制御回路6は、アドレスをフラグ領域サブブロック2およびサブブロック7のフラグメモリセルFCを指定するアドレスに設定するステップS801。次に、制御回路6は、サブブロック2のフラグメモリセルFCに割り当てられたブロック使用フラグの値と、サブブロック7のフラグメモリセルFCに割り当てられたロックビットの値をチェックするステップS802。制御回路6は、第1のブロック消去完了フラグが0、第2のブロック消去完了フラグが1消去が正常終了、ブロック使用フラグの値が使用開始していることを表す0で、かつロックビットの値が消去状態を表わす1である場合にはステップS803でYES、アドレスをフラグ領域サブブロック7のフラグメモリセルFCを指定するアドレスに設定するステップS804。これ以外の場合にはステップS803でNO、消去動作が正常に終了していない、または、ブロックが未使用と判断して終了する。次に、書込みベリファイがパスするまで、制御回路6は、書込みパルスが印加されるように制御するステップS805~S807。[第3の実施形態]本実施の形態では、データステータスチェックコマンドによる制御について説明する。データステータチェックコマンドは、外部から入力されるもので、指定アドレスと、指定アドレスのメモリセルに本来書込まれているはずのデータとを伴う。制御回路6は、メモリアレイ99の指定アドレスのメモリセルにすでに書込まれているデータとデータスタータスチェックコマンドと同時に入力される指定アドレスのメモリセルに本来書込まれているはずのデータとを比較し、一致すればパスを出力し、不一致であればエラーを出力する。メモリアレイ99のデータを内部で読み出す際は、読み出し時のコントロールゲート電圧を図7に示すような読出しレベルよりも高く、かつ書込みベリファイ電圧よりも低い電圧とする。図14は、データステータスチェックコマンドによる制御手順を表わすフローチャートである。まず、制御回路6は、アドレスをデータステータスチェックコマンドと同時に入力された指定アドレスに設定するステップS901。次に、指定アドレスのメモリセルからデータを読み出して、読み出したデータと、データステータスチェックコマンドと同時に入力される指定アドレスのメモリセルに本来書込まれているはずのデータとを比較するステップS902。制御回路6は、指定アドレスのメモリセルから読み出したデータと、本来書込まれているはずのデータとが一致する場合にはステップS903でYES、書込み動作が成功したと判定して終了する。制御回路6は、指定アドレスのメモリセルから読み出したデータと、本来書込まれているはずのデータとが一致しない場合にはステップS903でNO、書込み動作が失敗したと判定して終了する。以上のように、従来では、電源遮断が発生した場合には直前の書込み動作の有効性の判断が難しかったが、本実施の形態によれば、確実に判断できるようになる。さらにデータ比較は不揮発性半導体記憶装置の内部で実施されることから、不揮発性半導体記憶装置外部での比較装置が不要となる。今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。