(57)【要約】【課題】メモリユニットの過消去／過書込を回避するとともに書込時間を短縮する。【解決手段】メモリ制御回路は、メモリユニット(MU11)に格納されたデータ値を読み出すリード動作を実行し、リード動作によって読み出されたデータ値の反転値(XRD1)がメモリユニット(MU11)に書き込まれるようにメモリユニット(MU11)の第１および第２のフローティングゲートの電荷量を制御する反転書込動作を開始し、メモリユニット(MU11)への反転値(XRD1)の書き込みが完了する前に反転書込動作を終了し、メモリユニット(MU11)に書き込むべき書き込みデータ値(WD1)がメモリユニット(MU11)に書き込まれるようにメモリユニット(MU11)の第１および第２のフローティングゲートの電荷量を制御する通常書込動作を実行する。【選択図】図２
2012174294.tif 000002
【特許請求の範囲】
【請求項１】
第１のフローティングゲートを有する第１のビットセルと、第２のフローティングゲートを有する第２のビットセルとを含み、前記第１および第２のフローティングゲートの電荷量が互いに異なるように前記第１および第２のフローティングゲートに電荷を蓄積することによってデータ値を格納するメモリユニットと、
前記メモリユニットに格納されたデータ値を読み出すリード動作と、前記リード動作によって読み出されたデータ値の反転値を前記メモリユニットに書き込む反転書込動作と、前記メモリユニットに書き込むべき書き込みデータ値を前記メモリユニットに書き込む通常書込動作とを実行するメモリ制御回路とを備える
ことを特徴とする不揮発性半導体記憶装置。
【請求項２】
請求項１において、
前記反転書込動作は、前記リード動作によって読み出されたデータ値の反転値が前記メモリユニットに書き込まれるように前記第１および第２のフローティングゲートの電荷量を制御する動作であり、
前記通常書込動作は、前記書き込みデータ値が前記メモリユニットに書き込まれるように前記第１および第２のフローティングゲートの電荷量を制御する動作であり、
メモリ制御回路は、前記リード動作を実行した後に前記反転書込動作を開始し、前記メモリユニットへの前記反転値の書き込みが完了する前に前記反転書込動作を終了し、前記反転書込動作を終了した後に前記通常書込動作を実行する
ことを特徴とする不揮発性半導体記憶装置。
【請求項３】
請求項２において、
前記メモリ制御回路は、前記反転書込動作の開始から予め設定された反転書込時間が経過すると前記反転書込動作を終了し、前記通常書込動作を開始する
ことを特徴とする不揮発性半導体記憶装置。
【請求項４】
請求項２において、
前記第１および第２のビットセルにそれぞれ接続された第１および第２のビット線をさらに備え、
前記メモリ制御回路によって前記リード動作が実行された場合に、前記第１および第２のビットセルは、それぞれ、前記第１および第２のビット線に発生する第１および第２のビット線電圧を前記第１および第２のフローティングゲートの電荷量に応じて変動させ、
前記メモリ制御回路は、前記反転書込動作による前記メモリユニットへの前記反転値の書き込みが完了する前に、前記リード動作を実行するとともに前記第１および第２のビット線電圧が予め設定された第１および第２の反転完了閾値電圧にそれぞれ到達しているか否かを判定し、前記第１および第２のビット線電圧が前記第１および第２の反転完了閾値電圧にそれぞれ到達していると判定するまで前記反転書込動作および前記リード動作を繰り返し、前記第１および第２のビット線電圧が前記第１および第２の反転完了閾値電圧にそれぞれ到達していると判定すると、前記通常書込動作を開始する
ことを特徴とする不揮発性半導体記憶装置。
【請求項５】
請求項２において、
前記第１および第２のフローティングゲートから電荷が放出される速度が前記第１および第２のフローティングゲートに電荷が注入される速度よりも速い場合、前記メモリ制御回路は、前記反転書込動作の終了後に、前記第１および第２のフローティングゲートの両方に電荷を注入する同時プログラム動作を開始し、前記同時プログラム動作の終了後に、前記通常書込動作を実行する
ことを特徴とする不揮発性半導体記憶装置。
【請求項６】
請求項２において、
前記第１および第２のフローティングゲートから電荷が放出される速度が前記第１および第２のフローティングゲートに電荷が注入される速度よりも遅い場合、前記メモリ制御回路は、前記反転書込動作の終了後に、前記第１および第２のフローティングゲートの両方から電荷を放出する同時イレース動作を開始し、前記同時イレース動作の終了後に、前記通常書込動作を実行する
ことを特徴とする不揮発性半導体記憶装置。
【請求項７】
第１のフローティングゲートを有する第１のビットセルと、第２のフローティングゲートを有する第２のビットセルとを含み、前記第１および第２のフローティングゲートの電荷量が互いに異なるように前記第１および第２のフローティングゲートに電荷を蓄積することによってデータ値を格納するメモリユニットと、
前記メモリユニットに格納されたデータ値を読み出すリード動作を実行し、前記メモリユニットに書き込むべき書き込みデータ値が前記リード動作によって読み出されたデータ値とは異なる場合には、前記書き込みデータ値を前記メモリユニットに書き込む通常書込動作を実行し、前記書き込みデータ値が前記リード動作によって読み出されたデータ値と同一である場合には、前記通常書込動作を実行しないメモリ制御回路とを備える
ことを特徴とする不揮発性半導体記憶装置。
【請求項８】
請求項７において、
前記通常書込動作は、前記書き込みデータ値が前記メモリユニットに書き込まれるように前記第１および第２のフローティングゲートの電荷量を制御する動作である
ことを特徴とする不揮発性半導体記憶装置。
【請求項９】
請求項１〜８のいずれか１項において、
前記第１のビットセルは、
前記第１のフローティングゲートに接続され、前記メモリ制御回路による制御に応答して前記第１のフローティングゲートに電荷を注入するコントロールゲートとして機能する第１のプログラムキャパシタと、
前記第１のフローティングゲートに接続され、前記メモリ制御回路による制御に応答して前記第１のフローティングゲートから電荷を放出させるイレースゲートとして機能する第１のイレースキャパシタと、
前記第１のフローティングゲートに接続されたゲートを有する第１のリードトランジスタとをさらに有し、
前記第２のビットセルは、
前記第２のフローティングゲートに接続され、前記メモリ制御回路による制御に応答して前記第２のフローティングゲートに電荷を注入するコントロールゲートとして機能する第２のプログラムキャパシタと、
前記第２のフローティングゲートに接続され、前記メモリ制御回路による制御に応答して前記第２のフローティングゲートから電荷を放出させるイレースゲートとして機能する第２のイレースキャパシタと、
前記第２のフローティングゲートに接続されたゲートを有する第２のリードトランジスタとをさらに有する
ことを特徴とする不揮発性半導体記憶装置。
【請求項１０】
請求項９において、
前記第１のプログラムキャパシタの容量値は、前記第１のイレースキャパシタの容量値および前記第１のリードトランジスタのゲート容量の容量値よりも大きく、
前記第２のプログラムキャパシタの容量値は、前記第２のイレースキャパシタの容量値および前記第２のリードトランジスタのゲート容量の容量値よりも大きい
ことを特徴とする不揮発性半導体記憶装置。
【請求項１１】
請求項１０において、
前記第１のイレースキャパシタの容量値は、前記第１のリードトランジスタのゲート容量の容量値よりも小さく、
前記第２のイレースキャパシタの容量値は、前記第２のリードトランジスタのゲート容量の容量値よりも小さい
ことを特徴とする不揮発性半導体記憶装置。
【請求項１２】
請求項９において、
前記第１および第２のプログラムキャパシタは、それぞれ、第１および第２のＭＯＳキャパシタによって構成され、
前記第１および第２のイレースキャパシタは、それぞれ、第３および第４のＭＯＳキャパシタによって構成され、
前記第１のＭＯＳキャパシタのチャネル面積は、前記第３のＭＯＳキャパシタのチャネル面積および前記第１のリードトランジスタのチャネル面積よりも大きく、
前記第２のＭＯＳキャパシタのチャネル面積は、前記第４のＭＯＳキャパシタのチャネル面積および前記第２のリードトランジスタのチャネル面積よりも大きい
ことを特徴とする不揮発性半導体記憶装置。
【請求項１３】
請求項１２において、
前記第３のＭＯＳキャパシタのチャネル面積は、前記第１のリードトランジスタのチャネル面積よりも小さく、
前記第４のＭＯＳキャパシタのチャネル面積は、前記第２のリードトランジスタのチャネル面積よりも小さい
ことを特徴とする不揮発性半導体記憶装置。
【請求項１４】
請求項９において、
前記第１および第２のプログラムキャパシタは、それぞれ、第１および第２のＭＯＳキャパシタによって構成され、
前記第１および第２のイレースキャパシタは、それぞれ、第３および第４のＭＯＳキャパシタによって構成され、
前記第１のＭＯＳキャパシタの酸化膜厚は、前記第３のＭＯＳキャパシタの酸化膜厚および前記第１のリードトランジスタの酸化膜厚よりも薄く、
前記第２のＭＯＳキャパシタの酸化膜厚は、前記第４のＭＯＳキャパシタの酸化膜厚および前記第２のリードトランジスタの酸化膜厚よりも薄い
ことを特徴とする不揮発性半導体記憶装置。
【請求項１５】
請求項１４において、
前記第３のＭＯＳキャパシタの酸化膜厚は、前記第１のリードトランジスタの酸化膜厚よりも厚く、
前記第４のＭＯＳキャパシタの酸化膜厚は、前記第２のリードトランジスタの酸化膜厚よりも厚い
ことを特徴とする不揮発性半導体記憶装置。
【請求項１６】
請求項９において、
前記第１および第２のイレースキャパシタの各々は、Ｎ型ウェル領域に形成され、且つ、ソースおよびドレインがＮ型拡散層によって形成されたＤＭＯＳトランジスタによって構成されている
ことを特徴とする不揮発性半導体記憶装置。
【請求項１７】
フローティングゲートを有するビットセルを含み、前記フローティングゲートに電荷を蓄積することによってデータ値を格納するメモリユニットと、
前記メモリユニットに格納されたデータ値を読み出すリード動作と、前記リード動作によって読み出されたデータ値の反転値を前記メモリユニットに書き込む反転書込動作と、前記メモリユニットに書き込むべき書き込みデータ値を前記メモリユニットに書き込む通常書込動作とを実行するメモリ制御回路とを備える
ことを特徴とする不揮発性半導体記憶装置。
【請求項１８】
請求項１７において、
前記反転書込動作は、前記リード動作によって読み出されたデータ値の反転値が前記メモリユニットに書き込まれるように前記フローティングゲートの電荷量を制御する動作であり、
前記通常書込動作は、前記書き込みデータ値が前記メモリユニットに書き込まれるように前記フローティングゲートの電荷量を制御する動作であり、
前記メモリ制御回路は、前記リード動作を実行した後に前記反転書込動作を開始し、前記メモリユニットへの前記反転値の書き込みが完了する前に前記反転書込動作を終了し、前記反転書込動作を終了した後に前記通常書込動作を実行する
ことを特徴とする不揮発性半導体記憶装置。
【請求項１９】
フローティングゲートを有するビットセルを含み、前記フローティングゲートに電荷を蓄積することによってデータ値を格納するメモリユニットと、
前記メモリユニットに格納されたデータ値を読み出すリード動作を実行し、前記メモリユニットに書き込むべき書き込みデータ値が前記リード動作によって読み出されたデータ値とは異なる場合には、前記書き込みデータ値を前記メモリユニットに書き込む通常書込動作を実行し、前記書き込みデータ値が前記リード動作によって読み出されたデータ値と同一である場合には、前記通常書込動作を実行しないメモリ制御回路とを備える
ことを特徴とする不揮発性半導体記憶装置。
【請求項２０】
請求項１９において、
前記通常書込動作は、前記書き込みデータ値が前記メモリユニットに書き込まれるように前記フローティングゲートの電荷量を制御する動作である
ことを特徴とする不揮発性半導体記憶装置。
【請求項２１】
第１のフローティングゲートを有する第１のビットセルと、第２のフローティングゲートを有する第２のビットセルとを含み、前記第１および第２のフローティングゲートの電荷量が互いに異なるように前記第１および第２のフローティングゲートに電荷を蓄積することによってデータ値を格納するメモリユニットに書き込みデータ値を書き込む方法であって、
前記メモリユニットに格納されたデータ値を読み出すステップ（ａ）と、
前記ステップ（ａ）によって読み出されたデータ値の反転値を前記メモリユニットに書き込む反転書込動作を開始し、前記メモリユニットへの前記反転値の書き込みが完了する前に前記反転書込動作を終了するステップ（ｂ）と、
前記ステップ（ｂ）の後に、前記書き込みデータ値を前記メモリユニットに書き込む通常書込動作を実行するステップ（ｃ）とを備える
ことを特徴とする記憶方法。
【請求項２２】
請求項２１において、
前記反転書込動作は、前記ステップ（ａ）によって読み出されたデータ値の反転値が前記メモリユニットに書き込まれるように前記第１および第２のフローティングゲートの電荷量を制御する動作であり、
前記通常書込動作は、前記書き込みデータ値が前記メモリユニットに書き込まれるように前記第１および第２のフローティングゲートの電荷量を制御する動作である
ことを特徴とする記憶方法。
【請求項２３】
第１のフローティングゲートを有する第１のビットセルと、第２のフローティングゲートを有する第２のビットセルとを含み、前記第１および第２のフローティングゲートの電荷量が互いに異なるように前記第１および第２のフローティングゲートに電荷を蓄積することによってデータ値を格納するメモリユニットに書き込みデータ値を書き込む方法であって、
前記メモリユニットに格納されたデータ値を読み出すステップ（ａ）と、
前記書き込みデータ値が前記ステップ（ａ）によって読み出されたデータ値とは異なるか否かを判定するステップ（ｂ）と、
前記ステップ（ｂ）によって前記書き込みデータ値が前記ステップ（ａ）によって読み出されたデータ値とは異なると判定された場合に、前記書き込みデータ値を前記メモリユニットに書き込む通常書込動作を実行するステップ（ｃ）とを備える
ことを特徴とする記憶方法。
【請求項２４】
請求項２３において、
前記通常書込動作は、前記書き込みデータ値が前記メモリユニットに書き込まれるように前記第１および第２のフローティングゲートの電荷量を制御する動作である
ことを特徴とする記憶方法。
【請求項２５】
フローティングゲートを有するビットセルを含み、前記フローティングゲートに電荷を蓄積することによってデータ値を格納するメモリユニットに書き込みデータ値を書き込む方法であって、
前記メモリユニットに格納されたデータ値を読み出すステップ（ａ）と、
前記ステップ（ａ）によって読み出されたデータ値の反転値を前記メモリユニットに書き込む反転書込動作を開始し、前記メモリユニットへの前記反転値の書き込みが完了する前に前記反転書込動作を終了するステップ（ｂ）と、
前記ステップ（ｂ）の後に、前記書き込みデータ値を前記メモリユニットに書き込む通常書込動作を実行するステップ（ｃ）とを備える
ことを特徴とする記憶方法。
【請求項２６】
請求項２５において、
前記反転書込動作は、前記ステップ（ａ）によって読み出されたデータ値の反転値が前記メモリユニットに書き込まれるように前記フローティングゲートの電荷量を制御する動作であり、
前記通常書込動作は、前記書き込みデータ値が前記メモリユニットに書き込まれるように前記フローティングゲートの電荷量を制御する動作である
ことを特徴とする記憶方法。
【請求項２７】
フローティングゲートを有するビットセルを含み、前記フローティングゲートに電荷を蓄積することによってデータ値を格納するメモリユニットに書き込みデータ値を書き込む方法であって、
前記メモリユニットに格納されたデータ値を読み出すステップ（ａ）と、
前記書き込みデータ値が前記ステップ（ａ）によって読み出されたデータ値とは異なるか否かを判定するステップ（ｂ）と、
前記ステップ（ｂ）によって前記書き込みデータ値が前記ステップ（ａ）によって読み出されたデータ値とは異なると判定された場合に、前記書き込みデータ値を前記メモリユニットに書き込む通常書込動作を実行するステップ（ｃ）とを備える
ことを特徴とする記憶方法。
【請求項２８】
請求項２７において、
前記通常書込動作は、前記書き込みデータ値が前記メモリユニットに書き込まれるように前記フローティングゲートの電荷量を制御する動作である
ことを特徴とする記憶方法。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、不揮発性半導体記憶装置に関し、さらに詳しくは、不揮発性半導体記憶装置の書込動作の制御に関する。
【背景技術】
【０００２】
近年、システムＬＳＩに不揮発性半導体記憶装置（例えば、フラッシュメモリなど）を搭載することが検討されている。例えば、標準ＣＭＯＳプロセスによって製造されたシステムＬＳＩへのセキュア技術（暗号鍵を用いた暗号化技術）の実装化に対する要望の高まりに伴い、解析による情報漏洩の懸念があるメタルヒューズの代わりに、不揮発性半導体記憶装置を搭載することが検討されている。
【０００３】
非特許文献１には、標準ＣＭＯＳプロセスによって製造されたＬＳＩに混載可能なＣＭＯＳ不揮発性メモリが記載されている。このＣＭＯＳ不揮発性メモリでは、標準ＣＭＯＳプロセスのシステムＬＳＩに混載可能な１個のＮＭＯＳトランジスタおよび２個のＰＭＯＳトランジスタ（第１および第２のＰＭＯＳトランジスタ）の各々のゲートによってフローティングゲートが構成され、プログラム動作およびリード動作の場合に第１のＰＭＯＳトランジスタの拡散層領域がコントロールゲートとして利用され、イレース動作の場合に第２のＰＭＯＳトランジスタの拡散層領域がイレースゲートとして利用される。
【０００４】
特許文献１および非特許文献２には、標準ＣＭＯＳプロセスによって製造可能な不揮発性メモリ素子を有する不揮発性半導体記憶のコア構成としてヒューズが用い、ビットセル毎にセンスアンプ，ラッチ回路，およびシフトレジスタを設けることが記載されている。
【０００５】
特許文献２には、行列状に配列された複数個のメモリユニットをビット毎に選択的に消去可能な不揮発性半導体記憶装置が記載されている。特許文献２に記載の不揮発性半導体記憶装置では、行列状に配列された複数個のメモリユニットの全部においてＴビットセルおよびＢビットセルのフローティングゲートの両方に電荷が注入されるように制御電圧を印加し、その後、書き込みデータ値に応じて書込動作の対象となるメモリユニットのＴビットセルおよびＢビットセルのいずれか一方のフローティングゲートから電荷が放出されるように制御電圧を印加する。これにより、書込動作の対象となるメモリユニットに“０”または“１”を示したデータ値が書き込まれる。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００５−２６７７９４号公報
【特許文献２】特開２００８−２３４８２１号公報
【非特許文献】
【０００７】
【非特許文献１】Richard J. McPartland, et al., "1.25 Volt, Low Cost, Embedded FLASH Memory for Low Density Applications", 2000 Symposium on VLSI Circuits Digest of Technical Papers, pp.158-161.
【非特許文献２】ISSCC2004 Embedded Flash Memory for Security Applications in 0.13um CMOS Logic Process_slide.pdf
【発明の概要】
【発明が解決しようとする課題】
【０００８】
しかしながら、非特許文献２では、メモリセルに格納されたデータ値と同一のデータ値が書き込まれる動作が実行されることにより、メモリセルにおいて過消去（フローティングゲートから電荷が引き抜かれすぎること）または過書込（フローティングゲートに電荷が注入され過ぎること）が発生するおそれがある。そのため、書込動作の信頼性が低下してしまう。
【０００９】
また、特許文献２では、メモリユニットにデータ値を書き込む際に、メモリユニットのＴビットセルおよびＢビットセルの両方のフローティングゲートに電荷を注入した後に、書き込みデータ値に応じてＴビットセルおよびＢビットセルのいずれか一方のフローティングゲートから電荷を放出させるので、書き込み時間を短縮することが困難である。
【００１０】
そこで、この発明は、メモリユニットの過消去および過書込を回避できるとともに書き込み時間を短縮可能な不揮発性半導体記憶装置を提供することを目的とする。
【課題を解決するための手段】
【００１１】
この発明の１つの局面に従うと、不揮発性半導体記憶装置は、第１のフローティングゲートを有する第１のビットセルと、第２のフローティングゲートを有する第２のビットセルとを含み、上記第１および第２のフローティングゲートの電荷量が互いに異なるように上記第１および第２のフローティングゲートに電荷を蓄積することによってデータ値を格納するメモリユニットと、上記メモリユニットに格納されたデータ値を読み出すリード動作と、上記リード動作によって読み出されたデータ値の反転値を上記メモリユニットに書き込む反転書込動作と、上記メモリユニットに書き込むべき書き込みデータ値を上記メモリユニットに書き込む通常書込動作とを実行するメモリ制御回路とを備える。
【００１２】
上記不揮発性半導体記憶装置では、反転書込動作によってメモリユニットの第１および第２のフローティングゲートの電荷量を中間量（例えば、“１”を示したデータ値に対応する電荷量と“０”を示したデータ値に対応する電荷量との間の中間量）を近づけることができ、その後、通常書込動作によってメモリユニットの第１および第２のフローティングゲートの電荷量を中間量から書き込みデータ値に応じた電荷量（例えば、“１”を示したデータ値に対応する電荷量、または、“０”を示したデータ値に対応する電荷量）に近づけることができる。したがって、メモリユニットにおける過消去（フローティングゲートから電荷が引き抜かれすぎること）および過書込（フローティングゲートに電荷が注入され過ぎること）を回避できる。また、反転書込動作および通常書込動作のいずれの場合においても、メモリユニットの第１および第２のフローティングゲートのうち一方のフローティングゲートから電荷を放出させる動作と他方のフローティングゲートに電荷を注入する動作とが同時に実行される。したがって、メモリユニットの第１および第２のフローティングゲートの両方に電荷を注入した後に書き込みデータ値に応じて第１および第２のフローティングゲートのいずれか一方のフローティングゲートから電荷を放出させる場合よりも、書込時間（メモリユニットへの書き込みデータ値の書き込みに要する時間）を短縮できる。
【００１３】
なお、上記反転書込動作は、上記リード動作によって読み出されたデータ値の反転値が上記メモリユニットに書き込まれるように上記第１および第２のフローティングゲートの電荷量を制御する動作であり、上記通常書込動作は、上記書き込みデータ値が上記メモリユニットに書き込まれるように上記第１および第２のフローティングゲートの電荷量を制御する動作であり、メモリ制御回路は、上記リード動作を実行した後に上記反転書込動作を開始し、上記メモリユニットへの上記反転値の書き込みが完了する前に上記反転書込動作を終了し、上記反転書込動作を終了した後に上記通常書込動作を実行しても良い。
【００１４】
また、上記メモリ制御回路は、上記反転書込動作の開始から予め設定された反転書込時間が経過すると上記反転書込動作を終了し、上記通常書込動作を開始しても良い。
【００１５】
このように、反転書込時間に基づいて反転書込動作の実行期間を管理することにより、メモリユニットの第１および第２のフローティングゲートの電荷量を中間量に正確に近づけることができる。したがって、メモリユニットに書き込みデータ値を正確に書き込むことができる。
【００１６】
または、上記不揮発性半導体記憶装置は、上記第１および第２のビットセルにそれぞれ接続された第１および第２のビット線をさらに備え、上記メモリ制御回路によって上記リード動作が実行された場合に、上記第１および第２のビットセルは、それぞれ、上記第１および第２のビット線に発生する第１および第２のビット線電圧を上記第１および第２のフローティングゲートの電荷量に応じて変動させ、上記メモリ制御回路は、上記反転書込動作による上記メモリユニットへの上記反転値の書き込みが完了する前に、上記リード動作を実行するとともに上記第１および第２のビット線電圧が予め設定された第１および第２の反転完了閾値電圧にそれぞれ到達しているか否かを判定し、上記第１および第２のビット線電圧が上記第１および第２の反転完了閾値電圧にそれぞれ到達していると判定するまで上記反転書込動作および上記リード動作を繰り返し、上記第１および第２のビット線電圧が上記第１および第２の反転完了閾値電圧にそれぞれ到達していると判定すると、上記通常書込動作を開始しても良い。
【００１７】
このように、第１および第２のビット線電圧と第１および第２の反転完了閾値電圧との比較結果に基づいて反転書込動作の実行期間を管理することにより、メモリユニットの第１および第２のフローティングゲートの電荷量を中間量に正確に近づけることができる。したがって、メモリユニットに書き込みデータ値を正確に書き込むことができる。
【００１８】
また、上記第１および第２のフローティングゲートから電荷が放出される速度が上記第１および第２のフローティングゲートに電荷が注入される速度よりも速い場合、上記メモリ制御回路は、上記反転書込動作の終了後に、上記第１および第２のフローティングゲートの両方に電荷を注入する同時プログラム動作を開始し、上記同時プログラム動作の終了後に、上記通常書込動作を実行しても良い。または、上記第１および第２のフローティングゲートから電荷が放出される速度が上記第１および第２のフローティングゲートに電荷が注入される速度よりも遅い場合、上記メモリ制御回路は、上記反転書込動作の終了後に、上記第１および第２のフローティングゲートの両方から電荷を放出する同時イレース動作を開始し、上記同時イレース動作の終了後に、上記通常書込動作を実行しても良い。
【００１９】
このように、反転書込動作期間と通常書込動作期間との間の期間において電荷量調整動作（同時プログラム動作、または同時イレース動作）を実行することにより、電荷注入速度と電荷放出速度とが互いに異なる場合であっても、通常書込動作によってメモリユニットの第１および第２のフローティングゲートの電荷量を書き込みデータ値に応じた電荷量に近づけることができる。したがって、メモリユニットに書き込みデータ値を正確に書き込むことができる。
【００２０】
この発明の別の局面に従うと、不揮発性半導体記憶装置は、第１のフローティングゲートを有する第１のビットセルと、第２のフローティングゲートを有する第２のビットセルとを含み、上記第１および第２のフローティングゲートの電荷量が互いに異なるように上記第１および第２のフローティングゲートに電荷を蓄積することによってデータ値を格納するメモリユニットと、上記メモリユニットに格納されたデータ値を読み出すリード動作を実行し、上記メモリユニットに書き込むべき書き込みデータ値が上記リード動作によって読み出されたデータ値とは異なる場合には、上記書き込みデータ値を上記メモリユニットに書き込む通常書込動作を実行し、上記書き込みデータ値が上記リード動作によって読み出されたデータ値と同一である場合には、上記通常書込動作を実行しないメモリ制御回路とを備える。
【００２１】
上記不揮発性半導体記憶装置では、メモリユニットに格納されたデータ値の書き換えが不要である場合には、メモリユニットに対して通常書込動作が実行されない。したがって、メモリユニットにおける過消去および過書込を回避できる。また、通常書込動作では、メモリユニットの第１および第２のフローティングゲートのうち一方のフローティングゲートから電荷を放出させる動作と他方のフローティングゲートに電荷を注入する動作とが同時に実行される。したがって、メモリユニットの第１および第２のフローティングゲートの両方に電荷を注入した後に書き込みデータ値に応じて第１および第２のフローティングゲートのいずれか一方のフローティングゲートから電荷を放出させる場合よりも、書込時間を短縮できる。
【００２２】
なお、上記通常書込動作は、上記書き込みデータ値が上記メモリユニットに書き込まれるように上記第１および第２のフローティングゲートの電荷量を制御する動作であっても良い。
【００２３】
また、上記第１のビットセルは、上記第１のフローティングゲートに接続され、上記メモリ制御回路による制御に応答して上記第１のフローティングゲートに電荷を注入するコントロールゲートとして機能する第１のプログラムキャパシタと、上記第１のフローティングゲートに接続され、上記メモリ制御回路による制御に応答して上記第１のフローティングゲートから電荷を放出させるイレースゲートとして機能する第１のイレースキャパシタと、上記第１のフローティングゲートに接続されたゲートを有する第１のリードトランジスタとをさらに有し、上記第２のビットセルは、上記第２のフローティングゲートに接続され、上記メモリ制御回路による制御に応答して上記第２のフローティングゲートに電荷を注入するコントロールゲートとして機能する第２のプログラムキャパシタと、上記第２のフローティングゲートに接続され、上記メモリ制御回路による制御に応答して上記第２のフローティングゲートから電荷を放出させるイレースゲートとして機能する第２のイレースキャパシタと、上記第２のフローティングゲートに接続されたゲートを有する第２のリードトランジスタとをさらに有していても良い。
【００２４】
なお、上記第１のプログラムキャパシタの容量値は、上記第１のイレースキャパシタの容量値および上記第１のリードトランジスタのゲート容量の容量値よりも大きく、上記第２のプログラムキャパシタの容量値は、上記第２のイレースキャパシタの容量値および上記第２のリードトランジスタのゲート容量の容量値よりも大きいことが好ましい。さらに、上記第１のイレースキャパシタの容量値は、上記第１のリードトランジスタのゲート容量の容量値よりも小さく、上記第２のイレースキャパシタの容量値は、上記第２のリードトランジスタのゲート容量の容量値よりも小さいことが好ましい。
【００２５】
このように構成することにより、第１および第２のイレースキャパシタに印加される電圧を高くすることができるので、第１および第２のフローティングゲートから電荷を放出する速度を高速化することができる。
【００２６】
この発明の別の局面に従うと、不揮発性半導体記憶装置は、フローティングゲートを有するビットセルを含み、上記フローティングゲートに電荷を蓄積することによってデータ値を格納するメモリユニットと、上記メモリユニットに格納されたデータ値を読み出すリード動作と、上記リード動作によって読み出されたデータ値の反転値を上記メモリユニットに書き込む反転書込動作と、上記メモリユニットに書き込むべき書き込みデータ値を上記メモリユニットに書き込む通常書込動作とを実行するメモリ制御回路とを備える。
【００２７】
上記不揮発性半導体記憶装置では、反転書込動作によってメモリユニットのフローティングゲートの電荷量を中間量を近づけることができ、その後、通常書込動作によってメモリユニットのフローティングゲートの電荷量を中間量から書き込みデータ値に応じた電荷量に近づけることができる。したがって、メモリユニットにおける過消去および過書込を回避できる。また、メモリユニットのフローティングゲートに電荷を注入した後に書き込みデータ値に応じてフローティングゲートから電荷を放出させる場合よりも、書込時間を短縮できる。
【００２８】
この発明の別の局面に従うと、不揮発性半導体記憶装置は、フローティングゲートを有するビットセルを含み、上記フローティングゲートに電荷を蓄積することによってデータ値を格納するメモリユニットと、上記メモリユニットに格納されたデータ値を読み出すリード動作を実行し、上記メモリユニットに書き込むべき書き込みデータ値が上記リード動作によって読み出されたデータ値とは異なる場合には、上記書き込みデータ値を上記メモリユニットに書き込む通常書込動作を実行し、上記書き込みデータ値が上記リード動作によって読み出されたデータ値と同一である場合には、上記通常書込動作を実行しないメモリ制御回路とを備える。
【００２９】
上記不揮発性半導体記憶装置では、メモリユニットに格納されたデータ値の書き換えが不要である場合には、メモリユニットに対して通常書込動作が実行されない。したがって、メモリユニットにおける過消去および過書込を回避できる。また、メモリユニットのフローティングゲートに電荷を注入した後に書き込みデータ値に応じてフローティングゲートから電荷を放出させる場合よりも、書込時間を短縮できる。
【００３０】
この発明の別の局面に従うと、記憶方法は、第１のフローティングゲートを有する第１のビットセルと、第２のフローティングゲートを有する第２のビットセルとを含み、上記第１および第２のフローティングゲートの電荷量が互いに異なるように上記第１および第２のフローティングゲートに電荷を蓄積することによってデータ値を格納するメモリユニットに書き込みデータ値を書き込む方法であって、上記メモリユニットに格納されたデータ値を読み出すステップ（ａ）と、上記ステップ（ａ）によって読み出されたデータ値の反転値を上記メモリユニットに書き込む反転書込動作を開始し、上記メモリユニットへの上記反転値の書き込みが完了する前に上記反転書込動作を終了するステップ（ｂ）と、上記ステップ（ｂ）の後に、上記書き込みデータ値を上記メモリユニットに書き込む通常書込動作を実行するステップ（ｃ）とを備える。
【００３１】
上記記憶方法では、反転書込動作によってメモリユニットの第１および第２のフローティングゲートの電荷量を中間量を近づけることができ、その後、通常書込動作によってメモリユニットの第１および第２のフローティングゲートの電荷量を中間量から書き込みデータ値に応じた電荷量に近づけることができる。したがって、メモリユニットにおける過消去および過書込を回避できる。また、反転書込動作および通常書込動作のいずれの場合においても、メモリユニットの第１および第２のフローティングゲートのうち一方のフローティングゲートから電荷を放出させる動作と他方のフローティングゲートに電荷を注入する動作とが同時に実行される。したがって、メモリユニットの第１および第２のフローティングゲートの両方に電荷を注入した後に書き込みデータ値に応じて第１および第２のフローティングゲートのいずれか一方のフローティングゲートから電荷を放出させる場合よりも、書込時間を短縮できる。
【００３２】
この発明の別の局面に従うと、記憶方法は、第１のフローティングゲートを有する第１のビットセルと、第２のフローティングゲートを有する第２のビットセルとを含み、上記第１および第２のフローティングゲートの電荷量が互いに異なるように上記第１および第２のフローティングゲートに電荷を蓄積することによってデータ値を格納するメモリユニットに書き込みデータ値を書き込む方法であって、上記メモリユニットに格納されたデータ値を読み出すステップ（ａ）と、上記書き込みデータ値が上記ステップ（ａ）によって読み出されたデータ値とは異なるか否かを判定するステップ（ｂ）と、上記ステップ（ｂ）によって上記書き込みデータ値が上記ステップ（ａ）によって読み出されたデータ値とは異なると判定された場合に、上記書き込みデータ値を上記メモリユニットに書き込む通常書込動作を実行するステップ（ｃ）とを備える。
【００３３】
上記記憶方法では、メモリユニットに格納されたデータ値の書き換えが不要である場合には、メモリユニットに対して通常書込動作が実行されない。したがって、メモリユニットにおける過消去および過書込を回避できる。また、通常書込動作では、メモリユニットの第１および第２のフローティングゲートのうち一方のフローティングゲートから電荷を放出させる動作と他方のフローティングゲートに電荷を注入する動作とが同時に実行される。したがって、メモリユニットの第１および第２のフローティングゲートの両方に電荷を注入した後に書き込みデータ値に応じて第１および第２のフローティングゲートのいずれか一方のフローティングゲートから電荷を放出させる場合よりも、書込時間を短縮できる。
【００３４】
この発明の別の局面に従うと、記憶方法は、フローティングゲートを有するビットセルを含み、上記フローティングゲートに電荷を蓄積することによってデータ値を格納するメモリユニットに書き込みデータ値を書き込む方法であって、上記メモリユニットに格納されたデータ値を読み出すステップ（ａ）と、上記ステップ（ａ）によって読み出されたデータ値の反転値を上記メモリユニットに書き込む反転書込動作を開始し、上記メモリユニットへの上記反転値の書き込みが完了する前に上記反転書込動作を終了するステップ（ｂ）と、上記ステップ（ｂ）の後に、上記書き込みデータ値を上記メモリユニットに書き込む通常書込動作を実行するステップ（ｃ）とを備える。
【００３５】
上記記憶方法では、反転書込動作によってメモリユニットのフローティングゲートの電荷量を中間量を近づけることができ、その後、通常書込動作によってメモリユニットのフローティングゲートの電荷量を中間量から書き込みデータ値に応じた電荷量に近づけることができる。したがって、メモリユニットにおける過消去および過書込を回避できる。また、メモリユニットのフローティングゲートに電荷を注入した後に書き込みデータ値に応じてフローティングゲートから電荷を放出させる場合よりも、書込時間を短縮できる。
【００３６】
この発明の別の局面に従うと、記憶方法は、フローティングゲートを有するビットセルを含み、上記フローティングゲートに電荷を蓄積することによってデータ値を格納するメモリユニットに書き込みデータ値を書き込む方法であって、上記メモリユニットに格納されたデータ値を読み出すステップ（ａ）と、上記書き込みデータ値が上記ステップ（ａ）によって読み出されたデータ値とは異なるか否かを判定するステップ（ｂ）と、上記ステップ（ｂ）によって上記書き込みデータ値が上記ステップ（ａ）によって読み出されたデータ値とは異なると判定された場合に、上記書き込みデータ値を上記メモリユニットに書き込む通常書込動作を実行するステップ（ｃ）とを備える。
【００３７】
上記記憶方法では、メモリユニットに格納されたデータ値の書き換えが不要である場合には、メモリユニットに対して通常書込動作が実行されない。したがって、メモリユニットにおける過消去および過書込を回避できる。また、メモリユニットのフローティングゲートに電荷を注入した後に書き込みデータ値に応じてフローティングゲートから電荷を放出させる場合よりも、書込時間を短縮できる。
【発明の効果】
【００３８】
以上のように、メモリユニットにおける過消去および過書込を回避できる。また、メモリユニットの第１および第２のフローティングゲートの両方に電荷を注入した後に書き込みデータ値に応じて第１および第２のフローティングゲートのいずれか一方のフローティングゲートから電荷を放出させる場合よりも、書込時間を短縮できる。
【図面の簡単な説明】
【００３９】
【図１】実施形態１による不揮発性半導体記憶装置の構成例を示す図。
【図２】図１に示した不揮発性半導体記憶装置の構成例について詳細に説明するための図。
【図３】図２に示したメモリユニットの構成例を示す図。
【図４】図２に示したコラム制御回路に含まれるコラム制御部の構成例を示す図。
【図５】図２に示した読み出し回路に含まれる読み出し部の構成例を示す図。
【図６】動作対象となるメモリユニットに対応するロウ制御線およびコラム制御線に対する制御電圧の印加条件について説明するための図。
【図７】動作対象ではないメモリユニットに対応するロウ制御線およびコラム制御線に対する制御電圧の印加条件について説明するための図。
【図８】図１に示した不揮発性半導体記憶装置の書込動作においてロウ制御線およびコラム制御線に印加される制御電圧について説明するための図。
【図９】スタンバイ動作の対象となるメモリユニットについて説明するための図。
【図１０】リード動作の対象となるメモリユニットについて説明するための図。
【図１１】プログラム動作の対象となるメモリユニットについて説明するための図。
【図１２】プログラム動作の対象ではないメモリユニットについて説明するための図。
【図１３】イレース動作の対象となるメモリユニットについて説明するための図。
【図１４】イレース動作の対象ではないメモリユニットについて説明するための図。
【図１５】図４に示した第１のコラム制御信号発生器の構成例を示す図。
【図１６】図４に示した第２のコラム制御信号発生器の構成例を示す図。
【図１７】図１５に示した第１のコラム制御信号発生器の動作について説明するための図。
【図１８】図１６に示した第２のコラム制御信号発生器の動作について説明するための図。
【図１９】図１に示した不揮発性半導体記憶装置の書込動作について説明するためのフローチャート。
【図２０】図１に示した不揮発性半導体記憶装置の書込動作（書き込みデータ値が読み出しデータ値とは異なる場合）の動作タイミングについて説明するためのタイミングチャート。
【図２１】図１に示した不揮発性半導体記憶装置の書込動作（書き込みデータ値が読み出しデータ値と同一である場合）の動作タイミングについて説明するためタイミングチャート。
【図２２】書込動作の対象となるメモリユニットにおけるフローティングゲートの電荷量の変化について説明するための図。
【図２３】実施形態１の変形例１による不揮発性半導体記憶装置の構成例を示す図。
【図２４】図２３に示した不揮発性半導体記憶装置において動作対象ではないメモリユニットに対応するロウ制御線およびコラム制御線に対する制御電圧の印加条件について説明するための図。
【図２５】図２３に示した不揮発性半導体記憶装置の書込動作においてロウ制御線およびコラム制御線に印加される制御電圧について説明するための図。
【図２６】実施形態１の変形例２による不揮発性半導体記憶装置の構成例を示す図。
【図２７】実施形態２による不揮発性半導体記憶装置の構成例を示す図。
【図２８】図２７に示した不揮発性半導体記憶装置の構成例について詳細に説明するための図。
【図２９】図２８に示した検知回路に含まれる検知器の構成例を示す図。
【図３０】図２７に示した不揮発性半導体記憶装置の書込動作について説明するためのフローチャート。
【図３１】図２７に示した不揮発性半導体記憶装置の書込動作の動作タイミングについて説明するためのタイミングチャート。
【図３２】図２７に示した不揮発性半導体記憶装置の書込動作の動作タイミングについて説明するためのタイミングチャート。
【図３３】図２７に示した不揮発性半導体記憶装置の書込動作（書き込みデータ値が読み出しデータ値とは異なる場合）について説明するためのタイミングチャート。
【図３４】図２７に示した不揮発性半導体記憶装置の書込動作（書き込みデータ値が読み出しデータ値と同一である場合）について説明するためのタイミングチャート。
【図３５】実施形態１による不揮発性半導体記憶装置の書込動作の変形例（電荷量調整動作）について説明するためのフローチャート。
【図３６】実施形態１による不揮発性半導体記憶装置の書込動作の変形例（電荷放出速度が電荷注入速度よりも速い場合）について説明するためのタイミングチャート。
【図３７】実施形態１による不揮発性半導体記憶装置の書込動作の変形例（電荷放出速度が電荷注入速度よりも遅い場合）について説明するためのタイミングチャート。
【図３８】実施形態２による不揮発性半導体記憶装置の書込動作の変形例（電荷量調整動作）について説明するためのフローチャート。
【図３９】実施形態２による不揮発性半導体記憶装置の書込動作の変形例（電荷量調整動作）について説明するためのフローチャート。
【図４０】図２９に示した検知器の変形例１（電荷放出速度が電荷注入速度よりも速い場合の構成例）を示す図。
【図４１】実施形態２による不揮発性半導体記憶装置の書込動作の変形例（電荷放出速度が電荷注入速度よりも速い場合）について説明するためのタイミングチャート。
【図４２】図２９に示した検知器の変形例２（電荷放出速度が電荷注入速度よりも遅い場合）を示す図。
【図４３】実施形態２による不揮発性半導体記憶装置の書込動作の変形例（電荷放出速度が電荷注入速度よりも遅い場合）について説明するためのタイミングチャート。
【図４４】実施形態３による不揮発性半導体記憶装置の構成例を示す図。
【図４５】図４４に示した不揮発性半導体記憶装置の構成例について詳細に説明するための図。
【図４６】図４４に示した不揮発性半導体記憶装置において動作対象となるメモリユニットに対応するロウ制御線およびコラム制御線に対する制御電圧の印加条件について説明するための図。
【図４７】図４４に示した不揮発性半導体記憶装置において動作対象ではないメモリユニットに対応するロウ制御線およびコラム制御線に対する制御電圧の印加条件について説明するための図。
【図４８】図４５に示した書き換え判定回路の構成例を示す図。
【図４９】図４５に示したコラム制御回路に含まれる第１のコラム制御信号発生器の構成例を示す図。
【図５０】図４４に示した不揮発性半導体記憶装置の書込動作について説明するためのフローチャート。
【図５１】図４４に示した不揮発性半導体記憶装置の書込動作（書き込みデータ値が読み出しデータ値とは異なる場合）の動作タイミングについて説明するためのタイミングチャート。
【図５２】図４４に示した不揮発性半導体記憶装置の書込動作（書き込みデータ値が読み出しデータ値と同一である場合）の動作タイミングについて説明するためのタイミングチャート。
【図５３】実施形態３の変形例１による不揮発性半導体記憶装置の構成例を示す図。
【図５４】図５３に示した不揮発性半導体記憶装置において動作対象となるメモリユニットに対応するロウ制御線およびコラム制御線に対する制御電圧の印加条件について説明するための図。
【図５５】図５３に示した不揮発性半導体記憶装置において動作対象ではないメモリユニットに対応するロウ制御線およびコラム制御線に対する制御電圧の印加条件について説明するための図。
【図５６】図５３に示した書き換え判定回路の構成例を示す図。
【図５７】図５３に示したコラム制御回路に含まれる第１のコラム制御信号発生器の構成例を示す図。
【図５８】実施形態３の変形例２による不揮発性半導体記憶装置の構成例を示す図。
【図５９】実施形態４による不揮発性半導体記憶装置の構成例を示す図。
【図６０】図５９に示した不揮発性半導体記憶装置の構成例について詳細に説明するための図。
【図６１】図６０に示したメモリユニットの構成例を示す図。
【図６２】図６０に示したコラム制御回路に含まれるコラム制御部の構成例を示す図。
【図６３】図６２に示した第１のコラム制御信号発生器の構成例を示す図。
【図６４】図６２に示した第２のコラム制御信号発生器の構成例を示す図。
【図６５】図６０に示した読み出し回路に含まれる読み出し部の構成例を示す図。
【図６６】実施形態４の変形例１による不揮発性半導体記憶装置の構成例を示す図。
【図６７】図６６に示した検知回路に含まれる検知器の構成例を示す図。
【図６８】実施形態４の変形例２による不揮発性半導体記憶装置の構成例を示す図。
【図６９】図６８に示したコラム制御回路に含まれる第１のコラム制御信号発生器の構成例を示す図。
【図７０】コントロールキャパシタ，イレースキャパシタ，およびリードトランジスタの構成例について説明するための断面図。
【発明を実施するための形態】
【００４０】
以下、実施の形態を図面を参照して詳しく説明する。なお、図中同一または相当部分には同一の符号を付しその説明は繰り返さない。また、複数の同一または相当部分の１つを示すために、複数の同一または相当部分に付された符号の末尾を省略する場合もある。
【００４１】
（実施形態１）
図１は、実施形態１による不揮発性半導体記憶装置１の構成例を示す。不揮発性半導体記憶装置１は、メモリアレイ１００と、メモリ制御回路１０とを備える。メモリ制御回路１０は、全体制御回路１１と、ロウ制御回路１２と、コラム制御回路１３と、読み出し回路１４とを含む。次に、図２を参照して、不揮発性半導体記憶装置１の構成例について詳しく説明する。なお、図２では、全体制御回路１１の図示を省略している。
【００４２】
〔メモリアレイ〕
メモリアレイ１００は、ｍ×ｎ個（ｍ，ｎは、２以上の整数）のメモリユニット（差動型メモリユニット）ＭＵ１１〜ＭＵｍｎと、ｎ本のビット線ＢＬ１〜ＢＬｎと、ｎ本のビット線ＢＬＸ１〜ＢＬＸｎと、ｍ組のロウ制御線群（ＣＧＷＬＰＡ，ＣＧＷＬＰＢ，ＣＧＷＬ，ＲＧＷＬ，ＥＧＷＬ）と、ｎ組のコラム制御線群（ＣＧＤＴ，ＣＧＤＴＰ，ＣＧＤＢＰ，ＣＧＤＢ）とを備える。ｍ組のロウ制御線群（ＣＧＷＬＰＡ，ＣＧＷＬＰＢ，ＣＧＷＬ，ＲＧＷＬ，ＥＧＷＬ）の各々は、５本のロウ制御線ＣＧＷＬＰＡ，ＣＧＷＬＰＢ，ＣＧＷＬ，ＲＧＷＬ，ＥＧＷＬを含む。ｎ組のコラム制御線群（ＣＧＤＴ，ＣＧＤＴＰ，ＣＧＤＢＰ，ＣＧＤＢ）の各々は、４本のコラム制御線ＣＧＤＴ，ＣＧＤＴＰ，ＣＧＤＢＰ，ＣＧＤＢを含む。
【００４３】
ｍ×ｎ個のメモリユニットＭＵ１１〜ＭＵｍｎは、ｍ行ｎ列の行列状に配列されている。ｎ本のビット線ＢＬ１〜ＢＬｎ，ｎ本のビット線ＢＬＸ１〜ＢＬＸｎ，およびｎ組のコラム制御線群（ＣＧＤＴ，ＣＧＤＴＰ，ＣＧＤＢＰ，ＣＧＤＢ）は、それぞれ、メモリユニットＭＵ１１〜ＭＵｍｎのｎ個のメモリユニット列に対応する。例えば、第１列目のビット線ＢＬ１，ＢＬＸ１および第１組目のコラム制御線群（ＣＧＤＴ１，ＣＧＤＴＰ１，ＣＧＤＢＰ１，ＣＧＤＢ１）は、第１列目のメモリユニット列に属するｍ個のメモリユニットＭＵ１１〜ＭＵ１ｍに共通に接続される。ｍ組のロウ制御線群（ＣＧＷＬＰＡ，ＣＧＷＬＰＢ，ＣＧＷＬ，ＲＧＷＬ，ＥＧＷＬ）は、それぞれ、メモリユニットＭＵ１１〜ＭＵｍｎのｍ個のメモリユニット行に対応する。例えば、第１組目のロウ制御線群（ＣＧＷＬＰＡ１，ＣＧＷＬＰＢ１，ＣＧＷＬ１，ＲＧＷＬ１，ＥＧＷＬ１）は、第１行目のメモリユニット行に属するｎ個のメモリユニットＭＵ１１〜ＭＵ１ｎに共通に接続される。なお、以下の説明では、ｍ×ｎ個のメモリユニットＭＵ１１〜ＭＵｍｎの１つを示すために、メモリユニットの符号の末尾（１１〜ｍｎ）を省略する場合もある。
【００４４】
〔全体制御回路〕
全体制御回路１１は、ロウ制御回路１２，コラム制御回路１３，および読み出し回路１４を制御する。例えば、全体制御回路１１は、スタンバイ制御信号ＳＴＢ，リード制御信号ＲＥＡＤ，反転リード制御信号／ＲＥＡＤ，反転書込制御信号ＳＷＴ１，通常書込制御信号ＳＷＴ２，およびラッチタイミング信号ＳＬＴ２をコラム制御回路１３に供給しても良い。また、全体制御回路１１は、ｎ個の書き込みデータ値ＷＤ１〜ＷＤｎ，ｎ個の書き込み反転データ値ＸＷＤ１〜ＸＷＤｎ，ｎ個の読み出しデータ値ＲＤ１〜ＲＤｎ，および，ｎ個の読み出し反転データ値ＸＲＤ１〜ＸＲＤｎをコラム制御回路１３に供給しても良い。ｎ個の読み出しデータ値ＲＤおよびｎ個の書き込みデータ値ＷＤ１〜ＷＤｎは、それぞれ、ｎ個のメモリユニット列に対応する。読み出し反転データ値ＸＲＤ１〜ＸＲＤｎは、それぞれ、読み出しデータ値ＲＤ１〜ＲＤｎの反転値に相当する。書き込み反転データ値ＸＷＤ１〜ＸＷＤｎは、それぞれ、書き込みデータ値ＷＤ１〜ＷＤｎの反転値に相当する。また、全体制御回路１１は、ラッチタイミング信号ＳＬＴ１を読み出し回路１４に供給しても良い。
【００４５】
〔ロウ制御回路〕
ロウ制御回路１２は、全体制御回路１１による制御に応答して、ｍ組のロウ制御線群（ＣＧＷＬＰＡ，ＣＧＷＬＰＢ，ＣＧＷＬ，ＲＧＷＬ，ＥＧＷＬ）に制御電圧を印加する。ここでは、ロウ制御回路１２は、全体制御回路１１による制御に応答して、書込動作の対象となるメモリユニットＭＵにスタンバイ動作，リード動作，反転書込動作，および通常書込動作を実行する。
【００４６】
〔コラム制御回路〕
コラム制御回路１３は、全体制御回路１１による制御に応答して、ｎ組のコラム制御線群（ＣＧＤＴ，ＣＧＤＴＰ，ＣＧＤＢＰ，ＣＧＤＢ）に制御電圧を印加する。ここでは、コラム制御回路１３は、スタンバイ制御信号ＳＴＢ，リード制御信号ＲＥＡＤ，反転書込制御信号ＳＷＴ１，および通常書込制御信号ＳＷＴ２に応答して、書込動作の対象となるメモリユニットＭＵにスタンバイ動作，リード動作，反転書込動作，および通常書込動作を実行する。コラム制御回路１３は、ｎ組のコラム制御線群（ＣＧＤＴ，ＣＧＤＴＰ，ＣＧＤＢＰ，ＣＧＤＢ）にそれぞれ対応するｎ個のコラム制御部を含んでいても良い。
【００４７】
〔読み出し回路〕
読み出し回路１４は、全体制御回路１１による制御に応答して、ｎ個のビット線電圧ＶＢＬ１〜ＶＢＬｎ（ビット線ＢＬ１〜ＢＬｎに発生する電圧）とｎ個のビット線電圧ＶＢＬＸ１〜ＶＢＬＸｎ（ビット線ＢＬＸ１〜ＢＬＸｎに発生する電圧）との電圧差に基づいてｎ個の読み出しデータ値ＲＤ１〜ＲＤｎをそれぞれ読み出す。例えば、読み出し回路１４は、第１列目のビット線ＢＬ１，ＢＬＸ１に発生するビット線電圧ＶＢＬ１，ＶＢＬＸ１の電圧差に基づいて第１列目の読み出しデータ値ＲＤ１を読み出す。また、読み出し回路１４は、ｎ個の読み出しデータ値ＲＤ１〜ＲＤｎとともにｎ個の読み出し反転データ値ＸＲＤ１〜ＸＲＤｎを出力する。読み出し回路１４は、ｎ個のメモリユニット列（ｎ個のビット線ＢＬ，ＢＬＸの組合せ）にそれぞれ対応するｎ個の読み出し部１０４１〜１０４ｎを含んでいても良い。
【００４８】
なお、反転書込動作とは、書込動作の対象となるメモリユニットＭＵから読み出された読み出しデータ値ＲＤの反転値が書込動作の対象となるメモリユニットＭＵに書き込まれるように、書込動作の対象となるメモリユニットＭＵのフローティングゲートＦＧＴ，ＦＧＢ（図３参照）の電荷量（電子量）を制御する動作のことである。また、通常書込動作とは、書き込みデータ値ＷＤが書込動作の対象となるメモリユニットＭＵに書き込まれるように、書込動作の対象となるメモリユニットＭＵのフローティングゲートＦＧＴ，ＦＧＢ（図３参照）の電荷量を制御する動作のことである。
【００４９】
〔メモリユニットの構成例〕
図３は、メモリユニットＭＵの構成例を示す。メモリユニットＭＵは、Ｔビットセル（True Bit Cell）ＴＢＣと、Ｂビットセル（Bar Bit Cell）ＢＢＣと、デコードデバイスＤＤとを含む。
【００５０】
《Ｔビットセル》
ＴビットセルＴＢＣは、フローティングゲートＦＧＴと、コントロールキャパシタＣＧと、イレースキャパシタＥＧと、リードトランジスタＲＧと、選択トランジスタＭＳとを含む。コントロールキャパシタＣＧは、フローティングゲートＦＧＴに電荷（電子）を注入するためのコントロールゲートとして機能する。ここでは、コントロールキャパシタＣＧは、ＰＭＯＳトランジスタを用いたＰＭＯＳキャパシタによって構成される。コントロールキャパシタＣＧの一端（すなわち、ＰＭＯＳトランジスタのゲート）は、フローティングゲートＦＧＴに接続され、コントロールキャパシタＣＧの他端（すなわち、ＰＭＯＳトランジスタのソース，ドレイン，およびバックゲート）は、デコードデバイスＤＤに接続される。イレースキャパシタＥＧは、フローティングゲートＦＧＴから電荷を放出させるイレースゲートとして機能する。ここでは、イレースキャパシタＥＧは、Ｎ型のデプレッションＭＯＳトランジスタ（以下、ＤＭＯＳトランジスタと表記）を用いたＮＭＯＳキャパシタによって構成される。イレースキャパシタＥＧの一端（すなわち、ＤＭＯＳトランジスタのゲート）は、フローティングゲートＦＧＴに接続され、イレースキャパシタＥＧの他端（すなわち、ＤＭＯＳトランジスタのソース，ドレイン，バックゲート）は、ロウ制御線ＥＧＷＬに接続される。リードトランジスタＲＧは、選択トランジスタＭＳとソース線ＳＬとの間に接続され、リードトランジスタＲＧのゲートは、フローティングゲートＦＧＴに接続される。すなわち、フローティングゲートＦＧＴは、コントロールキャパシタＣＧの一端，イレースキャパシタＥＧの一端，およびリードトランジスタＲＧのゲートによって形成されている。選択トランジスタＭＳは、リードトランジスタＲＧとビット線ＢＬとの間に接続され、リードトランジスタＭＳのゲートは、ロウ制御線ＲＧＷＬに接続される。なお、ソース線ＳＬには、制御電圧ＶＳＳ（例えば、接地電圧）が印加されている。
【００５１】
《Ｂビットセル》
ＢビットセルＢＢＣは、フローティングゲートＦＧＢと、コントロールキャパシタＣＧと、イレースキャパシタＥＧと、リードトランジスタＲＧと、選択トランジスタＭＳとを含む。コントロールキャパシタＣＧは、フローティングゲートＦＧＢに電荷を注入するためのコントロールゲートとして機能する。ここでは、コントロールキャパシタＣＧは、ＰＭＯＳキャパシタによって構成される。コントロールキャパシタＣＧの一端は、フローティングゲートＦＧＢに接続され、コントロールキャパシタＣＧの他端は、デコードデバイスＤＤに接続される。イレースキャパシタＥＧは、フローティングゲートＦＧＢから電荷を放出させるイレースゲートとして機能する。ここでは、イレースキャパシタＥＧは、ＤＭＯＳトランジスタを用いたＮＭＯＳキャパシタによって構成される。イレースキャパシタＥＧの一端は、フローティングゲートＦＧＢに接続され、イレースキャパシタＥＧの他端は、ロウ制御線ＥＧＷＬに接続される。リードトランジスタＲＧは、選択トランジスタＭＳとソース線ＳＬとの間に接続され、リードトランジスタＲＧのゲートは、フローティングゲートＦＧＢに接続される。すなわち、フローティングゲートＦＧＢは、コントロールキャパシタＣＧの一端，イレーストランジスタＥＧの一端，およびリードトランジスタＲＧのゲートによって形成されている。選択トランジスタＭＳは、リードトランジスタＲＧとビット線ＢＬＸとの間に接続され、リードトランジスタＭＳのゲートは、ロウ制御線ＲＧＷＬに接続される。
【００５２】
《デコードデバイス》
デコードデバイスＤＤは、ＰＭＯＳトランジスタＭＴ１，ＭＴ２，ＭＢ１，ＭＢ２と、ＮＭＯＳトランジスタＭＴ３，ＭＴ４，ＭＢ３，ＭＢ４と、ＮＡＮＤ回路ＮＡＴ，ＮＡＢとを含む。
【００５３】
ＰＭＯＳトランジスタＭＴ１（スイッチング・トランジスタ）は、ロウ制御線ＣＧＷＬＰＡに印加された制御電圧に応じて、コラム制御線ＣＧＤＴＰに印加された制御電圧をＴビットセルＴＢＣのコントロールゲート（すなわち、コントロールキャパシタＣＧの他端）に伝達する。ＰＭＯＳトランジスタＭＴ１は、コラム制御線ＣＧＤＴＰとＰＭＯＳトランジスタＭＴ２との間に接続され、ＰＭＯＳトランジスタＭＴ１のゲートは、ロウ制御線ＣＧＷＬＰＡに接続される。ＰＭＯＳトランジスタＭＴ１のバックゲートには、制御電圧ＶＰＰが印加される。ＰＭＯＳトランジスタＭＴ２（電圧緩和トランジスタ）は、ＰＭＯＳトランジスタＭＴ１のゲート・ドレイン間電圧を緩和する。ＰＭＯＳトランジスタＭＴ２は、ＰＭＯＳトランジスタＭＴ１とＴビットセルＴＢＣのコントロールゲートとの間に接続され、ＰＭＯＳトランジスタＭＴ２のゲートは、ロウ制御線ＣＧＷＬＰＢに接続される。ＰＭＯＳトランジスタＭＴ２のバックゲートには、制御電圧ＶＰＰが印加される。ＮＭＯＳトランジスタＭＴ３（電圧緩和トランジスタ）は、ＮＭＯＳトランジスタＭＴ４のゲート・ドレイン間電圧を緩和する。ＮＭＯＳトランジスタＭＴ３は、ＮＭＯＳトランジスタＭＴ４とＴビットセルＴＢＣのコントロールゲートとの間に接続され、ＮＭＯＳトランジスタＭＴ３のゲートは、ロウ制御線ＣＧＷＬＰＢに接続される。ＮＭＯＳトランジスタＭＴ４（スイッチング・トランジスタ）は、ロウ制御線ＣＧＷＬおよびコラム制御線ＣＧＤＴのそれぞれに印加された制御電圧に応じて、制御電圧ＶＳＳ（ここでは、接地電圧）をＴビットセルＴＢＣのコントロールゲートに伝達する（すなわち、ＴビットセルＴＢＣのコントロールゲートを放電する）。ＮＭＯＳトランジスタＭＴ４は、制御電圧ＶＳＳが印加されるノード（ここでは、接地ノード）とＴビットセルのコントロールゲートとの間に接続され、ＮＭＯＳトランジスタＭＴ４のゲートには、ＮＡＮＤ回路ＮＡＴの出力信号が印加される。ＮＡＮＤ回路ＮＡＴは、ロウ制御線ＣＧＷＬおよびコラム制御線ＣＧＤＴのそれぞれに印加された制御電圧の否論理積を出力する。
【００５４】
ＰＭＯＳトランジスタＭＢ１（スイッチング・トランジスタ）は、ロウ制御線ＣＧＷＬＰＡに印加された制御電圧に応じて、コラム制御線ＣＧＤＢＰに印加された制御電圧をＢビットセルＢＢＣのコントロールゲート（すなわち、コントロールキャパシタＣＧの他端）に伝達する。ＰＭＯＳトランジスタＭＢ１は、コラム制御線ＣＧＤＢＰとＰＭＯＳトランジスタＭＢ２との間に接続され、ＰＭＯＳトランジスタＭＢ１のゲートは、ロウ制御線ＣＧＷＬＰＡに接続される。ＰＭＯＳトランジスタＭＢ１のバックゲートには、制御電圧ＶＰＰが印加される。ＰＭＯＳトランジスタＭＢ２（電圧緩和トランジスタ）は、ＰＭＯＳトランジスタＭＢ１のゲート・ドレイン間電圧を緩和する。ＰＭＯＳトランジスタＭＢ２は、ＰＭＯＳトランジスタＭＢ１とＢビットセルＢＢＣのコントロールゲートとの間に接続され、ＰＭＯＳトランジスタＭＢ２のゲートは、ロウ制御線ＣＧＷＬＰＢに接続される。ＰＭＯＳトランジスタＭＢ２のバックゲートには、制御電圧ＶＰＰが印加される。ＮＭＯＳトランジスタＭＢ３（電圧緩和トランジスタ）は、ＮＭＯＳトランジスタＭＢ４のゲート・ドレイン間電圧を緩和する。ＮＭＯＳトランジスタＭＢ３は、ＮＭＯＳトランジスタＭＢ４とＢビットセルＢＢＣのコントロールゲートとの間に接続され、ＮＭＯＳトランジスタＭＢ３のゲートは、ロウ制御線ＣＧＷＬＰＢに接続される。ＮＭＯＳトランジスタＭＢ４（スイッチング・トランジスタ）は、ロウ制御線ＣＧＷＬおよびコラム制御線ＣＧＤＢのそれぞれに印加された制御電圧に応じて、制御電圧ＶＳＳ（ここでは、接地電圧）をＢビットセルＢＢＣのコントロールゲートに伝達する（すなわち、ＢビットセルＢＢＣのコントロールゲートを放電する）。ＮＭＯＳトランジスタＭＢ４は、制御電圧ＶＳＳが印加されるノード（ここでは、接地ノード）とＢビットセルのコントロールゲートとの間に接続され、ＮＭＯＳトランジスタＭＢ４のゲートには、ＮＡＮＤ回路ＮＡＢの出力信号が印加される。ＮＡＮＤ回路ＮＡＢは、ロウ制御線ＣＧＷＬおよびコラム制御線ＣＧＤＢのそれぞれに印加された制御電圧の否論理積を出力する。
【００５５】
なお、ここでは、フローティングゲートＦＧＴがプログラム状態（“１”を示したデータ値に対応する電荷量を蓄積している状態）であり、フローティングゲートＦＧＢがイレース状態（“０”を示したデータ値に対応する電荷量を蓄積している状態）である場合、メモリユニットＭＵが“１”を示したデータ値を格納しているものとする。また、フローティングゲートＦＧＴがイレース状態であり、フローティングゲートＦＧＢがプログラム状態である場合、メモリユニットＭＵが“０”を示したデータ値を格納しているものとする。このように、メモリユニットＭＵは、フローティングゲートＦＧＴ，ＦＧＢも電荷量が互いに異なるようにフローティングゲートＦＧＴ，ＦＧＢに電荷を蓄積することによってデータ値を格納する。
【００５６】
〔コラム制御回路の構成例〕
図４は、図２に示したコラム制御回路に含まれるコラム制御部の構成例を示す。コラム制御部１０３は、第１のコラム制御信号発生器１０３Ａと、第２のコラム制御信号発生器１０３Ｂと、負荷トランジスタＭＢＬ，ＭＢＬＸとを含む。第１のコラム制御信号発生器１０３Ａは、全体制御回路１１からの制御信号（スタンバイ制御信号ＳＴＢ，リード制御信号ＲＥＡＤ，反転書込制御信号ＳＷＴ１，通常書込制御信号ＳＷＴ２，ラッチタイミング信号ＳＬＴ２），読み出しデータ値ＲＤ，読み出し反転データ値ＸＲＤ，書き込みデータ値ＷＤ，および書き込み反転データ値ＸＷＤに応じて、コラム制御信号Ｓ１〜Ｓ５を出力する。第２のコラム制御信号発生器１０３Ｂは、コラム制御信号Ｓ１〜Ｓ５に応じて、コラム制御線ＣＧＤＴ，ＣＧＤＴＰ，ＣＧＤＢＰ，ＣＧＤＢに制御電圧を印加する。負荷トランジスタＭＢＬは、制御電圧ＶＤＤＨが印加されるノードとビット線ＢＬとの間に接続され、負荷トランジスタＭＢＬのゲートには、全体制御回路１１からの反転リード制御信号／ＲＥＡＤが印加される。負荷トランジスタＭＢＬＸは、制御電圧ＶＤＤＨが印加されるノードとビット線ＢＬＸとの間に接続され、負荷トランジスタＭＢＬＸのゲートには、全体制御回路１１からの反転リード制御信号／ＲＥＡＤが印加される。
【００５７】
〔読み出し回路の構成例〕
図５は、図１に示した読み出し回路１４に含まれる読み出し部１０４の構成例を示す。読み出し部１０４は、センスアンプＳＡと、ラッチＬＴ１とを含む。センスアンプＳＡは、ビット線電圧ＶＢＬ，ＶＢＬＸの電圧差を増幅させることによってビット線電圧ＶＢＬ，ＶＢＬＸの電圧差に対応する出力信号を出力する。例えば、センスアンプＳＡは、ビット線電圧ＶＢＬがビット線電圧ＶＢＬＸよりも高い場合には、出力信号をハイレベルにし、ビット線電圧ＶＢＬがビット線電圧ＶＢＬＸよりも低い場合には、出力信号をローレベルにする。ラッチＬＴ１は、全体制御回路１１からのラッチタイミング信号ＳＬＴ１に同期して、センスアンプＳＡの出力信号を取り込んで保持することによって読み出しデータ値ＲＤおよび読み出し反転データ値ＸＲＤを出力する。例えば、ラッチＬＴ１は、センスアンプＳＡの出力信号がハイレベルである場合には、“１”（ハイレベル）を示した読み出しデータ値ＲＤを出力するとともに“０”（ローレベル）を示した読み出し反転データ値ＸＲＤを出力し、センスアンプＳＡの出力信号がローレベルである場合には、“０”を示した読み出しデータ値ＲＤを出力するとともに“１”を示した読み出し反転データ値ＸＲＤを出力する。
【００５８】
〔制御電圧の印加条件〕
図６は、動作対象となるメモリユニットＭＵに対応するロウ制御線ＣＧＷＬＰＡ，ＣＧＷＬＰＢ，ＣＧＷＬ，ＲＧＷＬ，ＥＧＷＬおよびコラム制御線ＣＧＤＴ，ＣＧＤＴＰ，ＣＧＤＢＰ，ＣＧＤＢに対する制御電圧の印加条件を示し、図７は、動作対象ではないメモリユニットＭＵに対応するロウ制御線ＣＧＷＬＰＡ，ＣＧＷＬＰＢ，ＣＧＷＬ，ＲＧＷＬ，ＥＧＷＬおよびコラム制御線ＣＧＤＴ，ＣＧＤＴＰ，ＣＧＤＢＰ，ＣＧＤＢに対する制御電圧の印加条件を示す。なお、制御電圧ＶＰＰ，ＶＭ，ＶＤＤＨ，ＶＤＤ，ＶＳＳの電圧値は、ＶＰＰ＞ＶＭ＞ＶＤＤＨ＞ＶＤＤ＞ＶＳＳ となるように設定されている。例えば、制御電圧ＶＰＰは、昇圧電圧（７〜１０Ｖ）であり、制御電圧ＶＭは、中間電圧（３．３Ｖ〜５Ｖ）であり、制御電圧ＶＳＳは、接地電圧（０Ｖ）である。
【００５９】
また、図１に示した不揮発性半導体記憶装置１では、ロウ制御回路１２およびコラム制御回路１３は、全体制御回路１１による制御に応答して、ｍ個のメモリユニット行のうちいずれか１個のメモリユニット行に属するｎ個のメモリユニットＭＵ〜ＭＵを書込動作の対象として同時に選択する。すなわち、ロウ制御回路１２は、図６に示した印加条件に基づいて、書込動作の対象となるｎ個のメモリユニットＭＵ〜ＭＵに共通に接続された１組のロウ制御線群（ＣＧＷＬＰＡ，ＣＧＷＬＰＢ，ＣＧＷＬ，ＲＧＷＬ，ＥＧＷＬ）に制御電圧を印加するとともに、図７に示した印加条件に基づいて、他のｍ−１組のロウ制御線群（ＣＧＷＬＰＡ，ＣＧＷＬＰＢ，ＣＧＷＬ，ＲＧＷＬ，ＥＧＷＬ）に制御電圧を印加する。また、コラム制御回路１３は、図６に示した印加条件に基づいて、書込動作の対象となるｎ個のメモリユニットＭＵ〜ＭＵにそれぞれ接続されたｎ組のコラム制御線群（ＣＧＤＴ，ＣＧＤＴＰ，ＣＧＤＢＰ，ＣＧＤＢ）に制御電圧を印加する。
【００６０】
例えば、図８に示した２行２列のメモリユニットＭＵ１１〜ＭＵ２２（すなわち、ｍ＝２，ｎ＝２の場合）において、メモリユニットＭＵ１１をイレース動作の対象とし、メモリユニットＭＵ１２をプログラム動作の対象とし、メモリユニットＭＵ２１，ＭＵ２２を書込動作の対象としない場合、ロウ制御回路１２は、書込動作の対象となるメモリユニットＭＵ１１，ＭＵ１２に共通に接続されたロウ制御線ＣＧＷＬＰＡ１，ＣＧＷＬＰＢ１，ＣＧＷＬ１，ＲＧＷＬ１，ＥＧＷＬ１に制御電圧ＶＭ，ＶＤＤＨ，ＶＤＤＨ，ＶＳＳ，ＶＰＰをそれぞれ印加する。また、ロウ制御回路１２は、書込動作の対象ではないメモリユニットＭＵ２１，ＭＵ２２に共通に接続されたロウ制御線ＣＧＷＬＰＡ２，ＣＧＷＬＰＢ２，ＣＧＷＬ２，ＲＧＷＬ２，ＥＧＷＬ２に制御電圧ＶＰＰ，ＶＤＤＨ，ＶＳＳ，ＶＳＳ，ＶＳＳをそれぞれ印加する。コラム制御回路１３は、イレース動作の対象となるメモリユニットＭＵ１１に接続されたコラム制御線ＣＧＤＴ１，ＣＧＤＴＰ１，ＣＧＤＢＰ１，ＣＧＤＢ１に制御電圧ＶＳＳ，ＶＳＳ，ＶＰＰ，ＶＤＤＨをそれぞれ印加する。また、コラム制御回路１３は、プログラム動作の対象となるメモリユニットＭＵ１２に接続されたコラム制御線ＣＧＤＴ２，ＣＧＤＴＰ２，ＣＧＤＢＰ２，ＣＧＤＢ２に制御電圧ＶＤＤＨ，ＶＰＰ，ＶＳＳ，ＶＳＳをそれぞれ印加する。
【００６１】
〔メモリユニットに対する動作〕
次に、メモリユニットＭＵに対する動作（スタンバイ動作，リード動作，プログラム動作，イレース動作）について説明する。ここで、プログラム動作とは、フローティングゲートＦＧＴに電荷を注入することによってフローティングゲートＦＧＴをイレース状態からプログラム状態へ変化させるとともに、フローティングゲートＦＧＢから電荷を放出することによってフローティングゲートＦＧＢをプログラム状態からイレース状態に変化させる動作のことである。イレース動作とは、フローティングゲートＦＧＴから電荷を放出することによってフローティングゲートＦＧＴをプログラム状態からイレース状態へ変化させるとともに、フローティングゲートＦＧＢに電荷を注入することによってフローティングゲートＦＧＢをプログラム状態からイレース状態へ変化させる動作のことである。
【００６２】
《スタンバイ動作》
図９のように、スタンバイ動作の対象となるメモリユニットＭＵでは、ロウ制御線ＣＧＷＬＰＡ，ＣＧＷＬＰＢ，ＣＧＷＬ，ＲＧＷＬ，ＥＧＷＬには、それぞれ、制御電圧ＶＳＳ，ＶＤＤＨ，ＶＳＳ，ＶＳＳ，ＶＳＳが印加される。コラム制御線ＣＧＤＴ，ＣＧＤＴＰ，ＣＧＤＢＰ，ＣＧＤＢには、それぞれ、制御電圧ＶＳＳ，ＶＳＳ，ＶＳＳ，ＶＳＳが印加される。これにより、ＰＭＯＳトランジスタＭＴ１，ＭＢ１がオフ状態になるとともにＮＭＯＳトランジスタＭＴ４，ＭＢ４がオン状態になるので、ＴビットセルＴＢＣおよびＢビットセルＢＢＣでは、コントロールキャパシタＣＧの他端に制御電圧ＶＳＳが印加され、イレースキャパシタＥＧの他端に制御電圧ＶＳＳが印加される。したがって、フローティングゲートＦＧＴ，ＦＧＢの電荷量は変化しない。
【００６３】
《リード動作》
図１０のように、リード動作の対象となるメモリユニットＭＵでは、ロウ制御線ＣＧＷＬＰＡ，ＣＧＷＬＰＢ，ＣＧＷＬ，ＲＧＷＬ，ＥＧＷＬには、それぞれ、制御電圧ＶＳＳ，ＶＳＳ，ＶＤＤＨ，ＶＤＤ，ＶＳＳが印加される。コラム制御線ＣＧＤＴ，ＣＧＤＴＰ，ＣＧＤＢＰ，ＣＧＤＢには、それぞれ、制御電圧ＶＤＤＨ，ＶＤＤ，ＶＤＤ，ＶＤＤＨが印加される。これにより、ＰＭＯＳトランジスタＭＴ１，ＭＢ１がオン状態になるとともにＮＭＯＳトランジスタＭＴ４，ＭＢ４がオフ状態になるので、ＴビットセルＴＢＣおよびＢビットセルＢＢＣでは、コントロールキャパシタＣＧの他端に制御電圧ＶＤＤが印加され、イレースキャパシタＥＧの他端に制御電圧ＶＳＳが印加される。また、反転リード制御信号／ＲＥＡＤがローレベル（ＶＳＳ）になるので、負荷トランジスタＭＢＬ，ＭＢＬＸがオン状態になる。さらに、ＴビットセルＴＢＣおよびＢビットセルＢＢＣでは、選択トランジスタＭＳがオン状態になるので、ビット線ＢＬ，ＢＬＸは、それぞれ、ＴビットセルＴＢＣおよびＢビットセルＢＢＣのリードトランジスタＲＧに接続される。したがって、ビット線ＢＬ，ＢＬＸに発生するビット線電圧ＶＢＬ，ＶＢＬＸは、それぞれ、フローティングゲートＦＧＴ，ＦＧＢの電荷量に応じて変動する。このビット線電圧ＶＢＬ，ＶＢＬＸの電圧差に基づいて、メモリユニットＭＵに格納されたデータ値を読み出すことができる。
【００６４】
一方、リード動作の対象ではないメモリユニットのうちリード動作の対象となるメモリユニットＭＵが属するメモリユニット行とは異なるメモリユニット行に属するメモリユニットＭＵでは、ロウ制御線ＣＧＷＬＰＡ，ＣＧＷＬＰＢ，ＣＧＷＬ，ＲＧＷＬ，ＥＧＷＬには、それぞれ、制御電圧ＶＳＳ，ＶＤＤＨ，ＶＳＳ，ＶＳＳ，ＶＳＳが印加される。これにより、ＴビットセルＴＢＣおよびＢビットセルＢＢＣでは、選択トランジスタＭＳがオフ状態になるので、ビット線ＢＬ，ＢＬＸは、それぞれ、ＴビットセルＴＢＣおよびＢビットセルＢＢＣのリードトランジスタＲＧから切り離される。したがって、リード動作の対象ではないメモリユニットＭＵ（リード動作の対象となるメモリユニットＭＵが属するメモリユニット行とは異なるメモリユニット行に属するメモリユニットＭＵ）は、ビット線電圧ＶＢＬ，ＶＢＬＸの変動に影響を与えない。
【００６５】
また、リード動作の対象ではないメモリユニットのうちリード動作の対象となるメモリユニットＭＵが属するメモリユニット行と同一のメモリユニット行に属するメモリユニットＭＵでは、コラム制御線ＣＧＤＴ，ＣＧＤＴＰ，ＣＧＤＢＰ，ＣＧＤＢには、それぞれ、制御電圧ＶＳＳ，ＶＳＳ，ＶＳＳ，ＶＳＳが印加される。これにより、ＴビットセルＴＢＣおよびＢビットセルＢＢＣでは、コントロールキャパシタＣＧの他端に制御電圧ＶＳＳが印加される。したがって、リード動作の対象ではないメモリユニット（リード動作の対象となるメモリユニットＭＵが属するメモリユニット行と同一のメモリユニット行に属するメモリユニットＭＵ）は、ビット線電圧ＶＢＬ，ＶＢＬＸの変動に影響を与えない。
【００６６】
《プログラム動作》
図１１のように、プログラム動作の対象となるメモリユニットＭＵでは、ロウ制御線ＣＧＷＬＰＡ，ＣＧＷＬＰＢ，ＣＧＷＬ，ＲＧＷＬ，ＥＧＷＬには、それぞれ、制御電圧ＶＭ，ＶＤＤＨ，ＶＤＤＨ，ＶＳＳ，ＶＰＰが印加される。コラム制御線ＣＧＤＴ，ＣＧＤＴＰ，ＣＧＤＢＰ，ＣＧＤＢには、それぞれ、制御電圧ＶＤＤＨ，ＶＰＰ，ＶＳＳ，ＶＳＳが印加される。これにより、ＴビットセルＴＢＣでは、コントロールキャパシタＣＧの他端に制御電圧ＶＰＰが印加され、イレースキャパシタＥＧの他端に制御電圧ＶＰＰが印加されるので、ＦＮトンネリングによりフローティングゲートＦＧＴに電荷が注入される。一方、ＢビットセルＢＢＣでは、コントロールキャパシタＣＧの他端に制御電圧ＶＳＳが印加され、イレースキャパシタＥＧの他端に制御電圧ＶＰＰが印加されるので、ＦＮトンネリングによりフローティングゲートＦＧＢから電荷が放出される。
【００６７】
一方、図１２のように、プログラム動作の対象ではないメモリユニットＭＵ（ここでは、プログラム動作の対象となるメモリユニットＭＵが属するメモリユニット行とは異なるメモリユニット行に属するメモリユニットＭＵ）では、ロウ制御線ＣＧＷＬＰＡ，ＣＧＷＬＰＢ，ＣＧＷＬ，ＲＧＷＬ，ＥＧＷＬには、それぞれ、制御電圧ＶＰＰ，ＶＤＤＨ，ＶＳＳ，ＶＳＳ，ＶＳＳが印加される。これにより、ＴビットセルＴＢＣおよびＢビットセルＢＢＣでは、ＰＭＯＳトランジスタＭＴ１，ＭＢ１がオフ状態となるとともにＮＭＯＳトランジスタＭＴ４，ＭＢ４がオン状態になるので、コントロールキャパシタＣＧの他端に制御電圧ＶＳＳが印加され、イレースキャパシタＥＧの他端に制御電圧ＶＳＳが印加される。したがって、フローティングゲートＦＧＴ，ＦＧＢの電荷量は変化しない。
【００６８】
《イレース動作》
図１３のように、イレース動作の対象となるメモリユニットＭＵでは、ロウ制御線ＣＧＷＬＰＡ，ＣＧＷＬＰＢ，ＣＧＷＬ，ＲＧＷＬ，ＥＧＷＬには、それぞれ、制御電圧ＶＭ，ＶＤＤＨ，ＶＤＤＨ，ＶＳＳ，ＶＰＰが印加される。コラム制御線ＣＧＤＴ，ＣＧＤＴＰ，ＣＧＤＢＰ，ＣＧＤＢには、それぞれ、制御電圧ＶＳＳ，ＶＳＳ，ＶＰＰ，ＶＤＤＨが印加される。これにより、ＴビットセルＴＢＣでは、コントロールキャパシタＣＧの他端に制御電圧ＶＳＳが印加され、イレースキャパシタＥＧの他端に制御電圧ＶＰＰが印加されるので、ＦＮトンネリングによりフローティングゲートＦＧＢから電荷が放出される。一方、ＢビットセルＢＢＣでは、コントロールキャパシタＣＧの他端に制御電圧ＶＰＰが印加され、イレースキャパシタＥＧの他端に制御電圧ＶＰＰが印加されるので、ＦＮトンネリングによりフローティングゲートＦＧＢに電荷が注入される。
【００６９】
一方、図１４のように、イレース動作の対象ではないメモリユニット（ここでは、イレース動作の対象となるメモリユニットＭＵが属するメモリユニット行とは異なるメモリユニット行に属するメモリユニットＭＵ）では、ロウ制御線ＣＧＷＬＰＡ，ＣＧＷＬＰＢ，ＣＧＷＬ，ＲＧＷＬ，ＥＧＷＬには、それぞれ、制御電圧ＶＰＰ，ＶＤＤＨ，ＶＳＳ，ＶＳＳ，ＶＳＳが印加される。これにより、ＴビットセルＴＢＣおよびＢビットセルＢＢＣでは、ＰＭＯＳトランジスタＭＴ１，ＭＢ１がオフ状態となるとともにＮＭＯＳトランジスタＭＴ４，ＭＢ４がオン状態になるので、コントロールキャパシタＣＧの他端に制御電圧ＶＳＳが印加され、イレースキャパシタＥＧの他端に制御電圧ＶＳＳが印加される。したがって、フローティングゲートＦＧＴ，ＦＧＢの電荷量は変化しない。
【００７０】
〔第１のコラム制御信号発生器の構成例〕
図１５は、図４に示した第１のコラム制御信号発生器１０３Ａの構成例を示す。第１のコラム制御信号発生器１０３Ａは、プログラムデコーダＡ１０１と、ラッチＡ１０２と、レベルシフタＡ１０３と、リードデコーダＡ１０４と、ドライバＡ１０５と、インバータＡ１０６と、切替回路Ａ１０７と、イレースデコーダＡ１０８と、ラッチＡ１０９と、レベルシフタＡ１１０と、切替回路Ａ１１１とを含んでいても良い。
【００７１】
プログラムデコーダＡ１０１は、スタンバイ制御信号ＳＴＢがハイレベルである場合およびリード制御信号ＲＥＡＤがハイレベルである場合、出力信号をハイレベルにする。また、プログラムデコーダＡ１０１は、反転書込制御信号ＳＷＴ１がハイレベルである場合、読み出しデータ値ＲＤを選択する。この場合、プログラムデコーダＡ１０１は、読み出しデータ値ＲＤが“１”である場合には、出力信号をハイレベルにし、読み出しデータ値ＲＤが“０”である場合には、出力信号をローレベルにする。さらに、プログラムデコーダＡ１０１は、通常書込制御信号ＳＷＴ２がハイレベルである場合、書き込み反転データ値ＸＷＤを選択する。この場合、プログラムデコーダＡ１０１は、書き込み反転データ値ＸＷＤが“１”である場合には、出力信号をハイレベルにし、書き込み反転データ値ＸＷＤが“０”である場合には、出力信号をローレベルにする。ラッチＡ１０２は、ラッチタイミング信号ＳＬＴ２に同期して、プログラムデコーダＡ１０１の出力信号を取り込んで保持する。レベルシフタＡ１０３は、ラッチＡ１０２の出力信号（制御電圧ＶＤＤと制御電圧ＶＳＳとの間で信号レベルが変化する信号）をコラム制御信号Ｓ１（制御電圧ＶＰＰと制御電圧ＶＳＳとの間で信号レベルが変化する信号）に変換する。
【００７２】
リードデコーダＡ１０４は、リード制御信号ＲＥＡＤがハイレベルである場合には、出力信号をハイレベルにし、リード制御信号ＲＥＡＤがローレベルである場合には、出力信号をローレベルにする。ドライバＡ１０５は、リードデコーダＡ１０４の出力信号を増幅させる。インバータＡ１０６は、ドライバＡ１０５の出力信号を反転させてコラム制御信号Ｓ２（制御電圧ＶＤＤと制御電圧ＶＳＳとの間で信号レベルが変化する信号）として出力する。
【００７３】
切替回路Ａ１０７は、リード制御信号ＲＥＡＤがハイレベルである場合、コラム制御信号Ｓ３をローレベル（ここでは、制御電圧ＶＳＳ）にする。また、切替回路Ａ１０７は、リード制御信号ＲＥＡＤがローレベルである場合、ラッチＡ１０２の出力信号がハイレベルである場合には、コラム制御信号Ｓ３をハイレベル（ここでは、制御電圧ＶＤＤ）にし、ラッチＡ１０２の出力信号がローレベルである場合には、コラム制御信号Ｓ３をローレベルにする。
【００７４】
イレースデコーダＡ１０８は、スタンバイ制御信号ＳＴＢがハイレベルである場合およびリード制御信号ＲＥＡＤがハイレベルである場合、出力信号をハイレベルにする。また、イレースデコーダＡ１０８は、反転書込制御信号ＳＷＴ１がハイレベルである場合、読み出し反転データ値ＸＲＤを選択する。この場合、イレースデコーダＡ１０８は、読み出し反転データ値ＸＲＤが“１”である場合には、出力信号をハイレベルにし、読み出し反転データ値ＸＲＤが“０”である場合には、出力信号をローレベルにする。さらに、イレースデコーダＡ１０８は、通常書込制御信号ＳＷＴ２がハイレベルである場合、書き込みデータ値ＷＤを選択する。この場合、イレースデコーダＡ１０８は、書き込みデータ値ＷＤが“１”である場合には、出力信号をハイレベルにし、書き込みデータ値ＷＤが“０”である場合には、出力信号をローレベルにする。ラッチＡ１０９は、ラッチタイミング信号ＳＬＴ２に同期して、イレースデコーダＡ１０８の出力信号を取り込んで保持する。レベルシフタＡ１１０は、ラッチＡ１０９の出力信号（制御電圧ＶＤＤと制御電圧ＶＳＳとの間で信号レベルが変化する信号）をコラム制御信号Ｓ４（制御電圧ＶＰＰと制御電圧ＶＳＳとの間で信号レベルが変化する信号）に変換する。
【００７５】
切替回路Ａ１１１は、リード制御信号ＲＥＡＤがハイレベルである場合、コラム制御信号Ｓ５をローレベル（ここでは、制御電圧ＶＳＳ）にする。また、切替回路Ａ１０７は、リード制御信号ＲＥＡＤがローレベルである場合、ラッチＡ１０９の出力信号がハイレベルである場合には、コラム制御信号Ｓ５をハイレベル（ここでは、制御電圧ＶＤＤ）にし、ラッチＡ１０９の出力信号がローレベルである場合には、コラム制御信号Ｓ５をローレベルにする。
【００７６】
〔第２のコラム制御信号発生器の構成例〕
図１６は、図４に示した第２のコラム制御信号発生器１０３Ｂの構成例を示す。第２のコラム制御信号発生器１０３Ｂは、ＰＭＯＳトランジスタＭＰ１〜ＭＰ６と、ＮＭＯＳトランジスタＭＮ１〜ＭＮ４とを含んでいても良い。
【００７７】
ＰＭＯＳトランジスタＭＰ１は、制御電圧ＶＤＤＨが印加されるノードとコラム制御線ＣＧＤＴとの間に接続され、ＮＭＯＳトランジスタＭＮ１は、コラム制御線ＣＧＤＴと制御電圧ＶＳＳが印加されるノードとの間に接続される。ＰＭＯＳトランジスタＭＰ１およびＮＭＯＳトランジスタＭＮ１のゲートには、コラム制御信号Ｓ３が印加される。
【００７８】
ＰＭＯＳトランジスタＭＰ２は、制御電圧ＶＰＰが印加されるノードとコラム制御線ＣＧＤＴＰとの間に接続され、ＰＭＯＳトランジスタＭＰ３は、制御電圧ＶＤＤが印加されるノードとコラム制御線ＣＧＤＴＰとの間に接続され、ＮＭＯＳトランジスタＭＮ２は、コラム制御線ＣＧＤＴＰと制御電圧ＶＳＳが印加されるノードとの間に接続される。ＰＭＯＳトランジスタＭＰ２，ＭＰ３，およびＮＭＯＳトランジスタＭＮ２のゲートには、それぞれ、コラム制御信号Ｓ１，Ｓ２，Ｓ３が印加される。
【００７９】
ＰＭＯＳトランジスタＭＰ４は、制御電圧ＶＰＰが印加されるノードとコラム制御線ＣＧＤＢＰとの間に接続され、ＰＭＯＳトランジスタＭＰ５は、制御電圧ＶＤＤが印加されるノードとコラム制御線ＣＧＤＢＰとの間に接続され、ＮＭＯＳトランジスタＭＮ３は、コラム制御線ＣＧＤＢＰと制御電圧ＶＳＳが印加されるノードとの間に接続される。ＰＭＯＳトランジスタＭＰ４，ＭＰ５，およびＮＭＯＳトランジスタＭＮ３のゲートには、それぞれ、コラム制御信号Ｓ４，Ｓ２，Ｓ５が印加される。
【００８０】
ＰＭＯＳトランジスタＭＰ６は、制御電圧ＶＤＤＨが印加されるノードとコラム制御線ＣＧＤＢとの間に接続され、ＮＭＯＳトランジスタＭＮ４は、コラム制御線ＣＧＤＢと制御電圧ＶＳＳが印加されるノードとの間に接続される。ＰＭＯＳトランジスタＭＰ６およびＮＭＯＳトランジスタＭＮ４のゲートには、コラム制御信号Ｓ５が印加される。
【００８１】
〔第１および第２のコラム制御信号発生器の動作〕
次に、図１７および図１８を参照して、図１５および図１６に示した第１および第２のコラム制御信号発生器１０３Ａ，１０３Ｂの動作について説明する。
【００８２】
《スタンバイ動作》
スタンバイ制御信号ＳＴＢがハイレベルである場合、図１７のように、第１のコラム制御信号発生器１０３Ａは、コラム制御信号Ｓ１，Ｓ２，Ｓ３，Ｓ４，Ｓ５として制御電圧ＶＰＰ，ＶＤＤ，ＶＤＤ，ＶＰＰ，ＶＤＤをそれぞれ出力する。したがって、図１８のように、第２の制御信号発生器１０３Ｂは、コラム制御線ＣＧＤＴ，ＣＧＤＴＰ，ＣＧＤＢＰ，ＣＧＤＢに制御電圧ＶＳＳ，ＶＳＳ，ＶＳＳ，ＶＳＳをそれぞれ印加する。
【００８３】
《リード動作》
リード制御信号ＲＥＡＤがハイレベルである場合、図１７のように、第１のコラム制御信号発生器１０３Ａは、コラム制御信号Ｓ１，Ｓ２，Ｓ３，Ｓ４，Ｓ５として制御電圧ＶＰＰ，ＶＳＳ，ＶＳＳ，ＶＰＰ，ＶＳＳをそれぞれ出力する。したがって、図１８のように、第２のコラム制御信号発生器１０３Ｂは、コラム制御線ＣＧＤＴ，ＣＧＤＴＰ，ＣＧＤＢＰ，ＣＧＤＢに制御電圧ＶＤＤＨ，ＶＤＤ，ＶＤＤ，ＶＤＤＨをそれぞれ印加する。
【００８４】
《反転書込動作》
反転書込制御信号ＳＷＴ１がハイレベルである場合、図１７のように、第１のコラム制御信号発生器１０３Ａは、読み出しデータ値ＲＤが“１”である場合には、コラム制御信号Ｓ１，Ｓ２，Ｓ３，Ｓ４，Ｓ５として制御電圧ＶＰＰ，ＶＤＤ，ＶＤＤ，ＶＳＳ，ＶＳＳをそれぞれ出力し、読み出しデータ値ＲＤが“０”である場合には、コラム制御信号Ｓ１，Ｓ２，Ｓ３，Ｓ４，Ｓ５として制御電圧ＶＳＳ，ＶＤＤ，ＶＳＳ，ＶＰＰ，ＶＤＤをそれぞれ出力する。したがって、図１８のように、第２のコラム制御信号発生器１０３Ｂは、読み出しデータ値ＲＤが“１”である場合には、コラム制御線ＣＧＤＴ，ＣＧＤＴＰ，ＣＧＤＢＰ，ＣＧＤＢに制御電圧ＶＳＳ，ＶＳＳ，ＶＰＰ，ＶＤＤＨをそれぞれ印加し、読み出しデータ値ＲＤが“０”である場合には、コラム制御線ＣＧＤＴ，ＣＧＤＴＰ，ＣＧＤＢＰ，ＣＧＤＢに制御電圧ＶＤＤＨ，ＶＰＰ，ＶＳＳ，ＶＳＳをそれぞれ印加する。
【００８５】
《通常書込動作》
通常書込制御信号ＳＷＴ２がハイレベルである場合、図１７のように、第１のコラム制御信号発生器１０３Ａは、書き込みデータ値ＷＤが“１”である場合には、コラム制御信号Ｓ１，Ｓ２，Ｓ３，Ｓ４，Ｓ５として制御電圧ＶＳＳ，ＶＤＤ，ＶＳＳ，ＶＰＰ，ＶＤＤをそれぞれ出力し、書き込みデータ値ＷＤが“０”である場合には、コラム制御信号Ｓ１，Ｓ２，Ｓ３，Ｓ４，Ｓ５として制御電圧ＶＰＰ，ＶＤＤ，ＶＤＤ，ＶＳＳ，ＶＳＳをそれぞれ出力する。したがって、図１８のように、第２のコラム制御信号発生器１０３Ｂは、書き込みデータ値ＷＤが“１”である場合には、コラム制御線ＣＧＤＴ，ＣＧＤＴＰ，ＣＧＤＢＰ，ＣＧＤＢに制御電圧ＶＤＤＨ，ＶＰＰ，ＶＳＳ，ＶＳＳをそれぞれ印加し、書き込みデータ値ＷＤが“０”である場合には、コラム制御線ＣＧＤＴ，ＣＧＤＴＰ，ＣＧＤＢＰ，ＣＧＤＢに制御電圧ＶＳＳ，ＶＳＳ，ＶＰＰ，ＶＤＤＨをそれぞれ印加する。
【００８６】
〔不揮発性半導体記憶装置の書込動作〕
次に、図１９を参照して、図１に示した不揮発性半導体記憶装置１の書込動作について説明する。ここでは、書込動作の対象として同時に選択されるｎ個のメモリユニットＭＵ〜ＭＵの中のいずれか１個のメモリユニットＭＵに着目して説明する。
【００８７】
《ＳＴ１０１》
まず、ロウ制御回路１２およびコラム制御回路１３は、全体制御回路１１による制御に応答して、書込動作の対象となるメモリユニットＭＵにリード動作を実行する。また、読み出し回路１４は、全体制御回路１１による制御に応答して、書込動作の対象となるメモリユニットＭＵに格納されたデータ値を読み出しデータ値ＲＤとして読み出す。
【００８８】
《ＳＴ１０２》
次に、ロウ制御回路１２およびコラム制御回路１３は、全体制御回路１１による制御に応答して、読み出しデータ値ＲＤの反転値が書込動作の対象となるメモリユニットＭＵに書き込まれるように、書込動作の対象となるメモリユニットＭＵに反転書込動作を実行する。例えば、コラム制御回路１３は、読み出しデータ値ＲＤが“１”である場合には、書込動作の対象となるメモリユニットＭＵにイレース動作を実行し、読み出しデータ値が“０”である場合には、書込動作の対象となるメモリユニットＭＵにプログラム動作を実行する。また、全体制御回路１１は、書込動作の対象となるメモリユニットＭＵに対する反転書込動作の開始からの経過時間を計測する。
【００８９】
《ＳＴ１０３》
次に、全体制御回路１１は、書込動作の対象となるメモリユニットＭＵに対する反転書込動作が開始されてから反転書込時間（予め設定された時間）が経過したか否かを判断する。反転書込時間が経過している場合には、ステップＳＴ１０４へ進む。一方、反転書込時間が経過していない場合には、ステップＳＴ１０２に進む。例えば、反転書込時間は、反転書込動作によってメモリユニットＭＵのフローティングゲートＦＧＴ，ＦＧＢが初期状態（プログラム状態、またはイレース状態）から中間状態（“１”を示したデータ値に対応する電荷量と“０”を示したデータ値に対応する電荷量との間の中間量に対応する電荷量を蓄積している状態）に変化するまでに要する時間であっても良い。
【００９０】
《ＳＴ１０４》
次に、ロウ制御回路１２およびコラム制御回路１３は、全体制御回路１１による制御に応答して、書込動作の対象となるメモリユニットＭＵに対する反転書込動作を終了し、書き込みデータ値ＷＤがメモリユニットＭＵに書き込まれるように、書込動作の対象となるメモリユニットＭＵに通常書込動作を実行する。例えば、コラム制御回路１３は、書き込みデータ値ＷＤが“１”である場合には、書込動作の対象となるメモリユニットＭＵにプログラム動作を実行し、書き込みデータ値ＷＤが“０”である場合には、書込動作の対象となるメモリユニットＭＵにイレース動作を実行する。また、全体制御回路１１は、書込動作の対象となるメモリユニットＭＵに対する通常書込動作の開始からの経過時間を計測する。
【００９１】
《ＳＴ１０５》
次に、全体制御回路１１は、書込動作の対象となるメモリユニットＭＵに対する通常書込動作が開始されてから通常書込時間（予め設定された時間）が経過したか否かを判断する。通常書込時間が経過している場合には、ロウ制御回路１２およびコラム制御回路１３は、全体制御回路１１による制御に応答して、書込動作の対象となるメモリユニットＭＵに対する通常書込動作を終了する。一方、通常書込時間が経過していない場合には、ステップＳＴ１０４に進む。例えば、通常書込時間は、通常書込動作によってメモリユニットＭＵのフローティングゲートＦＧＴ，ＦＧＢが中間状態から最終状態（プログラム状態、またはイレース状態）に変化するまでに要する時間であっても良い。
【００９２】
〔動作タイミング〕
次に、図２０を参照して、図１に示した不揮発性半導体記憶装置１の書込動作の動作タイミングに説明する。図２０は、書込動作の対象となるメモリユニットＭＵに格納されたデータ値が“１”であり、書き込みデータ値ＷＤが“０”である場合の例を示す。
【００９３】
時刻ｔ０〜ｔ１の期間では、全体制御回路１１は、スタンバイ制御信号ＳＴＢをハイレベルにする。これにより、ロウ制御回路１２およびコラム制御回路１３は、書込動作の対象となるメモリユニットＭＵにスタンバイ動作を実行する。
【００９４】
時刻ｔ１になると、全体制御回路１１は、スタンバイ制御信号ＳＴＢをローレベルにするとともにリード制御信号ＲＥＡＤをハイレベルにする。これにより、ロウ制御回路１２およびコラム制御回路１３は、書込動作の対象となるメモリユニットＭＵに対するリード動作を開始し、読み出し回路１４は、全体制御回路１１からのラッチタイミング信号ＳＬＴ１に同期して、書込動作の対象となるメモリユニットＭＵに格納されたデータ値を読み出しデータ値ＲＤとして読み出す。
【００９５】
時刻ｔ２になると、全体制御回路１１は、リード制御信号ＲＥＡＤをローレベルにするとともに反転書込制御信号ＳＷＴ１をハイレベルにする。これにより、ロウ制御回路１２およびコラム制御回路１３は、書込動作の対象となるメモリユニットＭＵに対するリード動作を終了し、全体制御回路１１からのラッチタイミング信号ＳＬＴ２に同期して、書込動作の対象となるメモリユニットＭＵに対する反転書込動作（ここでは、イレース動作）を開始する。これにより、書込動作の対象となるメモリユニットＭＵでは、フローティングゲートＦＧＴから電荷が放出され、フローティングゲートＦＧＢに電荷が注入される。
【００９６】
時刻ｔ２から反転書込時間Ｐ１が経過すると（すなわち、時刻ｔ３になると）、全体制御回路１１は、反転書込制御信号ＳＷＴ１をローレベルにするとともに通常書込制御信号ＳＷＴ２をハイレベルにする。これにより、ロウ制御回路１２およびコラム制御回路１３は、全体制御回路１１からのラッチタイミング信号ＳＬＴ２に同期して、書込動作の対象となるメモリユニットＭＵに対する通常書込動作（ここでは、イレース動作）を開始する。これにより、書込動作の対象となるメモリユニットＭＵでは、フローティングゲートＦＧＴから電荷がさらに放出され、フローティングゲートＦＧＢに電荷がさらに注入される。
【００９７】
時刻ｔ３から通常書込時間Ｐ２が経過すると（すなわち、時刻ｔ４になると）、全体制御回路１１は、通常書込制御信号ＳＷＴ２をローレベルにするとともにスタンバイ制御信号ＳＴＢをハイレベルにする。これにより、ロウ制御回路１２およびコラム制御回路１３は、書込動作の対象となるメモリユニットＭＵに対する通常書込動作を終了する。
【００９８】
また、図２１のように書き込みデータ値ＷＤが“１”である場合、時刻ｔ３〜ｔ４の期間では、ロウ制御回路１２およびコラム制御回路１３は、書込動作の対象となるメモリユニットＭＵにプログラム動作を実行する。これにより、書込動作の対象となるメモリユニットＭＵでは、フローティングゲートＦＧＴに電荷が注入され、フローティングゲートＦＧＢに蓄積された電荷が放出される。
【００９９】
〔電荷分布〕
次に、図２２ａおよび図２２ｂを参照して、書込動作の対象となるメモリユニットＭＵのフローティングゲートＦＧＴ，ＦＧＢの電荷量の変化について説明する。ここでは、書込動作の対象となるメモリユニットＭＵに格納されたデータ値は“１”であるものとする。すなわち、書込動作の対象となるメモリユニットＭＵにおいて、ＴビットセルＴＢＣのフローティングゲートＦＧＴは、“１”を示したデータ値に対応する電荷量を蓄積し、ＢビットセルＢＢＣのフローティングゲートＦＧＢは、“０”を示したデータ値に対応する電荷量を蓄積している。
【０１００】
図２２ａは、書込動作の対象となるメモリユニットＭＵに対して“０”を示した書き込みデータ値ＷＤを書き込む場合の例を示し、図２２ｂは、書込動作の対象となるメモリユニットＭＵに対して“１”を示した書き込みデータ値ＷＤを書き込む場合の例を示す。いずれの場合も、ＴビットセルＴＢＣのフローティングゲートＦＧＴの電荷量およびＢビットセルＢＢＣのフローティングゲートＦＧＢの電荷量は、反転書込動作によって中間電荷量（“１”を示したデータ値に対応する電荷量と“０”を示したデータ値に対応する電荷量との間の中間量）に変化した後に、通常書込動作によって書き込みデータ値ＷＤに応じた電荷量に変化する。
【０１０１】
以上のように、反転書込動作によって書込動作の対象となるメモリユニットＭＵのフローティングゲートＦＧＴ，ＦＧＢの電荷量を中間量（“１”を示したデータ値に対応する電荷量と“０”を示したデータ値に対応する電荷量との間の中間量）を近づけることができる。その後、通常書込動作によって書込動作の対象となるメモリユニットＭＵのフローティングゲートＦＧＴ，ＦＧＢの電荷量を中間量から書き込みデータ値ＷＤに応じた電荷量（“１”を示したデータ値に対応する電荷量、または、“０”を示したデータ値に対応する電荷量）に近づけることができる。したがって、書込動作の対象となるメモリユニットＭＵにおける過消去（フローティングゲートＦＧＴ，ＦＧＢから電荷が引き抜かれすぎること）および過書込（フローティングゲートＦＧＴ，ＦＧＢに電荷が注入され過ぎること）を回避できる。また、反転書込動作および通常書込動作のいずれの場合においても、メモリユニットＭＵのフローティングゲートＦＧＴ，ＦＧＢのうち一方のフローティングゲートから電荷を放出させる動作と他方のフローティングゲートに電荷を注入する動作とが同時に実行される。したがって、書込動作の対象となるメモリユニットＭＵのフローティングゲートＦＧＴ，ＦＧＢの両方に電荷を注入した後に書き込みデータ値ＷＤに応じてフローティングゲートＦＧＴ，ＦＧＢのいずれか一方のフローティングゲートから電荷を放出させる場合よりも、書込時間（メモリユニットＭＵへの書き込みデータ値ＷＤの書き込みに要する時間）を短縮できる。
【０１０２】
また、反転書込時間Ｐ１に基づいて反転書込動作の実行期間を管理することにより、書込動作の対象となるメモリユニットＭＵのフローティングゲートＦＧＴ，ＦＧＢの電荷量を中間量に正確に近づけることができる。さらに、通常書込時間Ｐ２に基づいて通常書込動作の実行期間を管理することにより、書込動作の対象となるメモリユニットＭＵのフローティングゲートＦＧＴ，ＦＧＢの電荷量を書き込みデータ値ＷＤに応じた電荷量に正確に近づけることができる。
【０１０３】
なお、反転書込動作期間（反転書込動作が実行される期間）と通常書込動作期間（通常書込動作が実行される期間）との間に書込停止期間が設けられても良い。例えば、ロウ制御回路１２およびコラム制御回路１３は、全体制御回路１１による制御に応答して、書込動作の対象となるメモリユニットＭＵに対する反転書込動作を終了した後に、書込動作の対象となるメモリユニットＭＵに対するスタンバイ動作を開始し、そのスタンバイ動作を終了した後に、書込動作の対象となるメモリユニットＭＵに対する通常書込動作を開始しても良い。
【０１０４】
（実施形態１の変形例１）
なお、図２３のように、メモリアレイ１００は、ｍ×ｎ本のロウ制御線ＥＧＷＬ１−１〜ＥＧＷＬｍ−ｎを含んでいても良い。図２３では、ｍ組のロウ制御線群（ここでは、４本のロウ制御線ＣＧＷＬＰＡ，ＣＧＷＬＰＢ，ＣＧＷＬ，ＲＧＷＬの組合せ）は、それぞれ、ｍ個のメモリユニット行に対応し、ｍ×ｎ本のロウ制御線ＥＧＷＬ１−１〜ＥＧＷＬｍ−ｎは、それぞれ、ｍ×ｎ個のメモリユニットＭＵ１１〜ＭＵｍｎに対応する。この場合、メモリ制御回路１０は、ロウ制御回路１２およびコラム制御回路１３に代えて、ロウ制御回路１２ａおよびコラム制御回路１３ａを含んでいても良い。その他の構成は、図１および図２に示した構成と同様であっても良い。なお、図２３では、全体制御回路１１の図示を省略している。
【０１０５】
ロウ制御回路１２ａは、全体制御回路１１による制御に応答して、ｍ組のロウ制御線群（ＣＧＷＬＰＡ，ＣＧＷＬＰＢ，ＣＧＷＬ，ＲＧＷＬ）に制御電圧を印加する。また、ロウ制御回路１２ａは、全体制御回路１１による制御に応答して、ロウ制御線ＥＧＷＬ１−１〜ＥＧＷＬｍ−ｎに制御電圧を印加する。コラム制御回路１３ａは、全体制御回路１１による制御に応答して、ｎ組のコラム制御線群（ＣＧＤＴ，ＣＧＤＴＰ，ＣＧＤＢＰ，ＣＧＤＢ）に制御電圧を印加する。なお、以下の説明では、ロウ制御線ＥＧＷＬ１−１〜ＥＧＷＬｍ−ｎのいずれか１つを示すために、ロウ制御線の符号の末尾（１−１〜ｍ−ｎ）を省略する場合もある。
【０１０６】
〔制御電圧の印加条件〕
図２４は、図２３に示した不揮発性半導体記憶装置において、動作対象ではないメモリユニットＭＵに対応するロウ制御線ＣＧＷＬＰＡ，ＣＧＷＬＰＢ，ＣＧＷＬ，ＲＧＷＬ，ＥＧＷＬおよびコラム制御線ＣＧＤＴ，ＣＧＤＴＰ，ＣＧＤＢＰ，ＣＧＤＢに対する制御電圧の印加条件を示す。なお、動作対象となるメモリユニットＭＵに対応するロウ制御線ＣＧＷＬＰＡ，ＣＧＷＬＰＢ，ＣＧＷＬ，ＲＧＷＬ，ＥＧＷＬおよびコラム制御線ＣＧＤＴ，ＣＧＤＴＰ，ＣＧＤＢＰ，ＣＧＤＢに対する制御電圧の印加条件は、図６に示した印加条件と同様である。
【０１０７】
〔ロウ制御回路およびコラム制御回路による制御電圧の印加〕
図２３に示した不揮発性半導体記憶装置では、ロウ制御回路１２ａおよびコラム制御回路１３ａは、ｍ個のメモリユニット行のうちいずれか１個のメモリユニット行を選択し、そのメモリユニット行に属するｎ個のメモリユニットＭＵ〜ＭＵの中のうち１個または複数個のメモリユニットを書込動作の対象として選択する。すなわち、ロウ制御回路１２ａは、図６に示した印加条件に基づいて、書込動作の対象となる１個または複数個のメモリユニットに共通に接続された１組のロウ制御線群（ＣＧＷＬＰＡ，ＣＧＷＬＰＢ，ＣＧＷＬ，ＲＧＷＬ）に制御電圧を印加するとともに、図２４に示した印加条件に基づいて、他のｍ−１組のロウ制御線群（ＣＧＷＬＰＡ，ＣＧＷＬＰＢ，ＣＧＷＬ，ＲＧＷＬ）に制御電圧を印加する。さらに、ロウ制御回路１２ａは、図６に示した印加条件に基づいて、書込動作の対象となるメモリユニットＭＵに接続されたロウ制御線ＥＧＷＬに制御電圧を印加するとともに、図２４に示した印加条件に基づいて、書込動作の対象ではないメモリユニットＭＵに接続されたロウ制御線ＥＧＷＬに制御電圧を印加する。また、コラム制御回路１３ａは、図６に示した印加条件に基づいて、書込動作の対象となるメモリユニットＭＵに接続されたコラム制御線群（ＣＧＤＴ，ＣＧＤＴＰ，ＣＧＤＢＰ，ＣＧＤＢ）に制御電圧を印加するとともに、図２４に示した印加条件に基づいて、書込動作の対象ではないメモリユニットＭＵに接続されたコラム制御線群（ＣＧＤＴ，ＣＧＤＴＰ，ＣＧＤＢＰ，ＣＧＤＢ）に制御電圧を印加する。
【０１０８】
以上のように、ｍ×ｎ個のメモリユニットＭＵ１１〜ＭＵｍｎにｍ×ｎ本のロウ制御線ＥＧＷＬ１−１〜ＥＧＷＬｍ−ｎをそれぞれ接続することにより、ｍ×ｎ個のメモリユニットＭＵ１１〜ＭＵｍｎの各々に含まれるイレースゲート（すなわち、イレースキャパシタＥＧの他端）に印加される制御電圧を個別に制御できるので、１個のメモリユニットＭＵを単位として書込動作の対象となる１個または複数個のメモリユニットを選択できる。
【０１０９】
例えば、図２５に示した２行２列のメモリユニットＭＵ１１〜ＭＵ２２（すなわち、ｍ＝２，ｎ＝２の場合）において、メモリユニットＭＵ１１をイレース動作の対象とし、メモリユニットＭＵ１２，ＭＵ２１，ＭＵ２２を書込動作の対象としない場合を例に挙げて説明する。この場合、図８の場合と同様に、ロウ制御回路１２ａは、イレース動作の対象となるメモリユニットＭＵ１１に接続されたロウ制御線ＣＧＷＬＰＡ１，ＣＧＷＬＰＢ１，ＣＧＷＬ１，ＲＧＷＬ１に制御電圧ＶＭ，ＶＤＤＨ，ＶＤＤＨ，ＶＳＳをそれぞれ印加するとともに、書込動作の対象ではないメモリユニットＭＵ２１，ＭＵ２２に共通に接続されたロウ制御線ＣＧＷＬＰＡ２，ＣＧＷＬＰＢ２，ＣＧＷＬ２，ＲＧＷＬ２に制御電圧ＶＰＰ，ＶＤＤＨ，ＶＳＳ，ＶＳＳをそれぞれ印加する。
【０１１０】
図２５の場合、ロウ制御回路１２ａは、イレース動作の対象となるメモリユニットＭＵ１１に接続されたロウ制御線ＥＧＷＬ１−１に制御電圧ＶＰＰを印加するとともに、書込動作の対象ではないメモリユニットＭＵ１２，ＭＵ２１，ＭＵ２２にそれぞれ接続されたロウ制御線ＥＧＷＬ１−２，ＥＧＷＬ２−１，ＥＧＷＬ２−２に制御電圧ＶＳＳ，ＶＳＳ，ＶＳＳをそれぞれ印加する。コラム制御回路１３ａは、イレース動作の対象となるメモリユニットＭＵ１１に接続されたコラム制御線ＣＧＤＴ１，ＣＧＤＴＰ１，ＣＧＤＢＰ１，ＣＧＤＢ１に制御電圧ＶＳＳ，ＶＳＳ，ＶＰＰ，ＶＤＤＨをそれぞれ印加するとともに、書込動作の対象ではないメモリユニットＭＵ１２，ＭＵ２２に共通に接続されたコラム制御線ＣＧＤＴ２，ＣＧＤＴＰ２，ＣＧＤＢＰ２，ＣＧＤＢ２に制御電圧ＶＳＳ，ＶＳＳ，ＶＳＳ，ＶＳＳをそれぞれ印加する。ここで、メモリユニットＭＵ１２では、ＴビットセルＴＢＣのコントロールキャパシタＣＧの他端には、ＮＭＯＳトランジスタＭＴ３，ＭＴ４を介して制御電圧ＶＳＳが伝達され、ＢビットセルＢＢＣのコントロールキャパシタＣＧの他端には、ＰＭＯＳトランジスタＭＢ１，ＭＢ２を介して制御電圧ＶＳＳ（コラム制御線ＣＧＤＴ２に印加された制御電圧ＶＳＳ）が伝達されるが、ＴビットセルＴＢＣおよびＢビットセルＢＢＣのイレースキャパシタＥＧの他端には、制御電圧ＶＳＳ（ロウ制御線ＥＧＷＬ１−２に印加された制御電圧ＶＳＳ）が伝達される。そのため、メモリユニットＭＵ１２のフローティングゲートＦＧＴ，ＦＧＢの電荷量は変化しない。
【０１１１】
（実施形態１の変形例２）
また、図２６のように、不揮発性半導体記憶装置１は、ｐ個（ｐは、２以上の整数）のメモリアレイ１００１〜１００ｐを備えていても良い。メモリアレイ１００１〜１００ｐは、ｍ組のロウ制御線群（ここでは、４本のロウ制御線ＣＧＷＬＰＡ，ＣＧＷＬＰＢ，ＣＧＷＬ，ＲＧＷＬの組合せ）を共有する。また、メモリアレイ１００１〜１００ｐの各々は、ｍ本のロウ制御線ＥＧＷｌ１〜ＥＧＷＬｍを個別に有する。メモリアレイ１００１〜１００ｐのその他の構成は、図２に示したメモリアレイ１００の構成と同様である。この場合、メモリ制御回路１０は、全体制御回路１１ｂと、ロウ制御回路１２ｂと、ｐ個のコラム制御回路１３１〜１３ｐと、ｐ個の読み出し回路１４１〜１４ｐと、ｐ個のＥＧＷＬ発生器１５１〜１５ｐと、コラム選択回路１６とを備えていても良い。
【０１１２】
全体制御回路１１ｂは、ロウ制御回路１２ｂ，コラム制御回路１３１〜１３ｐ，読み出し回路１４１〜１４ｐ，ＥＧＷＬ発生器１５１〜１５ｐ，およびコラム選択回路１６を制御する。コラム制御回路１３１〜１３ｐ，読み出し回路１４１〜１４ｐ，ＥＧＷＬ発生器１５１〜１５ｐは、それぞれ、メモリアレイ１００１〜１００ｐに対応する。コラム制御回路１３１〜１３ｐは、図２に示したコラム制御回路１３の構成と同様の構成を有する。読み出し回路１４１〜１４ｐは、図２に示した読み出し回路１４の構成と同様の構成を有する。コラム選択回路１６は、全体制御回路１１ｂによる制御に応答して、コラム制御回路１３１〜１３ｐの中から１個または複数個のコラム制御回路を選択する。
【０１１３】
図２６に示した不揮発性半導体記憶装置では、ロウ制御回路１２ｂは、全体制御回路１１ｂによる制御に応答して、メモリアレイ１００１〜１００ｐの各々において、ｍ個のメモリユニット行の中からいずれか１個のメモリユニット行に属するｎ個のメモリユニットＭＵ〜ＭＵを選択する。すなわち、ロウ制御回路１２ｂは、図６に示した印加条件に基づいて１組のロウ制御線群（ＣＧＷＬＰＡ，ＣＧＷＬＰＢ，ＣＧＷＬ，ＲＧＷＬ）に制御電圧を印加するとともに、図７に示した印加条件に基づいて他のｍ−１組のロウ制御線群（ＣＧＷＬＰＡ，ＣＧＷＬＰＢ，ＣＧＷＬ，ＲＧＷＬ）に制御電圧を印加する。
【０１１４】
コラム選択回路１６によって選択されたコラム制御回路１３は、全体制御回路１１ｂによる制御に応答して、そのコラム制御回路１３に対応するメモリアレイ１００に含まれるｎ個のメモリユニットＭＵ〜ＭＵ（ロウ制御回路１２ｂによって選択されたｎ個のメモリユニットＭＵ〜ＭＵ）を書込動作の対象として同時に選択する。すなわち、コラム選択回路１６によって選択されたコラム制御回路１３は、図６に示した印加条件に基づいてｎ組のコラム制御線群（ＣＧＤＴ，ＣＧＤＴＰ，ＣＧＤＢＰ，ＣＧＤＢ）に制御電圧を印加する。また、コラム選択回路１６によって選択されたコラム制御回路１３に対応するＥＧＷＬ発生器１５は、全体制御回路１１ｂによる制御に応答して、図６に示した印加条件に基づいてそのＥＧＷＬ発生器１５に対応するメモリアレイ１００に含まれるｍ本のロウ制御線ＥＧＷＬ１〜ＥＧＷＬｍに制御電圧を印加する。
【０１１５】
また、コラム選択回路１６によって選択されないコラム制御回路１３は、そのコラム制御回路１３に対応するメモリアレイ１００に含まれるｎ個のメモリユニットＭＵ〜ＭＵ（ロウ制御回路１２ｂによって選択されたｎ個のメモリユニットＭＵ〜ＭＵ）を書込動作の対象として選択しない。すなわち、コラム選択回路１６によって選択されないコラム制御回路１３は、図２４に示した印加条件に基づいてｎ組のコラム制御線群（ＣＧＤＴ，ＣＧＤＴＰ、ＣＧＤＢＰ，ＣＧＤＢ）に制御電圧を印加する。また、コラム選択回路１６によって選択されないコラム制御回路１３に対応するＥＧＷＬ発生器１５は、全体制御回路１１ｂによる制御に応答して、図２４に示した印加条件に基づいてそのＥＧＷＬ発生器１５に対応するメモリアレイ１００に含まれるｍ本のロウ制御線ＥＧＷＬ１〜ＥＧＷＬｍに制御電圧を印加する。
【０１１６】
以上のように、ＥＧＷＬ発生器１５１〜１５ｐによってメモリアレイ１００１〜１００ｐに含まれるｍ本のロウ制御線ＥＧＷＬ１〜ＥＧＷＬｍを個別に制御することにより、１個のメモリアレイ１００を単位として書込動作の対象となるｎ個のメモリユニットＭＵ〜ＭＵを含む１個または複数個のメモリアレイを選択できる。
【０１１７】
（実施形態２）
図２７は、実施形態２による不揮発性半導体記憶装置２の構成例を示す。不揮発性半導体記憶装置２は、メモリアレイ１００と、メモリ制御回路２０とを備える。メモリ制御回路２０は、図１に示した全体制御回路１１に代えて、全体制御回路２１と、検知回路２２とを含む。その他の構成は、図１に示したメモリ制御回路１０と同様である。次に、図２８を参照して、不揮発性半導体記憶装置２の構成例について詳しく説明する。なお、ここでは、全体制御回路２１の図示を省略している。
【０１１８】
〔全体制御回路〕
全体制御回路２１は、ロウ制御回路１２，コラム制御回路１３，読み出し回路１４，および検知回路２２を制御する。例えば、全体制御回路２１は、全体制御回路１１と同様に、スタンバイ制御信号ＳＴＢ，リード制御信号ＲＥＡＤ，反転リード制御信号／ＲＥＡＤ，反転書込制御信号ＳＷＴ１，通常書込制御信号ＳＷＴ２，ラッチタイミング信号ＳＬＴ２，書き込みデータ値ＷＤ１〜ＷＤｎ，書き込み反転データ値ＸＷＤ１〜ＸＷＤｎ，読み出しデータ値ＲＤ１〜ＲＤｎ，および，読み出し反転データ値ＸＲＤ１〜ＸＲＤｎをコラム制御回路１３に供給し、ラッチタイミング信号ＳＬＴ１を読み出し回路１４に供給しても良い。さらに、全体制御回路２１は、検知制御信号ＳＤＥＴおよび閾値電圧制御信号（図示を省略）を検知回路２２に供給しても良い。
【０１１９】
〔検知回路〕
検知回路２２は、全体制御回路２１による制御に応答して、ｎ個のメモリユニット列（ｎ組のビット線ＢＬ，ＢＬＸの組合せ）の各々に対して第１および第２の反転完了閾値電圧（反転書込動作の完了を判定するための閾値電圧）を設定する。また、検知回路２２は、全体制御回路２１による制御に応答して、ｎ個のメモリユニット列の各々についてビット線電圧ＶＢＬ，ＶＢＬＸの瞬時値（フローティングゲートＦＧＴ，ＦＧＢの電荷量に対応する電圧値）が第１および第２の反転完了閾値電圧に到達したことを検知する。さらに、検知回路２２は、全体制御回路２１による制御に応答して、ｎ個のメモリユニット列の各々に対して第１および第２の書込完了閾値電圧（通常書込動作の完了を判定するための閾値電圧）を設定する。また、検知回路２２は、全体制御回路２１による制御に応答して、ｎ個のメモリユニット列の各々についてビット線電圧ＶＢＬ，ＶＢＬＸの瞬時値が第１および第２の書込完了閾値電圧に到達したことを検知する。例えば、検知回路２２は、ｎ個のメモリユニット列にそれぞれ対応するｎ個の検知器２０１１〜２０１ｎを含んでいても良い。
【０１２０】
〔検知器の構成例〕
図２９のように、検知器２０１は、比較部２１１，２１１Ｘと、判定部２１２とを含んでいても良い。比較部２２１，２２１Ｘは、それぞれ、全体制御回路２１からの閾値電圧制御信号ＰＲＴｔ１，ＥＲＴｔ１，ＰＲＴｔ２，ＥＲＴｔ２に応答して、ビット線電圧ＶＢＬ，ＶＢＬＸとの比較対象となる第１および第２の閾値電圧を設定する。また、比較部２２１，２２１Ｘは、それぞれ、全体制御回路２１からの検知制御信号ＳＤＥＴ（図示を省略）に応答して、ビット線電圧ＶＢＬ，ＶＢＬＸの瞬時値と第１および第２の閾値電圧とを比較する。判定部２１２は、全体制御回路２１からの検知制御信号ＳＤＥＴに応答して、比較部２１１，２１１Ｘによる比較結果（比較結果信号ＳＡ，ＳＢ）に応じた検知結果（検知結果信号ＤＥＴａ，ＤＥＴｂ）を出力する。
【０１２１】
比較部２１１は、インバータ２２１，２２４と、ＮＡＮＤ回路２２２，２２３，２２５〜２２７とを含んでいても良い。比較部２２１Ｘは、インバータ２２１Ｘ，２２４Ｘと、ＮＡＮＤ回路２２２Ｘ，２２３Ｘ，２２５Ｘ〜２２７Ｘとを含んでいても良い。判定部２１２は、ＮＡＮＤ回路２２８と、インバータ２２９と、ＮＯＲ回路２３０と、インバータ２３１とを含んでいても良い。これらの回路は、検知制御信号ＳＤＥＴがハイレベルである場合には駆動状態となり、検知制御信号ＳＤＥＴがローレベルである場合には停止状態となる。また、インバータ２２１，２２１Ｘの閾値電圧は、中間電圧ＶＴＨｍに設定され、ＮＡＮＤ回路２２３，２２３Ｘの閾値電圧は、中間電圧ＶＴＨｍに設定され、インバータ２２４，２２４Ｘの閾値電圧は、プログラム電圧ＶＴＨｐに設定され、ＮＡＮＤ回路２２６，２２６Ｘの閾値電圧は、イレース電圧ＶＴＨｅに設定されている。
【０１２２】
《中間電圧，プログラム電圧，イレース電圧の例》
例えば、中間電圧ＶＴＨｍは、フローティングゲートＦＧＴ（または、ＦＧＢ）が中間状態である場合におけるビット線電圧ＶＢＬ（ＶＢＬＸ）の瞬時値に相当する。プログラム電圧ＶＴＨｐは、フローティングゲートＦＧＴ（または、ＦＧＢ）がプログラム状態である場合におけるビット線電圧ＶＢＬ（または、ＶＢＬＸ）の瞬時値に相当する。イレース電圧ＶＴＨｅは、フローティングゲートＦＧＴ（または、ＦＧＢ）がイレース状態である場合におけるビット線電圧ＶＢＬ（または、ＶＢＬＸ）の瞬時値に相当する。
【０１２３】
《第１および第２の反転完了閾値電圧の設定》
検知回路２２（検知器２０１）の第１および第２の反転完了閾値電圧を設定する場合、全体制御回路２１は、閾値電圧制御信号ＰＲＴｔ２，ＥＲＴｔ２をローレベルにするとともに、読み出しデータ値ＲＤに応じて閾値電圧制御信号ＰＲＴｔ１，ＥＲＴｔ１のいずれか一方をハイレベルにして他方をローレベルにする。例えば、閾値電圧制御信号ＰＲＴｔ１がハイレベルであり、閾値電圧制御信号ＥＲＴｔ１がローレベルである場合、検知回路２２（検知器２０１）の第１および第２の反転完了閾値電圧は、それぞれ、インバータ２２１の閾値電圧（中間電圧ＶＴＨｍ）およびＮＡＮＤ回路２２３Ｘの閾値電圧（中間電圧ＶＴＨｍ）に設定されたことになる。この場合、ビット線電圧ＶＢＬの瞬時値が中間電圧ＶＴＨｍよりも低くなるとともにビット線電圧ＶＢＬＸの瞬時値が中間電圧ＶＴＨｍよりも高くなると、比較結果信号ＳＡ，ＳＢの両方がハイレベルになる。その結果、検知結果信号ＤＥＴａがハイレベルになる。また、閾値電圧制御信号ＰＲＴｔ１がローレベルであり、閾値電圧制御信号ＥＲＴｔ１がハイレベルである場合、検知回路２２（検知器２０１）の第１および第２の反転完了閾値電圧は、それぞれ、ＮＡＮＤ回路２２３の閾値電圧（中間電圧ＶＴＨｍ）およびインバータ２２１Ｘの閾値電圧（中間電圧ＶＴＨｍ）に設定されたことになる。この場合、ビット線電圧ＶＢＬの瞬時値が中間電圧ＶＴＨｍよりも高くなるとともにビット線電圧ＶＢＬＸの瞬時値が中間電圧ＶＴＨｍよりも低くなると、比較結果信号ＳＡ，ＳＢの両方がハイレベルになる。その結果、検知結果信号ＤＥＴａがハイレベルになる。したがって、全体制御回路２１は、検知結果信号ＤＥＴａに基づいて、ビット線電圧ＶＢＬ，ＶＢＬＸの瞬時値が第１および第２の反転完了閾値電圧（ここでは、中間電圧ＶＴＨｍ）にそれぞれ到達したか否かを判定できる。
【０１２４】
《第１および第２の書込完了閾値電圧の設定》
検知回路２２（検知器２０１）の第１および第２の書込完了閾値電圧を設定する場合、全体制御回路２１は、閾値電圧制御信号ＰＲＴｔ１，ＥＲＴｔ１をローレベルにするとともに、書き込みデータ値ＷＤに応じて閾値電圧制御信号ＰＲＴｔ２，ＥＲＴｔ２のいずれか一方をハイレベルにして他方をローレベルにする。例えば、閾値電圧制御信号ＰＲＴｔ２がハイレベルであり、閾値電圧制御信号ＥＲＴｔ２がローレベルである場合、検知回路２２（検知器２０１）の第１および第２の書込完了閾値電圧は、それぞれ、インバータ２２４の閾値電圧（プログラム電圧ＶＴＨｐ）およびＮＡＮＤ回路２２６Ｘの閾値電圧（イレース電圧ＶＴＨｐ）に設定されたことになる。この場合、ビット線電圧ＶＢＬの瞬時値がプログラム電圧ＶＴＨｐよりも高くなるとともにビット線電圧ＶＢＬＸの瞬時値がイレース電圧ＶＴＨｅよりも低くなると、比較結果信号ＳＡ，ＳＢの両方がローレベルになる。その結果、検知結果信号ＤＥＴｂがローレベルになる。また、閾値電圧制御信号ＰＲＴｔ２がローレベルであり、閾値電圧制御信号ＥＲＴｔ２がハイレベルである場合、検知回路２２（検知器２０１）の第１および第２の書込完了閾値電圧は、それぞれ、ＮＡＮＤ回路２２６の閾値電圧（イレース電圧ＶＴＨｅ）およびインバータ２２４Ｘの閾値電圧（プログラム電圧ＶＴＨｐ）に設定されたことになる。この場合、ビット線電圧ＶＢＬの瞬時値がイレース電圧ＶＴＨｅよりも低くなるとともにビット線電圧ＶＢＬＸの瞬時値がプログラム電圧ＶＴＨｐより高くなると、比較結果信号ＳＡ，ＳＢの両方がローレベルになる。その結果、検知結果信号ＤＥＴｂがローレベルになる。したがって、全体制御回路２１は、検知結果信号ＤＥＴｂに基づいて、ビット線電圧ＶＢＬ，ＶＢＬＸの瞬時値が第１および第２の書込完了閾値電圧（ここでは、プログラム電圧ＶＴＨｐ，イレース電圧ＶＴＨｅ）にそれぞれ到達したか否かを判定できる。
【０１２５】
〔不揮発性半導体記憶装置の書込動作〕
次に、図３０を参照して、図２７に示した不揮発性半導体記憶装置２の書込動作について説明する。ここでは、書込動作の対象として同時に選択されるｎ個のメモリユニットＭＵ〜ＭＵの中のいずれか１個のメモリユニットＭＵに着目して説明する。
【０１２６】
《ＳＴ２０１》
まず、ロウ制御回路１２およびコラム制御回路１３は、全体制御回路２１による制御に応答して、書込動作の対象となるメモリユニットＭＵにリード動作を実行する。また、読み出し回路１４は、全体制御回路２１による制御に応答して、書込動作の対象となるメモリユニットＭＵに格納されたデータ値を読み出しデータ値ＲＤとして読み出す。
【０１２７】
《ＳＴ２０２》
次に、全体制御回路２１は、読み出しデータ値ＲＤに応じて検知回路２２の第１および第２の反転完了閾値電圧を設定する。例えば、全体制御回路２１は、検知回路２２の第１および第２の反転完了閾値電圧を中間電圧ＶＴＨｍに設定する。
【０１２８】
《ＳＴ２０３》
次に、ロウ制御回路１２およびコラム制御回路１３は、全体制御回路２１による制御に応答して、書込動作の対象となるメモリユニットＭＵに反転書込動作を実行する。
【０１２９】
《ＳＴ２０４》
次に、ロウ制御回路１２およびコラム制御回路１３は、全体制御回路２１による制御に応答して、書込動作の対象となるメモリユニットＭＵにリード動作を実行する。これにより、ビット線電圧ＶＢＬ，ＶＢＬＸは、フローティングゲートＦＧＴ，ＦＧＢの電荷量に応じてそれぞれ変動する。
【０１３０】
《ＳＴ２０５》
次に、検知回路２２は、全体制御回路２１による制御に応答して、ビット線電圧ＶＢＬ，ＶＢＬＸの瞬時値と第１および第２の反転完了閾値電圧とそれぞれ比較し、それらの比較結果に応じた検知結果信号ＤＥＴａを出力する。全体制御回路２１は、検知結果信号ＤＥＴａに基づいて、ビット線電圧ＶＢＬ，ＶＢＬＸの瞬時値が第１および第２の反転完了閾値電圧にそれぞれ到達しているか否かを判定する。ビット線電圧ＶＢＬ，ＶＢＬＸの瞬時値が第１および第２の反転完了閾値電圧にそれぞれ到達している場合には、ステップＳＴ２０６へ進み、そうでない場合には、ステップＳＴ２０３へ進む。
【０１３１】
《ＳＴ２０６》
次に、全体制御回路２１は、書き込みデータ値ＷＤに応じて検知回路２２の第１および第２の書込完了閾値電圧に設定する。例えば、全体制御回路２１は、書き込みデータ値ＷＤが“１”である場合には、ビット線電圧ＶＢＬに対応する第１の書込完了閾値電圧をプログラム電圧ＶＴＨｐに設定するとともにビット線電圧ＶＢＬＸに対応する第２の書込完了閾値電圧をイレース電圧ＶＴＨｅに設定し、書き込みデータ値ＷＤが“０”である場合には、ビット線電圧ＶＢＬに対応する第１の書込完了閾値電圧をイレース電圧ＶＴＨｅに設定するとともにビット線電圧ＶＢＬＸに対応する第２の書込完了閾値電圧をプログラム電圧ＶＴＨｐに設定する。
【０１３２】
《ＳＴ２０７》
次に、ロウ制御回路１２およびコラム制御回路１３は、全体制御回路２１による制御に応答して、書込動作の対象となるメモリユニットＭＵに通常書込動作を実行する。
【０１３３】
《ＳＴ２０８》
次に、ロウ制御回路１２およびコラム制御回路１３は、全体制御回路２１による制御に応答して、書込動作の対象となるメモリユニットＭＵにリード動作を実行する。これにより、ビット線電圧ＶＢＬ，ＶＢＬＸは、フローティングゲートＦＧＴ，ＦＧＢの電荷量に応じてそれぞれ変動する。
【０１３４】
《ＳＴ２０９》
次に、検知回路２２は、全体制御回路２１による制御に応答して、ビット線電圧ＶＢＬ，ＶＢＬＸの瞬時値と第１および第２の書込完了閾値電圧とをそれぞれ比較し、それらの比較結果に応じた検知結果信号ＤＥＴｂを出力する。全体制御回路２１は、検知結果信号ＤＥＴｂに基づいて、ビット線電圧ＶＢＬ，ＶＢＬＸの瞬時値が第１および第２の書込完了閾値電圧にそれぞれ到達したか否かを判定する。ビット線電圧ＶＢＬ，ＶＢＬＸの瞬時値が第１および第２の書込完了閾値電圧にそれぞれ到達している場合には、ロウ制御回路１２およびコラム制御回路１３は、全体制御回路２１による制御に応答して、書込動作の対象となるメモリユニットＭＵに対する通常書込動作を終了し、そうでない場合には、ステップＳＴ２０７に進む。
【０１３５】
〔動作タイミング〕
次に、図３１および図３２を参照して、図２７に示した不揮発性半導体記憶装置２の書込動作の動作タイミングについて説明する。図３１および図３２は、書込動作の対象となるメモリユニットＭＵに格納されたデータ値が“１”であり、書き込みデータ値ＷＤが“０”である場合の例を示す。
【０１３６】
時刻ｔ０〜ｔ１の期間では、全体制御回路２１は、スタンバイ制御信号ＳＴＢをハイレベルにする。これにより、ロウ制御回路１２およびコラム制御回路１３は、書込動作の対象となるメモリユニットＭＵにスタンバイ動作を実行する。
【０１３７】
時刻ｔ１になると、全体制御回路２１は、スタンバイ制御信号ＳＴＢをローレベルにするとともにリード制御信号ＲＥＡＤをハイレベルにする。これにより、ロウ制御回路１２およびコラム制御回路１３は、書込動作の対象となるメモリユニットＭＵにリード動作を実行する。また、読み出し回路１４は、全体制御回路２１からのラッチタイミング信号ＳＬＴ１に同期して、書込動作の対象となるメモリユニットＭＵに格納されたデータ値を読み出しデータ値ＲＤとして読み出す。
【０１３８】
時刻ｔ２になると、全体制御回路２１は、リード制御信号ＲＥＡＤをローレベルにするとともに反転書込制御信号ＳＷＴ１をハイレベルにする。これにより、ロウ制御回路１２およびコラム制御回路１３は、全体制御回路２１からのラッチタイミング信号ＳＬＴ２に同期して、書込動作の対象となるメモリユニットＭＵに反転書込動作（ここでは、イレース動作）を実行する。また、全体制御回路２１は、読み出しデータ値ＲＤに応じて検知回路２２の第１および第２の反転終了閾値電圧を中間電圧ＶＴＨｍに設定する。
【０１３９】
時刻ｔ３になると、全体制御回路２１は、リード制御信号ＲＥＡＤをハイレベルにする。これにより、ロウ制御回路１２およびコラム制御回路１３は、書込動作の対象となるメモリユニットＭＵにリード動作を実行する。また、時刻Ｒｔ１になると、検知回路２２は、全体制御回路２１から検知制御信号ＳＤＥＴに応答して、検知結果信号ＤＥＴａ，ＤＥＴｂを出力する。このとき、検知結果信号ＤＥＴａがローレベルであるので、全体制御回路２１は、ビット線電圧ＶＢＬ，ＶＢＬＸの瞬時値が第１および第２の反転完了閾値電圧にそれぞれ到達していないと判定する。
【０１４０】
時刻ｔ４になると、全体制御回路２１は、リード制御信号ＲＥＡＤをローレベルにする。これにより、ロウ制御回路１２およびコラム制御回路１３は、全体制御回路２１からのラッチタイミング信号ＳＬＴ２に同期して、書込動作の対象となるメモリユニットＭＵに反転書込動作を実行する。
【０１４１】
時刻ｔ５になると、全体制御回路２１は、リード制御信号ＲＥＡＤをハイレベルにする。これにより、ロウ制御回路１２およびコラム制御回路１３は、書込動作の対象となるメモリユニットＭＵにリード動作を実行する。また、時刻Ｒｔ２になると、検知回路２２は、全体制御回路２１から検知制御信号ＳＤＥＴに応答して、検知結果信号ＤＥＴａ，ＤＥＴｂを出力する。このとき、検知結果信号ＤＥＴａがハイレベルであるので、全体制御回路２１は、ビット線電圧ＶＢＬ，ＶＢＬＸの瞬時値が第１および第２の反転完了閾値電圧に到達していると判定する。
【０１４２】
時刻ｔ６になると、全体制御回路２１は、反転書込制御信号ＳＷＴ１をローレベルにするとともに通常書込制御信号ＳＷＴ２をハイレベルにする。これにより、ロウ制御回路１２およびコラム制御回路１３は、全体制御回路２１からのラッチタイミング信号ＳＬＴ２に同期して、書込動作の対象となるメモリユニットＭＵに通常書込動作（ここでは、イレース動作）を実行する。また、全体制御回路２１は、書き込みデータ値ＷＤが“０”であるので、検知回路２２の第１および第２の書込完了閾値電圧をイレース電圧ＶＴＨｅおよびイレース電圧ＶＴＨｐにそれぞれ設定する。
【０１４３】
時刻ｔ７になると、全体制御回路２１は、リード制御信号ＲＥＡＤをハイレベルにする。これにより、ロウ制御回路１２およびコラム制御回路１３は、書込動作の対象となるメモリユニットＭＵにリード動作を実行する。また、時刻Ｒｔ３になると、検知回路２２は、全体制御回路２１から検知制御信号ＳＤＥＴに応答して、検知結果信号ＤＥＴａ，ＤＥＴｂを出力する。このとき、検知結果信号ＤＥＴｂがハイレベルであるので、全体制御回路２１は、ビット線電圧ＶＢＬ，ＶＢＬＸの瞬時値が第１および第２の書込完了閾値電圧にそれぞれ到達していないと判定する。
【０１４４】
時刻ｔ８になると、全体制御回路２１は、リード制御信号ＲＥＡＤをローレベルにする。これにより、ロウ制御回路１２およびコラム制御回路１３は、全体制御回路２１からのラッチタイミング信号ＳＬＴ２に同期して、書込動作の対象となるメモリユニットＭＵに通常書込動作を実行する。
【０１４５】
時刻ｔ９になると、全体制御回路２１は、リード制御信号ＲＥＡＤをハイレベルにする。これにより、ロウ制御回路１２およびコラム制御回路１３は、書込動作の対象となるメモリユニットにリード動作を実行する。また、時刻Ｒｔ４になると、検知回路２２は、全体制御回路２１から検知制御信号ＳＤＥＴに応答して、検知結果信号ＤＥＴａ，ＤＥＴｂを出力する。このとき、検知結果信号ＤＥＴｂがローレベルであるので、全体制御回路２１は、ビット線電圧ＶＢＬ，ＶＢＬＸの瞬時値が第１および第２の書込完了閾値電圧にそれぞれ到達していると判定する。
【０１４６】
時刻ｔ１０になると、全体制御回路２１は、リード制御信号ＲＥＡＤおよび通常書込制御信号ＳＷＴ２をローレベルにするとともにスタンバイ制御信号ＳＴＢをハイレベルにする。これにより、ロウ制御回路１２およびコラム制御回路１３は、書込動作の対象となるメモリユニットＭＵにスタンバイ動作を実行する。
【０１４７】
〔検知回路による検知処理〕
次に、図３３を参照して、検知回路２２による検知処理について説明する。図３３は、書込動作の対象となるメモリユニットＭＵに格納されたデータ値が“１”であり、書き込みデータ値ＷＤが“０”である場合の例を示す（図３３は、図３１および図３２に対応している）。図中、実線波形は、ビット線電圧ＶＢＬの波形を示し、点線波形は、ビット線電圧ＶＢＬＸの波形を示す。
【０１４８】
時刻ｔ１〜ｔ２の期間（リード動作期間）において、時刻Ｒｔ０になると、読み出し回路１４は、全体制御回路２１による制御に応答して、書込動作の対象となるメモリユニットＭＵに格納されたデータ値を読み出しデータ値ＲＤとして読み出す。ここでは、読み出しデータ値ＲＤが“１”であるので、全体制御回路２１は、閾値電圧制御信号ＰＲＴｔ１をハイレベルにするとともに閾値電圧制御信号ＥＲＴｔ１，ＰＲＴｔ２，ＥＲＴｔ２をローレベルにする。これにより、検知回路２２の第１および第２の反転完了閾値電圧は、中間電圧ＶＴＨｍに設定される。
【０１４９】
時刻ｔ２〜ｔ３の期間では、ロウ制御回路１２およびコラム制御回路１３は、書込動作の対象となるメモリユニットＭＵに反転書込動作（ここでは、イレース動作）を実行する。これにより、書込動作の対象となるメモリユニットＭＵでは、フローティングゲートＦＧＴから電荷が放出され、フローティングゲートＦＧＢに電荷が注入される。
【０１５０】
時刻ｔ３〜ｔ４の期間（リード動作期間）において、時刻Ｒｔ１になると、全体制御回路２１は、検知制御信号ＳＤＥＴをハイレベルにする。このとき、ビット線電圧ＶＢＬの瞬時値が中間電圧ＶＴＨｍよりも高く、ビット線電圧ＶＢＬＸの瞬時値が中間電圧ＶＴＨｍよりも低いので、検知回路２２は、検知結果信号ＤＥＴａをローレベルにする。したがって、全体制御回路２１は、ロウ制御回路１２およびコラム制御回路１３に反転書込動作を再開させる。
【０１５１】
時刻ｔ４〜ｔ５の期間では、ロウ制御回路１２およびコラム制御回路１３は、書込動作の対象となるメモリユニットＭＵに反転書込動作を再び実行する。これにより、書込動作の対象となるメモリユニットＭＵでは、フローティングゲートＦＧＴから電荷がさらに放出され、フローティングゲートＦＧＢに電荷がさらに注入される。
【０１５２】
時刻ｔ５〜ｔ６の期間（リード動作期間）において、時刻Ｒｔ２になると、全体制御回路２１は、検知制御信号ＳＤＥＴをハイレベルにする。このとき、ビット線電圧ＶＢＬの瞬時値が中間電圧ＶＴＨｍよりも低く、ビット線電圧ＶＢＬＸの瞬時値が中間電圧ＶＴＨｍよりも高いので、検知回路２２は、検知結果信号ＤＥＴａをハイレベルにする。したがって、全体制御回路２１は、ロウ制御回路１２およびコラム制御回路１３に通常書込動作（ここでは、イレース動作）を開始させる。また、ここでは、書き込みデータ値ＷＤが“０”であるので、全体制御回路２１は、閾値電圧制御信号ＥＲＴｔ２をハイレベルにするとともに閾値電圧制御信号ＰＲＴｔ１，ＥＲＴｔ１，ＰＲＴｔ２をローレベルにする。これにより、検知回路２２の第１および第２の書込完了閾値電圧は、イレース電圧ＶＴＨｅおよびプログラム電圧ＶＴＨｐにそれぞれ設定される。
【０１５３】
時刻ｔ６〜ｔ７の期間では、ロウ制御回路１２およびコラム制御回路１３は、書込動作の対象となるメモリユニットＭＵに通常書込動作を実行する。これにより、書込動作の対象となるメモリユニットＭＵでは、フローティングゲートＦＧＴから電荷がさらに放出され、フローティングゲートＦＧＢに電荷がさらに注入される。
【０１５４】
時刻ｔ７〜ｔ８の期間（リード動作期間）において、時刻Ｒｔ３になると、全体制御回路２１は、検知制御信号ＳＤＥＴをハイレベルにする。このとき、ビット線電圧ＶＢＬの瞬時値がイレース電圧ＶＴＨｅよりも高く、ビット線電圧ＶＢＬＸの瞬時値がプログラム電圧ＶＴＨｐよりも低いので、検知回路２２は、検知結果信号ＤＥＴｂをハイレベルにする。したがって、全体制御回路２１は、ロウ制御回路１２およびコラム制御回路１３に通常書込動作を再開させる。
【０１５５】
時刻ｔ８〜ｔ９の期間では、ロウ制御回路１２およびコラム制御回路１３は、書込動作の対象となるメモリユニットＭＵに通常書込動作を再び実行する。これにより、書込動作の対象となるメモリユニットＭＵでは、フローティングゲートＦＧＴから電荷がさらに放出され、フローティングゲートＦＧＢに電荷がさらに注入される。
【０１５６】
時刻ｔ９〜ｔ１０の期間（リード動作期間）において、時刻Ｒｔ４になると、全体制御回路２１は、検知制御信号ＳＤＥＴをハイレベルにする。このとき、ビット線電圧ＶＢＬの瞬時値がイレース電圧ＶＴＨｅよりも低く、ビット線電圧ＶＢＬＸがプログラム電圧ＶＴＨｐよりも高いので、検知回路２２は、検知結果信号ＤＥＴｂをローレベルにする。したがって、全体制御回路２１は、ロウ制御回路１２およびコラム制御回路１３に通常書込動作を終了させる。
【０１５７】
図３４は、書込動作の対象となるメモリユニットＭＵに格納されたデータ値が“１”であり、書き込みデータ値ＷＤが“１”である場合の例を示す。この場合、時刻ｔ１〜ｔ５の期間における動作は、図３３の場合と同様である。一方、時刻ｔ５〜ｔ１０の期間における動作は、次のようになる。
【０１５８】
時刻ｔ５〜ｔ６の期間では、全体制御回路２１は、書き込みデータ値ＷＤが“１”であるので、閾値電圧制御信号ＰＲＴｔ２をハイレベルにするとともに閾値電圧制御信号ＰＲＴｔ１，ＥＲＴｔ１，ＥＲＴｔ２をローレベルにする。これにより、検知回路２２の第１および第２の書込完了閾値電圧は、プログラム電圧ＶＴＨｐおよびイレース電圧ＶＴＨｅにそれぞれ設定される。また、ロウ制御回路１２およびコラム制御回路１３に通常書込動作（ここでは、プログラム動作）を開始させる。
【０１５９】
時刻ｔ６〜ｔ７の期間では、ロウ制御回路１２およびコラム制御回路１３は、書込動作の対象となるメモリユニットＭＵに通常書込動作を実行する。これにより、書込動作の対象となるメモリユニットＭＵでは、フローティングゲートＦＧＴに電荷が注入され、フローティングゲートＦＧＢから電荷が放出される。
【０１６０】
時刻ｔ７〜ｔ８の期間（リード動作期間）において、時刻Ｒｔ３になると、全体制御回路２１は、検知制御信号ＳＤＥＴをハイレベルにする。このとき、ビット線電圧ＶＢＬの瞬時値がプログラム電圧ＶＴＨｐよりも低く、ビット線電圧ＶＢＬＸの瞬時値がイレース電圧ＶＴＨｅよりも高いので、検知回路２２は、検知結果信号ＤＥＴｂをハイレベルにする。したがって、全体制御回路２１は、ロウ制御回路１２およびコラム制御回路１３に通常書込動作を再開させる。
【０１６１】
時刻ｔ８〜ｔ９の期間では、ロウ制御回路１２およびコラム制御回路１３は、書込動作の対象となるメモリユニットＭＵに通常書込動作を実行する。これにより、書込動作の対象となるメモリユニットＭＵでは、フローティングゲートＦＧＴに電荷がさらに注入される、フローティングゲートＦＧＢから電荷がさらに放出される。
【０１６２】
時刻ｔ９〜ｔ１０の期間（リード動作期間）において、時刻Ｒｔ４になると、全体制御回路２１は、検知制御信号ＳＤＥＴをハイレベルにする。このとき、ビット線電圧ＶＢＬの瞬時値がプログラム電圧ＶＴＨｐよりも高く、ビット線電圧ＶＢＬＸがイレース電圧ＶＴＨｅよりも低いので、検知回路２２は、検知結果信号ＤＥＴｂをローレベルにする。したがって、全体制御回路２１は、ロウ制御回路１２およびコラム制御回路１３に通常書込動作を終了させる。
【０１６３】
以上のように、反転書込動作とリード動作の繰り返しによって書込動作の対象となるメモリユニットＭＵのフローティングゲートＦＧＴ，ＦＧＢの電荷量を中間量を近づけることができる。その後、通常書込動作とリード動作の繰り返しによって書込動作の対象となるメモリユニットＭＵのフローティングゲートＦＧＴ，ＦＧＢの電荷量を中間量から書き込みデータ値ＷＤに応じた電荷量に近づけることができる。したがって、書込動作の対象となるメモリユニットＭＵにおける過消去および過書込を回避できる。また、反転書込動作および通常書込動作のいずれの場合においても、メモリユニットＭＵのフローティングゲートＦＧＴ，ＦＧＢのうち一方のフローティングゲートから電荷を放出させる動作と他方のフローティングゲートに電荷を注入する動作とが同時に実行される。したがって、書込動作の対象となるメモリユニットＭＵのフローティングゲートＦＧＴ，ＦＧＢの両方に電荷を注入した後に書き込みデータ値ＷＤに応じてフローティングゲートＦＧＴ，ＦＧＢのいずれか一方のフローティングゲートから電荷を放出させる場合よりも、書込時間を短縮できる。
【０１６４】
また、ビット線電圧ＶＢＬ，ＶＢＬＸと第１および第２の反転完了閾値電圧との比較結果に基づいて反転書込動作の実行期間を管理することにより、書込動作の対象となるメモリユニットＭＵのフローティングゲートＦＧＴ，ＦＧＢの電荷量を中間量に正確に近づけることができる。さらに、ビット線電圧ＶＢＬ１，ＶＢＬＸと第１および第２の書込完了閾値電圧との比較結果に基づいて通常書込動作の実行期間を管理することにより、書込動作の対象となるメモリユニットＭＵのフローティングゲートＦＧＴ，ＦＧＢの電荷量を書き込みデータ値ＷＤに応じた電荷量に正確に近づけることができる。
【０１６５】
なお、図２７に示した不揮発性半導体記憶装置２において、メモリアレイ１００は、図２３のようにｍ×ｎ本のロウ制御線ＥＧＷＬ１−１〜ＥＧＷＬｍ−ｎを含んでいても良い。この場合、メモリ制御回路２０は、ロウ制御回路１２およびコラム制御回路１３に代えて、ロウ制御回路１２ａおよびコラム制御回路１３ａを含んでいても良い。
【０１６６】
また、図２７に示した不揮発性半導体記憶装置２は、ｐ個のメモリアレイ１００１〜１００ｐを備えていても良い。この場合、メモリ制御回路２０は、全体制御回路２１と、ｐ個のメモリアレイ１００１〜１００ｐにそれぞれ対応するｐ個の検知回路２２〜２２と、図２６に示したロウ制御回路１２ｂ，コラム制御回路１３１〜１３ｐ，読み出し回路１４１〜１４ｐ，ＥＧＷＬ発生器１５１〜１５ｐ，およびコラム選択回路１６とを備えていても良い。また、全体制御回路２１は、図２６に示した全体制御回路１１ｂの動作と同様の動作を実行しても良い。
【０１６７】
（電荷量調整動作）
フローティングゲートＦＧＴ，ＦＧＢに電荷が注入される速度（電荷注入速度）とフローティングゲートＦＧＴ，ＦＧＢから電荷が放出される速度（電荷放出速度）とが互いに異なる場合、実施形態１，２による不揮発性半導体記憶装置において、反転書込動作期間と通常書込動作期間との間の期間において、電荷注入速度と電荷放出速度との速度差に応じてフローティングゲートＦＧＴ，ＦＧＢの電荷量を調整する動作（電荷量調整動作）が実行されても良い。この場合、全体制御回路１１（または、全体制御回路２１）は、書込動作の対象となるメモリユニットＭＵに電荷量調整動作を実行するように、ロウ制御回路１２およびコラム制御回路１３を制御しても良い。例えば、全体制御回路１１（または、全体制御回路２１）は、電荷量調整制御信号をコラム制御回路１３に供給しても良い。
【０１６８】
電荷放出速度が電荷注入速度より速い場合、電荷量調整動作として同時プログラム動作が実行されても良い。同時プログラム動作とは、書込動作の対象となるメモリユニットＭＵのフローティングゲートＦＧＴ，ＦＧＢの両方に電荷を注入する動作のことである。この場合、ロウ制御回路１２は、全体制御回路１１（または、全体制御回路２１）による制御に応答して、書込動作の対象となるメモリユニットＭＵに対応するロウ制御線ＣＧＷＬＰＡ，ＣＧＷＬＰＢ，ＣＧＷＬ，ＲＧＷＬ，ＥＧＷＬに制御電圧ＶＭ，ＶＤＤＨ，ＶＤＤＨ，ＶＳＳ，ＶＰＰをそれぞれ印加し、コラム制御回路１３は、全体制御回路１１（または、全体制御回路２１）による制御に応答して、書込動作の対象となるメモリユニットＭＵに対応するコラム制御線ＣＧＤＴ，ＣＧＤＴＰ，ＣＧＤＢＰ，ＣＧＤＢに制御電圧ＶＤＤＨ，ＶＰＰ，ＶＰＰ，ＶＤＤＨをそれぞれ印加しても良い。
【０１６９】
一方、電荷放出速度が電荷注入速度よりも遅い場合、電荷量調整動作として同時イレース動作が実行されても良い。同時イレース動作とは、書込動作の対象となるメモリユニットＭＵのフローティングゲートＦＧＴ，ＦＧＢの両方から電荷を放出する動作のことである。この場合、ロウ制御回路１２は、全体制御回路１１（または、全体制御回路２１）による制御に応答して、書込動作の対象となるメモリユニットＭＵに対応するロウ制御線ＣＧＷＬＰＡ，ＣＧＷＬＰＢ，ＣＧＷＬ，ＲＧＷＬ，ＥＧＷＬに制御電圧ＶＭ，ＶＤＤＨ，ＶＤＤＨ，ＶＳＳ，ＶＰＰをそれぞれ印加し、コラム制御回路１３は、全体制御回路１１（または、全体制御回路２１）による制御に応答して、書込動作の対象となるメモリユニットＭＵに対応するコラム制御線ＣＧＤＴ，ＣＧＤＴＰ，ＣＧＤＢＰ，ＣＧＤＢに制御電圧ＶＳＳ，ＶＳＳ，ＶＳＳ，ＶＳＳをそれぞれ印加しても良い。
【０１７０】
〔実施形態１の書込動作の変形例１〕
次に、図３５を参照して、実施形態１による不揮発性半導体記憶装置の書込動作の変形例（電荷量調整動作）について説明する。ここでは、書込動作の対象として同時に選択されるｎ個のメモリユニットＭＵ〜ＭＵの中のいずれか１個のメモリユニットＭＵに着目して説明する。
【０１７１】
《ＳＴ１０１〜ＳＴ１０３》
ロウ制御回路１２およびコラム制御回路１３は、書込動作の対象となるメモリユニットＭＵにリード動作を実行し、読み出し回路１４は、書込動作の対象となるメモリユニットＭＵに格納されたデータ値を読み出しデータ値ＲＤとして読み出す（ＳＴ１０１）。次に、ロウ制御回路１２およびコラム制御回路１３は、読み出しデータ値ＲＤに応じて書込動作の対象となるメモリユニットＭＵに反転書込動作を実行する（ＳＴ１０２）。次に、全体制御回路１１は、反転書込動作が開始されてから反転書込時間が経過したか否かを判定する（ＳＴ１０３）。反転書込時間が経過している場合には、ステップＳＴ１１１へ進み、そうでない場合には、ステップＳＴ１０２へ進む。
【０１７２】
《ＳＴ１１１》
次に、ロウ制御回路１２およびコラム制御回路１３は、全体制御回路１１による制御に応答して、書込動作の対象となるメモリユニットＭＵに電荷量調整動作を実行する。例えば、電荷放出速度が電荷注入速度よりも速い場合には、電荷量調整動作として同時プログラム動作が実行され、電荷放出速度が電荷注入速度よりも遅い場合には、電荷量調整動作として同時イレース動作が実行される。また、全体制御回路１１は、書込動作の対象となるメモリユニットＭＵに対する電荷量調整動作の開始からの経過時間を計測する。
【０１７３】
《ＳＴ１１２》
次に、全体制御回路１１は、書込動作の対象となるメモリユニットＭＵに対する電荷量調整動動作が開始されてから電荷量調整時間（予め設定された時間）が経過したか否かを判断する。電荷量調整時間が経過している場合には、ステップＳＴ１０４へ進み、そうでない場合には、ステップＳＴ１１１へ進む。
【０１７４】
《ＳＴ１０４，ＳＴ１０５》
次に、ロウ制御回路１２およびコラム制御回路１３は、全体制御回路１１による制御に応答して、書込動作の対象となるメモリユニットＭＵに通常書込動作を実行し（ＳＴ１０４）、全体制御回路１１は、通常書込動作が開始されてから通常書込時間が経過したか否かを判定する（ＳＴ１０５）。ここでは、通常書込時間は、通常書込動作によってメモリユニットＭＵのフローティングゲートＦＧＴ，ＦＧＢが第２の中間状態から最終状態（プログラム状態、またはイレース状態）に変化するまでに要する時間であっても良い。
【０１７５】
〔動作タイミング〕
次に、図３６を参照して、実施形態１による不揮発性半導体記憶装置の書込動作の変形例（電荷量調整動作）の動作タイミングについて説明する。図中、黒丸は、ビット線電圧ＶＢＬの瞬時値を示し、白丸は、ビット線電圧ＶＢＬＸの瞬時値を示す。図３６は、電荷放出速度が電荷注入速度よりも速く、書込動作の対象となるメモリユニットＭＵに格納されたデータ値が“１”であり、書き込みデータ値ＷＤが“０”である場合の例を示す。
【０１７６】
図２０の場合と同様に、時刻ｔ１〜ｔ２の期間では、書込動作の対象となるメモリユニットＭＵに格納されたデータ値が読み出しデータ値ＲＤとして読み出され、時刻ｔ２〜ｔ３の期間では、ロウ制御回路１２およびコラム制御回路１３は、書込動作の対象となるメモリユニットＭＵに反転書込動作（ここでは、イレース動作）を実行する。これにより、書込動作の対象となるメモリユニットＭＵでは、フローティングゲートＦＧＴから電荷が放出され、フローティングゲートＦＧＢに電荷が注入される。ここでは、反転書込時間Ｐ１は、反転書込動作によってメモリユニットＭＵのフローティングゲートＦＧＴ，ＦＧＢが初期状態（プログラム状態、またはイレース状態）から第１の中間状態（第１の中間電圧ＶＴＨａに対応する電荷量を蓄積している状態）に変化するまでに要する時間であっても良い。例えば、第１の中間電圧ＶＴＨａは、プログラム状態であるフローティングゲートＦＧＴ（または、ＦＧＢ）から電荷を放出する動作とイレース状態であるフローティングゲートＦＧＢ（または、ＦＧＴ）に電荷を注入する動作とを同時に開始した場合に、フローティングゲートＦＧＴ，ＦＧＢの電荷量が互いに等しくなるときのビット線電圧ＶＢＬ（または、ＶＢＬＸ）の瞬時値に相当する。
【０１７７】
時刻ｔ３になると、全体制御回路１１は、反転書込制御信号ＳＷＴ１をローレベルにするとともに電荷量調整制御信号ＳＷＴ３をハイレベルにする。これにより、ロウ制御回路１２およびコラム制御回路１３は、全体制御回路１１からのラッチタイミング信号ＳＬＴ２に同期して、書込動作の対象となるメモリユニットＭＵに対する電荷量調整動作（ここでは、同時プログラム動作）を開始する。これにより、書込動作の対象となるメモリユニットＭＵでは、フローティングゲートＦＧＴ，ＦＧＢの両方に電荷が注入される。
【０１７８】
時刻ｔ３から電荷量調整時間Ｐ３が経過すると（すなわち、時刻ｔ４になると）、全体制御回路１１は、電荷量調整制御信号ＳＷＴ３をローレベルにするとともに通常書込制御信号ＳＷＴ２をハイレベルにする。これにより、ロウ制御回路１２およびコラム制御回路１３は、全体制御回路１１からのラッチタイミング信号ＳＬＴ２に同期して、書込動作の対象となるメモリユニットＭＵに対する通常書込動作（ここでは、イレース動作）を開始する。ここでは、電荷量調整時間Ｐ３は、電荷量調整動作によってメモリユニットＭＵのフローティングゲートＦＧＴ，ＦＧＢが第１の中間状態から第２の中間状態（第２の中間電圧ＶＴＨｂに対応する電荷量を蓄積している状態）に変化するまでに要する時間であっても良い。例えば、ビット線電圧ＶＢＬ，ＶＢＬＸの瞬時値が第２の中間電圧ＶＴＨｂである場合、フローティングゲートＦＧＴ（または、ＦＧＢ）から電荷を放出する動作とフローティングゲートＦＧＢ（または、ＦＧＴ）に電荷を注入する動作とを同時に実行すると、フローティングゲートＦＧＴ（または、ＦＧＢ）がイレース状態になると同時にフローティングゲートＦＧＢ（または、ＦＧＴ）がプログラム状態になる。
【０１７９】
次に、図２０の場合と同様に、時刻ｔ４〜ｔ５の期間では、ロウ制御回路１２およびコラム制御回路１３は、書込動作の対象となるメモリユニットＭＵに反転書込動作（ここでは、イレース動作）を実行する。これにより、書込動作の対象となるメモリユニットＭＵでは、フローティングゲートＦＧＴから電荷が放出され、フローティングゲートＦＧＢに電荷が注入される。
【０１８０】
また、図３７のように電荷放出速度が電荷注入速度よりも遅い場合、時刻ｔ３〜ｔ４では、ロウ制御回路１２およびコラム制御回路１３は、書込動作の対象となるメモリユニットＭＵに同時イレース動作を実行する。なお、図３７は、書込動作の対象となるメモリユニットＭＵに格納されたデータ値は“１”であり、書き込みデータ値ＷＤは“０”である場合の例を示す。なお、ここでは、反転書込時間Ｐ１は、反転書込動作によってメモリユニットＭＵのフローティングゲートＦＧＴ，ＦＧＢが初期状態（プログラム状態、またはイレース状態）から第３の中間状態（第３の中間電圧ＶＴＨｃに対応する電荷量を蓄積している状態）に変化するまでに要する時間であっても良い。例えば、第３の中間電圧ＶＴＨｃは、プログラム状態であるフローティングゲートＦＧＴ（または、ＦＧＢ）から電荷を放出する動作とイレース状態であるフローティングゲートＦＧＢ（または、ＦＧＴ）に電荷を注入する動作とを同時に開始した場合に、フローティングゲートＦＧＴ，ＦＧＢの電荷量が互いに等しくなるときのビット線電圧ＶＢＬ（または。ＶＢＬＸ）の瞬時値に相当する。また、電荷量調整時間Ｐ３は、電荷量調整動作によってメモリユニットＭＵのフローティングゲートＦＧＴ，ＦＧＢが第３の中間状態から第４の中間状態（第４の中間電圧ＶＴＨｄに対応する電荷量を蓄積している状態）に変化するまでに要する時間であっても良い。例えば、ビット線電圧ＶＢＬ，ＶＢＬＸの瞬時値が第４の中間電圧ＶＴＨｄである場合、フローティングゲートＦＧＴ（または、ＦＧＢ）から電荷を放出する動作とフローティングゲートＦＧＢ（または、ＦＧＴ）に電荷を注入する動作とを同時に実行すると、フローティングゲートＦＧＴ（または、ＦＧＢ）がイレース状態になると同時にフローティングゲートＦＧＢ（または、ＦＧＴ）がプログラム状態になる。
【０１８１】
以上のように、反転書込動作期間と通常書込動作期間との間の期間において電荷量調整動作を実行することにより、電荷注入速度と電荷放出速度とが互いに異なる場合であっても、通常書込動作によって書込動作の対象となるメモリユニットＭＵのフローティングゲートＦＧＴ，ＦＧＢの電荷量を書き込みデータ値ＷＤに応じた電荷量に近づけることができる。したがって、書込動作の対象となるメモリユニットＭＵに書き込みデータ値ＷＤを正確に書き込むことができる。
【０１８２】
なお、図２５に示した不揮発性半導体記憶装置や図２６に示した不揮発性半導体記憶装置においても、書込動作期間と通常書込時間期間との間に電荷量調整動作期間（電荷量調整動作が実行される期間）が設けられても良い。
【０１８３】
〔実施形態２の書込動作の変形例〕
実施形態２による不揮発性半導体記憶装置において電荷量調整動作を実行する場合、検知回路２２は、全体制御回路２１による制御に応答して、ｎ個のメモリユニット列（ｎ組のビット線ＢＬ，ＢＬＸの組合せ）の各々に対して第１および第２の調整完了閾値電圧を設定しても良い。また、検知回路２２は、ｎ個のメモリユニット列の各々についてビット線電圧ＶＢＬ，ＶＢＬＸの瞬時値が第１および第２の調整完了閾値電圧（電荷量調整動作の完了を判定するための閾値電圧）に到達したことを検知しても良い。例えば、検知回路２２は、ビット線電圧ＶＢＬ，ＶＢＬＸの瞬時値と第１および第２の調整完了閾値電圧とを比較し、その比較結果に応じた検知結果信号ＤＥＴｘを出力しても良い。
【０１８４】
次に、図３８および図３９を参照して、実施形態２による不揮発性半導体記憶装置の書込動作の変形例（電荷量調整動作）について説明する。ここでは、書込動作の対象として同時に選択されるｎ個のメモリユニットＭＵ〜ＭＵの中のいずれか１個のメモリユニットＭＵに着目して説明する。
【０１８５】
《ＳＴ２０１〜ＳＴ２０５》
ロウ制御回路１２およびコラム制御回路１３は、書込動作の対象となるメモリユニットＭＵにリード動作を実行し、読み出し回路１４は、書込動作の対象となるメモリユニットＭＵに格納されたデータ値を読み出しデータ値ＲＤとして読み出す（ＳＴ２０１）。次に、全体制御回路２１は、読み出しデータ値ＲＤに応じて検知回路２２の第１および第２の反転完了閾値電圧を設定する（ＳＴ２０２）。次に、全体制御回路２１は、ビット線電圧ＶＢＬ，ＶＢＬＸの瞬時値が第１および第２の反転完了閾値電圧にそれぞれ到達していると判定するまで、ロウ制御回路１２およびコラム制御回路１３に反転書込動作およびリード動作を繰り返し実行させる（ＳＴ２０３，ＳＴ２０４，ＳＴ２０５）。ビット線電圧ＶＢＬ，ＶＢＬＸの瞬時値が第１および第２の反転完了閾値電圧にそれぞれ到達していると判定された場合には、ステップＳＴ２１１へ進む。
【０１８６】
《ＳＴ２１１》
次に、全体制御回路２１は、検知回路２２の第１および第２の調整完了閾値電圧を設定する。
【０１８７】
《ＳＴ２１２》
次に、ロウ制御回路１２およびコラム制御回路１３は、全体制御回路２１による制御に応答して、書込動作の対象となるメモリユニットＭＵに電荷量調整動作を実行する。例えば、電荷放出速度が電荷注入速度よりも速い場合には、電荷量調整動作として同時プログラム動作が実行され、電荷放出速度が電荷注入速度よりも遅い場合には、電荷量調整動作として同時イレース動作が実行される。
【０１８８】
《ＳＴ２１３》
次に、ロウ制御回路１２およびコラム制御回路１３は、全体制御回路２１による制御に応答して、書込動作の対象となるメモリユニットＭＵにリード動作を実行する。これにより、ビット線電圧ＶＢＬ，ＶＢＬＸは、フローティングゲートＦＧＴ，ＦＧＢに蓄積された電荷に応じてそれぞれ変動する。
【０１８９】
《ＳＴ２１４》
次に、検知回路２２は、全体制御回路２１による制御に応答して、ビット線電圧ＶＢＬ，ＶＢＬＸの瞬時値と第１および第２の調整完了閾値電圧とをそれぞれ比較し、それらの比較結果に応じた検知結果信号ＤＥＴｘを出力する。全体制御回路２１は、検知結果信号ＤＥＴｘに基づいて、ビット線電圧ＶＢＬ，ＶＢＬＸの瞬時値が第１および第２の調整完了閾値電圧にそれぞれ到達したか否かを判定する。ビット線電圧ＶＢＬ，ＶＢＬＸの瞬時値が第１および第２の調整完了閾値電圧にそれぞれ到達している場合には、ステップＳＴ２０６へ進み、そうでない場合には、ステップＳＴ２１２へ進む。
【０１９０】
《ＳＴ２０６〜ＳＴ２０９》
次に、全体制御回路２１は、書き込みデータ値ＷＤに応じて検知回路２２の第１および第２の書込完了閾値電圧を設定する（ＳＴ２０６）。次に、全体制御回路２１は、ビット線電圧ＶＢＬ，ＶＢＬＸの瞬時値が第１および第２の書込完了閾値電圧に到達していると判定するまで、ロウ制御回路１２およびコラム制御回路１３に通常書込動作およびリード動作を繰り返し実行させる（ＳＴ２０７，ＳＴ２０８，ＳＴ２０９）。ビット線電圧ＶＢＬ，ＶＢＬＸの瞬時値が第１および第２の書込完了閾値電圧に到達していると判定された場合には、通常書込動作を終了する。
【０１９１】
〔検知器の変形例１〕
電荷量調整動作として同時プログラム動作が実行される場合、検知回路２２は、図２９に示した検知器２０１に代えて、図４０に示した検知器２０１ａを含んでいても良い。検知器２０１ａは、図２９に示した検知器２０１の構成に加えて、比較部２１３，２１３Ｘと、判定部２１２ａとを含む。比較部２１３，２１３Ｘは、それぞれ、全体制御回路２１からの閾値電圧制御信号ＰＲＴｔｘに応答して、ビット線電圧ＶＢＬ，ＶＢＬＸとの比較対象となる第１および第２の調整完了閾値電圧を設定する。また、比較部２１３，２１３Ｘは、それぞれ、全体制御回路２１からの検知制御信号ＳＤＥＴ（図示を省略）に応答して、ビット線電圧ＶＢＬ，ＶＢＬＸと第１および第２の調整完了閾値電圧とを比較する。判定部２１２ａは、全体制御回路２１からの検知制御信号ＳＤＥＴに応答して、比較部２１３，２１３Ｘの比較結果（比較結果信号ＳＣ，ＳＤ）に応じた検知結果（検知結果信号ＤＥＴｘ）を出力する。
【０１９２】
比較部２１３，２１３Ｘは、それぞれ、ＮＡＮＤ回路２４１，２４１Ｘを含み、判定部２１２ａは、ＮＯＲ回路２３２と、インバータ２３３とを含んでいても良い。これらの回路は、検知制御信号ＳＤＥＴがハイレベルである場合には駆動状態となり、検知結果信号ＳＤＥＴがローレベルである場合には停止状態となる。ここでは、インバータ２１１，２１１Ｘの閾値電圧は、第１の中間電圧ＶＴＨａに設定され、ＮＡＮＤ回路２２３，２２３Ｘの閾値電圧は、第１の中間電圧ＶＴＨａに設定される。ＮＡＮＤ回路２４１，２４１Ｘの閾値電圧は、第２の中間電圧ＶＴＨｂに設定される。
【０１９３】
《第１および第２の調整完了閾値電圧の設定》
検知回路２２（検知器２０１）の第１および第２の調整完了閾値電圧を設定する場合、全体制御回路２１は、閾値電圧制御信号ＰＲＴｔｘをハイレベルにするとともに閾値電圧制御信号ＰＲＴｔ１，ＥＲＴｔ２，ＰＲＴｔ２，ＥＲＴｔ２をローレベルにする。これにより、検知回路２２（検知器２０１）の第１および第２の調整完了閾値電圧は、それぞれ、ＮＡＮＤ回路２４１，２４１Ｘの閾値電圧（第２の中間電圧ＶＴＨｂ）に設定されたことになる。この場合、ビット線電圧ＶＢＬ，ＶＢＬＸの瞬時値の両方が第２の中間電圧ＶＴＨｂよりも高くなると、比較結果信号ＳＣ，ＳＤの両方がローレベルになる。その結果、検知結果信号ＤＥＴｘがローレベルになる。したがって、全体制御回路２１は、検知結果信号ＤＥＴｘに基づいて、ビット線電圧ＶＢＬ，ＶＢＬＸの瞬時値の両方が第１および第２の調整完了閾値電圧（ここでは、第２の中間電圧ＶＴＨｂ）にそれぞれ到達したか否かを判定できる。
【０１９４】
〔動作タイミング〕
次に、図４１を参照して、実施形態２による不揮発性半導体記憶装置の書込動作の変形例（電荷量調整動作）の動作タイミングについて説明する。図中、黒丸は、ビット線電圧ＶＢＬの瞬時値を示し、白丸は、ビット線電圧ＶＢＬＸの瞬時値を示す。図４１は、電荷放出速度が電荷注入速度よりも速く、書込動作の対象となるメモリユニットＭＵに格納されたデータ値が“１”であり、書き込みデータ値ＷＤが“０”である場合の例を示す。ここでは、全体制御回路２１および検知回路２２の動作に着目して説明する。
【０１９５】
時刻ｔ１になると、読み出しデータ値ＲＤが読み出される。全体制御回路２１は、読み出しデータ値ＲＤが“１”であるので、閾値電圧制御信号ＰＲＴｔ１をハイレベルにするとともに閾値電圧制御信号ＥＲＴｔ１，ＰＲＴｔ２，ＥＲＴｔ２，ＰＲＴｔｘをローレベルにする。したがって、検知回路２２の第１および第２の反転完了閾値電圧は、第１の中間電圧ＶＴＨａに設定される。また、全体制御回路２１は、反転書込動作が開始されるように、ロウ制御回路１２およびコラム制御回路１３を制御する。
【０１９６】
時刻ｔ２では、ビット線電圧ＶＢＬの瞬時値が第１の中間電圧ＶＴＨａよりも高く、ビット線電圧ＶＢＬＸの瞬時値が第１の中間電圧ＶＴＨａよりも低いので、検知回路２２は、検知結果信号ＤＥＴａをローレベルにする。したがって、全体制御回路２１は、書込動作の対象となるメモリユニットＭＵに対する反転書込動作が再開されるように、ロウ制御回路１２およびコラム制御回路１３を制御する。
【０１９７】
時刻ｔ３になると、ビット線電圧ＶＢＬ，ＶＢＬＸの瞬時値が第１の中間電圧ＶＴＨａに到達するので、検知回路２２は、検知結果信号ＤＥＴａをハイレベルにする。これにより、全体制御回路２１は、閾値電圧制御信号ＰＲＴｔｘをハイレベルにするとともに閾値電圧制御信号ＰＲＴｔ１，ＥＲＴｔ１，ＰＲＴｔ２，ＥＲＴｔ２をローレベルにする。したがって、検知回路２２の第１および第２の調整完了閾値電圧は、第２の中間電圧ＶＴＨｂに設定される。また、全体制御回路２１は、書込動作の対象となるメモリユニットＭＵに対する電荷量調整動作（ここでは、同時プログラム動作）が開始されるように、ロウ制御回路１２およびコラム制御回路１３を制御する。
【０１９８】
時刻ｔ４，ｔ５，ｔ６では、ビット線電圧ＶＢＬ，ＶＢＬＸの瞬時値は第２の中間電圧ＶＴＨｂよりも低いので、検知回路２２は、検知結果信号ＤＥＴｘをハイレベルにする。したがって、全体制御回路２１は、書込動作の対象となるメモリユニットＭＵに対する電荷量調整動作およびリード動作が繰り返し実行されるように、ロウ制御回路１２およびコラム制御回路１３を制御する。
【０１９９】
時刻ｔ７になると、ビット線電圧ＶＢＬ，ＶＢＬＸの瞬時値が第２の中間電圧ＶＴＨｂに到達するので、検知回路２２は、検知結果信号ＤＥＴｘをローレベルにする。ここで、書き込みデータ値ＷＤが“０”であるので、全体制御回路２１は、閾値電圧制御信号ＥＲＴｔ２をハイレベルにするとともに閾値電圧制御信号ＰＲＴｔ１，ＥＲＴｔ１，ＰＲＴｔ２，ＰＲＴｔｘをローレベルにする。したがって、検知回路２２の第１および第２の書込完了閾値電圧は、それぞれ、イレース電圧ＶＴＨｅおよびプログラム電圧ＶＴＨｐに設定される。また、全体制御回路２１は、書込動作の対象となるメモリユニットＭＵに対する通常書込動作が開始されるように、ロウ制御回路１２およびコラム制御回路１３を制御する。
【０２００】
時刻ｔ８では、ビット線電圧ＶＢＬの瞬時値がイレース電圧ＶＴＨｅよりも高く、ビット線電圧ＶＢＬＸの瞬時値がプログラム電圧ＶＴＨｐよりも低いので、検知回路２２は、検知結果信号ＤＥＴｂをハイレベルにする。したがって、全体制御回路２１は、書込動作の対象となるメモリユニットＭＵに対する通常書込動作が再開されるように、ロウ制御回路１２およびコラム制御回路１３を制御する。
【０２０１】
時刻ｔ９になると、ビット線電圧ＶＢＬ，ＶＢＬＸがイレース電圧ＶＴＨｅおよびプログラム電圧ＶＴＨｐにそれぞれ到達するので、検知回路２２は、検知結果信号ＤＥＴｂをローレベルにする。これにより、全体制御回路２１は、書込動作の対象となるメモリユニットＭＵに対する通常書込動作が終了するように、ロウ制御回路１２およびコラム制御回路１３を制御する。
【０２０２】
〔検知器の変形例２〕
また、電荷量調整動作として同時イレース動作が実行される場合、検知回路２２は、図２９に示した検知器２０１に代えて、図４２に示した検知器２０１ｂを含んでいても良い。検知器２０１ｂは、図２９に示した検知器２０１の構成に加えて、比較部２１４，２１４Ｘと、判定部２１２ａとを含む。比較部２１４，２１４Ｘは、それぞれ、全体制御回路２１からの閾値電圧制御信号ＥＲＴｔｘに応答して、ビット線電圧ＶＢＬ，ＶＢＬＸとの比較対象となる第１および第２の調整完了閾値電圧を設定する。また、比較部２１４，２１４Ｘは、それぞれ、全体制御回路２１からの検知制御信号ＳＤＥＴ（図示を省略）に応答して、ビット線電圧ＶＢＬ，ＶＢＬＸと第１および第２の調整完了閾値電圧とを比較する。判定部２１２ａは、全体制御回路２１からの検知制御信号ＳＤＥＴに応答して、比較部２１４，２１４Ｘの比較結果（比較結果信号ＳＣ，ＳＤ）に応じた検知結果（検知結果信号ＤＥＴｘ）を出力する。
【０２０３】
比較部２１４，２１４Ｘは、それぞれ、インバータ２４２，２４２Ｘと、ＮＡＮＤ回路２４３，２４３Ｘとを含んでいても良い。これらの回路は、検知制御信号ＳＤＥＴがハイレベルである場合には駆動状態となり、検知制御信号ＳＤＥＴがローレベルである場合には停止状態となる。ここでは、インバータ２１１，２１１Ｘの閾値電圧は、第３の中間電圧ＶＴＨｃに設定され、ＮＡＮＤ回路２２３，２２３Ｘの閾値電圧は、第３の中間電圧ＶＴＨｃに設定される。インバータ２４２，２４２Ｘの閾値電圧は、第４の中間電圧ＶＴＨｄに設定される。
【０２０４】
《第１および第２の調整完了閾値電圧の設定》
検知回路２２（検知器２０１）の第１および第２の調整完了閾値電圧を設定する場合、全体制御回路２１は、閾値電圧制御信号ＥＲＴｔｘをハイレベルにするとともに閾値電圧制御信号ＰＲＴｔ１，ＥＲＴｔ２，ＰＲＴｔ２，ＥＲＴｔ２をローレベルにする。これにより、検知回路２２（検知器２０１）の第１および第２の調整完了閾値電圧は、それぞれ、インバータ２４２，２４２Ｘの閾値電圧（第４の中間電圧ＶＴＨｄ）に設定されたことになる。この場合、ビット線電圧ＶＢＬ，ＶＢＬＸの瞬時値の両方が第４の中間電圧ＶＴＨｄよりも低くなると、比較結果信号ＳＣ，ＳＤの両方がローレベルになる。その結果、検知結果信号ＤＥＴｘがローレベルになる。したがって、全体制御回路２１は、検知結果信号ＤＥＴｘに基づいて、ビット線電圧ＶＢＬ，ＶＢＬＸの瞬時値の両方が第１および第２の調整完了閾値電圧（ここでは、第４の中間電圧ＶＴＨｄ）にそれぞれ到達したか否かを判定できる。
【０２０５】
〔動作タイミング〕
次に、図４３を参照して、実施形態２による不揮発性半導体記憶装置の書込動作の変形例（電荷量調整動作）の動作タイミングについて説明する。図中、黒丸は、ビット線電圧ＶＢＬの瞬時値を示し、白丸は、ビット線電圧ＶＢＬＸの瞬時値を示す。図４３は、電荷放出速度が電荷注入速度よりも遅く、書込動作の対象となるメモリユニットＭＵに格納されたデータ値が“１”であり、書き込みデータ値ＷＤが“０”である場合の例を示す。
【０２０６】
時刻ｔ１〜ｔ９の期間における動作は、図４１の場合と同様である。ただし、時刻ｔ１になると、全体制御回路２１は、閾値電圧制御信号ＰＲＴｔ１をハイレベルにするとともに閾値電圧制御信号ＥＲＴｔ１，ＰＲＴｔ２，ＥＲＴｔ２をローレベルにすることによって、検知回路２２の第１および第２の反転完了閾値電圧を第３の中間電圧ＶＴＨｃに設定する。また、時刻ｔ３になると、全体制御回路２１は、閾値電圧制御信号ＥＲＴｔｘをハイレベルにするとともに閾値電圧制御信号ＰＲＴｔ１，ＥＲＴｔ１，ＰＲＴｔ２，ＥＲＴｔ２をローレベルにすることによって、検知回路２２の第１および第２の調整完了閾値電圧を第４の中間電圧ＶＴＨｄに設定する。さらに、時刻ｔ３〜ｔ７の期間では、ビット線電圧ＶＢＬ，ＶＢＬＸの瞬時値は第４の中間電圧ＶＴＨｄよりも高いので、時刻ｔ４，ｔ５，ｔ６になると、検知回路２２は、検知結果信号ＤＥＴｘをハイレベルにする。したがって、全体制御回路２１は、電荷量調整動作（ここでは、同時イレース動作）およびリード動作が繰り返し実行されるように、ロウ制御回路１２およびコラム制御回路１３を制御する。
【０２０７】
以上のように、反転書込動作期間（反転書込動作とリード動作とが繰り返し実行される期間）と通常書込動作期間（通常書込動作とリード動作とが繰り返し実行される期間）との間に電荷量調整期間（電荷量調整動作とリード動作とが繰り返し実行される期間）を設けることにより、電荷注入速度と電荷放出速度とが互いに異なる場合であっても、通常書込動作によって書込動作の対象となるメモリユニットＭＵのフローティングゲートＦＧＴ，ＦＧＢの電荷量を書き込みデータ値ＷＤに応じた電荷量に近づけることができる。したがって、書込動作の対象となるメモリユニットＭＵに書き込みデータ値ＷＤを正確に書き込むことができる。
【０２０８】
（実施形態３）
図４４は、実施形態３による不揮発性半導体記憶装置３の構成例を示す。不揮発性半導体記憶装置３は、メモリアレイ１００と、メモリ制御回路３０とを備える。メモリ制御回路３０は、全体制御回路３１と、ロウ制御回路３２と、コラム制御回路３３と、書き換え判定回路３４と、読み出し回路１４とを含む。ここで、図４５を参照して、不揮発性半導体記憶装置３の構成例について詳しく説明する。ここでは、全体制御回路３１の図示を省略している。
【０２０９】
〔全体制御回路〕
全体制御回路３１は、ロウ制御回路３２，コラム制御回路３３，書き換え判定回路３４，および読み出し回路１４を制御する。例えば、全体制御回路３１は、ラッチタイミング信号ＳＬＴ３，読み出しデータ値ＲＤ１〜ＲＤｎ，および書き込みデータ値ＷＤ１〜ＷＤｎを書き換え判定回路３４に供給しても良い。また、全体制御回路３１は、スタンバイ制御信号ＳＴＢ，リード制御信号ＲＥＡＤ，反転リード制御信号／ＲＥＡＤ，ラッチタイミング信号ＳＬＴ２，書き込みデータ値ＷＤ１〜ＷＤｎ，および書き込み反転データ値ＸＷＤ１〜ＸＷＤｎをコラム制御回路３３に供給しても良い。さらに、全体制御回路３１は、ラッチタイミング信号ＳＬＴ１を読み出し回路１４に供給しても良い。
【０２１０】
〔書き換え判定回路〕
書き換え判定回路３４は、全体制御回路３１による制御に応答して、書き込みデータ値ＷＤ１〜ＷＤｎが読み出しデータ値ＲＤ１〜ＲＤｎとは異なるか否かを判定する。ここでは、書き換え判定回路３４は、書き込みデータ値ＷＤ１〜ＷＤｎが読み出しデータ値ＲＤ１〜ＲＤｎとは異なる場合には、書き換え許可信号ＮＥＮＧＯをハイレベルにし、書き込みデータ値ＷＤ１〜ＷＤｎが読み出しデータ値ＲＤ１〜ＲＤｎと同一である場合には、書き換え許可信号ＮＥＮＧＯをローレベルにする。
【０２１１】
〔ロウ制御回路〕
ロウ制御回路３２は、書き換え判定回路３４による判定結果（書き換え許可信号ＮＥＮＧＯ）および全体制御回路３１による制御に応答して、ｍ組のロウ制御線群（ＣＧＷＬＰＡ，ＣＧＷＬＰＢ，ＣＧＷＬ，ＲＧＷＬ，ＥＧＷＬ）に制御電圧を印加する。ロウ制御回路３２は、全体制御回路３１による制御に応答して、書込動作の対象となるメモリユニットＭＵにスタンバイ動作，リード動作を実行する。また、ロウ制御回路３２は、書き換え許可信号ＮＥＮＧＯがハイレベルである場合には、書込動作の対象となるメモリユニットＭＵに対して通常書込動作（プログラム動作，イレース動作）を実行し、書き換え許可信号ＮＥＮＧＯがローレベルである場合には、書込動作の対象となるメモリユニットＭＵに対して通常書込動作を実行しない。
【０２１２】
〔コラム制御回路〕
コラム制御回路３３は、書き換え判定回路３４による判定結果および全体制御回路３１による制御に応答して、ｎ組のコラム制御線群（ＣＧＤＴ，ＣＧＤＴＰ，ＣＧＤＢＰ，ＣＧＤＢ）に制御電圧を印加する。コラム制御回路３３は、スタンバイ制御信号ＳＴＢ，リード制御信号ＲＥＡＤに応答して、書込動作の対象となるメモリユニットＭＵにスタンバイ動作，リード動作を実行する。また、コラム制御回路１３は、書き換え許可信号ＮＥＮＧＯがハイレベルである場合には、書込動作の対象となるメモリユニットＭＵに対して通常書込動作を実行し、書き換え許可信号ＮＥＮＧＯがローレベルである場合には、書込動作の対象となるメモリユニットＭＵに対して通常書込動作を実行しない。
【０２１３】
〔制御電圧の印加条件〕
図４６は、動作対象となるメモリユニットＭＵに対応するロウ制御線ＣＧＷＬＰＡ，ＣＧＷＬＰＢ，ＣＧＷＬ，ＲＧＷＬ，ＥＧＷＬおよびコラム制御線ＣＧＤＴ，ＣＧＤＴＰ，ＣＧＤＢＰ，ＣＧＤＢへの制御電圧の印加条件を示し、図４７は、動作対象ではないメモリユニットＭＵに対応するロウ制御線ＣＧＷＬＰＡ，ＣＧＷＬＰＢ，ＣＧＷＬ，ＲＧＷＬ，ＥＧＷＬおよびコラム制御線ＣＧＤＴ，ＣＧＤＴＰ，ＣＧＤＢＰ，ＣＧＤＢに対する制御電圧の印加条件を示す。
【０２１４】
また、図４４に示した不揮発性半導体記憶装置３では、ロウ制御回路３２およびコラム制御回路３３は、全体制御回路３１による制御に応答して、ｍ個のメモリユニット行のうちいずれか１個のメモリユニット行に属するｎ個のメモリユニットＭＵ〜ＭＵを書込動作の対象として同時に選択する。すなわち、ロウ制御回路３２は、図４６に示した印加条件に基づいて書込動作の対象となるｎ個のメモリユニットＭＵ〜ＭＵに共通に接続された１組のロウ制御線群（ＣＧＷＬＰＡ，ＣＧＷＬＰＢ，ＣＧＷＬ，ＲＧＷＬ，ＥＧＷＬ）に制御電圧を印加するとともに、図４７に示した印加条件に基づいて他のｍ−１組のロウ制御線群（ＣＧＷＬＰＡ，ＣＧＷＬＰＢ，ＣＧＷＬ，ＲＧＷＬ，ＥＧＷＬ）に制御電圧を印加する。また、コラム制御回路３３は、図４６に示した印加条件に基づいて書込動作の対象となるｎ個のメモリユニットＭＵ〜ＭＵにそれぞれ接続されたｎ組のコラム制御線群（ＣＧＤＴ，ＣＧＤＴＰ，ＣＧＤＢＰ，ＣＧＤＢ）に制御電圧を印加する。
【０２１５】
例えば、書き換え許可信号ＮＥＮＧＯがハイレベルである場合、ロウ制御回路３２は、書込動作の対象となるｎ個のメモリユニットＭＵ〜ＭＵに共通に接続された１組のロウ制御線群（ＣＧＷＬＰＡ，ＣＧＷＬＰＢ，ＣＧＷＬ，ＲＧＷＬ，ＥＧＷＬ）に制御電圧ＶＭ，ＶＤＤＨ，ＶＤＤＨ，ＶＳＳ，ＶＰＰをそれぞれ印加するとともに、他のｍ−１組のロウ制御線群（ＣＧＷＬＰＡ，ＣＧＷＬＰＢ，ＣＧＷＬ，ＲＧＷＬ，ＥＧＷＬ）に制御電圧ＶＰＰ，ＶＤＤＨ，ＶＳＳ，ＶＳＳ，ＶＳＳを印加する。また、コラム制御回路３３は、ｎ個の書き込みデータ値ＷＤ１〜ＷＤｎに応じて書込動作の対象となるｎ個のメモリユニットＭＵ〜ＭＵにそれぞれ接続されたｎ組のコラム制御線群（ＣＧＤＴ，ＣＧＤＴＰ，ＣＧＤＢＰ，ＣＧＤＢ）に制御電圧をそれぞれ印加する。
【０２１６】
一方、書き換え許可信号ＮＥＮＧＯがローレベルである場合、ロウ制御回路３２は、書込動作の対象となるｎ個のメモリユニットＭＵ〜ＭＵに共通に接続された１組のロウ制御線群（ＣＧＷＬＰＡ，ＣＧＷＬＰＢ，ＣＧＷＬ，ＲＧＷＬ，ＥＧＷＬ）に制御電圧ＶＰＰ，ＶＤＤＨ，ＶＳＳ，ＶＳＳ，ＶＳＳをそれぞれ印加するとともに、他のｍ−１組のロウ制御線群（ＣＧＷＬＰＡ，ＣＧＷＬＰＢ，ＣＧＷＬ，ＲＧＷＬ，ＥＧＷＬ）に制御電圧ＶＰＰ，ＶＤＤＨ，ＶＳＳ，ＶＳＳ，ＶＳＳをそれぞれ印加し、コラム制御回路３３は、書込動作の対象となるｎ個のメモリユニットＭＵ〜ＭＵにそれぞれ接続されたｎ組のコラム制御線群（ＣＧＤＴ，ＣＧＤＴＰ，ＣＧＤＢＰ，ＣＧＤＢ）に制御電圧ＶＳＳ，ＶＳＳ，ＶＳＳ，ＶＳＳをそれぞれ印加する。これにより、書込動作の対象となるｎ個のメモリユニットＭＵ〜ＭＵでは、フローティングゲートＦＧＴ，ＦＧＢの電荷量は変化しない。すなわち、書込動作の対象となるメモリユニットＭＵ〜ＭＵに格納されたデータ値は変化しない。
【０２１７】
〔書き換え判定回路の構成例〕
図４８のように、書き換え判定回路３４は、ｎ個のメモリユニット列にそれぞれ対応するｎ個の書き換え判定部３０１１〜３０１ｎと、ＯＲ回路３０２とを含んでいても良い。書き換え判定部３０１１〜３０１ｎは、それぞれ、全体制御回路３１からのラッチタイミング信号ＳＬＴ３に同期して読み出しデータ値ＲＤ１〜ＲＤｎを取り込んで保持するラッチＬＴ３と、書き込みデータ値ＷＤ１〜ＷＤｎとラッチＬＴ３の出力信号との排他的論理和を比較結果信号ＮＥＮ１〜ＮＥＮｎとして出力するＸＯＲ回路ＸＯＲ３とを含む。ＯＲ回路３０２は、比較結果信号ＮＥＮ１〜ＮＥＮｎの論理和を書き換え許可信号ＮＥＮＧＯとして出力する。
【０２１８】
書き込みデータ値ＷＤ１〜ＷＤｎが読み出しデータ値ＲＤ１〜ＲＤｎとは異なる場合、比較結果信号ＮＥＮ１〜ＮＥＮｎのうち少なくとも１つがハイレベルになる。その結果、書き換え許可信号ＮＥＮＧＯがハイレベルになる。一方、書き込みデータ値ＷＤ１〜ＷＤｎが読み出しデータ値ＲＤ１〜ＲＤｎとが同一である場合、比較結果信号ＮＥＮ１〜ＮＥＮｎの全部がローレベルになる。その結果、書き換え許可信号ＮＥＮＧＯがローレベルになる。
【０２１９】
〔コラム制御回路の構成例〕
コラム制御回路３３は、ｎ組のコラム制御線群（ＣＧＤＴ，ＣＧＤＴＰ，ＣＧＤＢＰ，ＣＧＤＢ）にそれぞれ対応するｎ個のコラム制御部を含んでいても良い。ｎ個のコラム制御部の各々は、図４および図１５に示した第１のコラム制御信号発生器１０３Ａに代えて、図４９に示した第１のコラム制御信号発生器３０３Ａを含んでいても良い。その他の構成は、図４に示したコラム制御部１０３の構成と同様であっても良い。第１のコラム制御信号発生器３０３Ａは、図１５に示したプログラムデコーダＡ１０１およびイレースデコーダＡ１０８に代えて、プログラムデコーダＡ３０１およびイレースデコーダＡ３０８を含んでいても良い。その他の構成は、図１５に示した第１のコラム制御信号発生器１０３Ａの構成と同様であっても良い。
【０２２０】
プログラムデコーダＡ３０１は、スタンバイ制御信号ＳＴＢがハイレベルである場合，リード制御信号ＲＥＡＤがハイレベルである場合，および書き換え許可信号ＮＥＮＧＯがローレベルである場合には、出力信号をハイレベルにする。また、プログラムデコーダＡ１０１は、書き換え制御信号ＮＥＮＧＯがハイレベルである場合、書き込み反転データ値ＸＷＤが“１”である場合には、出力信号をハイレベルにし、書き込み反転データ値ＸＷＤが“０”である場合には、出力信号をローレベルにする。イレースデコーダＡ３０８は、スタンバイ制御信号ＳＴＢがハイレベルである場合、リード制御信号ＲＥＡＤがハイレベルである場合，および書き換え許可信号ＮＥＮＧＯがローレベルである場合には、出力信号をハイレベルにする。また、イレースデコーダＡ１０８は、書き換え制御信号ＮＥＮＧＯがハイレベルである場合、書き込みデータ値ＷＤが“１”である場合には、出力信号をハイレベルにし、書き込みデータ値ＷＤが“０”である場合には、出力信号をローレベルにする。
【０２２１】
〔不揮発性半導体記憶装置の書込動作〕
次に、図５０を参照して、図４４に示した不揮発性半導体記憶装置３の書込動作について説明する。ここでは、書込動作の対象として同時に選択されるｎ個のメモリユニットＭＵ〜ＭＵの中のいずれか１個のメモリユニットＭＵに着目して説明する。
【０２２２】
《ＳＴ３０１》
ロウ制御回路３２およびコラム制御回路３３は、全体制御回路３１による制御に応答して、書込動作の対象となるメモリユニットＭＵにリード動作を実行する。読み出し回路１４は、全体制御回路３１による制御に応答して、書込動作の対象となるメモリユニットＭＵに格納されたデータ値を読み出しデータ値ＲＤとして読み出す。
【０２２３】
《ＳＴ３０２》
次に、書き換え判定回路３４は、全体制御回路３１による制御に応答して、書き込みデータ値ＷＤ１〜ＷＤｎが読み出しデータ値ＲＤ１〜ＲＤｎとは異なるか否かを判定する。書き込みデータ値ＷＤ１〜ＷＤｎが読み出しデータ値ＲＤ１〜ＲＤｎとは異なる場合（書き換え許可信号ＮＥＮＧＯがハイレベルである場合）には、ステップＳＴ３０３へ進む。一方、書き込みデータ値ＷＤ１〜ＷＤｎが読み出しデータ値ＲＤ１〜ＲＤｎと同一である場合（書き換え許可信号ＮＥＮＧＯがローレベルである場合）には、ロウ制御回路３２およびコラム制御回路３３は、書込動作の対象となるメモリユニットＭＵに通常書込動作を実行しない。
【０２２４】
《ＳＴ３０３》
次に、ロウ制御回路３２およびコラム制御回路３３は、全体制御回路３１による制御に応答して、書込動作の対象となるメモリユニットＭＵに通常書込動作を実行する。例えば、ロウ制御回路３２およびコラム制御回路３３は、書き込みデータ値ＷＤが“１”である場合には、書込動作の対象となるメモリユニットＭＵにプログラム動作を実行し、書き込みデータ値ＷＤが“０”である場合には、書込動作の対象となるメモリユニットＭＵにイレース動作を実行する。
【０２２５】
〔動作タイミング〕
次に、図５１を参照して、図４６に示した不揮発性半導体記憶装置３の書込動作の動作タイミングについて説明する。図５１は、書込動作の対象となるメモリユニットＭＵに格納されたデータ値が“１”であり、書き込みデータ値ＷＤが“０”である場合の例を示す。
【０２２６】
時刻ｔ０〜ｔ１の期間では、全体制御回路３１は、スタンバイ制御信号ＳＴＢをハイレベルにする。これにより、ロウ制御回路３２およびコラム制御回路３３は、書込動作の対象となるメモリユニットＭＵにスタンバイ動作を実行する。
【０２２７】
時刻ｔ１になると、全体制御回路３１は、スタンバイ制御信号ＳＴＢをローレベルにするとともにリード制御信号ＲＥＡＤをハイレベルにする。これにより、ロウ制御回路３２およびコラム制御回路３３は、書込動作の対象となるメモリユニットＭＵに対するリード動作を開始する。また。読み出し回路１４は、全体制御回路３１からのラッチタイミング信号ＳＬＴ１に同期して、書込動作の対象となるメモリユニットＭＵに格納されたデータ値を読み出しデータ値ＲＤとして読み出す。
【０２２８】
時刻ｔ２になると、全体制御回路３１は、リード制御信号ＲＥＡＤをローレベルにするとともにラッチタイミング信号ＳＬＴ３をハイレベルにする。これにより、書き換え判定回路３４は、書き込みデータ値ＷＤと読み出しデータ値ＲＤとを比較する。ここでは、書き込みデータ値ＷＤが読み出しデータ値ＲＤとは異なるので、書き換え判定回路３４は、書き換え許可信号ＮＥＮＧＯをハイレベルにする。
【０２２９】
時刻ｔ３になると、書き換え許可信号ＮＥＮＧＯがハイレベルであるので、ロウ制御回路３２およびコラム制御回路３３は、全体制御回路３１からのラッチタイミング信号ＳＬＴ２に同期して、書込動作の対象となるメモリユニットＭＵに通常書込動作（ここでは、イレース動作）を実行する。これにより、書込動作の対象となるメモリユニットＭＵでは、フローティングゲートＦＧＴから電荷が放出され、フローティングゲートＦＧＢに電荷が注入される。
【０２３０】
時刻ｔ４になると、全体制御回路３１は、スタンバイ制御信号ＳＴＢをハイレベルにする。これにより、ロウ制御回路３２およびコラム制御回路３３は、書込動作の対象となるメモリユニットＭＵにスタンバイ動作を実行する。
【０２３１】
一方、図５２のように、書き込みデータ値ＷＤ１〜ＷＤｎが読み出しデータ値ＲＤ１〜ＲＤｎと同一である場合、時刻ｔ３において、書き換え判定回路３４は、書き換え許可信号ＮＥＮＧＯをハイレベルにしない。したがって、時刻ｔ３〜ｔ４の期間において、ロウ制御回路３２およびコラム制御回路３３は、書込動作の対象となるメモリユニットＭＵに通常書込動作を実行しない。
【０２３２】
以上のように、書込動作の対象となるｎ個のメモリユニットＭＵ〜ＭＵに格納されたデータ値の書き換えが不要である場合には、ｎ個のメモリユニットＭＵ〜ＭＵに対して通常書込動作（プログラム動作，イレース動作）が実行されない。したがって、書込動作の対象となるメモリユニットＭＵにおける過消去および過書込を回避できる。また、通常書込動作では、メモリユニットＭＵのフローティングゲートＦＧＴ，ＦＧＢのうち一方のフローティングゲートから電荷を放出させる動作と他方のフローティングゲートに電荷を注入する動作とが同時に実行される。したがって、書込動作の対象となるメモリユニットＭＵのフローティングゲートＦＧＴ，ＦＧＢの両方に電荷を注入した後に書き込みデータ値ＷＤに応じてフローティングゲートＦＧＴ，ＦＧＢのいずれか一方のフローティングゲートから電荷を放出させる場合よりも、書込時間を短縮できる。
【０２３３】
（実施形態３の変形例１）
なお、図５３のように、メモリアレイ１００は、ｍ×ｎ本のロウ制御線ＥＧＷＬ１−１〜ＥＧＷＬｍ−ｎを含んでいても良い。図５３では、ｍ組のロウ制御線群（ここでは、４本のロウ制御線ＣＧＷＬＰＡ，ＣＧＷＬＰＢ，ＣＧＷＬ，ＲＧＷＬの組合せ）は、それぞれ、ｍ個のメモリユニット行に対応し、ｍ×ｎ本のロウ制御線ＥＧＷＬ１−１〜ＥＧＷＬｍ−ｎは、それぞれ、ｍ×ｎ個のメモリユニットＭＵ１１〜ＭＵｍｎに対応している。この場合、メモリ制御回路３０は、ロウ制御回路３２，コラム制御回路３３，および書き換え判定回路３４に代えて、ロウ制御回路３２ａ，コラム制御回路３３ａ，および書き換え判定回路３４ａを含んでいても良い。その他の構成は、図４５に示した構成と同様であっても良い。なお、図５３では、全体制御回路３１の図示を省略している。
【０２３４】
〔書き換え判定回路〕
書き換え判定回路３４ａは、ｎ個のメモリユニット列の各々について、そのメモリユニット列に対応する書き込みデータ値ＷＤおよび読み出しデータ値ＲＤが互いに異なるか否かを判定する。すなわち、書き換え判定回路３４ａは、ｎ個のメモリユニット列にそれぞれ対応するｎ個の判定結果を出力する。ここでは、書き換え判定回路３４ａは、ｎ個のメモリユニット列にそれぞれ対応するｎ本の比較結果信号ＮＥＮ１〜ＮＥＮｎおよびｎ個の書き込みデータ値ＷＤＺ１〜ＷＤＺｎを出力する。書き換え判定回路３４ａは、書き込みデータ値ＷＤが読み出しデータ値ＲＤとは異なる場合では、比較結果信号ＮＥＮをハイレベルにするとともに書き込みデータ値ＷＤの反転値を書き込みデータ値ＷＤＺとして出力し、書き込みデータ値ＷＤが読み出しデータ値ＲＤと同一である場合には、比較結果信号ＮＥＮをローレベルにするとともに“１”を示した書き込みデータ値ＷＤＺを出力する。
【０２３５】
〔ロウ制御回路，コラム制御回路〕
ロウ制御回路３２ａは、書き換え判定回路３４ａによる判定結果（比較結果信号ＮＥＮ１〜ＮＥＮｎ）および全体制御回路３１による制御に応答して、ｍ組のロウ制御線群（ＣＧＷＬＰＡ，ＣＧＷＬＰＢ，ＣＧＷＬ，ＲＧＷＬ）に制御電圧を印加する。また、ロウ制御回路３２ａは、書き換え判定回路３４ａによる判定結果および全体制御回路３１による制御に応答して、ロウ制御線ＥＧＷＬ１−１〜ＥＧＷＬｍ−ｎに制御電圧を印加する。コラム制御回路３３ａは、書き換え判定回路３４ａによる判定結果（比較結果信号ＮＥＮ１〜ＮＥＮｎ）および全体制御回路３１による制御に応答して、ｎ組のコラム制御線群（ＣＧＤＴ，ＣＧＤＴＰ，ＣＧＤＢＰ，ＣＧＤＢ）に制御電圧を印加する。
【０２３６】
〔制御電圧の印加条件〕
図５４は、図５３に示した不揮発性半導体記憶装置において、動作対象となるメモリユニットＭＵに対応するロウ制御線ＣＧＷＬＰＡ，ＣＧＷＬＰＢ，ＣＧＷＬ，ＲＧＷＬ，ＥＧＷＬおよびコラム制御線ＣＧＤＴ，ＣＧＤＴＰ，ＣＧＤＢＰ，ＣＧＤＢに対する制御電圧の印加条件を示し、図５５は、動作対象ではないメモリユニットＭＵに対応するロウ制御線ＣＧＷＬＰＡ，ＣＧＷＬＰＢ，ＣＧＷＬ，ＲＧＷＬ，ＥＧＷＬおよびコラム制御線ＣＧＤＴ，ＣＧＤＴＰ，ＣＧＤＢＰ，ＣＧＤＢに対する制御電圧の印加条件を示す。
【０２３７】
図５３に示した不揮発性半導体記憶装置では、ロウ制御回路３２ａおよびコラム制御回路３３ａは、書き換え判定回路３４ａによる判定結果および全体制御回路３１による制御に応答して、ｍ個のメモリユニット行のうちいずれか１個のメモリユニット行を選択し、そのメモリユニット行に属するｎ個のメモリユニットＭＵ〜ＭＵの中のうち１個または複数個のメモリユニットを書込動作の対象として選択する。すなわち、ロウ制御回路３２ａは、図５４に示した印加条件に基づいて、書込動作の対象となる１個または複数個のメモリユニットに共通に接続された１組のロウ制御線群（ＣＧＷＬＰＡ，ＣＧＷＬＰＢ，ＣＧＷＬ，ＲＧＷＬ）に制御電圧を印加するとともに、図５５に示した印加条件に基づいて、他のｍ−１組のロウ制御線群（ＣＧＷＬＰＡ，ＣＧＷＬＰＢ，ＣＧＷＬ，ＲＧＷＬ）に制御電圧を印加する。さらに、ロウ制御回路３２ａは、図５４に示した印加条件に基づいて、書込動作の対象となるメモリユニットＭＵに接続されたロウ制御線ＥＧＷＬに制御電圧を印加するとともに、図５５に示した印加条件に基づいて、書込動作の対象ではないメモリユニットＭＵに接続されたロウ制御線ＥＧＷＬに制御電圧を印加する。また、コラム制御回路３３ａは、図５４に示した印加条件に基づいて、書込動作の対象となるメモリユニットＭＵに接続されたコラム制御線群（ＣＧＤＴ，ＣＧＤＴＰ，ＣＧＤＢＰ，ＣＧＤＢ）に制御電圧を印加するとともに、図５５に示した印加条件に基づいて、書込動作の対象ではないメモリユニットＭＵに接続されたコラム制御線群（ＣＧＤＴ，ＣＧＤＴＰ，ＣＧＤＢＰ，ＣＧＤＢ）に制御電圧を印加する。
【０２３８】
〔書き換え判定回路の構成例〕
図５６のように、書き換え判定回路３４ａは、ｎ個のメモリユニット列にそれぞれ対応するｎ個の書き換え判定部３１１〜３１１ｎを含んでいても良い。書き換え判定部３１１１〜３１１ｎは、それぞれ、ラッチタイミング信号ＳＬＴ３に同期して読み出しデータ値ＲＤ１〜ＲＤｎを取り込んで保持するラッチＬＴ３と、書き込みデータ値ＷＤ１〜ＷＤｎとラッチＬＴ３との排他的論理和を比較結果信号ＮＥＮ１〜ＮＥＮｎとして出力するＸＯＲ回路ＸＯＲ３と、書き込みデータ値ＷＤ１〜ＷＤｎと比較結果信号ＮＥＮ１〜ＮＥＮｎとの否論理積を書き込みデータ値ＷＤＺ１〜ＷＤＺｎとして出力するＮＡＮＤ回路ＮＡ３とを含む。書き換え判定部３１１は、書き込みデータ値ＷＤが読み出しデータ値ＲＤとは異なる場合には、書き換え許可信号ＮＥＮをハイレベルにするとともに、書き換えデータ値ＷＤの反転値を書き込みデータ値ＷＤＺとして出力する。一方、書き換え判定部３１１は、書き込みデータ値ＷＤが読み出しデータ値ＲＤと同一である場合には、書き換え許可信号ＮＥＮをローレベルにするとともに、書き込みデータ値ＷＤＺを“１”に設定する。
【０２３９】
〔コラム制御回路の構成例〕
コラム制御回路３３ａは、ｎ個のメモリユニット列にそれぞれ対応するｎ個のコラム制御部を含んでいても良い。ｎ個のコラム制御部の各々は、図４および図１５に示した第１のコラム制御信号発生器１０３Ａに代えて、図５７に示した第１のコラム制御信号発生器３１３Ａを含んでいても良い。その他の構成は、図４に示したコラム制御部１０３と同様であっても良い。第１のコラム制御信号発生器３１３Ａは、図１５に示したプログラムデコーダＡ１０１およびイレースデコーダＡ１０８に代えて、プログラムデコーダＡ３３１およびイレースデコーダＡ３３８を含んでいても良い。その他の構成は、図１５に示した第１のコラム制御信号発生器１０３Ａと同様であっても良い。
【０２４０】
プログラムデコーダＡ３３１は、スタンバイ制御信号ＳＴＢがハイレベルである場合，リード制御信号ＲＥＡＤがハイレベルである場合，および比較結果信号ＮＥＮがローレベルである場合には、出力信号をハイレベルにする。また、プログラムデコーダＡ３３１は、比較結果信号ＮＥＮがハイレベルである場合、書き込みデータ値ＷＤＺが“１”である場合には、出力信号をハイレベルにし、書き込みデータ値ＷＤＺが“０”である場合には、出力信号をローレベルにする。イレースデコーダＡ３３８は、スタンバイ制御信号ＳＴＢがハイレベルである場合，リード制御信号ＲＥＡＤがハイレベルである場合，および比較結果信号ＮＥＮがローレベルである場合には、出力信号をハイレベルにする。また、イレースデコーダＡ１０８は、比較結果信号ＮＥＮがハイレベルである場合、書き込みデータ値ＷＤＺの反転値が“１”である場合には、出力信号をハイレベルにし、書き込みデータ値ＷＤＺの反転値が“０”である場合には、出力信号をローレベルにする。
【０２４１】
〔具体例〕
ここで、第１行目のメモリユニット行に属するｎ個のメモリユニットＭＵ１１〜ＭＵ１ｎに“１”を示した書き込みデータ値ＷＤ１〜ＷＤｎをそれぞれ書き込む場合を例に挙げて説明する。また、メモリユニットＭＵ１１に格納されたデータ値が“０”であり、他のメモリユニットＭＵ１２〜ＭＵ１ｎに格納されたデータ値が“１”であるものとする。
【０２４２】
この場合、書き換え判定回路３４ａは、比較結果信号ＮＥＮ１をハイレベルにするとともに、ｎ−１本の比較結果信号ＮＥＮ２〜ＮＥＮｎをローレベルにする。ロウ制御回路３２ａは、書込動作の対象となるｎ個のメモリユニットＭＵ１１〜ＭＵ１ｎに共通に接続された１組のロウ制御線群（ＣＧＷＬＰＡ１，ＣＧＷＬＰＢ１，ＣＧＷＬ１，ＲＧＷＬ１）に制御電圧ＶＭ，ＶＤＤＨ，ＶＤＤＨ，ＶＳＳをそれぞれ印加するとともに、他のｍ−１組のロウ制御線群（ＣＧＷＬＰＡ，ＣＧＷＬＰＢ，ＣＧＷＬ，ＲＧＷＬ）に制御電圧ＶＰＰ，ＶＤＤＨ，ＶＳＳ，ＶＳＳを印加する。さらに、ロウ制御回路３２ａは、比較結果信号ＮＥＮ１がハイレベルであるとともにｎ−１本の比較結果信号ＮＥＮ２〜ＮＥＮｎがローレベルであるので、メモリユニットＭＵ１１に接続されたロウ制御線ＥＧＷＬ１−１に制御電圧ＶＰＰを印加するとともに、ｎ−１個のメモリユニットＭＵ１２〜ＭＵ１ｎにそれぞれ接続されたｎ−１本のロウ制御線ＥＧＷＬ１−２〜ＥＧＷＬ１−ｎに制御電圧ＶＳＳを印加する。また、ロウ制御回路３２ａは、書込動作の対象ではないメモリユニットＭＵ２１〜ＭＵｍｎにそれぞれ接続されたロウ制御線ＥＧＷＬ２−１〜ＥＧＷＬｍ−ｎに制御電圧ＶＳＳを印加する。
【０２４３】
コラム制御回路３３ａは、比較結果信号ＮＥＮ１がハイレベルであるとともに書き込みデータ値ＷＤ１が“１”であるので、メモリユニットＭＵ１１に接続されたコラム制御線ＣＧＤＴ１，ＣＧＤＴＰ１，ＣＧＤＢＰ１，ＣＧＤＢ１に制御電圧ＶＤＤＨ，ＶＰＰ，ＶＳＳ，ＶＳＳをそれぞれ印加する。さらに、コラム制御回路３３ａは、ｎ−１本の比較結果信号ＮＥＮ２〜ＮＥＮｎがローレベルであるので、ｎ−１個のメモリユニットＭＵ１２〜ＭＵ１ｎに接続されたｎ−１組のコラム制御線群（ＣＧＤＴ，ＣＧＤＴＰ，ＣＧＤＢＰ，ＣＧＤＢ）に制御電圧ＶＳＳ，ＶＳＳ，ＶＳＳ，ＶＳＳをそれぞれ印加する。
【０２４４】
このように制御電圧が印加されることにより、メモリユニットＭＵ１１に対してプログラム動作が実行され、メモリユニットＭＵ１１に格納されたデータ値は“０”から“１”に書き換えられる。また、メモリユニットＭＵ１２〜ＭＵ１ｎでは、ＴビットセルＴＢＣおよびＢビットセルＢＢＣの各々において、コントロールキャパシタＣＧの他端に制御電圧ＶＳＳが印加され、イレースキャパシタＥＧの他端に制御電圧ＶＳＳが印加されることになるので、メモリユニットＭＵ１２〜ＭＵ１ｎに格納されたデータ値は“１”のままである。すなわち、書込動作の対象となるメモリユニットＭＵ１１〜ＭＵ１ｎのうちメモリユニットＭＵ１１に対して通常書込動作が実行されるが、ｎ−１個のメモリユニットＭＵ１２〜１ｎに対して通常書込動作が実行されない。
【０２４５】
以上のように、ｎ個のメモリユニット列の各々について書き込みデータ値ＷＤおよび読み出しデータ値ＲＤが互いに異なるか否かを判定することにより、ｎ組のコラム制御線（ＣＧＤＴ，ＣＧＤＴＰ，ＣＧＤＢＰ，ＣＧＤＢ）を個別に制御できる。また、ｍ×ｎ個のメモリユニットＭＵ１１〜ＭＵｍｎにｍ×ｎ本のロウ制御線ＥＧＷＬ１−１〜ＥＧＷＬｍ−ｎをそれぞれ接続することにより、ｍ×ｎ個のメモリユニットＭＵ１１〜ＭＵｍｎの各々に含まれるイレースゲート（すなわち、イレースキャパシタＥＧの他端）に印加される制御電圧を個別に制御できる。これにより、１個のメモリユニットＭＵを単位として書込動作の対象となる１個または複数個のメモリユニットを選択できる。
【０２４６】
（実施形態３の変形例２）
また、図５８のように、不揮発性半導体記憶装置３は、ｐ個のメモリアレイ１００１〜１００ｐを備えていても良い。メモリアレイ１００１〜１００ｐは、ｍ組のロウ制御線群（ここでは、４本のロウ制御線ＣＧＷＬＰＡ，ＣＧＷＬＰＢ，ＣＧＷＬ，ＲＧＷＬの組合せ）を共有するとともに、ロウ制御線ＥＧＷＬを個別に有する。この場合、メモリ制御回路３０は、全体制御回路３１ｂと、ロウ制御回路３２ｂと、ｐ個のコラム制御回路３３１〜３３ｐと、ｐ個の読み出し回路１４１〜１４ｐと、ｐ個のＥＧＷＬ発生器１５１〜１５ｐと、書き換え判定回路３４と、コラム選択回路３６とを備えていても良い。
【０２４７】
全体制御回路３１ｂは、ロウ制御回路３２ｂ，コラム制御回路３３１〜３３ｐ，読み出し回路１４１〜１４ｐ，ＥＧＷＬ発生器１５１〜１５ｐ，書き換え判定回路３４，およびコラム選択回路３６を制御する。コラム制御回路３３１〜３３ｐは、それぞれ、メモリアレイ１００１〜１００ｐに対応する。コラム制御回路３３１〜３３ｐは、図４５に示したコラム制御回路３３の構成と同様の構成を有する。コラム選択回路３６は、全体制御回路３１ｂによる制御に応答して、コラム制御回路３３１〜３３ｐの中から１個または複数個のコラム制御回路を選択する。
【０２４８】
図５８に示した不揮発性半導体記憶装置では、ロウ制御回路３２ｂは、書き換え判定回路３４による判定結果（書き換え許可信号ＮＥＮＧＯ）および全体制御回路３１ｂによる制御に応答して、メモリアレイ１００１〜１００ｐの各々において、ｍ個のメモリユニット行の中からいずれか１個のメモリユニット行に属するｎ個のメモリユニットＭＵ〜ＭＵを選択する。すなわち、ロウ制御回路３２ｂは、図４６に示した印加条件に基づいて１組のロウ制御線群（ＣＧＷＬＰＡ，ＣＧＷＬＰＢ，ＣＧＷＬ，ＲＧＷＬ）に制御電圧を印加するとともに、図４７に示した印加条件に基づいて他のｍ−１組のロウ制御線群（ＣＧＷＬＰＡ，ＣＧＷＬＰＢ，ＣＧＷＬ，ＲＧＷＬ）に制御電圧を印加する。
【０２４９】
コラム選択回路３６によって選択されたコラム制御回路３３は、書き換え判定回路３４による判定結果（書き換え許可信号ＮＥＮＧＯ）および全体制御回路３１ｂによる制御に応答して、そのコラム制御回路３３に対応するメモリアレイ１００に含まれるｎ個のメモリユニットＭＵ〜ＭＵ（ロウ制御回路３２ｂによって選択されたｎ個のメモリユニットＭＵ〜ＭＵ）を書込動作の対象として同時に選択する。すなわち、コラム選択回路３６によって選択されたコラム制御回路３３は、図４６に示した印加条件に基づいてｎ組のコラム制御線群（ＣＧＤＴ，ＣＧＤＴＰ、ＣＧＤＢＰ，ＣＧＤＢ）に制御電圧を印加する。また、コラム選択回路３６によって選択されたコラム制御回路３３に対応するＥＧＷＬ発生器１５は、書き換え判定回路３４による判定結果および全体制御回路３１ｂによる制御に応答して、図４６に示した印加条件に基づいてそのＥＧＷＬ発生器１５に対応するｍ本のロウ制御線ＥＧＷＬに制御電圧を印加する。
【０２５０】
また、コラム選択回路３６によって選択されないコラム制御回路３３は、そのコラム制御回路３３に対応するメモリアレイ１００に含まれるｎ個のメモリユニットＭＵ〜ＭＵ（ロウ制御回路３２ｂによって選択されたｎ個のメモリユニットＭＵ〜ＭＵ）を書込動作の対象として選択しない。すなわち、コラム選択回路３６によって選択されないコラム制御回路３３は、図５５に示した印加条件に基づいてｎ組のコラム制御線群（ＣＧＤＴ，ＣＧＤＴＰ、ＣＧＤＢＰ，ＣＧＤＢ）に制御電圧を印加する。また、コラム選択回路３６によって選択されないコラム制御回路３３に対応するＥＧＷＬ発生器１５は、書き換え判定回路３４による判定結果および全体制御回路３１ｂによる制御に応答して、図５５に示した印加条件に基づいてそのＥＧＷＬ発生器１５に対応するｍ本のロウ制御線ＥＧＷＬに制御電圧を印加する。
【０２５１】
以上のように、ＥＧＷＬ発生器１５１〜１５ｐによってメモリアレイ１００１〜１００ｐに含まれるｍ本のロウ制御線ＥＧＷＬ１〜ＥＧＷＬｍを個別に制御することにより、１個のメモリアレイ１００を単位として書込動作の対象となるｎ個のメモリユニットＭＵ〜ＭＵを含む１個または複数個のメモリアレイを選択できる。
【０２５２】
（実施形態４）
図５９は、実施形態４による不揮発性半導体記憶装置４の構成例を示す。不揮発性半導体記憶装置４は、メモリアレイ１００Ｓと、メモリ制御回路４０とを備える。メモリ制御回路４０は、全体制御回路４１と、ロウ制御回路１２と、コラム制御回路４３と、読み出し回路４４とを含む。ここで、図６０を参照して、図５９に示した不揮発性半導体記憶装置の構成例について詳しく説明する。なお、図６０では、全体制御回路４１の図示を省略している。
【０２５３】
〔メモリアレイ〕
メモリアレイ１００Ｓは、ｍ×ｎ個のメモリユニット（シングル型メモリユニット）ＳＭＵ１１〜ＳＭＵｍｎと、ｎ本のビット線ＢＬ１〜ＢＬｎと、ｍ組のロウ制御線群（ＣＧＷＬＰＡ，ＣＧＷＬＰＢ，ＣＧＷＬ，ＲＧＷＬ，ＥＧＷＬ）と、ｎ組のコラム制御線群（ここでは、２本のコラム制御線ＣＧＤＴ，ＣＧＤＴＰの組合せ）とを備える。
【０２５４】
ｍ×ｎ個のメモリユニットＳＭＵ１１〜ＳＭＵｍｎは、ｍ行ｎ列の行列状に配列されている。ｎ本のビット線ＢＬ１〜ＢＬｎおよびｎ組のコラム制御線群（ＣＧＤＴ，ＣＧＤＴＰ）は、それぞれ、メモリユニットＭＵ１１〜ＭＵｍｎのｎ個のメモリユニット列に対応する。例えば、第１列目のビット線ＢＬ１および第１組目のコラム制御線群（ＣＧＤＴ１，ＣＧＤＴＰ１）は、第１列目のメモリユニット列に属するｍ個のメモリユニットＳＭＵ１１〜ＳＭＵ１ｍに共通に接続される。ｍ組のロウ制御線群（ＣＧＷＬＰＡ，ＣＧＷＬＰＢ，ＣＧＷＬ，ＲＧＷＬ，ＥＧＷＬ）は、それぞれ、メモリユニットＳＭＵ１１〜ＳＭＵｍｎのｍ個のメモリユニット行に対応する。例えば、第１組目のロウ制御線群（ＣＧＷＬＰＡ１，ＣＧＷＬＰＢ１，ＣＧＷＬ１，ＲＧＷＬ１，ＥＧＷＬ１）は、第１行目のメモリユニット行に属するｎ個のメモリユニットＳＭＵ１１〜ＳＭＵ１ｎに共通に接続される。
【０２５５】
〔全体制御回路〕
全体制御回路４１は、ロウ制御回路４２，コラム制御回路４３，および読み出し回路４４を制御する。全体制御回路４１は、スタンバイ制御信号ＳＴＢ，リード制御信号ＲＥＡＤ，反転リード制御信号／ＲＥＡＤ，反転書込制御信号ＳＷＴ１，通常書込制御信号ＳＷＴ２，およびラッチタイミング信号ＳＬＴ２をコラム制御回路４３に供給する。また、全体制御回路４１は、ｎ個の書き込み反転データ値ＸＷＤ１〜ＸＷＤｎおよびｎ個の読み出しデータ値ＲＤ１〜ＲＤｎをコラム制御回路４３に供給する。さらに、全体制御回路４１は、ラッチタイミング信号ＳＬＴ１を読み出し回路４４に供給する。
【０２５６】
〔ロウ制御回路〕
ロウ制御回路４２は、全体制御回路４１による制御に応答して、ｍ組のロウ制御線群（ＣＧＷＬＰＡ，ＣＧＷＬＰＢ，ＣＧＷＬ，ＲＧＷＬ，ＥＧＷＬ）に制御電圧を印加する。ここでは、ロウ制御回路４２は、全体制御回路４１による制御に応答して、書込動作の対象となるメモリユニットＳＭＵにスタンバイ動作，リード動作，反転書込動作，および通常書込動作を実行する。
【０２５７】
〔コラム制御回路〕
コラム制御回路４３は、全体制御回路４１による制御に応答して、ｎ組のコラム制御線群（ＣＧＤＴ，ＣＧＤＴＰ）に制御電圧を印加する。ここでは、コラム制御回路４３は、スタンバイ制御信号ＳＴＢ，リード制御信号ＲＥＡＤ，反転書込制御信号ＳＷＴ１，および通常書込制御信号ＳＷＴ２に応答して、書込動作の対象となるメモリユニットＳＭＵにスタンバイ動作，リード動作，反転書込動作，および通常書込動作を実行する。例えば、コラム制御回路４３は、ｎ組のコラム制御線群（ＣＧＤＴ，ＣＧＤＴＰ）にそれぞれ対応するｎ個のコラム制御部を含んでいても良い。
【０２５８】
〔読み出し回路〕
読み出し回路４４は、全体制御回路４１による制御に応答して、ｎ個のビット線電圧ＶＢＬ１〜ＶＢＬｎ（ビット線ＢＬ１〜ＢＬｎに発生する電圧）に基づいてｎ個の読み出しデータ値ＲＤ１〜ＲＤｎをそれぞれ読み出す。例えば、読み出し回路４４は、第１列目のビット線ＢＬ１に発生するビット線電圧ＶＢＬ１に基づいて第１列目の読み出しデータ値ＲＤ１を読み出す。また、読み出し回路４４は、ｎ個のメモリユニット列（ｎ本のビット線ＢＬ１〜ＢＬｎ）にそれぞれ対応するｎ個の読み出し部４０４１〜４０４ｎを含んでいても良い。
【０２５９】
なお、反転書込動作とは、書込動作の対象となるメモリユニットＳＭＵから読み出された読み出しデータ値ＲＤの反転値が書込動作の対象となるメモリユニットＳＭＵに書き込まれるように、書込動作の対象となるメモリユニットＳＭＵのフローティングゲートＦＧＴ（図６１参照）の電荷量を制御する動作のことである。また、通常書込動作とは、書き込みデータ値ＷＤが書込動作の対象となるメモリユニットＳＭＵに書き込まれるように、書込動作の対象となるメモリユニットＳＭＵのフローティングゲートＦＧＴ（図６１参照）の電荷量を制御する動作のことである。
【０２６０】
〔メモリユニットの構成例〕
図６１は、図６０に示したメモリユニットＳＭＵの構成例を示す。メモリユニットＳＭＵは、ＴビットセルＴＢＣと、デコードデバイスＳＤＤとを含む。デコードデバイスＳＤＤは、ＰＭＯＳトランジスタＭＴ１，ＭＴ２と、ＮＭＯＳトランジスタＭＴ３，ＭＴ４と、ＮＡＮＤ回路ＮＡＴとを含む。
【０２６１】
〔コラム制御回路の構成例〕
図６２は、図６０に示したコラム制御回路４３に含まれるコラム制御部４０３の構成例を示す。コラム制御部４０３は、第１のコラム制御信号発生器４０３Ａと、第２のコラム制御信号発生器４０３Ｂと、負荷トランジスタＭＢＬとを含む。第１のコラム制御信号発生器４０３Ａは、全体制御回路４１からの制御信号（スタンバイ制御信号ＳＴＢ，リード制御信号ＲＥＡＤ，反転書込制御信号ＳＷＴ１，通常書込制御信号ＳＷＴ２，ラッチタイミング信号ＳＬＴ２），読み出しデータ値ＲＤ，および書き込み反転データ値ＸＷＤに応じて、コラム制御信号Ｓ１〜Ｓ３を出力する。第２のコラム制御信号発生器４０３Ｂは、コラム制御信号Ｓ１〜Ｓ３に応じて、コラム制御線ＣＧＤＴ，ＣＧＤＴＰに制御電圧を印加する。例えば、図６３のように、第１のコラム制御信号発生器４０１Ａは、プログラムデコーダＡ１０１と、ラッチＡ１０２と、レベルシフタＡ１０３と、リードデコーダＡ１０４と、ドライバＡ１０５と、インバータＡ１０６と、切替回路Ａ１０７とを含んでいても良い。また、図６４のように、第２のコラム制御信号発生器４０１Ｂは、ＰＭＯＳトランジスタＭＰ１〜ＭＰ３と、ＮＭＯＳトランジスタＭＮ１，ＭＮ２とを含んでいても良い。
【０２６２】
〔読み出し回路の構成例〕
図６５は、図６０に示した読み出し回路４４に含まれる読み出し部４０４の構成例を示す。読み出し部４０４は、センスアンプＳＡと、ラッチＬＴ１とを含む。センスアンプＳＡは、ビット線電圧ＶＢＬと基準電圧（予め設定された電圧）との電圧差を増幅させることによってその電圧差に対応する出力信号を出力する。例えば、センスアンプＳＡは、ビット線電圧ＶＢＬが基準電圧よりも高い場合には、出力信号をハイレベルにし、ビット線電圧ＶＢＬが基準電圧よりも低い場合には、出力信号をローレベルにする。ラッチＬＴ１は、全体制御回路１１からのラッチタイミング信号ＳＬＴ１に同期して、センスアンプＳＡの出力信号を取り込んで保持することによって読み出しデータ値ＲＤを出力する。例えば、ラッチＬＴ１は、センスアンプＳＡの出力信号がハイレベルである場合には、“１”を示した読み出しデータ値ＲＤを出力し、センスアンプＳＡの出力信号がローレベルである場合には、“０”を示した読み出しデータ値ＲＤを出力する。
【０２６３】
〔制御電圧の印加条件〕
図５９に示した不揮発性半導体記憶装置４において、動作対象となるメモリユニットＳＭＵに対応するロウ制御線ＣＧＷＬＰＡ，ＣＧＷＬＰＢ，ＣＧＷＬ，ＲＧＷＬ，ＥＧＷＬおよびコラム制御線ＣＧＤＴ，ＣＧＤＴＰに対する制御電圧の印加条件は、図６に示した印加条件と同様である。また、動作対象ではないメモリユニットＳＭＵに対応するロウ制御線ＣＧＷＬＰＡ，ＣＧＷＬＰＢ，ＣＧＷＬ，ＲＧＷＬ，ＥＧＷＬおよびコラム制御線ＣＧＤＴ，ＣＧＤＴＰに対する制御電圧の印加条件は、図７に示した印加条件と同様である。さらに、図５９に示した不揮発性半導体記憶装置４では、ロウ制御回路４２およびコラム制御回路４３は、全体制御回路４１による制御に応答して、ｍ個のメモリユニット行のうちいずれか１個のメモリユニット行に属するｎ個のメモリユニットＳＭＵ〜ＳＭＵを書込動作の対象として同時に選択する。なお、図５９に示した不揮発性半導体記憶装置４では、プログラム動作とは、フローティングゲートＦＧＴに電荷を注入することによってフローティングゲートＦＧＴをイレース状態からプログラム状態へ変化させる動作のことである。イレース動作とは、フローティングゲートＦＧＴから電荷を放出することによってフローティングゲートＦＧＴをプログラム状態からイレース状態へ変化させる動作のことである。
【０２６４】
〔不揮発性半導体記憶装置の書込動作〕
図５９に示した不揮発性半導体記憶装置４の書込動作は、図１９に示された書込動作と同様である。すなわち、ロウ制御回路４２およびコラム制御回路４３は、全体制御回路４１による制御に応答して、書込動作の対象となるメモリユニットＳＭＵにリード動作を実行し、読み出し回路４４は、全体制御回路１１による制御に応答して、書込動作の対象となるメモリユニットＳＭＵに格納されたデータ値を読み出しデータ値ＲＤとして読み出す（ＳＴ１０１）。次に、ロウ制御回路４２およびコラム制御回路４３は、全体制御回路４１による制御に応答して、書込動作の対象となるメモリユニットＳＭＵに反転書込動作を実行する（ＳＴ１０２）。次に、書込動作の対象となるメモリユニットＳＭＵに対する反転書込動作が開始されてから反転書込時間が経過していると全体制御回路４１が判断した場合、ロウ制御回路４２およびコラム制御回路４３は、全体制御回路４１による制御に応答して、書込動作の対象となるメモリユニットＳＭＵに対する反転書込動作を終了し、書き込みデータ値ＷＤに基づいて書込動作の対象となるメモリユニットＳＭＵに通常書込動作を実行する（ＳＴ１０３，ＳＴ１０４）。次に、書込動作の対象となるメモリユニットＳＭＵに対する通常書込動作が開始されてから通常書込時間が経過していると全体制御回路４１が判断した場合、ロウ制御回路４２およびコラム制御回路４３は、全体制御回路４１による制御に応答して、書込動作の対象となるメモリユニットＳＭＵに対する通常書込動作を終了する（ＳＴ１０５）。
【０２６５】
以上のように、反転書込動作によって書込動作の対象となるメモリユニットＳＭＵのフローティングゲートＦＧＴの電荷量を中間量（“１”を示したデータ値に対応する電荷量と“０”を示したデータ値に対応する電荷量との間の中間量）を近づけることができる。その後、通常書込動作によって書込動作の対象となるメモリユニットＳＭＵのフローティングゲートＦＧＴの電荷量を中間量から書き込みデータ値ＷＤに応じた電荷量（“１”を示したデータ値に対応する電荷量、または、“０”を示したデータ値に対応する電荷量）に近づけることができる。したがって、書込動作の対象となるメモリユニットＳＭＵにおける過消去および過書込を回避できる。書込動作の対象となるメモリユニットＳＭＵのフローティングゲートＦＧＴに電荷を注入した後に書き込みデータ値ＷＤに応じてフローティングゲートＦＧＴから電荷を放出させる場合よりも、書込時間（メモリユニットＳＭＵへの書き込みデータ値ＷＤの書き込みに要する時間）を短縮できる。
【０２６６】
また、反転書込時間に基づいて反転書込動作の実行期間を管理することにより、書込動作の対象となるメモリユニットＳＭＵのフローティングゲートＦＧＴの電荷量を中間量に正確に近づけることができる。さらに、通常書込時間に基づいて通常書込動作の実行期間を管理することにより、書込動作の対象となるメモリユニットＳＭＵのフローティングゲートＦＧＴの電荷量を書き込みデータ値ＷＤに応じた電荷量に正確に近づけることができる。したがって、書込動作の対象となるメモリユニットＳＭＵに書き込みデータ値ＷＤを正確に書き込むことができる。
【０２６７】
なお、反転書込動作期間（反転書込動作が実行される期間）と通常書込動作期間（通常書込動作が実行される期間）との間に書込停止期間（例えば、スタンバイ動作が実行される期間）を設けても良い。
【０２６８】
また、電荷放出速度および電荷注入速度が互いに異なる場合、反転書込動作期間と通常書込動作期間との間の期間において、書込動作の対象となるメモリユニットＳＭＵに対して電荷量調整動作が実行されても良い。例えば、電荷放出速度が電荷注入速度よりも速い場合には、電荷量調整動作としてプログラム動作が実行されても良い。また、電荷放出速度が電荷注入速度よりも遅い場合には、電荷量調整動作としてイレース動作が実行されても良い。このように制御することにより、電荷注入速度と電荷放出速度とが互いに異なる場合であっても、通常書込動作によって書込動作の対象となるメモリユニットＳＭＵのフローティングゲートＦＧＴの電荷量を書き込みデータ値ＷＤに応じた電荷量に近づけることができる。したがって、書込動作の対象となるメモリユニットＳＭＵに書き込みデータ値ＷＤを正確に書き込むことができる。
【０２６９】
また、図５９に示した不揮発性半導体記憶装置４において、メモリアレイ１００Ｓは、図２３のようにｍ×ｎ本のロウ制御線ＥＧＷＬ１−１〜ＥＧＷＬｍ−ｎを含んでいても良い。この場合、ロウ制御回路４２およびコラム制御回路４３は、全体制御回路４１による制御に応答して、図２３に示したロウ制御回路１２ａおよびコラム制御回路１３ａの動作と同様の動作を実行しても良い。このように構成することにより、メモリユニットＳＭＵ１１〜ＳＭＵｍｎの各々に含まれるイレースゲート（すなわち、イレースキャパシタＥＧの他端）に印加される制御電圧を個別に制御できるので、１個のメモリユニットＳＭＵを単位として書込動作の対象となる１個または複数個のメモリユニットを選択できる。
【０２７０】
また、図５９に示した不揮発性半導体記憶装置は、図２６のようにｐ個のメモリアレイ１００Ｓ〜１００Ｓを備えていても良い。この場合、メモリ制御回路４０は、全体制御回路４１と、ロウ制御回路４２と、ｐ個のメモリアレイ１００Ｓ〜１００Ｓにそれぞれ対応するｐ個のコラム制御回路４３〜４３およびｐ個の読み出し回路４４〜４４と、ＥＧＷＬ発生器１５１〜１５ｐと、コラム選択回路１６とを備えていても良い。ロウ制御回路４２およびコラム制御回路４３〜４３は、全体制御回路４１による制御に応答して、図２６に示したロウ制御回路１２ｂおよびコラム制御回路１３１〜１３ｐの動作と同様の動作を実行しても良い。このように構成することにより、１個のメモリアレイ１００Ｓを単位として書込動作の対象となるｎ個のメモリユニットＳＭＵ〜ＳＭＵを含む１個または複数個のメモリアレイを選択できる。
【０２７１】
（実施形態４の変形例１）
図６６のように、不揮発性半導体記憶装置４は、図５９および図６０に示した構成に加えて、検知回路５１を備えていても良い。なお、図６６では、全体制御回路４１の図示を省略している。ここでは、全体制御回路４１は、ロウ制御回路１２，コラム制御回路４３，読み出し回路４４，および検知回路５１を制御する。例えば、全体制御回路４１は、検知制御信号ＳＤＥＴおよび閾値電圧制御信号（図示を省略）を検知回路５１に供給しても良い。
【０２７２】
〔検知回路〕
検知回路５１は、全体制御回路４１による制御に応答して、ｎ個のメモリユニット列（ｎ本のビット線ＢＬ１〜ＢＬｎ）の各々に対して反転完了閾値電圧（反転書込動作の完了を判定するための閾値電圧）を設定する。また、検知回路５１は、全体制御回路４１による制御に応答して、ｎ個のメモリユニット列の各々についてビット線電圧ＶＢＬの瞬時値（フローティングゲートＦＧＴの電荷量に対応する電圧値）が反転完了閾値電圧に到達したことを検知する。さらに、検知回路５１は、全体制御回路４１による制御に応答して、ｎ個のメモリユニット列の各々に対して書込完了閾値電圧（通常書込動作の完了を判定するための閾値電圧）を設定する。また、検知回路５１は、全体制御回路４１による制御に応答して、ｎ個のメモリユニット列の各々についてビット線電圧ＶＢＬの瞬時値が書込完了閾値電圧に到達したことを検知する。例えば、検知回路５１は、ｎ個のメモリユニット列にそれぞれ対応するｎ個の検知器５０１１〜５０１ｎを含んでいても良い。
【０２７３】
〔検知器の構成例〕
図６７のように、検知器５０１は、インバータ２２１，２２４と、ＮＡＮＤ回路２２２，２２３，２２５〜２２７とを含んでいても良い。例えば、インバータ２２１の閾値電圧は、中間電圧ＶＴＨｍに設定され、ＮＡＮＤ回路２２３の閾値電圧は、中間電圧ＶＴＨｍに設定され、インバータ２２４の閾値電圧は、プログラム電圧ＶＴＨｐに設定され、ＮＡＮＤ回路２２６の閾値電圧は、イレース電圧ＶＴＨｅに設定されている。
【０２７４】
《反転完了閾値電圧の設定》
検知回路５１（検知器５０１）の反転完了閾値電圧を設定する場合、全体制御回路４１は、閾値電圧制御信号ＰＲＴｔ２，ＥＲＴｔ２をローレベルにするとともに、読み出しデータ値ＲＤに応じて閾値電圧制御信号ＰＲＴｔ１，ＥＲＴｔ１のいずれか一方をハイレベルにして他方をローレベルにする。例えば、閾値電圧制御信号ＰＲＴｔ１がハイレベルであり、閾値電圧制御信号ＥＲＴｔ１がローレベルである場合、検知回路５１（検知器５０１）の反転完了閾値電圧は、インバータ２２１の閾値電圧（中間電圧ＶＴＨｍ）に設定されることになる。この場合、ビット線電圧ＶＢＬの瞬時値が中間電圧ＶＴＨｍよりも低くなると、検知結果信号ＤＥＴがハイレベルになる。また、閾値電圧制御信号ＰＲＴｔ１がローレベルであり、閾値電圧制御信号ＥＲＴｔ１がハイレベルである場合、検知回路５１（検知器５０１）の反転完了閾値電圧は、ＮＡＮＤ回路２２３の閾値電圧（中間電圧ＶＴＨｍ）に設定されることになる。この場合、ビット線電圧ＶＢＬの瞬時値が中間電圧ＶＴＨｍよりも高くなると、検知結果信号ＤＥＴａがハイレベルになる。したがって、全体制御回路４１は、検知結果信号ＤＥＴに基づいて、ビット線電圧ＶＢＬの瞬時値が反転完了閾値電圧（ここでは、中間電圧ＶＴＨｍ）に到達したか否かを判定できる。
【０２７５】
《書込完了閾値電圧の設定》
検知回路５１（検知器５０１）の書込完了閾値電圧を設定する場合、全体制御回路２１は、閾値電圧制御信号ＰＲＴｔ１，ＥＲＴｔ１をローレベルにするとともに、書き込みデータ値ＷＤに応じて閾値電圧制御信号ＰＲＴｔ２，ＥＲＴｔ２のいずれか一方をハイレベルにして他方をローレベルにする。例えば、閾値電圧制御信号ＰＲＴｔ２がハイレベルであり、閾値電圧制御信号ＥＲＴｔ２がローレベルである場合、検知回路５１（検知器５０１）の書込完了閾値電圧は、インバータ２２４の閾値電圧（プログラム電圧ＶＴＨｐ）に設定されることになる。この場合、ビット線電圧ＶＢＬの瞬時値がプログラム電圧ＶＴＨｐよりも高くなると、検知結果信号ＤＥＴａがローレベルになる。また、閾値電圧制御信号ＰＲＴｔ２がローレベルであり、閾値電圧制御信号ＥＲＴｔ２がハイレベルである場合、検知回路５１（検知器５０１）の書込完了閾値電圧は、ＮＡＮＤ回路２２６の閾値電圧（イレース電圧ＶＴＨｅ）に設定されることになる。この場合、ビット線電圧ＶＢＬの瞬時値がイレース電圧ＶＴＨｅよりも低くなると、検知結果信号ＤＥＴがローレベルになる。したがって、全体制御回路４１は、検知結果信号ＤＥＴに基づいて、ビット線電圧ＶＢＬの瞬時値が書込完了閾値電圧（ここでは、プログラム電圧ＶＴＨｐ，イレース電圧ＶＴＨｅ）に到達したか否かを判定できる。
【０２７６】
〔不揮発性半導体記憶装置の書込動作〕
図６６に示した不揮発性半導体記憶装置の書込動作は、図３０に示した書込動作と同様である。すなわち、ロウ制御回路４２およびコラム制御回路４３は、書込動作の対象となるメモリユニットＳＭＵにリード動作を実行し、読み出し回路４４は、全体制御回路４１による制御に応答して、書込動作の対象となるメモリユニットＳＭＵに格納されたデータ値を読み出しデータ値ＲＤとして読み出す（ＳＴ２０１）。次に、全体制御回路４１は、読み出しデータ値ＲＤに基づいて検知回路５１の反転完了閾値電圧を設定する（ＳＴ２０２）。次に、全体制御回路４１は、ビット線電圧ＶＢＬの瞬時値が反転完了閾値電圧に到達していると判定するまで、ロウ制御回路４２およびコラム制御回路４３に反転書込動作およびリード動作を繰り返し実行させる（ＳＴ２０３，ＳＴ２０４，ＳＴ２０５）。次に、全体制御回路４１は、ビット線電圧ＶＢＬの瞬時値が反転完了閾値電圧に到達していると判定すると、書き込みデータ値ＷＤに基づいて検知回路５１の書込完了閾値電圧を設定する（ＳＴ２０６）。次に、全体制御回路４１は、ビット線電圧ＶＢＬの瞬時値が書込転完了閾値電圧に到達していると判定するまで、ロウ制御回路４２およびコラム制御回路４３に通常書込動作およびリード動作を繰り返し実行させる（ＳＴ２０７，ＳＴ２０８，ＳＴ２０９）。ビット線電圧ＶＢＬの瞬時値が書込完了閾値電圧に到達していると判定された場合には、通常書込動作を終了する。
【０２７７】
以上のように、ビット線電圧ＶＢＬと反転完了閾値電圧との比較結果に基づいて反転書込動作の実行期間を管理することにより、書込動作の対象となるメモリユニットＳＭＵのフローティングゲートＦＧＴの電荷量を中間量に正確に近づけることができる。さらに、ビット線電圧ＶＢＬと書込完了閾値電圧との比較結果に基づいて通常書込動作の実行期間を管理することにより、書込動作の対象となるメモリユニットＳＭＵのフローティングゲートＦＧＴの電荷量を書き込みデータ値ＷＤに応じた電荷量に正確に近づけることができる。したがって、書込動作の対象となるメモリユニットＳＭＵに書き込みデータ値ＷＤを正確に書き込むことができる。
【０２７８】
（実施形態４の変形例２）
図６８のように、不揮発性半導体記憶装置４は、図５９および図６０に示したロウ制御回路４２およびコラム制御回路４３に代えて、ロウ制御回路６２と、コラム制御回路６３と、書き換え判定回路３４とを備えていても良い。その他の構成は、図５９および図６０に示した構成と同様であっても良い。なお、図６８では、全体制御回路４１の図示を省略している。
【０２７９】
〔全体制御回路〕
ここでは、全体制御回路４１は、ロウ制御回路６２，コラム制御回路６３，読み出し回路４４，および書き換え判定回路３４を制御する。例えば、全体制御回路４１は、ラッチタイミング信号ＳＬＴ３，読み出しデータ値ＲＤ１〜ＲＤｎ，および書き込みデータ値ＷＤ１〜ＷＤｎを書き換え判定回路３４に供給し、スタンバイ制御信号ＳＴＢ，リード制御信号ＲＥＡＤ，反転リード制御信号／ＲＥＡＤ，ラッチタイミング信号ＳＬＴ２，書き込みデータ値ＷＤ１〜ＷＤｎ，および書き込み反転データ値ＸＷＤ１〜ＸＷＤｎをコラム制御回路６３に供給しても良い。
【０２８０】
〔ロウ制御回路〕
ロウ制御回路６２は、書き換え判定回路３４による判定結果（書き換え許可信号ＮＥＮＧＯ）および全体制御回路４１による制御に応答して、ｍ組のロウ制御線群（ＣＧＷＬＰＡ，ＣＧＷＬＰＢ，ＣＧＷＬ，ＲＧＷＬ，ＥＧＷＬ）に制御電圧を印加する。ロウ制御回路６２は、全体制御回路４１による制御に応答して、書込動作の対象となるメモリユニットＳＭＵにスタンバイ動作，リード動作を実行する。また、ロウ制御回路６２は、書き換え許可信号ＮＥＮＧＯがハイレベルである場合には、書込動作の対象となるメモリユニットＳＭＵに対して通常書込動作（プログラム動作，イレース動作）を実行し、書き換え許可信号ＮＥＮＧＯがローレベルである場合には、書込動作の対象となるメモリユニットＳＭＵに対して通常書込動作を実行しない。
【０２８１】
〔コラム制御回路〕
コラム制御回路６３は、書き換え判定回路３４による判定結果および全体制御回路４１による制御に応答して、ｎ組のコラム制御線群（ＣＧＤＴ，ＣＧＤＴＰ）に制御電圧を印加する。コラム制御回路６３は、スタンバイ制御信号ＳＴＢ，リード制御信号ＲＥＡＤに応答して、書込動作の対象となるメモリユニットＳＭＵにスタンバイ動作，リード動作を実行する。また、コラム制御回路６３は、書き換え許可信号ＮＥＮＧＯがハイレベルである場合には、書込動作の対象となるメモリユニットＳＭＵに対して書込動作を実行し、書き換え許可信号ＮＥＮＧＯがローレベルである場合には、書込動作の対象となるメモリユニットＳＭＵに対して書込動作を実行しない。
【０２８２】
〔制御電圧の印加条件〕
図６８に示した不揮発性半導体記憶装置において、動作対象となるメモリユニットＳＭＵに対応するロウ制御線ＣＧＷＬＰＡ，ＣＧＷＬＰＢ，ＣＧＷＬ，ＲＧＷＬ，ＥＧＷＬおよびコラム制御線ＣＧＤＴ，ＣＧＤＴＰに対する制御電圧の印加条件は、図４６に示した印加条件と同様である。また、動作対象ではないメモリユニットＳＭＵに対応するロウ制御線ＣＧＷＬＰＡ，ＣＧＷＬＰＢ，ＣＧＷＬ，ＲＧＷＬ，ＥＧＷＬおよびコラム制御線ＣＧＤＴ，ＣＧＤＴＰに対する制御電圧の印加条件は、図４７に示した印加条件と同様である。さらに、図６８に示した不揮発性半導体記憶装置では、ロウ制御回路６２およびコラム制御回路６３は、全体制御回路４１により制御に応答して、ｍ個のメモリユニット行のうちいずれか１個のメモリユニット行に属するｎ個のメモリユニットＳＭＵ〜ＳＭＵを書込動作の対象として同時に選択する。
【０２８３】
〔コラム制御回路の構成例〕
コラム制御回路６３は、ｎ組のコラム制御線群（ＣＧＤＴ，ＣＧＤＴＰ）にそれぞれ対応するｎ個のコラム制御部を含んでいても良い。ｎ個のコラム制御部の各々は、図６２および図６３に示した第１のコラム制御信号発生器４０３Ａに代えて、図６９に示した第１のコラム制御信号発生器６０３Ａを含んでいても良い。その他の構成は、図６２に示した構成と同様であっても良い。図６９に示した第１のコラム制御信号発生器６０３Ａは、図６３に示したプログラムデコーダＡ１０１に代えて、プログラムデコーダＡ３０１を含んでいても良い。その他の構成は、図６３に示した構成と同様であっても良い。
【０２８４】
〔不揮発性半導体記憶装置の書込動作〕
図６８に示した不揮発性半導体記憶装置による書込動作は、図５０に示した書込動作と同様である。すなわち、ロウ制御回路６２およびコラム制御回路６３は、全体制御回路４１による制御に応答して、書込動作の対象となるメモリユニットＳＭＵにリード動作を実行し、読み出し回路４４は、全体制御回路４１による制御に応答して、書込動作の対象となるメモリユニットＳＭＵに格納されたデータ値を読み出しデータ値ＲＤとして読み出す（ＳＴ３０１）。書き換え判定回路３４は、全体制御回路４１による制御に応答して、書き込みデータ値ＷＤ１〜ＷＤｎが読み出しデータ値ＲＤ１〜ＲＤｎとは異なるか否かを判定する（ＳＴ３０２）。書き込みデータ値ＷＤ１〜ＷＤｎが読み出しデータ値ＲＤ１〜ＲＤｎとは異なる場合、ロウ制御回路６２およびコラム制御回路６３は、全体制御回路４１による制御に応答して、書込動作の対象となるメモリユニットＳＭＵに通常書込動作を実行する（ＳＴ３０３）。一方、書き込みデータ値ＷＤ１〜ＷＤｎが読み出しデータ値ＲＤ１〜ＲＤｎと同一である場合、ロウ制御回路６２およびコラム制御回路６３は、書込動作の対象となるメモリユニットＳＭＵに通常書込動作を実行しない。
【０２８５】
以上のように、書込動作の対象となるｎ個のメモリユニットＳＭＵ〜ＳＭＵに格納されたデータ値の書き換えが不要である場合には、ｎ個のメモリユニットＳＭＵ〜ＳＭＵに対して通常書込動作（プログラム動作，イレース動作）が実行されない。したがって、書込動作の対象となるメモリユニットＳＭＵにおける過消去および過書込を回避できる。また、書込動作の対象となるメモリユニットＳＭＵのフローティングゲートＦＧＴに電荷を注入した後に書き込みデータ値ＷＤに応じてフローティングゲートＦＧＴから電荷を放出させる場合よりも、書込時間を短縮できる。
【０２８６】
また、図６８に示した不揮発性半導体記憶装置において、メモリアレイ１００Ｓは、図５３のようにｍ×ｎ本のロウ制御線ＥＧＷＬ１−１〜ＥＧＷＬｍ−ｎを含んでいても良い。この場合、メモリ制御回路４０は、書き換え判定回路３４に代えて、図５３に示した書き換え判定回路３４ａを含んでいても良い。また、ロウ制御回路４２およびコラム制御回路４３は、書き換え判定回路３４ａによる判定結果（比較結果信号ＮＥＮ１〜ＮＥＮｎ）および全体制御回路４１による制御に応答して、図５３に示したロウ制御回路３２ａおよびコラム制御回路３３ａの動作と同様の動作を実行しても良い。このように構成することにより、１個のメモリユニットＳＭＵを単位として書込動作の対象となる１個または複数個のメモリユニットを選択できる。
【０２８７】
また、図６８に示した不揮発性半導体記憶装置は、図５８のようにｐ個のメモリアレイ１００Ｓ〜１００Ｓを備えていても良い。この場合、メモリ制御回路４０は、全体制御回路４１と、ロウ制御回路４２と、ｐ個のメモリアレイ１００Ｓ〜１００Ｓにそれぞれ対応するｐ個のコラム制御回路４３〜４３およびｐ個の読み出し回路４４〜４４と、ＥＧＷＬ発生器１５１〜１５ｐと、コラム選択回路１６と、書き換え判定回路３４とを備えていても良い。この場合、ロウ制御回路４２およびコラム制御回路４３〜４３は、全体制御回路４１による制御に応答して、図５８に示したロウ制御回路３２ｂおよびコラム制御回路３３１〜３３ｐの動作と同様の動作を実行しても良い。このように構成することにより、１個のメモリアレイ１００Ｓを単位として書込動作の対象となるｎ個のメモリユニットＳＭＵ〜ＳＭＵを含む１個または複数個のメモリアレイを選択できる。
【０２８８】
（キャパシタおよびトランジスタの構成例）
図７０は、コントロールキャパシタＣＧ，イレースキャパシタＥＧ，およびリードトランジスタＲＧの構成例を示す。ここでは、説明の簡略化のために、フローティングゲートＦＧＴ，ＦＧＢを“フローティングゲートＦＧ”と表記する。Ｐ型基板７０（例えば、Ｐ型シリコン基板）には、Ｎ型ウェル領域７１，７２が形成される。また、Ｐ型基板７０には、Ｐ型拡散層７３を介して基板電圧ＶＳｕｂが印加される。コントロールキャパシタＣＧ（ここでは、ＰＭＯＳトランジスタ）は、Ｎウェル領域７２に形成されたＰ型拡散層７４，７５およびゲート電極７６によって構成される。ゲート電極７６は、フローティングゲートＦＧに接続され、Ｐ型拡散層７４，７５は、デコードデバイスＤＤに接続される。また、Ｎウェル領域７２は、Ｎ型拡散層７７を介してデコードデバイスＤＤに接続される。イレースキャパシタＥＧ（ここでは、Ｎ型のＤＭＯＳトランジスタ）は、Ｎウェル領域７１に形成されたＮ型拡散層７８，７９およびゲート電極８０によって構成される。ゲート電極８０は、フローティングゲートＦＧに接続され、Ｎ型拡散層７８，７９は、ロウ制御線ＥＧＷＬに接続される。また、Ｎウェル領域７１は、Ｎ型拡散層８１を介してロウ制御線ＥＧＷＬに接続される。リードトランジスタＲＧは、Ｐ型基板７０に形成されたＮ型拡散層８２，８３およびゲート電極８４によって構成される。ゲート電極８４は、フローティングゲートＦＧに接続される。Ｎ型拡散層８２は、ソース線ＳＬに接続され、Ｎ型拡散層８３は、選択トランジスタＭＳ（図示せず）を介してビット線ＢＬ（または、ビット線ＢＬＸ）に接続される。
【０２８９】
ここで、コントロールキャパシタＣＧの容量値は、イレースキャパシタＥＧの容量値およびリードトランジスタＲＧのゲート容量の容量値よりも大きいことが好ましい。さらに、イレースキャパシタＥＧの容量値は、リードトランジスタＲＧのゲート容量の容量値よりも小さいことが好ましい。例えば、コントロールキャパシタＣＧを構成するＰＭＯＳキャパシタ（ＰＭＯＳトランジスタ）のチャネル面積は、イレースキャパシタＥＧを構成するＤＭＯＳキャパシタ（すなわち、Ｎ型のＤＭＯＳトランジスタを用いたＮＭＯＳキャパシタ）のチャネル面積およびリードトランジスタＲＧのチャネル面積よりも大きいことが好ましい。さらに、イレースキャパシタＥＧを構成するＤＭＯＳキャパシタのチャネル面積は、リードトランジスタＲＧのチャネル面積よりも小さいことが好ましい。または、コントロールキャパシタＣＧを構成するＰＭＯＳキャパシタの酸化膜厚は、イレースキャパシタＥＧを構成するＤＭＯＳキャパシタの酸化膜厚およびリードトランジスタＲＧの酸化膜厚よりも薄いことが好ましい。さらに、イレースキャパシタＥＧを構成するＤＭＯＳキャパシタの酸化膜厚は、リードトランジスタＲＧの酸化膜厚よりも厚いことが好ましい。このように構成することにより、イレースキャパシタＥＧ（ゲート電極８０とＮウェル領域７１との間）に印加される電圧を高くすることができるので、電荷放出速度を高速化することができる。
【０２９０】
なお、コントロールキャパシタＣＧは、ＰＭＯＳキャパシタによって構成され、イレースキャパシタＥＧは、ＤＭＯＳキャパシタによって構成されるものとして説明したが、コントロールキャパシタＣＧおよびイレースキャパシタＥＧは、ＭＯＳキャパシタではない他のキャパシタによって構成されても良い。
【産業上の利用可能性】
【０２９１】
以上説明したように、上述の不揮発性半導体記憶装置は、標準ＣＭＯＳプロセスによって製造されたシステムＬＳＩなどに好適である。
【符号の説明】
【０２９２】
１，２，３    不揮発性半導体記憶装置
１００，１００１〜１００ｐ    メモリアレイ
１０，２０，３０    メモリ制御回路
１１，１１ｂ，２１，３１，３１ｂ    全体制御回路
１２，１２ａ，１２ｂ，３２，３２ａ，３２ｂ    ロウ制御回路
１３，１３ａ，１３１〜１３ｐ，３３，３３ａ，３３１〜３３ｐ    コラム制御回路
１４，１４１〜１４ｐ    読み出し回路
１５１〜１５ｐ    ＥＧＷＬ発生器
１６    コラム選択回路
２２    検知回路
３４，３４ａ    書き換え判定回路
ＭＵ１１〜ＭＵｍｎ    メモリユニット（差動型）
ＢＬ１〜ＢＬｎ，ＢＬＸ１〜ＢＬＸｎ    ビット線
ＤＤ    デコードデバイス
ＴＢＣ    Ｔビットセル
ＢＢＣ    Ｂビットセル
ＦＧＴ，ＦＧＢ    フローティングゲート
ＣＧ    コントロールキャパシタ
ＥＧ    イレースキャパシタ
ＲＧ    リードトランジスタ
４    不揮発性半導体記憶装置
４１    全体制御回路
４２，６２    ロウ制御回路
４３，６３    コラム制御回路
４４    読み出し回路
５１    検知回路
ＳＭＵ１１〜ＳＭＵｍｎ    メモリユニット（シングル型）
【図１】
2012174294.tif 000003
【図２】
2012174294.tif 000004
【図３】
2012174294.tif 000005
【図４】
2012174294.tif 000006
【図５】
2012174294.tif 000007
【図６】
2012174294.tif 000008
【図７】
2012174294.tif 000009
【図８】
2012174294.tif 000010
【図９】
2012174294.tif 000011
【図１０】
2012174294.tif 000012
【図１１】
2012174294.tif 000013
【図１２】
2012174294.tif 000014
【図１３】
2012174294.tif 000015
【図１４】
2012174294.tif 000016
【図１５】
2012174294.tif 000017
【図１６】
2012174294.tif 000018
【図１７】
2012174294.tif 000019
【図１８】
2012174294.tif 000020
【図１９】
2012174294.tif 000021
【図２０】
2012174294.tif 000022
【図２１】
2012174294.tif 000023
【図２２】
2012174294.tif 000024
【図２３】
2012174294.tif 000025
【図２４】
2012174294.tif 000026
【図２５】
2012174294.tif 000027
【図２６】
2012174294.tif 000028
【図２７】
2012174294.tif 000029
【図２８】
2012174294.tif 000030
【図２９】
2012174294.tif 000031
【図３０】
2012174294.tif 000032
【図３１】
2012174294.tif 000033
【図３２】
2012174294.tif 000034
【図３３】
2012174294.tif 000035
【図３４】
2012174294.tif 000036
【図３５】
2012174294.tif 000037
【図３６】
2012174294.tif 000038
【図３７】
2012174294.tif 000039
【図３８】
2012174294.tif 000040
【図３９】
2012174294.tif 000041
【図４０】
2012174294.tif 000042
【図４１】
2012174294.tif 000043
【図４２】
2012174294.tif 000044
【図４３】
2012174294.tif 000045
【図４４】
2012174294.tif 000046
【図４５】
2012174294.tif 000047
【図４６】
2012174294.tif 000048
【図４７】
2012174294.tif 000049
【図４８】
2012174294.tif 000050
【図４９】
2012174294.tif 000051
【図５０】
2012174294.tif 000052
【図５１】
2012174294.tif 000053
【図５２】
2012174294.tif 000054
【図５３】
2012174294.tif 000055
【図５４】
2012174294.tif 000056
【図５５】
2012174294.tif 000057
【図５６】
2012174294.tif 000058
【図５７】
2012174294.tif 000059
【図５８】
2012174294.tif 000060
【図５９】
2012174294.tif 000061
【図６０】
2012174294.tif 000062
【図６１】
2012174294.tif 000063
【図６２】
2012174294.tif 000064
【図６３】
2012174294.tif 000065
【図６４】
2012174294.tif 000066
【図６５】
2012174294.tif 000067
【図６６】
2012174294.tif 000068
【図６７】
2012174294.tif 000069
【図６８】
2012174294.tif 000070
【図６９】
2012174294.tif 000071
【図７０】
2012174294.tif 000072