(57)【要約】複数のアナログメモリセル（３２）を有するメモリ（２８）中に、データを記憶させる方法が、アナログメモリセルの各達成可能な記憶能力を推定する工程を含む。メモリセルには、推定された達成可能な能力に基づいて、メモリセル中に記憶されるべきデータ量を定義する各記憶構成が割り当てられる。割り当てられた各記憶構成に基づいて、メモリセル中にデータが記憶される。アナログメモリセルの達成可能な記憶構成は、メモリがホストシステムに組み込まれ、ホストシステム中にデータを記憶させるために用いられた後に、再推定される。記憶構成は、再推定された達成可能な能力に応答して修正される。【選択図】  図１
2009537055.tif 000002
【特許請求の範囲】
【請求項１】
複数のアナログメモリセルを有するメモリ中に、データを記憶させる方法であって、前記方法が、
アナログメモリセルの各達成可能な記憶能力を推定する工程と、
前記推定された達成可能な能力に基づいて、メモリセル中に記憶されるべきデータ量を定義する各記憶構成を、メモリセルに割り当てる工程と、
割り当てられた各記憶構成に基づいて、メモリセル中にデータを記憶する工程と、
メモリがホストシステムに組み込まれ、前記ホストシステム中にデータを記憶させるために用いられた後に、アナログメモリセルの各達成可能な記憶構成を再推定する工程と、
前記再推定された達成可能な能力に応答して、前記記憶構成を修正する工程と
を含む方法。
【請求項２】
データを記憶する工程は、誤り訂正符号（ＥＣＣ）を用いてデータを符号化する工程と、符号化されたデータを、公称アナログ値セットから選択されたアナログ値に変換する工程と、前記アナログ値を各メモリセルに書き込む工程とを含み、ここで、各記憶構成は、データを記憶するために用いられる、各ＥＣＣ符号レートおよび公称アナログ値セットのサイズを特定する請求項１に記載の方法。
【請求項３】
データを記憶する工程は、各アナログメモリセル用に、データを公称アナログ値セットから選択されたアナログ値に変換する工程と、前記アナログ値をメモリセルに書き込む工程とを含み、ここで、各記憶構成は、前記アナログメモリセルにデータを記憶するために用いられる、公称アナログ値を特定する請求項１に記載の方法。
【請求項４】
データを記憶する工程は、データをアナログ値に変換する工程と、前記アナログ値を各メモリセルに書き込む工程とを含み、ここで、達成可能な記憶能力を推定する工程は、メモリセル中に書き込まれるアナログ値に影響を与える各歪みレベルを推定する工程と、前記歪みレベルに応答して達成可能な記憶能力を決定する工程とを含む請求項１に記載の方法。
【請求項５】
歪みレベルを推定する工程は、メモリセルからのアナログ値を読み取る工程と、メモリセルから読み取られたアナログ値に基づいて歪みレベルを推定する工程とを含む請求項１〜４のいずれかに記載の方法。
【請求項６】
歪みレベルを推定する工程は、メモリセルから読み取られたアナログ値からデータを再構築する工程と、再構築されたデータに基づいて歪みレベルを演算する工程とを含む請求項５に記載の方法。
【請求項７】
歪みレベルを演算する工程は、メモリセルから読み取られたアナログ値のスカラー関数を合計する工程を含む請求項５に記載の方法。
【請求項８】
スカラー関数を合計する工程は、メモリセルから読み取られたアナログ値と、データに応答してメモリセル中に記憶されたデータの各予測値との差の二乗を合計する工程を含む請求項７に記載の方法。
【請求項９】
歪みレベルを演算する工程は、メモリセルから読み取られたアナログ値と、データに応答してメモリセル中に記憶されたデータの各予測値との差が所定の値を超えるメモリセルの数を勘定する工程を含む請求項６に記載の方法。
【請求項１０】
データを記憶する工程は、メモリセル内にアナログ値を書き込む工程と、反復プログラミングおよび検証（Ｐ＆Ｖ）プロセスを用いて、書き込まれたアナログ値を検証する工程とを含み、ここで、歪みレベルを推定する工程は、Ｐ＆Ｖプロセスにより検証されたアナログ値に基づいて、歪みレベルを演算する工程を含む請求項４に記載の方法。
【請求項１１】
データを記憶する工程は、メモリセル内にアナログ値を書き込む工程と、プログラミング工程によりアナログ値を反復的に増分する反復プログラミングおよび検証（Ｐ＆Ｖ）プロセスを用いて、書き込まれたアナログ値を検証する工程とを含み、ここで、記憶構成は、反復Ｐ＆Ｖプロセスにより用いられるプログラミング工程のサイズを規定する請求項４に記載の方法。
【請求項１２】
データを記憶する工程は、誤り訂正符号（ＥＣＣ）を用いて、メモリセル群中で記憶されるべきデータを符号化する工程と、符号化されたデータを、前記メモリセル群の各アナログメモリセル中で記憶するためにアナログ値に変換する工程とを含み、達成可能な記憶能力を推定する工程は、前記メモリセル群中のメモリセルからアナログ値を読み取る工程と、読み取られたアナログ値と、前記アナログ値に最も近い有効なＥＣＣの符号語との間の距離メトリックを求める工程とを含み、前記記憶構成を修正する工程は、前記メモリセル群の記憶構成を、求められた距離メトリックに応答して適応させる工程を含む請求項１〜４のいずれかに記載の方法。
【請求項１３】
達成可能な記憶構成を再推定する工程は、メモリセル内に記憶されたデータを読み取る工程を含み、記憶構成を修正する工程は、読み取られたデータ中のエラーの検出に応答して、記憶構成を適応させる工程を含む請求項１〜４のいずれかに記載の方法。
【請求項１４】
データを記憶する工程は、誤り訂正符号（ＥＣＣ）を用いてデータを符号化する工程を含み、記憶構成を適応させる工程は、ＥＣＣの符号レートを修正する工程を含む請求項１３に記載の方法。
【請求項１５】
メモリセルの達成可能な能力を推定する工程は、各メモリセルに対して行われた過去のプログラミングおよび消去動作を追跡する工程と、追跡された過去のプログラミングおよび消去動作に応答して、達成可能な能力を推定する工程とを含む請求項１〜４のいずれかに記載の方法。
【請求項１６】
達成可能な能力を推定する工程は、過去のプログラミングおよび消去動作以来経過した時間の長さに応答して、達成可能な能力を演算する工程を含む請求項１５に記載の方法。
【請求項１７】
データを記憶する工程は、データの冒頭の部分をアナログ値に変換する工程と、前記アナログ値を各メモリセル中に書き込む工程と、これに続いて、セルを消去することなく、メモリセル中に書き込まれたアナログ値を大きくすることにより、データのさらなる部分をメモリセルの少なくともいくつかに記憶する工程とを含む請求項１〜４のいずれかに記載の方法。
【請求項１８】
データを記憶する工程は、データに冗長ビットを加える誤り訂正符号（ＥＣＣ）を用いてデータを符号化する工程と、前記冗長ビットを、いくつかのアナログメモリセル中に記憶する工程とを含み、ここで、記憶構成を修正する工程は、セルを消去することなく、ＥＣＣにより加えられた冗長ビットの数を修正する工程を含む請求項１〜４のいずれかに記載の方法。
【請求項１９】
冗長ビットを記憶する工程は、データとは別に冗長ビットを記憶する工程を含む請求項１８に記載の方法。
【請求項２０】
記憶構成を割り当てる工程は、可能な記憶構成セットを予め規定する工程を含み、記憶構成を修正する工程は、前記所定のセットから更新された記憶構成を選択する工程を含む請求項１〜４のいずれかに記載の方法。
【請求項２１】
少なくとも１つの記憶構成で規定されるデータの量は、セル毎の非整数のビット数を特定している請求項１〜４のいずれかに記載の方法。
【請求項２２】
データを記憶する工程は、メモリセルにデータを書き込む前にデータを圧縮する工程を含み、ここで記憶構成は、データが圧縮されるべき個々の圧縮レートを規定する請求項１〜４のいずれかに記載の方法。
【請求項２３】
記憶構成を割り当てる工程は、各メモリセル群に対して記憶構成を規定する工程を含む請求項１〜４のいずれかに記載の方法。
【請求項２４】
メモリセル中にデータを記憶する工程は、メモリ中に記憶するためにデータ項目を受け取る工程と、割り当てられた記憶構成に応答して、データ項目を記憶するべきメモリセルサブセットを選択する工程と、前記選択されたメモリセルサブセット中にデータ項目を記憶する工程とを含む請求項１〜４のいずれかに記載の方法。
【請求項２５】
達成可能な記憶能力を再推定する工程は、データが記憶されず、かつ読み取られないアイドル期間中に行われる請求項１〜４のいずれかに記載の方法。
【請求項２６】
記憶構成を割り当て、かつ修正する工程は、構成テーブルに記憶構成を記憶する工程を含む請求項１〜４のいずれかに記載の方法。
【請求項２７】
メモリがホストシステムに組み込まれる前に、構成テーブルに記憶構成の初期値を記憶させる工程を含む請求項２６に記載の方法。
【請求項２８】
記憶構成を割り当て、かつ修正する工程は、メモリセル中に記憶されたデータの量と、各推定された達成可能な能力との間の所定の余裕を維持する工程を含む請求項１〜４のいずれかに記載の方法。
【請求項２９】
前記歪みの少なくともいくらかは、アナログメモリセル中の漏れ電流により引き起こされ、歪みを推定する工程は、漏れ電流を推定する工程を含む請求項１〜４のいずれかに記載の方法。
【請求項３０】
複数のアナログメモリセルを有するメモリ中に、データを記憶させる方法であって、前記方法が、
各アナログメモリセルの歪みレベルを推定する工程と、
推定された歪みレベルに基づいて、アナログメモリセルの各達成可能な記憶能力を推定する工程と、
前記推定された達成可能な能力に基づいて、メモリセル中に記憶されるべきデータ量を定義する各記憶構成を、メモリセルに割り当てる工程と、
割り当てられた各記憶構成に基づいて、メモリセル中にデータを記憶する工程と
を含む方法。
【請求項３１】
複数のアナログメモリセルを有するメモリ中に、データを記憶させる方法であって、前記方法が、
メモリがホストシステムで用いられている間に、アナログメモリセルの各達成可能な記憶能力を追跡する工程と、
メモリで記憶するためにデータを受け取る工程と、
追跡された達成可能な記憶能力に基づいて、データを記憶するためのメモリセルのサブセットを選択する工程と、
前記サブセットのメモリセル中にデータを記憶する工程と
を含む方法。
【請求項３２】
サブセットを選択する工程は、達成可能な能力の総計が、受け取られたデータのサイズに最もよく合うメモリセルを選択する工程を含む請求項３１に記載の方法。
【請求項３３】
データを受け取る工程は、要求された、データを記憶するための信頼性レベルを受け取る工程を含み、サブセットを選択する工程は、要求された信頼性レベルに応答してメモリセルを選択する工程を含む請求項３１に記載の方法。
【請求項３４】
データを受け取る工程は、要求された、データを記憶するための保持期間を受け取る工程を含み、サブセットを選択する工程は、要求された保持期間に応答してメモリセルを選択する工程を含む請求項３１に記載の方法。
【請求項３５】
サブセットを選択する工程は、他のメモリセルよりも低い歪みレベルを有するメモリセルを選択する工程を含む請求項３１に記載の方法。
【請求項３６】
達成可能な記憶能力を追跡する工程は、メモリセルに対して行われた過去のプログラミングおよび消去動作を追跡する工程を含み、サブセットを選択する工程は、過去のプログラミングおよび消去動作に応答して、メモリセルを選択する工程を含む請求項３１に記載の方法。
【請求項３７】
サブセットを選択する工程は、他のメモリセルよりも過去のプログラミングおよび消去動作の数が少ないメモリセルを選択することによって、メモリ中のメモリセルに渡って、均等にプログラミングおよび消去動作の数を配分する工程を含む請求項３６に記載の方法。
【請求項３８】
プログラミングおよび消去動作の数を配分する工程は、所定の最近の期間の間において、他のメモリセルよりも過去のプログラミングおよび消去動作の数が少ないメモリセルを選択する工程を含む請求項３７に記載の方法。
【請求項３９】
達成可能な記憶能力を追跡する工程は、データを記憶するために利用可能なメモリセルの達成可能な能力を合計することによって、利用可能なメモリスペースのサイズを演算し、かつホストシステムに報告する工程を含む請求項３１に記載の方法。
【請求項４０】
メモリは複数の消去ブロックに分割され、各消去ブロックは、１回の消去動作により消去されるメモリセル群を含み、かつ前記方法は、
データ項目が記憶されている消去ブロックを１つまたは複数特定する工程と、
データ項目が記憶されている消去ブロックが、他のデータ項目のデータを記憶して含む際に、追跡されたメモリセルの達成可能な能力と、それ以外のデータ項目のサイズとに基づいて、データ項目が記憶されている消去ブロック外の代替となるメモリセルを特定する工程と、
前記それ以外のデータ項目のデータを、前記代替となるメモリセルに複写する工程と
データ項目が記憶されている消去ブロックを消去する工程と
により、メモリからデータを消去する工程を含む請求項３１に記載の方法。
【請求項４１】
記憶するためにデータを受け取る工程は、データをホストシステムから固定能力ブロック中に受け取る工程と、可変能力メモリセル群中に、可変サイズ群の追跡された達成可能な能力に基づいて、データを記憶する工程とを含む請求項３１に記載の方法。
【請求項４２】
可変能力群中にデータを記憶する工程は、固定能力ブロックの能力よりも小さい能力を有する可変能力群を２つ以上特定する工程を含み、１つまたは複数の固定能力ブロックで受け取られたデータを、特定された２つ以上の可変能力群に記憶する工程を含む請求項４１に記載の方法。
【請求項４３】
可変能力群中にデータを記憶する工程は、余剰メモリ記憶領域として機能する１つ以上の可変能力群を割り当てる工程と、固定能力ブロック中に受け取られたデータを、各可変能力群中に記憶する工程と、可変能力群の達成可能な能力が固定能力ブロックの能力よりも小さい場合に、各固定能力ブロック中で受け取られたデータのいくらかを、前記割り当てられた余剰メモリ記憶領域中に記憶する工程とを含む請求項４１に記載の方法。
【請求項４４】
可変能力群中にデータを記憶する工程は、固定能力ブロック中に受け取られたデータを、可変能力群間の境界に関わらず、メモリセル中に順次記憶する工程を含む請求項４１に記載の方法。
【請求項４５】
データを記憶する工程は、各固定能力ブロック中で受け取られたデータを、始めに各可変能力群中に記憶する工程と、続いて、始めに記憶されたデータを、可変能力群間の境界にかかわらず、順次再プログラムする工程とを含む請求項４４に記載の方法。
【請求項４６】
可変サイズ群からデータを取り出す工程と、固定サイズブロックを再構築する工程と、固定サイズブロックを用いてデータをホストシステムに出力する工程とを含む請求項４１に記載の方法。
【請求項４７】
少なくともデータの幾分かをキャッシュに入れることにより、メモリに対して行われるメモリアクセス動作の数を減らす請求項３１に記載の方法。
【請求項４８】
少なくともデータの幾分かをキャッシュに入れる工程は、即時記憶事象を検出するとすぐに、キャッシュに入れられたデータをメモリに転送する工程を含む請求項４７に記載の方法。
【請求項４９】
即時記憶事象とは、電源異常に近づいていることと、時間切れと、ホストシステムによるＥｎｄ  Ｏｆ  Ｆｉｌｅ（ＥＯＦ）コマンドの受け取りとからなる事象群から選択された少なくとも１つの事象を含む請求項４８に記載の方法。
【請求項５０】
データ記憶装置であって、
複数のアナログメモリセルを有するメモリと交信するように配されているインタフェースと、
メモリセルの各達成可能な記憶能力を推定し、前記推定された達成可能な能力に基づいて、メモリセル中に記憶されるべきデータ量を定義する各記憶構成をメモリセルに割り当て、割り当てられた各記憶構成に基づいて、メモリセル中にデータを記憶し、メモリがホストシステムに組み込まれ前記ホストシステム中にデータを記憶させるために用いられた後に、アナログメモリセルの各達成可能な記憶構成を再推定し、前記再推定された達成可能な能力に応答して前記記憶構成を修正するように配されたメモリ信号プロセッサ（ＭＳＰ）と
を有するデータ記憶装置。
【請求項５１】
前記ＭＳＰは、誤り訂正符号（ＥＣＣ）を用いてデータを符号化し、符号化されたデータを公称アナログ値セットから選択されたアナログ値に変換し、前記アナログ値を各メモリセルに書き込むように配され、ここで、各記憶構成は、データを記憶するために用いられる各ＥＣＣ符号レートおよび公称アナログ値セットのサイズを特定する請求項５０に記載の装置。
【請求項５２】
各アナログメモリセル用に、前記ＭＳＰは、データを公称アナログ値セットから選択されたアナログ値に変換し、前記アナログ値をメモリセルに書き込むことによりデータを記憶するように配され、ここで、各記憶構成は、前記アナログメモリセルにデータを記憶するために用いられる、公称アナログ値を特定する請求項５０に記載の装置。
【請求項５３】
前記ＭＳＰは、データをアナログ値に変換し、前記アナログ値を各メモリセルに書き込み、メモリセル中に書き込まれるアナログ値に影響を与える各歪みレベルを推定し、前記歪みレベルに応答して達成可能な記憶能力を決定するよう配されている請求項５０に記載の装置。
【請求項５４】
前記ＭＳＰは、メモリセルからのアナログ値を読み取り、メモリセルから読み取られたアナログ値に基づいて歪みレベルを推定するように配されている請求項５０〜５３のいずれかに記載の装置。
【請求項５５】
前記ＭＳＰは、メモリセルから読み取られたアナログ値からデータを再構築し、再構築されたデータに基づいて歪みレベルを演算するように配されている請求項５４に記載の装置。
【請求項５６】
前記ＭＳＰは、メモリセルから読み取られたアナログ値のスカラー関数を合計することにより、歪みレベルを演算するように配されている請求項５５に記載の装置。
【請求項５７】
前記ＭＳＰは、メモリセルから読み取られたアナログ値と、データに応答してメモリセル中に記憶されたデータの各予測値との差の二乗を合計するように配されている請求項５６に記載の装置。
【請求項５８】
前記ＭＳＰは、メモリセルから読み取られたアナログ値と、データに応答してメモリセル中に記憶されたデータの各予測値との差が所定の値を超えるメモリセルの数を勘定することにより、歪みレベルを演算するように配されている請求項５６に記載の装置。
【請求項５９】
前記ＭＳＰは、メモリセル内にアナログ値を書き込み、反復プログラミングおよび検証（Ｐ＆Ｖ）プロセスを用いて、書き込まれたアナログ値を検証し、Ｐ＆Ｖプロセスにより検証されたアナログ値に基づいて、歪みレベルを演算するように配されている請求項５３に記載の装置。
【請求項６０】
前記ＭＳＰは、メモリセル内にアナログ値を書き込み、プログラミング工程によりアナログ値を反復的に増分する反復プログラミングおよび検証（Ｐ＆Ｖ）プロセスを用いて、書き込まれたアナログ値を検証するように配され、ここで、記憶構成は、反復Ｐ＆Ｖプロセスにより用いられるプログラミング工程のサイズを規定する請求項５３に記載の装置。
【請求項６１】
前記ＭＳＰは、誤り訂正符号（ＥＣＣ）を用いて、メモリセル群中で記憶されるべきデータを符号化し、符号化されたデータを、前記メモリセル群の各アナログメモリセル中で記憶するためにアナログ値に変換し、前記メモリセル群中のメモリセルからアナログ値を読み取り、読み取られたアナログ値と、前記アナログ値に最も近い有効なＥＣＣの符号語との間の距離メトリックを求め、前記メモリセル群の記憶構成を、求められた距離メトリックに応答して適応させるように配されている請求項５０〜５３のいずれかに記載の装置。
【請求項６２】
前記ＭＳＰは、メモリセル内に記憶されたデータを読み取り、読み取られたデータ中のエラーの検出に応答して、記憶構成を修正させるように配されている請求項５０〜５３のいずれかに記載の装置。
【請求項６３】
前記ＭＳＰは、誤り訂正符号（ＥＣＣ）を用いてデータを符号化し、ＥＣＣの符号レートを修正することにより、記憶構成を修正するように配されている請求項６２に記載の装置。
【請求項６４】
前記ＭＳＰは、各メモリセルに対して行われた過去のプログラミングおよび消去動作を追跡し、追跡された過去のプログラミングおよび消去動作に応答して、各達成可能な能力を推定するように配されている請求項５０〜５３のいずれかに記載の装置。
【請求項６５】
前記ＭＳＰは、過去のプログラミングおよび消去動作以来経過した時間の長さに応答して、達成可能な能力を演算するように配されている請求項６４に記載の装置。
【請求項６６】
前記ＭＳＰは、データの冒頭の部分をアナログ値に変換し、前記アナログ値を各メモリセル中に書き込み、これに続いて、セルを消去することなく、少なくともいくつかのメモリセル中に書き込まれたアナログ値を大きくすることにより、データのさらなる部分をメモリセルに記憶するように配されている請求項５０〜５３のいずれかに記載の装置。
【請求項６７】
前記ＭＳＰは、データに冗長ビットを加える誤り訂正符号（ＥＣＣ）を用いてデータを符号化し、前記冗長ビットを、いくつかのアナログメモリセル中に記憶し、ここで、セルを消去することなく、ＥＣＣにより加えられた冗長ビットの数を修正することによって、記憶構成を修正するように配されている請求項５０〜５３のいずれかに記載の装置。
【請求項６８】
前記ＭＳＰは、データとは別に冗長ビットを記憶するように配されている請求項６７に記載の装置。
【請求項６９】
前記ＭＳＰは、予め規定された所定の記憶構成セットから更新された記憶構成を選択することにより、記憶構成を修正するように配されている請求項５０〜５３のいずれかに記載の装置。
【請求項７０】
少なくとも１つの記憶構成で規定されるデータの量は、セル毎の非整数のビット数を特定している請求項５０〜５３のいずれかに記載の装置。
【請求項７１】
前記ＭＳＰは、メモリセルにデータを書き込む前にデータを圧縮し、ここで記憶構成は、データが圧縮されるべき個々の圧縮レートを規定するように配されている請求項５０〜５３のいずれかに記載の装置。
【請求項７２】
前記ＭＳＰは、各メモリセル群に対して記憶構成を規定するように配されている請求項５０〜５３のいずれかに記載の装置。
【請求項７３】
前記ＭＳＰは、メモリ中に記憶するためにデータ項目を受け取り、割り当てられた記憶構成に応答して、データ項目を記憶するべきメモリセルサブセットを選択し、前記選択されたメモリセルサブセット中にデータ項目を記憶するように配されている請求項５０〜５３のいずれかに記載の装置。
【請求項７４】
前記ＭＳＰは、データが記憶されず、かつ読み取られないアイドル期間中に、達成可能な記憶能力を再推定するように配されている請求項５０〜５３のいずれかに記載の装置。
【請求項７５】
前記ＭＳＰは、構成テーブルに記憶構成を記憶するように配されている請求項５０〜５３のいずれかに記載の装置。
【請求項７６】
前記ＭＳＰは、メモリセル中に記憶されたデータの量と、各推定された達成可能な能力との間の所定の余裕を維持するように配されている請求項５０〜５３のいずれかに記載の装置。
【請求項７７】
前記歪みの少なくともいくらかは、アナログメモリセル中の漏れ電流により引き起こされ、前記ＭＳＰは、漏れ電流を推定するように配されている請求項５０〜５３のいずれかに記載の装置。
【請求項７８】
データ記憶装置であって、
複数のアナログメモリセルを有するメモリと交信するように配されているインタフェースと、
各アナログメモリセルの歪みレベルを推定し、推定された歪みレベルに基づいて、アナログメモリセルの各達成可能な記憶能力を推定し、前記推定された達成可能な能力に基づいて、メモリセル中に記憶されるべきデータ量を定義する各記憶構成を、メモリセルに割り当て、割り当てられた各記憶構成に基づいて、メモリセル中にデータを記憶するように配されたメモリ信号プロセッサ（ＭＳＰ）と
を有するデータ記憶装置。
【請求項７９】
データ記憶装置であって、
複数のアナログメモリセルを有するメモリと交信するように配されているインタフェースと、
メモリがホストシステムで用いられている間に、メモリセルの各達成可能な記憶能力を追跡し、メモリで記憶するためにデータを受け取り、追跡された達成可能な記憶能力に基づいて、データを記憶するためのメモリセルのサブセットを選択し、前記サブセットのメモリセル中にデータを記憶するように配されたメモリ信号プロセッサ（ＭＳＰ）と
を有するデータ記憶装置。
【請求項８０】
前記ＭＳＰは、達成可能な能力の総計が、受け取られたデータのサイズに最もよく合うメモリセルを選択するように配されている請求項７９に記載の装置。
【請求項８１】
前記ＭＳＰは、要求された、データを記憶するための信頼性レベルを受け取り、要求された信頼性レベルに応答してメモリセルを選択するように配されている請求項７９に記載の装置。
【請求項８２】
前記ＭＳＰは、要求された、データを記憶するための保持期間を受け取り、要求された保持期間に応答してメモリセルを選択するように配されている請求項７９に記載の装置。
【請求項８３】
前記ＭＳＰは、他のメモリセルよりも低い歪みレベルを有するメモリセルを選択するように配されている請求項７９に記載の装置。
【請求項８４】
前記ＭＳＰは、メモリセルに対して行われた過去のプログラミングおよび消去動作を追跡し、過去のプログラミングおよび消去動作に応答して、メモリセルを選択するように配されている請求項７９に記載の装置。
【請求項８５】
前記ＭＳＰは、他のメモリセルよりも過去のプログラミングおよび消去動作の数が少ないメモリセルを選択することによって、メモリ中のメモリセルに渡って、均等にプログラミングおよび消去動作の数を配分するように配されている請求項８４に記載の装置。
【請求項８６】
前記ＭＳＰは、所定の最近の期間の間において、他のメモリセルよりも過去のプログラミングおよび消去動作の数が少ないメモリセルを選択するように配されている請求項８５に記載の装置。
【請求項８７】
前記ＭＳＰは、データを記憶するために利用可能なメモリセルの達成可能な能力を合計することによって、利用可能なメモリスペースのサイズを演算し、かつホストシステムに報告するように配されている請求項７９に記載の装置。
【請求項８８】
メモリは複数の消去ブロックに分割され、各消去ブロックは、１回の消去動作により消去されるメモリセル群を含み、
前記ＭＳＰは、データ項目が記憶されている消去ブロックを１つまたは複数特定し、
データ項目が記憶されている消去ブロックが、他のデータ項目のデータを記憶して含む際に、追跡されたメモリセルの達成可能な能力と、それ以外のデータ項目のサイズとに基づいて、データ項目が記憶されている消去ブロック外の代替となるメモリセルを特定し、前記それ以外のデータ項目のデータを、前記代替となるメモリセルに複写し、かつ、データ項目が記憶されている消去ブロックを消去することにより、メモリからデータを消去するように配されている請求項７９に記載の装置。
【請求項８９】
前記ＭＳＰは、データをホストシステムから固定能力ブロック中に受け取り、可変能力メモリセル群中に、可変サイズ群の追跡された達成可能な能力に基づいて、データを記憶するように配されている請求項７９に記載の装置。
【請求項９０】
前記ＭＳＰは、固定能力ブロックの能力よりも小さい能力を有する可変能力群を２つ以上特定し、１つまたは複数の固定能力ブロックで受け取られたデータを、特定された２つ以上の可変能力群に記憶するように配されている請求項８９に記載の装置。
【請求項９１】
前記ＭＳＰは、余剰メモリ記憶領域として機能する１つ以上の可変能力群を割り当て、固定能力ブロック中に受け取られたデータを、各可変能力群中に記憶し、可変能力群の達成可能な能力が固定能力ブロックの能力よりも小さい場合に、各固定能力ブロック中で受け取られたデータのいくらかを、前記割り当てられた余剰メモリ記憶領域中に記憶するように配されている請求項８９に記載の装置。
【請求項９２】
前記ＭＳＰは、固定能力ブロック中に受け取られたデータを、可変能力群間の境界に関わらず、メモリセル中に順次記憶するように配されている請求項８９に記載の装置。
【請求項９３】
前記ＭＳＰは、各固定能力ブロック中で受け取られたデータを、始めに各可変能力群中に記憶し、続いて、始めに記憶されたデータを、可変能力群間の境界にかかわらず、順次再プログラムするように配されている請求項９２に記載の装置。
【請求項９４】
前記ＭＳＰは、可変サイズ群からデータを取り出し、固定サイズブロックを再構築し、固定サイズブロックを用いてデータをホストシステムに出力するように配されている請求項８９に記載の装置。
【請求項９５】
前記ＭＳＰは、少なくともデータの幾分かをキャッシュに入れることにより、メモリに対して行われるメモリアクセス動作の数を減らすように配されている請求項７９に記載の装置。
【請求項９６】
前記ＭＳＰは、即時記憶事象を検出するとすぐに、キャッシュに入れられたデータをメモリに転送するように配されている請求項９５に記載の装置。
【請求項９７】
即時記憶事象とは、電源異常に近づいていることと、時間切れと、ホストシステムによるＥｎｄ  Ｏｆ  Ｆｉｌｅ（ＥＯＦ）コマンドの受け取りとからなる事象群から選択された少なくとも１つの事象を含む請求項９６に記載の装置。
【請求項９８】
複数のアナログメモリセルを有するメモリと、
前記メモリに結合され、かつ、メモリセルの各達成可能な記憶能力を推定し、前記推定された達成可能な能力に基づいて、メモリセル中に記憶されるべきデータ量を定義する各記憶構成をメモリセルに割り当て、割り当てられた各記憶構成に基づいて、メモリセル中にデータを記憶し、メモリがホストシステムに組み込まれ前記ホストシステム中にデータを記憶させるために用いられた後に、アナログメモリセルの各達成可能な記憶構成を再推定し、前記再推定された達成可能な能力に応答して前記記憶構成を修正するように配されたメモリ信号プロセッサ（ＭＳＰ）と
を有するデータ記憶装置。
【請求項９９】
前記メモリは、第１集積回路（ＩＣ）中にあり、前記ＭＳＰは、第１ＩＣとは異なる第２ＩＣ中にある請求項９８に記載の装置。
【請求項１００】
前記メモリと前記ＭＳＰとは、１つの素子中に集積されている請求項９８に記載の装置。
【請求項１０１】
前記ＭＳＰは、ホストシステムのプロセッサ中で実施されている請求項９８に記載の装置。
【請求項１０２】
前記メモリセルは、フラッシュメモリセルを有する請求項９８に記載の装置。
【請求項１０３】
前記メモリセルは、ダイナミック・ランダム・アクセスメモリ（ＤＲＡＭ）セルを有する請求項９８に記載の装置。
【請求項１０４】
前記メモリセルは、相変化メモリ（ＰＣＭ）セルを有する請求項９８に記載の装置。
【請求項１０５】
前記メモリセルは、窒化読み出し専用メモリ（ＮＲＯＭ）セルを有する請求項９８に記載の装置。
【請求項１０６】
前記メモリセルは、磁性ランダム・アクセスメモリ（ＭＲＡＭ）セルを有する請求項９８に記載の装置。
【請求項１０７】
前記メモリセルは、強誘電性ランダム・アクセスメモリ（ＦＲＡＭ）セルを有する請求項９８に記載の装置。
【請求項１０８】
複数のアナログメモリセルを有するメモリと、
前記メモリに結合され、かつ、メモリがホストシステムで用いられている間に、アナログメモリセルの各達成可能な記憶能力を追跡し、メモリで記憶するためにデータを受け取り、追跡された達成可能な記憶能力に基づいて、データを記憶するためのメモリセルのサブセットを選択し、前記サブセットのメモリセル中にデータを記憶するように配されているメモリ信号プロセッサ（ＭＳＰ）と
を有するデータ記憶装置。
【請求項１０９】
前記メモリは、第１集積回路（ＩＣ）中にあり、前記ＭＳＰは、第１ＩＣとは異なる第２ＩＣ中にある請求項１０８に記載の装置。
【請求項１１０】
前記メモリと前記ＭＳＰとは、１つの素子中に集積されている請求項１０８に記載の装置。
【請求項１１１】
前記ＭＳＰは、ホストシステムのプロセッサ中で実施されている請求項１０８に記載の装置。
【請求項１１２】
前記メモリセルは、フラッシュメモリセルを有する請求項１０８に記載の装置。
【請求項１１３】
前記メモリセルは、ダイナミック・ランダム・アクセスメモリ（ＤＲＡＭ）セルを有する請求項１０８に記載の装置。
【請求項１１４】
前記メモリセルは、相変化メモリ（ＰＣＭ）セルを有する請求項１０８に記載の装置。
【請求項１１５】
前記メモリセルは、窒化読み出し専用メモリ（ＮＲＯＭ）セルを有する請求項１０８に記載の装置。
【請求項１１６】
前記メモリセルは、磁性ランダム・アクセスメモリ（ＭＲＡＭ）セルを有する請求項１０８に記載の装置。
【請求項１１７】
前記メモリセルは、強誘電性ランダム・アクセスメモリ（ＦＲＡＭ）セルを有する請求項１０８に記載の装置。
【発明の詳細な説明】
【技術分野】
【０００１】
関連出願への相互参照
本発明は、米国特許仮出願６０/７４７,１０６号（２００６年５月１２日出願）、米国特許仮出願６０/８２２,２３６号(２００６年８月１３日出願）、米国特許仮出願６０/８２５,９１３号（２００６年９月１７日出願）、米国特許仮出願６０/８６６,０７１号（２００６年１１月１６日出願）、米国特許仮出願６０/８６６,８６０号（２００６年１１月２２日出願）、米国特許仮出願６０/８６７,３９９号（２００６年１１月２８日出願）、米国特許仮出願６０/８７１,８３８号（２００６年１２月２６日出願）、米国特許仮出願６０/８８２,２４０号（２００６年１２月２８日出願）、米国特許仮出願６０/８８３,０７１号（２００７年１月２日出願）、米国特許仮出願６０/８８５,９８７号（２００７年１月２２日出願）および米国特許仮出願６０/８８９,２７７号（２００７年２月１１日出願）の利点を主張し、その開示は本明細書中に参照される。
【０００２】
本発明は、全般としてメモリ素子に関し、とりわけ、適応記憶能力を有するメモリ素子に関する。
【背景技術】
【０００３】
フラッシュメモリおよびダイナミック・ランダム・アクセスメモリ（ＤＲＡＭ）などの数種類のメモリ素子では、データを記憶するために、アナログメモリセルアレイを用いている。フラッシュメモリ素子は、例えば、２００３年４月付けＩＥＥＥ論文集、第９１巻、第４号、４８９〜５０２頁の、Ｂｅｚ他による「フラッシュメモリの紹介（Ｉｎｔｒｏｄｕｃｔｉｏｎ  ｔｏ  Ｆｌａｓｈ  Ｍｅｍｏｒｙ）」に記載されている。この文献は、本明細書中に参照される。
【０００４】
このようなメモリ素子では、通常、各アナログメモリセルがトランジスタを有し、これが、セル中に記憶された情報を表すある特定の電荷量を保持している。特定のセル中に書き込まれた電荷は、セルの「閾値電圧」、すなわち、このセルが電流を流す際にセルにかけられるのに必要となる電圧に影響を与える。
【０００５】
一般に、単一レベルセル（ＳＬＣ）素子と称されるメモリ素子では、各メモリセル中に１ビットの情報を記憶する。通常、セルの可能な閾値電圧の領域は、２つの領域に分けられる。２つのうちの１つの領域の電圧値は、「０」ビット値を示し、第２の領域に属する電圧は、「１」ビット値を示す。しばしば、マルチレベルセル（ＭＬＣ）素子と称される、より密度の高い素子では、メモリセル毎に２つ以上のビットを記憶する。マルチレベルセルでは、閾値電圧の範囲は、２つを上回る領域に分けられ、各領域が１ビットを上回るビットを示す。
【０００６】
マルチレベルフラッシュセルおよび素子は、例えば、１９９６年ニューヨーク州、ニューヨーク市で開催されたＩＥＥＥ国際電子素子会議（ＩＥＤＭ）の論文集、１６９〜１７２頁中、Ｅｉｔａｎ他による「マルチレベルフラッシュセルおよびそのトレードオフ（Ｍｕｌｔｉｌｅｖｅｌ  Ｆｌａｓｈ  Ｃｅｌｌｓ  ａｎｄ  ｔｈｅｉｒ  Ｔｒａｄｅ−Ｏｆｆｓ）」に記載されている。この論文は、本明細書中に参照される。この論文は、一般的な接地セル、ＤＩＮＯＲ、ＡＮＤ、ＮＯＲおよびＮＡＮＤセルなどの数種類のマルチレベルフラッシュセルを比較している。
【０００７】
Ｅｉｔａｎ他は、窒化読み出し専用メモリ（ＮＲＯＭ）と称される別の種類のアナログメモリセルについても、１９９９年９月２１〜２４日、日本、東京で開催された１９９９年国際固体素子および材料会議（Ｉｎｔｅｒｎａｔｉｏｎａｌ  Ｃｏｎｆｅｒｅｎｃｅ  ｏｎ  Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｅｖｉｃｅｓ  ａｎｄ  Ｍａｔｅｒｉａｌｓ）（ＳＳＤＭ）の論文集中、５２２〜５２４頁「２ビットのトラップ記憶ＮＶＭセルであるＮＲＯＭは、フローティングゲートセルに対する真の挑戦でありうるか？（Ｃａｎ  ＮＲＯＭ，ａ  ２−ｂｉｔ，Ｔｒａｐｐｉｎｇ  Ｓｔｏｒａｇｅ  ＮＶＭ  Ｃｅｌｌ，Ｇｉｖｅ  ａ  Ｒｅａｌ  Ｃｈａｌｌｅｎｇｅ  ｔｏ  Ｆｌｏａｔｉｎｇ  Ｇａｔｅ  Ｃｅｌｌｓ？）」中で記載している。この論文は、本明細書中に参照される。ＮＲＯＭセルに関しては、Ｍａａｙａｎ他も、２００２年２月３〜７日、カリフォルニア州、サンフランシスコで開催された、２００２年ＩＥＥＥ国際固体回路会議（ＩＳＳＣＣ２００２）の論文集中、「８ＭＢ／秒のデータ速度を持つ５１２ＭｂのＮＲＯＭフラッシュデータ記憶メモリ（Ａ  ５１２  Ｍｂ  ＮＲＯＭ  Ｆｌａｓｈ  Ｄａｔａ  Ｓｔｏｒａｇｅ  Ｍｅｍｏｒｙ  ｗｉｔｈ  ８  ＭＢ／ｓ  Ｄａｔａ  Ｒａｔｅ）」中に記載している。この論文は本明細書中に参照される。
【０００８】
例となる別の種類のアナログメモリセルとしては、強誘電性ＲＡＭ（ＦＲＡＭ）セル、磁性ＲＡＭ（ＭＲＡＭ）セル、相変化ＲＡＭ（ＰＲＡＭ、相変化メモリＰＣＭとも称される）セルがある。ＦＲＡＭ、ＭＲＡＭおよびＰＲＡＭに関しては、例えば、ＫｉｍおよびＫｏｈにより、２００４年５月１６〜１９日、セルビアモンテネグロ、ニスで開催された、第２４回国際電子工学会議（ＭＩＥＬ）の論文集、１巻、３７７〜３８４頁、「新興メモリを含む将来のメモリ技術（Ｆｕｔｕｒｅ  Ｍｅｍｏｒｙ  Ｔｅｃｈｎｏｌｏｇｙ  ｉｎｃｌｕｄｉｎｇ  Ｅｍｅｒｇｉｎｇ  Ｎｅｗ  Ｍｅｍｏｒｉｅｓ）」に記載されている。この論文は、本明細書中に参照される。
【０００９】
用途に応じて、データは、様々な密度でメモリセル中に記憶される。例えば、特許文献１（この開示は本明細書中に参照されている）は、複数のメモリアレイを含む、マルチプル・ビット・パー・セルメモリ（複数のセル毎ビット数を有するメモリ）に関して記載している。このメモリでは、セル毎に記憶されるビット数は、メモリアレイ毎に個別に設定されている。テストにより、セル毎に多数のビット数を書き込み、記憶および読み取る際に正確であると証明されたメモリアレイは、セル毎に、より多くのビットを記憶するように設定され、これほど多くのビットをセル毎に正確に書き込み、記憶および読み取りができないメモリアレイは、より少ないビットをセル毎に記憶するように設定されている。
【００１０】
特許文献２（この開示は本明細書中に参照されている）では、通常メモリセルを複数の記憶状態で作動させる非揮発性のフラッシュメモリシステムが、これに代えて、２つの状態中でいくつかの選択されたセルブロックまたは全メモリセルブロックを作動させる能力を備えている。２つの状態は、複数の状態を最も分離するように選択され、これにより２つの状態での動作時に、余裕を増やすことができる。
【００１１】
特許文献３（この開示は本明細書中に参照されている）は、セルブロック単位で共に消去可能なように配された、フラッシュで電気的に消去可能およびプログラム可能な読み出し専用メモリ（ＥＥＰＲＯＭ）を有するメモリシステムを開示している。各セルを、２つを上回る検出可能な閾値範囲または状態で作動させた結果、各セルは１つを上回るビットデータを記憶する。データが記憶されないアレイの任意の部分は、書き込みキャッシュとして用いることができ、ここでは、各セルが、２つ以上の検出可能な閾値範囲でのみ動作することにより、単一のデータビットを記憶する。メモリに入ってくるデータは、まず、２つの状態で利用可能なブロック中に書き込まれている。後の段階で、バックグラウンドで、キャッシュに入れられたデータは読み込まれ、圧縮され、複数の状態のメモリのより少ないブロックに再度書き込まれる。
【００１２】
特許文献４（この開示は本明細書中に参照されている）は、マルチ・ビット・パー・セルの非揮発性メモリを記載し、セル毎に異なる数のビットを用いて、データストリームの様々な部分を記憶する。とりわけ、高度のデータ集積を必要とするデータ（例えば、データフレームのヘッダ）は、メモリセル毎に相対的に少数のビット数を用いて記憶される。より誤差に対して許容性のあるデータ（例えば、音楽、画像またはビデオなどを表現する主データ）は、メモリセル毎に相対的により多い数のビットを用いて記憶される。
【００１３】
特許文献５（この開示は本明細書中に参照されている）は、該当するデータタイプに応じて、セル毎に異なる数のビット数でデータを記憶する方法について記載している。このビット数は、忠実性がより重要ではない場合に、セル毎に増やしてもよい。セル毎のビット数は、忠実性がより重要である場合に、減らしてもよい。実施形態によっては、メモリは、セルベースで、記憶モード間で変化してもよい。
【特許文献１】米国特許６,３６３,００８号
【特許文献２】米国特許６,４５６,５２８号
【特許文献３】米国特許５,９３０,１６７号
【特許文献４】米国特許６,４６６,４７６号
【特許文献５】米国特許６,６４３,１６９号
【発明の開示】
【００１４】
本発明の実施形態では、複数のアナログメモリセルを有するメモリ中に、データを記憶させる方法であって、この方法が、アナログメモリセルの各達成可能な記憶能力を推定する工程と、推定された達成可能な能力に基づいて、メモリセル中に記憶されるべきデータ量を定義する各記憶構成を、メモリセルに割り当てる工程と、割り当てられた各記憶構成に基づいて、メモリセル中にデータを記憶する工程と、メモリがホストシステムに組み込まれ、ホストシステム中にデータを記憶させるために用いられた後に、アナログメモリセルの各達成可能な記憶構成を再推定する工程と、再推定された達成可能な能力に応答して、記憶構成を修正する工程とを含む方法を提供する。
【００１５】
実施形態によっては、データを記憶する工程は、誤り訂正符号（ＥＣＣ）を用いてデータを符号化する工程と、符号化されたデータを、公称アナログ値セットから選択されたアナログ値に変換する工程と、アナログ値を各メモリセルに書き込む工程とを含み、ここで、各記憶構成は、データを記憶するために用いられる、各ＥＣＣ符号レートおよび公称アナログ値セットのサイズを特定する。
【００１６】
ある実施形態では、データを記憶する工程は、各アナログメモリセル用に、データを公称アナログ値セットから選択されたアナログ値に変換する工程と、アナログ値をメモリセルに書き込む工程とを含み、ここで、各記憶構成は、アナログメモリセルにデータを記憶するために用いられる、公称アナログ値を特定する。
【００１７】
別の実施形態では、データを記憶する工程は、データをアナログ値に変換する工程と、アナログ値を各メモリセルに書き込む工程とを含み、ここで、達成可能な記憶能力を推定する工程は、メモリセル中に書き込まれるアナログ値に影響を与える各歪みレベルを推定する工程と、歪みレベルに応答して達成可能な記憶能力を決定する工程とを含む。
【００１８】
歪みレベルを推定する工程は、メモリセルからのアナログ値を読み取る工程と、メモリセルから読み取られたアナログ値に基づいて歪みレベルを推定する工程とを含んでもよい。歪みレベルを推定する工程は、メモリセルから読み取られたアナログ値からデータを再構築する工程と、再構築されたデータに基づいて歪みレベルを演算する工程とを含んでもよい。実施形態によっては、歪みレベルを演算する工程は、メモリセルから読み取られたアナログ値のスカラー関数を合計する工程を含む。スカラー関数を合計する工程は、メモリセルから読み取られたアナログ値と、データに応答してメモリセル中に記憶されたデータの各予測値との差の二乗を合計する工程を含んでもよい。別の実施形態では、歪みレベルを演算する工程は、メモリセルから読み取られたアナログ値と、データに応答してメモリセル中に記憶されたデータの各予測値との差が所定の値を超えるメモリセルの数を勘定する工程を含む。
【００１９】
開示された実施形態では、データを記憶する工程は、メモリセル内にアナログ値を書き込む工程と、反復プログラミングおよび検証（Ｐ＆Ｖ）プロセスを用いて、書き込まれたアナログ値を検証する工程とを含み、ここで、歪みレベルを推定する工程は、Ｐ＆Ｖプロセスにより検証されたアナログ値に基づいて、歪みレベルを演算する工程を含む。
【００２０】
別の実施形態では、データを記憶する工程は、メモリセル内にアナログ値を書き込む工程と、プログラミング工程によりアナログ値を反復的に増分する反復プログラミングおよび検証（Ｐ＆Ｖ）プロセスを用いて、書き込まれたアナログ値を検証する工程とを含み、ここで、記憶構成は、反復Ｐ＆Ｖプロセスにより用いられるプログラミング工程のサイズを規定する。
【００２１】
さらに別の実施形態では、データを記憶する工程は、誤り訂正符号（ＥＣＣ）を用いて、メモリセル群中で記憶されるべきデータを符号化する工程と、符号化されたデータを、メモリセル群の各アナログメモリセル中で記憶するためにアナログ値に変換する工程とを含み、達成可能な記憶能力を推定する工程は、メモリセル群中のメモリセルからアナログ値を読み取る工程と、読み取られたアナログ値と、アナログ値に最も近い有効なＥＣＣの符号語との間の距離メトリックを求める工程とを含み、記憶構成を修正する工程は、メモリセル群の記憶構成を、求められた距離メトリックに応答して適応させる工程を含む。
【００２２】
また別の実施形態では、達成可能な記憶構成を再推定する工程は、メモリセル内に記憶されたデータを読み取る工程を含み、記憶構成を修正する工程は、読み取られたデータ中のエラーの検出に応答して、記憶構成を適応させる工程を含む。データを記憶する工程は、誤り訂正符号（ＥＣＣ）を用いてデータを符号化する工程を含んでもよく、記憶構成を適応させる工程は、ＥＣＣの符号レートを修正する工程を含んでもよい。
【００２３】
実施形態によっては、メモリセルの達成可能な能力を推定する工程は、各メモリセルに対して行われた過去のプログラミングおよび消去動作を追跡する工程と、追跡された過去のプログラミングおよび消去動作に応答して、達成可能な能力を推定する工程とを含む。達成可能な能力を推定する工程は、過去のプログラミングおよび消去動作以来経過した時間の長さに応答して、達成可能な能力を演算する工程を含んでもよい。
【００２４】
ある実施形態では、データを記憶する工程は、データの冒頭の部分をアナログ値に変換する工程と、アナログ値を各メモリセル中に書き込む工程と、これに続いて、セルを消去することなく、メモリセル中に書き込まれたアナログ値を大きくすることにより、データのさらなる部分をメモリセルの少なくともいくつかに記憶する工程とを含む。
【００２５】
別の実施形態では、データを記憶する工程は、データに冗長ビットを加える誤り訂正符号（ＥＣＣ）を用いてデータを符号化する工程と、冗長ビットを、いくつかのアナログメモリセル中に記憶する工程とを含み、ここで、記憶構成を修正する工程は、セルを消去することなく、ＥＣＣにより加えられた冗長ビットの数を修正する工程を含む。冗長ビットを記憶する工程は、データとは別に冗長ビットを記憶する工程を含んでもよい。
【００２６】
さらに別の実施形態では、記憶構成を割り当てる工程は、可能な記憶構成セットを予め規定する工程を含み、記憶構成を修正する工程は、所定のセットから更新された記憶構成を選択する工程を含む。少なくとも１つの記憶構成で規定されるデータの量は、セル毎の非整数のビット数を特定してもよい。
【００２７】
さらに別の実施形態では、データを記憶する工程は、メモリセルにデータを書き込む前にデータを圧縮する工程を含み、ここで記憶構成は、データが圧縮されるべき個々の圧縮レートを規定する。開示された実施形態では、記憶構成を割り当てる工程は、各メモリセル群に対して記憶構成を規定する工程を含む。
【００２８】
ある実施形態では、メモリセル中にデータを記憶する工程は、メモリ中に記憶するためにデータ項目を受け取る工程と、割り当てられた記憶構成に応答して、データ項目を記憶するべきメモリセルサブセットを選択する工程と、選択されたメモリセルサブセット中にデータ項目を記憶する工程とを含む。実施形態によっては、達成可能な記憶能力を再推定する工程は、データが記憶されず、かつ読み取られないアイドル期間中に行われる。
【００２９】
別の実施形態では、記憶構成を割り当て、かつ修正する工程は、構成テーブルに記憶構成を記憶する工程を含む。実施形態によっては、メモリがホストシステムに組み込まれる前に、構成テーブルに記憶構成の初期値が記憶されてもよい。さらに別の実施形態では、記憶構成を割り当て、かつ修正する工程は、メモリセル中に記憶されたデータの量と、各推定された達成可能な能力との間の所定の余裕を維持する工程を含む。さらに別の実施形態では、歪みの少なくともいくらかは、アナログメモリセル中の漏れ電流により引き起こされ、歪みを推定する工程は、漏れ電流を推定する工程を含む。
【００３０】
本発明の１実施形態によれば、複数のアナログメモリセルを有するメモリ中に、データを記憶させる方法であって、この方法が、各アナログメモリセルの歪みレベルを推定する工程と、推定された歪みレベルに基づいて、アナログメモリセルの各達成可能な記憶能力を推定する工程と、推定された達成可能な能力に基づいて、メモリセル中に記憶されるべきデータ量を定義する各記憶構成を、メモリセルに割り当てる工程と、割り当てられた各記憶構成に基づいて、メモリセル中にデータを記憶する工程とを含む方法もさらに提供される。
【００３１】
本発明の１実施形態によれば、複数のアナログメモリセルを有するメモリ中に、データを記憶させる方法であって、この方法が、メモリがホストシステムで用いられている間に、アナログメモリセルの各達成可能な記憶能力を追跡する工程と、メモリで記憶するためにデータを受け取る工程と、追跡された達成可能な記憶能力に基づいて、データを記憶するためのメモリセルのサブセットを選択する工程と、サブセットのメモリセル中にデータを記憶する工程とを含む方法も提供される。
【００３２】
実施形態によっては、サブセットを選択する工程は、達成可能な能力の総計が、受け取られたデータのサイズに最もよく合うメモリセルを選択する工程を含む。別の実施形態では、データを受け取る工程は、要求された、データを記憶するための信頼性レベルを受け取る工程を含み、サブセットを選択する工程は、要求された信頼性レベルに応答してメモリセルを選択する工程を含む。これに加えて、または、これに代えて、データを受け取る工程は、要求された、データを記憶するための保持期間を受け取る工程を含み、サブセットを選択する工程は、要求された保持期間に応答してメモリセルを選択する工程を含む。サブセットを選択する工程は、他のメモリセルよりも低い歪みレベルを有するメモリセルを選択する工程を含んでもよい。
【００３３】
別の実施形態では、達成可能な記憶能力を追跡する工程は、メモリセルに対して行われた過去のプログラミングおよび消去動作を追跡する工程を含み、サブセットを選択する工程は、過去のプログラミングおよび消去動作に応答して、メモリセルを選択する工程を含むサブセットを選択する工程は、他のメモリセルよりも過去のプログラミングおよび消去動作の数が少ないメモリセルを選択することによって、メモリ中のメモリセルに渡って、均等にプログラミングおよび消去動作の数を配分する工程を含んでもよい。プログラミングおよび消去動作の数を配分する工程は、所定の最近の期間の間において、他のメモリセルよりも過去のプログラミングおよび消去動作の数が少ないメモリセルを選択する工程を含んでもよい。
【００３４】
開示された実施形態では、達成可能な記憶能力を追跡する工程は、データを記憶するために利用可能なメモリセルの達成可能な能力を合計することによって、利用可能なメモリスペースのサイズを演算し、かつホストシステムに報告する工程を含む。
【００３５】
別の実施形態では、メモリは複数の消去ブロックに分割され、各消去ブロックは、１回の消去動作により消去されるメモリセル群を含み、かつこの方法は、データ項目が記憶されている消去ブロックを１つまたは複数特定する工程と、データ項目が記憶されている消去ブロックが、他のデータ項目のデータを記憶して含む際に、追跡されたメモリセルの達成可能な能力と、それ以外のデータ項目のサイズとに基づいて、データ項目が記憶されている消去ブロック外の代替となるメモリセルを特定する工程と、それ以外のデータ項目のデータを、代替となるメモリセルに複写する工程と、データ項目が記憶されている消去ブロックを消去する工程とにより、メモリからデータを消去する工程を含む。
【００３６】
ある実施形態では、記憶するためにデータを受け取る工程は、データをホストシステムから固定能力ブロック中に受け取る工程と、可変能力メモリセル群中に、可変サイズ群の追跡された達成可能な能力に基づいて、データを記憶する工程とを含む。別の実施形態では、可変能力群中にデータを記憶する工程は、固定能力ブロックの能力よりも小さい能力を有する可変能力群を２つ以上特定する工程を含み、１つまたは複数の固定能力ブロックで受け取られたデータを、特定された２つ以上の可変能力群に記憶する工程を含む。
【００３７】
さらに別の実施形態では、可変能力群中にデータを記憶する工程は、余剰メモリ記憶領域として機能する１つ以上の可変能力群を割り当てる工程と、固定能力ブロック中に受け取られたデータを、各可変能力群中に記憶する工程と、可変能力群の達成可能な能力が固定能力ブロックの能力よりも小さい場合に、各固定能力ブロック中で受け取られたデータのいくらかを、割り当てられた余剰メモリ記憶領域中に記憶する工程とを含む。さらに別の実施形態では、可変能力群中にデータを記憶する工程は、固定能力ブロック中に受け取られたデータを、可変能力群間の境界に関わらず、メモリセル中に順次記憶する工程を含む。データを記憶する工程は、各固定能力ブロック中で受け取られたデータを、始めに各可変能力群中に記憶する工程と、続いて、始めに記憶されたデータを、可変能力群間の境界にかかわらず、順次再プログラムする工程とを含んでもよい。
【００３８】
実施形態によっては、この方法は、可変サイズ群からデータを取り出す工程と、固定サイズブロックを再構築する工程と、固定サイズブロックを用いてデータをホストシステムに出力する工程とを含む。この方法は、少なくともデータの幾分かをキャッシュに入れることにより、メモリに対して行われるメモリアクセス動作の数を減らす工程を含んでもよい。少なくともデータの幾分かをキャッシュに入れる工程は、即時記憶事象を検出するとすぐに、キャッシュに入れられたデータをメモリに転送する工程を含んでもよい。即時記憶事象とは、電源異常に近づいていることと、時間切れと、ホストシステムによるＥｎｄ  Ｏｆ  Ｆｉｌｅ（ＥＯＦ）コマンドの受け取りとからなる事象群から選択された少なくとも１つの事象を含んでもよい。
【００３９】
本発明の１実施形態によれば、データ記憶装置であって、複数のアナログメモリセルを有するメモリと交信するように配されているインタフェースと、メモリセルの各達成可能な記憶能力を推定し、推定された達成可能な能力に基づいて、メモリセル中に記憶されるべきデータ量を定義する各記憶構成をメモリセルに割り当て、割り当てられた各記憶構成に基づいて、メモリセル中にデータを記憶し、メモリがホストシステムに組み込まれホストシステム中にデータを記憶させるために用いられた後に、アナログメモリセルの各達成可能な記憶構成を再推定し、再推定された達成可能な能力に応答して記憶構成を修正するように配されたメモリ信号プロセッサ（ＭＳＰ）とを有するデータ記憶装置も提供される。
【００４０】
本発明の１実施形態によれば、さらに、データ記憶装置であって、複数のアナログメモリセルを有するメモリと交信するように配されているインタフェースと、各アナログメモリセルの歪みレベルを推定し、推定された歪みレベルに基づいて、アナログメモリセルの各達成可能な記憶能力を推定し、推定された達成可能な能力に基づいて、メモリセル中に記憶されるべきデータ量を定義する各記憶構成を、メモリセルに割り当て、割り当てられた各記憶構成に基づいて、メモリセル中にデータを記憶するように配されたメモリ信号プロセッサ（ＭＳＰ）とを有するデータ記憶装置も提供される。
【００４１】
本発明の１実施形態によれば、さらに、データ記憶装置であって、複数のアナログメモリセルを有するメモリと交信するように配されているインタフェースと、メモリがホストシステムで用いられている間に、メモリセルの各達成可能な記憶能力を追跡し、メモリで記憶するためにデータを受け取り、追跡された達成可能な記憶能力に基づいて、データを記憶するためのメモリセルのサブセットを選択し、サブセットのメモリセル中にデータを記憶するように配されたメモリ信号プロセッサ（ＭＳＰ）とを有するデータ記憶装置も提供される。
【００４２】
本発明の１実施形態によれば、複数のアナログメモリセルを有するメモリと、このメモリと結合され、かつ、メモリセルの各達成可能な記憶能力を推定し、推定された達成可能な能力に基づいて、メモリセル中に記憶されるべきデータ量を定義する各記憶構成をメモリセルに割り当て、割り当てられた各記憶構成に基づいて、メモリセル中にデータを記憶し、メモリがホストシステムに組み込まれホストシステム中にデータを記憶させるために用いられた後に、アナログメモリセルの各達成可能な記憶構成を再推定し、再推定された達成可能な能力に応答して記憶構成を修正するように配されたメモリ信号プロセッサ（ＭＳＰ）とを有するデータ記憶装置もさらに提供される。
【００４３】
実施形態によっては、メモリは、第１集積回路（ＩＣ）中にあり、ＭＳＰは、第１ＩＣとは異なる第２ＩＣ中にある。これに代わる実施形態では、メモリとＭＳＰとは、１つの素子中に集積されている。さらに、あるいは、ＭＳＰは、ホストシステムのプロセッサ中で実施されもよい。実施形態によっては、メモリセルは、フラッシュメモリセル、ダイナミック・ランダム・アクセスメモリ（ＤＲＡＭ）セル、相変化メモリ（ＰＣＭ）セル、窒化読み出し専用メモリ（ＮＲＯＭ）セル、磁性ランダム・アクセスメモリ（ＭＲＡＭ）セル、強誘電性ランダム・アクセスメモリ（ＦＲＡＭ）セルを有してもよい。
【００４４】
本発明の１実施形態によれば、複数のアナログメモリセルを有するメモリと、このメモリと結合され、かつメモリがホストシステムで用いられている間に、アナログメモリセルの各達成可能な記憶能力を追跡し、メモリで記憶するためにデータを受け取り、追跡された達成可能な記憶能力に基づいて、データを記憶するためのメモリセルのサブセットを選択し、サブセットのメモリセル中にデータを記憶するように配されているメモリ信号プロセッサ（ＭＳＰ）とを有するデータ記憶装置もさらに提供される。
【００４５】
本発明は、以下の実施形態の詳細な説明を図面をと共に参照すると、より完全に理解されるであろう。
【００４６】
（図面の簡単な説明）
図１は、本発明の１実施形態によるメモリシステムを概略的に図示したブロック図である。
図２は、本発明の１実施形態によるメモリセルアレイを概略的に図示した図である。
図３は、本発明の１実施形態によるマルチレベルメモリセルアレイ中の、電圧分布を示したグラフである。
図４は、本発明の１実施形態によるメモリセルアレイ中のセル能力分布を示したグラフである。
図５は、本発明の１実施形態によるメモリセルアレイ中のブロックおよびページ構造を示した図である。
図６〜１１は、本発明の実施形態によるメモリ素子の記憶密度を適応的に修正する方法を概略的に示したフローチャートである。
図１２は、本発明の１実施形態による、可変能力のメモリ素子中にデータを記憶する方法を概略的に示したフローチャートである。
図１３は、本発明の１実施形態による、可変能力のメモリ素子からデータを消去する方法を概略的に示したフローチャートである。
図１４〜１７は、本発明の１実施形態による、可変能力のメモリ素子中に、固定サイズのデータブロックを記憶する方法を概略的に示した図である。
【発明を実施するための最良の形態】
【００４７】
概要
フラッシュメモリなどのアナログメモリセルアレイの達成可能な記憶能力は、経時変化する。多くの場合、メモリセルアレイの達成可能な能力は、プログラミングおよび消去動作を繰り返すことにより、経時及びその他の効果により、時間の経過に応じて低減する。この能力の変化は、アレイ中のセル毎に異なる。一方、通常、メモリ素子は特定の信頼性レベルで特定の能力を提供する仕様が定められ、かつ特定のデータ保持期間の間、この仕様に合うように定められている。
【００４８】
公知のメモリ素子、および、これに関する記憶方法では、メモリセルアレイのサイズと性能とを過剰に設計または過剰に仕様設定することにより、セル能力を変えているものもある。このような素子では、所望の保存期間に渡る劣化を予測して、この素子が仕様内に十分収まるように、メモリセルの数およびその性能に関して余裕を持った仕様が定められている。このような設計方法は、しばしば非効率的で、コストを上昇させ、より複雑さを増し、メモリ素子の使用可能な能力を低減させてしまう。
【００４９】
本発明の実施形態では、データが記憶される密度を適応的に修正することにより、メモリ素子中にデータを記憶するための方法およびシステムを改善している。
【００５０】
実施形態によっては、メモリ信号プロセッサ（ＭＳＰ）が、アナログメモリセルを複数有するメモリ素子、例えばフラッシュまたはＤＲＡＭ素子中でデータを記憶する。ＭＳＰは、メモリセルの達成可能な記憶能力を連続的に推定する。ＭＳＰは、メモリセル内の歪みレベル、そのデータに対して特定された信頼性および／または保存要件、セル中にプログラムされたデータ中で検出されたエラー、および／または、セルが経験した過去のプログラミングおよび消去動作の履歴などの因子に基づいて、達成可能な能力を推定してもよい。
【００５１】
推定された達成可能な能力に基づいて、ＭＳＰは、メモリセルに、それぞれ記憶構成を割り当てる。各記憶構成は、各メモリセル中に記憶可能なデータ量を定義している。例えば、記憶構成は、メモリセル中にデータを記憶するために用いられる、公称電圧レベルの数と誤り訂正コーディング（ＥＣＣ）の枠組みを定義することができ、実施形態によっては、ＭＳＰは、限定された所定の構成セットから適切な記憶構成を選択する。
【００５２】
ＭＳＰは、セルに割り当てられた記憶構成にしたがって、メモリセル中にデータを記憶する。ＭＳＰは、長い時間に渡って、すなわちメモリ素子の耐用年数の全期間に渡って、記憶構成を適応的に修正し、その結果、メモリセル内にデータが記憶される密度が、セルの達成可能な能力に一致する。
【００５３】
記憶密度が直感的に特定されている公知のメモリ素子およびそのデータ記憶方法とは異なり、本明細書中に記載されている方法およびシステムでは、メモリアレイの全耐用年数に渡って、異なるメモリセルの達成可能な能力を追跡し、それにしたがってデータが記憶される密度を継続的に適応させている。その結果、時間の経過に伴ってメモリ素子の達成可能な能力が変化するにしたがい、この達成可能な能力は最適に活用され、これによりサイズやコストの削減ができる。
【００５４】
ＭＳＰは、メモリコントローラまたはその他のホストと相互作用を行い、すなわち、メモリコントローラからデータを受容してこれを記憶し、かつ、メモリコントローラから要求された際に、メモリ内に記憶されたデータを取り出す。実施形態によっては、ＭＳＰは、可変能力を有するセル群中にデータを記憶していても、メモリコントローラに対して、固定能力での動作を模倣することもある。このような方法は、例えば、固定能力および固定ページサイズを有するメモリ素子を制御するように設計された遺産的なメモリコントローラと、ＭＳＰが相互作用する場合に用いられる。このようにして、メモリコントローラの固定能力での動作と、本明細書中に記載された記憶方法の適応的な能力の特性との間で仲介することによって、遺産的なメモリコントローラも、修正なしに用いることができる。
システム記述
【００５５】
図１は、本発明の１実施形態によるメモリシステム２０を概略的に図示したブロック図である。システム２０は、様々なホストシステムおよび機器、例えば、演算装置、携帯電話またはその他の通信端末機器、取り外し可能なメモリモジュール（例えば、「ディスクオンキー」機器）、デジタルカメラ、音楽プレーヤおよびこれ以外のメディアプレーヤ、および／または、データが記憶され取り出されるこれ以外のシステムまたは機器中に用いられる。代表的な用途では、メモリシステム２０は、メモリコントローラ２２と相互作用し、すなわち、メモリコントローラからデータを受け取って記憶し、要求があった場合に、メモリ内に記憶されたデータをメモリコントローラに出力する。
【００５６】
システム２０は、メモリセルアレイ２８中にデータを記憶するメモリ素子２４を有する。このメモリアレイは複数のアナログメモリセル３２を有する。本特許出願および請求項の文脈では、「アナログメモリセル」という用語は、連続的に、電圧または電荷などの物理パラメータのアナログ値を保持する任意のメモリ部材を意味する。アレイ２８は、任意の種類のアナログメモリセル、例えばＮＡＮＤフラッシュセル、ＮＯＲフラッシュセル、ＰＣＭ、ＮＲＯＭ、ＦＲＡＭ、ＭＲＡＭおよびＤＲＡＭセルを有しうる。セル内に記憶される電荷レベル、および／または、セルに書き込まれおよび読み取られるアナログ電圧は、本明細書中、まとめてアナログ値と称する。
【００５７】
メモリ素子２４中に記憶されるデータは、メモリ素子に与えられ、データバッファ３６でキャッシュに入れられる。続いて、データはアナログ電圧に変換され、読み取り／書き込み（Ｒ／Ｗ）ユニット４０（この機能については後ほど詳述する）を用いてメモリセル３２中に書き込まれる。アレイ２８からデータを読み取る際には、ユニット４０は、電荷を変換し、これにより、メモリセル３２のアナログ電圧を、それぞれ１ビット以上の分解能を有するデジタルサンプルに変換する。ユニット４０で生成されたサンプルは、バッファ３６中にキャッシュに入れられる。メモリ素子２４の動作とタイミングは、制御論理４８により管理される。
【００５８】
メモリ素子２４のデータの記憶およびここからの取り出しは、メモリ信号プロセッサ（ＭＳＰ）５２により行われる。ＭＳＰ５２は、メモリ素子２４と、メモリコントローラ２２またはその他のホストとの間の仲介を行う。後ほど詳述するように、ＭＳＰ５２は、メモリセル３２の達成可能な能力を適応的に推定するため、および、推定したセル能力に基づいて、メモリアレイ２８中でデータの記憶および取り出しを管理するために、新規の方法を用いる。ＭＳＰ５２は、アレイ２８中にデータが記憶される密度を適応的に修正し、システムの耐用年数に渡って最適の能力を提供する。
【００５９】
ＭＳＰ５２は、セルの達成可能な能力に応じて、異なる密度で、メモリセル３２中にデータを書き込むことができる。本特許出願および請求項の文脈では、「能力」という用語は、所定のセルまたはセル群が確実の保持することができる（通常、セル毎ビット数の単位で表される）情報量を示すために用いられる。「密度」という用語は、実際に、あるセルまたはセル群に記憶されている情報量を、通常、セル毎ビット数の単位で示すために用いられる。このように、情報は、能力を超えない限り、あるセル群中に異なる密度で確実に記憶することができる。したがって、セルまたはセル群の記憶密度は、データが確実に記憶されている限り、定義上は、その能力を超えない。
【００６０】
ＭＳＰ５２は、例えば、セル３２中にデータを書き込むために用いられる電圧レベルの数を変えることにより、セル３２中のデータが記憶される密度を変化させることができる。より多くの電圧レベル数を用いることにより、より高い情報密度が可能となる。実施形態によっては、ＭＳＰ５２は、誤り訂正符号（ＥＣＣ）を用いて、メモリ素子２４中に記憶されたデータを符号化する。ＭＳＰ５２は、エンコーダ／デコーダ６４を有し、これが、素子２４に書き込まれるべきデータを符号化し、素子２４から読み出されるデータを復号化する。実装によっては、ＭＳＰ５２は、異なる符合を選択することにより、またはＥＣＣの符号レートを変えることにより、情報密度を変える。
【００６１】
信号処理ユニット６０は、素子２４に書き込まれたデータおよび素子２４から取り出されたデータを処理する。とりわけ、ユニット６０は、セル３２から読み取られた電圧中にある歪みを推定する。この推定された歪みを用いて、セル３２の達成可能な能力を推定し、用いられるべき所望の記憶密度が決定される。ＭＳＰ５２は、データバッファ７２を有し、これが、データを記憶するためのユニット６０により用いられ、メモリ素子２４との交信用のインタフェースとして機能する。ＭＳＰ５２は、入力／出力（Ｉ／Ｏ）バッファ５６も有し、これが、ＭＳＰとメモリコントローラとの間のインタフェースを形成する。
【００６２】
メモリ管理ユニット７６は、ＭＳＰ５２の動作とタイミングとを管理する。とりわけ、ユニット７６は、各メモリセルまたはセル群の推定された能力および状態を追跡し、その結果、ＭＳＰ５２は、推定された能力に合う密度で、各セルまたはセル群中にデータを記憶する。信号処理ユニット６０および／または管理ユニット７６は、ハードウェア中に実装されてもよい。あるいは、ユニット６０およびユニット７６は、適切なソフトウェアを走らせたマイクロプロセッサを有してもよく、あるいは、ハードウェアとソフトウェアとの組み合わせを有してもよい。実施形態によっては、エンコーダ／デコーダ６４またはその一部分も、ソフトウェア中に実装されてもよい。実施形態によっては、ＭＳＰ５２の機能性は、時には、ソフトウェアで実装され、適切なプロセッサまたはホストシステムのその他の要素により実行されてもよい。
【００６３】
図１の構成は、概念を明確にするためのみの目的で示した例示的なシステム構成である。これ以外の適切な構成を用いることもできる。本発明の原理を理解するのに不要な要素、例えば、種々のインタフェース、アドレス回路、タイミングおよびシーケンス回路、データスクランブル回路およびデバッグ回路は、明確性を保つために、図面から省略した。
【００６４】
実施形態によっては、メモリ素子２４およびＭＳＰ５２は、別の２つの集積回路（ＩＣ）中で実装されている。しかし、これに代わる実施形態では、メモリ素子およびＭＳＰは、１つのＩＣまたはシステムオンチップ（ＳｏＣ）中に集積されてもよい。実施形態によっては、１つのＭＳＰ５２は、複数のメモリ素子２４に接続されていてもよい。システム２０の特定の実施形態のさらなる構造面は、上述の米国特許仮出願６０/８６７,３９９号中により詳細に記載されている。あるいは、メモリコントローラの一部の機能または全機能は、ＭＳＰ５２中に埋め込まれていてもよいが、この点については、以下により詳細に説明する。
【００６５】
一般的な書き込み動作では、メモリ素子２４に書き込まれるべきデータは、メモリコントローラ２２から受け取られ、Ｉ／Ｏバッファ５６中にキャッシュとして入れられる。メモリ管理ユニット７６は、データが書き込まれるべきセルを決定する。このユニット７６は、特定されたセルの推定された能力に基づいて、用いられるべき記憶構成（例えば、電圧レベルの数と符号レートなど）も決める。エンコーダ／デコーダ６４は、データを符号化し、符号化されたデータは、データバッファ７２を介してメモリ素子２４に送られる。素子２４中でデータは一時的に、バッファ３６中に記憶される。Ｒ／Ｗユニット４０は、データをアナログ電圧値に変換し、このデータをアレイ２８の適切なセル３２に書き込む。
【００６６】
通常の読み取り動作では、Ｒ／Ｗユニット４０は、適切なメモリセル３２から、アナログ電圧値を読み取り、この電圧をデジタルサンプルに変換する。このサンプルは、バッファ３６中にキャッシュとして入れられ、ＭＳＰ５２のバッファ７２に転送される。データブロックは、バッファ７２からユニット６０へと転送され、エンコーダ／デコーダ６４は、これらのブロックのＥＣＣを復号化する。この復号化されたデータは、Ｉ／Ｏバッファ５６を介してメモリコントローラ２２に転送される。
【００６７】
メモリコントローラ２２は、パイソン・エレクトロニクス社（Ｐｈｉｓｏｎ  Ｅｌｅｃｔｒｏｎｉｃｓ  Ｃｏｒｐ．）（台湾、チュートゥング、シンチュ（Ｃｈｕｔｕｎｇ、Ｈｓｉｎｃｈｕ）在）提供のＰＳ８０００  ＮＡＮＤフラッシュコントローラ素子などの公知の素子を有してもよい。この素子は、２００７年３月２８日付の「ＰＳ８０００  コントローラ仕様」改訂版１．２中に、その仕様が指定されている。この文献は、本明細書中に参照されている。別の公知のメモリコントローラは、デナリ・ソフトウェア社（Ｄｅｎａｌｉ  Ｓｏｆｔｗａｒｅ、Ｉｎｃ）（カリフォルニア州、パロアルト在）提供のデータバーン（Ｄａｔａｂａｈｎ）（登録商標）フラッシュメモリコントローラＩＰである。この製品に関する詳細は、ｗｗｗ．ｄｅｎａｌｉ．ｃｏｍ／ｐｒｏｄｕｃｔｓ／ｄａｔａｂａｈｎ＿ｆｌａｓｈ．ｈｔｍｌに記載されている。さらに別の例は、データライト社（Ｄａｔａｌｉｇｈｔ，Ｉｎｃ．）（ワシントン州、ボーデル在）提供のフラッシュＦＸプロ（ＦｌａｓｈＦＸ  Ｐｒｏ（登録商標））フラッシュ・メディアマネジャーである。この素子に関しては、２００６年１１月１６日付の「ＦｌａｓｈＦＸ  Ｐｒｏ  ３．１  信頼性のある製品を迅速に開発するための高性能フラッシュマネジャー（Ｈｉｇｈ  Ｐｅｒｆｏｒｍａｎｃｅ  Ｆｌａｓｈ  Ｍａｎａｇｅｒ  ｆｏｒ  Ｒａｐｉｄ  Ｄｅｖｅｌｏｐｍｅｎｔ  ｏｆ  Ｒｅｌｉａｂｌｅ  Ｐｒｏｄｕｃｔｓ）」中に記載されている。この文献は、本明細書中に参照されている。
【００６８】
メモリコントローラ２２が、従来型のメモリコントローラ機器を有する場合、これは、しばしばメモリ素子と交信するための所定のインタフェースおよびプロトコルを有する。これらのインタフェースおよびプロトコルは、通常、固定記憶能力を有するメモリ素子と交信するように設計されている。実施形態によっては、ＭＳＰ５２は、メモリコントローラ２２が用いるデータ構造、インタフェースおよびプロトコルを模倣し、したがって、システム２０の適応的な能力の特性とメモリコントローラ２２の固定能力での特性との間で仲介する。この方法の数例を、以下の図１４〜１７中で説明する。
【００６９】
これに代わる実施形態では、メモリ管理の機能のいくらかがＭＳＰ５２中に実装されている。このような実施形態では、ＭＳＰは、データ項目を記憶のために受け取り、固定能力動作を模倣することなく、データ項目に仕切りをつけ、これらを可変能力ページ中に記憶する。
【００７０】
ＭＳＰ５２とメモリ素子２４との間のインタフェース、および／または、ＭＳＰ５２とメモリコントローラ２２との間のインタフェースは、公知の標準またはプロトコルに準拠してもよい。例えば、これらのインタフェースの１つまたは双方は、オープンＮＡＮＤフラッシュインタフェース（ＯＮＦＩ）仕様に準拠してもよい。このＯＮＦＩ仕様は、２００６年１２月２８日付け「オープンＮＡＮＤフラッシュインタフェース仕様」改訂版１．０に定義され、これは、本明細書中に参照される。
メモリアレイ構造および歪みのメカニズム
【００７１】
図２は、本発明の１実施形態によるメモリセルアレイ２８を概略的に図示した図である。図２は、特定のアレイ構成で接続されたフラッシュメモリセルに言及しているが、本発明の原理は、その他の種類のメモリセル及びその他のアレイ構成にも同様に適用される。これらのセルタイプおよびアレイ構成の例は、上述の背景技術の項目で列挙した文献中に記載されている。
【００７２】
アレイ２８のメモリセル３２は、複数の行と複数の列とを有する格子状に配されている。各セル３２は、フローティングゲートである金属酸化物半導体（ＭＯＳ）トランジスタを有する。トランジスタのゲート、ソースおよびドレインに適切な電圧レベルをかけることにより、特定のセル中に特定の量の電荷（電子またはホール）が記憶されうる。セル中に記憶された値は、セルの閾値電圧を測定することにより読み取られ、この閾値電圧は、トランジスタを導通させるために、トランジスタのゲートにかけられる必要がある最小電圧として定義される。読み取られる閾値電圧は、セルに記憶された電荷に比例している。
【００７３】
図２の例となる構成では、各行中のトランジスタのゲートは、ワード線８０により接続されている。各列のトランジスタのソースはビット線８４により接続されている。実施形態によっては、ＮＯＲセル素子中などでは、ソースはビット線に直接接続されている。これに代わる実施形態では、ＮＡＮＤセル素子などは、ビット線は、フローティングゲートセルのストリングに接続されている。
【００７４】
通常Ｒ／Ｗユニット４０は、ゲート（すなわち、セルが接続されているワード線）に様々なレベルの電圧をかけ、かつ、セルのドレイン電流が特定の閾値を越えているか否か（すなわち、トランジスタが導通しているか否か）をチェックすることにより、特定のセル３２の閾値電圧を読み取る。ユニット４０は、通常は、セルが接続されているワード線に対して、一連の異なる電圧値をかけ、ドレイン電流が閾値を越える最低ゲート電圧レベルを決定する。通常、ユニット４０は、ある行からのセル群から同時に読み取る。
【００７５】
実施形態によっては、ユニット４０は、セルのビット線をある電圧レベルに予め帯電させることにより、ドレイン電流を測定する。ゲート電圧が所望の値に設定されると、ドレイン電流が、ビット線電圧を、セルを通して放電させる。ゲート電圧がかけられた数マイクロ秒後毎に、ユニット４０はビット線電圧を測定し、ビット線電圧を閾値電圧と比較する。実施形態によっては、各ビット線８４は各センス増幅器に接続され、この増幅器がビット線電流を増幅し、これを電圧に変換する。この電圧は、比較器を用いて閾値と比較される。
【００７６】
上述の電圧読み取り方法は、一例である。これに代えて、Ｒ／Ｗユニット４０はこれ以外の適切な方法を用いて、セル３２の閾値電圧を読み取ってもよい。例えば、ユニット４０は、１つ以上のアナログデジタル変換機（ＡＤＣ）を有し、これがビット線電圧をデジタルサンプルに変換してもよい。
【００７７】
実施形態によっては、ページ（行）全体に平行して書き込みおよび読み取りが行われる。セルの消去は、通常複数のページを含むブロック単位で行われる。通常のメモリ素子は、数十万ページを有することができ、各ページが数千セル（例えば、ページ毎に１６Ｋまたは３２Ｋセル）を有する。通常の消去ブロックは、ほぼ１２８ページであるが、これ以外のブロックサイズも使用可能である。
【００７８】
Ｒ／Ｗユニット４０によりデジタル化される電圧は、種々の種類の歪みを含みうるが、これは、アレイ２８中の様々な歪みメカニズムにより引き起こされる。ある歪みメカニズムは、セル内に記憶されている実際の電荷に影響を与え、またある歪みメカニズムは、検知された電圧に歪みを与える。例えば、アレイ中で隣接するセルとの間で電気的結合が行われることにより、特定のセル内での閾値電圧が修正されうる。この効果は、干渉雑音と称される。別の例として、電荷が、時間の経過にしたがって、セルから漏れることがありうる。この経時効果の結果、セルの閾値電圧は、当初書き込まれた値から、時間の経過にしたがって流れ出しうる。
【００７９】
別の種類の歪みとして、一般に、擾乱雑音と称される歪みが、アレイ中の特定のセルに対して読み取り、書き込みまたは消去動作を行うことにより引き起こされ、このセル以外で意図しないプログラミングや消去を引き起こしてしまう。さらに別の例として、特定のセルのソース・ドレイン電流は、隣接するセル、例えば、同じＮＡＮＤセルストリング中の別のセルを充電することにより、バックパターン依存と称される効果により影響を受ける。
歪みと能力とのトレードオフ
【００８０】
図３は、本発明の１実施形態によるメモリセルアレイ２８中の電圧分布を示したグラフである。図３は、メモリセルの達成可能な能力に対する、歪み効果を示すために用いられる。図３で電圧分布を示したメモリセルは、参照符号９０Ａ〜９０Ｄで示される４つの公称電圧を用いて２ビットの情報をそれぞれ記憶するように構成されている。
【００８１】
メモリセル中に２データビットを記憶するために、Ｒ／Ｗユニット４０は、４つの公称電圧レベルのうちの１つをセルに書き込む。この例では、電圧レベル９０Ａが「１１」ビット値に相当し、電圧レベル９０Ｂ〜９０Ｄが、「０１」「００」および「１０」ビット値にそれぞれ相当する。
【００８２】
Ｒ／Ｗユニットは、特定の公称電圧レベルを書き込むが、様々な歪みメカニズムがゆえに、および、セルのプログラミングおよび消去における正確性が限定されているがゆえに、セルの実際の閾値電圧レベルは、通常、公称電圧から隔たりがある。９２Ａ〜９２Ｄまでの曲線は、電圧分布の例である。曲線９２Ａは、「１１」ビット値を記憶するセル内の電圧分布を示し、曲線９２Ｂ、９２Ｃ、９２Ｄが、「０１」「００」および「１０」ビット値をそれぞれ記憶するセル内の電圧分布を示す。経時変化およびこれ以外の歪みメカニズムにより、読み取り時の電圧分布は、書き込み時の電圧分布とは異なりうることに注意されたい。
【００８３】
閾値電圧の全範囲は、３つの閾値９４Ａ〜９４Ｃを定義することにより、４つの区間９６Ａ〜９６Ｄに分けられる。メモリセルの閾値電圧レベルを読み取る際に、区間９６Ａ内に入る電圧レベルは、「１１」ビット値に相当するものと推測され、同様に、区間９６Ｂ〜９６Ｄ内に入る電圧レベルは、それぞれ「０１」「００」および「１０」ビット値に相当するものと推測される。したがって、区間９６Ａ〜９６Ｄは、しばしば決定区間と称され、閾値９４Ａ〜９４Ｃは、決定閾値と称される。
【００８４】
あるデータビット値に応答して書き込まれる電圧が、誤った決定区間内に入る場合、このセルから読み取られるデータは、書き込まれたデータとは異なり、読み取りエラーとなる。所定の歪みレベルに関して、エラー性能と、セルの達成可能な能力との間にはトレードオフが存在する。公称電圧レベルの数が増えると（すなわち、記憶密度が増えると）歪み効果に関する決定区間の大きさは小さくなる。その結果、読み取り電圧は、誤った決定区間に入りやすくなり、エラーの可能性が増える。所定のエラーの可能性に関して、歪みのレベルが高まるので、セルの達成可能な能力は落ちる。
メモリセルアレイに渡るセル能力の変化
【００８５】
上述したように、メモリセルの達成可能な能力（すなわち、セル内に信頼性をもってプログラム可能な情報ビットの数）は、特定のセルの歪みのレベルに依存している。多くの実際の例では、達成可能な能力は、セル毎でかなり異なる。
【００８６】
アレイ２８中の様々なセル３２は、しばしば、異なる歪み特性を有する。例えば、消去ブロックの外側縁に位置しているセルなどでは、隣接するセルが少ないので、隣接するセルからの交差結合雑音レベルが低い。別の例として、セルをプログラミングすることにより、過去にプログラムされたセルに対して干渉、雑音およびバックパターン依存エラーが引き起こされるので、後にプログラムされたセルは、先にプログラムされたセルに比べて、あまりエラーレベルがより低い。さらに別の例として、あるセンス増幅器またはＡＤＣは、とりわけ高い雑音レベルを引き起こし、特定のビット線に沿ったセルが、これ以外のビット線に沿ったセルよりも高い歪みを有するようになる。これ以外の歪み特性は、特定のセルまたはその環境に対して行われた、プログラミングおよび消去動作の履歴に依存する。これらの要因およびこれ以外の要因により、セル３２内の歪み、これにしたがってセルの達成可能な能力は、アレイ２８全体で、しばしば有意に異なる。
【００８７】
図４は、本発明の１実施形態によるメモリセルアレイ中の、セル能力分布を例示したグラフである。曲線１００は、異なるセルの達成可能な能力を示す。この例では、達成可能な能力は、セル毎に約４．２〜７．３ビットの間で変化している。曲線１０４は、所望のデータ保持期間にわたって信頼性のある性能を保証する、安全域を推測した上でのセルのプログラミングに用いることができる実際の記憶密度を示す。図面から明らかなように、記憶密度が、曲線１０４にしたがって各メモリセルに対して個別に割り当てられる場合、達成される平均的な密度は、セル毎で５ビットより高い値となる。
【００８８】
図４のアレイのメモリセルに、固定記憶密度が割り当てられるのであれば、セルのほとんどはより高い能力を達成可能であるにもかかわらず、全アレイは、セル毎に３ビットのみを有するとの仕様が定められねばならない。不良ブロック管理（ＢＢＭ）方法を用いている公知のメモリ素子では、セルのいくつかの群は不良であると認識することにより、このアレイは、セル毎４ビットのアレイとの仕様が定められうる。ＢＢＭ法は、例えば、２００４年１１月２９日付け、エス・ティー・マイクロエレクトロニクス（ＳＴＭｉｃｒｏｅｌｅｃｔｒｏｎｉｃｓ）（スイス、ジュネーブ在）によるアプリケーションノートＡＮ−１８１９「ＮＡＮＤフラッシュメモリ中の不良ブロック管理（Ｂａｄ  Ｂｌｏｃｋ  Ｍａｎａｇｅｍｅｎｔ  ｉｎ  ＮＡＮＤ  Ｆｌａｓｈ  Ｍｅｍｏｒｉｅｓ）」に記載されている。この文献は、本明細書中に参照されている。
【００８９】
本明細書中に記載された方法およびシステムでは、各セルまたはセル群中に、セルの達成可能な能力に合った密度でデータが記憶される。歪みレベルが低いセルには、より高い能力が与えられ、より強い歪みを受けているセルには、より低い能力が与えられる。本明細書中に記載された方法およびシステムでは、アレイの全耐用年数に渡って歪みおよび能力の変化を追跡し、これにしたがって様々なセル中にデータが記憶される密度を、適応的に修正する。
【００９０】
セルの能力を推定して、各セルまたはセル群に対してまとめて、記憶密度を割り当てることができる。より複雑な管理という犠牲を払って、セルの小さな群に対して、別々に密度を割り当てることにより、達成可能な能力に対してより繊細に記憶密度を合わせることができ、その逆も可能である。
【００９１】
図５は、本発明の１実施形態によるメモリセルアレイ１１０中のブロックおよびページ構造を示した図である。アレイ１１０は、複数の行１１４を有する。１つのメモリページは、同時に書き込まれる（プログラムされる）１群のメモリセルと定義される。場合によっては、各ページは、メモリセルのある行全体を有することもある。また別の場合には、各行が、数ページに分割されうる。データの消去は、アレイ１１０から、同時に複数のページ群を消去することにより行われるが、このページ群は消去ブロック１１８と称される。例えば、典型的な１ページは、１６、３８４個のセルを有し、典型的な消去ブロックは、１２８ページを有しうるが、これ以外のサイズを用いてもよい。実施形態によっては、各ページは数個のセクターに分割されうる（不図示）。
【００９２】
以下の説明では、基本的な能力および密度割り当て単位は、ページである。換言すれば、ある特定のページ中の全メモリセルは、同じ数の電圧レベルを用いて、および同じＥＣＣを用いてプログラムされる。異なるページには、電圧レベル数および／またはＥＣＣを適応させることにより、異なる密度が割り当てられうる。これに代わる実施形態では、能力の推定および密度割り当ては、任意の所望の細かさを有するセルの群を用いて、例えば、ページ毎、ブロック毎、セクター毎またはセル毎ベースでさえも行われうる。実施形態によっては、能力推定および密度割り当ては、特定のビット線８４またはワード線８０に接続されているセルに対して、共に行われうる。
適応密度割り当て方法
【００９３】
以下の説明では、本発明の実施形態による、メモリセル３２の群、例えばページの達成可能な能力を推定し、メモリ素子２４の記憶密度を適応的に修正するいくつかの方法について説明する。
【００９４】
実施形態によっては、ＭＳＰ５２中の管理ユニット７６は、記憶構成テーブルを保持する。このテーブルは、各ページについて、記憶構成と称されるパラメータセットを有する。ある特定のページの記憶構成は、そのページにいかにデータが記憶されるかを決定し、複数のパラメータを有しうるが、このパラメータは、例えば、そのページのメモリセル中にデータを記憶するために用いられる電圧レベルの数や、この電圧レベルの値、このページ中にデータを符号化するために用いられるＥＣＣ、および／またはこれ以外の適切なパラメータである。トレリスコード化変調（ＴＣＭ）またはこれ以外の符号化変調方法を用いる場合には、ＥＣＣと電圧レベルとの選択が組み合わされる。記憶構成に加えて、記憶構成テーブルは、推定された歪みレベルや、ページの推定された達成可能な能力などのパラメータも保持しうる。実施形態によっては、記憶構成の初期値を、製造時に記憶構成テーブル中に記憶することも可能である。
【００９５】
特定のページ中にデータを書き込む際に、ＭＳＰ５２は、そのページの記憶構成を尋ねる。ＭＳＰは、適切なＥＣＣを用いてデータを符号化し、符号化されたデータを、そのページの記憶構成により示される適切な数の電圧レベルにマッピングする。実施形態によっては、特定のページからデータを読み取る際に、ＭＳＰは、そのページの記憶構成により示されるレベルの数に応じて、Ｒ／Ｗユニット４０により生成されたサンプルをハードビット決定に変換する。その後、ＭＳＰは、記憶構成中に示されるＥＣＣに対してＥＣＣデコーダを構成し、ＥＣＣを復号化する。あるいは、例えば、デコーダがソフトデコーダを有する際には、ＭＳＰは、このソフトデコーダを用いて、Ｒ／Ｗユニット４０により生成されたサンプルを、ハードな決定を生成することなく、復号化する。
【００９６】
様々な数の電圧レベルを用いることにより、Ｒ／Ｗユニット４０の設計、例えば、比較器、ＡＤＣ、ＤＡＣ、センス増幅器および関連する回路などの設計に対して影響を与えることができる。実施形態によっては、Ｒ／Ｗユニットの感度および分解能は、用いられる最大電圧レベルの最大数に合うように設計されている。これに代わる実施形態では、ユニット４０は、あるページから閾値電圧を、分解能を高めて数回繰り返して（例えば、各回で異なる閾値を用いるなどして）読み取ることができる。管理ユニット７６は、所望の反復回数を決定し、特定のページ中の記憶に用いられるレベル数に基づいて、結果となる分解能を決定することができる。
【００９７】
図６は、本発明の１実施形態によるメモリ素子２４の記憶密度を、適応的に修正する方法を概略的に示したフローチャートである。この方法は、まず、ＭＳＰ５２がメモリセル３２中で歪みレベルを推定することから始まる（歪み推定工程１３０）。ＭＳＰ５２は、セルの歪みレベルを推定するために様々な方法を用いることができる。
【００９８】
例えば、特定の対象となるセル中で歪みを推定するために、ＭＳＰは、隣接するセルから電圧を読み取り、隣接するセルと対象となるセルとの間の交差結合比率を推定し、隣接するセルによる累積交差結合雑音を演算することができる。
【００９９】
実施形態によっては、ＭＳＰは、あるページにおける歪みを、そのページに対して行われたプログラミング動作の後に、推定することができる。下の図７は、書き込み後の推定方法の例である。あるいは、ＭＳＰは、そのページに対して行われた読み込み動作の後に、あるページにおける歪みを推定することができる。下の図８は、読み込み後の推定方法の例である。プログラムされたデータの信頼性を検証することによって、例えば、エラーのない記憶が達成されるまで、より強くなる誤り訂正符号をかけることによって、能力を推定することも可能である。このような方法を、下の図９で説明する。
【０１００】
さらに、これに代えて、歪みレベルは、そのページに対して過去に行われたプログラミングおよび消去履歴に基づいて推定されることも可能である。このプログラミングおよび消去履歴は、数々の方法で歪みレベルに対して影響を与えうる。一般に、より古いセル（すなわち、最近、多くのプログラミングおよび消去動作が行われたセル）は、より新しいセル（より少ない数のプログラミングおよび消去動作が行われたセル）よりも、電流漏れレベルが高いと考えられる。したがって、歪みは、過去のプログラミングおよび消去動作から経過した時間によっても影響を受ける。プログラミングおよび消去動作の履歴に基づくセル能力の推定方法の例は、以下の図１１で示される。
【０１０１】
ＭＳＰ５２は、ページ能力を推定し、各ページで用いられる記憶構成を決定する（記憶構成演算工程１３４）。ＭＳＰは、推定された歪みに基づいて、達成可能なページ能力を推定し、適切な記憶構成（例えば、電圧レベルの数およびＥＣＣ）を選択するために、任意の適切な方法を用いることができる。
【０１０２】
通常、ＭＳＰは、推定された能力と設定した記憶密度との間で、ある安全域を残している。この安全域は、性能余裕とも称されるが、これは、所望のデータ保持期間に渡って、信頼できる動作を確保するために設定される。適切な記憶構成を決定するための方法の例をいくつか、後に説明する。ＭＳＰ５２のユニット７６は、記憶構成テーブルを、新しく演算した記憶構成を用いて更新する。ＭＳＰ５２は、この更新した記憶構成を用いて、アレイ２８のページに、続くデータを書き込む（書き込み工程１３８）。
Ｐ＆Ｖにより支援された密度割り当て
【０１０３】
図７は、本発明の別の１実施形態による、プログラミングおよび検証（Ｐ＆Ｖ）プロセスに従って、メモリ素子２４の記憶密度を適応的に修正する方法に関して概略的に示したフローチャートである。
【０１０４】
Ｐ＆Ｖプロセスは、メモリセルをプログラムするために一般的に用いられている。典型的なＰ＆Ｖプロセスにおいては、セルは、電圧レベルがパルス毎に大きくなる一連の電圧パルスをかけることによりプログラムされる。プログラムされた電圧レベルは、各パルス後に読み取られ（「検証され」）、これが所望のレベルに達するまで、あるいは動作が時間切れするまで繰り返して続けられる。Ｐ＆Ｖプロセスは、例えば、Ｊｕｎｇ他による、１９９６年１１月号の、ＩＥＥＥ半導体回路ジャーナル（１１:３１）、１５７５〜１５８３頁「大容量記憶アプリケーション用の、１１７ｍｍ２かつ３．３Ｖのみの１２８ＭｂマルチレベルＮＡＮＤフラッシュメモリ（Ａ  １１７ｍｍ２  ３．３Ｖ  Ｏｎｌｙ１２８Ｍｂ  Ｍｕｌｔｉｌｅｖｅｌ  ＮＡＮＤ  Ｆｌａｓｈ  Ｍｅｍｏｒｙ  ｆｏｒ  Ｍａｓｓ  Ｓｔｏｒａｇｅ  Ａｐｐｌｉｃａｔｉｏｎｓ）」、および、Ｔａｋｅｕｃｈｉ他による、１９９８年８月号のＩＥＥＥ半導体回路ジャーナル（３３：８）１２２８〜１２３８ページ「高速プログラミング・マルチレベルＮＡＮＤフラッシュメモリ用のマルチページセル構造（Ａ  Ｍｕｌｔｉｐａｇｅ  Ｃｅｌｌ  Ａｒｃｈｉｔｅｃｔｕｒｅ  ｆｏｒ  Ｈｉｇｈ−Ｓｐｅｅｄ  Ｐｒｏｇｒａｍｍｉｎｇ  Ｍｕｌｔｉｌｅｖｅｌ  ＮＡＮＤ  Ｆｌａｓｈ  Ｍｅｍｏｒｉｅｓ）」に記載されている。これらの文献は双方とも、本明細書中に参照されている。
【０１０５】
図７で示す方法は、システム２０の通常の動作と組み合わせることができる。この動作モードでは、特定のページ群（例えば、１ページまたは数個のＮＡＮＤストリングを有するＮＡＮＤメモリブロック）がプログラムされた後に、その歪みレベルが推定され、記憶構成が更新され、次のプログラミング動作において用いられる。この方法は、ＭＳＰ５２が、Ｐ＆Ｖプロセスを用いて特定のページ群をプログラミングすることから始まる（Ｐ＆Ｖプログラミング工程１５０）。反復された最後の回のＰ＆Ｖに続いて、ＭＳＰは、歪みの統計値を演算する（Ｐ＆Ｖ後の演算工程１５４）。最後の回のＰ＆Ｖは、本質的に、そのページ中の様々なセルのプログラムされた電圧レベルを読み取ることを含む。ＭＳＰは、これらの読み取られた電圧レベルを用いて、このページ中の歪みレベルを演算してもよい。
【０１０６】
プログラミング検証に用いられる読み取り分解能が、信頼性のある歪み推定を行うのに十分ではない場合もある。このような場合、ＭＳＰは、検証動作の読み取り分解能よりも高い分解能で、プログラムされたページ群の電圧レベルを読み取ることができる。
【０１０７】
ＭＳＰ５２は、ページの推定された達成可能な能力を更新する（Ｐ＆Ｖ後更新工程１５８）。ＭＳＰは、演算された歪みレベルを用いて、ページの記憶構成を更新し、すなわち、適切な電圧レベルの数とＥＣＣとを更新する。ＭＳＰは、更新された構成を、記憶構成テーブル中に記憶し、そのページの次のプログラミング動作の際に用いる。
【０１０８】
実施形態によっては、ＭＳＰ５２は、プログラミング後にページ密度を高めてみてもよい。このような実施形態では、ＭＳＰは、プログラムされたデータが十分信頼性があるものか否か（すなわち、余裕エラーの可能性が低いと保証するのに十分高い余裕であることを、工程１５４で演算された歪み統計値が示しているか否か）を決定する。十分な性能余裕が存在する場合、ＭＳＰは、電圧レベルの数および／または符号レートを大きくすることにより、そのページの記憶構成を修正して、より高い密度を反映させる。
【０１０９】
ページの記憶構成が、Ｐ＆Ｖプロセスに関連して決定されると、Ｐ＆Ｖプロセスのパラメータとそのページの記憶構成との間で、様々なトレードオフが行われうる。Ｐ＆Ｖプロセスにおいては、プログラミング速度は、連続して繰り返されるＰ＆Ｖ間の電圧増分または電圧ステップサイズを変えることにより、精度と引き換えて得ることができる。Ｐ＆Ｖステップサイズを大きくすることにより、プログラミング精度を犠牲にして、反復を少なくしてページのプログラミングを行うことができる。またその逆もしかりである。このようなトレードオフは、例えば、Ｓｕｈ他による、１９９５年１１月号の、ＩＥＥＥ半導体回路ジャーナル第３０巻、１１号、１１４９〜１１５６頁、「増分ステップパルスプログラミング枠組みを用いた３．３Ｖ、３２ＭｂＮＡＮＤフラッシュメモリ（Ａ  ３．３Ｖ  ３２Ｍｂ  ＮＡＮＤ  Ｆｌａｓｈ  Ｍｅｍｏｒｙ  ｗｉｔｈ  Ｉｎｃｒｅｍｅｎｔａｌ  Ｓｔｅｐ  Ｐｕｌｓｅ  Ｐｒｏｇｒａｍｍｉｎｇ  Ｓｃｈｅｍｅ）」中に記載されている。この文献は、本明細書中に参照されている。
【０１１０】
実施形態によっては、ＭＳＰ５２は、各ページ用に特定のＰ＆Ｖステップサイズ値を設定する。各Ｐ＆Ｖステップサイズは、記憶構成テーブル中でそのページの記憶構成の一部分として記憶される。特定のページをプログラムする際、ＭＳＰはその記憶構成を尋ね、適切なＰ＆Ｖステップサイズを用いる。
【０１１１】
このＰ＆Ｖステップサイズ、電圧レベルの数およびＥＣＣは、様々な性能トレードオフを提供するように選択されうる。例えば、Ｐ＆Ｖステップサイズがより大きい場合、エラーの可能性が高くなるという点を犠牲にして、迅速なプログラミングが可能になる。別の例として、電圧レベルを低く場合も、エラーの可能性が高くなる点を犠牲にして、迅速なプログラミングが可能になる。同様に雑音レベル、干渉レベルおよび磨耗レベルが低くすることができる。エラーの可能性を低くするのは、記憶密度が低くなる点を犠牲にして、電圧レベルの数を少なくすることにより、または、より強いＥＣＣを導入することにより、行うことができる。ＥＣＣの選択は、ＭＳＰの複雑さに対して影響を与える。したがって、記憶密度および／またはエラー性能は、プログラミング速度と引き換えに得ることができる。
決定に向けた密度割り当て
【０１１２】
図８は、本発明の別の１実施形態による、メモリ素子２４の記憶密度を、読み取り動作後に適応的に修正する方法を概略的に示したフローチャートである。
【０１１３】
この方法は、ＭＳＰ５２が、素子２４から特定のメモリページを読み取ることから始まる（ページ読み取り工程１７０）。ＭＳＰは、エラーが存在しないと想定して、このページ内の歪みレベルを演算する（読み取り後演算工程１７４）。通常、ＭＳＰは、各ソフトサンプルと対応するハード決定との間の差を演算する。検出エラーはないと想定されているので、差は歪みに起因する。ハード決定がＥＣＣデコーダにより発生させられうることに注意されたい。この歪みレベルは、ソフトサンプルと対応するハードな決定との間の差のスカラー関数の合計（例えば、差の二乗の合計）を演算することにより想定されうる。この歪みは、差がある特定の閾値を越すセルの数を勘定することによっても推定されうる。これらの閾値が、ハード決定を得るためにセルを読み取る際に用いられる閾値レベルである場合、この歪みの推定は、ＥＣＣにより補正されるエラーの数を含む。
【０１１４】
ＭＳＰは、ページの推定される達成可能な能力を更新する（読み込み後更新工程１７８）。ＭＳＰは、演算された歪みレベルを用いて、記憶構成テーブル中のページの記憶構成を更新し、これをそのページに対する次のプログラミング動作で用いる。図８の方法は、システム２０の通常の動作と組み合わせることもできる。この動作のモードでは、データを読み込んだ後に、特定のページをプログラムし、その歪みレベルを推定し、その記憶密度を、次のプログラミング動作で用いるために更新する。
【０１１５】
実施形態によっては、読み取り動作の速度を遅くしないように、ＭＳＰは、システムがアイドルである期間中に、この歪み推定タスクを実行することができる。
【０１１６】
実施形態によっては、ＭＳＰは歪みレベルを盲目的に推定することができる。すなわち、ハード決定がエラーを含まないことを想定せずに、推定を行うことができる。例えば、セルに書き込まれた公称電圧レベルが１Ｖおよび３Ｖである際、多くの読み取り電圧が２Ｖ付近にあれば、ＭＳＰは、データを検出しなくても、歪みレベルは高いとの結論を出してもよい。
プログラムされたデータの信頼性に基づいて、密度を適応させる
【０１１７】
実施形態によっては、ＭＳＰ５２は、あるページに書き込まれたデータの信頼性を評価することによって、そのページの達成可能な能力を推定する。場合によっては、ＭＳＰは、セルを消去することなく、あるページの記憶構成を適応させる。これらの場合では、そのページを消去することなく、続くプログラミング周期において、既存のページ中に追加のデータを書き込むことができる。密度の変更は、電圧レベルの数を修正しおよび／またはＥＣＣを修正することにより、達成される。
【０１１８】
図９は、本発明の１実施形態によるメモリ素子２４の記憶密度を、適応的に修正する方法の例を概略的に示したフローチャートである。この例では、データのプログラミングは、体系的なＥＣＣ（すなわち、符号化されていないビットを修正することなく、符号化されていない情報ビットに基づいて冗長ビットを加えるＥＣＣ）を用いて行われる。記憶密度およびエラー性能は、冗長ビットの数を適応させることにより修正される。
【０１１９】
この方法は、ＭＳＰ５２が、符号化なしに特定のページをプログラミングすることから始まる（符号化なしのプログラミング工程１９０）。必要というわけではないが通常は、電圧レベルの数は、記憶密度が所定の性能余裕を少し越えるように、すなわち、そのページが少しエラーを含みうるように、選択される。
【０１２０】
ＭＳＰは、そのページからデータを読み取り、随意的に復号化し（復号化工程１９４）、メモリセル中の歪みレベルをチェックする（歪みレベルチェック工程１９８）。現在そのページに割り当てられている記憶構成に対して、歪みが高すぎる、低すぎる、あるいは、容認可能であるか否かを決定するために、ＭＳＰは様々な方法および基準を用いうる。例えば、ＭＳＰは、復号化されたページがＥＣＣにより補正されていないエラーを含むか否かをチェックしてもよい。
【０１２１】
あるいは、ＭＳＰは、そのページのメモリセルから読まれた電圧セットと、ＥＣＣの符号語との間の距離メトリックの値を求めることも可能である。ＭＳＰは、読み取られた電圧から正確な符号語（すなわち、実際にセルに書き込まれる符号語）までの距離を、他の符号語からの距離と比較してもよい。このために、ハミング距離またはユークリッド距離などの適切な距離を用いることができる。
【０１２２】
ＭＳＰは、工程１９８で評価した歪みに基づいて、ページに割り当てる記憶構成を適応させる。歪みレベルが容認可能であれば、ＭＳＰは、現在の記憶構成を維持し、この方法は終了する（終了工程２０２）。歪みレベルが高すぎる場合は、ＭＳＰは、ＥＣＣの冗長レベルを高くする（すなわち、冗長ビットを加える）（冗長増大工程２０４）。続いて、ページの密度を小さくする。ＭＳＰは、記憶構成テーブルをこれに応じて更新する（構成更新工程２０６）。そしてこの方法は、一巡して上述の工程１９４に戻る。歪みレベルが低すぎる場合（すなわち、性能が容認不可能なほど劣化することなく、記憶密度を上げることができる場合）は、ＭＳＰは、ＥＣＣの冗長度を低くする（冗長低減工程２０８）。ＭＳＰは、工程２０６で記憶構成テーブルを更新する。そしてこの方法は、一巡して上述の工程１９４に戻る。この方法は、現在の歪みレベルに合う冗長ビットの適切な数に収束するまで、繰り返して続けられる。
【０１２３】
プログラムされたデータの信頼性をチェックし、必要であれば、冗長ビットの数を増やすことは、素子２４の耐用年数に渡って、例えば、上の図８の方法を用いて、時々行われる。歪みレベルは時間の経過に応じて変化するので、記憶構成は、それにしたがって適応させられ、所望のエラー性能を維持する。
【０１２４】
実施形態によっては、記憶構成は、図９の方法を用いて、セルを消去することなく適応させられうる。例えば、ＥＣＣが体系的なコードを有するとき、冗長ビットは、符号化されていないビットとは別に記憶されうる。符号化されていないビットを記憶するセルを消去または再プログラミングすることなく、冗長ビット数を増加または減少することができる。
【０１２５】
これに代わる技術、すなわち、セルを消去することなくあるいは追加のセルをプログラミングすることなく、セル群（例えば、あるページ）の記憶密度を増やすこれに代わる技術は、すでにプログラミングされたセルに対して追加のプログラミング動作を実行することが含まれる。例えば、セルがレベル０．．．（２ｎ−１）にプログラミングされうるメモリセルアレイを考えると、レベルｉに対応する記憶される電荷レベルは、レベルｉ＋１に関連する電荷レベルよりも小さくなる。
【０１２６】
実施形態によっては、ｍ個のメモリセルを、最初に偶数順のレベル、すなわち、レベル０，２，．．．２ｎ−２のレベルにプログラムする。セル内の歪みレベルを推定した後に、ＭＳＰは、バイナリーエンコーダを用いて情報の更なるビットを符号化し、このバイナリーエンコーダがｍ個の符号化ビットを生成する。エンコーダの符号レートは、推定された歪みに依存している。ＭＳＰは、（消去することなく）符号化されたビットが「１」であるセルを、奇数順レベル、すなわちレベル１，３，．．．２ｎ−１に再プログラムする。例えば、新しいセルレベルは、ｙ（ｍ）＝ｘ（ｍ）＋ｂ（ｍ）として書くことができ、ここで、ｙ（ｍ）はセルｍの新しいレベルを表し、ｘ（ｍ）はセルの元のレベルを表し、ｂ（ｍ）は、ｍ番目に符号化されたビットの値（「０」または「１」）を表す。この枠組みは、推定された歪みに応答して適応された、適応レートトレリスコード化変調（ＴＣＭ）としてみなされうる。
記憶構成の有限セット
【０１２７】
実施形態によっては、ＭＳＰ５２は、各ページに対して、所定の記憶構成セットから、適切な記憶構成（例えば、レベルの数およびＥＣＣの枠組み）を選択する。記憶構成の有限セットを用いることにより、ＭＳＰの複雑さを低減し、とりわけ、ユニット７６中の記憶構成テーブルを単純化する。
【０１２８】
図１０は、本発明の１実施形態による、記憶構成の有限セットを用いて、メモリ素子２４の記憶密度を適応的に修正する方法を概略的に示したフローチャートである。この方法は、記憶構成セットを予設定することから始まる（予設定工程２１０）。各記憶構成は、特定の電圧レベルの数と、特定のＥＣＣの枠組みとを特定する。これにより、各記憶構成は、ある記憶密度を、すなわち、あるセル毎のビット値を規定する。
【０１２９】
セル毎のビット数は、整数である必要はないことに注意されたい。これは、（１）電圧レベルへのデータビットのマッピングは、セル群に対して共に行われうるのであり、個々のセルに対して行われるのではないため、および、（２）電圧レベルの数は２の累乗でなくてもよいためである。分数のセル毎のビットの記憶密度を実装する方法の一例を、以下に説明する。下記の表は、１０個の記憶構成のセットの例を示す。
【０１３０】
【表１】
2009537055.tif 000003
【０１３１】
記憶構成０は、不良ページを示し、これは用いられない。構成１〜９は、セル毎ビット数が１〜４．５の間である、異なる９個の密度レベルを示す。これに代わる実施形態では、任意のこれ以外の記憶構成のセットを用いることができる。
通常、管理ユニット７６中の記憶構成テーブルは、予設定されたセットから選ばれたあるデフォルトの記憶構成により初期化される。あるページを書き込む際に、ＭＳＰ５２は、このページの記憶構成により特定されたＥＣＣおよびレベルの数を用いて、データを符号化し、マッピングする（ページプログラミング工程２１４）。
【０１３２】
プログラミング動作または読み取り動作に続いて、ＭＳＰは、そのページの性能余裕を推定する（余裕推定工程２１８）。ＭＳＰは、上述のように、そのページから読み取った電圧内の歪みを測定することによって、または、ページから読み取ったデータの信頼性を評価することによって、性能余裕を推定してもよい。この余裕は、信号対雑音比（ＳＮＲ）で表してもよいし、これ以外の測定基準を用いて表してもよい。
【０１３３】
ＭＳＰは、そのページ用に特定された記憶構成が、そのページの現在の能力と合うか否か、または、記憶密度を増やすまたは減らすべきか否かを決めるために性能余裕を使用している。例えば、ＭＳＰは推定された余裕を、閾値と比較してもよい。
【０１３４】
推定された余裕が、記憶構成が修正されるべきであると示すと、ＭＳＰは、所定のセットから異なる構成を選択する（構成更新工程２２２）。ＭＳＰは、記憶構成テーブル中で構成選択を更新し、このページに対する続くプログラミング動作は、更新された記憶構成を用いて行われる
【０１３５】
実施形態によっては、ＭＳＰ５２は、ＥＣＣ符号化の前に、特定のページ中に記憶されるべきデータを圧縮する。当該分野において公知のいずれの圧縮方法をも、これが無損失であれ、損失の多い方法であれ、この目的のために用いることができる。この圧縮とＥＣＣ符号化との組み合わせにより、異なる記憶密度を、すなわち、異なるセル毎のビット値を生成できる。
【０１３６】
実施形態によっては、各ページに記憶される全ビット数（Ｍと表す）は、異なる記憶構成中でも一定であり、正味の情報ビットの数（Ｋで表す）は可変である。例えば、あるページが４、２２４メモリセルを有すると想定し、これらのセルが、１６個の電圧レベルを用いてプログラムされる（すなわち、各セルが４ビットを記憶する）と想定する。１ページに記憶される全ビット数は、４．２２４×４＝１６、８９６ビットである。７／８のＥＣＣ符号レートを用いると、このページ中に記憶可能な正味の情報ビット数は、１４，７８４ビットである。より低い１３／１６のＥＣＣ符号レートを用いると、このページ中に記憶可能な正味の情報ビット数は、１３、７２８ビットである。しかし、二番目の記憶構成の方が、ＥＣＣがより強いので、より頑健である。
【０１３７】
あるいは、メモリセル毎の電圧レベルの数を、記憶構成毎に変更することも可能である。すなわち、ＫもＭも変更される。例えば、以下の表で、４、２２４セルページのアレイ中で用いられる３つの記憶構成を示す。
【０１３８】
【表２】
2009537055.tif 000004
【０１３９】
実施形態によっては、各ページを、一定の正味の情報ビット数を持つセクターに分割する。ページ毎のセクター数が可変である。例えば、以下の表に、４、２２４セルページのアレイ中で用いられる３つの記憶構成を示す。この例では、各セクターは、２／３のレートのＥＣＣを用いて符号化された、正味１、４１２ビットの情報ビットを有し、２、１１８の記憶されるビットを生成する。
【０１４０】
【表３】
2009537055.tif 000005
プログラム／消去履歴を用いた能力推定
上述したように、特定のメモリセル３２中の歪みレベルは、セルが経験したプログラミングおよび消去動作の履歴に依存しうる。したがって、ＭＳＰ５２は、通常、より古いセルに対して、より低い記憶密度を有する記憶構成を割り当て、逆も行う。
【０１４１】
歪みが、セルの漏れ電流により引き起こされる場合もある。漏れ電流の効果は、例えば、ＩＥＥＥ国際信頼性物理学年次シンポジウム（カリフォルニア州、サンノゼ、２００６年３月開催）、２９〜３５頁中、Ｍｉｅｌｋｅ他による「フラッシュメモリの配分周期における回復効果（Ｒｅｃｏｖｅｒｙ  Ｅｆｆｅｃｔｓ  ｉｎ  ｔｈｅ  Ｄｉｓｔｒｉｂｕｔｅｄ  Ｃｙｃｌｉｎｇ  ｏｆ  Ｆｌａｓｈ  Ｍｅｍｏｒｉｅｓ）」に記載されている。この文献は、本明細書中に参照されている。この論文によれば、プログラミングおよび消去周期により引き起こされる誘電損失は、周期間の遅延の間に部分的に回復する。この論文は、電荷捕獲を行うデータ保持メカニズムに対するこれらの遅延の効果の特性を記述している。したがって、漏れ電流に関連する歪みのレベルは、過去のプログラミングおよび消去動作が行われたときから経過した時間の長さに依存している。これ以外のタイプの歪みは、電荷捕獲、したがって、最近のプログラミングおよび消去動作により影響を受けうる。例えば、雑音エラーのレベルは、電荷捕獲の数が多いメモリセル中で高まりうる。
【０１４２】
図１１は、本発明の１実施形態による、プログラミングおよび消去動作の履歴に基づいて、メモリ素子２４の記憶密度を適応的に修正する方法を概略的に示したフローチャートである。この方法は、アレイ２８の様々なメモリセル３２に対して、プログラミングおよび消去動作が行われた時間を、ＭＳＰ５２の管理ユニット７６が記録することから始まる。ＭＳＰは、プログラミングおよび消去動作の時間にタグをつけるために、現在時間を追跡するために動作し続けるカウンターを維持しうる。あるいは、時間タグは、メモリコントローラ２２により提供される場合もある。
【０１４３】
通常、プログラミング動作はページ毎に行われ、消去動作は全消去ブロックに対して行われるので、ＭＳＰは、プログラミングおよび消去時間をページ毎に記録することができる。この情報は、各ページに対する記憶構成の一部分として、記憶構成テーブル中に記憶されうる。消去時間は、ページ毎または消去ブロック毎で記録されうる。
ＭＳＰ５２は、特定のページ中の漏れ電流を推定する（漏れ推定工程２３４）。ＭＳＰは、記録されたプログラミングおよび消去時間に基づいて、漏れ電流を推定するために、様々な推定器および基準を用いることができる。例えば、漏れ電流は、以下の関数により推定されうる。
【０１４４】
【数１】
2009537055.tif 000006
ここで、ＰｒｏｇｒａｍＴｉｍｅ（ｎ）は、そのページに対して行われたｎ番目のプログラミング動作の時間（上述の工程２３０で記録された時間）を表す。ＣｕｒｒｅｎｔＴｉｍｅは、推定が演算された時間を表す。は、ａ０・・・Ｋは、重み付け係数を表し、通常、より最近に行われたプログラミング動作に対して、より高い重み付けが行われる。ｉ＞１で、ａｉ＝０の場合、推定は、最新のプログラミング動作に基づいてのみ行われる。
【０１４５】
これに代わる実施形態では、漏れ電流は、ある期間（例えば、最新の１日、１時間または１分）内に行われた消去動作の数に基づいて推定されうる。さらに、あるいは、漏れ電流は、以下のような関数を用いて反復的に推定することも可能である。
【０１４６】
【数２】
2009537055.tif 000007
ここで、０＜δ＜１は、重み付け係数または「忘却因子」を表す。推定を繰り返すことにより、ＭＳＰ５２は、複数の時間タグを記憶するのではなく、最新の２つのプログラミング動作の時間と過去の推定の値のみを記録することができる。
【０１４７】
これに代えて、ＭＳＰは、記録されたプログラミングおよび消去動作の履歴に基づいて、漏れ電流を推定する、これ以外の任意の推定方法を用いることができる。
【０１４８】
実施形態によっては、ＭＳＰは、他の因子に基づいてセル歪みを推定する（補完的な歪み推定工程２３８）。この歪み推定では、測定した隣接するセルからの交差結合比率に基づいて、またはその他の適切なプロセスに基づいて歪み推定を行うことができる。
ＭＳＰは、上の工程２３４で行った漏れ電流推定を、上の工程２３８で行った歪み推定と組み合わせ、そのページの能力を推定する（能力推定工程２４２）。例えば、能力は、以下の関数を用いて推定可能である。
【０１４９】
【数３】
2009537055.tif 000008
ここで、Ｃ０は、基本となる能力値で、βおよびγは、漏れ電流および歪みの推定に所望の相対的な重み付けを当てる重み付け係数である。実施形態によっては、工程２３８は省略し、ＭＳＰは、γ＝０に設定するなどして、漏れ電流の推定のみに基づいて、ページ能力を推定してもよい。
【０１５０】
ＭＳＰ５２は、更新したページ能力値により記憶構成テーブルを更新する。ＭＳＰは、任意の適切な方法、例えば上述したような方法を用いて、このページに関するページの密度と、適切な記憶構成（例えば、ＥＣＣおよび電圧レベルの数）とを決めてもよい。
分数のセル毎ビット値を用いた密度の割り当て
【０１５１】
実施形態によっては、ＭＳＰ５２は、非整数のセル毎ビット数を有する記憶構成を定義することができる。例えば、２の累乗ではない電圧レベルの数を用いて、記憶密度を増大させ、セルの達成可能な能力に近づくことができるという場合もある。セル毎ビット数が整数ではない場合、ＭＳＰ５２は、様々な方法を用いて、データビットを電圧レベルにマッピングすることができる。
【０１５２】
Ｋが、特定のページ中のデータを記憶するために用いられる電圧レベルの数を示すとする。Ｋは、２の累乗である必要はなく、したがって、記憶密度は整数である必要はない。Ｋ個のレベルで表すことができる最大ビット数は、ｎｏｐｔ＝ｌｏｇ２（Ｋ）で示される。これは、一般には非整数値である。この最適な記憶密度に達するために、無限の数のデータビットが、無限の数のメモリセル中に記憶される必要があり、プロセスは、無限の遅延を含みうる。しかし、現実の場面では、最適の記憶密度からの偏差は、処理遅延（すなわち、データを記憶するために用いられるセルの数）と引き換えることができる。
【０１５３】
ｎｃは、データを記憶するために用いられるメモリセルの数を表し、ｎｔｂが、ｎｃセル中に記憶される全ビット数を表し、ｎｃおよびｎｔｂが、共に整数であるとする。記憶密度は、ｎｂｐｃ＝ｎｔｂ／ｎｃ・ｎｔｂで与えられ、ｎｇａｐ＝ｎｂｐｃ−ｎｏｐｔで与えられる最適密度からの偏差が、負ではなくかつ最小限になるように、ｎｃが選択されるべきである。ｎｃを大きくすることにより、ｎｂｐｃがｎｏｐｔに近づくが、マッピングが複雑になり、処理遅延が増える。
【０１５４】
ｎｃおよびｎｔｂの所望の値を選択後、ＭＳＰ５２は、ｎｔｂデータビットの各群を、ｎｃ電圧にマッピングし、続いて、これらがｎｃ個のメモリセルに書き込まれる。各ｎｔｂ電圧は、Ｋ個の可能なレベルのうちの１つをとる。ｎｔｂデータビットは、ｂ１，．．．，ｂｎｔｂ∈｛０，１｝で表される。
【０１５５】
実施形態によっては、ＭＳＰ５２は、底がＫのビットで表されるｎｔｂビットのバイナリー数字を表すことにより、ｎｔｂデータビットを、ｎｃ個の電圧にマッピングする。換言すれば、ＭＳＰ５２は、ｎｃの係数を、ｋ１，．．．，ｋｎｃ∈｛０，．．．，Ｋ−１｝に決定し、以下のようになる。
【０１５６】
【数４】
2009537055.tif 000009
【０１５７】
次に、ＭＳＰ５２は、ｎｃ個のメモリセルを、ｋ１，．．．，ｋｎｃの値でプログラムする。
【０１５８】
例えば、Ｋ＝１１とする。この場合の最適な記憶密度は、ｎｏｐｔ＝ｌｏｇ２（１１）＝３．４５９４である。データがｎｃ＝３個のセルの群に書き込まれるとすると、最適の密度からの偏差は、ｎｇａｐ＝０．１２６１であり，ｎｔｂ＝１０である。一連の１０個のデータビットは、３つのメモリセルにマッピングされ、各々が１１の電圧レベルを使用している。例えば、「１１０１１００１００」の一連のビットは、ｋ１＝７、ｋ２＝１およびｋ３＝１０である。
可変能力メモリ素子中に、データを記憶および消去する。
【０１５９】
図１２は、本発明の１実施形態による、可変能力メモリ素子中にデータを記憶する方法を概略的に示したフローチャートである。この方法は、ＭＳＰ５２が、メモリコントローラ２２からデータ項目を記憶するために受け取るところから始まる（入力工程２５０）。
【０１６０】
実施形態によっては、メモリコントローラは、データ項目を記憶するための、ある信頼性要件を特定する。メモリコントローラは、要求される記憶信頼性を特定するための任意の適切な方法または形態を用いることができるが、例えば、最大許容エラーの可能性を明示的に特定することによって、または、信頼性レベルを所定のレベルセットから選択することによってこれを行う。必要ではないが、しばしば行われるのは、信頼性要件は、データ項目を生成した応用のエラー許容性と関連している。例えば、オーディオまたはビデオ媒体を含むファイルは、比較的低い許容性レベルで記憶可能である。一方、プログラムコードを含むファイルや、オペレーティングシステムのデータファイルは、通常、より高い信頼性レベルで特定される。
【０１６１】
これに加えてまたはこれに代えて、メモリコントローラは、データ項目を記憶するためのある保持要件を特定してもよい。この保持要件とは、データ項目が記憶されると予測される期間を示している。例えば、一時的なオペレーティングシステムファイルは、より低い保持期間で特定されうる。
【０１６２】
ＭＳＰ５２は、アレイ２８中であるデータ項目を記憶する１つまたは複数のページセットを選択する（ページ選択工程２５４）。通常、管理ユニット７６は、各メモリページの状態を追跡する。各ページは、「消去された」状態（すなわち、プログラミング用に利用可能な状態）、「情報を含む」状態、「不良」状態または「消去準備完了」状態を有しうる。上述したように、ユニット７６は、各ページ中に用いられうる、そのページで記憶されうるデータ量を規定する記憶構成（例えば、電圧レベルの数およびＥＣＣ）をも有する。
【０１６３】
ユニット７６は、そのデータ項目を記憶するのに十分な総計サイズを有する「消去された」ページセットを１つまたは複数選択する。実施形態によっては、ユニット７６は、順次「消去された」ページを走査し、総計サイズがそのデータ項目を記憶するのに十分となるまでページを選択する。あるいは、ユニット７６は、ページを選択する様々な方策および基準を適用することもできる。
【０１６４】
例えば、ユニット７６は、アレイ２８に渡っての磨耗の平滑化をよりよく行うために、比較的プログラミングおよび消去周期の経験数が少ないページを選択してもよい、別の例として、ユニット７６は、使用されないメモリセルの数を最小限にするために、総計サイズが、データ項目のサイズに最もよく合う（すなわち、そのデータ項目のサイズを、できる限り少なく上回る）ページセットを探してもよい。さらに別の例として、ユニット７６は、最小数のページにデータ項目を分割し、プログラミング時間、磨耗コストおよび管理コストを低減するために、高能力のページに優先度を与えてもよい。あるいは、ユニット７６は、記憶用のページを選択する際に、これ以外の適切な基準または基準の組み合わせを用いてもよい。
【０１６５】
実施形態によっては、ユニット７６は、そのデータ項目用に特定された信頼性要件および／または保持要件に基づいて、ページの記憶構成（したがって、記憶密度）を修正する。例えば、データ項目が比較的低い信頼性要件および／または保持要件を有する場合、ユニット７６は、より高い歪みを有するセル中に、および／または、セルの歪みレベルに対してより高い密度で項目を記憶してもよい。
【０１６６】
ＭＳＰ５２は、選択したページにデータ項目を記憶する（記憶工程２５８）。ユニット７６は、記憶用に用いられたページの状態を「情報を含む」状態に設定し、必要に応じてそのページの記憶構成を更新する。ユニット７６は、データ項目を記憶するために用いられたページの識別も記録し、その結果、これらのページは、システム２０が後にデータ項目を取り出すよう要求した際に、アドレスされうる。
【０１６７】
実施形態によっては、システム２０は、メモリコントローラ２２から、利用可能なメモリサイズを報告するように要求されうる。この例では、ユニット７６は、「消去された」とマークされたページの能力を合計し、その結果を、利用可能なメモリサイズとして報告する。
【０１６８】
図１３は、本発明の１実施形態による、可変能力のメモリ素子からデータを消去する方法を概略的に示したフローチャートである。この方法は、ＭＳＰ５２が、メモリ素子２４からあるデータ項目を消去せよという要求を、メモリコントローラ２２から受け取ることから始まる（消去要求工程２７０）。ＭＳＰ５２中の管理ユニット７６は、そのデータ項目を記憶するために用いられているページを特定し、それらのページを、「消去準備完了」とマークする（消去工程２７４）。
【０１６９】
データ項目を記憶しているページは、１つ以上の消去ブロックに渡って存在している可能性がある。これらのブロックを消去可能にする前に、使用中の（すなわち、「情報を含む」状態である）これらのブロック中の任意のページを、他の消去可能なブロックに移動すべきである。
【０１７０】
ユニット７６は、上述の工程２７４で特定されたページを含む消去ブロックが、使用中のページを含むか否かをチェックする（使用中チェック工程２７８）。消去ブロックが、使用中のページを含まないのであれば、ユニット７６は、そのブロックを消去し、これらのブロック中のページの状態を「消去された」と更新する（消去工程２８２）。一方、ユニット７６が、消去を計画していたブロック中のいくつかのページが使用中であることを検出するならば、ユニット７６は、これらのページに記憶されているデータを他のページ、すなわち消去を計画していたブロック外に移動する。（場合によっては、ユニット７６は、ブロックを消去しないように決定する場合もありうる。例えば、ある消去ブロックが、消去されるデータ項目に属するページを１ページ含み、かつ全ての他のページがすでに消去されている場合である。）
【０１７１】
ユニット７６は、消去を計画していたブロック外にあり、かつ総計サイズが使用中のページ内でデータを記憶するのに十分である１つまたは複数のページセットを選択する（移動選択工程２８６）。ユニット７６は、データが、適切な方針または基準に基づいて、移動先のページを選択することができる。例えば、このページは、利用可能なページから順に選択可能である。あるいは、ユニット７６は、上述の図１２の方法のページ選択工程２５４で記載したように、磨耗平滑化を高め、未使用のメモリセルの数を減らすように選択可能である。さらに、あるいは、ユニット７６は、これ以外の任意の適切な基準を用いることもできる。
【０１７２】
ユニット７６は、使用中のページ中に記憶されたデータを、上述の工程２８６で選択されたページに複写する（移動工程２９０）。移動動作は、ページ数を守る必要はなく、データをページ中で仕切る必要もないことに注意されたい。素子中２４中のページの能力は異なっているので、移動されたデータは、異なる数のページに複写されることもでき、および／または複数のページ中に、元の記憶とは異なる形で仕切られることもできる。データが移動されると、上の工程２７４で特定されたブロックは消去される（消去工程２８２）。
可変能力メモリ素子中でのデータ記憶管理
【０１７３】
上述したように、ＭＳＰ５２は、メモリコントローラ２２と相互作用し、すなわち、メモリコントローラから記憶用にデータを受け取り、メモリ中に記憶されたデータを、要求があればメモリコントローラに出力する。システム２０は、メモリコントローラとまたは、一般にホストシステムと様々な方法で相互作用するが、この相互作用では、ＭＳＰにより実行される管理機能性のレベルは各々異なる。
【０１７４】
ある極端な例では、システム２０は、固定能力メモリ素子を制御するよう設計されている遺産的なメモリコントローラと相互作用する。この場合、メモリコントローラは、固定能力ページテーブルを保持し、これは、各データ項目を記憶するために、どの固定能力ページが用いられているかを示す。固定能力ページテーブルは、各固定能力ページまたはブロックの状態も保持し、ある消去ブロックが不良ブロックとして考えられているか否かを示す。
【０１７５】
これらの実施形態では、ＭＳＰ５２は、システム２０の適応能力特性と、メモリコントローラ２２の固定能力特性との間で、２つの平行する索引の仕組みを維持しながら、仲介を行う。メモリコントローラに対して、ＭＳＰは固定能力ページの索引の仕組みを用いて交信を行い、その結果システム２０は、メモリコントローラからは固定能力機器のように見える。システム２０の内部では、ＭＳＰ５２は、可変能力ページ中でデータ項目を効率的に記憶する。ＭＳＰは、可変能力ページの別の索引の仕組みを維持しており、この仕組みでは、どの可変能力ページが、各データ項目を記憶するのに用いられるのかを示す。ＭＳＰは、データを書き込みおよび読み取る際に、２つの索引の仕組みの間で翻訳を行うことができる。
【０１７６】
メモリコントローラ２２が、ＥＣＣ符号化および復号化、メモリから読み取ったデータ中のエラーの検出、および／または、不良ブロック管理などの機能を実行する場合もある。本明細書中に記載された技術を用いて、データ構造またはプロトコルを修正せずに、メモリ素子２４を制御するために、公知のメモリコントローラを用いることができる。
【０１７７】
逆の極端な例では、ＭＳＰ５２自体により、メモリコントローラ２２の機能が実質的に実行される。これらの実施形態では、ＭＳＰは、ホストシステム（例えば、コンピュータのＣＰＵ）から任意のサイズのデータ項目を受け取り、そのデータ項目を、アレイ２８の可変能力ページに記憶する。メモリ管理機能は、ＭＳＰにより実行されるので、固定能力索引を模倣する必要はなく、ＭＳＰは、１つの索引の仕組みのみを維持する。
【０１７８】
さらにあるいは、ＭＳＰ５２は、システム２０とホストシステムとの間で、これ以外のメモリ管理機能の適切な区分けを支援してもよい。１つのＭＳＰ機器が、異なるインタフェースおよび索引の仕組みを支援し、異なるメモリコントローラまたはホストと相互作用する。
【０１７９】
図１４〜１７は、本発明の１実施形態による、可変能力のメモリ素子中に、固定サイズデータブロックを記憶する方法を概略的に示した図である。
【０１８０】
図１４は、固定のセル数を有する消去ブロックを持つメモリ素子中にデータを記憶するように設計され、不良ブロック管理（ＢＢＭ）機能を実行するメモリコントローラと相互作用する方法を示す。公知のＢＢＭ方法では、ブロック中の１ページのみが不良である場合でさえも、その消去ブロックは不良ブロックとして分類される。このような方法は、極めて非効率である。というのも、その不良とされたブロック中のほとんどのメモリセルは使用可能であるからである。一方、図１４の方法を用いれば、システム２０は、不良と分類されたブロックの使用可能なメモリセル中に、データを効率的に記憶する。
【０１８１】
典型的な書き込み動作では、メモリコントローラ２２は、メモリアレイ３０４中に記憶するためのデータ項目３００を受け取る。アレイ３０４は、複数のメモリブロック３０８を有する。メモリコントローラ２２は、データ項目を、１つまたは複数の固定サイズブロック（ここでは、コントローラブロック３１２と称する）に分割する。各コントローラブロック３１２は、特定の利用可能なメモリブロック３０８中に記憶されるという予定になっている。メモリコントローラ２２は、コントローラブロック３１２を、記憶のためにＭＳＰ５２に提供する。
【０１８２】
いくつかのブロック３０８の能力は低くなっている（すなわち、コントローラブロック３１２のサイズよりも能力が小さい）が、これは、歪み効果、製造不良またはこれ以外の理由によるものである。公知のＢＢＭ方法を用いると、このようなブロックは、不良ブロックと分類され、そのメモリセルの大多数が使用可能な状態であったとしても、そのブロックは使用されないままである。
【０１８３】
一方、ＭＳＰ５２は、メモリブロック３０８全てを、可変能力ブロックとして認識し、ブロックを良好または不良との分類をしない。ＭＳＰは、コントローラブロックから、データを抽出し、データを複数のフラグメント３１６に再度仕切る。この複数のフラグメントは、同じサイズでも異なるサイズであってもよい。ＭＳＰは、フラグメント３１６のサイズに合う能力を有する複数のメモリブロック３０８を特定し、各フラグメントを各メモリブロック中に記憶する。この例では、ＭＳＰはデータ項目を３つのフラグメントに分割し、これを、＃３、＃６および＃１０の記号を付けられたメモリブロック中に記憶する。
【０１８４】
ＭＳＰ５２は、各データ項目を記憶するブロックを決めるための様々な方法および基準を用いることができる。例えば、ＭＳＰは、能力がより小さく、かつ総計能力が、１つのコントローラブロックのデータを記憶するのに十分であるメモリブロックの対を探してもよい。その後、ＭＳＰは、コントローラブロックを、その一対のメモリブロックにマッピングする。別の例として、ＭＳＰは、利用可能なメモリブロックを探索し、総計能力がデータ項目３００のサイズに最もよく合う、２つ以上のブロック３０８を決定してもよい。この方法を利用して、無駄になるメモリの量を最小限にする。
【０１８５】
あるいは、ＭＳＰは、管理コストを低減させるために、データ項目が記憶されうるブロックの数を最小限にするセットを探索することも可能である。さらにあるいは、ＭＳＰは、磨耗平滑化を改善するために、最近のプログラミングおよび消去周期の経験数が最小数であるブロックを選択してもよい。これ以外の適切な方法または基準を用いることもできる。実施形態によっては、１つのメモリブロック３０８を用いて、１つを上回るデータ項目に属する複数のフラグメントを記憶することもできる。
【０１８６】
データ項目３００をフラグメント３１６に仕切るのは、メモリブロック３０８の選択には依存せず、または、これと組み合わせて行うことができる。例えば、ＭＳＰはまず、データ項目を、フラグメントが最終的に記憶されるメモリブロックの数および識別にかかわらず、固定サイズのフラグメントに分けてもよい。あるいは、ＭＳＰは、最初にデータ項目が記憶されるべきメモリブロックを、特定して、続いて、これらのメモリブロックの数とサイズとに応じて、データ項目を分けてもよい。
【０１８７】
実施形態によっては、ＭＳＰによる分割が、メモリコントローラおよびＢＢＭ機能に対して透明であるように、ＭＳＰ５２は、メモリコントローラへの固定能力ブロック中の記憶を模倣してもよい。例えば、ＭＳＰは、２つの索引テーブルを維持し、すなわち、固定サイズコントローラブロックの索引テーブルと、これに対応する可変能力メモリブロックの索引テーブルとを維持してもよい。データ項目が、メモリコントローラにより、あるコントローラブロックのセット中に記憶されるために送られれば、ＭＳＰは、常に可変能力メモリブロックのいずれが、この項目を記憶するのに用いられるかを示す。メモリコントローラからあるデータ項目が要求されると、ＭＳＰは、これが記憶されている可変能力メモリブロックから、この項目を取り出し、まるで、コントローラが知る固定サイズのコントローラブロック中に記憶されているかのように、この項目をメモリコントローラに送る。
【０１８８】
理解されうるであろうが、図１４の方法は、公知のＢＢＭ方法よりも、メモリ素子の達成可能な能力をかなり高める。なぜならば、さもなければ不良ブロックとして分類されたであろうメモリブロック中に、データを記憶することができるからである。
【０１８９】
図１４に関する説明は、全消去ブロックレベルという記憶の細かさに言及しているが、この方法は、より高い精度、すなわちページでの精度を用いて実装することも可能である。換言すれば、ＭＳＰは、データ項目が記憶されうる可変能力メモリページの適切なセットを決めることができる。ページ毎ベースでデータ項目を分割し、記憶することにより、比較的高い管理コストという犠牲を払って、より高い記憶密度が可能になる。
【０１９０】
ある例となる実装では、メモリコントローラにより用いられる公称ページサイズがＰビットである場合、ＭＳＰは、メモリ素子中のメモリページを、能力がＰより小さい能力が低減したメモリページ、および、能力がＰ以上の交渉能力メモリページに分類する。それにより、ＭＳＰは、Ｐビットを有する各コントローラページを、公称能力のメモリページまたは能力が低減した一対のメモリページへ記憶することができる。ＭＳＰは通常、各コントローラページを対応する公称能力メモリページまたは能力が低減したメモリページの対にマッピングするテーブルを維持している。したがって、能力がコントローラページの公称サイズを下回るメモリページも、データを記憶するために用いることができる。
【０１９１】
図１５は、本発明の１実施形態による、可変能力のメモリページ中に、Ｐビットの固定サイズコントローラページを効率的に記憶する別の方法を示す。メモリアレイ３２０は、複数のメモリページ３２４を有する。メモリページは、同時にプログラムされかつ読み取られるメモリセル群として定義される。
【０１９２】
アレイ３２０のメモリページは、通常同じ数のセルを有するが、その能力（すなわち、信頼性を持って記憶することができる情報量）は、ページ毎に、時間の経過により異なりうる。一般に、各メモリページ３２４の能力は、Ｐより小さい、これと同じ、またはこれより大きい。ＭＳＰ５２は、余剰能力ページ３２８として機能させるために、１つ以上のメモリページを割り当てる。この余剰能力ページは、Ｐ未満の能力を有するこれ以外のメモリページの余剰ビットを記憶するために用いられる。この例では、アレイ３２０は、３２ページのメモリページを有し、そのうち１ページが、余剰能力ページとして機能する。
【０１９３】
ＭＳＰは、記憶用にＰビットを有するコントローラページを受け取ると、次に利用可能なメモリページ３２４（Ｃｎの印が付けられている）の能力を評価する。Ｃｎ＞Ｐ（すなわち、次に利用可能なメモリページが、このコントローラページのＰビットを記憶するのに十分な場合）、ＭＳＰはこのＰビットをこのメモリページ中に記憶する。次に利用可能なメモリページが、Ｐビットを記憶するのに十分でない場合、すなわち、Ｃｎ≦Ｐの場合、ＭＳＰは、このコントローラページのＰビットのうちのＣｎビットをこのメモリページ中に記憶し、残りのＰ−Ｃｎビットを、余剰能力ページ３２８の使用されていないメモリセル中に記憶する。
【０１９４】
上述の方法を用いたページの書き込みまたは読み取りは、２つのページ書き込みまたは読み取り動作を含みうる。実施形態によっては、ＭＳＰは、余剰能力ページのいくつかもしくは全て、またはこれらのページの部分を、ＲＡＭまたはこれ以外のキャッシュメモリ中に、キャッシュとして入れることができる。余剰能力ページをキャッシュに入れることにより、ＭＳＰは、二重の読み取りおよび二重の書き込み動作を少なくすることができる。
【０１９５】
メモリ素子からデータを読み取る際に、ＭＳＰは、最新に読み取った余剰能力ビットをキャッシュに入れることができる。メモリページを取り出す際に、ＭＳＰは、このページの余剰ビットが、キャッシュデータ中にあるか否かをチェックする。もし、所望の余剰ビットがキャッシュされていれば、物理的にこの余剰能力ページを読には及ばず、取り出されたメモリページにこれを追加することができる。メモリ素子中にデータを書き込む際、ＭＳＰは余剰能力ビットをキャッシュに入れ、これにより、メモリ素子中に物理的に記憶する頻度をより低くすることができる。
【０１９６】
電圧故障時に、キャッシュデータが失われないように、ＭＳＰは、電圧不規則性を特定し、必要な場合迅速にキャッシュデータをメモリ素子に記憶する回路を有することができる。メモリコントローラは、Ｅｎｄ  Ｏｆ  Ｆｉｌｅ（ＥＯＦ）属性またはこれ以外の適切なコマンドを用いて、メモリ素子中にキャッシュされたデータを記憶するように、ＭＳＰに指示することもできる。メモリコントローラは、通常、電源を切る前および／またはデータファイルに書き込み終了時に、このコマンドを用いることができる。さらに、あるいは、ＭＳＰは、特定の時間切れ後に、メモリにキャッシュされたデータを記憶することもできる。
【０１９７】
図１６は、本発明の１実施形態による、可変能力のメモリページ中に、固定サイズコントローラページを効率的に記憶する別の方法を示す。図１６の方法では、ＭＳＰ５２は、メモリアレイ３３０の可変能力メモリページ３３４中に、それぞれＰビットを有するコントローラページ（コントローラページ  ＃１〜＃５との印が付けられている）を記憶する。各メモリページ３３４の能力は、Ｐよりも小さい、これと同じ、またはこれより大きくてもよい。
【０１９８】
ＭＳＰ５２は、コントローラページを１つずつ、メモリページ３３４の境界に関係なく、記憶していく。したがって、あるメモリページは、１つまたは複数のコントローラページに属するデータを有し、ある特定のコントローラページのデータは、１つまたは複数のメモリページ中に記憶されうる。ＭＳＰは、アレイ中の各コントローラページの位置の記録を、各コントローラページの開始アドレスおよび終了アドレスを記憶することにより行う。この記憶方法では、いくらかの管理コストを犠牲にして、メモリページの全能力を利用する。
【０１９９】
この記憶方法は、通常、メモリコントローラに対して透明である。メモリコントローラがあるコントローラページを要求すると、ＭＳＰは、要求されたコントローラページを、適切なメモリ位置から読み取り、そのデータをコントローラへ送る。
【０２００】
大きいデータファイルまたはデジタル画像を記憶する場合には、メモリコントローラは、一連のコントローラページを記憶用に送る。このような場合は、ＭＳＰは、メモリコントローラから受け取ったデータをバッファに入れておくことにより、物理的なページプログラミング動作の数を減らすことができる。ＭＳＰは、例えば、バッファが一杯である際、メモリコントローラから明示的に指示されている際（例えば、ＥＯＦコマンドに応答して）、または、メモリコントローラが、一連の一部ではないコントローラページを送信した際には、メモリアレイに物理的にデータを書き込む。この目的用に用いられうるコマンドの例は、上述のＯＮＦＩ仕様の６１頁に定義されている、「ページキャッシュプログラム（Ｐａｇｅ  Ｃａｃｈｅ  Ｐｒｏｇｒａｍ）」コマンドである。ＭＳＰは、メモリから読み取られたデータをバッファに入れることにより、メモリ中に順次記憶される多量のデータを読むのに必要な、ページ読み取り動作の数も減らすことができる。
【０２０１】
図１７は、本発明の別の１実施形態による、可変能力のメモリページ中に、固定サイズコントローラページを効率的に記憶するさらに別の方法を示す。図１７の方法では、ＭＳＰは、プログラミング速度を上げるために、ＭＳＰはコントローラページを二段階で書き込む。
【０２０２】
メモリアレイ３４０のメモリページは、一時的な記憶領域３４４および永久的な記憶領域３４８に分割される。ＭＳＰは、メモリコントローラからコントローラページを受け取ると、最初に、それらを領域３４４中の別々のメモリページへと書き込み、各コントローラページが１つのメモリページへと書き込まれるようにする。
【０２０３】
後の時点で、通常、メモリコントローラとの交信がアイドルである際に、ＭＳＰは、データを永久的な記憶領域３４８へと再プログラムする。領域３４８中のデータは、上述の図１６のように、より密接に圧縮された、能力に対して効率的な方法で記憶される。再プログラムが終了した領域３４４中のページは、解放され、次のコントローラページの一時的な記憶のために再利用されうる。
磨耗平滑化の考慮
【０２０４】
特定のページ中に存在する歪みのレベルは、しばしば、このページが経験したプログラミングおよび消去動作周期の数に依存する。通常、経験したプログラミングおよび消去動作の数が多くなるにしたがって、ページの性能および能力は劣化する。したがって、多くの場合、メモリページのプログラミングを配分し、性能劣化が、メモリセルアレイに渡って均等に割り当てられるようにするのが、有用である。この特徴は、磨耗平滑化と呼ばれ、例えば、２００７年２月付け、エス・ティー・エム・マイクロエレクトロニクス（ＳＴＭｉｃｒｏｅｌｅｃｔｒｏｎｉｃｓ）（スイス、ジュネーブ在）によるアプリケーションノートＡＮ−１８２２「単一レベルセルＮＡＮＤフラッシュメモリ中の磨耗平滑化（Ｗｅａｒ  Ｌｅｖｅｌｉｎｇ  ｉｎ  Ｓｉｎｇｌｅ  Ｌｅｖｅｌ  Ｃｅｌｌ  ＮＡＮＤ  Ｆｌａｓｈ  Ｍｅｍｏｒｉｅｓ）」に記載されている。この文献は、本明細書中に参照されている。
【０２０５】
ＭＳＰ５２が、データを書き込むページまたはページ群を選択する際、ＭＳＰは、プログラミングおよび消去周期を比較的少ない回数経験したページまたはページ群を選択することができる。このような磨耗平滑化を考慮することは、上述のいずれの方法においても、用いることができる。
【０２０６】
場合によっては、ＭＳＰは、例えば、以下のように、磨耗平滑化と歪み推定とを組み合わせた測定基準に基づいて、ページを選択することができる。
【０２０７】
【数５】
2009537055.tif 000010
ここで、γおよびδは、重み付け係数を示す。ＤｉｓｔｏｒｔｉｏｎＥｓｔｉｍａｔｉｏｎは、推定される歪みレベルを示す。ＤｉｓｔｏｒｔｉｏｎＥｓｔｉｍａｔｉｏｎは、例えば、電圧が有意に下がったメモリセルを勘定することから得られる。上述のＭｅｔｒｉｃの定義に追加可能なこれ以外の因子は、（上述の図１１の説明における、ＩＬｅａｋａｇｅを定義する式と同様）ブロックの最新の消去動作後に経過した時間である。
【０２０８】
本明細書中に記載された実施形態では、主に、電圧レベルの数およびＥＣＣの枠組みを修正することにより、複数レベルのメモリセルの記憶密度を適応させることを言及したが、本明細書中に記載した方法およびシステムは、ＥＣＣのみを変えて、単一レベルセル中にも用いることができる。
【０２０９】
本明細書中に記載された実施形態では、主に、半導体メモリ素子からデータを取り出すことに関して言及したが、本発明の原理は、ハードディスクドライブ（ＨＤＤ）およびこれ以外のデータ媒体および機器中にデータを記憶し、取り出すことにも用いられる。ＨＤＤおよびデジタルカセットのような記憶機器においては、記憶媒体は、データ記憶前に、離散したセルに予め分割されることはない。むしろ、データは、連続的な媒体の領域中で記憶され、これらの領域の連続的な媒体中での位置づけは、記憶プロセスそのものの一部分として規定される。本特許出願および請求項の文脈においては、直感的で連続的な記憶プロセス時に媒体中で規定されるこのような領域も、「アナログメモリセル」として考えられる。
【０２１０】
上述の実施形態は例として挙げられ、本発明は上述の特定的に示しおよび説明したものに限定されないことは、理解されるであろう。むしろ、本発明の範囲は、上述の説明を読んだ当業者が思いつき、かつ先行技術中には開示されていない、上述の様々な特徴の組み合わせおよび副結合、ならびに、これらの変形および修正をも含むものである。
【図面の簡単な説明】
【０２１１】
【図１】本発明の一実施形態によるメモリシステムを概略的に図示したブロック図である。
【図２】本発明の一実施形態によるメモリセルアレイを概略的に図示した図である。
【図３】本発明の一実施形態によるマルチレベルメモリセルアレイ中の、電圧分布を示したグラフである。
【図４】本発明の一実施形態によるメモリセルアレイ中のセル能力分布を示したグラフである。
【図５】本発明の一実施形態によるメモリセルアレイ中のブロックおよびページ構造を示した図である。
【図６】本発明の実施形態によるメモリ素子の記憶密度を適応的に修正する方法を概略的に示したフローチャートである。
【図７】本発明の実施形態によるメモリ素子の記憶密度を適応的に修正する方法を概略的に示したフローチャートである。
【図８】本発明の実施形態によるメモリ素子の記憶密度を適応的に修正する方法を概略的に示したフローチャートである。
【図９】本発明の実施形態によるメモリ素子の記憶密度を適応的に修正する方法を概略的に示したフローチャートである。
【図１０】本発明の実施形態によるメモリ素子の記憶密度を適応的に修正する方法を概略的に示したフローチャートである。
【図１１】本発明の実施形態によるメモリ素子の記憶密度を適応的に修正する方法を概略的に示したフローチャートである。
【図１２】本発明の一実施形態による、可変能力のメモリ素子中にデータを記憶する方法を概略的に示したフローチャートである。
【図１３】本発明の一実施形態による、可変能力のメモリ素子からデータを消去する方法を概略的に示したフローチャートである。
【図１４】本発明の一実施形態による、可変能力のメモリ素子中に、固定サイズのデータブロックを記憶する方法を概略的に示した図である。
【図１５】本発明の一実施形態による、可変能力のメモリ素子中に、固定サイズのデータブロックを記憶する方法を概略的に示した図である。
【図１６】本発明の一実施形態による、可変能力のメモリ素子中に、固定サイズのデータブロックを記憶する方法を概略的に示した図である。
【図１７】本発明の一実施形態による、可変能力のメモリ素子中に、固定サイズのデータブロックを記憶する方法を概略的に示した図である。
【符号の説明】
【０２１２】
２０      メモリシステム
２２      メモリコントローラ
２４      メモリ素子
２８      メモリ
３２      アナログメモリセル
５２      メモリ信号プロセッサ
６０      信号処理ユニット
７６      メモリ管理ユニット
【図１】
2009537055.tif 000011
【図２】
2009537055.tif 000012
【図３】
2009537055.tif 000013
【図４】
2009537055.tif 000014
【図５】
2009537055.tif 000015
【図６】
2009537055.tif 000016
【図７】
2009537055.tif 000017
【図８】
2009537055.tif 000018
【図９】
2009537055.tif 000019
【図１０】
2009537055.tif 000020
【図１１】
2009537055.tif 000021
【図１２】
2009537055.tif 000022
【図１３】
2009537055.tif 000023
【図１４】
2009537055.tif 000024
【図１５】
2009537055.tif 000025
【図１６】
2009537055.tif 000026
【図１７】
2009537055.tif 000027
【国際調査報告】
2009537055.tif 000028