JP2015514279A - プログラム状態とデータパターンとの間のマッピング - Google Patents

プログラム状態とデータパターンとの間のマッピング Download PDF

Info

Publication number
JP2015514279A
JP2015514279A JP2015505897A JP2015505897A JP2015514279A JP 2015514279 A JP2015514279 A JP 2015514279A JP 2015505897 A JP2015505897 A JP 2015505897A JP 2015505897 A JP2015505897 A JP 2015505897A JP 2015514279 A JP2015514279 A JP 2015514279A
Authority
JP
Japan
Prior art keywords
mapping
shell
program states
data pattern
cell
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.)
Granted
Application number
JP2015505897A
Other languages
English (en)
Other versions
JP5913735B2 (ja
Inventor
パルタサラティ,シヴァグナナム
カヤット,パトリック,アール.
ケイナック,ムスタファ,エヌ.
シェン,ツェンレイ
Original Assignee
マイクロン テクノロジー, インク.
マイクロン テクノロジー, インク.
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 マイクロン テクノロジー, インク., マイクロン テクノロジー, インク. filed Critical マイクロン テクノロジー, インク.
Publication of JP2015514279A publication Critical patent/JP2015514279A/ja
Application granted granted Critical
Publication of JP5913735B2 publication Critical patent/JP5913735B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/10Programming or data input circuits
    • G11C16/107Programming all cells in an array, sector or block to the same state prior to flash erasing
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/34Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
    • 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
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • 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/5642Sensing or reading circuits; Data output circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C14/00Digital stores characterised by arrangements of cells having volatile and non-volatile storage properties for back-up when the power is down
    • G11C14/0009Digital stores characterised by arrangements of cells having volatile and non-volatile storage properties for back-up when the power is down in which the volatile element is a DRAM cell
    • G11C14/0018Digital stores characterised by arrangements of cells having volatile and non-volatile storage properties for back-up when the power is down in which the volatile element is a DRAM cell whereby the nonvolatile element is an EEPROM element, e.g. a floating gate or metal-nitride-oxide-silicon [MNOS] transistor
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C14/00Digital stores characterised by arrangements of cells having volatile and non-volatile storage properties for back-up when the power is down
    • G11C14/0009Digital stores characterised by arrangements of cells having volatile and non-volatile storage properties for back-up when the power is down in which the volatile element is a DRAM cell
    • G11C14/0045Digital stores characterised by arrangements of cells having volatile and non-volatile storage properties for back-up when the power is down in which the volatile element is a DRAM cell and the nonvolatile element is a resistive RAM element, i.e. programmable resistors, e.g. formed of phase change or chalcogenide material
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • G11C7/1006Data managing, e.g. manipulating data before writing or reading out, data bus switches or control circuits therefor
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/14Conversion to or from non-weighted codes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2206/00Indexing scheme related to dedicated interfaces for computers
    • G06F2206/10Indexing scheme related to storage interfaces for computers, indexing schema related to group G06F3/06
    • G06F2206/1014One time programmable [OTP] memory, e.g. PROM, WORM
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7201Logical to physical mapping or translation of blocks or pages
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C13/00Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00
    • G11C13/0002Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00 using resistive RAM [RRAM] elements
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/04Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS
    • G11C16/0483Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS comprising cells having several storage transistors connected in series
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/10Programming or 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/5641Multilevel memory having cells with different number of storage levels

Abstract

本開示は、プログラム状態とデータパターンとの間でマップするための方法および装置を含む。1つの方法は、G個のメモリセルの群を、群のそれぞれのプログラム状態の組み合わせを受け取ったN単位データパターンに対応するコンステレーションポイントにマップするようにプログラムすることであって、群は、1メモリセルあたりN/G単位データを記憶するために使用される、プログラムすることを含み、コンステレーションポイントは、メモリセルの群のそれぞれのプログラム状態の組み合わせを、N単位データパターンにマップすることと関連するコンステレーションのいくつかのコンステレーションポイントのうちの1つであり、コンステレーションは、第1のマッピングシェルおよび第2のマッピングシェルを含み、第1および第2のマッピングシェルのそれぞれに対応するコンステレーションポイントは、Gに等しい次数の多項式に少なくとも部分的に基づいて決定される。【選択図】図3

Description

本開示は、概して、半導体メモリおよび方法に関し、より具体的には、プログラム状態とデータパターンとの間のマッピングに関する。
メモリデバイスは、典型的に、コンピュータまたは他の電子デバイスの中に、内部半導体集積回路として提供される。揮発性および不揮発性メモリを含む、多くの異なる種類のメモリがある。揮発性メモリは、そのデータ(例えば、情報)を維持するために電力を必要とする可能性があり、数ある中でも、ランダムアクセスメモリ(RAM)、ダイナミックランダムアクセスメモリ(DRAM)、およびシンクロナスダイナミックランダムアクセスメモリ(SDRAM)が挙げられる。不揮発性メモリは、給電されていないときに、記憶されたデータを保持することによって持続的なデータを提供することができ、数ある中でも、NAND型フラッシュメモリ、NOR型フラッシュメモリ、スタティックランダムアクセスメモリ(SRAM)、相変化ランダムアクセスメモリ(PCRAM)および抵抗性ランダムアクセスメモリ(RRAM(登録商標))等の抵抗変化型メモリ、ならびにスピントルクトランスファランダムアクセスメモリ(STTRAM)等の磁気ランダムアクセスメモリ(MRAM)が挙げられる。
メモリデバイスは、互いに組み合わせて、ソリッドステートドライブ(SSD)を形成することができる。ソリッドステートドライブとしては、数ある種々の他の種類の不揮発性および揮発性メモリの中でも、NAND型フラッシュメモリおよび/またはNOR型フラッシュメモリ等の不揮発性メモリが挙げられ、ならびに/またはDRAM等の揮発性メモリが挙げられる。フローティングゲートフラッシュデバイスおよび電荷トラップフラッシュ(CTF)デバイスを含むフラッシュメモリデバイスは、電荷を記憶するために使用される記憶ノード(例えば、フローティングゲートまたは電荷トラッピング構造)を有するメモリセルを備えることができ、広範囲にわたる電子的用途のための不揮発性メモリとして利用され得る。
メモリセルは、アレイアーキテクチャで配設することができ、また、所望の状態にプログラムすることができる。例えば、セルをいくつかのプログラム状態のうちの1つに配置するために、電荷を、メモリセルの記憶ノード(例えば、フローティングゲート)に配置するか、またはそこから除去することができる。一例として、シングルレベルセル(SLC)を、記憶されたデータ単位(例えば、2進単位の1または0)を表すことができる、2つのプログラム状態のうちの1つにプログラムすることができる。種々のフラッシュメモリセルは、2つを超えるプログラム状態にプログラムすることができ、それらは複数の記憶されたデータ単位(例えば、2進単位1111、0111、0011、1011、1001、0001、0101、1101、1100、0100、0000、1000、1010、0010、0110、または1110)を表すことができる。そのようなメモリセルは、マルチ状態セル、マルチ単位セル、またはマルチレベルセル(MLC)と称され得る。MLCは、各セルが1つを超える桁(例えば、1つを超えるビット)を表すことができるので、メモリセルの数を増加させることなく、より高い密度のメモリの製造を可能にすることができる。
いくつかのMLCは、記憶されたデータ単位の整数に対応しないプログラム状態の数(L)にプログラムすることができる。すなわち、セルに記憶することができるデータ単位の数(Log(L))は、記憶されたデータ単位の小数(例えば、小数個のビット)に対応することができる。
本開示のいくつかの実施形態に従う、少なくとも1つのメモリシステムを含むコンピューティングシステムの形態の装置のブロック図である。 本開示のいくつかの実施形態に従う、異なる数のプログラム状態にプログラム可能なメモリセルのプログラム状態に対応する閾値電圧を例示する図である。 本開示のいくつかの実施形態に従う、データパターンとプログラム状態との間のマッピング方法の機能ブロック図である。 図4Aは、本開示のいくつかの実施形態に従う、第1および第2のマッピングシェルを有し、データパターンとプログラム状態との間のマッピングと関連するコンステレーションを含む図を例示する図である。 図4Bは、本開示のいくつかの実施形態に従う、データパターンとプログラム状態との間のマッピングを例示する図である。図4Bで示される実施例は、2つのセルにわたる2次元(2D)マッピングをサポートする。 図4Cは、本開示のいくつかの実施形態に従う、データパターンとプログラム状態との間のマッピングを例示する図である。図4Cで示される実施例は、2つのセルにわたる2次元(2D)マッピングをサポートする。 図5Aは、本開示のいくつかの実施形態に従う、データパターンとプログラム状態との間のマッピングを例示する図である。図5Aで示される実施例は、4つのセルにわたる4次元(4D)マッピングをサポートする。 図5Bは、本開示のいくつかの実施形態に従う、データパターンとプログラム状態との間のマッピングを例示する図である。図5Bで示される実施例は、4つのセルにわたる4次元(4D)マッピングをサポートする。 図6Aは、本開示のいくつかの実施形態に従う、データパターンとプログラム状態との間のマッピングを例示する図である。 図6Bは、本開示のいくつかの実施形態に従う、データパターンとプログラム状態との間のマッピングを例示する図である。 図7Aは、本開示のいくつかの実施形態に従う、データパターンとプログラム状態との間のマッピングを例示する図である。図7Aで示される実施例は、8つのセルにわたる8次元(8D)マッピングをサポートする。 図7Bは、本開示のいくつかの実施形態に従う、データパターンとプログラム状態との間のマッピングを例示する図である。図7Bで示される実施例は、8つのセルにわたる8次元(8D)マッピングをサポートする。
本開示は、プログラム状態とデータパターンとの間でマップするための方法および装置を含む。1つの方法は、G個のメモリセルの群を、群のそれぞれのプログラム状態の組み合わせを受け取ったN単位データパターンに対応するコンステレーションポイントにマップするようにプログラムすることであって、群は、1メモリセルあたりN/G単位データを記憶するために使用される、プログラムすることを含み、コンステレーションポイントは、メモリセルの群のそれぞれのプログラム状態の組み合わせを、N単位データパターンにマップすることと関連するコンステレーションの、いくつかのコンステレーションポイントのうちの1つであり、コンステレーションは、第1のマッピングシェルおよび第2のマッピングシェルを含み、第1および第2のマッピングシェルのそれぞれに対応するコンステレーションポイントは、Gに等しい次数の多項式に少なくとも部分的に基づいて決定される。
本開示の実施形態は、例えば、1セルあたりの小数単位(1セルあたりの小数ビット)の構成に関連して、データパターンに対するプログラム状態の実質的に系統的なマッピング(例えば、割り当て)およびその逆も提供することができる。実施形態は、以前の1セルあたりの小数ビットのマッピングアルゴリズムと比較して、誤り検出および/または修正システム(例えば、数ある中でも、低密度パリティ検査(LDPC)符号やハミング符号等の誤り訂正符号(ECC)を利用するシステム)に悪影響を及ぼす可能性がある、誤り増倍および/または伝搬を制限することができる。実施形態はまた、種々他の利点の中でも、冗長性を加えることなく、また、いくつかの以前の手法(例えば、余分なパリティを生成する可能性がある基底変換マッピング)のように符号拡張を利用することなく、効果的な1セルあたりの小数ビットのマッピングを提供する等の利点も提供することができる。
本開示の以下の発明を実施するための形態では、本明細書の一部を形成し、本開示のいくつかの実施形態がどのように実践される場合があるかを中で例として示す、添付の図面を参照する。これらの実施形態は、当業者が本開示の実施形態を実践することを可能にするように十分な詳細が説明され、他の実施形態が利用されてもよいこと、および本開示の範囲を逸脱することなく、プロセス、電気的、および/または構造的変更が行われてもよいことが理解される。本明細書に使用される場合、指示子「M」、「N」、「n」、「A」、「B」、「G」、および「L」は、特に図面の参照番号に関して、そのように指定されるいくつかの特定の特徴を、本開示のいくつかの実施形態とともに含むことができることを示す。本明細書で使用される場合、「いくつかの」何かは、そのようなものの1つ以上を指すことができる。
本明細書中の図面は、上位の桁が、図面の図番号に対応し、残りの桁は、図面の中の要素または構成要素を識別するという、番号規則に従う。異なる図面間の同様な要素または構成要素は、同様な数字の使用によって識別され得る。例えば、100は、図1の要素「00」を参照し得、同様な要素が、図5では500として参照され得る。理解されるように、本明細書の多様な実施形態に示される要素は、本開示のいくつかの追加の実施形態を提供するように、追加、交換、および/または削除することができる。加えて、理解されるように、図面の中に提供される要素の比率および相対尺度は、本発明の実施形態を図示することを意図しており、限定の意味で解釈されてはならない。
図1は、本開示のいくつかの実施形態に従う、少なくとも1つのメモリシステム104を含む、コンピューティングシステム101の形態の装置のブロック図である。本明細書で使用される場合、メモリシステム104、コントローラ108、またはメモリデバイス110はまた、別々に「装置」ともみなされ得る。メモリシステム104は、例えば、ソリッドステートドライブ(SSD)とすることができ、また、ホストインターフェース106と、コントローラ108(例えば、プロセッサおよび/または他のコントロール回路)と、メモリシステム104のための記憶ボリュームを提供するいくつかのメモリデバイス110−1、・・・、110−M(例えば、NANDフラッシュデバイス等のソリッドステートメモリデバイス)とを含むことができる。いくつかの実施形態において、コントローラ108、メモリデバイス110−1〜110−M、および/またはホストインターフェース106は、単一のダイ上または単一のパッケージ内(管理型NANDアプリケーション)に物理的に配置することができる。また、いくつかの実施形態において、メモリ(例えば、メモリデバイス110−1〜110−M)は、単一のメモリデバイスを含むことができる。
図1で例示されるように、コントローラ108は、複数のホストチャネルを介してホストインターフェース106およびメモリデバイス110−1、・・・、110−Mに連結することができ、また、メモリシステム104とホスト102との間でデータを転送するために使用することができる。インターフェース106は、標準インターフェースの形態とすることができる。例えば、メモリシステム104がコンピューティングシステム100でデータ記憶に使用されるときに、インターフェース106は、数ある他のコネクタおよびインターフェースの中でも、シリアルアドバンストテクノロジーアタッチメント(SATA)、周辺機器相互接続エクスプレス(PCIe)またはユニバーサルシリアルバス(USB)とすることができる。しかしながら、一般に、インターフェース106は、メモリシステム104と、インターフェース106に対する互換レセプタを有するホスト102との間で、制御、アドレス、データ、および他の信号を渡すためのインターフェースを提供することができる。
ホスト102は、数ある種々の他の種類のホストの中でも、パーソナルラップトップコンピュータ、デスクトップコンピュータ、デジタルカメラ、携帯電話、メモリカードリーダ等の、ホストシステムとすることができる。ホスト102は、システムマザーボードおよび/またはバックプレーンを含むことができ、また、いくつかのメモリアクセスデバイス(例えば、いくつかのプロセッサ)を含むことができる。
数ある他の動作の中でも、コントローラ108は、メモリデバイス110−1、・・・、110−Mと通信して、データの読み出し、書き込み、および消去動作を制御することができる。コントローラ108は、例えば、いくつかのメモリデバイス110−1、・・・、110−Mへのアクセスを制御するための、および/またはホスト102とメモリデバイス110−1、・・・、110−Mとの間のデータ転送を容易にするための、ハードウェアおよび/またはファームウェア(例えば、1つ以上の集積回路)および/またはソフトウェアの形態のいくつかの構成要素を含むことができる。例えば、図1で例示される実施例において、コントローラ108は、データパッカー/アンパッカー構成要素112と、誤り符号化/復号化構成要素114とを含む。しかしながら、コントローラ108は、本開示の実施形態を不明瞭にしないために例示されない、種々の他の構成要素を含むことができる。また、いくつかの構成要素において、構成要素112および/または114は、コントローラ108の構成要素ではない場合がある(例えば、構成要素112/114は、独立した構成要素とすることができる)。
データパッカー/アンパッカー構成要素112は、本明細書で説明されるいくつかの実施形態に従う、メモリセルのプログラム状態とデータとの間のマッピングと関連して使用することができる。誤り符号化/復号化構成要素114は、例えば、ホスト102とメモリデバイス110−1、・・・、110−Mとの間で転送されるユーザデータを符号化/復号化することができる、LDPC符号器/復号器とすることができる。
メモリデバイス110−1、・・・、110−Mは、いくつかのメモリセルのアレイを含むことができる。アレイは、例えば、NANDアーキテクチャを有するフラッシュアレイとすることができる。しかしながら、実施形態は、特定の種類のメモリアレイまたはアレイアーキテクチャに限定されない。メモリセルは、例えば、いくつかの物理ページを含むいくつかのブロックに群化することができる。いくつかのブロックを1つのメモリセルのプレーンに含めることができ、また、1つのアレイがいくつかのプレーンを含むことができる。一例として、メモリデバイスは、1ページあたり8KB(キロバイト)のユーザデータ、1ブロックあたり128ページのユーザデータ、1プレーンあたり2048ブロック、および1デバイスあたり16プレーンを記憶するように構成され得る。
メモリデバイス110−1、・・・、110−Mが、NANDアーキテクチャを有するフラッシュアレイを備える実施形態において、アレイは、アクセス線、例えばワード線、および交差データ線、例えばビット線を備えることができる。アレイは、メモリセルの「ストリング」を備えることができ、該ストリングは、それぞれの文字列を共通ソースに選択的に連結するように構成されるソースセレクトゲートと、それぞれの文字列をそれぞれのビット線に選択的に連結するように構成されるドレインセレクトゲートとの間で、ソースからドレインに直列に接続される。メモリセルは、例えば、ソースと、ドレインと、電荷記憶ノード(例えば、フローティングゲート)と、制御ゲートを備えることができ、セルの「行」に対応するセルの制御ゲートは、一般に、ワード線に連結される。NORフラッシュアレイは、メモリセルのストリングがセレクトゲート間に並列に連結されていることを除いて、同じように構造化される。
当業者が認識するように、選択ワード線に連結されるフラッシュセルの群は、メモリセルのページとしてともにプログラムする、および/または読み出すことができる。プログラミング動作(例えば、書き込み動作)は、選択ワード線に連結された選択セルの閾値電圧(Vt)を目標の(例えば、所望の)プログラム状態に対応する所望のVtレベルまで高めるために、いくつかのプログラムパルス(例えば、16V〜20V)をその選択ワード線に印加することを含むことができる。読み出し動作は、選択セルのプログラム状態を決定するために、(例えば、セルに対応するワード線に印加される読み出し電圧に応答する)選択セルに連結されたビット線の電圧および/または電流の変化を感知することを含むことができる。
本明細書でさらに説明されるように、本開示のいくつかの実施形態において、メモリセルは、記憶されたデータ単位の整数(例えば、ビット)または記憶されたデータ単位の小数のいずれかに対応する多数のプログラム状態のうちの1つにプログラムすることができる。いくつかの実施形態において、それぞれが小数個のビットを記憶する、セルの群のいくつかのセルのプログラム状態は、セルの群が整数個のビットを記憶するように組み合わせることができる。例えば、それぞれが5つのプログラム状態のうちの1つにプログラムされ、よって、各セルが2.25ビットを記憶することができる、セルの群を考える。この例において、4つのセルの群の組み合わせたプログラム状態は、9ビット(2.25ビット/セル×4セル)に対応する。すなわち、9ビットデータパターンを、4つのセルの群に記憶することができる。このように、コントローラ108は、それぞれが1セルあたり小数個のビットを記憶するセルの群のプログラミングおよび/または読み出しを制御することができ、また、該群に記憶されたN単位データパターンを(例えば、ホスト102に)出力することができ、ここで、Nは、整数データ単位(例えば、ビット)である。群の決定されたプログラム状態の組み合わせが対応する、特定のデータパターン(例えば、ビットパターン)は、本明細書で説明されるいくつかの実施形態に従うマッピングアルゴリズムに基づいて決定することができる。
図2は、本開示のいくつかの実施形態に従う、異なる数のプログラム状態にプログラム可能なメモリセルのプログラム状態に対応する閾値電圧を例示する図表216である。メモリセルは、上で説明されるNAND型フラッシュメモリセルとすることができ、また、約−2V〜+3Vの電圧の範囲内の種々のVtレベルにプログラムすることができる。しかしながら、実施形態は、特定の種類のメモリセルに、または特定の動作電圧範囲に限定されない。
行218は、メモリセルがプログラムされ得るプログラム状態の数を示す。図2で示されるプログラム状態は、L0、L1、L2等のラベルが付され、各プログラム状態は、それぞれのプログラム状態に対応するVtレベルの分布を表す。いくつかの実施形態において、プログラム状態L0は、最も低いプログラム状態(例えば、最も低いVtレベルに対応するプログラム状態)とすることができ、また、消去動作の後にセルが最も低い状態になり得るので、消去状態と称され得る。しかしながら、実施形態は、そのように限定されない。
図2において、列220−1は、2つの異なるプログラム状態L0およびL1のうちの1つにプログラムされたメモリセルに対応し、また、1セルあたり1データ単位(例えば、ビット)を記憶することができる。列220−2は、3つの異なるプログラム状態L0、L1、およびL2のうちの1つにプログラムされたメモリセルに対応し、また、1セルあたり1.5データ単位を記憶することができる。列220−3は、4つの異なるプログラム状態L0、L1、L2、およびL3のうちの1つにプログラムされたメモリセルに対応し、また、1セルあたり2データ単位を記憶することができる。列220−4は、5つの異なるプログラム状態L0〜L4のうちの1つにプログラムされたメモリセルに対応し、また、1セルあたり2.25データ単位を記憶することができる。列220−5は、6つの異なるプログラム状態L0〜L5のうちの1つにプログラムされたメモリセルに対応し、また、1セルあたり2.5データ単位を記憶することができる。列220−6は、7つの異なるプログラム状態L0〜L6のうちの1つにプログラムされたメモリセルに対応し、また、1セルあたり2.75データ単位を記憶することができる。列220−7は、8つの異なるプログラム状態L0〜L7のうちの1つにプログラムされたメモリセルに対応し、また、1セルあたり3データ単位を記憶することができる。列220−8は、9つの異なるプログラム状態L0〜L8のうちの1つにプログラムされたメモリセルに対応し、また、1セルあたり3.125データ単位を記憶することができる。
2の累乗個のプログラム状態(例えば、2つのプログラム状態、4つのプログラム状態、8つのプログラム状態、16のプログラム状態等)にプログラム可能なメモリセルは、1セルあたりの整数個のビット(例えば、log(L)ビット/セル、ここで、Lは、セルがプログラム可能なプログラム状態の数である)を個々に記憶することができる。このように、各メモリセルのプログラム状態は、L個の異なるNビットデータパターンのうちの1つに直接マップすることができ、ここで、Nは、セルに記憶されるビットの整数個数である。例えば、2つのプログラム状態(L0およびL1)にプログラム可能なセルのプログラム状態は、0または1(例えば、1ビットデータパターン)にマップすることができ、4つのプログラム状態(L0〜L3)にプログラム可能なセルのプログラム状態は、それぞれ、00、01、10、および11(例えば、2ビットデータパターン)にマップすることができ、また、8つのプログラム状態(L0〜L7)にプログラム可能なセルのプログラム状態は、それぞれ、000、001、010、011、100、101、110、および111(例えば、3ビットデータパターン)にマップすることができる。
対照的に、2の非累乗個のプログラム状態にプログラム可能なメモリセルは、1セルあたり、小数(例えば、非整数)個のビットを個々に記憶する。このように、個々のセルのプログラム状態をNビットデータパターンにマッピングするのではなく、セルの群の個々のセルがプログラムされるL個のプログラム状態の組み合わせが、Nビットデータパターンにマッピングされ、ここで、Nは、群に記憶されるビットの整数個数である。例えば、3つのプログラム状態(L0、L1、およびL2)(例えば、1.5ビット/セル)にプログラム可能な2つのメモリセルの群のそれぞれのプログラム状態の組み合わせは、3ビット(例えば、1.5ビット/セル×2セル)データパターン(例えば、000、110、100等)にマップされる。同様に、5つのプログラム状態(L0〜L4)(例えば、2.25ビット/セル)にプログラム可能な4つのメモリセルの群のそれぞれのプログラム状態の組み合わせは、9ビット(例えば、2.25ビット/セル×4セル)データパターン(例えば、110011001、000001111、101010101等)にマップされ、9つの状態(L0〜L8)(例えば、3.125ビット/セル)にプログラム可能な8つのメモリセルの群のそれぞれのプログラム状態の組み合わせは、25ビット(例えば、3.125ビット/セル×8セル)のデータパターン(例えば、0000011111000001111100000、1010101010101010101010101、1111111111111111110000000等)にマップされる。
一般に、整数(N)個のデータ単位(例えば、ビット)を集合的に記憶するが、小数個のデータ単位を個々に記憶するセルの一群について、2の異なるN単位データパターンが、その群の対応する個数(例えば、2個)の異なるプログラム状態の組み合わせにマップされる。一例として、群が3ビットのデータ(例えば、1.5ビット/セル)を集合的に記憶するように、それぞれが3つのプログラム状態(L0、L1、L2)のうちの1つにプログラムされる、2つのセルの群を考える。このように、2(例えば、8)の異なる3ビットデータパターンが、2(例えば、8)の異なる群のプログラム状態の組み合わせにマップされる。
いくつかの実施形態では、小数単位のメモリセルの群と関連する、異なる可能なプログラム状態の組み合わせを表すために、コンステレーション(例えば、L×L平方のコンステレーション、ここで、Lは、セルがプログラム可能な、プログラム状態の数である)を使用することができる。例えば、各可能なプログラム状態の組み合わせは、特定のN単位データパターンにマップすることができる、異なるコンステレーションポイントに対応することができ、ここで、Nは、セルの群に記憶されるデータ単位の整数個数である。プログラム状態の組み合わせの数(例えば、コンステレーションポイントの数)は、Lに等しくすることができ、これは、セルの群に記憶されるN個のデータユニット数に対応する、2個の異なるN単位データパターン以上でなければならない。このように、L個のプログラム状態の組み合わせの1つ以上が、N単位データパターンにマップされ得ないか、またはL個のプログラム状態の組み合わせの1つ以上が、L個のプログラム状態の組み合わせのうちの1つ以上の他のものと同じ、N単位データパターンの1つにマップされ得る。本開示のいくつかの実施形態に従うマッピングコンステレーションの実施例は、図4Aに関連して下で説明される。
小数ユニット(例えば、小数ビット)のメモリセルの群に対応する、それぞれのプログラム状態の組み合わせに対するデータパターンの特定のマッピングおよびその逆も、変動し得る。すなわち、プログラム状態の組み合わせがデータパターンに割り当てられる様式は、一様でない場合がある。いくつかの以前の手法では、データパターンを特定のプログラム状態の組み合わせにマップすることと関連して、符号拡張をデータパターンに対して行うことができる。しかしながら、そのような符号拡張は、誤り修正符号の冗長性の増加につながり、容量を減少させ、また、誤り増倍および/または伝搬につながる可能性がある。対照的に、本開示のいくつかの実施形態は、例えば、符号拡張を行うことなく、データパターンとプログラム状態との間で、効果的かつ効率的にマップすることができる。このように、本開示のいくつかの実施形態は、以前の手法と比較して、減少させた複雑さを提供することができ、ならびに/または誤り増倍および/もしくは伝搬を低減および/もしくは防止することができる。
図3と関連して下でさらに説明するように、本開示のいくつかの実施形態は、各セルがN/Gデータ単位を記憶するように、G個のメモリセルの群に記憶される(例えば、書き込まれる)N単位データパターンを受け取ることを含むことができる。メモリセルは、それぞれをL個のプログラム状態のうちの1つにプログラム可能な、小数単位メモリセルとすることができる(例えば、N/Gは、非整数とすることができる)。Lは、1セルあたりN/Gデータ単位を記憶するために使用されるプログラム状態の最小数とすることができ、セルは、1セルあたりLog(L)データ単位を記憶することができる。一例として、9単位データパターン(例えば、N=9)を、4つのメモリセル(例えば、G=4)の群に記憶することができ、よって、各メモリセルは、1セルあたり2.25データ単位(例えば、N/G=2.25)を記憶する。この例では、1セルあたり2.25データ単位を記憶するために必要なプログラム状態の最小数は、5(例えば、L=5)である。すなわち、それぞれを5つのプログラム状態のうちの1つにプログラム可能な4つのメモリセルの群は、9単位データパターンを記憶することができる。4つのセルの群の特定のプログラム状態の組み合わせと、それらが対応するそれぞれの9単位(例えば、9ビット)データパターンとの間のマッピングは、本明細書で説明されるいくつかの実施形態に従って決定することができる。
いくつかの実施形態において、プログラム状態の組み合わせとデータパターンとの間のマッピングは、次数Gの多項式に基づき、ここで、Gは、データパターンに対応する整数個データ単位を記憶するために組み合わせられる、小数単位セルの数である。いくつかの実施形態において、多項式の第1項は、第1のマッピングシェルに対応し、多項式の第2項は、第2のマッピングシェルに対応し、各マッピングシェルは、いくつかのコンステレーションポイントに対応する。一例として、マッピングが基づく多項式は、式(A+B)とすることができ、Aは、第1項であり、また、第1のマッピングシェルのコンステレーションポイントの数であり、G×A(G−1)×Bは、第2項であり、また、第2のマッピングシェルのコンステレーションポイントの数に対応する。下でさらに説明するように、Aは、第1のマッピングシェルに対応するそれぞれのプログラム状態の組み合わせが決定される、プログラム状態の数とすることができ、Bは、第2のマッピングシェルに対応するそれぞれのプログラム状態の組み合わせが決定される、追加のプログラム状態の数(例えば、L個のプログラム状態の追加の数)とすることができる。このように、2つのマッピングシェルが使用される実施形態において、A+Bは、メモリセルがプログラム可能であるプログラム状態の数に等しい。一例として、Aは、2に等しく、「a」は、2が、メモリセルがプログラム可能であるプログラム状態の数(例えば、L)未満である、最大の2の累乗値であるような値である。例えば、6つの異なるプログラム状態にプログラム可能で、2.5ビット/セルを記憶するセルの場合、6未満である2の累乗には2が最も近いので、Aは、4に等しくなる。Aが4に等しいので、Bは、2(例えば、6−4)に等しい。このように、第1のマッピングシェルに対応するそれぞれのプログラム状態の組み合わせが決定されるプログラム状態の数は、4である。すなわち、メモリセルがプログラム可能である6つのプログラム状態(例えば、L0〜L5)のうちの最初の4つのプログラム状態(例えば、L0〜L3)の組み合わせだけが、第1のマッピングシェルのコンステレーションポイントに対応する。この例において、第2のマッピングシェルに対応するそれぞれのプログラム状態の組み合わせ、追加のプログラム状態の数は、2(例えば、B=2)である。このように、メモリセルがプログラム可能である6つのプログラム状態(例えば、L0〜L5)のうちの最後の2つのプログラム状態(例えば、L4およびL5)のうちの少なくとも1つを含む組み合わせだけが、第2のマッピングシェルのコンステレーションポイントに対応する。いくつかの実施形態において、第1のマッピングシェルに対応するA個のプログラム状態は、L個のプログラム状態の最も低いA個のプログラム状態(例えば、最も低いVtレベルに対応するプログラム状態)を含み、第2のマッピングシェルに対応するB個のプログラム状態は、最も低いA個のプログラム状態以外のプログラム状態を含む。
図3は、本開示のいくつかの実施形態に従う、データパターンとプログラム状態との間のマッピング方法の機能ブロック図である。図3で例示される方法は、図1で示されるデータパッカー/アンパッカー112等のデータパッキング構成要素を介して実現することができる。図3の335で、シンボルサイズ(例えば、Nビットシンボル)を形成することができる。シンボルサイズは、例えば、1セルあたり記憶されるビット数332(「bpc」として示される)を、整数個のビットを記憶するために必要なセルの最小数334(「nD」として示される)を乗じたものに対応することができる。例えば、メモリセルの群が1.5ビット/セルを記憶する場合、整数個のビットを記憶するために必要なセルの最小数は、2セルであり、これは、3ビットのシンボルサイズ(例えば、1.5ビット/セル×2セル)に対応する。Nビットのシンボルサイズは、2個の異なるNビットデータパターンが、セルの数334に対応する2個のそれぞれのプログラム状態の組み合わせ(例えば、2個のコンステレーションポイント)にマップされる(例えば、割り当てられる)ことを示す。
図3の338では、多項式(例えば、上で説明される(A+B))を使用して、決定されたシンボルサイズのデータパターンを2個のそれぞれのプログラム状態の組み合わせにマッピングするために必要なマッピングシェルの数を決定し、ならびに、特定のNビットデータパターンがマッピングシェルのどの数に対応するのかを決定することができる。データパターンが第1のマッピングシェル(例えば、「シェル[0]」)に対応するときには、マッパー340−1(「マップ[0]To_nD」として示される)が、Nビットデータパターンのそれぞれのビットを群のセルにマップする。図3において、マッパー340−1の出力「ビット_1D」は、群の第1のセルに割り当てられるNビットデータパターンのビットに対応し、マッパー340−1の出力「ビット_nD」は、群のn番目のセルに割り当てられるNビットデータパターンのビットに対応し、ここで、nは、群の中のセルの数(例えば1〜n)である。下でさらに説明するように、いくつかの実施形態では、データパターンを第1のマッピングシェルにマップするかどうかを決定するために、データパターンの(例えば、Nビットシンボルの)MSB(最上位ビット)が使用される。例えば、「0」のMSBは、データパターンを第1のマッピングシェルにマップすることを示すことができ、また、「1」のMSBは、データパターンをより高い次数のマッピングシェルにマップすることを示すことができる。データパターンが「n番目」のマッピングシェル(例えば、2番目または3番目のマッピングシェル等)に対応するときには、マッパー340−n(「マップ[n]To_nD」として示される)が、Nビットデータパターンのそれぞれのビットを群のセルにマップする。図3において、マッパー340−nの出力「ビット_1D」は、群の第1のセルに割り当てられるNビットデータパターンのビットに対応し、マッパー340−nの出力「ビット_nD」は、群のn番目のセルに割り当てられるNビットデータパターンのビットに対応する。
マッパー340−1〜340−nの出力は、344で多重化することができ、マッパー346(「ビットを状態にマップ」として示される)は、それぞれのセル(例えば、セル1〜nD)に割り当てられるビットをそれぞれのプログラム状態にマップすることができる。出力348−1(「状態_1D」として示される)は、n個のセルの群の第1のセルがプログラムされるプログラム状態を示し、出力348−n(「状態_nD」として示される)は、群のn番目のセルがプログラムされるプログラム状態を示し、よって、セル1〜nのプログラム状態の組み合わせを、利用される特定のシンボルサイズに対応する2個のデータパターンの適切なNビットデータパターンにマップする。
一例として、図3で示される方法は、図4A等にあるようなマッピングシェルを決定することと関連して使用することができ、該図4Aは、本開示のいくつかの実施形態に従って、データパターンとプログラム状態との間のマッピングに関連する第1および第2のマッピングシェルを有するコンステレーションを含む、図表450を例示する。図表450は、3ビットのデータ(例えば、1.5ビット/セル)を記憶する2つのセル(例えば、セル0およびセル1)の群に関連するコンステレーション(例えば、平方コンステレーション)を表し、よって、対応するシンボルサイズは、3ビットであり、これは、[2:0]として表すことができる。行451は、セル0(例えば、群の第1のセル)がプログラム可能である3つのプログラム状態(例えば、L0、L1、およびL2)を例示し、列452は、セル1(例えば、群の第2のセル)がプログラム可能である3つのプログラム状態(例えば、L0、L1、およびL2)を例示する。このように、図4Aのコンステレーションは、9つの可能なプログラム状態の組み合わせ(セル0状態;セル1状態)に対応する9つのコンステレーションポイントを含む(例えば、(L0;L0)、(L0;L1)、(L0;L2)、(L1;L0)、(L1;L1)、(L1;L2)、(L2;L0)、(L2;L1)、および(L2;L2))。
下に示される表1は、図4A〜4Cと関連して説明される実施例に関する構成情報を提供する。表1は、1セルあたり記憶されるビット数(「bpc」)(例えば、1.5)、メモリセルがプログラム可能である状態の数(「状態」)(例えば、3)、Nビットデータパターン(例えば、2)に対応する(Nは、シンボルサイズに対応する)セルの数(「セル/nD」)、2個のプログラム状態の組み合わせ(例えば、8)にマップするために必要なコンステレーションポイントの数(「コンステレーションポイント」)、第1のマッピングシェルに対応するプログラム状態の組み合わせを形成するために使用されるプログラム状態の数(「第1のシェル状態」)(例えば、2)、第1のマッピングシェルのコンステレーションポイントの数(「第1のシェルポイント」)(例えば、4)、第2のマッピングシェルに対応するプログラム状態の組み合わせを形成するために使用される追加のプログラム状態の数(「第2のシェル状態」)(例えば、1)、第2のマッピングシェルのコンステレーションポイントの数(「第2のシェルポイント」)(例えば、4)、およびパッキング密度(「パッキング密度」)(例えば、88.89%)を示す。パッキング密度は、(2bpc×nD)/(LnD)に等しく、ここで、bpcは、数がnD個のセルの群に記憶されるビット/セルの数であり、bpc×nDは、シンボルサイズ(例えば、Nビット)に対応し、Lは、セルの群がプログラム可能であるプログラム状態の数である。
Figure 2015514279
したがって、図4Aで示される実施例において、コンステレーションポイントの数、故に、異なるプログラム状態の組み合わせの数は9であり、該数は、8つの異なるNビット(例えば、3ビット)データパターン(例えば、2)を表すために必要なデータパターンの数よりも1つ大きい。このように、図4Aで示されるように、そのプログラム状態の組み合わせに対応するコンステレーションポイント(L2;L2)は、(例えば、図450で「×」によって示されるように)データパターンにマップされない。このように、パッキング密度は、100%未満である。一般に、より高いパッキング密度は、メモリ容量(例えば、フラッシュ容量)のより高い利用度に対応する。いくつかの実施形態において、データパターンにマップされない1つ以上のプログラム状態の組み合わせは、より高いプログラム状態の組み合わせ(例えば、より高いVtレベルに対応するプログラム状態を含むプログラム状態の組み合わせ)に対応し、これは、より高いプログラム状態に伴う電荷損失効果を防ぐ等の利点を提供することができる。
第1および第2のマッピングシェルのそれぞれのコンステレーションポイントの数は、上で説明される多項式(例えば、(A+B))の最初の2つの項を使用して決定することができ、Aは、第1項であり、第1のマッピングシェルのコンステレーションポイントの数を示し、G×A(G−1)×Bは、第2項であり、第2のマッピングシェルのコンステレーションポイントの数に対応する。図4Aの1.5ビット/セルの実施例において、Aは、2に等しく、Gは、2に等しく、Bは、1に等しい。このように、Aは、4に等しく、G×A(G−1)×Bは、4に等しい。上で説明されるように、Aは、第1のマッピングシェルに対応するそれぞれのプログラム状態の組み合わせが決定されるプログラム状態の数であり、Bは、第2のマッピングシェルに対応するそれぞれのプログラム状態の組み合わせが決定される追加のプログラム状態の数である。このように、この実施例では、最初の2つのプログラム状態(例えば、L0およびL1)の組み合わせが、第1のマッピングシェルの4つのコンステレーションポイントのそれぞれにマップされ、第2のマッピングシェルの4つのコンステレーションポイントを、最に高いプログラム状態(例えば、L2)を含むプログラム状態の組み合わせにマップする。すなわち、第2のマッピングシェルのプログラム状態の組み合わせは、プログラム状態L0またはL1を有する1つのセル、およびプログラム状態L2を有する1つのセルを含む。
図4Aで示されるように、第1のマッピングシェルの4つのコンステレーションポイントには0〜3が番号付けされ、それぞれのプログラム状態の組み合わせ(L0;L0)、(L0;L1)、(L1;L0)、および(L1;L1)に対応する。第2のマッピングシェルの4つのコンステレーションポイントには4〜7が番号付けされ、それぞれのプログラム状態の組み合わせ(L2;L0)、(L2;L1)、(L0;L2)、および(L1;L2)に対応する。10進値の0〜7は、それぞれの3ビットデータパターン000〜111に対応する。
図4Bおよび4Cは、それぞれ、異なる3ビットデータパターンが、第1および第2のマッピングシェルに対応するプログラム状態の組み合わせにマップされる様式を例示する。図表460−1は、第1のマッピングシェルに対応するマッピングを例示し、図表460−2は、第2のマッピングシェルに対応するマッピングを例示する。この実施例において、3ビットデータパターン(例えば、ビット[2:0]として表される)のMSB(例えば、ビット[2])は、データパターンを第1のシェルにマップするのか、または第2のシェルにマップするのかを示す。例えば、ビット[2]が「0」である(例えば、3ビットデータパターンの2進値が4未満である)場合は、データパターンを第1のシェルにマップし、ビット[2]が「1」である(例えば、3ビットデータパターンの2進値が4以上である)場合は、データパターンを第2のシェルにマップする。
第1のマッピングシェルに対応する図4Bのマッピングは、系統的である(例えば、よって、それらは、系統的な様式で決定することができる)。例えば、ビット[1]をセル[1]に割り当てることができ、また、ビット[0]をセル[0]に割り当てることができる(セルは、セル[1:0]として表される)。すなわち、図4Bで示されるように、データパターン[2:0]のビット[1:0]の2進値は、セル[1:0]のプログラム状態に直接対応する(例えば、「1」の2進値がプログラム状態L1に対応し、「0」の2進値がプログラム状態L0に対応する)。
第2のマッピングシェルに対応する図4Cのマッピングは、ほぼ系統的である(例えば、それらは、実質的に系統的な様式で決定することができる)。第1のマッピングシェルと異なり、3ビットデータパターン(例えば、シンボルサイズ)のビット[1:0]の2進値は、それぞれのセル[1:0]のプログラム状態に直接対応しないので、第2のマッピングシェルに対応するマッピングは、完全に系統的であるというわけではない。上で述べられるように、第2のマッピングシェルについて、セル[1:0]の1つがプログラム状態L2を載せている。この実施例において、ビット[1]は、セル[1:0]のどれがL2を載せているのかを決定するために使用される(例えば、ビット[1]に対する「0」の2進値は、セル[0]がL2を載せていることを示し、ビット[1]に対する「1」の2進値は、セル[1]がL2を載せていることを示す。どのセルが第1のマッピングシェルに対応しないいくつかのプログラム状態のうちの1つ以上を載せているのかを決定するために使用されるビット(複数可)は、本明細書で「スワップセルビット(複数可)」と称することができ、第1のマッピングシェルに対応しないいくつかのプログラム状態のうちの1つ以上を載せるセルは、本明細書で「スワップセル」と称することができる。この実施例において、ビット[1]は、スワップセルビットである。このように、ビット[1]が「0」である場合は、セル[0]がスワップセルであり、ビット[1]が「1」である場合は、セル[1]がスワップセルである。図4Bの第1のシェルマッピングと同様に、図4Cにおいて、ビット[0]の2進値は、プログラム状態L0およびL1と直接対応する(例えば、「0」の値は、L0に対応し、「1」の値は、L1に対応する)。しかしながら、セル[0]がスワップセルであるときには、ビット[0]がセル[1]に割り当てられ、また、セル[1]がスワップセルであるときには、ビット[0]がセル[0]に割り当てられる。このように、図4Bおよび4Cは、本開示のいくつかの実施形態に従って、第1および第2のマッピングシェルに対応する異なる3ビットデータパターンが、それぞれが1.5ビット/セルを記憶する2つのメモリセルの群のそれぞれのプログラム状態の組み合わせにマップされる様式を例示する。
下に示される表2は、図5Aおよび5Bと関連して説明される実施例に関連する構成情報を提供する。表2は、1セルあたり記憶されるビット数(「bpc」)(例えば、2.25)、メモリセルがプログラム可能である状態の数(「状態」)(例えば、5)、Nビットデータパターン(例えば、4)に対応する(Nは、シンボルサイズ(例えば、この実施例では9ビット)に対応する)セルの数(「セル/nD」)、2個のプログラム状態の組み合わせ(例えば、512)にマップするために必要なコンステレーションポイントの数(「コンステレーションポイント」)、第1のマッピングシェルに対応するプログラム状態の組み合わせを形成するために使用されるプログラム状態の数(「第1のシェル状態」)(例えば、4)、第1のマッピングシェルのコンステレーションポイントの数(「第1のシェルポイント」)(例えば、256)、第2のマッピングシェルに対応するプログラム状態の組み合わせを形成するために使用される追加のプログラム状態の数(「第2のシェル状態」)(例えば、1)、第2のマッピングシェルのコンステレーションポイントの数(「第2のシェルポイント」)(例えば、256)、およびパッキング密度(「パッキング密度」)(例えば、81.92%)を示す。
Figure 2015514279
第1および第2のマッピングシェルのそれぞれのコンステレーションポイントの数は、上で説明される多項式(例えば、(A+B))の最初の2つの項を使用して決定することができ、Aは、第1項であり、また、第1のマッピングシェルのコンステレーションポイントの数を示し、G×A(G−1)×Bは、第2項であり、また、第2のマッピングシェルのコンステレーションポイントの数に対応する。図5Aおよび5Bの2.25ビット/セル実施例において、Aは、4に等しく、Gは、4に等しく、Bは、1に等しい。このように、Aは、256に等しく、G×A(G−1)×Bは、256に等しい。上で説明されるように、Aは、第1のマッピングシェルに対応するそれぞれのプログラム状態の組み合わせが決定されるプログラム状態の数であり、Bは、第2のマッピングシェルに対応するそれぞれのプログラム状態の組み合わせが決定される追加のプログラム状態の数である。このように、この実施例において、最初の4つのプログラム状態(例えば、L0〜L3)の組み合わせが、第1のマッピングシェルの256個のコンステレーションポイントのそれぞれにマップされ、第2のマッピングシェルの256個のコンステレーションポイントを、最初の4つのプログラム状態以外のプログラム状態(たとえは、最高のプログラム状態L4)を含むプログラム状態の組み合わせにマップする。図5Bで示されるように、この実施例において、第2のマッピングシェルのプログラム状態の組み合わせは、プログラム状態L0〜L3のうちの1つを有する1つのセル、およびプログラム状態L4を載せている1つのセルを含む。
図5Aおよび5Bは、それぞれ、異なる9ビットデータパターンが、第1および第2のマッピングシェルに対応するプログラム状態の組み合わせにマップされる様式を例示する。図表560−1は、第1のマッピングシェルに対応するマッピングを例示し、図表560−2は、第2のマッピングシェルに対応するマッピングを例示する。この実施例において、9ビットデータパターン(例えば、ビット[8:0]として表される)のMSB(例えば、ビット[8])は、データパターンを第1のシェルにマップするのか、または第2のシェルにマップするのかを示す。例えば、ビット[8]が「0」である(例えば、9ビットデータパターンの2進値が256未満である)場合は、データパターンを第1のシェルにマップし、ビット[8]が「1」である(例えば、9ビットデータパターンの2進値が256以上である)場合は、データパターンを第2のシェルにマップする。
図5Aは、第1のマッピングシェルについて、どのように9ビットデータパターンのビット[7:0]を、4つのセル[3:0]のプログラム状態の組み合わせに系統的にマップすることができるのかを例示する。例えば、ビット[7:6]をセル[3]に割り当てることができ、ビット[5:4]をセル[2]に割り当てることができ、ビット[3:2]をセル[1]に割り当てることができ、また、ビット[1:0]をセル[0]に割り当てることができ、セルに割り当てられるビット対の2進値は、それぞれのセルのプログラム状態に直接対応する(例えば、2進値「00」、「01」、「10」、および「11」は、それぞれ、L0、L1、L2、およびL3に直接対応する)。
図5Bは、第2のマッピングシェルについて、どのように9ビットデータパターンのビット[7:0]を、4つのセル[3:0]のプログラム状態の組み合わせにマップすることができるのかを例示する。上で述べられたように、第2のマッピングシェルのプログラム状態の組み合わせに対して、セル[3:0]の1つは、プログラム状態L4を載せている。この実施例において、ビット[7:6]は、セル[3:0]のどれがプログラム状態L4を載せているのかを決定するために使用される(例えば、ビット[7:6]に対する「00」の2進値は、セル[0]がL4を載せていることを示し、ビット[7:6]に対する「01」の2進値は、セル[1]がL4を載せていることを示し、ビット[7:6]に対する「10」の2進値は、セル[2]がL4を載せていることを示し、また、ビット[7:6]に対する「11」の2進値は、セル[3]がL4を載せていることを示す)。すなわち、ビット[7:6]は、この2.25ビット/セルの例のスワップビットである。このように、図5Bで示されるように、ビット[7:6]が「00」である場合は、セル[0]がスワップセルであり、ビット[7:6]が「01」である場合は、セル[1]がスワップセルであり、ビット[7:6]が「10」である場合は、セル[2]がスワップセルであり、また、ビット[7:6]が「11」である場合は、セル[3]がスワップセルである。図5Bはまた、L4を載せていない3つのセルに対するビットの割り当ても示す。例えば、例示されるように、9ビットデータパターンのビット[7:6]が「00」であり、よって、セル[0]がL4を載せている場合は、ビット[3:2]がセル[1]に割り当てられ、ビット[5:4]がセル[2]に割り当てられ、また、ビット[0:1]がセル[3]に割り当てられる。第2のマッピングシェルにおいて、9ビットデータパターンのビット対[5:4]、[3:2]、および[1:0]は、それぞれ、プログラム状態L0〜L3に直接対応する。例えば、図5Bで例示される第2のシェルマッピングに従って、「00」であるビット[7:6]、「10」であるビット[5:4]、「01」であるビット[3:2]、および「11」であるビット[1:0]を有する100100111の9ビットデータパターンを、プログラム状態L4にプログラムされるセル[0]、プログラム状態L1にプログラムされるセル[1]、プログラム状態L2にプログラムされるセル[2]、およびプログラム状態L3にプログラムされるセル[3]にマップする。第2のシェルに対応するマッピングは、ほぼ系統的である。例えば、マッピングに対応する4つのセルのうちの2つは、常に、系統的な情報を載せている。
このように、図5Aおよび5Bは、本開示のいくつかの実施形態に従って、第1および第2のマッピングシェルに対応する異なる9ビットデータパターンが、それぞれが2.25ビット/セルを記憶する4つのメモリセルの群のそれぞれのプログラム状態の組み合わせにマップされる様式を例示する。
下に示される表3は、図6Aおよび6Bに関連して説明される実施例に関連する構成情報を提供する。表3は、1セルあたり記憶されるビット数(「bpc」)(例えば、2.5)、表3は、1セルあたり記憶されるビット数(「bpc」)(例えば、2.5)、メモリセルがプログラム可能である状態の数(「状態」)(例えば、6)、Nビットデータパターン(例えば、2)に対応する(Nは、シンボルサイズ(例えば、この実施例では5ビット)に対応する)セルの数(「セル/nD」)、2個のプログラム状態の組み合わせ(例えば、32)にマップするために必要なコンステレーションポイントの数(「コンステレーションポイント」)、第1のマッピングシェルに対応するプログラム状態の組み合わせを形成するために使用されるプログラム状態の数(「第1のシェル状態」)(例えば、4)、第1のマッピングシェル(「第1のシェルポイント」)のコンステレーションポイントの数(例えば、16)、第2のマッピングシェルに対応するプログラム状態の組み合わせを形成するために使用される追加のプログラム状態の数(「第2のシェル状態」)(例えば、2)、第2のマッピングシェルのコンステレーションポイントの数(「第2のシェルポイント」)(例えば、16)、およびパッキング密度(「パッキング密度」)(例えば、88.89%)を示す。
Figure 2015514279
第1および第2のマッピングシェルのそれぞれのコンステレーションポイントの数は、上で説明される多項式(例えば、(A+B))の最初の2つの項を使用して決定することができ、Aは、第1項であり、また、第1のマッピングシェルのコンステレーションポイントの数を示し、G×A(G−1)×Bは、第2項であり、また、第2のマッピングシェルのコンステレーションポイントの数に対応する。図6Aおよび6Bの2.5ビット/セルの実施例において、Aは、4に等しく、Gは、2に等しく、Bは、2に等しい。このように、Aは、16に等しく、G×A(G−1)×Bは、16に等しい。上で説明されたように、Aは、第1のマッピングシェルに対応するそれぞれのプログラム状態の組み合わせが決定されるプログラム状態の数であり、Bは、第2のマッピングシェルに対応するそれぞれのプログラム状態の組み合わせが決定される追加のプログラム状態の数である。このように、この実施例では、最初の4つのプログラム状態(例えば、L0〜L3)の組み合わせが、第1のマッピングシェルの16個のコンステレーションポイントのそれぞれにマップされ、第2のマッピングシェルの16個のコンステレーションポイントを、最初の4つのプログラム状態以外のプログラム状態(例えば、プログラム状態L4およびL5)を含むプログラム状態の組み合わせにマップする。図6Bで示されるように、この実施例において、第2のマッピングシェルのプログラム状態の組み合わせは、プログラム状態L0〜L3のうちの1つを有する1つのセル、およびプログラム状態L4またはL5を載せている1つのセルを含む。
図6Aおよび6Bは、それぞれ、異なる5ビットデータパターンが、第1および第2のマッピングシェルに対応するプログラム状態の組み合わせにマップされる様式を例示する。図表660−1は、第1のマッピングシェルに対応するマッピングを例示し、図表660−2は、第2のマッピングシェルに対応するマッピングを例示する。この実施例において、5ビットデータパターン(例えば、ビット[4:0]として表される)のMSB(例えば、ビット[4])は、データパターンを第1のシェルにマップするのか、または第2のシェルにマップするのかを示す。例えば、ビット[4]が「0」である(例えば、5ビットデータパターンの2進値が16未満である)場合は、データパターンを第1のシェルにマップし、ビット[4]が「1」である(例えば、5ビットデータパターンの2進値が16以上である)場合、データパターンを第2のシェルにマップする。
図6Aは、第1のマッピングシェルについて、どのように5ビットデータパターンのビット[4:0]を、2つのセル[1:0]のプログラム状態の組み合わせに系統的にマップすることができるのかを例示する。例えば、ビット[1:0]をセル[0]に割り当てることができ、ビット[3:2]をセル[1]に割り当てることができ、セルに割り当てられるビット対の2進値は、それぞれのセルのプログラム状態に直接対応する(例えば、2進値「00」、「01」、「10」、および「11」は、それぞれ、L0、L1、L2、およびL3に直接対応する)。
図6Bは、第2のマッピングシェルについて、どのように5ビットデータパターンのビット[4:0]を、2つのセル[1:0]のプログラム状態の組み合わせにマップすることができるのかを例示する。第2のマッピングシェルのプログラム状態の組み合わせについて、Bが2に等しい(例えば、2つの追加のプログラム状態が、第2のマッピングシェルに対応する)ので、セル[1:0]の1つがプログラム状態L4またはL5を載せている。この実施例において、ビット[3]は、セル[1:0]のどれがプログラム状態L4またはL5を載せているのかを決定するために使用される(例えば、ビット[3]に対する「0」の2進値は、セル[0]がL4またはL5を載せていることを示し、ビット[3]に対する「1」の2進値は、セル[1]がL4またはL5を載せていることを示す)。すなわち、ビット[3]は、この2.5ビット/セルの例のスワップビットである。このように、図6Bで示されるように、ビット[3]が「0」である場合、セル[0]がスワップセルであり、ビット[3]が「1」である場合は、セル[1]がスワップセルである。1よりも大きいプログラム状態の数にBが対応する実施形態において、ビット(複数可)はまた、B個のプログラム状態のどれがスワップセルによって載せられているのかを決定するために使用することもできる。スワップセルによって載せられるプログラム状態は、本明細書において「スワップ状態」と称される。この実施例では、ビット[2]がスワップ状態を決定するために使用される。例えば、図6Bで示される実施例において、ビット[2]が「0」である場合、スワップ状態は、L4であり、ビット[2]が「1」である場合、スワップ状態は、L5である。
図6Bはまた、L4またはL5を載せていないセルに対するビットの割り当ても示す。図6Aの第1のシェルマッピングと同様に、図6Bにおいて、ビット[1:0]の2進値は、プログラム状態L0〜L3と直接対応する(例えば、「00」の値は、L0に対応し、「01」の値は、L1に対応し、「10」の値は、L2に対応し、「11」の値は、L3に対応する)。しかしながら、セル[0]がスワップセルであるときには、ビット[1:0]がセル[1]に割り当てられ、また、セル[1]がスワップセルであるときには、ビット[1:0]がセル[0]に割り当てられる。このように、図6Aおよび6Bは、本開示のいくつかの実施形態に従って、第1および第2のマッピングシェルに対応する異なる5ビットデータパターンが、それぞれが2.5ビット/セルを記憶する2つのメモリセルの群のそれぞれのプログラム状態の組み合わせにマップされる様式を例示する。
下に示される表4は、図7Aおよび7Bと関連して説明される実施例に関連する構成情報を提供する。表4は、1セルあたり記憶されるビット数(「bpc」)(例えば、3.125)、メモリセルがプログラム可能である状態の数(「状態」)(例えば、9)、Nビットデータパターン(例えば、8)に対応する(Nは、シンボルサイズに対応する(この例では、25ビット))セルの数(「セル/nD」)、2個のプログラム状態の組み合わせにマップするために必要なコンステレーションポイントの数(「コンステレーションポイント」)(例えば、33,554,432)、第1のマッピングシェルに対応するプログラム状態の組み合わせを形成するために使用されるプログラム状態の数(「第1のシェル状態」)(例えば、8)、第1のマッピングシェル(「第1のシェルポイント」)のコンステレーションポイントの数(例えば、16,777,216)、第2のマッピングシェルに対応するプログラム状態の組み合わせを形成するために使用される追加のプログラム状態の数(「第2のシェル状態」)(例えば、1)、第2のマッピングシェルのコンステレーションポイントの数(「第2のシェルポイント」)(例えば、16,777,216)、およびパッキング密度(「パッキング密度」)(例えば、77.95%)を示す。
Figure 2015514279
第1および第2のマッピングシェルのそれぞれのコンステレーションポイントの数は、上で説明される多項式(例えば、(A+B))の最初の2つの項を使用して決定することができ、Aは、第1項であり、また、第1のマッピングシェルのコンステレーションポイントの数を示し、G×A(G−1)×Bは、第2項であり、また、第2のマッピングシェルのコンステレーションポイントの数に対応する。図7Aおよび7Bの3.125ビット/セル実施例において、Aは、8に等しく、Gは、8に等しく、Bは、1に等しい。このように、Aは、16,777,216に等しく、G×A(G−1)×Bは、16,777,216に等しい。上で説明されたように、Aは、第1のマッピングシェルに対応するそれぞれのプログラム状態の組み合わせが決定されるプログラム状態の数であり、Bは、第2のマッピングシェルに対応するそれぞれのプログラム状態の組み合わせが決定される追加のプログラム状態の数である。このように、この実施例では、最初の8つのプログラム状態(例えば、L0〜L7)の組み合わせが、第1のマッピングシェルの16,777,216個のコンステレーションポイントのそれぞれにマップされ、第2のマッピングシェルの16,777,216個のコンステレーションポイントを、最初の8つのプログラム状態以外のプログラム状態(例えば、最高のプログラム状態L8)を含むプログラム状態の組み合わせにマップする。図7Bで示されるように、この実施例において、第2のマッピングシェルのプログラム状態組み合わせは、プログラム状態L0〜L7のうちの1つを有する1つのセル、およびプログラム状態L8を載せている1つのセルを含む。
図7Aおよび7Bは、それぞれ、異なる25ビットデータパターンが、第1および第2のマッピングシェルに対応するプログラム状態の組み合わせにマップされる様式を例示する。図表760−1は、第1のマッピングシェルに対応するマッピングを例示し、図表760−2は、第2のマッピングシェルに対応するマッピングを例示する。この実施例において、25ビットデータパターン(例えば、ビット[24:0]として表される)のMSB(例えば、ビット[24])は、データパターンを第1のシェルにマップするのか、または第2のシェルにマップするのかを示す。例えば、ビット[24]が「0」である(例えば、25ビットデータパターンの2進値が16,777,216未満である)場合、データパターンを第1のシェルにマップし、ビット[24]が「1」である(例えば、25ビットデータパターンの2進値が16,777,216以上である)場合、データパターンを第2のシェルにマップする。
図7Aは、第1のマッピングシェルについて、どのように25ビットデータパターンのビット[23:0]を、8つのセル[7:0]のプログラム状態の組み合わせに系統的にマップすることができるのかを例示する。例えば、ビット[23:21]をセル[7]に割り当てることができ、ビット[20:18]をセル[6]に割り当てることができ、ビット[17:15]をセル[5]に割り当てることができ、ビット[14:12]をセル[4]に割り当てることができ、ビット[11:09]をセル[3]に割り当てることができ、ビット[8:6]をセル[2]に割り当てることができ、ビット[5:3]をセル[1]に割り当てることができ、また、ビット[2:0]をセル[0]に割り当てることができ、セルに割り当てられるビット組み合わせの2進値は、それぞれのセルのプログラム状態に直接対応する(例えば、2進値「000」〜「111」は、それぞれ、L0〜L7に直接対応する)。
図7Bは、第2のマッピングシェルについて、どのように25ビットデータパターンのビット[23:0]を、8つのセル[7:0]のプログラム状態の組み合わせにマップすることができるのかを例示する。上で述べられたように、第2のマッピングシェルのプログラム状態の組み合わせについて、セル[7:0]の1つは、プログラム状態L8を載せている。この実施例において、ビット[23:21]は、セル[7:0]のどれがプログラム状態L8を載せているのかを決定するために使用される(例えば、ビット[23:21]に対する「000」の2進値は、セル[0]がL8を載せていることを示し、ビット[23:21]に対する「001」の2進値は、セル[1]がL8を載せていることを示し、ビット[23:21]に対する「010」の2進値は、セル[2]がL8を載せていることを示す、等である)。すなわち、ビット[23:21]は、この3.125ビット/セルの例のスワップビットである。このように、図7Bで示されるように、ビット[23:21]が「000」である場合は、セル[0]がスワップセルであり、ビット[23:21]が「001」である場合は、セル[1]がスワップセルであり、また、ビット[23:21]が「010」である場合は、セル[2]がスワップセルである、等である。図7Bはまた、L8を載せていない7つのセルに対するビットの割り当ても示す。例えば、例示されるように、25ビットデータパターンのビット[23:21]が「000」であり、よって、セル[0]がL8を載せている場合は、ビット[5:3]がセル[1]に割り当てられ、ビット[8:6]がセル[2]に割り当てられ、ビット[11:9]がセル[3]に割り当てられ、ビット[14:12]がセル[4]に割り当てられ、ビット[17:15]がセル[5]に割り当てられ、ビット[20:18]がセル[6]に割り当てられ、また、ビット[2:0]がセル[7]に割り当てられる。第2のマッピングシェルにおいて、25ビットデータパターンのビット組み合わせ[20:18]、[17:15]、[14:12]、[11:09]、[8:6]、[5:3]、および[2:0]は、それぞれ、プログラム状態L0〜L7に直接対応する。例えば、図7Bで例示される第2のシェルマッピングに従って、「000」であるビット[23:21]、「010」であるビット[20:18]、「001」であるビット「17:15]、「000」であるビット[14:12]、「100」であるビット[11:9]、「011」であるビット[8:6]、「101」であるビット[5:3]、および「111」であるビット[2:0]を有する、1000010001000100011101111の25ビットデータを、プログラム状態L8にプログラムされるセル[0](例えば、スワップセル)、プログラム状態L5にプログラムされるセル[1]、プログラム状態L3にプログラムされるセル[2]、プログラム状態L4にプログラムされるセル[3]、プログラム状態L0にプログラムされるセル[4]、プログラム状態L1にプログラムされるセル[5]、プログラム状態L2にプログラムされるセル[6]、およびプログラム状態L7にプログラムされるセル[7]にマップする。
このように、図7Aおよび7Bは、本開示のいくつかの実施形態に従って、第1および第2のマッピングシェルに対応する異なる25ビットデータパターンが、それぞれが3.125ビット/セルを記憶する4つのメモリセルの群のそれぞれのプログラム状態の組み合わせにマップされる様式を例示する。
図4A〜図7Bに関連して上で説明されるマッピングは、例えば、G個のメモリセルに記憶されるデータパターン(例えば、Nビットデータパターン)を決定することと関連して使用することができ、ここで、Nは、ビットの整数個数であり、Gは、Nビットを記憶するメモリセルの数であり、群の各メモリセルは、L個のプログラム状態の数のうちの1つにプログラムされ、小数個のNビットを記憶する。
例えば、(例えば、読み出し動作と関連して)それぞれの決定された群のプログラム状態の組み合わせが対応する特定のNビットデータパターンを決定することは、第1のマッピングシェルおよび第2のマッピングシェルを含むマッピングコンステレーションに少なくとも部分的に基づくことができ、第1および第2のマッピングシェルは、次数Gの多項式によって定義される。例えば、図1で示される構成要素112等のデータパッキング構成要素を、プログラム状態の組み合わせとデータパターンとの間のマッピングと関連して使用することができる。
図4A〜図7Bで示される例示的なシェルマッピングで例示されるように、決定されたメモリセルのそれぞれの群のプログラム状態は、群に記憶されたデータパターンが対応する特定のマッピングシェルを示すことができる。例えば、セルがプログラム可能であるL個のプログラム状態のうちの1つ以上のプログラム状態は、第1のマッピングシェル以外のマッピングシェルにだけ対応する。このように、いかなる群のセルも、第1のマッピングシェル以外のマッピングシェルにだけ対応するプログラム状態にプログラムされないという決定が行われた場合、セルの群は、第1のマッピングシェルに対応するビットパターンを記憶する。上で説明されたように、データパターンのビットは、第1のシェルをマップするために、系統的な様式で、群のセルに割り当てることができる。あるいは、群のセルが、第1のマッピングシェル以外のマッピングシェルに対応するプログラム状態(例えば、上位のプログラム状態)にプログラムされるという決定が行われた場合、群は、第1のマッピングシェル以外のマッピングシェルに対応するビットパターンを記憶する。上で説明されたように、群のセルに割り当てられるビットは、どの群のセルが、第1のマッピングシェル(例えば、スワップセル)に対応しないプログラム状態にプログラムされるのかに基づくことができる。
いくつかの実施形態において、コントローラ(例えば、コントローラ108)は、(例えば、読み出し動作と関連して)群に記憶されるビットパターンを決定することができ、また、データをホスト(例えば、ホスト102)に提供することができる。セルの群に記憶されるビットパターンは、(例えば、誤りデータによって以前に符号化されている場合)ホストに提供される前に、(例えば、誤り符号化/復号化構成要素114を介して)復号化することができる。
<結論>
本開示は、プログラム状態とデータパターンとの間でマップするための方法および装置を含む。1つの方法は、G個のメモリセルの群を、群のそれぞれのプログラム状態の組み合わせを受け取ったN単位データパターンに対応するコンステレーションポイントにマップするようにプログラムすることであって、群は、1メモリセルあたりN/G単位データを記憶するために使用される、プログラムすることを含み、コンステレーションポイントは、メモリセルの群のそれぞれのプログラム状態の組み合わせを、N単位データパターンにマップすることと関連するコンステレーションのいくつかのコンステレーションポイントのうちの1つであり、コンステレーションは、第1のマッピングシェルおよび第2のマッピングシェルを含み、第1および第2のマッピングシェルのそれぞれに対応するコンステレーションポイントは、Gに等しい次数の多項式に少なくとも部分的に基づいて決定される。
要素が、別の要素の「〜上にある」、別の要素「に接続される」、または別の要素「と連結される」として言及されるとき、その要素は、他の要素の直接的に上にある、他の要素に直接的に接続される、または他の要素に直接的に連結され得るか、または介在要素が存在する場合があることが理解されるであろう。対照的に、要素が、別の要素に対して「直接的に上にある」、「直接的に接続される」、または「直接的に連結される」として言及されるときは、いかなる介在要素または層も存在しない。本明細書で使用される場合、「および/または」という用語は、いくつかの関連する列記される項目うちの任意および全ての組み合わせを含む。
本明細書で使用される場合、「および/または」という用語は、いくつかの関連する列記される項目うちの任意および全ての組み合わせを含む。本明細書で使用される場合、「または」という用語は、別途注記されない限り、論理上の、包含的OR(または)を意味する。すなわち、「AまたはB」は、(Aのみ)、(Bのみ)、または(AおよびBの両方)を含むことができる。換言すれば、「AまたはB」は、「Aおよび/またはB」または「AおよびBのうちのいくつか」を意味することができる。
第1、第2、第3等の用語は、本明細書では、種々の要素を表すために使用され得、これらの用語によってこれらの要素を限定すべきではないことを理解されるであろう。これらの用語は、ある要素を別の要素と区別するために使用されているに過ぎない。したがって、第1の要素は、本開示の教示を逸脱しない範囲で第2の要素と称される可能性がある。
本明細書には具体的な実施形態を例示説明および記述したが、当業者は、同じ結果を達成するように考案された配設を、示された具体的な実施形態に代えることができることを理解するであろう。本開示は、本開示のいくつかの実施形態の適応または変形を包含することを意図する。上記の説明は、制限の様式ではなく、例示説明の様式において行われたものであることが理解されるであろう。上記の実施形態、および本明細書に具体的に説明されない他の実施形態の組み合わせが、上記の説明を検討することによって、当業者には明らかであろう。本開示のいくつかの実施形態の範囲は、上記の構造および方法が使用される他の用途を含む。したがって、本開示のいくつかの実施形態の範囲は、添付の特許請求の範囲に加えて、このような特許請求の範囲が権利を与えられる均等物の完全な範囲を参照して決定されなければならない。
前述の発明を実施するための形態では、開示を簡素化するために、いくつかの特徴が単一の実施形態にまとめられている。この開示方法は、本開示の開示される実施形態が、各請求項に明記されるよりも多くの特徴を用いなければならないという意図を反映するものとして解釈されるべきではない。そうではなく、以下の特許請求の範囲が反映するように、発明の主題は、単一の開示される実施形態の全ての特徴に満たない中に存する。したがって、以下の特許請求の範囲が本明細書により発明を実施するための形態に組み入れられ、各特許請求の範囲は個別の実施形態として独立する。

Claims (32)

  1. メモリを動作させるための方法であって、
    G個のメモリセルの群を、前記群のそれぞれのプログラム状態の組み合わせを、受け取ったN単位データパターンに対応するコンステレーションポイントにマップするようにプログラムすることであって、前記群は、1メモリセルあたりN/G単位データを記憶するために使用される、プログラムすることを含み、
    前記コンステレーションポイントは、前記メモリセルの群のそれぞれのプログラム状態の組み合わせを、N単位データパターンにマップすることと関連するコンステレーションのいくつかのコンステレーションポイントのうちの1つであり、
    前記コンステレーションは、第1のマッピングシェルおよび第2のマッピングシェルを含み、前記第1および第2のマッピングシェルのそれぞれに対応する前記コンステレーションポイントは、Gに等しい次数の多項式に少なくとも部分的に基づいて決定される、方法。
  2. 前記第1のマッピングシェルは、前記メモリセルの群がプログラム可能であるL個のプログラム状態のうちの少なくとも1つを含まないプログラム状態の組み合わせにだけ対応するコンステレーションポイントを含み、Lは、前記群の1メモリセルあたりN/G単位データを記憶するために必要とされるプログラム状態の最小数である、請求項1に記載の方法。
  3. 前記L個のプログラム状態のうちの前記少なくとも1つは、それらと関連する最も高い閾値電圧(Vt)を有するプログラム状態に対応する、請求項2に記載の方法。
  4. 前記第2のマッピングシェルは、前記L個のプログラム状態のうちの前記少なくとも1つを含むプログラム状態の組み合わせに対応するいくつかのコンステレーションポイントを含む、請求項2に記載の方法。
  5. N/Gは、小数である、請求項2に記載の方法。
  6. 前記多項式は、(A+B)であり、Aは、前記第1のマッピングシェルのコンステレーションポイントの数であり、G×A(G−1)×Bは、前記第2のマッピングシェルのコンステレーションポイントの数である、請求項1に記載の方法。
  7. Aは、前記第1のマッピングシェルに対応する前記プログラム状態の組み合わせのそれぞれが決定される、プログラム状態の数であり、Bは、前記第2のマッピングシェルに対応する前記プログラム状態の組み合わせのそれぞれが決定される、追加のプログラム状態の数である、請求項6に記載の方法。
  8. 前記受け取ったN単位データパターンは、Nビットデータパターンであり、
    N/Gは、1メモリセルあたりの小数個のビットであり、
    の2進値未満の2進値に対応するNビットデータパターンが、前記第1のマッピングシェルに対応するプログラム状態の組み合わせにマップされ、
    の2進値以上の2進値に対応するNビットデータパターンが、前記第2のマッピングシェルに対応するプログラム状態の組み合わせにマップされる、請求項6に記載の方法。
  9. 前記データパターンの最上位ビット(MSB)の値に基づいて、前記受け取ったN単位データパターンに対応する前記コンステレーションポイントが、前記第1のマッピングシェル内にあるのか、前記第2のシェルマッピングシェル内にあるのかを決定することを含む、請求項1に記載の方法。
  10. メモリを動作させるための方法であって、
    G個のメモリセルの群に記憶されるべきN単位データパターンを受け取ることであって、前記N単位データパターンは、前記G個のメモリセルのプログラム状態の組み合わせがマップされるいくつかのN単位データパターンのうちの1つである、受け取ることと、
    前記群の各メモリセルを、前記群の前記プログラム状態の組み合わせを前記受け取ったN単位データパターンにマップするように、L個のプログラム状態のそれぞれ1つにプログラムすることであって、ここで、Lは、1メモリセルあたりN/G単位データを記憶するために使用されるプログラム状態の数である、プログラムすることと、を含み、
    前記群の前記メモリセルが、前記群の前記プログラム状態の前記組み合わせを前記受け取ったN単位データパターンにマップするようにプログラムされる、前記それぞれのプログラム状態は、Gに等しい次数の多項式に少なくとも部分的に基づくマッピングを使用して決定され、前記多項式の第1項は、第1のマッピングシェルに対応し、前記多項式の第2項は、第2のマッピングシェルに対応する、方法。
  11. 前記多項式の前記第1項は、Aであり、Aは、前記第1のマッピングシェルのコンステレーションポイントの数であり、ここで、Aは、前記第1のマッピングシェルの前記A個のコンステレーションポイントに対応する、前記L個のプログラム状態の数であり、および、
    前記多項式の前記第2項は、G×A(G−1)×Bであり、G×A(G−1)×Bは、前記第2のマッピングシェルのコンステレーションポイントの数であり、ここで、Bは、前記第2のマッピングシェルの前記G×A(G−1)×B個のコンステレーションポイントに対応する、前記L個のプログラム状態の追加の数である、請求項10に記載の方法。
  12. 前記第1のマッピングシェルの前記A個のコンステレーションポイントのそれぞれは、前記いくつかのNビットデータパターンのうちの異なるN単位データパターンに対応する、請求項11に記載の方法。
  13. 前記第1のマッピングシェルの前記コンステレーションポイントのいずれも、前記L個のプログラム状態のうちの少なくとも1つを含むプログラム状態の組み合わせに対応しない、請求項12に記載の方法。
  14. 前記第1のマッピングシェルの前記A個のコンステレーションポイントは、前記Aの2進値未満の2進値を有する前記いくつかのN単位データパターンのデータパターンに対応し、
    前記第2のマッピングシェルの前記G×A(G−1)×B個のコンステレーションポイントは、前記Aの2進値以上の2進値を有する前記いくつかのN単位データパターンのデータパターンに対応する、請求項13に記載の方法。
  15. 前記受け取ったN単位データパターンが前記Aの2進値以上の2進値を有する場合、前記受け取ったN単位データパターンの1つ以上の単位は、前記群の前記メモリセルのどれが、前記BのL個のプログラム状態のうちの少なくとも1つにプログラムされるのかを決定する、請求項14に記載の方法。
  16. Aは、2に等しく、「a」は、2がL未満である最大の2の累乗値であるような値である、請求項11〜15のいずれか1項に記載の方法。
  17. メモリを動作させるための方法であって、
    L個のプログラム状態のうちの1つにそれぞれがプログラムされるG個のメモリセルの群の各メモリセルのプログラム状態を決定することであって、前記群の前記決定されたプログラム状態のそれぞれの組み合わせを、いくつかのN単位データパターンのうちの1つのN単位データパターンにマップする、決定することと、
    第1のマッピングシェルおよび第2のマッピングシェルを含むマッピングコンステレーションに少なくとも部分的に基づいて、前記決定されたプログラム状態のそれぞれの前記組み合わせが対応する、前記いくつかのN単位データパターンのうちの前記1つのN単位データパターンを決定することであって、前記第1および第2のマッピングシェルは、次数Gの多項式によって定義される、決定することと、を含む、方法。
  18. 前記群の各メモリセルは、小数ビットメモリセルであり、前記多項式は、(A+B)であり、前記多項式の第1項は、Aであり、Aは、前記第1のマッピングシェルのコンステレーションポイントの数であり、前記多項式の第2項は、G×A(G−1)×Bであり、G×A(G−1)×Bは、前記第2のマッピングシェルのコンステレーションポイントの数である、請求項17に記載の方法。
  19. 装置であって、
    データパッキング構成要素であって、メモリセルのアレイに連結され、
    それぞれをL個のプログラム状態にプログラム可能であり、1メモリセルあたりN/G単位データを記憶するために使用される、G個のメモリセルの群の2個のプログラム状態の組み合わせに2個のデータパターンをマップするように構成される、データパッキング構成要素を備え、
    前記データパターンとプログラム状態の組み合わせとの間のマッピングは、少なくとも、前記L個のプログラム状態の第1の数(A)だけを含むプログラム状態の組み合わせに対応する、コンステレーションマッピングポイントの第1のシェル、および前記A個のプログラム状態以外のL個のプログラム状態のうちの少なくとも1つを含むプログラム状態の組み合わせだけに対応する、コンステレーションマッピングポイントの第2のシェルを含む、装置。
  20. 前記第1のシェルの前記コンステレーションマッピングポイントの数は、Aが前記第1のシェルの前記コンステレーションマッピングポイントの数であるように、多項式(A+B)の第1項に基づいて決定され、
    前記第2のシェルの前記コンステレーションマッピングポイントの数は、G×A(G−1)×Bが前記第2のマッピングシェルの前記コンステレーションポイントの数であるように、前記多項式の第2項に基づいて決定され、Bは、L−Aに等しいプログラム状態の数である、請求項19に記載の装置。
  21. 前記2個のデータパターンは、符号化されたデータパターンである、請求項19に記載の装置。
  22. 前記装置は、コントローラである、請求項19に記載の装置。
  23. 前記メモリセルは、小数単位メモリセルである、請求項19に記載の装置。
  24. 前記プログラム状態の組み合わせと前記データパターンとの間の前記2個のマッピングの半分は、前記第1のシェルに対応する、請求項19〜23のいずれか1項に記載の装置。
  25. 前記プログラム状態の組み合わせと前記データパターンとの間の前記2個のマッピングの半分は、前記第2のシェルに対応する、請求項24に記載の装置。
  26. 装置であって、
    各メモリセルをL個のプログラム状態のうちのそれぞれ1つにプログラム可能である、メモリセルのアレイと、
    前記アレイに連結され、方法を制御するように構成されるコントローラと、を備え、該方法は、
    N単位データパターンとしてG個のメモリセルの群に記憶されるデータを受け取り、前記N単位データパターンは、前記G個のメモリセルのプログラム状態の組み合わせがマップされるいくつかのN単位データパターンのうちの1つであり、
    前記群の各メモリセルを、前記群の前記プログラム状態の組み合わせを前記受け取ったN単位データパターンにマップするように、前記L個のプログラム状態のうちのそれぞれ1つにプログラムする、ように実行され、
    前記群の前記メモリセルが、前記群の前記プログラム状態の前記組み合わせを前記受け取ったN単位データパターンにマップするようにプログラムされる、前記それぞれのプログラム状態は、Gに等しい次数の多項式に少なくとも部分的に基づくマッピングを使用して決定され、前記多項式の第1項は、第1のマッピングシェルに対応し、前記多項式の第2項は、第2のマッピングシェルに対応する、装置。
  27. 前記コントローラは、誤り訂正データによって前記受け取ったデータを符号化して、前記N単位データパターンを形成するように構成される、符号器/復号器構成要素を備える、請求項26に記載の装置。
  28. 前記多項式の前記第1項は、Aであり、Aは、前記第1のマッピングシェルのコンステレーションポイントの数であり、ここで、Aは、前記第1のマッピングシェルの前記A個のコンステレーションポイントに対応する、前記L個のプログラム状態の数であり、また、
    前記多項式の前記第2項は、G×A(G−1)×Bであり、G×A(G−1)×Bは、前記第2のマッピングシェルのコンステレーションポイントの数であり、ここで、Bは、前記第2のマッピングシェルの前記G×A(G−1)×B個のコンステレーションポイントに対応する、前記L個のプログラム状態の追加の数である、請求項26に記載の装置。
  29. 前記マッピングは、前記第2のマッピングシェルのコンステレーションポイントのためのスワップセルを示す、請求項26に記載の装置。
  30. 前記N単位データパターンは、Nビットデータパターンであり、前記第1のマッピングシェルの前記マッピングのそれぞれは、「0」の2進値を伴う最上位ビットを有するNビットデータパターンに対応し、前記第2のマッピングシェルの前記マッピングのそれぞれは、「1」の2進値を伴う最上位ビットを有するNビットデータパターンに対応する、請求項26に記載の装置。
  31. 前記第1のマッピングシェルに対応するマッピングは、系統的であり、前記第2のマッピングシェルに対応するマッピングは、ほぼ系統的である、請求項26〜30のいずれか1項に記載の装置。
  32. 前記コントローラは、前記受け取ったデータに対して符号拡張を行うことなく、前記方法の実行を制御するように構成される、請求項26〜30のいずれか1項に記載の装置。
JP2015505897A 2012-04-11 2013-04-11 プログラム状態とデータパターンとの間のマッピング Active JP5913735B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/444,314 2012-04-11
US13/444,314 US8788743B2 (en) 2012-04-11 2012-04-11 Mapping between program states and data patterns
PCT/US2013/036125 WO2013155269A1 (en) 2012-04-11 2013-04-11 Mapping between program states and data patterns

Publications (2)

Publication Number Publication Date
JP2015514279A true JP2015514279A (ja) 2015-05-18
JP5913735B2 JP5913735B2 (ja) 2016-04-27

Family

ID=49326150

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015505897A Active JP5913735B2 (ja) 2012-04-11 2013-04-11 プログラム状態とデータパターンとの間のマッピング

Country Status (6)

Country Link
US (3) US8788743B2 (ja)
EP (1) EP2836915A4 (ja)
JP (1) JP5913735B2 (ja)
KR (1) KR101679495B1 (ja)
CN (1) CN104364773B (ja)
WO (1) WO2013155269A1 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9280456B2 (en) 2013-11-12 2016-03-08 Micron Technology, Inc. Mapping between program states and data patterns
JP2019040655A (ja) * 2017-08-28 2019-03-14 東芝メモリ株式会社 メモリシステム

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6342099A (ja) * 1986-08-06 1988-02-23 Fujitsu Ltd 3値レベルrom
JPH0766304A (ja) * 1993-08-31 1995-03-10 Toshiba Corp 半導体記憶装置
JP2007226952A (ja) * 2006-02-22 2007-09-06 Samsung Electronics Co Ltd メモリセル間のカップリングノイズを低減させる3−レベル不揮発性半導体メモリ装置およびその駆動方法
JP2012507819A (ja) * 2008-10-30 2012-03-29 マイクロン テクノロジー, インク. マルチレベルセルメモリに対するデータパス、格納方法およびメモリアレイの使用方法

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6587372B2 (en) 2001-01-11 2003-07-01 Micron Technology, Inc. Memory device with multi-level storage cells and apparatuses, systems and methods including same
JP4267843B2 (ja) * 2001-08-31 2009-05-27 株式会社神戸製鋼所 金属鉄の製法
US7071849B2 (en) 2004-04-04 2006-07-04 Guobiao Zhang Fractional-Bit Systems
US7167109B2 (en) 2005-03-31 2007-01-23 Chenming Hu Hybrid fractional-bit systems
US8055979B2 (en) * 2006-01-20 2011-11-08 Marvell World Trade Ltd. Flash memory with coding and signal processing
KR101274950B1 (ko) * 2006-05-12 2013-06-17 애플 인크. 조절가능한 용량을 가진 메모리 디바이스
WO2007132456A2 (en) 2006-05-12 2007-11-22 Anobit Technologies Ltd. Memory device with adaptive capacity
EP1942578A1 (en) * 2006-11-29 2008-07-09 Broadcom Corporation Address generation for contention-free memory mappings of turbo codes with ARP (almost regular permutation) interleaves
KR100822030B1 (ko) 2006-12-26 2008-04-15 삼성전자주식회사 고 부호화율 부호를 이용한 멀티 레벨 셀 메모리 장치
US7848142B2 (en) 2007-10-31 2010-12-07 Micron Technology, Inc. Fractional bits in memory cells
US7787307B2 (en) 2008-12-08 2010-08-31 Micron Technology, Inc. Memory cell shift estimation method and apparatus
JP2011014195A (ja) 2009-07-02 2011-01-20 Toshiba Corp フラッシュメモリ
US8619474B2 (en) 2009-09-10 2013-12-31 Micron Technology, Inc. Data line management in a memory device
US8615703B2 (en) 2010-06-04 2013-12-24 Micron Technology, Inc. Advanced bitwise operations and apparatus in a multi-level system with nonvolatile memory

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6342099A (ja) * 1986-08-06 1988-02-23 Fujitsu Ltd 3値レベルrom
JPH0766304A (ja) * 1993-08-31 1995-03-10 Toshiba Corp 半導体記憶装置
JP2007226952A (ja) * 2006-02-22 2007-09-06 Samsung Electronics Co Ltd メモリセル間のカップリングノイズを低減させる3−レベル不揮発性半導体メモリ装置およびその駆動方法
JP2012507819A (ja) * 2008-10-30 2012-03-29 マイクロン テクノロジー, インク. マルチレベルセルメモリに対するデータパス、格納方法およびメモリアレイの使用方法

Also Published As

Publication number Publication date
US20150162089A1 (en) 2015-06-11
JP5913735B2 (ja) 2016-04-27
CN104364773A (zh) 2015-02-18
US20130275714A1 (en) 2013-10-17
US8788743B2 (en) 2014-07-22
US9355730B2 (en) 2016-05-31
WO2013155269A1 (en) 2013-10-17
KR101679495B1 (ko) 2016-12-06
CN104364773B (zh) 2017-08-29
US8977808B2 (en) 2015-03-10
US20140351491A1 (en) 2014-11-27
KR20140142365A (ko) 2014-12-11
EP2836915A1 (en) 2015-02-18
EP2836915A4 (en) 2016-03-16

Similar Documents

Publication Publication Date Title
KR102102828B1 (ko) 메모리에서 에러 정정 코드(ecc) 연산
KR102179228B1 (ko) 메모리에서의 티어드 오류 정정 코드(ecc) 동작
US11586679B2 (en) Proactive corrective actions in memory based on a probabilistic data structure
JP6181257B2 (ja) 誤り訂正符号の編成を含む装置および方法
JP5785330B2 (ja) メモリエンデュランスのために動作させる装置および方法
JP5992628B2 (ja) 信頼性データの更新
US10324785B2 (en) Decoder using low-density parity-check code and memory controller including the same
US9411529B2 (en) Mapping between program states and data patterns
US9229848B2 (en) Determining soft data for fractional digit memory cells
US9268629B2 (en) Dual mapping between program states and data patterns
JP5913735B2 (ja) プログラム状態とデータパターンとの間のマッピング
US10095424B2 (en) Apparatus and method for programming non-volatile memory using a multi-cell storage cell group
CN111477260A (zh) 平衡块损耗均衡以实现最佳ssd耐久性
CN117409844A (zh) 数据恢复方法、存储器存储装置及存储器控制器

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20151020

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20151104

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160204

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: 20160322

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20160401

R150 Certificate of patent or registration of utility model

Ref document number: 5913735

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