(58)【調査した分野】(Int.Cl.,DB名)
前記第2制御部は、前記第1グループの各マルチビットセルの閾値電圧を前記第1読み出し電圧レベルと比較して前記第1グループの各マルチビットセルの閾値電圧状態情報を生成し、前記閾値電圧状態情報および前記第2データページに基づいて前記第1グループの各マルチビットセルの目標閾値電圧区間を設定する、
ことを特徴とする請求項1に記載のメモリ装置。
前記第2制御部は、前記第2グループの各マルチビットセルの閾値電圧を前記第2読み出し電圧レベルと比較して前記第2グループの各マルチビットセルの閾値電圧状態情報を生成し、前記閾値電圧状態情報および前記第2データページに基づいて前記第2グループの各マルチビットセルの目標閾値電圧区間を設定する、
ことを特徴とする請求項1に記載のメモリ装置。
前記プログラミング部は、前記第1データページがプログラムされた各マルチビットセルの閾値電圧が前記設定された目標閾値電圧区間に含まれるように前記第2データページをプログラムする、
ことを特徴とする請求項1に記載のメモリ装置。
前記第1制御部は、第1ワードラインに連結したマルチビットセルを前記第1グループとして設定し、第2ワードラインに連結したマルチビットセルを前記第2グループとして設定する、
ことを特徴とする請求項1に記載のメモリ装置。
前記第1制御部は、偶数番目のビットラインに連結したマルチビットセルを前記第1グループとして設定し、奇数番目のビットラインに接続したマルチビットセルを前記第2グループとして設定する、
ことを特徴とする請求項1に記載のメモリ装置。
前記第1制御部は、消去回数が基準値未満であるマルチビットセルを前記第1グループとして設定し、消去回数が前記基準値以上であるマルチビットセルを前記第2グループとして設定する、
ことを特徴とする請求項1に記載のメモリ装置。
前記第1制御部は、前記第1データページがプログラムされたマルチビットセルのうち、前記第1データページが第1時間区間の間にプログラムされたマルチビットセルを前記第1グループとして設定し、前記第1データページが第2時間区間の間にプログラムされたマルチビットセルを前記第2グループとして設定する、
ことを特徴とする請求項1に記載のメモリ装置。
前記第1制御部は、前記第1データページがプログラムされた各マルチビットセルのエラー統計を格納し、前記格納されたエラー統計が基準値未満であるマルチビットセルを前記第1グループとして設定し、前記格納されたエラー統計が前記基準値以上であるマルチビットセルを前記第2グループとして設定する、
ことを特徴とする請求項1に記載のメモリ装置。
前記第2データページをプログラムするステップは、前記複数の各マルチビットセルの閾値電圧が前記設定された目標閾値電圧区間に含まれるように前記第2データページをプログラムする、
ことを特徴とする請求項11に記載のメモリプログラミング方法。
【背景技術】
【0002】
シングルレベルセル(SLC:single−level cell)メモリは、1つのメモリセルに1ビットのデータを格納するメモリである。シングルレベルセルメモリはシングルビットセル(SBC:single−bit cell)メモリとも呼ばれる。シングルレベルセルメモリのメモリセル(シングルレベルセル)にデータを格納する過程はプログラム過程とも呼ばれ、メモリセルの閾値電圧(threshold voltage)を変化させることができる。例えば、シングルレベルセルに論理「1」のデータが格納された場合には、シングルレベルセルは1.0Voltの閾値電圧を有してもよく、論理「0」のデータが格納された場合には、シングルレベルセルは3.0Voltの閾値電圧を有してもよい。
【0003】
シングルレベルセルの間の微細な電気的特性の差により、同じデータがプログラムされた各シングルレベルセルに形成された閾値電圧は一定の範囲の散布(distribution)を有するようになる。例えば、メモリセルから読み出された電圧が0.5−1.5Voltである場合には、前記メモリセルに格納されたデータは論理「1」であり、メモリセルから読み出された電圧が2.5−3.5Voltである場合には、前記メモリセルに格納されたデータは論理「0」と判定してもよい。メモリセルに格納されたデータは、読み出し動作時のメモリセルの電流/電圧の差によって区分される。
【0004】
一方、メモリの高集積化要求に応答し、1つのメモリセルに2ビット以上のデータをプログラムすることができるマルチレベルセル(MLC:multi−level cell)メモリが提案された。マルチレベルセルメモリはマルチビットセル(MBC:multi−bit cell)メモリとも呼ばれる。しかしながら、1つのメモリセルにプログラムされるビットの数が増加するほど信頼性は低下し、読み出し失敗率(read failure rate)は増加するようになる。1つのメモリセルにm個のビットをプログラムしようとすれば、2
m個の閾値電圧のうちのいずれか1つが前記メモリセルに形成されなければならない。メモリセルの間の微細な電気的特性の差により、同じデータがプログラムされたメモリセルの閾値電圧は一定の範囲の散布(distribution)を形成してもよい。このとき、m個のビットによって生成される2
m個の各データ値に1つずつの閾値電圧散布が対応してもよい。
【0005】
ベージ(Page)単位で情報を格納するMLCメモリにおいて、m番目のビット(bit)情報を格納するためには、MLCメモリに既に格納された(m−1)番目のビット(bit)まで格納された情報を知らなければならない。(m−1)番目のビット(bit)までの情報が格納されていれば、MLCメモリは2
(m−1)個のうちの1つの閾値電圧を形成しており、閾値電圧の位置を知るためにはインターナルリード(internal read)動作を実行する。インターナルリード(Internal read)
はMLCプログラム(MLC program)を実行する途中に発生する読み出し動作を意味する。したがって、インターナルリード(internal read)でエラー(error)が発生するようになれば(m−1)番目まで格納された情報を誤って判断するようになり、MLCプログラム(MLC program)時にMLCメモリの閾値電圧を所望しない場所に移動させるようになる。プログラム(Program)の完了後、ノーマルリード(normal read)動作によって格納された情報を読むようになれば、MLCメモリ(MLC memory)は誤った閾値電圧を有しているため誤った情報を読むようになり、エラー(error)を発生させるようになる。
【0006】
メモリの電圧ウィンドウ(voltage window)は制限されているため、mが増加することによって隣接したビット間の閾値電圧(threshold)の2
m個の散布間の距離は減り、散布間の距離がさらに減れば散布どうしが重なることがある。散布どうしが重なれば読み出し失敗率が増加することがある。
【発明を実施するための形態】
【0012】
以下、本発明に係る実施形態を、添付の図面を参照しながら詳細に説明する。しかしながら、本発明が実施形態によって制限されたり限定されるものではない。各図面に提示された同一する参照符号は同一する部材を示す。
図1は、本発明の一実施形態に係るメモリ装置100を示す図である。
図1を参照すれば、メモリ装置100は、マルチビットセルアレイ110と、プログラミング部120と、第1制御部130と、第2制御部140とを含む。
マルチビットセルアレイ110は、複数のマルチビットセルを含む。
【0013】
プログラミング部120は、各マルチビットセルの閾値電圧を変更させて各マルチビットセルにデータをプログラムしてもよい。マルチビットセルがmビットのデータを格納することができれば、前記マルチビットセルの閾値電圧は2
m個の電圧レベルのうちのいずれか1つであってもよい。第2制御部140は、前記マルチビットセルに格納されるデータに対応する目標閾値電圧区間を設定してもよい。プログラミング部120は、前記マルチビットセルの閾値電圧が前記設定された目標閾値電圧区間に含まれるまで前記マルチビットセルにプログラム条件電圧を印加してもよい。
【0014】
実施形態によっては、第2制御部140は、mビットデータに対応する2
m個の目標閾値電圧区間を設定してもよく、マルチビットセルに格納されるデータに基づいて前記設定された目標閾値電圧区間のうちいずれか1つを選択してもよい。プログラミング部120は、前記マルチビットセルの閾値電圧が前記選択された目標閾値電圧区間に含まれるまで前記マルチビットセルにプログラム条件電圧を印加してもよい。
【0015】
実施形態によっては、第2制御部120は、mビットデータに対応する2
m個の検証電圧レベルを設定してもよく、マルチビットセルに格納されるデータに基づいて前記設定された検証電圧レベルのうちいずれか1つを選択してもよい。プログラミング部120は、前記マルチビットセルの閾値電圧が前記選択された検証電圧レベル以上になるまで前記マルチビットセルにプログラム条件電圧を印加してもよい。
【0016】
プログラミング部120がマルチビットセルにデータをプログラムする過程は、メモリ装置100がマルチビットセルに格納されたデータを読み出す過程にかかる時間よりも極めて長い時間がかかることがある。プログラミング部120は、全体プログラミング時間を短縮するために、複数のマルチビットセルに同時にデータをプログラムしてもよい。このとき、第2制御部120は、同時にプログラムされる複数の各マルチビットセルに対する目標閾値電圧区間を設定してもよい。プログラミング部120は、複数の各マルチビットセルの閾値電圧が前記設定された目標閾値電圧区間に含まれるまで複数の各マルチビットセルにプログラム条件電圧を印加してもよい。
【0017】
同時にプログラムされるマルチビットセルの集合を本明細書ではメモリページと命名する。メモリページ111はプログラミング部120によって同時にプログラムされるマルチビットセルの集合であってもよい。メモリページ111の各マルチビットセルがmビットデータを格納すれば、メモリページ111はm個のデータページを格納してもよい。
【0018】
実施形態によっては、プログラミング部120は、第1ページプログラミング動作(first page programming operation)を実行することにより、MSB(Most Significant Bit)をメモリページ111のマルチビットセルにプログラムしてもよい。このとき、メモリページ111のマルチビットセルにプログラムされるMSBの集合を第1データページと命名する。
【0019】
プログラミング部120は、第2ページプログラミング動作を実行することにより、第2ビットをメモリページ111のマルチビットセルにプログラムしてもよい。このとき、メモリページ111のマルチビットセルにプログラムされる第2ビットの集合を第2データページと命名する。
【0020】
プログラミング部120は、第mページプログラミング動作を実行することにより、LSB(Least Significant Bit)をメモリページ111のマルチビットセルにプログラムしてもよい。このとき、メモリページ111のマルチビットセルにプログラムされるLSBの集合を第mデータページと命名する。
【0021】
第1制御部130は、プログラミング部120によって第1データページがプログラムされたメモリページ111のマルチビットセルを第1グループおよび第2グループに分割してもよい。
【0022】
第2制御部140は、第1読み出し電圧レベルおよび第2データページに基づいて第1グループの各マルチビットセルの目標閾値電圧区間を設定してもよい。
第2制御部140は、第1グループの各マルチビットセルの閾値電圧を第1読み出し電圧レベルと比較して第1グループの各マルチビットセルの閾値電圧状態を識別してもよい。第2制御部140は、第1グループの各マルチビットセルにプログラムされる第2データページおよび前記識別された閾値電圧状態に基づいて第1グループの各マルチビットセルの目標閾値電圧区間を設定してもよい。
【0023】
また、第2制御部140は、第2読み出し電圧レベルおよび第2データページに基づいて第2グループの各マルチビットセルの目標閾値電圧区間を設定してもよい。
第2制御部140は、第2グループの各マルチビットセルの閾値電圧を第2読み出し電圧レベルと比較して第2グループの各マルチビットセルの閾値電圧状態を識別してもよい。第2制御部140は、第2グループの各マルチビットセルにプログラムされる第2データページおよび前記識別された閾値電圧状態に基づいて第2グループの各マルチビットセルの目標閾値電圧区間を設定してもよい。
【0024】
第2制御部140は、メモリページ111のマルチビットセルに第1データページがプログラムされた後、第1グループの各マルチビットセルの閾値電圧状態を第1読み出し電圧レベルを用いて識別してもよく、第2グループの各マルチビットセルの閾値電圧状態を第2読み出し電圧レベルを用いて識別してもよい。
プログラミング部120は、メモリページ111の各マルチビットセルの閾値電圧が目標閾値電圧区間に含まれるように、第2データページをメモリページ111の各マルチビットセルにプログラムしてもよい。
【0025】
第1制御部130は、付加的な情報(additional information)によってメモリページ111のマルチビットセルを第1グループおよび第2グループに分割してもよい。付加的な情報の例としては、マルチビットセルの位置、プログラミング順序、P/Eサイクル(Program/Erase Cycle)、リチャージ(recharge)有無、リチャージ(recharge)回数、時間経過、モニタリングセルの散布幅変化程度などであってもよい。モニタリングセルはマルチビットセルアレイ110に含まれ、メモリ装置100はモニタリングセルの閾値電圧の散布をモニターして閾値電圧の変化傾向を推定してもよい。
【0026】
メモリ装置100は、第1グループおよび第2グループに対して互いに異なる読み出し電圧レベルを用いて閾値電圧状態を識別してもよい。メモリ装置100は、マルチビットセルの特性に基づいて最適化した読み出し電圧レベルを用いて閾値電圧状態を識別することにより、データをプログラミングする過程におけるエラーを最小化または減少させることができる。
【0027】
図2は、
図1のメモリ装置100の動作の一例を示す図である。
図2は、閾値電圧および閾値電圧に対応するマルチビットセルの個数を示している。
第1データページ210がプログラムされた後、マルチビットセルアレイ110のマルチビットセルの閾値電圧は散布211および散布212に対応してもよい。
【0028】
実施形態によっては、第1データページ210はMSBに対応してもよい。MSBは「1」または「0」であってもよい。MSB「1」がプログラムされたマルチビットセルの閾値電圧は散布211に対応してもよく、MSB「0」がプログラムされたマルチビットセルの閾値電圧は散布212に対応してもよい。
プログラミング部120は、第1ページプログラミング動作を実行することによって散布211および散布212を形成してもよい。
【0029】
メモリ装置100は、散布211および散布212の間の一電圧レベルを読み出し電圧レベルとして設定してもよい。メモリ装置100は、前記設定された読み出し電圧レベルを用いてマルチビットセルアレイ110のマルチビットセルの閾値電圧状態を識別してもよい。メモリ装置100は、前記設定された読み出し電圧レベルを用いてマルチビットセルの閾値電圧が散布211に対応するかまたは散布212に対応するかを判定(decision)してもよい。
【0030】
メモリ装置100は、マルチビットセルの閾値電圧状態および第2データページ220に基づいてマルチビットセルの目標閾値電圧状態を設定してもよい。実施形態によっては、第2データページ220は第2ビットに対応してもよい。
例えば、メモリ装置100は、散布211に対応するマルチビットセルのうち、第2ビット「1」がプログラムされるマルチビットセルの目標閾値電圧状態を散布221として設定してもよい。プログラミング部120は、第2ビット「1」がプログラムされるマルチビットセルに対して閾値電圧状態の変更を減少または最小限に抑制するプログラム条件電圧を印加して散布221を形成してもよい。このとき、散布221に対応するマルチビットセルにプログラムされたデータは「11」であってもよい。
【0031】
メモリ装置100は、散布211に対応するマルチビットセルのうち、第2ビット「0」がプログラムされるマルチビットセルの目標閾値電圧状態を散布222として設定してもよい。プログラミング部120は、第2ビット「0」がプログラムされるマルチビットセルに対して第2ページプログラミング動作を実行することによって散布222を形成してもよい。このとき、散布222に対応するマルチビットセルにプログラムされたデータは「10」であってもよい。
【0032】
メモリ装置100は、散布212に対応するマルチビットセルのうち、第2ビット「1」がプログラムされるマルチビットセルの目標閾値電圧状態を散布223として設定してもよい。プログラミング部120は、第2ビット「1」がプログラムされるマルチビットセルに対して第2ページプログラミング動作を実行することによって散布223を形成してもよい。このとき、散布223に対応するマルチビットセルにプログラムされたデータは「01」であってもよい。
【0033】
メモリ装置100は、散布212に対応するマルチビットセルのうち、第2ビット「0」がプログラムされるマルチビットセルの目標閾値電圧状態を散布224として設定してもよい。プログラミング部120は、第2ビット「0」がプログラムされるマルチビットセルに対して第2ページプログラミング動作を実行することによって散布224を形成してもよい。このとき、散布224に対応するマルチビットセルにプログラムされたデータは「00」であってもよい。
【0034】
メモリ装置100は、第2データページ220がプログラムされた後、散布221および222の間の電圧レベルを読み出し電圧レベルのうちの1つとして設定してもよい。また、メモリ装置100は、散布222および散布223の間の電圧レベルを読み出し電圧レベルのうちの1つとして設定してもよい。また、メモリ装置100は、散布223および散布224の間の電圧レベルを読み出し電圧レベルのうちの1つとして設定してもよい。
【0035】
メモリ装置100は、3つの読み出し電圧レベルを用いて第2データページ220がプログラムされた後のマルチビットセルの閾値電圧状態を識別してもよい。メモリ装置100は、識別された閾値電圧状態およびLSBに基づいてマルチビットセルの目標閾値電圧区間を設定してもよい。第3データページ230はLSBに対応してもよい。
【0036】
メモリ装置100は、散布221に対応するマルチビットセルの閾値電圧状態を第1閾値電圧状態として識別してもよい。メモリ装置100は、第1閾値電圧状態に対応するマルチビットセルのうち、LSB「1」がプログラムされるマルチビットセルに対して目標閾値電圧区間241を設定してもよい。メモリ装置100は、第1閾値電圧状態に対応するマルチビットセルのうち、LSB「0」がプログラムされるマルチビットセルに対して目標閾値電圧区間242を設定してもよい。
【0037】
メモリ装置100は、散布222に対応するマルチビットセルの閾値電圧状態を第2閾値電圧状態として識別してもよい。メモリ装置100は、第2閾値電圧状態に対応するマルチビットセルのうち、LSB「1」がプログラムされるマルチビットセルに対して目標閾値電圧区間243を設定してもよい。メモリ装置100は、第2閾値電圧状態に対応するマルチビットセルのうち、LSB「0」がプログラムされるマルチビットセルに対して目標閾値電圧区間244を設定してもよい。
【0038】
メモリ装置100は、散布223に対応するマルチビットセルの閾値電圧状態を第3閾値電圧状態として識別してもよい。メモリ装置100は、第3閾値電圧状態に対応するマルチビットセルのうち、LSB「1」がプログラムされるマルチビットセルに対して目標閾値電圧区間245を設定してもよい。メモリ装置100は、第3閾値電圧状態に対応するマルチビットセルのうち、LSB「0」がプログラムされるマルチビットセルに対して目標閾値電圧区間246を設定してもよい。
【0039】
メモリ装置100は、散布224に対応するマルチビットセルの閾値電圧状態を第4閾値電圧状態として識別してもよい。メモリ装置100は、第4閾値電圧状態に対応するマルチビットセルのうち、LSB「1」がプログラムされるマルチビットセルに対して目標閾値電圧区間247を設定してもよい。メモリ装置100は、第4閾値電圧状態に対応するマルチビットセルのうち、LSB「0」がプログラムされるマルチビットセルに対して目標閾値電圧区間248を設定してもよい。
【0040】
電圧レベル252は、適切に選択された読み出し電圧レベルの一例を示す。メモリ装置100は、マルチビットセルの閾値電圧が電圧レベル252よりも高いか低いかを判定してもよい。メモリ装置100は、マルチビットセルの閾値電圧が電圧レベル252よりも高ければ、マルチビットセルが第3閾値電圧状態または第4閾値電圧状態に含まれるものと判定してもよい。これとは反対に、メモリ装置100は、マルチビットセルの閾値電圧が電圧レベル252よりも低ければ、マルチビットセルが第1閾値電圧状態または第2閾値電圧状態に含まれるものと判定してもよい。
【0041】
プログラミング部120は、目標閾値電圧区間241に対応するマルチビットセルに閾値電圧状態の変更を減少または最小限に抑制するプログラム条件電圧を印加して散布231を形成してもよい。散布231に対応するマルチビットセルはデータ「111」を格納してもよい。
【0042】
プログラミング部120は、目標閾値電圧区間242に対応するマルチビットセルに第3ページプログラミング動作を実行することによって散布232を形成してもよい。散布232に対応するマルチビットセルはデータ「110」を格納してもよい。
【0043】
プログラミング部120は、目標閾値電圧区間243に対応するマルチビットセルに第3ページプログラミング動作を実行することによって散布233を形成してもよい。散布233に対応するマルチビットセルはデータ「101」を格納してもよい。
プログラミング部120は、目標閾値電圧区間244に対応するマルチビットセルに第3ページプログラミング動作を実行することによって散布234を形成してもよい。散布234に対応するマルチビットセルはデータ「100」を格納してもよい。
【0044】
プログラミング部120は、目標閾値電圧区間245に対応するマルチビットセルに第3ページプログラミング動作を実行することによって散布235を形成してもよい。散布235に対応するマルチビットセルはデータ「011」を格納してもよい。
プログラミング部120は、目標閾値電圧区間246に対応するマルチビットセルに第3ページプログラミング動作を実行することによって散布236を形成してもよい。散布236に対応するマルチビットセルはデータ「010」を格納してもよい。
【0045】
プログラミング部120は、目標閾値電圧区間247に対応するマルチビットセルに第3ページプログラミング動作を実行することによって散布237を形成してもよい。散布237に対応するマルチビットセルはデータ「001」を格納してもよい。
プログラミング部120は、目標閾値電圧区間248に対応するマルチビットセルに第3ページプログラミング動作を実行することによって散布238を形成してもよい。散布238に対応するマルチビットセルはデータ「000」を格納してもよい。
【0046】
電圧レベル251は、不適切に選択された読み出し電圧レベルの一例を示す。メモリ装置100は、マルチビットセルの閾値電圧が電圧レベル251よりも高いか低いかを判定してもよい。メモリ装置100は、散布222に対応するマルチビットセルのうち、電圧レベル251よりも高い閾値電圧を有するマルチビットセルの状態を第3閾値電圧状態として識別してもよい。メモリ装置100は、第3閾値電圧状態に対応するマルチビットセルのうち、LSB「1」がプログラムされるマルチビットセルに対して目標閾値電圧区間245を設定することにより、散布222に対応するマルチビットセルのうち、電圧レベル251よりも高い閾値電圧を有するマルチビットセルは散布235を形成してもよい。このとき、散布235に対応するマルチビットセルはデータ「011」を格納するものと見なしてもよい。この場合、散布235に対応するマルチビットセルのうちの一部は散布222を形成したマルチビットセルであるため、これらのマルチビットセルに格納されなければならないデータは「101」であるが、現在の格納されたデータは「011」であってもよい。メモリ装置100は電圧レベル251を不適切な読み出し電圧レベルとして選択することにより、第3ページプログラミング動作時にMSBおよび第2ビットにエラーを発生させてもよい。
【0047】
以下、メモリ装置100によってページプログラミング動作の間に実行される閾値電圧状態識別動作を「インターナルリード(internal read)」と命名することにする。メモリ装置100は、インターナルリード(internal read)時にマルチビットセルの特性に基づいて最適な読み出し電圧レベルを用いてインターナルリード(internal read)動作を実行することにより、プログラミング動作時に発生することのあるエラーを減少または最小化することができる。
【0048】
メモリ装置100は、付加的な情報(additional information)に基づいて各マルチビットセルに対して最適な読み出し電圧レベルを決定し、各マルチビットセルに対して設定された読み出し電圧レベルを用いてインターナルリード(internal read)動作を実行してもよい。付加的な情報の例としては、マルチビットセルの位置、P/Eサイクル、プログラミング順序、リチャージ(recharge)有無、リチャージ(recharge)回数、時間経過、モニタリングセルの散布幅の変化程度などがあることは上述したとおりである。
【0049】
図3は、
図1のメモリ装置100の動作の他の例を示す図である。
図3は、閾値電圧および閾値電圧を有するマルチビットセルの個数の関係を示す。
第1データページがプログラムされた後、散布310に対応するマルチビットセルはデータ「11」を格納してもよい。
第1制御部130は、第1データページがプログラムされた後、散布320、散布330、散布340に対応するマルチビットセルを第1グループとして選択してもよく、散布321、散布331、散布341に対応するマルチビットセルを第2グループとして選択してもよい。
【0050】
第2制御部140は、第1グループとして選択されたマルチビットセルに対して電圧レベル351、電圧レベル353を読み出し電圧レベルとして設定してもよく、第2グループとして選択されたマルチビットセルに対して電圧レベル352、電圧レベル354を読み出し電圧レベルとして設定してもよい。
【0051】
第2制御部140は、第1グループとして選択されたマルチビットセルに対して電圧レベル351、電圧レベル353を用いてインターナルリード(internal read)動作を実行してもよい。第2制御部140は、第1グループとして選択されたマルチビットセルのうち、散布320に対応するマルチビットセルの閾値電圧状態をインターナルリード(internal read)動作結果を用いて第1閾値電圧状態として識別してもよい。第2制御部140は、第1グループとして選択されたマルチビットセルのうち、散布330に対応するマルチビットセルの閾値電圧状態をインターナルリード(internal read)動作結果を用いて第2閾値電圧状態として識別してもよい。第2制御部140は、第1グループとして選択されたマルチビットセルのうち、散布340に対応するマルチビットセルの閾値電圧状態をインターナルリード(internal read)動作結果を用いて第3閾値電圧状態として識別してもよい。
【0052】
第2制御部140は、第2グループとして選択されたマルチビットセルに対して電圧レベル352、電圧レベル354を用いてインターナルリード(internal read)動作を実行してもよい。第2制御部140は、第2グループとして選択されたマルチビットセルのうち、散布321に対応するマルチビットセルの閾値電圧状態をインターナルリード(internal read)動作結果を用いて第1閾値電圧状態として識別してもよい。第2制御部140は、第2グループとして選択されたマルチビットセルのうち、散布331に対応するマルチビットセルの閾値電圧状態をインターナルリード(internal read)動作結果を用いて第2閾値電圧状態として識別してもよい。第2制御部140は、第2グループとして選択されたマルチビットセルのうち、散布341に対応するマルチビットセルの閾値電圧状態をインターナルリード(internal read)動作結果を用いて第3閾値電圧状態として識別してもよい。
【0053】
実施形態によっては、第1制御部130は、第1データページがプログラムされたマルチビットセルのうち、第1ワードライン(word line)に連結したマルチビットセルを第1グループとして設定し、第2ワードラインに連結したマルチビットセルを第2グループとして設定してもよい。実施形態によっては、メモリページ111は、1つのワードラインに連結したマルチビットセルの集合であってもよい。互いに異なるワードラインに連結したマルチビットセルの特性は互いに異なり得るため、メモリ装置100はマルチビットセルが連結したワードラインによってインターナルリード(internal read)動作の読み出し電圧レベルを決定してもよい。
【0054】
実施形態によっては、第1制御部130は、第1データページがプログラムされたマルチビットセルのうち、偶数番目のビットライン(even bit line)に連結したマルチビットセルを第1グループとして設定し、奇数番目のビットライン(odd bit line)に連結したマルチビットセルを前記第2グループとして設定してもよい。even bit lineに連結したマルチビットセルの特性はodd bit lineに連結したマルチビットセルの特性と異なり得るため、メモリ装置100はマルチビットセルが連結したビットラインによってインターナルリード(internal read)動作の読み出し電圧レベルを決定してもよい。
【0055】
実施形態によっては、第1制御部130は、第1データページがプログラムされたマルチビットセルのうち、P/Eサイクル(P/E cycle)が基準値未満であるマルチビットセルを第1グループとして設定し、P/Eサイクル(P/E cycle)が前記基準値以上であるマルチビットセルを第2グループとして設定してもよい。P/Eサイクル(P/E cycle)はマルチビットセルがプログラムされて消去されたサイクルの回数を意味する。マルチビットセルのP/Eサイクル(P/E cycle)が増加するほど、マルチビットセルのチャージリテンション(charge retention)特性が劣化(degrade)することがある。メモリ装置100は、マルチビットセルのP/Eサイクル(P/E cycle)によってインターナルリード(internal read)動作の読み出し電圧レベルを決定してもよい。例えば、メモリ装置100は、P/Eサイクル(P/E cycle)が100以下であるマルチビットセルを第1グループとして選択し、P/Eサイクル(P/E cycle)が100よりも大きいマルチビットセルを第2グループとして選択してもよい。
【0056】
実施形態によっては、第1制御部130は、第1データページがプログラムされたマルチビットセルのうち、第1データページが第1時間区間の間にプログラムされたマルチビットセルを第1グループとして設定し、第1データページが第2時間区間の間にプログラムされたマルチビットセルを第2グループとして設定してもよい。メモリ装置100は、マルチビットセルがプログラムされる順序によってインターナルリード(internal read)動作の読み出し電圧レベルを決定してもよい。
【0057】
第1時間区間の間に第1データページがプログラムされたマルチビットセルは、第2時間区間の間に実行されるプログラミング動作によって所望しない影響を受けることがある。プログラミング動作が以前にプログラムされたマルチビットセルに影響を及ぼすメカニズムの例としては、プログラムディスターバンス(program disturbance)およびFGカップリング(Floating Gate coupling)などであってもよい。
【0058】
実施形態によっては、プログラミング部120は、各マルチビットセルのゲート端子(gate terminal)にプログラム電圧を印加して第1データページをプログラムしてもよい。このとき、第1制御部130は、第1データページがプログラムされたマルチビットセルのうち、プログラミング部120との距離が基準値未満であるマルチビットセルを第1グループとして設定し、プログラミング部120との距離が前記基準値以上であるマルチビットセルを前記第2グループとして設定してもよい。メモリ装置100は、プログラミング部120との距離によってインターナルリード(internal read)動作の読み出し電圧レベルを決定してもよい。ワードライン(word line)またはビットライン(bit line)の寄生抵抗(parasitic resistance)および寄生キャパシタンス(parasitic capacitance)のために、プログラム電圧が印加される経路が長いほど印加される電圧のレベルが異なってもよい。
【0059】
実施形態によっては、第1制御部130は、第1データページがプログラムされた各マルチビットセルのエラー統計を格納し、第1データページがプログラムされたマルチビットセルのうち、前記格納されたエラー統計が基準値未満であるマルチビットセルを第1グループとして設定し、前記格納されたエラー統計が前記基準値以上であるマルチビットセルを第2グループとして設定してもよい。メモリ装置100は、第1データページがプログラムされた各マルチビットセルのエラー統計に基づいて各マルチビットセルのインターナルリード(internal read)動作の読み出し電圧レベルを決定してもよい。
【0060】
実施形態によっては、第1制御部130は、第1データページがプログラムされた各マルチビットセルのリチャージ(recharge)回数を格納し、第1データページがプログラムされたマルチビットセルのうち、前記格納されたリチャージ(recharge)回数が基準値未満であるマルチビットセルを第1グループとして設定し、前記格納されたリチャージ(recharge)回数が前記基準値以上であるマルチビットセルを第2グループとして設定してもよい。メモリ装置100は、第1データページがプログラムされた各マルチビットセルのリチャージ(recharge)回数の合計に基づいて各マルチビットセルのインターナルリード(internal read)動作の読み出し電圧レベルを決定してもよい。
【0061】
図4は、
図1のメモリ装置100の動作のさらに他の例を示す図である。
図4を参照すれば、メモリ装置100は、1つのワードライン(word line)に連結した8つのマルチビットセル410〜480を第1グループおよび第2グループに分割してもよい。
【0062】
マルチビットセル410はワードラインおよびビットラインBL0に連結される。マルチビットセル420はワードラインおよびビットラインBL1に連結される。マルチビットセル430はワードラインおよびビットラインBL2に連結される。マルチビットセル440はワードラインおよびビットラインBL3に連結される。
【0063】
マルチビットセル450はワードラインおよびビットラインBL4に連結される。マルチビットセル460はワードラインおよびビットラインBL5に連結される。マルチビットセル470はワードラインおよびビットラインBL6に連結される。マルチビットセル480はワードラインおよびビットラインBL7に連結される。
【0064】
メモリ装置100は、イーブンビットライン(even bit line:BL0、BL2、BL4、BL6)に連結したマルチビットセル410、430、450、470を第1グループとして選択してもよく、オッドビットライン(odd bit line:BL1、BL3、BL5、BL7)に連結したマルチビットセル420、440、460、480を第2グループとして選択してもよい。
【0065】
図5は、
図1のメモリ装置100の動作のさらに他の例を示す図である。
図5を参照すれば、メモリ装置100は、4つのワードラインWL0、WL1、WL2、WL3および8つのビットラインBL0、BL1、BL2、BL3、BL4、BL5、BL6、BL7に連結した32のマルチビットセルを第1グループおよび第2グループに分割してもよい。
メモリ装置100は、ビットラインとは関係なく、ワードラインWL0、WL1に連結したマルチビットセルを第1グループとして選択してもよく、ワードラインWL2、WL3に連結したマルチビットセルを第2グループとして選択してもよい。
【0066】
図6は、本発明の他の実施形態に係るメモリプログラミング方法を示すフローチャートである。
図6を参照すれば、メモリプログラミング方法は、マルチビットセルに第1データページをプログラムする(S610)。
メモリプログラミング方法は、マルチビットセルを第1グループおよび第2グループに分割する(S620)。
メモリプログラミング方法は、第1読み出し電圧レベルおよび第2データページに基づいて第1グループの各マルチビットセルの目標閾値電圧区間を設定する(S630)。
メモリプログラミング方法は、第2読み出し電圧レベルおよび第2データページに基づいて第2グループの各マルチビットセルの目標閾値電圧区間を設定する(S640)。
メモリプログラミング方法は、マルチビットセルに第2データページをプログラムする(S650)。
【0067】
図7は、
図6のステップ(S630)の一例を詳細に示すフローチャートである。
図7を参照すれば、メモリプログラミング方法は、第1グループの各マルチビットセルの閾値電圧を第1読み出し電圧レベルと比較する(S710)。
メモリプログラミング方法は、第1グループの各マルチビットセルの閾値電圧状態情報を生成する(S720)。
メモリプログラミング方法は、閾値電圧状態情報および第2データページに基づいて第1グループの各マルチビットセルの目標閾値電圧区間を設定する(S730)。
【0068】
実施形態は、メモリセルの閾値電圧を変化させてデータを格納するメモリ装置に適用されてもよい。このような種類のメモリ装置の例として、フラッシュメモリ(flash memory)、EEPROM(Electrically Erasable Programmable Read Only Memory)、PRAM(Phase Shift Random Access Memory)、MRAM(Magnetic Random Access Memory)などを含んでもよい。
【0069】
なお、本発明に係るメモリプログラミング方法は、コンピュータにより実現される多様な動作を実行するためのプログラム命令を含むコンピュータ読取可能な記録媒体を含む。当該記録媒体は、プログラム命令、データファイル、データ構造などを単独または組み合わせて含んでもよく、記録媒体およびプログラム命令は、本発明の目的のために特別に設計されて構成されたものでもよく、コンピュータソフトウェア分野の技術を有する当業者にとって公知であり使用可能なものであってもよい。コンピュータ読取可能な記録媒体の例としては、ハードディスク、フロッピー(登録商標)ディスク及び磁気テープのような磁気媒体、CD−ROM、DVDのような光記録媒体、フロプティカルディスクのような磁気−光媒体、およびROM、RAM、フラッシュメモリなどのようなプログラム命令を保存して実行するように特別に構成されたハードウェア装置が含まれる。また、記録媒体は、プログラム命令、データ構造などを保存する信号を送信する搬送波を含む光または金属線、導波管などの送信媒体でもある。プログラム命令の例としては、コンパイラによって生成されるような機械語コードだけでなく、インタプリタなどを用いてコンピュータによって実行され得る高級言語コードを含む。前記したハードウェア要素は、本発明の動作を実行するために一以上のソフトウェアモジュールとして作動するように構成してもよく、その逆もできる。
【0070】
実施形態に係るフラッシュメモリ装置および/またはメモリコントローラは、多様な形態のパッケージを用いて実現されてもよい。例えば、本発明の実施形態に係るフラッシュメモリ装置および/またはメモリコントローラは、PoP(Package on Package)、Ball grid arrays(BGAs)、Chip scale packages(CSPs)、Plastic Leaded Chip Carrier(PLCC)、Plastic Dual In−Line Package(PDIP)、Die in Waffle Pack、Die in Wafer Form、Chip On Board(COB)、Ceramic Dual In−Line Package(CERDIP)、Plastic Metric Quad Flat Pack(MQFP)、Thin Quad Flatpack(TQFP)、Small Outline(SOIC)、Shrink Small Outline Package(SSOP)、Thin Small Outline(TSOP)、Thin Quad Flatpack(TQFP)、System In Package(SIP)、Multi Chip Package(MCP)、Wafer−level Fabricated Package(WFP)、Wafer−Level Processed Stack Package(WSP)などのようなパッケージを用いて実現されてもよい。
【0071】
フラッシュメモリ装置とメモリコントローラはメモリカードを構成してもよい。このような場合、メモリコントローラは、USB、MMC、PCI−E、SATA、PATA、SCSI、ESDI、またはIDEなどのような多様なインタフェースプロトコルのうちの1つを介して外部(例えば、ホスト)と通信するように構成されてもよい。
【0072】
フラッシュメモリ装置は、電力が遮断されても格納されたデータを維持することができる非揮発性メモリ装置である。セルラーフォン、PDAデジタルカメラ、ポータブルゲームコンソール、またはMP3Pのようなモバイル装置の使用増加に伴い、フラッシュメモリ装置はデータストレージだけでなくコードストレージとしてより広く用いられてもよい。フラッシュメモリ装置もHDTV、DVD、ルータ、またはGPSのようなホームアプリケーションに用いられてもよい。
【0073】
実施形態に係るコンピュータシステムは、バスに電気的に接続されたマイクロプロセッサ、ユーザインタフェース、ベースバンドチップセット(baseband chipset)のようなモデム、メモリコントローラ、またはフラッシュメモリ装置を含む。フラッシュメモリ装置にはマイクロプロセッサによって処理された/処理されるN−ビットデータ(Nは1またはそれよりも大きい整数)がメモリコントローラを介して格納されるであろう。実施形態に係るコンピュータシステムがモバイル装置である場合、コンピュータシステムの動作電圧を供給するためのバッテリが追加で提供されるであろう。
【0074】
実施形態に係るコンピュータシステムには応用チップセット(application chipset)、カメライメージプロセッサ(Camera Image Processor:CIS)、モバイルDRAMなどがさらに提供されてもよいことは、当分野において通常の知識を習得した者にとっては自明である。メモリコントローラとフラッシュメモリ装置は、例えば、データを格納するのに非揮発性メモリを用いるSSD(Solid State Drive/Disk)を構成してもよい。
【0075】
上述したように、本発明は限定された実施形態と図面によって説明されたが、本発明は上述した実施形態に限定されるものではなく、本発明が属する分野において通常の知識を有する者であれば、このような記載から多様な修正および変形が可能である。
したがって、本発明の範囲は説明された実施形態に限定されて定められてはならず、後述する特許請求の範囲だけでなく、この特許請求の範囲と均等なものによって定められなければならない。