JPH09507118A - 巡回冗長検査方法および装置 - Google Patents

巡回冗長検査方法および装置

Info

Publication number
JPH09507118A
JPH09507118A JP7513259A JP51325995A JPH09507118A JP H09507118 A JPH09507118 A JP H09507118A JP 7513259 A JP7513259 A JP 7513259A JP 51325995 A JP51325995 A JP 51325995A JP H09507118 A JPH09507118 A JP H09507118A
Authority
JP
Japan
Prior art keywords
crc
generator
information
crc information
decoded
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
Application number
JP7513259A
Other languages
English (en)
Inventor
クリストファー ピー. ズーク,
Original Assignee
シーラス ロジック, インコーポレイテッド
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 シーラス ロジック, インコーポレイテッド filed Critical シーラス ロジック, インコーポレイテッド
Publication of JPH09507118A publication Critical patent/JPH09507118A/ja
Pending legal-status Critical Current

Links

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
    • H03M13/091Parallel or block-wise CRC computation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1004Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's to protect a block of data words, e.g. CRC or checksum
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1068Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices in sector programmable memories, e.g. flash disk
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/10Digital recording or reproducing
    • G11B20/18Error detection or correction; Testing, e.g. of drop-outs
    • G11B20/1833Error detection or correction; Testing, e.g. of drop-outs by adding special lists or symbols to the coded information
    • 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
    • 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/35Unequal or adaptive error protection, e.g. by providing a different level of protection according to significance of source information or by adapting the coding according to the change of transmission channel characteristics

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Quality & Reliability (AREA)
  • General Physics & Mathematics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Signal Processing (AREA)
  • Computing Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • Error Detection And Correction (AREA)
  • Detection And Correction Of Errors (AREA)

Abstract

(57)【要約】 1段および2段CRC生成システム(400、600)は、入力データストリームをサブストリームにするセグメント化器(710)と、サブストリームの線形結合を形成し、それからCRCバイトを生成する回路(712)と、CRCバイトを以前に生成されたCRCバイトと比較する検査器(714)とを備えたCRC生成器/検査器(700)を特徴とする。2段システム(600)は、1次CRCバイトを生成する第1CRC生成器/検査器(601)と、入力データおよび1次CRCバイトを受け取るメモリと、メモリ(602)から取り出された後でかつ符号器(604)に入力される前に入力データを検査するために、1次CRCバイトとの比較のためにベリファイ用CRCバイトを生成する第2CRC生成器/検査器(603)と含む。第2CRC生成器/検査器(603)は、2次CRCバイトとして用いるためにあるいはベリファイ用CRCバイトを符号器(604)に与えてもよい。CRC生成器/検査器(601、603)によって出力されるCRCバイトの数は、プログラマブルである。

Description

【発明の詳細な説明】 巡回冗長検査方法および装置 背景 関連出願の相互参照 本特許出願は、ここで参考のために援用される1993年11月4日に出願された「 2つの目的の巡回冗長検査」と題された米国特許出願第08/147,865号の継続出願 である。本特許出願と同時に出願され、ここで参考のために援用される特許出願 (発明者:Christopher P.Zook)には、「有限体反転」と題された米国特許出願 第08/ , 号(代理人書類番号:1777-6)、「バースト誤り訂正器」と題された 米国特許出願第08/ , 号(代理人書類番号:1777-9)、「リードソロモン復号 器」と題された米国特許出願第08/ , 号(代理人書類番号:1777-7)、「誤り 訂正方法および装置」と題された米国特許出願第08/ , 号(代理人書類番号 :1777-10)がある。1993年11月4日に出願された米国特許出願第08/147,865号と 同時に出願された特許出願(これらすべてはここで参考のために援用される)に は、「有限体反転」と題された米国特許出願第08/147,758号、「バースト誤り訂 正」と題された米国特許出願第08/148,068号、「リードソロモン検出器」と題さ れた米国特許出願第08/147,650号がある。 1.発明の分野 この発明は、おおまかにはディジタルデータ通信システムに関しており、特に 符号を用いることによって送信誤りを検出することに関する。 2.関連技術およびその他の考察 ディジタルデータ通信システム(電子的なメモリ、光学媒体または磁気媒体に 対する格納および読み出しを含む)において、誤りは、ノイズ、媒体の欠陥また は回路の故障の結果、生じることがある。信頼性の高い通信のためには、すべて の送信誤りをある程度の確度で検出することが必要である。これをおこなうひと つの方法には、巡回冗長検査シンボル、つまりCRCの使用がある。一般にCR Cは、データを多項式の係数として扱い、そのデータを他の多項式によって除し て、その剰余を保存することによって計算される。データおよびCRCは、とも に符号語を構成し、あとで通信チャネルへと送信される。通信チャネルの受信端 においては、CRCは、再び計算されてもとのデータと比較される。ふたつのC RCの間の不一致(discrepancy)が送信誤りを示す。 アプリケーションによっては、誤り訂正キャラクタ(ECC)を付加すること で、データおよびCRCがともにひとつの誤り訂正符号に符号化されることもあ る。訂正プロシージャが用いられたあとに、CRCは、訂正器によって検出され なかったか、誤って訂正された誤りを検出するために用いられる。 データは、バイナリビットの列、またはマルチビットシンボルの列とみること ができる。一般にビット指向の(bit-oriented)CRCは、予想される誤りがラ ンダムビット誤りであるときに望ましく、シンボル指向CRCは、予想される誤 りがバースト誤りまたはランダムシンボル誤りであるときに望ましい。 図1は、典型的なビット指向の8ビットCRC生成器であり、ここでシリアル 入力は、DATA(データ)ライン上に与えられる。図1の生成器は、8ビット のCRCキャラクタを生成する。このキャラクタは、シリアルデータストリーム のうち最大で2ビットに影響する誤りを検出するために用いられる。 図2は、典型的なバイト指向の8ビットCRC生成器を示す。ここでD0〜D7 は、入力データバイトを構成する。図2の生成器は、8ビットのCRCキャラク タを生成する。このキャラクタは、単一バイトの誤りを検出するために用いられ る。しかし2ビットの誤りならなんでも検出できるわけではない。なぜなら2つ の誤りが2つの異なるバイトに存在することもあるからである。 図3は、データ送信システムを示す。このシステムは、一時的な記憶のための ダイナミックRAM(DRAM)と、例えば磁気記憶でありうる通信チャネルと を含む。このシステムは、通信チャネルで起こる誤りを訂正するためにECCシ ステムを用いている。またこのシステムは、DRAMから取り出されたデータに おける誤りをチェックするためと、訂正器の結果をチェックするためとに2バイ ト CRCを採用している。ECCの目的のためにデータは、3つのインタリーブに 区切られている。それぞれのインタリーブは、1つのECC符号語を構成し、こ の符号語は、それぞれのインタリーブにおいて1バイトを訂正できる2つのEC Cバイトを含んでいる。これは、1バイトだけ訂正できるECCを用いて、シス テムが3バイトのバースト誤りを訂正できるようにするためのありふれたテクニ ックである。概念的には、図3のシステムを用いたECC生成においては、1番 目のデータバイトがECC生成器1に入り、2番目のバイトがECC生成器2に 入り、3番目のバイトがECC生成器3に入り、4番目のバイトがECC生成器 1に入り、などとなる。データが生成器に入力されたあと、1番目のECCバイ トは、最後のデータバイトを受け取った生成器に続く生成器から出力され、残り のECCバイトは、前述と同じシーケンスで生成器から取り出される。すべての 信号線は、8ビット幅である。 図3のCRCシステムは、DRAMから読み出されたデータのブロックにおけ るすべての2バイト誤りを検出する(その結果、すべての2ビット誤りも検出す る)。しかしどのようなCRCおよびECC多項式が用いられようとも、1つの インタリーブにおいて3つの誤りが存在することもあり、これは、ECCやCR Cでは検出されない。 要約 本発明は、プログラマブルCRC生成器/検査器を含む1段および2段のCR C生成システムの両方に特徴がある。CRC生成器/検査器は、セグメント化回 路(ユーザデータの入力ストリームを複数mのサブストリームにセグメント化す る回路)と、この複数mのサブストリームの線形結合(linearcombination)を 形成し、CRCバイトを生成するために線形結合に操作する回路と、生成された CRCバイトを以前に生成されたCRCバイトと比較する検査器回路とを備えて いる。 2段システムの符号化操作の前にCRCバイトの準備に関連して、入力ユーザ データは、K1個の1次CRCバイトを生成するための第1CRC生成器/検査 器にまず与えられる。入力ユーザデータおよびこれに付随する結果的に得られた CRCバイトは、その後、メモリに格納される。符号化の前に、メモリから得ら れたデータブロック(ユーザデータおよび1次CRCバイトの両方を含む)は、 第2CRC生成器/検査器に与えられる。メモリからのユーザデータは、照合(v erification)CRCバイトを生成するために第2CRC生成器/検査器によって 利用される。照合CRC情報ユニットの生成に続いて、K1個の照合クロックサ イクルのあいだ、メモリについて起こる誤りを検出するために、最初のK1番目 の照合CRCバイトは、K1個の1次CRCバイトと比較される。照合の後で、 第2CRC生成器/検査器によって生成された(K2−K1)個の照合CRCバイ トは、2次CRCバイトとして選択的に符号器に与えられ、それにより、符号化 および記憶媒体上へのブロックの記憶の前に、追加CRC情報を加える。 2段システムの復号化操作の後のCRC情報の処理について、復号化されたユ ーザデータ(CRCバイトを含む)は、第2CRC生成器/検査器およびメモリ の両方に与えられる。第2CRC生成器/検査器は、符号化操作の前におこなう のと同様にユーザデータおよびCRCバイトを受け取り、復号化されたデータか ら得られた同じ個数の対応するCRCバイトと比較するためにK2個の照合CR Cバイトを生成する。ホストへと送るために復号化されたデータがメモリから取 り出されるときには、復号化されたデータは、メモリ誤りをチェックするために 第1CRC生成器/検査器に送られる。 第1CRC生成器/検査器および第2CRC生成器/検査器は、k個のCRC バイトを生成するように構成される。しかしそれぞれ第1および第2CRC生成 器/検査器によって実際に出力されるCRCバイトの個数であるK1個およびK2 個はプログラム可能なので、特定の符号化/復号化操作のために、かつある符号 化/復号化操作からべつの操作に変えられるように、K1およびK2は等しくなく てもよい(例えばK1>K2)であってもよい。 図面の簡単な説明 本発明の前述した、または他の目的、特徴および効果は、添付の図面に示され るように後述する好ましい実施形態のより具体的な記載から明らかだろう。ここ で同じ参照符号は、さまざまな図において同じ部分を示す。図面は必ずしも同一 のスケールではなく、本発明の原理を示すために強調されていることもある。 図1は、典型的なビット指向の8ビットCRC生成器の構成を示すブロック線 図である。 図2は、典型的なバイト指向の8ビットCRC生成器の構成を示すブロック線 図である。 図3は、CRC生成器および検査器、DRAM、およびECC保護がなされた 通信チャネルを含むデータパスの構成を示すブロック線図である。 図4は、本発明の実施例によるメモリ誤り検査をおこなう1段CRC生成シス テムの構成を示すブロック線図である。 図4Aは、加算器および従来のCRC生成器を用いる図4の1段CRC生成シ ステムの構成を示すブロック線図である。 図5は、図4Aの加算器の構成を示すブロック線図である。 図6は、本発明の実施例による2段CRC生成システムの構成を示すブロック 線図である。 図7は、図6のCRC生成システムのCRC生成器/検査器の構成を示すブロ ック線図である。 図7Aは、図7のCRC生成器/検査器の実施例の構成を示すブロック線図で ある。 図8は、符号化の前の2段CRC生成について、図6のCRC生成システムに よって実行される基本ステップを示すフローチャートである。 図面の詳細な説明 本発明には、1段および2段のCRC生成システムがある。図4は、一般化さ れた1段CRC生成システム400を示しており、付随してメモリ誤り検査も設け られている。図6は、一般化されたCRC生成システム600を示しており、イン ラインメモリ検査も設けられる。後で述べるように、1段CRCシステム400お よび2段CRCシステム600はともに、図7に基本的に示されたタイプの新規な CRC生成器/検査器であるCRC生成器/検査器を用いる。図4および図6に 示された実施例において、CRCシステム400および600は、好ましい実施形態 において、3ウェイインタリーブリードソロモン符号(three-way interleaved Reed-Solomon code)であるECCシステムと関連して用いられる。 本発明は、CRC情報ユニット(例えばバイト)を生成し、かつ検査すること ができ、オーダプログラマブルである(order-programmable)方法および装置を 含む。CRCバイトは、DRAMにおいて起こるランダム誤りを検出するために 用いられるとともに、通信チャネルにおいて起こる訂正不可能な誤りを検出する ためにも用いられる。 単一段システム 図4の1段CRC生成システム400には、符号化側および復号化側がある。シ ステム400の符号化側は、CRC生成器401、メモリ(例えばDRAM)402、E CC生成器4201、4202、4203、およびCRC検査器回路422を備えており、すべ ては符号化制御器426に制御される。システム400の符号化側は、符号化されたデ ータ(CRCおよびECCバイトを含む)を通信チャネル430に出力する。通信 チャネル430は、こんどは受け取ったデータを復号化側へと出力する。システム4 00の復号化側は、誤り訂正ユニット432およびCRC検査器回路434を備えており 、いずれも復号化制御器436に制御される。 システム400の符号化側は、入力電気信号をポート440(例えば、ホストデバイ スからのポート)において受け取る。ここで用いられるように、ポート440のよ うなポートは、ユーザデータストリームを表す電気信号列を受け取る。このユー ザデータストリームは、それぞれのバイトが有限体GP(2P)の元である複数のバ イトからなり、1つのバイトは、pビットの任意長でありうる。ユーザデータス トリームは、ディジタルデータを表す電気的信号のブロックにまとめられ、それ ぞれのブロックは、n個のデータシンボルを含み、数学的に多項式D(x)によっ て表現される。 ポート440からの電気信号は、CRC生成器401の入力ポートとおよびマルチプ レクサ442の第1入力ポートとに与えられる。CRC生成器401の出力ポートは、 マルチプレクサ442の第2入力ポートに接続されている。マルチプレクサ442の出 力ポートは、DRAM402のデータ入力ポートに接続されている。 DRAM402のデータ出力ポートは、チャネルマルチプレクサ444の第1入力ポー トと、CRC検査器422の入力ポートと、ECC生成器4201、4202、4203のうち の選択された1つ(ECC入力マルチプレクサ446を介して)とに接続されてい る。ECC生成器420の出力ポートは、ECC出力マルチプレクサ448のそれぞれ の入力ポートに接続されている。 符号化制御器426は、システム400の符号化側の構成要素のシーケンス(例えば タイミング)および動作を制御し、これには、そのような要素への、またはその ような要素からの信号の印加(例えばマルチプレクシング)が含まれる。制御器 426は、アドレスおよび制御バスによってDRAM402に接続されており、マルチ プレクサ選択(MUX SELECT)バス452によってマルチプレクサ442、444 、446および448に接続されており、CRC生成器制御バス454によってCRC生 成器401に接続されており、CRC検査器制御バス456によってCRC検査器422 に接続されている。例えばECC生成器420を制御するための図示されていない 接続のように、上述の、または他の、制御器426の図示されていない接続につい ては、当業者であれば理解できるだろう。 システム400の復号化側において、誤り訂正ユニット432は、チャネル430から のデータを受け取り、訂正する。訂正されたデータは、データバス460上に出力 され、またこのデータは、CRC検査器434にも与えられる。復号化制御器436は 、CRC検査器434の動作を制御するためにCRC検査器制御バス462によって接 続されている。 ある実施例では、CRC生成器401、CRC検査器422およびCRC検査器434 は、あとで図7に示されるように、新規な生成器/検査器のかたちをとる。しか し図4Aに示される別の実施例(システム400A)では、CRC生成器401、CR C検査器422およびCRC検査器434は、それぞれmウェイ加算器回路471、472お よび474が付加された従来のCRCユニットである。すなわち、mウェイ加算器4 71、472および474は、それぞれのCRC生成器/検査器401、422、434の上流側 に接続されている。その他の点においては、システム400Aの要素は、システム4 00の同じ番号が付された要素と同様である。 図5は、mウェイ加算器回路471、472および474の構成を示す。それぞれ のmウェイ加算器回路は、加算器480およびレジスタ482を含む。図4Aに示すシ ステム400Bにおいて、それぞれのmウェイ加算器回路は、3ウェイ加算器回路 である。 図4Aに示すシステム400Aは、ポート440からの入力ユーザデータが3バイト のグループにセグメント化されることを除き、図3に示すそれと同様である。そ れぞれのグループにおける3バイトの和は、従来のCRC生成器410に送られる 。それぞれのグループの1番目のバイトは、最終的にはECC生成器4201に送ら れ、それぞれのグループの2番目のバイトは、最終的にはECC生成器4202に送 られ、それぞれのグループの3番目のバイトは、最終的にはECC生成器4203に 送られる。CRC生成器401は、3バイトごとに1度だけクロックが合わされる 。図5において、レジスタ482は、3バイトのそれぞれのグループうちの3番目 のクロックでリセットされる。 2段システム 図6は、1次CRC情報を生成する第1CRC生成器/検査器601、メモリ( 例えばDRAM)602、第2CRC生成器/検査器603(例えば2次CRC情報を 生成するためのもの)、符号器(リードソロモン符号器のような)604、データ利 用デバイス(ディスクサブシステムのような)605、復号器(リードソロモン復 号器のような)606、および制御器626を備えている2段CRC生成システム600 を示す。 システム600は、図示しないホストデバイスに接続されたホストポート640も含 む。ホストポート640は、入力ユーザデータストリームを、DRAM入力マルチ プレクサ642の第1入力ポートと、第1CRC生成器マルチプレクサ643の第1入 力ポートとに出力するように接続されている。マルチプレクサ643の出力ポート は、第1CRC生成器/検査器601の入力ポートに接続されている。生成器/検 査器601の出力ポートは、DRAM入力マルチプレクサ642の第2入力ポートに接 続されている。DRAMマルチプレクサ642の出力ポートは、DRAM602の第1 入力ポートに接続されている。DRAM602の第1出力ポートは、符号器入力マ ルチプレクサ644の第1入力ポートと、第2CRC生成器/検査器 マルチプレクサ645の第1入力ポートとの両方に接続されている。マルチプレク サ645の出力ポートは、第2CRC生成器/検査器603の入力ポートに接続されて いる。生成器/検査器603の出力ポートは、符号器入力マルチプレクサ644の第2 入力ポートに接続されている。マルチプレクサ644の出力ポートは、符号器604の 入力ポートに接続されている。 ディスクサブシステム605は、データ入力ポートおよびデータ出力ポートの両 方を有する。ディスクサブシステム605のデータ入力ポートは、符号器604の出力 ポートからデータを受け取るように接続されている。ディスクサブシステム605 のデータ出力ポートは、復号器606の入力ポートにデータを出力するように接続 されている。 復号器606の出力ポートは、第2CRC生成器マルチプレクサ645の第2入力ポ ートとDRAM602の第2データ入力ポートとの両方に接続されている。DRA M602は、ホストポート646と、第1CRC生成器マルチプレクサ643の第2入力 ポートとの両方に接続されている第2出力ポートを有する。 制御器626は、ここで説明されるように、またそうでなければ当業者には理解 できるように、システム600の構成要素の動作のタイミングおよびシーケンスを 制御するように接続されている。例えば、制御器626は、マルチプレクサ選択バ ス650によってマルチプレクサ642、643、644および645に接続されており、DR AMアドレス・制御バス652によってDRAM602に接続されており、第1CRC 生成器制御バス654によって第1CRC生成器/検査器601に接続されており、第 2CRC生成器制御バス656によって第2CRC生成器/検査器603に接続されて おり、符号器制御バス690によって符号器604に接続されており、復号器制御バス 692によって復号器606に接続されている。制御器626は、プログラミングシステ ム600のための入力値を得るために複数の入力ポート6271および6272を有する。 具体的には、入力ポート6271は、第1CRC生成器/検査器601によって出力さ れるCRCバイトの数を決める値K1を受け取り、入力ポート6272は、第2CR C生成器/検査器603によって出力されるCRCバイトの数を決める値K2を受け 取る。 システム600においては、第1のCRC生成器/検査器601は、ホストデバイ スから受け取られた入力ユーザデータに基づいて1次CRC情報を生成するため にホストポート(640)に接続されている(MUX643を介して)。メモリ602は、 ホストデバイスから受け取られた入力ユーザデータと、それについて第1CRC 生成器/検査器601によって生成された1次CRC情報とを格納する。MUX645 を介してメモリ602に接続された第2CRC生成器/検査器603は、メモリ602か ら取り出されたデータを検査し、(場合によっては)1次CRC情報を含むメモ リ602から得られたデータに基づいて2次CRC情報を生成する役割をはたす。 符号器604は、1次CRC情報を含むメモリ602から得られたデータとともに、第 2CRC生成器/検査器603から得られたオプショナルな2次CRC情報を利用 することによって、符号化された情報をつくる。 復号器606は、入力データを受け取り、入力データを、復号化されたCRC情 報を含む復号化された入力データに復号化する。復号器606は、復号化されたC RC情報を含む復号化された入力データを第2CRC生成器/検査器603と、メ モリ602とに与える。第2CRC生成器/検査器603は、復号化された入力データ に含まれる復号化されたCRC情報が正確であるかどうかを検査する。第1CR C生成器/検査器601は、メモリ602から受け取られた復号化されたCRC情報が 正確であるかどうかを検査するために、メモリ602に格納された復号化されたC RC情報を含む復号化された入力データを受け取るように接続されている。 以上のように、符号化動作においては、第2CRC生成器/検査器603は、1 次CRC情報と、第2CRC生成器/検査器603によって生成されたベリファイ 用CRC情報とを比較することによって、メモリ602に起因する誤りを決定する 。符号器604は、第2CRC生成器/検査器603にも接続されており、符号化され た情報をつくるために2次CRC情報を利用することもする。逆に、復号化動作 においては、第1CRC生成器/検査器601が、メモリ602に起因する誤りを決定 する。 CRC生成器/検査器構成 図7は、ここで説明するCRC生成器およびCRC検査器として用いるのに適 したCRC生成器/検査器700をおおまかに示す。生成器/検査器700は、基本的 に、セグメント化回路710、スイッチつまりマルチプレクサ701、CRC情報を生 成するための、ユーザデータサブストリームの線形結合(linearcombination) をつくり、用いる回路712、および誤り検査器回路714を含む。セグメント化回路 710は、スイッチ701に与えるために、ユーザデータの入力ストリームを複数m個 のサブストリームにセグメント化する役割をはたす。スイッチ701は、クロック サイクルに応じて複数のユーザデータサブストリームから選択し、選択されたユ ーザデータサブストリームを回路712に与える。結果として得られるCRC情報 は、好ましくはCRCバイトのかたちをしており、パラレルCRCバス716に出 力される。それ以前に受け取られたデータに基づいて生成された受け取られたC RC情報を検査するために、生成器/検査器700が用いられるときは、以前に生 成されたCRC情報は、誤り検査器714によって、回路712によって現在、生成さ れている(同じユーザデータについて)ベリファイ用CRC情報と比較される。 もし以前に生成されたCRC情報と、現在、生成されているベリファイ用CRC 情報とが異なれば、CRC誤り線718に誤り信号が生成される。 図7Aは、CRC生成器/検査器700のある具体的なインプリメントの詳細な 構成を示しており、具体的なインプリメントはm=3である。したがって、図7A のセグメント化回路710は、3つのサブストリーム線7070、7071および7072を含 むように描かれている。後述する理由から、サブストリーム線7071および7072は 、それらに接続された乗算器M1およびM2を有する。スイッチ701は、制御器626 によって選択される(制御バスを介して)入力を有する3入力マルチプレクサで ある。マルチプレクサ701の出力ポートは、それによって選択されたサブストリ ームを加算器入力バス720に与えるように接続されている。 図7Aに示すように、回路712は、サブストリームの線形結合についてkバイ トの大きさのCRC情報を生成するためのk個のサブ回路7221〜722kを備えてい る。以下に述べるように、それぞれのサブ回路722は、αのべき乗である除数を もつ除算器である。それぞれのサブ回路722は、加算器入力マルチプレクサ702、 加算器703、乗算器704、CRC情報を格納するレジスタ705、およびレジ スタ入力マルチプレクサ708を備えている。それぞれの加算器703は、第1入力ポ ート、第2入力ポートおよび出力ポートを有する。それぞれの加算器703の第1 ポートは、加算器入力バス720に接続されており、その結果、複数のサブストリ ームがそれにマルチプレクシングされる。それぞれの乗算器704は、それに付随 する加算器703の第2入力ポートに選択的に接続された(付随するマルチプレク サ702の第1入力ポートを介して)その出力ポートを有する。それぞれのレジス タ705は、付随する加算器703の出力ポートに接続された入力ポートを有しており 、その出力ポートは、加算器703の第2入力ポートに選択的に接続されている(付 随するマルチプレクサ702の第1入力ポートを介して)。それぞれのレジスタ705 は、誤り訂正符号に関連したCRCバイトのかたちでCRC情報を格納する。マ ルチプレクサ702および708のそれぞれは、制御器626によって制御される(例え ば制御バス654を介して)。 上記からわかるように、サブ回路722は、第1サブ回路7221からk番目のサブ 回路722kまで番号が付けられている。サブ回路722のレジスタ705は、それに格納 されたCRC情報が右方向にシフトされるように接続されている。右方向シフト は、レジスタ705においてCRCバイトを生成するために実行されるnクロック サイクル後におこなわれる。CRCバイトを生成するためにnクロックサイクル が実行されると、レジスタ705におけるCRCバイトは、所望の数のクロック( 制御器626に入力される)だけ右方向に、クロックあたり1つのレジスタ(例え ば1つのサブ回路)だけシフトされる。例えば、第1CRC生成器/検査器601 の動作を考慮すると、もし入力値4が制御器626の入力ポート6271に入力される なら、最初のシフトクロックサイクルの間にレジスタ7051におけるCRCバイト は、シフトされてCRCバス716に出て、レジスタ7052におけるCRCバイトは 、シフトされてレジスタ7051に入り、レジスタ7053におけるCRCバイトは、シ フトされてレジスタ7052に入る、などとなる。このようなシフトは、4シフトク ロックサイクルのあいだ続き、その結果、最初にレジスタ7051〜7054にあったC RC値は、最終的にはシフトされてCRCバス716に出る。 乗算器704の値は、乗算器がある体の元αのべき乗によって乗算するように選 ばれ、べき乗は、第1サブ回路7221の乗算器についてはr+1であり、k番目 のサブ回路722kの乗算器についてはr+kである。 加算器7031の出力ポートは、誤り検査器回路714と、MUX708kとに接続され ている。図7Aに示されるように、誤り検査器回路714は、加算器7031の出力ポ ートに接続されている8入力ORゲート709を備えている。誤り検査器回路714は 、さらにANDゲート730およびR/Sフリップフロップつまりラッチ732を含む 。ORゲート709の出力ピンは、ANDゲート730の第1入力ピンに接続されてお り、ANDゲート730の第2入力ピンは、制御器626から信号CRC TIMEを受 け取るように接続されている。ANDゲート730の出力ピンは、フリップフロッ プ732のセットピンに接続されており、フリップフロップ732のリセットピンは、 制御器626からの信号RSTを受け取る。後述するような方法で加算器7031は、 以前に生成されたCRC情報を現在、生成されているCRC情報とベリファイす ることに関わるので、サブ回路7221は、「比較」サブ回路と名付けられている。 2段符号化動作 図8は、符号化の前の2段CRC生成に関する、図6のシステム600によって 実行される基本ステップを示す。実際のCRC生成の前に、図8のステップ800 によって示されるように、制御器626は、CRC情報がそれぞれ第1CRC生成 器601および第2CRC生成器602からシフトされる量を決定するために、値K1 およびK2でプログラムされている。 図6のシステム600のCRC生成の符号化の局面に関して、ホストからのユー ザデータのバイトは、第1CRC生成器/検査器601に送られ、DRAM602に書 き込まれる。図8のステップ802は、ホストからユーザデータのnバイトを得て 、そのユーザデータのnバイト用いてnクロックサイクルのあいだにCRCバイ トCj(j=1,2,…,k)をつくる第1CRC生成器/検査器601を示す。CRCバイト Cj(j=1,2,…,k)を生成するnクロックサイクルの後、次のK1クロックサイクル (ステップ804)のあいだ第1CRC生成器/検査器601は、1次CRCバイトと しても知られるCRCバイト C1,…,Ck1 をDRAM602にシフトして入れる。 ステップ802の実行に関して、特に図7示された生成器/検査器700に関してい えば、最初のnクロックサイクルのあいだ、マルチプレクサ701は、最初のnバ イトのユーザデータを加算器入力バス720上にスイッチする。セグメント化回路7 10のライン7070上で得られるそのような最初のバイトに関して、セグメント化回 路710のM0は、いつでもα0として選択されえるので、よってM0については、乗 算器は必要ない。2番目のnクロックサイクルのあいだ、マルチプレクサ701は 、2番目のnバイトのユーザデータ(M1によって乗算される)を加算器入力バ ス720上にスイッチし、3番目のnクロックサイクルのあいだ、マルチプレクサ7 01は、3番目のnバイトのユーザデータ(M2によって乗算される)を加算器入 力バス720上にスイッチする。 以上のように、ステップ802によって示される生成または検査のデータの部分 のあいだは、MUX701は、除算器(例えばサブ回路722)にM0によって(リー ド7070から)乗算された入力ユーザデータを最初のクロックおよび最初のクロッ クに続くクロック3個ごとに供給し、除算器722にM1によって(リード7071から )乗算された入力ユーザデータを2番目のクロックおよび2番目のクロックに続 くクロック3個ごとに供給し、除算器722にM2によって(リード7072から)乗算 された入力ユーザデータを3番目のクロックおよび3番目のクロックに続くクロ ック3個ごとに供給する。ステップ802の実行において、MUX702は、加算器70 3に定数倍乗算器704の出力を最初のクロックおよび最初のクロックに続くクロッ ク3個ごとに供給する。MUX702は、加算器703にレジスタ705の出力をその他 のクロックにおいて供給する。MUX708は、加算器出力をレジスタ705の入力に 供給する。 ステップ804の実行のあいだ、これはCRC生成または検査のCRCの部分で あるが、すなわちCRCバイトが出力されつつあるとき、MUX708は、レジス タ705を1つのシフトレジスタに接続する。生成のあいだ、このために、レジス タ705にあるCRCバイトのプログラムされた数(K1)がシフトされてCRCバ ス716上に出ることができる。所望のCRCバイトのK1個をシフトして出すため には、ステップ804において、K1クロックサイクルが必要である。K1クロック サ イクルの後、すべてのレジスタ705は、ゼロに再イニシャライズされ、その結果 、CRCバイトK1,…,kは廃棄される。 前述のように、ステップ804は、1次CRCバイトCj(j=1,…,K1)をDRAM 602へとシフトすることを示す。しばらくしてから(ステップ806で示す)、DRA M602中のデータのブロックおよび1次CRCバイトCj(j=1,…,K1)は、DRA M602から読み出され、リードソロモン符号器604(MUX644を介して)と、第 2CRC生成器/検査器603(MUX645を介して)との両方に送られる。ユーザ データのnバイトが与えられてから、それらnバイトについて生成器601によっ て生成されたK1個の1次CRCバイトCj(j=1,…,K1)が続くように、DRAM 602中のブロックからのデータは、第2CRC生成器/検査器603に与えられる。 ステップ806において、第2CRC生成器/検査器603は、入力nバイトのグル ープのかたちでDRAM602からのユーザデータを受け取る。入力nバイトを用 いると、n個のクロックサイクルのあいだに第2CRC生成器/検査器603は、 第1CRC生成器/検査器601が1次CRCバイトCjを生成したのと同様にして 、k個のベリファイ用CRCバイトCj'を生成する。DRAMが正しく動作して いるときのように、もしステップ806においてDRAM602から得られたユーザデ ータバイトが、ホストからシフトされてDRAM602に入っているユーザデータ バイトと同一であれば、ベリファイ用CRCバイトCj'は、それぞれの1次CR CバイトCjと等しくなる。 ステップ806のnクロックサイクルのあいだに第2CRC生成器/検査器603が ベリファイ用CRCバイトCj'を生成した後、ステップ808において第2CRC 生成器/検査器603は、1次CRCバイトCj(j=1,…,K1)をベリファイ用CRC バイトCj'(j=1,…,K1)と比較する検査動作をおこなう。そうしているあいだ、 MUX701は、セグメント化回路710のライン7070からの1次CRCバイトCj(j= 1,…,K1)を加算器7031の第1入力ポートに与えるように動作し、この信号の与 えかたは、ベリファイ用クロックサイクルのK1個のそれぞれについてクロック サイクルごとに1バイトおこなわれる。最初のベリファイ用クロックサイクルの あいだ、最初の1次CRCバイトC1が加算器7031の第1入力ポートに与えら れ、レジスタ7051に格納されている第1ベリファイ用CRCバイトC1'は、加算 器7031の第2入力ポートに与えられ、その結果、加算器7031の加算の結果は、検 査回路714に与えられる。それぞれのベリファイ用クロックサイクルにおいて、 レジスタ705j中のベリファイ用CRCバイトCj'は、前述したCRCバイトのシ フト/読み出しのように、サブ回路722の1つによって右方向にシフトされ(例え ば隣接するレジスタの右隣へ)、その結果、最初のベリファイ用クロックサイク ルの後で、レジスタ7051、は、ベリファイ用CRCバイトC2'を含む。同様に、 2番目のベリファイ用クロックサイクルのあいだ、第2の1次CRCバイトC2 は、加算器7031の第1入力ポートに与えられ、こんどはレジスタ7051に格納され た第2ベリファイ用CRCバイトC2'は、加算器7031の第2入力ポートに与えら れ、再び、加算器7031の加算の結果は、検査回路714に与えられる。このような シフトおよび加算は、K1個のベリファイ用クロックサイクルのそれぞれについ て続き、その結果、CRCバイトCjは、対応するCj'とj=1,…,K1について比 較される。 ステップ808の実行のあいだ、検査回路714は、制御器626からの信号CRC T IMEによって動作するようにイネーブルされる。検査回路714がイネーブルされ ると、1次CRCバイトCjとそれに対応するベリファイ用バイトCj'との間に どんな不一致があっても、ORゲート709の非ゼロ出力はANDゲート730を通り 、フリップフロップ732に与えられる。検査された不一致によって、フリップフ ロップ732は、CRC ERROR(CRC誤り)信号を制御器626にライン718で 出力する。 もし第2CRC生成器/検査器603について制御器626に入力された値K2が値 K1よりも大きければ、ステップ810において第2CRC生成器/検査器603は、 2次CRCバイトの(K2−K1)バイト、具体的にはCRCバイトCj'(j=K1+1 ,…,K2)をシフトし出力(ライン716上に)する。これについて、ステップ808の 実行の後、レジスタ7051、7052、7053などは、 CK1+1,CK1+2,CK1+3,など を含む。 2次CRCバイトCj'(j=K1+1,…,K2)をシフトし出力することは、K2−K1 クロ ックサイクルにおいておこなわれ、右方向シフト動作のためのマルチプレクサ70 8の制御について前述したように実現できる。 1次CRCバイトCj(j=1,…,K1)および2次CRCバイトCj'(j=K1,…, K2)の両方を含むデータのブロックが符号器604によって符号化された後、符号 化されたブロックは、ディスクサブシステム605に書き込まれる。符号器604が、 データのそれぞれのインタリーブのためのECCを生成し、好ましくはECC生 成多項式を用いてm個のインタリーブ生成することは、当業者には理解できるだ ろう。 以上のように、第2CRC生成器/検査器603は、DRAM602中に起こった誤 りを検査するとともに、2次CRCバイトとして知られる付加的なCRCバイト を生成してもよい。これらの2次CRCバイトは、1次CRCバイトとともにデ ィスクに書き込まれる。2次CRCバイトを含むことは、重要である。なぜなら 、ディスクからのデータは、DRAM602からのデータよりも誤りに弱いという 事実のために、ディスクから読み出されたデータは、DRAMデータよりも厚い 保護を必要するからである。 上述のように、第2CRC生成器/検査器603は、入ってくる1次CRCバイ トを1度に1つ検査することを可能にする。また第2CRC生成器/検査器603 は、入力値K2によって特定されるk−K1バイトの残りのCRCバイトをシフト し出力する。これらのさらにシフトされたバイトは、2次CRCバイトである。 これにより、最初のK1バイトの1次CRCだけがDRAM602に書き込まれ、K2 バイトは、ディスクに書き込まれる(K2>K1)状態をつくる。1次CRCバ イトの検査は、入ってくる1次CRCバイトを新しく生成されたベリファイ用C RCバイトに加算器7031によって加算し、ORゲート709の非ゼロバイトを検出 することによって実現できる。CRCバイトが検査器に入力されているあいだは 、CRC TIME信号は、オンであり、どんな不一致があってもCRC ERR OR(CRC誤り)ラッチ732をセットする。CRCバイトは互いに独立して計算 されるので、生成器の順番はプログラマブルであり、そのために所望の数のCR Cバイトだけがシフトされ出力されればよい。 2段復号化動作 図6のシステム600によって実行される復号化動作に関して、データブロック は、ディスクサブシステム605によってディスクから読み出され、リードソロモ ン復号器606に送られる。復号器606によって得られた訂正されたデータ(CRC バイトを含む)は、第2CRC生成器/検査器603(訂正できない誤りの検出のた めのもの)と、DRAM602との両方に送られる。 第2CRC生成器/検査器603は、符号化動作の前にするのと同じように、復 号化されたブロックから復号化されたブロックからのデータバイトおよびCRC バイトを受け取る。nバイトのデータのそれぞれのグループを受け取ると、第2 CRC生成器/検査器603は、復号化されたデータから得られた同じ数の対応す るCRCバイトと比較するためにK2個のベリファイ用CRCバイトを生成する 。復号化後のCRC処理に関する第2CRC生成器/検査器603の動作は、上 述のステップ806および808と同様であり、それを参照すれば理解できよう。第2 CRC生成器/検査器603は、ディスクサブシステム605から得られたCRCバイ トについてベリファイする。 復号化後のCRC処理に関して、ホストに送るためにデータブロックがDRA M602から取り出されると、データブロックは、再び第1CRC生成器/検査器6 01に送られてDRAM誤りを検査する。復号化後のCRC処理に関して第1CR C生成器/検査器601の動作もまた、上述のステップ806および808と同様であり 、それを参照すれば理解できよう。ただし、K1個のCRCバイトは、第1CR C生成器/検査器601によって処理される。 動作:数学的根拠 説明された実施例において、CRC生成器/検査器700に与えられるデータス トリームは、3バイトのグループにセグメント化される。3バイトの線形結合は 、それからαをデータバイトの体表現の原始元とした、j=1,2,…,kについてX +αr+jによって除算する回路の集合体(例えばサブ回路722)に送られる。好ま しい実施態様においては、体は、GF(256=28)である。線形結合は、単純な和で あってもよく、そのとき図4Aに示す実施態様になる。 単純な線形結合は、インプリメントするのが簡単である。いっぽうで、もし同 じ誤りが3バイトグループの2バイトで存在すれば、CRC生成器/検査器700 に送られる前に、互いに和をとられると2つの誤りは打ち消しあうという事実の ために検出できない、DRAMから読み出されたデータのブロックにおいて、単 一のビット誤りをもつ2バイトをそれぞれもつ可能性もある。また、線形結合は 、もしグループにおける3バイトがそれぞれそれぞれのバイト中に単一の「1」 しかもたないなら、線形結合は非ゼロになるように、選ぶこともできる。その場 合、もしデータのブロックのうち誤っているバイトがどれも単一の誤っているビ ットしか含まないなら、いくつかの誤っているバイトが同じ3バイトグループに 存在するとしても、k個のCRCバイトを用いて誤っているkバイトを検出する ことができる。 3入力バイトごとに線形結合を用いることによって、それぞれのCRCバイト についてECC符号の最小距離が1だけ大きくなるように、CRCバイトを生成 することができる。これは、ECCが3つのインタリーブからなることによる。 CRCバイトは、次の規則にしたがって生成される。入力バイトをD0からDn -1 とする。これらのバイトは、3つの多項式F0(x)、F1(x)およびF2(x)の係数 をつくる。つまり であり、ここでs=0,1,2をとり、tsは(n-s)/3より小さい最も大きい整数である。 これらの多項式は、D(x)が3つのグループ、例えばD0がF0に、D1がF1に、 D2がF2に、D3がF0になどと分割されることを表現している。これらの多項式 は、3つのリードソロモン符号語をつくるためにリードソロモン符号器604によ って処理される多項式とまったく同じである。G(x)は、F0(x)、F1(x)および F2(x)の線形結合として定義されるので、 となる。 図4Aのシステム400Aは、乗算器Msがすべて1の場合に対応する。図6のシ ステム600は、a、bおよびcのそれぞれが1つの「1」を含む限りaM0+bM1+cM3 が非ゼロであるようにMsが選ばれる場合に対応する。G(x)の係数は、3つの 連続する入力バイトの線形結合であり、例えばG(x)の第1の係数は、D00+ D11+D22であり、G(x)の第2の係数は、D30+D41+D52などと なる。 j番目のCRCバイトCjは、j=1,2,…,kについて、 Cj=G(x)mod(x+αr+j) と定義できる。 もし入力バイトDjのうちk個以下が非ゼロであり、非ゼロバイトがそれぞれ1 つの「1」からなりさえすれば、G(x)は、たかだかk個の非ゼロの係数をもち、 G(x)はゼロになりえないだろう。CRCバイトのすべては、αの連続するべき 乗によってG(x)を除算することによって得られ、したがってもし、k個のCR Cバイトが存在すれば、少なくともCRCバイトのうちの1つは非ゼロである。 これは、k個以下の単一ビット誤りが検出できるということと等価である。 新しいCRC生成器と関連して用いられるリードソロモン符号は、根としてv 個の連続するαのべき乗αr-v+1からαrをもつ生成多項式を有する。E(x)をE CCインタリーブの1つに加えられた誤り多項式であるとする、すなわちリード ソロモン符号語の1つであるとする。もし誤りがECCによって検出できなけれ ば、E(x)は、αr-v+1からαrを含む根を有するはずである。CRC生成におい て用いられる係数は、CRCによって検出されない誤りについて、根として連続 するαのべき乗αr+1からαr+kをもつので、MsE(x)は、αr+1からαr+kを含む 根をもつはずである。このことは、E(x)は、αr-v+1からαr+kを含む根をもつ はずであるということを意味しており、これは、誤りがk+vバイトより多くの誤 ったバイトをもつことを意味する。 1つの「1」をもつすべてのa、bおよびcについてa+bM1+cM2を非ゼロにする 定数M1およびM2の組は、ユニークではない。したがってM1およびM2は、その 条件を満たし、かつ他のクラスの線形結合が非ゼロになるように選ばれる。例え ば、好ましい実施態様においては、体の生成多項式は、X8+X4+X3+X2+1であ る。M1は、α25となるように選ばれ、M2は、α112となるように選ばれる。こ の選びかたは、3つのバイトa、bおよびcのうち2つだけが非ゼロであり、その 2つのバイトはそれぞれ1つの3ビット以下の非ゼロビット列をもつ場合につい てa+bM1+cM2を非ゼロとする。この条件を加えた後、M1およびM2の選びか たはやはりユニークではなく、よって付加的な条件を加えることによって、それ ぞれのバイトが単一の4ビット以下の非ゼロビット列をもちうる2バイト結合の 数を最大にできる。M1およびM2の乗算器はそれぞれXORゲートの組からなり 、その結果、出力ビットが入力ビットのあるサブセットの線形結合である、すな わちXOR和であり、このようなサブセットは、表Iおよび表IIにリストアップ されている。 例えば、本発明のCRC生成器/検査器は、3ウェイインタリーブされたリー ドソロモン符号と関連させて説明されてきた。例えば、2ウェイまたは4ウェイ インタリーブされた符号と用いてもよい。示されたCRCによって教示される原 理は、リードソロモンに限定して設計されていない符号器に関連して用いるCR Cにも適用できる。本発明の方法は、符号語の生成、符号語の検査またはそれら の両方に用いることができる。ホストコンピュータおよびDRAM、DRAMお よび磁気ディスク、または通信チャネルの両端の間において本発明のCRC生成 器/検査器を用いることができる。同じCRCを1つ以上の通信チャネルにおい て用いることもでき、例えばホストおよびDRAMと、DRAMおよび記憶ディ スクとの両方で用いることもできる。 本発明のCRCは、kバイトのCRCを生成するようにプログラムされうる。 リードソロモン符号に関連して、CRCによれば、リードソロモン符号が検出で きるよりもk個多い誤りを検出できる。数kは、与えられた通信チャネルの誤り の傾向にあわせて変えればよい。同じCRCが1つより多くの通信チャネルにつ いて用いられるときは、kの異なる値がそれぞれのチャネルに選ばれる。本発明 のCRCは、固定された数のCRCバイトをもつノンプログラマブルの実施態様 においても利用できる。 本発明のハードウェアによるインプリメントのしかたを述べる。CRCは、ソ フトウェアでもインプリメントできる。本発明の図7のブロック図をインプリメ ントするための具体的な回路は、電子技術の当業者によって容易に設計できる。 ブロック図の変形も当業者には明らかであろう。体の生成多項式の具体例および 定数乗算器Msの具体例が挙げられている。他の定数および多項式もここで教示 されているように選ぶことができる。例えば、2つの8ビット多項式によって除 算する代わりに、1つの16ビット多項式によってもよい。 Zookらによって同時に出願された「誤り訂正方法および装置」と題された米 国特許出願第08/ , 号(代理人書類番号:1777-10)は、ここで参考のため に援用され、本発明の特定の利用の限定されない例を挙げている。 以上、好ましい実施態様が開示され、詳細に説明されてきたが、当業者には、 かたちのうえで、また詳細部分においてさまざまな変更が、本発明の精神および 範囲から離れることなくおこなえることがわかるだろう。 排他的財産権つまり特権を求める本発明の実施態様は、以下のように規定され る。

Claims (1)

  1. 【特許請求の範囲】 1.誤り検査の目的のためにCRC情報を生成する巡回冗長検査(CRC)生 成器であって、 データの入力ストリームを複数のサブストリームにセグメント化するセグメン ト化回路と、 該CRC情報を生成するために、該複数のサブストリームの線形結合をつくり 、該線形結合に演算をほどこす回路と、 を備えている巡回冗長検査生成器。 2.前記セグメント化回路は、入力ストリームを3つのサブストリームにセグ メント化する請求項1に記載の装置。 3.前記セグメント化回路は、前記サブストリームの少なくとも1つを定数に よって乗算する乗算器を含む請求項1に記載の装置。 4.前記乗算器は、前記サブストリームにおけるあるバイトの線形結合が非ゼ ロであるように選ばれている請求項3に記載の装置。 5.前記定数は、体の元αのべき乗である請求項4に記載の装置。 6.それぞれのサブストリームが1バイトのデータからなる3つのサブストリ ームがあり、あるサブストリームは、定数M1によって乗算され、別のサブスト リームは、定数M2によって乗算され、M1=α25かつM2112である請求項5 に記載の装置。 7.それぞれのサブストリームは1バイトのデータからなり、前記複数のサブ ストリームの線形結合をつくり、前記CRC情報を生成するために該線形結合に 演算をほどこす前記回路は、該サブストリームの線形結合についてkバイトの CRC情報を生成するk個のサブ回路を備えている請求項1に記載の装置。 8.それぞれのサブストリームは、データ多項式の少なくとも一部を形成し、 前記複数のサブストリームの線形結合をつくり、前記CRC情報を生成するため に該線形結合に演算をほどこす前記回路は、該サブストリームの線形結合につい てkバイトのCRC情報を生成するk個の除算器サブ回路を備えている請求項1 に記載の装置。 9.それぞれの除算器サブ回路は、前記データ多項式を、ECC多項式の根に 関連する除数によって除算する請求項8に記載の装置。 10.前記複数のサブストリームの線形結合をつくり、前記CRC情報を生成す るために該線形結合に演算をほどこす前記回路は、複数のサブ回路を備えており 、それぞれのサブ回路は、 第1入力ポート、第2入力ポートおよび出力ポートを有する加算器であって、 該加算器の該第1ポートは、マルチプレクスされた該複数のサブストリームがそ れに供給される加算器と、 選択的に該加算器の該第2入力ポートに接続される出力ポートを有する乗算器 と、 CRC情報を格納するレジスタであって、該レジスタは、該加算器の該出力ポ ートに接続された入力ポートと、該加算器の該第2入力ポートに選択的に接続さ れた出力ポートと、を有するレジスタと、 を備えている請求項1に記載の装置。 11.k個のサブ回路は、第1サブ回路から第kサブ回路まで番号が付されてお り、該サブ回路の前記レジスタは、該サブ回路の第K1サブ回路のレジスタに格 納されているCRC情報が該第1サブ回路の該レジスタにシフトされるように接 続されており、K1は、k以下の定数である請求項10に記載の装置。 12.K1は、プログラマブルである請求項11に記載の装置。 13.前記乗算器は、ECC多項式の根に関連する係数によって乗算する請求項 10に記載の装置。 14.前記サブ回路のうち比較サブ回路の1つの前記加算器の前記出力ポートは 、該比較サブ回路の該加算器の該入力端子に入力された値を、該比較サブ回路の 該レジスタに格納されたCRC情報と比較する請求項10に記載の装置。 15.前記CRC比較器は、XORゲートを備えている請求項14に記載の装置。 16.誤り検査の目的のためにCRC情報を生成する巡回冗長検査(CRC)生 成器であって、 データの入力ストリームを複数のサブストリームにセグメント化する手段と、 該CRC情報を生成するために、該複数のサブストリームの線形結合をつくり 、該線形結合に演算をほどこす手段と、 を備えている巡回冗長検査生成器。 17.前記セグメント化手段は、入力ストリームを3つのサブストリームにセグ メント化する請求項16に記載の装置。 18.前記セグメント化手段は、前記サブストリームの少なくとも1つを定数に よって乗算する乗算器を含む請求項16に記載の装置。 19.前記乗算器は、前記サブストリームにおけるあるバイトの線形結合が非ゼ ロであるように選ばれている請求項18に記載の装置。 20.前記定数は、体の元αのべき乗である請求項19に記載の装置。 21.それぞれのサブストリームが1バイトのデータからなる3つのサブストリ ームがあり、あるサブストリームは、定数M1によって乗算され、別のサブスト リームは、定数M2によって乗算され、M1=α25かつM2112である請求項20 に記載の装置。 22.それぞれのサブストリームは、データ多項式の少なくとも一部を形成し、 前記複数のサブストリームの線形結合をつくり、前記CRC情報を生成するため に該線形結合に演算をほどこす前記手段は、該サブストリームの線形結合につい てkバイトのCRC情報を生成するk個の除算器を備えている請求項16に記載の 装置。 23.前記複数のサブストリームの線形結合をつくり、前記CRC情報を生成す るために該線形結合に演算をほどこす前記手段は、実際にK1個のバイトのCR C情報を出力し、K1は、k以下の定数である請求項22に記載の装置。 24.K1は、プログラマブルである請求項23に記載の装置。 25.前記除算器は、ECC多項式の根に関連する除数によってデータ多項式を 除算する請求項22に記載の装置。 26.誤り検査の目的のためにCRC情報を生成する巡回冗長検査(CRC)方 法であって、 データの入力ストリームを複数のサブストリームにセグメント化するステップ と、 該CRC情報を生成するために、該複数のサブストリームの線形結合をつくり 、該線形結合に演算をほどこすステップと、 を包含する巡回冗長検査方法。 27.前記入力ストリームは、3つのサブストリームにセグメント化される請 求項26に記載の方法。 28.前記サブストリームの少なくとも1つを定数によって乗算するステップを さらに包含する請求項26に記載の方法。 29.前記定数は、前記サブストリームのすべての線形結合が非ゼロであるよう に選ばれている請求項28に記載の方法。 30.前記定数は、体の元αのべき乗である請求項29に記載の方法。 31.それぞれのサブストリームが1バイトのデータからなる3つのサブストリ ームがあり、あるサブストリームは、定数M1によって乗算され、別のサブスト リームは、定数M2によって乗算され、M1=α25かつM2112である請求項30 に記載の方法。 32.前記複数のサブストリームの線形結合をつくり、前記CRC情報を生成す るために該線形結合に演算をほどこすステップは、該複数のサブストリームを、 該サブストリームの線形結合についてkバイトのCRC情報を生成するk個のサ ブ回路に与え、該サブ回路は、第1サブ回路から第kサブ回路まで番号が付され ている請求項26に記載の方法。 33.サブ回路jについて、それに与えられた前記線形結合は、ECC多項式の 根に関連した係数によって除算される請求項32に記載の方法。 34.CRC情報をそれぞれのサブ回路のレジスタの中に格納するステップと、 前記第kサブ回路のレジスタの中に格納されたCRC情報を前記第1サブ回路の 該レジスタにシフトするステップと、をさらに包含する請求項32に記載の方法。 35.前記サブ回路の比較サブ回路に入力されたCRC値を、該比較サブ回路の 該レジスタに格納されたCRC情報と比較するステップをさらに包含する請求項 32に記載の方法。 36. 誤り検査の目的のためにCRC情報を生成する巡回冗長検査(CRC) 方法であって、 (a) データの入力ストリームを複数のサブストリームにセグメント化するステ ップであって、該入力ストリームは、通信チャネルから得られるステップと、 (b) 該CRC情報を生成するために、該複数のサブストリームの線形結合をつ くり、該線形結合に演算をほどこすステップと、 (c) 該生成されたCRC情報を、該通信チャネルから得られた復号化されたC RC情報と比較するステップと、 (d) 該生成されたCRC情報と該通信チャネルから得られた該復号化されたC RC情報との間に不一致が検査されるときに誤り信号をつくるステップと、 を包含する方法。 37.ステップ(b)で生成された前記CRC情報は、j=1,…,kのレジスタの中に 格納されたK1個のバイトからなり、前記復号化されたCRC情報は、比較器に シーケンシャルに与えられるj=1,…,kのK1の復号化されたCRCバイトからな り、前記比較ステップは、該比較器を用いて、レジスタjの内容を復号化された CRCバイトjと比較するステップを含む請求項36に記載の方法。 38.K1は、プログラマブルな整数である請求項37に記載の方法。 39.j=1,…,kのレジスタの中に格納されたK1個の値をシーケンシャルにシフ トさせて、対応する復号化されたCRCバイトとの比較のための、レジスタのう ちの選択されたレジスタに入れるステップをさらに包含する請求項36に記載の方 法。 40.K1は、プログラマブルな整数である請求項39に記載の方法。 41.ホストデバイスに接続されたホストポートと、 該ホストデバイスから受け取られた入力データに基づく1次CRC情報を生成 する、該ホストポートに接続された第1CRC生成器と、 その中に、該ホストデバイスから受け取られた入力データと、それについて該 第1CRC生成器によって生成された該1次CRC情報とを格納するメモリと、 該メモリから受け取られたデータを検査するベリファイ用CRC情報を生成す る、該メモリに接続された第2CRC生成器と、 該1次CRC情報を含む該メモリから得られた該データを利用することによっ て、符号化された情報を形成するように接続された符号器と、 を備えている巡回冗長検査(CRC)システム。 42.前記第2CRC生成器は、前記メモリに起因する誤りを決定するために、 前記1次CRC情報と、該第2CRC生成器によって生成された前記ベリファイ 用CRC情報とを比較する請求項41に記載の装置。 43.前記第2CRC生成器は、前記メモリから得られたデータに基づいて2次 CRC情報も生成し、前記符号器は、該第2CRC生成器にも接続されており、 前記符号化された情報を形成するために該2次CRC情報も利用する請求項41に 記載の装置。 44.利用チャネルに接続された利用ポートと、 該利用ポートにおいて入力データを受け取り、該入力データを復号化して復号 化されたCRC情報を含む復号化された入力データにするように接続された復号 器であって、該復号器は、該復号化されたCRC情報を含む該復号化された入力 データを前記第2CRC生成器と前記メモリとに与え、それにより該第2CRC 生成器は、該復号化された入力データに含まれた復号化されたCRC情報が正確 であるかどうかを検査する復号器と、 をさらに備えており、 前記第1CRC生成器は、該メモリから受け取られた復号化されたCRC情報 が正確かどうかを検査するために、該メモリに格納された該復号化されたCRC 情報を含む復号化された入力データを受け取るように接続されている請求項41に 記載の装置。 45.前記第1CRC生成器は、クレーム1の前記巡回冗長検査(CRC)生成 器を備えている請求項41に記載の装置。 46.前記第2CRC生成器は、クレーム1の前記巡回冗長検査(CRC)生成 器を備えている請求項41に記載の装置。 47.第1CRC生成器を用いて、ホストデバイスから受け取られた入力データ に基づいて1次CRC情報を生成するステップと、 該ホストデバイスから受け取られた該入力データと、それについて該第1CR C生成器によって生成された該1次CRC情報とをメモリの中に格納するステッ プと、 該メモリに接続された第2CRC生成器を用いて、該メモリから取り出された データについてベリファイ用CRC情報を生成するステップと、 該1次CRC情報を含む、該メモリから得られた該データを利用することによ って符号化された情報を形成するステップと、 を包含する巡回冗長検査(CRC)方法。 48.前記メモリに起因する誤りを決定するために、前記第2CRC生成器を用 いて、該1次CRC情報と、該第2CRC生成器によって生成されたベリファイ 用CRC情報とを比較するステップをさらに包含する請求項47に記載の方法。 49.前記第2CRC生成器は、前記メモリから取り出されたデータについて2 次CRC情報を生成する請求項47に記載の方法。 50.前記2次CRC情報も用いることによって前記符号化された情報を形成す るステップをさらに包含する請求項49に記載の方法。 51.利用チャネルから受け取られた入力データを復号化して復号化されたCR C情報を含む復号化された入力データにするステップと、 該復号化されたCRC情報を含む該復号化された入力データを前記第2CRC 生成器と前記メモリとに与えるステップと、 該復号化されたCRC情報を含む該復号化された入力データを該メモリの中に 格納するステップと、 該第2CRC生成器を用いて、該復号化された入力データに含まれる該復号化 されたCRC情報が正確であるかどうか検査するステップと、 該メモリからの該復号化されたCRC情報を含む該復号化された入力データを 前記第1CRC生成器に与えるステップと、 該第1CRC生成器を用いて、該メモリから受け取られた該復号化されたCR C情報が正確かどうかを検査するステップと、 をさらに包含する請求項47に記載の方法。
JP7513259A 1993-11-04 1994-10-18 巡回冗長検査方法および装置 Pending JPH09507118A (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US08/147,865 US5465260A (en) 1993-11-04 1993-11-04 Dual purpose cyclic redundancy check
US147,865 1993-11-04
PCT/US1994/012138 WO1995012921A1 (en) 1993-11-04 1994-10-18 Cyclical redundancy check method and apparatus

Publications (1)

Publication Number Publication Date
JPH09507118A true JPH09507118A (ja) 1997-07-15

Family

ID=22523232

Family Applications (1)

Application Number Title Priority Date Filing Date
JP7513259A Pending JPH09507118A (ja) 1993-11-04 1994-10-18 巡回冗長検査方法および装置

Country Status (6)

Country Link
US (3) US5465260A (ja)
EP (1) EP0729674B1 (ja)
JP (1) JPH09507118A (ja)
DE (1) DE69429732D1 (ja)
SG (1) SG43012A1 (ja)
WO (1) WO1995012921A1 (ja)

Families Citing this family (77)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2706054B1 (fr) * 1993-06-02 1995-07-13 Alcatel Mobile Comm France Procédé d'entrelacement d'une séquence d'éléments de données, et dispositif d'entrelacement correspondant.
US5602857A (en) * 1993-09-21 1997-02-11 Cirrus Logic, Inc. Error correction method and apparatus
US5473620A (en) * 1993-09-21 1995-12-05 Cirrus Logic, Inc. Programmable redundancy/syndrome generator
US5629949A (en) * 1993-09-21 1997-05-13 Cirrus Logic, Inc. Error correction verification method and apparatus using CRC check remainders
EP0698329B1 (en) * 1994-03-09 1999-06-09 Koninklijke Philips Electronics N.V. Transmitter and receiver apparatus, method for transmitting and method for receiving and record carrier obtained by the method or the transmitter apparatus
US5768296A (en) * 1994-07-01 1998-06-16 Quantum Corporation ECC system supporting different-length Reed-Solomon codes whose generator polynomials have common roots
US6125469A (en) * 1994-10-18 2000-09-26 Cirrus Logic, Inc. Error correction method and apparatus
US5812556A (en) * 1996-07-03 1998-09-22 General Signal Corporation Fault tolerant switch fabric with control and data correction by hamming codes and error inducing check register
US5805614A (en) * 1996-07-03 1998-09-08 General Signal Corporation Fault tolerant switch fabric with control and data correction by hamming codes
GB2321374A (en) * 1997-01-21 1998-07-22 Ico Services Ltd Spread spectrum satellite communication
US6006354A (en) * 1997-02-12 1999-12-21 Stmicroelectronics, Inc. Security device for a video digital to analog converter
US5953352A (en) 1997-06-23 1999-09-14 Micron Electronics, Inc. Method of checking data integrity for a raid 1 system
US6061822A (en) * 1997-06-23 2000-05-09 Micron Electronics, Inc. System and method for providing a fast and efficient comparison of cyclic redundancy check (CRC/checks sum) values of two mirrored disks
US6192498B1 (en) * 1997-10-01 2001-02-20 Globepan, Inc. System and method for generating error checking data in a communications system
US6088337A (en) * 1997-10-20 2000-07-11 Motorola, Inc. Method access point device and peripheral for providing space diversity in a time division duplex wireless system
US6081918A (en) * 1997-11-06 2000-06-27 Spielman; Daniel A. Loss resilient code with cascading series of redundant layers
US6009547A (en) * 1997-12-03 1999-12-28 International Business Machines Corporation ECC in memory arrays having subsequent insertion of content
US6105155A (en) * 1998-01-21 2000-08-15 International Business Machines Corporation Method and apparatus for performing on-chip function checks and locating detected anomalies within a nested time interval using CRCs or the like
JP2000004169A (ja) * 1998-06-15 2000-01-07 Ricoh Co Ltd Crc演算方法及びcrc演算回路
US6173431B1 (en) * 1998-07-01 2001-01-09 Motorola, Inc. Method and apparatus for transmitting and receiving information packets using multi-layer error detection
EP0984451B1 (en) * 1998-07-09 2005-12-14 Hewlett-Packard Company, A Delaware Corporation Improved data writing to data storage medium
US6115837A (en) * 1998-07-29 2000-09-05 Neomagic Corp. Dual-column syndrome generation for DVD error correction using an embedded DRAM
US6357029B1 (en) * 1999-01-27 2002-03-12 Agere Systems Guardian Corp. Joint multiple program error concealment for digital audio broadcasting and other applications
US6446234B1 (en) * 1999-03-16 2002-09-03 International Business Machines Corporation Method and apparatus for updating cyclic redundancy check information for data storage
US6438724B1 (en) * 1999-03-16 2002-08-20 International Business Machines Corporation Method and apparatus for deterministically altering cyclic redundancy check information for data storage
US6915475B1 (en) 1999-06-29 2005-07-05 Emc Corporation Data integrity management for data storage systems
EP1065595A1 (en) * 1999-06-30 2001-01-03 Texas Instruments Incorporated Statistics signature generation and analysis
US6662336B1 (en) 1999-07-06 2003-12-09 Cirrus Logic, Inc. Error correction method and apparatus
US6643818B1 (en) 1999-11-19 2003-11-04 International Business Machines Corporation Storing and using the history of data transmission errors to assure data integrity
US6484288B1 (en) 1999-12-17 2002-11-19 Texas Instruments Incorporated Statistics signature generation and analysis
EP1146651A1 (en) * 2000-04-10 2001-10-17 Hewlett-Packard Company Error detection for data storage and transmission
EP1146650A1 (en) 2000-04-10 2001-10-17 Hewlett-Packard Company, A Delaware Corporation Error detection for data storage and transmission
US6732320B1 (en) 2000-04-28 2004-05-04 Promos Technologies Inc. Method and system for improved error correction in optical media data processing
US6836869B1 (en) 2001-02-02 2004-12-28 Cradle Technologies, Inc. Combined cyclic redundancy check (CRC) and Reed-Solomon (RS) error checking unit
US6804220B2 (en) * 2001-05-07 2004-10-12 Qualcomm Incorporated Method and apparatus for generating control information for packet data
US6868517B1 (en) 2001-05-15 2005-03-15 Marvell International Ltd. Method and apparatus for checking read errors with two cyclic redundancy check stages
US6928608B2 (en) * 2001-08-14 2005-08-09 Optix Networks Ltd. Apparatus and method for accelerating cyclic redundancy check calculations
US7216285B2 (en) 2001-11-09 2007-05-08 Marvell International Ltd. System and method for generating cyclic redundancy check
AU2002365791B2 (en) * 2001-12-05 2007-02-15 3G Licensing S.A. Error detection code generating method and error detection code generator
KR100983261B1 (ko) * 2001-12-05 2010-09-24 엘지전자 주식회사 에러 검출 코드 생성 방법 및 이를 위한 장치 및 이 에러검출 코드에 따른 신호의 수신 방법
KR100833847B1 (ko) * 2001-12-05 2008-06-02 엘지전자 주식회사 Cdm/tdm에서의 에러 검출 코드 생성 방법 및 에러검출 코드 생성기
US7729322B2 (en) * 2002-02-28 2010-06-01 Qualcomm Incorporated HDLC hardware accelerator
US6938201B2 (en) * 2002-09-05 2005-08-30 Agilent Technologies, Inc. Error detection system for a FIFO memory
DE10253949B3 (de) * 2002-11-19 2004-05-27 Siemens Ag Verfahren zur Bestimmung einer Restfehlerwahrscheinlichkeit bei der Übertragung von Daten
US7290196B1 (en) * 2003-03-21 2007-10-30 Cypress Semiconductor Corporation Cyclical redundancy check using nullifiers
US7228485B1 (en) 2003-04-03 2007-06-05 Marvell International Ltd. Error correction using error detection codes
JP4196770B2 (ja) * 2003-07-23 2008-12-17 ソニー株式会社 データ処理方法、データ検査方法
US7613991B1 (en) 2003-08-19 2009-11-03 Altera Corporation Method and apparatus for concurrent calculation of cyclic redundancy checks
US7320101B1 (en) * 2003-08-19 2008-01-15 Altera Corporation Fast parallel calculation of cyclic redundancy checks
US7353448B1 (en) 2003-10-21 2008-04-01 Marvell Semiconductor Israel Ltd. Methods, architectures, circuits and systems for transmission error determination
US7826614B1 (en) * 2003-11-05 2010-11-02 Globalfoundries Inc. Methods and apparatus for passing initialization vector information from software to hardware to perform IPsec encryption operation
US7472330B2 (en) * 2003-11-26 2008-12-30 Samsung Electronics Co., Ltd. Magnetic memory which compares compressed fault maps
US7426676B2 (en) * 2004-01-14 2008-09-16 Broadcom Corporation Data retrieval from a storage device using a combined error correction and detection approach
US7729427B2 (en) * 2004-02-24 2010-06-01 Intersil Americas Inc. Pseudo-synchronous one wire bidirectional bus interface
US7596699B2 (en) * 2004-02-24 2009-09-29 Intersil Americas Inc. Battery authentication system
US7434150B1 (en) 2004-03-03 2008-10-07 Marvell Israel (M.I.S.L.) Ltd. Methods, circuits, architectures, software and systems for determining a data transmission error and/or checking or confirming such error determinations
JP4260688B2 (ja) 2004-06-09 2009-04-30 富士通株式会社 データ送信装置、データ送受信システム、データ送信装置の制御方法およびデータ送受信システムの制御方法
US7398452B2 (en) * 2004-12-16 2008-07-08 Broadcom Corporation Method and system for determining a signal quality metric in event of a CRC false positive
US20060159023A1 (en) * 2005-01-14 2006-07-20 International Business Machines Corporation CRC error history mechanism
US7434138B2 (en) * 2005-06-27 2008-10-07 Agere Systems Inc. Structured interleaving/de-interleaving scheme for product code encoders/decorders
KR100690274B1 (ko) * 2005-09-12 2007-03-09 삼성전자주식회사 다중 채널 직렬 통신을 위한 순환 중복 검사 장치 및 이를구비한 통신 시스템
US20080256415A1 (en) * 2005-09-27 2008-10-16 Nxp B.V. Error Detection/Correction Circuit as Well as Corresponding Method
US7996731B2 (en) 2005-11-02 2011-08-09 Advanced Micro Devices, Inc. Error detection in high-speed asymmetric interfaces
US7694208B2 (en) * 2005-12-20 2010-04-06 Quantum Corporation Error correction algorithm using interleaved parity check and Reed-Solomon code
US7809863B2 (en) * 2006-11-08 2010-10-05 Honeywell International Inc. Monitor processor authentication key for critical data
US20110022776A1 (en) * 2007-03-20 2011-01-27 Nxp B.V. Data reliability in storage architectures
US8386878B2 (en) 2007-07-12 2013-02-26 Samsung Electronics Co., Ltd. Methods and apparatus to compute CRC for multiple code blocks
US8555148B2 (en) * 2007-09-18 2013-10-08 Samsung Electronics Co., Ltd. Methods and apparatus to generate multiple CRCs
EP2096884A1 (en) 2008-02-29 2009-09-02 Koninklijke KPN N.V. Telecommunications network and method for time-based network access
WO2009147735A1 (ja) * 2008-06-04 2009-12-10 富士通株式会社 情報処理装置、データ送信装置およびデータ送信装置のデータ転送方法
WO2011080768A1 (en) 2009-12-29 2011-07-07 Ferdinando Bedeschi Memory devices comprising partitions with particular ecc attributes
US8904115B2 (en) * 2010-09-28 2014-12-02 Texas Instruments Incorporated Cache with multiple access pipelines
US10423358B1 (en) 2017-05-31 2019-09-24 FMAD Engineering GK High-speed data packet capture and storage with playback capabilities
US11036438B2 (en) 2017-05-31 2021-06-15 Fmad Engineering Kabushiki Gaisha Efficient storage architecture for high speed packet capture
US11128740B2 (en) * 2017-05-31 2021-09-21 Fmad Engineering Kabushiki Gaisha High-speed data packet generator
US10990326B2 (en) 2017-05-31 2021-04-27 Fmad Engineering Kabushiki Gaisha High-speed replay of captured data packets
US11392317B2 (en) 2017-05-31 2022-07-19 Fmad Engineering Kabushiki Gaisha High speed data packet flow processing

Family Cites Families (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4151510A (en) * 1978-04-27 1979-04-24 Honeywell Information Systems Method and apparatus for an efficient error detection and correction system
US4413339A (en) * 1981-06-24 1983-11-01 Digital Equipment Corporation Multiple error detecting and correcting system employing Reed-Solomon codes
US4564945A (en) * 1983-06-20 1986-01-14 Reference Technology, Inc. Error-correction code for digital data on video disc
JPS60230732A (ja) * 1984-04-28 1985-11-16 Nec Corp 回線多重化crc符号生成装置
US4703485A (en) * 1986-02-10 1987-10-27 International Business Machines Corporation Method and apparatus for computing and implementing error detection check bytes
JPS6332770A (ja) * 1986-07-25 1988-02-12 Matsushita Electric Ind Co Ltd 磁気記録再生装置
US4777635A (en) * 1986-08-08 1988-10-11 Data Systems Technology Corp. Reed-Solomon code encoder and syndrome generator circuit
US4775978A (en) * 1987-01-12 1988-10-04 Magnetic Peripherals Inc. Data error correction system
US4763332A (en) * 1987-03-02 1988-08-09 Data Systems Technology Corp. Shared circuitry for the encoding and syndrome generation functions of a Reed-Solomon code
US4782490A (en) * 1987-03-16 1988-11-01 Cythera Corporation Method and a system for multiple error detection and correction
US4907233A (en) * 1988-05-18 1990-03-06 The United States Of America As Represented By The Administrator Of The National Aeronautics And Space Administration VLSI single-chip (255,223) Reed-Solomon encoder with interleaver
JP2695195B2 (ja) * 1988-09-02 1997-12-24 三菱電機株式会社 誤り訂正回路
US5027357A (en) * 1988-10-14 1991-06-25 Advanced Micro Devices, Inc. ECC/CRC error detection and correction system
US5157669A (en) * 1988-10-14 1992-10-20 Advanced Micro Devices, Inc. Comparison of an estimated CRC syndrome to a generated CRC syndrome in an ECC/CRC system to detect uncorrectable errors
US4951284A (en) * 1988-12-14 1990-08-21 International Business Machines Corporation Method and means for correcting random and burst errors
US5109385A (en) * 1989-04-27 1992-04-28 International Business Machines Corporation Enhanced data formats and machine operations for enabling error correction
US5136592A (en) * 1989-06-28 1992-08-04 Digital Equipment Corporation Error detection and correction system for long burst errors
US5134619A (en) * 1990-04-06 1992-07-28 Sf2 Corporation Failure-tolerant mass storage system
US5182752A (en) * 1990-06-29 1993-01-26 Digital Equipment Corporation Method and apparatus for transferring data between a data bus and a data storage device
US5422895A (en) * 1992-01-09 1995-06-06 Quantum Corporation Cross-checking for on-the-fly Reed Solomon error correction code
US5375127A (en) * 1992-03-25 1994-12-20 Ncr Corporation Method and apparatus for generating Reed-Soloman error correcting code across multiple word boundaries
US5379305A (en) * 1992-07-20 1995-01-03 Digital Equipment Corporation Error correction system with selectable error correction capabilities
US5444719A (en) * 1993-01-26 1995-08-22 International Business Machines Corporation Adjustable error-correction composite Reed-Solomon encoder/syndrome generator

Also Published As

Publication number Publication date
EP0729674A1 (en) 1996-09-04
EP0729674B1 (en) 2002-01-23
US5465260A (en) 1995-11-07
US5724368A (en) 1998-03-03
EP0729674A4 (en) 1997-10-15
US5671237A (en) 1997-09-23
DE69429732D1 (de) 2002-03-14
WO1995012921A1 (en) 1995-05-11
SG43012A1 (en) 1997-10-17

Similar Documents

Publication Publication Date Title
JPH09507118A (ja) 巡回冗長検査方法および装置
US5491701A (en) Burst error corrector
US4413339A (en) Multiple error detecting and correcting system employing Reed-Solomon codes
JP3549788B2 (ja) 多段符号化方法、多段復号方法、多段符号化装置、多段復号装置およびこれらを用いた情報伝送システム
US5321704A (en) Error detection structure and method using partial polynomial check
US5136592A (en) Error detection and correction system for long burst errors
EP0280013B1 (en) Device for verifying proper operation of a checking code generator
US4833679A (en) Method and apparatus with improved error correction and error information availability
US5946328A (en) Method and means for efficient error detection and correction in long byte strings using integrated interleaved Reed-Solomon codewords
JP3234130B2 (ja) 誤り訂正符号復号化方法およびこの方法を用いる回路
US5727003A (en) Method and apparatus for flash burst error correction
US5872799A (en) Global parity symbol for interleaved reed-solomon coded data
EP0233075A2 (en) Method and apparatus for generating error detection check bytes for a data record
CA1179068A (en) Error correcting code processing system
JPS6346615B2 (ja)
JPH0380727A (ja) データストリームのフレーム同期検出方法及び装置
US4527269A (en) Encoder verifier
US4569051A (en) Methods of correcting errors in binary data
US5390196A (en) Byte-wise determination of a checksum from a CRC-32 polynomial
US3622984A (en) Error correcting system and method
JPS632370B2 (ja)
US3571795A (en) Random and burst error-correcting systems utilizing self-orthogonal convolution codes
US6405339B1 (en) Parallelized programmable encoder/syndrome generator
US7058881B2 (en) Distributed 4-bits diagonal interleaved parity (DIP4) checker
KR100200810B1 (ko) 오류 정정부호화 방법 및 장치