(57)【要約】【課題】不揮発性メモリ装置をプログラムする方法が提供される。【解決手段】この方法は、選択されたメモリセルをプログラムする段階と、前記プログラムされたメモリセルからデータビットを読み出す段階と、前記読み出されたデータビットが一定の単位で順次に選択され、前記選択されたデータビットが全部プログラムパスデータビットであるか否かが判別される第１列スキャン動作を実行する段階と、前記第１列スキャン動作途中フェイルが発生する場合、プログラムループ回数に応じて前記読み出されたデータに含まれたフェイルビット数を検出するための第２列スキャン動作を実行する段階と、前記第２列スキャン動作の間エラー訂正可能なビット数より少ないフェイルビット数が前記読み出されたデータビットから検出される場合、プログラムパスとしてプログラム動作を終了する段階とを含む。【選択図】図３
2007035244.tif 000002
【特許請求の範囲】
【請求項１】
不揮発性メモリ装置をプログラムする方法において、
選択されたメモリセルをプログラムする段階と、
前記プログラムされたメモリセルからデータビットを読み出す段階と、
前記読み出されたデータビットが一定の単位で順次に選択され、前記選択されたデータビットが全部プログラムパスデータビットであるか否かを判別する第１列スキャン動作を実行する段階と、
前記第１列スキャン動作途中フェイルが発生する場合、プログラムループ回数に応じて前記読み出されたデータに含まれたフェイルビット数を検出するための第２列スキャン動作を実行する段階と、
前記第２列スキャン動作の間エラー訂正可能なビット数より少ないフェイルビット数が前記読み出されたデータビットから検出される場合、プログラムパスとしてプログラム動作を終了する段階とを含むことを特徴とする方法。
【請求項２】
前記第２列スキャン動作はプログラムループ回数が２回乃至３回進行された後実行されることを特徴とする請求項１に記載の方法。
【請求項３】
前記エラー訂正可能なビット数より多いフェイルビット数が検出される場合、前記第２列スキャン動作を中止することを特徴とする請求項１に記載の方法。
【請求項４】
前記第２列スキャン動作が中止された後、前記プログラム段階、前記読み出し段階、及び前記第１及び第２列スキャン段階が繰り返されることを特徴とする請求項３に記載の方法。
【請求項５】
前記第２列スキャン動作は前記第１列スキャン動作の時フェイルが発生したデータビットから開始することを特徴とする請求項１に記載の方法。
【請求項６】
不揮発性メモリ装置をプログラムする方法において、
選択されたメモリセルをプログラムする段階と、
前記選択されたメモリセルがプログラムされた後、検証読み出し動作を実行する段階と、
前記検証読み出し動作が実行された後、第１列スキャン動作を実行する段階と、
前記第１列スキャン動作の中にフェイルが発生する場合、第２列スキャン動作を実行する段階とを含み、
前記第２列スキャン動作の間エラー訂正可能なビット数より少ないフェイルビット数が前記読み出されたデータビットから検出される場合、プログラム動作がプログラムパスとして終わることを特徴とする方法。
【請求項７】
前記第１列スキャン動作の間、前記読み出されたデータビットが一定の単位で順次に選択され、前記選択されたデータビットが全部プログラムパスデータビットであるか否かが判別されることを特徴とする請求項６に記載の方法。
【請求項８】
前記第２列スキャン動作の間、前記読み出されたデータに含まれたフェイルビット数が検出されることを特徴とする請求項６に記載の方法。
【請求項９】
前記第２列スキャン動作はプログラムループ回数に応じて実行されることを特徴とする請求項６に記載の方法。
【請求項１０】
前記第２列スキャン動作はプログラムループ回数が２回乃至３回進行された後実行されることを特徴とする請求項６に記載の方法。
【請求項１１】
前記エラー訂正可能なビット数より多いフェイルビット数が検出される場合、前記第２列スキャン動作を中止する段階をさらに含むことを特徴とする請求項６に記載の方法。
【請求項１２】
前記第２列スキャン動作が中止された後、前記プログラム動作、前記検証読み出し動作、及び前記第１及び第２列スキャン動作が繰り返されることを特徴とする請求項１１に記載の方法。
【請求項１３】
前記第２列スキャン動作は前記第１列スキャン動作の時、フェイルが発生したデータビットから開始することを特徴とする請求項６に記載の方法。
【請求項１４】
行及び列で配列されたメモリセルのアレイと、
検証読み出し動作の時、選択された行のメモリセルからデータビットを読み出すページバッファ回路と、
列アドレスに応答して前記ページバッファ回路内のデータビットを一定の単位で選択する列選択回路と、
第１列スキャン動作の時、前記列選択回路からのデータビットが全部プログラムパスデータビットであるか否かを判別するパス／フェイル点検回路と、
第２列スキャン動作の時、前記列選択回路からのデータビットに含まれたフェイルビットを計算するフェイルビットカウンタ回路と、
前記第１列スキャン動作の時、前記列選択回路からのデータビットのうちの少なくとも一つがプログラムフェイルデータビットであることを示す場合、前記第２列スキャン動作が実行されるように前記フェイルビットカウンタ回路を活性化させる制御ロジック回路とを含み、
前記制御ロジック回路は前記第２列スキャン動作の間エラー訂正可能なビット数より少ないフェイルビット数が前記読み出されたデータビットから検出される場合、プログラムパスとしてプログラム動作を終了させることを特徴とする不揮発性メモリ装置。
【請求項１５】
前記制御ロジック回路は前記第１列スキャン動作の時、前記列選択回路からのデータビットのうちの少なくとも一つがプログラムフェイルデータビットであることを示す場合、前記パス／フェイル点検回路を非活性化させることを特徴とする請求項１４に記載の不揮発性メモリ装置。
【請求項１６】
前記第１列スキャン動作の時、前記制御ロジック回路によって制御され、前記列選択回路に供給される第１列アドレスを順次に発生する第１アドレス発生回路と、
前記第２列スキャン動作の時、前記制御ロジック回路によって制御され、前記第１列スキャン動作の間前記第１アドレス発生回路から最後に出力された第１列アドレスが開始アドレスとして入力され、前記入力されたアドレスに応答して前記列選択回路に供給される第２列アドレスを順次に発生する第２アドレス発生回路とをさらに含むことを特徴とする請求項１４に記載の不揮発性メモリ装置。
【請求項１７】
前記第２列スキャン動作はプログラムループ回数が２回乃至３回進行された後実行されることを特徴とする請求項１４に記載の不揮発性メモリ装置。
【請求項１８】
前記制御ロジック回路は前記エラー訂正可能なビット数より多いフェイルビット数が検出される場合、前記第２列スキャン動作を中止させることを特徴とする請求項１４に記載の不揮発性メモリ装置。
【請求項１９】
前記第２列スキャン動作が中止された後、前記制御ロジック回路は次のプログラムループが進行されるようにすることを特徴とする請求項１８に記載の不揮発性メモリ装置。
【請求項２０】
前記制御ロジック回路によって制御され、プログラムループ回数を計算するループカウンタ回路と、
最大プログラムループ回数を貯蔵するためのプログラム回路とをさらに含み、前記プログラム回路に貯蔵された前記最大プログラムループ回数は前記制御ロジック回路に供給されることを特徴とする請求項１４に記載の不揮発性メモリ装置。
【請求項２１】
前記プログラム回路は前記最大プログラムループ回数が調節可能になるようにプログラムされることを特徴とする請求項２０に記載の不揮発性メモリ装置。
【請求項２２】
前記制御ロジック回路は前記ループカウンタ回路から提供されるプログラムループ回数が前記最大プログラムループ回数に到逹する場合、プログラム動作を終了させることを特徴とする請求項２０に記載の不揮発性メモリ装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は半導体メモリ装置に係り、より具体的には不揮発性メモリ装置及びそのプログラム方法に関する。
【背景技術】
【０００２】
半導体メモリ装置に貯蔵されたデータのリフレッシュなしに電気的に消去及びプログラム可能な半導体メモリ装置に対する要求が漸次的に増加している。また、メモリ装置の貯蔵容量及び集積度を高めるのが主な流れである。貯蔵データのリフレッシュなしに大容量及び高い集積度を提供する不揮発性半導体メモリ装置の一例がＮＡＮＤ型フラッシュメモリ装置である。パワーオフ時さえデータをそのまま維持するので、そのようなフラッシュメモリ装置は電源が急に遮断される恐れがある電子装置（例えば、携帯用端末機、携帯用コンピュータ等）に幅広く使われている。
【０００３】
例示的な不揮発性メモリ装置が特許文献１及び２に開示されており、この出願のレファレンスとして含まれる。
【０００４】
図１は一般的な不揮発性メモリ装置のプログラム手続きを示すフローチャートである。以下、図１を参照して、一般的な不揮発性メモリ装置のプログラム方法を説明する。
【０００５】
プログラム動作が開始されれば、先に、プログラムされるデータが不揮発性メモリ装置のレジスタ内にロードされる（Ｓ１０）。一応、プログラムされるデータのロードが完了すれば、ロードされたデータはメモリセルアレイにプログラムされる（Ｓ２０）。プログラムされたメモリセルが所望のスレッショルド電圧を有するか否かを判別するために検証読み出し動作が実行される（Ｓ３０）。検証動作に応じて読み出されたデータはレジスタ内に一時貯蔵される。レジスタ内に貯蔵されたデータは一定の単位で選択され、内部データバスにロードされる（Ｓ４０）。このような動作は以下“列スキャン動作（ｃｏｌｕｍｎ  Ｓｃａｎ  ｏｐｅｒａｔｉｏｎ）”と称する。内部データバス上にロードされた一定の単位のデータビットが同じ値（例えば、プログラムパスデータ値）を有するか否かが判別される（Ｓ５０）。すなわち、プログラム動作が成功したか否かが判別される。もし内部データバス上にロードされた一定の単位のデータビットのうちの少なくとも一つのデータビットがプログラムフェイルデータ値を有すれば、現在のプログラムループが最大プログラムループであるか否かが判別される（Ｓ６０）。もし現在のプログラムループが最大プログラムループではなければ、Ｓ２０段階に進行する。もし現在のプログラムループが最大プログラムループであれば、プログラム動作がプログラムフェイルとして処理され（Ｓ７０）、プログラム手続きが終わる。Ｓ５０段階において、もし内部データバス上にロードされた一定の単位のデータビットが全部プログラムパスデータ値を有すれば、プログラム動作はプログラムパスとして処理され（Ｓ８０）、プログラム手続きが終わる。
【０００６】
上記の説明から分かるように、プログラム動作は複数のプログラムループを通じて実行され、各プログラムループはプログラム区間Ｓ２０とプログラム検証区間Ｓ３０〜Ｓ５０で構成される。プログラムループは選択されたメモリセルが全部プログラムされるまで最大プログラムループ回数内で繰り返して実行される。もしプログラム動作が最大プログラムループ回数内でプログラムフェイルとして処理されれば、プログラムフェイルされたメモリブロックは欠陥ブロック（ｂａｄ  ｂｌｏｃｋ）として分類される。欠陥ブロックへの分類はフェイルビット数（ｆａｉｌ  ｂｉｔ  ｎｕｍｂｅｒ）（これはプログラムされなければならないが、プログラムされていないデータビットの数を意味する）にかかわらず行われる。もしフェイルビット数がエラー訂正回路によって可能なビット数内に含まれれば、そのようなフェイルデータビットは読み出し動作の時、エラー訂正回路によって訂正されることができる。すなわち、プログラム動作がフェイルビット数に応じて選択的にプログラムパスとして処理されれば、欠陥ブロックの生成を抑制することができるものである。
【特許文献１】米国特許第５，６７７，８７３号
【特許文献２】米国特許第５，９９１，２０２号
【発明の開示】
【発明が解決しようとする課題】
【０００７】
本発明の目的は、プログラム時間を減らし、かつ欠陥ブロックの生成を抑制し、かつプログラムループ回数を調節することができる不揮発性メモリ装置及びそのプログラム方法を提供することにある。
【課題を解決するための手段】
【０００８】
上述した目的を解決するために本発明の一特徴によれば、不揮発性メモリ装置をプログラムする方法は選択されたメモリセルをプログラムする段階と、前記プログラムされたメモリセルからデータビットを読み出す段階と、前記読み出されたデータビットが一定の単位で順次に選択され、記選択されたデータビットが全部プログラムパスデータビットであるか否かが判別される第１列スキャン動作を実行する段階と、前記第１列スキャン動作途中フェイルが発生する場合、プログラムループ回数に応じて前記読み出されたデータに含まれたフェイルビット数を検出するための第２列スキャン動作を実行する段階と、前記第２列スキャン動作の間エラー訂正可能なビット数より少ないフェイルビット数が前記読み出されたデータビットから検出される場合、プログラムパスとしてプログラム動作を終了する段階とを含む。
【０００９】
例示的な実施形態において、前記第２列スキャン動作はプログラムループ回数が２回乃至３回進行された後実行される。
【００１０】
例示的な実施形態において、前記エラー訂正可能なビット数より多いフェイルビット数が検出される場合、前記第２列スキャン動作が中止される。
【００１１】
例示的な実施形態において、前記第２列スキャン動作が中止された後、前記プログラム段階、前記読み出し段階、及び前記第１及び第２列スキャン段階が繰り返される。
【００１２】
例示的な実施形態において、前記第２列スキャン動作は前記第１列スキャン動作の時、フェイルが発生したデータビットから開始する。
【００１３】
本発明に係る特徴によれば、不揮発性メモリ装置をプログラムする方法は選択されたメモリセルをプログラムする段階と、前記選択されたメモリセルがプログラムされた後、検証読み出し動作を実行する段階と、前記検証読み出し動作が実行された後、第１列スキャン動作を実行する段階と、前記第１列スキャン動作の中にフェイルが発生する場合、第２列スキャン動作を実行する段階とを含み、前記第２列スキャン動作の間エラー訂正可能なビット数より少ないフェイルビット数が前記読み出されたデータビットから検出される場合、プログラム動作がプログラムパスとして終わる。
【００１４】
例示的な実施形態において、前記第１列スキャン動作の間、前記読み出されたデータビットが一定の単位で順次に選択され、前記選択されたデータビットが全部プログラムパスデータビットであるか否かが判別される。
【００１５】
例示的な実施形態において、前記第２列スキャン動作の間、前記読み出されたデータに含まれたフェイルビット数が検出される。
【００１６】
例示的な実施形態において、前記第２列スキャン動作はプログラムループ回数に応じて実行される。
【００１７】
例示的な実施形態において、前記第２列スキャン動作はプログラムループ回数が２回乃至３回進行された後実行される。
【００１８】
例示的な実施形態において、前記エラー訂正可能なビット数より多いフェイルビット数が検出される場合、前記第２列スキャン動作を中止する段階がさらに含まれる。
【００１９】
例示的な実施形態において、前記第２列スキャン動作が中止された後、前記プログラム動作、前記検証読み出し動作、及び前記第１及び第２列スキャン動作が繰り返される。
【００２０】
例示的な実施形態において、前記第２列スキャン動作は前記第１列スキャン動作の時フェイルが発生したデータビットから開始される。
【００２１】
本発明の他の特徴によれば、フラッシュメモリ装置は行及び列で配列されたメモリセルのアレイと、検証読み出し動作の時、選択された行のメモリセルからデータビットを読み出すページバッファ回路と、列アドレスに応答して前記ページバッファ回路内のデータビットを一定の単位で選択する列選択回路と、第１列スキャン動作の時、前記列選択回路からのデータビットが全部プログラムパスデータビットであるか否かを判別するパス／フェイル点検回路と、第２列スキャン動作の時、前記列選択回路からのデータビットに含まれたフェイルビットを計算するフェイルビットカウンタ回路と、前記第１列スキャン動作の時、前記列選択回路からのデータビットのうちの少なくとも一つがプログラムフェイルデータビットであることを示す場合、前記第２列スキャン動作が実行されるように前記フェイルビットカウンタ回路を活性化させる制御ロジック回路とを含み、前記制御ロジック回路は前記第２列スキャン動作の間エラー訂正可能なビット数より少ないフェイルビット数が前記読み出されたデータビットから検出される場合、プログラムパスとしてプログラム動作を終了させる。
【００２２】
例示的な実施形態において、前記制御ロジック回路は前記第１列スキャン動作の時、前記列選択回路からのデータビットのうちの少なくとも一つがプログラムフェイルデータビットであることを示す場合、前記パス／フェイル点検回路を非活性化させる。
【００２３】
例示的な実施形態において、前記第１列スキャン動作の時、前記制御ロジック回路によって制御され、前記列選択回路に供給される第１列アドレスを順次に発生する第１アドレス発生回路と、前記第２列スキャン動作の時、前記制御ロジック回路によって制御され、前記第１列スキャン動作の間前記第１アドレス発生回路から最後に出力された第１列アドレスが開始アドレスとして入力され、前記入力されたアドレスに応答して前記列選択回路に供給される第２列アドレスを順次に発生する第２アドレス発生回路がさらに提供される。
【００２４】
例示的な実施形態において、前記第２列スキャン動作はプログラムループ回数が２回乃至３回進行された後実行される。
【００２５】
例示的な実施形態において、前記制御ロジック回路は前記エラー訂正可能なビット数より多いフェイルビット数が検出される場合、前記第２列スキャン動作を中止させる。
【００２６】
例示的な実施形態において、前記第２列スキャン動作が中止された後、前記制御ロジック回路は次のプログラムループが進行されるようにする。
【００２７】
例示的な実施形態において、前記制御ロジック回路によって制御され、プログラムループ回数を計算するループカウンタ回路と、最大プログラムループ回数を貯蔵するためのプログラム回路がさらに提供される。前記プログラム回路に貯蔵された前記最大プログラムループ回数は前記制御ロジック回路に供給される。
【００２８】
例示的な実施形態において、前記プログラム回路は前記最大プログラムループ回数が調節可能になるようにプログラムされる。
【００２９】
例示的な実施形態において、前記制御ロジック回路は前記ループカウンタ回路から提供されるプログラムループ回数が前記最大プログラムループ回数に到逹する場合、プログラム動作を終了させる。
【発明の効果】
【００３０】
本発明は、エラー訂正可能なビット数と同一、またはそれより少ないフェイルビット数が検出される場合、プログラム動作を終了することによって、プログラム時間を短縮することが可能である。
【発明を実施するための最良の形態】
【００３１】
上記の一般的な説明及び次の詳細な説明の全部が例示的なことと理解されなければならず、請求された発明の付加的な説明が提供されると見なされなければならない。
【００３２】
参照符号が本発明の例示的な実施形態に詳細に表示されており、それらの例が参照図に表示されている。可能などんな場合でも、同じ参照番号が同じまたは類似の部分を参照するために説明及び図面で使われる。
【００３３】
下で、不揮発性メモリ装置としてＮＡＮＤフラッシュメモリ装置が本発明の特徴及び機能を説明するための例として使われる。しかし、この技術分野に通常の知識を持つ者はここに記載した内容によって本発明の他の利点及び性能を容易に理解することができる。本発明は他の実施形態を通じて実現、または適用されることができる。さらに、詳細な説明は本発明の範囲、技術的思想及び他の目的から逸脱せず、観点及び応用によって修正、または変更されることができる。
【００３４】
図２は本発明に係る不揮発性メモリ装置を示すブロック図である。
【００３５】
図２を参照すれば、本発明の不揮発性メモリ装置１０００はメモリセルアレイ１２０を含み、図示しないが、メモリセルアレイ１２０は行（またはワードライン）及び列（またはビットライン）のマトリックス形態で配列されたメモリセルで構成される。メモリセルはＮＡＮＤ構造を有するように、またはＮＯＲ構造を有するように配列される。例示的な実施形態において、メモリセルはＮＡＮＤ構造を有するように配列される。
【００３６】
制御ロジック回路１４０は不揮発性メモリ装置１０００の全般的な動作を制御するように構成される。本発明の例示的な実施形態の場合、制御ロジック回路１４０はプログラム動作と係わる一連の動作を制御する。しかし、制御ロジック回路１４０がここに開示された内容に限らないことはこの分野の通常の知識を習得した者等に自明である。例えば、制御ロジック回路１４０は不揮発性メモリ装置の読み出し動作、消去動作、テスト動作などを制御するように構成される。制御ロジック回路１４０には状態レジスタ１４２が提供され、状態レジスタ１４２にはプログラム状態情報（例えば、プログラムフェイル情報、プログラムパス情報など）が貯蔵される。状態レジスタ１４２に貯蔵された情報は特定命令（例えば、状態読み出し命令）の入力に応じて外部に出力される。
【００３７】
続いて、図２を参照すれば、行選択回路１６０は制御ロジック回路１４０によって制御され、行アドレスに応答してメモリセルアレイ１２０の行を選択する。ページバッファ回路１８０は動作モードに応じて感知増幅器としてまたは書き込みドライバとして動作する。例えば、読み出し動作の時、ページバッファ回路１８０はメモリセルアレイ１２０からデータを読み出し、読み出されたデータを一時貯蔵する。プログラム動作の時、ページバッファ回路１８０は列選択回路２００を通じて入力されるデータを一時貯蔵し、貯蔵データに応じてビットラインをビットラインバイアス電圧で駆動する。第１アドレス発生回路２２０は制御ロジック回路１４０によって制御され、第１列スキャン動作の時、列アドレスを発生する。第２アドレス発生回路２４０は制御ロジック回路１４０によって制御され、第２列スキャン動作の時、第１アドレス発生回路２２０からの出力（すなわち、最後に生成されたアドレス）を利用して列アドレスを発生する。第１列スキャン動作はプログラムされたメモリセルのセルデータが全部プログラムパスデータであるか否かを判別しようとする場合実行される一方、第２列スキャン動作は第１列スキャン動作の結果として、プログラムフェイルが発生する場合、フェイルビット数を計算しようとする場合実行される。これは以後詳細に説明する。
【００３８】
続いて、図２を参照すれば、列選択回路２００は第１列スキャン動作の時、第１アドレス発生回路２２０からの列アドレスに応答してページバッファ回路１８０に貯蔵されたデータを一定の単位で選択し、第２列スキャン動作の時、第２アドレス発生回路２４０からの列アドレスに応答してページバッファ回路１８０に貯蔵されたデータを一定の単位で選択する。この時、第２列スキャン動作の時、最初選択されたデータは第１列スキャン動作の時、最後に選択されたデータであり、これは以後詳細に説明する。パス／フェイル点検回路２６０は制御ロジック回路１４０によって制御され、第１列スキャン動作の時、列選択回路２６０によって選択されたデータビットが同一のデータ値（例えば、プログラムパスデータ値）を有するか否かを点検する。パス／フェイル点検回路２６０の判別結果は制御ロジック回路１４０に伝達される。フェイルビットカウンタ回路２８０は制御ロジック回路１４０によって制御され、第２列スキャン動作の時、列選択回路２６０によって選択されたデータビットのフェイルビット数を計算する。フェイルビットカウンタ回路２８０の計算結果は制御ロジック回路１４０に伝達される。ループカウンタ回路３２０は制御ロジック回路１４０によって制御され、プログラムループ回数を計算する。プログラム回路３００は最大プログラムループ回数をプログラムするように構成される。プログラム回路３００に貯蔵された最大プログラムループ回数はプログラム動作の時、制御ロジック回路１４０によって参照される。
【００３９】
本発明の不揮発性メモリ装置によれば、プログラムループの第１列スキャン動作の時、プログラムフェイルが発生すれば、第１列スキャン動作が終わる。次のプログラムループへの進行の前に第２列スキャン動作が実行される。すなわち、毎プログラムループは第１列スキャン動作と第２列スキャン動作とを含む。第２列スキャン動作の時、プログラムフェイルとして判定されたデータからフェイルビット数が計算される。もしフェイルビット数がエラー訂正回路によって訂正可能なビット数と同一であるか、それより小さければ、プログラム動作はプログラムパスとして処理され、プログラム手続きが終わる。これは以後詳細に説明する。このようなプログラム方法によれば、プログラム速度を向上させることだけではなく、訂正可能なフェイルビットによる欠陥ブロックへの分類を防止することができる。さらに、以後説明されるプログラム方法を通じて決められる適切なプログラムループ回数をプログラム回路３００にプログラムすることによって、最大プログラムループ回数を調節することが可能である。
【００４０】
図３は図２に示した不揮発性メモリ装置のプログラム手続きを示すブロック図である。本発明に係る不揮発性メモリ装置のプログラム動作が参照の図に基づいて以下詳細に説明される。
【００４１】
不揮発性メモリ装置がプログラム動作モードに進入すれば、まず、プログラムされるデータが列選択回路２００を通じてページバッファ回路１８０内にロードされる（Ｓ１００）。よく知られたように、ページバッファ回路１８０は選択されたビットラインにそれぞれ対応する複数のページバッファで構成される。列選択回路２００は第１アドレス発生回路２２０からの列アドレスに応答してページバッファを一定の単位（例えば、ｘ８、ｘ１６、ｘ３２など）で選択し、選択されたページバッファにデータビットを伝達する。一応プログラムされるデータのロードが完了すれば、行選択回路１６０によって選択された行のメモリセルが制御ロジック回路１４０の制御下にプログラムされる（Ｓ１１０）。プログラム動作は複数のプログラムループを通じて実行され、各プログラムループはプログラム区間及び検証区間で構成される。特に、本発明の検証区間の間に第１及び第２列スキャン動作が連続して実行され、これは以下詳細に説明する。
【００４２】
一応１番目のプログラムループのプログラム区間の間プログラム動作が実行されれば、制御ロジック回路１４０の制御下に検証読み出し動作が実行される（Ｓ１２０）。検証読み出し動作によれば、プログラムされたメモリセルのセルデータがページバッファ回路１８０によって読み出される。以後、第１列スキャン動作が実行される（Ｓ１３０）。第１列スキャン動作によれば、ページバッファ回路１８０のページバッファは第１アドレス発生回路２２０からの列アドレスに応じて列選択回路２００によって一定の単位で順次に選択され、選択されたページバッファのデータビットは列選択回路２００を通じてパス／フェイル点検回路２６０に伝達される。パス／フェイル点検回路２６０は入力されたデータビットが全部パスデータビットであるか否かを点検する（Ｓ１４０）。パス／フェイル点検回路２６０の出力（すなわち、パス／フェイル情報）は制御ロジック回路１４０に伝達される。もし入力されたデータビットが全部パスデータビットであれば、パス／フェイル点検回路２６０の動作は続いて進行される。すなわち、列選択回路２００は第１アドレス発生回路２２０で順次に生成される列アドレスに応じてページバッファを一定の単位で順次に選択する。もしすべてのページバッファが選択されるまで列スキャン動作が実行されれば、すなわちプログラム動作がプログラムパスとして判別されれば、制御ロジック回路１４０はパス／フェイル点検回路２６０からのパス／フェイル情報を利用して状態レジスタ１４２内にプログラムパス情報を貯蔵する（Ｓ１５０）。以後、プログラム動作は終わる。
【００４３】
もし入力されたデータビットのうちの少なくとも一つがフェイルデータビットであれば、パス／フェイル点検回路２６０はフェイル情報を制御ロジック回路１４０に出力する。制御ロジック回路１４０はパス／フェイル点検回路２６０からフェイル情報が提供される場合、第１列スキャン動作が中止されるようにする。すなわち、パス／フェイル点検回路２６０からフェイル情報が提供される場合、制御ロジック回路１４０は第１アドレス発生回路２２０のアドレス生成を中止させる。その次に、制御ロジック回路１４０はループカウンタ回路３２０から提供される現在のプログラムループ回数が基準値Ｍより大きいか否かを判別する（Ｓ１６０）。もし現在のプログラムループ回数が基準値Ｍより小さければ、手続きは（Ｓ１７０）段階に進行する。Ｓ１７０段階において、制御ロジック回路１４０は現在のプログラムループ回数がプログラム回路３００からの最大プログラムループ回数Ｎに到達した否かを判別する。もし現在のプログラムループ数がプログラム回路３００からの最大プログラムループ回数Ｎより小さければ、制御ロジック回路１４０はプログラムループ回数が１だけ増加するようにループカウンタ回路３２０を制御する（Ｓ１８０）。その次に、手続きはＳ１１０段階に進行する。
【００４４】
ここで、基準値Ｍはあらかじめ設定されたプログラムループ回数を示す。例示的な実施形態において、２番目または３番目のプログラムループ回数を有するように設定される。基準値Ｍは最大プログラムループ回数Ｎより小さい。しかし、基準値Ｍがここに開示された内容に限らないことはこの分野の通常の知識を習得した者等に自明である。
【００４５】
もし現在のプログラムループ回数が基準値Ｍより大きければ、制御ロジック回路１４０はフェイルビット数を計算するための第２列スキャン動作が実行されるようにする。さらに具体的に説明すれば、第１列スキャン動作が中止され、現在のプログラムループ回数が基準値Ｍより大きい場合、制御ロジック回路１４０は第１アドレス発生回路２２０によって最終的に生成された列アドレスが第２アドレス発生回路２４０に伝達されるように第１及び第２アドレス発生回路２２０、２４０を制御する。第２アドレス発生回路２４０は開始アドレスとして第１アドレス発生回路２２０からのアドレスに応答して一連の列アドレスを順次に生成する。これは第１列スキャン動作の間プログラムフェイルビットを含んだデータが第２列スキャン動作の時、最初に選択されることを意味する。列選択回路２００は第２アドレス発生回路２４０からの列アドレスに応答してページバッファを一定の単位で順次に選択する。選択されたページバッファのデータビットは列選択回路２００を通じてフェイルビットカウンタ回路２８０に伝達される。フェイルビットカウンタ回路２８０は入力されたデータビットからフェイルビット数を計算する（Ｓ１９０）。フェイルビットカウンタ回路２８０の計算動作は連続して実行される。計算されたフェイルビット数は制御ロジック回路１４０に伝達される。制御ロジック回路１４０はフェイルビットカウンタ回路２８０から提供されるフェイルビット数がエラー訂正回路によって訂正されることができるビット数を超過するか否かを判別する（Ｓ１９０）。
【００４６】
もし第１列スキャン動作が終わった後、ページバッファが全部選択されたにもかかわらずフェイルビットカウンタ回路２８０から提供されるフェイルビット数がエラー訂正回路によって訂正されることができるビット数より少なければ、制御ロジック回路１４０はパス／フェイル点検回路２６０からのパス／フェイル情報を利用して状態レジスタ１４２内にプログラムパス情報を貯蔵する（Ｓ１５０）。以後、プログラム動作は終わる。これに反して、もし第２列スキャン動作が実行される間フェイルビットカウンタ回路２８０から提供されるフェイルビット数がエラー訂正回路によって訂正されることができるビット数を超過すれば、制御ロジック回路１４０は第２列スキャン動作が中止されるようにする（Ｓ２００）。すなわち、制御ロジック回路１４０は第２アドレス発生回路２４０のアドレス生成及びフェイルビットカウンタ回路２８０のフェイルビット計算を中止させる。手続きはＳ１７０段階に進行する。Ｓ１７０段階において、制御ロジック回路１４０は現在のプログラムループ回数がプログラム回路３００からの最大プログラムループ回数Ｎに到達したか否かを判別する。もし現在のプログラムループ数がプログラム回路３００からの最大プログラムループ回数Ｎに到逹すれば、制御ロジック回路１４０はプログラム動作がフェイルされたことを知らせるプログラムフェイル情報を状態レジスタ１４２に貯蔵する。以後、プログラム動作は終わる。もし現在のプログラムループ数がプログラム回路３００からの最大プログラムループ回数Ｎより小さければ、手続きはＳ１８０段階に進行する。以後、プログラムループは上述の方式に応じて繰り返される。
【００４７】
以上の説明から分かるように、エラー訂正回路によって訂正されることができるビット数だけフェイルビットが存在してもプログラム動作はプログラムパスとして終わる。そのようなフェイルビットは最大プログラムループ回数内で追加的なプログラムループを要する。しかし、エラー訂正回路によって訂正されることができるビット数だけフェイルビットが存在する場合、プログラム動作を終了することによって、そのようなフェイルビットによる追加的なプログラムループは要しない。これはプログラム時間またはプログラム速度が向上することができることを意味する。たとえプログラムされたデータがフェイルビットを含んでも、フェイルビットを含んだデータは読み出し動作の時エラー訂正回路によって訂正される。
【００４８】
図１に示した従来技術の場合、エラー訂正可能なビット数だけフェイルビットが存在する場合、すべてのプログラムループが実行されるだけでなく、最終的に欠陥ブロックに分類される。これに反して、本発明の場合、エラー訂正可能なビット数だけフェイルビットが存在する場合、プログラム動作がプログラムフェイルとして判別される。場合によっては、プログラムループが全部実行、または実行されないこともできる。より具体的に説明すれば次のようである。
【００４９】
従来技術の場合、毎プログラムループで列スキャン動作が実行される。列スキャン動作途中にパス／フェイル点検回路によってフェイルが検出されれば、列スキャン動作の終了後に次のプログラムループが進行される。たとえエラー訂正可能なビット数だけフェイルビットが存在しても、プログラムループは最大プログラムループ回数内で繰り返される。最大プログラムループ回数だけプログラムループが進行されたにもかかわらずエラー訂正可能なビット数のフェイルビットが存在する場合、図４Ａに示したように、プログラム動作はプログラムフェイルとして処理される。図４Ａにおいて、説明の便宜上、プログラムループＰＬ＃ｎ（ｎ＝１−Ｙ）にはただ列スキャン動作ＰＬ１Ｓ〜ＰＬＹＳだけが図示されている。
【００５０】
本発明の場合、プログラムループ回数が決められた回数（例えば、３回）に到逹する前までプログラムループでは従来技術のような第１列スキャン動作が実行される。プログラムループ回数が決められた回数（例えば、３回）に到逹すれば、各プログラムループでは第１列スキャン動作だけでなく、第２列スキャン動作が実行される。例えば、図４Ｂを参照すれば、３番目のプログラムループＰＬ＃３の第１列スキャン動作ＰＬ３Ｓ１が実行される途中フェイルが発生すれば、第２列スキャン動作ＰＬ３Ｓ２が開始される。前に説明したように、第２列スキャン動作はフェイルが発生された列（またはページバッファ）から残りの列（またはページバッファ）のデータビットに含まれたフェイルビットを検出するためのことである。第２列スキャン動作が実行される途中に、図４Ｂに示したように、フェイルビット数がエラー訂正可能なビット数を超過すれば（ＦＢＮ＞Ｘ）、第２列スキャン動作ＰＳ３Ｓ２が終わる。第２列スキャン動作ＰＳ３Ｓ２が終わり、次のプログラムループが開始される。以後、すべての列のデータビットが全部スキャンされるまでフェイルビット数がエラー訂正可能なビット数を超過しなければ（ＦＢＮ＜Ｘ）、プログラム動作はプログラムパスとして処理される。プログラム動作が最大プログラムループ回数だけ実行されなくてもプログラムパスとして処理されるから、プログラム速度（またはプログラム時間）を向上（短縮）させることが可能である。
【００５１】
本発明の範囲または技術的思想を逸脱せず、本発明の構造が多様に修正、または変更されることができることはこの分野の通常の知識を持つ者等に自明である。上述した内容を考慮する時、もし本発明の修正及び変更が請求項及び同等物の範疇内に属したら、本発明はこの発明の変更及び修正を含むと見なされる。
【図面の簡単な説明】
【００５２】
【図１】一般的な不揮発性メモリ装置のプログラム手続きを説明するためのフローチャートである。
【図２】本発明に係る不揮発性メモリ装置を示すブロック図である。
【図３】図２に示した不揮発性メモリ装置のプログラム手続きを説明するためのフローチャートである。
【図４Ａ】本発明に係る不揮発性メモリ装置のプログラム方法を示す概念図である。
【図４Ｂ】不揮発性メモリ装置の一般的なプログラム方法を示す概念図である。
【符号の説明】
【００５３】
１２０  メモリセルアレイ
１４０  制御ロジック回路
１６０  行選択回路
１８０  ページバッファ回路
２００  列選択回路
２２０，２４０  アドレス発生回路
２６０  パス／フェイル点検回路
２８０  フェイルビットカウンタ回路
３００  プログラム回路 
【図１】
2007035244.tif 000003
【図２】
2007035244.tif 000004
【図３】
2007035244.tif 000005
【図４Ａ】
2007035244.tif 000006
【図４Ｂ】
2007035244.tif 000007