(57)【要約】【課題】データの信頼性を維持しつつ、書き込み時間を短縮する。【解決手段】制御回路６は、選択ワード線に書き込みパルス電圧を印加することにより選択ワード線に沿った１ページのメモリセルに対する書き込み動作を実行した後、データ書き込みが完了したか否かを確認するベリファイ読み出し動作を実行する。データ書き込みが完了しなかった場合に書き込みパルス電圧を所定のステップアップ電圧の分だけ上昇させるステップアップ動作が実行される。ビットスキャン回路は、ベリファイ読み出し動作のセンスアンプ回路に保持された読み出しデータに基づいて、同時に読み出された複数のメモリセルのうち、所定の閾値電圧に達したと判定されるメモリセルの数が所定数以上となったか否かを判定する。制御回路は、前記ビットスキャン回路の判定結果に基づいて、ステップアップ電圧の大きさを変化させる。【選択図】図１
2012155798.tif 000002
【特許請求の範囲】
【請求項１】
複数の不揮発性メモリセルを直列接続してなるメモリストリングとその両端に接続された第１及び第２の選択ゲートトランジスタとを備えたＮＡＮＤセルユニットの集合により構成されるブロックを複数個配列して構成されるメモリセルアレイと、
第１の方向に並ぶ前記メモリセルの制御ゲートを共通接続するワード線と、
前記ＮＡＮＤセルユニットの第１の端部に接続されるビット線と、
前記ＮＡＮＤセルユニットの第２の端部に接続されるソース線と、
前記ビット線の電位を検知して前記メモリセルに保持されるデータを判定するセンスアンプ回路と、
選択ワード線に書き込みパルス電圧を印加することにより前記選択ワード線に沿った１ページのメモリセルに対する書き込み動作を実行した後、前記１ページのメモリセルに対するデータ書き込みが完了したか否かを確認するベリファイ読み出し動作を実行し、データ書き込みが完了しなかった場合に前記書き込みパルス電圧を所定のステップアップ電圧の分だけ上昇させるステップアップ動作を実行する制御回路と、
前記ベリファイ読み出し動作の結果前記センスアンプ回路に保持された読み出しデータに基づいて、同時に読み出された複数の前記メモリセルのうち、所定の閾値電圧に達したと判定されるメモリセルの数が所定数以上となったか否かを判定するビットスキャン回路と
を備え、
前記制御回路は、前記ビットスキャン回路の判定結果に基づいて、前記ステップアップ電圧の大きさを変化させるように構成された
ことを特徴とする不揮発性半導体記憶装置。
【請求項２】
前記制御回路は、
１つのワード線に沿った複数のメモリセルにおいて、第１の閾値電圧に達したと判定されるメモリセルの数が第１の数以上となった場合に、前記ステップアップ電圧の大きさを第１の値から、これよりも小さい第２の値に変更する第１の制御と、
１つのワード線に沿った複数のメモリセルにおいて、前記第１の閾値電圧に達したと判定されるメモリセルの数が前記第１の数よりも大きい第２の数以上となった場合に、前記ステップアップ電圧の大きさを前記第２の値から前記第１の値に変更する第２の制御と
を実行可能に構成された
ことを特徴とする請求項１記載の不揮発性半導体記憶装置。
【請求項３】
前記第２の制御では、前記第１の閾値電圧よりも大きい第２の閾値電圧に達したと判定されるメモリセルの数が前記第１の数に達している場合には、前記ステップアップ電圧の大きさを前記第２の値から前記第１の値に変更せず、第２の値のまま維持する
ことを特徴とする請求項２記載の不揮発性半導体記憶装置。
【請求項４】
複数の不揮発性メモリセルを直列接続してなるメモリストリングとその両端に接続された第１及び第２の選択ゲートトランジスタとを備えたＮＡＮＤセルユニットの集合により構成されるブロックを複数個配列して構成されるメモリセルアレイと、第１の方向に並ぶ前記メモリセルの制御ゲートを共通接続するワード線とを備えた不揮発性半導体装置に対する書き込み方法において、
選択ワード線に書き込みパルス電圧を印加することにより前記選択ワード線に沿った１ページのメモリセルに対する書き込み動作を実行するステップと、
前記１ページのメモリセルに対するデータ書き込みが完了したか否かを確認するベリファイ読み出し動作を実行するステップと、
前記ベリファイ読み出し動作の結果に基づいて、同時に読み出された複数の前記メモリセルのうち、所定の閾値電圧に達したと判定されるメモリセルの数が所定数以上となったか否かを判定するビットスキャン動作を実行するステップと、
データ書き込みが完了しなかった場合において、前記書き込みパルス電圧を所定のステップアップ電圧の分だけ上昇させると共に、そのステップアップ電圧の大きさを、前記ビットスキャン動作の結果に従い変動させるステップと
を備えたことを特徴とする書き込み方法。
【請求項５】
１つのワード線に沿った複数のメモリセルにおいて、第１の閾値電圧に達したと判定されるメモリセルの数が第１の数以上となった場合に、前記ステップアップ電圧の大きさを第１の値からこれよりも小さい第２の値に変更すると共に、
１つのワード線に沿った複数のメモリセルにおいて、前記第１の閾値電圧に達したと判定されるメモリセルの数が前記第１の数よりも大きい第２の数以上となった場合に、前記ステップアップ電圧の大きさを前記第２の値から前記第１の値に変更する
ことを特徴とする請求項４記載の書き込み方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本明細書に記載の実施の形態は、不揮発性半導体記憶装置に関する。
【背景技術】
【０００２】
従来から、半導体メモリとして浮遊ゲートに電荷を蓄積するタイプのメモリセルを用いたフラッシュメモリが多く利用されている。これは、不揮発性である他、１ビット当たりのコストが低く、集積度が高いためである。この中でも、ＮＡＮＤ型のフラッシュメモリは、複数のメモリセルを選択トランジスタの間に直列に接続することにより、メモリセル間のコンタクトを少なくすることができるため特に集積度を高くすることができる。また、メモリセル１個当たりに２ビット以上のデータを記憶する多値記憶方式の製品も現れてきている。この場合、さらに、大容量化、低コスト化、チップ面積縮小化を図ることができる。
【０００３】
また、ＮＡＮＤ型フラッシュメモリのデータ書き込み動作（プログラム動作）においては、目標とする閾値電圧が得られたか否かを確認するためのベリファイ読み出し動作が必要になる。ベリファイ読み出し動作の結果、所望の閾値電圧まで書き込みが十分になされていないと判断される場合には、書き込み電圧を段階的に上昇させて（ステップアップ動作という）、以後同様の書き込み動作、ベリファイ読み出し動作が所望の閾値電圧が得られるまで繰り返される。
【０００４】
セルの微細化が進んだ高集積化フラッシュメモリでは、隣接セル間の干渉により、メモリセルの閾値電圧分布が影響を受け、その分布幅が拡がったり、全体的に移動したりする。特に、多値記憶方式を採用した場合には、２値記憶方式と比べてデータ閾値の幅と間隔を狭く設定する必要があるため、隣接セル間の干渉がデータの信頼性に大きく影響する。そのため、隣接セルの干渉の影響を最小限とするための様々なデータ書き込み方法が提案されている。
【０００５】
分布幅と間隔の小さい閾値電圧分布を得るためには通常、ステップアップ動作におけるステップアップ幅（上昇幅）を小さくことが有効である。しかし、ステップアップ幅を小さくすることは、書き込み時間を長くし、不揮発性半導体記憶装置のパフォーマンスを低下させる。このため、データの信頼性を維持しつつ、書き込み時間の短縮化を図った不揮発性半導体記憶装置の提案が望まれている。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００９−７０５０１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
この発明は、データの信頼性を維持しつつ、書き込み時間を短縮することができる不揮発性半導体記憶装置を提供することを目的とする。
【課題を解決するための手段】
【０００８】
以下に説明する実施の形態の不揮発性半導体記憶装置は、複数の不揮発性メモリセルを直列接続してなるメモリストリングとその両端に接続された第１及び第２の選択ゲートトランジスタとを備えたＮＡＮＤセルユニットの集合により構成されるブロックを複数個配列して構成されるメモリセルアレイを備える。ワード線は、第１の方向に並ぶ前記メモリセルの制御ゲートを共通接続する。ビット線は、前記ＮＡＮＤセルユニットの第１の端部に接続され、ソース線は、前記ＮＡＮＤセルユニットの第２の端部に接続される。センスアンプ回路は、前記ビット線の電位を検知して前記メモリセルに保持されるデータを判定する。制御回路は、選択ワード線に書き込みパルス電圧を印加することにより前記選択ワード線に沿った１ページのメモリセルに対する書き込み動作を実行した後、前記１ページのメモリセルに対するデータ書き込みが完了したか否かを確認するベリファイ読み出し動作を実行し、データ書き込みが完了しなかった場合に前記書き込みパルス電圧を所定のステップアップ電圧の分だけ上昇させるステップアップ動作を実行する。ビットスキャン回路は、前記ベリファイ読み出し動作の結果前記センスアンプ回路に保持された読み出しデータに基づいて、同時に読み出された複数の前記メモリセルのうち、所定の閾値電圧に達したと判定されるメモリセルの数が所定数以上となったか否かを判定する。前記制御回路は、前記ビットスキャン回路の判定結果に基づいて、前記ステップアップ電圧の大きさを変化させるように構成されている。
【図面の簡単な説明】
【０００９】
【図１】第１の実施の形態に係るＮＡＮＤ型フラッシュメモリの概略構成を示している。
【図２】図１のビットスキャン回路４の回路構成の一例を示している。
【図３】第１の実施の形態に係るＮＡＮＤ型フラッシュメモリにおいて１のメモリセルが保持し得る閾値電圧分布の一例を示す。
【図４Ａ】第１の実施の形態におけるプログラム動作、及びステップアップ動作を説明するための概念図である。
【図４Ｂ】第１の実施の形態におけるプログラム動作、及びステップアップ動作を説明するための概念図である。
【図４Ｃ】第１の実施の形態におけるプログラム動作、及びステップアップ動作を説明するための概念図である。
【図５】第１の実施の形態におけるプログラム動作、ベリファイ読み出し動作及びステップアップ動作の手順を示すフローチャートである。
【図６】第２の実施の形態においてＮＡＮＤ型フラッシュメモリのメモリセルに与えられる閾値電圧分布の一例を示している。
【図７Ａ】第２の実施の形態におけるプログラム動作、及びステップアップ動作を説明するための概念図である。
【図７Ｂ】第２の実施の形態におけるプログラム動作、及びステップアップ動作を説明するための概念図である。
【図７Ｃ】第２の実施の形態におけるプログラム動作、及びステップアップ動作を説明するための概念図である。
【図７Ｄ】第２の実施の形態におけるプログラム動作、及びステップアップ動作を説明するための概念図である。
【図８Ａ】第２の実施の形態におけるプログラム動作、ベリファイ読み出し動作及びステップアップ動作の手順を示すフローチャートである。
【図８Ｂ】第２の実施の形態におけるプログラム動作、ベリファイ読み出し動作及びステップアップ動作の手順を示すフローチャートである。
【図９】プログラム電圧ＶＰＧＭ、及びステップアップ電圧ΔＶＰＧＭの変化の様子の一例を示すグラフである。
【図１０】変形例を説明している。
【図１１】変形例を説明している。
【発明を実施するための形態】
【００１０】
次に、本発明の実施の形態を、図面を参照して詳細に説明する。
【００１１】
[第１の実施の形態]
図１は、本発明の第１の実施の形態によるＮＡＮＤ型フラッシュメモリ２１の概略構成を示している。図１に示すように、このＮＡＮＤ型フラッシュメモリ２１は、メモリセルアレイ１と、センスアンプ回路２と、ロウデコーダ３と、ビットスキャン回路４と、入出力バッファ５と、制御回路６と、ＲＯＭフューズ７と、電圧発生回路８から構成されている。制御回路６は、メモリセルアレイ１に対する制御部を構成するものである。
【００１２】
メモリセルアレイ１は、ＮＡＮＤセルユニット１０がマトリクス配列されて構成されている。一つのＮＡＮＤセルユニット１０は、複数個直列に接続されたメモリセルＭＣ（ＭＣ０、ＭＣ１、…、ＭＣ３１）と、その両端に接続される選択ゲートトランジスタＳ１、Ｓ２により構成されている。
【００１３】
図示は省略するが、１つのメモリセルＭＣは、周知の通り、ドレインとソースとの間に形成されたゲート絶縁膜（トンネル絶縁膜）上に電荷蓄積層としてのフローティングゲート電極を有し、そのフローティングゲート電極上に、ゲート間絶縁膜を介してコントロールゲート電極を形成したものとすることができる。コントロールゲートは、ワード線の１つに接続される。
【００１４】
選択ゲートトランジスタＳ１のソースは共通ソース線ＣＥＬＳＲＣに接続され、選択ゲートトランジスタＳ２のドレインはビット線ＢＬに接続されている。
【００１５】
ＮＡＮＤセルユニット１０内のメモリセルＭＣの制御ゲートはそれぞれ異なるワード線ＷＬ（ＷＬ０、ＷＬ１、…、ＷＬ３１）に接続されている。選択ゲートトランジスタＳ１、Ｓ２のゲートはワード線ＷＬと並行する選択ゲート線ＳＧ１、ＳＧ２にそれぞれ接続されている。１ワード線を共有する複数のメモリセルの集合は、１メモリセルに格納されるビット数に応じて、１ページ又は複数ページを構成する。書き込み動作はページ単位で行われる。すなわち、同時に複数のメモリセルに対してデータの書き込みが行われる。ワード線ＷＬと選択ゲート線ＳＧ１、ＳＧ２を共有する複数のＮＡＮＤセルユニット１０の集合は、データ消去の単位となるブロックＢＬＫを構成する。
【００１６】
図１に示すように、メモリセルアレイ１には、ビット線ＢＬ方向に複数のブロックＢＬＫ（ＢＬＫ０、ＢＬＫ１、…、ＢＬＫｎ）が構成される。これらの複数ブロックを含むメモリセルアレイ１は、シリコン基板の一つのセルウェル(ＣＰＷＥＬＬ)内に形成されている。
【００１７】
メモリセルアレイ１のビット線ＢＬには、読み出しデータをセンスし書き込みデータを保持するためのページバッファを構成する、複数のセンスアンプＳＡを有するセンスアンプ回路２が接続されている。センスアンプ回路２はカラム選択ゲートを有する。ロウデコーダ（ワード線ドライバを含む）３は、ワード線ＷＬ及び選択ゲート線ＳＧ１、ＳＧ２を選択して駆動する。
【００１８】
ビットスキャン回路４は、プログラム動作後のベリファイ読み出し動作の結果、センスアンプ回路２のページバッファ２に保持されている読み出しデータに基づいて、ベリファイパスビット数をカウントし、そのカウント数が所定数以上になったか否かを判定する。制御回路６は、このビットスキャン回路４の判定結果に従って、１つのワード線ＷＬに沿ったメモリセルへの書き込みの完了を判定する。また、制御回路６は、ビットスキャン回路４の判定結果に従って、後述するように、書き込み電圧ＶＰＧＭのステップアップ電圧ΔＶＰＧＭを変更する。
【００１９】
図２は、このビットスキャン回路４の回路構成の一例を示している。
ビットスキャン回路４は、センス電流パス８７と、リファレンス定電流パス８８と、インバータ９０と、出力ノード９２とを備えている。１ページ分のセンスアンプ回路２は、ベリファイ読み出し結果であるパス／フェイルデータを保持する。ここでは、ベリファイ読み出し結果が”パス（ＰＡＳＳ）”のときに“Ｈ”レベルが保持され、”フェイル（ＦＡＩＬ）”のときに“Ｌ”レベルが保持されるものとする。
【００２０】
このような構成のビットスキャン回路４は、センス電流パス８７を流れる電流Ｉｓｕｍと、リファレンス定電流パス８８を流れるリファレンス電流Ｉｒｅｆとの間の差動電流を、インバータ９０の出力ノード９２から検出するという動作を行っている。リファレンス定電流パス８８内のＭＯＳトランジスタのゲート端子に供給される信号Ｂ０，Ｂ１は、ベリファイパスビット数と比較すべき基準値に応じて設定される信号である。
【００２１】
図１に戻って説明を続ける。データ入出力バッファ５は、センスアンプ回路２、ビットスキャン回路４と外部入出力端子との間でデータ授受を行う他、コマンドデータやアドレスデータを受け取る。
制御回路６は、書き込みイネーブル信号ＷＥｎ、読み出しイネーブル信号ＲＥｎ、アドレスラッチイネーブル信号ＡＬＥ、コマンドラッチイネーブル信号ＣＬＥ等の外部制御信号を受けて、メモリ動作の全般の制御を行う。
【００２２】
具体的に、制御回路６は、コマンドインタフェースやアドレス保持、転送回路を含み、供給されたデータが書き込みデータであるかアドレスデータであるかを判定する。この判定結果に応じて、書き込みデータはセンスアンプ回路２に転送され、アドレスデータはロウデコーダ３やセンスアンプ回路２に転送される。また制御回路６は、外部制御信号に基づいて、読み出し、書き込み・消去のシーケンス制御、印加電圧の制御等を行う。
電圧発生回路７は、昇圧回路１１と、パルス発生回路１２とを備えている。
【００２３】
図３は、この実施の形態でのＮＡＮＤ型フラッシュメモリに対し２値データ記憶方式を採用する場合の閾値電圧分布の一例を示している。２値データは、負の閾値電圧分布Ｅと、正の閾値電圧分布Ａにより規定される。
【００２４】
データ書き込みは、選択ワード線に書き込み電圧ＶＰＧＭを与え、非選択ワード線に書き込みパス電圧Ｖｐａｓｓを与え、ビット線にＶｓｓ（閾値電圧を上昇させる“０”書き込みの場合）またはＶｄｄ（閾値電圧を上昇させない書き込み禁止の場合）を与えて、選択的にメモリセルの浮游ゲートに電子を注入する動作として行う。
【００２５】
即ち、“０”書き込みの場合、ビット線に与えたＶｓｓがＮＡＮＤセルユニットのチャネルまで転送され、書き込み電圧ＶＰＧＭが与えられたときにチャネルから浮游ゲートにトンネル電流による電子が注入される。“１”書き込み（書き込み禁止）の場合、ＮＡＮＤセルチャネルはＶｄｄ−Ｖｔ（選択ゲートトランジスタの閾値電圧）まで充電されてフローティングになり、書き込み電圧ＶＰＧＭが与えられたときセルチャネルは容量結合によりブーストされて、電子注入が起こらない。
【００２６】
また、データ書き込みには、書き込み電圧を書き込みサイクル毎に少しずつ高くするステップアップ書き込み方式を利用する。
【００２７】
メモリセルの閾値電圧は、ほとんどの場合、閾値電圧分布を正規分布と見た場合、正規分布の所定の分散値の範囲内（以下、これを「主分布」という）に収まるが（図３の点線で示す）、一部のメモリセルの閾値電圧は、この主分布から外れた範囲に分布する。以下では、このような主分布よりも高い位置の分布を「上裾部分」、低い位置の分布を「下裾部分」という。ステップアップ電圧ΔＶＰＧＭを小さく設定すれば、この上裾部分、下裾部分の大きさを小さくすることはできるが、それはプログラム動作速度の低下を招く。このような上裾部分、下裾部分が、１つの閾値電圧分布において数％程度であれば、制御回路６中の誤り訂正回路６Ａによる訂正が可能である。すなわち、このような上裾部分、下裾部分を無理に主分布内に含めるようにステップアップ電圧ΔＶＰＧＭを一律に小さくする書き込みステップを採用する必要はない。
【００２８】
そこで、本実施の形態では、そのステップアップ動作を行う場合のステップアップ電圧ΔＶＰＧＭを次のように制御する。なお、複数のメモリセルが同時に書き込まれるため、ベリファイ読み出し動作により、読み出し結果がパスしたメモリセルは書き込み禁止となり、読み出し結果がフェイルしたメモリセルはステップ動作により上昇した書き込み電圧によって再度書き込みが行われる。図４Ａ〜図４Ｃは、このステップアップ電圧ΔＶＰＧＭの制御を説明する概念図である。
まず、閾値電圧分布ＥからＡに向けてのプログラム動作を行う場合、ステップアップ電圧ΔＶＰＧＭを少なくとも２つの値（例えばΔＶＰＧＭ１、ΔＶＰＧＭ２（＜ΔＶＰＧＭ１））の間で切り換える。プログラム動作開示直後は、図４Ａに示すように、ステップアップ電圧ΔＶＰＧＭを、高い値ΔＶＰＧＭ１に設定する。この間、ビットスキャン回路４は、ベリファイ電圧ＶＡＶに基づいて行われたベリファイ読み出し動作による読み出しデータのうち、”ＰＡＳＳ”となった数をカウントしている。
【００２９】
そして、”ＰＡＳＳ”となった１ワード線に沿ったメモリセルＭＣの数が、全体のα％以上となった場合、制御回路６は、ステップアップ電圧ΔＶＰＧＭを、ΔＶＰＧＭ１から、これより小さいΔＶＰＧＭ２に切り換える。ここでのα％は、誤り訂正回路６Ａにより救済可能なビット数に基づいて決定される。一例としてαは、１０（％）かそれ以下である。すなわち、制御回路６は、閾値電圧分布Ａの上裾部分がベリファイ電圧ＶＡＶを超えた場合に、ステップアップ電圧ΔＶＰＧＭの値をより低い値に切り換えるものである。これにより、閾値電圧分布Ａのうち、主分布を形成する部分は、小さなステップアップ電圧により書かれることになる。これにより主分布の分布幅を小さくすることができる。
【００３０】
その後、プログラム動作が進み、図４Ｃに示すように、閾値電圧分布Ａの（９０−β）％以上がベリファイ電圧ＶＡＶより大となったら、再びステップアップ電圧ΔＶＰＧＭをΔＶＰＧＭ１に設定する。ここでのβ％は、例えば１０％かそれ以下であり、誤り訂正回路６Ａによる誤り訂正が可能なビット数を考慮して設定される。すなわち、制御回路６は、閾値電圧分布Ａの下裾部分以外の部分がベリファイ電圧ＶＡＶを超えた場合に、ステップアップ電圧ΔＶＰＧＭの値をより高い値に切り換えるものである。
このようにして、１つの閾値電圧分布Ａが書き上がるまでの間において、分布Ａの上裾部分の書き上がるタイミング、主分布が書き上がるタイミングにおいて、ステップアップ電圧ΔＶＰＧＭを切り換えている。これにより、主分布の幅を狭く書き上げることができ、且つ全体としてプログラム動作の速度も高速にすることができる。一方、ΔＶＰＧＭの値が比較的高い状態で書き込まれた上裾部分、下裾部分に存在するメモリセルＭＣの数は、誤り訂正回路６Ａにより救済可能なビット数である。これは、“ＰＡＳＳ”したメモリセルＭＣの数によってΔＶＰＧＭの値を決定しているからである。すなわち、ＮＡＮＤ型フラッシュメモリに保存されたデータの信頼性を損なうことはない。
【００３１】
次に、本実施の形態のＮＡＮＤ型フラッシュメモリにおけるプログラム動作を、図５のフローチャートを参照して説明する。
プログラム動作の開始直後は、ステップアップ電圧ΔＶＰＧＭの初期値はΔＶＰＧＭ１に設定される。そして、制御回路６は、選択ワード線ＷＬに対し、プログラム電圧ＶＰＧＭとして初期値ＶＰＧＭ１を印加して、選択ワード線ＷＬに沿ったプログラム動作を実行する（Ｓ１１）。続いて、選択ワード線ＷＬに対し、ベリファイ電圧ＶＡＶを印加して、選択ワード線ＷＬに沿ったメモリセルＭＣに対するベリファイ読み出し動作を実行する（Ｓ１２）。
【００３２】
このベリファイ読み出し動作の結果に従い、ビットスキャン回路４によって”ＰＡＳＳ”と判定されたメモリセルのＭＣの数をカウントするビットスキャン動作が実行される（Ｓ１４）。すなわち、”ＰＡＳＳ”と判定されたメモリセルの数が判定される。
【００３３】
”ＰＡＳＳ”と判定されたメモリセルＭＣの数がα％未満である場合には、ステップアップ電圧ΔＶＰＧＭは初期値ΔＶＰＧＭ１のままとされる（Ｓ１５）。そして、プログラム電圧ＶＰＧＭとして、直前の値ＶＰＧＭ’よりもΔＶＰＧＭ１だけ大きな電圧を設定し（ステップアップ動作：Ｓ１８）、このステップアップされたプログラム電圧を用いたプログラム動作が実行される。
【００３４】
ビットスキャン回路４において”ＰＡＳＳ”と判定されたメモリセルＭＣの数がα％以上でありかつ（１００−β）％未満である場合には、ステップアップ電圧ΔＶＰＧＭは初期値ΔＶＰＧＭ１からΔＶＰＧＭ２に切り換えられ（Ｓ１６）、再びプログラム電圧ＶＰＧＭとして直前の値ＶＰＧＭ’よりもΔＶＰＧＭ２だけ大きな電圧（ＶＰＧＭ’＋ΔＶＰＧＭ２）を印加したプログラム動作が実行される（Ｓ１８）。以後、ビットスキャン回路４で”ＰＡＳＳ”と判定されるメモリセルＭＣの数が（１００−β）％以上となるまでの期間は、このステップアップ電圧ΔＶＰＧＭ２が用いられる。
【００３５】
ビットスキャン回路４において”ＰＡＳＳ”と判定されたメモリセルＭＣの数が（１００−β）％以上である場合には、ステップアップ電圧ΔＶＰＧＭは、再度ΔＶＰＧＭ２からΔＶＰＧＭ１に戻され（Ｓ１７）、再びプログラム電圧ＶＰＧＭとして直前の値ＶＰＧＭ’よりもΔＶＰＧＭ１だけ大きな電圧（ＶＰＧＭ’＋ΔＶＰＧＭ１）を印加したプログラム動作が実行される（Ｓ１８）。その後は、ステップアップ電圧ΔＶＰＧＭはΔＶＰＧＭ１に固定され、ステップアップ動作、プログラム動作及びベリファイ読み出し動作が、全てのメモリセルが”ＰＡＳＳ”とみなされるまで繰り返される（Ｓ１９〜Ｓ２２）。なお、ＥＣＣで救済できることを前提として、数個のメモリセルが“ＰＡＳＳ”しなくても動作終了する場合もある。
【００３６】
［第２の実施の形態］
次に、第２の実施の形態に係るＮＡＮＤ型フラッシュメモリを、図６を参照しつつ説明する。この実施の形態のＮＡＮＤ型フラッシュメモリの構造は、第１の実施の形態と同様である（図１）。ただし、この実施の形態では、図６に示すように、４値データ記憶方式（２ビット／セル）を採用する場合の閾値電圧分布の一例を示している。４値データは、負の閾値電圧分布Ｅと、正の閾値電圧分布Ａ〜Ｃにより規定される。
【００３７】
各閾値電圧分布Ａ〜Ｃは、ベリファイ電圧ＶＡＶ、ＶＢＶ、ＶＣＶを用いて書き上げられる。すなわち、プログラム電圧ＶＰＧＭを用いたプログラム動作の後は、３通りのベリファイ電圧ＶＡＶ、ＶＢＶ、ＶＣＶを用いたベリファイ読み出し動作が実行され、その結果がセンスアンプ回路２及びビットスキャン回路４に供給される。
【００３８】
閾値電圧分布Ａ〜Ｃのいずれも、主分布から外れた上裾部分、下裾部分を有している場合がある。本実施形態でも、誤り訂正回路６Ａを用いて訂正できる範囲でこのような上裾部分、下裾部分の存在は許容することができる。
【００３９】
そして、本実施形態においても、第１の実施の形態と同様に、ステップアップ動作を行う場合のステップアップ電圧ΔＶＰＧＭを制御する。
【００４０】
図７Ａ〜図７Ｄは、このステップアップ電圧ΔＶＰＧＭの制御を説明する概念図である。
【００４１】
プログラム動作開示直後は、図７Ａに示すように、ステップアップ電圧ΔＶＰＧＭを、高い値ΔＶＰＧＭ１に設定する。この間、ビットスキャン回路４は、ベリファイ電圧ＶＡＶに基づいて行われたベリファイ読み出し動作による読み出しデータのうち、"ＰＡＳＳ"となった数をカウントしている。
【００４２】
そして、”ＰＡＳＳ”となった１ワード線に沿ったメモリセルＭＣの数が、全体のα％以上となった場合、制御回路６は、ステップアップ電圧ΔＶＰＧＭを、ΔＶＰＧＭ１からΔＶＰＧＭ２に切り換える（図７Ｂ）。
【００４３】
その後、プログラム動作が進み、図７Ｃに示すように、閾値電圧分布Ａの（１００−β）％以上がベリファイ電圧ＶＡＶより大となった場合には、閾値電圧分布Ｂの書き込みの進行度合いに従って、ステップアップ電圧ΔＶＰＧＭをΔＶＰＧＭ２からΔＶＰＧＭ１に戻すか否かを決定する。閾値電圧分布Ｂの書き込みの度合いは、ビットスキャン回路４において判断する。
【００４４】
閾値電圧分布Ｂの書き込みが十分進んでおらず、未だα％未満しか”ＰＡＳＳ”でない（ベリファイ電圧ＶＢＶに達していない）場合には、ステップアップ電圧ΔＶＰＧＭをΔＶＰＧＭ２からΔＶＰＧＭ１に戻す（図７Ｃ）。
【００４５】
一方、閾値電圧分布Ｂの書き込みが十分進んでおり、既にα％以上のメモリセルがベリファイ電圧ＶＢＶ以上まで書き込まれている場合には、ステップアップ電圧ΔＶＰＧＭをΔＶＰＧＭ２からΔＶＰＧＭ１に戻さず、ΔＶＰＧＭ２によるステップアップ動作を継続する（図７Ｄ）。この場合に、ΔＶＰＧＭ１に戻すと、閾値電圧分布Ｂの主分布の幅が広がってしまうからである。
【００４６】
次に、本実施の形態のＮＡＮＤ型フラッシュメモリにおけるプログラム動作を、図８Ａ、図８Ｂのフローチャートを参照して説明する。
プログラム動作の開始直後は、ステップアップ電圧ΔＶＰＧＭの初期値はΔＶＰＧＭ１に設定される。そして、制御回路６は、選択ワード線ＷＬに対し、プログラム電圧ＶＰＧＭとして初期値ＶＰＧＭ１を印加して、選択ワード線ＷＬに沿ったプログラム動作を実行する（Ｓ１１）。続いて、選択ワード線ＷＬに対し、ベリファイ電圧ＶＡＶを印加して、選択ワード線ＷＬに沿ったメモリセルＭＣに対するベリファイ読み出し動作を実行する（Ｓ１２）。
【００４７】
このベリファイ電圧ＶＡＶを用いたベリファイ読み出し動作の結果に従い、ビットスキャン回路４によって”ＰＡＳＳ”と判定されたメモリセルのＭＣの数をカウントするビットスキャン動作（Ａレベルビットスキャン）が実行される（Ｓ１４）。すなわち、”ＰＡＳＳ”と判定されたメモリセルの数が判定される。
【００４８】
”ＰＡＳＳ”と判定されたメモリセルＭＣの数がα％未満である場合には、ステップアップ電圧ΔＶＰＧＭは初期値ΔＶＰＧＭ１のままとされる（Ｓ１５）。そして、プログラム電圧ＶＰＧＭとして、直前の値ＶＰＧＭ’よりもΔＶＰＧＭ１だけ大きな電圧を設定し（ステップアップ動作：Ｓ１８）、このステップアップされたプログラム電圧を用いたプログラム動作が実行される。
【００４９】
ビットスキャン回路４において”ＰＡＳＳ”と判定されたメモリセルＭＣの数がα％以上でありかつ（１００−β）％未満である場合には、ステップアップ電圧ΔＶＰＧＭは初期値ΔＶＰＧＭ１からΔＶＰＧＭ２に切り換えられ（Ｓ１６）、再びプログラム電圧ＶＰＧＭとして直前の値ＶＰＧＭ’よりもΔＶＰＧＭ２だけ大きな電圧（ＶＰＧＭ’＋ΔＶＰＧＭ２）を印加したプログラム動作が実行される（Ｓ１８）。以後、ビットスキャン回路４で”ＰＡＳＳ”と判定されるメモリセルＭＣの数が（１００−β）％以上となるまでの期間は、このステップアップ電圧ΔＶＰＧＭ２が用いられる。
【００５０】
ビットスキャン回路４において”ＰＡＳＳ”と判定されたメモリセルＭＣの数が（１００−β）％以上である場合には、選択ワード線ＷＬに対し、ベリファイ電圧ＶＢＶを印加して、選択ワード線ＷＬに沿ったメモリセルＭＣに対するベリファイ読み出し動作を実行する（Ｓ２２）。
【００５１】
このベリファイ電圧ＶＢＶを用いたベリファイ読み出し動作の結果に従い、ビットスキャン回路４によって”ＰＡＳＳ”と判定されたメモリセルのＭＣの数をカウントするビットスキャン動作（Ｂレベルビットスキャン）が実行される（Ｓ２４）。すなわち、”ＰＡＳＳ”と判定されたメモリセルの数が判定される。
”ＰＡＳＳ”と判定されたメモリセルＭＣの数がα％未満である場合には、ステップアップ電圧ΔＶＰＧＭは初期値ΔＶＰＧＭ１に切り換えられる（Ｓ２５）。そして、プログラム電圧ＶＰＧＭとして、直前の値ＶＰＧＭ’よりもΔＶＰＧＭ１だけ大きな電圧を設定し（ステップアップ動作：Ｓ２８）、このステップアップされたプログラム電圧を用いたプログラム動作が実行される（Ｓ２９）。その後、再度ベリファイ読み出し動作、ビットスキャン動作が行われる。
【００５２】
ビットスキャン回路４において”ＰＡＳＳ”と判定されたメモリセルＭＣの数がα％以上でありかつ（１００−β）％未満である場合には、ステップアップ電圧ΔＶＰＧＭはΔＶＰＧＭ２とされ（Ｓ２６）、再びプログラム電圧ＶＰＧＭとして直前の値ＶＰＧＭ’よりもΔＶＰＧＭ２だけ大きな電圧（ＶＰＧＭ’＋ΔＶＰＧＭ２）を印加したプログラム動作が実行される（Ｓ２８、Ｓ２９）。その後、再度ベリファイ読み出し動作、ビットスキャン動作が行われる。
【００５３】
ビットスキャン回路４においてＢレベルビットスキャンにより”ＰＡＳＳ”と判定されたメモリセルＭＣの数が（１００−β）％以上である場合には、図８Ｂに示すように、選択ワード線ＷＬに対し、ベリファイ電圧ＶＣＶを印加して、選択ワード線ＷＬに沿ったメモリセルＭＣに対するベリファイ読み出し動作を実行する（Ｓ３２）。
【００５４】
このベリファイ電圧ＶＣＶを用いたベリファイ読み出し動作の結果に従い、ビットスキャン回路４によって”ＰＡＳＳ”と判定されたメモリセルのＭＣの数をカウントするビットスキャン動作（Ｃレベルビットスキャン）が実行される（Ｓ３４）。すなわち、”ＰＡＳＳ”と判定されたメモリセルの数が判定される。
”ＰＡＳＳ”と判定されたメモリセルＭＣの数がα％未満である場合には、ステップアップ電圧ΔＶＰＧＭは初期値ΔＶＰＧＭ１に切り換えられる（Ｓ３５）。そして、プログラム電圧ＶＰＧＭとして、直前の値ＶＰＧＭ’よりもΔＶＰＧＭ１だけ大きな電圧を設定し（ステップアップ動作：Ｓ３８）、このステップアップされたプログラム電圧を用いたプログラム動作が実行される（Ｓ３９）。
【００５５】
ビットスキャン回路４において”ＰＡＳＳ”と判定されたメモリセルＭＣの数がα％以上でありかつ（１００−β）％未満である場合には、ステップアップ電圧ΔＶＰＧＭはΔＶＰＧＭ２とされ（Ｓ３６）、再びプログラム電圧ＶＰＧＭとして直前の値ＶＰＧＭ’よりもΔＶＰＧＭ２だけ大きな電圧（ＶＰＧＭ’＋ΔＶＰＧＭ２）を印加したプログラム動作が実行される（Ｓ３８、Ｓ３９）。
ビットスキャン回路４においてＣレベルビットスキャンにより”ＰＡＳＳ”と判定されたメモリセルＭＣの数が（１００−β）％以上である場合には、ステップアップ電圧ΔＶＰＧＭはΔＶＰＧＭ１に固定され（Ｓ４１）、ステップアップ動作、プログラム動作及びベリファイ読み出し動作が、全てのメモリセルが”ＰＡＳＳ”とみなされるまで繰り返される（Ｓ４３〜Ｓ４５）。このようなフローに従い、図８Ａ〜図８Ｄで説明した動作が得られる。
【００５６】
このような動作の結果、プログラム電圧ＶＰＧＭは、閾値電圧分布Ａの書込み、Ｂの書込み、Ｃの書込みが順に完了していく過程において、例えば図９に示すように変化する。ステップアップ電圧ΔＶＰＧＭは、固定ではなく、プログラム動作の進行度合に従って変化する。
【００５７】
以上、本発明のいくつかの実施の形態を説明したが、これらの実施の形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施の形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施の形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【００５８】
例えば、上記の実施の形態では、閾値電圧分布Ｅから、順次閾値電圧分布Ａ，Ｂ，Ｃを書き込んでいくプログラム動作を説明したが、これに限らず、例えば図１０に示すように、下位ページ書き込みにおいて閾値電圧分布Ｅから中間分布ＬＭへの書き込みを行い、続く上位ページ書き込みにおいて、閾値電圧分布ＥからＡへの書き込み、中間分布ＬＭから閾値電圧分布Ｂ，Ｃへの書き込みを実行することにより、閾値電圧分布Ａ，Ｂ，Ｃを得る書き込み方式においても、上記実施の形態を適用可能である。
【００５９】
また、図１１に示すように、最終的なベリファイ電圧ＶＡＶ，ＶＢＶ，ＶＣＶよりも低いベリファイ電圧ＶＡＶ’，ＶＢＶ’，ＶＣＶ’を用いて分布幅の広い閾値電圧分布Ａ’，Ｂ’，Ｃ’を得るプログラム動作を行った後（フォギー書き込み）、その後、これらの分布Ａ’、Ｂ’、Ｃ’から、ベリファイ電圧ＶＡＶ，ＶＢＶ，ＶＣＶを用いて最終的な閾値電圧分布Ａ，Ｂ，Ｃを得るプログラム動作（ファイン書き込み）を実行することも可能であり（フォギー／ファイン書き込み）、このようなフォギー／ファインプログラム動作にも、上記実施の形態を適用可能である。
【符号の説明】
【００６０】
１・・・メモリセルアレイ、  ２・・・センスアンプ回路、  ３・・・ロウデコーダ、  ４・・・ビットスキャン回路、  ５・・・入出力バッファ、  ６・・・制御回路、  ７・・・ＲＯＭフューズ、  ８・・・電圧発生回路。
【図１】
2012155798.tif 000003
【図２】
2012155798.tif 000004
【図３】
2012155798.tif 000005
【図４Ａ】
2012155798.tif 000006
【図４Ｂ】
2012155798.tif 000007
【図４Ｃ】
2012155798.tif 000008
【図５】
2012155798.tif 000009
【図６】
2012155798.tif 000010
【図７Ａ】
2012155798.tif 000011
【図７Ｂ】
2012155798.tif 000012
【図７Ｃ】
2012155798.tif 000013
【図７Ｄ】
2012155798.tif 000014
【図８Ａ】
2012155798.tif 000015
【図８Ｂ】
2012155798.tif 000016
【図９】
2012155798.tif 000017
【図１０】
2012155798.tif 000018
【図１１】
2012155798.tif 000019