JPH01150940A - Crc演算方式 - Google Patents

Crc演算方式

Info

Publication number
JPH01150940A
JPH01150940A JP62308690A JP30869087A JPH01150940A JP H01150940 A JPH01150940 A JP H01150940A JP 62308690 A JP62308690 A JP 62308690A JP 30869087 A JP30869087 A JP 30869087A JP H01150940 A JPH01150940 A JP H01150940A
Authority
JP
Japan
Prior art keywords
data
crc
bytes
bits
byte
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP62308690A
Other languages
English (en)
Inventor
Masahiro Takano
雅弘 高野
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP62308690A priority Critical patent/JPH01150940A/ja
Priority to US07/280,430 priority patent/US5130991A/en
Priority to DE3841370A priority patent/DE3841370A1/de
Publication of JPH01150940A publication Critical patent/JPH01150940A/ja
Pending legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/09Error detection only, e.g. using cyclic redundancy check [CRC] codes or single parity bit
    • H03M13/091Parallel or block-wise CRC computation

Landscapes

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

Abstract

(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。

Description

【発明の詳細な説明】 〔産業上の利用分野〕 本発明は、複数の並列ビットにより構成されるデータを
対象としたC yclic Redundancy C
heck(以下、“CRC”)演算方式に係り、特に、
構成する並列ビット数が増減する場合に好適なCRC演
算方式に関する。
〔従来の技術〕
誤り検出用キャラクタであるCRCの演算方式として、
種々の方式が広く知られているが、その1つの方式が、
アイ・ビー・エム、ティー・デイ−・ビー、第27巻、
第6号、1984年11月号(IBM、 TDB、 V
OL、 27. No、 6゜November 19
84)、PP3572−3576に記載されている。こ
の方式は、通常、定められた演算式に従って、対象とな
るデータを1ビツト毎にシリアルに演算してい<CRC
演算方式であるが、上記文献では、対象データを複数ビ
ット同時にパラレルに演算し、1ビツト毎にシリアルに
演算した場合と同一の結果を得る方法について論じてい
る。
すなわち、上記文献によれば、1ビツト毎のCRC演算
を行なう方法として、n−1ビツトまでの演算結果を表
わす状態ベクトルをY(n)、nビット目として与えら
れる入力をu (n) 、入力が与えられた後の演算結
果をY (n + l )とし、Y (n+1)=AY
 (n)  +1u  (n )   −・−−−41
)となる状態遷移行列A(通常の16ビツト幅では16
X16マトリツクス)と入力ベクトル丁(16×1ベク
トル)を定義すると、8ビツトを同時に入力として与え
た場合には、(該8ビツトによる入力ベクトルをu (
n、8)として与えると、)Y (n+8)=A” Y
 (n)+Bs u (n、8)−−−・−(2) B、 = (A’rAb下A”’5’・−−−−−−−
T )−・−(3) により演算を行なうことで、8ビツトを1ビツト毎に入
力した場合と同一の演算結果Y(n+3)を得ることが
できる。以上は上記文献による公知の技術である。
上記技術で特徴的なことは、Y(n)なる状態ベクトル
は、n−1ビツトを入力してシリアルに演算した結果と
同一であって、n−1ビツトを任意のmビット(上記の
場合8ビツト)毎に演算しても、マトリックスA′″及
びB、を用いる限り、唯一の状態ベクトルY(n)を得
ることができるということである。
〔発明が解決しようとする問題点〕
一般に、コンピュータ等の情報処理装置で扱うデータは
、1バイト(8ビツト)単位であることが多く、この場
合、上記文献における複数ビット同時演算の方式を応用
することにより、高速な演算回路が容易に実現できる。
ところで、従来からCPUと外部記憶装置との間のデー
タ転送は、1バイト(8ビツト)!i位で行なわれて来
たが、最近、データ転送の高速化の要求に伴ない2バイ
ト(16ビツト)単位、あるいはそれ以上のバイト数を
同時に転送する転送方式を用いる場合が出てきた。この
ような1バイト単位のものは、転送速度が3 Mbps
 、2バイト単位のものは転送速度が6Mbpsの転送
に用いられる。
この場合、接続される相手により、同時に転送するバイ
ト数が異なる(すなわち、静的に変化する)ことがあり
、さらに転送すべき一連のデータのバイト数、転送制御
方法、記憶装置への記録方法などにより、同時に転送す
るバイト数が、一連のデータの転送中に動的に変化する
(すなわち、転送の途中で変動する)こともある。この
ような、転送途中で同時に転送されるバイト数が変わる
例としては、1ブロツクが奇数2N+1バイトで構成さ
れるデータを途中まで2バイトずっN回送り、最後だけ
1バイト送る場合などがある。このようなデータ転送の
正当性を保証するために、こうしたデータを対象とした
CRC演算の方式が要求される。
しかし、上記の文献では、パラレルなmビットの同時演
算により、シリアルな演算と同一結果を得るCRC演算
方式の一般的な理論が述べられているだけであって、上
記のような、同時に転送されるビット数又はバイト数が
静的又は動的に変化するデータ転送システムに対処でき
る同時CRC演算法については、何も考慮されていない
従って、本発明の目的は、上記従来技術の問題点を克服
して、上記のような、同時に転送されるビット数又はバ
イト数が静的あるいは動的に変化するデータに対して、
容易にCRCの同時演算を行なうことのできるCRC演
算方式を提供することにある。
〔問題点を解決するための手段〕
上記目的を達成するため、本発明のCRC演算方式は、
並列ビット数が異なる複数種の入力データに対して、該
並列ビット数にそれぞれ適合する組合せ論理を有する複
数のCRC同時演算手段と、入力データの並列ビット数
に応じて対応するCRC同時演算手段を選択して入力に
結合する選択手段と、選択したCRC同時演算手段の出
力を保持する保持手段とを備えた構成とする。
好適な実施例において、前記CRC同時演算手段は、所
要のビット数の同時演算を行なうため、前記入力データ
と前記保持手段の出力とを受けて論理演算を行なうマト
リックスを構成する組合せ論理回路を含んでいる。この
組合せ論理回路は、同時演算を行なうビット数又はバイ
ト数の種類に対応する数だけ用意されており、入力デー
タのビット数又はバイト数に応じて該組合せ論理回路の
1つが静的又は動的に選択され、切換えられ、その出力
を演算結果としてフリップフロップ等からなるレジスタ
(保持手段)に保持する。保持手段の出力は次の演算に
使用される。
〔作用〕
以下に、上記構成に基づく作用を説明する。
上記CRC同時演算手段は、上記(2)式及び(3)式
に示したような演算を行なう。そこで、現在の状態ベク
トルY(n)に対して、入力データがiビット同時に与
えられるときには、上記(21,(3)式で数値8の代
りにiとした論理演算を行なうことのできる同時演算手
段を選択し、入力データがjビット(i′J−j)同時
に与えられるときには、上記(2)、 (3)式で数値
8の代りにjとした論理演算を行なうことのできる同時
演算手段を選択する。それによって、iビットデータで
はマトリックスAiとB、を用い、jビットデータでは
マトリックスAjとB、を用いて、Y(n+i)及びY
(n+1)をそれぞれ演算することができるので、入力
データの’+  Jが変われば、それに応じて、演算(
変換)マトリックスを変更するだけで、最゛終的に唯一
のCRC演算結果を得ることができる。
演算は同時に入力するデータビット毎に行なわれ、演算
結果はその都度次のデータ入力の演算のため保持される
ので、データ転送相手が変わるような静的なバイト数の
変化に対応できるのは勿論、データ転送の途中でバイト
数が変わるような動的な変化にも対応することができる
〔実施例〕
本発明の実施例として、磁気テープ制御装置に適用した
例を用いて説明する。
第2図は、磁気テープ制御装置1の内部ブロック図を示
す。
磁気テープ制御装置1はインタフェース線22を介して
チャネル(図示せず)と接線される。チャネルインタフ
ェース2はチャネルとのインタフェースを制御する。デ
ータバッファ3はチャネルから受は取ったデータ又はM
TU (磁気テープユニット、図示せず)から読み出し
たデータを一時的に保持する。リードライト回路4は、
MTUへ書き込むデータの変調及びMTUから読み出し
たデータの復調を行なう。MTUインタフェース5はM
TUとのインタフェース制御を行なう。磁気テープ制御
装置内各部はマイクロプロセッサ6により制御される。
チャネルからMTUへデータを書き込む場合の動作を説
明する。チャネルからのデータは、それぞれ1バイト幅
(8ビット幅)を持つデータバス9.10を介してチャ
ネルインタフェース2へ送られる。データ転送は、タグ
線11に含まれるチャネルへ向かう線とチャネルから来
る線の一対のシェイクハンドにより行なわれる。
チャネルインタフェース2へ送られたデータは同様にそ
れぞれ1バイト幅を持つデータバス12゜13を介して
データバッファ3へ送られ、メモリに保持される。デー
タバス12.13上のデータ転送は、チャネルインタフ
ェース2からデータバッファ3へ向かう信号14のうち
の1つに同期して行なわれる。データバスに、13上の
データは、データバッファ3へ送られると同時に、CR
C演算回路7へも送られ、ここで1ブロック分のデータ
に対してCRCが演算される。CRCは、下記の生成多
項式に従って、1ビツト毎に演算する方式のものである
XI6+Xls+X” +X+1      −−−−
−−−(4)演算結果は、データブロックの最後にCR
C符号として付加され、データバッファ3にデータブロ
ックと共に保持される。
データバッファ3に保持されたデータブロックは、マイ
クロプロセッサ6の指示により、1バイトのデータバス
19を介してリードライト回路4へ送られ、変調された
後MTUインタフェース5を経由してMTUへ送られる
。この時、データブロックと共に保持されていたCRC
は、データに引き続いてCRCチエツク回路8に送られ
、データバッファ内におけるデータブロックの正当性の
保証に用いられる。
チャネルからのデータは、データバス9..10を用い
て2バイト同時に転送される場合と、データバス9のみ
を用いて1バイトで転送される場合があり、接続される
チャネルによりいずれかが選択される。また、2バイト
同時に転送する場合でも、1データブロツクを構成する
データバイト数が奇数2N+1の場合には各バス9,1
0でそれぞれNバイト分が送られた後、最後の1バイト
は、データバス9のみを用いて送られる。いずれの場合
も、データバス9.10上のデータが有効か否かを示す
信号が信号線11の中に1本ずつ存在し、これによりチ
ャネルが有効データバスを指示する。
同様にしてチャネルインタフェース2からデータバッフ
ァ3に対しても、1バイトで転送する場合と2バイトで
転送する場合があり、バス9.10上のデータが有効で
あるか否かを示す信号線が信号線14に含まれる。上記
動作及びその他の動作は、いずれもマイクロプロセッサ
6の制御により行なわれるが、本発明に関係しない部分
は省略する。
第1図は、CRC演算回路7の内部を示し、本発明を説
明する図である。
1バイト演算回路24は、現在の状態と8ビット同時の
入力データから次の状態を演算するための組み合わせ回
路で、第3図に示す行列による。
例えば出力の1ビツトであるYoは、入力X0〜XIS
とU0〜U、より、 Y、=X、■X、■X、0■Xll■X+Z■X、3■
X+4■×6■U0■Ul■U2■U3■U4■U5■
U6■U。
−・・−−−−(51 (ただし■は排他的論理和演算子を示す。)なる論理式
で表わされる。
同様に、2バイト演算回路25は、現在の状態と16ビ
ツト同時の入力データから次の状態を演算するための組
み合わせ回路で、第4図に示す行列による。
フリップフロップ27は、演算の途中状態及び演算結果
を保持する16ビツトのレジスタで、バス18中の信号
線30上のバス15.16上のデータ転送に同期したク
ロックにより、その内容が更新される。
演算セレクタ26はフリップフロップ27へ入力すべき
演算結果として、1バイト演算回路24の出力を用いる
か、2バイト演算回路25の出力を用いるかを選択する
ために使用され、いずれの出力を選択するかは、バス1
5.16上に、データが1バイト同時に確定しているか
、2バイト同時に確定しているかに依り決まり、又、こ
の選択は、バス18中の信号線29を用いて行なわれる
バイトセレクタ23は、ハス15.16上のいずれか一
方に1バイトのデータが確定している時に、信号線28
の制御により、確定している側のバス上のデータを選択
し、1バイト演算回路24へ入力する。
演算結果は、バス17を用いて出力される。また、演算
結果の一部は、演算回路24.25に戻されて、次の入
力の演算のために使われる。
本実施例によれば、入力データが1バイト又は2バイト
のいずれに対してもCRC演算が可能で、さらに1つの
データブロックでCRC演算の途中で、同時に入力する
バイト数が切り換わっても、最終的に正しい演算結果を
得ることができる。
また、入力データが1バイトの時に、そのデータが2バ
イトのバス上のいずれの側に確定していても、正しく演
算が可能である。
〔発明の効果〕
以上詳しく述べたように、本発明のCRC演算方式によ
れば、同時に(並列的に)入力するビット数又はバイト
数が静的にあるいは動的に変化するデータに対して、常
にそのビット数又はバイト数に適合するCRC同時演算
論理回路が選択されるので、同時演算による高速演算が
可能であると共に、データ転送の前後だけでなくデータ
転送の途中で、同時に転送するバイト数やビット数が変
化するデータに対しても、容易にCRC同時演算を行な
うことができる等、優れた効果を奏するものである。
【図面の簡単な説明】
第1図は本発明の一実施例であるCRC演算回路の内部
ブロック図、第2図は第1図のCRC演算回路を適用し
た磁気テープサブシステムの内部ブロック図、第3図は
1バイト(8ビツト)演算回路における演算式の一例を
示す図、第4図は2バイト(16ビツト)演算回路にお
ける演算式の一例を示す図である。 2・−・−・チャネルインタフェース、3−−−−−−
・データバッファメモリ、4・−一−−−−リードライ
ト回路、5・−・−MTUインタフェース、6・・−−
−−−M P U 、 ? −・・−CRC演算回路、
8−−−−−・・CRCチエツク回路、9゜10、 1
2.13. 15. 16. 19−・−1バイト幅デ
ータバス、11・−・−・−タグ線、23−・−・パイ
   区トセレクタ、24−−−−−−−1バイト演算
回路、25・−−・2バイト演算回路、26−−−−−
−−演算セレクタ、27w&−・−フリップフロップ(
16ビツトレジスタ)。 第3図

Claims (1)

    【特許請求の範囲】
  1. 1、複数のビット数が並列に入力する入力データに対し
    同時にCRC演算を行なうCRC演算方式において、そ
    れぞれ前記並列ビット数が異なる複数種のデータを入力
    するデータ入力手段と、前記複数種のデータの並列ビッ
    ト数にそれぞれ適合する組合せ論理を有する複数のCR
    C同時演算手段と、前記入力データの並列ビット数に応
    じて対応するCRC同時演算手段を選択して前記データ
    入力手段に結合する選択手段と、選択されたCRC同時
    演算手段の出力を保持する保持手段とを備えたことを特
    徴とするCRC演算方式。
JP62308690A 1987-12-08 1987-12-08 Crc演算方式 Pending JPH01150940A (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP62308690A JPH01150940A (ja) 1987-12-08 1987-12-08 Crc演算方式
US07/280,430 US5130991A (en) 1987-12-08 1988-12-06 Method and apparatus for crc computation
DE3841370A DE3841370A1 (de) 1987-12-08 1988-12-08 Verfahren und vorrichtung fuer eine crc-berechnung

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP62308690A JPH01150940A (ja) 1987-12-08 1987-12-08 Crc演算方式

Publications (1)

Publication Number Publication Date
JPH01150940A true JPH01150940A (ja) 1989-06-13

Family

ID=17984109

Family Applications (1)

Application Number Title Priority Date Filing Date
JP62308690A Pending JPH01150940A (ja) 1987-12-08 1987-12-08 Crc演算方式

Country Status (3)

Country Link
US (1) US5130991A (ja)
JP (1) JPH01150940A (ja)
DE (1) DE3841370A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20020087822A (ko) * 2001-05-16 2002-11-23 손승일 입력 파라미터의 사용한 가변 길이의 crc-10 계산 및 검증블록 회로

Families Citing this family (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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
JPH03226019A (ja) * 1990-01-30 1991-10-07 Toshiba Corp Crc演算装置
GB2242104B (en) * 1990-02-06 1994-04-13 Digital Equipment Int Method and apparatus for generating a frame check sequence
JPH0477148A (ja) * 1990-07-17 1992-03-11 Fujitsu Ltd シグナリング・データ受信処理方式
JP3051223B2 (ja) * 1991-10-02 2000-06-12 富士通株式会社 セル送信回路
JP3069389B2 (ja) * 1991-05-27 2000-07-24 富士通株式会社 Atmセル誤り処理システム
JP2998366B2 (ja) * 1991-12-03 2000-01-11 富士通株式会社 Crcチェック方法
ATE149763T1 (de) * 1992-07-14 1997-03-15 Alcatel Bell Nv Fehlererkennungs- und fehlerkorrektureinrichtung
ES2099789T3 (es) * 1992-07-14 1997-06-01 Alcatel Bell Nv Dispositivo divisor para dividir un primer polinomio por un segundo polinomio.
DE4437417A1 (de) * 1993-10-19 1995-04-20 Deutsche Bundespost Telekom Verfahren zur Überwachung von Digitalsignalverbindungen
JP2814918B2 (ja) * 1994-07-07 1998-10-27 株式会社デンソー マイクロコンピュータ
US5854800A (en) * 1995-06-07 1998-12-29 Micron Technlogy, Inc. Method and apparatus for a high speed cyclical redundancy check system
US5878057A (en) * 1995-10-06 1999-03-02 Tektronix, Inc. Highly parallel cyclic redundancy code generator
US6006354A (en) * 1997-02-12 1999-12-21 Stmicroelectronics, Inc. Security device for a video digital to analog converter
GB2324445B (en) * 1997-04-17 2002-08-21 United Microelectronics Corp Error correction and detection system for mass storage controller
US6128760A (en) * 1998-10-13 2000-10-03 Lsi Logic Corporation Method and apparatus for calculating a CRC remainder
US6732318B2 (en) * 2001-04-03 2004-05-04 Sun Microsystems, Inc. Variable width parallel cyclical redundancy check
US6701479B2 (en) * 2001-05-15 2004-03-02 Network Elements, Inc. Fast cyclic redundancy check (CRC) generation
US20040088497A1 (en) * 2002-11-06 2004-05-06 Deans Russell C. Methods and apparatus for exchanging data using cyclic redundancy check codes
US7613991B1 (en) 2003-08-19 2009-11-03 Altera Corporation Method and apparatus for concurrent calculation of cyclic redundancy checks
US7320101B1 (en) * 2003-08-19 2008-01-15 Altera Corporation Fast parallel calculation of cyclic redundancy checks
US7103832B2 (en) * 2003-12-04 2006-09-05 International Business Machines Corporation Scalable cyclic redundancy check circuit
US7328396B2 (en) * 2004-05-28 2008-02-05 International Business Machines Corporation Cyclic redundancy check generating circuit

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5872253A (ja) * 1981-10-26 1983-04-30 Nippon Telegr & Teleph Corp <Ntt> 巡回符号演算方式
JPS58137053A (ja) * 1982-02-08 1983-08-15 Nec Corp 符号化回路

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5286011A (en) * 1976-01-12 1977-07-16 Nec Corp Error correction device for parallel processing
DE2847996A1 (de) * 1978-11-06 1980-05-22 Leilich Hans Otto Prof Dr Ing Verfahren zur blockweisen fehlererkennung und fehlerkorrektur mittels verkuerzter zyklischer codes
DE3122381A1 (de) * 1981-06-05 1982-12-23 Ibm Deutschland Gmbh, 7000 Stuttgart Verfahren und einrichtung zur erzeugung von pruefbits zur sicherung eines datenwortes
JPS60230732A (ja) * 1984-04-28 1985-11-16 Nec Corp 回線多重化crc符号生成装置

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5872253A (ja) * 1981-10-26 1983-04-30 Nippon Telegr & Teleph Corp <Ntt> 巡回符号演算方式
JPS58137053A (ja) * 1982-02-08 1983-08-15 Nec Corp 符号化回路

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20020087822A (ko) * 2001-05-16 2002-11-23 손승일 입력 파라미터의 사용한 가변 길이의 crc-10 계산 및 검증블록 회로

Also Published As

Publication number Publication date
DE3841370A1 (de) 1989-06-22
US5130991A (en) 1992-07-14

Similar Documents

Publication Publication Date Title
JPH01150940A (ja) Crc演算方式
JPH04358245A (ja) データ通信装置
EP0554209B1 (en) Direct memory access controller
US5701517A (en) Pipelined alignment shifter and method for universal bit field boundary alignment
JPH0644245B2 (ja) ストアバッファ装置
US4789852A (en) Method and apparatus for converting data in a binary format
US5062044A (en) Temporary bus master for use in a digital system having asynchronously communicating sub-systems
US3710327A (en) Synchronous communications adapter
EP0936537A1 (en) Cyclic redundancy check in a computer system
JP4134371B2 (ja) 入出力バスブリッジ装置
SU693364A1 (ru) Устройство сопр жени с магистралью
JP2699482B2 (ja) データ転送制御装置
JPH03100751A (ja) 入出力処理装置
SU1034040A1 (ru) Устройство дл формировани цифровых последовательностей
JPH0588887A (ja) データ処理装置
JPS61267162A (ja) デ−タ転送装置
JPH1063569A (ja) 主メモリデータ書込み装置
JP2752800B2 (ja) ビット誤り付加回路
JPH0650478B2 (ja) デ−タ圧縮記憶方式
JPH02230320A (ja) データ処理装置
JP2898000B2 (ja) 文字データ展開処理装置
JPH0544755B2 (ja)
JPS59109962A (ja) 部分書込みフラグ発生方法
JPS6059617B2 (ja) 割込みコ−ドの正当性チエツク方式
JPS61269738A (ja) デ−タ処理回路