(57)【特許請求の範囲】
【請求項１】
各々スレッショルド電圧を有する第１のセル及び第２のセルを持つカラムを有するフラッシュメモリアレイ中の過消去セルを修復する方法において：
（ａ０）第１のセルのスレッショルド電圧を基準電圧と比較することによって第１のセルが過消去されているかどうかを確認するステップと；
（ａ）第１のセルが過消去セルである場合に、正しく消去されたセルに対してはほとんど影響しないが、酷く過消去されたセルに対しては大きく作用する電圧レベルを最初に有するプログラミングパルスを第１のセルに印加するステップと；
（ｂ０）第２のセルのスレッショルド電圧を前記基準電圧と比較することによって第２のセルが過消去されているかどうかを確認するステップと；
（ｂ）第２のセルが過消去セルである場合に、正しく消去されたセルに対してはほとんど影響しないが、酷く過消去されたセルに対しては大きく作用する電圧レベルを最初に有するプログラミングパルスを第２のセルに印加するステップと；
（ｃ）第１のセル及び第２のセルの少なくとも一方が過消去セルであると確認された場合に、前記第１のセルまたは第２のセルに印加されたプログラミングパルスの電圧レベルを第１の大きさだけインクリメントするステップと；
（ｄ）第１、第２のセルの過消去が修復されるまで上記ステップ（ａ０）及至（ｃ）を繰り返すステップと；
よりなる過消去セルを修復する方法。
【請求項２】
各々スレッショルド電圧を有する第１のセル及び第２のセルを持つカラムを有するフラッシュメモリアレイ中の過消去セルを修復する方法において：
（ａ０）第１のセルが許容可能な消去電圧の最小値よりさらに小さなスレッショルド電圧を有する過消去セルであるかいなかを確認するステップと；
（ａ）第１のセルが過消去されている場合に、正しく消去されたセルに対してはほとんど影響しないが、酷く過消去されたセルに対しては大きく作用する電圧レベルを最初に有するプログラミングパルスを第１のセルに印加するステップと；
（ｂ０）第２のセルが許容可能な消去電圧の最小値よりさらに小さなスレッショルド電圧を有する過消去セルであるかいなかを確認するステップと；
（ｂ）第２のセルが過消去されている場合に、正しく消去されたセルに対してはほとんど影響しないが、酷く過消去されたセルに対しては大きく作用する電圧レベルを最初に有するプログラミングパルスを第２のセルに印加するステップと；
（ｃ）第１のセル及び第２のセルの一方が過消去されていると確認された場合に、前記第１のセルまたは第２のセルに印加されたプログラミングパルスの電圧レベルを第１の大きさだけインクリメントするステップと；
（ｄ）第１のセル及び第２のセルが両方とも修復されるまで上記ステップ（ａ０）及至（ｃ）を繰り返すステップと；
よりなる過消去セルを修復する方法。
【請求項３】
各々スレッショルド電圧を有する第１のセル及び第２のセルを持つカラムを有するフラッシュメモリアレイ中の過消去セルを修復する方法において：
（ａ）第１のセルのスレッショルド電圧を基準電圧と比較することによって第１のセルが過消去されているかどうかを確認するステップと；
（ｂ）第１のセルが過消去されている場合に、正常に消去されたセルが過修復されることがない電圧レベルを上限とするプログラミングパルスを第１のセルに印加するステップと；
（ｃ）第２のセルのスレッショルド電圧を基準電圧と比較することによって第２のセルが過消去されているかどうかを確認するステップと；
（ｄ）第２のセルが過消去されている場合に、正常に消去されたセルが過修復されることがない電圧レベルを上限とするプログラミングパルスを第２のセルに印加するステップと；
（ｅ）第１のセル及び第２のセルの一方が過消去されていると確認された場合に、前記第１のセルまたは第２のセルに印加されたプログラミング電圧レベルを前記上限以内で第１の大きさだけインクリメントするステップと；
（ｆ）第１のセル及び第２のセルのどちらも過消去されていないことが確認されるまで上記ステップ（ａ）及至（ｅ）を繰り返すステップと；
よりなる過消去セルを修復する方法。
【請求項４】
各々スレッショルド電圧を有する第１のセル及び第２のセルを持つカラムを有するフラッシュメモリアレイ中の過消去セルを修復する方法において：
（ａ）第１のセルが許容可能な消去電圧の最小値よりさらに小さなスレッショルド電圧を有する過消去セルであるかどうかを確認するステップと；
（ｂ）第１のセルが過消去セルである場合に、過消去セルの過修復を防ぐのに十分な低さの初期プログラミング電圧レベルを有するプログラミングパルスを第１のセルに印加するステップと；
（ｃ）第２のセルが許容可能な消去電圧の最小値よりさらに小さなスレッショルド電圧を有する過消去セルであるかどうかを確認するステップと；
（ｄ）第２のセルが過消去セルである場合に、過消去セルの過修復を防ぐのに十分な低さの初期プログラミング電圧レベルを有するプログラミングパルスを第２のセルに印加するステップと；
（ｅ）第１のセル及び第２のセルの一方が過消去されていると確認された場合に、前記第１のセルまたは第２のセルに印加されたプログラミング電圧レベルを第１の大きさだけインクリメントするステップと；
（ｆ）第１のセル及び第２のセルのどちらも過消去されていないと確認されるまで上記ステップ（ａ）及至（ｅ）を繰り返すステップと；
よりなる過消去セルを修復する方法。
【請求項５】
各々スレッショルド電圧を有する第１のセル及び第２のセルを持つカラムを有するフラッシュメモリアレイ中の過消去セルを修復する方法において：
（ａ）第１のセルのスレッショルド電圧を基準電圧と比較することによって第１のセルが過消去されているかどうかを確認するステップと；
（ｂ）第１のセルが過消去されている場合に、過消去セルの過修復を防ぐのに十分な低さの初期プログラミング電圧レベルを有するプログラミングパルスを第１のセルに印加するステップと；
（ｃ）第２のセルのスレッショルド電圧を基準電圧と比較することによって第２のセルが過消去されているかどうかを確認するステップと；
（ｄ）第２のセルが過消去されている場合に、過消去セルの過修復を防ぐのに十分な低さの初期プログラミング電圧レベルを有するプログラミングパルスを第２のセルに印加するステップと；
（ｅ）第１のセル及び第２のセルの一方が過消去されていると確認された場合に、前記第１のセルまたは第２のセルに印加されたプログラミング電圧レベルを第１の大きさだけインクリメントするステップと；
（ｆ）第１のセル及び第２のセルがいずれも過消去されていないと確認されるまで上記ステップ（ａ）及至（ｅ）を繰り返すステップと；
よりなる過消去セルを修復する方法。
【請求項６】
各々スレッショルド電圧を有する第１のセル及び第２のセルを持つカラムを有する不揮発性半導体アレイ中の過消去セルを修復する方法において：
（ａ）カウンタを初期化するステップと；
（ｂ）第１のセルのスレッショルド電圧を基準電圧と比較することによって第１のセルが過消去されているかどうかを確認するステップと；
（ｃ）第１のセルが過消去されている場合に、過消去セルの過修復を防ぐのに十分な低さの初期プログラミング電圧レベルを有するプログラミングパルスを第１のセルに印加するステップと；
（ｄ）第２のセルのスレッショルド電圧を基準電圧と比較することによって第２のセルが過消去されているかどうかを確認するステップと；
（ｅ）第２のセルが過消去されている場合に、過消去セルの過修復を防ぐのに十分な低さの初期プログラミング電圧レベルを有するプログラミングパルスを第２のセルに印加するステップと；
（ｆ）第１のセル及び第２のセルの一方が過消去されていると確認された場合に、前記第１のセルまたは第２のセルに印加されたプログラミング電圧レベルを第１の大きさだけインクリメントするステップと；
（ｇ）カウンタをインクリメントするステップと；
（ｈ）第１のセル及び第２のセルがどちらも過消去されていないと確認されるまで、あるいはカウンタが最大カウントに達するまで上記ステップ（ａ）及至（ｇ）を繰り返すステップと；
よりなる過消去セルを修復する方法。
【請求項７】
第１のセル及び第２のセルを持つカラムを有するフラッシュメモリアレイ中の過消去セルを修復する方法において：
（ａ）フラグをクリアするステップと；
（ｂ）第１のセルが過消去されている場合に、過消去セルの過修復を防ぐのに十分な低さの初期プログラミング電圧レベルを有するプログラミングパルスを第１のセルに印加するステップと；
（ｃ）第１のセルが過消去状態に保たれている場合に、フラグをセットするステップと；
（ｄ）第２のセルが過消去されている場合に、過消去セルの過修復を防ぐのに十分な低さの初期プログラミング電圧レベルを有するプログラミングパルスを第２のセルに印加するステップと；
（ｅ）第２のセルが過消去状態に保たれている場合に、フラグをセットするステップと；
（ｆ）フラグがセットされている場合に、前記第１のセルまたは第２のセルに印加されたプログラミング電圧レベルを第１の大きさだけインクリメントするステップと；
（ｇ）フラグがセットされている場合に、ステップ（ａ）及至（ｆ）を繰り返すステップと；
よりなる過消去セルを修復する方法。
【請求項８】
第１のセル及び第２のセルを持つカラムを有するフラッシュメモリアレイ中の過消去セルを修復する方法において：
（ａ）フラグをクリアするステップと；
（ｂ）第１のセルが過消去されており、かつ第２のセルに短絡されていない場合に、過消去セルの過修復を防ぐのに十分な低さの初期プログラミング電圧レベルを有するプログラミングパルスを第１のセルに印加するステップと；
（ｃ）第１のセルが過消去されており、かつ第２のセルに短絡されている場合に、前記初期プログラミング電圧レベルより高い電圧レベルを有するプログラミングパルスを第１のセル及び第２のセルの両方に印加するステップと；
（ｄ）第１のセルが過消去状態に保たれている場合に、フラグをセットするステップと；
（ｅ）第２のセルが過消去されており、かつ第１のセルに短絡されていない場合に、上記初期プログラミング電圧レベルを有するプログラミングパルスを、第２のセルに印加するステップと；
（ｆ）第２のセルが過消去状態に保たれている場合に、フラグをセットするステップと；
（ｇ）フラグがセットされている場合に、前記第１のセルまたは第２のセルに印加されたプログラミング電圧レベルを第１の大きさだけインクリメントするステップと；
（ｈ）フラグがセットされている場合に、上記ステップ（ａ）及至（ｇ）を繰り返すステップと；
よりなる過消去セルを修復する方法。
【請求項９】
各々スレッショルド電圧を有する第１のセル及び第２のセルを持つカラムを有するフラッシュメモリアレイ中の過消去セルを修復する方法において：
（ａ０）第１のセルのスレッショルド電圧を基準電圧と比較することによって第１のセルが過消去されているかどうかを確認するステップと；
（ａ）第１のセルが過消去セルである場合に、一定の電圧レベルを有し、かつ過消去セルの過修復を防ぐのに十分に短い長さのプログラミング持続時間を有するプログラミングパルスを第１のセルに印加するステップと；
（ｂ０）第２のセルのスレッショルド電圧を基準電圧と比較することによって第２のセルが過消去されているかどうかを確認するステップと；
（ｂ）第２のセルが過消去セルである場合に、一定の電圧レベルを有し、かつ過消去セルの過修復を防ぐのに十分に短い長さのプログラミングパルスを第２のセルに印加するステップと；
（ｃ）第１のセル及び第２のセルの少なくとも一方が過消去されていると確認された場合に、前記第１のセルまたは第２のセルに印加されたプログラミングパルスのプログラミング持続時間を第１の大きさだけインクリメントするステップと；
（ｄ）第１、第２のセルの過消去が修復されるまで上記ステップ（ａ０）及至（ｃ）を繰り返すステップと；
よりなる過消去セルを修復する方法。
【発明の詳細な説明】
【０００１】
【産業上の利用分野】
本発明は、フラッシュメモリの過消去されたセルを修復する方法に関するものである。より詳しくは、本発明は、過消去されたフラッシュメモリセルをチャンネル・ホットエレクトロン・プログラミングを用いて修復する方法に関する。
【０００２】
【従来の技術】
従来の不揮発性半導体メモリの１つにフラッシュ型電気的消去書込み可能リードオンリーメモリ（フラッシュＥＥＰＲＯＭ；「フラッシュメモリ」）がある。フラッシュメモリは、ユーザがプログラムすることができ、いったんプログラムすると、消去を行うまで、フラッシュメモリはそれらのプログラムデータを保持し続ける。
【０００３】
フラッシュメモリセルは、通常、チャンネル・ホットエレクトロン注入法を用いてプログラムされ、高レベルの電圧をセルのソース接合へ印加することにより消去される。消去アルゴリズムでは、一般に、消去動作が最も遅いセルが許容最大スレッショルド電圧以下に消去されるまで、消去パルスをアレイ全体に印加する。この時許容最小スレッショルド以下に消去されたセルを一般に過消去されたセルまたは過消去セルと称する。過消去セルは、それらのセルに対応するビット線に漏れ電流を誘起し、その結果同じビット線上の他のセルを読取る時エラーを生じることがある。
【０００４】
フラッシュメモリのメーカーは、様々な技術を駆使してセル過消去の発生をできるだけ少なくする試みを行っている。そのために、集積回路プロセス最適化法や製造品質管理法が典型的に採り入れられている。しかしながら、これらの方法による過消去の完全な排除は達成されそうもない。
【０００５】
フラッシュメモリの過消去感度（過消去の起こり易さ）は、読取り検出系を最適化することによって最小限にすることができる。しかしながら、最適化された読取り検出系にも２つの問題点がある。まず、最適化された読取り検出系によって過消去をなくすことは不可能である。第２には、速度と性能に関してトレードオフが必要である。
【０００６】
また、フラッシュメモリのメーカーでは、メモリを試験して、欠陥のあるセルの代わりに冗長回路素子を用いるか、あるいはメモリ自体を廃棄することによって過消去をなくすやり方も試みられて来た。
【０００７】
しかしながら、このようなメーカー試験にも多くの欠点がある。第１に、冗長回路素子の作り込みは、フラッシュメモリのコスト、複雑さ、及び読取り速度遅延を増大させる。第２には、冗長回路素子より欠陥セルの数が多いフラッシュメモリは廃棄しなければならない。さらには、メーカー試験は、テスト時に消去が正常なセルが、プログラム／消去サイクルを繰り返した後も欠陥を生じることがないということを保証するものではない。
【０００８】
過消去によって引き起こされたエラーを除去する方法としては、ハミングコード方式のような誤り訂正コードを用いたものもある。不都合なことに、誤り訂正コードを用いると、通常フラッシュメモリに余分のメモリセルを付加することが必要となり、そのためにコスト増を招く。
【０００９】
【発明が解決しようとする課題】
本発明の一つの目的は、フラッシュメモリにおける過消去を修復することにある。
【００１０】
本発明のもう一つの目的は、速度及び電力消費の両面に関して最適化された過消去を修復する方法を提供することにある。
【００１１】
本発明のもう一つの目的は、欠陥メモリを廃棄しなくとも済む過消去セルを修復する方法を提供することにある。
【００１２】
本発明のもう一つ目的は、冗長回路素子を使用しない過消去セルを修復する方法を提供することにある。
【００１３】
本発明の方法のもう一つの目的は、誤りコードセルに割当てられる領域を大きくすることなくフラッシュメモリ中の過消去を修復することにある。
【００１４】
本発明のもう一つの目的は、メーカー試験終了後においても有効な過消去セルを修復する方法を提供することにある。
【００１５】
【課題を解決するための手段】
上記目的達成のための本発明によるフラッシュメモリアレイ中の過消去セルを修復する方法は、少なくとも２つのセルを有する少なくとも１本のカラムよりなるフラッシュメモリアレイの修復を、その第１のセルが過消去されているかどうかを判断し、もし過消去されていれば単発のプログラミングパルスを印加するステップで開始するものである。次に、第２のセルを試験して、過消去されているかどうかを確認し、過消去されていれば、その第２のセルにプログラミングパルスを印加する。その後、どちらかのセルが過消去されていることが確認された場合は、プログラミング電圧のレベルを第１の大きさだけ上げる。これらのステップを、どのセルも過消去されていないと確認されるに至るまで繰り返す。
【００１６】
以下、本発明を実施例により添付図面を参照しつつ詳細に説明する。添付図面において、本発明は、限定のためではなく例示説明のために図示したものであり、また同様の構成部分または要素は同じ参照記号により表されている。
【００１７】
【実施例】
フラッシュメモリの一部分２０を図１に示す。この部分２０は、アレイ９０、Ｘデコーダ７８、Ｙデコーダ９４、及びセンスアンプ／出力デコーダ９６を含む。データはアレイ９０内に記憶される。アレイ９０はＸデコーダ７８及びＹデコーダ９４によってアクセスされる。
【００１８】
以下にさらに詳細に説明するように、アレイ９０の過消去セルを修復するには反復法が用いられる。まず最初に、カラム上のセルを試験して、過消去されているかどうかが確認される。過消去セルには、低電圧レベルの単発プログラミングパルスが供給される。どのセルも過消去されていないことが確認され、全てのセルが修復されるまで、そのカラム上のセルを繰り返して試験し、過消去セルに単発プログラミングパルスを印加する。
【００１９】
ＶPP３６はフラッシュメモリ２０用の消去／プログラム電源である。ＶPP上にハイ電圧レベルがない時は、フラッシュメモリはリードオンリーメモリ（ＲＯＭ）として動作する。アドレス線５７及び８２によって指示されるアドレスに記憶されたデータは、データ線５９を介して取り出される。
【００２０】
アレイ９０は、適切なコマンドシーケンスに従ってＶPP３６を１２ボルトに上げることにより消去あるいはプログラムすることができる。
【００２１】
アドレス信号Ａｘ５７及びＡｙ８２を用いてアレイ９０の内部の所望のデータを選択することができる。Ｘデコーダ７８は、Ａｘ５７に応答してアレイ９０内の適切な行を選択する。この理由から、Ｘデコーダ７８は行デコーダ７８とも呼ばれる。Ｘデコーダ７８は、バス８３を介してアレイ９０内の指示された行を能動（アクティブ）状態にする。同様に、Ｙデコーダ９４は、Ａｙ８２に応答してアレイ９０内の適切なカラムを選択する。その機能の故に、Ｙデコーダ９４はカラムデコーダ９４とも呼ばれる。Ｙデコーダ９４は、バス９７を介してアレイ内の指示されたカラムを選択する。
【００２２】
アレイ９０から読出されたデータは、バス９７を介してＹデコーダ９４へ出力される。Ｙデコーダ９４は、バス９７からのデータをセンスアンプ（センス増幅器）１００〜１０７に供給する。センスアンプ１００〜１０７は、セルが負に帯電されているかどうかを判定する。センスアンプ１００〜１０７はバス５９を介してデータを出力する。
【００２３】
アレイ９０の一部分２００を図２に示す。部分２００は、各々電界効果トランジスタよりなるメモリセル１５０〜１８５を含む。セル１０５〜１８５は、当技術分野において通常行われているように、ワード線２０１〜２０６とビット線１１１〜１１６との交点に形成されている。
【００２４】
ワード線２０１〜２０６はＸ線または行線とも呼ばれる。２０１〜２０６の各ワード線は、各特定行中のメモリセルのゲートと結合されている。例えばワード線２０１はメモリセル１５０〜１５５のゲートに結合されている。
【００２５】
ビット線１１１〜１１６はカラム線またはＹ線とも呼ばれる。１１１〜１１６の各ビット線はメモリセルのカラムと結合されている。例えば、ビット線１１１は、メモリセル１５０、１５６、１６２、１６８、１７４及び１８０のドレインと結合されている。ビット線１１１〜１１６はＹデコーダ９４にも結合されている。
【００２６】
共通ソース線１４１は、メモリセル１５０〜１８５のソースに印加される電圧の大きさを調整するソーススイッチと結合されている。共通ソース線１４１は、第１のローカルソース線１２１〜１２６及び第２のローカルソース線１３１〜１３５にも結合されている。第１のローカルソース線１２１〜１２６は、各々アレイ９０の特定の行と結合されている。同様に、第２のローカルソース線１３１〜１３５は、各々特定のカラムと結合されている。これらのソース線１２１〜１２６、１３１〜１３５、及び１４１は、全体として、セル１０５〜１８５のソースに電圧を印加するための経路を形成している。
【００２７】
現在当技術分野において行われているように、メモリセル１５０〜１８５は、ワード線２０１〜２０６に約１２ボルトの電位を、またビット線１１１〜１１６に約７ボルトの電位を印加し、共通ソース線１４１をアースに接続することによってプログラムされる。
【００２８】
メモリセル１５０〜１８５は、共通ソース線１４１に約１２ボルトの電位を印加し、ワード線２０１〜２０６を接地すると共に、ビット線１１１〜１１６を浮かすことによって消去される。正しく消去されたメモリセルは、０ボルトと３ボルトの間の正のスレッショルド電圧を有する。
【００２９】
アレイ９０の消去は、オンチップ論理あるいはオフチップマイクロプロセッサによって制御されたアルゴリズムを用いて行われる。典型的に言うと、これらのアルゴリズムは、アレイ９０中の消去動作が最も遅いセルが最大許容スレッショルド電圧以下に消去されるまで、消去パルスをアレイ９０に繰り返し印加する。
【００３０】
アレイ９０は、他のメモリセルよりはるかに速く消去される欠陥メモリセルを多数含む場合がある。これらの欠陥メモリセルは、消去動作が最も遅いセルのスレッショルド電圧を許容レベルに、すなわち約３ボルトに降下させるのに必要な時間と同じ時間で、最小許容消去電圧（通常ゼロボルト）以下のスレッショルド電圧に消去され得る。すると、これらの欠陥メモリセルは、たとえゲートが接地されていても、それらの対応するビット線１１１〜１１６に漏れ電流を誘起することがある。その結果、正しく消去されたセルの過消去検査の間、センスアンプ１００〜１０７によって検出される電流は、正しく消去されたセルの電流とビット線の漏れ電流との和になる。このために、正しく消去されたセルが過消去されていると誤認される場合がある。言い換えると、ビット線の漏れ電流の結果、正しく消去されたセルのスレッショルド電圧がゼロボルト以下であると認識されてしまうことになる。
【００３１】
上記のような正しく消去されたセルの誤認識は、そのセルを消去検査にパスさせようとしてスレッショルド電圧を上げることによりセルが過修復される危険を生じさせる。過修復は、セルのスレッショルド電圧が消去のための許容上限以上に引き上げられたとき起こる。
【００３２】
図３は、過消去されたフラッシュメモリを修復するための一つの回路３００を示す。回路３００は、テスタ３１０、及び前述の部分２０を含む修復すべきフラッシュメモリ３２０よりなる。テスタ３１０は、好ましくはコンピュータ制御とする。ただし、より簡単な装置を用いることも可能である。また、テスタ３１０の機能は、以下に述べるような書込み状態機械（ｗｒｉｔｅ  ｓｔａｔｅ  ｍａｃｈｉｎｅ）を用いて行わせることも可能である。
【００３３】
テスタ３１０は、フラッシュメモリ３２０が必要とする全ての入力を発生させ、かつメモリ３２０によって出力されるデータを読取る。テスタ３１０からのアドレス信号はバス５７及び８２に供給される。また、テスタ３１０は、消去／プログラム電圧ＶPP３６を発生させ、制御する。テスタ３１０は、過消去セルを修復するのに必要なようにＶPP３６の電圧レベルを変化させる。テスタ３１０は、フラッシュメモリ３２０によって出力されたデータをバス５９を介して読込む。テスタ３１０は、図４のアルゴリズムを用いて過消去セルを修復する。
【００３４】
簡単に言うと、この過消去セル修復方法は、過消去検査及び低電圧レベルプログラミングを用いた反復プロセスでよりなる。修復は、カラムを選択し、そのカラム上の各セルを試験して、過消去されたセルがあるかどうかを確認するステップで開始される。この手順は、一般に過消去検査と呼ばれている。セルは、最小許容スレッショルド電圧において予測された電流を超える電流が流れるとき、過消去されていると判定される。修復は、単発の低電圧レベルプログラミングパルスを過消去セルに印加することによって行われる。プログラミングパルスのレベルは、他の動作条件にかかわらず、セルが過修復されれることが全くないような十分に低いレベルとする。カラム上の残りのセルも同様にして試験する。選択されたカラム上のいずれかのセルが過消去になっていると判定された場合は、そのカラム上の各セルについて２回目の過消去検査を行う。それらの過消去と判定されたセルは、やはり単発の低電圧レベルパルスによってプログラムする。ただし、今回の修復パスにおけるプログラミングパルスの電圧レベルは、前回の修復パスよりも高くする。これらのステップは、カラム上のどのセルも過消去されていないということが確認されるまで繰り返される。
【００３５】
本発明の過消去セルの修復方法は、最大数１００マイクロアンペアのビット線漏れ電流を許容することができる。このように不確かさ許容性（ｒｏｂｕｓｔｎｅｓｓ）が大きいのは、一つには、最初のプログラミング電圧レベル及び欠陥セルと正常セルとの挙動の違いを適切に選択したことによるものである。ここで、カラムにスレッショルド電圧ＶT が約−５ボルトの酷く過消去されたセルがあると仮定する。この酷く過消去されたセルは、同じカラム上の他の全てのセルを過消去検査で不合格とするのに十分な電流を引き込む。本発明の修復方法によれば、カラム上の各セルは、非常に低い電圧レベルで１パスに１回だけプログラムされる。最初のプログラミングパルスの電圧は、カラム上のどのセルも全く過修復されることがないように十分低く選択される。一般に、チャンネル・ホットエレクトロン・プログラミングはドライブ電圧（ＶG ―ＶT ）に指数関数的に依存する。ここで、ＶG はプログラミング時に用いられるゲート電圧であり、ＶT はプログラム中のセルのスレッショルド電圧である。ＶG が５ボルトに等しい場合、ＶT が２ボルトの正しく消去されたセルは非常にゆっくりプログラムされる。これに対して、酷く過消去されたセルは非常に速くプログラムされる。このように、最初の低電圧レベルのプログラミングパルスは正しく消去されたセルに対してはほとんど影響を及ぼさないが、酷く過消去されたセルには非常に大きく作用する。最初のプログラミング／修復パスの結果、次のプログラミング／修復パスの間のビット線漏れ電流は減少する。この多回パス修復方法は、漏れ電流によって引き起こされるエラーをなくすのに役立ち、かつ過修復の危険性を少なくするのに役立つ。
【００３６】
低いゲート電圧レベルで修復を開始するることは、他の理由からも有利である。チャンネル・ホットエレクトロン・プログラミングの特性は温度、製造条件及びどれだけ使用したかによって変化するので、あらゆるフラッシュメモリについてある特定電圧が最適であるということはなく、あるいは同じフラッシュメモリの場合であってもその使用寿命を通じて一つの特定電圧が最適であるということはない。このように、本発明の過消去修復方法おいては、低電圧レベルから開始することによって、広範囲にわたる特定の最適電圧が適用可能である。
【００３７】
本発明の修復方法には、これ以外にもいくつか長所がある。本発明の方法を用いると、欠陥メモリを廃棄するのではなく、修復して利用することができる。本発明の修復方法では、欠陥セルをバイパスするのではなく、修復するので、貴重な冗長回路素子を用いる必要がない。その上、本発明の修復方法によれば、過消去セルの修復をメーカー試験後行うことが可能である。
【００３８】
図４には本発明の修復方法が詳細に示されている。修復は、テスタ３１０がアドレス信号Ａｙ８２をアレイ９０内の最初のカラムにセットするステップ４００で始まる。アレイ９０内の最初のカラムを選択するのは、もっぱら便宜上でしかない。
【００３９】
アドレス信号Ａｙ８２をセットした後、テスタ３１０はステップ４０２へ進む。ステップ４０２において、ＣＯＵＮＴと呼ばれるカウンタがゼロに初期化される。テスタ３１０は、ＣＯＵＮＴを用いて現在アドレス指定されているカラムに対して実行されるプログラミング／修復パスの数を記録する。
【００４０】
次に、テスタ３１０はステップ４０２からステップ４０４へ進む。ステップ４０４において、テスタ３１０はフラグＢＡＤＣＯＬＵＭＮを偽にセットする。ＢＡＤＣＯＬＵＭＮは、現在アドレス指定されているカラム上のいずれかのセルが過消去になっていると判定されたかどうかを示す。テスタ３１０は、後で、ＢＡＤＣＯＬＵＭＮに基づき現在アドレス指定されているカラムについてさらにプログラミング／修復パスを実行すべきかどうかを決定する。
【００４１】
次に、テスタ３１０はステップ４０４からステップ４０６へ進む。ステップ４０６においては、テスタ３１０は、アドレス信号Ａｘ５７を選択されたカラム上の最初のセルにセットする。この場合も、最初のセルを選択するのはもっぱら便宜上でしかない。
【００４２】
次に、テスタ３１０はステップ４０６からステップ４０８へ進む。ステップ４０８において、テスタ３１０は、現在アドレス指定されているセルのスレッショルド電圧を試験して、そのセルが過消去になっているかどうかを判定する。セルは、そのスレッショルド電圧がゼロボルト以下であれば過消去されているとみなされる。
【００４３】
テスタ３１０は、ＯＶＥＲＥＲＡＳＥ−ＶＥＲＩＦＹコマンドを特別な基準セルと共に用いてセルが過消去されているかどうかを判定する。このＯＶＥＲＥＲＡＳＥ−ＶＥＲＩＦＹコマンドによって、フラッシュメモリユーザは消去動作が首尾よく行われたかどうかを確認することが可能となる。トリミング可能な基準セルによって、テスタ３１０はセルが過消去されているかどうかをＯＶＥＲＥＲＡＳＥ−ＶＥＲＩＦＹコマンドを用いて決定することを可能となる。
【００４４】
ＯＶＥＲＥＲＡＳＥ−ＶＥＲＩＦＹコマンドを用いた過消去検査回路５００の構成を図５に示す。アレイセル５０２はアドレス信号Ａｙ８２及びＡｘ５７によって選択される。アレイセル５０２は、センスアンプ５０４の一方の入力に結合されている。センスアンプ５０４のもう一方の入力はトリミング可能なな基準セル５０６に結合されている。通常製造時に過消去検査に先立って、基準セル５０６のスレッショルド電圧は、消去されたセルの最小許容電圧を表す電圧にトリミングされる。好ましくは、基準セル５０６のスレッショルド電圧は０．５ボルトにトリミングする。
【００４５】
過消去検査の間、同じ電圧レベル（約５ボルト）がアレイセル５０２と基準セル５０６のゲートへ印加される。アレイセル５０２のスレッショルド電圧が基準セル５０６のそれより低いと、センスアンプ５０４は論理値１を出力し、セル５０２が過消去されていることをテスタ３１０に示す。同様にして、センスアンプ５０４からの論理値０はセル５０２が過消去されていないことをテスタ３１０に指示する。
【００４６】
あるいは、過消去検査は、ＥＲＡＳＥ−ＶＥＲＩＦＹコマンド及びＰＲＯＧＲＡＭ−ＶＥＲＩＦＹコマンドを用いて行うことができる。これらの検査コマンドは全て、特別な基準セルを各センスアンプと結合する。これらのコマンド間の唯一の違いは、特別な基準セルのＶT である。特定のコマンドと関連する特別な基準セルのＶT が約０．５Ｖにトリミングされている限り、過消去検査はその特定コマンドを用いて実行することができる。
【００４７】
図５の回路による過消去検査方式によれば、正しく過消去されたセルは全て識別される。しかしながら、ビット線漏れ電流があると、回路５００が正しく消去されたセルを過消去されていると誤認することが起こり得る。この誤認の結果、誤認されたセルが過修復される危険が生じる。そのために、最初のプログラミング電圧レベルは過修復を防ぐように選択される。
【００４８】
ステップ４０８においてセルが過消去されていると判定されると、テスタ３１０はステップ４１０へ分岐する。テスタ３１０は、ステップ４１０において過消去セルを単発のプログラミングパルスを印加することにより修復することを試みる。アドレス指定されたカラムを通す最初のパスにおいて、テスタ３１０は、ＶPP３６を開始電圧レベルＶSTART に上げ、ＰＲＯＧＲＡＭコマンドを出す。
【００４９】
ＶSTART は、動作条件にかかわらず、セルのゲートへ印加した単発パルスによって過修復が引き起こされることがないよう十分に低くすべきである。また、ＶSTART は、セルのドレイン電圧をプログラミングが可能なだけ十分高くするに足る電圧レベルとすべきである。プログラミング時のセルドレインの許容最小電圧は約４ボルトである。従って、ゲート電圧及びドレイン電圧の独立制御なしで、ドレイン電圧が通常ＶPP／２であるとすると、可能な最低ＶSTART は約８ボルトとなる。ゲート電圧及びドレイン電圧の独立制御が可能な回路においては、修復はゲート電圧を３ボルトまで低くしても開始することができる。チャンネル・ホットエレクトロン・プログラミングは、ＶSTART ５ボルトで行うことが好ましい。
【００５０】
単発のプログラミングパルスを過消去セルへ印加した後、テスタ３１０はステップ４１２へ進む。ステップ４１２においては、テスタ３１０はＢＡＤＣＯＬＵＭＮを真にセットし、現在アドレス指定されたカラム上の少なくとも１つのセルが過消去になっていると確認されたということを示す。
【００５１】
次に、テスタ３１０はステップ４１２からステップ４１４へ進む。ステップ４１４においては、テスタ３１０は、現在アドレス指定されているカラム上の全てのセルについて過消去検査を行ったかどうかを確認する。テスタ３１０は、この確認を行アドレス信号Ａｘ５７に基づいて行う。
【００５２】
全てのセルについて検査が完了していなければ、テスタ３１０はステップ４１６へ分岐する。ステップ４１６においては、行アドレスＡｘ５７がインクリメントされ、テスタ３１０はカラム上の次のセルの検査が可能な状態となる。
【００５３】
テスタ３１０は、ステップ４１６からステップ４０８へ戻り、現在アドレス指定されているセルについて過消去検査を行う。そのセルが過消去されていれば、テスタ３１０は、上記同様、ステップ４１０、４１２、４１４及び４１６を繰り返し順次実行する。一方、現在アドレス指定されているセルが過消去されていなければ、テスタ３１０はステップ４０８から直接ステップ４１４へ分岐する。
【００５４】
現在アドレス指定されているカラム上の全てのセルが過消去検査を終えていれば、テスタ３１０はステップ４１４からステップ４１８へ分岐する。ステップ４１８において、テスタ３１０はＢＡＤＣＯＬＵＭＮを吟味する。前回のプログラミング修復パスでいずれかのセルが過消去されていると判定されると、テスタ３１０はステップ４２０へ分岐して、次のプログラミング／修復パスを開始する。
【００５５】
テスタ３１０はステップ４２０においてカウンタＣＯＵＮＴを１だけインクリメントする。
【００５６】
次に、テスタ３１０はステップ４２０からステップ４２２へ進む。ステップ４２２において、テスタ３１０は現在アドレス指定されているカラムについてのプログラミング／修復パスの最大パス数を超えたかどうかを確認する。プログラミング修復パスの最大パス数は１カラム当たり７５０にセットされている。他の実施例においては、この最大パス数はあらゆる任意の数にセットすることが可能である。また、この１カラム当たりのプログラミング／修復パスの最大パス数は、持続時間の異なるプログラミングパルスを補償するために修正するようにしてもよい。
【００５７】
プログラミング／修復パスがその最大パス数だけ実行された場合は、テスタ３１０はステップ４２２からステップ４２４へ分岐する。ステップ４２４において、テスタ３１０はその修復手順が成功しなかったということを指示する。そして、テスタ３１０はステップ４２４からステップ４２５へ進み、修復手順を終了する。
【００５８】
一方プログラミング／修復パスの最大パス数だけ実行されていなければ、テスタ３１０はステップ４２２からステップ４０４へ分岐する。ステップ４０４において、テスタ３１０はＢＡＤＣＯＬＵＭＮを真にセットし、次のプログラミング／修復パスが可能な状態となる。
【００５９】
次に、テスタ３１０はステップ４０４からステップ４０６へ進む。ステップ４０６において、セルアドレスＡｘ５７は現在アドレス指定されているカラム上の最初のセルへ再初期化される。
【００６０】
次に、テスタ３１０はステップ４０６からステップ４０８へ分岐する。ステップ４０８において、テスタ３１０はその最初のセルを再度吟味して、過消去されているかどうかを確認する。現在アドレス指定されているこのセルが過消去されていれば、テスタ３１０はステップ４１０へ分岐する。
【００６１】
ステップ４０１においては、テスタ３１０は単発のプログラミングパルスをこの過消去セルへ印加する。最初のパス以後のプログラミング／修復パスにおいては、ＶPP３６はＶSTART から段階的に上げられる。その電圧ステップＶSTEPの大きさは、好ましくは０．５ボルトである。他の実施例においては、０．５ボルトと異なる電圧ステップを用いることも可能である。
【００６２】
ＶPPは次の方程式（１）に従って設定されるセットされる。
ＶPP＝ＶSTART ＋ＣＯＵＮＴ×ＶSTEP、ＶPP≦７ボルトの場合  （１）
ＶPP＝７ボルト、その他の場合
最大プログラミング電圧レベルは７ボルトである。
【００６３】
正しく消去されたセルが過修復されるのを防ぐため、最大ゲート電圧は７ボルトにすることが望ましい。この最大ゲート電圧７ボルトの選択は、図６に示すフラッシュメモリセルのプログラミング速度特性によるものである。フラッシュメモリセルのプログラミング速度は、ドライブ電圧ＶG −ＶT が最大点ドライブ電圧Ｖmax （約１２ボルト）に達するまでドライブ電圧につれて増加する。Ｖmax 以後は、プログラミング速度はドライブ電圧が増加するするにつれて減少する。カラム上の各セルはＶT がそれぞれ異なり得るから、図６のプログラミング特性は、本発明の過消去修復方法の不確かさ許容性に対する一つの障害となる。ここで、ＶT が−５Ｖの酷く過消去された１つのセルとＶT が１Ｖの正しく消去されたセルをいくつか有するカラムの修復を行う場合を考える。８ボルトのＶG を用いてカラムを修復することは、酷く過消去されたセルのドライブ電圧がＶmax を超える一方、正しく消去されたセルのドライブ電圧はＶmax より低いということを意味する。その結果、酷く過消去されたセルのプログラミング速度はドライブ電圧の増加につれて減少するのに対し、正しく消去されたセルのプログラミング速度は増加する。そのために、ＶG を上げると、正しく消去されたセルを過修復する可能性がある。本発明のこの実施例の方法においては、ＶG を最大７ボルトに制限することによって過修復を防ぐ。他の実施例においては、７ボルトを超えるＶG を用いることも可能である。そのような７ボルトを超えるＶG を用いる修復方法は、過修復を防ぐという点においてこの実施例の方法より不確かさ許容性が小さいだけである。
【００６４】
プログラミングパルスを過消去セルへ印加した後、テスタ３１０はステップ４１２へ進む。ステップ４１２において、テスタ３１０はＢＡＤＣＯＬＵＭＮを真にセットして、現在アドレス指定されているカラム上の少なくとも１つのセルが過消去されているということを指示する。
【００６５】
次に、テスタ３１０はステップ４１２からステップ４１４へ分岐する。今回のパスで現在アドレス指定されているカラム上の全セルについて過消去検査が終わっていなければ、テスタ３１０は、前述したように、ステップ４１６、４０８、４１０、及び４１２を繰り返し順次実行する。現在アドレス指定されているカラム上の全てのセルについて過消去検査が完了すると、テスタ３１０は、やはり前に述べたように、ステップ４１８、４２０、４２２、４０４、及び４０６を繰り返し順次実行する。
【００６６】
修復手順が成功すると、カラムのプログラミング／修復パスにおいて、過消去されていると判定されるセルが全くなくなる。言い換えると、あるパスでテスタ３１０がステップ４１８に達し、その時のＢＡＤＣＯＬＵＭＮが偽である。ＢＡＤＣＯＬＵＭＮが偽の時は、現在アドレス指定されているカラム上の全てのセルについて修復が完了しており、テスタ３１０はステップ４２６へ分岐する。
【００６７】
ステップ４２６において、テスタ３１０はアレイ９０内の全カラムについて修復が行われたかどうかを確認する。全カラムについて修復が終わっていなければ、テスタ３１０はステップ４２８へ分岐する。
【００６８】
ステップ４２８において、テスタ３１０はアレイ９０内の次のカラムを修復するためにカラムアドレスＡｙ８２をインクリメントする。テスタ３１０は、ステップ４２８から、ステップ４０２まで戻り、前述したようにステップ４０２、４０４、４０６、４０８、４１０、４１２、４１４、４１６、４１８、４２０、及び４２２を繰り返し順次実行する。
【００６９】
アレイ９０内の全てのカラムについて修復を終えるたならば、テスタ３１０はステップ４２６から４２５へ分岐することによりて修復手順を完了する。
【００７０】
過消去セルの修復は他のアルゴリズムを用いて行うこともできる。図４の方法はプログラミング電圧レベルをインクリメントすることによってセルを修復するものであり、プログラミングパルスの持続時間は一定に保たれる。他の実施例においては、ステップ４１０で一定のプログラミング電圧レベルを使用し、プログラミングパルスの持続時間をインクリメントして印加することも可能である。
【００７１】
ステップ４１０は、過消去セルに単発パルスではなく、複数のプログラミングパルスを印加するよう修正することもできる。実際、プログラミングパルスは、過消去セルが修復されるまで繰り返し印加することも可能である。このような方法は実施例の方法より簡単ではあるが、不確かさ許容性が小さい。
【００７２】
あるいは、過消去セルのみを修復するのではなく、アレイの中の全てのセルを修復するようにしてもよい。言い換えると、ステップ４０８は省くことも可能である。このやり方は、セルが過修復され易いという点において、上記実施例より不確かさ許容性が小さい。
【００７３】
ステップ４０８の過消去検査は他の方法を用いて実行することも可能である。例えば、基準セルとアレイセルのゲートへ共に同じ電圧を印加する代わりに、異なる電圧レベルを用いて、基準セルのスレッショルド電圧を消去セルの許容下限にトリミングしなくとも済むようにすることもできる。また、基準セル５０６に替えて、トランジスタまたは抵抗器のような他の電流源を用いることも可能である。
【００７４】
さらにもう一つの実施例においては、過消去セルではなく、欠陥カラムまたは欠陥バイトを識別することができる。それらの欠陥バイトまたはカラム中の全てのセルは、バイトまたはカラム全体について過消去検査が行われるまでプログラムされる。
【００７５】
図７は、書込み状態機械（ＷＳＭ）３２を組み込んだ過消去フラッシュメモリセルを修復するためのもう一つの回路をブロック図形式で示す。書込み状態機械３２はフラッシュメモリアレイ２０のプログラミング、消去、修復及び過消去を制御する。
【００７６】
書込み状態機械３２は、やはりアレイ２０と同じサブストレート上に作り込まれた他の回路と共にその機能を遂行する。ドレイン電圧スイッチ４４は、フラッシュメモリ２０の全てのドレインに直流電圧を配分する。コマンド状態機械４０は、制御信号ＯＥＢ２４、ＣＥＢ２２及びＷＥＢ２６を解読し、書込み状態機械３２に選択された動作を行うよう指示する。
【００７７】
フラッシュメモリ２０への直流入力としては、消去／プログラム電源電圧ＶPP３６がある。ＶCC１６はデバイス電源であり、ＶSS１８は接地（アース）である。一実施例の場合、ＶPP３６は１２．０、ＶCC１６は約５ボルトである。
【００７８】
ＶPP３６上にハイ電圧がない時、フラッシュメモリ２０はリードオンリーメモリとして動作する。その場合、アドレス指定された記憶場所に記憶されているデータがメモリアレイ９０から読出され、データ線４６を介して外部回路に供給される。
【００７９】
フラッシュメモリ２０には、チップイネーブルバー「ＣＥＢ」２２、書込みイネーブルバー「ＷＥＢ」２６及び出力イネーブルバー「ＯＥＢ」２４の３つの制御信号が入力される。ＣＥＢ２２入力はフラッシュメモリを選択する信号であり、能動ローである。ＯＥＢ２４は、フラッシュメモリ用の出力制御信号であり、フラッシュメモリのデータピンからのデータ出力をゲートするために使用すべきである。ＯＥＢ２４は能動ローである。フラッシュメモリのデータ線上にデータを取り出すためには、制御機能（信号）ＣＥＢ２２及びＯＥＢ２４が共に論理能動でなければならない。書込みイネーブルバー信号ＷＥＢ２６は、ＣＥＢ２２がローの時メモリアレイへ書込みを可能にする。ＷＥＢ２６は能動ローである。
【００８０】
フラッシュメモリは、ＣＥＢ２２がローの時にＷＥＢ２６を論理レベルハイすることによって書込み可能となる。アドレス及びデータはＷＥＢ２６の立ち上がりエッジ上でラッチされる。マイクロプロセッサタイミングは、標準的なものを使用する。
【００８１】
デバイスの動作は、データ入／出力線を介して個々のデータパターンを書込むことによって選択される。消去は２サイクルのコマンドシーケンスによって開始される。消去事象の完了は、リードステータス（Ｒｅａｄ  Ｓｔａｔｕｓ）コマンドの後検出することができる。プログラミングも２コマンドのシーケンスによって実行される。Ｒｅａｄ  Ｓｔａｔｕｓ  Ｒｅｇｉｓｔｅｒコマンドによってステータスレジスタ（状態レジスタ）をポーリングすることにより、プログラミングシーケンスの完了を確認することができる。
【００８２】
図８は、書込み状態機械３２の回路をブロック図形式で示す。状態機械３２は、発振器／位相発生器７０、次状態コントローラ７２、イベント（事象）カウンタ７４、周期カウンタ７６、アドレスカウンタ７８及びデータラッチ／比較器（「ＤＬＣ」）８０よりなる。
【００８３】
ＲＥＳＥＴ５２は、書込み状態機械３２内のほぼ全ての回路に供給され、書込み状態機械３２内のクリティカルノードを強制的に既知状態にする。例えば、ＲＥＳＥＴ５２は端子カウント信号８８、９０及び９２を強制的に論理値ゼロにする。
【００８４】
発振器／位相ジェネレータ７０は、非能動のＲＥＳＥＴ信号５２を受け取るとすぐ、２つの互いにオーバーラップしない位相クロック、すなわち位相１クロックＰＨ１（８２）及び位相２クロックＰＨ２（８４）を発生し、これらのクロックはＷＳＭのほぼ全ての回路に供給される。
【００８５】
次状態コントローラ７２は、書込み状態機械３２の動作を制御すると共に調整し、ＷＳＭの次の状態を決定する。次状態コントローラ７２は、ＷＳＭ３２の現在の状態を示す５つの出力ＳＢＵＳ［０：４］５４を発生させる。
【００８６】
次状態コントローラ７２からＳＢＵＳ［０：４］５４を受け取る各回路は、それぞれ独自のＳＢＵＳ［０：４］５４デコード（解読）を行って各々の次のタスクを決定する。この設計によれば、多くのタスクを並列に実行することが可能であり、消去及びプログラム機能を実行するのに必要な時間を最小限にすることができる。
【００８７】
周期カウンタ７６は、過消去修復、プログラム、及び消去動作におけるアレイ電圧のパルス周期及びそのタイミングを決定する。周期カウンタ７６の端子カウント信号ＰＣＴＲＴＣ８８は、能動ハイになることによって、選択された期間が経過したことを次状態コントローラ７２に通知する。周期カウンタ７６は、ＳＢＵＳ［０：４］５４を解読して所望のパルス周期を選択する。
【００８８】
イベントカウンタ７４は、１バイト当たりの過消去修復、プログラム、あるいは消去動作がその最大回数に達したかどうかを決定する。１バイト当たりの動作が最大回数に達すると、イベントカウンタ７４は、イベント端子カウント信号ＥＣＴＲＴＣ９０を論理ハイにすることによりそのことを次状態コントローラ７２に通知する。イベントカウンタ７４は、ＳＢＵＳ［０：４］出力５４を解読することによって動作の最大数を決定する。この実施例においては、１ビット当たり過消去修復動作の最大回数は７５０である。ただし、この最大回数は任意に選択可能である。
【００８９】
ＷＳＭ３２において、アドレスカウンタ７８は、入力バッファとカウンタの両方の機能を有する。ＲＥＡＤＹ５０がハイのときは、アドレス線Ａ［０：１６］のアドレスが信号Ａｙ［０：６］５５及びＡｘ［０：９］５７として出力される。信号Ａｙ５５とＡｘ５７は、メモリアレイ９０中の過消去修復、プログラム、あるいは消去すべきバイトの記憶場所を指示する。
【００９０】
アドレスが入力バッファに入力された後、入力バッファからのアドレスは、アドレスラッチイネーブル信号ＡＬＥ４９によりコマンド状態機械（ＣＳＭ）４０の制御下においてアドレスカウンタにロードされる。この後、アドレスカウンタ７８は、メモリアレイ９０中の全てのアドレスを逐次カウントする。
【００９１】
アドレスカウンタ７８には、カラムカウンタ（Ｙ‐カウンタとも呼ばれる）及び行カウンタ（Ｘ‐カウンタとも呼ばれる）の２つのカウンタが組み込まれている。これらの各カウンタは、次状態コントローラ７２に能動論理ハイの端子カウント信号を供給する。カラムカウンタはカラム端子カウント信号ＡＹＴＣを出力し、行カウンタは行端子カウント信号ＡＸＴＣを出力する。
【００９２】
データラッチ／比較器（ＤＬＣ）８０は、ＷＳＭ３２とコマンド状態機械４０、及びメモリアレイ２２とデータ線４６との間のインタフェースである。データ線４６上のＴＴＬデータ入力は、ＤＬＣ８０によってバッファされ、ＤＡＴＡＩＮ［０：７］信号２７としてコマンド状態機械４０へ送られる。
【００９３】
ＤＡＴＡＩＮ［０：７］線２７を介して入力された信号がプログラムコマンドを表している場合は、コマンド状態機械４０は、データラッチイネーブル信号ＤＬＥ４７を論理値１にセットすることにより、ＤＬＣ８０にデータ線４６の情報を記憶するよう指示する。プログラム消去及び過消去検査動作の間、ＤＬＣ８０はそのラッチに記憶されたデータをセンスアンプ信号ＳＯＵＴ［０：７］５９と比較し、両者が一致すると、ＭＡＴＣＨ９４を論理ハイにセットすることによりその一致を示す。
【００９４】
ＤＬＣ８０は、過消去検査手順の間、メモリセルの記憶内容を表すセンスアンプ出力信号ＳＯＵＴ［０：７］５９を基準論理レベルと比較し、セルが正しく消去されている場合は、ＭＡＴＣＨ９４を論理ハイにセットすることによりそのことを次状態コントローラ７２に指示する。
【００９５】
ステータスレジスタ３４は、多重化されてデータ入／出力線２６上を伝送される状態信号ＳＴＡＴ［３：７］５６によって書込み状態機械３２の状態を知らせる。
【００９６】
アドレスカウンタ７８が短絡した行を含むアドレスを出力すると、メモリアレイ９０内にある連想メモリ（ＣＡＭ）が必ず能動ＴＷＯＲＯＷ信号を次状態コントローラ７２へ出力する。ＴＷＯＲＯＷの意味については後で詳細に説明する。
【００９７】
図９は、書込み状態機械３２を用いて過消去を修復するための他のアルゴリズムを示す。図９において、各ボックスは書込み状態機械３２の状態を表す。各状態の名称は、各々のボックスの最上部に示されている。次状態コントローラ７２を他の状態に分岐させる信号の組合わせは、各分岐線のそばに文字で概ね示してあり、非能動信号の場合は先頭に感嘆符“！”が付されている。ある分岐の後信号の組合わせが示されないときには、次状態コントーラ７２は、その入力にかかわらず、１つの状態から他の状態へ移るということ理解できよう。また、図９のアルゴリズムは、８カラムに対して過消去修復を同時に実行する。これは、メモリアレイ９０が、１つのバイトにアクセスするために同じアドレス信号を８つの異なるブロックに同時に印加する構成になっているためである。
【００９８】
簡単のため、図９の説明は、短絡した行が全くなく、またどのセルも過消去されていないフラッシュメモリの過消去検査の場合をまず説明する。すなわち、信号ＴＷＯＲＯＷは非能動で、信号ＭＡＴＣＨは能動であると仮定する。
【００９９】
過消去検査を開始するに先立って、アドレスカウンタ７８は、メモリアレイ中の全てのカラムが必ず過消去検査されるようにそのカウントの始めの値にリセットされる。過消去検査は、状態５００において不良カラムビットＢＡＤＣＯＬＵＭＮをリセットすることにより開始される。同時に、最初の８カラム上の最初のセルが消去検査される。言い換えると、各アレイセルの出力がセンスアンプに供給されて、特別な基準セルとの出力と比較される。
【０１００】
ある実施例においては、過消去検査回路で使用する電圧レベルが前述のレベルと異なる。しかしながら、図５の基本回路は変わらない。電圧レベルを変えるのは、特別な基準セルを０．５ボルトにトリミングすることが困難なためである。この場合の実施例においては、特別な基準セルは、０．５ボルトに代えて、比較的達成し易いレベルである３ボルトにトリミングされる。ＶT とＶG の間の２ボルトの差を表す電流を供給するための電源として、各々の特別な基準セルのゲートには５ボルトが印加される。一方、正しく消去されたアレイセルは、約０．５ボルト及至１．１ボルトのＶT を有し、アレイセルへのゲートに印加される電圧は２．５ボルトである。
【０１０１】
指示されたバイトについて過消去検査を実行した後、カラムカウンタがその端子カウントに達していなければ、次状態コントローラ７２は、状態５００から状態５０２へ分岐する。状態５０２において、状態機械３２は現在アドレス指定されているセルが過消去検査をパスしたかどうかを確認する。また書込み状態機械３２は、過消去修復を行う場合に備えてドレイン電圧スイッチ４４のセレクト信号を発生させる。ドレイン電圧スイッチ４４は、イネーブル状態になる（有効化される）と、選択されたセルのドレインを７ボルトに引き上げ、それらのセルの修復を可能にする。選択されなかったセル、すなわち正しく消去されたセルのドレインは、ドレイン電圧スイッチ４４がイネーブル状態の時接地され、これによって選択されなかったセルの修復を防ぐ。
【０１０２】
データラッチ／比較器８０は、センスアンプ出力ＳＯＵＴ［０：７］を期待値と比較することによってセレクト信号を発生する。過消去セルにおいては、センスアンプ出力は期待値と一致しない。データラッチ／比較器８０は、この不一致に応答してセルに対応するセレクト信号を能動ハイにする。正しく消去されたセルの場合、センスアンプ出力と期待値が一致し、データラッチ／比較器８０は、これに応答してそのセルに対応するセレクト信号を強制的に非能動にする。
【０１０３】
データラッチ／比較器８０がＭＡＴＣＨを能動にすることによって全ての８ビットが過消去検査をパスしたということを指示すると、書込み状態機械３２は状態５０２から５０４へ分岐する。
【０１０４】
書込み状態機械３２は状態５０４において行アドレスをインクリメントする。次に、書込み状態機械３２は状態５０４から５０６へ分岐する。
【０１０５】
状態５０６においては、アドレス指定されている８本の各カラム上の次のセルが過消去検査される。ＡＸＴＣが非能動であれば、現在アドレス指定されているカラムの過消去検査が続けられる。書込み状態機械３２は、この非能動のＡＸＴＣに応答して状態５０６から状態５０２へ分岐する。
【０１０６】
状態５０２において、状態機械３２は、現在アドレス指定されているセルのうちのどれかを過消去修復すべきかどうかを確認する。
【０１０７】
メモリアレイ９０中のどのセルも過消去されていないとすると、書込み状態機械３２は、行カウンタがその端子カウントに達するまで、状態５０２、５０４及び５０６を繰り返し順次経過する。行カウンタから能動のＡＸＴＣ信号を受け取ると、書込み状態機械３２は状態５０６から状態５０８へ分岐する。状態５０８においては、カラムカウンタはそのカウントをインクリメントし、これによって過消去検査及び修復を行う次の８カラムを選択する。
【０１０８】
次に、書込み状態機械３２は、状態５０８から状態５００へ分岐する。その後、書込み状態機械３２はカラムカウンタがその端子カウントに達するまで状態５００、５０２、５０４、５０６及び５０８を繰り返し順次経過する。次状態コントローラ７２が能動の端子カウント信号ＡＹＴＣを受け取ると、書込み状態機械３２は状態５３０へ分岐して、このアルゴリズムから抜ける。
【０１０９】
次に、セルが過消去検査に不合格の場合における書込み状態機械３２の動作を説明する。簡単のため、メモリアレイ９０には短絡した行がなく、かつイベントカウンタはまだタイムアウトしていないものと仮定する。すなわち、書込み状態機械３２は状態５０２にあり、信号ＭＡＴＣＨ、ＥＣＴＲＴＣ及びＴＷＯＲＯＷは非能動であると仮定する。
【０１１０】
上記の状態においては、現在アドレス指定されているセルは、過消去検査に不合格となった各セルのゲートにプログラミング電圧を印加する（状態５１０）ことができる状態にある。周期カウンタがタイムアウトになると、書込み状態機械３２は状態５１２へ進み、周期カウンタはリセットされる。
【０１１１】
次に、書込み状態機械３２は、状態５１２から状態５１４へ進み、ここでドレイン電圧スイッチ４４がイネーブルになる。これによって、状態５０２で選択された過消去検査に不合格となったセルのドレインに７ボルトが印加される。他の全てのセルのドレインは接地される。この場合も、周期カウンタがその端子カウントに達するまで電圧は維持される。その後、書込み状態機械３２は状態５１６に進み、修復されたセルについて過消去検査を行う。
【０１１２】
次に、書込み状態機械３２は状態５１６から状態５１８へ進む。状態５１８では、ＭＡＴＣＨを評価することによって修復動作の成否が分析される。ＭＡＴＣＨが論理ハイであれば、修復が成功したことを示し、書込み状態機械３２は状態５０４へ分岐する。
【０１１３】
これに対して、セルの状態が過消去検査にパスしないと、書込み状態機械は状態５１８から状態５２０へ分岐する。状態５２０においては、ＢＡＤＣＯＬＵＭＮがセットされ、これによって現在アドレス指定されているカラムの過消去検査パスが少なくとももう１回確実に行われるようにする。ここで、ＢＡＤＣＯＬＵＭＮは、最初の修復パルスの印加後いずれかのセルが過消去検査にパスしなかった場合にのみセットされるということに注意すべきである。このように、同じカラム上の全てのセルについて必ずしも再度検査を行うことなく、コンディショニングパルス（修復パルス）を印加することができる。これによって、製造時に工程を約３２ミリ秒短縮するすることができる。
【０１１４】
書込み状態機械３２は、状態５２０から状態５０４へ戻り、アドレスカウンタ７８が行アドレスをインクリメントする。その後、書込み状態機械３２は常態５０６へ分岐し、次のバイトについて過消去検査を行う。現在アドレス指定されているカラム上の他のセルがいずれも過消去検査に不合格とならなかったとすると、書込み状態機械３２は、カラムの終りに達して、そのことがＡＸＴＣ上の能動レベルにより指示されるまで、状態５０２、５０４及び５０６を繰り返し順次経過する。ＡＸＴＣが能動レベルになると、ＢＡＤＣＯＬＵＭＮが能動であるため、書込み状態機械３２は状態５０６から状態５２４へ分岐する。
【０１１５】
状態５２４においては、現在アドレス指定されているカラムについての次の過消去修復パスに備えて、修復（プログラミング）電圧レベルがインクリメントされる。プログラミング電圧レベルは、ディジタル信号をインクリメントし、そのディジタル信号をディジタル‐アナログ変換器に入力することによって上げることが望ましい。また、好ましくは、そのディジタル‐アナログ変換器は、０．５ボルトステップで最小出力電圧５ボルト及び最大出力電圧７ボルトが得られるものとする。ただし、修復しようとする各特定のメモリアレイの必要に応じて、他の電圧範囲使用することも可能である。
【０１１６】
次に、書込み状態機械３２は状態５２４から状態５００へ戻る。この場合カラムカウンタはインクリメントされていないので、過消去検査は再度現在アドレス指定されているカラム上の最初のセルから開始される。
【０１１７】
現在アドレス指定されているセル上について過消去検査が実行される。メモリアレイ９０内の全てのカラムについて検査が終了してはいないとすると、書込み状態機械３２は、状態５００から状態５０２へ分岐する。その後、書込み状態機械３２は、メモリアレイ９０内の全ての過消去セルが修復されるまで、あるいは一部のセルが修復されないままイベントカウンタがその端子カウントに達するまで、前述したように状態５０２、５１０、５１２、５１４、５１６、５１８、５２０、５０４、５０６、５２４及び５０８を繰り返し順次経過する。イベントカウンタは、１カラムにつき過消去修復パスを最大７５０回許容する。７５０回過消去修復パスが実行されると、イベントカウンタはＥＣＴＲＴＣを能動ハイにする。これに応答して、書込み状態機械３２はが状態５０２から状態５３２へ分岐し、過消去修復結果は不合格となる。
【０１１８】
図９のアルゴリズムは、行冗長性のあるフラッシュメモリに適用される。行冗長性とは、互いに短絡した２本の行がメモリアレイ９０内の随所にある他の行と置換されることを意味する。冗長回路素子と置換される行は、有意情報が記憶されていなくても、メモリアレイ９０内の他のセルの修復に影響を及ぼす。短絡した行中の過消去セルはカラムの漏れ電流を大きくするよう作用するので、同じカラム上の正常セルが過修復されるのを防ぐよう修復しなければならない。通常のポストコンディショニング（後コンディショニング）による修復動作においては、修復中のアレイセルのゲートに５ボルトが印加され、メモリアレイ中の他の全てのゲートは接地される。この後短絡行についての修復手順を実行すると、５ボルト電源が接地され、フラッシュメモリは破壊される。したがって、短絡した行の修復では、両方の行のゲートを同じ電圧レベルに接続することが必要である。（このことは、短絡行に関る全ての操作、動作について当て嵌まる。）短絡させられたセルの電流出力は、それらの短絡セルの双方がセンスアンプへ流れ込む電流を増大させるよう作用するので、正しく消去されたセルの電流出力より大きくなる。他の行に短絡されたセルが過消去セルであると誤認されることは、同じカラム上の正しく消去されたセルの過修復を生じる可能性があり、危険である。この実施例のアルゴリズムは、短絡行中のセルを過修復することによって短絡行を含むカラムの過修復を防止しようとするものである。短絡行中のセルの過修復は、過消去修復時にゲートへ１０ボルトを印加することにより試みられる。
【０１１９】
図９のアルゴリズムは、何組かの短絡行について行冗長性を扱えるようにしただけである。書込み状態機械３２が遭遇する最初の短絡行を下位行と称し、２番目の行はを上位行と称する。アドレスカウンタ７８は、リニア方式でカウントするから、下位行が最初にアドレス指定される。下位行の修復時に下位行及び上位行の両方のゲートが１０ボルトにドライブされるとすると、これらの行は両方とも同時に修復される。従って、アドレスカウンタ７８が上位行のアドレスへインクリメントするとき上位行を修復する必要はない。そのために、図９のアルゴリズムでは、下位行の修復の後の上位行の修復が防止される。
【０１２０】
図９のアルゴリズムの行冗長性に適用する方法を解り易く説明するために、アドレスカウンタ７８が短絡行ペアの最初の行を指示しており、過消去検査結果が不合格であると仮定する。すなわち、ＭＡＴＣＨが非能動で、ＴＷＯＲＯＷが能動であると仮定する。そして、イベントカウンタがその端子カウントに達していないとすると、書込み状態機械３２は状態５０２から５２２へ分岐する。状態５２２においては、短絡セルの上位行及び下位行のゲートに１０ボルトが印加される。
【０１２１】
ＰＣＴＲＴＣが能動になった後、書込み状態機械３２は、前に述べたように、状態５２２から状態５１２、１４、５１６、５１８及び５２０を順次経過する。状態５０４における書込み状態機械３２の動作は、能動ＴＷＯＲＯＷ信号を扱うために、前述の場合と少し異なっている。行アドレスが１だけインクリメントされると、アドレスカウンタ７８はＴＷＯＲＯＷを能動レベルに維持することにより上位行を指示する。ＴＷＯＲＯＷが能動であると、行アドレスカウンタは、ＴＷＯＲＯＷが非能動になるまでインクリメントし続ける。書込み状態機械３２はこれに応答して状態５０６に分岐する。
【０１２２】
信号ＴＷＯＲＯＷが非能動になるまで書込み状態機械３２が状態５０４から分岐しないのに、一体どのようにして短絡行が修復されるのかという疑問があるかもしれない。この点に関しては、書込み状態機械３２のパイプライン型設計のため、ＴＷＯＲＯＷが短絡行ペアの下位行のアドレス指定と同時に能動になることは全くない。これによって、書込み状態機械３２は下位行のアドレス指定と同時に状態５０４から状態５０６へ分岐することが可能である。しかしながら、書込み状態機械３２が状態５０２になるまで、ＴＷＯＲＯＷは能動になっている。書込み状態機械３２は、状態５０２より前述したようにしてアルゴリズムを実行する。
【０１２３】
以上、低電圧レベルのチャンネル・ホットエレクトロン・プログラミングを用いて過消去されたフラッシュメモリセルを確認し、修復する方法を説明した。また、書込み状態機械を用いて過消去されたフラッシュメモリセルを修復する方法についても説明した。
【０１２４】
以上の詳細な説明においては、本発明をその特定の実施例により説明したが、特許請求の範囲の記載による本発明の広義の趣旨及び範囲から逸脱することなく本発明の様々な修正態様並びに変更態様を構成することが可能なことは自明であろう。従って、本願の詳細な説明及び図面は、限定的な意味にではなく、例示説明を目的とした意味に解釈すべきものである。
【０１２５】
【発明の効果】
本発明によれば、コスト、時間及びメモリスペースにおいて効率的であり、かつ信頼性が改善されたフラッシュメモリの過消去修復方法が得られる。
【図面の簡単な説明】
【図１】フラッシュメモリのブロック図である。
【図２】メモリアレイの一部の概略図である。
【図３】過消去修復のための回路のブロック図である。
【図４】過消去を修復するためのアルゴリズムを示すフローチャートである。
【図５】過消去検査回路のブロック図である。
【図６】フラッシュメモリセルのプログラミング速度対ドライブ電圧の関係を示すグラフである。
【図７】書込み状態機械（ｗｒｉｔｅ  ｓｔａｔｅ  ｍａｃｈｉｎｅ）を組み込んだフラッシュメモリのブロック図である。
【図８】書込み状態機械のブロック図である。
【図９】書込み状態機械を使用して過消去を修復するためのアルゴリズムを示す状態図である。
【符号の説明】
２０・・・フラッシュメモリ
７８・・・Ｘデコーダ
９０・・・メモリアレイ
９４・・・Ｙデコーダ
【図１】
0003654915.tif 000002
【図２】
0003654915.tif 000003
【図３】
0003654915.tif 000004
【図４】
0003654915.tif 000005
【図５】
0003654915.tif 000006
【図６】
0003654915.tif 000007
【図７】
0003654915.tif 000008
【図８】
0003654915.tif 000009
【図９】
0003654915.tif 000010