JPH0831800B2 - Crc計算装置およびcrcチェックビット出力方法 - Google Patents
Crc計算装置およびcrcチェックビット出力方法Info
- Publication number
- JPH0831800B2 JPH0831800B2 JP61286554A JP28655486A JPH0831800B2 JP H0831800 B2 JPH0831800 B2 JP H0831800B2 JP 61286554 A JP61286554 A JP 61286554A JP 28655486 A JP28655486 A JP 28655486A JP H0831800 B2 JPH0831800 B2 JP H0831800B2
- Authority
- JP
- Japan
- Prior art keywords
- data
- crc
- input
- bit
- row
- 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
Links
Classifications
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
- H03M13/09—Error detection only, e.g. using cyclic redundancy check [CRC] codes or single parity bit
- H03M13/091—Parallel or block-wise CRC computation
Landscapes
- Engineering & Computer Science (AREA)
- Computing Systems (AREA)
- Physics & Mathematics (AREA)
- Probability & Statistics with Applications (AREA)
- Theoretical Computer Science (AREA)
- Error Detection And Correction (AREA)
- Detection And Correction Of Errors (AREA)
- Stacking Of Articles And Auxiliary Devices (AREA)
- Preparing Plates And Mask In Photomechanical Process (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Measurement Of Radiation (AREA)
Description
【発明の詳細な説明】 [産業上の利用分野] この発明は通信リンクにわたって直列データの伝送の
エラーを検出するための周期冗長コード計算回路の分野
に関するものである。特に、この発明はチップの面積を
浪費しないための集積回路のCRC計算装置のある改良に
関するものである。
エラーを検出するための周期冗長コード計算回路の分野
に関するものである。特に、この発明はチップの面積を
浪費しないための集積回路のCRC計算装置のある改良に
関するものである。
[従来の技術] コードおよびチェックビットを用いるエラー検出およ
び修正は回路網上の装置またはディスクあるいは主要メ
モリのようなコンピュータシステム内の装置と中央処理
装置の間のデータ伝送の信頼性を改良するために長い間
用いられてきた。最も一般的な機構はパリティチェック
である。この機構では、パリティチェックビットは情報
ビットに加えられ、バイトの中の論理「1」であるビッ
トの合計数を既知の数に等しくさせる。しかしながらこ
の機構は情報ビットの数が高くなると、必要とされるチ
ェックビットで冗長のレベルが過度に高くなるといった
周知の欠点を有する。
び修正は回路網上の装置またはディスクあるいは主要メ
モリのようなコンピュータシステム内の装置と中央処理
装置の間のデータ伝送の信頼性を改良するために長い間
用いられてきた。最も一般的な機構はパリティチェック
である。この機構では、パリティチェックビットは情報
ビットに加えられ、バイトの中の論理「1」であるビッ
トの合計数を既知の数に等しくさせる。しかしながらこ
の機構は情報ビットの数が高くなると、必要とされるチ
ェックビットで冗長のレベルが過度に高くなるといった
周知の欠点を有する。
別のチェック機構には、多項式または周期的コーディ
ングと呼ばれるものが存在する。この機構はより高い効
率で、すなわちパリティチェック機構より少ない冗長で
行なわれるように設計され得る。これらの機構の高い効
率は設計者がそれらをより頻繁に用いることを引き起こ
す。
ングと呼ばれるものが存在する。この機構はより高い効
率で、すなわちパリティチェック機構より少ない冗長で
行なわれるように設計され得る。これらの機構の高い効
率は設計者がそれらをより頻繁に用いることを引き起こ
す。
周期コーディング機構の一般の概念は、いくつかの精
神的な助けを用いると最も簡単に理解される。Kビット
からなる直列フォーマット内のデータのビットの流れを
思いつく便利な方法は、それをK項を持ったダミー変数
Xの多項式として思いつくことである。メッセージのビ
ットは多項式の係数である。こうして、もし1001000110
11がビットの流れのメッセージならば、多項式は以下の
ように書かれる: (1) N(x)=1.x11+0.x10+0.x9+1.x8+0.x7+
0.x6+0.x5+1.x4+1.x3+0.x2+1.x1+1.x または N(x)=x11+x8+x4+x3+x+1 メッセージで周期コードチェックビット(これより後
CRCビット)を計算するために、生成多項式(generatin
g polynamial)と呼ばれる別の多項式P(x)が選択さ
れる。この多項式の次数、すなわちその最も高い指数値
は0より大きいが、M(x)の次数よりは少ない。生成
多項式(generator polynomial)はx0項に0でない係
数を有する。所与の長さのメッセージでは、1つより多
い生成多項式が特定され得る。いくつかの一般に受け入
れられた標準の生成多項式が存在する。標準の32ビット
生成多項式は自動ディジタルネットワーク(Autodin)I
Iおよびエサーネット(Ethernettm)基準で規定され
る。この生成多項式は1984年6月1日の最新のFDDI媒体
アクセス制御(Media Access Control)X3T9.5/83-16の
ためのアメリカ国家規格(American National Standar
d)に提案された草案に見られる。この標準の生成多項
式は (2) P(x)=x32+x26+x23+x22+x16+x
12+x11+x10+x8+x7+x5+x4+x2+x+1で
ある。
神的な助けを用いると最も簡単に理解される。Kビット
からなる直列フォーマット内のデータのビットの流れを
思いつく便利な方法は、それをK項を持ったダミー変数
Xの多項式として思いつくことである。メッセージのビ
ットは多項式の係数である。こうして、もし1001000110
11がビットの流れのメッセージならば、多項式は以下の
ように書かれる: (1) N(x)=1.x11+0.x10+0.x9+1.x8+0.x7+
0.x6+0.x5+1.x4+1.x3+0.x2+1.x1+1.x または N(x)=x11+x8+x4+x3+x+1 メッセージで周期コードチェックビット(これより後
CRCビット)を計算するために、生成多項式(generatin
g polynamial)と呼ばれる別の多項式P(x)が選択さ
れる。この多項式の次数、すなわちその最も高い指数値
は0より大きいが、M(x)の次数よりは少ない。生成
多項式(generator polynomial)はx0項に0でない係
数を有する。所与の長さのメッセージでは、1つより多
い生成多項式が特定され得る。いくつかの一般に受け入
れられた標準の生成多項式が存在する。標準の32ビット
生成多項式は自動ディジタルネットワーク(Autodin)I
Iおよびエサーネット(Ethernettm)基準で規定され
る。この生成多項式は1984年6月1日の最新のFDDI媒体
アクセス制御(Media Access Control)X3T9.5/83-16の
ためのアメリカ国家規格(American National Standar
d)に提案された草案に見られる。この標準の生成多項
式は (2) P(x)=x32+x26+x23+x22+x16+x
12+x11+x10+x8+x7+x5+x4+x2+x+1で
ある。
周期チェックすなわちCRCビット計算はメッセージ多
項式を生成多項式で除算し、商の多項式と剰余の多項式
を発生することを含む。商の多項式は捨てられ、そして
剰余の多項式の係数がCRCチェックビットとしてメッセ
ージ多項式に付加される。
項式を生成多項式で除算し、商の多項式と剰余の多項式
を発生することを含む。商の多項式は捨てられ、そして
剰余の多項式の係数がCRCチェックビットとしてメッセ
ージ多項式に付加される。
組合わせたメッセージおよびチェックビットはそれか
ら通信リンク上に伝達され、そして伝達の間にエラーが
発生したかどうかに依存して修正されたりまたは修正さ
れないでレシーバに到着する。一般に、受取り装置はチ
ェックビットを含む受取られた全メッセージをリンクの
送信機端部でチェックビットを発生するために用いられ
たのと同じ生成器多項式で除算する。この除算の結果
は、もし伝達の間にエラーが起こらないならば剰余が0
の多項式である。剰余が0でない場合はエラーの存在を
示す。
ら通信リンク上に伝達され、そして伝達の間にエラーが
発生したかどうかに依存して修正されたりまたは修正さ
れないでレシーバに到着する。一般に、受取り装置はチ
ェックビットを含む受取られた全メッセージをリンクの
送信機端部でチェックビットを発生するために用いられ
たのと同じ生成器多項式で除算する。この除算の結果
は、もし伝達の間にエラーが起こらないならば剰余が0
の多項式である。剰余が0でない場合はエラーの存在を
示す。
上で説明された計算を直列フォーマット入力データで
行なうために用いられる装置の型は第1図に示される。
第1図はCRCチェックビット計算器のブロック図であ
る。CRC検査合計レジスタ30はCRCチェックビットをスト
アする複数個のメモリセルからなる。これらのメモリセ
ルの出力はシフトリンクのアレイ32の入力に結合され、
これらのいくつかは第2図に最良に見られる排他的ORゲ
ートである。
行なうために用いられる装置の型は第1図に示される。
第1図はCRCチェックビット計算器のブロック図であ
る。CRC検査合計レジスタ30はCRCチェックビットをスト
アする複数個のメモリセルからなる。これらのメモリセ
ルの出力はシフトリンクのアレイ32の入力に結合され、
これらのいくつかは第2図に最良に見られる排他的ORゲ
ートである。
第2図は第1図のブロック図の詳細な回路図である。
検査合計レジスタ30からの最上位出力ビットはメッセー
ジ多項式の入ってくる直列データの流れとともに入力ゲ
ート34によって排他的にOR処理され、そしてこの機能を
行なう排他的ORゲート34の出力はアレイの他のすべての
排他的ORゲートの入力に結合される。排他的ORゲートで
ないアレイシフトリンクは簡単な導体であって、これは
単に入来データを最上位ビット位置の左にすなわちそれ
に向かって1ビット位置シフトするだけである。アレイ
のシフトリンクの出力はバス36によって検査合計レジス
タ30のデータ入力に戻って結合される。アレイ32の排他
的ORゲートおよび直貫通導体はそれらの出力が、検査合
計レジスタからの各シフトリンクで入力ビット位置のビ
ット位置に関連して次の最上位ビット位置の検査合計レ
ジスタの入力に結合される。ライン38のビットクロック
信号はメッセージ多項式の生直列フォーマット入力を入
力ゲート34へとクロック動作させ、そして検査合計レジ
スタがデータをバス36からそのメモリセルにロードする
ことを引き起こす。メッセージの生入力データビットの
すべてがクロック動作された後、検査合計レジスタ30の
内容物はメッセージビットがそのように処理されたCRC
チェックビットである。
検査合計レジスタ30からの最上位出力ビットはメッセー
ジ多項式の入ってくる直列データの流れとともに入力ゲ
ート34によって排他的にOR処理され、そしてこの機能を
行なう排他的ORゲート34の出力はアレイの他のすべての
排他的ORゲートの入力に結合される。排他的ORゲートで
ないアレイシフトリンクは簡単な導体であって、これは
単に入来データを最上位ビット位置の左にすなわちそれ
に向かって1ビット位置シフトするだけである。アレイ
のシフトリンクの出力はバス36によって検査合計レジス
タ30のデータ入力に戻って結合される。アレイ32の排他
的ORゲートおよび直貫通導体はそれらの出力が、検査合
計レジスタからの各シフトリンクで入力ビット位置のビ
ット位置に関連して次の最上位ビット位置の検査合計レ
ジスタの入力に結合される。ライン38のビットクロック
信号はメッセージ多項式の生直列フォーマット入力を入
力ゲート34へとクロック動作させ、そして検査合計レジ
スタがデータをバス36からそのメモリセルにロードする
ことを引き起こす。メッセージの生入力データビットの
すべてがクロック動作された後、検査合計レジスタ30の
内容物はメッセージビットがそのように処理されたCRC
チェックビットである。
第3図はチェックビットの計算後伝送される合成のデ
ータパケットのフォーマットを例示する。セグメント40
はそれでCRCビットが計算されたメッセージ多項式であ
る。これらのメッセージ多項式ビットは、ビットがゲー
ト34の入力である度にそれが同時に伝送されるという点
で、CRCビットの計算と同時に伝送される。セグメント4
2はセグメント40のすべてのビットが処理された後に検
査合計レジスタ30にストアされるCRCビットの補数であ
る。セグメント42は補数のCRCビットからなり、そのた
めCRCビットが組合わされたセグメント40および42の受
取り端部で計算されるとき、剰余は0となるであろう。
いくつかのプロトコールでは、検査合計レジスタはCRC
計算が始まる前にすべて論理「1」にプリセットされ
る。そのような場合、CRCチェックビットがセグメント4
0および42からなる組合わされたパケットで計算される
とき、剰余はすべて0ではないが、標準の剰余の多項式
を表わすであろう。この剰余の多項式はCRCチェックビ
ットが組合わされたセグメント40および42でメッセージ
多項式40のビットパターンに関係なく計算されるとき、
常に結果として生じるであろう。
ータパケットのフォーマットを例示する。セグメント40
はそれでCRCビットが計算されたメッセージ多項式であ
る。これらのメッセージ多項式ビットは、ビットがゲー
ト34の入力である度にそれが同時に伝送されるという点
で、CRCビットの計算と同時に伝送される。セグメント4
2はセグメント40のすべてのビットが処理された後に検
査合計レジスタ30にストアされるCRCビットの補数であ
る。セグメント42は補数のCRCビットからなり、そのた
めCRCビットが組合わされたセグメント40および42の受
取り端部で計算されるとき、剰余は0となるであろう。
いくつかのプロトコールでは、検査合計レジスタはCRC
計算が始まる前にすべて論理「1」にプリセットされ
る。そのような場合、CRCチェックビットがセグメント4
0および42からなる組合わされたパケットで計算される
とき、剰余はすべて0ではないが、標準の剰余の多項式
を表わすであろう。この剰余の多項式はCRCチェックビ
ットが組合わされたセグメント40および42でメッセージ
多項式40のビットパターンに関係なく計算されるとき、
常に結果として生じるであろう。
セグメント40に続いて、セグメント42のCRCチェック
ビットはライン47上の選択信号でマルチプレクサ44を切
換えることによって送られ、直列データ入力ライン46の
選択を解除し、そしてインバータ50の出力ライン48を選
択する。インバータ50の入力は検査合計レジスタの最上
位ビット位置のメモリセルの出力に結合される。インバ
ータ50は、チェックビットがライン38のビットクロック
信号によって直列様式でクロック動作されるとそれらを
反転する。CRCチェックビット42が次に続くセグメント4
0からなる合成のパケットは直列出力ライン52上に現わ
れる。
ビットはライン47上の選択信号でマルチプレクサ44を切
換えることによって送られ、直列データ入力ライン46の
選択を解除し、そしてインバータ50の出力ライン48を選
択する。インバータ50の入力は検査合計レジスタの最上
位ビット位置のメモリセルの出力に結合される。インバ
ータ50は、チェックビットがライン38のビットクロック
信号によって直列様式でクロック動作されるとそれらを
反転する。CRCチェックビット42が次に続くセグメント4
0からなる合成のパケットは直列出力ライン52上に現わ
れる。
[発明が解決しようとする課題] 生入力データを入力ゲート34にクロック動作させるた
めのビットクロック信号が得られない第1図のアーキテ
クチャでは問題が生じる。いくつかのシステムはバイト
指向で、そして単に各8ビットで1バイトのクロック信
号を与えるだけである。そのようなシステムは1度に生
入力データの1バイトを受取りかつ同時に生入力データ
バイトの各ビットの影響を考慮してCRCビットを計算す
ることによって、CRCビットを計算することができなく
てはならない。この並列のCRC計算を達成するためのア
ーキテクチャが第4図に示される。
めのビットクロック信号が得られない第1図のアーキテ
クチャでは問題が生じる。いくつかのシステムはバイト
指向で、そして単に各8ビットで1バイトのクロック信
号を与えるだけである。そのようなシステムは1度に生
入力データの1バイトを受取りかつ同時に生入力データ
バイトの各ビットの影響を考慮してCRCビットを計算す
ることによって、CRCビットを計算することができなく
てはならない。この並列のCRC計算を達成するためのア
ーキテクチャが第4図に示される。
第4図では、シフトリンクのアレイは各行が生入力デ
ータバイトのビットの1つを処理するために割当てられ
た、シフトリンクの複数個の行からなる。生入力データ
バイトは左の入力ゲートに結合されたビットD7ないしD0
として示される。これらの入力データビットの各々は入
力排他的ORゲート66、68、70、72、74、76、78および80
の1つの入力に結合される。これらの入力ゲートの各々
はその出力がその行の各排他的ORゲートの入力に結合さ
れ、そして次の行の最下位のビット位置のシフトリンク
の入力に結合される。こうして、アレイ56の各行はその
出力が次の行の入力に結合されることを除いて、第1図
のシフトリンクの行32のような働きをする。第1の行は
その入力が検査合計レジスタ30の出力に結合され、そし
てその最後の行はその出力が検査合計レジスタの入力に
結合される。各行はその入力ゲートの1つの入力が検査
合計レジスタの最も高いオーダバイトのビットの1つの
出力に結合され、第1の行は最も高いオーダビットに結
合され、そして第2の行は2番目の最上位ビットに接続
され、以下すべての行で同様である。各行の各シフトリ
ンクはその入力ビットを1ビット位置検査合計レバー下
の最上位ビット位置に向かってシフトする。それゆえ第
4図のアーキテクチャは1度に生入力データの8ビット
を処理することによってCRCビットを計算する。
ータバイトのビットの1つを処理するために割当てられ
た、シフトリンクの複数個の行からなる。生入力データ
バイトは左の入力ゲートに結合されたビットD7ないしD0
として示される。これらの入力データビットの各々は入
力排他的ORゲート66、68、70、72、74、76、78および80
の1つの入力に結合される。これらの入力ゲートの各々
はその出力がその行の各排他的ORゲートの入力に結合さ
れ、そして次の行の最下位のビット位置のシフトリンク
の入力に結合される。こうして、アレイ56の各行はその
出力が次の行の入力に結合されることを除いて、第1図
のシフトリンクの行32のような働きをする。第1の行は
その入力が検査合計レジスタ30の出力に結合され、そし
てその最後の行はその出力が検査合計レジスタの入力に
結合される。各行はその入力ゲートの1つの入力が検査
合計レジスタの最も高いオーダバイトのビットの1つの
出力に結合され、第1の行は最も高いオーダビットに結
合され、そして第2の行は2番目の最上位ビットに接続
され、以下すべての行で同様である。各行の各シフトリ
ンクはその入力ビットを1ビット位置検査合計レバー下
の最上位ビット位置に向かってシフトする。それゆえ第
4図のアーキテクチャは1度に生入力データの8ビット
を処理することによってCRCビットを計算する。
もし第4図のアーキテクチャが集積されるなら、第1
図のアーキテクチャではなされ得ないチップ面積を節約
し、かつアーキテクチャがいくつかの機能を行なうこと
を可能にするいくつかの改良がなされ得る。たとえば、
CRCビットを第1図または第4図のアーキテクチャの並
列フォーマットで検査合計レジスタ30から得るために
は、導体が検査合計レジスタ30の各出力に接続されるこ
とが必要である。32ビット検査合計レジスタでは、これ
は出力バス導体によって非常に広いチップ面積が浪費さ
れてしまうことが必要となるであろう。もしCRC出力の
最高位のオーダバイトのみが出力バスに接続され、CRC
データの他のバイトが出力で最高位のオーダバイトにシ
フトされさえすれば、有用であろう。これは出力バスの
導体の数を32から8に切りつめ、それによってチップ面
積を非常に節約する。
図のアーキテクチャではなされ得ないチップ面積を節約
し、かつアーキテクチャがいくつかの機能を行なうこと
を可能にするいくつかの改良がなされ得る。たとえば、
CRCビットを第1図または第4図のアーキテクチャの並
列フォーマットで検査合計レジスタ30から得るために
は、導体が検査合計レジスタ30の各出力に接続されるこ
とが必要である。32ビット検査合計レジスタでは、これ
は出力バス導体によって非常に広いチップ面積が浪費さ
れてしまうことが必要となるであろう。もしCRC出力の
最高位のオーダバイトのみが出力バスに接続され、CRC
データの他のバイトが出力で最高位のオーダバイトにシ
フトされさえすれば、有用であろう。これは出力バスの
導体の数を32から8に切りつめ、それによってチップ面
積を非常に節約する。
いくつかのシステムは、第1のデータパケットで第1
の組のCRCビットを、そして第2のデータパケットで第
2の組のCRCビットを第1のデータパケットに直ちに引
き続いて、または第1のデータパケットで計算されたCR
Cチェックビットの伝送に直ちに引き続いて計算するこ
とが必要である。多くのCRC計算器ではCRC計算が始まる
直前にすべての論理「1」に検査合計レジスタの内容物
をプリセットすることが慣例である。これは、論理
「0」の長いストリングを有する入力データストリング
は検査合計レジスタの内容物に以前として影響を及ぼ
し、そのためもし検査合計レジスタまたは検査アレイに
機能不全があるとその機能不全が直ちに検出されるとい
う点で、CRC計算器の性能を改良する。もし検査合計レ
ジスタがすべて「1」にプリセットされなかったなら、
検査合計レジスタまたは検査アレイの欠陥はそのような
環境では検出されないかもしれない。
の組のCRCビットを、そして第2のデータパケットで第
2の組のCRCビットを第1のデータパケットに直ちに引
き続いて、または第1のデータパケットで計算されたCR
Cチェックビットの伝送に直ちに引き続いて計算するこ
とが必要である。多くのCRC計算器ではCRC計算が始まる
直前にすべての論理「1」に検査合計レジスタの内容物
をプリセットすることが慣例である。これは、論理
「0」の長いストリングを有する入力データストリング
は検査合計レジスタの内容物に以前として影響を及ぼ
し、そのためもし検査合計レジスタまたは検査アレイに
機能不全があるとその機能不全が直ちに検出されるとい
う点で、CRC計算器の性能を改良する。もし検査合計レ
ジスタがすべて「1」にプリセットされなかったなら、
検査合計レジスタまたは検査アレイの欠陥はそのような
環境では検出されないかもしれない。
別々のCRCチェックビットが2つの配向パケットで計
算されるべきとき、第1および第2のパケットの間にク
ロックサイクルはなく、その間検査合計レジスタはすべ
て論理「1」をメモリセルに入力することによってプリ
セットされ得る。第1のパケットと第2のパケットの間
にスペアのクロツクサイクルがない場合には第2のデー
タパケットでCRC計算機をプリセットする方法を提供す
ることが有益であろう。
算されるべきとき、第1および第2のパケットの間にク
ロックサイクルはなく、その間検査合計レジスタはすべ
て論理「1」をメモリセルに入力することによってプリ
セットされ得る。第1のパケットと第2のパケットの間
にスペアのクロツクサイクルがない場合には第2のデー
タパケットでCRC計算機をプリセットする方法を提供す
ることが有益であろう。
ヘッダビットを有するデータパケットを公式化するこ
とがコンピュータの回路網で一般的であり、これは回路
網およびその回路網の特定のノードを規定し、それに対
してヘッダビットに付加されたデータメッセージがアド
レスされる。そのような状況では、2つの方法のいずれ
かでCRCビットの計算をすることができることが望まし
い。第1の方法は、ヘッダCRCをヘッダビットで計算す
ることであり、そしてそれからデータCRCをデータメッ
セージで計算することである。第2の方法は、ヘッダCR
Cをヘッダビットで計算し、そしてそれからデータCRCを
ヘッダビット、ヘッダCRCチェックビットおよびデータ
メッセージを含む全体のパケットで計算することであ
る。これらの2つの方法のいずれかを用いてCRCチェッ
クビットを計算できるCRC計算器を提供することが有益
であろう。
とがコンピュータの回路網で一般的であり、これは回路
網およびその回路網の特定のノードを規定し、それに対
してヘッダビットに付加されたデータメッセージがアド
レスされる。そのような状況では、2つの方法のいずれ
かでCRCビットの計算をすることができることが望まし
い。第1の方法は、ヘッダCRCをヘッダビットで計算す
ることであり、そしてそれからデータCRCをデータメッ
セージで計算することである。第2の方法は、ヘッダCR
Cをヘッダビットで計算し、そしてそれからデータCRCを
ヘッダビット、ヘッダCRCチェックビットおよびデータ
メッセージを含む全体のパケットで計算することであ
る。これらの2つの方法のいずれかを用いてCRCチェッ
クビットを計算できるCRC計算器を提供することが有益
であろう。
回路網のすべてのノードが単一のケーブルによってリ
ング内に一緒に接続されるトークンリングコンピュータ
回路網環境では、第1のバイトが回路網のいかなるノー
ドによっても飛んでで変化できる或る最初のビットを有
する回路網に沿って送られるマルチバイトメッセージを
有することが一般的である。CRC計算でエラーではない
予期できない変化を受けるこれらの最初のビットを含む
ことは所望されない。そのような変化は、もし伝達と受
取りノードの間のノードを通過する間にこれらのビット
の1つで変化が発生したなら、CRCチェックビットの中
でエラーとして現われるであろう。1バイトのクロック
しか用いずにデータパケットでCRCを計算できて、そし
てさらにCRC計算から第1のバイトのメッセージの最初
のビットのいかなる数も除外することができる、CRC計
算器を提供することが有益であろう。
ング内に一緒に接続されるトークンリングコンピュータ
回路網環境では、第1のバイトが回路網のいかなるノー
ドによっても飛んでで変化できる或る最初のビットを有
する回路網に沿って送られるマルチバイトメッセージを
有することが一般的である。CRC計算でエラーではない
予期できない変化を受けるこれらの最初のビットを含む
ことは所望されない。そのような変化は、もし伝達と受
取りノードの間のノードを通過する間にこれらのビット
の1つで変化が発生したなら、CRCチェックビットの中
でエラーとして現われるであろう。1バイトのクロック
しか用いずにデータパケットでCRCを計算できて、そし
てさらにCRC計算から第1のバイトのメッセージの最初
のビットのいかなる数も除外することができる、CRC計
算器を提供することが有益であろう。
[課題を解決するための手段] この発明の特定的な実施例に従えば、32ビット幅の出
力バスの必要なく、並列フォーマットでCRCデータを出
力することができる32ビットのCRC検査合計パケットの
ためのCRC計算器に対する要求を満たす。この発明は1
つの導体が検査合計レジスタの最上位バイトにCRCビッ
トをストアする各メモリセルのデータ出力に結合され
る、8ビット幅の出力バスを用いる。検査合計レジスタ
メモリセルのクロック入力はバイトクロック信号に結合
され、これは検査合計レジスタの入力でデータを定期的
にロードすることを引き起こす。検査合計レジスタの入
力は、生入力データバイトの各ビットでシフトリンクの
1行からなる、シフトリンクのアレイの最後の行の出力
に結合される。各行は、検査合計レジスタの各ビットで
1つの列またはシフトリンクの位置を有する。シフトリ
ンクのいくつかは一方の入力が入力ゲートの出力に結合
される排他的ORゲートである。この入力ゲートは、生入
力データバイトの1ビットと検査合計レジスタにストア
されるデータの最上位バイトの1ビットとの間で排他的
OR機能を果たす。各排他的ORゲートの他方の入力は、そ
の特定のゲートが属する列で検査合計レジスタの出力ビ
ットに結合される。排他的ORゲートのシフトリンクの出
力は、次の最上位ビット位置の次の行のシフトリンクの
入力に結合される。排他的ORゲートではないシフトリン
クは、次の最上位ビット位置の次の行のシフトリンクの
入力にそれらの入力でのビットを導伝し、すなわちそれ
らは簡単な1ビットシフト機能を果たす。
力バスの必要なく、並列フォーマットでCRCデータを出
力することができる32ビットのCRC検査合計パケットの
ためのCRC計算器に対する要求を満たす。この発明は1
つの導体が検査合計レジスタの最上位バイトにCRCビッ
トをストアする各メモリセルのデータ出力に結合され
る、8ビット幅の出力バスを用いる。検査合計レジスタ
メモリセルのクロック入力はバイトクロック信号に結合
され、これは検査合計レジスタの入力でデータを定期的
にロードすることを引き起こす。検査合計レジスタの入
力は、生入力データバイトの各ビットでシフトリンクの
1行からなる、シフトリンクのアレイの最後の行の出力
に結合される。各行は、検査合計レジスタの各ビットで
1つの列またはシフトリンクの位置を有する。シフトリ
ンクのいくつかは一方の入力が入力ゲートの出力に結合
される排他的ORゲートである。この入力ゲートは、生入
力データバイトの1ビットと検査合計レジスタにストア
されるデータの最上位バイトの1ビットとの間で排他的
OR機能を果たす。各排他的ORゲートの他方の入力は、そ
の特定のゲートが属する列で検査合計レジスタの出力ビ
ットに結合される。排他的ORゲートのシフトリンクの出
力は、次の最上位ビット位置の次の行のシフトリンクの
入力に結合される。排他的ORゲートではないシフトリン
クは、次の最上位ビット位置の次の行のシフトリンクの
入力にそれらの入力でのビットを導伝し、すなわちそれ
らは簡単な1ビットシフト機能を果たす。
各シフトリンクのシフト機能は以下のとおりである。
もし検査合計レジスタの最上位ビットが最も左のセルに
ストアされるなら、各シフトリンクはそのビットを左に
1ビットシフトする。このシフト機能は、この発明でう
まく用いられ、1バイト幅の出力バスを実現し、一方並
列フォーマットで検査合計レジスタに各バイトを出力す
る能力を維持する。
もし検査合計レジスタの最上位ビットが最も左のセルに
ストアされるなら、各シフトリンクはそのビットを左に
1ビットシフトする。このシフト機能は、この発明でう
まく用いられ、1バイト幅の出力バスを実現し、一方並
列フォーマットで検査合計レジスタに各バイトを出力す
る能力を維持する。
CRC計算が終わった後に、CRCデータの最上位バイト
は、単に出力バスにデータを導くことによって読取られ
る。残余のバイトは、各バイトクロック信号で単なる8
ビット左のシフトを行なうためにシフトリンクのアレイ
を用いることによって、バイトクロック信号と同期して
1度に1バイト読出される。これは、各入力ゲートの出
力と各行の各排他的ORゲートのシフトリンクの入力の間
のシフトリンクアレイにANDゲートを加えることによっ
てなされる。これらのANDゲートは1つの入力が入力ゲ
ートの出力に結合され、そして別の入力がSHIFT否定信
号に結合される。ANDゲートはそれらの出力がアレイの
行のすべての排他的ORゲート入力に結合され、それに対
して入力ゲートの出力が形式的に接続される。「ロー」
に断定されるときSHIFT否定信号は、シフトリンクのア
レイの行の各排他的ORゲートが透明になることを引き起
こす。これは結果として、各行を通過し、そして1ビッ
ト位置だけ左にシフトされる検査合計レジスタのデータ
を生じる。アレイの各行を通過した後、データは各バイ
トクロック信号で左に8ビットシフトされているであろ
う。こうしてSHIFT否定信号が断定されるとき、第1の
バイトクロック信号が発生すると、第2の最上位CRCバ
イトは最上位バイトのメモリセルにシフトされ、そして
出力バスから読出されてもよい。次のバイトクロック信
号が発生すると、CRCデータの第3の最上位バイトが第
2の最上位バイトの前の位置から最上位バイトの位置に
シフトされるであろう。この処理は、CRCデータのすべ
てのバイトが最上位バイトの位置にシフトされ、そして
出力バスから読出されるまで続く。
は、単に出力バスにデータを導くことによって読取られ
る。残余のバイトは、各バイトクロック信号で単なる8
ビット左のシフトを行なうためにシフトリンクのアレイ
を用いることによって、バイトクロック信号と同期して
1度に1バイト読出される。これは、各入力ゲートの出
力と各行の各排他的ORゲートのシフトリンクの入力の間
のシフトリンクアレイにANDゲートを加えることによっ
てなされる。これらのANDゲートは1つの入力が入力ゲ
ートの出力に結合され、そして別の入力がSHIFT否定信
号に結合される。ANDゲートはそれらの出力がアレイの
行のすべての排他的ORゲート入力に結合され、それに対
して入力ゲートの出力が形式的に接続される。「ロー」
に断定されるときSHIFT否定信号は、シフトリンクのア
レイの行の各排他的ORゲートが透明になることを引き起
こす。これは結果として、各行を通過し、そして1ビッ
ト位置だけ左にシフトされる検査合計レジスタのデータ
を生じる。アレイの各行を通過した後、データは各バイ
トクロック信号で左に8ビットシフトされているであろ
う。こうしてSHIFT否定信号が断定されるとき、第1の
バイトクロック信号が発生すると、第2の最上位CRCバ
イトは最上位バイトのメモリセルにシフトされ、そして
出力バスから読出されてもよい。次のバイトクロック信
号が発生すると、CRCデータの第3の最上位バイトが第
2の最上位バイトの前の位置から最上位バイトの位置に
シフトされるであろう。この処理は、CRCデータのすべ
てのバイトが最上位バイトの位置にシフトされ、そして
出力バスから読出されるまで続く。
この発明のこれらおよびその他の局面はこの発明の以
下の詳細な説明および簡単な説明が以下に続いている添
付の図面を検討することでよりよく理解されるであろ
う。
下の詳細な説明および簡単な説明が以下に続いている添
付の図面を検討することでよりよく理解されるであろ
う。
[好ましい実施例の詳細な説明] [バイト幅の出力バス] 第5図および第7図に移ると、複数のCRCバイトを計
算しそしてそれらを単一バイト幅の出力バス上に出力す
るためのCRC機械の好ましい実施例のそれぞれブロック
図と論理図が示されている。第5図の実施例は複数個の
メモリセルからなる検査合計レジスタ30を用い、そのメ
モリセルの各々はデータ入力とデータ出力とバイトクロ
ック信号を受取るためのクロック入力とを有する。バイ
トクロック信号を受取ると、メモリセルの入力のいかな
るデータもセルにラッチされ、セルのデータ出力に反映
される。各メモリセルはその左と右の隣接セルから独立
して動作する。検査合計レジスタは第5図のバイト0な
いし3で示されるCRCデータの複数個のバイトに論理的
にセグメント化される。好ましい実施例では、バイト3
が最上位バイトである検査合計レジスタには1バイトに
つき8ビットあり、合計で32ビットとなる。第5図で
は、バイト3はメモセリセル24ないし31からなる。
算しそしてそれらを単一バイト幅の出力バス上に出力す
るためのCRC機械の好ましい実施例のそれぞれブロック
図と論理図が示されている。第5図の実施例は複数個の
メモリセルからなる検査合計レジスタ30を用い、そのメ
モリセルの各々はデータ入力とデータ出力とバイトクロ
ック信号を受取るためのクロック入力とを有する。バイ
トクロック信号を受取ると、メモリセルの入力のいかな
るデータもセルにラッチされ、セルのデータ出力に反映
される。各メモリセルはその左と右の隣接セルから独立
して動作する。検査合計レジスタは第5図のバイト0な
いし3で示されるCRCデータの複数個のバイトに論理的
にセグメント化される。好ましい実施例では、バイト3
が最上位バイトである検査合計レジスタには1バイトに
つき8ビットあり、合計で32ビットとなる。第5図で
は、バイト3はメモセリセル24ないし31からなる。
検査合計レジスタのデータ出力は第7図に示されるシ
フトリンク60のアレイの入力に結合される。シフトリン
クのこのアレイは、左側でアレイに入るデータビットD0
ないしD7からなる生入力データバイトの各ビットで、シ
フトリンクの1行からなる。これらの生入力データビッ
トはそれに関してCRC計算が所望されるメッセージのデ
ータバイトである。各生入力データビットは入力ゲート
の1つの入力に結合される。各行ごとに指定される1つ
の入力ゲートがあり、そしてそれにはその行とその入力
ゲートに対し指定される生入力データビットがある。第
1の行では、示される生入力データビットはD7であり、
指定される入力ゲートは排他的ORゲート62である。第2
の行では、指定される生入力データビットはD6で指定さ
れる入力ゲートは排他的ORゲート64である。同様の状況
が各行および生入力データバイトのすべてのビットで存
在する。もしデータビットが第1に最上位ビットの直列
フォーマットで到着し(任意の仮定)、そしてD7が最上
位ビットで指定されるなら(別の任意の仮定)、第1の
行で指定される生入力データビットが各ビットの最上位
ビットとなるかまたは、もしビットが逐次的に到着した
なら第1の到着ビットとなるであろう。第2の行で指定
されるビットは、もしそのビットが直列フォーマットで
到着したなら、第2の最上位ビットまたは到着すべき第
2のビットとなるであろう。第3の行はその指定される
ビットとして、第3の最上位ビットまたは時間的に第3
番目に到着するビットを有し、これはすべての行で同様
である。
フトリンク60のアレイの入力に結合される。シフトリン
クのこのアレイは、左側でアレイに入るデータビットD0
ないしD7からなる生入力データバイトの各ビットで、シ
フトリンクの1行からなる。これらの生入力データビッ
トはそれに関してCRC計算が所望されるメッセージのデ
ータバイトである。各生入力データビットは入力ゲート
の1つの入力に結合される。各行ごとに指定される1つ
の入力ゲートがあり、そしてそれにはその行とその入力
ゲートに対し指定される生入力データビットがある。第
1の行では、示される生入力データビットはD7であり、
指定される入力ゲートは排他的ORゲート62である。第2
の行では、指定される生入力データビットはD6で指定さ
れる入力ゲートは排他的ORゲート64である。同様の状況
が各行および生入力データバイトのすべてのビットで存
在する。もしデータビットが第1に最上位ビットの直列
フォーマットで到着し(任意の仮定)、そしてD7が最上
位ビットで指定されるなら(別の任意の仮定)、第1の
行で指定される生入力データビットが各ビットの最上位
ビットとなるかまたは、もしビットが逐次的に到着した
なら第1の到着ビットとなるであろう。第2の行で指定
されるビットは、もしそのビットが直列フォーマットで
到着したなら、第2の最上位ビットまたは到着すべき第
2のビットとなるであろう。第3の行はその指定される
ビットとして、第3の最上位ビットまたは時間的に第3
番目に到着するビットを有し、これはすべての行で同様
である。
各入力ゲートは別の入力が最上位CRCバイトのビット
の1つのデータ出力の一方に結合される。第1の行で入
力ゲートであるゲート62はその他方の入力が最上位CRC
ビットのビット31のデータ出力に結合される。第2の行
の入力ゲートはその他方の入力が第2の最上位CRCビッ
トのビット30に結合され、以下すべての行で同様であ
る。
の1つのデータ出力の一方に結合される。第1の行で入
力ゲートであるゲート62はその他方の入力が最上位CRC
ビットのビット31のデータ出力に結合される。第2の行
の入力ゲートはその他方の入力が第2の最上位CRCビッ
トのビット30に結合され、以下すべての行で同様であ
る。
シフトリンクの各行は、複数個の直貫通導体からな
り、それらは次の最上位ビット位置のシフトリンクの次
の行の入力に接続される出力にそれらの入力のビットを
シフトする以外は何もしない。これらの直貫通導体はそ
れらの入力ビットを1ビット位置左にシフトする以外は
何もしない。各行のシフトリンクのバランスは排他的OR
ゲートであり、これらのゲートは検査合計レジスタまた
は先行の行からのCRCビットのビット入力として一方の
入力を有し、かつ他方の入力がその行で示される入力ゲ
ートの出力に結合される。この後者の入力は直接には入
力ゲートの出力に結合されないが、特定の行で指定され
るANDゲートの出力に結合される。このANDゲートの一つ
の入力は排他的ORゲートの出力に結合され、別の入力は
SHIFT否定信号の受取りのためであって、この目的は以
下に説明されるであろう。各行でANDゲートの出力はま
た、次の行の最下位のシフトリンクの入力に結合され
る。各行で1つの示されるANDゲートがあり、たとえば
ゲート66は第1の行に、そしてゲート68は第2の行にあ
る。
り、それらは次の最上位ビット位置のシフトリンクの次
の行の入力に接続される出力にそれらの入力のビットを
シフトする以外は何もしない。これらの直貫通導体はそ
れらの入力ビットを1ビット位置左にシフトする以外は
何もしない。各行のシフトリンクのバランスは排他的OR
ゲートであり、これらのゲートは検査合計レジスタまた
は先行の行からのCRCビットのビット入力として一方の
入力を有し、かつ他方の入力がその行で示される入力ゲ
ートの出力に結合される。この後者の入力は直接には入
力ゲートの出力に結合されないが、特定の行で指定され
るANDゲートの出力に結合される。このANDゲートの一つ
の入力は排他的ORゲートの出力に結合され、別の入力は
SHIFT否定信号の受取りのためであって、この目的は以
下に説明されるであろう。各行でANDゲートの出力はま
た、次の行の最下位のシフトリンクの入力に結合され
る。各行で1つの示されるANDゲートがあり、たとえば
ゲート66は第1の行に、そしてゲート68は第2の行にあ
る。
各排他的ORゲートシフトリンクの出力は次の行の次の
最上位ビット位置のシフトリンクの入力に結合され、す
なわち各排他的ORゲートはその上で排他的OR動作を行な
った後にその入力ビットを1ビット位置左にシフトす
る。
最上位ビット位置のシフトリンクの入力に結合され、す
なわち各排他的ORゲートはその上で排他的OR動作を行な
った後にその入力ビットを1ビット位置左にシフトす
る。
排他的ORゲートシフトリンクの相対的な位置は、用い
られる特定の生成多項式に依存する。上の公式(2)で
与えられた自動ディジタルネットワークIIおよびエサー
ネット基準の生成多項式では排他的ORゲートはそれらの
入力が検査合計レジスタ30のビット0、1、3、4、
6、7、9、10、11、15、21、22、25および31に結合さ
れるように位置決めされなくてはならない。この理由は
CRC計算の当業者には周知であり、簡潔さのためにここ
では説明されない。各行は同じビット位置にその排他的
ORゲートを有する。第1の行の入力はそれが先行する行
であるかのように検査合計レジスタの出力に結合され、
そして最後の行の出力はそれが次の行であるかのように
検査合計レジスタの入力に結合される。
られる特定の生成多項式に依存する。上の公式(2)で
与えられた自動ディジタルネットワークIIおよびエサー
ネット基準の生成多項式では排他的ORゲートはそれらの
入力が検査合計レジスタ30のビット0、1、3、4、
6、7、9、10、11、15、21、22、25および31に結合さ
れるように位置決めされなくてはならない。この理由は
CRC計算の当業者には周知であり、簡潔さのためにここ
では説明されない。各行は同じビット位置にその排他的
ORゲートを有する。第1の行の入力はそれが先行する行
であるかのように検査合計レジスタの出力に結合され、
そして最後の行の出力はそれが次の行であるかのように
検査合計レジスタの入力に結合される。
CRCレジスタの最上位バイトのデータ出力は、CRC出力
バス70の個々の導体にもまた結合される。好ましくは、
各メモリセルは複数の出力を有し、そして最上位バイト
のこれらの出力が出力バス70に結合される。その代わり
に、伝送に先立ってCRCビットを反転するためにインバ
ータが各ラインに用いられ得る。
バス70の個々の導体にもまた結合される。好ましくは、
各メモリセルは複数の出力を有し、そして最上位バイト
のこれらの出力が出力バス70に結合される。その代わり
に、伝送に先立ってCRCビットを反転するためにインバ
ータが各ラインに用いられ得る。
ANDゲートのおよびSHIFT否定信号の目的は、シフトリ
ンクのアレイが検査合計レジスタの出力でのデータが変
化されないでアレイを通過し、そして処理の中で1バイ
トだけ左にシフトされ、そして検査合計レジスタに再入
力するように透明にされることを可能にする。SHIFT否
定信号が、すなわち論理「0」を断定されるなら、ゲー
ト66および68のようなすべてのANDゲートは論理「0」
出力を有する。ライン72ないし79の論理「0」はシフト
リンクの行の排他的ORゲートを透明にし、そのためそれ
らは先行する行からのそれらの入力データを、次の行に
結合されるそれらの出力に変化なく送る。各行はその入
力データを1ビット左にシフトするので、そしてそこに
は8行があるので、結果はSHIFT否定信号が活性化(ア
サート)されると、検査合計レジスタのデータはバイト
クロック信号の各サイクルで1バイトだけ左にシフトさ
れる。これはCRCデータのすべてのバイトが単一のバイ
ト幅の出力バス70を介してアクセスされることを可能に
する。
ンクのアレイが検査合計レジスタの出力でのデータが変
化されないでアレイを通過し、そして処理の中で1バイ
トだけ左にシフトされ、そして検査合計レジスタに再入
力するように透明にされることを可能にする。SHIFT否
定信号が、すなわち論理「0」を断定されるなら、ゲー
ト66および68のようなすべてのANDゲートは論理「0」
出力を有する。ライン72ないし79の論理「0」はシフト
リンクの行の排他的ORゲートを透明にし、そのためそれ
らは先行する行からのそれらの入力データを、次の行に
結合されるそれらの出力に変化なく送る。各行はその入
力データを1ビット左にシフトするので、そしてそこに
は8行があるので、結果はSHIFT否定信号が活性化(ア
サート)されると、検査合計レジスタのデータはバイト
クロック信号の各サイクルで1バイトだけ左にシフトさ
れる。これはCRCデータのすべてのバイトが単一のバイ
ト幅の出力バス70を介してアクセスされることを可能に
する。
第5図の実施例はまた、いくつかの修正をした直列の
フォーマットで用いられてもよい。もしシフトリンク84
のアレイがシフトリンクの単一の行であるなら、第7図
のANDゲートは各バイトクロック信号で単一のバイトの
左のシフトを引き起こすようには働かないであろう。直
列データ入力環境では、アレイ84への生データ入力はビ
ットクロック信号と同期に直列フォーマットで1度に1
ビットであろう。生入力データビットがすべて処理され
た後、メッセージのCRCチェックビットが検査合計レジ
スタ30に属する。最上位バイトは出力バス70上で即座に
読出され得る。残余のバイトは各CRCビットデータ出力
を次の最上位CRCビット入力の入力、すなわち左に隣接
しているセルの入力に付加的に結合させることによっ
て、1度に1ビット左にシフトされるであろう。この結
合は一方の入力がバス36に結合され、そして他方の入力
が右側のCRCビットデータ出力に結合されているマルチ
プレクサを各ビットで通るであろう。マルチプレクサの
出力は左隣りのデータ入力に接続されるであろう。CRC
バイト2、1および0を出力するとき、これらのマルチ
プレクサは各セルの右隣りに結合する入力を選択するよ
うにセットされるであろう。付加の論理回路はそれから
検査合計レジスタの各セルのクロック入力に接続される
ビットクロック信号の8サイクルの間出力バス70を不能
化し、そしてバイト2がバイト3すなわち最上位バイト
位置にシフトされたときそれを可能化する。同様の処理
がすべてのバイトが読出されるまで各バイトで行なわれ
る。
フォーマットで用いられてもよい。もしシフトリンク84
のアレイがシフトリンクの単一の行であるなら、第7図
のANDゲートは各バイトクロック信号で単一のバイトの
左のシフトを引き起こすようには働かないであろう。直
列データ入力環境では、アレイ84への生データ入力はビ
ットクロック信号と同期に直列フォーマットで1度に1
ビットであろう。生入力データビットがすべて処理され
た後、メッセージのCRCチェックビットが検査合計レジ
スタ30に属する。最上位バイトは出力バス70上で即座に
読出され得る。残余のバイトは各CRCビットデータ出力
を次の最上位CRCビット入力の入力、すなわち左に隣接
しているセルの入力に付加的に結合させることによっ
て、1度に1ビット左にシフトされるであろう。この結
合は一方の入力がバス36に結合され、そして他方の入力
が右側のCRCビットデータ出力に結合されているマルチ
プレクサを各ビットで通るであろう。マルチプレクサの
出力は左隣りのデータ入力に接続されるであろう。CRC
バイト2、1および0を出力するとき、これらのマルチ
プレクサは各セルの右隣りに結合する入力を選択するよ
うにセットされるであろう。付加の論理回路はそれから
検査合計レジスタの各セルのクロック入力に接続される
ビットクロック信号の8サイクルの間出力バス70を不能
化し、そしてバイト2がバイト3すなわち最上位バイト
位置にシフトされたときそれを可能化する。同様の処理
がすべてのバイトが読出されるまで各バイトで行なわれ
る。
第6図を参照すると、CRC計算器の出力バス構造の別
の実施例が示される。この実施例は4つの入力を有する
マルチプレクサを用い、それの各々は1バイト幅のバス
によってCRCデータの1バイトをストアするメモセルの
1グループの補数のデータ出力に結合される。バス74上
のCRC否定バイト選択信号は4つの入力のどれが8ビッ
ト出力バス70に結合するかを選択する。CRC計算は上で
説明されたように行なわれ、そしてCRCデータを出力す
ることに関して、シフトリンク84のアレイが直列アレイ
であるかまたは並列アレイであるか、またはビットクロ
ックかまたはバイトクロック信号がアレイおよびクロッ
ク信号の型が一貫していなければならないことを除いて
データをクロックするのに用いられかどうかは重要では
ない。
の実施例が示される。この実施例は4つの入力を有する
マルチプレクサを用い、それの各々は1バイト幅のバス
によってCRCデータの1バイトをストアするメモセルの
1グループの補数のデータ出力に結合される。バス74上
のCRC否定バイト選択信号は4つの入力のどれが8ビッ
ト出力バス70に結合するかを選択する。CRC計算は上で
説明されたように行なわれ、そしてCRCデータを出力す
ることに関して、シフトリンク84のアレイが直列アレイ
であるかまたは並列アレイであるか、またはビットクロ
ックかまたはバイトクロック信号がアレイおよびクロッ
ク信号の型が一貫していなければならないことを除いて
データをクロックするのに用いられかどうかは重要では
ない。
[プリセット実施例] 上で述べられたように、検査合計レジスタをCRCチェ
ックビットの計算の開始の前にすべて論理「1」にプリ
セットすることが一般に受入れられた実務である。第8
図ないし第12図は2つの異なる方法でおよび直列および
並列の両方の計算環境でプリセット機能を果たすための
種々の実施例を例示する。第8図は少なくとも1クロッ
クサイクルCRC計算の第1のクロックサイクルより前に
駆動されなくてはならないプリセット装置を用いるCRC
計算器の実施例を示す。CRC装置はそのデータ出力が上
に説明された実施例でのように排他的ORおよびシフトア
レイ84のデータ入力に結合される検査合計レジスタ30か
らなる。アレイ84は第1図および第2図のアレイ32のよ
うに直列または第4図または第7図のアレイ60のように
並列であり得る。実際これらのアレイのどれも、これか
ら後に説明されるシフトリンクの他のいかなるアレイも
そうであるように発明のこの局面を実施する目的のため
には十分である。上の説明された実施例のように、アレ
イの最後の行はマルチプレクサ86を介して検査合計レジ
スタ30のデータ入力に、32ビット幅であるデータバス36
によって結合される。
ックビットの計算の開始の前にすべて論理「1」にプリ
セットすることが一般に受入れられた実務である。第8
図ないし第12図は2つの異なる方法でおよび直列および
並列の両方の計算環境でプリセット機能を果たすための
種々の実施例を例示する。第8図は少なくとも1クロッ
クサイクルCRC計算の第1のクロックサイクルより前に
駆動されなくてはならないプリセット装置を用いるCRC
計算器の実施例を示す。CRC装置はそのデータ出力が上
に説明された実施例でのように排他的ORおよびシフトア
レイ84のデータ入力に結合される検査合計レジスタ30か
らなる。アレイ84は第1図および第2図のアレイ32のよ
うに直列または第4図または第7図のアレイ60のように
並列であり得る。実際これらのアレイのどれも、これか
ら後に説明されるシフトリンクの他のいかなるアレイも
そうであるように発明のこの局面を実施する目的のため
には十分である。上の説明された実施例のように、アレ
イの最後の行はマルチプレクサ86を介して検査合計レジ
スタ30のデータ入力に、32ビット幅であるデータバス36
によって結合される。
マルチプレクサ86はA、BおよびCと記される3つの
32ビット幅の入力と、前記検査合計レジスタのデータ入
力に結合される32ビット幅の出力バス88を有する。マル
チプレクサは入力選択信号を受取るための3つの選択入
力を有する。どの特定の時間でも活動状態にある特定の
選択信号は、入力AないしCに対応するものが出力バス
88に結合されることを引き起こす。Aの入力は32の論理
「1」で、そしてBの入力は一括してバス90と呼ばれる
検査合計レジスタの32のデータ出力である。Cの入力は
アレイ84の最後の行からデータ出力を運んでくる32ビッ
トのバス36である。
32ビット幅の入力と、前記検査合計レジスタのデータ入
力に結合される32ビット幅の出力バス88を有する。マル
チプレクサは入力選択信号を受取るための3つの選択入
力を有する。どの特定の時間でも活動状態にある特定の
選択信号は、入力AないしCに対応するものが出力バス
88に結合されることを引き起こす。Aの入力は32の論理
「1」で、そしてBの入力は一括してバス90と呼ばれる
検査合計レジスタの32のデータ出力である。Cの入力は
アレイ84の最後の行からデータ出力を運んでくる32ビッ
トのバス36である。
入力選択信号PRESET SELECTはCRC計算の第1のクロッ
クサイクルの1つまたは2つ以上のクロックサイクル前
に活性化される。これは入力バスAからの32の論理
「1」がバス88に結合され、そして検査合計レジスタ30
のセルにロードされることを引き起こす。次に、COMPUT
E SELECT入力が活性化されて、C入力すなわちバス36を
バス88に結合させる。この状態が存在する一方で、CRC
計算は、そのためにチェックビットが発生されるメッセ
ージのデータが、アレイ84にクロック動作されると進
む。もしいかなるときでもCRC計算を停止することが所
望であるなら、HOLD SELECT入力が活性化されてもよ
く、それによって検査合計レジスタの出力をバス90およ
び88を介して入力に戻って接続される。
クサイクルの1つまたは2つ以上のクロックサイクル前
に活性化される。これは入力バスAからの32の論理
「1」がバス88に結合され、そして検査合計レジスタ30
のセルにロードされることを引き起こす。次に、COMPUT
E SELECT入力が活性化されて、C入力すなわちバス36を
バス88に結合させる。この状態が存在する一方で、CRC
計算は、そのためにチェックビットが発生されるメッセ
ージのデータが、アレイ84にクロック動作されると進
む。もしいかなるときでもCRC計算を停止することが所
望であるなら、HOLD SELECT入力が活性化されてもよ
く、それによって検査合計レジスタの出力をバス90およ
び88を介して入力に戻って接続される。
第9図ないし第12図は、プリセット装置がプリセット
論理「1」がCRC計算の第1のクロックサイクルの間ロ
ードされることを可能にするCRC計算器の種々の実施例
を例示する。第17図のバス130のようなフィードバック
バスを用いないこれらの実施例の各々およびここで説明
される他の実施例のすべてはクロックラインにANDゲー
ト100を用いる。これらのANDゲートはクロック信号と、
CRCチェックビットを計算することが所望であるとき論
理「1」として活性化されるCOMPUTE信号の間で論理的A
ND動作を行なう。COMPUTEが論理「1」であるとき、CRC
計算は進むことができる。COMPUTEが論理「0」である
とき、CRC計算は発生せず、そして検査合計レジスタの
内容物は一定である。
論理「1」がCRC計算の第1のクロックサイクルの間ロ
ードされることを可能にするCRC計算器の種々の実施例
を例示する。第17図のバス130のようなフィードバック
バスを用いないこれらの実施例の各々およびここで説明
される他の実施例のすべてはクロックラインにANDゲー
ト100を用いる。これらのANDゲートはクロック信号と、
CRCチェックビットを計算することが所望であるとき論
理「1」として活性化されるCOMPUTE信号の間で論理的A
ND動作を行なう。COMPUTEが論理「1」であるとき、CRC
計算は進むことができる。COMPUTEが論理「0」である
とき、CRC計算は発生せず、そして検査合計レジスタの
内容物は一定である。
第9図および第10図はプリセット機能を実施するため
にORゲートを用いて、それぞれ直列のアレイと並列のア
レイの実施例を示す。第11図および第12図はプリセット
機能を実施するためにマルチプレクサを用いてそれぞれ
直列および並列のアレイの実施例を示す。これらの実施
例の中で第10図画好ましい実施例である。これらの実施
例のすべては、要素と種々の要素の動作およびCRC計算
の形がすべての実施例で同じであるので、プリセット装
置に関して同時に論じられるであろう。これらの要素は
上で論じられた発明の他の局面の直列および並列のアレ
イの実施例と同じ態様で動作する。さらに、アレイは発
明のこの局面の動作に逆に影響することなしにCRC計算
の第1のクロックサイクルの間のプリセットに関して、
発明の局面を実施する目的でここに説明された直列また
は並列アレイのいかなるものでもあり得る。
にORゲートを用いて、それぞれ直列のアレイと並列のア
レイの実施例を示す。第11図および第12図はプリセット
機能を実施するためにマルチプレクサを用いてそれぞれ
直列および並列のアレイの実施例を示す。これらの実施
例の中で第10図画好ましい実施例である。これらの実施
例のすべては、要素と種々の要素の動作およびCRC計算
の形がすべての実施例で同じであるので、プリセット装
置に関して同時に論じられるであろう。これらの要素は
上で論じられた発明の他の局面の直列および並列のアレ
イの実施例と同じ態様で動作する。さらに、アレイは発
明のこの局面の動作に逆に影響することなしにCRC計算
の第1のクロックサイクルの間のプリセットに関して、
発明の局面を実施する目的でここに説明された直列また
は並列アレイのいかなるものでもあり得る。
第9図ないし第12図の実施例の各々での重要な要素
は、検査合計レジスタのデータ出力を回路を通ってシフ
トリンクのアレイのデータ入力に結合させることで、こ
れはシフトリンクのアレイのデータ入力のすべてをCRC
計算が開始されるのと同じクロックサイクルの間、論理
「1」状態に強制的にする。第9図および第10図の実施
例は所望の時間で論理「1」に強制するこの機能を実施
するためにORゲートを用い、一方第11図および第12図の
実施例はマルチプレクサを用いる。第9図および第10図
では4つのORゲート90ないし93の各々は8個のORゲート
を表わし、そして各々は検査合計レジスタ30にストアさ
れたCRCデータの1つのバイトのビット上でOR論理機能
を行なう。ゲート90ないし93の各々によって示される8
個のORゲートの各々は、対応するORゲート90ないし93に
結合される検査合計レジスタの特定のグループのセルの
メモリセルのデータ出力の1つに入力が結合される。各
ORゲートの出力はアレイの第1の行のシフトリンクの1
つの入力に結合される。各ORゲートは別の入力がNEW PR
ESET信号に結合される。この信号が論理「1」として活
性化されるとき、すべてのORゲートの出力は「1」の値
に仮定し、これによってCRC計算の第1のクロックサイ
クルの間、シフトリンクのアレイの入力で論理「1」を
強制する。この状況は、もし検査合計レジスタ30が以前
のクロックサイクルで論理「1」でロードされ、そして
これらの論理「1」がCRC計算の第1のクロックサイク
ルでシフトリンクのアレイの第1の行の入力に伝達され
るならば存在するであろう状況と等しい。
は、検査合計レジスタのデータ出力を回路を通ってシフ
トリンクのアレイのデータ入力に結合させることで、こ
れはシフトリンクのアレイのデータ入力のすべてをCRC
計算が開始されるのと同じクロックサイクルの間、論理
「1」状態に強制的にする。第9図および第10図の実施
例は所望の時間で論理「1」に強制するこの機能を実施
するためにORゲートを用い、一方第11図および第12図の
実施例はマルチプレクサを用いる。第9図および第10図
では4つのORゲート90ないし93の各々は8個のORゲート
を表わし、そして各々は検査合計レジスタ30にストアさ
れたCRCデータの1つのバイトのビット上でOR論理機能
を行なう。ゲート90ないし93の各々によって示される8
個のORゲートの各々は、対応するORゲート90ないし93に
結合される検査合計レジスタの特定のグループのセルの
メモリセルのデータ出力の1つに入力が結合される。各
ORゲートの出力はアレイの第1の行のシフトリンクの1
つの入力に結合される。各ORゲートは別の入力がNEW PR
ESET信号に結合される。この信号が論理「1」として活
性化されるとき、すべてのORゲートの出力は「1」の値
に仮定し、これによってCRC計算の第1のクロックサイ
クルの間、シフトリンクのアレイの入力で論理「1」を
強制する。この状況は、もし検査合計レジスタ30が以前
のクロックサイクルで論理「1」でロードされ、そして
これらの論理「1」がCRC計算の第1のクロックサイク
ルでシフトリンクのアレイの第1の行の入力に伝達され
るならば存在するであろう状況と等しい。
CRC計算の第1のクロックサイクルの後、NEW PRESET
信号は論理「0」状態に戻り、それによってORゲートを
透明にする。その後、検査合計レジスタのいかなるデー
タもORゲート90ないし93を通って変化せず伝送され、そ
してCRC計算は通常通りに進む。
信号は論理「0」状態に戻り、それによってORゲートを
透明にする。その後、検査合計レジスタのいかなるデー
タもORゲート90ないし93を通って変化せず伝送され、そ
してCRC計算は通常通りに進む。
第11図および第12図はマルチプレクサ94ないし97を用
いてシフトリンクのアレイの第1の行の入力に同様に論
理「1」を強制し、アレイ32または60のシフトリンクの
第1の行の入力を32の論理「1」のソースに向け直す。
マルチプレクサ94ないし97は2つの32ビット入力を有す
る1つのマルチプレクサとして示され得る。一方の入力
は検査合計レジスタ30のセルの32のデータ出力の各々に
接続され、そして他方の入力は入力の導体の各々に結合
される電圧源のような32の論理「1」のソースに結合さ
れるためのものであろう。マルチプレクサの出力はアレ
イのシフトリンクの第1の行のデータ入力に結合される
32ビットバスであろう。マルチプレクサはNEW PRESET S
ELECT信号を受取るための入力を有するであろう。この
信号はCRC計算の第1のクロック計算の間に活性化さ
れ、そしてマルチプレクサが論理「1」のソースに結合
される入力を選択し、かつこれらの論理「1」をアレイ
のシフトリンクの第1の行の入力に結合させることを引
き起こす。CRC計算の第1のクロックサイクルの後、NEW
PRESET SELECT信号は、マルチプレクサが検査合計レジ
スタ30のデータ出力をアレイのデータ入力に結合する状
態に戻す。その後CRC計算は通常通り進む。
いてシフトリンクのアレイの第1の行の入力に同様に論
理「1」を強制し、アレイ32または60のシフトリンクの
第1の行の入力を32の論理「1」のソースに向け直す。
マルチプレクサ94ないし97は2つの32ビット入力を有す
る1つのマルチプレクサとして示され得る。一方の入力
は検査合計レジスタ30のセルの32のデータ出力の各々に
接続され、そして他方の入力は入力の導体の各々に結合
される電圧源のような32の論理「1」のソースに結合さ
れるためのものであろう。マルチプレクサの出力はアレ
イのシフトリンクの第1の行のデータ入力に結合される
32ビットバスであろう。マルチプレクサはNEW PRESET S
ELECT信号を受取るための入力を有するであろう。この
信号はCRC計算の第1のクロック計算の間に活性化さ
れ、そしてマルチプレクサが論理「1」のソースに結合
される入力を選択し、かつこれらの論理「1」をアレイ
のシフトリンクの第1の行の入力に結合させることを引
き起こす。CRC計算の第1のクロックサイクルの後、NEW
PRESET SELECT信号は、マルチプレクサが検査合計レジ
スタ30のデータ出力をアレイのデータ入力に結合する状
態に戻す。その後CRC計算は通常通り進む。
第13図は第8図ないし第12図の実施例のクロック信号
とすべての制御信号の関係を示すタイミング図を示す。
この図はCRC計算の第1のクロックサイクルに対するプ
リセット信号の関係が上の論議で与えられているので自
明である。
とすべての制御信号の関係を示すタイミング図を示す。
この図はCRC計算の第1のクロックサイクルに対するプ
リセット信号の関係が上の論議で与えられているので自
明である。
[ヘッダCRC計算] 直列データの伝送のための多くの応用では、ヘッダパ
ケットが用いられる。これらのヘッダパケットはアドレ
スされたノードを規定するビットであり、そのためにヘ
ッダパケットに取付けられるデータパケットが意図され
る。そのようなメッセージ機構はコンピュータ、端末お
よび周辺装置の回路網を作る際に一般に用いられる。第
14A図はCRCH101がヘッダビット100で計算されたCRCチェ
ックヒットの集まりで、そしてCRCD103はデータメッセ
ージ102で計算されたCRCチェックビットの集まりである
典型的なメッセージ編成の記号の図である。
ケットが用いられる。これらのヘッダパケットはアドレ
スされたノードを規定するビットであり、そのためにヘ
ッダパケットに取付けられるデータパケットが意図され
る。そのようなメッセージ機構はコンピュータ、端末お
よび周辺装置の回路網を作る際に一般に用いられる。第
14A図はCRCH101がヘッダビット100で計算されたCRCチェ
ックヒットの集まりで、そしてCRCD103はデータメッセ
ージ102で計算されたCRCチェックビットの集まりである
典型的なメッセージ編成の記号の図である。
CRCDチェックビットを計算する2つの異なる方法が一
般に用いられている。第1の方法はCRCDチェックビット
がデータメッセージ102だけで計算される第14A図に示さ
れている。第2の方法はCRCDチェックビットがヘッダ10
0、CRCDチェックビット101およびデータビット102を含
む全体のパケットで計算される第14B図に示される。2
つの方法のいずれかで別々のCRCHおよびCRCDチェックビ
ットパケットを計算することができるCRC計算器を有す
ることが有用である。
般に用いられている。第1の方法はCRCDチェックビット
がデータメッセージ102だけで計算される第14A図に示さ
れている。第2の方法はCRCDチェックビットがヘッダ10
0、CRCDチェックビット101およびデータビット102を含
む全体のパケットで計算される第14B図に示される。2
つの方法のいずれかで別々のCRCHおよびCRCDチェックビ
ットパケットを計算することができるCRC計算器を有す
ることが有用である。
フィードバックバス36にゲートを有し、または検査合
計レジスタ30の出力からその入力へと入力マルチプレク
サ86を介したバス91のような保持バスを有する、上に説
明されたかまたはこれから説明される実施例のいずれも
第14A図の方法に従ってCRCHおよびCRCDチェックビット
パケットを計算することができる。これは以下のように
して行なわれ、すなわち、ヘッダパケットが処理された
後にCRC計算を停止し、検査合計レジスタ30の存在して
いる内容物をCRCHパケットとして出力し、それから検査
合計レジスタをプリセットし、CRC計算がデータメッセ
ージ102が到着し始めるとき再び始まることを可能にす
ることによって行なわれる。
計レジスタ30の出力からその入力へと入力マルチプレク
サ86を介したバス91のような保持バスを有する、上に説
明されたかまたはこれから説明される実施例のいずれも
第14A図の方法に従ってCRCHおよびCRCDチェックビット
パケットを計算することができる。これは以下のように
して行なわれ、すなわち、ヘッダパケットが処理された
後にCRC計算を停止し、検査合計レジスタ30の存在して
いる内容物をCRCHパケットとして出力し、それから検査
合計レジスタをプリセットし、CRC計算がデータメッセ
ージ102が到着し始めるとき再び始まることを可能にす
ることによって行なわれる。
第15図の実施例は、シフトリンクの直列フォーマット
アレイ32を用いて第14B図の方法に従って別々のCRCHお
よびCRCDチェックビットパケットを計算することができ
るCRC計算器の1つの実施例である。第16図の実施例は
シフトリンクの並列フォーマットアレイ32を用いて第14
B図の方法に従って別々のCRCHおよびCRCDチェックビッ
トパケットを計算することができるCRC計算器の1つの
実施例である。これらの実施例の両方は第14B図の方法
を実現するために別々のスナップショットレジスタ106
およびマルチプレクサ108を用いる。これらの実施例の
共通部分は、シフトリンクの直列または並列のアレイの
どちらが用いられるかといった間に区別なく以下に説明
されるであろうが、これはこれが発明のこの局面の動作
と無関係であるからである。
アレイ32を用いて第14B図の方法に従って別々のCRCHお
よびCRCDチェックビットパケットを計算することができ
るCRC計算器の1つの実施例である。第16図の実施例は
シフトリンクの並列フォーマットアレイ32を用いて第14
B図の方法に従って別々のCRCHおよびCRCDチェックビッ
トパケットを計算することができるCRC計算器の1つの
実施例である。これらの実施例の両方は第14B図の方法
を実現するために別々のスナップショットレジスタ106
およびマルチプレクサ108を用いる。これらの実施例の
共通部分は、シフトリンクの直列または並列のアレイの
どちらが用いられるかといった間に区別なく以下に説明
されるであろうが、これはこれが発明のこの局面の動作
と無関係であるからである。
構造、動作および目的が他の実施例で上に説明された
検査合計レジスタと同一である検査合計レジスタ30はそ
のデータ入力が32ビット幅のバス88によって入力マルチ
プレクサ86のデータ出力に結合される。マルチプレクサ
86は3つの入力を有し、これらは同じ入力でそして上で
論じられた第8図のマルチプレクサ86のための入力の目
的と同じ役割を果たす。
検査合計レジスタと同一である検査合計レジスタ30はそ
のデータ入力が32ビット幅のバス88によって入力マルチ
プレクサ86のデータ出力に結合される。マルチプレクサ
86は3つの入力を有し、これらは同じ入力でそして上で
論じられた第8図のマルチプレクサ86のための入力の目
的と同じ役割を果たす。
検査合計レジスタ30の出力は第15図のように直接にま
たは第16図に示されるようにプリセット手段109を介し
てシフトリンクのアレイの入力に結合される。第15図の
実施例は論理「1」がCRC計算が開始される前のクロッ
クサイクルの間検査合計レジスタ30にロードされるプリ
セット方法を用いる。これは、検査合計レジスタ30に32
の論理「1」をロードするためにCRC計算の始まる前の
クロックサイクルの間、マルチプレクサ86の入力Cを選
択するようにINPUT SELECT信号を活性化することによっ
てなされる。第16図の実施例は、第9図ないし第12図と
関連して上に説明されたCRC計算方法の第1のクロック
サイクルの間、シフトリンクのアレイの入力に論理
「1」を強制するプリセット方法を用いる。プリセット
手段109は第9図および第10図のORゲート90ないし93の
ようなORゲートかまたは、第11図および第12図に示され
るマルチプレクサ94ないし97のようなマルチプレクサの
どちらでもあり得る。いずれかのプリセット方法および
装置は第15図または第16図の実施例のどちらにでも用い
られてもよい。
たは第16図に示されるようにプリセット手段109を介し
てシフトリンクのアレイの入力に結合される。第15図の
実施例は論理「1」がCRC計算が開始される前のクロッ
クサイクルの間検査合計レジスタ30にロードされるプリ
セット方法を用いる。これは、検査合計レジスタ30に32
の論理「1」をロードするためにCRC計算の始まる前の
クロックサイクルの間、マルチプレクサ86の入力Cを選
択するようにINPUT SELECT信号を活性化することによっ
てなされる。第16図の実施例は、第9図ないし第12図と
関連して上に説明されたCRC計算方法の第1のクロック
サイクルの間、シフトリンクのアレイの入力に論理
「1」を強制するプリセット方法を用いる。プリセット
手段109は第9図および第10図のORゲート90ないし93の
ようなORゲートかまたは、第11図および第12図に示され
るマルチプレクサ94ないし97のようなマルチプレクサの
どちらでもあり得る。いずれかのプリセット方法および
装置は第15図または第16図の実施例のどちらにでも用い
られてもよい。
シフトリンク32または60のアレイはここに説明される
シフトリンクのアレイのいずれであってもよい。アレイ
32または60が直列のフォーマットデータメッセージかま
たは並列のフォーマットデータメッセージのどちらを処
理するかに関係なく、アレイの出力はCRCHチェックビッ
トのコピーのための記憶ロケーションとしての役割を果
たすスナップショットレジスタ106の32のデータ入力に
結合される。スナップショットレジスタは検査合計レジ
スタで用いられたもののような複数個のメモリセルから
なるが、当業者は他の型のメモリセルが用いられてもよ
いことを認めるであろう。スナップショットレジスタ10
6のメモリセルのクロック入力は、END OF HEADERクロッ
ク信号に結合するためのものであり、この信号はすべて
のヘッダビットが処理された後にシフトリンク32または
60のアレイの出力をスナップショットレジスタ106にロ
ードするように働き、そしてバス36上のアレイの出力は
CRCHビットからなる。これらのCRCHビットは第6図のマ
ルチプレクサ72のようなマルチプレクサを用いるか、ま
たは当業者にとって明らかであろう他の方法でバイト単
位でCRCH出力バス110上に出力され得る。
シフトリンクのアレイのいずれであってもよい。アレイ
32または60が直列のフォーマットデータメッセージかま
たは並列のフォーマットデータメッセージのどちらを処
理するかに関係なく、アレイの出力はCRCHチェックビッ
トのコピーのための記憶ロケーションとしての役割を果
たすスナップショットレジスタ106の32のデータ入力に
結合される。スナップショットレジスタは検査合計レジ
スタで用いられたもののような複数個のメモリセルから
なるが、当業者は他の型のメモリセルが用いられてもよ
いことを認めるであろう。スナップショットレジスタ10
6のメモリセルのクロック入力は、END OF HEADERクロッ
ク信号に結合するためのものであり、この信号はすべて
のヘッダビットが処理された後にシフトリンク32または
60のアレイの出力をスナップショットレジスタ106にロ
ードするように働き、そしてバス36上のアレイの出力は
CRCHビットからなる。これらのCRCHビットは第6図のマ
ルチプレクサ72のようなマルチプレクサを用いるか、ま
たは当業者にとって明らかであろう他の方法でバイト単
位でCRCH出力バス110上に出力され得る。
第14B図のCRCD計算方法を実現するために、CRCHビッ
トは生入力としてシフトリンクのアレイに供給され戻さ
れなくてはならず、そのためCRCビットはCRCHビットで
計算されてもよい。これがマルチプレクサ108およびそ
れに接続される回路の目的である。この回路の構造はこ
こで簡単に説明され、それに続いて第14A図の方法を実
現する際の、および第14B図の方法を実現する際のその
動作の説明がなされる。
トは生入力としてシフトリンクのアレイに供給され戻さ
れなくてはならず、そのためCRCビットはCRCHビットで
計算されてもよい。これがマルチプレクサ108およびそ
れに接続される回路の目的である。この回路の構造はこ
こで簡単に説明され、それに続いて第14A図の方法を実
現する際の、および第14B図の方法を実現する際のその
動作の説明がなされる。
第15図の実施例では、スナップショットレジスタ106
はシフトレジスタとして接続され、そのためCRCHビット
はライン112上で直列様式でマルチプレクサ108の1つの
入力にシフトされてもよい。マルチプレクサ108の他方
の入力は直列生入力データのソースに結合される。ライ
ン114の選択信号はマルチプレクサ108がライン116のメ
ッセージの生データかまたはライン112のCRCHデータの
いずれかをアレイ32の生データ入力118に結合すること
を引き起こす。
はシフトレジスタとして接続され、そのためCRCHビット
はライン112上で直列様式でマルチプレクサ108の1つの
入力にシフトされてもよい。マルチプレクサ108の他方
の入力は直列生入力データのソースに結合される。ライ
ン114の選択信号はマルチプレクサ108がライン116のメ
ッセージの生データかまたはライン112のCRCHデータの
いずれかをアレイ32の生データ入力118に結合すること
を引き起こす。
スナップショットレジスタ106がマルチプレクサ116の
4つの入力ポートに結合される4つの1バイト幅の出力
バス118ないし121を有することを除いて、同様の状況が
第16図の実施例で存在する。並列フォーマット入力デー
タビットD7ないしD0はバス122によってマルチプレクサ1
16の入力ポートに結合され、そしてライン124上のBYTE
SELECT信号はマルチプレクサ116の入力のどれがシフト
リンクのアレイの生データ入力126に結合されるべきか
を制御する。
4つの入力ポートに結合される4つの1バイト幅の出力
バス118ないし121を有することを除いて、同様の状況が
第16図の実施例で存在する。並列フォーマット入力デー
タビットD7ないしD0はバス122によってマルチプレクサ1
16の入力ポートに結合され、そしてライン124上のBYTE
SELECT信号はマルチプレクサ116の入力のどれがシフト
リンクのアレイの生データ入力126に結合されるべきか
を制御する。
第15図および第16図の実施例は第14A図の態様でCRCD
チェックビットを計算するのに用いられ得る。まず、プ
リセット動作がなされなくてはならない。第15図の実施
例に関して特定に、入力Cを選択するためにINPUT SELE
CT信号を活性化することによって、32の論理「1」はCR
C計算の準備のために検査合計レジスタ30にロードされ
るであろう。もし入力マルチプレクサ86が第15図の入力
を有するように第16図で修正されるなら、第16図の実施
例は同じ態様でプリセットを行なうことができ、そして
プリセット動作は同じ態様で行なわれるであろう。第15
図または第16図のいずれかの実施例は、以前に説明され
た態様でライン126上にNEW PRESET信号を活性化するこ
とによって新しいプリセット手段109を用いてプリセッ
トされ得る。次に、A入力を選択するためにINPUT SELE
CT信号を活性化することによってCRC計算は始められ得
る。入力AはCRC計算の間ヘッダビット100で選択される
であろう。
チェックビットを計算するのに用いられ得る。まず、プ
リセット動作がなされなくてはならない。第15図の実施
例に関して特定に、入力Cを選択するためにINPUT SELE
CT信号を活性化することによって、32の論理「1」はCR
C計算の準備のために検査合計レジスタ30にロードされ
るであろう。もし入力マルチプレクサ86が第15図の入力
を有するように第16図で修正されるなら、第16図の実施
例は同じ態様でプリセットを行なうことができ、そして
プリセット動作は同じ態様で行なわれるであろう。第15
図または第16図のいずれかの実施例は、以前に説明され
た態様でライン126上にNEW PRESET信号を活性化するこ
とによって新しいプリセット手段109を用いてプリセッ
トされ得る。次に、A入力を選択するためにINPUT SELE
CT信号を活性化することによってCRC計算は始められ得
る。入力AはCRC計算の間ヘッダビット100で選択される
であろう。
ヘッタビットの処理の後、もし第14A図の方法がCRCD
チェックビットを計算するために用いられるべきなら、
入力BはCRCHビットが検査合計レジスタ30から出力され
るときクロックサイクルの間選択されるであろう。CRCH
を出力するためのこの出力処理は、スナップショットレ
ジスタに結合される出力バス構造の型に依存して直列ま
たは並列のシフトアレイのための上で説明された方法の
いずれによってでも可能である。
チェックビットを計算するために用いられるべきなら、
入力BはCRCHビットが検査合計レジスタ30から出力され
るときクロックサイクルの間選択されるであろう。CRCH
を出力するためのこの出力処理は、スナップショットレ
ジスタに結合される出力バス構造の型に依存して直列ま
たは並列のシフトアレイのための上で説明された方法の
いずれによってでも可能である。
CRCHビットが出力された後、検査合計レジスタは、も
し第14A図の方法が行なわれるなら再びすべて「1」に
プリセットされる。データメッセージ102の生入力デー
タはそれからアレイ32または60に入力され、そしてCRCD
チェックビットを計算するために処理される。
し第14A図の方法が行なわれるなら再びすべて「1」に
プリセットされる。データメッセージ102の生入力デー
タはそれからアレイ32または60に入力され、そしてCRCD
チェックビットを計算するために処理される。
第14B図の方法がもし行なわれるべきなら、プリセッ
ト段階および計算段階はCRCHを計算するための上と同じ
である。しかしながら、CRCHチェックビットの計算を完
了すると、それらはスナップショットレジスタ106にコ
ピーされなくてはならず、そのためそれらは出力される
一方、同時にシフトリンクのアレイの生データ入力に供
給され戻される。これを行なうために、END OF HEADER
信号が活性化され、これはCRCHビットがスナップショッ
トレジスタ106にロードされることを引き起こす。END O
F HEADERクロック信号は検査合計レジスタに供給される
クロック信号、すなわちBIT CLOCK信号であり得、これ
はヘッダの端部が検出されるときそれを通過させること
を可能にするだけのゲートを介してゲートされる。これ
はCRCHビットのコピーがスナップショットレジスタ106
でなされ、そしてバス112上で1度に1ビット外にシフ
トされることを引き起こす。CRCHビットの別のコピーは
ヘッダの端部でバス36を介して検査合計レジスタ30に入
力されるであろう。第15図の実施例の場合、マルチプレ
クサ116はライン114上のSELECT信号によってライン112
上の直列データの流れを生データ入力118に結合するこ
とを引き起こされる。こうして、CRCHチェックビットは
アレイに入力され、そして以前に説明された様式で動作
される。すべてのCRCHチェックビットが処理された後、
マルチプレクサ108はSELECT信号によってその出力118を
ライン117上のデータメッセージビット102に切換え戻す
ことを引き起こされる。メッセージ102のデータビット
のすべてが処理された後、CRCDチェックビットは検査合
計レジスタ30に属し、上に説明されたいずれかの態様で
出力され得る。
ト段階および計算段階はCRCHを計算するための上と同じ
である。しかしながら、CRCHチェックビットの計算を完
了すると、それらはスナップショットレジスタ106にコ
ピーされなくてはならず、そのためそれらは出力される
一方、同時にシフトリンクのアレイの生データ入力に供
給され戻される。これを行なうために、END OF HEADER
信号が活性化され、これはCRCHビットがスナップショッ
トレジスタ106にロードされることを引き起こす。END O
F HEADERクロック信号は検査合計レジスタに供給される
クロック信号、すなわちBIT CLOCK信号であり得、これ
はヘッダの端部が検出されるときそれを通過させること
を可能にするだけのゲートを介してゲートされる。これ
はCRCHビットのコピーがスナップショットレジスタ106
でなされ、そしてバス112上で1度に1ビット外にシフ
トされることを引き起こす。CRCHビットの別のコピーは
ヘッダの端部でバス36を介して検査合計レジスタ30に入
力されるであろう。第15図の実施例の場合、マルチプレ
クサ116はライン114上のSELECT信号によってライン112
上の直列データの流れを生データ入力118に結合するこ
とを引き起こされる。こうして、CRCHチェックビットは
アレイに入力され、そして以前に説明された様式で動作
される。すべてのCRCHチェックビットが処理された後、
マルチプレクサ108はSELECT信号によってその出力118を
ライン117上のデータメッセージビット102に切換え戻す
ことを引き起こされる。メッセージ102のデータビット
のすべてが処理された後、CRCDチェックビットは検査合
計レジスタ30に属し、上に説明されたいずれかの態様で
出力され得る。
CRCHおよびCRCDチェックビット計算を行なうための好
ましい実施例は、直列のアレイフォーマットで第17図に
そして並列のアレイフォーマットで第18図に示されてい
る。各実施例はそのデータ出力がバス88によって検査合
計レジスタ32のデータ入力に結合されている入力マルチ
プレクサ86を用いる。各マルチプレクサ86はA入力がシ
フトリンク32または60のアレイの出力に結合されてい
る。各マルチプレクサはまた入力Cがバス130によって
検査合計レジスタ30のデータ出力に結合されている。最
後に、各マルチプレクサ86はB入力が剰余多項式のビッ
トパターンに結合される。このビットパターンはCRCチ
ェックビットがデータメッセージで計算され、そしてそ
のチェックビットがすべて論理「1」のプリセット状態
から始まるとき、結果として生じる標準の剰余多項式の
係数を表わす。
ましい実施例は、直列のアレイフォーマットで第17図に
そして並列のアレイフォーマットで第18図に示されてい
る。各実施例はそのデータ出力がバス88によって検査合
計レジスタ32のデータ入力に結合されている入力マルチ
プレクサ86を用いる。各マルチプレクサ86はA入力がシ
フトリンク32または60のアレイの出力に結合されてい
る。各マルチプレクサはまた入力Cがバス130によって
検査合計レジスタ30のデータ出力に結合されている。最
後に、各マルチプレクサ86はB入力が剰余多項式のビッ
トパターンに結合される。このビットパターンはCRCチ
ェックビットがデータメッセージで計算され、そしてそ
のチェックビットがすべて論理「1」のプリセット状態
から始まるとき、結果として生じる標準の剰余多項式の
係数を表わす。
シフトリンクのアレイはここで説明されるアレイの構
造のいかなるものでもあり得る。シフトリンクのアレイ
の出力は入力マルチプレクサ86を介してフィードバック
バス36によって検査合計レジスタ30の入力に結合され
る。アレイ32または60の入力は以前に説明されたプリセ
ット手段と同じ構造、動作および目的を有するプリセッ
ト手段109を通って検査合計レジスタ30のデータ出力に
結合される。検査合計レジスタ30のデータ出力はまた出
力バス132に結合され、これはいずれの構造も有するこ
とができ、CRCデータを検査合計レジスタから出力する
ために上に述べられたいずれの態様でも用いられ得る。
造のいかなるものでもあり得る。シフトリンクのアレイ
の出力は入力マルチプレクサ86を介してフィードバック
バス36によって検査合計レジスタ30の入力に結合され
る。アレイ32または60の入力は以前に説明されたプリセ
ット手段と同じ構造、動作および目的を有するプリセッ
ト手段109を通って検査合計レジスタ30のデータ出力に
結合される。検査合計レジスタ30のデータ出力はまた出
力バス132に結合され、これはいずれの構造も有するこ
とができ、CRCデータを検査合計レジスタから出力する
ために上に述べられたいずれの態様でも用いられ得る。
第17図および第18図の実施例がCRCHチェックビットを
計算し、そしてCRCDチェックビットを計算するように働
く態様は第19図のタイミング図を参照することによって
最良に理解される。
計算し、そしてCRCDチェックビットを計算するように働
く態様は第19図のタイミング図を参照することによって
最良に理解される。
[第14A図の方法] 第14A図の態様でCRCHおよびCRCDを計算するために、
第17図および第18図の実施例のシフトリンクのアレイは
同じクロックサイクルの間NEW PRESET信号を活性化する
ことによってすべて論理「1」にプリセットされ、ヘッ
ダパケットの第1のビットまたはバイトは第19図の時間
ライン2で示されるように到着する。それに代わる型の
プリセット装置を用いる他の実施例では、入力選択信号
OLD PRESETは32の論理「1」のソースに結合される入力
マルチプレクサの入力を選択するように活性化される。
第17図および第18図の実施例のシフトリンクのアレイは
同じクロックサイクルの間NEW PRESET信号を活性化する
ことによってすべて論理「1」にプリセットされ、ヘッ
ダパケットの第1のビットまたはバイトは第19図の時間
ライン2で示されるように到着する。それに代わる型の
プリセット装置を用いる他の実施例では、入力選択信号
OLD PRESETは32の論理「1」のソースに結合される入力
マルチプレクサの入力を選択するように活性化される。
次に、COMPUTE入力選択信号は入力Aが選択されるこ
とを引き起こすように設定され、そしてCRCHチェックビ
ットはヘッダビットで計算される。ヘッダパケット100
のすべてのビットが処理された後、CRCHチェックビット
は検査合計レジスタに属し、そして第17図の実施例の場
合CRC出力バスにシフトして出されてもよく、またはこ
こで初期に説明された装置を用いて1度に1バイト出力
されてもよい。この処理は第19図の時間ライン4上の信
号MUXまたはSHIFTを活性化することによって実現され
る。その代わりの実施例では、すべての32ビットのCRCH
チェックビットは並列に出力されてもよい。CRCHビット
が出力されている間、入力マルチプレクサ86は時間ライ
ン6で例示されるHOLD信号の断定によって検査合計レジ
スタ入力に結合するための入力Cを選択することを引き
起こされる。これはCRCHビットが第14A図の方法を実現
するために出力される時間の間、検査合計レジスタの内
容物を一定に維持する。
とを引き起こすように設定され、そしてCRCHチェックビ
ットはヘッダビットで計算される。ヘッダパケット100
のすべてのビットが処理された後、CRCHチェックビット
は検査合計レジスタに属し、そして第17図の実施例の場
合CRC出力バスにシフトして出されてもよく、またはこ
こで初期に説明された装置を用いて1度に1バイト出力
されてもよい。この処理は第19図の時間ライン4上の信
号MUXまたはSHIFTを活性化することによって実現され
る。その代わりの実施例では、すべての32ビットのCRCH
チェックビットは並列に出力されてもよい。CRCHビット
が出力されている間、入力マルチプレクサ86は時間ライ
ン6で例示されるHOLD信号の断定によって検査合計レジ
スタ入力に結合するための入力Cを選択することを引き
起こされる。これはCRCHビットが第14A図の方法を実現
するために出力される時間の間、検査合計レジスタの内
容物を一定に維持する。
CRCHビットの出力が完了すると、検査合計レジスタ
は、第19図の時間ライン7に示されるNEW PRESET信号を
活性化するかまたは第19図の時間ライン8に示されるデ
ータメッセージが始まる前のクロックサイクルの間、OL
D PRESET信号を活性化することによってすべて「1」で
再びプリセットされる。その後、入力マルチプレクサは
COMPUTE信号の活性化によって検査合計レジスタ30の入
力に結合するためのA入力を再び選択することを引き起
こされる。これはCRC計算が生データ入力118および126
で到着するデータメッセージ102の生入力データビット
で再び始まることを引き起こす。メッセージ102のすべ
てのデータビットが処理された後、CRCDチェックビット
は検査合計レジスタ30で提示されるであろう。それは第
14A図の方法につきCRCHおよびCRCDチェックビットの計
算の方法を終える。
は、第19図の時間ライン7に示されるNEW PRESET信号を
活性化するかまたは第19図の時間ライン8に示されるデ
ータメッセージが始まる前のクロックサイクルの間、OL
D PRESET信号を活性化することによってすべて「1」で
再びプリセットされる。その後、入力マルチプレクサは
COMPUTE信号の活性化によって検査合計レジスタ30の入
力に結合するためのA入力を再び選択することを引き起
こされる。これはCRC計算が生データ入力118および126
で到着するデータメッセージ102の生入力データビット
で再び始まることを引き起こす。メッセージ102のすべ
てのデータビットが処理された後、CRCDチェックビット
は検査合計レジスタ30で提示されるであろう。それは第
14A図の方法につきCRCHおよびCRCDチェックビットの計
算の方法を終える。
[第14B図の方法] 第14B図の方法に従ってCRCHおよびCRCDチェックビッ
トを計算するために、第17図および第18図の実施例が以
下のように動作される。NEW PRESET信号は以前のように
そして第19図の時間ライン2で示されるようにヘッダの
第1のクロックサイクルの間活性化される。COMPUTE入
力選択信号は第19図の時間ライン1で示されるように同
時に活性化される。これはCRC検査合計レジスタの入力
に結合するための入力マルチプレクサの入力バスAを選
択する。CRCH計算はそれから以前に説明されたように進
む。CRCHチェックビットはすべてのヘッダビットが処理
された後に検査合計レジスタに与えられるであろう。
トを計算するために、第17図および第18図の実施例が以
下のように動作される。NEW PRESET信号は以前のように
そして第19図の時間ライン2で示されるようにヘッダの
第1のクロックサイクルの間活性化される。COMPUTE入
力選択信号は第19図の時間ライン1で示されるように同
時に活性化される。これはCRC検査合計レジスタの入力
に結合するための入力マルチプレクサの入力バスAを選
択する。CRCH計算はそれから以前に説明されたように進
む。CRCHチェックビットはすべてのヘッダビットが処理
された後に検査合計レジスタに与えられるであろう。
以前のように、これらのCRCHチェックビットは、それ
らが出力される間検査合計レジスタ30で一定に保持され
なくてはならない。しかしながら、それらのコピーを保
持するためのスナップショットレジスタがないので、入
力マルチプレクサ86がHOLD信号の活性化によって入力C
を選択することを強制されなくてはならず、そのため検
査合計レジスタ30のCRCHビットはそれらがすべて出力さ
れるまで変化なく再び循環される。CRCHバイトのための
出力処理は以前に説明された処理と同一であり、そして
第19図の時間ライン4に示される信号の活性化によって
実現される。
らが出力される間検査合計レジスタ30で一定に保持され
なくてはならない。しかしながら、それらのコピーを保
持するためのスナップショットレジスタがないので、入
力マルチプレクサ86がHOLD信号の活性化によって入力C
を選択することを強制されなくてはならず、そのため検
査合計レジスタ30のCRCHビットはそれらがすべて出力さ
れるまで変化なく再び循環される。CRCHバイトのための
出力処理は以前に説明された処理と同一であり、そして
第19図の時間ライン4に示される信号の活性化によって
実現される。
いくつかのクロックサイクルは、CRCHビットでのいか
なるCRCDチェックビット計算もなされることなしに、CR
CHビットを出力するこの処理の間通過しているだろう。
第14B図の方法を実現するために、CRCDチェックビット
はヘッダ100、CRCHビット101およびデータパケット102
を含む全体のパイケットで計算されなくてはならない。
これを達成するために、入力マルチプレクサはメッセー
ジ99のデータ部分102の入力の第1のクロックサイクル
の直前のクロックサイクルの間、すべてのCRCHビットを
出力する最後で入力Bを選択するように強制される。こ
れは第19図の時間ライン5で例示されるINITIATE REMAI
NDR信号の断定によってなされる。これは、そのビット
パターンがもしCRCDデータビットの計算がヘッダの第1
のビット以来ずっと持続していたなら、検査合計レジス
タ内にやはり存在しているであろう時と全く同じ時に検
査合計レジスタ30に剰余多項式ビットパターンをロード
する。言い換えれば、もし入力Cがそれの出力の間、検
査合計レジスタ内のCRCHビットを一定に保持するために
ヘッダの端部で選択されなかったならば、すべてのCRCH
チェックビットが処理されてしまうまでに検査合計レジ
スタ内に結果として生じたであろうビットは、剰余多項
式ビットパターンのビットであろう。このビットパター
ンは正確に予測可能であることが周知であり、なぜな
ら、メッセージのみで計算されるCRCビットを加えたCRC
計算がデータメッセージで行なわれるときはいつでも、
結果として生じるCRCビットは自動ディジタルネットワ
ークIIおよびエサーネット基準のための生成多項式を規
定する、ここで引用により援用された基準で公表される
周知の多項式を示すからである。
なるCRCDチェックビット計算もなされることなしに、CR
CHビットを出力するこの処理の間通過しているだろう。
第14B図の方法を実現するために、CRCDチェックビット
はヘッダ100、CRCHビット101およびデータパケット102
を含む全体のパイケットで計算されなくてはならない。
これを達成するために、入力マルチプレクサはメッセー
ジ99のデータ部分102の入力の第1のクロックサイクル
の直前のクロックサイクルの間、すべてのCRCHビットを
出力する最後で入力Bを選択するように強制される。こ
れは第19図の時間ライン5で例示されるINITIATE REMAI
NDR信号の断定によってなされる。これは、そのビット
パターンがもしCRCDデータビットの計算がヘッダの第1
のビット以来ずっと持続していたなら、検査合計レジス
タ内にやはり存在しているであろう時と全く同じ時に検
査合計レジスタ30に剰余多項式ビットパターンをロード
する。言い換えれば、もし入力Cがそれの出力の間、検
査合計レジスタ内のCRCHビットを一定に保持するために
ヘッダの端部で選択されなかったならば、すべてのCRCH
チェックビットが処理されてしまうまでに検査合計レジ
スタ内に結果として生じたであろうビットは、剰余多項
式ビットパターンのビットであろう。このビットパター
ンは正確に予測可能であることが周知であり、なぜな
ら、メッセージのみで計算されるCRCビットを加えたCRC
計算がデータメッセージで行なわれるときはいつでも、
結果として生じるCRCビットは自動ディジタルネットワ
ークIIおよびエサーネット基準のための生成多項式を規
定する、ここで引用により援用された基準で公表される
周知の多項式を示すからである。
いかなるプリセットもこの方法でデータパケット102
のビットを処理する前に行なわれない。データパケット
102のすべてのビットが処理された後、CRCDチェックビ
ットは検査合計レジスタ内に属し、そしてここで説明さ
れたいずれかの態様で出力され得る。
のビットを処理する前に行なわれない。データパケット
102のすべてのビットが処理された後、CRCDチェックビ
ットは検査合計レジスタ内に属し、そしてここで説明さ
れたいずれかの態様で出力され得る。
[可変ビット境界CRC計算] 多数のバイトメッセージを回路網の他のノードに送る
ことがコンピュータ回路網で一般的であり、そこでは第
1のバイトの第1のいくつかのビットがシステムの種々
のノードによって飛んで変化されることを被る。これは
特にトークンリング回路網で一般的である。これらのビ
ットは飛んで変化を受けるので、それらは間違ってエラ
ーであると仮定されないようにCRC計算に含まれてはな
らない。
ことがコンピュータ回路網で一般的であり、そこでは第
1のバイトの第1のいくつかのビットがシステムの種々
のノードによって飛んで変化されることを被る。これは
特にトークンリング回路網で一般的である。これらのビ
ットは飛んで変化を受けるので、それらは間違ってエラ
ーであると仮定されないようにCRC計算に含まれてはな
らない。
データメッセージの第1のバイトの可変の数のビット
でCRCチェックビットを計算するための1つの並列フォ
ーマット実施例は、シフトリンクの第1のいくつかの行
を透明にするべきであろう。これは検査合計レジスタを
すべて論理「1」にプリセットした後に行なわれるであ
ろう。論理「1」は、CRC計算に含まれるべき生入力デ
ータの第1のビットに結合されるシフトリンクの第1の
活動している行に送られる。しかしながら、シフトリン
クの透明な行のシフト作用は、この実施例を用いるため
には不能化されなくてはならず、そのため透明な行の最
下位ビットは、論理「1」が透明な行の左にシフトさ
れ、論理「0」では満されない。この実施例は次に説明
される実施例より実現するのは難しい。
でCRCチェックビットを計算するための1つの並列フォ
ーマット実施例は、シフトリンクの第1のいくつかの行
を透明にするべきであろう。これは検査合計レジスタを
すべて論理「1」にプリセットした後に行なわれるであ
ろう。論理「1」は、CRC計算に含まれるべき生入力デ
ータの第1のビットに結合されるシフトリンクの第1の
活動している行に送られる。しかしながら、シフトリン
クの透明な行のシフト作用は、この実施例を用いるため
には不能化されなくてはならず、そのため透明な行の最
下位ビットは、論理「1」が透明な行の左にシフトさ
れ、論理「0」では満されない。この実施例は次に説明
される実施例より実現するのは難しい。
この発明の1つの重要な局面は、融通性のある手段を
提供することであり、それによって、それでCRCビット
の計算が所望されるメッセージの第1のバイトの1つま
たは2つ以上のビットが無視されてもよい。いくつかの
初期のビットが無視されるべきバイトクロックを用いた
並列のフォーマット計算での問題は、シフトリンクの適
当な行をすべて「1」にプリセットすることである。適
当な行とは(第7図のゲート62のような)その入力ゲー
トの入力として、メッセージの第1のバイトの生入力デ
ータの第1のデータビットを有する行であり、これはCR
C計算に含められるべきである。第20図はこの発明の他
の重要な機能を実現する装置とともにこの機能を達成す
るための装置を例示する。
提供することであり、それによって、それでCRCビット
の計算が所望されるメッセージの第1のバイトの1つま
たは2つ以上のビットが無視されてもよい。いくつかの
初期のビットが無視されるべきバイトクロックを用いた
並列のフォーマット計算での問題は、シフトリンクの適
当な行をすべて「1」にプリセットすることである。適
当な行とは(第7図のゲート62のような)その入力ゲー
トの入力として、メッセージの第1のバイトの生入力デ
ータの第1のデータビットを有する行であり、これはCR
C計算に含められるべきである。第20図はこの発明の他
の重要な機能を実現する装置とともにこの機能を達成す
るための装置を例示する。
可変ビット境界機能はORゲート110ないし125によって
実現される。これらのORゲートがビットに結合されるシ
フトリンクの行が無視されて透明になることを引き起こ
す態様が具体例によって最良に例示されている。読者は
同時に第21図を参照すべきで、この図は可変ビット境界
機能を実現するのに必要な制御信号のタイミング図であ
る。第20図に例示される他の装置を制御し、第20図の実
施例が実施できるこの発明の他の機能を達成するために
必要な制御信号が以前のようにここで説明される。
実現される。これらのORゲートがビットに結合されるシ
フトリンクの行が無視されて透明になることを引き起こ
す態様が具体例によって最良に例示されている。読者は
同時に第21図を参照すべきで、この図は可変ビット境界
機能を実現するのに必要な制御信号のタイミング図であ
る。第20図に例示される他の装置を制御し、第20図の実
施例が実施できるこの発明の他の機能を達成するために
必要な制御信号が以前のようにここで説明される。
プリセット論理「1」を次の行に送るように排他的OR
ゲートの行を透明にするために、論理「0」は影響を受
けた行、すなわち無視されるべきビットに結合される行
のこれらの排他的ORゲートの入力の1つに与えられなく
てはならない。これはORゲート110ないし117およびこれ
らのORゲートの各々に結合されるIGNORE信号の機能であ
る。第1の3つのデータビットD7ないしD5はCRC計算で
無視されるべきであると仮定する。CRC計算の第1のク
ロックサイクルは第21図の時間t0とt1の間にあると任
意に仮定される。第21図の時間ライン1に例示されるBY
TE CLOCK信号の遷移130で始まるCRC計算の第1のクロッ
クサイクルの間、入力マルチプレクサ86のためのCALCUL
ATE制御信号は入力Aを選択するために断定され、CRC計
算が時間ライン3で例示されるように始まることを可能
にする。第1のクロックサイクルの間ではまた、時間ラ
イン2で例示されるNEW PRESET信号が断定され、すべて
の論理「1」を入力ゲート62を介して入力データビット
D7に結合されるシフトリンクの第1の行のデータ入力に
強制する。CRC計算の第1のクロックサイクルの間もま
た、第1のクロックサイクルの間のみであるが、IGNORE
7、IGNORE6およびIGNORE5信号が断定される。データビ
ットD7、D6およびD5の論理状態に関係なく、論理「1」
はライン132、134および136で存在するであろう。こう
して入力ゲート62、64および65はそれらの入力で2つの
論理「1」を受取り、これはプリセットゲート138、140
および142がそれらの出力をNEW PRESET信号の論理
「1」の状態によって論理「1」に強制するからであ
る。これはこのときの検査合計レジスタ30の内容物に関
係なく正しい。それゆえ、排他的ORゲート62、64および
65の出力ラインはCRC計算の第1のクロックサイクルの
間、論理「0」であろう。プリセットゲート109はそれ
に対してそれらが論理「1」状態に接続される、シフト
リンクの第1の行のすべてのデータ入力を強制する。こ
れらの論理「1」は、それらの共通の入力ライン150の
論理「0」による逆転をせずに、ワイヤであるすべての
シフトリンクによって第2の行に直接に送られ、そして
排他的ORゲートであるすべてのシフトリンクに送られ
る。この共通の入力ラインは、第21図の時間ライン4で
示されるすべてのCRC計算の間、論理「1」状態であるS
HIFT否定信号でAND処理された後の入力ゲート62からの
出力信号を保持する。
ゲートの行を透明にするために、論理「0」は影響を受
けた行、すなわち無視されるべきビットに結合される行
のこれらの排他的ORゲートの入力の1つに与えられなく
てはならない。これはORゲート110ないし117およびこれ
らのORゲートの各々に結合されるIGNORE信号の機能であ
る。第1の3つのデータビットD7ないしD5はCRC計算で
無視されるべきであると仮定する。CRC計算の第1のク
ロックサイクルは第21図の時間t0とt1の間にあると任
意に仮定される。第21図の時間ライン1に例示されるBY
TE CLOCK信号の遷移130で始まるCRC計算の第1のクロッ
クサイクルの間、入力マルチプレクサ86のためのCALCUL
ATE制御信号は入力Aを選択するために断定され、CRC計
算が時間ライン3で例示されるように始まることを可能
にする。第1のクロックサイクルの間ではまた、時間ラ
イン2で例示されるNEW PRESET信号が断定され、すべて
の論理「1」を入力ゲート62を介して入力データビット
D7に結合されるシフトリンクの第1の行のデータ入力に
強制する。CRC計算の第1のクロックサイクルの間もま
た、第1のクロックサイクルの間のみであるが、IGNORE
7、IGNORE6およびIGNORE5信号が断定される。データビ
ットD7、D6およびD5の論理状態に関係なく、論理「1」
はライン132、134および136で存在するであろう。こう
して入力ゲート62、64および65はそれらの入力で2つの
論理「1」を受取り、これはプリセットゲート138、140
および142がそれらの出力をNEW PRESET信号の論理
「1」の状態によって論理「1」に強制するからであ
る。これはこのときの検査合計レジスタ30の内容物に関
係なく正しい。それゆえ、排他的ORゲート62、64および
65の出力ラインはCRC計算の第1のクロックサイクルの
間、論理「0」であろう。プリセットゲート109はそれ
に対してそれらが論理「1」状態に接続される、シフト
リンクの第1の行のすべてのデータ入力を強制する。こ
れらの論理「1」は、それらの共通の入力ライン150の
論理「0」による逆転をせずに、ワイヤであるすべての
シフトリンクによって第2の行に直接に送られ、そして
排他的ORゲートであるすべてのシフトリンクに送られ
る。この共通の入力ラインは、第21図の時間ライン4で
示されるすべてのCRC計算の間、論理「1」状態であるS
HIFT否定信号でAND処理された後の入力ゲート62からの
出力信号を保持する。
第1の行の共通の入力ライン150はまた、第2の行の
最下位のビット位置のシフトリンクのための入力データ
ビットを保持する。このビットもまた適切に働くための
配置では論理「1」でなくてはならないので、別のORゲ
ート118は共通のライン150と第2の行の最下位ビットの
位置のシフトリンクのデータ入力との間に置かれる。こ
のORゲート118は一方の入力が共通の入力ライン150に結
合され、そして別の入力はIGNORE7信号を所持するライ
ンに結合される。このORゲートの出力はシフトリンクの
第2の行の最下位ビット位置のシフトリンクの入力に結
合される。IGNORE7信号はCRC計算の第1のクロックサイ
クルの間論理「1」であるので、第2の行の最下位ビッ
ト位置のシフトリンクの入力に「1」が強制されるであ
ろう。
最下位のビット位置のシフトリンクのための入力データ
ビットを保持する。このビットもまた適切に働くための
配置では論理「1」でなくてはならないので、別のORゲ
ート118は共通のライン150と第2の行の最下位ビットの
位置のシフトリンクのデータ入力との間に置かれる。こ
のORゲート118は一方の入力が共通の入力ライン150に結
合され、そして別の入力はIGNORE7信号を所持するライ
ンに結合される。このORゲートの出力はシフトリンクの
第2の行の最下位ビット位置のシフトリンクの入力に結
合される。IGNORE7信号はCRC計算の第1のクロックサイ
クルの間論理「1」であるので、第2の行の最下位ビッ
ト位置のシフトリンクの入力に「1」が強制されるであ
ろう。
アレイのシフトリンクの各行はゲート118のようなOR
ゲートを有する。すべてのこれらのORゲート、すなわち
ゲート119ないし125の出力は、次の行の最下位ビット位
置のシフトリンクの入力に結合され、そして各ゲートは
一方の入力がその行でIGNORE信号に結合され、そして別
の入力はその行で共通の入力ラインに結合される。こう
して、いかなる数の行もその行でIGNORE信号を断定する
ことによって、それらの最下位ビット位置のシフトリン
クに論理「1」を強制することができる。同様に、いか
なる数の行も、透明にされるべき行で、それらの出力が
入力ゲートの入力に結合されているORゲート110ないし1
17に結合されるIGNORE信号を断定することによって、透
明にされ得る。
ゲートを有する。すべてのこれらのORゲート、すなわち
ゲート119ないし125の出力は、次の行の最下位ビット位
置のシフトリンクの入力に結合され、そして各ゲートは
一方の入力がその行でIGNORE信号に結合され、そして別
の入力はその行で共通の入力ラインに結合される。こう
して、いかなる数の行もその行でIGNORE信号を断定する
ことによって、それらの最下位ビット位置のシフトリン
クに論理「1」を強制することができる。同様に、いか
なる数の行も、透明にされるべき行で、それらの出力が
入力ゲートの入力に結合されているORゲート110ないし1
17に結合されるIGNORE信号を断定することによって、透
明にされ得る。
手元の特定の具体例では、IGNORE7ないしIGNORE5信号
は第21図の時間ライン5ないし7で示されるCRC計算の
第1のクロックサイクルの間に断定される。これは、ア
レイ60の第1の3つの行が透明になり、そしてすべての
論理「1」をシフトリンクの第4の行のデータ入力に送
ることを引き起こす。こうして、CRC計算の第1のクロ
ックサイクルの間、CRCチェックビットはデータビットD
7ないしD5を除いて第1の入力バイトD7ないしD0のすべ
てのビットで計算されるであろう。これが発生するのは
プリセット「1」がデータビットD7ないしD5に結合され
るシフトリンクの行を介して直接に伝送されるからで、
そしてそのためデータビットD4に結合されるシフトリン
クの行はそれがアレイの最初の行のように作用する。CR
C計算の第1のクロックサイクルが終了すると、IGNORE7
ないしIGNORE5信号は不活性化され、そしてCRC計算は通
常どおりに進行する。
は第21図の時間ライン5ないし7で示されるCRC計算の
第1のクロックサイクルの間に断定される。これは、ア
レイ60の第1の3つの行が透明になり、そしてすべての
論理「1」をシフトリンクの第4の行のデータ入力に送
ることを引き起こす。こうして、CRC計算の第1のクロ
ックサイクルの間、CRCチェックビットはデータビットD
7ないしD5を除いて第1の入力バイトD7ないしD0のすべ
てのビットで計算されるであろう。これが発生するのは
プリセット「1」がデータビットD7ないしD5に結合され
るシフトリンクの行を介して直接に伝送されるからで、
そしてそのためデータビットD4に結合されるシフトリン
クの行はそれがアレイの最初の行のように作用する。CR
C計算の第1のクロックサイクルが終了すると、IGNORE7
ないしIGNORE5信号は不活性化され、そしてCRC計算は通
常どおりに進行する。
[発明の効果] 以上のように、この発明に従えば、たとえば32ビット
CRCチェックビットをたとえば8ビットデータバスを用
いて伝達するように構成したため、CRCチェックビット
伝達バス占有面積を低減することができ、応じて装置占
有面積が低減され、集積化に優れたCRC計算装置を実現
することができる。
CRCチェックビットをたとえば8ビットデータバスを用
いて伝達するように構成したため、CRCチェックビット
伝達バス占有面積を低減することができ、応じて装置占
有面積が低減され、集積化に優れたCRC計算装置を実現
することができる。
この発明は好ましい実施例で説明されてきたが、当業
者はこの発明の精神および範囲から逸脱することなく発
明を実施するように働くであろう修正またはそれに代わ
るものを認めてもよい。そのようなすべての修正および
代用となるものはここに添付の特許請求の範囲の範囲内
に含まれることが意図される。
者はこの発明の精神および範囲から逸脱することなく発
明を実施するように働くであろう修正またはそれに代わ
るものを認めてもよい。そのようなすべての修正および
代用となるものはここに添付の特許請求の範囲の範囲内
に含まれることが意図される。
第1図はビットクロックを用いる直列フォーマットCRC
計算器のブロック図である。 第2図は第1図の機械の論理図である。 第3図はそのCRCビットが付加された典型的なデータメ
ッセージのためのデータフォーマットの図である。 第4図はバイトクロックを用いた並列フォーマットCRC
機械のための論理図である。 第5図はCRCバイトを出力するためにバイト幅の出力バ
スを用いたCRC計算器の好ましい実施例のブロック図で
ある。 第6図はマルチプレクサを通ってCRCデータの各バイト
に接続される1バイト幅の出力バスを用いたCRC計算器
の別の実施例のブロック図である。 第7図は、より低いオーダのCRCバイトを出力のために
最上位バイト位置にシフトすることを引き起こすために
シフトリンクのアレイで用いられるANDゲートを示す第
5図の実施例の論理の論理図である。 第8図は、入力マルチプレクサを用いてすべて「1」で
検査合計レジスタをプリセットし、そしてCRC計算の第
1のクロックサイクルの前のクロックサイクルでプリセ
ットするためのこの発明の実施例のブロック図である。 第9図は、ORゲートを用いてすべて「1」で検査合計レ
ジスタをプリセットし、そしてCRC計算の第1のクロッ
クサイクルでプリセットするためのこの発明の直列入力
データフォーマットの実施例のブロック図である。 第10図は、ORゲートを用いてすべて「1」で検査合計レ
ジスタをプリセットし、そしてCRC計算の第1のクロッ
クサイクルでプリセットするためのこの発明の並列入力
データフォーマットの実施例のブロック図である。 第11図は、マルチプレクサを用いてすべて「1」で検査
合計レジスタをプリセットし、そしてCRC計算の第1の
クロックサイクルでプリセットするためのこの発明の直
列入力データフォーマット実施例のブロック図である。 第12図は、マルチプレクサを用いてすべて「1」で検査
合計レジスタをプリセットし、そしてCRC計算の第1の
クロックサイクルでプリセットするためのこの発明の並
列入力データフォーマット実施例のブロック図である。 第13図は、直列または並列のフォーマット入力データフ
ォーマットで第8図ないし第12図の実施例と、プリセッ
トがCRC計算の第1のクロックサイクルに先行するクロ
ックサイクルでなされるか、またはCRC計算の第1のク
ロックサイクルの間になされる実施例とのプリセット機
能を制御する制御信号のタイミング図である。 第14A図および第14B図は、典型的な回路網メッセージの
データパケットフォーマットを例示し、そしてヘッダで
CRCHチェックビットを、そして全体のメッセージかまた
はデータパケットのみでCRCDチェックビットを計算する
2つの異なる方法を例示する。 第15図は、第14図に例示される方法のいずれかに従って
CRCHおよびCRCDチェックビットを計算するための1つの
直列フォーマット入力データ実施例を例示する。 第16図は、第14図に例示される方法のいずれかに従って
CRCHおよびCRCDチェックビットを計算するための1つの
並列フォーマット入力データ実施例を例示する。 第17図は、第14図に例示される方法のいずれかに従って
CRCHおよびCRCDチェックビットを計算するための好まし
い直列のフォーマット入力データ実施例を例示する。 第18図は、第14図に例示される方法のいずれかに従って
CRCHおよびCRCDチェックビットを計算するための好まし
い並列フォーマット入力データ実施例を例示する。 第19図は、第14図に例示される方法に従ってCRCHおよび
CRCDチェックビットを計算する際の第17図および第18図
の実施例を制御する制御信号のためのタイミングを例示
する。 第20図は、この発明の可変ビット境界特徴およびこの発
明のいくつかの他の特徴を含んだものを例示する。 第21図は、この発明の可変ビット境界機能の動作を例示
する第20図の実施例のためのタイミング図である。 図において、30は検査合計レジスタ、32はアレイ、36は
バス、40および42はセグメント、44はマルチプレクサ、
50はインバータ、56はアレイ、60はシフトリンク、62、
64、65、110、111、112、113、114、115、116、117、11
8、119、120、121、122、123、124および125は排他的OR
ゲート、66および68はANDゲート、70は1バイト幅の出
力バス、74はバス、84は排他的ORおよびシフトアレイ、
86はマルチプレクサ、88は32ビット幅の出力バス、90は
バス、90、91、92および93はORゲート、94、95、96およ
び97はマルチプレクサ、99はメッセージ、100はANDゲー
ト、100はヘッダ、101はCRCHビット、102はデータパケ
ット、103はCRCD、106はスナップショットレジスタ、10
8はマルチプレクサ、109はプリセット手段、110はCRCH
出力バス、118、119、120および121は1バイト幅の出力
バス、116はマルチプレクサ、126は生データ入力、130
および132はバス、138、140および142はプリセットゲー
トである。
計算器のブロック図である。 第2図は第1図の機械の論理図である。 第3図はそのCRCビットが付加された典型的なデータメ
ッセージのためのデータフォーマットの図である。 第4図はバイトクロックを用いた並列フォーマットCRC
機械のための論理図である。 第5図はCRCバイトを出力するためにバイト幅の出力バ
スを用いたCRC計算器の好ましい実施例のブロック図で
ある。 第6図はマルチプレクサを通ってCRCデータの各バイト
に接続される1バイト幅の出力バスを用いたCRC計算器
の別の実施例のブロック図である。 第7図は、より低いオーダのCRCバイトを出力のために
最上位バイト位置にシフトすることを引き起こすために
シフトリンクのアレイで用いられるANDゲートを示す第
5図の実施例の論理の論理図である。 第8図は、入力マルチプレクサを用いてすべて「1」で
検査合計レジスタをプリセットし、そしてCRC計算の第
1のクロックサイクルの前のクロックサイクルでプリセ
ットするためのこの発明の実施例のブロック図である。 第9図は、ORゲートを用いてすべて「1」で検査合計レ
ジスタをプリセットし、そしてCRC計算の第1のクロッ
クサイクルでプリセットするためのこの発明の直列入力
データフォーマットの実施例のブロック図である。 第10図は、ORゲートを用いてすべて「1」で検査合計レ
ジスタをプリセットし、そしてCRC計算の第1のクロッ
クサイクルでプリセットするためのこの発明の並列入力
データフォーマットの実施例のブロック図である。 第11図は、マルチプレクサを用いてすべて「1」で検査
合計レジスタをプリセットし、そしてCRC計算の第1の
クロックサイクルでプリセットするためのこの発明の直
列入力データフォーマット実施例のブロック図である。 第12図は、マルチプレクサを用いてすべて「1」で検査
合計レジスタをプリセットし、そしてCRC計算の第1の
クロックサイクルでプリセットするためのこの発明の並
列入力データフォーマット実施例のブロック図である。 第13図は、直列または並列のフォーマット入力データフ
ォーマットで第8図ないし第12図の実施例と、プリセッ
トがCRC計算の第1のクロックサイクルに先行するクロ
ックサイクルでなされるか、またはCRC計算の第1のク
ロックサイクルの間になされる実施例とのプリセット機
能を制御する制御信号のタイミング図である。 第14A図および第14B図は、典型的な回路網メッセージの
データパケットフォーマットを例示し、そしてヘッダで
CRCHチェックビットを、そして全体のメッセージかまた
はデータパケットのみでCRCDチェックビットを計算する
2つの異なる方法を例示する。 第15図は、第14図に例示される方法のいずれかに従って
CRCHおよびCRCDチェックビットを計算するための1つの
直列フォーマット入力データ実施例を例示する。 第16図は、第14図に例示される方法のいずれかに従って
CRCHおよびCRCDチェックビットを計算するための1つの
並列フォーマット入力データ実施例を例示する。 第17図は、第14図に例示される方法のいずれかに従って
CRCHおよびCRCDチェックビットを計算するための好まし
い直列のフォーマット入力データ実施例を例示する。 第18図は、第14図に例示される方法のいずれかに従って
CRCHおよびCRCDチェックビットを計算するための好まし
い並列フォーマット入力データ実施例を例示する。 第19図は、第14図に例示される方法に従ってCRCHおよび
CRCDチェックビットを計算する際の第17図および第18図
の実施例を制御する制御信号のためのタイミングを例示
する。 第20図は、この発明の可変ビット境界特徴およびこの発
明のいくつかの他の特徴を含んだものを例示する。 第21図は、この発明の可変ビット境界機能の動作を例示
する第20図の実施例のためのタイミング図である。 図において、30は検査合計レジスタ、32はアレイ、36は
バス、40および42はセグメント、44はマルチプレクサ、
50はインバータ、56はアレイ、60はシフトリンク、62、
64、65、110、111、112、113、114、115、116、117、11
8、119、120、121、122、123、124および125は排他的OR
ゲート、66および68はANDゲート、70は1バイト幅の出
力バス、74はバス、84は排他的ORおよびシフトアレイ、
86はマルチプレクサ、88は32ビット幅の出力バス、90は
バス、90、91、92および93はORゲート、94、95、96およ
び97はマルチプレクサ、99はメッセージ、100はANDゲー
ト、100はヘッダ、101はCRCHビット、102はデータパケ
ット、103はCRCD、106はスナップショットレジスタ、10
8はマルチプレクサ、109はプリセット手段、110はCRCH
出力バス、118、119、120および121は1バイト幅の出力
バス、116はマルチプレクサ、126は生データ入力、130
および132はバス、138、140および142はプリセットゲー
トである。
───────────────────────────────────────────────────── フロントページの続き (56)参考文献 特開 昭62−132433(JP,A) 特開 昭62−133825(JP,A) 特公 昭54−37460(JP,B2) 特公 昭54−25764(JP,B2)
Claims (14)
- 【請求項1】複数バイトのCRCデータを発生して、CRCデ
ータの1バイトのビット数に等しい本数の導体を有する
CRC出力バス上にバイトクロック信号に同期して1度に
1バイトずつ伝達する装置であって、 データ入力に与えられた複数バイトのCRCビットを上位
および下位を有する階層的な順序で格納しかつ前記CRC
ビットそれぞれに対するデータ出力を有する格納手段
と、 最上位CRCデータバイトの各CRCビットのデータ出力に結
合される導体を有するCRC出力バスと、 前記格納手段のすべてのデータ入力に結合されるデータ
出力と、前記格納手段のデータ出力すべてに結合される
データ入力と、生データ入力とを有し、前記格納手段の
データ出力から与えられる入力データと前記生データ入
力に与えられた生入力データとを受け、前記生入力デー
タを所定の2進数で割算し、該割算の余りを複数バイト
のCRCチェックビットとして前記格納手段のデータ入力
へ与える演算手段と、 前記格納手段および演算手段に結合され、前記演算手段
を非活性状態としてかつ前記格納手段の現在の格納内容
を前記非活性状態の演算手段を介して伝達して前記CRC
データバイトを前記格納手段の最上位バイト位置方向へ
シフトすることにより、CRCデータバイトを1バイトず
つ前記バイトクロック信号に同期して前記CRC出力バス
に出力するシフト制御手段とを備える、CRC計算装置。 - 【請求項2】前記演算手段は、前記生データ入力に1バ
イトのビットを並列に受けかつ前記格納手段からの入力
データビットすべてを用いてCRCビットすべてを同時に
計算する手段を含む、請求項1記載のCRC計算装置。 - 【請求項3】前記演算手段は各々が入力と出力とを有し
かつ前記生入力データのビットそれぞれに対応する複数
行のシフトリンクを含み、 前記シフトリンクの各行は、第1行を除いて、該行の最
下位位置に設けられたシフトリンクを除いて入力が前段
行のシフトリンクの出力に結合され、前記最下位シフト
リンクは前記第1行を除いて前段行の最上位のシフトリ
ンクの出力に結合され、前記第1行のシフトリンクは、
シフトリンクの前段行として前記格納手段のデータ出力
にその入力が結合され、前記シフトリンクの最終行のデ
ータ出力は前記格納手段のデータ入力に結合され、前記
複数行に配置される複数のシフトリンクのうち所定のシ
フトリンクは、その入力ビットと所定の信号との排他的
論理和をとるゲートである、請求項2記載のCRC計算装
置。 - 【請求項4】前記複数行のシフトリンクの各行に対して
前記所定の信号が与えられ、各前記所定の信号は、前記
格納手段のCRCデータビットの所定のビットと前記生入
力データの対応のデータビットとの所定の論理演算を行
なう各行に対応して配置される入力ゲートにより発生さ
れる、請求項3記載のCRC計算装置。 - 【請求項5】前記第1行に対応する入力ゲートは前記格
納手段に格納されたCRCデータビットの最上位ビットと
前記生入力データが直列に与えられるとき最初に到達し
た生入力データビットとの排他的論理和演算を行なうゲ
ートであり、第2行に対応する入力ゲートは前記格納手
段に格納されたCRCデータビットの2番目の最上位ビッ
トと生入力データが直列態様で与えられるとき2番目に
到達する生入力データビットとの排他的論理和演算を行
なうゲートであり、シフトリンクの第i行に対応して設
けられる入力ゲートは、生入力データが直列態様で与え
られるとき第i番目に到達する生入力データビットと格
納手段に格納されるCRCデータビットの第i番目の最上
位ビットとの排他的論理和演算を行なうゲートである、
請求項4記載のCRC計算装置。 - 【請求項6】前記シフト手段は前記シフトリンクの各行
それぞれに対応して1対1対応で配置される複数の論理
積ゲートを含み、各論理積ゲートは、対応の行の入力ゲ
ートの出力に結合される一方入力と、その対応の行のシ
フトリンクのすべての排他的論理和ゲートの一方入力に
結合される出力と、CRC演算を行なわずに格納手段に格
納されたCRCデータビットのシフトのみを行なうことを
示すシフト否定信号を受けるように結合される他方入力
とを有し、このCRCデータビットのシフトは、前記格納
手段に格納されたCRCデータビットの最上位バイトのビ
ットの記憶位置へCRCデータビットを1バイトシフトさ
せることにより達成される、請求項5記載のCRC計算装
置。 - 【請求項7】各々が前記格納手段に格納された複数バイ
トのCRCビットの1バイトのデータ出力に結合される複
数の導体を有する複数のデータ入力を有するマルチプレ
クサをさらに備え、前記マルチプレクサは前記CRCデー
タビットの1バイトのビット数に等しい本数の導体を有
するデータ出力を有し、前記マルチプレクサは、どのCR
Cデータバイトを選択すべきかを示すバイト選択信号を
受ける入力と、このバイト選択信号に従って選択された
CRCデータバイトが存在するデータ出力に結合されるマ
ルチプレクサのデータ入力を前記マルチプレクサのデー
タ出力に結合する手段とを備える、請求項1記載のCRC
計算装置。 - 【請求項8】複数のCRCデータバイトを発生し、このCRC
データバイトの1バイトのビット数と等しい本数の導体
を有するバス上にバイトクロック信号に応答してバイト
単位でCRCデータビットを出力する装置であって、 前記複数のバイトのCRCデータビットを上位および下位
を有する階層的順序で格納する格納手段を備え、前記格
納手段は複数のデータ入力、複数のデータ出力と、バイ
トクロック入力とを有し、さらに 前記格納手段に格納されたCRCデータバイトの最上位バ
イトのデータ出力に結合されるCRC出力バスと、 CRCデータを算出されるべき生入力データを受ける生デ
ータ入力と、 前記格納手段および前記生データ入力に結合され、前記
格納手段のCRCバイトの最上位バイトの各ビットと前記
生データ入力からの生入力データの1バイトの各ビット
との排他的論理和演算を同時に行ない、複数の行信号を
発生しかつ各行信号とシフト否定信号との論理積演算を
同時に行なって修正行信号を発生する信号発生手段と、 前記シフト否定信号が第1の状態のとき、所定のシフト
の間に、シフトされた所定のビットと前記修正行信号と
の排他的論理和演算を行なってCRCデータバイトを算出
し、かつ前記シフト否定信号が第2の状態のとき、前記
格納手段のCRCデータバイトの各ビットを、前記生入力
データのビット数に等しい数だけ前記格納手段の最上位
ビット方向へ何ら排他的論理和演算を行なうことなくシ
フトして出力するシフト演算手段とを備え、前記シフト
演算手段の出力は前記格納手段のデータ入力に結合され
る、CRC計算装置。 - 【請求項9】前記シフト演算手段は、行および列状に配
列される複数のシフトリンクのアレイを備え、前記シフ
トリンクの第1行のシフトリンクの入力は前記格納手段
のデータ出力に結合され、前記第1行のシフトリンクの
それぞれの出力は第1行の最上位のシフトリンクを除い
て次の行の隣接上位のシフトリンクの入力に結合され、
前記第1行の最上位のシフトリンクはその出力が第2行
の最下位のシフトリンクの入力に結合され、第i行のシ
フトリンクは最下位のシフトリンクを除いて第(i−
1)行の隣接下位のシフトリンクの出力に結合される入
力と、第(i+1)行の隣接上位のシフトリンクの入力
に結合される出力とを有し、前記第i行の最下位のシフ
トリンクの入力は第(i−1)のシフトリンクの出力に
結合され、かつその出力は第(i+1)行の第2番目の
最下位のシフトリンクの入力に結合され、 前記複数のシフトリンクのうちの選択されたシフトリン
クは、そのデータ入力に前段行のシフトリンクまたは格
納手段のデータ出力に結合されるデータ入力に与えられ
るデータビットと前記修正行信号の対応の修正行信号と
の排他的論理和演算を行なう排他的論理和ゲートで構成
される、請求項8記載のCRC計算装置。 - 【請求項10】前記信号発生手段は複数の排他的論理和
ゲートと、各前記排他的論理和ゲートに対応して設けら
れる複数の論理積ゲートを備え、前記第1行に対する修
正行信号は、前記格納手段に格納されるCRCデータビッ
トの最上位ビットのデータ出力に結合される入力と前記
生入力データバイトが直列形式で与えられるときに最初
に到達する生入力データの第1ビットを受ける入力とを
有する排他的論理和ゲートと、前記第1行の排他的論理
和ゲートの出力に結合される一方入力とCRCチェックビ
ットの演算を行なうことなくCRCデータビットのシフト
のみを行なうことを示すシフト否定信号に受けるように
結合される他方入力と、前記第1行のシフトリンクに含
まれる排他的論理和ゲートそれぞれの入力に結合される
出力とを有する論理積ゲートとにより発生され、第i行
の修正行信号は、前記格納手段に格納された最上位バイ
トの第i番目のビットを受ける一方入力と、直立形式で
与えられる場合に第i番目に到達する生データ入力ビッ
トを受ける他方入力とを有する排他的論理和ゲートと、
この排他的論理和ゲートの出力を受ける一方入力と、前
記シフト否定信号を受ける他方入力と、前記第i行のシ
フトリンクに含まれる排他的論理和ゲートのそれぞれの
入力に結合される出力とを有する論理積ゲートとにより
発生される、請求項9記載のCRC計算装置。 - 【請求項11】前記シフト演算手段は、前記シフト否定
信号が論理ゼロ状態にあり、かつ前記バイトクロック信
号が発生されたとき、1バイトのビット数に等しい桁位
置だけ前記CRCデータビットをシフトする、請求項10記
載のCRC計算装置。 - 【請求項12】複数バイトのCRCチェックビットをバイ
トクロック信号に同期して発生して1バイトのビット数
に等しい本数の導体を有するバスを介して各バイトクロ
ックサイクル毎に1バイトのCRCチェックビットの速度
でCRC出力バスにCRCチェックビットを出力するCRC計算
装置であって、 複数バイトのCRCデータビットを記憶するように配置さ
れる複数のメモリセルを有する検査合計レジスタを備
え、前記CRCデータビットの各バイトは複数のCRCビット
で構成され、かつ各前記メモリセルは、データ入力と、
データ出力と、バイトクロック信号を受けるためのバイ
トクロック入力とを備え、かつ各前記メモリセルは前記
バイトクロック入力にバイトクロック信号が与えられた
ときそのデータ入力に与えられたデータビットを格納
し、かつ格納データを前記データ出力に出力し、さらに 前記CRCデータの最上位バイトのCRCビットを格納するメ
モリセルのデータ出力に結合されるCRC出力バスと、 各々が、1バイトの入力データの対応のビットに結合さ
れる一方データ入力と、前記CRC出力バスに結合される
メモリセルの1つに結合される他方データ入力と、デー
タ出力を有する複数のデータ入力排他的論理和ゲート
と、 前記データ入力排他的論理和ゲートそれぞれに対応して
設けられる論理積ゲートとを備え、前記複数の論理積ゲ
ートの各々は、対応のデータ入力排他的論理和ゲートの
データ出力に結合される一方入力と、論理演算を行なう
ことなくシフトのみを行なうことを示すシフト否定信号
を受けるように結合される他方入力とを有し、さらに 前記データ入力排他的論理和ゲートの数に等しい数の行
と前記CRCデータのビット数に等しい数の列とのアレイ
状に配列される複数のシフトリンクを備え、各前記シフ
トリンクは入力および出力を有し、第1行のシフトリン
クの入力は前記複数のメモリセルのデータ出力に結合さ
れかつ最終行のシフトリンクのデータ出力は前記複数の
メモリセルのデータ入力に結合され、シフトリンクの各
行は各列に1つ配置される複数の論理演算子を備え、各
前記論理演算子は論理演算子列のビットを次の行の隣接
上位ビットへシフトし、かつ各前記行における選択され
た論理演算子はさらに前の行またはメモリセルから与え
られたデータビットと対応の行に設けられたデータ入力
排他的論理和ゲートのデータ出力に結合される論理積ゲ
ートの出力から与えられるビットとの排他的論理和演算
を行なうゲートを備え、前記複数のデータ入力排他的論
理和ゲートは、前記CRCデータの最上位バイトの第i番
目の最上位ビットに結合されるデータ入力排他的論理和
ゲートがシフトリンクの第i行に対応するように配置さ
れる、CRC計算装置。 - 【請求項13】複数バイトのCRCチェックビットをCRC検
査合計レジスタおよびCRC計算手段を用いて計算するた
めの装置から1度に1バイト伝達するビット幅を有する
出力バス上に1バイトずつ複数のバイトのCRCチェック
ビットを出力する方法であって、 生成多項式に従って前記CRC計算手段を用いて複数バイ
トのCRCチェックビットを計算し、該計算された複数バ
イトのCRCチェックビットを前記CRC検査合計レジスタに
格納するステップと、 前記CRC検査合計レジスタの最上位バイトのCRCチェック
ビットを前記出力バス上に出力するステップと、 前記CRC検査合計レジスタの第2番目の上位バイトを前
記CRC検査合計レジスタの先に前記CRCチェックビットの
最上位バイトが占めていた位置へシフトし、かつ同時に
残りの下位のバイトのCRCビットを最上位ビット位置方
向へ1バイトシフトするステップと、 前記CRC検査合計レジスタの第2番目の上位バイトを前
記CRC検査合計レジスタの最上位バイト位置から前記出
力バスへ出力するステップと、 前記シフトおよび出力ステップを前記計算された複数バ
イトのCRCチェックビットのすべてのバイトが前記出力
バスに出力されるまで繰返すステップとを備える、CRC
チェックビット出力方法。 - 【請求項14】前記演算手段は前記CRCチェックビット
の1バイトのビット数に等しい数の行と前記CRC検査合
計レジスタのCRCチェックビットのビット数に等しい数
の列とのアレイ状に配列される複数のシフトリンクを備
え、前記複数のシフトリンクの各行は、第1行のシフト
リンクが前記CRC検査合計レジスタから入力データビッ
トを並列に受けかつ最終行の出力がその出力データビッ
トを前記CRC検査合計レジスタの入力へ並列に伝達する
様に接続され、かつ各行における最上位ビット位置のシ
フトリンクがその出力を次の行の最下位ビットのシフト
リンクへ与えることを除いて、各行のシフトリンクは入
力データビットを1ビット上位ビット方向へシフトして
次の行へ伝達するように結合され、かつ前記複数のシフ
トリンクのうち各行における選択されたシフトリンクは
排他的論理和ゲートであり、 前記CRCデータビットを1バイト上位ビット方向へシフ
トするステップは、各行における排他的論理和ゲート
を、その一方入力に論理ゼロの不能動化信号を強制的に
与えることによりその他方入力に与えられたデータビッ
トをそのまま通過させる透明な状態を設定し、これによ
り前記CRC検査合計レジスタからのデータビットを前記
シフトリンクのすべての行を介して値を変化させること
なく順次伝達して、次のバイトクロックサイクルにおい
て1バイト上位ビット方向にシフトされて前記CRC検査
合計レジスタへ入力するステップを含む、請求項13記載
のCRCチェックビット出力方法。
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US06/803,351 US4720830A (en) | 1985-12-02 | 1985-12-02 | CRC calculation apparatus having reduced output bus size |
| US803351 | 1985-12-02 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JPS62132432A JPS62132432A (ja) | 1987-06-15 |
| JPH0831800B2 true JPH0831800B2 (ja) | 1996-03-27 |
Family
ID=25186314
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP61286554A Expired - Lifetime JPH0831800B2 (ja) | 1985-12-02 | 1986-12-01 | Crc計算装置およびcrcチェックビット出力方法 |
Country Status (5)
| Country | Link |
|---|---|
| US (1) | US4720830A (ja) |
| EP (1) | EP0226353B1 (ja) |
| JP (1) | JPH0831800B2 (ja) |
| AT (1) | ATE88045T1 (ja) |
| DE (1) | DE3688238T2 (ja) |
Families Citing this family (25)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| EP0254140B1 (de) * | 1986-07-21 | 1991-04-17 | Siemens Aktiengesellschaft | Verfahren zum Bilden von Datenblocksicherungsinformationen für serielle Datenbitfolgen mittels zyklischer Binärcodes |
| US4996690A (en) * | 1988-08-26 | 1991-02-26 | Stac Electronics | Write operation with gating capability |
| EP0411110A4 (en) * | 1989-02-16 | 1993-02-24 | Grumman Aerospace Corporation | Very high speed error detection network |
| EP0431416A3 (en) * | 1989-12-04 | 1992-04-29 | National Semiconductor Corporation | Apparatus and method for accessing a cyclic redundancy error check code generated in parallel |
| EP0436194A3 (en) * | 1990-01-02 | 1992-12-16 | National Semiconductor Corporation | Media access controller |
| US5103451A (en) * | 1990-01-29 | 1992-04-07 | Motorola, Inc. | Parallel cyclic redundancy check circuit |
| US5131012A (en) * | 1990-09-18 | 1992-07-14 | At&T Bell Laboratories | Synchronization for cylic redundancy check based, broadband communications network |
| JP2998366B2 (ja) * | 1991-12-03 | 2000-01-11 | 富士通株式会社 | Crcチェック方法 |
| US5251215A (en) * | 1992-01-13 | 1993-10-05 | At&T Bell Laboratories | Modifying check codes in data packet transmission |
| US5390196A (en) * | 1992-11-12 | 1995-02-14 | Bull Hn Information Systems Inc. | Byte-wise determination of a checksum from a CRC-32 polynomial |
| EP0614294A1 (en) * | 1993-03-03 | 1994-09-07 | International Business Machines Corporation | Method for generating a frame check sequence |
| NL9302266A (nl) * | 1993-12-27 | 1995-07-17 | Nederland Ptt | Inrichting voor het vaststellen van grenzen in een bitstroom, en converteermiddelen voor toepassing in de inrichting. |
| US5854800A (en) * | 1995-06-07 | 1998-12-29 | Micron Technlogy, Inc. | Method and apparatus for a high speed cyclical redundancy check system |
| EP0840462B1 (en) * | 1996-10-29 | 2004-12-15 | International Business Machines Corporation | A method and apparatus for a two-step calculation of CRC-32 |
| US6681203B1 (en) * | 1999-02-26 | 2004-01-20 | Lucent Technologies Inc. | Coupled error code protection for multi-mode vocoders |
| EP1148650A1 (en) | 2000-04-14 | 2001-10-24 | Matsushita Electric Industrial Co., Ltd. | Crc operation unit and crc operation method |
| US6732317B1 (en) | 2000-10-23 | 2004-05-04 | Sun Microsystems, Inc. | Apparatus and method for applying multiple CRC generators to CRC calculation |
| US6684363B1 (en) * | 2000-10-25 | 2004-01-27 | Sun Microsystems, Inc. | Method for detecting errors on parallel links |
| US7676621B2 (en) | 2003-09-12 | 2010-03-09 | Hewlett-Packard Development Company, L.P. | Communications bus transceiver |
| US8176015B1 (en) * | 2004-06-14 | 2012-05-08 | Symantec Operating Corporation | Method and apparatus for reducing redundant storing of blocks of data on a server |
| US20060253768A1 (en) * | 2005-05-03 | 2006-11-09 | Intel Corporation | Techniques to speculatively determine network protocol unit integrity |
| KR100731985B1 (ko) * | 2005-12-29 | 2007-06-25 | 전자부품연구원 | 파이프라인 구조 병렬 순환 중복 검사 장치 및 방법 |
| GB0702573D0 (en) * | 2007-02-09 | 2007-03-21 | Texas Instruments Ltd | Data transfer circuit |
| GB0702571D0 (en) * | 2007-02-09 | 2007-03-21 | Texas Instruments Ltd | Data transfer circuit |
| CN113300716B (zh) * | 2020-07-14 | 2025-02-21 | 阿里巴巴集团控股有限公司 | 循环冗余校验码的生成方法、设备以及计算机可读介质 |
Family Cites Families (7)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US3678469A (en) * | 1970-12-01 | 1972-07-18 | Ibm | Universal cyclic division circuit |
| JPS5437460A (en) * | 1977-07-28 | 1979-03-19 | Chino Works Ltd | Integral ad converter |
| JPS5425764A (en) * | 1977-07-28 | 1979-02-26 | Daifuku Machinery Works | Device for simultaneous measurement of volume and weight |
| US4171765A (en) * | 1977-08-29 | 1979-10-23 | Data General Corporation | Error detection system |
| US4216540A (en) * | 1978-11-09 | 1980-08-05 | Control Data Corporation | Programmable polynomial generator |
| US4360891A (en) * | 1980-04-14 | 1982-11-23 | Sperry Corporation | Address and data interface unit |
| NL8200207A (nl) * | 1982-01-21 | 1983-08-16 | Philips Nv | Werkwijze met foutkorrektie voor het overdragen van blokken databits, een inrichting voor het uitvoeren van een dergelijke werkwijze, een dekodeur voor gebruik bij een dergelijke werkwijze, en een inrichting bevattende een dergelijke dekodeur. |
-
1985
- 1985-12-02 US US06/803,351 patent/US4720830A/en not_active Expired - Lifetime
-
1986
- 1986-11-25 EP EP86309176A patent/EP0226353B1/en not_active Expired - Lifetime
- 1986-11-25 AT AT86309176T patent/ATE88045T1/de not_active IP Right Cessation
- 1986-11-25 DE DE86309176T patent/DE3688238T2/de not_active Expired - Fee Related
- 1986-12-01 JP JP61286554A patent/JPH0831800B2/ja not_active Expired - Lifetime
Also Published As
| Publication number | Publication date |
|---|---|
| US4720830A (en) | 1988-01-19 |
| EP0226353A2 (en) | 1987-06-24 |
| ATE88045T1 (de) | 1993-04-15 |
| EP0226353A3 (en) | 1990-03-14 |
| JPS62132432A (ja) | 1987-06-15 |
| EP0226353B1 (en) | 1993-04-07 |
| DE3688238T2 (de) | 1993-10-07 |
| DE3688238D1 (de) | 1993-05-13 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| EP0225761B1 (en) | Apparatus and method for calculating cyclical redundancy codes | |
| EP0230730B1 (en) | CRC calculation machines | |
| EP0226353B1 (en) | Crc calculation apparatus | |
| US4720831A (en) | CRC calculation machine with concurrent preset and CRC calculation function | |
| JP2512666B2 (ja) | 誤り検査/訂正機能を有するコンピュ―タ・システム | |
| US6530057B1 (en) | High speed generation and checking of cyclic redundancy check values | |
| US5598424A (en) | Error detection structure and method for serial or parallel data stream using partial polynomial check | |
| US4979173A (en) | Burst mode error detection and definition | |
| US20020063577A1 (en) | Programmable logic datapath that may be used in a field programmable device | |
| EP0280013A1 (en) | Device for verifying proper operation of a checking code generator | |
| JP2006521730A (ja) | 巡回冗長検査(crc)計算のための反復回路を最適化するためのシステムおよび方法 | |
| JPS5864844A (ja) | 同期検出方式 | |
| US5140595A (en) | Burst mode error detection and definition | |
| EP0566215A2 (en) | Error correction apparatus | |
| US5671238A (en) | Method and circuitry for generating r-bit parallel CRC code for an l-bit data source | |
| JPS5840770B2 (ja) | 誤り訂正装置に使用されるプログラム可能な多項式発生装置 | |
| JPH10117147A (ja) | エラーチェック用データ発生回路 | |
| EP0431416A2 (en) | Apparatus and method for accessing a cyclic redundancy error check code generated in parallel | |
| US7024618B2 (en) | Transmission error checking in result forwarding | |
| JP2665268B2 (ja) | サイクリックコードのステップ・バイ・ステップ型復号方法及び復号器 | |
| US7138930B1 (en) | Multiple byte data path encoding/decoding device and method | |
| EP0146632B1 (en) | Majority circuit | |
| US6981206B1 (en) | Method and apparatus for generating parity values | |
| JP2591113B2 (ja) | ハミング符号化器 | |
| JP2619412B2 (ja) | 符号装置および復号装置 |