JP2009152781A - エラー訂正回路 - Google Patents
エラー訂正回路 Download PDFInfo
- Publication number
- JP2009152781A JP2009152781A JP2007327702A JP2007327702A JP2009152781A JP 2009152781 A JP2009152781 A JP 2009152781A JP 2007327702 A JP2007327702 A JP 2007327702A JP 2007327702 A JP2007327702 A JP 2007327702A JP 2009152781 A JP2009152781 A JP 2009152781A
- Authority
- JP
- Japan
- Prior art keywords
- error correction
- correction circuit
- error
- parity data
- frame
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Error Detection And Correction (AREA)
Abstract
【課題】、効率の良いエラー訂正回路3を実現する。
【解決回路】エラー訂正回路3は、ECCフレームが、符号化時に複数のデータ列の第1のパリティデータを縮退処理後に分割した分割共有パリティデータを保持し、復号時に分割共有パリティデータとエラーの無いECCフレームから再生成したパリティデータとから、エラーフレームのパリティデータを生成し、復号を行う。
【選択図】図1
【解決回路】エラー訂正回路3は、ECCフレームが、符号化時に複数のデータ列の第1のパリティデータを縮退処理後に分割した分割共有パリティデータを保持し、復号時に分割共有パリティデータとエラーの無いECCフレームから再生成したパリティデータとから、エラーフレームのパリティデータを生成し、復号を行う。
【選択図】図1
Description
本発明は、データの符号化および復号を行うエラー訂正回路に関し、特にパリティデータを縮退処理するエラー訂正回路に関する。
移動体通信やWLAN等の通信分野、地上波又は衛星デジタル放送等の放送分野における高速データ送受信および半導体メモリ等のストレージ分野での高密度記録のために、デジタルデータのエラー訂正符号化及び復号の効率化に関する開発が盛んに行われている。
ここで、多数の種類がある訂正符号は、ブロック型と非ブロック型に大別することができる。ブロック型はコードの符号化および復号を行うデータのサイズが固定なのに対して、非ブロック型ではサイズが固定ではない。さらに、ブロック型訂正符号は、パリティデータ部とユーザーデータ部が分かれている組織型符号と、分かれていない非組織型符号に分類できる。ここで、ブロック型訂正符号を用いたエラー訂正方式において、符号化および復号を行うデータの単位を、ECC(Error Correcting Code)フレームと呼ぶ。
これらの訂正符号の中で、古くから知られる符号化方法である低密度パリティ検査符号(Low Density Parity Check codes)(以下、LDPC符号という)が、近年、特に注目されている。
LDPC符号は、R. G. Gallagerにより、1963年に最初に提案されたものであるが、その後、符号長を長くしていくにしたがって、符号性能の理論的限界である、いわゆるシャノン(C. E. Shannon) の通信路符号化定理によって与えられるシャノン限界に迫る優れた性能が報告されている。
ここで、従来から広く実用化されている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フレームを復号する際に1個の第2のECCフレームのみがエラーフレームの場合に、共有パリティ処理回路は、N個の第2のECCフレームから合成した共有パリティデータと、第1のエラー訂正回路がエラーフレームを除く(N−1)個の復号されたデータ列から再生成した(N−1)個の第1のパリティデータと、から縮退処理の逆演算により、エラーフレームの第1のパリティデータを再生成し、第1のエラー訂正回路は、再生成された第1のパリティデータにより、エラーフレームの復号を行うことを特徴とする。
本発明によれば、効率の良いエラー訂正回路を実現することができる。
以下、図面を参照して本発明の実施の形態を説明する。
<実施の形態>
最初に、図1を用いて本発明の実施の形態のエラー訂正回路3を有する半導体メモリ媒体1の概略の構成を説明する。図1は、本発明の実施の形態のエラー訂正回路3を有する半導体メモリ媒体1の概略の構成を示す構成図である。半導体メモリ媒体1は、パソコンまたはデジタルカメラ等のホスト11から受信したデータを記憶し、記憶したデータをホスト11に送信する記憶媒体であり、例えば、NAND型フラッシュメモリ媒体である。
<実施の形態>
最初に、図1を用いて本発明の実施の形態のエラー訂正回路3を有する半導体メモリ媒体1の概略の構成を説明する。図1は、本発明の実施の形態のエラー訂正回路3を有する半導体メモリ媒体1の概略の構成を示す構成図である。半導体メモリ媒体1は、パソコンまたはデジタルカメラ等のホスト11から受信したデータを記憶し、記憶したデータをホスト11に送信する記憶媒体であり、例えば、NAND型フラッシュメモリ媒体である。
半導体メモリ媒体1は、メモリアレイ4と半導体メモリコントローラ2とから構成されている。そして、半導体メモリコントローラ2は、CPU6の制御に従い、ホストインターフェイス(I/F)5を介してホスト11とのデータ送受信を、メモリインターフェイス(I/F)10を介してメモリアレイ4とのデータ送受信を行う。そして、半導体メモリコントローラ2内のエラー訂正回路3は、符号化器7Aと復号器8Aとを有する第1のエラー訂正回路3Aと、共有パリティ処理器9と、符号化器7Bと復号器8Bとを有する第2のエラー訂正回路3Bとを有する。
以下、図1を用いて、エラー訂正回路3の信号の流れについて簡単に説明する。
まず、符号化時には、ホスト11から受信したユーザーデータ(図1(B))に対して第1のエラー訂正回路3Aの符号化器7Aが、第1のパリティデータを生成し、共有パリティ処理器9に送信する(図1(C))。共有パリティ処理器9は、N個の第1のパリティデータを縮退処理し、共有パリティデータを生成し、さらに共有パリティデータをN個に分割し分割共有パリティデータを生成し、ユーザーデータ(図1(A))に付与して、N個の第1のECCフレームを生成し、第2のエラー訂正回路3Bの第2の符号化器7Bに送信する(図1(D))。第2の符号化器7Bは、おのおのの第1のECCフレームに対して第2のパリティデータを生成し、付与し、N個の第2のECCフレームを生成する。そして、ユーザーデータは、第2のECCフレームとして(図1(E))、メモリインターフェイス10を介してメモリアレイ4に記憶される。
復号時には、最初に第2のエラー訂正回路3Bが復号器8Bが、メモリアレイから受信した第2のECCフレームのデータ(図1(F))を第2のパリティデータを用いて復号する。ここで、第2のエラー訂正回路3Bのフレームエラー率は、第1のエラー訂正回路3Aのフレームエラー率より低く、ほんどの第2のECCフレームはエラーの無いECCフレーム、すなわち、正常に復号できるECCフレームである。復号された第2のECCフレームのユーザーデータ(図1(J))は、ホストインターフェイス5を介してホスト11に送信される。
しかし、ごく稀に、正常に復号できない第2のECCフレーム、すなわち、エラーフレームが出現する。その場合、共有パリティ処理器9はエラーフレームの第1のパリティデータを再生成する。そして、第1のエラー訂正回路3Aは、共有パリティ処理器9により再生成された第1のパリティデータにより、エラーフレームのユーザーデータを復号する。
すなわち、第1のエラー訂正回路3Aは、第2のエラー訂正回路3Bにより正常に復号されたデータ列(図1(L))から、それぞれの第1のパリティデータを再生成し、共有パリティ処理器9に送信する(図1(K))。一方、共有パリティ処理器9は、第2のECCフレームデータ(図1(M))から共有パリティデータを合成する。さらに、共有パリティ処理器9は、再生成された第1のパリティデータと、合成した共有パリティデータと、から縮退処理の逆演算により、エラーフレームの第1のパリティデータを再生成し、第1のエラー訂正回路3Aに送信する(図1(H))。第1のエラー訂正回路3Aの復号器8Aは再生成された第1のパリティデータにより、エラーフレームのユーザーデータを復号し、ユーザーデータをホスト11に送信する(図1(I))。
上記説明のように、エラー訂正回路3は、ECCフレームを有するブロック型組織符号を用いたエラー訂正回路であって、ECCフレームが、符号化時に複数のデータ列の第1のパリティデータを縮退処理後に分割した分割共有パリティデータを保持し、復号時に分割共有パリティデータとエラーの無いECCフレームから再生成したパリティデータとから、エラーフレームのパリティデータを生成し、復号を行う。
なお、エラー訂正回路3は、N個(但し、Nは2以上の整数)のデータ列の第1のパリティデータを縮退処理しているために、N個の第2のECCフレームの中で、エラーフレームが1個の場合しかエラーフレームを復号することができない。しかし、第2のエラー訂正回路3Bのフレームエラー率は低く、ほんどの第2のECCフレームはエラーの無いフレームであるため、問題とはならない。
また、エラー訂正回路3の第2のエラー訂正回路3Bが確率に基づく反復計算によるエラー訂正回路であっても、第1のエラー訂正回路3Aが代数系の計算によるエラー訂正回路であれば、実用上問題の無いフレームエラー率であることを保証することが可能である。例えば、第2のエラー訂正回路3BがLDPC符号を用いたエラー訂正回路であっても、そのフレームエラー率が10のマイナス6乗以下であれば、8フレーム中2個のフレームが訂正エラーとなる、すなわちエラーフレームとなる確率は10のマイナス12乗以下となる。言い換えれば、8個のLDPCフレーム中の1個のエラーフレームが第1のエラー訂正回路3Aにより訂正可能なことを数学的に証明すれば、エラー訂正回路3のフレームエラー率が10のマイナス12乗以下であるといえる。なお、LDPC符号を用いた第2のエラー訂正回路3Bのフレームエラー率が10のマイナス6乗以下であることはシミュレーションにより、それほど時間を要しないで確認できる。このため、エラー訂正回路3を用いた場合には、高性能の確率に基づく反復計算によるLDPC符号を使用しつつ、エラー訂正システムの設計およびその検証が可能である。
そして、エラー訂正回路3は、第1のパリティデータの量を小さくしても、フレームエラー率が低く、効率のよいエラー訂正回路であり、かつエラー訂正回路の規模も小さくできる。例えば、第1のエラー訂正回路3AとしてBCH符号を、第2のエラー訂正回路3BとしてLDPC符号と用いたエラー訂正回路3は、LDPC符号とBCH符号を単純に併用した従来のエラー訂正回路に比べて、BCH符号のパリティデータの量を、小さくしても同等以上のフレームエラー率を得ることができ、さらにBCH符号のエラー訂正回路の規模も小さくすることができる。
なお、半導体メモリコントローラ2は、データを一時的に記憶する図示しない一時メモリも有している。また、共有パリティ処理器9は、第1のエラー訂正回路3Aとは別個の独立した回路でなく、第1のエラー訂正回路3Aの一部であってもよい。また、本明細書において、「パリティデータ」、または、単に「パリティ」とは、「パリティ検査ビット」と同意である。
次に、図2および図3を用いて、エラー訂正回路3の符号化時の処理を、より詳細に説明する。図2は、エラー訂正回路3の符号化時の処理の流れを説明するためのフローチャートであり、図3は、エラー訂正回路3の符号化時の処理の流れを説明するための説明図である。
<ステップ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個の共有パリティデータを生成する。この共有パリティデータは、8個のECCフレームの復号に用いることができるパリティデータである。後述するように、共有パリティデータは、8分割して8個のECCフレームに付加され、共有されるため、共有パリティデータと呼んでいる。
図3(C)に示すように、共有パリティ処理器9は、8個の第1のパリティデータを縮退処理し、1個の共有パリティデータを生成する。この共有パリティデータは、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符号を用いるエラー訂正回路である。また、第1のエラー訂正回路のフレームエラー率よりも、第2のエラー訂正回路のフレームエラー率が低い。
図3(F)に示すように、第2のエラー訂正回路3Bの符号化器7Aは、8個の第1のECCフレームに対して、それぞれの第2のパリティデータを生成し、それぞれの第1のECCフレームにそれぞれの第2のパリティデータを、さらに付与して、8個の第2のECCフレームを生成する。ここで、第2のエラー訂正回路3Bは、確率に基づく反復計算によるエラー訂正回路であり、例えばLDPC符号を用いるエラー訂正回路である。また、第1のエラー訂正回路のフレームエラー率よりも、第2のエラー訂正回路のフレームエラー率が低い。
<ステップS16>
図3(F)に示すように、第2のエラー訂正回路3Bの符号化器7Aは、8個の第2のECCフレームを、メモリインターフェイス10に送信する。
図3(F)に示すように、第2のエラー訂正回路3Bの符号化器7Aは、8個の第2のECCフレームを、メモリインターフェイス10に送信する。
次に、図4および図5を用いて、エラー訂正回路3の復号時の処理を、より詳細に、説明する。図4は、エラー訂正回路3の復号時の処理の流れを説明するためのフローチャートであり、図5は、エラー訂正回路3の復号時の処理の流れを説明するための説明図である。
<ステップS20>
図5(A)に示すように、第2のエラー訂正回路3Bの復号器8Bは、8個の第2のECCフレームデータを、メモリインターフェイス10を介してメモリアレイ4から受信する。
図5(A)に示すように、第2のエラー訂正回路3Bの復号器8Bは、8個の第2のECCフレームデータを、メモリインターフェイス10を介してメモリアレイ4から受信する。
<ステップS21>
図5(B)に示すように、復号器8Bは、8個の第2のECCフレームデータを第2のパリティデータにより復号し、8個の第1のECCフレームを生成する。
図5(B)に示すように、復号器8Bは、8個の第2のECCフレームデータを第2のパリティデータにより復号し、8個の第1のECCフレームを生成する。
<ステップS22>
ステップS21で、8個の第2のECCフレームデータが全て、エラーの無いECCフレームであった場合、すなわち、8個の1KBのデータ列が全て復号可能であった(Yes)場合には、エラー訂正回路3は、復号された8KBのデータ列をホストインターフェイス5を介して、ホストに送信する。すなわち、この場合には、第1のエラー訂正回路3Aは復号に使用されない。
ステップS21で、8個の第2のECCフレームデータが全て、エラーの無いECCフレームであった場合、すなわち、8個の1KBのデータ列が全て復号可能であった(Yes)場合には、エラー訂正回路3は、復号された8KBのデータ列をホストインターフェイス5を介して、ホストに送信する。すなわち、この場合には、第1のエラー訂正回路3Aは復号に使用されない。
<ステップS23>
ここで、第2のエラー訂正回路3Bのフレームエラー率は低い。このため、第2のECCフレームを復号する時に、エラーフレームが出現することは稀であるが、ゼロではない。そして、8個の第2のECCフレームのうち、エラーフレームが2個以上出現する(No)場合は、更に稀であるが、その場合にはエラー訂正回路3は、エラー訂正を行うことが出来ない(ステップS24)。
ここで、第2のエラー訂正回路3Bのフレームエラー率は低い。このため、第2のECCフレームを復号する時に、エラーフレームが出現することは稀であるが、ゼロではない。そして、8個の第2のECCフレームのうち、エラーフレームが2個以上出現する(No)場合は、更に稀であるが、その場合にはエラー訂正回路3は、エラー訂正を行うことが出来ない(ステップS24)。
しかし、図5(C)示すように、8個の第2のECCフレームのうち、エラーフレームが1個だけの(Yes)場合、エラー訂正回路3は、第1のエラー訂正回路3Aにより、エラーフレーム、例えば、ユーザーデータ7を有するECCフレームの復号をする。
なお、エラー訂正回路3は、N個の第2のECCフレームのうち、エラーフレームが1個だけの場合は、Nの数によらず、後述するエラーフレームの復号のための第一のパリティデータを再生成できる。
<ステップS25>
図5(D)に示すように、共有パリティ処理器9は、第2のパリティデータにより正常に復号できた7個の分割共有パリティデータと、エラーフレームである第2のECCフレーム7の分割共有パリティデータとから共有パリティデータを合成する。この合成された共有パリティデータを合成共有パリティデータとよぶ。
図5(D)に示すように、共有パリティ処理器9は、第2のパリティデータにより正常に復号できた7個の分割共有パリティデータと、エラーフレームである第2のECCフレーム7の分割共有パリティデータとから共有パリティデータを合成する。この合成された共有パリティデータを合成共有パリティデータとよぶ。
ここで、第2のECCフレーム7の分割共有パリティデータは、エラー訂正がなされていないために、エラーを含んでいる可能性のあるデータであるが、共有パリティデータの一部として使用する。
<ステップS26>
一方、図5(E)に示すように、第1のエラー訂正回路3Aの符号化器7Aは、第2のエラー訂正回路3Bの復号器8Bが第2のパリティデータにより復号した7個の1KBのユーザーデータに対して、再び第1のパリティデータを生成する。この再生成された7個の第1のパリティデータを、再生成第1のパリティデータとよぶ。
一方、図5(E)に示すように、第1のエラー訂正回路3Aの符号化器7Aは、第2のエラー訂正回路3Bの復号器8Bが第2のパリティデータにより復号した7個の1KBのユーザーデータに対して、再び第1のパリティデータを生成する。この再生成された7個の第1のパリティデータを、再生成第1のパリティデータとよぶ。
<ステップS27>
図5(F)に示すように、共有パリティ処理器9は、合成共有パリティデータと、7個の再生成第1のパリティデータとの、縮退処理の逆演算により、エラーフレームの訂正用の第1のパリティデータを生成する。
図5(F)に示すように、共有パリティ処理器9は、合成共有パリティデータと、7個の再生成第1のパリティデータとの、縮退処理の逆演算により、エラーフレームの訂正用の第1のパリティデータを生成する。
<ステップS28>
第1のエラー訂正回路3Aの復号器8Aは、訂正用の第1のパリティデータにより、エラーフレームを復号する。
第1のエラー訂正回路3Aの復号器8Aは、訂正用の第1のパリティデータにより、エラーフレームを復号する。
<ステップS29>
訂正用の第1のパリティデータを用いて、エラーフレームを復号することができた場合(Yes)は、エラー訂正回路3は、復号された8KBのユーザーデータ(データ列)をホストインターフェイス5を介して、ホストに送信する。なお、訂正用の第1のパリティデータを用いても、第1のECCフレーム7を復号することができないことは極めて稀であるが、その場合(No)は、エラー訂正回路3は、エラー訂正を行うことが出来ない(ステップS24)。
訂正用の第1のパリティデータを用いて、エラーフレームを復号することができた場合(Yes)は、エラー訂正回路3は、復号された8KBのユーザーデータ(データ列)をホストインターフェイス5を介して、ホストに送信する。なお、訂正用の第1のパリティデータを用いても、第1のECCフレーム7を復号することができないことは極めて稀であるが、その場合(No)は、エラー訂正回路3は、エラー訂正を行うことが出来ない(ステップS24)。
さらに、図6を用いて、本発明の実施の形態のエラー訂正回路3Cおよび共有パリティ処理器9Cにおける復号の流れを、簡単に説明する。図6は、エラーフレームが1個あった場合の本発明の実施の形態のエラー訂正回路3Cおよび共有パリティ処理器9Cにおける復号の流れを説明するための説明図である。
合成共有パリティと、第1の符号化器7Cによりデータ列から生成した各フレームの再生成パリティとを、共有パリティ処理器9Cにて処理し、訂正用の第1のパリティを生成する。第1の復号化器8Cは、訂正用の第1のパリティを用いてエラーフレームのデータ列を複合し、エラーフレームの訂正データを得ることができる。
本実施の形態のエラー訂正回路3は、効率の良いエラー訂正回路である。すなわち、従来のLDPC/BCH併用エラー訂正回路では、BCHエラー訂正回路のECCフレームサイズは、LDPCエラー訂正回路のECCフレーム数個分の大きさになるが、本実施の形態のエラー訂正回路3では、BCHエラー訂正回路のECCフレームサイズは、LDPCエラー訂正回路のECCフレームと同じサイズで構成できる。なお、BCHエラー訂正回路のサイズも、このECCフレームのサイズに比例するため、本実施の形態のエラー訂正回路3のBCHエラー訂正回路のサイズは、従来のLDPC/BCH併用エラー訂正回路のBCHエラー訂正回路のサイズに比べて小さい。
また、本実施の形態のエラー訂正回路3のBCHパリティデータ格納サイズは、縮退処理を行わないで、全ての第1のパリティをそのまま保持するエラー訂正回路に比べて、縮小することができる。
本発明は、上述した実施の形態に限定されるものではなく、本発明の要旨を変えない範囲において、種々の変更、改変等が可能である。
1…半導体メモリ媒体、2…半導体メモリコントローラ、3、3C…エラー訂正回路、3A…第1のエラー訂正回路、3B…第2のエラー訂正回路、4…メモリアレイ、5…ホストインターフェイス、7A、7B、7C…符号化器、8A、8B、8C…復号器、9、9C…共有パリティ処理器、10…メモリインターフェイス、11…ホスト
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フレームを復号する際に1個の前記第2のECCフレームのみがエラーフレームの場合に、
前記共有パリティ処理回路は、前記N個の第2のECCフレームから合成した共有パリティデータと、前記第1のエラー訂正回路が前記エラーフレームを除く(N−1)個の復号された前記データ列から再生成した(N−1)個の前記第1のパリティデータと、から前記縮退処理の逆演算により、前記エラーフレームの第1のパリティデータを再生成し、
第1のエラー訂正回路は、前記再生成された第1のパリティデータにより、エラーフレームの復号を行うことを特徴とするエラー訂正回路。 - 前記縮退処理が、ビット単位で排他的論理和をとるガロア体の加算処理であることを特徴とする請求項1記載のエラー訂正回路。
- 前記第1のエラー訂正回路のフレームエラー率の特性が前記第2のエラー訂正回路のフレームエラー率の特性が異なることを特徴とする請求項1または請求項2に記載のエラー訂正回路。
- 前記第1のエラー訂正回路が代数系の計算によるエラー訂正回路であり、前記第2のエラー訂正回路が確率に基づく反復計算によるエラー訂正回路であることを特徴とする請求項1から請求項3のいずれか1項に記載のエラー訂正回路。
- 前記第1のエラー訂正回路がBCH符号によるエラー訂正回路であり、前記第2のエラー訂正回路がLDPC符号によるエラー訂正回路であることを特徴とする請求項1から請求項4のいずれか1項に記載のエラー訂正回路。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2007327702A JP2009152781A (ja) | 2007-12-19 | 2007-12-19 | エラー訂正回路 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2007327702A JP2009152781A (ja) | 2007-12-19 | 2007-12-19 | エラー訂正回路 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2009152781A true JP2009152781A (ja) | 2009-07-09 |
Family
ID=40921422
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2007327702A Pending JP2009152781A (ja) | 2007-12-19 | 2007-12-19 | エラー訂正回路 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2009152781A (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11132254B2 (en) | 2018-04-24 | 2021-09-28 | Lapis Semiconductor Co., Ltd. | Semiconductor integrated circuit, storage device, and error correction method |
-
2007
- 2007-12-19 JP JP2007327702A patent/JP2009152781A/ja active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11132254B2 (en) | 2018-04-24 | 2021-09-28 | Lapis Semiconductor Co., Ltd. | Semiconductor integrated circuit, storage device, and error correction method |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8448050B2 (en) | Memory system and control method for the same | |
EP2348640B1 (en) | Systematic encoding of chain reaction codes | |
US10439649B2 (en) | Data dependency mitigation in decoder architecture for generalized product codes for flash storage | |
US10484020B2 (en) | System and method for parallel decoding of codewords sharing common data | |
WO2017194013A1 (zh) | 纠错编码方法及装置 | |
JP2006135980A (ja) | 連結された反復型と代数型の符号化 | |
US10498366B2 (en) | Data dependency mitigation in parallel decoders for flash storage | |
US9654147B2 (en) | Concatenated error correction device | |
WO2010000152A1 (zh) | 一种突发纠错的方法和装置 | |
JP2005522140A (ja) | 硬入力の反復した順方向誤り修正の方法 | |
US9548761B2 (en) | Coding and decoding of error correcting codes | |
US20190028117A1 (en) | Low-complexity ldpc encoder | |
EP3713096B1 (en) | Method and device for decoding staircase code, and storage medium | |
US10200066B2 (en) | Code reconstruction scheme for multiple code rate TPC decoder | |
US8365053B2 (en) | Encoding and decoding data using store and exclusive or operations | |
Emmadi et al. | Half-product codes for flash memory | |
US10326477B2 (en) | Techniques for miscorrection detection for constituent codewords in product codes | |
US9252815B2 (en) | Extension of product codes with applications to tape and parallel channels | |
JP2010033181A (ja) | エラー訂正回路、および半導体メモリシステム | |
JP2009152781A (ja) | エラー訂正回路 | |
US20130198582A1 (en) | Supercharged codes | |
CN108352845B (zh) | 用于对存储数据进行编码的方法以及装置 | |
KR101304570B1 (ko) | 패리티 체크 행렬 생성 방법, 이를 이용한 오류 정정 방법 및 장치, 오류 정정 장치용 디코더 그리고 오류 정정 장치를 포함하는 메모리 및 전자장치 | |
KR102109589B1 (ko) | 고속직렬인터페이스용 송수신 오류 정정기법이 포함된 오버헤드최소화 코딩 기법과 하드웨어 구현 방법 | |
US9009577B1 (en) | Circuitry and method for forward error correction |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A711 | Notification of change in applicant |
Effective date: 20090327 Free format text: JAPANESE INTERMEDIATE CODE: A712 |