JP2013509668A - エラーを管理するための書き込み後読み出しおよび適応再書き込みを伴う不揮発性メモリおよび方法 - Google Patents

エラーを管理するための書き込み後読み出しおよび適応再書き込みを伴う不揮発性メモリおよび方法 Download PDF

Info

Publication number
JP2013509668A
JP2013509668A JP2012536906A JP2012536906A JP2013509668A JP 2013509668 A JP2013509668 A JP 2013509668A JP 2012536906 A JP2012536906 A JP 2012536906A JP 2012536906 A JP2012536906 A JP 2012536906A JP 2013509668 A JP2013509668 A JP 2013509668A
Authority
JP
Japan
Prior art keywords
memory
data
copy
volatile memory
error
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.)
Granted
Application number
JP2012536906A
Other languages
English (en)
Other versions
JP5596791B2 (ja
Inventor
アショーク ドゥシージャ,ゴータム
チェン,チエン
アビラ,クリス
フアン,チエンミン
エム. ゲブンス,リー
Original Assignee
サンディスク テクノロジィース インコーポレイテッド
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
Priority claimed from US12/607,522 external-priority patent/US8214700B2/en
Application filed by サンディスク テクノロジィース インコーポレイテッド filed Critical サンディスク テクノロジィース インコーポレイテッド
Publication of JP2013509668A publication Critical patent/JP2013509668A/ja
Application granted granted Critical
Publication of JP5596791B2 publication Critical patent/JP5596791B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/34Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
    • 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
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/34Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
    • G11C16/3436Arrangements for verifying correct programming or erasure
    • G11C16/3454Arrangements for verifying correct programming or for detecting overprogrammed cells
    • G11C16/3459Circuits or methods to verify correct programming of nonvolatile memory cells
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/34Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
    • G11C16/349Arrangements for evaluating degradation, retention or wearout, e.g. by counting erase cycles
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/34Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
    • G11C16/349Arrangements for evaluating degradation, retention or wearout, e.g. by counting erase cycles
    • G11C16/3495Circuits or methods to detect or delay wearout of nonvolatile EPROM or EEPROM memory devices, e.g. by counting numbers of erase or reprogram cycles, by using multiple memory areas serially or cyclically
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/10Programming or data input circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C2211/00Indexing scheme relating to digital stores characterized by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C2211/56Indexing scheme relating to G11C11/56 and sub-groups for features not covered by these groups
    • G11C2211/564Miscellaneous aspects
    • G11C2211/5641Multilevel memory having cells with different number of storage levels
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation

Abstract

不揮発性メモリにおけるデータエラーは、使用されると、またセル当たりに格納されるビットの密度が高くなると、必然的に増える。メモリは、より少数のエラーで動作するけれども記憶密度がより低い第1の部分と、より高い密度で動作するけれども記憶装置の堅固性がより低い第2の部分とを有するように構成される。入力データは、第2の部分にコピーされる前に第1の部分に書き込まれステージされる。エラー管理は、コピーされたデータの品質を、過多なエラービットがあるかないかを検査する。そのコピーすること、また検査することは、所定の品質が満たされるかあるいは反復の回数が所定の限度を超えるまで、第2の部分の別の位置で反復される。エラー管理は、メモリが新しくてエラーがほとんどあるいは全くない時には開始されないが、メモリが、それ自体が経験した消去/プログラムのサイクルの数により判定される所定量まで古くなった後に、開始される。

Description

本発明は、半導体フラッシュメモリのような再プログラム可能な不揮発性メモリシステムの操作に関し、特にメモリ操作におけるエラー処理および効率的管理に関する。
特に小型のフォームファクタカードとして実装されたEEPROMおよびフラッシュEEPROMの形の、電荷を不揮発性に蓄積することのできるソリッドステートメモリは、最近、いろいろなモバイルおよびハンドヘルドデバイス、特に情報装置および家電製品において一般的に好まれる記憶装置になっている。同じくソリッドステートメモリであるRAM(ランダムアクセスメモリ)とは違って、フラッシュメモリは不揮発性であり、そのメモリ自体に蓄積されたデータを電力がオフにされた後でも保持する。さらに、ROM(読み出し専用メモリ)とは違って、フラッシュメモリはディスク記憶装置と同様に再書き込み可能である。コストが高いにもかかわらず、フラッシュメモリは大容量記憶用にますます使用されるようになっている。ハードドライブおよびフロッピー(登録商標)ディスクのような回転式磁気媒体に基づく従来の大容量記憶装置は、モバイルおよびハンドヘルド環境には不適である。というのは、ディスクドライブがかさばりがちであり、機械的故障を起こしやすく、待ち時間が長く、所要電力が大きいからである。これらの望ましくない属性があるために、ディスクベースの記憶装置は大抵のモバイルおよび携帯用途において実用的でない。一方、フラッシュメモリは、埋め込み式でも取り外し可能のカードの形でも、サイズが小さく、電力消費が少なく、高速で信頼性が高いという特徴があるために、モバイルおよびハンドヘルド環境に理想的に適している。
フラッシュEEPROMは、消去可能であって、そのメモリセルに新しいデータを書き込める、すなわち「プログラムする」ことのできる不揮発性メモリという点で、EEPROM(電気的に消去可能でプログラム可能な読み出し専用メモリ)に類似している。両方が、ソース領域およびドレイン領域の間で半導体基板内のチャネル領域の上に位置する、電界効果トランジスタ構造内のフローティング(非結合)伝導性ゲートを利用する。ここで、フローティングゲートの上にコントロールゲートが設けられる。トランジスタのしきい値電圧特性は、フローティングゲートに保持される電荷の量により制御される。すなわち、フローティングゲート上の所与のレベルの電荷に対して、トランジスタが「オン」に転換されてそのソース領域とドレイン領域の間の伝導を許すようになる前にコントロールゲートに印加されなければならない対応する電圧(しきい値)がある。特に、フラッシュEEPROMのようなフラッシュメモリにおいて、メモリセルのブロックの全てが同時に消去され得る。
フローティングゲートは、1つの範囲の電荷を保持することができ、従って1つのしきい値電圧ウィンドウ内の任意のしきい値電圧レベルにプログラムすることができる。しきい値電圧ウィンドウのサイズはデバイスの最低しきい値レベルおよび最高しきい値レベルにより画定され、それはフローティングゲートにプログラムされ得る電荷の範囲に対応する。しきい値ウィンドウは、一般的に、メモリデバイスの特性、動作条件および履歴によって決まる。ウィンドウ内の各々の識別可能で、分解可能なしきい値電圧レベル範囲は、原則として、セルの一定のメモリ状態を指示するために使用され得る。
現在の市販製品ではフラッシュEEPROMアレイの各記憶素子がバイナリモードで動作することによって単一ビットのデータを記憶することが普通であり、その場合、記憶素子トランジスタのしきい値レベルの2つの範囲が記憶レベルとして定義される。トランジスタのしきい値レベルは、それらの記憶素子に蓄積されている電荷レベルの範囲に対応する。メモリアレイのサイズを小さくする他に、各記憶素子トランジスタに1ビットより多いデータを格納することによってそのようなメモリアレイのデータ記憶密度をさらに高めることが趨勢となっている。これは、各記憶素子トランジスタについて2つより多いしきい値レベルを記憶状態として定義することによって成し遂げられ、今日では4つのそのような状態(記憶素子当たりに2ビットのデータ)が市販製品に含まれている。記憶素子当たりに16状態など、より多くの記憶状態も実施されている。各々の記憶素子メモリトランジスタは、それがその中で実際的に操作され得るしきい値電圧の一定の総範囲(ウィンドウ)を有し、その範囲は、そのものについて定義された状態の数に加えて、それらを互いに明瞭に区別し得るようにするための状態間のマージンに分割される。明らかに、メモリセルがより多くのビットを記憶するように構成されるほど、それがその中で動作しなければならないエラーのマージンは小さくなる。
メモリセルの役割を果たす働くトランジスタは、通例、2つのメカニズムのうちの1つによって「プログラム済み」状態にプログラムされる。「ホットエレクトロン注入」では、ドレインに印加された高電圧が電子を基板チャネル領域にわたって加速させる。同時に、コントロールゲートに印加された高電圧がホットエレクトロンを薄いゲート誘電体を通してフローティングゲートに引き付ける。「トンネル注入」では、コントロールゲートに基板と比較して高い電圧が印加される。このようにして、電子が基板から、介在するフローティングゲートに引き付けられる。メモリ状態を変えるためにメモリセルの初めは消去されていた電荷蓄積ユニットに電子を注入することによるメモリへの書き込みを記述するために歴史的に「プログラムする」という用語が使われているけれども、今日では、「書き込む」または「記録する」というようなより一般的な用語と交換可能に使用されている。
メモリデバイスは、幾つかのメカニズムによって消去され得る。EEPROMでは、フローティングゲート内の電子を薄い酸化物を通して基板チャネル領域へトンネルさせるためにコントロールゲートと比較して高い電圧を基板に印加することにより、メモリセルは電気的に消去可能である(すなわち、ファウラー・ノルドハイムのトンネリング)。通例、EEPROMはバイト単位で消去可能である。フラッシュEEPROMでは、メモリは全体が一度に、または一度に1つ以上の最小消去可能ブロックごとに、電気的に消去可能であり、ここで最小消去可能ブロックは1つ以上のセクタから成ることができ、各セクタは512バイト以上のデータを記憶することができる。
メモリデバイスは、通例、カードに搭載され得る1つ以上のメモリチップを含む。各メモリチップは、デコーダならびに消去回路、書き込み回路および読み出し回路のような周辺回路によりサポートされるメモリセルのアレイを含む。より高性能のメモリデバイスは、インテリジェントで高レベルのメモリ操作およびインターフェーシングを実行するコントローラをも伴っている。
今日では、多くの商業的に成功している不揮発性ソリッドステートメモリデバイスが使用されている。それらのメモリデバイスはフラッシュEEPROMである場合があり、または他のタイプの不揮発性メモリセルを採用している場合がある。フラッシュメモリならびにそれらを製造するシステムおよび方法の例が、米国特許第5,070,032号(特許文献1)、第5,095,344号(特許文献2)、第5,315,541号(特許文献3)、第5,343,063号(特許文献4)、第5,661,053号(特許文献5)、第5,313,421号(特許文献6)、および第6,222,762号(特許文献7)において与えられている。特に、NANDストリング構造を有するフラッシュメモリデバイスが、米国特許第5,570,315号(特許文献8)、第5,903,495号(特許文献9)、第6,046,935号(特許文献10)に記載されている。さらに、不揮発性メモリデバイスは、電荷を蓄積するための誘電体層を有するメモリセルからも製造される。前に記載された伝導性フローティングゲート素子の代わりに、誘電体層が使用される。そのような誘電体記憶素子を利用するメモリデバイスは、Eitan et al., "NROM: A Novel Localized Trapping, 2-Bit Nonvolatile Memory Cell", IEEE Electron Device Letters, vol. 21, no. 11, November 2000, pp. 543-545(非特許文献1)に記載されている。ONO誘電体層がソース拡散およびドレイン拡散の間のチャネルを横断して広がる。1つのデータビットのための電荷はドレインに隣接して誘電体層に局在させられ、もう1つのデータビットのための電荷はソースに隣接して誘電体層に局在させられる。例えば、米国特許第5,768,192号(特許文献11)および第6,011,725号(特許文献12)は、2つの二酸化ケイ素層に挟まれたトラッピング誘電体を有する不揮発性メモリセルを開示している。多状態データ蓄積は、誘電体の中の空間的に分けられている電荷蓄積領域のバイナリ状態を別々に読み出すことによって実現されている。
読み出しおよびプログラム性能を高めるために、アレイ内の複数の電荷蓄積素子またはメモリトランジスタが並行して読み出されるかあるいはプログラムされる。このように、1「ページ」の記憶素子が一緒に読み出されるかあるいはプログラムされる。既存のメモリアーキテクチャでは、1つの行は通例数個のインターリーブされたページを包含するか、あるいは1ページを構成することができる。1ページに属する全ての記憶素子が一緒に読み出されるかあるいはプログラムされる。
書き込まれたデータの中のエラー
ここに記載されたタイプのメモリシステムにおいても、磁気ディスク記憶システムを含む他のものにおいても、蓄積されているデータの完全性は、エラー訂正手法の使用により維持される。最も普通には、一度に格納されるデータの各セクタまたは他の単位についてエラー訂正符号(ECC)が計算され、そのECCはデータと共に格納される。ECCは、最も一般的には、ECCがそこから計算されたユーザデータのユニットグループと共に格納される。ユーザデータのユニットグループは、1つのセクタまたは1つのマルチセクタページであり得る。このデータがメモリから読み出される時に、ECCは、読み出されるユーザデータの完全性を判定するために使用される。データのユニットグループの中のデータの誤っているビットは、しばしば、ECCの使用により訂正され得る。
より多くのメモリセルをシステム内に置けるようにメモリシステムのサイズを小さくし、より小さなホストデバイスに収まるようにシステムをなるべく小さくすることが趨勢となっている。回路をより高度に集積化することと、より多くのデータのビットを記憶するように各メモリセルを構成することとを組み合わせることによって記憶容量が増やされる。両方の技術が、ますます厳密なエラーのマージンでメモリが動作することを必要とする。そのために、エラーを訂正するECCに対してより大きな要求が課されることになる。
ECCは、所定数のエラービットを訂正するように設計され得る。訂正しなければならないビットが増えるほど、ECCはより複雑に、かつ計算集中的になる。品質保証のために、従来のECCは、メモリデバイスの寿命の終わりに予想される最悪の場合のセルエラー率に基づいて設計される。従って、エラー率の統計的母集団の遠末端に至るまでの最大数のエラービットを訂正しなければならない。
フラッシュメモリが古くなると、そのエラー率はデバイスの寿命の終わり近くで急に大きくなる。従って、最悪の場合のために設計された強力なECCは、その全能力をメモリデバイスの寿命の終わりに発揮するように要求されるだけである。
最悪の場合の数のエラービットを訂正するためにECCを使用すると、大量の処理時間が消費される。それが訂正しなければならないビットが増えるほど、より多くの計算時間が必要となる。メモリの性能は低下する。ECCを適度な時間内に実行するために追加の専用ハードウェアが実装され得る。そのような専用ハードウェアはコントローラASICチップ上の相当の量のスペースを占めることがある。さらに、デバイスの寿命の大部分の間、ECCはほんの僅かに利用されるだけであるので、その大きなオーバーヘッドは無駄にされ、現実の利益を実現しない。
従って、悪い場合のために過度に設計されたリソース集中的ECCを必要とすることなく大記憶容量の不揮発性メモリを提供する必要がある。
米国特許第5,070,032号 米国特許第5,095,344号 米国特許第5,315,541号 米国特許第5,343,063号 米国特許第5,661,053号 米国特許第5,313,421号 米国特許第6,222,762号 米国特許第5,570,315号 米国特許第5,903,495号 米国特許第6,046,935号 米国特許第5,768,192号 米国特許第6,011,725号 米国特許出願公開第2010/0172180号 米国特許第5,595,924号 米国特許第5,321,699号 米国特許第5,386,422号 米国特許第5,469,444号 米国特許第5,602,789号 米国特許第6,134,140号 米国特許第6,914,823号 米国特許第6,917,542号 米国特許第5,867,429号 米国特許第6,456,528号 米国特許第7,009,889号 米国特許第5,930,167号 米国特許出願第12/642,584号
Eitan et al., "NROM: A Novel Localized Trapping, 2-Bit Nonvolatile Memory Cell", IEEE Electron Device Letters, vol. 21, no. 11, November 2000, pp. 543-545
エラー率を制御するためにデータを高密度メモリ部分から低エラー率メモリ部分に適応的に再書き込みする
本発明の一般的な態様に従って、メモリセルのアレイを有するフラッシュメモリが第1の部分および第2の部分を有するように構成されるという点で、書き込み後読み出しエラー管理が提供される。第2の部分は、第1の部分と比べてより高い密度でデータを記憶するけれどもより小さなエラーマージンで動作する。データは、効率的記憶のために第2の部分に書き込まれる。その後、過多なエラービットがあるかないかを検査するためにデータは書き込み後読み出し操作で読み返される。エラービットが所定量を超えるならば、データはエラーがより生じにくい第1の部分において再書き込みされるかまたは維持される。これにより、データをメモリに書き込むことから生じるエラービットの最大数に限界が設けられることになる。エラー率の統計的分布において、この限界は、分布の遠末端(エラー率がより高い)が無視され得るように分布の標準偏差数の限界を表す。これにより、より少数のエラービットを訂正するためにより小さくてより効率的なエラー訂正符号(「ECC」)を設計し、これによりメモリの性能を改善すると共にメモリのコストを低減することができる。
1つの好ましい実施形態では、第1の部分は各メモリセルに1ビットのデータを記憶させ、第2の部分は各メモリセルに1ビットより多いデータを記憶させる。
1つの代替の実施形態では、第1の部分は着信データのためのキャッシュとして動作し、入力データのキャッシュコピーがキャッシュにプログラムされる。その後、データの第1のコピーが第2の部分にプログラムされる。書き込み後読み出しが第1のコピー内に過多な量のエラーを検出していなければ、第1のコピーは有効であると見なされてその後のアクセスは第1のコピーにアクセスするように指示される。一方、書き込み後読み出しが第1のコピー内に過多な量のエラーを検出していれば、第1の部分の中のキャッシュされたコピーが有効なデータとして第2の部分の中の第1のコピーに取って代わる。第1のコピーは陳腐化し、その後のアクセスは、キャッシュされているコピーに向けられる。
好ましい実施形態では、第1の部分はさらに第1のセクションおよび第2のセクションを備える。着信データは第1の部分の第1のセクションにキャッシュされ、データの第1のコピーが第2の部分に書き込まれる。その後、第2の部分内の第1のコピーは、過多なエラービットがあるかどうかを検査するために読み返される。エラービットが所定量を超えるならば、着信データの第2のコピーが第1の部分の第2のセクションに書き込まれる。
別の好ましい実施形態に従って、メモリアレイは集積回路チップ上にデータラッチのセットを備え、第1のコピー内のエラービットの検査は、第1のコピーおよびキャッシュされたコピーをデータラッチのセットにロードすると共にデータラッチのセットにおいて比較を行うことによって成し遂げられる。
1つの代わりの実施形態では、書き込み後読み出しが第1のコピー内に過多な量のエラーを検出した後、第1の部分内のキャッシュされたコピーが有効なデータとして第2の部分内の第1のコピーに取って代わる。第1のコピーは陳腐化し、コントローラのファームウェアにおいて具体化されるブロック管理システム内のディレクトリ(図1を参照)は、その後のアクセスをキャッシュされたコピーに向けるように更新される。
従って、メモリの高密度記憶部分に書き込む時に、書き込み後読み出しは、エラー率が所定限界内にあるかどうかを検査する。そうであれば、データは、メモリの別の、エラーがより生じにくい部分において再書き込みされるかまたは維持される。そのエラーがより生じにくい部分は、通例、各メモリセルに、セル当たりに高密度記憶部分より少ないデータビットを記憶させる。高密度メモリへの書き込み後に生じるエラーを制御し制限するメカニズムを設けると共に、高密度メモリ内のコピーが過多なエラーを有するならばエラーのより少ないデータを再書き込みする第2のチャンスを提供することにより、ECCが訂正しなければならなくなるエラーの数が大幅に低減される。この利点は、追加の書き込み後読み出しおよびより低密度のメモリ部分への稀な追加再書き込みという僅かな犠牲を払って得られる。
例えば、メモリの高密度記憶部分は、各メモリセルに3ビットのデータを記憶させる。エラーがより生じにくい部分は、各メモリセルに1ビットのデータを記憶させる。エラー率を6σの従来の最悪の場合のアプローチの代わりに3標準偏差(3σ)以内に制限することによって、ECCは42ビットの代わりに僅か4ビットを訂正しなければならないに過ぎないと推定される。3σに制限するということは、母集団の0.13%が4ビットを超えるエラー率を有すると期待されるということである。課されるコストは、4より多いエラービットを有する高密度記憶装置に書き込まれたデータ(母集団の0.13%)が、エラー率を超えないように単にデータを低密度記憶装置において再書き込みさせるかあるいは維持させるということである。比較すると、従来のアプローチでは、書き込みエラーのために42ビットを訂正する最悪の場合のために設計されたECCは大きなオーバーヘッドを常時保持しているけれども、その時間の大部分の間、それは遥かに少数のビットを訂正しなければならないに過ぎない。
強化書き込み後読み出しエラー管理
本発明の別の態様において、強化書き込み後読み出しエラー管理が実行される。書き込み後読み出しエラー管理はメモリデバイスの寿命の始まりの時にはイネーブルされない。メモリデバイスのエラー率は寿命の始まりの時には非常に低く、書き込み後読み出しを操作する必要はない。これにより、書き込み後読み出しを行うために時間を浪費しなくてもよくなる。メモリデバイスは使用されると古くなるので、デバイスが所定の古さに達すると本発明の強化書き込み後読み出しおよびエラー管理がイネーブルされる。
1つの好ましい実施形態では、メモリデバイスの古さはメモリセルの各消去ブロックと共に維持されるホットカウントにより判定される。ホットカウントは、耐久性、すなわち消去およびプログラミング操作を通して消去ブロックがサイクルされた回数を追跡する。消去ブロックのホットカウントが所定のホットカウントしきい値を超えると、強化書き込み後読み出しエラー管理が始まって、メモリデバイスの寿命が終わるまで動作する。
本発明の別の態様の1つの好ましい実施形態において、メモリの高密度記憶部分(D3)は各メモリに3ビットのデータを記憶させる。メモリの、エラーがより生じにくい低密度記憶部分(D1)は、各メモリセルに1ビットのデータを記憶させる。入力データは、初めにD1にステージされ、後にD3に折り込まれる。強化書き込み後読み出しエラー管理がイネーブルされると、D3にある現在の充填済みブロックが読み返される。エラー率が所定のしきい値を超えていれば、その現在のD3ブロックは拒否され、再試行が行われてデータが新しいD3ブロックに再折り込みされる。その新しいD3ブロックは再び読み返されてエラー率が過多であるかどうかが検査される。その新しいD3ブロックが合格であれば、良好なデータを持つことになり、D1内のオリジナルデータは陳腐化される。その新しいD3ブロックが再び過多なエラー率を示せば、その新しいD3ブロックは再び廃棄される。再試行が所定回数行われた後に過多なエラー率がなお存続していれば、再試行はそれ以上は行われず、D1からD3への折り込み操作は断念され、オリジナルデータはD1において維持される。この時点で、メモリデバイスはそれ以上プログラム操作を行うには古すぎると見なされ、メモリデバイスに格納されている既存データの完全性を保つために読み出し専用にされる。
本発明の特徴が具体化されているメモリデバイスと通信するホストを示す。 不揮発性メモリセルを概略的に示す。 メモリセルのNORアレイの例を示す。 並行して感知あるいはプログラムされる、例えばNAND構成に編成されたメモリセルのページを示す。 メモリセルのアレイにわたってp個のセンスモジュールのバンクを包含するように図1に示されているセンスモジュールをより詳しく示す。 センスアンプを含むセンスモジュールを示す。 複数の消去可能なブロックを成すように編成されたメモリアレイの例を概略的に示す。 各セルが2つの可能な状態のうちの1つとなっているセルの集団を有するバイナリメモリを示す。 各セルが8個の可能な状態のうちの1つとなっているセルの集団を有する多状態メモリを示す。 ECCフィールドを包含するデータページを概略的に示す。 標準偏差σの種々の範囲における母集団のパーセンテージでエラー率の正規分布を示す。 図10Aの分布を表形式で示す。 フラッシュメモリのエラーの主な発生源を記録した表である。 一例であるメモリデバイスについて、その寿命の始まりの時および終わりの時において推定される総エラーを示す表である。 従来のECCは最悪の場合の総エラーETOTを訂正するように設計されなければならないことを示す表である。 本発明の好ましい実施形態に従って2部分に分割されたメモリアレイを示す。 図14Aのメモリアレイの第1の部分へのデータページの第2のコピーの再書き込みを示す。 図14Aおよび図14Bに記載されている実施形態に従う書き込み後読み出しおよび適応再書き込みのプロセスを示す流れ図である。 本発明の好ましい実施形態に従う、2部分に分割されたメモリアレイを示し、第1の部分はキャッシュセクションおよび再書き込みセクションをさらに備えている。 書き込み後読み出しの好ましい実施形態に従うページ比較手法を示す。 書き込み後読み出しが第2の部分内のデータページにおける過多な量のエラーを判定した後の第1の部分への再書き込みを示す。 図16A〜図16Cに記載されている実施形態に従う書き込み後読み出しおよび適応再書き込みのプロセスを示す流れ図である。 複数の消去ブロックを成すように編成されたメモリを示す。 ホットカウントにより判定される所定の程度までメモリデバイスが古くなった時にエラー管理がイネーブルされることを示す流れ図である。 本発明の好ましい実施形態に従って2部分に分割されているメモリアレイを示す。 図20AのD3ブロックが書き込み後読み出しテストに不合格となる別の例を示す。 図20Bの新しいD3ブロックが書き込み後読み出しテストに再び不合格となる別の例を示す。 強化書き込み後読み出しエラー管理と関連する例としてのパラメータを示す表である。表は、好ましくは、メモリに格納されているファイルシステム構成ファイルにおいて維持される。 D1からD3への折り込みを有するメモリに適用されたEPWRエラー管理の好ましい実現形態を示す流れ図である。 強化書き込み後読み出しエラー管理のデバイスの古さによって決まるイネーブル特徴をより詳しく示す。 強化書き込み後読み出しエラー管理の好ましい実現形態をより詳しく示す。
メモリシステム
図1は、本発明の特徴が具体化されているメモリデバイスと通信するホストを示す。ホスト80は、通例、メモリデバイス90に格納されるべきデータを送るか、あるいはメモリデバイス90を読み出すことによりデータを取り出す。メモリデバイス90は、コントローラ102により管理される1つ以上のメモリチップ100を含む。メモリチップ100はメモリセルのメモリアレイ200を含み、各セルは、データの複数のビットを記憶するためのマルチレベルセル(「MLC」)として構成され得る。メモリチップは、センスモジュール480、データラッチ430およびI/O回路440のような周辺回路も含む。オンチップ制御回路110は、各チップの低レベルメモリ動作を制御する。制御回路110は、周辺回路と協同してメモリアレイ200に対してメモリ操作を実行するオンチップコントローラである。制御回路110は、通例、メモリ操作のチップレベル制御を提供するための状態マシン112を含む。
多くの実現形態において、ホスト80はコントローラ102を介してメモリチップ100と通信し相互作用する。コントローラ102は、メモリチップと協同し、より高いレベルのメモリ操作を制御し管理する。例えば、ホスト書込みでは、ホスト80は、ホストのオペレーティングシステムのファイルシステムから割り当てられた論理セクタを成してメモリアレイ200に書き込まれるデータを送る。コントローラに実装されたメモリブロック管理システムは、セクタをステージし、それらをメモリアレイの物理的構造にマッピングし格納する。
好ましいブロック管理システムが、その全体が本願明細書において参照により援用されている、2010年7月8日に公開された米国特許出願公開第2010/0172180号(特許文献13)に開示されている。
ファームウェア60は、コントローラ102の機能を実行するためのコードを提供する。エラー訂正符号(「ECC」)プロセッサ62は、メモリデバイスの動作中にECCを処理する。別の実施形態では、コントローラ102はホスト内に実装される。
物理的メモリ構造
図2は、不揮発性メモリセルを概略的に示す。メモリセル10は、フローティングゲートまたは誘電体層のような電荷蓄積ユニット20を有する電界効果トランジスタにより実現され得る。メモリセル10はソース14、ドレイン16、およびコントロールゲート30も含む。
今日使用されている商業的に成功した不揮発性ソリッドステートメモリデバイスが多くある。それらのメモリデバイスは種々のタイプのメモリセルを採用することができ、各々のタイプは1つ以上の電荷蓄積素子を有する。代表的な不揮発性メモリセルはEEPROMおよびフラッシュEEPROMを含む。EEPROMセルの例およびそれらを製造する方法が、米国特許第5,595,924号(特許文献14)において与えられている。フラッシュEEPROMセルの例、メモリシステムにおけるそれらの使用法およびそれらを製造する方法が、米国特許第5,070,032号(特許文献1)、第5,095,344号(特許文献2)、第5,315,541号(特許文献3)、第5,343,063号(特許文献4)、第5,661,053号(特許文献5)、第5,313,421号(特許文献6)、および第6,222,762号(特許文献7)において与えられている。特に、NANDセル構造を有するメモリデバイスの例が、米国特許第5,570,315号(特許文献8)、第5,903,495号(特許文献9)、第6,046,935号(特許文献10)に記載されている。さらに、誘電体蓄積素子を利用するメモリデバイスの例が、Eitan et al., "NROM: A Novel Localized Trapping, 2-Bit Nonvolatile Memory Cell", IEEE Electron Device Letters, vol. 21, no. 11, November 2000, pp. 543-545(非特許文献1)に記載され、さらに米国特許第5,768,192号(特許文献11)および第6,011,725号(特許文献12)に記載されている。
実際には、セルのメモリ状態は、普通、コントロールゲートに基準電圧が印加された時のセルのソース電極およびドレイン電極にわたる伝導電流を感知することによって読み出される。従って、セルのフローティングゲート上の各々の所与の電荷について、固定された基準コントロールゲート電圧に関して対応する伝導電流が検出され得る。逆に、しきい値電圧は、所与の電荷を有するセルをちょうどオンに転換させるコントロールゲートに掛かる電圧として定義される。同様に、フローティングゲートにプログラムすることのできる電荷の範囲は、対応するしきい値電圧ウィンドウまたは対応する伝導電流ウィンドウを画定する。
代替的に、分割された電流ウィンドウの中で伝導電流を検出する代わりに、試験される所与のメモリ状態についてしきい値電圧をコントロールゲートにセットし、伝導電流がしきい値電流より少ないかあるいは多いかを検出することが可能である。一実現形態では、しきい値電流と比較しての伝導電流の検出は、ビット線のキャパシタンスまたは既知のキャパシタを通して伝導電流が放電する速度を検査することによって成し遂げられる。
前の記述から分かるように、メモリセルが記憶させられる状態が増えれば、そのしきい値ウィンドウはより細かく分割される。例えば、メモリデバイスは、−1.5Vから5Vに及ぶしきい値ウィンドウを有するメモリセルを有することができる。これは6.5Vの最大幅を提供する。メモリセルが16個の状態を記憶しなければならないとすると、各状態はしきい値ウィンドウの中で200mVから300mVまでを占めることができる。このことは、所要の分解能を達成し得るようにプログラミング操作および読み出し操作においてより高い精度を要求する。
メモリアレイ200は、通例、行および列を成すように配列されてワード線およびビット線によりアドレス指定可能なメモリセルの2次元アレイとして編成される。アレイは、NORタイプアーキテクチャまたはNANDタイプアーキテクチャに従って形成され得る。
図3は、メモリセルのNORアレイの例を示す。メモリアレイ200において、各行のメモリセルは、それらのソース14およびドレイン16によりデイジーチェーン方式で接続される。この設計は、時には仮想接地設計と称される。1つの行の中のセル10のコントロールゲート30は、ワード線42のような1つのワード線に接続される。1つの列の中のセルのソースおよびドレインはビット線34および36のような選択されたビット線にそれぞれ接続される。
図4は、並行して感知またはプログラムされる、例えばNAND構成に編成されたメモリセルの1つのページを示す。図4は、本質的に、メモリアレイ200内のNANDストリング50の1つのバンクを示す。NANDストリング50は、それらのソースおよびドレインによりデイジーチェーン接続された一連のメモリトランジスタ(例えば、4個、8個、16個またはそれ以上)から成る。1対の選択トランジスタS1、S2は、それぞれNANDストリングのソース端子およびドレイン端子を介してメモリトランジスタチェーンの外部への接続を制御する。メモリアレイの中で、ソース選択トランジスタS1がオンに転換されると、ソース端子はソース線34に結合される。同様に、ドレイン選択トランジスタS2がオンに転換されると、NANDストリングのドレイン端子はメモリアレイのビット線36に結合される。チェーン内の各メモリトランジスタ10はメモリセルとして機能する。それは、1つの意図されたメモリ状態を表すように1つの所与の量の電荷を蓄積する電荷蓄積素子20を有する。各メモリトランジスタのコントロールゲートは、読み出し操作および書き込み操作の制御を可能にする。NANDストリングの1つの行の対応するメモリトランジスタのコントロールゲートは全て同じワード線(WL0、WL1・・・のような)に接続される。同様に、(それぞれ選択線SGSおよびSGDを介してアクセスされる)選択トランジスタS1、S2の各々のコントロールゲートは、それぞれそれのソース端子およびドレイン端子を介してNANDストリングへの制御アクセスを提供する。
NANDストリング内のアドレス指定されたメモリトランジスタ10がプログラミング中に読み出されるかあるいはベリファイされる時に、そのコントロールゲートに共通のワード線を介して適切な電圧が供給される。同時に、NANDストリング50内のアドレス指定されていないメモリトランジスタの残りは、それらのコントロールゲートへの充分な電圧の印加によって完全にオンに転換される。このようにして、個々のメモリトランジスタのソースからNANDストリングのソース端子へ、さらに同様に個々のメモリトランジスタのドレインのためにセルのドレイン端子へ伝導経路が効果的に作成される。このようなNANDストリング構造を有するメモリデバイスは、米国特許第5,570,315号(特許文献8)、第5、903,495号(特許文献9)、第6,046,935号(特許文献10)に記載されている。
ページ70のような「ページ」は、並行して感知またはプログラムされるべくイネーブルされるメモリセルのグループである。これは、センスアンプの対応するページによって成し遂げられる。例えば、ページ70は1つの行に沿っていて、共通にワード線WL3に接続されているページのセルのコントロールゲートに印加された感知電圧によって感知される。各列に沿って、セル10のような各セルは、ビット線36を介してセンスアンプによりアクセス可能である。前に言及されたページは、物理的ページメモリセルであるかあるいはセンスアンプである。文脈次第で、各セルが蓄積する場合がある。
感知回路および手法
図5Aは、メモリセルのアレイを横断するp個のセンスモジュールのバンクを包含する図1に示されているセンスモジュールをより詳しく示す。並行して動作するp個のセンスモジュール480のバンク全体により、1つの行に沿うp個のセル10の1つのグループ(すなわち、物理的ページ)を並行して読み出すかあるいはプログラムすることができる。本質的に、センスモジュール1はセル1における電流I1 を感知し、センスモジュール2はセル2における電流I2 を感知し・・・センスモジュールpはセルpにおける電流Ip を感知する等である。ソース線34から集合ノードCLSRCに流入し、そこから接地へ流れるページの総セル電流iTOT は、p個のセルの全電流の総和である。
従来のメモリアーキテクチャでは、1つの共通ワード線を有する1行のメモリセルは2つ以上のページを形成し、ここで1ページ中のメモリセルは並行して読み出されプログラムされる。2ページを有する行の場合、1ページは偶数ビット線によりアクセスされ、他方のページは奇数ビット線によりアクセスされる。いずれの一時点においても、1つの物理的ページの感知回路が偶数ビット線または奇数ビット線に結合されている。
現在生産されているチップでは、物理的ページは64kまたはそれより大きいことがある。好ましい実施形態では、グループはセルの行全体のうちの一連なりである。これは、隣接するビット線にそれぞれ結合されている隣接するメモリセルの1つの行からページが構成されるいわゆる「全ビット線」アーキテクチャである。
図5Bは、センスアンプを含むセンスモジュールを示す。センスアンプ490は、1つのセルの伝導電流が基準レベルより高いか低いかを検出する。感知された結果は、ラッチ430の対応するセットの中にラッチされる(図1を参照)。
消去ブロック
フラッシュメモリと他のタイプのメモリとの1つの重要な違いは、セルが消去済みの状態からプログラムされなければならないことである。すなわち、フローティングゲートは初めに電荷を除去されて空にされなければならない。その後、プログラミングは、フローティングゲートに所望の量の電荷を加え直す。それは、より強くプログラムされた状態からより弱い状態になるようにフローティングから電荷の一部分を除去することをサポートしない。これは、更新データは既存のものを上書きすることができず、前に書き込まれていない位置に書き込まれなければならないということを意味する。
さらに、消去は、フローティングゲートから全ての電荷を除去して空にすることであって、一般にかなり時間がかかる。この理由から、1セルずつあるいは1ページずつでさえも、消去することは煩わしくて非常に低速である。実際には、メモリセルのアレイはメモリセルの多数のブロックに分割される。フラッシュEEPROMシステムでは普通のことであるように、ブロックは消去の単位である。すなわち、各ブロックは、一緒に消去される最小数のメモリセルを包含する。
図6は、複数の消去可能なブロックを成すように編成されているメモリアレイの例を概略的に示す。電荷蓄積メモリデバイスをプログラムすることは、より多くの電荷をその電荷蓄積素子に加えるという結果をもたらすことができるだけである。従って、プログラム操作の前に、メモリセルの電荷蓄積素子内に存在する電荷は除去され(すなわち、消去され)なければならない。EEPROMのような不揮発性メモリは、セルのアレイ200全体あるいはアレイのセルのかなりのグループが電気的に一緒に(すなわち、一瞬で)消去されるならば、「フラッシュ」EEPROMと称される。一旦消去されたならば、セルのグループは、以後、再プログラムされ得る。一緒に消去可能なセルのグループは、1つ以上のアドレス指定可能な消去ユニット300から成ることができる。消去ユニットあるいはブロック300は、通例、1ページ以上のデータを記憶し、ページはプログラミングおよび読み出しの最小単位であるが、単一の操作で1ページより多くがプログラムされるかあるいは読み出され得る。各ページは、通例、1セクタ以上のデータを記憶し、セクタのサイズはホストシステムにより定義される。一例は、磁気ディスクドライブに対して確立されている標準規格に従う、512バイトのユーザデータに加えて、ユーザデータおよび/またはそれが格納されるブロックに関する数バイトのオーバーヘッド情報のセクタである。
図6に示されている例では、メモリアレイ200内の個々のメモリセルは、WL0〜WLyのようなワード線42およびBL0〜BLxのようなビット線36によりアクセス可能である。メモリは、消去ブロック0、1・・・mのような消去ブロックを成すように編成されている。図5Aおよび5Bも参照すると、NANDストリング50が16個のメモリセルを包含していれば、アレイ内のNANDストリングの第1のバンクは選択線44とWL0〜WL15のようなワード線42とによりアクセス可能である。消去ブロック0は、一緒に消去されるNANDストリングの第1のバンクの全メモリセルを有するように編成される。別のメモリアーキテクチャでは、NANDストリングの1つより多いバンクが一緒に消去され得る。
バイナリ(SLC)および多状態(MLC)メモリ分割の例
前に記載したように、不揮発性メモリの一例は、そのチャネル領域とそのコントロールゲートの間に電荷蓄積層をそれぞれ有する電界効果トランジスタのアレイから形成される。その電荷蓄積層あるいはユニットは、1つの範囲の電荷を蓄積して、各電界効果トランジスタにしきい値電圧の1つの範囲を生じさせることができる。その可能なしきい値電圧の範囲は1つのしきい値ウィンドウにわたる。しきい値ウィンドウがしきい値電圧の複数のサブレンジまたはゾーンに分割された時に、各々の分解可能なゾーンは1つのメモリセルについて異なる複数のメモリ状態を表すのに使用される。複数のメモリ状態は、1つ以上のバイナリビットによってコード化され得る。
図7は、セルの集団を有するバイナリメモリを示し、各セルは2つの可能な状態のうちの1つにある。各メモリセルのしきい値ウィンドウは、単一の区分レベルによって2つの識別可能なゾーンに分割される。図7(0)に示されているように、読み出し中、下側ゾーンおよび上側ゾーンの間の読み出し区分レベルrV1 は、そのセルのしきい値レベルがどちらのゾーンにあるかを判定するために使用される。セルは、そのしきい値が下側ゾーンの中にあれば「消去済み」状態にあり、そのしきい値が上側ゾーンの中にあれば「プログラム済み」状態にある。図7(1)は、メモリの全セルが初めに「消去済み」状態にあることを示す。図7(2)は、セルのうちの幾つかが「プログラム済み」状態にプログラムされることを示す。メモリ状態をコード化するために1ビットあるいはバイナリコードが使用される。例えば、ビット値「1」は「消去済み」状態を表し、「0」は「プログラム済み」状態を表す。通例、プログラミングは、1つ以上のプログラミング電圧パルスの印加によって実行される。各パルス後、しきい値がベリファイ区分レベルvV1を超えて移動したかどうかをベリファイするためにセルは感知される。このようなメモリセル分割を有するメモリは「バイナリ」メモリまたはシングルレベルセル(「SLC」)メモリと称される。バイナリあるいはSLCメモリは、しきい値ウィンドウ全体が2つのゾーンにより占められるだけであるので、広いエラーマージンで動作するということが理解される。
図8は、セルの集団を有する多状態メモリを示し、各セルは8個の可能な状態のうちの1つにある。各メモリセルのしきい値ウィンドウは、少なくとも7個の区分レベルにより8個の識別可能なゾーンに分割される。図8(0)に示されているように、読み出し中、セルのしきい値レベルがどのゾーンにあるかを判定するために読み出し区分レベルrV1 〜rV7 が使用される。セルは、そのしきい値が最低のゾーンにあれば「消去済み」状態にあり、そのしきい値が上側のゾーンにあれば複数の「プログラム済み」状態のうちの1つにある。図8(1)は、メモリが初めはその全セルが「消去済み」状態にあることを示す。図8(2)は、セルのうちの幾つかが「プログラム済み」状態にプログラムされていることを示す。8個のメモリ状態の各々を表すために、下側、中央および上側ビットを有する3ビットコードが使用され得る。例えば、「0」、「1」、「2」、「3」、「4」、「5」、「6」および「7」状態はそれぞれ「111」、「011」、「001」、「101」、「100」、「000」、「010」および「110」により表される。通例、プログラミングは1つ以上のプログラミング電圧パルスの印加により実行される。各パルス後、セルは、しきい値がベリファイ区分レベルvV1 〜vV7 のうちの1つである基準を超えて移動したかどうかをベリファイするために感知される。このようなメモリセル分割を有するメモリは「多状態」メモリまたはマルチレベルセル(「MLC」)メモリと称される。
同様に、4ビットコードを記憶するメモリは、16個の状態の各々を表す下側、第1の中央、第2の中央および上側ビットを有する。しきい値ウィンドウは少なくとも15個の区分レベルによって16個の識別可能なゾーンに区分される。
メモリの有限のしきい値ウィンドウがより多くの領域に分割されるにつれて、プログラミングおよび読み出しのための分解能は必然的により細かくなってゆく。従って、多状態またはMLCメモリは、必然的に、より少なく分割されたゾーンを有するメモリのものと比べてより狭いエラーマージンで動作する。換言すれば、エラー率は、各セルに格納されるビットの数と共に増大する。一般的に、エラー率は、しきい値ウィンドウ内の分割されたゾーンの数と共に増大する。
エラー訂正符号(「ECC」)による訂正
フラッシュメモリはエラーを生じがちである。エラーのないデータを保証するために、エラーを訂正するべくエラー訂正符号(「ECC」)が実施される。
図9は、ECCフィールドを包含するデータページを概略的に示す。図4および図6Aに関して記述したように、メモリセルの物理的ページは、並行して動作するセンスモジュールの対応するページにより並行してプログラムされ読み出される。各メモリセルが複数ビットのデータを記憶する時には、各物理的ページに関連付けられた複数のデータページがある。データページ70’はユーザ部分72’およびシステム部分74’を含む。ユーザ部分72’はユーザデータの格納のためのものである。システム部分74’は、一般的にメモリシステムによりシステムデータの格納のために使用される。システムデータにはECCが含まれる。ECCは、データページのために計算される。通例、ECCは、コントローラ102内のECCプロセッサ62(図1を参照)により計算される。
ホストからデータが受け取られると、データの1つのページがコントローラ102にステージされ、そのECC76’がECCプロセッサ62により計算される。ECCを組み入れたデータページは、その後、メモリアレイ200に書き込まれる。通例、データページが読み出される時に、データページはデータラッチ430にラッチされ、I/O回路440からコントローラ102にシフトアウトされる。コントローラ102において、データページの既存のECCが、読み出されたデータに関して計算されたECCの第2のバージョンと比較される。ECCは、通例、データページ中の任意のエラーを迅速に検出するためのエラー検出符号(「EDC」)を含む。EDCが読み出されたデータページ中のエラーの存在を示したならば、読み出されたデータページ中の誤っているビットを訂正するためにECCが呼び出される。
ECCは、任意の数のエラービットを訂正するように設計され得る。それが訂正しなければならないビットが多いほど、ECCはより複雑で計算集中的となる。品質保証のために、従来のECCは、メモリデバイスの寿命の終わりの時(「EOL」)に予想される最悪の場合のセルエラー率(「CER」)に基づいて設計される。従って、それらは、統計的エラー母集団の遠末端に至るまでの最大数のエラービットを訂正しなければならない。
図10Aは、標準偏差σの種々の範囲における母集団のパーセンテージでエラー率の正規分布を示す。例えば、2σから3σまでの範囲の中には母集団の僅か2.1%があるだけである。3σから4σまでの範囲の中には母集団の僅か0.1%があるだけである。
図10Bは、図10Aの分布を表形式で示す。母集団のE−09あるいは10億に1つだけが6σを超えて存在するということが理解され得る。表の最後の列は、最悪の場合におけるメモリデバイスの例についての推定エラー率を示す。例えば、母集団の5%は1個のエラービットを有し、母集団の0.135%は4個のエラービットを有し、母集団の10億に1つは42個のエラービットを有する。
125個のメモリカードから成るサンプルを考察する。各カードは、それぞれ2KBのデータページを有する16GBの容量を有する。これは、それぞれ2KBの10億ページから成る母集団となる。125個のメモリカードのサンプルのうちに、カードの寿命の終わりの時にエラーのあるページが1つもないことを保証するためには、42ビットまで訂正することのできるECCが必要とされる。
メモリの寿命の間のエラー
前に記載したように、ECCは、通例、メモリの実用寿命の間に予想される任意のエラーを訂正するように設計される。エラーは、幾つかの発生源から生じる。
図11は、フラッシュメモリについてエラーの主な発生源を記録した表である。図11(A)は、ページが書き込まれた後に存在するビットエラーである書き込み後EPW(NCYC )からのエラーの第1の発生源を示す。フラッシュメモリでは、「プログラミング」は、セルのしきい値を消去済み状態から大きくするプロセスを指す。この用語は、「書き込み」と交換可能に使用される。エラー率は、プログラム−消去サイクルの数NCYC と共に増大する。データがセルに書き込まれた後、ベリファイ操作に合格しても、データはなお2つの原因から誤っていることがある。
書き込み後エラーの第1の原因は、ベリファイ操作により検出されなかったオーバープログラミングによる。オーバープログラミングは、メモリセルのうちの幾つかが同時にプログラムされる時に生じ得る。その理由は、メモリセルを構成する半導体デバイスの構造および操作に僅かな変動があることに起因して各メモリセルの特性が異なり、従って、セルによりプログラミング速度が通例違うということにある。その結果として、メモリセルの中には他よりも速くプログラムされるものがあり、さらに幾つかのメモリセルが意図されたものとは異なる状態にプログラムされる可能性がある。複数のメモリセルを速くプログラムすれば、所望のしきい値電圧レベルを通り越して、格納されるデータにエラーを生じさせるという結果になる可能性がある。
通例、データがプログラムされる時に、デバイスについてのプログラム−ベリファイのプロセスは、メモリセルのプログラムされたしきい値電圧が、現在の状態を隣接するより少なくプログラムされた状態から区別する基準レベルより高いかどうかを検査する。しかし、プログラム−ベリファイは、プログラムされたしきい値電圧が基準電圧よりどれだけ高いかを知らない。従って、デバイスは、通例、しきい値電圧の上限を保証しない。或るデバイスは、確かに、ソフトプログラミングプロセス(後で記述する)がしきい値電圧を過度に高めたかどうかを検査するけれども、そのようなデバイスは正規のプログラミングプロセスがしきい値電圧を過度に高めたかどうかを検査しない。従って、所望の状態のための範囲を超えてしきい値電圧を高めるオーバープログラミングが、気づかれることなく生じる可能性がある。オーバープログラミングは、メモリセルに次のプログラム済み状態へ通り越させ、従って誤ったデータを記憶させる原因と成り得る。このエラーはその後の読み出し操作中に検出され、その時にセルのプログラムされたしきい値は、通例、所与のメモリ状態のためのしきい値範囲を区分する下限および上限の両方に関して検査される。オーバープログラミングに関するさらなる情報は、米国特許第5,321,699号(特許文献15)、第5,386,422号(特許文献16)、第5,469,444号(特許文献17)、第5,602,789号(特許文献18)、第6,134,140号(特許文献19)、第6,914,823号(特許文献20)、および第6,917,542号(特許文献21)で見出され得る。
書き込み後エラーの第2の原因は、記憶素子間の場結合による、蓄積電荷レベルの見かけ上のシフトにある。この結合の程度は、メモリセルアレイのサイズが小さくされるに連れて必然的に大きくなるが、それは集積回路製造技術の改良の結果として生じる。問題は、異なる時点でプログラムされた隣接するセルの2グループの間で最も顕著に生じる。1グループのセルは、1セットのデータに対応するレベルの電荷をそれ自身の記憶素子に加えるようにプログラムされる。第2のグループのセルが第2のセットのデータでプログラムされた後、第2のグループの記憶素子上の電荷が第1のものと容量的に結合されることの効果の故に、しばしば、第1のグループのセルの記憶素子から読み出された電荷レベルはプログラムされたのとは異なるように見える。特に、感知された時のメモリセルは、より少なく乱された時より高い(あるいは、より大きくプログラムされた)しきい値レベルを有するように見える。これはユーピン効果としても知られていて、その全体が本願明細書において参照により援用されている、米国特許第5,867,429号(特許文献22)に記載されている。特許文献22は、その2グループの記憶素子を物理的に互いに分離させるか、あるいは第2のグループの記憶素子上の電荷の効果を第1のグループのものを読み出す時に考慮に入れることを記載している。
図11(B)は、EOLにおけるデータ保持に起因するビットエラーであるエラーの第2の発生源EDR(T,NCYC )を示す。エラー率は、温度T、およびプログラム−消去サイクルの数NCYC と共に増大する。データエラーは、デバイスの履歴に起因する。それは、通例、データ保持問題に関連し、それはメモリデバイスの、環境、例えば温度への暴露に依存する。時間が経つと、実際の蓄積されている電荷レベルはゆっくりリークし、プログラムされたしきい値を低下させる。
各メモリセルに格納される状態の数が増えると、記憶素子にプログラムされた電荷レベルの任意のシフトの許容範囲は小さくなる。各メモリセルの記憶素子で記憶される状態の数が増えると、各記憶状態のために指定される電荷の範囲は必然的に狭くされて互いにより近く置かれることになるから、プログラミングはより高い精度で行われなければならず、蓄積された電荷レベルの任意のプログラミング後のシフトの許容され得る大きさは、現実のシフトであっても見かけ上のシフトであっても、小さくなる。1つのセルに蓄積されている電荷に対する現実の外乱は、そのセルをプログラムしおよび読み出す時に、さらに、同じ列または行の中のものおよび線またはノードを共有するもののような、そのセルと或る程度の電気的結合を有する他のセルを読み出し、プログラムしおよび消去する時に、生じさせられ得る。
図11(C)は、読み出し外乱に起因するビットエラーであるエラーの第3の発生源ERD(NR ,NCYC )を示す。エラー率は、読み出しの回数とプログラム−消去サイクルの数NCYC と共に増大する。
フラッシュメモリについての1つの重要な考慮事項は、それが使用されれば古くなるので耐久性問題を有することである。セルが繰り返しプログラムされ消去される時に、誘電体にわたるトンネリングによって電荷がフローティングゲート20(図2を参照)に出入りさせられる。そのたびに、或る程度の電荷が誘電体に捉えられてセルのしきい値を変化させる。セルが経験したプログラム−消去サイクルの数は、サイクルカウントNCYC (「ホットカウント」としても知られている)により測られる。繰り返されるサイクルを通して、所与の消去ブロックについてNCYC の値は大きくなり、ブロック内のセルのためのしきい値ウィンドウを漸次狭めてゆく。従って、プログラム−消去サイクルの効果は、図11に記載されているエラーの全発生源に著しい影響を及ぼす。
図12は、例としてのメモリデバイスについて、その寿命の始まりの時と終わりの時における推定総エラーを示す表である。図12(A)は、図11(A)〜図11(C)に示されている3つの発生源からの総エラーがETOT (NCYC ,NR )=EPW(NCYC )+EDR(T,NCYC )+ERD(NR ,NCYC )であることを示す。
図12(B)は、メモリが比較的に新しい(NCYC が低い)けれども85℃で5年間焼かれて106 回読み出された時の推定ETOT を示す。種々の成分エラーについての推定値は、EPW(1)〜3、EDR(85℃,1)〜2、およびERD(1M,1)〜0である。これらは、総推定エラーETOT (1,1M)=3+2+0=5ビットをもたらす。
図12(C)は、メモリがデバイスの寿命の終わりの時(「EOL」)に近い時の推定ETOT を示す。それは、他のパラメータが図12(B)のものと同様でプログラム−消去サイクルが大きいこと(NCYC =10K)を特徴としている。種々の成分エラーについての推定値は、EPW(10K)〜10、EDR(85℃,10K)〜10、およびERD(1M,10K)〜1である。これらは、総推定エラーETOT (10K,1M)=10+10+1=21ビットをもたらす。
図11および図12に示されているエラーの3つの発生源のうち、一般的に読み出し外乱に起因するエラーERDは、書き込みに起因するエラーEPWおよびデータ保持に起因するエラーEDRほど重要ではない。データ保持エラーは、セルのしきい値レベルを「読み出しスクラブ」操作において定期的にリフレッシュすることによって緩和され得る。
メモリに生じることのある種々のエラー、特に書き込み後に生じるエラーを訂正するために、(前に図9に関して説明した)ECCが使用される。しかし、エラーを訂正するためにECCを使用すれば処理時間がかかり、それが訂正しなければならないビットが増えれば、より多くの計算時間が必要になる。多数のエラービットを訂正することのできる強力なECCを使用すればメモリ性能は低下する。適当な量の時間でECCを実行するために追加の専用ハードウェアが実装されることがある。そのような専用ハードウェアは、コントローラASICチップ上の相当の量のスペースを取る可能性がある。
図13は、従来のECCが最悪の場合の総エラーETOT を訂正するように設計されなければならないことを示す表である。それは、大きなプログラム−消去サイクル総数およびデータ保持仕様を有する寿命の終わりの時における工夫である。図12(C)において与えられている例では、ECCは少なくとも21個のエラービットを訂正することができなければならない。
エラー率を制御するためにデータを高密度メモリ部分から低エラー率メモリ部分に適応的に再書き込みする
本発明の一般的な態様に従って、メモリセルのアレイを有するフラッシュメモリは第1の部分および第2の部分を有するように構成される。第1の部分と比べて第2の部分はより高い密度でデータを記憶するけれどもより小さなエラーマージンで動作する。データは、効率の良い記憶を目的として第2の部分に書き込まれる。その後、過多なエラービットがあるかないかを検査するためにデータは読み返される。エラービットが所定量を超えたならば、そのデータは、エラーがより生じにくい第1の部分に再書き込みされる。これにより、データをメモリに書き込むことから生じるエラービットの最大数に限界が設けられることになる。エラー率の統計的分布において、この限界は、分布の遠末端(エラー率がより高い)が無視され得るように分布の標準偏差数の限界を表す。これにより、より少数のエラービットを訂正するためにより小さくてより効率的なエラー訂正符号(「ECC」)を設計し、これによりメモリの性能を改善すると共にメモリのコストを低減することができる。
図14Aは、本発明の1つの好ましい実施形態に従って2つの部分に分割されているメモリアレイを示す。メモリセルのアレイ200は、第1の部分410および第2の部分420を成すように分割されている。第2の部分420のメモリセルは高密度記憶装置として構成され、各セルは複数ビットのデータを記憶する。第1の部分410のメモリセルはより低い密度の記憶装置として構成され、各セルは第2の部分のものより少ない数のビットを記憶する。例えば、第1の部分のメモリセルは、第2の部分における3ビットのデータと比べて1ビットのデータを記憶するように構成される。前の記載の見地から、第1の部分は、第2の部分のものと比べて遥かに広いエラーマージンで動作する。従って、第1の部分でのメモリ操作は、第2の部分におけるものより少ないエラーを有する。
その全体が本願明細書において参照により援用されている、「Selective Operation of a Multi-state Non-volatile Memory System in a Binary Mode」という米国特許第6,456,528号(特許文献23)は、普通は2より多い状態で動作するメモリセルを有するけれども、選択されたメモリセルが2状態動作中に増大したマージンを提供するために僅か2状態で動作するフラッシュ不揮発性メモリを開示している。これにより、2状態で動作させられるメモリセルのより高速のプログラミングとより長い動作寿命とが、多状態動作が提供する大きなデータ記憶密度よりもこれらの利点のほうが望ましい時に、可能となる。
1ページの着信データがメモリアレイ200に書き込まれる時に、好ましくは、効率および大容量のために高密度の第2の部分に格納される。従って、データページの第1のコピーが第2の部分に書き込まれる。
その後、データページの第1のコピーは、エラーがあるかどうかを判定するために「書き込み後読み出し」で読み返される。これは、キャッシュされ得るオリジナルコピーとの比較によるかまたはECCのEDC部分を検査することにより成し遂げられる。
読み出されたコピーの中のエラービットの数が所定量を超えるかどうかが判定される。エラービットの数が所定量を超えなければ、第1のコピーは第2の部分に格納されていると考えられ有効であると見なされる。データページのその後の読み出しは第2の部分の中の第1のコピーから行われ、エラーがあれば、コントローラにおいてECCにより訂正される。
図11に関連して前に説明したように、プログラミング中のベリファイプロセスは、アンダープログラミングについて検査するだけであってオーバープログラミングについては検査しない。従って、データページがプログラム−ベリファイされた後にエラーがなお存在していることがある。データページ中のどんなエラーでも検出するためには全ての区分レベル(図7および図8を参照)に関して読み出し操作が必要である。さらに、隣接するセルのその後のプログラミングのユーピン効果が問題のデータページを乱し、見かけ上の感知結果をシフトさせる可能性がある。従って、読み返しは、少なくとも、現在のデータページに顕著なユーピン効果を及ぼす可能性のある全ての隣接セルのプログラミングの後に行われるべきである。別の実施形態では、読み返しは、問題のデータページを含むブロックの中の全てのセルがプログラムされ終わった後に行われる。
「書き込み後読み出し」は、その全体が本願明細書において参照により援用されている、米国特許第6,914,823号(特許文献20)、第6,917,542号(特許文献21)、および第7,009,889号(特許文献24)にも開示されている。
図14Bは、データページの第2のコピーの、図14Aのメモリアレイの第1の部分への再書き込みを示す。データページ中のエラービットの数が所定量を超えていることを書き込み後読み出しが検出した後、データページの第2のコピーが第1の部分に再書き込みされる。第2のコピーは、キャッシュされ得るオリジナルデータのものであるか、あるいは別の実施形態では第1のコピーを取り出してエラーをECCで訂正することによる。
第2のコピーが第1の部分に書き込まれた後、有効なコピーとして第2の部分内の第1のコピーに取って代わる。第1のコピーは陳腐化し、コントローラのファームウェアにおいて具体化されるブロック管理システム内のディレクトリ(図1を参照)は、その後のアクセスを第2のコピーに向けるように更新される。
1つの好ましい実施形態では、第1の部分の各メモリセルは1ビットのデータを記憶し、第2の部分の各メモリセルは1ビットより多いデータを記憶する。
図15は、図14Aおよび図14Bに示されている実施形態に従う書き込み後読み出しおよび適応再書き込みのプロセスを示す流れ図である。
ステップ500:メモリを第1および第2の部分を成すように構成する。第1の部分は第2の部分のものより大きなエラーマージンで動作するメモリセルを有する。
ステップ510:入力データのグループの第1のコピーを第2の部分にプログラムする。
ステップ520:所定時間後にエラーを検査するために第2の部分から第1のコピーを読み出す。
ステップ530:エラーはエラービットの所定数を超えるか?所定数を超えたならば、ステップ540に進む。そうでなければ、ステップ550に進む。
ステップ540:入力データのグループの第2のコピーを第1の部分にプログラムする。
ステップ550:最後に書き込まれたコピーをその後の読み出しのための有効なデータとして特定する。
ステップ560:入力データのグループは不揮発性メモリに格納され終えた。
1つの代替の実施形態では、第1の部分は着信データのためのキャッシュとして動作し、入力データのキャッシュコピーがキャッシュにプログラムされる。その後、データの第1のコピーが第2の部分にプログラムされる。
書き込み後読み出しが第1のコピーの中に過多な量のエラーを検出しなかったならば、第1のコピーは有効と見なされ、その後の読み出しは第1のコピーにアクセスするように管理される。
一方、書き込み後読み出しが第1のコピーの中に過多な量のエラーを検出したならば、第1の部分内のキャッシュされているコピーが有効なデータとして第2の部分内の第1のコピーに取って代わる。第1のコピーは陳腐化し、コントローラのファームウェアにおいて具体化されるブロック管理システム内のディレクトリ(図1を参照)は、その後のアクセスをキャッシュされたコピーに向けるように更新される。
その全体が本願明細書において参照により援用されている、「Multi-state Non-volatile Flash Memory Capable of Being its Own Two State Write Cache」という米国特許第5,930,167号(特許文献25)は、2つの部分を有するフラッシュメモリアレイを開示している。第1の部分はセル当たりに1ビットを記憶するように構成され、第2の部分はセル当たりに1ビットより多くを記憶するように構成されている。第1の部分は低密度書き込みキャッシュとして動作する。着信データは、初めに第1の部分にキャッシュされる。後の時点で、バックグラウンドで、そのキャッシュされたデータは、より高い記憶密度を有する第2の部分に転送される。
好ましい実施形態では、第1の部分はさらに第1のセクションおよび第2のセクションを備える。着信データは第1の部分の第1のセクションにキャッシュされ、データの第1のコピーが第2の部分に書き込まれる。その後、第2の部分の中の第1のコピーは、過多なエラービットがあるかどうかを検査するために読み返される。エラービットが所定量を超えたならば、着信データの第2のコピーが第1の部分の第2のセクションに書き込まれる。
図16Aは、本発明の好ましい実施形態に従って、2つの部分に分割され、第1の部分がさらにキャッシュセクションおよび再書き込みセクションを備えているメモリアレイを示す。図14Aの場合と同じく、メモリセルのアレイ200は第1の部分410および第2の部分420を成すように分割されている。第2の部分420のメモリセルは高密度記憶装置として構成され、各セルは複数ビットのデータを記憶する。第1の部分410のメモリセルは第2の部分のものより低い密度の記憶装置として構成され、各セルは第2の部分のものより少数のビットを記憶する。従って、第1の部分は、第2の部分のものより広いエラーマージンで動作する。
第1の部分410は、着信データをキャッシュするための第1のセクション411および第2の部分からの再書き込みを格納するための第2のセクション412をさらに備えている。
1ページの着信データがメモリアレイ200に書き込まれる時に、キャッシュコピーが第1の部分410の第1のセクション411にキャッシュされる。第1のコピーは、好ましくは、効率および高密度のために高密度の第2の部分に格納される。従って、データページの第1のコピーが第2の部分に書き込まれる。
別の好ましい実施形態では、メモリアレイは集積回路チップ上にデータラッチのセットを備え、第1のコピー中のエラービットの検査は、第1のコピーおよびキャッシュコピーをそのデータラッチのセットにロードしてデータラッチのセットにおいて比較を行うことによって成し遂げられる。
比較をコントローラにおいて行わないことにより、データはコントローラへトグルアウトされなくてもよく、多くの時間が節約され得る。図1は、データラッチ430を示し、データ比較が行われるように、オンチップである。
図16Bは、書き込み後読み出しの好ましい実施形態に従うページ比較手法を示す。第2の部分の中のデータページの第1のコピーは、エラーがあるかどうかを判定するために「書き込み後読み出し」で読み返される。これは、キャッシュコピーとの比較により成し遂げられる。
エラービットの数が所定量を超えなければ、第2の部分に格納されている第1のコピーは有効であると見なされる。キャッシュコピーは陳腐化し、コントローラのファームウェアにおいて具体化されるブロック管理システム内のディレクトリ(図1を参照)は、その後のアクセスを第1のコピーに向けるように更新される。データページのその後の読み出しは第2の部分内の第1のコピーからであり、エラーがあれば、コントローラにおいてECCにより訂正される。
図16Cは、書き込み後読み出しが第2の部分内のデータページに過多な量のエラーを判定した後の第1の部分への再書き込みを示す。第1のコピーのデータページ内のエラービットの数が所定量を超えていることを書き込み後読み出しが検出した後、データページの第2のコピーが第1の部分410の第2のセクション412に再書き込みされる。第2のコピーは、キャッシュコピーから取られる。
第2のコピーは、第1の部分の第2のセクション412に書き込まれた後、第2の部分内の第1のコピーに取って代わる。第1のコピーおよびキャッシュコピーは陳腐化し、コントローラのファームウェアにおいて具体化されるブロック管理システム内のディレクトリ(図1を参照)は、その後のアクセスを第2のコピーに向けるように更新される。
図17は、図16A〜図16Cに示されている実施形態に従う書き込み後読み出しおよび適応再書き込みのプロセスを示す流れ図である。
ステップ600:メモリを第1および第2の部分を成すように構成する。第1の部分は第2の部分より大きなエラーマージンで動作するメモリセルを有する。
ステップ602:入力データのグループのキャッシュコピーを第1の部分の第1のセクションにプログラムする。
ステップ610:入力データのグループの第1のコピーを第2の部分にプログラムする。
ステップ620:所定時間後にエラーを検査するために第2の部分から第1のコピーを読み出す。
ステップ630:エラーはエラービットの所定数を超えるか?所定数を超えたならば、ステップ632に進む。そうでなければステップ650に進む。
ステップ632:入力データのグループのキャッシュコピーを第1の部分の第1のセクションから読み出す。
ステップ642:キャッシュコピーを入力データのグループの第2のコピーとして第1の部分の第2のセクションにプログラムする。
ステップ650:最後に書き込まれたコピーをその後の読み出しのための有効なコピーとして特定する。
ステップ660:入力データのグループは不揮発性メモリに格納され終えた。
本発明の前の詳細な記述は、説明および記述の目的のために提示されている。網羅的であることも、発明を開示された形そのものに限定することも意図されていない。前の教示を考慮すれば多くの改変および変更が可能である。記述された実施形態は、本発明の原理およびその実際的応用を最善に説明し、それにより他の当業者が本発明を、意図された特定の用途に適する種々の実施形態で種々の改変を用いて最善に利用できるようにするために選択された。本発明の範囲は添付されている特許請求の範囲により定義されるべく意図されている。
強化書き込み後読み出しエラー管理
本発明の別の態様において、強化書き込み後読み出しエラー管理が実行される。書き込み後読み出しは、メモリデバイスの寿命の始まりの時にはイネーブルされない。メモリデバイスのエラー率は寿命の始まりの時には非常に低くて、書き込み後読み出しを動作させる必要はない。これにより、書き込み後読み出しを行うための時間の浪費が避けられる。メモリデバイスは使用すれば古くなるので、本発明の強化書き込み後読み出しおよびエラー管理は、デバイスの所定の古さでイネーブルされる。
1つの好ましい実施形態では、メモリデバイスの古さはメモリセルの各消去ブロックと共に維持されるホットカウントにより判定される。ホットカウントは、耐久性、すなわち消去およびプログラミング操作を通して消去ブロックがサイクルされた回数を追跡する。消去ブロックのホットカウントが所定のホットカウントしきい値を超えるといつでも、強化書き込み後読み出しエラー管理が始まって、メモリデバイスの寿命が終わるまで動作する。
図18は、複数の消去ブロックを成すように編成されたメモリを示す。前に図6に関して説明したように、各消去ブロックは、一緒に消去されるメモリセルのグループである。さらに、セルが繰り返しプログラムされ消去されると、誘電体にわたるトンネリングによって電荷がフローティングゲート20(図2を参照)に出入りさせられることも前に記載した。そのたびに、或る程度の電荷が誘電体に捉えられる場合があり、セルのしきい値を変化させる。セルが経験したプログラム−消去サイクルの数は、サイクルカウントNCYC (「ホットカウント」としても知られている)により測られる。繰り返されるサイクルを通して、所与の消去ブロックについてNCYC の値は大きくなり、ブロック内のセルのためのしきい値ウィンドウは漸次狭まる。図18は、各消去ブロック(m)においてホットカウントNCYC (m)302が維持される1つの好ましい実施形態を示す。プログラム可能な単位は1ページであるので、各ブロックのためのホットカウントは、図9に示されているデータページ70’のシステムデータエリアに格納され得る。代替的に、ホットカウントは、メモリ内のマスターリストに格納され得る。ブロックが消去されるたびに、そのホットカウントは1つずつインクリメントされる。
図19は、ホットカウントにより判定される所定の程度までメモリデバイスが古くなるとエラー管理がイネーブルされることを示す流れ図である。
ステップ700:メモリセルの複数の消去ブロックを成すように編成された不揮発性メモリを設ける。各消去ブロックのメモリセルは、一緒に消去され、各ブロックの消去/プログラムのサイクルの数と共に古くなる。
ステップ710:古くなりつつあるメモリデバイスに関連付けられたエラーを訂正するためのエラー管理を提供する。好ましい実施形態では、エラー管理は、前に記載した書き込み後読み出しエラー管理である。
ステップ720:各ブロックが受けたプログラム−消去サイクルの数を記録するホットカウントを維持することによって各ブロックの古さを追跡する。
ステップ730:メモリブロックのホットカウント>所定のホットカウントしきい値であるか?好ましい実施形態では、所定のホットカウントしきい値は、メモリに格納されているファイルシステム構成ファイル内のパラメータHot_count_threshold_EPWRにより与えられる(図21を参照)。より大きければ、ステップ740に行き、そうでなければステップ750に行く。
ステップ740:メモリの寿命の残りの間、エラー管理をイネーブルする。
ステップ750:エラー管理を未だイネーブルしない。
本発明のさらに別の態様の1つの好ましい実施形態では、メモリの高密度記憶部分(D3)の各メモリは3ビットのデータを記憶する。メモリの、エラーがより生じにくい、低密度記憶部分(D1)の各メモリセルは1ビットのデータを記憶する。入力データは初めにD1にステージされ、後にD3に折り込まれる。強化書き込み後読み出しエラー管理がイネーブルされると、D3内の現在の充填されているブロックが読み返され、エラー率が所定のしきい値を超えたならば、その現在のD3ブロックはリジェクトされ、再試行が行われてデータが新しいD3ブロックに再折り込みされる。その新しいD3ブロックは再び読み返され、過多なエラー率かどうかを検査される。その新しいD3ブロックが合格すれば、良好なデータを有し、D1内のオリジナルデータは陳腐化される。その新しいD3ブロックが再び過多なエラー率を示したならば、その新しいD3ブロックは再び廃棄される。過多なエラー率が所定数の再試行の後に持続しているならば、それ以上の再試行は試みられず、D1からD3への折り込み操作は断念されてオリジナルデータはD1で維持される。この時点で、そのメモリデバイスは、それ以上のプログラミング操作のためには古すぎると見なされて、メモリデバイスに格納されている現存するデータの完全性を維持するために読み出し専用にされる。
図20A〜図20Cは、D1部分およびD3部分で構成されたメモリにおける書き込み後読み出しエラー管理を実行することの種々の例を示す。D1部分およびD3部分で構成されたメモリは、その全体が本願明細書において参照により援用されている、Gorobetsらによる2009年12月18日に出願された「MAINTAINING UPDATES OF MULTI-LEVEL NON-VOLATILE MEMORY IN BINARY NON-VOLATILE MEMORY」という米国特許出願第12/642,584号(特許文献26)にも開示されている。
図20Aは、本発明の好ましい実施形態に従ってメモリアレイが2つの部分に分割されることを示す。メモリセルのアレイ200(図1を参照)は第1の部分410および第2の部分420を成すように分割される。第2の部分420のメモリセルは高密度記憶装置として構成され、各セルは複数ビットのデータを記憶する。第1の部分410のメモリセルはより低い密度の記憶装置として構成され、各セルは、第2の部分のものより少ない数のビットを記憶する。例えば、第1の部分のメモリセルは、第2の部分で3ビットのデータであるのと比べて、1ビットのデータを記憶するように構成される。1セル当たりに1ビットのデータを記憶する第1の部分はD1とも称され、1セル当たりに3ビットのデータを記憶する第2の部分はD3とも称される。前の記載の見地から、第1の部分は第2の部分のものと比べて遥かに広いエラーマージンで動作する。従って、第1の部分におけるメモリ動作は、第2の部分におけるものよりエラーが少ない。
一実施形態では、第1の部分410すなわちD1はさらに第1のセクション411および第2のセクション412を成すように分割される。
ステップ(1)において、ホスト書き込み中、入力データは初めに第1のセクション411にキャッシュされるか、あるいは第2のセクション412に直接書き込まれる。入力データが断片化されていれば、初めに第1のセクションにキャッシュされる。入力データが連続するデータの相当大きな連なりであるならば、直接第2のセクション412に1ページずつ書き込まれる。
ステップ(2)において、いずれにせよ、入力データは結局終わりには第2のセクション412に存在することになり、ここに書き込まれたページは、ブロックm1、m2およびm3のような仮想D1ブロックにステージされる。各ブロックが論理アドレスのよく画定された1つのグループからのデータを包含する方式では、仮想ブロックは物理的ブロックに対応しないことがあるけれども依然としてその論理アドレスのグループは数個の物理的D1ブロックに分散させられる。
ステップ(3)において、データが1ページずつD1に書き込まれてゆく時に、バイナリページのトリプレットがD1内にあると、D1からD3への折り込みとも称されることでD3内の単一の3ビットページにコピーされ得る。
強化書き込み後読み出しエラー管理(「EPWR」)を実行することにより、メモリの寿命の或る段階で書き込み後読み出しエラー管理が始まる。
ステップ(4)において、D3ブロックmは、仮想D1ブロックm1、m2およびm3のページ全体がそれに折り込まれた後に、完成する。その後、EPWRにより処理することができ、その処理でD3ブロック内のデータが読み返されてECCエラーに関して検査される。ECCエラーの数が、ファイルシステム構成ファイルにおいてセットされているパラメータE_pw_checkによりそれ自体に与えられる所定のしきい値より少なければ、D3ブロック内のデータは有効であると見なされる。対応するD1ページを、その時に安全に取り換えてリタイアさせることができる。
図20Bは、図20AのD3ブロックが書き込み後読み出しテストで不合格になる別の例を示す。ステップ(1)からステップ(3)までは図20Aのものと同じである。
ステップ(4’)において、D3ブロック内のデータが読み返される時に、ECCエラーの数はE_pw_checkより大きいことが見出される。これは、D3内のデータがせいぜい限界的で、使用されることはできないということを意味する。
ステップ(5)において、現存するD3ブロックが書き込み後読み出しテストに不合格であった場合に、EPWRは、データを新しいD3ブロックに折り込もうとする再試行を処方する。
ステップ(6)において、新しいD3ブロックの中のデータは別の書き込み後読み出しテストを受けさせられる。それがテストに合格すれば、その新しいD3ブロックの中のデータは有効であるとみなされる。その後、対応するD1ページを、安全に取って換えてリタイアさせることができる。
図20Cは別の例を示し、この例では図20Bの新しいD3ブロックは書き込み後読み出しテストに再び不合格となる。ステップ(1)からステップ(5)までは図20Bのものと同じである。
ステップ(6’)において、新しいD3ブロック内のデータが読み返される時に、ECCエラーの数はE_pw_checkより大きいことが見出される。これは、再試行されたD3ブロック内のデータが依然として不良で、使用され得ないということを意味する。
EPWRプロセスは、別のD3ブロックへのさらなる再試行を処方することができる。再試行の回数は、ファイルシステム構成ファイルの中のパラメータEPWR_retriesによりセットされる。例えば、EPWR_retriesが1であれば、プロセスは、その新しいブロックがテストに不合格になった後に終了する。
その場合、ステップ(7)において、新しいD3ブロックを使用することができず、ファイルシステムは、代わりにアクセスをD1内に存在している対応するデータに向ける。
図21は、強化書き込み後読み出しエラー管理に関連付けられた例としてのパラメータを示す表である。この表は、好ましくは、メモリに格納されているファイルシステム構成ファイルにおいて維持される。
E_pw_check:何個のECCビットのレベルでD3ブロックがハイリスクであると見なされて新しいD3ブロックへの、D1からD3への折り込みの再開が必要かを指定する、ファイルシステム構成ファイルにおいてセットされる変数。
ECC_threshold_SLC:EPWRで続行するか否かを決定するために比較するSLCしきい値を維持するためにファイルシステム構成ファイルにおいて変数が必要とされる。
EPWR_enable_flag:ファイルシステム構成ファイルにおいて制御される。0=セットされていない(デフォルト)。1=EPWRがイネーブルされている時にセットされている。
Hot_count_enable_flag:0=イネーブルされていない。1=イネーブルされている。
Hot_count_threshold_EPWR:どんなホットカウントレベルでEPWRが必要とされるかを指定する、ファイルシステム構成ファイルにおいてセットされる変数。全てのD3ブロックのホットカウントが<ホットカウントしきい値であれば、EPWRイネーブルフラグがオンであっても、EPWRプロセスはトリガされない。
EPWR_verify_page_budget:EPWRの1フェーズの間に何ページが読み出され得るかを指定する、ファイルシステム構成ファイルにおいてセットされる変数。
EPWR_retries:再試行の回数を制限する、ファイルシステム構成ファイル内の変数。 D3_Block_max_retries:寿命時間が終わるまでの1つのD3ブロックに対する再試行の総数を制限する、ファイルシステム構成ファイル内の変数。
図22Aは、D1からD3への折り込みを有するメモリに適用されたEPWRエラー管理の好ましい実現態様を示す流れ図である。
ステップ800:開始する。
ステップ810:D1の3つのバイナリデータページからのデータが、図20Aに関連して説明したようにD3の1つの3次ページにプログラムされる、D1からD3への折り込みである。
ステップ812:1つのD3ブロックが完全に満たされたか?完全に満たされたならば、ステップ820に進み、そうでなければステップ810に戻る。
ステップ820:強化書き込み後読み出しエラー管理(「EPWR」)がイネーブルされたか?デバイスの古さに依存するイネーブルのさらなる詳細が図22Bにおいて与えられる。EPWRがイネーブルされると、ステップ830でEPWRを処理する。そうでなければ、書き込まれたD3ブロックの完全性は不明であるが、楽観的に良好であると仮定される。ステップ850に進む。
ステップ830:EPWRを処理する。EPWRのより詳細な実現形態が図22Cにおいて与えられる。
ステップ840:より高いレベルで、本質的に、EPWRはD3ブロックの書き込み後読み出しおよびECCエラー率のテストを行う。エラーがE_pw_check(図21を参照)を超えなければ、そのD3ブロックは良好である。ステップ850に進む。そうでなければ、そのD3ブロック内のデータを使用することができず、D1データを新しいD3ブロックに折り込もうとする再試行が考慮される。ステップ860に進む。
ステップ850:D3ブロックは良好であると見なされるので、D1に存在するデータのオリジナルコピーを陳腐化してリタイアさせることができる。
ステップ860:図22Cにおいて詳しく述べられている幾つかの考慮事項に基づいて新しいD3ブロックで再試行を行うかどうかを決定する。再試行が許されなければ、ステップ870に進む。そうでなければ、ステップ862に進む(図22Cに示す)。
ステップ862:D1からD3への折り込みが新しいD3ブロックで反復される。別のブロックを処理するために戻る。
ステップ870:D3ブロック内のデータは不良であると見なされるので、データはD1内のオリジナルコピーからアクセスされなければならない。
ステップ872:このステップには、D3ブロックを再書き込みしようとする再試行が幾度か失敗した後に到達するので、そのメモリは、その寿命の終わりに近いと見なされる。プログラミング操作によるデータの破壊を防止するために、読み出し専用状態にされる。ステップ890に進む。
ステップ890:終了する。
図22Bは、強化書き込み後読み出しエラー管理のデバイス古さに依存するイネーブル特徴をより詳しく示す。図22Aのステップ820は、図22Bにおいて次のものをさらに含むように示されている。
ステップ822:EPWR_enable_flag(図21を参照)がイネーブルされているかを検査する。イネーブルされていなければ、EPWRはまったく実行されていない。デフォルトでステップ850に進み、そこでD3ブロックは良好と見なされる。イネーブルされていれば、メモリデバイスが或る古さになった後にEPWRが始まるかどうかを制御するためにステップ824に進む。
ステップ824:Hot_count_enable_flag(図21を参照)がイネーブルされているかを検査する。イネーブルされていなければ、EPWRはメモリデバイスの寿命の始まりの時から実行される。EPWRを処理するためにステップ830に直接進む。フラグがイネーブルされていればステップ826に進み、EPWRがいつ始まるべきかを制御する。
ステップ826:D3ブロックのうちのいずれか1つがHot_count_threshold_EPWRの値を超えるホットカウントを有するかを検査する。超えていなければ、そのメモリデバイスは未だ若くて過多なエラーを生じにくく、ステップ850に進み、EPWRは本質的に保留される。ホットカウントがしきい値を超えたならばそのメモリデバイスはエラーが顕著になる古さに達していて、EPWRプロセスの利益を被る。ステップ830に進んでEPWRを処理する。
図22Cは、強化書き込み後読み出しエラー管理の好ましい実現形態をより詳しく示す。図22Aのステップ830は、図22Cでは次のものをさらに含むように示されている。
ステップ832:D3ブロックの書き込み後読み出しおよびあり得る再試行を行うために利用可能な処理時間があるかどうかを検査する。その利用可能な時間は、好ましくは、フォアグラウンドでのホストコマンドの実行中の使用されていない時間から取られる。必要ならば、処理は、各ホストコマンド中の予備時間をより良く利用するように、複数のより小さなチャンクに分解され得る。処理を開始するために利用可能な時間があれば、ステップ834に進み、そうでなければステップ838に進む。
ステップ834:処理を開始するか、あるいは処理が既に開始されたけれども合間に中断されていたならば、処理を継続する。
ステップ836:EDC(エラー検出コード)を検査するためにD3からデータのページを読み出してコントローラへ転送する。ステップ838に進む。
ステップ840:EPWRはD3ブロックの書き込み後読み出しおよびECCエラー率のテストを行う。エラーがE_pw_check(図21を参照)を超えなければ、テストされているページはD3内にあり、良好である。ステップ842に進む。ページがテストで不良とされたならば、そのD3ブロック内のデータは使用され得ず、D1データを新しいD3ブロックに折り込もうとする再試行が考慮される。ステップ864に進む。
ステップ842:D3ブロック内の全ページがテストされたか?そうでなければ、次のページを処理するべくステップ844に進む。ブロック全体がテストで良好とされたならば、ステップ850に進む。
ステップ844:D3ブロック内の次のページを選択する。ステップ836に戻る。
ステップ862:再試行が試みられる前に、再試行の数がセットされている限界値EPWR_retries(図21を参照)を既に超えているかどうかを検査する。超えていなければ、ステップ866に進むことによって再試行が試みられる。再試行の数がセットされている限界値を超えていれば、そのメモリデバイスはその寿命の終わりの時にあると見なされ、コントロールはステップ870に進む。
ステップ866:再試行を試みる前の別の考慮事項は、過多なエラーがD1内のデータに固有のものであってD1からD3へのプログラミングエラーに起因するものではないのかどうかを検査することである。D1データは初めに過多なECCエラーがあるかどうかが検査される。エラーの数がECC_threshold_SLC(図21を参照)のような所定のしきい値を超えたならば、再試行は無益である。別のD3ブロックを処理するためにステップ834に戻る。
しかし、次の任意選択の特徴が実行されるならば、代わりに任意選択のステップ868に進む。一方、D1データが良好であれば、さらに進んでステップ869において別のD3ブロックの再試行を試みる。別の実施形態では、ステップ866はステップ862の前に実行される。
図22Cは、破線のボックスにより示される任意選択の特徴をも示している。1つの選択肢は、ブロックがその寿命の終わりの時までに過度に多くの再試行を受けたかどうかを検査するステップ864および865により示されている。そうならば、そのブロックの物理的完全性は問題であるかも知れず、そのブロックを、それが再び使用されないように、リタイアさせるのが最善である。この選択肢が実行される時には、ステップ862におけるNOからの流れはステップ864へ向けられる。
ステップ864:D3ブロックはパラメータBlock_max−retries(図21を参照)により定義されるしきい値より多い再試行を経験したか?そうならば、ステップ865に進んでそのブロックをリタイアさせ、そうでなければステップ866に進んでさらに再書き込み決定を行う。
ステップ865:D3ブロックは、その寿命の終わりの時までに、余りに多くの再試行を受けさせられ、堅固であるとは見なされ得ない。リタイアさせられて流通から回収される。その後、コントロールは、D3ブロックを再書き込みするステップ869に直接進む。
他の選択肢は、D1データが余り良くない場合、初めにECCによって訂正されて、D3に折り込まれる前にD1に再ステージされることである。この選択肢が実行される時に、ステップ866におけるYESからの流れはステップ834の代わりにステップ868へ向けられる。
ステップ868:問題のあるD1データはECCにより訂正されてD1に再ステージされる。ステップ869に進む。
各々1ビットデータを記憶するメモリセルを有する第1の部分と各々3ビットデータを記憶するメモリセルを有する第2の部分とに分割されているメモリについて1つの例が与えられているけれども、本発明はその例によって限定されない。
本発明の前の詳細な記述は、説明および記述の目的のために提示されている。網羅的であることも、発明を開示された形そのものに限定することも意図されていない。前の教示を考慮すれば多くの改変および変更が可能である。記述された実施形態は、本発明の原理およびその実際的応用を最善に説明し、それにより他の当業者が本発明を、意図された特定の用途に適する種々の実施形態で種々の改変を用いて最善に利用できるようにするために選択された。本発明の範囲は添付されている特許請求の範囲により定義されるべく意図されている。

Claims (20)

  1. 不揮発性メモリを操作する方法であって、
    前記不揮発性メモリが使用を通じて古くなる時に生じがちなエラーを訂正するためのエラー管理を提供するステップと、
    前記不揮発性メモリが受けたプログラム/消去サイクルの数により前記不揮発性メモリの古さの尺度を提供するステップと、
    前記不揮発性メモリが所定の古さに達した時に初めてエラー管理を開始するステップと、
    を含む方法。
  2. 請求項1記載の方法において、
    前記不揮発性メモリはメモリセルのブロックを成すように編成され、前記メモリセルの各ブロックは一緒に消去可能であり、
    前記不揮発性メモリの古さの尺度を提供するステップは、ブロックのうちの1つが受けたプログラム/消去サイクルの数を追跡することによる方法。
  3. 請求項2記載の方法において、
    前記不揮発性メモリの所定の古さは、ブロックのうちの1つが受けたプログラム/消去サイクルの所定の数により与えられる方法。
  4. 請求項1記載の方法において、
    前記メモリを第1および第2の部分を成すように構成するステップであって、第1の部分が第2の部分と比べてより低いエラー率で動作するけれども記憶密度がより低いメモリセルを有するステップと、
    入力データを第1の部分にプログラムするステップと、
    その後に、第2の部分の中に1つのコピーを作るためにデータをコピーするステップと、をさらに含み、
    エラー管理には、
    (a)エラーがあるかないかコピーを検査することと、
    (b)エラーが所定数のエラービットより少ないか否かによりコピーを有効なデータまたは無効なデータとして特定することと、
    (c)コピーが無効であると特定されたならば、第2の部分の中の他の位置にコピーすること、および(a)〜(c)を所定回数まで反復することと、がさらに含まれる方法。
  5. 請求項4記載の方法において、
    前記エラーがあるかないかコピーを検査することは、コピーと関連付けられたECCによる方法。
  6. 請求項4記載の方法において、
    前記メモリは複数の消去ブロックを成すようにさらに編成され、各ブロック内のメモリセルは一緒に消去可能であり、
    前記コピーするステップおよび前記検査することは、1ブロックずつ実行される方法。
  7. 請求項4記載の方法において、
    第1の部分は、1ビットのデータをそれぞれ記憶するメモリセルを有し、
    第2の部分は、nビットのデータをそれぞれ記憶するメモリセルを有し、n>1である
    方法。
  8. 請求項4記載の方法において、
    エラー管理には、第2の部分の中のコピーに対応する第1の部分の中のデータを、コピーが無効であると特定された時に、有効であると特定することがさらに含まれる方法。
  9. 請求項4記載の方法において、
    エラー管理には、第2の部分の中のコピーに対応する第1の部分の中のデータを、コピーが有効であると特定された時に、無効であると特定することがさらに含まれる方法。
  10. 請求項1〜9のいずれか記載の方法において、
    前記不揮発性メモリは、フラッシュEEPROMである方法。
  11. 不揮発性メモリであって、
    前記不揮発性メモリが使用を通じて古くなる時に生じがちなエラーを訂正するためのエラー管理と、
    前記不揮発性メモリが受けたプログラム/消去サイクルの数による前記不揮発性メモリの古さの尺度と、を備え、
    エラー管理は、前記不揮発性メモリが所定の古さに達した後に初めて始まる不揮発性メモリ。
  12. 請求項11記載の不揮発性メモリにおいて、
    前記不揮発性メモリはメモリセルのブロックを成すように編成され、前記メモリセルの各ブロックは一緒に消去可能であり、
    前記不揮発性メモリの古さの尺度は、ブロックのうちの1つが受けたプログラム/消去サイクルの数により与えられる不揮発性メモリ。
  13. 請求項12記載の不揮発性メモリにおいて、
    前記不揮発性メモリの所定の古さは、ブロックのうちの1つが受けたプログラム/消去サイクルの所定の数により与えられる不揮発性メモリ。
  14. 請求項11記載の不揮発性メモリにおいて、
    メモリコントローラをさらに備え、
    前記メモリは第1および第2の部分を成すように構成され、第1の部分が第2の部分と比べてより低いエラー率で動作するけれども記憶密度がより低いメモリセルを有し、
    前記メモリコントローラは、
    (a)入力データを第1の部分にプログラムすることと、
    (b)その後に、第2の部分の中に1つのコピーを作るためにデータをコピーすることと、
    (c)エラーがあるかないかコピーを検査することと、
    (d)エラーが所定数のエラービットより少ないか否かによりコピーを有効なデータまたは無効なデータとして特定することと、
    (e)コピーが無効であると特定されたならば、第2の部分の中の他の位置にコピーすること、および(c)〜(e)を所定回数まで反復することと、が含まれる動作を有するエラー管理と協同する不揮発性メモリ。
  15. 請求項14記載の不揮発性メモリにおいて、
    前記メモリコントローラがエラーがあるかないかコピーを検査することは、コピーと関連付けられたECCによる不揮発性メモリ。
  16. 請求項14記載の不揮発性メモリにおいて、
    前記メモリは複数の消去ブロックを成すようにさらに編成され、各ブロック内のメモリセルは一緒に消去可能であり、
    前記メモリコントローラがコピーすることおよび検査することは、1ブロックずつ実行される不揮発性メモリ。
  17. 請求項14記載の不揮発性メモリにおいて、
    第1の部分は、1ビットのデータをそれぞれ記憶するメモリセルを有し、
    第2の部分は、nビットのデータをそれぞれ記憶するメモリセルを有し、n>1である
    不揮発性メモリ。
  18. 請求項14記載の不揮発性メモリにおいて、
    エラー管理には、第2の部分の中のコピーに対応する第1の部分の中のデータを、コピーが無効であると特定された時に、有効であると特定することがさらに含まれる不揮発性メモリ。
  19. 請求項14記載の不揮発性メモリにおいて、
    エラー管理には、第2の部分の中のコピーに対応する第1の部分の中のデータを、コピーが有効であると特定された時に、無効であると特定することがさらに含まれる不揮発性メモリ。
  20. 請求項11〜19のいずれか記載の不揮発性メモリにおいて、
    前記不揮発性メモリは、フラッシュEEPROMである不揮発性メモリ。
JP2012536906A 2009-10-28 2010-10-22 エラーを管理するための書き込み後読み出しおよび適応再書き込みを伴う不揮発性メモリおよび方法 Active JP5596791B2 (ja)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US12/607,522 US8214700B2 (en) 2009-10-28 2009-10-28 Non-volatile memory and method with post-write read and adaptive re-write to manage errors
US12/607,522 2009-10-28
US12/642,728 US8423866B2 (en) 2009-10-28 2009-12-18 Non-volatile memory and method with post-write read and adaptive re-write to manage errors
US12/642,728 2009-12-18
PCT/US2010/053805 WO2011056482A1 (en) 2009-10-28 2010-10-22 Non-volatile memory and method with post-write read and adaptive re-write to manage errors

Publications (2)

Publication Number Publication Date
JP2013509668A true JP2013509668A (ja) 2013-03-14
JP5596791B2 JP5596791B2 (ja) 2014-09-24

Family

ID=43428644

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012536906A Active JP5596791B2 (ja) 2009-10-28 2010-10-22 エラーを管理するための書き込み後読み出しおよび適応再書き込みを伴う不揮発性メモリおよび方法

Country Status (7)

Country Link
US (1) US8423866B2 (ja)
EP (1) EP2494553B1 (ja)
JP (1) JP5596791B2 (ja)
KR (1) KR20120087948A (ja)
CN (1) CN102667945B (ja)
TW (1) TW201142862A (ja)
WO (1) WO2011056482A1 (ja)

Families Citing this family (176)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2009095902A2 (en) 2008-01-31 2009-08-06 Densbits Technologies Ltd. Systems and methods for handling immediate data errors in flash memory
US8694715B2 (en) 2007-10-22 2014-04-08 Densbits Technologies Ltd. Methods for adaptively programming flash memory devices and flash memory systems incorporating same
WO2009072102A2 (en) 2007-12-05 2009-06-11 Densbits Technologies Ltd. System and methods employing mock thresholds to generate actual reading thresholds in flash memory devices
WO2009074978A2 (en) 2007-12-12 2009-06-18 Densbits Technologies Ltd. Systems and methods for error correction and decoding on multi-level physical media
US8775717B2 (en) 2007-12-27 2014-07-08 Sandisk Enterprise Ip Llc Storage controller for flash memory including a crossbar switch connecting a plurality of processors with a plurality of internal memories
US8972472B2 (en) 2008-03-25 2015-03-03 Densbits Technologies Ltd. Apparatus and methods for hardware-efficient unbiased rounding
US8891298B2 (en) * 2011-07-19 2014-11-18 Greenthread, Llc Lifetime mixed level non-volatile memory system
US8271855B2 (en) * 2008-12-22 2012-09-18 Unity Semiconductor Corporation Memory scrubbing in third dimension memory
US8458574B2 (en) 2009-04-06 2013-06-04 Densbits Technologies Ltd. Compact chien-search based decoding apparatus and method
US8819385B2 (en) 2009-04-06 2014-08-26 Densbits Technologies Ltd. Device and method for managing a flash memory
US8027195B2 (en) * 2009-06-05 2011-09-27 SanDisk Technologies, Inc. Folding data stored in binary format into multi-state format within non-volatile memory devices
US8102705B2 (en) 2009-06-05 2012-01-24 Sandisk Technologies Inc. Structure and method for shuffling data within non-volatile memory devices
US20110002169A1 (en) 2009-07-06 2011-01-06 Yan Li Bad Column Management with Bit Information in Non-Volatile Memory Systems
US9330767B1 (en) 2009-08-26 2016-05-03 Avago Technologies General Ip (Singapore) Pte. Ltd. Flash memory module and method for programming a page of flash memory cells
US8995197B1 (en) 2009-08-26 2015-03-31 Densbits Technologies Ltd. System and methods for dynamic erase and program control for flash memory device memories
US8730729B2 (en) 2009-10-15 2014-05-20 Densbits Technologies Ltd. Systems and methods for averaging error rates in non-volatile devices and storage systems
US8724387B2 (en) 2009-10-22 2014-05-13 Densbits Technologies Ltd. Method, system, and computer readable medium for reading and programming flash memory cells using multiple bias voltages
US8214700B2 (en) 2009-10-28 2012-07-03 Sandisk Technologies Inc. Non-volatile memory and method with post-write read and adaptive re-write to manage errors
US8634240B2 (en) * 2009-10-28 2014-01-21 SanDisk Technologies, Inc. Non-volatile memory and method with accelerated post-write read to manage errors
US8144512B2 (en) * 2009-12-18 2012-03-27 Sandisk Technologies Inc. Data transfer flows for on-chip folding
US8054684B2 (en) 2009-12-18 2011-11-08 Sandisk Technologies Inc. Non-volatile memory and method with atomic program sequence and write abort detection
US8725935B2 (en) 2009-12-18 2014-05-13 Sandisk Technologies Inc. Balanced performance for on-chip folding of non-volatile memories
US20110153912A1 (en) * 2009-12-18 2011-06-23 Sergey Anatolievich Gorobets Maintaining Updates of Multi-Level Non-Volatile Memory in Binary Non-Volatile Memory
US8468294B2 (en) * 2009-12-18 2013-06-18 Sandisk Technologies Inc. Non-volatile memory with multi-gear control using on-chip folding of data
US9037777B2 (en) * 2009-12-22 2015-05-19 Densbits Technologies Ltd. Device, system, and method for reducing program/read disturb in flash arrays
US8516274B2 (en) * 2010-04-06 2013-08-20 Densbits Technologies Ltd. Method, system and medium for analog encryption in a flash memory
US8745317B2 (en) 2010-04-07 2014-06-03 Densbits Technologies Ltd. System and method for storing information in a multi-level cell memory
US8621321B2 (en) 2010-07-01 2013-12-31 Densbits Technologies Ltd. System and method for multi-dimensional encoding and decoding
US8305807B2 (en) 2010-07-09 2012-11-06 Sandisk Technologies Inc. Detection of broken word-lines in memory arrays
US8432732B2 (en) 2010-07-09 2013-04-30 Sandisk Technologies Inc. Detection of word-line leakage in memory arrays
US8514630B2 (en) 2010-07-09 2013-08-20 Sandisk Technologies Inc. Detection of word-line leakage in memory arrays: current based approach
US8964464B2 (en) 2010-08-24 2015-02-24 Densbits Technologies Ltd. System and method for accelerated sampling
US9063878B2 (en) * 2010-11-03 2015-06-23 Densbits Technologies Ltd. Method, system and computer readable medium for copy back
US8850100B2 (en) 2010-12-07 2014-09-30 Densbits Technologies Ltd. Interleaving codeword portions between multiple planes and/or dies of a flash memory device
US9342446B2 (en) 2011-03-29 2016-05-17 SanDisk Technologies, Inc. Non-volatile memory system allowing reverse eviction of data updates to non-volatile binary cache
US8990665B1 (en) 2011-04-06 2015-03-24 Densbits Technologies Ltd. System, method and computer program product for joint search of a read threshold and soft decoding
US8713380B2 (en) 2011-05-03 2014-04-29 SanDisk Technologies, Inc. Non-volatile memory and method having efficient on-chip block-copying with controlled error rate
US8379454B2 (en) 2011-05-05 2013-02-19 Sandisk Technologies Inc. Detection of broken word-lines in memory arrays
US9110785B1 (en) 2011-05-12 2015-08-18 Densbits Technologies Ltd. Ordered merge of data sectors that belong to memory space portions
US9372792B1 (en) 2011-05-12 2016-06-21 Avago Technologies General Ip (Singapore) Pte. Ltd. Advanced management of a non-volatile memory
US8996790B1 (en) 2011-05-12 2015-03-31 Densbits Technologies Ltd. System and method for flash memory management
US9501392B1 (en) 2011-05-12 2016-11-22 Avago Technologies General Ip (Singapore) Pte. Ltd. Management of a non-volatile memory module
US9195592B1 (en) 2011-05-12 2015-11-24 Densbits Technologies Ltd. Advanced management of a non-volatile memory
US9396106B2 (en) 2011-05-12 2016-07-19 Avago Technologies General Ip (Singapore) Pte. Ltd. Advanced management of a non-volatile memory
US20130031431A1 (en) * 2011-07-28 2013-01-31 Eran Sharon Post-Write Read in Non-Volatile Memories Using Comparison of Data as Written in Binary and Multi-State Formats
US8726104B2 (en) 2011-07-28 2014-05-13 Sandisk Technologies Inc. Non-volatile memory and method with accelerated post-write read using combined verification of multiple pages
US8775901B2 (en) 2011-07-28 2014-07-08 SanDisk Technologies, Inc. Data recovery for defective word lines during programming of non-volatile memory arrays
US8750042B2 (en) 2011-07-28 2014-06-10 Sandisk Technologies Inc. Combined simultaneous sensing of multiple wordlines in a post-write read (PWR) and detection of NAND failures
KR101893145B1 (ko) 2011-12-06 2018-10-05 삼성전자주식회사 메모리 시스템들 및 그것들의 블록 복사 방법들
US8645770B2 (en) 2012-01-18 2014-02-04 Apple Inc. Systems and methods for proactively refreshing nonvolatile memory
US8996788B2 (en) 2012-02-09 2015-03-31 Densbits Technologies Ltd. Configurable flash interface
US8947941B2 (en) 2012-02-09 2015-02-03 Densbits Technologies Ltd. State responsive operations relating to flash memory cells
US8862967B2 (en) 2012-03-15 2014-10-14 Sandisk Technologies Inc. Statistical distribution based variable-bit error correction coding
US8842473B2 (en) 2012-03-15 2014-09-23 Sandisk Technologies Inc. Techniques for accessing column selecting shift register with skipped entries in non-volatile memories
US8838883B2 (en) 2012-04-13 2014-09-16 Sandisk Technologies Inc. System and method of adjusting a programming step size for a block of a memory
TWI463313B (zh) * 2012-04-17 2014-12-01 Phison Electronics Corp 記憶體管理方法、記憶體控制器與記憶體儲存裝置
US8996793B1 (en) 2012-04-24 2015-03-31 Densbits Technologies Ltd. System, method and computer readable medium for generating soft information
US8681548B2 (en) 2012-05-03 2014-03-25 Sandisk Technologies Inc. Column redundancy circuitry for non-volatile memory
US8838937B1 (en) 2012-05-23 2014-09-16 Densbits Technologies Ltd. Methods, systems and computer readable medium for writing and reading data
US8879325B1 (en) 2012-05-30 2014-11-04 Densbits Technologies Ltd. System, method and computer program product for processing read threshold information and for reading a flash memory module
US8566671B1 (en) 2012-06-29 2013-10-22 Sandisk Technologies Inc. Configurable accelerated post-write read to manage errors
US9699263B1 (en) 2012-08-17 2017-07-04 Sandisk Technologies Llc. Automatic read and write acceleration of data accessed by virtual machines
US9921954B1 (en) 2012-08-27 2018-03-20 Avago Technologies General Ip (Singapore) Pte. Ltd. Method and system for split flash memory management between host and storage controller
TWI483111B (zh) * 2012-09-20 2015-05-01 Phison Electronics Corp 資料儲存方法、記憶體控制器與記憶體儲存裝置
US9164526B2 (en) 2012-09-27 2015-10-20 Sandisk Technologies Inc. Sigma delta over-sampling charge pump analog-to-digital converter
US9810723B2 (en) 2012-09-27 2017-11-07 Sandisk Technologies Llc Charge pump based over-sampling ADC for current detection
US9076506B2 (en) 2012-09-28 2015-07-07 Sandisk Technologies Inc. Variable rate parallel to serial shift register
US8897080B2 (en) 2012-09-28 2014-11-25 Sandisk Technologies Inc. Variable rate serial to parallel shift register
US9490035B2 (en) 2012-09-28 2016-11-08 SanDisk Technologies, Inc. Centralized variable rate serializer and deserializer for bad column management
KR102025263B1 (ko) 2012-10-05 2019-09-25 삼성전자주식회사 메모리 시스템 및 그것의 읽기 교정 방법
US9368225B1 (en) 2012-11-21 2016-06-14 Avago Technologies General Ip (Singapore) Pte. Ltd. Determining read thresholds based upon read error direction statistics
CN103839578B (zh) * 2012-11-27 2017-02-08 广东华晟数据固态存储有限公司 一种提高基于nand的固态存储器数据保持时间的方法
US9519531B2 (en) * 2012-11-27 2016-12-13 Samsung Electronics Co., Ltd. Memory devices and memory systems having the same
US9098428B2 (en) 2012-12-11 2015-08-04 Sandisk Technologies Inc. Data recovery on cluster failures and ECC enhancements with code word interleaving
CN103049713B (zh) * 2012-12-20 2016-12-07 华为技术有限公司 对存储设备中数据进行巡检的方法、设备及系统
US9501398B2 (en) 2012-12-26 2016-11-22 Sandisk Technologies Llc Persistent storage device with NVRAM for staging writes
US9239751B1 (en) 2012-12-27 2016-01-19 Sandisk Enterprise Ip Llc Compressing data from multiple reads for error control management in memory systems
US9612948B2 (en) 2012-12-27 2017-04-04 Sandisk Technologies Llc Reads and writes between a contiguous data block and noncontiguous sets of logical address blocks in a persistent storage device
US9454420B1 (en) 2012-12-31 2016-09-27 Sandisk Technologies Llc Method and system of reading threshold voltage equalization
US9069659B1 (en) 2013-01-03 2015-06-30 Densbits Technologies Ltd. Read threshold determination using reference read threshold
US9129689B2 (en) 2013-03-13 2015-09-08 Sandisk Technologies Inc. Tracking erase pulses for non-volatile memory
US9870830B1 (en) 2013-03-14 2018-01-16 Sandisk Technologies Llc Optimal multilevel sensing for reading data from a storage medium
US9236886B1 (en) 2013-03-15 2016-01-12 Sandisk Enterprise Ip Llc Universal and reconfigurable QC-LDPC encoder
US9367246B2 (en) 2013-03-15 2016-06-14 Sandisk Technologies Inc. Performance optimization of data transfer for soft information generation
US9244763B1 (en) * 2013-03-15 2016-01-26 Sandisk Enterprise Ip Llc System and method for updating a reading threshold voltage based on symbol transition information
US9159437B2 (en) 2013-06-11 2015-10-13 Sandisk Enterprise IP LLC. Device and method for resolving an LM flag issue
US9136876B1 (en) 2013-06-13 2015-09-15 Densbits Technologies Ltd. Size limited multi-dimensional decoding
US20150006784A1 (en) * 2013-06-27 2015-01-01 Sandisk Technologies Inc. Efficient Post Write Read in Three Dimensional Nonvolatile Memory
US9063671B2 (en) 2013-07-02 2015-06-23 Sandisk Technologies Inc. Write operations with full sequence programming for defect management in nonvolatile memory
US9218242B2 (en) 2013-07-02 2015-12-22 Sandisk Technologies Inc. Write operations for defect management in nonvolatile memory
US9384126B1 (en) 2013-07-25 2016-07-05 Sandisk Technologies Inc. Methods and systems to avoid false negative results in bloom filters implemented in non-volatile data storage systems
US9524235B1 (en) 2013-07-25 2016-12-20 Sandisk Technologies Llc Local hash value generation in non-volatile data storage systems
US9235509B1 (en) 2013-08-26 2016-01-12 Sandisk Enterprise Ip Llc Write amplification reduction by delaying read access to data written during garbage collection
US9639463B1 (en) 2013-08-26 2017-05-02 Sandisk Technologies Llc Heuristic aware garbage collection scheme in storage systems
US9235470B2 (en) * 2013-10-03 2016-01-12 SanDisk Technologies, Inc. Adaptive EPWR (enhanced post write read) scheduling
US9413491B1 (en) 2013-10-08 2016-08-09 Avago Technologies General Ip (Singapore) Pte. Ltd. System and method for multiple dimension decoding and encoding a message
US9786388B1 (en) 2013-10-09 2017-10-10 Avago Technologies General Ip (Singapore) Pte. Ltd. Detecting and managing bad columns
US9397706B1 (en) 2013-10-09 2016-07-19 Avago Technologies General Ip (Singapore) Pte. Ltd. System and method for irregular multiple dimension decoding and encoding
US9348694B1 (en) 2013-10-09 2016-05-24 Avago Technologies General Ip (Singapore) Pte. Ltd. Detecting and managing bad columns
US9442662B2 (en) 2013-10-18 2016-09-13 Sandisk Technologies Llc Device and method for managing die groups
US9298608B2 (en) 2013-10-18 2016-03-29 Sandisk Enterprise Ip Llc Biasing for wear leveling in storage systems
US9436831B2 (en) 2013-10-30 2016-09-06 Sandisk Technologies Llc Secure erase in a memory device
US9263156B2 (en) 2013-11-07 2016-02-16 Sandisk Enterprise Ip Llc System and method for adjusting trip points within a storage device
US9501400B2 (en) 2013-11-13 2016-11-22 Sandisk Technologies Llc Identification and operation of sub-prime blocks in nonvolatile memory
US9244785B2 (en) 2013-11-13 2016-01-26 Sandisk Enterprise Ip Llc Simulated power failure and data hardening
US9165670B2 (en) 2013-11-14 2015-10-20 Sandisk Technologies Inc. Data retention detection techniques for a data storage device
US8982617B1 (en) 2013-11-14 2015-03-17 Sandisk Technologies Inc. Block closure techniques for a data storage device
US9229806B2 (en) 2013-11-14 2016-01-05 Sandisk Technologies Inc. Block closure techniques for a data storage device
US9703816B2 (en) 2013-11-19 2017-07-11 Sandisk Technologies Llc Method and system for forward reference logging in a persistent datastore
US9043537B1 (en) 2013-11-21 2015-05-26 Sandisk Technologies Inc. Update block programming order
US9520197B2 (en) 2013-11-22 2016-12-13 Sandisk Technologies Llc Adaptive erase of a storage device
US9520162B2 (en) 2013-11-27 2016-12-13 Sandisk Technologies Llc DIMM device controller supervisor
US9582058B2 (en) 2013-11-29 2017-02-28 Sandisk Technologies Llc Power inrush management of storage devices
US9213601B2 (en) 2013-12-03 2015-12-15 Sandisk Technologies Inc. Adaptive data re-compaction after post-write read verification operations
US9235245B2 (en) 2013-12-04 2016-01-12 Sandisk Enterprise Ip Llc Startup performance and power isolation
US9058881B1 (en) 2013-12-05 2015-06-16 Sandisk Technologies Inc. Systems and methods for partial page programming of multi level cells
US9244631B2 (en) 2013-12-06 2016-01-26 Sandisk Technologies Inc. Lower page only host burst writes
US9536612B1 (en) 2014-01-23 2017-01-03 Avago Technologies General Ip (Singapore) Pte. Ltd Digital signaling processing for three dimensional flash memory arrays
US10120792B1 (en) 2014-01-29 2018-11-06 Avago Technologies General Ip (Singapore) Pte. Ltd. Programming an embedded flash storage device
US9703636B2 (en) 2014-03-01 2017-07-11 Sandisk Technologies Llc Firmware reversion trigger and control
US9390814B2 (en) 2014-03-19 2016-07-12 Sandisk Technologies Llc Fault detection and prediction for data storage elements
US9454448B2 (en) 2014-03-19 2016-09-27 Sandisk Technologies Llc Fault testing in storage devices
US9448876B2 (en) 2014-03-19 2016-09-20 Sandisk Technologies Llc Fault detection and prediction in storage devices
US9626399B2 (en) 2014-03-31 2017-04-18 Sandisk Technologies Llc Conditional updates for reducing frequency of data modification operations
US9390021B2 (en) 2014-03-31 2016-07-12 Sandisk Technologies Llc Efficient cache utilization in a tiered data structure
US9626400B2 (en) 2014-03-31 2017-04-18 Sandisk Technologies Llc Compaction of information in tiered data structure
US9697267B2 (en) 2014-04-03 2017-07-04 Sandisk Technologies Llc Methods and systems for performing efficient snapshots in tiered data structures
US8902652B1 (en) 2014-05-13 2014-12-02 Sandisk Technologies Inc. Systems and methods for lower page writes
US8886877B1 (en) 2014-05-15 2014-11-11 Sandisk Technologies Inc. In-situ block folding for nonvolatile memory
US9542262B1 (en) 2014-05-29 2017-01-10 Avago Technologies General Ip (Singapore) Pte. Ltd. Error correction
US10114557B2 (en) 2014-05-30 2018-10-30 Sandisk Technologies Llc Identification of hot regions to enhance performance and endurance of a non-volatile storage device
US10656840B2 (en) 2014-05-30 2020-05-19 Sandisk Technologies Llc Real-time I/O pattern recognition to enhance performance and endurance of a storage device
US9703491B2 (en) 2014-05-30 2017-07-11 Sandisk Technologies Llc Using history of unaligned writes to cache data and avoid read-modify-writes in a non-volatile storage device
US10162748B2 (en) 2014-05-30 2018-12-25 Sandisk Technologies Llc Prioritizing garbage collection and block allocation based on I/O history for logical address regions
US10656842B2 (en) 2014-05-30 2020-05-19 Sandisk Technologies Llc Using history of I/O sizes and I/O sequences to trigger coalesced writes in a non-volatile storage device
US10372613B2 (en) 2014-05-30 2019-08-06 Sandisk Technologies Llc Using sub-region I/O history to cache repeatedly accessed sub-regions in a non-volatile storage device
US10146448B2 (en) 2014-05-30 2018-12-04 Sandisk Technologies Llc Using history of I/O sequences to trigger cached read ahead in a non-volatile storage device
US9015439B1 (en) * 2014-05-30 2015-04-21 SanDisk Technologies, Inc. Event lock storage device
US9652381B2 (en) 2014-06-19 2017-05-16 Sandisk Technologies Llc Sub-block garbage collection
US9892033B1 (en) 2014-06-24 2018-02-13 Avago Technologies General Ip (Singapore) Pte. Ltd. Management of memory units
US9972393B1 (en) 2014-07-03 2018-05-15 Avago Technologies General Ip (Singapore) Pte. Ltd. Accelerating programming of a flash memory module
US9584159B1 (en) 2014-07-03 2017-02-28 Avago Technologies General Ip (Singapore) Pte. Ltd. Interleaved encoding
US9449702B1 (en) 2014-07-08 2016-09-20 Avago Technologies General Ip (Singapore) Pte. Ltd. Power management
US9804922B2 (en) 2014-07-21 2017-10-31 Sandisk Technologies Llc Partial bad block detection and re-use using EPWR for block based architectures
US9396080B2 (en) * 2014-08-07 2016-07-19 Sandisk Technologies Llc Storage module and method for analysis and disposition of dynamically tracked read error events
US9443601B2 (en) 2014-09-08 2016-09-13 Sandisk Technologies Llc Holdup capacitor energy harvesting
US9594615B2 (en) * 2014-09-30 2017-03-14 Apple Inc. Estimating flash quality using selective error emphasis
US9472270B2 (en) 2014-10-24 2016-10-18 Sandisk Technologies Llc Nonvolatile storage reflow detection
US9437321B2 (en) 2014-10-28 2016-09-06 Sandisk Technologies Llc Error detection method
US9934872B2 (en) 2014-10-30 2018-04-03 Sandisk Technologies Llc Erase stress and delta erase loop count methods for various fail modes in non-volatile memory
US9524211B1 (en) 2014-11-18 2016-12-20 Avago Technologies General Ip (Singapore) Pte. Ltd. Codeword management
US20160162215A1 (en) * 2014-12-08 2016-06-09 Sandisk Technologies Inc. Meta plane operations for a storage device
US10497409B2 (en) 2014-12-17 2019-12-03 International Business Machines Corporation Implementing DRAM row hammer avoidance
US9224502B1 (en) 2015-01-14 2015-12-29 Sandisk Technologies Inc. Techniques for detection and treating memory hole to local interconnect marginality defects
US10305515B1 (en) 2015-02-02 2019-05-28 Avago Technologies International Sales Pte. Limited System and method for encoding using multiple linear feedback shift registers
KR102251814B1 (ko) 2015-02-06 2021-05-13 삼성전자주식회사 메모리 장치, 그것의 동작 및 제어 방법
US10032524B2 (en) 2015-02-09 2018-07-24 Sandisk Technologies Llc Techniques for determining local interconnect defects
US10055267B2 (en) 2015-03-04 2018-08-21 Sandisk Technologies Llc Block management scheme to handle cluster failures in non-volatile memory
US9773563B2 (en) 2015-03-27 2017-09-26 Toshiba Memory Corporation Memory controller, memory control method, and coefficient decision method
US9564219B2 (en) 2015-04-08 2017-02-07 Sandisk Technologies Llc Current based detection and recording of memory hole-interconnect spacing defects
US9269446B1 (en) 2015-04-08 2016-02-23 Sandisk Technologies Inc. Methods to improve programming of slow cells
US10628255B1 (en) 2015-06-11 2020-04-21 Avago Technologies International Sales Pte. Limited Multi-dimensional decoding
US9851921B1 (en) 2015-07-05 2017-12-26 Avago Technologies General Ip (Singapore) Pte. Ltd. Flash memory chip processing
US9858009B2 (en) 2015-10-26 2018-01-02 Sandisk Technologies Llc Data folding in 3D nonvolatile memory
US9548105B1 (en) 2015-10-29 2017-01-17 Sandisk Technologies Llc Enhanced post-write read for 3-D memory
US9570160B1 (en) 2015-10-29 2017-02-14 Sandisk Technologies Llc Non-volatile storage system with defect detetction and early programming termination
US9841918B2 (en) 2015-12-02 2017-12-12 Samsung Electronics Co., Ltd. Flash memory device including deduplication, and related methods
KR20170086840A (ko) 2016-01-19 2017-07-27 에스케이하이닉스 주식회사 데이터 저장 장치 및 그것의 동작 방법
US9954558B1 (en) 2016-03-03 2018-04-24 Avago Technologies General Ip (Singapore) Pte. Ltd. Fast decoding of data stored in a flash memory
US9698676B1 (en) 2016-03-11 2017-07-04 Sandisk Technologies Llc Charge pump based over-sampling with uniform step size for current detection
US9711227B1 (en) 2016-04-28 2017-07-18 Sandisk Technologies Llc Non-volatile memory with in field failure prediction using leakage detection
TWI639946B (zh) * 2017-01-09 2018-11-01 慧榮科技股份有限公司 資料儲存裝置及其資料維護方法
US11069425B2 (en) * 2018-08-21 2021-07-20 Intel Corporation Multi-level memory repurposing technology to process a request to modify a configuration of a persistent storage media
US10923178B1 (en) 2020-02-27 2021-02-16 Western Digital Technologies, Inc. Data storage with improved write performance for preferred user data
JP2021140837A (ja) * 2020-03-02 2021-09-16 キオクシア株式会社 半導体記憶装置
US11543987B2 (en) * 2020-06-04 2023-01-03 Western Digital Technologies, Inc. Storage system and method for retention-based zone determination

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005128817A (ja) * 2003-10-24 2005-05-19 Hitachi Ltd 情報記憶装置及び情報処理システム
JP2006134482A (ja) * 2004-11-05 2006-05-25 Toshiba Corp 不揮発性メモリシステム
JP2007242163A (ja) * 2006-03-09 2007-09-20 Toshiba Corp 半導体集積回路装置のデータ記録方式

Family Cites Families (56)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US622762A (en) * 1899-04-11 Steam-engine
US5095344A (en) 1988-06-08 1992-03-10 Eliyahou Harari Highly compact eprom and flash eeprom devices
US5070032A (en) 1989-03-15 1991-12-03 Sundisk Corporation Method of making dense flash eeprom semiconductor memory structures
US5343063A (en) 1990-12-18 1994-08-30 Sundisk Corporation Dense vertical programmable read only memory cell structure and processes for making them
US5602789A (en) 1991-03-12 1997-02-11 Kabushiki Kaisha Toshiba Electrically erasable and programmable non-volatile and multi-level memory systemn with write-verify controller
KR960002006B1 (ko) 1991-03-12 1996-02-09 가부시끼가이샤 도시바 2개의 기준 레벨을 사용하는 기록 검증 제어기를 갖는 전기적으로 소거 가능하고 프로그램 가능한 불휘발성 메모리 장치
US6222762B1 (en) 1992-01-14 2001-04-24 Sandisk Corporation Multi-state memory
US5313421A (en) 1992-01-14 1994-05-17 Sundisk Corporation EEPROM with split gate source side injection
US5315541A (en) 1992-07-24 1994-05-24 Sundisk Corporation Segmented column memory array
KR0169267B1 (ko) 1993-09-21 1999-02-01 사토 후미오 불휘발성 반도체 기억장치
US5661053A (en) 1994-05-25 1997-08-26 Sandisk Corporation Method of making dense flash EEPROM cell array and peripheral supporting circuits formed in deposited field oxide with the use of spacers
US5671388A (en) 1995-05-03 1997-09-23 Intel Corporation Method and apparatus for performing write operations in multi-level cell storage device
EP0788113B1 (en) 1996-01-31 2005-08-24 STMicroelectronics S.r.l. Multilevel memory circuits and corresponding reading and writing methods
US5903495A (en) 1996-03-18 1999-05-11 Kabushiki Kaisha Toshiba Semiconductor device and memory system
JP3200012B2 (ja) 1996-04-19 2001-08-20 株式会社東芝 記憶システム
US5768192A (en) 1996-07-23 1998-06-16 Saifun Semiconductors, Ltd. Non-volatile semiconductor memory cell utilizing asymmetrical charge trapping
KR100323554B1 (ko) 1997-05-14 2002-03-08 니시무로 타이죠 불휘발성반도체메모리장치
US5930167A (en) 1997-07-30 1999-07-27 Sandisk Corporation Multi-state non-volatile flash memory capable of being its own two state write cache
US6768165B1 (en) 1997-08-01 2004-07-27 Saifun Semiconductors Ltd. Two bit non-volatile electrically erasable and programmable semiconductor memory cell utilizing asymmetrical charge trapping
US5867429A (en) 1997-11-19 1999-02-02 Sandisk Corporation High density non-volatile flash memory without adverse effects of electric field coupling between adjacent floating gates
US6141388A (en) 1998-03-11 2000-10-31 Ericsson Inc. Received signal quality determination method and systems for convolutionally encoded communication channels
US7333364B2 (en) 2000-01-06 2008-02-19 Super Talent Electronics, Inc. Cell-downgrading and reference-voltage adjustment for a multi-bit-cell flash memory
JP4323707B2 (ja) 2000-10-25 2009-09-02 富士通マイクロエレクトロニクス株式会社 フラッシュメモリの欠陥管理方法
US6349056B1 (en) 2000-12-28 2002-02-19 Sandisk Corporation Method and structure for efficient data verification operation for non-volatile memories
US6456528B1 (en) 2001-09-17 2002-09-24 Sandisk Corporation Selective operation of a multi-state non-volatile memory system in a binary mode
US7554842B2 (en) 2001-09-17 2009-06-30 Sandisk Corporation Multi-purpose non-volatile memory card
US6717847B2 (en) 2001-09-17 2004-04-06 Sandisk Corporation Selective operation of a multi-state non-volatile memory system in a binary mode
JP4063615B2 (ja) 2002-08-30 2008-03-19 Necエレクトロニクス株式会社 不揮発性メモリおよびその書き込み処理方法
US7196931B2 (en) 2002-09-24 2007-03-27 Sandisk Corporation Non-volatile memory and method with reduced source line bias errors
US6917542B2 (en) 2003-07-29 2005-07-12 Sandisk Corporation Detecting over programmed memory
US6914823B2 (en) 2003-07-29 2005-07-05 Sandisk Corporation Detecting over programmed memory after further programming
KR100719380B1 (ko) 2006-03-31 2007-05-18 삼성전자주식회사 향상된 신뢰성 특성을 갖는 다치 플래시 메모리 장치 및그것을 포함한 메모리 시스템
US7009889B2 (en) 2004-05-28 2006-03-07 Sandisk Corporation Comprehensive erase verification for non-volatile memory
US7207925B2 (en) * 2005-07-20 2007-04-24 True Fitness Technology, Inc. Compact elliptical exercise machine with adjustable stride length
US7428180B2 (en) 2006-01-25 2008-09-23 Samsung Electronics Co., Ltd. Semiconductor memory devices and methods of testing for failed bits of semiconductor memory devices
JP2007305210A (ja) * 2006-05-10 2007-11-22 Toshiba Corp 半導体記憶装置
US7701797B2 (en) 2006-05-15 2010-04-20 Apple Inc. Two levels of voltage regulation supplied for logic and data programming voltage of a memory device
JP2008077810A (ja) 2006-09-25 2008-04-03 Toshiba Corp 不揮発性半導体記憶装置
EP2075706B1 (en) * 2006-10-20 2010-12-15 Fujitsu Limited Memory device and refresh adjusting method
KR100858241B1 (ko) 2006-10-25 2008-09-12 삼성전자주식회사 하이브리드 플래시 메모리 장치 및 그것의 가용 블록 할당방법
US8122319B2 (en) 2007-01-24 2012-02-21 Charles I. Peddle Page-based failure management for flash memory
JP4510060B2 (ja) 2007-09-14 2010-07-21 株式会社東芝 不揮発性半導体記憶装置の読み出し/書き込み制御方法
WO2009072102A2 (en) 2007-12-05 2009-06-11 Densbits Technologies Ltd. System and methods employing mock thresholds to generate actual reading thresholds in flash memory devices
US9152496B2 (en) * 2007-12-21 2015-10-06 Cypress Semiconductor Corporation High performance flash channel interface
KR101378349B1 (ko) 2008-01-30 2014-03-28 삼성전자주식회사 메모리 장치 및 메모리 데이터 읽기 방법
US8843691B2 (en) 2008-06-25 2014-09-23 Stec, Inc. Prioritized erasure of data blocks in a flash storage device
US7864578B2 (en) 2008-06-30 2011-01-04 Kabushiki Kaisha Toshiba Semiconductor memory repairing a defective bit and semiconductor memory system
US7864587B2 (en) 2008-09-22 2011-01-04 Micron Technology, Inc. Programming a memory device to increase data reliability
US8094500B2 (en) 2009-01-05 2012-01-10 Sandisk Technologies Inc. Non-volatile memory and method with write cache partitioning
US8084777B2 (en) * 2009-03-24 2011-12-27 Bridgelux, Inc. Light emitting diode source with protective barrier
KR101581857B1 (ko) 2009-08-06 2015-12-31 삼성전자주식회사 불휘발성 메모리 시스템 및 그것의 인터리브 유닛 구성 방법
US8464106B2 (en) * 2009-08-24 2013-06-11 Ocz Technology Group, Inc. Computer system with backup function and method therefor
US8214700B2 (en) * 2009-10-28 2012-07-03 Sandisk Technologies Inc. Non-volatile memory and method with post-write read and adaptive re-write to manage errors
US8634240B2 (en) * 2009-10-28 2014-01-21 SanDisk Technologies, Inc. Non-volatile memory and method with accelerated post-write read to manage errors
US8054684B2 (en) 2009-12-18 2011-11-08 Sandisk Technologies Inc. Non-volatile memory and method with atomic program sequence and write abort detection
US8443263B2 (en) 2009-12-30 2013-05-14 Sandisk Technologies Inc. Method and controller for performing a copy-back operation

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005128817A (ja) * 2003-10-24 2005-05-19 Hitachi Ltd 情報記憶装置及び情報処理システム
JP2006134482A (ja) * 2004-11-05 2006-05-25 Toshiba Corp 不揮発性メモリシステム
JP2007242163A (ja) * 2006-03-09 2007-09-20 Toshiba Corp 半導体集積回路装置のデータ記録方式

Also Published As

Publication number Publication date
JP5596791B2 (ja) 2014-09-24
WO2011056482A1 (en) 2011-05-12
US8423866B2 (en) 2013-04-16
EP2494553B1 (en) 2016-07-27
TW201142862A (en) 2011-12-01
EP2494553A1 (en) 2012-09-05
CN102667945B (zh) 2016-01-13
CN102667945A (zh) 2012-09-12
US20110099460A1 (en) 2011-04-28
KR20120087948A (ko) 2012-08-07

Similar Documents

Publication Publication Date Title
JP5596791B2 (ja) エラーを管理するための書き込み後読み出しおよび適応再書き込みを伴う不揮発性メモリおよび方法
JP5443612B2 (ja) エラーを管理するための書き込み後読み出しおよび適応再書き込みを伴う不揮発性メモリおよび方法
US8634240B2 (en) Non-volatile memory and method with accelerated post-write read to manage errors
US8566671B1 (en) Configurable accelerated post-write read to manage errors
US9213601B2 (en) Adaptive data re-compaction after post-write read verification operations
US8726104B2 (en) Non-volatile memory and method with accelerated post-write read using combined verification of multiple pages
US8873288B2 (en) Simultaneous sensing of multiple wordlines and detection of NAND failures
US8713380B2 (en) Non-volatile memory and method having efficient on-chip block-copying with controlled error rate
US20130031431A1 (en) Post-Write Read in Non-Volatile Memories Using Comparison of Data as Written in Binary and Multi-State Formats
JP2013514602A (ja) アトミックプログラムシーケンスおよび書き込みアボート検出を伴う不揮発性メモリおよび方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20131017

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20140228

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20140311

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140603

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: 20140715

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20140807

R150 Certificate of patent or registration of utility model

Ref document number: 5596791

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

S533 Written request for registration of change of name

Free format text: JAPANESE INTERMEDIATE CODE: R313533

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

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