(57)【特許請求の範囲】
【請求項１】
複数の行、複数の列そしてこれら行及び列の交差領域に各々配列された複数個のメモリセルを有するメモリセルアレイと、
前記列を通じて前記メモリセルアレイからプログラムされたデータビットを読んでラッチする読み回路と、
前記列のうち一部を選択する列選択回路と、
プログラムのサイクルのプログラムパス／フェール判別動作の間に、前記列選択回路から出力されたデータビットが全てプログラム状態を有するかの可否を判別してパルス信号を発生するプログラム状態検出回路と、
前記パルス信号に応答して列アドレスを発生するアドレス発生回路とを具備し、
前記列選択回路は前記列アドレスに応答して前記列のうち一部を選択し、
前記プログラムのサイクルはプログラム動作、検証読み動作そしてプログラムパス／フェール判別動作で構成され、前記プログラムのサイクルは所定の回数反復的に実行され、
任意のプログラムのサイクルのプログラムパス／フェール判別動作が実行される間に前記列選択回路を通じて伝達されたデータビットのうちいずれか一つが不十分なプログラム状態に判別される時、前記任意のプログラムサイクルは終了され次プログラムサイクルが実行され、
前記次プログラムサイクルのプログラムパス／フェール判別動作の始めの列アドレスは、前記任意のプログラムサイクルのプログラムパス／フェール判別動作で最後に使用された列アドレスであることを特徴とする不揮発性半導体メモリ装置。
【請求項２】
前記メモリセルアレイは前記列のうち欠陥列を代替するための複数の冗長列を付加的に含むことを特徴とする請求項１に記載の不揮発性半導体メモリ装置。
【請求項３】
前記列選択回路は、前記アドレス発生回路から出力された列アドレスをデコーディングする列デコーダと、この列デコーダによってデコーディングされた列アドレスに応答して前記列のうち一部を選択する列パスゲート回路と、前記列アドレスを受け入れる冗長回路とを含み、
前記冗長回路は前記列アドレスに対応する列が少なくとも一つの欠陥列を含む時前記列デコーダが非活性化されるようにし、前記欠陥列が前記列パスゲート回路を通じて対応する冗長列に代替することを特徴とする請求項２に記載の不揮発性半導体メモリ装置。
【請求項４】
前記プログラム状態検出回路は、
前記読み回路にラッチされたプログラムされたデータビットのうち前記選択された列に対応するプログラムされたデータビットを受け入れ、そのように入力されたプログラムデータビットが全てプログラム状態を示す時、前記パルス信号を発生する手段と、
前記パルス信号と前記列アドレスとに応答してプログラムパス及びプログラムフェールのうち一つを知らせるパス／フェールフラグ信号を発生するパス／フェール判別回路とを含むことを特徴とする請求項１に記載の不揮発性半導体メモリ装置。
【請求項５】
前記パルス信号を発生する手段は、
前記選択された列に対応するプログラムされたデータビットが各々前記プログラム状態を示すかの可否を判別して発振制御信号を発生するデータ状態判別回路と、
前記発振制御信号に応答して前記パルス信号を発生する発振回路とを含むことを特徴とする請求項４に記載の不揮発性半導体メモリ装置。
【請求項６】
前記データ状態判別回路は、前記選択された列に対応する前記プログラムされたデータビットの全てがプログラム状態を示す時、前記発振制御信号を活性化させ、その結果前記列アドレスを増加させるためのパルス信号が生成されることを特徴とする請求項４に記載の不揮発性半導体メモリ装置。
【請求項７】
前記データ状態判別回路は、前記選択された列に対応する前記プログラムされたデータビットのうち少なくとも一つのデータビットが不十分にプログラムされた状態を示す時、前記発振制御信号を非活性化させ、その結果前記パルス信号が生成されないことを特徴とする請求項６に記載の不揮発性半導体メモリ装置。
【請求項８】
前記パス／フェール判別回路は前記発振制御信号が活性化され、前記列アドレスの全てのビットが第１ロジック状態である時、プログラムパスを知らせる前記第１ロジック状態のパス／フェールフラグ信号を発生し、さらに前記パス／フェール判別回路は前記発振制御信号が非活性化される時そして前記発振制御信号が活性化され、前記列アドレスビットのうち少なくとも一つが第２ロジック状態である時、プログラムフェールを知らせる前記第２ロジック状態のパス／フェールフラグ信号を発生することを特徴とする請求項５に記載の不揮発性半導体メモリ装置。
【請求項９】
前記アドレス発生回路はカウント回路を含むことを特徴とする請求項１に記載の不揮発性半導体メモリ装置。
【請求項１０】
前記不揮発性半導体メモリ装置はＮＡＮＤ型フラッシュメモリ装置を含むことを特徴とする請求項１に記載の不揮発性半導体メモリ装置。
【請求項１１】
複数の行、複数の列そしてこれら行及び列の交差領域に各々配列された複数個のメモリセルで各々が構成される第１及び第２メモリセルアレイと、
前記列を通じて対応するメモリセルアレイにプログラムされたデータビットを読んでラッチする読み回路と、
前記第１メモリセルアレイの列のうち一部をそして前記第２メモリセルアレイのうち一部を選択する列選択回路と、
プログラムのサイクルのプログラムパス／フェール判別動作の間に、前記第１及び第２メモリセルアレイに各々対応して、前記列選択回路を通じて伝達されたデータビットが全てプログラム状態を有するかの可否を判別してパルス信号を発生するプログラム状態検出回路と、
前記パルス信号に応答して列アドレスを発生するアドレス発生回路とを具備し、
前記列選択回路は前記列アドレスに応答して、前記第１メモリセルアレイの列のうち一部をそして前記第２メモリセルアレイのうち一部を選択し、
前記プログラムのサイクルはプログラム動作、検証読み動作そしてプログラムパス／フェール判別動作で構成され、前記プログラムのサイクルは所定の回数反復的に実行され、
任意のプログラムのサイクルのプログラムパス／フェール判別動作が実行される間に前記列選択回路を通じて伝達されたデータビットのうちいずれか一つが不十分なプログラム状態に判別される時、前記任意のプログラムサイクルは終了され次プログラムサイクルが実行され、
前記次プログラムサイクルのプログラムパス／フェール判別動作の始めの列アドレスは、前記任意のプログラムサイクルのプログラムパス／フェール判別動作で最後に使用された列アドレスであることを特徴とする不揮発性半導体メモリ装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は不揮発性半導体メモリ装置及びそれのプログラム検証方法に関するものであり、具体的にはプログラム状態検出回路を有するフラッシュメモリ装置及びそれのプログラム方法に関するものである。
【０００２】
【従来の技術】
不揮発性半導体メモリ装置例えば、ＮＡＮＤ型フラッシュメモリ装置のプログラムサイクルはプログラム動作、検証読み動作及びＹ−ＳＣＡＮ動作を通じて実行される。まず、プログラム動作の間に、任意の選択されたページ即ち、ワードラインに関連したＥＥＰＲＯＭセルが要求されるデータ状態に各々プログラムされる。その次に、プログラムされたデータが要求された状態を有するかの可否を判別するために、プログラムされたＥＥＰＲＯＭセルのデータを読むための検証読み動作が実行される。最後で、読まれたデータが要求される状態を有するかの可否が点検される。万一プログラムされたＥＥＰＲＯＭセルのうち少なくとも一つが要求される状態を満足しないと、定まった回数内で要求される状態を満足する時まで上述した一連のプログラムサイクルを反復的に実行する。だから、フラッシュメモリ装置はプログラムパス／フェール（ｐｒｏｇｒａｍ  ｐａｓｓ／ｆａｉｌ）を点検するための回路を含む。そのような機能を有する回路が米国Ｐａｔｅｎｔ  Ｎｏ．５，２９９，１６２に“ＮＯＮＶＯＬＡＴＩＬＥ  ＳＥＭＩＣＯＮＤＵＣＴＯＲ  ＭＥＭＯＲＹ  ＤＥＶＩＣＥ  ＡＮＤ  ＡＮ  ＯＰＴＩＭＩＺＩＮＧ  ＰＲＯＧＲＡＭＭＩＮＧ  ＭＥＴＨＯＤ  ＴＨＥＲＥＯＦ”というタイトルで掲載されている。
【０００３】
図１は前述した文献に掲載された不揮発性半導体メモリ装置のプログラム状態検出回路を示す回路図である。
【０００４】
図１を参照すると、各ビットラインＢＬ１〜ＢＬ１０２４には直列に接続されたストリング選択トランジスタＳＴ、８個のセルトランジスタＣＴ１〜ＣＴ８、そして接地選択トランジスタＧＴからなるストリング単位のＮＡＮＤ構造セルＣＥが接続される。ストリング選択トランジスタＳＴと接地選択トランジスタＧＴはＭＯＳトランジスタ構造を有し、ゲートは選択ラインＳＬ１，ＳＬ２に各々接続される。各セルトランジスタＣＴ１〜ＣＴ８は制御ゲートと基板の間に位置したフローティングゲートを有する空乏型ＭＯＳトランジスタ構造を有する。各制御ゲートは制御ラインＣＬ１〜ＣＬ８に各々接続される。前記各ビットラインＢＬ１〜ＢＬ１０２４は高電位のプログラム電圧を供給するための各高電圧供給回路ＨＶに、さらには外部から入力されるデータがロードされる各ビットラインラッチ回路ＬＴに、さらにはプログラム検証動作の間に検証電流を供給する電流源回路ＣＳに、そしてビットラインラッチ回路ＬＴのデータを相補（Ｃｏｍｐｌｅｍｅｎｔａｒｙ）させるための各プログラム検証回路ＰＣに接続される。
【０００５】
高電圧供給回路ＨＶはトランジスタＰＴ１，ＰＴ２とポンピングキャパシタＣ１で構成された一般的な高電圧ポンピング回路である。トランジスタＰＴ１のドレインはプログラム電圧Ｖｐｐに接続され、トランジスタＰＴ１のゲートはビットラインＢＬ１に接続され、トランジスタＰＴ１のソースはトランジスタＰＴ２のゲートに接続される。トランジスタＰＴ２のドレインはポンピングキャパシタＣ１の一電極に接続され、トランジスタＰＴ２のソースはビットラインＢＬ１に接続される。ポンピングキャパシタＣ１はクロック信号φｐｐがハイになる時キャパシタＣに貯蔵された電荷をトランジスタＰＴ２を通じてビットラインＢＬ１に放電し、ビットラインＢＬ１に消去電圧又はプログラム禁止電圧を供給する。
【０００６】
ビットラインラッチ回路ＬＴは２個のインバータＩＮＶ１，ＩＮＶ２と伝達トランジスタＴＴ１から成る。インバータＩＮＶ１，ＩＮＶ２は一つのインバータ入力が他のインバータ出力に接続されるように接続される。伝達トランジスタＴＴ１のゲートはクロック信号φ１に接続され、トランジスタＴＴ１の第１電流端子（ドレイン或いはソース）はビットラインに接続され、トランジスタＴＴ１の第２電流端子（ソース或いはドレイン）はインバータＩＮＶ２の入力に接続される。従って、ビットラインラッチ回路ＬＴはクロック信号φ１の高電位の間にターンオンされる伝達トランジスタＴＴ１を通じてビットライン上に印加された外部データを受け入れてラッチする。
【０００７】
電流源回路ＣＳは各ビットラインと共通の基準電流設定回路ＲＣに接続された複数の出力回路ＯＳで構成され、回路ＲＣ、ＯＳは全て出力回路ＯＳに対した基準電流を設定するために周知のように電流ミラー回路形態に相互接続される。共通基準電流設定回路ＲＣは電源電圧Ｖｃｃと接地電圧Ｖｓｓの間に接続されたＰチャンネルＭＯＳトランジスタＭ１とＮチャンネルＭＯＳトランジスタＭ２，Ｍ３で構成される。ＰチャンネルＭＯＳトランジスタＭ１のドレイン及びゲートは相互接続されている。ＮチャンネルＭＯＳトランジスタＭ２のゲートは基準電圧Ｖｒｅｆに接続され、ＮチャンネルＭＯＳトランジスタＭ３のゲートはクロック信号φ２に接続される。各出力回路ＯＳは電源電圧Ｖｃｃと各ビットラインの間に接続されたＰチャンネルＭＯＳトランジスタＭ４とＮチャンネルＭＯＳトランジスタＭ５で構成される。ＰチャンネルＭＯＳトランジスタＭ４のゲートはＰチャンネルＭＯＳトランジスタＭ１のゲートに接続され、ＮチャンネルＭＯＳトランジスタＭ５のゲートはクロック信号φ２に接続される。だから、電流源回路ＣＳはクロック信号φ２がハイになる時活性化され、その結果ＰチャンネルＭＯＳトランジスタＭ４のドレイン電流は検証電流としてビットラインＢＬ１に供給される。
【０００８】
プログラム検証回路ＰＣはＭＯＳトランジスタＭ６で構成され、ＭＯＳトランジスタＭ６のドレインはビットラインラッチ回路ＬＴのインバータＩＮＶ１の入力に接続され、トランジスタＭ６のソースは接地電圧Ｖｓｓに接続され、トランジスタＭ６のゲートはビットラインに接続される。従って、ビットラインに供給される検証電流が選択されたセルを含むＮＡＮＤ構造になったセルストリングを通じて接地に流れない時、ビットラインの電位はハイになり、その結果ＭＯＳトランジスタＭ６（プログラム検証回路）はターンオンされる。これはラッチ回路ＬＴのインバータＩＮＶ１の入力を低い電位（例えば、接地電圧）とする。だから、選択されたセルのプログラムが不十分な時、プログラム検証回路ＰＣは不十分なプログラムを点検してビットラインラッチ回路ＬＴのデータを相補させる。
【０００９】
図１で、参照符号ＰＳはプログラム状態検出回路である。このプログラム状態検出回路ＰＳは全ての選択されたセルが最適の状態にプログラムされる時正常の検出信号を出力し、少なくとも一つの選択されたセルが不十分にプログラムされると非正常の検出信号を出力する。プログラム状態検出回路ＰＳはノードＮ１をプルアップするためのプルアップ回路として動作するＰチャンネルＭＯＳトランジスタＭ７とプルアップロードとして使用される空乏型ＭＯＳトランジスタＭ８を有する。ＰチャンネルＭＯＳトランジスタＭ７のソースは電源電圧Ｖｃｃに接続され、トランジスタＭ７のゲートはクロック信号φ３に接続され、トランジスタＭ７のドレインは空乏型ＭＯＳトランジスタＭ８のソースと接続される。空乏型ＭＯＳトランジスタＭ８のゲート及びドレインは相互にそしてノードＮ１に接続される。プルダウン回路ＰＤとして動作する複数のＮチャンネルＭＯＳトランジスタＰＤ１〜ＰＤ１０２４はノードＮ１と接地電圧Ｖｓｓの間に並列に接続されている。各ＭＯＳトランジスタのゲートはビットラインラッチ回路ＬＴの相補出力Ｑバーに接続される。ノードＮ１はインバータＩＮＶ３を通じてＮＯＲゲートＧの一入力端子に接続される。ＮＯＲゲートＧの他の入力端子はクロック信号φ４バーに接続される。
【００１０】
以下、図１に図示された不揮発性半導体メモリ装置のプログラム及び検証動作を詳細に説明する。
【００１１】
セルアレイにデータをプログラムするためには、まず、セルのスレッショルド電圧を（−）電位に低くするための消去動作が実行される。消去動作が完了した後、外部データがビットラインラッチ回路ＬＴにロードされる。この時、ロジックハイレベルがデータ“１”としてロードされ、ロジックローレベルがデータ“０”としてロードされる。クロック信号φ１がハイになる時ビットラインラッチ回路ＬＴにデータがロードされる。万一ビットラインラッチ回路ＬＴにラッチされたデータがロジックハイレベルであると、高電圧供給回路ＨＶが動作してビットライン上の電圧をプログラム禁止電圧に設定する。だから、選択されたセルトランジスタ（例えばセルトランジスタＣＴ６）のゲートとドレインの間の電位差がＦ−Ｎトンネリングを生じるには不十分なので、選択されたセルトランジスタＣＴ６は続けて負のスレッショルド電圧を維持する。
【００１２】
一方、ビットラインラッチ回路ＬＴにロードされたデータがロジックローレベルであると、高電圧供給回路ＨＶは動作しなく、ビットライン上の電圧を０Ｖに維持する。従って、選択されたセルトランジスタＣＴ６のゲートとドレイン間の電位差によってＦ−Ｎトンネリングが生じるから、フローティングゲートに電荷が注入され、その結果セルのスレッショルド電圧は（＋）電位になる。でも、不十分にプログラムされると、選択されたセルトランジスタＣＴ６は設定された正のスレッショルド電圧を得ることができない。プログラム動作を完了した後セルが正しくプログラムされたかの可否を点検するために、電流源回路ＣＳはクロック信号φ２のハイ状態に応答して動作し、その結果検証電流がビットラインＢＬに供給される。この時、制御ラインＣＬ１〜ＣＬ５、ＣＬ７、ＣＬ８は電源電圧Ｖｃｃの供給を受け、制御ラインＣＬ６は所定の検証電圧（例えば、＋０．８Ｖ）の供給を受ける。だから、選択されたセルトランジスタＣＴ６のスレッショルド電圧が負電位を有する時、検証電流はセルストリングＣＥを通じて接地に流れる。従って、ビットラインＢＬ１は０Ｖに維持される。
【００１３】
一方、選択されたセルのスレッショルド電圧が正の電位（Ｖｔｈ＞０．８Ｖ）を有する時、ビットラインＢＬ１は検証電流がセルストリングＣＥを通じて流れないのでハイになる。でも、選択されたセルが不十分にプログラムされると（これはセルのスレッショルド電圧が０．８Ｖより低いことを意味する）、検証電流は接地に抜け出し、ビットラインＢＬ１が依然０Ｖに維持されるようになる。
【００１４】
プログラム検証動作の間に、選択されたセルのビットラインが低い電位に維持される時、プログラム検証手段であるトランジスタＭ６はターンオフされ、その結果ビットラインラッチ回路ＬＴ内のデータは相補されない。だから、初期ロードされた状態のデータ“０”が出力Ｑ上に続けて維持される。同時に、ビットラインラッチ回路ＬＴの相補出力Ｑバー上にデータ“１”が維持されるので、ゲートが出力Ｑバーに接続されたプログラム状態検出回路ＰＳのプルダウントランジスタＰＤ１は続けてターンオン状態に維持される。だから、プログラムが正常に実行されないと、プログラム状態検出回路ＰＳのクロック信号φ５はロジックローレベルに維持される。
【００１５】
再プログラム動作の間、ビットラインラッチ回路ＬＴのデータ“０”がクロック信号φ１のハイ区間の間にビットラインＢＬ１に再び供給されるので、不十分にプログラムされた選択されたセルのフローティングゲートに電荷が反復的に注入される。だから、セルのスレッショルド電圧はより高い正の電位を有する。万一プログラムサイクルを順次に反復することでより高い正の電位を有する選択されたセルのスレッショルド電圧の上昇によって選択されたセルが検証電圧（０．８Ｖ）によってターンオンされないと、ビットライン電位はロジックハイレベルになってトランジスタＭ６をターンオンさせる。だから、ビットラインラッチ回路ＬＴの出力Ｑにロードされたデータ“０”は データ“１”に相補され、反転出力Ｑバーのデータ“１”はデータ“０”に相補され、その結果プログラム状態検出回路ＰＳのプルダウントランジスタＰＤ１はターンオフされる。このような反復的な動作によると、ページバッファＰＢの全てのデータビット即ち、全てのビットラインラッチ回路の相補出力Ｑバーはデータ“０”になる。そして、全ての相補出力Ｑバーがロジックローレベルになる時、プログラム状態検出回路ＰＳのクロック信号φ５はロジックハイレベルになる。即ち、選択されたセルが全て要求される状態にプログラムされる。
【００１６】
【発明が解決しようとする課題】
前述した説明で周知のように、図１に図示されたプログラム状態検出回路ＰＳを含んだ不揮発性半導体メモリ装置は１ページに関連したセルトランジスタのプログラム状態を同時に検証することができる長所を有する。でも、従来技術による不揮発性半導体メモリ装置は欠陥列によってフェールデバイス（ｆａｉｌ  ｄｅｖｉｃｅ）に分類され、これは収率（Ｙｉｅｌｄ）低下原因に作用する。これをより具体的に説明すると、次のようである。
【００１７】
図２を参照すると、隣接した２個のビットラインラッチ回路ＬＴ１，ＬＴ２が点線に表示されたように相互電気的に接続される場合、ビットラインラッチ回路ＬＴ１，ＬＴ２に接続されたビットラインＢＬ１，ＢＬ２は、当業者に周知のように、セルアレイに設けられる冗長ビットライン（図示せず）に代替される。でも、相互電気的に接続されたビットラインラッチ回路ＬＴ１，ＬＴ２の相補出力Ｑバーはいつも相反したロジック状態を有するので、プログラム検証動作の間にビットラインラッチ回路ＬＴ１，ＬＴ２の相補出力Ｑバーに各々接続されたプルダウントランジスタＰＤ１，ＰＤ２のうち一つはいつもターンオンされる。例えば、ビットラインＢＬ１又はＢＬ２がロジックローレベルに設定される場合、電気的に接続されたビットラインＢＬ２又はＢＬ１はやはりロジックローレベルに設定され、その結果、図２に図示されたように、ビットラインラッチ回路ＬＴ１の相補出力Ｑバーはロジックハイレベルになる。これはビットラインラッチ回路ＬＴ１の相補出力Ｑバーに接続されたプルダウントランジスタＰＤ１をターンオンさせることになる。だから、プログラム状態検出回路ＰＳは一連のプログラム動作及びプログラム検証動作が定まった回数ほど反復される時までプログラムフェールを示すロジックローレベルのクロック信号φ５を出力する。即ち、不揮発性半導体メモリ装置はフェールデバイスに分類される。
【００１８】
万一任意のビットラインが接地電圧に接続されると（これは欠陥列に分類され対応する冗長ビットラインに代替される）、接地されたビットラインに接続されたビットラインラッチ回路相補出力Ｑバーはいつもロジックハイレベルに維持され、その結果プログラム状態検出回路ＰＳはプログラムフェールを示すロジックローレベルのクロック信号φ５を出力する。そして、プログラムされるセルトランジスタが消去状態に維持される時（消去状態を有するセルトランジスタを含むセルストリングに接続されたビットラインは対応する冗長ビットラインに代替される）、接地されたビットラインに接続されたビットラインラッチ回路の相補出力Ｑバーはいつもロジックハイレベルに維持され、その結果プログラム状態検出回路ＰＳはプログラムフェールを示すロジックローレベルのクロック信号φ５を出力する。
【００１９】
前述したように、例え欠陥ビットラインが対応する冗長ビットラインに代替されるとしても、従来技術によるプログラム状態検出回路がそのような欠陥ビットラインによっていつもプログラムフェールを知らせるロジックローレベルのクロック信号φ５を出力するから、不揮発性半導体メモリ装置はフェールデバイスに分類される。これは収率低下原因になる。
【００２０】
本発明の目的は欠陥列による収率低下を防止することができるプログラム状態検出回路を有する不揮発性半導体メモリ装置及びそれのプログラム検証方法を提供することにある。
【００２１】
【課題を解決するための手段】
（構成）
本発明による不揮発性半導体メモリ装置はＮＡＮＤ型フラッシュメモリ装置であり、一連のプログラム動作、検証読み動作及びＹ−ＳＣＡＮ動作によって実行されるプログラムサイクルを有する。メモリ装置はメモリセルアレイ、ページバッファ回路、アドレス発生回路、列選択回路、カウントアップ信号発生回路、そしてプログラムパス／フェール判別回路を含む。メモリセルアレイは複数の行、複数の列、複数の冗長列、そして行及び列の交差領域に各々配列された複数個のメモリセルを有する。ページバッファ回路は列を通じてメモリセルアレイからプログラムされたデータビットを読んで、そのように読まれたプログラムされたデータビットをラッチする。アドレス発生回路はＹ−ＳＣＡＮ動作の間にカウントアップパルス信号に応答して列アドレスを発生し、列選択回路は列アドレスに応答して列のうち一部を選択する。列選択回路はアドレス発生回路から出力された列アドレスをデコーディングする列デコーダと、列デコーダによってデコーディングされた列アドレスに応答して列のうち一部を選択する列パスゲート回路、そして列アドレスを受け入れる冗長回路で構成される。ここで、冗長回路は列アドレスに対応する列が少なくとも一つの欠陥列を含む時列デコーダが非活性化されるようにし、欠陥列が列パスゲート回路を通じて対応する冗長列に代替されるようにする。
【００２２】
続いて、カウントアップ信号発生回路はＹ−ＳＣＡＮ動作の間に読み回路にラッチされたプログラムされたデータビットのうち選択された列に対応するプログラムされたデータビットを受け入れる。その次に、カウントアップ信号発生回路はそのように入力されたプログラムされたデータビットが全てプログラム状態を示す時までカウントアップパルス信号を発生する。カウントアップ信号発生回路は選択された列に対応するプログラムされたデータビットが各々プログラム状態を示すかの可否を判別して発振制御信号を発生するデータ状態判別回路と、発振制御信号に応答してカウントアップパルス信号を発生する発振回路で構成される。再び言って、データ状態判別回路は選択された列に対応するプログラムされたデータビット全てがプログラム状態を示す時発振制御信号を活性化させ、その結果列アドレスを増加させるためのカウントアップパルス信号が活性化される。その上データ状態判別回路は選択された列に対応するプログラムされたデータビットのうち少なくとも一つのデータビットが不十分にプログラムされた状態を示す時発振制御信号を非活性化させ、その結果カウントアップパルス信号が非活性化される。
【００２３】
プログラムパス／フェール判別回路はカウントアップパルス信号と列アドレスに応答してプログラムパス及びプログラムフェールのうち一つを知らせるパス／フェールフラグ信号を発生する。プログラムパス／フェール判別回路は発振制御信号が活性化され、列アドレスの全てのビットがロジックハイレベルである時、プログラムパスを知らせるロジックハイレベルのパス／フェールフラグ信号を発生する。そして、プログラムパス／フェール判別回路は発振制御信号が非活性化される時そして発振制御信号が活性化され、列アドレスのビットのうち少なくとも一つがロジックローレベルである時、プログラムフェールを知らせるロジックローレベルのパス／フェールフラグ信号を発生する。
【００２４】
（作用）
このような装置によると、冗長情報を含む列アドレスに従って列パスゲート回路によって選択されるデータビットを利用してプログラムパス／フェール判別動作が実行される。だから、欠陥ビットラインはプログラムパス／フェールを点検する動作に影響を及ぼさない。
【００２５】
【発明の実施の形態】
以下、図面を参照しながら本発明の好適な実施の形態を説明する。
【００２６】
（実施の形態１）
図３を参照すると、本発明による不揮発性半導体メモリ装置のブロック図が図示されている。図３の不揮発性半導体メモリ装置即ち、ＮＡＮＤ型フラッシュメモリ装置は情報を貯蔵するためのメモリセルアレイ１００を含んで、複数のビットラインＢＬ１〜ＢＬｉ（ｉは整数）及び複数の冗長ビットラインＲＢＬ１〜ＲＢＬｊ（ｊは整数）がメモリセルアレイ１００を通じて列方向に配列される。冗長ビットラインＲＢＬ１〜ＲＢＬｊはビットラインＢＬ１〜ＢＬｉのうち欠陥が生じたビットラインを代替するために使用される。ビットラインＢＬ１〜ＢＬｉ及び冗長ビットラインＲＢＬ１〜ＲＢＬｊの各々には、図１で説明されたそして図１に図示されたものと同一の構造を有するセルストリングが各々接続されている。ビットラインＢＬ１〜ＢＬｉと冗長ビットラインＲＢＬ１〜ＲＢＬｊが接続されたページバッファ回路１１０はプログラムサイクルのプログラム動作の間にビットライン及び冗長ビットラインをプログラムされるデータ状態によって駆動するドライバとして使用され、プログラムサイクルのプログラム検証動作の間（具体的には、検証読み動作の間）選択されたページに接続されたセルトランジスタにプログラムされたデータビットを感知する感知増幅器（又は、読み回路）として使用され、図１に図示されたものと同一に構成される。
【００２７】
続いて図３を参照すると、フラッシュメモリ装置には、アドレス発生回路１２０、列デコーダ１３０、列パスゲート回路１４０、冗長回路１５０、そしてプログラム状態検出回路１９０が設けられる。
【００２８】
図３のアドレス発生回路１２０は周知のようにカウントで構成され、プログラム検証動作の間にプログラム状態検出回路１９０から出力されるカウントアップパルス信号ＹＣＮＴＵＰに応答して列アドレスＡｉ（この実施形態で、ｉ＝１〜８）を発生する。列デコーダ１３０はアドレス発生回路１２０で生成された列アドレスＡｉをデコーディングし、そのデコーディングされた列アドレスは列パスゲート回路１４０に伝達される。列パスゲート回路１４０はデコーディングされた列アドレスに対応するビットラインＢＬ１〜ＢＬｉのうちの一部を選択する。
即ち、ページバッファ回路１１０に設けられるページバッファのうち、選択されたビットラインに対応するページバッファが選択される。そのように選択されたページバッファに貯蔵されているプログラムされたデータビット（プログラム動作が実行された後、検証読み動作の間に読まれたデータビットを意味する）はプログラム検証動作の間に列パスゲート回路１４０を通じてプログラム状態検出回路１９０に順次伝達される。
【００２９】
一方、アドレス発生回路１２０で生成された列アドレスは、図３に図示されたように、冗長回路１５０に伝達される。冗長回路１５０は列アドレスに対応するビットライン内に欠陥ビットラインが存在するかの可否を判別する。選択されたビットラインが少なくとも一つの欠陥ビットラインを含むと、冗長回路１５０は列デコーダ１３０を非活性化させ、これと同時に欠陥ビットラインに対応する冗長ビットラインが列パスゲート回路１４０によって選択されるようにする。即ち、列アドレスに対応する列中に欠陥列が存在する場合（即ち、冗長が要求される時）、欠陥列に対応するビットラインは冗長回路１５０及び列パスゲート回路１４０によって選択されなくなる一方、欠陥列に対応する冗長ビットラインがそれらの回路１４０，１５０によって選択される。
【００３０】
各プログラムサイクルのＹ−ＳＣＡＮ動作の間に、選択されたページバッファにラッチされたプログラムされたデータビットは列パスゲート回路１４０を通じてプログラム状態検出回路１９０に伝達され、プログラム状態検出回路１９０はそのように伝達されたデータビットが全て要求される状態、即ち、プログラム状態を示すかの可否を判別する。万一データビットの全てがプログラム状態を示すと、プログラム状態検出回路１９０から出力されるカウントアップパルス信号ＹＣＮＴＵＰはハイ−ロー遷移を有し、その結果アドレス発生回路１２０から出力される列アドレスが‘１’増加される。そのように増加された列アドレスが列デコーダ１３０及び冗長回路１５０に伝達されることによって、列パスゲート回路１４０によって次の列が選択される。万一データビットのうち少なくとも一つのデータビットが不十分にプログラムされた状態を示すと、アドレス発生回路１２０が非活性化されるように（これは依然に生成された列アドレスが増加されることなくそのまま維持されることを意味する）プログラム状態検出回路１９０から出力されるカウントアップパルス信号ＹＣＮＴＵＰはロジックハイレベルに維持される。ここで、列デコーダ１３０、列パスゲート回路１４０そして冗長回路１５０は列選択回路を構成する。
【００３１】
続いて図３を参照すると、本発明によるプログラム状態検出回路１９０はデータ状態判別回路１６０、発振回路１７０そしてプログラムパス／フェール判別回路１８０を含む。列パスゲート回路１４０から伝達されるバイト／ワード単位のデータビットＬｉが要求されるプログラム状態を示す時、データ状態判別回路１６０は発振回路１７０を動作させるための発振制御信号ＬＴｏを発生する。データ状態判別回路１６０は図４に図示されたように接続された２個のＮＡＮＤゲート１６１，１６２及び一つのＮＯＲゲート１６３で構成される。図４で示すように、列パスゲート回路１４０を通じてページバッファ回路１１０から伝達される１バイトのデータビットＬ１〜Ｌ８の全てがロジックハイレベルを有する時（即ち、全てのデータビットＬ１〜Ｌ８がプログラム状態を示す時）、発振制御信号ＬＴｏはロジックハイレベルになる。万一少なくとも一つのデータビットがロジックローレベルを有する時（即ち、少なくとも一つのデータビットが不十分にプログラムされた状態を有する時）、発振制御信号ＬＴｏはロジックローレベルになる。
【００３２】
再び図３を参照すると、プログラムパス／フェール点検区間を知らせる信号ＰＧＭＳＣＮがハイに活性化される時発振回路１７０の出力信号、即ちカウントアップパルス信号ＹＣＮＴＵＰがロジックローレベルからロジックハイレベルに遷移される。そして、発振回路１７０はデータ状態判別回路１６０から出力される発振制御信号ＬＴｏの状態に従ってロジックハイレベルからロジックローレベルに遷移されるカウントアップパルス信号ＹＣＮＴＵＰを出力する。例えば、列パスゲート回路１４０を通じて伝達されるデータビットＬ１〜Ｌ８がプログラム状態を示す時発生されたロジックハイレベルの発振制御信号ＬＴｏが印加される場合、発振回路１７０はアドレス発生回路１２０からの列アドレスが‘１’増加されるようにロジックハイレベルからロジックローレベルに遷移されるカウントアップパルス信号ＹＣＮＴＵＰを出力する。
【００３３】
プログラム検証動作の間、プログラムパス／フェール判別回路１８０はアドレス発生回路１２０で生成された列アドレスと発振回路１７０から出力されるカウントアップパルス信号ＹＣＮＴＵＰに応答してプログラムパス或いはプログラムフェールを知らせるフラグ信号ＰＦｉを発生する。プログラムパス／フェール判別回路１８０は図５に図示されたように接続された２個のＮＡＮＤゲート１８１，１８２、インバータ１８３そしてＮＯＲゲート１８４で構成される。アドレス発生回路１２０から出力される列アドレスの全てのビットＡ１〜Ａ８が各々ロジックハイレベルであり、カウントアップパルス信号ＹＣＮＴＵＰがロジックハイレベルである時、プログラムパス／フェール判別回路１８０はプログラムパスを知らせるロジックハイレベルのパス／フェールフラグ信号ＰＦｉを発生する。万一列アドレスビットのうち少なくとも一つがロジックローレベルであると、回路１８０はカウントアップパルス信号ＹＣＮＴＵＰのロジック状態に関係なしにプログラムフェールを知らせるロジックローレベルのパス／フェールフラグ信号ＰＦｉを発生する。そして、カウントアップパルス信号ＹＣＮＴＵＰがロジックローレベルである時、回路１８０は例え列アドレスビットが全てロジックハイレベルであるとしてもプログラムフェールを知らせるロジックローレベルのパス／フェールフラグ信号ＰＦｉを発生する。
【００３４】
ページバッファ回路１１０にラッチされたプログラムされたデータビットを直接利用してプログラム状態を点検する従来技術のプログラム状態検出回路ＰＳと異なって、本発明によるフラッシュメモリ装置のプログラム状態検出回路１９０は冗長情報を含む列アドレスに従って列パスゲート回路１４０を通じて伝達されるプログラムデータビットを利用してプログラム状態を点検する。従って、欠陥ビットラインが冗長回路１５０の制御によって対応する冗長ビットラインに代替されたので、本発明のプログラム状態検出回路１９０は欠陥ビットラインによって影響を受けない。即ちフラッシュメモリ装置が欠陥ビットラインによってフェールデバイスに分類される問題を解決することができる。
【００３５】
図６は本発明によるプログラムアルゴリズムを示す流れ図である。以下、図６乃至図８を参照しながら本発明のフラッシュメモリ装置の好適な形態を説明する。
【００３６】
前述したように、プログラムを実行する前に全てのセルトランジスタのスレッショルド電圧を（−）電位にするための消去動作が実行された後、プログラムが図６のプログラムアルゴリズムに従って実行される。プログラムが始まると、段階Ｓ１００ではプログラムされるデータがページバッファ回路１１０にロードされ、次段階Ｓ１１０では列アドレスがリセットされる。即ち、アドレス発生回路１２０がリセットされる。以後、ロードされたデータをメモリセルアレイ１００に貯蔵するための一連のプログラムサイクルが次のように実行される。
【００３７】
まず段階Ｓ１２０でプログラム動作が前述されたことと同一の方法で所定時間の間に実行された後、段階Ｓ１３０に進行する。段階Ｓ１３０では選択されたページのメモリセルにプログラムされたデータビットがページバッファ回路１１０によって感知されラッチされる。即ち、検証読み動作が実行される。以後、Ｙ−ＳＣＡＮ動作が次のように実行される。
【００３８】
Ｙ−ＳＣＡＮ動作が始まると、図７に図示されたように、Ｙ−ＳＣＡＮ動作を知らせる信号ＰＧＭＳＣＮがロジックローレベルからロジックハイレベルに遷移する。バイト単位の列に対応するビットラインは段階Ｓ１１０でリセットされた列アドレスビットＡ１〜Ａ８（例えば、‘０’）に従って列デコーダ１３０（或いは、冗長回路１５０）及び列パスゲート回路１４０によって選択される（選択された列が一つの欠陥列を含む場合、一つの冗長ビットラインと７個のビットラインが選択される）。信号ＰＧＭＳＣＮがロジックローレベルからロジックハイレベルに遷移する時、プログラム状態検出回路１９０の発振回路１７０から出力されるカウントアップパルス信号ＹＣＮＴＵＰはロジックローレベルからロジックハイレベルに遷移する。
【００３９】
選択された列に対応するページバッファにラッチされたバイト単位のプログラムされたデータビットＬ１〜Ｌ８は列パスゲート回路１４０を通じてデータ状態判別回路１６０に伝達される。段階Ｓ１５０で入力されたデータビットＬ１〜Ｌ８が全てロジックハイレベルと判別される時、データ状態判別回路１６０から出力される発振制御信号ＬＴｏはロジックハイレベルに維持される。この時、発振回路１７０はロジックハイレベルの発振制御信号ＬＴｏに応答してロジックハイレベルからロジックローレベルに遷移するカウントアップパルス信号ＹＣＮＴＵＰを出力する。プログラムパス／フェール判別回路１８０は列アドレスビットが全てロジックローレベルであるからロジックローレベルのパス／フェールフラグ信号ＰＦｉを出力する。これと同時に、アドレス発生回路１２０はカウントアップパルス信号ＹＣＮＴＵＰのハイ−ロー遷移に応答して列アドレスを‘１’増加させる（段階Ｓ１６０）。
【００４０】
そのように増加された列アドレスが最後列アドレスであるかの可否が段階Ｓ１７０で判別される。万一最後列アドレスではないと、列デコーダ１３０、冗長回路１５０、そして列パスゲート回路１４０で構成された列選択回路はそのように増加された列アドレスに応答してバイト単位の列を選択する（ただバイト単位のビットラインが選択されることや、欠陥列がある場合冗長ビットライン及び正常なビットラインが選択されることができるのは自明である）。選択された列に対応するページバッファにラッチされたバイト単位のプログラムされたデータビットＬ１〜Ｌ８は列パスゲート回路１４０を通じてデータ状態判別回路１６０に伝達される。入力されたデータビットＬ１〜Ｌ８が全てロジックハイレベルと判別される場合（データビットが全てプログラム状態を示す時）、次動作は前述したことと同一に実行される。この時、プログラムパス／フェール判別回路１８０の出力ＰＦｉは続けてロジックローレベルに維持される。
【００４１】
続いて、増加された列アドレスに従って選択されたデータビットが常にプログラムされた状態を示すと、前述された一連の動作はアドレス発生回路１２０で生成された列アドレスビットが全てロジックハイレベルになる時まで（即ち、全ての列が選択される時まで）反復的に実行される。その結果、図７に図示されたように、アドレスビットが全てロジックハイレベルでありカウントアップパルス信号ＹＣＮＴＵＰがロジックローレベルからロジックハイレベルに遷移する時、プログラムパス／フェール判別回路１８０から出力されるパス／フェールフラグ信号ＰＦｉはロジックローレベルからロジックハイレベルに遷移する。これは選択されたページに接続された全てのセルトランジスタが正しくプログラムされたことを意味する。
【００４２】
一方、列アドレスビットが全てロジックハイレベルになる以前に（最後列アドレスが生成される以前に）、列アドレスに対応する選択されたページバッファからデータ状態判別回路１６０に伝達されたデータビットＬ１〜Ｌ８のうち少なくとも一つのデータビットがロジックローレベルを有すると（即ち、少なくとも一つのデータビットが不十分にプログラムされると）、図８に図示されたように、発振制御信号ＬＴｏはロジックハイレベルからロジックローレベルに非活性化される。これは発振回路１７０から出力されるカウントアップパルス信号ＰＧＭ＿ＳＣＮがロジックハイレベルに維持されるようにする。従って、列アドレスは増加されることなく以前に増加された値に維持される。その上、図７に図示されたように、信号ＹＣＮＴＵＰは発振制御信号ＬＴｏのハイ−ロー遷移によってロジックローレベルになる。この時、プログラムパス／フェール判別回路１８０は列アドレスビットの少なくとも一つがロジックローレベルに維持されるので、ロジックローレベルのパス／フェールフラグ信号ＰＦｉを出力する。以後、現在実行されたプログラムサイクルが最後であるかの可否が段階Ｓ１９０で判別される。万一現在実行されたプログラムサイクルが最後であると、プログラムはプログラムフェールとして終了する。万一現在実行されたプログラムサイクルが最後ではないと、定まった回数のプログラムサイクルに従ってプログラム動作、検証読み動作及びＹ−ＳＣＡＮ動作が前述されたことと同一の方法で反復的に実行される。
【００４３】
ここで、以前プログラムサイクルのＹ−ＳＣＡＮ動作でプログラムフェールと判別されたメモリセルを指定した列アドレスは次に実行されるプログラムサイクルのＹ−ＳＣＡＮ動作の始め列アドレスとして使用される。これはＹ−ＳＣＡＮ動作を実行することに必要な時間が短縮されることを意味する。結果的に、全般的なプログラム時間が短縮される。
【００４４】
本発明のプログラムアルゴリズムに従うと、メモリセルアレイ１００に配列されたビットラインのうち欠陥が生じたビットラインは当業者が周知な方法によって対応する冗長ビットラインに代替される。冗長情報を含む列アドレスに従って列選択回路（列デコーダ、冗長回路、そして列パスゲート回路を含む）によって選択された列は欠陥列を含まない。だから、プログラムパス／フェールを点検するために列パスゲート回路１４０を通じてページバッファ回路１１０でデータ状態判別回路１６０に伝達されるデータビットは欠陥がない正常な列に関連したものである。従って、代替された欠陥列はプログラムパス／フェールを判別する動作に影響を及ぼさない。
【００４５】
（実施の形態２）
本発明の第２実施形態によるフラッシュメモリ装置を示すブロック図が図９に図示されている。
【００４６】
図９を参照すると、フラッシュメモリ装置は２個のメモリセルアレイ２００ａ，２００ｂを含み、各メモリセルアレイ２００ａ，２００ｂは図３に図示されたものと同一に構成される。各アレイ２００ａ，２００ｂは別の行（ワードライン）と列（ビットライン）を具備し、‘マット’と呼ばれる。フラッシュメモリ装置はメモリセルアレイ２００ａ，２００ｂの各々に対応するページバッファ回路２１０ａ，２１０ｂ及び列パスゲート回路２２０ａ，２２０ｂを含む。その上、フラッシュメモリ装置には列デコーダ＆冗長回路２３０そしてアドレス発生回路２４０が設けられる。ページバッファ回路２１０ａ，２１０ｂ、列パスゲート回路２２０ａ，２２０ｂ、列デコーダ＆冗長回路２３０、そしてアドレス発生回路２４０は図３の構成要素と同一の機能を実行し、それの説明はだから省略される。
【００４７】
第２実施形態によるフラッシュメモリ装置は２個のメモリセルアレイ２００ａ，２００ｂが同時にプログラムされる機能を有する。以後、このようなプログラム機能を１Ｋプログラムと称する。フラッシュメモリ装置はプログラム状態検出回路３００を含み、この回路３００は列パスゲート回路２２０ａ，２２０ｂを通じて伝達されるデータＤＭ１ｉ，ＤＭ２ｉ（ｉは正の整数）を受け入れ、各データＤＭ１ｉ，ＤＭ２ｉがプログラム状態を有するかの可否を判別する。
【００４８】
メモリセルアレイ２００ａ，２００ｂに配列されたビットラインのうち欠陥が生じたビットラインは当業者に周知の方法に従って対応する冗長ビットラインに代替される。冗長情報を含む列アドレスに従って列デコーダ＆冗長回路２３０そして列パスゲート回路２２０ａ，２２０ｂを通じて選択された列は欠陥列を含まない。だから、プログラムパス／フェールを点検するために列パスゲート回路２２０ａ，２２０ｂを通じてページバッファ回路２１０ａ，２１０ｂからプログラム状態検出回路３００に伝達されるデータビットは欠陥がない正常な列に関連したものとなる。従って、代替された欠陥列はプログラムパス／フェールを判別する動作に影響を及ぼさない。だから、本発明の第２実施形態によると、従来技術で生じる問題点を解決することができる。
【００４９】
続いて図９を参照すると、プログラム状態検出回路３００はメモリセルアレイ２００ａに対応する列パスゲート回路２２０ａを通じて伝達されるデータビットＤＭ１ｉがプログラム状態（例えば、ロジック‘１’）を有するかの可否を判別することと同時に、メモリセルアレイ２００ｂに対応する列パスゲート回路２２０ｂを通じて伝達されるデータビットＤＭ２ｉがプログラム状態（例えば、ロジック‘１’）を有するかの可否を判別する。プログラム状態検出回路３００は判別結果として信号ＰＦ＿ＯＳＣ、ＰＦ＿ＦＳＲ１、ＰＦ＿ＦＳＲ２を出力する。
これに対した説明は以後詳細に説明される。
【００５０】
図１０を参照すると、本発明の第２実施形態によるプログラム状態検出回路３００を示すブロック図が図示されている。プログラム状態検出回路３００は２個のデータ状態判別部３１０，３１２、第１乃至第３レジスタ３１４，３１６，３２８、発振器コントローラ３２４、そして発振器３２６を含む。
【００５１】
データ状態判別部３１０，３１２はメモリセルアレイ２００ａ，２００ｂに各々対応する。データ状態判別部３１０は、対応するメモリセルアレイ２００ａから読まれたデータビットのうち列パスゲート回路２２０ａを通じて伝達されたデータビットＤＭ１ｉ（例えば、バイト単位のデータビット）が全てプログラム状態を有するかの可否を判別し、判別結果として信号ｐｆ＿ｄＭ１ＦＡＩＬを出力する。同じように、データ状態判別部３１２は対応するメモリセルアレイ２００ｂから読まれたデータビットのうち列パスゲート回路２２０ｂを通じて伝達されたデータビットＤＭ２ｉ（例えば、バイト単位のデータビット）が全てプログラム状態を有するかの可否を判別し、判別結果として信号ｐｆ＿ｄＭ２ＦＡＩＬを出力する。
【００５２】
データ状態判別部３１０の好ましい具体例を示す図１１を参照すると、データ状態判別部３１０は図示されたように接続された３個のＮＡＮＤゲート５０１，５０２，５０６、ＮＯＲゲート５０３、そして２個のインバータ５０４，５０５で構成される。図１１で、信号ＡＣＰ＿Ｍ１はメモリセルアレイ２００ａの選択有無を示し、選択される時ロジックハイレベルを有する。万一データビットＤＭ１＜０＞〜ＤＭ１＜７＞の全てがロジック‘１’であると（全てがプログラム状態を有すると）、信号ｐｆ＿ｄＭ１ＦＡＩＬはロジックハイレベルになる。これは選択された列に対応するセルトランジスタが要求されるプログラム状態に対応するスレッショルド電圧にプログラムされたことを意味する。これに対して、データビットＤＭ１＜０＞〜ＤＭ１＜７＞のうち少なくとも一つがロジック‘０’であると、信号ｐｆ＿ｄＭ１ＦＩＩＬはロジックローレベルになる。これは選択された列に対応するセルトランジスタが十分にプログラムされないことを意味する。例え図面には図示されなかったが、メモリセルアレイ２００ｂに対応するデータ状態判別部３１２はやはり図１１と同一に構成されることは自明である。
【００５３】
再び図１０を参照すると、第１及び第２レジスタ３１４，３１６は最後プログラムサイクルの間にデータ状態判別部３１０，３１２から出力された信号ｐｆ＿ｄＭ１ＦＡＩＬ，ｐｆ＿ｄＭ２ＦＡＩＬを各々貯蔵する。最後プログラムサイクルで、レジスタ３１４，３１６は対応するデータ状態判別部３１０，３１２から出力された信号ｐｆ＿ｄＭ１ＦＡＩＬ，ｐｆ＿ｄＭ２ＦＡＩＬに応答して信号ｐｆ＿ｆＭ１ＦＡＩＬ，ｐｆ＿ｆＭ２ＦＡＩＬを各々出力する。データ状態判別部３１０に対応する第１レジスタ３１４の好ましい具体例が図１２に図示されている。
【００５４】
図１２を参照すると、第１レジスタ３１４はＡＮＤゲート５０７、３個のＮＡＮＤゲート５０８，５１５，５１６、２個のインバータ５１１，５１３、３個のＮＯＲゲート５０９、５１０、５１４そしてパルス発生器５１２で構成され、図面に図示されたように接続されている。ＮＡＮＤゲート５１５，５１６はＳＲフリップフロップとして動作する。図１２で、信号ＩＮＴ＿Ｓ１ＫＰＧＭは１Ｋプログラム動作を知らせる信号であり、信号ＰＧＭ＿ＦＬＰＭＡＸは最後プログラムサイクルを知らせる信号であり、信号ＲＤ＿ＰＹＳＣＮＥＮはパルス信号でＹ−ＳＣＡＮ動作の始めを知らせる信号である。また、信号ＩＮＴ＿ＰＰＷＲＵＰはパワーアップ時活性化される信号であり、信号ｐｆ＿１ＳＣＮｅｎは発振器コントローラ３２４から提供される信号である。図１２に使用される信号は全てアクティブハイ信号である。
【００５５】
回路動作において、第１レジスタ３１４はパワーアップ時或いは１Ｋプログラムが要求される時初期化され、その結果ＳＲフリップフロップの出力信号ｐｆ＿ｆＭ１ＦＡＩＬはロジックローレベルになる。万一現在実行されるプログラムサイクルが最後ではないと即ち、信号ＰＧＭ＿ＦＬＰＭＡＸがロジックローレベルであると、信号ｐｆ＿ｆＭ１ＦＡＩＬは初期化されたレベル（ロジックローレベル）に維持される。これはＮＡＮＤゲート５１５の一入力ＳＥＴがロジックハイレベルに維持されるからである。結果的に、最後プログラムサイクルではない場合、信号ｐｆ＿ｆＭ１ＦＡＩＬは対応するデータ状態判別部３１０の出力信号ｐｆ＿ｄＭ１ＦＡＩＬに関係なく初期化されたレベルに維持される。これに対して、現在実行されるプログラムサイクルが最後サイクルである場合、信号ＰＧＭ＿ＦＬＰＭＡＸはロジックローレベルからロジックハイレベルに遷移する。だから、信号ｐｆ＿ｆＭ１ＦＡＩＬは対応するデータ状態判別部３１０から出力される信号ｐｆ＿ｄＭ１ＦＡＩＬに影響を受ける。例えば、データ状態判別部３１０，３１２の出力信号ｐｆ＿ｄＭ１ＦＡＩＬ，ｐｆ＿ｄＭ２ＦＡＩＬがロジックハイレベルである時（即ち、選択された列に対応するセルトランジスタのうち少なくとも一つが十分にプログラムされない時）、ＮＡＮＤゲート５１５の入力ＳＥＴがロジックハイレベルからロジックローレベルに遷移するからレジスタ３１４，３１６の出力信号ｐｆ＿ｆＭ１ＦＡＩＬ，ｐｆ＿ｆＭ２ＦＡＩＬがロジックローレベルからロジックハイレベルに遷移する。
【００５６】
データ状態判別部３１２に対応する第２レジスタ３１６はやはり図１２と同一に構成されることは自明であり、それの説明はだから省略される。前述で分るように、第１及び第２レジスタ３１４，３１６は１Ｋプログラムが実行され現在のプログラムサイクルの最後である時のみ対応するデータ状態判別部３１０，３１２の出力信号ｐｆ＿ｄＭ１ＦＡＩＬ，ｐｆ＿ｄＭ２ＦＡＩＬによって各々影響を受ける。
【００５７】
図１０を参照すると、発振器コントローラ３２４は使用可能（ｅｎａｂｌｅ）回路３１８、使用禁止（ｄｉｓａｂｌｅ）回路３２０そして発振制御信号発生器３２２で構成される。発振制御信号発生器３２２は使用可能回路３１８から出力される使用可能信号ＰＦ＿ＳＴＡＲＴに応答して発振制御信号ｐｆ＿１ＳＣＮｅｎを活性化させ、使用禁止回路３２０から出力される使用禁止信号ＰＦ＿ＰＰＦＥＮＤに応答して発振制御信号ｐｆ＿１ＳＣＮｅｎを非活性化させる。
【００５８】
発振制御信号発生器３２２の好ましい具体例が図１３に図示されている。図１３を参照すると、発振制御信号発生器３２２は図面に図示されたように接続された５個のインバータ５１７，５１９，５２２，５２３，５２４、ＮＯＲゲート５１８、フリップフロップ５２０そして遅延部５２１で構成される。フリップフロップ５２０はラッチとして機能し、パワーアップ時初期化される。フリップフロップ５２０はクロック信号としての信号ＲＤ＿ＰＹＳＣＮＥＮのハイ−ロー遷移に同期して使用可能回路３１８から出力される使用可能信号ＰＦ＿ＳＴＡＲＴをラッチする。万一使用可能信号ＰＦ＿ＳＴＡＲＴがロジックハイレベルであると、発振制御信号ｐｆ＿１ＳＣＮｅｎはロジックローレベルからロジックハイレベルに遷移する。これによって、発振器３２６は所定周期を有する発振信号ＰＦ＿ＯＳＣを発生する。これに対して、使用可能信号ＰＦ＿ＳＴＡＲＴがロジックローレベルであると、発振制御信号ｐｆ＿１ＳＣＮｅｎは続けてロジックローレベルの初期状態に維持される。これによって、発振器３２６は動作しない。その上、フリップフロップ５２０は使用禁止回路３２０から出力される使用禁止信号ＰＦ＿ＰＰＦＥＮＤがロジックローレベルからロジックハイレベルに遷移する時初期化される。これは発振制御信号ｐｆ＿１ＳＣＮｅｎがロジックハイレベルからロジックローレベルに遷移するようにする。遅延部５２１は相補器として動作し、入力信号ＤＩのロー−ハイ遷移を所定時間遅延させ出力する。一方、入力信号ＤＩのハイ−ロー遷移は遅延なしに出力される。
【００５９】
使用可能回路３１８の好ましい具体例を示す図１４を参照すると、図面に図示されたように接続された２個のＮＡＮＤゲート５２５，５２６、２個のＮＯＲゲート５２７，５３０、２個のＡＮＤゲート５２８，５２９そしてインバータ５３１が使用可能回路３１８を構成する。回路動作において、現在実行されるプログラムサイクルが最後プログラムサイクルではない時（信号ＩＮＴ＿Ｓ１ＫＰＧＭ＝‘Ｈ’、信号ＰＧＭ＿ＦＬＰＭＡＸ＝‘Ｌ’）、使用可能回路３１８はデータ状態判別部３１０，３１２から出力される信号ｐｆ＿ｄＭ１ＦＡＩＬ，ｐｆ＿ｄＭ２ＦＡＩＬに応答してロジックローレベル或いはロジックハイレベルの使用可能信号ＰＦ＿ＳＴＡＲＴを発生する。例えば、信号ｐｆ＿ｄＭ１ＦＡＩＬ，ｐｆ＿ｄＭ２ＦＡＩＬのうちいずれか一つでもロジックハイレベル（選択されたデータに対したプログラム失敗を意味する）であると、使用可能信号ＰＦ＿ＳＴＡＲＴはロジックローレベルになる。前述したように、発振制御信号ｐｆ＿１ＳＣＮｅｎがロジックローレベルに維持されるようにし、その結果発振器３２６から発振信号ＰＦ＿ＯＳＣが生成されない（Ｙ−ＳＣＡＮ動作が実行されない）。これに対して、信号ｐｆ＿ｄＭ１ＦＡＩＬ，ｐｆ＿ｄＭ２ＦＡＩＬが全てロジックローレベル（選択されたデータに対したプログラム成功を意味する）であると、使用可能信号ＰＦ＿ＳＴＡＲＴはロジックハイレベルになる。これは発振制御信号ｐｆ＿１ＳＣＮｅｎがロジックハイレベルになるようにし、その結果発振器３２６は所定周期を有する発振信号ＰＦ＿ＯＳＣを出力する。
【００６０】
一方、現在実行されるプログラムサイクルが最後プログラムサイクルである場合、信号ｐｆ＿ｄＭ１ＦＡＩＬ，ｐｆ＿ｄＭ２ＦＡＩＬのうちいずれか一つでもロジックローレベル（選択されたデータに対した又はそれに対応するメモリセルアレイに対したプログラム成功を意味する）であると、使用可能信号ＰＦ＿ＳＴＡＲＴはロジックローレベルになる。これは発振制御信号ｐｆ＿１ＳＣＮｅｎがロジックハイレベルになるようにし、その結果発振器３２６は所定周期を有する発振信号ＰＦ＿ＯＳＣを出力する。これに対して、信号ｐｆ＿ｄＭ１ＦＡＩＬ，ｐｆ＿ｄＭ２ＦＡＩＬが全てロジックハイレベルであると、使用可能信号ＰＦ＿ＳＴＡＲＴはロジックローレベルになる。これは発振制御信号ｐｆ＿１ＳＣＮｅｎがロジックローレベルに維持されるようにし、その結果発振器３２６から発振信号ＰＦ＿ＯＳＣが生成されない（Ｙ−ＳＣＡＮ動作が実行されない）。
【００６１】
使用禁止回路３２０の好ましい具体例を示す図１５を参照すると、図面に図示されたように接続されたＮＡＮＤゲート５３３，５３４，５３６、ＮＯＲゲート５３８，５４２，５４５、ＯＲゲート５３２、ＡＮＤゲート５４４、インバータ５３７，５３９，５４１，５４５，５４６，５４８、パルス発生器５４０，５４７、フリップフロップ５４３は使用禁止回路３２０を構成する。パルス発生器５４０，５４７の各々は入力信号がロジックローレベルからロジックハイレベルに遷移する時アクティブローのパルス信号を発生する。
【００６２】
回路動作において、フリップフロップ５４３はパワーアップ時初期化され、さらに、使用禁止信号ＰＦ＿ＰＰＦＥＮＤがロジックハイレベルからロジックローレベルに遷移する時初期化される。そのように初期化されたフリップフロップ５４３は、信号ＲＤ＿ＰＹＳＣＮＥＮとインバータ５３７を通じて発振信号ＰＦ＿ＯＳＣを受け入れるＮＯＲゲート５３８の出力信号に応答して（即ち、発振信号ＰＦ＿ＯＳＣがロジックローレベルからロジックハイレベルに遷移する時）ＮＡＮＤゲート５３６の出力信号をランチする。
【００６３】
現在実行されるプログラムサイクルが最後ではない時（信号ＰＧＭ＿ＦＬＰＭＡＸ，ｐｆ＿ｆＭ１ＦＡＩＬ，ｐｆ＿ｆＭ２ＦＡＩＬが全てロジックローレベルに維持される時）、ＮＡＮＤゲート５３６の出力信号は、データ状態判別部３１０，３１２の出力信号ｐｆ＿ｄＭ１ＦＡＩＬ，ｐｆ＿ｄＭ２ＦＡＩＬのうちいずれか一つがロジックハイレベル（選択されたデータに対したプログラム状態失敗を意味する）である時、信号ＡＣＰ＿ＦＦＹＡＤＤに関係なくロジックハイレベルになる。これはアクティブハイパルスの使用禁止信号ＰＦ＿ＰＰＦＥＮＤが生成されるようにする。結局、前述されたように、発振制御信号ｐｆ＿１ＳＣＮｅｎはアクティブハイパルスの使用禁止信号ＰＦ＿ＰＰＦＥＮＤによってロジックローレベルに非活性化される。信号ＡＣＰ＿ＦＦＹＡＤＤはアドレス発生回路２４０から最後列アドレスが生成された時ロジックローレベルからロジックハイレベルに遷移する信号である。万一現在実行されるプログラムサイクルが最後プログラムサイクルであると（信号ＰＧＭ＿ＦＬＰＭＡＸ＝‘１’）、ＮＡＮＤゲート５３６から出力される信号のロジックレベルはデータ状態判別部３１０，３１２の出力信号ｐｆ＿ｄＭ１ＦＡＩＬ，ｐｆ＿ｄＭ２ＦＡＩＬに関係なく信号ＡＣＰ＿ＦＦＹＡＤＤによって決定される。信号ＡＣＰ＿ＦＦＹＡＤＤがロジックローレベルである時（最後列アドレスが生成されない時）、ＮＡＮＤゲート５３６の出力信号はロジックローレベルになる。このような条件下で、第１及び第２レジスタ３１４，３１６の出力信号ｐｆ＿ｆＭ１ＦＡＩＬ，ｐｆ＿ｆＭ２ＦＡＩＬが全てロジックローレベルである時（列パスゲート回路２２０ａ，２２０ｂを通じて伝達されたデータＤＭ１ｉ，ＤＭ２ｉが全てプログラム状態を有する時）、使用禁止信号ＰＦ＿ＰＰＦＥＮＤは続けてロジックローレベルに維持され、その結果発振制御信号ｐｆ＿１ＳＣＮｅｎは続けてロジックハイレベルに維持される。これに対して、出力信号ｐｆ＿ｆＭ１ＦＡＩＬ，ｐｆ＿ｆＭ２ＦＡＩＬのうちいずれか一つでもロジックハイレベルになると、アクティブハイパルスの使用禁止信号ＰＦ＿ＰＰＦＥＮＤが生成される。これは発振制御信号ｐｆ＿１ＳＣＮｅｎがロジックローレベルに非活性化されるようにする。
【００６４】
再び図１０を参照すると、プログラム状態検出回路３００は第３レジスタ３２８をさらに含み、このレジスタ３２８はメモリセルアレイ２００ａ，２００ｂの各々に対したプログラム成功或いはプログラム失敗を知らせるフラグ信号ＰＦ＿ＦＲＳ１，ＰＦ＿ＦＳＲ２を出力する。信号ＰＦ＿ＦＲＳ１，ＰＦ＿ＦＳＲ２は、まず、１Ｋプログラムを知らせる命令信号ＰＧＭによってプログラム失敗を意味するロジックハイレベルに各々設定される。１Ｋプログラムが始まった後、信号ＰＦ＿ＦＲＳ１，ＰＦ＿ＦＳＲ２は現在実行されるプログラムサイクルが最後プログラムサイクルではない時信号ＡＣＰ＿ＦＦＹＡＤＤによって影響を受ける。万一現在実行されるプログラムサイクルが最後プログラムサイクルであると、フラグ信号ＰＦ＿ＦＳＲ１，ＰＦ＿ＦＳＲ２は信号ＡＣＰ＿ＦＦＹＡＤＤ，ｐｆ＿ｆＭ１ＦＡＩＬ，ｐｆ＿ｆＭ２ＦＡＩＬによって影響を受ける。これに対した説明は以後詳細に説明される。
【００６５】
前述された第２実施形態のフラッシュメモリ装置によると、最後プログラムサイクル以前にメモリセルアレイのうちいずれか一つで、選択された列のメモリセルに対したプログラム失敗が生じると、メモリセルアレイ２００ａ，２００ｂに対したＹ−ＳＣＡＮ動作を中止し、次のプログラムサイクルが実行される。この時、次プログラムサイクルのＹ−ＳＣＡＮ動作の始め列アドレスとして以前プログラムサイクルのＹ−ＳＣＡＮ動作で最後に使用された列アドレス（十分にプログラムされないセルを指定した列アドレス）が使用されることに注意すべきものである。最後プログラムサイクルが実行される間に、メモリセルアレイ２００ａ，２００ｂのうちいずれか一つでプログラム失敗が生じるとしても他の一つのメモリセルアレイに対したプログラム成功或いはプログラム失敗を確認することができるようにＹ−ＳＣＡＮ動作は中断されない。即ち、列アドレスが続けて生成される。
【００６６】
図１６は本発明の第２実施形態によるプログラムアルゴリズムを示す流れ図である。以下、図１６乃至図２０を参照しながら本発明の第２実施形態によるフラッシュメモリ装置の好適な形態を説明する。
【００６７】
前述したように、プログラムを実行する前に全てのセルトランジスタのスレッショルド電圧を（−）電位にするための消去動作が実行された後、１Ｋプログラム（メモリセルアレイ２００ａ，２００ｂが同時にプログラムされることを意味する）が図６のプログラムアルゴリズムに従って実行される。１Ｋプログラムが始まると、前述したように、プログラム状態検出回路３００の第３レジスタ３２８が初期化される。即ち、フラグ信号ＰＦ＿ＦＲＳ１，ＰＦ＿ＦＳＲ２がプログラム失敗を意味するロジックハイレベルに各々初期化される。しかし、使用禁止信号ＰＦ＿ＰＰＦＥＮＤ及び発振制御信号ｐｆ＿１ＳＣＮｅｎはやはりロジックローレベルに初期化される。
【００６８】
プログラムされるデータがページバッファ回路２１０ａ，２１０ｂに各々ロードされ（段階Ｓ２００）、アドレス発生回路２４０は段階Ｓ２１０でリセットされる。以後、ロードされたデータをメモリセルアレイ２００ａ，２００ｂに貯蔵するための一連のプログラムサイクル（プログラム動作、読み検証動作そしてＹ−ＳＣＡＮ動作）が次のように実行される。
【００６９】
ページバッファ回路２１０ａ，２１０ｂに各々ロードされたデータに対した１Ｋプログラム動作が前述されたことと同一の方法で段階Ｓ２２０で実行された後、段階Ｓ２３０に進行する。段階Ｓ２３０ではメモリセルアレイ２００ａ，２００ｂの選択されたページに対応するメモリセルにプログラムされたデータビットがページバッファ回路２１０ａ，２１０ｂによって感知されラッチされる。即ち、検証読み動作が実行される。以後、Ｙ−ＳＣＡＮ動作が次のように実行される。
【００７０】
Ｙ−ＳＣＡＮ動作が始まると、図１７に図示されたように、Ｙ−ＳＣＡＮ動作の始めを知らせるパルス形態の信号ＲＤ＿ＰＹＳＣＮＥＮが生成される。この時、各メモリセルアレイ２００ａ，２００ｂの列のうちバイト単位の列（ビットライン或いは列に対応するページバッファ回路）が以前に初期化された列アドレスに従って列デコーダ＆冗長回路２３０と列パスゲート回路２２０ａ，２２０ｂによって選択される（各メモリセルアレイ２００ａ，２００ｂに対応する選択された列が一つの欠陥列を含む場合、メモリセルアレイ当り一つの冗長ビットラインと７個のビットラインが選択される）（段階Ｓ２４０）。メモリセルアレイ２００ａ，２００ｂに各々対応する選択された列のページバッファにラッチされたデータＤＭ１ｉ，ＤＭ２ｉ（以下、ＤＭ１ｉは第１データと称し、ＤＭ２ｉは第２データと称する）は対応するデータ状態判別部３１０，３１２に各々伝達される。
【００７１】
第１及び第２データＤＭ１ｉ、ＤＭ２ｉの全てのビットがプログラム状態（ロジック‘１’を有する）かの可否が段階Ｓ２５０でプログラム状態検出回路３００によって判別される。万一全てのビットがプログラム状態を有すると、信号ｐｆ＿ｄＭ１ＦＡＩＬ，ｐｆ＿ｄＭ２ＦＡＩＬの各々は選択されたデータが正しくプログラムされたことを示すロジックローレベルになる。この時、使用可能信号ＰＦ＿ＳＴＡＲＴはロジックハイレベルになり、信号ＲＤ＿ＰＹＳＣＮＥＮのハイ−ロー遷移時発振制御信号発生器３２２のフリップフロップ５２０にラッチされる。これによって、発振器３２６が動作するように発振制御信号ｐｆ＿１ＳＣＮｅｎがロジックローレベルからロジックハイレベルに遷移する。発振信号ＰＦ＿ＯＳＣがロジックハイレベルからロジックローレベルに遷移する時、アドレス発生回路２４０は次の列が選択されるように列アドレスを‘１’増加させる（段階Ｓ２６０）。
【００７２】
アドレス発生回路２４０から出力された列アドレスが最後列アドレスであるかの可否が段階Ｓ２７０で判別される。万一それではないと、前述した段階Ｓ２４０，Ｓ２５０，Ｓ２６０が全て列が選択される時まで（即ち、最後列アドレスが生成される時まで）反復的に実行される。万一そうであると、信号ＡＣＰ＿ＦＦＹＡＤＤがロジックローレベルからロジックハイレベルに遷移し、その結果第３レジスタ３２８から出力されるフラグ信号ＰＦ＿ＦＳＲ１，ＰＦ＿ＦＳＲ２が全てプログラム失敗を意味するロジックローレベルに遷移する。以後、図１７で示したように、使用禁止信号ＰＦ＿ＰＰＦＥＮＤ及び発振制御信号ｐｆ＿１ＳＣＮｅｎが信号ＡＣＰ＿ＦＦＹＡＤＤのロー−ハイ遷移によって順次に非活性化される。
【００７３】
図１８を参照すると、任意のプログラムサイクルのＹ−ＳＣＡＮ動作の間（或いは、信号ＰＧＭ＿ＦＬＰＭＡＸがロジックローレベルに維持される間）データ状態判別部３１０，３１２に各々伝達された第１及び第２データＤＭ１ｉ、ＤＭ２ｉのうちいずれか一つ（例えば、第２データ）が不十分にプログラムされたことが判別される時（段階Ｓ２５０）、第２データＤＭ２ｉに対応するデータ状態判別部３１２の出力信号ｐｆ＿ｄＭ２ＦＡＩＬはロジックローレベルからロジックハイレベルに遷移する。現在実行されるプログラムサイクルが最後ではないので即ち、信号ＰＧＭ＿ＦＬＰＭＡＸがロジックローレベルに維持されるので、使用禁止回路３２０のフリップフロップ５４３の入力信号ＤＩ、即ちＮＡＮＤゲート５３６の出力信号はロジックローレベルからロジックハイレベルに遷移する。
結果的に、図１８に図示されたように、使用禁止回路３２０はアクティブハイパルス使用禁止信号ＰＦ＿ＰＰＦＥＮＤを発生し、これは発振制御信号ｐｆ＿１ＳＣＮｅｎがハイ−ロー遷移を有するようにする。前述された順次動作を通じてプログラムサイクルのＹ−ＳＣＡＮ動作が終了される。Ｙ−ＳＣＡＮ動作で最後で使用された列アドレスは次プログラムサイクルのＹ−ＳＣＡＮ動作の始め列アドレスに使用することができるように列アドレス発生回路２４０にそのまま維持される。
【００７４】
プログラムサイクルのＹ−ＳＣＡＮ動作が終了された後即ち、メモリセルアレイ２００ａ，２００ｂのうちいずれか一つに対応するデータＤＭ１ｉ，ＤＭ２ｉに対したプログラム失敗が判別された後（段階Ｓ２５０）、プログラムサイクルが最後プログラムサイクルであるかの可否が段階Ｓ２８０で判別される。万一それではないと、次はプログラム動作を実行する段階Ｓ２２０に進行する。以後動作は前述されたことと同一に実行される。
【００７５】
図１９を参照すると、信号ＰＧＭ＿ＦＬＰＭＡＸがロジックローレベルに維持される間に即ち、最後プログラムサイクルのＹ−ＳＣＡＮ動作の間、データ状態判別部３１０，３１２に各々伝達された第１及び第２データＤＭ１ｉ、ＤＭ２ｉのうちいずれか一つ（例えば、第２データ）が不十分にプログラムされたことが判別される時（段階Ｓ２５０）、データ状態判別部３１２の出力信号ｐｆ＿ｄＭ２ＦＡＩＬはロジックハイレベルになる。現在実行されるプログラムサイクルが最後であるので、ロジックハイレベルの信号ｐｆ＿ｄＭ２ＦＡＩＬは第２レジスタ３１６に貯蔵される。同じように、ロジックローレベルの信号ｐｆ＿ｄＭ１ＦＡＩＬは第１レジスタ３１４に貯蔵される。結果的に、第２レジスタ３１６の出力信号ｐｆ＿ｆＭ２ＦＡＩＬはロジックローレベルからロジックハイレベルに遷移する一方、第１レジスタ３１４の出力信号ｐｆ＿ｆＭ１ＦＡＩＬはロジックローレベルに維持される。例え信号ｐｆ＿ｄＭ２ＦＡＩＬがロジックハイレベルになるとしても、使用禁止信号ＰＦ＿ＰＰＦＥＮＤは続けてロジックローレベルに維持される。なぜなら、現在実行されるプログラムサイクルが最後プログラムサイクルであり、信号ＡＣＰ＿ＦＦＹＡＤＤがロジックローレベルだから、使用禁止回路３２０のＮＡＮＤゲート５３６の出力信号はロジックローレベルに維持される。だから、使用禁止信号ＰＦ＿ＰＰＦＥＮＤはＡＮＤゲート５３６の入力信号ｐｆ＿ｆＭ１ＦＡＩＬ，ｐｆ＿ｆＭ２ＦＡＩＬのうち一つのみがロジックハイレベルであるから、続けてロジックローレベルに維持される。結果的に、メモリセルアレイ２００ｂがプログラム失敗として判別されるとしても（段階Ｓ２９０）、アドレス発生回路２４０はメモリセルアレイ２００ａの次の列が選択されるように発振信号ＰＦ＿ＯＳＣのハイ−ロー遷移に応答して列アドレスを‘１’増加させる（段階Ｓ２６０）。以後、最後列アドレスが生成される時まで前述された過程が反復的に実行される。最後列アドレスが生成される時即ち、信号ＡＣＰ＿ＦＦＹＡＤＤがロジックローレベルからロジックハイレベルに遷移する時、使用禁止回路３２０はパルス形態の使用禁止信号ＰＦ＿ＰＰＦＥＮＤを発生し、その結果発振制御信号ｐｆ＿１ＳＣＮｅｎは発振器３２６が動作しないようにロジックローレベルに非活性化される。
【００７６】
また、信号ＡＣＰ＿ＦＦＹＡＤＤがロジックローレベルからロジックハイレベルに遷移する時、第３レジスタ３２８の出力信号ＰＦ＿ＦＲＳ１は、図１９に図示されたように、第１レジスタ３１４から出力されるロジックローレベルの信号ｐｆ＿ｆＭ１ＦＡＩＬによってロジックローレベルになる。これはメモリセルアレイ２００ａに関連したプログラム動作が成功したことを意味する。これに対して、第３レジスタ３２８の出力信号ＰＦ＿ＦＲＳ２は、図１９に図示されたように、第２レジスタ３１６から出力されるロジックハイレベルの信号ｐｆ＿ｆＭ２ＦＡＩＬによって続けてロジックハイレベルに維持される。これはメモリセルアレイ２００ｂに関連したプログラム動作が失敗したことを意味する。
【００７７】
続いて図２０を参照すると、信号ＰＧＭ＿ＦＬＰＭＡＸがロジックハイレベルに維持される間に即ち、最後プログラムサイクルのＹ−ＳＣＡＮ動作の間、データ状態判別部３１０，３１２に各々伝達された第１及び第２データＤＭ１ｉ，ＤＭ２ｉのうちいずれか一つ（例えば、第２データ）が不十分にプログラムされたことが判別される時（段階Ｓ２５０）、データ状態判別部３１２の出力信号ｐｆ＿ｄＭ２ＦＡＩＬはロジックハイレベルになる。現在実行されるプログラムサイクルが最後であるので、ロジックハイレベルの信号ｐｆ＿ｄＭ２ＦＡＩＬは第２レジスタ３１６に貯蔵される。同じように、ロジックローレベルの信号ｐｆ＿ｄＭ１ＦＡＩＬは第１レジスタ３１４に貯蔵される。結果的に、第２レジスタ３１６の出力信号ｐｆ＿ｆＭ２ＦＡＩＬはロジックローレベルからロジックハイレベルに遷移する一方、第１レジスタ３１４の出力信号ｐｆ＿ｆＭ１ＦＡＩＬはロジックローレベルに維持される。例え信号ｐｆ＿ｄＭ２ＦＡＩＬがロジックハイレベルになるとしても、使用禁止信号ＰＦ＿ＰＰＦＥＮＤは続けてロジックローレベルに維持される。なぜなら、現在実行されるプログラムサイクルが最後プログラムサイクルであり、信号ＡＣＰ＿ＦＦＹＡＤＤがロジックローレベルであるから、使用禁止回路３２０のＮＡＮＤゲート５３６の出力信号はロジックローレベルに維持される。だから、使用禁止信号ＰＦ＿ＰＰＦＥＮＤはＡＮＤゲート５４４の入力信号ｐｆ＿ｆＭ１ＦＡＩＬ，ｐｆ＿ｆＭ２ＦＡＩＬのうち一つのみがロジックハイレベルであるから続けてロジックローレベルに維持される。結果的に、メモリセルアレイ２００ｂがプログラム失敗として判別されるとしても（段階Ｓ２９０）、アドレス発生回路２４０はメモリセルアレイ２００ａの次に列が選択されるように発振信号ＰＦ＿ＯＳＣのハイ−ロー遷移に応答して列アドレスを‘１’増加させる（段階Ｓ２６０）。
【００７８】
万一最後プログラムサイクルで最後列アドレスが生成される以前に第１データＤＭ１ｉが不十分にプログラムされたことが判別されると、信号ｐｆ＿ｄＭ１ＦＡＩＬはロジックハイレベルになる。現在実行されるプログラムサイクルが最後であるので、ロジックハイレベル信号ｐｆ＿ｄＭ１ＦＡＩＬはやはり第１レジスタ３１４に貯蔵される。結果的に、第１レジスタ３１４の出力信号ｐｆ＿ｆＭ１ＦＡＩＬはロジックローレベルからロジックハイレベルに遷移する。だから、使用禁止回路３２０のＡＮＤゲート５４４の入力信号ｐｆ＿ｆＭ１ＦＡＩＬ，ｐｆ＿ｆＭ２ＦＡＩＬが全てロジックハイレベルであるから、図２０に図示されたように、使用禁止信号ＰＦ＿ＰＰＦＥＮＤはロジックローレベルからロジックハイレベルに変わって、その結果発振制御信号ｐｆ＿１ＳＣＮｅｎはロジックローレベルに非活性化される。即ち、発振器３２６はもうこれ以上動作しない。その上、第３レジスタ３２８から出力されるフラグ信号ＰＦ＿ＦＲＳ１，ＰＦ＿ＦＲＳ２は第１及び第２レジスタ３１４，３１６の出力信号ｐｆ＿ｆＭ１ＦＡＩＬ，ｐｆ＿ｆＭ２ＦＡＩＬがロジックハイレベルに各々維持されるので、初期に設定された状態に続けて維持される。これはメモリセルアレイ２００ａ，２００ｂに関連したプログラム動作が全て失敗したことを意味する。
【００７９】
【発明の効果】
上述したように、本発明によれば、冗長情報を含む列アドレスに従って列パスゲート回路によって選択されるデータビットを利用してプログラムパス／フェール判別動作を実行するから、欠陥ビットラインはプログラムパス／フェールを点検する動作に影響を及ぼさない。だから、不揮発性半導体メモリ装置が欠陥ビットラインによってフェールデバイスに分類されることを防止することができ、収率が低下することを防ぐことができる。
【図面の簡単な説明】
【図１】従来技術による不揮発性半導体メモリ装置のプログラム状態検出回路を示す回路図である。
【図２】従来技術における問題点を説明するための図である。
【図３】本発明の第１実施形態によるプログラム状態検出回路を具備したフラッシュメモリ装置のブロック図である。
【図４】図３のデータ状態判別回路の好ましい具体例を示す回路図である。
【図５】図３のプログラムパス／フェール判別回路の好ましい具体例を示す回路図である。
【図６】本発明の第１実施形態におけるプログラムアルゴリズムを示す流れ図である。
【図７】本発明におけるＹ−ＳＣＡＮ動作を説明するためのタイミング図である。
【図８】本発明におけるＹ−ＳＣＡＮ動作を説明するためのタイミング図である。
【図９】本発明の第２実施形態によるプログラム状態検出回路を具備したフラッシュメモリ装置のブロック図である。
【図１０】図９のプログラム状態検出回路を示すブロック図である。
【図１１】図１０のデータ状態判別部の好ましい具体例を示す回路図である。
【図１２】図１０のレジスタの好ましい具体例を示す回路図である。
【図１３】図１０の発振制御信号発生器の好ましい具体例を示す回路図である。
【図１４】図１０の使用可能回路の好ましい具体例を示す回路図である。
【図１５】図１０の使用禁止回路の好ましい具体例を示す回路図である。
【図１６】本発明の第２実施形態におけるプログラムアルゴリズムを示す流れ図である。
【図１７】本発明におけるＹ−ＳＣＡＮ動作を説明するためのタイミング図である。
【図１８】本発明におけるＹ−ＳＣＡＮ動作を説明するためのタイミング図である。
【図１９】本発明におけるＹ−ＳＣＡＮ動作を説明するためのタイミング図である。
【図２０】本発明におけるＹ−ＳＣＡＮ動作を説明するためのタイミング図である。
【符号の説明】
１００  メモリセルアレイ
１１０  ページバッファ回路
１２０  アドレス発生回路
１３０  列デコーダ
１４０  列パスゲート回路
１５０  冗長回路
１６０  データ状態判別回路
１７０  発振回路
１８０  プログラムパス／フェール判別回路
１９０，３００  プログラム状態検出回路
【図１】
0004566369.tif 000002
【図２】
0004566369.tif 000003
【図３】
0004566369.tif 000004
【図４】
0004566369.tif 000005
【図５】
0004566369.tif 000006
【図６】
0004566369.tif 000007
【図７】
0004566369.tif 000008
【図８】
0004566369.tif 000009
【図９】
0004566369.tif 000010
【図１０】
0004566369.tif 000011
【図１１】
0004566369.tif 000012
【図１２】
0004566369.tif 000013
【図１３】
0004566369.tif 000014
【図１４】
0004566369.tif 000015
【図１５】
0004566369.tif 000016
【図１６】
0004566369.tif 000017
【図１７】
0004566369.tif 000018
【図１８】
0004566369.tif 000019
【図１９】
0004566369.tif 000020
【図２０】
0004566369.tif 000021