JP2018147231A - メモリコントローラ、メモリシステムおよびメモリシステムの制御方法 - Google Patents
メモリコントローラ、メモリシステムおよびメモリシステムの制御方法 Download PDFInfo
- Publication number
- JP2018147231A JP2018147231A JP2017041765A JP2017041765A JP2018147231A JP 2018147231 A JP2018147231 A JP 2018147231A JP 2017041765 A JP2017041765 A JP 2017041765A JP 2017041765 A JP2017041765 A JP 2017041765A JP 2018147231 A JP2018147231 A JP 2018147231A
- Authority
- JP
- Japan
- Prior art keywords
- soft
- bit information
- memory
- soft decision
- hard
- 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
- G06—COMPUTING OR CALCULATING; 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
- G06—COMPUTING OR CALCULATING; 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
- 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/1108—Hard decision decoding, e.g. bit flipping, modified or weighted bit flipping
-
- 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/29—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 combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes
- H03M13/2906—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 combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes using block codes
-
- 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/3707—Adaptive decoding and hybrid decoding, e.g. decoding methods or techniques providing more than one decoding algorithm for one code
- H03M13/3715—Adaptation to the number of estimated errors or to the channel state
-
- 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/3738—Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35 with judging correct decoding
-
- 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
-
- 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/04—Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS
- G11C16/0483—Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS comprising cells having several storage transistors connected in series
-
- 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
- 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
-
- 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/39—Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes
- H03M13/41—Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes using the Viterbi algorithm or Viterbi processors
- H03M13/4138—Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes using the Viterbi algorithm or Viterbi processors soft-output Viterbi algorithm based decoding, i.e. Viterbi decoding with weighted decisions
-
- 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
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)
- Read Only Memory (AREA)
- Error Detection And Correction (AREA)
- Detection And Correction Of Errors (AREA)
Abstract
【課題】OP率の低減を抑制しつつ訂正効率を向上する。【解決手段】メモリコントローラ10は、NANDメモリに書き込まれている符号語をハードビット情報、第1ソフトビット情報および第2ソフトビット情報のうちのいずれかとして読み出すメモリI/Fと、第1ソフトビット情報からHSB軟判定値の符号語を生成し、第2ソフトビット情報からFSB軟判定値の符号語を生成する符号語処理部と、ハードビット情報で構成された硬判定値の符号語に硬判定復号を実行する硬判定復号器と、HSB軟判定値の符号語に第1の軟判定復号を実行する第1の軟判定復号器とを有するNADコントローラと、FSB軟判定値の符号語に第2の軟判定復号を実行する第2の軟判定復号器とを備える。第1ソフトビット情報は、ハードビット情報のビット数よりも多いビット数の情報を含み、第2ソフトビット情報は、第1ソフトビット情報のビット数よりも多いビット数の情報を含む。【選択図】図1
Description
以下の実施形態は、一般的に、メモリコントローラ、メモリシステムおよびメモリシステムの制御方法に関する。
記憶装置では、一般に、記憶するデータを保護するために、誤り訂正符号化されたデータが記憶される。このため、記憶装置に記憶されたデータを読み出す際には、誤り訂正符号化されたデータに対する復号が行われる。
本発明の一つの実施形態は、Over Provisioning(以下、OPと略す)率(余裕率ともいう)の低減を抑制しつつ訂正効率を向上することが可能なメモリコントローラ、メモリシステムおよびメモリシステムの制御方法を提供することを目的とする。
本発明の一つの実施形態によれば、メモリコントローラは、不揮発性メモリに書き込まれている符号語を硬判定値、第1の軟判定値および第2の軟判定値のうちのいずれかとして読み出すメモリインタフェースと、前記硬判定値として読み出された符号語に硬判定復号を実行する第1の復号器と、前記第1の軟判定値として読み出された符号語に第1の軟判定復号を実行する第2の復号器と、前記第2の軟判定値として読み出された符号語に第2の軟判定復号を実行する第3の復号器と、を備え、前記第1の軟判定値は、前記硬判定値のビット数よりも多い第1ビット数の情報を含み、前記第2の軟判定値は、前記第1ビット数よりも多い第2ビット数の情報を含む。
以下に添付図面を参照して、実施形態に係るメモリコントローラ、メモリシステムおよびメモリシステムの制御方法を詳細に説明する。なお、以下の実施形態により本発明が限定されるものではない。
図1は、実施形態にかかるメモリシステム(半導体記憶装置)の概略構成例を示すブロック図である。なお、図1には、実施形態にかかるメモリシステム1としてNAND型フラッシュメモリ(以下、NANDメモリともいう)を用いたフラッシュSSD(Solid State Drive)が例示されているが、この構成に限定されず、メモリコントローラと不揮発性メモリとが1つのパッケージとして構成されるメモリカード等、種々のメモリシステムに対しても以下の実施形態を適用することが可能である。
図1に示すように、メモリシステム1は、SAS(Serial Attached SCSI)やSATA(Serial ATA)やPCIe(PCI Express)などの所定の通信インタフェースを介してホスト2に接続することができる。ホスト2は、たとえばパーソナルコンピュータやモバイル端末などの情報処理装置などであってよい。そのような場合、メモリシステム1は、ホスト2の外部記憶装置として動作し得る。
メモリシステム1は、メモリコントローラ10と、DRAM(Dynamic Random Access Memory)19と、n個(nは1以上の整数)のNANDメモリ201〜20nとを備える。nは、たとえば18などの数であってよい。その場合、図1に示す例では、メモリシステム1は、#1〜#18の合計18個のNANDメモリ20を備えている。なお、以下の説明において、個々のNANDメモリ201〜20nを区別しない場合、その符号を20とする。また、DRAM19には、SDRAM(Synchronous Dynamic Random Access Memory)などの同期式のDRAMや非同期式のDRAMなど、種々のメモリを用いることが可能である。
各NANDメモリ20は、データを不揮発に記憶する不揮発性メモリである。ただし、これに限定されず、3次元構造フラッシュメモリ、ReRAM(Resistance Random Access Memory)、FeRAM(Ferroelectric Random Access Memory)等、種々の記憶装置を用いることが可能である。また、NANDメモリ20のような半導体メモリに限られず、半導体メモリ以外の種々の記憶媒体を用いることも可能である。
NANDメモリ20では、一般に、ページと呼ばれるデータ単位で、書込みおよび読み出しが行われ、ブロックと呼ばれるデータ単位で消去が行われる。本実施形態では、同一のワード線に接続される複数のメモリセルをメモリセルグループと呼ぶ。メモリセルが2値データを記憶するSLC(Single Level Cell)である場合は、1つのメモリセルグループが1ページに対応する。メモリセルが4値以上の多値データを記憶するMLC(Multiple Level Cell)やTLC(Triple Level Cell)などである場合は、1つのメモリセルグループが複数ページに対応する。また、各メモリセルはワード線に接続するとともにビット線にも接続される。したがって、個々のメモリセルは、ワード線を識別するアドレスとビット線を識別するアドレスとで識別することが可能である。
メモリコントローラ10は、たとえばSoC(System on Chip)などの設計手法で構築された半導体装置であってもよい。このメモリコントローラ10には、ホスト2からアクセス要求(read要求、write要求等)が入力される。ホスト2からのアクセス要求には、論理アドレス空間上のデータの位置を指定する論理アドレスが含まれ得る。メモリコントローラ10は、ホスト2からのwrite要求に従ってNANDメモリ20へのデータの書込みを制御する。また、メモリコントローラ10は、ホスト2からのRead要求に従ってNANDメモリ20からのデータの読出しを制御する。
メモリコントローラ10は、NANDメモリ20の数と同数もしくはそれ以下の数のチャネルを備える。たとえば図1に示す例では、NANDメモリ20の数と同数、すなわちn個のチャネルが設けられている。各チャネルには、1つまたは複数のNANDメモリ20が接続される。それぞれのチャネルは、制御信号線、I/O信号線、CE(チップイネーブル)信号線、RY/BY信号線を含んで構成される。I/O信号線は、データ、アドレスおよびコマンドを送受信するための信号線である。制御信号線は、WE(ライトイネーブル)信号線、RE(リードイネーブル)信号線、CLE(コマンドラッチイネーブル)信号線、ALE(アドレスラッチイネーブル)信号線、WP(ライトプロテクト)信号線等を総称するものである。メモリコントローラ10は、各チャネルの信号線群が互いに独立していることを利用して、1つのチャネルに接続された1つ以上のNANDメモリ20を他のチャネルに接続されたNANDメモリ20から独立して制御することができる。
メモリコントローラ10は、CPU(制御部)11と、DDRコントローラ12と、チャネルの数と同数のNANDコントローラ131〜13nと、ホストI/F(ホストインタフェース)15と、SRAM(Static Random Access Memory)16と、第2の軟判定復号器17とを備える。CPU11、DDRコントローラ12、NANDコントローラ131〜13n、ホストI/F15、SRAM16および第2の軟判定復号器17は、内部バス18を介して相互に接続されている。n個のNANDコントローラ131〜13nは、夫々異なるチャネルの一部を構成する。以下の説明において、個々のNANDコントローラ131〜13nを区別しない場合、その符号を13とする。
ホストI/F15は、ホスト2との間のインタフェース規格に従った処理を実施し、ホスト2から受信した命令、ユーザデータなどを内部バス18に出力する。また、ホストI/F15は、NANDメモリ20から読み出された符号語(受信語ともいう)を復号することで復元されたユーザデータやCPU11からの応答などをホスト2へ送信する。
SRAM16は、メモリコントローラ10がホスト2から受信したユーザデータを一時的に格納する。また、SRAM16は、NANDメモリ20から読み出された受信語や受信語に対する復号により復元されたユーザデータを一時的に格納する。このように、SRAM16は、書込み/読出しの際にユーザデータや受信語等を一時的に格納するデータバッファとしての役割を持つ。なお、ユーザデータや受信語等の一時的な格納場所には、SRAM16の代わりにDRAM19が使用されてもよい。その場合、DRAM19に対するデータ等の出し入れは、DDRコントローラ12によって制御される。
DRAM19は、アドレス変換テーブルや、起動時等にNANDメモリ20の特定の領域から読み出されて展開されるマスタテーブル(スナップショット)などの各種管理テーブルや、各種管理テーブルの変更差分であるログ情報などを記憶するワーキングメモリとして使用することができるメモリである。また、DRAM19は、ホスト2とNANDメモリ20との間でデータ転送をする際のキャッシュメモリとしても用いられることが可能である。
CPU11は、メモリシステム1の各構成要素を統括的に制御する。CPU11は、ホスト2からホストI/F15経由で命令を受け付けると、その命令に従った制御を実行する。たとえばCPU11は、ホスト2からwrite要求を受信した場合、このwrite要求により指定された論理アドレスを不図示のアドレス変換テーブルを用いて物理アドレスに変換し、この物理アドレスに対応するNANDコントローラ13に対して、ユーザデータの符号化およびこの符号化により得られた符号語のNANDメモリ20への書込みを指示する。また、CPU11は、ホスト2からread要求を受信した場合、このread要求により指定された論理アドレスを不図示のアドレス変換テーブルを用いて物理アドレスに変換し、この物理アドレスに対応するNANDコントローラ13に対して、NANDメモリ20からの符号語の読出しおよび読み出した符号語(受信語)の復号を指示する。
なお、論理アドレスと物理アドレスとの対応関係は、CPU11によって管理され、アドレス変換テーブルに登録される。すなわち、CPU11は、アドレス変換テーブルを用いてユーザデータ(実際には符号語)の書込み先を管理する。たとえばCPU11は、ホスト2からwrite要求を受信した場合、このwrite要求に対応する書込み対象のユーザデータをSRAM16に一時的に蓄積するとともに、SRAM16に蓄積されたユーザデータに対して、NANDメモリ20上の格納領域(物理アドレス空間上のデータの格納位置)を決定し、決定した格納領域とwrite要求に含まれている論理アドレスとの対応をアドレス変換テーブルに登録する。アドレス変換テーブルは、たとえばSRAM16またはDRAM19に保持される。
各NANDコントローラ13は、書込み/読出し対象のデータに対する符号化/復号を実行するECC部14を備える。ECC部14は、SRAM16に一時的に蓄積された書込み対象のユーザデータを符号化して符号語を生成する。また、ECC部14は、NANDメモリ20から読み出された受信語に対し、必要に応じてオンザフライで復号を実行してユーザデータを復元する。なお、ECC部14により符号化/復号される対象データには、ユーザデータ以外にも、メモリコントローラ10内部で用いる制御データ等が含まれ得る。また、本説明における“オンザフライ”とは、たとえばメモリI/F132(図2を参照)によって読み出された受信語に対し、SRAM16やDRAM19などのNANDコントローラ13の外部に設けられた記憶領域へ一旦蓄積することなく、直接復号を実行することを意味している。
図2に、各NANDコントローラ13のより詳細な構成例を示す。図2に示すように、NANDコントローラ13は、ECC部14に加え、アクセスコントローラ131と、メモリインタフェース(メモリI/F)132とを備える。
アクセスコントローラ131は、NANDコントローラ13の外部からのNANDメモリ20へのアクセスを制御する。また、アクセスコントローラ131は、NANDメモリ20から読み出された受信語の伝達経路をECC部14に備えられたセレクタ144に選択させるための選択信号を出力する。
メモリI/F132は、NANDメモリ20に対する書込み/読出しを実行する。本実施形態において、メモリI/F132が実行する読出し動作としては、NANDメモリ20の各メモリセルから2値データ(以下、ハードビット情報という)を読み出す硬判定読出し(HB(Hard-Bit)リードともいう)と、NANDメモリ20の各メモリセルから第1のページ数(2ページ以上)分の2値データ(以下、ソフトビット情報という)を読み出す第1の軟判定読出し(HSB(Half-Soft-Bit)リードともいう)と、NANDメモリ20の各メモリセルから第1のページ数よりも大きい第2のページ数分の2値データ(ソフトビット情報)を読み出す第2の軟判定読出し(FSB(Full-Soft-Bit)リードともいう)とが例示される。メモリI/F132は、たとえばCPU11またはアクセスコントローラ131からの指示に従い、HBリード、HSBリード、およびFSBリードのうちのいずれかの読出し動作を実行し、これにより読み出されたハードビット情報またはソフトビット情報をECC部14へ入力する。
ここで、ハードビット情報は、たとえば1ページ分の情報であり、いわゆる硬判定値と同じ値であってよい。なお、ページとは、たとえばTLCにおける、LOWERページ、MIDDLEページ、UPPERページなどのことを指している。また、ソフトビット情報とは、後述する軟判定値(対数尤度比(Log Likelihood Ratio:LLR)に相当)を生成するための情報である。ソフトビット情報を用いた軟判定値(LLR)の生成については、後述において図面を参照して説明する。
ECC部14は、符号化器141と、硬判定復号器142と、第1の軟判定復号器143と、セレクタ144と、符号語処理部145とを含む。符号化器141は、LDPC(Low-Density Parity-Check)符号を用いた符号化方式を採用した符号化器である。LDPC符号化方式が採用された符号化器141を用いることで、生成される符号語の符号長を長くすることなく、誤り訂正能力を高めることが可能となる。その結果、OP(Over Provisioning)率を低下させることなく、BER(Bit Error Rate)が低減された信頼性の高いメモリシステムを構築することが可能となる。
符号化器141は、たとえばCPU11からの指示に基づき、SRAM16上のユーザデータを符号化して符号語を生成する。生成された符号語は、メモリI/F132によって、NANDメモリ20における指定された物理アドレスに書き込まれる。なお、物理アドレスの指定は、たとえばCPU11から書込み指示を受けたアクセスコントローラ131によってメモリI/F132に入力される。
符号語処理部145は、たとえばビタビ・アルゴリズムを用いた復号を実行するSOVA(Soft Output Viterbi Algorithm)復号器である。この符号語処理部145は、NANDメモリ20からメモリI/F132によって読み出されたソフトビット情報から、読み出し対象の符号語を構成する各シンボルの軟判定値(LLR)を生成し、これにより生成された軟判定値(LLR)の受信語をセレクタ144へ出力する。軟判定値(LLR)の生成には、後述するLLRテーブル等を用いることが可能である。なお、符号処理部145は、軟判定値(LLR)を生成する必要のないハードビット情報については、これをそのまま硬判定値の受信語としてセレクタ144へ出力する。
セレクタ144は、たとえばアクセスコントローラ131からの選択信号にしたがって、符号語処理部145から出力された硬判定値または軟判定値(LLR)の受信語の伝達経路(出力先)を、硬判定復号器142、第1の軟判定復号器143およびアクセスコントローラ131の中から選択する。
硬判定復号器142は、硬判定値の受信語に対して硬判定復号を実行する第1の復号器である。硬判定復号器142は、NANDメモリ20に対する硬判定読出し(HBリード)で取得された硬判定値の受信語がセレクタ144を介して入力されると、この入力された受信語に対してオンザフライで硬判定復号を実行する。
第1の軟判定復号器143は、たとえば第1のページ数分のソフトビット情報より生成された軟判定値(LLR)の受信語(以下、HSB軟判定値の受信語ともいう)に対して軟判定復号(第1の軟判定復号という)を実行する第2の復号器である。第1の軟判定復号器143は、NANDメモリ20に対する第1の軟判定読出し(HSBリード)で取得されたHSB軟判定値の受信語がセレクタ144を介して入力されると、この入力された受信語に対してオンザフライで第1の軟判定復号を実行する。
一方、セレクタ144によって硬判定復号器142および第1の軟判定復号器143を介さずに直接アクセスコントローラ131に入力された受信語は、たとえば図1に示すSRAM16に蓄積される。SRAM16に蓄積された受信語は、第2の軟判定復号器17(図1参照)によって復号される。第2の軟判定復号器17は、たとえば第2のページ数分のソフトビット情報より生成された軟判定値(LLR)の受信語(以下、FSB軟判定値の受信語ともいう)に対して軟判定復号(第2の軟判定復号という)を実行する第3の復号器である。第2の軟判定復号器17は、NANDメモリ20に対する第2の軟判定読出し(FSBリード)で取得されたFSB軟判定値の受信語がSRAM16に蓄積されると、たとえばCPU11からの指示に従い、SRAM16に蓄積されている受信語に対して第2の軟判定復号を実行する。
なお、硬判定復号とは、硬判定値を入力として復号を実行し、その結果として硬判定値を出力する復号処理である。一方、軟判定復号(第1の軟判定復号および第2の軟判定復号)とは、軟判定値(LLR)を入力として復号を実行し、その結果として軟判定値(LLR)を出力する復号処理である。通常、軟判定復号(第1の軟判定復号および第2の軟判定復号)は、硬判定復号より誤り訂正能力は高いが処理時間が長いという特徴を持つ。また、本実施形態においては、第2の軟判定復号は、第1の軟判定復号よりさらに誤り訂正能力は高いが処理時間がより長いという特徴を持つ。そこで本実施形態では、まず、NANDメモリ20から符号語を硬判定値として読み出して硬判定復号し、硬判定復号により復号できなかった符号語をHSB軟判定値として読み出す。そして、HSB軟判定値として読み出された符号語を第1の軟判定復号し、第1の軟判定復号により復号できなかった場合には今度はFSB軟判定値として符号語を読み出す。そして、FSB軟判定値として読み出された符号語を第2の軟判定復号するように構成される。
このように、復号の成功/失敗に応じて符号語(受信語)の情報量を段階的に増加させて誤り訂正能力が段階的に増加する復号を順次実行する構成とすることで、たとえばリードディスターブ(RD)やデータリテンション(DR)などに起因してBERが悪化した場合でも、状況等に応じて段階的に誤り訂正能力を増加させることが可能となる。その結果、効率的かつ効果的にビットエラーを訂正することが可能となる。ただし、このような構成に限られず、硬判定復号を省略して第1の軟判定復号または第2の軟判定復号から実行される構成など、種々変形することが可能である。
硬判定復号、第1の軟判定復号および第2の軟判定復号それぞれの復号手法としては、例えば限界距離復号等を適用することができる。ただし、限界距離復号に限定されず、種々の復号手法が適用されてよい。
ここで、本実施形態にかかるHBリード、HSBリードおよびFSBリードによる情報の読出しからソフトビット情報を用いた軟判定値の生成までの流れについて、図3〜図5を用いて詳細に説明する。図3は、本実施形態におけるメモリセルに対する読出し動作で使用する読出し電圧(以下、リードレベルともいう)の例を示す模式図である。図4は、本実施形態にかかる第1の軟判定復号で使用されるLLRテーブルの一例を示す図である。図5は、本実施形態にかかる第2の軟判定復号で使用されるLLRテーブルの一例を示す図である。なお、図3において、横軸はメモリセルに書き込まれたデータのしきい値電圧を示し、縦軸は出現頻度を表す。また、図3では、1つのメモリセルが1ビットを記憶するシングルレベルセル(SLC)が例示されており、左側のEr(Erase)分布がデータ値‘1’に対応するしきい値電圧の出現頻度分布(しきい値分布ともいう)を示し、右側のA分布がデータ値‘0’に対応するしきい値分布を示している。さらに、本説明では、HBリードで使用するリードレベルをHBリードレベルまたは基準リードレベルといい、HSBリードで使用する複数のリードレベルをHSBリードレベルといい、FSBリードで使用する複数のリードレベルをFSBリードレベルという。
一般的に、NANDメモリでは、データの書込み時に、データ値に応じて、メモリセルにおけるフローティングゲートの電子数(電荷量)が複数のしきい値分布のいずれかに対応するように電子が注入される。メモリセルに対する読出し動作では、該メモリセルの電荷量に応じた電圧値以上の読出し電圧を印加すると電流が流れ、該電圧値未満の読出し電圧を印加すると電流が流れない。電流が流れると流れないとの境目となる電圧は、メモリセルそれぞれの電荷量に応じてメモリセル毎に定まる。このメモリセルの電荷量に応じて定まる境界の電圧を、本説明では“しきい値電圧”と称している。そこで、メモリセルに対する書込み動作では、上述したように、各メモリセルのしきい値電圧が2つのしきい値分布のうちの一方の範囲内に含まれるように、各メモリセルに電荷が注入される。一方、メモリセルからの読出し動作では、2つのしきい値分布の境界となる電圧レベル付近の電圧(リードレベル)がメモリセルに印加され、それにより電流が流れたか否かに基づいて、このメモリセルに保持されている値(ハードビット情報またはソフトビット情報)が判定される。
本実施形態にかかるHBリードは、メモリセルに1つのリードレベル(HBリードレベル)を印加して、メモリセルに記憶されているデータが‘1’であるか‘0’であるかを判定し、判定した結果を出力する読出し動作である。したがって、NANDメモリ20に対するHBリードで読み出された受信語における各シンボル(ビットに相当)は、‘0’か‘1’のいずれかの値を取る1ビットのハードビット情報を持つこととなる。
一般的には、読み出されたデータのビットエラーレート(BER)を低減するために、図3に示すように、SLCに対するHBリードレベルは、Er分布のピークに対応するしきい値電圧とA分布のピークに対応するしきい値電圧との略中間の電圧レベル(これを基準リードレベルVr4とする)に設定される。なお、HBリードでは、基準リードレベルVr4から電圧値がシフトされたリードレベルが使用される場合もあるが、本実施形態はこれを除外するものではない。また、このシフトされたHBリードレベルを用いた読出しは、シフトリードと称されることもある。
一方、本実施形態に係るHSBリードおよびFSBリードなどの軟判定読出し(以下、SBリードともいう)は、各メモリセルに保持されている値を複数ページのソフトビット情報として読み出す読み出し動作であり、読み出したソフトビット情報から受信語における各シンボル(ビットに相当)の軟判定値(LLR)が生成される。
ここで対数尤度比(Log Likelihood Ratio:LLR)とは、各シンボル(ビット)の値が‘0’である確率と‘1’である確率とを対数比で表現した情報である。より具体的には、LLRとは、NANDメモリ20のしきい値電圧の値が範囲aに含まれる条件下でメモリセルへの書き込みビットxが論理‘0’である条件付確率P(x=0|a)と、しきい値電圧の値が範囲aに含まれる条件下でメモリセルへの書き込みビットxが論理‘1’である条件付確率P(x=1|a)との比の対数をとったものと定義される。これを式で表すと、LLRは、ln(P(x=0|a)/P(x=1|a))と表される。なお、lnは自然対数である。
このLLRは、ビットの値が‘0’である確率が高ければ高いほど大きな値をとり、‘1’である確率が高ければ高いほど小さな値をとる。ビットの値が‘0’である確率と‘1’である確率とが等しい場合には、LLRはゼロとなる。
本実施形態において、SBリードで読み出された複数ページのソフトビット情報は、各シンボルの値がLLR形式で表現された軟判定値の受信語に変換される。したがって、SBリードにより取得される受信語は、書込み/読出し対象の符号語を構成する複数のシンボルそれぞれに対応する複数のLLR(通信路値ともいう)の列で構成される。なお、符号語(受信語)を構成するシンボルは、基本的には、NANDメモリ20におけるメモリセルと一対一で対応している。
そこで、本実施形態において、第1のページ数分のソフトビット情報を読み出す際に使用するHSBリードレベルは、HBリードで用いる基準リードレベルVr4に加え、基準リードレベルVr4の両側それぞれに1以上ずつ設定されたリードレベルを含む。たとえば図3に示す例では、基準リードレベルVr4と、基準リードレベルVr4の両側それぞれに所定間隔ΔR隔てて1つずつ設定されたリードレベルVr3およびVr5とを含む合計3つのリードレベルVr3〜Vr5が、HSBリードレベルとして使用される。その場合、HSBリードで読み出された受信語を構成する各シンボルは、基準リードレベルVr4(HBリードレベル)を使用して読み出された1ビットの情報(ハードビット)に加えて、2つのHSBリードレベルVr3およびVr5それぞれを使用して読み出された2ビットのソフトビット情報を持つこととなる。
また、第1のページ数よりも多い第2のページ数分のソフトビット情報を読み出す際に使用するFSBリードレベルは、HBリードで用いる基準リードレベルVr4に加え、基準リードレベルVr4の両側それぞれにHSBリードレベルのそれよりも多い数(たとえば3つずつ)のリードレベルが設定される。たとえば図3に示す例では、基準リードレベルVr4と、基準リードレベルVr4の両側それぞれに所定間隔ΔRずつ隔てて3つずつ設定されたリードレベルVr1〜Vr3およびVr5〜Vr7とを含む合計7つのリードレベルVr1〜Vr7が、FSBリードレベルとして使用される。その場合、FSBリードで読み出された受信語を構成する各シンボルは、HBリードレベルを使用して読み出された1ビットの情報(ハードビット)に加え、6つのFSBリードレベルVr1〜Vr3およびVr5〜Vr7それぞれを使用して読み出された6ビットのソフトビット情報を持つこととなる。
なお、HSBリードレベルおよびFSBリードレベルの数は、それぞれ図3に例示された3つおよび7つに限定されず、種々変形することが可能である。その場合、SBリードで読み出された受信語を構成する各シンボルは、HBリードレベル以外に設けられたリードレベルの数と同数のビットのソフトビット情報を持つこととなる。たとえば、HSBリードにより読み出されるソフトビット情報のビット数を2〜5ビットとし、FSBリードにより読み出されるソフトビット情報のビット数を6ビット以上とした場合、トレードオフの関係にある処理速度と訂正能力とを良好なバランスとすることが可能である。また、各リードレベルの間隔ΔRについても、1つの固定値に限定されず、基準リードレベルVr4からの順番に依存して変更するなど、種々変形することが可能である。
以上のようなリードレベルを用いて読み出された受信語における各シンボルのLLRは、該当するメモリセルのしきい値電圧が各リードレベル以上であるか否かの判定結果(ハードビット情報およびソフトビット情報の値)に基づき、図4または図5に示すLLRテーブルを用いて求めることができる。
たとえば図4に示すように、HSBリードの結果、メモリセルのしきい値電圧がVr3未満と判定された場合、このメモリセルに対応するシンボルのLLRは‘−9’と特定される。また、メモリセルのしきい値電圧がVr3以上でありVr4未満であると判定された場合、このメモリセルに対応するシンボルのLLRは‘−3’と特定される。同様に、メモリセルのしきい値電圧がVr4以上でありVr5未満であると判定された場合、このメモリセルに対応するシンボルのLLRは‘3’と特定され、メモリセルのしきい値電圧がVr5以上と判定された場合、このメモリセルに対応するシンボルのLLRは‘9’と特定される。FSBリードの場合も同様に、FSBリードの結果として判定されたメモリセルのしきい値電圧に基づいて、このメモリセルに対応するシンボルのLLRが図5に示すLLRテーブルから特定される。
なお、図4および図5は単なる例であって、LLRテーブルの構成を限定するものではない。また、LLRテーブルの代わりに所定の算出式を用いてシンボルのLLRを求めることも可能である。
メモリセルごとのしきい値電圧が各リードレベル以上であるか否かの判定結果(ハードビット情報およびソフトビット情報の値)に基づいてLLRを求める動作は、たとえば図2に示すECC部14内の符号語処理部145によって実行される。そこで符号語制御部145は、たとえばHSBリードである場合、メモリセルのしきい値電圧がVr3未満、Vr3以上Vr4未満、Vr4以上Vr5未満、Vr5以上の4つの範囲のうちどの範囲に属しているかを判定結果(ハードビット情報およびソフトビット情報の値)に基づいて特定し、特定した範囲に対応するLLRをたとえば図4に例示されたLLRテーブルから取得し、取得したLLRをセレクタ144へ出力する。一方、FSBリードである場合、符号語処理部145は、メモリセルのしきい値電圧がVr1未満、Vr1以上Vr2未満、Vr2以上Vr3未満、Vr3以上Vr4未満、Vr4以上Vr5未満、Vr5以上Vr6未満、Vr6以上Vr7未満、Vr7以上の8つの範囲のうちどの範囲に属しているかを判定結果(ハードビット情報およびソフトビット情報の値)に基づいて特定し、特定した範囲に対応するLLRをたとえば図5に例示されたLLRテーブルから取得し、取得したLLRをセレクタ144へ出力する。
ただし、メモリセルごとのしきい値電圧が各リードレベル以上であるか否かの判定結果(ハードビット情報およびソフトビット情報の値)に基づいてLLRを求める動作は、NANDコントローラ13内のECC部14に限られず、NANDメモリ20側で実行されてもよい。NANDメモリ20側で実行される場合、NANDメモリ20は、メモリセルごとにしきい値電圧がどの範囲に属しているかの情報(ハードビット情報およびソフトビット情報の値)から、上述した符号語処理部145と同様の動作により、各シンボルのLLRを取得すればよい。
なお、図3〜図5では、1ビット/セルを記憶するSLCの場合を例に挙げて説明したが、マルチレベルセル(MLC)の場合もSLCの場合と同様に、しきい値分布の境界ごとに複数のリードレベルを用いて読出しが実施される。そして、複数のリードレベルを用いた読出しの結果に基づいてLLRが特定される。
次に、再び図1、図2を参照して、本実施形態にかかるNANDメモリ20への書込み動作について説明する。CPU11は、ホスト2からホストI/F15経由でwrite要求を受け付けると、このwrite要求に含まれるユーザデータをSRAM16に一時的に格納するとともに、write要求により指定された論理アドレスを不図示のアドレス変換テーブルを用いて物理アドレスに変換し、この物理アドレスに対応するNANDコントローラ13に対して、SRAM16に格納されているユーザデータの符号化およびこの符号化により得られた符号語のNANDメモリ20への書込みを指示する。
NANDコントローラ13のアクセスコントローラ131は、CPU11からの指示に基づいて、SRAM16から対象のユーザデータを取得し、取得したユーザデータを符号化器141に入力する。符号化器141は、入力されたユーザデータに対してLDPC符号化を実行して符号語を生成し、生成した符号語をメモリI/F132に入力する。符号語が入力されたメモリI/F132は、CPU11またはアクセスコントローラ131から指示されたNANDメモリ20上の格納場所へ符号語を格納する書込み動作を実行する。
次に、本実施形態にかかるNANDメモリ20からの読出し動作について説明する。図6は、本実施形態にかかる読出し動作の一例を示すフローチャートである。図6に示すように、CPU11がホスト2からのread要求をホストI/F15経由で受け付けると、まず、read要求において指定されている論理アドレスからNANDメモリの物理アドレスが特定され、特定された物理アドレス(NANDメモリ20)に対応するNANDコントローラ13がHBリードを実行する(S101)。より詳細には、CPU11が、read要求により指定された論理アドレスを不図示のアドレス変換テーブルを用いて物理アドレスに変換し、この物理アドレスに対応するNANDコントローラ13に対して、NANDメモリ20に対するHBリードによる符号語の読出しを指示する。その際、CPU11は、NANDメモリ20から読み出された符号語(受信語)の硬判定復号もNANDコントローラ13へ指示する。指示されたNANDコントローラ13のアクセスコントローラ131は、NANDメモリ20における指定されたアドレスに対してHBリードを実行するようにメモリI/F132に指示する。これに対し、メモリI/F132は、NANDメモリ20における指定されたアドレスに対するHBリードを実行し、これにより読み出されたハードビット情報(硬判定値の符号語に相当)をECC部14に入力する。
次に、読み出されたハードビット情報が入力されたECC部14において、このハードビット情報(硬判定値の受信語)に対する硬判定復号がオンザフライで実行される(S102)。より詳細には、S101でCPU11からの指示が入力されたアクセスコントローラ131は、符号語処理部145に対し、LLRの生成が不要である指示を入力するとともに、ECC部14のセレクタ144に対し、入力された受信語を硬判定復号器142に入力する選択信号を入力する。したがって、メモリI/F132によってNANDメモリ20から読み出されたハードビット情報(硬判定値の受信語)は、符号語処理部145を通過してセレクタ144に入力され、つづいてセレクタ144を介して硬判定復号器142へ入力される。硬判定復号器142は、入力された受信語に対してオンザフライで硬判定復号を実行する。その後、硬判定復号の終了条件(打ち切り条件ともいう)が達成されて硬判定復号が終了すると、この硬判定復号により得られた復号語がアクセスコントローラ131を介してSRAM16に格納される(S103)とともに、CPU11へ硬判定復号の終了が通知される。なお、終了条件(打ち切り条件)とは、たとえば十分に尤もらしい復号語が得られたことや硬判定復号の繰返し回数が予め定めておいた所定回数に達したことなどとすることができる。
次に、CPU11において、SRAM16に格納されている復号語から、硬判定復号に成功したか否かが判定される(S104)。硬判定復号に成功していた場合(S104;YES)、本動作がS113へスキップする。一方、硬判定復号に失敗していた場合(S104;NO)、今度はHSBリードが実行される(S105)。具体的には、硬判定復号に失敗したと判断したCPU11が、read要求において指定されている論理アドレスから特定される物理アドレス(NANDメモリ20)に対応するNANDコントローラ13に対して、NANDメモリ20に対するHSBリードによる符号語の読出しを指示する。その際、CPU11は、NANDメモリ20から読み出された符号語(受信語)の第1の軟判定復号もNANDコントローラ13へ指示する。指示されたNANDコントローラ13のアクセスコントローラ131は、NANDメモリ20における指定されたアドレスに対してHSBリードを実行するようにメモリI/F132に指示する。これに対し、メモリI/F132は、NANDメモリ20における指定されたアドレスに対するHSBリードを実行し、これにより読み出されたソフトビット情報をECC部14に入力する。なお、HSBリードの読出し先となる物理アドレスの指定は、CPU11からNANDコントローラ13へ再度通知されてもよいし、HBリードの際にNANDコントローラ13側で保持しておいた物理アドレスが使用されてもよい。
次に、読み出されたソフトビット情報が入力されたECC部14において、HSB軟判定値の生成と生成したHSB軟判定値の受信語に対する第1の軟判定復号がオンザフライで実行される(S106)。より詳細には、アクセスコントローラ131は、S105においてメモリI/F132へHSBリードの実行を指示する際に、符号語処理部145に対し、たとえば図4に例示するLLRテーブルを用いてLLRを生成する指示を入力するとともに、ECC部14のセレクタ144に対して、入力された受信語を第1の軟判定復号器143に入力する選択信号を入力する。したがって、メモリI/F132によってNANDメモリ20から読み出されたソフトビット情報が入力された符号語処理部145は、入力されたソフトビット情報からたとえば図4に例示されたLLRテーブルを用いてLLRを生成することでHSB軟判定値の受信語を生成する。生成されたHSB軟判定値の受信語は、セレクタ144を介して第1の軟判定復号器143へ入力される。第1の軟判定復号器143は、入力された受信語に対してオンザフライで第1の軟判定復号を実行する。その後、第1の軟判定復号の終了条件(打ち切り条件)が達成されて第1の軟判定復号が終了すると、この第1の軟判定復号により得られた復号語がアクセスコントローラ131を介してSRAM16に格納される(S107)とともに、CPU11へ第1の軟判定復号の終了が通知される。なお、S106における第1の軟判定復号の終了条件(打ち切り条件)も、S102における硬判定復号の終了条件(打ち切り条件)と同様に、たとえば十分に尤もらしい復号語が得られたことや第1の軟判定復号の繰返し回数が予め定めておいた所定回数に達したことなどとすることができる。
次に、CPU11において、SRAM16に格納されている復号語から、第1の軟判定復号に成功したか否かが判定される(S108)。第1の軟判定復号に成功していた場合(S108;YES)、本動作がS113へスキップする。一方、第1の軟判定復号に失敗していた場合(S108;NO)、今度はFSBリードが実行される(S109)。具体的には、第1の軟判定復号に失敗したと判断したCPU11が、read要求において指定されている論理アドレスから特定される物理アドレス(NANDメモリ20)に対応するNANDコントローラ13に対して、NANDメモリ20に対するFSBリードによる符号語の読出しを指示する。指示されたNANDコントローラ13のアクセスコントローラ131は、NANDメモリ20における指定されたアドレスに対してFSBリードを実行するようにメモリI/F132に指示する。これに対し、メモリI/F132は、NANDメモリ20における指定されたアドレスに対するFSBリードを実行し、これにより読み出されたソフトビット情報をECC部14に入力する。なお、FSBリードの読出し先となる物理アドレスの指定は、CPU11からNANDコントローラ13へ再度通知されてもよいし、HBリードまたはHSBリードの際にNANDコントローラ13側で保持しておいた物理アドレスが使用されてもよい。
S109では、アクセスコントローラ131は、符号語処理部145に対し、たとえば図5に例示するLLRテーブルを用いてLLRを生成する指示を入力するとともに、ECC部14のセレクタ144に対し、入力された受信語を直接アクセスコントローラ131へ入力する選択信号を入力する。したがって、S109で読み出されたソフトビット情報が入力された符号語処理部145は、入力されたソフトビット情報からたとえば図5に例示されたLLRテーブルを用いてLLRを生成することでFSB軟判定値の受信語を生成する。生成されたFSB軟判定値の受信語は、セレクタ144を介してアクセスコントローラ131へ入力される。アクセスコントローラ131は、入力された受信語を順次、SRAM16に蓄積する(S110)。
つづいて、SRAM16に蓄積されたFSB軟判定値の受信語に対する第2の軟判定復号の実行が、CPU11から第2の軟判定復号器17へ指示される。これに対し、第2の軟判定復号器17は、SRAM16に蓄積されているFSB軟判定値の受信語に対する第2の軟判定復号を実行する(S111)。
その後、第2の軟判定復号の終了条件(打ち切り条件)が達成されて第2の軟判定復号が終了すると、次にCPU11において、第2の軟判定復号に成功したか否かが判定される(S112)。なお、S111における第2の軟判定復号の終了条件(打ち切り条件)も、上述した終了条件(打ち切り条件)と同様に、たとえば十分に尤もらしい復号語が得られたことや第2の軟判定復号の繰返し回数が予め定めておいた所定回数に達したことなどとすることができる。第2の軟判定復号に成功していた場合(S112;YES)、本動作がS113へ進む。一方、本実施形態において最終的な復号である第2の軟判定復号に失敗したと判断された場合(S112;NO)、CPU11は、read要求を発行したホスト2へデータの読出しエラーを返す(S114)。その後、本動作は終了する。
S113では、CPU11による指示の下、SRAM16に格納されている復元されたユーザデータが、read要求を発行したホスト2へホストI/F15を介して出力される。その後、本動作は終了する。
以上で説明したように、本実施形態によれば、誤り訂正能力が段階的に異なる復号の成功/失敗に応じて符号語(受信語)の情報量を段階的に増加させる。具体的には、まず、硬判定値の受信語に対して硬判定復号を実行し、この硬判定復号に失敗した場合には硬判定値の受信語よりも情報量が多いHSB軟判定値の受信語を読み出して第1の軟判定復号を実行し、この第1の軟判定復号に失敗した場合にはHSB軟判定値の受信語よりもさらに情報量が多いFSB軟判定値の受信語を読み出して第2の軟判定復号を実行する。上述したように、硬判定復号、第1の軟判定復号、および第2の軟判定復号のなかでは、硬判定復号の誤り訂正能力が最も低く、第2の軟判定復号の誤り訂正能力が最も高い。このような構成を備えることで、たとえばリードディスターブ(RD)やデータリテンション(DR)などに起因してBERが悪化した場合でも、状況等に応じて段階的に誤り訂正能力を増加させることが可能となる。その結果、効率的かつ効果的にビットエラーを訂正することが可能となる。
また、本実施形態では、符号化方式として、生成される符号語の符号長を長くすることなく誤り訂正能力を高めることが可能なLDPC符号化方式が採用される。LDPC符号化方式は、たとえば同一の符号長では誤り訂正能力が固定であるBCH符号等のように、誤り訂正能力を増加させるために符号語の符号量(符号長)を増加させることを必要としない。そのため、上述した実施形態にかかるメモリシステム1の符号化方式としてLDPC符号化方式を採用することで、OP率を低下させることなく、BERが低減された信頼性の高いメモリシステムを構築することが可能となる。
さらに、本実施形態では、誤り訂正能力が段階的に異なる復号(硬判定復号、第1の軟判定復号および第2の軟判定復号)それぞれに対し、個別の復号器(硬判定復号器142、第1の軟判定復号器143および第2の軟判定復号器17)が設けられている。このような構成とすることで、回路規模と動作速度と誤り訂正能力とのバランスが最適化されたメモリシステム1を実現することが可能となる。たとえば処理量が比較的少なくかつ必要な回路規模が比較的小さい硬判定復号や第1の軟判定復号については、個々のチャネル上に復号器(硬判定復号器142/第1の軟判定復号器143)を設けてオンザフライで復号が実行される構成とすることで、回路規模に与える影響を抑えつつ迅速な復号処理が可能となる。また、処理量が比較的多くかつ必要な回路規模が比較的大きい第2の軟判定復号については、複数のチャネルで共用の復号器(第2の軟判定復号器17)とすることで、回路規模の増大を抑えつつ高い誤り訂正能力を実現することが可能となる。
なお、本実施形態では、硬判定復号器142と第1の軟判定復号器143とを各チャネルに個別に設け、第2の軟判定復号器17を全てのチャネルで共用とした場合を例示したが、この構成に限られるものではない。たとえば全チャネルの数以下の複数のチャネルで共用する1つの硬判定復号器142および/または1つの第1の軟判定復号器143を内部バス18に接続した構成とすることも可能である。
また、本実施形態では、誤り訂正能力が段階的に異なる復号(硬判定復号、第1の軟判定復号、および第2の軟判定復号)それぞれに対して個別の復号器(硬判定復号器142、第1の軟判定復号器143、および第2の軟判定復号器17)を設けた場合を例示したが、この構成に限定されるものではない。たとえば硬判定復号器142と第1の軟判定復号器143とを硬判定復号と第1の軟判定復号とで共用される1つの復号器(たとえば第1の軟判定復号器143)とすることも可能である。また、第1の軟判定復号器143と第2の軟判定復号器17とを第1の軟判定復号と第2の軟判定復号とで共用される1つの復号器(たとえば第2の軟判定復号器17)とすることも可能である。
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
1…メモリシステム、2…ホスト、10…メモリコントローラ、11…CPU、12…DDRコントローラ、13,131〜13n…NANDコントローラ、131…アクセスコントローラ、132…メモリI/F、14…ECC部、141…符号化器、142…硬判定復号器、143…第1の軟判定復号器、144…セレクタ、15…ホストI/F、16…SRAM、17…第2の軟判定復号器、18…内部バス、19…DRAM、20,201〜20n…NANDメモリ
Claims (20)
- 1以上の不揮発性メモリに接続されるメモリコントローラであって、
前記1以上の不揮発性メモリのいずれかに書き込まれている符号語をハードビット情報、第1ソフトビット情報および第2ソフトビット情報のうちのいずれかとして読み出すメモリインタフェースと、
前記第1ソフトビット情報から第1の軟判定値の符号語を生成し、前記第2ソフトビット情報から第2の軟判定値の符号語を生成する符号語処理部と、
前記ハードビット情報で構成された硬判定値の符号語に硬判定復号を実行する第1の復号器と、
前記第1の軟判定値の符号語に第1の軟判定復号を実行する第2の復号器と、
前記第2の軟判定値の符号語に第2の軟判定復号を実行する第3の復号器と、
を備え、
前記第1ソフトビット情報は、前記ハードビット情報のビット数よりも多い第1ビット数の情報を含み、
前記第2ソフトビット情報は、前記第1ビット数よりも多い第2ビット数の情報を含む
メモリコントローラ。 - 前記メモリインタフェースが前記1つ以上の不揮発性メモリのいずれかから前記ハードビット情報を読み出すこと、
前記第1の復号器が前記硬判定値の符号語に対して前記硬判定復号を実行すること、前記硬判定復号に失敗したと判断したことに応じて、前記メモリインタフェースが前記不揮発性メモリから前記第1ソフトビット情報を読み出すこと、
前記第2の復号器が前記第1の軟判定値の符号語に対して前記第1の軟判定復号を実行すること、前記第1の軟判定復号に失敗したと判断したことに応じて、前記メモリインタフェースが前記不揮発性メモリから前記第2ソフトビット情報を読み出すこと、および、
前記第3の復号器が前記第2の軟判定値の符号語に対して前記第2の軟判定復号を実行すること、
を指示する制御部をさらに備える請求項1に記載のメモリコントローラ。 - 前記第1の復号器は、前記ハードビット情報として読み出された前記硬判定値の符号語にオンザフライで前記硬判定復号を実行し、
前記第2の復号器は、前記第1ソフトビット情報から生成された前記第1の軟判定値の符号語に前記オンザフライで前記第1の軟判定復号を実行する
請求項1に記載のメモリコントローラ。 - それぞれ独立して前記1つ以上の不揮発性メモリのいずれかに接続され得る複数のチャネルをさらに備え、
前記第1の復号器および前記第2の復号器のうち少なくとも1つは、前記複数のチャネルそれぞれに個別に設けられている
請求項1に記載のメモリコントローラ。 - 前記第1の軟判定値の前記第1ビット数は、2〜5であり、
前記第2の軟判定値の前記第2ビット数は、6以上である
請求項1に記載のメモリコントローラ。 - 前記不揮発性メモリへの書込み対象であるデータをLDPC(Low-Density Parity-Check)符号を用いた符号化方式で符号化する符号化器をさらに備え、
前記メモリインタフェースは、前記符号化器で符号化された符号語を前記不揮発性メモリへ出力する
請求項1に記載のメモリコントローラ。 - 前記メモリコントローラは、SoC(System on Chip)で構築された半導体装置である請求項1に記載のメモリコントローラ。
- 1つ以上の不揮発性メモリと、
前記1つ以上の不揮発性メモリに接続されたメモリコントローラと、
を備え、
前記メモリコントローラは、
前記1つ以上の不揮発性メモリのいずれかに書き込まれている符号語をハードビット情報、第1ソフトビット情報および第2ソフトビット情報のうちのいずれかとして読み出すメモリインタフェースと、
前記第1ソフトビット情報から第1の軟判定値の符号語を生成し、前記第2ソフトビット情報から第2の軟判定値の符号語を生成する符号語処理部と、
前記ハードビット情報で構成された硬判定値の符号語に硬判定復号を実行する第1の復号器と、
前記第1の軟判定値の符号語に第1の軟判定復号を実行する第2の復号器と、
前記第2の軟判定値の符号語に第2の軟判定復号を実行する第3の復号器と、
を備え、
前記第1ソフトビット情報は、前記ハードビット情報のビット数よりも多い第1ビット数の情報を含み、
前記第2ソフトビット情報は、前記第1ビット数よりも多い第2ビット数の情報を含む
メモリシステム。 - 前記メモリコントローラは、
前記メモリインタフェースが前記1つ以上の不揮発性メモリのいずれかから前記ハードビット情報を読み出すこと、
前記第1の復号器が前記硬判定値の符号語に対して前記硬判定復号を実行すること、前記硬判定復号に失敗したと判断したことに応じて、前記メモリインタフェースが前記不揮発性メモリから前記第1ソフトビット情報を読み出すこと、
前記第2の復号器が前記第1の軟判定値の符号語に対して前記第1の軟判定復号を実行すること、前記第1の軟判定復号に失敗したと判断したことに応じて、前記メモリインタフェースが前記不揮発性メモリから前記第2ソフトビット情報を読み出すこと、および、
前記第3の復号器が前記第2の軟判定値の符号語に対して前記第2の軟判定復号を実行すること、
を指示する制御部をさらに備える請求項8に記載のメモリシステム。 - 前記第1の復号器は、前記ハードビット情報として読み出された前記硬判定値の符号語にオンザフライで前記硬判定復号を実行し、
前記第2の復号器は、前記第1ソフトビット情報から生成された前記第1の軟判定値の符号語に前記オンザフライで前記第1の軟判定復号を実行する
請求項8に記載のメモリシステム。 - 前記メモリコントローラは、それぞれ独立して前記1つ以上の不揮発性メモリのいずれかに接続され得る1つ以上のチャネルをさらに備え、
前記第1の復号器および前記第2の復号器のうち少なくとも1つは、前記1つ以上のチャネルそれぞれに個別に設けられている
請求項8に記載のメモリシステム。 - 前記符号語処理部が前記第2ソフトビット情報から生成した前記第2の軟判定値の符号語を蓄積するデータバッファをさらに備え、
前記第3の復号器は、前記データバッファに蓄積された前記第2の軟判定値の符号語に対して前記第2の軟判定復号を実行する
請求項8に記載のメモリシステム。 - 前記データバッファは、SRAM(Static Random Access Memory)またはDRAM(Dynamic Random Access Memory)である請求項12に記載のメモリシステム。
- 前記第1の軟判定値の前記第1ビット数は、2〜5であり、
前記第2の軟判定値の前記第2ビット数は、6以上である
請求項8に記載のメモリシステム。 - 前記不揮発性メモリへの書込み対象であるデータをLDPC(Low-Density Parity-Check)符号を用いた符号化方式で符号化する符号化器をさらに備え、
前記メモリインタフェースは、前記符号化器で符号化された符号語を前記不揮発性メモリへ出力する
請求項8に記載のメモリシステム。 - 前記メモリコントローラは、SoC(System On Chip)で構築された半導体装置である請求項8に記載のメモリシステム。
- 前記不揮発性メモリは、NAND型フラッシュメモリである請求項8に記載のメモリシステム。
- 1つ以上の不揮発性メモリと、前記1つ以上の不揮発性メモリに接続されたメモリコントローラと、を備えるメモリシステムの制御方法であって、
前記メモリコントローラは、
前記1つ以上の不揮発性メモリのいずれかに書き込まれている符号語をハードビット情報、第1ソフトビット情報および第2ソフトビット情報のうちのいずれかとして読み出し、
前記第1ソフトビット情報から第1の軟判定値の符号語を生成し、
前記第2ソフトビット情報から第2の軟判定値の符号語を生成し、
前記ハードビット情報で構成された硬判定値の符号語に硬判定復号を実行し、
前記第1の軟判定値の符号語に第1の軟判定復号を実行し、
前記第2の軟判定値の符号語に第2の軟判定復号を実行し、
前記第1ソフトビット情報は、前記ハードビット情報のビット数よりも多い第1ビット数の情報を含み、
前記第2ソフトビット情報は、前記第1ビット数よりも多い第2ビット数の情報を含む
メモリシステムの制御方法。 - 前記メモリコントローラは、
前記1つ以上の不揮発性メモリのいずれかから前記ハードビット情報を読み出し、
前記硬判定値の符号語に対して前記硬判定復号を実行し、
前記硬判定復号に失敗したと判断したことに応じて、前記不揮発性メモリから前記第1ソフトビット情報を読み出し、
前記第1ソフトビット情報から前記第1の軟判定値の符号語を生成し、
前記第1の軟判定値の符号語に対して前記第1の軟判定復号を実行し、
前記第1の軟判定復号に失敗したと判断したことに応じて、前記不揮発性メモリから前記第2ソフトビット情報を読み出し、
前記第2ソフトビット情報から前記第2の軟判定値の符号語を生成し、
前記第2の軟判定値の符号語に対して前記第2の軟判定復号を実行する
請求項18に記載のメモリシステムの制御方法。 - 前記メモリコントローラは、
前記ハードビット情報として読み出された前記硬判定値の符号語にオンザフライで前記硬判定復号を実行し、
前記第1ソフトビット情報から生成された前記第1の軟判定値の符号語に前記オンザフライで前記第1の軟判定復号を実行する
請求項18に記載のメモリシステムの制御方法。
Priority Applications (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2017041765A JP2018147231A (ja) | 2017-03-06 | 2017-03-06 | メモリコントローラ、メモリシステムおよびメモリシステムの制御方法 |
| US15/698,836 US10437668B2 (en) | 2017-03-06 | 2017-09-08 | Memory controller, memory system, and method for controlling memory system |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2017041765A JP2018147231A (ja) | 2017-03-06 | 2017-03-06 | メモリコントローラ、メモリシステムおよびメモリシステムの制御方法 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JP2018147231A true JP2018147231A (ja) | 2018-09-20 |
Family
ID=63355131
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2017041765A Pending JP2018147231A (ja) | 2017-03-06 | 2017-03-06 | メモリコントローラ、メモリシステムおよびメモリシステムの制御方法 |
Country Status (2)
| Country | Link |
|---|---|
| US (1) | US10437668B2 (ja) |
| JP (1) | JP2018147231A (ja) |
Families Citing this family (29)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US10063262B2 (en) | 2011-02-28 | 2018-08-28 | Inphi Corporation | Non-concatenated FEC codes for ultra-high speed optical transport networks |
| KR102421149B1 (ko) * | 2018-01-02 | 2022-07-14 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 그것의 동작 방법 |
| US12118241B2 (en) | 2017-10-27 | 2024-10-15 | SK Hynix Inc. | Memory controller, memory system, and operating method thereof |
| KR102456173B1 (ko) | 2017-10-27 | 2022-10-18 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 그것의 동작 방법 |
| KR102799075B1 (ko) | 2019-02-27 | 2025-04-23 | 에스케이하이닉스 주식회사 | 컨트롤러, 메모리 시스템 및 그것의 동작 방법 |
| TWI645683B (zh) * | 2018-01-31 | 2018-12-21 | 大陸商深圳衡宇芯片科技有限公司 | 使用代數碼與ldpc碼的部分聯結編碼系統 |
| US11573891B2 (en) | 2019-11-25 | 2023-02-07 | SK Hynix Inc. | Memory controller for scheduling commands based on response for receiving write command, storage device including the memory controller, and operating method of the memory controller and the storage device |
| KR102456176B1 (ko) | 2020-05-21 | 2022-10-19 | 에스케이하이닉스 주식회사 | 메모리 컨트롤러 및 그 동작 방법 |
| CN111190764A (zh) * | 2020-01-13 | 2020-05-22 | 山东华芯半导体有限公司 | 一种获得nand闪存ldpc码软信息的方法 |
| US11424766B1 (en) * | 2020-01-31 | 2022-08-23 | Marvell Asia Pte Ltd. | Method and device for energy-efficient decoders |
| US11221800B2 (en) | 2020-03-02 | 2022-01-11 | Micron Technology, Inc. | Adaptive and/or iterative operations in executing a read command to retrieve data from memory cells |
| US11740970B2 (en) * | 2020-03-02 | 2023-08-29 | Micron Technology, Inc. | Dynamic adjustment of data integrity operations of a memory system based on error rate classification |
| US12009034B2 (en) | 2020-03-02 | 2024-06-11 | Micron Technology, Inc. | Classification of error rate of data retrieved from memory cells |
| US11029890B1 (en) | 2020-03-02 | 2021-06-08 | Micron Technology, Inc. | Compound feature generation in classification of error rate of data retrieved from memory cells |
| US11086572B1 (en) | 2020-03-02 | 2021-08-10 | Micron Technology, Inc. | Self adapting iterative read calibration to retrieve data from memory cells |
| KR102495910B1 (ko) | 2020-04-13 | 2023-02-06 | 에스케이하이닉스 주식회사 | 스토리지 장치 및 그 동작 방법 |
| KR102435253B1 (ko) | 2020-06-30 | 2022-08-24 | 에스케이하이닉스 주식회사 | 메모리 컨트롤러 및 그 동작 방법 |
| KR102406449B1 (ko) | 2020-06-25 | 2022-06-08 | 에스케이하이닉스 주식회사 | 스토리지 장치 및 그 동작 방법 |
| US11755476B2 (en) | 2020-04-13 | 2023-09-12 | SK Hynix Inc. | Memory controller, storage device including the memory controller, and method of operating the memory controller and the storage device |
| US11257546B2 (en) | 2020-05-07 | 2022-02-22 | Micron Technology, Inc. | Reading of soft bits and hard bits from memory cells |
| US11081200B1 (en) | 2020-05-07 | 2021-08-03 | Micron Technology, Inc. | Intelligent proactive responses to operations to read data from memory cells |
| US11562793B2 (en) | 2020-05-07 | 2023-01-24 | Micron Technology, Inc. | Read soft bits through boosted modulation following reading hard bits |
| US11200959B1 (en) * | 2020-08-07 | 2021-12-14 | Micron Technology, Inc. | Optimization of soft bit windows based on signal and noise characteristics of memory cells |
| JP2022047393A (ja) * | 2020-09-11 | 2022-03-24 | キオクシア株式会社 | メモリシステム、半導体記憶装置及びデータ読み出し方法 |
| US11830545B2 (en) | 2020-12-16 | 2023-11-28 | Micron Technology, Inc. | Data programming techniques to store multiple bits of data per memory cell with high reliability |
| US12339742B2 (en) | 2021-06-09 | 2025-06-24 | Intel Corporation | Soft read operations with progressive data output |
| JP2023078545A (ja) * | 2021-11-26 | 2023-06-07 | キオクシア株式会社 | メモリシステム及び不揮発性メモリ |
| JP2023116927A (ja) | 2022-02-10 | 2023-08-23 | キオクシア株式会社 | メモリシステムおよびメモリ制御方法 |
| JP2024130268A (ja) * | 2023-03-14 | 2024-09-30 | キオクシア株式会社 | メモリシステム及び不揮発性メモリ |
Family Cites Families (16)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPS5846589A (ja) | 1981-08-31 | 1983-03-18 | ロバ−ト・モ−リス・パ−マ− | モ−ルドのゲ−ト・ランナ用加熱装置 |
| JPS5887589A (ja) | 1981-11-19 | 1983-05-25 | シャープ株式会社 | Crtを用いた表示方法 |
| ATE539403T1 (de) | 2008-06-24 | 2012-01-15 | Sandisk Il Ltd | Verfahren und vorrichtung zur fehlerkorrektur nach der löschanzahl eines festkörperspeichers |
| US8429498B1 (en) * | 2009-03-25 | 2013-04-23 | Apple Inc. | Dual ECC decoder |
| US8775913B2 (en) * | 2010-03-31 | 2014-07-08 | Lsi Corporation | Methods and apparatus for computing soft data or log likelihood ratios for received values in communication or storage systems |
| US8627175B2 (en) * | 2010-09-27 | 2014-01-07 | Seagate Technology Llc | Opportunistic decoding in memory systems |
| DE112011103295B4 (de) | 2010-09-29 | 2023-12-07 | International Business Machines Corporation | Decodieren in Solid-State-Speichereinheiten |
| JP2012244305A (ja) | 2011-05-17 | 2012-12-10 | Toshiba Corp | メモリコントローラ、半導体メモリ装置、および復号方法 |
| US8880977B2 (en) | 2011-07-22 | 2014-11-04 | Sandisk Technologies Inc. | Systems and methods of storing data |
| US8856611B2 (en) * | 2012-08-04 | 2014-10-07 | Lsi Corporation | Soft-decision compensation for flash channel variation |
| US9286155B1 (en) * | 2013-05-24 | 2016-03-15 | Marvell International Ltd. | Systems and methods for generating soft information in a flash device |
| KR102110767B1 (ko) * | 2013-12-24 | 2020-06-09 | 삼성전자 주식회사 | 메모리 컨트롤러 구동방법 및 메모리 컨트롤러 |
| US20160055055A1 (en) * | 2014-08-25 | 2016-02-25 | Kabushiki Kaisha Toshiba | Memory system and error correction decoding method |
| US10084481B2 (en) * | 2014-12-18 | 2018-09-25 | Apple Inc. | GLDPC soft decoding with hard decision inputs |
| US9977713B2 (en) * | 2015-03-20 | 2018-05-22 | SK Hynix Inc. | LDPC decoder, semiconductor memory system and operating method thereof |
| KR102370292B1 (ko) * | 2015-05-07 | 2022-03-07 | 에스케이하이닉스 주식회사 | 컨트롤러, 반도체 메모리 시스템 및 그것의 동작 방법 |
-
2017
- 2017-03-06 JP JP2017041765A patent/JP2018147231A/ja active Pending
- 2017-09-08 US US15/698,836 patent/US10437668B2/en not_active Expired - Fee Related
Also Published As
| Publication number | Publication date |
|---|---|
| US10437668B2 (en) | 2019-10-08 |
| US20180253353A1 (en) | 2018-09-06 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US10437668B2 (en) | Memory controller, memory system, and method for controlling memory system | |
| US9092350B1 (en) | Detection and handling of unbalanced errors in interleaved codewords | |
| US9985651B2 (en) | Read threshold calibration for LDPC | |
| JP5502064B2 (ja) | メモリ装置およびデータ判定方法 | |
| US9543983B2 (en) | Decoding method, memory storage device and memory control circuit unit | |
| US9639419B2 (en) | Read voltage level estimating method, memory storage device and memory control circuit unit | |
| US9529666B2 (en) | Decoding method, memory storage device and memory controlling circuit unit | |
| US20190252035A1 (en) | Decoding method, memory storage device and memory control circuit unit | |
| US9471421B2 (en) | Data accessing method, memory storage device and memory controlling circuit unit | |
| US9973213B2 (en) | Decoding method, and memory storage apparatus and memory control circuit unit using the same | |
| CN105164649B (zh) | 对存储在固态存储器中的数据进行解码 | |
| TWI541820B (zh) | 解碼方法、記憶體控制電路單元及記憶體儲存裝置 | |
| KR101386489B1 (ko) | 메모리 장치 및 멀티 비트 프로그래밍 방법 | |
| US10108490B1 (en) | Decoding method, memory storage device and memory control circuit unit | |
| KR101678404B1 (ko) | 사전 확률 정보를 사용하는 메모리 시스템 및 그것의 데이터 처리 방법 | |
| TWI612527B (zh) | 解碼方法、記憶體儲存裝置及記憶體控制電路單元 | |
| US10445002B2 (en) | Data accessing method, memory controlling circuit unit and memory storage device | |
| US10193569B2 (en) | Decoding method, memory storage device and memory control circuit unit | |
| JP2019169216A (ja) | メモリシステム | |
| JP6730215B2 (ja) | メモリコントローラ、メモリシステムおよび制御方法 | |
| CN106681856B (zh) | 解码方法、存储器存储装置及存储器控制电路单元 | |
| KR102714837B1 (ko) | 오류 정정 디코더 및 이를 포함하는 메모리 시스템 | |
| US10673465B2 (en) | Memory controller, memory system, and control method | |
| US20160080004A1 (en) | Memory controller and decoding method | |
| CN107301873B (zh) | 译码方法、存储器储存装置及存储器控制电路单元 |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A711 | Notification of change in applicant |
Free format text: JAPANESE INTERMEDIATE CODE: A712 Effective date: 20170605 |
|
| A711 | Notification of change in applicant |
Free format text: JAPANESE INTERMEDIATE CODE: A712 Effective date: 20180905 |