JP2013080450A - メモリ装置 - Google Patents
メモリ装置 Download PDFInfo
- Publication number
- JP2013080450A JP2013080450A JP2012076747A JP2012076747A JP2013080450A JP 2013080450 A JP2013080450 A JP 2013080450A JP 2012076747 A JP2012076747 A JP 2012076747A JP 2012076747 A JP2012076747 A JP 2012076747A JP 2013080450 A JP2013080450 A JP 2013080450A
- Authority
- JP
- Japan
- Prior art keywords
- voltage
- bit read
- read voltage
- soft
- read
- 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.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C11/00—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C11/56—Digital 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/5621—Digital 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/5642—Sensing or reading circuits; Data output circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/26—Sensing or reading circuits; Data output circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/34—Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
- G11C16/349—Arrangements for evaluating degradation, retention or wearout, e.g. by counting erase cycles
Landscapes
- Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Read Only Memory (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
【課題】、復号効率のよいメモリカード3を提供する。
【解決手段】メモリカード3は、複数のメモリセル13Dと、HB読み出し電圧とSB読み出し電圧とを、メモリセル13Dに印加する制御を行うCPUコア11と、閾値電圧をもとにLLRテーブルから取得したLLRに基づき軟判定復号を行うECC部1と、を具備し、第1のLLRテーブル20Aから取得したLLRに基づいた復号が失敗した場合に、最高電圧の第1のHB読み出し電圧H07を中心とする閾値電圧分布を測定し、閾値電圧分布の最小頻度電圧VMと第1のHB読み出し電圧H07との差である第1のシフト値ΔV1が「負」の場合には、第2のLLRテーブル20Bから取得したLLRに基づき復号を行い、第1のシフト値ΔV1が「正」の場合には、第3のLLRテーブル20Cから取得したLLRに基づき復号を行う。
【選択図】図9
【解決手段】メモリカード3は、複数のメモリセル13Dと、HB読み出し電圧とSB読み出し電圧とを、メモリセル13Dに印加する制御を行うCPUコア11と、閾値電圧をもとにLLRテーブルから取得したLLRに基づき軟判定復号を行うECC部1と、を具備し、第1のLLRテーブル20Aから取得したLLRに基づいた復号が失敗した場合に、最高電圧の第1のHB読み出し電圧H07を中心とする閾値電圧分布を測定し、閾値電圧分布の最小頻度電圧VMと第1のHB読み出し電圧H07との差である第1のシフト値ΔV1が「負」の場合には、第2のLLRテーブル20Bから取得したLLRに基づき復号を行い、第1のシフト値ΔV1が「正」の場合には、第3のLLRテーブル20Cから取得したLLRに基づき復号を行う。
【選択図】図9
Description
本発明の実施形態は、それぞれが複数ビットのデータを記憶する複数のメモリセルを有するメモリ装置に関する。
メモリ装置のメモリセルの作製では、シリコン基板上のP型半導体層を挟みこむようにソースとドレインとなる2つのN型半導体部分を形成し、P型半導体層の上に酸化物層にはさまれたポリシリコン製の浮遊ゲートを形成し、さらにその上に制御ゲートが形成される。このため、メモリセルの浮遊ゲートに蓄積された電荷(電子)は、浮遊ゲートを覆う酸化物層により保持されるため、電源を供給することなくデータを長期間、保持することができる。
メモリセルへのデータの書き込みは、量子トンネル効果により電子を酸化物層を介して浮遊ゲート内に注入することで行われる。回路基板であるN型半導体を接地電位にし、微小な電流によって制御ゲートに書き込み電圧を印加する。浮遊ゲート内に蓄積された電子が情報を記憶する。多値メモリでは、浮遊ゲートに蓄積された電荷量により複数ビットの情報を記憶する。
メモリセルからのデータの情報の読み出しでは、ソース/ドレイン間に読み出し電圧が印加される。浮遊ゲートにある電子数(電荷量)に応じて、ソース/ドレイン間に電流が流れはじめる電圧、すなわち浮遊ゲートにある電子が放出される閾値電圧が異なる。所定の複数の読み出し電圧を順に印加していくことで、そのメモリセルに蓄積されていた電荷量、すなわち、メモリセルに記憶されている情報に対応した閾値電圧が取得される。
フラッシュメモリセルでは、書き込みおよび読み出しの度に、絶縁体である酸化膜を電子が貫通する。このため、書き込み回数および読み出し回数の増加により酸化膜が劣化する。
そして、近年、メモリ装置は高記録密度化のために、メモリセルのサイズが微細化され、メモリセルの浮遊ゲートに蓄積する電荷量が減少している。このため、隣接セル間の干渉ノイズの影響が相対的に増大している。すなわち、メモリセルにデータの書き込み(プログラム)または読み出しを行うことにより、隣接する他方のメモリセルのデータが変化することがある。
例えばデータの書き込みは、ワード線とビット線により選択されたメモリセルに対して行われる。しかし、非選択セルにおいても弱い書き込み状態となり、閾値電圧が高くなるプログラムディスターブ(以下「PD」という)現象が発生する。また、データの読み出しにおいても、非選択メモリセルが弱い書き込み状態となり、閾値電圧が高くなるリードディスターブ(以下、「RD」という)現象が発生する。
一方、メモリセルに書き込まれたデータが、長時間アクセスされなかった場合、メモリセルの浮遊ゲートから徐々に電子が放出され、閾値電圧が低くなるデータリテンション(以下「DR」という)現象が発生する。
RDまたはDR等による、データ読み出しエラーの発生を防止し、メモリ装置の信頼性を改善するためには、例えば、読み出しレベル(電圧)を変えることが有効である。
本発明は、復号効率のよいメモリ装置を提供することを目的とする。
本発明の一態様のメモリ装置は、それぞれがNビット(Nは2以上の自然数)のデータを記憶する複数のメモリセルと、(2N−1)個のハードビット読み出し電圧と、複数のソフトビット読み出し電圧と、からなる読み出し電圧セットの電圧を、それぞれの前記メモリセルに印加する制御を行う制御部と、対数尤度比テーブルからソフトビットデータを用いて取得した対数尤度比に基づき軟判定復号を行う誤り訂正部と、を具備し、
前記制御部が、複数の前記ハードビット読み出し電圧のうちの最も高電圧の第1のハードビット読み出し電圧を中心とし、前記複数のハードビット読み出し電圧のうちの最も低電圧の第2のハードビット読み出し電圧と前記第1のハードビット読み出し電圧との差の、1/(2N−1)以下の第1のトラッキング範囲の第1の閾値電圧分布を、前記ハードビット読み出し電圧の間隔の、1/100以上1/4以下の電圧間隔で測定する第1のトラッキングを行い、前記誤り訂正部が、前記第1の閾値電圧分布のヒストグラムをもとに、近似曲線または移動平均から取得した第1の最小頻度電圧と、前記第1のハードビット読み出し電圧と、の差に基づく第1のシフト値の正負符号に応じて、異なる対数尤度比テーブルから取得した対数尤度比に基づき軟判定復号を行う。
前記制御部が、複数の前記ハードビット読み出し電圧のうちの最も高電圧の第1のハードビット読み出し電圧を中心とし、前記複数のハードビット読み出し電圧のうちの最も低電圧の第2のハードビット読み出し電圧と前記第1のハードビット読み出し電圧との差の、1/(2N−1)以下の第1のトラッキング範囲の第1の閾値電圧分布を、前記ハードビット読み出し電圧の間隔の、1/100以上1/4以下の電圧間隔で測定する第1のトラッキングを行い、前記誤り訂正部が、前記第1の閾値電圧分布のヒストグラムをもとに、近似曲線または移動平均から取得した第1の最小頻度電圧と、前記第1のハードビット読み出し電圧と、の差に基づく第1のシフト値の正負符号に応じて、異なる対数尤度比テーブルから取得した対数尤度比に基づき軟判定復号を行う。
<第1実施形態>
図1に示すように、本実施の形態のメモリ装置であるメモリカード3はパソコンまたはデジタルカメラ等のホスト4から受信したデータを記憶し、記憶したデータをホスト4に送信する記憶媒体である。
図1に示すように、本実施の形態のメモリ装置であるメモリカード3はパソコンまたはデジタルカメラ等のホスト4から受信したデータを記憶し、記憶したデータをホスト4に送信する記憶媒体である。
メモリカード3はホスト4とともに、例えば携帯音楽プレーヤであるMP3プレーヤ等のメモリシステム5を構成していてもよい。
メモリカード3は、メモリ部13と、復号器15を具備したメモリコントローラ2とを有する。メモリ部13は、NAND型フラッシュメモリを有し、単位セルである多数のメモリセル13Dが、書き込みに用いるビット線(不図示)および読み出しに用いるワード線13E等で接続された構造を有する。書き込みおよび読み出しは複数のビットデータからなるページ単位で行われる。データ消去は、複数のページからなるブロック単位で行われる。ワード線13Eはワード線制御部13Aと接続されている。メモリセル13Dは、1個のメモリセルにNビット(Nは2以上の自然数)のデータを記憶可能な多値メモリセルである。
そして、メモリコントローラ2は、バス17を介して接続された、ROM10と、CPUコア11と、RAM18と、ホスト I/F(インターフェイス)14と、誤り訂正部(以下「ECC部」という)1と、NAND I/F(インターフェイス)16とを有する。
メモリコントローラ2は、制御部であるCPUコア11を用いて、ホストI/F14を介してホスト4とのデータ送受信を、NAND I/F16を介してメモリ部13とのデータ送受信を行うとともに全体の制御を行う。またメモリコントローラ2は、メモリ部13のアドレス管理をCPUコア11で実行されるFW(Firmware)で実現している。また、ホスト4からのコマンド入力に応じたメモリカード3全体の制御もFWで実行される。ROM10には、メモリカード3の制御プログラム等が格納されており、RAM18には、アドレス管理で必要となるアドレス変換デーブル等が記憶される。
ECC部1は、データ記憶時に誤り訂正符号を生成し付与する符号化器12と、データ読み出し時に、読み出された符号化データを復号する復号器15とを有する。符号化および復号は複数のビットデータからなるECCフレーム単位で行われる。なお、書き込みおよび読み出し単位であるページは複数のECCフレームからなる。本実施の形態の復号器15のECC部1は、硬判定復号用符号に加えて、確率に基づく反復計算により軟判定復号する誤り訂正符号であるLDPC符号を用いる。
なお、メモリカード3は、メモリセル13Dにワード線13Eを介して、後述する所定の読み出し電圧セットの電圧を印加する制御を行うワード線制御部13を有しているが、ワード線制御部13もメモリカード3の全体の制御を行うCPUコア11の制御のもとで動作する。以下の説明を簡単にするため、CPUコア11がワード線制御部13が行う制御も行うものとする。また、後述する対数尤度比テーブルは、例えばROM10等に記憶されている。
硬判定復号においては、データが「0」か「1」か、を示すハードビット(HB)と、ECCフレームに付与されているパリティと、用いて演算が行われる。これに対して、例えばLDPC符号により符号化されたデータの軟判定復号においては、所定の複数のソフトビット(SB)読み出し電圧の印加により読み出された、HBデータの信頼度情報(確からしさ)を含むソフトビット(SB)データから対数尤度比(Log Likelihood Ratio 以下、「LLR」ともいい。符号「λ」で示す。)が対数尤度比テーブル(図4等参照)をもとに取得される。そして、LLRをもとに、ECCフレーム単位で、確率に基づく反復計算により誤り訂正処理が行われる。
すでに説明したように、データが記憶されているメモリセル13Dの閾値電圧は、リードディスターブ(RD)またはデータリテンション(DR)等により変化することがある。
ここで、図2A〜図2Cは、メモリセルの閾値電圧の分布を示す。図2A〜図2Cの横軸は、読み出し電圧Vであり、縦軸は、読み出し電圧Vで読み出されたメモリセルの個数nを示している。ここに示すメモリセルはN=2のメモリセルであるため、2N(=4)個に区別可能な閾値電圧により、4種類のデータ(11)、(10)、(00)、(11)を記憶する。そして、図2Aに示すように、メモリセルに記憶されているデータを読み出すためのHB読み出し電圧セットは、VA、VB、VCの3(=2N−1)個の電圧からなる。すなわち、閾値電圧分布において個数nが最小の電圧である最小頻度電圧の3個の電圧VA、VB、VCをメモリセルに印加することで、そのメモリセルの閾値電圧が、どの閾値電圧レベルにあるかが判明するため、HBデータを読み出すことができる。
なお、HB読み出し電圧セットの情報は、設計および作製条件等をもとに予め設定され、例えば、ROM10に記憶されている。
しかし、図2Bに示すように、メモリセルがDRの影響を受けた場合、閾値電圧の分布は、破線で示す初期分布に比べて、実線で示すように低電圧側が広がる。このため、初期設定の読み出し電圧セットの電圧VA、VB、VCでは正しくデータを読み出すことができなくなる場合がある。
一方、図2Cに示すように、メモリセルがRDの影響を受けた場合、メモリセルの閾値電圧の分布は、破線で示す初期分布に比べて、実線で示すように高電圧側が広がる。このため、やはり初期設定の読み出し電圧セットの電圧VA、VB、VCでは正しくデータを読み出すことができなくなる場合がある。
これに対して、メモリカード3では、通常の軟判定復号により復号できなかった場合には、閾値電圧分布を測定し、その結果に応じた制御を行う。
以下、図3のフローチャートに従い、メモリカード3の復号について説明する。
<ステップS10>
図4に示すように、以下の説明において、メモリカード3の各メモリセル13DはLowerビット、Middleビット、Upperビットにそれぞれ1ビットのデータを記憶する3ビットセルとする(N=3)。メモリセル13DからHBデータを読み出すために、H01〜H07の7個のHB読み出し電圧が印加される。すなわち、Nビット(Nは2以上の自然数)のデータを記憶するメモリセルのデータを読み出すためのHB読み出し電圧は、(2N−1)個である。
図4に示すように、以下の説明において、メモリカード3の各メモリセル13DはLowerビット、Middleビット、Upperビットにそれぞれ1ビットのデータを記憶する3ビットセルとする(N=3)。メモリセル13DからHBデータを読み出すために、H01〜H07の7個のHB読み出し電圧が印加される。すなわち、Nビット(Nは2以上の自然数)のデータを記憶するメモリセルのデータを読み出すためのHB読み出し電圧は、(2N−1)個である。
例えば、図4に示すように、閾値電圧VthがH04とH05の間(Dレベル)の場合には、メモリセルに記憶されていたHBデータは(001)と判断される。なお、(001)はLowerビットおよびMiddleビットが「0」、Upperビットが「1」であることを示す。
<ステップS10、S11、S12>
所定のECCフレーム単位のHBデータを用いて、硬判定復号が行われる。復号できた場合(S12:Yes)には、ステップS26において復号データがホスト4に送信される。
所定のECCフレーム単位のHBデータを用いて、硬判定復号が行われる。復号できた場合(S12:Yes)には、ステップS26において復号データがホスト4に送信される。
<ステップS13、S14、S15>(SB1復号)
硬判定復号ができなかった場合(S12:No)には、より誤り訂正能力の高い軟判定復号を行うための、S01〜S14の14個のSB読み出し電圧からなる読み出し電圧セットの電圧が順次、メモリセル13Dに印加される。
硬判定復号ができなかった場合(S12:No)には、より誤り訂正能力の高い軟判定復号を行うための、S01〜S14の14個のSB読み出し電圧からなる読み出し電圧セットの電圧が順次、メモリセル13Dに印加される。
なお、SB読み出し電圧の個数は、図4に示すように、それぞれのHB読み出し電圧の低電圧側と高電圧側に各1個の2×(2N−1)個に限られるものではなく、例えば、4×(2N−1)個であってもよい。
SB読み出し電圧により読み出されたソフトビットデータ(閾値電圧(Vth)レベル)は、ハードビットHBの信頼度情報を含む。例えば、S06〜S07の間で読み出されたHBデータ(Vthレベル10)は、H03〜S06の間で読み出されたHBデータ(Vthレベル9)と同じ(101)であるが、より信頼性が高い。
軟判定復号では、SB読み出し電圧により読み出されたソフトビットデータからHBデータの確からしさを示すLLRが、図4に示す通常復号用の第1の対数尤度比テーブル(LLRテーブル)20Aから取得される。対数尤度比λの絶対値|λ|が信頼度であり、信頼度が、大きいほど信頼性が高く、反対に、信頼度が0に近いほど信頼性が低い。そして、LDPC復号ではLLRテーブルから取得した初期LLRをもとに、確率に基づく反復計算による軟判定復号により誤り訂正処理が行われる。
すなわち、所定個数のビットデータを単位として、タナーグラフ上で接続された符号語の各ビットに対応したビットノードと各パリティ検査式に対応したチェックノードとの間で局所的に推論した結果を、やりとりしながら更新していくイタレーション処理が行われる。そして、予め定められた最大イタレーション回数内で、復号できた場合(Yes)には、ステップS26において復号データがホスト2に送信される。
<ステップS16>
ステップS14の第1のソフトビットデータ(SB1)をもとに第1のLLRテーブル20Aを用いた通常の軟判定復号(SB1復号)で、誤り訂正ができなかった場合(S15:No)には、RDまたはDRが発生している可能性がある。いずれの現象が発生しているのかを確実に把握するためには、閾値電圧分布を測定することが最も有効である。以下、閾値電圧分布測定を「トラッキング」という。しかし、読み出し電圧の全範囲の閾値電圧分布の測定(フルレベルトラッキング)には長時間を要する。
ステップS14の第1のソフトビットデータ(SB1)をもとに第1のLLRテーブル20Aを用いた通常の軟判定復号(SB1復号)で、誤り訂正ができなかった場合(S15:No)には、RDまたはDRが発生している可能性がある。いずれの現象が発生しているのかを確実に把握するためには、閾値電圧分布を測定することが最も有効である。以下、閾値電圧分布測定を「トラッキング」という。しかし、読み出し電圧の全範囲の閾値電圧分布の測定(フルレベルトラッキング)には長時間を要する。
これに対して、メモリカード3では、一部の電圧範囲の閾値電圧分布のみを測定する1レベルトラッキングである第1のトラッキングを行うため、トラッキング時間が短い。すなわち、第1のトラッキングは、7個のハードビット読み出し電圧H01〜H07のうちの最も高電圧のハードビット読み出し電圧H07(第1のHB読み出し電圧)を中心とする所定範囲(第1のトラッキング範囲)の第1の閾値電圧分布だけを測定する1レベルトラッキングである。なお、第1のトラッキング範囲は、ハードビット読み出し電圧H01〜H07のうちの、いずれか1つだけを含んでいればよいが、最も高電圧の第1のHB読み出し電圧H07を含み、他のハードビット読み出し電圧H01〜H06を含んでいないことが好ましい。
さらに、第1のトラッキングのトラッキング範囲(第1のトラッキング範囲)は、第1のHB読み出し電圧H07を含んでいればよいが、好ましくは電圧H07を中心とし、電圧H07の上下に位置する分布Fのピーク電圧と分布Gのピーク電圧の範囲内で、適宜設定される。例えば、分布Fのピーク電圧と分布Gのピーク電圧の範囲は、フルレベルトラッキング範囲である分布Erのピーク電圧と分布Gのピーク電圧の範囲の1/7以下に設定される。すなわち、(2N−1)個のハードビット読み出し電圧でハードビットデータを読み出すメモリカードの場合、1レベルトラッキングである第1のトラッキング範囲は、フルレベルトラッキングのトラッキング範囲の、1/(2N−1)以下である。
そして、図5に示すように、第1のトラッキング範囲は、HB読み出し電圧H07の前後のSB読み出し電圧S13〜S14の範囲である。例えば、SB読み出し電圧S13〜S14の範囲が分布Fのピーク電圧と分布Gのピーク電圧の範囲の1/2の場合、第1のトラッキング範囲は、フルレベルトラッキングのトラッキング範囲(S01〜S14)の、1/14(1/(2×(2N−1))以下である。
図5に示すように、第1のトラッキング範囲における、測定間隔は、例えば、トラッキング範囲を20分割して行われる。
第1のトラッキング範囲のトラッキング分割数(分割間隔)、すなわち、閾値電圧分布を測定する電圧の間隔は、HB読み出し電圧の間隔(H06〜H07の間隔)の、1/100以上1/4以下が好ましい。前記範囲以上であれば、トラッキング時間が許容範囲内であり、前記範囲以下であれば、いずれの現象が発生しているのかを確実に把握することができる。図5に示した例では、閾値電圧分布の測定電圧の間隔はHB読み出し電圧の間隔、H06とH07の電圧の差ΔRに対して、1/10である。
また、トラッキング対象とするメモリセルは、所定の復号単位、所定の消去単位であるブロックまたは読み出し単位であるページ、のいずれかに属するメモリセルの全数である必要はなく、例えばブロックを構成する複数のメモリセルのうちの、1%以上50%以下であることが好ましい。前記範囲以上であれば、いずれの現象が発生しているのかを確実に把握することができ、前記範囲以下であれば、トラッキング時間が許容範囲内である。
なお、図3のフローチャートでは省略しているが、メモリカード3では、例えばブロック単位で通常の軟判定復号ができなかった回数Nをカウントし、不揮発性記憶部、例えばメモリ部の一部に、記憶しておく。そして誤り回数Nが所定の閾値Kを超えると、制御部が、当該ブロックのトラッキングを行うようにしてもよい。すなわち、後述するように、第1のLLRテーブル(図4参照)から取得したLLRに基づいた軟判定復号(SB1復号)が失敗した回数が所定の閾値Kを超えた場合に、制御部であるCPUコア11が第1のトラッキングを行うように制御することが好ましい。
<ステップS17>
トラッキング結果から、第1の閾値電圧分布の第1の最小頻度電圧VMが取得される。図5に示すように、第1の最小頻度電圧VMは、第1の閾値電圧分布のヒストグラムにおいて最もnの小さい電圧レベルの中央値である。そして、第1の最小頻度電圧VMから第1のハードビット読み出し電圧H07を減算した差分である第1のシフト値ΔVが取得される。すなわち、第1のシフト値ΔVは、第1の閾値電圧分布から取得した第1の最小頻度電圧VMと、第1のハードビット読み出し電圧07と、の差に基づく値である。
トラッキング結果から、第1の閾値電圧分布の第1の最小頻度電圧VMが取得される。図5に示すように、第1の最小頻度電圧VMは、第1の閾値電圧分布のヒストグラムにおいて最もnの小さい電圧レベルの中央値である。そして、第1の最小頻度電圧VMから第1のハードビット読み出し電圧H07を減算した差分である第1のシフト値ΔVが取得される。すなわち、第1のシフト値ΔVは、第1の閾値電圧分布から取得した第1の最小頻度電圧VMと、第1のハードビット読み出し電圧07と、の差に基づく値である。
なお、最小頻度電圧VMの取得においては、図6に示すように、トラッキングにより取得した閾値電圧分布のヒストグラムをもとに近似曲線を取得してもよい。また近似曲線に替えて、ヒストグラムをもとに移動平均を取得してもよい。移動平均としては単純移動平均よりも、重みづけをした加重移動平均が好ましく、例えば、5点加重移動平均を用いることが好ましい。
最小頻度電圧VM近傍のセル数は少ないため測定誤差が発生しやすいが、近似曲線等を用いることにより誤差の影響を小さくすることができる。
さらに、最小頻度電圧VMにオフセット補正を行うことも可能である。後述するように、メモリカード3では、最小頻度電圧VMと第1のハードビット読み出し電圧H07の差である第1のシフト値ΔVの正負符号、すなわち、第1のシフト値ΔVが「正」または「負」のいずれであるかに基づいて、処理モードが変更される。しかし、メモリセルの特性上、7個のHB読み出し電圧H01〜H07のうちの最も高電圧の第1のHB読み出し電圧H07の近傍の閾値電圧分布の最小頻度電圧VMは、低電圧方向には移動し易いが、高電圧方向には移動しにくい。このため、取得した最小頻度電圧VMに、所定のオフセット電圧を加算するオフセット補正を行うことが好ましい場合がある。オフセット電圧はメモリカード3の特性に応じて予め設定されるが、例えば、SB読み出し電圧の間隔の1/1000以上1/50以下である。
<ステップS18>
第1のシフト値ΔVの正負符号が判定される。
第1のシフト値ΔVの正負符号が判定される。
図5に示した例では、第1の最小頻度電圧VMは、第1のハードビット読み出し電圧H07より小さい。すなわち、第1の最小頻度電圧VMから第1のハードビット読み出し電圧H07を減算した差分である第1のシフト値ΔVの正負符号が「「負符号(−)」である。このように、第1のシフト値ΔVが0より小さい「負」の場合には、ステップS19からデータリテンションモード(DRモード)の復号が行われる。
一方、第1のシフト値ΔVの正負符号が「正符号(+)」の場合、すなわち、第1のシフト値ΔVが0より大きい「正」の場合には、ステップS22からリードディスターブモード(RDモード)の復号が行われる。
<ステップS19、S20>(SB2復号)
DRモード復号では、図7に示すように、HB読み出し電圧H01〜H07よりも低電圧側に設定した第2のソフトビット読み出し電圧SL01〜SL07を、メモリセルに印加するSB2読み出し制御が行われる。第2のSB読み出し電圧SL01〜SL07は、例えば、HB読み出し電圧との差が通常復号のSB読み出し電圧の2倍の電圧となるように設定される。この場合には、(H01−SL01)=2×(H01−S01)である。
DRモード復号では、図7に示すように、HB読み出し電圧H01〜H07よりも低電圧側に設定した第2のソフトビット読み出し電圧SL01〜SL07を、メモリセルに印加するSB2読み出し制御が行われる。第2のSB読み出し電圧SL01〜SL07は、例えば、HB読み出し電圧との差が通常復号のSB読み出し電圧の2倍の電圧となるように設定される。この場合には、(H01−SL01)=2×(H01−S01)である。
<ステップS21>
前記第2のソフトビット読み出し電圧SL01〜SL07により読み出した第2のソフトビットデータ(Vthレベル)をもとに、例えば、図7に示す第2のLLRテーブル20Bから取得したLLRに基づき第2の軟判定(SB2)復号が行われる。
前記第2のソフトビット読み出し電圧SL01〜SL07により読み出した第2のソフトビットデータ(Vthレベル)をもとに、例えば、図7に示す第2のLLRテーブル20Bから取得したLLRに基づき第2の軟判定(SB2)復号が行われる。
<ステップS22、S23>(SB3復号)
一方、RDモード復号では、図8に示すように、HB読み出し電圧H01〜H07よりも高電圧側に設定した第3のソフトビット読み出し電圧SH01〜SH07を、メモリセルに印加するSB3読み出し制御が行われる。第3のSB読み出し電圧SH01〜SH07は、例えば、HB読み出し電圧との差が通常復号のSB読み出し電圧の2倍の電圧となるように設定される。すなわち、(SH01−H01)=2×(S02−H01)である。
一方、RDモード復号では、図8に示すように、HB読み出し電圧H01〜H07よりも高電圧側に設定した第3のソフトビット読み出し電圧SH01〜SH07を、メモリセルに印加するSB3読み出し制御が行われる。第3のSB読み出し電圧SH01〜SH07は、例えば、HB読み出し電圧との差が通常復号のSB読み出し電圧の2倍の電圧となるように設定される。すなわち、(SH01−H01)=2×(S02−H01)である。
<ステップS24>
第3のソフトビット読み出し電圧SH01〜SH07により読み出した第3のソフトビットデータ(Vthレベル)をもとに、例えば、図8に示す第3のLLRテーブル20Cから取得したLLRに基づき第3の軟判定(SB3)復号が行われる。
第3のソフトビット読み出し電圧SH01〜SH07により読み出した第3のソフトビットデータ(Vthレベル)をもとに、例えば、図8に示す第3のLLRテーブル20Cから取得したLLRに基づき第3の軟判定(SB3)復号が行われる。
以上の説明のように、メモリカード3では、第1のLLRテーブル20Aから取得したLLRに基づいた軟判定復号(SB1)が失敗した場合に、ECC部1がCPUコア11の制御により、第1のシフト値ΔV1の正負符号に応じて、第1のLLRテーブル20Aとは異なる、第2のLLRテーブル20Bまたは第3のLLRテーブル20Cから取得したLLRに基づき軟判定復号を行う。
すなわち、第1のシフト値ΔV1が「0」より小さい「負」の場合には、CPUコア11が、HB読み出し電圧H01〜H07よりも低電圧側に設定した第2のSB読み出し電圧SL01〜SL07をメモリセル13Dに印加する制御を行い、ECC部1が、第2のSB読み出し電圧により読み出した第2のSBデータをもとに第2のLLRテーブル20Bから取得したLLRに基づき第2の軟判定復号を行い、第1のシフト値が「0」より大きい「正」の場合には、CPUコア11が、HB読み出し電圧H01〜H07よりも高電圧側に設定した第3のSB読み出し電圧SH01〜SH07をメモリセル13Dに印加する制御を行い、ECC部1が、第3のSB読み出し電圧により読み出した第3のSBデータをもとに第3のLLRテーブル20Cから取得したLLRに基づき第3の軟判定復号を行う。
結果として、メモリカード3では、トラッキング後のSB再読み出し電圧の平均値と、トラッキング前のSB読み出し電圧の平均値との大小関係により、異なるLLRテーブルから取得したLLRに基づき軟判定復号を行う。すなわち、トラッキング後のSB再読み出し電圧が、第2のSB読み出し電圧SL01〜SL07の場合は、SB再読み出し電圧の平均値は、第1のSB読み出し電圧S01〜S07の平均値よりも小さく、第2のLLRテーブル20Aが用いられる。これに対してトラッキング後のSB再読み出し電圧が、第3のSB読み出し電圧SH01〜SH07の場合は、SB再読み出し電圧の平均値は、第1のSB読み出し電圧S01〜S07の平均値よりも大きく、第3のLLRテーブル20Bが用いられる。
すなわち、第1のシフト値ΔV1の正負符号の判定結果そのものを外部から確認することは容易ではないが、SB読み出し電圧または制御信号をモニタすることにより、制御部が行っている動作を確認することが可能である。
なお、図示しないが、第1のシフト値ΔV1が「0」の場合には、復号できなかった原因は、DRまたはRDではないため、ステップS27においてエラー信号がホスト4に送信される。
<ステップS25、S26、S27>
復号できた場合(S25:Yes)には、ステップS26において復号データがホスト4に送信される。復号できなかった場合(S25:No)には、ステップS27においてエラー信号がホスト4に送信される。
復号できた場合(S25:Yes)には、ステップS26において復号データがホスト4に送信される。復号できなかった場合(S25:No)には、ステップS27においてエラー信号がホスト4に送信される。
以上の説明のように、メモリカード3は、トラッキング範囲の狭い1レベルトラッキングを行うためにトラッキングの処理速度が速い。さらにトラッキングにより取得した閾値電圧分布のヒストグラムをもとに近似曲線または移動平均を取得して最小頻度電圧VMを取得する。このため、メモリカード3は、誤差の影響の小さい第1のシフト値ΔVを取得することができる。さらにメモリカード3は、第1のシフト値ΔVの正負符号に応じて、読み出し電圧セットおよびLLRテーブルが、変更される。このため、メモリカード3は復号効率がよい。
また、すでに説明したように、ブロック単位でメモリセルを管理しトラッキングを行った場合には、以降の軟判定復号を変更したモードで行うようにすることが好ましい。また、当該ブロックに記憶されているデータを、別のブロックにコピーするリフレッシュ処理を行ってもよい。
さらに、第1のシフト値ΔVの絶対値に応じて、読み出し電圧セットのそれぞれの電圧を増減してもよい。例えば、DRモードでは、HB読み出し電圧H01〜H07およびSB読み出し電圧S01〜S14を、第1のシフト値ΔVの絶対値を減算した電圧に修正し、以降の読み出しを修正された読み出し電圧セットを用いて行うことができる。RDモードでは逆に、読み出し電圧セットのそれぞれの電圧を、第1のシフト値ΔVの絶対値を加算した電圧に修正する。
なお読み出し電圧セットの修正は、それぞれの読み出し電圧の高低に応じた補正を行った第1のシフト値ΔVを用いてもよい。例えばDRモードにおいて、高電圧のHB読み出し電圧H07からはΔVを減算する修正を行い、低電圧のHB読み出し電圧H01からは、0.2×ΔVを減算する修正を行うことが好ましい。
さらに、ステップS20、S23においても、第2のSB読み出し電圧SL01〜SL07だけでなく、第1のシフト値ΔVの正負符号にもとづき再設定した読み出し電圧セットのHB読み出し電圧を含む電圧を、再度印加して閾値電圧レベルの再読み出しを行ってもよい。すなわち、第2のソフトビット読み出し電圧SL01〜SL07、または、SH01〜SH07の少なくともいずれかに加えて、補正を行ったHB読み出し電圧H01〜H07およびSB読み出し電圧S01〜S14を、ステップS20、S23において印加し、閾値電圧レベルを読み出しても良い。
<第1実施形態の変形例>
次に、第1実施形態の変形例のメモリカード3Aについて説明する。メモリカード3Aはメモリカード3と類似しているため同じ構成要素には同じ符号を付し説明は省略する。
次に、第1実施形態の変形例のメモリカード3Aについて説明する。メモリカード3Aはメモリカード3と類似しているため同じ構成要素には同じ符号を付し説明は省略する。
メモリカード3Aでは、第1のシフト値ΔVの正負符号に応じて、再度、データ読み出し処理(電圧印加処理)を行わないで、すでに読み出しているSB1を用いるが、LLRテーブルを変更する。
図9に示すように、メモリカード3Aのフローチャートは、図3に示したメモリカード3のフローチャートと極めて類似しているため、異なる処理についてのみ説明する。
<ステップS21A>
ステップS19における判定において第1のシフト値ΔVが「負」の場合には、DRモードのSB2復号が行われる。メモリカード3AのSB2復号では、読み出し電圧を変更しての再読み出し処理は行われない。SB1読み出し(S13)で読み出されているSB1から、第1のLLRテーブル20Aとは異なる第2のLLRテーブル20B1(図10参照)から初期LLRが取得される。第2のLLRテーブル20B1は、HB読み出し電圧よりも低電圧側の閾値電圧レベルの信頼度が高電圧側の閾値電圧レベルの信頼度よりも低く設定されている。例えば、図4に示すLLRテーブル20Aでは、Upperビットの(Vthレベル14のLLR:Vthレベル15のLLR)は、(−2:2)であったが、図10に示すLLRテーブル20B1では、(−1:3)である。
ステップS19における判定において第1のシフト値ΔVが「負」の場合には、DRモードのSB2復号が行われる。メモリカード3AのSB2復号では、読み出し電圧を変更しての再読み出し処理は行われない。SB1読み出し(S13)で読み出されているSB1から、第1のLLRテーブル20Aとは異なる第2のLLRテーブル20B1(図10参照)から初期LLRが取得される。第2のLLRテーブル20B1は、HB読み出し電圧よりも低電圧側の閾値電圧レベルの信頼度が高電圧側の閾値電圧レベルの信頼度よりも低く設定されている。例えば、図4に示すLLRテーブル20Aでは、Upperビットの(Vthレベル14のLLR:Vthレベル15のLLR)は、(−2:2)であったが、図10に示すLLRテーブル20B1では、(−1:3)である。
<ステップS24A>
一方、ステップS19における判定においてシフト値が「正」の場合には、RDモードのSB3復号が行われる。メモリカード3AのSB3復号では、読み出し電圧を変更しての再読み出し処理は行われない。SB1読み出し(S13)で読み出されているSB1から、第3のLLRテーブル20C1(図11参照)から初期LLRが取得される。第3のLLRテーブル20C1は、HB読み出し電圧よりも低電圧側の閾値電圧レベルの信頼度が高電圧側の閾値電圧レベルの信頼度よりも高く設定されている。例えば、図4に示すLLRテーブル20Aでは、Upperビットの(Vthレベル14のLLR:Vthレベル15のLLR)は、(−2:2)であったが、図11に示すLLRテーブル20C1では、(−3:1)である。
一方、ステップS19における判定においてシフト値が「正」の場合には、RDモードのSB3復号が行われる。メモリカード3AのSB3復号では、読み出し電圧を変更しての再読み出し処理は行われない。SB1読み出し(S13)で読み出されているSB1から、第3のLLRテーブル20C1(図11参照)から初期LLRが取得される。第3のLLRテーブル20C1は、HB読み出し電圧よりも低電圧側の閾値電圧レベルの信頼度が高電圧側の閾値電圧レベルの信頼度よりも高く設定されている。例えば、図4に示すLLRテーブル20Aでは、Upperビットの(Vthレベル14のLLR:Vthレベル15のLLR)は、(−2:2)であったが、図11に示すLLRテーブル20C1では、(−3:1)である。
メモリカード3Aは、メモリカード3と同様の効果を有し、さらに、データの再読み出し処理を行わないため、復号がより高速である。
<第2実施形態>
次に、第2実施形態のメモリカード3Bについて説明する。メモリカード3Bはメモリカード3と類似しているため同じ構成要素には同じ符号を付し説明は省略する。
次に、第2実施形態のメモリカード3Bについて説明する。メモリカード3Bはメモリカード3と類似しているため同じ構成要素には同じ符号を付し説明は省略する。
メモリカード3Bでは2レベルトラッキング(すなわち、1レベルトラッキングが2回)行われて、RD、DRまたはRD/DRのいずれの現象が発生しているのかが把握される。ここで、RD/DRとはRDとDRとがともに発生している状態である。すなわちDRの影響を受けやすい高電圧レベルの閾値電圧は減少し、RDの影響を受けやすい低電圧レベルの閾値電圧は増加した状態である。
以下、図12のフローチャートに従いメモリカード3Bの制御方法について説明する。
<ステップS1、S31>
すでに図3のフローチャートを用いての説明と同様である。
すでに図3のフローチャートを用いての説明と同様である。
<ステップS32>
図3のフローチャートのステップS16と同じトラッキングが行われる。すなわち、最も高電圧の第1のハードビット読み出し電圧H07を含む第1のトラッキング範囲の第1の閾値電圧分布を測定する第1のトラッキングであるHレベルトラッキングが行われる。すでに説明したように、第1のトラッキング範囲は、第1のハードビット読み出し電圧を中心とすることが好ましい。
図3のフローチャートのステップS16と同じトラッキングが行われる。すなわち、最も高電圧の第1のハードビット読み出し電圧H07を含む第1のトラッキング範囲の第1の閾値電圧分布を測定する第1のトラッキングであるHレベルトラッキングが行われる。すでに説明したように、第1のトラッキング範囲は、第1のハードビット読み出し電圧を中心とすることが好ましい。
<ステップS33>
続いて、第2のトラッキング(Lレベルトラッキング)が行われる。Lレベルトラッキングでは、7個のハードビット読み出し電圧H01〜H07のうちの最も低電圧の第2のハードビット読み出し電圧H01を中心とする第2のトラッキング範囲の第2の閾値電圧分布が測定される。
続いて、第2のトラッキング(Lレベルトラッキング)が行われる。Lレベルトラッキングでは、7個のハードビット読み出し電圧H01〜H07のうちの最も低電圧の第2のハードビット読み出し電圧H01を中心とする第2のトラッキング範囲の第2の閾値電圧分布が測定される。
なお、第2のトラッキング範囲および第2のトラッキング範囲における測定間隔は、第1のトラッキング範囲に準じて、設定される。
<ステップS34>
図3のフローチャートのステップS17と同じように、Hレベルトラッキング結果から、第1の閾値電圧分布の第1の最小頻度電圧VM1が取得される。そして、第1の最小頻度電圧VM1から第1のハードビット読み出し電圧H07を減算した差分である第1のシフト値ΔV1が取得される。なお、第1のシフト値ΔVは、特にDR現象により変化しやすいため、DRシフト値ともいう。
図3のフローチャートのステップS17と同じように、Hレベルトラッキング結果から、第1の閾値電圧分布の第1の最小頻度電圧VM1が取得される。そして、第1の最小頻度電圧VM1から第1のハードビット読み出し電圧H07を減算した差分である第1のシフト値ΔV1が取得される。なお、第1のシフト値ΔVは、特にDR現象により変化しやすいため、DRシフト値ともいう。
またLレベルトラッキング結果から、第2の閾値電圧分布の第2の最小頻度電圧VM2が取得される。そして、第2の最小頻度電圧VM2から第2のハードビット読み出し電圧H01を減算した差分である第2のシフト値ΔV2が取得される。なお、第2のシフト値ΔV2は、特にRD現象により変化しやすいため、RDシフト値ともいう。
<ステップS35、S36、S37、S38、S39>(SB2復号)
DRシフト値ΔV1およびRDシフト値ΔV2が「負」の場合には、ステップS19〜S21と同じDRモードでのSB2復号が行われる。
DRシフト値ΔV1およびRDシフト値ΔV2が「負」の場合には、ステップS19〜S21と同じDRモードでのSB2復号が行われる。
<ステップS35、S40、S41、S42、S43>(SB3復号)
DRシフト値ΔV1およびRDシフト値ΔV2が「正」の場合には、ステップS22〜S24と同じRDモードでのSB3復号が行われる。
DRシフト値ΔV1およびRDシフト値ΔV2が「正」の場合には、ステップS22〜S24と同じRDモードでのSB3復号が行われる。
<ステップS35、S36、S44、S45、S46>(SB4復号)
DRシフト値ΔV1が「負」で、RDシフト値ΔV2が「正」の場合には、DR/RDモードでのSB4復号が行われる。
DRシフト値ΔV1が「負」で、RDシフト値ΔV2が「正」の場合には、DR/RDモードでのSB4復号が行われる。
図10に示すように、DR/RDモードのSB4復号では、高電圧側のHB読み出し電圧H05〜H07に対しては低電圧側に設定したソフトビット読み出し電圧SL05〜SL07を、低電圧側のHB読み出し電圧H01〜H03では高電圧側に設定したソフトビット読み出し電圧SH01〜SH03を、メモリセルに印加するSB4読み出し制御が行われる。すなわち、HB読み出し電圧H01〜H07を、中央値であるH04よりも高電圧側の電圧H05〜H07と、低電圧側の電圧H01〜H03とに2分割して、異なるSB読み出し電圧変更が行われたSB4読み出し電圧セットが使用される。
SB4読み出し電圧セット(SH01〜SH03、SL05〜SL07)により読み出した第4のソフトビットデータ(閾値電圧レベル)をもとに、例えば、図13に示す、DR/RDモード用の第4のLLRテーブル20Dから取得したLLRに基づき第4の軟判定(SB4)復号が行われる。
図13に示すように、第4のLLRテーブル20は、高電圧側のHB読み出し電圧H05〜H07よりも低電圧側の閾値電圧レベルの信頼度が高電圧側の閾値電圧レベルの信頼度よりも 設定され、低電圧側のHB読み出し電圧H01〜H03よりも低電圧側の閾値電圧レベルの信頼度が高電圧側の閾値電圧レベルの信頼度よりも 設定されている。
なお、極めて発生頻度が低いが、DRシフト値ΔV1の正負符号が正符号(+)で、RDシフト値ΔV2の正負符号が負符号(−)の場合は、ステップS49においてエラー信号がホスト4に送信される。
<ステップS47、S48、S49>
いずれかの復号モードで、復号できた場合(S47:Yes)には、ステップS48において復号データがホスト4に送信される。復号できなかった場合(S47:No)には、ステップS49においてエラー信号がホスト4に送信される。
いずれかの復号モードで、復号できた場合(S47:Yes)には、ステップS48において復号データがホスト4に送信される。復号できなかった場合(S47:No)には、ステップS49においてエラー信号がホスト4に送信される。
メモリカード3Bは、メモリカード3と同じ効果を有し、さらに2レベルトラッキングを行うため、復号時間は長くなるが、復号性能が、より高い。
なお、メモリカード3と同様に、トラッキングを行った場合には、以降の軟判定復号を変更したモードで行うようにすることが好ましい。また、第1のシフト値または第2のシフト値の絶対値に応じて、読み出し電圧セットのそれぞれの電圧を増減してもよい。
さらに、ステップS38、S42、S45において、第2〜4のSB読み出し電圧だけでなく、シフト値の正負符号にもとづき再設定した読み出し電圧セットのHB読み出し電圧を含む電圧を、再度印加して閾値電圧レベルの再読み出しを行ってもよい。
<第2実施形態の変形例>
次に、第2実施形態の変形例のメモリカード3Cについて説明する。メモリカード3Cはメモリカード3Bと類似しているため同じ構成要素には同じ符号を付し説明は省略する。
次に、第2実施形態の変形例のメモリカード3Cについて説明する。メモリカード3Cはメモリカード3Bと類似しているため同じ構成要素には同じ符号を付し説明は省略する。
メモリカード3Cでは、第1のシフト値(DRシフト値)ΔV1および第2のシフト値(RDシフト値)ΔV2の正負符号に応じて、再データ読み出し処理は行わないで、LLRテーブルだけを変更する。
図5に示すように、メモリカード3Cのフローチャートは、図12に示したメモリカード3Bのフローチャートと極めて類似しているため、異なる処理についてのみ説明する。
<ステップS39A>(SB2復号)
DRシフト値ΔV1およびRDシフト値ΔV2が「負」の場合には、ステップS39と同じDRモードのSB2復号が行われる。メモリカード3CのSB2復号では、読み出し電圧を変更しての再読み出し処理は行われない。そして、SB1読み出し(S13)で読み出されているSB1から、第1のLLRテーブル20Aとは異なる第2のLLRテーブル20B1(図10参照)から初期LLRが取得される。
DRシフト値ΔV1およびRDシフト値ΔV2が「負」の場合には、ステップS39と同じDRモードのSB2復号が行われる。メモリカード3CのSB2復号では、読み出し電圧を変更しての再読み出し処理は行われない。そして、SB1読み出し(S13)で読み出されているSB1から、第1のLLRテーブル20Aとは異なる第2のLLRテーブル20B1(図10参照)から初期LLRが取得される。
<ステップS43A>(SB3復号)
DRシフト値ΔV1およびRDシフト値ΔV2が「正」の場合には、ステップS24と同じRDモードでのSB3復号が行われる。メモリカード3CのSB3復号では、読み出し電圧を変更しての再読み出し処理は行われない。そして、SB1読み出し(S13)で読み出されているSB1から、第1のLLRテーブル20Aとは異なる第3のLLRテーブル20C1(図11参照)から初期LLRが取得される。
DRシフト値ΔV1およびRDシフト値ΔV2が「正」の場合には、ステップS24と同じRDモードでのSB3復号が行われる。メモリカード3CのSB3復号では、読み出し電圧を変更しての再読み出し処理は行われない。そして、SB1読み出し(S13)で読み出されているSB1から、第1のLLRテーブル20Aとは異なる第3のLLRテーブル20C1(図11参照)から初期LLRが取得される。
<ステップS46A>(SB4復号)
DRシフト値ΔV1が「負」で、RDシフト値ΔV2が「正」の場合には、ステップS26と同じDR/RDモードでのSB4復号が行われる。メモリカード3CのSB4復号では、読み出し電圧を変更しての再読み出し処理は行われない。そして、SB1読み出し(S13)で読み出されているSB1から、第1のLLRテーブル20Aとは異なる第4のLLRテーブル20D1(図15参照)から初期LLRが取得される。
DRシフト値ΔV1が「負」で、RDシフト値ΔV2が「正」の場合には、ステップS26と同じDR/RDモードでのSB4復号が行われる。メモリカード3CのSB4復号では、読み出し電圧を変更しての再読み出し処理は行われない。そして、SB1読み出し(S13)で読み出されているSB1から、第1のLLRテーブル20Aとは異なる第4のLLRテーブル20D1(図15参照)から初期LLRが取得される。
図15に示すように、第4のLLRテーブル20D1は、高電圧側のHB読み出し電圧H05〜H07よりも低電圧側の閾値電圧レベルの信頼度が高電圧側の閾値電圧レベルの信頼度よりも低く設定され、低電圧側のHB読み出し電圧H01〜H03よりも低電圧側の閾値電圧レベルの信頼度が高電圧側の閾値電圧レベルの信頼度よりも高く設定されている。
例えば、図4に示すLLRテーブル20Aでは、Upperビットの(Vthレベル20のLLR:Vthレベル21のLLR)は、(2:−2)であり、(Vthレベル2のLLR:Vthレベル3のLLR)は、(−2:2)であった。これに対して、図15に示すLLRテーブル20D1では、(Vthレベル20のLLR:Vthレベル21のLLR)は、(1:−3)であり、(Vthレベル2のLLR:Vthレベル3のLLR)は(−3:1)である。
メモリカード3Cは、メモリカード3Bと同様の効果を有し、さらに、SBデータの再読み出し処理を行わないため、復号がより高速である。
なお、以上の説明のメモリカード3〜3Cにおいては、SB2〜SB4の復号が失敗した場合には、復号不可能であった。しかし、さらに、より詳細なトラッキングを行うことにより、再度、復号を行ってもよい。
例えば、図16に示すように、SB読み出し電圧S01〜S14の全範囲を連続してトラッキングするフルレベルトラッキングAを行って、7個の最小頻度電圧を検出してもよい。また、7個のHB読み出し電圧H01〜H07のそれぞれの近傍範囲だけを順にトラッキングするフルレベルトラッキングB(7レベルトラッキング)を行って、それぞれの範囲で最小頻度電圧を検出してもよい。
フルレベルトラッキングを行った場合には、最小頻度電圧と、ハードビット読み出し電圧と、の差に基づくシフト値ΔVが7個取得される。そして、例えば、7個のシフト値ΔVの平均値の正負符号に応じた制御が行われる。
なお、以上では、閾値分布の最小頻度電圧からハードビット読み出し電圧を減算した差分であるシフト値の正負符号に応じて、異なる対数尤度比テーブルから取得した対数尤度比に基づき軟判定復号を行の実施形態を説明した。しかし、閾値電圧分布のトラッキングの結果から取得した、メモリセルがデータリテンション状態かリードディスターブ状態かを判別し得る値であれば、対数尤度比テーブルの選択の基準となる値は、閾値分布の最小頻度電圧からハードビット読み出し電圧を減算した差分に限られない。例えば、ハードビット読み出し電圧を基準とした所定の基準電圧より、閾値分布の最小頻度電圧がハードビット読み出し電圧より高い場合と低い場合とで、異なる対数尤度比テーブルから取得した対数尤度比に基づき軟判定復号を行っていれば、上記実施形態と同様の効果を得ることができる。すなわち、ハードビット読み出し電圧に所定の電圧値を増減した基準電圧を用いてもよい。
以上では、本発明の実施形態を説明したが、この実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。実施形態は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
1…ECC部
2…メモリコントローラ
3、3A〜3C…メモリカード
5…メモリシステム
11…コア
12…符号化器
13…メモリ部
13…ワード線制御部
13D…メモリセル
13E…ワード線
17…バス
2…メモリコントローラ
3、3A〜3C…メモリカード
5…メモリシステム
11…コア
12…符号化器
13…メモリ部
13…ワード線制御部
13D…メモリセル
13E…ワード線
17…バス
Claims (6)
- それぞれがNビット(Nは2以上の自然数)のデータを記憶する複数のメモリセルと、
(2N−1)個のハードビット読み出し電圧と、複数のソフトビット読み出し電圧と、からなる読み出し電圧セットの電圧を、それぞれの前記メモリセルに印加する制御を行う制御部と、
対数尤度比テーブルからソフトビットデータを用いて取得した対数尤度比に基づき軟判定復号を行う誤り訂正部と、を具備し、
前記制御部が、複数の前記ハードビット読み出し電圧のうちの最も高電圧の第1のハードビット読み出し電圧を中心とする、前記複数のハードビット読み出し電圧のうちの最も低電圧の第2のハードビット読み出し電圧と前記第1のハードビット読み出し電圧との差の、1/(2N−1)以下の第1のトラッキング範囲の第1の閾値電圧分布を、前記ハードビット読み出し電圧の間隔の、1/100以上1/4以下の電圧間隔で測定する第1のトラッキングを行い、
前記誤り訂正部が、前記第1の閾値電圧分布のヒストグラムをもとに、近似曲線または移動平均から取得した第1の最小頻度電圧と、前記第1のハードビット読み出し電圧と、の差に基づく第1のシフト値の正負符号に応じて、異なる対数尤度比テーブルから取得した対数尤度比に基づき軟判定復号を行うことを特徴とするメモリ装置。 - それぞれがNビット(Nは2以上の自然数)のデータを記憶する複数のメモリセルと、
ハードビットデータを読み出すための(2N−1)個のハードビット読み出し電圧と、前記ハードビットデータの信頼度情報を含むソフトビットデータを読み出すための複数のソフトビット読み出し電圧と、からなる読み出し電圧セットの電圧を、それぞれの前記メモリセルに印加する制御を行う制御部と、
対数尤度比テーブルから前記ソフトビットデータを用いて取得した対数尤度比に基づき軟判定復号を行う誤り訂正部と、を具備し、
前記制御部が、複数の前記ハードビット読み出し電圧のうちの所定の第1のハードビット読み出し電圧を含む第1のトラッキング範囲の第1の閾値電圧分布を測定する第1のトラッキングを行い、
前記誤り訂正部が、前記第1の閾値電圧分布から取得した第1の最小頻度電圧が前記第1のハードビット読み出し電圧を基準とした所定の基準電圧よりも高い場合と低い場合とで、異なる対数尤度比テーブルから取得した対数尤度比に基づき軟判定復号を行うことを特徴とするメモリ装置。 - 前記誤り訂正部が、前記第1の最小頻度電圧と、前記第1のハードビット読み出し電圧と、の差に基づく第1のシフト値の正負符号に応じて、異なる対数尤度比テーブルから取得した対数尤度比に基づき軟判定復号を行うことを特徴とする請求項2に記載のメモリ装置。
- 前記第1のシフト値が負の場合には、
前記制御部が、それぞれの前記ハードビット読み出し電圧よりも低電圧側に設定した第2のソフトビット読み出し電圧を前記メモリセルに印加する制御を行い、
前記誤り訂正部が、前記第2のソフトビット読み出し電圧により読み出した第2のソフトビットデータをもとに第2の対数尤度比テーブルから取得した対数尤度比に基づき軟判定復号を行い、
前記第1のシフト値が正の場合には、
前記制御部が、それぞれの前記ハードビット読み出し電圧よりも高電圧側に設定した第3のソフトビット読み出し電圧を前記メモリセルに印加する制御を行い、
前記誤り訂正部が、前記第3のソフトビット読み出し電圧により読み出した第3のソフトビットデータをもとに第3の対数尤度比テーブルから取得した対数尤度比に基づき軟判定復号を行うことを特徴とする請求項3に記載のメモリ装置。 - 前記制御部が、前記複数のハードビット読み出し電圧のうちの所定の第2のハードビット読み出し電圧を含む第2のトラッキング範囲の第2の閾値電圧分布を測定する第2のトラッキングを行い、
前記第1のシフト値および前記第2の閾値電圧分布から取得した第2の最小頻度電圧と、前記第2のハードビット読み出し電圧と、の差に基づく第2のシフト値が負の場合には、
前記制御部が、それぞれの前記ハードビット読み出し電圧よりも低電圧側に設定した第2のソフトビット読み出し電圧を前記メモリセルに印加する制御を行い、
前記誤り訂正部が、前記第2のソフトビット読み出し電圧により読み出した第2のソフトビットデータをもとに第2の対数尤度比テーブルから取得した対数尤度比に基づき軟判定復号を行い、
前記第1のシフト値および前記第2のシフト値が正の場合には、
前記制御部が、それぞれの前記ハードビット読み出し電圧よりも高電圧側に設定した第3のソフトビット読み出し電圧を前記メモリセルに印加する制御を行い、
前記誤り訂正部が、前記第3のソフトビット読み出し電圧により読み出した第3のソフトビットデータをもとに第3の対数尤度比テーブルから取得した対数尤度比に基づき軟判定復号を行い、
前記第1のシフト値が負で、前記第2のシフト値が正の場合には、
前記制御部が、高電圧側の前記ハードビット読み出し電圧に対してはそれぞれの前記ハードビット読み出し電圧よりも低電圧側に設定したソフトビット読み出し電圧を、低電圧側の前記ハードビット読み出し電圧に対してはそれぞれの前記ハードビット読み出し電圧よりも高電圧側に設定したソフトビット読み出し電圧からなる第4のソフトビット読み出し電圧をメモリセルに印加する制御を行い、
前記誤り訂正部が、前記第4のソフトビット読み出し電圧により読み出した第4のソフトビットデータをもとに第4の対数尤度比テーブルから取得した対数尤度比に基づき軟判定復号を行うことを特徴とする請求項3に記載のメモリ装置。 - 前記第1のハードビット読み出し電圧が、最も高電圧のハードビット読み出し電圧であり、
前記第1のトラッキング範囲が、前記第1のハードビット読み出し電圧を中心とする請求項2から請求項5のいずれか1項に記載のメモリ装置。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2012076747A JP2013080450A (ja) | 2011-09-22 | 2012-03-29 | メモリ装置 |
US13/597,444 US8625347B2 (en) | 2011-09-22 | 2012-08-29 | Memory device and control method of memory device |
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2011207701 | 2011-09-22 | ||
JP2011207701 | 2011-09-22 | ||
JP2012076747A JP2013080450A (ja) | 2011-09-22 | 2012-03-29 | メモリ装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2013080450A true JP2013080450A (ja) | 2013-05-02 |
Family
ID=47911152
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2012076747A Pending JP2013080450A (ja) | 2011-09-22 | 2012-03-29 | メモリ装置 |
Country Status (2)
Country | Link |
---|---|
US (1) | US8625347B2 (ja) |
JP (1) | JP2013080450A (ja) |
Cited By (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9431130B2 (en) | 2014-03-04 | 2016-08-30 | Kabushiki Kaisha Toshiba | Memory controller, storage device, and memory control method |
US9711240B2 (en) | 2015-01-08 | 2017-07-18 | Kabushiki Kaisha Toshiba | Memory system |
US9773563B2 (en) | 2015-03-27 | 2017-09-26 | Toshiba Memory Corporation | Memory controller, memory control method, and coefficient decision method |
US9798613B2 (en) | 2013-12-27 | 2017-10-24 | Toshiba Memory Corporation | Controller of nonvolatile semiconductor memory |
US10210042B2 (en) | 2016-09-14 | 2019-02-19 | Toshiba Memory Corporation | Memory system |
US10325664B2 (en) | 2017-03-27 | 2019-06-18 | Toshiba Memory Corporation | Multi-bit memory system with adaptive read voltage controller |
US10430275B2 (en) | 2017-09-19 | 2019-10-01 | Toshiba Memory Corporation | Memory system |
JP2019194841A (ja) * | 2018-04-09 | 2019-11-07 | インテル・コーポレーション | 片側ソフト読み出し |
JP2020102295A (ja) * | 2020-03-06 | 2020-07-02 | キオクシア株式会社 | メモリシステムおよび不揮発性メモリの制御方法 |
US10776019B2 (en) | 2017-09-20 | 2020-09-15 | Toshiba Memory Corporation | Memory system and method of controlling nonvolatile memory |
US10795761B2 (en) | 2018-03-15 | 2020-10-06 | Toshiba Memory Corporation | Memory system and method of controlling non-volatile memory |
US10803930B2 (en) | 2018-03-22 | 2020-10-13 | Toshiba Memory Corporation | Memory system including a memory controller and error correction circuit for reading multi-bit data and for detecting and correcting read data errors |
US11211950B2 (en) | 2020-01-07 | 2021-12-28 | Kioxia Corporation | Decoding device and decoding method |
US11675535B2 (en) | 2020-03-23 | 2023-06-13 | Kioxia Corporation | Memory system and shift register memory |
JP7471883B2 (ja) | 2020-03-19 | 2024-04-22 | キオクシア株式会社 | メモリシステム |
Families Citing this family (25)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102089570B1 (ko) * | 2012-06-04 | 2020-03-16 | 삼성전자주식회사 | 저장 장치 및 그것의 데이터 처리 방법 |
US9190174B2 (en) * | 2012-11-30 | 2015-11-17 | Micron Technology, Inc. | Determining soft data from a hard read |
US9013920B2 (en) * | 2013-04-03 | 2015-04-21 | Western Digital Technologies, Inc. | Systems and methods of write precompensation to extend life of a solid-state memory |
US20170148510A1 (en) * | 2013-05-31 | 2017-05-25 | Sandisk Technologies Llc | Updating read voltages |
US10475523B2 (en) | 2013-05-31 | 2019-11-12 | Western Digital Technologies, Inc. | Updating read voltages triggered by the rate of temperature change |
KR20150091693A (ko) | 2014-02-03 | 2015-08-12 | 삼성전자주식회사 | 플래쉬 메모리 읽기 방법 |
KR102128471B1 (ko) | 2014-03-11 | 2020-06-30 | 삼성전자주식회사 | 폴라 부호의 리스트 복호 방법 및 이를 적용한 메모리 시스템 |
KR102144748B1 (ko) * | 2014-03-19 | 2020-08-18 | 에스케이하이닉스 주식회사 | 데이터 저장 장치 및 그것의 동작 방법 |
US9513982B1 (en) * | 2014-04-09 | 2016-12-06 | Seagate Technology Llc | Methods and systems for reducing decoder error floor for an electronic non-volatile computer storage apparatus |
US9690697B2 (en) * | 2014-07-10 | 2017-06-27 | Kabushiki Kaisha Toshiba | Memory controller, storage device and memory control method |
KR102190241B1 (ko) * | 2014-07-31 | 2020-12-14 | 삼성전자주식회사 | 메모리 컨트롤러의 동작 방법 및 불휘발성 메모리 시스템 |
CN105468471A (zh) * | 2014-09-12 | 2016-04-06 | 光宝科技股份有限公司 | 固态存储装置及其错误更正方法 |
US10223029B2 (en) * | 2014-12-22 | 2019-03-05 | Sandisk Technologies Llc | Dynamic programming adjustments based on memory wear, health, and endurance |
US10148293B2 (en) * | 2015-03-17 | 2018-12-04 | SK Hynix Inc. | Incremental LLR generation for flash memories |
KR102617832B1 (ko) * | 2016-08-12 | 2023-12-27 | 에스케이하이닉스 주식회사 | 메모리 컨트롤러, 반도체 메모리 시스템 및 그것의 동작 방법 |
JP2018037123A (ja) | 2016-08-29 | 2018-03-08 | 東芝メモリ株式会社 | 半導体記憶装置及びメモリシステム |
JP2018163709A (ja) * | 2017-03-24 | 2018-10-18 | 東芝メモリ株式会社 | メモリシステム |
TWI670715B (zh) * | 2017-04-06 | 2019-09-01 | 群聯電子股份有限公司 | 解碼方法、記憶體儲存裝置及記憶體控制電路單元 |
US10083754B1 (en) | 2017-06-05 | 2018-09-25 | Western Digital Technologies, Inc. | Dynamic selection of soft decoding information |
KR20190001417A (ko) * | 2017-06-27 | 2019-01-04 | 에스케이하이닉스 주식회사 | 컨트롤러 및 그 동작 방법 |
US10944424B1 (en) * | 2018-09-26 | 2021-03-09 | Seagate Technology Llc | Error correction with multiple LLR-LUTS for a single read |
US10811091B2 (en) | 2018-10-12 | 2020-10-20 | Western Digital Technologies, Inc. | Adaptive processing for read threshold voltage calibration |
JP2023045614A (ja) * | 2021-09-22 | 2023-04-03 | キオクシア株式会社 | メモリシステム |
CN114296645B (zh) * | 2021-12-17 | 2024-01-02 | 合肥大唐存储科技有限公司 | 一种Nand闪存中重读方法和固态硬盘 |
JP2023137690A (ja) * | 2022-03-18 | 2023-09-29 | キオクシア株式会社 | メモリシステム |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7814401B2 (en) * | 2006-12-21 | 2010-10-12 | Ramot At Tel Aviv University Ltd. | Soft decoding of hard and soft bits read from a flash memory |
US8073648B2 (en) | 2007-05-14 | 2011-12-06 | Sandisk Il Ltd. | Measuring threshold voltage distribution in memory using an aggregate characteristic |
US8037394B2 (en) | 2007-06-29 | 2011-10-11 | Hitachi Global Storage Technologies Netherlands, B.V. | Techniques for generating bit reliability information in a post-processor using an error correction constraint |
US8023532B2 (en) | 2008-04-17 | 2011-09-20 | At&T Intellectual Property I, L.P. | Variable bit rate communication system |
JP4818381B2 (ja) * | 2009-03-02 | 2011-11-16 | 株式会社東芝 | 半導体メモリ装置 |
JP5197544B2 (ja) * | 2009-10-05 | 2013-05-15 | 株式会社東芝 | メモリシステム |
JP5349256B2 (ja) | 2009-11-06 | 2013-11-20 | 株式会社東芝 | メモリシステム |
JP2012181761A (ja) * | 2011-03-02 | 2012-09-20 | Toshiba Corp | 半導体メモリ装置および復号方法 |
US9502117B2 (en) * | 2011-03-14 | 2016-11-22 | Seagate Technology Llc | Cell-level statistics collection for detection and decoding in flash memories |
JP2012244305A (ja) * | 2011-05-17 | 2012-12-10 | Toshiba Corp | メモリコントローラ、半導体メモリ装置、および復号方法 |
-
2012
- 2012-03-29 JP JP2012076747A patent/JP2013080450A/ja active Pending
- 2012-08-29 US US13/597,444 patent/US8625347B2/en active Active
Cited By (25)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9798613B2 (en) | 2013-12-27 | 2017-10-24 | Toshiba Memory Corporation | Controller of nonvolatile semiconductor memory |
US9431130B2 (en) | 2014-03-04 | 2016-08-30 | Kabushiki Kaisha Toshiba | Memory controller, storage device, and memory control method |
US10347353B2 (en) | 2015-01-08 | 2019-07-09 | Toshiba Memory Corporation | Memory system |
US9711240B2 (en) | 2015-01-08 | 2017-07-18 | Kabushiki Kaisha Toshiba | Memory system |
US9773563B2 (en) | 2015-03-27 | 2017-09-26 | Toshiba Memory Corporation | Memory controller, memory control method, and coefficient decision method |
US10014059B2 (en) | 2015-03-27 | 2018-07-03 | Toshiba Memory Corporation | Memory controller, memory control method, and coefficient decision method |
US10210042B2 (en) | 2016-09-14 | 2019-02-19 | Toshiba Memory Corporation | Memory system |
US11367489B2 (en) | 2017-03-27 | 2022-06-21 | Kioxia Corporation | Multi-bit memory system with adaptive read voltage controller |
US11017863B2 (en) | 2017-03-27 | 2021-05-25 | Toshiba Memory Corporation | Multi-bit memory system with adaptive read voltage controller |
US10325664B2 (en) | 2017-03-27 | 2019-06-18 | Toshiba Memory Corporation | Multi-bit memory system with adaptive read voltage controller |
US11537465B2 (en) | 2017-09-19 | 2022-12-27 | Kioxia Corporation | Memory system |
US11892907B2 (en) | 2017-09-19 | 2024-02-06 | Kioxia Corporation | Memory system |
US10956264B2 (en) | 2017-09-19 | 2021-03-23 | Toshiba Memory Corporation | Memory system |
US10430275B2 (en) | 2017-09-19 | 2019-10-01 | Toshiba Memory Corporation | Memory system |
US10776019B2 (en) | 2017-09-20 | 2020-09-15 | Toshiba Memory Corporation | Memory system and method of controlling nonvolatile memory |
US10795761B2 (en) | 2018-03-15 | 2020-10-06 | Toshiba Memory Corporation | Memory system and method of controlling non-volatile memory |
US10803930B2 (en) | 2018-03-22 | 2020-10-13 | Toshiba Memory Corporation | Memory system including a memory controller and error correction circuit for reading multi-bit data and for detecting and correcting read data errors |
JP2019194841A (ja) * | 2018-04-09 | 2019-11-07 | インテル・コーポレーション | 片側ソフト読み出し |
JP7321717B2 (ja) | 2018-04-09 | 2023-08-07 | タホ リサーチ リミテッド | 片側ソフト読み出し |
US11211950B2 (en) | 2020-01-07 | 2021-12-28 | Kioxia Corporation | Decoding device and decoding method |
JP7087013B2 (ja) | 2020-03-06 | 2022-06-20 | キオクシア株式会社 | メモリシステムおよび不揮発性メモリの制御方法 |
JP2020102295A (ja) * | 2020-03-06 | 2020-07-02 | キオクシア株式会社 | メモリシステムおよび不揮発性メモリの制御方法 |
JP7471883B2 (ja) | 2020-03-19 | 2024-04-22 | キオクシア株式会社 | メモリシステム |
US11675535B2 (en) | 2020-03-23 | 2023-06-13 | Kioxia Corporation | Memory system and shift register memory |
US11995355B2 (en) | 2020-03-23 | 2024-05-28 | Kioxia Corporation | Memory system and shift register memory |
Also Published As
Publication number | Publication date |
---|---|
US8625347B2 (en) | 2014-01-07 |
US20130077400A1 (en) | 2013-03-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2013080450A (ja) | メモリ装置 | |
US9319073B2 (en) | Mitigation of write errors in multi-level cell flash memory through adaptive error correction code decoding | |
US10404279B2 (en) | Low BER hard-decision LDPC decoder | |
US9092350B1 (en) | Detection and handling of unbalanced errors in interleaved codewords | |
JP4818381B2 (ja) | 半導体メモリ装置 | |
CN107408069B (zh) | 用于检测和缓解闪速存储器中的位线开路的装置和方法 | |
US9106264B2 (en) | Encoding and decoding in flash memories using convolutional-type low-density parity check codes | |
US9990247B2 (en) | Write mapping to mitigate hard errors via soft-decision decoding | |
US9543983B2 (en) | Decoding method, memory storage device and memory control circuit unit | |
CN104283570B (zh) | 低密度奇偶性检验(ldpc)解码器中的对数似然比(llr)阻尼 | |
US20110258371A1 (en) | Method for performing memory access management, and associated memory device and controller thereof | |
JP5229591B2 (ja) | 多値レベルメモリデバイスにおける増大した記憶容量のための誤り訂正符号 | |
US10320429B2 (en) | Memory controller, memory system and memory control method | |
US10108490B1 (en) | Decoding method, memory storage device and memory control circuit unit | |
JP2015133161A (ja) | 半導体記憶装置 | |
KR20110028228A (ko) | 다중레벨 플래시 메모리의 에러정정 | |
US10193569B2 (en) | Decoding method, memory storage device and memory control circuit unit | |
US9171629B1 (en) | Storage device, memory controller and memory control method | |
US10210042B2 (en) | Memory system | |
CN112860474A (zh) | 快速收敛的低密度奇偶校验码的软位翻转解码器 | |
KR20200111509A (ko) | 오류 정정 디코더 및 이를 포함하는 메모리 시스템 | |
JP2009271852A (ja) | 半導体記憶装置 | |
JP2010165426A (ja) | メモリコントローラおよび半導体メモリ装置 | |
JP2013045428A (ja) | メモリ装置およびメモリ装置の制御方法 | |
US11356124B2 (en) | Electronic device |