JP5183625B2 - 適応能力を有するメモリ素子 - Google Patents

適応能力を有するメモリ素子 Download PDF

Info

Publication number
JP5183625B2
JP5183625B2 JP2009508668A JP2009508668A JP5183625B2 JP 5183625 B2 JP5183625 B2 JP 5183625B2 JP 2009508668 A JP2009508668 A JP 2009508668A JP 2009508668 A JP2009508668 A JP 2009508668A JP 5183625 B2 JP5183625 B2 JP 5183625B2
Authority
JP
Japan
Prior art keywords
data
memory
storage
cell
analog
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2009508668A
Other languages
English (en)
Other versions
JP2009537055A5 (ja
JP2009537055A (ja
Inventor
シャルヴィ、オフィール
ソコロフ、デュータン
マイスロス、アリエル
コーエン、ゼフ
グルギ、ヤール
セーモ、ギル
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Apple Inc
Original Assignee
Apple Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Apple Inc filed Critical Apple Inc
Priority claimed from PCT/IL2007/000579 external-priority patent/WO2007132456A2/en
Publication of JP2009537055A publication Critical patent/JP2009537055A/ja
Publication of JP2009537055A5 publication Critical patent/JP2009537055A5/ja
Application granted granted Critical
Publication of JP5183625B2 publication Critical patent/JP5183625B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C27/00Electric analogue stores, e.g. for storing instantaneous values
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/56Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency
    • G11C11/5607Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency using magnetic storage elements
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/56Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency
    • G11C11/5621Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency using charge storage in a floating gate
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/56Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency
    • G11C11/5657Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency using ferroelectric storage elements
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/56Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency
    • G11C11/5678Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency using amorphous/crystalline phase transition storage elements

Description

関連出願への相互参照
本発明は、米国特許仮出願60/747,106号(2006年5月12日出願)、米国特許仮出願60/822,236号(2006年8月13日出願)、米国特許仮出願60/825,913号(2006年9月17日出願)、米国特許仮出願60/866,071号(2006年11月16日出願)、米国特許仮出願60/866,860号(2006年11月22日出願)、米国特許仮出願60/867,399号(2006年11月28日出願)、米国特許仮出願60/871,838号(2006年12月26日出願)、米国特許仮出願60/882,240号(2006年12月28日出願)、米国特許仮出願60/883,071号(2007年1月2日出願)、米国特許仮出願60/885,987号(2007年1月22日出願)および米国特許仮出願60/889,277号(2007年2月11日出願)の利点を主張し、その開示は本明細書中に参照される。
本発明は、全般としてメモリ素子に関し、とりわけ、適応記憶能力を有するメモリ素子に関する。
フラッシュメモリおよびダイナミック・ランダム・アクセスメモリ(DRAM)などの数種類のメモリ素子では、データを記憶するために、アナログメモリセルアレイを用いている。フラッシュメモリ素子は、例えば、2003年4月付けIEEE論文集、第91巻、第4号、489〜502頁の、Bez他による「フラッシュメモリの紹介(Introduction to Flash Memory)」に記載されている。この文献は、本明細書中に参照される。
このようなメモリ素子では、通常、各アナログメモリセルがトランジスタを有し、これが、セル中に記憶された情報を表すある特定の電荷量を保持している。特定のセル中に書き込まれた電荷は、セルの「閾値電圧」、すなわち、このセルが電流を流す際にセルにかけられるのに必要となる電圧に影響を与える。

一般に、単一レベルセル(SLC)素子と称されるメモリ素子では、各メモリセル中に1ビットの情報を記憶する。通常、セルの可能な閾値電圧の領域は、2つの領域に分けられる。2つのうちの1つの領域の電圧値は、「0」ビット値を示し、第2の領域に属する電圧は、「1」ビット値を示す。しばしば、マルチレベルセル(MLC)素子と称される、より密度の高い素子では、メモリセル毎に2つ以上のビットを記憶する。マルチレベルセルでは、閾値電圧の範囲は、2つを上回る領域に分けられ、各領域が1ビットを上回るビットを示す。
マルチレベルフラッシュセルおよび素子は、例えば、1996年ニューヨーク州、ニューヨーク市で開催されたIEEE国際電子素子会議(IEDM)の論文集、169〜172頁中、Eitan他による「マルチレベルフラッシュセルおよびそのトレードオフ(Multilevel Flash Cells and their Trade−Offs)」に記載されている。この論文は、本明細書中に参照される。この論文は、一般的な接地セル、DINOR、AND、NORおよびNANDセルなどの数種類のマルチレベルフラッシュセルを比較している。
Eitan他は、窒化読み出し専用メモリ(NROM)と称される別の種類のアナログメモリセルについても、1999年9月21〜24日、日本、東京で開催された1999年国際固体素子および材料会議(International Conference on Solid State Devices and Materials)(SSDM)の論文集中、522〜524頁「2ビットのトラップ記憶NVMセルであるNROMは、フローティングゲートセルに対する真の挑戦でありうるか?(Can NROM,a 2−bit,Trapping Storage NVM Cell,Give a Real Challenge to Floating Gate Cells?)」中で記載している。この論文は、本明細書中に参照される。NROMセルに関しては、Maayan他も、2002年2月3〜7日、カリフォルニア州、サンフランシスコで開催された、2002年IEEE国際固体回路会議(ISSCC2002)の論文集中、「8MB/秒のデータ速度を持つ512MbのNROMフラッシュデータ記憶メモリ(A 512 Mb NROM Flash Data Storage Memory with 8 MB/s Data Rate)」中に記載している。この論文は本明細書中に参照される。
例となる別の種類のアナログメモリセルとしては、強誘電性RAM(FRAM)セル、磁性RAM(MRAM)セル、相変化RAM(PRAM、相変化メモリPCMとも称される)セルがある。FRAM、MRAMおよびPRAMに関しては、例えば、KimおよびKohにより、2004年5月16〜19日、セルビアモンテネグロ、ニスで開催された、第24回国際電子工学会議(MIEL)の論文集、1巻、377〜384頁、「新興メモリを含む将来のメモリ技術(Future Memory Technology including Emerging New Memories)」に記載されている。この論文は、本明細書中に参照される。
用途に応じて、データは、様々な密度でメモリセル中に記憶される。例えば、特許文献1(この開示は本明細書中に参照されている)は、複数のメモリアレイを含む、マルチプル・ビット・パー・セルメモリ(複数のセル毎ビット数を有するメモリ)に関して記載している。このメモリでは、セル毎に記憶されるビット数は、メモリアレイ毎に個別に設定されている。テストにより、セル毎に多数のビット数を書き込み、記憶および読み取る際に正確であると証明されたメモリアレイは、セル毎に、より多くのビットを記憶するように設定され、これほど多くのビットをセル毎に正確に書き込み、記憶および読み取りができないメモリアレイは、より少ないビットをセル毎に記憶するように設定されている。
特許文献2(この開示は本明細書中に参照されている)では、通常メモリセルを複数の記憶状態で作動させる非揮発性のフラッシュメモリシステムが、これに代えて、2つの状態中でいくつかの選択されたセルブロックまたは全メモリセルブロックを作動させる能力を備えている。2つの状態は、複数の状態を最も分離するように選択され、これにより2つの状態での動作時に、余裕を増やすことができる。
特許文献3(この開示は本明細書中に参照されている)は、セルブロック単位で共に消去可能なように配された、フラッシュで電気的に消去可能およびプログラム可能な読み出し専用メモリ(EEPROM)を有するメモリシステムを開示している。各セルを、2つを上回る検出可能な閾値範囲または状態で作動させた結果、各セルは1つを上回るビットデータを記憶する。データが記憶されないアレイの任意の部分は、書き込みキャッシュとして用いることができ、ここでは、各セルが、2つ以上の検出可能な閾値範囲でのみ動作することにより、単一のデータビットを記憶する。メモリに入ってくるデータは、まず、2つの状態で利用可能なブロック中に書き込まれている。後の段階で、バックグラウンドで、キャッシュに入れられたデータは読み込まれ、圧縮され、複数の状態のメモリのより少ないブロックに再度書き込まれる。
特許文献4(この開示は本明細書中に参照されている)は、マルチ・ビット・パー・セルの非揮発性メモリを記載し、セル毎に異なる数のビットを用いて、データストリームの様々な部分を記憶する。とりわけ、高度のデータ集積を必要とするデータ(例えば、データフレームのヘッダ)は、メモリセル毎に相対的に少数のビット数を用いて記憶される。より誤差に対して許容性のあるデータ(例えば、音楽、画像またはビデオなどを表現する主データ)は、メモリセル毎に相対的により多い数のビットを用いて記憶される。
特許文献5(この開示は本明細書中に参照されている)は、該当するデータタイプに応じて、セル毎に異なる数のビット数でデータを記憶する方法について記載している。このビット数は、忠実性がより重要ではない場合に、セル毎に増やしてもよい。セル毎のビット数は、忠実性がより重要である場合に、減らしてもよい。実施形態によっては、メモリは、セルベースで、記憶モード間で変化してもよい。
米国特許6,363,008号 米国特許6,456,528号 米国特許5,930,167号 米国特許6,466,476号 米国特許6,643,169号
本発明の実施形態では、複数のアナログメモリセルを有するメモリ中に、データを記憶させる方法であって、この方法が、アナログメモリセルの各達成可能な記憶能力を推定する工程と、推定された達成可能な能力に基づいて、メモリセル中に記憶されるべきデータ量を定義する各記憶構成を、メモリセルに割り当てる工程と、割り当てられた各記憶構成に基づいて、メモリセル中にデータを記憶する工程と、メモリがホストシステムに組み込まれ、ホストシステム中にデータを記憶させるために用いられた後に、アナログメモリセルの各達成可能な記憶構成を再推定する工程と、再推定された達成可能な能力に応答して、記憶構成を修正する工程とを含む方法を提供する。
実施形態によっては、データを記憶する工程は、誤り訂正符号(ECC)を用いてデータを符号化する工程と、符号化されたデータを、公称アナログ値セットから選択されたアナログ値に変換する工程と、アナログ値を各メモリセルに書き込む工程とを含み、ここで、各記憶構成は、データを記憶するために用いられる、各ECC符号レートおよび公称アナログ値セットのサイズを特定する。
ある実施形態では、データを記憶する工程は、各アナログメモリセル用に、データを公称アナログ値セットから選択されたアナログ値に変換する工程と、アナログ値をメモリセルに書き込む工程とを含み、ここで、各記憶構成は、アナログメモリセルにデータを記憶するために用いられる、公称アナログ値を特定する。
別の実施形態では、データを記憶する工程は、データをアナログ値に変換する工程と、アナログ値を各メモリセルに書き込む工程とを含み、ここで、達成可能な記憶能力を推定する工程は、メモリセル中に書き込まれるアナログ値に影響を与える各歪みレベルを推定する工程と、歪みレベルに応答して達成可能な記憶能力を決定する工程とを含む。
歪みレベルを推定する工程は、メモリセルからのアナログ値を読み取る工程と、メモリセルから読み取られたアナログ値に基づいて歪みレベルを推定する工程とを含んでもよい。歪みレベルを推定する工程は、メモリセルから読み取られたアナログ値からデータを再構築する工程と、再構築されたデータに基づいて歪みレベルを演算する工程とを含んでもよい。実施形態によっては、歪みレベルを演算する工程は、メモリセルから読み取られたアナログ値のスカラー関数を合計する工程を含む。スカラー関数を合計する工程は、メモリセルから読み取られたアナログ値と、データに応答してメモリセル中に記憶されたデータの各予測値との差の二乗を合計する工程を含んでもよい。別の実施形態では、歪みレベルを演算する工程は、メモリセルから読み取られたアナログ値と、データに応答してメモリセル中に記憶されたデータの各予測値との差が所定の値を超えるメモリセルの数を勘定する工程を含む。
開示された実施形態では、データを記憶する工程は、メモリセル内にアナログ値を書き込む工程と、反復プログラミングおよび検証(P&V)プロセスを用いて、書き込まれたアナログ値を検証する工程とを含み、ここで、歪みレベルを推定する工程は、P&Vプロセスにより検証されたアナログ値に基づいて、歪みレベルを演算する工程を含む。
別の実施形態では、データを記憶する工程は、メモリセル内にアナログ値を書き込む工程と、プログラミング工程によりアナログ値を反復的に増分する反復プログラミングおよび検証(P&V)プロセスを用いて、書き込まれたアナログ値を検証する工程とを含み、ここで、記憶構成は、反復P&Vプロセスにより用いられるプログラミング工程のサイズを規定する。
さらに別の実施形態では、データを記憶する工程は、誤り訂正符号(ECC)を用いて、メモリセル群中で記憶されるべきデータを符号化する工程と、符号化されたデータを、メモリセル群の各アナログメモリセル中で記憶するためにアナログ値に変換する工程とを含み、達成可能な記憶能力を推定する工程は、メモリセル群中のメモリセルからアナログ値を読み取る工程と、読み取られたアナログ値と、アナログ値に最も近い有効なECCの符号語との間の距離メトリックを求める工程とを含み、記憶構成を修正する工程は、メモリセル群の記憶構成を、求められた距離メトリックに応答して適応させる工程を含む。
また別の実施形態では、達成可能な記憶構成を再推定する工程は、メモリセル内に記憶されたデータを読み取る工程を含み、記憶構成を修正する工程は、読み取られたデータ中のエラーの検出に応答して、記憶構成を適応させる工程を含む。データを記憶する工程は、誤り訂正符号(ECC)を用いてデータを符号化する工程を含んでもよく、記憶構成を適応させる工程は、ECCの符号レートを修正する工程を含んでもよい。
実施形態によっては、メモリセルの達成可能な能力を推定する工程は、各メモリセルに対して行われた過去のプログラミングおよび消去動作を追跡する工程と、追跡された過去のプログラミングおよび消去動作に応答して、達成可能な能力を推定する工程とを含む。達成可能な能力を推定する工程は、過去のプログラミングおよび消去動作以来経過した時間の長さに応答して、達成可能な能力を演算する工程を含んでもよい。
ある実施形態では、データを記憶する工程は、データの冒頭の部分をアナログ値に変換する工程と、アナログ値を各メモリセル中に書き込む工程と、これに続いて、セルを消去することなく、メモリセル中に書き込まれたアナログ値を大きくすることにより、データのさらなる部分をメモリセルの少なくともいくつかに記憶する工程とを含む。
別の実施形態では、データを記憶する工程は、データに冗長ビットを加える誤り訂正符号(ECC)を用いてデータを符号化する工程と、冗長ビットを、いくつかのアナログメモリセル中に記憶する工程とを含み、ここで、記憶構成を修正する工程は、セルを消去することなく、ECCにより加えられた冗長ビットの数を修正する工程を含む。冗長ビットを記憶する工程は、データとは別に冗長ビットを記憶する工程を含んでもよい。
さらに別の実施形態では、記憶構成を割り当てる工程は、可能な記憶構成セットを予め規定する工程を含み、記憶構成を修正する工程は、所定のセットから更新された記憶構成を選択する工程を含む。少なくとも1つの記憶構成で規定されるデータの量は、セル毎の非整数のビット数を特定してもよい。
さらに別の実施形態では、データを記憶する工程は、メモリセルにデータを書き込む前にデータを圧縮する工程を含み、ここで記憶構成は、データが圧縮されるべき個々の圧縮レートを規定する。開示された実施形態では、記憶構成を割り当てる工程は、各メモリセル群に対して記憶構成を規定する工程を含む。
ある実施形態では、メモリセル中にデータを記憶する工程は、メモリ中に記憶するためにデータ項目を受け取る工程と、割り当てられた記憶構成に応答して、データ項目を記憶するべきメモリセルサブセットを選択する工程と、選択されたメモリセルサブセット中にデータ項目を記憶する工程とを含む。実施形態によっては、達成可能な記憶能力を再推定する工程は、データが記憶されず、かつ読み取られないアイドル期間中に行われる。
別の実施形態では、記憶構成を割り当て、かつ修正する工程は、構成テーブルに記憶構成を記憶する工程を含む。実施形態によっては、メモリがホストシステムに組み込まれる前に、構成テーブルに記憶構成の初期値が記憶されてもよい。さらに別の実施形態では、記憶構成を割り当て、かつ修正する工程は、メモリセル中に記憶されたデータの量と、各推定された達成可能な能力との間の所定の余裕を維持する工程を含む。さらに別の実施形態では、歪みの少なくともいくらかは、アナログメモリセル中の漏れ電流により引き起こされ、歪みを推定する工程は、漏れ電流を推定する工程を含む。
本発明の1実施形態によれば、複数のアナログメモリセルを有するメモリ中に、データを記憶させる方法であって、この方法が、各アナログメモリセルの歪みレベルを推定する工程と、推定された歪みレベルに基づいて、アナログメモリセルの各達成可能な記憶能力を推定する工程と、推定された達成可能な能力に基づいて、メモリセル中に記憶されるべきデータ量を定義する各記憶構成を、メモリセルに割り当てる工程と、割り当てられた各記憶構成に基づいて、メモリセル中にデータを記憶する工程とを含む方法もさらに提供される。
本発明の1実施形態によれば、複数のアナログメモリセルを有するメモリ中に、データを記憶させる方法であって、この方法が、メモリがホストシステムで用いられている間に、アナログメモリセルの各達成可能な記憶能力を追跡する工程と、メモリで記憶するためにデータを受け取る工程と、追跡された達成可能な記憶能力に基づいて、データを記憶するためのメモリセルのサブセットを選択する工程と、サブセットのメモリセル中にデータを記憶する工程とを含む方法も提供される。
実施形態によっては、サブセットを選択する工程は、達成可能な能力の総計が、受け取られたデータのサイズに最もよく合うメモリセルを選択する工程を含む。別の実施形態では、データを受け取る工程は、要求された、データを記憶するための信頼性レベルを受け取る工程を含み、サブセットを選択する工程は、要求された信頼性レベルに応答してメモリセルを選択する工程を含む。これに加えて、または、これに代えて、データを受け取る工程は、要求された、データを記憶するための保持期間を受け取る工程を含み、サブセットを選択する工程は、要求された保持期間に応答してメモリセルを選択する工程を含む。サブセットを選択する工程は、他のメモリセルよりも低い歪みレベルを有するメモリセルを選択する工程を含んでもよい。
別の実施形態では、達成可能な記憶能力を追跡する工程は、メモリセルに対して行われた過去のプログラミングおよび消去動作を追跡する工程を含み、サブセットを選択する工程は、過去のプログラミングおよび消去動作に応答して、メモリセルを選択する工程を含むサブセットを選択する工程は、他のメモリセルよりも過去のプログラミングおよび消去動作の数が少ないメモリセルを選択することによって、メモリ中のメモリセルに渡って、均等にプログラミングおよび消去動作の数を配分する工程を含んでもよい。プログラミングおよび消去動作の数を配分する工程は、所定の最近の期間の間において、他のメモリセルよりも過去のプログラミングおよび消去動作の数が少ないメモリセルを選択する工程を含んでもよい。
開示された実施形態では、達成可能な記憶能力を追跡する工程は、データを記憶するために利用可能なメモリセルの達成可能な能力を合計することによって、利用可能なメモリスペースのサイズを演算し、かつホストシステムに報告する工程を含む。
別の実施形態では、メモリは複数の消去ブロックに分割され、各消去ブロックは、1回の消去動作により消去されるメモリセル群を含み、かつこの方法は、データ項目が記憶されている消去ブロックを1つまたは複数特定する工程と、データ項目が記憶されている消去ブロックが、他のデータ項目のデータを記憶して含む際に、追跡されたメモリセルの達成可能な能力と、それ以外のデータ項目のサイズとに基づいて、データ項目が記憶されている消去ブロック外の代替となるメモリセルを特定する工程と、それ以外のデータ項目のデータを、代替となるメモリセルに複写する工程と、データ項目が記憶されている消去ブロックを消去する工程とにより、メモリからデータを消去する工程を含む。
ある実施形態では、記憶するためにデータを受け取る工程は、データをホストシステムから固定能力ブロック中に受け取る工程と、可変能力メモリセル群中に、可変サイズ群の追跡された達成可能な能力に基づいて、データを記憶する工程とを含む。別の実施形態では、可変能力群中にデータを記憶する工程は、固定能力ブロックの能力よりも小さい能力を有する可変能力群を2つ以上特定する工程を含み、1つまたは複数の固定能力ブロックで受け取られたデータを、特定された2つ以上の可変能力群に記憶する工程を含む。
さらに別の実施形態では、可変能力群中にデータを記憶する工程は、余剰メモリ記憶領域として機能する1つ以上の可変能力群を割り当てる工程と、固定能力ブロック中に受け取られたデータを、各可変能力群中に記憶する工程と、可変能力群の達成可能な能力が固定能力ブロックの能力よりも小さい場合に、各固定能力ブロック中で受け取られたデータのいくらかを、割り当てられた余剰メモリ記憶領域中に記憶する工程とを含む。さらに別の実施形態では、可変能力群中にデータを記憶する工程は、固定能力ブロック中に受け取られたデータを、可変能力群間の境界に関わらず、メモリセル中に順次記憶する工程を含む。データを記憶する工程は、各固定能力ブロック中で受け取られたデータを、始めに各可変能力群中に記憶する工程と、続いて、始めに記憶されたデータを、可変能力群間の境界にかかわらず、順次再プログラムする工程とを含んでもよい。
実施形態によっては、この方法は、可変サイズ群からデータを取り出す工程と、固定サイズブロックを再構築する工程と、固定サイズブロックを用いてデータをホストシステムに出力する工程とを含む。この方法は、少なくともデータの幾分かをキャッシュに入れることにより、メモリに対して行われるメモリアクセス動作の数を減らす工程を含んでもよい。少なくともデータの幾分かをキャッシュに入れる工程は、即時記憶事象を検出するとすぐに、キャッシュに入れられたデータをメモリに転送する工程を含んでもよい。即時記憶事象とは、電源異常に近づいていることと、時間切れと、ホストシステムによるEnd Of File(EOF)コマンドの受け取りとからなる事象群から選択された少なくとも1つの事象を含んでもよい。
本発明の1実施形態によれば、データ記憶装置であって、複数のアナログメモリセルを有するメモリと交信するように配されているインタフェースと、メモリセルの各達成可能な記憶能力を推定し、推定された達成可能な能力に基づいて、メモリセル中に記憶されるべきデータ量を定義する各記憶構成をメモリセルに割り当て、割り当てられた各記憶構成に基づいて、メモリセル中にデータを記憶し、メモリがホストシステムに組み込まれホストシステム中にデータを記憶させるために用いられた後に、アナログメモリセルの各達成可能な記憶構成を再推定し、再推定された達成可能な能力に応答して記憶構成を修正するように配されたメモリ信号プロセッサ(MSP)とを有するデータ記憶装置も提供される。
本発明の1実施形態によれば、さらに、データ記憶装置であって、複数のアナログメモリセルを有するメモリと交信するように配されているインタフェースと、各アナログメモリセルの歪みレベルを推定し、推定された歪みレベルに基づいて、アナログメモリセルの各達成可能な記憶能力を推定し、推定された達成可能な能力に基づいて、メモリセル中に記憶されるべきデータ量を定義する各記憶構成を、メモリセルに割り当て、割り当てられた各記憶構成に基づいて、メモリセル中にデータを記憶するように配されたメモリ信号プロセッサ(MSP)とを有するデータ記憶装置も提供される。
本発明の1実施形態によれば、さらに、データ記憶装置であって、複数のアナログメモリセルを有するメモリと交信するように配されているインタフェースと、メモリがホストシステムで用いられている間に、メモリセルの各達成可能な記憶能力を追跡し、メモリで記憶するためにデータを受け取り、追跡された達成可能な記憶能力に基づいて、データを記憶するためのメモリセルのサブセットを選択し、サブセットのメモリセル中にデータを記憶するように配されたメモリ信号プロセッサ(MSP)とを有するデータ記憶装置も提供される。
本発明の1実施形態によれば、複数のアナログメモリセルを有するメモリと、このメモリと結合され、かつ、メモリセルの各達成可能な記憶能力を推定し、推定された達成可能な能力に基づいて、メモリセル中に記憶されるべきデータ量を定義する各記憶構成をメモリセルに割り当て、割り当てられた各記憶構成に基づいて、メモリセル中にデータを記憶し、メモリがホストシステムに組み込まれホストシステム中にデータを記憶させるために用いられた後に、アナログメモリセルの各達成可能な記憶構成を再推定し、再推定された達成可能な能力に応答して記憶構成を修正するように配されたメモリ信号プロセッサ(MSP)とを有するデータ記憶装置もさらに提供される。
実施形態によっては、メモリは、第1集積回路(IC)中にあり、MSPは、第1ICとは異なる第2IC中にある。これに代わる実施形態では、メモリとMSPとは、1つの素子中に集積されている。さらに、あるいは、MSPは、ホストシステムのプロセッサ中で実施されもよい。実施形態によっては、メモリセルは、フラッシュメモリセル、ダイナミック・ランダム・アクセスメモリ(DRAM)セル、相変化メモリ(PCM)セル、窒化読み出し専用メモリ(NROM)セル、磁性ランダム・アクセスメモリ(MRAM)セル、強誘電性ランダム・アクセスメモリ(FRAM)セルを有してもよい。
本発明の1実施形態によれば、複数のアナログメモリセルを有するメモリと、このメモリと結合され、かつメモリがホストシステムで用いられている間に、アナログメモリセルの各達成可能な記憶能力を追跡し、メモリで記憶するためにデータを受け取り、追跡された達成可能な記憶能力に基づいて、データを記憶するためのメモリセルのサブセットを選択し、サブセットのメモリセル中にデータを記憶するように配されているメモリ信号プロセッサ(MSP)とを有するデータ記憶装置もさらに提供される。
本発明は、以下の実施形態の詳細な説明を図面をと共に参照すると、より完全に理解されるであろう。
(図面の簡単な説明)
図1は、本発明の1実施形態によるメモリシステムを概略的に図示したブロック図である。
図2は、本発明の1実施形態によるメモリセルアレイを概略的に図示した図である。
図3は、本発明の1実施形態によるマルチレベルメモリセルアレイ中の、電圧分布を示したグラフである。
図4は、本発明の1実施形態によるメモリセルアレイ中のセル能力分布を示したグラフである。
図5は、本発明の1実施形態によるメモリセルアレイ中のブロックおよびページ構造を示した図である。
図6〜11は、本発明の実施形態によるメモリ素子の記憶密度を適応的に修正する方法を概略的に示したフローチャートである。
図12は、本発明の1実施形態による、可変能力のメモリ素子中にデータを記憶する方法を概略的に示したフローチャートである。
図13は、本発明の1実施形態による、可変能力のメモリ素子からデータを消去する方法を概略的に示したフローチャートである。
図14〜17は、本発明の1実施形態による、可変能力のメモリ素子中に、固定サイズのデータブロックを記憶する方法を概略的に示した図である。
概要
フラッシュメモリなどのアナログメモリセルアレイの達成可能な記憶能力は、経時変化する。多くの場合、メモリセルアレイの達成可能な能力は、プログラミングおよび消去動作を繰り返すことにより、経時及びその他の効果により、時間の経過に応じて低減する。この能力の変化は、アレイ中のセル毎に異なる。一方、通常、メモリ素子は特定の信頼性レベルで特定の能力を提供する仕様が定められ、かつ特定のデータ保持期間の間、この仕様に合うように定められている。
公知のメモリ素子、および、これに関する記憶方法では、メモリセルアレイのサイズと性能とを過剰に設計または過剰に仕様設定することにより、セル能力を変えているものもある。このような素子では、所望の保存期間に渡る劣化を予測して、この素子が仕様内に十分収まるように、メモリセルの数およびその性能に関して余裕を持った仕様が定められている。このような設計方法は、しばしば非効率的で、コストを上昇させ、より複雑さを増し、メモリ素子の使用可能な能力を低減させてしまう。
本発明の実施形態では、データが記憶される密度を適応的に修正することにより、メモリ素子中にデータを記憶するための方法およびシステムを改善している。
実施形態によっては、メモリ信号プロセッサ(MSP)が、アナログメモリセルを複数有するメモリ素子、例えばフラッシュまたはDRAM素子中でデータを記憶する。MSPは、メモリセルの達成可能な記憶能力を連続的に推定する。MSPは、メモリセル内の歪みレベル、そのデータに対して特定された信頼性および/または保存要件、セル中にプログラムされたデータ中で検出されたエラー、および/または、セルが経験した過去のプログラミングおよび消去動作の履歴などの因子に基づいて、達成可能な能力を推定してもよい。
推定された達成可能な能力に基づいて、MSPは、メモリセルに、それぞれ記憶構成を割り当てる。各記憶構成は、各メモリセル中に記憶可能なデータ量を定義している。例えば、記憶構成は、メモリセル中にデータを記憶するために用いられる、公称電圧レベルの数と誤り訂正コーディング(ECC)の枠組みを定義することができ、実施形態によっては、MSPは、限定された所定の構成セットから適切な記憶構成を選択する。
MSPは、セルに割り当てられた記憶構成にしたがって、メモリセル中にデータを記憶する。MSPは、長い時間に渡って、すなわちメモリ素子の耐用年数の全期間に渡って、記憶構成を適応的に修正し、その結果、メモリセル内にデータが記憶される密度が、セルの達成可能な能力に一致する。
記憶密度が直感的に特定されている公知のメモリ素子およびそのデータ記憶方法とは異なり、本明細書中に記載されている方法およびシステムでは、メモリアレイの全耐用年数に渡って、異なるメモリセルの達成可能な能力を追跡し、それにしたがってデータが記憶される密度を継続的に適応させている。その結果、時間の経過に伴ってメモリ素子の達成可能な能力が変化するにしたがい、この達成可能な能力は最適に活用され、これによりサイズやコストの削減ができる。
MSPは、メモリコントローラまたはその他のホストと相互作用を行い、すなわち、メモリコントローラからデータを受容してこれを記憶し、かつ、メモリコントローラから要求された際に、メモリ内に記憶されたデータを取り出す。実施形態によっては、MSPは、可変能力を有するセル群中にデータを記憶していても、メモリコントローラに対して、固定能力での動作を模倣することもある。このような方法は、例えば、固定能力および固定ページサイズを有するメモリ素子を制御するように設計された遺産的なメモリコントローラと、MSPが相互作用する場合に用いられる。このようにして、メモリコントローラの固定能力での動作と、本明細書中に記載された記憶方法の適応的な能力の特性との間で仲介することによって、遺産的なメモリコントローラも、修正なしに用いることができる。
システム記述
図1は、本発明の1実施形態によるメモリシステム20を概略的に図示したブロック図である。システム20は、様々なホストシステムおよび機器、例えば、演算装置、携帯電話またはその他の通信端末機器、取り外し可能なメモリモジュール(例えば、「ディスクオンキー」機器)、デジタルカメラ、音楽プレーヤおよびこれ以外のメディアプレーヤ、および/または、データが記憶され取り出されるこれ以外のシステムまたは機器中に用いられる。代表的な用途では、メモリシステム20は、メモリコントローラ22と相互作用し、すなわち、メモリコントローラからデータを受け取って記憶し、要求があった場合に、メモリ内に記憶されたデータをメモリコントローラに出力する。
システム20は、メモリセルアレイ28中にデータを記憶するメモリ素子24を有する。このメモリアレイは複数のアナログメモリセル32を有する。本特許出願および請求項の文脈では、「アナログメモリセル」という用語は、連続的に、電圧または電荷などの物理パラメータのアナログ値を保持する任意のメモリ部材を意味する。アレイ28は、任意の種類のアナログメモリセル、例えばNANDフラッシュセル、NORフラッシュセル、PCM、NROM、FRAM、MRAMおよびDRAMセルを有しうる。セル内に記憶される電荷レベル、および/または、セルに書き込まれおよび読み取られるアナログ電圧は、本明細書中、まとめてアナログ値と称する。
メモリ素子24中に記憶されるデータは、メモリ素子に与えられ、データバッファ36でキャッシュに入れられる。続いて、データはアナログ電圧に変換され、読み取り/書き込み(R/W)ユニット40(この機能については後ほど詳述する)を用いてメモリセル32中に書き込まれる。アレイ28からデータを読み取る際には、ユニット40は、電荷を変換し、これにより、メモリセル32のアナログ電圧を、それぞれ1ビット以上の分解能を有するデジタルサンプルに変換する。ユニット40で生成されたサンプルは、バッファ36中にキャッシュに入れられる。メモリ素子24の動作とタイミングは、制御論理48により管理される。
メモリ素子24のデータの記憶およびここからの取り出しは、メモリ信号プロセッサ(MSP)52により行われる。MSP52は、メモリ素子24と、メモリコントローラ22またはその他のホストとの間の仲介を行う。後ほど詳述するように、MSP52は、メモリセル32の達成可能な能力を適応的に推定するため、および、推定したセル能力に基づいて、メモリアレイ28中でデータの記憶および取り出しを管理するために、新規の方法を用いる。MSP52は、アレイ28中にデータが記憶される密度を適応的に修正し、システムの耐用年数に渡って最適の能力を提供する。
MSP52は、セルの達成可能な能力に応じて、異なる密度で、メモリセル32中にデータを書き込むことができる。本特許出願および請求項の文脈では、「能力」という用語は、所定のセルまたはセル群が確実の保持することができる(通常、セル毎ビット数の単位で表される)情報量を示すために用いられる。「密度」という用語は、実際に、あるセルまたはセル群に記憶されている情報量を、通常、セル毎ビット数の単位で示すために用いられる。このように、情報は、能力を超えない限り、あるセル群中に異なる密度で確実に記憶することができる。したがって、セルまたはセル群の記憶密度は、データが確実に記憶されている限り、定義上は、その能力を超えない。
MSP52は、例えば、セル32中にデータを書き込むために用いられる電圧レベルの数を変えることにより、セル32中のデータが記憶される密度を変化させることができる。より多くの電圧レベル数を用いることにより、より高い情報密度が可能となる。実施形態によっては、MSP52は、誤り訂正符号(ECC)を用いて、メモリ素子24中に記憶されたデータを符号化する。MSP52は、エンコーダ/デコーダ64を有し、これが、素子24に書き込まれるべきデータを符号化し、素子24から読み出されるデータを復号化する。実装によっては、MSP52は、異なる符合を選択することにより、またはECCの符号レートを変えることにより、情報密度を変える。
信号処理ユニット60は、素子24に書き込まれたデータおよび素子24から取り出されたデータを処理する。とりわけ、ユニット60は、セル32から読み取られた電圧中にある歪みを推定する。この推定された歪みを用いて、セル32の達成可能な能力を推定し、用いられるべき所望の記憶密度が決定される。MSP52は、データバッファ72を有し、これが、データを記憶するためのユニット60により用いられ、メモリ素子24との交信用のインタフェースとして機能する。MSP52は、入力/出力(I/O)バッファ56も有し、これが、MSPとメモリコントローラとの間のインタフェースを形成する。
メモリ管理ユニット76は、MSP52の動作とタイミングとを管理する。とりわけ、ユニット76は、各メモリセルまたはセル群の推定された能力および状態を追跡し、その結果、MSP52は、推定された能力に合う密度で、各セルまたはセル群中にデータを記憶する。信号処理ユニット60および/または管理ユニット76は、ハードウェア中に実装されてもよい。あるいは、ユニット60およびユニット76は、適切なソフトウェアを走らせたマイクロプロセッサを有してもよく、あるいは、ハードウェアとソフトウェアとの組み合わせを有してもよい。実施形態によっては、エンコーダ/デコーダ64またはその一部分も、ソフトウェア中に実装されてもよい。実施形態によっては、MSP52の機能性は、時には、ソフトウェアで実装され、適切なプロセッサまたはホストシステムのその他の要素により実行されてもよい。
図1の構成は、概念を明確にするためのみの目的で示した例示的なシステム構成である。これ以外の適切な構成を用いることもできる。本発明の原理を理解するのに不要な要素、例えば、種々のインタフェース、アドレス回路、タイミングおよびシーケンス回路、データスクランブル回路およびデバッグ回路は、明確性を保つために、図面から省略した。
実施形態によっては、メモリ素子24およびMSP52は、別の2つの集積回路(IC)中で実装されている。しかし、これに代わる実施形態では、メモリ素子およびMSPは、1つのICまたはシステムオンチップ(SoC)中に集積されてもよい。実施形態によっては、1つのMSP52は、複数のメモリ素子24に接続されていてもよい。システム20の特定の実施形態のさらなる構造面は、上述の米国特許仮出願60/867,399号中により詳細に記載されている。あるいは、メモリコントローラの一部の機能または全機能は、MSP52中に埋め込まれていてもよいが、この点については、以下により詳細に説明する。
一般的な書き込み動作では、メモリ素子24に書き込まれるべきデータは、メモリコントローラ22から受け取られ、I/Oバッファ56中にキャッシュとして入れられる。メモリ管理ユニット76は、データが書き込まれるべきセルを決定する。このユニット76は、特定されたセルの推定された能力に基づいて、用いられるべき記憶構成(例えば、電圧レベルの数と符号レートなど)も決める。エンコーダ/デコーダ64は、データを符号化し、符号化されたデータは、データバッファ72を介してメモリ素子24に送られる。素子24中でデータは一時的に、バッファ36中に記憶される。R/Wユニット40は、データをアナログ電圧値に変換し、このデータをアレイ28の適切なセル32に書き込む。
通常の読み取り動作では、R/Wユニット40は、適切なメモリセル32から、アナログ電圧値を読み取り、この電圧をデジタルサンプルに変換する。このサンプルは、バッファ36中にキャッシュとして入れられ、MSP52のバッファ72に転送される。データブロックは、バッファ72からユニット60へと転送され、エンコーダ/デコーダ64は、これらのブロックのECCを復号化する。この復号化されたデータは、I/Oバッファ56を介してメモリコントローラ22に転送される。
メモリコントローラ22は、パイソン・エレクトロニクス社(Phison Electronics Corp.)(台湾、チュートゥング、シンチュ(Chutung、Hsinchu)在)提供のPS8000 NANDフラッシュコントローラ素子などの公知の素子を有してもよい。この素子は、2007年3月28日付の「PS8000 コントローラ仕様」改訂版1.2中に、その仕様が指定されている。この文献は、本明細書中に参照されている。別の公知のメモリコントローラは、デナリ・ソフトウェア社(Denali Software、Inc)(カリフォルニア州、パロアルト在)提供のデータバーン(Databahn)(登録商標)フラッシュメモリコントローラIPである。この製品に関する詳細は、www.denali.com/products/databahn_flash.htmlに記載されている。さらに別の例は、データライト社(Datalight,Inc.)(ワシントン州、ボーデル在)提供のフラッシュFXプロ(FlashFX Pro(登録商標))フラッシュ・メディアマネジャーである。この素子に関しては、2006年11月16日付の「FlashFX Pro 3.1 信頼性のある製品を迅速に開発するための高性能フラッシュマネジャー(High Performance Flash Manager for Rapid Development of Reliable Products)」中に記載されている。この文献は、本明細書中に参照されている。
メモリコントローラ22が、従来型のメモリコントローラ機器を有する場合、これは、しばしばメモリ素子と交信するための所定のインタフェースおよびプロトコルを有する。これらのインタフェースおよびプロトコルは、通常、固定記憶能力を有するメモリ素子と交信するように設計されている。実施形態によっては、MSP52は、メモリコントローラ22が用いるデータ構造、インタフェースおよびプロトコルを模倣し、したがって、システム20の適応的な能力の特性とメモリコントローラ22の固定能力での特性との間で仲介する。この方法の数例を、以下の図14〜17中で説明する。
これに代わる実施形態では、メモリ管理の機能のいくらかがMSP52中に実装されている。このような実施形態では、MSPは、データ項目を記憶のために受け取り、固定能力動作を模倣することなく、データ項目に仕切りをつけ、これらを可変能力ページ中に記憶する。
MSP52とメモリ素子24との間のインタフェース、および/または、MSP52とメモリコントローラ22との間のインタフェースは、公知の標準またはプロトコルに準拠してもよい。例えば、これらのインタフェースの1つまたは双方は、オープンNANDフラッシュインタフェース(ONFI)仕様に準拠してもよい。このONFI仕様は、2006年12月28日付け「オープンNANDフラッシュインタフェース仕様」改訂版1.0に定義され、これは、本明細書中に参照される。
メモリアレイ構造および歪みのメカニズム
図2は、本発明の1実施形態によるメモリセルアレイ28を概略的に図示した図である。図2は、特定のアレイ構成で接続されたフラッシュメモリセルに言及しているが、本発明の原理は、その他の種類のメモリセル及びその他のアレイ構成にも同様に適用される。これらのセルタイプおよびアレイ構成の例は、上述の背景技術の項目で列挙した文献中に記載されている。
アレイ28のメモリセル32は、複数の行と複数の列とを有する格子状に配されている。各セル32は、フローティングゲートである金属酸化物半導体(MOS)トランジスタを有する。トランジスタのゲート、ソースおよびドレインに適切な電圧レベルをかけることにより、特定のセル中に特定の量の電荷(電子またはホール)が記憶されうる。セル中に記憶された値は、セルの閾値電圧を測定することにより読み取られ、この閾値電圧は、トランジスタを導通させるために、トランジスタのゲートにかけられる必要がある最小電圧として定義される。読み取られる閾値電圧は、セルに記憶された電荷に比例している。
図2の例となる構成では、各行中のトランジスタのゲートは、ワード線80により接続されている。各列のトランジスタのソースはビット線84により接続されている。実施形態によっては、NORセル素子中などでは、ソースはビット線に直接接続されている。これに代わる実施形態では、NANDセル素子などは、ビット線は、フローティングゲートセルのストリングに接続されている。
通常R/Wユニット40は、ゲート(すなわち、セルが接続されているワード線)に様々なレベルの電圧をかけ、かつ、セルのドレイン電流が特定の閾値を越えているか否か(すなわち、トランジスタが導通しているか否か)をチェックすることにより、特定のセル32の閾値電圧を読み取る。ユニット40は、通常は、セルが接続されているワード線に対して、一連の異なる電圧値をかけ、ドレイン電流が閾値を越える最低ゲート電圧レベルを決定する。通常、ユニット40は、ある行からのセル群から同時に読み取る。
実施形態によっては、ユニット40は、セルのビット線をある電圧レベルに予め帯電させることにより、ドレイン電流を測定する。ゲート電圧が所望の値に設定されると、ドレイン電流が、ビット線電圧を、セルを通して放電させる。ゲート電圧がかけられた数マイクロ秒後毎に、ユニット40はビット線電圧を測定し、ビット線電圧を閾値電圧と比較する。実施形態によっては、各ビット線84は各センス増幅器に接続され、この増幅器がビット線電流を増幅し、これを電圧に変換する。この電圧は、比較器を用いて閾値と比較される。
上述の電圧読み取り方法は、一例である。これに代えて、R/Wユニット40はこれ以外の適切な方法を用いて、セル32の閾値電圧を読み取ってもよい。例えば、ユニット40は、1つ以上のアナログデジタル変換機(ADC)を有し、これがビット線電圧をデジタルサンプルに変換してもよい。
実施形態によっては、ページ(行)全体に平行して書き込みおよび読み取りが行われる。セルの消去は、通常複数のページを含むブロック単位で行われる。通常のメモリ素子は、数十万ページを有することができ、各ページが数千セル(例えば、ページ毎に16Kまたは32Kセル)を有する。通常の消去ブロックは、ほぼ128ページであるが、これ以外のブロックサイズも使用可能である。
R/Wユニット40によりデジタル化される電圧は、種々の種類の歪みを含みうるが、これは、アレイ28中の様々な歪みメカニズムにより引き起こされる。ある歪みメカニズムは、セル内に記憶されている実際の電荷に影響を与え、またある歪みメカニズムは、検知された電圧に歪みを与える。例えば、アレイ中で隣接するセルとの間で電気的結合が行われることにより、特定のセル内での閾値電圧が修正されうる。この効果は、干渉雑音と称される。別の例として、電荷が、時間の経過にしたがって、セルから漏れることがありうる。この経時効果の結果、セルの閾値電圧は、当初書き込まれた値から、時間の経過にしたがって流れ出しうる。
別の種類の歪みとして、一般に、擾乱雑音と称される歪みが、アレイ中の特定のセルに対して読み取り、書き込みまたは消去動作を行うことにより引き起こされ、このセル以外で意図しないプログラミングや消去を引き起こしてしまう。さらに別の例として、特定のセルのソース・ドレイン電流は、隣接するセル、例えば、同じNANDセルストリング中の別のセルを充電することにより、バックパターン依存と称される効果により影響を受ける。
歪みと能力とのトレードオフ
図3は、本発明の1実施形態によるメモリセルアレイ28中の電圧分布を示したグラフである。図3は、メモリセルの達成可能な能力に対する、歪み効果を示すために用いられる。図3で電圧分布を示したメモリセルは、参照符号90A〜90Dで示される4つの公称電圧を用いて2ビットの情報をそれぞれ記憶するように構成されている。
メモリセル中に2データビットを記憶するために、R/Wユニット40は、4つの公称電圧レベルのうちの1つをセルに書き込む。この例では、電圧レベル90Aが「11」ビット値に相当し、電圧レベル90B〜90Dが、「01」「00」および「10」ビット値にそれぞれ相当する。
R/Wユニットは、特定の公称電圧レベルを書き込むが、様々な歪みメカニズムがゆえに、および、セルのプログラミングおよび消去における正確性が限定されているがゆえに、セルの実際の閾値電圧レベルは、通常、公称電圧から隔たりがある。92A〜92Dまでの曲線は、電圧分布の例である。曲線92Aは、「11」ビット値を記憶するセル内の電圧分布を示し、曲線92B、92C、92Dが、「01」「00」および「10」ビット値をそれぞれ記憶するセル内の電圧分布を示す。経時変化およびこれ以外の歪みメカニズムにより、読み取り時の電圧分布は、書き込み時の電圧分布とは異なりうることに注意されたい。
閾値電圧の全範囲は、3つの閾値94A〜94Cを定義することにより、4つの区間96A〜96Dに分けられる。メモリセルの閾値電圧レベルを読み取る際に、区間96A内に入る電圧レベルは、「11」ビット値に相当するものと推測され、同様に、区間96B〜96D内に入る電圧レベルは、それぞれ「01」「00」および「10」ビット値に相当するものと推測される。したがって、区間96A〜96Dは、しばしば決定区間と称され、閾値94A〜94Cは、決定閾値と称される。
あるデータビット値に応答して書き込まれる電圧が、誤った決定区間内に入る場合、このセルから読み取られるデータは、書き込まれたデータとは異なり、読み取りエラーとなる。所定の歪みレベルに関して、エラー性能と、セルの達成可能な能力との間にはトレードオフが存在する。公称電圧レベルの数が増えると(すなわち、記憶密度が増えると)歪み効果に関する決定区間の大きさは小さくなる。その結果、読み取り電圧は、誤った決定区間に入りやすくなり、エラーの可能性が増える。所定のエラーの可能性に関して、歪みのレベルが高まるので、セルの達成可能な能力は落ちる。
メモリセルアレイに渡るセル能力の変化
上述したように、メモリセルの達成可能な能力(すなわち、セル内に信頼性をもってプログラム可能な情報ビットの数)は、特定のセルの歪みのレベルに依存している。多くの実際の例では、達成可能な能力は、セル毎でかなり異なる。
アレイ28中の様々なセル32は、しばしば、異なる歪み特性を有する。例えば、消去ブロックの外側縁に位置しているセルなどでは、隣接するセルが少ないので、隣接するセルからの交差結合雑音レベルが低い。別の例として、セルをプログラミングすることにより、過去にプログラムされたセルに対して干渉、雑音およびバックパターン依存エラーが引き起こされるので、後にプログラムされたセルは、先にプログラムされたセルに比べて、あまりエラーレベルがより低い。さらに別の例として、あるセンス増幅器またはADCは、とりわけ高い雑音レベルを引き起こし、特定のビット線に沿ったセルが、これ以外のビット線に沿ったセルよりも高い歪みを有するようになる。これ以外の歪み特性は、特定のセルまたはその環境に対して行われた、プログラミングおよび消去動作の履歴に依存する。これらの要因およびこれ以外の要因により、セル32内の歪み、これにしたがってセルの達成可能な能力は、アレイ28全体で、しばしば有意に異なる。
図4は、本発明の1実施形態によるメモリセルアレイ中の、セル能力分布を例示したグラフである。曲線100は、異なるセルの達成可能な能力を示す。この例では、達成可能な能力は、セル毎に約4.2〜7.3ビットの間で変化している。曲線104は、所望のデータ保持期間にわたって信頼性のある性能を保証する、安全域を推測した上でのセルのプログラミングに用いることができる実際の記憶密度を示す。図面から明らかなように、記憶密度が、曲線104にしたがって各メモリセルに対して個別に割り当てられる場合、達成される平均的な密度は、セル毎で5ビットより高い値となる。
図4のアレイのメモリセルに、固定記憶密度が割り当てられるのであれば、セルのほとんどはより高い能力を達成可能であるにもかかわらず、全アレイは、セル毎に3ビットのみを有するとの仕様が定められねばならない。不良ブロック管理(BBM)方法を用いている公知のメモリ素子では、セルのいくつかの群は不良であると認識することにより、このアレイは、セル毎4ビットのアレイとの仕様が定められうる。BBM法は、例えば、2004年11月29日付け、エス・ティー・マイクロエレクトロニクス(STMicroelectronics)(スイス、ジュネーブ在)によるアプリケーションノートAN−1819「NANDフラッシュメモリ中の不良ブロック管理(Bad Block Management in NAND Flash Memories)」に記載されている。この文献は、本明細書中に参照されている。
本明細書中に記載された方法およびシステムでは、各セルまたはセル群中に、セルの達成可能な能力に合った密度でデータが記憶される。歪みレベルが低いセルには、より高い能力が与えられ、より強い歪みを受けているセルには、より低い能力が与えられる。本明細書中に記載された方法およびシステムでは、アレイの全耐用年数に渡って歪みおよび能力の変化を追跡し、これにしたがって様々なセル中にデータが記憶される密度を、適応的に修正する。
セルの能力を推定して、各セルまたはセル群に対してまとめて、記憶密度を割り当てることができる。より複雑な管理という犠牲を払って、セルの小さな群に対して、別々に密度を割り当てることにより、達成可能な能力に対してより繊細に記憶密度を合わせることができ、その逆も可能である。
図5は、本発明の1実施形態によるメモリセルアレイ110中のブロックおよびページ構造を示した図である。アレイ110は、複数の行114を有する。1つのメモリページは、同時に書き込まれる(プログラムされる)1群のメモリセルと定義される。場合によっては、各ページは、メモリセルのある行全体を有することもある。また別の場合には、各行が、数ページに分割されうる。データの消去は、アレイ110から、同時に複数のページ群を消去することにより行われるが、このページ群は消去ブロック118と称される。例えば、典型的な1ページは、16、384個のセルを有し、典型的な消去ブロックは、128ページを有しうるが、これ以外のサイズを用いてもよい。実施形態によっては、各ページは数個のセクターに分割されうる(不図示)。
以下の説明では、基本的な能力および密度割り当て単位は、ページである。換言すれば、ある特定のページ中の全メモリセルは、同じ数の電圧レベルを用いて、および同じECCを用いてプログラムされる。異なるページには、電圧レベル数および/またはECCを適応させることにより、異なる密度が割り当てられうる。これに代わる実施形態では、能力の推定および密度割り当ては、任意の所望の細かさを有するセルの群を用いて、例えば、ページ毎、ブロック毎、セクター毎またはセル毎ベースでさえも行われうる。実施形態によっては、能力推定および密度割り当ては、特定のビット線84またはワード線80に接続されているセルに対して、共に行われうる。
適応密度割り当て方法
以下の説明では、本発明の実施形態による、メモリセル32の群、例えばページの達成可能な能力を推定し、メモリ素子24の記憶密度を適応的に修正するいくつかの方法について説明する。
実施形態によっては、MSP52中の管理ユニット76は、記憶構成テーブルを保持する。このテーブルは、各ページについて、記憶構成と称されるパラメータセットを有する。ある特定のページの記憶構成は、そのページにいかにデータが記憶されるかを決定し、複数のパラメータを有しうるが、このパラメータは、例えば、そのページのメモリセル中にデータを記憶するために用いられる電圧レベルの数や、この電圧レベルの値、このページ中にデータを符号化するために用いられるECC、および/またはこれ以外の適切なパラメータである。トレリスコード化変調(TCM)またはこれ以外の符号化変調方法を用いる場合には、ECCと電圧レベルとの選択が組み合わされる。記憶構成に加えて、記憶構成テーブルは、推定された歪みレベルや、ページの推定された達成可能な能力などのパラメータも保持しうる。実施形態によっては、記憶構成の初期値を、製造時に記憶構成テーブル中に記憶することも可能である。
特定のページ中にデータを書き込む際に、MSP52は、そのページの記憶構成を尋ねる。MSPは、適切なECCを用いてデータを符号化し、符号化されたデータを、そのページの記憶構成により示される適切な数の電圧レベルにマッピングする。実施形態によっては、特定のページからデータを読み取る際に、MSPは、そのページの記憶構成により示されるレベルの数に応じて、R/Wユニット40により生成されたサンプルをハードビット決定に変換する。その後、MSPは、記憶構成中に示されるECCに対してECCデコーダを構成し、ECCを復号化する。あるいは、例えば、デコーダがソフトデコーダを有する際には、MSPは、このソフトデコーダを用いて、R/Wユニット40により生成されたサンプルを、ハードな決定を生成することなく、復号化する。
様々な数の電圧レベルを用いることにより、R/Wユニット40の設計、例えば、比較器、ADC、DAC、センス増幅器および関連する回路などの設計に対して影響を与えることができる。実施形態によっては、R/Wユニットの感度および分解能は、用いられる最大電圧レベルの最大数に合うように設計されている。これに代わる実施形態では、ユニット40は、あるページから閾値電圧を、分解能を高めて数回繰り返して(例えば、各回で異なる閾値を用いるなどして)読み取ることができる。管理ユニット76は、所望の反復回数を決定し、特定のページ中の記憶に用いられるレベル数に基づいて、結果となる分解能を決定することができる。
図6は、本発明の1実施形態によるメモリ素子24の記憶密度を、適応的に修正する方法を概略的に示したフローチャートである。この方法は、まず、MSP52がメモリセル32中で歪みレベルを推定することから始まる(歪み推定工程130)。MSP52は、セルの歪みレベルを推定するために様々な方法を用いることができる。
例えば、特定の対象となるセル中で歪みを推定するために、MSPは、隣接するセルから電圧を読み取り、隣接するセルと対象となるセルとの間の交差結合比率を推定し、隣接するセルによる累積交差結合雑音を演算することができる。
実施形態によっては、MSPは、あるページにおける歪みを、そのページに対して行われたプログラミング動作の後に、推定することができる。下の図7は、書き込み後の推定方法の例である。あるいは、MSPは、そのページに対して行われた読み込み動作の後に、あるページにおける歪みを推定することができる。下の図8は、読み込み後の推定方法の例である。プログラムされたデータの信頼性を検証することによって、例えば、エラーのない記憶が達成されるまで、より強くなる誤り訂正符号をかけることによって、能力を推定することも可能である。このような方法を、下の図9で説明する。
さらに、これに代えて、歪みレベルは、そのページに対して過去に行われたプログラミングおよび消去履歴に基づいて推定されることも可能である。このプログラミングおよび消去履歴は、数々の方法で歪みレベルに対して影響を与えうる。一般に、より古いセル(すなわち、最近、多くのプログラミングおよび消去動作が行われたセル)は、より新しいセル(より少ない数のプログラミングおよび消去動作が行われたセル)よりも、電流漏れレベルが高いと考えられる。したがって、歪みは、過去のプログラミングおよび消去動作から経過した時間によっても影響を受ける。プログラミングおよび消去動作の履歴に基づくセル能力の推定方法の例は、以下の図11で示される。
MSP52は、ページ能力を推定し、各ページで用いられる記憶構成を決定する(記憶構成演算工程134)。MSPは、推定された歪みに基づいて、達成可能なページ能力を推定し、適切な記憶構成(例えば、電圧レベルの数およびECC)を選択するために、任意の適切な方法を用いることができる。
通常、MSPは、推定された能力と設定した記憶密度との間で、ある安全域を残している。この安全域は、性能余裕とも称されるが、これは、所望のデータ保持期間に渡って、信頼できる動作を確保するために設定される。適切な記憶構成を決定するための方法の例をいくつか、後に説明する。MSP52のユニット76は、記憶構成テーブルを、新しく演算した記憶構成を用いて更新する。MSP52は、この更新した記憶構成を用いて、アレイ28のページに、続くデータを書き込む(書き込み工程138)。
P&Vにより支援された密度割り当て
図7は、本発明の別の1実施形態による、プログラミングおよび検証(P&V)プロセスに従って、メモリ素子24の記憶密度を適応的に修正する方法に関して概略的に示したフローチャートである。
P&Vプロセスは、メモリセルをプログラムするために一般的に用いられている。典型的なP&Vプロセスにおいては、セルは、電圧レベルがパルス毎に大きくなる一連の電圧パルスをかけることによりプログラムされる。プログラムされた電圧レベルは、各パルス後に読み取られ(「検証され」)、これが所望のレベルに達するまで、あるいは動作が時間切れするまで繰り返して続けられる。P&Vプロセスは、例えば、Jung他による、1996年11月号の、IEEE半導体回路ジャーナル(11:31)、1575〜1583頁「大容量記憶アプリケーション用の、117mmかつ3.3Vのみの128MbマルチレベルNANDフラッシュメモリ(A 117mm 3.3V Only128Mb Multilevel NAND Flash Memory for Mass Storage Applications)」、および、Takeuchi他による、1998年8月号のIEEE半導体回路ジャーナル(33:8)1228〜1238ページ「高速プログラミング・マルチレベルNANDフラッシュメモリ用のマルチページセル構造(A Multipage Cell Architecture for High−Speed Programming Multilevel NAND Flash Memories)」に記載されている。これらの文献は双方とも、本明細書中に参照されている。
図7で示す方法は、システム20の通常の動作と組み合わせることができる。この動作モードでは、特定のページ群(例えば、1ページまたは数個のNANDストリングを有するNANDメモリブロック)がプログラムされた後に、その歪みレベルが推定され、記憶構成が更新され、次のプログラミング動作において用いられる。この方法は、MSP52が、P&Vプロセスを用いて特定のページ群をプログラミングすることから始まる(P&Vプログラミング工程150)。反復された最後の回のP&Vに続いて、MSPは、歪みの統計値を演算する(P&V後の演算工程154)。最後の回のP&Vは、本質的に、そのページ中の様々なセルのプログラムされた電圧レベルを読み取ることを含む。MSPは、これらの読み取られた電圧レベルを用いて、このページ中の歪みレベルを演算してもよい。
プログラミング検証に用いられる読み取り分解能が、信頼性のある歪み推定を行うのに十分ではない場合もある。このような場合、MSPは、検証動作の読み取り分解能よりも高い分解能で、プログラムされたページ群の電圧レベルを読み取ることができる。
MSP52は、ページの推定された達成可能な能力を更新する(P&V後更新工程158)。MSPは、演算された歪みレベルを用いて、ページの記憶構成を更新し、すなわち、適切な電圧レベルの数とECCとを更新する。MSPは、更新された構成を、記憶構成テーブル中に記憶し、そのページの次のプログラミング動作の際に用いる。
実施形態によっては、MSP52は、プログラミング後にページ密度を高めてみてもよい。このような実施形態では、MSPは、プログラムされたデータが十分信頼性があるものか否か(すなわち、余裕エラーの可能性が低いと保証するのに十分高い余裕であることを、工程154で演算された歪み統計値が示しているか否か)を決定する。十分な性能余裕が存在する場合、MSPは、電圧レベルの数および/または符号レートを大きくすることにより、そのページの記憶構成を修正して、より高い密度を反映させる。
ページの記憶構成が、P&Vプロセスに関連して決定されると、P&Vプロセスのパラメータとそのページの記憶構成との間で、様々なトレードオフが行われうる。P&Vプロセスにおいては、プログラミング速度は、連続して繰り返されるP&V間の電圧増分または電圧ステップサイズを変えることにより、精度と引き換えて得ることができる。P&Vステップサイズを大きくすることにより、プログラミング精度を犠牲にして、反復を少なくしてページのプログラミングを行うことができる。またその逆もしかりである。このようなトレードオフは、例えば、Suh他による、1995年11月号の、IEEE半導体回路ジャーナル第30巻、11号、1149〜1156頁、「増分ステップパルスプログラミング枠組みを用いた3.3V、32MbNANDフラッシュメモリ(A 3.3V 32Mb NAND Flash Memory with Incremental Step Pulse Programming Scheme)」中に記載されている。この文献は、本明細書中に参照されている。
実施形態によっては、MSP52は、各ページ用に特定のP&Vステップサイズ値を設定する。各P&Vステップサイズは、記憶構成テーブル中でそのページの記憶構成の一部分として記憶される。特定のページをプログラムする際、MSPはその記憶構成を尋ね、適切なP&Vステップサイズを用いる。
このP&Vステップサイズ、電圧レベルの数およびECCは、様々な性能トレードオフを提供するように選択されうる。例えば、P&Vステップサイズがより大きい場合、エラーの可能性が高くなるという点を犠牲にして、迅速なプログラミングが可能になる。別の例として、電圧レベルを低く場合も、エラーの可能性が高くなる点を犠牲にして、迅速なプログラミングが可能になる。同様に雑音レベル、干渉レベルおよび磨耗レベルが低くすることができる。エラーの可能性を低くするのは、記憶密度が低くなる点を犠牲にして、電圧レベルの数を少なくすることにより、または、より強いECCを導入することにより、行うことができる。ECCの選択は、MSPの複雑さに対して影響を与える。したがって、記憶密度および/またはエラー性能は、プログラミング速度と引き換えに得ることができる。
決定に向けた密度割り当て
図8は、本発明の別の1実施形態による、メモリ素子24の記憶密度を、読み取り動作後に適応的に修正する方法を概略的に示したフローチャートである。
この方法は、MSP52が、素子24から特定のメモリページを読み取ることから始まる(ページ読み取り工程170)。MSPは、エラーが存在しないと想定して、このページ内の歪みレベルを演算する(読み取り後演算工程174)。通常、MSPは、各ソフトサンプルと対応するハード決定との間の差を演算する。検出エラーはないと想定されているので、差は歪みに起因する。ハード決定がECCデコーダにより発生させられうることに注意されたい。この歪みレベルは、ソフトサンプルと対応するハードな決定との間の差のスカラー関数の合計(例えば、差の二乗の合計)を演算することにより想定されうる。この歪みは、差がある特定の閾値を越すセルの数を勘定することによっても推定されうる。これらの閾値が、ハード決定を得るためにセルを読み取る際に用いられる閾値レベルである場合、この歪みの推定は、ECCにより補正されるエラーの数を含む。
MSPは、ページの推定される達成可能な能力を更新する(読み込み後更新工程178)。MSPは、演算された歪みレベルを用いて、記憶構成テーブル中のページの記憶構成を更新し、これをそのページに対する次のプログラミング動作で用いる。図8の方法は、システム20の通常の動作と組み合わせることもできる。この動作のモードでは、データを読み込んだ後に、特定のページをプログラムし、その歪みレベルを推定し、その記憶密度を、次のプログラミング動作で用いるために更新する。
実施形態によっては、読み取り動作の速度を遅くしないように、MSPは、システムがアイドルである期間中に、この歪み推定タスクを実行することができる。
実施形態によっては、MSPは歪みレベルを盲目的に推定することができる。すなわち、ハード決定がエラーを含まないことを想定せずに、推定を行うことができる。例えば、セルに書き込まれた公称電圧レベルが1Vおよび3Vである際、多くの読み取り電圧が2V付近にあれば、MSPは、データを検出しなくても、歪みレベルは高いとの結論を出してもよい。
プログラムされたデータの信頼性に基づいて、密度を適応させる
実施形態によっては、MSP52は、あるページに書き込まれたデータの信頼性を評価することによって、そのページの達成可能な能力を推定する。場合によっては、MSPは、セルを消去することなく、あるページの記憶構成を適応させる。これらの場合では、そのページを消去することなく、続くプログラミング周期において、既存のページ中に追加のデータを書き込むことができる。密度の変更は、電圧レベルの数を修正しおよび/またはECCを修正することにより、達成される。
図9は、本発明の1実施形態によるメモリ素子24の記憶密度を、適応的に修正する方法の例を概略的に示したフローチャートである。この例では、データのプログラミングは、体系的なECC(すなわち、符号化されていないビットを修正することなく、符号化されていない情報ビットに基づいて冗長ビットを加えるECC)を用いて行われる。記憶密度およびエラー性能は、冗長ビットの数を適応させることにより修正される。
この方法は、MSP52が、符号化なしに特定のページをプログラミングすることから始まる(符号化なしのプログラミング工程190)。必要というわけではないが通常は、電圧レベルの数は、記憶密度が所定の性能余裕を少し越えるように、すなわち、そのページが少しエラーを含みうるように、選択される。
MSPは、そのページからデータを読み取り、随意的に復号化し(復号化工程194)、メモリセル中の歪みレベルをチェックする(歪みレベルチェック工程198)。現在そのページに割り当てられている記憶構成に対して、歪みが高すぎる、低すぎる、あるいは、容認可能であるか否かを決定するために、MSPは様々な方法および基準を用いうる。例えば、MSPは、復号化されたページがECCにより補正されていないエラーを含むか否かをチェックしてもよい。
あるいは、MSPは、そのページのメモリセルから読まれた電圧セットと、ECCの符号語との間の距離メトリックの値を求めることも可能である。MSPは、読み取られた電圧から正確な符号語(すなわち、実際にセルに書き込まれる符号語)までの距離を、他の符号語からの距離と比較してもよい。このために、ハミング距離またはユークリッド距離などの適切な距離を用いることができる。
MSPは、工程198で評価した歪みに基づいて、ページに割り当てる記憶構成を適応させる。歪みレベルが容認可能であれば、MSPは、現在の記憶構成を維持し、この方法は終了する(終了工程202)。歪みレベルが高すぎる場合は、MSPは、ECCの冗長レベルを高くする(すなわち、冗長ビットを加える)(冗長増大工程204)。続いて、ページの密度を小さくする。MSPは、記憶構成テーブルをこれに応じて更新する(構成更新工程206)。そしてこの方法は、一巡して上述の工程194に戻る。歪みレベルが低すぎる場合(すなわち、性能が容認不可能なほど劣化することなく、記憶密度を上げることができる場合)は、MSPは、ECCの冗長度を低くする(冗長低減工程208)。MSPは、工程206で記憶構成テーブルを更新する。そしてこの方法は、一巡して上述の工程194に戻る。この方法は、現在の歪みレベルに合う冗長ビットの適切な数に収束するまで、繰り返して続けられる。
プログラムされたデータの信頼性をチェックし、必要であれば、冗長ビットの数を増やすことは、素子24の耐用年数に渡って、例えば、上の図8の方法を用いて、時々行われる。歪みレベルは時間の経過に応じて変化するので、記憶構成は、それにしたがって適応させられ、所望のエラー性能を維持する。
実施形態によっては、記憶構成は、図9の方法を用いて、セルを消去することなく適応させられうる。例えば、ECCが体系的なコードを有するとき、冗長ビットは、符号化されていないビットとは別に記憶されうる。符号化されていないビットを記憶するセルを消去または再プログラミングすることなく、冗長ビット数を増加または減少することができる。
これに代わる技術、すなわち、セルを消去することなくあるいは追加のセルをプログラミングすることなく、セル群(例えば、あるページ)の記憶密度を増やすこれに代わる技術は、すでにプログラミングされたセルに対して追加のプログラミング動作を実行することが含まれる。例えば、セルがレベル0...(2n−1)にプログラミングされうるメモリセルアレイを考えると、レベルiに対応する記憶される電荷レベルは、レベルi+1に関連する電荷レベルよりも小さくなる。
実施形態によっては、m個のメモリセルを、最初に偶数順のレベル、すなわち、レベル0,2,...2n−2のレベルにプログラムする。セル内の歪みレベルを推定した後に、MSPは、バイナリーエンコーダを用いて情報の更なるビットを符号化し、このバイナリーエンコーダがm個の符号化ビットを生成する。エンコーダの符号レートは、推定された歪みに依存している。MSPは、(消去することなく)符号化されたビットが「1」であるセルを、奇数順レベル、すなわちレベル1,3,...2n−1に再プログラムする。例えば、新しいセルレベルは、y(m)=x(m)+b(m)として書くことができ、ここで、y(m)はセルmの新しいレベルを表し、x(m)はセルの元のレベルを表し、b(m)は、m番目に符号化されたビットの値(「0」または「1」)を表す。この枠組みは、推定された歪みに応答して適応された、適応レートトレリスコード化変調(TCM)としてみなされうる。
記憶構成の有限セット
実施形態によっては、MSP52は、各ページに対して、所定の記憶構成セットから、適切な記憶構成(例えば、レベルの数およびECCの枠組み)を選択する。記憶構成の有限セットを用いることにより、MSPの複雑さを低減し、とりわけ、ユニット76中の記憶構成テーブルを単純化する。
図10は、本発明の1実施形態による、記憶構成の有限セットを用いて、メモリ素子24の記憶密度を適応的に修正する方法を概略的に示したフローチャートである。この方法は、記憶構成セットを予設定することから始まる(予設定工程210)。各記憶構成は、特定の電圧レベルの数と、特定のECCの枠組みとを特定する。これにより、各記憶構成は、ある記憶密度を、すなわち、あるセル毎のビット値を規定する。
セル毎のビット数は、整数である必要はないことに注意されたい。これは、(1)電圧レベルへのデータビットのマッピングは、セル群に対して共に行われうるのであり、個々のセルに対して行われるのではないため、および、(2)電圧レベルの数は2の累乗でなくてもよいためである。分数のセル毎のビットの記憶密度を実装する方法の一例を、以下に説明する。下記の表は、10個の記憶構成のセットの例を示す。
Figure 0005183625
記憶構成0は、不良ページを示し、これは用いられない。構成1〜9は、セル毎ビット数が1〜4.5の間である、異なる9個の密度レベルを示す。これに代わる実施形態では、任意のこれ以外の記憶構成のセットを用いることができる。
通常、管理ユニット76中の記憶構成テーブルは、予設定されたセットから選ばれたあるデフォルトの記憶構成により初期化される。あるページを書き込む際に、MSP52は、このページの記憶構成により特定されたECCおよびレベルの数を用いて、データを符号化し、マッピングする(ページプログラミング工程214)。
プログラミング動作または読み取り動作に続いて、MSPは、そのページの性能余裕を推定する(余裕推定工程218)。MSPは、上述のように、そのページから読み取った電圧内の歪みを測定することによって、または、ページから読み取ったデータの信頼性を評価することによって、性能余裕を推定してもよい。この余裕は、信号対雑音比(SNR)で表してもよいし、これ以外の測定基準を用いて表してもよい。
MSPは、そのページ用に特定された記憶構成が、そのページの現在の能力と合うか否か、または、記憶密度を増やすまたは減らすべきか否かを決めるために性能余裕を使用している。例えば、MSPは推定された余裕を、閾値と比較してもよい。
推定された余裕が、記憶構成が修正されるべきであると示すと、MSPは、所定のセットから異なる構成を選択する(構成更新工程222)。MSPは、記憶構成テーブル中で構成選択を更新し、このページに対する続くプログラミング動作は、更新された記憶構成を用いて行われる
実施形態によっては、MSP52は、ECC符号化の前に、特定のページ中に記憶されるべきデータを圧縮する。当該分野において公知のいずれの圧縮方法をも、これが無損失であれ、損失の多い方法であれ、この目的のために用いることができる。この圧縮とECC符号化との組み合わせにより、異なる記憶密度を、すなわち、異なるセル毎のビット値を生成できる。
実施形態によっては、各ページに記憶される全ビット数(Mと表す)は、異なる記憶構成中でも一定であり、正味の情報ビットの数(Kで表す)は可変である。例えば、あるページが4、224メモリセルを有すると想定し、これらのセルが、16個の電圧レベルを用いてプログラムされる(すなわち、各セルが4ビットを記憶する)と想定する。1ページに記憶される全ビット数は、4.224×4=16、896ビットである。7/8のECC符号レートを用いると、このページ中に記憶可能な正味の情報ビット数は、14,784ビットである。より低い13/16のECC符号レートを用いると、このページ中に記憶可能な正味の情報ビット数は、13、728ビットである。しかし、二番目の記憶構成の方が、ECCがより強いので、より頑健である。
あるいは、メモリセル毎の電圧レベルの数を、記憶構成毎に変更することも可能である。すなわち、KもMも変更される。例えば、以下の表で、4、224セルページのアレイ中で用いられる3つの記憶構成を示す。
Figure 0005183625
実施形態によっては、各ページを、一定の正味の情報ビット数を持つセクターに分割する。ページ毎のセクター数が可変である。例えば、以下の表に、4、224セルページのアレイ中で用いられる3つの記憶構成を示す。この例では、各セクターは、2/3のレートのECCを用いて符号化された、正味1、412ビットの情報ビットを有し、2、118の記憶されるビットを生成する。
Figure 0005183625
プログラム/消去履歴を用いた能力推定
上述したように、特定のメモリセル32中の歪みレベルは、セルが経験したプログラミングおよび消去動作の履歴に依存しうる。したがって、MSP52は、通常、より古いセルに対して、より低い記憶密度を有する記憶構成を割り当て、逆も行う。
歪みが、セルの漏れ電流により引き起こされる場合もある。漏れ電流の効果は、例えば、IEEE国際信頼性物理学年次シンポジウム(カリフォルニア州、サンノゼ、2006年3月開催)、29〜35頁中、Mielke他による「フラッシュメモリの配分周期における回復効果(Recovery Effects in the Distributed Cycling of Flash Memories)」に記載されている。この文献は、本明細書中に参照されている。この論文によれば、プログラミングおよび消去周期により引き起こされる誘電損失は、周期間の遅延の間に部分的に回復する。この論文は、電荷捕獲を行うデータ保持メカニズムに対するこれらの遅延の効果の特性を記述している。したがって、漏れ電流に関連する歪みのレベルは、過去のプログラミングおよび消去動作が行われたときから経過した時間の長さに依存している。これ以外のタイプの歪みは、電荷捕獲、したがって、最近のプログラミングおよび消去動作により影響を受けうる。例えば、雑音エラーのレベルは、電荷捕獲の数が多いメモリセル中で高まりうる。
図11は、本発明の1実施形態による、プログラミングおよび消去動作の履歴に基づいて、メモリ素子24の記憶密度を適応的に修正する方法を概略的に示したフローチャートである。この方法は、アレイ28の様々なメモリセル32に対して、プログラミングおよび消去動作が行われた時間を、MSP52の管理ユニット76が記録することから始まる。MSPは、プログラミングおよび消去動作の時間にタグをつけるために、現在時間を追跡するために動作し続けるカウンターを維持しうる。あるいは、時間タグは、メモリコントローラ22により提供される場合もある。
通常、プログラミング動作はページ毎に行われ、消去動作は全消去ブロックに対して行われるので、MSPは、プログラミングおよび消去時間をページ毎に記録することができる。この情報は、各ページに対する記憶構成の一部分として、記憶構成テーブル中に記憶されうる。消去時間は、ページ毎または消去ブロック毎で記録されうる。
MSP52は、特定のページ中の漏れ電流を推定する(漏れ推定工程234)。MSPは、記録されたプログラミングおよび消去時間に基づいて、漏れ電流を推定するために、様々な推定器および基準を用いることができる。例えば、漏れ電流は、以下の関数により推定されうる。
Figure 0005183625
ここで、ProgramTime(n)は、そのページに対して行われたn番目のプログラミング動作の時間(上述の工程230で記録された時間)を表す。CurrentTimeは、推定が演算された時間を表す。は、a0・・・Kは、重み付け係数を表し、通常、より最近に行われたプログラミング動作に対して、より高い重み付けが行われる。i>1で、a=0の場合、推定は、最新のプログラミング動作に基づいてのみ行われる。
これに代わる実施形態では、漏れ電流は、ある期間(例えば、最新の1日、1時間または1分)内に行われた消去動作の数に基づいて推定されうる。さらに、あるいは、漏れ電流は、以下のような関数を用いて反復的に推定することも可能である。
Figure 0005183625
ここで、0<δ<1は、重み付け係数または「忘却因子」を表す。推定を繰り返すことにより、MSP52は、複数の時間タグを記憶するのではなく、最新の2つのプログラミング動作の時間と過去の推定の値のみを記録することができる。
これに代えて、MSPは、記録されたプログラミングおよび消去動作の履歴に基づいて、漏れ電流を推定する、これ以外の任意の推定方法を用いることができる。
実施形態によっては、MSPは、他の因子に基づいてセル歪みを推定する(補完的な歪み推定工程238)。この歪み推定では、測定した隣接するセルからの交差結合比率に基づいて、またはその他の適切なプロセスに基づいて歪み推定を行うことができる。
MSPは、上の工程234で行った漏れ電流推定を、上の工程238で行った歪み推定と組み合わせ、そのページの能力を推定する(能力推定工程242)。例えば、能力は、以下の関数を用いて推定可能である。
Figure 0005183625
ここで、Cは、基本となる能力値で、βおよびγは、漏れ電流および歪みの推定に所望の相対的な重み付けを当てる重み付け係数である。実施形態によっては、工程238は省略し、MSPは、γ=0に設定するなどして、漏れ電流の推定のみに基づいて、ページ能力を推定してもよい。
MSP52は、更新したページ能力値により記憶構成テーブルを更新する。MSPは、任意の適切な方法、例えば上述したような方法を用いて、このページに関するページの密度と、適切な記憶構成(例えば、ECCおよび電圧レベルの数)とを決めてもよい。
分数のセル毎ビット値を用いた密度の割り当て
実施形態によっては、MSP52は、非整数のセル毎ビット数を有する記憶構成を定義することができる。例えば、2の累乗ではない電圧レベルの数を用いて、記憶密度を増大させ、セルの達成可能な能力に近づくことができるという場合もある。セル毎ビット数が整数ではない場合、MSP52は、様々な方法を用いて、データビットを電圧レベルにマッピングすることができる。
Kが、特定のページ中のデータを記憶するために用いられる電圧レベルの数を示すとする。Kは、2の累乗である必要はなく、したがって、記憶密度は整数である必要はない。K個のレベルで表すことができる最大ビット数は、nopt=log(K)で示される。これは、一般には非整数値である。この最適な記憶密度に達するために、無限の数のデータビットが、無限の数のメモリセル中に記憶される必要があり、プロセスは、無限の遅延を含みうる。しかし、現実の場面では、最適の記憶密度からの偏差は、処理遅延(すなわち、データを記憶するために用いられるセルの数)と引き換えることができる。
は、データを記憶するために用いられるメモリセルの数を表し、ntbが、nセル中に記憶される全ビット数を表し、nおよびntbが、共に整数であるとする。記憶密度は、nbpc=ntb/n・ntbで与えられ、ngap=nbpc−noptで与えられる最適密度からの偏差が、負ではなくかつ最小限になるように、nが選択されるべきである。nを大きくすることにより、nbpcがnoptに近づくが、マッピングが複雑になり、処理遅延が増える。
およびntbの所望の値を選択後、MSP52は、ntbデータビットの各群を、n電圧にマッピングし、続いて、これらがn個のメモリセルに書き込まれる。各ntb電圧は、K個の可能なレベルのうちの1つをとる。ntbデータビットは、b1,...,bntb∈{0,1}で表される。
実施形態によっては、MSP52は、底がKのビットで表されるntbビットのバイナリー数字を表すことにより、ntbデータビットを、n個の電圧にマッピングする。換言すれば、MSP52は、nの係数を、k1,...,knc∈{0,...,K−1}に決定し、以下のようになる。
Figure 0005183625
次に、MSP52は、n個のメモリセルを、k1,...,kncの値でプログラムする。
例えば、K=11とする。この場合の最適な記憶密度は、nopt=log(11)=3.4594である。データがn=3個のセルの群に書き込まれるとすると、最適の密度からの偏差は、ngap=0.1261であり,ntb=10である。一連の10個のデータビットは、3つのメモリセルにマッピングされ、各々が11の電圧レベルを使用している。例えば、「1101100100」の一連のビットは、k=7、k=1およびk=10である。
可変能力メモリ素子中に、データを記憶および消去する。
図12は、本発明の1実施形態による、可変能力メモリ素子中にデータを記憶する方法を概略的に示したフローチャートである。この方法は、MSP52が、メモリコントローラ22からデータ項目を記憶するために受け取るところから始まる(入力工程250)。
実施形態によっては、メモリコントローラは、データ項目を記憶するための、ある信頼性要件を特定する。メモリコントローラは、要求される記憶信頼性を特定するための任意の適切な方法または形態を用いることができるが、例えば、最大許容エラーの可能性を明示的に特定することによって、または、信頼性レベルを所定のレベルセットから選択することによってこれを行う。必要ではないが、しばしば行われるのは、信頼性要件は、データ項目を生成した応用のエラー許容性と関連している。例えば、オーディオまたはビデオ媒体を含むファイルは、比較的低い許容性レベルで記憶可能である。一方、プログラムコードを含むファイルや、オペレーティングシステムのデータファイルは、通常、より高い信頼性レベルで特定される。
これに加えてまたはこれに代えて、メモリコントローラは、データ項目を記憶するためのある保持要件を特定してもよい。この保持要件とは、データ項目が記憶されると予測される期間を示している。例えば、一時的なオペレーティングシステムファイルは、より低い保持期間で特定されうる。
MSP52は、アレイ28中であるデータ項目を記憶する1つまたは複数のページセットを選択する(ページ選択工程254)。通常、管理ユニット76は、各メモリページの状態を追跡する。各ページは、「消去された」状態(すなわち、プログラミング用に利用可能な状態)、「情報を含む」状態、「不良」状態または「消去準備完了」状態を有しうる。上述したように、ユニット76は、各ページ中に用いられうる、そのページで記憶されうるデータ量を規定する記憶構成(例えば、電圧レベルの数およびECC)をも有する。
ユニット76は、そのデータ項目を記憶するのに十分な総計サイズを有する「消去された」ページセットを1つまたは複数選択する。実施形態によっては、ユニット76は、順次「消去された」ページを走査し、総計サイズがそのデータ項目を記憶するのに十分となるまでページを選択する。あるいは、ユニット76は、ページを選択する様々な方策および基準を適用することもできる。
例えば、ユニット76は、アレイ28に渡っての磨耗の平滑化をよりよく行うために、比較的プログラミングおよび消去周期の経験数が少ないページを選択してもよい、別の例として、ユニット76は、使用されないメモリセルの数を最小限にするために、総計サイズが、データ項目のサイズに最もよく合う(すなわち、そのデータ項目のサイズを、できる限り少なく上回る)ページセットを探してもよい。さらに別の例として、ユニット76は、最小数のページにデータ項目を分割し、プログラミング時間、磨耗コストおよび管理コストを低減するために、高能力のページに優先度を与えてもよい。あるいは、ユニット76は、記憶用のページを選択する際に、これ以外の適切な基準または基準の組み合わせを用いてもよい。
実施形態によっては、ユニット76は、そのデータ項目用に特定された信頼性要件および/または保持要件に基づいて、ページの記憶構成(したがって、記憶密度)を修正する。例えば、データ項目が比較的低い信頼性要件および/または保持要件を有する場合、ユニット76は、より高い歪みを有するセル中に、および/または、セルの歪みレベルに対してより高い密度で項目を記憶してもよい。
MSP52は、選択したページにデータ項目を記憶する(記憶工程258)。ユニット76は、記憶用に用いられたページの状態を「情報を含む」状態に設定し、必要に応じてそのページの記憶構成を更新する。ユニット76は、データ項目を記憶するために用いられたページの識別も記録し、その結果、これらのページは、システム20が後にデータ項目を取り出すよう要求した際に、アドレスされうる。
実施形態によっては、システム20は、メモリコントローラ22から、利用可能なメモリサイズを報告するように要求されうる。この例では、ユニット76は、「消去された」とマークされたページの能力を合計し、その結果を、利用可能なメモリサイズとして報告する。
図13は、本発明の1実施形態による、可変能力のメモリ素子からデータを消去する方法を概略的に示したフローチャートである。この方法は、MSP52が、メモリ素子24からあるデータ項目を消去せよという要求を、メモリコントローラ22から受け取ることから始まる(消去要求工程270)。MSP52中の管理ユニット76は、そのデータ項目を記憶するために用いられているページを特定し、それらのページを、「消去準備完了」とマークする(消去工程274)。
データ項目を記憶しているページは、1つ以上の消去ブロックに渡って存在している可能性がある。これらのブロックを消去可能にする前に、使用中の(すなわち、「情報を含む」状態である)これらのブロック中の任意のページを、他の消去可能なブロックに移動すべきである。
ユニット76は、上述の工程274で特定されたページを含む消去ブロックが、使用中のページを含むか否かをチェックする(使用中チェック工程278)。消去ブロックが、使用中のページを含まないのであれば、ユニット76は、そのブロックを消去し、これらのブロック中のページの状態を「消去された」と更新する(消去工程282)。一方、ユニット76が、消去を計画していたブロック中のいくつかのページが使用中であることを検出するならば、ユニット76は、これらのページに記憶されているデータを他のページ、すなわち消去を計画していたブロック外に移動する。(場合によっては、ユニット76は、ブロックを消去しないように決定する場合もありうる。例えば、ある消去ブロックが、消去されるデータ項目に属するページを1ページ含み、かつ全ての他のページがすでに消去されている場合である。)
ユニット76は、消去を計画していたブロック外にあり、かつ総計サイズが使用中のページ内でデータを記憶するのに十分である1つまたは複数のページセットを選択する(移動選択工程286)。ユニット76は、データが、適切な方針または基準に基づいて、移動先のページを選択することができる。例えば、このページは、利用可能なページから順に選択可能である。あるいは、ユニット76は、上述の図12の方法のページ選択工程254で記載したように、磨耗平滑化を高め、未使用のメモリセルの数を減らすように選択可能である。さらに、あるいは、ユニット76は、これ以外の任意の適切な基準を用いることもできる。
ユニット76は、使用中のページ中に記憶されたデータを、上述の工程286で選択されたページに複写する(移動工程290)。移動動作は、ページ数を守る必要はなく、データをページ中で仕切る必要もないことに注意されたい。素子中24中のページの能力は異なっているので、移動されたデータは、異なる数のページに複写されることもでき、および/または複数のページ中に、元の記憶とは異なる形で仕切られることもできる。データが移動されると、上の工程274で特定されたブロックは消去される(消去工程282)。
可変能力メモリ素子中でのデータ記憶管理
上述したように、MSP52は、メモリコントローラ22と相互作用し、すなわち、メモリコントローラから記憶用にデータを受け取り、メモリ中に記憶されたデータを、要求があればメモリコントローラに出力する。システム20は、メモリコントローラとまたは、一般にホストシステムと様々な方法で相互作用するが、この相互作用では、MSPにより実行される管理機能性のレベルは各々異なる。
ある極端な例では、システム20は、固定能力メモリ素子を制御するよう設計されている遺産的なメモリコントローラと相互作用する。この場合、メモリコントローラは、固定能力ページテーブルを保持し、これは、各データ項目を記憶するために、どの固定能力ページが用いられているかを示す。固定能力ページテーブルは、各固定能力ページまたはブロックの状態も保持し、ある消去ブロックが不良ブロックとして考えられているか否かを示す。
これらの実施形態では、MSP52は、システム20の適応能力特性と、メモリコントローラ22の固定能力特性との間で、2つの平行する索引の仕組みを維持しながら、仲介を行う。メモリコントローラに対して、MSPは固定能力ページの索引の仕組みを用いて交信を行い、その結果システム20は、メモリコントローラからは固定能力機器のように見える。システム20の内部では、MSP52は、可変能力ページ中でデータ項目を効率的に記憶する。MSPは、可変能力ページの別の索引の仕組みを維持しており、この仕組みでは、どの可変能力ページが、各データ項目を記憶するのに用いられるのかを示す。MSPは、データを書き込みおよび読み取る際に、2つの索引の仕組みの間で翻訳を行うことができる。
メモリコントローラ22が、ECC符号化および復号化、メモリから読み取ったデータ中のエラーの検出、および/または、不良ブロック管理などの機能を実行する場合もある。本明細書中に記載された技術を用いて、データ構造またはプロトコルを修正せずに、メモリ素子24を制御するために、公知のメモリコントローラを用いることができる。
逆の極端な例では、MSP52自体により、メモリコントローラ22の機能が実質的に実行される。これらの実施形態では、MSPは、ホストシステム(例えば、コンピュータのCPU)から任意のサイズのデータ項目を受け取り、そのデータ項目を、アレイ28の可変能力ページに記憶する。メモリ管理機能は、MSPにより実行されるので、固定能力索引を模倣する必要はなく、MSPは、1つの索引の仕組みのみを維持する。
さらにあるいは、MSP52は、システム20とホストシステムとの間で、これ以外のメモリ管理機能の適切な区分けを支援してもよい。1つのMSP機器が、異なるインタフェースおよび索引の仕組みを支援し、異なるメモリコントローラまたはホストと相互作用する。
図14〜17は、本発明の1実施形態による、可変能力のメモリ素子中に、固定サイズデータブロックを記憶する方法を概略的に示した図である。
図14は、固定のセル数を有する消去ブロックを持つメモリ素子中にデータを記憶するように設計され、不良ブロック管理(BBM)機能を実行するメモリコントローラと相互作用する方法を示す。公知のBBM方法では、ブロック中の1ページのみが不良である場合でさえも、その消去ブロックは不良ブロックとして分類される。このような方法は、極めて非効率である。というのも、その不良とされたブロック中のほとんどのメモリセルは使用可能であるからである。一方、図14の方法を用いれば、システム20は、不良と分類されたブロックの使用可能なメモリセル中に、データを効率的に記憶する。
典型的な書き込み動作では、メモリコントローラ22は、メモリアレイ304中に記憶するためのデータ項目300を受け取る。アレイ304は、複数のメモリブロック308を有する。メモリコントローラ22は、データ項目を、1つまたは複数の固定サイズブロック(ここでは、コントローラブロック312と称する)に分割する。各コントローラブロック312は、特定の利用可能なメモリブロック308中に記憶されるという予定になっている。メモリコントローラ22は、コントローラブロック312を、記憶のためにMSP52に提供する。
いくつかのブロック308の能力は低くなっている(すなわち、コントローラブロック312のサイズよりも能力が小さい)が、これは、歪み効果、製造不良またはこれ以外の理由によるものである。公知のBBM方法を用いると、このようなブロックは、不良ブロックと分類され、そのメモリセルの大多数が使用可能な状態であったとしても、そのブロックは使用されないままである。
一方、MSP52は、メモリブロック308全てを、可変能力ブロックとして認識し、ブロックを良好または不良との分類をしない。MSPは、コントローラブロックから、データを抽出し、データを複数のフラグメント316に再度仕切る。この複数のフラグメントは、同じサイズでも異なるサイズであってもよい。MSPは、フラグメント316のサイズに合う能力を有する複数のメモリブロック308を特定し、各フラグメントを各メモリブロック中に記憶する。この例では、MSPはデータ項目を3つのフラグメントに分割し、これを、#3、#6および#10の記号を付けられたメモリブロック中に記憶する。
MSP52は、各データ項目を記憶するブロックを決めるための様々な方法および基準を用いることができる。例えば、MSPは、能力がより小さく、かつ総計能力が、1つのコントローラブロックのデータを記憶するのに十分であるメモリブロックの対を探してもよい。その後、MSPは、コントローラブロックを、その一対のメモリブロックにマッピングする。別の例として、MSPは、利用可能なメモリブロックを探索し、総計能力がデータ項目300のサイズに最もよく合う、2つ以上のブロック308を決定してもよい。この方法を利用して、無駄になるメモリの量を最小限にする。
あるいは、MSPは、管理コストを低減させるために、データ項目が記憶されうるブロックの数を最小限にするセットを探索することも可能である。さらにあるいは、MSPは、磨耗平滑化を改善するために、最近のプログラミングおよび消去周期の経験数が最小数であるブロックを選択してもよい。これ以外の適切な方法または基準を用いることもできる。実施形態によっては、1つのメモリブロック308を用いて、1つを上回るデータ項目に属する複数のフラグメントを記憶することもできる。
データ項目300をフラグメント316に仕切るのは、メモリブロック308の選択には依存せず、または、これと組み合わせて行うことができる。例えば、MSPはまず、データ項目を、フラグメントが最終的に記憶されるメモリブロックの数および識別にかかわらず、固定サイズのフラグメントに分けてもよい。あるいは、MSPは、最初にデータ項目が記憶されるべきメモリブロックを、特定して、続いて、これらのメモリブロックの数とサイズとに応じて、データ項目を分けてもよい。
実施形態によっては、MSPによる分割が、メモリコントローラおよびBBM機能に対して透明であるように、MSP52は、メモリコントローラへの固定能力ブロック中の記憶を模倣してもよい。例えば、MSPは、2つの索引テーブルを維持し、すなわち、固定サイズコントローラブロックの索引テーブルと、これに対応する可変能力メモリブロックの索引テーブルとを維持してもよい。データ項目が、メモリコントローラにより、あるコントローラブロックのセット中に記憶されるために送られれば、MSPは、常に可変能力メモリブロックのいずれが、この項目を記憶するのに用いられるかを示す。メモリコントローラからあるデータ項目が要求されると、MSPは、これが記憶されている可変能力メモリブロックから、この項目を取り出し、まるで、コントローラが知る固定サイズのコントローラブロック中に記憶されているかのように、この項目をメモリコントローラに送る。
理解されうるであろうが、図14の方法は、公知のBBM方法よりも、メモリ素子の達成可能な能力をかなり高める。なぜならば、さもなければ不良ブロックとして分類されたであろうメモリブロック中に、データを記憶することができるからである。
図14に関する説明は、全消去ブロックレベルという記憶の細かさに言及しているが、この方法は、より高い精度、すなわちページでの精度を用いて実装することも可能である。換言すれば、MSPは、データ項目が記憶されうる可変能力メモリページの適切なセットを決めることができる。ページ毎ベースでデータ項目を分割し、記憶することにより、比較的高い管理コストという犠牲を払って、より高い記憶密度が可能になる。
ある例となる実装では、メモリコントローラにより用いられる公称ページサイズがPビットである場合、MSPは、メモリ素子中のメモリページを、能力がPより小さい能力が低減したメモリページ、および、能力がP以上の交渉能力メモリページに分類する。それにより、MSPは、Pビットを有する各コントローラページを、公称能力のメモリページまたは能力が低減した一対のメモリページへ記憶することができる。MSPは通常、各コントローラページを対応する公称能力メモリページまたは能力が低減したメモリページの対にマッピングするテーブルを維持している。したがって、能力がコントローラページの公称サイズを下回るメモリページも、データを記憶するために用いることができる。
図15は、本発明の1実施形態による、可変能力のメモリページ中に、Pビットの固定サイズコントローラページを効率的に記憶する別の方法を示す。メモリアレイ320は、複数のメモリページ324を有する。メモリページは、同時にプログラムされかつ読み取られるメモリセル群として定義される。
アレイ320のメモリページは、通常同じ数のセルを有するが、その能力(すなわち、信頼性を持って記憶することができる情報量)は、ページ毎に、時間の経過により異なりうる。一般に、各メモリページ324の能力は、Pより小さい、これと同じ、またはこれより大きい。MSP52は、余剰能力ページ328として機能させるために、1つ以上のメモリページを割り当てる。この余剰能力ページは、P未満の能力を有するこれ以外のメモリページの余剰ビットを記憶するために用いられる。この例では、アレイ320は、32ページのメモリページを有し、そのうち1ページが、余剰能力ページとして機能する。
MSPは、記憶用にPビットを有するコントローラページを受け取ると、次に利用可能なメモリページ324(Cnの印が付けられている)の能力を評価する。Cn>P(すなわち、次に利用可能なメモリページが、このコントローラページのPビットを記憶するのに十分な場合)、MSPはこのPビットをこのメモリページ中に記憶する。次に利用可能なメモリページが、Pビットを記憶するのに十分でない場合、すなわち、Cn≦Pの場合、MSPは、このコントローラページのPビットのうちのCnビットをこのメモリページ中に記憶し、残りのP−Cnビットを、余剰能力ページ328の使用されていないメモリセル中に記憶する。
上述の方法を用いたページの書き込みまたは読み取りは、2つのページ書き込みまたは読み取り動作を含みうる。実施形態によっては、MSPは、余剰能力ページのいくつかもしくは全て、またはこれらのページの部分を、RAMまたはこれ以外のキャッシュメモリ中に、キャッシュとして入れることができる。余剰能力ページをキャッシュに入れることにより、MSPは、二重の読み取りおよび二重の書き込み動作を少なくすることができる。
メモリ素子からデータを読み取る際に、MSPは、最新に読み取った余剰能力ビットをキャッシュに入れることができる。メモリページを取り出す際に、MSPは、このページの余剰ビットが、キャッシュデータ中にあるか否かをチェックする。もし、所望の余剰ビットがキャッシュされていれば、物理的にこの余剰能力ページを読には及ばず、取り出されたメモリページにこれを追加することができる。メモリ素子中にデータを書き込む際、MSPは余剰能力ビットをキャッシュに入れ、これにより、メモリ素子中に物理的に記憶する頻度をより低くすることができる。
電圧故障時に、キャッシュデータが失われないように、MSPは、電圧不規則性を特定し、必要な場合迅速にキャッシュデータをメモリ素子に記憶する回路を有することができる。メモリコントローラは、End Of File(EOF)属性またはこれ以外の適切なコマンドを用いて、メモリ素子中にキャッシュされたデータを記憶するように、MSPに指示することもできる。メモリコントローラは、通常、電源を切る前および/またはデータファイルに書き込み終了時に、このコマンドを用いることができる。さらに、あるいは、MSPは、特定の時間切れ後に、メモリにキャッシュされたデータを記憶することもできる。
図16は、本発明の1実施形態による、可変能力のメモリページ中に、固定サイズコントローラページを効率的に記憶する別の方法を示す。図16の方法では、MSP52は、メモリアレイ330の可変能力メモリページ334中に、それぞれPビットを有するコントローラページ(コントローラページ #1〜#5との印が付けられている)を記憶する。各メモリページ334の能力は、Pよりも小さい、これと同じ、またはこれより大きくてもよい。
MSP52は、コントローラページを1つずつ、メモリページ334の境界に関係なく、記憶していく。したがって、あるメモリページは、1つまたは複数のコントローラページに属するデータを有し、ある特定のコントローラページのデータは、1つまたは複数のメモリページ中に記憶されうる。MSPは、アレイ中の各コントローラページの位置の記録を、各コントローラページの開始アドレスおよび終了アドレスを記憶することにより行う。この記憶方法では、いくらかの管理コストを犠牲にして、メモリページの全能力を利用する。
この記憶方法は、通常、メモリコントローラに対して透明である。メモリコントローラがあるコントローラページを要求すると、MSPは、要求されたコントローラページを、適切なメモリ位置から読み取り、そのデータをコントローラへ送る。
大きいデータファイルまたはデジタル画像を記憶する場合には、メモリコントローラは、一連のコントローラページを記憶用に送る。このような場合は、MSPは、メモリコントローラから受け取ったデータをバッファに入れておくことにより、物理的なページプログラミング動作の数を減らすことができる。MSPは、例えば、バッファが一杯である際、メモリコントローラから明示的に指示されている際(例えば、EOFコマンドに応答して)、または、メモリコントローラが、一連の一部ではないコントローラページを送信した際には、メモリアレイに物理的にデータを書き込む。この目的用に用いられうるコマンドの例は、上述のONFI仕様の61頁に定義されている、「ページキャッシュプログラム(Page Cache Program)」コマンドである。MSPは、メモリから読み取られたデータをバッファに入れることにより、メモリ中に順次記憶される多量のデータを読むのに必要な、ページ読み取り動作の数も減らすことができる。
図17は、本発明の別の1実施形態による、可変能力のメモリページ中に、固定サイズコントローラページを効率的に記憶するさらに別の方法を示す。図17の方法では、MSPは、プログラミング速度を上げるために、MSPはコントローラページを二段階で書き込む。
メモリアレイ340のメモリページは、一時的な記憶領域344および永久的な記憶領域348に分割される。MSPは、メモリコントローラからコントローラページを受け取ると、最初に、それらを領域344中の別々のメモリページへと書き込み、各コントローラページが1つのメモリページへと書き込まれるようにする。
後の時点で、通常、メモリコントローラとの交信がアイドルである際に、MSPは、データを永久的な記憶領域348へと再プログラムする。領域348中のデータは、上述の図16のように、より密接に圧縮された、能力に対して効率的な方法で記憶される。再プログラムが終了した領域344中のページは、解放され、次のコントローラページの一時的な記憶のために再利用されうる。
磨耗平滑化の考慮
特定のページ中に存在する歪みのレベルは、しばしば、このページが経験したプログラミングおよび消去動作周期の数に依存する。通常、経験したプログラミングおよび消去動作の数が多くなるにしたがって、ページの性能および能力は劣化する。したがって、多くの場合、メモリページのプログラミングを配分し、性能劣化が、メモリセルアレイに渡って均等に割り当てられるようにするのが、有用である。この特徴は、磨耗平滑化と呼ばれ、例えば、2007年2月付け、エス・ティー・エム・マイクロエレクトロニクス(STMicroelectronics)(スイス、ジュネーブ在)によるアプリケーションノートAN−1822「単一レベルセルNANDフラッシュメモリ中の磨耗平滑化(Wear Leveling in Single Level Cell NAND Flash Memories)」に記載されている。この文献は、本明細書中に参照されている。
MSP52が、データを書き込むページまたはページ群を選択する際、MSPは、プログラミングおよび消去周期を比較的少ない回数経験したページまたはページ群を選択することができる。このような磨耗平滑化を考慮することは、上述のいずれの方法においても、用いることができる。
場合によっては、MSPは、例えば、以下のように、磨耗平滑化と歪み推定とを組み合わせた測定基準に基づいて、ページを選択することができる。
Figure 0005183625
ここで、γおよびδは、重み付け係数を示す。DistortionEstimationは、推定される歪みレベルを示す。DistortionEstimationは、例えば、電圧が有意に下がったメモリセルを勘定することから得られる。上述のMetricの定義に追加可能なこれ以外の因子は、(上述の図11の説明における、ILeakageを定義する式と同様)ブロックの最新の消去動作後に経過した時間である。
本明細書中に記載された実施形態では、主に、電圧レベルの数およびECCの枠組みを修正することにより、複数レベルのメモリセルの記憶密度を適応させることを言及したが、本明細書中に記載した方法およびシステムは、ECCのみを変えて、単一レベルセル中にも用いることができる。
本明細書中に記載された実施形態では、主に、半導体メモリ素子からデータを取り出すことに関して言及したが、本発明の原理は、ハードディスクドライブ(HDD)およびこれ以外のデータ媒体および機器中にデータを記憶し、取り出すことにも用いられる。HDDおよびデジタルカセットのような記憶機器においては、記憶媒体は、データ記憶前に、離散したセルに予め分割されることはない。むしろ、データは、連続的な媒体の領域中で記憶され、これらの領域の連続的な媒体中での位置づけは、記憶プロセスそのものの一部分として規定される。本特許出願および請求項の文脈においては、直感的で連続的な記憶プロセス時に媒体中で規定されるこのような領域も、「アナログメモリセル」として考えられる。
上述の実施形態は例として挙げられ、本発明は上述の特定的に示しおよび説明したものに限定されないことは、理解されるであろう。むしろ、本発明の範囲は、上述の説明を読んだ当業者が思いつき、かつ先行技術中には開示されていない、上述の様々な特徴の組み合わせおよび副結合、ならびに、これらの変形および修正をも含むものである。
本発明の一実施形態によるメモリシステムを概略的に図示したブロック図である。 本発明の一実施形態によるメモリセルアレイを概略的に図示した図である。 本発明の一実施形態によるマルチレベルメモリセルアレイ中の、電圧分布を示したグラフである。 本発明の一実施形態によるメモリセルアレイ中のセル能力分布を示したグラフである。 本発明の一実施形態によるメモリセルアレイ中のブロックおよびページ構造を示した図である。 本発明の実施形態によるメモリ素子の記憶密度を適応的に修正する方法を概略的に示したフローチャートである。 本発明の実施形態によるメモリ素子の記憶密度を適応的に修正する方法を概略的に示したフローチャートである。 本発明の実施形態によるメモリ素子の記憶密度を適応的に修正する方法を概略的に示したフローチャートである。 本発明の実施形態によるメモリ素子の記憶密度を適応的に修正する方法を概略的に示したフローチャートである。 本発明の実施形態によるメモリ素子の記憶密度を適応的に修正する方法を概略的に示したフローチャートである。 本発明の実施形態によるメモリ素子の記憶密度を適応的に修正する方法を概略的に示したフローチャートである。 本発明の一実施形態による、可変能力のメモリ素子中にデータを記憶する方法を概略的に示したフローチャートである。 本発明の一実施形態による、可変能力のメモリ素子からデータを消去する方法を概略的に示したフローチャートである。 本発明の一実施形態による、可変能力のメモリ素子中に、固定サイズのデータブロックを記憶する方法を概略的に示した図である。 本発明の一実施形態による、可変能力のメモリ素子中に、固定サイズのデータブロックを記憶する方法を概略的に示した図である。 本発明の一実施形態による、可変能力のメモリ素子中に、固定サイズのデータブロックを記憶する方法を概略的に示した図である。 本発明の一実施形態による、可変能力のメモリ素子中に、固定サイズのデータブロックを記憶する方法を概略的に示した図である。
符号の説明
20 メモリシステム
22 メモリコントローラ
24 メモリ素子
28 メモリ
32 アナログメモリセル
52 メモリ信号プロセッサ
60 信号処理ユニット
76 メモリ管理ユニット

Claims (30)

  1. 方法であって、
    複数のアナログメモリセルそれぞれの到達可能な記憶容量を推定する工程であって、前記到達可能な記憶容量を推定する工程は、前記複数のアナログメモリセル中に書き込まれるアナログ値に影響を与えるそれぞれの歪みレベルを推定する工程と、前記歪みレベルに応答して前記到達可能な記憶容量を決定する工程を有する工程と、
    前記推定された到達可能な容量に基づいて、前記メモリセル中に記憶されるべきデータ量を定義する記憶構成を、それぞれの前記メモリセルに割り当てる工程と、
    前記割り当てられた記憶構成に基づいて、それぞれの前記メモリセル中にデータを記憶する工程と、
    前記1つのメモリが1つのホストシステムに組み込まれて、前記データを前記ホストシステム中に記憶させるために使用された後に、それぞれの前記アナログメモリセルの到達可能な記憶容量を再推定する工程と、
    前記再推定された到達可能な容量に応答して、前記記憶構成を修正する工程
    を有することを特徴とする方法。
  2. 前記データを記憶する工程は、
    1つの誤り訂正符号(ECC)を用いて前記データを符号化する工程と、
    前記符号化されたデータを、1組の公称アナログ値から選択されたアナログ値に変換する工程と、
    前記選択されたアナログ値をそれぞれの前記メモリセルに書き込む工程を有し
    それぞれの前記記憶構成は、前記データを記憶するために用いられる、1つのECC符号レートおよび1組の公称アナログ値の1つのサイズ、を特定する、ことを特徴とする請求項1に記載の方法。
  3. それぞれの前記アナログメモリセルに対し前記データを記憶する工程は、
    前記データを1組の公称アナログ値から選択されたアナログ値に変換する工程と、
    前記選択されたアナログ値を前記メモリセルに書き込む工程を有し
    それぞれの前記記憶構成は、前記アナログメモリセルに前記データを記憶するために用いられる前記公称アナログ値を特定する、ことを特徴とする請求項1に記載の方法。
  4. 前記データを記憶する工程は、
    前記データを前記アナログ値に変換する工程と、
    前記アナログ値をそれぞれの前記メモリセルに書き込む工程を有することを特徴とする請求項1に記載の方法。
  5. 前記歪みレベルを推定する工程は、
    前記メモリセルから前記アナログ値を読み取る工程と、
    前記メモリセルから読み取られた前記アナログ値に基づいて前記歪みレベルを推定する工程を有することを特徴とする請求項1〜4のいずれかに記載の方法。
  6. 前記歪みレベルを推定する工程は、
    前記メモリセルから読み取られた前記アナログ値から前記データを再構築する工程と、
    前記再構築されたデータに基づいて前記歪みレベルを演算する工程を有することをを特徴とする請求項5に記載の方法。
  7. 前記歪みレベルを演算する工程は、
    前記メモリセルから読み取られた前記アナログ値のスカラー関数を合計する工程を有することを特徴とする請求項5に記載の方法。
  8. 前記スカラー関数を合計する工程は、
    前記メモリセルから読み取られた前記アナログ値と、前記データに対応して前記メモリセル中に記憶されたそれぞれの前記データの予測値との差分の二乗を合計する工程を有することを特徴とする請求項7に記載の方法。
  9. 前記歪みレベルを演算する工程は、
    前記メモリセルから読み取られた前記アナログ値と、前記データに対応して前記メモリセル中に記憶されたそれぞれの前記データの予測値との差分が1つの所定の値を超えるメモリセルの数を勘定する工程を有することを特徴とする請求項6に記載の方法。
  10. 前記データを記憶する工程は、
    前記メモリセル内に前記アナログ値を書き込む工程と、
    1つの反復プログラミングおよび検証(P&V)プロセスを用いて、前記書き込まれたアナログ値を検証する工程を有し
    前記歪みレベルを推定する工程は、
    前記P&Vプロセスにより検証された前記アナログ値に基づいて、前記歪みレベルを演算する工程を有することを特徴とする請求項4に記載の方法。
  11. 前記データを記憶する工程は、
    前記メモリセル内に前記アナログ値を書き込む工程と、
    1つのプログラムステップによりアナログ値を反復的に増分する1つの反復プログラミングおよび検証(P&V)プロセスを用いて、前記書き込まれたアナログ値を検証する工程を有し
    前記記憶構成は、前記反復P&Vプロセスにより用いられる前記プログラムステップの1つのサイズを規定する、ことを特徴とする請求項4に記載の方法。
  12. 前記データを記憶する工程は、
    1群の前記メモリセルの中に記憶されるべき前記データを、1つの誤り訂正符号(ECC)を用いて符号化する工程と、
    前記符号化されたデータを、前記1群のアナログメモリセルのそれぞれの中に記憶するためにアナログ値に変換する工程を有し
    前記到達可能な記憶容量を推定する工程は、
    前記1群のメモリセル中の前記メモリセルから前記変換されたアナログ値を読み取る工程と、
    前記読み取られたアナログ値と、前記アナログ値に最も近い1つの有効なECCの符号語との間の1つの距離値を求める工程を有し
    前記記憶構成を修正する工程は、
    前記1群のメモリセルの前記記憶構成を、前記求められた距離値に応答して適応させる工程を有することを特徴とする請求項1〜4のいずれかに記載の方法。
  13. 前記到達可能な記憶容量を再推定する工程は、
    前記メモリセル内に記憶された前記データを読み取る工程を有し
    前記記憶構成を修正する工程は、
    前記読み取られたデータ中のエラーの検出に応答して、前記記憶構成を適応させる工程を有することを特徴とする請求項1〜4のいずれかに記載の方法。
  14. 前記データを記憶する工程は、
    1つの誤り訂正符号(ECC)を用いて前記データを符号化する工程を有し
    前記記憶構成を適応させる工程は、
    ECCの1つの符号レートを修正する工程を有することを特徴とする請求項13に記載の方法。
  15. 前記メモリセルの到達可能な容量を推定する工程は、
    それぞれの前記メモリセルに対して行われた過去のプログラミングおよび消去動作を追跡する工程と、
    追跡された前記過去のプログラミングおよび消去動作に応答して、前記到達可能な容量を推定する工程を有することを特徴とする請求項1〜4のいずれかに記載の方法。
  16. 前記到達可能な容量を推定する工程は、
    前記過去のプログラミングおよび消去動作から経過した時間の長さに応答して、到達可能な容量を演算する工程を有することを特徴とする請求項15に記載の方法。
  17. 前記データを記憶する工程は、
    前記データの1つの冒頭の部分をアナログ値に変換する工程と、
    前記アナログ値をそれぞれの前記メモリセル中に書き込む工程と、
    これに続いて、前記メモリセル中に書き込まれた前記変換されたアナログ値を前記セルを消去することなく増大させることにより、前記データの1つの追加部分を前記メモリセルの少なくともいくつかに記憶する工程を有することを特徴とする請求項1〜4のいずれかに記載の方法。
  18. 前記データを記憶する工程は、
    前記データに冗長ビットを加える1つの誤り訂正符号(ECC)を用いて前記データを符号化する工程と、
    前記冗長ビットをいくつかの前記アナログメモリセル中に記憶する工程を含み
    前記記憶構成を修正する工程は、
    前記ECCにより加えられた幾つかの前記冗長ビットを、前記セルを消去することなく修正する工程を有することを特徴とする請求項1〜4のいずれかに記載の方法。
  19. 前記冗長ビットを記憶する工程は、前記データとは別に前記冗長ビットを記憶する工程を有することを特徴とする請求項18に記載の方法。
  20. 前記記憶構成を割り当てる工程は、
    1組の可能な記憶構成を予め規定する工程を有し
    前記記憶構成を修正する工程は、
    前記予め規定された1組の記憶構成から更新された記憶構成を選択する工程を有することを特徴とする請求項1〜4のいずれかに記載の方法。
  21. 少なくとも1つの前記記憶構成で規定される前記データの量は、1つの非整数のセル当りビット数を特定することを特徴とする請求項1〜4のいずれかに記載の方法。
  22. 前記データを記憶する工程は、
    前記メモリセルに前記データを書き込む前に前記データを圧縮する工程を有し
    前記記憶構成は、前記データが圧縮されるそれぞれの圧縮レートを規定する、ことを特徴とする請求項1〜4のいずれかに記載の方法。
  23. 前記記憶構成を割り当てる工程は、それぞれの1群の前記メモリセルに対して前記記憶構成を規定する工程を有することをを特徴とする請求項1〜4のいずれかに記載の方法。
  24. 前記メモリセル中に前記データを記憶する工程は、
    前記メモリの中に記憶するための1つのデータ項目を受け取る工程と、
    前記割り当てられた記憶構成に応答して、前記データ項目を記憶するための1つのサブ組の前記メモリセルを選択する工程と、
    前記選択された1つのサブ組の前記メモリセルの中に前記データ項目を記憶する工程を有することを特徴とする請求項1〜4のいずれかに記載の方法。
  25. 前記到達可能な記憶容量を再推定する工程は、前記データが記憶されず、かつ読み取りされないアイドル期間中に行われることを特徴とする請求項1〜4のいずれかに記載の方法。
  26. 前記記憶構成を割り当てる工程、および前記記憶構成を修正する工程は、1つの構成テーブルに前記記憶構成を記憶する工程を有することを特徴とする請求項1〜4のいずれかに記載の方法。
  27. 前記メモリが前記ホストシステムに組み込まれる前に、前記構成テーブルに前記記憶構成の初期値を記憶させる工程を有することを特徴とする請求項26に記載の方法。
  28. 前記記憶構成を割り当てる工程、および前記記憶構成を修正する工程は、前記メモリセル中に記憶された前記データの量と、各前記推定された到達可能な容量との間に1つの既定の余裕を維持する工程を有することを特徴とする請求項1〜4のいずれかに記載の方法。
  29. 前記歪みは、少なくとも部分的に、前記アナログメモリセル中の漏れ電流により引き起こされ、前記歪みを推定する工程は、前記漏れ電流を推定する工程を有することを特徴とする請求項1〜4のいずれかに記載の方法。
  30. 複数のアナログメモリセルを有する1つのメモリと通信するように配されている1つのインタフェースと、
    前記複数のアナログメモリセル中に書き込まれるアナログ値に影響を与えるそれぞれの歪みレベルを推定し、前記歪みレベルに応答して到達可能な記憶容量を決定することによって前記各メモリセルの前記到達可能な記憶容量を推定し、前記推定された到達可能な容量に基づいて、前記メモリセル中に記憶されるべきデータの量を定義する記憶構成を前記各メモリセルに割り当て、前記割り当てられた各記憶構成に基づいて、前記メモリセル中に前記データを記憶し、前記メモリが1つのホストシステムに組み込まれて前記データを前記ホストシステム中に記憶させるために使用された後に、前記アナログメモリセルの各到達可能な記憶容量を再推定し、前記再推定された到達可能な容量に応答して前記記憶構成を修正するように配された1つのメモリ信号プロセッサ(MSP)と、
    を有することを特徴とするデータ記憶装置。
JP2009508668A 2006-05-12 2007-05-10 適応能力を有するメモリ素子 Active JP5183625B2 (ja)

Applications Claiming Priority (21)

Application Number Priority Date Filing Date Title
US74710606P 2006-05-12 2006-05-12
US60/747,106 2006-05-12
US82223606P 2006-08-13 2006-08-13
US60/822,236 2006-08-13
US82591306P 2006-09-17 2006-09-17
US60/825,913 2006-09-17
US86607106P 2006-11-16 2006-11-16
US60/866,071 2006-11-16
US86686006P 2006-11-22 2006-11-22
US60/866,860 2006-11-22
US86739906P 2006-11-28 2006-11-28
US60/867,399 2006-11-28
US87183806P 2006-12-26 2006-12-26
US60/871,838 2006-12-26
US88224006P 2006-12-28 2006-12-28
US60/882,240 2006-12-28
US88307107P 2007-01-02 2007-01-02
US60/883,071 2007-01-02
US88598707P 2007-01-22 2007-01-22
US60/885,987 2007-01-22
PCT/IL2007/000579 WO2007132456A2 (en) 2006-05-12 2007-05-10 Memory device with adaptive capacity

Publications (3)

Publication Number Publication Date
JP2009537055A JP2009537055A (ja) 2009-10-22
JP2009537055A5 JP2009537055A5 (ja) 2010-06-03
JP5183625B2 true JP5183625B2 (ja) 2013-04-17

Family

ID=40759967

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009508668A Active JP5183625B2 (ja) 2006-05-12 2007-05-10 適応能力を有するメモリ素子

Country Status (3)

Country Link
JP (1) JP5183625B2 (ja)
KR (2) KR101274950B1 (ja)
CN (1) CN102394101B (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2018160018A (ja) * 2017-03-22 2018-10-11 株式会社ジェイテクト データ処理装置

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4999921B2 (ja) * 2006-05-12 2012-08-15 アノビット テクノロジーズ リミテッド メモリ素子用の歪み推定と誤り訂正符号化の組み合せ
US7639542B2 (en) * 2006-05-15 2009-12-29 Apple Inc. Maintenance operations for multi-level data storage cells
US7911834B2 (en) 2006-05-15 2011-03-22 Apple Inc. Analog interface for a flash memory die
KR101378365B1 (ko) * 2008-03-12 2014-03-28 삼성전자주식회사 하이브리드 메모리 데이터 검출 장치 및 방법
JP5971509B2 (ja) * 2011-08-30 2016-08-17 ソニー株式会社 情報処理装置および方法、並びに記録媒体
US8788743B2 (en) * 2012-04-11 2014-07-22 Micron Technology, Inc. Mapping between program states and data patterns
KR101949987B1 (ko) * 2012-12-18 2019-02-20 에스케이하이닉스 주식회사 데이터 저장 장치 및 그것의 동작 방법
JP5855150B2 (ja) * 2014-03-06 2016-02-09 ウィンボンド エレクトロニクス コーポレーション 半導体記憶装置
WO2015151261A1 (ja) * 2014-04-03 2015-10-08 株式会社日立製作所 不揮発メモリシステム及び情報処理システム
WO2015155860A1 (ja) * 2014-04-09 2015-10-15 株式会社日立製作所 情報記憶装置及び情報記憶装置の制御方法
KR102468992B1 (ko) * 2015-11-06 2022-11-22 에스케이하이닉스 주식회사 메모리 장치 및 이의 동작 방법
JP6156710B2 (ja) * 2016-05-16 2017-07-05 ソニー株式会社 情報処理装置および方法、並びに記録媒体
US10275165B2 (en) 2016-09-12 2019-04-30 Toshiba Memory Corporation Memory controller
KR102032878B1 (ko) * 2017-12-22 2019-10-16 한국외국어대학교 연구산학협력단 플래시 메모리 컨트롤러의 에러 정정 방법
US10741568B2 (en) 2018-10-16 2020-08-11 Silicon Storage Technology, Inc. Precision tuning for the programming of analog neural memory in a deep learning artificial neural network
CN110795037B (zh) * 2019-10-22 2021-06-22 广东高云半导体科技股份有限公司 存储器的单元连接方法、处理器

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS61338U (ja) * 1984-06-06 1986-01-06 クラリオン株式会社 復号装置
JP3315472B2 (ja) * 1993-04-26 2002-08-19 新日本製鐵株式会社 不揮発性半導体記憶装置
JP3200012B2 (ja) * 1996-04-19 2001-08-20 株式会社東芝 記憶システム
JP3828376B2 (ja) * 2001-05-07 2006-10-04 株式会社東芝 記憶システム
US6961890B2 (en) * 2001-08-16 2005-11-01 Hewlett-Packard Development Company, L.P. Dynamic variable-length error correction code
US7301807B2 (en) * 2003-10-23 2007-11-27 Sandisk Corporation Writable tracking cells
US7210077B2 (en) * 2004-01-29 2007-04-24 Hewlett-Packard Development Company, L.P. System and method for configuring a solid-state storage device with error correction coding
JP2008508632A (ja) * 2004-08-02 2008-03-21 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ データ記憶及び再生装置
JP2008123330A (ja) * 2006-11-14 2008-05-29 Toshiba Corp 不揮発性半導体記憶装置

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2018160018A (ja) * 2017-03-22 2018-10-11 株式会社ジェイテクト データ処理装置

Also Published As

Publication number Publication date
CN102394101B (zh) 2014-12-31
KR20090033835A (ko) 2009-04-06
KR20120090084A (ko) 2012-08-16
CN102394101A (zh) 2012-03-28
KR101208312B1 (ko) 2012-12-05
KR101274950B1 (ko) 2013-06-17
JP2009537055A (ja) 2009-10-22

Similar Documents

Publication Publication Date Title
JP5183625B2 (ja) 適応能力を有するメモリ素子
US8694859B2 (en) Memory device with adaptive capacity
US10056135B2 (en) Programming schemes for multi-level analog memory cells
US7697326B2 (en) Reducing programming error in memory devices
JP5914613B2 (ja) Mビットメモリセル用のm+nビットプログラミングおよびm+lビット読出し
US8151163B2 (en) Automatic defect management in memory devices
US8234545B2 (en) Data storage with incremental redundancy
US7593263B2 (en) Memory device with reduced reading latency
CN101501779B (zh) 具有自适应容量的存储设备
US8762800B1 (en) Systems and methods for handling immediate data errors in flash memory
TWI501238B (zh) 藉由調變編碼用於單元間干擾抑制的方法及裝置
TWI533304B (zh) 用於儲存資料於具有跨頁區段、多頁編碼及每頁編碼之多位準單元快閃記憶體器件中之方法及裝置
US8464135B2 (en) Adaptive flash interface
US9983808B2 (en) NAND flash reliability with rank modulation
US20100064096A1 (en) Systems and methods for temporarily retiring memory portions
WO2013070367A2 (en) Adaptive read comparison signal generation for memory systems
JP2012504820A (ja) 性能要因調整に基づくメモリ・デバイスの軟データ生成の方法および装置

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100419

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20100419

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120418

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20120718

A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A711

Effective date: 20120718

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20120823

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20121017

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20121214

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130115

R150 Certificate of patent or registration of utility model

Ref document number: 5183625

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20160125

Year of fee payment: 3

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250