JP5695203B2 - メモリ品質監視ベースの補正方法および装置 - Google Patents

メモリ品質監視ベースの補正方法および装置 Download PDF

Info

Publication number
JP5695203B2
JP5695203B2 JP2013530172A JP2013530172A JP5695203B2 JP 5695203 B2 JP5695203 B2 JP 5695203B2 JP 2013530172 A JP2013530172 A JP 2013530172A JP 2013530172 A JP2013530172 A JP 2013530172A JP 5695203 B2 JP5695203 B2 JP 5695203B2
Authority
JP
Japan
Prior art keywords
data
value
correction
memory
quality
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
JP2013530172A
Other languages
English (en)
Other versions
JP2013539120A (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
Application filed by マイクロン テクノロジー, インク., マイクロン テクノロジー, インク. filed Critical マイクロン テクノロジー, インク.
Publication of JP2013539120A publication Critical patent/JP2013539120A/ja
Application granted granted Critical
Publication of JP5695203B2 publication Critical patent/JP5695203B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/02Detection or location of defective auxiliary circuits, e.g. defective refresh counters
    • G11C29/028Detection or location of defective auxiliary circuits, e.g. defective refresh counters with adaption or trimming of parameters
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1076Parity data used in redundant arrays of independent storages, e.g. in RAID systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1048Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using arrangements adapted for a specific error detection or correction feature
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • 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
    • G11C11/5642Sensing or reading circuits; Data output circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C13/00Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00
    • G11C13/0002Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00 using resistive RAM [RRAM] elements
    • G11C13/0021Auxiliary circuits
    • G11C13/0033Disturbance prevention or evaluation; Refreshing of disturbed memory data
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C13/00Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00
    • G11C13/0002Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00 using resistive RAM [RRAM] elements
    • G11C13/0021Auxiliary circuits
    • G11C13/0035Evaluating degradation, retention or wearout, e.g. by counting writing 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
    • 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/3418Disturbance prevention or evaluation; Refreshing of disturbed memory data
    • G11C16/3431Circuits or methods to detect disturbed nonvolatile memory cells, e.g. which still read as programmed but with threshold less than the program verify threshold or read as erased but with threshold greater than the erase verify threshold, and to reverse the disturbance via a refreshing programming or erasing step
    • 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
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • G11C7/1006Data managing, e.g. manipulating data before writing or reading out, data bus switches or control circuits therefor
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/11Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
    • H03M13/1102Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
    • H03M13/1105Decoding
    • H03M13/1111Soft-decision decoding, e.g. by means of message passing or belief propagation algorithms
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/13Linear codes
    • H03M13/15Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes
    • H03M13/151Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes using error location or error correction polynomials
    • H03M13/1515Reed-Solomon codes
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/13Linear codes
    • H03M13/15Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes
    • H03M13/151Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes using error location or error correction polynomials
    • H03M13/152Bose-Chaudhuri-Hocquenghem [BCH] codes
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/37Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
    • H03M13/3738Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35 with judging correct decoding
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/37Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
    • H03M13/39Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes
    • H03M13/41Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes using the Viterbi algorithm or Viterbi processors
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/37Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
    • H03M13/39Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes
    • H03M13/41Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes using the Viterbi algorithm or Viterbi processors
    • H03M13/4138Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes using the Viterbi algorithm or Viterbi processors soft-output Viterbi algorithm based decoding, i.e. Viterbi decoding with weighted decisions
    • 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/5671Digital 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 trapping in an insulator

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Probability & Statistics with Applications (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • General Engineering & Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Algebra (AREA)
  • Pure & Applied Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • For Increasing The Reliability Of Semiconductor Memories (AREA)

Description

本発明は、概して、メモリセルのアレイで構成されている不揮発性メモリの分野に関し、より具体的には、品質監視に応えて、少なくともそのようなメモリのエラー補正を始動させるための方法および装置に関する。
フラッシュメモリに関する最近の傾向は、集合的にメモリセルのアレイを構成する個々のメモリセルによって記憶される情報量を増加させることによって、記憶容量を増加させることを試みることにある。例えば、参照することによって本明細書に組み込まれる米国公開特許出願第2008/0162791号(以後、’791出願)によって認識されるように、メモリセル毎のデータレベルの数を増加させることは、データがメモリからリードバックされる際のエラーの確率を比例して増加させる。データレベルの間を解決するために関連する精度の増加が必要になるため、このエラーの確率の増加は、少なくとも一部において、各メモリセルによって記憶されるデータレベルの数を増加させることに起因する。したがって、個々のメモリセルによって記憶される値に影響を及ぼす歪み機構が、所与のメモリセルによって記憶されるデータ値のシフトに寄与する確率がより高くなり、これは、比較的より近くに位置付けられるデータ閾値の間での、閾値にわたる読み取りデータ値の不適切なシフトをもたらす確率がある。’791出願は、エラーの確率の増加を補正するためのエラー訂正コードの使用を教示する。’791出願は、当時に存在した最先端技術における顕著な改善を表すが、出願人は、’791出願における圧倒的な改善を提供する追加の技法を採用することができると考える。
図面を参照し、以下の説明を検討することによって、上述される例示的な態様および実施形態に加えて、さらなる態様および実施形態が明らかになるであろう。
参照される図面の図に、実施形態例が図示される。本明細書に開示される実施形態および図は、制限というよりはむしろ例証であることが意図される。
品質メトリックスベースの補正を提供するための、本開示に従ってもたらされる、全体的なシステムの一部を形成する、メモリコントローラの一実施形態を図示する、ブロック図である。 値の集合または分布の平均値を判定するための技法の一実施形態を図示する、フロー図である。 値の集合または分布の分散値を判定するための技法の一実施形態を図示する、フロー図である。 1つ以上の品質メトリックスに関連する、図1のコントローラの動作のための方法の一実施形態を図示する、フロー図である。 ブロック訂正コードの訂正カウントの形態の品質メトリックスに関連する、図1のコントローラの動作のための方法の別の実施形態を図示する、フロー図である。 ハードおよびソフトウィンドウに関するデータ値の理想化分布の集合を図示する、プロットである。 老朽化によるシフティングの影響、ならびにハードおよびソフトウィンドウに関連する広がりを図示するためにここに示される、考えられるデータ値の分布のプロットである。 線形適合が適用される、プロットに基づく補正の発現を図示するためにここに示される、分布の所望のデータ値ならびに測定値の集合と一致する曲線適合プロットのプロットである。 非線形曲線適合が適用される、プロットに基づく補正の発現を図示するためにここに示される、分布の所望のデータ値ならびに測定値の集合と一致する曲線適合プロットの別のプロットである。 訂正または補正量を確立するためのデータ分布の統計的平均値および曲線適合を判定するための方法の一実施形態を図示する、フロー図である。 データ分布の全範囲を構成することができる、複数の部分範囲のそれぞれ1つの平均値を判定するためのハードウェア平均値判定ユニットの一実施形態を図示する、ブロック図である。 図11のハードウェア平均値判定ユニットで使用される、平均範囲ユニットの一実施形態のブロック図である。 出力ストリームをもたらすために、到来配布ストリームに訂正量を適用する、テーブル差異ベースの回路の一実施形態のブロック図である。 図13のテーブル差異回路を初期化し、動作させるための方法の一実施形態を図示する、フロー図である。 少なくとも1つの品質メトリックスの反復判定に基づき、補正値を判定するための方法の一実施形態を図示する、フロー図である。 好適なメモリダイの一実施形態の図式平面図である。 図16のメモリダイの一部を形成する、消去ブロックの一実施形態を図示する、図式平面図である。
以下の説明は、当業者が本発明を作製し、使用することを可能にするために提示され、特許出願およびその要件の文脈において提供される。記載される実施形態に対する様々な修正が、当業者に容易に明らかになり、本明細書において教示される包括的原理は、他の実施形態に適用されてもよい。したがって、本発明は、示される実施形態に限定されることは意図されず、添付の特許請求の範囲内に定義される、修正物および均等物を含む、本明細書に記載される原理ならびに特長と合致する最大範囲が与えられる。図面は、本質的に、関心特長を最善に図示すると考えられる方法での図式であり得ることに留意する。記述用語は、図に提供される様々な視点に関して、読者の理解を高めるように適合されている場合があり、制限であることは決して意図されていない。
本明細書に提供される実施例のうちの少なくともいくつかは、NANDおよびNROMフラッシュメモリ等の電荷を貯蔵する不揮発性メモリセルのアレイの観点から構成されるが、そのようなメモリセルにおける電荷の変数物理パラメータとしての使用は、制限であることは意図されず、任意の好適な変数物理パラメータが採用されてもよいことを理解されたい。例えば、物理パラメータには、電子または正孔貯蔵に加えて、相変化媒体記憶デバイス(相変化メモリ(PRAM、ナノチューブ))、磁気記憶デバイス内の磁気モーメントもしくは磁気スピン方向(プローブストレージ)、容量変化(強誘電ランダムアクセスメモリ(FERAM))、もしくは分子ストレージ)、MRAM(磁気ランダムアクセスメモリ)、およびMEMS(マイクロマシン)ベースの媒体、または上記の任意の組み合わせにおける抵抗が挙げられる。他の好適なメモリ形態がさらに開発されてもよい。
ここで、様々な図を通して、同様の要素が同様の参照番号を使用して示され得る図面に注目すると、図1は、概して参照番号12で示される全体的なシステムの一部を形成する、点線内の参照番号10で示されるメモリコントローラを含む、ブロック図である。システム12は、メモリコントローラ10によって相互とインターフェースをとる、ホスト14と、固体不揮発性メモリ20とをさらに含む。ホスト14は、メモリコントローラの一部を形成するホストインターフェース32に接続され、一方、メモリ20は、メモリコントローラ10の別の一部を形成するメモリインターフェース34に接続される。ホストは、例えば、個人用コンピュータ等の任意の好適な形態のデバイスであってもよい。メモリインターフェースは、メモリインターフェースと任意の取り付けられるメモリデバイスとの間の物理的接続を構成する、1つまたは複数のメモリポートを含んでもよい。加えて、1つまたは複数のメモリインターフェースが存在してもよい。単一の取り付けられるコントローラを使用して、2つ以上のメモリデバイスが読み取りまたは書き込み動作を同時に実行することを可能にすることによる、高メモリシステムスループットのために、それぞれが複数のメモリポートを有する複数のメモリインターフェースを、コントローラ内に提供することができる。
システム12では、ホスト14は、不揮発性メモリ20を構成する記憶セルを使用して、データを記憶し、取り出す。読み取りおよび書き込みは、それぞれ、ホストから不揮発性メモリに、およびメモリからホストにデータを伝達する、符号化セクション42ならびに復号化セクション44によって可能となる。ホストによるメモリへのデータの記憶は、ホストがデータを読み取る際に発生するビットエラーを識別し、ホストに返される前に復号化プロセスによってデータから除去することができるように実行することができる。図示的明確化のために、制御線は示されていないが、マイクロコントローラ50およびファームウェア52は、必要に応じて、メモリコントローラ10の様々な構成要素に、制御信号および管理を提供することができる。読み取りおよび書き込み動作中、マイクロコントローラは、ホスト14からコマンドを受信して解釈し、他の動作の中でもとりわけ、そのような動作を実行することができる。本明細書に記載される技法のいずれも、ソフトウェア、ファームウェア、ハードウェア、またはこれらの任意の好適な組み合わせを使用して実現されてもよい。このようにして、メモリコントローラ10は、ホストからコマンドを受信し、これらのコマンドに応えて、メモリコントローラがホストから受信するデータをメモリインターフェース34に取り付けられる1つ以上のメモリデバイスに書き込むように動作する、またはメモリコントローラは、1つ以上の取り付けられるメモリデバイスからデータを読み取り、読み取りデータをホストに返す。ホストインターフェース32上で発行されるコマンドを介して、他の機能を実現し、実行することができる。これらの追加の機能には、ホストコンピュータとコントローラとの間のデータ転送を含むことができる。いくつかの実施形態では、メモリインターフェースのメモリコントローラ側のデータフローに、補正を適用することができる。
依然として図1を参照すると、不揮発性メモリ20は、それぞれが、交換可能にエンコーダと称され得る符号化セクション42、または交換可能にデコーダと称され得る復号化セクション44によってアクセスされてもよい、1つ以上の個々のメモリデバイスで構成することができる。不揮発性メモリのデバイス技術は、メモリセル毎に1ビット以上を記憶することができる、任意の不揮発性媒体であってもよい。メモリ20を構成するデバイス(単数または複数)を、それぞれの個々のメモリセルが保存することができるデータ値を特徴付ける変数物理パラメータに基づき、データを不揮発性保持することができる、任意の好適な技術に準拠し得る、1つ以上の不揮発性メモリデバイスの形態で提供することができる。各メモリデバイスは、半導体ダイであってもよい。本明細書に記載される進歩した技術から利益を享受し得る今日のデータ記憶システムは、記憶媒体としてNANDフラッシュを使用することができるが、この進歩した技術は、上述されるように、現在利用可能であるか、または依然として開発されていない、不揮発性メモリの任意の他の好適な形態に基づき、デバイスに関して同等に適用可能である。そのような不揮発性メモリの他の好適な形態は、NANDフラッシュで見られるものと同様の利益を実現することができる。
ホスト14は、データ記憶および取り出しシステムに読み取りならびに書き込みコマンドを発行する、任意の好適なデバイスであってもよい。ホストは、通常、プロセッサを含み、コンピュータシステムの一部であってもよいが、また、埋め込みシステムの一部であってもよい。エンコーダ42は、ホスト14からメモリ20へのデータ転送のプロセス中に動作する。エンコーダは、ホストによって提出されるデータに対して、ホストが続いてメモリ20からそれを読み取ることを要求する際に、少なくともいくつかのエラーが検出され、訂正され得るように転換を実施することができる。デコーダ44は、メモリ20からホスト14へのデータ転送のプロセス中に動作する。デコーダは、データがメモリによって記憶される形態のメモリから取り出されるデータに対して転換を実施し、データをホストによってエンコーダに元々提出された形態に変換することができる。メモリ20に記憶される際のデータの形態には、デコーダ44が、例えば、両出願とも本願と共同所有され、両出願とも参照することによって本明細書に組み込まれる、2009年3月13日に出願された、名称がBITWISE OPERATIONS AND APPARATUS IN A MULTI−LEVEL SYSTEMの米国特許出願第12/403,546号、および2010年6月4日に出願された、名称がADVANCED BITWISE OPERATIONS AND APPARATUS IN A MULTI−LEVEL SYSTEM WITH NONVOLATILE MEMORYの米国特許出願第12/794,706号に記載されるような、例えば、メモリ14の欠陥および/または歪みのために発生する、データ内のビットエラーを検出し、訂正することを可能にする符号化を含むことができる。
本開示に従ってもたらされる実施形態は、エンコーダ、デコーダ、および不揮発性メモリの実現形態に適用することができ、ならびに、ホストが、メモリに記憶するためのデータの転送をもたらすコマンド、およびメモリ内の記憶装置からの回収の後のホストへのデータの転送をもたらすコマンドを送信することによって動作を指示する、システム環境に適用される。
後補正訂正の適用は、さらに記載されるように、例えば、メモリインターフェースから受信される各読み取り値と関連付けられる訂正値を受信する、後補正加算器60または同様の機構によって、到来読み取りデータストリームに適用することができる。補正値自体は、以下に記載される品質メトリックス監視および判定技法に基づいて発生することができる結果の組み合わせを構成してもよい。一実施形態では、ファームウェア制御下のマイクロコントローラ50は、補正値を判定し、結果としてもたらされる値を好適なメモリに定置することができる。今メモリに存在する補正値の適用は、一実施形態では、メモリから補正値を取り出し、後補正加算器60を介して、到来読み取りストリームに値を適用する、専用ハードウェアシーケンシング機構によって適用することができる。
前補正訂正の適用は、直前に記載される前補正プロセスに類似して進むことができるが、しかしながら、訂正値は、前補正加算器62によって適用される。読み取りデータストリームというよりはむしろ書き込みデータストリームへの前補正訂正値の適用には、主要な違いがある。この場合も同様に、補正値自体は、これから記載される品質メトリックス監視および判定技法に基づく結果の組み合わせで構成されてもよい。
品質メトリックスは、例えば、歪みに応えて好適な補正を適用することができるように、メモリ20内に存在する歪みを反映することができる、回収されるいくつかの形態の情報に基づくことができる。補正の対象である根本的な歪み機構に関わらず、本開示は、歪みがデータに及ぼす差を反転させることによって、いずれのデータ値に対する歪みの影響も反転させるように作用することができる。本開示は、データ記憶および取り出しに適用され、この目的のためのコントローラは、記憶される情報を交互に書き込み、読み取るプロセスを実現するため、補正は、これらのプロセス(読み取りまたは書き込み)のうちのいずれかに適用されてもよい。情報獲得ステップは、品質メトリックスの判定の一部を形成することができ、したがって、等しい正当性で、読み取りプロセス中の補正(後補正)または書き込みプロセスの補正(前補正)を、一方から他方へと進む際に機構における差をわずかにまたは全く伴わずに進めることができる。
品質メトリックスの基準の形成において、実施形態は、少なくとも以下のタイプ、
1)統計的算術平均(平均計算)、
2)統計的変動(分散計算)、および
3)統計的エラー率収集
の情報獲得を実施することができる。
メモリ20に記憶されているか、またはメモリへの書き込み標的であるかのいずれかのデータ単位に対して、(1)、(2)、および(3)の判定を実施することができる。関心歪みは、各メモリデバイスの物理的側面から得ることができるため、計算のためのデータ単位は、各メモリデバイスの物理的ページサイズに従ってサイズ決定される必要がある。データ単位は、物理的ページの一部分、1つの物理的ページ全体、または複数の物理的ページであってもよく、データ単位のこれらの物理的属性への依存は、特定のメモリの読み取り特徴に基づくことができる。上述されるようなデータ単位と論理範囲のデータに対応するコードワードとの間の違いに留意することが重要である。コードワードは、1つ以上のデータ単位から構築されてもよい。このようにして、品質計算は、データ単位と概して関係しており、一方、コントローラの符号化および復号化回路は、コードワードと関係しているため、データ単位は、コードワードとは異なる。計算についてのコードワードとデータ単位との間の違いは、コードワード範囲が、符号化および復号化プロセス(品質メトリックス計算というよりはむしろ)に関連しているという事実の機能である。品質メトリックスが適用されるデータ単位の物理的側面のため、コードワードは、好適な実施形態では、データ単位の部分集合、データ単位の上位集合、またはデータ単位と同一であってもよい。コードワードが、単一のデータ単位より多くにわたる場合、この場合では、コードワードを構成するデータ単位と同数のデータ単位に対して、品質メトリックスを個々に計算することができる。そうは言うものの、計算(1)、(2)、および(3)の目的のために、データ単位は、コントローラの符号化および復号化(書き込みおよび読み取り)プロセスへの供給時に、同一のストリームを備えてもよい。さらに、一実施形態では、判定は、コントローラに接続されるホストの代わりに、コントローラ内の読み取り(または書き込み)プロセスによって現在読み取られている(または書き込まれている)データに基づくことができる。別の実施形態では、判定は、関心判定を実施するためだけのために、1つ以上の既存のデータ単位を使用して、いずれのホストコマンドからも独立して進んでもよい。そのような既存のデータ単位は、例えば、書き込み動作の前から、既にメモリ20内にあってもよい。
図1の構成要素は、任意の好適な、または所望の組み合わせの、統計的算術平均、統計的変動、および統計的エラー率の任意の1つ以上を含む品質メトリックスに基づき、補正判定を実施することを提供する。任意の好適な統計値が、品質メトリックスとして採用されてもよく、本明細書に説明される実施例は、制限であることは意図されないことを理解されたい。品質監視セクション64は、以下により詳細に記載されるように、関心があり、かつ入手可能である、例えば、統計的算術平均、統計的変動、および統計的エラー率収集に基づく値等の任意の品質メトリックスを監視することができる。品質監視セクション64は、一態様では、1つ以上の品質メトリックスに基づき、データの品質を追跡し、品質メトリックス(単数または複数)に基づき、適用される補正量を確立する役割を果たす。いくつかの実施形態では、QMセクション64は、閾値に基づき、測定されるデータの品質を判定するように判定を行うことができる。この意味で、品質という用語は、エラーのないデータに関連する。つまり、データ内により少ないエラーが存在すると、データの品質はより高い。いくつかの実施形態では、品質監視セクション64は、ハードウェアおよびソフトウェアの任意の好適な組み合わせで構成されていてもよい。後補正ユニット70および前補正ユニット72は、それぞれ、後補正状況であるか、または前補正状況であるかに関わらず、補正値の判定のために構成される。補正の具体的な量または大きさは、品質監視セクション64に影響される確率がある。つまり、監視されている1つ以上の品質メトリックスが、比較的多量のデータ劣化を示す場合、全体的な補正量を比例して増加させることができる。後補正ユニット70によって、後補正判定の選択される集合のそれぞれ1つを確立し、出力として後補正加算器60に提供される前に組み合わせることができる。例えば、全体的な補正値は、統計的算術平均、統計的分散、および1つ以上の統計的エラー率値のそれぞれ1つからの寄与の組み合わせ、ならびにこれらのアイテムの任意の副組み合わせ、またはこれらのアイテムのうちの任意の1つで柔軟に構成されていてもよい。この全体的な後補正出力を、メモリインターフェース34から受信される現在の読み取り値に、現在の値をデコーダ44に入力する前に追加することができる。同様に、前補正ユニット72によって、前補正判定の選択される集合のそれぞれ1つを確立し、出力として前補正加算器62に提供される前に組み合わせることができる。この前補正出力を、エンコーダ42から受信される現在の書き込み値に追加することができる。前補正判定の選択される集合は、後補正判定の選択される集合とは異なってもよく、いずれかの集合は、入手可能な判定、入手可能な判定の部分集合、または判定の単一の選択される1つの任意の所望の組み合わせを含むことができる。
ここで、図1と併せて図2を参照すると、図2は、概して参照番号100によって示される、統計的平均値を判定するための方法の一実施形態を図示する。方法100は、本方法に提示される任意の一連のデータ値の算術平均値の確立を達成することができる。統計的平均値判定のプロセスは、通常、集合のすべての個々のデータ値の算術平均値(平均)が判定されるものである。要件ではないが、本手法は、メモリデバイス内の単一の物理的ページを標的としたデータ値、メモリデバイス内の単一の物理的ページ、消去ブロック、またはメモリの任意の好適にサイズ決定されたユニットから読み取られるデータ値のいずれかのデータ値の処理に関与することができる。方法100は、ファームウェア52が、プロセスに入力するために、集合を待ち行列に入れることによって、データ値の標的集合を処理するために配列することができる、ステップ102で開始する。プロセスがデータを通してシーケンシングすることができるように、例えば、コントローラ10のバッファ内に既に存在する、マイクロコントローラ50がアクセス可能な一時メモリ103内、またはコントローラがアクセス可能な任意の好適な位置に、値の待ち行列を形成することができる。一時メモリ103に加えて、例えば、後補正ユニット70および前補正ユニット72の一部として、好適なバッファを提供することができる。104で、プロセスが値の標的集合の開始に配向されているか否かが判定される。プロセスがデータ値の標的集合の開始に配向されている場合、プロセスは、106で、データ値の以前の集合から留まっている場合があるいずれの残存値も消去することによって、自体を初期化することができる。108で、初期データ値が取得され、現在の平均値として記憶される。1つ以上の平均値判定を記憶するために、平均値レジスタセクション110(図1)を提供することができる。ステップ112は、次いで、集合内の別の値が入手可能であるか否かを判定する。そうであれば、動作は、新しい現在の平均値に至るように、既知の方法で値の累計に新しい値を追加し、値の総数で除算することによって、新しい現在の平均値を再判定する、108に戻る。平均値計算器114(図1)によって、平均値計算を実施することができる。116で、コントローラは、現行または最終算術平均出力を入手可能である。ステップ108および112は、ステップ112が値の集合の終わりが到達されたと判定するまで、ループ動作を継続する。その時、プロセスは、116で入手可能な集合の最終平均値を伴って、118で終了する。したがって、プロセスは、集合内のデータ値のそれぞれに対して反復され、反復毎に1つの値を取り込み、各反復の度に出力値を更新する。プロセスの終わりで、コントローラは、データ値の現在の集合の結果を入手可能である。
図2に示されるプロセスによって、実施形態は、計算ハードウェアを通してストリームされる集合からのデータ値の結果としての平均値を計算するためのハードウェアを含むことができる。ファームウェア52は、ハードウェアへのデータ値の転送を設定し、初期化することに責任があり、いったん転送が開始されると、ハードウェアは、それぞれの追加のデータ値に基づき、平均値を自動的に更新することができる。そのようなハードウェアベースの平均値計算は、当業者によく知られるであろう。
図1と併せて図3を参照すると、図3は、概して参照番号200によって示される、統計的分散値を判定するための方法の一実施形態を図示する。方法200は、本方法に提示される任意の一連のデータ値の分散値の確立を達成することができる。分散計算のプロセスは、通常、集合のすべての個々のデータ値の分散(標準偏差またはシグマの観点から言及される場合がある)が判定されるものであることを理解されたい。要件ではないが、本手法は、メモリデバイス内の単一の物理ページを標的としたデータ値、メモリデバイス内の単一の物理的ページ、消去ブロック、またはメモリの任意の好適にサイズ決定されたユニットから読み取られるデータ値のいずれかのデータ値の処理に関与することができる。分散計算自体は、一般的に、ソフトウェア機能としてより、ハードウェア機能として、より速く、かつ効率的に実施することができ、ハードウェア実現形態は要件ではないが、個々のデータ値と算術平均データ値との間の二乗差の総和を実施する任意のハードウェアベースの技法によって実現することができる。当業者は、分散判定のためのソフトウェア実現形態およびハードウェア実現形態の両方をよく知るであろう。方法200は、ファームウェア52(図1)が、プロセスへの入り口で集合を待ち行列に入れることによって、データ値の標的集合を処理するために配列することができる開始202で開始する。プロセスがデータを通してシーケンシングすることができるように、例えば、上述されるように、コントローラ10のバッファ内に既に存在する、マイクロコントローラ50と関連付けられる一時メモリ103内、またはコントローラがアクセス可能な任意の好適な位置に、値の待ち行列を形成することができる。204で、プロセスがデータ値の標的集合の開始に配向されているか否かが判定される。プロセスがデータ値の標的集合の開始に配向されている場合、プロセスは、206で、データ値の以前の集合から留まっている場合があるいずれの残存分散値も消去することによって、自体を初期化することができる。208で、初期データ値が取得され、記憶される。1つ以上の分散値判定を記憶するために、分散値レジスタセクション210(図1)を提供することができる。ステップ212は、次いで、例えば、追加のデータ値を取り出し、すべての以前のデータ値に追加のデータ値を加えた集合に基づき、分散を再演算することによって、集合内の別の値が入手可能であるか否かを判定する。そうであれば、動作は、追加のデータ値を取り出し、すべての以前のデータ値に追加のデータ値を加えた集合に基づき、分散を再判定することによって、新しい現在の分散値を再判定する、208に戻る。分散値計算器214(図1)によって、分散値計算を実施することができる。216で、コントローラは、現行または最終分散出力を入手可能である。ステップ208および212は、ステップ212が値の集合の終わりが到達されたと判定するまで、ループ動作を継続する。その時、プロセスは、216で入手可能な集合の最終分散値を伴って、218で終了する。したがって、プロセスは、集合内のデータ値のそれぞれに対して反復され、反復毎に1つの値を取り込み、各反復の度に出力分散値を更新する。プロセスの終わりで、コントローラは、データ値の現在の集合の分散結果を入手可能である。
図3に示されるプロセスによって、実施形態は、計算ハードウェアを通してストリームされる集合からのデータ値の結果としての分散値を計算するためのハードウェアを含むことができる。ファームウェア52は、ハードウェアへのデータ値の転送を設定し、初期化することに責任があり、いったん転送が開始されると、ハードウェアは、それぞれの追加のデータ値に基づき、分散値を自動的に更新することができる。そのようなハードウェアベースの分散計算は、当業者に良く知られるであろう。
図1を参照すると、1つ以上の品質メトリックスを確立する、統計的エラー率判定を実施するための品質メトリックス生成器260は、デコーダ44の一部を形成してもよい。一実施形態では、デコーダは、品質メトリックスが、メモリ20の一部を形成する各メモリデバイスのビタビ検出器のブランチメトリックスの差分になるように、ビタビ検出器を含んでもよい。ビタビデコーダ等の信号処理アルゴリズムは、通例、平均二乗誤差またはMSEと称される、シーケンスの期待値と受信される実際の値との間のそれらのブランチメトリックスの累積を用いて設計される。MSEは、データが復号化される際にリアルタイムに捕獲されるデータ品質のメトリックスである。出願人は、さらに記載されるように、システムを改善するために、このデータ品質に関連する情報を多数の異なる方法で使用することができることを認識する。
さらに別の実施形態では、デコーダ44は、品質メトリックス生成器260として、復号化されるリードソロモンデータの各ブロックに対して実施されるシンボル訂正の数をカウントする、リードソロモンデコーダを含む。リードソロモンデコーダのシンボル訂正のカウントは、システム内の各メモリデバイスのデータ品質の尺度として使用することができる。リードソロモン(RS)検出器は、RSブロック毎に最大で特定の数のRSシンボルを訂正することができることが理解されるであろう。いくつかの実施形態では、RSブロック毎のシンボル訂正の数を監視することができる。例えば、デコーダは、1つのシンボルのみが訂正される各RSブロックを識別すること、2つのシンボルが訂正される各RSブロックを識別すること、および3つのRSシンボルが訂正される各RSブロックを識別すること等ができる。このようにして、RSブロック毎のシンボル訂正の数に基づき、ヒストグラムを構築することができる。典型的に、1つのシンボルの訂正は、漸進的により大きい数のシンボル訂正よりはるかに頻繁に発生する。この訂正データの形態は、データおよびシステムエラー率の全体的な品質を判定するための品質メトリックスとして使用することができる。品質メトリックス生成器260が追跡することができる任意の好適な統計的エラー率は、品質メトリックスの基準を形成することができ、本明細書に詳細に記載される品質メトリックスの具体的な形態は、制限であることは意図されないことを理解されたい。
出願人は、不揮発性メモリシステム内の品質監視は、既知の特徴について異なるデバイスを較正するため、システム内データ品質を訂正値を用いて訂正するため、データ老朽化影響を検出するため、さらなるアクションのために、データ品質をホストシステムに報告するため、および高品質データの場合に、スループット性能またはデータ密度を増加させるために使用することができることを認識する。品質監視は、インテリジェントな不揮発性(NVM)コントローラが、品質監視情報に基づき、メモリシステムを修正することを可能にする。システム修正には、一例として、より長い期間にわたるデータの信頼性を改善する、またはデータが損失される前に、データを新しい位置に移動することができるように、差し迫る障害をホストシステムに報告する能力を与える、アクションを含むことができる。
依然として図1を参照すると、コントローラ10の品質監視セクション64は、通常のユーザデータに基づき、このデータがシステムを通って移動する際に、1つ以上の品質メトリックスを監視することができる。つまり、品質メトリックスを確立するために、特別な較正データを利用する必要はない。したがって、システムスループットに限られた影響しか及ぼさずに、または本質的に影響を及ぼすことなく、品質メトリックスを生成し、監視することができる。つまり、従来のユーザデータアクセスに基づき、品質メトリックスデータを累積することができる。換言すれば、特別な専用較正データおよび他のそのような資源への追加の「帯域外」アクセスを行うことなく、品質データを累積することができる。いくつかの実施形態では、ストリーミングデータ方式において、システムスループットへの低い影響しか及ぼさずに、または影響を及ぼすことなく、コントローラによって、すべての要求される計算を実施することができる。したがって、通常のデータの使用を通して、データの潜在的劣化を監視することができる。劣化のレベルに基づき、例えば、マイクロコントローラ50によって、ホスト14によって、またはシステムのユーザの裁量で、応答事象を始動させることができる。応答事象は、許容不可能なレベルのデータ劣化のユーザへの通知、および後補正または前補正の状況における補正技法の自動起動の1つ以上を含むことができる。そのような指標は、261で、例えば、ホストと関連付けられるディスプレイ上に、ホスト14によって発行される通知の形態で示される。応答事象の始動は、(1)ユーザによって始動されてもよく、(2)いくつかの閾値との比較において、データ品質メトリックスによってトリガされてもよく、品質メトリックスは、分散計算器214によって判定されるデータ分布の標準偏差または分散、平均値計算器114によって判定される通常データまたは較正データの分布の平均値シフト、デコーダ44の一部を形成し、QM生成器260としての役割を果たす、ビタビ検出器の平均二乗誤差またはパスメトリックス、およびBCHもしくはリードソロモン検出器またはデコーダ44の一部を形成し、同様にQM生成器260としての役割を果たすデコーダの訂正されたシンボルの数であってもよい。いくつかの実施形態では、センサセクション262は、絶対温度および/または温度の変化が、現在の品質メトリックス値を閾値と比較し、それを受けて、補正を始動させる観点からさらなる応答をトリガすることを含むが、これに限定されない、応答事象を品質監視セクション64に始動させることができるように提供される、温度センサを含むことができる。同様に、センサセクション262は、供給電圧の十分に大きい変化が、品質監視セクション64に応答事象を始動させるように、供給電圧を監視する、電圧モニタを含むことができる。一実施形態では、品質監視セクション64は、例えば、最後に品質メトリックスが確認されてから、ある所定の期間の経過に応えて、応答事象を始動させることができる。これに関して、コントローラ10に、関心がある任意の品質メトリックスを確認させ、その後、データ劣化を示す品質メトリックスの変化に基づき、適切な応答を取らせるために、任意の測定可能なパラメータを利用することができる。
ここで、図4を参照すると、図1のコントローラ10の動作のための方法の一実施形態が、概して参照番号300によって示されている。本方法は、開始301で開始する。302で、メモリ20からデータの集合が読み取られる。このデータは、いくつかの実現形態では、通常のユーザデータであってもよく、他の実現形態では、以前に保存された、例えば、既知の平均値および既知の分散または標準偏差等の1つ以上の既知の特徴を有する、較正データであってもよい。通常のユーザデータが使用される際、データをメモリ20に書き込む前に、平均値および/または分散を判定することができ、判定される値を、将来参照するために、平均値レジスタ110および分散レジスタ210に記憶することができる。さらに、上述されるように、および使用されている特定のエラー訂正コードによって、例えば、データを読み取り、ビタビデコーダまたはLDPCデコーダのブランチメトリックスをもたらすことができるQM生成器260の出力を監視することによって、本質的にデータをメモリ20に書き込んだ直後に、統計的エラー率を判定することができる。また、上述されるように、コードワード毎の訂正されたシンボルの数が、品質メトリックスとしての役割を果たすことができるように、例えば、リードソロモンまたはBCH等のブロック訂正コードが使用されていてもよい。したがって、読み取り動作によって、読み取られる記憶データの集合について、取り出しデータの関連集合が取得され、取り出しデータは、記憶データの集合が不揮発性メモリに記憶され、それから読み取られた結果として、1つ以上の歪み機構に影響される。
304で、取り出しデータの集合に応えて、1つ以上の品質メトリックスが生成され、品質メトリックス(単数または複数)は、ユーザデータと関連する取り出しデータとの間の差に応えて値が変化する。デコーダ44およびQM生成器260の特定の実施形態によって、および一例として、QM生成器260によってもたらされる品質メトリックスは、ビタビデコーダまたはLDPCデコーダのブランチメトリックス、およびブロック訂正コードについては、コードワード毎基準の訂正されたシンボルの数を含むことができる。これらの品質メトリックスは、品質監視セクション64に提供される。また、品質監視セクション64は、平均値レジスタ110および分散レジスタ210から、品質メトリックスとしての役割を果たす平均値および分散値をそれぞれ受信することもできる。
依然として図4を参照すると、306で、品質メトリックスの1つ以上を閾値と比較することができる。例えば、この比較は、品質メトリックスの現在の値と閾値との間の関係を確立することができる。品質メトリックスの基礎値は、例えば、品質監視セクション64、平均値レジスタ110、および/または分散レジスタ210によって、以前に記憶されていてもよい。上述されるように、基礎値を前もって、例えば、データをメモリ20に記憶した書き込み動作の直後に確立することができる。本実施形態の状況では、閾値との比較のために、品質メトリックスの現在の値と基礎値との間の差として、関係を確立することができる。差が閾値を超えない際、動作は、通常の分岐に沿って、ステップ308に移動する。次いで、ステップ308は、プロセスに入力するためのデータの別の集合が入手可能であるか否かを判定する。そうであれば、動作は、続くデータの集合を読み取るために、ステップ302に戻ることができる。しかしながら、306で、差が閾値を超える際、動作は、元のユーザデータと比較して、取り出しデータのあるレベルの劣化が検出されたことを示す、この状態に対する応答を始動させるために、プロセスのエラー分岐に沿って310に進む。任意の好適な応答が呼び出されてもよい。一実施形態では、ユーザは、潜在的データ劣化を通知されてもよい。別の実施形態では、補正手順が始動されてもよい。ある好適なエラー応答は、取り出しデータの関連集合を構成する各データ値に、訂正の大きさを有する訂正量を追加することである。後補正ユニット70によって後補正オフセット/値を判定し、後補正加算器60によって取り出しデータ値に追加することができる。訂正の大きさは、品質メトリックスの現在の値とその品質メトリックスの基礎値との間の差に基づくことができる。つまり、訂正の大きさは、品質メトリックスと基礎値との間の差の増加に比例して増加させることができる。ステップ310が完了すると、動作は、品質メトリックスを再生成するためにステップ304に戻り、続いて、ステップ306で、その値をリセットする。306での決定が満足されると、動作は、ステップ308戻ることができ、302での続くデータの集合の読み取りか、または312でのプロセスの終了のいずれかをもたらすことができる。
図5を参照すると、図1のデコーダ44で実現することができる、ブロック訂正コードと共に使用するための、概して参照番号300’によって示される、図4の方法300の別の実施形態が図示されている。プロセスは、301で入る。302で、メモリ20からデータのブロックまたは集合が読み取られる。304’で、ブロックは、復号化され、例えば、リードソロモンまたはBCH等で使用されている任意の好適なブロック訂正コードに従って訂正される。QM生成器260は、参照目的で、ブロック毎の訂正の数を維持し、保存することができ、訂正カウントを、図1の品質監視セクション64に提供することができる。306’で、訂正カウントが監視される。カウントは、ゼロまたは好適なより大きい値であってもよい、指定される訂正カウント制限を超えない場合、動作は、ステップ308に移動する。次いで、ステップ308は、プロセスに入力するためのデータの別の集合が入手可能であるか否かを判定する。そうであれば、動作は、302に戻る。一方、訂正カウント制限を超える場合、動作は、上述されるように、データの潜在的劣化に対する応答を始動させる、310に進む。次いで、動作は、方法が306’での試験が満足されるまで継続されるように、訂正カウントを再判定する、304’に戻る。308で、データの別の集合が入手可能ではない場合、方法は、312で終了する。
前述を考慮し、ここで、これらの詳細は制限であることは意図されないが、電荷捕獲デバイスおよびそれらの動作の状況における、品質メトリックスの判定ならびに関連する補正に関して、さらなる詳細が提供される。つまり、当業者は、本記載を他の形態のメモリセル記憶技法に容易に適用し得る。Nチャネル技術を用いる典型的なNANDデバイスの例を使用して、当業者は、各メモリセルの浮遊ゲートに注入される、または電荷領域に捕獲される電子が、プログラマブルデータ記憶装置を提供する機構であることを理解するであろう。所与のメモリセルに貯蔵される電荷量に基づき、メモリセルの周知の閾値電圧VTが変化する。したがって、読み取り技法は、VTの相対値を確立する。典型的に、CMOSデバイスのゲート領域内の窒化物層に電荷が捕獲される、NROM SONOSもしくはNAND SONO、または同様のデバイス等の電荷が捕獲されるデバイスでは、電子または正孔の追加は、メモリセルを形成するトランジスタの周知のVTを変化させる。具体的なメモリセル構造に関わらず、各メモリセルのトランジスタのVTの値は、そのセルに情報が記憶されていることを表す。
1ビット/セルまたは単一レベルセル(SLC)デバイスでは、VT値は、高または低値であってもよく(2レベルが記憶される)、より複雑なマルチレベルセル(MLC)デバイスでは、2ビット/セルデバイスに4レベルが記憶されてもよく、3ビット/セルデバイスに8レベルが記憶されてもよく、4ビット/セルデバイス内に16レベルが記憶されてもよい等である。式N=log2(L)は、セル内に配列されるVTレベルの数(L)と配列によって表されるビットの数(N)との間の関係を記述する。さらに、出願人は、非整数値のNが許容可能であり、例えば、3.585ビット/セルは、12レベル/セルと等しいことを認識する。
ここで、図6を参照すると、システム例のデータ値の理想化分布が、概して参照番号500によって示されるプロットによって表されている。システム例は、垂直軸が、VTの各値の発生数を表し、水平軸が、変数(x)と交換可能に称され得るVTを表す、増加するVTの4つの異なる分布A〜Dが示されるように、セル毎に2ビットを記憶する。各理想化分布は、分布Aではウィンドウ00、分布Bではウィンドウ01、分布Cではウィンドウ10、および分布Dではウィンドウ11と指定される、関連するウィンドウ内の中心にある。各理想化分布が、ウィンドウのそれぞれ1つ内の中心にあるため、各分布の算術平均値およびピークは、そのそれぞれのウィンドウ内の中心となる。図6に見られるデータ値の理想化分布は、いかなる歪み機構もない場合に、メモリに記憶され、それから読み取られる、大きい数のデータ値を読み取ることによってもたらすことができることを理解されたい。したがって、好適に大きい数のメモリセルを読み取ることによって、図6のようなデータ分布を、ヒストグラムとして構築することができる。そのようなヒストグラムは、読み取り動作中に取得される通常のユーザデータに基づいて、または較正パターンに基づいて構築することができる。これに関して、出願人は、通常のユーザデータが、有用なデータ分布をもたらすように十分にランダム化されることを発見した。記載されるように、以下の1つ以上の適切な点で、実際の読み取り動作に基づいて取得されるデータの結果としてもたらされる分布に、多数の方法で影響を及ぼすことができる。
依然として図6を参照すると、セル毎に2ビットのデバイスは、502a、502b、および502cと指定される3つの閾値レベルによって分割される、合計で4つの情報のエリアまたはウィンドウA〜Dを含む。一例として、セル毎に4ビットのデバイスは、値を書き込むための16のウィンドウを有し、15の閾値レベルがこれらの値を分離する。信号処理の言語では、情報値を分離する離散閾値は、ハード閾値と称される。ハード閾値を使用するデータ検出を、スライサー検出と称することができる。ハード閾値によって表されるビットは、本明細書において、ハードビットと称される場合がある。しかしながら、より高い分解能情報は、値がハード閾値の間のどこにあるかを示すことができ、ソフト情報またはソフトビットと称することができる。したがって、ハードビットは、ソフトビットより有意度が高い。ソフト情報は、特定のサンプルがハード閾値にどれだけ近いか、したがって、サンプルが正確に検出された確率に関する。検出された値がハード閾値に近いことを示すソフト情報を伴う検出サンプルは、検出された値が2つのハード閾値の間の中心であることを示すソフト情報を有する検出されたサンプルより、正確である確率が低いことを示す。ビタビおよび低密度パリティコード等の信号処理アルゴリズム、ならびにデコーダ44(図1)内に存在することができる他のアルゴリズムは、エラーの確率の観点から、値または値のシーケンスの正確な復号化を支援するために、ソフト情報を使用する。
図6の実施例では、各ハードウィンドウ00〜11は、追加の2ビットのソフト情報を用いてオーバーサンプリングされる。したがって、各ハードウィンドウのVT範囲は、ハードウィンドウ00のa〜dと指定される4つの部分範囲に分割される。各ハードウィンドウ内の部分範囲は、3つのソフト閾値510によって分離され、それらの数は、具体的に指定される。したがって、2ビットのユーザデータを記述するために、合計で16のソフトウィンドウエリア、または4ビットが使用される。本開示を考慮して、ソフトビットおよび情報ビットの数を無制限に拡張することができることを理解されたい。例えば、4ビットのユーザ情報を含むシステムは、3つの追加のソフトビットによってオーバーサンプリングされ、したがって、4ビットのユーザデータを完全に記述するために、7ビットのデータを必要としてもよい。各ハードウィンドウは、情報を記憶するために使用されるメモリセルの物理的特性の範囲に対応し、一方、各ソフトウィンドウは、ハードウィンドウのうちの1つ内の物理的特性の部分範囲に対応する。読み取り動作は、物理的特性が含まれるソフトウィンドウを確立する。
依然として図6を参照すると、メモリセルが情報を記憶する物理的特性が、少なくとも、ハード閾値の配列によって分離される、ユーザデータ分解能に対応する特定の数の領域に分割されるように、例えば、セル毎に2ビット等、メモリセル毎に記憶される特定の数のユーザデータビットを含むユーザデータを、ユーザデータ分解能で提供し、書き込むことができることを理解されたい。続いて、関連するメモリセルからの読み取り動作によって、取り出しデータの関連集合が取得されるように、1つ以上の読み取り動作において、記憶データの集合を読み取ることができ、取り出しデータは、記憶データの集合が不揮発性固体メモリに記憶され、それから読み取られた結果として、1つ以上の歪み機構に影響される。そのような歪みには、続く図によって図示されるように、図6によって図示される分布のシフトおよび広がりが挙げられる。他の歪みには、例えば、(x)の全範囲にわたって導入されるピーク、またはドループと称される場合がある谷が挙げられる。さらに、1つ以上の形態の歪みが同時に存在する確率がある。歪み(単数または複数)の具体的な形態に関わらず、ソフトビットが、ハード閾値の間のどこに各データ値があるかを示し、それによって読み取り動作中にソフト情報を生成するように、関連する取り出しデータ内の各データ値と関連付けられるソフトビットの集合を取得するために、特定のユーザデータ分解能より大きい読み取り分解能で、各関連するメモリセルの物理的特性のデータ値を続いて読み取ることができる。ソフトビットに基づき、取り出しデータの関連集合の少なくとも1つの訂正または補正値を判定することができる。
図7を参照すると、メモリ20(図1)における老朽化の歪みを受けたデータ値の分布例が、概して参照番号600によって示されるプロットによって表されている。図7のプロットは、一例として、2ビットのユーザ情報および2つのソフトビットを使用する、図6のプロットに基づいているが、制限であることは意図されないことに留意する。図7では、分布A〜Dが、図6の対応する分布と比較して、VT内で、下方にシフトされていることが分かる。例えば、各ハードウィンドウ内の平均値およびハードウィンドウ内のすべての値の分散等のデータの標準統計的表現の測定および判定のために、ソフトビットまたはソフト情報を提供することができる。例えば、データがハードウィンドウ内の中心にないことを示すために、判定される平均値を使用することができる。図7では、ハードウィンドウ00の線602は、ハードウィンドウの中心線を表す。分布Aの平均値は、線604によって示され、そのため、シフトされた分布Aの平均値は、両頭矢印として示される量610だけVT内でシフトされ、そのため、本実施例では、分布Aの中心線604は、ハードウィンドウ00の部分範囲(a)内に含まれる。したがって、図示されるシフトは、部分範囲(a)がハードウィンドウ00の下端に直接隣接しているため、データエラーの有意な確率を示し、適切なエラー応答をトリガすることができる。修正されたデータの平均値がウィンドウ内の中心になるように、各ウィンドウ内のすべてのデータ値を修正するための訂正値として、各ウィンドウの中心と平均値との間の差610を使用することができる。これに関して、分布B〜Dもまた、差610だけシフトされた状態で示されているが、しかしながら、各分布のシフト量は異なっている確率があり、そのため、各分布に異なる補正量を適用することができることに留意する。例えば、いったんシフト量がある閾値を超えると、データを再書き込みすることによって等、記憶データを訂正するために、任意の好適な方法で、補正を実施することができる。例えば、シフト610と等しい量のデータを各データ値に追加することによって、読み取りデータの訂正を実施することができる。データ値をメモリに書き込む前に、そのような量のデータを各データ値に追加することによって、前補正を達成することができる。
図6および図7を参照すると、図6のVT分布A〜Dのそれぞれの初期幅は、典型的に、書き込み動作における許容値の変化によるものである。したがって、初期幅と関連する初期分散または偏差を判定することができる。図7に、実線両頭矢印を使用して、D分布の初期幅620が示されている。続いて、また、分布の広がりも、プログラム/消去サイクル(耐久性として知られる)、および老朽化(また、保持としても知られる)に付随する分布の移動を伴う確率がある。当業者は、既知の時間の高温浸漬またはベーキングは、同一のプログラムされたデバイスのより典型的な周囲温度での大幅に長い時間の老朽化と等しいと見なすことができることを理解するであろう。各メモリセルは、わずかに異なるようにプログラムされてもよく、各メモリセルは、わずかに異なる電荷を保持してもよいことを理解されたい。分布Dの変化を表す続く分布622は、点線を使用して仮想的に示されている。対象分布は、広がりならびにシフティングの影響を受ける。続くD分布の続く幅624は、点線両頭矢印を使用して示されている。したがって、続く分散または幅は、分布Dの初期分散または幅より大幅に大きくてもよい。しかしながら、シフトされた分布Dの平均値および続く分布622は、少なくとも本実施例の目的では、同一であることを理解されたい。この部類の伝送または記憶チャネルの信号対ノイズ比(SNR)の標準的な定義は、電力または電圧デシベルのいずれかで表される信号分布の標準偏差(シグマ)で除算したウィンドウの幅である。大きいシグマを有する広い分布は、低SNRを有する。一実施形態では、品質監視セクション64(図1)は、分散計算214によって判定される続く分散を、初期分散と比較し、比較に基づき、適切な補正量を判定することができる。別の実施形態では、初期分散と続く分散との間の差が閾値を超える場合、初期分散を少なくとも部分的に回復させるために、メモリセルを再書き込みすることができる。さらに記載されるように、ソフトビットに対応する物理的特性の部分範囲に従って、取り出しデータをフィルタリングすることによって、図7に示されるような取り出しデータの集合のデータ分布のヒストグラムを発現させることができること理解されたい。わずかに異なる方法で言い換えれば、ハード閾値の間の各ソフトビット値の発生をカウントすることによって、ヒストグラム情報を発現させることができる。
図1、図6、および図7を参照すると、長期にわたる記憶時間、温度もしくは電圧変化、または複数の消去/プログラムサイクルによる劣化のために発生し得る電荷の損失を補正するために、各値がメモリ20から読み取られる際、後補正加算器60によって、データの各値に、シフト610に対応する量等の訂正または補正量を追加することができる。各データ値に追加される訂正量は、多くの場合、全ハードビットより小さいが、しかしながら、補正は、ソフトビットに制限されない。ソフトビットは、多くの場合、ハードビット値を変化させることなく比較的小さい量の訂正をデータに追加することを可能にするという面で有益である。上述されるように、ハードウィンドウのそれぞれに対応する分布A〜Dのそれぞれの平均値は、異なる量シフトすることができる。一実施形態では、分布A〜Dのそれぞれの算術平均平均誤差を判定することができ、本実施例では、4つの平均値をもたらす。次いで、これらの4つの値の算術平均を、すべての取り出しデータ値の全体的な訂正値として適用することができる。任意の入手可能な数の分布が、全体的な算術平均に寄与することができ、4つの分布の使用は、一例であり、制限であることは意図されないことを理解されたい。別の実施形態では、各ウィンドウが異なる訂正値の対象となるように、各ウィンドウの平均誤差が判定され、その特定のウィンドウ内に含まれる値に対してのみ適用される訂正値として使用される。
さらに別の実施形態では、図7のVT値の範囲全体にわたる曲線適合方程式を確立するために、各ウィンドウの判定されるデータの平均位置を使用することができる。曲線適合方程式は、任意の順序の任意の所望の形態、またはデータを表すために必要な形態をとることができる。一例として、好適な曲線適合手順は、当業者に良く知られるであろう、また、多項式適合、指数関数適合、スプライン適合、最小二乗適合が挙げられるが、これらに限定されない。広くは、適合の最適なタイプは、適合されるデータに依存する。一実施形態では、曲線適合手順のプロセッサ実現形態は、曲線適合のパラメータだけでなく、また、曲線適合動作のタイプも変化させる柔軟性を可能にすることができる。いったん曲線適合方程式が確立されると、曲線適合とそのデータの所望の位置との間の差に基づき、各データ値の訂正量を判定するために、方程式を使用することができる。
この訂正/補正プロセスは、方程式、
Figure 0005695203
によって特徴付けることができ、式中、f(x)は、データの曲線適合を表す関数であり、g(x)は、データの所望の位置を表す関数である。上述されるように、変数(x)は、VTを表すことができる。関数g(x)は、VTの所与の入力値のVTの所望の値を与え、一方、g(x)は、VTの実際の入力値を表す。次いで、出力として補正された値をもたらすために、各入力データ値(x)の方程式1によって反映される訂正量が、入力データ値に追加される。訂正量は、正であっても負であってもよい。
図8を参照すると、f(x)およびg(x)対入力値(x)のプロットが、測定される平均位置によって概略的に示されている、またはf(x)内の測定されるデータ値は、それぞれ、Xによって指定される。両方の方程式の観点から、データは、タイプy=mx+bの一次方程式で記載され、式中、データの出力表現yは、実際のデータ値xを利得係数mで乗算し、一定値bを加算することによって計算され、bは、正であっても負であってもよい。図8の実施例では、以下の通りである。
Figure 0005695203
Figure 0005695203
所与の値(x)のf(x)によって与えられるデータの曲線適合表現とg(x)によって与えられるデータの所望の位置との間の差が、データをウィンドウ内の中心にするために必要とされ得る、所与の値(x)に追加される必要がある訂正量となる。本実施例では、f(x)およびg(x)の両方が線形式であるため、以下の通りである。
Figure 0005695203
したがって、任意の所与の入力値(x)の訂正値は、x+2である。
図9を参照すると、f(x)およびg(x)対入力値(x)の別のプロットが、概して参照番号900によって示されている。この場合も同様に、f(x)は、データの曲線適合を表す関数であり、g(x)は、データの所望の位置を表す関数である。所望の平均位置は、f(x)内に円で指定され、一方、測定される位置または測定されるデータ値は、それぞれ、Xで指定される。f(x)の形状は、ピークと見なされてもよく、一方、ドループは、g(x)の下に伸びるように垂直軸に沿って反対に現れ得ることに留意する。この図では、15のハード閾値によって分離される16の見込まれるデータ値を有する4ビットのデータが表されるが、しかしながら、各ハード閾値は、7つの追加のソフト閾値によってさらに分割され、合計で128の見込まれる値をもたらす。したがって、本実施例では、本実施例のデータの平均位置を以下のタイプの二次方程式で表すことができることを除き、以前の図8の2ビットのデータの実施例と同様に、4ビットのデータが16の分布の対象である。
Figure 0005695203
したがって、g(x)は、上記の方程式(2)の形態のままであり、一方、f(x)は、所望のレベルの曲線適合を提供する任意の好適な形態を使用することができるため、これは要求される形態ではないが、二次形式の方程式(5)であってもよい。直後に記載されるように、多くの異なる方法で、この訂正の実現形態を実施することができる。
図10を参照すると、データの集合を曲線適合させ、訂正を適用するための方法が、概して参照番号1000によって示されている。本方法は、上述されてきた技法に従って方法に入力される各分布の平均値を判定することによって、1002で開始する。また、分散または任意の他の好適な関心のある統計値も判定されてもよいことを理解されたい。1004で、各分布の平均値と一致する曲線適合方程式を立てるために、曲線適合手順を使用することができる。1006で、例えば、図8および図9に関して上述されるように、データの曲線適合表現およびデータの所望の位置に基づき、各分布の各データ値の訂正量が判定される。1008で、方法は、それぞれ後補正ユニット70および前補正ユニット72を介して、後補正加算器60(図1)または前補正加算器62によって、訂正量を分布のデータに追加することを伴って終了する。これらのステップのいずれかもしくはすべてを、マイクロコントローラ50によって、または実施される機能用に特別に設計されたアプリケーション専用ハードウェアによって実施することができ、いずれかは、当業者が、本明細書で明らかにされてきた教示を考慮して容易に構成可能であることを理解されたい。
図1と併せて、依然として図10を参照すると、一実施形態では、マイクロコントローラ50は、データがメモリ20から一時メモリ103に転送された後、データ分布から、統計的平均値および曲線適合方程式を判定する。本実施形態は、曲線適合の異常な場合に関与する、追加の柔軟性を可能にすることができ、プログラム変数に基づき、平均値の統計的計算を調整することを可能にすることができる。データが一時メモリ203内にある間に、判定される訂正量をデータに追加することができる、またはプロセッサの負担を軽減し、全体的なシステム性能を改善するために、アプリケーション専用ハードウェア機能において、訂正量を追加することができる。
一実施形態では、それぞれがソフトウィンドウのうちの1つを表すことができる、値の多数の部分範囲内の値の分布または群のデータをフィルタリングすることによって、平均値判定を実施することができる。データを合計し、サンプルの数で除算することによって、各部分範囲内のすべてのデータの平均値が計算される。しかしながら、所与の分布の平均値を判定するために、例えば、変数範囲(単数または複数)およびオフセットの使用、算術平均の移動、算術平均の指数関数移動、および低域通過フィルタリング、ならびに他の周知の平均もしくは平均値計算を含む、任意の好適な技法が採用されてもよい。また、所与の算術平均化技法は、ハードウェアで一般的に容易に実現することができ、したがって、この機能をハードウェア機能として実現することによって、プロセッサの負担を取り除くことができることも理解されたい。ハードウェアの一実施形態では、データがメモリ20から読み取られる際に、加算器60がデータ分布を完全に入手可能になるとすぐに、または一時メモリ103に書き込まれるとすぐに、算術平均化結果を処理することができるように、算術平均化ユニットを、後補正加算器60とメモリインターフェース34との間のデータストリーム内に含むことができる。そのようなハードウェア実現形態では、直後にさらに記載されるように、計算に使用可能であると予測される分布の数に基づき、平均計算回路を重複させることができる。
ここで、概して参照番号1100によって示される、ハードウェア平均判定ユニットの一実施形態を図示するブロック図である図11に注目する。ハードウェア平均判定ユニットは、一例として、4ビットシステムで使用するために構成されるが、しかしながら、当業者は、本明細書の教示に基づき、そのようなユニットを、任意の所望の数のビットに容易に適合させることができる。4ビット平均判定ユニットでは、16の見込まれる値に対応する、予測される16の見込まれる分布が存在する。したがって、ハードウェアシステムは、図11に示され、適切に番号指定される、16の別個の平均範囲ユニットを含む。各平均範囲ユニット1〜16は、入力データ経路1102上の入力データ分布を受信し、それぞれが適切に番号指定される、関連する平均値レジスタ1〜16に平均値を提供する。一実施形態では、例えば、図7に見られるような各ソフトウィンドウに対応する平均範囲検出器1〜16の範囲は、連続的であり、重なりがなくてもよい。別の実施形態では、範囲は、少なくとも部分的に相互に重なることができる。見られるように、例えば、図7では、この重なりは、分布A〜Dの重なりを反映することができる。さらに別の実施形態では、範囲は、VTまたは(x)のいくつかの値が任意の分布の一部としての算術平均化から除外されるように、離間していてもよい。例えば、判定される平均値において、より高い相対精度が望まれる際に、後者を使用することができる。
図11と併せて図12を参照すると、図12は、概して参照番号1200によって示される、図11に見られる平均範囲ユニット1〜16の一実施形態を図示するブロック図である。分布範囲チェッカー1202によって、分布入力1102からすべての入力分布値が受信される。分布範囲チェッカーは、事実上、入力分布値に対する帯域通過フィルタであり、低レベル固定(x)値1210から高レベル固定値1212の指定される範囲内の値のみを通過させる。したがって、各分布範囲チェッカーの出力1214は、指定される低レベル1210の(x)と指定される高レベル1212の(x)との間、およびそれらを含む、指定される範囲内に含まれるデータ値のみを含むことができる。平均計算器1220は、範囲内のデータ値を受信し、受信した値の平均値を判定する。平均値は、平均値レジスタ1222によって記憶される。したがって、図11の平均判定ユニット1100は、それぞれの平均範囲ユニット1〜16の高/低レベル限界が設定される方法に基づき、関心のある各部分範囲の平均値を生成する。
再び上記の方程式(1)を参照すると、訂正量は、所望のデータと曲線適合データとの間で実施される、2つの方程式の間の差であってもよい。これは、一実施形態では、方程式の差として実現することができ、したがって、プロセッサによって実行される。別の実施形態では、到来データ分布を表すデータテーブルおよび標的値を表す所望のデータ位置テーブルを用いた、テーブル差異手法をとることができる。これらのテーブルのうちのいずれか1つまたは両方を、関連する方程式によって埋めることができる。曲線適合方程式の出力からテーブルを生成するために、少なくとも一部において、データ分布から取得される、直接測定される値を使用して、データテーブルを生成することができる。プロセッサによって、またはハードウェアのアプリケーション専用部片として実現することによって、テーブル差異演算を容易に実施することができる。当業者は、この開示全体を手にして、いずれかの手法を容易に構成することができることが熟考される。直下に見られるように、テーブルベースの手法は、非線形もしくは区分的に線形の関数、またはこれらの任意の所望の組み合わせに容易に適応することを理解されたい。
図13は、概して参照番号1300によって示される、テーブル差異ベースの回路の一実施形態のブロック図である。本実施形態では、回路1300は、入力線1304上で入手可能な到来配布ストリーム例1302に訂正量を適用するように構成される。非制限的な例として、入力ストリーム1302は、5、4、3、2、1、0、9、8、7、6の値のシーケンスを含む。テーブル1のエントリおよび値は、参照番号1306によって示され、各エントリは、そのデータ値によってインデックスが付けられる。つまり、所与のエントリ番号値のデータ値は、所与のエントリ番号に等しい。例えば、テーブルエントリ1のデータ値は、1に等しく、テーブルエントリ2のデータ値は、2に等しく、テーブルエントリ3のデータ値は、3に等しい等である。テーブル2は、テーブル1と同一のエントリ番号の集合に従う訂正値を明記する。非制限的な例として、訂正値の集合が、参照番号1308によって示される。テーブル2では、エントリ例0〜5は、それぞれ1に設定され、一方、エントリ6〜9は、それぞれ−1に設定される。本実施例では、訂正値の集合は、区分的に線形の関数を表し、テーブルのセグメントは、関数セグメントの区分的アレイを構成するように、柔軟な方法で、非線形関数を含む多くの形態の関数を表すことができることを理解されたい。さらに、訂正値は、正であっても負であってもよい。入力ストリーム1302は、加算器1312によって対応するテーブルエントリが追加され、入力ストリーム、テーブル1、およびテーブル2に基づき、出力ストリーム1314がもたらされるように、テーブル1およびテーブル2を同期して通過する。本実施例では、出力ストリーム値は、6、5、4、3、2、1、8、7、6、5である。図13のデータ値は、説明のため、および読者の理解を容易にするために、全番号として与えられているが、しかしながら、そのような値は、ハードまたはデータビットに付随するソフト情報を含む、任意の長さのデータ値を表すことができることを理解されたい。別の実施形態では、回路1300を、例えば、図1のマイクロコントローラ50等のプロセッサによって実行される関連する機能と共に、ソフトウェアで実現することができる。
図13と併せて図14を参照すると、図13のテーブル差異回路を初期化するための方法およびその動作の一実施形態が、概して参照番号1400によって示されている。1402で、方法は、例えば、1からテーブルの終わりまでの連続値等の任意の所望の値でテーブル1を埋めることによって開始する。1404で、テーブル2に、エントリ1からテーブルの終わりまでの各エントリに対応する訂正量が読み込まれる。1406で、テーブルが同期してアドレス指定されるように、テーブル1および2に到来データ1302がストリームされる。1408で、加算器1312が、提示される値を追加する。1410で、加算器1312が補正された出力1314をもたらすことによって、方法が終了する。本手法は、所望により、いずれかのテーブル内の値を再読み込みすることができるというように、非常に万能であることを理解されたい。例えば、テーブル2に、他のタイプの補正に関連することができる、または補正の第1のパスで満足する結果が取得されなかった場合に、元のデータに対する再試行を試みるために、異なる訂正量を再読み込みすることができる。別の実施形態では、テーブル2ならびに加算器1312が必要とされないように、テーブル1に訂正された出力値を読み込むことができる。つまり、テーブル1に、以下の値を読み込むことができる。
Figure 0005695203
図1および図15を参照すると、図15は、概して参照番号1500によって示される、訂正または補正値を判定するための方法の一実施形態を図示する、フロー図である。本方法は、例えば、例えばビットエラー率(BER)、平均二乗誤差(MSE)等のデコーダ44もしくはトレリスデコーダの品質メトリックスユニット260から受信される品質メトリックス、ブロックエラー訂正コードに基づく訂正カウント(CC)、平均計算器114からの分布の平均値、または分散計算器214からの分散に基づき、後補正ユニット70および前補正ユニット72に提供される訂正値を判定するために、例えば、図1の品質監視セクション64によって採用することができることを理解されたい。1502で、関心データの集合または分布が読み取られ、少なくとも1つの品質メトリックスの初期基礎値が判定される。1504で、時間経過、品質メトリックスの現在の値の基礎値との比較を伴うリードバック動作におけるデータ集合の劣化、ブロックエラー訂正コードにおけるブロック毎の訂正されたエラーの数、および少なくともデータ集合の潜在的劣化の指標である任意の他の好適な事象を含むことができる、トリガ事象が検出される。ある閾値との比較において、品質メトリックスを定期的に監視することができることを理解されたい。閾値が超えられる際に検出を行うことができる。1506で、データ集合に訂正値が適用される。例えば、判定される平均値に基づき、訂正値を選択することができる。一実施形態では、方法は、訂正値の見込まれる値の範囲にわたって増分的に段階的に進む。1508で、インプレースの訂正値を用いて、品質メトリックスが再判定される。1510で、参照のために、品質メトリックスの訂正値および関連する値が保存される。1512で、データ集合に別の訂正値が適用されるか否かに関する判定が行われる。そうであれば、動作は、ステップ1506に戻る。そうでなければ、動作は、基礎値に最も近似する品質メトリックスの値をもたらす最適訂正値が選択される、1514に進む。つまり、選択される値は、適用されるすべての訂正値の中での、データの品質における最高品質または最高改善を表す。1516で、訂正のために、選択された訂正値がデータに適用される。したがって、品質メトリックスの反復判定に基づき、訂正値を最適化することができる。
再び図1を参照すると、一例として、上述される不揮発性メモリデバイスとして、複数の半導体メモリダイ1600(それらのうちの2つが示されている)を含む、メモリ20が示されている。図16は、各メモリダイ1600の物理的配置の一実施形態の詳細を図式的に図示する。具体的に、各メモリダイ1600は、プレーン0およびプレーン1と指定される一対の領域で構成することができる。これらのプレーンのそれぞれは、消去ブロック0〜n−1と指定される、複数のnの消去ブロックで構成されている。
図16と併せて図17を参照すると、図17は、概して参照番号1700によって示される、各ダイ1600の消去ブロックの形成において使用するのに好適な消去ブロックの一実施形態を図式的に図示する。消去ブロック1700は、ワードライン0からワードラインm−1と指定されるワードラインに沿って配列される、複数のページを含む。各ワードラインは、複数のページで構成されている。本実施例では、各ワードラインは、2つのページを含む。ページは、合計でmのページが各消去ブロックを構成するように、ページ0からページm−1と指定される。本実施例では、ページは、点線の長方形内に示される偶数のページの第1のグループ1702、および同様に点線の長方形内に示される奇数ページの第2のグループ1704として配列される。上述されるように、メモリダイの様々な部分領域等のメモリダイの物理的配置に基づき、補正を適用することができる。好適な実施形態では、図16および図17によって図式的に図示される特長等のプレーン、消去ブロック、ワードライン、またはページに基づき、部分領域を選択することができる。
本発明の前述の説明は、例証および説明のために提示されてきた。包括的であること、または本発明を開示される厳密な形態(単数または複数)に限定することは意図されず、当業者が、特定の修正、置換、追加、およびその副次的組み合わせを認識するであろう上記の教示を踏まえて、他の修正および変形が可能であり得る。
結論
本開示は、ユーザデータを記憶するための複数のメモリセルで構成されている不揮発性メモリと共に使用するための装置および関連する方法を明らかにし、メモリセルは、集合プログラミング動作に応えて設定することができる物理的特性に基づき、ユーザデータを記憶するため、および読み取り動作において、ユーザデータを表す記憶データを読み取るために構成される。
一実施形態では、エンコーダは、読み取り動作によって、取り出しデータの関連集合が取得されるように、読み取り動作において、記憶データの集合を読み取り、取り出しデータは、記憶データの集合が不揮発性固体メモリに記憶され、それから読み取られた結果として、1つ以上の歪み機構に影響される。品質メトリックス生成器は、取り出しデータに応えて、品質メトリックスを生成し、品質メトリックスは、ユーザデータと関連する取り出しデータとの間の差に応えて値が変化する。品質監視セクションは、品質メトリックスの現在の値と閾値との間の関係を確立し、取り出しデータの品質の劣化を示す関係を監視し、監視に応えて、エラー応答事象を選択的に始動させる。
別の実施形態では、デコーダは、読み取り動作によって、取り出しデータの関連集合が取得されるように、読み取り動作において、記憶データの集合を読み取り、取り出しデータは、記憶データの集合が不揮発性固体メモリに記憶され、それから読み取られた結果として、1つ以上の歪み機構に影響される。品質メトリックス生成器は、取り出しデータに応えて、初期品質メトリックスを生成し、初期品質メトリックスは、ユーザデータと関連する取り出しデータとの間の差に応えて値が変化する。品質監視セクションは、修正された品質メトリックスが、取り出しデータの一連の訂正された集合のそれぞれ1つと関連付けられるように、取り出しデータの一連の訂正された集合を形成するために、取り出しデータの集合に一連の訂正値を反復的に追加し、少なくともメモリからの取り出しデータの続く集合を続いて訂正するための品質メトリックスにおける最高改善をもたらす、一連の訂正値のうちの特定の1つを選択する。一特長では、データを初期記憶することと関連付けられる品質メトリックスの基礎値を考慮して、選択される訂正値を識別することができる。
本発明の前述の説明は、例証および説明のために提示されてきた。包括的であること、または本発明を開示される厳密な形態(単数または複数)に限定することは意図されず、当業者が、特定の修正、置換、追加、およびその副次的組み合わせを認識するであろう上記の教示を踏まえて、他の修正および変形も可能であり得る。

Claims (31)

  1. ユーザデータを記憶するための複数のメモリセルで構成されている、不揮発性固体メモリと共に使用するための方法であって、前記メモリセルは、プログラミング動作に応えて設定することができる物理的特性に基づき、前記ユーザデータを記憶するため、および読み取り動作において、前記ユーザデータを表す前記記憶データを読み取るために構成され、前記方法は、
    前記読み取り動作によって、取り出しデータの関連集合が取得されるように、前記読み取り動作において、前記記憶データの集合を読み取ることであって、取り出しデータは、記憶データの集合が前記不揮発性固体メモリに記憶され、それから読み取られた結果として、1つ以上の歪み機構に影響される、ことと、
    前記取り出しデータに応えて、前記取り出しデータの特定のデータ分解能より大きい読み取り分解能における前記物理的特性に部分的に基づき品質メトリックスを生成する、ことと、
    前記品質メトリックの現在の値の、閾値で規定されるウィンドウ内の分布の様子をヒストグラムとして取得することによって、前記品質メトリックスの現在の値と前記閾値との間の関係を確立することと、
    前記取り出しデータの品質の劣化を示す前記関係を監視し、前記監視することに応えて、エラー応答事象を選択的に始動させ、前記分布の平均値が前記ウィンドウの中心に来るように、データに修正を行うることと、
    を含む、方法。
  2. 前記エラー応答事象を始動させることは、少なくとも前記プログラミング動作において以前に記憶された前記ユーザデータの潜在的損失を示す警告を生成し、前記警告を前記メモリのユーザに向けることを含む、請求項1に記載の方法。
  3. 前記取り出される読み取りデータから前記品質メトリックスを得るための数学的統計として、前記品質メトリックスを選択することを含む、請求項1に記載の方法。
  4. 前記取り出しデータの平均値として、前記数学的統計を実行することを含む、請求項3に記載の方法。
  5. 前記取り出される読み取りデータの標準偏差として、前記数学的統計を実行することを含む、請求項3に記載の方法。
  6. 前記ユーザデータは、符号化形態で前記メモリに記憶され、前記取り出される読み取りデータのビットエラー率として、前記品質メトリックスを判定することを含む、請求項3に記載の方法。
  7. 前記ユーザデータは、符号化形態で前記メモリに記憶され、前記取り出しデータに応えて、ビタビトレリスのブランチメトリックスに基づき、前記品質メトリックスを判定することを含む、請求項3に記載の方法。
  8. 前記ブランチメトリックスは、前記取り出しデータ内に現れるシーケンスの期待値と前記取り出しデータ内に現れる前記シーケンスの実際の値との間の差に基づく、平均二乗誤差項である、請求項7に記載の方法。
  9. 前記閾値を、所定の最大誤差量として設定することを含む、請求項1に記載の方法。
  10. 前記読み取ることの前に、
    前記ユーザデータを前記メモリセルに初期記憶することと、
    前記ユーザデータを初期記憶することと関連付けられる前記品質メトリックスの基礎値を判定することと、
    前記閾値との比較のために、前記品質メトリックスの前記現在の値と前記基礎値との間の差として前記関係を確立し、前記差が前記閾値を超えるのに応えて、前記エラー応答事象を選択的に始動させることと、
    を含む、請求項1に記載の方法。
  11. 前記エラー応答事象は、訂正の大きさを有する訂正量を、取り出しデータの前記関連集合を構成する各データ値に追加することを含む、請求項10に記載の方法。
  12. 前記品質メトリックスと前記基礎値との間の前記差の増加に応えて、前記訂正の大きさを増加させることを含む、請求項11に記載の方法。
  13. 前記関係を確立することは、前記品質メトリックスの前記現在の値を前記閾値と比較し、前記比較において、前記現在の値が前記閾値を超えるのに応えて、前記エラー応答事象を選択的に始動させることを含む、請求項1に記載の方法。
  14. 前記読み取ることの前に、前記物理的特性が、ハード閾値の配列によって分離される特定の数の領域に分割され、前記読み取ることが、前記関連する取り出しデータ内の各データ値と関連付けられるソフトビットの集合を生成するように、前記ソフトビットが前記ハード閾値の間のどこに各データ値があるかを示すよう、前記特定のデータ分解能より大きい読み取り分解能で、前記物理的特性の値を検出するように、セル毎の特定の複数のビット、および特定のデータ分解能に基づき、前記ユーザデータを前記メモリセルに初期書き込みし、前記ソフトビットに基づき、前記品質メトリックスを生成することを含む、請求項1に記載の方法。
  15. 前記物理的特性の範囲は、隣接する前記ハード閾値の間に延在するハードウィンドウを画定し、読み取ることは、各ハードウィンドウと関連付けられる複数のソフトウィンドウを確立するために、ソフト閾値の配列を各ハードウィンドウにわたって分布させることを含み、それぞれのソフトウィンドウは、1つのソフトビットを定義し、前記読み取ることは、前記ソフトウィンドウのうちの1つ内に含まれる前記物理的特性の前記値を識別するのに十分な分解能で、前記物理的特性の前記データ値を確立する、請求項1に記載の方法。
  16. 1つの部分範囲が各ソフトウィンドウに対応するように、部分範囲の集合を前記物理的特性に割り当てることと、
    前記判定することによって使用するために、前記取り出しデータの各データ値が、前記部分範囲のうちの1つに割り当てられるように、前記部分範囲に基づき、取り出しデータの前記集合をフィルタリングすることと、
    を含む、請求項15に記載の方法。
  17. 記憶データの前記集合を読み取ることは、(i)データ値の前記集合が、前記ハードウィンドウにわたって離間されるように、前記メモリセルのうちの少なくとも所与の1つを読み取ることと関連付けられる、データ値の集合を形成するように、各データ値を回収することと、(ii)前記所与のメモリセルの前記物理パラメータの全範囲にわたるデータ値の前記集合の全体的な分布を識別することと、(iii)前記ソフトビットおよび前記全体的な分布に基づき、取り出しデータの前記関連集合の少なくとも1つの訂正値を判定することと、を含む、請求項15に記載の方法。
  18. 前記識別することは、少なくとも1つの測定分布式を立てるために、データ値の前記集合を曲線適合させることを含み、
    判定することは、前記訂正値を確立するために、前記歪み機構の不在下での正確な所望の分布式を確立し、前記測定分布式を前記所望の分布方程式と比較することを含む、
    請求項17に記載の方法。
  19. 前記メモリは、ページに構造化され、ページ毎基準以下で記憶データの前記集合を取得するように、前記読み取り動作を実施する、請求項17に記載の方法。
  20. 各ページは、複数のワードラインとして編成され、前記読み取り動作は、ワードライン毎基準で実施される、請求項19に記載の方法。
  21. 前記全体的な分布を識別することは、前記ソフトビットによって特徴付けられる、各ハードウィンドウにわたるデータ値の前記集合の部分分布を判定し、各ハードウィンドウの部分分布平均誤差を判定し、すべての前記ハードウィンドウの部分分布平均誤差の平均誤差の全体的な平均に基づき、前記訂正を実施することを含む、請求項17に記載の方法。
  22. 前記全体的な分布を識別することは、前記ソフトビットによって特徴付けられる、各ハードウィンドウにわたるデータ値の前記集合の部分分布を判定し、そのハードウィンドウの前記部分分布平均誤差に基づき、各ハードウィンドウに対して前記訂正を実施することを含む、請求項17に記載の方法。
  23. 前記メモリは、メモリダイエリアを有するメモリダイによって形成され、記憶データの前記集合を読み取ることは、(i)少なくとも一部において、前記メモリダイの物理的配置に基づき、前記メモリダイエリアの複数のタイプの補正部分領域タイプを識別することと、(ii)各部分領域タイプについて、前記記憶データの異なる集合を回収することと、を含み、(iii)判定することは、各部分領域タイプの異なる訂正値を別個に確立することを含む、請求項15に記載の方法。
  24. 前記メモリは、供給電圧値を使用して動作され、前記メモリは、動作温度で動作し、前記方法は、前記供給電圧値の変化、前記動作温度の変化、および所定の時間経過のうちの少なくとも1つに基づき、前記品質メトリックスの再測定を生成することをさらに始動させることを含む、請求項1に記載の方法。
  25. 前記ユーザデータは、前記メモリに符号化形態で記憶され、
    前記読み取り中に、ブロック訂正コードに従って、記憶データの前記集合を訂正し、復号化することと、
    訂正が行われている前記ユーザデータの現在のブロックの訂正カウントを維持することと、
    前記訂正カウントの特定の値に基づき、前記生成することを始動させることと、
    を含む、請求項1に記載の方法。
  26. ユーザデータを記憶するための複数のメモリセルで構成されている不揮発性固体メモリと共に使用するための装置であって、前記メモリセルは、プログラミング動作に応えて設定することができる物理的特性に基づき、前記ユーザデータを記憶するため、および読み取り動作において、前記ユーザデータを表す前記記憶データを読み取るために構成され、
    前記装置は、
    前記読み取り動作によって、取り出しデータの関連集合が取得されるように、前記読み取り動作において、前記記憶データの集合を読み取るためデコーダであって、取り出しデータは、記憶データの前記集合が前記不揮発性固体メモリに記憶され、それから読み取られた結果として、1つ以上の歪み機構に影響される、デコーダと、
    前記取り出しデータに応えて、前記取り出しデータのデータ分解能より大きい読み取り分解能における物理的特性間の差を示す品質メトリックスを生成するための品質メトリックス生成器であって、品質メトリックスは、前記ユーザデータと前記関連する取り出しデータとの間の差に応えて値が変化する品質メトリックス生成器と、
    前記品質メトリックの現在の値の、閾値で規定されるウィンドウ内の分布の様子をヒストグラムとして取得することによって、前記品質メトリックスの現在の値と閾値との間の関係を確立するため、および前記取り出しデータの前記品質の劣化を示す前記関係を監視し、前記監視することに応えて、エラー応答事象を選択的に始動させ、前記分布の平均値が前記ウィンドウの中心に来るように、データに修正を行うるための品質監視セクションと、
    を備える、装置。
  27. ユーザデータを記憶するための複数のメモリセルで構成されている不揮発性固体メモリと共に使用するための方法であって、前記メモリセルは、プログラミング動作に応えて設定することができる物理的特性に基づき、前記ユーザデータを記憶するため、および読み取り動作において、前記ユーザデータを表す前記記憶データを読み取るために構成され、
    前記方法は、
    前記読み取り動作によって、取り出しデータの関連集合が取得されるように、前記読み取り動作において、前記記憶データの集合を読み取ることであって、取り出しデータは、記憶データの前記集合が、前記不揮発性固体メモリに記憶され、それから読み取られた結果として、1つ以上の歪み機構に影響される、ことと、
    前記取り出しデータに応えて、前記取り出しデータの特定のデータ分解能より大きい読み取り分解能における前記ユーザデータに対応する前記物理的特性を示す初期品質メトリックスをもたらすことであって、初期品質メトリックスは、前記ユーザデータと前記関連する取り出しデータとの間の差に応えて値が変化する、ことと、
    前記初期品質メトリックの現在の値の、閾値で規定されるウィンドウ内の分布の様子をヒストグラムとして取得し、前記分布の平均値が前記ウィンドウの中心に来るように、データに修正を行うために、取り出しデータの第1の訂正された集合を形成するために、第1の訂正値を取り出しデータの前記集合に追加することと、
    取り出しデータの前記第1の訂正された集合に基づき、第1の訂正された品質メトリックスを生成することであって、第1の訂正された品質メトリックスは、前記ユーザデータと取り出しデータの前記第1の訂正された集合との間の差に応えて値が変化する、ことと、
    第1の品質差値をもたらすために、前記第1の訂正された品質メトリックスを前記初期品質メトリックスと比較することと、
    前記品質メトリックの現在の値の、閾値で規定されるウィンドウ内の分布の様子をヒストグラムとして取得し、前記分布の平均値が前記ウィンドウの中心に来るように、データに修正を行うために、取り出しデータの第2の訂正された集合を形成するために、前記第1の訂正値とは異なる第2の訂正値を、取り出しデータの前記集合に追加することと、
    取り出しデータの前記第2の訂正された集合に基づき、第2の訂正された品質メトリックスを生成することであって、第2の訂正された品質メトリックスは、前記ユーザデータと取り出しデータの前記第2の訂正された集合との間の差に応えて値が変化する、ことと、
    第2の品質差値を生成するために、前記第2の訂正された品質メトリックスを前記初期品質メトリックスと比較することと、
    前記第1の品質差値および前記第2の品質差値のうちの低い方を、現在の最低品質差値として選択し、その現在の最低品質差値の関連する現在の訂正値を、少なくとも前記メモリからの取り出しデータの続く集合を続いて訂正するための現在の好ましい訂正値として割り当てることと、
    を含む、方法。
  28. 取り出しデータの追加の訂正された集合を形成するために、前記第1の訂正値および前記第2の訂正値とは異なる追加の訂正値を、取り出しデータの前記集合に追加することと、
    取り出しデータの前記追加の訂正された集合に基づき、追加の訂正された品質メトリックスを生成することであって、追加の訂正された品質メトリックスは、前記ユーザデータと取り出しデータの前記追加の訂正された集合との間の差に応えて値が変化する、ことと、
    追加の品質差値をもたらすために、前記第2の訂正された品質メトリックスを前記初期品質メトリックスと比較することと、
    前記第1の品質差値、前記第2の品質差値、および前記追加の品質差値のうちの最低の1つを現在の最低品質差値として選択し、その現在の最低品質差値の前記関連する現在の訂正値を、取り出しデータの前記追加の集合を続いて訂正するための前記現在の好ましい訂正値として割り当てることと、
    をさらに含む、請求項27に記載の方法。
  29. 一連のさらなる追加の訂正値に対して、請求項28の追加すること、生成すること、比較すること、および選択することを反復的に繰り返し、すべての前記訂正値の中から前記現在の最低品質差値を選択することを含む、請求項28に記載の方法。
  30. ユーザデータを記憶するための複数のメモリセルで構成されている不揮発性固体メモリと共に使用するための方法であって、前記メモリセルは、プログラミング動作に応えて設定することができる物理的特性に基づき、前記ユーザデータを記憶するため、および読み取り動作において、前記ユーザデータを表す前記記憶データを読み取るために構成され、
    前記方法は、
    前記読み取り動作によって、取り出しデータの関連集合が取得されるように、前記読み取り動作において、前記記憶データの集合を読み取ることであって、取り出しデータは、記憶データの前記集合が前記不揮発性固体メモリに記憶され、それから読み取られた結果として、1つ以上の歪み機構に影響される、ことと、
    前記取り出しデータに応えて、前記特定のデータ分解能より大きい読み取り分解能における前記物理的特性に基づき初期品質メトリックスを生成することであって、初期品質メトリックスは、前記ユーザデータと前記関連する取り出しデータとの間の差に応えて値が変化する、ことと、
    前記品質メトリックの現在の値の、閾値で規定されるウィンドウ内の分布の様子をヒストグラムとして取得し、前記分布の平均値が前記ウィンドウの中心に来るように、データに修正を行うために、修正された品質メトリックスが、取り出しデータの前記一連の訂正された集合のそれぞれ1つと関連付けられるように、取り出しデータの一連の訂正された集合を形成するために、一連の訂正値を取り出しデータの前記集合に反復的に追加することと、
    少なくとも前記メモリから取り出しデータの続く集合を続いて訂正するための、前記品質メトリックスの前記最高改善をもたらす、前記一連の訂正値のうちの特定の1つを選択することと、
    を含む、方法。
  31. ユーザデータを記憶するための複数のメモリセルで構成されている不揮発性固体メモリと共に使用するための装置であって、前記メモリセルは、プログラミング動作に応えて設定することができる物理的特性に基づき、前記ユーザデータを記憶するため、および読み取り動作において、前記ユーザデータを表す前記記憶データを読み取るために構成され、
    前記装置は、
    前記読み取り動作によって、取り出しデータの関連集合が取得されるように、前記読み取り動作において、前記記憶データの集合を読み取るためのデコーダであって、取り出しデータは、記憶データの前記集合が前記不揮発性固体メモリに記憶され、それから読み取られた結果として、1つ以上の歪み機構に影響される、デコーダと、
    前記取り出しデータに応えて、初期品質メトリックスを生成するための品質メトリックス生成器であって、初期品質メトリックスは、前記ユーザデータと前記関連する取り出しデータとの間の差に応えて値が変化し、前記物理的特性に関連したハードウィンドウは、前記取り出しデータのデータ分解能に関連したソフトウィンドウより大きい読み取り分解能である品質メトリックス生成器と、
    前記品質メトリックの現在の値の、閾値で規定されるウィンドウ内の分布の様子をヒストグラムとして取得し、前記分布の平均値が前記ウィンドウの中心に来るように、データに修正を行うために、修正された品質メトリックスが、取り出しデータの前記一連の訂正された集合のそれぞれ1つと関連付けられるように、取り出しデータの一連の訂正された集合を形成するために、一連の訂正値を取り出しデータの前記集合に反復的に追加するため、および少なくとも前記メモリから取り出しデータの続く集合を続いて訂正するための、前記品質メトリックスの前記最高改善をもたらす、前記一連の訂正値のうちの特定の1つを選択するための品質監視セクションと、
    を備える、装置。
JP2013530172A 2010-09-23 2011-09-08 メモリ品質監視ベースの補正方法および装置 Active JP5695203B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/888,585 2010-09-23
US12/888,585 US8499227B2 (en) 2010-09-23 2010-09-23 Memory quality monitor based compensation method and apparatus
PCT/US2011/050801 WO2012039946A2 (en) 2010-09-23 2011-09-08 Memory quality monitor based compensation method and apparatus

Publications (2)

Publication Number Publication Date
JP2013539120A JP2013539120A (ja) 2013-10-17
JP5695203B2 true JP5695203B2 (ja) 2015-04-01

Family

ID=45871944

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013530172A Active JP5695203B2 (ja) 2010-09-23 2011-09-08 メモリ品質監視ベースの補正方法および装置

Country Status (6)

Country Link
US (3) US8499227B2 (ja)
EP (1) EP2619673B1 (ja)
JP (1) JP5695203B2 (ja)
KR (1) KR101483383B1 (ja)
CN (1) CN103210376B (ja)
WO (1) WO2012039946A2 (ja)

Families Citing this family (80)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101506655B1 (ko) * 2008-05-15 2015-03-30 삼성전자주식회사 메모리 장치 및 메모리 데이터 오류 관리 방법
US8499227B2 (en) * 2010-09-23 2013-07-30 Micron Technology, Inc. Memory quality monitor based compensation method and apparatus
US8639865B2 (en) * 2011-10-25 2014-01-28 Micron Technology, Inc. Method and apparatus for calibrating a memory interface with a number of data patterns
KR20130049332A (ko) * 2011-11-04 2013-05-14 삼성전자주식회사 메모리 시스템 및 그것의 동작 방법
EP2595321A1 (en) * 2011-11-16 2013-05-22 MStar Semiconductor, Inc. Tail-biting convolutional decoding apparatus and decoding method
US8811076B2 (en) 2012-07-30 2014-08-19 Sandisk Technologies Inc. Systems and methods of updating read voltages
US8694847B2 (en) * 2012-08-28 2014-04-08 Lsi Corporation Systems and methods for sector quality determination in a data processing system
US8751915B2 (en) * 2012-08-28 2014-06-10 Lsi Corporation Systems and methods for selectable positive feedback data processing
US8874992B2 (en) 2012-08-31 2014-10-28 Sandisk Technologies Inc. Systems and methods to initiate updating of reference voltages
US9519531B2 (en) * 2012-11-27 2016-12-13 Samsung Electronics Co., Ltd. Memory devices and memory systems having the same
KR102076067B1 (ko) * 2012-11-27 2020-02-11 삼성전자주식회사 메모리 모듈 및 메모리 시스템
US9842660B1 (en) * 2012-12-28 2017-12-12 Virident Systems, Llc System and method to improve enterprise reliability through tracking I/O performance metrics in non-volatile random access memory
US9286002B1 (en) 2012-12-28 2016-03-15 Virident Systems Inc. Dynamic restriping in nonvolatile memory systems
US9214959B2 (en) 2013-02-19 2015-12-15 Avago Technologies General Ip (Singapore) Pte. Ltd. Systems and methods for skip layer data decoding
US9021188B1 (en) 2013-03-15 2015-04-28 Virident Systems Inc. Small block write operations in non-volatile memory systems
US10073626B2 (en) 2013-03-15 2018-09-11 Virident Systems, Llc Managing the write performance of an asymmetric memory system
US9135164B2 (en) 2013-03-15 2015-09-15 Virident Systems Inc. Synchronous mirroring in non-volatile memory systems
US20140317467A1 (en) * 2013-04-22 2014-10-23 Storart Technology Co., Ltd. Method of detecting and correcting errors with bch engines for flash storage system
US9274889B2 (en) 2013-05-29 2016-03-01 Avago Technologies General Ip (Singapore) Pte. Ltd. Systems and methods for data processing using global iteration result reuse
US8959414B2 (en) 2013-06-13 2015-02-17 Lsi Corporation Systems and methods for hybrid layer data decoding
TWI521513B (zh) 2013-06-28 2016-02-11 群聯電子股份有限公司 讀取電壓設定方法、控制電路與記憶體儲存裝置
US20150012801A1 (en) * 2013-07-03 2015-01-08 Chih-Nan YEN Method of detecting and correcting errors with bch and ldpc engines for flash storage systems
US8917466B1 (en) 2013-07-17 2014-12-23 Lsi Corporation Systems and methods for governing in-flight data sets in a data processing system
US8817404B1 (en) 2013-07-18 2014-08-26 Lsi Corporation Systems and methods for data processing control
KR102065664B1 (ko) 2013-08-09 2020-01-13 삼성전자 주식회사 메모리 장치의 열화 상태 추정 방법 및 이를 이용한 메모리 시스템에서의 웨어 레벨링 방법
US9196299B2 (en) 2013-08-23 2015-11-24 Avago Technologies General Ip (Singapore) Pte. Ltd. Systems and methods for enhanced data encoding and decoding
US8908307B1 (en) 2013-08-23 2014-12-09 Lsi Corporation Systems and methods for hard disk drive region based data encoding
US9400797B2 (en) 2013-09-17 2016-07-26 Avago Technologies General Ip (Singapore) Pte. Ltd. Systems and methods for recovered data stitching
US9219503B2 (en) 2013-10-16 2015-12-22 Avago Technologies General Ip (Singapore) Pte. Ltd. Systems and methods for multi-algorithm concatenation encoding and decoding
US9489256B2 (en) 2013-11-07 2016-11-08 Seagate Technology Llc Device quality metrics using unsatisfied parity checks
US9323606B2 (en) 2013-11-21 2016-04-26 Avago Technologies General Ip (Singapore) Pte. Ltd. Systems and methods for FAID follower decoding
RU2014104571A (ru) 2014-02-10 2015-08-20 ЭлЭсАй Корпорейшн Системы и способы для эффективного с точки зрения площади кодирования данных
US9378765B2 (en) 2014-04-03 2016-06-28 Seagate Technology Llc Systems and methods for differential message scaling in a decoding process
JP2015204126A (ja) 2014-04-16 2015-11-16 株式会社東芝 半導体記憶装置
US10402319B2 (en) 2014-07-25 2019-09-03 Micron Technology, Inc. Apparatuses and methods for concurrently accessing different memory planes of a memory
US9594615B2 (en) 2014-09-30 2017-03-14 Apple Inc. Estimating flash quality using selective error emphasis
DE102014115885B4 (de) * 2014-10-31 2018-03-08 Infineon Technologies Ag Funktionstüchtigkeitszustand von nicht-flüchtigem Speicher
US10089589B2 (en) * 2015-01-30 2018-10-02 Sap Se Intelligent threshold editor
US9842662B2 (en) * 2015-02-16 2017-12-12 Texas Instruments Incorporated Screening for data retention loss in ferroelectric memories
US10496277B1 (en) * 2015-12-30 2019-12-03 EMC IP Holding Company LLC Method, apparatus and computer program product for storing data storage metrics
US9904594B2 (en) 2016-04-15 2018-02-27 Micron Technology, Inc. Monitoring error correction operations performed in memory
US10282111B2 (en) * 2016-07-29 2019-05-07 Western Digital Technologies, Inc. Adaptive wear levelling
US10309838B2 (en) * 2016-09-08 2019-06-04 Qualcomm Incorporated Temporal temperature sensor position offset error correction
US11030515B2 (en) * 2016-12-30 2021-06-08 Google Llc Determining semantically diverse responses for providing as suggestions for inclusion in electronic communications
US10402272B2 (en) * 2017-05-25 2019-09-03 Micron Technology, Inc. Memory device with dynamic programming calibration
US10452480B2 (en) 2017-05-25 2019-10-22 Micron Technology, Inc. Memory device with dynamic processing level calibration
US10140040B1 (en) 2017-05-25 2018-11-27 Micron Technology, Inc. Memory device with dynamic program-verify voltage calibration
US10403372B2 (en) * 2017-08-29 2019-09-03 SK Hynix Inc. Memory system with adaptive read-threshold scheme and method of operating such memory system
US10147466B1 (en) 2017-09-26 2018-12-04 Micron Technology, Inc. Voltage reference computations for memory decision feedback equalizers
US10579473B2 (en) * 2017-09-29 2020-03-03 Intel Corporation Mitigating silent data corruption in error control coding
US10910061B2 (en) * 2018-03-14 2021-02-02 Silicon Storage Technology, Inc. Method and apparatus for programming analog neural memory in a deep learning artificial neural network
KR102544144B1 (ko) * 2018-03-26 2023-06-16 에스케이하이닉스 주식회사 전자 장치, 이를 포함하는 메모리 시스템 및 이의 동작 방법
US10664194B2 (en) 2018-05-16 2020-05-26 Micron Technology, Inc. Memory system with dynamic calibration using a variable adjustment mechanism
US10566063B2 (en) 2018-05-16 2020-02-18 Micron Technology, Inc. Memory system with dynamic calibration using a trim management mechanism
US10990466B2 (en) 2018-06-20 2021-04-27 Micron Technology, Inc. Memory sub-system with dynamic calibration using component-based function(s)
US11188416B2 (en) 2018-07-12 2021-11-30 Micron Technology, Inc. Enhanced block management for a memory sub-system
US10761754B2 (en) * 2018-08-07 2020-09-01 Micron Technology, Inc. Adjustment of a pre-read operation associated with a write operation
US11137808B2 (en) * 2018-08-31 2021-10-05 Micron Technology, Inc. Temperature compensation in a memory system
US10629278B2 (en) 2018-09-05 2020-04-21 Micron Technology, Inc. First-pass dynamic program targeting (DPT)
US10658066B2 (en) 2018-09-05 2020-05-19 Micron Technology, Inc. First-pass continuous read level calibration
DE102018216543B3 (de) * 2018-09-27 2020-01-02 Robert Bosch Gmbh Verfahren zum Kalibrieren eines Sensorsystems
US10936246B2 (en) 2018-10-10 2021-03-02 Micron Technology, Inc. Dynamic background scan optimization in a memory sub-system
US10706935B2 (en) 2018-12-10 2020-07-07 Micron Technology, Inc. Read window budget based dynamic program step characteristic adjustment
US10754583B2 (en) 2018-12-10 2020-08-25 Micron Technology, Inc. Level width based dynamic program step characteristic adjustment
US11211131B2 (en) 2018-12-10 2021-12-28 Micron Technology, Inc. Adjusting program effective time using program step characteristics
US10970160B2 (en) 2018-12-10 2021-04-06 Micron Technology, Inc. Bit error rate based dynamic program step characteristic adjustment
US10698636B1 (en) 2018-12-10 2020-06-30 Micron Technology, Inc. Trigger margin based dynamic program step characteristic adjustment
US10885975B2 (en) 2019-03-07 2021-01-05 Micron Technology, Inc. Dragging first pass read level thresholds based on changes in second pass read level thresholds
US10748625B1 (en) 2019-03-07 2020-08-18 Micron Technology, Inc. Dynamic programing of valley margins of a memory cell
US11119848B2 (en) 2019-07-10 2021-09-14 Micron Technology, Inc. Logic based read sample offset in a memory sub system
US11119697B2 (en) * 2019-07-12 2021-09-14 Micron Technology, Inc. Read voltage management based on write-to-read time difference
CN110808003B (zh) * 2019-09-06 2021-01-15 华为技术有限公司 一种补偿方法及电子设备
US11403031B2 (en) * 2019-11-13 2022-08-02 Microsoft Technology Licensing, Llc Systems and methods for encoding and decoding data
US11361825B2 (en) 2019-12-18 2022-06-14 Micron Technology, Inc. Dynamic program erase targeting with bit error rate
US11907570B2 (en) * 2020-02-25 2024-02-20 Micron Technology, Inc. Predictive media management for read disturb
US12009034B2 (en) 2020-03-02 2024-06-11 Micron Technology, Inc. Classification of error rate of data retrieved from memory cells
US11081200B1 (en) * 2020-05-07 2021-08-03 Micron Technology, Inc. Intelligent proactive responses to operations to read data from memory cells
US11734094B2 (en) * 2020-08-19 2023-08-22 Micron Technology, Inc. Memory component quality statistics
EP3958266A1 (en) * 2020-08-21 2022-02-23 Commissariat à l'Energie Atomique et aux Energies Alternatives Method for determining target resistance levels for a resistive memory cell, and associated memory device
US11593197B2 (en) * 2020-12-23 2023-02-28 Samsung Electronics Co., Ltd. Storage device with data quality metric and selectable data recovery scheme

Family Cites Families (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5790570A (en) 1996-08-30 1998-08-04 Cornell Research Foundation, Inc. Concatenated trellis coded modulation and linear block codes
US6034996A (en) 1997-06-19 2000-03-07 Globespan, Inc. System and method for concatenating reed-solomon and trellis codes
US6567475B1 (en) 1998-12-29 2003-05-20 Ericsson Inc. Method and system for the transmission, reception and processing of 4-level and 8-level signaling symbols
US7142612B2 (en) 2001-11-16 2006-11-28 Rambus, Inc. Method and apparatus for multi-level signaling
FR2840477B1 (fr) 2002-06-03 2005-02-04 Nortel Networks Ltd Procede d'adaptation de liens radio et unite de controle mettant en oeuvre le procede
US7359313B2 (en) 2002-06-24 2008-04-15 Agere Systems Inc. Space-time bit-interleaved coded modulation for wideband transmission
US7379505B2 (en) 2003-02-13 2008-05-27 Broadcom Corporation Method and apparatus for performing trellis coded modulation of signals for transmission on a TDMA channel of a cable network
CN101529525B (zh) * 2005-10-17 2016-03-30 特拉维夫大学拉莫特有限公司 每单元多位的闪速存储器的概率错误校正
US8055979B2 (en) * 2006-01-20 2011-11-08 Marvell World Trade Ltd. Flash memory with coding and signal processing
CN103258572B (zh) * 2006-05-12 2016-12-07 苹果公司 存储设备中的失真估计和消除
CN101512661B (zh) * 2006-05-12 2013-04-24 苹果公司 用于存储设备的失真估计与纠错编码的组合
MX2009001345A (es) * 2006-08-05 2009-07-17 Benhov Gmbh Llc Elemento y metodo de almacenamiento de estado solido.
TWI360126B (en) * 2006-09-28 2012-03-11 Sandisk Corp Nonvolatile memory with adaptive operations and me
US8171380B2 (en) * 2006-10-10 2012-05-01 Marvell World Trade Ltd. Adaptive systems and methods for storing and retrieving data to and from memory cells
JP5177991B2 (ja) * 2006-10-25 2013-04-10 株式会社東芝 不揮発性半導体記憶装置
JP2008108351A (ja) 2006-10-25 2008-05-08 D & M Holdings Inc 光ディスク再生装置
KR100907218B1 (ko) * 2007-03-28 2009-07-10 삼성전자주식회사 읽기 레벨 제어 장치 및 그 방법
US7577036B2 (en) * 2007-05-02 2009-08-18 Micron Technology, Inc. Non-volatile multilevel memory cells with data read of reference cells
US8051358B2 (en) 2007-07-06 2011-11-01 Micron Technology, Inc. Error recovery storage along a nand-flash string
KR101425958B1 (ko) * 2007-09-06 2014-08-04 삼성전자주식회사 멀티-비트 데이터를 저장하는 메모리 시스템 및 그것의읽기 방법
US8078918B2 (en) * 2008-02-07 2011-12-13 Siliconsystems, Inc. Solid state storage subsystem that maintains and provides access to data reflective of a failure risk
US8627165B2 (en) 2008-03-24 2014-01-07 Micron Technology, Inc. Bitwise operations and apparatus in a multi-level system
US8407559B2 (en) * 2008-06-20 2013-03-26 Marvell World Trade Ltd. Monitoring memory
JP5590620B2 (ja) 2008-09-30 2014-09-17 エルエスアイ コーポレーション メモリ・デバイスの軟データ生成の方法および装置
US8499227B2 (en) * 2010-09-23 2013-07-30 Micron Technology, Inc. Memory quality monitor based compensation method and apparatus

Also Published As

Publication number Publication date
US8499227B2 (en) 2013-07-30
US20120079353A1 (en) 2012-03-29
US9081717B2 (en) 2015-07-14
EP2619673A4 (en) 2017-05-03
CN103210376A (zh) 2013-07-17
KR20130096734A (ko) 2013-08-30
EP2619673B1 (en) 2019-05-22
US8862969B2 (en) 2014-10-14
EP2619673A2 (en) 2013-07-31
CN103210376B (zh) 2015-11-25
US20130290811A1 (en) 2013-10-31
JP2013539120A (ja) 2013-10-17
US20140380123A1 (en) 2014-12-25
WO2012039946A2 (en) 2012-03-29
KR101483383B1 (ko) 2015-01-14
WO2012039946A3 (en) 2012-05-31

Similar Documents

Publication Publication Date Title
JP5695203B2 (ja) メモリ品質監視ベースの補正方法および装置
US20200160920A1 (en) Calibrating Optimal Read Levels
KR102315294B1 (ko) 솔리드-스테이트 스토리지 디바이스들에서의 판독 전압 계산
US8078940B2 (en) Non-volatile semiconductor memory device
JP6218195B2 (ja) フラッシュ性能を増大させる読み出しレベルグループ化
US7877564B2 (en) Memory configuration and method for calibrating read/write data based on performance characteristics of the memory configuration
US9176814B2 (en) Decoding in solid state memory devices
TWI613661B (zh) 用於補償快閃裝置之標稱電壓變化之系統及方法
CN111538620A (zh) 存储器装置的鲁棒检测方法
US9594615B2 (en) Estimating flash quality using selective error emphasis
US10613927B1 (en) System and method for improved memory error rate estimation
Tokutomi et al. Advanced error-prediction LDPC with temperature compensation for highly reliable SSDs

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20140225

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20140521

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20140521

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140528

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20140528

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20140603

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20140805

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20141204

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20141204

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20141212

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20150205

R150 Certificate of patent or registration of utility model

Ref document number: 5695203

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

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