"複数のワード線、及び複数ビット線に接続された複数のメモリセルがマトリックス状に配置されたメモリセルアレイと、前記ワード線、及びビット線の電位を発生する電圧発生回路と、前記ビット線に接続され、前記メモリセルの書き込みデータ、又は前記メモリセルから読み出されたデータを記憶するデータ記憶回路と、前記電圧発生回路及びデータ記憶回路を制御する制御部とを具備し、前記制御部は、消去動作により、前記メモリセルの閾値電圧を第1レベルとし、書き込み及びベリファイ動作を繰り返すことにより、外部より入力される書き込みデータに応じて、前記メモリセルの閾値電圧を第1レベル、第2レベル、...第nレベルn=2kに設定して、kビットのデータを記憶させ、第hレベルh≦nへの書き込みセルのうち、第h-1レベルを超えているセルに対して、第h-1レベルを超えてから、j回jは自然数の書き込み動作を計数し、j回目以降の書き込み動作において、書き込み速度を遅くすることを特徴とする半導体記憶装置。複数のワード線、及び複数ビット線に接続された複数のメモリセルがマトリックス状に配置されたメモリセルアレイと、前記ワード線、及びビット線の電位を発生する電圧発生回路と、前記ビット線に接続され、前記メモリセルの書き込みデータ、又は前記メモリセルから読み出されたデータを記憶するデータ記憶回路と、前記電圧発生回路及びデータ記憶回路を制御する制御部とを具備し、前記制御部は、消去動作により、前記メモリセルの閾値電圧を第1レベルとし、書き込み及びベリファイ動作を繰り返すことにより、外部より入力される書き込みデータに応じて、前記メモリセルの閾値電圧を第1レベル、第2レベル、...第nレベルn=2kに設定して、kビットのデータを記憶させ、第hレベルh≦nへの書き込みセルのうち、第h-2レベルを超えてから、第h-1レベルを超えるときまでの書き込み回数iiは自然数を計数し、前記第hレベルへの書き込みにおいて、第h-1レベルを超えているセルに対して、jj=iααは0を含む自然数回目以降の書き込み動作において、書き込み速度を遅くすることを特徴とする半導体記憶装置。データサーバとの間でデータの送受信を行なう通信手段と、マルチメディアデータを再生する再生手段と、前記マルチメディアデータを記憶する記憶手段と、前記通信手段、再生手段、記憶手段を制御する制御部とを有し、前記制御部は、前記通信手段を介して前記データサーバにマルチメディアデータの購入要求を送信し、前記データサーバから供給される購入権利データを受け、前記記憶手段に記憶させ、前記マルチメディアデータの再生時、前記記憶手段に記憶された前記購入権利データに対応するマルチメディアデータを前記データサーバよりダウンロードし、このダウンロードしたマルチメディアデータを前記再生手段により再生するとともに、前記記憶手段に記憶させることを特徴とする記録再生システム。複数のワード線、及び複数ビット線に接続された複数のメモリセルがマトリックス状に配置されたメモリセルアレイと、前記ワード線、及びビット線の電位を発生する電圧発生回路と、前記ビット線に接続され、前記メモリセルの書き込みデータ、又は前記メモリセルから読み出されたデータを記憶するデータ記憶回路と、前記電圧発生回路及びデータ記憶回路を制御する制御部とを具備し、前記制御部は、消去動作により、前記メモリセルの閾値電圧を第1レベルとし、書き込み動作により、書き込み及びベリファイ動作を繰り返し、外部より入力される書き込みデータに応じて、前記メモリセルの閾値電圧を第1レベル、第2レベル、...第nレベルn=2kに設定して、前記メモリセルにkビットのデータを記憶させ、前記書き込み動作において、第1レベル、第2レベル、...第nレベルn=2kのn個のレベルについてのベリファイ動作を行い、第1コマンド入力後の前記書き込み動作において、前記n個のレベルの内、hh<n個のレベルについてのベリファイ動作のみを行うことを特徴とする半導体記憶装置。前記制御部は、前記第1コマンド入力後の前記書き込み動作において、第1レベル又は第nレベルのベリファイ動作のみを行うことを特徴とする請求項4記載の半導体記憶装置。本発明は、閾値電圧分布間のマージンが狭い場合においても確実に記憶データを読み出すことが可能な半導体記憶装置を提供しようとするものである。本発明の半導体記憶装置の第1の態様は、複数のワード線、及び複数ビット線に接続された複数のメモリセルがマトリックス状に配置されたメモリセルアレイと、前記ワード線、及びビット線の電位を発生する電圧発生回路と、前記ビット線に接続され、前記メモリセルの書き込みデータ、又は前記メモリセルから読み出されたデータを記憶するデータ記憶回路と、前記電圧発生回路及びデータ記憶回路を制御する制御部とを具備し、前記制御部は、消去動作により、前記メモリセルの閾値電圧を第1レベルとし、書き込み及びベリファイ動作を繰り返すことにより、外部より入力される書き込みデータに応じて、前記メモリセルの閾値電圧を第1レベル、第2レベル、...第nレベルn=2kに設定して、kビットのデータを記憶させ、第hレベルh≦nへの書き込みセルのうち、第h-1レベルを超えているセルに対して、第h-1レベルを超えてから、j回jは自然数の書き込み動作を計数し、j回目以降の書き込み動作において、書き込み速度を遅くすることを特徴とする。以下、本発明の実施の形態について、図面を参照して説明する。図2は、本発明の各実施形態に適用される半導体記憶装置、例えば4値2ビットを記憶する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ライトイネーブル、REリードイネーブルによって制御される。前記ビット線制御回路2、カラムデコーダ3、ワード線制御回路6、制御信号及び制御電圧発生回路7は書き込み回路、及び読み出し回路を構成している。図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本のワード線が選択される。さらに、外部アドレスにより、1本のワード線が選択され、図3の点線で示す、2ページが選択される。この2ページの切り替えはアドレスによって行われる。1セルに2ビットを記憶する場合は、2ページであるが、1セルに3ビット記憶する場合は3ページ、1セルに4ビット記憶する場合は4ページ選択される。イレーズ動作は、図3の点線で示しているブロック単位で行う。図4は、ロウ方向に並んだ全てのセルを一括して書き込む場合の構成を示している。この例の場合、各ビット線BL0,BL1...BL8k-1,BL8kは、それぞれデータ記憶回路10に接続され、各データ記憶回路10には、アドレス信号YA0、YA1...YA8k-1、YA8kがそれぞれ供給されている。図5aはメモリセル、図5bは選択ゲートの断面図を示している。図5aにおいて、基板51後述するP型ウェル領域55にはメモリセルのソース、ドレインとしてのn型拡散層42が形成されている。P型ウェル領域55の上にはゲート絶縁膜43を介して浮遊ゲートFG44が形成され、この浮遊ゲート44の上には絶縁膜45を介して制御ゲートCG46が形成されている。図5bにおいて、P型ウェル領域55にはソース、ドレインとしてのn型拡散層47が形成されている。P型ウェル領域55の上にはゲート絶縁膜48を介して制御ゲート49が形成されている。図6は、第1の実施形態に対応する半導体記憶装置の断面図を示している。例えば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が形成されている。図6に示すように、高電圧トランジスタHVNTr、HVPTrは、低電圧トランジスタLVNTr、LVPTrに比べて例えば厚いゲート絶縁膜を有している。図7は、メモリセルの消去、プログラム、リード時において、図6に示す各部に供給される電圧の例を示している。図8は、図3に示すデータ記憶回路10の一例を示す回路図である。このデータ記憶回路10は、プライマリデータキャッシュPDC、セコンダリデータキャッシュSDC、ダイナミックデータキャッシュDDC、ダイナミックデータキャッシュQDDCQ、テンポラリデータキャッシュTDCを有している。SDC、PDC、DDCは、書き込み時に入力データを保持し、読み出し時に読み出しデータを保持し、ベリファイ時に一時的にデータを保持し、多値データを記憶する際に内部データの操作に使用される。TDCは、データの読み出し時にビット線のデータを増幅し、一時的に保持するとともに、多値データを記憶する際に内部データの操作に使用される。DDCQは、後述するデータの書き込み時において、特定のベリファイレベルより若干低いベリファイレベルに達したかどうかを示すデータを記憶する。SDCは、ラッチ回路を構成するクロックドインバータ回路61a、61b、及びトランジスタ61c、61dにより構成されている。トランジスタ61cはクロックドインバータ回路61aの入力端と、クロックドインバータ回路61bの入力端の間に接続されている。このトランジスタ61cのゲートには信号EQ2が供給されている。トランジスタ61dはクロックドインバータ回路61bの出力端と接地間に接続されている。このトランジスタ61dのゲートには信号PRSTが供給されている。SDCのノードN2aは、カラム選択トランジスタ61eを介して入出力データ線IOに接続され、ノードN2bは、カラム選択トランジスタ61fを介して入出力データ線IOnに接続される。これらトランジスタ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のゲートは前記クロックドインバータ回路61aの出力端に接続されている。トランジスタ61n、61oの電流通路の他端には、配線COMiが接続されている。この配線COMiは全データ記憶回路10に共通の配線であり、全データ記憶回路10のベリファイが完了した場合、配線COMiの電位はハイレベルとなる。すなわち、後述するように、ベリファイが完了すると、PDCのノードN1bがローレベルとなる。この状態において、信号CHK1、CHK2nをハイレベルとすると、ベリファイが完了している場合、配線COMiの電位はハイレベルとなる。さらに、前記TDCは、例えばMOSキャパシタ61pにより構成されている。このキャパシタ61pは、前記トランジスタ61g、61hの接続ノードN3と接地間に接続されている。また、接続ノードN3には、トランジスタ61qを介してDDCが接続されている。トランジスタ61qのゲートには、信号REGが供給されている。さらに、ノードN3のキャパシタC1の一端が接続され、このキャパシタC2の他端に信号BOOSTが供給されている。DDCは、トランジスタ61r、61sにより構成されている。トランジスタ61rの電流通路の一端には信号VPREが供給され、他端は前記トランジスタ61qの電流通路に接続されている。このトランジスタ61rのゲートはトランジスタ61sを介して前記PDCのノードN1aに接続されている。このトランジスタ61sのゲートには信号DTGが供給されている。DDCQは、トランジスタ61Qr、61Qsにより構成されている。トランジスタ61Qrの電流通路の一端には信号VPREが供給され、他端は前記トランジスタ61Qqを介して接続ノードN3に接続されている。トランジスタ61Qqのゲートには、信号REGQが供給されている。トランジスタ61Qrのゲートはトランジスタ61Qsを介して前記PDCのノードN1aに接続されている。このトランジスタ61Qsのゲートには信号DTGQが供給されている。さらに、前記接続ノード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の電位を供給する。上記各信号及び電圧は、図3に示す制御信号及び制御電圧発生回路7により生成され、この制御信号及び制御電圧発生回路7の制御に基づき、以下の動作が制御される。また、図4に示すデータ記憶回路10は、図8に示す構成と同様であり、ビット線との接続のみが相違している。すなわち、図8に示すように、トランジスタ61tの他端部には、例えばトランジスタ61vのみが接続され、このトランジスタ61vを介してビット線BLe又はBLoが接続される。本メモリは、多値メモリであり、1セルに2ビットのデータを記憶することができる。2ビットの切り替えはアドレス第1ページ、第2ページによって行なう。1セルに2ビットを記憶する場合、2ページであるが、1セルに3ビットを記憶する場合、アドレス第1ページ、第2ページ、第3ページによって切り換える。さらに、1セルに4ビットを記憶する場合は、アドレス第1ページ、第2ページ、第3ページ、第4ページによって切り換える。図9abcは、メモリセルに2ビットのデータを記憶する場合におけるデータと閾値電圧との関係を示している。消去動作を行なうと、図9cに示すように、メモリセルのデータは0となる。消去後、閾値分布の広がりを狭めるため、例えばベリファイレベルzを用いて書き込みが行なわれる。このデータ0は、例えば負の閾値電圧分布に設定されている。図9aに示すように、第1ページの書き込みにおいて、書き込みデータが1の場合、メモリセルのデータは0のままであり、書き込みデータが0の場合、メモリセルのデータは1となる。図9bに示すように、第2ページの書き込み後、メモリセルのデータは書き込みデータに応じて0、2、3、4のいずれかとなる。すなわち、第1ページ書き込み後のメモリセルのデータが0であり、第2ページの書き込みデータが1の場合、メモリセルのデータは0のままであり、書き込みデータが0の場合、メモリセルのデータは2となる。また、第1ページ書き込み後のメモリセルのデータが1であり、書き込みデータが0である場合、メモリセルのデータは3となり、書き込みデータが1である場合、メモリセルのデータは4となる。本実施形態において、メモリセルのデータは閾値電圧の低いほうから高い方へと定義されている。また、データ1、2、3、4は例えば正電圧の閾値電圧である。図10は、2つのNANDユニットの書き込み順序を示している。ブロック内において、ソース線に近いメモリセルからページ毎に書き込まれる。例えば先ず、メモリセル1,2に第1ページのデータが書き込まれ、次にメモリセル3,4に第1ページのデータが書き込まれる。次いで、メモリセル1,2に第2ページのデータが書き込まれ、メモリセル5,6に第1ページのデータが書き込まれる。以下、図10に示すように順次書き込まれる。読み出し動作図9bに示すように、第2ページ書き込み後、メモリセルのデータは、0、2、3、4の閾値電圧分布のいずれかに設定されている。このため、第2ページの読み出しは、これらの間の読み出しレベルBRCRDRを設定して実行する。読み出し動作について具体的に説明する。先ず、制御信号及び制御電圧発生回路7より、電圧Vfix例えば1.6Vを発生し、選択されたセルのウェル、ソース線、非選択ビット線、非選択ブロックの選択ゲートに印加する。尚、負電圧側にデータ0の閾値電圧分布を設定せず、正電圧側にデータ0の閾値電圧を設定する場合、Vfixは0Vとする。選択ワード線にリードの時の電位VfixAR又はBR、CR、DRを印加する。例えばAR=-0.5Vとすると、VfixARは1.1Vである。これと同時に、選択ブロックの非選択ワード線にVreadVfix、選択ブロックの選択ゲートSGDにVsgVddVthVfixVth:nチャネルMOSトランジスタの閾値電圧、SGSにVfixを印加する。ソース線SRC及びセルのウェルにもVfixを印加する。次に、図8に示すデータ記憶回路10の信号VPREをVdd例えば2.5V、信号BLPREをVsgVddVth、信号BLCLAMPを例えば0.6VVthVfixに設定して、一旦印加する。この後、ビット線を例えば0.6VVfix=2.2Vにプリチャージする。次に、セルのソース側のセレクト線SGSをVsgVddVthVfixにする。ウェル及びソースがVfixとなっているため、セルの閾値電圧がAR又はBR,CR、DR例えばAR=-0.5Vより高い時、セルはオフする。このため、ビット線はハイレベル例えば2.2Vのままである。また、セルの閾値電圧がAR又はBR,CR、DRより低い場合、セルはオンする。このため、ビット線は放電され、ソースと同電位つまりVfix例えば1.6Vとなる。この後、図8に示すデータ記憶回路10の信号BLPREを一旦VsgVddVthに設定し、TDCのノードをVddにプリチャージした後、信号BOOSTをローレベルからハイレベルとし、TDC=αVdd例えばα=1.7、αVdd=4.25Vに設定する。ここで、信号BLCLAMPに例えば0.45VVthVfixの電圧を印加する。TDCのノードはビット線が0.45VVfixより低い場合、ローレベルVfix例えば1.6Vとなり、ビット線が0.45Vより高い場合、ハイレベルαVdd例えば4.25Vのままとなる。信号BLCLAMP=Vtr例えば0.1VVthとした後、信号BOOSTをハイレベルからローレベルにする。ここで、TDCはローレベルの場合、Vfix例えば1.6Vから下がるが、信号BLCLAMP=Vtr例えば0.1VVthとしているため、0.1Vよりは下がらない。TDCはハイレベルの場合、αVdd例えば4.25VからVddとなる。ここで、信号BLC1=VsgVddVthとして、TDCの電位をPDCに読み込む。セルの閾値電圧が、AR又はBR,CR、DRのレベルより低い場合、PDCはローレベル、高い場合、PDCはハイレベルとなり、読み出しが行なわれる。プログラム図11は、第1ページのプログラム動作、図12は、第2ページのプログラム動作のフローチャートを示している。プログラム動作は、先ず、アドレスを指定し、図3、図4示す2ページを選択する。本メモリは、2ページのうち、第1ページ、第2ページの順でしか、プログラムすることができない。したがって、初めにアドレスで第1ページを選択する。図11に示す第1ページのプログラム動作において、ホスト11から書き込みデータが入力されると、これらデータは全てのデータ記憶回路10内のSDC図8に示すに記憶されるS11。ホスト11から書き込みコマンドが入力されると、全てのデータ記憶回路10内のSDCのデータがPDCに転送されるS12。ホスト11からデータ1書き込みを行なわないが入力された場合、データ記憶回路10において、PDCのノードN1aはハイレベルとなり、データ0書き込みを行なうが入力された場合、ローレベルとなる。以後、PDCのデータはノードN1aの電位、SDCのデータはノードN2aの電位とする。プログラム動作S13図8中の信号BLC1をVddVthに設定すると、PDCにデータ1書き込みを行なわないが記憶されている時、ビット線がVddとなり、データ0書き込みを行なうが記憶されている時、ビット線がVssとなる。また、図3に示す構成の場合、選択されたワード線に接続され、非選択ページのビット線が非選択であるセルは書き込まれてはならない。このため、これらのセルに接続されているビット線もデータ1が入力されているセルと同じようにVddとする。ここで、選択されているブロックのセレクト線SG1をVdd、選択ワード線にVpgm20V、非選択ワード線にVpass10Vを印加すると、ビット線がVssになっている場合、セルのチャネルがVss、ワード線がVpgmとなるので書き込みが行なわれる。一方、ビット線がVddになっている場合、セルのチャネルがVssでなく、カップリングによりVpgm/2程度となるためプログラムが行われない。第1ページの書き込みにより、メモリセルのデータはデータ0とデータ1になる。プログラムベリファイリードS14プログラム動作において、メモリセルは、閾値電圧の低いレベルより書き込まれる。このため、第1ページではAVレベルでプログラムベリファイを行なう。プログラムベリファイ動作は、上記リード動作とほぼ同様である。先ず、選択されているセルのウェル、ソース線、非選択ビット線、非選択ブロックの選択ゲートに制御信号及び制御電圧発生回路7より、電圧Vfix例えば1.6Vを発生し印加する。この状態において、選択ワード線にリードの時の電位VfixARより少し高い電位VfixAV例えばAR=-0.4VとするとVfixAVは1.2Vを印加する。選択ワード線にベリファイリードの時の電位VfixAV、例えば1.2Vを印加することにより、見かけ上、セルのゲートに負電位が印加されるようにできる。これと同時に、選択ブロックの非選択ワード線にVreadVfix、選択ブロックの選択ゲートSGDにVsgVddVthVfix、SGSにVfixを印加する。ソース線SRCには、Vfixを印加し、セルのウェルにもVfixを印加する。次に、図8に示すデータ記憶回路10の信号VPREをVdd例えば2.5Vに設定し、信号BLPREをVsgVddVth、信号BLCLAMPを例えば0.6VVthVfixに一旦設定し、ビット線を例えば0.6VVfix=2.2Vにプリチャージする。次に、セルのソース側のセレクト線SGSをVsgVddVthVfixに設定する。ウェル及びソースがVfixとなっているため、閾値電圧がAV例えばAV=-0.4Vより高いセルはオフする。このため、ビット線はハイレベル例えば2.2Vのままである。また、閾値電圧がAVより低いセルはオンする。このため、ビット線は放電され、ソースと同電位、つまりVfix例えば1.6Vとなる。このビット線の放電時間中に、一旦信号DTG=VsgVddVthとして、PDCをDDCにコピーする。次いで、データ記憶回路10の信号BLPREを一旦VsgVddVthとして、TDCのノードをVddにプリチャージする。この後、信号BOOSTをローレベルからハイレベルとし、TDC=αVdd例えばα=1.7、αVdd=4.25Vに設定する。ここで、信号BLCLAMPの電位を例えば0.45VVthVfixに設定する。TDCのノードはビット線が0.45VVfixより低い場合ローレベルVfix例えば1.6Vとなり、ビット線が0.45Vより高い場合ハイレベルのままαVdd例えば4.25Vとなる。信号BLCLAMP=Vtr例えば0.1VVthとした後、信号BOOSTをハイレベルからローレベルに設定する。ここで、信号BOOSTがローレベルの場合、TDCはVfix例えば1.6Vから下がる。しかし、信号BLCLAMP=Vtr例えば0.1VVthに設定しているため、TDCは0.1Vよりは下がらない。また、信号BOOSTがハイレベルの場合、TDCのノードは、αVdd例えば4.25VからVddとなる。ここで、信号BLC1=VsgVddVthとして、TDCの電位をPDCに読み込む。次に、信号VPRE=Vdd、信号REG=VsgVddVthとして、DDCがハイレベル非書き込みの場合、TDCを強制的にハイレベルとする。しかし、DDCがローレベル非書き込みの場合、TDCの値は変わらない。ここで、信号BLC1=VsgVddVthとして、TDCの電位をPDCに読み込む。したがって、元々PDC=ローレベル書き込みの場合で、セルの閾値電圧が、レベルAVより低いと、PDCは再びローレベル書き込みとなり、高い場合、PDCはハイレベルとなり、次回のプログラムループより非書き込みとなる。また、元々PDC=ハイレベル非書き込みの場合、PDC=ハイレベルとなり、次回のプログラムループも非書き込みとなる。この動作を全データ記憶回路10のPDCがハイレベルとなるまで繰り返すS15-S13。第2ページプログラム第2ページ書き込み動作図12に示す第2ページの書き込み動作において、先ず、書き込みデータを外部より入力し、全てのデータ記憶回路10内のSDCに記憶するS21。この後、第1ページの書き込みにおいて、書き込まれたデータを確認するため、読み出しレベルAR例えば負電圧をワード線に設定して、メモリセルのデータが読み出されるS22。この読み出し動作は、前述した通りである。セルの閾値電圧が、ワード線の電位ARより低い場合、PDCはローレベル、高い場合、PDCはハイレベルとなる。この後、データキャッシュが設定されるS23。すなわち、第2ページの書き込みは、図9bに示すように行なわれる。第1ページの書き込みにおいて、データ1の場合で、第2ページの書き込みにおいて、データ1の場合、第2ページ書き込みが行なわれない。第1ページの書き込みにおいて、データ1の場合で、第2ページの書き込みにおいて、データ0の場合、第2ページ書き込みにより、メモリセルのデータが2に設定される。第1ページの書き込みにおいて、データ0の場合で、第2ページの書き込みにおいて、データ0の場合、第2ページ書き込みにより、メモリセルのデータが3に設定される。第1ページの書き込みにおいて、データ0の場合で、第2ページの書き込みにおいて、データ1の場合、第2ページ書き込みにより、セルのデータが4に設定される。この動作を行なうため、データキャッシュが設定される。すなわち、メモリセルのデータを0にする場合第1ページにおいてデータ1、第2ページはデータ1、PDCはハイレベル、DDCはローレベル、SDCはハイレベルに設定される。メモリセルのデータを2にする場合第1ページにおいてデータ1、第2ページはデータ0、PDCはローレベル、DDCはハイレベル、SDCはハイレベルに設定される。メモリセルのデータを3にする場合第1ページにおいてデータ0、第2ページはデータ0、PDCはローレベル、DDCはハイレベル、SDCはローレベルに設定される。メモリセルのデータを4にする場合第1ページではデータ0、第2ページはデータ1、PDCはローレベル、DDCはローレベル、SDCはローレベルに設定される。PDC,DDC,SDCの各データは、信号BLC1,BLC2,DTG,REG、VPREを所定の順序で供給し、PDC,DDC,SDC,TDCのデータを転送することにより設定される。尚、具体的な動作については省略する。プログラム動作S24プログラム動作は、第1ページのプログラム動作と全く同じである。PDCにデータ1が記憶されている場合、書き込みが行なわれず、データ0が記憶されている場合、書き込みが行なわれる。ベリファイ動作S25,S26,S27プログラムベリファイリードは、リード動作と同じである。しかし、ベリファイレベルBV、CV、DVは、リードレベルにマージンが付加され、リードレベルより若干高いレベルに設定されている。このベリファイレベルBV、CV、DVを用いてベリファイリードを行う。ベリファイ動作は、例えばベリファイレベルBV、CV、DVの順に実行される。すなわち、先ず、ワード線にベリファイレベルBVが設定され、メモリセルの閾値電圧がベリファイレベルBVに達しているかどうか検証されるS25。この結果、メモリセルの閾値電圧がベリファイレベルに達している場合、PDCがハイレベルとなり、書き込みが行なわれなくなる。一方、ベリファイリードレベルに達していない場合、PDCがローレベルとなり、次回のプログラムで書き込みが行なわれる。この後、ワード線にベリファイレベルCVが設定され、メモリセルの閾値電圧がベリファイレベルCVに達しているかどうか検証されるS26。この結果、メモリセルの閾値電圧がベリファイレベルに達している場合、PDCがハイレベルとなり、書き込みが行なわれなくなる。一方、ベリファイリードレベルに達していない場合、PDCがローレベルとなり、次回のプログラムで書き込みが行なわれる。次いで、ワード線にベリファイレベルDVが設定され、メモリセルの閾値電圧がベリファイレベルDVに達しているかどうか検証されるS27。この結果、メモリセルの閾値電圧がベリファイレベルに達している場合、PDCがハイレベルとなり、書き込みが行なわれなくなる。一方、ベリファイリードレベルに達していない場合、PDCがローレベルとなり、次回のプログラムで書き込みが行なわれる。第2ページの書き込み時、レベルBVのプログラムベリファイにおいて、上記動作を行なうと、レベルCV及びDVに書き込むセルが、レベルBVのプログラムベリファイで、非書き込みとなってしまう。このため、例えば、レベルCV及びDVの書き込みの場合、図8に示すノードN2aをローレベルとし、レベルBVの書き込みの場合、ノードN2aをハイレベルとする。この状態において、信号REG=Vsgとし、非書き込みの場合、TDCを強制的にハイレベルとする動作の前に、信号BLC2=Vtr0.1VVthとして、レベルCV及びDVの書き込みの場合は、TDCを強制的にローレベルとしておく。これにより、レベルBVでのプログラムベリファイにおいて書き込み完了ならないようにする。また、第2ページの書き込みにおいて、レベルCVのプログラムベリファイでは、上記の動作を行なうと、レベルDVへの書き込みセルが、レベルCVのプログラムベリファイにおいて、非書き込みとなってしまう。このため、例えば、レベルCVの書き込みの場合、図8に示すノードN1aをローレベル、これ以外の場合、ノードN1aをローレベルとする。この状態において、信号REG=Vsgとする。さらに、非書き込みの場合、TDCを強制的にハイレベルとする動作の前に、信号BLC1=Vtr0.1VVthとする。レベルDVの書き込みの場合、TDCを強制的にハイレベルにしておき、レベルDVにおいてプログラムベリファイで書き込み完了とならないようにする。PDCがローレベルの場合、再び書き込み動作を行ない、全てのデータ記憶回路10のPDCがハイレベルになるまでこのプログラム動作とベリファイ動作を繰り返すS28-S24。消去動作イレーズ動作は、前述したように、図3、図4に破線で示すブロック単位で行う。消去後、セルの閾値電圧は、図9cに示すように、メモリセルのデータ0となる。消去後、セルの閾値電圧分布は広がっている。このため、EASBErasedAreaSelfBoost書き込み方法の場合、消去後、セルの閾値電圧を浅くする。先ず、このEASB書き込み方法について説明する。この書き込み方法は、必ずソース側から書き込む。図13は、EASB書き込み方法を示す図である。図13に示すように、先ず、ビット線に書き込みの場合Vss、非書き込みの場合Vddにする。次に、例えばワード線WL7のセルを書き込む場合、ワード線WL0~4をVpass、ワード線WL5をVss、ワード線WL6をVdd、ワード線WL7をVpgm、ワード線WL8~31をVpassに設定する。このとき、書き込みの場合、ワード線WL7のゲートがVpgm、チャネルがVssであるため書き込まれる。非書き込みの場合、チャネルは、例えばVpass/2となるが、書き込まれたセルの数が多いと、チャネルはブースとされにくくなる。ところが、EASB書き込み方法は、必ずソース側から書き込まれる。したがって、ワード線WL5をVssとしてブースとすると、ワード線WL8~31のセルは消去されているため、チャネルはブーストされ書き込まれなくなる。このように、既に書き込まれたセルにブースとした電荷が移動しないようにしなくてはならず、ワード線WL5に接続されるセルが消去状態の場合で、閾値電圧が深いとオフしなくなってしまう。したがって、消去セルを浅くする必要がある。したがって、消去動作後、ブロック内の全ワード線を選択して、プログラム及びプログラムベリファイリードを行ない、図9cに示すように、レベルzまで書き込み動作を行なう。この時のプログラム及びプログラムベリファイリード動作は、全ワード線を選択状態とし、ベリファイ時の選択ワード線の電位をzVfix例えば0Vとし、他の電位は、通常のプログラム及びプログラムベリファイリードと全く同様に設定して行なう。第1の実施形態図1、図14abは、第1の実施形態に係り、例えば第2ページ書き込み後の第1ページの読み出しシーケンスを示している。第2ページ書き込み後の第1ページの読み出しは、読み出しレベルとして、図9bに示すように、選択ワード線に電位CRを供給する。図1、図14abを参照して第1ページの読み出し動作について説明する。第1の実施形態は、図14aに示すように、読み出しレベルCRが読み出し対象の閾値電圧分布内に位置する場合を示している。この場合、先ず、図14aに示すように、読み出しレベルCRを設定し、この読み出しレベルCRにより1ページのメモリセル2~4kBからデータが読み出されるS31。この後、読み出しレベルCRから一定レベルxを引いた読み出しレベルCR-xで、1ページのデータが読み出されるS32。例えばホスト11は、CR及びCR-xの両レベル間に存在するセルの数を計数するS33。例えば前記データ記憶回路10は、CR及びCR-xの両レベルで読み出されたデータの排他的論理和XORをとり、ホスト11に供給する。ホスト11は、供給されたデータのうち、データ1の数を計数することにより、両レベル間に存在するセルの数を求める。次いで、ホスト11により計数値が規定値以下かどうかを判別するS34。この結果、セルの数が規定数以内である場合、レベルCRで読み出したデータを読み出し結果とするS35。一方、計数値が規定値以上である場合、読み出しレベルを下げて、再度読み出し動作を行うS36、S31、S32。例えば、読み出しレベルCRをx下げた場合、図14bに示すように、読み出しレベルCR-xとCR-2xの間に存在するセルの数を数えることになり、この値が規定値以下かどうかを判別するS33,S34。この結果、セルの数が規定数以内である場合、このレベルで読み出したデータを読み出し結果とするS35。このとき、読み出しレベルの下げる値を、先の読み出しで使用したxと同じ値とすると、ステップS31における読み出しレベルCRは、ステップS32において読み出しレベルCR-xで読み出したデータであり、既に読み出されている。このため、読み出しレベルCR-xにより読み出す必要がない。したがって、ステップS31を省略し、読み出し回数を削減することが可能である。図15は、上記読み出し動作におけるデータ記憶回路10の具体的な動作を示すスローチャートである。図15において、図1と同一部分には同一符号を付している。先ず、選択ワード線に読み出しレベルCRを印加し、メモリセルのデータを読み出す。この読み出されたデータはPDCにラッチされ、その後、DDC0にコピーされるS31。この後、PDCのデータがSDCにコピーされる。次いで、選択ワード線に読み出しレベルCR-xを印加し、メモリセルのデータを読み出す。この読み出されたデータはPDCにラッチされ、その後、DDC1にコピーされるS32。次に、DDC0のデータとDDC1のデータの排他的論理和XORをとるS33-1。すなわち、信号VPREをVss,信号BLPREをVddとしてTDCをVssとする。この後、信号VPREをVdd,信号REG0をハイレベルとしてDDC0のデータをTDCにコピーする。次ぎに、信号VPREをVss、信号REG1をハイレベルとしてDDC1のデータが1の場合、TDCを強制的にVssとする。この後、TDCのデータをPDCに転送する。この結果、DDC0、DDC1、PDCのデータは次のようになる。DDC0:1100DDC1:1010PDC:0100次に、信号VPREをVss、信号BLPREをVddとしてTDCをVssとする。この後、信号VPREをVdd、信号REG1をハイレベルとしてDDC1のデータをTDCにコピーする。さらに、信号VPREをVss、信号REG0をハイレベルとし、DDC1のデータが1の場合、TDCを強制的にVssとする。この結果、DDC0、DDC1、PDC、TDCのデータは次のようになる。DDC0:1100DDC1:1010PDC:0100TDC:0010次いで、信号DTG0を一旦ハイレベルとし、PDCのデータをDDC0に転送した後、信号VPREをVdd、信号REG0をハイレベルとし、DDC0が1の場合、TDCを強制的にVddとする。この後、TDCのデータをPDCに転送する。この結果、次のように、PDCに、DDC0とDDC1のデータがXORされたデータがラッチされる。DDC0:0100DDC1:1010PDC:0110この後、ホスト11において、XORの結果より、データ1の数を計数するS33-2。すなわち、信号DTG0をハイレベルとしてPDCのデータをDDC0にコピーし、SDCのデータをPDCにコピーし、DDC0のデータをSDCにコピーする。このSDCのデータをホスト11に出力する。ホスト11は、各データ記憶回路から供給されるデータ1の数を計数する。次いで、ホストにおいて、計数値が規定値以下かどうかを判別するS34。この結果、規定値以下である場合、読み出しレベルCRで読んだデータがPDCにラッチされているため、PDCのデータをSDCにコピーし、SDCからホスト11に出力するS35。また、ステップS34において、計数値が規定値以上である場合、読み出しレベルを下げてS36、再度読み出し動作が行なわれる。ここで、前に読み出しレベルCR-xで読んだデータを用いる場合、読み出しレベルCR-xで読んだデータがDDC1にあるため、DDC1のデータをPDCにコピーし、CR-xで読んだデータをCRで読んだデータとする。この場合、図15に破線で示すように、ステップS31を省略することができる。上記第1の実施形態によれば、読み出しレベルCR,CR-xと変えてデータを読み出し、両読み出しレベル間に存在するセルの数を計数し、この計数値が規定値以下である場合、読み出しレベルCRで読み出したデータを正規の読み出しデータとして出力している。このため、隣接する閾値電圧分布間のマージンが、例えば経時変化により狭まった場合においても各閾値分布のデータを正確に読み出すことが可能である。尚、上記第1の実施形態において、読み出しレベルCRから一定レベルxを引いた読み出しレベルCR-xで読み出した。しかし、これに限定されるものではなく、例えば読み出しレベルCRにxを加えた読み出しレベルCRxで読み出し、読み出しレベルCRとCRx間に存在するセルの数を計数し、この計数値と基準値とを比較することも可能である。また、上記第1の実施形態において、セル数の計数、及び計数値と基準値の比較はホスト11において行なったが、これに限定されるものではなく、例えば制御信号及び制御電圧発生回路7により行なうことも可能である。第2の実施形態図16ab、図17は、第2の実施形態に係わり、メモリセルの第1ページの読み出しシーケンスを示している。尚、図17において、図1と同一部分には同一符号を付している。図16aに示すように、読み出しレベルCRが読み出し対象の閾値電圧分布より低い閾値電圧分布に位置している場合、この読み出しレベルCRからさらに一定レベルxだけ下げると、規定数が増加してしまう。このため、第2の実施形態では、このような場合、読み出しレベルを上昇して再読出しを行なう。すなわち、図16b、図17に示すように、先ず、第1の実施形態と同様にして、読み出しレベルCR及びCR-xにより、1ページのメモリセル2~4kBからデータを読み出すS31、S32。この読み出しレベルCRとCR-x間に存在するセルの数を計数するS33。この計数値が規定値以下であるかどうかが判別されるS34。この結果、規定値以下である場合、読み出しレベルCRで読み出したデータが正規のデータとして出力される。一方、判別結果が規定値以上である場合、読み出しレベルCRに一定レベルyを加えた読み出しレベルCRyで読み出し動作が行なわれS41、既に読み出されている読み出しレベルCRと、読み出しレベルCRyとの間に存在するメモリセルの数が計数されるS42。この後、CR-x以上、CR以下のセルの数<CR以上、CRy以下のセルの数か、どうかが判別されるS43。この結果、この条件を満たす場合、読み出しレベルを下げてS45、再度読み出し動作が行なわれるS31。このとき、一定レベルxとyが同一の電位差を有するレベルであると仮定した場合、先に読み出しレベルCR-xで読んだデータをCRで読んだデータとすることにより、図17に破線で示すように、読み出しレベルCRでの読み出し動作ステップS31を省略できる。また、先に読み出しレベルCRで読んだデータをCRyで読んだデータとすることにより、破線で示すように、読み出しレベルCRyによる読み出し動作ステップS41を省略できる。また、ステップS43において、条件を満足しない場合、すなわち、CR-x以上、CR以下のセルの数>CR以上、CRy以下のセルの数の場合、読み出しレベルを例えば一定レベルyだけ上げて再度読み出し動作を行うS44~S31。このとき、先に読み出しレベルCRyで読んだデータをCRで読んだデータとすることにより、読み出しレベルCRでの読み出し動作ステップS31を省略することが可能であり、先に読み出しレベルCRで読んだデータをCR-xで読んだデータとすることにより、読み出しレベルCR-xによる読み出し動作ステップS32を省略することができる。したがって、この場合、図17に破線で示すように、ステップS44からS33に制御が移行される。さらに、この場合、ステップS44において、読み出しレベルCRにyされているため、破線で示すように、ステップS41も省略できる。上記動作を繰り返し、ステップS34の条件を満足した場合、正規のデータが読み出される。また、上記動作を繰り返し行った場合、収束しないことがある。この場合、繰り返し回数に最大値を設定し、繰り返し回数が最大値に達した場合、終了とする。あるいは、上記動作を繰り返す毎に、一定レベルx及びyの値を小さくすることも可能である。第2の実施形態によれば、読み出しレベルを上げ下げすることにより、隣接する閾値電圧分布の間の最適値に設定することができる。このため、隣接する閾値電圧分布の間のマージンが少ない場合においても、確実にデータを読み出すことが可能である。第3の実施形態図18abc、図19は、第3の実施形態に係る第1ページの読み出しシーケンスを示している。第3の実施形態は、第1の実施形態の変形例である。NAND型フラッシュメモリは、2~4kBのセルを同時に書き込むが、それぞれのレベルに書き込まれているデータは、同じ割合ではない。例えば1セルに4ビットのデータを16レベルにより記憶する場合で、書き込み単位が4kB=32kビットである場合において、各レベル閾値電圧分布に均等にデータが存在する場合、32kビット/16=2kビットとなる。しかし、書き込みデータによっては、10ビット以下或いは0ビットの場合もある。この場合、図18aに示すように、第1の実施形態を用いて読み出しレベルCR及びCR-xで読み出し、これら読み出しレベルの間に存在するセルの数を計数した場合、計数値は規定値以下となる。このため、繰り返し読み出しは行なわれない。第3の実施形態は、より正確に判断するため、図18bcに示すように、読み出しレベルCRとCR-x、さらに読み出しレベルCRに一定レベルzを加えたCRzによりセルからデータを読み出し、これら読み出しレベルCR-xとCRzの間に存在するセル数の比と規定値とを比較する。一定レベルzは、例えばx、yより大きく、読み出しレベルCRとCRz間に存在するセルの数が、閾値電圧分布内に存在するセルの大半が含まれるように設定する。図19に示すシーケンスにおいて、第1の実施形態と同一部分には同一符号を付している。ステップS31、S32により、読み出しレベルCRとCR-xによりセルからデータを読み出た後、読み出しレベルCRに一定値z>xを加えた読み出しレベルCRzによりセルからデータを読み出すS32-1。この後、例えばホスト11において、読み出しレベルCRとCR-x間に存在するセルの数を計数するとともに、読み出しレベルCRとCRz間に存在するセルの数を計数するS33-3。次いで、CR-x以上、CR以下のセルの数/CR以上、CRz以下のセルの数が規定値以下かどうか判別されるS34-1。この結果、規定値以下である場合、読み出しレベルCRで読み出されたデータが正規のデータとして出力される。一方、判別の結果、規定値以上である場合、読み出しレベルCRを一定値xだけ下げて上記読み出し動作が繰り返されるS36。上記第3の実施形態によれば、読み出しレベルCRとCR-x間に存在するセルの数を計数するとともに、読み出しレベルCRとCRz間に存在するセルの数を計数し、CR-x以上、CR以下のセルの数/CR以上、CRz以下のセルの数が規定値以下かどうか判別することにより、読み出しレベルを定めている。このため、セルの各レベル閾値電圧分布に均等にデータが存在しない場合においても、正確にメモリセルのデータを読み出すことができる。第4の実施形態図20は、第4の実施形態に係る第1ページの読み出しシーケンスを示している。第4の実施形態は、上記第2、第3の実施形態の変形例であり、図17、図19と同一部分には同一符号を付している。図20に示すように、第4の実施形態は、第3の実施形態と同様にして、読み出しレベルCRとCR-x間に存在するセルの数を計数するとともに、読み出しレベルCRとCRz間に存在するセルの数を計数し、CR-x以上、CR以下のセルの数/CR以上、CRz以下のセルの数が規定値以下かどうか判別するステップS31~S34-1。この結果、規定値以下ではない場合、第2の実施形態と同様にして、読み出しレベルCRyでデータを読み出し、CR-x以上、CR以下のセル<CR以上、CRy以下のセルの条件を満足するかどうか判別するステップS42,S43。この判別の結果、条件を満足する場合、読み出しレベルを下げて読み出すステップS31又はS32へ移行。また、判別の結果条件を満足しない場合、読み出しレベルを上げて読み出すステップS44を経てS31又はS32-1へ移行。第4の実施形態によれば、読み出しレベルが隣接する両閾値電圧分布のうち、低い側にある場合で、さらに、閾値電圧分布の割合が異なる場合においても、メモリセルのデータを確実に読み出すことができる。尚、第1乃至第4の実施形態において、計数値や、計数値の比と規定値とを比較した後、読み出しレベルを、判断時に使用したx又はyと同じレベルだけ変更して再度読み出しを実行していた。しかし、これに限定されるものではない。図21は、第1乃至第4の実施形態の変形例を示すものであり、第4の実施形態を例として示している。この変形例の場合、図21のステップS44-1、S44-2に示すように、読み出しレベルCRを設定して再読出しされる。すなわち、ステップS44-1において、読み出しレベルCRはCRαに設定され、ステップS44-2において、読み出しレベルCRは、CR-αに設定される。このαの値は、例えばx以下の値であり、再読み出し毎に小さく設定される。このように、読み出しレベルCRに加算又は減算する値、即ちαの値を徐々に小さくして再読み出し動作を繰り返すことにより、最適な読み出しレベルを設定することが可能である。しかし、この例の場合も、繰り返し再読み出しを行なった際、収束しない場合がある。このような場合は、繰り返し回数に最大値を設定し、再読み出し回数が最大値に達した場合、終了するようにすればよい。また、第2乃至第4の実施形態においても、上記第1の実施形態と同様に、セル数の計数、及び計数値と基準値の比較はホスト11に限定されるものではなく、例えば制御信号及び制御電圧発生回路7により行なうことも可能である。第5の実施形態図22は、第1の実施形態の第1の変形例を示しており、図15と同一部分には同一符号を付している。上記第1の実施形態は、読み出しレベルCRで読み出したデータと、読み出しレベルCR-xで読み出したデータとのXORをSDCからホスト11に出力し、データ1の数を計数した。しかし、1ビット~数ビットずつ出力し、計数するため、時間が掛かるという問題がある。図8に示すデータ記憶回路10のPDCがデータ0をラッチしている場合、ノードN1bがハイレベルとなっているため、信号CHK2n、及び信号CHK1をハイレベルとすると、配線COMiの電位が下がる。配線COMiは、全てのデータ記憶回路10に接続されている。このため、ノードN1bがハイレベルとなっているデータ記憶回路10の数に応じて電流が流れる。したがって、配線COMiに接続されている電流をモニタすることにより、読み出しレベルCRでの読み出し結果と、読み出しレベルCR-xでの読み出し結果とをXORしたことにより得られるデータ1の数を検出することができる。すなわち、図22に示すように、ステップS33-1において、XORの結果をPDCに転送した後、PDCのデータを反転するS33-3。この後、配線COMiの電流をモニタするS33-4。この結果、配線COMiの電流値が規定値以下である場合、読み出しレベルCRで読んだデータがSDCにラッチされているため、SDCのデータを出力するS35-1。一方、配線COMiの電流が規定値以下ではない場合、読み出しレベルCRをxだけ下げS36、再度読み出し動作が実行される。上記構成によっても第1の実施形態と同様の効果を得ることができる。しかも、ホスト11は、配線COMiの電流値を規定値と比較するだけで、データ記憶回路10から供給されるXORされたデータ1の数を計数する必要がないため、判定動作を高速化することが可能である。上記説明は、第1の実施形態を変形して示したが、第2乃至第4の実施形態についても同様に変形することが可能である。第6の実施形態図23は、第2ページの読み出しシーケンスを示している。第2ページの読み出しは、図9bに示すように、読み出しレベルとして選択ワード線に電位BR又はDRが供給される。これら読み出しレベルBRDRでの読み出し時に、第1ページの読み出し動作において検出された読み出しレベルCRの補正値に応じて読み出しレベルBRDRが補正される。すなわち、第2ページのデータ234は、同時に書き込まれている。このため、これらデータの閾値電圧分布の間隔はほぼ等しい。したがって、第1ページの読み出しにおいて、検出された読み出しレベルCRの補正値を、読み出しレベルBRDRに付加することにより、読み出しレベルBRDRを最適に設定することができる。補正値は、次のように設定される。例えば第1ページの読み出しにおいて、読み出しレベルCRにより読み出されたデータが出力されている場合、補正値は0であり、読み出しレベルCR-xにより読み出されたデータが出力されている場合、補正値は-xとなる。図23に示す第2ページの読み出しにおいて、先ず、読み出しレベルDR補正値により、選択されたワード線に接続されている複数のメモリセルからデータが読み出され、これらデータは、対応するデータ記憶回路のPDCとDDC0にラッチされるS51。この後、読み出しレベルBR補正値により、選択されたワード線に接続されている複数のメモリセルからデータが読み出され、これらデータは、対応するデータ記憶回路のPDCとDDC0にラッチされるS52。次いで、PDCのデータがSDCにコピーされ、外部に出力されるS53。第6の実施形態によれば、第1ページの読み出し動作で求めた補正値を、第2ページの読み出し動作で使用する読み出しレベルBRDRに付加している。このため、第2ページのデータを最適な読み出しレベルで読み出すことができる。しかも、第1ページの読み出し動作のように、最適な読み出しレベルを検出する必要がない。したがって、第2ページの読み出し動作の遅延を防止できている。無論、第2ページの読み出しシーケンスも第1ページの読み出しシーケンスと同様に、読み出しレベルBRDRのそれぞれにおいて、補正値を求めて最適な読み出しレベルを検出し、この検出した読み出しレベルによりデータを読み出すことも可能である。また、同一ブロックは同時に書き込みが行われるように制御すると、補正値は近い値となる場合がある。このような場合、ワード線WL0の読み出しで求めた補正値を同一ブロック内の他のワード線WL1~WL31の読み出しで使用することも可能である。このようにすることで、読み出し速度が低下することを防止できる。第7の実施形態上記第1乃至第6の実施形態は、読み出し動作について説明した。これに対して、第7の実施形態は、プログラム動作の改良について説明する。書き込み時間の増大を抑えつつ、書き込み後の閾値電圧分布幅を狭める方法としてQPWQuickPassWrite方式が考案されている。QPW方式は、本来のベリファイレベルより低いレベルを超えたセルに対して、次回以降の書き込み時、ビット線に中間電位を与え、書き込みの強さを弱めることで、閾値電圧の変動を少なくし、閾値電圧分布を狭めることができる。図24、図25は、一般的は、QPW方式を概略的に示している。このQPW方式において、上述したプログラム動作と同様に、データを各データ記憶回路10にロードした後、プログラム動作が行なわれるS51、S52。各レベルのベリファイは、ワード線電位を本来のベリファイレベルより低いレベルAVL,BVL,CVLに設定して第1回目のベリファイ動作を行うS53,S54,S55。このベリファイの結果、レベルAVL,BVL,CVLに達していない場合、プログラム電圧Vpgmが一定電圧増加され、再度プログラム及びベリファイが行われるS56,S57,S52。一方、メモリセルの閾値電圧が本来のベリファイレベルより低いレベルAVL,BVL,CVLに達している場合、次回の書き込みでは、ビット線に中間電位を供給するなどして、セルのチャネルと制御ゲートとの電位差を小さくして書き込みを弱め、セルの閾値電圧の変化を少なくし、本来のベリファイレベルAV,BV,CVに達するまで、書き込みとベリファイ動作を繰り返す。このように、一般にQPW方式は、本来の書き込みベリファイレベルより低いレベルを用いたベリファイと、本来の書き込みベリファイレベルを用いたベリファイとからなる2回のベリファイを必要とするため、ベリファイ時間が2倍又は2倍近く増大する問題がある。図25は、上記QPW方式により、レベルCを書き込む場合における、セルに印加されるプログラムパルス電圧と、このプログラムパルス電圧を印加した後における閾値電圧の変化を示している。図25から明らかなように、セルの閾値電圧が低めのベリファイレベルCVLを超えた後、プログラムパルス電圧の増分を低減し、書き込みを弱めている。このため、セルの閾値電圧の変化が少なくなっていることが分かる。図26は、第7の実施形態のプログラムシーケンスを示し、図27は、レベルCに書き込んでいるセルの各プログラムパルス印加後の閾値電圧の変化を示している。図26において、図24と同一部分には同一符号を付し、異なる部分についてのみ説明する。第7の実施形態は、ベリファイレベルAV,BV,CVを用いて、3つの閾値電圧を同時に書き込む。図26に示すように、第7の実施形態において、各レベルのベリファイは、本来のベリファイレベルAV,BV,CVを用いたベリファイS58,S59,S60のみが実行される。このベリファイにおいて、書き込み対象の閾値電圧に対応したベリファイレベルより1つ下のベリファイレベルBVを越えてから、プログラム電圧Vpgmをステップアップしながら書き込みを行い、この書き込みが例えば3回目を越えた場合、次のプログラム以降において、ビット線に中間電位を供給するなどして書き込みを弱めるS71。この状態において、レベルCVによりベリファイするS59。この結果、セルの閾値電圧がレベルCVに達しない場合、PDCはローレベルであるS56。このため、プログラム電圧をステップアップしS57、再度、弱い書き込みを行なう71。この動作を全てのPDCがハイレベルとなるまで繰り返す。尚、この動作において、レベルCVをベリファイしているとき、2つ下のベリファイレベルAVへの書込みが終了している場合、このベリファイ動作は、スキップできる。また、一番下のベリファイレベルAVのベリファイの場合、これより下にレベルが無い。このため、図26のステップS58において、例えばレベルAVによるベリファイは、図24に示すように、低めのベリファイレベルでのベリファイAVLと、本来のベリファイレベルでのベリファイAVとの2回行ってもよい。図27に示すように、第7の実施形態において、レベルCに書き込んでいるセルは、レベルBのベリファイレベルBVレベルCより1つ下のベリファイレベルを超えた後、n回目、例えば3回目の書き込み以降図示書き込み回数9回目以降、ビット線に中間電位を印加するなどして、書き込みを弱めている。したがって、閾値電圧の変化を少なくなる。第7の実施形態によれば、書き込み対象のベリファイレベルより1レベル下のベリファイレベルを超えた後、n回目の書き込み以降、書き込みを弱めている。このため、一般的なQPWのように、各ベリファイにおいて、本来のベリファイレベルと、それより低いベリファイレベルを用いた2回のベリファイを行う場合に比べて、ベリファイ時間を短縮することができる。この効果は、2ビット4値以上のデータを記憶する場合、一層顕著となる。尚、第7の実施形態において、n=3回目の書き込み以降としたが、これに限定されるものではなく、nの値は、評価により最適な回数に決めればよい。第8の実施形態図28は、第8の実施形態に係るプログラムシーケンスを示し、図29は、レベルCに書き込んでいるセルの各プログラムパルス印加後の閾値電圧の変化を示している。第8の実施形態は、第7の実施形態を変形したものであり、図28において、図26と同一部分には同一符号を付している。第7の実施形態は、書き込み対象のベリファイレベルより1レベル下のベリファイレベルを超えた後、n回目の書き込み以降、書き込みを弱めた。これに対して、第8の実施形態は、図28、ステップ81に示すように、書き込み対象のベリファイレベルより2つ下のベリファイレベルを超えてから、書き込み対象のベリファイレベルより1つ下のベリファイレベルに達するまでの書き込み回数k回ここでは3回を計数し、1つ下のベリファイレベルを超えてからh回目h=k±α、α:補正値の書き込みより、ビット線に中間電位を印加するなどして、書き込みを弱め、閾値電圧の変動を少なくしている。回数hは、例えばα=0とするとhも3回すなわち、図29に示すように、レベルCに書き込む場合、ベリファイレベルAVを超えてから、ベリファイレベルBVに達するまでの書き込み回数を計数する。この計数は、書き込んでいるセルそれぞれについて集計を行う場合、それぞれのビット線に接続されているデータ記憶回路内に数をカウントする回路を設け、この回路により行う。また、同時に書き込んでいるセルの平均値を求める場合は、例えば制御信号及び制御電圧発生回路7にカウンタを設け、このカウンタにより例えばプログラム電圧Vpgmのステップアップ回数を計数すればよい。このカウンタの計数値がk=3である場合において、αを例えば0とした場合、ベリファイレベルBVから、h=3回目の書き込みより、ビット線に中間電位を供給するなどして書き込みを弱める。回数hは、計数値kに補正値αを加えた値とした。しかし、通常、メモリセルに記憶される各閾値電圧間のマージンは、高いレベルほど、データリテンションを向上させるためマージンを多く必要とする。すなわち、BV-AV≦CV-BVとなっている。このため、回数hは、計数値kは、ほぼ同じ値でよい。上記第8の実施形態によっても、第7の実施形態と同様の効果を得ることができる。しかも、第8の実施形態によれば、書き込みの速いセルや遅いセルがある場合においても、各閾値分布を正確に書き込むことができる。第9の実施形態図30aは、1セルに1ビットを記憶する2値での閾値電圧分布、図30bは、1セルに4ビットを記憶する16値での閾値電圧分布を示している。16値は、1セルに4ビットを記憶できるメリットがある。しかし、各閾値電圧分布を狭く書き込まなくてはならない。このため、僅かずつ書き込みとベリファイ動作を繰り返す必要があり、書き込み速度が非常に遅くなる。また、図30abにおいて、実線で示す閾値電圧分布は、書き込み直後の状態を示し、破線で示す閾値電圧分布は、長期間放置した場合における状態示している。このように、長時間放置された場合、閾値電圧分布が広がるため、データリテンションマージン閾値電圧分布間のマージンが少ない。図31は、NAND型フラッシュメモリの書き込み/消去回数と、必要なデータリテンションマージンの関係を示している。図31から明らかなように、NAND型フラッシュメモリは、書き込み/消去の増加に伴い必要なデータリテンションマージンが増大する。したがって、2値は書き込み/消去回数を100,000回、16値は書き込み/消去回数を1,000回に抑えると、必要なデータリテンションマージンが少なくて済むため、書き込み/消去回数を抑える仕様とされている。図32は、第9の実施形態に係るNAND型フラッシュメモリを概略的に示している。このNAND型フラッシュメモリのメモリセルアレイ1図2のメモリセルアレイ1に対応するは、消去単位である複数のブロックBLK0~BLK4095を含んでいる。第9の実施形態は、これらブロックのうち、破線で囲まれた第1の領域91に含まれるブロックを、2値データを記憶用として使用し、破線で囲まれた第2の領域92に含まれるブロックを、16値データを記憶用として使用する。例えばデータを高速に書き込む必要がある場合、又は書き込み/消去を多く繰り返すデータは、第1の領域91に含まれる2値データ用のブロックに書き込む。また、例えば高速書き込みが要求されず、書き込み/消去回数が少ないデータは第2の領域92に書き込むように制御する。この書き込み領域の選択制御は、例えばホスト11により行なわれる。すなわち、ホスト11は、例えばデータの書き換え毎に更新されるシステム情報のように、頻繁に書き換えられるデータを第1の領域91内に書き込み、その他のデータを第2の領域92に書き込む。第9の実施形態によれば、メモリセルアレイ1を第1の領域91、第2の領域92に分け、第1の領域91に含まれる複数のブロックを2値データ記憶用のブロックとして使用し、第2の領域92に含まれる複数のブロックを16値データ記憶用のブロックとして使用している。このため、データリテンションマージンの劣化、及び書き込み速度の低下を防止することが可能である。図33は、図30bに示す1セルに16値を記憶する場合における書き込みシーケンスを示している。この場合、1回の書き込み後、16回のベリファイ動作を行うS81。この書き込み、及びベリファイ動作は、同時に書き込んでいるセルが全てベリファイをパスするまで繰り返される。書き込むべきレベルに書き込むセルが無い場合、このベリファイをスキップすることが可能である。一方、ダイソートテストは、一番低い閾値電圧と、一番高い閾値電圧のデータだけを評価することで足りる場合がある。図34は、ダイソートテスト時における書き込み動作を示している。この場合、先ず、外部よりテストコマンドを入力するS91。このテストコマンドに応じて、例えば、レベル0、レベル1、レベルFのみ、又はレベル1、レベルFのみ、ベリファイが実行されるS92。このようにすることにより、テスト時間を短縮することが可能である。尚、テスト時は、レベル0、レベル1、レベルFのみ、又はレベル1、レベルFのみ、ベリファイを行うことを示したが、テストコマンド入力により、複数レベルのベリファイの内、任意の特定のレベルのみ又は、任意の特定の数レベルのみ行うようにすることも可能である。第10の実施形態図35は、NAND型フラッシュメモリを音楽データや画像データなどマルチメディアデータの記憶再生機に用いた場合を示している。この記憶再生機100は、例えばパーソナルコンピュータや携帯電話機であり、インターネット接続手段や無線などの通信手段101、NAND型フラッシュメモリ102、再生回路103、及び制御部104を有している。近時、このような記憶再生機100を用いて、データサーバ110から音楽データ、又は画像データを購入することが可能とされている。すなわち、ユーザは音楽データ、又は画像データを購入する場合、記憶再生機100のインターネットや無線などの通信手段を介してデータサーバ110にアクセスし、音楽データや画像データの購入要求をする。この要求に応じて、データサーバ110に蓄えられているデータが、インターネットなどの通信手段を介して記憶再生機100にダウンロードされる。記憶再生機100にダウンロードされたデータは、NAND型フラッシュメモリ102に記憶される。ところで、音楽データ、又は画像データは非常にデータ量が大きい場合がある。このため、NAND型フラッシュメモリ102への書き込みに時間がかかることがある。しかも、NAND型フラッシュメモリ102が、例えば1セルに16値データを記憶する場合、書き込み速度が遅いため、大量のデータを書き込むためにさらに長時間を要するという問題を有している。図36、図37は、第10の実施形態に係わり、音楽データや画像データを再生しながらダウンロードする方法を示している。記録再生機100を用いて、NAND型フラッシュメモリ102に記憶されている音楽データ又は画像データを再生する場合、記録再生機100の制御部104は、NAND型フラッシュメモリ102に再生すべき音楽データ又は画像データがあるかどうかを検索するS100。データがある場合は、そのデータが再生回路103により再生されるS101。一方、NAND型フラッシュメモリ102に再生すべき音楽データ又は画像データが無い場合、制御部104は、NAND型フラッシュメモリ102に購入権利データがあるかどうかを検索するS102。この結果、購入権利データが無い場合、ユーザにデータの購入を希望するかどうかの入力を促しS103、購入を希望する場合、インターネット、無線などの通信手段101を介してデータサーバ110にアクセスし、購入を希望する音楽データ、又は画像データの購入要求を送信するS104。データサーバ110により購入要求が認められた場合、制御部104は、データサーバ110より購入権利データをダウンロードしS105、このダウンロードした購入権利データをNAND型フラッシュメモリ102に記憶するS106。すなわち、このとき、データ量の多い音楽データや画像データはダウンロードせず、少量データからなる購入権利データのみをダウンロードする。このため、購入権利データのダウンロード、及びNAND型フラッシュメモリ102への記憶に要する時間を短縮できる。この後、ユーザが音楽データ又は画像データを再生する時、前記ステップS100を経由してステップS102において購入権利データがあるかどうかが判別される。この場合、NAND型フラッシュメモリ102に購入権利データが記憶されているため、制御部104は、通信手段101を介して、データサーバ110にアクセスし、購入権利データに対応する音楽データ、又は画像データをダウンロードするS107。このダウンロードしたデータをNAND型フラッシュメモリ102に記憶するとともに、再生するS108。データの再生時間は、データをNAND型フラッシュメモリ102に書き込む速度に比べて格段に長いため、ダウンロードしたデータを再生しながら、NAND型フラッシュメモリ102に書き込んでいてもデータの再生に問題はない。尚、ダウンロードされたデータは、例えば図示せぬバッファ回路に記憶され、このバッファ回路に記憶されたデータが再生されるとともに、NAND型フラッシュメモリ102に書き込まれる。また、破線で示すように、ステップS106の後、即、ステップ107,108を実行することも可能である。上記第10の実施形態によれば、音楽データ、又は画像データを購入する際、先ず、データ量の少ない購入権利データのみをダウンロードし、音楽データ、又は画像データを再生する際、購入権利データに対応する音楽データ、又は画像データを再生しながら、NAND型フラッシュメモリ102に書き込んでいる。このため、データ量の多い音楽データや画像データを、書き込みに要する時間を意識することなくダウンロードすることができる。上記第9、第10の実施形態において、データの読み出しは、上記第1乃至第6の実施形態を利用でき、データの書き込みは、上記第7、第8の実施形態を適用することも可能である。尚、上記各実施形態において、メモリセルに書き込むデータは2ビット、4ビットに限定されるものではなく、3ビット或いは、5ビット以上のnビットとすることも可能である。その他、本発明の要旨を変更しない範囲において、種々変形実施可能なことは勿論である。"