(57)【要約】 【課題】ブロック内のデータパターンに依らず、データ消去動作においてメモリセルのデータの消去不良を抑制することができる半導体記憶装置を提供する。【解決手段】このメモリは、複数のビット線と、ビット線に交差する複数のワード線と、ビット線とワード線との交点に対応して設けられた複数のメモリセルと、ビット線に接続され、複数のメモリセルに格納されたデータを検出するセンスアンプと、ワード線の電圧を制御するワード線ドライバとを備えている、複数のメモリセルは、データ消去の単位となるメモリブロックを成す。メモリブロックにおいて各ワード線に接続されたメモリセルがページを成す。コントローラは、データ消去前のメモリブロックまたはページのデータのうち所定の論理値データの割合に応じて、メモリブロックのデータ消去動作時における消去条件、または、メモリブロック内のデータが消去されたことを検証するベリファイの条件を変更する。【選択図】図４
2012169006.tif 000002
【特許請求の範囲】
【請求項１】
複数のビット線と、
前記ビット線に交差する複数のワード線と、
前記ビット線と前記ワード線との交点に対応して設けられた複数のメモリセルと、
前記ビット線に接続され、前記複数のメモリセルに格納されたデータを検出するセンスアンプと、
前記ワード線の電圧を制御するワード線ドライバとを備え、
複数の前記メモリセルがデータ消去の単位となるメモリブロックを成し、前記メモリブロックにおいて各前記ワード線に共通に接続された前記メモリセルがページを成し、
データ消去前の前記メモリブロックまたは前記ページのデータのうち所定の論理値データの割合に応じて、前記メモリブロックのデータ消去動作時における消去条件、または、前記メモリブロック内のデータが消去されたことを検証するベリファイの条件を変更する制御回路をさらに備えたことを特徴とする半導体記憶装置。
【請求項２】
データ消去前の前記メモリブロックまたは前記ページのデータのうち電荷蓄積状態を示すデータの割合が所定値を超える場合に、前記制御回路は、前記ベリファイの際に前記ビット線の電圧と比較される参照電圧を第１の参照電圧に設定し、
前記電荷蓄積状態を示すデータの割合が所定値以下である場合に、前記制御回路は、前記ベリファイの際に前記ビット線の電圧と比較される参照電圧を前記第１の参照電圧よりも高い第２の参照電圧に設定することを特徴とする請求項１に記載の半導体記憶装置。
【請求項３】
前記メモリブロック内の前記メモリセルは、同一のウェル上に形成されており、
データ消去前の前記メモリブロックまたは前記ページのデータのうち電荷蓄積状態を示すデータの割合が所定値を超える場合に、前記制御回路は、データ消去時に前記ウェルに印加されるウェル電圧を第１のウェル電圧に設定し、
前記電荷蓄積状態を示すデータの割合が所定値以下である場合に、前記制御回路は、データ消去時に前記ウェルに印加されるウェル電圧を前記第１のウェル電圧よりも高い第２のウェル電圧に設定することを特徴とする請求項１または請求項２に記載の半導体記憶装置。
【請求項４】
データ消去前の前記ページのデータのうち電荷蓄積状態を示すデータの割合が所定値以下である場合に、前記制御回路は、データ消去動作後、前記ベリファイを実行し、さらにその後、再度データ消去動作を実行することを特徴とする請求項１から請求項３のいずれかに記載の半導体記憶装置。
【請求項５】
データ消去前の前記ページのデータのうち電荷蓄積状態を示すデータの割合が所定値を超える場合に、前記制御回路は、前記ベリファイの際に前記ビット線の電圧を検出する時間を、第１のセンス時間に設定し、
前記電荷蓄積状態を示すデータの割合が所定値以下である場合に、前記制御回路は、前記ベリファイの際に前記ビット線の電圧を検出する時間を、前記第１のセンス時間よりも短い第２のセンス時間に設定することを特徴とする請求項１から請求項４のいずれかに記載の半導体記憶装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、半導体記憶装置に関する。  
【背景技術】
【０００２】
ＮＡＮＤ型フラッシュメモリ等のようなＥＥＰＲＯＭ（以下、単にメモリともいう）は、メモリセルブロックごとにデータ消去動作を実行する。データ消去動作において、メモリは、フローティングゲートの電荷を引き抜くことで、メモリセルブロックに含まれるメモリセルのデータを消去する。
【０００３】
データが消去されたか否かの検証は、消去ベリファイチェックにより行う。消去ベリファイチェックでは、各カラムのセルストリングに電圧を印加し、セルストリングに電流が流れるか否かににより判断される。消去ベリファイチェックにおいて、セルストリングに電流が流れない場合、メモリは、消去動作を再度実行する必要がある。即ち、データの消去は、消去とベリファイとからなる消去ループを繰り返し、消去ベリファイチェックにおいて全カラムのセルストリングに電流が充分に流れる。多数のメモリセルを含むメモリセルブロック全体を消去状態にするためには、通常、複数の消去ループを繰り返し実行する必要がある。
【０００４】
しかし、メモリセルに電荷蓄積状態（例えば、データ“０”）のメモリセルが少なく、消去状態のメモリセル（“１”セル）が多い場合、消去不十分なメモリセルが存在しても、消去ベリファイチェックをパスしてしまう可能性が有る。この現象を、「“１”データ残り」と称する場合がある。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００５−１２２８００号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
ブロック内のデータパターンに依らず、データ消去動作においてメモリセルのデータの消去不良を抑制することができる半導体記憶装置を提供する。
【課題を解決するための手段】
【０００７】
本実施形態による半導体記憶装置は、複数のビット線と、ビット線に交差する複数のワード線と、ビット線とワード線との交点に対応して設けられた複数のメモリセルと、ビット線に接続され、複数のメモリセルに格納されたデータを検出するセンスアンプと、ワード線の電圧を制御するワード線ドライバとを備えている、複数のメモリセルは、データ消去の単位となるメモリブロックを成す。メモリブロックにおいて各ワード線に共通に接続されたメモリセルがページを成す。コントローラは、データ消去前のメモリブロックまたはページのデータのうち所定の論理値データの割合に応じて、メモリブロックのデータ消去動作時における消去条件、または、メモリブロック内のデータが消去されたことを検証するベリファイの条件を変更する。
【図面の簡単な説明】
【０００８】
【図１】第１の実施形態によるＮＡＮＤ型フラッシュメモリ２１およびＮＡＮＤコントローラ２０の構成を示すブロック図。
【図２】メモリセルアレイ１の部分的な構成例を示す図。
【図３】消去ベリファイチェックの動作を示す概念図。
【図４】第１の実施形態によるメモリ２１およびＮＡＮＤコントローラ２０の消去動作を示すフロー図。
【図５】第２の実施形態によるメモリ２１およびＮＡＮＤコントローラ２０の動作を示すフロー図。
【図６】第３の実施形態によるメモリ２１およびＮＡＮＤコントローラ２０の動作を示すフロー図。
【図７】第４の実施形態によるメモリ２１およびＮＡＮＤコントローラ２０の動作を示すフロー図。
【発明を実施するための形態】
【０００９】
以下、図面を参照して本発明に係る実施形態を説明する。本実施形態は、本発明を限定するものではない。
【００１０】
（第１の実施形態）
まず、“１”データ残りに関して説明をする。
【００１１】
例えば、ワード線方向に配列された同一ページのメモリセルに電荷蓄積状態（例えば、データ“０”）のメモリセルが少ない場合、非常に少ない消去ループ回数で消去ベリファイチェックをパスすることがある。例えば、或るワード線に共通に接続されたメモリセルのうち１つのメモリセルのみが電荷蓄積状態であり、他のメモリセルはもともと消去状態である場合、電荷蓄積状態のメモリセルのみ消去ベリファイチェックをパスすればよい。即ち、少ない消去ループ回数でその電荷蓄積状態のメモリセルさえ消去ベリファイチェックをパスすればよいことになる。従って、この場合、電荷蓄積状態であったメモリセルの閾値電圧は、充分に消去状態に遷移していない。
【００１２】
また、例えば、消去ベリファイチェックにおいて、ビット線方向のセルストリングのうち多くのメモリセルが消去状態であり、極小数のメモリセルが充分に消去状態になっていない場合、セル電流は、比較的多く流れるので、消去ベリファイチェックをパスしやすい。
【００１３】
従って、メモリセルに電荷蓄積状態（例えば、データ“０”）のメモリセルが少なく、消去状態のメモリセル（“１”セル）が多い場合、特に、ワード線方向のページに電荷蓄積状態のメモリセル（“０”セル）が少なく、かつ、ビット線方向のセルストリングに消去状態のメモリセル（“１”セル）が多い場合、消去不十分なメモリセルが存在しても、消去ベリファイチェックをパスしてしまう可能性が有る。
【００１４】
その結果、誤消去が発生してしまう。通常は、誤消去セルはＥＣＣなどで救済している。しかし、不良セルの数が大きくなると、ＥＣＣで救済できる救済セル数を多くする必要があり、半導体記憶装置の動作が遅くなってしまう。
【００１５】
図１は、第１の実施形態によるＮＡＮＤ型フラッシュメモリ（以下、単にメモリともいう）２１および制御回路（例えば、ＮＡＮＤコントローラ）２０の構成を示すブロック図である。メモリ２１は、メモリセルアレイ１と、センスアンプ回路２と、ロウデコーダ（ワード線ドライバＷＤＲＶ、ウェルドライバＷＥＬＬＤＲＶおよびソース線ドライバＳＤＲＶを含む）３と、制御部４と、入出力バッファ５と、ＲＯＭフューズ６と、電圧発生回路７とを備えている。尚、メモリ２１は、１チップとして構成されており、ＮＡＮＤコントローラ２０は、複数のメモリチップ２１を制御するように構成されている。ＮＡＮＤコントローラ２０および複数のメモリチップ２１は、一体として樹脂封止されている。
【００１６】
メモリセルアレイ１は、マトリクス状に二次元配列された複数のメモリセルＭＣにより構成されている。各ＮＡＮＤセルストリング（以下、セルストリングともいう）１０は、複数個直列に接続されたメモリセルＭＣ（ＭＣ０、ＭＣ１、…、ＭＣ３１）と、その両端に接続される選択ゲートトランジスタＳ１、Ｓ２とにより構成されている。選択ゲートトランジスタＳ１のソースは共通ソース線ＣＥＬＳＲＣに接続され、選択ゲートトランジスタＳ２のドレインはビット線ＢＬに接続されている。選択ゲートトランジスタＳ１、Ｓ２は、セルストリング１０のメモリセルＭＣをビット線ＢＬとＣＥＬＳＲＣとの間において電気的に接続または切断するように構成されている。
【００１７】
複数のセルストリング１０がワード線ＷＬの延伸方向に配列されており、メモリセルブロック（以下、単にブロックともいう）ＢＬＫを構成している。ブロックＢＬＫは、同時にデータ消去動作が行われるメモリセルの単位である。各ブロックＢＬＫは、複数のページを含む。ページは、同時にデータ書込み動作またはデータ読出し動作が行われるメモリセルの単位であり、或るワード線に共通に接続された複数のメモリセルから成る。
【００１８】
各メモリセルＭＣは、ドレインＤとソースＳとの間に形成されたゲート絶縁膜（トンネル絶縁膜）と、ゲート絶縁膜上に設けられた電荷蓄積層としてのフローティングゲートＦＧを備える。メモリセルＭＣは、さらに、フローティングゲートＦＧ上にゲート間絶縁膜を介して設けられたコントロールゲートＣＧを備える。コントロールゲートＣＧは、ワード線ＷＬの１つに接続される。
【００１９】
セルストリング１０内のメモリセルＭＣの制御ゲートはそれぞれ異なるワード線ＷＬ（ＷＬ０、ＷＬ１、…、ＷＬ３１）に接続されている。選択ゲートトランジスタＳ１、Ｓ２のゲートはワード線ＷＬと並行する選択ゲート線ＳＧ１、ＳＧ２にそれぞれ接続されている。１本のワード線ＷＬを共有する複数のメモリセルＭＣの集合は、上述のようにページを構成する。ワード線ＷＬと選択ゲート線ＳＧ１、ＳＧ２を共有する複数のセルストリング１０の集合は、ブロックＢＬＫを構成する。
【００２０】
図１に示すように、メモリセルアレイ１には、ビット線ＢＬ方向に複数のブロックＢＬＫ（ＢＬＫ０、ＢＬＫ１、…、ＢＬＫｎ）が構成される。Ｐ型ウェルＣＰＷＥＬＬは、各ブロックＢＬＫのそれぞれに対応してシリコン基板に形成されている。即ち、ブロックＢＬＫ内のメモリセルＭＣは、同一のウェル上に形成されている。
【００２１】
センスアンプ回路２は、複数のセンスアンプＳＡを備えている。センスアンプＳＡは、ビット線ＢＬに接続され、該ビット線ＢＬを介して伝達された読出しデータをセンスする。また、センスアンプＳＡは、外部から受けた書込みデータをビット線ＢＬを介してメモリセルＭＣへ書き込むために保持するページバッファを有する。
【００２２】
センスアンプ回路２はカラム選択ゲートを有し、センスアンプＳＡは、カラム選択ゲートによってビット線ＢＬに選択的に接続され得る。ワード線ドライバＷＤＲＶは、ワード線ＷＬ及び選択ゲート線ＳＧ１、ＳＧ２を選択して駆動する。
【００２３】
ロウデコーダ３は、ロウアドレスに従ってワード線ＷＬ、セルウェルＣＰＷＥＬＬ、セルソースＣＥＬＳＲＣを選択する。さらに、ロウデコーダ３は、ワード線ドライバＷＤＲＶ、ウェルドライバＷＥＬＬＤＲＶ、ソースドライバＳＤＲＶを含む。ワード線ドライバＷＤＲＶは、選択されたワード線ＷＬに電圧を印加し、ウェルドライバＷＥＬＬＤＲＶは、選択されたセルウェルＣＰＷＥＬＬに電圧を印加し、並びに、ソースドライバＳＤＲＶは、選択されたセルソースＣＥＬＳＲＣに電圧を印加することができるように構成されている。
【００２４】
データ入出力バッファ５は、センスアンプ回路２と外部入出力端子との間でデータの授受を行う他、コマンドデータやアドレスデータを受け取る。制御部４は、書込みイネーブル信号ＷＥｎ、読出しイネーブル信号ＲＥｎ、アドレスラッチイネーブル信号ＡＬＥ、コマンドラッチイネーブル信号ＣＬＥ等の外部制御信号を受けて、メモリ動作の全般の制御を行う。
【００２５】
具体的に、制御部４は、コマンドインタフェース、アドレス保持回路、転送回路等を含み、供給されたデータが書込みデータであるかアドレスデータであるかを判定する。この判定結果に応じて、書込みデータはセンスアンプ回路２に転送され、アドレスデータはロウデコーダ３またはセンスアンプ回路２に転送される。
【００２６】
また、制御部４は、外部制御信号に基づいて、読出し動作、書込み動作および消去動作のシーケンス制御、並びに、それらの動作における印加電圧の制御等を行う。
【００２７】
電圧発生回路７は、複数の昇圧回路１１と、パルス発生回路１２とを備えている。昇圧回路１１は、それぞれ周知のチャージポンプ回路ＣＰ（ＣＰ１〜ＣＰ８）から構成され得る。電圧発生回路７は、制御部４からの制御信号に基づいて、駆動される昇圧回路１１の数を切替え、さらにパルス発生回路１２を制御して、例えば、パルス電圧のパルス幅やパルス高さを調整する。
【００２８】
なお、書込み動作及び消去動作のパルス電圧のパルス幅やパルス高さは、例えば図１に示すＲＯＭフューズ６に、電圧設定データとして格納しておくことができる。制御部４は、この電圧設定データに従って、駆動すべき昇圧回路１１の数を決定することができる。
【００２９】
入出力バッファ５は、メモリ２１とＮＡＮＤコントローラ２０との間を通信可能に接続する。ＮＡＮＤコントローラ２０は、データ消去前のページにおいてデータ“０”または“１”の個数をカウントし、そのデータの割合に応じて、ブロックＢＬＫのデータ消去動作時における消去条件、または、ブロックＢＬＫ内のデータが消去されたことを検証するベリファイの条件を変更するように構成されている。
【００３０】
図２は、メモリセルアレイ１の部分的な構成例を示す図である。メモリセルアレイ１は、マトリクス状に二次元配列された複数のメモリセルＭＣによって構成されている。ワード線ＷＬおよびビット線ＢＬがほぼ直行して延伸している。メモリセルＭＣは、ワード線ＷＬとビット線ＢＬとの交点に対応して設けられている。メモリセルＭＣは、電荷を蓄積可能なフローティングゲートＦＧおよびワード線ＷＬに接続されたコントロールゲートＣＧを有するＦＥＴである。
【００３１】
複数のメモリセルＭＣは、直列に接続されてセルストリング１０を構成している。セルストリング１０は、メモリセルＭＣのドレイン側において選択トランジスタＳ２を介してビット線ＢＬに接続されている。セルストリング１０は、メモリセルＭＣのソース側において選択トランジスタＳ１を介してソースに接続されている。セルストリング１０内のメモリセルＭＣのコントロールゲートＣＧは、それぞれ異なるワード線ＷＬに接続されている。
【００３２】
ワード線ＷＬの延伸方向に配列された複数のセルストリング１０がブロックＢＬＫを構成する。ブロックＢＬＫは、上述の通り、データ消去動作の単位である。さらに、メモリセルブロックＢＬＫにおいて、或るワード線ＷＬに共通に接続された複数のメモリセルＭＣがページを構成する。ページは、上述の通り、データ書込み動作およびデータ読出し動作の単位である。
【００３３】
次に、データ消去動作について説明する。通常、データ消去動作は、複数の消去ループを繰り返すことによって実行される。各消去ループは、ブロック内のメモリセルから電荷を引き抜く動作と、データが消去されたか否かを検証するベリファイチェックとから成る。
【００３４】
[電荷引抜き動作]
電荷引抜き動作では、ワード線ドライバＷＤＲＶが消去対象ブロックのワード線ＷＬの電圧を基準電圧に固定した後、ウェルドライバＷＥＬＬＤＲＶは、消去対象ブロックが形成されているウェルに消去電圧を印加する。例えば、メモリセルＭＣがＮ型ＦＥＴ（Field Effect Transistor）であり、フローティングゲートＦＧに蓄積される電荷が電子である場合、ワード線ドライバＷＤＲＶが消去対象ブロックのワード線電圧を、例えば、０ボルトに固定した後、ウェルドライバＷＥＬＬＤＲＶは、対応するウェルＣＰＷＥＬＬに、例えば、１７ボルトの消去電圧を印加する。これにより、消去対象ブロック内のメモリセルＭＣに蓄積された電子が引き抜かれ、メモリセルＭＣのデータが消去される。
【００３５】
[消去ベリファイチェック]
ベリファイチェックは、電荷引抜き動作後、ワード線ＷＬの電圧を基準電圧に固定した後、セルソースＣＥＬＳＲＣに電圧を印加する。このとき、センスアンプ回路２がセルストリング１０を介してビット線ＢＬの電圧を検知し、セルストリング１０のメモリセルＭＣの消去状態を判断する。
【００３６】
図３は、消去ベリファイチェックの動作を示す概念図である。図３には、１つのセルストリング１０のみを便宜的に示している。上述のように、消去ベリファイチェックでは、ワード線ドライバＷＤＲＶがベリファイ対象のワード線ＷＬを全て基準電圧（例えば、０ボルト）に固定する。ソース線ドライバＳＤＲＶがセルソースＣＥＬＳＲＣに高レベル電圧ＶＤＤを印加する。そして、センスアンプ回路２がビット線電圧の変動を検知することによってセルストリングの消去状態を検証する。尚、ＢＬＣは、ビット線ＢＬの容量、例えば、隣接するビット線ＢＬ間の容量を示している。
【００３７】
セルストリング１０の全てのメモリセルＭＣのデータが充分に消去されていれば、それらのメモリセルＭＣの閾値電圧は、基準電圧よりも充分に低い。従って、セル電流Ｉｃｅｌｌがセルストリング１０を流れ、ビット線の容量ＢＬＣを充電し、ビット線ＢＬの電圧が規定時間内に参照電圧ＶＳＥＮＥＶよりも高くなる。センスアンプ回路２がビット線ＢＬの電圧を検知することによって、ビット線ＢＬの電圧が参照電圧ＶＳＥＮＥＶよりも高いか否かを判断できる。尚、参照電圧ＶＳＥＮＥＶは、ビット線ＢＬの電圧と比較され、セルストリング１０の消去状態を判断する基準電圧である。
【００３８】
一方、セルストリング１０のいずれかのメモリセルＭＣのデータが充分に消去されていなければ、そのメモリセルＭＣの閾値電圧は、基準電圧付近かそれよりも高い。従って、セル電流Ｉｃｅｌｌがセルストリング１０を流れ難く、ビット線ＢＬの電圧の上昇に時間がかかるか、あるいは、ビット線ＢＬの電圧が上昇しない。従って、ビット線ＢＬの電圧は、規定時間内に参照電圧ＶＳＥＮＥＶよりも高くならない。
【００３９】
このように、メモリ２１は、参照電圧ＶＳＥＮＥＶとビット線ＢＬの電圧とを比較してメモリセルＭＣの消去状態を判断することができる。
【００４０】
図４は、第１の実施形態によるメモリ２１およびＮＡＮＤコントローラ２０の消去動作を示すフロー図である。本実施形態では、ブロックＢＬＫまたはページのデータのうち所定の論理値データの割合に応じて、ＮＡＮＤコントローラ２０がベリファイチェックの条件を変更する。
【００４１】
尚、本実施形態では、データ消去前にカウントされた“０”セルまたは“１”セルの個数、データ消去前のページ内における“０”セルまたは“１”セルの割合、消去動作時にウェルに印加されるウェル電圧、消去時にウェル電圧を印加する時間、消去動作後のベリファイチェック時にビット線ＢＬの電圧と比較される基準電圧、消去動作後のベリファイチェック時にソースＣＥＬＳＲＣに印加されるソース電圧、あるいは、ビット線ＢＬの電圧と比較される基準電圧は、全てＲＯＭフューズ６に格納されていてよい。また、本実施形態では、電荷蓄積状態のデータをデータ“０”とし、消去状態のデータをデータ“１”とする。また、データ“０”を格納するメモリセルＭＣを“０”セルと呼び、データ“１”を格納するメモリセルＭＣを“１”セルと呼ぶ。
【００４２】
まず、センスアンプ回路２が消去対象であるブロックＢＬＫからデータを読み出す（Ｓ１０）。読出しデータは、Ｉ／Ｏバッファ５を介してＮＡＮＤコントローラ２０に出力される。
【００４３】
ＮＡＮＤコントローラ２０は、“０”セルまたは“１”セルの個数をカウントし、ブロックＢＬＫ全体または各ページ全体に対するその論理値データの個数の割合を算出する（Ｓ２０）。例えば、ＮＡＮＤコントローラ２０は、“０”セルの数をカウントし、ブロックＢＬＫ全体または各ページ全体のメモリセル数に対する“０”セルの個数の割合を算出する。勿論、ＮＡＮＤコントローラ２０は、“１”セルの数をカウントし、“１”セルの個数の割合を算出してもよい。
【００４４】
次に、ＮＡＮＤコントローラ２０が“０”セル数の割合をチェックする（Ｓ２５）。“０”セルの割合がブロックＢＬＫ全体またはページ全体に対して所定値（ここでは５０％とする）を超える場合、ＮＡＮＤコントローラ２０は、第１の参照電圧ＶＳＥＮＥＶ１を選択するコマンドをメモリ２１へ送信し（Ｓ２８）、メモリ２１は、第１の参照電圧ＶＳＥＮＥＶ１を用いて通常通りに消去動作を実行する（Ｓ３０〜Ｓ５０）。
【００４５】
例えば、ＲＯＭ６が第１の参照電圧ＶＳＥＮＥＶ１を予め格納しており、“０”セルの割合が５０％を超える場合には、ＮＡＮＤコントローラ２０は、第１の参照電圧ＶＳＥＮＥＶ１（例えば、０．３５Ｖ）を選択するコマンドをメモリ２１へ送信する（Ｓ２８）。メモリ２１は、ＮＡＮＤコントローラ２０のコマンドに従って第１の参照電圧ＶＳＥＮＥＶ１を選択する。そして、メモリ２１は、電荷引抜き動作を実行し（Ｓ３０）、その後、第１の参照電圧ＶＳＥＮＥＶ１を用いてベリファイチェックを行う（Ｓ４０）。尚、上記所定値は、メモリデバイス自体の特性、あるいは、メモリの実際の使用状況によるデータパターン等に依存して変更する。すなわち、“０”セルの割合は０〜１００％の間で変更可能である。また、所定値または参照電圧は、メモリチップ２１およびＮＡＮＤコントローラ２０の外部から書換えできるようにしてもよい。
【００４６】
ベリファイチェックの結果、消去対象ブロックＢＬＫ内のいずれかのビット線ＢＬの電圧が第１の参照電圧ＶＳＥＮＥＶ１未満である場合（Ｓ５０のＦａｉｌ）、充分にデータ消去されていないメモリセルＭＣがそのブロックＢＬＫに含まれていることを意味する。従って、ステップＳ３０およびＳ４０からなる消去ループを再度実行する。消去ループは、消去対象ブロックＢＬＫの全カラムのセルストリング１０がベリファイチェックをパスするまで繰り返される。ここで、各消去ループのベリファイチェックにおいて、第１の参照電圧ＶＳＥＮＥＶ１が用いられる。そして、消去対象ブロックＢＬＫの全セルストリング１０がベリファイチェックをパスした場合（Ｓ５０のＰａｓｓ）、消去動作が終了する。
【００４７】
一方、“０”セルの割合がブロックＢＬＫ全体またはページ全体に対して５０％以下である場合（Ｓ２５）、ＮＡＮＤコントローラ２０は、第１の参照電圧ＶＳＥＮＥＶ１よりも高い第２の参照電圧ＶＳＥＮＥＶ２（例えば、０．４０Ｖ）を選択するコマンドをメモリ２１へ送信する（Ｓ６０）。メモリ２１は、第２の参照電圧ＶＳＥＮＥＶ２用いて消去動作を実行する（Ｓ３０）。
【００４８】
例えば、ＲＯＭ６が第１の参照電圧ＶＳＥＮＥＶ１の他に、それよりも高い第２の参照電圧ＶＳＥＮＥＶ２を格納しており、０”セルの割合が５０％以下である合には、ＮＡＮＤコントローラ２０は、第２の参照電圧ＶＳＥＮＥＶ２を選択するコマンドをメモリ２１へ送信する（Ｓ６０）。メモリ２１は、ＮＡＮＤコントローラ２０のコマンドに従って第２の参照電圧ＶＳＥＮＥＶ２を選択する。そして、メモリ２１は、電荷引抜き動作を実行し（Ｓ３０）、その後、参照電圧ＶＳＥＮＥＶ２を用いてベリファイチェックを行う（Ｓ４０）。消去ループは、消去対象ブロックＢＬＫの全カラムのセルストリング１０がベリファイチェックをパスするまで繰り返される。ここで、各消去ループのベリファイチェックにおいて、第２の参照電圧ＶＳＥＮＥＶ２が用いられる。そして、消去対象ブロックＢＬＫの全カラムのセルストリング１０がベリファイチェックをパスした場合（Ｓ５０のＰａｓｓ）、消去動作が終了する。
【００４９】
“０”セルの数がブロックＢＬＫ全体またはページ全体に対して所定値（５０％）を超える場合、“１”セルが少ないため、上述の”１”データ残りが比較的発生しにくい。”１”データ残りは、ワード線方向のページにおいて“１”セルが多く存在し、さらにビット線方向のセルストリング１０において“１”セルが多い場合に発生しやすいからである。従って、この場合には、ビット線ＢＬの電圧の参照電圧は、第１の参照電圧ＶＳＥＮＥＶ１でよい。
【００５０】
一方、“０”セルの数がブロックＢＬＫ全体またはページ全体に対して所定値（５０％）以下である場合、“１”セルが多いため、上述の”１”データ残りが比較的発生しやすい状況となる。従って、この場合には、ビット線ＢＬの電圧の参照電圧として、第２の参照電圧ＶＳＥＮＥＶ２を用いる。第２の参照電圧ＶＳＥＮＥＶ２は、第１の参照電圧ＶＳＥＮＥＶよりも高いので、メモリセルＭＣは、ベリファイチェックをパスし難くなる。よって、ステップＳ３０の消去動作後、充分にデータ消去されていないメモリセルＭＣを含むセルストリング１０がベリファイチェックをパスすることを抑制することができ、消去ループの実行回数が多くなる。その結果、”１”データ残りが発生し難くなる。
【００５１】
このように、本実施形態による半導体記憶装置は、ブロック内のデータパターン（データの論理数の偏り、データの論理の分布等）に依らず、データ消去動作においてメモリセルのデータの消去不良を抑制することができる。
【００５２】
また、消去電圧ＶＥＲＡを“１”セルの数によって変更しないため、“１”セルが過度に消去されない。その結果、過消去セルによる隣接セルの閾値変動を防止することができる。
【００５３】
（第２の実施形態）
図５は、第２の実施形態によるメモリ２１およびＮＡＮＤコントローラ２０の動作を示すフロー図である。第２の実施形態によるメモリ２１およびＮＡＮＤコントローラ２０の構成は、第１の実施形態のそれらの構成と同様でよい。
【００５４】
第２の実施形態では、ブロックＢＬＫまたはページのデータのうち所定の論理値データの割合に応じて、ＮＡＮＤコントローラ２０が電荷引抜き動作の条件を変更する。
【００５５】
まず、センスアンプ回路２が消去対象であるブロックＢＬＫからデータを読み出す（Ｓ１１０）。読出しデータは、Ｉ／Ｏバッファ５を介してＮＡＮＤコントローラ２０に出力される。
【００５６】
ＮＡＮＤコントローラ２０は、データ“０”または“１”の個数をカウントし、ブロックＢＬＫ全体またはページ全体に対するそのデータ数の割合を算出する（Ｓ１２０）。例えば、ＮＡＮＤコントローラ２０は、“０”セルの数をカウントし、ブロックＢＬＫ全体またはページ全体のメモリセル数に対する“０”セルの個数の割合を算出する。 
次に、ＮＡＮＤコントローラ２０が“０”セル数の割合をチェックする（Ｓ１２５）。“０”セルの数がブロックＢＬＫ全体またはページ全体に対して所定値（ここでは５０％とする）を超える場合、ＮＡＮＤコントローラ２０は、第１の消去電圧ＶＥＲＡ１（例えば、１５Ｖ）を選択するコマンドをメモリ２１へ送信し（Ｓ１２８）、メモリ２１は、第１の消去電圧ＶＥＲＡ１を用いて通常通りに消去動作を実行する（Ｓ１３０〜Ｓ１５０）。
【００５７】
例えば、ＲＯＭ６が第１の消去電圧ＶＥＲＡ１を予め格納しており、“０”セルの割合が５０％を超える場合には、ＮＡＮＤコントローラ２０は、第１の消去電圧ＶＥＲＡ１を選択するコマンドをメモリ２１へ送信する（Ｓ１２８）。メモリ２１は、ＮＡＮＤコントローラ２０のコマンドに従って第１の消去電圧ＶＥＲＡ１を選択する。そして、メモリ２１は、第１の消去電圧ＶＥＲＡ１を用いて電荷引抜き動作を実行し（Ｓ１３０）、その後、ベリファイチェックを行う（Ｓ１４０）。第１の消去電圧ＶＥＲＡ１は、電荷引抜き時にウェルＣＰＷＥＬＬに印加される電圧である。第２の実施形態では、ベリファイチェック時の参照電圧はＶＳＥＮＥＶ（例えば、３．５Ｖ）で一定である。
【００５８】
ステップＳ１３０の電荷引抜き動作において、ウェルドライバＷＥＬＬＤＲＶは、消去対象ブロックＢＬＫに対応するウェルＣＰＷＥＬＬに第１の消去電圧ＶＥＲＡ１を印加する。このとき、ワード線ドライバＷＤＲＶは、消去対象ブロックＢＬＫのワード線ＷＬの電圧を基準電圧（例えば、０ボルト）に固定している。
【００５９】
ベリファイチェックの結果、消去対象ブロックＢＬＫ内のいずれかのビット線ＢＬの電圧が参照電圧ＶＳＥＮＥＶ未満である場合（Ｓ１５０のＦａｉｌ）、充分にデータ消去されていないメモリセルＭＣがそのブロックＢＬＫに含まれていることを意味する。従って、ステップＳ１３０およびＳ１４０からなる消去ループを再度実行する。消去ループは、消去対象ブロックＢＬＫの全カラムのセルストリング１０がベリファイチェックをパスするまで繰り返される。ここで、各消去ループの電荷引抜き動作において、第１の消去電圧ＶＥＲＡ１が用いられる。そして、消去対象ブロックＢＬＫの全セルストリング１０がベリファイチェックをパスした場合（Ｓ１５０のＰａｓｓ）、消去動作が終了する。
【００６０】
一方、“０”セルの数がブロックＢＬＫ全体またはページ全体に対して５０％以下である場合（Ｓ１２５）、ＮＡＮＤコントローラは、第１の消去電圧ＶＥＲＡ１よりも高い第２の消去電圧ＶＥＲＡ２（例えば、１６Ｖ）を選択するコマンドをメモリ２１へ送信する（Ｓ１６０）。メモリ２１は、第２の消去電圧ＶＥＲＡ２を用いて消去動作を実行する（Ｓ１３０）。
【００６１】
例えば、ＲＯＭ６が第１の消去電圧ＶＥＲＡ１の他に、それよりも高い第２の消去電圧ＶＥＲＡ２を格納しており、０”セルの数が５０％以下である合には、ＮＡＮＤコントローラ２０は、第２の消去電圧ＶＳＥＮＥＶ２を選択するコマンドをメモリ２１へ送信する（Ｓ１６０）。メモリ２１は、ＮＡＮＤコントローラ２０のコマンドに従って第２の消去電圧ＶＳＥＮＥＶ２を選択する。そして、メモリ２１は、第２の消去電圧ＶＳＥＮＥＶ２を用いて電荷引抜き動作を実行し（Ｓ１３０）、その後、ベリファイチェックを行う（Ｓ１４０）。消去ループは、消去対象ブロックＢＬＫの全カラムのセルストリング１０がベリファイチェックをパスするまで繰り返される。各消去ループにおいて、電荷引抜き動作では、第２の消去電圧ＶＥＲＡ２が用いられる。ここで、各消去ループの電荷引抜き動作において、第２の消去電圧ＶＥＲＡ２が用いられる。そして、消去対象ブロックＢＬＫの全カラムのセルストリング１０がベリファイチェックをパスすると、消去動作が終了する。
【００６２】
“０”セルの数がブロックＢＬＫ全体またはページ全体に対して所定値（５０％）以下である場合、“１”セルが多いため、上述の”１”データ残りが比較的発生しやすい状況となる。従って、この場合には、電荷引抜き時のセルウェル電圧として、第２の消去電圧ＶＥＲＡ２を用いる。第２の参照電圧ＶＳＥＮＥＶ２は、第１の参照電圧ＶＳＥＮＥＶよりも高いので、メモリセルＭＣに蓄積された電荷（電子）は、排出されやすくなる。よって、ブロックＢＬＫまたはページにおいて“１”セルの割合が高い場合であっても、ステップＳ１３０の消去動作によって、メモリセルＭＣのデータは、充分に消去され得る。その結果、”１”データ残りが発生し難くなる。従って、第２の実施形態は、第１の実施形態と同様の効果を得ることができる。
【００６３】
（第３の実施形態）
図６は、第３の実施形態によるメモリ２１およびＮＡＮＤコントローラ２０の動作を示すフロー図である。第３の実施形態によるメモリ２１およびＮＡＮＤコントローラ２０の構成は、第１の実施形態のそれらの構成と同様でよい。
【００６４】
第３の実施形態では、ブロックＢＬＫまたはページのデータのうち所定の論理値データの割合に応じて、ＮＡＮＤコントローラ２０は、電荷引抜き動作およびベリファイチェックを実行した後、さらに電荷引抜き動作を実行する。
【００６５】
まず、センスアンプ回路２が消去対象であるブロックＢＬＫからデータを読み出す（Ｓ２１０）。読出しデータは、Ｉ／Ｏバッファ５を介してＮＡＮＤコントローラ２０に出力される。
【００６６】
ＮＡＮＤコントローラ２０は、データ“０”または“１”の個数をカウントし、ブロックＢＬＫ全体またはページ全体に対するそのデータの個数の割合を算出する（Ｓ２２０）。例えば、ＮＡＮＤコントローラ２０は、“０”セルの数をカウントし、ブロックＢＬＫ全体またはページ全体のメモリセルＭＣ数に対する“０”セルの個数の割合を算出する。
【００６７】
次に、ＮＡＮＤコントローラ２０が“０”セル数の割合をチェックする（Ｓ２２５）。“０”セルの割合がブロックＢＬＫ全体またはページ全体に対して所定値（ここでは５０％とする）を超える場合、メモリ２１は、通常通りに消去動作を実行する。即ち、メモリ２１は、電荷引抜き動作を実行し（Ｓ２３０）、ベリファイチェックを行う（Ｓ２４０）。
【００６８】
ベリファイチェックの結果、消去対象ブロックＢＬＫ内のいずれかのビット線ＢＬの電圧が参照電圧ＶＳＥＮＥＶ（例えば、３．５Ｖ）未満である場合（Ｓ２５０のＦａｉｌ）、ステップＳ２３０およびＳ２４０からなる消去ループを実行する。消去ループは、消去対象ブロックＢＬＫの全カラムのセルストリング１０がベリファイチェックをパスするまで繰り返される。そして、消去対象ブロックＢＬＫの全セルストリング１０がベリファイチェックをパスした場合（Ｓ２５０のＰａｓｓ）、消去動作が終了する。
【００６９】
一方、“０”セルの割合がブロックＢＬＫ全体またはページ全体に対して５０％以下である場合（Ｓ２２５）、ＮＡＮＤコントローラ２０は、ベリファイチェックをパスした後に再度電荷引抜き動作を実行するコマンドをメモリ２１へ送信する。メモリ２１は、ＮＡＮＤコントローラ２０からのコマンドに従って、消去動作を実行する。即ち、メモリ２１は、電荷引抜き動作を実行し（Ｓ２３１）、ベリファイチェックを行う（Ｓ２４１）。ステップＳ２３１およびＳ２４１の消去ループは、それぞれステップＳ２３０およびＳ２４０の消去ループと同様である。
【００７０】
消去ループは、消去対象ブロックＢＬＫの全カラムのセルストリング１０がベリファイチェックをパスするまでを繰り返される。そして、消去対象ブロックＢＬＫの全カラムのセルストリング１０がベリファイチェックをパスした場合（Ｓ２５１のＰａｓｓ）、メモリ２１は、再度、電荷引抜き動作を実行する（Ｓ２６０）。これは、“１”ワード線不良により消去不十分なメモリセルＭＣが存在している場合に、そのメモリセルＭＣのデータを充分に消去するためである。
【００７１】
電荷引抜き動作の終了後、消去動作を終了する。
【００７２】
第３の実施形態は、”１”データ残りが比較的発生しやすい状況において、ベリファイチェックをパスした後、再度、電荷引抜き動作を実行する。これにより、第１および第２の実施形態と同様に、消去対象ブロックのメモリセルＭＣのデータは、充分に消去され得る。その結果、”１”データ残りが発生し難くなる。従って、第３の実施形態も、第１の実施形態と同様の効果を得ることができる。
【００７３】
また、充分にデータ消去されていないメモリセルＭＣを含むセルストリング１０が誤ってステップ２５１のベリファイチェックをパスしてしまっても、再度の電荷引抜き動作（Ｓ２６０）により、充分にデータ消去されていないメモリセルＭＣを消去することが可能となる。
【００７４】
（第４の実施形態）
図７は、第４の実施形態によるメモリ２１およびＮＡＮＤコントローラ２０の動作を示すフロー図である。第４の実施形態によるメモリ２１およびＮＡＮＤコントローラ２０の構成は、第１の実施形態のそれらの構成と同様でよい。
【００７５】
第４の実施形態では、ブロックＢＬＫまたはページのデータのうち所定の論理値データの割合に応じて、ＮＡＮＤコントローラ２０は、ソースドライバＳＤＲＶがセルソースＣＥＬＳＲＣに電圧ＶＤＤを印加してからセンスアンプ回路２が各カラムのビット線ＢＬの電圧を検知するまでの時間（以下、センス時間ともいう）ＮＴＮＥＶを短縮させる。
【００７６】
まず、センスアンプ回路２が消去対象であるブロックＢＬＫからデータを読み出す（Ｓ３１０）。読出しデータは、Ｉ／Ｏバッファ５を介してＮＡＮＤコントローラ２０に出力される。
【００７７】
ＮＡＮＤコントローラ２０は、データ“０”または“１”の個数をカウントし、ブロックＢＬＫ全体またはページ全体に対するそのデータの個数の割合を算出する（Ｓ３２０）。例えば、ＮＡＮＤコントローラ２０は、“０”セルの数をカウントし、ブロックＢＬＫ全体またはページ全体のメモリセル数に対する“０”セルの個数の割合を算出する。
【００７８】
次に、ＮＡＮＤコントローラ２０が“０”セル数の割合をチェックする（Ｓ３２５）。“０”セルの数がブロックＢＬＫ全体またはページ全体に対して所定値（ここでは５０％とする）を超える場合、ＮＡＮＤコントローラ２０は、第１のセンス時間ＮＴＮＥＶ１（例えば、７．５μｓ）を選択するコマンドをメモリ２１へ送信し（Ｓ３２８）、メモリ２１は、第１のセンス時間ＮＴＮＥＶ１を用いて通常通りに消去動作を実行する（Ｓ３３０〜Ｓ３５０）。
【００７９】
例えば、ＲＯＭ６が第１のセンス時間ＮＴＮＥＶ１を予め格納しており、“０”セルの割合が５０％を超える場合には、ＮＡＮＤコントローラ２０は、第１のセンス時間ＮＴＮＥＶ１を選択するコマンドをメモリ２１へ送信する（Ｓ３２８）。メモリ２１は、ＮＡＮＤコントローラ２０のコマンドに従って第１のセンス時間ＮＴＮＥＶ１を選択する。そして、メモリ２１は、電荷引抜き動作を実行し（Ｓ３３０）、その後、第１のセンス時間ＮＴＮＥＶ１を用いてベリファイチェックを行う（Ｓ３４０）。
【００８０】
このベリファイチェックにおいて、ソースドライバＳＤＲＶがセルソースＣＥＬＳＲＣに電圧ＶＤＤを印加してから第１のセンス時間ＮＴＮＥＶ１の経過後に、センスアンプ回路２が各カラムのビット線ＢＬの電圧を検知する。
【００８１】
ベリファイチェックの結果、消去対象ブロックＢＬＫ内のいずれかのビット線ＢＬの電圧が参照電圧ＶＳＥＮＥＶ未満である場合（Ｓ３５０のＦａｉｌ）、ステップＳ３３０およびＳ３４０からなる消去ループを繰り返し実行する。消去ループは、消去対象ブロックＢＬＫの全カラムのセルストリング１０がベリファイチェックをパスするまで繰り返される。ここで、各消去ループのベリファイチェックにおいて、第１のセンス時間ＮＴＮＥＶ１が用いられる。そして、消去対象ブロックＢＬＫの全セルストリング１０がベリファイチェックをパスした場合（Ｓ３５０のＰａｓｓ）、消去動作が終了する。
【００８２】
一方、“０”セルの割合がブロックＢＬＫ全体またはページ全体に対して５０％以下である場合（Ｓ３２５）、ＮＡＮＤコントローラ２０は、第１のセンス時間ＮＴＮＥＶ１よりも短い第２のセンス時間ＮＴＮＥＶ２（例えば、７．０μｓ）を選択するコマンドをメモリ２１へ送信する（Ｓ３６０）。メモリ２１は、第２のンス時間ＮＴＮＥＶ２を用いてベリファイチェックを実行する（Ｓ３３０）。
【００８３】
例えば、ＲＯＭ６が第１のセンス時間ＮＴＮＥＶ１とともに、それよりも短い第２のンス時間ＮＴＮＥＶ２を格納しており、０”セルの割合が５０％以下である合には、ＮＡＮＤコントローラ２０は、第２のンス時間ＮＴＮＥＶ２を選択するコマンドをメモリ２１へ送信する（Ｓ３６０）。メモリ２１は、ＮＡＮＤコントローラ２０のコマンドに従って第２のンス時間ＮＴＮＥＶ２を選択する。そして、メモリ２１は、電荷引抜き動作を実行し（Ｓ３３０）、その後、第２のンス時間ＮＴＮＥＶ２を用いてベリファイチェックを行う（Ｓ３４０）。消去ループは、消去対象ブロックＢＬＫの全カラムのセルストリング１０がベリファイチェックをパスするまで繰り返される。ここで、各消去ループのベリファイチェックにおいて、第２のンス時間ＮＴＮＥＶ２が用いられる。そして、消去対象ブロックＢＬＫの全カラムのセルストリング１０がベリファイチェックをパスした場合（Ｓ３５０のＰａｓｓ）、消去動作が終了する。
【００８４】
セルストリング１０の全メモリセルＭＣのデータが充分に消去されている場合、そのセルストリング１０に接続されたビット線ＢＬの電圧は、ベリファイチェックにおいて短時間に立ち上がる。一方、“１”ワード線不良によって、充分にデータ消去されていないメモリセルＭＣがある場合には、ビット線ＢＬの電圧は、ベリファイチェックにおいて或る程度の時間をおいて立ち上がる。そこで、”１”データ残りが比較的発生しやすい状況の場合には、ベリファイチェックにおいて比較的短い第２のセンス時間ＮＴＮＥＶ２を用いることによって、消去不良のメモリセルＭＣを含むセルストリング１０をパスし難くする。これにより、ブロックＢＬＫに対して再度消去ループを実行し、”１”データ残りの発生を抑制する。このように、第４の実施形態も、第１の実施形態と同様の効果を得ることができる。
【００８５】
また、ベリファイチェックの時間を短くすることができ、半導体記憶装置の動作を高速化することができる。
【００８６】
上記第１から第４の実施形態は、それらの２つ以上を組み合わせてもよい。これにより、さらに、効果的に１”ワード線不良問題の発生を抑制することができる。即ち、ブロックＢＬＫまたはページのデータのうち所定の論理値データの割合に応じて、参照電圧ＶＳＥＮＥＶ、消去電圧ＶＥＲＡ、消去動作のシーケンスおよびセンス時間ＮＴＮＥＶのうち２つ以上を変更してもよい。これにより、 “１”データ残りに対してさらに効果的に対処することができる。
【００８７】
また、上記実施形態においては、ＮＡＮＤコントローラ２０を例に挙げて説明しているが、メモリ２１内に制御回路を設け、制御回路が“０”セル数の割合をチェックする（Ｓ２５、Ｓ１２５、Ｓ２２５、Ｓ３２５）し、データ消去動作時における消去条件を変更（Ｓ２８、Ｓ１２８、Ｓ３２８、Ｓ６０、Ｓ１６０、Ｓ３６０）しても良い。
【符号の説明】
【００８８】
２１・・・ＮＡＮＤ型フラッシュメモリ、２０・・・ＮＡＮＤコントローラ、１・・・メモリセルアレイ、２・・・センスアンプ回路、３・・・ロウデコーダ、４・・・制御部、５・・・入出力バッファ、６・・・ＲＯＭフューズ、７・・・電圧発生回路、ＷＤＲＶ・・・ワード線ドライバ、ＷＥＬＬＤＲＶ・・・ウェルドライバ、ＳＤＲＶ・・・ソース線ドライバ
【図１】
2012169006.tif 000003
【図２】
2012169006.tif 000004
【図３】
2012169006.tif 000005
【図４】
2012169006.tif 000006
【図５】
2012169006.tif 000007
【図６】
2012169006.tif 000008
【図７】
2012169006.tif 000009