(57)【要約】  例示された実施形態は、マルチレベルセルメモリ装置において、１つのセルにより多くのビットを格納できるようにするためのエラー検出および訂正符号化方法を開示する。例示された実施形態は、ａ個のｍビットＭＬＣメモリセルと、ｋビットデータをｋ／ｎの符号化率でエンコーディングし、エンコーディングされたビット列を生成するエンコーダと、エンコーディングされたビット列によるパルスをａ個のｍビットＭＬＣメモリセルに印加し、ａ個のｍビットＭＬＣメモリセルにデータを記録する信号マッピング部と、を備えるマルチレベルセルメモリ装置を提供する。
2010515145.tif 000002
【特許請求の範囲】
【請求項１】
マルチレベルセル（ＭＬＣ）メモリ装置であって、
ａ個のｍビットＭＬＣメモリセルと、
ｋビットデータをｋ／ｎの符号化率でエンコーディングし、エンコーディングされたビット列を生成するエンコーダと、
前記エンコーディングされたビット列によるパルスを前記ａ個のｍビットＭＬＣメモリセルに印加し、前記ａ個のｍビットＭＬＣメモリセルに前記エンコーディングされたビット列を記録できるようにする信号マッピング部と、
を備え、
前記ａおよび前記ｍは２以上の整数であり、
前記ｋおよび前記ｎは１以上の整数であり、
前記ｎは前記ｋより大きいことを特徴とするメモリ装置。
【請求項２】
前記ｎは、ｎ＝ａ×ｍであることを特徴とする請求項１に記載のメモリ装置。
【請求項３】
前記ｎは、ｎ＝ｋ＋１であることを特徴とする請求項２に記載のメモリ装置。
【請求項４】
前記エンコーダは、
前記ｋビットデータをｋ／（ｋ＋ｒ１）の符号化率でエンコーディングし、外部エンコーディングされたビット列を生成する外部エンコーダと、
前記外部エンコーディングされたビット列を（ｋ＋ｒ１）／ｎの符号化率でエンコーディングし、前記エンコーディングされたビット列を生成する内部エンコーダと、
を備えることを特徴とする請求項１に記載のメモリ装置。
【請求項５】
前記外部エンコーダは、線形ブロックエンコーディングでエンコーディングし、
前記内部エンコーダは、畳み込み符号エンコーディングでエンコーディングすることを特徴とする請求項４に記載のメモリ装置。
【請求項６】
前記信号マッピング部は、
前記エンコーディングされたビット列に応じて、前記ａ個のｍビットＭＬＣメモリセルのそれぞれに対して決定されたパルスのそれぞれを、前記ａ個のｍビットＭＬＣメモリセルのそれぞれに印加することを特徴とする請求項１に記載のメモリ装置。
【請求項７】
前記信号マッピング部は、
前記パルスのそれぞれは、２ｍＰＡＭ（ｐｕｌｓｅ  ａｍｐｌｉｔｕｄｅ  ｍｏｄｕｌａｔｉｏｎ）によって生成が可能な２ｍ個のレベルのうちの１つであることを特徴とする請求項６に記載のメモリ装置。
【請求項８】
前記エンコーダおよび前記信号マッピング部は、互いに結合することを特徴とする請求項１に記載のメモリ装置。
【請求項９】
読み取り信号の印加に応答し、前記ａ個のｍビットＭＬＣメモリセルのそれぞれから出力された出力パルスからデマッピングされたビット列を生成する信号デマッピング部、
をさらに備えることを特徴とする請求項１に記載のメモリ装置。
【請求項１０】
前記信号デマッピング部は、
前記読み取り信号の印加に応答し、前記ａ個のｍビットＭＬＣメモリセルのそれぞれから出力された前記出力パルスのそれぞれからデマッピングされた部分ビット列を決定し、前記デマッピングされた部分ビット列を結合して前記デマッピングされたビット列を生成することを特徴とする請求項９に記載のメモリ装置。
【請求項１１】
前記信号デマッピング部は、
前記ａ個のｍビットＭＬＣメモリセルのそれぞれの２ｍ個の散布の閾値電圧と前記出力パルスのそれぞれを比較し、前記出力パルスのそれぞれに対応した前記デマッピングされた部分ビット列を生成することを特徴とする請求項１０に記載のメモリ装置。
【請求項１２】
前記デマッピングされたビット列をデコーディングし、ｋビットのデコーディングされたビット列を生成するデコーダ、
をさらに備えることを特徴とする請求項９に記載のメモリ装置。
【請求項１３】
前記デコーダは、
前記デマッピングされたビット列をビタビデコーディング（Ｖｉｔｅｒｂｉ  ｄｅｃｏｄｉｎｇ）し、前記デコーディングされたビット列を生成することを特徴とする請求項１２に記載のメモリ装置。
【請求項１４】
前記デコーダは、
前記デマッピングされたビット列から検出されたエラーを訂正して内部デコーディングされたビット列を生成する内部デコーダと、
前記内部デコーディングされたビット列から検出されたエラーを訂正して前記デコーディングされたビット列を生成する外部デコーダと、
を備えることを特徴とする請求項１２に記載のメモリ装置。
【請求項１５】
前記ａ個のｍビットＭＬＣメモリセルのそれぞれは、ＭＬＣフラッシュメモリのメモリセルであることを特徴とする請求項１に記載のメモリ装置。
【請求項１６】
マルチレベルセル（ＭＬＣ）メモリ装置にデータを記録する方法であって、
ｋビットデータをｋ／ｎの符号化率でエンコーディングし、エンコーディングされたビット列を生成するステップと、
前記エンコーディングされたビット列によるパルスを、ａ個のｍビットＭＬＣメモリセルに印加し、前記ａ個のｍビットＭＬＣメモリセルに前記エンコーディングされたビット列を記録するようにするステップと、
を含み、
前記ａおよび前記ｍは２以上の整数であり、
前記ｋおよび前記ｎは１以上の整数であり、
前記ｎは前記ｋより大きいことを特徴とするメモリ装置にデータを記録する方法。
【請求項１７】
前記ｎは、ｎ＝ａ×ｍであることを特徴とする請求項１６に記載のメモリ装置にデータを記録する方法。
【請求項１８】
前記ｎは、ｎ＝ｋ＋１であることを特徴とする請求項１６に記載のメモリ装置にデータを記録する方法。
【請求項１９】
マルチレベルセル（ＭＬＣ）メモリ装置からデータを読み取る方法であって、
読み取り信号に応答し、ａ個のｍビットＭＬＣメモリセルのそれぞれから出力された出力パルスからデマッピングされたビット列を生成する動作と、
前記デマッピングされたビット列から、ｎ／ｋの符号化率で、ｎビットのデータをデコーディングし、デコーディングされたビット列を生成する動作と、
を含み、
前記ａおよび前記ｍは２以上の整数であり、
前記ｋおよび前記ｎは１以上の整数であり、
前記ｎは前記ｋより大きいことを特徴とするメモリ装置からデータを読み取る方法。
【請求項２０】
前記ｎは、ｎ＝ａ×ｍであることを特徴とする請求項１９に記載のメモリ装置からデータを読み取る方法。
【請求項２１】
前記ｎは、ｎ＝ｋ＋１であることを特徴とする請求項１９に記載のメモリ装置からデータを読み取る方法。
【発明の詳細な説明】
【技術分野】
【０００１】
例示された実施形態は、半導体メモリ装置、このメモリ装置にデータを記録する方法、およびこのメモリ装置からデータを読み取る方法に関する。また、例示された実施形態は、マルチレベルセル（ＭＬＣ：Ｍｕｌｔｉ−Ｌｅｖｅｌ  Ｃｅｌｌ  Ｍｅｍｏｒｙ）メモリ装置、このＭＬＣメモリ装置にデータを記録する方法、およびこのＭＬＣメモリ装置からデータを読み取る方法に関する。
【背景技術】
【０００２】
シングルレベルセル（ＳＬＣ：ｓｉｎｇｌｅ−ｌｅｖｅｌ  ｃｅｌｌ）メモリ装置は、１つのメモリセルに１ビットのデータを格納するメモリである。シングルレベルセルメモリ装置は、シングルビットセル（ＳＢＣ：ｓｉｎｇｌｅ−ｂｉｔ  ｃｅｌｌ）メモリ装置とも呼ばれる。
【０００３】
図１は、関連技術に係るＳＬＣメモリ装置のセル閾値電圧を示す図である。図１に示すように、ＳＬＣメモリ装置では、１ビットのデータは、メモリセルにプログラムされた閾値電圧レベル（ｔｈｒｅｓｈｏｌｄ  ｖｏｌｔａｇｅ  ｌｅｖｅｌ）によって区分される２つの散布（ｄｉｓｔｒｉｂｕｔｉｏｎ）に含まれる電圧で格納され、読み取られる。例えば、メモリセルから読み取られた電圧が０．５Ｖよりも大きくて１．５Ｖよりも小さい場合には、メモリセルに格納されたデータは論理「１」に決定される。メモリセルから読み取られた電圧が２．５Ｖよりも大きくて３．５ボルトよりも小さい場合には、メモリセルに格納されたデータは論理「０」と解釈される。前記メモリセルに格納されたデータは、読み取り動作時のセル電流および／または電圧間の差によって区分される。
【０００４】
一方、メモリの高集積化の要求に応答して、１つのメモリセルに２ビット以上のデータを格納することができるマルチレベルセルメモリ装置が提案された。マルチレベルセルメモリ装置は、マルチビットセル（ＭＢＣ：ｍｕｌｔｉ−ｂｉｔ  ｃｅｌｌ）メモリ装置とも呼ばれる。しかしながら、１つのメモリセルに格納するビットの数が増加するほど、信頼性は低下し、読み取り失敗率（ｒｅａｄ−ｆａｉｌｕｒｅ  ｒａｔｅ）は増加するようになる。１つのメモリセルにｍ個のビットを格納しようとすれば、２ｍ個の電圧レベル散布（ｖｏｌｔａｇｅ  ｌｅｖｅｌ  ｄｉｓｔｒｉｂｕｔｉｏｎ）を形成しなければならない。しかしながら、１つのメモリセルに対する電圧ウィンドウ（ｖｏｌｔａｇｅ  ｗｉｎｄｏｗ）は制限されているため、ｍが増加することによって隣接したビット間の閾値電圧（ｔｈｒｅｓｈｏｌｄ）の差は減少するようになり、これによって読み取り失敗率が増加する。このような理由により、ＭＬＣメモリ装置を用いた記憶密度の向上が容易ではなかった。
【発明の概要】
【発明が解決しようとする課題】
【０００５】
例示された実施形態は、向上した記憶密度（ｉｍｐｒｏｖｅｄ  ｓｔｏｒａｇｅ  ｄｅｎｓｉｔｙ）を有する半導体メモリ装置を提供することができる。さらに、例示された実施形態は、向上した記憶密度を有するＭＬＣメモリ装置を提供することができる。
【０００６】
また、例示された実施形態は、向上した記憶密度を有するメモリ装置にデータを記録する方法を提供することができる。さらに、例示された実施形態は、向上した記憶密度を有するＭＬＣメモリ装置にデータを記録する方法を提供することができる。
【０００７】
また、例示された実施形態は、向上した記憶密度を有するメモリ装置からデータを読み取る方法を提供することができる。さらに、例示された実施形態は、向上した記憶密度を有するＭＬＣメモリ装置からデータを読み取る方法を提供することができる。
【課題を解決するための手段】
【０００８】
例示された実施形態によれば、ＭＬＣメモリ装置は、ａ個のｍビットＭＬＣメモリセルと、ｋビットデータをｋ／ｎの符号化率でエンコーディングし、エンコーディングされたビット列を生成するエンコーダと、前記エンコーディングされたビット列によるパルスを前記ａ個のｍビットＭＬＣメモリセルに印加し、前記ａ個のｍビットＭＬＣメモリセルに前記エンコーディングされたビット列を記録できるようにする信号マッピング部とを備えることができる。前記ａおよび前記ｍは２以上の整数であり、前記ｋおよび前記ｎは１以上の整数であり、前記ｎは前記ｋよりも大きくなり得る。
【０００９】
例示された実施形態によれば、ＭＬＣメモリ装置にデータを記録する方法は、ｋビットデータをｋ／ｎの符号化率でエンコーディングし、エンコーディングされたビット列を生成する動作と、前記エンコーディングされたビット列によるパルスを、ａ個のｍビットＭＬＣメモリセルに印加し、前記ａ個のｍビットＭＬＣメモリセルに前記エンコーディングされたビット列を記録するようにする動作とを含むことができる。前記ａおよび前記ｍは２以上の整数であり、前記ｋおよび前記ｎは１以上の整数であり、前記ｎは前記ｋよりも大きくなり得る。
【００１０】
例示された実施形態によれば、ＭＬＣメモリ装置からデータを読み取る方法は、読み取り信号に応答し、ａ個のｍビットＭＬＣメモリセルのそれぞれから出力された出力パルスからデマッピングされたビット列を生成する動作と、前記デマッピングされたビット列から、ｎ／ｋの符号化率で、ｎビットのデータをデコーディングし、デコーディングされたビット列を生成する動作とを含むことができる。前記ａおよび前記ｍは２以上の整数であり、前記ｋおよび前記ｎは１以上の整数であり、前記ｎは前記ｋよりも大きくなり得る。
【図面の簡単な説明】
【００１１】
実施形態の上述されたおよび／または他の側面との有用性が、図面を参照した以下の詳細な説明によってより明白かつ正確に理解される。
【００１２】
【図１】関連技術に係るＳＬＣメモリ装置のセル閾値電圧を示す図である。
【図２】例示された一実施形態に係るＭＬＣメモリ装置を示すブロック図である。
【図３】例示された一実施形態によって、２個の４ビットＭＬＣメモリ装置に対する信号マッピングを説明するための図である。
【図４】例示された一実施形態に係るＭＬＣメモリセルアレイを示す図である。
【図５】例示された一実施形態に係る信号マッピング部および信号デマッピング部の動作を説明するための図である。
【図６】例示された一実施形態に係る信号マッピング部および信号デマッピング部の動作を説明するための図である。
【図７】例示された一実施形態に係るエンコーダを示すブロック図である。
【図８】例示された一実施形態に係るデコーダを示すブロック図である。
【発明を実施するための形態】
【００１３】
例示された実施形態について、図面を参照しながら詳しく説明する。しかしながら、開示された実施形態は、多様な他の形態で実現されることができ、ここに開示された実施形態に限定されるものとして解釈されてはならない。むしろ、ここに開示された実施形態は、開示を十分にし、本発明が属した技術分野において通常の知識を有する者に実施形態の技術的思想を十分に伝達するためのものである。添付の図面において、層（ｌａｙｅｒ）と領域（ｒｅｇｉｏｎ）の厚さと幅は、明確な説明のために誇張されることがある。
【００１４】
構成要素が異なる構成要素に「接した（ｏｎ）」、「連結した（ｃｏｎｎｅｃｔｅｄ  ｔｏ）」、または「繋がった（ｃｏｕｐｌｅｄ  ｏｎ）」と表現されたとき、この構成要素は他の構成要素に直接連結していたり繋がっていたりする場合もあるし、または他の構成要素を介して連結していたり繋がっていたりする場合もある。これとは反対に、構成要素が異なる構成要素に「直接接した（ｄｉｒｅｃｔｌｙ  ｏｎ）」、「直接連結した（ｄｉｒｅｃｔｌｙ  ｃｏｎｎｅｃｔｅｄ）」、または「直接繋がった（ｄｉｒｅｃｔｌｙ  ｃｏｕｐｌｅｄ）」と表現された場合、この構成要素の間には他の構成要素が介入していない。ここで用いられる「および／または」という用語は、関連してリストされる項目の１つまたはその以上のあらゆる、またはいずれの組み合わせをも含む。
【００１５】
ここで、多様な要素（ｅｌｅｍｅｎｔｓ）、構成要素（ｃｏｍｐｏｎｅｎｔｓ）、領域（ｒｅｇｉｏｎｓ）、層（ｌａｙｅｒｓ）、および／またはセクション（ｓｅｃｔｉｏｎｓ）を示すために「第１」、「第２」、「第３」などの用語が用いられるが、このような要素、構成要素、領域、層、およびセクションがこのような用語によって制限されるものではない。このような用語は、単に、１つの要素、構成要素、領域、層、および／またはセクションを他の要素、構成要素、領域、層、および／またはセクションと区分するために用いられただけである。例えば、例示された実施形態の技術思想の範囲内から逸脱せずに、第１要素、構成要素、領域、層、および／またはセクションが第２要素、構成要素、領域、層、および／またはセクションとして命名されることもあるし、第２要素、構成要素、領域、層、および／またはセクションが第１要素、構成要素、領域、層、および／またはセクションとして命名されることもある。
【００１６】
「下に（ｂｅｎｅａｔｈ）」、「下側に（ｂｅｌｏｗ）」、「低く（ｌｏｗｅｒ）」、「上に（ａｂｏｖｅ）」、「上側に（ｕｐｐｅｒ）」などのような空間的関係を示す用語は、図示される１つの構成要素および／または特徴（ｆｅａｔｕｒｅ）とは異なる構成要素および／特徴の関係を容易に説明するために用いられる。このような空間的関係を示す用語は、動作時または使用時、図に示された位置に追加して、装置の他の位置関係も含むものとして理解することができる。
【００１７】
ここで用いられた用語は、具体的な実施形態を説明するための目的として用いられており、例示された実施形態を制限するためのものではない。ここで用いられたような単数形態（例えば、「ａ」、「ａｎ」、および「ｔｈｅ」）は、異なって記述されていない限り、複数の形態も含む。「含む（ｃｏｍｐｒｉｓｅ、ｃｏｍｐｒｉｓｉｎｇ、ｉｎｃｌｕｄｅ、ａｎｄ／ｏｒ  ｉｎｃｌｕｄｉｎｇ）」という用語は、記述された特徴、数字、段階、動作、要素、および／または構成要素を指定するが、１つ以上の他の特徴、数字、段階、動作、構成、構成要素、および／またはこれらのグループの追加または存在を除外しない。
【００１８】
異なって定義されていない限り、ここに用いられたすべての用語（技術的、科学的用語を含む）は、本発明が属する技術分野において通常の知識を有する者によって通常的に理解されるものと同じ意味を有する。通常的に用いられる辞書に定義されたものと同じ用語は、関連技術の文脈においてそれらの意味と一致する意味を有するものとして解釈されなければならず、ここにそのように表現した場合を除いては、異常化したり過度に形式的な意味で解釈したりしてはならない。
【００１９】
添付の図面を参照しながら、例示された実施形態を説明する。図中、同じ参照符号は同じ部材を示す。
【００２０】
図２は、例示された一実施形態に係るＭＬＣメモリ装置を示すブロック図である。
【００２１】
例示された実施形態に係るＭＬＣメモリ装置は、エンコーダ２１０、信号マッピング部２２０、ＭＬＣメモリセルアレイ２３０、信号デマッピング部２４０、および／またはデコーダ２５０を含むことができる。
【００２２】
例示された実施形態において、ＭＬＣメモリセルアレイ（ＭＬＣ  ｍｅｍｏｒｙ  ｃｅｌｌ  ａｒｒａｙ）２３０は、ａ個のｍビットＭＬＣメモリセル２６１、２６２、２６３、２６４を含むことができる。ａおよびｍは、２以上の整数とすることができる。ｍビットＭＬＣメモリセル２６１、２６２、２６３、２６４のそれぞれは、ｍビットのデータを格納しなければならないため、２ｍ個の散布の形成が求められることができる。例えば、図５には、２ビットのデータを格納するための２２個（例えば、ｍ＝２、２２＝４）の散布が例示されている。しかしながら、電圧ウィンドウは制限されているため、ｍが増加することによって隣接したビット間の閾値電圧の差が減少するようになる。したがって、ＭＬＣメモリセルへの記録および／または読み取り時のエラー発生の可能性が高くなる。ところが、例示された実施形態は、エンコーディングおよびデコーディングを用いてエラーの検出および／または訂正を実行することにより、高記憶密度のＭＬＣメモリ装置を可能にする。ＭＬＣメモリセル２６１、２６２、２６３、２６４のそれぞれと連結した感知増幅器（ＳＡ：ｓｅｎｓｅ  ａｍｐｌｉｆｉｅｒ）は、ＭＬＣメモリセル２６１、２６２、２６３、２６４に格納されたデータに関する信号を受信し、これを感知して増幅する。ＭＬＣメモリセル２６１、２６２、２６３、２６４は、ＭＬＣフラッシュメモリのメモリセルとすることができる。
【００２３】
例えば、エンコーダ２１０は、ｋビットの入力データ２０５をｋ／ｎの符号化率でエンコーディングし、ｎビットのエンコーディングされたビット列２１５を生成することができる。このとき、ｋおよびｎは１以上の整数であり、および／または、ｎはｋよりも大きい。デコーダ２５０は、エンコーダ２１０に対応し、ＭＬＣメモリセルアレイ２３０から読み取られたデマッピングされたビット列２４５からエラーを検出および／または訂正することにより、ＭＬＣメモリセルから読み取られたデータの正確度を高めるようになる。このとき、エンコーダは、ｋビットの入力データ２０５にｒビットのオーバーヘッドを付加し、ｋ＋ｒビット（ここで、ｋ＋ｒ＝ｎ）のエンコーディングされたビット列２１５を生成する。したがって、エンコーダ２１０の符号化率（ｃｏｄｅ  ｒａｔｅ）はｋ／（ｋ＋ｒ）、例えば、ｋ／ｎとなる。追加されたｒは、ｋビットのデータをメモリに格納した後、読み取り時に発生するエラーの検出および訂正に用いるために付加された情報である。
【００２４】
ところが、符号化率がさらに低ければ、ＭＬＣメモリセルアレイ２３０に実際に格納されるデータの量が減少することがある。セルあたりの有効ビット数（ｅｆｆｅｃｔｉｖｅ  ｂｉｔｓ／ｃｅｌｌ）は、１つのＭＬＣメモリセルが格納するデータのうち、エラーの検出および／または訂正に用いられるデータを除いた実際データのビットの個数であり、ｍビットＭＬＣメモリセルの場合、ｍ×Ｒで定義されることができる。ここで、Ｒは符号化率である。したがって、セルあたりの有効ビット数はｍ×Ｒ＝ｍ×（ｋ／ｎ）となるため、符号化率Ｒが高いほど大きくなる。例えば、符号化率が高いほど、ＭＬＣメモリセルアレイ２３０に格納されるデータのうちの実際データの比率は高くなり、したがって、符号化率が高いほど、ＭＬＣメモリセルアレイ２３０を効率的に用いるようになる。
【００２５】
ところが、ｋおよびｎは１以上の整数であり、および／または、ｎはｋよりも大きいため、ｋビットの入力データに対して可能な最大符号化率はｎ＝ｋ＋１である場合として、最大符号化率はｋ／（ｋ＋１）となる。例えば、格納データ２０５が１ビットであれば最大符号化率は１／２であり、格納データ２０５が１１ビットであれば最大符号化率は１１／１２であり、格納データ２０５が１５ビットであれば最大符号化率は１５／１６となることができる。例えば、格納データ２０５が１５ビットであるとき、符号化率が１５／２０、１５／３２、１５／６４などであるエンコーダを選択することもできるが、すべて入力データ２０５が１５ビットであるときの最大符号化率（例えば、１５／１６）よりは小さい値を有するようになる。しかしながら、格納データ２０５が１５ビットであれば、符号化率は１５／１６とするものが選択される。
【００２６】
ところが、ここで、ｎが大きくなるほど、最大符号化率の値が大きくなることが分かる。例えば、最大符号化率は、入力データ２０５のビット数に応じて１／２、２／３、３／４、４／５、…、１５／１６、…などとなることができるが、ｎが大きくなるほど最大符号化率の値が大きくなるようになる。上述したように、符号化率が大きいほど、ＭＬＣメモリセルアレイ２３０を効率的に用いることができる。したがって、符号化率を高めるためのエンコーダとしては、ｎの値が大きいエンコーダが選択される。
【００２７】
一方、ｍビットＭＬＣメモリセルは、１つのセルにｍビットデータを格納することができるが、符号化率ｋ／ｎを高める場合、ｎがｍよりも大きい場合が発生する。したがって、符号化率と関連したｎの値をｍよりも大きくない値で用いることもできるが、例示された実施形態は、高い符号化率を支援するために複数のｍビットＭＬＣメモリセルを用いる方法を提供する。
【００２８】
例示された実施形態は、ｎがｍよりも大きい場合を支援するために、ａ個のｍビットＭＬＣメモリセル２２１、２２２、２２３、２２４を含むことができる。また、ｎは、ａおよびｍの倍（例えば、ｎ＝ａ×ｍ）として選択する。例えば、４ビットＭＬＣメモリセルを用いる場合、４ビットＭＬＣメモリセルを２個用い、エンコーダ２１０の符号化率を７／８としてエンコーダ２１０を設計する。これにより、入力されるデータ２０５は、７ビット単位で分割され、エンコーダ２１０によって符号化率７／８でエンコーディングされる。エンコーディングされたビット列２１５は８ビットとなる。この８ビットのエンコーディングされたビット列２１５を信号マッピング部２２０が２個の４ビットＭＬＣメモリセルに記録（ｗｒｉｔｅ）できるように信号を割り当てることができる。
【００２９】
エンコーダ２１０によって生成されたエンコーディングされたビット列２１５は、信号マッピング部２２０によってＭＬＣメモリセルアレイ２３０に格納されることができる。したがって、エンコーディングされたビット列２１５は、ＭＬＣメモリセルアレイ２３０に格納される最終デジタルデータである。エンコーディングされたビット列２１５は、ｎビットで構成されるが、そのうちの一部であるｋビットがｋビットの入力データ２０５のビット列の値をそのまま維持している場合、エンコーディングされたビット列２１５は、組織符号（ｓｙｓｔｅｍａｔｉｃ  ｃｏｄｅ）と呼ばれる。もし、ｎビットのエンコーディングされたビット列２１５のうち、いずれの一部もｋビットの入力データ２０５のビット列の値をそのまま維持していない場合、エンコーディングされたビット列２１５は、非組織符号（ｎｏｎｓｙｓｔｅｍａｔｉｃ  ｃｏｄｅ）と呼ばれる。例示された実施形態は、エンコーディングされたビット列２１５を組織符号または非組織符号で生成することができる。例示された実施形態において、エンコーディングされたビット列２１５を組織符号で生成する場合、ＭＬＣメモリセルアレイ２３０に格納されるデータも、本来のｋビットの入力データ２０５のビット列の値をそのまま維持したままで格納されるようになる。
【００３０】
信号マッピング部（ｓｉｇｎａｌ  ｍａｐｐｉｎｇ  ｍｏｄｕｌｅ）２２０は、エンコーディングされたビット列２１５によるパルスをａ個のｍビットＭＬＣメモリセル２６１、２６２、２６３、２６４に印加（ａｐｐｌｙ）し、ａ個のｍビットＭＬＣメモリセル２６１、２６２、２６３、２６４にデータを記録できるように信号を割り当てることができる。具体的に、信号マッピング部２２０は、エンコーディングされたビット列２２０に応じて、ａ個のｍビットＭＬＣメモリセル２６１、２６２、２６３、２６４のそれぞれに対して決定されたパルス２２１、２２２、２２３、２２４のそれぞれをａ個のｍビットＭＬＣメモリセル２６１、２６２、２６３、２６４のそれぞれに印加することができる。パルスのそれぞれは、変調（ｍｏｄｕｌａｔｉｏｎ）された２ｍ個のレベルのうちの１つとすることができる。
【００３１】
例示された実施形態によれば、エンコーダ２１０および信号マッピング部２２０は結合されて、符号化変調（ｃｏｄｅｄ  ｍｏｄｕｌａｔｉｏｎ）方式で実現することができる。
【００３２】
信号デマッピング部（ｓｉｇｎａｌ  ｄｅｍａｐｐｉｎｇ  ｍｏｄｕｌｅ）２４０は、読み取り信号（ｒｅａｄ  ｓｉｇｎａｌ）の印加に応答して、ａ個のｍビットＭＬＣメモリセルのそれぞれ２６１、２６２、２６３、２６４から出力された出力パルス（ｏｕｔｐｕｔ  ｐｕｌｓｅ）２７１、２７２、２７３、２７４からデマッピングされたビット列（ｄｅｍａｐｐｅｄ  ｂｉｔ  ｓｔｒｅａｍ）２４５を生成することができる。
【００３３】
信号デマッピング部２４０は、読み取り信号の印加に応答して、ａ個のｍビットＭＬＣメモリセルのそれぞれ２６１、２６２、２６３、２６４から出力された出力パルスのそれぞれ２７１、２７２、２７３、２７４からデマッピングされた部分ビット列（ｄｅｍａｐｐｅｄ  ｐａｒｔ  ｂｉｔ  ｓｔｒｅａｍｓ）を決定することができる。信号デマッピング部２４０は、ａ個のｍビットＭＬＣメモリセルのそれぞれ２６１、２６２、２６３、２６４の２ｍ個の散布の閾値電圧と前記出力パルスのそれぞれ２７１、２７２、２７３、２７４とを比べ、出力パルスのそれぞれ２７１、２７２、２７３、２７４に対応したデマッピングされた部分ビット列を生成することができる。その次に、信号デマッピング部２４０は、デマッピングされた部分ビット列を結合してデマッピングされたビット列２４５を生成することができる。
【００３４】
図３および図６を参照しながら、例示された一実施形態に係る信号デマッピング部２４０の動作について説明する。図３は、例示された実施形態によって、２個の４ビットＭＬＣメモリセルアレイに対する信号マッピングを説明するための図である。
【００３５】
２個の４ビットＭＬＣメモリセルに対して符号化率が７／８でデータが格納された場合、２個の４ビットＭＬＣメモリセルに読み取り信号が印加されれば、ＭＬＣメモリセルのそれぞれからパルスが出力されることができる。第１ＭＬＣメモリセルから出力されたパルスが−２．５ボルトであり、第２ＭＬＣメモリセルから出力されたパルスが２．５ボルトであると仮定する。これにより、信号マッピングが図６のようであれば、信号デマッピング部２４０は、第１ＭＬＣメモリセルから出力されたパルス−２．５ボルトを２４個（例えば、ｍ＝４、２４＝１６）の散布の閾値電圧と比較し、下位４ビットを「１１１１」と決定することができる。そして、信号デマッピング部２４０は、第２ＭＬＣメモリセルから出力されたパルス２．５ボルトを２４個の散布の閾値電圧と比べ、上位４ビットを「００００」と決定することができる。「１１１１」および「００００」は、デマッピングされた部分ビット列である。これは、図３において、図面符号３１０に対応する。その次に、信号デマッピング部２４０は、デマッピングされた部分ビット列を結合し、デマッピングされたビット列２４５を生成する。
【００３６】
デコーダ（ｄｅｃｏｄｅｒ）２５０は、ｎビットのデマッピングされたビット列２４５をデコーディングし、ｋビットのデコーディングされたビット列（ｄｅｃｏｄｅｄ  ｂｉｔ  ｓｔｒｅａｍ）２５５を生成することができる。
【００３７】
デコーディング方法に応じて、エラーの検出および／またはエラーの訂正能力に差がある場合がある。例えば、エラーの検出は４ビットまで可能であるが、エラーの訂正は３ビットまでのみ可能であることがある。この場合、エラーが４ビット発生した場合、デコーダ２５０は、エラーが発生したことは検出できるがエラーの訂正は不可能なことがある。この場合、デコーダ２５０は、デコーディングされたビット列（ｏｕｔｅｒ  ｄｅｃｏｄｅｄ  ｂｉｔ  ｓｔｒｅａｍ）２５５を受信するオブジェクト（例えば、オペレーティングシステム、メモリ管理プログラムなど）にエラーとして検出されたが訂正されていないエラーに対して報告することができる。これにより、オブジェクトは、この報告に基づいて追加的な動作を実行することにより、メモリ使用をより効率的に行えるようになる。
【００３８】
図３を参照しながら、例示された実施形態によって、２個の４ビットＭＬＣメモリセルに対する信号マッピングについて説明する。図３の例において、エンコーダ２１０の符号化率は、７／８と仮定することができる。これにより、入力されるデータ２０５は、７ビット単位で分割され、エンコーダ２１０によって符号化率７／８でエンコーディングされることができる。エンコーディングされたビット列２１５は、８ビットとなることができる。したがって、信号マッピング部２２０は、８ビットのエンコーディングされたビット列２１５を４ビットＭＬＣメモリセルに記録することができる。例示された実施形態において、２個の４ビットＭＬＣメモリセルが用いられる。４ビットＭＬＣメモリセルのそれぞれは２４レベル、例えば、１６個のレベルのみを支援することができる。信号マッピング部２２０は、８ビットのエンコーディングされたビット列２１５を上位４ビットおよび下位４ビットに分け、下位４ビットによって決定されたパルスを第１ＭＬＣメモリセルに印加し、上位４ビットによって決定されたパルスを第２ＭＬＣメモリセルに印加することができる。例えば、エンコーディングされたビット列２１５が「００００１１１１」であれば、下位４ビットである「１１１１」によって決定された１６レベルのパルスを第１ＭＬＣメモリセルに印加し、上位４ビットである「００００」によって決定された１レベルのパルスを第２ＭＬＣメモリセルに印加する。図面符号３１０は、エンコーディングされたビット列２１５が「００００１１１１」である場合、第１ＭＬＣメモリセルおよび第２ＭＬＣメモリセルに印加されるパルスのレベルを表示したものである。同じように、エンコーディングされたビット列２１５が「１１１１００１０」であれば、下位４ビットである「００１０」によって決定された１６レベルのパルスを第１ＭＬＣメモリセルに印加し、上位４ビットである「１１１１」によって決定された１レベルのパルスを第２ＭＬＣメモリセルに印加する。図面符号３２０は、エンコーディングされたビット列２１５が「１１１１００１０」である場合、第１ＭＬＣメモリセルおよび第２ＭＬＣメモリセルに印加されるパルスのレベルを表示したものである。
【００３９】
図４は、例示された一実施形態に係るＭＬＣメモリセルアレイを示す図である。図４において、Ｂ／Ｌは１つ以上のビットラインを示し、Ｓ／Ｌは１つ以上のストリング選択ライン（ｓｔｒｉｎｇ  ｓｅｌｅｃｔｉｏｎ  ｌｉｎｅ）を示し、Ｗ／Ｌは１つ以上のワードラインを示す。ＭＣはメモリセルを示す。図４に示すメモリセルアレイのメモリセルは、１つのメモリセルに２ビット以上のデータを格納することができるＭＬＣメモリセルである。
【００４０】
図５および図６は、例示された一実施形態に係る信号マッピング部および信号デマッピング部の動作を説明するための図である。
【００４１】
図５および図６から分かるように、１つのメモリセルに対する電圧ウィンドウは制限されている。図５および図６の場合、ＭＬＣメモリセルの電圧ウィンドウは、約−３ボルト（マイナス３ボルト）から約４．５ボルトまでである。このように制限された電圧ウィンドウ内において、図５は、１つのＭＬＣメモリセルに２個のビットを格納しなければならないために４個の散布が形成され、図６は、１つのＭＬＣメモリセルに４個のビットを格納しなければならないために１６個の散布が形成されるようになる。このように、１つのメモリセルにｍ個のビットを格納しようとすれば、２ｍ個の散布を形成しなければならないが、電圧ウィンドウは制限されているため、ｍが増加することによって隣接したビット間の閾値電圧の差は減少するようになる。したがって、ＭＬＣメモリセルへの記録および読み取り時のエラー発生の可能性が高くなるが、例示された実施形態は、高符号化率を有するエラー訂正符号を用いてエラーを検出および訂正することにより、１つのメモリセルに４ビット以上を格納する高密度ＭＬＣセルメモリ装置を可能にするだけでなく、高符号化率を可能にすることにより、エラーの検出および訂正に伴うオーバーヘッドを最小にする。
【００４２】
図５を参照すれば、信号デマッピング部２４０は、ＭＬＣメモリセル２６１から得られた電圧が０．５Ｖよりも大きく（または、０．５Ｖ以上であり）、かつ１．０Ｖよりも小さければ（または、１．０Ｖ以下であれば）、論理「１１」でデマッピングされた部分ビット列を決定する。ＭＬＣメモリセル２６１から得られた電圧が１．５よりも大きく（または、１．５Ｖ以上であり）、かつ２．０Ｖよりも小さければ（２．０Ｖ以下であれば）、信号デマッピング部２４０は、論理「１０」でデマッピングされた部分ビット列を決定する。ＭＬＣメモリセル６１０から得られた電圧が２．５Ｖよりも大きく（または、２．５Ｖ以上であり）、かつ３．０Ｖよりも小さければ（または、３．０Ｖ以下であれば）、信号デマッピング部２４０は、論理「０１」でデマッピングされた部分ビット列を決定する。ＭＬＣメモリセル２６１から得られた電圧が３．５Ｖよりも大きく（または、３．５Ｖ以上であり）、かつ４．０Ｖよりも小さければ（または、４．０Ｖ以下であれば）、信号デマッピング部２４０は、論理「００」でデマッピングされた部分ビット列を決定する。ＭＬＣメモリセル２６１に格納されたデータは、読み取り動作時にセル電流および／またはセル電圧の差によって区分される。
【００４３】
同じように、信号マッピング部２２０は、エンコーディングされたビット列２１５に基づき、ＭＬＣメモリセル２６１に格納しなければならない論理が「１１」であれば、ＭＬＣメモリセル２６１が格納する電圧レベルが０．５Ｖよりも大きく（または、０．５Ｖ以上であり）、かつ１．０Ｖよりも小さいように（１．０Ｖ以下となるように）、プログラムパルスをＭＬＣメモリセル２６１に印加することができる。
【００４４】
ＭＬＣメモリセル２６１がＭＬＣフラッシュメモリセルである場合、論理「０１」をＭＬＣメモリセル２６１に記録する場合を説明する。信号マッピング部２２０は、記録するＭＬＣメモリセル２６１を消去させた状態でワードライン電圧を少しずつ増加させながらＭＬＣメモリセル２６１の電圧をプラスの方向に少しずつ増加させ、メモリセルの閾値電圧が２．５Ｖよりも大きく（または、２．５Ｖ以上であり）、かつ３．０Ｖよりも小さい（または、３．０Ｖ以上である）領域に到達したのかを検証（ｖｅｒｉｆｙ）することができる。したがって、論理「０１」をＭＬＣメモリセル２６１に記録するために、ＭＬＣメモリセル２６１は、論理「１１」および論理「１０」の状態を順に経て論理「０１」の状態となることができる。
【００４５】
図７は、例示された実施形態に係るエンコーダ７００を示すブロック図である。また、図８は、例示された実施形態に係るデコーダ８００を示すブロック図である。エンコーダ７００およびデコーダ８００は、連接符号化を用いることができる。
【００４６】
図７に示すエンコーダ７００は、ｋビットのデータをエンコーディングし、ｎビットのエンコーディングされたビット列を生成するとき、外部符号化（ｏｕｔｅｒ  ｃｏｄｉｎｇ）および内部符号化（ｉｎｎｅｒ  ｃｏｄｉｎｇ）の２段階を連結接続した連接符号化（ｃｏｎｃａｔｅｎａｔｅｄ  ｃｏｄｉｎｇ）を用いることができる。外部符号化には、ブロック符号化（ｂｌｏｃｋ  ｃｏｄｉｎｇ）を用いることができ、および／または、内部符号化には畳み込み符号化（ｃｏｎｖｏｌｕｔｉｏｎａｌ  ｃｏｄｉｎｇ）を用いることができる。ブロック符号化は、データを一定のブロック単位で符号化（ｅｎｃｏｄｉｎｇ）および／または復号化（ｄｅｃｏｄｉｎｇ）する方法として用いることができる。畳み込み符号化は、以前（ｐｒｅｖｉｏｕｓ）データと現在（ｃｕｒｒｅｎｔ）データを用いて符号化する方法として用いることができる。畳み込み符号化は、符号化に以前データを用いるため、以前データを格納する格納装置を必要とすることができる。ブロック符号化はバーストエラー（ｂｕｒｓｔ  ｅｒｒｏｒ）の検出および訂正に強く、畳み込み符号化はランダムエラー（ｒａｎｄｏｍ  ｅｒｒｏｒ）の検出および／または訂正に強い。したがって、例示された実施形態において、ＭＬＣメモリ装置にデータを記録するときに、外部符号化としてブロック符号化を用い、および／または、内部符号化として畳み込み符号化を用いることにより、例示された実施形態は、バーストエラーおよび／またはランダムエラーすべてに強い高い性能のエラー訂正性能を有することができる。
【００４７】
外部エンコーダ（ｏｕｔｅｒ  ｅｎｃｏｄｅｒ）７１０は、ＭＬＣメモリ装置に格納するｋビットのソースデータ７０５を受信し、ソースデータ７０５をｋ／（ｋ＋ｒ１）の符号化率で外部エンコーディングされたビット列（ｏｕｔｅｒ  ｅｎｃｏｄｅｄ  ｂｉｔ  ｓｔｒｅａｍ）７１５を生成することができる。このとき、エンコーディング方法としては、線形ブロックエンコーディング（ｌｉｎｅａｒ  ｂｌｏｃｋ  ｅｎｃｏｄｉｎｇ）を用いることができる。
【００４８】
線形ブロックエンコーディングには、Ｈａｍｍｉｎｇコーディング、ＢＣＨ（Ｂｏｓｅ、Ｒａｙ−Ｃｈａｕｄｈｕｒｉ、Ｈｏｃｑｕｅｎｇｈｅｍ）コーディング、Ｒｅｅｄ−Ｓｏｌｏｍｏｎ（ＲＳ）コーディング、Ｇｏｌａｙコーディングなどの方法がある。線形ブロックエンコーディングは、まず、ソースデータをｋビット単位でブロック化することができる。例えば、ソースデータをｋビット単位で分割することができる。外部エンコーダ７１０は、このようにブロック化されたｋビットのビット列７０５にｒ１ビットのオーバーヘッドを付加し、ｋ＋ｒ１ビットの外部エンコーディングされたビット列７１５を生成することができる。したがって、外部エンコーダ７１０の符号化率は、ｋ／（ｋ＋ｒ１）となることができる。追加されたｒ１ビットは、パリティビット（ｐａｒｉｔｙ  ｂｉｔ）であり、ｋビットのビット列７０５に付加することができる。この場合、ＭＬＣメモリ装置からデータを読み取るとき、内部デコーダ８１０は、ｒ１ビットを参照してｋビットのデータに対するエラー検出および／またはエラー訂正を実行することができる。
【００４９】
内部エンコーダ（ｉｎｎｅｒ  ｅｎｃｏｄｅｒ）７２０は、外部エンコーディングされたビット列７１５を（ｋ＋ｒ１）／ｎの符号化率でエンコーディングし、内部エンコーディングされたビット列（ｉｎｎｅｒ  ｅｎｃｏｄｅｄ  ｂｉｔ  ｓｔｒｅａｍ）７２５を生成することができる。このとき、エンコーディング方法としては、畳み込み符号エンコーディング（ｃｏｎｖｏｌｕｔｉｏｎａｌ  ｃｏｄｅ  ｅｎｃｏｄｉｎｇ）を用いることができる。
【００５０】
畳み込み符号エンコーディングは、現在のデータと以前のデータの間の相互関連性（ｃｏｎｖｏｌｕｔｉｏｎａｌ  ｒｅｌａｔｉｏｎ）を用いてエラーを検出および／または訂正することができる。畳み込み符号エンコーディングは、ランダムエラーの検出および／訂正に強い。内部エンコーダ７２０は、ｋ＋ｒ１ビットの外部エンコーディングされたビット列７１５をエンコーディングし、ｋ＋ｒ１＋ｒ２ビットのエンコーディングされたビット列７２５を生成することができる。したがって、内部エンコーダ７２０によって追加されるオーバーヘッドはｒ２ビットであり、内部エンコーダ７２０の符号化率は（ｋ＋ｒ１）／（ｋ＋ｒ１＋ｒ２）となることができる。ｋ＋ｒ１＋ｒ２をｎとすれば、外部エンコーダ７１０および内部エンコーダ７２０全体を介した符号化率は、ｋ／ｎになることができる。ここで、ｎ−ｋは、ｋビットデータをＭＬＣメモリセルに格納するときに発生するエラーの検出および／または訂正のために付加されるビット数となるため、ｎ−ｋは最小化されることができる。したがって、ｎがｋ＋１であれば、付加されるビットは１ビットであり、符号化率はｋ／（ｋ＋１）として最大になることができる。例示された実施形態では、ｍビットメモリセルａ個を用い、ｎをａおよびｍの倍（例えば、ｎ＝ａ×ｍ）に設定し、高符号化率でエンコーディングを可能とすることにより、ｋビットデータをＭＬＣメモリセルに格納するときに発生するエラーの検出および／または訂正のために付加されるビット数を最小にすることができる。
【００５１】
デコーダ８００は、内部デコーダ８１０および／または外部デコーダ８２０を含むことができる。内部デコーダ（ｉｎｎｅｒ  ｄｅｃｏｄｅｒ）８１０は、デマッピングされたビット列８０５を第２デコーディング方法でデコーディングし、内部デコーディングされたビット列（ｉｎｎｅｒ  ｄｅｃｏｄｅｄ  ｂｉｔ  ｓｔｒｅａｍ）８１５を生成することができる。例えば、第２デコーディング方法としては、ビタビ（Ｖｉｔｅｒｂｉ）デコーディングを用いることができる。内部デコーダ８１０は、ｋ＋ｒ１＋ｒ２（＝ｎ）ビットのデマッピングされたビット列８０５をデコーディングし、ｋ＋ｒ１ビットの内部デコーディングされたビット列８１５を生成することができる。内部デコーダは、第２デコーディング方法を用いてデマッピングされたビット列８２５に含まれたエラーを検出し、および／または、検出されたエラーを訂正することができる。例えば、第２デコーディング方法としてビタビデコーディングを用いる場合、ランダムエラーの検出および／または訂正に有利になることができる。
【００５２】
外部デコーダ（ｏｕｔｅｒ  ｄｅｃｏｄｅｒ）８２０は、ｋ＋ｒ１ビットの内部デコーディングされたビット列８１５を第１デコーディング方法でデコーディングし、ｋビットのデコーディングされたビット列（ｏｕｔｅｒ  ｄｅｃｏｄｅｄ  ｂｉｔ  ｓｔｒｅａｍ）８２５を生成することができる。外部デコーダ８２０は、第１デコーディング方法を用いて内部デコーディングされたビット列８１５に含まれたエラーを検出し、および／または、検出されたエラーを訂正することができる。第１デコーディング方法は、第１エンコーディング方法に対応するデコーディング方法を用いることができる。第１エンコーディング方法として、Ｈａｍｍｉｎｇコーディング、ＢＣＨコーディング、Ｒｅｅｄ−Ｓｏｌｏｍｏｎ（ＲＳ）コーディング、Ｇｏｌａｙコーディングなどの線形ブロックエンコーディングが用いられた場合、第１デコーディング方法もこれに対応した線形ブロックデコーディングが用いられるようになる。例えば、第１エンコーディング方法としてＲＳコーディングによるエンコーディングを用いた場合、第１デコーディング方法もＲＳコーディングによるデコーディングが用いられるようになる。
【００５３】
このように、内部デコーダ８１０は、デマッピングされたビット列８０５から検出された（ｄｅｔｅｃｔｅｄ）エラーを訂正して内部デコーディングされたビット列８１５を生成し、外部デコーダ８２０は、内部デコーディングされたビット列８１５から検出されたエラーを訂正してデコーディングされたビット列８２５を生成する２段階のエラー検出および／または訂正を実行することができる。したがって、例示された実施形態によれば、ＭＬＣメモリ装置の読み取り時に読み取られた信号をより正確に読み取ることができるようになり、高密度のＭＬＣメモリ装置を実現できるようになる。
【００５４】
なお、例示された実施形態は、コンピュータにより実現される多様な動作を実行するためのプログラム命令を含むコンピュータ読取可能な記録媒体を含む。当該記録媒体は、プログラム命令、データファイル、データ構造などを単独または組み合わせて含むこともでき、記録媒体およびプログラム命令は、本発明の目的のために特別に設計されて構成されたものでもよく、コンピュータソフトウェア分野の技術を有する当業者にとって公知であり使用可能なものであってもよい。コンピュータ読取可能な記録媒体の例としては、ハードディスク、フロッピー（登録商標）ディスク及び磁気テープのような磁気媒体、ＣＤ−ＲＯＭ、ＤＶＤのような光記録媒体、フロプティカルディスクのような磁気−光媒体、およびＲＯＭ、ＲＡＭ、フラッシュメモリなどのようなプログラム命令を保存して実行するように特別に構成されたハードウェア装置が含まれる。また、記録媒体は、プログラム命令、データ構造などを保存する信号を送信する搬送波を含む光または金属線、導波管などの送信媒体でもある。プログラム命令の例としては、コンパイラによって生成されるような機械語コードだけでなく、インタプリタなどを用いてコンピュータによって実行され得る高級言語コードを含む。
【００５５】
例えば、例示された実施形態において説明されたエンコーダ２１０、信号マッピング部２２０、信号デマッピング部２４０、デコーダ２５０、エンコーダ７００、外部エンコーダ７１０、内部エンコーダ７２０、デコーダ８００、内部デコーダ８１０、および／または外部デコーダ８２０のうちの一部またはすべてが、コンピュータプログラムによって実現されることができる。この場合には、このようなコンピュータプログラムも例示された実施形態に含まれる。
【００５６】
このように、例示された実施形態によれば、ＭＬＣメモリ装置に新たなエラー訂正方法を適用することにより、１つのメモリセルに格納するビットの数を安定的に増加させることができる。例示された実施形態によれば、メモリセルに４ビット以上を格納することができる効率的なエラー訂正方式が用いられる高低精密度のＭＬＣメモリ装置が提案され、１つのメモリセルに４ビット以上を効率的に格納することができるＭＬＣメモリ装置が可能になる。
【００５７】
例示された実施形態を適用したＭＬＣメモリ装置は、追加的な回路が必要なオーバーヘッドがあるが、このようなオーバーヘッドよりも例示された実施形態を適用することにより、得られるメモリ装置のデータ容量の増加がより大きくなり得る。
【００５８】
また、例示された実施形態によれば、高符号化率（ｈｉｇｈ  ｃｏｄｅ  ｒａｔｅ）のエンコーディングを介してＭＬＣメモリ装置にデータを記録できるようにすることにより、１つのＭＬＣに格納されるビットの数を増加させながらも、これによって付加されるエンコーディングおよび／またはデコーディングのオーバーヘッドを最小にすることができる。
【００５９】
また例示された実施形態によれば、ｍビットＭＬＣメモリ装置に対して符号化率をｋ／ｎにしようとするが、ｎがｍよりも大きい場合にも、ＭＬＣメモリ装置にエンコーディングおよび／またはデコーディングを用いることができる。
【００６０】
また、ＭＬＣメモリ装置で１つのビットに格納するビットの数を増加させれば、隣接したビット間の閾値電圧の差が減少するようになり、これによって読み取り失敗率が増加するが、例示された実施形態を適用すれば、このような問題が改善および／または除去されることができる。
【００６１】
また、例示された実施形態によれば、ＭＬＣメモリ装置で読み取られた信号に含まれたエラーが訂正されることにより、フラッシュメモリの信頼性、量産性などを高めることができる。
【００６２】
また、例示された実施形態によれば、ＭＬＣメモリ装置において、ランダムエラーおよび／またはバーストエラーすべてに強いエラー訂正方法が提供されることができる。
【００６３】
上述したように、本発明の好ましい実施形態を参照して説明したが、該当の技術分野において熟練した当業者にとっては、特許請求の範囲に記載された本発明の思想および領域から逸脱しない範囲内で、本発明を多様に修正および変更させることができることを理解することができるであろう。すなわち、本発明の技術的範囲は、特許請求の範囲に基づいて定められ、発明を実施するための最良の形態により制限されるものではない。
【符号の説明】
【００６４】
２１０      エンコーダ
２２０      信号マッピング部
２３０      ＭＬＣメモリセルアレイ
２４０      信号デマッピング部
２５０      デコーダ
７００      エンコーダ
７１０      外部エンコーダ
７２０      内部エンコーダ
８００      デコーダ
８１０      内部デコーダ
８２０      外部デコーダ
【図１】
2010515145.tif 000003
【図２】
2010515145.tif 000004
【図３】
2010515145.tif 000005
【図４】
2010515145.tif 000006
【図５】
2010515145.tif 000007
【図６】
2010515145.tif 000008
【図７】
2010515145.tif 000009
【図８】
2010515145.tif 000010
【国際調査報告】
2010515145.tif 000011
2010515145.tif 000012