JPH05244016A - Crc計算回路 - Google Patents

Crc計算回路

Info

Publication number
JPH05244016A
JPH05244016A JP4039001A JP3900192A JPH05244016A JP H05244016 A JPH05244016 A JP H05244016A JP 4039001 A JP4039001 A JP 4039001A JP 3900192 A JP3900192 A JP 3900192A JP H05244016 A JPH05244016 A JP H05244016A
Authority
JP
Japan
Prior art keywords
polynomial
remainder
terms
memory
crc
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
JP4039001A
Other languages
English (en)
Inventor
Yasushi Kakukawa
泰史 各川
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.)
Toshiba Corp
Original Assignee
Toshiba Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Toshiba Corp filed Critical Toshiba Corp
Priority to JP4039001A priority Critical patent/JPH05244016A/ja
Publication of JPH05244016A publication Critical patent/JPH05244016A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Detection And Correction Of Errors (AREA)
  • Error Detection And Correction (AREA)

Abstract

(57)【要約】 【目的】この発明は、簡易な構成でCRC符号の計算速
度をより一層高速化することができるCRC計算回路を
提供することを目的としている。 【構成】n次多項式の上位k項が取り得る全ての式をm
次基本式で除算した各剰余が記録されたメモリ22と、
多項式の上位k項に付加された各係数に基づいてメモリ
22のアドレスを指定し対応する剰余を読み出すアクセ
ス手段21と、このアクセス手段21で読み出された剰
余を多項式の上位k項を除く下位項に加算する加算手段
20とを備えている。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】この発明は、デジタルデータのエ
ラーチェックのためのCRC(Cyclic Redu-ndancy Che
ck)符号を計算するCRC計算回路の改良に関する。
【0002】
【従来の技術】周知のように、近年におけるコンピュー
タのデータ処理速度の向上は著しく、扱うデータ量も増
大してきており、これに伴って、コンピュータの周辺装
置も大容量化が進み、その大量のデータに対するエラー
チェックが大きな問題となっている。
【0003】現在では、デジタルデータのエラーチェッ
クには一般にCRCが利用されている。CRCは、一連
のデータ列を高次の多項式と考え、その多項式をある基
本式P(x)で除算し、その剰余(CRC符号)を元の
データ列の末尾に付加するものである。データのエラー
チェックは、CRC符号を付加したデータ列を先の基本
式P(x)で除算することにより行なわれ、エラーがな
ければ除算結果は0となる。
【0004】すなわち、元のデータ列である被除式を f(x)=an n +an-1 n-1 +an-2 n-2 +……+a0 0 とし[ただし、ai (n≦i≦0)は1または0]、こ
の被除式f(x)を基本式P(x)で割った商をA
(x),剰余(CRC符号)をr(x)とすると、 f(x)=A(x)・P(x)+r(x) となる。
【0005】図2は、CRC符号を計算するための従来
のCRC計算回路を示している。図中符号11は入力端
子で、上記被除式f(x)のxの次数の上位から順にそ
の項の係数ai が入力される。この入力端子11に入力
された係数ai は、入力端子12に供給されるクロック
CKに同期してラッチ動作を行なう直列接続された8個
のD(Delay )タイプのラッチ回路13a〜13hによ
り、図中右方向に順次シフトされる。
【0006】一方、図2中符号14は入力端子で、上記
基本式P(x)[ここではx7 以下の次数の式とする]
の係数aj が設定されている。この係数aj は、入力端
子15に供給される書き込み/読み出し信号WRが書き
込み状態になることにより、8ビットのレジスタ16に
ラッチされる。この場合、係数aj は、xの次数の上位
から下位にかけてレジスタ16の図中右側から左側のビ
ットにラッチされる。そして、レジスタ16にラッチさ
れた各係数aj は、入力端子15に供給される書き込み
/読み出し信号WRが読み出し状態になることにより、
各アンド回路17a〜17hの一方の入力端に出力され
ている。
【0007】これらアンド回路17a〜17hの各他方
の入力端には、最終段のラッチ回路13hの出力が供給
されている。このため、最終段のラッチ回路13hから
1が出力されたとき、つまり被除式f(x)の最高次の
係数an が出力されたとき、各アンド回路17a〜17
hはゲート開状態となり、基本式P(x)の各係数aj
が出力される。
【0008】ここで、各ラッチ回路13a〜13hの前
段には、入力端子11及び前段のラッチ回路13a〜1
3gから出力される係数ai と、アンド回路17a〜1
7hから得られる係数aj とを排他的論理和演算する加
算回路18a〜18hが設置されており、ここに、被除
式f(x)が基本式P(x)で除算される。そして、被
除式f(x)の全データ列の係数ai が入力端子11に
入力された後、入力端子11に8ビット分の0データを
入力することにより、各ラッチ回路13a〜13hにC
RC符号である剰余r(x)の各次数の係数ak (6≦
k≦0)が得られ、CRC符号が生成されることにな
る。
【0009】しかしながら、上記のような従来のCRC
計算回路では、ラッチ回路13a〜13hによる被除式
f(x)の次数nだけのシフト動作が必要となり、例え
ば256バイトのデータ列からCRC符号を生成するに
は、256×8=2048クロックが必要であり、計算
速度にハード的な限界が生じることになる。
【0010】
【発明が解決しようとする課題】以上のように、従来の
CRC計算回路では、計算速度にハード上の制限が生じ
るという問題を有している。
【0011】そこで、この発明は上記事情を考慮してな
されたもので、簡易な構成でCRC符号の計算速度をよ
り一層高速化することができる極めて良好なCRC計算
回路を提供することを目的とする。
【0012】
【課題を解決するための手段】この発明に係るCRC計
算回路は、一連のデータ列をn次(nは正の整数)の多
項式f(x)で表わし、該多項式f(x)をm次(mは
正の整数)の基本式P(x)で除算した剰余r(x)を
CRC符号として生成するものを対象としている。そし
て、多項式f(x)の上位k項(kはk<nの正の整
数)が取り得る全ての式を基本式P(x)で除算した各
剰余が記録されたメモリと、多項式f(x)の上位k項
に付加された各係数に基づいてメモリのアドレスを指定
し対応する剰余を読み出すアクセス手段と、このアクセ
ス手段で読み出された剰余を多項式f(x)の上位k項
を除く下位項に加算する加算手段とを備えるようにした
ものである。
【0013】
【作用】上記のような構成によれば、多項式f(x)の
上位k項を基本式P(x)で除算した剰余をメモリから
アクセスして多項式f(x)の下位項に加えるようにし
たので、k回のシフト動作が1回のメモリのアクセス動
作に置換されることになり、簡易な構成でCRC符号の
計算速度を従来に比してk倍に高速化することができ
る。
【0014】
【実施例】以下、この発明の一実施例について図面を参
照して詳細に説明する。図1において、符号19は4ビ
ットの入力端子で、被除式f(x)のxの次数の上位か
ら4ビットづつ順にその項の係数ai が入力される。こ
の入力端子19に供給された係数ai は、排他的論理和
演算機能を有する8ビットレジスタ20の図中左側4ビ
ットに供給される。この8ビットレジスタ20の左側4
ビットに取り込んだデータは、右側4ビットに移行させ
ることができ、右側4ビットに取り込んだデータは、4
ビットレジスタ21に移行させることができる。
【0015】そして、この4ビットレジスタ21に取り
込んだデータは、8ビット×24 語構成のメモリ22
に、その8ビットで指定されるアドレスの内の4ビット
アドレスとして供給される。また、このメモリ22に
は、7次の基本式 P(x)=a7 7 +a6 6 +a5 5 +……+a1 1 +a0 0 の係数aj (7≦j≦0)が8ビットの入力端子23を
介して入力されるとともに、アドレスの残りの4ビット
が4ビットの入力端子24を介して供給されている。
【0016】ここで、上記メモリ22に記憶されている
内容について説明する。今、xの11次から8次までの
項を持つ式 g(x)=a1111+a1010+a9 9 +a8 8 を考えると、その各係数am (11≦m≦8)は0また
は1であるので、この式g(x)は24 =16通りが存
在することになる。そして、メモリ22には、この式g
(x)を基本式P(x)で除算した剰余が書き込まれて
いる。すなわち、除算した商をA(x),剰余をh
(x)とすると、 g(x)=A(x)・P(x)+h(x) であり、剰余h(x)も16種類存在することになる。
【0017】そして、今、入力端子19に被除式 f(x)=a1111+a1010+……+a1 1 +a0 0 の各係数ai (11≦i≦0)が入力されたとする。す
ると、4ビットレジスタ21には、係数a11〜a8 がセ
ットされ、8ビットレジスタ20には、係数a7 〜a0
がセットされる。このとき、メモリ22からは、 (a1111+a1010+a9 9 +a8 8 )/P(x) の剰余h(x)が出力され、8ビットレジスタ20の内
容と排他的論理和演算が行なわれる。
【0018】次に、8ビットレジスタ20の右側4ビッ
トの内容を4ビットレジスタ21に移行し、8ビットレ
ジスタ20の左側4ビットの内容を右側4ビットに移行
し、8ビットレジスタ20の左側4ビットに入力端子1
9に供給された新たな4ビットの係数ai を移行する。
すると、上記と同様に、メモリ22から4ビットレジス
タ21の内容で決まる剰余h(x)が出力され、8ビッ
トレジスタ20の内容と排他的論理和演算が行なわれ
る。
【0019】すなわち、この回路は、被除式f(x)の
上位4項を基本式P(x)で除算した剰余h(x)を被
除式f(x)の上位4項を除く下位8項に加え、その
後、被除式f(x)を上位側に4項分シフトさせた上位
4項を基本式P(x)で除算した剰余h(x)を被除式
f(x)の上位4項を除く下位4項に加えるという動作
を繰り返すことでf(x)/P(x)を実現していくも
ので、最後に8ビットレジスタ20に残ったデータがC
RC符号となる。
【0020】したがって、上記実施例のような構成によ
れば、被除式f(x)の上位4項を基本式P(x)で除
算した剰余h(x)をメモリ22からアクセスして被除
式f(x)の下位項に加えるようにしたので、4回のシ
フト動作が1回のメモリ22のアクセス動作に置換され
ることになり、簡易な構成でCRC符号の計算速度を従
来に比して4倍高速化することができる。また、上記実
施例では4ビット毎の処理としたが、これに限らず例え
ば8ビット毎の処理とすれば、CRC符号の計算速度を
従来に比して8倍高速化することができる。
【0021】ここで、具体的な計算例について説明す
る。すなわち、被除式f(x)を基本式P(x)で除算
したときの商をA(x),剰余をr(x)とすると、先
に述べたように、 f(x)=A(x)・P(x)+r(x) …(1) が成立し、剰余r(x)がCRC符号となる。そこで、
被除式f(x)を、基本式P(x)の最高次数以上の項
のみの式f1 (x)と、基本式P(x)の最高次数未満
のみの式f2 (x)とに分け、 f(x)=f1 (x)+f2 (x) …(2) と表わすと、(1),(2)式より、 f(x)=A1 (x)・P(x)+r1 (x) +A2 (x)・P(x)+r2 (x) …(3) となる。
【0022】この場合、式f2 (x)の次数は基本式P
(x)の最高次数よりも低いのだから、(3)式におい
てA2 (x)・P(x)の項は0となる。つまり、 f2 (x)=r2 (x) である。このため、 f(x)=A1 (x)・P(x)+r1 (x)+r2 (x) となり、r1 (x)+r2 (x)がCRC符号となる。
【0023】このため、CRC符号の計算においては、
基本式P(x)の最高次数以上の項だけで計算を施した
後に、残りの項を余りに加えればよい。具体的には、 P(x)= x4 +x3 +1 = 11001 f(x)=x9 +x7 +x5 +x2 +x1 +1 =1010100111 =1010100000+00111 f1 (x)=x9 +x7 +x5 =A1 (x)・P(x)+r1 (x) =1010100000 f2 (x)=x4 +x3 +1 = 00111 r(x)=r1 (x)+f2 (x)=r1 (x)+00111 となる。なお、この発明は上記実施例に限定されるもの
ではなく、この外その要旨を逸脱しない範囲で種々変形
して実施することができる。
【0024】
【発明の効果】以上詳述したようにこの発明によれば、
簡易な構成でCRC符号の計算速度をより一層高速化す
ることができる極めて良好なCRC計算回路を提供する
ことができる。
【図面の簡単な説明】
【図1】この発明に係るCRC計算回路の一実施例を示
すブロック構成図。
【図2】従来のCRC計算回路を示すブロック構成図。
【符号の説明】
11,12…入力端子、13a〜13h…ラッチ回路、
14,15…入力端子、16…レジスタ、17a〜17
h…アンド回路、18a〜18h…加算回路、19…入
力端子、20…8ビットレジスタ、21…4ビットレジ
スタ、22…メモリ、23,24…入力端子。

Claims (1)

    【特許請求の範囲】
  1. 【請求項1】 一連のデータ列をn次(nは正の整数)
    の多項式f(x)で表わし、該多項式f(x)をm次
    (mは正の整数)の基本式P(x)で除算した剰余r
    (x)をCRC符号として生成するCRC計算回路にお
    いて、前記多項式f(x)の上位k項(kはk<nの正
    の整数)が取り得る全ての式を前記基本式P(x)で除
    算した各剰余が記録されたメモリと、前記多項式f
    (x)の上位k項に付加された各係数に基づいて前記メ
    モリのアドレスを指定し対応する剰余を読み出すアクセ
    ス手段と、このアクセス手段で読み出された剰余を前記
    多項式f(x)の上位k項を除く下位項に加算する加算
    手段とを具備してなることを特徴とするCRC計算回
    路。
JP4039001A 1992-02-26 1992-02-26 Crc計算回路 Pending JPH05244016A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP4039001A JPH05244016A (ja) 1992-02-26 1992-02-26 Crc計算回路

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP4039001A JPH05244016A (ja) 1992-02-26 1992-02-26 Crc計算回路

Publications (1)

Publication Number Publication Date
JPH05244016A true JPH05244016A (ja) 1993-09-21

Family

ID=12540889

Family Applications (1)

Application Number Title Priority Date Filing Date
JP4039001A Pending JPH05244016A (ja) 1992-02-26 1992-02-26 Crc計算回路

Country Status (1)

Country Link
JP (1) JPH05244016A (ja)

Similar Documents

Publication Publication Date Title
EP2149083B1 (en) Fifo buffer
JPH05290527A (ja) デ・インターリーブ回路
EP0117756B1 (en) Data interpolating circuit
JPS60146346A (ja) ハツシング装置
JPS6364413A (ja) 逐次近似レジスタ
US3914588A (en) Digital filters
JP2766133B2 (ja) パラレル・シリアル・データ変換回路
US6480912B1 (en) Method and apparatus for determining the number of empty memory locations in a FIFO memory device
JP4586633B2 (ja) デコーダ回路、デコード方法及びデータ記録装置
JP2001044853A (ja) チェンサーチ回路、誤り訂正装置及びディスクドライブ装置
JPH0315221B2 (ja)
JPH02126321A (ja) 命令コードのデコード装置
JP3231811B2 (ja) 行列演算回路
US7065606B2 (en) Controller architecture for memory mapping
JPH0311565B2 (ja)
JPH0125443B2 (ja)
JP2024027962A (ja) インタリーブ回路および通信装置
JPS6045501B2 (ja) 連想メモリ装置
JPH01314023A (ja) ディジタル信号処理回路
JP2501184B2 (ja) アドレス生成回路
KR0155734B1 (ko) 디지탈 신호처리방법 및 장치
JP3309458B2 (ja) 記憶装置
JPH03198143A (ja) バス・インターフェイス装置およびリード・モディファイ・ライト制御方式
JPS607815B2 (ja) 桁あふれ検出及び訂正回路
JPS63136073A (ja) キヤリ−ビツトを用いた高速ビツト転置方法