JP2018045387A - メモリシステム - Google Patents
メモリシステム Download PDFInfo
- Publication number
- JP2018045387A JP2018045387A JP2016178783A JP2016178783A JP2018045387A JP 2018045387 A JP2018045387 A JP 2018045387A JP 2016178783 A JP2016178783 A JP 2016178783A JP 2016178783 A JP2016178783 A JP 2016178783A JP 2018045387 A JP2018045387 A JP 2018045387A
- Authority
- JP
- Japan
- Prior art keywords
- likelihood ratio
- log likelihood
- ratio table
- data
- 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.)
- Pending
Links
Classifications
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/37—Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
- H03M13/45—Soft decoding, i.e. using symbol reliability information
- H03M13/458—Soft decoding, i.e. using symbol reliability information by updating bit probabilities or hard decisions in an iterative fashion for convergence to a final decoding result
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding 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/1012—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using codes or arrangements adapted for a specific type of error
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding 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/1068—Adding 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
-
- 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/10—Programming or data input circuits
- G11C16/14—Circuits for erasing electrically, e.g. erase voltage switching 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
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/52—Protection of memory contents; Detection of errors in memory contents
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
- H03M13/11—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
- H03M13/1102—Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
- H03M13/1105—Decoding
- H03M13/1111—Soft-decision decoding, e.g. by means of message passing or belief propagation algorithms
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/37—Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
- H03M13/45—Soft decoding, i.e. using symbol reliability information
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/63—Joint error correction and other techniques
- H03M13/6325—Error control coding in combination with demodulation
-
- 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/10—Programming or data input circuits
- G11C16/14—Circuits for erasing electrically, e.g. erase voltage switching circuits
- G11C16/16—Circuits for erasing electrically, e.g. erase voltage switching circuits for erasing blocks, e.g. arrays, words, groups
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/04—Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
- G11C2029/0411—Online error correction
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Probability & Statistics with Applications (AREA)
- Quality & Reliability (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Read Only Memory (AREA)
- Detection And Correction Of Errors (AREA)
- Error Detection And Correction (AREA)
Abstract
【課題】動作信頼性を向上出来るメモリシステムを提供する。【解決手段】一実施形態のメモリシステムは、半導体記憶装置100と、コントローラ200とを備える。コントローラ200は、第1対数尤度比テーブルTW1-TW2,TWR1と、第1対数尤度比テーブルと異なる第2対数尤度比テーブルTR1-TR2, TWR2とを保持するメモリ262と、半導体記憶装置に対する書き込み回数と消去回数の少なくともいずれか、及び読み出し回数に従って、使用する対数尤度比テーブルの優先順位を決定し(S31)、決定した優先順位に従って第1対数尤度比テーブルと前記第2対数尤度比テーブルのいずれかを選択するセレクタ263と、セレクタで選択された対数尤度比テーブルを用いてデータを復号する復号器261とを備える。【選択図】図14
Description
実施形態は、メモリシステムに関する。
半導体メモリからデータを読み出す際のエラー訂正方法として、軟判定復号が知られている。
動作信頼性を向上出来るメモリシステムを提供する。
本実施形態のメモリシステムは、データを保持可能な半導体記憶装置と、半導体記憶装置からデータを読み出し可能なコントローラとを具備する。コントローラは、第1対数尤度比テーブルと、第1対数尤度比テーブルと異なる第2対数尤度比テーブルとを保持するメモリと、データの読み出し時において、半導体記憶装置に対する書き込み回数と消去回数の少なくともいずれか、及び読み出し回数に従って、使用する対数尤度比テーブルの優先順位を決定し、決定した優先順位に従って第1対数尤度比テーブルと第2対数尤度比テーブルのいずれかを選択するセレクタと、セレクタで選択された対数尤度比テーブルを用いてデータを復号する復号器とを備える。
以下、図面を参照して実施形態について説明する。なお、以下の説明において、同一の機能及び構成を有する構成要素については、共通する参照符号を付す。
1.第1実施形態
第1実施形態に係るメモリシステムについて説明する。以下では、半導体記憶装置としてNAND型フラッシュメモリを備えたメモリシステムを例に挙げて説明する。
第1実施形態に係るメモリシステムについて説明する。以下では、半導体記憶装置としてNAND型フラッシュメモリを備えたメモリシステムを例に挙げて説明する。
1.1 構成について
1.1.1 メモリシステムの全体構成について
まず、本実施形態に係るメモリシステムの大まかな全体構成について、図1を用いて説明する。
1.1.1 メモリシステムの全体構成について
まず、本実施形態に係るメモリシステムの大まかな全体構成について、図1を用いて説明する。
図示するようにメモリシステム1は、NAND型フラッシュメモリ100とコントローラ200とを備えている。NAND型フラッシュメモリ100とコントローラ200とは、例えばそれらの組み合わせにより一つの半導体装置を構成しても良く、その例としてはSDTMカードのようなメモリカードや、SSD(solid state drive)等が挙げられる。
NAND型フラッシュメモリ100は複数のメモリセルを備え、データを不揮発に記憶する。コントローラ200は、NANDバスによってNAND型フラッシュメモリ100に接続され、ホストバスによってホスト機器300に接続される。そしてコントローラ200は、NAND型フラッシュメモリ100を制御し、またホスト機器300から受信した命令に応答して、NAND型フラッシュメモリ100にアクセスする。ホスト機器300は、例えばデジタルカメラやパーソナルコンピュータ等であり、ホストバスは、例えばSDTMインターフェースに従ったバスである。NANDバスは、NANDインターフェースに従った信号の送受信を行う。
1.1.2 コントローラ200の構成について
引き続き図1を用いて、コントローラ200の構成の詳細について説明する。図1に示すようにコントローラ200は、ホストインターフェース回路210、内蔵メモリ(RAM)220、プロセッサ(CPU)230、バッファメモリ240、NANDインターフェース回路250、及びECC(Error Checking and Correcting)回路260を備えている。
引き続き図1を用いて、コントローラ200の構成の詳細について説明する。図1に示すようにコントローラ200は、ホストインターフェース回路210、内蔵メモリ(RAM)220、プロセッサ(CPU)230、バッファメモリ240、NANDインターフェース回路250、及びECC(Error Checking and Correcting)回路260を備えている。
ホストインターフェース回路210は、ホストバスを介してホスト機器300と接続され、ホスト機器300から受信した命令及びデータを、それぞれプロセッサ230及びバッファメモリ240に転送する。またプロセッサ230の命令に応答して、バッファメモリ240内のデータをホスト機器300へ転送する。
プロセッサ230は、コントローラ200全体の動作を制御する。例えばプロセッサ230は、ホスト機器300から書き込み命令を受信した際には、それに応答して、NANDインターフェース回路250に対して書き込み命令を発行する。読み出し及び消去の際も同様である。またプロセッサ230は、ウェアレベリング等、NAND型フラッシュメモリ100を管理するための様々な処理を実行する。
NANDインターフェース回路250は、NANDバスを介してNAND型フラッシュメモリ100と接続され、NAND型フラッシュメモリ100との通信を司る。そしてNANDインターフェース回路250は、プロセッサ230から受信した命令に基づき、種々の信号をNAND型フラッシュメモリ100へ送信し、またNAND型フラッシュメモリ100から受信する。
バッファメモリ240は、書き込みデータや読み出しデータを一時的に保持する。
内蔵メモリ220は、例えばDRAMやSRAM等の半導体メモリであり、プロセッサ230の作業領域として使用される。そして内蔵メモリ220は、NAND型フラッシュメモリ100を管理するためのファームウェアや、各種の管理テーブル等を保持する。
ECC回路260は、NAND型フラッシュメモリ100に記憶されるデータに関する誤り検出及び誤り訂正処理を行う。すなわちECC回路260は、データの書き込み時には誤り訂正符号を生成して、これを書き込みデータに付与し、データの読み出し時にはこれを復号する。誤り訂正符号としては、BCH符号やRS(Reed-Solomon)符号等の硬判定復号符号と、LDPC(Low-Density Parity-Check)符号等の軟判定復号符号とを用いることが出来る。ECC回路260については、1.1.4の項にて、より詳細に説明する。
1.1.3 NAND型フラッシュメモリ100の構成について
次に、NAND型フラッシュメモリ100の構成について説明する。図1に示すようにNAND型フラッシュメモリ100は、メモリセルアレイ110、ロウデコーダ120、ドライバ回路130、センスアンプ140、アドレスレジスタ150、コマンドレジスタ160、及びシーケンサ170を備える。
次に、NAND型フラッシュメモリ100の構成について説明する。図1に示すようにNAND型フラッシュメモリ100は、メモリセルアレイ110、ロウデコーダ120、ドライバ回路130、センスアンプ140、アドレスレジスタ150、コマンドレジスタ160、及びシーケンサ170を備える。
メモリセルアレイ110は、ロウ及びカラムに対応付けられた複数の不揮発性のメモリセルを含む複数のブロックBLKを備えている。図1では一例として4つのブロックBLK0〜BLK3が図示されている。そしてメモリセルアレイ110は、コントローラ200から与えられたデータを記憶する。
ロウデコーダ120は、ブロックBLK0〜BLK3のいずれかを選択し、更に選択したブロックBLKにおけるロウ方向を選択する。
ドライバ回路130は、選択されたブロックBLKに対して、ロウデコーダ120を介して電圧を供給する。
センスアンプ140は、データの読み出し時には、メモリセルアレイ110から読み出されたデータをセンスし、必要な演算を行う。そして、このデータDATをコントローラ200に出力する。データの書き込み時には、コントローラ200から受信した書き込みデータDATを、メモリセルアレイ110に転送する。
アドレスレジスタ150は、コントローラ200から受信したアドレスADDを保持する。コマンドレジスタ160は、コントローラ200から受信したコマンドCMDを保持する。
シーケンサ170は、コマンドレジスタ160に保持されたコマンドCMDに基づき、NAND型フラッシュメモリ100全体の動作を制御する。
1.1.4 ECC回路260について
次に、上記コントローラ200が備えるECC回路260の詳細について説明する。図2はECC回路260の、特にデータの復号に関わる処理を行う構成のブロック図である。図示するようにECC回路260は、復号器261、メモリ262、及びセレクタ263を備えており、これらは互いに通信可能に接続されている。
次に、上記コントローラ200が備えるECC回路260の詳細について説明する。図2はECC回路260の、特にデータの復号に関わる処理を行う構成のブロック図である。図示するようにECC回路260は、復号器261、メモリ262、及びセレクタ263を備えており、これらは互いに通信可能に接続されている。
復号器261は、前述のようにNAND型フラッシュメモリ100から読み出されたデータにつき、硬判定復号処理及び軟判定復号処理を行い、復号されたデータをホスト機器300へ送信する。軟判定復号処理では、復号器261は対数尤度比(Log Likelihood Ratio: LLR)を元にして、確率に基づく反復計算を行う。そしてこの計算により、誤りを検出し、訂正する。対数尤度比LLRは、ある読み出し電圧により読み出されたデータの信頼度(確からしさ)を示す情報であり、対数尤度比テーブル(LLRテーブル)を用いて求められる。
以下、LLRテーブルについて簡単に説明する。図3は、メモリセルの閾値分布を示しており、説明の簡単化のために1ビットデータを保持する場合を示している。図示するようにメモリセルは、閾値電圧に応じてデータを保持し、図3の例であると、“1”データを保持するメモリセルは低い閾値電圧を有し、“0”データを保持するメモリセルは高い閾値電圧を有する。
各データを保持するメモリセルの閾値電圧は、ある幅をもった範囲内に分布する。これを閾値分布と呼ぶ。理想的には、“0”データの閾値分布と“1”データの閾値分布が離隔していることが望ましい。この場合、図3に示すように、2つの閾値分布の間の電圧VCGRVを読み出し電圧として用いてデータを読み出すことで、“0”データと“1”データを正しく判断出来る。
しかし閾値分布の分布幅は、データの書き込み後における様々な影響により拡がり、図4に示すように、2つの閾値分布が重なることがある。このように閾値分布が重なる場合、誤読み出しが生じやすい。そのため、前述のLDPC等の軟判定処理では、LLRテーブルを用いてデコードすることにより、エラーの訂正能力を高めることが出来る。LLRテーブルは、メモリセルが持ちうる閾値電圧を複数の範囲に分割した時の、閾値電圧の各範囲とLLRとの関係を保持するテーブルである。図4の例であると、例えばV1とV2との間、V2とV3との間等が、上記閾値電圧の範囲に相当する。そして、軟判定処理においては、ソフトビット読み出しが行われる。ソフトビット読み出しとは、図4の例であると、電圧V1〜V7を用いた読み出しであり、これによって得られたソフトビットにより、各メモリセルの閾値電圧の属する上記閾値電圧の範囲が分かり、その閾値電圧の範囲に対応するLLRが、LLRテーブルを参照することによって求められる。
図2に戻ってECC回路260の構成について説明する。メモリ262は、例えば揮発性または不揮発性の半導体メモリであり、上記説明したLLRテーブルを保持する。本例では、複数(図2の例では3個)のLLRテーブルTW1、TW2、TW3を保持する。これらのLLRテーブルTWは、書き込み及び消去による閾値変動を考慮して作成されたものである。
前述の通り、閾値分布は種々の影響によって変動する。従って、例えば図4に示す閾値分布に最適化されたLLRテーブルは、閾値分布が図4から更に変動した際には必ずしも最適なLLRテーブルでは無くなる。
また、閾値分布の変動の仕方は、その原因によって様々である。例えば、あるメモリセルに対する書き込み動作は、その他のメモリセルの閾値分布を高電圧側に拡げる作用を有する。この様子を図5に示す。図示するように、閾値分布の形状は、その上裾が拡がるように変化する。このような多くの原因のうち、本例では、書き込み及び消去動作による影響を考慮して、複数のLLRテーブルTWが用意される。より具体的には、LLRテーブルTW1、TW2、及びTW3は、例えばブロックBLKに対して実行された書き込み動作及び消去動作の回数に応じて最適化されている。
図2に戻ってECC回路260の構成について説明する。セレクタ263は、例えば揮発性または不揮発性の半導体メモリを内部に備え、この半導体メモリにおいてオーダーセットテーブルを保持する。更に、このオーダーセットテーブルに基づいて、メモリ262からLLRテーブルTW1、TW2、及びTW3のいずれかを選択し、データの復号に適用すべきLLRテーブルを復号器261に通知する。図6は、オーダーセットテーブルの概念図である。
図示するように、本例に係るオーダーセットテーブルでは、6種類の条件(条件A〜F)の各々につき、LLRテーブルTW1、TW2、及びTW3の適用順序が規定されている。すなわち、条件Aでは、まずLLRテーブルTW1が適用され、次にTW2が適用され、最後にTW3が適用される。条件Bでは、まずLLRテーブルTW1が適用され、次にTW3が適用され、最後にTW2が適用される。
条件A〜Fは、読み出し対象ブロックBLKに対して行われた書き込み動作及び消去動作の少なくとも一方の回数(これをW/E回数と表記する)である。具体的には、例えば以下の通りである。
条件A:W/E回数=0〜200回
条件B:W/E回数=201〜400回
条件C:W/E回数=401〜600回
条件D:W/E回数=601〜800回
条件E:W/E回数=801〜1000回
条件F:W/E回数=1001以上。
条件B:W/E回数=201〜400回
条件C:W/E回数=401〜600回
条件D:W/E回数=601〜800回
条件E:W/E回数=801〜1000回
条件F:W/E回数=1001以上。
また、W/E回数のカウントの仕方には種々の方法を用いることが出来る。ブロックは、基本的に消去単位となり、同一ブロックのデータは一括して消去される。このような場合には、ブロックへの消去動作回数がそのまま消去回数としてカウント出来る。しかし、例えばメモリセルが三次元に積層された三次元積層型NAND型フラッシュメモリの場合には、ブロックサイズ未満の単位で消去も可能である。このような場合には、あるブロックにおいて、ブロックサイズ未満の単位で行われた消去回数を累積して、これを当該ブロックの消去回数としてカウントしても良い。このような消去方法に関しては、例えば“NONVOLATILE SEMICONDUCTOR MEMORY DEVICE”という2011年9月18日に出願された米国特許出願13/235,389号に記載されている。また、“NON-VOLATILE SEMICONDUCTOR STORAGE DEVICE”という2010年1月27日に出願された米国特許出願12/694,690号に記載されている。更に、“NONVOLATILE SEMICONDUCTOR MEMORY DEVICE AND DATA ERASE METHOD THEREOF”という2012年5月30日に出願された米国特許出願13/483,610号に記載されている。これらの特許出願は、その全体が本願明細書において参照により援用されている。
また、書き込み動作のカウント方法については、あるブロックの任意のページにデータが書き込まれれば1回とカウントし、更に当該ブロックの別のページにデータが書き込まれれば2回とカウントし、同一ブロックに対して行われた書き込み回数を累積していっても良い(ページ単位でのカウント方法)。あるいは、ブロックの任意のページにデータが書き込まれれば1回とカウントするが、その後でブロックの消去(あるいは当該ページを含むブロック未満の領域の消去)が行われることなく別のページに書き込みが行われても、その書き込みは1回としてカウントしない方法もあり得る(ブロック単位でのカウント方法)。後者の場合には、消去回数と書き込み回数とは同数となり得る。
1.2 動作について
次に、上記構成のメモリシステム1におけるデータの読み出し動作につき、特にECC回路260での軟判定動作に着目して説明する。図7は、軟判定動作のフローチャートである。
次に、上記構成のメモリシステム1におけるデータの読み出し動作につき、特にECC回路260での軟判定動作に着目して説明する。図7は、軟判定動作のフローチャートである。
図示するように、まずソフトビット読み出しが行われる(ステップS10)。すなわち、コントローラ200のプロセッサ230は、ソフトビット読み出しコマンドと共に、読み出し対象領域のブロックアドレス及びページアドレスをNAND型フラッシュメモリ100へ送信する。するとNAND型フラッシュメモリ100では、ロウデコーダ120がいずれかのページを選択し、例えば図4の例で説明したように、読み出し電圧として複数の電圧V1〜V7を印加する。そして、これらの電圧V1〜V7を用いて読み出されたデータ(ソフトビット)をセンスアンプ140がセンスし、更にデータはコントローラ200へ送信される。
次に、ECC回路260のセレクタ263は、読み出し対象ブロックBLKのW/E回数を取得する(ステップS11)。ブロックBLK毎のW/E回数は、例えばメモリ220にテーブルとして保持されている。そこで、例えばプロセッサ230は、読み出し対象ブロックBLKの物理アドレスに基づいて、W/E回数をメモリ220から読み出し、これをセレクタ263へ転送する。
するとセレクタ263は、図6で説明したオーダーセットテーブルに基づいて、テーブル適用順序を選択する(ステップS12)。すなわち、ステップS11で取得したW/E回数が、図6で説明した条件A〜Fのいずれに該当するかを確認し、対応するテーブル適用順序を選択する。
引き続きセレクタ263は、ステップS12で選択したテーブル適用順序に基づき、未選択のLLRテーブルの中で、最優先のLLRテーブルを選択する(ステップS13)。例えば、図6における条件Aに相当するテーブル適用順序が選択された場合、最優先のLLRテーブルはテーブルTW1であり、次に優先されるLLRテーブルはテーブルTW2であり、最後がテーブルTW3であり、ここではテーブルTW1が選択されたと仮定する。そしてセレクタ263は、メモリ262からテーブルTW1を読み出し、これを復号器261に設定する(ステップS14)。
すると復号器261は、NAND型フラッシュメモリ100から受信した読み出しデータを、LLRテーブルTW1を用いて復号(ソフトビットデコード)する(ステップS15)。復号に成功すれば(ステップS16、NO)、読み出し動作は成功であり、処理は終了する。
復号に失敗した場合(ステップS16、YES)、未選択のLLRテーブルがあれば(ステップS17、YES)、ステップS13に戻り、次に優先されるLLRテーブルTW2を用いてソフトビットデコードが行われる(ステップS13〜S15)。既に未選択のLLRテーブルが無い場合(ステップS17、NO)、すなわち、3つのLLRテーブルTW1、TW2、及びTW3のいずれを用いても復号に成功しなかった場合には、読み出し失敗として、処理は終了する。
1.3 本実施形態に係る効果
本実施形態によれば、読み出し動作の軟判定処理において、読み出し対象ブロックBLKのW/E回数に応じて最適なLLRテーブルを優先的に適用出来る。そのため、エラーの訂正時間を短縮し、メモリシステム1のデータ転送速度を向上出来る。本効果につき、以下説明する。
本実施形態によれば、読み出し動作の軟判定処理において、読み出し対象ブロックBLKのW/E回数に応じて最適なLLRテーブルを優先的に適用出来る。そのため、エラーの訂正時間を短縮し、メモリシステム1のデータ転送速度を向上出来る。本効果につき、以下説明する。
NAND型フラッシュメモリの微細化に伴い、このNAND型フラッシュメモリのコントローラに搭載されるECC回路には、年々、高い訂正能力が要求されるようになってきている。そして、この高い訂正能力を実現するために、LDPCのような軟判定を行うECC回路がコントローラに搭載されるようになってきている。
軟判定を行うにあたっては、その前にまず硬判定処理が行われる。図8は、硬判定及び軟判定処理の流れを示す概念図である。硬判定処理では、まずハードビット読み出しが行われる。ハードビット読み出しはソフトビット読み出しと異なり、最適と思われる1つの読み出し電圧を用いてデータが読み出される。そして、読み出されたデータにつきハードビットデコード処理が行われる。
ハードビットデコードによりエラーを訂正出来なかった場合、軟判定処理が行われる。すなわち、まずソフトビット読み出しが行われ、次にソフトビットデコード処理が行われる。この際、本実施形態では、W/E回数を考慮した複数のLLRテーブルTWが用意され、更にW/E回数に応じてエラー訂正に適したLLRテーブルTWの情報をオーダーセットテーブルとして用意している。一般的にNAND型フラッシュメモリの物理特性として、W/E回数は閾値分布に影響を及ぼす。そこで本実施形態に係るECC回路は、オーダーセットテーブルとW/E回数に基づいて、最適なLLRテーブルTWから順番に選択してソフトビットデコードを行う。従って、複数のLLRテーブルTWが用意されてはいるが、最初に適用されるLLRテーブルによってデコードに成功する確率が極めて高い。
また、1回のソフトビットデコードに要する時間は、一般的にハードビットデコードに要する時間よりも長い。従って、軟判定において複数のLLRテーブルを用意する場合に、LLRテーブルを変えてソフトビットデコードを繰り返すことは、読み出し動作に要する時間を大幅に長くするおそれがあり、例えば訂正が難しいデータの場合にはその影響が顕著である。しかし、本実施形態によれば、どのようなデータであっても、当該データが保持されていたブロックに適したLLRテーブルから順番に適用される。従って、ソフトビットデコード回数を効果的に削減し、読み出し速度を向上出来る。このことは、NAND型フラッシュメモリからの読み出しデータを返すまでの最大レイテンシが規定されているホストデバイスにおいて顕著な効果となり得る。
以上のように本実施形態であると、W/E回数を考慮した複数のLLRテーブルを用意し、読み出し対象ブロックのW/E回数に応じて、適用するLLRテーブルの優先順位を動的に切り替えることで、高速な読み出しを可能とする。
2.第2実施形態
次に、第2実施形態に係るメモリシステムについて説明する。本実施形態は、上記第1実施形態において、W/E回数の代わりに読み出し回数に応じてLLRテーブルが用意され、且つ選択するものである。以下では、第1実施形態と異なる点についてのみ説明する。
次に、第2実施形態に係るメモリシステムについて説明する。本実施形態は、上記第1実施形態において、W/E回数の代わりに読み出し回数に応じてLLRテーブルが用意され、且つ選択するものである。以下では、第1実施形態と異なる点についてのみ説明する。
2.1 ECC回路260について
図9は、本実施形態に係るECC回路260の、特にデータの復号に関わる処理を行う構成のブロック図である。
図9は、本実施形態に係るECC回路260の、特にデータの復号に関わる処理を行う構成のブロック図である。
本実施形態が第1実施形態で説明した図2の構成と異なる点は、メモリ262が、書き込み及び消去の代わりに、読み出し動作による閾値変動を考慮して作成された複数(図9の例では3個)のLLRテーブルTR1、TR2、及びTR3を有する点である。すなわちLLRテーブルTR1、TR2、及びTR3は、例えばブロックBLKに対して実行された読み出し動作の回数に応じて最適化されている。
また、セレクタ263が保持するオーダーセットテーブルには、図10に示すように例えば6種類の条件(条件G〜L)の各々につき、LLRテーブルTR1、TR2、及びTR3の適用順序が規定されている。すなわち、条件Gでは、まずLLRテーブルTR1が適用され、次にTR2が適用され、最後にTR3が適用される。そして条件G〜Lは、読み出し対象ブロックBLKに対して行われた読み出し動作の回数である。具体的には、例えば以下の通りである。
条件G:読み出し回数=0〜300回
条件H:読み出し回数=301〜600回
条件I:読み出し回数=601〜900回
条件J:読み出し回数=901〜1200回
条件K:読み出し回数=1201〜1500回
条件L:読み出し回数=1501以上。
条件H:読み出し回数=301〜600回
条件I:読み出し回数=601〜900回
条件J:読み出し回数=901〜1200回
条件K:読み出し回数=1201〜1500回
条件L:読み出し回数=1501以上。
2.2 動作について
次に、上記構成のメモリシステム1におけるデータの読み出し動作につき、特にECC回路260での軟判定動作に着目して説明する。図11は、軟判定動作のフローチャートである。
次に、上記構成のメモリシステム1におけるデータの読み出し動作につき、特にECC回路260での軟判定動作に着目して説明する。図11は、軟判定動作のフローチャートである。
図示するように、本実施形態が第1実施形態で説明した図7と異なる点は、下記の通りである。すなわち、
・ステップS10の後、セレクタ263は、読み出し対象ブロックBLKの読み出し回数を取得する(ステップS20)。すなわち、ブロックBLK毎の読み出し回数は、例えばメモリ220にテーブルとして保持されている。そこで、例えばプロセッサ230は、読み出し対象ブロックBLKの物理アドレスに基づいて、読み出し回数をメモリ220から読み出し、これをセレクタ263へ転送する。
・ステップS10の後、セレクタ263は、読み出し対象ブロックBLKの読み出し回数を取得する(ステップS20)。すなわち、ブロックBLK毎の読み出し回数は、例えばメモリ220にテーブルとして保持されている。そこで、例えばプロセッサ230は、読み出し対象ブロックBLKの物理アドレスに基づいて、読み出し回数をメモリ220から読み出し、これをセレクタ263へ転送する。
・ステップS20に引き続き、セレクタ263は、図10で説明したオーダーセットテーブルに基づいて、テーブル適用順序を適用する(ステップS21)。すなわち、ステップS20で取得した読み出し回数が、図10の条件G〜Lのいずれに該当するかを確認し、対応するテーブル適用順序を選択する。
その他は、第1実施形態と同様である。なお、ステップS13〜S15で用いられるLLRテーブルは、読み出し動作を考慮して作成されたLLRテーブルTR1、TR2、及びTR3のいずれかである。
2.3 本実施形態に係る効果
NAND型フラッシュメモリにおいて、読み出し動作も書き込み動作及び消去動作と同様に、閾値分布に影響を与える。そして、その影響の仕方、また影響の度合いは、書き込み動作及び消去動作とは異なる場合がある。
NAND型フラッシュメモリにおいて、読み出し動作も書き込み動作及び消去動作と同様に、閾値分布に影響を与える。そして、その影響の仕方、また影響の度合いは、書き込み動作及び消去動作とは異なる場合がある。
そこで本実施形態では、読み出し回数を考慮した複数のLLRテーブルTRが用意され、更に読み出し回数に応じてエラー訂正に適したLLRテーブルTRの情報をオーダーセットテーブルとして用意している。そして、読み出し対象ブロックの読み出し回数に応じて、適用するLLRテーブルの優先順位を動的に切り替えることで、高速な読み出しを可能とする。
3.第3実施形態
次に、第3実施形態に係るメモリシステムについて説明する。本実施形態は、上記第1及び第2実施形態を組み合わせたものであり、W/E回数と読み出し回数の両方に応じてLLRテーブルが用意され、且つ選択するものである。以下では、本実施形態を具体化する2つの方法例を挙げて、第1及び第2実施形態と異なる点についてのみ説明する。なお前述の通り、W/E回数とは、書き込み動作と消去動作の少なくともいずれか一方の回数であり、両方を合わせた回数であっても良い。このことは、第3実施形態以降でも、本明細書では同じように解釈される。
次に、第3実施形態に係るメモリシステムについて説明する。本実施形態は、上記第1及び第2実施形態を組み合わせたものであり、W/E回数と読み出し回数の両方に応じてLLRテーブルが用意され、且つ選択するものである。以下では、本実施形態を具体化する2つの方法例を挙げて、第1及び第2実施形態と異なる点についてのみ説明する。なお前述の通り、W/E回数とは、書き込み動作と消去動作の少なくともいずれか一方の回数であり、両方を合わせた回数であっても良い。このことは、第3実施形態以降でも、本明細書では同じように解釈される。
3.1 第1の例
まず、第1の例について説明する。本例は、書き込み及び消去を考慮して作成されたLLRテーブルTWと、読み出しを考慮して作成されたLLRテーブルTRの、2種類のLLRテーブルを用いるものである。
まず、第1の例について説明する。本例は、書き込み及び消去を考慮して作成されたLLRテーブルTWと、読み出しを考慮して作成されたLLRテーブルTRの、2種類のLLRテーブルを用いるものである。
3.1.1 ECC回路260について
図12は、本実施形態に係るECC回路260の、特にデータの復号に関わる処理を行う構成のブロック図である。
図12は、本実施形態に係るECC回路260の、特にデータの復号に関わる処理を行う構成のブロック図である。
本実施形態が第1及び第2実施形態で説明した図2及び図9の構成と異なる点は、メモリ262が、書き込み及び消去動作による閾値変動を考慮して作成された複数(図12の例では2個)のLLRテーブルTW1及びTW2と、読み出し動作による閾値変動を考慮して作成された複数(図12の例では2個)のLLRテーブルTR1及びTR2を有する点である。すなわち、LLRテーブルTW1及びTW2はW/E回数に応じて最適化され、LLRテーブルTR1及びTR2は読み出し動作の回数に応じて最適化されている。
また、セレクタ263が保持するオーダーセットテーブルには、図13に示すようにW/E回数と読み出し回数との組み合わせの各々につき、LLRテーブルTW1、TW2、TR1、及びTR2の適用順序が規定されている。すなわち図13の例であると、W/E回数と読み出し回数の両方が小さい場合には、まずLLRテーブルTW1が適用され、次にTR1が適用され、次にTW2が適用され、最後にTR2が適用される。また、W/E回数が小さく読み出し回数が大きい場合には、まずLLRテーブルTR1が適用され、次にTR2が適用され、次にTW1が適用され、最後にTW2が適用される。更に、W/E回数が大きく読み出し回数が小さい場合には、まずLLRテーブルTW1が適用され、次にTW2が適用され、次にTR1が適用され、最後にTR2が適用される。そして、W/E回数と読み出し回数の両方が大きい場合には、まずLLRテーブルTW2が適用され、次にTR2が適用され、次にTW1が適用され、最後にTR1が適用される。
なお、W/E回数が大きいか小さいか、また読み出し回数が大きいか小さいかは、例えば下記の基準によって判断出来る。もちろん、下記の基準は一例に過ぎない。
W/E回数が500回未満:W/E回数=小
W/E回数が500回以上:W/E回数=大
読み出し回数が1000回未満:読み出し回数=小
読み出し回数が1000回以上:読み出し回数=大。
W/E回数が500回未満:W/E回数=小
W/E回数が500回以上:W/E回数=大
読み出し回数が1000回未満:読み出し回数=小
読み出し回数が1000回以上:読み出し回数=大。
3.1.2 動作について
次に、上記構成のメモリシステム1におけるデータの読み出し動作につき、特にECC回路260での軟判定動作に着目して説明する。図14は、軟判定動作のフローチャートである。
次に、上記構成のメモリシステム1におけるデータの読み出し動作につき、特にECC回路260での軟判定動作に着目して説明する。図14は、軟判定動作のフローチャートである。
図示するように、本実施形態が第1及び第2実施形態で説明した図7及び図11と異なる点は、下記の通りである。すなわち、
・ステップS10の後、セレクタ263は、読み出し対象ブロックBLKのW/E回数及び読み出し回数を取得する(ステップS30)。すなわち、ブロックBLK毎のW/E回数と読み出し回数とは、例えばメモリ220にテーブルとして保持されている。そこで、例えばプロセッサ230は、読み出し対象ブロックBLKの物理アドレスに基づいて、W/E回数と読み出し回数の両方をメモリ220から読み出し、これをセレクタ263へ転送する。
・ステップS10の後、セレクタ263は、読み出し対象ブロックBLKのW/E回数及び読み出し回数を取得する(ステップS30)。すなわち、ブロックBLK毎のW/E回数と読み出し回数とは、例えばメモリ220にテーブルとして保持されている。そこで、例えばプロセッサ230は、読み出し対象ブロックBLKの物理アドレスに基づいて、W/E回数と読み出し回数の両方をメモリ220から読み出し、これをセレクタ263へ転送する。
・ステップS30に引き続き、セレクタ263は、図13で説明したオーダーセットテーブルに基づいて、テーブル適用順序を適用する(ステップS31)。すなわち、ステップS30で取得したW/E回数と読み出し回数との条件が、図13のいずれの条件に該当するかを確認し、対応するテーブル適用順序を選択する。
その他は、第1実施形態と同様である。当然ながら、ステップS13〜S15で用いられるLLRテーブルは、書き込み及び消去動作を考慮して作成されたLLRテーブルTW1及びTW2、並びに読み出し動作を考慮して作成されたLLRテーブルTR1及びTR2のいずれかである。
3.2 第2の例
次に、第2の例について説明する。本例は、書き込み、消去、及び読み出しの3つの動作を考慮して作成された複数のLLRテーブルTWRを用いるものである。
次に、第2の例について説明する。本例は、書き込み、消去、及び読み出しの3つの動作を考慮して作成された複数のLLRテーブルTWRを用いるものである。
3.2.1 ECC回路260について
図15は、本実施形態に係るECC回路260の、特にデータの復号に関わる処理を行う構成のブロック図である。
図15は、本実施形態に係るECC回路260の、特にデータの復号に関わる処理を行う構成のブロック図である。
本実施形態が第1の例で説明した図12の構成と異なる点は、メモリ262が、書き込み、消去、及び読み出し動作の3つの動作による閾値変動を総合的に考慮して作成された複数(図15の例では4個)のLLRテーブルTWR1、TWR2、TWR3、及びTWR3を有する点である。すなわち、この4つのLLRテーブルTWR1、TWR2、TWR3、及びTWR4はいずれも、W/E回数と読み出し回数の両方に応じて最適化されている。
また、セレクタ263が保持するオーダーセットテーブルには、図16に示すようにW/E回数と読み出し回数との組み合わせの各々につき、LLRテーブルTWR1、TWR2、TWR3、及びTWR4の適用順序が規定されている。すなわち図16の例であると、W/E回数と読み出し回数の両方が小さい場合には、LLRテーブルはTWR1、TWR2、TWR3、及びTWR4の順序で適用され、W/E回数が小さく読み出し回数が大きい場合には、TWR2、TWR1、TWR4、及びTWR3の順序で適用される。W/E回数及び読み出し回数の大小の基準は、例えば第1の例で説明した通りである。
3.2.2 動作について
本例に係る軟判定動作は、第1の例で説明した図14の通りである。
本例に係る軟判定動作は、第1の例で説明した図14の通りである。
3.3 本実施形態に係る効果
本実施形態によれば、NAND型フラッシュメモリのW/E回数と読み出し回数の両方に基づいて、最適なLLRテーブルを選択出来る。従って、第1及び第2実施形態より更に訂正精度を向上出来る。なお、図13及び図16の例では、条件としてW/E回数及び読み出し回数が小さい場合と大きい場合の2種類の場合を例に説明したが、例えば更に中程度の場合を追加するなど、3種類以上の場合であっても良い。
本実施形態によれば、NAND型フラッシュメモリのW/E回数と読み出し回数の両方に基づいて、最適なLLRテーブルを選択出来る。従って、第1及び第2実施形態より更に訂正精度を向上出来る。なお、図13及び図16の例では、条件としてW/E回数及び読み出し回数が小さい場合と大きい場合の2種類の場合を例に説明したが、例えば更に中程度の場合を追加するなど、3種類以上の場合であっても良い。
4.第4実施形態
次に、第4実施形態に係るメモリシステムについて説明する。本実施形態は、上記第1実施形態において、W/E回数の代わりに物理アドレス、すなわち読み出し対象領域の位置に応じてLLRテーブルを選択するものである。以下では、第1実施形態と異なる点についてのみ説明する。
次に、第4実施形態に係るメモリシステムについて説明する。本実施形態は、上記第1実施形態において、W/E回数の代わりに物理アドレス、すなわち読み出し対象領域の位置に応じてLLRテーブルを選択するものである。以下では、第1実施形態と異なる点についてのみ説明する。
4.1 ECC回路260について
図17は、本実施形態に係るECC回路260の、特にデータの復号に関わる処理を行う構成のブロック図である。
図17は、本実施形態に係るECC回路260の、特にデータの復号に関わる処理を行う構成のブロック図である。
本実施形態が第1実施形態で説明した図2の構成と異なる点は、メモリ262の備える複数(図17の例では3個)のLLRテーブルT1、T2、及びT3が、W/E回数や読み出し回数の影響を考慮したものに限定されないことであり、例えばLLRテーブルT1はメモリセルアレイ内における平均的な閾値分布に対応し、その他のLLRテーブルT2及びT3はそれと異なっており且つ互いに異なっていれば良い。
またセレクタ263が保持するオーダーセットテーブルには、図18に示すように例えば読み出しアクセスされる領域の物理アドレスを条件に、3つのLLRテーブルT1、T2、及びT3の適用順序が規定されている。すなわち、物理アドレスが、ある第1領域を指定する場合にはLLRテーブルはT1、T2、及びT3の順に適用され、第1領域と異なる第2領域を指定する場合にはT2、T1、及びT3の順に適用され、第1及び第2領域と異なる第3領域を指定する場合にはT3、T2、及びT1の順に適用される。
4.2 動作について
次に、上記構成のメモリシステム1におけるデータの読み出し動作につき、特にECC回路260での軟判定動作に着目して説明する。図19は、軟判定動作のフローチャートである。
次に、上記構成のメモリシステム1におけるデータの読み出し動作につき、特にECC回路260での軟判定動作に着目して説明する。図19は、軟判定動作のフローチャートである。
図示するように、本実施形態が第1実施形態で説明した図7と異なる点は、下記の通りである。すなわち、
・ステップS10の後、セレクタ263は、読み出し対象領域の物理アドレスを取得する(ステップS40)。ホスト機器300は論理アドレスを用いてコントローラ200へ読み出し命令を発行する。コントローラ200は、この論理アドレスと、NAND型フラッシュメモリ100のメモリセルアレイ110におけるブロックBLK及びページを指定する物理アドレスとの関係を示すテーブルを、例えばメモリ220に保持している。そして、例えばプロセッサ230はこのテーブルを用いて論理アドレスを物理アドレスに変換し、NAND型フラッシュメモリ100へ読み出し命令を発行する。プロセッサ230は、このようにして得られた物理アドレスを、ECC回路260のセレクタ263にも送信する。
・ステップS10の後、セレクタ263は、読み出し対象領域の物理アドレスを取得する(ステップS40)。ホスト機器300は論理アドレスを用いてコントローラ200へ読み出し命令を発行する。コントローラ200は、この論理アドレスと、NAND型フラッシュメモリ100のメモリセルアレイ110におけるブロックBLK及びページを指定する物理アドレスとの関係を示すテーブルを、例えばメモリ220に保持している。そして、例えばプロセッサ230はこのテーブルを用いて論理アドレスを物理アドレスに変換し、NAND型フラッシュメモリ100へ読み出し命令を発行する。プロセッサ230は、このようにして得られた物理アドレスを、ECC回路260のセレクタ263にも送信する。
・ステップS40に引き続き、セレクタ263は、図18で説明したオーダーセットテーブルに基づいて、テーブル適用順序を適用する(ステップS41)。すなわち、受信した物理アドレスが指定する領域に応じて、対応するテーブル適用順序を選択する。
その他は、第1実施形態と同様である。なお、ステップS13〜S15で用いられるLLRテーブルは、LLRテーブルT1、T2、及びT3のいずれかである。
4.3 具体例について
次に、図18で説明した第1乃至第3領域の具体例について簡単に説明する。
次に、図18で説明した第1乃至第3領域の具体例について簡単に説明する。
4.3.1 第1の例
第1の例は、ブロックBLK単位で領域が指定される場合である。図20は、メモリセルアレイ110におけるブロックBLKの平面レイアウトの一例を示している。本例では、メモリセルアレイ110は2つのプレーンPN0及びPN1を備え、それぞれのプレーンが16個のブロックBLK00〜BLK33を備えている。
第1の例は、ブロックBLK単位で領域が指定される場合である。図20は、メモリセルアレイ110におけるブロックBLKの平面レイアウトの一例を示している。本例では、メモリセルアレイ110は2つのプレーンPN0及びPN1を備え、それぞれのプレーンが16個のブロックBLK00〜BLK33を備えている。
本構成において、最も特性の良いブロックBLKは、周囲を他のブロックに取り囲まれ、且つプレーン境界に位置しないブロック(プレーンPN0及びPN1のブロックBLK11、BLK12、BLK21、及びBLK22)である。これらのブロックが第1領域に相当する。
次に特性の良いブロックBLKは、周囲を他のブロックに取り囲まれているが、プレーン境界に位置するブロック(プレーンPN0のブロックBLK31及びBLK32並びにPN1のブロックBLK01及びBLK02)である。これらのブロックが第2領域に相当する。
メモリセルアレイ110内において端部に位置するブロック(プレーンPN0のブロックBLK00、BLK01、BLK02、BLK03、BLK10、BLK13、BLK20、BLK23、BLK30、及びBLK33、並びにプレーンPN0のブロックBLK00、BLK03、BLK10、BLK13、BLK20、BLK23、BLK30、BLK31、BLK32、及びBLK33)は、ブロックレイアウトの規則性が乱れるため、比較的特性が良くない。これらのブロックが第3領域に相当する。
以上のように、LLRテーブルの適用順序を、ブロックBLKの位置に応じて変えても良い。
以上のように、LLRテーブルの適用順序を、ブロックBLKの位置に応じて変えても良い。
4.3.2 第2の例
第2の例は、ワード線単位で領域が指定される場合である。図21は、各ブロックBLKに含まれるNANDセルの断面図及びその等価回路図である。図21では一例として、NANDストリングが8個のメモリセルトランジスタMT0〜MT7を備え、選択トランジスタST0及びST1並びにメモリセルトランジスタMTが半導体基板の上方に積層される構成を例に示している。
第2の例は、ワード線単位で領域が指定される場合である。図21は、各ブロックBLKに含まれるNANDセルの断面図及びその等価回路図である。図21では一例として、NANDストリングが8個のメモリセルトランジスタMT0〜MT7を備え、選択トランジスタST0及びST1並びにメモリセルトランジスタMTが半導体基板の上方に積層される構成を例に示している。
図示するように、p型ウェル領域10上には、セレクトゲート線SGSとして機能する例えば4層の配線層11、ワード線WL0〜WL7として機能する8層の配線層12、及びセレクトゲート線SGDとして機能する例えば4層の配線層13が、順次積層されている。積層された配線層間には、図示せぬ絶縁膜が形成されている。
そして、これらの配線層13、12、11を貫通してウェル領域10に達するピラー状の導電体14が形成されている。導電体14の側面には、ゲート絶縁膜15、電荷蓄積層(絶縁膜または導電膜)16、及びブロック絶縁膜17が順次形成され、これらによってメモリセルトランジスタMT、並びに選択トランジスタST1及びST2が形成されている。導電体14は、NANDストリングの電流経路として機能し、各トランジスタのチャネルが形成される領域となる。そして導電体14の上端は、NANDストリングとセンスアンプ140とを接続するビット線BLとして機能する金属配線層18に接続される。更に、ウェル領域10の表面領域内にはn+型不純物拡散層19が形成され、拡散層19は、図示せぬソース線SLに接続される。
以上の構成が、図21を記載した紙面の左右方向及び奥行き方向に複数配列されており、これらの複数のNANDストリングの集合によってブロックBLKが形成される。ブロックBLKは例えば消去単位となるが、ブロックBLKよりも小さい単位でデータが消去されても良い。
更に、メモリセルアレイ110の構成についてはその他の構成であっても良い。すなわちメモリセルアレイ110の構成については、例えば、“三次元積層不揮発性半導体メモリ”という2009年3月19日に出願された米国特許出願12/407,403号に記載されている。また、“三次元積層不揮発性半導体メモリ”という2009年3月18日に出願された米国特許出願12/406,524号、“不揮発性半導体記憶装置及びその製造方法”という2010年3月25日に出願された米国特許出願12/679,991号“半導体メモリ及びその製造方法”という2009年3月23日に出願された米国特許出願12/532,030号に記載されている。これらの特許出願は、その全体が本願明細書において参照により援用されている。
本構成において、セレクトゲート線SGD及びSGSに隣接しないワード線WL、すなわち、上下を別のワード線WLに挟まれたワード線WLに対応するメモリセルは特性が良い。従って、例えばワード線WL1〜WL6が第1領域に相当し、セレクトゲート線SGDに隣接するワード線WL7が第2領域に相当し、セレクトゲート線SGSに隣接するワード線WL0が第3領域に相当する。もちろん、第2、第3領域の各々が複数のワード線WLを含んでいても良い。
このように、LLRテーブルの適用順序をワード線WLの位置に応じて変えても良い。
4.4 本実施形態に係る効果
NAND型フラッシュメモリでは、物理的な位置に応じてメモリセルの特性が異なる場合がある。そこで本実施形態では、読み出し対象領域の物理的な位置に応じて適切なLLRテーブルを動的に切り替えることで、高速な読み出しを可能とする。
NAND型フラッシュメモリでは、物理的な位置に応じてメモリセルの特性が異なる場合がある。そこで本実施形態では、読み出し対象領域の物理的な位置に応じて適切なLLRテーブルを動的に切り替えることで、高速な読み出しを可能とする。
なお、本例におけるLLRテーブルは、メモリセルアレイ内の位置情報を考慮して作成されても良い。そして、実際にアクセスされた領域と、作成するにあたって考慮された位置情報とが一致するようにLLRテーブルが選択されても良い。
5.第5実施形態
次に、第5実施形態に係るメモリシステムについて説明する。本実施形態は、上記第1乃至第4実施形態と異なり、予め定められたオーダーセットテーブルではなく、LLRテーブル毎の過去の訂正履歴情報に基づいて、最適なLLRテーブルを選択するものである。以下では、第1乃至第4実施形態と異なる点についてのみ説明する。
次に、第5実施形態に係るメモリシステムについて説明する。本実施形態は、上記第1乃至第4実施形態と異なり、予め定められたオーダーセットテーブルではなく、LLRテーブル毎の過去の訂正履歴情報に基づいて、最適なLLRテーブルを選択するものである。以下では、第1乃至第4実施形態と異なる点についてのみ説明する。
5.1 ECC回路260について
図22は、本実施形態に係るECC回路260の、特にデータの復号に関わる処理を行う構成のブロック図である。
図22は、本実施形態に係るECC回路260の、特にデータの復号に関わる処理を行う構成のブロック図である。
図示するように、本実施形態に係るメモリ262は、複数(図17の例ではn個であり、nは2以上の自然数)のLLRテーブルT1、T2、T3、…Tnを備えている。これらのLLRテーブルT1〜Tnは、第4実施形態と同様にW/E回数や読み出し回数の影響を考慮したものに限定されるものではない。
復号器261は、第1実施形態と同様にNAND型フラッシュメモリ100から読み出されたデータにつき、硬判定復号処理及び軟判定復号処理を行い、復号されたデータをホスト機器300へ送信する。この際、軟判定復号処理においては、メモリ262内のLLRテーブルT1〜Tnのいずれかを用いてデータを復号する。そして、復号に成功または失敗した旨の情報をセレクタ263へ送信する。
セレクタ263は、例えば揮発性または不揮発性の半導体メモリを内部に備え、この半導体メモリにおいて履歴テーブルを保持する。そして、この履歴テーブルに基づいて、メモリ262からLLRテーブルT1〜Tnのいずれかを選択し、データの復号に適用すべきLLRテーブルを復号器261に通知する。図23は、履歴テーブルの概念図である。
履歴テーブルは、LLRテーブルT1〜Tnの各々を用いて過去に復号に成功した回数に関する情報を保持する。図23の例では、LLRテーブルT1〜Tn毎に、訂正に成功した回数(訂正可能回数)を保持する。図示するように、LLRテーブルT1を用いた場合には過去にN1回だけ復号に成功しており、LLRテーブルT2を用いた場合には過去にN2回だけ復号に成功した旨の情報が保持される(N1〜Nnは自然数)。セレクタ263は、復号器261から復号に成功した旨の情報に基づいて履歴テーブルを更新する。
5.2 動作について
次に、上記構成のメモリシステム1におけるデータの読み出し動作につき、特にECC回路260での軟判定動作に着目して説明する。図24は、軟判定動作のフローチャートである。
次に、上記構成のメモリシステム1におけるデータの読み出し動作につき、特にECC回路260での軟判定動作に着目して説明する。図24は、軟判定動作のフローチャートである。
図示するように、まずソフトビット読み出しが行われる(ステップS10)。ステップS10は第1実施形態で説明した通りである。次に、ECC回路260のセレクタ263は履歴テーブルを参照し、未選択のLLRテーブルの中で、訂正可能回数が最大であるLLRテーブルを選択する(ステップS50)。すなわちセレクタ263は、過去においてデータの復号に成功した回数が最も多いLLRテーブル、言い換えれば復号成功確率の最も高いLLRテーブルを選択する。そしてセレクタ263は、選択したLLRテーブルをメモリ262から読み出し、復号器261に設定する(ステップS14)。
すると復号器261は、NAND型フラッシュメモリ100から受信した読み出しデータを、設定されたLLRテーブルを用いて復号(ソフトビットデコード)する(ステップS15)。復号に成功すれば(ステップS16、NO)、復号器261はその旨をセレクタ263へ通知し、セレクタ263は履歴テーブルにおける訂正可能回数を更新する(ステップS51)。すなわち、例えばLLRテーブルT1が選択され、データの復号に成功した場合、セレクタ263は、履歴テーブルにおいてLLRテーブルT1に関する訂正可能回数N1を“+1”する。
復号に失敗した場合(ステップS16、YES)、未選択のLLRテーブルがあれば(ステップS17、YES)、ステップS50に戻り、次に訂正可能回数が最大であるLLRテーブルを用いてソフトビットデコードが行われる(ステップS14〜S15)。既に未選択のLLRテーブルが無い場合(ステップS17、NO)、すなわち、n個のLLRテーブルT1〜Tnのいずれを用いても復号に成功しなかった場合には、読み出し失敗として、処理は終了する。
5.3 本実施形態に係る効果
本実施形態によれば、各LLRテーブルの過去の実績を履歴テーブルとして記録し、記録された実績に基づき、訂正可能性の高いと思われるLLRテーブルから順番に選択される。従って、第1実施形態と同様にデータを効率的に訂正出来る。
本実施形態によれば、各LLRテーブルの過去の実績を履歴テーブルとして記録し、記録された実績に基づき、訂正可能性の高いと思われるLLRテーブルから順番に選択される。従って、第1実施形態と同様にデータを効率的に訂正出来る。
なお、本実施形態では履歴テーブルにおいて訂正に成功した回数を記録する場合を例に説明したが、失敗した回数を記録しても良い。この場合、図24のステップS50では、訂正失敗回数が最小であるLLRテーブルを選択すれば良い。
また、履歴テーブルは、メモリシステム1の出荷時に予めデフォルトの値で作成されていても良く、この場合には、データの読み出しに成功する度に、デフォルトで設定された履歴テーブルが更新される。
デフォルトの履歴テーブルが用意されない場合には、1つまたは複数のLLRテーブル選択順序情報を有していても良い。すなわち、NAND型フラッシュメモリ100を最初に使用する際には、履歴テーブルは作成されていないか、または履歴テーブルそのものが存在しない。またNAND型フラッシュメモリ100の使用開始直後は、履歴テーブルに記録された情報量が少なく、十分な信頼性を有しない可能性がある。このような場合には、予め定められた順序に従ってLLRテーブルを選択し、読み出し回数が一定回数を超えた際に履歴テーブルを用いるようにしても良い。あるいは、読み出し回数が一定回数を超えるまでは、第1乃至第4実施形態で説明した方法によってLLRテーブルを選択しても良い。
更にプロセッサ230は、メモリシステム1の電源が遮断される際に履歴テーブルが失われないよう、LLRテーブルやW/E回数、読み出し回数等の情報と共に、履歴テーブルをNAND型フラッシュメモリ100の特定の領域(ROMフューズ領域など)に書き込んでも良い。その後、メモリシステム1への電源投入時には、NAND型フラッシュメモリ100から読み出された履歴テーブルがセレクタ263にセットされる。
6.第6実施形態
次に、第6実施形態に係るメモリシステムについて説明する。本実施形態は、上記第5実施形態において、履歴テーブルを物理アドレス毎に用意するものであり、第4実施形態と第5実施形態との組み合わせに相当する。以下では、第5実施形態と異なる点についてのみ説明する。
次に、第6実施形態に係るメモリシステムについて説明する。本実施形態は、上記第5実施形態において、履歴テーブルを物理アドレス毎に用意するものであり、第4実施形態と第5実施形態との組み合わせに相当する。以下では、第5実施形態と異なる点についてのみ説明する。
6.1 履歴テーブルについて
前述の通り、本実施形態に係るセレクタ263は、第5実施形態で説明した図22の構成において、複数の履歴テーブルを備える。この複数の履歴テーブルを履歴テーブル群と呼ぶ。
前述の通り、本実施形態に係るセレクタ263は、第5実施形態で説明した図22の構成において、複数の履歴テーブルを備える。この複数の履歴テーブルを履歴テーブル群と呼ぶ。
図25は、上記履歴テーブル群の一例を示す概念図である。図示するように履歴テーブル群は、各ブロックBLK0〜BLKm(mは自然数であり、(m+1)はメモリセルアレイ110内のブロック数に相当する)に対応付けられた複数の履歴テーブルを含む。
すなわち、ブロックBLK0に対応付けられた履歴テーブルは、ブロックBLK0からデータを読み出されたデータの復号に成功した回数をLLRテーブル毎に保持し、ブロックBLK1に対応付けられた履歴テーブルは、ブロックBLK1からデータを読み出されたデータの復号に成功した回数をLLRテーブル毎に保持し、以下同様である。
もちろん、第4実施形態で説明した通り、ブロックBLK毎に履歴テーブルを設けることは一例に過ぎず、物理アドレスに応じて複数の履歴テーブルが設けられていれば良い。例えば第4実施形態の第2の例で説明したように、複数のワード線WLをゾーン単位で管理し(例えば8本のワード線を3つのゾーンに分ける等)、ゾーン毎に履歴テーブルを用意しても良い。
6.2 動作について
次に、上記構成のメモリシステム1におけるデータの読み出し動作につき、特にECC回路260での軟判定動作に着目して説明する。図26は、軟判定動作のフローチャートである。
次に、上記構成のメモリシステム1におけるデータの読み出し動作につき、特にECC回路260での軟判定動作に着目して説明する。図26は、軟判定動作のフローチャートである。
図示するように、本実施形態が第5実施形態で説明した図24と異なる点は、下記の通りである。すなわち、
・ステップS10の後、セレクタ263は、読み出し対象領域の物理アドレスを取得する(ステップS40)。この処理は第4実施形態で説明した通りである。
・ステップS10の後、セレクタ263は、読み出し対象領域の物理アドレスを取得する(ステップS40)。この処理は第4実施形態で説明した通りである。
・ステップS40に引き続き、セレクタ263は、ステップS40で受信した物理アドレスに応じて、図25で説明した履歴テーブル群から、対応する履歴テーブルを選択する(ステップS60)。その後は、ステップS60で選択した履歴テーブルに基づいて、第5実施形態で説明したステップS50以降の処理が行われる。
6.3 本実施形態に係る効果
第4実施形態で説明したように、メモリセルの特性は、その物理的な位置によって異なり得る。従って、位置に応じて最適なLLRテーブルも異なる可能性がある。従って、本実施形態のように、メモリセルアレイ内の領域(例えばブロックBLK)毎に履歴テーブルを用意することで、各領域について適したLLRテーブルを選択出来る。
第4実施形態で説明したように、メモリセルの特性は、その物理的な位置によって異なり得る。従って、位置に応じて最適なLLRテーブルも異なる可能性がある。従って、本実施形態のように、メモリセルアレイ内の領域(例えばブロックBLK)毎に履歴テーブルを用意することで、各領域について適したLLRテーブルを選択出来る。
なお、ブロックを単位にLLRテーブルを用意する場合には、ブロックとLLRテーブルとが1対1で対応する必要はなく、例えば複数のブロック毎にLLRが用意されても良いし、特性が他に比べて低いと予想されるブロックにのみ用意されても良い。
あるいは、直近でアクセスされた複数のブロックについてのみ用意されても良い。具体的には、直近の例えば50回の読み出しアクセスにおいて読み出し対象とされたブロックに関してのみLLRテーブルを用意しても良い。そして、直近の50回の読み出しアクセスにおいて読み出し対象とされなかったブロックに関するLLRテーブルは破棄されても良い。
更に、本実施形態に係る履歴テーブル群も、メモリシステムの電源遮断時にはNAND型フラッシュメモリ100に書き込まれても良い。
7.第7実施形態
次に、第7実施形態に係るメモリシステムについて説明する。本実施形態は、上記第5実施形態において、履歴テーブルをW/E回数毎に用意するものであり、第1実施形態と第5実施形態との組み合わせに相当する。以下では、第5実施形態と異なる点についてのみ説明する。
次に、第7実施形態に係るメモリシステムについて説明する。本実施形態は、上記第5実施形態において、履歴テーブルをW/E回数毎に用意するものであり、第1実施形態と第5実施形態との組み合わせに相当する。以下では、第5実施形態と異なる点についてのみ説明する。
7.1 履歴テーブルについて
本実施形態に係るセレクタ263は、第6実施形態と同様に履歴テーブル群を保持する。図27は、本実施形態に係る履歴テーブル群の一例を示す概念図である。図示するように履歴テーブル群は、W/E回数に対応付けられた複数(k個、kは自然数であり2以上)の履歴テーブルを含み、W/E回数が第1の範囲の場合から第kの範囲の場合に対応する。この各範囲の一例は下記の通りである。
第1の範囲:W/E回数が0回以上100回未満
第2の範囲:W/E回数が100回以上200回未満
第3の範囲:W/E回数が200回以上300回未満
第kの範囲:W/E回数が1000回以上
すなわち、あるブロックへの読み出しアクセス回数が第1の範囲内にある場合には、第1の範囲に対応する履歴テーブルから、最も訂正可能回数の大きいLLRテーブルが選択される。
本実施形態に係るセレクタ263は、第6実施形態と同様に履歴テーブル群を保持する。図27は、本実施形態に係る履歴テーブル群の一例を示す概念図である。図示するように履歴テーブル群は、W/E回数に対応付けられた複数(k個、kは自然数であり2以上)の履歴テーブルを含み、W/E回数が第1の範囲の場合から第kの範囲の場合に対応する。この各範囲の一例は下記の通りである。
第1の範囲:W/E回数が0回以上100回未満
第2の範囲:W/E回数が100回以上200回未満
第3の範囲:W/E回数が200回以上300回未満
第kの範囲:W/E回数が1000回以上
すなわち、あるブロックへの読み出しアクセス回数が第1の範囲内にある場合には、第1の範囲に対応する履歴テーブルから、最も訂正可能回数の大きいLLRテーブルが選択される。
7.2 動作について
次に、上記構成のメモリシステム1におけるデータの読み出し動作につき、特にECC回路260での軟判定動作に着目して説明する。図28は、軟判定動作のフローチャートである。
次に、上記構成のメモリシステム1におけるデータの読み出し動作につき、特にECC回路260での軟判定動作に着目して説明する。図28は、軟判定動作のフローチャートである。
図示するように、本実施形態が第5実施形態で説明した図24と異なる点は、下記の通りである。すなわち、
・ステップS10の後、セレクタ263は、読み出し対象領域のW/E回数を取得する(ステップS11)。この処理は第1実施形態で説明した通りである。
・ステップS10の後、セレクタ263は、読み出し対象領域のW/E回数を取得する(ステップS11)。この処理は第1実施形態で説明した通りである。
・ステップS11に引き続き、セレクタ263は、ステップS11で受信したW/E回数に応じて、図27で説明した履歴テーブル群から、対応する履歴テーブルを選択する(ステップS70)。その後は、ステップS70で選択した履歴テーブルに基づいて、第5実施形態で説明したステップS50以降の処理が行われる。
7.3 本実施形態に係る効果
第1実施形態で説明したように、メモリセルの特性は、過去に行われたW/E回数によって異なり得る。従って、W/E回数に応じて最適なLLRテーブルも異なる可能性がある。従って、本実施形態のようにW/E回数毎に履歴テーブルを用意することで、適したLLRテーブルを選択出来る。
第1実施形態で説明したように、メモリセルの特性は、過去に行われたW/E回数によって異なり得る。従って、W/E回数に応じて最適なLLRテーブルも異なる可能性がある。従って、本実施形態のようにW/E回数毎に履歴テーブルを用意することで、適したLLRテーブルを選択出来る。
なお、本実施形態ではW/E回数に関連付けて履歴テーブルを用意する場合を例に説明したが、第2実施形態のように読み出し回数に関連付けて履歴テーブルを用意しても良いし、第3実施形態のようにW/E回数及び読み出し回数に関連付けて履歴テーブルを用意しても良い。W/E回数及び読み出し回数に関連付ける場合、例えばW/E回数は1回の動作で+1をカウントするのに対して、読み出し回数は2回の動作で+1をカウントするようにしても良い。この理由は、メモリセルに与える影響は、読み出し動作よりも書き込み及び消去動作の方が大きいと考えられるからである。
更に、本実施形態に係る履歴テーブル群も、メモリシステムの電源遮断時にはNAND型フラッシュメモリ100に書き込まれても良い。
8.変形例等
上記のように、本実施形態に係るメモリシステムによれば、複数のLLRテーブルを用意し、W/E回数、読み出し回数、物理アドレス、及び/または訂正可能回数に応じて、軟判定復号に適用するLLRテーブルの順序を動的に変化させる。これにより、各種の読み出し条件下において、より適したLLRテーブルを選択することが出来、エラー訂正速度を向上出来る。
上記のように、本実施形態に係るメモリシステムによれば、複数のLLRテーブルを用意し、W/E回数、読み出し回数、物理アドレス、及び/または訂正可能回数に応じて、軟判定復号に適用するLLRテーブルの順序を動的に変化させる。これにより、各種の読み出し条件下において、より適したLLRテーブルを選択することが出来、エラー訂正速度を向上出来る。
なお、実施形態は上記説明した形態に限られず、種々の変形が可能である。例えば、閾値分布は、時間が経過するにつれて低電圧側へ移動する。すなわち、図5で説明した分布の変化とは逆に、閾値分布の下裾側が低電圧側へ拡大する。従って、この影響を考慮したLLRテーブルを用意しても良い。
すなわち、第1実施形態では書き込み及び消去動作を考慮したLLRテーブルが用意され、第2実施形態では読み出し動作を考慮したLLRテーブルが用意される場合について説明した。しかし、メモリにデータが書き込まれてからの時間の経過を考慮した複数のLLRテーブルを更に用意しても良い。この場合、例えばコントローラ200はタイマー回路を備え、ブロックやページ毎にデータの書き込み時刻を記録する。そして、この書き込み時刻からの経過時間に応じて、このLLRテーブルを選択しても良い。もちろん、上記第1乃至第7実施形態に、経過時間を考慮したLLRテーブルを適用しても良く、また経過時間に応じて複数の履歴テーブルを用意しても良い。第5実施形態に適用する場合には、例えば経過時間毎に複数の履歴テーブルを用意し、アクセス対象領域についての経過時間に応じて、最適な履歴テーブルを選択すれば良い。
また、第4、第7実施形態において、各アクセス領域につき、書き込み、消去、及び/または読み出し回数に応じたLLRテーブルを用意しても良い。すなわち、書き込み、消去、及び読み出し回数の少なくともいずれかと、アクセス領域の位置とに応じて、LLRテーブルや履歴テーブルを選択しても良い。
更に、第5乃至第7実施形態では、例えばECC回路260は更にカウンタを備え、このカウンタが復号器での復号成功回数をカウントしても良い。そしてこのカウント結果がセレクタに記憶される。
なお、第3実施形態で使用されるLLRテーブルは、書き込み動作、消去動作、及び読み出し動作による閾値変動を考慮して作成される場合を例に説明した。しかし、必ずしもこれらの動作を考慮する必要はなく、第5実施形態で説明したように互いに異なるLLRテーブルであれば十分である。そして、W/E回数や読み出し回数に応じて選択さえされれば良い。このことは第1及び第2実施形態でも同様である。
なお、上記実施形態では半導体記憶装置としてNAND型フラッシュメモリを例に挙げて説明した。しかしNAND型フラッシュメモリに限らず、上記実施形態は軟判定処理が適用される記憶装置全般に適用出来る。
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれると同様に、特許請求の範囲に記載された発明とその均等の範囲に含まれるものである。
1…メモリシステム、100…NAND型フラッシュメモリ、110…メモリセルアレイ、120…ロウデコーダ、130…ドライバ回路、140…センスアンプ、150、160…レジスタ、170…シーケンサ、200…コントローラ、210、250…インターフェース回路、220、240、262…メモリ、230…プロセッサ、260…ECC回路、261…復号器、263…セレクタ、300…ホスト機器。
Claims (16)
- データを保持可能な半導体記憶装置と、
前記半導体記憶装置から前記データを読み出し可能なコントローラと
を具備し、前記コントローラは、第1対数尤度比テーブルと、該第1対数尤度比テーブルと異なる第2対数尤度比テーブルとを保持するメモリと、
前記データの読み出し時において、前記半導体記憶装置に対する書き込み回数と消去回数の少なくともいずれか、及び読み出し回数に従って、使用する対数尤度比テーブルの優先順位を決定し、決定した優先順位に従って前記第1対数尤度比テーブルと前記第2対数尤度比テーブルのいずれかを選択するセレクタと、
前記セレクタで選択された対数尤度比テーブルを用いて前記データを復号する復号器と
を備えるメモリシステム。 - 前記メモリは、前記第1及び第2対数尤度比テーブルと異なる第3対数尤度比テーブルと、前記第1乃至第3対数尤度比テーブルと異なる第4対数尤度比テーブルとを更に保持し、
前記第1及び第2対数尤度比テーブルは、前記書き込みと消去回数の少なくともいずれかに基づき、
前記第3及び第4対数尤度比テーブルは、前記読み出し回数に基づき、
前記セレクタは、前記書き込み回数と消去回数の少なくともいずれか、及び読み出し回数に基づいて、前記優先順位を決定し、決定した優先順位に従って前記第1乃至第4対数尤度比テーブルのいずれかを選択する、請求項1記載のメモリシステム。 - 前記第1及び第2対数尤度比テーブルは、前記書き込み回数と消去回数の少なくともいずれか、及び読み出し回数に基づき、
前記セレクタは、前記書き込み回数と消去回数の少なくともいずれか、及び読み出し回数が第1の条件を満たす場合には前記第1対数尤度比テーブルを選択し、前記復号器が該第1対数尤度比テーブルを用いた復号に失敗した場合に、前記第2対数尤度比テーブルを選択し、
前記書き込み回数と消去回数、及び読み出し回数の少なくともいずれかが、前記第1の条件と異なる第2の条件を満たす場合には前記第2対数尤度比テーブルを選択し、前記復号器が該第2対数尤度比テーブルを用いた復号に失敗した場合に、前記第1対数尤度比テーブルを選択する、請求項1記載のメモリシステム。 - 前記メモリは、対数尤度比テーブル毎の復号成功回数に関する情報を更に保持し、
前記セレクタは、前記書き込み回数と消去回数の少なくともいずれか、及び読み出し回数のいずれか、並びに前記情報に従って、前記第1対数尤度比テーブルと前記第2対数尤度比テーブルのいずれかを選択する、請求項1記載のメモリシステム。 - データを保持可能な半導体記憶装置と、
前記半導体記憶装置から前記データを読み出し可能なコントローラと
を具備し、前記コントローラは、第1対数尤度比テーブルと、該第1対数尤度比テーブルと異なる第2対数尤度比テーブルとを保持するメモリと、
前記データの読み出し時において、前記半導体記憶装置における読み出し対象領域の物理アドレスに従って、使用する対数尤度比テーブルの優先順位を決定し、決定した優先順位に従って前記第1対数尤度比テーブルと前記第2対数尤度比テーブルのいずれかを選択するセレクタと、
前記セレクタで選択された対数尤度比テーブルを用いて前記データを復号する復号器と
を備えるメモリシステム。 - 前記セレクタは、前記読み出し対象領域が、前記半導体記憶装置の備えるメモリセルアレイ内の第1領域を指定する場合には前記第1対数尤度比テーブルを選択し、前記復号器が該第1対数尤度比テーブルを用いた復号に失敗した場合に、前記第2対数尤度比テーブルを選択し、
前記読み出し対象領域が、前記第1領域と異なる第2領域を指定する場合には前記第2対数尤度比テーブルを選択し、前記復号器が該第2対数尤度比テーブルを用いた復号に失敗した場合に、前記第1対数尤度比テーブルを選択する、請求項5記載のメモリシステム。 - データを保持可能な半導体記憶装置と、
前記半導体記憶装置から前記データを読み出し可能なコントローラと
を具備し、前記コントローラは、第1対数尤度比テーブルと、該第1対数尤度比テーブルと異なる第2対数尤度比テーブルと、対数尤度比テーブル毎の復号成功回数に関する情報を保持するメモリと、
前記データの読み出し時において、前記メモリに保持される前記情報に従って、前記第1対数尤度比テーブルと前記第2対数尤度比テーブルのいずれかを選択するセレクタと、
前記セレクタで選択された対数尤度比テーブルを用いて前記データを復号する復号器と
を備えるメモリシステム。 - 前記セレクタは、前記復号成功回数の高い対数尤度比テーブルを優先的に選択する、請求項4または7記載のメモリシステム。
- 前記復号器での復号成功回数をカウントし、カウント結果を前記情報として前記メモリに保持させるカウンタを更に備える、請求項4または7記載のメモリシステム。
- 前記メモリは、前記半導体記憶装置の備えるメモリセルアレイ内の第1領域からデータを読み出す際における前記第1対数尤度比テーブルと前記第2対数尤度比テーブルの前記復号成功回数に関する第1履歴テーブルと、
前記メモリセルアレイ内の前記第1領域と異なる第2領域からデータを読み出す際における前記第1対数尤度比テーブルと前記第2対数尤度比テーブルの前記復号成功回数に関する第2履歴テーブルと
を更に保持し、前記セレクタは、前記第1領域からデータが読み出される際には前記第1履歴テーブルに従って対数尤度比テーブルを選択し、前記第2領域からデータが読み出される際には前記第2履歴テーブルに従って対数尤度比テーブルを選択する、請求項7記載のメモリシステム。 - 前記半導体記憶装置はNAND型フラッシュメモリであり、前記第1領域及び第2領域は、ブロック単位で指定される、請求項6または10記載のメモリシステム。
- 前記半導体記憶装置はNAND型フラッシュメモリであり、前記第1領域及び第2領域は、ワード線単位で指定される、請求項6または10記載のメモリシステム。
- 前記ワード線は、半導体基板の上方に積層され、前記第1領域に属するワード線は、前記第2領域に属するワード線よりも下方に位置する、請求項12記載のメモリシステム。
- 前記メモリは、前記半導体記憶装置に対する書き込み回数と消去回数の少なくともいずれかが第1の条件である際における前記第1対数尤度比テーブルと前記第2対数尤度比テーブルの前記復号成功回数に関する第1履歴テーブルと、
前記書き込み回数と消去回数の少なくともいずれかが前記第1の条件と異なる第2の条件である際における前記第1対数尤度比テーブルと前記第2対数尤度比テーブルの前記復号成功回数に関する第2履歴テーブルと
を更に保持し、前記セレクタは、前記第1の条件でデータが読み出される際には前記第1履歴テーブルに従って対数尤度比テーブルを選択し、前記第2の条件でデータが読み出される際には前記第2履歴テーブルに従って対数尤度比テーブルを選択する、請求項7記載のメモリシステム。 - 前記メモリは、前記半導体記憶装置に対する読み出し回数が第1の条件である際における前記第1対数尤度比テーブルと前記第2対数尤度比テーブルの前記復号成功回数に関する第1履歴テーブルと、
前記読み出し回数が前記第1の条件と異なる第2の条件である際における前記第1対数尤度比テーブルと前記第2対数尤度比テーブルの前記復号成功回数に関する第2履歴テーブルと
を更に保持し、前記セレクタは、前記第1の条件でデータが読み出される際には前記第1履歴テーブルに従って対数尤度比テーブルを選択し、前記第2の条件でデータが読み出される際には前記第2履歴テーブルに従って対数尤度比テーブルを選択する、請求項7記載のメモリシステム。 - 前記メモリは、前記半導体記憶装置に対する書き込み回数と消去回数の少なくともいずれか、及び読み出し回数が第1の条件である際における前記第1対数尤度比テーブルと前記第2対数尤度比テーブルの前記復号成功回数に関する第1履歴テーブルと、
前記書き込み回数と消去回数の少なくともいずれか、及び読み出し回数が前記第1の条件と異なる第2の条件である際における前記第1対数尤度比テーブルと前記第2対数尤度比テーブルの前記復号成功回数に関する第2履歴テーブルと
を更に保持し、前記セレクタは、前記第1の条件でデータが読み出される際には前記第1履歴テーブルに従って対数尤度比テーブルを選択し、前記第2の条件でデータが読み出される際には前記第2履歴テーブルに従って対数尤度比テーブルを選択する、請求項7記載のメモリシステム。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2016178783A JP2018045387A (ja) | 2016-09-13 | 2016-09-13 | メモリシステム |
US15/446,938 US20180076832A1 (en) | 2016-09-13 | 2017-03-01 | Memory system that carries out soft bit decoding |
US16/352,540 US10763898B2 (en) | 2016-09-13 | 2019-03-13 | Memory system that carries out soft bit decoding |
US16/940,317 US11336307B2 (en) | 2016-09-13 | 2020-07-27 | Memory system that carries out soft bit decoding |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2016178783A JP2018045387A (ja) | 2016-09-13 | 2016-09-13 | メモリシステム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2018045387A true JP2018045387A (ja) | 2018-03-22 |
Family
ID=61560406
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2016178783A Pending JP2018045387A (ja) | 2016-09-13 | 2016-09-13 | メモリシステム |
Country Status (2)
Country | Link |
---|---|
US (3) | US20180076832A1 (ja) |
JP (1) | JP2018045387A (ja) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
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 |
CN116744168A (zh) * | 2022-09-01 | 2023-09-12 | 荣耀终端有限公司 | 日志存储方法及相关装置 |
US11908526B2 (en) | 2021-08-05 | 2024-02-20 | Kioxia Corporation | Memory system and method of controlling semiconductor memory device |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11182243B2 (en) | 2018-02-15 | 2021-11-23 | SK Hynix Inc. | Memory system with adaptive information propagation and method of operating such memory |
CN110444242B (zh) * | 2018-05-03 | 2023-09-08 | 爱思开海力士有限公司 | 有基于深度学习的干扰校正能力的存储器系统及操作方法 |
US10521290B2 (en) * | 2018-06-05 | 2019-12-31 | Memterex Srl | Solid state drive with improved LLR tables |
KR20200018156A (ko) * | 2018-08-10 | 2020-02-19 | 에스케이하이닉스 주식회사 | 메모리장치에 대한 에러정정코드 기능을 갖는 메모리 시스템 및 그 운영방법 |
US11062758B2 (en) * | 2018-09-19 | 2021-07-13 | SK Hynix Inc. | Memory system to process multiple word line failures with limited storage and method of operating such memory system |
CN111984458B (zh) * | 2019-05-23 | 2023-07-07 | 建兴储存科技(广州)有限公司 | 使用预测方程式的固态储存装置 |
US20230120804A1 (en) * | 2020-03-23 | 2023-04-20 | Institute of Microelectronics, Chinese Academy of Sciences | Method for performing ldpc soft decoding, memory, and electronic device |
US11159182B1 (en) * | 2020-04-06 | 2021-10-26 | Innogrit Technologies Co., Ltd. | Systems and methods for decoding error correcting codes with historical decoding information |
US11159176B1 (en) * | 2020-06-26 | 2021-10-26 | Western Digital Technologies, Inc. | Data-assisted LDPC decoding |
KR20220080589A (ko) * | 2020-12-07 | 2022-06-14 | 삼성전자주식회사 | Ecc 디코딩을 수행하는 ecc 엔진, 이의 동작 방법 및 ecc 엔진을 포함하는 스토리지 장치 |
KR102345067B1 (ko) | 2021-08-25 | 2021-12-29 | 삼성전자주식회사 | 스토리지 장치 및 스토리지 컨트롤러의 구동 방법 |
Family Cites Families (27)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI228257B (en) * | 2004-05-06 | 2005-02-21 | Carry Computer Eng Co Ltd | Silicon storage media, controller, and access method thereof |
JP5142692B2 (ja) | 2007-12-11 | 2013-02-13 | 株式会社東芝 | 不揮発性半導体記憶装置 |
JP2009238874A (ja) | 2008-03-26 | 2009-10-15 | Toshiba Corp | 半導体メモリ及びその製造方法 |
JP5283960B2 (ja) | 2008-04-23 | 2013-09-04 | 株式会社東芝 | 三次元積層不揮発性半導体メモリ |
JP2009266944A (ja) | 2008-04-23 | 2009-11-12 | Toshiba Corp | 三次元積層不揮発性半導体メモリ |
JP2010199235A (ja) | 2009-02-24 | 2010-09-09 | Toshiba Corp | 不揮発性半導体記憶装置 |
JP5197544B2 (ja) | 2009-10-05 | 2013-05-15 | 株式会社東芝 | メモリシステム |
TWI436370B (zh) * | 2010-09-17 | 2014-05-01 | Phison Electronics Corp | 記憶體儲存裝置、其記憶體控制器與產生對數似然比之方法 |
JP2012069205A (ja) | 2010-09-22 | 2012-04-05 | Toshiba Corp | 不揮発性半導体記憶装置 |
JP2012244305A (ja) | 2011-05-17 | 2012-12-10 | Toshiba Corp | メモリコントローラ、半導体メモリ装置、および復号方法 |
JP2012252740A (ja) | 2011-06-02 | 2012-12-20 | Toshiba Corp | 不揮発性半導体記憶装置 |
US9337865B2 (en) | 2012-05-04 | 2016-05-10 | Seagate Technology Llc | Log-likelihood ratio (LLR) dampening in low-density parity-check (LDPC) decoders |
US8856611B2 (en) * | 2012-08-04 | 2014-10-07 | Lsi Corporation | Soft-decision compensation for flash channel variation |
US8913438B2 (en) * | 2013-02-20 | 2014-12-16 | Seagate Technology Llc | Adaptive architecture in a channel detector for NAND flash channels |
US9397701B1 (en) * | 2013-03-11 | 2016-07-19 | Microsemi Storage Solutions (Us), Inc. | System and method for lifetime specific LDPC decoding |
US8984376B1 (en) * | 2013-03-14 | 2015-03-17 | Pmc-Sierra Us, Inc. | System and method for avoiding error mechanisms in layered iterative decoding |
TWI619353B (zh) | 2013-07-03 | 2018-03-21 | Lsi公司 | 在低密度奇偶性校驗(ldpc)解碼器中之對數相似比(llr)抑制 |
US9176815B2 (en) * | 2013-11-28 | 2015-11-03 | Seagate Technology Llc | Flash channel with selective decoder likelihood dampening |
US9236099B2 (en) * | 2013-12-10 | 2016-01-12 | Seagate Technology Llc | Multiple retry reads in a read channel of a memory |
US9633740B1 (en) * | 2016-02-11 | 2017-04-25 | Seagate Technology Llc | Read retry operations where likelihood value assignments change sign at different read voltages for each read retry |
US9798613B2 (en) * | 2013-12-27 | 2017-10-24 | Toshiba Memory Corporation | Controller of nonvolatile semiconductor memory |
JP2015133161A (ja) | 2014-01-14 | 2015-07-23 | 株式会社東芝 | 半導体記憶装置 |
US9916906B2 (en) * | 2014-02-27 | 2018-03-13 | Seagate Technology Llc | Periodically updating a log likelihood ratio (LLR) table in a flash memory controller |
US9431130B2 (en) * | 2014-03-04 | 2016-08-30 | Kabushiki Kaisha Toshiba | Memory controller, storage device, and memory control method |
KR102265220B1 (ko) * | 2015-03-09 | 2021-06-16 | 에스케이하이닉스 주식회사 | 컨트롤러, 반도체 메모리 시스템 및 그것의 동작 방법 |
US10372529B2 (en) * | 2015-04-20 | 2019-08-06 | Sandisk Technologies Llc | Iterative soft information correction and decoding |
US10395754B2 (en) * | 2016-03-21 | 2019-08-27 | Nandext Srl | Method for decoding bits in a solid state drive, and related solid state drive |
-
2016
- 2016-09-13 JP JP2016178783A patent/JP2018045387A/ja active Pending
-
2017
- 2017-03-01 US US15/446,938 patent/US20180076832A1/en not_active Abandoned
-
2019
- 2019-03-13 US US16/352,540 patent/US10763898B2/en active Active
-
2020
- 2020-07-27 US US16/940,317 patent/US11336307B2/en active Active
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
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 |
US11908526B2 (en) | 2021-08-05 | 2024-02-20 | Kioxia Corporation | Memory system and method of controlling semiconductor memory device |
CN116744168A (zh) * | 2022-09-01 | 2023-09-12 | 荣耀终端有限公司 | 日志存储方法及相关装置 |
CN116744168B (zh) * | 2022-09-01 | 2024-05-14 | 荣耀终端有限公司 | 日志存储方法及相关装置 |
Also Published As
Publication number | Publication date |
---|---|
US10763898B2 (en) | 2020-09-01 |
US11336307B2 (en) | 2022-05-17 |
US20180076832A1 (en) | 2018-03-15 |
US20190215019A1 (en) | 2019-07-11 |
US20200358459A1 (en) | 2020-11-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11336307B2 (en) | Memory system that carries out soft bit decoding | |
US10684914B2 (en) | Memory device and method of controlling ECC operation in the same | |
CN107093465B (zh) | 包括电压搜索单元的数据存储器装置 | |
US9588714B2 (en) | Method of operating memory controller and data storage device including memory controller | |
US20170300269A1 (en) | Memory system and operating method thereof | |
US9875803B2 (en) | Memory system and method of controlling nonvolatile memory | |
US9576665B2 (en) | Semiconductor memory device and memory system | |
US9514830B2 (en) | Non-volatile memory device, memory system including the same, and method of operating the same | |
US10706944B2 (en) | Memory controller for controlling memory device based on erase state information and method of operating the memory controller | |
JP2012203957A (ja) | メモリシステム | |
JP6131207B2 (ja) | 半導体記憶装置 | |
US20160371024A1 (en) | Memory system and operating method thereof | |
JP2012123880A (ja) | 半導体記憶装置 | |
KR20170065076A (ko) | 메모리 시스템 및 메모리 시스템의 동작 방법 | |
JP7471883B2 (ja) | メモリシステム | |
JP2019169211A (ja) | メモリシステム | |
TWI720985B (zh) | 記憶體系統及其操作方法 | |
CN105718378B (zh) | 存储系统及其操作方法 | |
JP7353889B2 (ja) | メモリシステムおよび方法 | |
KR20170076878A (ko) | 메모리 시스템 및 메모리 시스템의 동작 방법 | |
US11380402B2 (en) | Memory system and operating method thereof | |
CN106126437B (zh) | 存储系统 | |
US20160077913A1 (en) | Method of controlling nonvolatile memory | |
US11444637B2 (en) | Self-adaptive low-density parity check hard decoder | |
JP5710815B1 (ja) | 半導体記憶装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A711 | Notification of change in applicant |
Free format text: JAPANESE INTERMEDIATE CODE: A712 Effective date: 20170525 |
|
A711 | Notification of change in applicant |
Free format text: JAPANESE INTERMEDIATE CODE: A712 Effective date: 20180831 |