JP2008011025A - 巡回冗長検査のための剰余計算装置 - Google Patents

巡回冗長検査のための剰余計算装置 Download PDF

Info

Publication number
JP2008011025A
JP2008011025A JP2006177818A JP2006177818A JP2008011025A JP 2008011025 A JP2008011025 A JP 2008011025A JP 2006177818 A JP2006177818 A JP 2006177818A JP 2006177818 A JP2006177818 A JP 2006177818A JP 2008011025 A JP2008011025 A JP 2008011025A
Authority
JP
Japan
Prior art keywords
remainder
information
unit
exclusive
calculation
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.)
Withdrawn
Application number
JP2006177818A
Other languages
English (en)
Inventor
Ryusuke Kiryu
隆介 桐生
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.)
Fujitsu Ltd
Original Assignee
Fujitsu 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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2006177818A priority Critical patent/JP2008011025A/ja
Priority to EP06255310A priority patent/EP1873920A1/en
Priority to US11/589,906 priority patent/US20080022185A1/en
Publication of JP2008011025A publication Critical patent/JP2008011025A/ja
Withdrawn legal-status Critical Current

Links

Images

Classifications

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

Landscapes

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

Abstract

【課題】CRC符号化またはCRC符号の誤り検出において、部分剰余計算に必要な剰余テーブルのサイズを削減する。
【解決手段】記憶手段51は、複数の単位情報列の値をインデクスとして、対応する剰余情報列の値をそれぞれ保持する複数の剰余テーブルを記憶する。テーブル引き手段52は、1回のループ処理で処理される対象情報列を複数の単位情報列に分割して、それぞれの単位情報列の値をインデクスとして上記複数の剰余テーブルを参照し、複数の剰余情報列の値を取得する。計算手段53は、得られた複数の剰余情報列と、入力情報列のうち未処理部分の先頭情報列との排他的論理和を計算する。そして、テーブル引き手段52は、得られた排他的論理和の情報列を次回のループ処理における対象情報列として用いて、複数の剰余テーブルの参照を所定回数繰り返す。
【選択図】図1

Description

本発明は、巡回冗長検査(CRC)符号化またはCRC符号の誤り検出において、入力情報列の剰余を計算する装置に関する。
従来のCRC符号化およびCRC符号の誤り検出においては、入力ビット列に対応する多項式を生成多項式で除算して剰余を求める、剰余計算が行われる(例えば、下記の特許文献1および2を参照)。Kビットの符号ビット列Pに対して、M次の生成多項式G(x)による剰余計算をtビットずつの多ビット処理で実現する場合、ビット数tの任意のビット列pに対する剰余を表すMビットのビット列Rを記録した剰余テーブルが用意される。
この場合、ビット列pおよびRに対応する多項式をそれぞれp(x)およびR(x)とすると、R(x)は、p(x)・xM をG(x)で除算したときの剰余を表す。P、G(x)、p、p(x)、R、およびR(x)は、それぞれ次式により定義される。

P=b0 ,b1 ,b2 ,...,bK-1 (1)

G(x)=a0 ・xM +a1 ・xM-1 +・・・+aM ・x0 (2)

p=b0 ,b1 ,b2 ,...,bt-1 (3)

p(x)=b0 ・xt-1 +b1 ・xt-2 +b2 ・xt-3 +・・・+bt-1 ・x0
={b0 ,b1 ,b2 ,...,bt-1 } (4)

R=r0 ,r1 ,r2 ,...,rM-1 (5)

R(x)=r0 ・xM-1 +r1 ・xM-2 +r2 ・xM-3 +・・・+rM-1 ・x0
={r0 ,r1 ,r2 ,...,rM-1 } (6)

これらのビット列の各ビットは、論理“0”または“1”の値をとる。上記剰余テーブルを使用したtビットずつの順次処理により、入力ビット列Pに対する剰余計算が行われる。
図15は、このような剰余計算を行う剰余計算装置の構成図である。この剰余計算装置は、メモリ11、16、ビット列読出し部12、ビット分離部13、ビット結合部14、テーブル引き部15、排他的論理和(EOR)部17、およびレジスタ18を備える。
メモリ11には、剰余計算対象のKビットの入力ビット列Pが格納され、メモリ16には、p(x)・xM の剰余テーブルRTable[]が格納されている。最初に、入力ビット列Pの先頭のMビットが、R’としてMビットのレジスタ18に格納される。

R’=r’0,r’1 ,r’2 ,...,r’M-1
← b0,b1 ,b2 ,...,bM-1 (7)

以後、所定回数分、以下のtビット分の部分剰余計算が繰り返される。
まず、ビット分離部13は、レジスタ18の先頭のtビットr’0 ,r’1 ,r’2 ,...,r’t-1 を取り出し、テーブル引き部15は、メモリ16上のRTable[]のテーブル引きを行い、Mビットのテーブル引き結果Rを得る。

R ← RTable[r’0 ,r’1 ,r’2 ,...,r’t-1 ] (8)

ビット列読出し部12は、メモリ11から入力ビット列Pの続きをtビット読み出し、そのビット列をpとして、ビット結合部14に出力する。

p ← b(i-1)t+M,b(i-1)t+M+1,...,bit+M-1 (i=1,2,...) (9)

ビット結合部14は、レジスタ18の末尾の(M−t)ビットr’t ,r’t+1 ,...,r’M-1 にpを接続し、Mビットのビット列R″を生成する。

R″ ← r’t ,r’t+1 ,...,r’M-1 ,p
= r’t ,r’t+1 ,...,r’M-1 ,b(i-1)t+M,b(i-1)t+M+1,...,bit+M-1
(10)

EOR部17は、R″とRのEOR(“+”と表記する)を計算し、計算結果をR’としてレジスタ18に格納する。

R’ ← R+R″ (11)

以上の部分剰余計算を所定回数繰り返した後のR’が、入力ビット列Pに対する剰余計算結果となる。
図16は、メモリ16上のRTable[]の作成方法を示している。この例では、p(x)={b0 ,b1 ,b2 ,...,bt-1 }毎にR(x)={r0 ,r1 ,r2 ,...,rM-1 }がテーブル化される。

RTable[b0 ,b1 ,b2 ,...,bt-1
=MOD({b0 ,b1 ,b2 ,...,bt-1 }・xM ,G(x)) (12)

RTable[]の1要素のサイズはMビットで、要素数は2t である。したがって、テーブル全体のサイズはM・2t となる。図16のQ(x)は、商の多項式を表す。
図17は、RTable[]を用いたtビット分の処理を示している。P=b0 ,b1 ,b2 ,...,bK-1 の先頭tビット分の剰余計算により、処理結果R’が得られる。

R’=b’t,b’t+1 ,...,b’t+M-1 (13)

MビットのR’は、いわゆるCRC計算時のCRCレジスタに相当する。このR’は、RTable[]のテーブル引きとEOR計算により簡単に求めることができる。

R’(x)=MOD({b0 ,b1 ,...,bt+M-1 },G(x))
=MOD({b0 ,b1 ,...,bt-1 }・xM ,G(x))
+{bt ,bt+1 ,...,bt+M-1
=RTable[b0 ,b1 ,...,bt-1
+{bt ,bt+1 ,...,bt+M-1
={r0 ,r1 ,...,rM-1 }+{bt ,bt+1 ,...,bt+M-1
={b’t ,b’t+1 ,...,b’t+M-1 } (14)

引き続き処理すべきビット列をP’とすると、多項式P’(x)は次式のようになる。

P’(x)=R’(x)・x(K-1)-(t-M-1) +{bt+M ,bt+M+1 ,...,bK-1
={b’t ,b’t+1 ,...,b’t+M-1 ,bt+M ,bt+M+1 ,...,bK-1
(15)
図18に示すように、P’を新たなPとみなして処理を繰り返すことで、n回の繰り返し処理によりn・tビット分の剰余が計算される。したがって、K/t回の繰り返し処理により得られたR’(x)が、Kビットの入力ビット列Pに対する剰余計算結果となる。図18では、3回の繰り返し処理が示されている。
CRC符号化の場合、R’(x)がパリティビットとして使用され、CRC符号の誤り検出の場合、R’(x)が0以外であれば誤りがあることを示している。
特開2005−006188号公報 国際公開第2003/090362号パンフレット
上述した従来の剰余計算では、tビットずつの処理に必要な剰余テーブルのサイズがM・2t ビットとなる。このため、tの値に従ってテーブルサイズが指数関数的に増大するため、tをあまり大きく設定することができない。
本発明の課題は、CRC符号化またはCRC符号の誤り検出において、部分剰余計算に必要な剰余テーブルのサイズを削減することである。
図1は、本発明の剰余計算装置の原理図である。図1の剰余計算装置は、記憶手段51、テーブル引き手段52、および計算手段53を備え、入力情報列に対応する多項式を生成多項式で除算したときの剰余を計算する。
記憶手段51は、複数の単位情報列の値をインデクスとして、対応する剰余情報列の値をそれぞれ保持する複数の剰余テーブルを記憶する。テーブル引き手段52は、1回のループ処理で処理される対象情報列を複数の単位情報列に分割して、それぞれの単位情報列の値をインデクスとして上記複数の剰余テーブルを参照し、複数の剰余情報列の値を取得する。計算手段53は、得られた複数の剰余情報列と、入力情報列のうち未処理部分の先頭情報列との排他的論理和を計算する。
そして、テーブル引き手段52は、得られた排他的論理和の情報列を次回のループ処理における対象情報列として用いて、複数の剰余テーブルの参照を所定回数繰り返す。
入力情報列は、先頭から順番に対象情報列と同じ長さで区切られて、計算手段51に入力され、計算手段51は、前回のループ処理で得られた複数の剰余情報列と、入力された未処理の情報列との排他的論理和を計算し、それを対象情報列としてテーブル引き手段52に出力する。テーブル引き手段52は、受け取った対象情報列を複数の単位情報列に分割し、各単位情報列の値をインデクスとして各剰余テーブルを参照する。得られた複数の剰余情報列は計算手段51に出力され、次回のループ処理で使用される。
このようなループ処理の繰り返しにより、前記入力情報列に対する剰余計算結果が求められる。
例えば、後述する図11の剰余計算装置において、記憶手段51は、メモリ104および106に対応し、テーブル引き手段52は、テーブル引き部103および105に対応し、計算手段53は、EOR部107に対応する。
また、図12の剰余計算装置において、記憶手段51は、メモリ205、207、209、および211に対応し、テーブル引き手段52は、テーブル引き部204、206、208、および210に対応し、計算手段53は、EOR部203および212に対応する。
対象情報列の長さをt、剰余情報列の長さをM、対象情報列の分割数をN、単位情報列の長さをs(=t/N)とすると、各剰余テーブルの1要素のサイズはMビットで、要素数は2s となる。したがって、N個のテーブル全体のサイズはN・M・2sとなる。N≧2かつs≧2とすると、M・2s ビットのテーブルをN個用意した場合とM・2t ビットのテーブルを1個用意した場合の全体のサイズの比率は、次式のようになる。

(N・M・2s )/(M・2t )=N・2s /2Ns<1 (21)

したがって、従来の剰余テーブルと比較すると、全体としてテーブルサイズを削減することができ、1回のループ処理で処理される対象情報列の長さtを、大きな値に設定することが可能になる。例えば、t=32、N=4の場合、s=8となるから、テーブルサイズは(M・2s ・N)/(M・2t )=1/222に削減される。
以下、図面を参照しながら、本発明を実施するための最良の形態を詳細に説明する。
本実施形態の剰余計算装置は、例えば、複数の演算器を有するプロセッサや、メモリ参照にレーテンシサイクルを必要とするプロセッサにより実現される。
そして、ビット数tの任意のビット列pに対応するp(x)・xM の剰余をテーブルとして用意する代わりに、s=t/Nなるパラメータを導入して、N個の剰余テーブルを用意する。このとき、ビット数sの任意のビット列p’に対応する多項式をp’(x)として、p’(x)・xM+(N-1)s,p’(x)・xM+(N-2)s,...,p’(x)・xM+s ,p’(x)・xM の剰余を、それぞれテーブルRTable1[],RTable2[],...,RTable(N−1)[],RTableN[]に登録する。p’およびp’(x)は、それぞれ次式により定義される。

p’=b’0,b’1 ,b’2 ,...,b’s-1 (22)

p’(x)=b’0 ・xs-1 +b’1 ・xs-2 +b’2 ・xs-3 +・・・+b’s-1 ・x0
={b’0 ,b’1 ,b’2 ,...,b’s-1 } (23)
図2、図3、および図4は、それぞれ剰余テーブルRTable1[]、RTable2[]、およびRTableN[]の作成方法を示している。この例では、p’(x)={b’0 ,b’1 ,b’2 ,...,b’s-1 }毎にR(x)={r0 ,r1 ,r2 ,...,rM-1 }がテーブル化される。

RTable1[b’0 ,b’1 ,b’2 ,...,b’s-1
=MOD({b’0 ,b’1 ,b’2 ,...,b’s-1 }・xM+(N-1)s,G(x))
(24)

RTable2[b’0 ,b’1 ,b’2 ,...,b’s-1
=MOD({b’0 ,b’1 ,b’2 ,...,b’s-1 }・xM+(N-2)s,G(x))
(25)

RTableN[b’0 ,b’1 ,b’2 ,...,b’s-1
=MOD({b’0 ,b’1 ,b’2 ,...,b’s-1 }・xM ,G(x))
(26)

各剰余テーブルの1要素のサイズはMビットで、要素数は2s となる。したがって、N個のテーブル全体のサイズはN・M・2s である。
図5は、N個の剰余テーブルによる剰余計算を示しており、図6、図7、および図8は、それぞれRTable1[]、RTable2[]、およびRTableN[]のテーブル引きを示している。
tビットのビット列pの先頭のsビットのビット列p1 をインデクスとして、RTable1[]のテーブル引きを行い、R1 を取得する。続くsビットのビット列p2 ,...,pN も同様にインデクスとして、RTable2[],...,RTableN[]のテーブル引きを行い、それぞれR2 ,...,RN を得る。

p(x)=p1 (x)・x(N-1)s+p2 (x)・x(N-2)s+・・・+pN (x) (27)

1 (x)=RTable1[p1
2 (x)=RTable1[p2
・・・
N (x)=RTable1[pN ] (28)

そして、次式によりp(x)・xM の剰余R(x)を得る。

R(x)=R1 (x)+R2 (x)+・・・+RN (x) (29)
図9は、N個の剰余テーブルを用いたtビット分の処理を示している。P=b0 ,b1 ,b2 ,...,bK-1 の先頭tビット分の剰余計算により、処理結果R’が得られる。

R’=b’t,b’t+1 ,...,b’t+M-1 (30)

このR’は、RTable1[]〜RTableN[]のテーブル引きとEOR計算により簡単に求めることができる。

R’(x)=MOD({b0 ,b1 ,...,bt-1 }・xM ,G(x))
+{bt ,bt+1 ,...,bt+M-1
=R(x)+{bt ,bt+1 ,...,bt+M-1
=RTable1[b0 ,b1 ,...,bs-1
+RTable2[bs ,bs+1 ,...,b2s-1]+・・・
+RTableN[b(N-1)s,b(N-1)s+1,...,bNs-1
+{bt ,bt+1 ,...,bt+M-1 } (31)

引き続き処理すべきビット列をP’とすると、多項式P’(x)は次式のようになる。

P’(x)=R’(x)・x(K-1)-(t-M-1) +{bt+M ,bt+M+1 ,...,bK-1
={b’t ,b’t+1 ,...,b’t+M-1 ,bt+M ,bt+M+1 ,...,bK-1
(32)
図10に示すように、P’を新たなPとみなして処理を繰り返すことで、n回の繰り返し処理によりn・tビット分の剰余が計算される。図10では、3回の繰り返し処理が示されている。
次に、図11および図12を参照しながら、このような剰余テーブルを用いた剰余計算装置の構成例について説明する。
図11は、M=16、t=16、N=2、s=8の場合の剰余計算装置の構成例を示している。この剰余計算装置は、メモリ101、104、106、ビット列読出し部102、テーブル引き部103、105、EOR部107、およびレジスタ108を備える。
メモリ101には、剰余計算対象のKビットの入力ビット列Pが格納され、メモリ104には、p’(x)・xM+s の剰余テーブルRTable1[]が格納され、メモリ106には、p’(x)・xM の剰余テーブルRTable2[]が格納されている。
ビット列読出し部102は、メモリ101上に格納されたビット列Pを、先頭から順番にtビット(16ビット)ずつ読み出し、EOR部107に出力する。テーブル引き部103は、Mビット(16ビット)のレジスタ108のレジスタ値の先頭sビット(8ビット)を用いて、RTable1[]のテーブル引きにより剰余R1 (x)のビット列を取得し、EOR部107に出力する。テーブル引き部105は、レジスタ108のレジスタ値の残りのsビット(8ビット)を用いて、RTable2[]のテーブル引きにより剰余R2 (x)のビット列を取得し、EOR部107に出力する。
EOR部107は、ビット列読出し部102から受け取ったビット列と、R1 (x)およびR2 (x)のビット列のEORを計算し、計算結果をレジスタ108に格納する。
レジスタ108の初期値をオール0として以上の処理を行うことで、ビット列Pの先頭の16ビットがレジスタ108に格納される。その後、ビット列Pの残りのビット列について、以上の処理をK/t回繰り返すことで、入力ビット列Pに対する剰余計算結果がレジスタ108に格納される。ただし、最後のループでは、ビット列読出し部102からEOR部107に対して、オール0のビット列が出力される。レジスタ108の剰余計算結果を用いて、CRC符号化またはCRC符号の誤り検出が行われる。
複数の演算器を有し、1命令サイクル中に2回メモリ参照可能なプロセッサや、メモリ参照にレーテンシサイクルを必要とするプロセッサの場合、テーブル引き部103および105によるテーブル引き処理を、tビット分の1回のループの間に、処理サイクル数の増大なしに行うことも可能である。
また、剰余テーブルに必要なメモリ領域は、従来の220(=M・2t )ビットから213(=M・2s・N)ビットに削減される。
図12は、M=16、t=32、N=4、s=8の場合の剰余計算装置の構成例を示している。この剰余計算装置は、メモリ201、205、207、209、211、ビット列読出し部202、EOR部203、212、テーブル引き部204、206、208、210、およびレジスタ213を備える。
メモリ201には、剰余計算対象のKビットの入力ビット列Pが格納され、メモリ205には、p’(x)・xM+3sの剰余テーブルRTable1[]が格納され、メモリ207には、p’(x)・xM+2sの剰余テーブルRTable2[]が格納されている。また、メモリ209には、p’(x)・xM+s の剰余テーブルRTable3[]が格納され、メモリ211には、p’(x)・xM の剰余テーブルRTable4[]が格納されている。
ビット列読出し部202は、メモリ201上に格納されたビット列Pを、先頭から順番にtビット(32ビット)ずつ読み出し、EOR部203に出力する。EOR部203は、ビット列読出し部202から受け取ったビット列と、Mビット(16ビット)のレジスタ213のレジスタ値のEORを、先頭詰めで計算する。
このとき、16ビットのレジスタ値の後ろにオール0の16ビットのビット列が付加されて、32ビットのビット列が生成され、そのビット列とビット列読出し部202からのビット列のEORが計算される。そして、EOR部203は、tビット(32ビット)の計算結果をテーブル引き部204、206、208、および210に出力する。
テーブル引き部204は、EOR部203から受け取ったビット列の先頭sビット(8ビット)を用いて、RTable1[]のテーブル引きにより剰余R1 (x)のビット列を取得し、EOR部212に出力する。テーブル引き部206は、次のsビット(8ビット)を用いて、RTable2[]のテーブル引きにより剰余R2 (x)のビット列を取得し、EOR部212に出力する。
テーブル引き部208は、さらに次のsビット(8ビット)を用いて、RTable3[]のテーブル引きにより剰余R3 (x)のビット列を取得し、EOR部212に出力する。テーブル引き部210は、最後のsビット(8ビット)を用いて、RTable4[]のテーブル引きにより剰余R4 (x)のビット列を取得し、EOR部212に出力する。
EOR部212は、R1 (x)、R2 (x)、R3 (x)、およびR4 (x)のビット列のEORを計算し、計算結果をレジスタ213に格納する。
レジスタ213の初期値をオール0として以上の処理をK/t回繰り返すことで、入力ビット列Pに対する剰余計算結果がレジスタ213に格納される。そして、レジスタ213の剰余計算結果を用いて、CRC符号化またはCRC符号の誤り検出が行われる。
複数の演算器を有し、1命令サイクル中に複数回メモリ参照可能なプロセッサや、メモリ参照にレーテンシサイクルを必要とするプロセッサの場合、複数のテーブル引き部によるテーブル引き処理を、tビット分の1回のループの間に、処理サイクル数の増大なしに行うことも可能である。
また、剰余テーブルに必要なメモリ領域は、従来の236(=M・2t )ビットから214(=M・2s・N)ビットに削減される。
図11および図12の剰余計算装置は、例えば、図13に示すような情報処理装置(コンピュータ)を用いて構成される。図13の情報処理装置は、CPU(中央処理装置)301、メモリ302、入力装置303、出力装置304、外部記憶装置305、媒体駆動装置306、およびネットワーク接続装置307を備え、それらはバス308により互いに接続されている。
メモリ302は、例えば、ROM(read only memory)、RAM(random access memory)等を含み、処理に用いられるプログラムおよびデータを格納する。CPU301は、メモリ302を利用してプログラムを実行することにより、上述した剰余計算を含む様々な処理を行う。
この場合、図11のメモリ101、104、106、および図12のメモリ201、205、207、209、211は、メモリ302に対応する。図11のビット列読出し部102、テーブル引き部103、105、およびEOR部107と、図12のビット列読出し部202、EOR部203、212、およびテーブル引き部204、206、208、210は、メモリ302に格納されたプログラムに対応する。
入力装置303は、例えば、キーボード、ポインティングデバイス等であり、オペレータからの指示や情報の入力に用いられる。出力装置304は、例えば、ディスプレイ、プリンタ、スピーカ等であり、オペレータへの問い合わせや処理結果の出力に用いられる。
外部記憶装置305は、例えば、磁気ディスク装置、光ディスク装置、光磁気ディスク装置、テープ装置等である。情報処理装置は、この外部記憶装置305に、プログラムおよびデータを格納しておき、必要に応じて、それらをメモリ302にロードして使用する。
媒体駆動装置306は、可搬記録媒体309を駆動し、その記録内容にアクセスする。可搬記録媒体309は、メモリカード、フレキシブルディスク、光ディスク、光磁気ディスク等の任意のコンピュータ読み取り可能な記録媒体である。オペレータは、この可搬記録媒体309にプログラムおよびデータを格納しておき、必要に応じて、それらをメモリ302にロードして使用する。
ネットワーク接続装置307は、通信ネットワークに接続され、CRC符号を含むビット列の送受信を行う。また、情報処理装置は、必要に応じて、プログラムおよびデータを外部の装置からネットワーク接続装置307を介して受け取り、それらをメモリ302にロードして使用する。
図14は、図13の情報処理装置にプログラムおよびデータを提供する方法を示している。可搬記録媒体309やサーバ401のデータベース411に格納されたプログラムおよびデータは、情報処理装置402のメモリ302にロードされる。サーバ401は、そのプログラムおよびデータを搬送する搬送信号を生成し、通信ネットワーク上の任意の伝送媒体を介して情報処理装置402に送信する。CPU301は、そのデータを用いてそのプログラムを実行し、必要な処理を行う。
本発明の剰余計算装置の原理図である。 1番目の剰余テーブルの作成方法を示す図である。 2番目の剰余テーブルの作成方法を示す図である。 N番目の剰余テーブルの作成方法を示す図である。 N個の剰余テーブルによる剰余計算を示す図である。 1番目の剰余テーブルのテーブル引きを示す図である。 2番目の剰余テーブルのテーブル引きを示す図である。 N番目の剰余テーブルのテーブル引きを示す図である。 tビット分の処理を示す図である。 繰り返し処理を示す図である。 第1の剰余計算装置の構成図である。 第2の剰余計算装置の構成図である。 情報処理装置の構成図である。 プログラムおよびデータの提供方法を示す図である。 従来の剰余計算装置の構成図である。 従来の剰余テーブル作成方法を示す図である。 従来のtビット分の処理を示す図である。 従来の繰り返し処理を示す図である。
符号の説明
11、16、101、104、106、201、205、207、209、211、302 メモリ
12、102、202 ビット列読出し部
13 ビット分離部
14 ビット結合部
15、103、105、204、206、208、210 テーブル引き部
17、107、203、212 EOR部
18、108、213 レジスタ
51 記憶手段
52 テーブル引き手段
53 計算手段
301 CPU
303 入力装置
304 出力装置
305 外部記憶装置
306 媒体駆動装置
307 ネットワーク接続装置
308 バス
309 可搬記録媒体
401 サーバ
402 情報処理装置
411 データベース

Claims (5)

  1. 入力情報列に対応する多項式を生成多項式で除算したときの剰余を計算する剰余計算装置であって、
    複数の単位情報列の値をインデクスとして、対応する剰余情報列の値をそれぞれ保持する複数の剰余テーブルを記憶する記憶手段と、
    1回のループ処理で処理される対象情報列を複数の単位情報列に分割して、それぞれの単位情報列の値をインデクスとして前記複数の剰余テーブルを参照し、複数の剰余情報列の値を取得するテーブル引き手段と、
    得られた複数の剰余情報列と、前記入力情報列のうち未処理部分の先頭情報列との排他的論理和を計算する計算手段とを備え、
    前記テーブル引き手段は、得られた排他的論理和の情報列を次回のループ処理における対象情報列として用いて、前記複数の剰余テーブルの参照を所定回数繰り返すことを特徴とする剰余計算装置。
  2. 前記記憶手段は、N個の剰余テーブルを記憶し、i番目の剰余テーブルは、単位情報列の長さをsとし、剰余情報列の長さをMとし、xのs−1次の多項式をp’(x)としたとき、p’(x)・xM+(N-i)sを前記生成多項式で除算して得られた剰余多項式のM個の係数を、該単位情報列の値に対応する剰余情報列の値として保持することを特徴とする請求項1記載の剰余計算装置。
  3. 前記計算手段により得られた排他的論理和の情報列を記憶するレジスタ手段をさらに備え、該計算手段は、最後のループ処理において得られた複数の剰余情報列の排他的論理和を、前記入力情報列に対する剰余計算結果として該レジスタ手段に格納することを特徴とする請求項1または2記載の剰余計算装置。
  4. 前記複数の剰余情報列の排他的論理和の情報列を記憶するレジスタ手段をさらに備え、前記計算手段は、前記先頭情報列と該レジスタ手段の情報列の排他的論理和を先頭詰めで計算し、最後のループ処理において得られた複数の剰余情報列の排他的論理和を、前記入力情報列に対する剰余計算結果として該レジスタ手段に格納することを特徴とする請求項1または2記載の剰余計算装置。
  5. 入力情報列に対応する多項式を生成多項式で除算したときの剰余を計算するコンピュータのためのプログラムであって、
    複数の単位情報列の値をインデクスとして、対応する剰余情報列の値をそれぞれ保持する複数の剰余テーブルを記憶手段に格納し、
    1回のループ処理で処理される対象情報列を複数の単位情報列に分割して、それぞれの単位情報列の値をインデクスとして前記複数の剰余テーブルを参照することで、複数の剰余情報列の値を取得し、
    得られた複数の剰余情報列と、前記入力情報列のうち未処理部分の先頭情報列との排他的論理和を計算し、
    得られた排他的論理和の情報列を次回のループ処理における対象情報列として用いて、前記複数の剰余テーブルの参照を所定回数繰り返す
    処理を前記コンピュータに実行させることを特徴とするプログラム。
JP2006177818A 2006-06-28 2006-06-28 巡回冗長検査のための剰余計算装置 Withdrawn JP2008011025A (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2006177818A JP2008011025A (ja) 2006-06-28 2006-06-28 巡回冗長検査のための剰余計算装置
EP06255310A EP1873920A1 (en) 2006-06-28 2006-10-16 Memory efficient polynomial division for CRC codes using look-up tables
US11/589,906 US20080022185A1 (en) 2006-06-28 2006-10-31 Remainder calculating apparatus for cyclic redundancy check

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006177818A JP2008011025A (ja) 2006-06-28 2006-06-28 巡回冗長検査のための剰余計算装置

Publications (1)

Publication Number Publication Date
JP2008011025A true JP2008011025A (ja) 2008-01-17

Family

ID=37531816

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006177818A Withdrawn JP2008011025A (ja) 2006-06-28 2006-06-28 巡回冗長検査のための剰余計算装置

Country Status (3)

Country Link
US (1) US20080022185A1 (ja)
EP (1) EP1873920A1 (ja)
JP (1) JP2008011025A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016178551A (ja) * 2015-03-20 2016-10-06 株式会社Pfu 通信装置及び制御方法

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8255754B2 (en) * 2007-05-15 2012-08-28 Texas Instruments Incorporated Range extension and noise mitigation for wireless communication links utilizing a CRC based single and multiple bit error correction mechanism
TWI371928B (en) * 2008-12-15 2012-09-01 Inst Information Industry Data correction apparatus, data correction method and computer program product thereof
US8966414B2 (en) 2009-05-29 2015-02-24 Cypress Semiconductor Corporation Implementing a circuit using an integrated circuit including parametric analog elements
US9858367B1 (en) 2009-08-31 2018-01-02 Cypress Semiconductor Corporation Integrated circuit including parametric analog elements
WO2013038464A1 (en) * 2011-09-16 2013-03-21 Hitachi, Ltd. Multi-stage encoding and decoding of bch codes for flash memories
US9960788B2 (en) * 2015-03-27 2018-05-01 Toshiba Memory Corporation Memory controller, semiconductor memory device, and control method for semiconductor memory device
CN114499828B (zh) * 2020-10-23 2024-04-30 京东方科技集团股份有限公司 通信方法、物联网终端、网关设备及物联网系统

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0631703A4 (en) * 1992-12-29 1996-03-20 Codex Corp DEVICE AND METHOD FOR THE POWERFUL GENERATION AND TESTING OF CRC REMAINS.
US6195780B1 (en) * 1997-12-10 2001-02-27 Lucent Technologies Inc. Method and apparatus for generating cyclical redundancy code
US6029186A (en) * 1998-01-20 2000-02-22 3Com Corporation High speed calculation of cyclical redundancy check sums
US6530057B1 (en) * 1999-05-27 2003-03-04 3Com Corporation High speed generation and checking of cyclic redundancy check values
US6934730B2 (en) * 2000-10-13 2005-08-23 Xpriori, Llc Method and system for generating a transform
US6701479B2 (en) * 2001-05-15 2004-03-02 Network Elements, Inc. Fast cyclic redundancy check (CRC) generation
EP2175559A1 (en) * 2002-04-22 2010-04-14 Fujitsu Limited Error-detecting decoder with re-calculation of a remainder upon partial re-transmission of a data string.
AU2002312937A1 (en) * 2002-05-24 2003-12-12 Nokia Corporatoin Crc-based error correction
US7613980B2 (en) * 2003-06-06 2009-11-03 Avago Technologies General Ip (Singapore) Pte. Ltd. System for computing a CRC value by processing a data message a word at a time
US7328396B2 (en) * 2004-05-28 2008-02-05 International Business Machines Corporation Cyclic redundancy check generating circuit

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016178551A (ja) * 2015-03-20 2016-10-06 株式会社Pfu 通信装置及び制御方法

Also Published As

Publication number Publication date
US20080022185A1 (en) 2008-01-24
EP1873920A1 (en) 2008-01-02

Similar Documents

Publication Publication Date Title
JP2008011025A (ja) 巡回冗長検査のための剰余計算装置
JP4598711B2 (ja) 誤り訂正装置
KR101616478B1 (ko) 프로그램가능한 프로세서 상에서의 임의의 갈루아 필드 산술연산의 구현
JPH02503851A (ja) 誤り訂正のための方法と装置
EP0329789B1 (en) Galois field arithmetic unit
CN104022784B (zh) 纠正突发错误的解码方法、解码设备和解码器
JP4190658B2 (ja) 符号化のためのシステムおよび復号器
US8607129B2 (en) Efficient and scalable cyclic redundancy check circuit using Galois-field arithmetic
JP2009501380A (ja) フラッシュエラー訂正
JPS59124011A (ja) 多数バイトエラ−訂正システム
CN101814922A (zh) 基于bch码的多位错纠错方法和装置以及存储系统
US8261176B2 (en) Polynomial division
JP5241475B2 (ja) ハッシュ値演算装置及びハッシュ値演算方法及びハッシュ値演算プログラム
US8739006B2 (en) Reduced circuit implementation of encoder and syndrome generator
US6651214B1 (en) Bi-directional decodable Reed-Solomon codes
US7743311B2 (en) Combined encoder/syndrome generator with reduced delay
JP2008004195A (ja) ラン長制限装置及びラン長制限方法
JP2015019276A (ja) 記憶装置、crc生成装置およびcrc生成方法
KR102353983B1 (ko) 순환 중복 검사(crc)에서 알고리즘의 배열 방법
US20150256200A1 (en) Method and circuit for shortening latency of chien's search algorithm for bch codewords
JP2001044853A (ja) チェンサーチ回路、誤り訂正装置及びディスクドライブ装置
JP3239866B2 (ja) Crcに基づくデータ検査方法及び装置並びに記録媒体
JP2008112522A (ja) 誤り検出装置および誤り検出方法
US8381080B2 (en) Reducing a degree of a polynomial in a polynomial division calculation
JP5999634B2 (ja) 演算回路設定方法

Legal Events

Date Code Title Description
A300 Application deemed to be withdrawn because no request for examination was validly filed

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20090901