(57)【特許請求の範囲】
【請求項１】
ワードライン及びビットラインの交差領域に配列されたメモリセルを有するメモリセルアレイと、
選択されたワードラインにプログラム電圧を提供する行デコーダ回路と、
前記プログラム電圧によってプログラムされたメモリセルのプログラムの成否を所定のビット単位で検証する第１検証回路と、
前記検証されるメモリセルのうちの前記行デコーダ回路から最も遠い距離に位置したメモリセルのプログラムの成否を検証する第２検証回路と、
前記第１及び第２検証回路の検証結果に応答して、次のプログラムループに適用されるプログラム電圧のレベルと印加時間とを決定するコントローラと、
前記決定されたレベルに対応するプログラム電圧を発生するワードライン電圧発生回路と、
前記ワードライン電圧発生回路から発生した前記プログラム電圧を、前記決定された印加時間の間、前記行デコーダ回路に提供するワードラインドライバとを含み、
前記コントローラは、前記第２検証回路が前記プログラムのフェイルを示せば次のプログラムループで印加される前記プログラム電圧の印加時間を増加し、前記第２検証回路が前記プログラムのパスを示せば次のプログラムループで印加される前記プログラム電圧の印加時間を減少する
ことを特徴とする不揮発性メモリ装置。
【請求項２】
前記メモリセルアレイは、複数個のデータ入出力領域に区分されることを特徴とする請求項１に記載の不揮発性メモリ装置。
【請求項３】
前記第１検証回路は、前記複数個のデータ入出力領域それぞれから提供されたそれぞれのビットに対して、並列にプログラム正常を検証することを特徴とする請求項２に記載の不揮発性メモリ装置。
【請求項４】
前記第１検証回路と前記第２検証回路との検証動作は、並列に実行されることを特徴とする請求項１に記載の不揮発性メモリ装置。
【請求項５】
前記コントローラは、
前記第１検証回路の検証結果に応答して、プログラムループをカウントするカウントアップ信号、及び前記次のプログラムループを活性化するプログラム状態活性化信号を発生する制御ロジックと、
前記カウントアップ信号に応答して、前記プログラム電圧のレベルに対応するプログラムステップコードを発生するプログラム電圧調節部と、
前記プログラム状態活性化信号と前記第２検証回路の検証結果とに応答して、前記プログラムループの終了時点を決定するプログラム時間調節部とを含み、
前記制御ロジックは、前記決定された終了時点にしたがって、前記プログラム状態活性化信号を非活性化することを特徴とする請求項１に記載の不揮発性メモリ装置。
【請求項６】
前記制御ロジックは、現在のプログラムサイクル動作が正常に完了されたか否かを示す状態情報を格納する状態マシンであることを特徴とする請求項５に記載の不揮発性メモリ装置。
【請求項７】
前記プログラム時間調節部は、
前記プログラム状態活性化信号が活性化された以後から経過する時間をカウントするカウンタと、
前記カウンタでカウントされた値と前記第２検証回路の検証結果とに応答して、プログラム状態終了信号をデコーディングするデコーダとを含むことを特徴とする請求項５に記載の不揮発性メモリ装置。
【請求項８】
前記デコーダは、前記第２検証回路で検証された前記メモリセルが正常にプログラムされていなければ、前記プログラム状態終了信号が所定時間遅く発生するようにデコーディングすることを特徴とする請求項７に記載の不揮発性メモリ装置。
【請求項９】
前記デコーダは、前記第２検証回路で検証された前記メモリセルが正常にプログラムされていれば、前記プログラム状態終了信号が所定時間早く発生するようにデコーディングすることを特徴とする請求項７に記載の不揮発性メモリ装置。
【請求項１０】
前記ワードラインドライバは、前記プログラム状態活性化信号が活性化されている区間の間、前記プログラム電圧を前記行デコーダ回路に提供することを特徴とする請求項５に記載の不揮発性メモリ装置。
【請求項１１】
前記第１及び第２検証回路は、ワイヤードオア方式及び列スキャン方式のうちのいずれか１つの方式を利用することを特徴とする請求項１に記載の不揮発性メモリ装置。
【請求項１２】
ワードライン及びビットラインで配列されたメモリセルを有する不揮発性メモリ装置をプログラムする方法において、
行デコーダを介して選択されたワードラインにプログラム電圧を印加する段階と、
前記プログラム電圧によってプログラムされたメモリセルのプログラムの成否を、第１検証回路によって所定のビット単位で検証する段階と、
前記検証が実行される間に、前記検証されるメモリセルのうちの前記行デコーダ回路から最も遠い距離に位置したメモリセルのプログラムの成否を、第２検証回路によって検証する段階と、
前記第１及び第２検証回路の検証結果に応答して、コントローラによって次のプログラムループに適用されるプログラム電圧のレベル及び印加時間を調節する段階とを含み、
前記コントローラは、前記第２検証回路が前記プログラムのフェイルを示せば次のプログラムループで印加される前記プログラム電圧の印加時間を増加し、前記第２検証回路が前記プログラムのパスを示せば次のプログラムループで印加される前記プログラム電圧の印加時間を減少する
ことを特徴とする不揮発性メモリ装置のプログラム方法。
【請求項１３】
前記プログラム電圧のレベル及び印加時間を調節する段階は、
前記第１検証回路の検証結果に応答して、プログラムループをカウントするカウントアップ信号、及び前記次のプログラムループを活性化するプログラム状態活性化信号を発生する段階と、
前記カウントアップ信号に応答して、前記プログラム電圧のレベルに対応するプログラムステップコードを発生する段階と、
前記プログラム状態活性化信号と前記第２検証回路の検証結果とに応答して、前記プログラムループの終了時点を決定する段階と、
前記決定された終了時点にしたがって、前記プログラム状態活性化信号を非活性化する段階とを含むことを特徴とする請求項１２に記載の不揮発性メモリ装置のプログラム方法。
【請求項１４】
前記プログラム状態終了時点を決定する段階は、
前記プログラム状態活性化信号が活性化された以後から経過された時間をカウントする段階と、
前記カウントされた値と前記第２検証回路の検証結果とに応答して、プログラム状態終了信号を発生する段階とを含むことを特徴とする請求項１２に記載の不揮発性メモリ装置のプログラム方法。
【請求項１５】
前記第２検証回路の検証の結果、前記メモリセルが正常にプログラムされていなければ、前記プログラム状態終了信号が所定時間遅く発生することを特徴とする請求項１４に記載の不揮発性メモリ装置のプログラム方法。
【請求項１６】
前記第２検証回路の検証の結果、前記メモリセルが正常にプログラムされていれば、前記プログラム状態終了信号が所定時間早く発生することを特徴とする請求項１４に記載の不揮発性メモリ装置のプログラム方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は不揮発性半導体メモリ装置に係り、より具体的にはプログラム速度を向上させることができる不揮発性メモリ装置及びそれのプログラム方法に関する。
【背景技術】
【０００２】
半導体メモリ装置は、大きく分けて、揮発性半導体メモリ装置（ｖｏｌａｔｉｌｅ ｓｅｍｉｃｏｎｄｕｃｔｏｒ ｍｅｍｏｒｙ ｄｅｖｉｃｅ）と不揮発性半導体メモリ装置（ｎｏｎ−ｖｏｌａｔｉｌｅ ｓｅｍｉｃｏｎｄｕｃｔｏｒ ｍｅｍｏｒｙ ｄｅｖｉｃｅ）とに区分される。揮発性半導体メモリ装置は、読み出して書き込む速度が速いが、外部電源供給が切られると、記憶した内容が消えてしまうという短所がある。一方、不揮発性半導体メモリ装置は、外部電源供給が中断しても、その内容を記憶している。そのため、不揮発性半導体メモリ装置は、電源が供給されたか否かにかかわらず記憶しなければならない内容を記憶させるのに用いられる。不揮発性半導体メモリ装置として、マスクＲＯＭ（ｍａｓｋ ｒｅａｄ−ｏｎｌｙ ｍｅｍｏｒｙ、ＭＲＯＭ）、プログラム可能なＲＯＭ（ｐｒｏｇｒａｍｍａｂｌｅ ｒｅａｄ−ｏｎｌｙ ｍｅｍｏｒｙ、ＰＲＯＭ）、消去及びプログラム可能なＲＯＭ（ｅｒａｓａｂｌｅ ｐｒｏｇｒａｍｍａｂｌｅ ｒｅａｄ−ｏｎｌｙ ｍｅｍｏｒｙ、ＥＰＲＯＭ）、電気的に消去及びプログラム可能なＲＯＭ（ｅｌｅｃｔｒｉｃａｌｌｙ ｅｒａｓａｂｌｅ ｐｒｏｇｒａｍｍａｂｌｅ ｒｅａｄ−ｏｎｌｙ ｍｅｍｏｒｙ、ＥＥＰＲＯＭ）などがある。
【０００３】
一般的に、ＭＲＯＭ、ＰＲＯＭ及びＥＰＲＯＭは、システム自体の消去及び書き込みが容易ではないため、一般の使用者が記憶内容を更新するのに困難がある。これと異なり、ＥＥＰＲＯＭは、電気的に消去及び書き込みが可能であるため、継続的に更新を必要とするシステムプログラミング（ｓｙｓｔｅｍ ｐｒｏｇｒａｍｍｉｎｇ）や補助記憶装置への応用が拡がっている。特に、フラッシュ（ｆｌａｓｈ）ＥＥＰＲＯＭは、従来のＥＥＰＲＯＭに比べて集積度が高いため、大容量補助記憶装置への応用に非常に有利である。フラッシュＥＥＰＲＯＭのうちで、ＮＡＮＤ型（ＮＡＮＤ−ｔｙｐｅ）フラッシュＥＥＰＲＯＭ(以下、“ＮＡＮＤ型フラッシュメモリ”と言う)は、他のフラッシュＥＥＰＲＯＭに比べて集積度が非常に高いという長所を有する。
【０００４】
図１は、ＥＥＰＲＯＭセルを含む一般的なＮＡＮＤ型フラッシュメモリ装置の構成を示す図である。図１を参照すると、フラッシュメモリ装置は、メモリセルアレイ１１０、行デコーダ回路１２０、及びページバッファ回路１３０を含む。メモリセルアレイ１１０の行（ｒｏｗ）は行デコーダ回路１２０によって駆動され、列（ｃｏｌｕｍｎ）はページバッファ回路１３０によって駆動される。
【０００５】
メモリセルアレイ１１０は複数個のメモリセルブロックで構成される。各メモリセルブロックは複数個のメモリセルストリング（“ＮＡＮＤストリング”）を含み、それぞれのセルストリングはメモリセルとしての機能を実行する複数個のフローティングゲートトランジスタＭ０−Ｍｎ−１を含む。各ストリングのフローティングゲートトランジスタＭ０−Ｍｎ−１のチャネルは、ストリング選択トランジスタＳＳＴのチャネルとグラウンド選択トランジスタＧＳＴのチャネルとの間に直列に接続される。
【０００６】
メモリセルアレイ１１０の各ブロックには、ストリング選択ライン（Ｓｔｒｉｎｇ Ｓｅｌｅｃｔ Ｌｉｎｅ：ＳＳＬ）、グラウンド選択ライン（Ｇｒｏｕｎｄ Ｓｅｌｅｃｔ Ｌｉｎｅ：ＧＳＬ）、複数個のワードラインＷＬ０−ＷＬｎ−１、及び複数個のビットラインＢＬ０−ＢＬｎ−１が具備される。ストリング選択ラインＳＳＬは複数個のストリング選択トランジスタＳＳＴのゲートと共通に接続される。各ワードラインＷＬ０−ＷＬｎ−１は複数個の対応するフローティングゲートトランジスタＭ０−Ｍｎ−１の制御ゲートと共通に接続される。グラウンド選択ラインＧＳＬは複数個のグラウンド選択トランジスタＧＳＴのゲートと共通に接続される。各ビットライン（ＢＬ０、．．．、またはＢＬｎ−１）は対応する１つのセルストリングと接続される。そして、前記グラウンド選択ラインＧＳＬ、前記ワードラインＷＬ０−ＷＬｎ−１、及び前記ストリング選択ラインＳＳＬには、対応するブロック選択トランジスタＢＳＴを通じて、対応する選択信号（ＧＳ、Ｓｉ０−Ｓｉｎ−１、ＳＳ）がそれぞれ供給される。前記ブロック選択トランジスタＢＳＴは、行デコーダ回路１２０に含まれ、ブロック選択制御信号ＢＳによって共通に制御されるように接続される。
【０００７】
行デコーダ回路１２０は、行アドレス情報によってワードラインＷＬ０−ＷＬｎ−１のうちの１つのワードラインを選択し、選択されたワードラインと非選択されたワードラインとに、各動作モードに従うワードライン電圧を供給する。例えば、行デコーダ回路１２０は、プログラム動作モードのとき、選択されたワードラインにプログラム電圧（ｐｒｏｇｒａｍ ｖｏｌｔａｇｅ）を供給し、非選択されたワードラインにパス電圧（ｐａｓｓ ｖｏｌｔａｇｅ）を供給する。そして、行デコーダ回路１２０は、読み出し動作モードのとき、選択されたワードラインに接地電圧ＧＮＤを供給し、非選択されたワードラインに読み出し電圧（ｒｅａｄ ｖｏｌｔａｇｅ）を供給する。このために、行デコーダ回路１２０には、ワードラインドライバ（図示せず）から選択信号Ｓｉ０−Ｓｉｎ−１が入力される。そして、行デコーダ回路１２０は入力された選択信号（Ｓｉ０−Ｓｉｎ−１）を対応するワードラインＷＬ０−ＷＬｎ−１に提供する。前記選択信号Ｓｉ０−Ｓｉｎ−１は、プログラム電圧、パス電圧、及び読み出し電圧のうちの少なくとも１つに該当する電圧レベルを有し、対応するワードラインＷＬ０−ＷＬｎ−１にワードライン電圧として提供される。
【０００８】
メモリセルアレイ１１０上に配列されたビットラインＢＬ０−ＢＬｎ−１はページバッファ回路１３０に電気的に接続される。ページバッファ回路１３０には、ビットラインＢＬ０−ＢＬｎ−１にそれぞれ対応するページバッファが提供されることができ、それぞれのページバッファは、一対のビットラインを共有するように実現されることもできる。ページバッファ回路１３０は、プログラム動作モードのとき、プログラムされるデータに従ってビットラインＢＬ０−ＢＬｎ−１に電源電圧（または、プログラム禁止電圧：ｐｒｏｇｒａｍ−ｉｎｈｉｂｉｔｅｄ ｖｏｌｔａｇｅ）または接地電圧（または、プログラム電圧：ｐｒｏｇｒａｍ ｖｏｌｔａｇｅ）をそれぞれ供給する。そして、ページバッファ回路１３０は、読み出し／検証動作モードのとき、ビットラインＢＬ０−ＢＬｎ−１を通じて選択されたワードラインのメモリセルからデータを感知する。ページバッファ回路１３０の感知動作によって、メモリセルがプログラムされたセルであるか消去されたセルであるかが確認される。
【０００９】
よく知られているように、ＮＡＮＤ型フラッシュメモリのメモリセルは、Ｆ−Ｎトンネリング電流（Ｆｏｗｌｅｒ−Ｎｏｒｄｈｅｉｍ ｔｕｎｎｅｌｉｎｇ ｃｕｒｒｅｎｔ）を利用して消去及びプログラムされる。ＮＡＮＤ型フラッシュ ＥＥＰＲＯＭの消去及びプログラム方法は特許文献１及び特許文献２に開示されている。一方、フラッシュメモリ装置は、メモリセルの閾値電圧の散布を正確に制御するために、増加型ステップパルスプログラミング（ｉｎｃｒｅｍｅｎｔａｌ ｓｔｅｐ ｐｕｌｓｅ ｐｒｏｇｒａｍｍｉｎｇ：ＩＳＰＰ）方式によってプログラムされる。ＩＳＰＰ方式に従ってプログラム電圧を生成する回路の例は、特許文献３に開示されている。
【００１０】
図２は増加型ステップパルスプログラム（ＩＳＰＰ）スキームによってプログラムされる一般的なＮＡＮＤ型フラッシュメモリ装置のプログラム電圧の変化を示す図である。
【００１１】
図１及び図２を参照すると、データをメモリセルアレイに格納するためには、まず、データローディング命令がフラッシュメモリに与えられ、アドレス及びデータがフラッシュメモリに連続的に入力される。一般的に、プログラムされるデータは、バイトまたはワード単位でページバッファ回路１３０に順次に伝達される。プログラムされるデータすなわち、一ページ分量のデータがすべてページバッファ回路１３０にロードされれば、ページバッファ回路１３０に格納されたデータは、プログラム命令に従って、メモリセルアレイ１１０の選択されたページのメモリセルに同時にプログラムされる。一般的に、データがプログラムされるサイクルは、複数のプログラムループからなり、各プログラムループはプログラム区間Ｐとプログラム検証区間Ｖに分けられる。
【００１２】
プログラム区間Ｐにおいては、よく知られた方式に従って、メモリセルが与えられたバイアス条件下においてプログラムされる。ＩＳＰＰプログラミング方式においては、プログラムループが繰り返されることによって、プログラム電圧Ｖｐｇｍ１−Ｖｐｇｍ５が段階的に増加する。プログラム電圧Ｖｐｇｍ２−Ｖｐｇｍ５は、所定の初期プログラム電圧Ｖｐｇｍ１から毎プログラムループごとに、決まった増加分△Ｖｐｇｍだけ増加するようになる。選択されたワードラインＷＬ０−ＷＬｎ−１に印加されるそれぞれのプログラム電圧Ｖｐｇｍ１−Ｖｐｇｍ５は、各プログラムループに対して一定時間の間Ｔにおいて、決まったレベルで提供される。プログラム検証区間Ｖでは、メモリセルが希望する閾値電圧までプログラムされたか否かが検証される。メモリセルがすべてプログラムされるまで、決まった回数内において上述のプログラムループが繰り返し実行される。プログラム検証動作は読み出されたデータが外部に出力されないという点を除外すれば、読み出し動作と実質的に同一である。
【００１３】
この分野の通常の知識を有する者によく知られているように、ＮＡＮＤ型フラッシュメモリ装置において、１つのワードラインに接続されたメモリセル（すなわち、一ページに該当するメモリセル）は同時にプログラムされることができる。ＮＡＮＤ型フラッシュメモリ装置の集積度が増加するのにしたがい、それぞれのワードラインに接続されたメモリセルの個数が徐々に増加しており、メモリセルの位置にしたがってロードキャパシタンス成分の差も徐々に増加している。そのため、同一なワードラインに接続していても、プログラム電圧が印加され始める行デコーダ回路１２０から遠く離れるようになれば、該当セルに伝達されるプログラム電圧Ｖｐｇｍ１−Ｖｐｇｍ５の強さが弱くなり、プログラム電圧Ｖｐｇｍ１−Ｖｐｇｍ５が所望するレベルに到達するまでの時間も長くなる。
【００１４】
したがって、プログラム電圧Ｖｐｇｍ１−Ｖｐｇｍ５が所望するレベルに到達する前にＮＡＮＤフラッシュメモリに対するプログラムを実行するようになれば、プログラムエラーを誘発するようになる。このような問題を解決するために、それぞれのプログラムループで、それぞれのプログラム電圧Ｖｐｇｍ１−Ｖｐｇｍ５が印加される時間Ｔは、行デコーダ回路１２０から最も遠い所に位置しているメモリセルを基準に設計される。その結果、それぞれのワードラインに接続されたメモリセルの個数が増加するほど、各プログラムループで、プログラム電圧Ｖｐｇｍ１−Ｖｐｇｍ５の印加される時間Ｔが長くなるという問題が発生するようになる。
【特許文献１】米国特許公報第５，４７３，５６３号
【特許文献２】米国特許公報第５，６９６，７１７号
【特許文献３】米国特許公報第５，６４２，３０９号
【発明の開示】
【発明が解決しようとする課題】
【００１５】
本発明の目的は上述の問題を解決するためになされたもので、プログラムの信頼性を保障し、プログラム時間を短縮させることができる不揮発性メモリ装置及びそれのプログラム方法を提供することにある。
【課題を解決するための手段】
【００１６】
前記の目的を達成するための本発明の特徴によれば、不揮発性メモリ装置は、ワードライン及びビットラインの交差領域に配列されたメモリセルを有するメモリセルアレイと、選択されたワードラインにプログラム電圧を提供する行デコーダ回路と、前記プログラム電圧によってプログラムされたメモリセルたちのプログラムの成否を所定のビット単位で検証する第１検証回路と、前記検証されるメモリセルのうちの前記行デコーダ回路から最も遠い距離に位置したメモリセルのプログラムの成否を検証する第２検証回路と、前記第１及び第２検証回路の検証結果に応答して、次のプログラムループに適用されるプログラム電圧のレベルと印加時間とを決定するコントローラと、前記決定されたレベルに対応するプログラム電圧を発生するワードライン電圧発生回路と、前記ワードライン電圧発生回路から発生した前記プログラム電圧を、前記決定された印加時間の間、前記行デコーダ回路に提供するワードラインドライバとを含むことを特徴とする。
【００１７】
この実施形態において、前記メモリセルアレイは、複数個のデータ入出力領域に区分されることを特徴とする。
【００１８】
この実施形態において、前記第１検証回路は、前記複数個のデータ入出力領域それぞれから提供されたそれぞれのビットに対して、並列にプログラムの正常を検証することを特徴とする。
【００１９】
この実施形態において、前記第１検証回路と前記第２検証回路の検証動作は、並列に実行されることを特徴とする。
【００２０】
この実施形態において、前記コントローラは前記第１検証回路の検証結果に応答して、プログラムループをカウントするカウントアップ信号、及び前記次のプログラムループを活性化するプログラム状態活性化信号を発生する制御ロジックと、前記カウントアップ信号に応答して、前記プログラム電圧のレベルに対応するプログラムステップコードを発生するプログラム電圧調節部と、前記プログラム状態活性化信号と前記第２検証回路の検証結果とに応答して、前記プログラムループの終了時点を決定するプログラム時間調節部とを含み、前記制御ロジックは、前記決定された終了時点にしたがって、前記プログラム状態活性化信号を非活性化することを特徴とする。
【００２１】
この実施形態において、前記制御ロジックは、現在のプログラムサイクル動作が正常に完了されたか否か示す状態情報を格納する状態マシンであることを特徴とする。
【００２２】
この実施形態において、前記プログラム時間調節部は、前記プログラム状態活性化信号が活性化された以後から経過された時間をカウントするカウンタと、前記カウンタでカウントされた値と前記第２検証回路の検証結果とに応答して、プログラム状態終了信号をデコーディングするデコーダとを含むことを特徴とする。
【００２３】
この実施形態において、前記デコーダは、前記第２検証回路で検証された前記メモリセルが正常にプログラムされていなければ、前記プログラム状態終了信号が所定時間遅く発生するようにデコーディングすることを特徴とする。
【００２４】
この実施形態において、前記デコーダは、前記第２検証回路で検証された前記メモリセルが正常にプログラムされていれば、前記プログラム状態終了信号が所定時間早く発生するようにデコーディングすることを特徴とする。
【００２５】
この実施形態において、前記ワードラインドライバは、前記プログラム状態活性化信号が活性化されている区間の間、前記プログラム電圧を前記行デコーダ回路に提供することを特徴とする。
【００２６】
この実施形態において、前記第１及び第２検証回路は、ワイヤードオア方式及び列スキャン方式のうちのいずれか１つの方式を利用することを特徴とする。
【００２７】
前記の目的を達成するための本発明の特徴によれば、ワードライン及びビットラインで配列されたメモリセルを有する不揮発性メモリ装置をプログラムする方法は、行デコーダを介して選択されたワードラインにプログラム電圧を印加する段階と、前記プログラム電圧によってプログラムされたメモリセルのプログラムの成否を、第１検証回路によって所定のビット単位で検証する段階と、前記検証が実行される間に、前記検証されるメモリセルのうちの前記行デコーダ回路から最も遠い距離に位置したメモリセルのプログラムの成否を、第２検証回路によって検証する段階と、前記第１及び第２検証回路の検証結果に応答して、次のプログラムループに適用されるプログラム電圧のレベル及び印加時間を調節する段階とを含むことを特徴とする。
【００２８】
この実施形態において、前記プログラム電圧のレベル及び印加時間を調節する段階は、前記第１検証回路の検証結果に応答して、プログラムループをカウントするカウントアップ信号、及び前記次のプログラムループを活性化するプログラム状態活性化信号を発生する段階と、前記カウントアップ信号に応答して、前記プログラム電圧のレベルに対応するプログラムステップコードを発生する段階と、前記プログラム状態活性化信号と前記第２検証回路の検証結果とに応答して、前記プログラムループの終了時点を決定する段階と、前記決定された終了時点にしたがって、前記プログラム状態活性化信号を非活性化する段階とを含むことを特徴とする。
【００２９】
この実施形態において、前記プログラム状態終了時点を決定する段階は、前記プログラム状態活性化信号が活性化された以後から経過された時間をカウントする段階と、前記カウントされた値と前記第２検証回路の検証結果とに応答して、プログラム状態終了信号を発生する段階とを含むことを特徴とする。
【００３０】
この実施形態において、前記第２検証回路の検証の結果、前記メモリセルが正常にプログラムされていなければ、前記プログラム状態終了信号が所定時間遅く発生することを特徴とする。
【００３１】
この実施形態において、前記第２検証回路の検証の結果、前記メモリセルが正常にプログラムされていれば、前記プログラム状態終了信号が所定時間早く発生することを特徴とする。
【発明の効果】
【００３２】
本発明によれば、選択されたワードラインにプログラム電圧を提供する行デコーダ回路から最も遠く離れているメモリセルのプログラム状態によって、プログラム電圧の印加時間が調節される。したがって、プログラムの信頼性を保障し、プログラム時間を効果的に短縮させることができるようになる。
【発明を実施するための最良の形態】
【００３３】
以下では、本発明による実施形態を添付の図面を参照して詳細に説明する。
【００３４】
本発明の新規の不揮発性メモリ装置及びそれのプログラム方法は、行デコーダ回路から最も遠い所に位置しているメモリセルのプログラムパス／フェイルにしたがって、各プログラムループで選択されたワードラインにプログラム電圧が印加される時間を調節する。その結果、プログラムの信頼性を保障し、プログラム時間を効果的に短縮させることができるようになる。本発明による不揮発性メモリ装置１００の詳細な構成は次の通りである。
【００３５】
図３は本発明の実施形態による不揮発性メモリ装置１００のブロック図であり、ＮＡＮＤ型フラッシュメモリ装置の構成を例示的に説明する。
【００３６】
図３を参照すると、本発明による不揮発性メモリ装置１００は、メモリセルアレイ１１０、行デコーダ回路１２０、ページバッファ回路１３０、列ゲート回路１４０（図面には、‘Ｙ−ＧＡＴＥ’で表記する）、データ入出力バッファ回路１５０（図面には、‘ＤＩＮ／ＤＯＵＴ ＢＵＦ’で表記する）、第１及び第２パス／フェイル検証回路１６１、１６２（図面には、‘Ｐ／Ｆ検証回路’で表記する）、コントローラ１７０、ワードライン電圧発生回路１８０、及びワードラインドライバ１９０を含む。図３に示したメモリセルアレイ１１０、行デコーダ回路１２０及びページバッファ回路１３０は、図１に示した回路構成と同一である。したがって、これらに対しては図１と同一な参照番号を付けたため、繰り返される説明は省略する。
【００３７】
図３において、行デコーダ回路１２０は、行アドレス情報にしたがって、メモリセルアレイ１１０のメモリブロックのうちのいずれか１つを選択し、ワードライン電圧発生回路１８０から発生したワードライン電圧を選択された行に伝達する。前記ワードライン電圧は、ワードライン電圧発生回路１８０から行デコーダ回路１２０に直接印加されず、ワードラインドライバ１９０を介して各行に対応するワードライン電圧と、印加時点が調節された選択信号Ｓｉに変換した後、行デコーダ回路１２０に印加される。前記選択信号Ｓｉはプログラム電圧、パス電圧、及び読み出し電圧のうちの少なくとも１つに該当する電圧レベルを有し、対応するワードラインにワードライン電圧として提供される。
【００３８】
ページバッファ回路１３０は複数個のページバッファで構成される。ページバッファ回路１３０は、コントローラ１７０によって制御され、それぞれのページバッファは動作モードにしたがって感知増幅器の機能と、書き込みドライバの機能とを実行する。読み出し動作のとき、ページバッファ回路１３０から読み出されたデータは、列ゲート回路１４０及びデータ入出力バッファ回路１５０を介して外部に出力される一方、検証動作のとき、読み出されたデータは、列ゲート回路１４０を介して第１及び第２パス／フェイル検証回路１６１、１６２に提供される。ページバッファ回路１３０には、プログラム動作のとき、メモリセルアレイ１１０に書き込まれるデータがデータ入出力バッファ回路１５０及び列ゲート回路１４０を介して入力され、入力されたデータにしたがって、ビットラインをプログラム電圧（例えば、接地電圧）またはプログラム禁止電圧（例えば、電源電圧）でそれぞれ駆動する。
【００３９】
第１パス／フェイル検証回路１６１は、コントローラ１７０の制御に応答して、各プログラムループの検証区間において、選択されたページのメモリセルが全てプログラムされたか否かを検証し、検証された結果をコントローラ１７０に出力する。第２パス／フェイル検証回路１６２は、コントローラ１７０の制御に応答して、前記選択されたページのメモリセルのうちの行デコーダ回路１２０から最も遠い所に位置したメモリセル（以下では、Ｆａｒ Ｃｅｌｌと称する）が正常にプログラムされたか否かを検証し、検証された結果をコントローラ１７０に出力する。
【００４０】
以下で詳細に説明するが、第１パス／フェイル検証回路１６１は、メモリセルアレイ１１０に具備された複数個の物理的ＩＯそれぞれから提供されたそれぞれのビットに対して、並列にプログラム検証を実行する。例えば、メモリセルアレイ１１０に１２８個のＩＯが具備される場合、第１パス／フェイル検証回路１６１は、１２８個のＩＯからそれぞれ１つずつ提供された総計１２８ビットに対するプログラム検証動作を並列に実行する。このために、第１パス／フェイル検証回路１６１は、１２８個のＩＯからそれぞれ提供された総計１２８ビットに対する論理演算（例えば、ＸＯＲ演算）によって、前記１２８ビットのうちのいずれか１つでプログラムエラーが発生したか否かを検証する。
【００４１】
そして、第２パス／フェイル検証回路１６２は、１２８個のＩＯから提供された１２８ビットのうちの行デコーダ回路１２０から最も遠い所に位置したＩＯにより提供されたビット（すなわち、Ｆａｒ Ｃｅｌｌから読み出されたビット）に対するプログラム検証を実行する。第２パス／フェイル検証回路１６２のプログラム検証動作は、第１パス／フェイル検証回路１６１のプログラム検証動作と並列に実行される。したがって、第２パス／フェイル検証回路１６２のプログラム検証のための別途の時間は要らなくなる。このように、本発明によるプログラム検証動作は、選択されたページのメモリセルのうちの少なくとも１つのセルでフェイルが検出されるまで、または選択されたページのすべてのメモリセルがパスであることが確認されるまで、各ＩＯ内部のアドレスを順次に増加しながら繰り返し実行される。
【００４２】
コントローラ１７０は、半導体メモリ装置１００の全般的なプログラム動作を制御するためのもので、制御ロジック１７１、プログラム時間調節部１７２（図面には‘ＰＧＭ時間調節部’で表記する）、及びプログラム電圧調節部１７５（図面には‘ＰＧＭ電圧調節部’で表記する）を含む。コントローラ１７０は、入出力ピンＩ／Ｏｉを介して入力されるプログラム命令ＣＭＤと第１及び第２パス／フェイル検証回路１６１、１６２のプログラム検証結果とに応答して、プログラム電圧活性化信号ＰＧＭ＿ＥＮ、プログラムステップコードＳＴＥＰｉ、及びプログラム状態活性化信号ＰＧＭ＿ＳＴＡＴＥ＿ＥＮを発生する。プログラム電圧活性化信号ＰＧＭ＿ＥＮはワードライン電圧発生回路１８０の電圧発生動作を活性化するのに用いられる。プログラムステップコードＳＴＥＰｉは各プログラムループの間に印加されるプログラム電圧Ｖｐｇｍのレベルを段階的に増加させるのに用いられる。そして、プログラム状態活性化信号ＰＧＭ＿ＳＴＡＴＥ＿ＥＮは前記プログラム検証動作の以後のプログラムループを活性化させるのに用いられる。
【００４３】
プログラム電圧Ｖｐｇｍは、プログラム状態活性化信号ＰＧＭ＿ＳＴＡＴＥ＿ＥＮが活性化された区間の間に選択されたワードラインに印加され、前記プログラム状態活性化信号ＰＧＭ＿ＳＴＡＴＥ＿ＥＮが活性化された区間の長さにしたがって、プログラム電圧の印加時間が変わるようになる。前記プログラム状態活性化信号ＰＧＭ＿ＳＴＡＴＥ＿ＥＮの活性化区間の長さは第２パス／フェイル検証回路１６２のプログラム検証結果（すなわち、Ｆａｒ Ｃｅｌｌのプログラム検証結果）によって決まる。本発明によるコントローラ１７０の詳細な構成及び動作は図４を参照して詳細に説明する。
【００４４】
図３において、ワードライン電圧発生回路１８０はコントローラ１７０から発生したプログラム電圧活性化信号ＰＧＭ＿ＥＮとプログラムステップコードＳＴＥＰｉとに応答して、プログラム電圧を発生する。本発明によるワードライン電圧発生回路１８０は増加型ステップパルスプログラム（ＩＳＰＰ)スキームにしたがってプログラム電圧を発生する。前記プログラム電圧は、多数のプログラムループで構成されたプログラムサイクルの間、所定の電圧増加分△Ｖｐｇｍだけずつ段階的に増加する。
【００４５】
ワードライン電圧ドライバ１９０は、ワードライン電圧発生回路１８０からプログラム電圧Ｖｐｇｍとパス電圧などが入力されて、行デコーダ回路１２０に提供される複数個の選択信号ＳＳ、Ｓｉ、ＧＳを発生する。ワードライン電圧ドライバ１９０から発生する選択信号Ｓｉは対応するワードラインに印加されるワードライン電圧に該当する。前記ワードライン電圧には、選択されたワードラインに提供されるプログラム電圧や、非選択されたワードラインに印加されるパス電圧などが含まれる。
【００４６】
本発明によるワードライン電圧ドライバ１９０は、プログラム電圧Ｖｐｇｍに対応する選択信号Ｓｉを発生するが、これはコントローラ１７０から発生したプログラム状態活性化信号ＰＧＭ＿ＳＴＡＴＥ＿ＥＮの制御による。前記プログラム状態活性化信号ＰＧＭ＿ＳＴＡＴＥ＿ＥＮの活性化区間は第２パス／フェイル検証回路１６２のプログラム検証結果（すなわち、Ｆａｒ Ｃｅｌｌのプログラム検証結果）によって決まる。したがって、ワードライン電圧ドライバ１９０から発生する選択信号Ｓｉの活性化区間は、結局、第２パス／フェイル検証回路１６２のプログラム検証結果（すなわち、Ｆａｒ Ｃｅｌｌのプログラム検証結果）によって決まる。
【００４７】
以上のような構成を有する本発明のフラッシュメモリ装置１００によれば、行デコーダ回路１２０から最も遠い所に位置しているメモリセル（すなわち、Ｆａｒ Ｃｅｌｌ）が正常にプログラムされたか否かによって、選択されたワードラインのプログラム電圧印加時間が調節される。その結果、プログラムの信頼性を保障し、プログラム時間を短縮させることができるようになる。
【００４８】
図４は図３に示したコントローラ１７０の詳細な構成を示す図である。図４には、コントローラ１７０と第１及び第２パス／フェイル検証回路１６１、１６２との間に送受信される制御信号が示されている。メモリセルアレイ１１０に具備されたそれぞれのＩＯから第１及び第２パス／フェイル検証回路１６１、１６２に入力されるデータについては、図５において詳細に説明する。そのため、図４においては、説明の便利のために、第１及び第２パス／フェイル検証回路１６１、１６２に入力されるデータに対する表示は省略した。
【００４９】
図４を参照すると、コントローラ１７０は、制御ロジック１７１、プログラム時間調節部１７２、及びプログラム電圧調節部１７５を含む。制御ロジック１７１は半導体メモリ装置１００の全般的なプログラム動作を制御する。プログラム電圧調節部１７５は各プログラムループで印加されるプログラム電圧のレベルを調節する。そして、プログラム時間調節部１７２は、行デコーダ回路１２０から最も遠い所に位置しているメモリセルのプログラムパス／フェイルにしたがって、選択されたワードラインのプログラム電圧印加時間を調節する。コントローラ１７０の詳細な構成及び機能は、次の通りである。
【００５０】
制御ロジック１７１は状態マシン（ｓｔａｔｅ ｍａｃｈｉｎｅ）で構成される。制御ロジック１７１には、現在のプログラムサイクル動作が正常に完了されたか否かを示す状態情報が格納される。制御ロジック１７１に格納された状態情報にしたがって、それぞれのプログラムループの実行が制御される。制御ロジック１７１はプログラムサイクルを知らせる命令ＣＭＤに応答してプログラム電圧活性化信号ＰＧＭ＿ＥＮを発生する。ワードライン電圧発生回路１８０はプログラム電圧活性化信号ＰＧＭ＿ＥＮに応答してプログラム電圧Ｖｐｇｍを発生する。１つのプログラムサイクルの間、前記プログラム電圧Ｖｐｇｍを利用したプログラムが実行された後、制御ロジック１７１はプログラムされた結果を検証するためにスキャンスタート信号ＹＳＣＡＮ＿ＳＴＡＲＴを発生する。第１及び第２パス／フェイル検証回路１６１、１６２は、スキャンスタート信号ＹＳＣＡＮ＿ＳＴＡＲＴに応答して、選択されたワードラインに接続されたメモリセルが正常にプログラムされたか否かを検証する。
【００５１】
第１及び第２パス／フェイル検証回路１６１、１６２に適用されることができるプログラム検証方法には、ワイヤードオア方式（ｗｉｒｅｄ−ＯＲ ｔｙｐｅ）と列スキャン方式（ｃｏｌｕｍｎ ｓｃａｎ ｔｙｐｅ）（以下では、Ｙ−スキャン方式と称する）がある。図３及び図４においては、本発明が適用される実施形態として、列スキャン方式のプログラム検証方法を例として挙げた。しかし、データ入出力方式のみ異なるように構成されれば、本発明に適用されるプログラム検証方法にワイヤードオア方式が用いられることができるのは当業者には自明である。第１及び第２パス／フェイル検証回路１６１、１６２のプログラム検証動作は、選択されたページのメモリセルのうちの少なくとも１つのセルでフェイルが検出されるまで、または選択されたページのすべてのメモリセルがパスであることが確認されるまで実行される。第１パス／フェイル検証回路１６１の検証結果ＹＳＣＡＮ＿ＥＮＤ、ＹＳＣＡＮ＿ＦＡＩＬ、ＹＳＣＡＮ＿ＰＡＳＳは制御ロジック１７１に入力され、第２パス／フェイル検証回路１６２の検証結果ＦＡＲＣＥＬＬ＿ＦＡＩＬ、ＦＡＲＣＥＬＬ＿ＰＡＳＳはプログラム時間調節部１７２にそれぞれ入力される。
【００５２】
制御ロジック１７１は、第１パス／フェイル検証回路１６１の検証結果ＹＳＣＡＮ＿ＥＮＤ、ＹＳＣＡＮ＿ＦＡＩＬ、ＹＳＣＡＮ＿ＰＡＳＳに応答して、活性化されたカウントアップ信号ＣＮＴ＿ＵＰとプログラム状態活性化信号ＰＧＭ＿ＳＴＡＴＥ＿ＥＮとを発生する。カウントアップ信号ＣＮＴ＿ＵＰは、プログラム電圧調節部１７５に印加され、次に実行されるプログラムループのプログラム電圧のレベルを調節するのに用いられる。そして、プログラム状態活性化信号ＰＧＭ＿ＳＴＡＴＥ＿ＥＮは、ワードラインドライバ１９０に印加されると同時にプログラム時間調節部１７２に印加される。プログラム時間調節部１７２は、第２パス／フェイル検証回路１６２の検証結果ＦＡＲＣＥＬＬ＿ＦＡＩＬ、ＦＡＲＣＥＬＬ＿ＰＡＳＳに応答して、プログラム状態活性化信号ＰＧＭ＿ＳＴＡＴＥ＿ＥＮの終了時点（すなわち、検証動作の次に実行されるプログラムループでプログラム電圧が印加される時間）を調節するのに用いられる。
【００５３】
プログラム電圧のレベルを調節するプログラム電圧調節部１７５の構成は次の通りである。
【００５４】
プログラム電圧調節部１７５はループカウンタ１７６とデコーダ１７７とで構成される。制御ロジック１７１は、プログラムの検証の結果、現在のプログラムループのプログラム動作が正しく実行されていなければ、第１パス／フェイル検証回路１６１から発生したＹＳＣＡＮ＿ＦＡＩＬの検証結果に応答して、カウントアップ信号ＣＮＴ＿ＵＰを活性化させる。そして、制御ロジック１７１は、プログラムの検証の結果、現在のプログラムループのプログラム動作が全て正しく実行されたか、または最後のプログラムループに対するプログラム検証動作が終了されれば、第１パス／フェイル検証回路１６１から発生したＹＳＣＡＮ＿ＰＡＳＳまたはＹＳＣＡＮ＿ＥＮＤ検証信号に応答して、カウントアップ信号ＣＮＴ＿ＵＰを非活性化させてプログラムサイクルを終了する。
【００５５】
ループカウンタ１７６は、制御ロジック１７１から発生したカウントアップ信号ＣＮＴ＿ＵＰに応答して、プログラムループの回数をカウントする。デコーダ１７７は、ループカウンタ１７６の出力をデコーディングしてステップ制御信号ＳＴＥＰｉ（ｉ＝０−ｎ）を発生する。ステップ制御信号ＳＴＥＰｉはワードライン電圧発生回路１８０に入力される。ループカウンタ１７６の出力値が増加されるのにしたがい、ステップ制御信号ＳＴＥＰｉ（ｉ＝０−ｎ）は順次に活性化される。ステップ制御信号ＳＴＥＰｉ（ｉ＝０−ｎ）が順次に活性化されるのにしたがい、ワードライン電圧発生回路１８０は、それぞれのプログラムループに対して所定のレベル△Ｖｐｇｍだけ上昇されたプログラム電圧を発生するようになる。前記電圧増加分△Ｖｐｇｍは使用者の要求にしたがって調節可能である。
【００５６】
一方、プログラム状態活性化信号ＰＧＭ＿ＳＴＡＴＥ＿ＥＮが活性化されるということは、ワードライン電圧発生回路１８０から発生したプログラム電圧が選択されたワードラインに印加されることを意味する。そして、活性化されたプログラム状態活性化信号ＰＧＭ＿ＳＴＡＴＥ＿ＥＮが非活性化されるということは、結局、プログラム電圧の印加が終了することを意味する。したがって、プログラム状態活性化信号ＰＧＭ＿ＳＴＡＴＥ＿ＥＮの活性化及び非活性化時点を調節すれば、選択されたワードラインに印加されるプログラム電圧の印加時間が調節される。本発明で実行されるプログラム状態活性化信号ＰＧＭ＿ＳＴＡＴＥ＿ＥＮの非活性化時点は、第２パス／フェイル検証回路１６２のプログラム検証結果（すなわち、Ｆａｒ Ｃｅｌｌに対するプログラム検証結果）によって決まる。
【００５７】
このためにプログラム時間調節部１７２はカウンタ１７３とデコーダ１７４とで構成される。カウンタ１７３は、制御ロジック１７１から発生したプログラム状態活性化信号ＰＧＭ＿ＳＴＡＴＥ＿ＥＮに応答して初期化された後、時間が経過するのにしたがい、内部クロック信号に同期されてカウント値を増加させる。すなわち、カウンタ１７３はプログラム状態が始まった以後から経過された時間をカウントする。カウンタ１７３でカウントされた値ＰＧＭ＿ＳＴＡＴＥ＿ＣＮＴはデコーダ１７４に入力される。デコーダ１７４は、前記カウント値ＰＧＭ＿ＳＴＡＴＥ＿ＣＮＴと、すぐ以前に実行された第２パス／フェイル検証回路１６２のプログラム検証結果（すなわち、Ｆａｒ Ｃｅｌｌに対するプログラム検証結果）とに応答して、プログラム状態終了信号ＰＧＭ＿ＳＴＡＴＥ＿ＥＮＤを発生する。例えば、Ｆａｒ Ｃｅｌｌが正常にプログラムされていない場合、デコーダ１７４は、第２パス／フェイル検証回路１６２から発生したＦＡＲＣＥＬＬ＿ＦＡＩＬの検証結果に応答して、プログラム状態終了信号ＰＧＭ＿ＳＴＡＴＥ＿ＥＮＤが所定時間遅く発生するようにデコーディングを実行する。一方、Ｆａｒ Ｃｅｌｌが正常にプログラムされていた場合、デコーダ１７４は、第２パス／フェイル検証回路１６２から発生したＦＡＲＣＥＬＬ＿ＰＡＳＳの検証結果に応答して、プログラム状態終了信号ＰＧＭ＿ＳＴＡＴＥ＿ＥＮＤが所定時間早く発生するようにデコーディングを実行する。制御ロジック１７１は、デコーダ１７４から発生したプログラム状態終了信号ＰＧＭ＿ＳＴＡＴＥ＿ＥＮＤに応答して、プログラム状態活性化信号ＰＧＭ＿ＳＴＡＴＥ＿ＥＮを非活性化させる。プログラム状態活性化信号ＰＧＭ＿ＳＴＡＴＥ＿ＥＮが非活性化されるのにしたがい、選択されたワードラインに対するプログラム電圧の供給が中止される。以上のようなプログラム時間調節部１７２の動作によれば、検証区間の次に実行されるプログラム区間において、プログラム電圧が印加される時間がＦａｒ Ｃｅｌｌのプログラム状態によって調節されることができるようになる。
【００５８】
上述のように、本発明による不揮発性メモリ装置１００は、行デコーダ回路１２０から最も遠い所に位置しているＩＯに属するメモリセル（すなわち、Ｆａｒ Ｃｅｌｌ）のプログラムパス／フェイルにしたがって、各ループ別のプログラム電圧印加時間を調節する。その結果、プログラムの信頼性を保障し、プログラム時間を効果的に短縮させることができるようになる。
【００５９】
図５は図３に示した第１及び第２パス／フェイル検証回路１６１、１６２のプログラム検証動作を説明するための図である。図５には、メモリセルアレイ１１０に１２８個の物理的なＩＯが具備された場合と、１つの行デコーダ１２０に１つのメモリセルアレイ１１０が対応する場合とが示されている。しかし、これは本発明が適用される一例に過ぎず、１つの行デコーダ１２０に二つのメモリセルアレイが対応する場合にも本発明が適用されることができる。それだけでなく、メモリセルアレイ１１０に具備される物理的ＩＯの個数も多様に変更されることができる。
【００６０】
図５を参照すると、メモリセルアレイ１１０は複数個の物理的なＩＯ（ＩＯ＿０、ＩＯ＿１、・・・、ＩＯ＿１２６、ＩＯ＿１２７）に区分され、それぞれのＩＯ（ＩＯ＿０、ＩＯ＿１、・・・、ＩＯ＿１２６、ＩＯ＿１２７）の内部には複数個のメモリセルが含まれる。それぞれのＩＯ（ＩＯ＿０、ＩＯ＿１、・・・、ＩＯ＿１２６、ＩＯ＿１２７）に含まれたメモリセルは、列ゲート回路１４０の制御によって順次にスキャニングされて、プログラム状態が検証される。
【００６１】
図５に示したように、本発明で実行される第１パス／フェイル検証回路１６１のプログラム検証動作は、ＩＯ単位で順次に実行されるのではなく、複数個の物理的なＩＯ（ＩＯ＿０、ＩＯ＿１、・・・、ＩＯ＿１２６、ＩＯ＿１２７）それぞれから１つずつ提供されたビット（すなわち、１２８ビット）に対する検証動作が並列に実行される。そして、第２パス／フェイル検証回路１６２においては、１２８個のＩＯから提供された１２８ビットのうちの行デコーダ回路１２０から最も遠い所に位置したＩＯにより提供されたビット（すなわち、Ｆａｒ Ｃｅｌｌから読み出されたビット）に対するプログラム検証動作が実行される。第２パス／フェイル検証回路１６２のプログラム検証動作は、第１パス／フェイル検証回路１６１のプログラム検証動作と並列に実行される。このような本発明によるプログラム検証動作は、選択されたページのメモリセルのうちの少なくとも１つのセルでフェイルが検出されるまで、または選択されたページのすべてのメモリセルがパスであることが確認されるまで、各ＩＯの内部のアドレスを順次に増加しながら繰り返し実行される。
【００６２】
例えば、第１パス／フェイル検証回路１６１は、それぞれのＩＯ（ＩＯ＿０、ＩＯ＿１、・・・、ＩＯ＿１２６、ＩＯ＿１２７）に含まれている１番目のメモリセル１２８個（ＡＤＤ１＿ＩＯ＿１２７、…、ＡＤＤ１＿ＩＯ＿Ｏ）に対するプログラム状態を並列に検証した後、それぞれのＩＯ（ＩＯ＿０、ＩＯ＿１、・・・、ＩＯ＿１２６、ＩＯ＿１２７）に含まれている２番目のメモリセル１２８個（ＡＤＤ２＿ＩＯ＿１２７、・・・、ＡＤＤ２＿ＩＯ＿Ｏ）に対するプログラム状態を並列に検証する。以上のようなプログラム検証方式は、それぞれのＩＯ（ＩＯ＿０、ＩＯ＿１、・・・、ＩＯ＿１２６、ＩＯ＿１２７）に含まれている３番目、・・・j番目などのメモリセルそれぞれに対しても同様に適用される。第１パス／フェイル検証回路１６１のプログラム検証動作のとき、１つでも正常にプログラムされていないセルが検出されれば、前記検証動作は中止され、次のループのプログラム動作が実行される。この時、検証動作が中断された各ＩＯの内部のアドレスは制御ロジック１７０の制御によって、レジスタのようなデータ格納手段（図示せず）に格納され、次に実行される検証動作のスタートアドレスとして提供される。
【００６３】
図６Ａないし図６Ｃは本発明によるプログラム方法にしたがう不揮発性メモリ装置のプログラム電圧の変化を示す図である。
【００６４】
まず、図４ないし図６Ａを参照すると、１番目のループのプログラム区間Ｐにおいては、ｔ−αの時間だけプログラム電圧を印加してプログラムが実行される。その以後、１番目のプログラムループのプログラム検証区間Ｖが実行される。この時、それぞれのＩＯ（ＩＯ＿０、ＩＯ＿１、・・・、ＩＯ＿１２６、ＩＯ＿１２７）に含まれている２番目のメモリセル（ＡＤＤ２＿ＩＯ＿１２７、・・・、ＡＤＤ２＿ＩＯ＿Ｏ）のグループでプログラムエラーが検出されれば、制御ロジック１７１は、第１パス／フェイル検証回路１６１から発生したＹＳＣＡＮ＿ＦＡＩＬの検証結果に応答して、カウントアップ信号ＣＮＴ＿ＵＰとプログラム状態活性化信号ＰＧＭ＿ＳＴＡＴＥ＿ＥＮとを活性化する。この時、プログラム検証動作が中断されたメモリセルのアドレス情報は、制御ロジック１７１の制御によってレジスタのようなデータ格納手段に格納される。
【００６５】
プログラム電圧調節部１７５は、活性化されたカウントアップ信号ＣＮＴ＿ＵＰに応答して、プログラム電圧のレベルを決定するプログラムステップコードＳＴＥＰｉをデコーディングする。ワードライン電圧発生回路１８０は、デコーディングされたプログラムステップコードＳＴＥＰｉに応答して、次のプログラムループで適用されるプログラム電圧を発生する。プログラム時間調節部１７２は、活性化されたプログラム状態活性化信号ＰＧＭ＿ＳＴＡＴＥ＿ＥＮと第２パス／フェイル検証回路１６２のプログラム検証結果（すなわち、Ｆａｒ Ｃｅｌｌのプログラム検証結果）とに応答して、プログラム状態活性化信号ＰＧＭ＿ＳＴＡＴＥ＿ＥＮの非活性化時点を調節することによって、プログラム電圧の印加時間を調節する。この場合、検証動作は各ＩＯの２番目のセルまで実行されたため、行デコーダ回路１２０から最も遠く離れているＩＯ（ＩＯ＿０）の２番目のセル（ＡＤＤ２＿ＩＯ＿Ｏ）がＦａｒ Ｃｅｌｌになる。もし、１番目のプログラムループにおける検証の結果、前記Ｆａｒ Ｃｅｌｌ（ＡＤＤ２＿ＩＯ＿Ｏ）が正常にプログラムされていなければ、プログラム状態活性化信号ＰＧＭ＿ＳＴＡＴＥ＿ＥＮは、プログラム状態活性化信号ＰＧＭ＿ＳＴＡＴＥ＿ＥＮが活性化された後、ｔ＋αの時間が経過した後にようやく非活性化される。すなわち、２番目のループのプログラム区間Ｐの長さ（すなわち、プログラム電圧が印加される時間）は結局、ｔ＋αの時間になる。
【００６６】
次に、２番目のプログラムループのプログラム検証区間Ｖにおいては、プログラム検証動作が中止された２番目のメモリセル（ＡＤＤ２＿ＩＯ＿１２７、・・・、ＡＤＤ２＿ＩＯ＿Ｏ）からプログラム検証がまた開始される。検証の結果、もし、それぞれのＩＯ（ＩＯ＿０、ＩＯ＿１、・・・、ＩＯ＿１２６、ＩＯ＿１２７）に含まれているｊ番目のメモリセル（ＡＤＤｊ＿ＩＯ＿１２７、…、ＡＤＤｊ＿ＩＯ＿Ｏ）のグループでプログラムエラーが検出されれば、制御ロジック１７１は前記検証動作を中止する。この場合、行デコーダ回路１２０から最も遠く離れているＩＯ（ＩＯ＿０）のｊ番目のセル（ＡＤＤｊ＿ＩＯ＿Ｏ）がＦａｒ Ｃｅｌｌになる。もし、２番目のプログラムループにおける検証の結果、前記Ｆａｒ Ｃｅｌｌ（ＡＤＤｊ＿ＩＯ＿Ｏ）が正常にプログラムされていると、プログラム状態活性化信号ＰＧＭ＿ＳＴＡＴＥ＿ＥＮが活性化される区間（すなわち、プログラム電圧が印加される時間）はｔ−αの時間に減少するようになる。この場合、３番目のプログラムループの検証動作はｊ番目のメモリセルＡＤＤｊ＿ＩＯ＿１２７、…、ＡＤＤｊ＿ＩＯ＿Ｏから開始される。
【００６７】
図６Ａないし図６Ｃを参照すると、本発明で適用されるプログラム時間は、Ｆａｒ Ｃｅｌｌのプログラム状態にしたがって増加または減少され、増加または減少される量は、多様な形態に変更及び変形が可能である。例えば、それぞれのプログラムループのプログラム区間Ｐはｔ−α、ｔ＋α、ｔ−β、ｔ＋β、ｔ−γ、ｔ＋γなどの時間で設定されることができる。ここで、α、β、γの値は互いに異なる値を有する。
【００６８】
図７は本発明による不揮発性メモリ装置１００のプログラム方法を示すフローチャートである。
【００６９】
図７を参照すると、本発明による不揮発性メモリ装置１００は、増加型ステップパルスプログラム（ＩＳＰＰ）スキームにしたがってプログラムを実行し、（Ｓ１１００段階）、前記プログラム動作が正常に実行されたか否かを検証するための検証読み出し動作を実行する（Ｓ１２００段階）。この時、前記プログラム動作及び検証読み出し動作はコントローラ１７０の制御にしたがってページバッファ回路１３０によって実行される。検証読み出し動作で読み出されたデータは、ページバッファ回路１３０に格納されてから、列ゲート回路１４０を介して所定のビット単位（例えば、１２８ビット）で第１パス／フェイル検証回路１６１に提供される。このとき、前記所定ビット単位（例えば、１２８ビット）のデータのうちの行デコーダ回路１２０から最も遠く離れているセル（すなわち、Ｆａｒ Ｃｅｌｌ）のデータは第２パス／フェイル検証回路１６２に提供される。
【００７０】
第１及び第２パス／フェイル検証回路１６１、１６２は、列ゲート回路１４０を介して提供される所定のビット単位（例えば、１２８ビット）のデータに対するプログラムパス／フェイル検証を実行する（Ｓ１３００段階）。Ｓ１３００段階において第１パス／フェイル検証回路１６１は、メモリセルアレイ１１０に具備された複数個の物理的ＩＯからそれぞれ１ビットずつ提供された複数個のビット（すなわち、１２８ビット）に対するプログラム検証動作を並列に実行する。そして、第２パス／フェイル検証回路１６２は、第１パス／フェイル検証回路１６１のプログラム検証動作が実行される間、Ｆａｒ Ｃｅｌｌに対するプログラム検証を実行する。
【００７１】
Ｓ１３００段階において第１及び第２パス／フェイル検証回路１６１、１６２がプログラム検証を実行する後に、検証読み出し動作で読み出されたすべてのセルが正常にプログラムされたか否かが判別される（Ｓ１４００段階）。Ｓ１４００段階における判別結果、すべてのセルが正常にプログラムされたら、プログラム過程はパス状態で終了する。そして、Ｓ１４００段階における判別結果、すべてのセルが正常にプログラムされなければ、（すなわち、１つでも非正常にプログラムされたセルが存在すれば）、現在のプログラムループが最後のプログラムループであるか否かが判別される（Ｓ１５００段階）。
【００７２】
Ｓ１５００段階における判別結果、現在のプログラムループが最後のプログラムループであれば、プログラム過程はフェイル状態で終了する。そして、Ｓ１５００段階における判別結果、現在のプログラムループが最後のプログラムループではなければ、Ｓ１３００段階において実行された第２パス／フェイル検証回路１６２のプログラム検証結果（ＦＡＲＣＥＬＬ＿ＦＡＩＬ／ＦＡＲＣＥＬＬ＿ＰＡＳＳ）に基づいてＦａｒ Ｃｅｌｌが正常にプログラムされたか否かが判別される（Ｓ１６００段階）。
【００７３】
Ｓ１６００段階における判別の結果、Ｆａｒ Ｃｅｌｌが正常にプログラムされていなければ、次のプログラムループで印加されるプログラム電圧の印加時間が増加され（Ｓ１７００段階）、手順はＳ１１００段階に戻る。そして、Ｓ１６００段階における判別の結果、Ｆａｒ Ｃｅｌｌが正常にプログラムされていれば、次のプログラムループで印加されるプログラム電圧の印加時間が減少され（Ｓ１８００段階）、手順はＳ１１００段階に戻る。
【００７４】
以上のような本発明による揮発性メモリ装置及びそれのプログラム方法によれば、行デコーダ回路１２０から最も遠い所に位置しているメモリセル（すなわち、Ｆａｒ Ｃｅｌｌ）のプログラムパス／フェイルにしたがって、選択されたワードラインのプログラム電圧印加時間が調節される。その結果、プログラム時間を短縮させることができるようになる。一方、プログラム電圧が印加される時間は、当業者によく知られているように、メモリセルのオーバープログラムとも密接な関連がある。本発明ではプログラム電圧の印加時間を最小化することによって、プログラムのとき、過度な時間の間、プログラム電圧がメモリセルに印加されることを防止する。したがって、オーバープログラム問題が防止され、プログラムの信頼度が増加するようになる。
【００７５】
以上のように、図面と明細書において最適の実施形態が開示された。ここで特定の用語が用いられたが、これは但し、本発明を説明するために用いられたものであり、意味限定や特許請求の範囲に記載した本発明の範囲を制限するために用いられたものではない。そのため、本技術分野の通常の知識を有する者であれば、多様な変形及び均等な他の実施形態が可能であることを理解するであろう。したがって、本発明の技術的保護範囲は添付の特許請求範囲の技術的思想によって定めるべきである。
【図面の簡単な説明】
【００７６】
【図１】一般的なＮＡＮＤフラッシュメモリのアレイ構成を示す図である。
【図２】増加型ステップパルスプログラム(ＩＳＰＰ)スキームによってプログラムされる一般的なＮＡＮＤ型フラッシュメモリ装置のプログラム電圧の変化を示す図である。
【図３】本発明の実施形態による不揮発性メモリ装置のブロック図である。
【図４】図３に示したコントローラの詳細な構成を示す図である。
【図５】図３に示した第１及び第２パス／フェイル検証回路のプログラム検証動作を説明するための図である。
【図６Ａ】本発明による不揮発性メモリ装置のプログラム電圧の変化を示す図である。
【図６Ｂ】本発明による不揮発性メモリ装置のプログラム電圧の変化を示す図である。
【図６Ｃ】本発明による不揮発性メモリ装置のプログラム電圧の変化を示す図である。
【図７】本発明による不揮発性メモリ装置のプログラム方法を示すフローチャートである。
【符号の説明】
【００７７】
１００：揮発性メモリ装置
１１０：メモリセルアレイ
１２０：行デコーダ回路
１３０：ページバッファ回路
１４０：列ゲート回路
１５０：データ入出力バッファ回路
１６１：第１パス／フェイル検証回路
１６２：第２パス／フェイル検証回路
１７０：コントローラ
１８０：ワードライン電圧発生回路
１９０：ワードラインドライバ
【図１】
0005214896.tif 000002
【図２】
0005214896.tif 000003
【図３】
0005214896.tif 000004
【図４】
0005214896.tif 000005
【図５】
0005214896.tif 000006
【図６Ａ】
0005214896.tif 000007
【図６Ｂ】
0005214896.tif 000008
【図６Ｃ】
0005214896.tif 000009
【図７】
0005214896.tif 000010