JP2001127645A - 誤り訂正方法および誤り訂正装置 - Google Patents
誤り訂正方法および誤り訂正装置Info
- Publication number
- JP2001127645A JP2001127645A JP30262299A JP30262299A JP2001127645A JP 2001127645 A JP2001127645 A JP 2001127645A JP 30262299 A JP30262299 A JP 30262299A JP 30262299 A JP30262299 A JP 30262299A JP 2001127645 A JP2001127645 A JP 2001127645A
- Authority
- JP
- Japan
- Prior art keywords
- syndrome
- code
- cycle
- polynomial
- error correction
- 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.)
- Granted
Links
Classifications
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/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/158—Finite field arithmetic processing
-
- 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/159—Remainder calculation, e.g. for encoding and syndrome calculation
Landscapes
- Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Algebra (AREA)
- General Physics & Mathematics (AREA)
- Pure & Applied Mathematics (AREA)
- Probability & Statistics with Applications (AREA)
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Error Detection And Correction (AREA)
- Detection And Correction Of Errors (AREA)
Abstract
となく直接演算することが可能な、演算の並列度の高
い、高速演算処理の行える誤り訂正方法および誤り訂正
装置を提供する。 【解決手段】 誤り訂正装置50は、演算の並列度に応
じてシンドローム演算回路21を複数備え、各シンドロ
ーム演算回路21は、演算途中のシンドローム演算結果
に次数補正用の係数を乗じるための第二のガロア体乗算
回路25を備える。
Description
び誤り訂正装置に関するもので、特に、インタリーブさ
れた情報データを、デインタリーブすることなくシンド
ローム演算を行い誤り訂正をする誤り訂正方法および装
置に関するものである。
Memory)の誤り訂正処理のうち、シンドローム演算に
ついて図4〜図7を用いて説明する。図4は、オーディ
オデータ(L,Rステレオ信号)に基づいて表わしたC
D−ROM1セクタのデータフォーマットを示す図であ
る。L−CHは左チャネルのデータを、R−CHは右チ
ャネルのデータを、Lは最下位ビット(LSB:Least Sign
ificant Bit)を、Mは最上位ビット(MSB:Most Signifi
cant Bit)を、1で示した上側の3行は1セクタを表わ
す同期パターンを、この1の下の2で示した次の585
行はデータのパターンをそれぞれ示す。
の中の、下位バイトのみを選んで作ったマップであり、
このように下位バイトのみで構成された面を最下位面と
呼ぶ。また上位バイトのみで構成された面は最上位面と
呼ぶ。また、4で示した上側の24列は同期パターンを
除いたヘッダーおよびユーザーデータを、5で示した次
の2列はPパリティを、6で示した次の2列はQパリテ
ィを、それぞれ示す。また最上位面も最下位面も同一の
形態で構成されており、それぞれの面に対し、同じEC
C(Error Check and Correct)が適用される。またP系
列、Q系列と示したが、CD−ROMでは2つの系列に
ついてECCが行われている。
を、行(j)方向に並べ直したものであり、符号長nが
45バイト(j=0から44)からなる符号列が26
(i=0から25)行に渡っていることがわかる。シン
ドロームの演算はi=0の場合、「0」,「44」,
「88」,…という具合に「44」おきに読み出して行
われる。i=1の場合も同様に、「43」,「87」,
「131」,…という具合に「44」おきに読み出して
行う。これは、以下のように表せる。
んだ、即ちインタリーブされたQ系列のデータを、元の
並びに入れ替えて戻すことなく、即ちデインタリーブす
ることなく並列にシンドローム演算し、誤り訂正する方
法として、例えば特開平5−12814号公報では、最
上位面と最下位面は、ECC(Error-Correcting Cod
e)が互いに無関係、つまり独立であるという性質を利
用して、バッファメモリにアドレスを連続させて格納し
ているデータの、各最上位面と最下位面(該特許ではp
age0と1と表記)で、それぞれ行(j)方向に並ん
だ符号列の1番目のデータから順番に1バイトずつ計2
バイトを読み出し、最上位面と最下位面のそれぞれに対
応させて設けた2つのシンドローム演算回路で並列に演
算が行なわれている。
は、上述のようにインタリーブされたデータを、各符号
列の一番目のデータから順に、最上位面と最下位面でそ
れぞれ1バイトずつ計2バイトを読み出し、2つのシン
ドローム演算回路で並列に演算を行うことにより、演算
の高速化を図っているが、更に高速化を図るために演算
の並列度を増すというのは困難であるという問題点があ
った。
来の2バイトに加え、更に後続するアドレスの2バイト
データを読み出すものとすると、読み出されるデータは
「0000L」,「0000M」の他に、「0001
L」,「0001M」が読み出され、計4バイトとな
る。ここで「0000L」,「0000M」は、図6に
示す「0」に相当し符号列i=0の1番目(j=0)の
データであるのに対して、「0001L」,「0001
M」は、図6に示す「1」に相当し符号列i=25の2
番目(j=1)のデータである。
と「0001L」,「0001M」とは演算順序が異な
るため並列に演算処理が行えない。また、「0001
L」,「0001M」のように、符号列の途中のデータ
から演算を開始するとシンドローム演算結果に誤差が生
じてしまう。このため、インタリーブされたデータを元
の並びに戻して、即ちデインタリーブして、シンドロー
ム演算を行なわなければならず、読み出しデータのバイ
ト数を単に増加させるだけでは、シンドロームの並列演
算を行うことはできない。
なされたもので、シンドローム演算回路の並列度に応じ
て読み出した複数バイトのデータをデインタリーブする
ことなく直接演算することが可能な、高速演算処理の行
える誤り訂正方法および誤り訂正装置を提供することを
目的とする。
係る誤り訂正方法は、符号長n(nは正の整数)の、第
0から第(n−1)までの符号語からなる符号列のう
ち、上記符号列の途中の符号語s(1≦s≦n−1)を
演算開始データとし、符号語n−1までのn−s個の符
号語を用いて積和演算を繰り返し、第一の部分シンドロ
ーム多項式を求める第一のステップと、上記第一の部分
シンドローム多項式に、次数補正のための係数を乗算す
ることにより第二の部分シンドローム多項式を求める第
二のステップと、上記第二の部分シンドローム多項式を
元にして、上記符号列の最初の符号語m(m=0)を演
算再開データとし、符号語s−1までのs個の符号語を
用いて積和演算を繰り返し、上記符号列のシンドローム
多項式を求める第三のステップと、を有するものであ
る。
正方法は、上記請求項1に記載の誤り訂正方法におい
て、上記符号列の最初の符号語m(m=0)を演算開始
データとする場合に、符号語n−1までのn個の符号語
を用いて積和演算を繰り返し行うことにより、上記符号
列のシンドローム多項式を求めるものである。
正方法は、請求項1に記載の誤り訂正方法において、上
記符号列の最初の符号語m(m=0)を演算開始データ
とする場合に、上記第一及び第二のステップを実行し
て、上記符号列のシンドローム多項式を求めるものであ
る。
正装置は、符号長n(nは正の整数)の、第0から第
(n−1)までの符号語からなる符号列i(iは0以上
の整数)のうち、符号語s(1≦s≦n−1)を演算開
始データとしてシンドローム演算を開始し、上記符号語
sのシンドローム演算が終了すると、該シンドローム演
算結果に次の符号語s+1を加算した多項式に対してシ
ンドローム演算を行う、というサイクルをn回繰り返す
ことにより、n項からなるシンドローム多項式を求める
シンドローム演算手段を備えた誤り訂正装置において、
上記シンドローム演算手段は、p(1≦p≦n−1)サ
イクル目のシンドローム演算結果と、p+1サイクル目
の符号語とを加算し、p+1項からなる多項式を求める
加算手段と、上記加算手段からの多項式の各項にガロア
体の元αiを乗算し、p+1サイクル目のシンドローム
多項式を求める第一のガロア体乗算手段と、上記第一の
ガロア体乗算回路からのp+1サイクル目のシンドロー
ム多項式を、演算途中結果として格納する演算結果格納
手段と、上記演算結果格納手段からの演算途中結果に次
数補正用の係数を乗算し、部分シンドロームとして出力
する第二のガロア体乗算手段と、上記演算結果格納手段
からの演算途中結果と上記第二のガロア体乗算手段から
の部分シンドロームのうちいずれか一方を選択し、p+
1サイクル目のシンドローム演算結果として上記加算手
段へ出力する次数補正出力選択手段と、を備え、上記次
数補正出力選択手段は、上記符号列の最後の符号語のシ
ンドローム演算を行うn−sサイクル目のときに、上記
第二のガロア体乗算手段からの部分シンドロームを選択
するものである。
正装置は、請求項4記載の誤り訂正装置において、上記
シンドローム演算手段を複数個備え、複数の符号列の符
号語を読み出して、それぞれを対応する符号列用のシン
ドローム演算手段に入力することにより、複数の符号列
のシンドローム多項式演算を並列に行うものである。
正装置は、請求項4または5に記載の誤り訂正装置にお
いて、上記複数の符号列の中で最初に次数補正を行う符
号列の次数補正サイクル信号を発生するカウンタ手段
と、上記次数補正サイクル信号を基準として、上記次数
補正サイクル信号から順次kサイクル(kは正の整数)
ずつ遅延した、複数のシンドローム演算手段の個数h
(hは正の整数)に対応した、h個の遅延信号を発生す
る遅延手段と、を備え、上記遅延手段は、上記各シンド
ローム演算手段が備える上記次数補正出力選択手段へ、
上記遅延信号を、選択信号としてそれぞれ出力すること
により、各々のシンドローム演算手段での演算途中結果
の次数補正を、kサイクルずつ遅らせて実行させるもの
である。
形態1における誤り訂正装置50の構造を説明するため
のブロック図である。誤り訂正装置50は、入力された
シリアルデータ100を同期保護してデスクランブル処
理を施すフォーマットインタフェース10と、フォーマ
ットインタフェース10からの処理後の情報データを格
納するバッファメモリ31と、バッファメモリ31に格
納された情報データに対する誤り訂正を行う誤り訂正部
20と、誤りを訂正したデータを外部装置へ転送するデ
ータ転送回路32と、上記フォーマットインタフェース
10、上記誤り訂正部20、上記データ転送回路32か
らのバッファメモリ31へのアクセス要求を調停してバ
ッファメモリ31への書き込みとバッファメモリ31か
らの読み出しを制御するバッファメモリマネージャ30
と、を有している。
号長n(nは正の整数)の第0から第(n−1)までの
符号語からなる符号列iに対して積和演算を繰り返し、
各符号列毎にシンドローム多項式を求める第一と第二の
シンドローム演算回路21a,21bと、上記第一と第
二のシンドローム演算回路21a,21bのシンドロー
ム演算結果202a,202bからそれぞれの符号列の
誤り位置を算出する誤り位置算出回路27と、上記誤り
位置算出回路27からの誤り位置205と、上記第一及
び第二のシンドローム演算回路21a,21bからのシ
ンドローム演算結果202a,202bとよりそれぞれ
の符号列の誤り数値を求めて各符号列iの誤り訂正を行
う誤り訂正回路28と、を有している。
路21a,21bは、符号列nの途中の第s番目の符号
語s(1≦s≦n−1)を演算開始データとして演算を
開始する。p(1≦p≦n−1)サイクル目のシンドロ
ーム演算結果204として得られるシンドローム多項式
と、符号列iのp+1サイクル目の符号語208とを加
算してp+1項からなる多項式200を求める加算回路
22と、上記加算回路22からの多項式200の各項に
ガロア体の元αiを乗算し、p+1サイクル目のシンド
ローム多項式201を求める第一のガロア体乗算回路2
3と、上記第一のガロア体乗算回路23からのp+1サ
イクル目のシンドローム多項式201を、演算途中結果
として格納する演算結果格納回路24と、上記演算結果
格納回路24からの演算途中結果202a,202bに
次数補正用の係数を乗算し、部分シンドロームとして出
力する第二のガロア体乗算回路25と、上記演算結果格
納回路24からの演算途中結果202と上記第二のガロ
ア体乗算回路25からの部分シンドローム203のうち
いずれか一方を選択し、p+1サイクル目のシンドロー
ム演算結果204として上記加算回路22へ出力する次
数補正出力選択回路26と、を備え、上記次数補正出力
選択回路26は、上記符号列の最後の符号語のシンドロ
ーム演算を行うn−sサイクル目のときに、上記第二の
ガロア体乗算回路25からの部分シンドロームを選択す
るように構成されている。
ドローム演算回路21を2個備え、バッファメモリ31
より読み出した2つの符号列の符号語を、符号列毎にそ
れぞれ対応するシンドローム演算回路21aまたは21
bに入力し、2つの符号列のシンドローム多項式演算を
並列に行いながら、必要に応じて適宜シンドローム演算
途中で、演算途中結果の次数補正を行うように構成され
ている。
を制御するマイクロコントローラ40には、図には示し
ていないが、上記符号列の中で最初に次数補正を行う符
号列の次数補正サイクル信号を発生するカウンタ手段
と、上記次数補正サイクル信号を基準として、上記次数
補正サイクル信号から0×k(kは正の整数)サイク
ル、1×kサイクル、…(h−1)×kサイクルと、順
次kサイクルずつ遅延した、シンドローム演算手段の個
数h(hは正の整数)に応じてh個の遅延信号を発生す
る遅延手段と、が設けられている。この遅延手段は、上
記各シンドローム演算回路21a,21bが備える上記
次数補正出力選択回路26へ、上記遅延信号を、選択信
号としてそれぞれ出力し、これにより誤り訂正部20
は、各々のシンドローム演算回路21a,21bでのシ
ンドローム多項式の次数補正するサイクルを、kサイク
ルずつ遅れて実行されるように構成されている。
トディスク用ディジタル信号処理装置(Compact Disc-Di
gital Signal Processor)(図示せず)より誤り訂正装
置50へシリアルデータ100が入力される。シリアル
データ100は、フォーマットインタフェース10で同
期保護、デスクランブル処理が施され、処理後のデータ
101はバッファメモリマネージャ30を介してバッフ
ァメモリ31に格納される。バッファメモリマネージャ
30は、フォーマットインタフェース10、誤り訂正部
20、データ転送回路32などの複数のバスマスタから
バッファメモリ31へのアクセス要求を調停してバッフ
ァメモリ31の書き込み・読み出しを制御する。
から読み出したデータ208を入力し、第一のシンドロ
ーム演算回路21aと第二のシンドローム演算回路21
bによりシンドローム演算結果202aと202bが求
められ、誤り位置算出回路27と誤り訂正回路28に出
力される。なお、シンドローム演算回路21aと21b
は同一の構成であり、それぞれ割り当てられた符号列の
シンドローム演算が行われる。
メモリ31より2つの符号列データ300が読み出さ
れ、バッファメモリマネージャ30を介して第一と第二
のシンドローム演算回路21a,21bにそれぞれ符号
列が割り当てられて入力され、第一と第二のシンドロー
ム演算回路21a,21bでは、それぞれ符号列の演算
開始データである符号語から順に、シンドローム多項式
演算が開始される。このシンドローム多項式演算は、第
一と第二のシンドローム演算回路21a,21bで並行
して行われる。
の演算開始データである符号語が入力されると、入力さ
れた符号語は加算回路22を通過して第一のガロア体乗
算回路23に入力され、第一のガロア体乗算回路23で
は入力された符号語にガロア体の元αiが乗じられて、
乗算結果201は演算結果格納回路24に出力され、演
算結果格納回路24では入力された乗算結果201が演
算途中結果として格納される。演算結果格納回路24か
らの演算途中結果は、次数補正出力選択回路26で選択
されて1サイクル目のシンドローム演算結果として加算
回路22に出力される。
回路26からの1サイクル目のシンドローム演算結果
と、演算順序が2番目の符号語とが加算回路22で加算
され、2項からなる多項式200となる。第1のガロア
体乗算回路23では、この多項式200の各項にそれぞ
れガロア体の元αiが乗じられ、求められた第2サイク
ル目のシンドローム多項式201は、演算結果格納回路
24に演算途中結果として格納される。演算結果格納回
路24からの演算途中結果は、次数補正出力選択回路2
6で選択されて加算回路22に出力される。
選択回路26からの第2サイクル目のシンドローム演算
結果と、演算順序が3番目の符号語とが加算回路22で
加算され、3項からなる多項式200となる。第1のガ
ロア体乗算回路23では、この多項式200の各項にそ
れぞれガロア体の元αiが乗じられ、求められた第3サ
イクル目のシンドローム多項式201は、演算結果格納
回路24に演算途中結果として格納される。
ローム演算回路21a,21bでは、各演算開始データ
から符号列のn−1番目の符号語、即ち最後の符号語n
−1までそれぞれ繰り返し続けられる。
算回路21a,21bで、上記シンドローム演算が、符
号列の最後に配列する符号語n−1に到達すると、次数
補正出力選択回路26では、第二のガロア体乗算回路2
5からの出力である、上記演算結果格納回路24からの
演算途中結果202に次数補正用の係数としてα-n、こ
の実施の形態においてはα-45が乗じられて求められた
部分シンドロームを選択して加算回路22へ出力する。
≦n−1)を演算開始データとしてシンドローム演算を
開始すると、求められるシンドローム多項式の次数に1
項目から誤差を生じるので、上記符号列に対するシンド
ローム演算の途中のn−sサイクル目で一度、求められ
るシンドローム多項式の次数補正を行う。なお、この次
数補正は、演算開始データが符号列の最初に配列する符
号語である場合は、求められるシンドローム多項式の次
数に誤差は生じないが、この符号列の最初に配列する符
号語から演算を開始する場合も次数補正が行なわれ、こ
れにより他の演算開始データとの処理の共通化が図られ
ている。また最終的に求められるシンドローム多項式の
全体の補正は、シンドローム演算以降の後続の処理で適
宜行われる。
ロームと次のサイクルの符号語、つまり符号列の一番先
頭に配列する符号語とが加算されて加算結果200が第
一のガロア体乗算回路23に入力される。加算結果20
0は第一のガロア体乗算回路23で、ガロア体の元αi
が乗算されて乗算結果201が演算結果格納回路24に
演算途中結果として格納される。演算結果格納回路24
からの演算途中結果は、次数補正出力選択回路26で選
択されて加算回路22に入力され、加算回路22で次の
サイクルの符号語と加算される。以降は、割り当てられ
た符号列iのシンドローム演算が終了するまで、以上の
サイクルが繰り返される。
路21a,21bで、それぞれ割り当てられた符号列i
に対するシンドローム演算が終了すると、求められたシ
ンドローム演算結果202a,202bは、演算結果格
納回路24に格納される。これによって並列にシンドロ
ーム演算が行うことができる。
シンドローム演算回路21a,21bの各演算結果格納
回路24より入力されたシンドローム演算結果202
a,202bからそれぞれ誤り位置205が求められ、
誤り訂正回路28へ出力される。
回路27の出力する誤り位置205と、シンドローム演
算結果202a,202bとから誤り数値がそれぞれ求
められ、訂正できる誤りがあれば誤りデータ206が読
み出され、誤り訂正をしてバッファメモリ31に誤り訂
正後のデータ207を再び書き戻される。
了したデータ300が読み出され、バッファメモリマネ
ージャ30を介してデータ301がデータ転送回路32
に入力され、誤り訂正装置50からホストコンピュータ
などの外部装置に対して転送データ302が出力され
る。なお、これら動作の全体制御は、マイクロコントロ
ーラ40から出力される制御信号400に基づいて行わ
れる。
の演算処理について詳細に説明する。第一と第二のシン
ドローム演算回路21a,21bで求めるシンドローム
演算結果202a,202bとは、次の
ROMの場合には、各符号列毎に2つのシンドロームS
0,S1が定義されている。S0はガロア体の元α0が
1であることから受信データを加算するのみ、即ち受信
データの排他的論理和を求めることのみで求めることが
でき、その加算結果は加算順序にも依存しないことから
ここでは説明を省き、S1のみについて、特に最下位面
でのシンドローム演算を2符号列で並列に行う場合につ
いて説明するものとする。
ァメモリ31より読み出されたi=0とi=25の符号
列に対してシンドローム演算を行い、第一のシンドロー
ム演算回路21aでi=0の符号列を、第二のシンドロ
ーム演算回路21bでi=25の符号列を、それぞれシ
ンドローム演算するものとする。また図2および図3
は、図4を詳細に示したもので、特にi=0とi=25
の符号列を並列にシンドローム演算する際の演算順序を
示した図である。
208として「0,1」が読み出され、続く第2サイク
ルでは「44,45」が読み出され、第一のシンドロー
ム演算回路21aには「0」に続き「44」が、第二の
シンドローム演算回路21bには「1」に続き「45」
が入力される。ここで、「0」は、図4,または図5に
示す「0000L」に相当し、「1」は「0001L」
に相当する。また、「44」は「0044L」に相当
し、「45」は「0045L」に相当する。
るように、「730,1143」、「1118,116
9」「1144,1075」のQパリティを含む場合を
除くと、その他は2バイトずつ連続するアドレスのデー
タが読み込まれていることがわかる。また、「110
0,1101」の次には「26,27」が読み出され、
先の(式13)で示したmod1118の剰余演算によ
る折り返しが発生していることが分かる。
読み出されるのは、図6から分かるように符号列i=0
の場合は1番目(j=0)のデータであるが、i=25
の符号列の場合は、2番目(j=1)のデータとなる。
このようにi=0の符号列はj=0から、i=25の符
号列はj=1から、それぞれ演算が開始される。
(j=44)、例えばi=25の符号列の場合、44サ
イクル目のデータ「1169」について演算した後のデ
ータ202に対して行われる。この次数補正の乗算は、
符号列により行うサイクルが異なり、一般化していえ
ば、次数補正サイクルは、 c=n−s (式14) で示される。ここで、cは次数補正サイクル、nは符号
長、sは演算開始データである。
ータ(j=0)から演算が開始されるので次数補正サイ
クルは必要ないが、(式14)のように、i=0の符号
列の場合も45サイクル目で次数補正を行うようにして
一般化することで、並列演算を行う隣接符号列において
は、1サイクルずつ次数補正サイクルが異なることにな
る。この性質を利用して、i=0とi=25の符号列を
並列に演算する場合にはi=25に合わせてマイクロコ
ンピュータ40に設けた次数補正サイクルカウンタ(図
示せず)に「44」を設定して次数補正サイクル信号を
発生させ、更に次数補正サイクル信号を基準に1サイク
ル遅らせた信号を遅延回路により発生させる。すると、
i=0の符号列を演算する第一のシンドローム演算回路
21aは、次数補正サイクル信号を用いて45サイクル
目に、またi=25の符号列を演算する第二のシンドロ
ーム演算回路21bは、次数補正サイクル信号を1サイ
クル遅らせた信号で44サイクル目に、それぞれ次数補
正が実行されることとなる。
ば、演算終了時には
多項式が得られ、演算結果格納回路24に格納される。
これらの式を、求めるべきシンドローム(式2),(式
4),(式6)と比べると、(式10),(式11),
(式12)に示すように、それぞれ全体に係数がかかっ
ていることが分かる。全体にかかっている係数αindex
の次数部分を一般化していえば、 index=−(n−s) (式15) のようになる。したがって、シンドローム多項式全体に
かかっている係数を補正することで、求めるべきシンド
ローム多項式をえることができる。なお、シンドローム
多項式全体にかかっている係数については、後続の処
理、例えば誤り位置を求める処理中で必要に応じて補正
すればよい。
訂正装置では、各シンドローム演算回路に次数補正用の
第二のガロア体乗算回路を設け、演算途中で必要なとき
は次数補正を行っているので、Q系列のデータをデイン
タリーブすることなくシンドローム演算ができる。これ
により並列度、すなわち読み出すデータのバイト数に見
合ったシンドローム演算回路を備えることにより、読み
出したデータをデインタリーブすることなく直接演算す
ることができるので、高速にシンドローム演算を実行す
ることができる。
タを、デインタリーブすることなくシンドローム演算回
路に供給するだけで、並列度の高いシンドローム演算を
実行することができるので、デインタリーブするために
発生する無駄なバッファメモリへのアクセスが不要とな
り低電力化が図れると共に、デインタリーブを行ってい
る間、シンドローム演算回路に待ちが発生することによ
る性能低下をなくすことができる。さらに、必要な性能
に応じてシンドローム演算回路の並列度を決定すると、
最適な回路規模で高い誤り訂正処理性能を持った誤り訂
正装置を提供できる。
したが、S0もS1と並列に求めることができる。ただ
し、S0については、係数は1であるため第一のガロア
体乗算回路23は不要であり、演算順序は演算結果に関
係しない。したがって次数補正する必要がないため、第
二のガロア体乗算回路25と次数補正出力選択回路26
も不要である。つまり、シンドロームS0は、加算回路
22と演算結果格納回路24のみで演算できる。
演算、即ち2符号列の並列演算について述べたが、読み
出すデータのバイト数を更に増やしそれに見合った数の
シンドローム演算回路を備えることで読み出すデータの
バイト数に応じて高速化が図れる。また、簡単のため最
下位面におけるQ系列のシンドローム演算について述べ
たが最上位面についても同様に演算できる。更にバッフ
ァメモリには最上位面と最下位面とのデータが連続して
格納されていることから並列にデータを読み出すことで
最上位面と最下位面の符号列の並列演算も容易に行え
る。また、次数補正サイクルカウンタはマイクロコンピ
ュータ40に設けるとしたが、誤り訂正部20内部に設
けてもよい。
係る誤り訂正方法によれば、符号長n(nは正の整数)
の、第0から第(n−1)までの符号語からなる符号列
のうち、上記符号列の途中の符号語s(1≦s≦n−
1)を演算開始データとし、符号語n−1までのn−s
個の符号語を用いて積和演算を繰り返し、第一の部分シ
ンドローム多項式を求める第一のステップと、上記第一
の部分シンドローム多項式に、次数補正のための係数を
乗算することにより第二の部分シンドローム多項式を求
める第二のステップと、上記第二の部分シンドローム多
項式を元にして、上記符号列の最初の符号語m(m=
0)を演算再開データとし、符号語s−1までのs個の
符号語を用いて積和演算を繰り返し、上記符号列のシン
ドローム多項式を求める第三のステップと、を有するよ
うにしたので、読み出したデータをデインタリーブする
ことなく直接演算することができ、高速なシンドローム
演算を行うことができる。
方法によれば、上記請求項1に記載の誤り訂正方法にお
いて、上記符号列の最初の符号語m(m=0)を演算開
始データとする場合に、符号語n−1までのn個の符号
語を用いて積和演算を繰り返し行うことにより、上記符
号列のシンドローム多項式を求めるようにしたので、高
速なシンドローム演算を行うことができる。
方法によれば、請求項1に記載の誤り訂正方法におい
て、上記符号列の最初の符号語m(m=0)を演算開始
データとする場合に、上記第一及び第二のステップを実
行して、上記符号列のシンドローム多項式を求めるよう
にしたので、並列度の高いシンドローム演算を行うこと
ができる。
装置によれば、符号長n(nは正の整数)の、第0から
第(n−1)までの符号語からなる符号列i(iは0以
上の整数)のうち、符号語s(1≦s≦n−1)を演算
開始データとしてシンドローム演算を開始し、上記符号
語sのシンドローム演算が終了すると、該シンドローム
演算結果に次の符号語s+1を加算した多項式に対して
シンドローム演算を行う、というサイクルをn回繰り返
すことにより、n項からなるシンドローム多項式を求め
るシンドローム演算手段を備えた誤り訂正装置におい
て、上記シンドローム演算手段は、p(1≦p≦n−
1)サイクル目のシンドローム演算結果と、p+1サイ
クル目の符号語とを加算し、p+1項からなる多項式を
求める加算手段と、上記加算手段からの多項式の各項に
ガロア体の元αiを乗算し、p+1サイクル目のシンド
ローム多項式を求める第一のガロア体乗算手段と、上記
第一のガロア体乗算回路からのp+1サイクル目のシン
ドローム多項式を、演算途中結果として格納する演算結
果格納手段と、上記演算結果格納手段からの演算途中結
果に次数補正用の係数を乗算し、部分シンドロームとし
て出力する第二のガロア体乗算手段と、上記演算結果格
納手段からの演算途中結果と上記第二のガロア体乗算手
段からの部分シンドロームのうちいずれか一方を選択
し、p+1サイクル目のシンドローム演算結果として上
記加算手段へ出力する次数補正出力選択手段と、を備
え、上記次数補正出力選択手段は、上記符号列の最後の
符号語のシンドローム演算を行うn−sサイクル目のと
きに、上記第二のガロア体乗算手段からの部分シンドロ
ームを選択するものとしたので、読み出したデータをデ
インタリーブすることなく直接演算することができ、高
速なシンドローム演算を行うことができる。
装置によれば、請求項4記載の誤り訂正装置において、
上記シンドローム演算手段を複数個備え、複数の符号列
の符号語を読み出して、それぞれを対応する符号列用の
シンドローム演算手段に入力することにより、複数の符
号列のシンドローム多項式演算を並列に行うものとした
ので、並列度の高いシンドローム演算が可能となり、高
速に演算処理を行うことができる。
装置によれば、請求項4または5に記載の誤り訂正装置
において、上記複数の符号列の中で最初に次数補正を行
う符号列の次数補正サイクル信号を発生するカウンタ手
段と、上記次数補正サイクル信号を基準として、上記次
数補正サイクル信号から順次kサイクル(kは正の整
数)ずつ遅延した、複数のシンドローム演算手段の個数
h(hは正の整数)に対応した、h個の遅延信号を発生
する遅延手段と、を備え、上記遅延手段は、上記各シン
ドローム演算手段が備える上記次数補正出力選択手段
へ、上記遅延信号を、選択信号としてそれぞれ出力する
ことにより、各々のシンドローム演算手段での演算途中
結果の次数補正を、kサイクルずつ遅らせて実行させる
ものとしたので、自動的に各符号列の次数補正が行なわ
れ、並列度の高いシンドローム演算が可能となるため、
高速に演算処理を行うことができる。
めのブロック図である。
けるデータのアクセス動作を説明するための図である。
けるデータのアクセス動作を説明するための図である。
の1セクタのデータフォーマット図である。
で作ったマップ図である。
の図である。
の図である。
27)
んだ、即ちインタリーブされたQ系列のデータを、元の
並びに入れ替えて戻すことなく、即ちデインタリーブす
ることなく並列にシンドローム演算し、誤り訂正する方
法として、例えば特開平5−12814号公報では、最
上位面と最下位面は、ECC(Error-Correcting Cod
e)が互いに無関係、つまり独立であるという性質を利
用して、バッファメモリにアドレスを連続させて格納し
ているデータの、各最上位面と最下位面(該公開公報で
はpage0と1と表記)で、それぞれ行(j)方向に
並んだ符号列の1番目のデータから順番に1バイトずつ
計2バイトを読み出し、最上位面と最下位面のそれぞれ
に対応させて設けた2つのシンドローム演算回路で並列
に演算が行なわれている。
路21a,21bは、符号列nの途中の第s番目の符号
語s(1≦s≦n−1)を演算開始データとして演算を
開始する。p(1≦p≦n−1)サイクル目のシンドロ
ーム演算結果204として得られるシンドローム多項式
と、符号列iのp+1サイクル目の符号語208とを加
算してp+1項からなる多項式200を求める加算回路
22と、上記加算回路22からの多項式200の各項に
ガロア体の元αiを乗算し、p+1サイクル目のシンド
ローム多項式201を求める第一のガロア体乗算回路2
3と、上記第一のガロア体乗算回路23からのp+1サ
イクル目のシンドローム多項式201を、演算途中結果
として格納する演算結果格納回路24と、上記演算結果
格納回路24からの演算途中結果202、即ち第一のシ
ンドローム演算回路21aでは202a,第二のシンド
ローム演算回路21bでは202bに次数補正用の係数
を乗算し、部分シンドロームとして出力する第二のガロ
ア体乗算回路25と、上記演算結果格納回路24からの
演算途中結果202と上記第二のガロア体乗算回路25
からの部分シンドローム203のうちいずれか一方を選
択し、p+1サイクル目のシンドローム演算結果204
として上記加算回路22へ出力する次数補正出力選択回
路26と、を備え、上記次数補正出力選択回路26は、
上記符号列の最後の符号語のシンドローム演算を行うn
−sサイクル目のときに、上記第二のガロア体乗算回路
25からの部分シンドロームを選択するように構成され
ている。
ドローム演算回路21を2個備え、バッファメモリ31
より読み出した2つの符号列の符号語を、符号列毎にそ
れぞれ対応するシンドローム演算回路21a,21bに
入力し、2つの符号列のシンドローム多項式演算を並列
に行いながら、必要に応じて適宜シンドローム演算途中
で、演算途中結果の次数補正を行うように構成されてい
る。
Claims (6)
- 【請求項1】 符号長n(nは正の整数)の、第0から
第(n−1)までの符号語からなる符号列のうち、上記
符号列の途中の符号語s(1≦s≦n−1)を演算開始
データとし、符号語n−1までのn−s個の符号語を用
いて積和演算を繰り返し、第一の部分シンドローム多項
式を求める第一のステップと、 上記第一の部分シンドローム多項式に、次数補正のため
の係数を乗算することにより第二の部分シンドローム多
項式を求める第二のステップと、 上記第二の部分シンドローム多項式を元にして、上記符
号列の最初の符号語である第0の符号語を演算再開デー
タとし、符号語s−1までのs個の符号語を用いて積和
演算を繰り返し、上記符号列のシンドローム多項式を求
める第三のステップと、を有することを特徴とする誤り
訂正方法。 - 【請求項2】 請求項1記載の誤り訂正方法において、 上記符号列の最初の符号語である第0の符号語を演算開
始データとする場合に、符号語n−1までのn個の符号
語を用いて積和演算を繰り返し行うことにより、上記符
号列のシンドローム多項式を求めることを特徴とする誤
り訂正方法。 - 【請求項3】 請求項1記載の誤り訂正方法において、 上記符号列の最初の符号語である第0の符号語を演算開
始データとする場合に、上記第一及び第二のステップを
実行して、上記符号列のシンドローム多項式を求めるこ
とを特徴とする誤り訂正方法。 - 【請求項4】 符号長n(nは正の整数)の、第0から
第(n−1)までの符号語からなる符号列i(iは0以
上の整数)のうち、符号語s(1≦s≦n−1)を演算
開始データとしてシンドローム演算を開始し、上記符号
語sのシンドローム演算が終了すると、該シンドローム
演算結果に次の符号語s+1を加算した多項式に対して
シンドローム演算を行う、というサイクルをn回繰り返
すことにより、n項からなるシンドローム多項式を求め
るシンドローム演算手段を備えた誤り訂正装置におい
て、 上記シンドローム演算手段は、 p(1≦p≦n−1)サイクル目のシンドローム演算結
果と、p+1サイクル目の符号語とを加算し、p+1項
からなる多項式を求める加算手段と、 上記加算手段からの多項式の各項にガロア体の元αiを
乗算し、p+1サイクル目のシンドローム多項式を求め
る第一のガロア体乗算手段と、 上記第一のガロア体乗算回路からのp+1サイクル目の
シンドローム多項式を、演算途中結果として格納する演
算結果格納手段と、 上記演算結果格納手段からの演算途中結果に次数補正用
の係数を乗算し、部分シンドロームとして出力する第二
のガロア体乗算手段と、 上記演算結果格納手段からの演算途中結果と上記第二の
ガロア体乗算手段からの部分シンドロームのうちいずれ
か一方を選択し、p+1サイクル目のシンドローム演算
結果として上記加算手段へ出力する次数補正出力選択手
段と、を備え、 上記次数補正出力選択手段は、上記符号列の最後の符号
語のシンドローム演算を行うn−sサイクル目のとき
に、上記第二のガロア体乗算手段からの部分シンドロー
ムを選択する、ことを特徴とする誤り訂正装置。 - 【請求項5】 請求項4記載の誤り訂正装置において、 上記シンドローム演算手段を複数個備え、複数の符号列
の符号語を、それぞれが対応する符号列用のシンドロー
ム演算手段に入力することにより、複数の符号列のシン
ドローム多項式演算を並列に行うことを特徴とする誤り
訂正装置。 - 【請求項6】 請求項4または5に記載の誤り訂正装置
において、 上記複数の符号列の中で最初に次数補正を行う符号列の
次数補正サイクル信号を発生するカウンタ手段と、 上記次数補正サイクル信号を基準として、上記次数補正
サイクル信号から順次kサイクル(kは正の整数)ずつ
遅延した、複数のシンドローム演算手段の個数h(hは
正の整数)に対応した、h個の遅延信号を発生する遅延
手段と、を備え、 上記遅延手段は、 上記各シンドローム演算手段が備える上記次数補正出力
選択手段へ、上記遅延信号を、選択信号としてそれぞれ
出力することにより、各々のシンドローム演算手段での
演算途中結果の次数補正を、kサイクルずつ遅らせて実
行させることを特徴とする誤り訂正装置。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP30262299A JP3502583B2 (ja) | 1999-10-25 | 1999-10-25 | 誤り訂正方法および誤り訂正装置 |
US09/694,816 US6738947B1 (en) | 1999-10-25 | 2000-10-24 | Method and apparatus for error correction |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP30262299A JP3502583B2 (ja) | 1999-10-25 | 1999-10-25 | 誤り訂正方法および誤り訂正装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2001127645A true JP2001127645A (ja) | 2001-05-11 |
JP3502583B2 JP3502583B2 (ja) | 2004-03-02 |
Family
ID=17911212
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP30262299A Expired - Fee Related JP3502583B2 (ja) | 1999-10-25 | 1999-10-25 | 誤り訂正方法および誤り訂正装置 |
Country Status (2)
Country | Link |
---|---|
US (1) | US6738947B1 (ja) |
JP (1) | JP3502583B2 (ja) |
Families Citing this family (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7571439B1 (en) * | 2002-05-31 | 2009-08-04 | Teradata Us, Inc. | Synchronizing access to global resources |
US7114116B2 (en) * | 2002-09-13 | 2006-09-26 | Sun Microsystems, Inc. | Accelerated Galois data integrity crosscheck system and method |
US7188296B1 (en) | 2003-10-30 | 2007-03-06 | Sun Microsystems, Inc. | ECC for component failures using Galois fields |
US7228490B2 (en) * | 2004-02-19 | 2007-06-05 | Quantum Corporation | Error correction decoder using cells with partial syndrome generation |
US7426678B1 (en) * | 2004-07-20 | 2008-09-16 | Xilinx, Inc. | Error checking parity and syndrome of a block of data with relocated parity bits |
US20070033507A1 (en) * | 2005-08-03 | 2007-02-08 | Xueping Jiang | Efficient error code correction |
US8171377B2 (en) * | 2008-01-31 | 2012-05-01 | International Business Machines Corporation | System to improve memory reliability and associated methods |
JP5599267B2 (ja) * | 2010-09-07 | 2014-10-01 | 株式会社メディアグローバルリンクス | デジタル放送信号再送信システム |
US9239757B2 (en) * | 2014-05-30 | 2016-01-19 | Sandisk Technologies Inc. | Method and apparatus for relocating data in non-volatile memory |
US20180006664A1 (en) * | 2016-06-29 | 2018-01-04 | Altera Corporation | Methods and apparatus for performing reed-solomon encoding by lagrangian polynomial fitting |
US10002086B1 (en) * | 2016-12-20 | 2018-06-19 | Sandisk Technologies Llc | Multi-channel memory operations based on bit error rates |
DE102017125617B8 (de) * | 2017-11-02 | 2020-08-27 | Infineon Technologies Ag | Bestimmung und verwendung von bytefehlerpositionssignalen |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5490260A (en) * | 1990-12-14 | 1996-02-06 | Ceram, Inc. | Solid-state RAM data storage for virtual memory computer using fixed-sized swap pages with selective compressed/uncompressed data store according to each data size |
US5384786A (en) | 1991-04-02 | 1995-01-24 | Cirrus Logic, Inc. | Fast and efficient circuit for identifying errors introduced in Reed-Solomon codewords |
JPH0512814A (ja) | 1991-07-02 | 1993-01-22 | Nec Corp | 誤り訂正回路 |
US5912905A (en) | 1994-03-25 | 1999-06-15 | Mitsubishi Denki Kabushiki Kaisha | Error-correcting encoder, error-correcting decoder and data transmitting system with error-correcting codes |
FR2721774B1 (fr) | 1994-06-27 | 1996-09-06 | Sgs Thomson Microelectronics | Décodeur reed-solomon. |
US5642366A (en) * | 1994-07-05 | 1997-06-24 | Adaptec, Inc. | Global parity symbol for interleaved reed-solomon coded data |
US5577054A (en) * | 1994-09-13 | 1996-11-19 | Philips Electronics North America Corporation | Device and method for performing error detection on an interleaved signal portion, and a receiver and decoding method employing such error detection |
JPH10107648A (ja) | 1996-09-30 | 1998-04-24 | Sanyo Electric Co Ltd | 誤り訂正処理回路 |
-
1999
- 1999-10-25 JP JP30262299A patent/JP3502583B2/ja not_active Expired - Fee Related
-
2000
- 2000-10-24 US US09/694,816 patent/US6738947B1/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
US6738947B1 (en) | 2004-05-18 |
JP3502583B2 (ja) | 2004-03-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5592404A (en) | Versatile error correction system | |
US4928280A (en) | Fast processor for multi-bit error correction codes | |
US5805617A (en) | Apparatus for computing error correction syndromes | |
JP2001127645A (ja) | 誤り訂正方法および誤り訂正装置 | |
JP3281387B2 (ja) | Crc/edcチェッカシステム | |
EP0781472B1 (en) | Multipurpose error correction calculation circuit | |
KR100258951B1 (ko) | 리드-솔로몬(rs) 복호기와 그 복호방법 | |
US6662336B1 (en) | Error correction method and apparatus | |
JP2662472B2 (ja) | 誤り訂正処理用シンドローム演算回路 | |
JP3614978B2 (ja) | ガロア体の除算方法および除算装置 | |
EP0584864B1 (en) | A hardware-efficient method and device for encoding BCH codes and in particular Reed-Solomon codes | |
JP3812983B2 (ja) | エラー評価多項式係数計算装置 | |
EP1037148B1 (en) | Error coding method | |
JP2718481B2 (ja) | ロングディスタンスコードの誤り訂正装置 | |
JP2907138B2 (ja) | 誤り訂正の演算処理方法及び処理回路 | |
JPH09162753A (ja) | 符号語の復号方式 | |
JP2591611B2 (ja) | t重誤り訂正符号の符号化復号化回路 | |
JP2622957B2 (ja) | Bch符号の符号化及び復号化方法 | |
JP2622383B2 (ja) | ロングディスタンスコードの誤り訂正装置 | |
JPH09185518A (ja) | 原始元αのべき乗生成方式及びその装置 | |
JP2001069014A (ja) | リードソロモン符号復号化装置 | |
JP2003032122A (ja) | 符号化装置 | |
WO1998007238A1 (en) | Parallel input ecc encoder and associated method of remainder computation | |
KR19980040848A (ko) | 에러 정정 신드롬 계산 장치 | |
JPS635928B2 (ja) |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20031205 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20071212 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20081212 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20091212 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20091212 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20101212 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20101212 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20111212 Year of fee payment: 8 |
|
LAPS | Cancellation because of no payment of annual fees |