(57)【特許請求の範囲】
【請求項１】
一対の入出力端子を有するセンスラッチ回路と、センスラッチ回路の夫々の入出力端子に対応して設けられたビット線と、ビット線に接続され電気的に消去及び書込み可能な複数個の不揮発性メモリセルと、ビット線に接続される複数個のデータラッチ回路と、前記不揮発性メモリセルにプログラムされている閾値電圧状態に応じて当該不揮発性メモリセルからセンスラッチ回路を介して読み出した情報を４値以上の多値情報として複数個のデータラッチ回路にラッチさせ、また、複数個のデータラッチ回路にラッチされた多値情報に基づいて不揮発性メモリセルに書込みの閾値電圧状態をプログラムする制御手段とを含み、
前記制御手段は、多値情報としての追加書き込みデータをデータラッチ回路に入力すると、入力した追加書き込みデータと当該不揮発性メモリセルから読み出した多値情報とに基づいて、複数の書き込みの閾値電圧状態のうちの任意の１状態を有する不揮発性メモリセルには同じ書き込みの閾値電圧状態を、また、消去の閾値電圧状態を有する不揮発性メモリセルには追加書込みデータで指示される複数の書き込みの閾値電圧状態のうちの任意の１状態を、プログラムするための多値情報を論理合成処理し、論理合成処理によって得られた多値情報をデータラッチ回路にラッチさせ、ラッチされた多値情報に従って上記ビット線に書き込み阻止電圧を印加するか否かの制御を行い不揮発性メモリセルの閾値電圧状態をプログラムするものである半導体装置。
【請求項２】
前記制御手段は、前記論理合成処理によって得られた多値情報を、書き込み異常に対して再利用可能に前記データラッチ回路に保持するものである請求項１に記載の半導体装置。
【請求項３】
前記制御手段は、前記論理合成処理によって得られた多値情報をデータラッチ回路にラッチした後、データラッチ回路にラッチされた論理合成処理結果の多値情報に従って不揮発性メモリセルの閾値電圧状態をプログラムする前に、当該閾値電圧状態をプログラムする対象とされる不揮発性メモリセルに対して予め消去動作を行なうものである請求項２に記載の半導体装置。
【請求項４】
不揮発性メモリセルに書込み電圧を印加するか否かはセンスラッチ回路にラッチされるデータの論理値によって決定され、前記制御手段は、多値情報に応ずる書込みの閾値電圧状態を不揮発性メモリセルに形成するとき、前記センスラッチ回路に、書込み電圧印加を指示する論理値のデータをセットするものである請求項１乃至３の何れか1項に記載の半導体装置。
【請求項５】
電気的に消去及び書込み可能な複数個の不揮発性メモリセルが接続されるビット線と、ビット線に接続されるセンスラッチ回路及びデータラッチ回路と、前記不揮発性メモリセルからセンスラッチ回路を介して読み出した情報をデータラッチ回路にラッチさせ、また、データラッチ回路にラッチされたデータに基づいて書き込み単位であるセクタ単位で不揮発性メモリセルに対する書込み動作を制御する制御手段とを含み、
上記不揮発性メモリセルは消去状態又は複数の書き込み状態のいずれか１の状態を持つことで情報の記憶を行い、
前記制御手段は、書込対象となる上記セクタに含まれる不揮発性メモリセルには消去状態にある不揮発性メモリセルと複数の書き込み状態の任意の１の状態にある不揮発性メモリセルが存在し、書き込み状態にある不揮発性メモリセルはその状態を維持し、消去状態にある不揮発性メモリセルを上記複数の書き込み状態の任意の１の状態に遷移させる書き込み動作において、データラッチ回路にラッチされたデータを用いて書き込み対象セクタ内の書き込み選択とされる不揮発性メモリセルに書き込み電圧を印加すると共に、書き込み電圧印加による閾値電圧状態が目的閾値電圧状態に到達したか否かの判定を書込み電圧の印加処理毎に毎回前記データラッチ回路にラッチされているデータを用いて判定するものである半導体装置。
【請求項６】
前記制御手段は、書込み動作の後に続けて、当該書込み動作によってプログラムされた閾値電圧が目的閾値電圧に対して過書込み状態であるか否かを検出するエラティック・ディスターブ検出を行なうものである請求項５に記載の半導体装置。
【請求項７】
前記制御手段は、前記不揮発性メモリセルにプログラムされている閾値電圧状態に応じて当該不揮発性メモリセルからセンスラッチ回路を介して読み出した情報を４値以上の多値情報として複数個のデータラッチ回路にラッチさせ、また、複数個のデータラッチ回路にラッチされた多値情報に基づいて書き込み単位であるセクタ単位で不揮発性メモリセルに書込みの閾値電圧状態をプログラムする多値情報記憶機能に対応されるとき、前記エラティック・ディスターブ検出において、過書込み状態としてフェイルする確率の高いワードディスターブ検出を先に行なうものである請求項５に記載の半導体装置。
【請求項８】
請求項１乃至７の何れか1項に記載の半導体装置と、当該半導体装置のアクセス制御を行なうアクセス制御手段とを含んで成るデータ処理システム。
【請求項９】
前記アクセス制御手段を外部とインタフェースさせるインタフェース手段を更に含んで、不揮発性メモリカードを構成する請求項８に記載のデータ処理システム。
【請求項１０】
１本のワード線と、
上記ワード線に結合された複数の不揮発性メモリセルと、
上記複数の不揮発性メモリセルに対応して設けられ、一対の入出力ノードを各々有する複数の第１ラッチ回路と、
上記複数の第１ラッチ回路の各々の一対の入出力ノードの一方にそれぞれ結合され、かつ、上記複数の不揮発性メモリセルが結合される複数の第１ビット線と、
上記複数の第１ラッチ回路の各々の一対の入出力ノードの他方にそれぞれ結合された複数の第２ビット線と、
上記複数の第１ビット線に結合された第２ラッチ回路と、
上記複数の第２ビット線に結合された第３ラッチ回路と、
上記第１乃至第２ビット線にそれぞれ結合された第１乃至第２論理合成回路と、
上記第１乃至第３ラッチ回路及び第１乃至第２論理合成回路に結合され、上記第１乃至第３ラッチ回路及び第１乃至第２論理合成回路の動作を制御する制御回路を含み、
上記複数の不揮発性メモリセルは、第１閾値電圧を有する第１メモリセル群と、上記第１閾値と異なる第２閾値電圧又は第３閾値電圧のいずれかの閾値電圧を有する第２メモリセル群とを含み、
上記制御回路は、上記第１メモリセル群内の第１メモリセルの閾値電圧を上記第１閾値電圧から上記第２閾値電圧又は第３閾値電圧のいずれかへ変更するに際し、
（１）上記第１メモリセルの閾値電圧の変化を規定するデータを上記第１メモリセルの結合された１乃至複数のビット線に対応する第２及び第３ラッチ回路へ格納するように制御し、
（２）上記第２メモリセル群の各メモリセルの閾値電圧に対応するデータを各メモリセルの結合された１乃至複数のビット線に結合された上記第１ラッチ回路へ読み出すと共に、上記読み出されたデータを上記第２メモリセル群内のメモリセルの結合された上記第１乃至第２論理合成回路によって論理合成して上記第２メモリセル群内のメモリセルの結合された１乃至複数のビット線に対応する第２乃至第３ラッチ回路に格納するように制御し、
（３）上記第２メモリセル群の各メモリセルの閾値電圧を第１閾値電圧へ変更し、
（４）その後、上記第２乃至第３ラッチ回路に格納された上記データに従って、上記第１乃至第２論理合成回路及び上記第１乃至第３ラッチ回路を制御して、上記第１メモリセルの閾値電圧を上記第１閾値電圧から第２閾値電圧又は第３閾値電圧のいずれかへ変更させると共に、上記第２メモリセル群内のメモリセルの閾値電圧を第２閾値電圧又は第３閾値電圧のいずれかの元の閾値電圧へ変更する、
ものである半導体装置。
【請求項１１】
上記第２閾値電圧は、複数の値の中から選ばれた１つである請求項１０に記載の半導体装置。
【請求項１２】
上記第１閾値電圧は、消去状態を規定する閾値電圧とされ、上記第２閾値電圧は書き込み状態を規定する閾値電圧であり、
上記第２閾値電圧は、複数の値の中から選ばれた１つである請求項１０に記載の半導体装置。
【請求項１３】
上記第２閾値電圧は、３値の中から択一的に選択される電圧である請求項１２に記載の半導体装置。
【請求項１４】
第１閾値電圧を有する第１メモリセル群と、上記第１閾値と異なる第２閾値電圧又は第３閾値電圧のいずれかの閾値電圧を有する第２メモリセル群とを含む複数の不揮発性メモリセルの閾値変更方法であって、
上記第１メモリセル群内の第１メモリセルの閾値電圧の変化を規定するデータを上記第１メモリセルの結合された１乃至複数のビット線に対応する第１及び第２ラッチ回路へ格納する第１格納工程と、
上記第２メモリセル群の各メモリセルの閾値電圧に対応するデータを各メモリセルの結合された１乃至複数のビット線に結合された第３ラッチ回路へ読み出す工程と、
上記読み出されたデータを論理合成回路によって論理合成し、上記第２メモリセル群内のメモリセルの結合された１乃至複数のビット線に対応する第１乃至第２ラッチ回路に格納する第２格納工程と、
上記第２メモリセル群の各メモリセルの閾値電圧を第１閾値電圧へ変更する工程と、
上記第１乃至第２ラッチ回路に格納された上記データに従って、上記論理合成回路及び上記第１乃至第３ラッチ回路を制御して、上記第１メモリセルの閾値電圧を上記第１閾値電圧から第２閾値電圧又は第３閾値電圧のいずれかへ変更させると共に、上記第２メモリセル群内のメモリセルの閾値電圧を第２閾値電圧又は第３閾値電圧のいずれかの元の閾値電圧へ変更する工程と、
を含む不揮発性メモリセルの閾値変更方法。
【請求項１５】
上記第１格納工程は、さらに、上記第１閾値電圧を規定するデータを、上記第２メモリセル群内のメモリセルの結合された１乃至複数のビット線に対応する第１及び第２ラッチ回路へ格納する工程を含む請求項１４に記載の不揮発性メモリセルの閾値変更方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、電気的に消去及び書込み可能な不揮発性メモリセルを有する半導体装置、更には、1個のメモリセルに4値以上の多値情報に応ずる閾値電圧をプログラム可能なフラッシュメモリなどの不揮発性半導体記憶装置及び不揮発性メモリセルの閾値変更方法に関し、例えば、当該不揮発性半導体記憶装置を用いるファイルメモリシステムなどのデータ処理システムに適用して有効な技術に関するものである。
【０００２】
【従来の技術】
浮遊ゲートに対する電子の注入や電子の引き抜きによって情報を記憶させることができる不揮発性半導体記憶装置、例えばフラッシュメモリが従来から提供されている。フラッシュメモリはフローティングゲート（浮遊ゲート）、コントロールゲート、ソース及びドレインを持つメモリセルトランジスタを有する。このメモリセルトランジスタは、前記フローティングゲートに電子が注入されると閾値電圧が上昇し、また、前記フローティングゲートから電子を引き抜くと閾値電圧が低下する。前記メモリセルトランジスタは、データ読み出しのためのワード線電圧（コントロールゲート印加電圧）に対する閾値電圧の高低に応じた情報を記憶することになる。特に制限されないが、本明細書においてメモリセルトランジスタの閾値電圧が低い状態を消去状態、高い状態を書き込み状態と称する。
【０００３】
このようなフラッシュメモリとして、1個のメモリセトランジスタに４値以上の情報を記憶するものがある。このような多値メモリについて記載された文献の例として日経マイクロデバイス（1994年11月号）第48頁及び第49頁がある。さらに、特開平9−297996号公報がある。
【０００４】
【発明が解決しようとする課題】
多値メモリにおいて、例えば、消去状態と、消去状態に対して夫々閾値電圧が相違される第1乃至第3の書込み状態との中から一つの状態を選択できるようにすれば、1個のメモリセルトランジスタに4値の情報を格納することができる。書込み動作の前に消去動作が行なわれるとすれば、第1乃至第3の書き込み状態の全てを非選択とするか、或いは何れの書き込み状態を選択するかを決定することによって、4値の情報記憶を行なうことができる。そのための書き込み動作においては、前記第1乃至第3の書き込み状態を個々に得るための書き込み動作を選択するか否かを決定するための書き込み制御情報が必要になる。そのような書き込み制御情報を保持するために、夫々ビット線に設けられたセンスラッチ回路及びデータラッチ回路を用いることができる。
【０００５】
センスランチ回路は例えばスタティックラッチから成り、そのセンスラッチ回路の一対の入出力端子に夫々ビット線の一端が接続され、夫々のビット線に前記メモリセルトランジスタのドレインが接続される。更に各ビット線の他端にデータラッチ回路が接続される。前記センスラッチ回路は、前記メモリセルトランジスタのコントロールゲートに読み出し電圧又はベリファイ電圧を印加したとき、そのソース・ドレイン間に電流が流れたり流れなかったりする状態をセンスする。このとき、センスラッチ回路の一方の動作非選択側のビット線はリファレンスレベルにプリチャージされている。また、コントロールゲートとドレインとの間に高電位差を形成して書込みを行う場合、メモリセル毎にドレイン電圧を高くしたり低くしたりすることにより、メモリセルに対する書込み選択と書込み非選択とを区別することができる。この場合に、センスラッチ回路は書込み選択、非選択に応じたデータをラッチすることになる。このラッチデータが前記書き込み制御情報である。
【０００６】
そのような書き込み制御情報は、外部から供給される書き込みデータの2ビット毎にデータ変換回路を介して生成され、書き込み選択されるビット線のセンスラッチ回路と当該センスラッチ回路を共有するビット線対の各データラッチ回路にラッチされる。ワード線単位で書き込み動作が行なわれる場合、当該ワード線を共有する全てのビット線に関し前記センスラッチ回路及びデータラッチ回路に書き込み制御情報が予めラッチされる。
【０００７】
書き込み動作では、先ず、センスラッチ回路にラッチされた書き込み制御情報に従って第1書き込み状態への有無が決定され、次に、一方のデータラッチ回路からセンスラッチ回路に内部転送された書き込み制御情報に従って第２書き込み状態への有無が決定され、更に、他方のデータラッチ回路からセンスラッチ回路に内部転送された書き込み制御情報に従って第３書き込み状態への有無が決定される。このようにして、2ビットのデータで特定される4値の情報を1個のメモリセルに格納することができる。上記第1乃至第3書き込み状態への書き込み動作では夫々の書き込み状態に割り当てられている閾値電圧に到達したかを調べるベリファイ動作が行なわれる。
【０００８】
このとき、メモリセルの中には、第1乃至第3の各書き込み状態に対して過書き込み状態にされるものがあり、過書込み状態にされると、前後の書き込み状態における閾値電圧を区別することができなくなり、例えば、第１書き込み状態とされるべきメモリセルの閾値電圧が第2書き込み状態の閾値電圧と区別できなくなるほど高くされる場合がある。そのような場合には、書き込み動作を最初からやり直すために、書き込み対象とされたメモリセルに対して消去動作を行なった後、前記書き込み動作が再度行なわれる。
【０００９】
しかしながら、前記第1乃至第3書き込み状態への書き込み動作を一旦行なうと、最初にセンスラッチ回路にラッチされた書き込み制御情報はデータラッチ回路から内部転送された別の書き込み制御情報によって上書きされて消失されてしまっている。このため、過書き込みに起因する再書き込み動作を行なうには、再度外部から同じ書き込みデータを受け取らなければならない。そのためには、フラッシュメモリをアクセス制御する制御回路は、フラッシュメモリに対する書き込み動作の後、しばらくの間、書き込みデータをワークメモリなどに保持させておかなければならず、フラッシュメモリをアクセス制御するための負荷も大きくなり、フラッシュメモリアクセス若しくはデータ処理効率を低下させる原因になることが本発明者によって明らかにされた。
【００１０】
また、上記事情は追加書込みの場合も同様である。例えば、フラッシュメモリは、ハードディスク装置等の磁気ディスク記憶装置によるファイルシステムと互換のファイルメモリシステム等に利用される。このとき、フラッシュメモリの記憶領域の一部はユーザ領域とは別の管理領域に割り当てられる。ワード線単位で書き込み・消去可能なフラッシュメモリにおいて、ワード線1本分のメモリセル（単にセクタと称する）はユーザ領域及び管理領域に割当てられ、その管理領域には、対応セクタのユーザ領域の有効性を示す情報や書換え回数の情報が記憶される。このような記憶情報はその性質上、セクタ内で、ユーザデータの書換えとは別に行なわなければならない場合がある。このような要求に対処できる書込み動作態様として追加書込みがある。
【００１１】
追加書込動作では、書込み選択とされるメモリセルに追加書込みデータが与えられることになるが、書込み動作はセクタ単位で行なわれるため、書込み非選択とされるメモリセルのデータを予め退避させ、退避したデータと追加書込みデータとを併せて書込み動作を行なわなければならない。
【００１２】
しかしながら、この場合にも、過書込み状態などを生ずれば、書き込み動作を最初からやり直さなければならず、この時、再書込みデータを改めて外部から貰うのであれば、上記書込み動作と同様、フラッシュメモリをアクセス制御する制御回路は、フラッシュメモリに対する追加書き込み動作の後、しばらくの間、追加書き込みデータをワークメモリなどに保持させておかなければならず、フラッシュメモリをアクセス制御するための負担も大きくなり、フラッシュメモリアクセス若しくはデータ処理効率を低下させる原因になる。
【００１３】
また、本発明者は、フラッシュメモリの書込みベリファイ動作について検討した。書込み動作では書込み高電圧の印加とベリファイを繰り返しながら少しずつ閾値電圧を変化させていく。このような動作の過程で、メモリセルの閾値電圧状態が目標値に到達したことを検出すると、当該メモリセルが接続するビット線のセンスラッチに書き込み電圧阻止情報をラッチさせ、それ以降、一旦書込み閾値電圧状態になったことが判定されたメモリセルには２度と書き込み電圧が印加されない。しかしながら、書込み動作の初期の段階ではほとんどのメモリセルが所要の書き込みの閾値電圧に到達していないため書き込みベリファイ時、メモリセルのソースに流れる電流が大きく、見掛け上閾値が高くなる。従って、書込み動作の初期の段階で書込みベリファイ動作がパスしたメモリセルの中には、所要の書込みの閾値電圧状態に到達していないものが存在する虞がある。このようなとき、一旦書込み閾値電圧状態になったことが判定されたメモリセルには２度と書き込み電圧を印加できない構成では不都合である。
【００１４】
更に本発明者は、消去動作についても検討した。これによれば、消去動作の後の書込み動作の効率化、若しくは書き込まれたデータの信頼性を考慮すれば、消去状態のメモリセルについてもその閾値電圧の分布を極力均一化することの重要性が見出された。
【００１５】
本発明の目的は、外部から供給された追加書込みデータ若しくは退避のためにメモリセルから読み出されたデータが追加書込み動作毎に失われないようにできる半導体装置を提供することにある。
【００１６】
本発明の別の目的は、追加書込み動作を再度行なう場合に追加書込みデータを再び外部から受け取ることを要しない半導体装置を提供することにある。
【００１７】
本発明の更に別の目的は、書込みベリファイ動作で一旦所期の閾値電圧にされたと判定されても再度ベリファイ動作の対象とすることで、書込みベリファイ動作の信頼性を向上させることができる半導体装置を提供することにある。
【００１８】
本発明の他の目的は、消去状態のメモリセルの閾値電圧の分布を均一化できる半導体装置を提供することにある。
【００１９】
本発明のその他の目的は、不揮発性メモリセルの閾値変更方法を提供することにある。
【００２０】
本発明の前記並びにその他の目的と新規な特徴は本明細書の記述及び添付図面から明らかになるであろう。
【００２１】
【課題を解決するための手段】
本願において開示される発明のうち代表的なものの概要を簡単に説明すれば下記の通りである。
【００２２】
〔１〕第１の観点による本発明は、追加書き込みデータの入力（ＷＳ３）、メモリセルから読み出したデータと追加書き込みデータとの論理合成処理（ＷＳ４）、消し戻し（ＷＳ５）、及び書き込み（ＴＳ１〜ＴＳ４）、を経て追加書き込みを行なう半導体装置（１）及びその閾値変更方法を提供する。この半導体装置は、メモリセルの情報記憶が２値又は多値の何れであってもよい。
【００２３】
更に詳しくは、半導体装置は、電気的に消去及び書込み可能な複数個の不揮発性メモリセル（ＭＣ）が接続されるビット線（Ｇ−ＢＬＲ，Ｇ−ＢＬＬ）と、ビット線に接続されるセンスラッチ回路（ＳＬ）及びデータラッチ回路（ＤＬＲ，ＤＬＬ）と、前記不揮発性メモリセルからセンスラッチ回路を介して読み出した情報をデータラッチ回路にラッチさせ、また、データラッチ回路にラッチされたデータに基づいて不揮発性メモリセルに対する書込み動作を制御する制御手段（１８）とを含む。前記制御手段は、追加書き込みデータをデータラッチ回路に入力し、入力した追加書き込みデータとメモリセルから読み出したデータとに基づいて、書き込み状態の不揮発性メモリセルには同じ書き込み状態を、また、消去状態の不揮発性メモリセルには追加書込みデータで指示される書き込み状態を、プログラムするためのデータを論理合成処理し、論理合成処理によって得られたデータを前記データラッチ回路にラッチさせ、ラッチされたデータに従って不揮発性メモリセルに書き込みを行なう。これにより、論理合成処理したデータをデータラッチ回路にラッチした状態で上記追加書込みを行なうことができる。詳しくは、論理合成処理したデータをデータラッチ回路にラッチし、ラッチしたデータが例えば多値のどの閾値電圧に対応するかを複数段階の書込み動作毎に判定してその判定結果である書込み制御情報をセンスラッチ回路にラッチさせ、センスラッチ回路にラッチされた書込み制御情報に従って、多値の閾値電圧をメモリセルに設定するための書込み動作を段階的に行なう。
【００２４】
したがって、追加書き込み動作が終了しても、データラッチ回路には、論理合成処理されたデータが残る。書込み動作の完了まで論理合成処理の結果データをデータラッチ回路に保持すれば、そのラッチデータを、書き込み異常に対して再利用可能にでき、追加書込み動作を再度行なう場合に書込みデータを再び外部から受け取ることを要しない。したがって、半導体装置をアクセス制御する制御回路は、半導体装置に対する書き込み動作の後、しばらくの間、書き込みデータをワークメモリなどに保持しておかなくてもよく、半導体装置のメモリアクセス若しくはメモリアクセスを伴うデータ処理効率を向上させることができる。
【００２５】
前記論理合成処理によって得られたデータをデータラッチ回路にラッチした後、データラッチ回路にラッチされた論理合成処理結果のデータに従って不揮発性メモリセルに書き込みを行なう前に、当該書込み動作の対象とされる不揮発性メモリセルに対して予め消去動作（消し戻し、弱い消去）を行なうことができる。これにより、追加書込みであっても、追加書込み直前のメモリセルの状態は概ね消去状態に揃えられるから、書換え耐性の範囲で追加書き込みの回数制限を撤廃でき、追加書込みされたデータの信頼性を向上させることができる。
【００２６】
上記手段を４値以上の多値の情報記憶に特化させた具体的な内容の半導体装置は、一対の入出力端子を有するセンスラッチ回路と、センスラッチ回路の夫々の入出力端子に対応して設けられたビット線と、ビット線に接続され電気的に消去及び書込み可能な複数個の不揮発性メモリセルと、ビット線に接続される複数個のデータラッチ回路と、前記不揮発性メモリセルにプログラムされている閾値電圧状態に応じて当該不揮発性メモリセルからセンスラッチ回路を介して読み出した情報を４値以上の多値情報として複数個のデータラッチ回路にラッチさせ、また、複数個のデータラッチ回路にラッチされた多値情報に基づいて不揮発性メモリセルに書込みの閾値電圧状態をプログラムする制御手段とを含む。前記制御手段は、多値情報としての追加書き込みデータをデータラッチ回路に入力すると、入力した追加書き込みデータと当該不揮発性メモリセルから読み出した多値情報とに基づいて、書き込みの閾値電圧状態を有する不揮発性メモリセルには同じ書き込みの閾値電圧状態を、また、消去の閾値電圧状態を有する不揮発性メモリセルには追加書込みデータで指示される書き込みの閾値電圧状態を、プログラムするための多値情報を論理合成処理し、論理合成処理によって得られた多値情報をデータラッチ回路にラッチさせ、ラッチされた多値情報に従って不揮発性メモリセルの閾値電圧状態をプログラムする。
【００２７】
〔２〕第２の観点による本発明は、多値であっても２値であっても、書込みデータを原始的にラッチするデータラッチ回路（ＤＬＲ，ＤＬＬ）のラッチデータを毎回用いて書き込みベリファイ動作を行なう。すなわち、半導体装置は、電気的に消去及び書込み可能な複数個の不揮発性メモリセルが接続されるビット線と、ビット線に接続されるセンスラッチ回路及びデータラッチ回路と、前記不揮発性メモリセルからセンスラッチ回路を介して読み出した情報をデータラッチ回路にラッチさせ、また、データラッチ回路にラッチされたデータに基づいて書き込み単位であるセクタ単位で不揮発性メモリセルに対する書込み動作を制御する制御手段（１８）とを含む。前記制御手段は、書き込み動作において、データラッチ回路にラッチされたデータを用いて書き込み対象セクタ内の書き込み選択とされる不揮発性メモリセルに書き込み電圧を印加する（ＷＳ１１）と共に、書き込み電圧印加による閾値電圧状態が目的閾値電圧状態に到達したか否かの判定を書込み電圧の印加処理毎に毎回前記データラッチ回路にラッチされているデータを用いて判定する（ＷＳ１２，ＷＳ１３）。
【００２８】
この手段によれば、データラッチ回路に保持されているデータを毎回用いて書き込みベリファイ動作を行なうから、書込みの初期の段階などで書き込みベリファイ動作によって所期の閾値電圧に達したことが誤って判定されても、その不良を確認して再書込み可能になる。
【００２９】
書き込み後にエラティック・ディスターブ検出を実行することにより、書き込みによる閾値電圧分布の異常を検出することができる。
【００３０】
また、不揮発性メモリセルに多値で情報記憶を行なう場合、前記エラティック・ディスターブ検出において、フェイルする確率の高いワードディスターブ検出を先に行なうことができる。これにより、フェイルする場合にフェイルの状態を検出するまでの処理時間を短縮できる。
【００３１】
〔３〕第３の観点による本発明は、多値であっても２値であっても、消去後、デプリート防止のために過消去状態のメモリセルに対して書き戻し（閾値電圧が一定電圧以下のメモリセルを選択的に書き込む）を行なって、消去状態のメモリセルの閾値電圧を一定電圧以上に揃える。さらに、前記デプリート防止のための書き戻しを行なった後、ディスターブ検出を行なって閾値電圧の異常を検出する。これにより、消去状態のメモリセルの閾値電圧分布を均一化できる。
【００３２】
また、消去前に消去ベリファイを行ない、フェイルしたセクタに対してだけ消去を行なう。これにより、消去動作の無駄な時間を省くことができる。
【００３３】
〔４〕上記半導体装置は例えばフラッシュメモリのような単一半導体基板上に形成された半導体メモリ、或いは、フラッシュメモリをオンチップで備えたマイクロコンピュータないしマイクロプロセッサなどとされる。前記半導体メモリ化されたフラッシュメモリは、ＰＣ（Personal Computer）カードとしての不揮発性メモリカードのようなデータ処理システムを構成できる。このデータ処理システムは、フラッシュメモリとされる半導体装置と、当該半導体装置のアクセス制御を行なうアクセス制御手段と、前記アクセス制御手段を外部とインタフェースさせるインタフェース手段とをカード基板に含む。
【００３４】
【発明の実施の形態】
《フラッシュメモリの全体構成》
図2には本発明の一例に係るフラッシュメモリ１の全体的な回路ブロック図が示される。同図に示されるフラッシュメモリ１は、一つのメモリセルに２ビットの情報を記憶する４値フラッシュメモリとされる。
【００３５】
同図においてメモリアレイ３は、メモリマット、データラッチ回路及びセンスラッチ回路を有する。このメモリマットは電気的に消去及び書き込み可能な不揮発性のメモリセルトランジスタを多数有する。メモリセルトランジスタ（フラッシュメモリセルとも記す）は、例えば図３に例示されるように、半導体基板若しくはウェルＳＵＢ内に形成されたソースＳ及びドレインＤと、ソースＳとドレインＤとの間のチャンネル領域にトンネル酸化膜を介して形成されたフローティングゲートＦＧ、そしてフローティングゲートＦＧに層間絶縁膜を介して重ねられたコントロールゲートＣＧによって構成される。コントロールゲートＣＧはワード線６に、ドレインＤはビット線５に、ソースＳは図示を省略するソース線に接続される。
【００３６】
フラッシュメモリ１の外部入出力端子I/O0〜I/O7は、アドレス入力端子、データ入力端子、データ出力端子、コマンド入力端子に兼用される。外部入出力端子I/O0〜I/O7から入力されたXアドレス信号はマルチプレクサ７を介してXアドレスバッファ８に供給される。Ｘアドレスデコーダ９はＸアドレスバッファ８から出力される内部相補アドレス信号をデコードしてワード線を駆動する。
【００３７】
前記ビット線５の一端側には、後述されるセンスラッチ回路（ＳＬ）が設けられ、他端には同じく後述されるデータラッチ回路（ＤＬＬ、ＤＬＲ）が設けられている。ビット線５はＹアドレスデコーダ１１から出力される選択信号に基づいてＹゲートアレイ回路１３で選択される。外部入出力端子I/O0〜I/O7から入力されたYアドレス信号はYアドレスカウンタ１２にプリセットされ、プリセット値を起点に順次インクリメントされたアドレス信号が前記Yアドレスデコーダ１１に与えられる。
【００３８】
Yゲートアレイ回路１３で選択されたビット線は、データ出力動作時には出力バッファ１５の入力端子に導通され、データ入力動作時には入力バッファ１７を介してデータ制御回路１６の出力端子に導通される。出力バッファ１５、入力バッファ１７と前記入出力端子I/O0〜I/O7との接続は前記マルチプレクサ７で制御される。入出力端子I/O0〜I/O7から供給されるコマンドはマルチプレクサ７及び入力バッファ１７を介してモード制御回路１８に与えられる。
【００３９】
制御信号バッファ回路１９には、アクセス制御信号としてチップイネーブル信号CEｂ、出力イネーブル信号ＯＥｂ、書き込みイネーブル信号ＷＥｂ、シリアルクロック信号ＳＣ、リセット信号ＲＥＳｂ及びコマンドイネーブル信号ＣＤＥｂが供給される。モード制御回路１８は、それら信号の状態に応じて外部との信号インタフェース機能などを制御し、また、入力されたコマンドに従って内部動作を制御する。入出力端子I/O0〜I/O7に対するコマンド入力又はデータ入力の場合、前記信号ＣＤＥｂがアサートされ、コマンド入力であれば更に信号ＷＥｂがアサート、データ入力であればＷＥｂがネゲートされる。アドレス入力であれば、前記信号ＣＤＥｂがネゲートされ、信号ＷＥｂがアサートされる。これにより、モード制御回路１８は、外部入出力端子I/O0〜I/O7からマルチプレクスされて入力されるコマンド、データ及びアドレスを区別できる。モード制御回路１８は、消去や書込み動作中にレディー・ビジー信号Ｒ／Ｂｂをアサートしてその状態を外部に知らせることができる。
【００４０】
内部電源回路（内部電圧発生回路）２０は、書込み、消去、ベリファイ、読み出しなどのための各種内部電圧とされる動作電源２１を生成して、前記Ｘアドレスデコーダ９やメモリセルアレイ３に供給する。
【００４１】
前記モード制御回路１８は、入力コマンドに従ってフラッシュメモリ１を全体的に制御する。フラッシュメモリ１の動作は、基本的にコマンドによって決定される。フラッシュメモリのコマンドには、例えば図４に例示される、読み出し、消去、書込み、及び追加書込みの各コマンドがある。同図において、コマンドコードは１６進数表記され、それが記号Ｈで示されている。
【００４２】
フラッシュメモリ1はその内部状態を示すためにステータスレジスタ１８０を有し、その内容は、信号ＯＥｂをアサートすることによって入出力端子I/O0〜I/O7から読み出すことができる。ステータスレジスタ１８０の各ビットの内容と入出力端子I/O0〜I/O7との対応が図５に例示されている。
【００４３】
図６には前記メモリアレイ３に含まれるデータラッチ回路とセンスラッチ回路との関係が示されている。中央にセンスラッチ回路ＳＬのアレイＳＬＡが配置され、センスラッチ回路ＳＬの一方の入出力ノードＳＬＬ側にはスイッチ回路・演算回路アレイ３０Ｌ、メモリマットＭＭＬ、スイッチ回路・演算回路アレイ３１Ｌ、及び上位データラッチ回路ＤＬＬのアレイＤＬＬＡが配置されている。他方の入出力ノードＳＬＲ側にも同様に、スイッチ回路・演算回路アレイ３０Ｒ、メモリマットＭＭＲ、スイッチ回路・演算回路アレイ３１Ｒ、及び下位データラッチ回路ＤＬＲのアレイＤＬＲＡが配置されている。更に図６に示されるように、一対のビット線に着目してその構成を把握すれば、スタティックラッチ形態のセンスラッチ回路ＳＬの一対のデータ入出力ノードＳＬＬ，ＳＬＲにはビット線Ｇ−ＢＬＬ，Ｇ−ＢＬＲを介してデータラッチ回路ＤＬＬ，ＤＬＲが設けられている。データラッチ回路ＤＬＬ，ＤＬＲはＹゲートアレイ回路１３を介して供給される書込みデータビットをラッチすることができる。この例に従えば、フラッシュメモリ１は、8ビットの入出力端子I/O0〜I/O7を有するから、1回の書込みデータの入力によって4対のビット線のデータラッチ回路ＤＬＬ，ＤＬＲに書込みデータをセットすることができる。データセットの態様は、図７のデータラッチ回路ＤＤＬ，ＤＬＲと対とされる入出力端子I/O4，I/O0との対応関係に代表されるように、一定にされる。ここでの説明では、書込みの単位をワード線単位とするので、1本分のワード線に選択端子が結合する全てのメモリセルのビット線に関するデータラッチ回路ＤＬＬ，ＤＬＲに書込みデータをセットした後、書込み電圧印加による書込み動作が行なわれることになる。I/O5とI/O1、I/O6とI/O2、I/O7とI/O3とは上記I/O4とI/O0の様に、対をなす。
【００４４】
図2に示されるフラッシュメモリ１が実現しようとする多値情報記憶技術において、一つのメモリセルの情報記憶状態は、消去状態（“１１”）、第１の書込み状態（“１０”）、第２の書込み状態（“００”）、第３の書込み状態（“０１”）の中から選ばれた一つの状態とされる。全部で４通りの情報記憶状態は、２ビットのデータによって決定される状態とされる。即ち、２ビットのデータを一つのメモリセルで記憶する。この4値のデータと閾値電圧との関係は、図８の閾値電圧分布図に示される通りである。
【００４５】
図８に示されるような閾値分布を得るには、消去の後の書込み動作時にワード線に印加する書込みベリファイ電圧を相互に異なる３種類の電圧に設定し、これらの３種類の電圧を順次切り替えて、３回に分けて書込み動作を行なう。図８において、ＶＷＶ１，ＶＷＶ２，ＶＷＶ３は夫々第１の書込み状態，第２の書込み状態，第３の書込み状態を得る時に用いる書込みベリファイ電圧である。
【００４６】
それら３回に分けた個々の書込み動作において、ワード線とビット線の電圧印加状態の一例は図９に示される。書込み選択のビット線には０Ｖ、非選択のビット線には６Ｖを印加する。特に制限されないが、ワード線は例えば１７Ｖとされる。前記書き込み高電圧印加時間を多くするにしたがってメモリセルの閾値電圧が上昇される。３種類の書き込み閾値電圧制御は、そのような高電圧状態の時間制御、更にはワード線に印加する高電圧のレベル制御によって行うことができる。
【００４７】
ビット線に０Ｖを印加するか、６Ｖを印加するかは、センスラッチ回路ＳＬにラッチさせる書込み制御情報の論理値で決定される。書込み動作選択メモリマット側においてセンスラッチのラッチデータが論理値“１”で書込み非選択、論理値“０”で書き込み選択となるように制御される。その制御の詳細は後述する。尚、図９に示される様に、セクタ一括消去時には、選択ワード線が−１６Ｖとされ、非選択ワード線が０Ｖとされ、選択ビット線は２Ｖとされる。
【００４８】
上記センスラッチ回路ＳＬに対する書込み制御情報のラッチ動作は、前記３回に分けた書込み動作の各動作毎に制御される。この書込み制御は前記モード制御回路１８が行い、そのとき、前記センスラッチ回路ＳＬがラッチすべき書込み制御情報は、データラッチ回路ＤＬＬ，ＤＬＲが保持している書込みデータビットを用いた演算を書込み動作毎に行なって生成し、それをセンスラッチ回路ＳＬにラッチさせる。例えば、図７に例示されるように、データラッチ回路ＤＬＬ，ＤＬＲにラッチされた書込みデータが“０１”であったとすると、図８に例示されるように“０１”状態は第３の書込み状態である。消去状態の後の３回に分けた書込み動作が、図１０の第２の態様（Case2）の如く閾値電圧の低い順に書込み状態を生成していく書込み手順が採用されている場合、第１回目（１）に第1の書込み状態を得るための書込み動作時にデータラッチ回路ＤＬＬ，ＤＬＲの書込みデータ（“０１”）を用いて演算された結果（書き込み制御情報）は論理値“１”、第２回目（２）に第２の書込み状態を得るための書込み動作時にデータラッチ回路ＤＬＬ，ＤＬＲの書込みデータ（“０１”）を用いて演算された結果は論理値“１”、第３回目（３）に第３の書込み状態を得るための書込み動作時にデータラッチ回路ＤＬＬ，ＤＬＲの書込みデータ（“０１”）を用いて演算された結果は論理値“０”とされる。そのような演算は、前記スイッチ回路・演算回路アレイ（３１Ｌ、３０Ｌ又は３１Ｒ、３０Ｒ）を動作させて行なう。したがって、第３回目（３）の書込み時だけ、書込み電圧が印加され、当該メモリセルには４値の内の第３の書込み状態（“０１”）が実現される。
【００４９】
このようにして、3回に分けて書込み動作が行なわれても、最初にデータラッチ回路ＤＬＬ，ＤＬＲにラッチされた書込みデータは破壊されず、そのまま維持されている。データラッチ回路ＤＬＬ，ＤＬＲにラッチされた2ビットの書込みデータを、書き込み動作毎に前記スイッチ回路・演算回路アレイ（３１Ｌ、３０Ｌ及び３１Ｒ、３０Ｒ）によって演算し、その演算結果のデータを毎回センスラッチ回路ＳＬにセットするという、制御シーケンスを採用するからである。
【００５０】
尚、書込み動作において閾値電圧を変化させる順番などは図１０の第２の態様（Case2）に限定されず、第1の態様（Case1）のように閾値電圧の高いものから設定したり、或いは第３の態様（Case3）のようにどの書込み状態に対しても1回の書込み動作で得る閾値電圧の変化率を同じようにしたり、或いは第４の態様（Case4）又は第５の態様（Case5）の如く制御することも可能である。すなわち、Case４において、第１回目（１）の書き込みで、データ”００”乃至”０１”にされるべきメモリセルの閾値が、”００”に対応する閾値へ変化させられる。次に、第２回目（２）の書き込みで、第１回目（１）の書き込みで、データ”００”に対応する閾値に設定されたメモリセルの中から、データ”０１”にされるべきメモリセルの閾値がデータ”０１”に対応する閾値へ変化させられる。そして、第３回目（３）の書き込みで、データ”１０”にされるべきメモリセルの閾値がデータ”１０”に対応する閾値へ変化させられる。Case５において、第１回目（１）の書き込みは、Case４と同様に、上記データ”００”乃至”０１”にされるべきメモリセルの閾値が、”００”に対応する閾値へ変化される。次に、第２回目（２）の書き込みで、データ”１０”にされるべきメモリセルの閾値がデータ”１０”に対応する閾値へ変化させられる。その後、第３回目（３）の書き込みで、第１回目（１）の書き込みで、データ”００”に対応する閾値に設定されたメモリセルの中から、データ”０１”にされるべきメモリセルの閾値がデータ”０１”に対応する閾値へ変化させられる。
【００５１】
データ読み出し動作時は、ワード線に印加するワード線選択レベルとしての電圧を、３種類設定し、３種類のワード線選択レベルを順次変更しながら３回の読出し動作を行い、個々の読み出し動作でメモリセルから読み出される２値（１ビット）のデータをセンスラッチ回路４にラッチする。ラッチされる度に、センスラッチされた内容をデータラッチ回路に2ビットの情報として反映させる演算を行なう。3回のセンスラッチの結果によってデータラッチ回路ＤＬＬ，ＤＬＲに得られた2ビットが、当該メモリセルが保有する4値の情報に対応するデータとされる。
【００５２】
図１１には図2のフラッシュメモリをレイアウト的な観点から表現したブロック図が示される。図１１において、モード制御回路１８は、コマンドデコーダ、ステート情報を格納したＲＯＭ、ＲＯＭのデコーダ、ＲＯＭ制御系回路、ＣＰＵ、及びステータスレジスタ・テスト系回路によって構成される。また、Ｙアドレスカウンタ１２には冗長による救済制御系の回路も含まれている。また、図2のマルチプレクサ７及び入力バッファ１７は、図１１において、入力バッファ７０、データの信号配線、及びメインアンプ１７０によって実現されている。図2の制御信号バッファ回路１９は制御信号入力バッファ１９Ａとデータ入出力制御回路１９Ｂによって構成される。メモリアレイ３には、センスラッチ回路アレイＳＬＡを挟んでその両側に2組のメモリマットＭＭＲ，ＭＭＬが設けられている。
【００５３】
《メモリアレイの詳細》
次に、上記メモリアレイの詳細を説明する。図１には、上記フラッシュメモリにおけるセンスラッチ回路及びデータラッチ回路を中心とする回路構成の一例が示される。図１には１個のセンスラッチ回路ＳＬの左右一対のビット線Ｇ−ＢＬＬ，Ｇ−ＢＬＲの周囲の構成が代表的に示されている。図１から明らかなように、左右一対のビット線Ｇ−ＢＬＬ，Ｇ−ＢＬＲの周囲の構成は、センスラッチ回路ＳＬを中心に鏡面対称構造とされる。
【００５４】
メモリマットＭＭＬ，ＭＭＲは電気的に書き換え可能な複数個のメモリセルＭＣ（代表的に数個が図示されている）を有する。１個のメモリセルＭＣは、図３に示される通り、コントロールゲート、フローティングゲート、ソース及びドレインを持ち電気的に書き換え可能な１個のトランジスタ（メモリセルトランジスタ）によって構成される。メモリセルのレイアウト構造は、特に制限されないが、所謂ＡＮＤ型とされる。メモリマットＭＭＲ側に例示されるように、ＡＮＤ型の構成では、複数個の前記メモリセルトランジスタがそれらに共通のソース及びドレインを構成する夫々の拡散層（半導体領域）を介して並列配置され、ドレインを構成する拡散層は選択トランジスタＭ１を介してビット線Ｇ−ＢＬＲに、ソースを構成する拡散層は選択トランジスタＭ２を介して共通ソース線ＶＭＭＲに結合されている。ＳＳｉは選択トランジスタＭ２のスイッチ制御信号、ＳＤｉは選択トランジスタＭ１のスイッチ制御信号である。ＷＬはメモリセルＭＣのコントロールゲートに結合されるワード線である。メモリマットＭＭＬも同様に構成されている。尚、本明細書に添付された図面においてＰチャンネル型ＭＯＳトランジスタはその基体ゲートに矢印を付してＮチャンネル型ＭＯＳトランジスタと区別して図示してある。
【００５５】
前記センスラッチ回路ＳＬは、一対のＣＭＯＳインバータから成るスタティックラッチ、即ち相互に一方のＣＭＯＳインバータの入力端子を他方のＣＭＯＳインバータの出力端子に結合して成る回路、によって構成されている。ＳＬＲ，ＳＬＬはセンスラッチ回路ＳＬの一対の入出力ノードである。ＳＬＰ，ＳＬＮはセンスラッチ回路ＳＬの動作電源である。ＭＯＳトランジスタＭ５Ｌ，Ｍ５Ｒは入出力ノードＳＬＬ，ＳＬＲを選択的にディスチャージ（クリア）する。
【００５６】
前記データラッチ回路ＤＬＲは、一対のＣＭＯＳインバータから成るスタティックラッチ、即ち相互に一方のＣＭＯＳインバータの入力端子を他方のＣＭＯＳインバータの出力端子に結合して成る回路、によって構成されている。ＤＬＲＲ，ＤＬＲＬはデータラッチ回路ＤＬＲの一対の入出力ノードである。ＤＬＰＲ，ＤＬＮＲはデータラッチ回路ＤＬＲの動作電源である。ＭＯＳトランジスタＭ６Ｌ，Ｍ７Ｌの直列回路とＭＯＳトランジスタＭ６Ｒ，Ｍ７Ｒの直列回路は、前記データラッチ回路ＤＬＲに相補信号形態でデータを入出力するカラムスイッチ回路を構成する。ＭＯＳトランジスタＭ８Ｌ，Ｍ８Ｒは入出力ノードＤＬＲＬ，ＤＬＲＲを選択的にチャージするトランジスタである。
【００５７】
前記データラッチ回路ＤＬＬは、一対のＣＭＯＳインバータから成るスタティックラッチ、即ち相互に一方のＣＭＯＳインバータの入力端子を他方のＣＭＯＳインバータの出力端子に結合して成る回路、によって構成されている。ＤＬＬＲ，ＤＬＬＬはデータラッチ回路ＤＬＬの一対の入出力ノードである。ＤＬＰＬ，ＤＬＮＬはデータラッチ回路ＤＬＬの動作電源である。ＭＯＳトランジスタＭ９Ｌ，Ｍ１０Ｌの直列回路とＭＯＳトランジスタＭ９Ｒ，Ｍ１０Ｒの直列回路は、前記データラッチ回路ＤＬＬに相補信号形態でデータを入出力するカラムスイッチ回路を構成する。ＭＯＳトランジスタＭ１１Ｌ，Ｍ１１Ｒは入出力ノードＤＬＬＬ，ＤＬＬＲを選択的にチャージするトランジスタである。
【００５８】
前記スイッチ回路・演算回路アレイ３０Ｒは、ビット線Ｇ−ＢＬＲ毎にＭＯＳトランジスタＭ２０Ｒ〜Ｍ２５Ｒによって構成される回路を有する。トランジスタＭ２０Ｒはセンスラッチ回路ＳＬの入出力ノードＳＬＲの電圧レベルをゲートに受け、それがハイレベルのとき、電圧ＦＰＣをＭＯＳトランジスタＭ２１Ｒを介してビット線Ｇ−ＢＬＲに供給する。この場合、ビット線Ｇ−ＢＬＲへ供給される電圧レベルは制御信号ＰＣＲの電圧レベルによるＭＯＳトランジスタＭ２１Ｒのコンダクタンス制御で決定される。トランジスタＭ２２Ｒは入出力ノードＳＬＲとビット線Ｇ−ＢＬＲとを選択的に導通させるトランスファゲートを構成する。ＭＯＳトランジスタＭ２３Ｒはオール判定（ＡＬＬ判定とも記す）に利用される。ＭＯＳトランジスタＭ２４Ｒ，Ｍ２５Ｒはビット線Ｇ−ＢＬＲのプリチャージ、ディスチャージに利用される。前記スイッチ回路・演算回路アレイ３０Ｌもビット線Ｇ−ＢＬＬ毎にＭＯＳトランジスタＭ２０Ｌ〜Ｍ２５Ｌによって上記同様に構成される回路を有する。尚、ＭＯＳトランジスタＭ２０Ｌ，Ｍ２１Ｌ，Ｍ２４Ｌ，Ｍ２５Ｌのゲート制御信号は前記ＭＯＳトランジスタＭ２０Ｒ，Ｍ２１Ｒ，Ｍ２４Ｒ，Ｍ２５Ｒとは相違される。ＭＯＳトランジスタＭ２２ＬとＭ２２Ｒは、常に同時に動作する様に制御される。
【００５９】
前記スイッチ回路・演算回路アレイ３１Ｒは、ビット線Ｇ−ＢＬＲ毎にＭＯＳトランジスタＭ２６Ｒ〜Ｍ２８Ｒによって構成される回路を有する。トランジスタＭ２６Ｒはデータラッチ回路ＤＬＲの入出力ノードＤＬＲＬの電圧レベルをゲートに受け、それがハイレベルのとき、電圧ＦＰＣをＭＯＳトランジスタＭ２７Ｒを介してビット線Ｇ−ＢＬＲに供給する。この場合、ビット線Ｇ−ＢＬＲへ供給される電圧レベルは制御信号ＰＣＤＲの電圧レベルによるＭＯＳトランジスタＭ２７Ｒのコンダクタンス制御で決定される。トランジスタＭ２８Ｒは入出力ノードＤＬＲＬとビット線Ｇ−ＢＬＲとを選択的に導通させるトランスファゲートを構成する。前記スイッチ回路・演算回路アレイ３１Ｌもビット線Ｇ−ＢＬＬ毎にＭＯＳトランジスタＭ２６Ｌ〜Ｍ２８Ｌによって上記同様に構成される回路を有する。尚、ＭＯＳトランジスタＭ２７Ｌ，Ｍ２８Ｌのゲート制御信号は前記ＭＯＳトランジスタＭ２７Ｒ，Ｍ２８Ｒとは相違される。
【００６０】
図１には代表的に１個のワードドライバＷＤＲＶが図示されている。ワードドライバＷＤＲＶの動作電源、即ち、ワード線の駆動電圧は、フラッシュメモリ１の動作内容に応じて決定され、読み出し電圧ＶＲＷ１〜ＶＲＷ３、書込み電圧ＶＷＷ、書込みベリファイ電圧ＶＷＶ０〜ＶＷＶ３、書込みエラティック検出電圧ＶＷＥ１〜ＶＷＥ２、書込みディスターブ検出電圧ＶＷＤＳ、消去電圧ＶＥＷ、消去ベリファイ電圧ＶＥＶの中から選択される。
【００６１】
図１の構成において、読み出し、書き込みにおける基本的な回路動作は以下のようにされる。例えば、図１においてメモリマットＭＭＲに含まれるメモリセルＭＣに対して、読み出しを行う場合には、選択メモリマット（ＭＭＲ）側の信号ＲＰＣＲを１Ｖ＋Ｖｔｈにし、非選択メモリマット（ＭＭＬ）側の信号ＲＰＣＬを０．５Ｖ＋Ｖｔｈにすることにより、一括して選択メモリマット側ビット線を１Ｖにプリチャージし、非選択メモリマット側ビット線を０．５Ｖにプリチャージする。もちろん、選択メモリマットがＭＭＬで、非選択メモリマットがＭＭＲであれば、信号ＲＰＣＲが０．５Ｖ＋Ｖｔｈにされ、信号ＲＰＣＬが１Ｖ＋Ｖｔｈにされる。ＶｔｈはＭＯＳトランジスタＭ２４Ｒ、Ｍ２４Ｌの閾値電圧を示す。非選択メモリマット側のビット線のプリチャージレベルとされる上記０．５Ｖは、上述のように、センスラッチ回路ＳＬにおいてリファレンスレベルとして使われる。ワード線選択動作の後、トランスファＭＯＳトランジスタＭ２２Ｌ，Ｍ２２Ｒがオン動作され、この時、センスラッチ回路ＳＬは、ビット線Ｇ−ＢＬＲのレベルが０．５Ｖよりも高いか低いかをセンスして、メモリセルＭＣからの読み出しデータをラッチする。センスラッチ回路ＳＬにラッチされたデータが４値の記憶情報に対してどの値であるは、そのときの読み出しワード線選択レベルとの関係によって判定される。その判定処理の詳細は後述するが、前記スイッチ回路・演算回路アレイ３０Ｒ，３０Ｌ，３１Ｒ，３１Ｌが用いられる。判定結果に応ずる２ビットのデータはセンスラッチ回路ＳＬの左右２個のデータラッチ回路ＤＬＬ，ＤＬＲにラッチされる。
【００６２】
また、書込みでは、書き込み制御情報がセンスラッチ回路ＳＬにラッチされた後、センスラッチ回路ＳＬの電源ＳＬＰが書き込み阻止電圧たとえば６Ｖとされ、センスラッチ回路ＳＬの入出力ノードが“１”にされている場合には、当該入出力ノード側の対応ビット線に書き込み阻止電圧６Ｖが印加され、センスラッチ回路ＳＬの入出力ノードが“０”にされている場合には当該入出力ノード側の対応ビット線は０Ｖを維持する。コントロールゲートの高電圧に対して、０Ｖのドレイン電圧を有するメモリセルは、書き込みに必要な高電界が形成され、書き込みが行なわれる。このように、センスラッチ回路ＳＬにラッチされる書込み制御情報の論理値が、実際に書き込み電圧を印加するか否かを決定する。その論理値は、左右のデータラッチ回路ＤＬＬ，ＤＬＲにラッチされるデータと、現在の書込み動作が第１乃至第３の書込み状態の何れに対する書込み動作かということによって、決定される。その決定論理については後で説明する。
【００６３】
第１乃至第３の書込みのために書き込み電圧を印加した直後のベリファイ動作は、書込み対象セクタに対するオール判定動作によって行う。例えば、書込み電圧を印加した後、選択メモリマットＭＭＲ側の信号ＰＣＲを例えば１Ｖ＋Ｖｔｈに制御してビット線Ｇ−ＢＬＲを１Ｖにプリチャージすると共に、非選択メモリマットＭＭＬ側では、ＭＯＳトランジスタＭ２４Ｌのゲート電圧ＲＰＣＬを０．５Ｖ＋Ｖｔｈに制御してビット線Ｇ−ＢＬＬを０．５Ｖにプリチャージする。Ｖｔｈは、ＭＯＳトランジスタＭ２１Ｒ、Ｍ２１Ｌの閾値電圧を意味する。この状態で読み出し動作同様にベリファイ電圧ＶＷＶ１、ＶＷＶ２又はＶＷＶ３をワード線に与える。ワード線に印加したベリファイ電圧以下の閾値を有するメモリセルがあれば、すなわち、所要の閾値電圧に到達していないメモリセルがあれば、ビット線はディスチャージされる。ベリファイ電圧によるビット線ディスチャージの有無の検出を実行した後、選択メモリマット側の書き込み非選択ビット線を１Ｖにプリチャージする。すなわち、選択メモリマット側の書込み非選択のビット線のセンスラッチ回路ＳＬの入出力ノードは論理値“１”にされている。このセンスラッチ回路ＳＬの論理値“１”のラッチデータでトランジスタＭ２０Ｒをオン動作させＰＣＲを例えば１Ｖ＋Ｖｔｈに制御することによって、上記書き込み非選択ビット線を１Ｖにプリチャージすることができる（非選択プリチャージ処理によるマスク）。これにより、書込み選択とされるメモリセルの全てが所要の閾値電圧状態になっていれば、選択メモリマットのビット線は全てプリチャージ状態を採り、前記オール判定用のトランジスタＭ２３Ｌ，Ｍ２３Ｒがその状態を判定する。ＭＯＳトランジスタＭ２３Ｌ，Ｍ２３Ｒは、対応するビット線にゲートが接続され、そのソースが接地電位に結合される。図１に代表的に示された１個のセンスラッチ回路ＳＬを中心としたビット線Ｇ−ＢＬＬ，Ｇ−ＢＬＲに係る構成は実際には多数存在されている。センスラッチ回路ＳＬを挟んで図１の左側のトランジスタＭ２３Ｌのドレインは端子ＥＣＬに全て共通接続され、ビット線Ｇ−ＢＬＬに代表される左側のビット線の状態（レベル）に応じた電流が当該端子ＥＣＬに流される。同様に、センスラッチ回路ＳＬを挟んで図１の右側のトランジスタＭ２３Ｒのドレインも全て端子ＥＣＲに共通接続され、当該端子ＥＣＲには、ビット線Ｇ−ＢＬＲに代表される右側のビット線の状態（レベル）に応じた電流が流される。特に図示はしないが、端子ＥＣＬ（ＥＣＲ）の変化に基づいてセンスラッチ回路ＳＬの左（右）側の全てのビット線Ｇ−ＢＬＬ（Ｇ−ＢＬＲ）の状態が同じ状態になったかを検出する電流センス型のアンプが設けられている。このアンプは、消去ベリファイ又は書込みベリファイの対象とされる全てのメモリセルが所定の閾値電圧になったかを検出すること、即ちオール判定に用いられる。
【００６４】
ここで、書き込みと書き込みベリファイ時におけるセンスラッチ回路ＳＬのラッチデータ（選択マット側のデータ入出力ノードの値）とそれによる動作との関係をまとめて説明する。図４１に示されるように、選択側メモリマットをＭＭＲとすると、書き込み動作はセンスラッチ回路ＳＬのノードＳＬＲ＝０によって選択とされ、ＳＬＲ＝１によって非選択とされる。書き込み非選択のビット線Ｇ−ＢＬＲには書き込み阻止電圧６Ｖが供給される。書き込み選択されたメモリセルの閾値電圧がベリファイ電圧よりも低いうちは、書き込みベリファイ動作において当該メモリセルのビット線はディスチャージされる（Ｇ−ＢＬＲ＝０）。書き込み完了されれば、当該ビット線はプリチャージレベルを維持する（Ｇ−ＢＬＲ＝１）。書き込みベリファイにおけるオール判定動作では、書き込み非選択メモリセルのビット線を強制的にプリチャージする。即ち、センスラッチ回路ＳＬの入出力ノードＳＬＲ＝１に応答して、書き込み非選択のビット線Ｇ−ＢＬＲにはトランジスタＭ２０Ｒ，Ｍ２１Ｒを介してプリチャージを行う（非選択プリチャージによるマスク）。これにより、全ての書き込み対象メモリセルの閾値電圧がベリファイ電圧以上にされると、書き込み対象セクタの全てのビット線はプリチャージ状態を維持する。オール判定は、書き込み対象セクタの全てのビット線の論理値の論理和によって行なわれる。
【００６５】
以下、上記構成を有するフラッシュメモリ１の読み出し動作、書込み動作、追加書込み動作、及び消去動作について夫々詳述する。
【００６６】
《読み出し動作》
図１３には読み出し動作のフローチャートが示される。不揮発性メモリセルの各閾値電圧と読み出しワード線電圧ＶＲＷ１〜ＶＲＷ３との関係は図１４に例示されている。フラッシュメモリ１は読み出しコマンドを受け付けると、当該コマンドで指定されたセクタアアドレスに対して、読み出しワード線電圧ＶＲＷ１を用いた読み出し動作を行う（ＲＳ１）。読み出されたデータはセンスラッチ回路ＳＬにラッチされ、ラッチされたデータはデータラッチ回路ＤＬＲに与えられる（ＲＳ２）。次に、前記と同じセクタアアドレスに対して、読み出しワード線電圧ＶＲＷ２を用いた読み出し動作が行なわれ、読み出されたデータはセンスラッチ回路ＳＬにラッチされる（ＲＳ３）。ラッチされたデータは今度はデータラッチ回路ＤＬＬに与えられる（ＲＳ４）。更に、同じセクタアドレスに対して、読み出しワード線電圧ＶＲＷ３を用いた読み出し動作が行なわれ（ＲＳ５）、読み出されたデータとデータラッチ回路ＤＬＲに既にラッチされているデータを用いて、当該メモリセルの閾値電圧状態が消去状態又は第１乃至第３の書込み状態の何れの状態であるかを判定する演算が行われ（ＲＳ６）、演算結果がデータラッチ回路ＤＬＲに反映される（ＲＳ６７）。これによって、当該メモリセルが記憶している４値情報が２個のデータラッチ回路ＤＬＲ，ＤＬＬに保持される。
【００６７】
図２６にはセンスラッチ回路、ビット線及びデータラッチ回路の状態に対応させて前記読み出し動作手順の詳細な一例を示してある。同図に示される内容は、動作選択メモリマットを図１の右側のメモリマットＭＭＲとする。また、ステップ（Ｓｔｅｐ）毎に示された信号若しくはノードに対応して表されている数字は、小数点付き数字が電圧を意味し、小数点無し数字が論理値（ハイレベルは“１”、ローレベルは“０”）を意味する。また、データラッチ回路ＤＬＬ，ＤＬＲの欄には左右ノードの双方の値が示されている場合があり、括弧が付されていない数字が着目論理値とされる。また、図２６においてＳＬ（Ｒ）はセンスラッチ回路ＳＬの入出力ノードＳＬＲを意味し、ＳＬ（Ｌ）は入出力ノードＳＬＬを意味する。
【００６８】
図２６のＳｔｅｐ１でＶＲＷ１読み出しを行えば、消去状態（“１１”）のメモリセルとそれ以外の状態のメモリセルとを区別でき、当該１ビットの読み出しデータがデータラッチ回路ＤＬＲに転送される（Ｓｔｅｐ２）。Ｓｔｅｐ３でＶＲＷ２読み出しを行えば、消去状態（“１１”）及び第１の書込み状態（“１０“）のメモリセルとそれ以外の状態のメモリセルとを区別でき、当該１ビットの読み出しデータがデータラッチ回路ＤＬＬに転送される（Ｓｔｅｐ４）。図１４より、データラッチ回路ＤＬＬにラッチされたデータは、２ビットの読み出しデータの上位ビットになることは明らかである。下位ビットの論理値はＶＲＷ３読み出しを行わなければ確定できない。そこで、Ｓｔｅｐ５でＶＲＷ３読み出しを行い、第３の書込み状態（“０１“）のメモリセルとそれ以外の状態のメモリセルとを区別し、当該１ビットの読み出しデータをセンスラッチ回路ＳＬにラッチしたまま、トランジスタＭ２５Ｒ、Ｍ２５Ｌを用いてビット線を”０“にクリアする（Ｓｔｅｐ６）。そして、２ビットの読み出しデータの下位ビットの論理値を確定させる演算を行うために、データラッチ回路ＤＬＲのデータをビット線に転送し（Ｓｔｅｐ７）、前記センスラッチ回路ＳＬのラッチデータを用いてトランジスタＭ２０Ｒをスイッチ制御することにより、論理値”１“をラッチしているセンスラッチ回路ＳＬのビット線を論理値“０”にディスチャージする（Ｓｔｅｐ８）。この処理は、上位ビットとＶＲＷ３読み出し結果とに対する排他的論理和とされる。これによって、２ビットの読み出しデータの下位ビットがビット線上で確定され、データラッチ回路ＤＬＲの入力ノードをＭ８Ｒ，Ｍ８Ｌでクリアしてから、ビット線Ｇ−ＢＬＲのデータをトランジスタＭ２８Ｒを介して前記データラッチ回路ＤＬＲに転送する（Ｓｔｅｐ１０）。データラッチ回路ＤＬＲ，ＤＬＬにラッチされた２ビットの読み出しデータは外部端子Ｉ／Ｏ０〜Ｉ／Ｏ７の内の所定の端子を介して外部に出力される。
【００６９】
《書き込み動作》
図１５には書込み動作のフローチャートが示される。書き込み動作はワード線を一単位とする書き込み（セクタ書き込み）とされる。フラッシュメモリは書込みコマンドを受け付けると、次の入力をセクタアドレスとして取り込み、セクタアドレス取り込みの後の入力を書き込みデータとして取り込む（ＷＳ１）。取り込まれるセクタアドレスは、Ｘアドレスであり、これによって、書き込み高電圧を印加する１本のワード線を選択することになる。書き込みデータの取り込みは、Ｙアドレスカウンタ１２を初期値から漸次インクリメントしながらバイト単位で、データラッチ回路ＤＬＬ，ＤＬＲに対して行われる。例えば、図６に示されるように、一つのセンスラッチ回路アレイＳＬＡに関する一対のメモリマットＭＭＬ，ＭＭＲに割り当てられたデータラッチ回路アレイＤＬＬＡ，ＤＬＲＡに、書き込みデータがラッチされる。例えば１本のワード線にｎ個のメモリセルのコントロールゲートが結合されているとすると、データラッチ回路アレイＤＬＬＡ，ＤＬＲＡには、夫々ｎビットの書き込みデータがラッチされる。
【００７０】
書き込みデータをラッチした後、“０１”書き込み処理ＴＳ１、“００”書き込み処理ＴＳ２、“１０”書き込み処理ＴＳ３、及びエラティック／ディスターブ検出処理ＴＳ４が行われる。図１８の（Ａ）〜（Ｃ）には“０１”書き込み処理ＴＳ１、“００”書き込み処理ＴＳ２、“１０”書き込み処理ＴＳ３によって得られる閾値電圧分布とそのためのベリファイ電圧との関係の一例が示される。また、図１８の（Ｄ）には、エラティック／ディスターブ検出処理ＴＳ４における閾値電圧分布とベリファイ電圧との関係の一例が示される。
【００７１】
前記“０１”書き込み処理は、４値の内の一つの状態である消去状態（“１１”）に対して、メモリセルＭＣの閾値電圧を、第３の書き込み状態（“０１”）にするための処理であり、書き込みベリファイ電圧としてＶＷＶ３を用いる。
【００７２】
前記“０１”書き込み処理は、例えば図１６に詳細が例示されるように、データラッチ処理ＷＳ１０、“０１”書込み処理ＷＳ１１、データラッチ処理ＷＳ１２、及び書き込みベリファイ処理ＷＳ１３を含む。前記データラッチ処理ＷＳ１０は、データラッチ回路ＤＬＬ，ＤＬＲに２ビットの“０１”データがラッチされているとき、それに応答して書込み電圧印加をイネーブルにする論理値の制御データをセンスラッチ回路ＳＬにラッチさせる処理である。前記“０１”書込み処理ＷＳ１１は、イネーブルレベルの論理値を有する制御データがラッチされたセンスラッチ回路ＳＬに対応されるビット線のメモリセルに“０１”データに応ずる書き込み電圧を印加する。前述の通り、書込み選択メモリマット側のセンスラッチ回路ＳＬの入出力ノードが論理値“０”にされている場合に、そのノードに接続するビット線のメモリセルに書込み電圧が印加される。前記データラッチ処理ＷＳ１２は“０１”書込みに対するベリファイ処理ＷＳ１３による判定をデータラッチ回路ＤＬＬ，ＤＬＲの２ビットの書込みデータを基準に毎回行うための処理である。ベリファイ処理ＷＳ１３は前述のオール判定によって行なわれる。
【００７３】
前記“００”書き込み処理ＴＳ２は、４値の内の一つの状態である消去状態（“１１”）に対して、メモリセルＭＣの閾値電圧を、第２の書き込み状態（“００”）にするための処理であり、書き込みベリファイ電圧としてＶＷＶ２を用いる。この“００”書き込み処理ＴＳ２は、図１６とほぼ同様であるが、データラッチ処理では、データラッチ回路ＤＬＬ，ＤＬＲにラッチされた２ビットの“００”データに応答して書き込みイネーブルとする論理値の制御データをセンスラッチ回路ＳＬにラッチさせ、書込みベリファイ電圧としてＶＷＶ２を用いる点が相違される。
【００７４】
前記“１０”書き込み処理ＴＳ３は、４値の内の一つの状態である消去状態（“１１”）に対して、メモリセルＭＣの閾値電圧を、第１の書き込み状態（“１０”）を得るための処理であり、書き込みベリファイ電圧としてＶＷＶ１を用いる。この“１０”書き込み処理ＴＳ３は、図１６とほぼ同様であるが、データラッチ処理では、データラッチ回路ＤＬＬ，ＤＬＲにラッチされた２ビットの“１０”データに応答して書き込みイネーブルとする論理値の制御データをセンスラッチ回路ＳＬにラッチさせ、書込みベリファイ電圧としてＶＷＶ１を用いる点が相違される。前記書き込みベリファイ電圧は、図１８の例からも明らかなように、ＶＷＶ３＞ＶＷＶ２＞ＶＷＶ１とされる。
【００７５】
前記エラティック／ディスターブ検出処理ＴＳ４は、図１８（Ｄ）にも示される様に、消去状態のメモリセルの閾値電圧がＶＷＤＳを超えていないかを検出する“１１”ワードディスターブ検出処理、そして“１０”書き込み処理されたメモリセルトランジスタの閾値電圧がＶＷＥ１を超えていないかを検出する“１０”エラティック検出処理、“００”書き込み処理されたメモリセルトランジスタの閾値電圧がＶＷＥ２を超えていないかを検出する“００”エラティック検出ＶＷＥ２処理である。ワードディスターブとは、ワード線単位で書き込み高電圧が印加される性質上、書き込み非選択のメモリセルでもある程度の高電界にさらされて閾値電圧が不所望に高くされることであり、“１１”ワードディスターブ検出処理はそれを検出する。エラティックとは、電子物性的な確率によって閾値電圧が不所望に高くなる状態であり、前記エラティック検出処理でそれを検出する。
【００７６】
前記エラティック／ディスターブ検出処理ＴＳ４までの一連の処理結果が正常であれば、ステータスレジスタ１８０にパスフラグがセットされ、一連の書き込み処理が終了される。前記エラティック／ディスターブ検出処理ＴＳ４による検出結果がフェイルである場合、フェイル回数が規定の回数に達しているかが判定され（ＷＳ２）、達していなければ、書き込みセクタを消去して（ＷＳ６）、再度“０１”書き込みからやり直す。やり直し回数は図示を省略するカウンタ手段に保持されおり、カウンタ手段の計数値によってフェイル回数が規定値に到達したかを判定する。エラー回数が規定値に到達した場合には、ステータスレジスタ１８０にフェイルフラグがセットされ、一連の書き込み処理が異常終了される。
【００７７】
図１５から明らかなように、再消去を行って再び書き込みを繰り返すとき、書き込みセクタの書き込みデータを再度外部から取り込むことを要しない。前記ステップＷＳ１でデータラッチ回路ＤＬＬ，ＤＬＲに一旦ラッチされた１セクタ分の書き込みデータは、前記処理ＴＳ１〜ＴＳ４を行っても破壊されず、そのままデータラッチ回路ＤＬＬ，ＤＬＲに残っているからである。
【００７８】
これは、センスラッチ回路ＳＬに対する前述の書込み制御情報のラッチ動作制御形態に依るものである。即ち、前記センスラッチ回路ＳＬがラッチすべき書込み制御情報は、データラッチ回路ＤＬＬ，ＤＬＲが保持している書込みデータビットを用いた演算を書込み動作毎に行なって生成し、それをセンスラッチ回路ＳＬがラッチする。例えば、図７に例示されるように、データラッチ回路ＤＬＬ，ＤＬＲにラッチされた書込みデータが“０１”であったとすると、図８に例示されるように“０１”状態は第３の書込み状態である。消去状態の後の３回に分けた書込み動作が、図１０の第２の態様（Case2）で行われる場合、第１回目に第1の書込み状態を得るための書込み動作時にデータラッチ回路ＤＬＬ，ＤＬＲの書込みデータ（“０１”）を用いて演算された結果は論理値“１”、第２回目に第２の書込み状態を得るための書込み動作時にデータラッチ回路ＤＬＬ，ＤＬＲの書込みデータ（“０１”）を用いて演算された結果は論理値“１”、第３回目に第３の書込み状態を得るための書込み動作時にデータラッチ回路ＤＬＬ，ＤＬＲの書込みデータ（“０１”）を用いて演算された結果は論理値“０”とされる。そのような演算は、前記スイッチ回路・演算回路アレイ３Ｌ，３０Ｒ，３１Ｌ，３１Ｒを動作させて行なう。よって、その場合には、メモリセルトランジスタは、第３回目の書込み時だけ、書込み用の高電界がドレインとコントロールゲートの間に印加され、当該メモリセルには４値の内の第3の書込み状態（“０１”）が実現される。
【００７９】
このようにして、３回に分けて書込み動作が行なわれたとき、最初にデータラッチ回路ＤＬＬ，ＤＬＲにラッチされた書込みデータは破壊されず、そのまま維持されている。データラッチ回路ＤＬＬ，ＤＬＲにラッチされた２ビットの書込みデータを、書き込み動作毎に演算に用いて毎回センスラッチ回路ＳＬにセットするという、制御シーケンスを採用するからである。エラティック・ディスターブ検出処理においても同様に、データラッチ回路ＤＬＬ，ＤＬＲにラッチされた２ビットの書込みデータを用いて演算した結果を毎回センスラッチ回路ＳＬにセットするという、制御シーケンスを採用するから、このときも、最初にデータラッチ回路ＤＬＬ，ＤＬＲにラッチされた書込みデータは破壊されず、そのまま維持されている。
【００８０】
データラッチ回路ＤＬＬ，ＤＬＲにラッチされた２ビットの書込みデータを用いた演算結果をセンスラッチ回路ＳＬにラッチさせる処理（データラッチ処理）は、ＴＳ１〜ＴＳ４における現在の処理との関係でその演算手法が相違される。
【００８１】
図２１は上記データラッチ処理の演算内容の一例を論理的に示したものである。図２１における演算内容は、動作選択メモリマット側のセンスラッチデータ（動作選択メモリマット側のセンスラッチ回路ＳＬの入出力ノードデータ）に関するものである。この演算手法は、ビット線プリチャージ電圧を０Ｖ、０．５Ｖ、１．０Ｖの３レベルとし、センスラッチ回路ＳＬによる複数回のセンス動作で、目的のデータをセンスラッチ回路ＳＬにラッチさせる動作である。
【００８２】
図２１においてＡ，Ｂは1個のセンスラッチ回路ＳＬに対応される2ビットの書込みデータであり、Ａはデータラッチ回路ＤＬＬにラッチされる上位データビット、Ｂはデータラッチ回路ＤＬＲにラッチされる下位データビットである。図２１によれば、“０１"書き込みデータラッチ処理の場合はデータビットＡとＢの反転データとの論理和、“００"書き込みデータラッチ処理の場合はデータビットＡとＢとの論理和、“１０"書き込みデータラッチ処理の場合はデータビットＡの反転データとＢとの論理和であり、“００"エラティック検出データラッチ処理の場合はデータビットＡとＢの負論理和、“１０"エラティック検出データラッチ処理の場合はデータビットＡとＢの反転データとの論理積、“１１"エラティック検出データラッチ処理の場合はデータビットＡとＢの論理積とされる。
【００８３】
図２１の演算論理を採用した場合、データビットＡ，Ｂの論理値に対する演算結果の論理値は図２２に示される通りである。前述のように、センスラッチデータの論理値“０”（ローレベル）が書込み電界印加（書込み選択）を意味する。
【００８４】
図２７には前記“０１”書き込み処理の更に詳細な動作フローチャートが示される。同図の表現形式は図２６と同じである。先ず、データラッチ回路ＤＬＬ，ＤＬＲに２ビットの書込みデータがラッチされる（Ｓｔｅｐ１）。ラッチされているデータが“０１”、“００”、“１０”、“１１”の４通りの場合について図示されている。次に、書き込み選択メモリマット側のビット線Ｇ−ＢＬＲにはデータラッチ回路ＤＬＲのデータを転送する。書き込み非選択メモリマット側のビット線を全て０．５Ｖにプリチャージする（Ｓｔｅｐ２）。前記データ転送は、Ｍ２５Ｒによるビット線ディスチャージの後、Ｍ２６Ｒ，Ｍ２７Ｒによる選択的なプリチャージによって行なわれる。更に詳しく説明すれば、非選択メモリマット側のビット線Ｇ−ＢＬＬがトランジスタＭ２４Ｌを介して０．５Ｖにプリチャージされ（ａ）、また、データラッチ回路ＤＬＲのラッチデータに従ってＭ２６Ｒ，Ｍ２７Ｒを用いビット線Ｇ−ＢＬＲが０．０Ｖ又は１．０Ｖにプリチャージされる（ｂ）。
【００８５】
Ｓｔｅｐ３では、前記（ａ），（ｂ）の結果に従って、センスラッチ回路ＳＬを活性化してセンスラッチ動作させる。これによってセンスラッチ回路ＳＬの左右の入出力ノードＳＬ（Ｌ），ＳＬ（Ｒ）は図の（ｃ），（ｄ）の状態にされる。
【００８６】
Ｓｔｅｐ４では、ビット線Ｇ−ＢＬＬの電圧は（ｃ）の結果に従って（ｅ）の電圧を採り、また、他方のビット線Ｇ−ＢＬＲは論理値“０”にクリアされる。
【００８７】
Ｓｔｅｐ５では、データラッチ回路ＤＬＬの論理値“１”のラッチデータによってトランジスタＭ２６Ｌをオン動作させ、トランジスタＭ２７Ｌ，Ｍ２６Ｌを介して、論理値“１”をラッチするデータラッチ回路ＤＬＬに対応されるビット線Ｇ−ＢＬＬを０Ｖにディスチャージする（ｇ）。この時の電圧ＦＰＣは接地電圧にされている。また、センスラッチ回路ＳＬの双方の入出力ノードＳＬ（Ｌ），ＳＬ（Ｒ）を、トランジスタＭ５Ｌ，Ｍ５Ｒを介して論理値“０”にクリアする（ｈ）。
【００８８】
Ｓｔｅｐ６では選択メモリマット側のビット線Ｇ−ＢＬＲを０．５Ｖにプリチャージする（ｉ）。そしてＳｔｅｐ７で、トランジスタＭ２２Ｒ，Ｍ２２Ｌをオン動作させて、センスラッチ回路ＳＬをセンス動作させると、センスラッチ回路ＳＬの選択メモリマット側の入出力ノードＳＬ（Ｒ）は、データラッチ回路ＤＬＬ，ＤＬＲに“０１”がラッチされている場合にだけ、論理値“０”をラッチする（ｊ）。
【００８９】
Ｓｔｅｐ８では電源ＳＬＰは書き込み阻止電圧として利用される６．０Ｖにされる。センスラッチ回路ＳＬにおいて動作選択メモリマット側の入出力ノードＳＬＲのラッチデータが論理値“１”である場合には６Ｖの電源ＳＬＰがトランジスタＭ２２Ｒを介してビット線Ｇ−ＢＬＲに供給され、入出力ノードＳＬＲのラッチデータが論理値“０”である場合には、当該入出力ノードＳＬＲに接続されるビット線Ｇ−ＢＬＲのレベルは０Ｖを維持する。この０Ｖのビット線にドレインが接続されたメモリセルトランジスタにはドレインとコントロールゲートとの間に書き込み電圧が印加される。この時、書き込み阻止電圧６．０Ｖが印加されているビット線には書き込みに必要な高電界が発生しない。
【００９０】
書き込み電圧の印加後は、Ｓｔｅｐ９に示されるように、動作選択メモリマット側の全てのビット線Ｇ−ＢＬＲが１．０Ｖにプリチャージされ、動作非選択メモリマット側の全てのビット線Ｇ−ＢＬＬが０．５Ｖにディスチャージされる。この時、センスラッチ回路ＳＬには、書き込み時のデータラッチ処理でラッチされた論理値のデータが保持されている。図１６に説明ではベリファイ処理ＷＳ１３の前にもデータラッチ処理ＷＳ１２が介在されているが、これは、書込み電圧印加前のデータラッチ処理ＷＳ１０とは別個に改めてデータラッチ処理を行うことを必ずしも意味するものではない。データラッチ処理ＷＳ１２は書き込み電圧印加毎のデータラッチ処理ＷＳ１０で置き換えることができる。図２７の処理はそうなっている。
【００９１】
Ｓｔｅｐ１０では、ベリファイ電圧ＶＷＶ３によってメモリセルの選択動作が行われ、メモリセルの閾値電圧がベリファイ電圧ＶＷＶ３以上に達していない場合にはそのメモリセルのビット線Ｇ−ＢＬＲが０．０Ｖにディスチャージされる。その後、Ｓｔｅｐ１１では、動作選択メモリマット側において、書込み非選択メモリセルのビット線Ｇ−ＢＬＲが１．０Ｖにプリチャージされる。即ち、書込み非選択メモリセルに対応されるセンスラッチ回路ＳＬの入出力ノードは論理値“１”にされており、この論理値“１”をゲートに受けるトランジスタＭ２０Ｒがオン動作され、動作電源ＦＰＣからビット線Ｇ−ＢＬＲに１．０Ｖが供給される。従って、書き込み対象メモリセルの閾値電圧が目標電圧に到達していれば、動作選択メモリマットの全てのビット線Ｇ−ＢＬＲは論理値“１”にされる。Ｓｔｅｐ１２では、センスラッチ回路ＳＬの入出力ノードがクリアされた後、センスラッチ回路ＳＬにビット線の状態をラッチさせ、前記オール判定が行われる。オール判定の後、ビット線Ｇ−ＢＬＲ，Ｇ−ＢＬＬ及びセンスラッチ回路ＳＬの双方の入出力ノードが接地電位にクリアされる（Ｓｔｅｐ１３）。
【００９２】
前記“００”書込み処理の詳細な一例は図２８に示され、前記“１０”書込み処理の詳細な一例は図２９に示されている。それら処理内容はデータラッチ処理の点で“０１”書き込み処理と相違するだけであり、その相違点は図２１の演算論理から容易に理解可能であるから、それらに対する詳細な説明は省略する。
【００９３】
前記“１１”ワードディスターブ検出処理の一例は図３０に示される。この処理はＳｔｅｐ３８〜Ｓｔｅｐ４３の“１１”ワードディスターブデータラッチ処理と、Ｓｔｅｐ４４〜Ｓｔｅｐ４８の“１１”ワードディスターブ検出処理とに大別される。“１１”ワードディスターブデータラッチ処理は前述のデータラッチ処理と類似であり、図２１で説明した演算論理を実現する具体的な処理である。また、“１１”ワードディスターブ検出処理は図２７で説明した“０１”書き込みベリファイ処理と類似であり、ベリファイ電圧ＶＷＶ３に代えてワードディスターブ検出電圧ＶＷＤＳを用いる点などで相違されるだけであるから、その詳細な説明は省略する。
【００９４】
前記“１０”エラティック検出処理の詳細は図３１に例示され、“００”エラティック検出処理の詳細は図３２に例示されている。それら夫々の処理は、エラティックデータラッチ処理と、エラティック検出処理に大別され、エラティックデータラッチ処理は前述のデータラッチ処理と類似であり、図２１で説明した演算論理を実現する具体的な処理である。エラティック検出処理は図２７で説明した“０１”書き込みベリファイ処理と類似であり、ベリファイ電圧ＶＷＶ３に代えてエラティック検出電圧ＶＷＥ１，ＶＷＥ２を用いる点などで相違されるだけであるから、その詳細な説明は省略する。
【００９５】
《追加書き込み動作》
図１５には追加書込み動作のフローチャートも併せて示されている。追加書込み動作は前記“０１”書き込み処理ＴＳ１に至るまでの処理が書き込み動作とは相違される。追加書き込み動作もワード線を一単位とするセクタ書き込みとされる。フラッシュメモリは追加書込みコマンドを受け付けると、次の入力をセクタアドレスとして取り込み、セクタアドレス取り込みの後の入力を書き込みデータとしてデータラッチ回路ＤＬＬ，ＤＬＲに取り込む（ＷＳ３）。取り込まれるセクタアドレスは、Ｘアドレスであり、これによって、書き込み高電圧を印加する１本のワード線を選択することになる。書き込みデータの取り込みは、Ｙアドレスカウンタ１２を初期値から漸次インクリメントしながらバイト単位で、データラッチ回路ＤＬＬ，ＤＬＲに対して行われる。例えば、図６に示されるように、一つのセンスラッチ回路アレイＳＬＡに関する一対のメモリマットＭＭＬ，ＭＭＲに割り当てられたデータラッチ回路アレイＤＬＬＡ，ＤＬＲＡに、書き込みデータがラッチされる。
【００９６】
書き込みデータをラッチした後、論理合成処理ＷＳ４及び消し戻し処理ＷＳ５が行なわれ、その後で前記“０１”書き込み処理ＴＳ１乃至エラティック／ディスターブ検出処理ＴＳ４が行なわれる。
【００９７】
図２３には追加書き込みの概念が示される。追加書き込みにおいて書込み電圧を印加可能なメモリセルは消去状態のメモリセルとされる。図２３にはメモリセルの記憶情報とデータラッチ回路ＤＬＬ，ＤＬＲのラッチデータ（ビット線接続側入出力ノードの論理値）との様子が示されている。
【００９８】
図２３の（Ａ）に示されるように、書き込み状態のメモリセルに対しては書き込みを禁止とし、入力データを“１１”に制限している。消去状態のメモリセル（データ“１１”を格納している）に対してだけ書き込みを許容している。したがって、書き込み状態のメモリセルに対応するデータラッチ回路ＤＬＲ，ＤＬＬにはデータ“１１”が入力され、消去状態のメモリセルに対応するデータラッチ回路ＤＬＲ，ＤＬＬには所望の書き込みデータ“０１”、“００”、“１０”、“１１”が入力される。
【００９９】
前記論理合成処理では、図２３の（Ｂ）に示されるように、データラッチ回路ＤＬＬ，ＤＬＲに入力した追加書き込みデータとメモリセルから読み出したデータとに基づいて、書き込み状態の不揮発性メモリセルには同じ書き込み状態を、また、消去状態の不揮発性メモリセルには追加書込みデータで指示される書き込み状態を、プログラムするためのデータを論理合成処理し、論理合成処理によって得られたデータが前記データラッチ回路ＤＬＲ，ＤＬＬにラッチされる。そして、図２３の（Ｃ）に例示されるように、データタッチ回路ＤＬＲ，ＤＬＬにラッチされたデータに基づい書き込み処理が行われる。
【０１００】
図１７には前記論理合成処理の詳細なフローチャートが例示される。論理合成処理の最初は下位ビットの合成である。即ち、ワード線電圧ＶＲＷ３による読み出し（ＷＳ２０）を行ってセンスラッチ回路にラッチさせ、更にワード線電圧ＶＲＷ１による読み出し（ＷＳ２１）を行い、ＷＳ２０による読み出し結果とＷＳ２１による読み出し結果とに対する演算１（排他的論理和若しくは排他的負論理和演算）を行って、書き込み状態のメモリセルから読み出した情報の下位ビットを判定する（ＷＳ２２）。そして、データラッチ回路に入力された書き込みデータと前記演算１で演算された結果とに対して演算2（論理和演算）を行い、論理合成された追加書き込みデータの下位ビットを決定する。その結果を、データラッチ回路ＤＬＲに転送してラッチさせる（ＷＳ２４）。上位ビットの合成では、ワード線電圧ＶＲＷ２による読み出し（ＷＳ２５）を行ってセンスラッチ回路にラッチさせる。そして、データラッチ回路に入力されている書き込みデータと前記ＷＳ２５の読み出し結果とに対して演算３（排他的論理和若しくは排他的負論理和演算）を行い（ＷＳ２６）、論理合成された追加書込みデータの上位ビットを決定する。その結果を、データラッチ回路ＤＬＬに転送してラッチさせる（ＷＳ２７）。
【０１０１】
図２４には前記論理合成処理ＷＳ４によって得られる下位ビット及び上位ビットの内容を論理式によって示してある。同図において、／は論理反転符号（それが付されたデータが論理反転されることを意味する符号）として用いている。図面上では○の中に＋を付した記号を排他的論理和記号として用いており、明細書中では‘EXOR’を排他的論理和記号として用いる。記号・は論理積記号として用いている。下位ビットはａ０・／（ｂ１‘EXOR’ｂ３）、上位ビットは／ａ１‘EXOR’／ｂ２によって得られる。ａ０はデータラッチ回路ＤＬＲにラッチされた追加書き込みデータの下位ビット、ａ１はデータラッチ回路ＤＬＬにラッチされた追加書き込みデータの上位ビット、ｂ１はＶＲＷ１によってメモリセルから読み出したデータ、ｂ２はＶＲＷ２によってメモリセルから読み出したデータ、ｂ３はＶＲＷ３によってメモリセルから読み出したデータである。
【０１０２】
図２５には追加書込み処理によって図２４の結果を得るための動作を論理的に示してある。同図においてセンスラッチ回路ＳＬ、データラッチ回路ＤＬＬ，ＤＬＲの左右には夫々の入出力ノードの値が示されている。同図においてＶＲＷ３読み出しによる読み出し結果はセンスラッチ回路ＳＬに保持され、ＶＲＷ１読み出し結果はビット線Ｇ−ＢＬＲに保持される。演算１ではセンスラッチ回路ＳＬのラッチデータｂ３とビット線Ｇ−ＢＬＲのデータに対して排他的論理和ｂ１‘EXOR’ｂ３が採られる。演算２では、追加書き込みデータの下位ビットａ０と前記演算１の結果との論理和が取られ、これが、論理合成された追加書き込みデータの下位ビットとしてデータラッチ回路ＤＬＲにラッチされる。論理和／（／ａ０＋（ｂ１‘EXOR’ｂ３））は、式の変形を介することによって、ａ０・／（ｂ１‘EXOR’ｂ３）と等価である。次に、ＶＲＷ２読み出しによる読み出しデータ／ｂ２，ｂ２はセンスラッチ回路ＳＬに保持され、データ／ｂ２はビット線Ｇ−ＢＬＬに転送され、演算３にて追加書込みデータ／ａ１と排他的論理和が採られ、これが、論理合成された追加書き込みデータの上位ビットとしてデータラッチ回路ＤＬＬにラッチされる。
【０１０３】
図３３及び図３４には追加書き込み処理の更に詳細な動作フローチャートが示される。同図の表現形式は図２６と同じである。尚、図２５に記載のＳｔｅｐの番号は図３３及び図３４に記載のＳｔｅｐ番号の処理対応される。
【０１０４】
先ず、データラッチ回路ＤＬＬ，ＤＬＲに２ビットの書込みデータがラッチされる（Ｓｔｅｐ１）。図にはメモリセルの記憶情報と追加書き込みデータとの７通り全ての組合わせ（図２３で説明した組合わせ）について記載されている。この時の非選択メモリマット側データラッチ回路ＤＬＬの入力データは通常書き込みの場合とは論理値反転されている。これは、後の処理ステップ数を削減するためである。Ｓｔｅｐ２ではデータを読み出すために、動作選択メモリマット側のビット線Ｇ−ＢＬＲに１Ｖ、動作非選択メモリマット側のビット線Ｇ−ＢＬＬにリファレンス用の０．５Ｖをプリチャージする。Ｓｔｅｐ３では“０１”データの閾値電圧と“００”データの閾値電圧との間の電圧ＶＲＷ３をワード線選択レベルとしてメモリセルのデータ読み出しを行う。“０１”データ以外のデータの閾値電圧分布を有するメモリセルのビット線がディスチャージされる。その結果は、センスラッチ回路ＳＬでセンスされてラッチされる（Ｓｔｅｐ４）。
【０１０５】
次に、Ｓｔｅｐ５でビット線Ｇ−ＢＬＲ，Ｇ−ＢＬＬをディスチャージした後、動作選択メモリマット側のビット線Ｇ−ＢＬＲに１Ｖ、動作非選択メモリマット側のビット線Ｇ−ＢＬＬにリファレンス用の０．５Ｖをプリチャージする。そして、Ｓｔｅｐ６では“１０”データの閾値電圧と“１１”データの閾値電圧との間の電圧ＶＲＷ１をワード線選択レベルとしてメモリセルのデータ読み出しを行う。“１１”データの閾値電圧分布を有するメモリセルのビット線がディスチャージされる。その結果は、センスラッチ回路ＳＬでセンスされてラッチされる（Ｓｔｅｐ４）。そして、Ｓｔｅｐ７では、センスラッチ回路ＳＬの入出力ノードＳＬＲの値とビット線Ｇ−ＢＬＲの値との排他的論理が採られる。排他的論理は、センスラッチ回路ＳＬの入出力ノードＳＬＲの値が“１”のときにトランジスタＭ２０Ｒがオン動作して、“１”のビット線Ｇ−ＢＬＲがＦＰＣに向けて“０”にディスチャージされるか否かによって行なわれる。そのようなディスチャージは図３３の（ａ）で生ずる。これにより、メモリセルから読み出したデータの下位ビットが決定され、これはＳｔｅｐ８でセンスラッチ回路ＳＬにラッチされる。
【０１０６】
次に、Ｓｔｅｐ９でビット線Ｇ−ＢＬＲ，Ｇ−ＢＬＬがディスチャージされた後、Ｓｔｅｐ１０にて、論理合成された追加書き込みデータの下位ビットを生成する。即ち、センスラッチ回路ＳＬにラッチされているデータと、動作選択側メモリマットのデータラッチ回路ＤＬＲのラッチデータとをビット線Ｇ−ＢＬＲに転送することで、前記メモリセルから読み出したデータの下位ビットと、データラッチ回路ＤＬＲに初期ロードされた追加書き込みデータの下位ビットとの論理和が得られる。この論理和結果は、論理合成処理された追加書き込みデータの下位ビットとされる。Ｓｔｅｐ１１でセンスラッチ回路ＳＬ及びデータラッチ回路ＤＬＲがクリアされた後、Ｓｔｅｐ１２で前記ビット線Ｇ−ＢＬＲ上の論理合成処理された追加書き込みデータの下位ビットがデータラッチ回路ＤＬＲにラッチされ、次の動作のためにＳｔｅｐ１３でビット線Ｇ−ＢＬＲがクリアされる。クリアとは接地電圧若しくは“０”へのディスチャージである。
【０１０７】
次の動作は上位ビットの合成処理である。先ず、Ｓｔｅｐ１４ではデータを読み出すために、動作選択メモリマット側のビット線Ｇ−ＢＬＲに１Ｖ、動作非選択メモリマット側のビット線Ｇ−ＢＬＬにリファレンス用の０．５Ｖをプリチャージする。Ｓｔｅｐ１５では“１０”データの閾値電圧と“００”データの閾値電圧との間の電圧ＶＲＷ２をワード線選択レベルとしてメモリセルのデータ読み出しを行う。“１１”データと“１０”データの閾値電圧分布を有するメモリセルのビット線がディスチャージされる。その結果は、Ｓｔｅｐ１６において、センスラッチ回路ＳＬでセンスされラッチされる。
【０１０８】
次に、Ｓｔｅｐ１７でビット線Ｇ−ＢＬＲ，Ｇ−ＢＬＬをディスチャージした後、Ｓｔｅｐ１８で、センスラッチ回路ＳＬの非選択メモリマット側入出力ノードＳＬＬの値をビット線Ｇ−ＢＬＬに転送する。そして、Ｓｔｅｐ１９で、データラッチ回路ＤＬＬの値とビット線Ｇ−ＢＬＬの値との排他的論理が採られる。排他的論理は、データラッチ回路ＤＬＬの入出力ノードＤＬＬＲの値が“１”のときにトランジスタＭ２６Ｌがオン動作して、“１”のビット線Ｇ−ＢＬＬがＦＰＣに向けて“０”にディスチャージされるか否かによって行なわれる。そのようなディスチャージは図３４の（ｂ）で生ずる。これにより、ビット線Ｇ−ＢＬＬには、前記メモリセルから読み出したデータの上位ビットと、データラッチ回路ＤＬＬに初期ロードされた追加書き込みデータの上位ビットとの排他的論理和が得られる。この排他的論理和結果は、論理合成処理された追加書き込みデータの上位ビットとされる。Ｓｔｅｐ２０でセンスラッチ回路ＳＬ及びデータラッチ回路ＤＬＬがクリアされた後、Ｓｔｅｐ２１で前記ビット線Ｇ−ＢＬＬ上の論理合成処理された追加書き込みデータの上位ビットがデータラッチ回路ＤＬＬにラッチされ、次の動作のためにＳｔｅｐ２２でビット線Ｇ−ＢＬＬがクリアされる。
【０１０９】
論理合成処理された追加書き込みデータの上位及び下位ビットがデータラッチ回路ＤＬＬ、ＤＬＲにラッチされた後、書き込み対象セクタに対する消し戻しが行なわれ（Ｓｔｅｐ２３）、その後で、当該データラッチ回路ＤＬＬ、ＤＬＲにラッチされたデータを用いた書き込み処理が行われる。書き込み処理は図２７のＳｔｅｐ２に繋がる。前記消し戻しは、ワードディスターブによる影響（この例では閾値電圧の不所望上昇）を回避するために、書き込み対象セクタ内の全てのメモリセルの閾値電圧を下げるための消去動作の一種である。通常の消去動作は消去対象とされるメモリセルの全てが一定に閾値電圧以下になるまで、消去電圧の印加と消去ベリファイとを繰り返す処理であるが、消し戻し処理の場合には、消去電圧の印加処理を１回だけ行えば所期の目的を達することができる。消去電圧は通常の消去動作と同じでよい。図１８の（Ｅ）には追加書き込み前の閾値電圧分布が示されれ、それに対して消し戻し処理を行った後の閾値電圧分布が図１８の（Ｆ）に例示されている。
【０１１０】
図３６乃至図３９には追加書き込みにおける論理合成処理の動作波形図の一例が示される。
【０１１１】
《消去動作》
図１９には消去動作の一例が示される。特に制限されないが、消去動作もセクタを最小単位として行うことができる。フラッシュメモリは消去コマンドを受け付けると、次の入力をセクタアドレスとして取り込む。取り込まれるセクタアドレスは、Ｘアドレスであり、これによって、消去電圧を印加する１本のワード線を選択することになる。消去動作が指定されると、最初に消去ベリファイ動作（消去ベリファイ１）が行われる（ＥＳ１）。消去状態のセクタに対して消去が指定されたとき、無駄な動作を省いて消去時間を短縮できる。消去されていない場合には、消去対象セクタに消去電圧が印加され（ＥＳ２）、それに対して消去ベリファイ動作（消去ベリファイ２）が行われる（ＥＳ３）。消去電圧の印加処理は消去ベリファイがパスするまで（閾値電圧がＶＥＶ以下になるまで）繰り返される。消去ベリファイがパスしたときは、“１１”エラティック検出が行なわれる（ＥＳ４）。エラティック検出がフェイルした場合、書き込みビットをセットし（ＥＳ５）、書き込みベリファイ（ＥＳ７）がパスするまで選択書き込みを行い（ＥＳ６）、書き込みベリファイ（ＥＳ７）がパスした後は、更に当該書き込みに対する“１１”エラティック検出を行う（ＥＳ８）。“１１”エラティック検出がフェイルしたときは、“１１”エラティック検出回数が規定回数になるまで、消去動作を最初からやり直す。
【０１１２】
図２０の（Ａ）には書き込み状態に対する消去ベリファイ処理のベリファイ電圧ＶＥＶと消去動作による閾値電圧分布が示されている。
【０１１３】
前記エラティック検出（ＥＳ４）によって過消去が検出されたとき、ＥＳ５〜ＥＳ７の処理はその過消去状態を修正するデプリート防止処理とされる。デプリート防止処理による閾値電圧分布の変化の一例が図２０の（Ｂ）に示されている。ＥＳ８で示されるエラティック検出はＥＳ６の書き込みによるワード線ディスターブによる閾値電圧の不所望な上昇を検出するものであり、ディスターブによる閾値電圧異常を検出したときは、消去電圧の印加からやり直す。
【０１１４】
図３５には消去処理の更に詳細な動作フローチャートが示される。同図の表現形式は図２６と同じである。同図において「１１」は消去電圧印加によって閾値電圧がＶＥＶ以下にされるメモリセルを想定しており、また、「１１下」は閾値電圧がＶＷＶ０以下にされるメモリセル、即ち、デプリート防止のための書き戻し処理の対象とされるメモリセルを想定している。
【０１１５】
前記消去ベリファイ１においては、先ず、動作選択メモリマット側のビット線Ｇ−ＢＬＲに１Ｖ、動作非選択メモリマット側のビット線Ｇ−ＢＬＬにリファレンス用の０．５Ｖをプリチャージする（Ｓｔｅｐ１）。そしてベリファイ電圧ＶＥＶを例えば２．０Ｖとして動作選択メモリマット側のメモリセルを選択する。選択されたメモリセルが消去状態でなければ、動作選択メモリマット側のビット線はディスチャージされない（Ｓｔｅｐ２）。この状態をセンスラッチ回路ＳＬでセンスし、オール判定を行う（Ｓｔｅｐ３）。図の例は、消去されていない場合を示してある。オール判定の後、ビット線Ｇ−ＢＬＲ，Ｇ−ＢＬＬ及びセンスラッチ回路ＳＬをクリアする（Ｓｔｅｐ４）。前記消去ベリファイ１の判定結果が消去未完であれば、消去対象セクタのメモリセルに消去電圧を印加する（Ｓｔｅｐ５）。
【０１１６】
消去ベリファイ２では、先ず、動作選択メモリマット側のビット線Ｇ−ＢＬＲに１Ｖ、動作非選択メモリマット側のビット線Ｇ−ＢＬＬにリファレンス用の０．５Ｖをプリチャージする（Ｓｔｅｐ６）。そしてベリファイ電圧ＶＥＶを例えば２．０Ｖとして動作選択メモリマット側のメモリセルを選択する。選択されたメモリセルが消去状態であば、動作選択メモリマット側のビット線はディスチャージされる（Ｓｔｅｐ７）。この状態をセンスラッチ回路ＳＬでセンスし、オール判定を行う（Ｓｔｅｐ８）。図の例は、消去状態にされた場合を示してある。オール判定の後、ビット線Ｇ−ＢＬＲ，Ｇ−ＢＬＬ及びセンスラッチ回路ＳＬをクリアする（Ｓｔｅｐ９）。
【０１１７】
次に、“１１”エラティック検出が行なわれる。先ず、動作選択メモリマット側のビット線Ｇ−ＢＬＲに１Ｖ、動作非選択メモリマット側のビット線Ｇ−ＢＬＬにリファレンス用の０．５Ｖをプリチャージする（Ｓｔｅｐ１０）。そしてエラティック検出電圧ＶＷＶ０を例えば１．２Ｖとして動作選択メモリマット側のメモリセルを選択する。選択されたメモリセルが過消去状態であば、そのビット線はディスチャージされる（Ｓｔｅｐ１１）。この状態をセンスラッチ回路ＳＬでセンスし、オール判定を行う（Ｓｔｅｐ１２）。
【０１１８】
図の例は、（ａ）の部分でディスチャージが行なわれているから、Ｓｔｅｐ１２のオール判定結果はフェイルである。その場合にはデプリート防止のための書き込み処理が行われる。この書き込み処理における書き込み電圧印加の可否は、Ｓｔｅｐ１２でセンスラッチ回路ＳＬにラッチされた値によって決定される。即ち、Ｓｔｅｐ１２のセンスラッチ動作は図１９の前記書き込みビットセット処理（ＥＳ５）の一例として位置付けられる。Ｓｔｅｐ１３では、センスラッチ回路ＳＬの動作選択メモリマット側の入出力ノードＳＬＲが論理値“１”のビット線に書き込み阻止電圧（６．０Ｖ）が与えられて、選択書き込みが行なわれる（Ｓｔｅｐ１３）。次いで、ベリファイのために、動作選択メモリマット側のビット線Ｇ−ＢＬＲに１Ｖ、動作非選択メモリマット側のビット線Ｇ−ＢＬＬにリファレンス用の０．５Ｖをプリチャージする（Ｓｔｅｐ１４）。そして書き込みベリファイ電圧ＶＷＶ０を例えば１．２Ｖとして動作選択メモリマット側のメモリセルを選択する。選択されたメモリセルが過書き込み状態であば、そのビット線はディスチャージされる（Ｓｔｅｐ１５）。この状態をセンスラッチ回路ＳＬでセンスし、オール判定を行う（Ｓｔｅｐ１６）。
【０１１９】
最後に、“１１”ワードディスターブによる“１１”エラティック検出を行うために、動作選択メモリマット側のビット線Ｇ−ＢＬＲに１Ｖ、動作非選択メモリマット側のビット線Ｇ−ＢＬＬにリファレンス用の０．５Ｖをプリチャージする（Ｓｔｅｐ１７）。そしてディスターブ検出電圧ＶＷＤＳを例えば２．３Ｖとして動作選択メモリマット側のメモリセルを選択する。選択されたメモリセルの閾値電圧がディスターブ検出電圧ＶＷＤＳ以下であれば、そのビット線はディスチャージされる（Ｓｔｅｐ１８）。この状態をセンスラッチ回路ＳＬでセンスし、オール判定を行う（Ｓｔｅｐ１９）。Ｓｔｅｐ１９の例は、ディスターブの影響を受けていない場合であり、図１９の前記“１１”エラティック検出ＥＳ８がパスした状態に相当する。最後にＳｔｅｐ２０でセンスラッチ回路ＳＬ及びビット線Ｇ−ＢＬＬ，Ｇ−ＢＬＲがクリアされる。
【０１２０】
図１２には以上説明したフラッシュメモリの動作態様毎の各種電圧条件がまとめて図示されている。図１２において、“１１”データの読み出しワード線電圧は２．４Ｖ、“１０”データの読み出しワード線電圧は３．２Ｖ、“００”データの読み出しワード線電圧は４．０Ｖである。“１０”データ書込みワード線電圧は１５．１Ｖ、“００”データ書込みワード線電圧は１５．８Ｖ、“０１”データ書込みワード線電圧は１７．０Ｖである。“１０”データベリファイワード線電圧は２．８Ｖ、“００”データベリファイワード線電圧は３．６Ｖ、“０１”データベリファイワード線電圧は４．５Ｖである。“１１”ワードディスターブ検出電圧は２．３Ｖ、“１０”エラティック検出電圧は３．１Ｖ、“００”エラティック検出電圧は３．９Ｖである。
【０１２１】
《フラッシュメモリーカード》
図４０には前記フラッシュメモリ１を用いたファイルメモリシステムの一例ブロック図が示されている。１９０で示されるものは、特に制限されないが、ＰＣカード化されたフラッシュメモリカードであり、ＡＴＡ（AT Attachment）カードの一種とされる。このフラッシュメモリカード１９０は特に制限されないがＩＤＥ（Integrated Device Electronics）に準拠した標準バス１９１を介してパーソナルコンピュータ等のコンピュータ１９９にコネクタ１９０Ａを介して着脱自在に装着可能にされる。
【０１２２】
フラッシュメモリカード１９０は、バスインタフェース部１９２、ライトバッファ１９３、ＥＣＣ回路１９４、マイクロコンピュータ１９５、フラッシュメモリ１及び管理テーブルメモリ１９７を有し、それらは内部バス１９８に共通接続されている。
【０１２３】
前記バスインタフェース部１９２はＡＴＡカード等の仕様に準拠するように標準バス１９１との間でのインタフェース制御を行う。ライトバッファ１９３は標準バス１９１から供給される書込みデータを一時的に蓄えるデータバッファであ、フラッシュメモリ１にはライトバッファ１９３に蓄えられたデータが書き込まれる。前記ＥＣＣ回路１９４はフラッシュメモリ１に格納されたデータの精度を向上させるためのエラー検出及びえら訂正機能を有する回路である。前記管理テーブルメモリ１９７は例えばフラッシュメモリやＥＥＰＲＯＭのような電気的に書き換え可能な半導体メモリによって構成され、セクタ管理テーブルなどが形成されている。前記マイクロコンピュータ１９５はフラッシュメモリカード１９０に対するアクセス要求に従ってカード内部を全体的に制御し、例えばフラッシュメモリ１に対する動作の指示や前記コマンドを発行してフラッシュメモリ１をアクセス制御したり管理テーブルメモリ１９７を制御する。
【０１２４】
以上説明したフラッシュメモリ、メモリカード、データ処理システムによれば、以下の作用効果を得ることができる。
【０１２５】
〔１〕外部から与えられる書込みデータをデータラッチ回路ＤＬＬ，ＤＬＲにラッチし、ラッチした書込みデータが多値のどの閾値に対応するかは複数段階の書込み動作毎に判定してその判定結果である書込み情報をセンスラッチ回路ＳＬにラッチさせ、センスラッチＳＬにラッチされた書込み情報に従って、多値の閾値電圧をメモリセルに設定するための書込み動作を段階的に行なう。よって、書き込み動作が終了しても、データラッチ回路ＤＬＬ，ＤＬＲには、当初外部から供給された書込みデータが残っている。したがって、前記ワードディスターブ検出若しくはエラティック検出の結果により、メモリセルＭＣに対する多値情報の書込み動作を再度行なう場合にも書込みデータを再度外部から受け取ることを要しない。
【０１２６】
〔２〕フラッシュメモリ１は、追加書き込みデータの入力ＷＳ３、メモリセルから読み出したデータと追加書き込みデータとの論理合成処理ＷＳ４、消し戻しＷＳ５、及び書き込みＴＳ１〜ＴＳ４、を経て追加書き込みを行なう。論理合成処理ＷＳ４は、データラッチ回路ＤＬＲ，ＤＬＬに入力した追加書き込みデータとメモリセルＭＣから読み出したデータとに基づいて、書き込み状態の不揮発性メモリセルには同じ書き込み状態を、また、消去状態の不揮発性メモリセルには追加書込みデータで指示される書き込み状態を、プログラムするためのデータを生成し、生成されたデータを前記データラッチ回路ＤＬＲ，ＤＬＬにラッチさせる。したがって、追加書き込み動作が終了しても、データラッチ回路ＤＬＲ，ＤＬＬには、論理合成処理されたデータが残る。書込み動作の完了まで論理合成処理の結果データをデータラッチ回路ＤＬＲ，ＤＬＬに保持すれば、そのラッチデータを、書き込み異常に対して再利用可能にでき、追加書込み動作を再度行なう場合に書込みデータを再び外部から受け取ることを要しない。したがって、フラッシュメモリ１をアクセス制御するプロセッサ等は、フラッシュメモリに対する書き込み動作の後、しばらくの間、書き込みデータをワークメモリなどに保持しておかなくてもよく、フラッシュメモリ１のメモリアクセス若しくはメモリアクセスを伴うデータ処理効率を向上させることができる。
【０１２７】
〔３〕前記論理合成処理によって得られたデータをデータラッチ回路ＤＬＲ，ＤＬＬにラッチした後、データラッチ回路ＤＬＲ，ＤＬＬにラッチされた論理合成処理結果のデータに従って不揮発性メモリセルに書き込みを行なう前に、当該書込み動作の対象とされる不揮発性メモリセルに対して予め消去動作（消し戻し、弱い消去）を行なうことにより、追加書込みであっても、追加書込み直前のメモリセルの状態は概ね消去状態に揃えられるから、書換え耐性の範囲で追加書き込みの回数制限を撤廃でき、追加書込みされたデータの信頼性を向上させることができる。
【０１２８】
〔４〕書き込み電圧印加による閾値電圧状態が目的閾値電圧状態に到達したか否かの判定を書込み電圧の印加処理毎に毎回前記データラッチ回路ＤＬＬ，ＤＬＲにラッチされているデータを用いて判定するから（ＷＳ１２，ＷＳ１３）、書込みの初期の段階などで書き込みベリファイ動作によって所期の閾値電圧に達したことが誤って判定されても、その不良を確認して再書込み可能になる。
【０１２９】
〔５〕書き込み後にエラティック・ディスターブ検出を実行することにより、書き込みによる閾値電圧分布の異常を検出することができる。
【０１３０】
〔６〕不揮発性メモリセルに多値で情報記憶を行なう場合、前記エラティック・ディスターブ検出において、過書込み状態としてフェイルする確率の高いワードディスターブ検出を先に行なうことにより、フェイルする場合にフェールの状態を検出するまでの処理時間を短縮できる。
【０１３１】
〔７〕消去後、デプリート防止のために過消去状態のメモリセルに対して書き戻しを行うことにより、消去状態のメモリセルの閾値電圧を一定電圧以上に揃えることができる。さらに、前記デプリート防止のための書き戻しを行なった後、ディスターブ検出を行うことにより、閾値電圧の異常を検出することができる。これらにより、消去状態のメモリセルの閾値電圧分布を均一化できる。
【０１３２】
〔８〕消去前に消去ベリファイを行ない、フェイルしたセクタに対してだけ消去を行なうことにより、消去動作の無駄な時間を省くことができる。
【０１３３】
以上本発明者によってなされた発明を実施形態に基づいて具体的に説明したが、本発明はそれに限定されるものではなく、その要旨を逸脱しない範囲において種々変更可能であることは言うまでもない。
【０１３４】
例えば、1個のメモリセルが保有する情報は4値に限定されず、それ以上であってもよい。例えば8値とする場合、ビット線に接続されるデータラッチ回路の数を更に増やせばよい。また、データラッチ処理の演算手法は上記の説明に限定されず、適宜変更可能である。また、メモリマットの数、書込み電圧条件、消去電圧条件、ベリファイ電圧条件なども適宜変更可能である。また、消去状態と書き込み状態は上述の説明とは逆に定義することも可能である。フラッシュメモリのメモリマットはＡＮＤ型に限定されず、ＮＯＲ型、ＤｉＮＯＲ型、ＮＡＮＤ型等の別の構造とすることも可能である。
【０１３５】
また、本発明に係る半導体装置はフラッシュメモリのようなメモリチップに限定されず、フラッシュメモリ内蔵マイクロコンピュータなどのデータ処理用若しくは論理動作用の半導体装置にも広く適用することができる。また、本発明はＥＥＰＲＯＭにも適用可能である。
【０１３６】
【発明の効果】
本願において開示される発明のうち代表的なものによって得られる効果を簡単に説明すれば下記の通りである。
【０１３７】
すなわち、個々のメモリセルに多値の情報を書き込むため外部からデータラッチ回路に供給された書込みデータが書込み動作によっても失われることはない。したがって、書き込み動作が終了しても、データラッチ回路には、当初外部から供給された書込みデータが残っているから、ワードディスターブ検出若しくはエラティック検出の結果により、メモリセルに対する多値情報の書込み動作を再度行なう場合にも書込みデータを再度外部から受け取ることを要しない。
【０１３８】
また、メモリセルに対する多値情報の書込み動作を再度行なう場合に書込みデータを再度外部から受け取ることを要しない。
【０１３９】
メモリセルから読み出したデータと追加書き込みデータとの論理合成を行い、その論理合成結果をデータラッチ回路にラッチして追加書き込みを行うから、追加書き込み動作が終了しても、データラッチ回路には、論理合成処理されたデータが残る。
【０１４０】
追加書き込みを完了するまで前記論理合成結果をデータラッチ回路に保持することにより、エラティック書き込み異常に対して再書き込みする場合に書込みデータを再び外部から受け取ることを要しない。この点でも、半導体装置のメモリアクセス若しくはメモリアクセスを伴うデータ処理効率を向上させることができる。
【０１４１】
追加書き込みのための書き込み電圧印加前に、消し戻し（弱い消去）を行なうことにより書換え耐性の範囲で追加書き込みの回数制限を撤廃できる。
【０１４２】
書き込みベリファイ動作において毎回、データラッチ回路の初期データを用いて判定することにより、書込みの初期の段階などで書き込みベリファイ動作によって所期の閾値電圧に達したことが誤って判定されても、その不良を確認して再書込み可能になる。
【０１４３】
書き込み後にエラティック・ディスターブ検出を実行することにより、閾値電圧分布の異常を検出できる。不揮発性メモリセルに多値で情報記憶を行なう場合、前記エラティック・ディスターブ検出において、過書込み状態としてフェイルする確率の高いワードディスターブ検出を先に行なうことにより、フェイルする場合にフェールの状態を検出するまでの処理時間を短縮できる。
【０１４４】
消去後、デプリート防止のために過消去状態のメモリセルに対して書き戻しを行なって、消去状態のメモリセル閾値電圧を一定電圧以上に揃えることができる。
【０１４５】
前記デプリート防止のための書き戻しを行なった後、ディスターブ検出を行なって閾値電圧の異常を検出することができる。
【０１４６】
消去前に消去ベリファイを行ない、フェイルしたセクタに対して消去を行なうことにより、消去動作の無駄な時間を省くことができる。
【図面の簡単な説明】
【図１】本発明の一例に係る４値フラッシュメモリのビット線周りの回路構成を例示する回路図である。
【図２】本発明の一例に係る４値フラッシュメモリの全体的な構成を例示するブロック図である。
【図３】フラッシュメモリ用のメモリセルトランジスタのデバイス構造の概略を例示する縦断面図である。
【図４】フラッシュメモリのコマンドの一例を示す説明図である。
【図５】ステータスレジスタの各ビット内容と入出力端子I/O0〜I/O7との対応の一例を示す説明図である。
【図６】４値フラッシュメモリのメモリアレイに含まれるデータラッチ回路、ビット線及びセンスラッチ回路の接続関係の一例を示す説明図である。
【図７】データラッチ回路と入出力端子I/O4，I/O0との対応関係の一例を示す説明図である。
【図８】  4値のデータとメモリセルトランジスタの閾値電圧との関係を閾値電圧分布図で示す説明図である。
【図９】セクタ一括消去と書込みの電圧条件の一例を示す説明図である。
【図１０】  4値書込み処理における種々の書き込み態様を例示的に示す説明図である。
【図１１】図１の４値フラッシュメモリの構成をレイアウト的な観点から示したブロック図である。
【図１２】フラッシュメモリの動作態様毎の各種電圧条件を纏めて示した説明図である。
【図１３】４値フラッシュメモリの読み出し動作の一例を示すフローチャートである。
【図１４】フラッシュメモリセルトランジスタの閾値電圧分布に対する読み出しワード線電圧の関係を示した説明図である。
【図１５】４値フラッシュメモリの書き込み動作及び追加書き込み動作の一例を示すフローチャートである。
【図１６】書き込み動作に含まれる“０１”書き込み処理の詳細な一例を示すフローチャートである。
【図１７】追加書き込み動作に含まれる論理合成処理の詳細な一例を示すフローチャートである。
【図１８】“００”書き込み、“１０”書き込み、“０１”書き込み、エラティックディスターブ検出、追加書き込み前、並びに消し戻しの夫々の状態をフラッシュメモリセルトランジスタの閾値電圧分布で示した説明図である。
【図１９】消去動作の一例を示すフローチャートである。
【図２０】消去動作のうける消去電圧印加及びデプリート防止処理の夫々をフラッシュメモリセルトランジスタの閾値電圧分布で示した説明図である。
【図２１】書き込み動作等に含まれるデータラッチ処理の演算内容の一例を論理的に示した説明図である。
【図２２】図２１の演算論理を採用した場合データビットＡ，Ｂの論理値に対する演算結果の論理値を示す説明図である。
【図２３】追加書き込みの概念を示した説明図である。
【図２４】追加書き込み動作に含まれる論理合成処理によって得られる下位ビット及び上位ビットの書き込みデータの内容を論理式によって示した説明図である。
【図２５】追加書込み処理によって図２４の結果を得るための動作を論理的に示した説明図である。
【図２６】フラッシュメモリの読み出し動作を詳細に示した説明図である。
【図２７】“０１”書き込み動作を詳細に示した説明図である。
【図２８】“００”書き込み動作を詳細に示した説明図である。
【図２９】“１０”書き込み動作を詳細に示した説明図である。
【図３０】“１１”ワードディスターブ検出処理を詳細に示した説明図である。
【図３１】“１０”エラティック検出処理を詳細に示した説明図である。
【図３２】“００”エラティック検出処理を詳細に示した説明図である。
【図３３】追加書き込みの下位ビット合成処理を詳細に示した説明図である。
【図３４】追加書き込みの上位ビット合成処理を詳細に示した説明図である。
【図３５】消去動作の詳細を示した説明図である。
【図３６】追加書き込みの論理合成処理の一部を動作波形によって示したタイミング図である。
【図３７】追加書き込みの論理合成処理の一部を図３６に続く動作波形によって示したタイミング図である。
【図３８】追加書き込みの論理合成処理の一部を図３７に続く動作波形によって示したタイミング図である。
【図３９】追加書き込みの論理合成処理の一部を図３８に続く動作波形によって示したタイミング図である。
【図４０】４値フラッシュメモリを用いたファイルメモリシステムのブロック図である。
【図４１】書き込みと書き込みベリファイ時におけるセンスラッチ回路のラッチデータとそれによる動作との関係をまとめて示した説明図である。
【符号の説明】
１  フラッシュメモリ
３  メモリアレイ
１６  データ制御回路
１８  モード制御回路
Ｉ／Ｏ０〜Ｉ／Ｏ７  入出力端子
ＤＬＬ，ＤＬＲ  データラッチ回路
ＤＬＬＡ，ＤＬＲＡ  データラッチ回路アレイ
ＭＭＬ，ＭＭＲ  メモリマット
ＳＬ  センスラッチ回路
ＳＬＡ  センスラッチ回路アレイ
３０Ｌ，３０Ｒ  スイッチ回路・演算回路アレイ
３１Ｌ，３１Ｒ  スイッチ回路・演算回路アレイ
ＭＣ  メモリセル
Ｇ−ＢＬＬ，Ｇ−ＢＬＲ  ビット線
１９０  フラッシュメモリカード
１９０Ａ  コネクタ
１９５  マイクロコンピュータ
【図１】
0004090570.tif 000002
【図２】
0004090570.tif 000003
【図３】
0004090570.tif 000004
【図４】
0004090570.tif 000005
【図５】
0004090570.tif 000006
【図６】
0004090570.tif 000007
【図７】
0004090570.tif 000008
【図８】
0004090570.tif 000009
【図９】
0004090570.tif 000010
【図１０】
0004090570.tif 000011
【図１１】
0004090570.tif 000012
【図１２】
0004090570.tif 000013
【図１３】
0004090570.tif 000014
【図１４】
0004090570.tif 000015
【図１５】
0004090570.tif 000016
【図１６】
0004090570.tif 000017
【図１７】
0004090570.tif 000018
【図１８】
0004090570.tif 000019
【図１９】
0004090570.tif 000020
【図２０】
0004090570.tif 000021
【図２１】
0004090570.tif 000022
【図２２】
0004090570.tif 000023
【図２３】
0004090570.tif 000024
【図２４】
0004090570.tif 000025
【図２５】
0004090570.tif 000026
【図２６】
0004090570.tif 000027
【図２７】
0004090570.tif 000028
【図２８】
0004090570.tif 000029
【図２９】
0004090570.tif 000030
【図３０】
0004090570.tif 000031
【図３１】
0004090570.tif 000032
【図３２】
0004090570.tif 000033
【図３３】
0004090570.tif 000034
【図３４】
0004090570.tif 000035
【図３５】
0004090570.tif 000036
【図３６】
0004090570.tif 000037
【図３７】
0004090570.tif 000038
【図３８】
0004090570.tif 000039
【図３９】
0004090570.tif 000040
【図４０】
0004090570.tif 000041
【図４１】
0004090570.tif 000042