(57)【要約】【課題】メモリセルのオーバー−プログラム現象を防止することができるメモリシステムの動作方法並びにそれを含むメモリシステム及びメモリカードを提供する。【解決手段】フラッシュメモリ装置を含むメモリシステムの動作方法において、前記フラッシュメモリ装置の選択されたメモリブロックに属する少なくとも一つのページをプログラムする段階と、前記プログラムされたページのループ回数が基準ループ範囲を外れるか否かに従って、前記選択されたメモリブロック又は前記フラッシュメモリ装置が無効であることを決定する段階とを有する。【選択図】      図８
2010003401.tif 000002
【特許請求の範囲】
【請求項１】
フラッシュメモリ装置を含むメモリシステムの動作方法において、
前記フラッシュメモリ装置の選択されたメモリブロックに属する少なくとも一つのページをプログラムする段階と、
前記プログラムされたページのループ回数が基準ループ範囲を外れるか否かに従って、前記選択されたメモリブロック又は前記フラッシュメモリ装置が無効であることを決定する段階とを有することを特徴とするメモリシステムの動作方法。
【請求項２】
前記プログラムされたページのループ回数が基準ループ範囲を外れるか否かの決定は、
前記フラッシュメモリ装置から前記プログラムされたページのループ回数を読み出し、
前記選択されたメモリブロックのウェアレベリング（ｗｅａｒ−ｌｅｖｅｌｉｎｇ）情報に対応する前記基準ループ範囲の下限及び上限ループ回数をチェックし、
前記読み出されたループ回数が前記下限ループ回数より少ないか、又は前記読み出されたループ回数が前記上限ループ回数より多いかどうかを判定することによって決定されることを特徴とする請求項１に記載のメモリシステムの動作方法。
【請求項３】
前記プログラムされたページのループ回数が前記基準ループ範囲を外れないと判定されるか、又は前記プログラムされたページのループ回数が前記下限ループ回数より少ないと判定された場合、
前記フラッシュメモリ装置のプログラム電圧の開始レベルを調整する段階をさらに有することを特徴とする請求項２に記載のメモリシステムの動作方法。
【請求項４】
前記読み出されたループ回数が前記下限ループ回数より少ないか、又は前記読み出されたループ回数が前記上限ループ回数より多いと判定された場合、前記プログラムされたページのデータがエラー訂正範囲を超過したか否かを判定する段階をさらに有することを特徴とする請求項２に記載のメモリシステムの動作方法。
【請求項５】
前記プログラムされたページのデータがエラー訂正範囲を超過しないと判定された場合、
前記プログラムされたページを含むメモリブロックは有効であると決定されることを特徴とする請求項４に記載のメモリシステムの動作方法。
【請求項６】
前記プログラムされたページのデータがエラー訂正範囲を超過すると判定された場合、
前記プログラムされたページを含むメモリブロックは無効であると決定されることを特徴とする請求項４に記載のメモリシステムの動作方法。
【請求項７】
前記プログラムされたページのループ回数が基準ループ範囲を外れるか否かの決定は、
前記フラッシュメモリ装置から前記プログラムされたページのループ回数を読み出し、
前記読み出されたループ回数を用いてデルタ関数テーブル（ｄｅｌｔａ  ｄｉｓｔｒｉｂｕｔｉｏｎ  ｔａｂｌｅ）を形成し、
前記デルタ関数テーブルに基づいて前記選択されたメモリブロックのデルタ関数値が基準デルタ関数値を超過するか否かを判定することによって決定されることを特徴とする請求項１に記載のメモリシステムの動作方法。
【請求項８】
前記選択されたメモリブロックのデルタ関数値が基準デルタ関数値を超過すると判定された場合、
前記基準デルタ関数値を超過するデルタ関数値を有するメモリブロックを無効であると決定する段階をさらに有することを特徴とする請求項７に記載のメモリシステムの動作方法。
【請求項９】
前記選択されたメモリブロックのデルタ関数値が基準デルタ関数値を超過しないと判定された場合、
前記デルタ関数テーブルに基準となるループ回数以下のループ回数が含まれるか否かをメモリブロック単位で判定する段階をさらに有することを特徴とする請求項８に記載のメモリシステムの動作方法。
【請求項１０】
前記デルタ関数テーブルに基準となるループ回数以下のループ回数が含まれると判定された場合、
前記基準となるループ回数以下のループ回数を含むメモリブロックに対するプログラム電圧の開始レベルを調整する段階をさらに有することを特徴とする請求項９に記載のメモリシステムの動作方法。
【請求項１１】
前記メモリシステムは、メモリカード、ＳＳＤ（ｓｏｌｉｄ  ｓｔａｔｅ  ｄｉｓｋ）、携帯用装置の記録媒体、コンピュータ装置の記録媒体のうちの何れか一つであることを特徴とする請求項１に記載のメモリシステムの動作方法。
【請求項１２】
前記プログラムされたページのループ回数が前記基準ループ範囲を外れるか否かの決定は、前記フラッシュメモリ装置から出力されるレディー（ｒｅａｄｙ）又はビジー（ｂｕｓｙ）信号の活性化時間を測定することによって決定されることを特徴とする請求項１に記載のメモリシステムの動作方法。
【請求項１３】
前記ページをプログラムする段階は、前記ページに属するメモリセルからロードされたデータにプログラムする段階と、
前記ページのメモリセルが正常にプログラムされたか否かを判定する段階と、
前記ページのメモリセルのうちの少なくとも一つが正常にプログラムされなかったと判定された場合、現在のループ回数が可変可能である目標ループ回数に到達したか否かを判定する段階と、
現在のループ回数が可変可能である目標ループ回数に到達したと判定された場合、前記プログラムされたページに含まれたフェイル（ｆａｉｌ）ビット数が訂正可能であるビット数を超過したか否かを判定する段階と、
前記ページに含まれたフェイルビット数が訂正可能であるビット数を超過していないと判定された場合、プログラム手続を現状パス（ｓｔａｔｕｓ  ｐａｓｓ）として終了する段階とを含むことを特徴とする請求項１に記載のメモリシステムの動作方法。
【請求項１４】
前記可変可能である目標ループ回数は、前記選択されたメモリブロックのウェアレベリング情報に従ってパワーアップの際に設定されることを特徴とする請求項１３に記載のメモリシステムの動作方法。
【請求項１５】
前記可変可能である目標ループ回数は、前記選択されたメモリブロックのウェアレベリング情報に従って前記選択されたメモリブロックに対するプログラミング動作が要請されるたび毎に設定されることを特徴とする請求項１３に記載のメモリシステムの動作方法。
【請求項１６】
フラッシュメモリ装置を含むメモリシステムの動作方法において、
パワーアップ時に、前記フラッシュメモリ装置からウェアレベリング情報を読み出す段階と、
前記ウェアレベリング情報に従って決定されたプログラム電圧の開始レベルを決定し、前記決定されたプログラム電圧の開始レベルを用いて前記フラッシュメモリ装置を設定する段階とを有することを特徴とするメモリシステムの動作方法。
【請求項１７】
前記フラッシュメモリ装置を設定する段階は、前記フラッシュメモリ装置に対しプログラミング動作が要請される際に行なわれることを特徴とする請求項１６に記載のメモリシステムの動作方法。
【請求項１８】
前記フラッシュメモリ装置を設定する段階は、前記パワーアップの以後で、前記フラッシュメモリ装置に対するプログラミング動作が要請される以前に行なわれることを特徴とする請求項１６に記載のメモリシステムの動作方法。
【請求項１９】
フラッシュメモリ装置と、
前記フラッシュメモリ装置を制御するように構成されたメモリ制御器とを有し、
前記メモリ制御器は、請求項１に記載された動作方法によって前記フラッシュメモリ装置を制御することを特徴とするメモリシステム。
【請求項２０】
フラッシュメモリ装置と、
前記フラッシュメモリ装置を制御するように構成されたメモリ制御器とを有し、
前記メモリ制御器は、請求項１に記載された動作方法によって前記フラッシュメモリ装置を制御することを特徴とするメモリカード。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、半導体メモリ装置に関し、より詳細には、メモリセルのオーバー−プログラム現状を防止することができるメモリシステムの動作方法並びにそれを含むメモリシステム及びメモリカードに関する。
【背景技術】
【０００２】
一般的な不揮発性メモリ装置のプログラム方法（例えば、特許文献１〜５参照）を説明するためのフローチャートを図１に示し、セル当たり１−ビットデータと２−ビットデータを格納する不揮発性メモリ装置のスレッショルド電圧分布を図２に示す。以下、一般的な不揮発性メモリ装置のプログラム方法について図１及び図２を参照して説明する。
【０００３】
図１に示すフローチャートは、特許文献１に“Ｎｏｎｖｏｌａｔｉｌｅ  Ｍｅｍｏｒｙ  Ｄｅｖｉｃｅ  Ｈａｖｉｎｇ  Ｉｍｐｒｏｖｅｄ  Ｐｒｏｇｒａｍ  Ｓｐｅｅｄ  Ａｎｄ  Ａｓｓｏｃｉａｔｅｄ  Ｐｒｏｇｒａｍｍｉｎｇ  Ｍｅｔｈｏｄ”という名称で開示されている。
【０００４】
プログラム動作が開始されると、ステップＳ１で、プログラムされるデータが不揮発性メモリ装置にロードされる。プログラムされるデータのロードが完了すると、ステップＳ２で、ロードされたデータは、既知のプログラム方法によって不揮発性メモリ装置のメモリセルアレイにプログラムされる。
【０００５】
次のステップＳ３で、プログラムされたメモリセルが要求されるスレッショルド電圧を有するか否かを判定するために検証読み出し動作が実行される。検証読み出し動作によって読み出されたデータは、レジスタ内に臨時格納される。レジスタ内に格納されたデータは、所定の単位に順次に選択され、選択されたデータは、内部データバスに乗せる（ステップＳ４）。このような動作は、「列スキャン動作（Ｃｏｌｕｍｎ  ｓｃａｎ  ｏｐｅｒａｔｉｏｎ）」と呼ばれる。
【０００６】
ステップＳ５で、内部データバス上に乗せた所定の単位のデータビットがプログラムパスデータ値を有するか否かが判定される。即ち、プログラム動作が成功したか否かが判定される。もし内部データバス上に乗せた所定の単位のデータビットのうち、少なくとも一つのデータビットがプログラムフェイル（ｆａｉｌ）データ値を有すると、次のステップＳ６で、現在のプログラムループが最大のプログラムループであるか否かが判定される。
【０００７】
もし、現在のプログラムループが最大プログラムループではない場合、処理はステップＳ２にもどる。もし、現在のプログラムループが最大プログラムループである場合、ステップＳ７で、プログラミング動作がプログラムフェイルとして処理され、プログラミング処理が終了される。
【０００８】
ステップＳ５に戻ると、もし、内部データバス上に乗せた所定の単位のデータビットが全てのプログラムパスデータ値を有すると、ステップＳ８で、プログラミング動作は、プログラムパスとして処理され、プログラミング処理が終了する。
【０００９】
上述から分かるように、プログラミング動作は、複数のプログラムループを通じて実行され、各プログラムループは、プログラム区間（ステップＳ２）とプログラム検証区間（ステップＳ３〜Ｓ５）に構成される。プログラムループは、選択されたメモリセルの全てがプログラムされるまで、最大プログラムループ回数内で反復的に実行される。
【００１０】
従来技術で、よく知られるように、プログラム電圧は、プログラムループが反復される際、予め決められた増加量で増加される。即ち、プログラム動作は、ＩＳＰＰ（Ｉｎｃｒｅｍｅｎｔａｌ  Ｓｔｅｐｐｉｎｇ  Ｐｕｌｓｅ  Ｐｒｏｇｒａｍ）スキームを利用して実行される。
【００１１】
プログラムされるデータビットのうち、一部（例えば、一つのデータビット）がプログラムされない場合にもプログラムループは、最大プログラムループ回数まで反復される。
プログラムループの増加によってプログラム電圧が増加するので、高電圧（例えば、プログラム電圧、パス電圧など）が印加されるメモリセルが過度にプログラムされうる。即ち、プログラム撹乱（ｐｒｏｇｒａｍ  ｄｉｓｔｕｒｂａｎｃｅ）及び／又はパス電圧撹乱（ｐａｓｓ  ｖｏｌｔａｇｅ  ｄｉｓｔｕｒｂａｎｃｅ）が発生する。
【００１２】
これは、図２に示すように、スレッショルド電圧分布が広くなる、及び／又はスレッショルド電圧分布の移動を誘発する。たとえプログラム動作がプログラムパスと判定されてもメモリセルの過度なプログラムは、スレッショルド電圧分布を広くさせ、スレッショルド電圧分布の移動によって読み出しエラーを誘発する。結果的に、不揮発性メモリ装置が使用できないことを示すデバイスフェイル（ｄｅｖｉｃｅ  ｆａｉｌ）が発生する、という問題がある。
【先行技術文献】
【特許文献】
【００１３】
【特許文献１】米国特許第７３５２６３０号明細書
【特許文献２】韓国特許出願公開第１９９９−０８１５４１号明細書
【特許文献３】特開２００６−０４８７８３号公報
【特許文献４】韓国特許出願公開第１９９９−０８１５４１号明細書
【特許文献５】韓国特許第０６４８２９０号明細書
【発明の概要】
【発明が解決しようとする課題】
【００１４】
そこで、本発明は上記従来のメモリシステムの動作方法における問題点に鑑みてなされたものであって、本発明の目的は、メモリセルのオーバー−プログラム現象を防止することができるメモリシステムの動作方法並びにそれを含むメモリシステム及びメモリカードを提供することにある。
【課題を解決するための手段】
【００１５】
上記目的を達成するためになされた本発明によるメモリシステムの動作方法は、フラッシュメモリ装置を含むメモリシステムの動作方法において、前記フラッシュメモリ装置の選択されたメモリブロックに属する少なくとも一つのページをプログラムする段階と、前記プログラムされたページのループ回数が基準ループ範囲を外れるか否かに従って、前記選択されたメモリブロック又は前記フラッシュメモリ装置が無効であることを決定する段階とを有することを特徴とする。
【００１６】
又、上記目的を達成するためになされた本発明によるメモリシステムの動作方法は、フラッシュメモリ装置を含むメモリシステムの動作方法において、パワーアップ時に、前記フラッシュメモリ装置からウェアレベリング情報を読み出す段階と、前記ウェアレベリング情報に従って決定されたプログラム電圧の開始レベルを決定し、前記決定されたプログラム電圧の開始レベルを用いて前記フラッシュメモリ装置を設定する段階とを有することを特徴とする。
【００１７】
上記目的を達成するためになされた本発明によるメモリシステムは、フラッシュメモリ装置と、前記フラッシュメモリ装置を制御するように構成されたメモリ制御器とを有し、前記メモリ制御器は、上記したメモリシステムの動作方法によって前記フラッシュメモリ装置を制御することを特徴とする。
【００１８】
上記目的を達成するためになされた本発明によるメモリカードは、フラッシュメモリ装置と、前記フラッシュメモリ装置を制御するように構成されたメモリ制御器とを有し、前記メモリ制御器は、上記したメモリシステムの動作方法によって前記フラッシュメモリ装置を制御することを特徴とする。
【発明の効果】
【００１９】
本発明に係るメモリシステムの動作方法並びにそれを含むメモリシステム及びメモリカードによれば、デバイスフェイルが発生するのを防止することによって信頼性を向上させることができるという効果がある。
【図面の簡単な説明】
【００２０】
【図１】一般的な不揮発性メモリ装置のプログラム方法を説明するためのフローチャートである。
【図２】セル当たり１−ビットデータと２−ビットデータを格納する不揮発性メモリ装置のスレッショルド電圧分布を示す図である。
【図３】本発明の一実施形態によるメモリシステムを概略的に示すブロック図である。
【図４】図３に示すメモリセルアレイの一部を示す回路図である。
【図５】本発明の一実施形態による図３に示す制御ロジックを概略的に示すブロック図である。
【図６】本発明の一実施形態によるメモリシステムのプログラム電圧の開始レベルを設定する方法を説明するためのフローチャートである。
【図７】本発明の他の実施形態によるメモリシステムのプログラム電圧の開始レベルを設定する方法を説明するためのフローチャートである。
【図８】本発明の一実施形態によるメモリシステムの動作方法を説明するためのフローチャートである。
【図９】本発明の他の実施形態によるメモリシステムの動作方法を説明するためのフローチャートである。
【図１０】本発明の他の実施形態によるフラッシュメモリ装置のプログラム方法を説明するためのフローチャートである。
【図１１】本発明の一実施形態によるメモリシステムの目標ループ回数を設定する方法を説明するためのフローチャートである。
【図１２】本発明の他の実施形態によるメモリシステムの目標ループ回数を設定する方法を説明するためのフローチャートである。
【図１３】本発明の他の実施形態によるメモリシステムの動作方法を説明するためのフローチャートである。
【図１４】図１３の実施形態での各ページとそのループ回数の間の関係を示す表である。
【図１５】本発明の他の実施形態によるメモリシステムの動作方法を説明するためのフローチャートである。
【図１６】図１５のメモリシステムの動作方法によるデルタ関数テーブルを説明するための図である。
【図１７】本発明によるメモリシステムを含むコンピュータシステムを概略的に示すブロック図である。
【図１８】本発明の他の実施形態によるメモリシステムを示すブロック図である。
【図１９】本発明のさらに他の実施形態によるメモリシステムを示すブロック図である。
【図２０】ホストシステムに図１８のカードが接続される実施形態を示すブロック図である。
【発明を実施するための形態】
【００２１】
次に、本発明に係るメモリシステムの動作方法並びにそれを含むメモリシステム及びメモリカードを実施するため形態の具体例を図面を参照しながら説明する。
【００２２】
一般的な説明及び後記の詳細な説明の全てが例示的であることが理解されなければならないし、請求された発明の付加的な説明が提供されることとして考慮されるべきである。
参照符号が本発明の望ましい実施形態に詳細に表示され、それの例が参照図面に表示される。できれば、同一の参照番号が同一又は類似である部分を参照するために説明及び図面に使われる。
【００２３】
以下で、半導体メモリ装置としてフラッシュメモリ装置が本発明の特徴及び機能を説明するための一例に使われる。しかし、この技術分野に熟練された者は、ここに記載された内容によって本発明の異なる利点及び性能を容易に理解することができる。本発明は、他の実施形態を通じて具現される、或いは適用されることができる。その上、詳細な説明は、本発明の範囲、技術的思想、そして異なる目的から抜け出さないで観点及び応用によって修正、或いは変更されることができる。
【００２４】
本発明の実施形態によるメモリシステムは、メモリセルがプログラム電圧、及び／又はパス電圧の反復的な印加によって過度にプログラムされる現象（以下、「オーバー−プログラム現象」と称する）を減らすことによってデバイスフェイルが発生するのを防止するように構成される。より具体的には、オーバー−プログラム現象は、プログラム動作が成功裏に完了されたメモリセルから読み出されたデータが読み出しエラーデータとして判定されるようにする。
【００２５】
メモリセルのオーバープログラム現象は、多様な原因によって生じうる。
例えば、相対的に速いプログラム速度を有するメモリセルは、相対的に遅いプログラム速度を有するメモリセルによって過度にプログラムされうる。
これと共に、ＰＥサイクリング（Ｐｒｏｇｒａｍ／Ｅｒａｓｅ  ｃｙｃｌｉｎｇ）によって各メモリセルの酸化膜に電荷がトラップされ、その結果、メモリセルのスレッショルド電圧は、予想されるスレッショルド電圧より高く増加する。このようなスレッショルド電圧の増加は、プログラムループの反復によって結局メモリセルが過度にプログラムされてしまう。
【００２６】
基本的に、本発明は、ウェアレベリング（ｗｅａｒ−ｌｅｖｅｌｉｎｇ）情報（例えば、ＰＥサイクル数）によってプログラム電圧の開始レベルを調整する機能、ウェアレベリング情報（例えば、ＰＥサイクル数）によって各メモリブロック／ページ／チップの目標ループ回数を調整する機能、各メモリブロックのループ回数分布によって各メモリブロックを早期にバッドブロック（ｂａｄ  ｂｌｏｃｋ）として処理する機能、各メモリブロックのループ回数によって各メモリブロックを早期にバッドブロックとして処理する機能、及び／又はこれら機能の選択的な組み合わせを実行するように構成される。これは、以下にてに詳細に説明される。このような機能のうち、何れか一つ又はそれの選択的な組み合わせを通じてメモリセルが過度にプログラムされることによって発生するデバイスフェイルを防止することができる。
【００２７】
図３は、本発明の一実施形態によるメモリシステムを概略的に示すブロック図であり、図４は、図３に示すメモリセルアレイの一部を示す回路図である。
【００２８】
図３を参照すると、本発明の一実施形態によるメモリシステムは、メモリ制御器１００と、フラッシュメモリ装置２００とを含む。
図３には、ただ一つのフラッシュメモリ装置２００が示してある。しかし、複数のフラッシュメモリ装置が一つのメモリ制御器１００によって制御されるようにメモリシステムを具現することもできる。
【００２９】
メモリ制御器１００は、外部装置（例えば、ホスト）からの要請に応答してフラッシュメモリ装置２００を制御する。メモリ制御器１００は、フラッシュメモリ装置２００のウェアレベリング情報（ｗｅａｒ  ｃｏｕｎｔ  ｉｎｆｏｒｍａｔｉｏｎ）（又は、ＰＥサイクル情報）を管理するように構成される。このようなウェアレベリング情報は、メモリ１１０に格納される。
【００３０】
メモリ１１０は、ＤＲＡＭ又はＳＲＡＭのようなランダムアクセスメモリでありうる。
メモリ１１０は、一つ、又はそれより多いメモリにて構成されうる。メモリ１１０に格納されたウェアレベリング情報は、必要によってフラッシュメモリ装置２００に再格納／バックアップされる（又は、格納される）。
【００３１】
メモリ制御器１００は、フラッシュメモリ装置２００、又はフラッシュメモリ装置２００の各メモリブロックに対するプログラム電圧の開始レベルを調整するようにウェアレベリング情報に基づいてフラッシュメモリ装置２００を制御する。
又は、メモリ制御器１００は、フラッシュメモリ装置２００、又はフラッシュメモリ装置２００の各メモリブロックに対するプログラムループ回数（以下、「目標ループ回数」と称する）を調整するようにウェアレベリング情報に基づいてフラッシュメモリ装置２００を制御する。
【００３２】
又は、メモリ制御器１００は、フラッシュメモリ装置２００、又はフラッシュメモリ装置２００の各メモリブロックのループ回数分布が基準分布を超過するか否かによって各メモリブロックが早期にバッドブロックとして処理されるようにフラッシュメモリ装置２００を制御する。
又は、メモリ制御器１００は、プログラミング動作が実行されたページ／メモリブロックのプログラムループ回数によってメモリブロックが早期にバッドブロックとして処理されるようにフラッシュメモリ装置２００を制御する。
上述のメモリ制御器１００の機能は、単独に実行されるか、或いはこのような機能の選択的な組み合わせを通じて実行することができる。これは以後に詳細に説明される。
【００３３】
続いて、図３を参照すると、フラッシュメモリ装置２００は、メモリセルアレイ２１０と、読み出し／書き込み回路２２０と、プログラム電圧発生回路２３０と、入出力インタフェース２４０と、制御ロジック２５０と、を含む。
【００３４】
メモリセルアレイ２１０は、行（例えば、ワードライン）と列（例えば、ビットライン）の交差領域に配列されたメモリセルを含み、各メモリセルは、１−ビットデータ、及び／又はＭ−ビットデータ（Ｍは、２又はそれより大きい正数）を格納する。メモリセルは、複数のメモリブロックを構成するように配列される。
【００３５】
本実施形態において、メモリブロックは、図４に示すように、複数のストリング（又は、ＮＡＮＤストリング）１１１を含む。各ストリング１１１は、ストリング選択ラインＳＳＬに接続されたストリング選択トランジスタＳＳＴと、接地選択ラインＧＳＬに接続された接地選択トランジスタＧＳＴと、対応するワードラインＷＬ０〜ＷＬｉ−１に各々接続された複数のメモリセルＭＣ０〜ＭＣｉ−１で構成される。各ストリング１１１は、対応するビットラインと共通ソースラインＣＳＬの間に接続される。
【００３６】
再び、図３を参照すると、読み出し／書き込み回路２２０は、制御ロジック２５０によって制御されて、メモリセルアレイ２１０に対する読み出し及び書き込み動作を実行する。
例えば、読み出し動作の間、読み出し／書き込み回路２２０は、メモリセルアレイ２１０からデータを読み出し、読み出されたデータを入出力インタフェース２４０を通じてメモリ制御器１００に出力する。
書き込み動作の間、読み出し／書き込み回路２００は、入出力インタフェース２４０を通じてメモリ制御器１００からデータを受信し、受信されたデータをメモリセルアレイ２１０に格納する。ここで、書き込み動作は、この分野で従来技術でよく知られた消去動作とプログラム動作を含む。
【００３７】
プログラム電圧発生回路２３０は、制御ロジック２５０の制御に応答して動作し、プログラミング動作に必要である電圧を発生する。このように発生された電圧は、メモリセルアレイ２１０、及び／又は読み出し／書き込み回路２２０に供給される。制御ロジック２５０は、フラッシュメモリ装置２００の全般的な動作を制御するように構成される。
【００３８】
図５は、本発明の一実施形態による図３に示す制御ロジックを概略的に示すブロック図である。
図５を参照すると、本発明の一実施形態による制御ロジック２５０は、読み出し／プログラム／消去スケジューラ２５１と、ループカウンタ２５２と、プログラムレジスタ２５３と、状態レジスタ２５４と、を含む。
【００３９】
読み出し／プログラム／消去スケジューラ２５１は、入力命令に応答してフラッシュメモリ装置２００の読み出し、プログラム、そして消去動作を制御するように構成される。
しかし、読み出し／プログラム／消去スケジューラ２５１の機能がこれに限定されないことは、この分野の通常の知識を有する者には自明である。
【００４０】
例えば、外部装置（例えば、メモリ制御器）から状態レジスタ２５４に対するアクセス動作が要請される際、読み出し／プログラム／消去スケジューラ２５１は、そのような要請に応答して状態レジスタ２５４に格納されたデータが外部に出力されるようにする。状態レジスタ２５４には、読み出し／プログラム／消去スケジューラ２５１の制御下でプログラム結果、即ち、プログラムパス（状態パス）又はプログラムフェイル（状態フェイル）を示す情報、ループカウンタ２５２の最後のプログラムループ回数を示す情報などが格納する。
【００４１】
ループカウンタ２５２は、読み出し／プログラム／消去スケジューラ２５１の制御に基づきプログラムループ回数をカウントする。
プログラムレジスタ２５３は、読み出し／プログラム／消去スケジューラ２５１の制御に従ってプログラムループ回数を格納するように構成される。
【００４２】
本実施形態の場合、このようなプログラムループ回数は、目標ループ回数として最大ループ回数となる。言い換えれば、目標ループ回数としての最大ループ回数は可変することができる。
プログラムレジスタ２５３は、又、読み出し／プログラム／消去スケジューラ２５１の制御によってプログラム電圧発生回路２３０によって生成されるプログラム電圧の開始レベルを決定するための情報を格納するように構成される。
【００４３】
読み出し／プログラム／消去スケジューラ２５１は、プログラミング動作の間、プログラムレジスタ２５３に格納されたプログラム電圧の開始レベルを決定するための情報に従ってステップ制御コードをプログラム電圧発生回路２３０に提供する。
ステップ制御コードは、読み出し／プログラム／消去スケジューラ２５１の制御下でプログラムループの反復によって増加／減少される。
あるいは、プログラムレジスタ２５３は、メモリセルアレイ２１０に属するメモリブロックに対するウェアレベリング情報を格納するように構成される。
【００４４】
プログラムレジスタ２５３には、目標ループ回数を示す情報、プログラム電圧の開始レベルを決定するための情報などがパワーアップの際の調整情報（ｔｒｉｍ  ｉｎｆｏｒｍａｔｉｏｎ）としてメモリセルアレイ２１０の所定の領域からロードされる。このような情報は、テスト工程を通じてメモリセルアレイ２１０の所定の領域に格納される。本実施形態の場合、オーバー−プログラム現象を減らすために、プログラムレジスタ２５３に格納される情報は、外部装置（例えば、メモリ制御器）の要請によって変更することができ、これは以後に詳細に説明する。
【００４５】
本発明の一実施形態において、制御ロジック２５０のプログラムレジスタ２５３に格納されるプログラム電圧の開始レベルを示すデータは、多様な方法を通じて設定されうる。
例えば、プログラム電圧の開始レベルは、メモリブロック単位又はチップ単位で設定されうる。チップ単位でプログラム電圧の開始レベルが設定される場合、プログラム電圧の開始レベルはチップ、即ち、フラッシュメモリ装置のＰＥサイクル数の平均、最大／最小、又は範囲によって可変することができる。
【００４６】
これは、メモリ制御器１００を通じてテーブル形式で管理される。このようなテーブル情報、即ち、フラッシュメモリ装置のＰＥサイクル平均数（最大／最小、又は範囲）とプログラム電圧の開始レベル間の関係を示す情報は、フラッシュメモリ装置２００に格納され、パワーアップ際にメモリ制御器１００のメモリ１１０にロードされる。この場合、プログラム電圧の開始レベルは以下のように設定される。
【００４７】
図６を参照して、本発明の一実施形態によるメモリシステムのプログラム電圧の開始レベルを設定する方法を示す。
先ず、電源がメモリシステムに供給される（ステップＳ１０）、パワーアップ際、フラッシュメモリ装置２００からメモリ制御器１００のメモリ１１０にテーブル情報、即ち、フラッシュメモリ装置のＰＥサイクル平均数（最大／最小、又は範囲）とプログラム電圧の開始レベル間の関係を示す情報がロードされる。メモリ制御器１００は、ロードされたテーブル情報に基づいてフラッシュメモリ装置２００のプログラム電圧の開始レベルを設定する（ステップＳ１２）。以後、外部装置（例えば、ホスト）から要請されたプログラミング動作を実行する（ステップＳ１４）。
【００４８】
一方、メモリブロック単位にプログラム電圧の開始レベルが設定される場合、プログラム電圧の開始レベルは、各メモリブロックのＰＥサイクル数（又は範囲）によって可変することができる。これは、メモリ制御器１００を通じてテーブル形式に管理される。このようなテーブル情報、即ち、フラッシュメモリ装置２００の各メモリブロックのＰＥサイクル数（又は範囲）とプログラム電圧の開始レベル間の関係を示す情報は、フラッシュメモリ装置２００に格納され、パワーアップ際、メモリ制御器１００のメモリ１１０にロードされる。このような場合、プログラム電圧の開始レベルは、次のように設定される。
【００４９】
図７は、本発明の他の実施形態によるメモリシステムのプログラム電圧の開始レベルを設定する方法を説明するためのフローチャートである。
図７を参照すると、パワーアップ時、フラッシュメモリ装置２００からメモリ制御器１００のメモリ１１０にテーブル情報、即ち、各メモリブロックのＰＥサイクル数（又は範囲）とプログラム電圧の開始レベル間の関係を示す情報がロードされ、次に外部装置（例えば、ホスト）からプログラミング動作が要請される（ステップＳ２０）。
【００５０】
プログラミング動作が要請されると、メモリ制御器１００は、メモリ１１０に格納されたテーブル情報に基づいてフラッシュメモリ装置２００のプログラム電圧の開始レベルを設定する（ステップＳ２２）。即ち、メモリ制御器１００は、プログラムされるメモリブロックに対応するプログラム電圧の開始レベルを示すデータをフラッシュメモリ装置２００に伝送し、フラッシュメモリ装置２００は、入力されたデータ（プログラム電圧の開始レベルを示す）をプログラムレジスタ２５３に格納する。その次に、要請されたプログラミング動作を実行する（ステップＳ２４）。
【００５１】
プログラム電圧の開始レベルは、尚、プログラムされたページのループ回数を参照して変更されうる。例えば、プログラミング動作が終了した後にフラッシュメモリ装置から読み出されたループ回数が所定の（又は基準）ループ回数より少ないか否かによってフラッシュメモリ装置又は各メモリブロックのプログラム電圧の開始レベルをメモリ制御器１００の制御によって調整することができる。
【００５２】
図８は、本発明の一実施形態によるメモリシステムの動作方法を説明するためのフローチャートである。
説明の前に、メモリ制御器１００は、フラッシュメモリ装置２００のウェアレベリングを管理するように構成される。これは、本実施形態において、フラッシュメモリ装置２００のメモリブロックに対する消去カウント値（又は、ＰＥサイクル値）がメモリ制御器１００によって管理されることを意味する。そのようなＰＥサイクル値は、フラッシュメモリ装置２００のメモリセルアレイ２１０に格納され、パワーアップ時にメモリ制御器１００のメモリ１１０にロードされる。
【００５３】
本実施形態によるメモリシステムは、プログラミング動作が完了した後にプログラムされたページのループ回数を読み出すように構成される。オーバー−プログラム現象によるデバイスフェイルの発生を防止するために、本実施形態によるメモリシステムは、読み出されたループ回数によってプログラムされたページを含むメモリブロックをバッドブロックとして処理する。以下に具体的に説明する。
【００５４】
この分野の通常的な知識を有した者によく知られるように、プログラミング動作の間に反復されたプログラムループの回数は、最終的にフラッシュメモリ装置２００のループカウンタ２５２に格納されている。プログラミング動作が完了すると、メモリ制御器１００は、プログラムループ回数を読み出すための命令をフラッシュメモリ装置２００に出力する。即ち、メモリ制御器１００は、フラッシュメモリ装置２００からループ回数を読み出す（ステップＳ１００）。
【００５５】
その次に、メモリ制御器１００は、メモリ１１０に格納されたプログラムされたメモリブロックのＰＥサイクル値をチェックする（ステップＳ１１０）。
ここで、メモリ１１０には、ＰＥサイクル値（又は、ＰＥサイクル範囲）及びそれに対応する所定の（又は基準）ループ回数（又は、範囲）例えば、下限ループ回数及び上限ループ回数が格納され、これはメモリ制御器１００によって管理される。
【００５６】
メモリ制御器１００は、読み出されたループ回数がチェックされたＰＥサイクル値に対応する下限ループ回数より少ないか、又は上限ループ回数より多いか否かを判定する（ステップＳ１２０）。即ち、メモリ制御器１００は、読み出されたループ回数が下限及び上限ループ回数によって定義される基準ループ範囲を外れるか否かを判定する。
【００５７】
もし読み出されたループ回数がチェックされたＰＥサイクル値に対応する下限ループ回数より少ないと判定されるか、又は、読み出されたループ回数がチェックされたＰＥサイクル値に対応する上限ループ回数より多いと判定された場合、手続はステップＳ１３０に進行する。
【００５８】
ステップＳ１３０で、メモリ制御器１００は、プログラムされたメモリブロックをバッドブロックとして処理する。
これに対し、読み出されたループ回数がチェックされたＰＥサイクル値に対応する下限ループ回数より多いと判定されるか、或いは、読み出されたループ回数がチェックされたＰＥサイクル値に対応する上限ループ回数より少ないと判定される場合、手続は終了する。
【００５９】
本実施形態において、プログラムされたメモリブロック、又は、プログラムされたページのループ回数が下限ループ回数より少ないということは、プログラムされたページのメモリセルが速いプログラム特性を有することを意味する。このような理由で、このようなメモリセルは、異なるページに対するプログラミング動作の間にパス電圧撹乱によって過度にプログラムされうる。
【００６０】
又、プログラムされたメモリブロック、又は、プログラムされたページのループ回数が上限ループ回数より多いということは、プログラムされたページのメモリセルが遅いプログラム特性を有することを意味する。これは、異なるページのメモリセルが遅いプログラム特性を有するメモリセルのプログラム動作の間にパス電圧撹乱によって過度にプログラムされうることを意味する。
【００６１】
あるいは、共通の行に接続されたメモリセルは、遅いプログラム特性を有するメモリセルの反復的なプログラム動作、即ち、プログラム撹乱によって過度にプログラムされうる。従って、オーバー−プログラム現象を誘発しうるページ、又はそれを含むメモリブロックを早期に除去することによってデバイスフェイルの発生を防止することができる。
【００６２】
本実施形態において、図８で説明した動作（即ち、ループ回数を読み出す動作）は、フラッシュメモリ装置２００の平均ＰＥサイクル値（又は、最小／最大ＰＥサイクル値）が予めに設定されたＰＥサイクル値を超過する時、又は、所定の（又は、基準）期間を超過する時、ＰＥサイクル値に関係がなく常に実行される。
しかしながら、本発明がここに開示したことに限定されないということは、この分野の通常的な知識を有した者には自明である。
【００６３】
図９は、本発明の他の実施形態によるメモリシステムの動作方法を説明するためのフローチャートである。
図９で、ステップＳ２００〜Ｓ２２０は、図８のステップＳ１００〜Ｓ１２０と実質的に同一であり、それに対する説明は省略する。
【００６４】
ステップＳ２２０を参照すると、もし読み出されたループ回数がチェックされたＰＥサイクル値に対応する下限ループ回数より少ないと判定されるか、又は、読み出されたループ回数がチェックされたＰＥサイクル値に対応する上限ループ回数より多いと判定される場合、手続はステップＳ２３０に進行する。
【００６５】
ステップＳ２３０で、メモリ制御器１００は、プログラムされたページに対する読み出し動作が実行されるようにフラッシュメモリ装置２００を制御する。即ち、プログラムされたページから読み出されたデータは、フラッシュメモリ装置２００からメモリ制御器１００に出力される。
【００６６】
メモリ制御器１００のエラー検査訂正回路（以下、「ＥＣＣ回路」と称する、図示せず）は、フラッシュメモリ装置２００から出力されたデータのエラーを検出して、検出されたエラーがＥＣＣ回路のエラー訂正範囲を外れるか否かを判定する（ステップＳ２４０）。
【００６７】
もし、検出されたエラーがＥＣＣ回路のエラー訂正範囲を外れないと判定されると、手続は終了する。
これに対し、検出されたエラーがＥＣＣ回路のエラー訂正範囲を外れると判定される場合、手続はステップＳ２５０に進行する。ステップＳ２５０で、メモリ制御器１００は、プログラムページ、又はそれを含むメモリブロックをバッドブロックとして処理する。
【００６８】
本実施形態において、上述の動作は、チップ単位又はページ単位に実行する。さらに、読み出されたループ回数が基準ループ範囲を外れない時、そして読み出されたループ回数が下位ループ回数の以下である時、プログラム電圧の開始レベルがメモリ制御器１００の制御によって上述の方法に従って調整される。
【００６９】
遅くプログラムされるメモリセルは、反復的なプログラムループの実行を必要として、これは速くプログラムされるメモリセルのオーバー−プログラム現象を誘発する。
これに対し、速くプログラムされるメモリセルは、異なるメモリセルのプログラミング動作の間にプログラム撹乱又はパス電圧撹乱によって過度にプログラムされる。従って、プログラムループ回数が予めに設定された（基準）ループ範囲（下限及び上限ループ回数によって決定される）を外れるプログラムループ回数を有するページ又はそれを含むメモリブロックは、デバイスフェイルを誘発しうる。
このような理由で、このようなページ又はそれを含むメモリブロックを早期にバッドブロックとして処理することによってデバイスフェイルの発生を防止することができる。
【００７０】
図１０は、本発明の他の実施形態によるフラッシュメモリ装置のプログラム方法を説明するためのフローチャートである。
プログラミング動作を説明するに前に、本実施形態によれば、目標ループ回数は、制御ロジック２５０のプログラムレジスタ２５３に格納され、目標ループ回数がメモリ制御器１００の制御によって可変可能であるということに留意するべきである。例えば、目標ループ回数は、パワーアップ時、又は、毎プログラミング動作前にメモリ制御器１００の制御によってプログラムレジスタ２５３に格納される。
【００７１】
プログラムされるデータは、入出力インタフェース２４０を通じて読み出し／書き込み回路２２０にロードされ、ロードされたデータは、制御ロジック２５０の制御によって読み出し／書き込み回路２２０を通じてメモリセルアレイ２１０にプログラムされる（ステップＳ３００）。
【００７２】
プログラミング動作が実行された後、プログラミング動作が成功裏に実行されたか否かを判定する（ステップＳ３１０）。
プログラミング動作が成功裏に実行されたか否かは、検証読み出し動作と列スキャン動作を通じて判定されうる。
【００７３】
検証読み出し動作の間、読み出し／書き込み回路２２０は、プログラムされたメモリセルからデータを読み出す。
列スキャン動作の間、読み出し／書き込み回路２２０は、読み出されたデータを所定の単位で選択し、選択されたデータビットがプログラムパスデータであるか否かを判定する。
【００７４】
判定結果は、制御ロジック２５０に伝えられる。もし、選択されたデータビットのうち、少なくとも一つがプログラムフェイルデータであると、即ち、判定結果がプログラムフェイルを示すと、制御ロジック２５０は、列スキャン動作を中止させるように読み出し／書き込み回路２２０を制御する。
もしプログラムされたメモリセルから読み出されたデータの全てがプログラムパスデータであると、制御ロジック２５０は、プログラムパスを示す状態データを状態レジスタ２５４に格納し、手続は終了する。
【００７５】
もし選択されたデータビットのうち、少なくとも一つがプログラムフェイルデータであると、即ち、判定結果がプログラムフェイルを示すと、制御ロジック２５０、即ち、読み出し／プログラム／消去スケジューラ２５１は、ループカウンタ２５２のループカウント値がプログラムレジスタ２５３に格納された目標ループ回数に到達したか否かを判定する（ステップＳ３２０）。
【００７６】
もし、ループカウンタ２５２のループカウント値がプログラムレジスタ２５３に格納された目標ループ回数に到達していないと判定されると、ループカウンタ２５２のループカウント値は、読み出し／プログラム／消去スケジューラ２５１の制御によって１つ増加される（ステップＳ３３０）。その次に、手続はステップＳ３００に進行する。
【００７７】
もしループカウンタ２５２のループカウント値がプログラムレジスタ２５３に格納された目標ループ回数に到達したと判定されると、手続はステップＳ３４０段階に進行する。
ステップＳ３４０では、フェイルビット数がカウントされる。読み出し／書き込み回路２２０は、検証読み出し動作を通じて読み出されたデータのうち、最後に選択されたデータ（プログラムフェイルを誘発したデータ）及び選択されていないデータに含まれたフェイルビット数をカウントする。
【００７８】
その次に、ステップＳ３５０で、制御ロジック２５２は、カウントされたフェイルビット数がメモリ制御器１００のエラー訂正可能であるビット数を超過するか否かを判定する。もしカウントされたフェイルビット数がメモリ制御器１００のエラー訂正可能であるビット数を超過していないと判定されると、プログラミング動作は、プログラムパスとして終了する。
もし、カウントされたフェイルビット数がメモリ制御器１００のエラー訂正可能であるビット数を超過したと判定されると、プログラミング動作は、プログラムフェイルとして終了される（ステップＳ３６０）。
【００７９】
上述のフェイルビット数をカウントする動作及び回路の例示的な実施形態が上述の特許文献１に掲載され、この出願のレファレンスに含まれる。
制御ロジック２５０のプログラムレジスタ２５３に格納される目標ループ回数は、多様な方法を通じて設定されうる。例えば、目標ループ回数は、メモリブロック単位又はチップ単位で設定されうる。チップ単位で目標ループ回数が設定される場合、目標ループ回数はチップ、即ち、フラッシュメモリ装置の平均（又は、最大／最小）ＰＥサイクル数（又は、範囲）によって可変することができる。
【００８０】
これは、メモリ制御器１００を通じてテーブル形式に管理される。このようなテーブル情報、即ち、フラッシュメモリ装置の平均（又は、最大／最小）ＰＥサイクル数（又は、範囲）と目標ループ回数間の関係を示す情報は、フラッシュメモリ装置２００に格納され、パワーアップ時にメモリ制御器１００のメモリ１１０にロードされる。このような場合、目標ループ回数は次のように設定される。
【００８１】
図１１は、本発明の一実施形態によるメモリシステムの目標ループ回数を設定する方法を説明するためのフローチャートである。
図１１を参照すると、先ず、電力がメモリシステムに供給される（ステップＳ４００）。
【００８２】
パワーアップ時、フラッシュメモリ装置２００からメモリ制御器１００のメモリ１１０にテーブル情報、即ち、フラッシュメモリ装置の平均（又は、最大／最小）ＰＥサイクル数（又は、範囲）と目標ループ回数間の関係を示す情報がロードされる。メモリ制御器１００は、ロードされたテーブル情報に基づいてフラッシュメモリ装置２００の目標ループ回数を設定する（ステップＳ４１０）。
【００８３】
以後、外部装置（即ち、ホスト）から要請されたプログラミング動作を実行する。プログラミング動作は、図１０で説明した方法で実行するか、或いはこの分野でよく知られる既知の方法で実行する。
【００８４】
一方、メモリブロック単位で目標ループ回数が設定される場合、目標ループ回数は、各メモリブロックのＰＥサイクル数（又は、範囲）によって可変することができる。これは、メモリ制御器１００を通じてテーブル形式に管理される。このようなテーブル情報、即ち、フラッシュメモリ装置２００の各メモリブロックのＰＥサイクル数（又は、範囲）と目標ループ回数間の関係を示す情報は、フラッシュメモリ装置２００に格納され、パワーアップ時にメモリ制御器１００のメモリ１１０にロードされる。このような場合、目標ループ回数は次のように設定される。
【００８５】
図１２は、本発明の他の実施形態によるメモリシステムの目標ループ回数を設定する方法を説明するためのフローチャートである。
図１２を参照すると、パワーアップ時、フラッシュメモリ装置２００からメモリ制御器１００のメモリ１１０にテーブル情報、即ち、各メモリブロックのＰＥサイクル数（又は、範囲）と目標ループ回数間の関係を示す情報がロードされる。以後、外部装置（例えば、ホスト）からプログラミング動作が要請される（ステップＳ５００）。
【００８６】
プログラミング動作が要請されると、メモリ制御器１００は、メモリ１１０に格納されたテーブル情報に基づいてフラッシュメモリ装置２００の目標ループ回数を設定する（ステップＳ５１０）。即ち、メモリ制御器１００は、プログラムされるメモリブロックに対応する目標ループ回数をフラッシュメモリ装置２００に伝送し、フラッシュメモリ装置２００は、入力された目標ループ回数をプログラムレジスタ２５３に格納する。
その次に、要請されたプログラミング動作を実行する（ステップＳ５２０）。プログラミング動作は、図１０で説明した方法で実行するか、或いはこの分野でよく知られる既知の方法で実行する。
【００８７】
目標ループ回数は、外部装置（例えば、メモリ制御器）に関わりなく設定される。例えば、各メモリブロックのＰＥサイクル数を示すデータがパワーアップ時、制御ロジック２５０のプログラムレジスタ２５３にロードされて、アクセスされたメモリブロックのアドレス情報に基づいて目標ループ回数が決定される。
【００８８】
一般的に、プログラムループ回数は、ＰＥサイクル数が増加することによって減少する。
これは電荷トラップによってスレッショルド電圧が増加されるためである。
上述の目標ループ回数を調整してオーバープログラム現象によるデバイスフェイルの発生を防止する。
又は、プログラム電圧の開始レベルを調整することによってオーバープログラム現象によるデバイスフェイルの発生を防止する。
【００８９】
例えば、メモリ制御器１００は、各ページ／メモリブロック／チップのＰＥサイクル値（又は、範囲）とそれに対応するプログラム電圧の開始レベル間の関係をテーブル形式に管理して、このようなテーブルを利用して各ページ／メモリブロック／チップのプログラム電圧の開始レベルをフラッシュメモリ装置２００に提供する。
【００９０】
ページ／メモリブロック単位でプログラム電圧の開始レベルが管理される場合、プログラミング動作が要請されるたびごとにプログラム電圧の開始レベルを示すデータがフラッシュメモリ装置２００に提供される。
一方、チップ単位でプログラム電圧の開始レベルが管理される場合、パワーアップ時にプログラム電圧の開始レベルを示すデータがフラッシュメモリ装置２００に提供される。
フラッシュメモリ装置２００に提供されるデータは、制御ロジック２５０のプログラムレジスタ２５３に格納される。
【００９１】
あるいは、フラッシュメモリ装置２００は、メモリ制御器１００とは関わりなしにそれ自体でプログラム電圧の開始レベルを管理するように構成する。例えば、パワーアップ以後で、プログラミング動作以前にプログラムレジスタ２５３に各メモリブロック／ページのＰＥサイクル値が格納される。
【００９２】
メモリブロック／ページに対するプログラミング動作が要請された時、制御ロジック２５０は、プログラムレジスタ２５３に格納されたＰＥサイクル情報に基づいて開始レベルを決定するためのデータをプログラム電圧発生回路２３０に提供する。プログラム電圧発生回路２３０は、入力されたデータによって決定されるプログラム電圧を発生する。
【００９３】
本発明の他の実施形態により、ループ回数分布を管理することによって、オーバープログラム現象によるデバイスフェイルの発生を防止することが可能である。より具体的な説明は次の通りである。
【００９４】
図１３は、本発明の他の実施形態によるメモリシステムの動作方法を説明するためのフローチャートであり、図１４は、図１３の実施形態での各ページとそのループ回数間の関係を示す表である。
【００９５】
先ず、フラッシュメモリ装置２００に対するプログラミング動作を実行する（ステップＳ６００）。
プログラミング動作が完了すると、メモリ制御器１００は、フラッシュメモリ装置２００からプログラムされたページのループ回数を読み出す（ステップＳ６１０）。
これは上述の図８で説明したものと同様に実行され、それに対する説明は省略する。
【００９６】
読み出されたループ回数は、図１４に示すように、メモリ制御器１００によってテーブル形式に管理される。このようなテーブルを以下「デルタ関数テーブル」（ｄｅｌｔａ  ｄｉｓｔｒｉｂｕｔｉｏｎ  ｔａｂｌｅ）と称する。
フラッシュメモリ装置２００からループ回数が読み出されたことによって、デルタ関数テーブルは、メモリ制御器１００によって更新される（ステップＳ６２０）。
【００９７】
デルタ関数テーブルは、メモリ制御器１００のメモリ１１０に格納されて、必要時にフラッシュメモリ装置２００に再格納／バックアップされる。フラッシュメモリ装置２００に格納されたデルタ関数テーブルは、パワーアップ時にメモリ制御器１００のメモリ１１０にロードされる。
【００９８】
ステップＳ６３０で、メモリ制御器１００は、デルタ関数テーブルに基づいて各メモリブロックのデルタ関数値が基準デルタ関数値を超過するか否かを判定する。即ち、メモリ制御器１００は、デルタ関数テーブルに、基準デルタ関数値としての基準ループ範囲を外れるループ回数が存在するか否かを判定する。
ここで、各メモリブロックのデルタ関数値は、最小のループ回数と最大ループ回数の差を意味する。例えば、図１４を参照すると、メモリブロックＢＬＫ０は、最小ループ回数が「１」で、最大ループ回数が「６」だと仮定すると、「５」のデルタ関数値を有する。
【００９９】
又は、メモリブロックＢＬＫ１は、最小ループ回数が「１」で、最大ループ回数が「４」だと仮定すると「３」のデルタ関数値を有する。本実施形態において、基準デルタ関数値が「３」だと仮定する。このような仮定において、メモリブロックＢＬＫ０のデルタ関数値が基準デルタ関数値を超過するので、メモリブロックＢＬＫ０は、バッドブロックとして処理される（ステップＳ６４０）。もし、各デルタ関数値が基準デルタ関数値を超過していないと判定されると、手続は終了する。
【０１００】
本実施形態において、プログラミング動作が終了するたびごとに、デルタ関数テーブルが更新される。その一方で、各メモリブロックのデルタ関数値が基準デルタ関数値を超過するか否かの判定は、異なる時点でなされる。
【０１０１】
デルタ関数値が基準デルタ関数値を超過する場合、少ないループ回数（例えば、１回又は２回）を有するページのメモリセルは、多いループ回数（例えば、５回又は６回）を有するページのプログラミング動作の間に過度にプログラムされる。そのようなメモリセルによってデバイスフェイルが誘発されうるので、早期にそのようなページを有するメモリブロックをバッドブロックとして処理することによってデバイスフェイルの発生を防止することが可能である。
【０１０２】
図１５は、本発明の他の実施形態によるメモリシステムの動作方法を説明するためのフローチャートである。
図１５において、ステップＳ７００〜ステップＳ７３０は、図１３に示したことと実質的に同様であり、それに対する説明は省略する。
【０１０３】
ステップＳ７３０を参照すると、もし各デルタ関数値が基準デルタ関数値を超過しないと判定された場合、手続はステップＳ７５０に進行する。
ステップＳ７５０で、メモリ制御器１００は、デルタ関数テーブルに基づいて所定（又は、基準）のループ回数（例えば、１回又は２回）より少ないループ回数を含むページが存在するか否かを判定する。
【０１０４】
ここで、所定（又は、基準）のループ回数内でプログラムされるメモリセルは、異なるページのプログラミング動作の間にストレスを受けて、その結果、所定（又は、基準）のループ回数内でプログラムされるメモリセルは過度にプログラムされる。言い換えれば、そのようなメモリセルは、速い速度でプログラムされる。所定（又は、基準）のループ回数内でプログラムされるメモリセルのオーバープログラム現象を防止するためにプログラム電圧の開始レベルを調整する（ステップＳ７６０）。
即ち、所定（又は、基準）のループ回数（例えば、１回又は２回）より少ないループ回数を含むページが存在すると判定されると、ステップＳ７６０でプログラム電圧の開始レベルを調整する。これは前述した同様の方法によって実行され、それに対する説明は省略する。
【０１０５】
上述によれば、デルタ関数テーブルがループ回数を通じて管理される。しかし、本発明がこれに限定されないことはこの分野の通常的な知識を有した者に自明である。例えば、プログラミング動作が実行される間に、図１６に示すように、メモリ制御器１００は、フラッシュメモリ装置２００の各メモリブロックに属するページの各々の制御信号（例えば、Ｒ／ｎＢ）の活性化時間を測定する。メモリ制御器１００は、このように測定される時間を利用してデルタ関数テーブルを構築して、このようなデルタ関数テーブルは、図１３及び図１５で説明した動作方法に使用する。
【０１０６】
フラッシュメモリ装置は、電力が遮断されても格納されたデータを維持することができる不揮発性メモリ装置である。
セルラーフォン、ＰＤＡデジタルカメラ、ポータブルゲームコンソール、そしてＭＰ３Ｐのようなモバイル装置の使用増加によって、フラッシュメモリ装置は、データストレージのみではなくコードストレージとして広く使われている。
フラッシュメモリ装置は、尚、ＨＤＴＶ、ＤＶＤ、ルータ、そしてＧＰＳのようなホームアプリケーションに使用されている。
【０１０７】
図１７は、本発明によるメモリシステムを含むコンピュータシステムを概略的に示すブロック図である。
本発明によるコンピュータシステム２０００は、バス２００１に電気的に接続されたマイクロプロセッサ２１００と、ユーザインタフェース２２００と、ベースバンドチップセット（ｂａｓｅｂａｎｄ  ｃｈｉｐｓｅｔ）のようなモデム２３００と、メモリ制御器２４００と、フラッシュメモリ装置２５００とを含む。
【０１０８】
メモリ制御器２４００は、図１に示したメモリ制御器に対応し、フラッシュメモリ装置２５００は、図１に示したものと実質的に同様に構成される。
フラッシュメモリ装置２５００には、マイクロプロセッサ２１００によって処理された又は処理されるＮ−ビットデータ（Ｎは、１又はそれより大きい正数）がメモリ制御器２４００を通じて格納される。
【０１０９】
本発明によるコンピュータシステムがモバイル装置である場合、コンピュータシステムの動作電圧を供給するためのバッテリ２６００が追加的に提供される。図面には示さなかったが、本発明によるコンピュータシステムには、応用チップセット（ａｐｐｌｉｃａｔｉｏｎ  ｃｈｉｐｓｅｔ）、カメライメージプロセッサ（ＣＩＳ：Ｃａｍｅｒａ  Ｉｍａｇｅ  Ｐｒｏｃｅｓｓｏｒ）、モバイルＤＲＡＭなどをさらに含むことができるということは、この分野の通常的な知識を有した者には自明である。
【０１１０】
メモリ制御器２４００とフラッシュメモリ装置２５００は、例えば、データを格納するのに不揮発性メモリを使用するＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ／Ｄｉｓｋ）を構成しうる。又は、メモリ制御器２４００とフラッシュメモリ装置２５００は、データを格納するのに不揮発性メモリを使用するメモリカードを構成しうる。
【０１１１】
図１８は、本発明の他の実施形態によるメモリシステムを示すブロック図である。
図１８に示すメモリシステムは、メモリ５１０とメモリ制御器５２０がカード５３０を構成するように具現されるという点を除外すると図３と近似している。
例えば、カード５３０は、フラッシュメモリカードのようなメモリカードでありうる。
即ち、カード５３０は、デジタル、カメラ、個人コンピュータなどのような電子装置を使用するための工業基準を満足するカードでありうる。メモリ制御器５２０がカード５３０において、異なる装置（例えば、外部装置）から受信された制御信号に基づいてメモリ５１０を制御しうるということが理解される。
【０１１２】
図１９は、本発明のさらに他の実施形態によるメモリシステムを示すブロック図である。
図１９に示すシステムは、携帯用装置６０００を示す。
携帯用装置６０００は、ＭＰ３プレーヤ、ビデオプレーヤ、コンビネーションビデオ及びオーディオプレーヤなどでありうる。図に示すように、携帯用装置６０００は、メモリ５１０と、メモリ制御器５２０とを含む。またさらに、携帯用装置６０００は、エンコーダ／デコーダ６１０と、プレゼンテーション構成要素６２０と、インタフェース６３０とを含みうる。
【０１１３】
エンコーダ／デコーダ（ＥＤＣ）６１０によって処理されたデータ（例えばビデオデータ、又はオーディオデータ）は、メモリ制御器５２０を通じてメモリ５１０に入力されて、メモリ５１０から出力される。図１９の点線によって示すように、データは、ＥＤＣ６１０からメモリ５１０に直接入力され、さらに／又はメモリ５１０からＥＤＣ６１０に直接出力される。
【０１１４】
ＥＤＣ６１０は、メモリ５１０に格納するためにデータをエンコーディングする。
例えば、ＥＤＣ６１０は、メモリ５１０に格納するためにオーディオデータに対してＭＰ３エンコーディングを実行する。
あるいはまた、ＥＤＣ６１０は、メモリ５１０に格納するためにビデオデータに対してＭＰＥＧエンコーディング（例えば、ＭＰＥＧ２、ＭＰＥＧ４など）を実行する。
又、ＥＤＣ６１０は、異なるデータフォーマットによって、異なるタイプのデータをエンコーディングするための複数のエンコーダを含むことができる。例えば、ＥＤＣ６１０は、オーディオデータのためのＭＰ３インコーダ及びビデオデータのためのＭＰＥＧインコーダを含むことができる。
【０１１５】
ＥＤＣ６１０は、メモリ５１０からの出力をデコーディングする。
例えば、ＥＤＣ６１０は、メモリ５１０から出力されたオーディオデータに対してＭＰ３デコーディングを実行する。
あるいはまた、ＥＤＣ６１０は、メモリ５１０から出力されたビデオデータに対してＭＰＥＧデコーディング（例えば、ＭＰＥＧ２、ＭＰＥＧ４など）を実行する。
又、ＥＤＣ６１０は、異なるデータフォーマットによって異なるタイプのデータをデコーディングするための複数のデコーダを含むことができる。例えば、ＥＤＣ６１０は、オーディオデータのためのＭＰ３デコーダと、ビデオデータのためのＭＰＥＧデコーダとを含むことができる。
【０１１６】
ＥＤＣ６１０がデコーダのみを含むことができるということが理解されるはずである。
例えば、既にエンコーディングされたデータは、ＥＤＣ６１０によって受信されて、メモリ制御器５２０及び／又はメモリ５１０に渡される。
ＥＤＣ６１０は、インタフェース６３０を通じてエンコーディングのためのデータを受信する、或いは既にエンコーディングされたデータを受信する。
【０１１７】
インタフェース６３０は、既知の標準（例えば、ファームウエア、ＵＳＢなど）に従う。インタフェース６３０は、また、一つ以上のインタフェースを含むことができる。例えば、インタフェース６３０は、ファームウエアインタフェース、ＵＳＢインタフェースなどを含みうる。メモリ５１０からのデータは、インタフェース６３０を通じて出力される。
【０１１８】
プレゼンテーション構成要素６２０は、メモリから出力され、さらに／又はＥＤＣ６１０によってデコーディングされたデータをユーザに表示する。例えば、プレゼンテーション構成要素６２０は、オーディオデータを出力するためのスピーカージャック、ビデオデータを出力するためのディスプレースクリーンなどを含みうる。
【０１１９】
図２０は、ホストシステム７０００に図１８のカード５３０が接続される実施形態を示すブロック図である。
本実施形態で、メモリ制御器５２０がメモリ５１０の動作を制御するようにホストシステム７０００は制御信号をカード５３０に印加する。
本発明によるフラッシュメモリ装置、及び／又はメモリ制御器は、多様な形態のパッケージを利用して実装することができる。
【０１２０】
例えば、本発明によるフラッシュメモリ装置、及び／又はメモリ制御器は、ＰｏＰ（Ｐａｃｋａｇｅ  ｏｎ  Ｐａｃｋａｇｅ）、Ｂａｌｌ  Ｇｒｉｄ  Ａｒｒａｙｓ（ＢＧＡｓ）、Ｃｈｉｐ  Ｓｃａｌｅ  Ｐａｃｋａｇｅｓ（ＣＳＰｓ）、Ｐｌａｓｔｉｃ  Ｌｅａｄｅｄ  Ｃｈｉｐ  Ｃａｒｒｉｅｒ（ＰＬＣＣ）、Ｐｌａｓｔｉｃ  Ｄｕａｌ  Ｉｎ−Ｌｉｎｅ  Ｐａｃｋａｇｅ（ＰＤＩＰ）、Ｄｉｅ  ｉｎ  Ｗａｆｆｌｅ  Ｐａｃｋ、Ｄｉｅ  ｉｎ  Ｗａｆｅｒ  Ｆｏｒｍ、Ｃｈｉｐ  Ｏｎ  Ｂｏａｒｄ（ＣＯＢ）、Ｃｅｒａｍｉｃ  Ｄｕａｌ  Ｉｎ−Ｌｉｎｅ  Ｐａｃｋａｇｅ（ＣＥＲＤＩＰ）、Ｐｌａｓｔｉｃ  Ｍｅｔｒｉｃ  Ｑｕａｄ  Ｆｌａｔ  Ｐａｃｋａｇｅ（ＭＱＦＰ）、Ｔｈｉｎ  Ｑｕａｄ  Ｆｌａｔ  Ｐａｃｋａｇｅ（ＴＱＦＰ）、Ｓｍａｌｌ  Ｏｕｔｌｉｎｅ  ＩＣ（ＳＯＩＣ）、Ｓｈｒｉｎｋ  Ｓｍａｌｌ  Ｏｕｔｌｉｎｅ  Ｐａｃｋａｇｅ（ＳＳＯＰ）、Ｔｈｉｎ  Ｓｍａｌｌ  Ｏｕｔｌｉｎｅ  Ｐａｃｋａｇｅ（ＴＳＯＰ）、Ｓｙｓｔｅｍ  Ｉｎ  Ｐａｃｋａｇｅ（ＳＩＰ）、Ｍｕｌｔｉ  Ｃｈｉｐ  Ｐａｃｋａｇｅ（ＭＣＰ）、Ｗａｆｅｒ−ｌｅｖｅｌ  Ｆａｂｒｉｃａｔｅｄ  Ｐａｃｋａｇｅ（ＷＦＰ）、Ｗａｆｅｒ−Ｌｅｖｅｌ  Ｐｒｏｃｅｓｓｅｄ  Ｓｔａｃｋ  Ｐａｃｋａｇｅ（ＷＳＰ）などのようなパッケージを利用して実装されうる。
【０１２１】
尚、本発明は、上述の実施形態に限られるものではない。本発明の技術的範囲から逸脱しない範囲内で多様に変更実施することが可能である。
【符号の説明】
【０１２２】
１００、５２０、２４００    メモリ制御器
１１０、５１０    メモリ
２００、２５００    フラッシュメモリ装置
２１０    メモリセルアレイ
２２０    読み出し／書き込み回路
２３０    プログラム電圧発生回路
２４０    入出力インタフェース
２５０    制御ロジック
２５１    読み出し／プログラム／消去スケジューラ
２５２    ループカウンタ
２５３    プログラムレジスタ
２５４    状態レジスタ
５３０    カード
６１０    エンコーダ／デコーダ（ＥＤＣ）
６２０    プレゼンテーション構成要素
６３０    インタフェース
２０００    コンピュータシステム
２１００    マイクロプロセッサ
２２００    ユーザインタフェース
２３００    モデム
２６００    バッテリ
６０００    携帯用装置
７０００    ホストシステム
【図１】
2010003401.tif 000003
【図２】
2010003401.tif 000004
【図３】
2010003401.tif 000005
【図４】
2010003401.tif 000006
【図５】
2010003401.tif 000007
【図６】
2010003401.tif 000008
【図７】
2010003401.tif 000009
【図８】
2010003401.tif 000010
【図９】
2010003401.tif 000011
【図１０】
2010003401.tif 000012
【図１１】
2010003401.tif 000013
【図１２】
2010003401.tif 000014
【図１３】
2010003401.tif 000015
【図１４】
2010003401.tif 000016
【図１５】
2010003401.tif 000017
【図１６】
2010003401.tif 000018
【図１７】
2010003401.tif 000019
【図１８】
2010003401.tif 000020
【図１９】
2010003401.tif 000021
【図２０】
2010003401.tif 000022