(57)【要約】【課題】  ｗバイトまでの幅の範囲に及び、通信チャネルにより伝達すべきデータに関連するＣＲＣコード・ワードを生成するためのシステムを提供することにある。【解決手段】  このシステムは、第１の複数の直列結合コード生成ブロックであって、それぞれが各ブロックへのデータ入力に基づいてＣＲＣ値を生成するためのものであり、第１の複数ブロックのうちのそれぞれのブロックが２N＋Ｍ〜２N-L＋Ｍの範囲に及ぶそれぞれのバイト幅を有するデータ入力を受信するために構成され、ここでＮがｌｏｇ2（ｗ）に等しく、Ｍがオフセット値であり、Ｌが最大伝搬遅延基準に基づく整数である、第１の複数の直列結合コード生成ブロックと、第２の複数の並列結合コード生成ブロックであって、それぞれがデータ入力に基づいてＣＲＣ値を生成するためのものであり、第２の複数ブロックのうちのそれぞれのブロックが２N-L−１＋Ｍ〜２0の範囲に及ぶそれぞれのバイト幅を有するデータを受信するために構成される、第２の複数の並列結合コード生成ブロックと、データ入力に基づいてＣＲＣ計算に含めるために第１および第２の複数ブロック内の特定のＣＲＣコード生成ブロックを選択するための装置とを含み、任意のデータ入力バイト数を処理することができる。
2006521730.tif 000002
【特許請求の範囲】
【請求項１】
所与のバイト幅を有し、２nバイトの並列データ幅を有する通信リンクにより伝送すべきデータ・パケットに付加されるエラー制御コードを生成するためのアーキテクチャであって、
複数のコード生成ブロックと、
２nバイト用の前記コードを生成する前記コード生成ブロックの第１のブロックと、
２n-1バイト用の前記コードを生成する前記コード生成ブロックの第２のブロックと、を有し、
前記第１のコード生成ブロックからの前記コードが前記第２のコード生成ブロックに選択的に結合され、所与のデータ・パケットについて、前記所与のデータ・パケットの前記所与のバイト幅に応じて、前記第１および第２のコード生成ブロックが選択的に使用可能になる、アーキテクチャ。
【請求項２】
所与のバイト幅を有し、２nバイトの並列データ幅を有する通信リンクにより伝送すべきデータ・パケットに付加されるエラー制御コードを生成するためのアーキテクチャであって、
第１の複数の直列結合コード生成ブロックであって、前記第１の複数のコード生成ブロックのうちの第１のブロックが２nバイト用の前記コードを生成し、前記第１の複数のコード生成ブロックのうちの第２のブロックが２n-1バイト用の前記コードを生成し、前記第１のコード生成ブロックからの前記コードが前記第２のコード生成ブロックに選択的に結合される、第１の複数の直列結合コード生成ブロックと、
第２の複数の並列結合コード生成ブロックであって、前記第２の複数のコード生成ブロックのうちの第１のブロックが２xバイト用の前記コードを生成し、前記コード生成ブロックのうちの第２のブロックが２yバイト用の前記コードを生成し、ｘおよびｙがｎおよびｎ−１とは異なる、第２の複数の並列結合コード生成ブロックと、
を有し、
所与のデータ・パケットについて、前記所与のデータ・パケットの前記所与のバイト幅に応じて、前記第１の複数の直列結合コード生成ブロックのうちの１つまたは複数と、前記並列結合コード生成ブロックのうちの０個または１つが選択的に使用可能になる、アーキテクチャ。
【請求項３】
通信チャネルにより伝送すべき複数バイトのデータに関連するＣＲＣコード・ワードを生成するための回路であって、前記通信チャネルがｗバイトまでの幅のデータを伝送可能であり、前記回路が、
第１の複数の直列結合コード生成ブロックであって、それぞれが前記ブロックへのデータ入力に基づいてＣＲＣ値を生成するためのものであり、前記第１の複数のコード生成ブロックのうちのそれぞれのブロックが２N＋Ｍ、２N-1＋Ｍ、・・・、２N-L＋Ｍの範囲に及ぶそれぞれのバイト幅を有するデータ入力を受信するために構成され、ここでｗ＝２N＋Ｍであり、Ｍがオフセット値であり、Ｌが前記第１の複数ブロック内でＣＲＣ値を処理するための最大伝搬遅延基準に基づく整数である、第１の複数の直列結合コード生成ブロックと、
第２の複数の並列結合コード生成ブロックであって、それぞれが前記ブロックへのデータ入力に基づいてＣＲＣ値を生成するためのものであり、前記第２の複数のコード生成ブロックのうちのそれぞれのブロックが２N-L−１＋Ｍ、２N-L−２＋Ｍ、・・・、２0の範囲に及ぶそれぞれのバイト幅を有するデータ入力を受信するために構成される、第２の複数の並列結合コード生成ブロックと、
前記データ入力に基づいてＣＲＣ計算に含めるために前記第１および第２の複数ブロック内の特定のＣＲＣコード生成ブロックを選択するために制御可能なマルチプレクサ手段と、
を有し、
ＣＲＣコード生成ブロックを選択的に含めるかまたは迂回することにより、対応するＣＲＣコード生成のために、２N-Lで割り切れる任意のデータ入力バイト数を処理することができる回路。
【請求項４】
Ｍ＞０である、請求項３に記載のＣＲＣコード生成回路。
【請求項５】
Ｎがｌｏｇ2（ｗ）に等しい、請求項３に記載のＣＲＣコード生成回路。
【請求項６】
通信チャネルにより伝送すべき複数バイトのデータに関連するＣＲＣコード・ワードを生成するための回路であって、前記通信チャネルがｗバイトまでの幅のデータを伝送可能であり、前記回路が、
第１の複数の直列結合コード生成ブロックであって、それぞれが前記ブロックへのデータ入力に基づいてＣＲＣ値を生成するためのものであり、前記第１の複数のコード生成ブロックのうちのそれぞれのブロックが２N〜２N-Lの範囲に及ぶ２の累乗のそれぞれのバイト幅を有するデータ入力を受信するために構成され、ここでＮがｌｏｇ2（ｗ）に等しく、Ｌが前記第１の複数ブロック内でＣＲＣ値を処理するための最大伝搬遅延基準に基づく整数である、第１の複数の直列結合コード生成ブロックと、
第２の複数の並列結合コード生成ブロックであって、それぞれが前記ブロックへのデータ入力に基づいてＣＲＣ値を生成するためのものであり、前記第２の複数のコード生成ブロックのうちのそれぞれのブロックが２N-L−１〜２0の範囲に及ぶそれぞれのバイト幅を有するデータ入力を受信するために構成される、第２の複数の並列結合コード生成ブロックと、
前記データ入力に基づいてＣＲＣ計算に含めるために前記第１および第２の複数ブロック内の特定のＣＲＣコード生成ブロックを選択するために制御可能なマルチプレクサ手段と、
を有し、
ＣＲＣコード生成ブロックを選択的に含めるかまたは迂回することにより、対応するＣＲＣコード生成のために、２N-Lで割り切れる任意のデータ入力バイト数を処理することができる回路。
【請求項７】
前記第１の複数の直列結合コード生成ブロックがＬ＋１という数量を有し、前記第２の複数の並列結合コード生成ブロックが２N-L−１という数量を有する、請求項６に記載のＣＲＣコード生成回路。
【請求項８】
前記第１の複数の直列結合コード生成ブロック内でＣＲＣ値を処理するための前記第１の最大伝搬遅延基準がクロック・サイクルの最大遅延ｄmaxを有し、前記整数Ｌ＝ｄmax−１である、請求項６に記載のＣＲＣコード生成回路。
【請求項９】
通信チャネルにより伝送すべき複数バイトのデータに関連するＣＲＣコード・ワードを生成するための回路であって、前記通信チャネルがｗバイトまでの幅のデータを伝送可能であり、前記回路が、
第１の複数の直列結合コード生成ブロックであって、それぞれが前記ブロックへのデータ入力に基づいてＣＲＣ値を生成するためのものであり、前記第１の複数のコード生成ブロックのうちのそれぞれのブロックがＳバイトのバイト幅を有するデータ入力を受信するために構成される、第１の複数の直列結合コード生成ブロックと、
第２の複数の並列結合コード生成ブロックであって、それぞれが前記ブロックへのデータ入力に基づいてＣＲＣ値を生成するためのものであり、前記第２の複数のコード生成ブロックのうちのそれぞれのブロックがｙバイト〜１バイトの範囲に及ぶそれぞれのバイト幅を有するデータ入力を受信するために構成される、第２の複数の並列結合コード生成ブロックと、
前記データ入力に基づいてＣＲＣ計算に含めるために前記第１および第２の複数ブロック内の特定のＣＲＣコード生成ブロックを選択するために制御可能なマルチプレクサ手段と、
を有し、
前記第１の複数の直列結合コード生成ブロック内で特定のＣＲＣコード値を計算するための時間と、前記第２の複数の並列結合コード生成ブロック内で特定のＣＲＣコード値を処理するための時間とを合計すると、単一クロック周期未満またはそれに等しくなる回路。
【請求項１０】
ｙ＝Ｓ−１であり、前記第２の複数ブロックの前記バイト幅が連続的にＳ−１、Ｓ−２、・・・、１バイトの範囲に及ぶ、請求項９に記載のＣＲＣコード生成回路。
【請求項１１】
ｙ＞Ｓである、請求項９に記載のＣＲＣコード生成回路。
【請求項１２】
（ｋ＋１）＊Ｓ＞ｗおよびｋ＋Ｓ＜ｗになるように、前記第１の複数の直列結合コード生成ブロックがｋ個のブロックを含み、各ブロックがＳバイトを処理可能である、請求項９に記載のＣＲＣコード生成回路。
【請求項１３】
通信チャネルにより伝送すべき複数バイトのデータに関連するＣＲＣコード・ワードを生成するための回路であって、前記通信チャネルがｗバイトまでの幅のデータを伝送可能であり、前記回路が、
第１の複数の直列結合コード生成ブロックであって、それぞれが前記ブロックへのデータ入力に基づいてＣＲＣ値を生成するためのものであり、前記第１の複数のコード生成ブロックのうちのそれぞれのブロックがそれぞれＦx、Ｆx-1、・・・、Ｆ1のバイト幅の範囲に及ぶデータ入力を受信するために構成され、ここでＦx＞Ｆx-1＞・・・＞Ｆ1＞０バイトである、第１の複数の直列結合コード生成ブロックと、
第２の複数の並列結合コード生成ブロックであって、それぞれが前記ブロックへのデータ入力に基づいてＣＲＣ値を生成するためのものであり、前記第２の複数のコード生成ブロックのうちのそれぞれのブロックがそれぞれのバイト幅Ｇy-iを有するデータ入力を受信するために構成され、ここでｉ＝０〜ｙ−１の場合にＧy-i＝Ｇy-i−１＋１であり、ここでｙ＞Ｆi−１である、第２の複数の並列結合コード生成ブロックと、
前記データ入力に基づいてＣＲＣ計算に含めるために前記第１および第２の複数ブロック内の特定のＣＲＣコード生成ブロックを選択するために制御可能なマルチプレクサ手段と、
を有し、
ＣＲＣコード生成ブロックを選択的に含めるかまたは迂回することにより、Ａx＊Ｆx＋Ａx-1＊Ｆx−１＋・・・＋Ａ1＊Ｆ1＋Ｂy＊Ｇy＋・・・＋Ｂ1＊Ｇ1という関係により、対応するＣＲＣコード生成のために、任意のデータ入力バイト数を処理することができ、ここでＡx、Ａx-1、・・・、Ａ1、Ｂy、・・・、Ｂ1＝０または１である回路。
【請求項１４】
前記Ｆx＝２N、Ｆx-1＝２N-1、・・・、Ｆ1＝２0およびｙ＝Ｆ1−１＝０である、請求項１３に記載のＣＲＣコード生成回路。
【請求項１５】
前記Ｆx＝２N、Ｆx-1＝２N-1、・・・、Ｆ1＝２N-L、Ｇy＞２N-L−１、・・・、Ｇ1＝１であり、Ｌが前記第１の複数ブロック内でＣＲＣ値を処理するための最大伝搬遅延基準に基づく整数である、請求項１３に記載のＣＲＣコード生成回路。
【請求項１６】
前記Ｆx＝２N＋Ｍ、Ｆx-1＝２N-1＋Ｍ、・・・、Ｆ1＝２N-L＋Ｍ、Ｇy＞２N-L＋Ｍ−１、・・・、Ｇ1＝１である、請求項１３に記載のＣＲＣコード生成回路。
【請求項１７】
前記Ｆx＝Ｆx-1＝・・・＝Ｆ1＝ＳおよびＧy＝ｙ−１、・・・、Ｇ1＝１であり、ここでｙ＞Ｓ−１である、請求項１３に記載のＣＲＣコード生成回路。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般に、通信システム内のパケットベースのＣＲＣ（Cyclic Redundancy Check）の実現に関し、詳細には、通信システム内でＣＲＣ計算を実行し時間最適化するための反復回路に関する。
【背景技術】
【０００２】
多くのパケットベースの通信プロトコルでは、通信チャネルに持ち込まれるエラーの存在をチェックするために、パケット伝送に付加されたコード・ワードを使用する。このようなコード・ワードを生成するために一般に使用される方式の１つはCyclic Redundancy Check（ＣＲＣ）である。送信機はパケットの末尾にＣＲＣコード・ワードを付加し、受信機はコード・ワードを含むパケット全体についてＣＲＣを再計算する。いくつかのＣＲＣ方式が一般に使用されており、その様々な方式は計算のために異なる多項式を使用し、結果のコード・ワード長が異なっている。
【０００３】
直列データ・ストリームにより伝送されるパケットの場合、送信機または受信機内でＣＲＣコード・ワードを計算するために必要な論理回路は周知のものであり、非常に効率の良いものである。ターゲット多項式を実現するために必要な排他ＯＲゲートを備えた線形フィードバック・シフト・レジスタは、十分な実現例である。シフト・レジスタのそれぞれの状態は、現在の直列ビットと、シフト・レジスタの前の状態に基づいて計算される。したがって、直列データ・ストリームの場合、ｎ個のラッチ（この場合、ｎは多項式の次数である）と数個の排他ＯＲゲートが必要な回路の限度である。
【０００４】
しかし、高速直列データ・インターフェース（たとえば、１０Ｇｂｐｓ、４０Ｇｂｐｓ、またはそれ以上のインターフェース）は、シリアル・ボー・レートでのデータ信号を実現するために、より高価な技術（ＳｉＧｅ（シリコン・ゲルマニウム）など）を必要とする場合が多い。このようなインターフェースは、高速インターフェースを実現するために高速アナログ回路を使用し、概して、ＣＭＯＳチップ内で処理するために直列インターフェースにデータを多重化し、そこからより低速の並列データ・パスへデータを逆多重化する。したがって、ＣＲＣ計算回路はより一般的に、並列データ・バスに作用する。データ・バスが「ｗ」バイト幅である場合、ＣＲＣ計算はｗバイトを同時に処理して、ＣＲＣ計算の次の状態を決定しなければならない。さらに、ＣＲＣ計算の次の状態はその計算の前の状態に基づくものなので、その計算はパイプライン化に向いていない。
【０００５】
パケット・データが整数個のｗバイトであることが保証されないか、あるいは並列データ・バス上の境界合わせされた位置で開始／停止することが保証されないか、またはその両方が保証されない場合、追加の複雑さが持ち込まれる。したがって、たとえば、３２バイト幅のデータ・バスの場合、ＣＲＣ計算回路は、可能な結果の計算幅、すなわち、ｗ＝１、２、３、４、・・・、３１、３２バイトのうちのいずれかを処理できなければならない。これは、ＣＲＣ計算のための次の状態デコードをさらに著しく複雑なものにする。この結果の論理回路は、相当な量のチップ面積を必要とする可能性がある。さらに、このチップ面積は主に、大型ファンアウト接続を備えた組み合わせ論理（Combinational logic）によって消費されるので、結果的に配線可能性およびタイミングの問題が発生する可能性がある。
【０００６】
システム要件を満たすために、ＣＲＣ計算論理（Calculationlogic）は典型的には、任意の所与のサイクルで使用すべき各ブロック内にデータを選択するために、データを方向付けながら又は進めながら（steering）、様々な幅の複数のＣＲＣ計算ブロックから構成しなければならない。従来技術の実現例の１つは、ｗバイト幅のデータ・バスを実現することであり、したがって、その機能を実現するために１バイト、２バイト、３バイトなど、ｗバイトまでのサイズの「ｗ」個のＣＲＣ計算ブロックを使用する。この構成では、データはこれらのブロックのすべてに並列に供給される。任意の所与のクロック・サイクルでは、ＣＲＣ計算ブロック出力のうちの１つだけが使用される。すなわち、この並列手法では、各サイクル中に唯一のＣＲＣ計算ブロックが選択され、したがって、組み合わせ伝搬遅延は必ず１つのＣＲＣ計算ブロックの遅延と同等のものになる。
【０００７】
ＣＲＣ計算回路に関する構造化された反復手法を提供し、それにより選択可能なバス幅を備えた複数ブロックにＣＲＣ計算を細分することができ、そのブロックをカスケードして任意のバイト数のバス幅に関する計算を提供することができることは非常に望ましいことであろう。
【０００８】
所与のターゲット伝搬遅延のために回路の面積削減を最大化するＣＲＣ計算回路に関する構造化された反復手法を提供することは非常に望ましいことであろう。
【発明の開示】
【発明が解決しようとする課題】
【０００９】
本発明は、ＣＲＣ計算ブロックのサイズが計算の幅に正比例し、広い計算幅のブロック数を削減することにより狭い計算幅のブロック数を削減するより大きい節約が得られるという認識に基づいて、ＣＲＣ計算を最適化するための手法である。
【００１０】
したがって、本発明の一目的は、ＣＲＣ計算回路に関する構造化された反復手法を提供し、それにより選択可能なバス幅を備えた複数ブロックにＣＲＣ計算を細分することができ、そのブロックをカスケードして任意のバイト数の並列バス幅に関する計算を提供することができることにある。
【００１１】
本発明の他の一目的は、ＣＲＣ計算回路に関する構造化された対数的反復手法を提供し、それにより２バイトの累乗、たとえば、２Nであり、たとえば、Ｎ＝０、１、・・・、Ｘである選択可能なバス幅を備えた複数ブロックにＣＲＣ計算を細分することができ、そのブロックをカスケードして任意のバイト数のバス幅に関する計算を提供することができることにある。
【００１２】
本発明の他の一目的は、ＣＲＣ計算回路に関する構造化された対数的反復手法を提供し、それによりその値が２の累乗ではない選択可能なバス幅を可能にする複数ブロックにＣＲＣ計算を細分することができることにある。
【課題を解決するための手段】
【００１３】
ＣＲＣ計算に関する構造化された手法は反復回路によって実行され、それにより、好ましい一実施形態によれば、ｗバイトまでの幅の範囲に及び、通信チャネルにより伝達すべきデータに関連するＣＲＣコード・ワードを生成するためのシステムであって、
第１の複数の直列結合コード生成ブロック（seriallycoupled code-generation blocks）であって、それぞれが各ブロックへのデータ入力に基づいてＣＲＣ値を生成するためのものであり、第１の複数ブロックのうちのそれぞれのブロックが２N＋Ｍ〜２N-L＋Ｍの範囲に及ぶそれぞれのバイト幅を有するデータ入力を受信するために構成され、ここで２N＋Ｍ＝ｗであり、Ｍがオフセット値であり、Ｌが最大伝搬遅延基準（maximumpropagation delay criteria）に基づく整数である、第１の複数の直列結合コード生成ブロックと、
第２の複数の並列結合コード生成ブロック（parallelcoupled code-generation）であって、それぞれがデータ入力に基づいてＣＲＣ値を生成するためのものであり、第２の複数ブロックのうちのそれぞれのブロックが２N-L−１＋Ｍ〜２0の範囲に及ぶそれぞれのバイト幅を有するデータを受信するために構成される、第２の複数の並列結合コード生成ブロックと、
任意の幅のデータ入力バイトを処理できるように、データ入力に基づいてＣＲＣ計算に含めるために第１および第２の複数ブロック内の特定のＣＲＣコード生成ブロックを選択するための手段と、
を含むシステムが提供される。
【００１４】
本発明の原理によれば、構造化された反復手法におけるＣＲＣ計算プロセス時間は、ＣＲＣ計算ブロックのサイズが計算の幅に正比例し、広い計算幅のブロック数を削減することにより狭い計算幅のブロック数を削減するより大きい節約が得られるという認識に基づいて最適化される。有利なことに、広いデータ・バス幅の場合、構造化された対数的反復手法により、計算を実行するために必要な論理の量が著しく削減される。
【００１５】
本発明の目的、特徴、および利点は、添付図面と組み合わせて取り上げられる以下の詳細な説明を考慮すると、当業者にとって明白なものになるであろう。
【発明を実施するための最良の形態】
【００１６】
本発明は図１に関連してより完全に理解することができるが、同図は本発明の第１の実施形態によるシステム・アーキテクチャ全体を示している。
【００１７】
この第１の実施形態は、ブロック数が計算の所望の幅に応じてカスケードされるＣＲＣ計算ブロックのカスケードを提供する、ＣＲＣ計算回路に関する構造化された対数的反復手法を対象とする。
【００１８】
図１は、本発明の第１の変形例によるＣＲＣ計算回路１００のブロック図である。この第１の変形例によれば、ＣＲＣ計算回路１００は、１バイト、２バイト、４バイト、８バイトなど（すなわち、２バイトの累乗）という対数的に選択されたバス幅を有する複数ブロックに細分される。これらのブロックをカスケードして任意のバイト数のバス幅に関する計算を提供することができる。
【００１９】
図１に示した通り、論理回路１００は複数のＣＲＣ計算ブロック（２２０、３２０、４１０）を含み、そのそれぞれは、シード・マルチプレクサ（seed multiplexor）（１３０、２３０、３３０、４３０）からのシード入力（seedinput）に基づくとともにデータ入力（１２０）に基づいてＣＲＣ値を計算する。ｗバイトの着信データ入力パス幅は２Nに等しくなければならないことは言うまでもない。すなわち、ｗバイトのデータ・バスの場合、Ｎ＝ｌｏｇ2（ｗ）であり、回路は、２N、２N-1、・・・、２1、２0に対応するバイト幅のためにＮ＋１個のＣＲＣ計算ブロックを含む。計算を実行する場合、ＣＲＣ＿ｓｅｅｄ＿ｓｅｌｅｃｔ信号は、それぞれのＣＲＣ計算ブロックがその計算に含まれるかまたは迂回されるかを選択するようにシード・マルチプレクサ（２３０、３３０、４３０）を制御する。これらのブロックを選択的に含めるかまたは迂回することにより、任意のバイト数を処理することができる。たとえば、ｗバイトを処理するためには２Nブロックが選択されて他のすべてのブロックが迂回され、ｗ−１バイトを処理するためには２Nブロックが迂回されてブロック２N-1、・・・、２0が選択され、ｗ−２バイトを処理するためには２Nおよび２0ブロックが迂回されてブロック２N-1、・・・、２1が選択され、以下同様に選択される。各ＣＲＣ計算ブロックは組み合わせＸＯＲツリーであり、その正確な設計は実現されるＣＲＣ多項式に依存することは言うまでもない。
【００２０】
この回路は初めに、複数の０からなる初期シード値がマルチプレクサ１３０によって選択されるように、ＣＲＣ＿ｒｅｓｅｔ信号がアサートされた状態から始まる。次に、選択されたＣＲＣ計算は、シード・マルチプレクサ（２３０、３３０、４３０）によって選択または迂回されたＣＲＣ計算ブロック（２２０、３２０、４２０）によって実行される。マルチプレクサ４３０におけるＣＲＣ計算の出力は、ＣＲＣ結果レジスタ１１０に保管される。ＣＲＣレジスタ値は、データ入力（１２０）に基づいて各サイクルで更新される。データ・ステアリング・マルチプレクサ（２１０、３１０、４１０）は、どのブロックが選択されるかに基づいて、各ＣＲＣ計算ブロックで使用すべきデータを選択する。パケットの最後のサイクルでは、ＣＲＣ出力５１０は、そのパケットの計算ＣＲＣ値をダウンストリーム論理に提供する。
【００２１】
本発明の一実施形態例では、３２バイト幅のデータ入力が提供されている。したがって、このＮ＝５のシステムは、３２バイト、１６バイト、８バイト、４バイト、２バイト、および１バイトという幅の６個のＣＲＣ計算ブロックを有する。名目上、パケット・データはバス幅全体を消費し、３２バイト幅のＣＲＣ計算ブロックが選択される。しかし、パケットは、パケット伝送の開始時および終了時にはバス幅の一部分しか消費しない可能性がある。このようなケースでは、バス上での予想データ境界合わせに基づいて、ＣＲＣ＿ｓｅｌｅｃｔ制御信号およびＤａｔａ＿ｓｅｌｅｃｔ制御信号が生成される。
【００２２】
広いデータ・バス幅の場合、第１の変形例による手法は計算を実行するために必要な論理の量を著しく削減する。（ｗ＝３２バイトの場合、８８％の論理サイズ削減を実現することができる。）ｗバイト幅のデータ・バスの場合、ブロック数は計算の所望の幅に応じてカスケードされ、ｗ−１という計算幅の場合に最悪伝搬遅延（the worst case propagation delay）が発生し、その間にｌｏｇ２（ｗ）個のＣＲＣ計算ブロックがカスケードされる。
【００２３】
この実施形態によれば、ｗバイトより長い着信データ・パケットに関するＣＲＣは、数クロック・サイクルの間に計算される。Ｒは、その計算の所与のクロック・サイクル中に処理しなければならないバイト数を表すものとする。Ｒは任意のクロック・サイクルで任意の値（Ｒ＜ｗ）を取ることができるが、ＣＲＣ計算は、Ｒ＝ｗである間のいくつかのサイクルに加えて、任意の残りのバイトを処理するときのさらに１サイクルを必要とする。
【００２４】
したがって、第１の実施形態用の制御段階はＲバイトのデータ（Ｒ＜ｗ）を処理することができ、その計算回路は、２N、２(N-1)、２(N-2)、・・・、４（＝２2）、２（＝２1）、および１（＝２0）バイトというサイズのＣＲＣ計算ブロックからなる。ｗ＝３２である場合、３２バイト、１６バイト、８バイト、４バイト、２バイト、１バイトのブロックが存在する。制御論理は、ＭＲ＜３２になり、Ｒ＝（Ａn-1）＊２(N-1)＋（Ａn-2）＊２(N-2)＋・・・＋（Ａ0）＊１になるようにＡn-1、Ａn-2、・・・、Ａ0という制御信号をアサートする。制御信号Ａn-1、Ａn-2、・・・、Ａ0＝１または０は以下に指定するようにブロックを選択する。
【００２５】
Ｒ＝３２の場合、３２バイトまたは１６バイト＋１６バイトのＣＲＣを使用する
Ｒ＝３１の場合、１６バイト＋８バイト＋４バイト＋２バイト＋１バイトのＣＲＣを使用する
Ｒ＝３０の場合、１６バイト＋８バイト＋４バイト＋２バイトのＣＲＣを使用する
Ｒ＝２９の場合、１６バイト＋８バイト＋４バイト＋１バイトのＣＲＣを使用する
Ｒ＝２８の場合、１６バイト＋８バイト＋４バイトのＣＲＣを使用する
Ｒ＝２７の場合、１６バイト＋８バイト＋２バイト＋１バイトのＣＲＣを使用する
Ｒ＝２６の場合、１６バイト＋８バイト＋２バイトのＣＲＣを使用する
Ｒ＝２５の場合、１６バイト＋８バイト＋１バイトのＣＲＣを使用する
Ｒ＝２４の場合、１６バイト＋８バイトのＣＲＣを使用する
Ｒ＝２３の場合、１６バイト＋４バイト＋２バイト＋１バイトのＣＲＣを使用する
Ｒ＝２２の場合、１６バイト＋４バイト＋２バイトのＣＲＣを使用する
Ｒ＝２１の場合、１６バイト＋４バイト＋１バイトのＣＲＣを使用する
Ｒ＝２０の場合、１６バイト＋４バイトのＣＲＣを使用する
Ｒ＝１９の場合、１６バイト＋２バイト＋１バイトのＣＲＣを使用する
Ｒ＝１８の場合、１６バイト＋２バイトのＣＲＣを使用する
Ｒ＝１７の場合、１６バイト＋１バイトのＣＲＣを使用する
Ｒ＝１６の場合、１６バイトのＣＲＣを使用する
Ｒ＝１５の場合、８バイト＋４バイト＋２バイト＋１バイトのＣＲＣを使用する
Ｒ＝１４の場合、８バイト＋４バイト＋２バイトのＣＲＣを使用する
Ｒ＝１３の場合、８バイト＋４バイト＋１バイトのＣＲＣを使用する
Ｒ＝１２の場合、８バイト＋４バイトのＣＲＣを使用する
Ｒ＝１１の場合、８バイト＋２バイト＋１バイトのＣＲＣを使用する
Ｒ＝１０の場合、８バイト＋２バイトのＣＲＣを使用する
Ｒ＝９の場合、８バイト＋１バイトのＣＲＣを使用する
Ｒ＝８の場合、８バイトのＣＲＣを使用する
Ｒ＝７の場合、４バイト＋２バイト＋１バイトのＣＲＣを使用する
Ｒ＝６の場合、４バイト＋２バイトのＣＲＣを使用する
Ｒ＝５の場合、４バイト＋１バイトのＣＲＣを使用する
Ｒ＝４の場合、４バイトのＣＲＣを使用する
Ｒ＝３の場合、２バイト＋１バイトのＣＲＣを使用する
Ｒ＝２の場合、２バイトのＣＲＣを使用する
Ｒ＝１の場合、１バイトのＣＲＣを使用する
【００２６】
３２バイト、・・・、１バイトという各ＣＲＣモジュールごとに、対応するバイト長のデータがそれに送信されることになる。たとえば、Ｒ＝１０の場合、８バイト＋２バイトのモジュールが使用され、８バイトのＣＲＣ計算ブロックに対して最初の８バイトのデータを選択し、最後の２バイトのデータが２バイトのＣＲＣ計算ブロックに送信されるように制御信号「Ｄａｔａ＿ｓｅｌｅｃｔ」（図１に示す）がアサートされる。
【００２７】
本発明の第２の変形例は、従来技術の手法と、第１の変形例、すなわち、対数的反復手法との最適化を提供する。この実施形態によれば、所与のターゲット伝搬遅延について面積削減が最大化される。これは、ＣＲＣ計算ブロックのサイズが計算の幅に正比例することに留意することによって実施される。したがって、広い計算幅のＣＲＣ計算ブロック数を削減することにより狭い計算幅のブロック数を削減するより大きい節約が得られる。同時に、対数的反復手法のカスケード・ブロック内の伝搬遅延は主に狭い幅のＣＲＣ計算ブロックによる。したがって、より広い計算幅に対数的反復手法を使用し、より小さい計算幅に並列手法を使用することにより、その回路に関するタイミング対面積の最適化が可能になる。
【００２８】
ｗ＝データ・バスのバイト幅であるシステムを想定する。Ｎ＝ｌｏｇ2（ｗ）およびｄmax＝許可される最大遅延（ＣＲＣ計算ブロック遅延単位）である場合、Ｌ＝ｄmax−１になる。
【００２９】
第２の変形例によるＣＲＣ計算システムは、２N-L以上のＣＲＣ計算ブロック幅に対数的反復手法を使用し、２N-L未満のＣＲＣ計算ブロック幅に並列手法を使用して構築される。その結果得られるシステムは、２N、２N-1、・・・、２N-L＋１、２N-L、２N-L−１、２N-L−２、・・・、２1、２0というバイト幅用のＣＲＣ計算ブロックを含む。その結果得られるシステムは、システムの対数的反復部分のＬ＋１個のＣＲＣ計算ブロックと、回路の並列部分の２N-L−１個のＣＲＣ計算ブロックとを含む。このようなシステムによる最悪遅延は、２N-1〜２N-1＋１（両端を含む）という範囲内の計算バイト幅の場合に発生する。この範囲では、Ｌ個のカスケード反復ＣＲＣ計算ブロックに加えて、さらに１つの並列ＣＲＣ計算ブロックが存在し、それにより伝搬が発生するに違いない。
【００３０】
開示した本発明の第２の変形例では、ＣＲＣ計算のターゲット・バイト幅（ｗ）が２の累乗であると想定している。
【００３１】
図２は、開示した本発明の第２の変形例によるＣＲＣ計算回路２００のブロック図である。図２に示した通り、論理回路２００は複数のＣＲＣ計算ブロック（２２０、３２０、４２０、５２０、５２１）を含み、そのそれぞれは、シード・マルチプレクサ（１３０、２３０、３３０、４３０）からのシード入力に基づくとともにデータ入力（１２０）に基づいてＣＲＣ値を計算する。ｗバイトのデータ・バスと最大遅延ｄmaxとを備えたシステムの場合、Ｎ＝ｌｏｇ2（ｗ）であり、Ｌ＝ｄmax−１である。システムの対数的反復部分は、２N、２N-1、・・・、２N-Lに対応するバイト幅のためにＬ＋１個のＣＲＣ計算ブロック（２２０、３２０、４２０）を含む。システムの並列部分は、２N-L−１、・・・、２0に対応するバイト幅のために２N-L個のＣＲＣ計算ブロック（５２０、５２１）を含む。計算を実行する場合、ＣＲＣ＿ｓｅｅｄ＿ｓｅｌｅｃｔ信号は、各反復ＣＲＣ計算ブロックがその計算に含まれるかまたは迂回されるかを選択するようにシード・マルチプレクサ（２３０、３３０、４３０）を制御する。これらのブロックを選択的に含めるかまたは迂回することにより、２N-Lで割り切れる任意のバイト数を処理することができる。加えて、マルチプレクサ５３０は、並列ＣＲＣ計算ブロック（５２０、５２１）がある場合にそのどちらを選択して出力を提供するかを選択する。これは、処理能力を任意のバイト数に拡張するものである。
【００３２】
たとえば、ｗバイトを処理するためには２Nブロックが選択されて他のすべての反復ブロックが迂回され、マルチプレクサ５３０が迂回入力を選択し、ｗ−１バイトを処理するためには２Nブロックが迂回されて他のすべての反復ブロック（すなわち、ブロック２N-1、・・・、２N-L＋１、２N-L）が選択され、マルチプレクサ５３０が２N-L−１ブロックからの入力を選択し、以下同様に選択される。各ＣＲＣ計算ブロックは組み合わせＸＯＲツリーであり、その正確な設計は実現されるＣＲＣ多項式に依存する。
【００３３】
この回路は初めに、複数の０からなる初期シード値がマルチプレクサ１３０によって選択されるように、ＣＲＣ＿ｒｅｓｅｔ信号がアサートされた状態から始まる。次に、選択されたＣＲＣ計算は、シード・マルチプレクサ（２３０、３３０、４３０）によって選択または迂回された反復ＣＲＣ計算ブロック（２２０、３２０、４２０）と、出力マルチプレクサ５３０によって選択または迂回された並列ＣＲＣ計算ブロック（５２０、５２１）によって実行される。マルチプレクサ５３０におけるＣＲＣ計算の出力は、ＣＲＣ結果レジスタ１１０に保管される。ＣＲＣレジスタ値は、データ入力（１２０）に基づいて各サイクルで更新される。データ・ステアリング・マルチプレクサ（２１０、３１０、４１０）は、どのブロックが選択されるかに基づいて、各反復ＣＲＣ計算ブロックで使用すべきデータを選択する。データ・ステアリング・マルチプレクサ５１０は、選択された並列ＣＲＣ計算ブロックで使用すべきデータを選択する。パケットの最後のサイクルでは、ＣＲＣ出力６１０は、そのパケットの計算ＣＲＣ値をダウンストリーム論理に提供する。
【００３４】
本発明の第２の変形例を実現する一実施形態例では、３２バイト幅のデータ・バス入力の場合にｄmax＝３である。この結果、Ｎ＝５、Ｌ＝２のシステムは、３２バイト、１６バイト、および８バイトという幅の３個の反復ＣＲＣ計算ブロックと、７バイト〜１バイトの幅の７個の並列ＣＲＣ計算ブロックとを有することになる。名目上、パケット・データはバス幅全体を消費し、３２バイト幅のＣＲＣ計算ブロックが選択される。しかし、パケットは、パケット伝送の開始時および終了時にはバス幅の一部分しか消費しない可能性がある。このようなケースでは、バス上での予想データ境界合わせに基づいて、ＣＲＣ＿ｓｅｌｅｃｔ制御信号およびＤａｔａ＿ｓｅｌｅｃｔ制御信号が生成される。
【００３５】
図２の第２の変形例によるタイミング最適化バージョンでは、より良好なタイミングを達成するために、図１のものよりクリティカル・パス内の段階が少ない。前の実施形態の場合と同様に、ｗバイトより大きい長さのデータ・パケットに関するＣＲＣ計算は、複数クロック・サイクルの間に実行される。Ｒは、その計算の所与のクロック・サイクル中に処理しなければならないバイト数を表すものとする。
【００３６】
したがって、第２の実施形態用の制御段階はＲバイトのデータ（Ｒ＜ｗ）を処理することができ、その計算回路は、２N、２(N-1)、２(N-2)、・・・、２(N-L)、２(N-L)−１、２(N-L)−２、・・・、および１バイトというサイズのＣＲＣ計算ブロックからなる。ｗ＝３２、Ｎ＝５、およびＬ＝２である場合、３２バイト、１６バイト、８バイト、７バイト、６バイト、５バイト、４バイト、３バイト、２バイト、および１バイトのＣＲＣ段階が存在する。制御論理は、Ｒ＜３２になり、Ｒ＝（Ａn-1）＊２(N-1)＋（Ａn-2）＊２(N-2)＋・・・＋（Ａ0）＊２(N-L)＋（ＢK-1）＊（２(N-L)−１）＋・・・＋（Ｂ0）＊１になるようにＡn-1、Ａn-2、・・・、Ａn-L、ＢK-1、・・・、Ｂ0という制御信号をアサートしてＲバイトの処理を選択し、ここでＫ＝２N-Lである。制御信号Ａn-1、Ａn-2、・・・、Ａn-L、ＢK-1、・・・、Ｂ0＝１または０は以下に指定するようにブロックを選択する。
【００３７】
Ｒ＝３２の場合、３２バイトまたは１６バイト＋１６バイトのＣＲＣを使用する
Ｒ＝３１の場合、１６バイト＋８バイト＋７バイトのＣＲＣを使用する
Ｒ＝３０の場合、１６バイト＋８バイト＋６バイトのＣＲＣを使用する
Ｒ＝２９の場合、１６バイト＋８バイト＋５バイトのＣＲＣを使用する
Ｒ＝２８の場合、１６バイト＋８バイト＋４バイトのＣＲＣを使用する
Ｒ＝２７の場合、１６バイト＋８バイト＋３バイトのＣＲＣを使用する
Ｒ＝２６の場合、１６バイト＋８バイト＋２バイトのＣＲＣを使用する
Ｒ＝２５の場合、１６バイト＋８バイト＋１バイトのＣＲＣを使用する
Ｒ＝２４の場合、１６バイト＋８バイトのＣＲＣを使用する
Ｒ＝２３の場合、１６バイト＋７バイトのＣＲＣを使用する
Ｒ＝２２の場合、１６バイト＋６バイトのＣＲＣを使用する
Ｒ＝２１の場合、１６バイト＋５バイトのＣＲＣを使用する
Ｒ＝２０の場合、１６バイト＋４バイトのＣＲＣを使用する
Ｒ＝１９の場合、１６バイト＋３バイトのＣＲＣを使用する
Ｒ＝１８の場合、１６バイト＋２バイトのＣＲＣを使用する
Ｒ＝１７の場合、１６バイト＋１バイトのＣＲＣを使用する
Ｒ＝１６の場合、１６バイトのＣＲＣを使用する
Ｒ＝１５の場合、８バイト＋７バイトのＣＲＣを使用する
Ｒ＝１４の場合、８バイト＋６バイトのＣＲＣを使用する
Ｒ＝１３の場合、８バイト＋５バイトのＣＲＣを使用する
Ｒ＝１２の場合、８バイト＋４バイトのＣＲＣを使用する
Ｒ＝１１の場合、８バイト＋３バイトのＣＲＣを使用する
Ｒ＝１０の場合、８バイト＋２バイトのＣＲＣを使用する
Ｒ＝９の場合、８バイト＋１バイトのＣＲＣを使用する
Ｒ＝８の場合、８バイトのＣＲＣを使用する
Ｒ＝７の場合、７バイトのＣＲＣを使用する
Ｒ＝６の場合、６バイトのＣＲＣを使用する
Ｒ＝５の場合、５バイトのＣＲＣを使用する
Ｒ＝４の場合、４バイトのＣＲＣを使用する
Ｒ＝３の場合、３バイトのＣＲＣを使用する
Ｒ＝２の場合、２バイトのＣＲＣを使用する
Ｒ＝１の場合、１バイトのＣＲＣを使用する
【００３８】
ＣＲＣ計算を実行し時間最適化するための回路の第３の実施形態は、より汎用的で、２の累乗ではない「ｗ」の値を可能にする、構造化された対数的反復手法を対象とする。
【００３９】
図３は、本発明の第３の変形例によるＣＲＣ計算回路３００のブロック図である。この第３の変形例によれば、システムの対数的反復部分は、そのバイト幅が２N＋Ｍ、２N-1＋Ｍ、・・・、２N-L＋Ｍとしてより汎用的に割り当てられているＬ＋１個のＣＲＣ計算ブロック（２２０、３２０、４２０）を含み、ここでＭは任意の定数を有する正のオフセット値（すなわち、０より大きいかまたは０に等しい）である。第３の変形例によるこのより汎用的な表現により、システムのターゲット・バイト幅（ｗ）は２の累乗以外の値になりうる。これに対応して、システムの並列部分は、２N-L−１＋Ｍ、・・・、２0に対応するバイト幅のために２N-L＋Ｍ個のＣＲＣ計算ブロック（５２０、５２１）を含む。本発明の前述の変形例の場合と同様に、計算を実行する場合、ＣＲＣ＿ｓｅｅｄ＿ｓｅｌｅｃｔ信号は、各反復ＣＲＣ計算ブロックがその計算に含まれるかまたは迂回されるかを選択するようにシード・マルチプレクサ（２３０、３３０、４３０）を制御する。これらのブロックを選択的に含めるかまたは迂回することにより、２N-Lで割り切れる任意のバイト数を処理することができる。加えて、マルチプレクサ５３０は、並列ＣＲＣ計算ブロック（５２０、５２１）がある場合にそのどちらを選択して出力を提供するかを選択する。
【００４０】
図４は、本発明の第４の実施形態によるＣＲＣ計算回路４００のブロック図であり、各ＣＲＣ計算ブロック（２２０、３２０、４２０など）はＳバイトを処理することができ、ここでＳは任意の正整数である。（ｋ＋１）＊Ｓ＞ｗおよびｋ＊Ｓ＜ｗになるように、回路の反復部分は「ｋ」個のブロックを含み、それぞれがＳバイトを処理可能である。システムの並列部分は、Ｓ−１、Ｓ−２、・・・、１に対応するバイト幅のためにＢ−１個の計算ブロックを含む。計算を実行する場合、ＣＲＣ＿ｓｅｅｄ＿ｓｅｌｅｃｔ信号は、処理すべきＳバイトの倍数を選択するようにシード・マルチプレクサ（１３０、２３０、３３０、４３０）を制御する。加えて、マルチプレクサ５３０は、並列ＣＲＣ計算ブロック（５２０、５２１）がある場合にそのどちらを選択して出力を提供するかを選択する。これは、処理能力を任意のバイト数に拡張するものである。
【００４１】
第４の実施形態は、依然として第１の実施形態を使用する実現例以上にタイミングを最適化しながら、第２または第３の実施形態を使用する実現例以上に論理を削減する。ｄは、その回路の遅延（ＣＲＣ計算ブロック単位）を表すものとする。この回路によるｄの最悪値は、ｄ＝ｋ＋１になるように、最初のｋ＊Ｓバイトについて計算を実行するためにｋ個のブロックが選択され、残りのバイトについて計算を実行するために１つの並列ブロックが選択されたときに、ｋ＊Ｓ〜ｗバイトの範囲内のｘバイトの計算の場合に発生する。ｗ＝３３バイト、Ｌ＝２、Ｍ＝１、ｋ＝４の場合、第３の実施形態を使用する実現例は最悪遅延ｄ＝２ブロックを有することになるが、この実施形態は最悪遅延ｄ＝５ブロックを有する。しかし、より大きい幅のＣＲＣ計算ブロックの数が第２の実施形態以上に削減されるので、この実施形態は論理を削減するものである。この実施形態によれば、概して、並列構成のＣＲＣ計算ブロックの数はＳ−１に等しくなると言えるが、より積極的なタイミング方式の場合、並列構成のＣＲＣ計算ブロックの数はＳを超える可能性がある。
【００４２】
したがって、第４の実施形態用の制御段階はＲバイトのデータ（Ｒ＜ｗ）を処理することができ、その計算回路は、Ｓバイトのｋ個のブロックと、Ｓ−１、Ｓ−２、・・・１バイトのＳ−１個の並列ブロックからなる。たとえば、図４に示した本発明の第４の変形例によれば、ｗ＝３４およびＳ＝５である場合、制御論理は、Ｒ＜３４になり、Ｒ＝（Ａk-1）＊Ｓ＋（Ａk-2）＊Ｓ＋・・・＋（Ａ0）＊Ｓ＋（ＢS-1）＊（Ｓ−１）＋・・・＋（Ｂ0）＊１になるようにＡk-1、Ａk-2、・・・、Ａ0、ＢS-1、・・・、Ｂ0という制御信号をアサートしてＲバイトの処理を選択する。制御信号Ａk-1、Ａk-2、・・・、Ａ0、ＢS-1、・・・、Ｂ0＝１または０は以下に指定する通りである（ここで、Ｘは所与のクロック・サイクル中に選択されたＳバイトのブロック数を表し、その選択は他の場合には任意である）。
【００４３】
３４バイトＣＲＣ＝Ｓバイト＊６＋４バイト、ここでＸ＝６（パス全体）
３３バイトＣＲＣ＝Ｓバイト＊６＋３バイト、ここでＸ＝６
３２バイトＣＲＣ＝Ｓバイト＊６＋２バイト、ここでＸ＝６
３１バイトＣＲＣ＝Ｓバイト＊６＋１バイト、ここでＸ＝６
３０バイトＣＲＣ＝Ｓバイト＊６、ここでＸ＝６
２９バイトＣＲＣ＝Ｓバイト＊５＋４バイト、ここでＸ＝５
２５バイトＣＲＣ＝Ｓバイト＊５、ここでＸ＝５
２４バイトＣＲＣ＝Ｓバイト＊４＋４バイト、ここでＸ＝４
２３バイトＣＲＣ＝Ｓバイト＊４＋３バイト、ここでＸ＝４
２２バイトＣＲＣ＝Ｓバイト＊４＋２バイト、ここでＸ＝４
２１バイトＣＲＣ＝Ｓバイト＊４＋１バイト、ここでＸ＝４
２０バイトＣＲＣ＝Ｓバイト＊４、ここでＸ＝４
１９バイトＣＲＣ＝Ｓバイト＊３＋４バイト、ここでＸ＝３
１８バイトＣＲＣ＝Ｓバイト＊３＋３バイト、ここでＸ＝３
１７バイトＣＲＣ＝Ｓバイト＊３＋２バイト、ここでＸ＝３
１６バイトＣＲＣ＝Ｓバイト＊３＋１バイト、ここでＸ＝３
１５バイトＣＲＣ＝Ｓバイト＊３、ここでＸ＝３
１４バイトＣＲＣ＝Ｓバイト＊２＋４バイト、ここでＸ＝２
１３バイトＣＲＣ＝Ｓバイト＊２＋３バイト、ここでＸ＝２
１２バイトＣＲＣ＝Ｓバイト＊２＋２バイト、ここでＸ＝２
１１バイトＣＲＣ＝Ｓバイト＊２＋１バイト、ここでＸ＝２
１０バイトＣＲＣ＝Ｓバイト＊２、ここでＸ＝２
９バイトＣＲＣ＝Ｓバイト＋４バイト、ここでＸ＝１
８バイトＣＲＣ＝Ｓバイト＋３バイト、ここでＸ＝１
７バイトＣＲＣ＝Ｓバイト＋２バイト、ここでＸ＝１
６バイトＣＲＣ＝Ｓバイト＋１バイト、ここでＸ＝１
５バイトＣＲＣ＝Ｓバイト、ここでＸ＝１
４バイトＣＲＣ＝４バイト、ここでＸ＝０
３バイトＣＲＣ＝３バイト、ここでＸ＝０
２バイトＣＲＣ＝２バイト、ここでＸ＝０
１バイトＣＲＣ＝１バイト、ここでＸ＝０
【００４４】
図５は、図１〜４に関して説明した本発明の４通りの変形例のすべてを包含するＣＲＣ計算回路４５０の汎用形式を提供するものであり、直列カスケード・ブロック（２２０、３２０、４２０など）の反復部分についてはＣＲＣ計算ブロック・バイト幅はサイズがＦx、Ｆx-1、・・・、Ｆ1の範囲であり、ここでＦx＞Ｆx-1＞・・・＞Ｆ1＞０バイトであり、並列ブロック（５２０、５２１など）についてはＣＲＣ計算ブロック・バイト幅はサイズがＧy-iであり、ここでｉ＝０〜ｙ−１である場合にＧy-i＝Ｇy-i-1＋１であり、ｙ＞Ｆ1−１である。この汎用形式によれば、ＣＲＣ計算に含まれるバイト数は、Ｒ＝Ａx＊Ｆx＋Ａx-1＊Ｆx−１＋・・・＋Ａ1＊Ｆ1＋Ｂy＊Ｇy＋・・・Ｂ1＊Ｇ1という関係により表すことができ、ここでｘはＦxブロックの数であり、ｙはＧyブロックの数であり、４通りの実施形態の１つにより説明した通り、Ａx、Ａx-1、・・・、Ａ1、Ｂy、・・・、Ｂ1＝０または１である。
【００４５】
図５は、本発明のすべての変形例の汎用形式を示している。第１の実施形態の場合、回路の並列部分にＣＲＣ計算ブロックがまったく存在しないように、Ｆx＝２N、Ｆx-1＝２N-1、・・・、Ｆ1＝２0およびｙ＝Ｆ1−１＝０である。第２の実施形態の場合、Ｆx＝２N、Ｆx-1＝２N-1、・・・、Ｆ1＝２N-L、Ｇy＝２N-L−１、・・・、Ｇ1＝１である。第３の実施形態の場合、Ｆx＝２N＋Ｍ、Ｆx-1＝２N-1＋Ｍ、・・・、Ｆ1＝２N-L＋Ｍ、Ｇy＝２N-L＋Ｍ−１、・・・、Ｇ1＝１である。第４の実施形態の場合、Ｆx＝Ｆx-1＝・・・＝Ｆ1＝ＳおよびＧy＝ｙ−１、・・・、Ｇ1＝１であり、ここでｙ＞Ｓ−１である。
【００４６】
その例示的かつ好ましい諸実施形態に関して本発明を特に図示し説明してきたが、当業者であれば、特許請求の範囲の範囲によってのみ制限されなければならない本発明の精神および範囲から逸脱せずに、形式および詳細の点で上記その他の変更が可能であることを理解するであろう。
【図面の簡単な説明】
【００４７】
【図１】本発明の一実施形態により形成され、本発明が機能しうるシステム・アーキテクチャ全体のブロック図である。
【図２】本発明の第２の実施形態により形成され、本発明が機能しうるシステム・アーキテクチャ全体のブロック図である。
【図３】本発明の第３の実施形態により形成され、本発明が機能しうるシステム・アーキテクチャ全体のブロック図である。
【図４】本発明の第４の実施形態により形成され、本発明が機能しうるシステム・アーキテクチャ全体のブロック図である。
【図５】本発明の汎用一実施形態により形成され、本発明が機能しうるシステム・アーキテクチャ全体のブロック図である。
【図１】
2006521730.tif 000003
【図２】
2006521730.tif 000004
【図３】
2006521730.tif 000005
【図４】
2006521730.tif 000006
【図５】
2006521730.tif 000007
【国際調査報告】
2006521730.tif 000008
2006521730.tif 000009
2006521730.tif 000010