(57)【要約】【課題】クロス・ページ・セクタ、マルチ・ページ符号化およびパー・ページ符号化を使用して多重レベル・セル・フラッシュ・メモリ・デバイスにデータを記憶するための方法および装置が提供される。【解決手段】フラッシュ・メモリ・デバイス内の複数のページにわたって単一セクタを記憶することができる。個々のページにおけるセクタの数、ならびに所与のページを符号化および復号化するために使用される符号および／または符号レート、および所与のページを復号化するために使用される復号器または復号化アルゴリズムのパー・ページ制御が提供される。また、マルチ・ページ・アクセス・スキームおよび語線レベル・アクセス・スキームが提供される。【選択図】図１
2014135097.tif 000002
【特許請求の範囲】
【請求項１】
複数のセルを有する多重レベル・セル・フラッシュ・メモリ・デバイスにデータを記憶するための方法であって、前記多重レベル・セル・フラッシュ・メモリ・デバイスの個々のセルが複数のビットを記憶することができ、前記複数のビットの各々が異なるページからのビットであり、前記方法が、
複数の前記ページを蓄積することと、
前記複数のページを単一のブロックとして符号化することと、
前記単一のブロックを前記多重レベル・セル・フラッシュ・メモリ・デバイスに記憶することと
を含む方法。
【請求項２】
前記記憶された単一のブロックを復号化するステップをさらに含む、請求項１に記載の方法。
【請求項３】
前記記憶された単一のブロックを復号化する前記ステップが、前記複数の前記ページを提供し、また、前記方法が、要求されたセクタを前記複合化された複数のページから獲得するステップをさらに含む、請求項２に記載の方法。
【請求項４】
前記複数のページが前記多重レベル・セル・フラッシュ・メモリ内の単一の語線に対応する、請求項１に記載の方法。
【請求項５】
前記複数のページが、前記多重レベル・セル・フラッシュ・メモリ・デバイスからの読出しおよび前記多重レベル・セル・フラッシュ・メモリ・デバイスへの書込みのためのものであってもよい最小データ単位である、請求項１に記載の方法。
【請求項６】
少なくとも１つのセクタが複数のページにまたがる、請求項１に記載の方法。
【請求項７】
前記複数のページを単一のブロックとして符号化するステップが、単一の符号および単一の符号レートを使用して前記複数のページを符号化する、請求項１に記載の方法。
【請求項８】
前記複数のページを単一のブロックとして符号化するステップが、複数の符号および複数の符号レートのうちの１つまたは複数を使用して前記複数のページを符号化する、請求項１に記載の方法。
【請求項９】
前記複数のページを単一のブロックとして符号化するステップが、独自の符号および独自の符号レートのうちの１つまたは複数を使用して前記複数のページの各々を符号化する、請求項１に記載の方法。
【請求項１０】
前記複数の前記ページを蓄積する前記ステップが、ｊが前記多重レベル・セル・フラッシュ・メモリ・デバイス内の語線当たりのページ数であり、また、ｋがページ当たりの前記セクタの数であるｊ×ｋ個のセクタを蓄積するステップをさらに含む、請求項１に記載の方法。
【請求項１１】
前記符号化された単一のブロックを複数のページに分割するステップをさらに含み、また、前記記憶するステップが、前記複数のページの各々を前記多重レベル・セル・フラッシュ・メモリ・デバイスに記憶するステップを含む、請求項１に記載の方法。
【請求項１２】
複数のセルを有する多重レベル・セル・フラッシュ・メモリ・デバイスにデータを記憶するための方法であって、前記多重レベル・セル・フラッシュ・メモリ・デバイスの個々のセルが複数のビットを記憶することができ、前記複数のビットの各々が異なるページからのビットであり、前記方法が、
前記多重レベル・セル・フラッシュ・メモリ・デバイスに書き込むべき現在のページのページ・タイプを決定することと、
前記決定されたページ・タイプに関連する符号および符号レートのうちの少なくとも１つを決定することと、
前記決定された少なくとも１つの符号および符号レートを使用して前記現在のページを符号化することと、
前記符号化された現在のページを前記多重レベル・セル・フラッシュ・メモリ・デバイスに記憶することと
を含む方法。
【請求項１３】
前記現在のページを符号化する前記ステップに先立って、前記決定されたページ・タイプに関連するページ当たりのセクタの数を決定するステップと、前記決定された数のセクタを蓄積するステップとをさらに含む、請求項１２に記載の方法。
【請求項１４】
第２のページ・タイプより強力な符号および第２のページ・タイプより低い符号レートのうちの１つまたは複数を使用して、前記第２のページ・タイプより低い信頼性を有する第１のページ・タイプが符号化される、請求項１２に記載の方法。
【請求項１５】
対応する符号レートを使用して、語線内の個々のページが実質的に同様の長さに符号化される、請求項１２に記載の方法。
【請求項１６】
少なくとも１つのセクタを読み出す要求を受け取るステップと、前記要求されたセクタを有する前記多重レベル・セル・フラッシュ・メモリ・デバイス内のページを識別するステップと、前記識別されたページに関連する前記少なくとも１つの符号および符号レートを使用して、前記識別されたページを読み出し、かつ、前記読み出されたページを復号化するステップと、メモリ・マップを使用して前記要求されたセクタを前記復号化されたページから獲得するステップとをさらに含む、請求項１２に記載の方法。
【請求項１７】
語線内の複数のページを復号化するために、複数の復号化段を備えた多段復号器を使用して１つまたは複数のページを復号化するステップをさらに含む、請求項１２に記載の方法。
【請求項１８】
第１のページのための復号化段が他のページのための復号化段に決定を提供する、請求項１７に記載の方法。
【請求項１９】
前記決定がハード決定およびソフト決定のうちの１つまたは複数である、請求項１８に記載の方法。
【請求項２０】
第１のページが復号化され、前記方法が、前記第１のページに対する復号化誤りが検出されると少なくとも１つの追加ページを復号化するステップをさらに含む、請求項１７に記載の方法。
【請求項２１】
複数のセルを有する多重レベル・セル・フラッシュ・メモリ・デバイスにデータを記憶するための方法であって、前記多重レベル・セル・フラッシュ・メモリ・デバイスの個々のセルが複数のビットを記憶することができ、前記複数のビットの各々が異なるページからのビットであり、前記方法が、
前記多重レベル・セル・フラッシュ・メモリ・デバイスに書き込むべき現在のページのページ・タイプを決定することと、
前記決定されたページ・タイプに関連するページ当たりのセクタの数を決定することと、
前記決定されたセクタの数を蓄積することと、
前記蓄積されたセクタを符号化することと、
前記蓄積されたセクタを前記多重レベル・セル・フラッシュ・メモリ・デバイスに記憶することと
を含む方法。
【請求項２２】
少なくとも１つのセクタが複数のページにまたがり、前記記憶ステップの間、マルチ・ページ・アクセス・スキームおよび語線レベル・アクセス・スキームのうちの１つまたは複数が使用される、請求項２１に記載の方法。
【請求項２３】
ページ当たりの前記セクタの数が非整数個であり、少なくとも１つのセクタが複数のページにまたがる、請求項２１に記載の方法。
【請求項２４】
後続するページのためにセクションの１つまたは複数のごく一部をバッファリングするステップをさらに含む、請求項２１に記載の方法。
【請求項２５】
前記蓄積されたセクタを記憶する前記ステップが、マルチ・ページ・アクセス・スキームおよび語線レベル・アクセス・スキームのうちの１つまたは複数を使用する、請求項２１に記載の方法。
【請求項２６】
少なくとも１つのセクタを読み出す要求を受け取るステップと、前記要求されたセクタを有する前記多重レベル・セル・フラッシュ・メモリ・デバイス内の１つまたは複数のページを識別するステップと、ページ・レベル・アクセス・スキーム、マルチ・ページ・アクセス・スキームおよび語線レベル・アクセス・スキームを使用して前記識別された１つまたは複数のページを読み出すステップとをさらに含む、請求項２１に記載の方法。
【請求項２７】
前記読み出され、識別された１つまたは複数のページを前記識別された１つまたは複数のページに関連する符号および符号レートのうちの少なくとも１つを使用して復号化するステップと、メモリ・マップを使用して前記要求されたセクタを前記復号化された１つまたは複数のページから獲得するステップとをさらに含む、請求項２６に記載の方法。
【請求項２８】
それぞれ複数の物理ページおよび複数のセルを備えた複数の語線を有する多重レベル・セル・フラッシュ・メモリ・デバイスにデータを記憶するための方法であって、前記多重レベル・セル・フラッシュ・メモリ・デバイスの個々のセルが複数のビットを記憶することができ、前記複数のビットの各々が異なる論理ページからのビットであり、前記論理ページの各々がユーザ・データの複数のセクタを備え、前記方法が、
第１のセットの論理ページを記憶することであって、前記第１のセットの論理ページ内の個々の論理ページの符号化サイズが前記複数の物理ページのサイズより小さいことと、
第２のセットの論理ページを記憶することであって、前記第２のセットの論理ページ内の個々の論理ページの符号化サイズが前記複数の物理ページのサイズより大きく、かつ、前記第２のセットの論理ページの少なくとも一部がスピルオーバ領域に記憶されることと
を含む方法。
【請求項２９】
前記第１のセットの論理ページを記憶する前記ステップに引き続いて前記スピルオーバ領域がプログラムされる、請求項２８に記載の方法。
【請求項３０】
前記第１のセットの論理ページを記憶する前記ステップに先立って前記スピルオーバ領域がプログラムされる、請求項２８に記載の方法。
【請求項３１】
前記多重レベル・セル・フラッシュ・メモリ・デバイスが、それぞれ複数の前記ページを備えた複数の語線をさらに備え、前記複数のページの各々が、前記複数のページの各々の非符号化長が実質的に同様の長さになり、また、前記複数のページの各々の符号化長が異なるように関連する符号レートを有する、請求項２８に記載の方法。
【請求項３２】
前記多重レベル・セル・フラッシュ・メモリ・デバイスが、それぞれ複数の前記ページを備えた複数の語線をさらに備え、前記複数のページの各々が、前記複数のページの各々の非符号化長が異なり、また、前記複数のページの各々の符号化長が実質的に同様の長さになるように関連する符号レートを有する、請求項２８に記載の方法。
【請求項３３】
多重レベル・セル・フラッシュ・メモリ・デバイスであって、
複数のセルであって、前記多重レベル・セル・フラッシュ・メモリ・デバイスの個々のセルが複数のビットを記憶することができ、前記複数のビットの各々が異なるページからのビットである複数のセルと、
それぞれ複数の前記ページを備えた複数の語線であって、前記複数のページの各々が、前記複数のページの各々の非符号化長が実質的に同様の長さになり、また、前記複数のページの各々の符号化長が異なるように関連する符号レートを有する複数の語線と
を備えた多重レベル・セル・フラッシュ・メモリ・デバイス。
【請求項３４】
多重レベル・セル・フラッシュ・メモリ・デバイスであって、
複数のセルであって、前記多重レベル・セル・フラッシュ・メモリ・デバイスの個々のセルが複数のビットを記憶することができ、前記複数のビットの各々が異なるページからのビットである複数のセルと、
それぞれ複数の前記ページを備えた複数の語線であって、前記複数のページの各々が、前記複数のページの各々の非符号化長が異なり、また、前記複数のページの各々の符号化長が実質的に同様の長さになるように関連する符号レートを有する複数の語線と
を備えた多重レベル・セル・フラッシュ・メモリ・デバイス。
【請求項３５】
多重レベル・セル・フラッシュ・メモリ・デバイスであって、
複数のセルであって、前記多重レベル・セル・フラッシュ・メモリ・デバイスの個々のセルが複数のビットを記憶することができ、前記複数のビットの各々が異なるページからのビットである複数のセルと、
それぞれ複数の前記ページを備えた複数の語線であって、少なくとも１つのセクタが前記複数のページにまたがっている複数の語線と
を備えた多重レベル・セル・フラッシュ・メモリ・デバイス。
【発明の詳細な説明】
【技術分野】
【０００１】
関連出願の相互参照
本出願は、参照により本明細書に組み込まれている、２００８年３月１１日に出願した米国仮出願第６１／０６８９３４号の利益を主張するものである。
【０００２】
本発明は一般に多重レベル・セル・フラッシュ・メモリ・デバイスに関し、より詳細には、このような多重レベル・セル・デバイスを符号化し、かつ、このような多重レベル・セル・デバイスにアクセスするための技法に関する。
【背景技術】
【０００３】
フラッシュ・メモリ・デバイスなどの多くのメモリ・デバイスには、データを記憶するためのアナログ・メモリ・セルが使用されている。個々のメモリ・セルは、記憶値とも呼ばれている、電荷または電圧などのアナログ値を記憶する。この記憶値は、セル内に記憶された情報を表す。フラッシュ・メモリ・デバイスの場合、例えば、個々のアナログ・メモリ・セルは、通常、特定の電圧を記憶する。個々のセルに対する可能アナログ値の範囲は、通常、複数の閾値領域に分割され、個々の領域は、１つまたは複数のデータ・ビット値に対応している。データは、所望の１つまたは複数のビットに対応する公称アナログ値を書き込むことによってアナログ・メモリ・セルに書き込まれる。
【０００４】
単一レベル・セル（ＳＬＣ）フラッシュ・メモリ・デバイスは、例えば、１つのメモリ・セル毎に１つのビットを記憶する（つまり２つの可能メモリ状態）。一方、多重レベル・セル（ＭＬＣ）フラッシュ・メモリ・デバイスは、１つのメモリ・セル毎に複数のビットを記憶する（つまり個々のセルは４つ以上のプログラム可能状態を有している）。多重レベル・セル・フラッシュ・メモリ・デバイスの場合、単に電流または電圧が存在しているか、あるいは存在していないかだけではなく、電流または電圧の量が検出される。多重レベル・セル・デバイスの場合、少なくとも３つの閾値レベルを使用して４つ以上の異なる閾値状態が定義される。したがって個々のセルの動作範囲は、多数の状態に分割されており、また、個々の状態の範囲は、単一レベル・セル・デバイスの場合より狭い。したがって、多重レベル・セル・デバイスにおける任意の単一のビットの信頼性は、単一レベル・セル・デバイスにおける信頼性より低い。多重レベル・セル（ＭＬＣ）フラッシュ・メモリ・デバイスについてのより詳細な説明については、例えば、それぞれ参照により本明細書に組み込まれている、Ｋ.Ｔａｋｅｕｃｈｉら、「Ａ  ５６−ｎｍ  ＣＭＯＳ  ９９−ｍｍ２  ８−Ｇｂ  Ｍｕｌｔｉ−Ｌｅｖｅｌ  ＮＡＮＤ  Ｆｌａｓｈ  Ｍｅｍｏｒｙ  ｗｉｔｈ  １０−ＭＢ／ｓ  Ｐｒｏｇｒａｍ  Ｔｈｒｏｕｇｈｐｕｔ」、ＩＥＥＥＥ  Ｊｏｕｒｎａｌ  ｏｆ  Ｓｏｌｉｄ−Ｓｔａｔｅ  Ｃｉｒｃｕｉｔｓ、Ｖｏｌ．４２、Ｎｏ．１、２１９〜２３２頁（２００７）、およびＫ．−Ｔ．Ｐａｒｋら、「Ａ  Ｚｅｒｏｉｎｇ  Ｃｅｌｌ−ｔｏ−Ｃｅｌｌ  Ｉｎｔｅｒｆｅｒｅｎｃｅ  Ｐａｇｅ  Ａｒｃｈｉｔｅｃｔｕｒｅ  ｗｉｔｈ  Ｔｅｍｐｏｒａｒｙ  ＬＳＢ  Ｓｔｏｒｉｎｇ  ａｎｄ  Ｐａｒａｌｌｅｌ  ＭＳＢ  Ｐｒｏｇｒａｍ  Ｓｃｈｅｍｅ  ｆｏｒ  ＭＬＣ  ＮＡＮＤ  Ｆｌａｓｈ  Ｍｅｍｏｒｉｅｓ」、ＩＥＥＥ  Ｊｏｕｒｎａｌ  ｏｆ  Ｓｏｌｉｄ−Ｓｔａｔｅ  Ｃｉｒｃｕｉｔｓ、Ｖｏｌ  ４３、Ｎｏ．４、９１９〜９２８頁（２００８）を参照されたい。
【０００５】
既存のフラッシュ・デバイスには、ページ・レベル・アクセス技法が使用されており、ページは、フラッシュ・メモリ・デバイスに書き込むことができ、あるいはフラッシュ・メモリ・デバイスから読み出すことができる最小単位である。ページは、通常、互いに独立して書き込まれ、かつ、読み出される。さらに、既存のフラッシュ・メモリには、通常、すべてのページを符号化（および復号化）するために同じ符号および符号レートが使用されている。オペレーティング・システムには、通常、例えば５１２バイトのユーザ情報からなるデータ・セクタが使用されている。通常、ユーザ・データ長は、セクタ・サイズの倍数である。ある典型的なフラッシュ・メモリ構成では、１つのページには、８個のセクタのユーザ情報が含まれている。したがって、フラッシュ・コントローラは、フラッシュ・メモリ・デバイスに個々のページを書き込むために、ページ・レベル・アクセス技法を使用して８個のセクタの情報を結合している。フラッシュ・メモリ・デバイスからセクタが読み出される毎に、所望のセクタを含んだすべてのページが読み出される。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】米国仮出願第６１／０６８９３４号
【特許文献２】米国特許第６５２２５８０号
【非特許文献】
【０００７】
【非特許文献１】Ｋ.Ｔａｋｅｕｃｈｉら、「Ａ  ５６−ｎｍ  ＣＭＯＳ  ９９−ｍｍ２  ８−Ｇｂ  Ｍｕｌｔｉ−Ｌｅｖｅｌ  ＮＡＮＤ  Ｆｌａｓｈ  Ｍｅｍｏｒｙ  ｗｉｔｈ  １０−ＭＢ／ｓ  Ｐｒｏｇｒａｍ  Ｔｈｒｏｕｇｈｐｕｔ」、ＩＥＥＥＥ  Ｊｏｕｒｎａｌ  ｏｆ  Ｓｏｌｉｄ−Ｓｔａｔｅ  Ｃｉｒｃｕｉｔｓ、Ｖｏｌ．４２、Ｎｏ.１、２１９〜２３２頁（２００７）
【非特許文献２】Ｋ．−Ｔ.Ｐａｒｋら、「Ａ  Ｚｅｒｏｉｎｇ  Ｃｅｌｌ−ｔｏ−Ｃｅｌｌ  Ｉｎｔｅｒｆｅｒｅｎｃｅ  Ｐａｇｅ  Ａｒｃｈｉｔｅｃｔｕｒｅ  ｗｉｔｈ  Ｔｅｍｐｏｒａｒｙ  ＬＳＢ  Ｓｔｏｒｉｎｇ  ａｎｄ  Ｐａｒａｌｌｅｌ  ＭＳＢ  Ｐｒｏｇｒａｍ  Ｓｃｈｅｍｅ  ｆｏｒ  ＭＬＣ  ＮＡＮＤ  Ｆｌａｓｈ  Ｍｅｍｏｒｉｅｓ」、ＩＥＥＥ  Ｊｏｕｒｎａｌ  ｏｆ  Ｓｏｌｉｄ−Ｓｔａｔｅ  Ｃｉｒｃｕｉｔｓ、Ｖｏｌ.４３、Ｎｏ.４、９１９〜９２８頁（２００８）
【非特許文献３】Ｕ.Ｗａｃｈｓｍａｎｎら、「Ｍｕｌｔｉｌｅｖｅｌ  Ｃｏｄｅｓ：Ｔｈｅｏｒｅｔｉｃａｌ  Ｃｏｎｃｅｐｔｓ  ａｎｄ  Ｐｒａｃｔｉｃａｌ  Ｄｅｓｉｇｎ  Ｒｕｌｅｓ」、ＩＥＥＥ  Ｔｒａｎｓ．ｏｎ  Ｉｎｆｏｒｍａｔｉｏｎ  Ｔｈｅｏｒｙ、Ｖｏｌ．４５、Ｎｏ．５、１３６１〜９１頁（１９９９）
【非特許文献４】Ｓ.ＬｉｎおよびＤ.Ｃｏｓｔｅｌｌｏ、「Ｅｒｒｏｒ  Ｃｏｎｔｒｏｌ  Ｃｏｄｉｎｇ：Ｆｕｎｄａｍｅｎｔａｌｓ  ａｎｄ  Ａｐｐｌｉｃａｔｉｏｎ，  Ｓｅｃｏｎｄ  Ｅｄｉｔｉｏｎ」  Ｐｅａｒｓｏｎ  Ｐｒｅｎｔｉｃｅ  Ｈａｌｌ  （２００４）
【発明の概要】
【発明が解決しようとする課題】
【０００８】
例えば、より低い誤り率を達成し、あるいは記憶容量を改善するためには、多重レベル・セル（ＭＬＣ）フラッシュ・メモリ・デバイスのための改良型多重レベル符号化および読出し／書込みアクセス技法が必要である。さらに、フラッシュ メモリ・デバイス内の複数のページにわたって単一のセクタを記憶することができる多重レベル・セル・フラッシュ・メモリ・デバイスのための改良型読出し／書込みアクセス技法が必要である。さらに、個々のページ内のセクタの数、ならびに符号化および復号化のために使用される符号および／または符号レートのパー・ページ制御を提供する改良型読出し／書込みアクセス技法が必要である。多重レベル符号についてのより詳細な説明については、例えば、参照により本明細書に組み込まれている、Ｕ.Ｗａｃｈｓｍａｎｎら、「Ｍｕｌｔｉｌｅｖｅｌ  Ｃｏｄｅｓ：Ｔｈｅｏｒｅｔｉｃａｌ  Ｃｏｎｃｅｐｔｓ  ａｎｄ  Ｐｒａｃｔｉｃａｌ  Ｄｅｓｉｇｎ  Ｒｕｌｅｓ」、ＩＥＥＥ  Ｔｒａｎｓ．ｏｎ  Ｉｎｆｏｒｍａｔｉｏｎ  Ｔｈｅｏｒｙ、Ｖｏｌ．４５、Ｎｏ．５、１３６１〜９１頁（１９９９）を参照されたい。
【課題を解決するための手段】
【０００９】
一般に、クロス・ページ・セクタ、マルチ・ページ符号化およびパー・ページ符号化を使用して多重レベル・セル・フラッシュ・メモリ・デバイスにデータを記憶するための方法および装置が提供される。本発明の様々な態様によれば、複数のセルを有する多重レベル・セル・フラッシュ・メモリ・デバイスにデータが記憶され、多重レベル・セル・フラッシュ・メモリ・デバイスの個々のセルは、複数のビットを記憶することができ、複数のビットの各々は、異なるページからのビットである。開示されるデータ記憶方法の１つには、複数のページを蓄積するステップと、複数のページを単一のブロックとして符号化するステップと、単一のブロックを多重レベル・セル・フラッシュ・メモリ・デバイスに記憶するステップが含まれている。さらに、記憶された単一のブロックを復号化し、複数のページを提供することも可能である。
【００１０】
他の記憶方法には、多重レベル・セル・フラッシュ・メモリ・デバイスに書き込むべき現在のページのページ・タイプを決定するステップと、決定されたページ・タイプに関連する符号および符号レートのうちの少なくとも１つを決定するステップと、決定された少なくとも１つの符号および符号レートを使用して現在のページを符号化するステップと、符号化された現在のページを多重レベル・セル・フラッシュ・メモリ・デバイスに記憶するステップが含まれている。ページは、多重レベル・セル・フラッシュ・メモリ・デバイスの中に読み出すことができ、また、識別されたページに関連する少なくとも１つの符号、符号レート、復号器または復号化アルゴリズムを使用して復号化することができる。
【００１１】
さらに他の記憶方法には、多重レベル・セル・フラッシュ・メモリ・デバイスに書き込むべき現在のページのページ・タイプを決定するステップと、決定されたページ・タイプに関連するページ当たりのセクタの数を決定するステップと、決定されたセクタの数を蓄積するステップと、蓄積されたセクタを符号化するステップと、蓄積されたセクタを多重レベル・セル・フラッシュ・メモリ・デバイスに記憶するステップが含まれている。少なくとも１つのセクタを読み出す要求を受け取ると、要求されたセクタを有する多重レベル・セル・フラッシュ・メモリ・デバイス内の１つまたは複数のページを識別することができ、また、識別された１つまたは複数のページは、ページ・タイプ・アクセス・スキーム、マルチ・ページ・アクセス・スキームおよび語線レベル・アクセス・スキームのうちの１つまたは複数を使用して読み出すことができる。読み出された、識別された１つまたは複数のページは、識別された１つまたは複数のページに関連する符号、符号レート、復号器および復号化アルゴリズムのうちの少なくとも１つを使用して復号化することができ、また、メモリ・マップを使用して、復号化された１つまたは複数のページから、要求されたセクタを得ることができる。
【００１２】
他の記憶方法には、第１のセットの論理ページを記憶するステップであって、第１のセットの論理ページ内の個々の論理ページの符号化サイズが複数の物理ページのサイズより小さいステップと、第２のセットの論理ページを記憶するステップであって、第２のセットの論理ページ内の個々の論理ページの符号化サイズが複数の物理ページのサイズより大きく、かつ、第２のセットの論理ページの少なくとも一部が複数の物理ページのスピルオーバ領域に記憶されるステップが含まれている。
【００１３】
本発明の他の態様によれば、多重レベル・セル・フラッシュ・メモリ・デバイスが開示される。多重レベル・セル・フラッシュ・メモリ・デバイスは、複数のセルであって、多重レベル・セル・フラッシュ・メモリ・デバイスの個々のセルが複数のビットを記憶することができ、複数のビットの各々が異なるページからのビットである複数のセルと、それぞれ複数のページを備えた複数の語線であって、複数のページの各々が、複数のページの各々の非符号化長が実質的に同様の長さになり、また、複数のページの各々の符号化長が異なるように関連する符号レートを有することができる複数の語線とを備えている。
【００１４】
本発明の他の態様によれば、多重レベル・セル・フラッシュ・メモリ・デバイスが提供される。多重レベル・セル・フラッシュ・メモリ・デバイスは、複数のセルであって、多重レベル・セル・フラッシュ・メモリ・デバイスの個々のセルが複数のビットを記憶することができ、複数のビットの各々が異なるページからのビットである複数のセルと、それぞれ複数のページを備えた複数の語線であって、複数のページの各々が、複数のページの各々の非符号化長が異なり、また、複数のページの各々の符号化長が実質的に同様の長さになるように関連する符号レートを有することができる複数の語線とを備えている。
【００１５】
本発明のさらに他の態様によれば、多重レベル・セル・フラッシュ・メモリ・デバイスが提供される。多重レベル・セル・フラッシュ・メモリ・デバイスは、複数のセルであって、多重レベル・セル・フラッシュ・メモリ・デバイスの個々のセルが複数のビットを記憶することができ、複数のビットの各々が異なるページからのビットである複数のセルと、それぞれ複数のページを備えた複数の語線であって、少なくとも１つのセクタが複数のページにまたがることができる複数の語線とを備えている。
【００１６】
本発明ならびに本発明の他の特徴および利点については、以下の詳細な説明および図面を参照することによってより完全に理解されよう。
【図面の簡単な説明】
【００１７】
【図１】本発明によるフラッシュ・メモリ・コントローラとフラッシュ・メモリ・デバイスの間の相互作用を示す略ブロック図である。
【図２】図１の例示的多重レベル・セル・フラッシュ・メモリのための一例示的閾値電圧分布を示す図である。
【図３】多重レベル・セル（ＭＬＣ）フラッシュ・メモリ・デバイス内のフラッシュ・セル・アレイを示す図である。
【図４】本発明の一態様による、図３のフラッシュ・セル・アレイのための一例示的符号器を示す図である。
【図５】本発明の特徴を組み込んだ語線レベル・アクセス・スキームのための書込みプロセスの一例示的実施態様を記述した流れ図である。
【図６】本発明の特徴を組み込んだ語線レベル・アクセス・スキームのための読出しプロセスの一例示的実施態様を記述した流れ図である。
【図７】語線内の個々のページが異なる符号レートで同じ長さに符号化される、本発明の特徴を組み込んだ可変符号レート符号化スキームを示す図である。
【図８】個々のページが整数個のセクタを備えている場合における、フラッシュ・メモリ１３０に書き込むための可変符号レート書込みプロセスの一例示的実施態様を記述した流れ図である。
【図９】個々のページが整数個のセクタを備えている場合における、フラッシュ・メモリ１３０から読み出すための可変符号レート読出しプロセスの一例示的実施態様を記述した流れ図である。
【図１０】個々のページが非整数個のセクタを備え、また、所与のセクタが複数のページにまたがることができる場合における、フラッシュ・メモリに書き込むための可変符号レート書込みプロセスの一例示的実施態様を記述した流れ図である。
【図１１】１つまたは複数のページが非整数個のセクタを備えることができ、また、所与のセクタが複数のページにまたがることができる場合における、フラッシュ・メモリから読み出すための可変符号レート・プロセスの一例示的実施態様を記述した流れ図である。
【図１２】通常のセルおよびスピルオーバ・セルを備えたマルチ・ページ セル語線を示す図である。
【図１３】本発明の特徴を組み込んだ多段復号器の略ブロック図である。
【発明を実施するための形態】
【００１８】
本発明によれば、多重レベル・セル（ＭＬＣ）フラッシュ・メモリ・デバイスのための多重レベル符号化および読出し／書込みアクセス技法が提供される。本明細書において使用されているように、多重レベル・セル・フラッシュ・メモリは、個々のメモリ・セルが複数のビットを記憶するメモリを備えている。通常、１つのフラッシュ・セル内に記憶されている複数のビットは、異なるページに属している。図１は、本発明によるフラッシュ・メモリ・コントローラ１００とフラッシュ・メモリ・デバイス１２０の間の相互作用を示す略ブロック図である。図１に示されているように、ユーザ・データは、以下で説明する本発明の態様によるフラッシュ・メモリ１３０に書き込むことができ、かつ、フラッシュ・メモリ１３０から読み出すことができる。図１に示されているように、入力ビット・ストリームは、データ蓄積、集約、蓄積、収集、分割、またはインタリービングなどの潜在的に他のタスクを実行するデータ管理ブロック１１０によって処理される。次に、集約され、あるいは分割されたデータが符号器１４０によって符号化され、例えば冗長ビットが追加される。本発明のすべての実施形態では、系統的符号および非系統的符号の両方を使用することができる。
【００１９】
次に、符号化されたデータがマッパ１５０によって処理され、マッパ１５０は、符号化された１つまたは複数のビット・ストリームをフラッシュ・メモリ１３０をプログラムするためのプログラム済み電圧レベルにマップする。フラッシュ・メモリ１３０からデータが読み出され、読み出された電圧レベルを１つまたは複数のビット・ストリームにデマップするデマッパ１６０によって処理され、この１つまたは複数のビット・ストリームが復号器１７０によって復号化される。通常、符号器１４０およびマッパ１５０は、ユーザ・データのストリームを、フラッシュ・メモリ１３０のセルの中にプログラムしなければならない状態または電圧レベルのストリームに変換する。同様に、デマッパ１６０および復号器１７０は、フラッシュ・メモリ１３０から読み出されたセル状態または電圧レベルのストリームを、フラッシュ・メモリ１３０に記憶されていたユーザ・データのストリームに変換する。データ管理ブロック１１０は、符号器１４０の出力部分またはデマッパ１６０の出力部分で、符号化されたデータ・ストリームに追加データ集約、蓄積、収集、分割、インタリービングまたは他のタスクを適用することができる。
【００２０】
以下、図４および図１３に関連して、データを符号化し、かつ、復号化するための本発明による技法についてさらに説明する。以下、例えば図５および６に関連して、フラッシュ・コントローラ１００のための適切な技法についてさらに説明する。フラッシュ・メモリ１３０は、多重レベルＮＡＮＤフラッシュ・メモリまたは多重レベル位相変化メモリなどの多重レベル・セル・フラッシュ・メモリとして具体化することができる。通常、図２および３に関連して以下でさらに説明するように、フラッシュ・メモリ１３０には、少なくとも１つのフラッシュ・セル・アレイ、ならびに読出しおよび書込み回路が含まれている。
【００２１】
多重レベル・セル・フラッシュ・メモリ
多重レベル・セル・フラッシュ・メモリの場合、通常、閾値検出器を使用して、特定のセルに関連する電圧値が定義済みメモリ状態に変換される。図２は、参照により本明細書に組み込まれている米国特許第６５２２５８０号の教示に基づく、図１の例示的多重レベル・セル・フラッシュ・メモリ１３０のための一例示的閾値電圧分布を示したものである。図２に示されている例示的実施形態では、個々の記憶素子には、２つのビットのデータを個々のメモリ・セルに記憶するために４つの可能データ状態が使用されている。図２には、個々のピークが１つの状態に対応している４つのピーク２１０〜２１３が示されている。多重レベル・セル・フラッシュ・デバイスの場合、セルに２つのビットを記憶するために、閾値電圧分布グラフ２００の異なるピーク２１０〜２１３が使用される。
【００２２】
閾値電圧分布グラフ２００のピーク２１０〜２１３には、それぞれ２進値１１、０１、００および１０のラベルが振られている。したがってセルが第１の状態２１０にある場合、それは、下位ビットが「１」であり、また、上位ビットが「１」であることを表している（これは、通常、セルのプログラムされていない初期状態または消去状態である）。同様に、セルが第２の状態２１１にある場合、それは、下位ビットが「１」であり、また、上位ビットが「０」であることを表している。セルが第３の状態２１２にある場合、それは、下位ビットが「０」であり、また、上位ビットが「０」であることを表している。最後に、セルが第４の状態２１３にある場合、それは、下位ビットが「０」であり、また、上位ビットが「１」であることを表している。
【００２３】
閾値電圧分布２１０は、０ボルト未満の負の閾値電圧レベルを有する消去状態（「１１」データ状態）にあるアレイ内のセルの閾値レベルＶＴの分布を表している。それぞれ「０１」および「００」ユーザ・データを記憶しているメモリ・セルの閾値電圧分布２１１および２１２は、それぞれ０ボルトと１ボルトの間、および１ボルトと２ボルトの間になるように示されている。閾値電圧分布２１３は、閾値電圧レベルがリード・パス電圧の２ボルトと４．５ボルトの間に設定された「１０」データ状態にプログラムされているセルの分布を示している。
【００２４】
以下でさらに説明するように、単一のメモリ・セルに記憶されている２つのビットの各々は、異なるページからのビットである。言い換えると、個々のメモリ・セルに記憶されている２つのビットの個々のビットは、異なるページ・アドレスを担っている。図２に示されている右側のビットは、下位ページ・アドレスが入力されるとアクセスされる。左側のビットは、上位ページ・アドレスが入力されるとアクセスされる。
【００２５】
フラッシュ・メモリは、通常、複数のブロックで構成されており、個々のブロックは、フラッシュ・セル・アレイとして実施されている。図３は、多重レベル・セル（ＭＬＣ）フラッシュ・メモリ・デバイス１３０内のフラッシュ・セル・アレイ３００を示したものである。図３に示されているように、フラッシュ・セル・アレイ３００は、フラッシュ・セルｃｉ当たり複数のビットを記憶している。図３には、１つのブロックに対するフラッシュ・セル・アレイ・アーキテクチャが示されており、個々の例示的セルは、通常、３つのビットを記憶する浮遊ゲート・トランジスタに対応している。例示的セル・アレイ３００は、ｍ本の語線およびｎ本のビット線からなっている。通常、マルチ・ページ・セル・フラッシュ・メモリの場合、個々のページはセクタ・サイズの倍数であり、また、単一セル内のビットは、異なるページに属している。図３の例では、個々のセルの３つのビットは、３つの異なるページに対応しており、また、個々の語線は、３つのページを記憶している。以下の説明では、ページ０、１および２は、下位ページ・レベル、中位ページ・レベルおよび上位ページ・レベルと呼ばれている。さらに、フラッシュ・セル・アレイ３００内のページ３１０などの個々のページは、通常、８個のセクタなどの固定数のセクタを備えている。本発明の一態様によれば、個々のページは、セクタ・サイズの非整数倍であってもよい。
【００２６】
フラッシュ・セル・アレイは、さらに、偶数ページおよび奇数ページに分割することができ、例えば偶数番号のセル（図３のセル２および４など）は偶数ページに対応しており、また、奇数番号のセル（図３のセル１および３など）は奇数ページに対応している。この場合、ページ（ページ０など）は、偶数ページ（偶数ページ０）および奇数ページ（奇数ページ０）を含むことになる。偶数ページおよび奇数ページの詳細な説明については、例えば、参照により本明細書に組み込まれている、Ｋ．−Ｔ.Ｐａｒｋら、「Ａ  Ｚｅｒｏｉｎｇ  Ｃｅｌｌ−ｔｏ−Ｃｅｌｌ  Ｉｎｔｅｒｆｅｒｅｎｃｅ  Ｐａｇｅ  Ａｒｃｈｉｔｅｃｔｕｒｅ  ｗｉｔｈ  Ｔｅｍｐｏｒａｒｙ  ＬＳＢ  Ｓｔｏｒｉｎｇ  ａｎｄ  Ｐａｒａｌｌｅｌ  ＭＳＢ  Ｐｒｏｇｒａｍ  Ｓｃｈｅｍｅ  ｆｏｒ  ＭＬＣ  ＮＡＮＤ  Ｆｌａｓｈ  Ｍｅｍｏｒｉｅｓ」、ＩＥＥＥ  Ｊｏｕｒｎａｌ  ｏｆ  Ｓｏｌｉｄ−Ｓｔａｔｅ  Ｃｉｒｃｕｉｔｓ、Ｖｏｌ.４３、Ｎｏ.４、９１９〜９２８頁（２００８）を参照されたい。本発明のすべての態様は、偶数／奇数ページ分割または他のフラッシュ・セル・アレイ分割を有するフラッシュ・セル・アレイに適用することができる。以下では、ページは、図３に示されているページもしくは偶数ページまたは奇数ページのいずれかを表している。
【００２７】
ジョイント符号化またはパー・ページ符号化
本発明の一態様によれば、語線内の個々のページは、任意選択で、異なる符号レートまたは異なるタイプの符号（または両方）を使用して符号化することができる。例えば、Ｌｏｗ  Ｄｅｎｓｉｔｙ  Ｐａｒｉｔｙ  Ｃｈｅｃｋ  Ｃｏｄｅｓ（ＬＤＰＣ）、Ｂｏｓｅ−Ｃｈａｕｄｈｕｒｉ−Ｈｏｃｑｕｅｎｇｈｅｍ（ＢＣＨ）およびＲｅｅｄ  Ｓｏｌｏｍｏｎ（ＲＳ）符号を使用することができる。一実施形態では、より高い信頼性を必要とするページには、より強力な符号またはより低い符号レートを使用することができる。例えば、より大きいページ番号は、場合によっては誤りを生じる可能性がより高い。したがってこれらのページは、これらのページの性能を改善する符号または符号レート（または両方）を使用して符号化することができる。誤り率がより高い上位ページには、より強力な誤り修正符号（より低いレートの符号およびＬＤＰＣ符号など）を使用することができ、また、誤り率がより低い下位ページには、微力な誤り修正符号（より高いレートの符号および代数符号など）を使用することができる。
【００２８】
したがって、本発明によれば、多重レベル・フラッシュ・セル・アレイ３００の語線内の個々のページの符号化パラメータを独自に確立することができる。例えば、本発明の一実施形態によれば、（ｉ）ページ当たりのセクタの数、（ｉｉ）符号、（ｉｉｉ）ページを分割および／または符号化するために使用される符号レート、および／または（ｉｖ）ページを復号化するために使用される復号器または復号器アルゴリズムのパー・ページ制御が可能である。
【００２９】
図４に関連して以下でさらに説明するように、個々の語線内のデータのｊ個のページ（ｊはフラッシュ・セル・アレイ３００内の語線当たりのページ数である）は、任意選択で、最大ｊ個の固有符号および／または符号レートを有する独立した符号化スキームを使用した符号器１４０によって符号化することができる。例えば、図４に示されている実施形態では、個々のページは、任意選択で、固有の符号および符号レートを使用することができる。ページは、例えば、図３に示されている語線内の３つのページを参照することができ、あるいは偶数ページおよび奇数ページを有する３ビット／セル・フラッシュ・セル・アレイ内の６個のページ（３つは偶数ページであり、また、３つは奇数ページである）を参照することができる。
【００３０】
図１および５に関連して以下で説明する本発明の他の態様は、ジョイント符号化スキームをサポートしており、単一の符号および符号レートを有する符号器１４０によって、個々の語線内のデータのｊ個のページを符号化することができる。
【００３１】
ページ・アクセス・スキーム、マルチ・ページ・アクセス・スキームおよび語線レベル・アクセス・スキーム
本発明の他の態様によれば、ページ・レベル、マルチ・ページ・レベルまたは語線レベルに基づいてマルチ・ページ・セル・フラッシュ・メモリ１３０にアクセスすることができる。上で既に示したように、既存のフラッシュ・デバイスには、ページ・レベル・アクセス技法が使用されており、ページは、フラッシュ・メモリ・デバイスに書き込むことができ、あるいはフラッシュ・メモリ・デバイスから読み出すことができる最小単位である。さらに、本発明によれば、（ｉ）フラッシュ・メモリ・デバイスを符号化し、フラッシュ・メモリ・デバイスに書き込み、あるいはフラッシュ・メモリ・デバイスから読み出すための最小単位として複数のページを使用することができるマルチ・ページ・レベル・アクセス技法、および（ｉｉ）語線が、データを符号化し、読み出し、あるいは書き込むための最小データ単位である語線レベル・アクセス技法が可能である。本発明は、この方法で、ページの境界を越えた符号語の符号化を可能にし、あるいは語線内における異なるページのための可変符号レートを可能にすることによって、より優れた柔軟性および有効性を提供している。さらに、本発明によれば、複数のページをまとめて符号化するＬＤＰＣ符号化技法などの改良型符号化スキームおよび復号化スキームを使用することができる。
【００３２】
以下でさらに説明するように、データ管理ブロック１１０は、ページ・レベル・アクセス・スキーム、マルチ・ページ・アクセス・スキームまたは語線レベル・アクセス・スキームが使用されているかどうかに基づいて、入力ビット・ストリームからデータを蓄積している。マルチ・ページ・アクセス・スキームまたは語線レベル・アクセス・スキームの場合、データ管理および符号化は、複数のページまたはすべての語線に対して実施することができるが、これらの複数のページまたは語線は、知られている技法を使用してページを逐次フラッシュ・メモリに書き込むことによって物理的に書き込むことができる。
【００３３】
語線内のページの符号化／復号化
図４は、本発明の一態様による、図３のマルチ・ページ・セル・フラッシュ・アレイ３００のための一例示的符号器４００を示したものである。上で既に示したように、例示的フラッシュ・メモリ１３０内の個々のページは、独立して符号化することができる。図４に示されているように、例示的語線内の３つの例示的ページに対して、３つの全く異なる符号器４２０−１ないし４２０−３が使用されている。これらの３つの符号器４２０−１ないし４２０−３は、符号化のタイプ（例えばＬＤＰＣ、ＢＣＨおよびＲＳ）または符号レートあるいはその両方の点で異なっていてもよい。上で示したように、下位ページ・レベルは、中位ページ・レベルおよび上位ページ・レベルより高い符号レートで符号化することができる（その逆についても同様である）。一変形形態では、十分な信頼性を有するいくつかのページ・レベルは、全く符号化することができない。図４に示されているように、以下でさらに説明するデータ管理ユニット１１０内でのデータ分割の後、フラッシュ・セル・アレイ３００の適切なセルに記憶される前に、１つのセル内の個々のビットが個別の符号器４２０−１ないし４２０−３によって符号化される。
【００３４】
本発明の他の態様によれば、語線内の個々のページは、ＬＤＰＣ、ＢＣＨ、ＲＳ、ハード・デシジョン復号器またはソフト・デシジョン復号器などの異なるタイプの復号器を使用して復号化することができる。例えば、語線内の誤り率がより低いページは、ハード・デシジョン復号器を使用して復号化することができ、一方、誤り率がより高いページは、ソフト・デシジョン復号器を使用して復号化することができる。ハード・デシジョン復号器は、通常、フラッシュ・セル・アレイ３００から読み出される、符号化されたビットを使用することになる。ソフト・デシジョン復号器は、ソフト情報、例えばフラッシュ・セル・アレイ３００内のセルから読み出される電圧値を使用することになる。
【００３５】
他の変形形態では、復号器が反復復号化を実施すると、個々のページの復号器は、異なる反復回数を実施することができる。例えば、語線内の誤り率がより高いページは、より多くの反復回数を使用して復号化することができ、一方、誤り率がより低いページは、誤り率がより高いページより少ない反復回数を使用して復号化することができる。さらに、図１３に関連して以下でさらに説明するように、本発明の他の態様は、語線内の複数のページを復号化しており、例えば、総合誤り率を改善するために、１つのページの復号器は、他のページの復号器に決定を供給している。ハード・デシジョン復号器およびソフト・デシジョン復号器、反復復号化、ＬＤＰＣ符号化および他の符号化技法の説明については、例えば、参照により本明細書に組み込まれている、Ｓ.ＬｉｎおよびＤ.Ｃｏｓｔｅｌｌｏ、「Ｅｒｒｏｒ  Ｃｏｎｔｒｏｌ  Ｃｏｄｉｎｇ：Ｆｕｎｄａｍｅｎｔａｌｓ  ａｎｄ  Ａｐｐｌｉｃａｔｉｏｎｓ，  Ｓｅｃｏｎｄ  Ｅｄｉｔｉｏｎ」  Ｐｅａｒｓｏｎ  Ｐｒｅｎｔｉｃｅ  Ｈａｌｌ  （２００４）を参照されたい。
【００３６】
図５は、本発明の特徴を組み込んだ語線レベル・アクセス・スキームのための書込みプロセス５００の一例示的実施態様を記述した流れ図である。図５に示されているように、例示的語線レベル書込みプロセス５００は、最初に、ステップ５１０の間、ｊ×ｋ個のセクタを収集する。ｊは、フラッシュ・セル・アレイ３００内の語線当たりのページ数であり、ｋはページ当たりのセクタの数である。ステップ５１０の間、１つまたは複数のページには、場合によっては、データの３つのすべてのページが有効になるまでの間、例えばデータ管理ブロック１１０内のメモリ回路を使用したバッファリングが必要であることに留意されたい（図３の例示的３−ビット−パー−セル実施形態の場合）。次に、語線レベル書込みプロセス５００は、ステップ５２０の間、データのｊ個のページを符号化ブロックに符号化する。符号化ブロックは、任意選択で、ステップ５３０の間、ｊ個のページに分割される。次に、ステップ５４０の間、ｊ個のページがフラッシュ・セル・アレイ３００の中にプログラムされる。
【００３７】
本発明の様々な実施形態では、図１に示されている符号器１４０を使用することにより、単一の符号および符号レートを使用して、データのｊ個のページをまとめて符号化することができ、あるいは図４に示されている符号器４２０を使用することにより、（個々のページ毎に独自の符号および符号レートを有する）最大ｊ個の符号および符号レートを使用して独立して符号化することができることに留意されたい。さらに、ジョイント符号化スキームの場合、ステップ５３０の間の分割は、通常、図５に示されているように、ステップ５２０の符号化の後に実施され、一方、独立符号化スキームの場合、データは、通常、ステップ５２０の符号化に先立って複数のページに分割されることに留意されたい。
【００３８】
図６は、本発明の特徴を組み込んだ語線レベル・アクセス・スキームのための読出しプロセス６００の一例示的実施態様を記述した流れ図である。図６に示されているように、例示的語線レベル読出しプロセス６００は、最初に、ステップ６１０の間、少なくとも１つのセクタを読み出す要求を受け取る。次に、語線レベル読出しプロセス６００は、ステップ６２０の間、知られているマッピング技法を使用して、要求されたセクタを有する語線を識別する。語線レベル読出しプロセス６００は、ステップ６３０の間、例えば語線に記憶されているすべてのページを連続的に読み出すことによって、識別された語線を読み出し、また、ステップ６４０の間、最大ｊ個のページを得るために、語線から読み出されたデータのブロックを復号化する。本発明の他の代替実施形態では、ステップ６３０の間、語線内のセルに対する電圧値などのソフト情報が、語線レベル読出しのための語線から読み出され、読み出されたソフト情報に基づいて、ステップ６４０の間、最大ｊ個のページを復号化することができる。十分なソフト情報を有することにより、語線内のすべてのページを復号化することができる。本発明の様々な実施形態では、語線から読み出されたデータのブロックは、ステップ５２０の間に如何にしてデータがフラッシュ・メモリに書き込まれたかに基づいて、単一の符号および符号レートを使用して復号化することができ、あるいは（個々のページ毎に独自の符号および符号レートを有する）最大ｊ個の符号および符号レートを使用して独立して復号化することができることに留意されたい。最後に、語線レベル読出しプロセス６００は、ステップ６５０の間、書込みプロセス５００の間に生成されたメモリ・マップを使用して、要求されたセクタを復号化されたページから獲得する。
【００３９】
可変符号レート多重レベル・セル
上で既に示したように、本発明の一態様によれば、個々のページ毎に異なる符号および／または符号レートを使用して語線内の個々のページを独立して符号化および復号化することができる。一変形形態では、語線内の個々のページは、異なる符号レートを使用して符号化することができる。図７は、語線内の個々のページが異なる符号レートで同じ長さに符号化される、本発明の特徴を組み込んだ可変符号レート符号化スキーム７００を示したものである。図７の例示的実施態様に示されているように、下位ページおよび中位ページ７１１、７１２は、同じ符号レートを使用して符号化され、また、同じ量のユーザ・データ７２０およびパリティ・ビット７３０を備えている。上位ページ７１３は、ページ７１１、７１２と比較すると、より低い符号レートを使用して符号化され、したがってより少ないユーザ・データ７２０を符号化し、利用可能なより多くの数のパリティ・ビット７３０を有している。例えば、符号化された下位ページおよび中位ページ７１１、７１２は、７個のセクタを備えることができ、一方、符号化された上位ページ７１３は、６個のセクタを備えることができる。以下、図８ないし１１に関連して、図７の可変符号レート符号化スキーム７００をサポートするための適切な書込みプロセスおよび読出しプロセスについてさらに説明する。
【００４０】
したがって、本発明によれば、語線内のページが同じ符号化長を有し、かつ、異なる非符号化長を有するように符号レートを選択することができる。以下で説明するように、コントローラ１００は、受け取ったデータ・ストリームをページのユーザ・データ・サイズに基づいて、また、プログラミングのために利用することができるフラッシュ・メモリ内の１つまたは複数のページ・タイプ（つまり符号レートおよびページ当たりのセクタの数）に基づいて分割することができる。ページ位置は、フォーマット効率、読出し速度および書込み速度の点でシステム性能が最大化されるように選択することができる。
【００４１】
図８および９は、それぞれ、個々のページが整数個のセクタを備えている場合における、フラッシュ・メモリ１３０に書き込むための可変符号レート・プロセスおよびフラッシュ・メモリ１３０から読み出すための可変符号レート・プロセスを示したものである。図１０および１１は、それぞれ、１つまたは複数のページが非整数個のセクタを備えることができ、また、所与のセクタが複数のページにまたがることができる場合における、フラッシュ・メモリ１３０に書き込むための可変符号レート・プロセスおよびフラッシュ・メモリ１３０から読み出すための可変符号レート・プロセスを示したものである。
【００４２】
図８は、個々のページが整数個のセクタを備えている場合における、フラッシュ・メモリ１３０に書き込むための可変符号レート書込みプロセス８００の一例示的実施態様を記述した流れ図である。通常、書込みプロセス８００には、符号化されているページ・タイプ（つまりページ・レベル）に基づいてユーザ・データを分割するためのページ・レベル・アクセス・スキームおよび新規な技法が使用されている。さらに、書込みプロセス８００には、同じく、識別されたページ・タイプに関連する適切な符号レートが使用されている。例えば、一例示的実施態様では、語線の下位ページおよび中位ページは、ユーザ・データの８個のセクタを備えることができ、一方、上位ページは、ユーザ・データの７個のセクタを備えることができる。したがって、下位ページまたは中位ページがプログラムされている場合、ユーザ・データの８個のセクタを蓄積しなければならず、一方、上位ページがプログラムされている場合、ユーザ・データの７個のセクタを蓄積しなければならない。
【００４３】
図８に示されているように、書込みプロセス８００は、最初に、ステップ８１０の間、書き込まれている現在のページのページ・タイプ（つまりページ・レベルおよび／または偶数ページまたは奇数ページ）を決定し、また、ステップ８２０の間、ページ当たりのセクタの数、および決定されたページ・タイプに対する符号および／または符号レートを決定する。書込みプロセス８００は、ステップ８３０の間、現在のページ・タイプに対して、決定された数のセクタを蓄積する。ステップ８４０の間、蓄積されたデータが現在のページに対する符号および符号レートを使用して符号化され、また、ステップ８５０の間、フラッシュ・セル・アレイ３００にページが書き込まれる。
【００４４】
図９は、個々のページが整数個のセクタを備えている場合における、フラッシュ・メモリ１３０から読み出すための可変符号レート読出しプロセス９００の一例示的実施態様を記述した流れ図である。通常、読出しプロセス９００にはページ・レベル・アクセス・スキームが使用されている。図９に示されているように、例示的可変符号レート・ページ・レベル読出しプロセス９００は、最初に、ステップ９１０の間、少なくとも１つのセクタを読み出す要求を受け取る。次に、可変符号レート・ページ・レベル読出しプロセス９００は、ステップ９２０の間、要求されたセクタを有するページを識別する。可変符号レート・ページ・レベル読出しプロセス９００は、ステップ９３０の間、識別されたページを読み出し、次に、ステップ９４０の間、現在のページ・タイプに対する適切な符号および／または符号レートを使用してページを復号化する。ステップ９５０の間、要求されたセクタが、メモリ・マップを使用して、復号化されたページから獲得される。
【００４５】
上で既に示したように、図１０および１１は、それぞれ、１つまたは複数のページが非整数個のセクタを備えることができ、また、所与のセクタが複数のページにまたがることができる場合における、フラッシュ・メモリ１３０に書き込むための可変符号レート・プロセスおよびフラッシュ・メモリ１３０から読み出すための可変符号レート・プロセスを示したものである。
【００４６】
セクタが複数のページにまたがることができる（例えば個々のページが非整数個のセクタを有する）一実施態様では、可変符号レート・スキームを実施するためには、マルチ・ページ・アクセス技法または語線レベル・アクセス技法を使用しなければならない。図１０は、個々のページが非整数個のセクタを備え、また、所与のセクタが複数のページにまたがることができる場合における、フラッシュ・メモリ１３０に書き込むための可変符号レート書込みプロセス１０００の一例示的実施態様を記述した流れ図である。通常、書込みプロセス１０００には、符号化されているページ・タイプ（つまり下位ページ、中位ページまたは上位ページ、あるいは偶数ページまたは奇数ページなどのページ・レベル）に基づいてユーザ・データを分割するためのマルチ・ページ・アクセス・スキームまたは語線レベル・アクセス・スキームおよび新規な技法が使用されている。さらに、書込みプロセス１０００には、同じく、識別されたページ・タイプに関連する適切な符号レートが使用されている。図１０に示されているように、書込みプロセス１０００は、最初に、ステップ１０１０の間、書き込まれている現在のページのページ・タイプを識別し、また、ステップ１０２０の間、ページ当たりのセクタの数、および決定されたページ・タイプに対する符号および／または符号レートを決定する。この場合も、ページ当たりのセクタの数は非整数個であってもよいことに留意されたい。書込みプロセス１０００は、ステップ１０３０の間、現在のページ・タイプに対して、決定されたすべての数のセクタまたはその一部を蓄積する。書込みプロセス１０００は、次に、ステップ１０４０の間、存在していれば、次のページのために残りのセクタのごく一部をバッファする。このバッファリングは、例えば、データ管理ブロック１１０内のメモリ回路内で実施することができる。ステップ１０５０の間、蓄積されたデータが現在のページ・タイプに対する符号レートを使用して符号化され、また、ステップ１０６０の間、マルチ・ページ・アクセス・スキームまたは語線レベル・アクセス・スキームを使用することが適切である場合、それを使用して、符号化されたデータがフラッシュ・セル・アレイ３００に書き込まれる。通常、マルチ・ページ・アクセス・スキームの場合、複数のページが符号化されるまでの間、ステップ１０６０に先立ってステップ１０１０ないし１０５０が繰り返される。次に、知られている技法を使用して、符号化されたこれらのページが例えば逐次フラッシュ・メモリに書き込まれる。語線レベル・アクセス・スキームの場合、語線内のすべてのページが符号化されるまでの間、ステップ１０６０に先立ってステップ１０１０ないし１０５０が繰り返される。次に、例えば知られている技法を使用して語線内のすべてのページを逐次書き込むことにより、すべての語線がフラッシュ・メモリに書き込まれる。
【００４７】
図１１は、１つまたは複数のページが非整数個のセクタを備えることができ、また、所与のセクタが複数のページにまたがることができる場合における、フラッシュ・メモリ１３０から読み出すための可変符号レート・プロセス１１００の一例示的実施態様を記述した流れ図である。通常、読出しプロセス１１００にはマルチ・ページ・アクセス・スキームまたは語線レベル・アクセス・スキームが使用されている。図１１に示されているように、例示的可変符号レート読出しプロセス１１００は、最初に、ステップ１１１０の間、少なくとも１つのセクタを読み出す要求を受け取る。次に、可変符号レート読出しプロセス１１００は、ステップ１１２０の間、要求されたセクタを有する１つまたは複数のページを識別する。
【００４８】
ステップ１１３０の間、セクタが単一のページまたは複数のページにまたがっているかどうかを決定するための試験が実施される。ステップ１１３０の間に、セクタが単一のページにまたがっていることが決定されると、ステップ１１４０の間、ページ・レベル・アクセス技法を使用してそのページが読み出される。しかしながら、ステップ１１３０の間に、セクタが複数のページにまたがっていることが決定されると、ステップ１１５０の間、マルチ・ページ・アクセス技法または語線レベル・アクセス技法を使用してそれらのページが読み出される。通常、マルチ・ページ・アクセス・スキームの場合、複数のページが読み出され、また、語線レベル・アクセス・スキームの場合、すべての語線が読み出される。フラッシュ・メモリからページを逐次読み出すことにより、複数のページまたはすべての語線を読み出すことができる。語線レベル読出しの他の代替実施形態では、語線内のセルの電圧値などのソフト情報が語線から読み出され、読み出されたソフト情報に基づいてページを復号化することができる。十分なソフト情報を有することにより、語線内のすべてのページを復号化することができる。
【００４９】
次に、可変符号レート読出しプロセス１１００は、ステップ１１６０の間、１つまたは複数のこれらのページ・タイプ（つまり１つまたは複数のレベルおよび／または偶数ページあるいは奇数ページ）に対する適切な符号および／または符号レートを使用して、読み出された１つまたは複数のページを復号化する。最後に、可変符号レート読出しプロセス１１００は、ステップ１１７０の間、メモリ・マップを使用して、要求されたセクタを１つまたは複数の復号化されたページから獲得する。
【００５０】
多重レベル・セルにおけるクロス・ページ記憶
本発明の他の実施形態では、ページは、物理ページの境界を越えてあふれ出ることができる。その場合、図３に示されているように、データを分割し、かつ、符号化するために使用される論理ページと、語線中に記憶される物理ページとを区別することができる。論理ページは、例えば図４に示されている符号化スキームを使用して符号化することができる。通常、語線中の論理ページは、同じ非符号化長（つまり同じ量のユーザ・データ）を有することができるが、符号化長は異なっている。例えば、同じユーザ・データ長を有する論理ページのための可変符号レート実施態様は、長さが異なる符号化論理ページに導くことができ、その場合、論理ページの一部が語線内の１つのページからその語線内の他のページへスピルオーバすることになる。本発明は、この方法で、語線内のセル（スピルオーバ・セルと呼ばれている）の一部を使用して、物理ページ境界を越える論理データ部分を記憶することを企図している。この場合、スピルオーバ・セルは、通常のセルとは異なり、同じ論理ページに属する少なくとも２つのビットを記憶することができる。以下で説明するように、スピルオーバ・セルは、語線内の他のセルと同時にプログラムすることができ、あるいは物理ページ中にシフトする他の論理ページがプログラムされた後にプログラムすることも可能である。一例示的実施態様では、スピルオーバ・セル１２２０を使用して、上位ページ２のための追加パリティ・ビットを記憶することができる。
【００５１】
図１２は、通常のセル１２１０およびスピルオーバ・セル１２２０を備えたマルチ・ページ・セル語線１２００を示したものである。図１２の例示的実施形態では、下位論理ページ０および中位論理ページ１は、同じ符号化長を有しており、また、上位論理ページ２は、物理ページ０および１の中へスピルオーバしている。一実施態様では、スピルオーバ・セル１２２０をプログラミングすることなく、最初に論理ページ０および１を語線１２００の通常のセル１２１０の中にプログラムすることができる。次に、論理ページ２が通常のセル１２１０の上位ページの中、およびスピルオーバ・セル１２２０のすべてのページの中にプログラムされる。例えば、下位ページ、中位ページおよび上位ページ０、１、２は、従来のフラッシュ・メモリと同様の方法で通常のセル１２１０の中にプログラムすることができる。上位ページがプログラムされると、スピルオーバ・セル１２２０の下位ビット、中位ビットおよび上位ビットが同じくプログラムされる（例えば通常のセルの上位ページ・プログラミングの直後に実施される）。
【００５２】
他の実施態様では、マルチ・ページ・アクセス技法または語線レベル・アクセス技法を使用して、通常部分およびスピルオーバ部分を含むすべての物理ページが、上で説明した図５と同様の方法で同時にプログラムされる。例えば、データ管理ユニット１１０は、複数のセクタを収集し、かつ、集合体化されたデータをｊ個の論理ページに分割することができる。次に、最大ｊ個の符号器を使用してこのｊ個の論理ページを符号化することができる。データ管理ユニット１１０は、次に、符号化されたデータをｊ個の物理ページに分割し、次に、分割されたこれらの物理ページがディスクに書き込まれる。ディスクには、物理ページの通常のセクションおよびスピルオーバ・セクションの両方を同時に書き込むことができる。ｊ個の物理ページは、知られている技法を使用してフラッシュ・セル・アレイに逐次書き込むことができる。本発明の他の実施形態では、論理ページおよび物理ページの数は異なっていてもよく、データ管理ユニットは、データを収集した後にセクタをｊ個の論理ページに分割することができ、また、プログラミングのための符号化の後に、符号化されたデータをｊ’個の物理ページに分割することができる。
【００５３】
スピルオーバしない論理ページは、例えばページ・レベル・アクセス技法を使用して互いに独立してプログラムし、かつ、読み出すことができる。スピルオーバする論理ページがプログラムされ、あるいは読み出されると、図５、６、１０、１１に関連して上で説明したように、マルチ・ページ・アクセス技法または語線レベル・アクセス技法を使用して少なくとも２つの物理ページをアクセスしなければならない。
【００５４】
他の変形形態では、最初に、スピルオーバ・セルのない物理ページ（つまり図１２の例における物理ページ２）のみを読み出すことによってスピルオーバ・ページを読み出すことができる。例えば巡回冗長検査（ＣＲＣ）符号またはパリティ・チェック符号によって決定される復号化誤りが生じると、同じくスピルオーバ・セル１２２０を読み出すことができる。復号化誤りの場合における他のオプションは、復号化のためのスピルオーバ・セルを備えたすべての論理ページを得るために、同じく他の物理ページ（つまり図１２の物理ページ０および１）を読み出すことである。別法としては、他の物理ページ（つまり図１２の物理ページ０および１）が既に読み出され、かつ、バッファに記憶されている場合、スピルオーバ・セルに記憶されているデータを得るために、バッファからこれらのページを読み出すことも可能である。復号化誤りの場合における他のオプションは、スピルオーバ・セル１２２０を備えたすべての論理ページを得るために、すべての語線１２００を読み出すことである。
【００５５】
多段復号化
図１３は、本発明の特徴を組み込んだ多段復号器１３００の略ブロック図である。図１３に示されているように、多段復号器１３００では、対応する復号器１３１０−０ないし１３１０−２によってコンポーネント符号が連続的に復号化される。一例示的多段復号器１３００についてのより詳細な説明については、例えば、参照により本明細書に組み込まれている、Ｕ.Ｗａｃｈｓｍａｎｎら、「Ｍｕｌｔｉｌｅｖｅｌ  Ｃｏｄｅｓ：Ｔｈｅｏｒｅｔｉｃａｌ  Ｃｏｎｃｅｐｔｓ  ａｎｄ  Ｐｒａｃｔｉｃａｌ  Ｄｅｓｉｇｎ  Ｒｕｌｅｓ」、ＩＥＥＥ  Ｔｒａｎｓ．ｏｎ  Ｉｎｆｏｒｍａｔｉｏｎ  Ｔｈｅｏｒｙ、Ｖｏｌ．４５、Ｎｏ．５、１３６１〜９１頁（１９９９）を参照されたい。
【００５６】
本発明によれば、多段復号器１３００は、語線内の複数のページを復号化し、例えば、復号器１３１０−０などの１つのページのための復号器は、総合誤り率を改善するために、復号器１３１０−１などの他のページの復号器に決定を供給している。図１３では、ｙはデマッパからの出力であり、また、
【００５７】
【数１】
2014135097.tif 000003
および
【００５８】
【数２】
2014135097.tif 000004
は、それぞれページ０、１および２のための復号器の出力部分で復号化されたビットである。一代替実施態様では、１つのページのための復号器は、ログ尤度比（ＬＬＲ）またはソフト情報を他のページのための復号器に供給することができる。図１３には、一例示的復号化順序が示されており、決定は、最下位ページ０から最上位ページ１へ供給される。本発明の精神から逸脱することなく、他の復号化順序、例えばページ１から０へ、０から２への順序を実施することも可能である。
【００５９】
本発明の他の態様では、最初に、他のページを復号化することなく１つのページを復号化することができ、あるいは他のページから独立して１つのページを復号化することができる。例えば誤りパリティ・チェックによって示される復号化誤りが生じると、図１３に示されている多段復号化を実施するために、語線からの他のページを読み出すことができる。
【００６０】
多段復号化を使用した多重レベル符号化は、個々のビット・レベルにおける符号器レートが個々のビット・レベル・チャネルの容量と整合する場合、シャノン容量に近づくことができることが分る。上で既に示したように、本発明によれば、より高い信頼性を必要とするページには、より強力な符号またはより低い符号レートを使用することができる。したがって、選択された符号レートが実質的にビット・レベル・チャネルの容量と整合する場合、記憶容量をシャノン容量に近づけることができる。
【００６１】
製造のプロセス、システムおよび物品詳細
本明細書における多くの流れ図は、複数のステップの一例示的シーケンスを記述したものであるが、シーケンスの変更が可能であることも同じく本発明の一実施形態である。アルゴリズムの様々な置換は、本発明の代替実施形態として企図されている。以上、本発明の例示的実施形態について、ソフトウェア・プログラムにおける処理ステップに関連して説明したが、当業者には明らかであるように、ソフトウェア・プログラムにおける処理ステップとしてのディジタル領域の中で、回路エレメントまたは状態マシンによるハードウェアの中で、あるいはソフトウェアとハードウェアの両方の組合せの中で様々な機能を実施することができる。このようなソフトウェアは、例えばディジタル信号プロセッサ、専用集積回路、マイクロ・コントローラあるいは汎用コンピュータに使用することができる。このようなハードウェアおよびソフトウェアは、集積回路内で実施される回路の中で具体化することができる。
【００６２】
したがって本発明の機能は、これらの方法を実践するための方法および装置の形態で具体化することができる。本発明の１つまたは複数の態様は、例えば、記憶媒体に記憶され、マシンにロードされ、および／またはマシンによって実行されるものであれ、あるいは何らかの伝送媒体を介して伝送されるものであれ、プログラム・コードの形態で具体化することができ、このプログラム・コードがコンピュータなどのマシンにロードされ、かつ、マシンによって実行されると、そのマシンは、本発明を実践するための装置になる。汎用プロセッサ上で実施されると、プログラム・コード・セグメントは、プロセッサと相俟って、特定の論理回路と同様に動作するデバイスを提供する。また、本発明は、集積回路、ディジタル信号プロセッサ、マイクロプロセッサおよびマイクロ・コントローラのうちの１つまたは複数の中で実施することも可能である。
【００６３】
当分野で知られているように、本明細書において説明されている方法および装置は、コンピュータ可読コード手段がその上に具体化されたコンピュータ可読媒体をそれ自体が備えた製造物品として分散させることができる。コンピュータ可読プログラム・コード手段は、本明細書において説明されている方法を実行し、あるいは本明細書において説明されている装置を生成するために、すべてのステップまたはステップの一部を実行するべくコンピュータ・システムと連携して動作することができる。コンピュータ可読媒体は、記録可能媒体（例えばフロッピー・ディスク、ハード・ドライブ、コンパクト・ディスク、メモリ・カード、半導体デバイス、チップ、専用集積回路（ＡＳＩＣ））であっても、あるいは伝送媒体（例えば光ファイバ、ワールド・ワイド・ウェブ、ケーブル、または時分割多重アクセス、符号分割多重アクセスを使用した無線チャネル、または他の無線周波チャネルを備えたネットワーク）であってもよい。コンピュータ・システムとの使用に適した情報を記憶することができる、知られている、あるいは開発されている任意の媒体を使用することができる。コンピュータ可読コード手段は、コンピュータによる、磁気媒体上の磁気の変化あるいはコンパクト・ディスクの表面の高さの変化などの命令およびデータの読出しを可能にするための任意の機構である。
【００６４】
本明細書において説明されているコンピュータ・システムおよびサーバの各々には、本明細書において開示されている方法、ステップおよび機能を実施するように関連するプロセッサを構成することができるメモリが含まれている。メモリは、分散させることができる、つまり局部メモリにすることができ、また、プロセッサは、分散させることも、あるいは単独のプロセッサにすることも可能である。メモリは、電気メモリ、磁気メモリもしくは光学メモリ、またはこれらのタイプあるいは他のタイプの記憶装置の任意の組合せとして実施することができる。さらに、「メモリ」という用語は、関連するプロセッサによってアクセスされるアドレス指定可能空間におけるアドレスから読み出すことができ、あるいはこのアドレスに書き込むことができるあらゆる情報を包含するべく十分広義に解釈されたい。この定義によれば、関連するプロセッサは、ネットワークからの情報を検索することができるため、ネットワーク上の情報は、依然としてメモリ内に存在している。
【００６５】
本明細書において示され、かつ、説明されている実施形態および変形形態は、単に本発明の原理を示したものにすぎないこと、また、当業者によって、本発明の範囲および精神から逸脱することなく、様々な修正を実施することができることを理解されたい。
【図１】
2014135097.tif 000005
【図２】
2014135097.tif 000006
【図３】
2014135097.tif 000007
【図４】
2014135097.tif 000008
【図５】
2014135097.tif 000009
【図６】
2014135097.tif 000010
【図７】
2014135097.tif 000011
【図８】
2014135097.tif 000012
【図９】
2014135097.tif 000013
【図１０】
2014135097.tif 000014
【図１１】
2014135097.tif 000015
【図１２】
2014135097.tif 000016
【図１３】
2014135097.tif 000017