JP2015133161A - 半導体記憶装置 - Google Patents
半導体記憶装置 Download PDFInfo
- Publication number
- JP2015133161A JP2015133161A JP2014004663A JP2014004663A JP2015133161A JP 2015133161 A JP2015133161 A JP 2015133161A JP 2014004663 A JP2014004663 A JP 2014004663A JP 2014004663 A JP2014004663 A JP 2014004663A JP 2015133161 A JP2015133161 A JP 2015133161A
- Authority
- JP
- Japan
- Prior art keywords
- read
- data
- voltage
- optimum value
- error
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Read Only Memory (AREA)
- Error Detection And Correction (AREA)
- For Increasing The Reliability Of Semiconductor Memories (AREA)
Abstract
【課題】読み出しデータを用いて読み出し電圧の最適値を予測できるようになり、1回の読み出し動作に比べてエラー訂正できる可能性を高め、さらにエラー訂正に失敗した場合の再動作の発動確率を抑制することが出来る半導体記憶装置を提供する。【解決手段】読み出したデータに含まれるエラー数を数えるコントローラ部を具備し、読み出し電圧の最適値よりも低い電圧での読み出しと、高い電圧での読み出しとの両方を実行し、低い電圧で読み出した時のデータとエラーのないデータとの差である第1の誤りビット数と、高い電圧で読み出した時のデータとエラーのないデータとの差である第2の誤りビット数と、を比較し、第1の誤りビット数が前記第2の誤りビット数より小さい場合、次回のデータ読み出しの時の読み出し電圧の最適値を読み出し電圧の最適値よりも低く設定する。【選択図】図5
Description
本発明の実施形態は、半導体記憶装置に関する。
メモリ装置のメモリセルの作製では、シリコン基板上のP型半導体層を挟みこむようにソースとドレインとなる2つのN型半導体部分を形成し、P型半導体層の上に酸化物層にはさまれたポリシリコン製の浮遊ゲートを形成し、さらにその上に制御ゲートが形成される。このため、メモリセルの浮遊ゲートに蓄積された電荷(電子)は、浮遊ゲートを覆う酸化物層により保持されるため、電源を供給することなくデータを長期間、保持することができる。
メモリセルへのデータの書き込みは、量子トンネル効果により電子を、酸化物層を介して浮遊ゲート内に注入することで行われる。回路基板であるN型半導体を接地電位にし、微小な電流によって制御ゲートに書き込み電圧を印加する。浮遊ゲート内に蓄積された電子が情報を記憶する。多値メモリでは、浮遊ゲートに蓄積された電荷量により複数ビットの情報を記憶する。
メモリセルからのデータの情報の読み出しでは、ソース/ドレイン間に読み出し電圧が印加される。浮遊ゲートにある電子数(電荷量)に応じて、ソース/ドレイン間に電流が流れはじめる電圧、すなわち浮遊ゲートにある電子が放出される電圧の最適値が異なる。所定の複数の読み出し電圧を順に印加していくことで、読み出し電圧に対するメモリセルの閾値の大小が分かる。
フラッシュメモリセルでは、書き込みおよび読み出しの度に、絶縁体である酸化膜を電子が貫通する。このため、書き込み回数および読み出し回数の増加により酸化膜が劣化する。
そして、近年、メモリ装置は高記録密度化のためにメモリセルのサイズが微細化され、メモリセルの浮遊ゲートに蓄積する電荷量が減少している。このため、隣接セル間の干渉ノイズの影響が相対的に増大している。すなわち、メモリセルにデータの書き込み(プログラム)または読み出しを行うことにより、隣接する他方のメモリセルのデータが変化することがある。
例えばデータの書き込みは、ワード線とビット線により選択されたメモリセルに対して行われる。しかし、非選択メモリセルにおいても弱い書き込み状態となり、電圧の最適値が高くなるプログラムディスターブ(以下、「PD」という)現象が発生する。また、データの読み出しにおいても、非選択メモリセルが弱い書き込み状態となり、電圧の最適値が高くなるリードディスターブ(以下、「RD」という)現象が発生する。
一方、メモリセルに書き込まれたデータが、長時間アクセスされなかった場合、メモリセルの浮遊ゲートから徐々に電子が放出され、電圧の最適値が低くなるデータリテンション(以下「DR」という)現象が発生する。
RDまたはDR等による、データ読み出しエラーの発生を防止し、メモリ装置の信頼性を改善するためには、例えば、読み出しレベル(以下、電圧)を変えることが有効である。
通常、読み出しの際には一組のデータをメモリから読み出してECC訂正を行う。また、データに含まれるエラーが最少となる読み出し電圧の最適値の予想値がある場合は、予測値でデータを読み出す方法も広く行われている。この方法は読み出し速度が速く、消費電力も少ないという特徴があるが、前回の読み出し動作時に設定された今回の読み出し電圧の最適値が本来の最適値からずれている場合に、本来の最適値に設定されている場合よりも読み出しデータに含まれるエラービット数が多く、かつ、今回の読み出し電圧の最適値が本来の最適値からずれていることを検出することができないため、読み出しデータを訂正できない可能性が高くなる、という問題があった。
一方、メモリからのデータ読み出しの時に、想定されている読み出し電圧の最適値のデータと併せて、その最適値よりも高い電圧で読み出したデータと低い電圧で読み出したデータを一組または複数組用いてECC訂正を行う方法も行われている。最適値で読み出したデータをハードビットデータ(HBデータ:ECC訂正の対象となるデータ)、それ以外のデータをソフトビットデータ(SBデータ:HBデータをECC訂正する際のHBデータの信頼度情報を与えるデータ)と呼ぶこともある。すなわち、ECC訂正はHBデータに対して行われ、SBデータはHBデータの確からしさ(尤度)の情報を与える。この方法によるECC訂正は、HBデータだけを用いる最初の方法によるECC訂正に比べてECC訂正の能力は高くなるが、メモリから複数回データを読み出すので読み出し速度が遅く、消費電力が大きくなる、という問題があった。
本発明が解決しようとする課題は、読み出しデータを用いて読み出し電圧の最適値を予測できるようになり、1回の読み出し動作に比べてエラー訂正できる可能性を高め、さらにエラー訂正に失敗した場合の再動作の発動確率を抑制することが出来る半導体記憶装置を提供する。
上記課題を解決するために、第1の実施形態の半導体記憶装置は、読み出したデータに含まれるエラー数を数えるコントローラ部を具備する。コントローラ部は、読み出し電圧の予想最適値でデータを読み出さず、読み出し電圧の予想最適値よりも低い電圧での読み出しと、高い電圧での読み出しとの計2回の読み出しを実行し、低い電圧で読み出した時のデータとエラーのないデータとの差である第1の誤りビット数と、高い電圧で読み出した時のデータとエラーのないデータとの差である第2の誤りビット数と、を比較し、第1の誤りビット数が前記第2の誤りビット数より小さい場合、次回のデータ読み出しの時の読み出し電圧の予想最適値を読み出し電圧の予想最適値よりも低く設定し、第1の誤りビット数が第2の誤りビット数より大きい場合、次回のデータ読み出し時の読み出し電圧の予想最適値を読み出し電圧の予想最適値よりも高く設定することを特徴とする。
以下、各実施形態につき図面を参照して説明する。この説明に際し、全図にわたり、共通する部分には共通する参照符号を付す。
(第1の実施形態)
第1の実施形態のメモリ装置1について、図1を参照して説明する。実施形態のメモリ装置1は、SDカードなどのメモリカードやeMMCなどの組み込み用メモリ等を想定しており、パソコンやデジタルカメラ等のホストから受信したデータを記憶し、記憶したデータをホストに送信する記憶媒体である。また、メモリ装置はホストとともに、例えば携帯電話、スマートフォンや携帯音楽プレーヤーであるMP3プレーヤー等のメモリシステムを構成していてもよい。
第1の実施形態のメモリ装置1について、図1を参照して説明する。実施形態のメモリ装置1は、SDカードなどのメモリカードやeMMCなどの組み込み用メモリ等を想定しており、パソコンやデジタルカメラ等のホストから受信したデータを記憶し、記憶したデータをホストに送信する記憶媒体である。また、メモリ装置はホストとともに、例えば携帯電話、スマートフォンや携帯音楽プレーヤーであるMP3プレーヤー等のメモリシステムを構成していてもよい。
メモリ装置1は、メモリ部2と、デコーダ6を具備したメモリコントローラ3とを有する。メモリ部2は、NAND型フラッシュメモリを有し、データを不揮発に記憶する。メモリ部2は、複数のメモリセルを含むページと呼ばれる単位でデータを書き込み、また読み出す。各ページには、固有の物理アドレスが割り当てられている。更にメモリ部2は、複数のページを含むブロックと呼ばれる単位でデータを消去する。
そして、メモリコントローラ3は、バス12を介して接続された、ROM10と、CPUコア11と、RAM9と、誤り訂正部(以下「ECC部」という)5と、NAND I/F(インターフェイス)4と、データ比較部7と、誤りビットカウント部8とを有する。
メモリコントローラ3は、ホスト装置からの要求に応じて、制御部であるCPUコア11を用いて、メモリ部2に対してデータの書き込み、読み出し、及び消去を命令する。また、メモリコントローラ3は、メモリ部2のブロックの状態を管理する。ブロックの管理とは、どの物理アドレスのブロックが、どの論理アドレスのデータを保持しているかの関係、およびどの物理アドレスのブロックが消去状態(何も書き込まれていない、または無効なデータを保持している状態)であるかを管理することを含んでいる。ROM10には、メモリ装置1の制御プログラム等が格納されており、RAM9には、アドレス管理で必要となるアドレス変換テーブル等が記憶される。
NAND I/F4は、メモリコントローラ3とメモリ部2との間のインターフェース処理を行う。データ比較部7は、異なる電圧で読み出したときのデータを比較し、誤りビットカウント部8は、エラーのないデータと、エラーのあるデータとから誤りビット数を求める。
ECC部5は、データ書き込み時に、データを符号化する(図示しない)エンコーダと、データ読み出し時に、メモリ部2から読みだされたデータから符号化データを復号するデコーダ6を有する。符号化および復号は複数のビットデータからなるECCフレーム単位で行われる。なお、書き込みおよび読み出し単位であるページは複数のECCフレームからなる。各実施形態のデコーダ6のECC部5は、例えば、硬判定復号用符号であるBCH符号や確率に基づく反復計算により軟判定復号する誤り訂正符号であるLDPC符号を用いる。
硬判定復号する場合は、データとパリティで構成されるECCフレームの各ビットが「0」か「1」か、を示すハードビット(以下、HB)だけを用いて演算が行われる。これに対して、例えばLDPC符号を軟判定復号する場合は、所定の複数の読み出し電圧を印加してソフトビットデータ(以下、SBデータ)から、HBデータの信頼度情報(確からしさ)を含む対数尤度比(Log Likelihood Ratio以下、「LLR」ともいい。符号「λ」で示す。)が対数尤度比テーブルをもとに取得される。そして、LLRをもとに、ECCフレーム単位で、確率に基づく反復計算により誤り訂正処理が行われる。
しかし、データが記憶されているメモリ部2のメモリセルの電圧の最適値は、RDまたはDR等により変化することがある。
ここで、図2〜図4は、メモリセルの電圧の分布を示す。図2〜図4の横軸は、読み出し電圧Vであり、縦軸は、読み出し電圧Vで読み出されたメモリセルの個数nを示している。ここに示すメモリセルはN=2(Nは自然数)のメモリセルであるため、4種類のデータが記憶されており、読み出し電圧によって(1、1)、(1、0)、(0、0)、(0、1)に区別される。ここで、NANDメモリセルに記憶する2bitのデータのLower bitをX、Upper bitをYとしたとき、(X、Y)と表記する。そして、図2に示すように、メモリセルに記憶されているデータを読み出すためのHB読み出し電圧セットは、VA、VB、VCの3(=2N−1)個の電圧からなる。すなわち、閾値電圧分布において個数nが最小の電圧である最小頻度電圧の3個の電圧VA、VB、VCをメモリセルに印加することで、そのメモリセルの読み出し電圧の最適値が、どの電圧のレベルにあるかが判明するため、HBデータを読み出すことができる。
なお、HB読み出し電圧セットの情報は、設計および作製条件等をもとに予め設定され、例えば、ROM10に記憶されている。
しかし、図3に示すように、メモリセルがDRの影響を受けた場合、メモリセルの電圧の分布は、破線で示す初期分布に比べて、実線で示すように低電圧側が広がる。このため、初期設定の読み出し電圧セットの電圧VA、VB、VCでは正しくデータを読み出すことができなくなる場合がある。
一方、図4に示すように、メモリセルがRDの影響を受けた場合、メモリセルの電圧の分布は、破線で示す初期分布に比べて、実線で示すように高電圧側が広がる。このため、やはり初期設定の読み出し電圧セットの電圧VA、VB、VCでは正しくデータを読み出すことができなくなる場合がある。
すでに説明したように、上記初期設定の読み出し電圧が本来の最適値がずれている場合、ずれている範囲を予想し、読み出し電圧の最適値を設定する方法がある。従来では、今回の読み出し動作の前の読み出し動作の時にメモリ部に保存された読み出し電圧の最適値での計1回の読み出しを行っていた。そのため、情報量が少なく前回の読み出し電圧の最適値から読み出したデータを使って今回の読み出し電圧の最適値を予想することはできなかった。すなわち、ECC訂正を行う際に読み出し電圧の最適値が大幅にずれていた場合などに訂正にかかる負担が大きくなってしまう問題があった。
これに対して、メモリ装置1では、前回の読み出し時に保存された読み出し電圧の予想最適値(以下、特に断りが無い限り、「予想最適値」を「最適値」と表記)は、RDまたはDR等の影響により最適ではないとして読み出さず、前回の読み出し時の読み出し電圧の最適値より高い電圧と低い電圧との計2回の読み出しを行う。これにより、第一の実施形態では、メモリ部2から2回データを読み出してECC訂正を1回実行し、デコードにより訂正されたデータと2つの読み出しデータを比較することによって次回の読み出し電圧の最適値を設定することができる。
次に、上述したメモリ装置1の動作について図5と図6を参照ながら説明する。第1の実施形態では、前回の読み出しから、ある程度の時間が経過しており、RDまたはDR等の影響を大いに受けている際に、特に有効な方法である。
まず、メモリコントローラ3は、データを読み込むために、メモリ部2からNAND I/F4を介してデータを受信する。メモリ部2は、データをメモリコントローラ3に送信する。メモリ部2は、読み出し電圧を補正することが可能である。しかし、このとき、メモリコントローラ3は、データを読み出し電圧の最適値では読まずに、読み出し電圧の最適値より低い電圧63でデータAを読み出す。同様にして、高い電圧65でもデータBを読み出す。このように、メモリコントローラ3は、読み出し電圧の最適値より低い電圧63と高い電圧65の二つのデータを読み出し、RAM9に記憶する。
次に、読み出し電圧の最適値より低い電圧63で読み出したデータAをECC部5でECC訂正を行う。そして、メモリコントローラ3は、ECC訂正をしたデータCをRAM9に記憶する。
データ比較部7は、低い電圧63で読み出しデータAとECC訂正をしたデータCとを比較する。そして、誤りビット数カウント部は、低い電圧63で読み出した時の誤りビット数を求める。ここでは、低い電圧63で読み出した時の誤りビット数を第1の誤りビット数66とする(ステップ52)。
同様にして、データ比較部7は、ECC訂正したデータCと読み出し電圧の最適値より高い電圧65で読み出したデータBとを比較する。そして、誤りビット数カウント部は、高い電圧65で読み出した時の誤りビット数を求める。ここでは、高い電圧65で読み出した時の誤りビット数を第2の誤りビット数67とする(ステップ53)。
メモリコントローラ3は、第1の誤りビット数66と第2の誤りビット数67とを比較する(ステップ54)。その際、書込み直後のデータ分布61のように、第1の誤りビット数66と第2の誤りビット数67との値が同じであれば、今回の読み出し電圧が本来の最適値に設定されていると判断し、今回の読み出し電圧の最適値を次回の読み出しの時にも使用する。また、ストレス印加後のデータ分布62のように、第1の誤りビット数66の方が第2の誤りビット数67よりも小さければ、今回の読み出し電圧の最適値よりも低い電圧63で読み出した方が、エラーが減る可能性が高いと判断する。そして、今回の読み出し電圧の最適値と低い電圧63との差分の半分の値分だけ今回の読み出し電圧の最適値より低い電圧を次回の読み出し電圧の最適値とする(ステップ55)。逆に、第1の誤りビット数66の方が第2の誤りビット数67よりも大きければ、今回の読み出し電圧よりも高い電圧で読み出した方が、エラーが減る可能性が高いと判断する。そして、今回の読み出し電圧の最適値と高い電圧65との差分の半分の値分だけ今回の読み出し電圧の最適値より高い電圧を次回の読み出し電圧の最適値とする(ステップ56、57)。
なお、コントローラ3は、読み出し電圧の最適値より低い電圧で読み出したデータをECC部5でECC訂正できなかった場合、読み出し電圧の最適値より高い電圧で読み出したデータに対してECC訂正を行い、その後同様に図5に示したデータの比較を行う。
上記第1の実施形態では、読み出し電圧の最適値より低い電圧と高い電圧の二つのデータを読み出す。そして、この二つのデータのどちらか一方を用いてECC訂正を行うことにより、ECC訂正したデータを作り出す。このようにして、次回の読み出しの際に使用する読み出し電圧の最適値を設定する。これにより、上記第1の実施形態では、合計2回の読み出しを行う。従来の通常の読み出し方式では、メモリ装置1の読み出し動作は1回であったため、読み出したデータを使って読み出し電圧の閾値の最適値を予測することはできなかった。第1の実施形態では、メモリ装置1の読み出し動作は2回になるが、読み出したデータを使って読み出し電圧の閾値の最適値を予測できるようになり、従来の1回の読み出し動作に比べてエラー訂正できる可能性を高め、エラー訂正に失敗した場合の再動作の発動確率を抑制することができる。
(第2の実施形態)
第2の実施形態は、次回の読み出し電圧の最適値を設定するために、今回の読み出し電圧の最適値を誤りビット数からどのくらい移動させるのかのパターンを示したものである。この説明において、上記第1の実施形態と重複する部分の詳細な説明は省略する。
第2の実施形態は、次回の読み出し電圧の最適値を設定するために、今回の読み出し電圧の最適値を誤りビット数からどのくらい移動させるのかのパターンを示したものである。この説明において、上記第1の実施形態と重複する部分の詳細な説明は省略する。
第2の実施形態は、第1の誤りビット数と第2の誤りビット数の差の大きさによって、次回の読み出し電圧の最適値を調節する。すなわち、差が大きければ設定値の変更幅を大きくし、差が小さければ設定値の変更幅を小さくする。
具体例として、図7と図8を参照して、以下に第2の実施形態の半導体記憶装置の動作について説明する。
メモリコントローラ3は、例えば読み出し電圧の最適値より0.125V低い電圧と0.125V高い電圧で読み出す。この時、ECC回路のECC訂正能力が50bitであるとする。また、図7のステップ78が第1の実施形態との違いにあたる部分である。
もし、書き込み直後のデータ分布71のように、第1の誤りビット数76と第2の誤りビット数77の差が5bit以下ならば、読み出し電圧の最適値は変更しない。
次に、ストレス印加後のデータ分布72のように、第1の誤りビット数76と第2の誤りビット数77の差が5bit以上10bit以下である場合、第1の誤りビット数76と第2の誤りビット数77の差に比例した電圧値を、誤りビット数の少ない方に近づくように補正して、そのときの誤りビット数の少ない方の電圧を次回の読み出し電圧の最適値とする。例えば、第1の誤りビット数76が第2の誤りビット数77より7bit多ければ、第2の誤りビット数に0.0125Vの7倍の0.0875Vを加算して、そのときの第2の誤りビット数77に対応した電圧を読み出し電圧の最適値とする。逆に、第2の誤りビット数77が第1の誤りビット数76より8bit多ければ、第1の誤りビット数76に0.0125Vの8倍の0.1Vを減算して、そのときの第1の誤りビット数76に対応した電圧を次回の読み出し電圧の最適値とする。
さらに、第1の誤りビット数76が第2の誤りビット数77よりも10bit以上大きい場合、第2の誤りビット数77の電圧値に0.0125Vの10倍の0.125Vを加算して、今回の読み出し電圧の最適値を移動させる。また、第1の誤りビット数76が第2の誤りビット数77よりも10bit以上小さい場合、第1の誤りビット数76の電圧値に0.0125Vの10倍の0.125Vを加算して、今回の読み出し電圧の最適値を移動させる。第2の実施形態で示した誤りビット数や電圧値はこれらに限定されることはなく、様々なパターンが考えられる(ステップ78)。
第2の実施形態では、第1の実施形態と同様に、メモリ装置1の読み出し動作は2回になるが、読み出したデータを使って読み出し電圧の閾値の最適値を予測できるようになり、従来の1回の読み出し動作にくらべてエラー訂正できる可能性を高め、エラー訂正に失敗した場合の再動作の発動確率を抑制することができる。
(第3の実施形態)
第3の実施形態は、上記各実施形態と同様に、次回の読み出し電圧の最適値を設定するために、今回の読み出し電圧の最適値を誤りビット数からどのくらい移動させるのかのパターンを示したものである。この説明において、上記各実施形態と重複する部分の詳細な説明は省略する。
第3の実施形態は、上記各実施形態と同様に、次回の読み出し電圧の最適値を設定するために、今回の読み出し電圧の最適値を誤りビット数からどのくらい移動させるのかのパターンを示したものである。この説明において、上記各実施形態と重複する部分の詳細な説明は省略する。
具体例として、図9を参照して、以下に第3の実施形態の半導体記憶装置の動作について説明する。また、図9のステップ98が上記各実施形態との違いにあたる部分である。
第3の実施形態は、例えば第1の誤りビット数と第2の誤りビット数の比が3:7の場合、比を逆転した7:3の割合で、0.25Vを分割した0.175Vを低い電圧マイナス0.125Vに加算したプラス0.05Vを読み出し電圧の最適値として設定する。第3の実施形態で示した比率や電圧値はこれらに限定されることはなく、様々なパターンが考えられる。
第3の実施形態では、上記各実施形態と同様に、メモリ装置1の読み出し動作は2回になるが、読み出したデータを使って読み出し電圧の閾値の最適値を予測できるようになり、従来の1回の読み出し動作にくらべてエラー訂正できる可能性を高め、エラー訂正に失敗した場合の再動作の発動確率を抑制することができる。
(第4の実施形態)
第4の実施形態は、上記各実施形態と同様に、次回の読み出し電圧の最適値を設定するために、今回の読み出し電圧の最適値を誤りビット数からどのくらい移動させるのかのパターンを示したものである。この説明において、上記各実施形態と重複する部分の詳細な説明は省略する。
第4の実施形態は、上記各実施形態と同様に、次回の読み出し電圧の最適値を設定するために、今回の読み出し電圧の最適値を誤りビット数からどのくらい移動させるのかのパターンを示したものである。この説明において、上記各実施形態と重複する部分の詳細な説明は省略する。
第4の実施形態は、第1の誤りビット数と第2の誤りビット数との絶対値の大きさによって、次回の読み出し電圧の最適値を調節する。すなわち、絶対値が大きければ読み出し電圧の最適値の変更幅を大きくし、絶対値が小さければ読み出し電圧の最適値の変更幅を小さくする。
具体例として、図10を参照して、以下に第4の実施形態の半導体装置の動作について説明する。また、図10のステップ108が上記各実施形態との違いにあたる部分である。
第4の実施形態では、第1の誤りビット数と第2の誤りビット数との絶対値のうち、小さい方が10以下の場合、読み出し電圧の最適値を変更しない。小さい方が10以上20以下の場合、誤りビット数の小さい方向に0.05V加算する。小さい方が20以上50以下の場合、誤りビット数の小さい方向に0.1V加算する。誤りビット数が50以上の場合、誤りビット数の小さい方向に0.1875V補正する。
第4の実施形態では、上記各実施形態と同様に、メモリ装置1の読み出し動作は2回になるが、読み出したデータを使って読み出し電圧の閾値の最適値を予測できるようになり、従来の1回の読み出し動作にくらべてエラー訂正できる可能性を高め、エラー訂正に失敗した場合の再動作の発動確率を抑制することができる。
なお、コントローラ3は、読み出し電圧の最適値より低い電圧で読み出したデータと、読み出し電圧の最適値より高い電圧で読み出したデータとのどちらもECC部5でECC訂正できなかった場合、第5の実施形態の読み出し方式に切り替える。詳しい説明は下記の実施形態で説明する。
(第5の実施形態)
第5の実施形態は、上記各実施形態において読み出し電圧の最適値より低い電圧で読み出したデータと、読み出し電圧の最適値より高い電圧で読み出したデータとのどちらもECC部5でECC訂正できなかった場合、SBデータを用いてECC訂正するものである。この説明において、上記各実施形態と重複する部分の詳細な説明は省略する。
第5の実施形態は、上記各実施形態において読み出し電圧の最適値より低い電圧で読み出したデータと、読み出し電圧の最適値より高い電圧で読み出したデータとのどちらもECC部5でECC訂正できなかった場合、SBデータを用いてECC訂正するものである。この説明において、上記各実施形態と重複する部分の詳細な説明は省略する。
上記各実施形態の方式で読み出す場合、今回の読み出し電圧の最適値で読み出したデータが無い。第5の実施形態では、今回の読み出し電圧の最適値より低い電圧で読み出したデータと、高い電圧で読み出したデータとの排他的論理和(XNOR)をSBデータとし、さらに低い電圧で読み出したデータまたは高い電圧で読み出したデータのどちらか一方をHBデータとして用いて、これら二つのデータからECC訂正を行う。
具体例として、以下に第5の実施形態のメモリ装置の動作について説明する。
図11に示すように、以下の説明において、メモリカード3の各メモリセルはLowerビット、Middleビット、Upperビットにそれぞれ1ビットのデータを記憶する3ビットセルとする(N=3)。メモリセルからHBデータを読み出すために、H01〜H07の7個のHB読み出し電圧が印加される。一般に、Nビット(Nは2以上の自然数)のデータを記憶するメモリセルのデータを読み出すためのHB読み出し電圧は、(2のN乗−1)個である。
例えば、図11に示すように、読み出し電圧の最適値VthがH04とH05の間(Dレベル)の場合には、メモリセルに記憶されていたHBデータは(001)と判断される。なお、(001)はLowerビットおよびMiddleビットが「0」、Upperビットが「1」であることを示す。
所定のECCフレーム単位のHBデータを用いて、硬判定復号が行われる。復号できた場合には、ステップS26において復号データがメモリ部2に送信される。
硬判定復号ができなかった場合には、より誤り訂正能力の高い軟判定復号を行うための、S01〜S14の14個のSB読み出し電圧からなる読み出し電圧セットの電圧が順次、メモリセルに印加される。
なお、SB読み出し電圧の個数は、図11に示すように、それぞれのHB読み出し電圧の低電圧側と高電圧側に各1個の2×(2のN乗−1)個に限られるものではなく、例えば、4×(2のN乗−1)個であってもよい。
SB読み出し電圧により読み出されたSBデータ(電圧の最適値(Vth)レベル)は、HBデータの信頼度情報を含む。例えば、S06〜S07の間で読み出されたHBデータ(Vthレベル10)は、H03〜S06の間で読み出されたHBデータ(Vthレベル9)と同じ(101)であるが、より信頼性が高い。
軟判定復号では、SB読み出し電圧により読み出されたSBデータからHBデータの確からしさを示すLLRが、図8に示す通常復号用の対数尤度比テーブル(LLRテーブル)20Aから取得される。対数尤度比λの絶対値|λ|が信頼度であり、信頼度が、大きいほど信頼性が高く、反対に、信頼度が0に近いほど信頼性が低い。そして、LDPC復号ではLLRテーブルから取得した初期LLRをもとに、確率に基づく反復計算による軟判定復号により誤り訂正処理が行われる。
すなわち、所定個数のビットデータを単位として、タナーグラフ上で接続された符号語の各ビットに対応したビットノードと各パリティ検査式に対応したチェックノードとの間で局所的に推論した結果を、やりとりしながら更新していくイタレーション処理が行われる。そして、メモリコントローラ3は予め定められた最大イタレーション回数内で、復号し、メモリ部2にデータを送信する。
第5の実施形態も上記各実施形態同様に、読み出し電圧の最適値より低い電圧と高い電圧の二つのデータを読み出す。そして、この二つのデータのどちらもECC部5でECC訂正できなかった場合、SBデータを用いてECC訂正する。第5の実施形態では、今回の読み出し電圧の最適値より低い電圧で読み出したデータと、高い電圧で読み出したデータとの排他的論理和(XNOR)をSBデータとし、さらに低い電圧で読み出したデータまたは高い電圧で読み出したデータのどちらか一方をHBデータとして用いて、これら二つのデータからECC訂正を行う。このようにして、次回の読み出しの際に使用する読み出し電圧の最適値を設定する。従来の通常の読み出し方式でSBデータによるECC訂正は、メモリ装置1の読み出し動作は3回であった。第5の実施形態では、メモリ装置1の読み出し動作は2回であり、読み出したデータを使って読み出し電圧の最適値を予測できるようになり、従来の3回の読み出し動作に比べてNAND型フラッシュメモリのような読み出し時間の長いメモリを使う場合、従来よりも読み出し時間を短縮できる。さらに、コントローラやメモリの消費電力が削減できる。
(第6の実施形態)
第6の実施形態は、上記各実施形態において読み出し電圧の最適値より低い電圧で読み出したデータと、読み出し電圧の最適値より高い電圧で読み出したデータとのどちらもECC部5でECC訂正できなかった場合、SBデータを用いてECC訂正するものであるが、その際に何をHBデータとして用いるかについてものである。この説明において、上記各実施形態と重複する部分の詳細な説明は省略する。
第6の実施形態は、上記各実施形態において読み出し電圧の最適値より低い電圧で読み出したデータと、読み出し電圧の最適値より高い電圧で読み出したデータとのどちらもECC部5でECC訂正できなかった場合、SBデータを用いてECC訂正するものであるが、その際に何をHBデータとして用いるかについてものである。この説明において、上記各実施形態と重複する部分の詳細な説明は省略する。
具体例として、図12を参照して、以下に第6の実施形態の半導体装置の動作について説明する。
第6の実施形態は、読み出し電圧の最適値より低い電圧で読み出したデータと、高い電圧で読み出したデータとの排他的論理和をSBデータとし、図12のように低い電圧で読み出したデータと高い電圧で読み出したデータとを例えば同じ割合で、1bitずつ交互に混ぜたデータをHBデータとして用いてECC訂正する。ここでは同じ割合で交互に1bitずつ交互に混ぜたデータをHBデータとしたが、それに限られず、様々なパターンが考えられる。そして、ECC訂正後の動作は第5の実施形態と同じである。
第6の実施形態では、上記第5の実施形態と同様に、メモリ装置1の読み出し動作は2回であるが、読み出したデータを使って読み出し電圧の最適値を予測できるようになり、従来の3回の読み出し動作に比べてNAND型フラッシュメモリのような読み出し時間の長いメモリを使う場合、従来よりも読み出し時間を短縮できる。さらに、コントローラやメモリの消費電力が削減できる。
以上のように、上記各実施形態に係るメモリ装置によれば、読み出しデータを用いて読み出し電圧の最適値を予測できるようになり、1回の読み出し動作に比べてエラー訂正できる可能性を高め、さらにエラー訂正に失敗した場合の再動作の発動確率を抑制することが出来る。
なお、上記実施形態は唯一の実施形態では無く、種々の変形が可能である。すなわち、上記一実施形態は複数の態様を含んでおり、その一部のみが実施されても良い。
また、上記実施形態では半導体記憶装置としてメモリカードを想定していた。しかし、半導体記憶装置はメモリカードに限らず、あらゆる記憶媒体であって良い。
同様に、上記実施形態ではNAND型フラッシュメモリを用いているが、これに限らず、例えばDRAMなどの揮発性メモリや、不揮発性メモリであっても良い。
更に、上記実施形態で説明したフローチャート図は、可能な限り順番を入れ替えることができ、また複数の処理を同時に実行することが出来る。また、メモリ装置1の構成は、図1の構成に限らず、上記実施形態で説明した機能を実現出来る構成であれば、ハードウェアとソフトウェアとを限らず、限定されるものでは無い。
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれると同様に、特許請求の範囲に記載された発明とその均等の範囲に含まれるものである。
1…メモリ装置、2…メモリ部、3…メモリコントローラ、4…NANDI/F、5…ECC部、6…デコーダ、7…データ比較部、8…誤りビットカウント部、9…RAM、10…ROM、11…CPUコア、12…バス
Claims (5)
- 読み出し電圧の最適値を設定するメモリ部と、
読み出したデータに含まれるエラー数を数えるコントローラ部と、
を具備し、
前記コントローラ部は、今回の読み出し電圧の予想最適値でデータを読み出さず、読み出し電圧の予想最適値よりも低い電圧での読み出しと、高い電圧での読み出しと、の計2回の読み出しを実行し、前記低い電圧で読み出した時のデータと前記エラーのないデータとの差である第1の誤りビット数と、前記高い電圧で読み出した時のデータと前記エラーのないデータとの差である第2の誤りビット数と、を比較し、前記第1の誤りビット数が前記第2の誤りビット数より小さい場合、次回のデータ読み出しの時の読み出し電圧の予想最適値を前記読み出し電圧の最適値よりも低く設定し、前記第1の誤りビット数が前記第2の誤りビット数より大きい場合、次回のデータ読み出し時の読み出し電圧の予想最適値を前記読み出し電圧の最適値よりも高く設定する
ことを特徴とする半導体記憶装置。 - 前記コントローラ部は、前記第1の誤りビット数と前記第2の誤りビット数との差の大きさに応じて次回のデータ読み出し時の読み出し電圧の予想最適値を設定する
ことを特徴とする請求項1記載の半導体記憶装置。 - 前記コントローラ部は、前記第1の誤りビット数と前記第2の誤りビット数との比に応じて次回のデータ読み出しの時の読み出し電圧の予想最適値を設定する
ことを特徴とする請求項1記載の半導体記憶装置。 - 前記コントローラ部は、前記読み出し電圧の予想最適値より低い電圧で読み出したデータと、高い電圧で読み出したデータとの排他的論理和をソフトビットデータとし、低い電圧で読み出したデータまたは高い電圧で読み出したデータのどちらか一方をハードビットデータとし、前記二つのデータからECC訂正を行う
ことを特徴とする請求項1記載の半導体記憶装置。 - 前記コントローラ部は、前記読み出し電圧の予想最適値より低い電圧で読み出したデータと高い電圧で読み出したデータとの排他的論理和をソフトビットデータとし、前記低い電圧で読み出したデータと前記高い電圧で読み出したデータとを組み合わせて作り出したデータをハードビットデータとし、前記二つのデータからECC訂正を行う
ことを特徴とする請求項1記載の半導体記憶装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2014004663A JP2015133161A (ja) | 2014-01-14 | 2014-01-14 | 半導体記憶装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2014004663A JP2015133161A (ja) | 2014-01-14 | 2014-01-14 | 半導体記憶装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2015133161A true JP2015133161A (ja) | 2015-07-23 |
Family
ID=53900232
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2014004663A Pending JP2015133161A (ja) | 2014-01-14 | 2014-01-14 | 半導体記憶装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2015133161A (ja) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106448737A (zh) * | 2016-09-30 | 2017-02-22 | 北京忆芯科技有限公司 | 读取闪存数据的方法、装置以及固态驱动器 |
CN109545261A (zh) * | 2017-09-22 | 2019-03-29 | 爱思开海力士有限公司 | 在读取操作后选择用于刷新的闪速存储块的方法 |
CN109582490A (zh) * | 2017-09-28 | 2019-04-05 | 北京忆芯科技有限公司 | 智能重读命令生成 |
US10297338B2 (en) | 2016-09-20 | 2019-05-21 | Toshiba Memory Corporation | Memory system |
US10763898B2 (en) | 2016-09-13 | 2020-09-01 | Toshiba Memory Corporation | Memory system that carries out soft bit decoding |
US10866860B2 (en) | 2019-03-19 | 2020-12-15 | Toshiba Memory Corporation | Memory system |
US11195585B2 (en) | 2018-09-14 | 2021-12-07 | Toshiba Memory Corporation | Calculating shift amounts for read voltage correction |
US11322210B2 (en) | 2020-03-23 | 2022-05-03 | Kioxia Corporation | Memory system |
-
2014
- 2014-01-14 JP JP2014004663A patent/JP2015133161A/ja active Pending
Cited By (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10763898B2 (en) | 2016-09-13 | 2020-09-01 | Toshiba Memory Corporation | Memory system that carries out soft bit decoding |
US11336307B2 (en) | 2016-09-13 | 2022-05-17 | Kioxia Corporation | Memory system that carries out soft bit decoding |
US10297338B2 (en) | 2016-09-20 | 2019-05-21 | Toshiba Memory Corporation | Memory system |
CN106448737A (zh) * | 2016-09-30 | 2017-02-22 | 北京忆芯科技有限公司 | 读取闪存数据的方法、装置以及固态驱动器 |
CN109545261A (zh) * | 2017-09-22 | 2019-03-29 | 爱思开海力士有限公司 | 在读取操作后选择用于刷新的闪速存储块的方法 |
CN109545261B (zh) * | 2017-09-22 | 2023-03-14 | 爱思开海力士有限公司 | 在读取操作后选择用于刷新的闪速存储块的方法 |
CN109582490A (zh) * | 2017-09-28 | 2019-04-05 | 北京忆芯科技有限公司 | 智能重读命令生成 |
CN109582490B (zh) * | 2017-09-28 | 2023-12-15 | 北京忆芯科技有限公司 | 智能重读命令生成 |
US11195585B2 (en) | 2018-09-14 | 2021-12-07 | Toshiba Memory Corporation | Calculating shift amounts for read voltage correction |
US10866860B2 (en) | 2019-03-19 | 2020-12-15 | Toshiba Memory Corporation | Memory system |
US11334432B2 (en) | 2019-03-19 | 2022-05-17 | Kioxia Corporation | Memory system |
US11698834B2 (en) | 2019-03-19 | 2023-07-11 | Kioxia Corporation | Memory system |
US11322210B2 (en) | 2020-03-23 | 2022-05-03 | Kioxia Corporation | Memory system |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9106264B2 (en) | Encoding and decoding in flash memories using convolutional-type low-density parity check codes | |
US9092350B1 (en) | Detection and handling of unbalanced errors in interleaved codewords | |
US9319073B2 (en) | Mitigation of write errors in multi-level cell flash memory through adaptive error correction code decoding | |
JP2015133161A (ja) | 半導体記憶装置 | |
JP5502064B2 (ja) | メモリ装置およびデータ判定方法 | |
CN112783685B (zh) | 快速收敛的低密度奇偶校验码的位翻转解码器 | |
US9189322B2 (en) | Memory system | |
US9639419B2 (en) | Read voltage level estimating method, memory storage device and memory control circuit unit | |
JP2013080450A (ja) | メモリ装置 | |
JP4818381B2 (ja) | 半導体メモリ装置 | |
US9990247B2 (en) | Write mapping to mitigate hard errors via soft-decision decoding | |
KR20160109010A (ko) | 컨트롤러, 반도체 메모리 시스템 및 그것의 동작 방법 | |
US10320429B2 (en) | Memory controller, memory system and memory control method | |
US9870830B1 (en) | Optimal multilevel sensing for reading data from a storage medium | |
US10804939B2 (en) | Memory controller and operating method thereof | |
CN104283570A (zh) | 低密度奇偶性检验(ldpc)解码器中的对数似然比(llr)阻尼 | |
KR20180010448A (ko) | Ldpc 디코더, 반도체 메모리 시스템 및 그것의 동작 방법 | |
US10009045B2 (en) | Decoding method, memory controlling circuit unit and memory storage device | |
US10193569B2 (en) | Decoding method, memory storage device and memory control circuit unit | |
KR20160113001A (ko) | Ldpc 디코더, 반도체 메모리 시스템 및 그것의 동작 방법 | |
JP2012089085A (ja) | 半導体メモリ装置および半導体メモリシステム | |
US20150317203A1 (en) | Code-Based Read Control for Data Storage Devices | |
CN112860474B (zh) | 快速收敛的低密度奇偶校验码的软位翻转解码器 | |
JP2018160064A (ja) | メモリコントローラ、メモリシステムおよび制御方法 | |
JP2009271852A (ja) | 半導体記憶装置 |