(57)【特許請求の範囲】
【請求項１】
Ｎビットデータ（Ｎは３以上の整数）が取り得る２Ｎ通りのデータパターンを、Ａ個の相対的に低い閾値（Ａは２の累乗値）とＢ個の相対的に高い閾値（ＢはＡよりも小さい１以上の整数）の中のいずれかの閾値にそれぞれがプログラムされるＧ個のメモリセル（Ｇは２以上の整数）を用いて実現される、（Ａ＋Ｂ）Ｇ個のコンステレーションポイントにマッピングするデータプログラム方法であって、
前記Ｎビットデータのうちの所定の１ビットの値が第１の論理値をとるときの前記Ｎビットデータが取り得るデータパターンを、前記Ｇ個のメモリセルのそれぞれを前記相対的に低い閾値のいずれかにプログラムして実現されるＡＧ個のコンステレーションポイントにマッピングし、
前記Ｎビットデータのうちの前記所定の１ビットの値が第２の論理値をとるときの前記Ｎビットデータが取り得るデータパターンを、前記Ｇ個のメモリセルのうちの一つを前記相対的に高い閾値にプログラムし残りのメモリセルを前記相対的に低い閾値のいずれかにプログラムして実現される（Ｇ×Ａ（Ｇ−１）×Ｂ）個のコンステレーションポイントにマッピングするデータプログラム方法。
【請求項２】
前記（Ａ＋Ｂ）Ｇ個のコンステレーションポイントによりコンステレーションを構成する、請求項１記載のデータプログラム方法。
【請求項３】
前記コンステレーションは、第１のマッピングシェル及び第２のマッピングシェルを有し、前記第１のマッピングシェルは、前記ＡＧ個のコンステレーションポイントを有し、前記第２のマッピングシェルは、前記（Ｇ×Ａ（Ｇ−１）×Ｂ）個のコンステレーションポイントを有する、請求項２記載のデータプログラム方法。
【請求項４】
前記所定の１ビットの値が前記第２の論理値をとるとき、前記所定の１ビットの次のビットの論理値に応じて、前記相対的に高い閾値にプログラムすべきメモリセルを選択する、請求項１記載のデータプログラム方法。
【請求項５】
前記所定の１ビットの値が前記第２の論理値をとるとき、前記所定の１ビットの次の複数ビットが取りえる論理値パターンに応じて、前記相対的に高い閾値にプログラムすべきメモリセルを選択する、請求項１記載のデータプログラム方法。
【請求項６】
前記Ｇは、（Ｇ×Ｂ／Ａ）が整数になる最小値である、請求項１乃至５のいずれかに１項に記載のデータプログラム方法。
【請求項７】
前記所定の１ビットは、最上位ビットである、請求項１乃至６のいずれか１項に記載のデータプログラム方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、概して、半導体メモリおよび方法に関し、より具体的には、プログラム状態とデータパターンとの間のマッピングに関する。
【背景技術】
【０００２】
メモリデバイスは、典型的に、コンピュータまたは他の電子デバイスの中に、内部半導体集積回路として提供される。揮発性および不揮発性メモリを含む、多くの異なる種類のメモリがある。揮発性メモリは、そのデータ（例えば、情報）を維持するために電力を必要とする可能性があり、数ある中でも、ランダムアクセスメモリ（ＲＡＭ）、ダイナミックランダムアクセスメモリ（ＤＲＡＭ）、およびシンクロナスダイナミックランダムアクセスメモリ（ＳＤＲＡＭ）が挙げられる。不揮発性メモリは、給電されていないときに、記憶されたデータを保持することによって持続的なデータを提供することができ、数ある中でも、ＮＡＮＤ型フラッシュメモリ、ＮＯＲ型フラッシュメモリ、スタティックランダムアクセスメモリ（ＳＲＡＭ）、相変化ランダムアクセスメモリ（ＰＣＲＡＭ）および抵抗性ランダムアクセスメモリ（ＲＲＡＭ（登録商標））等の抵抗変化型メモリ、ならびにスピントルクトランスファランダムアクセスメモリ（ＳＴＴＲＡＭ）等の磁気ランダムアクセスメモリ（ＭＲＡＭ）が挙げられる。
【０００３】
メモリデバイスは、互いに組み合わせて、ソリッドステートドライブ（ＳＳＤ）を形成することができる。ソリッドステートドライブとしては、数ある種々の他の種類の不揮発性および揮発性メモリの中でも、ＮＡＮＤ型フラッシュメモリおよび／またはＮＯＲ型フラッシュメモリ等の不揮発性メモリが挙げられ、ならびに／またはＤＲＡＭ等の揮発性メモリが挙げられる。フローティングゲートフラッシュデバイスおよび電荷トラップフラッシュ（ＣＴＦ）デバイスを含むフラッシュメモリデバイスは、電荷を記憶するために使用される記憶ノード（例えば、フローティングゲートまたは電荷トラッピング構造）を有するメモリセルを備えることができ、広範囲にわたる電子的用途のための不揮発性メモリとして利用され得る。
【０００４】
メモリセルは、アレイアーキテクチャで配設することができ、また、所望の状態にプログラムすることができる。例えば、セルをいくつかのプログラム状態のうちの１つに配置するために、電荷を、メモリセルの記憶ノード（例えば、フローティングゲート）に配置するか、またはそこから除去することができる。一例として、シングルレベルセル（ＳＬＣ）を、記憶されたデータ単位（例えば、２進単位の１または０）を表すことができる、２つのプログラム状態のうちの１つにプログラムすることができる。種々のフラッシュメモリセルは、２つを超えるプログラム状態にプログラムすることができ、それらは複数の記憶されたデータ単位（例えば、２進単位１１１１、０１１１、００１１、１０１１、１００１、０００１、０１０１、１１０１、１１００、０１００、００００、１０００、１０１０、００１０、０１１０、または１１１０）を表すことができる。そのようなメモリセルは、マルチ状態セル、マルチ単位セル、またはマルチレベルセル（ＭＬＣ）と称され得る。ＭＬＣは、各セルが１つを超える桁（例えば、１つを超えるビット）を表すことができるので、メモリセルの数を増加させることなく、より高い密度のメモリの製造を可能にすることができる。
【０００５】
いくつかのＭＬＣは、記憶されたデータ単位の整数に対応しないプログラム状態の数（Ｌ）にプログラムすることができる。すなわち、セルに記憶することができるデータ単位の数（Ｌｏｇ２（Ｌ））は、記憶されたデータ単位の小数（例えば、小数個のビット）に対応することができる。
【図面の簡単な説明】
【０００６】
【図１】本開示のいくつかの実施形態に従う、少なくとも１つのメモリシステムを含むコンピューティングシステムの形態の装置のブロック図である。
【図２】本開示のいくつかの実施形態に従う、異なる数のプログラム状態にプログラム可能なメモリセルのプログラム状態に対応する閾値電圧を例示する図である。
【図３】本開示のいくつかの実施形態に従う、データパターンとプログラム状態との間のマッピング方法の機能ブロック図である。
【図４Ａ】図４Ａは、本開示のいくつかの実施形態に従う、第１および第２のマッピングシェルを有し、データパターンとプログラム状態との間のマッピングと関連するコンステレーションを含む図を例示する図である。
【図４Ｂ】図４Ｂは、本開示のいくつかの実施形態に従う、データパターンとプログラム状態との間のマッピングを例示する図である。図４Ｂで示される実施例は、２つのセルにわたる２次元（２Ｄ）マッピングをサポートする。
【図４Ｃ】図４Ｃは、本開示のいくつかの実施形態に従う、データパターンとプログラム状態との間のマッピングを例示する図である。図４Ｃで示される実施例は、２つのセルにわたる２次元（２Ｄ）マッピングをサポートする。
【図５Ａ】図５Ａは、本開示のいくつかの実施形態に従う、データパターンとプログラム状態との間のマッピングを例示する図である。図５Ａで示される実施例は、４つのセルにわたる４次元（４Ｄ）マッピングをサポートする。
【図５Ｂ】図５Ｂは、本開示のいくつかの実施形態に従う、データパターンとプログラム状態との間のマッピングを例示する図である。図５Ｂで示される実施例は、４つのセルにわたる４次元（４Ｄ）マッピングをサポートする。
【図６Ａ】図６Ａは、本開示のいくつかの実施形態に従う、データパターンとプログラム状態との間のマッピングを例示する図である。
【図６Ｂ】図６Ｂは、本開示のいくつかの実施形態に従う、データパターンとプログラム状態との間のマッピングを例示する図である。
【図７Ａ】図７Ａは、本開示のいくつかの実施形態に従う、データパターンとプログラム状態との間のマッピングを例示する図である。図７Ａで示される実施例は、８つのセルにわたる８次元（８Ｄ）マッピングをサポートする。
【図７Ｂ】図７Ｂは、本開示のいくつかの実施形態に従う、データパターンとプログラム状態との間のマッピングを例示する図である。図７Ｂで示される実施例は、８つのセルにわたる８次元（８Ｄ）マッピングをサポートする。
【発明を実施するための形態】
【０００７】
本開示は、プログラム状態とデータパターンとの間でマップするための方法および装置を含む。１つの方法は、Ｇ個のメモリセルの群を、群のそれぞれのプログラム状態の組み合わせを受け取ったＮ単位データパターンに対応するコンステレーションポイントにマップするようにプログラムすることであって、群は、１メモリセルあたりＮ／Ｇ単位データを記憶するために使用される、プログラムすることを含み、コンステレーションポイントは、メモリセルの群のそれぞれのプログラム状態の組み合わせを、Ｎ単位データパターンにマップすることと関連するコンステレーションの、いくつかのコンステレーションポイントのうちの１つであり、コンステレーションは、第１のマッピングシェルおよび第２のマッピングシェルを含み、第１および第２のマッピングシェルのそれぞれに対応するコンステレーションポイントは、Ｇに等しい次数の多項式に少なくとも部分的に基づいて決定される。
【０００８】
本開示の実施形態は、例えば、１セルあたりの小数単位（１セルあたりの小数ビット）の構成に関連して、データパターンに対するプログラム状態の実質的に系統的なマッピング（例えば、割り当て）およびその逆も提供することができる。実施形態は、以前の１セルあたりの小数ビットのマッピングアルゴリズムと比較して、誤り検出および／または修正システム（例えば、数ある中でも、低密度パリティ検査（ＬＤＰＣ）符号やハミング符号等の誤り訂正符号（ＥＣＣ）を利用するシステム）に悪影響を及ぼす可能性がある、誤り増倍および／または伝搬を制限することができる。実施形態はまた、種々他の利点の中でも、冗長性を加えることなく、また、いくつかの以前の手法（例えば、余分なパリティを生成する可能性がある基底変換マッピング）のように符号拡張を利用することなく、効果的な１セルあたりの小数ビットのマッピングを提供する等の利点も提供することができる。
【０００９】
本開示の以下の発明を実施するための形態では、本明細書の一部を形成し、本開示のいくつかの実施形態がどのように実践される場合があるかを中で例として示す、添付の図面を参照する。これらの実施形態は、当業者が本開示の実施形態を実践することを可能にするように十分な詳細が説明され、他の実施形態が利用されてもよいこと、および本開示の範囲を逸脱することなく、プロセス、電気的、および／または構造的変更が行われてもよいことが理解される。本明細書に使用される場合、指示子「Ｍ」、「Ｎ」、「ｎ」、「Ａ」、「Ｂ」、「Ｇ」、および「Ｌ」は、特に図面の参照番号に関して、そのように指定されるいくつかの特定の特徴を、本開示のいくつかの実施形態とともに含むことができることを示す。本明細書で使用される場合、「いくつかの」何かは、そのようなものの１つ以上を指すことができる。
【００１０】
本明細書中の図面は、上位の桁が、図面の図番号に対応し、残りの桁は、図面の中の要素または構成要素を識別するという、番号規則に従う。異なる図面間の同様な要素または構成要素は、同様な数字の使用によって識別され得る。例えば、１００は、図１の要素「００」を参照し得、同様な要素が、図５では５００として参照され得る。理解されるように、本明細書の多様な実施形態に示される要素は、本開示のいくつかの追加の実施形態を提供するように、追加、交換、および／または削除することができる。加えて、理解されるように、図面の中に提供される要素の比率および相対尺度は、本発明の実施形態を図示することを意図しており、限定の意味で解釈されてはならない。
【００１１】
図１は、本開示のいくつかの実施形態に従う、少なくとも１つのメモリシステム１０４を含む、コンピューティングシステム１０１の形態の装置のブロック図である。本明細書で使用される場合、メモリシステム１０４、コントローラ１０８、またはメモリデバイス１１０はまた、別々に「装置」ともみなされ得る。メモリシステム１０４は、例えば、ソリッドステートドライブ（ＳＳＤ）とすることができ、また、ホストインターフェース１０６と、コントローラ１０８（例えば、プロセッサおよび／または他のコントロール回路）と、メモリシステム１０４のための記憶ボリュームを提供するいくつかのメモリデバイス１１０−１、・・・、１１０−Ｍ（例えば、ＮＡＮＤフラッシュデバイス等のソリッドステートメモリデバイス）とを含むことができる。いくつかの実施形態において、コントローラ１０８、メモリデバイス１１０−１〜１１０−Ｍ、および／またはホストインターフェース１０６は、単一のダイ上または単一のパッケージ内（管理型ＮＡＮＤアプリケーション）に物理的に配置することができる。また、いくつかの実施形態において、メモリ（例えば、メモリデバイス１１０−１〜１１０−Ｍ）は、単一のメモリデバイスを含むことができる。
【００１２】
図１で例示されるように、コントローラ１０８は、複数のホストチャネルを介してホストインターフェース１０６およびメモリデバイス１１０−１、・・・、１１０−Ｍに連結することができ、また、メモリシステム１０４とホスト１０２との間でデータを転送するために使用することができる。インターフェース１０６は、標準インターフェースの形態とすることができる。例えば、メモリシステム１０４がコンピューティングシステム１００でデータ記憶に使用されるときに、インターフェース１０６は、数ある他のコネクタおよびインターフェースの中でも、シリアルアドバンストテクノロジーアタッチメント（ＳＡＴＡ）、周辺機器相互接続エクスプレス（ＰＣＩｅ）またはユニバーサルシリアルバス（ＵＳＢ）とすることができる。しかしながら、一般に、インターフェース１０６は、メモリシステム１０４と、インターフェース１０６に対する互換レセプタを有するホスト１０２との間で、制御、アドレス、データ、および他の信号を渡すためのインターフェースを提供することができる。
【００１３】
ホスト１０２は、数ある種々の他の種類のホストの中でも、パーソナルラップトップコンピュータ、デスクトップコンピュータ、デジタルカメラ、携帯電話、メモリカードリーダ等の、ホストシステムとすることができる。ホスト１０２は、システムマザーボードおよび／またはバックプレーンを含むことができ、また、いくつかのメモリアクセスデバイス（例えば、いくつかのプロセッサ）を含むことができる。
【００１４】
数ある他の動作の中でも、コントローラ１０８は、メモリデバイス１１０−１、・・・、１１０−Ｍと通信して、データの読み出し、書き込み、および消去動作を制御することができる。コントローラ１０８は、例えば、いくつかのメモリデバイス１１０−１、・・・、１１０−Ｍへのアクセスを制御するための、および／またはホスト１０２とメモリデバイス１１０−１、・・・、１１０−Ｍとの間のデータ転送を容易にするための、ハードウェアおよび／またはファームウェア（例えば、１つ以上の集積回路）および／またはソフトウェアの形態のいくつかの構成要素を含むことができる。例えば、図１で例示される実施例において、コントローラ１０８は、データパッカー／アンパッカー構成要素１１２と、誤り符号化／復号化構成要素１１４とを含む。しかしながら、コントローラ１０８は、本開示の実施形態を不明瞭にしないために例示されない、種々の他の構成要素を含むことができる。また、いくつかの構成要素において、構成要素１１２および／または１１４は、コントローラ１０８の構成要素ではない場合がある（例えば、構成要素１１２／１１４は、独立した構成要素とすることができる）。
【００１５】
データパッカー／アンパッカー構成要素１１２は、本明細書で説明されるいくつかの実施形態に従う、メモリセルのプログラム状態とデータとの間のマッピングと関連して使用することができる。誤り符号化／復号化構成要素１１４は、例えば、ホスト１０２とメモリデバイス１１０−１、・・・、１１０−Ｍとの間で転送されるユーザデータを符号化／復号化することができる、ＬＤＰＣ符号器／復号器とすることができる。
【００１６】
メモリデバイス１１０−１、・・・、１１０−Ｍは、いくつかのメモリセルのアレイを含むことができる。アレイは、例えば、ＮＡＮＤアーキテクチャを有するフラッシュアレイとすることができる。しかしながら、実施形態は、特定の種類のメモリアレイまたはアレイアーキテクチャに限定されない。メモリセルは、例えば、いくつかの物理ページを含むいくつかのブロックに群化することができる。いくつかのブロックを１つのメモリセルのプレーンに含めることができ、また、１つのアレイがいくつかのプレーンを含むことができる。一例として、メモリデバイスは、１ページあたり８ＫＢ（キロバイト）のユーザデータ、１ブロックあたり１２８ページのユーザデータ、１プレーンあたり２０４８ブロック、および１デバイスあたり１６プレーンを記憶するように構成され得る。
【００１７】
メモリデバイス１１０−１、・・・、１１０−Ｍが、ＮＡＮＤアーキテクチャを有するフラッシュアレイを備える実施形態において、アレイは、アクセス線、例えばワード線、および交差データ線、例えばビット線を備えることができる。アレイは、メモリセルの「ストリング」を備えることができ、該ストリングは、それぞれの文字列を共通ソースに選択的に連結するように構成されるソースセレクトゲートと、それぞれの文字列をそれぞれのビット線に選択的に連結するように構成されるドレインセレクトゲートとの間で、ソースからドレインに直列に接続される。メモリセルは、例えば、ソースと、ドレインと、電荷記憶ノード（例えば、フローティングゲート）と、制御ゲートを備えることができ、セルの「行」に対応するセルの制御ゲートは、一般に、ワード線に連結される。ＮＯＲフラッシュアレイは、メモリセルのストリングがセレクトゲート間に並列に連結されていることを除いて、同じように構造化される。
【００１８】
当業者が認識するように、選択ワード線に連結されるフラッシュセルの群は、メモリセルのページとしてともにプログラムする、および／または読み出すことができる。プログラミング動作（例えば、書き込み動作）は、選択ワード線に連結された選択セルの閾値電圧（Ｖｔ）を目標の（例えば、所望の）プログラム状態に対応する所望のＶｔレベルまで高めるために、いくつかのプログラムパルス（例えば、１６Ｖ〜２０Ｖ）をその選択ワード線に印加することを含むことができる。読み出し動作は、選択セルのプログラム状態を決定するために、（例えば、セルに対応するワード線に印加される読み出し電圧に応答する）選択セルに連結されたビット線の電圧および／または電流の変化を感知することを含むことができる。
【００１９】
本明細書でさらに説明されるように、本開示のいくつかの実施形態において、メモリセルは、記憶されたデータ単位の整数（例えば、ビット）または記憶されたデータ単位の小数のいずれかに対応する多数のプログラム状態のうちの１つにプログラムすることができる。いくつかの実施形態において、それぞれが小数個のビットを記憶する、セルの群のいくつかのセルのプログラム状態は、セルの群が整数個のビットを記憶するように組み合わせることができる。例えば、それぞれが５つのプログラム状態のうちの１つにプログラムされ、よって、各セルが２．２５ビットを記憶することができる、セルの群を考える。この例において、４つのセルの群の組み合わせたプログラム状態は、９ビット（２．２５ビット／セル×４セル）に対応する。すなわち、９ビットデータパターンを、４つのセルの群に記憶することができる。このように、コントローラ１０８は、それぞれが１セルあたり小数個のビットを記憶するセルの群のプログラミングおよび／または読み出しを制御することができ、また、該群に記憶されたＮ単位データパターンを（例えば、ホスト１０２に）出力することができ、ここで、Ｎは、整数データ単位（例えば、ビット）である。群の決定されたプログラム状態の組み合わせが対応する、特定のデータパターン（例えば、ビットパターン）は、本明細書で説明されるいくつかの実施形態に従うマッピングアルゴリズムに基づいて決定することができる。
【００２０】
図２は、本開示のいくつかの実施形態に従う、異なる数のプログラム状態にプログラム可能なメモリセルのプログラム状態に対応する閾値電圧を例示する図表２１６である。メモリセルは、上で説明されるＮＡＮＤ型フラッシュメモリセルとすることができ、また、約−２Ｖ〜＋３Ｖの電圧の範囲内の種々のＶｔレベルにプログラムすることができる。しかしながら、実施形態は、特定の種類のメモリセルに、または特定の動作電圧範囲に限定されない。
【００２１】
行２１８は、メモリセルがプログラムされ得るプログラム状態の数を示す。図２で示されるプログラム状態は、Ｌ０、Ｌ１、Ｌ２等のラベルが付され、各プログラム状態は、それぞれのプログラム状態に対応するＶｔレベルの分布を表す。いくつかの実施形態において、プログラム状態Ｌ０は、最も低いプログラム状態（例えば、最も低いＶｔレベルに対応するプログラム状態）とすることができ、また、消去動作の後にセルが最も低い状態になり得るので、消去状態と称され得る。しかしながら、実施形態は、そのように限定されない。
【００２２】
図２において、列２２０−１は、２つの異なるプログラム状態Ｌ０およびＬ１のうちの１つにプログラムされたメモリセルに対応し、また、１セルあたり１データ単位（例えば、ビット）を記憶することができる。列２２０−２は、３つの異なるプログラム状態Ｌ０、Ｌ１、およびＬ２のうちの１つにプログラムされたメモリセルに対応し、また、１セルあたり１．５データ単位を記憶することができる。列２２０−３は、４つの異なるプログラム状態Ｌ０、Ｌ１、Ｌ２、およびＬ３のうちの１つにプログラムされたメモリセルに対応し、また、１セルあたり２データ単位を記憶することができる。列２２０−４は、５つの異なるプログラム状態Ｌ０〜Ｌ４のうちの１つにプログラムされたメモリセルに対応し、また、１セルあたり２．２５データ単位を記憶することができる。列２２０−５は、６つの異なるプログラム状態Ｌ０〜Ｌ５のうちの１つにプログラムされたメモリセルに対応し、また、１セルあたり２．５データ単位を記憶することができる。列２２０−６は、７つの異なるプログラム状態Ｌ０〜Ｌ６のうちの１つにプログラムされたメモリセルに対応し、また、１セルあたり２．７５データ単位を記憶することができる。列２２０−７は、８つの異なるプログラム状態Ｌ０〜Ｌ７のうちの１つにプログラムされたメモリセルに対応し、また、１セルあたり３データ単位を記憶することができる。列２２０−８は、９つの異なるプログラム状態Ｌ０〜Ｌ８のうちの１つにプログラムされたメモリセルに対応し、また、１セルあたり３．１２５データ単位を記憶することができる。
【００２３】
２の累乗個のプログラム状態（例えば、２つのプログラム状態、４つのプログラム状態、８つのプログラム状態、１６のプログラム状態等）にプログラム可能なメモリセルは、１セルあたりの整数個のビット（例えば、ｌｏｇ２（Ｌ）ビット／セル、ここで、Ｌは、セルがプログラム可能なプログラム状態の数である）を個々に記憶することができる。このように、各メモリセルのプログラム状態は、Ｌ個の異なるＮビットデータパターンのうちの１つに直接マップすることができ、ここで、Ｎは、セルに記憶されるビットの整数個数である。例えば、２つのプログラム状態（Ｌ０およびＬ１）にプログラム可能なセルのプログラム状態は、０または１（例えば、１ビットデータパターン）にマップすることができ、４つのプログラム状態（Ｌ０〜Ｌ３）にプログラム可能なセルのプログラム状態は、それぞれ、００、０１、１０、および１１（例えば、２ビットデータパターン）にマップすることができ、また、８つのプログラム状態（Ｌ０〜Ｌ７）にプログラム可能なセルのプログラム状態は、それぞれ、０００、００１、０１０、０１１、１００、１０１、１１０、および１１１（例えば、３ビットデータパターン）にマップすることができる。
【００２４】
対照的に、２の非累乗個のプログラム状態にプログラム可能なメモリセルは、１セルあたり、小数（例えば、非整数）個のビットを個々に記憶する。このように、個々のセルのプログラム状態をＮビットデータパターンにマッピングするのではなく、セルの群の個々のセルがプログラムされるＬ個のプログラム状態の組み合わせが、Ｎビットデータパターンにマッピングされ、ここで、Ｎは、群に記憶されるビットの整数個数である。例えば、３つのプログラム状態（Ｌ０、Ｌ１、およびＬ２）（例えば、１．５ビット／セル）にプログラム可能な２つのメモリセルの群のそれぞれのプログラム状態の組み合わせは、３ビット（例えば、１．５ビット／セル×２セル）データパターン（例えば、０００、１１０、１００等）にマップされる。同様に、５つのプログラム状態（Ｌ０〜Ｌ４）（例えば、２．２５ビット／セル）にプログラム可能な４つのメモリセルの群のそれぞれのプログラム状態の組み合わせは、９ビット（例えば、２．２５ビット／セル×４セル）データパターン（例えば、１１００１１００１、０００００１１１１、１０１０１０１０１等）にマップされ、９つの状態（Ｌ０〜Ｌ８）（例えば、３．１２５ビット／セル）にプログラム可能な８つのメモリセルの群のそれぞれのプログラム状態の組み合わせは、２５ビット（例えば、３．１２５ビット／セル×８セル）のデータパターン（例えば、０００００１１１１１０００００１１１１１０００００、１０１０１０１０１０１０１０１０１０１０１０１０１、１１１１１１１１１１１１１１１１１１０００００００等）にマップされる。
【００２５】
一般に、整数（Ｎ）個のデータ単位（例えば、ビット）を集合的に記憶するが、小数個のデータ単位を個々に記憶するセルの一群について、２Ｎの異なるＮ単位データパターンが、その群の対応する個数（例えば、２Ｎ個）の異なるプログラム状態の組み合わせにマップされる。一例として、群が３ビットのデータ（例えば、１．５ビット／セル）を集合的に記憶するように、それぞれが３つのプログラム状態（Ｌ０、Ｌ１、Ｌ２）のうちの１つにプログラムされる、２つのセルの群を考える。このように、２３（例えば、８）の異なる３ビットデータパターンが、２３（例えば、８）の異なる群のプログラム状態の組み合わせにマップされる。
【００２６】
いくつかの実施形態では、小数単位のメモリセルの群と関連する、異なる可能なプログラム状態の組み合わせを表すために、コンステレーション（例えば、Ｌ×Ｌ平方のコンステレーション、ここで、Ｌは、セルがプログラム可能な、プログラム状態の数である）を使用することができる。例えば、各可能なプログラム状態の組み合わせは、特定のＮ単位データパターンにマップすることができる、異なるコンステレーションポイントに対応することができ、ここで、Ｎは、セルの群に記憶されるデータ単位の整数個数である。プログラム状態の組み合わせの数（例えば、コンステレーションポイントの数）は、Ｌ２に等しくすることができ、これは、セルの群に記憶されるＮ個のデータユニット数に対応する、２Ｎ個の異なるＮ単位データパターン以上でなければならない。このように、Ｌ２個のプログラム状態の組み合わせの１つ以上が、Ｎ単位データパターンにマップされ得ないか、またはＬ２個のプログラム状態の組み合わせの１つ以上が、Ｌ２個のプログラム状態の組み合わせのうちの１つ以上の他のものと同じ、Ｎ単位データパターンの１つにマップされ得る。本開示のいくつかの実施形態に従うマッピングコンステレーションの実施例は、図４Ａに関連して下で説明される。
【００２７】
小数ユニット（例えば、小数ビット）のメモリセルの群に対応する、それぞれのプログラム状態の組み合わせに対するデータパターンの特定のマッピングおよびその逆も、変動し得る。すなわち、プログラム状態の組み合わせがデータパターンに割り当てられる様式は、一様でない場合がある。いくつかの以前の手法では、データパターンを特定のプログラム状態の組み合わせにマップすることと関連して、符号拡張をデータパターンに対して行うことができる。しかしながら、そのような符号拡張は、誤り修正符号の冗長性の増加につながり、容量を減少させ、また、誤り増倍および／または伝搬につながる可能性がある。対照的に、本開示のいくつかの実施形態は、例えば、符号拡張を行うことなく、データパターンとプログラム状態との間で、効果的かつ効率的にマップすることができる。このように、本開示のいくつかの実施形態は、以前の手法と比較して、減少させた複雑さを提供することができ、ならびに／または誤り増倍および／もしくは伝搬を低減および／もしくは防止することができる。
【００２８】
図３と関連して下でさらに説明するように、本開示のいくつかの実施形態は、各セルがＮ／Ｇデータ単位を記憶するように、Ｇ個のメモリセルの群に記憶される（例えば、書き込まれる）Ｎ単位データパターンを受け取ることを含むことができる。メモリセルは、それぞれをＬ個のプログラム状態のうちの１つにプログラム可能な、小数単位メモリセルとすることができる（例えば、Ｎ／Ｇは、非整数とすることができる）。Ｌは、１セルあたりＮ／Ｇデータ単位を記憶するために使用されるプログラム状態の最小数とすることができ、セルは、１セルあたりＬｏｇ２（Ｌ）データ単位を記憶することができる。一例として、９単位データパターン（例えば、Ｎ＝９）を、４つのメモリセル（例えば、Ｇ＝４）の群に記憶することができ、よって、各メモリセルは、１セルあたり２．２５データ単位（例えば、Ｎ／Ｇ＝２．２５）を記憶する。この例では、１セルあたり２．２５データ単位を記憶するために必要なプログラム状態の最小数は、５（例えば、Ｌ＝５）である。すなわち、それぞれを５つのプログラム状態のうちの１つにプログラム可能な４つのメモリセルの群は、９単位データパターンを記憶することができる。４つのセルの群の特定のプログラム状態の組み合わせと、それらが対応するそれぞれの９単位（例えば、９ビット）データパターンとの間のマッピングは、本明細書で説明されるいくつかの実施形態に従って決定することができる。
【００２９】
いくつかの実施形態において、プログラム状態の組み合わせとデータパターンとの間のマッピングは、次数Ｇの多項式に基づき、ここで、Ｇは、データパターンに対応する整数個データ単位を記憶するために組み合わせられる、小数単位セルの数である。いくつかの実施形態において、多項式の第１項は、第１のマッピングシェルに対応し、多項式の第２項は、第２のマッピングシェルに対応し、各マッピングシェルは、いくつかのコンステレーションポイントに対応する。一例として、マッピングが基づく多項式は、式（Ａ＋Ｂ）Ｇとすることができ、ＡＧは、第１項であり、また、第１のマッピングシェルのコンステレーションポイントの数であり、Ｇ×Ａ（Ｇ−１）×Ｂは、第２項であり、また、第２のマッピングシェルのコンステレーションポイントの数に対応する。下でさらに説明するように、Ａは、第１のマッピングシェルに対応するそれぞれのプログラム状態の組み合わせが決定される、プログラム状態の数とすることができ、Ｂは、第２のマッピングシェルに対応するそれぞれのプログラム状態の組み合わせが決定される、追加のプログラム状態の数（例えば、Ｌ個のプログラム状態の追加の数）とすることができる。このように、２つのマッピングシェルが使用される実施形態において、Ａ＋Ｂは、メモリセルがプログラム可能であるプログラム状態の数に等しい。一例として、Ａは、２ａに等しく、「ａ」は、２ａが、メモリセルがプログラム可能であるプログラム状態の数（例えば、Ｌ）未満である、最大の２の累乗値であるような値である。例えば、６つの異なるプログラム状態にプログラム可能で、２．５ビット／セルを記憶するセルの場合、６未満である２の累乗には２２が最も近いので、Ａは、４に等しくなる。Ａが４に等しいので、Ｂは、２（例えば、６−４）に等しい。このように、第１のマッピングシェルに対応するそれぞれのプログラム状態の組み合わせが決定されるプログラム状態の数は、４である。すなわち、メモリセルがプログラム可能である６つのプログラム状態（例えば、Ｌ０〜Ｌ５）のうちの最初の４つのプログラム状態（例えば、Ｌ０〜Ｌ３）の組み合わせだけが、第１のマッピングシェルのコンステレーションポイントに対応する。この例において、第２のマッピングシェルに対応するそれぞれのプログラム状態の組み合わせ、追加のプログラム状態の数は、２（例えば、Ｂ＝２）である。このように、メモリセルがプログラム可能である６つのプログラム状態（例えば、Ｌ０〜Ｌ５）のうちの最後の２つのプログラム状態（例えば、Ｌ４およびＬ５）のうちの少なくとも１つを含む組み合わせだけが、第２のマッピングシェルのコンステレーションポイントに対応する。いくつかの実施形態において、第１のマッピングシェルに対応するＡ個のプログラム状態は、Ｌ個のプログラム状態の最も低いＡ個のプログラム状態（例えば、最も低いＶｔレベルに対応するプログラム状態）を含み、第２のマッピングシェルに対応するＢ個のプログラム状態は、最も低いＡ個のプログラム状態以外のプログラム状態を含む。
【００３０】
図３は、本開示のいくつかの実施形態に従う、データパターンとプログラム状態との間のマッピング方法の機能ブロック図である。図３で例示される方法は、図１で示されるデータパッカー／アンパッカー１１２等のデータパッキング構成要素を介して実現することができる。図３の３３５で、シンボルサイズ（例えば、Ｎビットシンボル）を形成することができる。シンボルサイズは、例えば、１セルあたり記憶されるビット数３３２（「ｂｐｃ」として示される）を、整数個のビットを記憶するために必要なセルの最小数３３４（「ｎＤ」として示される）を乗じたものに対応することができる。例えば、メモリセルの群が１．５ビット／セルを記憶する場合、整数個のビットを記憶するために必要なセルの最小数は、２セルであり、これは、３ビットのシンボルサイズ（例えば、１．５ビット／セル×２セル）に対応する。Ｎビットのシンボルサイズは、２Ｎ個の異なるＮビットデータパターンが、セルの数３３４に対応する２Ｎ個のそれぞれのプログラム状態の組み合わせ（例えば、２Ｎ個のコンステレーションポイント）にマップされる（例えば、割り当てられる）ことを示す。
【００３１】
図３の３３８では、多項式（例えば、上で説明される（Ａ＋Ｂ）Ｇ）を使用して、決定されたシンボルサイズのデータパターンを２Ｎ個のそれぞれのプログラム状態の組み合わせにマッピングするために必要なマッピングシェルの数を決定し、ならびに、特定のＮビットデータパターンがマッピングシェルのどの数に対応するのかを決定することができる。データパターンが第１のマッピングシェル（例えば、「シェル［０］」）に対応するときには、マッパー３４０−１（「マップ［０］Ｔｏ＿ｎＤ」として示される）が、Ｎビットデータパターンのそれぞれのビットを群のセルにマップする。図３において、マッパー３４０−１の出力「ビット＿１Ｄ」は、群の第１のセルに割り当てられるＮビットデータパターンのビットに対応し、マッパー３４０−１の出力「ビット＿ｎＤ」は、群のｎ番目のセルに割り当てられるＮビットデータパターンのビットに対応し、ここで、ｎは、群の中のセルの数（例えば１〜ｎ）である。下でさらに説明するように、いくつかの実施形態では、データパターンを第１のマッピングシェルにマップするかどうかを決定するために、データパターンの（例えば、Ｎビットシンボルの）ＭＳＢ（最上位ビット）が使用される。例えば、「０」のＭＳＢは、データパターンを第１のマッピングシェルにマップすることを示すことができ、また、「１」のＭＳＢは、データパターンをより高い次数のマッピングシェルにマップすることを示すことができる。データパターンが「ｎ番目」のマッピングシェル（例えば、２番目または３番目のマッピングシェル等）に対応するときには、マッパー３４０−ｎ（「マップ［ｎ］Ｔｏ＿ｎＤ」として示される）が、Ｎビットデータパターンのそれぞれのビットを群のセルにマップする。図３において、マッパー３４０−ｎの出力「ビット＿１Ｄ」は、群の第１のセルに割り当てられるＮビットデータパターンのビットに対応し、マッパー３４０−ｎの出力「ビット＿ｎＤ」は、群のｎ番目のセルに割り当てられるＮビットデータパターンのビットに対応する。
【００３２】
マッパー３４０−１〜３４０−ｎの出力は、３４４で多重化することができ、マッパー３４６（「ビットを状態にマップ」として示される）は、それぞれのセル（例えば、セル１〜ｎＤ）に割り当てられるビットをそれぞれのプログラム状態にマップすることができる。出力３４８−１（「状態＿１Ｄ」として示される）は、ｎ個のセルの群の第１のセルがプログラムされるプログラム状態を示し、出力３４８−ｎ（「状態＿ｎＤ」として示される）は、群のｎ番目のセルがプログラムされるプログラム状態を示し、よって、セル１〜ｎのプログラム状態の組み合わせを、利用される特定のシンボルサイズに対応する２Ｎ個のデータパターンの適切なＮビットデータパターンにマップする。
【００３３】
一例として、図３で示される方法は、図４Ａ等にあるようなマッピングシェルを決定することと関連して使用することができ、該図４Ａは、本開示のいくつかの実施形態に従って、データパターンとプログラム状態との間のマッピングに関連する第１および第２のマッピングシェルを有するコンステレーションを含む、図表４５０を例示する。図表４５０は、３ビットのデータ（例えば、１．５ビット／セル）を記憶する２つのセル（例えば、セル０およびセル１）の群に関連するコンステレーション（例えば、平方コンステレーション）を表し、よって、対応するシンボルサイズは、３ビットであり、これは、［２：０］として表すことができる。行４５１は、セル０（例えば、群の第１のセル）がプログラム可能である３つのプログラム状態（例えば、Ｌ０、Ｌ１、およびＬ２）を例示し、列４５２は、セル１（例えば、群の第２のセル）がプログラム可能である３つのプログラム状態（例えば、Ｌ０、Ｌ１、およびＬ２）を例示する。このように、図４Ａのコンステレーションは、９つの可能なプログラム状態の組み合わせ（セル０状態；セル１状態）に対応する９つのコンステレーションポイントを含む（例えば、（Ｌ０；Ｌ０）、（Ｌ０；Ｌ１）、（Ｌ０；Ｌ２）、（Ｌ１；Ｌ０）、（Ｌ１；Ｌ１）、（Ｌ１；Ｌ２）、（Ｌ２；Ｌ０）、（Ｌ２；Ｌ１）、および（Ｌ２；Ｌ２））。
【００３４】
下に示される表１は、図４Ａ〜４Ｃと関連して説明される実施例に関する構成情報を提供する。表１は、１セルあたり記憶されるビット数（「ｂｐｃ」）（例えば、１．５）、メモリセルがプログラム可能である状態の数（「状態」）（例えば、３）、Ｎビットデータパターン（例えば、２）に対応する（Ｎは、シンボルサイズに対応する）セルの数（「セル／ｎＤ」）、２Ｎ個のプログラム状態の組み合わせ（例えば、８）にマップするために必要なコンステレーションポイントの数（「コンステレーションポイント」）、第１のマッピングシェルに対応するプログラム状態の組み合わせを形成するために使用されるプログラム状態の数（「第１のシェル状態」）（例えば、２）、第１のマッピングシェルのコンステレーションポイントの数（「第１のシェルポイント」）（例えば、４）、第２のマッピングシェルに対応するプログラム状態の組み合わせを形成するために使用される追加のプログラム状態の数（「第２のシェル状態」）（例えば、１）、第２のマッピングシェルのコンステレーションポイントの数（「第２のシェルポイント」）（例えば、４）、およびパッキング密度（「パッキング密度」）（例えば、８８．８９％）を示す。パッキング密度は、（２ｂｐｃ×ｎＤ）／（ＬｎＤ）に等しく、ここで、ｂｐｃは、数がｎＤ個のセルの群に記憶されるビット／セルの数であり、ｂｐｃ×ｎＤは、シンボルサイズ（例えば、Ｎビット）に対応し、Ｌは、セルの群がプログラム可能であるプログラム状態の数である。
【００３５】
【表１】
0005913735.tif 000002
【００３６】
したがって、図４Ａで示される実施例において、コンステレーションポイントの数、故に、異なるプログラム状態の組み合わせの数は９であり、該数は、８つの異なるＮビット（例えば、３ビット）データパターン（例えば、２Ｎ）を表すために必要なデータパターンの数よりも１つ大きい。このように、図４Ａで示されるように、そのプログラム状態の組み合わせに対応するコンステレーションポイント（Ｌ２；Ｌ２）は、（例えば、図４５０で「×」によって示されるように）データパターンにマップされない。このように、パッキング密度は、１００％未満である。一般に、より高いパッキング密度は、メモリ容量（例えば、フラッシュ容量）のより高い利用度に対応する。いくつかの実施形態において、データパターンにマップされない１つ以上のプログラム状態の組み合わせは、より高いプログラム状態の組み合わせ（例えば、より高いＶｔレベルに対応するプログラム状態を含むプログラム状態の組み合わせ）に対応し、これは、より高いプログラム状態に伴う電荷損失効果を防ぐ等の利点を提供することができる。
【００３７】
第１および第２のマッピングシェルのそれぞれのコンステレーションポイントの数は、上で説明される多項式（例えば、（Ａ＋Ｂ）Ｇ）の最初の２つの項を使用して決定することができ、ＡＧは、第１項であり、第１のマッピングシェルのコンステレーションポイントの数を示し、Ｇ×Ａ（Ｇ−１）×Ｂは、第２項であり、第２のマッピングシェルのコンステレーションポイントの数に対応する。図４Ａの１．５ビット／セルの実施例において、Ａは、２に等しく、Ｇは、２に等しく、Ｂは、１に等しい。このように、ＡＧは、４に等しく、Ｇ×Ａ（Ｇ−１）×Ｂは、４に等しい。上で説明されるように、Ａは、第１のマッピングシェルに対応するそれぞれのプログラム状態の組み合わせが決定されるプログラム状態の数であり、Ｂは、第２のマッピングシェルに対応するそれぞれのプログラム状態の組み合わせが決定される追加のプログラム状態の数である。このように、この実施例では、最初の２つのプログラム状態（例えば、Ｌ０およびＬ１）の組み合わせが、第１のマッピングシェルの４つのコンステレーションポイントのそれぞれにマップされ、第２のマッピングシェルの４つのコンステレーションポイントを、最に高いプログラム状態（例えば、Ｌ２）を含むプログラム状態の組み合わせにマップする。すなわち、第２のマッピングシェルのプログラム状態の組み合わせは、プログラム状態Ｌ０またはＬ１を有する１つのセル、およびプログラム状態Ｌ２を有する１つのセルを含む。
【００３８】
図４Ａで示されるように、第１のマッピングシェルの４つのコンステレーションポイントには０〜３が番号付けされ、それぞれのプログラム状態の組み合わせ（Ｌ０；Ｌ０）、（Ｌ０；Ｌ１）、（Ｌ１；Ｌ０）、および（Ｌ１；Ｌ１）に対応する。第２のマッピングシェルの４つのコンステレーションポイントには４〜７が番号付けされ、それぞれのプログラム状態の組み合わせ（Ｌ２；Ｌ０）、（Ｌ２；Ｌ１）、（Ｌ０；Ｌ２）、および（Ｌ１；Ｌ２）に対応する。１０進値の０〜７は、それぞれの３ビットデータパターン０００〜１１１に対応する。
【００３９】
図４Ｂおよび４Ｃは、それぞれ、異なる３ビットデータパターンが、第１および第２のマッピングシェルに対応するプログラム状態の組み合わせにマップされる様式を例示する。図表４６０−１は、第１のマッピングシェルに対応するマッピングを例示し、図表４６０−２は、第２のマッピングシェルに対応するマッピングを例示する。この実施例において、３ビットデータパターン（例えば、ビット［２：０］として表される）のＭＳＢ（例えば、ビット［２］）は、データパターンを第１のシェルにマップするのか、または第２のシェルにマップするのかを示す。例えば、ビット［２］が「０」である（例えば、３ビットデータパターンの２進値が４未満である）場合は、データパターンを第１のシェルにマップし、ビット［２］が「１」である（例えば、３ビットデータパターンの２進値が４以上である）場合は、データパターンを第２のシェルにマップする。
【００４０】
第１のマッピングシェルに対応する図４Ｂのマッピングは、系統的である（例えば、よって、それらは、系統的な様式で決定することができる）。例えば、ビット［１］をセル［１］に割り当てることができ、また、ビット［０］をセル［０］に割り当てることができる（セルは、セル［１：０］として表される）。すなわち、図４Ｂで示されるように、データパターン［２：０］のビット［１：０］の２進値は、セル［１：０］のプログラム状態に直接対応する（例えば、「１」の２進値がプログラム状態Ｌ１に対応し、「０」の２進値がプログラム状態Ｌ０に対応する）。
【００４１】
第２のマッピングシェルに対応する図４Ｃのマッピングは、ほぼ系統的である（例えば、それらは、実質的に系統的な様式で決定することができる）。第１のマッピングシェルと異なり、３ビットデータパターン（例えば、シンボルサイズ）のビット［１：０］の２進値は、それぞれのセル［１：０］のプログラム状態に直接対応しないので、第２のマッピングシェルに対応するマッピングは、完全に系統的であるというわけではない。上で述べられるように、第２のマッピングシェルについて、セル［１：０］の１つがプログラム状態Ｌ２を載せている。この実施例において、ビット［１］は、セル［１：０］のどれがＬ２を載せているのかを決定するために使用される（例えば、ビット［１］に対する「０」の２進値は、セル［０］がＬ２を載せていることを示し、ビット［１］に対する「１」の２進値は、セル［１］がＬ２を載せていることを示す。どのセルが第１のマッピングシェルに対応しないいくつかのプログラム状態のうちの１つ以上を載せているのかを決定するために使用されるビット（複数可）は、本明細書で「スワップセルビット（複数可）」と称することができ、第１のマッピングシェルに対応しないいくつかのプログラム状態のうちの１つ以上を載せるセルは、本明細書で「スワップセル」と称することができる。この実施例において、ビット［１］は、スワップセルビットである。このように、ビット［１］が「０」である場合は、セル［０］がスワップセルであり、ビット［１］が「１」である場合は、セル［１］がスワップセルである。図４Ｂの第１のシェルマッピングと同様に、図４Ｃにおいて、ビット［０］の２進値は、プログラム状態Ｌ０およびＬ１と直接対応する（例えば、「０」の値は、Ｌ０に対応し、「１」の値は、Ｌ１に対応する）。しかしながら、セル［０］がスワップセルであるときには、ビット［０］がセル［１］に割り当てられ、また、セル［１］がスワップセルであるときには、ビット［０］がセル［０］に割り当てられる。このように、図４Ｂおよび４Ｃは、本開示のいくつかの実施形態に従って、第１および第２のマッピングシェルに対応する異なる３ビットデータパターンが、それぞれが１．５ビット／セルを記憶する２つのメモリセルの群のそれぞれのプログラム状態の組み合わせにマップされる様式を例示する。
【００４２】
下に示される表２は、図５Ａおよび５Ｂと関連して説明される実施例に関連する構成情報を提供する。表２は、１セルあたり記憶されるビット数（「ｂｐｃ」）（例えば、２．２５）、メモリセルがプログラム可能である状態の数（「状態」）（例えば、５）、Ｎビットデータパターン（例えば、４）に対応する（Ｎは、シンボルサイズ（例えば、この実施例では９ビット）に対応する）セルの数（「セル／ｎＤ」）、２Ｎ個のプログラム状態の組み合わせ（例えば、５１２）にマップするために必要なコンステレーションポイントの数（「コンステレーションポイント」）、第１のマッピングシェルに対応するプログラム状態の組み合わせを形成するために使用されるプログラム状態の数（「第１のシェル状態」）（例えば、４）、第１のマッピングシェルのコンステレーションポイントの数（「第１のシェルポイント」）（例えば、２５６）、第２のマッピングシェルに対応するプログラム状態の組み合わせを形成するために使用される追加のプログラム状態の数（「第２のシェル状態」）（例えば、１）、第２のマッピングシェルのコンステレーションポイントの数（「第２のシェルポイント」）（例えば、２５６）、およびパッキング密度（「パッキング密度」）（例えば、８１．９２％）を示す。
【００４３】
【表２】
0005913735.tif 000003
【００４４】
第１および第２のマッピングシェルのそれぞれのコンステレーションポイントの数は、上で説明される多項式（例えば、（Ａ＋Ｂ）Ｇ）の最初の２つの項を使用して決定することができ、ＡＧは、第１項であり、また、第１のマッピングシェルのコンステレーションポイントの数を示し、Ｇ×Ａ（Ｇ−１）×Ｂは、第２項であり、また、第２のマッピングシェルのコンステレーションポイントの数に対応する。図５Ａおよび５Ｂの２．２５ビット／セル実施例において、Ａは、４に等しく、Ｇは、４に等しく、Ｂは、１に等しい。このように、ＡＧは、２５６に等しく、Ｇ×Ａ（Ｇ−１）×Ｂは、２５６に等しい。上で説明されるように、Ａは、第１のマッピングシェルに対応するそれぞれのプログラム状態の組み合わせが決定されるプログラム状態の数であり、Ｂは、第２のマッピングシェルに対応するそれぞれのプログラム状態の組み合わせが決定される追加のプログラム状態の数である。このように、この実施例において、最初の４つのプログラム状態（例えば、Ｌ０〜Ｌ３）の組み合わせが、第１のマッピングシェルの２５６個のコンステレーションポイントのそれぞれにマップされ、第２のマッピングシェルの２５６個のコンステレーションポイントを、最初の４つのプログラム状態以外のプログラム状態（たとえは、最高のプログラム状態Ｌ４）を含むプログラム状態の組み合わせにマップする。図５Ｂで示されるように、この実施例において、第２のマッピングシェルのプログラム状態の組み合わせは、プログラム状態Ｌ０〜Ｌ３のうちの１つを有する１つのセル、およびプログラム状態Ｌ４を載せている１つのセルを含む。
【００４５】
図５Ａおよび５Ｂは、それぞれ、異なる９ビットデータパターンが、第１および第２のマッピングシェルに対応するプログラム状態の組み合わせにマップされる様式を例示する。図表５６０−１は、第１のマッピングシェルに対応するマッピングを例示し、図表５６０−２は、第２のマッピングシェルに対応するマッピングを例示する。この実施例において、９ビットデータパターン（例えば、ビット［８：０］として表される）のＭＳＢ（例えば、ビット［８］）は、データパターンを第１のシェルにマップするのか、または第２のシェルにマップするのかを示す。例えば、ビット［８］が「０」である（例えば、９ビットデータパターンの２進値が２５６未満である）場合は、データパターンを第１のシェルにマップし、ビット［８］が「１」である（例えば、９ビットデータパターンの２進値が２５６以上である）場合は、データパターンを第２のシェルにマップする。
【００４６】
図５Ａは、第１のマッピングシェルについて、どのように９ビットデータパターンのビット［７：０］を、４つのセル［３：０］のプログラム状態の組み合わせに系統的にマップすることができるのかを例示する。例えば、ビット［７：６］をセル［３］に割り当てることができ、ビット［５：４］をセル［２］に割り当てることができ、ビット［３：２］をセル［１］に割り当てることができ、また、ビット［１：０］をセル［０］に割り当てることができ、セルに割り当てられるビット対の２進値は、それぞれのセルのプログラム状態に直接対応する（例えば、２進値「００」、「０１」、「１０」、および「１１」は、それぞれ、Ｌ０、Ｌ１、Ｌ２、およびＬ３に直接対応する）。
【００４７】
図５Ｂは、第２のマッピングシェルについて、どのように９ビットデータパターンのビット［７：０］を、４つのセル［３：０］のプログラム状態の組み合わせにマップすることができるのかを例示する。上で述べられたように、第２のマッピングシェルのプログラム状態の組み合わせに対して、セル［３：０］の１つは、プログラム状態Ｌ４を載せている。この実施例において、ビット［７：６］は、セル［３：０］のどれがプログラム状態Ｌ４を載せているのかを決定するために使用される（例えば、ビット［７：６］に対する「００」の２進値は、セル［０］がＬ４を載せていることを示し、ビット［７：６］に対する「０１」の２進値は、セル［１］がＬ４を載せていることを示し、ビット［７：６］に対する「１０」の２進値は、セル［２］がＬ４を載せていることを示し、また、ビット［７：６］に対する「１１」の２進値は、セル［３］がＬ４を載せていることを示す）。すなわち、ビット［７：６］は、この２．２５ビット／セルの例のスワップビットである。このように、図５Ｂで示されるように、ビット［７：６］が「００」である場合は、セル［０］がスワップセルであり、ビット［７：６］が「０１」である場合は、セル［１］がスワップセルであり、ビット［７：６］が「１０」である場合は、セル［２］がスワップセルであり、また、ビット［７：６］が「１１」である場合は、セル［３］がスワップセルである。図５Ｂはまた、Ｌ４を載せていない３つのセルに対するビットの割り当ても示す。例えば、例示されるように、９ビットデータパターンのビット［７：６］が「００」であり、よって、セル［０］がＬ４を載せている場合は、ビット［３：２］がセル［１］に割り当てられ、ビット［５：４］がセル［２］に割り当てられ、また、ビット［０：１］がセル［３］に割り当てられる。第２のマッピングシェルにおいて、９ビットデータパターンのビット対［５：４］、［３：２］、および［１：０］は、それぞれ、プログラム状態Ｌ０〜Ｌ３に直接対応する。例えば、図５Ｂで例示される第２のシェルマッピングに従って、「００」であるビット［７：６］、「１０」であるビット［５：４］、「０１」であるビット［３：２］、および「１１」であるビット［１：０］を有する１００１００１１１の９ビットデータパターンを、プログラム状態Ｌ４にプログラムされるセル［０］、プログラム状態Ｌ１にプログラムされるセル［１］、プログラム状態Ｌ２にプログラムされるセル［２］、およびプログラム状態Ｌ３にプログラムされるセル［３］にマップする。第２のシェルに対応するマッピングは、ほぼ系統的である。例えば、マッピングに対応する４つのセルのうちの２つは、常に、系統的な情報を載せている。
【００４８】
このように、図５Ａおよび５Ｂは、本開示のいくつかの実施形態に従って、第１および第２のマッピングシェルに対応する異なる９ビットデータパターンが、それぞれが２．２５ビット／セルを記憶する４つのメモリセルの群のそれぞれのプログラム状態の組み合わせにマップされる様式を例示する。
【００４９】
下に示される表３は、図６Ａおよび６Ｂに関連して説明される実施例に関連する構成情報を提供する。表３は、１セルあたり記憶されるビット数（「ｂｐｃ」）（例えば、２．５）、表３は、１セルあたり記憶されるビット数（「ｂｐｃ」）（例えば、２．５）、メモリセルがプログラム可能である状態の数（「状態」）（例えば、６）、Ｎビットデータパターン（例えば、２）に対応する（Ｎは、シンボルサイズ（例えば、この実施例では５ビット）に対応する）セルの数（「セル／ｎＤ」）、２Ｎ個のプログラム状態の組み合わせ（例えば、３２）にマップするために必要なコンステレーションポイントの数（「コンステレーションポイント」）、第１のマッピングシェルに対応するプログラム状態の組み合わせを形成するために使用されるプログラム状態の数（「第１のシェル状態」）（例えば、４）、第１のマッピングシェル（「第１のシェルポイント」）のコンステレーションポイントの数（例えば、１６）、第２のマッピングシェルに対応するプログラム状態の組み合わせを形成するために使用される追加のプログラム状態の数（「第２のシェル状態」）（例えば、２）、第２のマッピングシェルのコンステレーションポイントの数（「第２のシェルポイント」）（例えば、１６）、およびパッキング密度（「パッキング密度」）（例えば、８８．８９％）を示す。
【００５０】
【表３】
0005913735.tif 000004
【００５１】
第１および第２のマッピングシェルのそれぞれのコンステレーションポイントの数は、上で説明される多項式（例えば、（Ａ＋Ｂ）Ｇ）の最初の２つの項を使用して決定することができ、ＡＧは、第１項であり、また、第１のマッピングシェルのコンステレーションポイントの数を示し、Ｇ×Ａ（Ｇ−１）×Ｂは、第２項であり、また、第２のマッピングシェルのコンステレーションポイントの数に対応する。図６Ａおよび６Ｂの２．５ビット／セルの実施例において、Ａは、４に等しく、Ｇは、２に等しく、Ｂは、２に等しい。このように、ＡＧは、１６に等しく、Ｇ×Ａ（Ｇ−１）×Ｂは、１６に等しい。上で説明されたように、Ａは、第１のマッピングシェルに対応するそれぞれのプログラム状態の組み合わせが決定されるプログラム状態の数であり、Ｂは、第２のマッピングシェルに対応するそれぞれのプログラム状態の組み合わせが決定される追加のプログラム状態の数である。このように、この実施例では、最初の４つのプログラム状態（例えば、Ｌ０〜Ｌ３）の組み合わせが、第１のマッピングシェルの１６個のコンステレーションポイントのそれぞれにマップされ、第２のマッピングシェルの１６個のコンステレーションポイントを、最初の４つのプログラム状態以外のプログラム状態（例えば、プログラム状態Ｌ４およびＬ５）を含むプログラム状態の組み合わせにマップする。図６Ｂで示されるように、この実施例において、第２のマッピングシェルのプログラム状態の組み合わせは、プログラム状態Ｌ０〜Ｌ３のうちの１つを有する１つのセル、およびプログラム状態Ｌ４またはＬ５を載せている１つのセルを含む。
【００５２】
図６Ａおよび６Ｂは、それぞれ、異なる５ビットデータパターンが、第１および第２のマッピングシェルに対応するプログラム状態の組み合わせにマップされる様式を例示する。図表６６０−１は、第１のマッピングシェルに対応するマッピングを例示し、図表６６０−２は、第２のマッピングシェルに対応するマッピングを例示する。この実施例において、５ビットデータパターン（例えば、ビット［４：０］として表される）のＭＳＢ（例えば、ビット［４］）は、データパターンを第１のシェルにマップするのか、または第２のシェルにマップするのかを示す。例えば、ビット［４］が「０」である（例えば、５ビットデータパターンの２進値が１６未満である）場合は、データパターンを第１のシェルにマップし、ビット［４］が「１」である（例えば、５ビットデータパターンの２進値が１６以上である）場合、データパターンを第２のシェルにマップする。
【００５３】
図６Ａは、第１のマッピングシェルについて、どのように５ビットデータパターンのビット［４：０］を、２つのセル［１：０］のプログラム状態の組み合わせに系統的にマップすることができるのかを例示する。例えば、ビット［１：０］をセル［０］に割り当てることができ、ビット［３：２］をセル［１］に割り当てることができ、セルに割り当てられるビット対の２進値は、それぞれのセルのプログラム状態に直接対応する（例えば、２進値「００」、「０１」、「１０」、および「１１」は、それぞれ、Ｌ０、Ｌ１、Ｌ２、およびＬ３に直接対応する）。
【００５４】
図６Ｂは、第２のマッピングシェルについて、どのように５ビットデータパターンのビット［４：０］を、２つのセル［１：０］のプログラム状態の組み合わせにマップすることができるのかを例示する。第２のマッピングシェルのプログラム状態の組み合わせについて、Ｂが２に等しい（例えば、２つの追加のプログラム状態が、第２のマッピングシェルに対応する）ので、セル［１：０］の１つがプログラム状態Ｌ４またはＬ５を載せている。この実施例において、ビット［３］は、セル［１：０］のどれがプログラム状態Ｌ４またはＬ５を載せているのかを決定するために使用される（例えば、ビット［３］に対する「０」の２進値は、セル［０］がＬ４またはＬ５を載せていることを示し、ビット［３］に対する「１」の２進値は、セル［１］がＬ４またはＬ５を載せていることを示す）。すなわち、ビット［３］は、この２．５ビット／セルの例のスワップビットである。このように、図６Ｂで示されるように、ビット［３］が「０」である場合、セル［０］がスワップセルであり、ビット［３］が「１」である場合は、セル［１］がスワップセルである。１よりも大きいプログラム状態の数にＢが対応する実施形態において、ビット（複数可）はまた、Ｂ個のプログラム状態のどれがスワップセルによって載せられているのかを決定するために使用することもできる。スワップセルによって載せられるプログラム状態は、本明細書において「スワップ状態」と称される。この実施例では、ビット［２］がスワップ状態を決定するために使用される。例えば、図６Ｂで示される実施例において、ビット［２］が「０」である場合、スワップ状態は、Ｌ４であり、ビット［２］が「１」である場合、スワップ状態は、Ｌ５である。
【００５５】
図６Ｂはまた、Ｌ４またはＬ５を載せていないセルに対するビットの割り当ても示す。図６Ａの第１のシェルマッピングと同様に、図６Ｂにおいて、ビット［１：０］の２進値は、プログラム状態Ｌ０〜Ｌ３と直接対応する（例えば、「００」の値は、Ｌ０に対応し、「０１」の値は、Ｌ１に対応し、「１０」の値は、Ｌ２に対応し、「１１」の値は、Ｌ３に対応する）。しかしながら、セル［０］がスワップセルであるときには、ビット［１：０］がセル［１］に割り当てられ、また、セル［１］がスワップセルであるときには、ビット［１：０］がセル［０］に割り当てられる。このように、図６Ａおよび６Ｂは、本開示のいくつかの実施形態に従って、第１および第２のマッピングシェルに対応する異なる５ビットデータパターンが、それぞれが２．５ビット／セルを記憶する２つのメモリセルの群のそれぞれのプログラム状態の組み合わせにマップされる様式を例示する。
【００５６】
下に示される表４は、図７Ａおよび７Ｂと関連して説明される実施例に関連する構成情報を提供する。表４は、１セルあたり記憶されるビット数（「ｂｐｃ」）（例えば、３．１２５）、メモリセルがプログラム可能である状態の数（「状態」）（例えば、９）、Ｎビットデータパターン（例えば、８）に対応する（Ｎは、シンボルサイズに対応する（この例では、２５ビット））セルの数（「セル／ｎＤ」）、２Ｎ個のプログラム状態の組み合わせにマップするために必要なコンステレーションポイントの数（「コンステレーションポイント」）（例えば、３３，５５４，４３２）、第１のマッピングシェルに対応するプログラム状態の組み合わせを形成するために使用されるプログラム状態の数（「第１のシェル状態」）（例えば、８）、第１のマッピングシェル（「第１のシェルポイント」）のコンステレーションポイントの数（例えば、１６，７７７，２１６）、第２のマッピングシェルに対応するプログラム状態の組み合わせを形成するために使用される追加のプログラム状態の数（「第２のシェル状態」）（例えば、１）、第２のマッピングシェルのコンステレーションポイントの数（「第２のシェルポイント」）（例えば、１６，７７７，２１６）、およびパッキング密度（「パッキング密度」）（例えば、７７．９５％）を示す。
【００５７】
【表４】
0005913735.tif 000005
【００５８】
第１および第２のマッピングシェルのそれぞれのコンステレーションポイントの数は、上で説明される多項式（例えば、（Ａ＋Ｂ）Ｇ）の最初の２つの項を使用して決定することができ、ＡＧは、第１項であり、また、第１のマッピングシェルのコンステレーションポイントの数を示し、Ｇ×Ａ（Ｇ−１）×Ｂは、第２項であり、また、第２のマッピングシェルのコンステレーションポイントの数に対応する。図７Ａおよび７Ｂの３．１２５ビット／セル実施例において、Ａは、８に等しく、Ｇは、８に等しく、Ｂは、１に等しい。このように、ＡＧは、１６，７７７，２１６に等しく、Ｇ×Ａ（Ｇ−１）×Ｂは、１６，７７７，２１６に等しい。上で説明されたように、Ａは、第１のマッピングシェルに対応するそれぞれのプログラム状態の組み合わせが決定されるプログラム状態の数であり、Ｂは、第２のマッピングシェルに対応するそれぞれのプログラム状態の組み合わせが決定される追加のプログラム状態の数である。このように、この実施例では、最初の８つのプログラム状態（例えば、Ｌ０〜Ｌ７）の組み合わせが、第１のマッピングシェルの１６，７７７，２１６個のコンステレーションポイントのそれぞれにマップされ、第２のマッピングシェルの１６，７７７，２１６個のコンステレーションポイントを、最初の８つのプログラム状態以外のプログラム状態（例えば、最高のプログラム状態Ｌ８）を含むプログラム状態の組み合わせにマップする。図７Ｂで示されるように、この実施例において、第２のマッピングシェルのプログラム状態組み合わせは、プログラム状態Ｌ０〜Ｌ７のうちの１つを有する１つのセル、およびプログラム状態Ｌ８を載せている１つのセルを含む。
【００５９】
図７Ａおよび７Ｂは、それぞれ、異なる２５ビットデータパターンが、第１および第２のマッピングシェルに対応するプログラム状態の組み合わせにマップされる様式を例示する。図表７６０−１は、第１のマッピングシェルに対応するマッピングを例示し、図表７６０−２は、第２のマッピングシェルに対応するマッピングを例示する。この実施例において、２５ビットデータパターン（例えば、ビット［２４：０］として表される）のＭＳＢ（例えば、ビット［２４］）は、データパターンを第１のシェルにマップするのか、または第２のシェルにマップするのかを示す。例えば、ビット［２４］が「０」である（例えば、２５ビットデータパターンの２進値が１６，７７７，２１６未満である）場合、データパターンを第１のシェルにマップし、ビット［２４］が「１」である（例えば、２５ビットデータパターンの２進値が１６，７７７，２１６以上である）場合、データパターンを第２のシェルにマップする。
【００６０】
図７Ａは、第１のマッピングシェルについて、どのように２５ビットデータパターンのビット［２３：０］を、８つのセル［７：０］のプログラム状態の組み合わせに系統的にマップすることができるのかを例示する。例えば、ビット［２３：２１］をセル［７］に割り当てることができ、ビット［２０：１８］をセル［６］に割り当てることができ、ビット［１７：１５］をセル［５］に割り当てることができ、ビット［１４：１２］をセル［４］に割り当てることができ、ビット［１１：０９］をセル［３］に割り当てることができ、ビット［８：６］をセル［２］に割り当てることができ、ビット［５：３］をセル［１］に割り当てることができ、また、ビット［２：０］をセル［０］に割り当てることができ、セルに割り当てられるビット組み合わせの２進値は、それぞれのセルのプログラム状態に直接対応する（例えば、２進値「０００」〜「１１１」は、それぞれ、Ｌ０〜Ｌ７に直接対応する）。
【００６１】
図７Ｂは、第２のマッピングシェルについて、どのように２５ビットデータパターンのビット［２３：０］を、８つのセル［７：０］のプログラム状態の組み合わせにマップすることができるのかを例示する。上で述べられたように、第２のマッピングシェルのプログラム状態の組み合わせについて、セル［７：０］の１つは、プログラム状態Ｌ８を載せている。この実施例において、ビット［２３：２１］は、セル［７：０］のどれがプログラム状態Ｌ８を載せているのかを決定するために使用される（例えば、ビット［２３：２１］に対する「０００」の２進値は、セル［０］がＬ８を載せていることを示し、ビット［２３：２１］に対する「００１」の２進値は、セル［１］がＬ８を載せていることを示し、ビット［２３：２１］に対する「０１０」の２進値は、セル［２］がＬ８を載せていることを示す、等である）。すなわち、ビット［２３：２１］は、この３．１２５ビット／セルの例のスワップビットである。このように、図７Ｂで示されるように、ビット［２３：２１］が「０００」である場合は、セル［０］がスワップセルであり、ビット［２３：２１］が「００１」である場合は、セル［１］がスワップセルであり、また、ビット［２３：２１］が「０１０」である場合は、セル［２］がスワップセルである、等である。図７Ｂはまた、Ｌ８を載せていない７つのセルに対するビットの割り当ても示す。例えば、例示されるように、２５ビットデータパターンのビット［２３：２１］が「０００」であり、よって、セル［０］がＬ８を載せている場合は、ビット［５：３］がセル［１］に割り当てられ、ビット［８：６］がセル［２］に割り当てられ、ビット［１１：９］がセル［３］に割り当てられ、ビット［１４：１２］がセル［４］に割り当てられ、ビット［１７：１５］がセル［５］に割り当てられ、ビット［２０：１８］がセル［６］に割り当てられ、また、ビット［２：０］がセル［７］に割り当てられる。第２のマッピングシェルにおいて、２５ビットデータパターンのビット組み合わせ［２０：１８］、［１７：１５］、［１４：１２］、［１１：０９］、［８：６］、［５：３］、および［２：０］は、それぞれ、プログラム状態Ｌ０〜Ｌ７に直接対応する。例えば、図７Ｂで例示される第２のシェルマッピングに従って、「０００」であるビット［２３：２１］、「０１０」であるビット［２０：１８］、「００１」であるビット「１７：１５］、「０００」であるビット［１４：１２］、「１００」であるビット［１１：９］、「０１１」であるビット［８：６］、「１０１」であるビット［５：３］、および「１１１」であるビット［２：０］を有する、１００００１０００１０００１０００１１１０１１１１の２５ビットデータを、プログラム状態Ｌ８にプログラムされるセル［０］（例えば、スワップセル）、プログラム状態Ｌ５にプログラムされるセル［１］、プログラム状態Ｌ３にプログラムされるセル［２］、プログラム状態Ｌ４にプログラムされるセル［３］、プログラム状態Ｌ０にプログラムされるセル［４］、プログラム状態Ｌ１にプログラムされるセル［５］、プログラム状態Ｌ２にプログラムされるセル［６］、およびプログラム状態Ｌ７にプログラムされるセル［７］にマップする。
【００６２】
このように、図７Ａおよび７Ｂは、本開示のいくつかの実施形態に従って、第１および第２のマッピングシェルに対応する異なる２５ビットデータパターンが、それぞれが３．１２５ビット／セルを記憶する４つのメモリセルの群のそれぞれのプログラム状態の組み合わせにマップされる様式を例示する。
【００６３】
図４Ａ〜図７Ｂに関連して上で説明されるマッピングは、例えば、Ｇ個のメモリセルに記憶されるデータパターン（例えば、Ｎビットデータパターン）を決定することと関連して使用することができ、ここで、Ｎは、ビットの整数個数であり、Ｇは、Ｎビットを記憶するメモリセルの数であり、群の各メモリセルは、Ｌ個のプログラム状態の数のうちの１つにプログラムされ、小数個のＮビットを記憶する。
【００６４】
例えば、（例えば、読み出し動作と関連して）それぞれの決定された群のプログラム状態の組み合わせが対応する特定のＮビットデータパターンを決定することは、第１のマッピングシェルおよび第２のマッピングシェルを含むマッピングコンステレーションに少なくとも部分的に基づくことができ、第１および第２のマッピングシェルは、次数Ｇの多項式によって定義される。例えば、図１で示される構成要素１１２等のデータパッキング構成要素を、プログラム状態の組み合わせとデータパターンとの間のマッピングと関連して使用することができる。
【００６５】
図４Ａ〜図７Ｂで示される例示的なシェルマッピングで例示されるように、決定されたメモリセルのそれぞれの群のプログラム状態は、群に記憶されたデータパターンが対応する特定のマッピングシェルを示すことができる。例えば、セルがプログラム可能であるＬ個のプログラム状態のうちの１つ以上のプログラム状態は、第１のマッピングシェル以外のマッピングシェルにだけ対応する。このように、いかなる群のセルも、第１のマッピングシェル以外のマッピングシェルにだけ対応するプログラム状態にプログラムされないという決定が行われた場合、セルの群は、第１のマッピングシェルに対応するビットパターンを記憶する。上で説明されたように、データパターンのビットは、第１のシェルをマップするために、系統的な様式で、群のセルに割り当てることができる。あるいは、群のセルが、第１のマッピングシェル以外のマッピングシェルに対応するプログラム状態（例えば、上位のプログラム状態）にプログラムされるという決定が行われた場合、群は、第１のマッピングシェル以外のマッピングシェルに対応するビットパターンを記憶する。上で説明されたように、群のセルに割り当てられるビットは、どの群のセルが、第１のマッピングシェル（例えば、スワップセル）に対応しないプログラム状態にプログラムされるのかに基づくことができる。
【００６６】
いくつかの実施形態において、コントローラ（例えば、コントローラ１０８）は、（例えば、読み出し動作と関連して）群に記憶されるビットパターンを決定することができ、また、データをホスト（例えば、ホスト１０２）に提供することができる。セルの群に記憶されるビットパターンは、（例えば、誤りデータによって以前に符号化されている場合）ホストに提供される前に、（例えば、誤り符号化／復号化構成要素１１４を介して）復号化することができる。
【００６７】
＜結論＞
本開示は、プログラム状態とデータパターンとの間でマップするための方法および装置を含む。１つの方法は、Ｇ個のメモリセルの群を、群のそれぞれのプログラム状態の組み合わせを受け取ったＮ単位データパターンに対応するコンステレーションポイントにマップするようにプログラムすることであって、群は、１メモリセルあたりＮ／Ｇ単位データを記憶するために使用される、プログラムすることを含み、コンステレーションポイントは、メモリセルの群のそれぞれのプログラム状態の組み合わせを、Ｎ単位データパターンにマップすることと関連するコンステレーションのいくつかのコンステレーションポイントのうちの１つであり、コンステレーションは、第１のマッピングシェルおよび第２のマッピングシェルを含み、第１および第２のマッピングシェルのそれぞれに対応するコンステレーションポイントは、Ｇに等しい次数の多項式に少なくとも部分的に基づいて決定される。
【００６８】
要素が、別の要素の「〜上にある」、別の要素「に接続される」、または別の要素「と連結される」として言及されるとき、その要素は、他の要素の直接的に上にある、他の要素に直接的に接続される、または他の要素に直接的に連結され得るか、または介在要素が存在する場合があることが理解されるであろう。対照的に、要素が、別の要素に対して「直接的に上にある」、「直接的に接続される」、または「直接的に連結される」として言及されるときは、いかなる介在要素または層も存在しない。本明細書で使用される場合、「および／または」という用語は、いくつかの関連する列記される項目うちの任意および全ての組み合わせを含む。
【００６９】
本明細書で使用される場合、「および／または」という用語は、いくつかの関連する列記される項目うちの任意および全ての組み合わせを含む。本明細書で使用される場合、「または」という用語は、別途注記されない限り、論理上の、包含的ＯＲ（または）を意味する。すなわち、「ＡまたはＢ」は、（Ａのみ）、（Ｂのみ）、または（ＡおよびＢの両方）を含むことができる。換言すれば、「ＡまたはＢ」は、「Ａおよび／またはＢ」または「ＡおよびＢのうちのいくつか」を意味することができる。
【００７０】
第１、第２、第３等の用語は、本明細書では、種々の要素を表すために使用され得、これらの用語によってこれらの要素を限定すべきではないことを理解されるであろう。これらの用語は、ある要素を別の要素と区別するために使用されているに過ぎない。したがって、第１の要素は、本開示の教示を逸脱しない範囲で第２の要素と称される可能性がある。
【００７１】
本明細書には具体的な実施形態を例示説明および記述したが、当業者は、同じ結果を達成するように考案された配設を、示された具体的な実施形態に代えることができることを理解するであろう。本開示は、本開示のいくつかの実施形態の適応または変形を包含することを意図する。上記の説明は、制限の様式ではなく、例示説明の様式において行われたものであることが理解されるであろう。上記の実施形態、および本明細書に具体的に説明されない他の実施形態の組み合わせが、上記の説明を検討することによって、当業者には明らかであろう。本開示のいくつかの実施形態の範囲は、上記の構造および方法が使用される他の用途を含む。したがって、本開示のいくつかの実施形態の範囲は、添付の特許請求の範囲に加えて、このような特許請求の範囲が権利を与えられる均等物の完全な範囲を参照して決定されなければならない。
【００７２】
前述の発明を実施するための形態では、開示を簡素化するために、いくつかの特徴が単一の実施形態にまとめられている。この開示方法は、本開示の開示される実施形態が、各請求項に明記されるよりも多くの特徴を用いなければならないという意図を反映するものとして解釈されるべきではない。そうではなく、以下の特許請求の範囲が反映するように、発明の主題は、単一の開示される実施形態の全ての特徴に満たない中に存する。したがって、以下の特許請求の範囲が本明細書により発明を実施するための形態に組み入れられ、各特許請求の範囲は個別の実施形態として独立する。
【図１】
0005913735.tif 000006
【図２】
0005913735.tif 000007
【図３】
0005913735.tif 000008
【図４Ａ】
0005913735.tif 000009
【図４Ｂ】
0005913735.tif 000010
【図４Ｃ】
0005913735.tif 000011
【図５Ａ】
0005913735.tif 000012
【図５Ｂ】
0005913735.tif 000013
【図６Ａ】
0005913735.tif 000014
【図６Ｂ】
0005913735.tif 000015
【図７Ａ】
0005913735.tif 000016
【図７Ｂ】
0005913735.tif 000017