(57)【要約】  本発明は、マルチビットプログラミング装置および方法を提供する。前記マルチビットプログラミング装置は、ページプログラミング動作の第１データを格納するページバッファと、１つ以上のビットを含む前記第１データに対して、プログラムアルゴリズムに基づいて前記第１データを反転するかどうかを決定し、前記決定された反転の有無によって第２データを生成して、前記第２データを前記ページバッファに格納する入力制御部と、前記ページバッファに格納された第２データを１つ以上のマルチビットセルにプログラミングするページプログラミング部とを含み、これによってＦＰカップリングによるデータ汚染を最小化することができる。
2010541122.tif 000002
【特許請求の範囲】
【請求項１】
複数のページプログラミング動作を行うマルチビットプログラミング装置であって、
前記ページプログラミング動作のうちの１つであり、かつ１つ以上のビットを含む、第１データを格納するページバッファと、
前記第１データのうち第１値を有する複数のビットと、第２値を有する複数のビットとに基づいて、前記第１データを反転するかどうかを決定し、前記第１値を有するビット数が、前記第２値を有するビット数より多い場合、前記第１データを反転して第２データを生成し前記ページバッファに格納する入力制御部と、
前記ページバッファに格納された第２データを１つ以上のマルチビットセルにプログラミングするページプログラミング部と、
を含むことを特徴とするマルチビットプログラミング装置。
【請求項２】
前記第１値は、１または０であり、
前記第２値は、１または０であるとともに、
前記第１値と前記第２値とは異なることを特徴とする請求項１に記載のマルチビットプログラミング装置。
【請求項３】
前記入力制御部は、前記複数の各ページプログラミング動作に対して、前記第１データを反転するかどうかを決定することを特徴とする請求項１に記載のマルチビットプログラミング装置。
【請求項４】
前記入力制御部は、前記複数の各ページプログラミング動作の第１データに基づいて、前記第１データを反転するかどうかを決定することを特徴とする請求項１に記載のマルチビットプログラミング装置。
【請求項５】
前記入力制御部は、前記第１値を有するビットの数および前記第２値を有するビットの数と、前記複数のページプログラミング動作の順番とに基づいて、前記第１データを反転するかどうかを決定し、
前記順番は、１から自然数Ｎまでの値を有することを特徴とする請求項１に記載のマルチビットプログラミング装置。
【請求項６】
前記第１の値は「１」であり、かつ前記第２の値は「０」であるとともに、
前記ページプログラミング動作は、前記複数のページプログラミング動作のうち（Ｎ−１）回目のプログラミング動作であることを特徴とする請求項５に記載のマルチプログラミング装置。
【請求項７】
前記第１の値は「０」であり、かつ前記第２の値は「１」であるとともに、
前記ページプログラミング動作は、前記複数のページプログラミング動作のうちＮ回目のプログラミング動作であることを特徴とする請求項５に記載のマルチプログラミング装置。
【請求項８】
前記第１データが反転したかどうかを示すフラグを格納するフラグ格納部をさらに含むことを特徴とする請求項１に記載のマルチビットプログラミング装置。
【請求項９】
前記フラグ格納部から前記フラグを受信し、前記マルチビットセルから前記第２データを受信するとともに、前記フラグに基づいて前記第２データから前記第１データを復元する出力制御部をさらに含むことを特徴とする請求項８に記載のマルチビットプログラミング装置。
【請求項１０】
前記ページプログラミング動作は、前記１つ以上のマルチビットセルの閾値電圧を変化させ、
前記入力制御部は、前記第１値が有するビット数および前記第２値が有するビット数と、第１ページプログラミング動作の間の前記１つ以上のマルチビットセルの閾値電圧の変化量とに基づいて、前記第１データを反転するかどうかを決定することを特徴とする請求項１に記載のマルチビットプログラミング装置。
【請求項１１】
前記入力制御部は、前記１つ以上のマルチビットセルの閾値電圧の変化量のうち、最大変化量が最小化されるように、前記第１データを反転するかどうかを決定することを特徴とする請求項１０に記載のマルチビットプログラミング装置。
【請求項１２】
前記マルチビットプログラミング装置は、前記Ｎページプログラミング動作を行うとともに、
前記入力制御部は、前記（Ｎ−１）回目のページプログラミング動作の間、前記１つ以上のマルチビットセルの中で閾値電圧が変化するマルチビットセルの個数が、閾値電圧が変化しないマルチビットセルの個数より多くなるように、前記第１データを反転するかどうかを決定することを特徴とする請求項１０に記載のマルチビットプログラミング装置。
【請求項１３】
前記マルチビットプログラミング装置は、前記Ｎページプログラミング動作を行うとともに、
前記入力制御部は、前記Ｎ回目のページプログラミング動作の間、閾値電圧が変化する前記マルチビットセルが多くなるように、前記第１データを反転するかどうかを決定することを特徴とする請求項９に記載のマルチビットプログラミング装置。
【請求項１４】
前記入力制御部は、前記ページプログラミング動作の間、前記１つ以上のマルチビットセルの中で閾値電圧が変化するマルチビットセルの個数が、閾値電圧が変化しないマルチビットセルの個数より多くなるように、前記第１データを反転するかどうかを決定することを特徴とする請求項１０に記載のマルチビットプログラミング装置。
【請求項１５】
前記マルチビットプログラミング装置は、前記Ｎページプログラミング動作を行うとともに、
前記入力制御部は、前記第１ページプログラミング動作の間に、第１閾値電圧のマルチビットセルの中では前記第１閾値電圧が変化する前記マルチビットセルが多くなるように、および前記第１閾値電圧より高い第２閾値電圧のマルチビットセルの中では前記第２閾値電圧が変化しない前記マルチビットセルが多くなるように、前記第１データを反転するかどうかを決定することを特徴とする請求項１０に記載のマルチビットプログラミング装置。
【請求項１６】
マルチビットプログラミング装置であって、
複数のページプログラミング動作の第１データを格納するメモリと、
前記格納されたデータのうちデータパターンを識別する危険パターン識別部と、
前記識別されたデータパターンに対応する第１マルチビットセルの閾値電圧を第１変化量だけ変化させることによって、前記データのうち第１データを前記第１マルチビットセルにプログラミングするとともに、第２マルチビットセルの閾値電圧を第２変化量だけ変化させることによって、前記データのうち第２データを前記第２マルチビットセルにプログラミングするページプログラミング部と、
を含み、
前記第１マルチビットセルと前記第２マルチビットセルとは、異なることを特徴とするマルチビットプログラミング装置。
【請求項１７】
前記ページプログラミング部は、前記第１データを反転して前記第１マルチビットセルにプログラミングすることを特徴とする請求項１６に記載のマルチビットプログラミング装置。
【請求項１８】
１つ以上のビットを含む、ページプログラミング動作の第１データをページバッファに格納するステップと、
前記第１データのうち第１値を有するビット数と第２値を有するビット数とを計数するステップと、
前記第１値を有するビット数と前記第２値を有するビット数とに基づいて、前記第１データを反転するかどうかを決定するステップと、
前記第１値を有するビット数が前記第２値を有するビット数より多い場合、前記第１データを反転して第２データを生成するステップと、
前記第２データを前記第１データに代って前記ページバッファに格納するステップと、
前記ページバッファに格納された第２データを１つ以上のマルチビットセルにプログラミングするステップと、
を含むことを特徴とするマルチビットプログラミング方法。
【請求項１９】
前記ページプログラミング動作は、１から自然数Ｎまでの順序を有するＮページプログラミング動作のうちの１つであり、
前記第１データを反転するかどうかを決定するステップは、
前記ページプログラミング動作の順番に基づいて、前記第１データを反転するかどうかを決定することを特徴とする請求項１８に記載のマルチビットプログラミング方法。
【請求項２０】
複数のページプログラミング動作に用いられるデータを格納するステップと、
前記データのうちデータパターンを識別するステップと、
前記識別されたデータパターンに対応する第１マルチビットセルの閾値電圧を第１変化量だけ変化させるステップと、
第２マルチビットセルの閾値電圧を第２変化量だけ変化させるステップと、
を含み
前記第１マルチビットセルと前記第２マルチビットセルとは異なることを特徴とするマルチビットプログラミング方法。
【請求項２１】
前記データのうち前記第１マルチビットセルと関連する第１データを反転させるステップをさらに含むことを特徴とする請求項２０に記載のマルチビットプログラミング方法。
【請求項２２】
請求項１８または２０のいずれか１項に記載の方法をコンピュータが実行するためのプログラムが記録されていることを特徴とするコンピュータ可読記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、メモリ装置にデータをプログラミングする装置および方法に関し、より詳しくは、マルチレベルメモリ装置にデータをマルチレベル（マルチビット）プログラミングする装置および方法に関する。
【背景技術】
【０００２】
シングルレベルセル（ＳＬＣ：ｓｉｎｇｌｅ−ｌｅｖｅｌ  ｃｅｌｌ）メモリは、１つのメモリセルに１ビットのデータを格納するメモリである。シングルレベルセルメモリは、シングルビットセル（ＳＢＣ：ｓｉｎｇｌｅ−ｂｉｔ  ｃｅｌｌ）メモリとも呼ばれる。シングルレベルセルメモリにおいて１ビットのデータは、メモリセルにプログラムされた閾値電圧（ｔｈｒｅｓｈｏｌｄ  ｖｏｌｔａｇｅ）によって区分される２つの分布（ｄｉｓｔｒｉｂｕｔｉｏｎ）に含まれる電圧として、格納されて読み取られる。シングルレベルセルメモリの間のわずかな電気的特性の差によって、プログラムされた閾値電圧は一定の範囲の分布を有するようになる。例えば、メモリセルから読み取られた電圧が０．５〜１．５ボルトの場合には、前記メモリセルに格納されたデータは論理「１」であり、メモリセルから読み取られた電圧が２．５〜３．５ボルトの場合には、前記メモリセルに格納されたデータは論理「０」と解釈される。メモリセルに格納されたデータは、読み取り動作時、セルの電流／電圧の差によって区分される。
【０００３】
一方、メモリの高集積化要求に対応して、１つのメモリセルに２ビット以上のデータを格納できるマルチレベルセル（ＭＬＣ：ｍｕｌｔｉ−ｌｅｖｅｌ  ｃｅｌｌ）メモリが提案された。マルチレベルセルメモリは、マルチビットセル（ＭＢＣ：ｍｕｌｔｉ−ｂｉｔ  ｃｅｌｌ）メモリとも呼ばれる。しかし、１つのメモリセルに格納するビット数が増加するほど信頼性は落ち、読み取り失敗率（ｒｅａｄ  ｆａｉｌｕｒｅ  ｒａｔｅ）は増加するようになる。１つのメモリセルにｍ個のビットを格納しようとすれば、２ｍ個の分布（ｄｉｓｔｒｉｂｕｔｉｏｎ）を形成しなければならない。しかし、メモリの電圧ウィンドウ（ｖｏｌｔａｇｅ  ｗｉｎｄｏｗ）は制限されているため、ｍが増加するにつれて隣接した分布の間の閾値電圧（ｔｈｒｅｓｈｏｌｄ）の差は減るようになって、これによって読み取り失敗率が増加する。このような理由で従来技術では、マルチレベルセル（ＭＬＣ：ｍｕｌｔｉ−ｌｅｖｅｌ  ｃｅｌｌ）メモリを用いた格納密度の向上が容易でなかった。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
本発明は、マルチレベルセルメモリに新しいマルチレベル（マルチビット）プログラミング技法を適用することによって、マルチレベルセルメモリにおいて、データ格納時の閾値電圧の分布を精密に制御することを目的とする。
【０００５】
また、本発明は、マルチレベルセルメモリに新しいマルチレベル（マルチビット）プログラミング技法を適用することによって、マルチレベルセルメモリにおいて、浮遊ポリシリコン（ｆｌｏａｔｉｎｇ  ｐｏｌｙ−ｓｉｌｉｃｏｎ、ＦＰ）カップリングによる閾値電圧の変化を減少させることを目的とする。本発明は、ＦＰカップリングによる閾値電圧の変化を減少させることによって、隣接したマルチレベルセルのデータ汚染を減少させ、マルチレベルセルメモリに格納されたデータの読み取り失敗率（ｒｅａｄ  ｆａｉｌｕｒｅ  ｒａｔｅ）を減少させることを目的とする。
【０００６】
また、本発明は、マルチレベルセルメモリに新しいマルチレベル（マルチビット）プログラミング技法を適用することによって、マルチレベルセルメモリにおいて、データ格納時のディスターバンス（ｄｉｓｔｕｒｂａｎｃｅ）の発生の可能性を減少させることを目的とする。
【課題を解決するための手段】
【０００７】
上記のような本発明の目的を達成するために、本発明のマルチビットプログラミング装置は、ページプログラミング動作の第１データを格納するページバッファと、１つ以上のビットを含む前記第１データの「１」と「０」の個数に基づいて前記第１データを反転するかどうかを決定し、前記決定された反転の有無によって第２データを生成して、前記第２データを前記ページバッファに格納する入力制御部と、前記ページバッファに格納された第２データを１つ以上のマルチビットセルにプログラミングするページプログラミング部とを含むことを特徴とする。
【０００８】
本発明の実施形態に係る複数のページプログラミング動作を行うマルチビットプログラミング装置は、ページバッファと、入力制御部と、ページプログラミング部とを含む。前記ページバッファは、第１の複数のページプログラミングの第１データを格納する。第１データは少なくとも１つのビットを含んでもよい。前記入力制御部は、前記第１データのうち第１値を有する複数のビットと第２値を有する複数のビットとに基づいて、前記第１データを反転するかどうかを決定し、前記第１値を有するビットの数が前記第２値を有するビットの数より多い場合、前記第１データを反転して第２データを生成して前記ページバッファに格納する。前記ページプログラミング部は、前記ページバッファに格納された第２データを１つ以上のマルチビットセルにプログラミングする。
【０００９】
また、本発明のまた他の側面に係るマルチビットプログラミング装置は、Ｎ回のページプログラミング動作のデータを格納するメモリと、前記データのうちデータパターンを識別するデータパターン識別部と、前記識別されたデータパターンに対応する第１マルチビットセルの閾値電圧を第１変化量だけ変化させることによって、前記データのうち第１データを前記第１マルチビットセルに格納し、前記第１マルチビットセルを除いた第２マルチビットセルの閾値電圧を第２変化量だけ変化させることによって、前記データのうち前記第１データを除いた第２データを前記第２マルチビットセルに格納するページプログラミング部とを含むことを特徴とする。前記第１および前記第２データは異なり、前記第１および前記第２マルチビットセルは異なり、前記第１および第２変化量は異なり得る。
【００１０】
本発明のまた他の側面に係る複数のページプログラミング動作を行うマルチビットプログラミング装置は、メモリ、データパターン識別部とページプログラミング部とを含む。前記メモリは複数のページプログラミング動作の第１データを格納する。前記データパターン識別部は、格納されたデータのうちデータパターンを識別する。前記ページプログラミング部は、前記識別されたデータパターンに対応する第１マルチビットセルの閾値電圧を第１変化量だけ変化させることによって、前記データのうち第１データを前記第１マルチビットセルにプログラミングし、第２マルチビットセルの閾値電圧を第２変化量だけ変化させることによって、前記データのうち第２データを前記第２マルチビットセルにプログラミングする。前記第１および第２マルチビットセルは異なってもよい。
【００１１】
また、本発明のまた他の側面に係るマルチビットプログラミング方法は、ページプログラミング動作の第１データをページバッファに格納するステップと、１つ以上のビットを含む前記第１データの「１」と「０」の個数を計数するステップと、前記第１データの「１」と「０」の個数に基づいて前記第１データを反転するかどうかを決定するステップと、前記決定された反転の有無により前記第１データから前記第２データを生成するステップと、前記第２データを前記第１データに代って前記ページバッファに格納するステップと、前記ページバッファに格納された第２データを１つ以上のマルチビットセルにプログラミングするステップとを含むことを特徴とする。
【００１２】
また、本発明のまた他の側面に係るマルチビットプログラミング方法は、１つ以上のビットを含み、ページプログラミング動作の第１データをページバッファに格納するステップと、前記第１データのうち第１値を有するビット数と第２値を有するビット数を計数するステップと、前記第１値を有するビット数と前記第２値を有するビット数とに基づいて、前記第１データを反転するかどうかを決定するステップと、前記第１値を有するビット数が前記第２値を有するビット数より多い場合、前記第１データを反転して第２データを生成するステップと、前記第２データを前記第１データに代って前記ページバッファに格納するステップと、前記ページバッファに格納された第２データを１つ以上のマルチビットセルにプログラミングするステップとを含む。
【００１３】
また、本発明のまた他の側面に係るマルチビットプログラミング方法は、Ｎ回のページプログラミング動作に用いられるデータを格納するステップと、前記データのうちデータパターンを識別するステップと、前記識別されたデータパターンに対応する第１マルチビットセルの閾値電圧を第１変化量だけ変化させるステップと、前記第１マルチビットセルを除いた第２マルチビットセルの閾値電圧を第２変化量だけ変化させるステップとを含むことを特徴とする。
【００１４】
本発明のまた他の側面に係るマルチビットプログラミング方法は、複数のページプログラミング動作に用いられるデータを格納するステップと、前記データのうちデータパターンを識別するステップと、前記識別されたデータパターンに対応する第１マルチビットセルの閾値電圧を第１変化量だけ変化させるステップと、第２マルチビットセルの閾値電圧を第２変化量だけ変化させるステップとを含む。前記第１マルチビットセルおよび前記第２マルチビットセルは異なってもよい。
【００１５】
本発明のまた他の側面に係るマルチビットプログラミング方法を実行するためのプログラムが記録されているコンピュータ読み取り可能な記録媒体は、複数のページプログラミング動作に用いられるデータを格納するステップと、前記データのうちデータパターンを識別するステップと、前記識別されたデータパターンに対応する第１マルチビットセルの閾値電圧を第１変化量だけ変化させるステップと、第２マルチビットセルの閾値電圧を第２変化量だけ変化させるステップとを含むマルチビットプログラミング方法を実行する。
【００１６】
本発明のまた他の側面に係るマルチビットプログラミング方法を実行するためのプログラムが記録されているコンピュータ読み取り可能な記録媒体は、１つのページプログラミング動作に用いられるデータを格納するステップと、前記データのうちデータパターンを識別するステップと、前記識別されたデータパターンに対応する第１マルチビットセルの閾値電圧を第１変化量だけ変化させるステップと、第２マルチビットセルの閾値電圧を第２変化量だけ変化させるステップとを含むマルチビットプログラミング方法を実行する。
【００１７】
本発明のまた他の側面によれば、前記第１の値は「１」または「０」であり、前記第２の値は「１」または「０」であり、前記第１値と前記第２の値は他のものとなってもよい。前記入力制御部は、複数の各ページプログラミング動作に対して第１データを反転するかどうかを決定することができる。前記入力制御部は、前記複数の各ページプログラミング動作に対する第１データに基づいて、第１データを反転するかどうかを決定する。前記入力制御部は、前記第１値を有するビットの数および前記第２値を有するビットの数と、前記複数の各ページプログラミング動作に対する順番とに基づいて、前記第１データを反転するかどうかを決定する。前記順番は、１から自然数Ｎまでの値を有することができる。
【００１８】
本発明のまた他の側面によれば、前記第１の値は「１」であり、前記第２の値は「０」でるとともに、前記ページプログラミング動作は、前記複数のページプログラミング動作のうち（Ｎ−１）回目のページプログラミング動作である。前記第１の値は「０」であり、前記第２の値は「１」であるとともに、前記ページプログラミング動作は、前記複数のページプログラミング動作のうちＮ回目のページプログラミング動作である。
【００１９】
本発明のまた他の側面によれば、マルチビットプログラミング装置は、前記第１データの反転の有無に対応するフラグを格納するフラグ格納部をさらに含む。出力制御部は、前記フラグ格納部から前記フラグを受信し、前記マルチビットセルから前記第２データを受信して、前記フラグに基づいて前記第２データから前記第１データを復元する。前記ページプログラミング動作は、１つ以上のマルチビットセルの閾値電圧を変化させ、前記入力制御部は、前記第１値が有するビット数および前記第２値が有するビット数と、前記第１ページプログラミング動作の間の前記一つ以上のマルチビットセルの閾値電圧の変化量とに基づいて、前記第１データを反転するかどうかを決定する。
【００２０】
本発明のさらに他の側面によれば、前記入力制御部は、前記１つ以上のマルチビットセルの閾値電圧の変化量のうち最大変化量が最小化されるように、前記第１データを反転するかどうかを決定する。前記マルチビットプログラミング装置は、前記Ｎページプログラミング動作を行うとともに、前記入力制御部は、前記閾値電圧が変化するマルチビットセルの個数が、前記閾値電圧が変化しないマルチビットセルの個数より多くなるように、前記第１データを反転するかどうかを決定する。
【００２１】
前記マルチビットプログラミング装置は、Ｎページプログラミング動作を行って、前記Ｎ回目のプログラミング動作が行われる場合、前記入力制御部は、閾値電圧が変化するマルチビットセルの個数が多くなるように、前記第１データを反転するかどうかをを決定する。前記入力制御部は、前記ページプログラミング動作の間、閾値電圧が変化するマルチビットセルの個数が、前記閾値電圧が変化しないマルチビットセルの個数より多くなるように、前記第１データを反転するかどうかを決定する。
【００２２】
前記マルチビットプログラミング装置は、Ｎページプログラミング動作を行い、前記入力制御部は、第１ページプログラミング動作の間に第１閾値電圧が変化するマルチビットセルの個数が多くなるように、前記第１ページプログラミング動作の間に第２閾値電圧が変化しない前記マルチビットセルが多くなるように、前記第１データを反転するかどうかを決定し、前記第２閾値電圧は前記第１閾値電圧より大きい。
【図面の簡単な説明】
【００２３】
【図１】本発明の一実施形態に係るマルチビットプログラミング装置を示す図である。
【図２】本発明の他の実施形態に係るマルチビットプログラミング装置を示す図である。
【図３】Ｎが４である実施形態により入力制御部が行う第１データの反転過程を示す図である。
【図４】Ｎが４である実施形態により入力制御部が行う第１データの反転過程を示す図である。
【図５】本発明のさらに他の実施形態に係るマルチビットプログラミング装置を示す図である。
【図６】マルチビットプログラミング装置によって行われるページプログラミング動作の一例を示す図である。
【図７】マルチビットプログラミング装置によって行われるページプログラミング動作の他の例を示す図である。
【図８】本発明のさらに他の実施形態に係るマルチビットプログラミング装置を示す図である。
【図９】マルチビットプログラミング装置で行われるページプログラミング動作を示す図である。
【図１０】本発明の一実施形態に係るマルチビットプログラミング方法を示す動作フローチャートである。
【図１１】図１０のステップＳ１０３０の一実施形態を詳細に示した動作フーチャートである。
【図１２】図１０のステップＳ１０３０の他の実施形態を詳細に示した動作フローチャートである。
【図１３】本発明のさらに他の実施形態に係るマルチビットプログラミング方法を示す動作フローチャートである。
【発明を実施するための形態】
【００２４】
以下、本発明に係る好適な実施形態を添付する図面を参照しながら詳細に説明する。しかし、本発明が実施形態によって制限されたり限定されたりすることはない。各図面に提示する同一の参照符号は、同一の部材を示す。
【００２５】
図１は、本発明の一実施形態に係るマルチビットプログラミング装置１００を示す図である。
【００２６】
図１を参照すれば、マルチビットプログラミング装置１００は、ページバッファ１１０、入力制御部（または入力制御回路）１２０、およびページプログラミング部（または、ページプログラミング回路）１３０を含む。
【００２７】
ページバッファ１１０は、ページプログラミング動作の第１データを格納する。
【００２８】
第１データは、１つ以上のビットを含む。
【００２９】
入力制御部１２０は、第１データの「１」と「０」の個数に基づいて、第１データを反転するかどうかを決定し、前記決定された反転の有無（反転／非反転）により第２データを生成して、前記第２データを前記ページバッファ１１０に格納する。
【００３０】
入力制御部１２０が、第１データを反転すると決定した場合、入力制御部１２０は、第１データを反転して第２データを生成する。
【００３１】
入力制御部１２０が、第１データを反転しないと決定した場合、入力制御部１２０は、第１データをそのまま維持して第２データを生成する。一例として、入力制御部１２０は、第１データを反転せずに第２データを生成する。一例として、第１データと第２データは同一であってもよい。一部の実施形態によれば、ビット反転または反転ビットは、第１値（例えば、「０」または「１」）から他の値（例えば、「０」または「１」）にビットを変化させることを示す。
【００３２】
ページプログラミング部１３０は、ページバッファ１１０に格納された第２データを１つ以上のマルチビットセルにプログラミングまたは記録する。
【００３３】
図２は、本発明の他の実施形態に係るマルチビットプログラミング装置２００を示す図である。
【００３４】
図２を参照すれば、マルチビットプログラミング装置２００は、ページバッファ２１０、入力制御部（または、入力制御回路）２２０、ページプログラミング部（または、ページプログラミング回路）２３０、およびマルチビットセルアレイ２４０を含む。
【００３５】
ページバッファ２１０は、マルチビットプログラミング装置２００によって行われたページプログラミング動作の第１データを格納する。
【００３６】
第１データは、複数のビット（例えば、Ｎビット）を含む。
【００３７】
マルチビットプログラミング装置２００は、ページプログラミング動作をＮ（Ｎは整数である）回行い、ページバッファ２１０は、現在の各ページプログラミング動作に対する第１データを格納する。各ページプログラミング動作は１ビットのデータに対応する。本発明の一実施形態によれば、第１ページプログラミング動作は第１ビットをプログラミングする過程を含み、第２ページプログラミング動作は第２ビットをプログラミングする過程を含む。
【００３８】
マルチビットプログラミング装置２００が行うＮ回のプログラミング動作は、１つ以上の各マルチビットセルにプログラミングされるマルチビット（例えば、Ｎビット）のデータを生成およびプログラミングする。
【００３９】
各ページプログラミング動作は、複数の単位プログラミング動作を含む。単位プログラミング動作の実行回数（例えば、Ｎ回）は、プログラミングアルゴリズムによって決定される。
【００４０】
実施形態によれば、次の方法によって単位プログラミング動作の実行回数が決定される。
【００４１】
各単位プログラミング動作が終了する度に、マルチビットプログラミング装置２００は、各マルチビットセルの閾値電圧を検出する。マルチビットプログラミング装置２００は、各マルチビットセルの検出された閾値電圧を臨界電圧と比較し、比較結果に応じて各マルチビットセルに対して次の単位プログラミング動作を行うか否かを決定する。
【００４２】
本実施形態では、単位プログラミング動作は、マルチビットセルの閾値電圧を増加させる動作であると仮定する。比較の結果、第１マルチビットセルの閾値電圧が検証電圧より低いことを示せば、マルチビットプログラミング装置２００は、第１マルチビットセルに対して次の単位プログラミング動作を行う。比較の結果、第２マルチビットセルの閾値電圧が検証電圧より高いか同じであることを示せば、マルチビットプログラミング装置２００は、第２マルチビットセルに対して次の単位プログラミング動作を実行しない。
【００４３】
入力制御部２２０は、第１データの「１」と「０」の個数に基づいて、第１データを反転するかどうかを決定し、決定された反転の有無（反転／非反転）により第２データを生成する。
【００４４】
入力制御部２２０は、生成された第２データを第１データに代ってページバッファ２１０にオーバーライトする。
【００４５】
入力制御部２２０は、各ページプログラミング動作度に、現在実行されるページプログラミング動作の第１データを反転するかどうかを決定する。
【００４６】
入力制御部２２０は、各ページプログラミング動作度に、第１データを反転するかどうかを決定する場合、Ｎ回のページプログラミング動作の第１データをすべてまたは選択的に考慮してもよい。
【００４７】
ページプログラミング動作がＮ回行われるためページプログラミング動作は、１からＮまでの順番を有する。入力制御部２２０は、（Ｎ−１）回目のページプログラミング動作の第１データを反転するかどうかを決定する場合、最初からＮ回目の各ページプログラミング動作の第１データをすべて考慮してもよい。
【００４８】
入力制御部２２０は、現在のページプログラミング動作の順番、ならびに複数の「１」および「０」に基づいて、第１データを反転するかどうかを決定する。
【００４９】
入力制御部２２０は、（Ｎ−１）回目のページプログラミング動作の第１データを反転するかどうかを決定する場合、第１データの「１」と「０」の個数、およびページプログラミング動作の順番の（Ｎ−１）に基づいて、第１データを反転するかどうかを決定する。
【００５０】
ページプログラミング部２３０は、ページバッファ２１０に格納された第２データをマルチビットセルアレイ２４０内のページ２５０にプログラミングする。ページ２５０は、少なくとも１つのワード線に接続された複数のマルチビットセルを含む。ページ２５０は、第１データのビット数と同一の個数のマルチビットセルを含む。
【００５１】
実施形態によれば、入力制御部２２０は、（Ｎ−１）回目のページプログラミング動作の第１データのうち「１」が「０」より多い場合、（Ｎ−１）回目のページプログラミング動作の第１データを反転して第２データを生成する。
【００５２】
そうでない場合、入力制御部２２０は、（Ｎ−１）回目のページプログラミング動作の第１データを反転せずに第２データを生成する。この場合、第１および第２データは同一であってもよい。
【００５３】
実施形態によれば、入力制御部２２０は、Ｎ回目のページプログラミング動作の第１データのうち「０」が「１」より多い場合、Ｎ回目のページプログラミング動作の第１データを反転して第２データを生成する。
【００５４】
そうでない場合、入力制御部２２０は、（Ｎ−１）回目のページプログラミング動作の第１データを反転せずに第２データを生成する。この場合、第１および第２データは同一であってもよい。
【００５５】
図３および図４は、入力制御部２２０が行う第１データの反転過程を示す図である。図３および図４に示す実施形態は４回のページプログラミング動作を説明するためのものであるが、この実施形態に限定されることはない。図３および図４に示す図面は、図２と関連して論じられる。
【００５６】
図３および図４を参照すれば、データ３１０は、１回目のページプログラミング動作の第１データであり、データ４１０は、１回目のページプログラミング動作の第２データである。
【００５７】
入力制御部２２０は、データ３１０に基づいてデータ４１０を生成する。
【００５８】
入力制御部２２０は、生成されたデータ４１０をページバッファ２１０に格納する。この時、入力制御部２２０は、ページバッファ２１０に格納されたデータ３１０に代ってデータ４１０をオーバーライトする。
【００５９】
一般に、ページバッファ２１０は、スタティックランダムアクセスメモリ（Ｓｔａｔｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ、ＳＲＡＭ）、またはＳＲＡＭと類似する機能を行うことのできるメモリによって構成される。ページバッファ２１０がＫビットのデータ（例えば、Ｋは１、２、４、８、１６、３２等）を格納する場合に、ページプログラミング部２３０は、同時にＫビットのデータをページ２５０にプログラミングする。この時、ページ２５０はＫ個のマルチビットセルを含む。
【００６０】
図３および図４は、ページバッファ２１０が４ビットのデータを格納する実施形態を示す。しかしながら、この実施形態に限定されることはなく、この実施形態の代わりに任意のサイズのマルチビットページバッファでも行うことができる。
【００６１】
ページバッファ２１０が４ビットのデータを格納するため、ページ２５０は、４ビットのマルチビットセルを含む。ページプログラミング部２３０は、同時に４ビットのデータをページ２５０にプログラミングする。
【００６２】
データ４１０は、１回目のページプログラミング動作の間にページプログラミング部２３０によってページ２５０にプログラミングされる。
【００６３】
データ４１０の１回目のビットは、ページ２５０の１回目のマルチビットセルにプログラミングされる。同じように、データ４１０の２回目のビットはページ２５０の２回目マルチビットセルにプログラミングされる。
【００６４】
データ列（ｃｏｌｕｍｎ）４５０は、１回目のマルチビットセルにプログラミングされるマルチビットデータを示す。データ列４６０は、２回目のマルチビットセルにプログラミングされるマルチビットデータを示す。
【００６５】
実施形態によれば、１つのマルチビットセルにプログラミングされるデータのうち１回目のページプログラミング動作の間にプログラミングされるデータが、最上位ビット（ｍｏｓｔ  ｓｉｇｎｉｆｉｃａｎｔ  ｂｉｔ、ＭＳＢ）であり、４回目のページプログラミング動作の間にプログラミングされるデータが、最下位ビット（ｌｅａｓｔ  ｓｉｇｎｉｆｉｃａｎｔ  ｂｉｔ、ＬＳＢ）であってもよい。
【００６６】
図３および図４に示すデータを参照して説明すれば、１回目のマルチビットセルにプログラミングされるマルチビットデータは「１０１１」である（データ列４５０を下から上へ参照）。もし、本発明のマルチプログラミング装置によらなければ、１回目のマルチビットセルにプログラミングされるマルチビットデータは「０１１１」である（図３に示すデータ列３５０を下から上へ参照）。
【００６７】
データ３２０は、２回目のページプログラミング動作の第１データであり、データ４２０は、２回目のページプログラミング動作の第２データである。
【００６８】
入力制御部２２０は、データ３２０に基づいてデータ４２０を生成する。
【００６９】
入力制御部２２０は、生成されたデータ４２０をページバッファ２１０に格納する。この時、入力制御部２２０は、ページバッファ２１０に格納されたデータ３２０に代ってデータ４２０をオーバーライトする。
【００７０】
ページプログラミング部２３０は、２回目のページプログラミング動作の間、ページバッファ２１０に格納されたデータ４２０をページ２５０にプログラミングする。
【００７１】
入力制御部２２０は、１回目のページプログラミング動作および２回目のページプログラミング動作の第１データ３１０および３２０を反転しないと決定することができる。図３および図４に示すように、データ４１０は、データ３１０と同一であり、データ４２０は、データ３２０と同一である。
【００７２】
データ３３０は３回目のページプログラミング動作の第１データであり、データ４３０は３回目のページプログラミング動作の第２データである。
【００７３】
入力制御部２２０は、データ３３０に基づいてデータ４３０を生成する。
【００７４】
入力制御部２２０は、生成されたデータ４３０をページバッファ２１０に格納する。この時、入力制御部２２０は、ページバッファ２１０に格納されたデータ３３０に代ってデータ４３０をオーバーライトする。
【００７５】
ページプログラミング部２３０は、３回目のページプログラミング動作の間、ページバッファ２１０に格納されたデータ４３０をページ２５０にプログラミングする。
【００７６】
入力制御部２２０は、現在実行されるページプログラミング動作が（Ｎ−１）回目のページプログラミング動作であるか否かを判断する。本実施形態はＮが４である場合の実施形態であるため、入力制御部２２０は現在実行されるページプログラミング動作が（Ｎ−１）回目、または３回目のページプログラミング動作であるか否かを判断する。
【００７７】
入力制御部２２０は、３回目のページプログラミング動作の第１データのデータ３３０のうち「１」と「０」の個数を計数（ｃｏｕｎｔ）する。データ３３０のうち「１」が「０」より多い場合、入力制御部２２０は、データ３３０を反転してデータ４３０を生成する。
【００７８】
データ３３０は、３つの「１」と１つの「０」を含むため（「１１１０」）、入力制御部２２０は、データ３３０を反転してデータ４３０（「０００１」）を生成する。
【００７９】
実施形態によれば、マルチビットプログラミング装置２００は、第２データが第１データの反転バージョンであるか否かに基づいて（例えば、データ３３０の反転／非反転に基づいて）対応するフラグ４９３を生成することができる。
【００８０】
本実施形態では、フラグ４９３は、データ４３０がデータ３３０の反転で生成されたことを示す値の「１」を有する。
【００８１】
データ４１０は、データ３１０の反転なしに生成されたため、フラグ４９１は反転なしに生成されたことを示す値の「０」を有する。
【００８２】
同じように、データ４２０は、データ３２０の反転なしに生成されたため、フラグ４９２の値は「０」である。
【００８３】
データ３４０は、４回目のページプログラミング動作の第１データであり、データ４４０は、４回目のページプログラミング動作の第２データである。
【００８４】
入力制御部２２０は、データ３４０に基づいてデータ４４０を生成する。
【００８５】
入力制御部２２０は、生成されたデータ４４０をページバッファ２１０に格納する。この時、入力制御部２２０は、ページバッファ２１０に格納されたデータ３４０に代ってデータ４４０をオーバーライトする。
【００８６】
ページプログラミング部２３０は、４回目のページプログラミング動作の間、ページバッファ２１０に格納されたデータ４４０をページ２５０にプログラミングする。
【００８７】
入力制御部２２０は、現在のページプログラミング動作がＮ回目のページプログラミング動作であるか否かを判断する。本実施形態はＮが４である場合の実施形態であるから、入力制御部２２０は、現在実行されるページプログラミング動作がＮ回目のページプログラミング動作であるか否かを判断する。
【００８８】
入力制御部２２０は、４回目のページプログラミング動作の第１データのデータ３４０のうち「１」と「０」の個数を係数（ｃｏｕｎｔ）とする。データ３４０のうち「０」が「１」より多い場合、入力制御部２２０は、データ３４０を反転してデータ４４０を生成する。
【００８９】
データ３４０は、１つの「１」と３つの「０」を含むため、入力制御部２２０は、データ３４０を反転してデータ４４０を生成する。データ４４０は、データ３４０の反転バージョンである。
【００９０】
マルチビットプログラミング装置２００は、値が「１」のフラグ４９４を設定する。
【００９１】
実施形態によれば、マルチビットプログラミング装置２００は、フラグ４９１，４９２，４９３，４９４を格納するフラグ格納部（または、格納回路）をさらに含んでもよい。
【００９２】
４回のページプログラミング動作がすべて終了すれば、１回目のマルチビットセルには「１０１１」がプログラムされる（データ列４５０参照）。２回目のマルチビットセルには「００１１」がプログラムされる（データ列４６０参照）。３回目のマルチビットセルには「１０１１」がプログラムされる（データ列４７０参照）。４回目のマルチビットセルには「１１１１」がプログラムされる（データ列４８０参照）。
【００９３】
データ列３５０，３６０，３７０，３８０は、本発明のマルチビットプログラミング装置２００によらない場合に、ページ２５０のマルチビットセルにプログラムされるデータを示す。
【００９４】
本発明のマルチビットプログラミング装置２００は、マルチビットセルに「０１１１」がプログラムされるケースを減少させることができる。１つのマルチビットセルに「０１１１」がプログラムされる場合の問題点は、以下の図６を説明する過程で記載する。
【００９５】
図３に示すように、第１データによれば１回目のマルチビットセルおよび３回目のマルチビットセルに「０１１１」がプログラムされるケースが生じる。しかし、本発明のマルチビットプログラミング装置２００の反転過程によって、実際には第２データがプログラムされるため、最初および３回目のマルチビットセルには「１０１１」がプログラムされる。
【００９６】
図５は、本発明のまた他の実施形態に係るマルチビットプログラミング装置５００を示す図である。
【００９７】
図５を参照すれば、マルチビットプログラミング装置５００は、ページバッファ５１０、入力制御部５２０、ページプログラミング部５３０、マルチビットセルアレイ５４０、フラグ格納部５５０、および出力制御部５６０を含む。
【００９８】
ページバッファ５１０、入力制御部５２０、ページプログラミング部５３０、およびマルチビットセルアレイ５４０の動作の説明は、図１および図２で説明したものと同じであるため省略する。
【００９９】
フラグ格納部５５０は、ページプログラミング動作の第１データの反転の有無（反転／非反転）に対応するフラグを格納する。フラグ格納部５５０に格納されたフラグは、ページプログラミング動作の第２データが対応するページプログラミング動作の第１データに対する反転バージョンの識別を示す。例えば、第２データが対応する第１データの反転バージョンの場合、フラグ格納部５５０は、第１論理状態（例えば、「１」）でフラグを生成して格納する。また、第２データが対応する第１データの反転バージョンではない場合（例えば、同一の場合）、フラグ格納部５５０は、第２論理状態（例えば、「０」）でフラグを生成して格納する。
【０１００】
実施形態によれば、フラグ格納部５５０は、ページプログラミング動作の間に第２データがプログラムされるマルチビットセルのアドレスを必要によって格納することができる。マルチビットセルのアドレスは、マルチビットセルアレイ５４０内のマルチビットセルの位置を示す横座標および縦座標を含む。
【０１０１】
出力制御部５６０は、フラグ格納部５５０からフラグを受信し、マルチビットセルから第２データを受信して、フラグに基づいて第２データから第１データを復元する。
【０１０２】
出力制御部５６０は、受信されたフラグが第１論理状態（例えば、「１」）の場合には第２データを反転して第１データを復元する。反対に、出力制御部５６０は、フラグが第２論理状態（例えば、「０」）の場合、第２データの反転なしに第１データを復元する。
【０１０３】
実施形態によれば、第１論理状態は「０」であり、第２論理状態は「１」であってもよい。
【０１０４】
ページプログラミング動作は、第２データがプログラムされるマルチビットセルの閾値電圧を変化させることができる。
【０１０５】
入力制御部５２０は、第１データの「１」と「０」の個数、およびページプログラミング動作の間のマルチビットセルの閾値電圧の変化量に基づいて、第１データを反転するかどうかを決定する。
【０１０６】
図６は、マルチビットプログラミング装置５００によって行われるページプログラミング動作の一例を示す図である。
【０１０７】
図６を参照すれば、プログラミング前のマルチビットセルは初期状態である（６３０）。
【０１０８】
図６に示す横軸はマルチビットセルの閾値電圧を示し、縦軸はマルチビットセルの分布（ｄｉｓｔｒｉｂｕｔｉｏｎ）を示す。
【０１０９】
図６に示すように、複数（例えば、４度）のページプログラミング動作の間に「１１１１」がプログラムされたマルチビットセルは、初期状態をそのまま維持する（６７０）。
【０１１０】
１回目のページプログラミング動作の間に「１」がプログラムされたマルチビットセルは、そのまま初期状態で、「０」がプログラムされたマルチビットセルは「ＸＸＸ０」状態に遷移される（６４０）。
【０１１１】
ここで、Ｘは未確定論理状態（ｕｎｄｅｆｉｎｅｄ  ｌｏｇｉｃ  ｓｔａｔｅ  ｏｒ  ｄｏｎ’ｔ  ｃａｒｅ  ｓｔａｔｅ）を示す。
【０１１２】
２回目のページプログラミング動作の間に「１」がプログラムされたマルチビットセルは、初期状態を維持される、または「ＸＸＸ０」状態から「ＸＸ１０」状態に遷移される（６５０）。２回目のページプログラミング動作の間に「０」がプログラムされたマルチビットセルは、初期状態から「ＸＸ０１」状態に遷移される、または「ＸＸＸ０」状態から「ＸＸ００」状態に遷移される（６５０）。
【０１１３】
３回目のページプログラミング動作後のマルチビットセルの分布は、状態６６０に示されており、４回目のページプログラミング動作後のマルチビットセルの分布は状態６７０に示されている。
【０１１４】
状態６７０に示すように、「１１１１」状態から「０１１１」に遷移される場合で、マルチビットセルの閾値電圧の変化が最も大きい。
【０１１５】
一般に、ページプログラミング動作の間にマルチビットセルの閾値電圧の変化が大きい場合、ページプログラミング動作の間またはその後において、隣接した（ｎｅｉｇｈｂｏｒｈｏｏｄ）マルチビットセルの閾値電圧またはその他の特性の影響により、望ましくない変化が生じることがある。望ましくない変化の原因となるメカニズムとしては、浮遊ポリシリコンカップリング（ｆｌｏａｔｉｎｇ  ｐｏｌｙ−ｓｉｌｉｃｏｎ  ｃｏｕｐｌｉｎｇ、ＦＰ  ｃｏｕｐｌｉｎｇ）、またはプログラムディスターバンス（ｐｒｏｇｒａｍ  ｄｉｓｔｕｒｂａｎｃｅ）等が知られている。
【０１１６】
浮遊ポリシリコンカップリングは、周辺マルチビットセルの閾値電圧を変化させ、該当マルチビットセルの閾値電圧の分布を拡散させる。閾値電圧の分布が広がれば、マルチビットセルのデータを読み取る過程において誤差率が増加する。したがって、本発明のマルチビットプログラミング装置５００は、ページプログラミング動作の間にマルチビットセルの閾値電圧の変化が大きくならないように最大変化量を減少させる、または閾値電圧の最大変化を発生させるマルチビットセルの個数を減少させる目的を有する。
【０１１７】
図６に示す点線矢印の過程に従えば、３回目のページプログラミング動作後に初期状態に留まっていたマルチビットセルは、４回目のページプログラミング動作の間初期状態から「０１１１」状態に遷移される。
【０１１８】
入力制御部５２０は、３回目のページプログラミング動作の第１データのうち「１」の個数が「０」の個数より多い場合、３回目のページプログラミング動作の第１データを反転して第２データを生成する。
【０１１９】
これによって、初期状態に留まっている（点線矢印の過程に従って行く）マルチビットセルの個数より初期状態から「Ｘ０１１」状態に遷移６１０するマルチビットセルの個数が多くなり、最終的に「０１１１」状態に遷移されるマルチビットセルの個数を減少させることができる。
【０１２０】
入力制御部５２０は、マルチビットセルの閾値電圧の変化量のうち最大変化量を最小化する効果、または最大変化量を発生させるマルチビットセルの個数を減少させる効果を有する。
【０１２１】
入力制御部５２０は、（Ｎ−１）回目のページプログラミング動作の間、閾値電圧が変化するマルチビットセルの個数が、閾値電圧が変化しないマルチビットセルの個数より多くなるように、第１データを反転するかどうかを決定する。
【０１２２】
図６の実施形態は、Ｎ＝４である場合に対応するものであるため、入力制御部５２０は３回目のページプログラミング動作の間に「１」と「０」の個数を比較して、第２データのうち「０」の個数が「１」の個数より多くなるように、第１データを反転するかどうかを決定する。第２データのうち「０」の個数が「１」の個数より多い場合、閾値電圧が変化するマルチビットセルの個数は、閾値電圧が変化しないマルチビットセルの個数より多くなる。
【０１２３】
入力制御部５２０は、「ＸＸ１１」状態から「Ｘ１１１」状態に遷移されるマルチビットセルの個数より「ＸＸ１１」状態から「Ｘ０１１」状態に遷移されるマルチビットセルの個数を多くし、ＦＰカップリングによるデータ汚染を最小化することができる。
【０１２４】
入力制御部５２０は、４回目のページプログラミング動作の第１データの反転なしに第２データを生成することができる。４回目のページプログラミング動作の第１データが「０」のマルチビットセルは、「Ｘ０１１」状態から「００１１」状態に遷移６２０する。
【０１２５】
実施形態によれば、入力制御部５２０は、Ｎ回目のページプログラミング動作の間、閾値電圧が変化しないマルチビットセルが多くなるように、前記第１データを反転するかどうかを決定することができる。Ｎ＝４である場合の実施形態に対応して説明すれば、入力制御部５２０は、４回目のページプログラミング動作の間に「１」と「０」の個数を比較して、第２データのうち「１」の個数が「０」の個数より多くなるように、第１データを反転するかどうかを決定する。第２データのうち「１」の個数が「０」の個数より多い場合、閾値電圧が変化しないマルチビットセルの個数は、閾値電圧が変化するマルチビットセルの個数より多くなる。
【０１２６】
入力制御部５２０は、「Ｘ１１１」状態から「０１１１」状態に遷移されるマルチビットセルの個数より「Ｘ１１１」状態から「１１１１」状態に遷移されるマルチビットセルの個数を多くして、ＦＰカップリングによるデータ汚染を減少（例えば、最小化）させることができる。
【０１２７】
図７は、マルチビットプログラミング装置５００によって行われるページプログラミング動作の他の例を示す図である。
【０１２８】
図７を参照すれば、入力制御部５２０は、点線矢印の過程に従うマルチビットセルの個数より実線矢印の過程に従うマルチビットセルの個数が多くなるように、第１データを反転するかどうかを決定する。
【０１２９】
一般に、ＦＰカップリングによるマルチビットセルの閾値電圧の望ましくない変化、およびそれによるデータ汚染（ｄａｔａ  ｐｏｌｌｕｔｉｏｎ）は、閾値電圧が比較的低いマルチビットセルとして発生する（例えば、強く表れる）。
【０１３０】
したがって、入力制御部５２０は、閾値電圧が比較的低いマルチビットセルの場合には、「Ｘ０１１」状態から「００１１」状態に遷移し（７２０）、「Ｘ１０１」状態から「０１０１」状態に遷移し（７３０）、「Ｘ００１」状態から「０００１」状態に遷移する（７４０）マルチビットセルの個数が多くなるように、４回目のページプログラミング動作の第１データを反転するかどうかを決定する。
【０１３１】
入力制御部５２０は、閾値電圧が比較的低いマルチビットセルの場合には、閾値電圧が変化するマルチビットセルの個数が、閾値電圧が変化しないマルチビットセルの個数より多くなるように、第１データを反転するかどうかを決定する。
【０１３２】
一般に、非揮発性メモリのプログラミング動作は、閾値電圧を増加させる方向で行われるため、プログラミング動作の間閾値電圧が変化するということは閾値電圧が増加することを意味する。
【０１３３】
入力制御部５２０は、閾値電圧が低いマルチビットセルの場合には、閾値電圧を増加させる方向にページプログラミング動作を誘導してデータ汚染を減少または最小化する。
【０１３４】
この時、入力制御部５２０は、「Ｘ１１１」状態から「０１１１」状態に遷移されるマルチビットセルの個数を減少させるために、「Ｘ１１１」状態から「１１１１」状態に遷移されるマルチビットセルの個数が多くなるように、４回目のページプログラミング動作の第１データを反転するかどうかを決定する。
【０１３５】
ＦＰカップリングによるデータ汚染は、「Ｘ１１１」状態から「０１１１」状態に遷移される過程で発生して（例えば、強く表れる）、その他の場合には閾値電圧が低いマルチビットセルの個数が多い場合に、閾値電圧の分布が広がる傾向がある。
【０１３６】
したがって、入力制御部５２０は、「０１１１」状態に遷移されるマルチビットセルの個数を減少させ、その他の場合には閾値電圧が低いマルチビットセルの個数を減少させることによって、ＦＰカップリングによるデータ汚染および閾値電圧の分布の拡散を最小化する効果がある。
【０１３７】
一般に、マルチビットセルの閾値電圧を高めるためには、高電圧をマルチビットセルのゲート（ｇａｔｅ）端子に印加（ｆｏｒｃｅ）しなければならない。ゲート（ｇａｔｅ）端子およびドレイン（ｄｒａｉｎ）／ソース（ｓｏｕｒｃｅ）／バルク（ｂｕｌｋ）端子間の電位差が大きくなれば、プログラム過程におけるプログラムディスターバンスによってターゲットマルチビットセル以外に隣接した（ｎｅｉｇｈｂｏｒｈｏｏｄ）マルチビットセルの閾値電圧に望ましくない影響を及ぼすため、データ汚染が発生するようになる。
【０１３８】
また、ページプログラミング動作の間、高電圧に長時間露出したマルチビットセルは、高電圧ストレス（ｈｉｇｈ  ｖｏｌｔａｇｅ  ｓｔｒｅｓｓ、ＨＶＳ）によって特性が変化することがあり、これもまた特性の望ましくない変化であるため、回避することが好ましい。
【０１３９】
したがって、ページプログラミング動作の間、閾値電圧が電圧ウィンドウ（ｖｏｌｔａｇｅ  ｗｉｎｄｏｗ）の最大点に近接するマルチビットセルの個数を減少させることがデータ汚染を減少または最小化するのに効果的である。
【０１４０】
入力制御部５２０は、「Ｘ１１０」状態から「１１１０」状態に遷移し（７５０）、「Ｘ０１０」状態から「１０１０」状態に遷移し（７６０）、「Ｘ１００」状態から「１１００」状態に遷移し（７７０）、「Ｘ０００」状態から「１０００」状態に遷移する（７８０）マルチビットセルの個数が多くなるように、４回目のページプログラミング動作の第１データを反転するかどうかを決定する。
【０１４１】
入力制御部５２０は、閾値電圧が高いマルチビットセルの個数を減少させることによって、データ汚染を減少または最小化する効果を有する。
【０１４２】
入力制御部５２０は、「０００１」状態より低い第１閾値電圧を有するマルチビットセルの中では第１閾値電圧が変化するマルチビットセルの個数が多くなるように、第１データを反転するかどうかを決定する。
【０１４３】
入力制御部５２０は、「１１１０」状態より高い第２閾値電圧を有するマルチビットセルの中で、第２閾値電圧が変化しないマルチビットセルの個数が多くなるように第２データを反転するかどうかを決定する。
【０１４４】
図８は、本発明のさらに他の実施形態に係るマルチビットプログラミング装置８００を示す図である。
【０１４５】
図８を参照すれば、マルチビットプログラミング装置８００は、メモリ８１０、危険パターン識別部（または、危険パターン識別回路）８２０、ページプログラミング部（または、ページプログラミング回路）８３０、およびマルチビットセルアレイ８４０を含む。
【０１４６】
マルチビットプログラミング装置８００は、複数（例えば、Ｎ回）のページプログラミング動作を行う。
【０１４７】
メモリ８１０は、Ｎ回のページプログラミング動作のデータを格納する。
【０１４８】
危険パターン識別部８２０は、メモリ８１０に格納されたデータのうち危険パターンを識別する。
【０１４９】
ページプログラミング部８３０は、識別された危険パターンに対応する第１マルチビットセルの閾値電圧を第１変化量だけ変化させることによって、データのうち第１データを前記第１マルチビットセルにプログラミングする。第１データは、第１マルチビットセルにプログラミングされるデータである。
【０１５０】
ページプログラミング部８３０は、第１マルチビットセルを除いた第２マルチビットセルの閾値電圧を第２変化量だけ変化させることによって、第２データを第２マルチビットセルにプログラミングする。第２データは、データのうち第１データを除く残りの部分である。
【０１５１】
マルチビットセルアレイ８４０は、第１マルチビットセルおよび第２マルチビットセルを含むアレイである。
【０１５２】
図９は、マルチビットプログラミング装置８００で行われるページプログラミング動作を示す図である。図９には、Ｎ＝４である場合の実施形態が示されているが、この実施形態に限定されることはない。実施形態で、Ｎは他の数（例えば、１、２、４、８、１６等）としてもよい。
【０１５３】
図９を参照すれば、４度のページプログラミング動作終了後に「０１１１」状態を有するマルチビットセルは、遷移過程９１０および遷移過程９２０によって「０１１１」状態に到達する。
【０１５４】
危険パターン識別部８２０は、メモリ８１０に格納されたデータを分析して、４回のページプログラミング動作終了後に「０１１１」状態を有するようになるマルチビットセルを識別する。
【０１５５】
この時、危険パターンは「０１１１」であり、危険パターン識別部８２０は、４回のページプログラミング動作の間のデータをすべて分析して危険パターンを識別する。
【０１５６】
危険パターン「０１１１」状態を有するようになるマルチビットセルは、第１マルチビットセルに分類される。第１マルチビットセルを除いた残りのマルチビットセルは、第２マルチビットセルに分類される。
【０１５７】
ページプログラミング部８３０は、３回目のページプログラミング動作の間に第１データを第１マルチビットセルに遷移過程９１０によってプログラミングする。遷移過程９１０間に第１マルチビットセルの閾値電圧は、第１変化量だけ変化する。遷移過程９１０間に第１マルチビットセルは、「ＸＸ１１」状態から「Ｘ１１１」状態９４０に遷移される。
【０１５８】
ページプログラミング部８３０は、３回目のページプログラミング動作の間に、第２マルチビットセルの閾値電圧を第２変化量だけ変化させることによって、第２データを第２マルチビットセルにプログラミングする。
【０１５９】
ページプログラミング部８３０は、４回目のページプログラミング動作の間に第１データを第１マルチビットセルに遷移過程９２０によりプログラミングする。遷移過程９２０間に第１マルチビットセルの閾値電圧は、第３変化量だけ変化する。遷移過程９２０間に第１マルチビットセルは、「Ｘ１１１」状態９４０から「０１１１」状態に遷移される。
【０１６０】
ページプログラミング部８３０は、４回目のページプログラミング動作の間に第２マルチビットセルの閾値電圧を第４変化量だけ変化させることによって、第２データを第２マルチビットセルにプログラミングする。
【０１６１】
マルチビットプログラミング装置８００によれば、第１マルチビットセルは「Ｘ１１１」状態から「０１１１」状態に遷移される過程で、閾値電圧の変化を３回目のページプログラミング動作および４回目のページプログラミング動作の間に分けて経験するようになる。
【０１６２】
したがって、第１マルチビットセルは、急激な閾値電圧の変化を４回目のページプログラミング動作中に経験せずに、３回目のページプログラム動作中に経験するようになる。第１マルチビットセルが経験するようになる、大きい閾値電圧の変化による周辺マルチビットセルに対するデータ汚染は、４回目のページプログラム動作中に補償される効果がある。
【０１６３】
マルチビットプログラミング装置８００は、第１マルチビットセルの閾値電圧の変化を複数のページプログラミング動作の間に分散させることによって、ＦＰカップリングによるデータ汚染を減少（例えば、実質的な減少または最小化）させる効果を有する。
【０１６４】
マルチビットプログラミング装置８００は、第１マルチビットセルおよび第２マルチビットセルの閾値電圧の分布を従来技術と異なるように設定して、ＦＰカップリングによるデータ汚染を減少（例えば、実質的な減少または最小化）させる効果を有する。
【０１６５】
マルチビットプログラミング装置８００によれば、遷移過程９１０は、３回目のページプログラミング動作の間行われて遷移過程９２０は、４回目のページプログラミング動作の間行われるため、全体プログラミング回数が増加しない。全体プログラミング回数が増加しないため、プログラミングディスターバンス（ｐｒｏｇｒａｍｍｉｎｇ  ｄｉｓｔｕｒｂａｎｃｅ）によるデータ汚染の危険が少ない。
【０１６６】
マルチビットプログラミング装置８００によれば、第１マルチビットセルに格納される最終データが反転することはない。したがって、第１マルチビットセルに格納されたデータを読み出す際にも最初のデータを復元する過程が必要でない。
【０１６７】
実施形態によれば、ページプログラミング部８３０は、３回目のページプログラミング動作の間にプログラミングされる第１データを反転して、第１マルチビットセルにプログラミングする。第１データは危険パターン「０１１１」に対応する。ページプログラミング部８３０は、３回目のページプログラミング動作の間にプログラミングされる第１データの「１」を反転して、「１」を反転した「０」を第１マルチビットセルにプログラミングする。
【０１６８】
ページプログラミング部８３０は、３回目のページプログラミング動作の間に「０」を第１マルチビットセルにプログラミングするため、別途の付加的な回路なしで第１マルチビットセルの閾値電圧を変化させることができる。
【０１６９】
第１マルチビットセルは３回目のページプログラミング動作の間に「ＸＸ１１」状態で「Ｘ１１１」状態９４０に遷移される。「ＸＸ１１」状態にあるマルチビットセルのうちでパターン「１１１１」に対応する第２マルチビットセルは、３回目のページプログラミング動作の間遷移過程９３０を経る。
【０１７０】
実施形態によっては「Ｘ１１１」状態９４０は、「Ｘ０１１」状態９５０と物理的には同一の状態であってもよい。ページプログラミング部８３０は、４回目のページプログラミング動作の間に第３変化量および第４変化量を異なるようにして、「０１１１」状態および「１０１１」状態を分離することができる。より具体的な実施形態として、ページプログラミング部８３０は、第３変化量より第４変化量を大きくして「０１１１」状態および「１０１１」状態を分離することができる。この時、「Ｘ１１１」状態９４０は、「Ｘ０１１」状態と物理的には同一であるが、論理的には相異した状態にある。「Ｘ１１１」状態９４０は、第１マルチビットセルと関連して、「Ｘ０１１」状態は第２マルチビットセルと関連するためである。
【０１７１】
実施形態によれば、マルチビットプログラミング装置８００は、３回目のページプログラミング動作の間にプログラミングされる第１データを反転してメモリ８１０に格納する。ページプログラミング部８３０は、３回目のページプログラミング動作の間メモリ８１０から反転した第１データを受信して第１マルチビットセルにプログラミングする。
【０１７２】
図１０は、本発明の一実施形態に係るマルチビットプログラミング方法を示す動作フローチャートである。
【０１７３】
図１０を参照すれば、ページプログラミング動作の第１データは、ページバッファに格納される（Ｓ１０１０）。
【０１７４】
１つ以上のビットを含む第１データの「１」と「０」の個数が計数される（Ｓ１０２０）。
【０１７５】
第１データを反転するかどうかは、第１データの「１」と「０」の個数に基づいて決定される（Ｓ１０３０）。
【０１７６】
決定された反転の有無により第１データから前記第２データが生成される（Ｓ１０４０）。
【０１７７】
第２データは、第１データに代って前記ページバッファに格納される（Ｓ１０５０）。
【０１７８】
ページバッファに格納された第２データは、少なくとも１つ以上のマルチビットセルにプログラミングされる（Ｓ１０６０）。
【０１７９】
マルチビットプログラミング方法は、ページプログラミング動作をＮ回行う。
【０１８０】
ステップＳ１０３０は、ページプログラミング動作の順番にさらに基づいて、第１データを反転するかどうかを決定する。ページプログラミング動作の順番は、１から自然数Ｎまでの値を有することができる。
【０１８１】
図１１は、図１０のステップＳ１０３０の一実施形態を詳細に示した動作フローチャートである。
【０１８２】
図１１を参照すれば、ステップＳ１０３０は、ページプログラミング動作の順番を判断する（Ｓ１１１０）。
【０１８３】
ステップＳ１０３０は、第１データの「１」と「０」の個数および現在実行されるページプログラミング動作の順番に基づいて、第１データを反転するかどうかを決定する（Ｓ１１２０）。
【０１８４】
図１２は、図１０のステップＳ１０３０の他の実施形態を詳細に示した動作フローチャートである。
【０１８５】
図１２を参照すれば、ステップＳ１０３０は、現在実行されるページプログラミング動作が（Ｎ−１）回目であるか否かを判断する（Ｓ１２１０）。
【０１８６】
ステップＳ１０３０は、現在実行されるページプログラミング動作が（Ｎ−１）回目である場合、ページプログラミング動作の第１データのうち「１」が「０」より多いか否かを判断する（Ｓ１２２０）。
【０１８７】
ステップＳ１０３０は、現在実行されるページプログラミング動作が、（Ｎ−１）回目の、ページプログラミング動作の第１データのうち「１」が「０」より多い場合、第１データを反転することを決定する（Ｓ１２３０）。
【０１８８】
ステップＳ１０３０は、現在のページプログラミング動作が、Ｎ回目であるか判断する（Ｓ１２４０）。ページプログラミング動作がＮ回目である場合、ページプログラミング動作の第１データのうち「０」が「１」より多いか否かを判断する（Ｓ１２５０）。
【０１８９】
ステップＳ１０３０は、現在のページプログラミング動作がＮ回目であり、第１データのうち「０」が「１」より多い場合、第１データを反転することを決定して第１データを反転する（Ｓ１２６０）。そして、方法はＳ１０４０ステップに進み、図１０に関して上述したように続けることができる。
【０１９０】
Ｓ１２５０ステップに戻り、第１データのうち「０」が「１」より小さいか同じであれば、図１０のＳ１０４０ステップに進む。
【０１９１】
Ｓ１２４０ステップに戻り、現在のページプログラミング動作が、Ｎ回目のページプログラミング動作でない場合、図１０のＳ１０４０ステップに進む。
【０１９２】
Ｓ１２２０ステップに戻り、現在ページプログラムの動作がＮ−１回目のページプログラミング動作であり、第１データのうち「０」が「１」より多くない場合、Ｓ１２４０ステップに進む。
【０１９３】
Ｓ１２１０ステップに戻り、現在のページプログラミング動作が、Ｎ−１回目のページプログラミング動作である場合、Ｓ１２４０ステップに進む。
【０１９４】
実施形態によれば、ページプログラミング動作は、マルチビットセルの閾値電圧を変化させることによって、データをマルチビットセルにプログラミングすることができる。
【０１９５】
実施形態によれば、ページプログラミング動作は、「０」のデータをプログラミングする場合に、マルチビットセルの閾値電圧を増加させるものとしてもよい。
【０１９６】
本発明のマルチビットプログラミング方法は、閾値電圧の急激な変化を経験するマルチビットセルの個数を減少させることによって、ＦＰカップリングによるデータ汚染を減少（例えば、実質的な減少または最小化）させる効果を有する。
【０１９７】
図１３は、本発明のまた他の実施形態に係るマルチビットプログラミング方法を示す動作フローチャートである。
【０１９８】
図１３を参照すれば、Ｎ回のページプログラミング動作に用いられるデータが格納される（Ｓ１３１０）。
【０１９９】
データのうち危険パターンが識別される（Ｓ１３２０）。
【０２００】
識別された危険パターンに対応する第１マルチビットセルの閾値電圧が、第１変化量だけ変化する（Ｓ１３３０）。
【０２０１】
ステップＳ１３３０で、第１マルチビットセルの閾値電圧を第１変化量だけ変化させることによって、データのうち第１データが第１マルチビットセルにプログラミングされる。
【０２０２】
第１マルチビットセルを除いた第２マルチビットセルの閾値電圧が、第２変化量だけ変化する（Ｓ１３４０）。
【０２０３】
ステップＳ１３４０において、第２マルチビットセルの閾値電圧を第２変化量だけ変化させることによって、データのうち第２データが第２マルチビットセルにプログラミングされる。第２データは、データのうち第１データを除いた残り部分を示す。
【０２０４】
この時の識別パターンは、第１マルチビットセルまたは第２マルチビットセルに最終的にプログラムされるマルチビットデータと関連する。
【０２０５】
実施形態によれば、識別パターンは、第１マルチビットセルまたは第２マルチビットセルに最終的にプログラムされるマルチビットデータと関連付けられてもよい。
【０２０６】
実施形態によれば、マルチビットプログラミング方法は、第１データを反転させるステップをさらに含んでもよい。この時、マルチビットプログラミング方法は、反転した第１データを用いてステップＳ１３３０を行う。
【０２０７】
本実施形態によれば、マルチビットプログラミング方法は、全体プログラミング回数を増加させないために、プログラミングディスターバンスによるデータ汚染を減少または最小化することができる。また、マルチビットプログラミング方法は、第１マルチビットセルに格納されたデータを復元する追加的な過程なしで第１マルチビットセルに格納されたデータにアクセスすることができる。
【０２０８】
本発明のマルチビットプログラミング方法は、第１マルチビットセルが経験する閾値電圧の急激な変化を複数のページプログラミング動作の間に分散させることによって、ＦＰカップリングによるデータ汚染を減少または最小化することができる。
【０２０９】
本発明に係るマルチビットプログラミング装置および方法はページプログラミング動作を行う過程で用いられるバイナリコード（ｂｉｎａｒｙ  ｃｏｄｅ）、修正バイナリコード（ｍｏｄｉｆｉｅｄ  ｂｉｎａｒｙ  ｃｏｄｅ）、グレイコード（ｇｒａｙ  ｃｏｄｅ）、または類似グレイコード（ｇｒａｙ−ｌｉｋｅ  ｃｏｄｅ）等を柔軟に可変適用して、データビットを反転するかどうかを決定することができる。
【０２１０】
本発明によれば、マルチレベルセルメモリに新しいマルチレベル（マルチビット）プログラミング技法を適用することによって、マルチレベルセルメモリにおいて、データ格納時の閾値電圧の分布を精密に制御することができる。
【０２１１】
また、本発明によれば、マルチレベルセルメモリに新しいマルチレベル（マルチビット）プログラミング技法を適用することによって、マルチレベルセルメモリにおいて、浮遊ポリシリコン（ｆｌｏａｔｉｎｇ  ｐｏｌｙ−ｓｉｌｉｃｏｎ、ＦＰ）カップリングによる閾値電圧の変化を減少させることができる。本発明は、ＦＰカップリングによる閾値電圧の変化を減少させることによって、隣接したマルチレベルセルのデータ汚染を減少させ、マルチレベルセルメモリに格納されたデータの読み取り失敗率（ｒｅａｄ  ｆａｉｌｕｒｅ  ｒａｔｅ）を減少させることができる。
【０２１２】
また、本発明によれば、マルチレベルセルメモリに新しいマルチレベル（マルチビット）プログラミング技法を適用することによって、マルチレベルセルメモリにおいて、データ格納時のディスターバンス（ｄｉｓｔｕｒｂａｎｃｅ）の発生の可能性を減少させることができる。
【０２１３】
本発明に係るマルチビットプログラミング方法は、コンピュータにより実現される多様な動作を実行するためのプログラム命令を含むコンピュータ読取可能な記録媒体を含む。当該記録媒体は、プログラム命令、データファイル、データ構造などを単独または組み合わせて含むこともでき、記録媒体およびプログラム命令は、本発明の目的のために特別に設計されて構成されたものでもよく、コンピュータソフトウェア分野の技術を有する当業者にとって公知であり使用可能なものであってもよい。コンピュータ読取可能な記録媒体の例としては、ハードディスク、フロッピー（登録商標）ディスク及び磁気テープのような磁気媒体、ＣＤ−ＲＯＭ、ＤＶＤのような光記録媒体、フロプティカルディスクのような磁気−光媒体、およびＲＯＭ、ＲＡＭ、フラッシュメモリなどのようなプログラム命令を保存して実行するように特別に構成されたハードウェア装置が含まれる。また、記録媒体は、プログラム命令、データ構造などを保存する信号を送信する搬送波を含む光または金属線、導波管などの送信媒体でもある。プログラム命令の例としては、コンパイラによって生成されるような機械語コードだけでなく、インタプリタなどを用いてコンピュータによって実行され得る高級言語コードを含む。上記のハードウェア装置は、本発明の動作を行うために１つ以上のソフトウェアモジュールとして作動するように構成されることができ、その逆も同様である。
【０２１４】
上述したように本発明は、たとえ限定された実施形態と図面によって説明されていても、本発明は上記の実施形態に限定されることはなく、本発明が属する分野で通常の知識を有する者であれば、このような記載からさまざまな修正および変形が可能である。
【０２１５】
したがって、本発明の範囲は、説明した実施形態に限定して決定されてはならず、後述する特許請求の範囲だけではなく、この特許請求の範囲と均等なものによって決められるものである。
【符号の説明】
【０２１６】
１００  マルチビットプログラミング装置
１１０  ページバッファ
１２０  入力制御部
１３０  ページプログラミング部
【図１】
2010541122.tif 000003
【図２】
2010541122.tif 000004
【図３】
2010541122.tif 000005
【図４】
2010541122.tif 000006
【図５】
2010541122.tif 000007
【図６】
2010541122.tif 000008
【図７】
2010541122.tif 000009
【図８】
2010541122.tif 000010
【図９】
2010541122.tif 000011
【図１０】
2010541122.tif 000012
【図１１】
2010541122.tif 000013
【図１２】
2010541122.tif 000014
【図１３】
2010541122.tif 000015
【国際調査報告】
2010541122.tif 000016
2010541122.tif 000017