"クロック端子と、コマンド端子と、データ端子と、制御回路と、複数の不揮発性メモリセルと、を有し、前記クロック端子はクロック信号を入力され、前記コマンド端子は読み出しコマンド及び書込コマンドを含む複数のコマンドを入力され、前記複数のコマンドのそれぞれはデコードされることにより動作が決定され、前記制御回路は、プログラムメモリに格納されたプログラムを実行することにより前記複数のコマンドのそれぞれに対応した動作制御を行い、前記読み出しコマンドの入力に応じた処理において、前記制御回路は前記不揮発性メモリセルからデータを読み出し、前記クロック信号に応じて前記データ端子を介してデータを出力し、前記書込コマンドの入力に応じた処理において、前記制御回路は前記クロック信号に応じて前記データ端子を介してデータを入力され、前記不揮発性メモリセルへデータを格納することを特徴とする不揮発性メモリ装置。従来のフラッシュメモリでは、隣接ビットへの書込み読み出し消去動作に伴い生じる弱い書込み等ディスターブ及び自然リークリテンションによりしきい値のばらつきが増大し、論理0、論理1に対応するしきい値のばらつき分布形状の半値幅図3に示されているような山型のばらつき分布のピーク値の1/2の位置での幅が時間の経過とともに大きくなることが知られている。今後のLSIの電源電圧の低電圧化に伴い、メモリセルのしきい値電圧は、ばらつき分布形状の経時的広がりにより読出し電圧に対する電圧余裕範囲を越えてしまい、誤動作が起こり得るという問題点があることを本発明者は発見した。特に、しきい値の差異により複数ビットのデータを一つの記憶素子に記憶させる多値メモリにおいては、各データに対応するしきい値電圧の差は小さいので、上記問題点は顕著となる。さらに、フラッシュメモリにあっては、不揮発性記憶装置固有の消去及び書込みベリファイ動作があるため、多値メモリ固有の処理時間及び回路規模は最小限に抑制すべきであるという技術的課題がある。この発明の目的は、回路の規模の増大を最少に抑え、かつ短時間で高精度の書込み、読み出し、消去動作を実現可能な多値記憶型不揮発性記憶装置を提供することにある。この発明の他の目的は、しきい値のばらつき分布形状を急峻化させる方法およびこれによって低電圧での安定した動作が可能な不揮発性記憶装置を提供することにある。この発明の前記ならびにほかの目的と新規な特徴は、本明細書の記述及び添付図面から明らかになるであろう。本願において開示される発明のうち代表的なものを概要を簡単に説明すれば、下記のとおりである。すなわち、1しきい値に応じて情報を記憶するようにされたメモリセル記憶素子を備えた不揮発性記憶装置において、データ書き込み時には複数ビットのデータをデータ変換論理回路によりそのビットの組合せに応じたデータ多値データに変換して、変換されたデータをメモリアレイのビット線に接続されたラッチ回路に順次転送し、該ラッチ回路に保持されたデータに応じて書き込みパルスを生成して選択状態のメモリセルに印加することで、多値データに対応したしきい値を有する状態にさせるとともに、データ読み出し時には読み出し電圧をそれぞれのしきい値の中間に変化させてメモリセルの状態を読み出して多値データを記憶するレジスタに転送させて保持させ、該レジスタに記憶された多値データに基づいて逆データ変換論理回路により元のデータを復元させるようにしたものである。2メモリアレイ内のメモリセルに対して弱い消去動作を実行した後、ワード線を読み出しレベルよりも低くかつベリファイレベルよりも高いしきい値を有するメモリセルを検出して該メモリセルのしきい値がベリファイ電圧よりも低い値になるように書込みを実行することで、各入力データに対応して書き込まれたメモリセルのしきい値電圧のばらつき分布形状の広がりを狭くするようにしたものである。上記した1の手段によれば、メモリアレイの周辺回路規模を比較的小さく抑えることができるとともに、書込み動作においては、ワード線のベリファイ電圧値を消去のためのワード線電圧に近い側から遠ざかる方向に所定の値だけ順次変更する図31→4参照ことにより、書込みパルスの総数すなわち書込み時間は、ベリファイ電圧をランダムに設定する多値フラッシュメモリの方式に比べて小さくすることができ、短時間での書込み動作が実現できる。また、上記2の手段により、ディスターブやリテンション等により広がったメモリセルのしきい値電圧のばらつき分布形状を書込み完了直後とほぼ同等の急峻な形状に戻すことができる。本願において開示される発明のうち代表的なものによって得られる効果を簡単に説明すれば下記のとおりである。すなわち、回路の規模の増大を最少に抑え、かつ短時間で高精度の書込み、読み出し、消去動作が可能な多値記憶型不揮発性記憶装置を実現することができるとともに、記憶素子のしきい値ばらつき分布形状を急峻化させ低電圧での安定した動作が可能な不揮発性記憶装置を実現することができる。以下、本発明をフラッシュメモリに適用した場合についてその実施例を図面を用いて説明する。図1は、外部から入力される記憶すべきデータとメモリセルに記憶される多値データとの変換方式を、また図2は多値データから元のデータを復元する逆変換方式を示すものである。図1には、特に限定されないが、1メモリセル1記憶素子に2ビットすなわち00、01、10、11の何れかを記憶させる場合の変換方式の例が示されている。図11における第1のバイナリデータであるaと第2のバイナリデータであるbとの組み合わせは4種類有り、各組合せは図12に示す3種類の論理演算aNANDb,NOTb,aNORbを実施することにより、4つのビットのうち1の個数が0個、1個、2個、3個という4種類の4値データに変換される。ここで、上記の演算結果による1の個数だけ記憶素子に対して書込み動作すなわち書込みパルスの印加をすれば、各記憶素子のしきい値が書込み回数に応じて、図13に示すように4通りになり、2ビットデータを1メモリセルに書き込むことができる。メモリアレイ内の複数の記憶素子に対して、00、01、10、11のデータをそれぞれ同数ずつ記憶させる場合の各記憶素子のしきい値分布の変化の様子が図3に示されている。図2はデータ読み出し原理を示すものである。ワード線の読み出し電圧を、3段階図3の各しきい値分布の中間の値に変化させることにより、同一メモリセルから3種のデータ、c,d,fを順次読み出すことができる。そこで、読み出されたデータに対して論理演算NANDcを実施することで書き込まれた2ビットのデータのうち一方aを復元することができる。また、読み出されたデータのうちdは、そのままで書き込みデータbと一致する。なお、d,cはd,cの反転信号を表わす。図4には、図1および図2に示した多値データへの変換および逆変換の具体的回路構成の一例が示されている。データ書込みに際して、外部から多値フラッシュメモリへ供給された2nビット長のデータは、スイッチSW1を介してデータ幅がnビットである2つのバイナリデータレジスタREG1,REG2にシリアルに格納される。このとき、特に制限されないが、外部から供給されるクロックCLK1により動作されるフリップフロップFF1の出力により上記スイッチSW1が切り換えられるとともに、分周回路DVDでクロックCLK1を分周して得られたCLK1の2倍の周期のクロックCLK1’が切換え回路CHGを介して供給されこのクロックCLK1’に同期してバイナリデータレジスタREG1,REG2がシフトされることにより、入力データは1ビットずつ交互にバイナリデータレジスタREG1,REG2に格納される。第1のバイナリデータレジスタREG1に格納されたデータaと第2のバイナリデータレジスタREG2に格納されたデータbは、内部のクロック生成回路30から切換え回路CHGを介して供給されるクロックCLK2に同期してシフトされ、図12の演算を行うデータ変換論理回路11に1ビットずつ供給され、所定の論理演算後にスイッチSW2を経てメモリアレイ12の一側に設けられているnビット長のセンスラッチ回路13に順次転送され、メモリアレイ12内のメモリセルへの書き込みが実行される。この書き込み動作については後に詳しく説明する。上記切換え回路CHGは、メモリ内部の制御を司るシーケンサ18からの制御信号によってデータ入力時にはクロックCLK1’をバイナリデータレジスタREG1,REG2に供給し、センスラッチ13との間のデータ転送の際にはクロック生成回路30からのクロックCLK2をバイナリデータレジスタREG1,REG2に供給するように切り換え制御される。上記データ変換論理回路データ書込み用演算回路11は、上記バイナリデータレジスタREG1,REG2内のデータa,bをそれぞれ入力端子に受けaNANDbの演算を行なうようにされたNANDゲートG1およびaNORbの演算を行なうNORゲートG2と、上記バイナリデータレジスタREG2のデータbを入力端子に受けNOTbの演算を行なうインバータG3とから構成され、スイッチSW2はこれらの論理ゲートG1,G2,G3のいずれかの出力信号を選択して上記センスラッチ回路13へ供給するように構成されている。一方、データ読出しに際して、メモリアレイ12内の1本のワード線が読み出し電圧レベルにされることに応じてビット線上に出現した読み出しデータcは、上記センスラッチ回路13により増幅されてラッチされ、内部のクロックCLK2に同期してスイッチSW3を介して前記バイナリデータレジスタREG1にシリアル転送される。次に、読み出し電圧レベルを変更してセンスラッチ回路13に読み出されたデータdはスイッチSW3を介して前記バイナリデータレジスタREG2にシリアル転送される。さらに、読み出し電圧レベルを変更してセンスラッチ回路13に読み出されたデータfはスイッチSW3を介して逆変換論理回路14にシリアル転送される。このとき、バイナリデータレジスタREG1,REG2は、クロックCLK2に同期してシフトされる。ただし、データ読出し時のクロックCLK2の周期はデータ書込み時のクロックCLK2の周期よりも短くて良い。クロックCLK2の周期は、シーケンサ18からの制御信号によってクロック生成回路30が決定して生成することができる。ワード線読み出しレベルの変更もシーケンサ18からの制御信号に従って行われる。上記逆変換論理回路データ読出し用演算回路14は、上記バイナリデータレジスタREG2から出力されるデータを入力とするインバータG11と、該インバータG11との出力と上記センスラッチ回路13からの転送データを直接入力端子に受けるようにされたNANDゲートG12と、上記バイナリデータレジスタREG1から出力されたデータを遅延させて所定のタイミングで出力する遅延回路DLYと、該遅延回路DLYの出力を反転するインバータG13と、該インバータG13の出力と上記NANDゲートG12の出力とを入力とするNANDゲートG14とにより構成され、上記バイナリデータレジスタREG1,REG2に保持された読み出しデータc,dおよびセンスラッチ回路13から直接転送された読み出しデータfに対して図2に示した論理演算NANDcを実施する。この演算結果は、スイッチSW1を介してデータ入出力端子I/Oへ出力される。このようにして1ビットのデータが出力されると同時に、上記バイナリデータレジスタREG2がシフトされて保持されていたデータd=bの1ビットが出力される。このとき、バイナリデータレジスタREG1,REG2のシフト動作はクロックCLK2に同期して行われる。次に、再び上記バイナリデータレジスタREG1,REG2からデータc,dの次のビットが読み出され、センスラッチ回路13から直接転送された読み出しデータfの次の1ビットに対して論理演算dNANDfNANDcを実施する。以下、上記と同様の動作を繰り返すことで、逆変換されて元の2ビットに復元されたデータa,bがデータ入出力端子I/Oより外部へ出力される。なお、上記のように、逆変換論理回路14で逆変換されたデータaを直ちに入出力端子I/Oへ出力させる代わりに、逆変換されたデータaを一旦バイナリデータレジスタREG1に格納し、全てのビットについて逆変換が終了した後にバイナリデータレジスタREG2内のデータと交互に入出力端子I/Oへ出力させるように構成しても良い。その場合、上記遅延回路DLYの代わりに、1ビットのラッチ回路を設けるようにするのが、望ましい。これによって、バイナリデータレジスタREG1内のデータcを1ビット読み出してデータd,fとの論理演算を行ない、その結果をバイナリデータレジスタREG1内の元のビット位置に書き込むといった操作が簡単に行なえるようになる。逆変換後のデータを一旦バイナリデータレジスタREG1,REG2に格納してから外部へ出力する場合のバイナリデータレジスタREG1,REG2のシフト動作は、外部からのクロックCLK1に同期して行うように構成することができる。この実施例のフラッシュメモリは、特に制限されないが、外部のCPU等から与えられるコマンドを保持するコマンドレジスタ16と、該コマンドレジスタ16に格納されたコマンドをデコードするコマンドデコーダ17と、該コマンドデコーダ17のデコード結果に基づいて当該コマンドに対応した処理を実行すべく上記スイッチSW2,SW3等各回路に対する制御信号を順次形成して出力するシーケンサ18とを備えており、コマンドが与えられるとそれを解読して自動的に対応する処理を実行するように構成されている。上記シーケンサ18は、例えばマイクロプログラム方式のCPUの制御部と同様に、コマンド命令を実行するのに必要な一連のマイクロ命令群が格納されたROMリードオンリメモリからなり、コマンドデコーダ17がコマンドに対応したマイクロ命令群の先頭アドレスを生成してシーケンサ18に与えることにより、マイクロプログラムが起動されるように構成されている。詳細な書込み手順は図5の書込みフローに従い、次のように説明される。先ず、書込みに先立ち、すべてのメモリセルに対して一括消去が行なわれる。これによって、すべてのメモリセルは、最も高いしきい値約5V有するようにされ、書き込みデータとして11を記憶した状態となる図31。一括消去は、図13に示すように、ワード線を立ち上げてメモリセルのコントロールゲートCGに10V、ビット線を介してドレインに0V、基板半導体領域pwellに-5Vの電圧を印加して、フローティングゲートFGに電子を注入することにより行なう。上記一括消去は、外部CPUから消去を指令する消去コマンドがコマンドレジスタ16に書き込まれることにより実行される。なお、図13図12,図14において、psubはp型半導体基板、pwellはメモリセルの基体となるp型半導体ウェル領域、nisoはデータ消去時負電圧印加時に基板psubとの絶縁をとるためのn型半導体アイソレーション領域、p型ウェル領域pwellの表面のnはメモリセルのソース、ドレイン領域、p型ウェル領域pwellの表面のp、アイソレーション領域niso表面のnおよび基板psubの表面のpは、各半導体領域に電位を与える電極との接触抵抗を低減するためのコンタクト領域である。特に制限されないが、1つのp型ウェル領域には、128本のようなワード線に接続されたメモリセルが形成され、このような一つのウェル上に形成された全てのメモリセルの一括消去が可能にされている。また、1つのp型ウェル領域上のメモリセルに対して、ワード線電位を選択10V/非選択0Vとすることで、ワード線単位の消去も可能である。一括消去が終了すると、外部のCPUから書込みコマンドが図4のコマンドレジスタ16に書き込まれることによりフラッシュメモリは書き込みモードとなる。この書き込みモードにおいて、所定のタイミングで書き込みデータが入力される。すると、フラッシュメモリは、上記書き込みデータをバイナリデータレジスタREG1,REG2に取り込んで、2ビットずつ変換論理回路11に転送して4値のデータに変換するステップS1。変換は、aNANDb,NOTbbの反転,aNORbの順に行なわれる。変換されたデータ1回目はaNANDbは、センスラッチ回路13に転送されるステップS2。次のステップS3でバイナリデータレジスタREG1,REG2内のすべてのデータが転送されたか否か判定し、転送が終了したと判定すると、外部のCPUから供給されたXロウ系アドレスと図10に示す内蔵Yアドレスカウンタ33から出力されるYカラム系アドレスの1に対応したビットのメモリセルに所定のパルス幅の書き込みパルスが印加され、書き込みが実行されるステップS4。書き込みは、図12に示すように、ワード線を介してコントロールゲートCGに-10V、ビット線を介してセンス回路からドレインに5V、基板に0Vの電圧を印加することで行なわれる。なお、このとき非選択のワード線にはVcc例えば3.3Vが印加される。これによって、ディスターブによるしきい値の変動が抑制される。次に、書込みレベルに応じたベリファイ電圧1回目は約3.5Vが書き込み時に選択状態にされたまのワード線に供給され、書き込みパルスが印加されたメモリセルの読み出しが行なわれる。充分に書き込みがなされたメモリセルからは読み出しデータとして0が読み出されるが、書き込み不足のメモリセルからは読み出しデータとして1が読み出される。従って、読み出されたデータに応じて書き込み終了か書き込み不足かが判る。ここで書き込みが終了したビットのセンスラッチ回路13のデータは0に反転されるステップS6。そして、すべてのセンスラッチ回路13のラッチデータが0になったか否か判定し、オール0になればその回の書き込みは終了するが、1つでもラッチデータが1である書き込み不足のメモリセルがあれば、ステップS7からS4に戻って1に対応する書き込み不足のメモリセルに対して再び書き込みパルスが印加される。上記ステップS4~S7を繰り返すことで全てのメモリセルのしきい値が書込みベリファイ電圧以下に下がるよう書込みパルスが繰り返し印加される。これによって、書き込みのなされたメモリセルは平均で3.2V程度のしきい値を有するようにされる。上記書込みベリファイ動作により全てのメモリセルへの所望のデータの書込みが完了すると、センスラッチ回路13のすべてのデータは0になるので、ステップS8へ移行し、すべての書き込みレベルによる書き込み、すなわちデータ10,01,00に対する書き込みが終了したか判定する。そして、終了していなければステップS1に戻り、次の演算結果NOTbに基づく4値データがメモリセルに書き込まれ、ワード線のベリファイ電圧を変更2回目は2.5Vしてベリファイが行なわれ、書き込みのなされたメモリセルは平均で2.2V程度のしきい値を有するようにされる。その後、第3の演算結果aNORbの書込みおよびベリファイベリファイ電圧1.5Vが実行され、書き込みのなされたメモリセルは平均で1.2V程度のしきい値を有するようにされて書込みが終了する。図6は、上記書込み及び書込みベリファイ動作時の制御クロックCLK2とセンスラッチ回路13への書き込みデータおよび選択ワード線電位の波形を示す。一回目の書き込みでは、第1の演算結果aNANDbをセンスラッチ回路13に転送後、書込みパルスによりラッチの値が1である選択されたメモリセルに書き込みがなされる。次に、書込みベリファイ電圧としてワード線に例えば3.5V程度の電圧を供給し、読み出されたデータが0になっているか否かを判定する。しきい値が3.5Vより高い場合は、読み出されたデータは1となり書込み不足であることが分かるので、読み出しデータが0になるまで書込み動作が繰り返される。次に、第2の演算結果NOTbがセンスラッチ回路13に転送され、書込みパルスにより、所望のメモリセルに書込み動作が開始される。書込みベリファイ電圧は、2.5V程度に設定されており、書き込み不足になっていないか判定し、不足のときには再書き込みがなされる。最後に、第3の演算結果aNORbが、センスラッチ回路13に転送され、上記と同様の手順が行われる。この場合の書込みベリファイ電圧は1.5V程度である。上述したように、上記実施例においては、3段階の書込みベリファイのワード線電圧の設定は、消去レベル約5ボルトに最も近く設定されたレベル3.5Vを起点として、以後消去レベルから遠ざかる方向に電圧値が順次変わる3.5V→2.5V→1.5Vように制御される。また、上記実施例では、図7Bに示すように、目標とするしきい値が中間もしくは最も低いもの2.2V,1.2Vに対しても、最も高いしきい値3.2Vを目標とするメモリセルへの書き込みを行なう際に同時に書き込みを行なうようにしている。これは本発明の特徴の一つである。これにより多値データの書込み処理時間の増大を最少に抑えることができる。すなわち、上記した方法以外に書き込み及び書込みベリファイのワード線電圧の設定方法としては、一回目で3種類のしきい値電圧のうち中間のもの2.2Vを目標として書き込みを行ない、次に一回目の電圧よりも高いレベル3.2V、または低いレベル1.2Vを目標とするように設定を変更する方法が考えられる。あるいは、図7Aに示すように、目標とするしきい値が同一のメモリセルに対してそれぞれ一括して書き込みを行なう方法が考えられる。しかし、これらの方法は、書込み処理が複雑で時間を要すること、またワード線電圧を変更するためのチャージ/ディチャージのための時間も増加するため、書込み/ベリファイ時間が本実施例よりも大きくなってしまう。次に、図8および図9を用いてメモリセルの読み出し動作について説明する。データの読み出しは、図14に示すように、ワード線を立ち上げてメモリセルのコントロールゲートCGに3.7V,2.7Vまたは1.7Vのような選択レベルの電圧を、またビット線を介してドレインに1.5Vの電圧を印加することにより行なう。読み出し動作は、読み出しを指令するコマンドがコマンドレジスタ16に書き込まれることにより実行される。読み出し動作が開始されると、まず読み出しレベルを最も高い3.7Vに設定してワード線を立ち上げるステップS11。すると、選択されたメモリセルにおいて、ワード線読み出し電圧レベルに応じてビット線上にデータが出現するので、ビット線レベルをセンスラッチ回路13により増幅することでデータの読み出しを行なうステップS12。次に、読み出し動作が一回目、二回目かまたは三回目であるかによって以後の処理が分かれるステップS13。すなわち、読み出し動作が一回目のときは、上記センスラッチ回路13内の読み出しデータをバイナリデータレジスタREG1へ転送するステップS14。そして、センスラッチ回路13内のすべての読み出しデータの転送が終了するとステップS15からS11へ戻って、読み出しレベルを2.7Vに設定して二回目のデータ読出しを行ない、それをバイナリデータレジスタREG2へ転送する。二回目のデータ読み出しおよび転送が終了すると、読み出しレベルを1.7Vに設定して三回目のデータ読み出しを行ない、ステップS13からS16へ移行して読み出しデータを直接逆変換論理回路14に転送する。また、上記バイナリデータレジスタREG1,REG2に保持されているデータをそれぞれ1ビットずつ逆変換論理回路14へ転送し、ここで4値データを2ビットに変換する論理演算を行なうステップS17。そして、センスラッチ回路13内のすべてのデータの転送、変換が終了するまで、上記手順S16~S18を繰り返し、読み出し動作が終了する。上記データ変換は図2の演算を実行することにより得られる。図9には、上記手順に従った読み出し動作中における制御クロックCLK2とセンスラッチ回路13から転送されるデータおよびワード線の読み出しレベルのタイミングが示されている。外部から読み出しコマンドおよびアドレスが与えられると、読み出し動作が開始され、まず第1の読み出しレベル3.7Vが設定されてワード線が立ち上げられることにより、ビット線上にデータが出現する。第1のワード線レベルである3.7Vにより出現したデータcはセンスラッチ回路13により読み出され、センスラッチのデータ長であるnビットと同一のデータ幅を有する第1のバイナリデータレジスタREG1にデータが転送される。次に、ワード線電圧レベルを所定の値だけ下げて第2の読み出しレベル2.7Vに設定して得られたデータdは、第2のバイナリデータレジスタREG2に転送される。ワード線を第3の読み出しレベル1.7Vに下げて得られたデータfは逆変換論理回路14に転送され、上記c、d、fの4値データが2ビットデータに復元されて外部の例えばCPUに出力される。図10には、上記データ変換逆変換機能回路を同一半導体チップ上に備えた多値フラッシュメモリMDFMの全体の構成例と、これに接続されるコントローラCONTとの関係が示されている。コントローラCONTは、この実施例の多値フラッシュメモリに対しては、アドレス生成機能とコマンド生成機能を備えるだけでよいので汎用マイクロコンピュータを用いることができる。図10において、図4と同一符号が付されている回路部分は同一の機能を有する回路である。すなわち、REG1,REG2はコントローラからの2ビットの書き込みデータを取り込むバイナリデータレジスタ、11は取り込まれた2ビットデータを4値データに変換するデータ変換論理回路、12はFAMOSのようにフローティングゲートを有する不揮発性記憶素子がマトリックス状に配設されたメモリアレイ、13は読み出しデータおよび書き込みデータを保持するセンスラッチ回路、14はメモリアレイから読み出された4値データを元の2ビットデータに変換する逆変換論理回路、16はコントローラCONTから与えられるコマンドを保持するコマンドレジスタ、17はコマンドレジスタ16に取り込まれたコマンドコードをデコードするコマンドデコーダ、18は当該コマンドに対応した処理を実行すべくメモリ内の各回路に対する制御信号を順次形成して出力するシーケンサである。特に限定されないが、この実施例の多値フラッシュメモリには2つのメモリアレイが設けられ、それぞれに対応してセンスラッチ回路13が設けられている。各センスラッチ回路13はそれぞれのメモリアレイ内のワード線を共通にする1行分のメモリセルのデータを同時に増幅して保持するように構成されており、2つのセンスラッチ回路13,13に保持された読出しデータは共通のYデコーダ回路15によって選択されて出力レジスタ19へ1ビットずつあるいはバイト等の単位で転送される。出力レジスタ19は保持された読出しデータは、バッファ回路22を介して外部のCPU等へ出力される。図4の実施例のセンスラッチ回路13はデータを転送する際にシフト動作を行なうので、シフトレジスタと同様な機能が必要とされるが、図10のようにYデコーダ回路15でデータを選択する方式としかつこのYデコーダ回路15がクロックにより選択ビットをシフトして行くような構成とすることで、センスラッチ回路13にはシフト機能が不要とすることができる。この実施例の多値フラッシュメモリには、上記各回路の他、メモリアレイ12からセンスラッチ13へ読み出されたデータがオール0またはオール1かを判定するオール判定回路20、コントローラCONTから供給されるリセット信号RESやチップ選択信号CE、書き込み制御信号WE、出力制御信号OE、システムクロックSC、コマンド入力かアドレス入力かを示すためのコマンドイネーブル信号CDE等の外部制御信号を取り込むバッファ回路21と、アドレス信号やコマンド信号、データ信号を取り込むバッファ回路22や上記外部制御信号に基づいて内部回路に対する制御信号を形成する内部信号発生回路23、バッファ回路22に取り込まれたアドレスを保持するアドレスレジスタ24、入力データを保持するデータレジスタ25、取り込まれたアドレスをデコードしてメモリアレイ12内のワード線を選択する信号を形成するXアドレスデコーダ26a,26bおよびワードドライバ27、基板電位や書き込み電圧、読み出し電圧、ベリファイ電圧等チップ内部で必要とされる電圧を発生する内部電源発生回路28、メモリの動作状態に応じてこれらの電圧の中から所望の電圧を選択してワードドライバ27等に供給するスイッチング回路29、内部のクロックCLK2等を発生するクロック生成回路30、クロックを計数して書き込みパルス幅等の時間を与えるタイマ回路31、シーケンサ16によるメモリの制御状態を示すステータスレジスタ32、Yアドレスを自動的に更新するYアドレスカウンタ33、不良ビットの位置アドレスを保持する不良アドレスレジスタ34、Yアドレスと不良アドレスとを比較する冗長比較回路35、アドレスが一致したときに選択メモリ列を切り換える救済先アドレスを記憶する救済先アドレスレジスタ36等を備えている。また、この実施例の多値フラッシュメモリは、外部からアクセスが可能か否かメモリの状態を示すレディ/ビジィ信号R/Bを出力するように構成されている。さらに、この実施例の多値フラッシュメモリはディスターブやリテンションによりしきい値のばらつき分布の山図3参照がなまったときにこれを急峻にさせる機能以下、リフレッシュ機能と称するを備えている。このリフレッシュ機能は、書き込みや消去と同様に外部からコマンドが与えられることにより働くようにされており、リフレッシュコマンドがコマンドレジスタ16に取り込まれると、マイクロプログラム制御方式のシーケンサ18が起動され、リフレッシュを行なう構成にされている。このリフレッシュ動作については後で詳細に説明する。上記オール判定回路20の判定結果を示す信号は、シーケンサ18へ供給されるように構成されており、リフレッシュモード時にオール判定回路20が読出しデータのオール0を判定し、判定結果を示す信号がシーケンサ18に供給されると、シーケンサ18はリフレッシュ動作を停止する。また、データ消去時に、上記オール判定回路20が読出しデータのオール1を判定すると、シーケンサ18は消去動作を停止するように構成されている。また、この実施例においては、Xアドレス系のデコーダがアドレス信号をプリデコーダ26aとメインデコーダ26bで2段階にデコードするプリデコード方式を採用しており、例えばプリデコーダ26aでXアドレスの上位3ビットを先ずデコードして、そのプリデコード信号でワードドライバ27を制御して所望のワード線を選択するようにしている。このようなプリデコード方式を採用することにより、メインデコーダ26bを構成する単位デコーダをメモリアレイのワード線ピッチに合わせて配置して集積度を高め、チップサイズを低減できるようになる。なお、上記実施例の多値フラッシュメモリは、図4や図10に示されているように2ビットデータから4値データへの変換とその逆変換を実行する機能回路11,14を同一シリコン基板に備えているが、これらの機能を有する専用のコントローラユニットとして構成する事も可能である。このようにした場合には、多値固有の機能をフラッシュメモリチップに搭載することがないので、チップ面積の増大はなく、また図11に示すように、複数のフラッシュメモリMDFMを一つのコントローラユニットCONTにバスBUSで接続して制御するように構成できるという利点も有している。このコントローラユニットは、上記データ変換逆変換機能の他にアドレス生成機能やコマンド生成機能を備えるように構成される。図15はワード線電圧や基板電位Vsubを発生する内部電源発生回路28と、それらを選択してワードドライブ回路27等に供給するスイッチング回路29を示したもの、図16はワードドライブ回路27の構成例を示したものである。内部電源発生回路28はシーケンサ18から発生された各種動作モードに対応した内部制御信号を受けて必要なワード線電圧を発生する。ワード線電圧を含む内部電源発生回路28の構成及び発生した電圧を受けるスイッチング回路ワード線電圧切替回路29の構成は従来のものと同様であり、ワード線の電圧値の種類が多値用に増加しただけである。すなわち、従来の2値のフラッシュメモリで必要なワード線電圧は、読み出し電圧2.7V/0V、書込み電圧-10V,0V、書込みベリファイ電圧1.5V、消去電圧10V,0V及び消去ベリファイ電圧4.3V,0Vの4種類であるのに対し、本実施例の多値フラッシュメモリで必要とされるワード線電圧は、読み出し電圧3.7V,2.7V,1.7V,0V、書込み電圧-10V,0V、書込みベリファイ電圧3.5V,2.5V,1.5V、消去および消去ベリファイ電圧10V,4.3V,0V及びリフレッシュ電圧-10V,10V,3.7V,3.5V,2.7V,2.5V,1.7V,1.5V,0Vとなる。上記スイッチング回路29は、シーケンサ18から発生された各種動作モードに対応した内部制御信号を受けて、上記内部電源発生回路28で発生された電圧を動作モードに応じて図16のように構成されたワードドライブ回路27の電源端子P1,P2に供給する。図16のワードドライバWDRVは、ワード線プリデコード方式を採用した場合のもので、論理選択回路LOGS1の出力ノードN1に8個の電圧選択回路VOLS1~VOLS8の入力を共通接続し、また論理選択回路LOGS2の出力ノードN2に8個の電圧選択回路VOLS9~VOLS16の入力を共通接続し、プリデコード信号Xp1,Xp1~Xp8,Xp8によって個々の電圧選択回路を選択するようになっている。信号XM,XNおよびプリデコード信号Xp1,Xp1~Xp8,Xp8はアドレスデコーダXDCR26bから供給される。このとき電圧選択回路VOLS1~VOLS16は、それに対応する論理選択回路LOGS1または2が選択レベルの選択信号を出力しても、プリデコード信号にて動作が選択されなければ、その他の論理選択回路にて非選択とされるものと同一の電圧を選択してワード線に供給しなければならない。そのために、分離用MOSFETQ56,Q57をプリデコード信号にてスイッチ制御するようにする。さらに、当該分離用MOSFETQ56,Q57がカットオフ状態にされたとき、ワード線に対して非選択状態の電圧を出力させるために、上記分離用MOSFETQ56,Q57と相補的にスイッチ制御されて出力回路INV2のそれぞれの入力に所定の電圧を供給可能にするプルアップMOSFETQ58とプルダウンMOSFETQ59とが設けられている。図16において、上記信号XMは、8本のワード線を一組とする8個のワード線群の中からいずれの群のワード線を選択するか指示する3ビットの信号とみなされる。プリデコード信号Xp1,Xp1~Xp8,Xp8は各ワード線群に含まれるいずれのワード線を選択するか指示する相補信号とみなされる。本実施例に従えば、選択信号SELはハイレベルが選択レベルとされ、プリデコード信号Xp1,Xp1~Xp8,Xp8のそれぞれは、ハイレベル,ロウレベルが選択レベルとされる。上記ワードドライバWDRVの端子P1に供給される電圧は消去、書き込み、ベリファイ、読み出しに使用される5V,4.3V,3.7V,3.5V,2.7V,2.5V,1.7V,1.5V,0Vのような電圧Vppであり、端子P2に供給される電圧は書き込み、リフレッシュに使用される-10Vのような電圧Vee、回路の接地電位もしくは基準電位としての0Vのような電圧Vssである。上記各論理選択回路LOGS1,LOGS2は、各々XデコーダXDCRの信号を反転するインバータINV1とその出力を伝達もしくは遮断するトランスファゲートTG1と、XデコーダXDCRの信号を伝達もしくは遮断するトランスファゲートTG2とにより構成されている。上記電圧選択回路VOLS1~VOLS16はそれぞれ同一構成にされ、その詳細が代表的に示された電圧選択回路VOLS1のように、端子P3とMOSFETQ52のゲートとの間に設けられたプリデコード信号Xp1によりスイッチ制御されるNチャンネル型プルアップMOSFETQ58と、端子P4とMOSFETQ53のゲートとの間に設けられたプリデコード信号Xp1によりスイッチ制御されるPチャンネル型プルアップMOSFETQ59とを備え、さらに分離用MOSFETQ56をプリデコード信号Xp1によりスイッチ制御し、他方の分離用MOSFETQ57をプリデコード信号Xp1によりスイッチ制御するように構成されている。上記端子P3およびP4には、電圧VccまたはVssが供給される。次に、図16のワードドライバWDRVの作用を説明する。表1には各動作モードにおける端子P1~P4の電圧とワード線電圧が示されている。書き込みモード、消去モード、読み出しモードの各々の設定の仕方については説明を省略する。コマンドにより消去モードが指示されると、端子P1には電圧Vppが、また端子P2にはVss、端子P3およびP4には電圧Vccがそれぞれスイッチング回路29から供給されるとともに、制御信号DEがロウレベルにされる。また、信号XMが全ビットロウレベルにされることにより、ワード線W1~W8のいずれかを選択することが可能となる。これにより、選択レベルハイレベルの選択信号SELが供給されると、インバータINV1およびトランスファゲートTG1を介してノードN1がロウレベルになり、これがそれぞれの電圧選択回路VOLS1~VOLS8の入力に与えられる。消去がされるメモリセルがワード線W1に結合されているメモリセルである場合、プリデコード信号Xp1,Xp1~Xp8,Xp8は、そのうちXp1,Xp1だけがハイレベル,ロウレベルにされる。従って、分離用MOSFETQ56,Q57は電圧選択回路VOLS1だけがオン状態とされ、ノードN1の信号は電圧選択回路VOLS1にだけ取り込まれる。このとき、電圧選択回路VOLS1のプルアップMOSFETQ58およびプルダウンMOSFETQ59は、共にカットオフ状態にされる。その結果、当該電圧選択回路VOLS1のMOSFETQ52,Q53のゲートには上記ノードN1の信号が供給される。これによって、出力回路INV2のMOSFETQ52がオン状態にされて、ワード線W1は端子P1の電圧Vppによって充電され始める。このとき、他方のMOSFETQ53のゲートに供給されるロウレベルは、MOSFETQ57の作用によって当初電圧Vssよりも高いロウレベルにされて、MOSFETQ53は完全にはカットオフされないが、ワード線W1のレベルの上昇に従ってフィードバックMOSFETQ55のコンダクタンスが大きくされることにより、当該MOSFETQ53のゲートが電圧Vssに強制されてMOSFETQ53は完全にカットオフの状態になる。従って、消去モードにおいて、選択メモリセルが結合されているワード線W1はVppまで充電される。選択信号SELが上記のようにハイレベルにされている場合に、ワード線W1のメモリセルQ1が消去非選択のメモリセルであるときには、プリデコード信号Xp1,Xp1はそれぞれロウレベル,ハイレベルにされる。従って、電圧選択回路VOLS1の分離用MOSFETQ56,Q57は共にオフ状態とされ、ノードN1の信号は電圧選択回路VOLS1に取り込まれない。このとき、電圧選択回路VOLS1のプルアップMOSFETQ58およびプルダウンMOSFETQ59は、共にオン状態にされる。その結果、当該電圧選択回路VOLS1のMOSFETQ52,Q53のゲートには端子P3,P4からMOSFETQ58,Q59を介してVcc電圧が供給され、これによって、出力回路INV2のMOSFETQ53がオン状態にされて、ワード線W1は端子P2を介して電圧Vssに向かって放電され始める。このとき、他方のMOSFETQ52のゲートに供給されるハイレベルは、MOSFETQ58のしきい値電圧分だけ電圧Vccよりも低いため、MOSFETQ52は完全にはカットオフされないが、オン状態のMOSFETQ53によってワード線W1のレベルが下がるに従ってフィードバックMOSFETQ54のコンダクタンスが大きくされ、MOSFETQ52のゲートがVppに強制されてMOSFETQ52は完全にカットオフの状態になる。従って、消去モードにおいて、非選択のワード線W1はVssまで放電される。書き込みモードが指示された場合や読み出しモードが指示された場合におけるワードドライバ回路WDRVの動作は、上記書き込みモード時の動作に準じているので詳しい説明は省略するが、スイッチング回路29から端子P1,P2に供給される電圧によって、選択メモリセルにそれぞれ図13や図14に示すような電圧が印加されるようにワード線を駆動する。次に、本発明の多値フラッシュメモリの第2の特徴であるリフレッシュ動作を図17を用いて説明する。一旦データが書き込まれた多値フラッシュメモリは、図171に示されているように、それぞれしきい値のばらつき分布の山がはっきり分かれているが、その後の書込み、読み出し、スタンバイ状態等の動作を繰返し実行していると、図172のように各しきい値のばらつきが増大する。その原因としては、たとえばあるメモリセルに隣接したメモリセルが書き込まれると当該メモリセルも弱い書込みが生じるいわゆるディスターブや、スタンバイ時における自然リークによるリテンションなどがある。この現象は1ビットのみを記憶する通常のフラッシュメモリでも生じ得ることであるが、前記実施例のように、各しきい値の間隔が狭い多値フラッシュメモリにおいては誤動作の原因となるおそれがある。そこで、本実施例においては、しきい値のばらつき分布の山図3参照がなまったときにこれを急峻にさせるリフレッシュ動作を実行するようにしている。以下、リフレッシュ動作の手順を説明する。図18にリフレッシュ動作の手順をフローチャートで示す。外部のCPU等からリフレッシュコマンドが入力されると、シーケンサ18が起動されて、図18のフローチャートに従ったリフレッシュ動作が開始される。リフレッシュ動作が開始されると、先ず、選択されたワード線に接続されたすべてのメモリセルに対して、ワード線より弱い消去パルスを印加するステップS21。この弱い消去パルスの印加により、すべてのメモリセルのしきい値は、図173に示すように、高い側に少しシフトする。特に限定されないが、シフト量は0.2V程度である。ここで、弱い消去パルスとは、加えた結果、例えば10にあるメモリセルのしきい値が、すぐ上の読み出しレベル3.7Vを上回らないような充分に短いパルスを意味する。パルス幅は、シフトさせたい量に応じて実験的に決定する。第2段階では、ワード線電圧を、記憶データ10に対応した読み出しレベル3.7Vに設定して読み出しを行なうステップS22。これにより、各メモリセルのしきい値に応じてデータが読み出され、センスラッチ回路13により増幅、保持されるステップS23。このときに、ワード線電圧よりも高いしきい値を有するメモリセルに対応するセンスラッチのデータは1になり、ワード線電圧よりも低いしきい値を有するメモリセルに対応するセンスラッチのデータは0になる。次に、センスラッチのデータを反転させるステップS24。このデータ反転は、図20に示すような構成のセンスラッチ回路により容易に行なえる後述。次に、上記読み出しステップS22よりも低いベリファイ電圧最初は3.5Vがワード線に設定され、しきい値の判定が実行されるステップS25。これにより、ベリファイ電圧より低いしきい値を有するメモリセル図174符号Aに対応するセンスラッチのデータは、1から0に変わる。これに対して、ベリファイ電圧よりも高いしきい値を有するメモリセル図174符号Bに対応したセンスラッチのデータは1のままである。本実施例ではこれを再書込み対象と判定する。これにより、ステップS21での弱い消去でしきい値が高い側にシフトされたときに読み出しレベル3.7Vに近づき過ぎたメモリセルが特定されたことになる。なお、このとき最も高いしきい値を有する記憶データ11に相当するメモリセル図174符号Cに対応したセンスラッチのデータは、上記反転動作により設定された0のままにされる。このような作用も図20に示すような構成のセンスラッチ回路により自動的に行なえる後述。そこで、次に、書き込み電圧を設定してセンスラッチのデータが1であるメモリセル図174符号Bに対して再書込みを行うステップS27。その後、書込みレベルに対応したベリファイ電圧を設定してベリファイを行なうステップS28,S29。しきい値がベリファイ電圧よりも低くなった時点でラッチデータは1から0に変わる。すべてのラッチデータが0に変わるまで、書き込みとベリファイを繰り返して10データのメモリセルのリフレッシュ処理は完了するステップS30。これによって、10データのメモリセルのしきい値のばらつき分布半値幅が、図175のように小さくなる。以後、01、00のデータを記憶するメモリセルに対しても同様のリフレッシュ処理が実行されるステップS31。さらに、しきい値の分布形状の幅をより狭くするために、ステップS21~S31を繰り返し、所定回数終了した時点でリフレッシュが完了するステップS32。表2には、上記手順に従ってリフレッシュを行なった場合に、図174の符号A,B,Cで示されるようなしきい値を有するメモリセルの読み出しを行なったときのセンスラッチ回路の保持データの変化が順に示されている。図19はリフレッシュ動作を実行するタイミングを示す図である。前述したように、メモリセルのしきい値のばらつきが拡大する原因としては、隣接メモリセルに書込み/読み出し動作が実行されると隣のメモリセルに弱い書込み/消去、読み出し動作が実行されることによるディスターブと、自然リークによるリテンションとがある。ディスターブによるしきい値の変動に対するリフレッシュ動作の実行タイミングとして、当該フラッシュメモリがスタンバイ状態/RESがハイレベルにあり一定回数の書込み/消去、読み出し動作が完了後にリフレッシュ動作を実行する。リセット時にリセット信号/RESが活性化されると直後にリフレッシュを実行する。スタンバイ状態から/RESをロウレベルにすることによりリセット状態になった直後にリフレッシュを実行する。電源をオフする直前に予め/RESをロウレベルにし、それを感知してリフレッシュを実行する。電源をオンし、/RESをハイレベルにした後、リフレッシュを実行する。などが考えられる。一方、リテンションによるしきい値の低下に対する対策としては、電源投入時にダミーサイクルの途中、またはスタンバイ状態で一定周期毎にリフレッシュを実行することが考えられる。これらのリフレッシュタイミングはすべて実行するようにしても良いが、いずれかひとつあるいは幾つかを実行するようにしても良い。なお、上記に説明したリフレッシュ動作は多値フラッシュメモリに限定されるものではなく、フラッシュメモリの電源電圧が今後低電圧化に移行すると、通常のフラッシュメモリでも、しきい値のばらつきの拡大は無視し得なくなるのであって、フラッシュメモリの低電源電圧化対策に有効な機能である。図20には、上記メモリアレイ12およびセンスラッチ回路13の構成例が示されている。メモリアレイ12は、ワード線と直交する方向に配設され選択メモリセルの読出し信号が出力されるビット線BLと平行に配設された共通ドレイン線DLと、共通ソース線SLとの間に、複数例えば一括消去可能な128本のワード線に対応して128個のメモリセルMCが並列に接続されたAND型とされている。共通ドレイン線DLはスイッチMOSFETQ1を介して対応するビット線BLに接続可能にされ、また共通ソース線SLはスイッチMOSFETQ2を介して接地点に接続可能にされている。これらのスイッチMOSFETQ1,Q2のゲート制御信号は、Xアドレス信号とリード/ライト制御信号に基づいて形成され、データ読出し時ベリファイ時を含むに、Vcc3.3Vのような電位にされることで、スイッチMOSFETQ1,Q2はオン状態とされ、オン状態のメモリセルを通してビット線を放電する。一方、データ書込み時には、ビット線の書き込み電圧5Vをメモリセルのドレインに伝えるため、スイッチMOSFETQ1のゲート制御信号は7Vのような電位にされ、Q1がオンされる。このとき共通ソース線SL側のスイッチMOSFETQ2はオフ状態にされる。センスラッチ回路13は、各メモリ列に対応して設けられ左右のメモリアレイのビット線間の電位差を増幅するCMOS差動型センスアンプSAにより構成されている。読み出しに先立って選択側のメモリアレイ図では左側のビット線はプリチャージMOSSW21により1Vのような電位にプリチャージされ、反対側のメモリアレイ内のビット線はプリチャージMOSSW22によって0.5Vのような電位にプリチャージされる。かかるプリチャージ状態でワード線WLが読み出しレベルにされたとき、選択されたメモリセルが高いしきい値を有しているとビット線は1.0Vを維持するが、選択メモリセルが低いしきい値を有していると電流が流れてビット線の電荷が引き抜かれてビット線は0.2Vのような電位になる。この1.0Vまたは0.2Vと反対側のビット線の電位0.5Vとの電位差をセンスアンプSAが検出して増幅することで、読み出しデータがセンスアンプSAに保持される。上記実施例においては、前述したように、書き込みを行なうメモリセルが接続されたビット線に対応したセンスラッチセンスアンプに1をセットしておいてワード線に書き込みパルス-10Vを印加し、その後書き込みレベルに応じたベリファイ電圧1回目は約3.5Vをワード線に設定して、書き込みパルスが印加されたメモリセルの読み出しを行なう。そして、書き込み不足のメモリセルからはビット線に読み出しデータとして1が読み出されるので、読み出されたデータを見て書き込み終了か書き込み不足か判定し、書き込みが終了したビットのセンスラッチセンスアンプのデータを0に反転させるようにしている。つまり書き込み不足のメモリセルに対応したセンスラッチセンスアンプにはデータとして1を残しておき、1の立っているビットに対応する書き込み不足のメモリセルに対して再び書き込みパルスを印加するようにしている。また、リフレッシュ動作においてもセンスラッチに読み出されたデータを反転し、ベリファイを行なって、1の立っているビットに対応するメモリセルに対して書き込みパルスを印加するようにしている。図20のセンスラッチ回路においては、上記のような書き込みの際における書き込み終了のメモリセルに対応したセンスアンプのラッチデータの反転および書き込みパルスを印加すべきメモリセルの絞り込みを容易に行なえるようにするため、センスアンプとメモリアレイとの間に4個のスイッチSW11,SW12,SW13,SW14からなる反転制御回路30が設ける等の工夫がなされている。以下、このセンスラッチ回路の作用について説明する。なお、各ビット線BL上に設けられているスイッチSW21,SW22はビット線プリチャージ用のスイッチであり、これらは上記スイッチSW11~SW14と共にMOSFETにより構成される。データ読み出しに際しては、先ずスイッチSW13をオフさせて図20に示すように、ビット線BLとセンスアンプSAとを切り離した状態で、スイッチSW21,SW22をオンさせて選択側のビット線BLを1.0Vのようなプリチャージレベルに充電する。このとき非選択側のビット線は0.5Vのようなレベルに充電する。また、センスアンプSAはスイッチSW14をオンさせてリセット状態にすると共に、0.5Vのような電位を与えておく。さらに、このときスイッチMOSFETQ1,Q2のゲートにVccのような電圧を与えて、Q1,Q2をオン状態にさせる。それから、メモリアレイ12内のいずれか一つのワード線WLを3.7Vのような選択レベルに設定する。すると、しきい値がワード線選択レベルよりも低いメモリセル例えば図17のセルA,Bはオン状態にされ、当該セルが接続されているビット線BLは、オン状態のメモリセルを通して共通ソース線SLに向かって電流が流れることによって0.2Vのようなレベルにディスチャージされる。一方、しきい値がワード線選択レベルよりも高いメモリセル例えば図17のセルCはオフ状態にされ、当該セルが接続されているビット線BLは1.0Vのプリチャージレベルを維持する。次に、スイッチSW14をオフさせてセンスアンプSAのリセット状態を解除して活性化させると共に、ビット線BL上のスイッチSW13をオンさせてビット線BLとセンスアンプSAとを接続する。そして、センスアンプSAのP-MOS側に電源電圧Vccを、またN-MOS側に接地電位0Vを供給する。それからセンスアンプSAがビット線BL,BLの電位差を充分増幅した後、ビット線BL上のスイッチSW13をオフする。これによって、センスアンプSAは選択側と非選択側のビット線のレベル差を増幅してデータを保持した状態となる。センスアンプSAのラッチデータを反転させる場合には、スイッチSW13をオフさせて、図21に示すように、ビット線BLとセンスアンプSAとを切り離した状態で、スイッチSW21,SW22をオンさせて選択側および非選択側のビット線BLをVcc-Vtn例えば3.3V-0.6V=2.7Vのようなレベルにプリチャージする。それから、上記スイッチSW21,SW22をオフしかつスイッチSW11をオンさせる。すると、センスアンプSAに保持されているデータに応じて、データが1ならスイッチSW12がオンされて、当該ビット線BLはビット線反転レベル0Vにディスチャージされる。一方、センスアンプSAに保持されているデータが0ならスイッチSW12がオフ状態されるため、当該ビット線BLはVccレベルを維持する。つまり、センスアンプSAの保持データの反転レベルが対応するビット線BLにそれぞれ出現する。ここで、スイッチSW14を一旦オンさせてセンスアンプSAをリセットさせた後、スイッチSW14をオフさせビット線BL上のスイッチSW13をオンさせてビット線BLとセンスアンプSAとを接続する。この間、センスアンプSAのP-MOS側およびN-MOS側の電源電圧は0.5Vに設定しておく。それから、センスアンプSAのP-MOS側に電源電圧Vccを、またN-MOS側に接地電位0Vを供給するとともに、ビット線BL上のスイッチSW13をオフする。これによって、センスアンプSAは、図22に示すように、前記反転データ保持状態のビット線のレベルに応じたデータを保持した状態となる。すなわち、図17のセルAおよびBに対応したセンスアンプはハイレベル1を保持した状態に、またセルCに対応したセンスアンプはロウレベル0を保持した状態となる。いわゆる書き込みベリファイと同じ動作である。従って、ビット線プリチャージは、センスラッチがHの所のみ行なわなければならない。そこで、スイッチSW11をオンし、ビット線プリチャージ電圧1を1Vにすることで、ビット線BL0,BL1のみ1VとなるBL2は前もって0Vにリセットしておく。次に、ビット線BL上のスイッチSW13をオフしたままスイッチSW21,SW22をオンさせて、選択側のビット線BLを1.0Vのようなプリチャージレベルに、また非選択側のビット線は0.5Vのようなレベルに充電する。その後、選択ワード線に先の読み出しレベル3.7Vよりも若干低い3.5Vのようなベリファイ電圧を印加する。すると、しきい値がワード線選択レベルよりも低いメモリセル例えば図17のセルAはオン状態にされ、当該セルが接続されているビット線BLは0.2Vのようなレベルにディスチャージされる。一方、しきい値がワード線選択レベルよりも高いメモリセル例えば図17のセルBはオフ状態にされ、当該セルが接続されているビット線BLはプリチャージレベル1Vを維持する。また、このとき最も高いしきい値を有するデータ11に相当するメモリセル図17のセルCが接続されたビット線はもともとロウレベルすなわち0を保持した状態にあるため、ワード線が選択レベルにされたときにオフ状態であってもロウレベルである図23。従って、この状態でセンスラッチをリセットした後、ビット線BL上のスイッチSW13をオンさせると、データ11に相当するメモリセル図17のセルCが接続されたビット線に対応するセンスアンプおよびワード線選択レベルよりも低いしきい値のメモリセル図17のセルAが接続されたビット線に対応するセンスアンプはロウレベル0を保持し、ワード線選択レベルよりも高いしきい値のメモリセル図17のセルBが接続されたビット線に対応するセンスアンプはハイレベル1を保持することとなる。本実施例ではこのセンスアンプの保持データを使用して、書き込み動作に移行して選択ワード線に書き込みパルス-10Vを印加することでセンスアンプの保持データが1に対応するメモリセルのしきい値を下げるようにしている。書き込みパルス印加後、再びワード線を選択レベルに設定して読み出しを行なうと、しきい値がワード線ベリファイレベルよりも低くなったメモリセルのビット線のレベルはロウレベルすなわち0に変わり、書き込み不足のメモリセルが接続されたビット線はハイレベル1を維持する。従って、これをセンスアンプでラッチして再び書き込みを行なうことでセンスラッチの保持データが1に対応するメモリセルのみしきい値を下げ、しきい値の分布形状を急峻にすることができる。センスアンプSAの保持データは、Yデコーダ15の出力信号によってオン、オフされるいわゆるカラムスイッチおよび共通I/O線を経て前述のオール判定回路20に供給され、オール0になった否か判定される。そして、オール0になるとデータ10のメモリセルに対するリフレッシュを終了し、データ01,00のメモリセルに対するリフレッシュを行う。なお、前述した書き込みモードにおける書き込み不足のメモリセルに対する再書き込み動作は、リフレッシュ動作の際のセンスラッチ回路13による上記書き込み動作と同一である。以上説明したように、上記実施例においては、データ書き込み時には複数ビットのデータをデータ変換論理回路によりそのビットの組合せに応じたデータ多値データに変換して、変換されたデータをメモリアレイのビット線に接続されたラッチ回路に順次転送し、該ラッチ回路に保持されたデータに応じて書き込みパルスを生成して選択状態の記憶素子に印加することで、多値データに対応したしきい値を有する状態にさせるとともに、データ読み出し時には読み出し電圧をそれぞれのしきい値の中間に変化させて記憶素子の状態を読み出して多値データを記憶するレジスタに転送させて保持させ、該レジスタに記憶された多値データに基づいて逆データ変換論理回路により元のデータを復元させるようにしたので、メモリアレイの周辺回路の規模を比較的小さく押さえることができるとともに、書込み動作においては、ワード線のベリファイ電圧値を消去のためのワード線電圧に近い側から遠ざかる方向に所定の値だけ順次変更することにより、書込みパルス総数すなわち書込み時間を、ベリファイ電圧をランダムに設定する多値フラッシュメモリの方式と比べて小さくすることができ、短時間での書込み動作が実現できるという効果がある。また、メモリアレイ内の記憶素子に対して弱い消去動作を実行した後、ワード線を読み出しレベルよりも低くかつベリファイレベルよりも高いしきい値を有する記憶素子を検出して該記憶素子のしきい値がベリファイ電圧よりも低い値になるように書込みを実行することで、各入力データに対応して書き込まれた記憶素子のしきい値電圧のばらつき分布形状の広がりを狭くするようにしたので、ディスターブやリテンション等により広がった記憶素子のしきい値電圧のばらつき分布形状を書込み完了直後とほぼ同等の急峻な形状に戻すことができるという効果がある。以上本発明者によってなされた発明を実施例に基づき具体的に説明したが、本発明は上記実施例に限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることはいうまでもない。例えば、上記実施例では、一つのメモリセルのしきい値を4段階に設定して4値のデータを記憶させるようにしているが、しきい値は3段階あるいは5段階以上に設定することも可能である。また、実施例では、リフレッシュ時の読み出しデータの反転、書き込み対象のメモリセルの絞り込み等をセンスラッチ回路のみを用いて行なえるように構成したが、読み出しデータを保持するレジスタやその内容を反転する等の論理演算を行なって書き込み対象のメモリセルの絞り込みを行なう論理回路を設けるようにしても良い。さらに、実施例では2ビットデータを4値データに変換する方式およびその逆変換として図12に示すような3種類の演算を行なっているが、論理演算は図1に示すものに限定されず、結果として1の立っているビットの個数の異なるデータが得られるものであればよい。また、データ逆変換のための演算も図2のものに限定されず、元の2ビットデータを復元できるものであればどのような演算であっても良いし演算の種類も1つでなく2以上であっても良い。各メモリセルに対する書き込み方式も実施例のように、一旦消去を行なってしきい値を高くした後に書き込みパルスでしきい値を下げる方式に限定されず、書き込みパルスでしきい値を高くする方式等であっても良い。また、実施例では、データ1を保持するセンスラッチに対応するメモリセルに書き込みを行なってしきい値を変化させているが、データ0を保持するセンスラッチに対応するメモリセルに書き込みを行なってしきい値を変化させるようにしても良い。"