(57)【要約】      （修正有）【課題】プログラムベリファイにおいて不合格ビット数がＥＣＣで訂正可能なビット数以下である疑似合格を判定することができるフラッシュメモリを提供する。【解決手段】疑似合格を判定するための判定回路２００は、複数のページバッファ／センス回路１７０と配線PB_UP、PB_MG、PB_DISを介して接続される。ページバッファ／センス回路１７０は、プログラムベリファイが不合格であるとき、トランジスタQ1を介して基準電流Irefを流すトランジスタQ2を含む。判定回路２００は、比較器CMPを含み、比較器CMPの一方の入力端子には、配線PB_UPの電圧が供給され、他方の入力端子には基準電圧Vrefが供給される。基準電圧Vrefは、疑似合格を判定する不合格ビット数（Ｎ）に応じた数の基準電流(Iref＊N)により生成される。【選択図】図１０
2017139037.tif 000002
【特許請求の範囲】
【請求項１】
メモリアレイと、
複数のデータ保持回路であって、各データ保持回路は、ビット線を介して前記メモリアレイに接続され、選択ページにプログラムすべきデータを保持する回路と、プログラムベリファイ時にベリファイの合否を出力する出力回路とを含む、前記複数のデータ保持回路と、
前記複数のデータ保持回路の各出力回路に接続され、前記複数のデータ保持回路のベリファイ結果が許容される不合格ビット数であるか否かを判定する判定回路とを含み、
前記判定回路は、前記複数のデータ保持回路のベリファイの合否に応じた検出電圧を生成する第１の回路と、基準電圧を生成する第２の回路と、前記検出電圧と前記基準電圧とを比較する比較回路とを含み、当該比較回路は、前記複数のデータ保持手段によるベリファイ結果が許容される不合格ビット数であるか否かを表す信号を出力する、不揮発性半導体記憶装置。
【請求項２】
前記第２の回路は、前記許容される不合格ビット数に応じた基準電圧を生成する、請求項１に記載の不揮発性半導体記憶装置。
【請求項３】
前記第２の回路は、前記許容される不合格ビット数に応じた数の基準電流により前記基準電圧を生成する、請求項２に記載の不揮発性半導体記憶装置。
【請求項４】
前記第２の回路は、前記基準電流を流すトランジスタを複数含み、前記第２の回路は、前記許容される不合格ビット数に応じて前記複数のトランジスタのうちの動作されるトランジスタの数を選択する、請求項３に記載の不揮発性半導体記憶装置。
【請求項５】
前記データ保持回路の出力回路は、ベリファイ結果が不合格であるとき前記第２の回路の基準電流と等しい基準電流を流すトランジスタを含み、前記第１の回路は、不合格ビット数に応じた数の基準電流により前記検出電圧を生成する、請求項３または４に記載の不揮発性半導体記憶装置。
【請求項６】
前記第２の回路は、予め決められた数の基準電流により前記基準電圧を生成し、前記第１の回路は、前記予め決められた数よりも少ない数の基準電流を用いて前記検出電圧を生成する、請求項１に記載の不揮発性半導体記憶装置。
【請求項７】
前記第１の回路は、前記許容される不合格ビット数に応じた数の基準電流を供給する供給回路を含み、前記第１の回路により生成される前記検出電圧は、前記供給回路により供給された基準電流に応じた値である、請求項１に記載の不揮発性半導体記憶装置。
【請求項８】
前記供給回路は、前記基準電流を流すトランジスタを複数含み、前記供給回路は、前記許容される不合格ビット数に応じて前記複数のトランジスタのうちの動作されるトランジスタの数を選択する、請求項７に記載の不揮発性半導体記憶装置。
【請求項９】
前記許容される不合格ビット数は、誤り検出・訂正手段により救済可能なビット数に応じて決定される、請求項１ないし８いずれか１つに記載の不揮発性半導体記憶装置。
【請求項１０】
前記誤り検出・訂正手段が選択ページのセクタ単位で行われるとき、前記判定回路は、セクタ単位で複数のデータ保持回路に接続される、請求項９に記載の不揮発性半導体記憶装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、半導体記憶装置、特にＮＡＮＤ型フラッシュメモリのプログラムに関する。
【背景技術】
【０００２】
ＮＡＮＤ型フラッシュメモリでは、データのプログラムや消去が繰り返されることで、トンネル絶縁膜の劣化により電荷保持特性が悪化したり、トンネル絶縁膜にトラップされた電荷によりしきい値変動が生じ、ビットエラーを引き起こす。特許文献１は、このようなビットエラー対策として、誤り検出訂正回路（ＥＣＣ：Error Checking Correction）を搭載している。また、特許文献２は、１つのメモリセルにマルチビットのデータを格納するＮＡＮＤ型フラッシュメモリにおいて、マルチビットのデータのエラー訂正スキームを開示している。さらに特許文献３は、訂正したエラー数がしきい値以上の物理ブロックを警告ブロックとしてテーブルに登録し、データ書込み時に警告ブロックの選択の優先順位を下げるフラッシュメモリを開示している。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１０−１５２９８９号公報
【特許文献２】特開２００８−１６５８０５号公報
【特許文献３】特開２０１０−７９４８６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ＥＣＣ回路をオンチップで搭載するＮＡＮＤ型フラッシュメモリにおいて、外部入出力端子から入力されたプログラムすべきデータがページバッファ／センス回路へロードされると、プログラムすべきデータがＥＣＣ回路に転送され、ＥＣＣ回路３０は、プログラムすべきデータの演算を行い、誤り検出・訂正のための誤り訂正符号を生成し、誤り訂正符号をページバッファ／センス回路の所定領域に書き戻す。そして、ページバッファ／センス回路に保持されたプログラムすべきデータおよび誤り訂正符号がメモリアレイの選択ページにプログラムされる。
【０００５】
図１は、従来のプログラム動作のフローである。ビット線にプログラムデータに応じた電圧が設定され、選択ページにプログラムパルスが印加され（Ｓ１０）、次に、選択ページのプログラムベリファイが行われ（Ｓ２０）、選択ページの全てのメモリセルのプログラムが合格したか否かが判定される（Ｓ３０）。プログラムが合格と判定された場合には、プログラムが終了される。一方、不合格のメモリセルがある場合には、プログラムパルスの印加回数がＮＭＡＸに到達したか否かが判定される（Ｓ４０）。ＮＭＡＸとは、プログラムに許容される最大時間またはプログラムに許容される最大のプログラムパルスの印加回数を意味する。ＮＭＡＸに到達した場合には、プログラム失敗のステータスが外部のコントローラに通知されるとともに、当該ブロックがバッドブロックとして管理される。ＮＭＡＸに到達していなければ、ＩＳＰＰ（Incremental Step Program Pulse）に従い、前回のプログラムパルスよりもΔＶだけ大きなステップ電圧を有するプログラムパルスが生成されＳ５０）、このプログラムパルスが選択ページに印加される。
【０００６】
外部のコントローラ等に搭載されたＥＣＣ機能を利用しないか、あるいはＥＣＣを搭載していないフラッシュメモリでは、プログラムベリファイの合格は、全ビットの合格が前提である。これに対し、外部のコントローラ等に搭載されたＥＣＣ機能を利用するか、あるいはＥＣＣがオンチップ搭載されたフラッシュメモリでは、ベリファイにおいて一部の不合格ビット（「０」プログラムが不合格のメモリセル）があったとしても、これをＥＣＣで救済することにより疑似合格とすることが可能である。例えば、ＥＣＣによってｍビットの誤り検出・訂正が可能であれば、理論上、最大でｍビットの不合格ビットを救済することができる。選択ページの読出しを行う場合には、選択ページに含まれる不合格ビットが誤りとして検出され、このデータが訂正される。疑似合格の判定をすることで、プログラム失敗やバッドブロックを減らし、歩留まりを向上させ、さらにプログラムパルスの印加回数を抑制することで、プログラムディスターブを減らすことができる。
【０００７】
しかしながら、従来のフラッシュメモリのプログラムベリファイでは、選択ページの全ビットが合格するか否かを判定するオールビット判定の回路構成であり、疑似合格の判定を行うことができない。図２に、従来のオールビット判定の回路構成を示す。例えば、ページバッファ／センス回路のサイズが２ｋＢであるとき、ベリファイ判定ラインVLとノードNとの間に、ラッチ回路のノードSLS_０、SLS_1、SLS_2、・・・SLS_2048×8が供給されるベリファイ用トランジスタが並列に接続され、さらにノードNとGNDとの間にプログラムベリファイをイネーブルする（JUDGE ONがHレベル）ためのトランジスタが接続される。プログラムベリファイ時、ベリファイ判定ラインVLにはHレベルの電圧が供給され、選択ページの全ビットが合格であるとき、全てのラッチ回路のノードSLSがLレベルとなり、ベリファイ判定ラインVLはHレベルを維持する。しかし、１つでも不合格ビットがあると、ノードSLSがHレベルとなり、対応するベリファイ用トランジスタがオンし、ベリファイ判定ラインVLがLレベルとなる。このため、オールビット判定を行う回路では、疑似合格の判定を行うことができない。
【０００８】
本発明は、このような従来の課題を解決するものであり、疑似合格の判定を行うことができる不揮発性半導体記憶装置を提供することを目的とする。
【課題を解決するための手段】
【０００９】
本発明に係る不揮発性半導体記憶装置は、メモリアレイと、複数のデータ保持回路であって、各データ保持回路は、ビット線を介して前記メモリアレイに接続され、選択ページにプログラムすべきデータを保持する回路と、プログラムベリファイ時にベリファイの合否を出力する出力回路とを含む、前記複数のデータ保持回路と、前記複数のデータ保持回路の各出力回路に接続され、前記複数のデータ保持回路のベリファイ結果が許容される不合格ビット数であるか否かを判定する判定回路とを含み、前記判定回路は、前記複数のデータ保持回路のベリファイの合否に応じた検出電圧を生成する第１の回路と、基準電圧を生成する第２の回路と、前記検出電圧と前記基準電圧とを比較する比較回路とを含み、当該比較回路は、前記複数のデータ保持手段によるベリファイ結果が許容される不合格ビット数であるか否かを表す信号を出力する。
【００１０】
好ましくは前記第２の回路は、前記許容される不合格ビット数に応じた基準電圧を生成する。好ましくは前記第２の回路は、前記許容される不合格ビット数に応じた数の基準電流により前記基準電圧を生成する。好ましくは前記第２の回路は、前記基準電流を流すトランジスタを複数含み、前記第２の回路は、前記許容される不合格ビット数に応じて前記複数のトランジスタのうちの動作されるトランジスタの数を選択する。好ましくは前記データ保持回路の出力回路は、ベリファイ結果が不合格であるとき前記第２の回路の基準電流と等しい基準電流を流すトランジスタを含み、前記第１の回路は、不合格ビット数に応じた数の基準電流により前記検出電圧を生成する。好ましくは前記第２の回路は、予め決められた数の基準電流により前記基準電圧を生成し、前記第１の回路は、前記予め決められた数よりも少ない数の基準電流を用いて前記検出電圧を生成する。好ましくは前記第１の回路は、前記許容される不合格ビット数に応じた数の基準電流を供給する供給回路を含み、前記第１の回路により生成される前記検出電圧は、前記供給回路により供給された基準電流に応じた値である。好ましくは前記供給回路は、前記基準電流を流すトランジスタを複数含み、前記供給回路は、前記許容される不合格ビット数に応じて前記複数のトランジスタのうちの動作されるトランジスタの数を選択する。好ましくは前記許容される不合格ビット数は、誤り検出・訂正手段により救済可能なビット数に応じて決定される。好ましくは前記誤り検出・訂正手段が選択ページのセクタ単位で行われるとき、前記判定回路は、セクタ単位で複数のデータ保持回路に接続される。
【発明の効果】
【００１１】
本発明によれば、複数のデータ保持回路のベリファイ結果が許容される不合格ビット数であるか否かを判定する判定回路を設けるようにしたので、オールビット判定に加えて疑似合格の判定を行うことができる。
【図面の簡単な説明】
【００１２】
【図１】従来のフラッシュメモリのプログラム動作を説明するフローチャートである。
【図２】従来のプログラムベリファイのオールビット判定の回路を示す図である。
【図３】本発明の実施例に係るＮＡＮＤ型フラッシュメモリの全体の概略構成を示す図である。
【図４】本発明の実施例に係るメモリセルアレイのＮＡＮＤストリングの構成を示す回路図である。
【図５】本発明の実施例に係るフラッシュメモリの動作時に各部に印加される電圧の一例を示す図である。
【図６】本発明の実施例に係るプログラム動作を説明するフローチャートである。
【図７】本発明の実施例によるプログラム動作時のレギュラー領域のＥＣＣ処理を説明する図である。
【図８】本発明の実施例によるプログラム動作時のスペア領域のＥＣＣ処理を説明する図である。
【図９】本発明の実施例に係る疑似合格を判定する判定回路とページバッファ／センス回路との接続関係を示す図である。
【図１０】本発明の第１の実施例に係る判定回路とページバッファ／センス回路の構成を示す図である。
【図１１】本発明の第１の実施例に係る判定回路において疑似合格の判定をするときの各部の電流値を示すテーブルである。
【図１２】本発明の第２の実施例に係る判定回路とページバッファ／センス回路の構成を示す図である。
【図１３】本発明の第２の実施例に係る判定回路において疑似合格の判定をするときの各部の電流値を示すテーブルである。
【図１４】本発明の第２の実施例に係る判定回路における基準電圧Vrefと配線PB_UPの電圧との関係を示すグラフである。
【図１５】本発明の第２の実施例の変形例に係る判定回路とページバッファ／センス回路の構成を示す図である。
【図１６】本発明の第３の実施例に係る判定回路とページバッファ／センス回路の構成を示す図である。
【図１７】本発明の第３の実施例に係る判定回路において疑似合格の判定をするときの各部の電流値を示すテーブルである。
【図１８】本発明の第３の実施例に係る判定回路における基準電圧Vrefと配線PB_UPの電圧との関係を示すグラフである。
【発明を実施するための形態】
【００１３】
次に、本発明の実施の形態について図面を参照して詳細に説明する。ここでは、好ましい形態としてＮＡＮＤ型のフラッシュメモリを例示する。なお、図面は、分かり易くするために各部を強調して示してあり、実際のデバイスのスケールとは異なることに留意すべきである。
【実施例】
【００１４】
本発明の実施例に係るフラッシュメモリの典型的な構成を図３に示す。但し、ここに示すフラッシュメモリの構成は例示であり、本発明は、必ずしもこのような構成に限定されるものではない。本実施例のフラッシュメモリ１００は、複数のメモリセルが行列状に配列されたメモリアレイ１１０と、外部入出力端子Ｉ／Ｏに接続され入出力データを保持する入出力バッファ１２０と、メモリアレイ１１０にプログラムするデータやそこから読み出されたデータの誤り検出・訂正を行うＥＣＣ回路１３０と、入出力バッファ１２０からのアドレスデータを受け取るアドレスレジスタ１４０と、入出力バッファ１２０からのコマンドデータや外部からの制御信号を受け取り、各部を制御する制御部１５０と、アドレスレジスタ１４０から行アドレス情報Ａｘを受け取り、行アドレス情報Ａｘをデコードし、デコード結果に基づきブロックの選択およびワード線の選択等を行うワード線選択回路１６０と、ワード線選択回路１６０によって選択されたページから読み出されたデータを保持したり、選択されたページへの書込みデータを保持するページバッファ／センス回路１７０と、アドレスレジスタ１４０から列アドレス情報Ａｙを受け取り、列アドレス情報Ａｙをデコードし、当該デコード結果に基づきページバッファ／センス回路１７０内のデータの選択等を行う列選択回路１８０と、データの読出し、プログラムおよび消去等のために必要な種々の電圧（書込み電圧Vpgm、パス電圧Vpass、読出しパス電圧Vread、消去電圧Versなど）を生成する内部電圧発生回路１９０とを含んで構成される。
【００１５】
メモリアレイ１１０は、列方向に配置されたｍ個のメモリブロックBLK(0)、BLK(1)、・・・、BLK(m-1)を有する。ブロックBLK(0)に近接して、ページバッファ／センス回路１７０が配置される。１つのメモリブロックには、例えば、図４に示すように、複数のメモリセルを直列に接続したＮＡＮＤストリングユニットＮＵが複数形成され、１つのメモリブロック内にｎ＋１個のストリングユニットＮＵが行方向に配列されている。セルユニットＮＵは、直列に接続された複数のメモリセルMCi(i=０、１、・・・、３１)と、一方の端部であるメモリセルMC31のドレイン側に接続された選択トランジスタTDと、他方の端部であるメモリセルMC0のソース側に接続された選択トランジスタTSとを含み、選択トランジスタTDのドレインは、対応する１つのビット線GBLに接続され、選択トランジスタTSのソースは、共通のソース線SLに接続される。
【００１６】
メモリセルMCiのコントロールゲートは、ワード線WLiに接続され、選択トランジスタTD、TSのゲートは、ワード線WLと並行する選択ゲート線SGD、SGSに接続される。ワード線選択回路１６０は、行アドレスＡｘまたは変換されたアドレスに基づきブロックを選択するとき、ブロックの選択ゲート信号SGS、SGDを介して選択トランジスタTD、TSを選択的に駆動する。図４は、典型的なセルユニットの構成を示しているが、セルユニットは、ＮＡＮＤストリング内に１つまたは複数のダミーセルを包含するものであってもよい。
【００１７】
メモリセルは、典型的に、Ｐウエル内に形成されたＮ型の拡散領域であるソース／ドレインと、ソース／ドレイン間のチャンネル上に形成されたトンネル酸化膜と、トンネル酸化膜上に形成されたフローティングゲート（電荷蓄積層）と、フローティングゲート上に誘電体膜を介して形成されたコントロールゲートとを含むＭＯＳ構造を有する。フローティングゲートに電荷が蓄積されていないとき、つまりデータ「１」が書込まれているとき、しきい値は負状態にあり、メモリセルは、ノーマリオンである。フローティングゲートに電子が蓄積されたとき、つまりデータ「０」が書込まれているとき、しきい値は正にシフトし、メモリセルは、ノーマリオフである。但し、メモリセルは、１ビット（２値データ）を記憶するＳＬＣタイプでもよいし、多ビットを記憶するＭＬＣタイプであってもよい。
【００１８】
図５は、フラッシュメモリの各動作時に印加されるバイアス電圧の一例を示したテーブルである。読出し動作では、ビット線に或る正の電圧を印加し、選択されたワード線に或る電圧（例えば０Ｖ）を印加し、非選択ワード線にパス電圧Vpass（例えば４．５Ｖ）を印加し、選択ゲート線SGD、SGSに正の電圧（例えば４．５Ｖ）を印加し、ビット線側選択トランジスタTD、ソース線側選択トランジスタTSをオンし、共通ソース線に０Ｖを印加する。プログラム（書込み）動作では、選択されたワード線に高電圧のプログラム電圧Vpgm（１５〜２０Ｖ）を印加し、非選択のワード線に中間電位（例えば１０Ｖ）を印加し、ビット線側選択トランジスタTDをオンさせ、ソース線側選択トランジスタTSをオフさせ、「０」または「１」のデータに応じた電位をビット線GBLに供給する。消去動作では、ブロック内の選択されたワード線に０Ｖを印加し、Ｐウエルに高電圧（例えば２０Ｖ）を印加し、フローティングゲートの電子を基板に引き抜くことで、ブロック単位でデータを消去する。
【００１９】
プログラム動作時に入出力バッファ１２０を介して入力データ（プログラムすべきデータ）Ｄｉがページバッファ／センス回路１７０にロードされると、ＥＣＣ回路１３０は、ページバッファ／センス回路１７０から転送された入力データＤｉを演算し、プログラムデータの誤り検出訂正に必要な誤り訂正符号またはパリティビットを生成する。ＥＣＣの演算は、例えば、ハミングコードやリード・ソロモンなどの公知の手法によって行われ、入力されたｋビットまたはｋバイトの入力データＤｉをｐ＝ｋ＋ｑに変換する。「ｑ」は、入力データＤｉの誤り検出訂正に必要な誤り訂正符号またはパリティビットである。１つの好ましい例では、ＥＣＣ回路１３０は、誤り訂正符号をページバッファ／センス回路１７０のスペア領域にセットする。こうして、ページバッファ／センス回路１７０にセットされた入力データＤｉと誤り訂正符号がメモリアレイ１１０の選択ページにプログラムされる。
【００２０】
読出し動作時、メモリアレイ１１０の選択ページから読み出されたデータがページバッファ／センス回路１７０に保持されると、ＥＣＣ回路１３０は、ページバッファ／センス回路１７０から転送された誤り訂正符号に基づき読出しデータの誤りの検出を行い、誤りが検出された場合には訂正したデータをページバッファ／センス回路１７０にセットする。そして、ページバッファ／センス回路１７０に保持されたデータが入出力バッファ１２０を介して出力される。
【００２１】
次に、本発明の実施例に係るプログラム動作を図６のフローを参照して説明する。制御部１５０は、入出力バッファ１２０を介してプログラムコマンドを受け取ると、プログラムのためのシーケンスを開始する。入力データＤｉがページバッファ／センス回路１７０にロードされ、次いで、ＥＣＣ回路１３０により入力データＤｉのＥＣＣ処理が行われる（Ｓ１００）。
【００２２】
図７に、ＥＣＣ処理の一例を示す。フラッシュメモリ１００が×８の外部入出力端子を有するとき、外部入出力端子Ｐ０〜Ｐ７から各Ｉ／Ｏバッファ１２０−１〜１２０−７を介してページバッファ／センス回路１７０にデータがロードされる。ページバッファ／センス回路１７０は、例えば、セクタ０〜セクタ７の８つのセクタに分割されたレギュラー領域３００と、スペア０、スペア１、スペア２、スペア３の４つのセクタに分割されたスペア領域３１０とを有する。
【００２３】
レギュラー領域３００の１つのセクタは、例えば、２５６バイトから構成され、この場合、レギュラー領域３００の８つのセクタは、全体で約２Ｋバイトのプログラムデータを保持することができる。スペア領域３１０の１つのセクタは、例えば１６バイトから構成され、この場合、４つのセクタ（スペア０〜スペア３）は全体で６４バイトのデータを保持することができる。スペア領域３１０の１つのセクタは、例えば、不良メモリセルを含むバッドブロックを識別する情報を記憶する領域３１１、ユーザーデータに関する情報を記憶する領域３１２、レギュラー領域３００の２つセクタについての誤り訂正符号（パリティビット）を記憶する領域３１３、３１４、スペア領域３１０がＥＣＣ演算されたときの誤り訂正符号（パリティビット）を記憶する領域３１５を有する。スペア領域３１０のスペア０の領域３１３、３１４は、レギュラー領域３００のセクタ０、セクタ１の誤り訂正符号（パリティビット）をそれぞれ記憶し、スペア領域３１０のスペア１の領域３１３、３１４は、レギュラー領域３００のセクタ２、セクタ３の誤り訂正符号（パリティビット）を記憶する。同様に、スペア領域３１０のスペア２は、レギュラー領域３００のセクタ４、セクタ５のパリティビットを記憶し、スペア領域３１０のスペア３は、レギュラー領域３００のセクタ６、セクタ７のパリティビットを記憶する。
【００２４】
レギュラー領域３００の１つのセクタには、入出力バッファ１２０−０〜１２０−７が割り当てられ、つまり、１つの外部入出力端子には２５６ビットが割り当てられる（２５６bit×８＝１セクタ）。列選択回路１８０は、プログラム動作時に受け取った列アドレス情報Ａｙをデコードし、当該デコード結果に基づき、外部入出力端子Ｐ−０〜Ｐ７に入力されたデータがロードされるセクタを選択する。図７は、外部入出力端子Ｐ−０〜Ｐ−７で受け取られたデータが列アドレス情報Ａｙに従いセクタ０にロードされる例を示している。
【００２５】
ここに示す例では、ＥＣＣ回路１３０が誤り訂正符号を書込むための書込み回路を含む。好ましくは、ＥＣＣ回路１３０は、レギュラー領域３００の１つのセクタと等しいバイト数のデータについてＥＣＣ演算を行うことができる。レギュラー領域３００の１つのセクタが２５６バイトであれば、ＥＣＣ回路は、２５６バイトのデータについてＥＣＣ演算を行い、例えば、１ビットの誤りを訂正する誤り訂正符号を生成する。この場合、全体の８セクタでは、最大で８ビットの誤りを訂正することができる。
【００２６】
ＥＣＣ回路１３０は、生成された誤り訂正符号をスペア領域３１０の対応するセクタの領域３１３または３１４に書込む。図７に示す例では、プログラムデータがレギュラー領域３００のセクタ０にロードされるので、誤り訂正符号は、スペア０のセクタ０のパリティを記憶する領域３１３に書込まれる。
【００２７】
図８に、スペア領域３１０のデータのＥＣＣ処理を例示する。レギュラー領域３００の各セクタについてＥＣＣ処理が終了すると、次に、スペア領域３１０の各セクタについてＥＣＣ処理が行われる。スペア領域３１０の１つセクタ内に含まれるどのデータのＥＣＣ処理を行うかは任意であるが、本例では、領域３１２ないし領域３１４のデータについてＥＣＣ処理を行うものとする。それ故、スペア０の領域３１２ないし領域３１４のデータがＥＣＣ回路１３０に転送され、ＥＣＣ処理によって生成された誤り訂正符号が、ＥＣＣ回路１３０によってスペア０の領域３１５に書込まれる。同様の処理が、他のスペア１ないしスペア３についても行われる。
【００２８】
再び図６を参照し、ＥＣＣ処理が終了すると（Ｓ１００）、メモリアレイ１１０へのプログラムが開始される。ワード線選択回路１６０によりメモリアレイ１１０のワード線が選択され、ビット線には、ページバッファ／センス回路１７０によって保持されたデータに応じた電圧が供給され、選択ページにプログラムパルスが印加される（Ｓ１１０）。次に、プルグラムベリファイが行われ(Ｓ１２０)、データ「０」がプログラムされたメモリセルのしきい値が一定値以上になっているか否かがチェックされる。ベリファイの結果、選択ページの全ビットが合格であれば、プログラムが終了される。
【００２９】
全ビットが合格でない場合には、制御部１５０は、選択ページが疑似合格であるか否かを判定する（Ｓ１４０）。疑似合格とされる最大の不合格ビット数Ｎｐは、ＥＣＣ回路１３０によって救済できる最大のビット数Ｎｃｃ以下であり、ベリファイ時の不合格ビット数、すなわち選択ページに実際に生じている不合格ビット数Ｎｆが疑似合格の最大の不合格ビット数Ｎｐ以下であれば（Ｎｆ≦Ｎｐ）、疑似合格と判定される（Ｓ１４０）。疑似合格と判定されるとプログラム動作が終了し、選択ページには、「０」不良の不合格ビットがそのまま記憶されたことになる。
【００３０】
一方、疑似合格していないと判定されたとき（Ｓ１４０）、制御部１５０は、プログラムパルスの印加回数がＮＭＡＸに到達したか否かを判定し（Ｓ１５０）、到達していなければ、ＩＳＰＰに従いさらにプログラムパルスが選択ページに印加される（Ｓ１５０）。プログラムパルスの印加回数がＮＭＡＸに到達した場合には、プログラム失敗のステータスを外部のコントローラに通知し、当該選択ページを含むブロックがバッドブロックとして管理される。この場合、スペア領域の領域３１１にバッドブロックである識別情報が記憶される。なお、疑似合格とされた不合格ビットを含むデータ読み出されるとき、ＥＣＣ回路１３０は、不合格ビットを誤りとして検出し、これを正しいデータに訂正する。
【００３１】
次に、本実施例のプログラム動作時に行われる疑似合格を判定する判定回路について説明する。図９は、疑似合格を判定する判定回路とページバッファ／センス回路との接続関係を示す図である。１つの好ましい態様では、ＥＣＣ処理がセクタ単位で行われるとき、１つの判定回路２００は、１つのセクタに用意される。例えば、図７に示すように、１つのページが８つのセクタに分割され、１つのセクタが２５６バイトから構成されるとき、１つの判定回路は、１つのセクタ、すなわち２５６×８個のページバッファ／センス回路１７０＿１、１７０＿２、１７０＿３〜１７０＿２５６×８に接続される。このため、１つのページには８つの判定回路が用意される。
【００３２】
図９に示すように、判定回路２００は、ノードＮ１、Ｎ２、Ｎ３を介して配線ＰＢ＿ＵＰ、ＰＢ＿ＭＧ、ＰＢ＿ＤＩＳに接続され、これらの配線ＰＢ＿ＵＰ、ＰＢ＿ＭＧ、ＰＢ＿ＤＩＳは、２５６×８個のページバッファ／センス回路１７０＿１〜１７０＿２５６×８が並列となるように共通に接続される。ＥＣＣ回路１３０が２５６バイトのデータについてＥＣＣ演算を行うとき、例えば最大で４ビットの誤りを救済することが可能であるならば、判定回路２００は、最大で４ビットの不合格ビット（データ「０」のプログラム不良）を疑似合格と判定することが許容される。
【００３３】
他の好ましい態様では、ＥＣＣ処理がセクタ単位でなく、ページ単位で行われるものであるとき、１つのページに１つの判定回路が用意されるようにしてもよい。この場合、１つの判定回路は、ＥＣＣ回路によって救済可能な誤りビットの最大値を許容可能な不合格ビットとして疑似合格するか否か判定する。
【００３４】
次に、判定回路の詳細について説明する。図１０に、１つの判定回路とこれに接続される１つのページバッファ／センス回路の構成を示す。ページバッファ／センス回路１７０は、典型的に、電圧供給部V1からの電圧をビット線にプリチャージするためのトランジスタBLPRE、ビット線をクランプするためのトランジスタBLCLAMP、センスノードSNSとラッチノードSLR間の電荷転送を可能にするためのトランジスタBLCD、ラッチノードSLRの電位を電圧供給部V2に接続されたトランジスタVGに転送するためのトランジスタDTG、電圧供給部V2をセンスノードSNSに結合するためのトランジスタREGを含む。トランジスタDTGは、例えば、プログラムベリファイ等においてセンスノードSNSをＬレベルからＨレベルに反転させる必要があるときに動作され、あるいはこれ以外にもセンスノードSNSをHレベルからLレベルに反転させる場合に動作される。ページバッファ／センス回路１７０はさらに、一対のインバータをクロスカップリングしたラッチ回路を含み、ラッチ回路は、ノードSLR／SLSを等価するためのトランジスタEQ_ENと、ノードSLR／SLSをデータラインへ結合するためのトランジスタCSLと、ノードSLSに結合されたトランジスタQ1と、トランジスタQ1に直列に接続されたトランジスタQ2とを含む。
【００３５】
ページバッファ／センス回路１７０はさらに、プログラムベリファイの合否の結果を出力するための回路を含む。当該回路は、配線PB_UPと配線PB_DISとの間に直列に接続された２つのNMOSトランジスタQ1、Q2を含む。トランジスタQ1のゲートには、ラッチノードSLSが供給され、トランジスタQ2のゲートには、配線PB_MGが接続される。配線PB_UPは、判定回路２００のノードN1に接続され、配線PB_MGは、ノードN2に接続され、配線PB_DISは、ノードN3に接続される。トランジスタQ2は、後述するようにトランジスタQ5、Q8と同じサイズWのトランジスタから構成され、トランジスタQ2は、トランジスタQ1が導通するとき、基準電流Irefを流す。プログラムベリファイが合格であるとき、ラッチノードSLSがLレベルとなり、トランジスタQ1がオフとなり、配線PB_UPから配線PB_DISには電流が流れないため、配線PB_UPの電圧は変動しない。プログラムベリファイが不合格であるとき、ラッチノードSLSがHレベルとなり、トランジスタQ1がオンし、このときトランジスタQ2が基準電流Irefを流すため、配線PB_UPの電圧は基準電流Irefによって降下する。
【００３６】
判定回路２００は、電圧供給源に接続されたPMOSトランジスタQ3、Q4、可変抵抗R1、R2、比較器CMP、NMOSトランジスタQ5、Q6、Q7、Q8を含む。PMOSトランジスタQ3、Q4は、電流源として機能し、可変抵抗R1、R2は、それぞれ可変抵抗R1、R2から出力される電圧が等しくなるように調整される。つまり初期設定として、配線PB_UPの電圧と基準電圧Vrefとが等しくなるように抵抗R1、R2が調整される。可変抵抗R1の出力、すなわち配線PB_UPの電圧が比較器CMPの一方の入力端子（＋）に接続され、可変抵抗R2の出力、すなわち基準電圧Vrefが比較器CMPの他方の入力端子（−）に接続される。比較器CMPは、２つの入力電圧を比較し、HレベルまたはLレベルの電圧を出力する。Hレベルは、疑似合格を表し、Lレベルは、不合格を表す。
【００３７】
トランジスタQ5は、定電流源に接続され、基準電流Irefを流す。トランジスタQ5のゲートは、ノードN2、すなわち配線PB_MGに接続される。トランジスタQ6は、可変抵抗R2に直列に接続され、そのゲートはノードN2に接続される。トランジスタQ6とGNDとの間にトランジスタQ7が直列に接続され、トランジスタQ7のゲートには、JUDGEON信号が供給される。プログラムベリファイが行われるときJUDGEON信号がHレベルに駆動され、トランジスタQ7が導通状態になる。トランジスタQ6とトランジスタQ7との接続ノードは、ノードN3、すなわち配線PB_DISに接続される。ここで、トランジスタQ6のサイズ（W/２）は、トランジスタQ5、Q2のサイズ（W）の半分であり、それ故、トランジスタQ6は、トランジスタQ7がオンしたとき、１／２のIrefを流す。
【００３８】
トランジスタQ8は、判定回路２００によって疑似合格であるか否かを判定する不合格ビットの数Ｎに応じて設けられる。判定回路２００によって疑似合格か否かを判定する不合格ビット数が０ビットの場合には、トランジスタQ8は事実上不要であるか、あるいは設けられていたとしても、トランジスタQ8の動作はディスエーブルされる（Ｎ＝０）。１ビットの不合格ビットが疑似合格するか否かを判定するならば、トランジスタQ8は１つ必要であり（Ｎ＝１）、２ビットの不合格ビットが疑似合格するか否かを判定するならば、並列接続されたトランジスタQ8は２つ必要である（Ｎ＝２）。判定回路２００によって疑似合格か否かを判定することができる不合格ビット数の最大値は、ＥＣＣ回路１７０によって救済されるビット数の最大値である。
【００３９】
図１０には、１つのトランジスタQ8が例示されるが、トランジスタQ8は、上記したように疑似合格か否かを判定する不合格ビットの数Ｎに応じて設けられる。トランジスタQ8は、基準電圧Vrefと配線PB_DISとの間に接続され、そのゲートは配線PB_MGに接続される。トランジスタQ8のサイズ（W）は、トランジスタQ5、Q2と同じサイズ（W）であり、トランジスタQ8は、トランジスタQ7が導通するとき、基準電流Irefを流す。
【００４０】
トランジスタQ8は、疑似合格か否かを判定する不合格ビットの数（Ｎ）に応じて用意されるが、Ｎの数に応じてトランジスタＱ８を接続し、それらのトランジスタQ8が全て動作するようにしてもよいし、あるいは接続された複数のトランジスタQ8の中から動作されるトランジスタQ8の数を任意に選択するようにしてもよい。図１１（Ｂ）は、接続されたトランジスタQ8の中から動作されるトランジスタQ8の数を選択する方法の一例を示している。基準電圧Vrefと配線PB_DISとの間に、トランジスタQ8_1とトランジスタQ10が直列に接続され、さらにこれらトランジスタと並列にトランジスタQ8_2とトランジスタQ11が直列に接続される。トランジスタQ10、Q11のゲートには、イネーブル信号EN_1、EN_2が供給され、イネーブル信号EN_1、EN_2をHレベルに駆動したとき、トランジスタQ8_1、Q8_2が基準電流Irefを流すように動作される。イネーブル信号EN_1またはEN_2の一方をLレベルにすることで１つのトランジスタQ8が基準電流Irefを流すように動作され、イネーブル信号EN_1、EN_2の双方をLレベルにすることで２つのトランジスタQ8_1、Q8_2が非動作にされる。イネーブル信号EN_1、EN_2は、例えば制御部１５０からの制御信号に応答して駆動される。ここでは、トランジスタQ10、Q11をスイッチングさせることでトランジスタQ8_1、Q8_2の選択を可能にしているが、トランジスタQ10、Q11を、例えばヒューズに代えることより恒久的に選択されるトランジスタQ8を固定することも可能である。
【００４１】
次に、判定回路２００の動作について説明する。図１１（Ａ）は、判定回路が０ビット、１ビット、または２ビットの不合格ビットの疑似合格を判定するときの各部の電流値および電流値の差分を表したテーブルである。
【００４２】
（１）０ビットの不合格ビットを判定する場合：
先ず、０ビットの不合格ビットの判定について説明する。これは、全ビットのプログラムが成功したか否かを判定することであり、この場合には、トランジスタQ8が全く不要であるか、あるいはトランジスタQ8がディスエーブルである（Ｎ＝０）。プログラムベリファイは、選択ワード線にベリファイ電圧を印加する以外は、通常の読出し動作と同様であり、全ビットのプログラムが成功した場合には、選択メモリセルが非導通であり、全ビット線の電位は放電されず、プリチャージされた電位である。このため、ラッチノードSLSはLレベルであり、トランジスタQ1はオフであり、配線PB_Uの電圧は変動しない。また、ベリファイ時、JUDGEON信号がHレベルに駆動され、トランジスタQ7がオンし、配線PB_DISがGNDレベルとなる。このとき、トランジスタQ6は、１／２Irefの電流を流すため、基準電圧Vrefは、１／２Irefの電圧降下に応じた値となる。その結果、配線PB_UPの電圧が基準電圧Vrefよりも１／２Irefの分だけ高くなるため、比較器CMPは、Hレベルの信号、すなわち合格を出力する。
【００４３】
一方、１ビットの不合格ビットがあるとき、１つのページバッファ／センス回路１７０のラッチノードSLSがHレベルとなり、トランジスタQ1がオンし、トランジスタQ2がIrefの電流を流す。このため、配線PB＿UPの電圧は、Irefの分だけ降下した値になる。その結果、配線PB_UPの電圧は、基準電圧Vrefよりも１／２Irefの分だけ小さくなるため、比較器CMPは、Lレベルの信号、すなわち不合格を出力する。
【００４４】
（２）１ビットの不合格ビットを判定する場合：
１ビットの不合格ビットを判定する場合（Ｎ＝１）、１つのトランジスタQ8が動作可能な状態に置かれる。例えば、図１１（Ｂ）であれば、EN-1がHレベル、EN-2がLレベルに駆動される。上記したように、全ビットのプログラムが成功した場合には、トランジスタQ1がオフであり、配線PB_UPの電圧は変動せず、１ビットの不合格ビットがある場合には、１つのページバッファ／センス回路のトランジスタQ1がオンし、配線PB_UPの電圧は、Irefの分だけ降下する。JUDGEON信号がHレベルに駆動され、トランジスタQ7がオンし、配線PB_DISがGNDレベルになると、トランジスタQ6が１／２Irefの電流を流し、さらに、トランジスタQ8がIrefの電流を流す。このため、基準電圧Vrefは、１／２Iref＋Irefの分だけ降下した値となる。その結果、配線PB_UPの電圧が基準電圧Vrefよりも高くなり、比較器CMPは、Hレベルを出力する。
【００４５】
一方、２ビットの不合格ビットがある場合には、２つのページバッファ／センス回路のトランジスタQ1がオンし、配線PB_UPの電圧は、２×Irefの分だけ降下する。このため、配線PB_UPの電圧は、基準電圧Vrefよりも小さくなり、比較器CMPは、Lレベルを出力する。
【００４６】
（３）２ビットの不合格ビットを判定する場合：
２ビットの不合格ビットを判定する場合（Ｎ＝２）、２つのトランジスタQ8が動作可能な状態に置かれる。例えば、図１１（Ｂ）であれば、EN_1がHレベル、EN_2がHレベルに駆動される。上記したように、２ビットの不合格ビットがある場合には、２つのページバッファ／センス回路のトランジスタQ1がオンし、配線PB_UPの電圧は、２×Irefの分だけ降下する。JUDGEON信号がHレベルに駆動され、トランジスタQ7がオンし、配線PB_DISがGNDレベルになると、トランジスタQ6が１／２Irefの電流を流し、さらに、２つのトランジスタQ8が２×Irefの電流を流す。このため、基準電圧Vrefは、１／２Iref＋２×Irefの分だけ降下した値となる。その結果、配線PB_UPの電圧が基準電圧Vrefよりも高くなり、比較器CMPは、Hレベルを出力する。
【００４７】
一方、３ビットの不合格がある場合には、３つのページバッファ／センス回路のトランジスタQ1がオンし、配線PB_UPの電圧は、３×Irefの分だけ降下する。このため、配線PB_UPの電圧は、基準電圧Vrefよりも小さくなり、比較器CMPは、Lレベルを出力する。
【００４８】
このように本実施例によれば、判定回路は、不合格ビット数に応じた基準電流により生成される電圧と、不合格ビット数に応じた基準電流＋１／２基準電流により生成された基準電圧とを比較することにより不合格ビットが疑似合格するか否かを容易に判定することができる。
【００４９】
次に、本発明の第２の実施例について説明する。第２の実施例の判定回路２００Ａを図１２に示す。第２の実施例では、０ビット、１ビット、２ビットの不合格ビットの判定において、基準電圧Vrefを固定する。図の例では、２つのトランジスタQ8を接続し、基準電圧Vrefは、トランジスタQ6による１／２IrefとトランジスタQ8による２×Irefとが流れたときの値に固定される。
【００５０】
さらに配線PB_UPには、２−Ｎ個のトランジスタQ9が接続される。トランジスタQ9は、トランジスタQ8と同じサイズWであり、Irefの電流を流す。判定回路２００Ａが０ビットの不合格ビットを可能するとき（Ｎ＝０）、トランジスタQ9の数は２つであり、２つのトランジスタQ9が配線PB_UPと配線PB_DISとの間に並列に接続され、トランジスタQ7がオンしたとき、トランジスタQ9により配線PB_UPから配線PB_DISに２×Irefの電流が流される。１ビットの不合格ビットを判定する場合には（Ｎ＝１）、トランジスタQ9の数は１つであり、１×Irefの電流が流され、２ビットの不合格ビットを判定する場合には（Ｎ＝２）、トランジスタQ9の数は０である。トランジスタQ9の数は、図１１（Ｂ）に示したように、２つのトランジスタQ9と直列に接続される２つのイネーブル用のトランジスタによって選択されるようにしてもよい。
【００５１】
図１３は、第２の実施例による判定回路において、０ビット、１ビット、２ビットの不合格ビットが疑似合格か否かを判定するときの各部の電流値を表したテーブルである。
【００５２】
（１）０ビットの不合格ビットを判定する場合：
全ビットのプログラムが成功したか否かの判定であり、基準電圧Vrefは、１／２Iref＋２×Irefの分だけ降下した値に固定される。一方、配線PB_UPの電圧は、２個のトランジスタQ9により２×Irefの電流がトランジスタQ7を介してGNDに流れるため、２×Iref分だけ降下した値となる。このため、比較器CMPは、Hレベル（合格）を出力する。もし、１ビットの不合格ビットがある場合には、配線PB_UPの電圧は、２×Iref＋Iref＝３×Irefの分だけ降下し、基準電圧Vrefよりも小さくなるので、比較器CMPは、Lレベル（不合格）を出力する。
【００５３】
（２）１ビットの不合格ビットを判定する場合：
基準電圧Vrefは、上記と同様に、１／２Iref＋２×Irefの分だけ降下した値に固定される。また、トランジスタQ9の数は１つであるため、１ビットの不合格ビットがあるとき、配線PB_UPの電圧は、トランジスタQ2によるIrefとトランジスタQ9によるIrefにより、２×Iref分だけ降下し、基準電圧Vrefよりも大きくなる。このため、比較器CMPは、合格であるHレベルを出力する。不合格ビットが２ビットであるとき、配線PB_UPの電圧は、３×Iref分だけ降下するため、基準電圧Vrefよりも小さくなる。このため、比較器CMPは、不合格であるLレベルを出力する。
【００５４】
（３）２ビットの不合格ビットを判定する場合：
基準電圧Vrefは、上記と同様に、１／２Iref＋２×Irefの分だけ降下した値に固定される。また、トランジスタQ9は、２−Ｎ＝０である。２ビットの不合格ビットがあるとき、配線PB_UPの電圧は、トランジスタQ2により２×Iref分だけ降下し、基準電圧Vrefよりも大きくなる。このため、比較器CMPは、合格であるHレベルを出力する。３ビットの不合格ビットがあるとき、配線PB_UPの電圧は、トランジスタQ2により３×Iref分だけ降下し、基準電圧Vrefよりも小さくなる。このため、比較器CMPは、不合格であるLレベルを出力する。
【００５５】
第２の実施例によれば、基準電圧Vrefを固定するため、トランジスタQ9の数を変更するときにのみ可変抵抗R1の調整をすれば良く、調整が容易になる。また、図１４は、０ビット、１ビット、２ビットの疑似合格の判定を行ったときの基準電圧Vrefと配線PB_UPの電圧との関係を示している。基準電圧Vrefは、トランジスタQ6、Q8が３／２Irefの電流を流すため、第１の実施例のときよりも電圧降下が大きくなり、それにより、基準電圧Vrefと配線PB_UPの間の電圧差（判定のためのマージン）が大きくなり、誤判定が抑制される（ΔVPは、合格判定のための電圧差、ΔVFは、不合格判定のための電圧差）。
【００５６】
次に、第２の実施例の変形例を図１５に示す。当該変形例では、トランジスタQ6の代わりに、可変抵抗R2が１／２Irefを生成する。トランジスタQ6は、他のトランジスタQ２、Q５、Q8、Q9のサイズの１／２の微細な構造であるため製造が容易ではない。そこで、トランジスタQ6を削除し、可変抵抗R2を調整することで１／２Irefを生成する。それ以外の構成は、第２の実施例のときと同様である。
【００５７】
次に、本発明の第３の実施例について説明する。第２の実施例の図１４に示したように、１ビット、２ビットの不合格ビットを疑似判定すると、トランジスタQ9による基準電流が減少し、その傾斜が緩くなり、判定のためのマージンである電圧差ΔVP、ΔVFが小さくなり、誤判定し易くなる。第３の実施例は、これを改善するものである。
【００５８】
図１６は、第３の実施例に係る判定回路２００Ｃの構成を示す図である。第３の実施例の判定回路２００Ｃは、基準電圧Vrefは、トランジスタQ6による１／２Iref分の値に固定される。一方、配線PB_UPには、不合格ビットを疑似合格と判定するビット数Ｎに応じた基準電流Irefを供給する供給回路２１０が接続される。供給回路２１０は、例えば、トランジスタQ5と同一電流を流すカレントミラー回路であることができる。判定回路２００Ｃが、例えば、０ビットの不合格ビットを判定する場合には、供給回路２１０により基準電流Irefは供給されず、１ビットの不合格ビットを判定する場合には、供給回路により１×Irefが供給され、２ビットの不合格ビットを判定する場合には、供給回路２１０により２×Irefが供給される。図１７（Ｂ）に、供給回路の一例を示す。供給回路２１０Ａは、トランジスタQ5とカレントミラーで構成されたトランジスタQ20、Q21を含み、さらにトランジスタQ20、Q21には、トランジスタQ22、Q23がそれぞれ直列に接続される。トランジスタQ22、Q23は、イネーブル信号EN_1、EN_2により駆動され、配線PB_UPに２×Irefを供給するときEN_1、EN_2がHレベルに駆動され、１×Irefを供給するとき、EN_1またはEN_2のいずれかがHレベルに駆動され、Irefを供給しないとき、EN_1、EN_2はLレベルに駆動される。
【００５９】
図１７は、第３の実施例の判定回路において、０ビット、１ビット、２ビットの不合格ビットが疑似合格か否かを判定するときの各部の電流値を表したテーブルである。
【００６０】
（１）０ビットの不合格ビットを判定する場合：
全ビットのプログラムが成功したか否かの判定であり、基準電圧Vrefは、トランジスタQ6を流れる１／２Irefの分だけ降下した値に固定される。一方、配線PB_UPの電圧は、トランジスタQ1がオフであるため、変動しない。その結果、比較器CMPは、Hレベル（合格）を出力する。もし、１ビットの不合格ビットがある場合には、配線PB_UPの電圧は、トランジスタQ2によりIref分だけ降下し、基準電圧Vrefよりも小さくなるので、比較器CMPは、Lレベル（不合格）を出力する。
【００６１】
（２）１ビットの不合格ビットを判定する場合：
基準電圧Vrefは、上記と同様に、トランジスタQ6が流す１／２Irefにより固定である。供給回路２１０は、配線PB_UPにIrefの電流を供給する。１ビットの不合格ビットがあるとき、配線PB_UPの電圧は、トランジスタQ2がIrefを流すが、供給回路２１０がIrefを供給するため、放電する電流が供給する電流によって相殺され、事実上、配線PB_UPの電圧は変動しない。このため、配線PB_UPの電圧は、基準電圧Vrefよりも大きくなり、比較器CMPは、合格であるHレベルを出力する。不合格ビットが２ビットであるとき、配線PB_UPの電圧は、トランジスタQ2が２×Irefを流し、供給回路２１０がIrefを供給するため、配線PB_UPの電圧は、事実上、Irefの分だけ降下し、基準電圧Vrefよりも小さくなる。このため、比較器CMPは、不合格であるLレベルを出力する。
【００６２】
（３）２ビットの不合格ビットを判定する場合：
基準電圧Vrefは、トランジスタQ6が流す１／２Irefにより固定である。供給回路２１０は、配線PB_UPに２×Irefを供給する。２ビットの不合格ビットがあるとき、配線PB_UPの電圧は、トランジスタQ2が２×Irefを流すが、供給回路２１０が２×Irefを供給するため、放電される電流が相殺され、事実上、配線PB_UPの電圧は変動しない。このため、配線PB_UPの電圧は、基準電圧Vrefよりも大きくなり、比較器CMPは、合格であるHレベルを出力する。不合格ビットが３ビットであるとき、配線PB_UPの電圧は、トランジスタQ2が３×Irefを流し、供給回路２１０が２×Irefを供給するため、配線PB_UPの電圧は、事実上、Irefの分だけ降下し、基準電圧Vrefよりも小さくなる。このため、比較器CMPは、不合格であるLレベルを出力する。
【００６３】
図１８は、第３の実施例の判定回路２００Ｃにより０ビット、１ビット、２ビットの疑似合格の判定（Ｎ＝０、Ｎ＝１、Ｎ＝２）を行ったときの基準電圧Vrefと配線PB_UPの電圧との関係を示している。第３の実施例では、１ビットの不合格ビット、および２ビットの不合格ビットを判定するとき、配線PB_UPに１×Irefまたは２×Irefを供給するようにしたので、配線PB_UPの電圧が低下しないようにしたので、マージン電圧ΔVP、ΔVFを、０ビットの不合格判定のときと同様に行うことが可能になる。
【００６４】
本発明の好ましい実施の形態について詳述したが、本発明は、特定の実施形態に限定されるものではなく、特許請求の範囲に記載された発明の要旨の範囲内において、種々の変形・変更が可能である。
【符号の説明】
【００６５】
１００：フラッシュメモリ                １１０：メモリアレイ
１２０：入出力バッファ                  １３０：ＥＣＣ回路
１４０：アドレスレジスタ                １５０：制御部
１６０：ワード線選択回路                １７０：ページバッファ／センス回路
１８０：列選択回路                      １９０：内部電圧発生正回路
２００：判定回路                        ２１０：供給回路
３００：レギュラー領域                  ３１０：スペア領域
【図１】
2017139037.tif 000003
【図２】
2017139037.tif 000004
【図３】
2017139037.tif 000005
【図４】
2017139037.tif 000006
【図５】
2017139037.tif 000007
【図６】
2017139037.tif 000008
【図７】
2017139037.tif 000009
【図８】
2017139037.tif 000010
【図９】
2017139037.tif 000011
【図１０】
2017139037.tif 000012
【図１１】
2017139037.tif 000013
【図１２】
2017139037.tif 000014
【図１３】
2017139037.tif 000015
【図１４】
2017139037.tif 000016
【図１５】
2017139037.tif 000017
【図１６】
2017139037.tif 000018
【図１７】
2017139037.tif 000019
【図１８】
2017139037.tif 000020
【手続補正書】
【提出日】平成29年1月16日(2017.1.16)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
メモリアレイと、
複数のデータ保持回路であって、各データ保持回路は、ビット線を介して前記メモリアレイに接続され、選択ページにプログラムすべきデータを保持する回路と、プログラムベリファイ時にベリファイの合否を出力する出力回路とを含む、前記複数のデータ保持回路と、
前記複数のデータ保持回路の各出力回路に接続され、前記複数のデータ保持回路のベリファイ結果が許容される不合格ビット数であるか否かを判定する判定回路とを含み、
前記判定回路は、前記複数のデータ保持回路のベリファイの合否に応じた検出電圧を生成する第１の回路と、基準電圧を生成する第２の回路と、前記検出電圧と前記基準電圧とを比較する比較回路とを含み、当該比較回路は、前記複数のデータ保持回路によるベリファイ結果が許容される不合格ビット数であるか否かを表す信号を出力し、
前記第１の回路は、前記許容される不合格ビット数に応じた数の基準電流を供給する供給回路を含み、前記第１の回路により生成される前記検出電圧は、前記供給回路により供給された基準電流に応じた値である、不揮発性半導体記憶装置。
【請求項２】
前記供給回路は、前記基準電流を流すトランジスタを複数含み、前記供給回路は、前記許容される不合格ビット数に応じて前記複数のトランジスタのうちの動作されるトランジスタの数を選択する、請求項１に記載の不揮発性半導体記憶装置。
【請求項３】
メモリアレイと、
複数のデータ保持回路であって、各データ保持回路は、ビット線を介して前記メモリアレイに接続され、選択ページにプログラムすべきデータを保持する回路と、プログラムベリファイ時にベリファイの合否を出力する出力回路とを含む、前記複数のデータ保持回路と、
前記複数のデータ保持回路の各出力回路に接続され、前記複数のデータ保持回路のベリファイ結果が許容される不合格ビット数であるか否かを判定する判定回路とを含み、
前記判定回路は、前記複数のデータ保持回路のベリファイの合否に応じた検出電圧を生成する第１の回路と、基準電圧を生成する第２の回路と、前記検出電圧を入力する第１の入力および前記基準電圧を入力する第２の入力を含み、前記検出電圧と前記基準電圧とを比較することで、前記複数のデータ保持回路によるベリファイ結果が許容される不合格ビット数であるか否かを表す信号を出力する比較回路とを有し、
前記検出電圧は、不合格ビット数×基準電流Irefの分だけ降下した値であり、
前記第２の回路は、前記第２の入力に並列に接続された複数のトランジスタを含み、複数のトランジスタは、各々が基準電流Irefを流す不合格ビット数に応じた数のトランジスタと、１／２Irefを流すトランジスタとを含み、
前記比較回路は、前記検出電圧が前記基準電圧よりIref／２だけ大きいとき、許容される不合格ビット数であることを示す信号を出力し、前記検出電圧が前記基準電圧よりIref／２だけ小さいとき許容されない不合格ビット数であることを示す信号を出力する、不揮発性半導体記憶装置。
【請求項４】
前記第２の回路は、前記複数のトランジスタの中から前記許容される不合格ビット数に応じて動作されるトランジスタの数を選択する、請求項３に記載の不揮発性半導体記憶装置。
【請求項５】
メモリアレイと、
複数のデータ保持回路であって、各データ保持回路は、ビット線を介して前記メモリアレイに接続され、選択ページにプログラムすべきデータを保持する回路と、プログラムベリファイ時にベリファイの合否を出力する出力回路とを含む、前記複数のデータ保持回路と、
前記複数のデータ保持回路の各出力回路に接続され、前記複数のデータ保持回路のベリファイ結果が許容される不合格ビット数であるか否かを判定する判定回路とを含み、
前記判定回路は、前記複数のデータ保持回路のベリファイの合否に応じた検出電圧を生成する第１の回路と、基準電圧を生成する第２の回路と、前記検出電圧を入力する第１の入力および前記基準電圧を入力する第２の入力を含み、前記検出電圧と前記基準電圧とを比較することで、前記複数のデータ保持回路によるベリファイ結果が許容される不合格ビット数であるか否かを表す信号を出力する比較回路とを有し、
前記基準電圧は、基準電流Iref×ｋ＋１／２Irefが流れたときの固定電圧であり、
前記第１の回路は、前記第１の入力に並列に接続され、各々が基準電流Irefを流すk−許容される不合格ビット数のトランジスタを含み、ｋは、許容される不合格ビット数よりも大きく、
前記比較回路は、前記検出電圧が前記基準電圧よりIref／２だけ大きいとき、許容される不合格ビット数であることを示す信号を出力し、前記検出電圧が前記基準電圧よりIref／２だけ小さいとき許容されない不合格ビット数であることを示す信号を出力する、不揮発性半導体記憶装置。
【請求項６】
前記データ保持回路の出力回路は、ベリファイ結果が不合格であるとき前記第２の回路の基準電流と等しい基準電流を流すトランジスタを含み、前記第１の回路は、不合格ビット数に応じた数の基準電流により前記検出電圧を生成する、請求項３または５に記載の不揮発性半導体記憶装置。
【請求項７】
前記第２の回路は、予め決められた数の基準電流により前記基準電圧を生成し、前記第１の回路は、前記予め決められた数よりも少ない数の基準電流を用いて前記検出電圧を生成する、請求項３に記載の不揮発性半導体記憶装置。
【請求項８】
前記許容される不合格ビット数は、誤り検出・訂正手段により救済可能なビット数に応じて決定される、請求項１ないし７いずれか１つに記載の不揮発性半導体記憶装置。
【請求項９】
前記誤り検出・訂正手段が選択ページのセクタ単位で行われるとき、前記判定回路は、セクタ単位で複数のデータ保持回路に接続される、請求項８に記載の不揮発性半導体記憶装置。