(57)【要約】【課題】本発明は、ＥＣＣ回路を備えたＮＡＮＤ型フラッシュメモリにおいて、Ｐｒｏｇｒａｍ  Ｄｉｓｔｕｒｂ不良の発生のみならず、ＥＣＣ回路のエラー訂正能力の低下を抑制できるようにする。【解決手段】たとえば、１ページあたりの許容ビット数ｎが４ビットとされたＥＣＣ回路を備える多値論理のＮＡＮＤ型フラッシュメモリの場合、データ書き込み動作時に、ワード線の電圧をステップアップしながら書き込みループを繰り返す。そして、ページ内のプログラム未終了メモリセルの個数ｍが２ビット（Ｍ１）以下になったところで、ワード線の電圧を１つステップアップさせて、１回分の書き込みループを追加により実行する。その後、プログラム未終了メモリセルの書き込みが終了している、いないにかかわらず、書き込みループを停止する。【選択図】図７
2007066386.tif 000002
【特許請求の範囲】
【請求項１】
エラービットを訂正するためのエラー訂正回路を有する半導体記憶装置であって、
複数のメモリセルが配列されたメモリセルアレイと、
前記メモリセルアレイにおける前記複数のメモリセルに対し、所定個単位で、データの書き込み動作およびプログラムベリファイ動作を繰り返し行う書き込み制御回路と、
前記書き込み制御回路による前記プログラムベリファイ動作の結果を保持するページバッファと、
前記ページバッファに保持された前記プログラムベリファイ動作の結果にもとづいて、前記所定個単位内におけるデータ書き込み未終了セルの個数（ｍ）が、前記エラー訂正回路によるエラー訂正可能なビット数（ｎ）以下であるか否かを判定するビットスキャン回路と、
前記ビットスキャン回路の判定結果を保持するレジスタと、
前記レジスタで保持された、前記ビットスキャン回路の判定結果をもとに、前記データ書き込み未終了セルの個数が前記エラー訂正回路によるエラー訂正可能なビット数と同じか、それ以下の場合（ｎ≧ｍ）に、前記書き込み制御回路による前記書き込み動作および前記プログラムベリファイ動作を規定の回数（Ｃ）だけ追加により実行した後に停止させるように制御する制御回路と
を具備したことを特徴とする半導体記憶装置。
【請求項２】
前記制御回路は、スタートからＮ回目まではＭ１ビット無視で前記書き込み制御回路による前記書き込み動作および前記プログラムベリファイ動作を繰り返させ、Ｎ＋１回目以降は、Ｍ２ビット無視で前記書き込み制御回路による前記書き込み動作および前記プログラムベリファイ動作を繰り返させるように制御する（ただし、Ｍ１ビット＜Ｍ２ビット＜ｎ）ことを特徴とする請求項１に記載の半導体記憶装置。
【請求項３】
前記制御回路は、スタートからＮ回目までの間に、前記所定個単位内におけるデータ書き込み未終了セルの個数（ｍ）が、前記エラー訂正回路によるエラー訂正可能なビット数（ｎ）以下のある値（Ｍ１ビット）よりも小さくなった場合、および、Ｎ＋１回目以降において、前記所定個単位内におけるデータ書き込み未終了セルの個数（ｍ）が、前記エラー訂正回路によるエラー訂正可能なビット数（ｎ）以下のある値（Ｍ２ビット）よりも小さくなった場合に、前記書き込み制御回路による前記書き込み動作および前記プログラムベリファイ動作を１回だけ追加により実行した後に停止させるように制御する（ただし、Ｍ１ビット＜Ｍ２ビット＜ｎ）ことを特徴とする請求項１に記載の半導体記憶装置。
【請求項４】
前記レジスタは、前記規定の回数（Ｃ）を決定するための第１の回数データ（Ｃ１）および前記第１の回数データよりも多い第２の回数データ（Ｃ２）を保持し、
前記制御回路は、前記データ書き込み未終了セルの個数（ｍ）が前記エラー訂正回路によるエラー訂正可能なビット数（ｎ）以下になるまでの、前記書き込み制御回路による前記書き込み動作および前記プログラムベリファイ動作の繰り返し回数（ｋ）を判断し、前記繰り返し回数（ｋ）がある設定値（ｐ）よりも小さい場合（ｋ＜ｐまたはｋ≦ｐ）には前記第１の回数データ（Ｃ１）を前記規定の回数（Ｃ）として、前記繰り返し回数（ｋ）がある設定値（ｐ）よりも大きい場合（ｋ≧ｐまたはｋ＞ｐ）には前記第２の回数データ（Ｃ２）を前記規定の回数（Ｃ）として選択することを特徴とする請求項１に記載の半導体記憶装置。
【請求項５】
前記制御回路は、前記データ書き込み未終了セルの個数（ｍ）が前記エラー訂正回路によるエラー訂正可能なビット数（ｎ）以下になるまでの、前記書き込み制御回路による前記書き込み動作および前記プログラムベリファイ動作の繰り返し回数（ｋ）を判断し、前記繰り返し回数（ｋ）が多いほど前記規定の回数（Ｃ）が多くなるように、前記繰り返し回数（ｋ）に応じて前記規定の回数（Ｃ）を多段階的に変化させることを特徴とする請求項１に記載の半導体記憶装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、半導体記憶装置に関するもので、特に、データ書き込み動作時の非選択高電圧によるプログラムディスターブ（Ｐｒｏｇｒａｍ  Ｄｉｓｔｕｒｂ）不良の発生が懸念される、ＮＡＮＤ型フラッシュメモリなどの不揮発性半導体記憶装置に関する。
【背景技術】
【０００２】
従来、ＮＡＮＤ型フラッシュメモリなどの不揮発性半導体記憶装置においては、ページ単位でデータの書き込みが行われる。たとえば、ページ内の各メモリセルにそれぞれ接続されたワード線の電圧（書き込み電圧）を任意のステップ幅で順次ステップアップさせながらデータ書き込み動作（プログラム／ベリファイ動作）を繰り返し、全ビットの書き込みが終了した時点でデータ書き込み動作を停止する、いわゆる書き込みループ（Ｐｒｏｇｒａｍ  Ｌｏｏｐ）方式が適用されている。なお、書き込みループにおける任意のステップ幅としては、たとえば、９０ｎｍスケール（世代）の多値論理の不揮発性半導体記憶装置の場合で０．４Ｖ程度である。
【０００３】
しかしながら、この方式の場合、ごくまれに存在する非常にプログラムの遅いメモリセル（孤立ビット不良）が存在するページに対しては、プログラム／ベリファイ動作が必ず書き込みループの上限（以下、Ｌｏｏｐ＿ｍａｘ）まで繰り返されるため、書き込み時間が長くなる上に、非選択高電圧によるプログラムディスターブ不良が多発するという問題があった。
【０００４】
特に、“０”データが“１”データに化ける、いわゆるカラム不良がビット線方向に存在する不揮発性半導体記憶装置の場合には、全ページにおいて、プログラム／ベリファイ動作がＬｏｏｐ＿ｍａｘまで繰り返されることになるため、書き込み時間が長くなる上に、プログラムディスターブ不良が多発するという問題が顕著であった。
【０００５】
なお、書き込み電圧を制限することによって、プログラムディスターブ不良の発生を抑えることは可能であるが、書き込み電圧が低すぎると書き込み歩留まりに影響が出る。このため、書き込み電圧はむやみに制限することができないという問題がある。
【０００６】
また、ワード線単位のページプログラムにおいて、所定回数のプログラム／ベリファイ動作を繰り返した後のプログラム未終了メモリセルの個数（エラービット数）が、エラー訂正回路によるエラー訂正が可能な所定のエラービット数以下である場合には、以降のプログラム／ベリファイ動作を停止し、そのエラービットをエラー訂正回路により救済することによって、プログラムの遅い孤立ビット不良やカラム不良に律速されることなく、高速なデータプログラムを可能にした方法も既に提案されている（たとえば、特許文献１参照）。
【０００７】
しかしながら、この特許文献１にかかる方法の場合、多くのページで、いくつか（エラー訂正回路によるエラー訂正が可能なビット数以下）のプログラム未終了メモリセルを残したまま、書き込みループが停止する可能性があり、エラー訂正回路の負担が大きくなるという問題があった。すなわち、多くのプログラム未終了メモリセルが残るということは、最初からエラー訂正回路のエラー訂正能力の一部またはすべてが、そのエラービットの救済に利用されることになる。これにより、結果としてエラー訂正回路のエラー訂正能力が低下し、本来のエラー訂正能力が損なわれる。
【特許文献１】特開平１０−２２２９９５号公報
【発明の開示】
【発明が解決しようとする課題】
【０００８】
本発明は、上記の問題点を解決すべくなされたもので、プログラムの遅い孤立ビット不良やカラム不良があった場合にも、エラー訂正能力の低下を抑制しつつ、データ書き込み時間の高速化とともに、プログラムディスターブ不良の発生を抑えることが可能な半導体記憶装置を提供することを目的としている。
【課題を解決するための手段】
【０００９】
本願発明の一態様によれば、エラービットを訂正するためのエラー訂正回路を有する半導体記憶装置であって、複数のメモリセルが配列されたメモリセルアレイと、前記メモリセルアレイにおける前記複数のメモリセルに対し、所定個単位で、データの書き込み動作およびプログラムベリファイ動作を繰り返し行う書き込み制御回路と、前記書き込み制御回路による前記プログラムベリファイ動作の結果を保持するページバッファと、前記ページバッファに保持された前記プログラムベリファイ動作の結果にもとづいて、前記所定個単位内におけるデータ書き込み未終了セルの個数（ｍ）が、前記エラー訂正回路によるエラー訂正可能なビット数（ｎ）以下であるか否かを判定するビットスキャン回路と、前記ビットスキャン回路の判定結果を保持するレジスタと、前記レジスタで保持された、前記ビットスキャン回路の判定結果をもとに、前記データ書き込み未終了セルの個数が前記エラー訂正回路によるエラー訂正可能なビット数と同じか、それ以下の場合（ｎ≧ｍ）に、前記書き込み制御回路による前記書き込み動作および前記プログラムベリファイ動作を規定の回数（Ｃ）だけ追加により実行した後に停止させるように制御する制御回路とを具備したことを特徴とする半導体記憶装置が提供される。
【発明の効果】
【００１０】
上記の構成により、所定回数のプログラム／ベリファイ動作を繰り返した後のプログラム未終了メモリセルの個数が、エラー訂正回路によるエラー訂正が可能なビット数と同じか、それ以下である場合には、さらに、そのプログラム未終了メモリセルの個数を減らした上で書き込みループを停止できるようになるので、プログラムの遅い孤立ビット不良やカラム不良があった場合にも、エラー訂正能力の低下を抑制しつつ、データ書き込み時間の高速化とともに、プログラムディスターブ不良の発生を抑えることが可能な半導体記憶装置を提供できる。
【発明を実施するための最良の形態】
【００１１】
以下、本発明の実施の形態について図面を参照して説明する。ただし、図面は模式的なものであり、各回路ブロックの平面寸法の比率などは現実のものとは異なることに留意すべきである。また、図面相互間においても、互いの寸法の関係や比率が異なる部分が含まれていることは勿論である。
【００１２】
また、以下に示すいくつかの実施の形態は、本発明の技術思想を具体化するための装置や方法を例示したものであって、構成部品の形状、構造、配置などによって、本発明の技術思想が特定されるものではない。この発明の技術的思想は、その要旨を逸脱しない範囲において、種々の変更を加えることができる。
【００１３】
本発明の実施の形態によれば、たとえば、多値論理のＮＡＮＤ型フラッシュメモリにおいて、「ビット無視」の機能および「規定回数追加書き込み」の機能を組み込むことで、データ書き込み動作時に、プログラムの遅い孤立ビット不良やカラム不良があった場合にも、Ｌｏｏｐ＿ｍａｘまで繰り返される前に書き込みループ（プログラム／ベリファイ動作）を停止させることが可能となり、高速なデータプログラムを実現できるとともに、データ書き込み動作時の非選択高電圧によるプログラムディスターブの影響を最少限に抑えることができるだけでなく、プログラム未終了メモリセルの個数がエラー訂正回路（ＥＣＣ；Ｅｒｒｏｒ  Ｃｈｅｃｋｉｎｇ  ＆  Ｃｏｒｒｅｃｔｉｏｎ  ｃｏｄｅ）の許容ビット数（リファレンスフェイル数）以下になると、規定回数のデータ書き込み動作を追加で実施した後に書き込みループが停止するため、ＥＣＣのエラー訂正能力の低下を最低限にとどめることが可能となる。
【００１４】
［第１の実施の形態］
以下の説明において、第１の特定ビット数をＭ１ビット、第２の特定ビット数をＭ２ビットと定義する。“Ｍ１＜Ｍ２＜ｎ（ＥＣＣの許容ビット数）”が原則である。「ビット無視」および「規定回数追加書き込み」の各機能を適用するには、そのフェイルビット（エラービット）を訂正して、正しいデータを出力するＥＣＣが必要である。つまり、“Ｍ１＜Ｍ２＜ｎ（ＥＣＣの許容ビット数）”で表される不等式が成立すると、不良のないメモリとして認識することができる。
【００１５】
“Ｍ１”，“Ｍ２”は任意の値である。値が大きいほど、プログラムディスターブの影響を抑える点では有効である。しかし、“Ｍ１”，“Ｍ２”の値としては、ＥＣＣが確実にエラー訂正できる、許容するリファレンスフェイル数（ｎ）以下に設定することが必要である。
【００１６】
本発明の第１の実施の形態においては、データ書き込み動作の途中でビットスキャン動作を行い、フェイルビット数（ｍ）がある値（Ｍ１，Ｍ２ビット）以下に収まれば、規定回数のデータ書き込み動作（プログラム／ベリファイ動作）を追加で行った後に、書き込みループを停止させるというシーケンサ（制御回路）の動作が重要であり、これらの動作は２値／多値によらず、いずれのＮＡＮＤ型フラッシュメモリでも実行させることが可能である。特に、多値論理のＮＡＮＤ型フラッシュメモリは、しきい値電圧分布の間隔が狭いため、データ書き込み動作時のプログラムディスターブの影響を受けやすいが、本発明の第１の実施の形態にかかる「ビット無視」の機能と「規定回数追加書き込み」の機能とを組み込むことによって、有効に対応することが可能となる。
【００１７】
（全体構成）
図１は、この発明の第１の実施の形態にしたがった、不揮発性半導体記憶装置の基本構成を示すものである。なお、この第１の実施の形態では、多値論理のＮＡＮＤ型フラッシュメモリを例に説明する。また、同一ページ内にプログラムの遅い孤立ビット不良が複数存在する多値論理のＮＡＮＤ型フラッシュメモリにおいて、フェイルビット数（ｍ）がリファレンスフェイル数（ｎ）と同じか、それ以下のある値（Ｍ１，Ｍ２ビット）以下の場合には、規定回数のデータ書き込み動作を追加で行った後に書き込みループを停止させることにより、エラー訂正能力の低下を抑制しつつ、データ書き込み時間の増大やプログラムディスターブ不良の発生を抑えるようにした場合について説明する。
【００１８】
図１に示すように、この発明の第１の実施の形態にかかる多値論理のＮＡＮＤ型フラッシュメモリは、メモリ装置本体１と、そのメモリ装置本体１を制御するコントローラ２とを有して構成されている。コントローラ２は、その内部にＥＣＣ回路３を備えている。ＥＣＣ回路３としては、たとえば、１ページ当たりのＥＣＣ（エラー訂正）能力である許容ビット数が複数ビットとされている。
【００１９】
メモリ装置本体１は、メモリセルアレイ１４と、メモリセルアレイ１４に対してアドレスデータＡ６〜Ａ１８を入力するロウアドレスバッファ４２と、さらに、ロウアドレスバッファ４２に接続されるロウアドレスレジスタ４０、および、ロウアドレスデコーダ３８と、メモリセルアレイ１４からのデータを検出するセンスアンプ１６と、センスアンプ１６に対してアドレスデータＡ０〜Ａ５，Ａ１６を入力するカラムアドレスバッファ３６と、さらに、カラムアドレスバッファ３６に接続されるカラムアドレスレジスタ３４、および、カラムアドレスデコーダ３２と、センスアンプ１６に接続されるデータインプットバッファ２８，３０、および、データアウトプットバッファ４４，４６と、クロックジェネレータ４８と、論理回路ブロック５０とから構成されている。論理回路ブロック５０は、たとえば図１に示すように、ＯＲゲート５２と、ＮＯＲゲート５４，５６，５８，６０と、ＡＮＤゲート６２，６４とから構成されている。メモリセルアレイ１４は、たとえば、３値以上の多値論理データを記憶することが可能である。
【００２０】
図１に示した、本発明の第１の実施の形態にかかる多値論理のＮＡＮＤ型フラッシュメモリにおいて、「ビット無視」の機能および「規定回数追加書き込み」の機能を組み込むためには、各ビットの書き込み状況のデータ（プログラムベリファイ結果）が必要である。このデータは、センスアンプ１６内に格納される。
【００２１】
図２は、図１に示した、本発明の第１の実施の形態にかかる多値論理のＮＡＮＤ型フラッシュメモリの、メモリ装置本体１におけるセンスアンプ１６の近傍の構成を、より詳細に示すものである。メモリ装置本体１内には、たとえば図２に示すように、コア回路（書き込み制御回路）１０と周辺回路１２とが設けられている。コア回路１０は、メモリセルアレイ１４と、ページバッファ２４およびキャッシュメモリ２６からなるセンスアンプ１６と、ページバッファ２４に接続されたビットスキャン回路１８とを備えている。ページバッファ２４は、メモリセルアレイ１４に対する書き込みデータまたは読み出しデータを保持し、データ書き込み動作時にはプログラムベリファイ結果を保持する。ビットスキャン回路１８は、センスアンプ１６内のページバッファ２４に格納されるデータを受けて、ビットスキャン動作を実行する。周辺回路１２は、シーケンサ（制御回路）２０とレジスタ２２とを備えている。レジスタ２２は、ビットスキャン回路１８に接続されており、ビットスキャン回路１８におけるビットスキャン動作の結果を格納する。シーケンサ２０は、レジスタ２２に格納されているビットスキャン動作の結果にしたがって、メモリセルアレイ１４に対するデータ書き込み動作などの動作シーケンスを制御する。
【００２２】
すなわち、本発明の第１の実施の形態にかかる多値論理のＮＡＮＤ型フラッシュメモリは、たとえば図２に示したように、メモリセルアレイ１４内の複数のメモリセル（図示していない）に対し、ページ単位で、データの書き込み動作（プログラム動作）とプログラムベリファイ動作とを繰り返し行うデータ書き込み動作（書き込みループ）において、プログラムベリファイ結果を保持するページバッファ２４と、ページバッファ２４に保持されたプログラムベリファイ結果にもとづいて、ページ内におけるプログラム未終了メモリセルの個数（フェイルビット数）ｍが、ＥＣＣ回路３の許容ビット数（リファレンスフェイル数）ｎと同じか、それ以下のある値（Ｍ１，Ｍ２ビット）以下であるか否かを判定するビットスキャン回路１８と、ビットスキャン回路１８の判定結果を保持するレジスタ２２と、ビットスキャン回路１８の判定結果にしたがってコア回路１０を制御し、プログラム未終了メモリセルの個数ｍが、リファレンスフェイル数ｎと同じか、それ以下のある値（Ｍ１，Ｍ２ビット）以下である場合には、プログラム動作およびプログラムベリファイ動作を規定の回数だけ追加し、それを実行した後に書き込みループを停止させるシーケンサ２０とを備えている。あるいは、また、シーケンサ２０は、ビットスキャン回路１８の動作シーケンスを制御し、データ書き込み動作において、リファレンスフェイル数ｎをＭ１ビットからＭ２ビットに変更する動作を行う（ただし、Ｍ１＜Ｍ２≦ｎ）。
【００２３】
（センスアンプ）
図３は、本発明の第１の実施の形態にかかる多値論理のＮＡＮＤ型フラッシュメモリに適用される、センスアンプ１６の構成例を示すものである。図３に示すように、センスアンプ１６は、メモリセルアレイ１４に対してビット線ＢＬを介して接続されるセンスアンプ回路６６と、センスアンプ回路６６に接続されるクランプ回路７４と、クランプ回路７４とセンスノード７２にて接続されるテンポラリデータキャッシュ／ダイナミックデータキャッシュ７０と、さらに、ページバッファ７６およびセカンダリーデータキャッシュ７８とから構成されている。テンポラリデータキャッシュ／ダイナミックデータキャッシュ７０は、より詳細には、テンポラリデータキャッシュ８０とダイナミックデータキャッシュ８２とを備えている。テンポラリデータキャッシュ８０とダイナミックデータキャッシュ８２は、検出・演算時に使用するキャッシュである。ページバッファ７６は、プライマリーデータキャッシュ８４によって構成されている。このページバッファ７６は、図２のページバッファ２４に相当する。
【００２４】
データ読み出し動作（プログラムベリファイ動作）においては、メモリセルトランジスタの書き込み状況をセンスノード７２で検出し、その結果を、ページバッファ７６内のフリップフロップ回路の構成を有するプライマリーデータキャッシュ８４に格納する。ビットスキャン回路１８は、このページバッファ７６に格納されたデータにもとづいて、設定された許容ビット数（ｎ）と同じか、それ以下のある値（Ｍ１，Ｍ２ビット）以下に、フェイルビット数（プログラム未終了メモリセルの個数）ｍが収まっているかを検出する。この検出結果を受けて、シーケンサ２０内で、データ書き込み動作の継続（書き込みループのステップアップ）、停止、または、「規定回数追加書き込み」という命令が下される。
【００２５】
（ビットスキャン回路）
図４は、本発明の第１の実施の形態にかかる多値論理のＮＡＮＤ型フラッシュメモリに適用される、ビットスキャン回路１８の構成例を示すものである。なお、同図（ａ）は回路図であり、同図（ｂ）は同図（ａ）の回路に流れる動作電流波形を示している。ビットスキャン回路１８は、たとえば図４（ａ）に示すように、１ページ長個のセンスアンプ（ラッチ）８６を複数個並列接続したセンスアンプ８７と、リファレンス定電流パス８８と、インバータ９０と、出力ノード９２とを備えている。１ページ長個のセンスアンプ８６に含まれる各々のセンスアンプＳ／Ａは、プログラムベリファイ結果であるパス／フェイルデータを保持する。図４（ａ）の例では、プログラムベリファイ結果がパスデータのときに“Ｈ（ＨＩＧＨ）”レベルが保持され、プログラムベリファイ結果がフェイルデータのときに“Ｌ（ＬＯＷ）”レベルが保持される場合を示している。このような構成のビットスキャン回路１８は、１ページ長個のセンスアンプ８６を複数個並列接続したセンスアンプ８７からの電流Ｉｓｕｍと、リファレンス定電流パス８８を流れるリファレンス電流Ｉｒｅｆとの間の差動電流を、インバータ９０の出力ノード９２から検出するという動作を行っている。
【００２６】
上記の構成において、センスアンプ８７のＩ／Ｏ０に対応するデータ出力（センスアンプ８７からの電流Ｉｓｕｍ）は、たとえば図４（ｂ）に示すように、Ｉ／Ｏ０が保持するフェイルデータ（Ｌ）の数に比例している。図４（ａ）の例では、Ｉ／Ｏ０のフェイルデータの数が１ビットの場合を示している。この場合、センスアンプ８７からの電流Ｉｓｕｍは“１×Ｉ”となる。リファレンス定電流パス８８内のＭＯＳトランジスタのゲート端子に供給される信号Ｂ０，Ｂ１は、許容するフェイルビット数（リファレンスフェイル数）ｎに応じてレベルが設定される信号である。リファレンスフェイル数ｎを１ビットに設定する場合には、信号Ｂ０，Ｂ１を（Ｂ０，Ｂ１）＝（１，０）と設定する。この時、リファレンス電流Ｉｒｅｆは“１．５×Ｉ”となり、センスアンプ８７からの電流Ｉｓｕｍがリファレンス電流Ｉｒｅｆよりも小さくなる。これにより、インバータ９０の出力ノード９２は“１”レベルとなって、Ｉ／Ｏ０のフェイルビット数（ｍ）が、許容するフェイルビット数（１ビット）ｎ以下であることが分かる。
【００２７】
ビットスキャン回路１８においては、リファレンスフェイル数ｎを何ビットにするかによってリファレンス電流Ｉｒｅｆの設定を変え、Ｉ／Ｏ０〜Ｉ／Ｏ７について、それぞれ、フェイルビット数ｍを検出する必要がある。図４（ａ）の回路構成では、リファレンス定電流パス８８の数はカラムの数に等しいため、バイトの数に対しては１対１の対応であるが、ビットの数に対しては１／８に縮約された数となっている。したがって、フェイルビット数ｍを検出するためには、Ｉ／Ｏ０〜Ｉ／Ｏ７のデータ出力を８回に時分割して検出する必要がある。リファレンス電流Ｉｒｅｆの設定として、リファレンスフェイル数ｎを０個、１個と増やしていくと、Ｉ／Ｏ１にもフェイルビットがあったことが分かる。このようにして、Ｉ／Ｏ０〜Ｉ／Ｏ７について、それぞれの検出動作で検出されたフェイルビット数をレジスタ２２に累積していけば、最終的なフェイルビット数ｍを検出することができる。実際には、レジスタ２２に累積されていくフェイルビット数ｍが全体としてリファレンスフェイル数ｎを超えたところで、検出のための動作が終了する。
【００２８】
この動作の一例としては、多値動作におけるソフトプログラム後のベリファイ動作で１ビット以下のフェイルであることを検出する場合、あるいは、多値動作におけるデータ書き込み動作の最終ループ後に１ビット以下のフェイルであることを検出する場合などが挙げられる。
【００２９】
（データ書き込み方法）
以下の説明において、書き込みループとは、書き込みパルス（電圧）を段階的にステップアップしてループさせる、つまり、プログラム動作およびプログラムベリファイ動作を繰り返させる動作をさす。ＰＣ（プログラムカウント）とは、プログラム動作が繰り返されるごとに、その繰り返しのループ回数を積算させて回路に記憶させるための回数データを求めるための動作をさす。
【００３０】
（検討例）
まず、本発明の第１の実施の形態の基礎として検討した検討例にかかる、多値論理のＮＡＮＤ型フラッシュメモリのデータ書き込み方法は、図５に示すフローチャートのように表される。「Ｖｐｇｍ」を書き込み電圧、「ＰＣ」をデータ書き込みループ（繰り返しの）回数とする。
【００３１】
（ａ）  ステップＳ１において、“書き込み電圧Ｖｐｇｍ＝スタート電圧Ｖｐｇｍ＿ｓｔａｒｔ”、“書き込みループ回数ＰＣ＝０”に設定する。
【００３２】
（ｂ）  次に、ステップＳ２において、“ＰＣ＝ＰＣ＋１”と設定し、プログラム動作を実行する。
【００３３】
（ｃ）  次に、ステップＳ３において、“ベリファイステータス＝パス”か否かを判定する。
【００３４】
（ｄ）  ステップＳ３において、“ベリファイステータス＝パス”がＹＥＳであれば、ステップＳ５に移行し、“ステータス＝パス”となる。
【００３５】
（ｅ）  一方、ステップＳ３において、“ベリファイステータス＝パス”がＮＯであれば、ステップＳ４に移行し、“書き込みループ回数ＰＣ＜書き込みループ回数の最大値ＰＣ＿ｍａｘ（上限Ｌｏｏｐ＿ｍａｘ）”か否かを判定する。
【００３６】
（ｆ）  ステップＳ４において、“書き込みループ回数ＰＣ＜書き込みループ回数の最大値ＰＣ＿ｍａｘ”がＮＯであれば、ステップＳ６に移行し、“ステータス＝フェイル”となる。
【００３７】
（ｇ）  一方、ステップＳ４において、“書き込みループ回数ＰＣ＜書き込みループ回数の最大値ＰＣ＿ｍａｘ”がＹＥＳであれば、ステップＳ７に移行し、“書き込み電圧Ｖｐｇｍ＝Ｖｐｇｍ＋ステップサイズ”と設定し、ステップＳ２に戻る。
【００３８】
通常、ＮＡＮＤ型フラッシュメモリには、図５に示したように、データ書き込み動作時に書き込みループを任意のステップ幅で電圧をステップアップさせながら繰り返し、ページ内の全ビットの書き込みが終了した時点で書き込みループが停止する、データ書き込み方法が適用されている。
【００３９】
書き込みループにおける任意のステップ幅としては、たとえば、９０ｎｍ世代の多値論理の不揮発性半導体記憶装置の場合で０．４Ｖ程度であり、それ以前の多値論理の不揮発性半導体記憶装置の場合で０．２Ｖ程度である。
【００４０】
図６に、この検討例にかかる、多値論理のＮＡＮＤ型フラッシュメモリのデータ書き込みの方法において、「１ページ＝１ワード線昇圧で書き込み可能な５１２バイト」とした場合の、ページ数分布とデータ書き込みループ回数との関係を示している。
【００４１】
（本発明の第１の実施の形態にかかるデータ書き込み方法）
図７は、本発明の第１の実施の形態にかかる多値論理のＮＡＮＤ型フラッシュメモリでの、データ書き込み方法（処理の流れ）について示すものである。以下の説明においては、ＥＣＣ回路の使用を前提とするＮＡＮＤ型フラッシュメモリを対象としている。ＥＣＣ回路としては、データ書き込みが同時に行われる１ページ当たりについて、複数ビットのエラー訂正が可能な機能を有するものとする。
【００４２】
図７に示すように、たとえば、データ書き込みスタートからＮ回ループ目（または、設定値Ｌｏｏｐ＿ｍａｘ２と記す）までは「Ｍ１ビット無視」で書き込みループ（プログラム動作）を繰り返し、Ｎ＋１回ループ目以降は、Ｌｏｏｐ＿ｍａｘまで「Ｍ２ビット無視」のプログラムベリファイ動作（書き込みステータスの確認）を毎回実施する。ここで、“Ｍ１”，“Ｍ２”は任意の値であり、“Ｍ１＜Ｍ２≦ｎ（ＥＣＣの許容ビット数）”とする。また、Ｎ回ループした時点またはＮ＋１回ループ以降において、“ベリファイステータス＝パス”がＹＥＳと判断された場合には、さらに、書き込みループを規定の回数だけ繰り返した後に、書き込みループを停止する。
【００４３】
図８に、本発明の第１の実施の形態にかかる、多値論理のＮＡＮＤ型フラッシュメモリのデータ書き込みの方法において、データ書き込みループ回数とページ数分布との関係を示している。Ｌｏｏｐ＿ｍａｘ２は、図に示すように、典型的なページがすべて収まる境界辺りの値を任意に設定する。なお、Ｌｏｏｐ＿ｍａｘ２は、各ＮＡＮＤ型フラッシュメモリの書き込みばらつきを考慮してトリミングできるように設計することが望ましい。
【００４４】
本発明の第１の実施の形態にかかる、多値論理のＮＡＮＤ型フラッシュメモリにおいて、Ｌｏｏｐ＿ｍａｘ２は、変数としての書き込みスタートから固定値としての任意のループ回数に設定され、ＮＡＮＤ型フラッシュメモリのチップごとに異なる値となる。ここで、「変数としての書き込みスタート」とは、書き込み開始電圧Ｖｐｇｍ＿ｓｔａｒｔがウェハ状態における各ＮＡＮＤ型フラッシュメモリのチップごとに異なることを意味する。チップごとに最適な書き込み開始電圧Ｖｐｇｍ＿ｓｔａｒｔを測定し、この測定値をチップ内にあらかじめ書き込むことによって、「変数としての書き込みスタート」が実行される。また、「固定値としての任意のループ回数」とは、デバイス設計者あるいは回路設計者が任意に決定する値である。
【００４５】
以下に、図７を参照して、本発明の第１の実施の形態にかかる多値論理のＮＡＮＤ型フラッシュメモリのデータ書き込み方法について説明する。なお、ここでは、１ページあたりの許容ビット数ｎが「４」とされたＥＣＣ回路３を備えるＮＡＮＤ型フラッシュメモリにおいて、第１の特定ビット数Ｍ１を「２」、第２の特定ビット数Ｍ２を「３」とし、規定回数追加書き込みの回数Ｃを「１」とした場合について、説明する。
【００４６】
（ａ）  まず、ステップＳ１１において、“書き込み電圧Ｖｐｇｍ＝スタート電圧Ｖｐｇｍ＿ｓｔａｒｔ”、“書き込みループ回数ＰＣ＝０”に設定する。
【００４７】
（ｂ）  次に、ステップＳ１２において、“ＰＣ＝ＰＣ＋１”と設定し、プログラム動作を実行する。
【００４８】
（ｃ）  次に、ステップＳ１３において、“書き込みループ回数ＰＣ≦書き込みループ回数の設定値ＰＣ＿ｍａｘ２（Ｌｏｏｐ＿ｍａｘ２）”であるか否かを判定する。
【００４９】
（ｄ）  ステップＳ１３において、“書き込みループ回数ＰＣ≦書き込みループ回数の設定値ＰＣ＿ｍａｘ２”がＹＥＳであれば、ステップＳ１４に移行し、Ｍ１ビット無視の“ベリファイステータス＝パス”か否かを判定する。
【００５０】
（ｅ）  一方、ステップＳ１３において、“書き込みループ回数ＰＣ≦書き込みループ回数の設定値ＰＣ＿ｍａｘ２”がＮＯであれば、ステップＳ１５に移行し、Ｍ２ビット無視の“ベリファイステータス＝パス”か否かを判定する。
【００５１】
（ｆ）  ステップＳ１４において、Ｍ１ビット無視の“ベリファイステータス＝パス”がＹＥＳであれば、ステップＳ１６に移行し、“ＰＣ＝ＰＣ＋Ｃ”と設定し、追加のプログラム動作（書き込みループ）を実行する。つまり、Ｌｏｏｐ＿ｍａｘ２に達した時点において、プログラム未終了メモリセルの個数（ｍ）がＭ１ビット以下の場合、規定回数追加書き込みの回数Ｃの分だけ書き込みループを追加により実行する。
【００５２】
（ｇ）  その後、ステップＳ１７に移行し、“ステータス＝パス”となる。
【００５３】
（ｈ）  また、ステップＳ１４において、Ｍ１ビット無視の“ベリファイステータス＝パス”がＮＯであれば、ステップＳ１８に移行し、“書き込み電圧Ｖｐｒｍ＝Ｖｐｇｍ＋ステップサイズ”と設定し、ステップＳ１２に戻る。
【００５４】
（ｉ）  次に、ステップＳ１５において、Ｍ２ビット無視の“ベリファイステータス＝パス”がＹＥＳであれば、ステップＳ１６に移行する。つまり、Ｌｏｏｐ＿ｍａｘ２を越えた以降において、プログラム未終了メモリセルの個数（ｍ）がＭ２ビット以下の場合、規定回数追加書き込みの回数Ｃの分だけ書き込みループを追加により実行する。
【００５５】
（ｊ）  一方、ステップＳ１５において、Ｍ２ビット無視の“ベリファイステータス＝パス”がＮＯであれば、ステップＳ１９に移行し、“書き込みループ回数ＰＣ＜書き込みループ回数の最大値ＰＣ＿ｍａｘ”か否かを判定する。
【００５６】
（ｋ）  次に、ステップＳ１９において、“書き込みループ回数ＰＣ＜書き込みループ回数の最大値ＰＣ＿ｍａｘ”がＹＥＳであれば、ステップＳ１８に戻る。
【００５７】
（ｍ）  一方、ステップＳ１９において、“書き込みループ回数ＰＣ＜書き込みループ回数の最大値ＰＣ＿ｍａｘ”がＮＯであれば、ステップＳ２０に移行し、“ステータス＝フェイル”となる。
【００５８】
上記したデータ書き込み方法について、より具体的に説明すると、たとえば、１ページあたりの許容ビット数ｎが４ビット（４ビットＥＣＣ）とされたＥＣＣ回路３を備える、多値論理のＮＡＮＤ型フラッシュメモリにおいて、ページ単位でデータの書き込みを行う場合、ワード線の電圧をステップアップしながら書き込みループを繰り返す。そして、当該ページ内のプログラム未終了メモリセルの個数（ｍ）が２ビット（Ｍ１）以下になったところ（Ｌｏｏｐ＿ｍａｘ２到達時）で、たとえば、ワード線の電圧を１つステップアップさせて、１回分の書き込みループを追加により実行する。こうして、その２ビット以下のプログラム未終了メモリセルの書き込みが終了している、いないにかかわらず、書き込みループを停止する。もしくは、プログラム未終了メモリセルの個数（ｍ）が３ビット（Ｍ２）以下になったところ（Ｌｏｏｐ＿ｍａｘ２到達以降）で、たとえば、ワード線の電圧を１つステップアップさせて、１回分の書き込みループを追加により実行する。こうして、その３ビット以下のプログラム未終了メモリセルの書き込みが終了している、いないにかかわらず、書き込みループを停止する。
【００５９】
ここで、追加の書き込みループの回数Ｃを何回に設定するかは、セルの書き込み特性にも依存して最適な値を決めるのがよい。通常は、プログラム未終了セルが特に異常なセルでない限り、大半の場合は１〜２回のループで書き込みできるので、その程度の回数が設定される。単なる書き込み速度の分布内で最もプログラムの遅いセルが書き込み終了していない場合は、大半のページにおいて、全ビットの書き込みが終了する。また、そのセルに何らかの問題があり、他のセルよりも非常にプログラムが遅い場合は、追加の１回のループでは書き込みが終了しないかもしれないが、プログラム未終了メモリセルのビット数は４ビット以下であるから、４ビットの許容ビット数を有するＥＣＣ回路３で読み出した際には、正しいデータとして読み出すことができる。
【００６０】
なお、規定回数の追加の書き込みを行わなくても、プログラム未終了メモリセルの個数は４ビット以下であるから読み出し時に不良とはならないが、追加の書き込みを行わない場合、全ページにわたって２または３ビット分のプログラム未終了メモリセルを残してデータ書き込み動作が終了してしまう可能性がある。その場合には、ＥＣＣ回路３の許容ビット数のうちの約半分のビットを最初から全ページで消費することを意味しており、それ以外の不良セルの発生によるＥＣＣ回路３のエラー訂正能力を非常に低下させることになる。
【００６１】
そこで、本発明の第１の実施の形態にかかる、多値論理のＮＡＮＤ型フラッシュメモリにおいては、当該ページ内のプログラム未終了メモリセルの個数（ｍ）が、たとえば２ビット（Ｍ１）もしくは３ビット（Ｍ２）以下になったところで、規定回数の追加の書き込みを行うことにより、単に、データ書き込み時間の高速化やプログラムディスターブ不良の発生を抑制しようとするのみでなく、搭載しているＥＣＣ回路３のエラー訂正能力の低下をも最低限に抑制できるようにしたものである。
【００６２】
本発明の第１の実施の形態にかかる、多値論理のＮＡＮＤ型フラッシュメモリのデータ書き込み方法において、ページ数分布とデータ書き込みループ回数との関係は、図８に示すように表される。
【００６３】
本発明の第１の実施の形態にかかる、多値論理のＮＡＮＤ型フラッシュメモリのデータ書き込み方法において、フェイルビット数（ｍ）とデータ書き込みループ回数との関係は、図９に示すように表される。
【００６４】
本発明の第１の実施の形態にかかる、多値論理のＮＡＮＤ型フラッシュメモリのデータ書き込み方法において、フェイルビット数（ｍ）とデータ書き込みループ回数との関係の拡大図は、図１０に示すように表される。
【００６５】
ここで、図８中の“Ａ”に示すように、データ書き込みループ回数の上限（Ｌｏｏｐ＿ｍａｘ）付近まで達してしまうページの、セル書き込み特性の例を図９に示す。
【００６６】
図９において、横軸はデータ書き込みループ回数であり、縦軸はデータ書き込みが終了していないプログラム未終了メモリセルの個数（フェイルビット数）であり、典型的なセルの書き込み速度が速いページと遅いページの分布を代表として示している。図９に“Ａ”で示すように、ページ内にプログラムの遅いメモリセルが数ビット存在する場合、検討例にかかる書き込みの方法では、すべてのセルの書き込みが終わるように、Ｌｏｏｐ＿ｍａｘまで書き込みループが繰り返し実行される。
【００６７】
これに対し、本発明の第１の実施の形態にかかる、多値論理のＮＡＮＤ型フラッシュメモリのデータ書き込み方法においては、プログラム未終了メモリセルの個数がＭ１，Ｍ２ビット以下になると、書き込みループを１回だけ追加により実行した後に、当該ページに対するデータ書き込み動作を止めるようにしているため、ごくまれに存在する非常にプログラムの遅いメモリセル（孤立ビット不良）やカラム不良に律速されることなく、高速なデータプログラムが可能になるとともに、プログラムディスターブの影響を最少限に抑えることができる。
【００６８】
しかも、追加の書き込みループにより、ページ内に存在するＭ１，Ｍ２ビット以下のプログラム未終了メモリセルのいくつかを、データ書き込みが正常に行われたプログラム終了メモリセルとすることが可能となり、プログラム未終了メモリセルの個数を減少できる。したがって、万が一、同一ページ内にプログラム未終了メモリセルが存在したとしても、このプログラム未終了メモリセルはＥＣＣ回路３による救済が可能なビット数以下のため、データ読み出し動作時には正常なデータとして出力することができるだけでなく、ＥＣＣ回路３のエラー訂正能力の低下を最低限にとどめることが可能となる。なお、追加書き込みの回数Ｃは任意の値であり、たとえばＬｏｏｐ＿ｍａｘ２の値に、この追加書き込みの回数Ｃを加えたデータ書き込みループの回数（Ｌｏｏｐ＿ｍａｘ２＋Ｃ）が、データ書き込みループ回数の最大値ＰＣ＿ｍａｘ（上限Ｌｏｏｐ＿ｍａｘ）を超えないように設定するのが望ましい。
【００６９】
図１０は、Ｌｏｏｐ＿ｍａｘ２，Ｌｏｏｐ＿ｍａｘ付近（図９中にＥで示す部分）の拡大図であり、それぞれの分布が、「Ｍ１，Ｍ２ビット無視」により書き込みループを停止する地点Ｂ，Ｃ，Ｄ、および、「規定回数追加書き込み」により書き込みループを停止する地点Ｘ，Ｙを、それぞれ例示している。
【００７０】
以上のように、孤立ビット不良やカラム不良の存在によってデータ書き込みループ回数の分布に裾を持つページでは、ＥＣＣ回路３のエラー訂正能力の低下を抑制しつつ、プログラムディスターブの影響を効果的に抑えることができる。
【００７１】
以下に、パラメータの提案例を示す。
【００７２】
（１）ループ１〜ループ２８              →  ０ビット無視
（２）ループ２９〜ループ３２（ｍａｘ）  →  １ビット無視
２９回ループ目以降に「１ビット無視」を適用することで、前述の通り、プログラムの遅い孤立ビット不良や単カラム不良が存在しても、１ビット無視して書き込みループが止まる。
【００７３】
また、書き込みスタートから「１ビット無視」を適用すると、正常な、多値論理のＮＡＮＤ型フラッシュメモリであっても、多くのページで１ビット残して書き込みループが止まってしまうが、これはＥＣＣ回路３による救済が可能なレベルであるため、プログラムディスターブ不良の発生率の高いＮＡＮＤ型フラッシュメモリについては「Ｍ１（≧１）ビット無視」の適用を検討することもできる。
【００７４】
本発明の第１の実施の形態にかかる、多値論理のＮＡＮＤ型フラッシュメモリによれば、ビット無視の機能を組み込むことで、プログラムの遅いメモリセルが数ビット存在するページにおいて、Ｍ１，Ｍ２ビット以下（ＥＣＣの許容ビット数（ｎ）以下）のプログラム未終了メモリセルを残して書き込みループが停止するため、プログラムの遅い孤立ビット不良やカラム不良があった場合においても、書き込みループが過剰に繰り返されることなく、プログラムディスターブの影響を最少限に抑えることができる。
【００７５】
しかも、本発明の第１の実施の形態にかかる、多値論理のＮＡＮＤ型フラッシュメモリによれば、規定回数の追加書き込みの機能を組み込むことで、Ｍ１，Ｍ２ビット以下のプログラム未終了メモリセルのいくつかにデータの書き込みを行った後に書き込みループが停止するため、プログラム未終了メモリセルの救済に利用されるＥＣＣ回路３の負担を軽減できるようになるものである。
【００７６】
［第２の実施の形態］
図１１は、本発明の第２の実施の形態にしたがった、不揮発性半導体記憶装置（多値論理のＮＡＮＤ型フラッシュメモリ）のデータ書き込み方法を説明するために示すものである。
【００７７】
上述した本発明の第１の実施の形態では、追加の書き込みループの回数Ｃを「１」とし、ページ内のプログラム未終了メモリセルの個数（ｍ）がＭ１，Ｍ２ビット以下になったところで、１回分の書き込みループを追加により実行するようにした場合について説明したが、この第２の実施の形態では、プログラム未終了メモリセルの個数（ｍ）がＭ１，Ｍ２ビット以下になった際の、たとえば、書き込みループの繰り返しの回数（データ書き込みループ回数）に応じて、追加の書き込みループの回数Ｃを変化させるようにした場合について説明する。
【００７８】
すなわち、プログラム未終了メモリセルのビット数（ｍ）が、たとえば、ＥＣＣ回路３で救済できるビット数（ｎ）以下のあるビット数（Ｍ１，Ｍ２）に到達するまでのループ回数（ｋ）がある設定回数（ｐ）よりも少なく、低い電圧で書き込みができる場合にはセルの書き込み特性が良好なため、この場合には、追加の書き込みループ回数Ｃ１を１回に設定する。一方、プログラム未終了メモリセルのビット数（ｍ）が、たとえば、ＥＣＣ回路３で救済できるビット数（ｎ）以下のあるビット数（Ｍ１，Ｍ２）に到達するまでのループ回数（ｋ）がある設定回数（ｐ）よりも多く、高い電圧でないと書き込みができない場合にはセルの書き込み特性が悪いため、この場合には、追加の書き込みループの回数Ｃ２を２回に設定する。これらの追加の書き込みループの回数Ｃ１，Ｃ２に関するデータは、たとえば周辺回路１２内のレジスタ２２で保持される（図２参照）。
【００７９】
書き込みループでステップアップする電圧値は、通常、一定電圧でステップアップし、一定電界にはなっていないので、そのための補正という意味合いもある。同じループ１回の追加で、０．４Ｖ高い電圧を印加したとしても、書き込み速度を決める電界のステップアップ値は同じにはならない。高い電圧まで上がらないと書き込みが終了しないという場合は、同じ電圧を印加してもメモリセルの絶縁膜に印加される電界が低いということであり、より多い回数の追加書き込みが必要である。
【００８０】
このように、追加の書き込みループの回数Ｃに２つの設定データＣ１，Ｃ２（Ｃ１＜Ｃ２）を設け、ループ回数が少ない段階、たとえばＬｏｏｐ＿ｍａｘ２までの間に、ページ内のプログラム未終了メモリセルのビット数（ｍ）が、ＥＣＣ回路３で救済可能なビット数（ｎ）以下のあるビット数（Ｍ１）に達した場合には、追加の書き込みループの回数Ｃとして設定データＣ１を選択する。これに対し、ループ回数がＬｏｏｐ＿ｍａｘ２に達するまでの間に、ページ内のプログラム未終了メモリセルのビット数（ｍ）が、ＥＣＣ回路３で救済可能なビット数（ｎ）以下のあるビット数（Ｍ１）に達しなかった場合、つまり、ループ回数が、たとえばＬｏｏｐ＿ｍａｘ２を超えてＬｏｏｐ＿ｍａｘに達するまでの間に、ページ内のプログラム未終了メモリセルのビット数（ｍ）が、ＥＣＣ回路３で救済可能なビット数（ｎ）以下のあるビット数（Ｍ２）に達した場合には、追加の書き込みループの回数Ｃとして設定データＣ２を選択する。
【００８１】
以下に、図１１を参照して、本発明の第２の実施の形態にかかる多値論理のＮＡＮＤ型フラッシュメモリのデータ書き込み方法（処理の流れ）について説明する。なお、ここでは、１ページあたりの許容ビット数ｎが「４」とされたＥＣＣ回路３を備えるＮＡＮＤ型フラッシュメモリにおいて、第１の特定ビット数Ｍ１を「２」、第２の特定ビット数Ｍ２を「３」とし、規定回数追加書き込みの回数（設定データ）Ｃ１，Ｃ２をそれぞれ「１」，「２」とした場合について、説明する。
【００８２】
（ａ）  まず、ステップＳ２１において、“書き込み電圧Ｖｐｇｍ＝スタート電圧Ｖｐｇｍ＿ｓｔａｒｔ”、“書き込みループ回数ＰＣ＝０”に設定する。
【００８３】
（ｂ）  次に、ステップＳ２２において、“ＰＣ＝ＰＣ＋１”と設定し、プログラム動作を実行する。
【００８４】
（ｃ）  次に、ステップＳ２３において、“書き込みループ回数ＰＣ≦書き込みループ回数の設定値ＰＣ＿ｍａｘ２”であるか否かを判定する。
【００８５】
（ｄ）  ステップＳ２３において、“書き込みループ回数ＰＣ≦書き込みループ回数の設定値ＰＣ＿ｍａｘ２”がＹＥＳであれば、ステップＳ２４に移行し、Ｍ１ビット無視の“ベリファイステータス＝パス”か否かを判定する。
【００８６】
（ｅ）  一方、ステップＳ２３において、“書き込みループ回数ＰＣ≦書き込みループ回数の設定値ＰＣ＿ｍａｘ２”がＮＯであれば、ステップＳ２５に移行し、Ｍ２ビット無視の“ベリファイステータス＝パス”か否かを判定する。
【００８７】
（ｆ）  ステップＳ２４において、Ｍ１ビット無視の“ベリファイステータス＝パス”がＹＥＳであれば、ステップＳ２６に移行し、“書き込みループ回数ＰＣ≦書き込みループ回数の設定値ＰＣ＿ｍａｘ２”であるか否かを判定する。
【００８８】
（ｇ）  そして、ステップＳ２６において、“書き込みループ回数ＰＣ≦書き込みループ回数の設定値ＰＣ＿ｍａｘ２”がＹＥＳであれば、ステップＳ２７に移行し、“ＰＣ＝ＰＣ＋Ｃ１”と設定して、追加のプログラム動作（書き込みループ）を１回実行する。つまり、Ｌｏｏｐ＿ｍａｘ２に達した時点において、プログラム未終了メモリセルの個数（ｍ）がＭ１ビット以下の場合、規定回数追加書き込みの回数Ｃ１の分だけ書き込みループを追加により実行する。
【００８９】
（ｈ）  その後、ステップＳ２８に移行し、“ステータス＝パス”となる。
【００９０】
（ｉ）  また、ステップＳ２４において、Ｍ１ビット無視の“ベリファイステータス＝パス”がＮＯであれば、ステップＳ２９に移行し、“書き込み電圧Ｖｐｒｍ＝Ｖｐｇｍ＋ステップサイズ”と設定し、ステップＳ２２に戻る。
【００９１】
（ｊ）  次に、ステップＳ２５において、Ｍ２ビット無視の“ベリファイステータス＝パス”がＹＥＳであれば、ステップＳ２６に移行し、“書き込みループ回数ＰＣ≦書き込みループ回数の設定値ＰＣ＿ｍａｘ２”であるか否かを判定する。
【００９２】
（ｋ）  そして、ステップＳ２６において、“書き込みループ回数ＰＣ≦書き込みループ回数の設定値ＰＣ＿ｍａｘ２”がＮＯであれば、ステップＳ３０に移行し、“ＰＣ＝ＰＣ＋Ｃ２”と設定して、追加のプログラム動作（書き込みループ）を２回実行する。つまり、Ｌｏｏｐ＿ｍａｘ２を越えた以降において、プログラム未終了メモリセルの個数（ｍ）がＭ２ビット以下の場合、規定回数追加書き込みの回数Ｃ２の分だけ書き込みループを追加により実行する。
【００９３】
（ｍ）  その後、ステップＳ２８に移行し、“ステータス＝パス”となる。
【００９４】
（ｎ）  一方、ステップＳ２５において、Ｍ２ビット無視の“ベリファイステータス＝パス”がＮＯであれば、ステップＳ３１に移行し、“書き込みループ回数ＰＣ＜書き込みループ回数の最大値ＰＣ＿ｍａｘ”か否かを判定する。
【００９５】
（ｏ）  次に、ステップＳ３１において、“書き込みループ回数ＰＣ＜書き込みループ回数の最大値ＰＣ＿ｍａｘ”がＹＥＳであれば、ステップＳ２９に戻る。
【００９６】
（ｐ）  一方、ステップＳ３１において、“書き込みループ回数ＰＣ＜書き込みループ回数の最大値ＰＣ＿ｍａｘ”がＮＯであれば、ステップＳ３２に移行し、“ステータス＝フェイル”となる。
【００９７】
以上のように、本発明の第２の実施に形態にかかる多値論理のＮＡＮＤ型フラッシュメモリのデータ書き込み方法とした場合、第１の実施の形態で述べた効果に加え、特に、Ｍ２ビット以下のプログラム未終了メモリセルをより多く救済することが可能となり、ＥＣＣ回路３の負担をさらに軽減できるようになる。
【００９８】
なお、上記した本発明の第２の実施の形態においては、書き込みループの繰り返しの回数（データ書き込みループ回数）に応じて、追加の書き込みループの回数Ｃ１，Ｃ２を変化させるようにした場合について説明したが、これに限らず、たとえば書き込み電圧（ステップアップ電圧値）Ｖｐｇｍに応じて、追加の書き込みループの回数Ｃ１，Ｃ２を変化させるように構成することも可能である。
【００９９】
また、追加の書き込みループの回数Ｃを、２つの設定データＣ１，Ｃ２により切り替える場合に限らず、たとえば書き込みループの繰り返しの回数や書き込み電圧に応じて多段階的に切り替えるようにしてもよい。
【０１００】
その他、本願発明は、上記（各）実施形態に限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で種々に変形することが可能である。さらに、上記（各）実施形態には種々の段階の発明が含まれており、開示される複数の構成要件における適宜な組み合わせにより種々の発明が抽出され得る。たとえば、（各）実施形態に示される全構成要件からいくつかの構成要件が削除されても、発明が解決しようとする課題の欄で述べた課題（の少なくとも１つ）が解決でき、発明の効果の欄で述べられている効果（の少なくとも１つ）が得られる場合には、その構成要件が削除された構成が発明として抽出され得る。
【図面の簡単な説明】
【０１０１】
【図１】本発明の第１の実施の形態にしたがった、不揮発性半導体記憶装置（多値論理のＮＡＮＤ型フラッシュメモリ）の基本構成を示すブロック図。
【図２】図１に示した多値論理のＮＡＮＤ型フラッシュメモリにおけるセンスアンプの近傍の構成を、より詳細に示すブロック図。
【図３】図１に示した多値論理のＮＡＮＤ型フラッシュメモリに適用される、センスアンプの構成例を示す回路図。
【図４】図１に示した多値論理のＮＡＮＤ型フラッシュメモリに適用される、ビットスキャン回路の構成例を示す図。
【図５】検討例にかかる、多値論理のＮＡＮＤ型フラッシュメモリのデータ書き込み方法について説明するために示すフローチャート。
【図６】図５に示した検討例にかかる、ページ数分布とデータ書き込みループ回数との関係を示す図。
【図７】図１に示した多値論理のＮＡＮＤ型フラッシュメモリでの、データ書き込み方法について説明するために示すフローチャート。
【図８】図１に示した多値論理のＮＡＮＤ型フラッシュメモリでの、データ書き込みループ回数とページ数分布との関係を示す図。
【図９】図１に示した多値論理のＮＡＮＤ型フラッシュメモリでの、フェイルビット数とデータ書き込みループ回数との関係を示す図。
【図１０】図９の一部を拡大して示す、フェイルビット数とデータ書き込みループ回数との関係を示す図。
【図１１】本発明の第２の実施の形態にしたがった、多値論理のＮＡＮＤ型フラッシュメモリのデータ書き込み方法について説明するために示すフローチャート。
【符号の説明】
【０１０２】
１…メモリ装置本体、２…コントローラ、３…ＥＣＣ回路、１０…コア回路、１２…周辺回路、１４…メモリセルアレイ、１６…センスアンプ、１８…ビットスキャン回路、２０…シーケンサ、２２…レジスタ、２４…ページバッファ、２６…キャッシュメモリ、２８，３０…データインプットバッファ、３２…カラムアドレスデコーダ、３４…カラムアドレスレジスタ、３６…カラムアドレスバッファ、３８…ロウアドレスデコーダ、４０…ロウアドレスレジスタ、４２…ロウアドレスバッファ、４４，４６…データアウトプットバッファ、４８…クロックジェネレータ、５０…論理回路ブロック、Ｖｐｇｍ…書き込み電圧、Ｖｐｇｍ＿ｓｔａｒｔ…書き込み開始電圧、ＰＣ…データ書き込みループ回数、Ｌｏｏｐ＿ｍａｘ，ＰＣ＿ｍａｘ…データ書き込みループ回数の最大値、Ｌｏｏｐ＿ｍａｘ２，ＰＣ＿ｍａｘ２…データ書き込みループ回数の設定値。
【図１】
2007066386.tif 000003
【図２】
2007066386.tif 000004
【図３】
2007066386.tif 000005
【図４】
2007066386.tif 000006
【図５】
2007066386.tif 000007
【図６】
2007066386.tif 000008
【図７】
2007066386.tif 000009
【図８】
2007066386.tif 000010
【図９】
2007066386.tif 000011
【図１０】
2007066386.tif 000012
【図１１】
2007066386.tif 000013