JP2010033181A - エラー訂正回路、および半導体メモリシステム - Google Patents
エラー訂正回路、および半導体メモリシステム Download PDFInfo
- Publication number
- JP2010033181A JP2010033181A JP2008192565A JP2008192565A JP2010033181A JP 2010033181 A JP2010033181 A JP 2010033181A JP 2008192565 A JP2008192565 A JP 2008192565A JP 2008192565 A JP2008192565 A JP 2008192565A JP 2010033181 A JP2010033181 A JP 2010033181A
- Authority
- JP
- Japan
- Prior art keywords
- error correction
- correction circuit
- parity data
- data
- error
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Withdrawn
Links
Images
Landscapes
- Detection And Correction Of Errors (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Read Only Memory (AREA)
- Error Detection And Correction (AREA)
- For Increasing The Reliability Of Semiconductor Memories (AREA)
Abstract
【課題】効率が良く、かつ信頼性の高いエラー訂正回路を実現する。
【解決手段】エラー訂正回路3は、ECCフレームが、第2のエラー訂正回路3Bの符号化器7Aによる符号化時に複数のデータ列の第1のパリティデータを縮退処理後に分割した分割共有パリティデータを保持し、復号時に第2のエラー訂正回路3Bの復号器8Aによる分割共有パリティデータを合成した合成共有パリティデータと、復号されたECCフレームから符号化器7Aが再生成した再生成共有パリティデータとを比較して、復号器8Aの誤訂正をチェックする。
【選択図】図1
【解決手段】エラー訂正回路3は、ECCフレームが、第2のエラー訂正回路3Bの符号化器7Aによる符号化時に複数のデータ列の第1のパリティデータを縮退処理後に分割した分割共有パリティデータを保持し、復号時に第2のエラー訂正回路3Bの復号器8Aによる分割共有パリティデータを合成した合成共有パリティデータと、復号されたECCフレームから符号化器7Aが再生成した再生成共有パリティデータとを比較して、復号器8Aの誤訂正をチェックする。
【選択図】図1
Description
本発明は、データの符号化および復号を行うエラー訂正回路、およびエラー訂正回路を有する半導体メモリシステムに関し、特にパリティデータを縮退処理するエラー訂正回路、およびパリティデータを縮退処理するエラー訂正回路を有する半導体メモリシステムに関する。
移動体通信やWLAN等の通信分野、地上波または衛星デジタル放送等の放送分野における高速データ送受信および半導体メモリ等のストレージ分野での高密度記録のために、デジタルデータのエラー訂正符号化および復号の効率化に関する開発が盛んに行われている。
ここで、多数の種類がある訂正符号は、ブロック型と非ブロック型に大別することができる。ブロック型はコードの符号化および復号を行うデータのサイズが固定なのに対して、非ブロック型ではサイズが固定ではない。さらに、ブロック型訂正符号は、パリティデータ部とユーザーデータ部が分かれている組織型符号と、分かれていない非組織型符号に分類できる。ここで、ブロック型訂正符号を用いたエラー訂正方式において、符号化および復号を行うデータの単位を、ECC(Error Correcting Code)フレームとよぶ。
これらの訂正符号の中で、古くから知られる符号化方法である低密度パリティ検査符号(Low Density Parity Check codes)(以下、「LDPC符号」という。)が、近年、特に注目されている。
LDPC符号は、R. G. Gallagerにより、1963年に最初に提案されたものであるが、その後、符号長を長くしていくにしたがって、符号性能の理論的限界である、いわゆるシャノンの通信路符号化定理によって与えられるシャノン限界に迫る優れた性能が報告されている。
ここで、従来から広く実用化されているBCH符号やリードソロモン (RS:Reed-Solomon)符号といった代数系のエラー訂正方式は、訂正できるビットエラー率を高くするためには、パリティ部の増大や訂正回路の増大といった問題点が伴うものの、所定数以下の誤りであれば確実に訂正可能なことが数学的に証明されている。
これに対して、確率に基づく反復計算によるエラー訂正方式であるLDPC符号やターボ符号は、その訂正能力自体を明確に定義することが難しく、ビット誤りが、それ程多くないECCフレームに対してもエラー訂正ができないこと、すなわちエラーフレームの出現がまれに存在する。このように、エラー訂正が失敗する比率を、フレームエラー率とよんでいる。確率に基づく反復計算によるエラー訂正方式によるデータの符号化および復号においては、フレームエラー率を小さくすることは可能であるが、フレームエラー率をゼロとすることおよびフレームエラー率を数学的に証明することは非常に困難である。
前述のように、確率に基づく反復計算によるエラー訂正方式であるLDPC符号のフレームエラー率は、解析的に予測することが困難であるため、その確認には主として計算機シミュレーションまたは実機評価により行われている。しかし、例えば、LDPC符号は通常の用途においても、フレームエラー率として10のマイナス10乗以下を求められることもあり、フレームエラー率を計算機シミュレーションで求めようとすると膨大な時間を要することから、LDPC符号の設計およびその検証は非常に困難となっていた。
このLDPC符号の問題点に対して、LDPC符号とBCH符号とを併用したエラー訂正回路(以下、「誤り訂正回路」ともいう。)が知られている。例えば、電波法(昭和二十五年法律第百三十一号)第三十八条の規定に基づく、標準テレビジョン放送等のうちデジタル放送に関する送信の標準方式、別表第三十九号 高度狭帯域伝送デジタル放送のエラー訂正方式(第49条第3項関係)には、エラー訂正外符号としてBCH符号、エラー訂正内符号としてLDPC符号を用いたLDPC符号とBCH符号を併用したエラー訂正回路が定められている。
しかし、LDPC符号とBCH符号とを単純に併用したエラー訂正回路では、LDPC符号と同じデータフレームに対してBCH符号を用いているため、BCHパリティデータの量が増大し効率が良くはないエラー訂正回路であった。
また、LDPC符号とBCH符号とを併用したエラー訂正回路は、LDPC符号のみを用いたエラー訂正回路に比べて、BCH符号のためのエラー訂正回路が付加されるため、回路規模が大きくなってしまっていた。
、電波法(昭和二十五年法律第百三十一号)第三十八条の規定に基づく標準テレビジョン放送等のうちデジタル放送に関する送信の標準方式、別表第三十九号。
、電波法(昭和二十五年法律第百三十一号)第三十八条の規定に基づく標準テレビジョン放送等のうちデジタル放送に関する送信の標準方式、別表第三十九号。
上記事情に鑑みて、本発明はなされたものであり、本発明は、効率が良く、かつ信頼性の高いエラー訂正回路を実現することを目的とする。
本願発明の一態様のエラー訂正回路は、第1のエラー訂正回路と、共有パリティ処理回路と、第2のエラー訂正回路と、エラー訂正チェック回路とを有し、符号化時に、第1のエラー訂正回路は、N個(但し、Nは2以上の整数)の所定長のデータ列に対し、それぞれの第1のパリティデータを生成し、共有パリティ処理回路は、N個の第1のパリティデータを縮退処理し共有パリティデータを生成し、共有パリティデータをN個に分割し、分割した共有パリティデータをそれぞれのデータ列に付与し、N個の第1のECCフレームを生成し、第2のエラー訂正回路は、N個の第1のECCフレームに対し、それぞれの第2のパリティデータを生成し付与し、N個の第2のECCフレームを生成し、復号時に、第2のエラー訂正回路は、N個の第2のECCフレームを復号し、第2のエラー訂正回路が復号した、N個の第2のECCフレームのそれぞれに付加されている分割された共有パリティデータを合成し合成共有パリティデータを生成し、第1のエラー訂正回路は、第2のエラー訂正回路が復号したN個の第2のECCフレームのデータ列から、第1のパリティデータを再生成し、共有パリティ処理回路は、再生成したN個の第1のパリティデータを縮退処理し、再生成共有パリティデータを生成し、エラー訂正チェック回路は、合成共有パリティデータと再生成共有パリティデータとを比較し、第2のエラー訂正回路の復号の誤りを検出することを特徴とする。
本発明によれば、効率が良く、かつ信頼性の高いエラー訂正回路を提供することができる。
<第1の実施の形態>
以下、図面を参照して本発明の第1の実施の形態のエラー訂正回路3、およびエラー訂正回路3を有する半導体メモリシステム1について説明する。
最初に、図1を用いて本実施の形態のエラー訂正回路3を有する半導体メモリシステム1の概略の構成を説明する。図1は、本実施の形態の半導体メモリシステム1の概略の構成を示す構成図である。半導体メモリシステム1は、パソコンまたはデジタルカメラ等のホスト11から受信したデータを記憶し、記憶したデータをホスト11に送信するシステムであり、例えば、NAND型フラッシュメモリ記憶装置であり、または、ホスト11の内部に組み込まれた、いわゆるエンベット型のNAND型フラッシュメモリシステムである。
以下、図面を参照して本発明の第1の実施の形態のエラー訂正回路3、およびエラー訂正回路3を有する半導体メモリシステム1について説明する。
最初に、図1を用いて本実施の形態のエラー訂正回路3を有する半導体メモリシステム1の概略の構成を説明する。図1は、本実施の形態の半導体メモリシステム1の概略の構成を示す構成図である。半導体メモリシステム1は、パソコンまたはデジタルカメラ等のホスト11から受信したデータを記憶し、記憶したデータをホスト11に送信するシステムであり、例えば、NAND型フラッシュメモリ記憶装置であり、または、ホスト11の内部に組み込まれた、いわゆるエンベット型のNAND型フラッシュメモリシステムである。
図1に示すように、半導体メモリシステム1は、メモリアレイ4と半導体メモリコントローラ2とから構成されている。そして、半導体メモリコントローラ2は、CPU6の制御に従い、ホストインターフェイス(I/F)5を介してホスト11とのデータ送受信を、メモリインターフェイス(I/F)10を介してメモリアレイ4とのデータ送受信を行う。そして、半導体メモリコントローラ2内のエラー訂正回路3は、符号化器7Aと復号器8Aとを有する第1のエラー訂正回路3Aと、共有パリティ処理器9と、符号化器7Bと復号器8Bとを有する第2のエラー訂正回路3Bと、復号器8Bの誤訂正をチェックするエラー訂正チェック回路6Aと、を有する。なお、図1において、エラー訂正チェック回路6Aは、エラー訂正回路3の中の回路として表示しているが、半導体メモリコントローラ2内の回路であればエラー訂正回路3ではなく、例えば、CPU6等が誤訂正チェックを行ってもよい。
そして、半導体メモリコントローラ2は、データを一時的に記憶する図示しない一時メモリも有している。また、共有パリティ処理器9は、第1のエラー訂正回路3Aとは別個の独立した回路でなく、第1のエラー訂正回路3Aの一部であってもよい。また、本明細書において、「パリティデータ」、または、単に「パリティ」とは、「パリティ検査ビット」と同意である。
次に、図2および図3を用いて、エラー訂正回路3の符号化時の処理を、より詳細に説明する。図2は、本実施の形態のエラー訂正回路の符号化時の処理の流れを説明するためのフローチャートであり、図3は、本実施の形態のエラー訂正回路3の符号化時の処理の流れを説明するための説明図である。以下、図2のフローチャートに従い、説明する。
<ステップS10>
第1のエラー訂正回路3Aの符号化器7Aは、ホスト11からのユーザーデータを所定長のデータ列、例えば1KBのデータ列として処理する。なお、ここで、データ列とは単にあるデータの集団を意味し、前述のユーザーデータと同意である。そして、例えば図3(A)に示すように、1KBのデータ列に対して第1のパリティデータを生成する。ここで、第1のエラー訂正回路3Aは、代数系の計算によるエラー訂正回路であり、例えば、BCH符号を用いるエラー訂正回路である。
第1のエラー訂正回路3Aの符号化器7Aは、ホスト11からのユーザーデータを所定長のデータ列、例えば1KBのデータ列として処理する。なお、ここで、データ列とは単にあるデータの集団を意味し、前述のユーザーデータと同意である。そして、例えば図3(A)に示すように、1KBのデータ列に対して第1のパリティデータを生成する。ここで、第1のエラー訂正回路3Aは、代数系の計算によるエラー訂正回路であり、例えば、BCH符号を用いるエラー訂正回路である。
<ステップS11>
図3(B)に示すように、共有パリティ処理器9は、N個(但し、Nは2以上の整数)の所定長のデータ列を、1つの処理単位とする。なお、Nは2以上の整数であるが、ここではN=8の例を示している。
図3(B)に示すように、共有パリティ処理器9は、N個(但し、Nは2以上の整数)の所定長のデータ列を、1つの処理単位とする。なお、Nは2以上の整数であるが、ここではN=8の例を示している。
<ステップS12>
図3(C)に示すように、共有パリティ処理器9は、8個の第1のパリティデータを縮退処理し、1個の共有パリティデータ(以下、「CP」ともいう。)を生成する。この共有パリティデータは、8個のECCフレームの復号に用いることができるパリティデータである。後述するように、共有パリティデータは、8分割して8個のECCフレームに付加され、共有されるため、共有パリティデータとよんでいる。
図3(C)に示すように、共有パリティ処理器9は、8個の第1のパリティデータを縮退処理し、1個の共有パリティデータ(以下、「CP」ともいう。)を生成する。この共有パリティデータは、8個のECCフレームの復号に用いることができるパリティデータである。後述するように、共有パリティデータは、8分割して8個のECCフレームに付加され、共有されるため、共有パリティデータとよんでいる。
第1のパリティデータを縮退処理する方法は種々の公知の方法を使用することができる。例えば、ビット単位で排他的論理和をとるガロア体の加算処理により、第1のパリティデータの縮退処理を行うことができる。なお、図3(C)において、○(円)の中に+(加算記号)を書いた演算子はExclusive OR(エクスクルーシブ・オア)、すなわち排他的論理和演算を示している。排他的論理和演算は、基本的な論理演算の1つで、入力が「真」と「偽」の組み合わせならば出力は「真」、それ以外なら出力は「偽」となる演算である。
<ステップS13>
図3(D)に示すように、共有パリティ処理器9は、共有パリティデータを同じサイズの8個の分割共有パリティデータに分割する。なお、分割共有パリティデータと1KBのデータ列と合わせたサイズのデータが第2のECCフレームで扱えれば良いので、分割の仕方は必ずしも等分割でなくても良い。
図3(D)に示すように、共有パリティ処理器9は、共有パリティデータを同じサイズの8個の分割共有パリティデータに分割する。なお、分割共有パリティデータと1KBのデータ列と合わせたサイズのデータが第2のECCフレームで扱えれば良いので、分割の仕方は必ずしも等分割でなくても良い。
<ステップS14>
図3(E)に示すように、共有パリティ処理器9は、8個の分割共有パリティデータを、1個ずつ8個の1KBのデータ列のそれぞれに付与し、8個の第1のECCフレームを生成する。なお、どの分割共有パリティデータを、どのデータ列に付与してもよい。
図3(E)に示すように、共有パリティ処理器9は、8個の分割共有パリティデータを、1個ずつ8個の1KBのデータ列のそれぞれに付与し、8個の第1のECCフレームを生成する。なお、どの分割共有パリティデータを、どのデータ列に付与してもよい。
<ステップS15>
図3(F)に示すように、第2のエラー訂正回路3Bの符号化器7Aは、8個の第1のECCフレームに対して、それぞれの第2のパリティデータを生成し、それぞれの第1のECCフレームにそれぞれの第2のパリティデータを、さらに付与して、8個の第2のECCフレームを生成する。ここで、第2のエラー訂正回路3Bは、確率に基づく反復計算によるエラー訂正回路であり、例えばLDPC符号を用いるエラー訂正回路である。
図3(F)に示すように、第2のエラー訂正回路3Bの符号化器7Aは、8個の第1のECCフレームに対して、それぞれの第2のパリティデータを生成し、それぞれの第1のECCフレームにそれぞれの第2のパリティデータを、さらに付与して、8個の第2のECCフレームを生成する。ここで、第2のエラー訂正回路3Bは、確率に基づく反復計算によるエラー訂正回路であり、例えばLDPC符号を用いるエラー訂正回路である。
<ステップS16>
図3(G)に示すように、第2のエラー訂正回路3Bの符号化器7Aは、8個の第2のECCフレームを、メモリインターフェイス10に送信する。ユーザーデータは、第2のECCフレームとして、メモリアレイ4に記憶される。
図3(G)に示すように、第2のエラー訂正回路3Bの符号化器7Aは、8個の第2のECCフレームを、メモリインターフェイス10に送信する。ユーザーデータは、第2のECCフレームとして、メモリアレイ4に記憶される。
ここで、図4は、エラー訂正回路における符号時、言い換えれば、符号化モードときのデータの流れを説明するための説明図である。すでに説明したように、入力されたユーザーデータは、フレーム単位で符号化器7Aにて第1のパリティが生成され、第1のパリティは、順に共有パリティ処理器9にて縮退処理され、共有パリティが生成される。なお、図4にはエラー訂正チェック回路6Aは図示していない。
次に、図5および図6を用いて、エラー訂正回路3の復号時、言い換えれば、復号モードのときの処理を説明する。図5は、エラー訂正回路3の復号時の処理の流れを説明するためのフローチャートであり、図6は、エラー訂正回路3の復号時の処理の流れを説明するための説明図である。以下、図5のフローチャートに従い、説明する。なお、図5は、エラーフレームがない場合のフローチャートである。図5における(I)、(II)、(III)は、エラーフレームがあった場合の処理に関するものであり、図8等にて詳述する。
<ステップS20>
図6(A)に示すように、第2のエラー訂正回路3Bの復号器8Bは、8個の第2のECCフレームデータを、メモリインターフェイス10を介してメモリアレイ4から順に受信する。なお、図6では、8個の第2のECCフレームデータを全て処理した後の状態を図示しているが、エラー訂正回路3は、受信した8個の第2のECCフレームを1個ずつ順に処理する。
図6(A)に示すように、第2のエラー訂正回路3Bの復号器8Bは、8個の第2のECCフレームデータを、メモリインターフェイス10を介してメモリアレイ4から順に受信する。なお、図6では、8個の第2のECCフレームデータを全て処理した後の状態を図示しているが、エラー訂正回路3は、受信した8個の第2のECCフレームを1個ずつ順に処理する。
<ステップS21>
エラー訂正回路3は、フレーム番号Nの初期値を0に設定する。
エラー訂正回路3は、フレーム番号Nの初期値を0に設定する。
<ステップS22>
図6(B)に示すように、復号器8Bは、フレーム番号Nの第2のECCフレームを第2のパリティを用いて復号し、第1のECCフレームを生成する。
図6(B)に示すように、復号器8Bは、フレーム番号Nの第2のECCフレームを第2のパリティを用いて復号し、第1のECCフレームを生成する。
<ステップS23>
図6(C)および図6(D)に示すように、復号された第1のフレームの分割共有パリティは、順に合成され、言い換えれば、再構成され、合成CPが生成されていく。
図6(C)および図6(D)に示すように、復号された第1のフレームの分割共有パリティは、順に合成され、言い換えれば、再構成され、合成CPが生成されていく。
<ステップS24、ステップS25>
エラー訂正回路3は、8個の第2のECCフレームの処理が完了するまで、処理を繰り返す。
エラー訂正回路3は、8個の第2のECCフレームの処理が完了するまで、処理を繰り返す。
<ステップS26>
図6(C)および図6(E)に示すように、第1のエラー訂正回路3Aの符号化器7Aは、復号器8Bが復号した第1のECCフレームのユーザーデータを、順に、符号化し、再生成第1のパリティデータを生成する。
図6(C)および図6(E)に示すように、第1のエラー訂正回路3Aの符号化器7Aは、復号器8Bが復号した第1のECCフレームのユーザーデータを、順に、符号化し、再生成第1のパリティデータを生成する。
<ステップS27>
共有パリティ処理器9は、再生成第1のパリティデータを、順に累積加算、すなわち、縮退処理し、再生成CPを生成する。
共有パリティ処理器9は、再生成第1のパリティデータを、順に累積加算、すなわち、縮退処理し、再生成CPを生成する。
<ステップS28〜ステップS30>
図6(F)に示すように、エラー訂正チェック回路6Aは、生成された合成CPおよび再生成CPを比較する。
図6(F)に示すように、エラー訂正チェック回路6Aは、生成された合成CPおよび再生成CPを比較する。
<ステップS31〜ステップS33>
合成CPと再生成CPとが一致していた場合(Yes)には、復号されたユーザーデータが、ホスト11にステップS32において送信される。これに対して、合成CPと再生成CPとが一致していなかった場合(No)には、誤訂正があった旨のエラーコードがステップS33において送信される。
合成CPと再生成CPとが一致していた場合(Yes)には、復号されたユーザーデータが、ホスト11にステップS32において送信される。これに対して、合成CPと再生成CPとが一致していなかった場合(No)には、誤訂正があった旨のエラーコードがステップS33において送信される。
ここで、図7は、上記で説明したエラー訂正回路3の復号のときのタイミングチャートである。なお、タイミングチャートにおいては、簡略化するために各フレームの処理時間等を全て同じに図示している。
次に、図8および図9を用いて、復号器8Bの復号において、エラーフレームがあった場合のエラー訂正回路3の処理について説明する。図8は、エラーフレームがあった場合のエラー訂正回路3の復号時の処理の流れを説明するためのフローチャートであり、図9は、エラーフレームがあった場合のエラー訂正回路3の復号時の処理の流れを説明するための説明図である。以下、図8のフローチャートに従い、説明する。
<ステップS40>
図5のステップS24が完了すると、復号器8Bからエラーフレームの有無が第1の誤り訂正回路3Aに送信される。エラーフレームがなかった場合(No)には、図5のステップS26からの処理が行われる。エラーフレームがあった場合(Yes)には、ステップS41でエラーフレームの個数が確認される。
図5のステップS24が完了すると、復号器8Bからエラーフレームの有無が第1の誤り訂正回路3Aに送信される。エラーフレームがなかった場合(No)には、図5のステップS26からの処理が行われる。エラーフレームがあった場合(Yes)には、ステップS41でエラーフレームの個数が確認される。
<ステップS41>
エラー訂正回路3は、N個の第2のECCフレームのうち、エラーフレームが1個だけの場合(Yes)は、Nの数によらず、後述するエラーフレームを復号するための訂正用パリティデータを再生成できる。図9では、エラーフレームがフレーム7の場合を例に説明する。エラーフレームが2個以上あった場合(No)には、エラー訂正回路3は、ステップS56にて、エラーコードを送信し処理を終了する。
エラー訂正回路3は、N個の第2のECCフレームのうち、エラーフレームが1個だけの場合(Yes)は、Nの数によらず、後述するエラーフレームを復号するための訂正用パリティデータを再生成できる。図9では、エラーフレームがフレーム7の場合を例に説明する。エラーフレームが2個以上あった場合(No)には、エラー訂正回路3は、ステップS56にて、エラーコードを送信し処理を終了する。
<ステップS42〜ステップS44>
エラーフレームの番号Mを取得した第1の誤り訂正回路3Aは、再び、8個の第2のECCフレームを順に読み込む。
エラーフレームの番号Mを取得した第1の誤り訂正回路3Aは、再び、8個の第2のECCフレームを順に読み込む。
<ステップS45〜ステップS48>
図9(E)に示すように、第1のエラー訂正回路3Aの符号化器7Aは、エラーフレーム以外の第2のECCフレームからは、再び第1のパリティデータを生成する。共有パリティ処理器9は、再生成された第1のパリティデータを累積加算する。
図9(E)に示すように、第1のエラー訂正回路3Aの符号化器7Aは、エラーフレーム以外の第2のECCフレームからは、再び第1のパリティデータを生成する。共有パリティ処理器9は、再生成された第1のパリティデータを累積加算する。
<ステップS45、ステップS48>
第1のエラー訂正回路3Aは、エラーフレームであるM番目の第2のECCフレームの場合には、動作モードを符号化モードから復号モードに切り替え、復号器8Aによる復号処理、言い換えれば、シンドローム生成処理を開始する。すなわち、復号器8Aは、復号器8Bが復号できなかった第2のECCフレームのユーザーデータの処理を開始する。
第1のエラー訂正回路3Aは、エラーフレームであるM番目の第2のECCフレームの場合には、動作モードを符号化モードから復号モードに切り替え、復号器8Aによる復号処理、言い換えれば、シンドローム生成処理を開始する。すなわち、復号器8Aは、復号器8Bが復号できなかった第2のECCフレームのユーザーデータの処理を開始する。
<ステップS49、ステップS50>
エラー訂正回路3は、8個の第2のECCフレームの処理が完了するまで、S44からの処理を継続する。
エラー訂正回路3は、8個の第2のECCフレームの処理が完了するまで、S44からの処理を継続する。
<ステップS49、ステップS51、ステップS52>
図9(F)に示すように、共有パリティ処理器9は、合成共有パリティデータと、7個の再生成第1のパリティデータとの、縮退処理の逆演算を行い、エラーフレームであるM番目の第2のECCフレームの訂正用の第1のパリティデータを生成する。
図9(F)に示すように、共有パリティ処理器9は、合成共有パリティデータと、7個の再生成第1のパリティデータとの、縮退処理の逆演算を行い、エラーフレームであるM番目の第2のECCフレームの訂正用の第1のパリティデータを生成する。
<ステップS53>
第1のエラー訂正回路3Aの復号器8Aは、訂正用の第1のパリティデータにより、M番目の第2のECCフレームのユーザーデータを復号する。
第1のエラー訂正回路3Aの復号器8Aは、訂正用の第1のパリティデータにより、M番目の第2のECCフレームのユーザーデータを復号する。
<ステップS54〜ステップS56>
訂正用の第1のパリティデータを用いて、エラーフレームを復号することができた場合(Yes)は、エラー訂正回路3は、ステップS55において、復号された8KBのユーザーデータ(データ列)を、ホストインターフェイス5を介して、ホストに送信する。なお、訂正用の第1のパリティデータを用いても、第1のECCフレーム7を復号することができないことは極めてまれであるが、その場合(No)は、エラー訂正回路3は、ステップS56において、エラーコードを出力する。
訂正用の第1のパリティデータを用いて、エラーフレームを復号することができた場合(Yes)は、エラー訂正回路3は、ステップS55において、復号された8KBのユーザーデータ(データ列)を、ホストインターフェイス5を介して、ホストに送信する。なお、訂正用の第1のパリティデータを用いても、第1のECCフレーム7を復号することができないことは極めてまれであるが、その場合(No)は、エラー訂正回路3は、ステップS56において、エラーコードを出力する。
以上の説明のように、本実施の形態のエラー訂正回路3は、効率の良いエラー訂正回路である。すなわち、従来のLDPC/BCH併用エラー訂正回路では、BCHエラー訂正回路のECCフレームサイズは、LDPCエラー訂正回路のECCフレーム数個分の大きさになるが、本実施の形態のエラー訂正回路3では、BCHエラー訂正回路のECCフレームサイズは、LDPCエラー訂正回路のECCフレームと同じサイズで構成できる。なお、BCHエラー訂正回路のサイズも、このECCフレームのサイズに比例するため、本実施の形態のエラー訂正回路3のBCHエラー訂正回路のサイズは、従来のLDPC/BCH併用エラー訂正回路のBCHエラー訂正回路のサイズに比べて小さい。
また、本実施の形態のエラー訂正回路3のBCHパリティデータ格納サイズは、縮退処理を行わないで、全ての第1のパリティをそのまま保持するエラー訂正回路に比べて、縮小することができる。
さらに、エラー訂正チェック回路6Aが、合成共有パリティデータと再生成共有パリティデータとを比較することで、第2のエラー訂正回路の前記復号の誤りを検出することができるために、エラー訂正回路3は信頼性の高い復号が可能である。すなわち、エラー訂正回路3は、処理効率が良く、かつ信頼性の高いエラー訂正回路である。
また、エラー訂正回路3とNAND型フラッシュメモリとを有する半導体メモリシステム1は、電気的にデータの書き換えが可能で、かつ電源を切った状態でもデータを保持することができる不揮発性のメモリシステムであり、データ処理効率が良くかつ信頼性の高い半導体メモリシステムである。
ここで、図10は、本実施の形態のエラー訂正回路における復号のタイミングチャートであり、図11は、本実施の形態のエラー訂正回路3におけるエラーフレーム出現時の復号動作を説明するための説明図を示す。
<第2の実施の形態>
次に、図12から図16を参照して本発明の第2の実施の形態のエラー訂正回路103、およびエラー訂正回路103を有する半導体メモリシステム101について説明する。図12は本実施の形態のエラー訂正回路における復号のタイミングチャートであり、図13および図14は、本実施の形態のエラー訂正回路の復号時の処理の流れを説明するためのフローチャートである。なお、半導体メモリシステム101の基本的構成は、図1に示した半導体メモリシステム1と同じであり、エラー訂正回路103はエラー訂正回路3と類似しているため、同じ構成要素には同じ符号を付し説明は省略する。
次に、図12から図16を参照して本発明の第2の実施の形態のエラー訂正回路103、およびエラー訂正回路103を有する半導体メモリシステム101について説明する。図12は本実施の形態のエラー訂正回路における復号のタイミングチャートであり、図13および図14は、本実施の形態のエラー訂正回路の復号時の処理の流れを説明するためのフローチャートである。なお、半導体メモリシステム101の基本的構成は、図1に示した半導体メモリシステム1と同じであり、エラー訂正回路103はエラー訂正回路3と類似しているため、同じ構成要素には同じ符号を付し説明は省略する。
図10に示したように、第1の実施の形態のエラー訂正回路3では、第2のエラー訂正回路3Bによる復号時にエラーフレームが出現したというフレームエラー情報Aが、第1のエラー訂正回路3Aに送信されるのは、8個の第2のECCフレームを全て復号した後であった。このため、この時点では、符号化器7Aにより再生成された第1のパリティは、第2のエラー訂正回路3Bの復号誤り検出を行うために、共有パリティ処理器9により処理が行われ、再生成共有パリティとなっている。しかし、この再生成共有パリティは誤りのあるため、破棄される。このため、半導体メモリシステム1では、第1のエラー訂正回路3Aの符号化器7Aは、8個の第2のフレームデータを再び読み込み、順に、それぞれの第1のパリティデータを再び生成し、共有パリティ処理器9に送信する必要があった。
これに対して、図12に示すように、本実施の形態のエラー訂正回路103では、第2のエラー訂正回路3Bの復号器8Bが一の第2のECCフレームを復号したときに、当該第2のECCフレームがエラーフレームであった場合には、直ちに、第1のエラー訂正回路3Aにエラーフレームであったというフレームエラー情報Bが送信される。なお、図10および図12では2番目のフレーム1がエラーフレームの場合を示している。
そして、第1のエラー訂正回路3Aは、エラーフレームであった第2のECCフレームに対しては、符号化器7Aによる第1のパリティデータの再生成処理を行わず、復号器8Aによる復号を開始する。このため、エラー訂正回路103では、エラーフレームの訂正用パリティによる復号が高速に行われる。
以下、図13および図14を用いて、エラー訂正回路103の処理の流れを説明する
<ステップS60>
エラー訂正回路103は、フレーム番号Nの初期値を0に設定する。
<ステップS60>
エラー訂正回路103は、フレーム番号Nの初期値を0に設定する。
<ステップS61>
第2のエラー訂正回路3Bの復号器8Bは、8個の第2のECCフレームデータを、メモリインターフェイス10を介してメモリアレイ4から受信する。
第2のエラー訂正回路3Bの復号器8Bは、8個の第2のECCフレームデータを、メモリインターフェイス10を介してメモリアレイ4から受信する。
<ステップS62>
復号器8Bは、フレーム番号Nの第2のECCフレームを第2のパリティを用いて復号し、第1のECCフレームを生成する。
復号器8Bは、フレーム番号Nの第2のECCフレームを第2のパリティを用いて復号し、第1のECCフレームを生成する。
<ステップS63>
復号器8Bが、全ての第2のECCフレームを正常に復号できた(Yes)場合の処理の流れ(ステップS64〜ステップS74)は、図5に示した第1の実施の形態の誤り訂正回路3と同じである。
復号器8Bが、全ての第2のECCフレームを正常に復号できた(Yes)場合の処理の流れ(ステップS64〜ステップS74)は、図5に示した第1の実施の形態の誤り訂正回路3と同じである。
これに対して、復号器8Bが、N番目の第2のECCフレームを正常に復号できなかった場合、すなわち、エラーフレームであった(Yes)場合には、(IV)からの図14に示す処理が行われる。
<ステップS80>
エラーフレームであっても、その分割共有パリティは、合成CPの生成に用いられる。
エラーフレームであっても、その分割共有パリティは、合成CPの生成に用いられる。
<ステップS81>
エラーフレームの場合、第1の誤り訂正回路3Aは、符号化モードから復号モードに切り替わる。そして、復号器8Aはエラーフレームの復号を開始する。すなわち、復号器8Aは、エラーフレームのユーザーデータ、言い換えれば、復号器8Bが復号できなかったユーザーデータを取得する。この段階では復号器8Aの処理は完了していない。
エラーフレームの場合、第1の誤り訂正回路3Aは、符号化モードから復号モードに切り替わる。そして、復号器8Aはエラーフレームの復号を開始する。すなわち、復号器8Aは、エラーフレームのユーザーデータ、言い換えれば、復号器8Bが復号できなかったユーザーデータを取得する。この段階では復号器8Aの処理は完了していない。
<ステップS82〜S85>
復号器8Bによる、第2のECCフレームの復号において、2個目のエラーフレームが出現した場合(S85、Yes)には、誤り訂正回路3はステップS95でエラーコードを送信する。
復号器8Bによる、第2のECCフレームの復号において、2個目のエラーフレームが出現した場合(S85、Yes)には、誤り訂正回路3はステップS95でエラーコードを送信する。
<ステップS86〜S91>
エラーフレームが1個だけだった場合には、共有パリティ処理器9は、合成共有パリティデータと、7個の再生成第1のパリティデータとを用い、エラーフレームの訂正用の第1のパリティデータを生成する。
エラーフレームが1個だけだった場合には、共有パリティ処理器9は、合成共有パリティデータと、7個の再生成第1のパリティデータとを用い、エラーフレームの訂正用の第1のパリティデータを生成する。
<ステップS92>
第1のエラー訂正回路3Aの復号器8Aは、ステップ81で行った復号の残りの処理を行い、訂正用の第1のパリティデータを用いて、エラーフレームのユーザーデータを復号する。
第1のエラー訂正回路3Aの復号器8Aは、ステップ81で行った復号の残りの処理を行い、訂正用の第1のパリティデータを用いて、エラーフレームのユーザーデータを復号する。
<ステップS93〜ステップS95>
訂正用の第1のパリティデータを用いて、エラーフレームを復号することができた場合(Yes)は、エラー訂正回路103は、ステップS94において、復号された8KBのユーザーデータ(データ列)を、ホストインターフェイス5を介して、ホストに送信する。なお、訂正用の第1のパリティデータを用いても、第1のECCフレーム7を復号することができないことは極めてまれであるが、その場合(No)は、エラー訂正回路103は、ステップS95において、エラーコードを出力する。
訂正用の第1のパリティデータを用いて、エラーフレームを復号することができた場合(Yes)は、エラー訂正回路103は、ステップS94において、復号された8KBのユーザーデータ(データ列)を、ホストインターフェイス5を介して、ホストに送信する。なお、訂正用の第1のパリティデータを用いても、第1のECCフレーム7を復号することができないことは極めてまれであるが、その場合(No)は、エラー訂正回路103は、ステップS95において、エラーコードを出力する。
ここで、図15および図16は、本実施の形態のエラー訂正回路の処理の流れを説明するための説明図であり、図15はエラーフレームが出現しなかったときを、図16はエラーフレームが出現したときの説明図である。
エラー訂正回路103では、第2のエラー訂正回路3Bの復号器8Bが正常に復号できないエラーフレームがあっても、第1のエラー訂正回路3Aは、8個の第2のECCフレームデータを、再読み込みをする必要がない。このため、エラー訂正回路103は、エラー訂正回路3が有する効果に加えて、エラー訂正回路3よりも、高速に効率良く処理が可能である。
また、エラー訂正回路103を有する半導体メモリシステム101は、データ処理効率が良くかつ信頼性の高い半導体メモリシステムである。
本発明は、上述した実施の形態に限定されるものではなく、本発明の要旨を変えない範囲において、種々の変更、改変等が可能である。
1…半導体メモリシステム、2…半導体メモリコントローラ、3A…第1のエラー訂正回路、3B…第2のエラー訂正回路、4…メモリアレイ、5…ホストインターフェイス、6A…エラー訂正チェック回路、7A…第1の符号化器、7B…第2の符号化器、8A…第1の復号器、8B…第2の復号器、9…共有パリティ処理器、10…メモリインターフェイス、101…半導体メモリシステム、103…エラー訂正回路
Claims (5)
- 第1のエラー訂正回路と、共有パリティ処理回路と、第2のエラー訂正回路と、エラー訂正チェック回路とを有し、
符号化時に、
前記第1のエラー訂正回路は、N個(但し、Nは2以上の整数)の所定長のデータ列に対し、それぞれの第1のパリティデータを生成し、
前記共有パリティ処理回路は、N個の前記第1のパリティデータを縮退処理し共有パリティデータを生成し、
前記共有パリティデータをN個に分割し、分割した前記共有パリティデータをそれぞれの前記データ列に付与し、N個の第1のECCフレームを生成し、
前記第2のエラー訂正回路は、前記N個の第1のECCフレームに対し、それぞれの第2のパリティデータを生成し付与し、N個の第2のECCフレームを生成し、
復号時に、
前記第2のエラー訂正回路は、前記N個の第2のECCフレームを復号し、
前記第2のエラー訂正回路が復号した、前記N個の第2のECCフレームのそれぞれに付加されている分割された前記共有パリティデータを合成し合成共有パリティデータを生成し、
前記第1のエラー訂正回路は、前記第2のエラー訂正回路が復号した前記N個の第2のECCフレームのデータ列から、第1のパリティデータを再生成し、
前記共有パリティ処理回路は、再生成したN個の前記第1のパリティデータを縮退処理し、再生成共有パリティデータを生成し、
前記エラー訂正チェック回路は、前記合成共有パリティデータと前記再生成共有パリティデータとを比較し、前記第2のエラー訂正回路の前記復号の誤りを検出することを特徴とするエラー訂正回路。 - 復号時に、
一の前記第2のECCフレームがエラーフレームの場合、前記第1のエラー訂正回路は、前記一のエラーフレームの前記データ列からは前記第1のパリティデータを再生成せず
前記共有パリティ処理回路は、前記合成共有パリティデータと、前記第1のエラー訂正回路が前記エラーフレームを除く前記データ列から再生成した前記第1のパリティデータと、から前記縮退処理の逆演算により、前記エラーフレームの第1のパリティデータを再生成し、
第1のエラー訂正回路は、第1のパリティデータにより、前記エラーフレームの復号を行うことを特徴とするエラー訂正回路。 - 前記縮退処理が、ビット単位で排他的論理和をとるガロア体の加算処理であることを特徴とする請求項1または請求項2に記載のエラー訂正回路。
- 前記第1のエラー訂正回路がBCH符号によるエラー訂正回路であり、前記第2のエラー訂正回路がLDPC符号によるエラー訂正回路であることを特徴とする請求項1から請求項3のいずれか1項に記載のエラー訂正回路。
- 請求項1から請求項4のいずれか1項に記載のエラー訂正回路と、NAND型フラッシュメモリからなるメモリアレイと、を有することを特徴とする半導体メモリシステム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008192565A JP2010033181A (ja) | 2008-07-25 | 2008-07-25 | エラー訂正回路、および半導体メモリシステム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008192565A JP2010033181A (ja) | 2008-07-25 | 2008-07-25 | エラー訂正回路、および半導体メモリシステム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2010033181A true JP2010033181A (ja) | 2010-02-12 |
Family
ID=41737609
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2008192565A Withdrawn JP2010033181A (ja) | 2008-07-25 | 2008-07-25 | エラー訂正回路、および半導体メモリシステム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2010033181A (ja) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101457192B1 (ko) | 2012-12-03 | 2014-10-31 | 서울대학교산학협력단 | 오류정정 회로, 이를 포함하는 비휘발성 메모리 장치 및 오류정정 방법 |
CN111989746A (zh) * | 2018-04-20 | 2020-11-24 | 美光科技公司 | 使用阶层式解码器的误差校正 |
CN112527391A (zh) * | 2019-09-19 | 2021-03-19 | 铠侠股份有限公司 | 存储系统 |
-
2008
- 2008-07-25 JP JP2008192565A patent/JP2010033181A/ja not_active Withdrawn
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101457192B1 (ko) | 2012-12-03 | 2014-10-31 | 서울대학교산학협력단 | 오류정정 회로, 이를 포함하는 비휘발성 메모리 장치 및 오류정정 방법 |
CN111989746A (zh) * | 2018-04-20 | 2020-11-24 | 美光科技公司 | 使用阶层式解码器的误差校正 |
CN112527391A (zh) * | 2019-09-19 | 2021-03-19 | 铠侠股份有限公司 | 存储系统 |
CN112527391B (zh) * | 2019-09-19 | 2023-08-29 | 铠侠股份有限公司 | 存储系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8448050B2 (en) | Memory system and control method for the same | |
US10146482B2 (en) | Global error recovery system | |
EP2348640B1 (en) | Systematic encoding of chain reaction codes | |
US10439649B2 (en) | Data dependency mitigation in decoder architecture for generalized product codes for flash storage | |
US7418644B2 (en) | System for error correction coding and decoding | |
US10484020B2 (en) | System and method for parallel decoding of codewords sharing common data | |
US8549382B2 (en) | Storage drive with LDPC coding | |
KR101919990B1 (ko) | 데이터 처리 시스템 및 그것의 에러 정정 코드 처리 방법 | |
US9654147B2 (en) | Concatenated error correction device | |
US10498366B2 (en) | Data dependency mitigation in parallel decoders for flash storage | |
US10848184B2 (en) | Method for controlling storage device with aid of error correction and associated apparatus | |
US11016844B2 (en) | Error correction code structure | |
US9548761B2 (en) | Coding and decoding of error correcting codes | |
US9960788B2 (en) | Memory controller, semiconductor memory device, and control method for semiconductor memory device | |
US10200066B2 (en) | Code reconstruction scheme for multiple code rate TPC decoder | |
US11323138B1 (en) | Reed-Solomon code soft-decision decoding method and device | |
US10326477B2 (en) | Techniques for miscorrection detection for constituent codewords in product codes | |
JP2010033181A (ja) | エラー訂正回路、および半導体メモリシステム | |
US20180122494A1 (en) | Raid decoding architecture with reduced bandwidth | |
US9252815B2 (en) | Extension of product codes with applications to tape and parallel channels | |
US20150200686A1 (en) | Encoding device, decoding device, and operating method thereof | |
US20150256204A1 (en) | Memory controller, storage device and memory control method | |
US8627167B1 (en) | Methods and apparatus for providing multi-layered coding for memory devices | |
KR102007163B1 (ko) | 인코더, 디코더 및 이를 포함하는 반도체 장치 | |
US11258464B1 (en) | Codeword concatenation for correcting errors in data storage devices |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A300 | Withdrawal of application because of no request for examination |
Free format text: JAPANESE INTERMEDIATE CODE: A300 Effective date: 20111004 |