JP2021150733A - 半導体装置及び半導体記憶装置 - Google Patents
半導体装置及び半導体記憶装置 Download PDFInfo
- Publication number
- JP2021150733A JP2021150733A JP2020046798A JP2020046798A JP2021150733A JP 2021150733 A JP2021150733 A JP 2021150733A JP 2020046798 A JP2020046798 A JP 2020046798A JP 2020046798 A JP2020046798 A JP 2020046798A JP 2021150733 A JP2021150733 A JP 2021150733A
- Authority
- JP
- Japan
- Prior art keywords
- decoding
- frame
- ecc
- syndrome
- 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
Images
Classifications
-
- 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
-
- 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
- H03M13/2909—Product codes
-
- 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
- G11C29/08—Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
- G11C29/12—Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
- G11C29/38—Response verification devices
- G11C29/42—Response verification devices using error correcting codes [ECC] or parity check
-
- 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/1048—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 arrangements adapted for a specific error detection or correction feature
-
- 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
- H03M13/2927—Decoding strategies
-
- 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/3746—Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35 with iterative 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/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
-
- 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/13—Linear codes
- H03M13/15—Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes
- H03M13/151—Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes using error location or error correction polynomials
- H03M13/1515—Reed-Solomon 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/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/13—Linear codes
- H03M13/15—Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes
- H03M13/151—Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes using error location or error correction polynomials
- H03M13/152—Bose-Chaudhuri-Hocquenghem [BCH] codes
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Probability & Statistics with Applications (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- General Engineering & Computer Science (AREA)
- Quality & Reliability (AREA)
- Algebra (AREA)
- Pure & Applied Mathematics (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Detection And Correction Of Errors (AREA)
- Error Detection And Correction (AREA)
Abstract
【課題】誤り訂正能力を高めた半導体装置を提供する。【解決手段】実施形態の半導体装置は、積符号フレームの横方向のECCフレームデータにECC復号を行うECC復号処理回路31と、積符号フレームの縦方向の第2フレームデータにリード・ソロモン(RS)復号を行うRS復号処理回路32と、ECC復号処理回路31において復号されたECCフレームデータに対して生成されたシンドロームを格納するメモリM0と、ECC復号に成功したECCフレームデータに対して生成されたRSシンドロームを格納するメモリM1と、ECC復号に失敗したECCフレームデータを復号訂正不能フレームデータとして格納するメモリDと、を有し、復号訂正不能フレームデータを収集するフレーム収集処理と、フレーム収集処理において収集された復号訂正不能フレームデータにRS復号を行う反復訂正処理を実行する。【選択図】図11
Description
本発明の実施形態は、半導体装置及び半導体記憶装置に関する。
半導体記憶装置などには、誤り訂正回路が搭載される場合がある。積符号フレームを用いて誤り訂正能力を向上する誤り訂正回路も利用されているが、さらに高い誤り訂正能力が求められている。
そこで、実施形態は、誤り訂正能力を高めた半導体装置及び半導体記憶装置を提供することを目的とする。
実施形態の半導体装置は、積符号フレームの第1方向の第1フレームデータに第1復号を行う第1復号回路と、前記積符号フレームの第2方向の第2フレームデータに第2復号を行う第2復号回路と、前記第1復号回路において復号された前記第1フレームデータに対して生成されたシンドロームを格納する第1記憶領域と、前記第1復号回路において前記第1復号に成功した前記第1フレームデータに対して生成された前記シンドロームを格納する第2記憶領域と、前記第1復号において前記第1復号に失敗した前記第1フレームデータを復号訂正不能フレームデータとして格納する第3記憶領域と、を有し、前記復号訂正不能フレームデータを収集するフレーム収集処理と、前記フレーム収集処理において収集された前記復号訂正不能フレームデータに前記第2復号を行う反復訂正処理を実行し、前記フレーム収集処理では、前記第1フレームデータに対して前記第1復号を行い、前記第1復号に成功したときは前記第1復号に成功した前記第1フレームデータに対して前記シンドロームを生成して前記第2記憶領域に格納すると共に、前記第1復号に成功したあるいは失敗したに関わりなく前記第1フレームデータに対して生成された前記シンドロームを前記第1記憶領域に格納し、前記反復訂正処理では、前記復号訂正不能フレームデータに対して前記第1記憶領域の前記シンドロームを用いて前記第2復号によるデータ訂正を行い、前記データ訂正により訂正された前記復号訂正不能フレームデータに対して前記第1復号を行い、前記復号訂正不能フレームデータに対する前記第1復号が成功したときは、前記第3記憶領域の前記復号訂正不能フレームデータを更新すると共に、前記復号訂正不能フレームデータに対する前記シンドローム生成を行い、前記第1記憶領域及び前記第2記憶領域を更新し、前記反復訂正処理後に前記フレーム収集処理を行うとき、前記第2記憶領域のデータを前記第1記憶領域にコピーする。
以下、図面を参照して実施形態を説明する。
(第1の実施形態)
(構成)
(メモリシステムの構成)
図1は、実施形態に関わるメモリシステムの構成例を示すブロック図である。本実施形態のメモリシステムは、メモリコントローラ1と不揮発性メモリ2とを備える。メモリシステムは、ホストと接続可能である。ホストは、例えば、パーソナルコンピュータ、携帯端末、スマートフォンなどの電子機器である。
(第1の実施形態)
(構成)
(メモリシステムの構成)
図1は、実施形態に関わるメモリシステムの構成例を示すブロック図である。本実施形態のメモリシステムは、メモリコントローラ1と不揮発性メモリ2とを備える。メモリシステムは、ホストと接続可能である。ホストは、例えば、パーソナルコンピュータ、携帯端末、スマートフォンなどの電子機器である。
不揮発性メモリ2は、データを不揮発に記憶する半導体メモリであり、例えば、NANDフラッシュメモリを備えている。本実施形態では、不揮発性メモリ2は、メモリセルあたり4bitを記憶可能なメモリセルを有するNANDメモリ、すなわち4bit/Cell(QLC:Quad Level Cell)のNANDメモリであるとして説明する。不揮発性メモリ2は、3次元化されている。
メモリコントローラ1は、ホストからの書き込み要求に従って不揮発性メモリ2へのデータの書き込みを制御する半導体装置である。メモリコントローラ1と不揮発性メモリ2を含む半導体パッケージは、半導体記憶装置を構成する。また、メモリコントローラ1は、ホストからの読み出し要求に従って不揮発性メモリ2からのデータの読み出しを制御する。メモリコントローラ1は、RAM(Random Access Memory)11、プロセッサ12、ホストインターフェイス13、ECC(Error Check and Correct)回路14およびメモリインターフェイス15を備える。RAM11、プロセッサ12、ホストインターフェイス13、ECC回路14およびメモリインターフェイス15は、互いに内部バス16で接続される。
ホストインターフェイス13は、ホストから受信した要求、ユーザデータである書き込みデータなどを内部バス16に出力する。また、ホストインターフェイス13は、不揮発性メモリ2から読み出されたユーザデータ、プロセッサ12からの応答などをホストへ送信する。
ECC回路14は、不揮発性メモリ2にユーザデータを書き込むときに誤り訂正符号を生成する誤り符号生成回路14aと、不揮発性メモリ2から読み出したユーザデータの誤りを検出しかつ訂正する誤り検出/訂正回路14bとを含む。誤り符号生成回路14aは、プロセッサ12からの指示に応じてユーザデータに対する誤り訂正符号を生成する。プロセッサ12は、ホストからのユーザデータを不揮発性メモリ2に書き込むとき、誤り符号生成回路14aによりユーザデータに対する誤り訂正符号を生成し、誤り訂正符号を付加したユーザデータを不揮発性メモリ2に書き込む。プロセッサ12は、ホストからの要求に応じてユーザデータを不揮発性メモリ2から読み出すとき、誤り検出/訂正回路14bにより不揮発性メモリ2からのユーザデータの誤りを検出し、誤りがあったときはその誤り訂正符号を用いてデータ訂正をして、ユーザデータをホストへ出力する。
メモリインターフェイス15は、プロセッサ12の指示に基づいてユーザデータ等を不揮発性メモリ2へ書き込む処理および不揮発性メモリ2から読み出す処理を制御するインターフェイス回路である。
プロセッサ12は、メモリコントローラ1を統括的に制御する。プロセッサ12は、例えば、CPU(Central Processing Unit)、MPU(Micro Processing Unit)等である。プロセッサ12は、ホストからホストインターフェイス13経由で要求を受けた場合に、その要求に従った制御を行う。例えば、プロセッサ12は、ホストからの要求に従って、不揮発性メモリ2へのユーザデータおよびパリティデータの書き込みをメモリインターフェイス15へ指示する。パリティデータの生成は、ECC回路14の誤り符号生成回路により行われる。また、プロセッサ12は、ホストからの要求に従って、不揮発性メモリ2からのユーザデータおよびパリティデータの読み出しを、メモリインターフェイス15へ指示する。読み出されたユーザデータに誤りがあったときのデータ訂正は、ECC回路14の誤り検出/訂正回路14bにより行われる。
プロセッサ12は、ユーザデータごとに書き込み先の不揮発性メモリ2の格納領域を決定する。不揮発性メモリ2の格納領域には物理アドレスが割当てられている。プロセッサ12は、ユーザデータの書き込み先の格納領域を、物理アドレスを用いて管理する。プロセッサ12は、決定した格納領域の物理アドレスを指定してユーザデータを不揮発性メモリ2へ書き込むようメモリインターフェイス15へ指示する。プロセッサ12は、ユーザデータの論理アドレス(ホストが管理する論理アドレス)と物理アドレスとの対応を管理する。プロセッサ12は、ホストからの論理アドレスを含む読み出し要求を受信した場合は、論理アドレスに対応する物理アドレスを特定し、物理アドレスを指定してユーザデータの読み出しをメモリインターフェイス15へ指示する。
RAM11は、ホストから受信したユーザデータを不揮発性メモリ2へ記憶するまでに一時格納したり、不揮発性メモリ2から読み出したデータをホストへ送信するまでに一時格納したりする。RAM11は、例えば、SRAM(Static Random Access Memory)などの汎用メモリである。
図1では、メモリコントローラ1が、ECC回路14とメモリインターフェイス15をそれぞれ備える構成例を示した。しかしながら、ECC回路14がメモリインターフェイス15に内蔵されていてもよい。また、ECC回路14が、不揮発性メモリ2に内蔵されていてもよい。
ホストから書き込み要求を受信した場合、メモリコントローラ1は次のように動作する。プロセッサ12は、書き込みユーザデータをRAM11に一時記憶させる。プロセッサ12は、RAM11にストアされたユーザデータを読み出し、ECC回路14に入力する。ECC回路14の誤り符号生成回路14aは、入力されたデータの誤り訂正符号(パリティデータ)を生成し、誤り訂正符号が付加されたユーザデータをメモリインターフェイス15に出力する。メモリインターフェイス15は、誤り訂正符号が付加されたユーザデータを不揮発性メモリ2に書き込む。
ホストから読み出し要求を受信した場合、メモリコントローラ1は次のように動作する。メモリインターフェイス15は、不揮発性メモリ2から読み出した誤り訂正符号が付加されたユーザデータをECC回路14に出力する。ECC回路14の誤り検出/訂正回路14bは、入力されたユーザデータを復号し、もしも入力されたユーザデータに誤りが検出されたときは、誤り訂正符号を用いて訂正したデータをRAM11にストアする。プロセッサ12は、RAM11にストアされたユーザデータを、ホストインターフェイス13を介してホストに送信する。
図2は、本実施形態の不揮発性メモリの構成例を示すブロック図である。不揮発性メモリ2は、NAND I/Oインターフェイス21、制御部22、NANDメモリセルアレイ23、センスアンプ回路24及びワード線ドライバ25を備える。不揮発性メモリ2は、例えば1チップの半導体基板(例えば、シリコン基板)からなる。
NAND I/Oインターフェイス21は、メモリコントローラ1から出力された、書き込みイネーブル信号WEn、読み出しイネーブル信号REn、アドレスラッチイネーブル信号ALE、コマンドラッチイネーブル信号CLEなどの制御信号を受け取る。また、NAND I/Oインターフェイス21は、メモリコントローラ1から出力された、コマンド、アドレス、データを受け取る。
制御部22は、NAND I/Oインターフェイス21から制御信号、コマンド、アドレス、データを受け取り、それらに基づいて、不揮発性メモリ2の動作を制御する制御回路である。制御部22は、例えば、制御信号、コマンド、アドレス、データに基づいてワード線ドライバ25やセンスアンプ回路24を制御し、書き込み動作、読み出し動作、消去動作等を実行する。
制御部22は、書き込みコマンドが入力された場合、書き込みコマンドに伴って入力されたデータをNANDメモリセルアレイ23上の指定されたアドレスへ書き込むようセンスアンプ回路24とワード線ドライバ25を制御する。また、制御部22は、読み出しコマンドが入力された場合、NANDメモリセルアレイ23上の指定されたアドレスからデータを読み出すようセンスアンプ回路24とワード線ドライバ25を制御する。
例えば、制御部22は、NANDメモリセルアレイ23に含まれるメモリセル(メモリセルトランジスタ)MTへデータを書き込むために、ワード線ドライバ25によって複数のワード線WLへ印加される電圧や、センスアンプ回路24によって複数のビット線BLに印加される電圧(ビット線電圧)を制御する。
センスアンプ回路24は、複数のビット線BLに独立して電圧(または電流)を印加し、また、複数のビット線BLの電圧(または電流)を独立して検出することができるように構成されている。
ワード線ドライバ25は、複数のワード線および選択ゲート線に独立して電圧を印加することができるように構成されている。
(NANDメモリセルアレイの構成)
図3は、3次元構造のNANDメモリセルアレイ23のブロックの構成例を示す図である。図3は、3次元構造のNANDメモリセルアレイ(以下、メモリセルアレイという)23を構成する複数のブロックのうちの1つのブロックBLKを示している。メモリセルアレイの他のブロックも図3と同様の構成を有する。なお、本実施形態は、2次元構造のメモリセルアレイにも適用可能である。
(NANDメモリセルアレイの構成)
図3は、3次元構造のNANDメモリセルアレイ23のブロックの構成例を示す図である。図3は、3次元構造のNANDメモリセルアレイ(以下、メモリセルアレイという)23を構成する複数のブロックのうちの1つのブロックBLKを示している。メモリセルアレイの他のブロックも図3と同様の構成を有する。なお、本実施形態は、2次元構造のメモリセルアレイにも適用可能である。
図示するように、ブロックBLKは、例えば4つのストリングユニット(SU0〜SU3)を含む。また各々のストリングユニットSUは、複数のNANDストリングNSを含む。NANDストリングNSの各々は、ここでは8個のメモリセルMT(MT0〜MT7)と、選択トランジスタST1,ST2とを含む。なお、NANDストリングNSに含まれるメモリセルMTの個数は、ここでは8個であるが、8個に限られず、例えば、32個、48個、64個、96個でもよい。選択トランジスタST1,ST2は、電気回路上は1つのトランジスタとして示しているが、構造上はメモリセルトランジスタと同じでもよい。また、例えばカットオフ特性を高めるために、選択トランジスタST1,ST2として、それぞれ複数の選択トランジスタを用いてもよい。 さらに、メモリセルMTと選択トランジスタST1,ST2との間には、ダミーセルトランジスタが設けられていてもよい。
メモリセルMTは、選択トランジスタST1,ST2間において、直列接続されるようにして配置されている。一端側のメモリセルMT7が、選択トランジスタST1接続され、他端側のメモリセルMT0が、選択トランジスタST2に接続されている。
ストリングユニットSU0〜SU3の各々の選択トランジスタST1のゲートは、それぞれセレクトゲート線SGD0〜SGD3に接続される。他方で、選択トランジスタST2のゲートは、同一のブロックBLK内にある複数のストリングユニットSU間で同一のセレクトゲート線SGSに共通接続される。また、同一のブロックBLK内にあるメモリセルMT0〜MT7のゲートは、それぞれワード線WL0〜WL7に共通接続される。すなわち、ワード線WL0〜WL7及びセレクトゲート線SGSは、同一ブロックBLK内の複数のストリングユニットSU0〜SU3間で共通に接続されているのに対し、セレクトゲート線SGDは、同一ブロックBLK内であってもストリングユニットSU0〜SU3毎に独立している。
NANDストリングNSを構成するメモリセルMT0〜MT7のゲートには、それぞれワード線WL0〜WL7が接続されている。ブロックBLK内において同一行にあるメモリセルMTiのゲートは、同一のワード線WLiに接続される。なお、以下の説明では、NANDストリングNSを単に「ストリング」という場合がある。
各NANDストリングNSは、対応するビット線に接続されている。従って、各メモリセルMTは、NANDストリングNSに含ませる選択トランジスタSTや他のメモリセルMTを介して、ビット線に接続されている。上述した通り、同一のブロックBLK内にあるメモリセルMTのデータは、一括して消去される。一方、データの読み出し及び書き込みは、メモリセルグループMG単位(またはページ単位)で行われる。本明細書では、1つのワード線WLiに接続され、かつ1つのストリングユニットSUに属する複数のメモリセルMTをメモリセルグループMGと定義する。本実施形態では、不揮発性メモリ2は4ビット(16値)のデータを保持可能なQLC(Quad Level Cell)のNANDメモリである。
(積符号の構成)
NANDメモリのメモリコントローラ1のECC回路14では、積符号フレームを用いて訂正能力の向上が図られている。積符号フレームは、ビット(カラム)方向のECCパリティデータ(誤り訂正符号)と、縦方向のリード・ソロモン(以下、RSと略す)パリティデータ(誤り訂正符号)を有する。ECCパリティデータ及びRSパリティデータは、ECC回路14の誤り符号生成回路14aにより生成されて、ユーザデータに付加される。
NANDメモリのメモリコントローラ1のECC回路14では、積符号フレームを用いて訂正能力の向上が図られている。積符号フレームは、ビット(カラム)方向のECCパリティデータ(誤り訂正符号)と、縦方向のリード・ソロモン(以下、RSと略す)パリティデータ(誤り訂正符号)を有する。ECCパリティデータ及びRSパリティデータは、ECC回路14の誤り符号生成回路14aにより生成されて、ユーザデータに付加される。
図4は、積符号フレームの構成図である。ユーザデータは、複数行(ここではN行。Nは正の整数)でかつ複数列(ここでは、M列。Mは正の整数)のデータからなる。ユーザデータの各行について、横方向(ビット(カラム)方向)にECCパリティデータが付加され、縦方向にRSパリティデータが付加されている。ECCパリティデータは、誤り符号生成回路14aにおいて、ECCエンコードを横方法に行って生成される。RSパリティデータは、誤り符号生成回路14aにおいて、RSエンコードを縦方法に行って生成される。
ECCパリティデータは、BCH(Bose−Chaudhuri−Hocquenghem)符号方式、LDPC(Low Density Parity Check:低密度パリティ検査符号)方式などに基づいて生成される。
なお、ここでは、横方向データに対して、ECCエンコード方式を用いているが、他のエンコード方式を用いて行方向のパリティデータを生成してもよい。同様に、ここでは、縦方向データに対しては、RSエンコード方式を用いているが、他のエンコード方式を用いて縦方向のパリティデータを生成してもよい。
図4の横方向において、1行のユーザデータと、その行に付加されたECCパリティデータとからなるデータを、ECCフレームという。ユーザデータの各行を、所定のデータ単位毎に、例えば1バイト毎に区切ると、複数行のユーザデータは、複数列に分割される。図4の縦方向に所定のデータ幅の1列のユーザデータと、その列に付加された2つのRSパリティデータとからなるデータを、RSフレームという。すなわち、横方向のフレームをECCフレーム、縦方向のフレームをRSフレームという。図4では、N個のECCフレームおよびL個のRSフレームで構成されたフレームを積符号フレームと呼ぶ。
後述するRSシンドロームは、RS復号時に、図4において、二点鎖線で示すように、ECCフレームに対して生成され、メモリM0に格納される。各RSシンドロームのビット数は、RSフレーム毎に分割されたRSパリティのビット数と同じである。
後述するRSシンドロームは、RS復号時に、図4において、二点鎖線で示すように、ECCフレームに対して生成され、メモリM0に格納される。各RSシンドロームのビット数は、RSフレーム毎に分割されたRSパリティのビット数と同じである。
なお、ここでは、1行のユーザデータに対して、1つのECCパリティデータが付加されているが、1行のユーザデータを複数(例えば4つ)に分割し、分割された部分ユーザデータ毎に、1つのパリティデータを付加するようにしてもよい。例えば、1行のユーザデータを4つに分割すると、4つのパリティデータが生成される。
さらになお、ここでは、図4に示すように、RSパリティデータは、ユーザデータについてのみ付加されているが、二点鎖線で示すように、ECCパリティデータについても付加するようにしてもよい。
以下の説明では、ユーザデータの書き込み方法についての説明は省略し、ユーザデータの復号方法、すなわち読み出し及びその訂正の方法について説明する。ここでは、ユーザデータの積符号フレームの復号処理について説明する。
(比較例)
はじめに、本実施形態の復号方法を説明する前に、本実施形態との比較例としての復号方法について説明する。
はじめに、本実施形態の復号方法を説明する前に、本実施形態との比較例としての復号方法について説明する。
図5は、その比較例に関わる、不揮発性メモリ2に記憶されたユーザデータの積符号フレームの復号処理の全体の流れを示すフローチャートである。復号処理では、プロセッサ12は、ホストからの読み出し要求を受けると、メモリインターフェイス15を制御して、不揮発性メモリ2からその要求に関わる物理アドレスからユーザデータを読み出す。図4に示すような積符号フレームのユーザデータが、不揮発性メモリ2から読み出されてRAM11の所定の格納領域に格納される。
復号処理では、不揮発性メモリ2から読み出されたユーザデータに誤りがなければ、プロセッサ12は、そのユーザデータを、ホストへ返す。不揮発性メモリ2から読み出されたユーザデータに誤りがあるとき、プロセッサ12は、ユーザデータを訂正して、ホストへ返す。プロセッサ12は、ECC回路14を制御しながら、不揮発性メモリ2から読み出されたユーザデータの復号処理を行う。
復号処理は、まず、フレーム収集処理を行い(ステップ(以下、Sと略す)1)、その後、反復訂正処理が実行される(S2)。フレーム収集処理では、ビット単位で誤り訂正を行うECC復号処理により復号に失敗した(すなわちECC訂正ができなかった)ECCフレームが収集される。言い換えれば、フレーム収集処理では、RS復号によるデータ訂正が必要なECCフレームが収集される。RS復号は、シンボル単位で誤り訂正を行う。反復訂正処理では、S1で収集されたECCフレームに対してRS復号処理が実行される。
図6は、フレーム収集処理の流れの例を示すフローチャートである。図7及び図8は、反復訂正処理の流れの例を示すフローチャートである。
メモリコントローラ1のプロセッサ12は、ECC対象である対象ECCフレームのフレーム番号を「0」に設定した後(S11)、フレーム番号を「1」だけインクリメントする(S12)。
プロセッサ12は、設定されたフレーム番号の対象ECCフレームを読み出す(S13)。S13の後、プロセッサ12は、誤り検出/訂正回路14bに対してECC復号処理を実行させる信号を与えることによって、ECC復号処理を実行する(S14)。S14では、誤り検出/訂正回路14bは、読み出された対象ECCフレームに誤りがあったか検出し、かつ誤りがあった場合には、ECCによる誤り訂正を実行する。
プロセッサ12は、対象ECCフレームが正しく読み出されたか、あるいは対象ECCフレームに誤りがあったときには誤り検出/訂正回路14bによるECC訂正が成功したかを判定する(S15)。
誤り検出/訂正回路14bは、当該フレームを復号し、正しく復号できたか否かのフラグを内部データとして生成する。具体的には、誤り検出/訂正回路14bは、当該フレームが正しく復号できなかったときは、ECC訂正処理を実行し、ECC訂正が正しく出来たかを示すフラグを内部データとして生成する。よって、プロセッサ12は、誤り検出/訂正回路14bの生成したフラグを読み出すことにより、ECC訂正が成功したかを判定することができる。
ECC訂正が成功しなかったとき(S15:NO)、プロセッサ12は、所定回数の読み出しリトライが終了したかを判定する(S16)。所定回数の読み出しリトライが終了していないとき(S16;NO)、処理は、S13に戻り、S13からS15の処理が再度実行される。なお、リトライ時は、シフトリードなどによる読み出し条件を変更して、ECCフレームの読み出しを行うようにしてもよい。
所定回数の読み出しリトライが終了すると(S16;YES)、プロセッサ12は、ECC訂正ができなかったECCフレームをメモリDに書き込む(S17)。メモリDは、例えばRAM11中の所定の記憶領域である。
なお、プロセッサ12は、S15の判定結果を、RAM11中の所定の記憶領域(あるいは所定レジスタ)に書き込む。これは、プロセッサ12が、どのECCフレームが復号に、成功したかあるいは失敗したかを判定できるようにするためである。例えば、正しく読み出されたあるいはECC訂正できたフレームは、「0」とし、ECC訂正できなかったフレームは、「1」とするような判定結果データが、RAM11中の所定の記憶領域(あるいは所定レジスタ)に書き込まれる。
S15でECC訂正が成功したとき、S17でECC訂正ができなかったECCフレームをメモリDに書き込んだ後、RSシンドロームを、メモリMから読み出す(S18)。メモリMは、RAM11中の所定の記憶領域である。なお、RSシンドロームがメモリMから初めて読み出されたときは、読み出したRSシンドロームは「0」である。
プロセッサ12は、S18の後、S14で復号した対象ECCフレームと、メモリMのRSシンドロームとからRSシンドロームを生成する(S19)。プロセッサ12は、S19において生成されたシンドロームをメモリMに書き込む(すなわち更新する)(S20)。プロセッサ12は、生成したRSシンドロームを、S18で読み出したRSシンドロームに加算することによりRSシンドロームは更新される(S20)。
プロセッサ12は、対象ECCフレーム番号が(N−1)になったかを判定する(S21)。すなわち、N行全てのECCフレームについて、上述したS13からS20までの処理をしたかが判定される。
N行全てのECCフレームについてS13からS20の処理が行われていなければ、S12に戻り、ECCフレーム番号がインクリメントされて、S13以降の処理が実行される。
N行全てのECCフレームについてS13からS20の処理が行われると、プロセッサ12は、図7の反復訂正処理を実行する。
以上のようにして、図6の処理が終了する。その結果、ECC訂正ができなかったECCフレーム情報が、メモリDに書き込まれる。
プロセッサ12は、対象ECCフレームのフレーム番号を「0」に設定し(S31)、フレーム番号を「1」だけインクリメントする(S32)。
プロセッサ12は、S15の判定結果データに基づいて、対象ECCフレームがECC復号に成功したフレームであるかを判定する(S33)。すなわち、プロセッサ12は、対象ECCフレームが正しく読み出された、あるいは正しくECC訂正処理ができたか否かを、上述したRAM11中の所定の記憶領域(あるいは所定レジスタ)を参照することによって、判定する。
対象ECCフレームがECC復号できたすなわちECC復号に成功したフレームであるときは、S43に進み、対象ECCフレームがECC復号できなかったフレームであるときは、S34からS42の処理が実行される。
対象ECCフレームはECC復号できなかったすなわちECC復号に成功しなかったフレームであるときは(S33:NO)、プロセッサ12は、その対象ECCフレームのECCフレームをメモリDから読み出し(S34)、RSシンドロームをメモリMから読み出す(S35)。
プロセッサ12は、ユーザデータに対して、S35で読み出したRSシンドロームを用いて、S35で読み出した対象ECCフレームに対するRS復号処理、すなわちデータ訂正処理を行う(S36)。S36により、S34で読み出した対象ECCフレームに対するデータ訂正がされているかもしれないので、対象ECCフレームに対してECC復号処理を実行する(S37)。
S37の後、プロセッサ12は、誤り検出/訂正回路14bによるECC復号処理の結果、対象ECCフレームに対してのECC復号が成功したかを判定する(S38)。プロセッサ12は、S38の判定結果に基づいて、RAM11中の所定の記憶領域(あるいは所定レジスタ)の判定結果データを更新する。
対象ECCフレームに対するECC復号が成功したとき(S38:YES)、プロセッサ12は、対象ECCフレームをメモリDに書き込む(S39)。プロセッサ12は、S38でECC復号が成功したとき、復号に成功した対象ECCフレームをメモリDに書き込んだ後(すなわち復号された対象ECCフレームデータをメモリDから消去した後)、RSシンドロームを、メモリMから読み出す(S40)。
プロセッサ12は、S40の後、復号に成功した対象ECCフレームと、メモリMのRSシンドロームからRSシンドロームを生成する(S41)。
プロセッサ12は、S41において生成されたシンドロームをメモリMに書き込む(すなわち更新する)(S42)。
プロセッサ12は、S33でYESのとき、あるいはS42の後、ECCフレーム番号が(N−1)になったかを判定する(S43)。すなわち、N行全てのECCフレームについて、上述したS33からS42までの処理をしたかが判定される。
N行全てのECCフレームについてS33からS42の処理が行われていなければ、S32に戻り、対象ECCフレーム番号がインクリメントされて、S33以降の処理が実行される。
S43でYESのとき、すなわち、N行全てのECCフレームについてS33からS42の処理が行われたときは、プロセッサ12は、全ECCフレームについてECC復号が成功したかを判定する(S44)。S44の判定は、上述したようなRAM11中の所定の記憶領域(あるいは所定レジスタ)を参照することによって、行われる。
全ECCフレームについてECC復号が成功したとき(S44:YES)、復号処理は終了する。
全ECCフレームについてECC復号が成功しなかったとき(S44:NO)、プロセッサ12は、上述したS31からS43の反復訂正処理において、ECC復号が一つも成功しなかったかを判定する(S45)。S45の判定は、S38でYESとなったことがあったか否かに基づいて行われる。
一つでもECC復号処理が成功したとき(S45:NO)、処理は、S31に戻り、上述した処理を再度実行する。
すなわち、RS復号の結果、ECC復号ができたので、その新たに復号されたユーザデータに基づいて、再度、RS復号により、ECC復号が成功するかが試される。反復訂正によりECCフレームが一つもECC復号されない状態になるまで、S31からS43の処理が実行される。
一つもECC復号処理が成功しなかったとき(S45:YES)、処理は終了する。終了すると、復号処理が失敗したことを示すメッセージなどが、プロセッサ12へ伝えられる。
図9は、上述したフレーム収集処理における回路(処理)間のデータフローを示す回路図である。ECC回路14において、不揮発性メモリ2から読み出された1つのユーザデータに対して、ECC復号処理回路において、ECC復号処理(P1)が実行される。
ECC復号処理(P1)の後、ECC復号したデータとメモリMのRSシンドロームとからRSシンドローム生成を行い(P2)、生成したRSシンドロームはメモリMに格納される(P3)。ECC復号に成功しなかったECCフレームは、メモリDに格納される(P5)。
図9において実線で示すように、ECC復号処理後、RS復号処理回路において、ECCフレームデータとメモリMのRSシンドロームとからRSシンドロームの生成が行われる。メモリMのRSシンドロームは更新される。
図9において点線で示すように、ECC復号処理回路においてECC訂正が成功しなかったときは、ECC訂正が失敗したECCフレームのデータは、メモリDに書き込まれる。
図10は、上述した反復訂正処理における回路(処理)間のデータフローを示す回路図である。図10において実線で示すように、RS復号処理回路において、メモリMのRSシンドロームを用いて、メモリDのECCフレームに対するRS復号によるデータ訂正が行われる(P14)。
RS復号処理(P14)の後、データ訂正を行ったECCフレームに対してECC復号処理を実行する(P11)。ECC復号に成功したECCフレームとメモリMのRSシンドロームとからシンドローム生成を行い(P12)、生成したRSシンドロームはメモリMに格納される(P13)。また、ECC復号に成功した場合、メモリDのデータ更新を行う(P15)。
図10において点線で示すように、ECC復号処理が成功した場合、RS復号処理回路において、ECC訂正が成功したECCフレームデータとメモリMのRSシンドロームとからRSシンドロームの生成が行われる。生成されたRSシンドロームにより、メモリMのRSシンドロームは更新される。また、図10において点線で示すように、ECC復号処理が成功した場合は、メモリDのデータの更新が行われる(ECC復号に失敗したECCフレームデータの消去)。
以上の比較例の復号処理によれば、フレーム収集処理では、ビット(カラム)方向でECC復号処理が行われる。ECC復号したデータに対してRS復号処理(シンドローム生成)を行い、プロセッサ12は、RSシンドロームを生成しメモリMに格納する。また、ECC復号訂正が失敗した場合、プロセッサ12は、そのECCフレームのデータをメモリDに格納する。以上の処理は、N個のECCフレームに対して行われる。
反復訂正処理では、プロセッサ12は、フレーム収集処理でメモリDに格納したECC復号訂正不能フレームのデータと、メモリMのRSシンドロームとからRS復号処理(データ訂正)を行う。プロセッサ12は、このRS復号を行ったデータに対し、再度ECC復号処理を行う。ECC復号訂正が成功した場合、プロセッサ12は、ECC復号したデータをメモリDに格納(上書き)すると共に、再度RS復号処理(シンドローム生成)を行い、メモリMのRSシンドロームを更新(上書き)する。
この反復訂正で行うRS復号処理(データ訂正)には、N個のECCフレームに対するRSシンドロームが必要である。このため、メモリMに保持されているRSシンドロームは、ECC復号訂正が成功したフレームとECC復号訂正が失敗したフレームで生成されたシンドロームとなる。
そのため、上記の反復訂正後に、ECC復号訂正ができなかったECCフレームに対して、別な判定レベルに基づくECC復号をしようとしても、対象ECCフレームの全てを再度読み出さすためには時間が掛かるため、別な判定レベルに基づくECC復号をすることはできない。
例えば、誤り訂正のレベルの設定を変更することによって、ECC復号ができる可能性があっても、メモリMに格納されているRSシンドロームは前の判定レベルに基づくデータであるため、別な判定レベルに基づくECC復号には、メモリMのRSシンドロームは使えない。
以上のように、判定レベルの設定を変更してECC復号するためには、対象ECCフレームの全てを再度読み出して、新たなRSシンドロームを生成しなければならず、現実的ではない。
(実施形態)
本実施形態では、ECC復号訂正ができなかったECCフレームに対して、別な判定レベルに基づくECC復号を行うために、対象ECCフレームの全てを再度読み出して、RSシンドロームを生成することなく、ECC復号訂正ができなかったECCフレームに対して、別な判定レベルに基づくECC復号を行うことができるようにしている。
本実施形態では、ECC復号訂正ができなかったECCフレームに対して、別な判定レベルに基づくECC復号を行うために、対象ECCフレームの全てを再度読み出して、RSシンドロームを生成することなく、ECC復号訂正ができなかったECCフレームに対して、別な判定レベルに基づくECC復号を行うことができるようにしている。
図11は、本実施形態に関わるメモリコントローラ1の誤り訂正回路14bの構成図である。誤り訂正回路14bは、ECC復号処理回路31及びRS復号処理回路32を有する。ECC復号処理回路31及びRS復号処理回路32の動作は、プロセッサ12により制御される。
ECC復号処理回路31は、メモリインターフェイス15からのユーザデータを受けて、ECC復号処理を実行する。積符号フレームは、第1方向(横方向)及び第2方向(縦方向)に誤り訂正符号(ECCパリティ,RSパリティ)が付加されたユーザデータ)を含む。ECC復号処理回路31は、積符号フレームの第1方向(横方向)のECCフレームデータに第1復号としてECC復号を行う復号回路である。
RS復号処理回路32は、積符号フレームの第2方向(縦方向)のRSフレームデータにRS復号を行う復号回路である。RS復号処理回路32は、メモリDと、メモリM0と、メモリM1と、RSシンドローム生成回路33と、RSデータ訂正回路34とを含む。RSシンドローム生成回路33は、RSシンドロームを算出して生成する。RSデータ訂正回路34は、RSシンドロームを用いたデータ訂正を行う。
メモリDは、ECC復号のデータ訂正に失敗したECCフレームを格納する。すなわち、メモリDは、ECC復号処理回路31においてECC復号に失敗したECCフレームデータを復号訂正不能フレームデータとして格納する記憶領域である。
メモリM0は、反復訂正用のRSシンドロームを格納する記憶領域であり、上述した比較例のメモリMに相当する。具体的には、メモリM0は、ECC復号処理回路31において、ECC復号に成功した失敗したに関わりなく、ECC復号されたECCフレームデータに対して、RS復号処理回路32によりRS復号を行うことにより生成されたシンドロームを格納する記憶領域である。
メモリM1は、ロールバック用のRSシンドロームを格納する。具体的には、メモリM1は、ECC復号処理回路31においてECC復号に成功したECCフレームデータに対して生成されたシンドロームを格納する記憶領域である。
なお、ここでは、メモリD、M0、M1の各々は、SRAMなどからなる専用メモリであるが、RAM11の一部の格納領域でもよい。
図12は、本実施形態に関わる、不揮発性メモリ2に記憶されたユーザデータの積符号フレームの復号処理の全体の流れを示すフローチャートである。
復号処理は、まず、フレーム収集処理を行い(S51)、その後、反復訂正処理が実行される(S52)。フレーム収集処理は、復号訂正不能フレームデータを収集し、反復訂正処理は、フレーム収集処理において収集された復号訂正不能フレームデータにRS復号を行う。反復訂正処理のあと、フレーム収集処理におけるECC復号リトライが終了したかを判定し(S53)、ECC復号リトライが終了していなければ(S53:NO)、処理は、S51に戻る。ECC復号リトライが終了したかは、所定の条件が満たされたか否かに基づいて判定される。所定の条件は、例えば、所定のリトライ回数を実行したか、所定の判定レベルのECC復号が実行されたか、などである。ECC復号リトライが終了すると(S53:YES)、処理は、終了する。
図13は、本実施形態に関わる、フレーム収集処理の流れの例を示すフローチャートである。図14及び図15は、本実施形態に関わる、反復訂正処理の流れの例を示すフローチャートである。図13から図15の処理において、図6から図8と同じ処理については、同じステップ番号を付して説明は、簡略にする。
メモリコントローラ1のプロセッサ12は、ECC対象である対象ECCフレームのフレーム番号を「0」に設定した後(S11)、フレーム番号を「1」だけインクリメントする(S12)。
プロセッサ12は、対象ECCフレームのフレーム番号に基づき、対象ECCフレームは、ECC復号が成功したフレームであるかを判定する(S61)。
対象ECCフレームがECC復号に成功したフレームであるとき(S61:YES)、処理は、S21に移行する。
対象ECCフレームがECC復号に成功したフレームでないとき(S61:NO)、プロセッサ12は、設定されたフレーム番号の対象ECCフレームを読み出す(S13)。S13の後、プロセッサ12は、誤り検出/訂正回路14bに対してECC復号処理を実行させる信号を与えることによって、ECC復号処理を実行する(S14)。
各対象ECCフレームの読み出しが最初に行われる初回時は、すべての対象ECCフレームがECC復号に成功したフレームではないので、S61でNOとなる。
S14の後、プロセッサ12は、設定されたフレーム番号の対象ECCフレームを読み出し(S13)、ECC復号処理をする(S14)。
プロセッサ12は、対象ECCフレームが正しく読み出されたか、あるいは対象ECCフレームに誤りがあったときには誤り検出/訂正回路14bによるECC訂正が成功したかを判定する(S15)。
ECC復号が成功しなかったとき(S15:NO)、プロセッサ12は、所定回数の読み出しリトライが終了したかを判定する(S16)。所定回数の読み出しリトライが終了していないとき(S16;NO)、処理は、S13に戻り、S13からS15の処理が再度実行される。
所定回数の読み出しリトライが終了すると(S16;YES)、プロセッサ12は、ECC訂正ができなかったECCフレームをメモリDに書き込み、S18以降の処理を実行する。
S15でECC訂正が成功したとき、プロセッサ12は、RSシンドロームを、メモリM1から読み出し(S62)、RS復号処理のRSシンドローム生成を実行する(S63)。プロセッサ12は、復号に成功した対象ECCフレームを用いてRSシンドロームを算出してS62で読み出したRSシンドロームに加算することによりRSシンドロームを生成(すなわち更新)する(S63)。そして、プロセッサ12は、S63において生成されたシンドロームをメモリM1に書き込む(S64)。
S17でECC訂正ができなかったECCフレームをメモリDに書き込んだ後、及びS64の後、RSシンドロームを、メモリM0から読み出す(S18)。
プロセッサ12は、S18の後、RS復号処理のRSシンドローム生成を実行する(S19)。プロセッサ12は、ECC復号した対象ECCフレームを用いてRSシンドロームを算出してS18で読み出したRSシンドロームに加算することによりRSシンドロームを生成(すなわち更新)する(S19)。
プロセッサ12は、S19において生成されたシンドロームをメモリM0に書き込む(S20)。
以上のように、フレーム収集処理では、プロセッサ12は、ECCフレームデータに対してECC復号を行い(S14)、ECC復号に成功したときは(S15:YES)ECC復号に成功したECCフレームデータに対してシンドロームを生成(S63)してメモリM1に格納すると共に(S64)、ECC復号に成功したあるいは失敗したに関わりなくECCフレームデータに対して生成されたシンドロームをメモリM0に格納する(S20)。
プロセッサ12は、対象ECCフレーム番号が(N−1)になったかを判定する(S21)。すなわち、N行全てのECCフレームについて、上述したS61からS20までの処理をしたかが判定される。
N行全てのECCフレームについてS61からS20の処理が行われていなければ、S12に戻り、ECCフレーム番号がインクリメントされて、S61以降の処理が実行される。
N行全てのECCフレームについてS61からS20の処理が行われると、プロセッサ12は、図14及び図15の反復訂正処理を実行する。
以上のようにして、図13の処理が終了すると、ECC復号によるデータ訂正ができなかったECCフレーム情報が、メモリDに書き込まれる。また、メモリM0には、全対象ECCフレームについてのRSシンドロームが格納されている。
さらに、メモリM1には、ECC訂正が成功した対象ECCフレームについてのRSシンドロームが格納されている。各対象ECCフレームの読み出しが最初に行われる初回時は、その初回時において、ECC訂正が成功した対象ECCフレームについてのRSシンドロームがメモリM1に格納されている。
図14及び図15の反復訂正処理において、プロセッサ12は、対象ECCフレームのフレーム番号を「0」に設定し(S31)、フレーム番号を「1」だけインクリメントする(S32)。
プロセッサ12は、S15の判定結果データに基づいて、対象ECCフレームがECC復号に成功したフレームであるかを判定する(S33)。
対象ECCフレームがECC復号できたすなわちECC復号に成功したフレームであるときは、S43に進み、対象ECCフレームがECC復号できなかったフレームであるときは、S34からS42の処理が実行される。
対象ECCフレームがECC復号できなかったすなわちECC復号に成功しなかったフレームであるときは(S33:NO)、プロセッサ12は、その対象ECCフレームのECCフレームをメモリDから読み出し(S34)、RSシンドロームをメモリM0から読み出す(S35)。
プロセッサ12は、ユーザデータに対して、S35で読み出したRSシンドロームを用いて、S35で読み出した対象ECCフレームに対するRS復号処理、すなわちデータ訂正処理を行う(S36)。S36により、S34で読み出した対象ECCフレームに対する訂正がされているかもしれないので、対象ECCフレームに対してECC復号処理を実行する(S37)。
S37の後、プロセッサ12は、誤り検出/訂正回路14bによるECC復号処理の結果、対象ECCフレームに対してのECC復号が成功したかを判定する(S38)。プロセッサ12は、S38の判定結果データを、RAM11中の所定の記憶領域(あるいは所定レジスタ)に書き込むすなわち更新する。
対象ECCフレームに対するECC復号が成功したとき(S38:YES)、プロセッサ12は、対象ECCフレームをメモリDに書き込む(S39)。プロセッサ12は、S38でECC復号が成功したとき、復号された対象ECCフレームをメモリDに書き込んだ後(すなわち復号された対象ECCフレームデータをメモリDから消去した後)、メモリM1からRSシンドロームを読み出す(S65)。
プロセッサ12は、S65の後、復号に成功した対象ECCフレームとメモリM1のRSシンドロームからRSシンドローム生成する。そして、プロセッサ12は、S66において生成されたシンドロームをメモリM1に書き込む(すなわち更新する)(S67)。
S67の後、プロセッサ12は、RSシンドロームを、メモリM0から読み出す(S40)。
プロセッサ12は、S40の後、復号に成功した対象ECCフレームとメモリM0のRSシンドロームからRSシンドロームを生成する。
プロセッサ12は、S41において生成されたシンドロームをメモリM0に書き込む(すなわち更新する)(S42)。
プロセッサ12は、S33でYESのとき、S42の後、あるいはS38でNOとき、ECCフレーム番号が(N−1)になったかを判定する(S43)。すなわち、N行全てのECCフレームについて、上述したS33からS42までの処理をしたかが判定される。
N行全てのECCフレームについてS33からS42の処理が行われていなければ、S32に戻り、対象ECCフレーム番号がインクリメントされて、S33以降の処理が実行される。
以上のように、反復訂正処理では、プロセッサ12は、復号訂正不能フレームデータに対してメモリM0のシンドロームを用いてRS復号によるデータ訂正を行い(S36)、データ訂正により訂正された復号訂正不能フレームデータに対してECC復号を行い(S37)、復号訂正不能フレームデータに対するECC復号が成功したときは(S38:YES)、メモリDの復号訂正不能フレームデータを更新(削除)すると共に(S39)、復号訂正不能フレームデータに対するシンドローム生成を行い(S66)、メモリM0及びメモリM1を更新する(S67)。
S43でYESのとき、すなわち、N行全てのECCフレームについてS33からS42の処理が行われたときは、プロセッサ12は、全ECCフレームについてECC復号が成功したかを判定する(S44)。S44の判定は、上述したようなRAM11中の所定の記憶領域(あるいは所定レジスタ)を参照することによって、判定する。
全ECCフレームについてECC復号が成功したとき(S44:YES)、復号処理は終了する。
全ECCフレームについてECC復号が成功しなかったとき(S44:NO)、プロセッサ12は、上述したS31からS43の反復訂正処理において、ECC復号が一つも成功しなかったかを判定する(S45)。S45の判定は、S38でYESとなったことがあったか否かに基づいて行われる。
一つでもECC復号処理が成功したとき(S45:NO)、処理は、S31に戻り、上述した処理を再度実行する。すなわち、RS復号の結果、ECC復号ができたので、その新たに復号されたユーザデータに基づいて、再度、RS復号により、ECC復号が成功するかが試される。最終的に、反復訂正によりECCフレームが一つもECC復号されない状態になるまで、S31からS43の処理が実行される。
一つもECC復号処理が成功しなかったとき(S45:YES)、プロセッサ12は、フレーム収集処理におけるECC復号処理のリトライが終了したかを判定する(S68)。このS68の判定処理は、図12のS53の処理に対応する。
ECC復号処理のリトライが終了と、判定されると(S68:YES)、処理は終了する。終了すると、復号処理が失敗したことを示すメッセージなどが、プロセッサ12へ伝えられる。
ECC復号処理のリトライが終了しないとき(S68:NO)、プロセッサ12は、メモリM1のRSシンドロームを、メモリM0にコピーする(S69)。すなわち、プロセッサ12は、反復訂正処理後にフレーム収集処理を行うとき、メモリM1のデータをメモリM0にコピーする。
S69の後、処理は、図13のS11に戻る。
反復訂正処理の後に、フレーム収集処理に戻り、再度ECC訂正が行われるが、2回目以降のECC復号処理では、前回のECC復号処理とは異なる処理、例えば別の判定レベルに基づくECC復号が実行される。
例えば、1回目のフレーム収集処理では、LDPC符号における60ビット訂正の判定レベルが用いられ、2回目のフレーム収集処理においては、ECC訂正能力を高めるために、LDPC符号の120ビット訂正の判定レベルが用いられる。
図16は、本実施形態に関わる、フレーム収集処理における複数の処理(処理)間のデータフローを示す回路図である。ECC回路14において、不揮発性メモリ2から読み出された1つのユーザデータに対して、ECC復号処理回路において、ECC復号処理が実行される(P21)。
ECC復号処理(P21)の後に、RSシンドロームの生成処理(P22)が実行され(P22)、生成されたRSシンドロームは、メモリM0に格納される(P23)。また、ECC復号が成功しなかったECCフレームは、メモリDに格納される(P25)。
ECC復号が成功したECCフレームについては、ロールバック用のRSシンドロームの生成が行われ(P26)、生成したRSシンドロームは、メモリM1に格納される(P27)。
図16において実線で示すように、ECC復号処理後、RS復号処理回路において、ECC訂正が成功したデータとメモリM0のRSシンドロームとからRSシンドロームの生成が行われる(P22)。生成されたRSシンドロームは、メモリM0に格納される(P23)。
図16において点線で示すように、ECC復号処理回路においてECC訂正が成功しなかったときは、ECC訂正が失敗したECCフレームのデータは、メモリDに書き込まれる。
図16において一点鎖線で示すように、ECC復号が成功したときは、ECC復号したデータとメモリM1のシンドロームから、シンドローム生成が行われ、メモリM1に格納される。
メモリM0に保持されるRSシンドロームは演算用であり、メモリM1に保持されるRSシンドロームは、ロールバック用である。ロールバック用RSシンドロームは、ECC復号が成功したECCフレームのデータに対してのみ生成され、メモリM1に保持される。
フレーム収集処理では、メモリM0に加えECC復号訂正が成功した場合、メモリM1のロールバック用RSシンドロームは更新される。なお、メモリM0の演算用RSシンドロームは、上述した比較例と同様に、ECC復号の成功/失敗に関係なく、常に更新される。
図17は、本実施形態に関わる、反復訂正処理における回路(処理)間のデータフローを示す回路図である。図17において実線で示すように、RS復号処理回路において、メモリM0のRSシンドロームを用いて、メモリDのECCフレームに対するデータ訂正が行われる(P34)。RS復号処理回路におけるデータ訂正が行われた対象ECCフレームに対して、ECC復号処理が実行される(P31)。
ECC復号処理(P31)の後、ECC復号したデータと、メモリM0のRSシンドロームとから演算用のRSシンドロームが生成され(P32)、生成されたRSシンドロームは、メモリM0に格納される(P33)。また、ECC復号が成功しなかったECCフレームは、メモリDに格納される(P35)。
図17において点線で示すように、ECC復号処理が成功した場合、RS復号処理回路において、ECC訂正が成功したデータとメモリM0のRSシンドロームとからRSシンドロームの生成が行われる(P32)。生成されたRSシンドロームは、メモリM0に格納される。
また、図17において一点鎖線で示すように、ECC復号処理が成功した場合は、ECC復号に成功したデータと、メモリM1のRSシンドロームとからRSシンドロームを生成し(P36)、生成したRSシンドロームはメモリM1に格納される。反復訂正において1つも成功しないときは、フレーム収集のリトライのために、メモリM1のRSシンドロームは、メモリM0にコピーされる。
反復訂正では、メモリM0の演算用RSシンドロームが使用され、RS復号処理(RS訂正)およびECC復号処理が行われる。ECC復号訂正が成功した場合、メモリM1のロールバック用RSシンドロームの更新も行われる。
反復訂正終了後、再度フレーム収集を行う際は、メモリM1のロールバック用RSシンドロームを、メモリM0にコピーすることで、演算用RSシンドロームをロールバックし再度フレーム収集を行うことができる。これにより、フレーム収集および反復訂正を繰り返し行うことができ、積符号の復号処理における訂正能力を向上することができる。
従って、本実施形態によれば、対象ECCフレームの全てを再度読み出すことなく、別な判定レベルに基づくECC復号をすることができ、結果として、さらに高い誤り訂正能力を有する半導体装置及び半導体記憶装置を提供することができる。
(第2の実施形態)
第1の実施形態では、復号処理を行うときの2つのRSシンドロームを保持して、繰り返しECC復号処理を行うが、第2の実施形態では、ECC復号訂正に失敗したECCフレームのRSシンドロームを求め、演算用のRSシンドロームから減算することで、ロールバック用のRSシンドロームを保持することなく繰り返しECC復号処理を行い、回路規模を縮小させて実装可能とする。
(第2の実施形態)
第1の実施形態では、復号処理を行うときの2つのRSシンドロームを保持して、繰り返しECC復号処理を行うが、第2の実施形態では、ECC復号訂正に失敗したECCフレームのRSシンドロームを求め、演算用のRSシンドロームから減算することで、ロールバック用のRSシンドロームを保持することなく繰り返しECC復号処理を行い、回路規模を縮小させて実装可能とする。
第2の実施形態の半導体記憶装置は、第1の実施形態と略同じ構成を有するため、同じ構成要素については同じ符号を用いて説明は省略し、異なる構成要素についてのみ説明する。
図18は、本実施形態のメモリコントローラ1Aの誤り訂正回路14bの構成図である。メモリコントローラ1Aは、図11のメモリコントローラ1のメモリM1がないこと以外は、図11のメモリコントローラ1と同じ構成を有する。
本実施形態における、不揮発性メモリ2に記憶されたユーザデータの積符号フレームの復号処理の全体の流れは、図12に示す流れと同じである。
はじめに、本実施形態におけるフレーム収集処理について説明する。
図19は、本実施形態に関わる、フレーム収集処理の流れの例を示すフローチャートである。図20及び図21は、本実施形態に関わる、反復訂正処理の流れの例を示すフローチャートである。図19から図21の処理において、図6から図8及び図13から図15と同じ処理については、同じステップ番号を付して説明は、簡略にする。
図19は、図13におけるS62からS64の処理がないことが、第1の実施形態とは異なる。本実施形態のフレーム収集処理では、プロセッサ12は、ECCフレームデータに対してECC復号を行い(S14)、ECC復号に成功したあるいは失敗したに関わりなくECCフレームデータに対して生成されたシンドロームをメモリM0に格納する(S20)。
すなわち、フレーム収集処理では、メモリM0に対する演算用のRSシンドロームの保持及び更新のみが行われ、第1の実施形態で行っていたECC復号訂正が成功した場合の、メモリM1に対するロールバック用のRSシンドロームの保持及び更新は行われない。なお、メモリM0に対する演算用のRSシンドロームは、第1の実施形態と同様に、ECC復号の成功/失敗に関係なく、常に更新される。
図20は、図14におけるS65からS67の処理がないことが、第1の実施形態とは異なり、図21は、図15におけるS69に代えて、S71とS72の処理が実行されることが、第1の実施形態とは異なる。
本実施形態の反復訂正処理では、プロセッサ12は、復号訂正不能フレームデータに対してメモリM0のシンドロームを用いてRS復号によるデータ訂正を行い(S36)、データ訂正により訂正された復号訂正不能フレームデータに対してECC復号を行い(S37)、復号訂正不能フレームデータに対するECC復号が成功したときは(S38:YES)、メモリDの復号訂正不能フレームデータを更新(削除)すると共に(S39)、復号訂正不能フレームデータに対するシンドローム生成を行い(S41)、メモリM0を更新する。
具体的には、反復訂正処理では、メモリM0の演算用のRSシンドロームを用いて、RS復号処理のRS訂正およびECC復号処理が行われる。そして、反復訂正終了後、再度フレーム収集を行う際は(S46:NO)、プロセッサ12は、ECC復号訂正に失敗したフレームからRSシンドロームを求め、求めたRSシンドロームを、メモリM0の演算用のRSシンドロームから減算することで(S71)、メモリM0の演算用のRSシンドロームを更新し(S72)、メモリM0のRSシンドロームの状態をECC復号訂正が成功したフレームのみの状態にロールバックする。
すなわち、プロセッサ12は、反復訂正処理後にフレーム収集処理を行うとき、ECC復号が失敗した復号訂正不能フレームデータに対して生成されたシンドロームをメモリM0に格納されたシンドロームから減算してメモリM0を更新する。
図22は、本実施形態に関わる、フレーム収集処理における回路(処理)間のデータフローを示す回路図である。
図22において実線で示すように、ECC復号処理(P21)後、RS復号処理回路において、ECC訂正が成功したデータとメモリM0のRSシンドロームとからRSシンドロームの生成が行われる(P22)。生成されたRSシンドロームは、メモリM0に格納される(P23)。
図22において点線で示すように、ECC復号処理回路においてECC訂正が成功しなかったときは、ECC訂正が失敗したECCフレームのデータは、メモリDに書き込まれる(P25)。
図23は、本実施形態に関わる、反復訂正処理における回路(処理)間のデータフローを示す回路図である。図23において実線で示すように、RS復号処理回路において、メモリM0のRSシンドロームを用いて、メモリDのECCフレームに対するデータ訂正が行われる(P34)。RS復号処理回路におけるデータ訂正が行われた対象ECCフレームに対して、ECC復号処理が実行される(P31)。
ECC復号処理(P31)の後、ECC復号したデータと、メモリM0のRSシンドロームとから演算用のRSシンドロームが生成され(P32)、生成されたRSシンドロームは、メモリM0に格納される(P33)。また、ECC復号が成功しなかったECCフレームは、メモリDに格納される(P35)。
図23において点線で示すように、ECC復号処理が成功した場合、RS復号処理回路において、ECC訂正が成功したデータとメモリM0のRSシンドロームとからRSシンドロームの生成が行われる(P32)。生成されたRSシンドロームは、メモリM0に格納される。
そして、プロセッサ12は、ECC復号に失敗したECCフレームから算出したRSシンドロームを、演算用のRSシンドロームから減算し(P41)、メモリM0の演算用のRSシンドロームを更新する(P42)。その後、フレーム収集処理が再度実行される。
以上のように、本実施形態では、ECC復号訂正に失敗したフレームのRSシンドロームを求め、演算用のRSシンドロームから減算してRSシンドロームの状態をロールバックすることで、反復訂正後に再度フレーム収集を可能としている。
第1の実施形態に比べて、本実施形態によれば、ECC訂正が成功した対象ECCフレームについてのRSシンドロームが格納するためのメモリM1が不要となり、半導体装置の回路規模を小さくすることができる。
従って、本実施形態によれば、第1の実施形態における、ロールバック用のRSシンドロームを格納するメモリM1を必要とせずにフレーム収集および反復訂正を繰り返し行って、誤り訂正能力を高めた半導体装置及び半導体記憶装置を実現することができる。
以上のように上述した各実施形態によれば、誤り訂正能力を高めた半導体装置及び半導体記憶装置を提供することができる。
特に、上述した各実施形態によれば、反復訂正後に再度フレーム収集処理を行うことができるので、より誤り訂正ができる可能性が高まる。
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として例示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれると共に、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
1、1A メモリコントローラ、2 不揮発性メモリ、12 プロセッサ、13 ホストインターフェイス、14 ECC回路、14a 誤り符号生成回路、14b 訂正回路、15 メモリインターフェイス、16 内部バス、21 I/Oインターフェイス、22 制御部、23 メモリセルアレイ、24 センスアンプ回路、25 ワード線ドライバ、31 ECC復号処理回路、32 RS復号処理回路、33 RSシンドローム生成回路、34 RSデータ訂正回路。
Claims (14)
- 積符号フレームの第1方向の第1フレームデータに第1復号を行う第1復号回路と、
前記積符号フレームの第2方向の第2フレームデータに第2復号を行う第2復号回路と、
前記第1復号回路において復号された前記第1フレームデータに対して生成されたシンドロームを格納する第1記憶領域と、
前記第1復号回路において前記第1復号に成功した前記第1フレームデータに対して生成された前記シンドロームを格納する第2記憶領域と、
前記第1復号において前記第1復号に失敗した前記第1フレームデータを復号訂正不能フレームデータとして格納する第3記憶領域と、
を有し、
前記復号訂正不能フレームデータを収集するフレーム収集処理と、前記フレーム収集処理において収集された前記復号訂正不能フレームデータに前記第2復号を行う反復訂正処理を実行し、
前記フレーム収集処理では、前記第1フレームデータに対して前記第1復号を行い、前記第1復号に成功したときは前記第1復号に成功した前記第1フレームデータに対して前記シンドロームを生成して前記第2記憶領域に格納すると共に、前記第1復号に成功したあるいは失敗したに関わりなく前記第1フレームデータに対して生成された前記シンドロームを前記第1記憶領域に格納し、
前記反復訂正処理では、前記復号訂正不能フレームデータに対して前記第1記憶領域の前記シンドロームを用いて前記第2復号によるデータ訂正を行い、前記データ訂正により訂正された前記復号訂正不能フレームデータに対して前記第1復号を行い、前記復号訂正不能フレームデータに対する前記第1復号が成功したときは、前記第3記憶領域の前記復号訂正不能フレームデータを更新すると共に、前記復号訂正不能フレームデータに対する前記シンドローム生成を行い前記第1記憶領域及び前記第2記憶領域を更新し、
前記反復訂正処理後に前記フレーム収集処理を行うとき、前記第2記憶領域のデータを前記第1記憶領域にコピーする、
半導体装置。 - 前記第1復号は、ビット単位で誤り訂正を行い、
前記第2復号は、シンボル単位で誤り訂正を行う、
請求項1に記載の半導体装置。 - 前記第1復号は、前記ビット単位で誤り訂正を行うLDPC復号である、請求項2に記載の半導体装置。
- 前記第2復号は、前記シンボル単位で誤り訂正を行うリード・ソロモン符号である、請求項2に記載の半導体装置。
- 前記第1記憶領域及び前記第2記憶領域に格納される前記シンドロームは、前記リード・ソロモン復号のシンドロームである、請求項4に記載の半導体装置。
- 前記積符号フレームが記憶された記憶装置からのデータを読み出すためのインターフェイス回路をさらに有し、
前記第1復号回路及び前記第2復号回路は、それぞれ前記インターフェイス回路を介して前記記憶装置から読み出された前記積符号フレームに対して前記第1復号及び前記第2復号を行う、請求項1に記載の半導体装置。 - 請求項6に記載の半導体装置と、請求項6に記載の前記記憶装置とを含む、半導体記憶装置。
- 積符号フレームの第1方向の第1フレームデータに第1復号を行う第1復号回路と、
前記積符号フレームの第2方向の第2フレームデータに第2復号を行う第2復号回路と、
前記第1復号回路において復号された前記第1フレームデータに対して生成されたシンドロームを格納する第1記憶領域と、
前記第1復号において前記第1復号に失敗した前記第1フレームデータを復号訂正不能フレームデータとして格納する第3記憶領域と、
を有し、
前記復号訂正不能フレームデータを収集するフレーム収集処理と、前記フレーム収集処理において収集された前記復号訂正不能フレームデータに前記第2復号を行う反復訂正処理を実行し、
前記フレーム収集処理では、前記第1フレームデータに対して前記第1復号を行い、前記第1復号に成功したあるいは失敗したに関わりなく前記第1フレームデータに対して生成された前記シンドロームを前記第1記憶領域に格納し、
前記反復訂正処理では、前記復号訂正不能フレームデータに対して前記第1記憶領域の前記シンドロームを用いて前記第2復号によるデータ訂正を行い、前記データ訂正により訂正された前記復号訂正不能フレームデータに対して前記第1復号を行い、前記復号訂正不能フレームデータに対する前記第1復号が成功したときは、前記第3記憶領域の前記復号訂正不能フレームデータを更新すると共に、前記復号訂正不能フレームデータに対する前記シンドローム生成を行い、前記第1記憶領域を更新し、
前記反復訂正処理後に前記フレーム収集処理を行うとき、前記第1復号が失敗した前記復号訂正不能フレームデータに対して生成されたシンドロームを前記第1記憶領域に格納された前記シンドロームから減算して前記第1記憶領域を更新する、
半導体装置。 - 前記第1復号は、ビット単位で誤り訂正を行い、
前記第2復号は、シンボル単位で誤り訂正を行う、
請求項8に記載の半導体装置。 - 前記第1復号は、前記ビット単位で誤り訂正を行うLDPC復号である、請求項9に記載の半導体装置。
- 前記第2復号は、前記シンボル単位で誤り訂正を行うリード・ソロモン符号である、請求項9に記載の半導体装置。
- 前記第1記憶領域に格納される前記シンドロームは、前記リード・ソロモン復号のシンドロームである、請求項11に記載の半導体装置。
- 前記積符号フレームが記憶された記憶装置からのデータを読み出すためのインターフェイス回路をさらに有し、
前記第1復号回路及び前記第2復号回路は、それぞれ前記インターフェイス回路を介して前記記憶装置から読み出された前記積符号フレームに対して前記第1復号及び前記第2復号を行う、請求項8に記載の半導体装置。 - 請求項13に記載の半導体装置と、請求項13に記載の前記記憶装置とを含む、半導体記憶装置。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2020046798A JP2021150733A (ja) | 2020-03-17 | 2020-03-17 | 半導体装置及び半導体記憶装置 |
US17/117,492 US11194658B2 (en) | 2020-03-17 | 2020-12-10 | Semiconductor device and semiconductor storage device |
TW109144253A TWI747663B (zh) | 2020-03-17 | 2020-12-15 | 半導體裝置及半導體記憶裝置 |
CN202110022656.3A CN113409880B (zh) | 2020-03-17 | 2021-01-08 | 半导体装置以及半导体储存装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2020046798A JP2021150733A (ja) | 2020-03-17 | 2020-03-17 | 半導体装置及び半導体記憶装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2021150733A true JP2021150733A (ja) | 2021-09-27 |
Family
ID=77675861
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2020046798A Pending JP2021150733A (ja) | 2020-03-17 | 2020-03-17 | 半導体装置及び半導体記憶装置 |
Country Status (4)
Country | Link |
---|---|
US (1) | US11194658B2 (ja) |
JP (1) | JP2021150733A (ja) |
CN (1) | CN113409880B (ja) |
TW (1) | TWI747663B (ja) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI807542B (zh) * | 2021-12-17 | 2023-07-01 | 華邦電子股份有限公司 | 記憶體系統 |
Family Cites Families (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7600177B2 (en) | 2005-02-08 | 2009-10-06 | Lsi Corporation | Delta syndrome based iterative Reed-Solomon product code decoder |
JP4598711B2 (ja) | 2006-03-30 | 2010-12-15 | 富士通株式会社 | 誤り訂正装置 |
CN101174839A (zh) * | 2006-10-30 | 2008-05-07 | 富士通株式会社 | 编码装置、解码装置、编码/解码装置及记录/再现装置 |
JP2010152960A (ja) | 2008-12-24 | 2010-07-08 | Toshiba Storage Device Corp | エラー訂正回路及び記憶装置 |
JP2011065599A (ja) * | 2009-09-18 | 2011-03-31 | Toshiba Corp | メモリシステムおよびメモリシステムの制御方法 |
JP5039160B2 (ja) * | 2010-03-02 | 2012-10-03 | 株式会社東芝 | 不揮発性半導体記憶システム |
CN101848051B (zh) * | 2010-05-19 | 2015-04-01 | 中兴通讯股份有限公司 | 一种设备之间进行时钟同步的方法和装置 |
US8924827B2 (en) * | 2012-10-31 | 2014-12-30 | Wipro Limited | Methods and systems for minimizing decoding delay in distributed video coding |
KR20160073834A (ko) * | 2014-12-17 | 2016-06-27 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 메모리 시스템 동작 방법 |
JP2016126813A (ja) * | 2015-01-08 | 2016-07-11 | マイクロン テクノロジー, インク. | 半導体装置 |
US9792176B2 (en) * | 2015-11-13 | 2017-10-17 | Samsung Electronics Co., Ltd. | Method and apparatus for encoding and decoding data in memory system |
US10063258B2 (en) * | 2016-03-04 | 2018-08-28 | Sandisk Technologies Llc | Method and data storage device to estimate a number of errors using convolutional low-density parity-check coding |
US10116333B2 (en) * | 2016-07-29 | 2018-10-30 | Sandisk Technologies Llc | Decoder with parallel decoding paths |
US10498362B2 (en) * | 2016-12-19 | 2019-12-03 | Kabushiki Kaisha Toshiba | Low power error correcting code (ECC) system |
CN109412746B (zh) * | 2017-08-15 | 2021-01-05 | 深圳市海思半导体有限公司 | 数据处理的方法和相关装置 |
KR102415974B1 (ko) * | 2017-12-14 | 2022-07-04 | 삼성전자주식회사 | 에러 정정 장치, 에러 정정 장치의 동작 방법, 그리고 에러 정정 장치를 포함하는 제어기 |
JP2019109806A (ja) * | 2017-12-20 | 2019-07-04 | ルネサスエレクトロニクス株式会社 | データ処理装置及びデータ処理方法 |
KR102475805B1 (ko) * | 2018-08-20 | 2022-12-09 | 에스케이하이닉스 주식회사 | 디코더, 그것의 동작 방법 및 메모리 시스템 |
JP2020046823A (ja) * | 2018-09-18 | 2020-03-26 | キオクシア株式会社 | メモリシステム |
JP2020195007A (ja) * | 2019-05-24 | 2020-12-03 | キオクシア株式会社 | メモリシステム |
-
2020
- 2020-03-17 JP JP2020046798A patent/JP2021150733A/ja active Pending
- 2020-12-10 US US17/117,492 patent/US11194658B2/en active Active
- 2020-12-15 TW TW109144253A patent/TWI747663B/zh active
-
2021
- 2021-01-08 CN CN202110022656.3A patent/CN113409880B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
TW202137230A (zh) | 2021-10-01 |
CN113409880B (zh) | 2023-07-28 |
CN113409880A (zh) | 2021-09-17 |
US11194658B2 (en) | 2021-12-07 |
TWI747663B (zh) | 2021-11-21 |
US20210294696A1 (en) | 2021-09-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4538034B2 (ja) | 半導体記憶装置、及びその制御方法 | |
US9543983B2 (en) | Decoding method, memory storage device and memory control circuit unit | |
US10725863B2 (en) | Memory system and method for operating the same | |
KR101967368B1 (ko) | 반도체 메모리 장치 및 이의 동작 방법 | |
JP2015018451A (ja) | メモリコントローラ、記憶装置およびメモリ制御方法 | |
KR20130027138A (ko) | 에러 정정 방법 및 이를 이용하는 메모리 장치 | |
US10685711B1 (en) | Decoding method, memory controlling circuit unit and memory storage device | |
JP6115740B1 (ja) | 半導体記憶装置 | |
US11487614B2 (en) | Semiconductor storing apparatus and readout method | |
CN113409880B (zh) | 半导体装置以及半导体储存装置 | |
JP2000348497A (ja) | 半導体記憶装置 | |
JP6479638B2 (ja) | ビデオサーバ装置およびデータ書き込み/読み出し方法 | |
JP4582078B2 (ja) | メモリコントローラ及びフラッシュメモリシステム、並びにフラッシュメモリの制御方法 | |
JP4692843B2 (ja) | メモリコントローラ及びフラッシュメモリシステム、並びにフラッシュメモリの制御方法 | |
JP2005011386A (ja) | 誤り訂正装置 | |
JP7438859B2 (ja) | メモリシステムおよび方法 | |
TWI831353B (zh) | 對從複數記憶胞讀取的資料執行錯誤校正的記憶體系統和方法 | |
JP2001202793A (ja) | 半導体記憶装置におけるエラー訂正符号化方法および半導体記憶装置 | |
TWI753814B (zh) | 半導體儲存裝置以及錯誤檢測糾正相關資訊的讀出方法 | |
JP2011243116A (ja) | メモリシステム及びそのデータ転送方法 | |
US11145372B2 (en) | Decoding method, memory controlling circuit unit, and memory storage device | |
US10628259B2 (en) | Bit determining method, memory control circuit unit and memory storage device | |
JP6293846B2 (ja) | 半導体記憶装置 | |
CN116743188A (zh) | 存储***和控制存储***的方法 | |
JP2022023584A (ja) | メモリシステム及び制御方法 |