JP2008112522A - 誤り検出装置および誤り検出方法 - Google Patents

誤り検出装置および誤り検出方法 Download PDF

Info

Publication number
JP2008112522A
JP2008112522A JP2006295710A JP2006295710A JP2008112522A JP 2008112522 A JP2008112522 A JP 2008112522A JP 2006295710 A JP2006295710 A JP 2006295710A JP 2006295710 A JP2006295710 A JP 2006295710A JP 2008112522 A JP2008112522 A JP 2008112522A
Authority
JP
Japan
Prior art keywords
error
bit
syndrome
unit
data
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
Application number
JP2006295710A
Other languages
English (en)
Inventor
Kazuteru Usui
一輝 碓井
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2006295710A priority Critical patent/JP2008112522A/ja
Priority to US11/907,125 priority patent/US20080104487A1/en
Publication of JP2008112522A publication Critical patent/JP2008112522A/ja
Withdrawn legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, 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/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error 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/09Error detection only, e.g. using cyclic redundancy check [CRC] codes or single parity bit

Landscapes

  • Physics & Mathematics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Error Detection And Correction (AREA)

Abstract

【課題】巡回符号を使用した誤り訂正により得られる誤りビット位置から補正値を効率よく演算する誤り検出装置および誤り検出方法を提供すること。
【解決手段】レジスタ51から順次選択される誤りビット位置情報EbPが誤りビット位置である場合に、誤りバイト位置のLSBが誤りビット位置であるシンドロームがシンドローム格納部52から加算器54に出力され加算されてレジスタ55に格納される。更に1シフト演算器(β)57でLFSRの1シフト動作と等価な演算が行われる。加算器54では、シンドロームが入力されれば1シフト演算器(β)57の出力に加算した結果を入力されなければ1シフト演算器(β)57の出力を、レジスタ55に送る。これを誤りバイト位置における誤りビット位置からLSBまで繰り返して補正シンドロームSCを得る。処理時間の短縮および処理回路の簡略化を図ることができる。
【選択図】図4

Description

本発明は、デジタルデータに含まれる符号誤りの検出に関するものであり、特に、巡回符号を使用した誤り検出に関するものである。
従来より、伝送されたデジタルデータに対しては、誤り訂正処理を行うと共に、誤り訂正が正しく行われたか否かを判断する誤り検出においてCRC符号等の巡回符号が使用される。これは、原データに誤り検出符号(以下、EDCと称する)を付加することにより行われる。この場合、誤り訂正と誤り検出とに応じて行われるDRAM等のメモリ装置へのデータの書込みや読出し等のアクセス回数を減らすために、誤り訂正前の段階で誤り検出を行い、誤り訂正から得られた誤りデータのビット位置により、誤り検出の結果が補正されることが行なわれる場合がある。
特許文献1のデータ復号処理装置では、DVD−ROMデータの再生装置について開示されている。誤り訂正部により、符号系列内のビット毎に区切った位置iに誤り“1”があったということが判明すると、誤りデータ列に対する誤り検出の有無が計算される。最初に“1”のデータがくるまでは“0”のデータがEDC回路(線形帰還シフトレジスタ)を巡回しているだけで値の変化はない。“1”のデータが入力された後、i回EDC回路(線形帰還シフトレジスタ)をシフトさせることによって補正値が求められる。誤りが複数あれば、各々に対する補正値を加算(EXOR)する。
特許文献2のCRCチェック結果の補正方法では、ECCによるシンドローム計算結果によりエラーの訂正が行なわれた場合、計算結果から導かれるエラー位置と訂正パターンを基に補正値をテーブル化しておく。訂正されたエラー位置と訂正パターンからマイクロプログラムにより補正値を算出する。
特開2000−165259号公報 特開昭63−281277号公報
しかしながら、上記の背景技術により誤り検出結果の補正値を求める場合には、多大な演算時間を要するおそれがあり、回路規模も大規模となってしまうおそれがあり、問題である。
具体的には、特許文献1に開示されているデータ復号処理装置では、符号系列内の誤り“1”のビット位置によらず符号系列を構成するビット列の全てをEDC回路(線形帰還シフトレジスタ)に入力して巡回させねばならない。補正値を得るまでには、誤り訂正されるビット位置やビット数によらず、少なくとも符号系列を構成するビット列のビット数分のサイクル数の演算時間を必要とする。例えば、DVD−ROMにおいては、符号系列のビット数は16512ビットであり、16512サイクルの演算時間が必要である。多大な演算時間を必要とするおそれがあり問題である。
また、特許文献2に開示されているCRCチェック結果の補正方法では、ECCにより訂正される誤りビットのビット位置毎に補正値を備えることが必要となる。誤り訂正および誤り検出の対象となるデジタルデータを構成するビット列のビット数によっては、備えるべき補正値の組み合わせが膨大な数に達する場合も考えられる。全ての補正値を備えるテーブルは多大なデータ量となり、各テーブル値を格納する格納領域およびその制御回路の回路規模が大きくなってしまうおそれがあり問題である。
本発明は前記背景技術に鑑みなされたものであり、巡回符号を使用して誤り訂正および誤り検出を行なう場合、誤り訂正処理によって得られる誤りビット位置から補正値を効率よく演算することにより、補正に要する処理時間の短縮、および誤り検出処理に必要となる回路の簡略化を図ることが可能な誤り検出装置および誤り検出方法を提供することを目的とする。
前記目的を達成するために、第1の発明に係る誤り検出装置は、所定ビット数のビット列をデータユニットとして複数のデータユニットが配列される受信データに対して、誤り訂正前に巡回符号による第1のシンドロームを生成し、誤り訂正によって書き換えられる受信データの誤り訂正情報に基づき、第1のシンドロームの補正を行なう際、データユニットごとに、ビット列の指定ビット位置に誤りがある場合に演算される第2のシンドロームを予め格納しておく格納部と、誤り訂正情報により誤りを含むとして特定されるデータユニットにおける第2のシンドロームを初期符号として格納部より読み出し、データユニットにおける誤りビット位置から指定ビット位置に至るビット差分の線形帰還シフトレジスタによるシフト動作に等価な演算結果を出力する演算部と、誤りビット位置ごとに演算部から出力される演算結果を加算(EXOR)して第3のシンドロームとして出力する第1加算部と、第1のシンドロームに第3のシンドロームを加算(EXOR)する第2加算部とを備えることを特徴とする。
また、第1の発明に係る誤り検出方法は、所定ビット数のビット列をデータユニットとして複数のデータユニットが配列される受信データに対して、誤り訂正前に巡回符号による第1のシンドロームを生成し、誤り訂正によって書き換えられる前記受信データの誤り訂正情報に基づき、第1のシンドロームの補正を行なう際、データユニットごとに、ビット列の指定ビット位置に誤りがある場合に演算される第2のシンドロームを予め格納しておくステップと、誤り訂正情報により誤りを含むとして特定されるデータユニットにおける第2のシンドロームを読み出すステップと、読み出された第2のシンドロームを初期符号として、データユニットにおける誤りビット位置から指定ビット位置に至るビット差分の線形帰還シフトレジスタによるシフト動作に等価な演算結果を出力するステップと、誤りビット位置ごとに出力される演算結果を加算(EXOR)して第3のシンドロームとして出力するステップと、第1のシンドロームに第3のシンドロームを加算(EXOR)するステップとを有することを特徴とする。
第1の発明の誤り検出装置および誤り検出方法では、データユニットの指定ビット位置に誤りがある場合の受信データに対する第2のシンドロームが、データユニットごとに予め格納されている。受信データが誤りを含む場合に、誤りビット位置ごとに、誤り訂正情報により誤りが存在するデータユニットに応じた第2のシンドロームを読み出して初期符号とし、データユニットの誤りビット位置から指定ビット位置に至るビット差分の線形帰還シフトレジスタによるシフト動作に等価な演算結果を出力する。出力された演算結果は加算(EXOR)され、第3のシンドロームとして出力される。第3のシンドロームは、受信データに対して誤り訂正前に生成された第1のシンドロームに加算(EXOR)される。
線形帰還シフトレジスタには、受信データのMSBからLSBに向かって順次ビットデータが入力される。特定のビット位置にのみ誤りがある場合のシンドロームを求める場合、誤りビット位置以外のビット位置のビットデータは誤りのないことを示す“0”値で埋められる。したがって、線形帰還シフトレジスタにおいて、指定ビット位置に誤りがある場合の第2のシンドロームに対して、誤りビット位置から指定ビット位置に至るビット差分のシフト動作において“0”値が入力されれば、誤りビット位置に誤りがある場合のシンドロームが得られることとなる。誤りが複数のビット位置に存在する場合は、上記のシンドロームを加算(EXOR)すれば全ての誤りビット位置に対応する第3のシンドロームを求めることができる。
これにより、データユニットの指定ビット位置に誤りがある場合に演算される第2のシンドロームに対して、データユニットにおける誤りビット位置から指定ビット位置に至るビット差分の線形帰還シフトレジスタによるシフト動作に等価な演算を行った上で、誤りビット位置ごとに演算結果を加算(EXOR)してやれば、第1のシンドロームに対する補正値である第3のシンドロームを得ることができる。第3のシンドロームを、誤り訂正情報に基づき受信データの総ビット数分のシフト動作を行って線形帰還シフトレジスタにより求める必要はなく、短時間の演算時間で第1のシンドロームを補正することができる。
また、格納されている第2のシンドロームは、受信データを構成する各データユニットにおける指定ビット位置に誤りがある場合のシンドロームであり、データユニットごとに1つのシンドロームが格納されているに留まる。受信データを構成する全てのデータユニットのビット位置ごとに誤りがある場合のシンドロームを格納する場合に比して、格納されるデータ量を低減することができる。格納領域を小さな領域に限定することができ、その制御回路も含め回路規模を圧縮することができる。
また、第2の発明に係る誤り検出装置は、所定ビット数のビット列をデータユニットとして複数のデータユニットが配列される受信データに対して、誤り訂正前に巡回符号による第1のシンドロームを生成し、誤り訂正によって書き換えられる受信データの誤り訂正情報に基づき、第1のシンドロームの補正を行なう際、受信データを構成する総ビット数からデータユニットを構成する所定ビット数を減じたビット数以下のシフト動作であって、相異なるシフト数の線形帰還シフトレジスタによるシフト動作に等価な演算結果を出力する複数の第2シフト演算部と、受信データのうち誤り訂正情報により誤りを含むとして特定されるデータユニットより下位にあるビット数のシフト動作に等価な演算結果を取得するために、複数の第2シフト演算部を少なくとも一つ選択する第2選択部と、第2選択部により選択される複数の第2シフト演算部に対する初期符号として、線形帰還シフトレジスタを構成するビット列の下位に、誤り訂正情報により特定されるデータユニットの誤りビット位置を示すビット列を割り当てる初期設定部とを備えることを特徴とする。
また、第2の発明に係る誤り検出方法は、所定ビット数のビット列をデータユニットとして複数のデータユニットが配列される受信データに対して、誤り訂正前に巡回符号による第1のシンドロームを生成し、誤り訂正によって書き換えられる受信データの誤り訂正情報に基づき、第1のシンドロームの補正を行なう際、受信データを構成する総ビット数からデータユニットを構成する所定ビット数を減じたビット数以下のシフト動作であって、相異なるシフト数の線形帰還シフトレジスタによるソフト動作に等価な演算結果を出力する第2の複数のステップと、受信データのうち誤り訂正情報により誤りを含むとして特定されるデータユニットより下位にあるビット数のシフト動作に等価な演算結果を取得するために、第2の複数のステップを少なくとも一つ選択するステップと、第2の複数のステップに対する初期符号として、線形帰還シフトレジスタを構成するビット列の下位に、誤り訂正情報により特定されるデータユニットの誤りビット位置を示すビット列を割り当てるステップとを有することを特徴とする。
第2の発明の誤り検出装置および誤り検出方法では、受信データを構成する総ビット数からデータユニットを構成する所定ビット数を減じたビット数以下のシフト動作であって、相異なるシフト数の線形帰還シフトレジスタによるシフト動作に等価な演算から少なくとも一つを選択して、誤りを含むデータユニットより下位にあるビット数のシフト動作に等価な演算結果を取得する。このとき、演算の初期符号として、線形帰還シフトレジスタを構成するビット列の下位に、誤りの存在するデータユニットの誤りビット位置を示すビット列を割り当てる。
誤り訂正情報により誤りがあるとされるデータユニット以外のデータユニットでは、誤りが存在していない。このため、線形帰還シフトレジスタにおいて、誤りのあるデータユニット以外のデータユニットのビットデータは全て“0”値であるとして、シフト動作が行われることとなる。
これにより、線形帰還シフトレジスタを構成するビット列の下位に、誤りの存在するデータユニットの誤りビット位置を示すビット列を割り当てて初期符号とし、総ビット数からデータユニットを構成する所定ビット数を減じたビット数以下の線形帰還シフトレジスタによるシフト動作に等価な演算を組み合わせれば、誤りの存在するデータユニットより下位のビット数のシフト動作と等価な演算結果を取得して第3のシンドロームを得ることができる。第3のシンドロームを、誤り訂正情報に基づき受信データの総ビット数分のシフト動作を経て線形帰還シフトレジスタにより求める必要はなく、短時間の演算時間で第1のシンドロームを補正することができる。
また、特定のビット位置に誤りがある場合のシンドロームを格納しておく必要はない。格納領域およびその制御回路は不要であり、回路規模を圧縮することができる。
本発明によれば、巡回符号を使用する誤り検出において、誤り訂正処理によって得られる誤り訂正情報からシンドロームの補正値を効率よく演算することができ、補正に要する処理時間の短縮、および補正処理に必要な回路の簡略化を図ることができる。
以下、本発明の誤り検出装置および誤り検出方法について具体化した実施形態を図1乃至図13に基づき図面を参照しつつ詳細に説明する。
本発明の誤り検出装置および誤り検出方法は、巡回符号の性質を奏するEDCが付与された受信データを復調する際、誤り訂正を行う前段階で演算される誤り検出結果に、誤り訂正情報に対して演算される誤り検出結果を補正値として加算(EXOR)することにより、受信データに対する誤り検出を行うものである。ここで、誤り訂正情報とは受信データにおける誤り位置を示す情報である。受信データがバイト単位で区画されてデータユニットを構成すると考えると、誤り訂正情報は、受信データにおけるバイト位置、および当該バイト位置での誤りビット位置で構成される情報である。
本発明の誤り検出装置および誤り検出方法は、巡回符号を使用する誤り検出であれば有効に適用することができる。巡回符号の例としてはCRC符号が考えられる。以下に示す第1乃至第4実施形態では、巡回符号としてCRC符号が使用される場合を説明する。
CRC符号を使用する場合の例として、図1にDVDにおける1セクタのデータフォーマットを示す。4バイトのIDデータにIDデータに対するエラー検出用のIEDデータが2バイトの長さで付加され、合わせて6バイトのID関連データが配置される。ID関連データに引き続くRSVデータは6バイトである。以上の12バイトで制御データを構成する。その後、メインデータとしてユーザデータが2048バイト配置される。最後に、全てのデータに対するEDC符号が4バイトで配置される。2064バイトで1セクタが構成される。ここで、4バイトのEDC符号の最終ビットが1セクタにおけるLSB、すなわち第0バイト0(B0)の第0ビット(b0)であり、4バイトのIDデータの先頭ビットが1セクタにおけるMSB、すなわち第2063バイト0(B2063)の第16511ビット(b16511)である。以下に説明する第1乃至第4実施形態の誤り検出装置および誤り検出方法では、DVDの1セクタ(2064バイト)に対して誤り検出を行う場合を例示する。
図2に示す線形帰還シフトレジスタ(以下、LFSRと略記する。)は、DVDの1セクタデータに対する誤り検出結果として、X〜X31の32ビットのビット列が得られる。このビット列がシンドロームであり、またはパリティ符号に対する結果である。
DVDのセクタデータは、MSBである第16511ビット(b16511)から順次入力される。入力されるビットデータは、ビット位置(X31)のビットデータと共に加算(EXOR)されて、ビット位置(X)に入力される。線形帰還シフトレジスタでは、順次高位ビット位置に向かってビットデータがシフトされていく。この間、ビット位置(X)とビット位置(X31)が加算(EXOR)されてビット位置(X)に入力され、ビット位置(X30)とビット位置(X31)が加算(EXOR)されてビット位置(X31)に入力される。DVDの1セクタのLBSである第0ビット(b0)が、ビット位置(X31)と加算(EXOR)されてビット位置(X)に入力された時点で、シンドロームの演算が完了する。このときのX〜X31のビット列のビットデータが所定値を有していれば、1セクタデータに誤りは存在しないこととなる。このときのX〜X31のビット列のビットデータがシンドロームである。また、X〜X31のビット列のビットデータが“0”値を有していれば、1セクタデータに誤りは存在しないとする設定も考えられる。これが誤り検出である。以下の説明では、X〜X31のビット列のビットデータをシンドロームとして説明する。また、パリティを生成する場合もシンドローム同様の計算を行うので、本稿がパリティの生成にも適用することができることは言うまでもない。
ここで、LFSRのビット位置X〜X31までに0をセットし、ビット位置Xに1をセットする。この状態をβと定義する。βから入力は0で1クロックシフト(×β1)したときのLFSRの状態をβ1と定義し、βnから0入力でmクロックシフト(×β)したときのLFSRの状態をβn+mと定義する。
図3は、本発明の誤り検出装置を備える受信システムの原理を示す原理説明図である。DVDから出力されたデータは復調器1により受信され受信データDOに変換される。変換された受信データDOは、LFSR4に入力され初期シンドロームSOが演算される。同時にメモリ2に格納される。その後、受信データDOはメモリ2から読み出され、誤り訂正回路3において誤りの訂正が行われる。訂正された受信データDCはメモリ2に格納される。また、LFSR4において演算された初期シンドロームSOもメモリ2に格納される。
誤り訂正回路3により誤りが訂正された場合、受信データDOにおいて誤りが存在するバイト位置を示す誤りバイト位置情報EBPと、誤りバイト位置情報EBPにより特定される誤りバイト位置内での誤りビット位置情報EbPとが、補正シンドローム演算器5に向けて出力される。DVDの1セクタデータの場合には、2064バイトを識別するために誤りバイト位置情報EBPは12ビット長の情報である。誤りビット位置情報EbPは、バイト内のビット位置を識別するので、8ビット長の情報である。
補正シンドローム演算器5では、誤りバイト位置情報EBPおよび誤りビット位置情報EbPに基づいてLFSR4と等価な演算をおこない、補正シンドロームSCを出力する。メモリ2から読み出された初期シンドロームSOと補正シンドロームSCとが加算器(EXOR)6により加算(EXOR)されて、シンドロームSが出力される。
誤りバイト位置情報EBPおよび誤りビット位置情報EbPから、補正シンドロームSCを演算することができる。このとき、LFSR4に訂正された受信データDCを入力して、総ビット数である16512回のシフト動作を行う必要はない。短時間で補正シンドロームSCの演算を行うことができる。このとき、誤りバイト位置情報EBPおよび誤りビット位置情報EbPから、必要最小限のデータにより補正シンドロームSCを演算するので、演算に必要となる制御回路や演算に必要となるデータテーブルを小規模の回路構成にすることができる。
また、メモリ2へのアクセスは、復調器1から出力される受信データDOの格納と、受信データDOの読み出しと、訂正された受信データDCの格納とである。誤り訂正された受信データDCに対する誤り検出を行う際に、メモリ2から訂正された受信データDCを読み出す必要はなく、メモリ2へのデータのアクセス回数を減らすことができる。
ここで、補正シンドローム演算器5および加算器(EXOR)6を備えて本願の誤り検出装置が構成されている。
図4乃至図7には、第1実施形態の誤り検出装置および誤り検出方法を示す。図4は、誤り検出装置の回路図である。誤りビット位置情報EbPが格納されるレジスタ51を備え、シフト信号SFT1に応じてMSB(EbP(7))からLSB(EbP(0))に至るビットデータが順次、論理積ゲート53に入力される。
また、シンドローム格納部52を備え、受信データDOの各バイト位置(B0〜B2063)において指定ビット位置が誤りビット位置である場合のシンドロームが予め格納されている。シンドロームは図2のLFSRで示されるX〜X31の32ビット構成である。ここで、受信データを構成するバイト数は2064バイトあるので、2064種類のシンドロームが格納されている。シンドローム格納部52には、全体で32ビット×2064のビット数のビットデータが格納されている。
シンドローム格納部52には、誤りバイト位置情報EBPが入力される。誤りバイト位置情報EBPは、受信データDOにおいて誤りが存在するバイト位置を示す12ビットのビットデータである。12ビットのビットデータにより2064バイトのうちの一つが選択される。入力される誤りバイト位置情報EBPに応じて、シンドローム格納部52から該当するシンドロームが32ビット幅で出力される。出力されるシンドロームは論理積ゲート53に入力される。
尚、以下の説明では指定ビット位置は各バイト位置のLSB(EbP(0))である場合を例とする。
論理積ゲート53では、レジスタ51から出力されるビットデータが誤りビット位置を示す“1”値である場合に、シンドロームを出力する。出力されるシンドロームは、加算器(EXOR)54に入力される。加算器(EXOR)54には、図5において後述する1シフト演算器(β)57から出力される32ビット幅のビットデータが入力され、加算結果がレジスタ55に入力される。加算器(EXOR)54では、論理積ゲート53から出力されるシンドロームと1シフト演算器(β)57からの出力される32ビットのビットデータとの排他的論理和演算が行われる。
レジスタ55からの出力は、セレクタ56に入力される。セレクタ56はシフト信号SFT1で制御される。シフト信号SFT1の、誤りビット位置からLSB(EbP(0))に至るビット差分の回数、レジスタ55を1シフト演算器(β)57の入力端子に接続する。ここでは最大7回である。シフト信号SFT1により順次1シフト演算器(β)57による演算が繰り返されて、レジスタ55には補正シンドロームSCが格納される。次のシフト信号SFT1に応じてセレクタ56は加算器(EXOR)6の入力端子に接続される。加算器(EXOR)6では、LFSR4(図3)から出力される初期シンドロームSOと補正シンドロームSCとの排他的論理和演算が行われる。演算結果が誤り訂正後の受信データDCのシンドロームSである。
第1実施形態の誤り検出回路では、シフト信号SFT1に応じて、レジスタ51に格納されている誤りビット位置情報EbPが上位ビットから順次選択される。選択されたビット位置のビットデータが“1”値であり誤りのあるビット位置である場合に、誤りバイト位置情報EBPにより、受信データDO中の誤りの存在するバイト位置においてLSB(EbP(0))が誤りビット位置である場合のシンドロームが、シンドローム格納部52から加算器(EXOR)54に出力される。加算器(EXOR)54から出力される32ビットのビットデータは、一旦、レジスタ55に格納された後、シフト信号SFT1に応じて1シフト演算器(β)57でLFSR4での1シフト動作と等価な演算が行われ、加算器(EXOR)54に送られる。加算器(EXOR)54では、論理積ゲート53からシンドロームが出力されれば1シフト演算器(β)57から出力される32ビットのビットデータにシンドロームを加算(EXOR)して、またシンドロームが出力されなければ、32ビットのビットデータをそのままに、レジスタ55に送る。
図5には、1シフト演算器(β)57の演算動作を示している。ビット位置(X)に対応するビットデータとビット位置(X31)に対応するビットデータが加算(EXOR)されてビット位置(X)に対応するビットデータとされる。ビット位置(X30)に対応するビットデータとビット位置(X31)に対応するビットデータとが加算(EXOR)されてビット位置(X31)に対応するビットデータとされる。その他のビット位置(X)〜(X)、(X)〜(X29)に対応するビットデータは、ビット位置が1ビット繰り上がったビット位置(X)〜(X)、(X)〜(X30)に対応するビットデータとされる。図5に示す1シフト演算器(β)57では、LFSR(図2)における1ビットのシフト動作と等価な演算結果を、加算器(EXOR)を備えた組み合わせ論理回路により実現できることを示している。
図6を参照して、第1実施形態において補正シンドロームSOが演算される際の原理について説明する。図6に示すビット列は、誤り訂正回路3(図3)において受信データDOに対して誤り訂正が行われた際の誤り訂正情報である。図6では、第1030バイト(B1030)のバイト位置のビットデータについて誤り訂正が行われたものとする(誤りバイト位置情報EBP=B1030)。第1030バイトにおいて、第7ビット(EbP(7))および第3ビット(EbP(3))のビット位置が誤りビット位置であるとする(誤りビット位置情報EbP=“10001000”)。
第1実施形態では、シンドローム格納部52に、受信データDOにおける各バイト位置のLSB(EbP(0))が誤りビット位置である場合のシンドロームが格納されている。今、第7ビット(EbP(7))の誤りビット位置に着目し、受信データDOのそれ以外のビット位置には誤りはないものとする。これにより第7ビット(EbP(7))以外のビット位置には“0”値のビットデータが格納されていることとなる。ここで、第7ビット(EbP(7))からLSB(EbP(0))に至るまでのビット差分はΔb=7である。
シンドロームを演算するLFSR(図2)では、受信データDOはMSB(b16511)から順次入力されるので、第7ビット(EbP(7))のビット位置において、LSB(EbP(0))に誤りがある場合のシンドロームが設定される場合、このシンドロームに対してビット差分のΔb=7のシフト動作を行えば、第7ビット(EbP(7))を誤りビット位置とするシンドロームが得られる。
誤りビット位置である1ビットについてのみビットデータが“1”値に設定され、その他のビット位置のビットデータは“0”値であることにより、LSB(EbP(0))を誤りビット位置とするシンドロームに対して、LSB(EbP(0))に対して上位ビット側に存在する誤りビット位置を誤りビット位置とするシンドロームは、LSB(EbP(0))を誤りビット位置とするシンドロームに対してビット差分のシフト動作を行えば得られるからである。
第3ビット(EbP(3))を誤りビット位置とする場合も同様に、それ以外のビット位置には誤りはなく、ビットデータとして“0”値が格納されていることより、LSB(EbP(0))を誤りビット位置とするシンドロームに対してビット差分(Δb=3)のシフト動作を行えば、第3ビット(EbP(3))を誤りビット位置とするシンドロームが得られる。
巡回符号を使用した誤り検出においては、誤りビット位置ごとにシンドロームを加算(EXOR)することができるので、上記のように個々の誤りビット位置に対して、LSB(EbP(0))とのビット差分のシフト動作を行った演算結果を加算(EXOR)してやれば、全ての誤りビットに対するシンドロームを求めることができる。求められるシンドロームが補正シンドロームSCである。
図7は、第1実施形態での誤り検出方法を示す処理フローである。図6に示した誤りビット位置に対する処理フローである。図7の処理フローでは、ステップが移動するごとに、レジスタに格納されている32ビットのビットデータ(X〜X31)に対して、LSFRでの1シフト動作と等価な演算が行われる。この処理はβの乗算として表記されている。図7では、誤り訂正情報が誤りバイト位置情報EBP=B1030および誤りビット位置情報EbP=“10001000”の場合を例示したものである。
先ず、誤りバイト位置情報EBP=B1030に応じてテーブルからテーブル値として、第1030バイト(B1030)のLSB(EbP(0))を誤りビット位置とするシンドロームS(b8240)を出力する(S11)。誤りバイト位置情報EBP=B1030に対応するシンドロームS(b8240)がレジスタに格納される。ここで、b8240とは、第1030バイト(B1030)のLSB(EbP(0))のビット位置である。
次に、ビットデータとして“0”値が加算(EXOR)される。加算(EXOR)回数は3回である(S12〜S14)。加算(EXOR)された結果がレジスタに格納される。各ステップによりレジスタ値は、S(b8240)×β、S(b8240)×β、S(b8240)×βと順次変化する。この間は、加算(EXOR)されるビットデータが“0”値であるため、レジスタ値に対して、LSFRでの1シフト動作が順次行われるのに等価な演算となる。
ステップ(S15)では、再度、テーブルからテーブル値としてシンドロームS(b8240)が出力され、既にレジスタに格納されているビットデータに1シフト動作に等価な演算が施されたビットデータに加算(EXOR)され、レジスタに格納される。レジスタ値は、S(b8240)×β+S(b8240)=S(b8240)×(β+1)となる。
次に再度、ビットデータとして“0”値が加算(EXOR)される。加算(EXOR)回数は2回である(S16〜S18)。加算(EXOR)された結果がレジスタに格納される。各ステップによりレジスタ値は、S(b8240)×(β+β)、S(b8240)×(β+β)、S(b8240)×(β+β)と順次変化する。この間は、加算(EXOR)されるビットデータが“0”値であるため、レジスタ値に対して、LSFRでの1シフト動作が順次行われるのに等価な演算となる。ステップ(S18)によりレジスタに格納されるビットデータが、補正シンドロームSCである。
レジスタ値である補正シンドロームSCを、誤り訂正前に演算された初期シンドロームSOに加算(EXOR)することにより(S19)、シンドロームSが演算され、誤り検出を行うことができる。
ここで、上記の処理フローを図4の誤り処理装置での処理に対応付けて説明する。ステップ(S11)におけるテーブルは、シンドローム格納部52に格納されているシンドロームのテーブルに相当する。ステップ(S11)は、レジスタ51に格納されたMSB((EbP(7))が読み出され、誤りビットであることにより論理積ゲート53を介してシンドローム格納部52から対応するシンドロームS(b8240)が出力されることを示す。
ステップ(S12)〜ステップ(S14)、ステップ(S16)〜ステップ(S18)は、レジスタ51から出力されるビットデータが“0”値であり論理積ゲート53から“0”値が出力されることに相当する。この間は、レジスタ55に格納されているビットデータが、セレクタ56を介して1シフト演算器(β)57で1シフト動作に等価な演算が施された後、加算器54を通過してレジスタ55に戻される処理に相当する。
ステップ(S15)は、レジスタ51に格納された第3ビット(EbP(3))が読み出され、誤りビットであることにより論理積ゲート53を介してシンドローム格納部52から再度シンドロームS(b8240)が出力されることを示す。
ステップ(S19)は、加算器(EXOR)6に相当する。
図8は、第2実施形態の誤り検出回路である。レジスタ51、シンドローム格納部52、および加算器(EXOR)6は第1実施形態(図4)と同様である。第2実施形態では、第1実施形態の論理積ゲート53に代えて、レジスタ51に格納されている誤りビット位置情報EbPの各ビット位置のビットデータごとに、論理積ゲートが備えられている。各論理積ゲートは、レジスタ51の各ビットデータと、誤りバイト位置情報EBPに応じてシンドローム格納部52から出力されるシンドロームとの論理積を求め、誤りビット位置でありビットデータとして“1”値が格納されている場合にシンドロームを出力する。
出力されるシンドロームは、レジスタ51のLSB(EbP(0))に接続される論理積ゲートから出力されるものを除いて、それぞれLFSRでの所定回数のシフト動作と等価な演算結果を出力するシフト演算器(β)〜(β)58(1)〜(7)に入力される。シフト演算器(β)〜(β)58(1)〜(7)は、レジスタ51の第1ビット(EbP(1))〜第7ビット(EbP(7))の各々に対する個別シフト演算器として備えられている。シフト演算器(β)〜(β)58(1)〜(7)の各々は、レジスタ51の各ビット位置からLSB(EbP(0))に至るビット差分を所定数としてシフト動作するのと等価な演算が行われる。
シフト演算器(β)〜(β)58(1)〜(7)からの出力は、レジスタ51のLSB(EbP(0))に対応する論理積ゲートの出力と共に、加算器(EXOR)59に入力され、排他的論理和演算が行われる。加算器(EXOR)59から出力される排他的論理和演算の結果が補正シンドロームSCである。
加算器(EXOR)6では、LFSR4(図3)から出力される初期シンドロームSOと補正シンドロームSCとの排他的論理和演算が行われる。演算結果が誤り訂正後の受信データDCのシンドロームSである。
第2実施形態の誤り検出回路では、レジスタ51に格納されている誤りビット位置情報EbPについて、ビットデータが“1”値であり誤りビット位置である場合に、誤りバイト位置情報EBPにより特定される誤りの存在するバイト位置においてLSB(EbP(0))が誤りビット位置である場合のシンドロームが、(β)〜(β)58(1)〜(7)に入力される。シフト演算器(β)〜(β)58(1)〜(7)では、誤りビット位置からLSB(EbP(0))に至るビット差分のシフト動作に等価な演算が行われ、演算結果が加算器(EXOR)59で加算(EXOR)される。更に加算器(EXOR)6で初期シンドロームSOと加算(EXOR)され、シンドロームSを得ることができる。
第1実施形態の誤り検出回路(図4)において、シンドローム格納部52から出力されるシンドロームに対して、誤りビット位置からLSB(EbP(0))に至るビット差分の回数のシフト動作に等価な演算を、シフト信号SFT1で制御される回数分、1シフト演算器(β)57で繰り返し行うことに代えて、第2実施形態の誤り検出回路では、誤りビット位置ごとにシフト演算器(β)〜(β)58(1)〜(7)を備えて、誤りビット位置ごとに、誤りビット位置からLSB(EbP(0))に至るビット差分のシフト動作に等価な演算を並列処理する構成である。
ここで、シフト演算器(β)〜(β)58(1)〜(7)の回路構成の概念図を図9に示す。図5において説明した1シフト演算器をN段に直列接続すれば、N回のシフト動作に等価な演算結果を出力するシフト演算器(β)〜(β)58(1)〜(7)を得ることができる。
図10乃至図12には、第3実施形態の誤り検出装置および誤り検出方法を示す。図10は、誤り検出装置の回路図である。誤りビット位置情報EbPが下位8ビット(X〜X)に格納される32ビット長のレジスタ61を備えている。レジスタ61の上位24ビット(X〜X31)は“0”値のビットデータが格納されている。
セレクタ62は、レジスタ61からの出力されるデータと、セレクタ66を介して入力されるシフト演算器65(N)(N=0〜11)(後述)によりLFSRのシフト動作と等価な演算結果との、いずれかを選択してレジス63に出力する。レジスタ63は、シフト信号SFT2により、格納されているビットデータをセレクタ64に出力する。
セレクタ64は、シフト演算器65(N)(N=0〜11)、または加算器(EXOR)6のうち何れか一つを選択し、レジスタ63に格納されているビットデータを送出する。セレクタ66は、シフト演算器65(N)(N=0〜11)のうち何れか一つを選択し、選択されたシフト演算器65(N)による演算結果をセレクタ62に送出する。セレクタ64、66は、選択回路67により制御される。選択回路67は、同時にシフト信号SFT2を出力する。選択回路67には、誤りバイト位置情報EBPが入力されており、誤りバイト位置に応じて、セレクタ64、66を選択する信号、およびシフト信号SFT2が出力される。加算器(EXOR)6は、図3に示した加算器(EXOR)6である。
第3実施形態の誤り検出回路では、先ず、セレクタ62がレジスタ61を選択し、レジスタ63の内容をレジスタ61の内容で初期化する。その後、選択回路67により、シフト信号SFT2に応じてレジスタ63に格納されているデータが出力され、セレクタ64、66により選択されるシフト演算器65(N)での演算が行われ、演算結果がセレクタ66を介してレジスタ63に格納される。選択回路67では、補正シンドロームSCの演算に必要なシフト演算器65(N)の組み合わせが選択されるので、選択回路67により、セレクタ64、66が、選択されるシフト演算器65(N)を順次選択し、演算結果はセレクタ66、62を介してレジスタ63に順次格納される。誤りバイト位置情報EBPにより選択される全てのシフト演算器65(N)が選択されたところで、レジスタ63に格納されているビットデータは補正シンドロームSCとなる。その後、セレクタ64はレジスタ63を加算器(EXOR)6に接続する。加算器(EXOR)6では、初期シンドロームSOに補正シンドロームSCが加算(EXOR)され、シンドロームSが得られる。
図11を参照して、第3実施形態において補正シンドロームSCが演算される際の原理について説明する。図11に示すビット列は、図6に示したビット列と同じである。図4に示すとおり、LFSRには受信データDOの上位ビットから降べきにビットデータが入力される。誤りビットを有する第1030バイト(B1030)より上位のバイト位置(B1031〜B2063)では誤りビットは存在しないので、第2063バイト(B2063)から第1031バイト(B1031)までのビットデータがLFSRに入力された時点では、LFSRを構成するビット列(X〜X31)のビットデータは、全て“0”値に維持されている。
その後、LFSRには、第1030バイト(B1030)が入力され、更に第1029バイト(B1029)から第0バイト(B0)までが入力されて、シンドロームが演算される。第3実施形態では、第1030バイト(B1030)が入力され、更に第1029バイト(B1029)から第0バイト(B0)までが入力されてシフト動作が行われるLFSRの動作に等価な演算を行うものである。
先ず、第1030バイト(B1030)がLFSRに入力された状態を考える。これに先立つLFSRのビット列(X〜X31)のビットデータは全て“0”値であるので、第1030バイト(B1030)の誤りビット位置情報EbP(“10001000”)は、LFSRの下位8ビットのビット列(X〜X)に格納される。この場合、LFSRの上位24ビットのビット列(X〜X31)は、“0”値が格納されている。この状態がレジスタ61に格納される。
次に、第1030バイト(B1030)より下位の第1029バイト〜第0バイト(B1029〜B0)が入力される。これらを構成するビット位置には誤りはないのでビットデータは“0”値となる。LFSRにおいて“0”値が入力されることとなり、図2に示すように、ビット位置(X)には、ビット位置(X31)のビットデータがそのまま入力されることとなる。したがって、第1029バイト〜第0バイト(B1029〜B0)を構成するビット数である8240(=8×1030)ビットのシフト動作に等価な演算を行えばよい。これが、選択回路67によるセレクタ64、66の制御である。この制御により、シフト演算器(β8192)65(10)、(β32)65(2)、(β16)65(1)を選択する。これらのシフト演算器を順次選択して演算を行えば、8192+32+16=8240のシフト動作を行ったのと等価な演算結果を得られる。この演算を、β8192×β32×β16と表記する。
図12は、第3実施形態での誤り検出方法を示す処理フローである。図11に示した誤りビット位置に対する処理フローである。誤り訂正情報が誤りバイト位置情報EBP=B1030および誤りビット位置情報EbP=“10001000”の場合を例示したものである。
先ず、レジスタの内容を、誤りビット位置情報EbP=“10001000”を下位の8ビットのビットデータとし、上位の24ビットのビットデータを“0”値に初期化する(S21)。これにより、レジスタ値は、下位8ビットを誤りビット位置情報EbPとする初期値Iに初期化される。
次に、LFSRにおける8192回のシフト動作に等価な演算(β8192)を行う(S22)。続けて、32回のシフト動作に等価な演算(β32)(S23)、および16回のシフト動作に等価な演算(β16)(S24)を行う。これにより、レジスタ値は、I×β8192、I×β8192×β32=I×β8224、およびI×β8224×β16=I×β8240となる。これにより得られるレジスタ値(I×β8240)が補正シンドロームSCである。
レジスタ値である補正シンドロームSCを、誤り訂正前に演算された初期シンドロームSOに加算(EXOR)することにより(S25)、シンドロームSが演算され、誤り検出を行うことができる。
ここで、上記の処理フローを図10の誤り処理装置での処理に対応付けて説明する。ステップ(S21)におけるレジスタは、レジスタ61に相当する。レジスタ61は、32ビット長であり、LFSRにおいて構成されるビット列(X〜X31)において、誤りを有する第1030バイト(B1030)のビットデータが入力された状態に設定する。この状態を初期値として、下位のサイクルで所定回数のシフト動作を行う。
ステップ(S22)〜ステップ(S24)は、レジスタ63から出力されるビットデータが、セレクタ64により順次選択されるシフト演算器(β8192、β32、β16)65(10)、65(2)、65(1)に入力され、セレクタ66を介してレジスタ63に戻される処理に相当する。
ステップ(S25)は、加算器(EXOR)6に相当する。
図13は、第4実施形態の誤り検出回路である。レジスタ61、シフト演算器65(N)は、および加算器(EXOR)6は第3実施形態(図10)と同様である。第4実施形態では、第3実施形態においてシフト演算器65(N)を順次選択することに代えて、必要となるシフト演算器65(N)を同時に選択する。
シフト演算器65(11)〜65(0)ごとに、セレクタ67(11)〜67(0)が備えられている。セレクタ67(11)〜67(0)は、各々、誤りバイト位置情報EBPの各ビットデータEBP(11)〜EBP(0)により制御される。レジスタ61から出力される初期化データに対して、更に必要となるLFSRでのシフト動作に等価となるように、シフト演算器65(N)が選択され直列に接続されて、補正シンドロームSCが演算される。
以上詳細に説明したとおり、第1および第2実施形態に係る誤り検出装置および誤り検出方法によれば、受信データDOにおいて誤りを有するバイト位置のLSB(EbP(0))に誤りがある場合に演算されるシンドロームに対して、誤りを有するバイト位置における誤りビット位置からLSB(EbP(0))に至るビット差分のLFSRによるシフト動作に等価な演算を行った上で、誤りビット位置ごとに演算結果を加算(EXOR)してやれば、初期シンドロームSOに対する補正値である補正シンドロームSCを得ることができる。補正シンドロームSCを、誤りバイト位置情報EBPおよび誤りビット位置情報EbPに基づき、受信データDOの総ビット数分のシフト動作を行ってLFSRにより求める必要はなく、短時間の演算時間で初期シンドロームSOを補正することができる。
また、格納されているシンドロームは、受信データDOを構成する各バイト位置におけるLSB(EbP(0))に誤りがある場合のシンドロームであり、バイト位置ごとに1つのシンドロームが格納されているに留まる。受信データDOを構成する全てのバイト位置の全てのビット位置に誤りがある場合のシンドロームを格納する場合に比して、格納されるデータ量を低減することができる。格納領域を小さな領域に限定することができ、その制御回路も含め回路規模を圧縮することができる。
また、第1実施形態に係る誤り検出装置および誤り検出方法によれば、誤りビット位置情報EbPの上位ビットから順次ビットデータが取り出され、取り出されたビット位置ごとにシンドローム格納部52から対応するシンドロームが取り出され、以後、LSB(EbP(0))に至るビット差分のシフト動作が順次行われる。複数のビット位置に誤りがある場合には、加算器(EXOR)54により順次加算(EXOR)がされながら、シフト動作に等価な演算を順次行うことができる。シフト動作に等価な演算器として1シフト演算器(β)57を備えていればよく、小規模な回路構成で演算を行うことができる。
また、第2実施形態に係る誤り検出装置および誤り検出方法によれば、誤りビット位置情報EbPにおいて誤りを有するビット位置が複数ビットである場合に、各々の誤りビット位置に対する演算を並列に行うことができる。演算時間の短縮を図ることができる。
ここで、受信データDOにおけるバイトがデータユニットの一例であり、この場合、所定ビット数は8ビットに相当する。また、バイト内のLSB(EbP(0))が指定ビット位置の一例である。また、初期シンドロームSO、補正シンドロームSC、および補正されたシンドロームSが、それぞれ、第1、第2、および第3のシンドロームの一例である。また、誤りバイト位置情報EBPおよび誤りビット位置情報EbPが誤り訂正情報の一例である。
また、第1および第2実施形態において、シンドローム格納部52が格納部の一例である。また、第1実施形態おいて論理積ゲート53、レジスタ55、セレクタ56、および1シフト演算器(β)57が、第2実施形態において論理積ゲート、およびシフト演算器(β)〜(β)58(1)〜(7)が、演算部の一例である。また、加算器(EXOR)54、59が第1加算部の一例であり、加算器(EXOR)6が第2加算部の一例である。
また、第1実施形態おいて、レジスタ55がレジスタ部の一例であり、1シフト演算器(β)57が1シフト演算部の一例であり、レジスタ51がビット選択部の一例である。また、第2実施形態において、シフト演算器(β)〜(β)58(1)〜(7)が複数の第1シフト演算部および第1個別シフト演算部の一例であり、レジスタ51および論理積ゲートが第1選択部の一例である。
また、第3および第4実施形態に係る誤り検出装置および誤り検出方法によれば、LFSRを構成する32ビットのビット列(X〜X31)の下位8ビットに、誤りの存在するバイト位置の誤りビット位置情報EbPのビット列を割り当てて初期符号とし、総ビット数である16512ビットからバイトを構成する8ビットを減じたビット数以下のLFSRによるシフト動作に等価な演算を組み合わせれば、誤りバイト位置情報EBPにより特定されるバイト位置より下位バイト位置を構成するビット数のシフト動作と等価な演算結果を取得して補正シンドロームSCを得ることができる。補正シンドロームSCを、誤りビット位置情報EbPおよび誤りバイト位置情報EBPに基づき受信データDOの総ビット数分のシフト動作を経てLFSRにより求める必要はなく、短時間の演算時間で初期シンドロームSOを補正することができる。
この場合、各バイトのLSB(EbP(0))に誤りがある場合のシンドロームを格納しておく必要はない。格納領域およびその制御回路は不要であり、回路規模を圧縮することができる。
また、第3実施形態に係る誤り検出装置および誤り検出方法によれば、誤りビット位置情報EbPを、LFSRを構成する32ビットのビット列(X〜X31)の下位8ビットに割り当てて初期符号とする。この初期符号に対して、誤りバイト位置情報EBPにより特定されるバイト位置より下位にあるバイト位置に含まれるビット数のシフト動作をLFSRで行う必要がある。このシフト動作と等価な演算を、誤りバイト位置情報EBPよりシフト演算器65(N)(N=0〜11)を順次選択して行うことができる。この場合、誤りビット位置情報EbPは初期符号として取り込まれるので、誤りの存在するビット位置の数に関わらず同じ演算により補正シンドロームSCを演算することができる。小規模な回路構成で演算を行うことができる。
また、第4実施形態に係る誤り検出装置および誤り検出方法によれば、誤りビット位置情報EbPに対して更に必要とされるシフト動作と等価な演算は、セレクタ65(N)により同時に選択され、必要とされるシフト演算器65(N)が直列に接続される。シフト演算器65(N)を順次選択する必要はなく簡単な制御で演算を行うことができる。
ここで第3および第4実施形態において、シフト演算器65(N)(N=0〜11)が複数の第2シフト演算部の一例であり、第2個別シフト演算部の一例である。第3実施形態においてセレクタ64、66が、また第4実施形態においてセレクタ67(N)(N=0〜11)が、第2選択部の一例である。また、レジスタ61が初期設定部の一例である。
また、第3実施形態において、セレクタ62が第3選択部の一例であり、レジスタ63がレジスタ部の一例である。また、加算器(EXOR)6が第2加算部の一例である。
尚、本発明は前記実施形態に限定されるものではなく、本発明の趣旨を逸脱しない範囲内で種々の改良、変形が可能であることは言うまでもない。
例えば、本実施形態において、補正シンドロームSCを演算する場合、線形帰還シフトレジスタ(LFSR)(図2)を使用することもできる。
また、第1実施形態では、1シフト演算部(β)57に繰り返しビットデータを入力して所定回数のシフト動作と等価な演算結果を得る手段を説明したが、本発明はこれに限定されるものではなく、相異なるあるいは互いに同じシフト動作に等価な演算結果を得ることができる複数のシフト演算器を備える構成とすることもできる。
また、上記とは逆に、第2実施形態において、シフト演算部58(1)〜58(7)に代えて、1シフト演算部(β)を備えて、所定回数繰り返して演算する構成とすることもできる。
また、第3、第4実施形態においても同様に、シフト演算器65(N)の構成は、第1、第2実施形態の場合と同様に変形された構成とすることもできる。
ここで、本発明の技術思想により、背景技術における課題を解決するための手段を以下に列記する。
(付記1) 所定ビット数のビット列をデータユニットとして複数のデータユニットが配列される受信データに対して、誤り訂正前に巡回符号による第1のシンドロームを生成し、誤り訂正によって書き換えられる前記受信データの誤り訂正情報に基づき、前記第1のシンドロームの補正を行なう誤り検出装置であって、
前記データユニットごとに、前記ビット列の指定ビット位置に誤りがある場合に演算される第2のシンドロームを予め格納しておく格納部と、
前記誤り訂正情報により誤りを含むとして特定される前記データユニットにおける前記第2のシンドロームを初期符号として前記格納部より読み出し、該データユニットにおける誤りビット位置から前記指定ビット位置に至るビット差分の線形帰還シフトレジスタによるシフト動作に等価な演算結果を出力する演算部と、
前記誤りビット位置ごとに前記演算部から出力される演算結果を加算(EXOR)して第3のシンドロームとして出力する第1加算部と、
前記第1のシンドロームに前記第3のシンドロームを加算(EXOR)する第2加算部とを備えることを特徴とする誤り検出装置。
(付記2) 前記演算部は、シンドローム演算を行う前記線形帰還シフトレジスタを備えることを特徴とする付記1に記載の誤り検出装置。
(付記3) 前記演算部は、
前記データユニットにおける前記ビット列のMSBからLSBに至るビット差分以下のシフト動作であって、相異なるシフト数の前記シフト動作に等価な演算結果を出力する複数の第1シフト演算部と、
前記誤りビット位置から前記指定ビット位置に至るビット差分に応じて、前記複数の第1シフト演算部を少なくとも一つ選択する第1選択部とを備えることを特徴とする付記1に記載の誤り検出装置。
(付記4) 前記第1選択部により選択される前記複数の第1シフト演算部は、直列接続されることを特徴とする付記3に記載の誤り検出装置。
(付記5) 前記複数の第1シフト演算部は、前記データユニットにおける前記ビット列のMSBから前記指定ビット位置の1ビット上位のビット位置に至る各ビット位置に、前記各ビット位置から前記指定ビット位置に至るビット差分の前記シフト動作に等価な演算結果を出力する第1個別シフト演算部を備え、
前記第1選択部は、前記誤りビット位置に対応する前記第1個別シフト演算部に、前記第2のシンドロームを入力し、
前記第1加算部は、前記第1個別シフト演算部から出力される演算結果を加算(EXOR)することを特徴とする付記3に記載の誤り検出装置。
(付記6) 前記演算部は、
前記第2のシンドロームに初期化されるレジスタ部と、
前記レジスタ部に保持されている符号に対して、1ビットの前記シフト動作に等価な演算結果を出力して前記レジスタ部に戻す1シフト演算部とを備え、
前記ビット差分の回数、前記1シフト演算部での処理を繰り返すことを特徴とする付記1に記載の誤り検出装置。
(付記7) 前記誤り訂正情報により特定される前記データユニットの前記ビット列を、MSBからビット単位で順次選択するビット選択部を備え、
前記第1加算部は、前記ビット選択部により選択されるビット位置が誤りビット位置である場合に、前記誤り訂正情報により特定される前記データユニットの前記第2のシンドロームと、前記1シフト演算部から出力される演算結果とを加算(EXOR)し、
前記ビット選択部による選択ごとに、前記レジスタ部の内容が、前記1シフト演算部から出力される演算結果または前記第1加算部による加算(EXOR)結果で更新されることを特徴とする付記6に記載の誤り検出装置。
(付記8) 所定ビット数のビット列をデータユニットとして複数のデータユニットが配列される受信データに対して、誤り訂正前に巡回符号による第1のシンドロームを生成し、誤り訂正によって書き換えられる前記受信データの誤り訂正情報に基づき、前記第1のシンドロームの補正を行なう誤り検出装置であって、
前記受信データを構成する総ビット数から前記データユニットを構成する前記所定ビット数を減じたビット数以下のシフト動作であって、相異なるシフト数の線形帰還シフトレジスタによるシフト動作に等価な演算結果を出力する複数の第2シフト演算部と、
前記受信データのうち前記誤り訂正情報により誤りを含むとして特定される前記データユニットより下位にあるビット数の前記シフト動作に等価な演算結果を取得するために、前記複数の第2シフト演算部を少なくとも一つ選択する第2選択部と、
前記第2選択部により選択される前記複数の第2シフト演算部に対する初期符号として、前記線形帰還シフトレジスタを構成するビット列の下位に、前記誤り訂正情報により特定される前記データユニットの誤りビット位置を示すビット列を割り当てる初期設定部とを備えることを特徴とする誤り検出装置。
(付記9) 前記複数の第2シフト演算部の各々は、前記所定ビット数に2のべき乗数を乗じた数のシフト数の前記シフト動作に等価な演算結果を出力する第2個別シフト演算部を備えることを特徴とする付記8に記載の誤り検出装置。
(付記10) 前記第2選択部により選択される前記複数の第2シフト演算部は、直列接続されることを特徴とする付記8に記載の誤り検出装置。
(付記11) 前記第2選択部は、前記複数の第2シフト演算部を順次選択することを特徴とする付記8に記載の誤り検出装置。
(付記12) 最初に前記初期設定部を選択し、以後、前記第2選択部により選択された前記複数の第2シフト演算部のうちの何れか1つの演算部を選択する第3選択部と、
前記第3選択部から出力される符号を格納し、前記第2選択部により次に選択される前記複数の第2シフト演算部のうちの何れか他の1つの演算部に出力するレジスタ部とを備えることを特徴とする付記11に記載の誤り検出装置。
(付記13) 前記指定ビット位置は、前記データユニットにおける前記ビット列のLSBであることを特徴とする付記1または付記8に記載の誤り検出装置。
(付記14) 所定ビット数のビット列をデータユニットとして複数のデータユニットが配列される受信データに対して、誤り訂正前に巡回符号による第1のシンドロームを生成し、誤り訂正によって書き換えられる前記受信データの誤り訂正情報に基づき、前記第1のシンドロームの補正を行なう誤り検出方法であって、
前記データユニットごとに、前記ビット列の指定ビット位置に誤りがある場合に演算される第2のシンドロームを予め格納しておくステップと、
前記誤り訂正情報により誤りを含むとして特定される前記データユニットにおける前記第2のシンドロームを読み出すステップと、
読み出された前記第2のシンドロームを初期符号として、前記データユニットにおける誤りビット位置から前記指定ビット位置に至るビット差分の線形帰還シフトレジスタによるシフト動作に等価な演算結果を出力するステップと、
前記誤りビット位置ごとに出力される前記演算結果を加算(EXOR)して第3のシンドロームとして出力するステップと、
前記第1のシンドロームに前記第3のシンドロームを加算(EXOR)するステップとを有することを特徴とする誤り検出方法。
(付記15) 前記演算結果の出力のステップは、
前記データユニットにおける前記ビット列のMSBからLSBに至るビット差分以下のシフト動作であって、相異なるシフト数の前記シフト動作に等価な演算結果を出力する第1の複数のステップと、
前記誤りビット位置から前記指定ビット位置に至るビット差分に応じて、前記第1の複数のステップを少なくとも一つ選択するステップとを有することを特徴とする付記14に記載の誤り検出方法。
(付記16) 前記演算結果の出力のステップは、
前記第2のシンドロームを初期符号として初期化するステップと、
1ビットの前記シフト動作に等価な演算結果を出力するステップとを有し、
前記ビット差分の回数、前記1ビットのシフト数に等価な演算結果を出力するステップが繰り返されることを特徴とする付記14に記載の誤り検出方法。
(付記17) 所定ビット数のビット列をデータユニットとして複数のデータユニットが配列される受信データに対して、誤り訂正前に巡回符号による第1のシンドロームを生成し、誤り訂正によって書き換えられる前記受信データの誤り訂正情報に基づき、前記第1のシンドロームの補正を行なう誤り検出方法であって、
前記受信データを構成する総ビット数から前記データユニットを構成する前記所定ビット数を減じたビット数以下のシフト動作であって、相異なるシフト数の線形帰還シフトレジスタによるシフト動作に等価な演算結果を出力する第2の複数のステップと、
前記受信データのうち前記誤り訂正情報により誤りを含むとして特定される前記データユニットより下位にあるビット数の前記シフト動作に等価な演算結果を取得するために、前記第2の複数のステップを少なくとも一つ選択するステップと、
前記第2の複数のステップに対する初期符号として、前記線形帰還シフトレジスタを構成するビット列の下位に、前記誤り訂正情報により特定される前記データユニットの誤りビット位置を示すビット列を割り当てるステップとを有することを特徴とする誤り検出方法。
(付記18) 前記第2の複数のステップの各々は、前記所定ビット数に2のべき乗数を乗じた数のシフト数の前記シフト動作に等価な演算結果を出力することを特徴とする付記17に記載の誤り検出方法。
(付記19) 前記選択のステップは、前記第2の複数のステップを順次選択することを特徴とする付記17に記載の誤り検出方法。
DVD1セクタのデータフォーマットを示す図である。 線形帰還シフトレジスタ(LFSR)の回路図である。 実施形態の誤り検出回路を備えるデータ受信システムの回路ブロック図である。 第1実施形態の誤り検出回路を示す回路図である。 1シフト演算器(β)の構成を示す図である。 誤り情報の例と第1実施形態での補正シンドロームの導出の原理を示す図である。 第1実施形態での処理フローを示すフロー図である。 第2実施形態の誤り検出回路を示す回路図である。 シフト演算器(β)の構成を示す図である。 第3実施形態の誤り検出回路を示す回路図である。 誤り情報の例と第3実施形態での補正シンドロームの導出の原理を示す図である。 第3実施形態での処理フローを示すフロー図である。 第4実施形態の誤り検出回路を示す回路図である。
符号の説明
1 復調器
2 メモリ
3 誤り訂正回路
4 LFSR
5 補正シンドローム演算器
6 加算器(EXOR)
51、61、63 レジスタ
52 シンドローム格納部
53 論理積ゲート
54 加算器(EXOR)
56、62、64、66、67(0)〜67(11) セレクタ
57 1シフト演算器(β
58(1)〜(7) シフト演算器(β)〜(β
59 加算器(EXOR)59
65(N)(N=0〜11) シフト演算器
67 選択回路
DO 受信データ
DC 訂正された受信データ
EbP 誤りビット位置情報
EBP 誤りバイト位置情報
S シンドローム
SO 初期シンドローム
SC 補正シンドローム
SFT1、SFT2 シフト信号

Claims (10)

  1. 所定ビット数のビット列をデータユニットとして複数のデータユニットが配列される受信データに対して、誤り訂正前に巡回符号による第1のシンドロームを生成し、誤り訂正によって書き換えられる前記受信データの誤り訂正情報に基づき、前記第1のシンドロームの補正を行なう誤り検出装置であって、
    前記データユニットごとに、前記ビット列の指定ビット位置に誤りがある場合に演算される第2のシンドロームを予め格納しておく格納部と、
    前記誤り訂正情報により誤りを含むとして特定される前記データユニットにおける前記第2のシンドロームを初期符号として前記格納部より読み出し、該データユニットにおける誤りビット位置から前記指定ビット位置に至るビット差分の線形帰還シフトレジスタによるシフト動作に等価な演算結果を出力する演算部と、
    前記誤りビット位置ごとに前記演算部から出力される演算結果を加算(EXOR)して第3のシンドロームとして出力する第1加算部と、
    前記第1のシンドロームに前記第3のシンドロームを加算(EXOR)する第2加算部とを備えることを特徴とする誤り検出装置。
  2. 前記演算部は、
    前記データユニットにおける前記ビット列のMSBからLSBに至るビット差分以下のシフト動作であって、相異なるシフト数の前記シフト動作に等価な演算結果を出力する複数の第1シフト演算部と、
    前記誤りビット位置から前記指定ビット位置に至るビット差分に応じて、前記複数の第1シフト演算部を少なくとも一つ選択する第1選択部とを備えることを特徴とする請求項1に記載の誤り検出装置。
  3. 前記複数の第1シフト演算部は、前記データユニットにおける前記ビット列のMSBから前記指定ビット位置の1ビット上位のビット位置に至る各ビット位置に、前記各ビット位置から前記指定ビット位置に至るビット差分の前記シフト動作に等価な演算結果を出力する第1個別シフト演算部を備え、
    前記第1選択部は、前記誤りビット位置に対応する前記第1個別シフト演算部に、前記第2のシンドロームを入力し、
    前記第1加算部は、前記第1個別シフト演算部から出力される演算結果を加算(EXOR)することを特徴とする請求項2に記載の誤り検出装置。
  4. 前記演算部は、
    前記第2のシンドロームに初期化されるレジスタ部と、
    前記レジスタ部に保持されている符号に対して、1ビットの前記シフト動作に等価な演算結果を出力して前記レジスタ部に戻す1シフト演算部とを備え、
    前記ビット差分の回数、前記1シフト演算部での処理を繰り返すことを特徴とする請求項1に記載の誤り検出装置。
  5. 前記誤り訂正情報により特定される前記データユニットの前記ビット列を、MSBからビット単位で順次選択するビット選択部を備え、
    前記第1加算部は、前記ビット選択部により選択されるビット位置が誤りビット位置である場合に、前記誤り訂正情報により特定される前記データユニットの前記第2のシンドロームと、前記1シフト演算部から出力される演算結果とを加算(EXOR)し、
    前記ビット選択部による選択ごとに、前記レジスタ部の内容が、前記1シフト演算部から出力される演算結果または前記第1加算部による加算(EXOR)結果で更新されることを特徴とする請求項4に記載の誤り検出装置。
  6. 所定ビット数のビット列をデータユニットとして複数のデータユニットが配列される受信データに対して、誤り訂正前に巡回符号による第1のシンドロームを生成し、誤り訂正によって書き換えられる前記受信データの誤り訂正情報に基づき、前記第1のシンドロームの補正を行なう誤り検出装置であって、
    前記受信データを構成する総ビット数から前記データユニットを構成する前記所定ビット数を減じたビット数以下のシフト動作であって、相異なるシフト数の線形帰還シフトレジスタによるシフト動作に等価な演算結果を出力する複数の第2シフト演算部と、
    前記受信データのうち前記誤り訂正情報により誤りを含むとして特定される前記データユニットより下位にあるビット数の前記シフト動作に等価な演算結果を取得するために、前記複数の第2シフト演算部を少なくとも一つ選択する第2選択部と、
    前記第2選択部により選択される前記複数の第2シフト演算部に対する初期符号として、前記線形帰還シフトレジスタを構成するビット列の下位に、前記誤り訂正情報により特定される前記データユニットの誤りビット位置を示すビット列を割り当てる初期設定部とを備えることを特徴とする誤り検出装置。
  7. 前記第2選択部は、前記複数の第2シフト演算部を順次選択することを特徴とする請求項6に記載の誤り検出装置。
  8. 最初に前記初期設定部を選択し、以後、前記第2選択部により選択された前記複数の第2シフト演算部のうちの何れか1つの演算部を選択する第3選択部と、
    前記第3選択部から出力される符号を格納し、前記第2選択部により次に選択される前記複数の第2シフト演算部のうちの何れか他の1つの演算部に出力するレジスタ部とを備えることを特徴とする請求項7に記載の誤り検出装置。
  9. 所定ビット数のビット列をデータユニットとして複数のデータユニットが配列される受信データに対して、誤り訂正前に巡回符号による第1のシンドロームを生成し、誤り訂正によって書き換えられる前記受信データの誤り訂正情報に基づき、前記第1のシンドロームの補正を行なう誤り検出方法であって、
    前記データユニットごとに、前記ビット列の指定ビット位置に誤りがある場合に演算される第2のシンドロームを予め格納しておくステップと、
    前記誤り訂正情報により誤りを含むとして特定される前記データユニットにおける前記第2のシンドロームを読み出すステップと、
    読み出された前記第2のシンドロームを初期符号として、前記データユニットにおける誤りビット位置から前記指定ビット位置に至るビット差分の線形帰還シフトレジスタによるシフト動作に等価な演算結果を出力するステップと、
    前記誤りビット位置ごとに出力される前記演算結果を加算(EXOR)して第3のシンドロームとして出力するステップと、
    前記第1のシンドロームに前記第3のシンドロームを加算(EXOR)するステップとを有することを特徴とする誤り検出方法。
  10. 所定ビット数のビット列をデータユニットとして複数のデータユニットが配列される受信データに対して、誤り訂正前に巡回符号による第1のシンドロームを生成し、誤り訂正によって書き換えられる前記受信データの誤り訂正情報に基づき、前記第1のシンドロームの補正を行なう誤り検出方法であって、
    前記受信データを構成する総ビット数から前記データユニットを構成する前記所定ビット数を減じたビット数以下のシフト動作であって、相異なるシフト数の線形帰還シフトレジスタによるシフト動作に等価な演算結果を出力する第2の複数のステップと、
    前記受信データのうち前記誤り訂正情報により誤りを含むとして特定される前記データユニットより下位にあるビット数の前記シフト動作に等価な演算結果を取得するために、前記第2の複数のステップを少なくとも一つ選択するステップと、
    前記第2の複数のステップに対する初期符号として、前記線形帰還シフトレジスタを構成するビット列の下位に、前記誤り訂正情報により特定される前記データユニットの誤りビット位置を示すビット列を割り当てるステップとを有することを特徴とする誤り検出方法。
JP2006295710A 2006-10-31 2006-10-31 誤り検出装置および誤り検出方法 Withdrawn JP2008112522A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2006295710A JP2008112522A (ja) 2006-10-31 2006-10-31 誤り検出装置および誤り検出方法
US11/907,125 US20080104487A1 (en) 2006-10-31 2007-10-09 Error detection apparatus and error detection method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006295710A JP2008112522A (ja) 2006-10-31 2006-10-31 誤り検出装置および誤り検出方法

Publications (1)

Publication Number Publication Date
JP2008112522A true JP2008112522A (ja) 2008-05-15

Family

ID=39331861

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006295710A Withdrawn JP2008112522A (ja) 2006-10-31 2006-10-31 誤り検出装置および誤り検出方法

Country Status (2)

Country Link
US (1) US20080104487A1 (ja)
JP (1) JP2008112522A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5212369B2 (ja) * 2007-06-15 2013-06-19 富士通株式会社 演算器及び演算器の制御方法
US9467174B2 (en) 2014-03-14 2016-10-11 Samsung Electronics Co., Ltd. Low complexity high-order syndrome calculator for block codes and method of calculating high-order syndrome

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH01201736A (ja) * 1988-02-08 1989-08-14 Mitsubishi Electric Corp マイクロコンピュータ
FR2735889B1 (fr) * 1995-06-22 1997-09-05 Sgs Thomson Microelectronics Circuit de calcul de syndrome
JP3272307B2 (ja) * 1998-09-22 2002-04-08 インターナショナル・ビジネス・マシーンズ・コーポレーション リード・ソロモン符号の復号回路
US6604222B1 (en) * 1999-04-30 2003-08-05 Rockwell Collins, Inc. Block code to efficiently correct adjacent data and/or check bit errors
US6971056B1 (en) * 2000-03-13 2005-11-29 Motorola, Inc. Decoder-usable syndrome generation with representation generated with information based on vector portion
US7003715B1 (en) * 2001-03-30 2006-02-21 Cisco Technology, Inc. Galois field multiply accumulator
US6983414B1 (en) * 2001-03-30 2006-01-03 Cisco Technology, Inc. Error insertion circuit for SONET forward error correction
US6990624B2 (en) * 2001-10-12 2006-01-24 Agere Systems Inc. High speed syndrome-based FEC encoder and decoder and system using same

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5212369B2 (ja) * 2007-06-15 2013-06-19 富士通株式会社 演算器及び演算器の制御方法
US9467174B2 (en) 2014-03-14 2016-10-11 Samsung Electronics Co., Ltd. Low complexity high-order syndrome calculator for block codes and method of calculating high-order syndrome

Also Published As

Publication number Publication date
US20080104487A1 (en) 2008-05-01

Similar Documents

Publication Publication Date Title
US6029186A (en) High speed calculation of cyclical redundancy check sums
EP0155038B1 (en) Fast decoder for reed-solomon codes which can also be used as an encoder, and recording/playback apparatus comprising such an encoder/decoder
JP2005218098A (ja) 順方向のチェンサーチ方式のリードソロモンデコーダ回路
US6543026B1 (en) Forward error correction apparatus and methods
US5805617A (en) Apparatus for computing error correction syndromes
CN101814922A (zh) 基于bch码的多位错纠错方法和装置以及存储***
JPH0728227B2 (ja) Bch符号の復号装置
JPH10112659A (ja) 誤り訂正復号装置
JP2000004169A (ja) Crc演算方法及びcrc演算回路
JP2001127645A (ja) 誤り訂正方法および誤り訂正装置
JP3245290B2 (ja) 復号方法とその装置
JP2008112522A (ja) 誤り検出装置および誤り検出方法
US5666369A (en) Method and arrangement of determining error locations and the corresponding error patterns of received code words
JP2001292066A (ja) 誤り訂正装置および誤り訂正方法
JP3812983B2 (ja) エラー評価多項式係数計算装置
JPH10322226A (ja) リードソロモン復号方法
JP2000295116A (ja) 誤り修正符号化方法
JP3223513B2 (ja) 誤り訂正復号装置
JPS6217256B2 (ja)
JP3239866B2 (ja) Crcに基づくデータ検査方法及び装置並びに記録媒体
JP2752510B2 (ja) 誤り訂正復号器
KR100335482B1 (ko) 에러정정시스템
KR20000062472A (ko) 에러 검출 장치 및 그 방법
KR900000670Y1 (ko) 리드-솔로몬 엔코오더의 코오드워드 발생회로
JP2797569B2 (ja) ユークリッドの互除回路

Legal Events

Date Code Title Description
A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A712

Effective date: 20080728

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20090724

RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20090724

A761 Written withdrawal of application

Free format text: JAPANESE INTERMEDIATE CODE: A761

Effective date: 20100820