(57)【要約】      （修正有）【課題】フラッシュメモリの信頼性を改善し個別のセルへのストレスを減少し得るデータを記憶する改善された方法を提供する。【解決手段】コントローラは、メモリセルの組の中に記憶されるべきデータを受け取り、メモリセルの組からのプログラムされるべきメモリセルの選択物にデータの第１の部分をマッピングする。プログラムされるべきセルの数は、セルの組の数よりも小さい。コントローラはさらに、データの第２の部分を、プログラムされるべきメモリセルの中にプログラムされるべき複数の電圧レベルへマッピングし、複数の電圧レベルのうちのそれぞれの電圧レベルにプログラムされるべきメモリセルをプログラミングすることによって、メモリセルの組の中にデータの第１の部分と第２の部分とを記憶する。【選択図】図２
2018022546.tif 000002
【特許請求の範囲】
【請求項１】
複数のメモリセルと、
メモリセルの組の中に記憶されるべきデータを受け取り、
メモリセルの前記組からのプログラムされるべきメモリセルの選択物に前記データの第１の部分をマッピングし、ここにおいて、プログラムされるべきセルの数ｋが前記組の中のセルの数ｎよりも小さい、
前記データの第２の部分を、プログラムされるべき前記メモリセルの中にプログラムされるべき複数の電圧レベルへとマッピングし、
前記複数の電圧レベルのうちのそれぞれの電圧レベルにプログラムされるべきメモリセルの前記選択物の各メモリセルをプログラミングすることによって、メモリセルの前記組の中に前記データの前記第１の部分と第２の部分とを記憶する
ように構成されるコントローラと
を備えるメモリデバイス。
【請求項２】
前記データの前記第１の部分と第２の部分とを記憶することが、プログラミングのために選択されなかったメモリセルの前記組の各メモリセルが、前記セルが消去されていることを示す電圧レベルを有することを確実にすることを備える、請求項１に記載のメモリデバイス。
【請求項３】
プログラムされるべきセルの数ｋ割る前記組の中のメモリセルの総数ｎが、次式に等しく、
【数１】
2018022546.tif 000026
ここにおいて、ｑは各メモリセルが占有し得る電圧レベルの総数である、
請求項１または２に記載のメモリデバイス。
【請求項４】
プログラムされるべきメモリセルの前記選択物への前記データの前記第１の部分の前記マッピングが、
前記データの前記第１の部分を１０進数ｍにマッピングすることと、
各インデックスｉkが、メモリセルの前記組へとプログラムされるべきそれぞれのメモリセルの位置を示す、インデックスｉkの所定の数ｋを決定することと
を備え、前記インデックスが次式を満足し、
【数２】
2018022546.tif 000027
ここにおいて、Ｃ（ｉx，ｘ）が、総数ｘの値からの、ｉxの別個の値の選択物のための２項係数であり、ｎ＞ｉk＞ｉk-1＞…＞ｉ1である、ここにおいて、ｎが組の中のメモリセルの総数である、
請求項１から３のいずれかに記載のメモリデバイス。
【請求項５】
インデックスｉkの前記所定の数ｋを決定することが、
（ａ）カウンタｘをｋと等しく設定し、さらなる１０進数ｍ’を前記１０進数ｍと等しく設定することと、
（ｂ）次式を満足する最大のインデックスｉxを決定することと、
【数３】
2018022546.tif 000028
（ｃ）次式であるように、前記さらなる１０進数ｍ’を更新することと、
【数４】
2018022546.tif 000029
（ｄ）前記カウンタｘが１に等しい場合、ｋ個のインデックス｛ｉ1、ｉ2、…、ｉk｝の組を出力し、そうでない場合、ステップｂ〜ｄを繰り返すことと
を備える、請求項４に記載のメモリデバイス。
【請求項６】
複数のメモリセルとコントローラとを備えるメモリデバイス中にデータを記憶する方法であって、前記コントローラが、
メモリセルの組の中に記憶されるべきデータを受け取ることと、
メモリセルの前記組からプログラムされるべきメモリセルの選択物に前記データの第１の部分をマッピングすることと、ここにおいて、プログラムされるべきセルの数ｋが前記組の中のセルの数ｎよりも小さい、
前記データの第２の部分を、プログラムされるべき前記メモリセルの中にプログラムされるべき複数の電圧レベルへとマッピングすることと、
前記複数の電圧レベルのうちのそれぞれの電圧レベルにプログラムされるべきメモリセルの組合せの各メモリセルをプログラミングすることによって、メモリセルの前記組の中に前記データの前記第１の部分と第２の部分とを記憶することと
を備える、方法。
【請求項７】
前記データの前記第１の部分と第２の部分とを記憶することが、プログラミングのために選択されなかったメモリセルの前記組の各メモリセルが、前記セルが消去されていることを示す電圧レベルを有することを確実にすることを備える、請求項６に記載の方法。
【請求項８】
プログラムされるべきセルの数ｋ割る前記組の中のメモリセルの総数ｎが、次式に等しく、
【数５】
2018022546.tif 000030
ここにおいて、ｑは各メモリセルが占有し得る電圧レベルの総数である、
請求項６または７に記載の方法。
【請求項９】
プログラムされるべきメモリセルの前記選択物への前記データの前記第１の部分の前記マッピングが、
前記データの前記第１の部分を１０進数ｍにマッピングすることと、
各インデックスｉxが、メモリセルの前記組へとプログラムされるべきそれぞれのメモリセルの位置を示す、インデックスｉxの所定の数ｋを決定することと
を備え、前記インデックスが次式を満足し、
【数６】
2018022546.tif 000031
ここにおいて、Ｃ（ｉx，ｘ）が、総数ｘの値からの、ｉxの別個の値の選択物のための２項係数であり、ｎ＞ｉk＞ｉk-1＞…＞ｉ1である、ここにおいて、ｎが前記組の中のメモリセルの総数である、
請求項６から８のいずれかに記載の方法。
【請求項１０】
インデックスｉkの前記所定の数ｋを決定することが、
（ａ）カウンタｘをｋと等しく設定し、さらなる１０進数ｍ’を前記１０進数ｍと等しく設定することと、
（ｂ）次式を満足する最大のインデックスｉxを決定することと、
【数７】
2018022546.tif 000032
（ｃ）次式であるように、前記さらなる１０進数ｍ’を更新することと、
【数８】
2018022546.tif 000033
（ｄ）前記カウンタが１に等しい場合、ｋ個のインデックス｛ｉ1、ｉ2、…、ｉk｝の組を出力し、そうでない場合、ステップｂ〜ｄを繰り返すことと
を備える、請求項９に記載の方法。
【請求項１１】
複数のメモリセルと、
メモリセルの組内のプログラムされるメモリセルのパターンを決定し、
前記プログラムされるメモリセルの電圧レベルを決定し、
前記プログラムされるメモリセルの前記パターンをデータの第１の部分にマッピングし、
前記プログラムされるメモリセルの前記電圧レベルをデータの第２の部分にマッピングする
ように構成されるコントローラと
を備えるメモリデバイス。
【請求項１２】
プログラムされるメモリセルの前記パターンを決定することが、前記複数のメモリセルのうちのどれが閾値電圧レベルを超える電圧レベルを有するのかを決定することを備える、請求項１１に記載のメモリデバイス。
【請求項１３】
前記閾値電圧レベルが予め定められる、または前記閾値電圧レベルが、正確に所定の数ｋのメモリセルが前記閾値電圧レベルを超える電圧レベルを有するように決定される、請求項１２に記載のメモリデバイス。
【請求項１４】
前記プログラムされるメモリセルの前記パターンを決定することが、各プログラムされるメモリセルについてのそれぞれのインデックスｉxを決定することを備え、各インデックスｉxが、メモリセルの前記組内の前記それぞれのプログラムされるメモリセルの場所を示し、
前記プログラムされるメモリセルの前記パターンをデータの第１の部分にマッピングすることが、
前記プログラムされるメモリセルの前記インデックスｉxから１０進数ｍを決定することと、ここにおいて、
【数９】
2018022546.tif 000034
ここにおいて、Ｃ（ｉx，ｘ）が、総数ｘの値からの、ｉxの別個の値の選択物のための２項係数であり、ｋがプログラムされるメモリセルの数であり、ｎ＞ｉk＞ｉk-1＞…＞ｉ1である、ここにおいて、ｎが前記組の中のメモリセルの総数である、
前記１０進数ｍをデータの前記第１の部分にマッピングすることと
を備える、
請求項１１から１３のいずれかに記載のメモリデバイス。
【請求項１５】
複数のメモリセルとコントローラとを備えるメモリデバイスからデータを読み取る方法であって、前記コントローラが、
メモリセルの組内のプログラムされるメモリセルのパターンを決定することと、
前記プログラムされるメモリセルの電圧レベルを決定することと、
前記プログラムされるメモリセルの前記パターンをデータの第１の部分にマッピングすることと、
前記プログラムされるメモリセルの前記電圧レベルをデータの第２の部分にマッピングすることと
を備える、方法。
【請求項１６】
プログラムされるメモリセルの前記パターンを決定することが、前記複数のメモリセルのうちのどれが閾値電圧レベルを超える電圧レベルを有するのかを決定することを備える、請求項１５に記載の方法。
【請求項１７】
前記閾値電圧レベルが予め定められる、または前記閾値電圧レベルが、正確に所定の数ｋのメモリセルｋが前記閾値電圧レベルを超える電圧レベルを有するように決定される、請求項１６に記載の方法。
【請求項１８】
前記プログラムされるメモリセルの前記パターンを決定することが、各プログラムされるメモリセルについてのそれぞれのインデックスｉxを決定することを備え、各インデックスｉxが、メモリセルの前記組内の前記それぞれのプログラムされるメモリセルの場所を示し、
前記プログラムされるメモリセルの前記パターンをデータの第１の部分にマッピングすることが、
前記プログラムされるメモリセルの前記インデックスｉxから１０進数ｍを決定することと、ここにおいて、
【数１０】
2018022546.tif 000035
ここにおいて、Ｃ（ｉx，ｘ）が、総数ｘの値からの、ｉxの別個の値の選択物のための２項係数であり、ｋがプログラムされるメモリセルの数であり、ｎ＞ｉk＞ｉk-1＞…＞ｉ1である、ここにおいて、ｎが前記組の中のメモリセルの総数である、
前記１０進数ｍをデータの前記第１の部分にマッピングすることと
を備える、
請求項１５から１７のいずれかに記載の方法。
【請求項１９】
添付図面を参照して、実質的に本明細書に記載されるようなデバイス。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、データを記憶し読み取るためのメモリデバイスと方法とに関する。詳細には、限定するものではないが、本開示は、データの第１の部分がプログラムされたメモリセルのパターンにマッピングされる、データを記憶し読み取るためのメモリデバイスと方法とに関する。
【背景技術】
【０００２】
２次元（２Ｄ）ＮＡＮＤフラッシュメモリは、電荷の変動するレベルを格納するようにプログラム可能であるセルへと編成されたフローティングゲートトランジスタを使用する。セルがプログラムされ得る様々な電圧レベルの数ｑは、セル毎にｌｏｇ2ｑ個のバイナリビットを表すことを可能にする。多くのそのようなセルは、論理ブロックへとグループ化される１つまたは複数の論理ページへとグループ化され得る。ページは、データを読み書きするための最も小さいアドレス可能な単位であり、一方ブロックは、最も小さい消去可能な単位である。
【０００３】
セルは、列を形成するために、直列に接続され得、選択トランジスタが各端部に配置される。列のグループは、選択トランジスタのために、一方がビット線と呼ばれ他方がソース線と呼ばれる共通の制御線を共有する傾向がある。ワード線は、フローティングゲートトランジスタの制御ゲートを一緒に接続することによって形成される。
【０００４】
各セルは、Ｑ＝｛ｓ0、…、ｓq-1｝におけるｑ個の論理状態のうちの１つへと設定され得、ここにおいて、ｓ0は消去状態（電荷なし）に対応し、一方残りの状態は、各々について様々な電荷を有するプログラムされた状態を表す。ｑ＝２、４、８の場合は、それぞれ、シングル、マルチ、およびトリプルレベルセル（ＳＬＣ、ＭＬＣおよびＴＬＣ）技術としても知られている。セルの論理状態は、そのフローティングゲートに格納される電荷を反映する電圧レベルへとマッピングされ、すなわち、ｓ0は最も低い電圧を反映し、一方ｓq-1は最も高い電圧を反映する。一般性を失うことなく、状態自体が電圧であると考えられ得る。
【０００５】
各セルは、個別の記憶媒体として取り扱われ得る。各セルがｑ個の状態のうちの１つであり得るので、各ｌｏｇ2ｑビットは、その電圧を対応する値に設定することによりセルへと記憶され得る。例えば、ｑ＝４の場合に、１１→ｓ0と、１０→ｓ1と、００→ｓ2と、０１→ｓ3とを有する。
【０００６】
一度プログラムされると、セルの電圧は、いくつかのプロセスからの乱れが生じ得る。ノイズの主な原因は、フローティングゲートトランジスタの物理的な劣化の結果である、ランダムな電信ノイズ（ＲＴＮ）および電荷漏洩である。
【０００７】
ノイズに加えて、高い電圧でプログラムされたセルに近接したセルは、寄生容量結合を被ることになる。これにより、プログラムされたセルの電圧シフトが隣接セルの電圧シフトを引き起こすことになる。この効果は、セル間干渉（ＣＣＩ）と呼ばれる。セル間干渉は、デバイスの密度が増加するにつれてより強くなる。
【０００８】
さらに、メモリセルの反復されるプログラミングおよび消去は、経時的なセル消耗をもたらし得る。これは、データがもはや確実には取り出され得なくなる前にフラッシュメモリが有限数のプログラム−消去サイクルを有する傾向があることを意味する。
【０００９】
したがって、デバイス信頼性を改善し個別のセルへのストレスを減少し得るデータを記憶する改善された方法を提供する必要がある。
【００１０】
本発明の態様は、単に例としてなされ図面とともに行われる、以下の詳細な記載から、より十分に理解され、諒解されることになる。
【図面の簡単な説明】
【００１１】
【図１】データを記憶する方法を示す図。
【図２】一態様に従って、セル位置プログラミング方式の下でデータが記憶されるプロセスを示す図。
【図３】一態様に従って、データを記憶する方法を示す図。
【図４】一態様に従って、プログラムされるべきセルインデックスを決定する方法を示す図。
【図５】一態様に従って、セル位置プログラムされたメモリからデータを読み取る方法を示す図。
【図６】一態様に従って、固定閾値を使用してプログラムされたセルの位置を決定する方法を示す図。
【図７】一態様に従って、ｋ個のプログラムされたセルの場所を決定するためのさらなる方法を示す図。
【図８】振幅プログラミング（ＡＰ）方式を使用した最下位ビット（ＬＳＢ）ページについてのページ誤り率と比較した、セル位置プログラミング（ＣＬＰ）方式を使用したインデックスページについてのページ誤り率を示す図。
【図９】ｑの様々な値についての、プログラムされたセルの割合ｔの関数としての、ＣＬＰ方式の（ｎ→∞のときの）漸近的な記憶効率を示す図。
【図１０】一態様によるメモリデバイスを示す図。
【発明を実施するための形態】
【００１２】
第１の態様によれば、複数のメモリセルと、メモリセルの組の中に記憶されるべきデータを受け取り、メモリセルの組からのプログラムされるべきメモリセルの選択物にデータの第１の部分をマッピングするように構成されるコントローラとを備えるメモリデバイスであって、ここにおいて、プログラムされるべきセルの数ｋが組の中のセルの数ｎよりも小さい、メモリデバイスが提供される。コントローラは、データの第２の部分を、プログラムされるべきメモリセルの中にプログラムされるべき複数の電圧レベルへとマッピングし、複数の電圧レベルのうちのそれぞれの電圧レベルにプログラムされるべきメモリセルの選択物の各メモリセルをプログラミングすることによって、メモリセルの組の中にデータの第１の部分と第２の部分とを記憶するようにさらに構成される。
【００１３】
データを第１の部分と第２の部分とに分割し、第１の部分をプログラムされるメモリセルの選択物（プログラムされるメモリセルの特定のパターン）の形で記憶することによって、消去された状態のセルの数を増加することによりセル間干渉が減少され得る。本態様では、「プログラムされるメモリセル」とは、消去状態を示すものより上の電圧レベルにプログラムされる任意のメモリセルのことを指す。
【００１４】
メモリは、例えばフラッシュメモリといった、不揮発性メモリであってよい。本態様では、データの第１の部分と第２の部分とが異なる、すなわち、入力データは、第１の部分と第２の部分とに分割される。
【００１５】
選択物は、メモリセルの組から取られる、メモリセルの一意のパターンまたは組合せであってよい。データの第１の部分を、プログラムされるべきメモリセルの選択物にマッピングすることによって、データの第１の部分が、プログラムされるべきメモリセルの位置を表すインデックスの形に符号化され得る。したがって、選択物は、各インデックスが、組の中のメモリセルの位置を示す、メモリセルのインデックスの組合せであってよい。メモリセルの組は、ＮＡＮＤメモリのワード線であってよい。プログラムされるべきセルの数ｋは、予め定められた数であってよい。
【００１６】
一態様によれば、データの第１の部分と第２の部分とを記憶することは、プログラミングのために選択されなかったメモリセルの組の各メモリセルが、セルが消去されていることを示す電圧レベルを有することを確実にすることを備える。これは、以前にプログラムされたメモリセルを消去すること、または消去されたセルを消去されたままに保つことを意味し得る。セルが消去されていることを示す電圧レベルは、最も低いプログラムされた状態（ｓ0）であると考えられ得る。
【００１７】
一態様によれば、プログラムされるべきセルの数ｋ割る組の中のメモリセルの総数ｎは、次式に等しい。
【００１８】
【数１】
2018022546.tif 000003
【００１９】
ここにおいて、ｑは、各メモリセルが占有し得る電圧レベルの総数である。これが、最大記憶効率を提供する。
【００２０】
さらなる態様によれば、プログラムされるべきメモリセルの選択物へのデータの第１の部分のマッピングは、データの第１の部分を１０進数ｍにマッピングすることと、各インデックスｉkが、メモリセルの組へとプログラムされるべきそれぞれのメモリセルの位置を示す、インデックスｉkの所定の数ｋを決定することとを備え、インデックスが次式を満足する。
【００２１】
【数２】
2018022546.tif 000004
【００２２】
ここにおいて、Ｃ（ｉx，ｘ）は、総数ｘの値からの、ｉxの別個の値の選択物のための２項係数であり、ｎ＞ｉk＞ｉk-1＞…＞ｉ1である、ここにおいて、ｎは組の中のメモリセルの総数である。したがって、データの第１の部分の、プログラムされるべきメモリセルの選択物へのマッピングは、組合せ数体系を利用できる。これは、プログラムされるべきメモリセルの選択物を決定するより有効な方法を提供する。インデックスは、０〜ｎ−１の範囲にあり得る。１０進数ｍへのマッピングは、２進数−１０進数変換を備え得る。
【００２３】
一態様によれば、インデックスｉkの所定の数ｋを決定することは、（ａ）カウンタｘをｋと等しく設定し、さらなる１０進数ｍ’を１０進数ｍと等しく設定することと、（ｂ）次式を満足する最大のインデックスｉxを決定することと、
【００２４】
【数３】
2018022546.tif 000005
【００２５】
（ｃ）次式であるように、さらなる１０進数ｍ’を更新することと、
【００２６】
【数４】
2018022546.tif 000006
【００２７】
（ｄ）カウンタが１に等しい場合、ｋ個のインデックス｛ｉ1、ｉ2、…、ｉk｝の組を出力し、そうでない場合、ステップｂ〜ｄを繰り返すこととを備える。
【００２８】
さらなる態様によれば、複数のメモリセルとコントローラとを備えるメモリデバイス中にデータを記憶する方法が提供され、方法は、コントローラが、メモリセルの組の中に記憶されるべきデータを受け取ることと、メモリセルの組からのプログラムされるべきメモリセルの選択物にデータの第１の部分をマッピングすることと、ここにおいて、プログラムされるべきセルの数ｋが組の中のセルの数ｎよりも小さい、データの第２の部分を、プログラムされるべきメモリセルの中にプログラムされるべき複数の電圧レベルへとマッピングすることと、複数の電圧レベルのうちのそれぞれの電圧レベルに、プログラムされるべきメモリセルの組合せの各メモリセルをプログラミングすることによって、メモリセルの組の中にデータの第１の部分と第２の部分とを記憶することとを備える。
【００２９】
一態様によれば、データの第１の部分と第２の部分とを記憶することは、プログラミングのために選択されなかったメモリセルの組の各メモリセルが、セルが消去されていることを示す電圧レベルを有することを確実にすることを備える。
【００３０】
さらなる態様によれば、プログラムされるべきセルの数ｋ割る組の中のメモリセルの総数ｎは、次式に等しい。
【００３１】
【数５】
2018022546.tif 000007
【００３２】
ここにおいて、ｑは各メモリセルが占有し得る電圧レベルの総数である。
【００３３】
一態様によれば、プログラムされるべきメモリセルの選択物へのデータの第１の部分のマッピングは、データの第１の部分を１０進数ｍにマッピングすることと、各インデックスｉxが、メモリセルの組へとプログラムされるべきそれぞれのメモリセルの位置を示す、インデックスｉxの所定の数ｋを決定することとを備え、インデックスが次式を満足する。
【００３４】
【数６】
2018022546.tif 000008
【００３５】
ここにおいて、Ｃ（ｉx，ｘ）は、総数ｘの値からの、ｉxの別個の値の選択物のための２項係数であり、ｎ＞ｉk＞ｉk-1＞…＞ｉ1である、ここにおいて、ｎは組の中のメモリセルの総数である。
【００３６】
さらなる態様によれば、インデックスｉkの所定の数ｋを決定することは、（ａ）カウンタｘをｋと等しく設定し、さらなる１０進数ｍ’を１０進数ｍと等しく設定することと、（ｂ）次式を満足する最大のインデックスｉxを決定することと、
【００３７】
【数７】
2018022546.tif 000009
【００３８】
（ｃ）次式であるように、さらなる１０進数ｍ’を更新することと、
【００３９】
【数８】
2018022546.tif 000010
【００４０】
（ｄ）カウンタｘが１に等しい場合、ｋ個のインデックス｛ｉ1、ｉ2、…、ｉk｝の組を出力し、そうでない場合、ステップｂ〜ｄを繰り返すこととを備える。
【００４１】
さらなる態様によれば、複数のメモリセルと、メモリセルの組内のプログラムされるメモリセルのパターンを決定し、プログラムされるメモリセルの電圧レベルを決定し、プログラムされるメモリセルのパターンをデータの第１の部分にマッピングし、プログラムされるメモリセルの電圧レベルをデータの第２の部分にマッピングするように構成されるコントローラとを備えるメモリデバイスが提供される。したがって、メモリデバイスは、プログラムされるメモリセルのパターンの形で記憶されるデータをデコードできる。プログラムされるメモリセルのパターンの形でデータを記憶することによって、セル間干渉が減少され得る。
【００４２】
一態様によれば、プログラムされるメモリセルのパターンを決定することは、複数のメモリセルのうちのどれが閾値電圧レベルを超える電圧レベルを有するのかを決定することを備える。閾値電圧レベルは、プログラムされた状態から消去された状態を分離するレベルであってよい。
【００４３】
さらなる態様によれば、閾値電圧レベルは予め定められる、または閾値電圧レベルは、正確に所定の数ｋのメモリセルが、閾値電圧レベルを超える電圧レベルを有するように決定される。
【００４４】
さらなる態様によれば、プログラムされるメモリセルのパターンを決定することは、各プログラムされるメモリセルについてのそれぞれのインデックスｉxを決定することを備え、各インデックスｉxは、メモリセルの組内のそれぞれのプログラムされるメモリセルの場所を示す。プログラムされるメモリセルのパターンをデータの第１の部分にマッピングすることは、プログラムされるメモリセルのインデックスｉxから１０進数ｍを決定することと、ここにおいて、
【００４５】
【数９】
2018022546.tif 000011
【００４６】
ここにおいて、Ｃ（ｉx，ｘ）は、総数ｘの値からの、ｉxの別個の値の選択物のための２項係数であり、ｋは、プログラムされるメモリセルの数であり、ｎ＞ｉk＞ｉk-1＞…＞ｉ1である、ここにおいて、ｎは組の中のメモリセルの総数である、１０進数ｍをデータの第１の部分にマッピングすることとを備える。
【００４７】
１０進数は、組合せ数であってよい。データの第１の部分への１０進数のマッピングは、（例えば、１０進−２進変換を介した）ビットの組への１０進数のマッピングを備えてよい。
【００４８】
さらなる態様によれば、複数のメモリセルとコントローラとを備えるメモリデバイスからデータを読み取る方法が提供される。方法は、コントローラが、メモリセルの組内のプログラムされるメモリセルのパターンを決定することと、プログラムされるメモリセルの電圧レベルを決定することと、プログラムされるメモリセルのパターンをデータの第１の部分にマッピングすることと、プログラムされるメモリセルの電圧レベルをデータの第２の部分にマッピングすることとを備える。
【００４９】
さらなる態様によれば、プログラムされるメモリセルのパターンを決定することは、複数のメモリセルのうちのどれが閾値電圧レベルを超える電圧レベルを有するのかを決定することを備える。
【００５０】
一態様によれば、閾値電圧レベルは予め定められる、または閾値電圧レベルは、正確に所定の数ｋのメモリセルが、閾値電圧レベルを超える電圧レベルを有するように決定される。
【００５１】
一態様によれば、プログラムされるメモリセルのパターンを決定することは、各プログラムされるメモリセルについてのそれぞれのインデックスｉxを決定することを備え、各インデックスｉxは、メモリセルの組内のそれぞれのプログラムされるメモリセルの場所を示す。プログラムされるメモリセルのパターンをデータの第１の部分にマッピングすることは、プログラムされるメモリセルのインデックスｉxから１０進数ｍを決定することと、ここにおいて、
【００５２】
【数１０】
2018022546.tif 000012
【００５３】
ここにおいて、Ｃ（ｉx，ｘ）は、総数ｘの値からの、ｉxの別個の値の選択物のための２項係数であり、ｋはプログラムされるメモリセルの数であり、ｎ＞ｉk＞ｉk-1＞…＞ｉ1である、ここにおいて、ｎは組の中のメモリセルの総数である、１０進数ｍをデータの第１の部分にマッピングすることとを備える。
【００５４】
態様は、プログラムされるセルとプログラムされないセルとのパターンの形でデータを符号化することによって、セル間干渉が減少される、メモリ中にデータを記憶する手段を提供する。これは、各ワード線中でプログラムされるセルの数を減少させることにより、消去サイクルの数が減少されるので、フラッシュメモリの寿命をやはり改善する。
【００５５】
振幅プログラミング
図１は、データを記憶する方法を示す。図１は、ｎｌｏｇ2ｑビット  １１０が、ｑ元ベクトルＬ＝（ｌ1、…、ｌn）∈Ｑnへとマッピングされ（１２０）、パターンがワード線のｎ個のセル１３０へと書き込まれる、データを記憶する方法を記載する。情報を伝達するこの方法は、振幅プログラミング（ＡＰ）と呼ばれることになる。Ｘを、各セルが最初にプログラムされる電圧のベクトルを表すものとする。振幅プログラミングの場合、Ｘ＝Ｌ。
【００５６】
セル位置プログラミング
セル位置プログラミング（ＣＬＰ）は、情報を記憶する振幅プログラミング（ＡＰ）法とは、その基本的な動作原理が異なる。一態様によれば、固定数のセルがプログラムされない（すなわち、消去された）ままにされ、プログラムされるセルとプログラムされないセルとのパターンが、さらなる記憶データを表すために使用される。したがって、いくつかのセルがプログラムされないままにされるので、メモリデバイス内で電荷密度が減らされる。これが、セル間干渉および電荷漏洩の可能性を減少させる。さらに、プログラムされるセルの数を減少させることによって、プログラム−消去サイクルの数が減らされ、それにより、個別のセルへのストレスを減少させ、全体的なメモリデバイスの寿命を改善する。
【００５７】
議論したように、プログラムされるセルとプログラムされないセルとのパターンは、データをコンコードするために使用され得る。ｎ個のセルを有するワード線、および各セルがｑ個のプログラム可能状態を有するものと考えてほしい。全セルは、最初に、消去状態、ｓ0である。ｎ個のセルから、正確にｋ個のセルがプログラムされるために選択され、一方他の（ｎ−ｋ）個のセルは、消去状態ｓ0のままにされると仮定する。そのようなｋ個のセルを選択するために、Ｃ個の別個の可能な方法が存在し、ここにおいて、Ｃは、２項係数である。
【００５８】
【数１１】
2018022546.tif 000013
【００５９】
プログラミングのために選択されるセルの各々は、（プログラムされないセルのためのｓ0を含み総数ｑ個の可能な状態があるので）（ｑ−１）個の可能な状態のうちの１つにプログラムされ得る。Ｆm＝ｆ（ｆm,1、…、ｆm,k）が、プログラムされるセルのｍ個の組合せの各々についての状態を表すベクトルであり、ｍ∈Ｃ（ｎ，ｋ）およびｆm,k∈Ｑ＼｛ｓ0｝とする。これは、Ｃ（ｎ，ｋ）の可能な組合せの組からのｋ個のセルのあらゆる組合せｍにおいて、セルは、｛ｓ1、…、ｓq-1｝レベルのうちの１つにプログラムされ得ることを述べている。ｋ個のセルの各々は、総数ｑ−１個の可能な電圧レベルのうちの１つにプログラムされる。したがって、ｋ個のセルのうちの各組合せｍについて、総数（ｑ−１）k個の可能な電圧レベルがある。その結果、Ｃ（ｎ，ｋ）個の全ての可能な組合せにおいて、総数（ｑ−１）k×Ｃ（ｎ，ｋ）個の可能な電圧レベルが存在し、各組合せは、ｎ個の利用可能なセルのうちのｋ個をプログラムするために使用され得る一意のパターンを表す。これが、セル位置プログラミング（ＣＬＰ）と呼ばれる。
【００６０】
図２は、一態様に従って、セル位置プログラミング方式の下でデータが記憶されるプロセスを示す。ｂビットの着信ストリーム２１０は、ｂ＝ｂ1＋ｂ2であるように、それぞれ、
【００６１】
【数１２】
2018022546.tif 000014
【００６２】
ビットと
【００６３】
【数１３】
2018022546.tif 000015
【００６４】
ビットの２つのストリームへと分割される。
【００６５】
【数１４】
2018022546.tif 000016
【００６６】
を、プログラムされるセルのパターンのＣ（ｎ，ｋ）個の全ての別個の組合せの組であり、ここで、Ｉm＝（ｉm,1、…、ｉm,k）、ｉm,jは、ｎ個のセルのインデックスｉm,j∈｛１、…、ｎ｝であり、ｊ≠ｒでは、ｉm,j≠ｉm,rであるとする。
【００６７】
第１のｂ1ビットは、インデックスセレクタブロック２２０によって、プログラムされるべきｋ個のセルのインデックスの組を表す
【００６８】
【数１５】
2018022546.tif 000017
【００６９】
の要素Ｉへとマッピングされる。小さいｎおよび／またはｋでは、インデックスセレクタは、簡単なルックアップテーブルであってよいが、このテーブルは、ｋおよびｎが大きいと、非常に大きくなる。大きいｋおよびｎについて、別の技法が、下に記載されるように提供される。
【００７０】
他のｂ2ビットは、Ｉによってインデックスされるセルの各々がプログラムされるべき状態を表す、サイズｋの（ｑ−１）元ストリームＦへとマッピングされる（２３０）。
【００７１】
ｎ個のセルのサブセットをプログラムするために使用される組合せマッピングを形成するために、２つのマッピング方式Ｉ、Ｆが組み合わされる（２４０）。要素Ｉに存在しないセルは、レベルｓ0でプログラムされない（消去された）ままにされ、一方要素Ｉによって示されるセルの各々は、Ｆに従って、（ｑ−１）個の可能な状態（ｓ1〜ｓq-1）のうちの１つにプログラムされる。
【００７２】
図３は、一態様に従って、データを記憶する方法を示す。これは、セル位置プログラミングがメモリプログラミング方式へと収まることになる高レベルの図を描く。デジタルデータが受け取られる（３１０）。これは、次いで、図２の２１０〜２４０に描かれるセル選択方式３２０へと入力される。上で議論したように、これは、ｂビットをとり、ｎ個のセル閾値電圧値のベクトルを生成する。これらのセル閾値は、デジタル−アナログ変換器３３０に入力される。デジタル−アナログ変換器３３０は、これらの値をアナログ電圧閾値へと変換し、アナログ電圧閾値は、次いで、ｎ個のメモリセル３４０をプログラムするために使用される。
【００７３】
組合せマッピング
セル選択ステップ３２０のインデックスセレクタステップ２２０は、ビットｂ1を、プログラムされるべきセルを識別するインデックスの組へとマッピングするために、ルックアップテーブルを使用して実装され得る。しかし、これは、ｎおよび／またはｋの大きい値では長い時間がかかる可能性があり、非常に大きいルックアップテーブルを必要とすることになる。したがって、より効果的に、ビットのマッピングをｋ個のプログラムされるセルの一意のシーケンスにするために方法が提供される。この方法は、組合せ数を利用する。
【００７４】
組合せ数体系は、自然数とｋ個の組合せ（ｋ個の別個のインデックスの組）の間に、１対１マッピングを提供する。インデックスの各々の可能な組合せに、インデックス値が割り当てられる。組合せインデックスｍは次式に対応する。
【００７５】
【数１６】
2018022546.tif 000018
【００７６】
ここにおいて、値ｉ1〜ｉkは、組合せインデックスｍに従ってプログラムされるべきセルのインデックスであり、ｎ＞ｉk＞ｉk-1＞…＞ｉ1である。好適なインデックス値を計算することにより、所与の組合せインデックスｍについて、ベクトルＩm＝（ｉm,1、…、ｉm,k）が決定され得る。
【００７７】
図４は、一態様に従って、プログラムされるべきセルインデックスを決定する方法を示す。ビットの組ｂ1が、所与の組合せインデックスｍへと、例えば、２進−１０進変換器を介してマッピングされる（４１０）。いくつかのパラメータが、次いで初期化される（４２０）。カウンタｘがｋに設定され、１０進数ｍ’がｍに等しく設定される。
【００７８】
次式を満足する最大のセルインデックスｉxが見いだされる（４３０）。
【００７９】
【数１７】
2018022546.tif 000019
【００８０】
これは、任意の好適な方法によって見いだされ得、例えば、上の関係が満足されるまで、ｉxのより大きい値からｉxのより小さい値（または、その逆）に順に動かす、反復法が使用され得る。同様に、バイナリサーチアルゴリズムが実装され得る。ｍ’＝０である場合、ｉxは０に設定される。
【００８１】
ｉxの好適な値が一度見いだされたら、カウンタｘが１に等しいかどうかが決定される（４４０）。等しくない場合、そのセルインデックスについての２項係数が、ｍ’の現在の値から減算される（４５０）。
【００８２】
【数１８】
2018022546.tif 000020
【００８３】
カウンタｘは１だけ減らされ（４６０）、方法は、次のセルインデックスｉxを計算するためにステップ４３０に戻ってループする。
【００８４】
ステップ４４０でｘが１に等しいことが見いだされる場合、要求されたセルインデックスの全てが計算され、方法は、プログラムされるべきセルを表すベクトルＩ＝（ｉ1、ｉ2、…、ｉk）を出力する（４７０）。
【００８５】
上の方法は、入力ビットの組ｂ1に基づいてプログラムされるべきセルのインデックスを決定する、速くて効率的な手段を提供する。
【００８６】
例として、０〜３４を挙げられる３５個の可能な組合せがある、ｎ＝７およびｋ＝３であるとする。ここで、組合せインデックス値３１は、次式のように記載され得る。
【００８７】
【数１９】
2018022546.tif 000021
【００８８】
第１のセルインデックスｉ1が最初に決定される。この場合、Ｃ（６，３）＝２０は３１よりも小さく、一方Ｃ（７，３）＝３５は大きすぎるので、Ｃ（ｉ1，３）≦３１を満足するｉ1の最大値はｉ1＝６である。
【００８９】
次のセルインデックスｉ2は、今回は、Ｃ（ｉ2，２）≦ｍ’を満足し、ｍ’＝３１−２０＝１１である最大値を見いだすことによって決定される。この場合、これは、Ｃ（５，２）＝１０であるので、ｉ2＝５である。
【００９０】
最後に、ｉ3は、１１−１０＝１以下であるＣ（１，１）＝１であるので、１と決定される。
組合せインデックス値は、したがって、次式を表す。
【００９１】
【数２０】
2018022546.tif 000022
【００９２】
こうして、インデックス値３１は、セルインデックス｛６，５，１｝を有するｋ＝３セル位置を表すために使用され得る。
【００９３】
データ検出
メモリセルからデータを読み取るとき、残りのセルは、ｓ0に設定されていることが知られているので、プログラムされるｋ個のセルだけを読み取ることが効果的であり得る。ｋ個のプログラムされたストレージセル中に保持されたデータを決定する前に、正確にｋ個のセルが、読取りのために選択される必要がある。
【００９４】
図５は、一態様に従って、セル位置プログラムされたメモリからデータを読み取る方法を示す。最初に、ｋ個のプログラムされたセル（消去状態ｓ0でない状態を占有するもの）が検出される（５１０）。次いで、ｋ個のプログラムされたセルのインデックスが順序付けされ、プログラミングパターンから導出されるビットｂ1を獲得するために、組合せが戻ってマッピングされる（５２０）。メモリに書き込むときと等価なマッピングと同様に、これは、ルックアップテーブルまたは上に記載されたような組合せ数体系を介して達成され得る。例えば、プログラムされたセルのインデックス値が一度知られると、組合せインデックスｍは、次式を介して決定され得る。
【００９５】
【数２１】
2018022546.tif 000023
【００９６】
この組合せインデックスｍは、次いで、例えば、２進−１０進変換器を介してビットのシーケンスｂ1に戻してマッピングされ得る。
【００９７】
プログラムされたセルの位置は、これらのセルに記憶されたビットを決定するためにも使用される。各プログラムされたセルの中にプログラムされた電圧レベルが決定され（５３０）、これらの値は、セル自体の中に記憶されるビットｂ2を決定するために、それらのシンボル値に戻してマッピングされる（５４０）。
【００９８】
２つの組のビットｂ1とｂ2が、次いで、記憶されたビットの完全な組ｂを獲得するために組み合わされる（５５０）。
【００９９】
ｋ個のセルを選択するための１つの方法は、固定電圧閾値を使用することであり、これらの閾値の注意深い選択によって、いくつかのセルｂ（ここで、ｂ＞ｋ）からの電圧レベルを閾値と比較することにより、正確にｋ個のプログラムされたセル位置が識別され得る。
【０１００】
図６は、一態様に従って、固定閾値を使用してプログラムされたセルの位置を決定する方法を示す。メモリセル中のワード線が選択される（６１０）。ワード線中のｎ個のセルの各々は、次いで、第１の閾値ｔ1と比較される（６２０）。セルの電圧レベルが閾値ｔ1以下である場合、セルは、プログラムされていない（消去）状態ｓ0であると決定される。セルの電圧レベルが第１の閾値を超える場合、セルは、プログラムされたとみなされる。
【０１０１】
この段階において、プログラムされたセルとプログラムされていないセルの位置が決定された（ｔ1を超える電圧レベルを有するセルがプログラムされたセルである）。これは、したがって、ｂ1を決定するために使用され得る。しかし、次いで方法は、プログラムされたセルについてのプログラムされた状態を決定するために進む。
【０１０２】
各プログラムされたセルの電圧レベルは、次いで、第２の閾値ｔ2と比較される（６３０）。セルの電圧レベルが第２の閾値以下である場合、セルは、第１のプログラムされた状態ｓ1であると決定される。そうでない場合、次いで、方法は、電圧を次の閾値と比較するために進む。この方法は、ｑ−１個の閾値の各々について継続する。セルの電圧が最も高い閾値ｔq-1以下でない場合、セルは、最も高いプログラムされた状態ｓq-1であると決定され、さもなければ、２番目に高い状態ｓq-2にあるとみなされる。
【０１０３】
図７は、一態様に従って、ｋ個のプログラムされたセルの場所を決定するためのさらなる方法を示す。ここでは、正確にｋ個のセルが検出されるまで、εの量だけ、閾値電圧ｔ1の反復調整が行われる。これは、電圧レベルが経時的にドリフトする場合であっても、正しいセルが読み取られることになることを保証する。
【０１０４】
方法は、ｔ1についての初期値を設定することによって開始する。これは予め定められてよい。次いで、全てのセルの電圧レベルがｔ1と比較され、ｔ1を超える電圧レベルを有するセルの数が決定される。正確にｋ個のセルが、ｔ1を超える電圧レベルを有するかどうかが決定される（７２０）。正確にｋ個のセルがｔ1を超える場合、これらのセルは、ｋ個のプログラムされたセルであると決定される。プログラミングパターンに基づいてｂ1ビットが決定されることを可能にするように、これらのセルの位置が出力され、（図６のステップ６３０〜６４０に示されるように）ｂ2ビットが決定されることを可能にするように、それらの正確なプログラミング状態を決定するために、固定基準値がプログラムされたセルに適用される（７３０）。
【０１０５】
ｔ1を超える電圧レベルを有するセルの数が正確にｋと等しくない場合に、どのようにして閾値ｔ1を調整するのかを決定するために、ｋ個より少ないセルがｔ1を超えるかどうかが決定される（７３０）。ｔ1を超えるセルの数がｋ個より少ない場合、閾値が所定の量εだけ下げられ（７５０）、さもなければ、閾値は、εだけ増やされる（７６０）。この方法は、次いで、正確にｋ個のセルが、ｔ1の新しい値を超える電圧レベルを有するかどうかを検査するために、ステップ７２０に戻る。したがって、閾値は、正確にｋ個のプログラムされたセルが位置を特定されるまで、反復的に適合される。
【０１０６】
本明細書に記載される態様は、データ記憶の既存の方法と比較したとき、いくつかの利点を提供する。すなわち以下である。
ｉ  ｋ＜n(q-1)／qであるとき、セルが被る平均的干渉が減少され、これは、より少ない検出誤差に変わる。
ｉｉ  １つのプログラム状態から別のものへとシフトするプログラムされたセルは誤差を生成しないので、プログラムされたセルのインデックスの組は、より堅牢となることになる。
ｉｉｉ  ｋ＝n(q-1)／qであるとき、ｋ最大検出器を使用すると、提案された方式は、誤って読み取られる記憶されたデータに対して、既存の方法よりも、より良好な耐性を有する。
ｉｖ  ｋ＜n(q-1)／qであるとき、反復されるプログラミングと消去とから生じるより高いストレスに、平均してより少ないセルがさらされることになるので、ストレージセルの長期的な劣化は平均してより遅くなる。
【０１０７】
図８は、振幅プログラミング（ＡＰ）方式を使用した最下位ビット（ＬＳＢ）ページについてのページ誤り率と比較した、セル位置プログラミング（ＣＬＰ）方式を使用したインデックスページについてのページ誤り率を示す。インデックスページは、プログラムされたセルのインデックスを記憶する。ＣＬＰの場合には、ページ中のセルの半分がｑ＝４でプログラムされた（プログラムされたセルの割合はｋ／ｎ＝０．５であった）。プログラム／消去（Ｐ／Ｅ）サイクルの数が増加すると（すなわち、デバイスが加齢すると）、提案された方式は、ＡＰ方式を越える、著しく良好な性能を有することが理解される。
【０１０８】
図９は、ｑの様々な値についての、プログラムされたセルの割合ｔの関数としての、ＣＬＰ方式の（ｎ→∞のときの）漸近的な記憶効率を示す。記憶効率は、セル中に記憶され得るビットの平均数と規定される。記憶効率は、メモリセル毎のプログラム可能状態の数ｑとともに増加することが理解され得る。ｑの各値についての最大記憶効率は、次式で獲得される。
【０１０９】
【数２２】
2018022546.tif 000024
【０１１０】
したがって、１〜８のｑについての最大記憶効率は、次で獲得される。
【０１１１】
【表１】
2018022546.tif 000025
【０１１２】
これは、図９中の最大値の位置を介して理解され得る。
【０１１３】
図１０は、一態様によるメモリデバイスを示す。デバイス８００は、データを受け取り出力するためのインターフェース８１０と、データを記憶するためのメモリ８２０と、メモリデバイス８００中のデータの記憶を管理するためのコントローラ８３０とを備える。
インターフェース８１０は、モニタ、プリンタ、キーボード、他のコンピュータなどの他のインターフェースとインターフェース接続するように構成される。インターフェース８１０は、外部電子機器とインターフェース接続するために、単一のポートからなってよく、または複数のポートを備えてよい。図１０では、結合型入出力インターフェース８１０が示されているが、代替態様では、インターフェース８１０は、分離型入出力インターフェースへと分割され得る。
【０１１４】
インターフェース８１０は、メモリ８２０中の記憶のため、コントローラ８３０にデータを提供するように構成される。あるいは、コントローラ８２０は、コントローラ８２０中で実施されるプロセスを通して、それ自体記憶されるデータを生成する場合がある。
【０１１５】
コントローラ８３０は、本明細書に記載されるようにメモリデバイス８００の機能を実装するように構成される。コントローラ８３０は、したがって、セル位置プログラミング方式に従って、メモリ８２０中にデータを記憶するため、メモリ８２０を制御するように構成される。コントローラ８３０は、セル位置プログラミング方式に従って、メモリ８２０からデータを読み取るようにやはり構成される。メモリ８２０から読み取られるデータは、それが出力され得るように、インターフェース８１０に提供され得る。あるいは、コントローラ８３０は、処理されたデータを記憶または出力する前に、メモリ８２０から読み取られるデータに処理を実施し得る。コントローラ８３０は、メモリ８２０中に記憶される実行可能なソフトウェアコードに基づいて、その機能を実行する。
【０１１６】
メモリ８２０は、不揮発性ＮＡＮＤフラッシュメモリである。メモリ８２０は、いくつかのブロックへと分割される。ブロックは、メモリ８２０中の最も小さい消去可能な単位である。各ブロックは、各々がいくつかのメモリセルを備えるいくつかのページへと分割される。ページは、メモリ８２０中の最も小さいプログラム可能な単位である。各ページは、ｎ個のメモリセルを備える。コントローラ８３０は、ｎ個のメモリセルの各ページ中の、ｋ個のプログラムされたセルのパターンを記憶するように構成される。
【０１１７】
本明細書に記載されるセル位置プログラミング方式によれば、メモリ８２０中に記憶されるデータの一部は、プログラムされたメモリセルとプログラムされないメモリセルの特定のパターンの形で記憶される。総数ｎ個のメモリセルのうちのｋ個のサブセットだけをプログラムされるように強い、残りをプログラムされないままとすることによって、各組合せが一意の状態を表すので、ｋ個のプログラムされたセルの位置により追加の情報が伝達される。マルチレベルフラッシュメモリの例では、セルが、プログラムされない（消去）状態以外の様々な状態にプログラムされ得るので、ｋ個のプログラムされたセルの閾値電圧レベルに、情報が記憶され得る。
【０１１８】
この方式は、プログラミングの従来の方法と比較したとき、０．９ほどの高さの記憶効率比を達成できる。記憶効率のこの小さい低下が、デバイスの信頼性に著しい利益をもたらす。ブロック中のセルのサブセットを高いプログラム電圧にかけることだけで、個別のセルへのストレスが減少され、意義深いことには、深刻なセル間干渉の可能性がやはり減少される。
【０１１９】
詳細には、本明細書に記載された方法は、より少ないセルが電荷を格納するので、セル間の干渉の減少を提供する。平均して、各セルは、プログラムと消去のサイクルの数が減らされるので（２組のデータの記憶の間に多くのセルが消去されたままなので）、メモリデバイス８００の寿命の増加も存在する。さらに、プログラムされたセルのパターンの形で記憶されるデータは、プログラムされたセルのいずれかが１つのプログラム状態から別のものへシフトすることによって影響を受けないので、この方式は、データを記憶するより信頼できる手段を提供する。
【０１２０】
セル位置プログラミングは、技術的に独断的でない。したがって、上の態様はＮＡＮＤフラッシュメモリを参照して記載されるが、代替の態様は、代替の記憶技術を利用する。
【０１２１】
特定の態様が記載されてきたが、態様は、例としてのみ提示されてきており、本発明の範囲を制限する意図はない。実際に、本明細書に記載される新規の方法およびデバイスは、様々な他の形で具体化され得、さらに本明細書に記載される方法およびシステムの形において、様々な省略、置換および変更がなされ得る。
【図１】
2018022546.tif 000036
【図２】
2018022546.tif 000037
【図３】
2018022546.tif 000038
【図４】
2018022546.tif 000039
【図５】
2018022546.tif 000040
【図６】
2018022546.tif 000041
【図７】
2018022546.tif 000042
【図８】
2018022546.tif 000043
【図９】
2018022546.tif 000044
【図１０】
2018022546.tif 000045
【手続補正書】
【提出日】平成29年12月20日(2017.12.20)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
複数のメモリセルと、
メモリセルの組の中に記憶されるべきデータを受け取り、
メモリセルの前記組からのプログラムされるべきメモリセルの選択物に前記データの第１の部分をマッピングし、ここにおいて、プログラムされるべきセルの数ｋが前記組の中のセルの数ｎよりも小さい、
前記データの第２の部分を、プログラムされるべき前記メモリセルの中にプログラムされるべき複数の電圧レベルへとマッピングし、
前記複数の電圧レベルのうちのそれぞれの電圧レベルにプログラムされるべきメモリセルの前記選択物の各メモリセルをプログラミングすることによって、メモリセルの前記組の中に前記データの前記第１の部分と第２の部分とを記憶するように構成されるコントローラと
を備えるメモリデバイス。
【請求項２】
前記データの前記第１の部分と第２の部分とを記憶することが、プログラミングのために選択されなかったメモリセルの前記組の各メモリセルが、前記セルが消去されていることを示す電圧レベルを有することを確実にすることを備える、請求項１に記載のメモリデバイス。
【請求項３】
プログラムされるべきセルの数ｋ割る前記組の中のメモリセルの総数ｎが、次式に等しく、
【数１】
2018022546.tif 000046
ここにおいて、ｑは各メモリセルが占有し得る電圧レベルの総数である、
請求項１または２に記載のメモリデバイス。
【請求項４】
プログラムされるべきメモリセルの前記選択物への前記データの前記第１の部分の前記マッピングが、
前記データの前記第１の部分を１０進数ｍにマッピングすることと、
各インデックスｉkが、メモリセルの前記組へとプログラムされるべきそれぞれのメモリセルの位置を示す、インデックスｉkの所定の数ｋを決定することと
を備え、前記インデックスが次式を満足し、
【数２】
2018022546.tif 000047
ここにおいて、Ｃ（ｉx，ｘ）が、総数ｘの値からの、ｉxの別個の値の選択物のための２項係数であり、ｎ＞ｉk＞ｉk-1＞…＞ｉ1である、ここにおいて、ｎが組の中のメモリセルの総数である、
請求項１から３のいずれかに記載のメモリデバイス。
【請求項５】
インデックスｉkの前記所定の数ｋを決定することが、
（ａ）カウンタｘをｋと等しく設定し、さらなる１０進数ｍ’を前記１０進数ｍと等しく設定することと、
（ｂ）次式を満足する最大のインデックスｉxを決定することと、
【数３】
2018022546.tif 000048
（ｃ）次式であるように、前記さらなる１０進数ｍ’を更新することと、
【数４】
2018022546.tif 000049
（ｄ）前記カウンタｘが１に等しい場合、ｋ個のインデックス｛ｉ1、ｉ2、…、ｉk｝の組を出力し、そうでない場合、ステップｂ〜ｄを繰り返すことと
を備える、請求項４に記載のメモリデバイス。
【請求項６】
複数のメモリセルとコントローラとを備えるメモリデバイス中にデータを記憶する方法であって、前記コントローラが、
メモリセルの組の中に記憶されるべきデータを受け取ることと、
メモリセルの前記組からプログラムされるべきメモリセルの選択物に前記データの第１の部分をマッピングすることと、ここにおいて、プログラムされるべきセルの数ｋが前記組の中のセルの数ｎよりも小さい、
前記データの第２の部分を、プログラムされるべき前記メモリセルの中にプログラムされるべき複数の電圧レベルへとマッピングすることと、
前記複数の電圧レベルのうちのそれぞれの電圧レベルにプログラムされるべきメモリセルの組合せの各メモリセルをプログラミングすることによって、メモリセルの前記組の中に前記データの前記第１の部分と第２の部分とを記憶することと
を備える、方法。
【請求項７】
前記データの前記第１の部分と第２の部分とを記憶することが、プログラミングのために選択されなかったメモリセルの前記組の各メモリセルが、前記セルが消去されていることを示す電圧レベルを有することを確実にすることを備える、請求項６に記載の方法。
【請求項８】
プログラムされるべきセルの数ｋ割る前記組の中のメモリセルの総数ｎが、次式に等しく、
【数５】
2018022546.tif 000050
ここにおいて、ｑは各メモリセルが占有し得る電圧レベルの総数である、
請求項６または７に記載の方法。
【請求項９】
プログラムされるべきメモリセルの前記選択物への前記データの前記第１の部分の前記マッピングが、
前記データの前記第１の部分を１０進数ｍにマッピングすることと、
各インデックスｉxが、メモリセルの前記組へとプログラムされるべきそれぞれのメモリセルの位置を示す、インデックスｉxの所定の数ｋを決定することと
を備え、前記インデックスが次式を満足し、
【数６】
2018022546.tif 000051
ここにおいて、Ｃ（ｉx，ｘ）が、総数ｘの値からの、ｉxの別個の値の選択物のための２項係数であり、ｎ＞ｉk＞ｉk-1＞…＞ｉ1である、ここにおいて、ｎが前記組の中のメモリセルの総数である、
請求項６から８のいずれかに記載の方法。
【請求項１０】
インデックスｉkの前記所定の数ｋを決定することが、
（ａ）カウンタｘをｋと等しく設定し、さらなる１０進数ｍ’を前記１０進数ｍと等しく設定することと、
（ｂ）次式を満足する最大のインデックスｉxを決定することと、
【数７】
2018022546.tif 000052
（ｃ）次式であるように、前記さらなる１０進数ｍ’を更新することと、
【数８】
2018022546.tif 000053
（ｄ）前記カウンタが１に等しい場合、ｋ個のインデックス｛ｉ1、ｉ2、…、ｉk｝の組を出力し、そうでない場合、ステップｂ〜ｄを繰り返すことと
を備える、請求項９に記載の方法。
【請求項１１】
複数のメモリセルと、
メモリセルの組内のプログラムされるメモリセルのパターンを決定し、
前記プログラムされるメモリセルの電圧レベルを決定し、
前記プログラムされるメモリセルの前記パターンをデータの第１の部分にマッピングし
、
前記プログラムされるメモリセルの前記電圧レベルをデータの第２の部分にマッピングする
ように構成されるコントローラと
を備えるメモリデバイス。
【請求項１２】
プログラムされるメモリセルの前記パターンを決定することが、前記複数のメモリセルのうちのどれが閾値電圧レベルを超える電圧レベルを有するのかを決定することを備える、請求項１１に記載のメモリデバイス。
【請求項１３】
前記閾値電圧レベルが予め定められる、または前記閾値電圧レベルが、正確に所定の数ｋのメモリセルが前記閾値電圧レベルを超える電圧レベルを有するように決定される、請求項１２に記載のメモリデバイス。
【請求項１４】
前記プログラムされるメモリセルの前記パターンを決定することが、各プログラムされるメモリセルについてのそれぞれのインデックスｉxを決定することを備え、各インデックスｉxが、メモリセルの前記組内の前記それぞれのプログラムされるメモリセルの場所を示し、
前記プログラムされるメモリセルの前記パターンをデータの第１の部分にマッピングす
ることが、
前記プログラムされるメモリセルの前記インデックスｉxから１０進数ｍを決定するこ
とと、ここにおいて、
【数９】
2018022546.tif 000054
ここにおいて、Ｃ（ｉx，ｘ）が、総数ｘの値からの、ｉxの別個の値の選択物のための２項係数であり、ｋがプログラムされるメモリセルの数であり、ｎ＞ｉk＞ｉk-1＞…＞ｉ1である、ここにおいて、ｎが前記組の中のメモリセルの総数である、
前記１０進数ｍをデータの前記第１の部分にマッピングすることと
を備える、
請求項１１から１３のいずれかに記載のメモリデバイス。
【請求項１５】
複数のメモリセルとコントローラとを備えるメモリデバイスからデータを読み取る方法であって、前記コントローラが、
メモリセルの組内のプログラムされるメモリセルのパターンを決定することと、
前記プログラムされるメモリセルの電圧レベルを決定することと、
前記プログラムされるメモリセルの前記パターンをデータの第１の部分にマッピングすることと、
前記プログラムされるメモリセルの前記電圧レベルをデータの第２の部分にマッピングすることと
を備える、方法。
【請求項１６】
プログラムされるメモリセルの前記パターンを決定することが、前記複数のメモリセルのうちのどれが閾値電圧レベルを超える電圧レベルを有するのかを決定することを備える、請求項１５に記載の方法。
【請求項１７】
前記閾値電圧レベルが予め定められる、または前記閾値電圧レベルが、正確に所定の数ｋのメモリセルｋが前記閾値電圧レベルを超える電圧レベルを有するように決定される、
請求項１６に記載の方法。
【請求項１８】
前記プログラムされるメモリセルの前記パターンを決定することが、各プログラムされるメモリセルについてのそれぞれのインデックスｉxを決定することを備え、各インデックスｉxが、メモリセルの前記組内の前記それぞれのプログラムされるメモリセルの場所を示し、
前記プログラムされるメモリセルの前記パターンをデータの第１の部分にマッピングすることが、
前記プログラムされるメモリセルの前記インデックスｉxから１０進数ｍを決定することと、ここにおいて、
【数１０】
2018022546.tif 000055
ここにおいて、Ｃ（ｉx，ｘ）が、総数ｘの値からの、ｉxの別個の値の選択物のための２項係数であり、ｋがプログラムされるメモリセルの数であり、ｎ＞ｉk＞ｉk-1＞…＞ｉ1である、ここにおいて、ｎが前記組の中のメモリセルの総数である、
前記１０進数ｍをデータの前記第１の部分にマッピングすることと
を備える、
請求項１５から１７のいずれかに記載の方法。
【外国語明細書】
2018022546000001.pdf