JP2016517609A - メモリデバイスにおけるエラー訂正動作 - Google Patents

メモリデバイスにおけるエラー訂正動作 Download PDF

Info

Publication number
JP2016517609A
JP2016517609A JP2016502476A JP2016502476A JP2016517609A JP 2016517609 A JP2016517609 A JP 2016517609A JP 2016502476 A JP2016502476 A JP 2016502476A JP 2016502476 A JP2016502476 A JP 2016502476A JP 2016517609 A JP2016517609 A JP 2016517609A
Authority
JP
Japan
Prior art keywords
memory
ecc
user data
data
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
JP2016502476A
Other languages
English (en)
Other versions
JP6127200B2 (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 JP2016517609A publication Critical patent/JP2016517609A/ja
Application granted granted Critical
Publication of JP6127200B2 publication Critical patent/JP6127200B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • 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
    • 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/26Sensing or reading circuits; Data output circuits
    • 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
    • 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
    • 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
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C2029/0411Online error correction
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Read Only Memory (AREA)
  • For Increasing The Reliability Of Semiconductor Memories (AREA)
  • Detection And Correction Of Errors (AREA)
  • Debugging And Monitoring (AREA)

Abstract

メモリデバイスにおけるエラー訂正動作が開示される。少なくとも一実施形態においては、メモリデバイスの内部コントローラは、外部メモリアクセスデバイスからの命令から独立して、メモリデバイスに格納されたユーザデータに対する内部エラー訂正動作を実施して、ユーザデータを訂正するように構成される。【選択図】図6

Description

本開示は、概してメモリに関し、より詳細には、一つ以上の実施形態において、本開示はメモリデバイスにおけるエラー訂正に関する。
メモリデバイスは、典型的には、コンピュータまたは他の電子システムにおける内部、半導体集積回路として提供される。ランダムアクセスメモリ(RAM)、リードオンリーメモリ(ROM)、ダイナミックランダムアクセスメモリ(DRAM)、シンクロナスダイナミックランダムアクセスメモリ(SDRAM)、抵抗性ランダムアクセスメモリ(RRAM)、ダブルデータレートメモリ(DDR)、低電力ダブルデータレートメモリ(LPDDR)、相変化メモリ(PCM)およびフラッシュメモリを含む多数の様々なタイプのメモリが存在する。
不揮発性メモリは、電力の印加なしで或る程度の期間、その格納されたデータを保持することができるメモリである。フラッシュメモリデバイスは、広範囲の電子アプリケーション用の不揮発性メモリの普及したソースになるべく開発されてきた。フラッシュメモリデバイスは、パーソナルコンピュータ、携帯情報端末(PDA)、デジタルカメラ、デジタルメディアプレイヤー、デジタルレコーダ、ゲーム、家電製品、自動車、無線デバイス、携帯電話およびリムーバブルメモリモジュールなどの電子システムで通常使用され、フラッシュメモリの用途は拡大し続けている。
メモリデバイスは、読み出し、書き込みおよび消去動作などのメモリ動作を典型的に実施する。これらの動作は、フォアグラウンド(foreground)動作と称されることがある。これらの動作は、時には、ホストなどのメモリアクセスデバイスによって開始されるか、または、メモリデバイスに結合された他のメモリデバイス制御回路によって開始されるからである。さらなる動作は、時にはバックグラウンド動作と称される動作を含む。これらの動作は、メモリデバイス自体における制御回路によって開始されることがある。メモリデバイスにおけるウェアレベリングは、例えば、バックグラウンド動作として実施されることがある。
メモリデバイスからのデータを読み出すうえで生じることがあるエラーを認識すると、一つ以上のタイプのエラー訂正方法が使用されることがある。エラー訂正コード(ECC)と通常称されるエラー訂正スキームは、これらのエラーを検出して、訂正しようと試みるために実現することができる。種々のECCは、ECCの影響を受けやすい各データ信号がECCの構造の特定のルールに従うべきコードを含む。一般的に、このデータの構造からのそれほど大きくない逸脱(即ち、エラー)は、自動的に検出することができ、時には訂正することができる。ECCの例は、Hammingコード、BCHコード、Reed−Solomonコード、Reed−Mullerコード、Binary Golayコード、低密度パリティコード、Trellisコード変調を含む。幾つかのECCは、シングルビットエラーを訂正し、ダブルビットエラーを検出することができる。他のECCは、例えば、マルチビットエラーを検出および/または訂正することができる。
典型的には、メモリデバイスは、メモリ内の第一の位置にデータ(例えば、ユーザデータ)を格納し、メモリデバイス内の第二のメモリ位置に、関連するエラー訂正コード(ECC)データを格納する。読み出し動作中、格納されたユーザデータおよびECCデータは、ユーザデータの読み出し要求に応じてメモリアレイから読み出される。既知のアルゴリズムを利用して、読み出し動作から返されたユーザデータは、ECCデータと比較される。エラーが検出され、そのエラーがECCの制限内にある場合、例えば、格納されたECCデータ内に十分なECC解決が存在する場合、エラーは訂正される可能性がある。ビットエラーの検出および訂正のためのこのようなECCの利用は、本技術分野でよく知られているであろう。
上述された理由で、および以下に記述され、本明細書を読解することで当業者にとって明らかになるであろう他の理由で、メモリデバイスを有するシステムにおいて、ホストがECC動作を実施しなくても済むための技術の必要性が存在する。
NAND構成メモリセルのアレイの概略図を示す。 メモリセルの集合体における閾値電圧範囲の図を示す。 メモリセルの集合体における閾値電圧範囲の別の図を示す。 メモリアレイ構成の簡略化ブロック図である。 本開示の一実施形態による、電子システムの一部として、メモリアクセスデバイスに結合されたメモリデバイスの簡略化ブロック図である。 本開示の一実施形態によるメモリデバイスにおいてエラー訂正動作を実施する方法のフローチャートである。 本開示の一実施形態によるメモリデバイスにおいてエラー訂正動作を実施する別の方法のフローチャートである。
以下の本発明の詳細な説明においては、本明細書の一部を形成する添付の図面に対して参照がなされ、図面には、例示として特定の実施形態が示される。図面においては、類似の参照番号は、幾つかの図面を通して、実質的に類似の構成要素を記述する。他の実施形態が使用されてもよく、構造的、論理的および電気的変更が本開示の範囲を逸脱することなく加えられてもよい。したがって、以下の詳細な説明は、限定する意味で解釈されるべきではない。
フラッシュメモリは、典型的には、NORフラッシュおよびNANDフラッシュとして知られる二つの基本的アーキテクチャのうちの一つを利用する。その指定は、デバイスを読み出すために使用される論理に由来する。図1は、メモリアレイのメモリセル102が行および列のアレイに論理的に配置された、NAND型フラッシュメモリアレイアーキテクチャ100を示す。従来のNANDフラッシュアーキテクチャにおいては、“行”は、共通に結合された制御ゲート120を有するメモリセルのことを称するが、“列”は、例えば、特定のNANDストリング108として結合されたメモリセルのことを称する。メモリセルの行は、例えば、メモリのうちの一つ以上のページを含んでもよい。アレイのメモリセル102は、典型的には8,16,32またはそれ以上の各ストリング(例えば、NANDストリング)内でともに配置される。ストリングの各メモリセルは、ソース線114とデータ線(しばしばビット線と称される)116との間に直列に、ソースをドレインに接続される。アレイは、特定のアクセス線(しばしば、例えば、WL7−WL0 118−118などのワード線と称される)を選択することによって、メモリセルの論理行をアクティブ化する行デコーダ(図1には図示せず)によってアクセスされる。各ワード線は、メモリセルの行の制御ゲートに結合される。BL1−BL4 1161−4など、しばしばビット線と称されるデータ線は、アレイにおいて実施される動作のタイプに依存して、ハイまたはロウに駆動することができる。これらのビット線BL1−BL4 1161−4は、例えば、特定のビット線116上の電圧または電流を検知することによって、対象のメモリセルの状態を検出するセンスデバイス(例えば、センス増幅器)130に結合される。当業者には既知のように、ワード線およびビット線の数は、図1に示された数よりもずっと多くなることがある。
メモリセル102は、シングルレベルメモリセル(SLC)またはマルチレベルメモリセル(MLC)(本技術分野で既知のもの)として構成することができる。SLCおよびMLCメモリセルは、メモリセルに格納された閾値電圧(Vt)の特定の範囲にデータ状態(例えば、1以上のビットによって表される)を割り当てる。シングルレベルメモリセル(SLC)は、各メモリセルに、単一2進数(例えば、ビット)のデータの格納を可能とする。一方、MLC技術は、メモリセルのライフタイム動作中にセルに割り当てられたVt範囲の質および割り当てられたVt範囲の安定性に依存して、セル毎に2以上の2進数(例えば、2,4,8,16ビット)の格納を可能とする。Nビットで構成されるビットパターンを表すために使用されるVt範囲(例えば、レベル)の数は、2であって、ここで、Nは整数である。例えば、1ビットは、2つの範囲によって表され、2ビットは4つの範囲によって表され、3ビットは、8つの範囲によって表されてもよい。共通の命名規則は、SLCメモリセルをMLC(2レベル)メモリと呼ぶためのものであり、SLCメモリセルは、例えば、0または1によって表されるような1ビットのデータを格納するために、2つのVt範囲を利用する。2ビットのデータを格納するように構成されたMLCメモリは、MLC(4レベル)と表すことができ、3ビットのデータを格納するように構成されたMLCメモリは、MLC(8レベル)と表すことができる。MLCメモリセルは、例えば、2の累乗ではないVt範囲を利用して、分数ビットをさらに格納してもよい。例えば、3つのVt範囲を利用する2つのメモリセルは、可能性のある9つのデータ状態を集合的に表すことができ、メモリセル毎に3ビットのデータまたは1.5ビットのデータを表すことができる。
図2は、MLC(4レベル)(例えば、2ビット)メモリセルに対するVt範囲200の一例を示す。例えば、メモリセルは、200mVの4つの異なるVt範囲202−208のうちの1つの範囲内で降下するVtにプログラムされてもよい。各々のVt範囲は、2ビットで構成されるビットパターンに対応するデータ状態を表すために使用される。典型的には、デッドスペース210(例えば、時には、マージンと称され、200mVから400mVの範囲を有してもよい)は、範囲の重複しないように、各範囲202−208間で保持される。一例として、メモリセルに格納される電圧が、4つのVt範囲のうちの第一の範囲202内にある場合、この場合のセルは、論理状態‘11’を格納し、典型的には、セルの消去状態と考えられる。電圧が、4つのVt範囲のうちの第二の範囲204内にある場合、この場合のセルは、論理状態‘10’を格納する。4つのVt範囲のうちの第三の範囲206内の電圧は、この場合のセルが論理状態‘00’を格納していることを示す。最後に、4つのVt範囲のうちの残りのVt範囲208は、セル内に論理状態‘01’が格納されていることを示す。
メモリセルは、典型的には、消去およびプログラミング周期を利用してプログラムされる。例えば、メモリセルの特定のブロックのメモリセルが、まず消去され、その後、選択的にプログラムされる。NANDアレイに対して、あるブロックのメモリセルは、典型的には、ブロック内の全てのワード線を接地して、メモリセルのブロックが形成される半導体基板に対して、つまり、メモリセルのチャネルに対して、消去電圧を印加することによって消去され、メモリセルのブロックの電荷蓄積構造(例えば、浮遊ゲートまたは電荷トラップ)に格納されうる電荷を除去する。これによって、典型的には、メモリセルのVtを、例えば、図2のVt範囲202(例えば、消去状態)内にする。
プログラミングは、典型的には、選択されたワード線(例えば、WL4 118)に対して、つまり、選択されたワード線に結合された各メモリセル120−120の制御ゲートに対して、一つ以上のプログラミングパルスを印加することを含む。典型的なプログラミングパルスは、15Vまたは約15Vで開始して、各プログラミングパルスの印加中にその大きさを増加させる傾向がある。プログラム電圧(例えば、プログラミングパルス)が、選択されたワード線に対して印加され、接地電位などの電位が、基板に対して、つまり、これらのメモリセルのチャネルに対して印加され、その結果として、プログラミング対象のメモリセルの格納構造へ、チャネルからの電荷移動を生じる。より具体的には、格納構造は、典型的には、チャネルから格納構造への電子の直接注入またはFowler−Nordheimトンネル効果を通じて充電され、その結果として、プログラム状態において、Vtが典型的にはゼロより大きくなる(例えば、図2のVt範囲204−208中など)。さらに、禁止電圧は、典型的には、プログラミングの対象とされる(例えば選択された)メモリセルを含むNANDストリングに、結合されていないビット線に対して印加される。
一つ以上のプログラミング(例えば、Vpgm)パルスの印加中、照合動作は、典型的には、意図されたプログラム状態に到達したか否かを判定するために、選択された各メモリセルをチェックするために実施される。選択されたメモリセルが意図されたプログラム状態に到達し、意図されたプログラム状態に到達するために追加のプログラミングパルスを必要とする選択された行の他のメモリセルがまだ残っている場合、さらなるプログラミングが禁止される。照合動作に続いて、追加プログラミングパルスVpgmは、プログラミングが完了していないメモリセルが存在する場合に印加される。このような照合動作の実施後のプログラミングパルスを印加するプロセスは、典型的には、選択された全てのメモリセルがその意図されたプログラム状態に到達するまで続く。典型的には、メモリセル120の選択された行に対して実行されるプログラミング(例えば、書き込み)および/または読み出し動作中に、交互のビット線116、116が、有効化され、および/または、ビット線116、116は禁止される。これは、例えば、メモリセル120周囲に示された実線の円および破線の円によって示される。特定の数(例えば、最大数)のプログラミングパルスが印加されても、一つ以上の選択されたメモリセルがいまだプログラミングを完了していない場合、当該メモリセルは、例えば、不良品として標識されることがある。
NANDフラッシュメモリデバイスなどのメモリデバイスは、典型的には、例えば、読み出し動作などのメモリデバイスのメモリアレイに対するメモリ動作の実施に対するトリム(trim)値として知られる値を利用する。最小読み出し電圧は、例えば、VreadMinトリム値によって指定され、最大読み出し電圧は、VreadMaxトリム値として指定されてもよい。これらのトリム値は、典型的には、メモリデバイスにおいて実施される読み出し動作中に利用されるべき電圧を定義するために、メモリデバイス内のレジスタに格納される。レジスタは、例えば、メモリデバイスのリセット後のブート動作中に、トリム値でロードされてもよい。他のトリム値は、例えば、照合動作を実施するための照合トリム値などが使用されてもよい。
結果としてデータ破損を生じうるメモリデバイス内のエラーの可能性のある原因は、或る期間にわたる、メモリセルの電荷蓄積構造(例えば、浮遊ゲート)からの電荷損失である。これによって、典型的には、影響を受けるメモリセルの閾値電圧の低下を生じる。メモリセル内に格納されるデータはメモリセルの閾値電圧によって表されるため、メモリセルの閾値電圧の変化(例えば、ドリフト)によって、プログラムされたデータ値とは異なるデータ値が読み出されることがある。メモリセル内の十分な閾値電圧ドリフト(例えば、Vtの増減)は、例えば、メモリセルに格納されたデータの破損を最終的に引き起こす可能性がある。
図3は、メモリセルの集合体における閾値電圧ドリフトの図示表現を示す。上述されたように、閾値電圧ドリフトは、メモリセルの電荷蓄積構造からの電荷損失の結果として生じる可能性がある。閾値電圧ドリフトは、メモリセルのアレイに対して実施されるプログラミング動作中に生じるプログラムディスターブ効果などの、種々の他の現象の結果として生じる可能性がある。図3の閾値電圧302−308の分布は、図2を参照して上述された閾値電圧分布202−208それぞれに対応しうる。閾値電圧分布312−318は、メモリセルの閾値電圧におけるシフト(例えば、ドリフト)を示す。分布306は、レベルL2にプログラムされた一つ以上のメモリセルを表し、分布316は、レベルL2にプログラムされたメモリセルの閾値電圧324における経時的なシフトを表すことがある。シフトした各閾値電圧分布312−318は、其々のシフトしていない分布302−308が同一量のシフト320−328をしたものとして、図3に示される。しかしながら、各閾値電圧ドリフト320−328が、図3に示される方向、大きさとは異なる方向、異なる大きさとなる可能性がある。閾値電圧ドリフト324は、閾値電圧ドリフト322が示すものと異なる大きさおよび/または方向のシフトを含むことがある。さらに、閾値電圧ドリフト326は、閾値電圧ドリフト328が示すものと異なる大きさおよび/または方向のドリフトを含むことがある。特定のレベルにプログラムされたメモリセルの閾値電圧ドリフトは、常に一定の方向および/または大きさでドリフトするわけではない。
上述されたように、メモリセルにおける閾値電圧ドリフトは、メモリセルに格納されたデータを破損させる可能性がある。分布316は、閾値電圧が幾らかの量シフト324されたメモリセルを表す。メモリデバイスが、異なる分布の閾値電圧間(例えば、分布316および分布314の間)で識別することができる限り、当該メモリセルから読み出されたデータは、信頼できるものでありうる。しかしながら、第一のプログラムレベルを表す分布の閾値電圧が、第二のプログラムレベルを表す別の分布の閾値電圧と重複するように非常に遠くにドリフトする場合、これらのメモリセルに対する読み出し動作は、データを破損させる可能性がある。例えば、メモリセルは、分布306内の閾値電圧を有する所望のレベルL2にプログラムされる。時間が経過すると、分布306の閾値電圧は、分布316によって表されるように、ドリフトすることがある。分布316によって表されるメモリセルの閾値電圧が分布304内の閾値電圧レベルにドリフトする場合、メモリセルがレベルL2ではなく、レベル1にプログラムされるように読み出されうる。このように、このメモリセルを読み出す際にエラーが生じる可能性がある。
エラー訂正コード(ECC)方法は、多数のメモリセルから読み出されたデータについて、一つ以上のエラーの訂正を試みるために使用されうる。例えば、ユーザデータに対応するECCデータは、格納されるユーザデータに特定のアルゴリズムを適用することによって生成されて、このアルゴリズムに付く。その対応するECCデータを伴うユーザデータは、メモリデバイスのメモリアレイに格納される。図4は、例えば、フラッシュメモリセルのアレイなどの、メモリデバイスのメモリアレイ400を示す図である。ユーザデータは、ユーザデータ402を格納するように指定されたメモリ位置に格納され、ECCデータは、ECCデータ404を格納するように指定されたメモリ位置に格納される。図4は、ユーザデータ格納領域およびECCデータ格納領域を含む各行406を示す。例えば、行406に格納されたECCデータは、行406に格納されたユーザデータに対応してもよい。しかしながら、メモリアレイ内のユーザデータ格納位置402およびECCデータ格納位置404の配置は、図4に示された配置と異なってもよい。
不揮発性メモリデバイス(例えば、NANDメモリ)は、典型的には、メモリデバイスから読み出されたユーザデータに実施されるエラー訂正動作を容易にするために、外部コントローラまたはプロセッサなどの外部メモリアクセスデバイスに依拠する。例えば、対応するECCデータとともにユーザデータは、メモリデバイスから読み出され、プロセッサによって受信される。エラーが検出される場合、プロセッサは、プロセッサによって使用される訂正されたユーザデータの作成を試みるために、訂正動作の実施を試みる。プロセッサはエラーを訂正したが、エラー源は訂正されていない。換言すると、プロセッサは、メモリデバイスから読み出されたユーザデータに訂正を行い、その後、他の動作に移るが、エラー源はいまだ存在しうる。例えば、メモリデバイスのメモリセルに格納されたユーザデータは、破損されることがある。この破損の原因は、或る点で生じ続けるが、破損されたユーザデータは、ある期間が過ぎると、ECC動作を利用して訂正することができない。さらには、メモリデバイスから読み出されたユーザデータについて、検出されたあらゆるエラーの訂正を試みるうえで、エラーが生じたかどうかを判定するためにECC動作を実施しなければならないプロセッサによって、システム性能が影響を受ける。
メモリデバイスに接続されたプロセッサ(図4には図示せず)は、メモリ位置の読み出し動作を実施するために、メモリデバイスにコマンドを送信してもよい。読み出し動作が実施されるとき、要求されたユーザデータは、対応するECCデータとともにメモリアレイから読み出されて、外部コントローラに送信される。ECCデータは、メモリアレイから読み出された対応するユーザデータに対するエラーチェックの実施を容易にするために使用される。エラーが検出されない場合、ユーザデータは正確であると考えられる。エラーが検出される場合、外部コントローラによって検出されたユーザデータに対して、検出されたエラーの訂正を試みるために、種々のECC動作が外部コントローラによって使用されてもよい。上述されたように、これによって、外部コントローラに、エラーチェックおよびエラー訂正の負荷がかかる。
図5は、本開示の種々の実施形態による、メモリデバイス500の機能的ブロック図を示す。メモリデバイス500は、上述された外部コントローラなどの外部メモリアクセスデバイス510に接続される。外部コントローラ510は、プロセッサまたは幾つかの他のタイプの制御回路であってもよい。プロセッサ510は、例えば、上述されたように、メモリデバイスから読み出されたユーザデータおよびECCデータを受信すると、ECC動作を実施するように構成されてもよい。
メモリデバイス500は、一つ以上の通信チャネル506(例えば、通信バス)を介してプロセッサ510に結合される。通信バスは、コマンド、アドレスおよび/またはデータを表す信号を伝送するために、其々、コマンド、アドレスおよび/またはデータ信号線を含んでもよい。通信バスは、例えば、ユニバーサルシリアルバス(USB)インターフェイスなどの多数の標準インターフェイスを含んでもよい。通信バス506は、当業者に既知の様々なハードディスクドライブ(例えば、SATA、PATA)で使用される標準インターフェイスであってもよい。メモリデバイス500、プロセッサ510および通信バス506は、ともに電子システム520の一部を形成する。
メモリデバイス500は、一つ以上のメモリセルのアレイ530を含む。メモリアレイ530は、フラッシュメモリおよび/または相変化メモリ(PCM)などのメモリを含んでもよい。例えば、メモリアレイ530は、図1に示し、上述したNAND構成フラッシュメモリセルのアレイを含んでもよい。一つ以上のメモリアレイ530は、2Dおよび/または3Dメモリアレイを含んでもよい。メモリアレイ530は、メモリデバイス500の一部として、単一チップまたは複数チップ上に存在するメモリセルの複数のバンクおよびブロックを含んでもよい。メモリアレイ530は、SLCおよび/またはMLCメモリを含んでもよい。メモリアレイ530は、例えば、各メモリセルにおいて、色々な密度(例えば、MLC(4レベル)およびMLC(8レベル))のデータを格納するように適応できることもある。
アドレスバッファ回路540は、I/O回路560を通して提供されるアドレス信号をラッチするために提供される。アドレス信号は、メモリアレイ530にアクセスするために、行デコーダ544および列デコーダ546によって受信されて、デコードされる。
メモリデバイス500は、データバッファ/センス回路550を利用して、メモリアレイ列における電圧変化または電流変化を検知することによって、メモリアレイ530内のメモリセルを読み出す。センス回路550は、一実施形態においては、メモリアレイ530から、ある列(例えば、ページ)のデータを読み出してラッチするために結合される。データは、プロセッサ510との複数のデータ接続562を介したアドレス通信のためだけでなく、双方向データ通信のために、I/O回路560を通して入力および出力される。書き込み回路556は、メモリアレイにデータを書き込むために提供される。
制御回路570は、外部プロセッサ510から制御インターフェイス572のデータ接続に提供される信号をデコードする。これらの信号は、データ読み出し、データ書き込み(プログラム)および消去動作を含む、メモリアレイ530に対する動作を制御するために使用される。データ接続572およびデータ接続562は、上述されたように、通信バス506を形成するために組み合わせられてもよいし、または、部分的に組み合わせられてもよい。制御回路570は、ステートマシン、シーケンサまたはメモリ制御信号の生成を制御するように構成された他のタイプの何らかの制御回路であってもよい。制御回路570は、本開示の種々の実施形態の実現を容易にするために少なくとも部分的に構成される。種々の実施形態により、制御回路570は、ECCエンジン580によってメモリデバイスに対して内部で実施されるECC動作をサポートするように構成される。例えば、ECCエンジン580は、582によって示されるように、制御回路によってアクティブ化または非アクティブ化されてもよい。制御回路570は、さらに本開示の一つ以上の実施形態により、内部ECC動作などの種々の動作が実施される間に、外部プロセッサ510によるメモリアレイ内の特定の位置に対するアクセスを、ブロックするように構成されてもよい。制御回路570およびECCエンジン580は、追加回路または追加ファームウェアなしでもありでも、内部コントローラの一部と考えられてもよい。
制御回路570は、メモリデバイス500の一つ以上の素子(図5には図示せず)に結合されてもよい。例えば、制御回路570は、行デコーダ544に結合され、メモリアレイ530の特定のワード線を行デコーダドライバ回路にバイアスさせるように構成されてもよい。制御回路570は、アレイ530の特定のビット線をデータバッファおよびセンス回路550にバイアスさせるように結合されて構成されてもよい(図5には図示せず)。制御回路570は、一つ以上のレジスタ回路をさらに含んでもよい。
メモリデバイス500のECCエンジン580は、本開示の種々の実施形態により、プロセッサ510からのサポートまたは命令とは関係なく、メモリデバイスに対して内部の種々のECC動作を実施するように構成される。例えば、ECCエンジンは、Hammingコード、BCHコード、Reed−Solomonコード、Reed−Mullerコード、Binary Golayコード、低密度パリティコード、Trellisコード変調法およびアルゴリズムなどの一つ以上のECCスキームをサポートするように構成されてもよい。ECCエンジン580においてどの方法を実装するかの選択は、例えば、技術および/または所望の対象の信頼性レベルに応じて調整されてもよい。種々の実施形態により、ECCエンジン580は、例えば、メモリセルのページおよび/またはブロックなどのメモリセルの種々の集合についてのECC動作の実施を、容易にするように構成することができる。
ECCエンジン580は、582によって示されるように、制御回路570によってアクティブ化されるか、または非アクティブ化されてもよい。ECCエンジン580は、メモリアレイに格納されるべきユーザデータおよび/またはメモリアレイから読み出されるべきユーザデータに対応するECCデータの作成を容易にするように構成される。例えば、メモリアレイに格納される(例えば、プログラムされる)ユーザデータは、ECCエンジン580を通過し、ECCエンジンは、ユーザデータに伴って格納されるべきユーザデータに対応するECCデータを作成する。読み出し動作の一部として、ユーザデータは、対応するECCデータとともにメモリアレイ内の位置から読み出されてもよい。ECCエンジンは、メモリ位置から読み出されたユーザデータに対応する追加ECCデータ(例えば、ECC試験データ)を作成するようにさらに構成される。ECCエンジンは、メモリアレイ内に、ユーザデータとともに格納されたECCデータと、作成されたECC試験データとを比較する。作成されたECC試験データとメモリアレイから読み出されたECCデータとが一致する場合、メモリアレイから読み出されたユーザデータにはエラーがないことが推定される。作成されたECCデータと読み出されたECCデータとの不一致が生じる場合には、メモリアレイから読み出されたユーザデータ内にエラーが存在することが推定される。
ECCエンジン580は、メモリアレイから読み出されたユーザデータについて検出されたエラーの訂正を試みるうえで、種々のECCアルゴリズムを実施するようにさらに構成される。一つ以上の実施形態により、訂正されたユーザデータは、その後、内部コントローラ(例えば、ECCエンジン580および/または制御回路570)によって容易にメモリアレイ内に格納されてもよい。このように、メモリデバイス500は、破損したデータが読み出されたアレイに訂正データ(例えば、訂正されたユーザデータ)を戻すための‘ループバック経路’を備えて構成される。ECCエンジン580は、本開示の種々の実施形態により、例えば、メモリデバイス内部であって、外部プロセッサ510から如何なる方向でも欠如した種々のECC動作の実施を容易にする。エラー訂正の成功は、多くの要因に依存する可能性がある。幾つかのエラーは、ECCエンジン580によって使用されるECCアルゴリズムのタイプおよび強度によっては、訂正できないことがある。
図5に示されたメモリデバイスは、メモリの特性の基本的理解を容易にするために簡略化されたものである。フラッシュメモリの内部回路および機能のより詳細な理解は、当業者に既知である。
ECCエンジン580は、メモリデバイス500における内部ECC動作を開始する(例えば、独立して開始する)ために種々の状態に応じて、種々のECC動作を実施するようにさらに構成されてもよい。図6は、本開示の一つ以上の実施形態により、種々の内部ECC動作を実施するフローチャートを示す。
図6は、メモリデバイスにおけるECC動作600(例えば、内部ECC動作)を開始することを示す。ECC動作を実施することは、例えば、図5に示され上述されたような制御回路570および/またはECCエンジン580などのメモリデバイスの内部コントローラによって容易にされてもよい。ECC動作を開始するための判定は、種々の方法によって行われてもよい。内部ECC動作は、外部プロセッサ510から受信された命令に応じて開始されてもよい。内部ECC動作は、本開示の一つ以上の実施形態により、内部ECC動作を実施するための外部プロセッサ510からの命令がなくても、メモリデバイスにおけるバックグラウンド動作として開始されて、実施されてもよい。
例示として、種々の実施形態による内部ECC動作は、ECCエンジン580および制御回路570のうちの一方またはその双方によって開始されてもよい。内部ECC動作は、周期的に実施されてもよい。例えば、ECC動作は、本開示の種々の実施形態により、内部ECC動作を以前に実施してから経過した時間などの、特定の時間の経過に応じて実施されてもよい。内部ECC動作は、実施された多数のメモリデバイス動作に応じて開始されてもよい。例えば、内部ECC動作は、多数のプログラミングおよび/または消去動作が実施された後に開始されてもよい。ECC動作の頻度は、利用されるECC方法論のタイプに少なくとも部分的に依存して決めることができる。より強いECCアルゴリズムの利用によって、例えば、より頻度を少なくECC動作を実施することを可能とする。
608におけるECC動作の開始に続いて、610において、読み出されたユーザデータおよび対応して読み出されたECCデータを得るために、チェックするために選択されたメモリセルが、メモリアレイから読み出される。メモリセルまたはメモリセルの集合(例えば、メモリセルのブロック)は、メモリセルにおいて多数のプログラミングおよび/または消去動作が実施されるのに応じて選択されてもよい。例えば、プログラミングおよび/または消去動作の或る回数を超えることによって、ECC動作が予定すべきメモリセルの集合を識別してもよい。メモリセルは、時間が経過するにつれて、および/またはより多くのプログラミング/消去サイクルに晒されるにつれて老朽化(age)する。メモリセルにおけるプログラミング動作を完了させるために必要なプログラミングパルスの数は、当該メモリセルの老朽化またはウェアレベルを示すものである可能性がある。このように、ECC動作は、メモリセルにおけるプログラミング動作を完了させるために必要とされるプログラミングパルスの数の追跡に基づいて決定された、メモリセルの老朽化またはウェアレベルに応じて、開始されてもよい。例えば、メモリセルのグループにおいて観察されたプログラミング特性における増加(例えば、プログラミング動作を完了させるために必要とされるプログラミングパルス数の増加)は、当該セルのウェアレベルを示すことがある。したがって、ECC動作は、例えば、メモリセルのグループにおいて高いウェアレベルを示すのに応じて開始されてもよい。一つ以上の実施形態により、メモリセルのグループは、ECC動作に対してランダムに、または順次選択されてもよい。
612において、ECCエンジン580は、ユーザデータを読み出すために特定のECCアルゴリズムを適用することによって、読み出されたユーザデータおよび読み出されたECCデータを処理する。ECCエンジン580は、読み出されたユーザデータに対応するECCデータ(例えば、ECC試験データ)を作成するために、読み出されたユーザデータに対してECCアルゴリズムを適用する。ECC試験データは、メモリデバイスから読み出され、読み出されたユーザデータに対応するECCデータと比較される。614において、ECC試験データと読み出されたECCデータとの比較の結果に応じて、読み出されたユーザデータにエラーが存在するか否かの判定が行われる。614においてエラーが検出されていない場合に、ECC動作が、640において終了する。
ECC比較動作の結果が、読み出されたユーザデータにエラーが存在することを示すことがある。エラーが示されると、エラー(例えば、破損データの格納)を引き起こすメモリセルを識別する試みが、620において行われる。エラーがECCの制限内にある場合、訂正が可能であり、エラーを引き起こすメモリセルの識別は、直接的な(straightforward)タスクであって、即ち、このようなメモリセルは、訂正されるべきリードデータに対応する。一つ以上の実施形態により、検出されたエラーの原因が、一つ以上のメモリセルにおける閾値電圧やドリフトによるものであったか(例えば、図3を参照して上述されたようなより低レベルにドリフトした閾値電圧)を、622において判定するように、ECCエンジン580はさらに構成される。エラーがECCの制限内にある場合、訂正が可能であり、検出されたエラーの原因の判定は直接的なタスクである。例えば、図3を参照すると、ECC試験データがメモリセルに対応するデータがL2データ状態を表すことを示すか、当該メモリセルに対応する読み出されたユーザデータがL1データ状態(または、他のより低いデータ状態)を表した場合、エラーの原因は、当該メモリセルの閾値電圧の低下の結果であるとみなすことができる。同様にして、例えば、読み出されたユーザデータが、ECC試験データによって示されるデータ状態よりも高いデータ状態を表す場合には、エラーの原因はメモリセルの閾値電圧の増加の結果であるとみなすことができる。
一つ以上のメモリセルの閾値電圧が低下したと識別される場合、ECCエンジン580および/または制御回路570は、626で、識別されたメモリセルに対するプログラミング動作(例えば、タッチアッププログラミング動作)の実施を容易にし、その閾値電圧レベルを以前の閾値電圧ドリフトレベルに回復するために閾値電圧レベルを増加させる。換言すると、タッチアッププログラミング動作は、意図される(例えば所望される)プログラムレベルに対応するレベルをその閾値電圧が再び有するように、メモリセルの電荷蓄積構造に対するある量の電荷の回復を容易にする(消去動作をまず実施することなく)。メモリセルが所望される閾値電圧レベルに回復したことを検査するために、626において、タッチアッププログラミング動作に従って照合動作が実施されてもよい。したがって、本開示の種々の実施形態により、プログラミング動作(例えば、タッチアッププログラミング動作)は、ECC動作の実施に応じて、閾値電圧レベルの低下があったと識別されたメモリセルに対して実施される。本開示のさらなる実施形態により、識別されたいかなるメモリセルも、閾値電圧の増加によるエラー判定がない場合にのみ、当該プログラミング動作は、626において実施されてもよい。
メモリセルは、読み出されたユーザデータのエラーが生じた程度に閾値電圧が増加した(例えば、閾値電圧ドリフトの増加)として、ECC動作中に識別されてもよい。ECCエンジン580は、読み出されたユーザデータについて検出されたエラーを訂正し、訂正されたユーザデータの作成を試みるために、630において、ECCアルゴリズムを適用する。訂正されたユーザデータは、例えば、データバッファ550などの、メモリデバイス内に格納されてもよい。ECCエンジン580および/または制御回路570は、その後、訂正されたユーザデータをメモリアレイ530に格納するために、632において、プログラミング動作の実施を容易にしてもよい。訂正されたユーザデータは、差し替えるユーザデータとは異なるメモリアレイ内の位置に格納されてもよい。例えば、訂正されたデータは、破損したユーザデータが格納されていたのとは異なるメモリデバイスの消去位置に、格納されてもよい。或いは、制御回路570は、破損した読み出されたユーザデータを格納するメモリ位置における消去動作の実施を容易にし、その後、同一のメモリ位置に訂正されたユーザデータを格納してもよい。種々の実施形態により、少なくとも一つのメモリセルが、閾値電圧の増加によって、エラーを引き起こしたと識別された場合に、訂正されたユーザデータの格納が実施されてもよい。
一つ以上の実施形態により、メモリデバイス500は、論理−物理アドレス変換(時には、論理−物理アドレスマッピングと称される)を容易にするアドレス再マッピングユニットをメモリデバイス内に含んでもよい。このデータ構造は、メモリデバイス内に位置する論理アドレスと物理アドレスとの間の相互関係を提供する。一対一にマッピングされたデバイスは、例えば、メモリの或る論理セクタに対応するメモリの或る物理セクタを含むと考えられてもよい。論理−物理アドレス変換情報を含むデータ構造は、メモリデバイス内に格納されて保持されてもよく、または、外部プロセッサに格納されて保持されてもよい。このデータ構造は、論理−物理アドレス変換データ構造と称されてもよい。
データの破損を防ぐために、メモリデバイスの一つ以上の物理アドレスに対応する一つ以上の論理アドレス(例えば、ある範囲の論理アドレス)は、内部ECC動作の実施を容易にするように構成されたメモリデバイス制御回路570および/またはECCエンジン580以外からのアクセスを、ブロックされてもよい。このように、一つ以上の実施形態は、ECC動作がメモリデバイスの内部で実施される間、メモリデバイスの物理アドレスにマッピングされた一つ以上の論理アドレスに対するアクセスの許可またはアクセスのブロックなどのアクセスの管理を、容易にする。例えば、内部ECC動作が実施される間、メモリデバイスの制御回路570は、メモリデバイス内の物理アドレスに対するアクセスを有するが、メモリデバイスに結合されたプロセッサ510は、アクセスを許可されない。メモリデバイスは、当該メモリデバイスからの‘レディ/ビジー’(R/B)信号などの出力信号を保持するように構成されてもよい。R/B信号のレベル(例えば、論理レベル)は、例えば、ECC動作がメモリデバイス内で実施されているか否かを示す。R/B信号線は、例えば、図5に示すように通信バス506の一部として含まれてもよい(図示せず)。
図6を再度参照すると、“訂正されたユーザデータ”が、“読み出された破損ユーザデータ”とは異なるメモリ位置に格納される場合、“訂正されたユーザデータ”のメモリアレイ内の新しい位置を反映するために、論理−物理アドレス変換データ構造は、634において、アップデートされてもよい。例えば、論理−物理アドレス変換データ構造が外部プロセッサ510内に保持される場合、メモリデバイス500が、外部プロセッサ510にアップデートされたアドレス情報を送信することで、論理−物理アドレス変換データ構造は、“訂正されたユーザデータ”の新しい物理アドレスでアップデートすることができる。メモリデバイス500内に保持された論理−物理アドレス変換データ構造は、例えば、“訂正されたユーザデータ”を格納するメモリデバイス内の新しい物理位置を識別するのに応じて、メモリデバイス内部でアップデートされてもよい。
一つ以上の実施形態により、論理−物理アドレス変換データ構造は、626のタッチアッププログラミング動作の後にアップデートされる必要がないことに留意されたい。なぜなら、メモリデバイス内のユーザデータの位置は、変化していないからである。さらに、一つ以上の実施形態は、ECC動作の一回目のイテレーション(iteration:繰り返し)の実施完了後に再度実施されるべき、図6によって図示されたECC動作を含んでもよい。例えば、626のタッチアッププログラミング動作および/または、632の訂正されたユーザデータのメモリアレイへのプログラミングの実施に続いて、以前に実施されたECC動作が成功して完了したことを検査するために、図6に示すECC動作が、再度実施されてもよい。
図7は、本開示の一つ以上の実施形態により、別の内部ECC動作を実施するフローチャートを示す。図7に示された方法は、上述された図6に示された方法と類似する。図7の処理でも、708で、図6のステップ608と同様、ECC動作が開始される。710で、図6のステップ610と同様に、ユーザデータおよびECCデータが、選択されたメモリセルから読み出される。712で、図6のステップ612と同様に、読み出されたユーザデータに対してECCチェックが実施される。ECCエンジン580は、714で読み出されたユーザデータにエラーが存在するか否かを判定する処理を行う。エラーが検出されない場合、ECC動作は740で完了する。
714においてエラーが検出された場合、ECCエンジン580は、選択された多数のメモリセルの閾値電圧におけるシフトの大きさおよび/または方向を判定するように構成される。この閾値電圧シフトの判定に応じて、ECCエンジンは、722で、トリム値の決定(例えば、決定および調整)を試みる。トリム値は、使用されると、ECCチェック中に検出されたエラーを訂正する。例えば、閾値電圧ドリフトは、同一方向かつ実質的に同一の大きさで生じてもよい。したがって、本開示の一つ以上の実施形態により、読み出し動作中に使用されるトリム値(例えば、VreadMinおよび/またはVreadMax)の調整は、ECCエンジン720によって判定された閾値電圧シフトを補償するように調整されてもよい。例えば、選択されたメモリセルに対して実施されるその後の読み出し動作中に利用するために、これらの調製されたトリム値は、724でメモリデバイスのトリムレジスタ内に格納されてもよい。
[結論]
メモリデバイスにおけるエラー訂正動作が記述されてきた。より詳細には、メモリデバイスに結合された外部メモリアクセスデバイスからの命令とは関係なく、メモリデバイス内でエラー訂正動作を実施する方法が記述されてきた。独立したエラー訂正動作は、メモリデバイス内のエラーを識別して訂正し、データの訂正バージョンを格納するために、メモリデバイスにおいてエラー訂正動作の実施を開始して容易にするように構成される内部メモリデバイス制御回路によって、管理されてもよい。メモリデバイスにおけるECC動作の実施に応じたトリム値の調整もまた開示された。
本明細書には特定の実施形態が示され、記述されてきたが、同一の目的を達成すると推定される任意の配置が、示された特定の実施形態に対して置換されてもよいことを当業者には理解されたい。本開示の多くの適応は、当業者に対して明らかであろう。したがって、本出願は、本開示のあらゆる適応または変形を包含することを意図される。

Claims (15)

  1. メモリデバイスを動作させる方法であって、
    前記メモリデバイスのメモリアレイの第一部分に格納されるユーザデータに、エラー訂正コード(ECC)動作を実施することと、
    前記ECC動作の実施に応じて、前記メモリアレイの前記第一部分に格納されたユーザデータにエラーが存在するか否かを判定することと、
    エラーが存在すると判定される場合には、前記メモリアレイの前記第一部分のメモリセルが、閾値電圧の減少によって前記判定されたエラーを引き起こした場合、前記メモリアレイの前記第一部分のメモリセルに一つ以上のプログラミングパルスを印加することと、
    を含む、
    ことを特徴とする方法。
  2. 前記エラー訂正コード(ECC)動作を実施することは、前記メモリデバイスに結合された外部メモリアクセスデバイスから受信された命令から独立して、エラー訂正コード(ECC)動作を実施することをさらに含む、
    ことを特徴とする請求項1に記載の方法。
  3. 前記外部メモリアクセスデバイスから受信された命令から独立してエラー訂正コード(ECC)動作を実施することは、前記メモリデバイスの内部コントローラによって作成されたコマンドに応じて、エラー訂正コード(ECC)動作を実施することをさらに含む、
    ことを特徴とする請求項2に記載の方法。
  4. 前記一つ以上のプログラミングパルスを印加することは、前記メモリアレイの前記第一部分の複数のメモリセルにまず消去動作を実施することなく、一つ以上のプログラミングパルスを印加することをさらに含む、
    ことを特徴とする請求項1から3のいずれか一項に記載の方法。
  5. 前記メモリアレイの前記第一部分の複数のメモリセルに前記一つ以上のプログラミングパルスを印加する間に、前記メモリアレイの前記第一部分のメモリセルの中で閾値電圧の減少によって前記エラーを引き起こしたと判定された、メモリセル遺体のメモリセルに、プログラミングすることを禁止することをさらに含む、
    ことを特徴とする請求項4に記載の方法。
  6. 前記メモリアレイの前記第一部分の複数のメモリセルに一つ以上のプログラミングパルスを印加することは、前記メモリアレイの前記第一部分の如何なるメモリセルも閾値電圧の増加により前記判定されたエラーを引き起こしていないときのみ、前記メモリアレイの前記第一部分の前記複数のメモリセルに前記一つ以上のプログラミングパルスを印加することをさらに含む、
    ことを特徴とする請求項1から3のいずれか一項に記載の方法。
  7. エラーが存在すると判定される場合、
    前記メモリアレイの前記第一部分の少なくとも一つのメモリセルが、当該メモリセルの閾値電圧の増加により前記判定されたエラーを引き起こした場合、訂正されたユーザデータを作成して、前記メモリアレイの第二部分に前記訂正されたユーザデータを格納すること、
    をさらに含む、
    ことを特徴とする請求項6に記載の方法。
  8. 前記メモリアレイの前記第二部分が前記メモリアレイの前記第一部分とは異なる物理アドレスを有する場合、前記メモリアレイの第二部分に前記訂正されたユーザデータを格納するのに応じて、論理−物理アドレス変換データ構造をアップデートすることをさらに含む、
    ことを特徴とする請求項7に記載の方法。
  9. 外部メモリアクセスデバイスが、前記論理−物理アドレス変換データ構造を維持するように構成され、前記アップデートすることは、前記メモリアレイの前記第二部分が前記メモリアレイの前記第一部分とは異なる物理アドレスを有する場合に、前記メモリデバイスに結合された前記外部メモリアクセスデバイスに前記メモリアレイの前記第二部分のアドレスを送信することによってアップデートすることをさらに含む、
    ことを特徴とする請求項8に記載の方法。
  10. 前記アップデートされたアドレスは、前記論理−物理アドレス変換データ構造をアップデートするために、前記外部メモリアクセスデバイスからの要求がなくても、前記メモリデバイスによって前記外部メモリアクセスデバイスに送信される、
    ことを特徴とする請求項9に記載の方法。
  11. 前記メモリアレイの第二部分に前記訂正されたユーザデータを格納することは、前記メモリアレイの前記第一部分を消去することと、前記メモリアレイの前記消去された第一部分に前記訂正されたユーザデータを格納することと、を含む。
    ことを特徴とする請求項7に記載の方法。
  12. 前記ECC動作を実施することは、
    ユーザデータと、前記ユーザデータに対応するエラー訂正コード(ECC)データとを読み出すことと、
    前記読み出されたユーザデータから追加エラー訂正コード(ECC)データを作成することと、
    を含み、
    エラーが存在するか否かを判定することは、前記読み出されたECCデータと前記作成されたECCデータを比較することを含み、
    エラーが存在すると判定される場合、
    前記読み出されたユーザデータを格納するどのメモリセルが前記エラーを引き起こすかを判定することと、
    前記複数のメモリセルの各々が閾値電圧の減少により前記エラーを引き起こした場合、前記エラーを引き起こしたと判定された前記複数のメモリセルに、一つ以上のプログラミングパルスを印加することと、
    前記複数のメモリセルのうちの少なくとも一つが、閾値電圧の増加により前記エラーを引き起こしたと判定されるとき、訂正されたユーザデータを作成することと、第二のメモリ位置に前記訂正されたユーザデータを格納することと、
    をさらに含む、
    ことを特徴とする請求項1から3のいずれか一項に記載の方法。
  13. エラーが存在すると判定される場合、前記メモリデバイスの一つ以上のトリム値を調整することをさらに含み、
    前記一つ以上のトリム値は、最小読み出し電圧に対応するトリム値および/または、最大読み出し電圧に対応するトリム値を含む、
    ことを特徴とする請求項1から3のいずれか一項に記載の方法。
  14. 内部コントローラを含むメモリデバイスであって、前記内部コントローラは、前記メモリデバイスに結合された外部メモリアクセスデバイスから受信される命令からは独立して、請求項13の前記方法を実施するように構成される、
    ことを特徴とするメモリデバイス。
  15. 内部コントローラを含むメモリデバイスであって、前記内部コントローラは、請求項12の前記方法を実施するように構成される、
    ことを特徴とするメモリデバイス。
JP2016502476A 2013-03-15 2014-03-14 メモリデバイスにおけるエラー訂正動作 Active JP6127200B2 (ja)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201361788906P 2013-03-15 2013-03-15
US61/788,906 2013-03-15
US14/189,375 US9367391B2 (en) 2013-03-15 2014-02-25 Error correction operations in a memory device
US14/189,375 2014-02-25
PCT/US2014/027546 WO2014152627A2 (en) 2013-03-15 2014-03-14 Error correction operations in a memory device

Publications (2)

Publication Number Publication Date
JP2016517609A true JP2016517609A (ja) 2016-06-16
JP6127200B2 JP6127200B2 (ja) 2017-05-10

Family

ID=51534249

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016502476A Active JP6127200B2 (ja) 2013-03-15 2014-03-14 メモリデバイスにおけるエラー訂正動作

Country Status (7)

Country Link
US (1) US9367391B2 (ja)
EP (1) EP2973588B1 (ja)
JP (1) JP6127200B2 (ja)
KR (1) KR101665280B1 (ja)
CN (1) CN105144302B (ja)
TW (1) TWI574277B (ja)
WO (1) WO2014152627A2 (ja)

Families Citing this family (51)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10230396B1 (en) 2013-03-05 2019-03-12 Microsemi Solutions (Us), Inc. Method and apparatus for layer-specific LDPC decoding
US9813080B1 (en) 2013-03-05 2017-11-07 Microsemi Solutions (U.S.), Inc. Layer specific LDPC decoder
US9323614B2 (en) * 2013-11-06 2016-04-26 Wisconsin Alumni Research Foundation Dynamic error handling for on-chip memory structures
KR102174030B1 (ko) * 2014-05-13 2020-11-05 삼성전자주식회사 불휘발성 메모리 장치를 포함하는 저장 장치 및 그것의 읽기 방법
KR102249810B1 (ko) * 2014-07-23 2021-05-11 삼성전자주식회사 스토리지 장치 및 스토리지 장치의 동작 방법
US9558066B2 (en) 2014-09-26 2017-01-31 Intel Corporation Exchanging ECC metadata between memory and host system
KR102333743B1 (ko) * 2015-01-21 2021-12-01 삼성전자주식회사 불휘발성 메모리 장치 및 불휘발성 메모리 장치의 동작 방법
JP6515555B2 (ja) * 2015-02-02 2019-05-22 富士通株式会社 演算処理装置、メモリ制御装置及び演算処理装置の制御方法
US9811420B2 (en) 2015-03-27 2017-11-07 Intel Corporation Extracting selective information from on-die dynamic random access memory (DRAM) error correction code (ECC)
US10332613B1 (en) 2015-05-18 2019-06-25 Microsemi Solutions (Us), Inc. Nonvolatile memory system with retention monitor
US9799405B1 (en) 2015-07-29 2017-10-24 Ip Gem Group, Llc Nonvolatile memory system with read circuit for performing reads using threshold voltage shift read instruction
US10303571B2 (en) * 2015-11-04 2019-05-28 Intel Corporation Data recovery in memory devices
US9886214B2 (en) 2015-12-11 2018-02-06 Ip Gem Group, Llc Nonvolatile memory system with erase suspend circuit and method for erase suspend management
US9892794B2 (en) * 2016-01-04 2018-02-13 Ip Gem Group, Llc Method and apparatus with program suspend using test mode
US9899092B2 (en) 2016-01-27 2018-02-20 Ip Gem Group, Llc Nonvolatile memory system with program step manager and method for program step management
US10395754B2 (en) * 2016-03-21 2019-08-27 Nandext Srl Method for decoding bits in a solid state drive, and related solid state drive
TWI575533B (zh) * 2016-04-18 2017-03-21 群聯電子股份有限公司 資料校正方法、記憶體控制電路單元與記憶體儲存裝置
EP3453022B1 (en) * 2016-05-02 2022-07-06 INTEL Corporation Internal error checking and correction (ecc) with extra system bits
US10067827B2 (en) * 2016-06-29 2018-09-04 Micron Technology, Inc. Error correction code event detection
US10291263B2 (en) 2016-07-28 2019-05-14 Ip Gem Group, Llc Auto-learning log likelihood ratio
US10157677B2 (en) 2016-07-28 2018-12-18 Ip Gem Group, Llc Background reference positioning and local reference positioning using threshold voltage shift read
US10236915B2 (en) 2016-07-29 2019-03-19 Microsemi Solutions (U.S.), Inc. Variable T BCH encoding
DE102016115272A1 (de) * 2016-08-17 2018-02-22 Infineon Technologies Ag Speicher mit unterschiedlichen zuverlässigkeiten
US9691492B1 (en) * 2016-09-29 2017-06-27 Intel Corporation Determination of demarcation voltage for managing drift in non-volatile memory devices
US20180121287A1 (en) * 2016-11-01 2018-05-03 Nvidia Corporation Inline error detection and correction techniques
KR20180060084A (ko) 2016-11-28 2018-06-07 삼성전자주식회사 반도체 메모리 장치의 스크러빙 컨트롤러, 반도체 메모리 장치 및 반도체 메모리 장치의 동작 방법
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
US10535415B2 (en) * 2017-11-03 2020-01-14 Micron Technology, Inc. Trim setting determination for a memory device
US10649656B2 (en) 2017-12-28 2020-05-12 Micron Technology, Inc. Techniques to update a trim parameter in non-volatile memory
US11068186B2 (en) * 2018-02-09 2021-07-20 Micron Technology, Inc. Providing recovered data to a new memory cell at a memory sub-system based on an unsuccessful error correction operation
US11275512B2 (en) * 2018-05-08 2022-03-15 Micron Technology, Inc. Asynchronous power loss impacted data structure
US10990466B2 (en) * 2018-06-20 2021-04-27 Micron Technology, Inc. Memory sub-system with dynamic calibration using component-based function(s)
CN110910938A (zh) * 2018-09-17 2020-03-24 北京兆易创新科技股份有限公司 一种数据纠正方法、装置、存储设备及存储介质
DE102018124296B4 (de) * 2018-10-02 2024-06-20 Infineon Technologies Ag Kompensation von lesefehlern
US11514174B2 (en) * 2019-01-23 2022-11-29 Micron Technology, Inc. Memory devices with cryptographic components
US11301320B2 (en) 2020-04-03 2022-04-12 Micron Technology, Inc. Erasure decoding for a memory device
US10984847B2 (en) 2019-06-14 2021-04-20 Micron Technology, Inc. Memory management for charge leakage in a memory device
WO2020251708A1 (en) * 2019-06-14 2020-12-17 Micron Technology, Inc. Memory management and erasure decoding for a memory device
US11042436B2 (en) 2019-08-29 2021-06-22 Micron Technology, Inc. Semiconductor device with modified access and associated methods and systems
US10963336B2 (en) * 2019-08-29 2021-03-30 Micron Technology, Inc. Semiconductor device with user defined operations and associated methods and systems
US11200118B2 (en) 2019-08-29 2021-12-14 Micron Technology, Inc. Semiconductor device with modified command and associated methods and systems
US11056199B2 (en) * 2019-10-30 2021-07-06 International Business Machines Corporation Updating corrective read voltage offsets in non-volatile random access memory
US11693732B2 (en) * 2019-12-31 2023-07-04 Micron Technology, Inc. Cryptographic data integrity protection
DE102020133713A1 (de) * 2020-02-27 2021-09-02 Taiwan Semiconductor Manufacturing Co., Ltd. Speicheraktualisierung
US11288160B2 (en) 2020-08-17 2022-03-29 Micron Technology, Inc. Threshold voltage distribution adjustment for buffer
JP2022051179A (ja) 2020-09-18 2022-03-31 キオクシア株式会社 記憶装置及びリード方法
US11604601B2 (en) * 2020-10-12 2023-03-14 Micron Technology, Inc. Trim value loading management in a memory sub-system
US11789817B2 (en) * 2021-04-26 2023-10-17 Micron Technology, Inc. Error correction for internal read operations
US11907580B2 (en) * 2021-12-22 2024-02-20 Micron Technology, Inc. Corrective read of a memory device with reduced latency

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009151919A (ja) * 2007-12-20 2009-07-09 Samsung Electronics Co Ltd 半導体メモリ装置及びそれの読み出しフェイル分析方法
JP2011100519A (ja) * 2009-11-06 2011-05-19 Toshiba Corp メモリシステム
JP2011521394A (ja) * 2008-05-15 2011-07-21 サムスン エレクトロニクス カンパニー リミテッド メモリ装置およびメモリデータ誤り管理方法
JP2011204065A (ja) * 2010-03-26 2011-10-13 Mitsubishi Electric Corp データ記憶装置

Family Cites Families (32)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5532962A (en) * 1992-05-20 1996-07-02 Sandisk Corporation Soft errors handling in EEPROM devices
US5909449A (en) * 1997-09-08 1999-06-01 Invox Technology Multibit-per-cell non-volatile memory with error detection and correction
US7012835B2 (en) 2003-10-03 2006-03-14 Sandisk Corporation Flash memory data correction and scrub techniques
US7447847B2 (en) 2004-07-19 2008-11-04 Micron Technology, Inc. Memory device trims
US7523381B2 (en) * 2005-09-01 2009-04-21 Micron Technology, Inc. Non-volatile memory with error detection
US7954037B2 (en) * 2005-10-25 2011-05-31 Sandisk Il Ltd Method for recovering from errors in flash memory
US7639542B2 (en) * 2006-05-15 2009-12-29 Apple Inc. Maintenance operations for multi-level data storage cells
US7551486B2 (en) * 2006-05-15 2009-06-23 Apple Inc. Iterative memory cell charging based on reference cell value
WO2008053472A2 (en) * 2006-10-30 2008-05-08 Anobit Technologies Ltd. Reading memory cells using multiple thresholds
CN101601094B (zh) * 2006-10-30 2013-03-27 苹果公司 使用多个门限读取存储单元的方法
US8060798B2 (en) 2007-07-19 2011-11-15 Micron Technology, Inc. Refresh of non-volatile memory cells based on fatigue conditions
US7770079B2 (en) 2007-08-22 2010-08-03 Micron Technology Inc. Error scanning in flash memory
KR101425958B1 (ko) * 2007-09-06 2014-08-04 삼성전자주식회사 멀티-비트 데이터를 저장하는 메모리 시스템 및 그것의읽기 방법
US7882314B2 (en) 2007-09-07 2011-02-01 International Business Machines Corporation Efficient scheduling of background scrub commands
US7633798B2 (en) * 2007-11-21 2009-12-15 Micron Technology, Inc. M+N bit programming and M+L bit read for M bit memory cells
US8737129B2 (en) * 2008-11-14 2014-05-27 Samsung Electronics Co., Ltd. Nonvolatile memory device and read method thereof
KR101490426B1 (ko) * 2008-11-14 2015-02-06 삼성전자주식회사 불휘발성 메모리 장치 및 그것의 읽기 방법
US7787307B2 (en) * 2008-12-08 2010-08-31 Micron Technology, Inc. Memory cell shift estimation method and apparatus
US8555143B2 (en) 2008-12-22 2013-10-08 Industrial Technology Research Institute Flash memory controller and the method thereof
US20100174845A1 (en) * 2009-01-05 2010-07-08 Sergey Anatolievich Gorobets Wear Leveling for Non-Volatile Memories: Maintenance of Experience Count and Passive Techniques
US8775865B2 (en) 2009-06-24 2014-07-08 Headway Technologies, Inc. Method and apparatus for scrubbing accumulated disturb data errors in an array of SMT MRAM memory cells including rewriting reference bits
US8407564B2 (en) * 2009-07-15 2013-03-26 Intel Corporation Prediction and cancellation of systematic noise sources in non-volatile memory
US8572455B2 (en) * 2009-08-24 2013-10-29 International Business Machines Corporation Systems and methods to respond to error detection
US8295095B2 (en) 2010-04-20 2012-10-23 Micron Technology, Inc. Programming methods for a memory device
JP5467270B2 (ja) 2010-04-28 2014-04-09 国立大学法人 東京大学 データ入出力制御装置および半導体記憶装置システム
US8484542B2 (en) 2011-02-08 2013-07-09 Sandisk Technologies Inc. Data recovery using additional error correction coding data
US8935466B2 (en) 2011-03-28 2015-01-13 SMART Storage Systems, Inc. Data storage system with non-volatile memory and method of operation thereof
US8510636B2 (en) * 2011-04-01 2013-08-13 Intel Corporation Dynamic read channel calibration for non-volatile memory devices
US8775901B2 (en) 2011-07-28 2014-07-08 SanDisk Technologies, Inc. Data recovery for defective word lines during programming of non-volatile memory arrays
US9047210B2 (en) * 2011-09-15 2015-06-02 Sandisk Technologies Inc. Data storage device and method to correct bit values using multiple read voltages
US9146856B2 (en) 2012-04-10 2015-09-29 Micron Technology, Inc. Remapping and compacting in a memory device
US8861269B2 (en) * 2013-03-05 2014-10-14 Sandisk Technologies Inc. Internal data load for non-volatile storage

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009151919A (ja) * 2007-12-20 2009-07-09 Samsung Electronics Co Ltd 半導体メモリ装置及びそれの読み出しフェイル分析方法
JP2011521394A (ja) * 2008-05-15 2011-07-21 サムスン エレクトロニクス カンパニー リミテッド メモリ装置およびメモリデータ誤り管理方法
JP2011100519A (ja) * 2009-11-06 2011-05-19 Toshiba Corp メモリシステム
JP2011204065A (ja) * 2010-03-26 2011-10-13 Mitsubishi Electric Corp データ記憶装置

Also Published As

Publication number Publication date
WO2014152627A2 (en) 2014-09-25
CN105144302A (zh) 2015-12-09
US20140281808A1 (en) 2014-09-18
CN105144302B (zh) 2018-01-12
EP2973588B1 (en) 2020-09-16
TW201503152A (zh) 2015-01-16
EP2973588A4 (en) 2017-04-12
KR20150119169A (ko) 2015-10-23
JP6127200B2 (ja) 2017-05-10
US9367391B2 (en) 2016-06-14
KR101665280B1 (ko) 2016-10-11
TWI574277B (zh) 2017-03-11
EP2973588A2 (en) 2016-01-20
WO2014152627A3 (en) 2014-11-13

Similar Documents

Publication Publication Date Title
JP6127200B2 (ja) メモリデバイスにおけるエラー訂正動作
US10891187B2 (en) Memory devices having differently configured blocks of memory cells
JP5138319B2 (ja) メモリーシステム及び該動作方法。
KR101736792B1 (ko) 플래시 메모리 및 그것의 셀프 인터리빙 방법
US9647695B2 (en) Memory controllers and flash memory reading methods
US8621266B2 (en) Nonvolatile memory system and related method of performing erase refresh operation
US9478298B2 (en) Memory system and method of reading data thereof
KR20210079555A (ko) 메모리 시스템, 메모리 컨트롤러 및 메모리 시스템의 동작 방법
CN113806254B (zh) 存储器系统、存储器控制器及存储器系统的操作方法
KR20090083204A (ko) 메모리 장치 및 메모리 데이터 읽기 방법
US10084487B2 (en) Apparatuses and methods for erasure-assisted ECC decoding
US12015425B2 (en) Controller and operating method thereof for determining reliability data based on syndrome weight
US12050533B2 (en) Memory system and operating method of memory system
US11544003B2 (en) Memory system, memory controller, and method of operating memory system
KR20220010789A (ko) 메모리 시스템, 메모리 컨트롤러 및 메모리 시스템의 동작 방법

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20161220

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170317

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20170410

R150 Certificate of patent or registration of utility model

Ref document number: 6127200

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