JP5291111B2 - マルチビットプログラミングのための装置および方法 - Google Patents

マルチビットプログラミングのための装置および方法 Download PDF

Info

Publication number
JP5291111B2
JP5291111B2 JP2010528782A JP2010528782A JP5291111B2 JP 5291111 B2 JP5291111 B2 JP 5291111B2 JP 2010528782 A JP2010528782 A JP 2010528782A JP 2010528782 A JP2010528782 A JP 2010528782A JP 5291111 B2 JP5291111 B2 JP 5291111B2
Authority
JP
Japan
Prior art keywords
data
bit
page
programming
value
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2010528782A
Other languages
English (en)
Other versions
JP2010541122A (ja
Inventor
キョン・レ・チョ
ジュン・ジン・コン
ジョン・ハン・キム
スン・フン・イ
ヨン・ファン・イ
スン−ジェ・ビュン
ジュ・ヒ・パク
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Samsung Electronics Co Ltd
Original Assignee
Samsung Electronics Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Samsung Electronics Co Ltd filed Critical Samsung Electronics Co Ltd
Publication of JP2010541122A publication Critical patent/JP2010541122A/ja
Application granted granted Critical
Publication of JP5291111B2 publication Critical patent/JP5291111B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/56Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency
    • G11C11/5621Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency using charge storage in a floating gate
    • G11C11/5628Programming or writing circuits; Data input circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C2211/00Indexing scheme relating to digital stores characterized by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C2211/56Indexing scheme relating to G11C11/56 and sub-groups for features not covered by these groups
    • G11C2211/564Miscellaneous aspects
    • G11C2211/5647Multilevel memory with bit inversion arrangement

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Read Only Memory (AREA)

Description

本発明は、メモリ装置にデータをプログラミングする装置および方法に関し、より詳しくは、マルチレベルメモリ装置にデータをマルチレベル(マルチビット)プログラミングする装置および方法に関する。
シングルレベルセル(SLC:single−level cell)メモリは、1つのメモリセルに1ビットのデータを格納するメモリである。シングルレベルセルメモリは、シングルビットセル(SBC:single−bit cell)メモリとも呼ばれる。シングルレベルセルメモリにおいて1ビットのデータは、メモリセルにプログラムされた閾値電圧(threshold voltage)によって区分される2つの分布(distribution)に含まれる電圧として、格納されて読み取られる。シングルレベルセルメモリの間のわずかな電気的特性の差によって、プログラムされた閾値電圧は一定の範囲の分布を有するようになる。例えば、メモリセルから読み取られた電圧が0.5〜1.5ボルトの場合には、前記メモリセルに格納されたデータは論理「1」であり、メモリセルから読み取られた電圧が2.5〜3.5ボルトの場合には、前記メモリセルに格納されたデータは論理「0」と解釈される。メモリセルに格納されたデータは、読み取り動作時、セルの電流/電圧の差によって区分される。
一方、メモリの高集積化要求に対応して、1つのメモリセルに2ビット以上のデータを格納できるマルチレベルセル(MLC:multi−level cell)メモリが提案された。マルチレベルセルメモリは、マルチビットセル(MBC:multi−bit cell)メモリとも呼ばれる。しかし、1つのメモリセルに格納するビット数が増加するほど信頼性は落ち、読み取り失敗率(read failure rate)は増加するようになる。1つのメモリセルにm個のビットを格納しようとすれば、2個の分布(distribution)を形成しなければならない。しかし、メモリの電圧ウィンドウ(voltage window)は制限されているため、mが増加するにつれて隣接した分布の間の閾値電圧(threshold)の差は減るようになって、これによって読み取り失敗率が増加する。このような理由で従来技術では、マルチレベルセル(MLC:multi−level cell)メモリを用いた格納密度の向上が容易でなかった。
本発明は、マルチレベルセルメモリに新しいマルチレベル(マルチビット)プログラミング技法を適用することによって、マルチレベルセルメモリにおいて、データ格納時の閾値電圧の分布を精密に制御することを目的とする。
また、本発明は、マルチレベルセルメモリに新しいマルチレベル(マルチビット)プログラミング技法を適用することによって、マルチレベルセルメモリにおいて、浮遊ポリシリコン(floating poly−silicon、FP)カップリングによる閾値電圧の変化を減少させることを目的とする。本発明は、FPカップリングによる閾値電圧の変化を減少させることによって、隣接したマルチレベルセルのデータ汚染を減少させ、マルチレベルセルメモリに格納されたデータの読み取り失敗率(read failure rate)を減少させることを目的とする。
また、本発明は、マルチレベルセルメモリに新しいマルチレベル(マルチビット)プログラミング技法を適用することによって、マルチレベルセルメモリにおいて、データ格納時のディスターバンス(disturbance)の発生の可能性を減少させることを目的とする。
上記のような本発明の目的を達成するために、本発明のマルチビットプログラミング装置は、ページプログラミング動作の第1データを格納するページバッファと、1つ以上のビットを含む前記第1データの「1」と「0」の個数に基づいて前記第1データを反転するかどうかを決定し、前記決定された反転の有無によって第2データを生成して、前記第2データを前記ページバッファに格納する入力制御部と、前記ページバッファに格納された第2データを1つ以上のマルチビットセルにプログラミングするページプログラミング部とを含むことを特徴とする。
本発明の実施形態に係る複数のページプログラミング動作を行うマルチビットプログラミング装置は、ページバッファと、入力制御部と、ページプログラミング部とを含む。前記ページバッファは、第1の複数のページプログラミングの第1データを格納する。第1データは少なくとも1つのビットを含んでもよい。前記入力制御部は、前記第1データのうち第1値を有する複数のビットと第2値を有する複数のビットとに基づいて、前記第1データを反転するかどうかを決定し、前記第1値を有するビットの数が前記第2値を有するビットの数より多い場合、前記第1データを反転して第2データを生成して前記ページバッファに格納する。前記ページプログラミング部は、前記ページバッファに格納された第2データを1つ以上のマルチビットセルにプログラミングする。
また、本発明のまた他の側面に係るマルチビットプログラミング装置は、N回のページプログラミング動作のデータを格納するメモリと、前記データのうちデータパターンを識別するデータパターン識別部と、前記識別されたデータパターンに対応する第1マルチビットセルの閾値電圧を第1変化量だけ変化させることによって、前記データのうち第1データを前記第1マルチビットセルに格納し、前記第1マルチビットセルを除いた第2マルチビットセルの閾値電圧を第2変化量だけ変化させることによって、前記データのうち前記第1データを除いた第2データを前記第2マルチビットセルに格納するページプログラミング部とを含むことを特徴とする。前記第1および前記第2データは異なり、前記第1および前記第2マルチビットセルは異なり、前記第1および第2変化量は異なり得る。
本発明のまた他の側面に係る複数のページプログラミング動作を行うマルチビットプログラミング装置は、メモリ、データパターン識別部とページプログラミング部とを含む。前記メモリは複数のページプログラミング動作の第1データを格納する。前記データパターン識別部は、格納されたデータのうちデータパターンを識別する。前記ページプログラミング部は、前記識別されたデータパターンに対応する第1マルチビットセルの閾値電圧を第1変化量だけ変化させることによって、前記データのうち第1データを前記第1マルチビットセルにプログラミングし、第2マルチビットセルの閾値電圧を第2変化量だけ変化させることによって、前記データのうち第2データを前記第2マルチビットセルにプログラミングする。前記第1および第2マルチビットセルは異なってもよい。
また、本発明のまた他の側面に係るマルチビットプログラミング方法は、ページプログラミング動作の第1データをページバッファに格納するステップと、1つ以上のビットを含む前記第1データの「1」と「0」の個数を計数するステップと、前記第1データの「1」と「0」の個数に基づいて前記第1データを反転するかどうかを決定するステップと、前記決定された反転の有無により前記第1データから前記第2データを生成するステップと、前記第2データを前記第1データに代って前記ページバッファに格納するステップと、前記ページバッファに格納された第2データを1つ以上のマルチビットセルにプログラミングするステップとを含むことを特徴とする。
また、本発明のまた他の側面に係るマルチビットプログラミング方法は、1つ以上のビットを含み、ページプログラミング動作の第1データをページバッファに格納するステップと、前記第1データのうち第1値を有するビット数と第2値を有するビット数を計数するステップと、前記第1値を有するビット数と前記第2値を有するビット数とに基づいて、前記第1データを反転するかどうかを決定するステップと、前記第1値を有するビット数が前記第2値を有するビット数より多い場合、前記第1データを反転して第2データを生成するステップと、前記第2データを前記第1データに代って前記ページバッファに格納するステップと、前記ページバッファに格納された第2データを1つ以上のマルチビットセルにプログラミングするステップとを含む。
また、本発明のまた他の側面に係るマルチビットプログラミング方法は、N回のページプログラミング動作に用いられるデータを格納するステップと、前記データのうちデータパターンを識別するステップと、前記識別されたデータパターンに対応する第1マルチビットセルの閾値電圧を第1変化量だけ変化させるステップと、前記第1マルチビットセルを除いた第2マルチビットセルの閾値電圧を第2変化量だけ変化させるステップとを含むことを特徴とする。
本発明のまた他の側面に係るマルチビットプログラミング方法は、複数のページプログラミング動作に用いられるデータを格納するステップと、前記データのうちデータパターンを識別するステップと、前記識別されたデータパターンに対応する第1マルチビットセルの閾値電圧を第1変化量だけ変化させるステップと、第2マルチビットセルの閾値電圧を第2変化量だけ変化させるステップとを含む。前記第1マルチビットセルおよび前記第2マルチビットセルは異なってもよい。
本発明のまた他の側面に係るマルチビットプログラミング方法を実行するためのプログラムが記録されているコンピュータ読み取り可能な記録媒体は、複数のページプログラミング動作に用いられるデータを格納するステップと、前記データのうちデータパターンを識別するステップと、前記識別されたデータパターンに対応する第1マルチビットセルの閾値電圧を第1変化量だけ変化させるステップと、第2マルチビットセルの閾値電圧を第2変化量だけ変化させるステップとを含むマルチビットプログラミング方法を実行する。
本発明のまた他の側面に係るマルチビットプログラミング方法を実行するためのプログラムが記録されているコンピュータ読み取り可能な記録媒体は、1つのページプログラミング動作に用いられるデータを格納するステップと、前記データのうちデータパターンを識別するステップと、前記識別されたデータパターンに対応する第1マルチビットセルの閾値電圧を第1変化量だけ変化させるステップと、第2マルチビットセルの閾値電圧を第2変化量だけ変化させるステップとを含むマルチビットプログラミング方法を実行する。
本発明のまた他の側面によれば、前記第1の値は「1」または「0」であり、前記第2の値は「1」または「0」であり、前記第1値と前記第2の値は他のものとなってもよい。前記入力制御部は、複数の各ページプログラミング動作に対して第1データを反転するかどうかを決定することができる。前記入力制御部は、前記複数の各ページプログラミング動作に対する第1データに基づいて、第1データを反転するかどうかを決定する。前記入力制御部は、前記第1値を有するビットの数および前記第2値を有するビットの数と、前記複数の各ページプログラミング動作に対する順番とに基づいて、前記第1データを反転するかどうかを決定する。前記順番は、1から自然数Nまでの値を有することができる。
本発明のまた他の側面によれば、前記第1の値は「1」であり、前記第2の値は「0」でるとともに、前記ページプログラミング動作は、前記複数のページプログラミング動作のうち(N−1)回目のページプログラミング動作である。前記第1の値は「0」であり、前記第2の値は「1」であるとともに、前記ページプログラミング動作は、前記複数のページプログラミング動作のうちN回目のページプログラミング動作である。
本発明のまた他の側面によれば、マルチビットプログラミング装置は、前記第1データの反転の有無に対応するフラグを格納するフラグ格納部をさらに含む。出力制御部は、前記フラグ格納部から前記フラグを受信し、前記マルチビットセルから前記第2データを受信して、前記フラグに基づいて前記第2データから前記第1データを復元する。前記ページプログラミング動作は、1つ以上のマルチビットセルの閾値電圧を変化させ、前記入力制御部は、前記第1値が有するビット数および前記第2値が有するビット数と、前記第1ページプログラミング動作の間の前記一つ以上のマルチビットセルの閾値電圧の変化量とに基づいて、前記第1データを反転するかどうかを決定する。
本発明のさらに他の側面によれば、前記入力制御部は、前記1つ以上のマルチビットセルの閾値電圧の変化量のうち最大変化量が最小化されるように、前記第1データを反転するかどうかを決定する。前記マルチビットプログラミング装置は、前記Nページプログラミング動作を行うとともに、前記入力制御部は、前記閾値電圧が変化するマルチビットセルの個数が、前記閾値電圧が変化しないマルチビットセルの個数より多くなるように、前記第1データを反転するかどうかを決定する。
前記マルチビットプログラミング装置は、Nページプログラミング動作を行って、前記N回目のプログラミング動作が行われる場合、前記入力制御部は、閾値電圧が変化するマルチビットセルの個数が多くなるように、前記第1データを反転するかどうかをを決定する。前記入力制御部は、前記ページプログラミング動作の間、閾値電圧が変化するマルチビットセルの個数が、前記閾値電圧が変化しないマルチビットセルの個数より多くなるように、前記第1データを反転するかどうかを決定する。
前記マルチビットプログラミング装置は、Nページプログラミング動作を行い、前記入力制御部は、第1ページプログラミング動作の間に第1閾値電圧が変化するマルチビットセルの個数が多くなるように、前記第1ページプログラミング動作の間に第2閾値電圧が変化しない前記マルチビットセルが多くなるように、前記第1データを反転するかどうかを決定し、前記第2閾値電圧は前記第1閾値電圧より大きい。
本発明の一実施形態に係るマルチビットプログラミング装置を示す図である。 本発明の他の実施形態に係るマルチビットプログラミング装置を示す図である。 Nが4である実施形態により入力制御部が行う第1データの反転過程を示す図である。 Nが4である実施形態により入力制御部が行う第1データの反転過程を示す図である。 本発明のさらに他の実施形態に係るマルチビットプログラミング装置を示す図である。 マルチビットプログラミング装置によって行われるページプログラミング動作の一例を示す図である。 マルチビットプログラミング装置によって行われるページプログラミング動作の他の例を示す図である。 本発明のさらに他の実施形態に係るマルチビットプログラミング装置を示す図である。 マルチビットプログラミング装置で行われるページプログラミング動作を示す図である。 本発明の一実施形態に係るマルチビットプログラミング方法を示す動作フローチャートである。 図10のステップS1030の一実施形態を詳細に示した動作フーチャートである。 図10のステップS1030の他の実施形態を詳細に示した動作フローチャートである。 本発明のさらに他の実施形態に係るマルチビットプログラミング方法を示す動作フローチャートである。
以下、本発明に係る好適な実施形態を添付する図面を参照しながら詳細に説明する。しかし、本発明が実施形態によって制限されたり限定されたりすることはない。各図面に提示する同一の参照符号は、同一の部材を示す。
図1は、本発明の一実施形態に係るマルチビットプログラミング装置100を示す図である。
図1を参照すれば、マルチビットプログラミング装置100は、ページバッファ110、入力制御部(または入力制御回路)120、およびページプログラミング部(または、ページプログラミング回路)130を含む。
ページバッファ110は、ページプログラミング動作の第1データを格納する。
第1データは、1つ以上のビットを含む。
入力制御部120は、第1データの「1」と「0」の個数に基づいて、第1データを反転するかどうかを決定し、前記決定された反転の有無(反転/非反転)により第2データを生成して、前記第2データを前記ページバッファ110に格納する。
入力制御部120が、第1データを反転すると決定した場合、入力制御部120は、第1データを反転して第2データを生成する。
入力制御部120が、第1データを反転しないと決定した場合、入力制御部120は、第1データをそのまま維持して第2データを生成する。一例として、入力制御部120は、第1データを反転せずに第2データを生成する。一例として、第1データと第2データは同一であってもよい。一部の実施形態によれば、ビット反転または反転ビットは、第1値(例えば、「0」または「1」)から他の値(例えば、「0」または「1」)にビットを変化させることを示す。
ページプログラミング部130は、ページバッファ110に格納された第2データを1つ以上のマルチビットセルにプログラミングまたは記録する。
図2は、本発明の他の実施形態に係るマルチビットプログラミング装置200を示す図である。
図2を参照すれば、マルチビットプログラミング装置200は、ページバッファ210、入力制御部(または、入力制御回路)220、ページプログラミング部(または、ページプログラミング回路)230、およびマルチビットセルアレイ240を含む。
ページバッファ210は、マルチビットプログラミング装置200によって行われたページプログラミング動作の第1データを格納する。
第1データは、複数のビット(例えば、Nビット)を含む。
マルチビットプログラミング装置200は、ページプログラミング動作をN(Nは整数である)回行い、ページバッファ210は、現在の各ページプログラミング動作に対する第1データを格納する。各ページプログラミング動作は1ビットのデータに対応する。本発明の一実施形態によれば、第1ページプログラミング動作は第1ビットをプログラミングする過程を含み、第2ページプログラミング動作は第2ビットをプログラミングする過程を含む。
マルチビットプログラミング装置200が行うN回のプログラミング動作は、1つ以上の各マルチビットセルにプログラミングされるマルチビット(例えば、Nビット)のデータを生成およびプログラミングする。
各ページプログラミング動作は、複数の単位プログラミング動作を含む。単位プログラミング動作の実行回数(例えば、N回)は、プログラミングアルゴリズムによって決定される。
実施形態によれば、次の方法によって単位プログラミング動作の実行回数が決定される。
各単位プログラミング動作が終了する度に、マルチビットプログラミング装置200は、各マルチビットセルの閾値電圧を検出する。マルチビットプログラミング装置200は、各マルチビットセルの検出された閾値電圧を臨界電圧と比較し、比較結果に応じて各マルチビットセルに対して次の単位プログラミング動作を行うか否かを決定する。
本実施形態では、単位プログラミング動作は、マルチビットセルの閾値電圧を増加させる動作であると仮定する。比較の結果、第1マルチビットセルの閾値電圧が検証電圧より低いことを示せば、マルチビットプログラミング装置200は、第1マルチビットセルに対して次の単位プログラミング動作を行う。比較の結果、第2マルチビットセルの閾値電圧が検証電圧より高いか同じであることを示せば、マルチビットプログラミング装置200は、第2マルチビットセルに対して次の単位プログラミング動作を実行しない。
入力制御部220は、第1データの「1」と「0」の個数に基づいて、第1データを反転するかどうかを決定し、決定された反転の有無(反転/非反転)により第2データを生成する。
入力制御部220は、生成された第2データを第1データに代ってページバッファ210にオーバーライトする。
入力制御部220は、各ページプログラミング動作度に、現在実行されるページプログラミング動作の第1データを反転するかどうかを決定する。
入力制御部220は、各ページプログラミング動作度に、第1データを反転するかどうかを決定する場合、N回のページプログラミング動作の第1データをすべてまたは選択的に考慮してもよい。
ページプログラミング動作がN回行われるためページプログラミング動作は、1からNまでの順番を有する。入力制御部220は、(N−1)回目のページプログラミング動作の第1データを反転するかどうかを決定する場合、最初からN回目の各ページプログラミング動作の第1データをすべて考慮してもよい。
入力制御部220は、現在のページプログラミング動作の順番、ならびに複数の「1」および「0」に基づいて、第1データを反転するかどうかを決定する。
入力制御部220は、(N−1)回目のページプログラミング動作の第1データを反転するかどうかを決定する場合、第1データの「1」と「0」の個数、およびページプログラミング動作の順番の(N−1)に基づいて、第1データを反転するかどうかを決定する。
ページプログラミング部230は、ページバッファ210に格納された第2データをマルチビットセルアレイ240内のページ250にプログラミングする。ページ250は、少なくとも1つのワード線に接続された複数のマルチビットセルを含む。ページ250は、第1データのビット数と同一の個数のマルチビットセルを含む。
実施形態によれば、入力制御部220は、(N−1)回目のページプログラミング動作の第1データのうち「1」が「0」より多い場合、(N−1)回目のページプログラミング動作の第1データを反転して第2データを生成する。
そうでない場合、入力制御部220は、(N−1)回目のページプログラミング動作の第1データを反転せずに第2データを生成する。この場合、第1および第2データは同一であってもよい。
実施形態によれば、入力制御部220は、N回目のページプログラミング動作の第1データのうち「0」が「1」より多い場合、N回目のページプログラミング動作の第1データを反転して第2データを生成する。
そうでない場合、入力制御部220は、(N−1)回目のページプログラミング動作の第1データを反転せずに第2データを生成する。この場合、第1および第2データは同一であってもよい。
図3および図4は、入力制御部220が行う第1データの反転過程を示す図である。図3および図4に示す実施形態は4回のページプログラミング動作を説明するためのものであるが、この実施形態に限定されることはない。図3および図4に示す図面は、図2と関連して論じられる。
図3および図4を参照すれば、データ310は、1回目のページプログラミング動作の第1データであり、データ410は、1回目のページプログラミング動作の第2データである。
入力制御部220は、データ310に基づいてデータ410を生成する。
入力制御部220は、生成されたデータ410をページバッファ210に格納する。この時、入力制御部220は、ページバッファ210に格納されたデータ310に代ってデータ410をオーバーライトする。
一般に、ページバッファ210は、スタティックランダムアクセスメモリ(Static Random Access Memory、SRAM)、またはSRAMと類似する機能を行うことのできるメモリによって構成される。ページバッファ210がKビットのデータ(例えば、Kは1、2、4、8、16、32等)を格納する場合に、ページプログラミング部230は、同時にKビットのデータをページ250にプログラミングする。この時、ページ250はK個のマルチビットセルを含む。
図3および図4は、ページバッファ210が4ビットのデータを格納する実施形態を示す。しかしながら、この実施形態に限定されることはなく、この実施形態の代わりに任意のサイズのマルチビットページバッファでも行うことができる。
ページバッファ210が4ビットのデータを格納するため、ページ250は、4ビットのマルチビットセルを含む。ページプログラミング部230は、同時に4ビットのデータをページ250にプログラミングする。
データ410は、1回目のページプログラミング動作の間にページプログラミング部230によってページ250にプログラミングされる。
データ410の1回目のビットは、ページ250の1回目のマルチビットセルにプログラミングされる。同じように、データ410の2回目のビットはページ250の2回目マルチビットセルにプログラミングされる。
データ列(column)450は、1回目のマルチビットセルにプログラミングされるマルチビットデータを示す。データ列460は、2回目のマルチビットセルにプログラミングされるマルチビットデータを示す。
実施形態によれば、1つのマルチビットセルにプログラミングされるデータのうち1回目のページプログラミング動作の間にプログラミングされるデータが、最上位ビット(most significant bit、MSB)であり、4回目のページプログラミング動作の間にプログラミングされるデータが、最下位ビット(least significant bit、LSB)であってもよい。
図3および図4に示すデータを参照して説明すれば、1回目のマルチビットセルにプログラミングされるマルチビットデータは「1011」である(データ列450を下から上へ参照)。もし、本発明のマルチプログラミング装置によらなければ、1回目のマルチビットセルにプログラミングされるマルチビットデータは「0111」である(図3に示すデータ列350を下から上へ参照)。
データ320は、2回目のページプログラミング動作の第1データであり、データ420は、2回目のページプログラミング動作の第2データである。
入力制御部220は、データ320に基づいてデータ420を生成する。
入力制御部220は、生成されたデータ420をページバッファ210に格納する。この時、入力制御部220は、ページバッファ210に格納されたデータ320に代ってデータ420をオーバーライトする。
ページプログラミング部230は、2回目のページプログラミング動作の間、ページバッファ210に格納されたデータ420をページ250にプログラミングする。
入力制御部220は、1回目のページプログラミング動作および2回目のページプログラミング動作の第1データ310および320を反転しないと決定することができる。図3および図4に示すように、データ410は、データ310と同一であり、データ420は、データ320と同一である。
データ330は3回目のページプログラミング動作の第1データであり、データ430は3回目のページプログラミング動作の第2データである。
入力制御部220は、データ330に基づいてデータ430を生成する。
入力制御部220は、生成されたデータ430をページバッファ210に格納する。この時、入力制御部220は、ページバッファ210に格納されたデータ330に代ってデータ430をオーバーライトする。
ページプログラミング部230は、3回目のページプログラミング動作の間、ページバッファ210に格納されたデータ430をページ250にプログラミングする。
入力制御部220は、現在実行されるページプログラミング動作が(N−1)回目のページプログラミング動作であるか否かを判断する。本実施形態はNが4である場合の実施形態であるため、入力制御部220は現在実行されるページプログラミング動作が(N−1)回目、または3回目のページプログラミング動作であるか否かを判断する。
入力制御部220は、3回目のページプログラミング動作の第1データのデータ330のうち「1」と「0」の個数を計数(count)する。データ330のうち「1」が「0」より多い場合、入力制御部220は、データ330を反転してデータ430を生成する。
データ330は、3つの「1」と1つの「0」を含むため(「1110」)、入力制御部220は、データ330を反転してデータ430(「0001」)を生成する。
実施形態によれば、マルチビットプログラミング装置200は、第2データが第1データの反転バージョンであるか否かに基づいて(例えば、データ330の反転/非反転に基づいて)対応するフラグ493を生成することができる。
本実施形態では、フラグ493は、データ430がデータ330の反転で生成されたことを示す値の「1」を有する。
データ410は、データ310の反転なしに生成されたため、フラグ491は反転なしに生成されたことを示す値の「0」を有する。
同じように、データ420は、データ320の反転なしに生成されたため、フラグ492の値は「0」である。
データ340は、4回目のページプログラミング動作の第1データであり、データ440は、4回目のページプログラミング動作の第2データである。
入力制御部220は、データ340に基づいてデータ440を生成する。
入力制御部220は、生成されたデータ440をページバッファ210に格納する。この時、入力制御部220は、ページバッファ210に格納されたデータ340に代ってデータ440をオーバーライトする。
ページプログラミング部230は、4回目のページプログラミング動作の間、ページバッファ210に格納されたデータ440をページ250にプログラミングする。
入力制御部220は、現在のページプログラミング動作がN回目のページプログラミング動作であるか否かを判断する。本実施形態はNが4である場合の実施形態であるから、入力制御部220は、現在実行されるページプログラミング動作がN回目のページプログラミング動作であるか否かを判断する。
入力制御部220は、4回目のページプログラミング動作の第1データのデータ340のうち「1」と「0」の個数を係数(count)とする。データ340のうち「0」が「1」より多い場合、入力制御部220は、データ340を反転してデータ440を生成する。
データ340は、1つの「1」と3つの「0」を含むため、入力制御部220は、データ340を反転してデータ440を生成する。データ440は、データ340の反転バージョンである。
マルチビットプログラミング装置200は、値が「1」のフラグ494を設定する。
実施形態によれば、マルチビットプログラミング装置200は、フラグ491,492,493,494を格納するフラグ格納部(または、格納回路)をさらに含んでもよい。
4回のページプログラミング動作がすべて終了すれば、1回目のマルチビットセルには「1011」がプログラムされる(データ列450参照)。2回目のマルチビットセルには「0011」がプログラムされる(データ列460参照)。3回目のマルチビットセルには「1011」がプログラムされる(データ列470参照)。4回目のマルチビットセルには「1111」がプログラムされる(データ列480参照)。
データ列350,360,370,380は、本発明のマルチビットプログラミング装置200によらない場合に、ページ250のマルチビットセルにプログラムされるデータを示す。
本発明のマルチビットプログラミング装置200は、マルチビットセルに「0111」がプログラムされるケースを減少させることができる。1つのマルチビットセルに「0111」がプログラムされる場合の問題点は、以下の図6を説明する過程で記載する。
図3に示すように、第1データによれば1回目のマルチビットセルおよび3回目のマルチビットセルに「0111」がプログラムされるケースが生じる。しかし、本発明のマルチビットプログラミング装置200の反転過程によって、実際には第2データがプログラムされるため、最初および3回目のマルチビットセルには「1011」がプログラムされる。
図5は、本発明のまた他の実施形態に係るマルチビットプログラミング装置500を示す図である。
図5を参照すれば、マルチビットプログラミング装置500は、ページバッファ510、入力制御部520、ページプログラミング部530、マルチビットセルアレイ540、フラグ格納部550、および出力制御部560を含む。
ページバッファ510、入力制御部520、ページプログラミング部530、およびマルチビットセルアレイ540の動作の説明は、図1および図2で説明したものと同じであるため省略する。
フラグ格納部550は、ページプログラミング動作の第1データの反転の有無(反転/非反転)に対応するフラグを格納する。フラグ格納部550に格納されたフラグは、ページプログラミング動作の第2データが対応するページプログラミング動作の第1データに対する反転バージョンの識別を示す。例えば、第2データが対応する第1データの反転バージョンの場合、フラグ格納部550は、第1論理状態(例えば、「1」)でフラグを生成して格納する。また、第2データが対応する第1データの反転バージョンではない場合(例えば、同一の場合)、フラグ格納部550は、第2論理状態(例えば、「0」)でフラグを生成して格納する。
実施形態によれば、フラグ格納部550は、ページプログラミング動作の間に第2データがプログラムされるマルチビットセルのアドレスを必要によって格納することができる。マルチビットセルのアドレスは、マルチビットセルアレイ540内のマルチビットセルの位置を示す横座標および縦座標を含む。
出力制御部560は、フラグ格納部550からフラグを受信し、マルチビットセルから第2データを受信して、フラグに基づいて第2データから第1データを復元する。
出力制御部560は、受信されたフラグが第1論理状態(例えば、「1」)の場合には第2データを反転して第1データを復元する。反対に、出力制御部560は、フラグが第2論理状態(例えば、「0」)の場合、第2データの反転なしに第1データを復元する。
実施形態によれば、第1論理状態は「0」であり、第2論理状態は「1」であってもよい。
ページプログラミング動作は、第2データがプログラムされるマルチビットセルの閾値電圧を変化させることができる。
入力制御部520は、第1データの「1」と「0」の個数、およびページプログラミング動作の間のマルチビットセルの閾値電圧の変化量に基づいて、第1データを反転するかどうかを決定する。
図6は、マルチビットプログラミング装置500によって行われるページプログラミング動作の一例を示す図である。
図6を参照すれば、プログラミング前のマルチビットセルは初期状態である(630)。
図6に示す横軸はマルチビットセルの閾値電圧を示し、縦軸はマルチビットセルの分布(distribution)を示す。
図6に示すように、複数(例えば、4度)のページプログラミング動作の間に「1111」がプログラムされたマルチビットセルは、初期状態をそのまま維持する(670)。
1回目のページプログラミング動作の間に「1」がプログラムされたマルチビットセルは、そのまま初期状態で、「0」がプログラムされたマルチビットセルは「XXX0」状態に遷移される(640)。
ここで、Xは未確定論理状態(undefined logic state or don’t care state)を示す。
2回目のページプログラミング動作の間に「1」がプログラムされたマルチビットセルは、初期状態を維持される、または「XXX0」状態から「XX10」状態に遷移される(650)。2回目のページプログラミング動作の間に「0」がプログラムされたマルチビットセルは、初期状態から「XX01」状態に遷移される、または「XXX0」状態から「XX00」状態に遷移される(650)。
3回目のページプログラミング動作後のマルチビットセルの分布は、状態660に示されており、4回目のページプログラミング動作後のマルチビットセルの分布は状態670に示されている。
状態670に示すように、「1111」状態から「0111」に遷移される場合で、マルチビットセルの閾値電圧の変化が最も大きい。
一般に、ページプログラミング動作の間にマルチビットセルの閾値電圧の変化が大きい場合、ページプログラミング動作の間またはその後において、隣接した(neighborhood)マルチビットセルの閾値電圧またはその他の特性の影響により、望ましくない変化が生じることがある。望ましくない変化の原因となるメカニズムとしては、浮遊ポリシリコンカップリング(floating poly−silicon coupling、FP coupling)、またはプログラムディスターバンス(program disturbance)等が知られている。
浮遊ポリシリコンカップリングは、周辺マルチビットセルの閾値電圧を変化させ、該当マルチビットセルの閾値電圧の分布を拡散させる。閾値電圧の分布が広がれば、マルチビットセルのデータを読み取る過程において誤差率が増加する。したがって、本発明のマルチビットプログラミング装置500は、ページプログラミング動作の間にマルチビットセルの閾値電圧の変化が大きくならないように最大変化量を減少させる、または閾値電圧の最大変化を発生させるマルチビットセルの個数を減少させる目的を有する。
図6に示す点線矢印の過程に従えば、3回目のページプログラミング動作後に初期状態に留まっていたマルチビットセルは、4回目のページプログラミング動作の間初期状態から「0111」状態に遷移される。
入力制御部520は、3回目のページプログラミング動作の第1データのうち「1」の個数が「0」の個数より多い場合、3回目のページプログラミング動作の第1データを反転して第2データを生成する。
これによって、初期状態に留まっている(点線矢印の過程に従って行く)マルチビットセルの個数より初期状態から「X011」状態に遷移610するマルチビットセルの個数が多くなり、最終的に「0111」状態に遷移されるマルチビットセルの個数を減少させることができる。
入力制御部520は、マルチビットセルの閾値電圧の変化量のうち最大変化量を最小化する効果、または最大変化量を発生させるマルチビットセルの個数を減少させる効果を有する。
入力制御部520は、(N−1)回目のページプログラミング動作の間、閾値電圧が変化するマルチビットセルの個数が、閾値電圧が変化しないマルチビットセルの個数より多くなるように、第1データを反転するかどうかを決定する。
図6の実施形態は、N=4である場合に対応するものであるため、入力制御部520は3回目のページプログラミング動作の間に「1」と「0」の個数を比較して、第2データのうち「0」の個数が「1」の個数より多くなるように、第1データを反転するかどうかを決定する。第2データのうち「0」の個数が「1」の個数より多い場合、閾値電圧が変化するマルチビットセルの個数は、閾値電圧が変化しないマルチビットセルの個数より多くなる。
入力制御部520は、「XX11」状態から「X111」状態に遷移されるマルチビットセルの個数より「XX11」状態から「X011」状態に遷移されるマルチビットセルの個数を多くし、FPカップリングによるデータ汚染を最小化することができる。
入力制御部520は、4回目のページプログラミング動作の第1データの反転なしに第2データを生成することができる。4回目のページプログラミング動作の第1データが「0」のマルチビットセルは、「X011」状態から「0011」状態に遷移620する。
実施形態によれば、入力制御部520は、N回目のページプログラミング動作の間、閾値電圧が変化しないマルチビットセルが多くなるように、前記第1データを反転するかどうかを決定することができる。N=4である場合の実施形態に対応して説明すれば、入力制御部520は、4回目のページプログラミング動作の間に「1」と「0」の個数を比較して、第2データのうち「1」の個数が「0」の個数より多くなるように、第1データを反転するかどうかを決定する。第2データのうち「1」の個数が「0」の個数より多い場合、閾値電圧が変化しないマルチビットセルの個数は、閾値電圧が変化するマルチビットセルの個数より多くなる。
入力制御部520は、「X111」状態から「0111」状態に遷移されるマルチビットセルの個数より「X111」状態から「1111」状態に遷移されるマルチビットセルの個数を多くして、FPカップリングによるデータ汚染を減少(例えば、最小化)させることができる。
図7は、マルチビットプログラミング装置500によって行われるページプログラミング動作の他の例を示す図である。
図7を参照すれば、入力制御部520は、点線矢印の過程に従うマルチビットセルの個数より実線矢印の過程に従うマルチビットセルの個数が多くなるように、第1データを反転するかどうかを決定する。
一般に、FPカップリングによるマルチビットセルの閾値電圧の望ましくない変化、およびそれによるデータ汚染(data pollution)は、閾値電圧が比較的低いマルチビットセルとして発生する(例えば、強く表れる)。
したがって、入力制御部520は、閾値電圧が比較的低いマルチビットセルの場合には、「X011」状態から「0011」状態に遷移し(720)、「X101」状態から「0101」状態に遷移し(730)、「X001」状態から「0001」状態に遷移する(740)マルチビットセルの個数が多くなるように、4回目のページプログラミング動作の第1データを反転するかどうかを決定する。
入力制御部520は、閾値電圧が比較的低いマルチビットセルの場合には、閾値電圧が変化するマルチビットセルの個数が、閾値電圧が変化しないマルチビットセルの個数より多くなるように、第1データを反転するかどうかを決定する。
一般に、非揮発性メモリのプログラミング動作は、閾値電圧を増加させる方向で行われるため、プログラミング動作の間閾値電圧が変化するということは閾値電圧が増加することを意味する。
入力制御部520は、閾値電圧が低いマルチビットセルの場合には、閾値電圧を増加させる方向にページプログラミング動作を誘導してデータ汚染を減少または最小化する。
この時、入力制御部520は、「X111」状態から「0111」状態に遷移されるマルチビットセルの個数を減少させるために、「X111」状態から「1111」状態に遷移されるマルチビットセルの個数が多くなるように、4回目のページプログラミング動作の第1データを反転するかどうかを決定する。
FPカップリングによるデータ汚染は、「X111」状態から「0111」状態に遷移される過程で発生して(例えば、強く表れる)、その他の場合には閾値電圧が低いマルチビットセルの個数が多い場合に、閾値電圧の分布が広がる傾向がある。
したがって、入力制御部520は、「0111」状態に遷移されるマルチビットセルの個数を減少させ、その他の場合には閾値電圧が低いマルチビットセルの個数を減少させることによって、FPカップリングによるデータ汚染および閾値電圧の分布の拡散を最小化する効果がある。
一般に、マルチビットセルの閾値電圧を高めるためには、高電圧をマルチビットセルのゲート(gate)端子に印加(force)しなければならない。ゲート(gate)端子およびドレイン(drain)/ソース(source)/バルク(bulk)端子間の電位差が大きくなれば、プログラム過程におけるプログラムディスターバンスによってターゲットマルチビットセル以外に隣接した(neighborhood)マルチビットセルの閾値電圧に望ましくない影響を及ぼすため、データ汚染が発生するようになる。
また、ページプログラミング動作の間、高電圧に長時間露出したマルチビットセルは、高電圧ストレス(high voltage stress、HVS)によって特性が変化することがあり、これもまた特性の望ましくない変化であるため、回避することが好ましい。
したがって、ページプログラミング動作の間、閾値電圧が電圧ウィンドウ(voltage window)の最大点に近接するマルチビットセルの個数を減少させることがデータ汚染を減少または最小化するのに効果的である。
入力制御部520は、「X110」状態から「1110」状態に遷移し(750)、「X010」状態から「1010」状態に遷移し(760)、「X100」状態から「1100」状態に遷移し(770)、「X000」状態から「1000」状態に遷移する(780)マルチビットセルの個数が多くなるように、4回目のページプログラミング動作の第1データを反転するかどうかを決定する。
入力制御部520は、閾値電圧が高いマルチビットセルの個数を減少させることによって、データ汚染を減少または最小化する効果を有する。
入力制御部520は、「0001」状態より低い第1閾値電圧を有するマルチビットセルの中では第1閾値電圧が変化するマルチビットセルの個数が多くなるように、第1データを反転するかどうかを決定する。
入力制御部520は、「1110」状態より高い第2閾値電圧を有するマルチビットセルの中で、第2閾値電圧が変化しないマルチビットセルの個数が多くなるように第2データを反転するかどうかを決定する。
図8は、本発明のさらに他の実施形態に係るマルチビットプログラミング装置800を示す図である。
図8を参照すれば、マルチビットプログラミング装置800は、メモリ810、危険パターン識別部(または、危険パターン識別回路)820、ページプログラミング部(または、ページプログラミング回路)830、およびマルチビットセルアレイ840を含む。
マルチビットプログラミング装置800は、複数(例えば、N回)のページプログラミング動作を行う。
メモリ810は、N回のページプログラミング動作のデータを格納する。
危険パターン識別部820は、メモリ810に格納されたデータのうち危険パターンを識別する。
ページプログラミング部830は、識別された危険パターンに対応する第1マルチビットセルの閾値電圧を第1変化量だけ変化させることによって、データのうち第1データを前記第1マルチビットセルにプログラミングする。第1データは、第1マルチビットセルにプログラミングされるデータである。
ページプログラミング部830は、第1マルチビットセルを除いた第2マルチビットセルの閾値電圧を第2変化量だけ変化させることによって、第2データを第2マルチビットセルにプログラミングする。第2データは、データのうち第1データを除く残りの部分である。
マルチビットセルアレイ840は、第1マルチビットセルおよび第2マルチビットセルを含むアレイである。
図9は、マルチビットプログラミング装置800で行われるページプログラミング動作を示す図である。図9には、N=4である場合の実施形態が示されているが、この実施形態に限定されることはない。実施形態で、Nは他の数(例えば、1、2、4、8、16等)としてもよい。
図9を参照すれば、4度のページプログラミング動作終了後に「0111」状態を有するマルチビットセルは、遷移過程910および遷移過程920によって「0111」状態に到達する。
危険パターン識別部820は、メモリ810に格納されたデータを分析して、4回のページプログラミング動作終了後に「0111」状態を有するようになるマルチビットセルを識別する。
この時、危険パターンは「0111」であり、危険パターン識別部820は、4回のページプログラミング動作の間のデータをすべて分析して危険パターンを識別する。
危険パターン「0111」状態を有するようになるマルチビットセルは、第1マルチビットセルに分類される。第1マルチビットセルを除いた残りのマルチビットセルは、第2マルチビットセルに分類される。
ページプログラミング部830は、3回目のページプログラミング動作の間に第1データを第1マルチビットセルに遷移過程910によってプログラミングする。遷移過程910間に第1マルチビットセルの閾値電圧は、第1変化量だけ変化する。遷移過程910間に第1マルチビットセルは、「XX11」状態から「X111」状態940に遷移される。
ページプログラミング部830は、3回目のページプログラミング動作の間に、第2マルチビットセルの閾値電圧を第2変化量だけ変化させることによって、第2データを第2マルチビットセルにプログラミングする。
ページプログラミング部830は、4回目のページプログラミング動作の間に第1データを第1マルチビットセルに遷移過程920によりプログラミングする。遷移過程920間に第1マルチビットセルの閾値電圧は、第3変化量だけ変化する。遷移過程920間に第1マルチビットセルは、「X111」状態940から「0111」状態に遷移される。
ページプログラミング部830は、4回目のページプログラミング動作の間に第2マルチビットセルの閾値電圧を第4変化量だけ変化させることによって、第2データを第2マルチビットセルにプログラミングする。
マルチビットプログラミング装置800によれば、第1マルチビットセルは「X111」状態から「0111」状態に遷移される過程で、閾値電圧の変化を3回目のページプログラミング動作および4回目のページプログラミング動作の間に分けて経験するようになる。
したがって、第1マルチビットセルは、急激な閾値電圧の変化を4回目のページプログラミング動作中に経験せずに、3回目のページプログラム動作中に経験するようになる。第1マルチビットセルが経験するようになる、大きい閾値電圧の変化による周辺マルチビットセルに対するデータ汚染は、4回目のページプログラム動作中に補償される効果がある。
マルチビットプログラミング装置800は、第1マルチビットセルの閾値電圧の変化を複数のページプログラミング動作の間に分散させることによって、FPカップリングによるデータ汚染を減少(例えば、実質的な減少または最小化)させる効果を有する。
マルチビットプログラミング装置800は、第1マルチビットセルおよび第2マルチビットセルの閾値電圧の分布を従来技術と異なるように設定して、FPカップリングによるデータ汚染を減少(例えば、実質的な減少または最小化)させる効果を有する。
マルチビットプログラミング装置800によれば、遷移過程910は、3回目のページプログラミング動作の間行われて遷移過程920は、4回目のページプログラミング動作の間行われるため、全体プログラミング回数が増加しない。全体プログラミング回数が増加しないため、プログラミングディスターバンス(programming disturbance)によるデータ汚染の危険が少ない。
マルチビットプログラミング装置800によれば、第1マルチビットセルに格納される最終データが反転することはない。したがって、第1マルチビットセルに格納されたデータを読み出す際にも最初のデータを復元する過程が必要でない。
実施形態によれば、ページプログラミング部830は、3回目のページプログラミング動作の間にプログラミングされる第1データを反転して、第1マルチビットセルにプログラミングする。第1データは危険パターン「0111」に対応する。ページプログラミング部830は、3回目のページプログラミング動作の間にプログラミングされる第1データの「1」を反転して、「1」を反転した「0」を第1マルチビットセルにプログラミングする。
ページプログラミング部830は、3回目のページプログラミング動作の間に「0」を第1マルチビットセルにプログラミングするため、別途の付加的な回路なしで第1マルチビットセルの閾値電圧を変化させることができる。
第1マルチビットセルは3回目のページプログラミング動作の間に「XX11」状態で「X111」状態940に遷移される。「XX11」状態にあるマルチビットセルのうちでパターン「1111」に対応する第2マルチビットセルは、3回目のページプログラミング動作の間遷移過程930を経る。
実施形態によっては「X111」状態940は、「X011」状態950と物理的には同一の状態であってもよい。ページプログラミング部830は、4回目のページプログラミング動作の間に第3変化量および第4変化量を異なるようにして、「0111」状態および「1011」状態を分離することができる。より具体的な実施形態として、ページプログラミング部830は、第3変化量より第4変化量を大きくして「0111」状態および「1011」状態を分離することができる。この時、「X111」状態940は、「X011」状態と物理的には同一であるが、論理的には相異した状態にある。「X111」状態940は、第1マルチビットセルと関連して、「X011」状態は第2マルチビットセルと関連するためである。
実施形態によれば、マルチビットプログラミング装置800は、3回目のページプログラミング動作の間にプログラミングされる第1データを反転してメモリ810に格納する。ページプログラミング部830は、3回目のページプログラミング動作の間メモリ810から反転した第1データを受信して第1マルチビットセルにプログラミングする。
図10は、本発明の一実施形態に係るマルチビットプログラミング方法を示す動作フローチャートである。
図10を参照すれば、ページプログラミング動作の第1データは、ページバッファに格納される(S1010)。
1つ以上のビットを含む第1データの「1」と「0」の個数が計数される(S1020)。
第1データを反転するかどうかは、第1データの「1」と「0」の個数に基づいて決定される(S1030)。
決定された反転の有無により第1データから前記第2データが生成される(S1040)。
第2データは、第1データに代って前記ページバッファに格納される(S1050)。
ページバッファに格納された第2データは、少なくとも1つ以上のマルチビットセルにプログラミングされる(S1060)。
マルチビットプログラミング方法は、ページプログラミング動作をN回行う。
ステップS1030は、ページプログラミング動作の順番にさらに基づいて、第1データを反転するかどうかを決定する。ページプログラミング動作の順番は、1から自然数Nまでの値を有することができる。
図11は、図10のステップS1030の一実施形態を詳細に示した動作フローチャートである。
図11を参照すれば、ステップS1030は、ページプログラミング動作の順番を判断する(S1110)。
ステップS1030は、第1データの「1」と「0」の個数および現在実行されるページプログラミング動作の順番に基づいて、第1データを反転するかどうかを決定する(S1120)。
図12は、図10のステップS1030の他の実施形態を詳細に示した動作フローチャートである。
図12を参照すれば、ステップS1030は、現在実行されるページプログラミング動作が(N−1)回目であるか否かを判断する(S1210)。
ステップS1030は、現在実行されるページプログラミング動作が(N−1)回目である場合、ページプログラミング動作の第1データのうち「1」が「0」より多いか否かを判断する(S1220)。
ステップS1030は、現在実行されるページプログラミング動作が、(N−1)回目の、ページプログラミング動作の第1データのうち「1」が「0」より多い場合、第1データを反転することを決定する(S1230)。
ステップS1030は、現在のページプログラミング動作が、N回目であるか判断する(S1240)。ページプログラミング動作がN回目である場合、ページプログラミング動作の第1データのうち「0」が「1」より多いか否かを判断する(S1250)。
ステップS1030は、現在のページプログラミング動作がN回目であり、第1データのうち「0」が「1」より多い場合、第1データを反転することを決定して第1データを反転する(S1260)。そして、方法はS1040ステップに進み、図10に関して上述したように続けることができる。
S1250ステップに戻り、第1データのうち「0」が「1」より小さいか同じであれば、図10のS1040ステップに進む。
S1240ステップに戻り、現在のページプログラミング動作が、N回目のページプログラミング動作でない場合、図10のS1040ステップに進む。
S1220ステップに戻り、現在ページプログラムの動作がN−1回目のページプログラミング動作であり、第1データのうち「0」が「1」より多くない場合、S1240ステップに進む。
S1210ステップに戻り、現在のページプログラミング動作が、N−1回目のページプログラミング動作である場合、S1240ステップに進む。
実施形態によれば、ページプログラミング動作は、マルチビットセルの閾値電圧を変化させることによって、データをマルチビットセルにプログラミングすることができる。
実施形態によれば、ページプログラミング動作は、「0」のデータをプログラミングする場合に、マルチビットセルの閾値電圧を増加させるものとしてもよい。
本発明のマルチビットプログラミング方法は、閾値電圧の急激な変化を経験するマルチビットセルの個数を減少させることによって、FPカップリングによるデータ汚染を減少(例えば、実質的な減少または最小化)させる効果を有する。
図13は、本発明のまた他の実施形態に係るマルチビットプログラミング方法を示す動作フローチャートである。
図13を参照すれば、N回のページプログラミング動作に用いられるデータが格納される(S1310)。
データのうち危険パターンが識別される(S1320)。
識別された危険パターンに対応する第1マルチビットセルの閾値電圧が、第1変化量だけ変化する(S1330)。
ステップS1330で、第1マルチビットセルの閾値電圧を第1変化量だけ変化させることによって、データのうち第1データが第1マルチビットセルにプログラミングされる。
第1マルチビットセルを除いた第2マルチビットセルの閾値電圧が、第2変化量だけ変化する(S1340)。
ステップS1340において、第2マルチビットセルの閾値電圧を第2変化量だけ変化させることによって、データのうち第2データが第2マルチビットセルにプログラミングされる。第2データは、データのうち第1データを除いた残り部分を示す。
この時の識別パターンは、第1マルチビットセルまたは第2マルチビットセルに最終的にプログラムされるマルチビットデータと関連する。
実施形態によれば、識別パターンは、第1マルチビットセルまたは第2マルチビットセルに最終的にプログラムされるマルチビットデータと関連付けられてもよい。
実施形態によれば、マルチビットプログラミング方法は、第1データを反転させるステップをさらに含んでもよい。この時、マルチビットプログラミング方法は、反転した第1データを用いてステップS1330を行う。
本実施形態によれば、マルチビットプログラミング方法は、全体プログラミング回数を増加させないために、プログラミングディスターバンスによるデータ汚染を減少または最小化することができる。また、マルチビットプログラミング方法は、第1マルチビットセルに格納されたデータを復元する追加的な過程なしで第1マルチビットセルに格納されたデータにアクセスすることができる。
本発明のマルチビットプログラミング方法は、第1マルチビットセルが経験する閾値電圧の急激な変化を複数のページプログラミング動作の間に分散させることによって、FPカップリングによるデータ汚染を減少または最小化することができる。
本発明に係るマルチビットプログラミング装置および方法はページプログラミング動作を行う過程で用いられるバイナリコード(binary code)、修正バイナリコード(modified binary code)、グレイコード(gray code)、または類似グレイコード(gray−like code)等を柔軟に可変適用して、データビットを反転するかどうかを決定することができる。
本発明によれば、マルチレベルセルメモリに新しいマルチレベル(マルチビット)プログラミング技法を適用することによって、マルチレベルセルメモリにおいて、データ格納時の閾値電圧の分布を精密に制御することができる。
また、本発明によれば、マルチレベルセルメモリに新しいマルチレベル(マルチビット)プログラミング技法を適用することによって、マルチレベルセルメモリにおいて、浮遊ポリシリコン(floating poly−silicon、FP)カップリングによる閾値電圧の変化を減少させることができる。本発明は、FPカップリングによる閾値電圧の変化を減少させることによって、隣接したマルチレベルセルのデータ汚染を減少させ、マルチレベルセルメモリに格納されたデータの読み取り失敗率(read failure rate)を減少させることができる。
また、本発明によれば、マルチレベルセルメモリに新しいマルチレベル(マルチビット)プログラミング技法を適用することによって、マルチレベルセルメモリにおいて、データ格納時のディスターバンス(disturbance)の発生の可能性を減少させることができる。
本発明に係るマルチビットプログラミング方法は、コンピュータにより実現される多様な動作を実行するためのプログラム命令を含むコンピュータ読取可能な記録媒体を含む。当該記録媒体は、プログラム命令、データファイル、データ構造などを単独または組み合わせて含むこともでき、記録媒体およびプログラム命令は、本発明の目的のために特別に設計されて構成されたものでもよく、コンピュータソフトウェア分野の技術を有する当業者にとって公知であり使用可能なものであってもよい。コンピュータ読取可能な記録媒体の例としては、ハードディスク、フロッピー(登録商標)ディスク及び磁気テープのような磁気媒体、CD−ROM、DVDのような光記録媒体、フロプティカルディスクのような磁気−光媒体、およびROM、RAM、フラッシュメモリなどのようなプログラム命令を保存して実行するように特別に構成されたハードウェア装置が含まれる。また、記録媒体は、プログラム命令、データ構造などを保存する信号を送信する搬送波を含む光または金属線、導波管などの送信媒体でもある。プログラム命令の例としては、コンパイラによって生成されるような機械語コードだけでなく、インタプリタなどを用いてコンピュータによって実行され得る高級言語コードを含む。上記のハードウェア装置は、本発明の動作を行うために1つ以上のソフトウェアモジュールとして作動するように構成されることができ、その逆も同様である。
上述したように本発明は、たとえ限定された実施形態と図面によって説明されていても、本発明は上記の実施形態に限定されることはなく、本発明が属する分野で通常の知識を有する者であれば、このような記載からさまざまな修正および変形が可能である。
したがって、本発明の範囲は、説明した実施形態に限定して決定されてはならず、後述する特許請求の範囲だけではなく、この特許請求の範囲と均等なものによって決められるものである。
100 マルチビットプログラミング装置
110 ページバッファ
120 入力制御部
130 ページプログラミング部

Claims (20)

  1. 複数のページプログラミング動作を行うマルチビットプログラミング装置であって、
    前記ページプログラミング動作のうちの1つであり、かつ1つ以上のビットを含む、第1データを格納するページバッファと、
    前記第1データのうち第1値を有する複数のビットと、第2値を有する複数のビットとに基づいて、前記第1データを反転するかどうかを決定し、前記第1値を有するビット数が、前記第2値を有するビット数より多い場合、前記第1データを反転して第2データを生成し前記ページバッファに格納する入力制御部と、
    前記ページバッファに格納された第2データを1つ以上のマルチビットセルにプログラミングするページプログラミング部と、
    を含み、
    前記ページプログラミング動作は、前記1つ以上のマルチビットセルの閾値電圧を変化させ、
    前記入力制御部は、前記第1値が有するビット数および前記第2値が有するビット数と、第1ページプログラミング動作の間の前記1つ以上のマルチビットセルの閾値電圧の変化量とに基づいて、前記第1データを反転するかどうかを決定することを特徴とするマルチビットプログラミング装置。
  2. 前記第1値は、1または0であり、
    前記第2値は、1または0であるとともに、
    前記第1値と前記第2値とは異なることを特徴とする請求項1に記載のマルチビットプログラミング装置。
  3. 前記入力制御部は、前記複数の各ページプログラミング動作に対して、前記第1データを反転するかどうかを決定することを特徴とする請求項1に記載のマルチビットプログラミング装置。
  4. 前記入力制御部は、前記複数の各ページプログラミング動作の第1データに基づいて、前記第1データを反転するかどうかを決定することを特徴とする請求項1に記載のマルチビットプログラミング装置。
  5. 前記入力制御部は、前記第1値を有するビットの数および前記第2値を有するビットの数と、前記複数のページプログラミング動作の順番とに基づいて、前記第1データを反転するかどうかを決定し、
    前記順番は、1から自然数Nまでの値を有することを特徴とする請求項1に記載のマルチビットプログラミング装置。
  6. 前記第1の値は「1」であり、かつ前記第2の値は「0」であるとともに、
    前記ページプログラミング動作は、前記複数のページプログラミング動作のうち(N−1)回目のプログラミング動作であることを特徴とする請求項5に記載のマルチプログラミング装置。
  7. 前記第1の値は「0」であり、かつ前記第2の値は「1」であるとともに、
    前記ページプログラミング動作は、前記複数のページプログラミング動作のうちN回目のプログラミング動作であることを特徴とする請求項5に記載のマルチプログラミング装置。
  8. 前記第1データが反転したかどうかを示すフラグを格納するフラグ格納部をさらに含むことを特徴とする請求項1に記載のマルチビットプログラミング装置。
  9. 前記フラグ格納部から前記フラグを受信し、前記マルチビットセルから前記第2データを受信するとともに、前記フラグに基づいて前記第2データから前記第1データを復元する出力制御部をさらに含むことを特徴とする請求項8に記載のマルチビットプログラミング装置。
  10. 前記入力制御部は、前記1つ以上のマルチビットセルの閾値電圧の変化量のうち、最大変化量が最小化されるように、前記第1データを反転するかどうかを決定することを特徴とする請求項に記載のマルチビットプログラミング装置。
  11. 前記マルチビットプログラミング装置は、前記Nページプログラミング動作を行うとともに、
    前記入力制御部は、前記(N−1)回目のページプログラミング動作の間、前記1つ以上のマルチビットセルの中で閾値電圧が変化するマルチビットセルの個数が、閾値電圧が変化しないマルチビットセルの個数より多くなるように、前記第1データを反転するかどうかを決定することを特徴とする請求項に記載のマルチビットプログラミング装置。
  12. 前記マルチビットプログラミング装置は、前記Nページプログラミング動作を行うとともに、
    前記入力制御部は、前記N回目のページプログラミング動作の間、閾値電圧が変化する前記マルチビットセルが多くなるように、前記第1データを反転するかどうかを決定することを特徴とする請求項9に記載のマルチビットプログラミング装置。
  13. 前記入力制御部は、前記ページプログラミング動作の間、前記1つ以上のマルチビットセルの中で閾値電圧が変化するマルチビットセルの個数が、閾値電圧が変化しないマルチビットセルの個数より多くなるように、前記第1データを反転するかどうかを決定することを特徴とする請求項に記載のマルチビットプログラミング装置。
  14. 前記マルチビットプログラミング装置は、前記Nページプログラミング動作を行うとともに、
    前記入力制御部は、前記第1ページプログラミング動作の間に、第1閾値電圧のマルチビットセルの中では前記第1閾値電圧が変化する前記マルチビットセルが多くなるように、および前記第1閾値電圧より高い第2閾値電圧のマルチビットセルの中では前記第2閾値電圧が変化しない前記マルチビットセルが多くなるように、前記第1データを反転するかどうかを決定することを特徴とする請求項に記載のマルチビットプログラミング装置。
  15. マルチビットプログラミング装置であって、
    複数のページプログラミング動作の第1データを格納するメモリと、
    前記格納されたデータのうち閾値の変化量が最大となるデータパターンを識別する危険パターン識別部と、
    前記識別されたデータパターンに対応する第1マルチビットセルの閾値電圧を第1変化量だけ変化させることによって、前記データのうち第1データを前記第1マルチビットセルにプログラミングするとともに、第2マルチビットセルの閾値電圧を第2変化量だけ変化させることによって、前記データのうち第2データを前記第2マルチビットセルにプログラミングするページプログラミング部と、
    を含み、
    前記ページプログラミング部は、前記第1データのうち第1値を有するビット数および第2値を有するビット数と、前記第1マルチビットセルの閾値電圧の第1変化量とに基づいて、前記第1データを反転するかどうか、を決定し、
    前記第1マルチビットセルと前記第2マルチビットセルとは、異なることを特徴とするマルチビットプログラミング装置。
  16. 前記ページプログラミング部は、前記第1データを反転して前記第1マルチビットセルにプログラミングすることを特徴とする請求項15に記載のマルチビットプログラミング装置。
  17. 1つ以上のビットを含む、ページプログラミング動作の第1データをページバッファに格納するステップと、
    前記第1データのうち第1値を有するビット数と第2値を有するビット数とを計数するステップと、
    前記第1値を有するビット数と前記第2値を有するビット数とに基づいて、前記第1データを反転するかどうかを決定するステップと、
    前記第1値を有するビット数が前記第2値を有するビット数より多い場合、前記第1データを反転して第2データを生成するステップと、
    前記第2データを前記第1データに代って前記ページバッファに格納するステップと、
    前記ページバッファに格納された第2データを1つ以上のマルチビットセルにプログラミングするステップと、
    を含み、
    前記ページプログラミング動作は、前記1つ以上のマルチビットセルの閾値電圧を変化させ、
    前記第1データを反転するかどうかを決定するステップは、前記第1値が有するビット数および前記第2値が有するビット数と、前記ページプログラミング動作の間の前記1つ以上のマルチビットセルの閾値電圧の変化量とに基づいて、前記第1データを反転するかどうかを決定することを特徴とするマルチビットプログラミング方法。
  18. 前記ページプログラミング動作は、1から自然数Nまでの順序を有するNページプログラミング動作のうちの1つであり、
    前記第1データを反転するかどうかを決定するステップは、
    前記ページプログラミング動作の順番に基づいて、前記第1データを反転するかどうかを決定することを特徴とする請求項17に記載のマルチビットプログラミング方法。
  19. 複数のページプログラミング動作に用いられるデータを格納するステップと、
    前記データのうちデータパターンを識別するステップと、
    前記識別されたデータパターンに対応する第1マルチビットセルの閾値電圧を第1変化量だけ変化させるステップと、
    第2マルチビットセルの閾値電圧を第2変化量だけ変化させるステップと、
    前記データのうち前記第1マルチビットセルと関連する第1データを反転させるステップと、
    を含み
    前記第1データを反転させるステップは、前記第1データのうち第1値を有するビット数および第2値を有するビット数と、前記第1マルチビットセルの閾値電圧の第1変化量とに基づいて、前記第1データを反転するかどうか、を決定し、
    前記第1マルチビットセルと前記第2マルチビットセルとは異なることを特徴とするマルチビットプログラミング方法。
  20. 請求項17または19のいずれか1項に記載の方法をコンピュータが実行するためのプログラムが記録されていることを特徴とするコンピュータ可読記録媒体。
JP2010528782A 2007-10-08 2008-04-01 マルチビットプログラミングのための装置および方法 Active JP5291111B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
KR1020070101061A KR101292574B1 (ko) 2007-10-08 2007-10-08 멀티 비트 프로그래밍 장치 및 방법
KR10-2007-0101061 2007-10-08
PCT/KR2008/001826 WO2009048211A1 (en) 2007-10-08 2008-04-01 Apparatuses and methods for multi-bit programming

Publications (2)

Publication Number Publication Date
JP2010541122A JP2010541122A (ja) 2010-12-24
JP5291111B2 true JP5291111B2 (ja) 2013-09-18

Family

ID=40523110

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010528782A Active JP5291111B2 (ja) 2007-10-08 2008-04-01 マルチビットプログラミングのための装置および方法

Country Status (4)

Country Link
US (1) US7804726B2 (ja)
JP (1) JP5291111B2 (ja)
KR (1) KR101292574B1 (ja)
WO (1) WO2009048211A1 (ja)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8144510B1 (en) * 2008-03-27 2012-03-27 Marvell International Ltd. Method and system for programming multi-state memory
US7729166B2 (en) 2008-07-02 2010-06-01 Mosaid Technologies Incorporated Multiple-bit per cell (MBC) non-volatile memory apparatus and system having polarity control and method of programming same
KR101518039B1 (ko) 2008-12-08 2015-05-07 삼성전자주식회사 불휘발성 메모리 장치 및 그것의 프로그램 방법
US20100302856A1 (en) * 2009-05-29 2010-12-02 Sung Hoon Ahn Nonvolatile memory device and method of programming and reading the same
US8429335B2 (en) * 2009-10-13 2013-04-23 Macronix International Co., Ltd. Memory device and operation method to selectively invert data
US8218380B2 (en) * 2009-10-30 2012-07-10 Apple Inc. Degradation equalization for a memory
US8472246B2 (en) * 2011-03-21 2013-06-25 Skymedi Corporation Method of programming a multi-bit per cell non-volatile memory
US9367833B2 (en) * 2011-07-14 2016-06-14 Invention Science Fund I, Llc Data services outsourcing verification
KR20130080203A (ko) 2012-01-04 2013-07-12 삼성전자주식회사 셀 상태들의 비대칭 특성을 고려한 프로그램 데이터를 생성하는 방법 및 그것을 이용한 메모리 시스템
US9218851B2 (en) * 2013-10-24 2015-12-22 Sandisk Technologies Inc. Power drop protection for a data storage device
JP2015204126A (ja) 2014-04-16 2015-11-16 株式会社東芝 半導体記憶装置
JP6606039B2 (ja) * 2016-09-09 2019-11-13 東芝メモリ株式会社 メモリシステムおよび制御方法
CN110047266B (zh) * 2018-01-17 2021-01-22 京东方科技集团股份有限公司 信息表示方法、多进制计算电路及电子系统

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH1055687A (ja) * 1996-08-09 1998-02-24 Sony Corp 不揮発性半導体記憶装置
JPH11242891A (ja) * 1997-12-26 1999-09-07 Sony Corp 不揮発性半導体記憶装置およびそのデータ書き込み方法
JP2004152366A (ja) * 2002-10-29 2004-05-27 Sony Corp データ記憶方法及びデータ記憶回路
EP1435623B1 (en) 2002-12-30 2008-06-04 STMicroelectronics S.r.l. Stabilisation method of the drain voltage in non-volatile multilevel memory cells and relating memory device
KR100600301B1 (ko) 2005-05-25 2006-07-13 주식회사 하이닉스반도체 면적이 감소된 페이지 버퍼 회로와, 이를 포함하는 플래시메모리 장치 및 그 프로그램 동작 방법
KR100673703B1 (ko) * 2005-06-14 2007-01-24 주식회사 하이닉스반도체 멀티 레벨 셀들을 포함하는 플래시 메모리 장치의 카피백동작 제어 방법
KR100616214B1 (ko) 2005-06-30 2006-08-28 주식회사 하이닉스반도체 멀티-레벨 셀을 가지는 플래시 메모리 장치의 프로그램제어 회로 및 그 프로그램 제어 방법
KR100648286B1 (ko) 2005-07-04 2006-11-23 삼성전자주식회사 단일의 페이지 버퍼 구조로 멀티-비트 및 단일-비트프로그램 동작을 수행하는 플래시 메모리 장치
KR100642892B1 (ko) 2005-07-19 2006-11-03 주식회사 하이닉스반도체 면적이 감소된 페이지 버퍼 회로와 그 독출 및 프로그램동작 방법
TWI342599B (en) * 2006-08-17 2011-05-21 Macronix Int Co Ltd Method for manufacturing, programming and reading of non-volatile memory
KR100919156B1 (ko) 2006-08-24 2009-09-28 삼성전자주식회사 멀티-비트 플래시 메모리 장치 및 그것의 프로그램 방법
KR100769770B1 (ko) 2006-09-29 2007-10-23 주식회사 하이닉스반도체 메모리 장치의 페이지 버퍼 회로 및 프로그램 방법
JP4498370B2 (ja) * 2007-02-14 2010-07-07 株式会社東芝 データ書き込み方法

Also Published As

Publication number Publication date
KR101292574B1 (ko) 2013-08-16
JP2010541122A (ja) 2010-12-24
US20090091991A1 (en) 2009-04-09
US7804726B2 (en) 2010-09-28
WO2009048211A1 (en) 2009-04-16
KR20090035988A (ko) 2009-04-13

Similar Documents

Publication Publication Date Title
JP5291111B2 (ja) マルチビットプログラミングのための装置および方法
TWI501238B (zh) 藉由調變編碼用於單元間干擾抑制的方法及裝置
US7533328B2 (en) Method of error correction in a multi-bit-per-cell flash memory
US8773907B2 (en) Reading memory cell history during program operation for adaptive programming
US9159440B2 (en) Read method for nonvolatile memory device, and data storage system using the same
US8014207B2 (en) Nonvolatile memory device and method of operating the same
US8788908B2 (en) Data storage system having multi-bit memory device and on-chip buffer program method thereof
US7986552B2 (en) Nonvolatile memory device and method of operation to program/read data by encoding/decoding using actual data and random data for program/read operation
JP2008204591A (ja) メモリ素子の読み出し方法
JP2011515785A (ja) メモリ装置およびデータ判定方法
KR102239237B1 (ko) 고체 상태 메모리 시스템에서의 레이턴시 기반 데이터 재활용을 위한 시스템 및 방법
US10198217B2 (en) Method and system of enhanced reliability and error immunity in flash storage
KR20100055906A (ko) 멀티-레벨 비휘발성 메모리 장치, 상기 장치를 포함하는 메모리 시스템 및 그 동작 방법
JP2009070539A (ja) 不揮発性メモリ装置及びそのマルチレベルセルプログラム方法
JP2010287306A (ja) データ値分布に基づいてプログラム状態決定を利用するメモリ装置、及びその駆動方法
US20120002469A1 (en) Nonvolatile semiconductor memory device
US9786388B1 (en) Detecting and managing bad columns
US20240028216A1 (en) Apparatus and method for programming data in a non-volatile memory device
JP5335779B2 (ja) 半導体記録装置
JP5901746B2 (ja) メモリセルをプログラミングすること
KR102247164B1 (ko) 채널 복호기의 동작과 결합한 플래시 메모리 읽기 방법 및 그 장치
JP2012133835A (ja) 不揮発性半導体記憶装置及び方法
TWI812295B (zh) 記憶體裝置及其操作方法
US9361181B2 (en) Error protection for memory devices
EP4198988A1 (en) Storage controller using history data, method of operating the same, and method of operating storage device including the same

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20110216

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120131

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20121226

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130108

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130405

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20130507

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130606

R150 Certificate of patent or registration of utility model

Ref document number: 5291111

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250