JP4378381B2 - 巡回冗長検査(crc)コード・ワードを生成するためのcrc計算回路 - Google Patents

巡回冗長検査(crc)コード・ワードを生成するためのcrc計算回路 Download PDF

Info

Publication number
JP4378381B2
JP4378381B2 JP2006504809A JP2006504809A JP4378381B2 JP 4378381 B2 JP4378381 B2 JP 4378381B2 JP 2006504809 A JP2006504809 A JP 2006504809A JP 2006504809 A JP2006504809 A JP 2006504809A JP 4378381 B2 JP4378381 B2 JP 4378381B2
Authority
JP
Japan
Prior art keywords
crc
crc calculation
bytes
block
data input
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.)
Expired - Lifetime
Application number
JP2006504809A
Other languages
English (en)
Other versions
JP2006521730A (ja
Inventor
リン、ミン−アイ、エム
スタウファー、デイヴィッド、アール
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.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of JP2006521730A publication Critical patent/JP2006521730A/ja
Application granted granted Critical
Publication of JP4378381B2 publication Critical patent/JP4378381B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime 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
    • 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
    • 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/65Purpose and implementation aspects
    • H03M13/6508Flexibility, adaptability, parametrability and configurability of the implementation

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Theoretical Computer Science (AREA)
  • Computing Systems (AREA)
  • Error Detection And Correction (AREA)
  • Detection And Correction Of Errors (AREA)
  • Detection And Prevention Of Errors In Transmission (AREA)

Description

本発明は、一般に、通信システム内のパケットベースのCRC(Cyclic Redundancy Check)の実現に関し、詳細には、通信システム内でCRC計算を実行し時間最適化するための反復回路に関する。
多くのパケットベースの通信プロトコルでは、通信チャネルに持ち込まれるエラーの存在をチェックするために、パケット伝送に付加されたコード・ワードを使用する。このようなコード・ワードを生成するために一般に使用される方式の1つはCyclic Redundancy Check(CRC)である。送信機はパケットの末尾にCRCコード・ワードを付加し、受信機はコード・ワードを含むパケット全体についてCRCを再計算する。いくつかのCRC方式が一般に使用されており、その様々な方式は計算のために異なる多項式を使用し、結果のコード・ワード長が異なっている。
直列データ・ストリームにより伝送されるパケットの場合、送信機または受信機内でCRCコード・ワードを計算するために必要な論理回路は周知のものであり、非常に効率の良いものである。ターゲット多項式を実現するために必要な排他ORゲートを備えた線形フィードバック・シフト・レジスタは、十分な実現例である。シフト・レジスタのそれぞれの状態は、現在の直列ビットと、シフト・レジスタの前の状態に基づいて計算される。したがって、直列データ・ストリームの場合、n個のラッチ(この場合、nは多項式の次数である)と数個の排他ORゲートが必要な回路の限度である。
しかし、高速直列データ・インターフェース(たとえば、10Gbps、40Gbps、またはそれ以上のインターフェース)は、シリアル・ボー・レートでのデータ信号を実現するために、より高価な技術(SiGe(シリコン・ゲルマニウム)など)を必要とする場合が多い。このようなインターフェースは、高速インターフェースを実現するために高速アナログ回路を使用し、概して、CMOSチップ内で処理するために直列インターフェースにデータを多重化し、そこからより低速の並列データ・パスへデータを逆多重化する。したがって、CRC計算回路はより一般的に、並列データ・バスに作用する。データ・バスが「w」バイト幅である場合、CRC計算はwバイトを同時に処理して、CRC計算の次の状態を決定しなければならない。さらに、CRC計算の次の状態はその計算の前の状態に基づくものなので、その計算はパイプライン化に向いていない。
パケット・データが整数個のwバイトであることが保証されないか、あるいは並列データ・バス上の境界合わせされた位置で開始/停止することが保証されないか、またはその両方が保証されない場合、追加の複雑さが持ち込まれる。したがって、たとえば、32バイト幅のデータ・バスの場合、CRC計算回路は、可能な結果の計算幅、すなわち、w=1、2、3、4、・・・、31、32バイトのうちのいずれかを処理できなければならない。これは、CRC計算のための次の状態デコードをさらに著しく複雑なものにする。この結果の論理回路は、相当な量のチップ面積を必要とする可能性がある。さらに、このチップ面積は主に、大型ファンアウト接続を備えた組み合わせ論理(Combinational logic)によって消費されるので、結果的に配線可能性およびタイミングの問題が発生する可能性がある。
システム要件を満たすために、CRC計算論理(Calculationlogic)は典型的には、任意の所与のサイクルで使用すべき各ブロック内にデータを選択するために、データを方向付けながら又は進めながら(steering)、様々な幅の複数のCRC計算ブロックから構成しなければならない。従来技術の実現例の1つは、wバイト幅のデータ・バスを実現することであり、したがって、その機能を実現するために1バイト、2バイト、3バイトなど、wバイトまでのサイズの「w」個のCRC計算ブロックを使用する。この構成では、データはこれらのブロックのすべてに並列に供給される。任意の所与のクロック・サイクルでは、CRC計算ブロック出力のうちの1つだけが使用される。すなわち、この並列手法では、各サイクル中に唯一のCRC計算ブロックが選択され、したがって、組み合わせ伝搬遅延は必ず1つのCRC計算ブロックの遅延と同等のものになる。
CRC計算回路に関する構造化された反復手法を提供し、それにより選択可能なバス幅を備えた複数ブロックにCRC計算を細分することができ、そのブロックをカスケードして任意のバイト数のバス幅に関する計算を提供することができることは非常に望ましいことであろう。
所与のターゲット伝搬遅延のために回路の面積削減を最大化するCRC計算回路に関する構造化された反復手法を提供することは非常に望ましいことであろう。
本発明は、CRC計算ブロックのサイズが計算の幅に正比例し、広い計算幅のブロック数を削減することにより狭い計算幅のブロック数を削減するより大きい節約が得られるという認識に基づいて、CRC計算を最適化するための手法である。
したがって、本発明の一目的は、CRC計算回路に関する構造化された反復手法を提供し、それにより選択可能なバス幅を備えた複数ブロックにCRC計算を細分することができ、そのブロックをカスケードして任意のバイト数の並列バス幅に関する計算を提供することができることにある。
本発明の他の一目的は、CRC計算回路に関する構造化された対数的反復手法を提供し、それにより2バイトの累乗、たとえば、2Nであり、たとえば、N=0、1、・・・、Xである選択可能なバス幅を備えた複数ブロックにCRC計算を細分することができ、そのブロックをカスケードして任意のバイト数のバス幅に関する計算を提供することができることにある。
本発明の他の一目的は、CRC計算回路に関する構造化された対数的反復手法を提供し、それによりその値が2の累乗ではない選択可能なバス幅を可能にする複数ブロックにCRC計算を細分することができることにある。
CRC計算に関する構造化された手法は反復回路によって実行され、それにより、好ましい一実施形態によれば、wバイトまでの幅の範囲に及び、通信チャネルにより伝達すべきデータに関連するCRCコード・ワードを生成するためのシステムであって、
第1の複数の直列結合コード生成ブロック(seriallycoupled code-generation blocks)であって、それぞれが各ブロックへのデータ入力に基づいてCRC値を生成するためのものであり、第1の複数ブロックのうちのそれぞれのブロックが2N+M〜2N-L+Mの範囲に及ぶそれぞれのバイト幅を有するデータ入力を受信するために構成され、ここで2N+M=wであり、Mがオフセット値であり、Lが最大伝搬遅延基準(maximumpropagation delay criteria)に基づく整数である、第1の複数の直列結合コード生成ブロックと、
第2の複数の並列結合コード生成ブロック(parallelcoupled code-generation)であって、それぞれがデータ入力に基づいてCRC値を生成するためのものであり、第2の複数ブロックのうちのそれぞれのブロックが2N-L−1+M〜20の範囲に及ぶそれぞれのバイト幅を有するデータを受信するために構成される、第2の複数の並列結合コード生成ブロックと、
任意の幅のデータ入力バイトを処理できるように、データ入力に基づいてCRC計算に含めるために第1および第2の複数ブロック内の特定のCRCコード生成ブロックを選択するための手段と、
を含むシステムが提供される。
本発明の原理によれば、構造化された反復手法におけるCRC計算プロセス時間は、CRC計算ブロックのサイズが計算の幅に正比例し、広い計算幅のブロック数を削減することにより狭い計算幅のブロック数を削減するより大きい節約が得られるという認識に基づいて最適化される。有利なことに、広いデータ・バス幅の場合、構造化された対数的反復手法により、計算を実行するために必要な論理の量が著しく削減される。
本発明の目的、特徴、および利点は、添付図面と組み合わせて取り上げられる以下の詳細な説明を考慮すると、当業者にとって明白なものになるであろう。
本発明は図1に関連してより完全に理解することができるが、同図は本発明の第1の実施形態によるシステム・アーキテクチャ全体を示している。
この第1の実施形態は、ブロック数が計算の所望の幅に応じてカスケードされるCRC計算ブロックのカスケードを提供する、CRC計算回路に関する構造化された対数的反復手法を対象とする。
図1は、本発明の第1の変形例によるCRC計算回路100のブロック図である。この第1の変形例によれば、CRC計算回路100は、1バイト、2バイト、4バイト、8バイトなど(すなわち、2バイトの累乗)という対数的に選択されたバス幅を有する複数ブロックに細分される。これらのブロックをカスケードして任意のバイト数のバス幅に関する計算を提供することができる。
図1に示した通り、論理回路100は複数のCRC計算ブロック(220、320、410)を含み、そのそれぞれは、シード・マルチプレクサ(seed multiplexor)(130、230、330、430)からのシード入力(seedinput)に基づくとともにデータ入力(120)に基づいてCRC値を計算する。wバイトの着信データ入力パス幅は2Nに等しくなければならないことは言うまでもない。すなわち、wバイトのデータ・バスの場合、N=log2(w)であり、回路は、2N、2N-1、・・・、21、20に対応するバイト幅のためにN+1個のCRC計算ブロックを含む。計算を実行する場合、CRC_seed_select信号は、それぞれのCRC計算ブロックがその計算に含まれるかまたは迂回されるかを選択するようにシード・マルチプレクサ(230、330、430)を制御する。これらのブロックを選択的に含めるかまたは迂回することにより、任意のバイト数を処理することができる。たとえば、wバイトを処理するためには2Nブロックが選択されて他のすべてのブロックが迂回され、w−1バイトを処理するためには2Nブロックが迂回されてブロック2N-1、・・・、20が選択され、w−2バイトを処理するためには2Nおよび20ブロックが迂回されてブロック2N-1、・・・、21が選択され、以下同様に選択される。各CRC計算ブロックは組み合わせXORツリーであり、その正確な設計は実現されるCRC多項式に依存することは言うまでもない。
この回路は初めに、複数の0からなる初期シード値がマルチプレクサ130によって選択されるように、CRC_reset信号がアサートされた状態から始まる。次に、選択されたCRC計算は、シード・マルチプレクサ(230、330、430)によって選択または迂回されたCRC計算ブロック(220、320、420)によって実行される。マルチプレクサ430におけるCRC計算の出力は、CRC結果レジスタ110に保管される。CRCレジスタ値は、データ入力(120)に基づいて各サイクルで更新される。データ・ステアリング・マルチプレクサ(210、310、410)は、どのブロックが選択されるかに基づいて、各CRC計算ブロックで使用すべきデータを選択する。パケットの最後のサイクルでは、CRC出力510は、そのパケットの計算CRC値をダウンストリーム論理に提供する。
本発明の一実施形態例では、32バイト幅のデータ入力が提供されている。したがって、このN=5のシステムは、32バイト、16バイト、8バイト、4バイト、2バイト、および1バイトという幅の6個のCRC計算ブロックを有する。名目上、パケット・データはバス幅全体を消費し、32バイト幅のCRC計算ブロックが選択される。しかし、パケットは、パケット伝送の開始時および終了時にはバス幅の一部分しか消費しない可能性がある。このようなケースでは、バス上での予想データ境界合わせに基づいて、CRC_select制御信号およびData_select制御信号が生成される。
広いデータ・バス幅の場合、第1の変形例による手法は計算を実行するために必要な論理の量を著しく削減する。(w=32バイトの場合、88%の論理サイズ削減を実現することができる。)wバイト幅のデータ・バスの場合、ブロック数は計算の所望の幅に応じてカスケードされ、w−1という計算幅の場合に最悪伝搬遅延(the worst case propagation delay)が発生し、その間にlog2(w)個のCRC計算ブロックがカスケードされる。
この実施形態によれば、wバイトより長い着信データ・パケットに関するCRCは、数クロック・サイクルの間に計算される。Rは、その計算の所与のクロック・サイクル中に処理しなければならないバイト数を表すものとする。Rは任意のクロック・サイクルで任意の値(Rw)を取ることができるが、CRC計算は、R=wである間のいくつかのサイクルに加えて、任意の残りのバイトを処理するときのさらに1サイクルを必要とする。
したがって、第1の実施形態用の制御段階はRバイトのデータ(Rw)を処理することができ、その計算回路は、2N、2(N-1)、2(N-2)、・・・、4(=22)、2(=21)、および1(=20)バイトというサイズのCRC計算ブロックからなる。w=32である場合、32バイト、16バイト、8バイト、4バイト、2バイト、1バイトのブロックが存在する。制御論理は、MR32になり、R=(An-1)*2(N-1)+(An-2)*2(N-2)+・・・+(A0)*1になるようにAn-1、An-2、・・・、A0という制御信号をアサートする。制御信号An-1、An-2、・・・、A0=1または0は以下に指定するようにブロックを選択する。
R=32の場合、32バイトまたは16バイト+16バイトのCRCを使用する
R=31の場合、16バイト+8バイト+4バイト+2バイト+1バイトのCRCを使用する
R=30の場合、16バイト+8バイト+4バイト+2バイトのCRCを使用する
R=29の場合、16バイト+8バイト+4バイト+1バイトのCRCを使用する
R=28の場合、16バイト+8バイト+4バイトのCRCを使用する
R=27の場合、16バイト+8バイト+2バイト+1バイトのCRCを使用する
R=26の場合、16バイト+8バイト+2バイトのCRCを使用する
R=25の場合、16バイト+8バイト+1バイトのCRCを使用する
R=24の場合、16バイト+8バイトのCRCを使用する
R=23の場合、16バイト+4バイト+2バイト+1バイトのCRCを使用する
R=22の場合、16バイト+4バイト+2バイトのCRCを使用する
R=21の場合、16バイト+4バイト+1バイトのCRCを使用する
R=20の場合、16バイト+4バイトのCRCを使用する
R=19の場合、16バイト+2バイト+1バイトのCRCを使用する
R=18の場合、16バイト+2バイトのCRCを使用する
R=17の場合、16バイト+1バイトのCRCを使用する
R=16の場合、16バイトのCRCを使用する
R=15の場合、8バイト+4バイト+2バイト+1バイトのCRCを使用する
R=14の場合、8バイト+4バイト+2バイトのCRCを使用する
R=13の場合、8バイト+4バイト+1バイトのCRCを使用する
R=12の場合、8バイト+4バイトのCRCを使用する
R=11の場合、8バイト+2バイト+1バイトのCRCを使用する
R=10の場合、8バイト+2バイトのCRCを使用する
R=9の場合、8バイト+1バイトのCRCを使用する
R=8の場合、8バイトのCRCを使用する
R=7の場合、4バイト+2バイト+1バイトのCRCを使用する
R=6の場合、4バイト+2バイトのCRCを使用する
R=5の場合、4バイト+1バイトのCRCを使用する
R=4の場合、4バイトのCRCを使用する
R=3の場合、2バイト+1バイトのCRCを使用する
R=2の場合、2バイトのCRCを使用する
R=1の場合、1バイトのCRCを使用する
32バイト、・・・、1バイトという各CRCモジュールごとに、対応するバイト長のデータがそれに送信されることになる。たとえば、R=10の場合、8バイト+2バイトのモジュールが使用され、8バイトのCRC計算ブロックに対して最初の8バイトのデータを選択し、最後の2バイトのデータが2バイトのCRC計算ブロックに送信されるように制御信号「Data_select」(図1に示す)がアサートされる。
本発明の第2の変形例は、従来技術の手法と、第1の変形例、すなわち、対数的反復手法との最適化を提供する。この実施形態によれば、所与のターゲット伝搬遅延について面積削減が最大化される。これは、CRC計算ブロックのサイズが計算の幅に正比例することに留意することによって実施される。したがって、広い計算幅のCRC計算ブロック数を削減することにより狭い計算幅のブロック数を削減するより大きい節約が得られる。同時に、対数的反復手法のカスケード・ブロック内の伝搬遅延は主に狭い幅のCRC計算ブロックによる。したがって、より広い計算幅に対数的反復手法を使用し、より小さい計算幅に並列手法を使用することにより、その回路に関するタイミング対面積の最適化が可能になる。
w=データ・バスのバイト幅であるシステムを想定する。N=log2(w)およびdmax=許可される最大遅延(CRC計算ブロック遅延単位)である場合、L=dmax−1になる。
第2の変形例によるCRC計算システムは、2N-L以上のCRC計算ブロック幅に対数的反復手法を使用し、2N-L未満のCRC計算ブロック幅に並列手法を使用して構築される。その結果得られるシステムは、2N、2N-1、・・・、2N-L+1、2N-L、2N-L−1、2N-L−2、・・・、21、20というバイト幅用のCRC計算ブロックを含む。その結果得られるシステムは、システムの対数的反復部分のL+1個のCRC計算ブロックと、回路の並列部分の2N-L−1個のCRC計算ブロックとを含む。このようなシステムによる最悪遅延は、2N-1〜2N-1+1(両端を含む)という範囲内の計算バイト幅の場合に発生する。この範囲では、L個のカスケード反復CRC計算ブロックに加えて、さらに1つの並列CRC計算ブロックが存在し、それにより伝搬が発生するに違いない。
開示した本発明の第2の変形例では、CRC計算のターゲット・バイト幅(w)が2の累乗であると想定している。
図2は、開示した本発明の第2の変形例によるCRC計算回路200のブロック図である。図2に示した通り、論理回路200は複数のCRC計算ブロック(220、320、420、520、521)を含み、そのそれぞれは、シード・マルチプレクサ(130、230、330、430)からのシード入力に基づくとともにデータ入力(120)に基づいてCRC値を計算する。wバイトのデータ・バスと最大遅延dmaxとを備えたシステムの場合、N=log2(w)であり、L=dmax−1である。システムの対数的反復部分は、2N、2N-1、・・・、2N-Lに対応するバイト幅のためにL+1個のCRC計算ブロック(220、320、420)を含む。システムの並列部分は、2N-L−1、・・・、20に対応するバイト幅のために2N-L個のCRC計算ブロック(520、521)を含む。計算を実行する場合、CRC_seed_select信号は、各反復CRC計算ブロックがその計算に含まれるかまたは迂回されるかを選択するようにシード・マルチプレクサ(230、330、430)を制御する。これらのブロックを選択的に含めるかまたは迂回することにより、2N-Lで割り切れる任意のバイト数を処理することができる。加えて、マルチプレクサ530は、並列CRC計算ブロック(520、521)がある場合にそのどちらを選択して出力を提供するかを選択する。これは、処理能力を任意のバイト数に拡張するものである。
たとえば、wバイトを処理するためには2Nブロックが選択されて他のすべての反復ブロックが迂回され、マルチプレクサ530が迂回入力を選択し、w−1バイトを処理するためには2Nブロックが迂回されて他のすべての反復ブロック(すなわち、ブロック2N-1、・・・、2N-L+1、2N-L)が選択され、マルチプレクサ530が2N-L−1ブロックからの入力を選択し、以下同様に選択される。各CRC計算ブロックは組み合わせXORツリーであり、その正確な設計は実現されるCRC多項式に依存する。
この回路は初めに、複数の0からなる初期シード値がマルチプレクサ130によって選択されるように、CRC_reset信号がアサートされた状態から始まる。次に、選択されたCRC計算は、シード・マルチプレクサ(230、330、430)によって選択または迂回された反復CRC計算ブロック(220、320、420)と、出力マルチプレクサ530によって選択または迂回された並列CRC計算ブロック(520、521)によって実行される。マルチプレクサ530におけるCRC計算の出力は、CRC結果レジスタ110に保管される。CRCレジスタ値は、データ入力(120)に基づいて各サイクルで更新される。データ・ステアリング・マルチプレクサ(210、310、410)は、どのブロックが選択されるかに基づいて、各反復CRC計算ブロックで使用すべきデータを選択する。データ・ステアリング・マルチプレクサ510は、選択された並列CRC計算ブロックで使用すべきデータを選択する。パケットの最後のサイクルでは、CRC出力610は、そのパケットの計算CRC値をダウンストリーム論理に提供する。
本発明の第2の変形例を実現する一実施形態例では、32バイト幅のデータ・バス入力の場合にdmax=3である。この結果、N=5、L=2のシステムは、32バイト、16バイト、および8バイトという幅の3個の反復CRC計算ブロックと、7バイト〜1バイトの幅の7個の並列CRC計算ブロックとを有することになる。名目上、パケット・データはバス幅全体を消費し、32バイト幅のCRC計算ブロックが選択される。しかし、パケットは、パケット伝送の開始時および終了時にはバス幅の一部分しか消費しない可能性がある。このようなケースでは、バス上での予想データ境界合わせに基づいて、CRC_select制御信号およびData_select制御信号が生成される。
図2の第2の変形例によるタイミング最適化バージョンでは、より良好なタイミングを達成するために、図1のものよりクリティカル・パス内の段階が少ない。前の実施形態の場合と同様に、wバイトより大きい長さのデータ・パケットに関するCRC計算は、複数クロック・サイクルの間に実行される。Rは、その計算の所与のクロック・サイクル中に処理しなければならないバイト数を表すものとする。
したがって、第2の実施形態用の制御段階はRバイトのデータ(Rw)を処理することができ、その計算回路は、2N、2(N-1)、2(N-2)、・・・、2(N-L)、2(N-L)−1、2(N-L)−2、・・・、および1バイトというサイズのCRC計算ブロックからなる。w=32、N=5、およびL=2である場合、32バイト、16バイト、8バイト、7バイト、6バイト、5バイト、4バイト、3バイト、2バイト、および1バイトのCRC段階が存在する。制御論理は、R32になり、R=(An-1)*2(N-1)+(An-2)*2(N-2)+・・・+(A0)*2(N-L)+(BK-1)*(2(N-L)−1)+・・・+(B0)*1になるようにAn-1、An-2、・・・、An-L、BK-1、・・・、B0という制御信号をアサートしてRバイトの処理を選択し、ここでK=2N-Lである。制御信号An-1、An-2、・・・、An-L、BK-1、・・・、B0=1または0は以下に指定するようにブロックを選択する。
R=32の場合、32バイトまたは16バイト+16バイトのCRCを使用する
R=31の場合、16バイト+8バイト+7バイトのCRCを使用する
R=30の場合、16バイト+8バイト+6バイトのCRCを使用する
R=29の場合、16バイト+8バイト+5バイトのCRCを使用する
R=28の場合、16バイト+8バイト+4バイトのCRCを使用する
R=27の場合、16バイト+8バイト+3バイトのCRCを使用する
R=26の場合、16バイト+8バイト+2バイトのCRCを使用する
R=25の場合、16バイト+8バイト+1バイトのCRCを使用する
R=24の場合、16バイト+8バイトのCRCを使用する
R=23の場合、16バイト+7バイトのCRCを使用する
R=22の場合、16バイト+6バイトのCRCを使用する
R=21の場合、16バイト+5バイトのCRCを使用する
R=20の場合、16バイト+4バイトのCRCを使用する
R=19の場合、16バイト+3バイトのCRCを使用する
R=18の場合、16バイト+2バイトのCRCを使用する
R=17の場合、16バイト+1バイトのCRCを使用する
R=16の場合、16バイトのCRCを使用する
R=15の場合、8バイト+7バイトのCRCを使用する
R=14の場合、8バイト+6バイトのCRCを使用する
R=13の場合、8バイト+5バイトのCRCを使用する
R=12の場合、8バイト+4バイトのCRCを使用する
R=11の場合、8バイト+3バイトのCRCを使用する
R=10の場合、8バイト+2バイトのCRCを使用する
R=9の場合、8バイト+1バイトのCRCを使用する
R=8の場合、8バイトのCRCを使用する
R=7の場合、7バイトのCRCを使用する
R=6の場合、6バイトのCRCを使用する
R=5の場合、5バイトのCRCを使用する
R=4の場合、4バイトのCRCを使用する
R=3の場合、3バイトのCRCを使用する
R=2の場合、2バイトのCRCを使用する
R=1の場合、1バイトのCRCを使用する
CRC計算を実行し時間最適化するための回路の第3の実施形態は、より汎用的で、2の累乗ではない「w」の値を可能にする、構造化された対数的反復手法を対象とする。
図3は、本発明の第3の変形例によるCRC計算回路300のブロック図である。この第3の変形例によれば、システムの対数的反復部分は、そのバイト幅が2N+M、2N-1+M、・・・、2N-L+Mとしてより汎用的に割り当てられているL+1個のCRC計算ブロック(220、320、420)を含み、ここでMは任意の定数を有する正のオフセット値(すなわち、0より大きいかまたは0に等しい)である。第3の変形例によるこのより汎用的な表現により、システムのターゲット・バイト幅(w)は2の累乗以外の値になりうる。これに対応して、システムの並列部分は、2N-L−1+M、・・・、20に対応するバイト幅のために2N-L+M個のCRC計算ブロック(520、521)を含む。本発明の前述の変形例の場合と同様に、計算を実行する場合、CRC_seed_select信号は、各反復CRC計算ブロックがその計算に含まれるかまたは迂回されるかを選択するようにシード・マルチプレクサ(230、330、430)を制御する。これらのブロックを選択的に含めるかまたは迂回することにより、2N-Lで割り切れる任意のバイト数を処理することができる。加えて、マルチプレクサ530は、並列CRC計算ブロック(520、521)がある場合にそのどちらを選択して出力を提供するかを選択する。
図4は、本発明の第4の実施形態によるCRC計算回路400のブロック図であり、各CRC計算ブロック(220、320、420など)はSバイトを処理することができ、ここでSは任意の正整数である。(k+1)*S>wおよびk*Swになるように、回路の反復部分は「k」個のブロックを含み、それぞれがSバイトを処理可能である。システムの並列部分は、S−1、S−2、・・・、1に対応するバイト幅のためにB−1個の計算ブロックを含む。計算を実行する場合、CRC_seed_select信号は、処理すべきSバイトの倍数を選択するようにシード・マルチプレクサ(130、230、330、430)を制御する。加えて、マルチプレクサ530は、並列CRC計算ブロック(520、521)がある場合にそのどちらを選択して出力を提供するかを選択する。これは、処理能力を任意のバイト数に拡張するものである。
第4の実施形態は、依然として第1の実施形態を使用する実現例以上にタイミングを最適化しながら、第2または第3の実施形態を使用する実現例以上に論理を削減する。dは、その回路の遅延(CRC計算ブロック単位)を表すものとする。この回路によるdの最悪値は、d=k+1になるように、最初のk*Sバイトについて計算を実行するためにk個のブロックが選択され、残りのバイトについて計算を実行するために1つの並列ブロックが選択されたときに、k*S〜wバイトの範囲内のxバイトの計算の場合に発生する。w=33バイト、L=2、M=1、k=4の場合、第3の実施形態を使用する実現例は最悪遅延d=2ブロックを有することになるが、この実施形態は最悪遅延d=5ブロックを有する。しかし、より大きい幅のCRC計算ブロックの数が第2の実施形態以上に削減されるので、この実施形態は論理を削減するものである。この実施形態によれば、概して、並列構成のCRC計算ブロックの数はS−1に等しくなると言えるが、より積極的なタイミング方式の場合、並列構成のCRC計算ブロックの数はSを超える可能性がある。
したがって、第4の実施形態用の制御段階はRバイトのデータ(Rw)を処理することができ、その計算回路は、Sバイトのk個のブロックと、S−1、S−2、・・・1バイトのS−1個の並列ブロックからなる。たとえば、図4に示した本発明の第4の変形例によれば、w=34およびS=5である場合、制御論理は、R34になり、R=(Ak-1)*S+(Ak-2)*S+・・・+(A0)*S+(BS-1)*(S−1)+・・・+(B0)*1になるようにAk-1、Ak-2、・・・、A0、BS-1、・・・、B0という制御信号をアサートしてRバイトの処理を選択する。制御信号Ak-1、Ak-2、・・・、A0、BS-1、・・・、B0=1または0は以下に指定する通りである(ここで、Xは所与のクロック・サイクル中に選択されたSバイトのブロック数を表し、その選択は他の場合には任意である)。
34バイトCRC=Sバイト*6+4バイト、ここでX=6(パス全体)
33バイトCRC=Sバイト*6+3バイト、ここでX=6
32バイトCRC=Sバイト*6+2バイト、ここでX=6
31バイトCRC=Sバイト*6+1バイト、ここでX=6
30バイトCRC=Sバイト*6、ここでX=6
29バイトCRC=Sバイト*5+4バイト、ここでX=5
25バイトCRC=Sバイト*5、ここでX=5
24バイトCRC=Sバイト*4+4バイト、ここでX=4
23バイトCRC=Sバイト*4+3バイト、ここでX=4
22バイトCRC=Sバイト*4+2バイト、ここでX=4
21バイトCRC=Sバイト*4+1バイト、ここでX=4
20バイトCRC=Sバイト*4、ここでX=4
19バイトCRC=Sバイト*3+4バイト、ここでX=3
18バイトCRC=Sバイト*3+3バイト、ここでX=3
17バイトCRC=Sバイト*3+2バイト、ここでX=3
16バイトCRC=Sバイト*3+1バイト、ここでX=3
15バイトCRC=Sバイト*3、ここでX=3
14バイトCRC=Sバイト*2+4バイト、ここでX=2
13バイトCRC=Sバイト*2+3バイト、ここでX=2
12バイトCRC=Sバイト*2+2バイト、ここでX=2
11バイトCRC=Sバイト*2+1バイト、ここでX=2
10バイトCRC=Sバイト*2、ここでX=2
9バイトCRC=Sバイト+4バイト、ここでX=1
8バイトCRC=Sバイト+3バイト、ここでX=1
7バイトCRC=Sバイト+2バイト、ここでX=1
6バイトCRC=Sバイト+1バイト、ここでX=1
5バイトCRC=Sバイト、ここでX=1
4バイトCRC=4バイト、ここでX=0
3バイトCRC=3バイト、ここでX=0
2バイトCRC=2バイト、ここでX=0
1バイトCRC=1バイト、ここでX=0
図5は、図1〜4に関して説明した本発明の4通りの変形例のすべてを包含するCRC計算回路450の汎用形式を提供するものであり、直列カスケード・ブロック(220、320、420など)の反復部分についてはCRC計算ブロック・バイト幅はサイズがFx、Fx-1、・・・、F1の範囲であり、ここでFx x-1 ・・・1 0バイトであり、並列ブロック(520、521など)についてはCRC計算ブロック・バイト幅はサイズがGy-iであり、ここでi=0〜y−1である場合にGy-i=Gy-i-1+1であり、y1−1である。この汎用形式によれば、CRC計算に含まれるバイト数は、R=Ax*Fx+Ax-1*Fx−1+・・・+A1*F1+By*Gy+・・・B1*G1という関係により表すことができ、ここでxはFxブロックの数であり、yはGyブロックの数であり、4通りの実施形態の1つにより説明した通り、Ax、Ax-1、・・・、A1、By、・・・、B1=0または1である。
図5は、本発明のすべての変形例の汎用形式を示している。第1の実施形態の場合、回路の並列部分にCRC計算ブロックがまったく存在しないように、Fx=2N、Fx-1=2N-1、・・・、F1=20およびy=F1−1=0である。第2の実施形態の場合、Fx=2N、Fx-1=2N-1、・・・、F1=2N-L、Gy=2N-L−1、・・・、G1=1である。第3の実施形態の場合、Fx=2N+M、Fx-1=2N-1+M、・・・、F1=2N-L+M、Gy=2N-L+M−1、・・・、G1=1である。第4の実施形態の場合、Fx=Fx-1=・・・=F1=SおよびGy=y−1、・・・、G1=1であり、ここでyS−1である。
その例示的かつ好ましい諸実施形態に関して本発明を特に図示し説明してきたが、当業者であれば、特許請求の範囲の範囲によってのみ制限されなければならない本発明の精神および範囲から逸脱せずに、形式および詳細の点で上記その他の変更が可能であることを理解するであろう。
本発明の一実施形態により形成され、本発明が機能しうるシステム・アーキテクチャ全体のブロック図である。 本発明の第2の実施形態により形成され、本発明が機能しうるシステム・アーキテクチャ全体のブロック図である。 本発明の第3の実施形態により形成され、本発明が機能しうるシステム・アーキテクチャ全体のブロック図である。 本発明の第4の実施形態により形成され、本発明が機能しうるシステム・アーキテクチャ全体のブロック図である。 本発明の汎用一実施形態により形成され、本発明が機能しうるシステム・アーキテクチャ全体のブロック図である。

Claims (16)

  1. wバイトまでの幅のデータを伝送可能である通信チャネルにより伝送すべき複数バイトのデータに関連する巡回冗長検査(CRC)コード・ワードを生成するためのCRC計算回路であって、
    それぞれがデータ入力を受け取り該データ入力に対するCRC値を生成するL+1個のCRC計算ブロックを有する第1の直列結合コード生成ブロックであって、前記L+1個のCRC計算ブロックのうちの第1番目のCRC計算ブロックは2 バイトのデータ入力を受け取り、 前記L+1個のCRC計算ブロックのうちの第2番目のCRC計算ブロックは2 N−1 バイトのデータ入力を受け取り、前記L+1個のCRC計算ブロックのうちの最後のCRC計算ブロックは2 N−L バイトのデータ入力を受け取り、ここでNがlog2(w)に等しく、Lが前記L+1個のCRC計算ブロックCRC値を処理するための最大伝搬遅延に基づく整数である、前記第1の直列結合コード生成ブロックと、
    それぞれがデータ入力を受け取り該データ入力に対するCRC値を生成する2 N−L −1個のCRC計算ブロックを有する第2の並列結合コード生成ブロックであって、前記2 N−L −1個のCRC計算ブロックの第1番目のCRC計算ブロックはN−L−1バイトのデータ入力を受け取り、前記 N−L −1個CRC計算ブロックの第2番目のCRC計算ブロックは前記第1番目のCRC計算ブロックよりも1バイト少ないデータ入力を受け取り、前記2 N−L −1個のCRC計算ブロックの最後のCRC計算ブロックは1バイトのデータ入力を受け取る前記第2の並列結合コード生成ブロックと、
    前記データ入力に基づいてCRC計算に含めるために前記第1の直列結合コード生成ブロックのCRC計算ブロック及び前記第2の並列結合コード生成ブロックのCRC計算ブロックを選択するために制御可能な複数個のマルチプレクサ手段と、
    該複数個のマルチプレクサ手段のうちの最後のマルチプレクサ手段からのCRC値を保管するCRC結果レジスタとを備える、CRC計算回路。
  2. 前記第1の直列結合コード生成ブロック内で前記CRC値を処理するための前記第1の最大伝搬遅がクロック・サイクルの最大遅延dmaxを有し、前記整数L=dmax−1である、請求項に記載のCRC計算回路。
  3. 前記データ入力と前記第1の直列結合コード生成ブロックのCRC計算ブロックのそれぞれとの間にデータ・ステアリング・マルチプレクサが接続され、該データ・ステアリング・マルチプレクサは、どのCRC計算ブロックが選択されるかに基いて、前記CRC計算ブロックで使用するデータ入力を選択する、請求項1に記載のCRC計算回路。
  4. 前記データ入力と前記第2の並列結合コード生成ブロックのCRC計算ブロックの間にデータ・ステアリング・マルチプレクサが接続され、該データ・ステアリング・マルチプレクサは、どのCRC計算ブロックが選択されるかに基いて、前記CRC計算ブロックで使用するデータ入力を選択する、請求項1に記載のCRC計算回路。
  5. 前記第1の直列結合コード生成ブロックの前記CRC計算ブロックのそれぞれの間に1つのマルチプレクサ手段が接続され、前記CRC計算ブロックのうちの最後のCRC計算ブロックと、前記第2の並列結合コード生成ブロックCRC計算ブロックとの間に1つのマルチプレクサ手段が接続され、前記第2の並列結合コード生成ブロックCRC計算ブロックと前記CRC結果レジスタとの間に前記最後のマルチプレクサ手段が接続されている、請求項1に記載のCRC計算回路。
  6. 前記データ入力の前記CRC値が複数サイクルの間に計算され、該CRC値が前記データ入力に基いて各サイクルで更新される、請求項1に記載のCRC計算回路。
  7. 前記結果レジスタと前記第1の直列結合コード生成ブロックの前記第1番目のCRC計算ブロックとの間に追加のマルチプレクサが接続されている、請求項1に記載のCRC計算回路。
  8. wバイトまでの幅のデータを伝送可能である通信チャネルにより伝送すべき複数バイトのデータに関連する巡回冗長検査(CRC)コード・ワードを生成するためのCRC計算回路であって、
    それぞれがデータ入力を受け取り該データ入力に対するCRC値を生成するL+1個のCRC計算ブロックを有する第1の直列結合コード生成ブロックであって、前記L+1個のCRC計算ブロックのうちの第1番目のCRC計算ブロックは2 +Mバイトのデータ入力を受け取り、 前記L+1個のCRC計算ブロックのうちの第2番目のCRC計算ブロックは2 N−1 +Mバイトのデータ入力を受け取り、前記L+1個のCRC計算ブロックのうちの最後のCRC計算ブロックは2 N−L +Mバイトのデータ入力を受け取り、ここでNがlog2(w)に等しく、Lが前記L+1個のCRC計算ブロックCRC値を処理するための最大伝搬遅延に基づく整数である、前記第1の直列結合コード生成ブロックと、
    それぞれがデータ入力を受け取り該データ入力に対するCRC値を生成する2 N−L +M個のCRC計算ブロックを有する第2の並列結合コード生成ブロックであって、前記2 N−L +M個CRC計算ブロックの第1番目のCRC計算ブロックはN−L−1+Mバイトのデータ入力を受け取り、前記 N−L +M個CRC計算ブロックの第2番目のCRC計算ブロックは前記第1番目のCRC計算ブロックよりも1バイト少ないデータ入力を受け取り、前記2 N−L +M個のCRC計算ブロックの最後のCRC計算ブロックは1バイトのデータ入力を受け取る前記第2の並列結合コード生成ブロックと、
    前記データ入力に基づいてCRC計算に含めるために前記第1の直列結合コード生成ブロックのCRC計算ブロック及び前記第2の並列結合コード生成ブロックのCRC計算ブロックを選択するために制御可能な複数個のマルチプレクサ手段と、
    該複数個のマルチプレクサ手段のうちの最後のマルチプレクサ手段からのCRC値を保管するCRC結果レジスタとを備える、CRC計算回路。
  9. 前記第1の直列結合コード生成ブロック内で前記CRC値を処理するための前記第1の最大伝搬遅がクロック・サイクルの最大遅延dmaxを有し、前記整数L=dmax−1である、請求項に記載のCRC計算回路。
  10. 前記データ入力と前記第1の直列結合コード生成ブロックのCRC計算ブロックのそれぞれとの間にデータ・ステアリング・マルチプレクサが接続され、該データ・ステアリング・マルチプレクサは、どのCRC計算ブロックが選択されるかに基いて、前記CRC計算ブロックで使用するデータ入力を選択する、請求項8に記載のCRC計算回路。
  11. 前記データ入力と前記第2の並列結合コード生成ブロックのCRC計算ブロックの間にデータ・ステアリング・マルチプレクサが接続され、該データ・ステアリング・マルチプレクサは、どのCRC計算ブロックが選択されるかに基いて、前記CRC計算ブロックで使用するデータ入力を選択する、請求項8に記載のCRC計算回路。
  12. 前記第1の直列結合コード生成ブロックの前記CRC計算ブロックのそれぞれの間に1つのマルチプレクサ手段が接続され、前記CRC計算ブロックのうちの最後のCRC計算ブロックと、前記第2の並列結合コード生成ブロックCRC計算ブロックとの間に1つのマルチプレクサ手段が接続され、前記第2の並列結合コード生成ブロックCRC計算ブロックと前記CRC結果レジスタとの間に前記最後のマルチプレクサ手段が接続されている、請求項8に記載のCRC計算回路。
  13. 前記データ入力の前記CRC値が複数サイクルの間に計算され、該CRC値が前記データ入力に基いて各サイクルで更新される、請求項8に記載のCRC計算回路。
  14. 前記結果レジスタと前記第1の直列結合コード生成ブロックの前記第1番目のCRC計算ブロックとの間に追加のマルチプレクサが接続されている、請求項8に記載のCRC計算回路。
  15. M>0である、請求項8に記載のCRC計算回路。
  16. Nがlog2(w)に等しい、請求項8に記載のCRC計算回路。
JP2006504809A 2003-03-28 2004-02-27 巡回冗長検査(crc)コード・ワードを生成するためのcrc計算回路 Expired - Lifetime JP4378381B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/249,290 US7191383B2 (en) 2003-03-28 2003-03-28 System and method for optimizing iterative circuit for cyclic redundancy check (CRC) calculation
PCT/EP2004/003036 WO2004086633A1 (en) 2003-03-28 2004-02-27 Iterative circuit and method for variable width parallel cyclic redundancy check (crc) calculation

Publications (2)

Publication Number Publication Date
JP2006521730A JP2006521730A (ja) 2006-09-21
JP4378381B2 true JP4378381B2 (ja) 2009-12-02

Family

ID=32987044

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006504809A Expired - Lifetime JP4378381B2 (ja) 2003-03-28 2004-02-27 巡回冗長検査(crc)コード・ワードを生成するためのcrc計算回路

Country Status (9)

Country Link
US (2) US7191383B2 (ja)
EP (1) EP1609247B1 (ja)
JP (1) JP4378381B2 (ja)
KR (1) KR100745485B1 (ja)
CN (1) CN100461637C (ja)
AT (1) ATE328396T1 (ja)
CA (1) CA2520558C (ja)
DE (1) DE602004001048T2 (ja)
WO (1) WO2004086633A1 (ja)

Families Citing this family (47)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7600179B2 (en) 2003-06-23 2009-10-06 Texas Instruments Incorporated Sparse maximum likelihood decoder for block codes
EP1526701A1 (en) * 2003-10-22 2005-04-27 Mitsubishi Denki Kabushiki Kaisha Methods and devices for transferring and for recovering data packets
US7249306B2 (en) * 2004-02-20 2007-07-24 Nvidia Corporation System and method for generating 128-bit cyclic redundancy check values with 32-bit granularity
US8311127B2 (en) * 2004-03-04 2012-11-13 Nvidia Corporation Method and apparatus to check for wrongly decoded macroblocks in streaming multimedia applications
US7766797B2 (en) 2004-08-11 2010-08-03 Icon Ip, Inc. Breakaway or folding elliptical exercise machine
US7740563B2 (en) 2004-08-11 2010-06-22 Icon Ip, Inc. Elliptical exercise machine with integrated anaerobic exercise system
US7266760B1 (en) * 2004-09-30 2007-09-04 Altera Corporation Method and apparatus for calculating cyclic redundancy checks for variable length packets
US7260765B2 (en) * 2004-12-17 2007-08-21 International Business Machines Corporation Methods and apparatus for dynamically reconfigurable parallel data error checking
US7761776B1 (en) * 2005-11-03 2010-07-20 Xilinx, Inc. Method and apparatus for a modular, programmable cyclic redundancy check design
KR100645388B1 (ko) * 2005-11-30 2006-11-14 한국전자통신연구원 임의의 크기의 병렬 처리가 가능한 병렬 crc 생성 장치및 방법
JP4764973B2 (ja) * 2005-12-09 2011-09-07 独立行政法人産業技術総合研究所 Crc値の算出装置
US7658698B2 (en) 2006-08-02 2010-02-09 Icon Ip, Inc. Variable stride exercise device with ramp
WO2008023684A1 (fr) * 2006-08-22 2008-02-28 Panasonic Corporation Unité d'opération arithmétique de résidus en parallèle et procédé d'opération arithmétique de résidus en parallèle
US7736279B2 (en) 2007-02-20 2010-06-15 Icon Ip, Inc. One-step foldable elliptical exercise machine
TWI341096B (en) * 2007-04-03 2011-04-21 Ind Tech Res Inst Method and system for calculating crc
WO2008157591A1 (en) * 2007-06-20 2008-12-24 Texas Instruments Incorporated Generating crc syndromes with data extracted from syndrome loop
US8127211B2 (en) 2007-06-20 2012-02-28 Texas Instruments Incorporated Adding known data to CRC processing without increased processing time
US20080320365A1 (en) * 2007-06-20 2008-12-25 Texas Instruments Incorporated Providing an initial syndrome to a crc next-state decoder independently of its syndrome feedback loop
US20090024900A1 (en) * 2007-07-18 2009-01-22 Cisco Technology, Inc. Cyclic redundancy checking in lane-based communications
JP4798164B2 (ja) * 2008-04-02 2011-10-19 ソニー株式会社 送信装置および方法、受信装置および方法、並びにプログラム
JP4896931B2 (ja) * 2008-06-24 2012-03-14 株式会社東芝 検査符号生成方法
US8904115B2 (en) * 2010-09-28 2014-12-02 Texas Instruments Incorporated Cache with multiple access pipelines
US8443256B2 (en) 2011-01-24 2013-05-14 Xilinx, Inc. Method and apparatus for determining a cyclic redundancy check (CRC) for a data message
WO2012109872A1 (zh) * 2011-08-02 2012-08-23 华为技术有限公司 通信系统中的循环冗余校验处理方法、装置和lte终端
CN103427939A (zh) * 2012-05-18 2013-12-04 中兴通讯股份有限公司 一种基于xgmii接口的通道死锁自动恢复方法及芯片
US8738990B2 (en) 2012-07-19 2014-05-27 Nvidia Corporation Cyclic redundancy check generation via distributed time multiplexed linear feedback shift registers
US8726124B2 (en) * 2012-07-19 2014-05-13 Nvidia Corporation Cyclic redundancy check generation via distributed time multiplexed linear feedback shift registers
US9246491B2 (en) * 2012-07-27 2016-01-26 Alcatel Lucent Method and apparatus for performing pipelined operations on parallel input data with feedback
CN102891685B (zh) * 2012-09-18 2018-06-22 国核自仪系统工程有限公司 基于fpga的并行循环冗余校验运算电路
GB2519140B (en) * 2013-10-11 2021-03-10 Advanced Risc Mach Ltd Cumulative error detection in data transmission
CN103701566B (zh) * 2013-12-18 2017-09-12 华为技术有限公司 一种校验方法和装置
US9891985B1 (en) * 2014-11-01 2018-02-13 Netronome Systems, Inc. 256-bit parallel parser and checksum circuit with 1-hot state information bus
CN105049057B (zh) * 2015-08-17 2018-04-20 中国航天科技集团公司第九研究院第七七一研究所 一种面向128位并行输入的crc‑32校验电路
US10625137B2 (en) 2016-03-18 2020-04-21 Icon Health & Fitness, Inc. Coordinated displays in an exercise device
US10493349B2 (en) 2016-03-18 2019-12-03 Icon Health & Fitness, Inc. Display on exercise device
US10625114B2 (en) 2016-11-01 2020-04-21 Icon Health & Fitness, Inc. Elliptical and stationary bicycle apparatus including row functionality
US10419035B2 (en) 2017-11-20 2019-09-17 International Business Machines Corporation Use of multiple cyclic redundancy codes for optimized fail isolation
US10541782B2 (en) 2017-11-20 2020-01-21 International Business Machines Corporation Use of a cyclic redundancy code multiple-input shift register to provide early warning and fail detection
US10530396B2 (en) 2017-11-20 2020-01-07 International Business Machines Corporation Dynamically adjustable cyclic redundancy code types
US10530523B2 (en) 2017-11-20 2020-01-07 International Business Machines Corporation Dynamically adjustable cyclic redundancy code rates
KR102609758B1 (ko) * 2018-03-27 2023-12-04 삼성전자주식회사 데이터 통신 오류를 검출하는 순환 중복 검사 유닛 데이터 통신 장치 및 검출 방법
CN111130562B (zh) * 2018-11-01 2022-12-09 中国科学院微电子研究所 Crc并行计算方法及系统
CN109462458B (zh) * 2019-01-11 2021-04-16 深圳市常茂信科技开发有限公司 一种多级流水电路实现并行crc的方法
JP2021039672A (ja) 2019-09-05 2021-03-11 キオクシア株式会社 メモリシステム、パケット保護回路およびcrc計算方法
CN110504975B (zh) * 2019-09-29 2022-12-27 中国科学院微电子研究所 一种crc并行编解码方法及基于其的编解码器
WO2022186853A1 (en) * 2021-03-03 2022-09-09 Zeku, Inc. Dynamic cyclic redundancy check update for iterative decoding
CN115408574A (zh) 2021-05-28 2022-11-29 南宁富联富桂精密工业有限公司 数据分析方法、装置及计算机可读存储介质

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4703485A (en) * 1986-02-10 1987-10-27 International Business Machines Corporation Method and apparatus for computing and implementing error detection check bytes
WO1989008362A1 (en) * 1988-02-29 1989-09-08 Kabushiki Kaisha Komatsu Seisakusho Series control unit and method of control
JP3093820B2 (ja) * 1991-04-26 2000-10-03 オリンパス光学工業株式会社 厚肉品の射出成形金型および射出成形方法
JPH05170338A (ja) * 1991-12-20 1993-07-09 Kuinraito Denshi Seiko Kk シート物積層装置
JPH06189124A (ja) * 1992-12-21 1994-07-08 Konica Corp 画像の色修正装置
US5673291A (en) * 1994-09-14 1997-09-30 Ericsson Inc. Simultaneous demodulation and decoding of a digitally modulated radio signal using known symbols
US6023783A (en) * 1996-05-15 2000-02-08 California Institute Of Technology Hybrid concatenated codes and iterative decoding
US5844923A (en) * 1996-10-24 1998-12-01 At&T Corp Fast framing of nude ATM by header error check
DE69731932T2 (de) 1996-10-29 2006-02-16 International Business Machines Corp. Verfahren und Vorrichtung für zweistufige CRC-32-Berechnung
DE19838865C2 (de) * 1998-08-26 2001-03-01 Ericsson Telefon Ab L M Parallele CRC Erzeugungsschaltung zum Erzeugen eines CRC Codes und Verfahren zum Generieren einer derartigen Schaltung
US6292918B1 (en) * 1998-11-05 2001-09-18 Qualcomm Incorporated Efficient iterative decoding
US6357032B1 (en) * 1999-02-08 2002-03-12 International Business Machines Corporation Method and apparatus for implementing cyclic redundancy check calculation for data communications
US6530057B1 (en) * 1999-05-27 2003-03-04 3Com Corporation High speed generation and checking of cyclic redundancy check values
US6560742B1 (en) * 1999-12-09 2003-05-06 International Business Machines Corporation Parallel system and method for cyclic redundancy checking (CRC) generation
US6519737B1 (en) * 2000-03-07 2003-02-11 International Business Machines Corporation Computing the CRC bits at a time for data whose length in bits is not a multiple of M
JP2001285076A (ja) * 2000-03-31 2001-10-12 Ando Electric Co Ltd Crc符号演算回路、及びcrc符号演算方法
JP2002141809A (ja) * 2000-10-31 2002-05-17 Ando Electric Co Ltd Crc符号演算回路、及びcrc符号演算方法
JP2002174399A (ja) * 2000-12-06 2002-06-21 Seibu Gas Co Ltd 圧縮天然ガス自動車用ガススタンドシステム
US6701478B1 (en) * 2000-12-22 2004-03-02 Nortel Networks Limited System and method to generate a CRC (cyclic redundancy check) value using a plurality of CRC generators operating in parallel
US6732318B2 (en) * 2001-04-03 2004-05-04 Sun Microsystems, Inc. Variable width parallel cyclical redundancy check
US6701479B2 (en) * 2001-05-15 2004-03-02 Network Elements, Inc. Fast cyclic redundancy check (CRC) generation
US6820228B1 (en) * 2001-06-18 2004-11-16 Network Elements, Inc. Fast cyclic redundancy check (CRC) generation

Also Published As

Publication number Publication date
US20040194000A1 (en) 2004-09-30
DE602004001048D1 (de) 2006-07-06
KR20050110646A (ko) 2005-11-23
CA2520558A1 (en) 2004-10-07
US20070162823A1 (en) 2007-07-12
JP2006521730A (ja) 2006-09-21
CA2520558C (en) 2008-12-09
EP1609247A1 (en) 2005-12-28
US7191383B2 (en) 2007-03-13
DE602004001048T2 (de) 2007-01-11
EP1609247B1 (en) 2006-05-31
WO2004086633A1 (en) 2004-10-07
CN100461637C (zh) 2009-02-11
US8051359B2 (en) 2011-11-01
KR100745485B1 (ko) 2007-08-02
CN1762103A (zh) 2006-04-19
ATE328396T1 (de) 2006-06-15

Similar Documents

Publication Publication Date Title
JP4378381B2 (ja) 巡回冗長検査(crc)コード・ワードを生成するためのcrc計算回路
US7590916B2 (en) Cyclic redundancy checking value calculator
US8812940B2 (en) Programmable error correction capability for BCH codes
US4723243A (en) CRC calculation machine with variable bit boundary
US8225187B1 (en) Method and apparatus for implementing a cyclic redundancy check circuit
Cheng et al. High-speed parallel CRC implementation based on unfolding, pipelining, and retiming
US20080307288A1 (en) Data coding apparatus and methods
US7886210B2 (en) Apparatus for pipelined cyclic redundancy check circuit with multiple intermediate outputs
Qaqos Optimized FPGA implementation of the CRC using parallel pipelining architecture
US7571370B2 (en) Configurable, fast, 32-bit CRC generator for 1-byte to 16-bytes variable width input data
US4720831A (en) CRC calculation machine with concurrent preset and CRC calculation function
US9639416B1 (en) CRC circuits with extended cycles
US8136010B2 (en) Apparatus for pipelined cyclic redundancy check circuit with multiple intermediate outputs
US7320101B1 (en) Fast parallel calculation of cyclic redundancy checks
US6880121B2 (en) Parallel processing syndrome calculating circuit and reed-solomon decoding circuit
Lavoie et al. New VLSI architectures for fast soft-decision threshold decoders
Zhang et al. Reducing parallel linear feedback shift register complexity through input tap modification
US8095848B1 (en) Multi-byte cyclic redundancy check calculation circuit and method of operating the same
US7138930B1 (en) Multiple byte data path encoding/decoding device and method
KR100340001B1 (ko) 순회 용장 부호 계산장치
US7032162B1 (en) Polynomial expander for generating coefficients of a polynomial from roots of the polynomial
Lee An ultra high-speed Reed-Solomon decoder
Gawande et al. Design and Implementation of Parallel CRC for High Speed Application
Dinh et al. Design of a high-speed (255,239) RS decoder using 0.18/spl mu/m CMOS
Yamane et al. An ultra-fast Reed-Solomon decoder soft-IP with 8-error correcting capability

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20061219

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090519

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090813

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20090901

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20090914

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120918

Year of fee payment: 3