JP6218195B2 - フラッシュ性能を増大させる読み出しレベルグループ化 - Google Patents

フラッシュ性能を増大させる読み出しレベルグループ化 Download PDF

Info

Publication number
JP6218195B2
JP6218195B2 JP2016054914A JP2016054914A JP6218195B2 JP 6218195 B2 JP6218195 B2 JP 6218195B2 JP 2016054914 A JP2016054914 A JP 2016054914A JP 2016054914 A JP2016054914 A JP 2016054914A JP 6218195 B2 JP6218195 B2 JP 6218195B2
Authority
JP
Japan
Prior art keywords
word line
read
error count
read level
memory
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
JP2016054914A
Other languages
English (en)
Other versions
JP2016177860A (ja
Inventor
カラクラック セイハン
カラクラック セイハン
デウェン ウェザーズ アンソニー
デウェン ウェザーズ アンソニー
デイヴィッド バント リチャード
デイヴィッド バント リチャード
Original Assignee
エイチジーエスティーネザーランドビーブイ
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from US14/664,768 external-priority patent/US9720754B2/en
Application filed by エイチジーエスティーネザーランドビーブイ filed Critical エイチジーエスティーネザーランドビーブイ
Publication of JP2016177860A publication Critical patent/JP2016177860A/ja
Application granted granted Critical
Publication of JP6218195B2 publication Critical patent/JP6218195B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/34Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/04Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS
    • G11C16/0483Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS comprising cells having several storage transistors connected in series
    • 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
    • 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
    • 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/1068Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices in sector programmable memories, e.g. flash disk
    • 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/1072Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices in multilevel memories
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • 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
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/08Address circuits; Decoders; Word-line control 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/10Programming or data input 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
    • 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/3427Circuits or methods to prevent or reduce disturbance of the state of a memory cell when neighbouring cells are read or written
    • 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
    • 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/021Detection or location of defective auxiliary circuits, e.g. defective refresh counters in voltage or current generators
    • 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/022Detection or location of defective auxiliary circuits, e.g. defective refresh counters in I/O circuitry
    • 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
    • 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
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C29/38Response verification devices
    • G11C29/42Response verification devices using error correcting codes [ECC] or parity check
    • 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
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C29/44Indication or identification of errors, e.g. for repair
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C8/00Arrangements for selecting an address in a digital store
    • G11C8/12Group selection circuits, e.g. for memory block selection, chip selection, array selection
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C8/00Arrangements for selecting an address in a digital store
    • G11C8/14Word line organisation; Word line lay-out
    • 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/0409Online test

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Computer Hardware Design (AREA)
  • Read Only Memory (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • For Increasing The Reliability Of Semiconductor Memories (AREA)

Description

関連出願の相互参照
本願は、米国特許法第120条の下、2014年11月20日に出願された「Calibrating Optimal Read Levels」という名称の米国特許出願第14/549,535号明細書及び2014年11月20日に出願された「Read Level Grouping Algorithms for Increased Flash Performance」という名称の米国特許出願第14/549,532号明細書の一部継続としての利益を主張するものであり、これらの特許出願の開示は、参照により本明細書に援用される。
本開示は、個体状態ドライブ(SSD)等のフラッシュメモリデバイスからの情報の検索に関する。低価格の個体状態ドライブ(SSD)は通常、データ容量を増大させるためにマルチレベルセル(MLC)フラッシュメモリを使用して製造されるが、MLCメモリデバイスは、シングルレベルセル(SLC)フラッシュメモリよりも信頼性が低いことがある。消費者SSD製造業者は、特定のウェアレベリングアルゴリズムを利用することにより、そのような問題を軽減した。MLCのデータ容量の増大があっても、企業用途でのMLCの使用はより高価になり、その理由は、耐久性の漸次低下を生じさせる、フラッシュの読み出し、プログラム、及び消去に必要な(摩耗によって生じる)ストレスの増大に起因するプログラム/消去(P/E)サイクルの不相応に大きい経時低下によるものである。
本技術は、フラッシュメモリに記憶される情報を検索する方法に関する。様々な態様によれば、方法は、メモリブロックのワード線の第1のサンプルを読み出すことであって、ワード線の第1のサンプルのそれぞれは、ワード線識別子が関連付けられ、異なる読み出しレベル電圧を使用して複数回、読み出されて、ワード線と各読み出しレベル電圧との各組合せのエラーカウントを生成する、読み出すことと、生成されたエラーカウントに基づいてエラーカウントテーブルを生成することであって、エラーカウントテーブルは、生成された各エラーカウントを対応するワード線識別子及びエラーカウントの生成に使用された異なる読み出しレベル電圧のそれぞれ1つによってインデックス付ける、生成することと、エラーカウントテーブルのエラーカウントに基づいて選択される読み出しレベル電圧を使用して読み出し動作を実行するように、記憶デバイスを構成することとを含む。他の態様は、コンピュータ実施方法を実施する対応するシステム、装置、及びコンピュータプログラム製品を含む。
様々な態様では、データ記憶デバイスは複数のフラッシュメモリデバイスを備え得、各フラッシュメモリデバイスは、複数のメモリブロックと、複数のフラッシュメモリデバイスに結合されるコントローラとを備える。コントローラは、フラッシュメモリデバイスのワード線の第1のサンプルを読み出すことであって、ワード線の第1のサンプルのそれぞれは、ワード線識別子が関連付けられ、異なる読み出しレベル電圧を使用して複数回、読み出されて、ワード線と各読み出しレベル電圧との各組合せのエラーカウントを生成する、読み出すことと、生成されたエラーカウントに基づいてエラーカウントテーブルを生成することであって、エラーカウントテーブルは、生成された各エラーカウントを対応するワード線識別子及び異なる読み出しレベル電圧のそれぞれ1つによってインデックス付ける、生成することと、エラーカウントテーブルのエラーカウントに基づいて、将来の読み出し動作のために読み出しレベル電圧を選択することとを実行するように構成し得る。
様々な態様では、方法は、フラッシュメモリデバイスのワード線の第1のサンプルを読み出すことであって、ワード線の第1のサンプルのそれぞれはワード線アドレスが関連付けられ、異なる読み出しレベル電圧を使用して複数回、読み出されて、ワード線及び各読み出しレベル電圧との各組合せのエラーカウントを生成する、読み出すことと、生成されたエラーカウントに基づいてエラーカウントテーブルを生成することであって、エラーカウントテーブルは、生成された各エラーカウントを対応するワード線アドレス及び異なる読み出しレベル電圧のそれぞれ1つによってインデックス付ける、生成することと、エラーカウントテーブルに基づいて複数のワード線グループを形成することであって、各グループは、異なる読み出しレベル電圧のそれぞれ1つを複数のワード線アドレスに関連付ける、形成することと、読み出されるメモリセルのワード線アドレスに対応する、生成されたワード線グループの読み出しレベル電圧を使用して、メモリセルを読み出すように、記憶デバイスを構成することとを含み得る。
本開示の他の構成が、以下の詳細な説明から当業者に容易に明らかになることが理解され、以下の詳細な説明では、本開示の様々な構成が、例示として示され説明される。認識されるように、本開示は他の異なる構成も可能であり、その幾つかの詳細は、様々な他の点で変更が可能であり、これらは全て本開示の範囲から逸脱しない。図面及び詳細な説明は、限定ではなく例示的な性質のものとしてみなされるべきである。
マルチレベルセル(MLC)フラッシュメモリ内のメモリセルグループの4つの可能なセル閾値電圧(V)分布と、相補的なプログラム読み出しレベルとのグラフ図例である。 3つの読み出しレベルを使用した最下位ビット(LSB)ページの確率特定例を示す。 3つの読み出しレベルを使用したMLCフラッシュメモリの最上位ビット(MSB)ページの確率特定例を示す。 メモリブロックの複数のワード線の最適な読み出しレベル電圧変化の例を示す。 複数のワード線読み出しレベルオフセット値の範囲例のエラーカウントテーブル例を示す。 循環メモリブロックの最適な読み出しレベルオフセット例のチャートを示す。 循環メモリブロックの最適な読み出しレベルオフセット例のチャートを示す。 循環メモリブロックの最適な読み出しレベルオフセット例のチャートを示す。 オフセットワード線グループを生成するアルゴリズム例のブロック図を示す。 オフセットワード線グループを生成するプロセスの第1の例の流れ図を示す。 オフセットワード線グループを生成するプロセスの第2の例の流れ図を示す。 バイナリ入力及びK変数出力を有する離散メモリレスチャネル(DMC)としてモデリングされるフラッシュメモリチャネル例を示す。 読み出しレベル及び/又は読み出しレベルオフセット例を較正する線形補間グラフ例を示す。 読み出しレベル及び/又は読み出しレベルオフセット例を較正する線形補間グラフ例を示す。 読み出しレベル及び/又は読み出しレベルオフセット例を較正する線形補間グラフ例を示す。 読み出しレベル及び/又は読み出しレベルオフセット例を再較正する線形補間グラフ例を示す。 読み出しレベル及び/又は読み出しレベルオフセット例を再較正する線形補間グラフ例を示す。 読み出しレベル及び/又は読み出しレベルオフセット例を再較正する線形補間グラフ例を示す。 読み出しレベル最適化モード例を示す。 読み出しレベル最適化モード例を示す。 記憶デバイス内の複数のメモリセルを読み出す読み出しレベルを較正するプロセス例の流れ図を示す。 データを復元する読み出しレベルを較正するプロセス例の流れ図を示す。 エラーカウントテーブルの再生成及び再インデックス付けに基づいて複数の最適なオフセットワード線を再生成するプロセス例の流れ図を示す。 データ記憶システム例の構成要素を示すブロック図である。
以下に記載される詳細な説明は、本開示の様々な構成の説明として意図され、本開示を実施し得る唯一の構成を表すことを意図されていない。添付図面が、本明細書に組み込まれ、詳細な説明の一部をなす。詳細な説明は、本開示の完全な理解を提供するために、特定の詳細を含む。しかし、本開示がこれらの特定の詳細なしで実施可能なことが当業者には理解されよう。幾つかの場合、構造及び構成要素は、本開示の概念を曖昧にしないように、ブロック図で示される。同様の構成要素は、理解を容易にするために同一の要素番号を用いて記される。
例えば、NAND構造を有するフラッシュメモリデバイスでは、メモリセルはストリングでグループ化され、各ストリングは、ドレイン選択トランジスタ(メモリブロックの各ビット線に接続される)とソース選択トランジスタ(基準電圧分配線に接続される)との間に直列接続される1組のトランジスタからなる。各メモリセルは、浮遊ゲートMOSトランジスタを含む。メモリセルをプログラミングする場合、電子は、例えばファウラーノルドハイム(F−N)トンネリング及び/又はホットエレクトロン注入により、浮遊ゲートに注入される。セルの不揮発性は、浮遊ゲート内に維持される電子によるものである。ビットは、電荷を浮遊ゲート(電気的に絶縁された導電体)に捕獲することによって記憶され、浮遊ゲートは、記憶された電荷に見合った閾値電圧(セルを導通させるために必要な電圧)によって定義される論理値を記憶する。メモリセルが消去される場合、セルの浮遊ゲート内の電子は、量子トンネリング(トンネル電流)によって浮遊ゲートから、例えばソース及び/又は基板に引き出される。
フラッシュメモリは循環する(すなわち、繰り返しプログラムされ消去される)ため、その物理的品質は変化する。例えば、プログラミング動作及び消去動作中のそれぞれで、浮遊ゲートに電子を繰り返し配置し除去すると、幾つかの過剰な電子がデバイスに捕獲されることになる。また、1つ又は複数のセルがプログラムされる場合、隣接するセルは、浮遊ゲートへの予期しない望ましくない電荷注入を受け、したがって、内部に記憶されているデータを破損させ得る。例えば、電子は、近傍セルのゲートでの電圧に起因する長期のストレス後、近傍セル内に漏出し得る。これらのメモリセルの閾値電圧は最終的に、予期される値とは異なる(より高いか、又はより低い)値をとり得、データ読み出し時にエラーを生じさせる。一般に、生じるダメージは、場の強度(例えば、電圧)と、持続時間との関数となり、すなわち、フラッシュメモリを高閾値電圧状況にプログラムすることは、より長い持続時間及び/又はより高い場の印加を必要とするため、プログラムプロセス及び消去プロセスの両方から生じるダメージの速度を加速させる。例えば、十分な電子の追加は、消去状態からプログラム状態にセルを変更させることができる。
様々な実施態様では、メモリセルは、列(ビット線)及び行(ワード線)のアレイ内のウェーハに配置される。メモリセルのアドレスは、(例えば、インデックス付け)メモリセルに対応するビット線とワード線との交点を表す。フラッシュメモリは、更にブロックで構成され得、各ブロックはページに区分される。MLCメモリの幾つかの実施態様では、フラッシュのセルのあらゆる行は2ページ:LSBページ及びMSBページで構成される。ブロックが128ページを有する場合、ブロックは64行のセルを有し得、各行は2ページを有する。各行は、セルがダイ内で物理的に一緒にあるとき、電圧及び抵抗の変動並びに製造プロセスの一環として他の特徴を受けるため、別様に挙動し得る。
NAND構造では、劣化の問題が、(例えば、ビット線上で)読み出し中のセルのストリング内の各トランジスタが、(例えば、指定されたワード線に対応するビット線内のロケーションにおける)そのストリングのセルの全て未満が随時読み出し可能であるにもかかわらず、高い電圧ストレスを受けるため、特に問題であることが分かっている。劣化に起因して、プログラムされる場合、幾つかの行(ワード線)のセルは、他のセルよりも期待値(例えば、対応するビット線で測定される期待される電圧)から離れる。これらのばらつきが個々のワード線に関連付けられ得ることが観測されている。したがって、本技術は、測定可能な値としてこれらのばらつきを特徴付け、実行時にばらつきを補償するメカニズムを提供する。例えば、ワード線内のセル電圧がシフトしていることが見つかった(例えば、特徴付けプロセスの結果として)場合、バイアス(例えば、オフセット電圧)が、プログラム中又は続く読み出し動作中に導入されて、プログラム電圧又は読み出し値を修正し得る。このようにして、異なるワード線内のセル間の実際のプログラミング値の非線形正が低減し得、それにより、セル読み出し時のエラーが低減する。
しかし、同じバイアスは、特定のブロック又はダイ全体を通して均一に読み出し関連エラーを修正するのに適さないことがある。加えて、各ワード線又はブロックのバイアス値の記憶は、記憶に有用なメモリを素早く消費し得、あらゆる読み出し動作で集積バイアスを適用するために多くの参照を必要とすることで、管理不可能になり得、且つ/又は性能を妨げ得る。したがって、本技術は、バイアス値を決定し、ワード線のグループに関連付けるメカニズムを提供し、バイアス値は、グループ内のワード線を読み出す可能な限り低い読み出しエラーレートに向けて最適化される。本技術は、メモリセルの寿命にわたりバイアス値を最適化するメカニズムを更に提供する。このようにして、バイアス値は、効率的に記憶され呼び出され得、必要に応じて修正され得、それにより、フラッシュメモリセルの全体構造の信頼性及び耐久性を改善し、フラッシュメモリを企業用途に適するものにする。
図1は、本技術の一態様によるマルチレベルセル(MLC)フラッシュメモリ内のメモリセルグループの4つの可能なセル閾値電圧(V)分布(401、410、420、及び430)と、相補的なプログラム読み出しレベル(L0、L1、及びL2閾値)とのグラフ図例である。MLC NANDフラッシュメモリは、セルの浮遊ゲートに印加する電荷レベルを複数の電荷レベル(読み出しレベル)から選ぶことにより、セル毎に2ビット以上を提供して、それぞれが異なる電圧閾値Vで生じる複数の導電状態を達成する。図1に示されるように、MLC NANDセルは、セル毎に4つの状態(電荷レベル)の1つを記憶することが可能であり、セル毎に2つの論理ビット情報:最上位ビット(MSB)及び最下位ビット(LSB)をもたらす。これらの2つのビットは、メモリブロックの対応するMSBページ及びLSBページを構成し得る。
図1は、データレベルL0、L1、L2、及びL3にプログラムされたメモリセルグループ(例えば、ブロック内)の確率密度分布曲線400を示す。分布401、410、420、及び430は、L0、L1、L2、及びL3データレベルのそれぞれの確率密度分布曲線に対応する。各データレベルは、各閾値電圧レベルによって隔てられる。示される例では、閾値電圧レベルは、L0閾値、L1閾値、及びL2閾値として識別される。閾値電圧レベルは、閾値検出器(例えば、フラッシュメモリ内)により「読み出しレベル」として使用されて、例えば、読み出し信号分布401、410、420、それとも430内にあるものとして読み取られるべきかを判断する。図1の4つのセル分布401、410、420、及び430は、実験室データから取得し得る。
分布内の全てのセルが導通することを保証するために、分布よりも大きな読み出しレベル電圧が印加される。本明細書で説明される様々な例では、第1の読み出しレベルRL1はL0閾値電圧に対応し、第2の読み出しレベルRL2はL1閾値電圧に対応し、第3の読み出しレベルRL3はL2閾値電圧に対応する。これに関して、RL1電圧はL0分布内のセルを導通させ、RL2電圧はL1分布内のセルを導通させ、RL3電圧はL2分布内のセルを導通させ、以下同様である。図1により示されるように、4つのみの状態が利用可能な場合、RL3電圧はL3分布内のいかなるセルも導通させない。幾つかの実施態様では、これは、それらのセルのLSBにバイナリx0を生成することになる。一般に、N個の分布の場合、N−1個の読み出しレベルがある。示される例では、4つの分布(状態)及び3つの読み出しレベルがある。しかし、本技術の範囲から逸脱せずに、8個、16個、又はそれ以上の分布があり得ることが理解される。
図2Aは、本技術の一態様による、3つの読み出しレベルRL1、RL2、及びRL3を使用したLSBページの場合の確率特定例を示す。示される例では、第1の読み出しレベル202(「RL2」)は、LSBページの最初の読み出しで使用されて、LSBページのメモリセルの推定プログラムレベルを特定する。メモリセルが実際に、観測された推定プログラムレベルにプログラムされた確率を特定するために、複数のソフト読み出しが開始される。
示される例では、メモリセルは、第1の読み出しレベル202の下の第2の読み出しレベル204と、第1の読み出しレベル202の上の第3の読み出しレベル206とを使用して読み出される。第1のプログラム領域βは、第1の読み出しレベル202と第2の読み出しレベル204との間のプログラム値を有する1つ又は複数のセルを含み、第2のプログラム領域βは、第1の読み出しレベル202と第3の読み出しレベル206との間のプログラム値を有する1つ又は複数のセルを含む。読み出しレベル間の様々な領域は、本明細書では「ビン」と呼ばれ得る。様々な態様では、各ビンの信頼値が、ビン内のメモリセルの多くが、1つ又は複数の他のビンと比較してどうであるかに基づいて計算され得る。ビンの信頼値は、ビンの分布曲線下の面積208に基づいて特定し得る。次に、信頼値は、対応するビン内の各メモリセルに割り当てられる。更に説明するように、信頼値は対数尤度比を含み得る。
図2Bは、3つの読み出しレベルRL1、RL2、及びRL3を使用したMLCフラッシュメモリのMSBページの確率特定例を示す。本技術の態様によれば、初期読み出しレベル202は、1つ又は複数のメモリセルに適用されて、各メモリセルのLSB値を取得し得る。示される例では、読み出しレベル202は、符号化ビット1及び符号化ビット0の分布間の交差位置として選ばれて、予期されるビットエラーレート(BER)を最小化する。BERを最小化するために選ばれる読み出しレベルは、最適読み出しレベルと呼ばれる。
LSB値に基づいて、MSBの推定プログラムレベルを読み出すための第1の読み出しレベル202を特定し得る。第1の読み出しレベル202が特定され、プログラムレベルが読み出されると、複数の続く読み出しが開始されて、メモリセルが実際に、観測された推定プログラムレベルにプログラムされた確率を特定し得る。したがって、セルが、続く読み出しの1つ又は複数が適用される場合に導通するか、又は導通しないことがわかったレベルに対応するプログラム領域(ビン)α、α、α、α、α、α、及びαが各セルに関連付けられ得る。
図3は、本技術の態様によるメモリブロックの複数のワード線の最適読み出しレベル電圧のばらつきの例を示す。メモリブロックは、最高で64(又は65以上)のワード線を有し得る。実験結果は、最適な読み出しレベル(例えば、RL1、RL2、又はRL3)がワード線毎に変化し得ることを示した。示される例では、3つの読み出しレベルRL1、RL2、及びRL3は、それぞれの値に最適に設定されて、データレベルL0、L1、L2、及びL3に対応する確率密度分布曲線内のメモリセルを読み出す。しかし、これらの最適な読み出しレベルの値又は電圧は、各ワード線に関して変化して示される。例えば、ワード線1の最適な読み出しレベルは右にシフトされ、わずかに増大した値を有し、一方、ワード線64は左にシフトされ、わずかに低減した値を有する。更に説明するように、各読み出しレベルの電圧でのこれらの各シフトは、各主読み出しレベル電圧からのバイアス値又は読み出しレベルオフセットとして表され得る。
図4は、本技術の様々な態様による複数のワード線の読み出しレベルオフセット値の範囲例のエラーカウントテーブル400の例を示す。上で説明したように、メモリセルの特定の状態の読み出しに使用される最適な読み出しレベルは、ワード線に変化し得、各ワード線が互いに対して一意の特徴セットを有し得ることを示す。ワード線間の最適な読み出しレベルの変動は、本明細書では「読み出しレベルオフセット」とも呼ばれる特定のバイアスによって主読み出しレベルを変更することによって示され得る。読み出しレベルオフセットは、各ワード線、各ブロック、及び/又は各メモリダイで異なり得る。これに関して、複数のオフセットが適用され得る:各ワード線に1つ、各ブロックに1つ、及び/又は各メモリダイに1つ。
テーブル400の各行は、異なるワード線を表し、一方、各列は異なる読み出しレベルオフセット値を表す。ブロックの各ワード線がテーブル内で表され得る。テーブル例に列挙されたエラーカウントは、対応するオフセット値での対応するワード線を読み出す場合に生成されるエラー数である。エラーカウントは、ワード線及び読み出しレベルオフセット値によってインデックス付け得る。読み出しレベルオフセット値は、主読み出しレベル電圧からの「チック」単位で表される。幾つかの実施態様では、1つ置きのチックが25mVと同等であり得る。さらに、各読み出しレベル電圧に異なるテーブルがあり得る。例えば、示されるテーブルは、RL1のものであり得、一方、異なるテーブルが、RL2を用いて同じワード線を読み出す場合のエラーカウントを提供し、異なるテーブルが、RL3を用いて同じワード線を読み出す場合のエラーカウントを提供する。
テーブルはまず、実験室データに基づいて生成し得る。少なくとも1つの例では、エラーカウントテーブルは、メモリブロクのワード線の読み出しに基づいて生成し得、各ワード線は、異なるオフセット電圧による各読み出しで変更された、選択された読み出しレベル電圧を使用して複数回、読み出される。したがって、エラーカウントは、各オフセット電圧に生成され、ワード線及び各オフセット電圧によってエラーカウントをインデックス付けるテーブルが生成される。
図5A〜図5Cは、本技術の様々な態様による、循環メモリブロックの最適な読み出しレベルオフセット例のチャートを示す。上で説明したように、メモリセルは、循環する際、いくらかの劣化を受け得る。したがって、分布L0、L1、L2、及び/又はL3は、期待値からドリフト又は移動し得、最小のエラーで新しい値のセルを読み出すために、新しい最適読み出しレベルが必要とされる。示される例では、最適読み出しレベルオフセット値は、主読み出しレベルRL1、RL2、及びRL3のメモリブロックの128本のワード線(0〜127)についてチャート化される。図5Aは、RL1を使用したMSBページの読み出し例を表し、読み出しレベルオフセット値が、18チック〜12チックの間で変動してから、より高いワード線番号の場合の14チックに落ち着くかを示す。図5Bは、RL2を使用したLSBページの読み出し例を表す。図5Bは、より低いワード線番号ほど(例えば、ブロックの冒頭)、より高いワード線番号(例えば、ブロックの末尾)よりも大きなオフセット(すなわち、18チック)がいかに要求されるかを示す。RL2に適用される読み出しレベルオフセットの値は、ワード線0の場合の18チックからワード線120の場合の10チックに、そして最後にワード線127での4チックに概して低減するように見える。図5Cも同様のパターンを辿る。
図6は、本技術の様々な態様による、オフセットワード線グループを生成するアルゴリズム例のブロック図を示す。アルゴリズム602は、コンピュータソフトウェア(例えば、計算デバイスで実行中の命令)、電子ハードウェア、又は両方の組合せとして実施し得る。3つ(又は4つ以上)の異なる読み出しレベルを使用して、例えば128本のワード線のそれぞれ内のメモリセルを読み出す最適な読み出すレベルを提供するために必要なオフセット値の記憶は、大量のメモリ空間を提供する。したがって、本技術は、メモリ読み出し動作での最適なビットエラーレート低減に近いものを提供しながら、記憶する必要があるオフセット値(又は読み出しレベル)の量を低減する読み出しレベルプロファイリングアルゴリズム602を実施する。読み出しレベルプロファイリングアルゴリズム602は、ハード又はソフト復号化失敗を増大させるおそれがある対応する読み出し動作によって生成されるビットエラーレートを低下させずに、記憶される読み出しレベルオフセット数を低減する。
読み出しレベルグループ化アルゴリズム602は、入力として、例えば、ブロックのワード線の初期区分の形態の初期境界条件と、上述したエラーカウントテーブル400をとる。境界条件によって定義されるワード線の各区分は、1組の(入力)ワード線グループ候補を形成し、各候補は連続ワード線アドレスで構成される。例えば、初期境界条件は4つのグループ候補を指定し得、グループ1はワード線0〜31として、グループ2はワード線32〜63として、グループ3はワード線64〜95として、グループ4はワード線96〜127として指定し得る。これらのグループ候補は、アルゴリズム600がエラーレートを分析し、最終的に、記憶デバイスの動作中の読み出し動作で使用する最適な(出力)オフセットワード線グループを形成する最適境界条件を生成するために使用する初期境界条件をセットアップする。
アルゴリズム例602は、テーブル400と、初期境界条件とをとり、最適オフセットワード線群を出力する。アルゴリズム602によって出力される各最適オフセットワード線群は、初期条件(例えば、128ワード線)の一部として、合計ワード線入力の連続部分を含む。アルゴリズム602によって出力される最適オフセットワード線グループの境界は、初期境界条件と同じであってもよく、又は同じでなくてもよく、多くの場合、異なる。各最適オフセットワード線グループは、グループの対応する最適オフセット電圧と対になった連続グループ化ワード線を含む。グループは、ワード線に関して連続して並び得る。
各最適オフセット電圧に対する各最適オフセットワード線グループの各対は、各オフセットワード線グループでのワード線読み出し及びグループ全体として可能な限り低い全体エラーカウントのものがアルゴリズムによって自動的に選択される。一般に、アルゴリズム400によって生成される1組の最適オフセットワード線群が、少なくとも部分的に、ワード線位置と、ワード線グループの各初期セットのオフセット値とに基づいて生成されて、各出力グループの最良近似又は正規化エラーカウントを特定する。したがって、読み出しレベルグループ化アルゴリズム602は、例えば、入力テーブル400に基づいて、最小のビットエラーレート低下を提供する各グループの最適オフセットワード線グループ(例えば、各グループの境界として)及び最適読み出しレベルオフセット(又は読み出しレベル)を出力する。
図7は、本技術の様々な態様による、オフセットワード線グループを生成する第1のプロセス例700の流れ図を示す。説明のために、ここでは、プロセス例700の様々なブロックは、本明細書に記載される構成要素及び/又はプロセスを参照して説明される。プロセス700のブロックの1つ又は複数は、例えば、図15のコントローラ1501と、コントローラ1501の1つ又は複数の構成要素又はプロセッサとを含む1つ又は複数のプロセッサによって実施し得る。幾つかの実施態様では、ブロックの1つ又は複数は、他のブロックから離れて、1つ又は複数の異なるプロセッサ又はコントローラによって実施し得る。更に説明のために、プロセス例700のブロックは、直列又は線形で行われるものとして説明される。しかし、プロセス例700の複数のブロックは並列で行われ得る。さらに、プロセス例700のブロックは、示される順に実行される必要はなく、且つ/又はプロセス例700のブロックの1つ又は複数は実行される必要がない。
様々な実施態様によれば、プロセス700のブロックは、読み出しレベルグループ化アルゴリズム602によって実施される。これに関して、プロセス700のブロック又はそのサブセットは、メモリデバイスで使用される可能な各読み出しレベルで実行し得る。例えば、プロセス700のブロックは、テーブル400及び入力境界条件に基づいて、RL1、RL2、及びRL3の最適なオフセットワード線グループを生成するように実行し得る。様々な態様では、異なるサイズであり、且つ/又は異なるオフセット値対を有するオフセットワード線グループが、異なる読み出しレベル毎に生成され得る。さらに、プロセス700のブロックは実行されて、異なるブロック及び/又はダイに異なるグループを生成し得る。プロセス700は、記憶デバイスの構成中、動作前、又は動作中に実施し得る。
一般に、初期境界条件毎に、プロセス700は、幾つかの反復ステップを実行して、対応する入力テーブル400によって決定されるように、最適ビットエラーレートと比較して全体的なビットエラーレートの最小の増大を提供する各グループに最適なグループ境界及び対応する最適読み出しレベルオフセットを自動的に選択する。境界条件によって定義される幾つかのグループ候補について、アルゴリズム600は、2つの連続したグループk及びk+1を選択し得、第1のグループの第1の要素から開始して第2のグループの最後の要素まで、全ての可能な2つの連続区分を考慮する。
示される例では、ブロックのワード線は、グループ候補に分割される(702)。128本のワード線が使用される例では、ブロックは4つのグループ候補に分割し得、グループ1はワード線0〜15として、グループ2はワード線16〜31として、グループ3はワード線32〜63として、グループ4はワード線64〜79として分割され、以下同様である。上述したように、グループの分割はグループの境界として表し得る。次に、プロセス600は、1組の連続グループ候補を選択する(704)。例えば、グループ1及び2が選択され、それにより、0〜31の1組のワード線を形成する。1組からの複数の連続したサブグループの順列が考慮される(706)。本明細書での様々な例では、2つのサブグループの順列が考慮されるが、より多数のサブグループが考慮され得る。所与の例では、サブグループは連続しており、グループ内のワード線は連続しているため、n本のワード線の最大順列数はn−1順列になる。0〜31にわたる1組のワード線の例の順列は、{[0,1〜31],[0〜1,2〜31],[0〜3,4〜31],・・・,[0〜30,31]}を含み得る。
プロセス例700は、最小平均アルゴリズムとして示される。すなわち、可能な各順列について、平均エラーカウントが、対応するエラーテーブルに基づいて計算され、次に、順列内のサブグループが比較されて、最少エラーレートを有するものを選択する。これに関して、各サブグループのエラーカウントは、エラーカウントテーブル400に基づいて利用可能な全ての読み出しレベルオフセットを使用して計算され、各順列で最少のエラーレートを提供する読み出しレベルが特定される。示される例では、プロセス700は、第1の順列で開始(又は第1の順列を選択)し(708)、次に、順列内の各サブグループについて(710)、入力テーブル400内で表された各オフセット値のサブグループに対応する合計エラーカウントを見つける(712)。合計エラーカウントは、例えば、テーブル400に表される第1のオフセット値と、第1の(i=1)サブグループ内の各ワード線とによってテーブル400をインデックス付けて、サブグループ内の各ワード線のエラーカウントを特定し、次に、特定されたエラーカウントを合算することによって見つけることができる。テーブル400によって表される他のオフセット値の合計エラーカウントも同様にして特定され、その結果生成されるエラーカウントの和が比較され、サブグループの最小エラーカウントを有するオフセット値を識別する。次に、識別されたオフセット値が選択され、サブグループに関連付けられる(714)。同じプロセスが順列の次のサブグループに適用される。
上記プロセスは、ブロック708から再開して、オフセット値が各順列の各サブグループに関連付けられるまで繰り返され(716)、各サブグループにも、関連付けられたオフセット値に対応する合計エラーカウントが関連付けられる。以下の表1は、2つのサブグループの3つの順列のオフセット関連例を提供する。
Figure 0006218195
オフセット値が各順列の各サブグループに関連付けられると、プロセス700は、最小合計エラーカウントを有する順列を選択する(718)。最小合計エラーカウントは、使用されるアルゴリズムの実施に応じて、順列内の両サブグループの合計エラーカウント又は第1若しくは第2のサブグループであり得る。様々な例では、全てのワード線(両サブグループ)にわたって合算された合計エラーカウントが使用されて、順列を比較する。プロセス700は、第1のサブグループ及び選択された順列の対応するオフセットを最適対として選択することによって続く(720)。
プロセス700は、第3のグループ候補を選択することによって続き、第2のサブグループ及び第3のグループ候補に対して上記ステップを繰り返す。示される例では、プロセス700は、より多くの入力グループ候補があるか否かを判断する(722)。次のグループ候補が存在する(例えば、上記例でのワード線32〜47)場合、ブロック718において識別される順列の第2のサブグループが選択され、次のグループ候補と共にアルゴリズムにリファクタリングされる(724)。上記例では、第1のサブグループが、第1及び第2のグループ候補(ワード線境界0〜31を有する)に基づいて生成されるワード線境界0〜22を含む場合、ワード線23〜31を有する第2のサブグループは、アルゴリズムへの次の後続グループ候補入力と共に、次のグループ候補セットで使用される。したがって、上記例では、次のグループ候補セットは、ワード線23〜31を有する候補グループと、ワード線32〜47を有するグループ候補とを含む。次のグループ候補が存在しない場合、アルゴリズムは、第2のサブグループ及びブロック718において識別される順列の対応するオフセットを最終的な最適対として選択し得る(726)。
プロセス700は、出力グループ境界がある反復から次の反復で変化しなくなるまで、又は特定数の反復に達するまで、繰り返し得る。各反復は、同じ初期境界条件、ブロック726の終わりに生成される出力境界条件、又は新しい/異なる境界条件を使用して実行し得る。ランダム化もプロセス700内で導入し得る。例えば、任意の特定の順序にないサブグループを含む順列を生成し得る。第1のサブグループはワード線13〜31を含み得、第2のサブグループはワード線0〜12を含み得る。
プロセス例700は最小平均アルゴリズムとして示されるが、他のタイプのアルゴリズムを実施することもできる。例えば、最小最大アルゴリズムを実施し得る。このようにして、ブロック712は、順列内の各サブグループ(710)で、各オフセット値でのサブグループ内の全てのワード線の最大エラーカウントを見つける(712)ように変更し得る。最大エラーカウントは、例えば、第1のオフセット値によりテーブル400をインデックス付け、第1のオフセット値によってインデックス付けされるエラーカウントと、サブグループ内の各ワード線(例えば、順列{[0〜3],[4〜31]}の第1のサブグループ内のワード線0、1、2、及び3)とを比較することにより、見つけ得る。次に、各オフセット値で見つけられた最大エラーカウントが比較され、次に、全ての最大エラーカウントの最小に対応するオフセット値が選択され、サブグループに関連付けられる(714)。同じプロセスを順列の次のサブグループに適用し得る。最小最大アルゴリズムを実施するプロセス700の一利点は、エラー修正のために記憶デバイスによって使用されるエラー修正符号化の最大容量未満にエラーを保つことを含む。
特定の態様では、本技術は、プロセス例700に関して上述したものとは異なるブロック又はステップの実施を含み得る。初期境界条件及びテーブル400を利用することにより、プロセス700は、例えば、テーブル400内の最適値からの各グループ内の各ワード線の最小ビットエラーレート低下を提供する各グループの最適読み出しレベルを含め、最適オフセットワード線グループの境界を出力する。
図8は、本技術の様々な態様による、オフセットワード線グループを生成する第2のプロセス例800の流れ図を示す。説明のために、ここでは、プロセス例800の様々なブロックは、本明細書に記載される構成要素及び/又はプロセスを参照して説明される。プロセス800のブロックの1つ又は複数は、例えば、図15のコントローラ1501と、コントローラ1501の1つ又は複数の構成要素又はプロセッサとを含む1つ又は複数のプロセッサによって実施し得る。幾つかの実施態様では、ブロックの1つ又は複数は、他のブロックから離れて、1つ又は複数の異なるプロセッサ又はコントローラによって実施し得る。更に説明のために、プロセス例800のブロックは、直列又は線形で行われるものとして説明される。しかし、プロセス例800の複数のブロックは並列で行われ得る。さらに、プロセス例800のブロックは、示される順に実行される必要はなく、且つ/又はプロセス例800のブロックの1つ又は複数は実行される必要がない。
様々な実施態様によれば、プロセス800のブロックは、プロセス700の1つ又は複数のブロックに対応又は補足する。これに関して、プロセス800のブロックの部分は、アルゴリズム600によって実行し得る。プロセス800のブロック又はそのサブセットは、メモリデバイスで使用される可能な読み出しレベル毎に実行し得る。例えば、プロセス800のブロックは実行されて、テーブル400及び入力境界条件に基づいて、RL1、RL2、及びRL3の最適オフセットワード線グループを生成し得る。様々な態様では、異なるサイズであり、且つ/又は異なるオフセット値対を有するオフセットワード線グループが、異なる読み出しレベル毎に生成され得る。さらに、プロセス800のブロックは実行されて、異なるブロック及び/又はダイに異なるグループを生成し得る。プロセス800は、記憶デバイスの構成中、動作前、又は動作中に実施し得る。
示される例では、本技術によるシステムは、所定のプログラミングレベルにプログラムされたメモリセルの大半を読み出すのに十分な読み出しレベル電圧を提供する。幾つかの実施態様では、各メモリセルは、4つのプログラミングレベルの1つにプログラムされるように構成されるマルチレベル不揮発性メモリセルである。例えば、第1及び第4のプログラミングレベルには、第1のビット値(例えば、最上位ビットのバイナリ0又は1を表す)が関連付けられ得、第2及び第3のプログラミングレベルには、第2のビット値(例えば、最下位ビットのバイナリ0又は1を表す)が関連付けられ得る。上述したように、電圧が、セルのプログラムレベルに対応する特定の読み出しレベル(例えば、RL1、RL2、RL3)においてメモリセルに印加される場合、セルは導通し、プログラムレベルを示す。
システムは、複数のメモリワード線を複数の最適なワード線グループに分割し、各ワード線グループには、複数の正規化読み出しレベルオフセットのうちの1つが関連付けられる(804)。各最適ワード線グループは、メモリブロックの連続順ワード線で構成され、グループのうちの最初のグループのワード線は、グループのうちの2番目のグループのワード線に先行する。これに関して、各オフセットは、対応するワード線グループのワード線を読み出す読み出しレベル電圧とのオフセットの併用から生じる最良のエラーレートについて正規化される。幾つかの実施態様では、複数のワード線を最適ワード線グループへの分割は、各順列に関連付けられた合計エラーカウントの最小に基づいてワード線グループ候補の所定のセット内からの連続ワード線サブグループの各順列を選択すること(例えば、図7のブロック702〜706)を含む。このようにして、各連続ワード線サブグループには、複数の可能な読み出しレベルオフセットに関連付けられたエラーカウントの最小に対応する読み出しレベルオフセットに関連付けられる。
例として図7を参照すると、第1及び第2の連続ワード線グループは、ワード線グループ候補の所定のセットから選択し得る(704)。上述したように、ワード線グループ候補は、初期境界条件に基づき得る。次に、複数のサブグループ順列が、選択された第1及び第2の連続ワード線グループに提供し得(706)、各サブグループ順列は、第1及び第2の連続ワード線グループにわたるワード線の複数の連続ワード線サブグループを含む。各サブグループ順列のワード線サブグループ毎に、各読み出しレベルオフセットは、読み出しレベル電圧と併用されて、ワード線サブグループ内のワード線を読み出す場合、各読み出しレベルオフセットがワード線サブグループの最小数のエラーを生成するように、可能な読み出しレベルオフセットから選択し得る(714)。次に、サブグループ順列内の連続ワード線サブグループの最低合計エラーカウントを有する複数のサブグループ順列を選択し得る(718)。したがって、複数のワード線グループは、少なくとも部分的に、複数のサブグループ順列のうちの選択された順列に対応する1つ又は複数の読み出しレベルオフセットに基づき得る。
幾つかの実施態様では、複数のワード線を複数のワード線グループに分割することは、各順列に関連付けられた最大エラーカウントの最小に基づいて、ワード線グループ候補の所定のセット内からの連続ワード線サブグループの各順列を選択することを含み、連続ワード線サブグループのそれぞれには、複数の可能な読み出しレベルオフセットに関連付けられた最大エラーカウントの最小に対応する読み出しレベルオフセットが関連付けられる。例として、ワード線サブグループ毎に、システムは、可能な各読み出しレベルオフセットが読み出しレベル電圧と併用されて、ワード線サブグループのワード線を読み出す場合、ワード線サブグループ内のワード線に生成される最大数のエラーを特定し得る。次に、特定された最大数の最小に対応する読み出しレベルオフセットが、複数の可能な読み出しレベルオフセットから選択し得る。サブグループ順列毎に、サブグループ順列のワード線サブグループに対応する選択された読み出しレベルオフセットの最大エラーカウントが特定される。次に、サブグループ順列に特定された最大エラーカウントの最小を有するサブグループ順列が選択される(例えば、718参照)。
上記実施態様の1つ又は複数では、各順列の各連続ワード線サブグループは、ワード線グループ候補の所定のセット内の連続ワード線のインターリーブに基づいて生成し得る。インターリーブは、ランダム化の導入に使用し得る。例えば、サブグループ順列内の第1のワード線サブグループは、ワード線14〜31を含み、その後、ワード線0〜13を含む第2のサブグループが続く。3つのサブグループを含むサブグループ順列では、順列の第1のワード線サブグループはワード線4〜6を含み得、順列の第2のワード線サブグループはワード線0〜3を含み得、順列の第3のワード線サブグループはワード線7〜32を含み得る。
さらに、各正規化読み出しレベルオフセットは、エラーレートテーブルのインデックス付けに基づいて生成し得(例えば、任意の上記実施態様を使用して)、テーブル内の各エラーレートは、各読み出しレベルオフセット及び各ワード線に基づいてインデクス付けられる。このようにして、テーブルは、複数の連続ワード線によってインデックス付けられて、各連続ワード線の最低エラーレートを有する対応する読み出しレベルオフセットを識別し、単一の識別されたオフセットに関連付けられた場合、連続ワード線のグループで可能な限り最小のエラーレートを有する連続ワード線グループを特定する。
ワード線グループが生成されると、複数の正規化読み出しレベルオフセットには、各最適ワード線グループが関連付けられ、記憶デバイスの動作中にメモリセルを読み出す際に使用されるために記憶される(806)。これに関して、上記プロセスは、最適ビットエラーレートと比較して全体ビットエラーレートの最小増大を提供する各グループの最適グループ境界及び対応する最適読み出しレベルオフセットを自動的に選択する。
プロセス例700及び800の上記特徴並びに関連する特徴及び用途の多くは、コンピュータ可読記憶媒体(コンピュータ可読媒体とも呼ばれる)に記録された命令セットとして指定されるソフトウェアプロセスとして実施し得る。これらの命令は、1つ又は複数の処理ユニット(例えば、1つ又は複数のプロセッサ、プロセッサのコア、又は他の処理ユニット)によって実行されると、処理ユニットに命令で示される行動を実行させる。コンピュータ可読媒体の例としては、CD−ROM、フラッシュドライブ、RAMチップ、ハードドライブ、EPROM等が挙げられるが、これらに限定されない。コンピュータ可読媒体は、無線又は有線接続を渡る搬送波及び電子信号を含まない。
低密度パリティチェック(LDPC)用途では、LLRは、「0」又は「1」であるビットの確率の比率の対数を含み得る。LLRは所定の範囲にわたり得る。例えば、幾つかの実施態様では、LLRは−255〜+255の範囲にわたり得る。正のLLRは一般に、メモリセルから読み出された信号が0ビットである可能性が高いことを示し得、負のLLRは一般に、メモリセルから読み出された信号が1ビットである可能性が高いことを示し得る。LLRには、メモリセルから読み出されたビット値が関連付けられ得る。5に等しいLLRに関連付けられたビットは、1に等しい関連付けられたLLRを有するビットよりもバイナリゼロである可能性が高いことができる。0に等しい関連付けられたLLRを有するビットは、バイナリ1又は0である等しい可能性を有し得る。
特定の読み出しレベルで、0ビットがメモリセルから読み出される場合、正のLLRが割り当てられ得る。1ビットが読み出される場合、負の値が割り当てられ得る。2ビットを有するマルチレベルメモリセルでは、複数の電位セル分布レベル(例えば、L0、L1、L2、及びL3)がある。MSBの読み出しでのバイナリ1とバイナリ0との区別は、複数の読み出しレベル境界にわたる特定を必要とし得る。図1の例では、0と1との区別は、中央の2つの分布L1及びL2(例えば、バイナリ0xの場合)又は端の分布L0及びL3(例えば、バイナリ1xの場合)内のセルが導通するか否かを特定する必要がある。したがって、その特定を行うために、複数の読み出しレベルが関わり得る(例えば、RL0及びRL2)。
図9は、本技術の態様による、バイナリ入力及びK変数出力を有する離散メモリレスチャネル(DMC)としてモデリングされるフラッシュメモリチャネル例900を示す。この例では、K変数出力は、複数の読み出しを用いて識別し得るK個のセルプログラム領域(ビン)に対応する。チャネル900のモデルは、対数尤度比(LLR)の定義を提供する。このモデルを使用して、LLRは、
Figure 0006218195
として定義し得る。
幾つかの実施態様では、全ての入力が等しく可能であると仮定し得、したがって、式(1)の表現は、
Figure 0006218195
になる。
図2Aを参照すると、LSBページ読み出しでK=2である場合、K個の領域がr∈{α,α}として指定され、ここで、図2Aの領域αのLLRは、
Figure 0006218195
によって与えられる。
図2Bを参照すると、MSBページ読み出しでK=7である場合、領域は
Figure 0006218195
として使用され得る。
読み出しレベルは、N個の読み出しのそれぞれの前に設定し得る。ルックアップテーブルが使用されて、メモリセルのLLR値の特定に使用されるビンの数に基づいて、読み出しレベルの数及び読み出しレベルの値を特定し得る。フラッシュメモリデバイスは、記憶された読み出しレベルを使用してLSB又はMSBページを読み出すように命令され得る。上述したように、ビンを作成するために、第1の読み出しレベルが使用されて、セルの推定値を特定し、次に、複数の読み出し(例えば、一連の読み出し)が実行されて、関連付けられたLLR値を特定する。幾つかの態様では、読み出しレベルは、各ビンに関連付けられた所定の(例えば、記憶された)オフセットだけ、第1の読み出しレベルを変更することによって特定される。このオフセットは、本技術によって決定されるオフセットとは異なり得る。
読み出しデータでの遷移は分析されて、どの領域が各メモリセルの電圧閾値(V)を含む化を特定する。したがって、第1の読み出しレベルを記憶し得(例えば、一時的に)、領域が、メモリセルから読み出されたバイナリ値(例えば、正又は負)及び第1の読み出しレベルとメモリコントローラによって開始される続く読み出しレベルとの差に基づいてに特定され得る。読み出しレベルは、所定の順序で変更されてもよく、又はされなくてもよい。読み出しレベルが規定の順序で変更される場合、前の読み出しレベルのみを記憶し得、続く各読み出しでセルプログラム領域を特定し得る。全ての読み出しが実行される場合(例えば、一度に)、ルックアップテーブルが使用されて、受信したバイナリ値に基づいてビンを特定し得る。特定されると、各セルプログラム領域のビン数を特定し得る。ビンに割り当てられたLLRは、ビン内に入る全てのセルに適用し得る。メモリセル毎に、ビン数はルックアップテーブル内のLLR値にマッピングされる。
上記によれば、主読み出しレベル(例えば、RL1、RL2、又はRL3)の場合、ビンの数は読み出し回数に1を足したものに等しくなる。したがって、LLR値に生成されるテーブルは、8ビンに対応する8列を有し得る。この例では、MSBページは、表2に示されるように、2行を有し得る。
Figure 0006218195
表2に関する主読み出しレベルの位置は、ビン3とビン4との間である。LSBページに生成されるテーブルは、表3に示されるように、1行のみを必要とし得る。
Figure 0006218195
上述したように、オフセット(又はバイアス値)は、低ビットエラーレートを有する最適な読み出しレベルを得るために、主読み出しレベル(例えば、RL1、RL2、RL3)と関連して実施し得る。オフセット値は、例えばダイ若しくはブロックに対して大域的に設定してもよく、又は個々のワード線単位で設定してもよい。各ワード線は、読み取り動作中、各ワード線により大きな又はより小さなエラーを示させる違い及び/又は固有の特徴を有し得る。したがって、最良のエラーレート−最小のエラーレートを得るために、最適な読み出しレベルが特定されなければならない。幾つかの態様では、ワード線の最適な読み出しレベルは、実験室データによって特定し得る。本明細書に記載される様々な例では、ワード線は、異なるオフセットで読み出され得、各読み出しのエラーカウントは、後に比較するためにテーブルに配置し得る。この実験室データはメモリのライフサイクルの一部で有用であり得るが、メモリセルの特徴は経時変化し、データは、メモリセルのライフサイクルでのある時間期間後は、最良のエラーレートを得るに当たりそれ程有用ではないことがある。
例えば、各読み出しレベル(例えば、RL1、RL2、又はRL3)及びメモリの予期される寿命での複数の異なる期間に異なるテーブル400が、メモリに記憶され得、それにより、デバイスは、デバイスの予期される寿命全体を通して最適に近いビットエラーレートを取得し得る。しかし、実験室データは、あらゆるダイ、あらゆるブロック、又はデバイスの寿命にわたり個々のワード線若しくはメモリセルによって予期され得るあらゆる形態の劣化に適用されなくてもよい。したがって、本技術は、メモリデバイスの動作中、新しい最適読み出しレベル及び/又はオフセットを推定することにより、読み出しレベルを動的に(例えば、実行時に)較正するメカニズムを提供する。
図10A〜図10Cは、本技術の様々な態様による、読み出しレベル例及び/又は読み出しレベルオフセット例を較正する線形補間グラフ例を示す。グラフは、本技術のアルゴリズムが読み出し動作の新しい較正オフセットをいかに決定するかを表す。上記の表2及び表3を参照すると、各グラフは、各ビンに関連付けられた所定のオフセット値に関して計算されたLLR値をチャート化する。したがって、x軸は、非較正ゼロオフセット902からの様々な負及び正のオフセット値を表す。示される例では、非較正オフセット1002(「0」と記される)は、ビンの生成に使用される「補足」読み出しレベルによって再読み出しされる前に、メモリセルのプログラムレベルを最初に特定するために使用される各「中心」読み出しレベル(例えば、RL1、RL2、又はRL3)に対応する。
各ビンは、固定量に従ってx軸上で6チックにわたる。示される例では、オフセットは6チックの等間隔で離間される。x軸上のオフセット0〜+6はビン4に対応し、オフセット+7〜+12はビン5に対応し、オフセット+13〜+18はビン6に対応し、オフセット+19〜+24はビン7に対応する。同様に、x軸上のオフセット0〜−6はビン3に対応し、オフセット−7〜−12はビン2に対応し、オフセット−13〜−18はビン2に対応し、オフセット−19〜−24はビン0に対応する。ビンに配置される対応するLLR値は、オフセット値−21、−15、−9、−3、+3、+9、+15、及び+21のそれぞれでチャート化される。これらのオフセット値は単に例として提供され、特定のメモリ実施に従って他のオフセット値を使用してもよい。
ワード線又はブロックのメモリセルが読み取られ、LLRが特定されると、本技術は、上記の表2及び表3に示されるように、表中のRL1、RL2、及びRL3のそれぞれのビンにLLRを割り当てる。次に、対応するビン(例えば、0〜7)にわたるLLR値の線形補間が使用されて、表されたLLR値の零交差点1004を特定する。これに関して、テーブルの行中のLLR値は走査されて、零交差点がどこにあるかを特定する。図10A及び上記の表1に関して、RL1の零交差点904はビン5とビン6との間にあり、LLR値−38及び5をそれぞれ有する。零交差点1004に対応するx軸に沿ったオフセット値1006が、対応する読み出しレベル(例えば、RL1、RL2、又はRL3)の較正オフセット値として選択される。図10Aでは、較正オフセット値は、約+14チック(例えば、+175mV、各チックは25mVである)であると特定される。図10Bでは、較正オフセット値は約+12チックであると特定される。図10Cでは、較正オフセット値は約+10チックであると特定される。
上に示したように、各読み出しレベル(例えば、RL1、RL2、又はRL3)の較正オフセット値を特定し得る。幾つかの実施態様では、較正オフセット値は、個々のワード線の既存のオフセット値を調整するために、又はブロック若しくはダイに大意的に置換又は使用され得る。幾つかの実施態様では、較正オフセット電圧は、例えば、プロセス700及び800によって特定されるオフセットワード線グループに前に関連付けられた読み出しレベルオフセットを置換する。幾つかの態様では、前に関連付けられた読み出しレベルオフセットは、較正電圧によって調整される。
そのような場合、較正オフセット電圧は、ブロック、ダイ、又はグループの全てのメモリセルのLLRに基づいて特定される必要はなく、むしろ、1つ又は複数の選択されたワード線、ワード線の部分、1つ又は複数のコードワード等の範囲に基づいてビンに割り当てられたLLR値に基づいて特定し得る。幾つかの実施態様では、較正オフセット値は、ワード線グループに特定されるオフセットに加えて記憶され、ワード線グループに割り当てられるオフセット及び任意のグローバルオフセットがある場合には任意のグローバルオフセットを用いた読み出し動作のときに合算し得る。
読み出しレベルは、フラッシュデバイスの予期される寿命中の特定の時点で上記手順を使用して較正し得る。例えば、較正手順は、ブロックが所定数のプログラム/消去サイクルを受けたときに実行し得る。較正手順は、例えば、所定のエラー閾値数を満たす読み出し動作に関連して生成されるエラーカウントに応答して、「大胆モード」で実行し得る。所定の閾値は、1つの読み出し動作又はある時間期間にわたる複数の読み出し動作での1つ又は複数のコードワード、ワード線、ブロック、又はそれらの組合せに関してのものであり得る。幾つかの実施態様では、所定のエラー閾値は、読み出し動作を受ける1つ又は複数のメモリセルの読み出し又は復号化の失敗を含み得る。例えば、生成されるエラー数は、フラッシュメモリデバイスに関連付けられたECC方式が対処することができる数を超え得る。
全体的に高いエラーカウントに関連付けられた(閾値を満たす)ワード線の識別に応答して、本技術を実施するフラッシュコントローラ又はその構成要素は、識別されたワード線に隣接する1つ又は複数のワード線内のメモリセルを読み出して、各ビンのLLR値を生成し、上記LLR線形補間プロセスを使用してワード線の読み取りの新しい較正オフセット値を特定し得る。隣接するワード線を読み取り、首尾良く復号化することができる場合、新しい較正オフセット値は、識別されたワード線内のメモリセルの読み出しを復元しようとして使用し得る。次に、識別されたワード線は、較正オフセット値に設定された(例えば、較正オフセット値によって調整された)読み出しレベルを使用して再読み出しし得る。
同様に、読み出し動作を受けるコードワード(例えば、ワード線又はワード線の一部にわたる)は、エラー閾値を満たすエラーレートを有するものとして識別され得る。例えば、コードワードを復号化する全ての試みが失敗したかもしれない。コードワードの識別に応答して、本技術を実施するフラッシュコントローラ又はその構成要素は、識別されたコードワードに隣接する1つ又は複数の他のコードワード内のメモリセルを読み出して、LLR値を生成し得、上記LLR線形補間プロセスを使用して新しい較正オフセット値を特定し得る。隣接するコードワードを読み取り、首尾良く復号化することができる場合、失敗したコードワードの復元を試みて、新しい較正オフセット値を使用し得る。次に、識別されたコードワードは、較正オフセット値に設定された(較正オフセット値によって調整された)読み出しレベルを使用して再読み出しし得る。
Figure 0006218195
上記の表4は、表2及び表3のLLR値に対応する各読み出しレベルオフセットの較正後の各ビンの更新LLR値を表す。表4によりわかり得るように、零交差点1004は、今では、3つ全ての読み出しレベルでビン3とビン4との間にある。図10D〜図10Fは、本技術の様々な態様による、読み出しレベル例及び/又は読み出しレベルオフセット例を再較正する線形補間グラフ例を示す。読み出しレベルが図10A〜図10Cに関して上述されたプロセスに従って調整された後、調整された読み出しレベルは、同じプロセスを使用して再較正されて、較正を検証又は微調整し得る。その結果生成されるLLR値は、表4及び図10D〜図10Fのグラフに示されるように、最終的にゼロオフセットに収束することが予期される。
図11A及び図11Bは、本技術の様々な態様による読み出しレベル最適化モード例を示す。フラッシュメモリ構造は、データセットがメモリの複数のチャネル1102を含むように構成し得、各チャネル1102は、例えば、メモリ1104の1つ又は複数のブロックを含む。各チャネル1102によってアドレス指定可能な各ブロック1104は、ページ1106によって更にアドレス指定可能である。示される例では、各チャネルはメモリの単一のブロックをアドレス指定し、各ブロックは256ページ(例えば、ページ0〜255)を有する。上述したように、ページ1106は、ワード線によって物理的に表し得、したがって、ページ及びワード線という用語は同義で使用し得る。
幾つかの実施態様では、図11Aに示されるように、オフセット電圧には大域的に、メモリチャネルによってアドレス指定可能な全てのブロック及び全てのページが関連付けられ得る。この実施態様では、同じオフセット値は、複数のメモリチャネルに関連付けられた任意のページ又はブロックのメモリセルを読み出すときに使用される「グローバル」オフセットである。したがって、グローバルオフセットは、本明細書に記載される任意の技法を使用して較正し得る。幾つかの実施態様では、図11Bに示されるように、複数のオフセット1110を使用し得、各オフセット値には、例えば、各オフセット値をページアドレスに関連付けることにより、各ページ(ワード線)が関連付けられる。ページアドレスに関連付けられた同じオフセット値を全てのメモリチャネルにわたる各ページに使用し得る。これらの「ページオフセット」は、グローバルオフセットが全てのページに適用され(そして必要に応じて調整され)、各ページが読み出される際、グローバルオフセットが対応するページオフセットによって変更されるという点で、グローバルオフセットに相対的であり得る。
図12は、本技術の様々な態様による、記憶デバイス内の複数のメモリセルを読み出す読み出しレベルを較正するプロセス例1200の流れ図を示す。説明のために、プロセス例1200の様々なブロックは、本明細書に記載される構成要素及び/又はプロセスを参照して説明される。プロセス1200のブロックの1つ又は複数は、例えば、図15のコントローラ1501と、コントローラ1501の1つ又は複数の構成要素又はプロセッサとを含む1つ又は複数のプロセッサによって実施し得る。幾つかの実施態様では、ブロックの1つ又は複数は、他のブロックから離れて、1つ又は複数の異なるプロセッサ又はコントローラによって実施し得る。更に説明のために、プロセス例1200のブロックは、直列又は線形で行われるものとして説明される。しかし、プロセス例1200の複数のブロックは並列で行われ得る。さらに、プロセス例1200のブロックは、示される順に実行される必要はなく、且つ/又はプロセス例1200のブロックの1つ又は複数は実行される必要がない。
様々な実施態様によれば、プロセス1200のブロックは、図9及び図10A〜図10Fに関して説明されたプロセスに対応するか、又は補足する。プロセス1200のブロック又はそのサブセットは、メモリデバイスで使用される可能な各読み取りレベルで実行し得る。例えば、プロセス1200のブロックは実行されて、RL1、RL2、及びRL3に関してワード線又はワード線グループのオフセットを生成し、調整し、且つ/又は較正し得る。様々な態様では、異なるサイズであり、且つ/又は異なるオフセット値対を有するオフセットワード線グループが、異なる各読み出しレベルで生成し得る。さらに、プロセス1200のブロックは実行されて、異なるブロック及び/又はダイの異なるグループのオフセットを生成し、調整し、且つ/又は較正し得る。プロセス1200は、記憶デバイスの構成中、動作前、又は動作中に実施し得る。
示される例では、本技術によるシステムは、所定のプログラミングレベルにプログラムされたメモリセルの大半を読み出すのに十分な読み出しレベル電圧を提供する(1202)。上述したように、メモリセルは、4つのプログラミングレベルのうちの1つにプログラムされるように構成された単一レベル又はマルチレベル不揮発性メモリセルであり得る。例えば、第1及び第4のプログラミングレベルには第1のビット値(例えば、最上位ビットのバイナリ0又は1を表す)が関連付けられ得、第2及び第3のプログラミングレベルには第2のビット値(例えば、最下位ビットのバイナリ0又は1を表す)が関連付けられ得る。上述したように、電圧がセルのプログラムレベルに対応する特定の読み出しレベル(例えば、RL1、RL2、RL3)でメモリセルに印加される場合、セルは導通し、プログラムレベルを示す。
メモリデバイスのライフサイクルでの所定の時間期間後、メモリセルの1つ又は複数の複数の読み出しに対応する信頼値が生成される(1204)。この例では、各読み出しは、読み出しレベル電圧の変動を使用し、生成される各信頼値は、メモリセルの出力状態が所定のプログラム状態に等しい尤度を示し、信頼値の範囲は負の値及び正の値にわたる。上述したように、複数の信頼値について、正の信頼値は、バイナリ0である対応する出力状態を示し得、負の信頼値は、バイナリ1である対応する出力状態を示し得る。
信頼値が生成された後、読み出しレベル電圧からオフセットされたオフセット電圧が識別される(1206)。図10A〜図10Cの示される例では、オフセットは、信頼値(例えば、表2及び/又は表3)の範囲内の零交差点1004に対応する。
オフセット電圧が識別された(例えば、読み取りレベルでの)後、読み出しレベル電圧は、オフセット電圧に基づいて較正電圧に設定される(1208)。本技術の様々な態様によれば、読み出しレベル電圧を較正電圧に設定することは、例えば、読み出し動作に関連して、記憶位置から識別されたオフセット電圧を検索し、メモリセルを読み出す読み出しレベル電圧を、識別されたオフセット電圧によって調整することを含み得る。幾つかの実施態様では、読み出し動作は、複数のメモリチャネルにわたるメモリセルで実行され、各チャネルは、1つ又は複数のメモリブロックをアドレス指定するように構成される。
図11Aを参照すると、識別されたオフセット電圧には、複数のメモリチャネルによってアドレス指定可能な全てのブロック及び全てのページが関連付けられ得、それにより、複数のメモリチャネルに関連付けられた任意のページ又はブロックのメモリセルを読み出す場合、読み出しレベルは識別されたオフセット電圧によって調整される。図11Bを参照すると、識別されたオフセット電圧にはページアドレスが関連付けられ得、読み出しレベルは、複数の任意のメモリチャネルを介してページアドレスに関連付けられたメモリセルを読み出す場合、識別されたオフセット電圧によって調整し得、複数のメモリチャネルを介してアドレス指定可能な各ページアドレスには、異なるオフセット電圧が関連付けられる。
さらに、較正のプロセスを適用して、個々のワード線のオフセットを更新するか、又は最適なワード線グループに関連付けられたオフセットを更新し得る。例えば、複数の所定の読み出しレベルオフセットを記憶し得、所定の各読み出しレベルオフセットは、グループ内のメモリセルを読み出すに当たり各読み出しレベル電圧と併用するために、ワード線グループに関連付けられる。各ワード線グループについて、グループに前に関連付けられた読み出しレベルオフセットは、識別されたオフセット電圧を用いて更新し得る。したがって、読み出し動作に関連して、更新された読み出しレベルオフセットは、記憶されたロケーション(例えば、ルックアップテーブル)から検索されて、読み出しレベル電圧を較正電圧に設定し得、新たに較正された電圧を各ワード線グループの読み出しに使用し得る。
図13は、本技術の様々な態様による、データを復元する読み出しレベルを較正するプロセス例1300の流れ図を示す。上記較正プロセス1200は更に適用されて、読み出すか、又は復号化することができないデータを復号化し得る。図13の示される実施例では、読み出し動作中、1つ又は複数のワード線又はコードワードは、エラー閾値を満たすエラーレートに関連付けられたものとして識別される(1302)。例えば、ワード線又はコードワードの読み出しは、エラー修正符号化が対処するには多すぎるデータエラーを生成することがある。これに関して、読み出し動作は、1つ又は複数の識別されたワード線に記憶されたデータを読み出すことが可能ではないことがある。
ワード線又はコードワードの識別に応答して、図12のプロセス1200又はその1つ若しくは複数のブロックを呼び出して、1つ又は複数のワード線からデータを復元し得る。これに関して、識別されたワード線又はコードワードに隣接する1つ又は複数のワード線又はコードワード内のメモリセルを呼び出して、図10A〜図10Cに関して上述した複数の信頼値を生成する(1304)。信頼値が生成された後、新しい較正オフセット電圧(例えば、信頼値の範囲内の零交差点1004に対応する)が識別され、読み出しレベル電圧は新しい較正オフセット電圧に設定/調整される(1306)。次に、識別されたワード線又はコードワードは、新たに較正された読み出しレベル電圧を使用して再読み出しされる(1308)。
図14は、本技術の様々な態様による、エラーカウントテーブルの再生成及び再インデックス付けに基づいて複数の最適なオフセットワード線グループを再生成するプロセス例1400の流れ図を示す。説明のために、プロセス例1400の様々なブロックは、本明細書では、本明細書に記載される構成要素及び/又はプロセスを参照して説明される。プロセス1400のブロックの1つ又は複数は、例えば、図15のコントローラ1501と、コントローラ1501の1つ又は複数の構成要素又はプロセッサとを含む1つ又は複数のプロセッサによって実施し得る。幾つかの実施態様では、ブロックの1つ又は複数は、他のブロックから離れて、1つ又は複数の異なるプロセッサ又はコントローラによって実施し得る。更に説明のために、プロセス例1400のブロックは、直列又は線形で行われるものとして説明される。しかし、プロセス例1400の複数のブロックは並列で行われ得る。さらに、プロセス例1400のブロックは、示される順に実行される必要はなく、且つ/又はプロセス例1400のブロックの1つ又は複数は実行される必要がない。
様々な実施態様によれば、プロセス1400のブロックは、プロセス700、800、1300、及び/又は図9及び図10A〜図10Fに関して説明したプロセスの1つ又は複数のブロックに対応するか、又は補足する。プロセス1400のブロック又はそのサブセットは、メモリデバイス内のメモリセルの読み出しに使用される可能な各読み出しレベルで実行し得る。これらのメモリセルは、複数のプログラミングレベルにプログラムされるように構成され、各プログラミングレベルは、各読み出しレベル電圧でメモリセルを読み出すことによって特定される。プロセス1400のブロックは実行されて、RL1、RL2、及びRL3についてワード線又はワード線グループのオフセットを生成し、調整し、且つ/又は較正し得る。プロセス1400のブロックの部分は、アルゴリズム602によって実行し得る。様々な態様では、異なるサイズであり、且つ/又は異なるオフセット値対を有するオフセットワード線グループが、異なる読み出しレベル毎に生成され得る。さらに、プロセス1400のブロックは実行されて、異なるブロック及び/又はダイに異なるグループのオフセットを生成し、調整し、且つ/又は較正し得る。プロセス1400は、記憶デバイスの構成中、動作前、又は動作中に実施し得る。
示される例では、本技術によるシステムは、メモリブロックのワード線の第1のサンプルの読み出しに基づいて、エラーカウントテーブルを生成する(1402)。テーブル400は、本技術によって生成し得るエラーカウントテーブルの一例である。上述したように、新しいテーブルを生成するために、各ワード線は、異なるオフセット電圧によって変更される読み出しレベル電圧を使用して複数回、読み出されて、ワード線と各読み出しレベル電圧との各組合せのエラーカウントを生成し得る。各読み出しは、各オフセット電圧のエラーカウントを生成し得る。テーブルは、テーブルの行がワード線に対応し、列がオフセット値に対応するように生成される。テーブルは、対応するワード線識別子(例えば、ワード線アドレス又は部分ワード線アドレス)と、異なる読み出しレベル電圧のそれぞれ1つ(例えば、各オフセット電圧又はオフセット電圧によって変更される読み出しレベル)とにより、生成された各エラーカウントをインデックス付け得る。次に、生成されたエラーカウントは、ワード線及び各読み出しレベル電圧によってインデックス付け得る。
追加又は代替として、メモリブロックのワード線の第1のサンプルを読み出し得、各ワード線は、異なる読み出しレベル電圧を使用して複数回、読み出されて、ワード線と各読み出しレベル電圧との各組合せのエラーカウントを生成する。各ワード線には、ワード線識別子(例えば、ワード線のアドレス)が関連付けられる。次に、エラーカウントテーブルは、生成されたエラーカウントに基づいて生成し得、エラーカウントテーブルは、対応するワード線識別子と、エラーカウントの生成に使用される異なる読み出しレベル電圧のそれぞれ1つとによって、生成された各エラーカウントをインデックス付ける。
本技術を実施する記憶デバイスを構成することに関連して、複数の最適オフセットワード線グループが、エラーカウントテーブル及び複数のワード線の初期区分に基づいて形成される(例えば、アルゴリズム602により)(1404)。ワード線グループは、エラーカウントテーブルのインデックス付けに使用されるワード線識別子に基づいて形成し得、各ワード線グループは、異なる読み出しレベル電圧のそれぞれ1つを、読み出し動作が実行される複数のワード線に関連付ける。プロセス700及び800並びに図7及び図8に関して上述したように、最適な各オフセットワード線グループは、対応するオフセット電圧と対になったワード線の連続グループ化部分を含み得、対は、各オフセットワード線グループ内のワード線を読み出す可能な限り最も低い全体エラーカウントのものが選択される。これに関して、エラーカウントテーブルは、各ワード線及び読み出しレベルオフセット電圧によってインデックス付けられて、各ワード線で可能な最大及び/又は最小エラーカウントを特定し得、次に、ワード線は、グループで可能な限り最も低いエラーカウント劣化(個々のワード線と比較して)を提供するオフセット値とそれぞれ対になった連続グループに編成し得る。
最適なワード線グループ(対応するオフセット電圧を含む)が生成された後、記憶デバイスは、エラーカウントテーブル内のエラーカウントに基づいてワード線グループに選択された読み出しレベルオフセット電圧を使用して、ワード線グループの各ワード線に対して読み出し動作を実行するように構成される(1406)。したがって、オフセットワード線グループの特定のワード線のメモリセルの読み出しに関連して、各オフセットワード線グループに関連付けられたオフセット電圧が識別され得、識別されたオフセット電圧を使用して、メモリセルが読み出され得る。様々な実施態様では、識別されたオフセット電圧は、各読み出しレベル電圧が変更されない場合よりも少数のエラーでメモリセルを読み出すように、各読み出しレベル電圧を変更する。
メモリブロックのライフサイクルでの所定の時点(例えば、メモリブロック内のメモリセルが、所定の閾値を超えるビットエラーレートを生成する時点又は所定数のプログラム/消去サイクルを経た時点)後、最適なワード線グループは、関連付けられたオフセット値を含め、再較正し得る。これに関して、エラーカウントテーブルが再生成される(1408)。エラーカウントテーブルは、エラーカウントテーブルのインデックス付けに使用されるワード線識別子に対応するワード線の第2のサンプルの読み出しに基づいて再生成し得る。例として、エラーカウントテーブルは、例えば、メモリデバイスの現在条件(例えば、電圧レベル)下でメモリブロックの複数のワード線の再読み出しに基づいて再生成し得る。
幾つかの実施態様では、エラーカウントテーブルが再生成される前、テーブルの生成に使用された読み出しレベル及び/又はオフセット電圧を較正し得る。図13及びプロセス1300を手短に参照すると、各読み出しレベル電圧についての複数の読み出しに対応する信頼値を生成し得、読み出しレベル電圧の較正電圧を識別し得(例えば、既存の読み出しレベルを較正するオフセット電圧)、読み出しレベル電圧に関連して較正電圧に基づいて、メモリブロックの複数のワード線を再読み出しするように、記憶デバイスを構成し得る。したがって、各読み出しは、様々な読み出しレベル電圧を使用し得、生成された各信頼値は、メモリセルの出力状態が所定のプログラム状態(例えば、対数尤度比)に等しいことの尤度を示し得る。信頼値の範囲は、負の値及び正の値にわたり得る。ワード線の再読み出しに使用される識別された更新オフセット電圧は、信頼値の範囲内の零交差点に対応し得る。
初期エラーカウントテーブルの生成に使用される異なる読み出しレベル電圧は、更新読み出しレベル電圧を生成するように更新し得る。例えば、異なる各読み出しレベル電圧は、較正電圧によって調整し得る。これに関して、ワード線の第2のサンプルのそれぞれは、更新読み出しレベル電圧を使用して複数回、読み出されて、更新エラーカウントを生成する。次に、エラーカウントテーブルは、生成された更新エラーカウントから再生成し得る。したがって、エラーカウントテーブルは、対応するワード線識別子と、更新エラーカウントの生成に使用される更新読み出しレベル電圧のそれぞれ1つとにより、生成された各更新エラーカウントをインデックス付け得る。
エラーカウントテーブルが再生成されると、最適なオフセットワード線グループが、ワード線及び読み出しレベルオフセット電圧により、再生成されたエラーカウントテーブルをインデックス付けることに基づいて再生成される(1410)。最適なオフセットワード線グループは、プロセス700及び/又はプロセス800の1つ又は複数のブロックによって記述されるように再生成され得る。
プロセス例1200、1300、及び1400の上記特徴並びに関連する特徴及び用途の多くは、コンピュータ可読記憶媒体(コンピュータ可読媒体とも呼ばれる)に記録された命令セットとして指定されるソフトウェアプロセスとして実施し得る。これらの命令は、1つ又は複数の処理ユニット(例えば、1つ又は複数のプロセッサ、プロセッサのコア、又は他の処理ユニット)によって実行されると、処理ユニットに命令で示される行動を実行させる。コンピュータ可読媒体の例としては、CD−ROM、フラッシュドライブ、RAMチップ、ハードドライブ、EPROM等が挙げられるが、これらに限定されない。コンピュータ可読媒体は、無線又は有線接続を渡る搬送波及び電子信号を含まない。
図15は、本技術の様々な実施態様による、データ記憶システム例1500(例えば、個体状態ドライブ)の構成要素を示すブロック図である。データ記憶システム1500は、データ記憶コントローラ1501、記憶媒体1502、及びフラッシュデバイス1503を含み得る。コントローラ1501は、データ記憶システム1500の管理に使用されるデータ及び情報の一時的な記憶に記憶媒体1502を使用し得る。コントローラ1501は、1つ又は複数のプロセッサ、読み取り専用メモリ、フラッシュ構成要素インターフェース(例えば、フラッシュデバイス1503への直列接続に沿った命令及びデータの輸送を管理するマルチプレクサ)、I/Oインターフェース、エラー修正回路等の幾つかの内部構成要素(図示せず)を含み得る。幾つかの態様では、コントローラ1501の1つ又は複数の要素は、単一のチップに集積し得る。他の態様では、要素は、2つ以上の離散構成要素で実施し得る。
コントローラ1501又はその内部の1つ若しくは複数の構成要素は、コード又は命令を実行して、本明細書に記載された動作及び機能を実行するように構成し得る。例えば、コントローラ1501は、要求フロー及びアドレスマッピングを管理する動作を実行し、計算を実行し、コマンドを生成するように構成し得る。コントローラ1501のプロセッサは、データ記憶コントローラ1501内の構成要素の動作をモニタし制御するように構成し得る。プロセッサは、汎用マイクロプロセッサ、マイクロコントローラ、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、プログラマブル論理デバイス(PLD)、コントローラ、状態マシン、ゲート論理、離散ハードウェア構成要素、又は上記の組合せであり得る。1つ又は複数の命令シーケンスは、コントローラ1501及び/又はそのプロセッサ内のROMにファームウェアとして記憶し得る。1つ又は複数の命令シーケンスは、記憶媒体1502、フラッシュデバイス1503に記憶され、読み出されるソフトウェアであってもよく、又はホストデバイス1510から受信してもよい(例えば、ホストインターフェースを介して)。ROM、記憶媒体1502、フラッシュデバイス1503は、コントローラ1501及び/又はそのプロセッサによって実行可能な命令を記憶し得るマシン又はコンピュータ可読媒体の例を表す。マシン又はコンピュータ可読媒体は一般に、記憶媒体1502又はコントローラ1501内のバッファに使用されるダイナミックメモリ等の揮発性媒体並びに電子媒体、光学媒体、及び磁気媒体等の不揮発性媒体の両方を含め、命令をコントローラ1501及び/又はそのプロセッサに提供するのに使用される任意の実体的且つ/又は非一時的な1つ又は複数の媒体を指し得る。
したがって、データ記憶システム1500は、ホストインターフェース1505を更に含み得る。ホストインターフェース1505は、ホストデバイス1510に結合され、データをホストデバイス1510に送受信するように構成される。ホストインターフェース1505は、ホストデバイス1510をコントローラ1501に動作可能に結合する電気的接続及び物理的接続の両方を含み得る。ホストインターフェース1505は、データ、アドレス、制御信号をホストデバイス1510とコントローラ1501との間で通信するように構成される。このようにして、コントローラ1501は、ホストデバイス1510からの書き込みコマンドに応答して、ホストデバイス1510から受信したデータをフラッシュデバイス1503に記憶し、ホストデバイス1510からの読み出しコマンドに応答して、フラッシュメモリ1503に記憶されたデータを読み出し、ホストインターフェース1505を介して読み出しデータをホストデバイス1510に転送するように構成される。
ホストデバイス1510は、データ記憶システム1500に結合され、データをデータ記憶システム1500にデータを記憶するように構成される任意のデバイスを表す。ホストデバイス1510は、パーソナルコンピュータ、サーバ、ワークステーション、ラップトップコンピュータ、PDA、スマートフォン等の計算システムであり得る。代替的には、ホストデバイス1510は、デジタルカメラ、デジタルオーディオプレーヤ、デジタルビデオレコーダ等の電子デバイスであり得る。
幾つかの態様では、記憶媒体1502は、データ記憶システム1500の管理に使用されるデータ及び情報を一時的に記憶するのに使用される揮発性メモリを表す。本開示の一態様によれば、記憶媒体1502は、ダブルデータレート(DDR)RAM等のランダムアクセスメモリ(RAM)である。記憶媒体1502の実施に、他のタイプのRAMを使用することもできる。記憶媒体1502は、単一のRAMモジュール又は複数のRAMモジュールを使用して実施し得る。記憶媒体1502はコントローラ1501から別個のものとして示されるが、本開示の範囲から逸脱せずに、記憶媒体1502をコントローラ1501に組み込んでもよいことを当業者は認識しよう。代替的には、記憶媒体1502は、磁気ディスク、フラッシュメモリ、周辺SSD等の不揮発性メモリであり得る。
図2に更に示されるように、データ記憶システム1500はバスを含むこともできる。バスは、シリアルアドバンストテクノロジーアタッチメント(SATA)、アドバンストテクノロジーアタッチメント(ATA)、小型コンピュータシステムインターフェース(SCSI)、PCI拡張(PCI拡張−X)、ファイバチャネル、シリアルアタッチSCSI(SAS)、セキュアデジタル(SD)、埋め込みマルチメディアカード(EMMC)、ユニバーサルフラッシュストレージ(UFS)、及び周辺構成要素相互接続エクスプレス(PCIe)を含むが、これらに限定されない適するインターフェース標準を使用し得る。
ホストデバイス1510及びデータ記憶システム1500は、有線又は無線接続を介して互いと通信し得、互いからローカル又はリモートであり得る。幾つかの態様によれば、データ記憶システム1500は、ホストデバイス1510の対応するソケット(又はピン)と嵌合するピン(又はソケット)を含み、電気的接続及び物理的接続を確立し得る。1つ又は複数の他の態様によれば、データ記憶システム1500は、ホストデバイス1510及びデータ記憶システム1500を互いに無線通信させる無線送受信器を含む。
フラッシュデバイス1503は、データを記憶する不揮発性メモリデバイスを表す。本開示の一態様によれば、フラッシュデバイス1503は、例えば、NANDフラッシュメモリを含む。フラッシュデバイス1503は、単一のフラッシュメモリデバイス又はチップを含み得、複数のチャネルに配置される複数のフラッシュメモリデバイス又はチップを含み得る。フラッシュデバイス1503は、いかなる特定の容量又は構成にも限定されない。例えば、物理的ブロックの数、物理的ブロック当たりの物理的ページの数、物理的ページ当たりのセクタの数、及びセクタのサイズは、本開示の範囲内で可変である。
フラッシュメモリは、標準インターフェース仕様を有し得る。この標準は、複数の製造業者からのチップが交換可能に使用し得る(少なくとも大幅に)ことを保証する。インターフェースは、フラッシュメモリの内部構造を更に隠し、データの内部で検出されたビット値のみを返し得る。
「ソフトウェア」という用語は、適切な場合、プロセッサによる処理のためにメモリに呼び出すことができる読み取り専用メモリに存在するファームウェア又は磁気記憶デバイスに記憶されたアプリケーションを含むことが意味される。また、幾つかの実施態様では、本開示の複数のソフトウェア態様は、本開示の別個のソフトウェア態様を残しながら、より大きなプログラムのサブパーツとして実施することができる。幾つかの実施態様では、複数のソフトウェア態様は、別個のプログラムとして実施することもできる。最後に、本明細書に記載されるソフトウェア態様を一緒に実施する別個のプログラムの任意の組合せは、本開示の範囲内である。幾つかの実施態様では、ソフトウェアプログラムは、1つ又は複数の電子システムで動作するようにインストールされる場合、ソフトウェアプログラムの動作を実行し行う1つ又は複数の特定のマシン実施態様を定義する。
コンピュータプログラム(プログラム、ソフトウェア、ソフトウェアアプリケーション、スクリプト、又はコードとしても知られる)は、コンパイル型又はインタープリタ型言語、宣言型又は手続き型言語を含め、任意の形態のプログラミング言語で書くことができ、スタンドアロンプログラム又はモジュール、構成要素、サブルーチン、オブジェクト、若しくは計算環境での使用に適する他のユニットとしてを含め、任意の形態で展開することができる。コンピュータプログラムは、ファイルシステム内のファイルに対応し得るが、そうである必要はない。プログラムは、問題となっているプログラム専用の単一のファイル又は複数の調整ファイル(例えば、1つ又は複数のモジュール、サブプログラム、又はコードの部分を記憶するファイル)に他のプログラム又はデータ(例えば、マークアップ言語ドキュメントに記憶された1つ又は複数のスクリプト)を保持するファイルの一部に記憶することができる。コンピュータプログラムは、1台のコンピュータ又は1つのサイトに配置されるか、若しくは複数のサイトにわたって分散し、通信ネットワークによって相互接続される複数のコンピュータで実行されるように展開することができる。
本明細書に記載される例示的なブロック、モジュール、要素、構成要素、方法、及びアルゴリズムが、電子ハードウェア、コンピュータソフトウェア、又は両方の組合せとして実施し得ることが理解される。ハードウェアとソフトウェアのこの交換可能性を示すために、例示的な様々なブロック、モジュール、要素、構成要素、方法、及びアルゴリズムは、一般に機能に関して上述された。そのような機能がハードウェアとして実施されるか、それともソフトウェアとして実施されるかは、特定の用途及びシステム全体に課される設計制約に依存する。当業者は、記載される機能を特定の各用途で様々な方法で実施し得る。様々な構成要素及びブロックは、別様に配置し得(例えば、異なる順序で配置し得るか、又は異なる方法で分割し得る)、それらは全て本開示の範囲から逸脱しない。
開示されるプロセスでのステップの特定の順序又は階層が、幾つかの例示的な手法の説明として提示されることが理解される。設計の好み及び/又は他の考慮事項に基づいて、プロセス内のステップの特定の順序又は階層が、再構成可能なことが理解される。例えば、幾つかの実施態様では、ステップの幾つかは同時に実行し得る。したがって、添付の方法クレームは、様々なステップの要素をサンプル順序に提示し、提示される特定の順序又は階層への限定を意味しない。
上記説明は、当業者が本明細書に記載される様々な態様を実施できるようにするために提供される。上記説明は、本開示の様々な例を提供し、本開示はこれらの例に限定されない。これらの態様への様々な変更は、当業者に容易に明らかになり、本明細書に定義される一般原理は、他の態様に適用することもできる。したがって、特許請求の範囲は、本明細書に示される態様に限定されることが意図されず、言語クレームに合致する全範囲に従うべきであり、単数形での要素の参照は、「唯一の」と特に記載される場合を除き、「唯一の」を意味することが意図されず、むしろ「1つ又は複数」を意味することが意図される。特に別記される場合を除き、「幾つかの」という用語は1つ又は複数を指す。男性形(例えば、彼の)での名詞は、女性形及び中性(例えば、彼女の及びその)を含み、この逆も同様である。見出し及び副見出しは、もしある場合、便宜上のみ使用され、本開示を限定しない。
叙述語「ように構成される」、「ように動作する」、及び「ようにプログラムされる」は、主語のいかなる特定の実体的又は非実体的変更も暗示せず、むしろ、交換可能に使用されることが意図される。例えば、動作又は構成要素をモニタし制御するように構成されるプロセッサは、プロセッサが動作をモニタし制御するようにプログラムされるか、又はプロセッサが動作をモニタし制御するように動作可能であることも意味し得る。同様に、コードを実行するように構成されるプロセッサは、コードを実行するようにプログラムされたプロセッサ又はコードを実行するように動作可能なプロセッサとして解釈し得る。
「通信する」及び「結合される」という語句は、直接通信又は本明細書で名称が示されるか、若しくは示されない1つ若しくは複数の構成要素(例えば、メモリカードリーダ)を介しての間接的通信を意味する。
「態様」等の語句は、そのような態様が本開示にとって必須であること、又はそのような態様が本開示の全ての構成に適用されることを暗示しない。態様に関連する開示は、全ての構成又は1つ若しくは複数の構成に適用し得る。態様は、1つ又は複数の例を提供し得る。態様等の語句は、1つ又は複数の態様を指し得、この逆も同様である。「実施形態」等の語句は、そのような実施形態が本開示にとって必須であること、又はそのような実施形態が本開示の全ての構成に適用されることを暗示しない。実施態様に関連する開示は、全ての態様又は1つ若しくは複数の態様に適用し得る。実施態様は、1つ又は複数の例を提供し得る。「実施形態」等の語句は、1つ又は複数の実施態様を指し得、この逆も同様である。「構成」等の語句は、そのような構成が本開示にとって必須であること、又はそのような構成が本開示の全ての構成に適用されることを暗示しない。構成に関連する開示は、全ての構成又は1つ若しくは複数の構成に適用し得る。構成は、1つ又は複数の例を提供し得る。「構成」等の語句は、1つ又は複数の構成を指し得、この逆も同様である。
「例示的な」という言葉は、本明細書では、「例又は例示として機能する」を意味するために使用されている。「例示的な」として本明細書に説明される任意の態様又は設計は、必ずしも、他の態様又は設計よりも好ましい又は有利であるものとして解釈される必要はない。
0、120、127 ワード線
401、410、420、430 セル閾値電圧分布
400 確率密度分布曲線
602 読み出しレベルプロファイリングアルゴリズム
700、800、1200、1300 プロセス
900 フラッシュメモリチャネル例
902 非較正ゼロオフセット
904、1004 零交差点
1006 オフセット値
1102 チャネル
1104 メモリ
1106 ページ
1500 データ記憶システム
1501 コントローラ
1502 記憶媒体
1503 フラッシュデバイス
1505 ホストインターフェース
1510 ホストデバイス

Claims (12)

  1. メモリブロックのワード線の第1のサンプルを読み出すことであって、前記ワード線の前記第1のサンプルのそれぞれは、ワード線識別子が関連付けられ、異なる読み出しレベル電圧を使用して複数回、読み出されて、ワード線と各読み出しレベル電圧との各組合せのエラーカウントを生成する、読み出すことと、
    前記生成されたエラーカウントに基づいてエラーカウントテーブルを生成することであって、前記エラーカウントテーブルは、生成された各エラーカウントを対応するワード線識別子及び前記エラーカウントの生成に使用された前記異なる読み出しレベル電圧のそれぞれ1つによってインデックス付ける、生成することと、
    前記エラーカウントテーブルのインデックス付けに使用された前記ワード線識別子に対応するワード線区分に基づく複数のワード線グループであって、前記ワード線グループのそれぞれは、前記ワード線グループ内のワード線を読み出すための可能な限り低い全体エラーカウントの読み出しレベル電圧と対になった前記ワード線の連続してグループ化された部分を含む、複数のワード線グループを形成することと、
    前記ワード線のそれぞれに対応する前記ワード線グループのそれぞれと対になった前記読み出しレベル電圧を使用して読み出し動作を各ワード線に対して実行するように、記憶デバイスを構成することと
    を含む、コンピュータ実施方法。
  2. 前記記憶デバイス内の1つ又は複数のメモリブロックのライフサイクル中の所定の時点後、前記エラーカウントテーブルのインデックス付けに使用される前記ワード線識別子に対応するワード線の第2のサンプルの読み出しに基づいて、前記エラーカウントテーブルを再生成することと、
    前記再生成されたエラーカウントテーブルに基づいて、前記複数のワード線グループを再生成することと
    を更に含む、請求項に記載のコンピュータ実施方法。
  3. 前記エラーカウントテーブルを再生成することは、
    前記1つ又は複数のメモリブロックのメモリセルの複数の読み出しに対応する複数の信頼値を生成することであって、各読み出しは異なる読み出しレベル電圧を使用して実行され、前記信頼値の範囲は負の値及び正の値にわたる、生成することと、
    前記信頼値の前記範囲内の零交差点に対応する較正電圧を識別することと、
    前記較正電圧に基づいて前記ワード線の第2のサンプルを読み出すように、前記記憶デバイスを構成することと
    を含む、請求項に記載のコンピュータ実施方法。
  4. 前記エラーカウントテーブルを再生成することは、
    前記較正電圧に基づいて前記異なる読み出しレベル電圧を更新することであって、前記ワード線の第2のサンプルのそれぞれは、前記更新された読み出しレベル電圧を使用して
    複数回、読み出されて、更新エラーカウントを生成する、更新することと、
    前記生成された更新エラーカウントに基づいて前記エラーカウントテーブルを再生成することであって、前記エラーカウントテーブルは、対応するワード線識別子と、前記更新エラーカウントの生成に使用された前記更新読み出しレベル電圧のそれぞれ1つとによって生成された各更新エラーカウントをインデックス付けるように更新される、再生成することと
    を更に含む、請求項に記載のコンピュータ実施方法。
  5. 前記1つ又は複数のメモリブロックの前記ライフサイクルでの前記所定の時点は、前記1つ又は複数のメモリブロック内のメモリセルの1つ又は複数の読み出しが、エラー閾値を超えるビットエラーレートを生成する前記ライフサイクルでの時点を含む、請求項に記載のコンピュータ実施方法。
  6. 前記1つ又は複数のメモリブロックの前記ライフサイクルでの前記所定の時点は、前記1つ又は複数のメモリブロック内のメモリセルが、所定数のプログラム/消去サイクルを経た前記ライフサイクルでの時点を含む、請求項に記載のコンピュータ実施方法。
  7. データ記憶システムであって、
    それぞれが複数のメモリブロックを備える複数のフラッシュメモリデバイスと、
    前記複数のフラッシュメモリデバイスに結合されるコントローラと
    を備え、前記コントローラは、構成モード中、
    前記フラッシュメモリデバイスのワード線の第1のサンプルを読み出すことであって、前記ワード線の第1のサンプルのそれぞれは、ワード線識別子が関連付けられ、異なる読み出しレベル電圧を使用して複数回、読み出されて、ワード線と、各読み出しレベル電圧との各組合せのエラーカウントを生成する、読み出すことと、
    前記生成されたエラーカウントに基づいてエラーカウントテーブルを生成することであって、前記エラーカウントテーブルは、対応するワード線識別子と、前記異なる読み出しレベル電圧のそれぞれ1つとによって、生成された各エラーカウントをインデックス付ける、生成することと、
    前記エラーカウントテーブルのインデックス付けに使用された前記ワード線識別子に対応するワード線区分に基づく複数のワード線グループであって、前記ワード線グループのそれぞれは、前記ワード線グループ内のワード線を読み出すための可能な限り低い全体エラーカウントの読み出しレベル電圧と対になった前記ワード線の連続してグループ化された部分を含む、複数のワード線グループを形成することと、
    前記ワード線のそれぞれに対応する前記ワード線グループのそれぞれと対になった前記読み出しレベル電圧を使用して読み出し動作を各ワード線に対して実行するように、記憶デバイスを構成することと
    を実行するように構成される、データ記憶システム。
  8. 前記読み出しレベル電圧を前記複数のワード線に関連付けることは、前記読み出しレベル電圧を前記複数のワード線に対応する複数のワード線アドレスに関連付けることを含む、請求項に記載のデータ記憶システム。
  9. 前記コントローラは、
    各メモリブロックのライフサイクルでの所定の時点後、前記エラーカウントテーブルのインデックス付けに使用される前記ワード線識別子に対応するワード線の第2のサンプルの読み出しに基づいて、前記エラーカウントテーブルを再生成することと、
    前記再生成されたエラーカウントテーブルに基づいて、前記複数のワード線グループを再生成することと
    を実行するように構成される、請求項に記載のデータ記憶システム。
  10. 前記エラーカウントテーブルを再生成することは、
    各メモリブロックのメモリセルの複数の読み出しに対応する複数の信頼値を生成することであって、各読み出しは異なる読み出しレベル電圧を使用して実行され、前記信頼値の範囲は負の値及び正の値にわたる、生成することと、
    前記信頼値の前記範囲内の零交差点に対応する較正電圧を識別することと、
    前記較正電圧に基づいて前記メモリブロックのそれぞれの前記ワード線を読み出すように前記記憶デバイスを構成することと
    を含む、請求項に記載のデータ記憶システム。
  11. 前記1つ又は複数のメモリブロックの前記ライフサイクルでの前記所定の時点は、前記1つ又は複数のメモリブロック内のメモリセルの1つ又は複数の読み出しが、エラー閾値を超えるビットエラーレートを生成する前記ライフサイクルでの時点を含む、請求項に記載のデータ記憶システム。
  12. 前記メモリブロックのそれぞれの前記ライフサイクルでの前記所定の時点は、前記メモリブロックのそれぞれ内のメモリセルが、所定数のプログラム/消去サイクルを経た前記ライフサイクルでの時点を含む、請求項に記載のデータ記憶システム。
JP2016054914A 2015-03-20 2016-03-18 フラッシュ性能を増大させる読み出しレベルグループ化 Active JP6218195B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US14/664,768 2015-03-20
US14/664,768 US9720754B2 (en) 2014-11-20 2015-03-20 Read level grouping for increased flash performance

Publications (2)

Publication Number Publication Date
JP2016177860A JP2016177860A (ja) 2016-10-06
JP6218195B2 true JP6218195B2 (ja) 2017-10-25

Family

ID=55952218

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016054914A Active JP6218195B2 (ja) 2015-03-20 2016-03-18 フラッシュ性能を増大させる読み出しレベルグループ化

Country Status (6)

Country Link
JP (1) JP6218195B2 (ja)
KR (1) KR101831209B1 (ja)
CN (1) CN105989891B (ja)
DE (1) DE102016003366B4 (ja)
FR (1) FR3033927B1 (ja)
GB (1) GB2537484B (ja)

Families Citing this family (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10229740B2 (en) * 2016-10-17 2019-03-12 SK Hynix Inc. Memory system of 3D NAND flash and operating method thereof
CN108257642B (zh) * 2016-12-29 2021-08-17 北京忆恒创源科技股份有限公司 读阈值设置方法与装置
US10140040B1 (en) 2017-05-25 2018-11-27 Micron Technology, Inc. Memory device with dynamic program-verify voltage calibration
US10452480B2 (en) 2017-05-25 2019-10-22 Micron Technology, Inc. Memory device with dynamic processing level calibration
US10402272B2 (en) * 2017-05-25 2019-09-03 Micron Technology, Inc. Memory device with dynamic programming calibration
US10347344B2 (en) * 2017-08-29 2019-07-09 Micron Technology, Inc. Read voltage calibration based on host IO operations
KR102395196B1 (ko) 2017-10-17 2022-05-06 삼성전자주식회사 파라미터 교정 기능을 갖는 스토리지 장치 및 상기 스토리지 장치의 동작 방법
CN110010170B (zh) * 2018-01-05 2021-04-02 旺宏电子股份有限公司 存储装置的操作方法及其存储系统
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
US10566063B2 (en) 2018-05-16 2020-02-18 Micron Technology, Inc. Memory system with dynamic calibration using a trim management mechanism
US10664194B2 (en) 2018-05-16 2020-05-26 Micron Technology, Inc. Memory system with dynamic calibration using a variable adjustment mechanism
CN108777156A (zh) * 2018-05-31 2018-11-09 郑州云海信息技术有限公司 一种闪存数据处理方法及装置
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
CN110908825B (zh) * 2018-09-17 2024-03-01 兆易创新科技集团股份有限公司 一种数据读取方法、装置、存储设备及存储介质
US10936246B2 (en) 2018-10-10 2021-03-02 Micron Technology, Inc. Dynamic background scan optimization in a memory sub-system
US11367488B2 (en) * 2018-12-11 2022-06-21 SK Hynix Inc. Memory system and method for read operation based on grouping of word lines
CN110473588A (zh) * 2019-08-15 2019-11-19 山东华芯半导体有限公司 一种SSD中在线校准NAND Flash读参考电压的方法
US11264103B2 (en) * 2019-08-28 2022-03-01 International Business Machines Corporation Hybrid read voltage calibration in non-volatile random access memory
US10957407B1 (en) * 2019-10-30 2021-03-23 International Business Machines Corporation Calculating corrective read voltage offsets in non-volatile random access memory
DE102020100541A1 (de) * 2020-01-13 2021-07-15 Infineon Technologies Ag Bestimmung eines resultierenden datenworts beim zugriff auf einen speicher
US11189351B2 (en) 2020-03-27 2021-11-30 Sandisk Technologies Llc Peak and average current reduction for sub block memory operation
CN112216333B (zh) * 2020-09-30 2024-02-06 深圳市宏旺微电子有限公司 芯片测试方法及装置

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7554853B2 (en) * 2006-12-30 2009-06-30 Sandisk Corporation Non-volatile storage with bias based on selective word line
KR101516577B1 (ko) * 2008-11-10 2015-05-06 삼성전자주식회사 비휘발성 반도체 메모리 장치, 그를 포함하는 메모리 카드와 메모리 시스템 및 그의 리드 전압 추정 방법
US8159881B2 (en) * 2009-06-03 2012-04-17 Marvell World Trade Ltd. Reference voltage optimization for flash memory
US8874825B2 (en) * 2009-06-30 2014-10-28 Sandisk Technologies Inc. Storage device and method using parameters based on physical memory block location
US8072805B2 (en) * 2009-08-18 2011-12-06 Skymedi Corporation Method and system of finding a read voltage for a flash memory
US8427875B2 (en) * 2010-12-07 2013-04-23 Silicon Motion Inc. Method and memory controller for reading data stored in flash memory by referring to binary digit distribution characteristics of bit sequences read from flash memory
US9047955B2 (en) * 2011-03-30 2015-06-02 Stec, Inc. Adjusting operating parameters for memory cells based on wordline address and cycle information
CN102831932B (zh) * 2011-06-14 2015-11-18 群联电子股份有限公司 数据读取方法、存储器控制器及存储器储存装置
US9195586B2 (en) * 2012-02-23 2015-11-24 Hgst Technologies Santa Ana, Inc. Determining bias information for offsetting operating variations in memory cells based on wordline address
US9135106B2 (en) * 2012-05-22 2015-09-15 Hgst Technologies Santa Ana, Inc. Read level adjustment using soft information
KR101984900B1 (ko) * 2012-07-24 2019-05-31 삼성전자 주식회사 메모리 장치 및 상기 메모리 장치의 독출 전압 결정 방법
US8811076B2 (en) * 2012-07-30 2014-08-19 Sandisk Technologies Inc. Systems and methods of updating read voltages
US8879324B2 (en) * 2013-02-01 2014-11-04 Lsi Corporation Compensation loop for read voltage adaptation
US20140359202A1 (en) 2013-05-31 2014-12-04 Western Digital Technologies, Inc. Reading voltage calculation in solid-state storage devices
KR102192910B1 (ko) * 2013-09-10 2020-12-18 에스케이하이닉스 주식회사 반도체 장치, 메모리 시스템 및 이의 동작 방법

Also Published As

Publication number Publication date
FR3033927A1 (ja) 2016-09-23
JP2016177860A (ja) 2016-10-06
GB2537484A (en) 2016-10-19
KR101831209B1 (ko) 2018-02-23
GB2537484B (en) 2019-07-03
GB201604222D0 (en) 2016-04-27
CN105989891A (zh) 2016-10-05
KR20160113051A (ko) 2016-09-28
FR3033927B1 (fr) 2019-10-11
DE102016003366B4 (de) 2020-10-29
DE102016003366A1 (de) 2016-09-22
CN105989891B (zh) 2020-11-24

Similar Documents

Publication Publication Date Title
JP6218195B2 (ja) フラッシュ性能を増大させる読み出しレベルグループ化
US11488673B2 (en) Calibrating optimal read levels
US9720754B2 (en) Read level grouping for increased flash performance
US9905302B2 (en) Read level grouping algorithms for increased flash performance
US9257204B2 (en) Read voltage setting method, and control circuit, and memory storage apparatus using the same
US8365040B2 (en) Systems and methods for handling immediate data errors in flash memory
US9639419B2 (en) Read voltage level estimating method, memory storage device and memory control circuit unit
US9092350B1 (en) Detection and handling of unbalanced errors in interleaved codewords
US20140281823A1 (en) System and method with reference voltage partitioning for low density parity check decoding
US20100146192A1 (en) Methods for adaptively programming flash memory devices and flash memory systems incorporating same
US9563508B2 (en) Memory management method, memory control circuit unit and memory storage apparatus
US10580485B2 (en) System and method for adjusting read levels in a storage device based on bias functions
US9952926B2 (en) Decoding method, memory storage device and memory control circuit unit
US9361024B1 (en) Memory cell programming method, memory control circuit unit and memory storage apparatus
US10685711B1 (en) Decoding method, memory controlling circuit unit and memory storage device
US20150301888A1 (en) Method, memory controller, and memory system for reading data stored in flash memory
CN110795270A (zh) 固态储存装置及其读取重试方法
US11190217B2 (en) Data writing method, memory controlling circuit unit and memory storage device
US11146295B1 (en) Decoding method, memory storage device, and memory controlling circuit unit
US9239751B1 (en) Compressing data from multiple reads for error control management in memory systems
US10978163B2 (en) Voltage identifying method, memory controlling circuit unit and memory storage device
US10628259B2 (en) Bit determining method, memory control circuit unit and memory storage device
CN110795268B (zh) 比特判断方法、存储器控制电路单元以及存储器存储装置

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20170131

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20170207

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20170502

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20170706

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170803

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20170803

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

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20170825

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20170920

R150 Certificate of patent or registration of utility model

Ref document number: 6218195

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250