"複数の閾値レベルのうちの1つを記憶する複数のメモリセルがマトリックス状に配置されたメモリセルアレイと、前記メモリセルアレイ内の第1のメモリセルに複数の前記閾値レベルのうちの1つの閾値レベルを書き込むとき、本来の閾値レベルより低い閾値レベルに書き込み、前記第1のメモリセルと隣接する第2のメモリセルに連続して書き込みが行なわれない場合、前記第1のメモリセルは、前記低い閾値レベルに保持し、時間経過後、前記第2のメモリセルに複数の前記閾値レベルのうちの1つの閾値レベルを書き込むとき、前記第1のメモリセルの閾値レベルを読み出し、この後、前記第2メモリセルに所定の閾値レベルに書き込んだ後、前記読み出した結果に基づき、前記第1のメモリセルに本来の閾値レベルを書き込む制御回路とを具備することを特徴とする半導体記憶装置。制御回路は、前記第1のメモリセルと隣接する第2のメモリセルに連続して書き込みが行なわれる場合、前記第2メモリセルの閾値レベルを本来の閾値レベルより低い閾値レベルに書き込んだ後、前記第1のメモリセルに本来の閾値レベルを書き込むことを特徴とする請求項1記載の半導体記憶装置。複数の閾値レベルのうちの1つを記憶する複数のメモリセルがマトリックス状に配置されたメモリセルアレイと、前記メモリセルアレイ内の第1のメモリセルに複数の前記閾値レベルのうちの1つの閾値レベルを書き込むときで、前記第1のメモリセルと隣接する第2のメモリセルに連続して書き込みが行われる場合、本来の閾値レベルより低い閾値レベルに書き込み、前記第1のメモリセルと隣接する第2のメモリセルに連続して書き込みが行われない場合、書き込み速度を低下させて、前記第1のメモリセルに書き込む制御回路とを具備することを特徴とする半導体記憶装置。前記制御回路は、特定のコマンドの受信により、前記書き込み速度を低下させることを特徴とする請求項3記載の半導体記憶装置。複数の閾値レベルのうちの1つを記憶する直列接続された複数のメモリセルと、前記直列接続された複数のメモリセルの一端部及び他端部に接続された第1、第2の選択ゲートと、前記第1、第2の選択ゲートの少なくとも1つと、前記第1、第2の選択ゲートの少なくとも1つと隣接するメモリセルとの間に接続された少なくとも1つのダミーセルとを具備することを特徴とする半導体記憶装置。前記メモリセルにデータを書き込むとき、前記ダミーセルのゲートに前記第1の選択ゲートの電圧より高い電位を供給することを特徴とする請求項5の半導体記憶装置。本発明は、隣接セルの書き込みにより、既に書き込まれたセルの閾値レベルの変動を抑制することが可能な半導体記憶装置を提供しようとするものである。本実施形態に係る半導体記憶装置によれば、複数の閾値レベルのうちの1つを記憶する複数のメモリセルがマトリックス状に配置されたメモリセルアレイと、前記メモリセルアレイ内の第1のメモリセルに複数の前記閾値レベルのうちの1つの閾値レベルを書き込むとき、本来の閾値レベルより低い閾値レベルに書き込み、前記第1のメモリセルと隣接する第2のメモリセルに連続して書き込みが行なわれない場合、前記第1のメモリセルは、前記低い閾値レベルに保持し、時間経過後、前記第2のメモリセルに複数の前記閾値レベルのうちの1つの閾値レベルを書き込むとき、前記第1のメモリセルの閾値レベルを読み出し、この後、前記第2メモリセルに所定の閾値レベルに書き込んだ後、前記読み出した結果に基づき、前記第1のメモリセルに本来の閾値レベルを書き込む制御回路とを具備することを特徴とする。以下、本発明の実施の形態について、図面を参照して説明する。第1の実施形態図2は、例えば3ビット、8値のデータを記憶するNAND型フラッシュメモリの概略構成を示している。メモリセルアレイ1は、複数のビット線と複数のワード線と共通ソース線を含み、例えばEEPROMセルからなる電気的にデータを書き換え可能なメモリセルがマトリクス状に配置されている。このメモリセルアレイ1には、ビット線を制御するためのビット制御回路2とワード線制御回路6が接続されている。ビット線制御回路2は、ビット線を介してメモリセルアレイ1中のメモリセルのデータを読み出したり、ビット線を介してメモリセルアレイ1中のメモリセルの状態を検出したり、ビット線を介してメモリセルアレイ1中のメモリセルに書き込み制御電圧を印加してメモリセルに書き込みを行なう。ビット線制御回路2には、カラムデコーダ3、データ入出力バッファ4が接続されている。ビット線制御回路2内のデータ記憶回路はカラムデコーダ3によって選択される。データ記憶回路に読み出されたメモリセルのデータは、前記データ入出力バッファ4を介してデータ入出力端子5から外部へ出力される。データ入出力端子5は、メモリチップ外部のホスト11に接続される。このホスト11は例えばマイクロコンピュータにより構成され、前記データ入出力端子5から出力されたデータを受ける。さらに、ホスト11は、NAND型フラッシュメモリの動作を制御する各種コマンドCMD、アドレスADD、及びデータDTを出力する。ホスト11からデータ入出力端子5に入力された書き込みデータは、データ入出力バッファ4を介して、カラムデコーダ3によって選択されたデータ記憶回路に供給され、コマンド及びアドレスは制御信号及び制御電圧発生回路7に供給される。ワード線制御回路6は、メモリセルアレイ1に接続されている。このワード線制御回路6は、メモリセルアレイ1中のワード線を選択し、選択されたワード線に読み出し、書き込みあるいは消去に必要な電圧を印加する。メモリセルアレイ1、ビット線制御回路2、カラムデコーダ3、データ入出力バッファ4、及びワード線制御回路6は、制御信号及び制御電圧発生回路7に接続され、この制御信号及び制御電圧発生回路7によって制御される。制御信号及び制御電圧発生回路7は、制御信号入力端子8に接続され、ホスト11から制御信号入力端子8を介して入力される制御信号ALEアドレスラッチイネーブル、CLEコマンドラッチイネーブル、WEライトイネーブルによって制御される。前記ビット線制御回路2、カラムデコーダ3、ワード線制御回路6、制御信号及び制御電圧発生回路7は書き込み回路、及び読み出し回路を構成している。また、制御信号及び制御電圧発生回路7は、ダイナミックデータキャッシュDDC制御回路7-1を有している。このDDC制御回路7-1は、後述するデータ記憶回路に含まれるダイナミックラッチ回路としての複数のDRAMのリフレッシュ動作を制御する制御信号を発生する。図3は、図2に示すメモリセルアレイ1及びビット線制御回路2の構成の一例を示している。メモリセルアレイ1には複数のNANDセルが配置されている。1つのNANDセルは、直列接続された例えば32個のEEPROMからなるメモリセルMCと、選択ゲートS1、S2とにより構成されている。選択ゲートS2はビット線BL0eに接続され、選択ゲートS1はソース線SRCに接続されている。各ロウに配置されたメモリセルMCの制御ゲートはワード線WL0~WL29、WL30、WL31に共通接続されている。また、選択ゲートS2はセレクト線SGDに共通接続され、選択ゲートS1はセレクト線SGSに共通接続されている。ビット線制御回路2は複数のデータ記憶回路10を有している。各データ記憶回路10には、一対のビット線BL0e、BL0o、BL1e、BL1o...BLie、BLio、BL8ke、BL8koが接続されている。メモリセルアレイ1は、破線で示すように、複数のブロックを含んでいる。各ブロックは、複数のNANDセルにより構成され、例えばこのブロック単位でデータが消去される。また、消去動作は、データ記憶回路10に接続されている2本のビット線について同時に行なわれる。また、ビット線の1つおきに配置され、1つのワード線に接続された複数のメモリセル破線で囲まれた範囲のメモリセルは、1セクタを構成する。このセクタ毎にデータが書き込まれ、読み出される。すなわち、ロウ方向に配置された複数のメモリセルのうち半数のメモリセルが対応するビット線に接続される。このため、ロウ方向に配置された複数のメモリセルの半数ずつに対して書き込み又は読み出し動作が実行される。リード動作、プログラムベリファイ動作及びプログラム動作時において、データ記憶回路10に接続されている2本のビット線BLie、BLioのうち外部より供給されるアドレス信号YA0、YA1...YAi...YA8kに応じて1本のビット線が選択される。さらに、外部アドレスに応じて、1本のワード線が選択され、破線で示す、3ページが選択される。この3ページの切り替えはアドレスによって行われる。図4は、図2に示すメモリセルアレイ1及びビット線制御回路2の構成の他の例を示している。図3に示す構成の場合、データ記憶回路10に2本のビット線BLie、BLioが接続されていた。これに対して、図4に示す構成の場合、各ビット線にデータ記憶回路10が接続され、ロウ方向に配置された複数のメモリセルは、全て対応するビット線に接続される。このため、ロウ方向に配置された全てのメモリセルに対して書き込み又は読み出し動作を行うことができる。尚、以下の説明は、図3に示す構成、及び図4に示す構成のいずれも適用することが可能であるが、図3を使用する場合について説明する。図5abはメモリセル及び選択トランジスタの断面図を示している。図5aはメモリセルを示している。基板51後述するP型ウェル領域55にはメモリセルのソース、ドレインとしてのn型拡散層42が形成されている。P型ウェル領域55の上にはゲート絶縁膜43を介して浮遊ゲートFG44が形成され、この浮遊ゲート44の上には絶縁膜45を介して制御ゲートCG46が形成されている。図5bは選択ゲートを示している。P型ウェル領域55にはソース、ドレインとしてのn型拡散層47が形成されている。P型ウェル領域55の上にはゲート絶縁膜48を介して制御ゲート49が形成されている。図6は、NAND型フラッシュメモリの断面図を示している。例えばP型半導体基板51内には、N型ウェル領域52、53、54、P型ウェル領域56が形成されている。N型ウェル領域52内にはP型ウェル領域55が形成され、このP型ウェル領域55内にメモリセルアレイ1を構成する低電圧NチャネルトランジスタLVNTrが形成されている。さらに、前記N型ウェル領域53、P型ウェル領域56内に、データ記憶回路10を構成する低電圧PチャネルトランジスタLVPTr、低電圧NチャネルトランジスタLVNTrが形成されている。前記基板51内には、ビット線とデータ記憶回路10を接続する高電圧NチャネルトランジスタHVNTrが形成されている。また、前記N型ウェル領域54内には例えばワード線駆動回路等を構成する高電圧PチャネルトランジスタHVPTrが形成されている。図5に示すように、高電圧トランジスタHVNTr、HVPTrは、低電圧トランジスタLVNTr、LVPTrに比べて例えば厚いゲート絶縁膜を有している。図7は、図6に示す各領域に供給される電圧の例を示している。消去、プログラム、リードにおいて、各領域に図7に示すような電圧が供給される。ここで、Veraは、データの消去時に基板に印加される電圧、Vssは接地電圧、Vddは電源電圧、Vpgmhはデータの書き込み時にワード線に供給される電圧VpgmVth、Vreadhは、データの読み出し時にワード線に供給される電圧VreadVthである。図8は、図3に示すデータ記憶回路10の一例を示す回路図である。このデータ記憶回路10は、例えば3ビット、8値のデータを書き込み、読み出す場合を示しており、プライマリデータキャッシュPDC、セコンダリデータキャッシュSDC、ダイナミックデータキャッシュDDCA、DDCB、DDCC、テンポラリデータキャッシュTDCを有している。SDC、PDC、DDCA、DDCB、DDCCは、書き込み時に入力データを保持し、読み出し時に読み出しデータを保持し、ベリファイ時に一時的にデータを保持し、多値データを記憶する際に内部データの操作に使用される。TDCは、データの読み出し時にビット線のデータを増幅し、一時的に保持するとともに、多値データを記憶する際に内部データの操作に使用される。SDCは、スタティックラッチ回路を構成するクロックドインバータ回路61a、61b、及びトランジスタ61c、61dにより構成されている。トランジスタ61cはクロックドインバータ回路61aの入力端と、クロックドインバータ回路61bの入力端の間に接続されている。このトランジスタ61cのゲートには信号EQ2が供給されている。トランジスタ61dはクロックドインバータ回路61aの出力端と接地間に接続されている。このトランジスタ61dのゲートには信号PRSTが供給されている。SDCのノードN2aは、カラム選択トランジスタ61eを介して入出力データ線IOnに接続され、ノードN2bは、カラム選択トランジスタ61fを介して入出力データ線IOに接続される。これらトランジスタ61e、61fのゲートにはカラム選択信号CSLiが供給されている。SDCのノードN2aは、トランジスタ61g、61hを介してPDCのノードN1aに接続されている。トランジスタ61gのゲートには信号BLC2が供給され、トランジスタ61hのゲートには信号BLC1が供給されている。PDCは、スタティックラッチ回路を構成するクロックドインバータ回路61i、61j及びトランジスタ61kにより構成されている。トランジスタ61kは、クロックドインバータ回路61iの入力端とクロックドインバータ回路61jの入力端の相互間に接続されている。このトランジスタ61kのゲートには信号EQ1が供給されている。PDCのノードN1bはトランジスタ61lのゲートに接続されている。このトランジスタ61lの電流通路の一端はトランジスタ61mを介して接地されている。このトランジスタ61mのゲートには信号CHK1が供給されている。また、トランジスタ61lの電流通路の他端はトランスファーゲートを構成するトランジスタ61n、61oの電流通路の一端に接続されている。このトランジスタ61nのゲートには信号CHK2nが供給されている。また、トランジスタ61oのゲートはノードN3に接続されている。トランジスタ61n、61oの電流通路の他端は、信号線COMiに接続されている。この信号線COMiは全データ記憶回路10に共通に接続され、この信号線COMiのレベルにより、全データ記憶回路10のベリファイが完了したかどうかを判定できる。すなわち、後述するように、ベリファイが完了すると、PDCのノードN1bがローレベルノードN1aがハイレベルとなる。この状態において、信号CHK1、CHK2nをハイレベルとすると、ベリファイが完了している場合、信号COMiがハイレベルとなる。さらに、前記TDCは、例えばMOSキャパシタ61pにより構成されている。このキャパシタ61pは、一端が前記トランジスタ61g、61hの接続ノードN3に接続され、他端に後述する信号BOOSTが供給されている。また、接続ノードN3には、トランジスタ61qA~61qCを介してDDCA、DDCB、DDCCが接続される。前記トランジスタ61qA~61qCのゲートには、信号REGA~REGCが供給されている。ダイナミックラッチ回路を構成するDDCA、DDCB、DDCCは、トランジスタ61rA~61rCにより構成されている。トランジスタ61rA~61rCの電流通路の一端には信号VPREが供給され、他端は前記トランジスタ61qA~61qCの電流通路にそれぞれ接続されている。このトランジスタ61rA~61rCのゲートはトランジスタ61sA~61sCを介して前記PDCのノードN1aにそれぞれ接続されている。このトランジスタ61sA~61sCのゲートには信号DTGA~DTGCがそれぞれ供給されている。さらに、前記接続ノードN3にはトランジスタ61t、61uの電流通路の一端が接続されている。トランジスタ61uの電流通路の他端には信号VPREが供給され、ゲートにはBLPREが供給されている。前記トランジスタ61tのゲートには信号BLCLAMPが供給されている。このトランジスタ61tの電流通路の他端はトランジスタ61vを介してビット線BLoの一端に接続され、トランジスタ61wを介してビット線BLeの一端に接続されている。ビット線BLoの一端はトランジスタ61xの電流通路の一端に接続されている。このトランジスタ61xのゲートには信号BIASoが供給されている。ビット線BLeの一端はトランジスタ61yの電流通路の一端に接続されている。このトランジスタ61yのゲートには信号BIASeが供給されている。これらトランジスタ61x、61yの電流通路の他端には、信号BLCRLが供給されている。トランジスタ61x、61yは、信号BIASo、BIASeに応じてトランジスタ61v、61wと相補的にオンとされ、非選択のビット線に信号BLCRLの電位を供給する。尚、前記ノードN3と接地間には、例えばMOSキャパシタ61zが接続されている。このキャパシタ61zは、後述するTDCのキャパシタ61pを信号BOOSTにより昇圧する際、カップリングにより、ノードN3の電位が上昇し過ぎないように、ノードN3の電位を調整する。以後、PDCのデータはノードN1aの電位、SDCのデータはノードN2aの電位、TDCのデータはノードN3の電位とする。DDCA~DDCCのデータは、トランジスタ61rA~61rCのゲートの電位とする。上記各信号及び電圧は、図2に示す制御信号及び制御電圧発生回路7により生成され、この制御信号及び制御電圧発生回路7の制御に基づき、データの書き込み、ベリファイ、読み出し動作が制御される。さらに、DDCA~DDCCは、DDC制御回路7-1により、発生された制御信号によりリフレッシュされる。本メモリは、1つのセルに8個の閾値電圧により、3ビットのデータを記憶する。この3ビットの切り替えはアドレス第1ページ、第2ページ、第3ページによって制御される。図9は、アドレス入力サイクルを示すタイミング図を示している。図9に示すコマンドラッチイネーブル信号CLEをローレベル以下、ローレベルと記すアドレスラッチイネーブル信号ALEをハイレベル以下、ハイレベルと記すとして、ライトイネーブル信号WEnをローレベルからハイレベルとした時、外部から入力されるI/O0-7がアドレスとして読み取られる。図10は、入力サイクルとアドレスの割当てを示している。図10に示すように、第1、第2サイクルはカラムアドレス、第3サイクルのI/O0-1A16,A17は、ページアドレスを切り替えるMLCMultiLevelCellアドレスであり、例えばA16,A17=L,Lのときロワーページ、A16,A17=H,Lのときアッパーページ、A16,A17=L,Hのときハイアーページとなる、第3サイクルのI/O3A18は、2本のビット線BLie、BLioの一方を選択し、第3サイクルのI/O3-7A19-A23は、NANDセル内の32本のワード線の1つを選択する。第4、5サイクルはブロックアドレスを示している。図11は、メモリセルアレイプレーン0、1とブロックの関係を示している。図11に示すように、本NAND型フラッシュメモリは、2つのプレーン0、1を有している。各プレーン0,1は、例えば図2に示すメモリセルアレイ1、ビット線制御回路2、カラムデコーダ3、ワード線制御回路6有している。制御信号及び制御電圧発生回路7、制御信号入力端子8、データ入出力バッファ4、データ入出力端子5は、各プレーンに共有される。尚、図11には、ビット線制御回路2のみを示している。また、プレーン0にブロック0~2047が配置され、プレーン1にブロック2048~4095が配置されている。このように、プレーン0、1に対して複数のブロックが配置されているため、プレーンを第5サイクルのI/O3A36で選択する。また、各プレーン内の任意のブロックを1ずつ、合計2ブロック同時に選択して、リード、プログラム、イレーズすることが可能とされている。図12は、メモリセルのデータとメモリセルの閾値電圧分布の関係を表している。消去動作を行うとメモリセルのデータは一番左の閾値電圧となる。書き込み動作により、1つのセルに3ビット8値のデータが記憶されることによって8個の閾値分布となる。上記構成において、動作について説明する。プログラム及びプログラムベリファイプログラム順序図13は、NANDセルの書き込み順序を示している。ブロック内において、ソース線に近いメモリセルからページごとに書き込み動作を行なう。図14a~fは、書き込み毎の閾値電圧の遷移を示している。図13、図14a~fに示すように、第1ステージ、第2ステージの2回の書き込み動作により、1つのセルに3ビット8値のデータが書き込まれる。先ず、第0回目の書き込み[0]において、ワード線WL0、ビット線BLeのセルに、第1ステージの書き込み動作により、ロワーページ、アッパーページ、ハイアーページページアドレス:0,1,2の3ビット7値のデータが書き込まれる。この結果、図14aに示す閾値電圧の分布となる。次に、第1回目の書き込み[1]において、ワード線WL0、ビット線BLoのセルに、第1ステージの書き込み動作により、ロワーページ、アッパーページ、ハイアーページページアドレス:3,4,5の3ビット7値のデータが書き込まれる。次に、第2回目の書き込み[2]において、ワード線WL1、ビット線BLeのセルに、第1ステージの書き込み動作により、ロワーページ、アッパーページ、ハイアーページページアドレス:6,7,8の3ビット7値のデータが書き込まれる。次に、第3回目の書き込み[3]において、ワード線WL1、ビット線BLoのセルに、第1ステージの書き込み動作により、ロワーページ、アッパーページ、ハイアーページページアドレス:9,10,11の3ビット7値のデータが書き込まれる。すると、例えばワード線WL0、ビット線BLeのセルの閾値電圧の分布は、図14bに破線で示すように、隣接セルの閾値電圧が変化することにより、広がってしまう。次に、第4回目の書き込み[4]において、ワード線WL0、ビット線BLeのセルに、第2ステージの書き込み動作により、ロワーページ、アッパーページ、ハイアーページページアドレス:0,1,2の3ビット8値のデータが書き込まれ、図14cに実線で示す閾値分布となる。次に、第5回目の書き込み[5]において、ワード線WL0、ビット線BLoのセルに、第2ステージの書き込み動作により、ロワーページ、アッパーページ、ハイアーページページアドレス:3,4,5の3ビット8値のデータが書き込まれる。次に、第6回目の書き込み[6]において、ワード線WL2、ビット線BLeのセルに、第1ステージの書き込み動作により、ロワーページ、アッパーページ、ハイアーページページアドレス:12,13,14の3ビット7値のデータが書き込まれる。次に、第7回目の書き込み[7]において、ワード線WL2、ビット線BLoのセルに、第1ステージの書き込み動作により、ロワーページ、アッパーページ、ハイアーページページアドレス:12,13,14の3ビット7値のデータが書き込まれる。次に、第8回目の書き込み[8]において、ワード線WL1,ビット線BLeのセルに、第2ステージの書き込み動作により、ロワーページ、アッパーページ、ハイアーページページアドレス:6,7,8の3ビット8値のデータが書き込まれる。次に、第9回目の書き込み[9]において、ワード線WL1、ビット線BLoのセルに、第2ステージの書き込み動作により、ロワーページ、アッパーページ、ハイアーページページアドレス:9,10,11の3ビット8値のデータが書き込まれる。すると、例えばワード線WL0、ビット線BLeのセルの閾値電圧の分布は、図14dに破線で示すように、隣接セルの閾値電圧が変化することにより広がってしまう。図15は、図4に示す1つのNANDセルに関して、上記のような書き込み動作を行った場合を示している。図15において、図13と同一書き込み順序、同一ページアドレスには同一符号を付している。図15に示す書き込み動作の場合においても、各メモリセルの閾値レベルは図14に示すように変化する。このため、図15に示す書き込み動作の場合も上記と同様の問題を有している。そこで、第1の実施形態は、次のような書き込み動作により、隣接セルの書き込み動作による閾値レベルの変動を防止している。図1は、第1の実施形態に係る書き込み動作を示している。この書き込み動作は、例えば図2に示す制御信号及び制御電圧発生回路7、又は、ホスト11により実行される。図14、図15を参照して書き込み動作について説明する。図14、図15に示す書き込み順序の場合、先ず、ホスト11から送られてきたデータが最後かどうかを判別し、最後のデータである場合と、最後のデータではない場合、つまり続けて次のページの書き込みがある場合で書き込み動作が異なっている。すなわち、先ず、ホスト11から送られてきたデータが、最後かどうかが判別されるS1。例えばホスト11から送られてきたデータが有るかどうかが判別される。この結果、送られてきたデータが有り、最後のデータではない場合、上記と同様の動作により、書き込むべきセルが本来の閾値レベルより低いレベルに書き込まれる。例えば書き込み[1]のページアドレス3,4,5が最後のデータではない場合、書き込み[1]に示すワード線WL1に接続されたメモリセルのページアドレス3,4,5に、本来の閾値レベルより低めの閾値レベルが書き込まれるS2。すなわち、この場合、本来のベリファイレベルより低めのベリファイレベルを用いてプログラムベリファイが行われる。この後、隣接セルに所定の閾値レベルが書き込まれる。すなわち、書き込むべきセルより前に書き込まれたセル、つまり、書き込み[2]に示すワード線WL0に接続されたメモリセルのページアドレス0,1,2に本来のベリファイレベルが書き込まれるS3。次いで、書き込むべきセルより後に書き込まれるセル、つまり、書き込み[3]に示すワード線WL2に接続されたメモリセルのページアドレス6、7、8に本来の閾値レベルより低い閾値レベルが書き込まれるS4。この後、書き込むべきセルに本来の閾値レベルが書き込まれるS5。つまり、書き込み[4]に示すワード線WL1に接続されたメモリセルのページアドレス3,4,5に、本来の閾値レベルが書き込まれる。このような動作がホスト11から送られてきたデータに従って実行される。一方、例えば書き込み[1]のページアドレス3,4,5が最後のデータである場合、次のように動作する。前記ステップS1において、書き込み[1]のページアドレス3,4,5に続く、書き込み[3]のページアドレス6,7,8データが、ホスト11から送られてないと判別された場合、ステップS6に制御が移行される。このステップS6において、書き込み[1]に示すワード線WL1に接続されたメモリセルのページアドレス3,4,5に、本来の閾値レベルより低めの閾値レベルが書き込まれる。すなわち、この場合、本来のベリファイレベルより低めのベリファイレベルを用いてプログラムベリファイが行われる。この後、隣接セルに所定の閾値レベルが書き込まれるS7。すなわち、既に送られているページアドレス0,1,2のデータに基づき、書き込み[2]に示すワード線WL0に接続されたメモリセル、つまり、書き込むべきセルより前に書き込まれたセルのページアドレス0,1,2に本来のベリファイレベルが書き込まれる。この後、書き込むべきセルに本来の閾値レベルが書き込まれるS8。つまり、書き込み[4]に示すように、最後に送られてきたページアドレス3,4,5のデータに基づき、ワード線WL1に接続されたメモリセルのページアドレス3,4,5に、本来の閾値レベルが書き込まれる。このような動作がホスト11から送られてきたデータに従って実行される。この後、時間が経過し、書き込みを再会する場合、例えばホスト11の指示により、最後に書き込んだメモリセルと隣接するセルには書き込まず、最後に書き込んだメモリセルと離れたセルに書き込む。すなわち、上記のように、書き込み[1]のページアドレス3,4,5が最後の書き込みであった場合、書き込み[3]のページアドレス6,7,8には書き込まず、ホスト11は、例えば書き込み[5]のページアドレス9,10,11から書き始めるように制御する。すなわち、書き込み再開後、ホスト11から書き込み[5]のページアドレス9,10,11のデータが送られてくると、制御がステップS1からS2乃至S5に移行され、上記と同様の書き込み動作が実行される。このため、書き込み済みのページアドレス0,1,2と、ページアドレス3,4,5のセルのデータの閾値電圧は、浮遊ゲート相互間のカップリングにより上昇しない。尚、上記説明では、書き込み3に変えて書き込み5に位置するセルにデータを書き込んだが、これに限らず、書き込み5に対してワード線方向に隣接する図示せぬ書き込み7に位置するセルにデータを書き込んでもよい。上記第1の実施形態によれば、書き込みデータが最後のデータである場合、メモリセルに本来の閾値レベルを書き込んでいる。このため、最後に書き込んだメモリセルは、隣接セルのデータが送られて来る以前に書き込みを完了できるため、時間経過に伴う閾値レベルの変動を防止することができる。しかも、書き込みが再開された場合、前回の書き込み動作の最後に書き込んだメモリセルと隣接するセルには書き込まず、最後に書き込んだメモリセルから離れたメモリセルにデータを書き込んでいる。このため、前回の書き込み動作の最後に書き込んだセルの閾値レベルの変動を防止することが可能である。尚、上記説明は、図15に示す構成のメモリセルアレイについて説明したが、図13に示すメモリセルアレイについても同様である。また、隣接するセルは、特定のメモリセルに対してワード線方向、ビット線方向に隣接するセルに限定されるものではない。例えば図13において、特定のメモリセルを書き込み2のメモリセルとした場合、書き込み7のメモリセルは書き込み2のメモリセルに対して斜め方向に隣接している。この書き込み7のメモリセルも、書き込み2のメモリセルとのカップリング容量が大きい場合、書き込み7のメモリセルにデータが書き込まれたとき、書き込み2のメモリセルの閾値レベルが変動する。このため、特定のメモリセルに対して斜め方向に配置されたメモリセルも、特定のメモリセルとの間のカップリング容量が大きい場合、隣接セルとして考慮される。また、特定のメモリセルに対して斜め方向に配置されたメモリセルと、特定のメモリセルとの間のカップリング容量が小さい場合は、隣接セルとしては扱わない。第2の実施形態図16は、第2の実施形態を示すものであり、図1と同一部分には同一符号を付している。第2の実施形態において、ホスト11は、NAND型フラッシュメモリに供給する最後のデータに続いて、特定のコマンド、例えば書き込み速度を低下させるコマンドを出力し、制御信号及び制御電圧発生回路7は、このコマンドに応じて例えば書き込み速度を低下させる。例えば図15に示す書き込み順序において、ホスト11から特定のコマンドが出力されるまでは、図16に示すステップS11、S2、S3、S4、S5に従って上記と同様の書き込み動作が実行される。一方、例えばページアドレス3,4,5が最終である場合、制御がステップS11からステップS12に移行される。この場合、ホスト11は、このページアドレス3,4,5に続いて特定のコマンドを出力する。制御信号及び制御電圧発生回路7は、このコマンドを受けるとS12、書き込むべきセルの例えば書き込み速度を遅くするS13。具体的には、例えばワード線に供給するプログラム電圧の印加時間を短縮したり、プログラム電圧の増加分を少なく設定したりする。書き込み速度を遅くすることにより、図14eに示すように、各閾値レベル分布を本来の閾値レベル分布より狭く設定することができる。このように、各閾値レベル分布を狭く設定した場合、次回の書き込みにおいて、隣接セルが書き込まれ、隣接セルの浮遊ゲート間のカップリングにより先に書き込んだセルの閾値レベルが広がった場合においても、図14fに示すように、各閾値レベルの間隔を確保することができる。したがって、各閾値レベルを読み出すことが可能となる。上記第2の実施形態によれば、最後の書き込みデータの後に特定のコマンドをホスト11から供給し、このコマンドに応じて最後に書き込まれるセルの閾値レベルを本来の閾値レベル分布より狭く設定している。このため、隣接セルにデータを書き込んだ場合においても、既に書き込んだセルの閾値レベル分布が大幅に広がることを防止でき、読み出し時のマージンを確保することができる。尚、図13の場合、場合によっては最後の1つ前と、最後に書き込まれるセルの閾値レベルをコマンドによって区別する。第3の実施形態図17は、第3の実施形態を示しており、図1と同一部分には同一符号を付している。例えば図15に示す書き込み順序において、書き込みの最初と最後以外の動作は、第1の実施形態と同様である。一方、図15に示す、例えば書き込み[1]のページアドレス3,4,5が最終の書き込みである場合、すなわち、ホスト11から書き込み[3]のデータが送られてこない場合、制御がステップS1からステップS22に移行され、書き込み対象セルに、図14abに示すように、本来の閾値レベルより低めの閾値レベルが書き込まれる。この後、書き込みが再開され、ホスト11から書き込みコマンドと共に隣接セルの書き込みデータが供給された場合、制御がステップS21からステップS23に移行される。ステップS23では、前回の書き込み[1]に対して、例えば書き込み[3]に示すページアドレス6、7、8のデータがホスト11から供給された場合、書き込み[3]のデータに書き込む前に、書き込み[1]において本来の閾値レベルより低めに書いたセルのデータを読み出し、このデータを図4に示すデータ記憶回路10に記憶する。次いで、書き込み[3]において、書き込むべきセルに本来の閾値レベルより低めの閾値レベルで書き込むS24。この後、書き込み[4]において、データ記憶回路10に記憶したデータに基づき、書き込み[1]において書いたセルの閾値レベルを本来の閾値レベルまで書き込むS25。この後、書き込み[5]において、隣接セルに本来の閾値レベルより低い閾値レベルが書き込まれS26、上記ホスト11から供給された書き込み4に示すページアドレス3,4,5のデータが本来の閾値レベルに書き込まれるS27。上記第3の実施形態によれば、セルに書き込むデータが最後のデータである場合、セルに本来の閾値レベルより低い閾値レベルを書き込み、次の書き込み時において、隣接セルにデータを書き込む際、既に書き込んだデータをデータ記憶回路10に退避させ、隣接セルに本来の閾値レベルより低い閾値レベルを書き込んだ後、データ記憶回路10に退避させたデータに基づき、先に書き込んだセルの閾値レベルを本来の閾値レベルに設定している。このため、書き込み再開後、隣接セルにデータを書き込んだ際に、カップリングにより先に書き込んだメモリセルの閾値レベルが広がることを防止できる。尚、第3の実施形態において、最後に書き込まれたデータは、次回の書き込みの際、データ記憶回路10に退避したが、これに限定されるものではなく、例えばホスト11に退避させることも可能である。上記第1乃至第3の実施形態は、書き込みの第1ステージにおいて、8値のデータを書き込む場合について説明した。しかし、これに限定されるのもではない。また、上記第1乃至第3の実施形態は、図15を参照して説明したが、図13に示し書き込み順序の場合も同様に実施することができる。図18、19、20a~fは、第1乃至第3の実施形態の第1の変形例を示すものである。この例の場合、初めに2ビットロワーページとアッパーページのデータにより4値を書き込み図20a、この後、隣接セルに4値を書き込む図20b。次いで、1ビットハイアーページ又は3ビットロワーページ、アッパーページ、ハイアーページのデータにより、低めのベリファイレベルを用いて低めの閾値レベルまで8値を書き込む図20c。この後、隣接セルに4値を書き込み、さらに、隣接セルに、1ビットハイアーページ又は3ビットロワーページ、アッパーページ、ハイアーページのデータを用いて8値の閾値レベルを書き込む図20d。続いて、再び3ビットのデータロワーページ、アッパーページ、ハイアーページ及び本来のベリファイレベルを用いて、8値を本来の閾値レベルまで書き込む図20e。さらに、同様にして隣接セルに8値を書き込む図20f。図21、22、23a~fは、第1乃至第3の実施形態の第2の変形例を示すものである。この例の場合、初めに1ビットロワーページのデータにより2値を書き込む図23a。この後、隣接セルに2値を書き込む図23b。次に、2ビットアッパーページ、ハイアーページ又は3ビットロワーページ、アッパーページ、ハイアーページのデータにより8値を低めのベリファイレベルまで書き込む図23c。この後、隣接セルに2ビットアッパーページ、ハイアーページ又は3ビットロワーページ、アッパーページ、ハイアーページのデータを用いて8値を書き込む図23d。次いで、再び3ビットのデータロワーページ、アッパーページ、ハイアーページのデータを用いて8値を本来の閾値レベルまで書き込む図23e。さらに、同様にして隣接セルに8値を書き込む図23f。第3の変形例において、図23eに示す閾値レベルの分布幅は、図14dに示す閾値レベルの分布幅と、図20eに示す閾値レベルの分布幅の中間となる。上記第1、第2の変形例は、いずれも浮遊ゲート間のカップリングが大きい場合に用いると有効である。次に、第1乃至第3の実施形態に適用される各種動作について説明する。アドレス入力及びデータ入力図24は、アドレス及びデータの入力タイミングを示している。図24に示すように、データロードコマンド80h:hは16進数を示すとアドレスと、書き込みデータを入力する。書き込みデータは、アドレスで指定されたプレーンのデータ記憶回路10、具体的には、図8に示すSDCに記憶される。この後、データ転送コマンド1Ah、又は書き込みコマンド10h又は15hが入力される。すると、選択されているプレーンのデータ記憶回路10内のSDCのデータがPDCに転送され、さらに、DDCに転送される。この後、データキャッシュの操作が行われ、ホスト11よりデータ1書き込みを行なわないが入力されると、PDCのノードN1aはハイレベルになり、データ0書き込みを行なうが入力されるとローレベルとなる。以後、PDCのデータはノードN1aの電位、SDCのデータはノードN2aの電位とする。図25aは、上記第1の変形例に適用されるコマンドとデータの関係を示している。この場合、第1ステージで2ビット4値の書き込みを行う。先ず、ロワーページのアドレスとデータを入力し、データ転送コマンド1Ahを入力する。この後、アッパーページアドレスとデータを入力し、書き込みコマンド10h又は15hを入力する。回路内部では、アッパーページのアドレスが入力されているため、4値の書き込みであることが分かる。図25bは、上記第2の変形例に適用されるコマンドとデータの関係を示している。この場合、第1ステージで1ビット2値の書き込みを行う。このため、先ずロワーページのアドレスとデータを入力し、書き込みコマンド10h又は15hを入力する。図25cも、第1ステージで2ビット4値の書き込みを行う場合である。この場合、ロワーページとアッパーページを替えても、アッパーページが入力されているため、4値の書き込みと認識できる。図25dは、8値を低めの閾値レベルに書き込む場合第1回目であり、8値を最終値まで書き込む場合第2回目と区別するため、コマンド0Dhが追加されている。この場合、先ず、ロワーページのアドレスとデータを入力し、データ転送コマンド1Ahを入力した後、アッパーページアドレスとデータを入力し、データ転送コマンド1Ahを入力する。この後、ハイアーページアドレスとデータを入力し、書き込みコマンド10h又は15hを入力する。図25eは、8値を低めの閾値レベルに書き込む場合より前に、2値ロワーページのデータが既に書き込まれている場合を示している。この場合、ロワーページのデータを外部から入力する必要はなく、メモリセルからロワーページのデータを読み出して、データ記憶回路10に記憶させる内部データロードが行なわれる。したがって、アッパーページアドレスとデータを入力し、データ転送コマンド1Ahを入力した後、ハイアーページアドレスとデータを入力し、データ転送コマンド1Ahを入力する。このように、内部データロードを用いるほかに、図25dと同様に、再度ロワーページのデータを外部より入力してもよい。図25fは、8値を低めの閾値レベルに書き込む場合より前に、4値ロワーページ、アッパーページのデータが既に書き込まれている場合を示している。この場合、ロワーページ、アッパーページのデータを外部から入力する必要はなく、内部データロードによりロワーページとアッパーページを読む。したがって、ハイアーページアドレスとデータを入力し、書き込みコマンド10h又は15hを入力する。このように、内部データロードを用いてもよいが、図25dと同様に、再度ロワーページとアッパーページのデータを外部より入力してもよい。図25gは、3ビット8値の書き込みを行う場合を示している。この場合、先ず、ロワーページのアドレスとデータを入力し、データ転送コマンド1Ahを入力する。この後、アッパーページのアドレスとデータを入力し、データ転送コマンド1Ahを入力する。次いで、ハイアーページのアドレスとデータを入力し、書き込みコマンド10h又は15hを入力する。ハイアーページのアドレスが入力されているため、3ビット8値の書き込みであることが認識される。図25gに代えて、図25hに示すように、入力するアドレス及びデータの銃所を変えることも可能である。また、内部データロードを用いてもよい。データ転送コマンドホスト11からデータ転送コマンド1Ahが供給されると、選択されているプレーンのデータ記憶回路10内のSDCのデータがPDCに転送され、さらに、DDCに転送される。DDCはキャパシタンスであるため、リフレッシュ動作が必要である。したがって、転送コマンド1Ahを入力後、DDCへの転送動作が済むと、次のデータの入力待ちのため、チップはビジー状態からレディ状態となる。しかし、チップ内部では、リフレッシュ動作を繰り返される。書き込みシーケンス:データロード、プログラムセット図26は、書き込みシーケンスを示し、図27a~eは、図26に対応した各部のデータを示している。図27aは、ホスト11より供給されるデータと書き込みレベルの関係を示している。図26に示すステップ31において、80h-Add-Dataが実行されると、任意のページ例えば2kBのデータがホスト11からSDCに供給される。1ページのみのデータ入力の場合、書き込みコマンドである10h又はキャッシ書き込みコマンド15hが入力されるS32。複数ページのデータが供給される場合、コマンド1Ahが入力されるS33。第1回目のコマンド1Ahのとき、SDCのデータは例えばDDCALDDC1へ転送され、第2回目のコマンド1Ahのとき転送され、SDCのデータは例えばDDCBLDDC0へ転送され、第3回目のコマンド1Ahのとき、SDCのデータはDDCCLDDCQへ転送される。ここで、LDDC0,LDDC1、LDDCQは、DDCA、DDCB、DDCCの何れかに記憶されたデータを示している。これらデータは、SDCを介したリフレッシュ動作により、DDCA、DDCB、DDCCの何れかに記憶される。この後、書き込みコマンドである10h又はキャッシ機能つき書き込みコマンド15hが入力されS35,S36、チップはビジー状態となる。チップ内部では、SDCのデータをLDDCQへ転送した後、内部データロードを行う場合S37、メモリセルからデータをロードする。この結果はLDDCQ、LDDC1に転送される。ホスト11より入力されたデータ、内部データロードにより入力されたデータ、及び入力後のデータキャッシュに記憶されるデータの関係を、図27cに示す。この後、データキャッシュ操作及びデータキャッシュの定義が行なわれるS38図27d。本例では、書き込み及び非書き込みの区別をPDCに記憶し、書き込みの場合、PDC=0、非書き込みの場合、PDC=1である。本来のベリファイレベルの他に低めのベリファイレベルを設定し、この低めのベリファイレベルを超えた以降の書き込みを小さくすることで、書き込み分布を狭めることが可能である。この低めのベリファイレベルを超えたかどうかの区別をLDDCQに記憶する。低めのベリファイレベルを超えていない場合、LDDCQ=0、低めのベリファイレベルを超えた場合、LDDCQ=1とする。8値の書き込みの場合、8値を区別するため3ビット必要であり、SDC,LDDC1,LDDC0を使う。4値の書き込みの場合、4値を区別するため2ビット必要であり、LDDC1,LDDC0を使う。2値の書き込みの場合、2値を区別するため1ビット必要であり、LDDC0を使う。これらの書き込みレベルとデータキャッシ内に設定されるデータを、図27eに示す。低い閾値から高い閾値へ、0-レベルから7-レベルと定義してある。消去動作により0-レベルとなり、書き込み動作により1-レベルから7-レベルへ変化する。尚、0-レベルへの書き込みを行う場合もある。REASBRevisedErasedAreaSelfBoost方式の書き込みにおいて、選択ワード線をプログラム電圧Vpgm24Vに設定し、選択ワード線に対してソース側に隣接するワード線をVpass又は中間電位に設定し、そのまたワード線に隣接するワード線を接地電圧Vssに設定してオフさせることにより、誤書き込みを防止する。しかし、消去セルの閾値レベルが低く過ぎるとオフしなくなってしまう。データの書き込み中、低い閾値レベルへの書き込みは、高い閾値レベルへの書き込みより早く完了する。このため、キャッシ機能付き書き込みコマンド15hが入力された場合、8値の書き込みにおいて、0-レベルから3-レベルへの書き込みが完了すると、SDCのデータデータが不要になる。このため、チップ外部にレディ状態を出力し、次の書き込みデータを入力する。この後、コマンド1Ah/10h/15hの入力によりビジー状態となる。また、4-レベルから5-レベルへの書き込みが完了すると、LDDC1のデータデータが不要になる。このため、SDCに入力されているデータをLDDC1に転送した後、チップ外部にレディ状態を出力する。すると、次の書き込みデータがSDCに入力される。この後、コマンド1Ah/10h/15hの入力によりビジー状態となる。さらに、6-レベルへの書き込みが完了すると、LDDC0のデータデータも不要になる。このため、SDCに入力されているデータをLDDC0に転送した後、チップ外部にレディ状態を出力する。すると、次の書き込みデータがSDCに入力される。この後、コマンド1Ah/10h/15hの入力によりビジー状態となる。この後、書き込みコマンドであるコマンド15h又は10hによりビジー状態となり、前のページの書き込みが終了した後、次のページの書き込み動作が開始される。4値の書き込みの場合、もともとSDCは使用しない。このため、データキャッシュ操作後、チップ外部にレディ状態を出力し、次の書き込みデータを入力する。この後、コマンド1Ah/10h/15hの入力によりビジー状態となる。0と1-レベルへの書き込みが完了すると、LDDC1のデータデータが不要になる。このため、SDCに入力されているデータをLDDC1に転送した後、チップ外部にレディ状態を出力する。すると、次の書き込みデータがSDCに入力される。この後、コマンド1Ah/10h/15hの入力によりビジー状態となる。また、2-レベルへの書き込みが完了すると、LDDC0のデータが不要になる。このため、SDCに入力されているデータをLDDC0に転送した後、チップ外部にレディ状態を出力する。すると、次の書き込みデータがSDCに入力される。この後、書き込みコマンドである15hコマンド又は10hコマンドによりビジー状態となり、前のページの書き込みが終了した後、次のページの書き込み動作が開始される。一方、2値の書き込みでは、もともとSDCは使用しない。このため、データキャッシュの操作後、チップ外部にレディ状態を出力する。すると、次の書き込みデータが入力される。この後、コマンド1Ah/10h/15hの入力によりビジー状態となる。2値の書き込みでは、LDDC1は使用しない。このため、SDCに入力されているデータをLDDC0に転送した後、チップ外部にレディ状態を出力する。すると、次の書き込みデータがSDCに入力される。この後、コマンド1Ah、10h又は15hの入力によりビジー状態となる。2値の書き込みでは、LDDC0も使用しない。このため、SDCに入力されているデータをLDDC0に転送した後、チップ外部にレディ状態を出力する。すると、次の書き込みデータがSDCに入力される。この後、コマンド1Ah、10h又は15hの入力によりビジー状態となる。この後、書き込みコマンド1Ah、10h又は15hによりビジー状態となり、前のページの書き込みが終了した後、次のページの書き込み動作が開始される。このようにすることで、転送コマンド1Ahが3回続くこと、即ち、次の書き込みデータが3ページ、8値の場合にも本回路を使用できる。しかし、例えば次の書き込みが2値の場合、1ページのデータ入力の後、書き込みコマンドである10h/15hが入力される。プログラム設定データキャッシュの定義及びデータキャッシュ操作S38、S39の後、プログラム動作が行なわれるS40。図8に示す信号BLC1にVddVthVdd:例えば電源電圧、Vth:NチャネルMOSトランジスタの閾値電圧の電圧を印加すると、PDCにデータ1書き込みを行なわないが記憶されている時、ビット線はVddとなり、PDCにデータ0書き込みを行なうが記憶されている時、ビット線がVssになる。また、選択されたワード線に接続され、非選択ページのセルビット線が非選択であるセルは、書き込まれてはならない。このため、これらのセルに接続されているビット線もデータ1と同じようにVddを印加する。信号BLC1をVssとした後、LDDCQの信号REGをハイレベルとする。低めのベリファイレベルをパスしている場合、ビット線を中間電位とする。但し、書き込みループの1回目は、1度もベリファイ動作を行なっていないため、ビット線を中間電位にすることは無い。ここで、選択されているブロックのセレクト線SGS図3、図4に示すをVdd、選択ワード線にVpgm24V、非選択ワード線にVpass10Vを印加すると、ビット線がVssになっている場合、セルのチャネルがVss、ワード線がVpgmとなるので書き込みが行なわれる。一方、ビット線がVddである場合、セルのチャネルがVssではなく、Vpgmを上昇することとなり、カップリングによりVpgm/2程度となる。このため、プログラムされない。また、ビット線が中間電位になっている場合、少しのみ書き込みが行われる。プログラムとプログラムベリファイリード図26に示すプログラムとベリファイS41を繰り返す。また、図28は、ベリファイシーケンスにおけるワード線とビット線の波形を示している。先ず、1回のビット線BLの充電後に、本来のベリファイレベル0V,1V~7Vより低いレベルについてベリファイレベル0VL,1VL~7VLを順次変えてベリファイする。この後、1回のビット線BLの充電後に、本来のベリファイレベル0V,1V~7Vを用いて、ベリファイする。このような動作により、高速なベリファイが可能である。図29は、図28の変形例を示している。メモリセルの各レベルの電位が近いとき、図29に示すように、レベルを1レベルずつ飛ばして連続的にベリファイする。これは、例えば3-レベルでベリファイするとき、2-レベルと3-レベルの電位が近い場合、2-レベルのセルも電流が流れてしまうためである。各レベルでのベリファイがパスすると、PDCがローレベルからハイレベルとなり、次回のプログラムでは、書き込みが行われない。プログラムは複数回繰り返されるが、プログラムループの初めにおいて、高いレベルを書き込むセルはまだ書き込まれない。このため、最初は0-レベルのみ、0-レベル及び1-レベルのみ、0-レベルと1-レベルと2-レベルのみ、というように順次ベリファイ動作を行う。また、プログラムループの終わり頃は、低いレベルのセルは書き込が完了している。このため、最初は5-レベルと6-レベルと7-レベルのみ、6-レベルと7-レベルのみ、7-レベルのみというようにベリファイ動作を行う。このとき、例えば6-レベルと7-レベルのみのベリファイを行う場合、6-レベルの波形と、5-レベルと6-レベルと7-レベルを連続でベリファイした場合における6-レベルの波形が異なってしまう。このため、6-レベルと7-レベルのみベリファイする場合、5-レベルと6-レベルと7-レベルをベリファイする。ここで、5-レベルのベリファイはダミーとして用い、5-レベルのベリファイ操作では、データキャッシュの内容は変えない。プログラム電圧ステップアップ上記ベリファイにおいて、書き込みが不十分と判別された場合、プログラム電圧Vpgmを僅かに上昇させるS42。この後、再度プログラム及びプログラムベリファイが繰り返される。プログラムPDCがローレベルの場合、再び書き込み動作を行ない、全てのデータ記憶回路10のPDCがハイレベルとなるまで、プログラム動作とベリファイ動作が繰り返されるS40。すなわち、プログラム中、全てのPDCがハイレベルとなっているかチェックされる。消去動作イレーズ動作は、図3、図4の破線で示すブロック単位で行われる。また、図3において、データ記憶回路10に接続されている2本のビット線BLie、BLioについて同時に行う。消去後、セルの閾値は、図12に示すように、レベル0となる。EASBErasedAreaSelfBoost書き込み方法の場合、消去セルの閾値レベルを浅くする必要がある。先ず、図30を参照して、EASB書き込み方法について説明する。この書き込み方法では、必ずソース側から書き込む。まず、ビット線に書き込みの場合Vss、非書き込みの場合Vddにする。次に、例えばWL7のセルを書き込む場合、ワード線WL0~4の電位をVpass、ワード線WL5はVss、ワード線WL6はVdd、ワード線WL7はVpgm、ワード線WL8~31はVpassにする。このとき、書き込みの場合、ワード線WL7のゲートがVpgm、チャネルがVssとなり書き込まれる。非書き込みの場合、チャネルは、ブースされて例えばVpass/2となる。しかし、書き込まれたセルの数が多いと、チャネルはブーストされにくくなる。ところが、EASB書き込み方法は、必ずソース側から書き込まれている。したがって、ワード線WL5をVss=0Vとしてブーストすると、ワード線WL4~31のセルは消去されているため、これらのセルのチャネルはブーストされ、書き込まれなくなる。このように、既に書き込まれたセルにブーストした電荷が移動しないようにしなくてはならず、ワード線WL5のセルが消去状態の場合で、閾値レベルが深いとオフしなくなってしまう。したがって、消去セルの閾値レベルを浅くする必要がある。このため、イレーズシーケンス中に、消去後、消去セルの閾値レベルを浅くする。又は、図14、図20、図23に示すプログラムシーケンス中に閾値レベルを浅くする。また、イレーズシーケンス中に適度に浅くしておき、プログラムシーケンスに、精度よく浅くすることも可能である。図14に示す書き込み順序では、第2ステージにおいて、消去セルレベル0を書き込んでいるが、第1ステージにおいて消去セルに書き込むことも可能である。また、図20、図23に示す書き込み順序では、第2ステージにおいて、消去セルレベル0を書き込んでいるが、第1ステージ、又は第3ステージにおいて消去セルに書き込むことも可能である。読み出し動作図31は、8レベルが書き込まれた後の閾値レベル分布とデータの割付を示している。ロワーページのデータを読む場合、4-レベルで読み出し動作を行う。この結果、セルがオンし、ビット線がローレベルとなった場合、出力データは1となり、セルがオフし、ビット線がハイレベルとなった場合、出力データは0となる。アッパーページのデータを読む場合、6-レベルと2-レベルで読み出し動作を行う。したがって、2シーケンスの読み出しが必要である。ハイアーページのデータを読む場合、7-レベルと5-レベルと3-レベルと1-レベルで読み出し動作を行う。したがって、4シーケンスの読み出しが必要である。図32は、読み出し動作のアルゴリズムを示している。図32において、読み出しコマンド00h、読み出しアドレスAdd,転送コマンド30h/31h/3Fhが供給されるとS41、制御信号及び制御電圧発生回路7の図示せぬポンプ回路が昇圧動作を開始し、読み出し電圧を発生するS42。この後、発生された読み出し電圧により、読み出し動作が行われるS43。メモリセルから読み出されたデータは、データ記憶回路10のPDCからSDCに転送されるS44。この後、SDCのデータは、図2に示すデータ入出力バッファ4に転送されS45、このデータ入出力バッファ4に転送されたデータは、データ入出力端子5を介してホスト11に転送される。図33は、図28に示すプログラムベリファイによりプログラムをした場合における読み出し時のワード線とビット線の波形である。図28において、例えば4-レベルのベリファイは、3-レベルの後に連続して行った。このため、図33に示すリード動作もダミーで3-レベルのリードを行い、この後、連続して4-レベルのリードを行う。図34は、図29に示すプログラムベリファイによりプログラムをした場合のリードのワード線とビット線の波形である。図29において、例えば4-レベルのベリファイは、2-レベルの後に連続して行った。このため、リード動作もダミーで2-レベルのリードを行い、この後、連続して4-レベルのリードを行う。第4の実施形態NAND型フラッシュメモリを構成するNANDセルは、図3又は図4に示すように、ワード線WL0~31が制御ゲートに接続された32個のセルが直列に接続され、セレクト線SGSとSGDがゲートに接続された選択ゲートS1、S2で構成される。ワード線WL0に接続されたセルにデータを書き込む場合、ワード線WL0はVpgm、ワード線WL1~31はVpass、セレクト線SGDは電源電圧Vdd又は中間電位、セレクト線SGSは接地電位Vssに設定される。データ1を書き込む場合書き込み非選択、ビット線をVddとし、セルのチャネルがブートされ、高い電位となり、セルは書き込まれない。しかし、ワード線WL0にデータを書き込む場合、ワード線WL0がプログラム電圧Vpgmであるため、非常に高い電圧までブートされる。しかも、セレクト線SGSは接地電位Vssであるため、GIDLが発生し、ワード線WL0に接続されたメモリセルが誤書き込みされてしまう問題がある。このため、例えば8値の場合、1セルは3ビットを記憶するが、32個のセルを直列接続するのではなく、43個のセルを直列接続し、ワード線WL0に接続されたセルのみ、4値、2ビットを記憶することとする。すると、1つのNANDセルに、2ビット3ビット×42=128ビット記憶でき、2のべき乗とすることができる。しかも、ワード線WL0のセルは8値を記憶する必要がなく、4値の記憶あるため、高い閾値レベルまで書き込む必要がない。このため、高いプログラム電圧Vpgmを必要とせず、GIDLの問題を抑えることができる。また、n値を記憶するメモリにおいて、ワード線WL0に接続されたセル、又は誤書き込みが発生する確率の高いワード線のみ、k値k<nを記憶することにより、GIDLの問題を抑えることもできる。さらに、ワード線WL31に接続されたセルも同様の構成とすることが可能である。さらに、図35に示すように、ワード線WL0に接続されたメモリセルと、セレクト線SGSに接続された選択ゲートS1との間に、ダミーセルDMCを設ける。このダミーセルDMCは、例えば選択ゲートと同様のトランジスタ、又は破線で示すように、メモリセルと同じ構成とすることが可能である。このダミーセルDMCのゲートは信号線SGDUMに接続されている。このような構成において、ワード線WL0に接続されたメモリセルにデータを書き込む時、ダミーセルDMCに接続された信号線SGDUMを中間電位>Vssとし、セレクト線SGSを接地電位Vssとする。この構成によれば、ワード線WL0にプログラム電圧Vpgmが印加された状態において、ダミーセルDMCのゲートに接地電位より高い中間電位が印加されている。このため、GIDLが発生することを抑制できる。プログラム時の選択ブロック以外において、ダミーセルDMCのゲート電位は、セレクト線SGSと同じ電位とする。第4の実施形態によれば、ワード線WL0にデータ1を書き込む場合におけるGIDLの発生防止することができる。尚、上記例ではワード線WL0とセレクト線SGSとの間にダミーセルを設けたが、これに限定されるものではない。図36は、ワード線WL31とセレクト線SGDとの間にダミーセルDUMを設けた場合を示している。図36に示すように、セレクト線SGS、SGDの両方に隣接してダミーセル設けることも可能である。さらに、図36からセレクト線SGSに隣接するダミーセルを削除し、セレクト線SGDに隣接するダミーセルのみを設けてもよい。尚、第4の実施形態は、ワード線WL0又はWL31の誤書き込みを減らすため、ダミーセルを追加したが、ダミーを追加せずに誤書き込みを防止することも可能である。ワード線WL0とセレクト線SGSとの距離、ワード線WL31とセレクト線SGDとの距離を他のワード線とワード線との間の距離よりを大きくする。その他、例えば第1の変形例において、ワード線WL0のみ、ベリファイレベルを全体的に下げ、プログラム電圧の増加分DVpgmを細かくし、1回1回の閾値の変化を細かくし、閾値分布幅を狭める。これにより、ワード線WL0に接続されたセルのプログラム時間が延びることが考えられる。しかし、ワード線WL0について、高いベリファイレベルがなくなるため、プログラム電圧Vpgmを下げることができ、誤書き込みを低減することができる。第2の変形例において、ワード線WL0及びワード線WL1のベリファイレベルも全体的に下げ、ワード線WL1書き込み時のプログラム電圧の増加分DVpgmを細かくし、1回1回の閾値の変化を細かくし、閾値分布幅を狭める。このようにして、ワード線WL1に接続されたセルにデータを書き込むことによりワード線WL1に接続されたセルの閾値の移動が小さくなるため、ワード線WL0に接続されたセルの閾値レベルがカップリングにより変わる変動が小さくなる。このため、ワード線WL0のベリファイレベルも全体的に下げることが可能となり、ワード線WL0について、高いベリファイレベルがなくなるため、プログラム電圧Vpgmを下げることができ、誤書き込みを低減することが可能である。さらに、第1の変形例、及び第2の変形例を合わせて実施することも可能である。その他、本発明は、上記各実施形態に限定されるものではなく、発明の要旨を変えない範囲において種々変形実施可能なことは勿論である。"