(57)【特許請求の範囲】
【請求項１】
１つのメモリセルに複数ビットを記憶する複数のメモリセルを有し、前記メモリセルが行方向及び列方向にマトリックス状に配置されたメモリセルアレイと、
前記メモリセルの書き込み電圧を含む制御電圧を発生する電圧発生回路と、
前記メモリセルアレイの選択されたメモリセルから読み出されたデータを検知するセンスアンプと、
前記センスアンプへ供給するデータと、前記センスアンプにより読み出されたデータを制御するデータ制御回路とを具備し、
前記データ制御回路は、書き込みデータを検証する書き込みベリファイ動作時、前記メモリセルの閾値電圧が予め設定したベリファイチェックポイントを越えた場合、メモリセルへの書き込みデータを残りの書き込み電圧印加回数を示す回数データに変換し、書き込み電圧印加動作毎に前記回数データを１ビットのみ反転し、回数データの定義を変換することにより減算動作を行い、残りの書き込み電圧の印加回数が０回に達した時点で書き込みを完了させることを特徴とする不揮発性半導体記憶装置。
【請求項２】
前記データ制御回路は、前記書き込みデータ及び変換された前記回数データを記憶する複数の第１のラッチ回路と、
前記第１のラッチ回路に記憶されたデータを変換する変換回路と
を具備することを特徴とする請求項１記載の不揮発性半導体記憶装置。
【請求項３】
前記データ制御回路は、前記メモリセルの閾値電圧が前記ベリファイチェックポイントを越えた場合、フラグデータがセットされる第２のラッチ回路をさらに具備することを特徴とする請求項２記載の不揮発性半導体記憶装置。
【請求項４】
前記メモリセルへの書き込みデータを、残りの書き込み電圧印加回数を示す回数データに変換するためのパラメータを記憶する記憶部をさらに具備することを特徴とする請求項１記載の不揮発性半導体記憶装置。
【請求項５】
前記電圧発生回路は、前記記憶部に記憶されたパラメータに従って、前記データ制御回路の動作を制御する信号を発生することを特徴とする請求項１乃至４のいずれかに記載の不揮発性半導体記憶装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、例えば１つのメモリセルに複数ビットを記憶するＮＡＮＤ型フラッシュメモリに係わり、特に、書き込みデータを変換する不揮発性半導体記憶装置に関する。
【背景技術】
【０００２】
近年、複数の書き込みデータに対応した複数の閾値電圧のうちの１つをメモリセルに設定することにより、１つのメモリセルに複数ビットの情報を記憶させることが可能な多値メモリが開発されている。また、フラッシュメモリにおける書き込み動作は大きく分けて書き込み電圧をメモリセル印加するプログラム動作と、書き込み完了を検証するベリファイ動作とにより構成される。多値メモリの場合、書き込みデータに応じて複数回のプログラム動作、及びベリファイ動作を行う必要がある。
【０００３】
例えば３ビットを記憶可能なメモリセルは、８つの状態のうちの１つを保持する。このため、８つの状態それぞれについて、ベリファイ動作が必要となっている。したがって、全体の書き込み動作において、書き込み電圧を印加するプログラム動作の回数に比べてベリファイ動作の回数が多くなり、書き込みに長時間を要していた（例えば、特許文献１参照）。
【特許文献１】特開２００４−１９２７８９号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
本発明は、メモリセルに複数のビットを書き込む際、書き込み速度を高速化することが可能な不揮発性半導体記憶装置を提供しようとするものである。
【課題を解決するための手段】
【０００５】
本発明の不揮発性半導体記憶装置の態様は、１つのメモリセルに複数ビットを記憶する複数のメモリセルを有し、前記メモリセルが行方向及び列方向にマトリックス状に配置されたメモリセルアレイと、前記メモリセルの書き込み電圧を含む制御電圧を発生する電圧発生回路と、前記メモリセルアレイの選択されたメモリセルから読み出されたデータを検知するセンスアンプと、前記センスアンプへ供給するデータと、前記センスアンプにより読み出されたデータを制御するデータ制御回路とを具備し、前記データ制御回路は、書き込みデータを検証する書き込みベリファイ動作時、前記メモリセルの閾値電圧が予め設定したベリファイチェックポイントを越えた場合、メモリセルへの書き込みデータを残りの書き込み電圧印加回数を示す回数データに変換し、書き込み電圧印加動作毎に前記回数データを１ビットのみ反転し、回数データの定義を変換することにより減算動作を行い、残りの書き込み電圧の印加回数が０回に達した時点で書き込みを完了させることを特徴とする。
【発明の効果】
【０００６】
本発明によれば、メモリセルに複数のビットを書き込む際、書き込み速度を高速化することが可能な不揮発性半導体記憶装置を提供できる。
【発明を実施するための最良の形態】
【０００７】
以下、本発明の実施の形態について、図面を参照して説明する。
【０００８】
図１は、本発明の実施形態に係る不揮発性半導体記憶装置の概略構成を示している。
【０００９】
図１において、メモリセルアレイ１は、１つのメモリセルに例えば３ビットのデータを記憶することが可能なＮＡＮＤ型フラッシュメモリにより構成されている。すなわち、メモリセルアレイ１は、後述するように、複数のビット線と複数のワード線と共通ソース線、及び電気的にデータを書き換え可能でロウ方向、カラム方向に配置された例えばＥＥＰＲＯＭセルからなる複数のメモリセルを含んでいる。ロウデコーダとしてのワード線制御回路２は、メモリセルアレイ１のワード線に接続され、ワード線の選択及び駆動を行う。センスアンプ回路３は、メモリセルアレイ１のビット線に接続され、後述するように、データの読み出し、書き込み機能、及び書き込みデータを残りの書き込み回数に変換する機能を有している。カラムデコーダ４は、アドレスデコーダ７の出力信号に応じて、メモリセルアレイ１のビット線を選択するカラム選択信号を出力する。
【００１０】
入出力制御回路５は、外部から供給される各種コマンド、アドレス信号、及び書き込みデータを受ける。データ書き込み時、書き込みデータは、入出力制御回路５からデータ入出力バッファ６を介してセンスアンプ回路３に供給される。データ読み出し時、センスアンプ回路３に読み出されたデータは、データ入出力バッファ６を介して、入出力制御回路５に供給され、入出力制御回路５から外部に出力される。
【００１１】
入出力制御回路５からデータ入出力バッファ６に供給されたアドレス信号は、アドレスデコーダ７に供給される。このアドレスデコーダ７によりデコードされた信号は、ワード線制御回路２、及びカラムデコーダ４に供給される。
【００１２】
また、入出力制御回路５からデータ入出力バッファ６に供給されたコマンドは、制御信号発生回路８に供給される。制御信号発生回路８には、外部からチップイネーブル信号／ＣＥ、書き込みイネーブル信号／ＷＥ、読み出しイネーブル信号／ＲＥ、アドレスラッチイネーブル信号ＡＬＥ、コマンドラッチイネーブル信号ＣＬＥ等の外部制御信号が供給される。制御信号発生回路８は、動作モードに応じて供給される外部制御信号及びコマンドに基づいて、データ書き込み及び消去のシーケンスを制御する制御信号、及びデータの読み出しを制御する制御信号を発生する。この制御信号は、制御電圧発生回路９、アドレスデコーダ７に供給される。
【００１３】
制御電圧生成回路９は、制御信号生成回路８から供給される各種制御信号に応じて、読み出し電圧、書き込み電圧、ベリファイ電圧、消去電圧など、メモリセルアレイやセンスアンプ回路３、カラムデコーダ４の各種動作に必要な電圧を生成する。
【００１４】
パラメータ記憶部１０は、入出力制御回路５、制御信号発生回路８に接続され、テスト工程で決定されたチップの品質に適したパラメータを記憶する。このパラメータは、後述するように、例えば閾値レベル毎に設定された残りの書き込み電圧印加回数を示す回数データにより構成されている。
【００１５】
図２は、図１に示すメモリセルアレイ１とセンスアンプ回路３の構成例を示している。メモリセルアレイ１は、破線で示すように複数のブロックＢＬＫを含んでいる。これらブロックは消去単位を構成する。各ブロックＢＬＫには複数のＮＡＮＤセルが配置されている。１つのＮＡＮＤセルは、直列接続された例えば３２個のＥＥＰＲＯＭからなるメモリセルＭＣと、選択ゲートトランジスタＳ１、Ｓ２とにより構成されている。選択ゲートトランジスタＳ１はビット線ＢＬ０に接続され、選択ゲートＳ２はソース線ＳＲＣに接続されている。各ロウに配置されたメモリセルＭＣの制御ゲートはワード線ＷＬ０、ＷＬ１、ＷＬ２〜ＷＬ３１に共通接続されている。また、選択ゲートトランジスタＳ１はセレクト線ＳＧＤに共通接続され、選択ゲートトランジスタＳ２はセレクト線ＳＧＳに共通接続されている。
【００１６】
センスアンプ回路３は、複数のセンスアンプユニット（ＳＡＵ）３ａと、複数のデータ制御ユニット（ＤＣＵ）３ｂを有している。各センスアンプユニット３ａは、ビット線ＢＬ０、ＢＬ１、ＢＬ２〜ＢＬｎに接続されている。各データ制御ユニット３ｂは各センスアンプユニット３ａに接続されている。各センスアンプユニット３ａは、データの読み出し時、メモリセルからビット線に読み出されたデータを検知し、保持する。各データ制御ユニット３ｂは、カラム選択信号ＳＥＬ０〜ＳＥＬｎに従って動作するトランジスタを介してデータ入出力バッファに接続されている。
【００１７】
書き込み動作（プログラム動作とも呼ぶ）、読み出し動作、及びプログラムベリファイ動作（ベリファイ動作とも呼ぶ）において、センスアンプユニット３ａに接続されているビット線が選択されるとともに、１本のワード線が選択される。この選択されたワード線に接続されている全てのメモリセルに、書き込み、又は読み出し電圧を印加することにより一斉に書き込み、又は読み出し動作が行われる。
【００１８】
また、データ制御ユニット３ｂは、外部から供給された書き込みデータを保持するとともに、センスアンプユニット３ａから読み出されたデータを保持する。さらに、データの書き込み時、書き込みデータを、書き込み電圧の印加回数に対応する回数データに変換する操作を行う。
【００１９】
尚、図２において、センスアンプユニット３ａは、各ビット線に接続されているが、これに限定されるものではなく、例えば２つのビット線に１つ設けてもよい。また、データ制御回路３ｂは、各センスアンプユニット３ａに接続されているが、これに限定されるものではなく、例えば８つのセンスアンプに対して１つのデータ制御回路３ｂを設け、このデータ制御回路３ｂをセンスアンプユニット３ａに選択的に接続するような構成とすることも可能である。
【００２０】
図３は、センスアンプユニット（ＳＡＵ）３ａの一例を示している。センスアンプユニット３ａは、複数のＰチャネルＭＯＳトランジスタ（以下、ＰＭＯＳと称す）２１、２２、２３と、複数のＮチャネルＭＯＳトランジスタ（以下、ＮＭＯＳと称す）３１、３２、３３、３４、３５、３６、３７と、例えばクロックドインバータ回路により構成されラッチ回路ＬＡＴ１とにより構成されている。
【００２１】
ＰＭＯＳ２１のソースは電源Ｖｄｄが供給されるノードに接続され、ドレインはＮＭＯＳ３１、３２を介してデータ制御ユニット（ＤＣＵ）３ｂに接続される。ＰＭＯＳ２１のゲートには信号ＢＬＣ１が供給され、ＮＭＯＳ３１、３２のゲートには信号ＢＬＣ２、ＢＬＣ３がそれぞれ供給されている。ＮＭＯＳ３１とＮＭＯＳ３２の接続ノードは、ビット線ＢＬに接続されるとともに、ＮＭＯＳ３３、３４を介して接地されている。ＮＭＯＳ３３のゲートは、ラッチ回路ＬＡＴ１のノードＩＮＶに接続され、ＮＭＯＳ３３は、ラッチ回路ＬＡＴ１に保持されたデータにより制御される。さらに、ＮＭＯＳ３４のゲートには、信号ＤＩＳが供給されている。
【００２２】
また、ＰＭＯＳ２２のソースは電源Ｖｄｄが供給されるノードに接続され、ドレインはＰＭＯＳ２３、ＮＭＯＳ３６を介して接地されている。ＰＭＯＳ２２のゲートには信号ＢＬＣ４が供給され、ＰＭＯＳ２３のゲートはＮＭＯＳ３５を介してＰＭＯＳ２１とＮＭＯＳ３１の接続ノードに接続されている。ＮＭＯＳ３５のゲートには信号ＸＸＬが供給され、ＮＭＯＳ３６のゲートにはリセット信号ＲＳＴが供給されている。ＰＭＯＳ２３とＮＭＯＳ３６の接続ノードにはラッチ回路ＬＡＴ１が接続されている。また、ラッチ回路ＬＡＴ１の反転ノードＩＮＶｎはＮＭＯＳ３７を介してデータ制御ユニット３ｂに接続されている。このＮＭＯＳ３７のゲートには信号ＢＬＣ５が供給されている。
【００２３】
上記センスアンプユニットの動作について概略的に説明する。
【００２４】
（書き込み動作）
メモリセルにデータを書き込む場合、先ず、信号ＢＬＣ１、ＢＬＣ４、ＤＩＳがローレベル（以下、Ｌレベルと記す）、リセット信号ＲＳＴが一旦ハイレベル（以下、Ｈレベルと記す）とされ、ラッチ回路ＬＡＴ１がリセットされる。
【００２５】
この後、信号ＢＬＣ２、ＢＬＣ３、ＸＸＬがＨレベルとされ、信号ＢＬＣ４がＬレベルとされて、データ制御ユニット３ｂからデータが取り込まれる。このデータが書き込みを示すＬレベル（“０”）である場合、ＰＭＯＳ２３のゲートがＬレベルとなり、ＰＭＯＳ２３はオン状態となる。このため、ラッチ回路ＬＡＴ１にはＨレベル（“１”）がセットされる。また、データが非書き込みを示すＨレベル（“１”）である場合、ＰＭＯＳ２３がオフ状態となる。このため、ラッチ回路ＬＡＴ１にはＬレベル（“０”）がセットされる。すなわち、データを書き込む場合、ラッチ回路ＬＡＴ１のノードＩＮＶはＨレベルに設定され、非書き込みの場合、ノードＩＮＶはＬレベルに設定される。
【００２６】
次いで、信号ＢＬＣ１、ＢＬＣ３、ＤＩＳ、ＸＸＬがＬレベル、信号ＢＬＣ２がハイレベル（以下、Ｈレベルと記す）とされ、ビット線ＢＬがＨレベルに充電される。この後、信号ＤＩＳがＨレベルに設定される。すると、ラッチ回路ＬＡＴ１のノードＩＮＶが書き込みを示すＨレベルの場合、ＮＭＯＳ３３がオンし、ＮＭＯＳ３３、３４を介してビット線の電荷が放電される。また、ラッチ回路ＬＡＴ１のノードＩＮＶが非書き込みを示すＬレベルの場合、ＮＭＯＳ３３がオフするため、ビット線の電位はＨレベルに保持される。この後、図２に示すビット線とＮＡＮＤセルとを接続する選択ゲートトランジスタＳ１のセレクト線ＳＧＤがＨレベルとされると、ビット線の電位がメモリセルのチャネルに転送される。これと同時に選択されたメモリセルのワード線に書き込み電圧Ｖｐｇｍを印加される。このため、書き込みセルの場合、チャネルがＬレベル（Ｖｓｓ）、ワード線が書き込み電圧Ｖｐｇｍとなり、書き込みが行われる。また、非書き込みセルの場合、チャネルがＨレベル（Ｖｄｄ−Ｖｔｈ：Ｖｔｈは選択ゲートトランジスタの閾値電圧）、ワード線がＶｐｇｍとなるため、書き込みが行われない。
【００２７】
（読み出し動作）
メモリセルからデータを読み出す場合、先ず、信号ＢＬＣ１、ＢＬＣ３、ＤＩＳ、ＸＸＬがＬレベル、信号ＢＬＣ２がＨレベルとされ、ビット線がＨレベルに充電される。この後、信号ＢＬＣ２をＬレベルとして選択ワード線に読み出しレベルが供給される。メモリセルの閾値電圧が読み出しレベルより高い場合、メモリセルはオフ状態であり、ビット線はＨレベルに保持される。また、メモリセルの閾値電圧が読み出しレベルより低い場合、メモリセルはオン状態となり、ビット線の電荷が放電される。このため、ビット線はＬレベルとなる。次いで、信号ＢＬＣ３がＨレベルとされ、ビット線の電位がデータ制御ユニット３ｂに読み出される。
【００２８】
（プログラムベリファイ動作）
書き込み動作後、メモリセルの閾値電圧を検証するプログラムベリファイ動作は、読み出し動作とほぼ同様である。この場合、ビット線をＨレベルに充電した後、選択ワード線に所定のベリファイ電圧が供給される。メモリセルの閾値電圧がベリファイ電圧に達している場合、メモリセルはオフ状態となる。このため、ビット線の電位はＨレベルに保持される。また、メモリセルの閾値電圧がベリファイ電圧に達していない場合、メモリセルはオン状態となる。このため、ビット線の電位はＬレベルとなる。
【００２９】
この状態において、信号ＢＬＣ１、ＢＬＣ２、ＸＸＬがＨレベル、信号ＢＬＣ４、ＢＬＣ３、ＤＩＳ、ＲＳＴがＬレベルとされ、ビット線ＢＬの電位がラッチ回路ＬＡＴ１に保持される。すなわち、メモリセルの閾値電圧がベリファイ電圧に達しており、ビット線ＢＬの電位がＨレベルの場合、ＰＭＯＳ２３がオフ状態となる。このため、ラッチ回路ＬＡＴ１にはＬレベルが保持される。また、メモリセルの閾値電圧がベリファイ電圧に達しておらず、ビット線ＢＬの電位がＬレベルの場合、ＰＭＯＳ２３がオン状態となる。このため、ラッチ回路ＬＡＴ１にはＨレベルが保持される。すなわち、ベリファイをパスした場合、ラッチ回路ＬＡＴ１のノードＩＮＶの電位はＬレベルとなり、ベリファイをパスしない場合、ノードＩＮＶの電位はＨレベルとなる。
【００３０】
また、ラッチ回路ＬＡＴ１の反転ノードＩＮＶｎのデータは、信号ＢＬＣ５をＨレベルとして、ＮＭＯＳ３７をオンした状態において、データ制御ユニット３ｂに転送される。
【００３１】
図４は、データ制御ユニット（ＤＣＵ）３ｂの一例を示している。このデータ制御ユニット３ｂは、例えば４個のデータラッチ回路０ＤＬ、１ＤＬ、２ＤＬ、３ＤＬと、バス４１と、データ形成回路４２を含んでいる。  
バス４１の一端部は、センスアンプユニット３ａに接続され、他端部はデータ入出力バッファに接続されている。
【００３２】
データラッチ回路０ＤＬは、ラッチ回路ＬＡＴ２と、トランスファーゲート４３により構成されている。ラッチ回路ＬＡＴ２は、トランスファーゲート４３を介してバス４１に接続される。トランスファーゲート４３は信号φ及びその反転信号φｎにより制御される。データラッチ回路１ＤＬ、２ＤＬ、３ＤＬは、データラッチ回路０ＤＬと同一構成であり、トランスファーゲートに供給される信号がそれぞれ相違している。したがって、各データラッチ回路０ＤＬ、１ＤＬ、２ＤＬ、３ＤＬは、選択的にバス４１に接続可能とされている。
【００３３】
データ形成回路４２は、ラッチ回路ＬＡＴ３、ＰＭＯＳ５２〜５６、ＮＭＯＳ６１〜７０、及びインバータ回路７１により構成されている。ＰＭＯＳ５１のソースは電源Ｖｄｄが供給されるノードに接続されている。このＰＭＯＳ５１のゲートにはセット信号ＳＥＴ１が供給され、ドレインはラッチ回路ＬＡＴ３に接続されている。さらに、ＰＭＯＳ５１のドレインはＮＭＯＳ６１を介して接地されるとともに、ＮＭＯＳ６２、６３を介して接地されている。ＮＭＯＳ６１のゲートにはリセット信号ＲＳＴ２が供給され、ＮＭＯＳ６２のゲートには、信号ＬＡＴＨが供給されている。ＮＭＯＳ６３のゲートは、入力端がバス４１に接続されたインバータ回路７１の出力端に接続されている。さらに、ＰＭＯＳ５１のドレインは、ＮＭＯＳ６４、６５を介して接地されている。ＮＭＯＳ６４のゲートには信号ＬＡＴＬが供給され、ＮＭＯＳ６５のゲートは、バス４１に接続されている。
【００３４】
電源Ｖｄｄが供給されるノードとバス４１との間には、ＰＭＯＳ５２、５３の直列回路と、ＰＭＯＳ５４、５５の直列回路と、ＰＭＯＳ５６が接続されている。
【００３５】
ＰＭＯＳ５２のゲートには、信号ＢＵＳＨ２が供給され、ＰＭＯＳ５３のゲートはＬＡＴ３のノードＬＡＴｎに接続されている。ＰＭＯＳ５２、５３は、信号ＢＵＳＨ２とＬＡＴ３のノードＬＡＴｎの電位に応じてバス４１をＨレベルに充電する回路である。
【００３６】
ＰＭＯＳ５４のゲートには、信号ＢＵＳＬ２が供給され、ＰＭＯＳ５５のゲートはＬＡＴ３のノードＬＡＴに接続されている。ＰＭＯＳ５４、５５は、信号ＢＵＳＬ２とＬＡＴ３のノードＬＡＴの電位に応じてバス４１をＨレベルに充電する回路である。
【００３７】
ＰＭＯＳ５６のゲートには、セット信号ＳＥＴ２が供給されている。ＰＭＯＳ５６は、セット信号ＳＥＴ２に応じてバス４１をＨレベルに充電する回路である。
【００３８】
バス４１と接地間には、ＮＭＯＳ６６、６７の直列回路と、ＮＭＯＳ６８、６９の直列回路と、ＮＭＯＳ７０が接続されている。
【００３９】
ＮＭＯＳ６６のゲートには、信号ＢＵＳＨ１が供給され、ＮＭＯＳ６７のゲートはＬＡＴ３のノードＬＡＴｎに接続されている。ＮＭＯＳ６６、６７は、信号ＢＵＳＨ１とＬＡＴ３のノードＬＡＴｎの電位に応じてバス４１をＬレベルに放電する回路である。
【００４０】
ＮＭＯＳ６８のゲートには、信号ＢＵＳＬ１が供給され、ＮＭＯＳ６９のゲートはＬＡＴ３のノードＬＡＴに接続されている。ＮＭＯＳ６８、６９は、信号ＢＵＳＬ１とＬＡＴ３のノードＬＡＴの電位に応じてバス４１をＬレベルに放電する回路である。
【００４１】
ＮＭＯＳ７０のゲートには、リセット信号ＲＳＴ２が供給されている。ＮＭＯＳ７０は、リセット信号ＲＳＴ２に応じてバス４１をＬレベルに放電する回路である。
【００４２】
データ制御ユニットは、前述したように、書き込みデータを保持するとともに、書き込み途中において、メモリセルの閾値電圧が所定のチェックポイントに達した場合、書き込みデータを、残りの書き込み電圧印加回数を示す回数データに変換し、この回数データの定義を書き込み電圧の印加に応じて変化させ、擬似的な減算処理を行なう。
【００４３】
データ入出力バッファ６から供給された３ビットの書き込みデータは、データラッチ回路１ＤＬ、２ＤＬ、３ＤＬに１ビットずつラッチされる。ここで、データラッチ回路１ＤＬ、２ＤＬ、３ＤＬは、例えばアッパーページ、ミドルページ、ロワーページのデータをそれぞれ保持する。データラッチ回路０ＤＬは、書き込みデータが回数データに変更されたことを示すフラグデータを保持するために用いられる。
【００４４】
回数データの定義を変換する場合、データラッチ回路１ＤＬ、２ＤＬ、３ＤＬに保持されたデータをバス４１に転送し、データ形成回路４２により、バス４１のデータが操作される。
【００４５】
（データ制御ユニットの基本動作）
上記データ制御ユニットの基本動作について説明する。バス４１のデータをＬＡＴ３に取り込む場合、リセット信号ＲＳＴ２をＨレベルとして、ＮＭＯＳ６１、７０をオンさせ、バス４１、及びラッチ回路ＬＡＴ３をＬレベルにリセットする。
【００４６】
次いで、セット信号ＳＥＴ１をＬレベルとしてＰＭＯＳ５１をオンさせ、ラッチ回路ＬＡＴ３をＨレベルにセットする。ラッチ回路ＬＡＴ３にデータを取り込む場合、ラッチ回路ＬＡＴ３は、先ず、Ｈレベルにセットされる。この後、例えばデータラッチ回路０ＤＬ〜３ＤＬの何れかより、バス４１にデータを転送する。この状態において、信号ＬＡＴＨをＨレベルとする。バス４１のデータがＨレベルの場合、インバータ回路７１の出力信号がローレベルとなり、ＮＭＯＳ６３はオフ状態のままである。このため、ラッチ回路ＬＡＴ３はＨレベルのままである。
【００４７】
また、バス４１がＬレベルの場合、インバータ回路７１の出力信号がＨレベルとなり、ＮＭＯＳ６３がオンとなる。このため、ラッチ回路ＬＡＴ３は、ＮＭＯＳ６２、６３を介して放電され、Ｌレベルとなる。
【００４８】
次に、バス４１のデータを反転してラッチ回路ＬＡＴ３に取り込む場合の動作について説明する。上記のようにして、ラッチ回路ＬＡＴ３をＨレベルにセットした状態において、バス４１にデータを転送する。この後、信号ＬＡＴＬをＨレベルとする。バス４１のデータがＨレベルの場合、ＮＭＯＳ６５はオンとなる。このため、ラッチ回路ＬＡＴ３は、ＮＭＯＳ６４、６５を介して放電され、Ｌレベルとなる。
【００４９】
また、バス４１がＬレベルの場合、ＮＭＯＳ６５はオフ状態のままである。このため、ラッチ回路ＬＡＴ３はＨレベルのままである。
【００５０】
このようにして、ラッチ回路ＬＡＴ３に保持されたデータを、データラッチ回路０ＤＬ〜３ＤＬに転送することにより、データラッチ回路０ＤＬ〜３ＤＬのデータを操作することができる。
【００５１】
図５（ａ）（ｂ）（ｃ）は、従来の３ビットのデータを記憶することが可能なメモリセルに３ビットデータを書き込む際の書き込み手順を示している。メモリセルのデータを消去した場合、メモリセルの閾値電圧は、例えば図５（ａ）に示すデータ“１”より低い状態となっている。
【００５２】
図５（ａ）はロワーページのデータに応じた閾値電圧の分布を示している。図５に示すように、ロワーページのデータにより、２つの閾値電圧の分布が設定される。この後、図５（ｂ）に示すように、ミドルページのデータに応じて４つの閾値電圧分布が設定される。さらに、図５（ｃ）に示すように、最後に、アッパーページのデータに応じて８つの閾値電圧分布が設定される。図５（ａ）（ｂ）（ｃ）に示す各書き込み動作において、ベリファイ動作が行われ、所定の閾値電圧分布が設定される。
【００５３】
このように、従来の３ビットのデータを記憶できるメモリセルの場合、３ビット目を書き込む際、ベリファイを行う箇所は８箇所にもなり、書き込み時間の大半がベリファイ動作によって占められることになる。すなわち、１回の書き込み電圧印加動作に対して８回のベリファイ動作が必要となる。書き込み時間を短縮するためには、ベリファイ動作の回数を減ずればよいことが分かる。
【００５４】
図６（ａ）乃至（ｄ）は、本実施形態に係る書き込みデータと閾値電圧分布の関係を示している。本実施形態の場合、図６（ａ）に示すように、消去状態のメモリセルに対して、図６（ｂ）（ｃ）に示すように、ロワーページ、ミドルページ、アッパーページの書き込みデータに応じて順次メモリセルにデータが書き込まれる。ロワーページ、及びミドルページの書き込み動作において、ベリファイ動作を行ってもよいが、行わなくともよい。
【００５５】
この後、図６（ｃ）に示すアッパーページの書き込みにおいて、２つの閾値電圧（閾値レベルとも呼ぶ）Ａの手前（チェックポイントＣＰ１）と、閾値電圧Ｅの手前、すなわち、閾値電圧Ｄと閾値電圧Ｅの間（チェックポイントＣＰ２）でのみベリファイ動作を行う。つまり、一度の書き込み電圧印加後、チェックポイントＣＰ１と、チェックポイントＣＰ２においてのみ、ベリファイ電圧ｖｌＡ、Ｅによりベリファイ動作を行う。このため、閾値電圧Ａより高い閾値電圧Ｂ、Ｃ、Ｄと、閾値電圧Ｅより高い閾値電圧Ｆ、Ｇ、Ｈのためのベリファイ動作は行なわない。それに代わり、閾値電圧Ｂ、Ｃ、Ｄと、閾値電圧Ｆ、Ｇ、Ｈの書き込みを制御するため、閾値電圧Ａを超えた時点から残りの書き込み電圧の印加回数を設定し、その回数に達した時点で書き込みを完了させる。このようにして、図６（ｄ）に示す８個の閾値電圧の分布を形成する。この方法によれば、従来８回であったベリファイ動作が、２回で済むことになり、書き込み時間を短縮することができる。
【００５６】
但し、この方法を行うためには、次の動作が必要である。
【００５７】
（１）書き込み対象のメモリセルの閾値レベルがチェックポイントとしての２つのベリファイ電圧に達したことを検知する。
【００５８】
（２）そのメモリセルに対して残りの書き込み回数を設定する。
【００５９】
（３）そのメモリセルに対して書き込み電圧を印加する毎に、残りの書き込み回数を減算する。
【００６０】
図７（ａ）は、各ステージおける閾値電圧と書き込みデータとの関係を示し、図７（ｂ）は、各ステージにおける各書き込みデータと残りの書き込み電圧印加動作回数データを示している。また、図８は、書き込み電圧印加回数を示すデータの変化の様子を示している。図７（ａ）（ｂ）、及び図８を参照して、書き込み電圧印加回数を示すデータの変化について概略的に説明する。
【００６１】
本実施形態において、上記ベリファイ動作により、メモリセルの閾値電圧がチェックポイントＣＰ１又はＣＰ２を越えた場合、データ記憶ユニット３ｂのデータラッチ回路０ＤＬにフラグをセットし、１ＤＬ、２ＤＬ、３ＤＬに記憶された書き込みデータが残りの書き込み電圧印加回数を示す回数データに変換される。この回数データが書き込み電圧印加を印加する毎に減算される。この減算動作は、データラッチ回路１ＤＬ、２ＤＬ、３ＤＬに記憶されたデータを後述するような規則に従って反転することにより行われる。
【００６２】
この減算動作の結果、データラッチ回路１ＤＬ、２ＤＬ、３ＤＬのデータが全て“１”となった状態において、書き込みが完了される。すなわち、図７（ａ）に示すステージ０において、閾値レベルＡの場合、データラッチ回路１ＤＬ、２ＤＬ、３ＤＬのデータが全て“１”であるため、残りの書き込み電圧印加回数は、図７（ｂ）に示すように“０”を示す“１１１”に設定される。また、閾値レベルＢ〜Ｈの残りの書き込み電圧印加回数は、“１”〜“７”を示す“０１１”〜“１１０”に設定される。この後、ステージ１、２、３…７と順次、書き込み電圧が印加されると、残りの書き込み電圧印加回数“１”〜“７”を示す各データラッチ回路１ＤＬ、２ＤＬ、３ＤＬのデータが変化される。すなわち、書き込み電圧が印加される毎に残りの書き込み電圧印加回数の定義が変化される。尚、ステージ０〜３とステージ４〜７において、残りの書き込み電圧印加回数“０”〜“７”を示す各データラッチ回路１ＤＬ、２ＤＬ、３ＤＬのデータは同様である。
【００６３】
図８は、書き込み電圧が印加される毎にステージを変化させ、それに応じて残りの書き込み電圧印加回数の定義が変化していることを具体的に示している。前述したように、残りの書き込み回数データが“１１１”に達した時点で、残りの書き込み電圧印加回数が０回となり、そのメモリセルは書き込み完了となる。図８のステージ０に示すように、データラッチ回路１ＤＬ、２ＤＬ、３ＤＬに対して回数データを割り付ける。この後、ステージ毎に特定の１つのページ（１つのデータラッチ回路）のデータを反転して残りの書き込み電圧印加回数の定義を変換する。すなわち、ステージ１において、データラッチ回路１ＤＬのデータを反転し、ステージ２において、データラッチ回路２ＤＬのデータを反転し、ステージ３において、データラッチ回路１ＤＬのデータを反転する。さらに、ステージ４において、データラッチ回路３ＤＬのデータを反転し、ステージ５において、データラッチ回路１ＤＬのデータを反転し、ステージ６において、データラッチ回路２ＤＬのデータを反転し、ステージ７において、データラッチ回路１ＤＬのデータを反転する。ステージ４〜７の動作は、ステージ０〜３の動作と同様である。このため、事実上ステージ０からステージ３の間で巡回させればよいことが分かる。このような動作を行うことにより、減算と同様の効果が得られる。
【００６４】
例えば、図８のステージ０で設定した残りの書き込み回数７回のデータ“１１０”は、ステージ７でデータ“１１１”、つまり書き込み終了となる。書き込み電圧印加動作毎に全ての書き込みレベルのデータ、及び残りの書き込み電圧印加回数に変換されたものも全て反転動作が行われる。これにより、図４に示すデータ制御ユニット３ｂは、２回の動作で減算動作が完了する。
【００６５】
上記巡回方法の場合、一度書き込みが完了しデータ“１１１”に達したデータも反転動作において、反転されてしまう。このため、反転動作を行った後で反転箇所以外が全て“１”になっているデータを検出し、検出された反転箇所にデータ“１”をセットするという動作が必要である。
【００６６】
上記減算動作は、図１に示す制御信号発生回路８の制御に基づき実行される。パラメータ記憶部１０には、例えば図７（ｂ）に示すステージ０に対応する各書き込みデータに対応する残りの書き込み電圧印加回数がパラメータとして記憶されている。制御信号発生回路８は、パラメータ記憶部１０に記憶されたパラメータを参照して、データ制御ユニット３ｂを制御する信号を発生する。制御電圧発生回路９は、制御信号発生回路８から供給される制御信号に応じて、書き込み電圧やベリファイ電圧を発生する。データ制御ユニット３ｂは、メモリセルに書き込み電圧が印加される毎に、制御信号発生回路８から供給される信号に応じて、データの反転動作を行う。
【００６７】
データラッチ回路１ＤＬ、２ＤＬ、３ＤＬに保持されたデータを反転させるには、次のような動作が実行される。例えばデータラッチ回路１ＤＬのデータを反転させる場合、前述した基本動作に基づき、データラッチ回路１ＤＬのデータをバス４１に転送し、このバス４１のデータをラッチ回路ＬＡＴ３にラッチする。この場合、例えばラッチ回路ＬＡＴ３にバス４１のレベルをそのままラッチするものとする。次に、セット信号ＳＥＴ２をＬレベルとしてＰＭＯＳ５６によりバス４１をＨレベルに充電する。次いで、信号ＢＵＳＬ１をＨレベルとする。すると、ラッチ回路ＬＡＴ３のノードＬＡＴがＨレベルの場合、ＮＭＯＳ６８、６９がオンしてバス４１の電荷が放電され、バス４１はＬレベルとなる。また、ラッチ回路ＬＡＴ３のノードＬＡＴがＬレベルの場合、ＮＭＯＳ６９はオフであるため、バス４１はＨレベルのままである。このバス４１のレベルを再度データラッチ回路１ＤＬに取り込むことにより、データラッチ回路１ＤＬのデータが反転される。
【００６８】
図９は、本実施形態におけるアッパーページの書き込み及びベリファイ動作、及びデータ制御ユニット変換動作のシーケンスを示し、図１０は、データ変換操作のフローチャートを示している。
【００６９】
図９に示すように、各ステージは、書き込み電圧の印加、ベリファイ電圧Ａ、Ｅによるベリファイ動作、データラッチ回路１ＤＬ、２ＤＬ、３ＤＬの操作を含んでいる。書き込み電圧が印加される毎にステージ０〜ステージ４の順に進む。すなわち、各ステージにおいて、選択されたメモリセルの制御ゲートに書き込み電圧ｐ１、ｐ２〜ｐ６が印加される。この書き込み電圧は、電圧が順次高くなるように設定されている。１つの書き込み電圧を印加した後、選択されたメモリセルの制御ゲートにベリファイ電圧ｖｌＡが印加されてベリファイ動作が行われる。この後、選択されたメモリセルの制御ゲートにベリファイ電圧ｖｌＥが印加されてベリファイ動作が行われる。書き込み電圧が印加される毎にステージを変化させ、この動作が行われる。また、書き込み電圧印加時、データ制御ユニット３ｂの内部において、前述した所定のデータラッチ回路ＤＬのデータが反転される。図９のＤＵＣの動作において、例えば“３”はデータラッチ回路３ＤＬの反転を意味している。また、“Ａ”、“Ｅ”はそれぞれ図１０に示すデータ変換操作を示している。
【００７０】
図１０に示すように、ベリファイ電圧ｖｌＡによるベリファイ動作（Ｓ１１）の後、メモリセルの閾値電圧がベリファイ電圧ｖｌＡを超え、ベリファイがパスしている場合、そのメモリセルに対応するセンスアンプユニット３ａからＨレベルのデータを出力する。データ制御ユニット３ｂは、このＨレベルをデータラッチ回路０ＤＬにセットされる。このデータラッチ回路０ＤＬにＨレベルがセットされたデータ制御ユニット３ｂに対して、閾値レベルＡから閾値レベルＤのどの書き込みデータに基づく書き込みが行われているかが判別される（Ｓ１２，Ｓ１４，Ｓ１６，Ｓ１８）。この判別は、データ制御ユニット３ｂのデータラッチ回路１ＤＬ、２ＤＬ、３ＤＬにセットさた書き込みデータを用いて行われる。この結果、例えば閾値レベルＡの書き込みが行われている場合、閾値レベルＡに対応する残りの書き込み回数がデータ制御ユニット３ｂのデータラッチ回路１ＤＬ、２ＤＬ、３ＤＬにセットされる（Ｓ１３）。
【００７１】
上記書き込みレベルの判別は、例えば制御信号発生回路８から各書き込みデータに応じて出力される信号に基づき、データラッチ回路１ＤＬ、２ＤＬ、３ＤＬに保持された書き込みデータをバス４１に順次読み出し、ラッチ回路ＬＡＴ３がＨレベルを維持するかどうかにより判別される。すなわち、前述したように、信号ＬＡＴＨと信号ＬＡＴＬを用いて対象レベルのみラッチ回路ＬＡＴ３がＨレベルを維持し続けるように動作させる。ラッチ回路ＬＡＴ３に保持されたデータは、データ入出力バッファ６を介して制御信号発生回路８に供給される。制御信号発生回路８は、供給されたデータがＨレベルの場合、対応する書き込みデータであることを判別する。書き込みデータが判別されると、データラッチ回路１ＤＬ、２ＤＬ、３ＤＬに書き込みデータに対応する残りの書き込み電圧印加回数に対応するデータがセットされる。すなわち、制御信号発生回路８は、パラメータ記憶部１０に記憶された書き込みデータに対応するパラメータに従って信号を発生し、データ制御ユニット３ｂのデータラッチ回路１ＤＬ、２ＤＬ、３ＤＬに残りの書き込み電圧印加回数に対応するデータをセットする。
【００７２】
同様にして、閾値レベルＢ、閾値レベルＣ、閾値レベルＤの書き込みが判別され、これら判別された書き込みレベルに対応する残りの書き込み回数に対応するデータが、データ制御ユニット３ｂのデータラッチ回路１ＤＬ、２ＤＬ、３ＤＬにセットされる（Ｓ１５、Ｓ１７、Ｓ１９）。
【００７３】
データラッチ回路１ＤＬ、２ＤＬ、３ＤＬに例えばＨレベルのセットは、先ず、対象となるデータラッチ回路のデータをバス４１に転送する。次に、信号ＢＵＳＨ２をＬレベルとし、ラッチ回路ＬＡＴ３の信号ＬＡＴｎの状態に応じて、データがそのまま維持されるか充電されるかが決まる。つまり、ラッチ回路ＬＡＴ３がＨレベルである場合、バス４１は充電され、Ｌレベルの場合、各データラッチ回路１ＤＬ〜３ＤＬの状態を維持するということになる。バス４１のデータを対応するデータラッチ回路１ＤＬ〜３ＤＬにセットすることにより、対象となるレベルのデータのみＨレベルをセットすることができる。
【００７４】
また、Ｌレベルをデータラッチ回路１ＤＬ〜３ＤＬにセットする場合、データラッチ回路１ＤＬ〜３ＤＬのデータをバス４１に転送し、この状態において、信号ＢＵＳＬ１をＨレベルとすることにより、ＮＭＯＳ６８をオンとする。ラッチ回路ＬＡＴ３のノードＬＡＴがＨレベルのときのみ、バス４１が放電される。
【００７５】
この後、ベリファイ電圧Ｅによりベリファイ動作が実行される（Ｓ２１）。このベリファイ動作の結果、メモリセルの閾値電圧がベリファイ電圧ｖｌＥを越えている場合、書き込みレベルＥ、Ｆ、Ｇ、Ｈのいずれかが判別される（Ｓ２２、Ｓ２４、Ｓ２６、Ｓ２８）この判別された書き込みレベルに対応する残りの書き込み電圧印加回数に対応するデータがデータ制御ユニット３ｂデータラッチ回路１ＤＬ、２ＤＬ、３ＤＬにセットされる（Ｓ２３、Ｓ２５、Ｓ７２、Ｓ２９）。
【００７６】
図１１は、書き込み電圧印加動作時における減算動作のフローチャートを示している。図９に示すように、書き込み電圧ｐ２〜ｐ６を印加する際、データ制御ユニット３ｂは、データラッチ回路１ＤＬ、２ＤＬ、３ＤＬのうち、所定のデータラッチ回路のデータを反転する。すなわち、データラッチ回路１ＤＬ、２ＤＬ、３ＤＬのうちの所定の１つのデータラッチ回路が選択され（Ｓ３１）、そのデータラッチ回路のデータが反転される（Ｓ３２）。この動作により、反転前にオール“１”であったデータが破壊される。このため、次に、反転前にオール“１”であったデータが検出される（Ｓ３３）。この検出されたデータが元のオール“１”のデータに再設定される（Ｓ３４）。この一連の動作が書き込み電圧の印加動作と平行して行われる。書き込み電圧の印加時に、この操作を行う必要があるため、データの操作回数は少ないほどよい。
【００７７】
図１２（ａ）（ｂ）は、具体的な動作を示すものであり、図７（ａ）に示すステージ０において、メモリセルの閾値電圧がチェックポイントＣＰ１を超え、この後、ターゲットとしての閾値レベルＣまで４回書き込み電圧を印加する場合の具体例を示している。
【００７８】
ベリファイ動作の結果、チェックポイントＣＰ１又はＣＰ２を超えたメモリセルに対応するセンスアンプユニットのみベリファイ結果として、Ｈレベルを出力する。このため、図４に示すバス４１は、Ｈレベルとなる。バス４１がＨレベルの場合、信号ＬＡＴＨをＨレベルとしてＮＭＯＳ６２をオンさせても、ＮＭＯＳ６３がオフであるため、ラッチ回路ＬＡＴ３にＨレベルが保持されている。
【００７９】
次に、データラッチ回路０ＤＬのデータをバス４１へ転送して、データラッチ回路０ＤＬのデータがＬレベルのものだけを識別する。
【００８０】
この場合、先ず、ラッチ回路ＬＡＴ３をＨレベルとした後、図４に示す信号ＬＡＴＬをＨレベルとし、ＮＭＯＳ６４をオンとする。データラッチ回路０ＤＬからバス４１に転送されたデータがＬレベルである場合、ＮＭＯＳ６４をオンとしてもＮＭＯＳ６５がオフするため、ＬＡＴ３のデータはＨレベルを維持する。
【００８１】
同様にして、他の書き込みレベルと識別するため、図７（ａ）に示すステージ２、閾値レベルＣの識別規則を適用する。すなわち、図１に示す制御信号発生回路８は、閾値レベルＣの書き込みデータに応じてデータ制御ユニット３ｂを制御し、書き込みレベルを識別する。この結果、ラッチ回路ＬＡＴ３がＨレベルを維持し続けたデータ制御ユニットのみが、閾値レベルＣへの書き込みデータが保持されているデータ制御ユニット３ｂであると識別できる。すなわち、先ず、データラッチ回路１ＤＬのデータをバス４１に転送し、信号ＬＡＴＬをＨレベルとする。次に、データラッチ回路２ＤＬのデータをバス４１に転送し、信号ＬＡＴＨをＨレベルとする。さらに、データラッチ回路３ＤＬのデータをバス４１に転送して信号ＬＡＴＨをＨレベルとする。この一連の動作の結果、閾値レベルＣのデータを記憶したデータ制御ユニット３ｂのラッチ回路ＬＡＴ３のみがＨレベルを維持する。
【００８２】
上記のようにして閾値レベルＣを書き込むデータ制御ユニット３ｂが識別された場合、ラッチ回路ＬＡＴ３がＨレベルのデータ制御ユニット３ｂのみ、閾値レベルＣの書き込みデータが残りの書き込み電圧印加回数データ、すなわち、４回を示すデータに変更される。図１２（ｂ）に示す例の場合、ステージ２の４回の定義は、図７（ｂ）に示すように、（０ＤＬ、１ＤＬ、２ＤＬ、３ＤＬ）＝（１，１，０，０）である。このため、データラッチ回路０ＤＬと１ＤＬにデータ“１”をセットし、データラッチ回路２ＤＬと３ＤＬにデータ“０”をセットする。
【００８３】
このような処理のみで、各データラッチ回路０ＤＬ、１ＤＬ、２ＤＬ、３ＤＬのデータを変換することができる。この動作を図７（ｂ）の規則に従って実行することにより、減算処理と等価な処理を行なうことができる。
【００８４】
上記実施形態によれば、複数の閾値電圧により複数ビットを記憶するメモリセルにおいて、メモリセルにデータを書き込む時、メモリセルの閾値電圧が予め設定されたチェックポイントを超えた場合、書き込みデータを残りの書き込み電圧印加回数に対応する回数データに変換し、この回数データの一部を書き込み電圧の印加毎に反転してデータの定義を変化させることにより、減算動作と同等の処理を行なっている。このため、ベリファイ回数を従来に比べて削減できるため、書き込み速度を高速化することが可能である。
【００８５】
また、減算動作は、残りの書き込み電圧印加回数に対応するデータの一部を反転するだけであり、データ制御ユニットの回路構成を変更したり、新たに、カウンタのような回路を付加したりする必要がない。このため、回路構成を簡単化することが可能である。
【００８６】
尚、本発明は、上記実施形態に限定されるものではなく、発明の要旨を変えない範囲において種々変形実施かのうなことは勿論である。
【図面の簡単な説明】
【００８７】
【図１】本発明の実施形態に係る不揮発性半導体記憶装置を示す概略構成図。
【図２】図１の一部を取り出して示す回路図。
【図３】図２に示すセンスアンプユニットの一例を示す回路図。
【図４】図２に示すデータ制御ユニットの一例を示す回路図。
【図５】図５（ａ）（ｂ）（ｃ）は、従来の書き込み動作を示す図。
【図６】図６（ａ）（ｂ）（ｃ）（ｄ）は、本実施形態の書き込み動作を示す図。
【図７】図７（ａ）（ｂ）は、本実施形態の動作を説明するものであり、残りの書き込み電圧印加回数とデータラッチ回路のデータの関係を示す図。
【図８】本実施形態の動作を説明するものであり、書き込みレベルと残りの書き込み電圧印加回数の関係を示す図。
【図９】本実施形態の書き込みシーケンスを示すタイミングチャート。
【図１０】本実施形態の書き込みレベルと残りの書き込み電圧印加回数の変換動作を示すフローチャート。
【図１１】本実施形態のデータ反転動作を示すフローチャート。
【図１２】図１２（ａ）（ｂ）は、本実施形態の動作を説明するものであり、残りの書き込み回数と閾値電圧、及び各データラッチ回路のデータの変化を示す図。
【符号の説明】
【００８８】
１…メモリセルアレイ、３…センスアンプ回路、３ａ…センスアンプユニット、３ｂ…データ制御ユニット、８…制御信号発生回路、９…制御電圧発生回路、１０…パラメータ記憶部。
【図１】
0004560073.tif 000002
【図２】
0004560073.tif 000003
【図３】
0004560073.tif 000004
【図４】
0004560073.tif 000005
【図５】
0004560073.tif 000006
【図６】
0004560073.tif 000007
【図７】
0004560073.tif 000008
【図８】
0004560073.tif 000009
【図９】
0004560073.tif 000010
【図１０】
0004560073.tif 000011
【図１１】
0004560073.tif 000012
【図１２】
0004560073.tif 000013