JP4313555B2 - Galois field multiplier and communication device - Google Patents

Galois field multiplier and communication device Download PDF

Info

Publication number
JP4313555B2
JP4313555B2 JP2002258777A JP2002258777A JP4313555B2 JP 4313555 B2 JP4313555 B2 JP 4313555B2 JP 2002258777 A JP2002258777 A JP 2002258777A JP 2002258777 A JP2002258777 A JP 2002258777A JP 4313555 B2 JP4313555 B2 JP 4313555B2
Authority
JP
Japan
Prior art keywords
bit
galois field
crc
register
exclusive
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 - Fee Related
Application number
JP2002258777A
Other languages
Japanese (ja)
Other versions
JP2004094871A (en
Inventor
史男 姉小路
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.)
NXP USA Inc
Original Assignee
NXP USA Inc
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 NXP USA Inc filed Critical NXP USA Inc
Priority to JP2002258777A priority Critical patent/JP4313555B2/en
Publication of JP2004094871A publication Critical patent/JP2004094871A/en
Application granted granted Critical
Publication of JP4313555B2 publication Critical patent/JP4313555B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Description

【0001】
【発明の属する技術分野】
本発明はガロア体掛け算器及び通信装置に関する。
【0002】
【従来の技術】
通信装置のひとつとして、異なるインターネットワーク同士を相互に接続するルータがある。ルータは、入力したデータ中の接続先のアドレスを抽出し、その抽出したアドレスから次に繋ぐルータをルーティングテーブルから検索する。そして、ルーティングテーブルを使って、前記抽出したアドレスから次に繋ぐルータが見つかると、ルータは、その次のルータにデータを出力する。
【0003】
ところで、アドレスデータから次に接続するルータをルーティングテーブルから検索する際、一般にハッシュ検索が採用されている。
【0004】
ハッシュ検索は、各検索データのハッシュ値を予め計算しておく。ハッシュ値とは、検索データを適当な桁数の素数で割り算した時に得られる余りの値をハッシュ値という。異なるデータ系列の検索データにおいてそのハッシュ値が等しくなることがあるので、ハッシュ値ごとに各検索データをグループに分類する。つまり、同一のハッシュ値になる検索データを同一グループに分類しておく。
【0005】
そして、被検索データについて、ハッシュ値を求める。その求めたハッシュ値からこの被検索データが、前記分類したグループのどのグループに属するかを特定する。その特定したグループ内の検索データ中から被検索データと一致する検索データを検索するようにしたのがハッシュ検索である。
【0006】
図4は、ハッシュ検索を説明するための説明図である。図4において、検索データテーブルTDは、m個のnバイトからなる検索データDSの集合で、予めハッシュ値を計算して、グループ化されたテーブルである。このグループ化は、各検索データブロックDBの中のネクストポインタPによって順次グループ内の次候補をリンクしてリストを構成している。各グループの最後のリストのポインタPはそれぞれ“0”にする。
【0007】
各グループの最初の検索データブロックDBのポインタPは、検索タグテーブルTTに書き込まれている。検索タグテーブルTTには、ハッシュ値HTをインデックス番号(アドレス)としてそのハッシュ値HTに対応する検索データテーブルTDの各グループの最初の検索データブロックDBのポインタPが書き込まれている。
【0008】
そして、入力データとしてnバイトの被検索データDXが入力されると、このnバイトの被検索データDXのハッシュ値HTを計算する。計算して得られたハッシュ値HTを前記検索データテーブルTDのインデックスとして、前記検索タグテーブルTTから同ハッシュ値HTと一致するグループの検索データDSの先頭ポインタPを獲得する。獲得した先頭のポインタPに基づいて、そのグループに属する検索データDSを検索する。
【0009】
グループに属する検索データDSと、被検索データDXとが一致すれば、検索一致となって検索が終了する。
【0010】
このように、ハッシュ検索は、被検索データHTを所定桁数の素数で割り算した余りをハッシュ値としたことから、検索候補を少なくでき、検索回数も減少し検索時間の短縮を図ることができる点で優れている。
【0011】
ところで、このハッシュ検索において、前記割り算の代わりにCRC(Cyclic Redundancy Check)計算を用いる方法もある。CRC計算は、ビット系列の割り算に相当することから、割り算と同じ性質を示すからである。そこで、通信装置においては、誤り訂正のために用いられるCRC符号器を備えていることから、このCRC符号器を用いたハッシュ検索が行なわれている。
【0012】
ところで、実際に、ハッシュ検索する際、被検索データDXは、複数のデータフィールドからなる入力データ(通信フレーム)の一部分に含まれている。そのため、その被検索データDXの部分のCRC値(ハッシュ値)を計算する必要がある。
【0013】
例えば、図5に示すように、nビットの入力データDについて、先頭ビット(LSB)から(k1−1)ビット目までの領域のデータD1と先頭ビットから数えて(k2+1)ビット目から最終ビット(MSB)までの領域のデータD2とを被検索データDXとする。この被検索データDXのCRC値(ハッシュ値)を求める場合、CRCの線形性を利用して、以下のように計算する。
【0014】
先ず、nビットの入力データDについてのCRC値(ハッシュ値)を計算する。また、k1ビット目からk2ビット目までの領域(マスク領域)のデータD3のCRC値(ハッシュ値)を求める。このとき、nビット(全領域)のデータDのCRC値をCRCnとし、k1ビット目からk2ビット目までのマスク領域のデータD3のCRC値をCRCmとし、前記被検索データDXのCRC値(ハッシュ値)をCRCxとしたとき、以下の計算で求めることができる。
【0015】
CRCx=(CRCn)XOR(CRCm)
但し、「XOR」は排他的論理和
このとき、データD3のCRC値(=CRCm)の計算は、CRC符号器での計算において、先頭ビットから(k1−1)ビット目まではデータが「0」なので、CRC計算を行なう必要がなく、直ちにk1ビット目のデータを入力してCRC計算を行なう。しかしながら、k2ビット目までのCRC計算しても、引き続いて(k2+1)ビットから最終ビットまでの「0」のデータを入力してCRC計算を行なう必要がある。「0」のデータであっても通常のデータと同じ演算量が必要なため、CRCmの計算に時間がかかるという問題があった。
【0016】
そこで、k1ビットからk2ビットまでの途中のCRC値に対して(k2+1)ビット目から最終ビットまでの「0」を入力した時の、値を予め計算しておく。そして、種々の途中までのCRC値に対して計算した結果をテーブル化し、そのテーブルを使用してマスク領域におけるデータD3のCRC値(=CRCm)を求める方法が考えられる。しかしながら、この方法では高速化が図れるが、例えば、マスク領域のビット数が大きい場合、パターン数が膨大となり大きなデータテーブルが必要となる。
【0017】
また、ガロア体の掛け算の原理を利用すること、即ち、ガロア符号器において、一つシフトさせることはガロア体の要素を1つ掛けることと同じあることから、「0」の数の次数のガロア体の要素を積(掛け算)とすることで計算することができること知られている。マスク領域のビット数が固定であって「0」の数も固定の場合、ガロア体の要素を1つ用意しておくだけで対応できる点で有利である。
【0018】
ガロア体GF(2r)は、計算法則を持った有限な数の集合体であって、r=4とすると、そのガロア体の元(素数)の数は、16(=2r)個となる。そして、その非零各元は、
α0,α1,α2,α3,…………………,α14
で表される。そして、前記各元の値は1以上15以下の整数と1対1に対応している。
【0019】
ガロア体は、乗除算をはじめとする四則演算も全て完結するようになっている。例えば、α2×α3=α5、または、α10×α9=α19=α4となる。なお、α4の4は、19を15で割ったときの余りの数である。さらに、加減算は、ベクトル表現の排他的論理和(XOR)で行なうことができる。
【0020】
ガロア体の掛け算の一例を以下に説明する。例えば、ガロア体の元(要素)であるα6とα7の積(掛け算)は、以下のように展開することができる。
【0021】
α6×α7=(α3+α2)×(α3+α1+α0
=α6+α4+α3+α5+α3+α2
=α6+α4+α5+α2
=α3+α2+α1+α0+α2+α1+α2
=α13=α(6+7)
図6は、そのガロア体掛け算器の一例を示す論理回路を示す。図6に示すガロア体掛け算器は、ビットパターンの組合わせの掛け算、即ち、積(AND)計算を行なう第1の演算部51と、第1の演算部51によって得られた演算結果についてそのビット単位の排他的論理和(XOR)計算を行なう第2の演算部52とからなる。
【0022】
そして、この掛け算器を使って前記図5で示したマスク領域のデータD3のCRC値(=CRCm)を計算する場合、第1レジスタ53に、k1ビット目からk2ビット目までのデータD3について計算した計算途中のCRC値であるガロア体の要素からなるNビットのビット列Diを入力する。一方、第2レジスタ54に、(k2+1)ビット目から最終ビットまでの「0」の数の次数のガロア体の要素を示すNビットのビット列Sjを入力する。
【0023】
第1レジスタ53に入力されたビット列Diと第2レジスタ54に入力されたビット列Sjは、第1の演算部51に出力される。第1の演算部51に設けられた多数のアンドゲート回路51aにおいて、ビット列Diの各ビット毎に、ビット列Sjの各ビットに対してアンド計算を行なう。この時、各組み合わせの計算が同時に実行できるように、組合わせの数だけアンドゲート回路51aが設けられている。第1の演算部51の各アンドゲート回路51aで得られた結果は、第2の演算部52に出力される。第2の演算部52は、多数の排他的論理和ゲート回路(XOR回路)52aからなり、各XOR回路52aにて全てのビットパターンについて排他的論理和をすることにとって出力レジスタ55にデータD3のCRC値(=CRCm)が出力される。
【0024】
しかしながら、演算速度は高速になるが、アンド計算を行なう際の全ての組み合わせの数(N2個)だけアンドゲート回路51aが必要となり、回路規模が非常に大きくなる。
【0025】
そこで、回路規模を小さく構成することができるガロア体掛け算器を図7に示す。図7において、このガロア体掛け算器は、入力レジスタ61、シフトレジスタ62、アンドゲート回路63、排他的論理和ゲート回路64、及び、ガロア符号器65を備えている。
【0026】
今、ガロア符号器65のガロア符号器レジスタ53aが「0」に初期化されている状態で、入力レジスタ61に、前記図5で示したマスク領域のk1ビットからk2ビットまでのデータD3について計算した計算途中のCRC値であるガロア体の要素からなるNビットのビット列Diを入力する。又、シフトレジスタ62に、(k2+1)ビット目から最終ビットまでの「0」の数の次数のガロア体の要素を示すNビットのビット列Sjを入力する。
【0027】
そして、シフトレジスタ62の最上位ビット(MSB)が「1」であるとき、排他的論理和ゲート回路64において、入力レジスタ61の内容(ビット列Di)とガロア符号器レジスタ65aの内容gとを排他的論理和の計算、すなわち、
g=gXOR(Di×(シフトレジスタ62のMSB))
但し、「×」は掛け算(Di各ビットとのアンド演算)
を行い、その結果を同ガロア符号器65に入力する。
【0028】
そして、ガロア符号器レジスタ65aの内容gを一回右(最上位側)に1ビットシフトする。又、シフトレジスタ62の内容(ビット列Sj)も同様に一回右にシフトする。そして、シフトレジスタ62の内容を一回右に1ビットシフトすることによって、同シフトレジスタ62の新たなMSBが「1」であれば、前記入力レジスタ61の内容と前記ガロア符号器レジスタ65aの内容gとを排他的論理和の計算、すなわち、
g=gXOR(Di×(シフトレジスタ62のMSB))
を行い、その結果を同ガロア符号器65に入力する。そして、ガロア符号器65の内容を一回右(最上位側)に1ビットシフトするとともに、シフトレジスタ62も同様に一回右に1ビットシフトする。
【0029】
そして、この計算を、シフトレジスタ62に初期セットした時に最下位ビット(LSB)のビットがMSBになって上記計算が行なわれるまで繰り返す。
【0030】
そして、最後にガロア符号器65にて得られたガロア符号器レジスタ65aの内容g、すなわち、
g=gXOR(Dj×(シフトレジスタ62のMSB))
がデータD3のCRC値(=CRCm)となり出力される。
【0031】
このガロア掛け算器は、図6で説明したガロア掛け算器に比べて最大(N−1)回のシフト動作が加わる分だけ演算速度は劣るものの、回路規模を大幅に小さくできる。
【0032】
【発明が解決しようとする課題】
このように、ガロア符号器を用いて、上記CRC値(=CRCm)を求めることができるが、CRC符号器は「0」を入力して右に一回シフトさせればガロア符号器と同じになることから、このガロア符号器をCRC符号器に置き換えて実施することも可能である。
【0033】
しかしながら、ガロア符号器65は1ビット右にシフトする毎に、符号器を初期化しなければならない。通常、CRC符号器は、一度レジスタを初期化した後は、データを入力しながらNビット単位(又は8ビット単位)でシフトするのが一般的であるので、そのままでは使用することができなかった。
【0034】
本発明は、上記問題点を解消するためになされたものであって、その目的はCRC符号器を使ったガロア掛け算を可能することによって回路規模を小さくできるガロア体掛け算器及び通信装置を提供するにある。
【0035】
【課題を解決するための手段】
請求項1に記載の発明は、第1レジスタに入力されたガロア体の要素からなるNビットの第1ビット列と、第2レジスタに入力されたガロア体の要素からなるNビットの第2ビット列とのガロア体掛け算を行なうガロア体掛け算器において、Nビットの排他的論理和計算の結果を入力しその時の最上位ビットを出力しながら最上位ビット側に1ビットシフトするシフトレジスタと、前記Nビットの第2ビット列の最上位ビットから順番に1ビットずつ、前記Nビットの第1ビット列との間で順番に掛け算するアンドゲート回路と、前記アンドゲート回路からの演算結果と前記シフトレジスタの内容との間で排他的論理和計算を行ないその計算結果を前記シフトレジスタに入力する第1排他的論理和ゲート回路と、前記シフトレジスタからの最上位ビットを順次入力しCRC演算するCRC符号器と、前記CRC符号器の内容と前記シフトレジスタの内容との間で排他的論理和計算を行なう第2排他的論理和ゲート回路とを備えてことを要旨とする。
【0036】
請求項2に記載の発明は、第1レジスタに入力されたガロア体の要素からなるNビットの第1ビット列と、第2レジスタに入力されたガロア体の要素からなるNビットの第2ビット列とのガロア体掛け算を行なうガロア体掛け算器において、前記Nビットの第1ビット列に対して、前記第2ビット列の各位のビット毎にそれぞれ掛け算を行なう第1の回路部と、前記第1の回路部で各位のビット毎に行なった前記Nビットの第1ビット列に対する各計算結果について、それぞれ同一の位同士のビットとの間で排他的論理和計算を行ない2Nビットの計算結果を生成する第2の回路部と、前記第2の回路部で行なった、2Nビットの計算結果を入力する第3レジスタと、前記第3レジスタに入力された2Nビットの演算結果の上位Nビットを順次入力しCRC計算を行なうCRC符号器と、前記CRC符号器のCRC計算結果と、前記第3レジスタに入力された2Nビットの演算結果の下位Nビットとの間で排他的論理和計算を行なう排他的論理和ゲート回路とを備えたことを要旨とする。
【0037】
請求項3に記載の発明は、請求項1又は2に記載のガロア体掛け算器において、Nビットの第1ビット列は、CRC計算で求められたガロア体の要素を示すNビットのビット列であり、前記Nビットの第2ビット列は、「0」の数の次数のガロア体の要素を示すNビットのビット列であることを要旨とする。
【0038】
請求項4に記載の発明は、請求項3に記載のガロア体掛け算器において、Nビットの第1ビット列は、予め定められたk1ビットからk2ビットの範囲のデータ列をCRC計算した結果得られたガロア体の要素を示すNビットのビット列であり、前記Nビットの第2ビット列は、前記k2ビットの次のビットから最終ビットまでのデータ列を全て「0」とし、その「0」の数の次数のガロア体の要素を示すNビットのビット列であることを要旨とする。
【0039】
請求項5に記載の発明は、請求項1乃至4項のいずれか1つに記載のガロア体掛け算器を実装した通信装置を要旨とする。
【0040】
請求項6に記載の発明は、請求項5に記載の通信装置において、通信装置の信号処理装置に設けられた本来のCRC計算を行なうためのCRC符号器を、前記ガロア体掛け算を行なうガロア体掛け算器のCRC符号器を兼用することをその要旨とする。
【0041】
(作用)
請求項1に記載の発明によれば、第2レジスタからのNビットの第2ビット列について、最上位ビットから順番に1ビットずつ出力されると、アンドゲート回路はその1ビットと第1レジスタに入力されているNビットの第1ビット列との間で順番に掛け算し第1排他適論理和ゲート回路に出力する。第1排他的論理和ゲート回路は、前記アンドゲート回路の掛け算結果とシフトレジスタに先に入力した内容との間で排他的論理和計算を行ないその計算結果をシフトレジスタに入力する。シフトレジスタに入力された内容の最上位ビットから順番にCRC符号器に出力し、CRC符号器においてCRC演算させる。そして、第2排他的論理和ゲート回路が、CRC符号器のCRC演算結果の内容と前記シフトレジスタの内容との間で排他的論理和計算を行なうことにより、ガロア体の要素からなるNビットの第1ビット列と第2ビット列とのガロア体掛け算の結果が得られる。従って、CRC符号器を用いたガロア体掛け算が可能となる。
【0042】
請求項2に記載の発明によれば、第1の回路部がNビットの第1ビット列に対して、前記第2ビット列の各位のビット毎にそれぞれ掛け算を行なうと、第2の回路部は各位のビット毎に行なった前記Nビットの第1ビット列に対する各計算結果について、それぞれ同一の位同士のビットとの間で排他的論理和計算を行ない2Nビットの計算結果を生成して第3レジスタに入力する。第3レジスタに入力された2Nビットの演算結果のうち上位Nビットが、CRC符号器に順次出力され、CRC符号器においてCRC計算が行なわれる。そして、排他的論理和ゲート回路がCRC符号器のCRC演算結果の内容と前記第3レジスタに入力された2Nビットの演算結果のうち下位Nビットとの間で排他的論理和計算を行なうことにより、ガロア体の要素からなるNビットの第1ビット列と第2ビット列とのガロア体掛け算の結果が得られる。従って、CRC符号器を用いたガロア体掛け算が可能となる。
【0043】
請求項3に記載の発明によれば、CRC計算で求められたガロア体の要素を示すNビットのビット列と、「0」の数の次数のガロア体の要素を示すNビットのビット列とのガロア体掛け算の結果が得られる。
【0044】
請求項4に記載の発明によれば、予め定められたk1ビットからk2ビットの範囲のデータ列をCRC計算した結果得られたガロア体の要素を示すNビットのビット列と、k2ビットの次のビットから最終ビットまでのデータ列を全て「0」とし、その「0」の数の次数のガロア体の要素を示すNビットのビット列とのガロア体掛け算の結果が得られる。
【0045】
請求項5に記載の発明によれば、CRC符号器を用いたガロア体掛け算が可能となる。
【0046】
請求項6に記載の発明によれば、CRC符号器を用いたガロア体掛け算が回路規模を大きくすることなく可能となる。
【0047】
【発明の実施の形態】
(第1実施形態)
以下、本発明を具体化した第1実施形態を図1に従って説明する。図1はCRC符号器を使用したガロア体掛け算器1を説明するためのブロック回路図を示す。尚、説明の便宜上、前記図5で示したマスク領域のk1ビットからk2ビットまでのデータD3におけるCRC値(=CRCm)を計算する場合を例として説明する。
【0048】
図1において、ガロア体掛け算器1は、大きく分けて、シフト排他的論理和回路部2、CRC符号器3及び第2排他的論理和ゲート回路としての排他的論理和ゲート回路4とから構成されている。シフト排他的論理和回路部2は、第1レジスタとしての入力レジスタ10、第2レジスタとしての第1シフトレジスタ11、第2シフトレジスタ12、アンドゲート回路13及び第1排他的論理和ゲート回路としての排他的論理和ゲート回路14を有している。
【0049】
入力レジスタ10は、図5で示すマスク領域のk1ビット目からk2ビット目までのデータD3について計算した計算途中のCRC値であるガロア体の要素からなるビット列Diが入力される。この第1ビット列としてのビット列Diは、本実施形態ではNビットのビット列とする。入力レジスタ10は、この入力されたビット列Diをアンドゲート回路13に出力するようになっている。
【0050】
第1シフトレジスタ11は、(k2+1)ビット目から最終ビットまでの「0」の数の次数のガロア体の要素を示すNビットの第2ビット列としてのビット列Sjが入力される。第1シフトレジスタ11は、その時の最上位ビット(MBS)の内容を前記アンドゲート回路13に出力するようになっている。又、第1シフトレジスタ11は、最上位ビットの内容をアンドゲート回路13に出力すると、同シフトレジスタ11の内容s(ビット列Sj)を一回右(最上位ビット側)に1ビットシフトし新たな最上位ビット(MSB)を生成するようになっている。
【0051】
アンドゲート回路13は、前記入力レジスタ10の内容d(Nビットのビット列Di)と前記第1シフトレジスタ11から出力される最上位ビット(MSB)の内容との間で掛け算を行なう。この計算は、第1シフトレジスタ11に初期セットした時に最下位ビット(LSB)のビットがMSBになって上記計算が行なわれるまで繰り返す。そして、アンドゲート回路13は、第1シフトレジスタ11から出力されたMSBが「1」であるとき、前記入力レジスタ10の内容を排他的論理和ゲート回路14に出力する。アンドゲート回路13は、第1シフトレジスタ11から出力されたMSBが「0」であるとき、前記入力レジスタ10の内容dを排他的論理和ゲート回路14に出力しないようになっている。この操作によって掛け算演算を行なっている。
【0052】
排他的論理和ゲート回路14は、前記第1シフトレジスタ11から出力されたMSBが「1」であるとき、入力レジスタ10の内容dと第2シフトレジスタ12に内容yとの間で排他的論理和の演算を行なう。そして、その排他的論理和の演算結果を第2シフトレジスタ12に出力する。
【0053】
つまり、第2シフトレジスタ12には、
y=yXOR(d×(第1シフトレジスタ11のMSB))
が入力されるようになっている。
【0054】
第2シフトレジスタ12は、前記排他的論理和ゲート回路14よる排他的論理和の演算結果yを入力すると、その最上位ビットの内容をCRC符号器3に出力するようになっている。又、第2シフトレジスタ12は、最上位ビットの内容をCRC符号器3に出力すると、同シフトレジスタ12の内容yを一回右(最上位ビット側)に1ビットシフトし新たな最上位ビット(MSB)を生成するようになっている。
【0055】
この動作は、前記第1シフトレジスタ11に初期セットした時の最下位ビット(LSB)の1つ上位のビットがMSBになって前記排他的論理和ゲート回路14よる排他的論理和の演算結果yが入力されるまで繰り返される。又、第2シフトレジスタ12は、シフトした後の内容yを前記排他的論理和ゲート回路14に出力するようになっている。
【0056】
CRC符号器3は、そのCRC符号器レジスタ3aに前記第2シフトレジスタ12の最上位ビット(MSB)を入力し、その入力に応答してそのときのNビットの内容gについて1回シフト動作を行なう。従って、CRC符号器3は、第2シフトレジスタ12からMSBが入力される毎に1回シフト動作を繰り返す。
【0057】
CRC符号器レジスタ3aのNビットの内容gは、排他的論理和ゲート回路4に出力される。排他的論理和ゲート回路4は、CRC符号器レジスタ3aのNビットの内容gと前記第2シフトレジスタ12の内容gとの間で排他的論理和を求め、その演算結果G(=gXORy)を出力するようになっている。
【0058】
次に、上記のように構成したガロア体掛け算器1の作用について説明する。
【0059】
今、CRC符号器3のCRC符号器レジスタ3aが「0」に初期化されている状態で、入力レジスタ10に、前記図5で示したマスク領域のk1ビットからk2ビットまでのデータD3について計算した計算途中のCRC値であるガロア体の要素からなるNビットのビット列Diを入力する。又、第1シフトレジスタ11に、(k2+1)ビット目から最終ビットまでの「0」の数の次数のガロア体の要素を示すNビットのビット列Sjを入力する。さらに、第2シフトレジスタ12の内容yを「0」に初期化する。
【0060】
この状態において、第1シフトレジスタ11のMBSがアンドゲート回路13に出力され、同アンドゲート回路13において、第1シフトレジスタ11のMBSと入力レジスタ10の内容dとの間で掛け算が行なわれてその結果(=d×(第1シフトレジスタ11のMSB)が次段の排他的論理和ゲート回路14に出力される。
【0061】
このとき、第1シフトレジスタ11のMSBの内容が「0」の場合には、演算が行なわれない。そして、第1シフトレジスタ11のMSBの内容が「1」の場合に、掛け算は行なわれその結果が排他的論理和ゲート回路14において演算に供される。
【0062】
排他的論理和ゲート回路14は、このアンドゲート回路13の演算結果とその時の第2シフトレジスタ12の内容yとの間で排他的論理和を求める。その排他的論理和の結果を第2シフトレジスタ12に新たな内容yとして入力する。
【0063】
第2シフトレジスタ12に新たな内容yが入力されると、その内容yのMSBの内容がCRC符号器3に出力される。
【0064】
CRC符号器3は、第2シフトレジスタ12のMSBの内容が入力されると、その入力に応答して1回シフト動作してCRC符号器レジスタ3aに新たなNビットの内容gを生成することになる。
【0065】
CRC符号器3のシフト動作が行なわれると、第1及び第2シフトレジスタ11,12がそれぞれ右に1ビットシフト動作を行い、アンドゲート回路13、排他的論理和ゲート回路14、第2シフトレジスタ12及びCRC符号器3等が前記と同様な動作を繰り返す。つまり、第1シフトレジスタ11に初期セットした時の最下位ビット(LSB)の1つ上位のビットがMSBになって前記排他的論理和ゲート回路14よる排他的論理和の演算結果yが入力されるまで繰り返される。従って、CRC符号器3は、排他的論理和の演算結果yが第2シフトレジスタ12に入力される毎にそのMSBを入力してシフト動作を繰り返す。
【0066】
そして、最下位ビット(LSB)のビットがMSBになって前記排他的論理和ゲート回路14よる排他的論理和の演算結果yが得られる。その結果yが第2シフトレジスタ12に入力される。第2シフトレジスタ12の内容yは、排他的論理和ゲート回路4に出力される。排他的論理和ゲート回路4は、この第2シフトレジスタ12の内容yとその時のCRC符号器レジスタ3aのNビットの内容gとの間で排他的論理和を求める。そして、この演算結果G(=gXORy)をCRC値(=CRCm=Di×Sj)として出力する。
【0067】
つまり、第2シフトレジスタ12を設け、第2シフトレジスタ12において、その時々で「0」に初期化、即ち、y=yXOR(d×第1シフトレジスタ11のMBS)の演算を第1シフトレジスタ11の内容sをシフトさせながら行ない、第2シフトレジスタ12のMBSを順次CRC符号器3に入力する。その結果、ガロア符号器を用いた掛け算と同じになる。但し、CRC符号器3に、直接第2シフトレジスタ12の内容y(=yXOR(d×第1シフトレジスタ11のMBS))を入力していないため、(N−1)回のシフト動作を行なった後に、第2シフトレジスタ12の内容yとCRC符号器レジスタ3aの内容gとの間で排他的論理和をとっている。
【0068】
このように本実施形態において、CRC符号器3の前段にシフト排他的論理和回路部2を設けたことにより、ガロア符号器と同様なガロア体掛け算を行うことができる。従って、回路規模を大きくすることなくCRC値(=CRCm=Di×Sj)を求めることができる。
【0069】
しかも、第1シフトレジスタ11に入力されるデータは、(k2+1)ビット目から最終ビットまでの「0」の数の次数のガロア体の要素を示すNビットのビット列Sjが入力される。従って、CRC符号器単独で、(k2+1)ビット目から最終ビットまでの「0」の数だけ、「0」を入力させてシフト動作させてCRC値(=CRCm)を求める場合に比べて高速にCRC値(=CRCm=Di×Sj)を求めることができる。
(第2実施形態)
次に、本発明を具体化した第2実施形態を図2に従って説明する。図2はCRC符号器を使用したガロア体掛け算器21を説明するためのブロック回路図を示す。尚、説明の便宜上、前記図5で示したマスク領域のk1ビットからk2ビットまでのデータD3におけるCRC値(=CRCm)を計算する場合を例として説明する。
【0070】
図2において、ガロア体掛け算器21は、大きく分けて、シフト排他的論理和回路部22、CRC符号器23及び排他的論理和ゲート回路24とから構成されている。シフト排他的論理和回路部22は、Nビットの第1レジスタ31、Nビットの第2レジスタ32、2Nビットのシフトレジスタ33、第1の回路部34及び第2の回路部35を有している。
【0071】
第1レジスタ31は、図5で示すマスク領域のk1ビット目からk2ビット目までのデータD3について計算した計算途中のCRC値であるガロア体の要素からなるビット列Diが入力される。この第1ビット列としてのビット列Diは、本実施形態ではNビットのビット列とする。第2レジスタ32は、(k2+1)ビット目から最終ビットまでの「0」の数の次数のガロア体の要素を示すNビットの第2ビット列としてのビット列Sjが入力される。
【0072】
第1の回路部34は、前記第2レジスタ32のビット列Sjのビット数(Nビット)と対応するN個の組からなり、その各組には前記第1レジスタ31のビット列Diのビット数(Nビット)に対応してそれぞれN個のアンドゲート回路34aから構成されている。従って、第1の回路部34は、N2個のアンドゲート回路34aを有している。
【0073】
そして、各組のN個のアンドゲート回路34aは、その組毎に、前記第2レジスタ32に入力されたNビットからなるビット列Sjの対応するビットデータがそれぞれ入力される。又、各組のN個のアンドゲート回路34aは、それぞれ前記第1レジスタ31のNビットからなるビット列Diの対応するビットデータが入力される。
【0074】
つまり、例えば、第2レジスタ32に入力されているビット列Sjの最下位ビット(LSB)を入力する組(以下、第1組という)のN個のアンドゲート回路34aは、その最下位ビット(LSB)と第1レジスタ31に入力されているビット列Diのそれぞれ対応するビットデータとを、それぞれ掛け算することになる。
【0075】
因みに、第2レジスタ32に入力されたビット列Sjの最上位ビット(MSB)を入力する組(以下、第N組という)のN個のアンドゲート回路34aは、その最上位ビット(MSB)と前記第1レジスタ31に入力されているビット列Diのそれぞれ対応するビットデータとを、それぞれ掛け算することになる。
【0076】
そして、第1の回路部34の第1〜第N組の各アンドゲート回路34aが演算した演算結果は、第2の回路部35に出力される。
【0077】
第2の回路部35は、前記シフトレジスタ33の入力するビット数(2Nビット)の数に対応した数の出力端子を有し、その各出力端子はシフトレジスタ33のビットにそれぞれ接続されている。そして、第2の回路部35は、シフトレジスタ33の最下位ビット(LSB)に、前記第1組のビット列Diの最下位ビット(LSB)とビット列Sjの最下位ビット(LSB)との間で演算を行なうアンドゲート回路34aからの演算結果を入力する。又、第2の回路部35は、シフトレジスタ33の最上位ビット(MSB)に、「0」のデータを入力する。さらに、第2の回路部35は、シフトレジスタ33の最上位ビット(MSB)より1ビット下位((2N−1)ビット目)のビットに対して、前記第N組のビット列Diの最上位ビット(MSB)とビット列Sjの最上位ビット(MSB)との間で演算を行なうアンドゲート回路34aからの演算結果を入力する。
【0078】
又、第2の回路部35は、シフトレジスタ33の最下位ビットより1ビット上位(2ビット目)のビットから最上位ビットより2ビット下位((2N−2)ビット目)のビットまでの各ビットに対応して、排他的論理和ゲート回路35aを有している。そして、各排他的論理和ゲート回路35aは、その対応するシフトレジスタ33の各ビットに演算結果をそれぞれ入力するようになっている。
【0079】
詳述すると、シフトレジスタ33の2ビット目に対応する排他的論理和ゲート回路(以下、第1ゲート回路という)35aは、前記第1組と第2組のそれぞれ所定のアンドゲート回路34aからの演算結果を入力する。シフトレジスタ33の3ビット目に対応する排他的論理和ゲート回路(以下、第2ゲート回路という)35aは、第1組〜第3組のそれぞれ所定のアンドゲート回路34aからの演算結果を入力する。シフトレジスタ33の4ビット目に対応する排他的論理和ゲート回路(以下、第3ゲート回路という)35aは、第1組〜第4組のそれぞれ所定のアンドゲート回路34aからの演算結果を入力する。
【0080】
このように、排他的論理和ゲート回路35aは、シフトレジスタ33のビットがNビットになるまで、排他的論理和の演算を行なう組数が1組ずつ増加し、(N+1)ビットから(2N−2)ビットまで排他的論理和ゲート回路35aは、排他的論理和の演算を行なう組数が1組ずつ減少するようになっている。従って、シフトレジスタ33のNビットに対応する排他的論理和ゲート回路(第Nゲート回路)35aが、最も多い第1組〜第N組からそれぞれ所定のアンドゲート回路34aからの演算結果を入力する。
【0081】
各排他的論理和ゲート回路35aは、それぞれの複数組の予め定められたアンドゲート回路34aからの演算結果を入力し演算を行なう。
【0082】
詳述すると、2ビットの排他的論理和ゲート回路35aは、第1組の第1レジスタ31の2ビット目の演算を行なうアンドゲート回路34a、及び、第2組の第1レジスタ31の最下位ビット(1ビット目)の演算を行なうアンドゲート回路34aの演算結果について、排他的論理和の演算を行なう。3ビットの排他的論理和ゲート回路35aは、第1組の第1レジスタ31の3ビット目の演算を行なうアンドゲート回路34a、第2組の第1レジスタ31の2ビット目の演算を行なうアンドゲート回路34a、及び、第3組の第1レジスタ31の1ビット目の演算を行なうアンドゲート回路34aの演算結果について、排他的論理和の演算を行なう。
【0083】
4ビットの排他的論理和ゲート回路35aは、第1組の第1レジスタ31の4ビット目の演算を行なうアンドゲート回路34a、第2組の第1レジスタ31の3ビット目の演算を行なうアンドゲート回路34a、第3組の第1レジスタ31の2ビット目の演算を行なうアンドゲート回路34a、及び、第4組の第1レジスタ31の1ビット目の演算を行なうアンドゲート回路34aの演算結果について、排他的論理和の演算を行なうようになっている。
【0084】
つまり、第1及び第2の回路部34,35は、第1〜第N組において各N個のアンドゲート回路34aにて得られたNビットの演算結果について、それぞれ上位の組みに移るほどその組のNビットの演算結果を下位の組のNビットの演算結果より1ビット上位にシフトさせる。すなわち、第1〜第N組のNビットの演算結果をそれぞれシフトした後、その各ビット(各桁)ごとに排他的論理和の演算を行なう。そして、第1及び第2の回路部34,35は、この得られた2Nビットの演算結果を、シフトレジスタ33に入力するようにしたものである。
【0085】
シフトレジスタ33は、第2の回路部35から2Nビットの演算結果yを入力すると、最上位ビット側に1ビットずつシフトしながらその時の最上位ビット(MSB)をCRC符号器23に出力するようになっている。このシフト動作は、N回行なわれるようになっている。従って、シフトレジスタ33は、第2の回路部35から入力された2Nビットの演算結果yの上位Nビットを順番にCRC符号器23に出力することになる。又、シフトレジスタ33は、CRC符号器23に上位Nビットを出力した後の残りの下位Nビットを排他的論理和ゲート回路24に出力するようになっている。
【0086】
CRC符号器23は、前記シフトレジスタ33からの上位Nビットのビットデータを順次入力してシフト動作を行なう。
【0087】
排他的論理和ゲート回路24は、前記CRC符号器レジスタ23aの前記N回シフト動作を行なって得られた演算結果の内容gと、前記シフトレジスタ33の前記下位Nビットの内容yを入力する。排他的論理和ゲート回路24は、両内容g,yとの間で排他的論理和を求め、その演算結果G(=gXORy)を出力する。
【0088】
次に、上記のように構成したガロア体掛け算器21の作用について説明する。
【0089】
今、CRC符号器レジスタ23aが「0」に初期化されている状態で、第1レジスタ31に、前記図5で示したマスク領域のk1ビットからk2ビットまでのデータD3について計算した計算途中のCRC値であるガロア体の要素からなるNビットのビット列Diを入力する。又、第2レジスタ32に、(k2+1)ビット目から最終ビットまでの「0」の数の次数のガロア体の要素を示すNビットのビット列Sjを入力する。さらに、シフトレジスタ33の内容yを「0」に初期化する。Nビットの内容dとNビットの内容sから2Nビットのデータ(内容y)を生成しシフトレジスタ33に入力する。
【0090】
シフトレジスタ33は、N回シフト動作を行い、2Nビットの内容yの中の上位Nビットのビットデータを順番にCRC符号器23に入力する。これによって、CRC符号器23は、その上位Nビットのビットデータを入力しNビット分シフト動作する。そして、排他的論理和ゲート回路24は、シフトレジスタ33に残った下位Nビットのデータ(内容y)と、その時のCRC符号器レジスタ23aの内容gとの間で排他的論理和を求める。つまり、排他的論理和ゲート回路24の演算結果G(=gXORy)は、CRC値(=CRCm=Di×Sj)として出力される。
【0091】
このように第2実施形態においても、CRC符号器23の前段にシフト排他的論理和回路部22を設けたことにより、ガロア符号器と同様なガロア体掛け算を行うことができる。従って、回路規模を大きくすることなくCRC値(=CRCm=Di×Sj)を求めることができる。
【0092】
しかも、第2レジスタ32に入力されるデータは、(k2+1)ビット目から最終ビットまでの「0」の数の次数のガロア体の要素を示すNビットのビット列Sjが入力される。従って、CRC符号器単独で、(k2+1)ビット目から最終ビットまでの「0」の数だけ、「0」を入力させてシフト動作させてCRC値(=CRCm)を求める場合に比べて高速にCRC値(=CRCm)を求めることができる。
(第3実施形態)
次に、本発明を具体化した第3実施形態を図3に従って説明する。図3はルータ等の通信装置において、前記第2実施形態で説明したガロア体掛け算器21のシフト排他的論理和回路部22を実装した信号処理装置の電気的構成を説明するためのブロック回路図を示す。
【0093】
図3において、信号処理装置41は、ALU42、レジスタ群43、CRCエンジン44及びシフト排他的論理和回路部22とから構成され、これらは互いにバスB1,B2を介して信号の授受が行われる。ALU42は、レジスタ群43と協働して通信にための各種の信号処理のための演算処理を行う。CRCエンジン44は、通信装置に入力されてくる入力信号の誤り訂正のためのCRCの演算を実行するエンジンであって、第2実施形態で説明したCRC符号器23及び排他的論理和ゲート回路24と同じCRC符号器、排他的論理和ゲート回路(図示せず)を備えている。
【0094】
シフト排他的論理和回路部22は、第1レジスタ31、第2レジスタ32、シフトレジスタ33、第1の回路部34及び第2の回路部35とから構成されている。第1レジスタ31は、前記Nビットのビット列DiがCRCエンジン44が演算しているCRC値が入力される。第2レジスタ32は、前記Nビットのビット列Sjが予め用意されたメモリ45に記憶された各「0」の数の次数のガロア体の要素を示すデータから読み出されて入力される。従って、「0」の数が固定の場合には、1つのビット列Sjが予め用意されたメモリ45に記憶される。尚、メモリ45には、前記図4で示した、被検索データDXを検索するための、検索タグデーブルTT及び検索データテーブルTDも予め記憶されている。
【0095】
シフトレジスタ33は、ビット列Di,Sjに基づいて演算された2Nビットの演算結果yの上位Nビットを上位ビットから順番に1ビットずつ前記CRCエンジン44に出力する。また、シフトレジスタ33は、上位Nビットを上位ビットから順番に前記CRCエンジン44に出力した後に2Nビットの演算結果yの下位Nビットを前記CRCエンジン44に出力するようになっている。
【0096】
次に、上記のように構成した信号処理装置41の作用について説明する。
【0097】
説明の便宜上、図5で示す入力データDについて、データD3のCRC値(=CRCm=Di×Sj;但し、×は排他的論理和)を求める場合について説明する。
【0098】
今、信号処理装置41に入力データDが入力されると、CRCエンジン44が入力されてくる入力データDのk1ビット目のビットデータからCRCに演算を演算開始する。尚、CRCエンジン44はこのCRCの演算とともに、入力データD全体にCRCの演算を並行して行っている。そして、k2ビット目のビットデータまでのCRCの演算が完了すると、それまでのCRC値であるNビットのビット列Diをシフト排他的論理和回路部22の第1レジスタ31に入力する。これと同時に、第2レジスタ32は、メモリ45から(k2+1)ビット目から最終ビットまでの「0」の数の次数のガロア体の要素を示すNビットのビット列Sjが入力される。そして、ビット列Di,Sjに基づいて演算された2Nビットの演算結果yをシフトレジスタ33に入力する。
【0099】
次に、CRCエンジン44に備えられているCRC符号器レジスタ44aを「0」に初期化する。続いて、このCRC符号器レジスタ44aに対して、シフトレジスタ33の上位Nビットを最上位ビットから順番に1ビットずつ入力する。この上位Nビットのビットデータの入力によって、CRCエンジン44のCRC符号器レジスタ44aはNビット分シフトする。そして、シフトレジスタ33の下位Nビットと、符号器レジスタ44aの値とを排他的論理和することによって、CRCm=Di×Sjなるガロア体掛け算の結果が得られる。
【0100】
そして、この得られたデータD3のCRC値(=CRCm)と、入力データD全体のCRC値(=CRCn)とを、排他的論理和することによって、被検索データDXのCRC値(=CRCx=CRC×CRCm)を求めることができる。この被検索データDXのCRC値(=CRCx)が求められると、信号処理装置41は、メモリ45に記憶されている検索タグデーブルTT及び検索データテーブルTDを使って、被検索データDXに対する検索データDSを検索することになる。
【0101】
このように、本実施形態のルータ等の通信装置の信号処理装置41によれば、シフト排他的論理和回路部22のみ付加し、CRCエンジン44に備えられたCRC符号器をハッシュ検索ために利用するようにしたので、回路規模を大きくすることなく、CRCのハッシュ検索を行うことができる。
【0102】
しかも、ビット列Di,Sjを入力した後に行うシフト排他的論理和回路部22は、ALU42の演算処理に依存しないため、少ない命令サイクルで演算することができる。また、前記実施形態と同様に、短時間でかつ回路規模を大きくすることなくCRC値を求めることができる。
【0103】
また、本実施形態のルータ等の通信装置の信号処理装置41によれば、シフト排他的論理和回路部22のみ付加し、CRCエンジン44に備えられたCRC符号器をハッシュ検索ために利用するようにしたので、回路規模を大きくすることなく、CRCのハッシュ検索を行うことができる。
【0104】
尚、本発明の実施形態は、以下のように変更してもよい。
【0105】
○上記第3実施形態の信号処理装置41は、第2実施形態で説明したシフト排他的論理和回路部22を付加したものであったが、第1実施形態で説明したシフト排他的論理和回路部2を付加してなる信号処理装置に応用してもよい。
【0106】
○上記第3実施形態では、k1ビット目からk2ビット目までのデータD3についてのCRC値であるビット列Diは、その時々でCRCエンジン44がCRC演算したものであり、(k2+1)ビット目から最終ビットまでの「0」の数の次数のガロア体の要素を示すNビットのビット列Sjは、予めメモリ45に記憶されたデーから得られたものであった。
【0107】
これを、すでに入力データD中に、k1ビット目からk2ビット目までのデータD3についてのCRC値であるビット列Diと、(k2+1)ビット目から最終ビットまでの「0」の数の次数のガロア体の要素を示すNビットのビット列Sjとを、含ませるようにしておく。そして、入力データDを入力したとき、入力データD中のビット列Diとビット列Sjとを読み出し、直ちに、ビット列Diとビット列Sjを使って演算を実行するようにしてもよい。
【0108】
この場合、k1ビット目からk2ビット目までのCRC演算は行わなく済むとともに、(k2+1)ビット目から最終ビットまでの「0」の数の次数のガロア体の要素を示すビット列Sjを記憶しておく記憶手段が不要になる。
【0109】
【発明の効果】
以上詳述したように、本発明によれば、CRC符号器を用いたガロア体の掛け算を行うことのできる効果を有する
【図面の簡単な説明】
【図1】第1実施形態のCRC符号器を使用したガロア体掛け算器を説明するためのブロック回路図。
【図2】 第2実施形態のCRC符号器を使用したガロア体掛け算器を説明するためのブロック回路図。
【図3】 第3実施形態の通信装置の信号処理装置を説明するためのブロック回路図。
【図4】 ハッシュ検索を説明するための説明図。
【図5】 ハッシュ検索にための被検索データのデータ構造とその求め方を説明するための説明図。
【図6】 従来のガロア符号器を使ったガロア体掛け算器を説明するためのブロック回路図。
【図7】 同じく従来のガロア符号器を使ったガロア体掛け算器を説明するためのブロック回路図。
【符号の説明】
1,21…ガロア体掛け算器
2,22…シフト排他的論理和回路部
3,23…CRC符号器
4,24…排他的論理和ゲート回路
10…入力レジスタ
11…第1シフトレジスタ
12…第2シフトレジスタ
13…アンドゲート回路
14…排他的論理和ゲート回路
31…第1レジスタ
32…第2レジスタ
33…シフトレジスタ
34…第1の回路部
34a…アンドゲート回路
35…第2の回路部
35a…排他的論理和ゲート回路
41…信号処理装置
42…ALU
43…レジスタ群
44…CRCエンジン
45…メモリ
Di…ビット列
Sj…ビット列
TD…検索データテーブル
D3…データ
d、g、s、y 内容
[0001]
BACKGROUND OF THE INVENTION
The present invention relates to a Galois field multiplier and a communication device.
[0002]
[Prior art]
One communication device is a router that connects different internetworks to each other. The router extracts the connection destination address in the input data, and searches the routing table for the next connected router from the extracted address. When the next connected router is found from the extracted address using the routing table, the router outputs data to the next router.
[0003]
By the way, when searching the next connected router from the address data from the routing table, hash search is generally employed.
[0004]
In the hash search, the hash value of each search data is calculated in advance. The hash value is a hash value obtained by dividing the search data by an appropriate prime number. Since search data of different data series may have the same hash value, each search data is classified into a group for each hash value. That is, search data having the same hash value is classified into the same group.
[0005]
And a hash value is calculated | required about to-be-searched data. From the obtained hash value, it is specified to which group of the classified groups the searched data belongs. In the hash search, search data that matches the search target data is searched from the search data in the specified group.
[0006]
FIG. 4 is an explanatory diagram for explaining the hash search. In FIG. 4, a search data table TD is a set of m search data DS composed of n bytes, and is a grouped table by calculating hash values in advance. This grouping forms a list by sequentially linking the next candidates in the group by the next pointer P in each search data block DB. The pointer P of the last list of each group is set to “0”.
[0007]
The pointer P of the first search data block DB of each group is written in the search tag table TT. In the search tag table TT, the pointer P of the first search data block DB of each group of the search data table TD corresponding to the hash value HT is written with the hash value HT as an index number (address).
[0008]
When n bytes of data to be searched DX are input as input data, a hash value HT of the n bytes of data to be searched DX is calculated. Using the calculated hash value HT as an index of the search data table TD, the head pointer P of the search data DS of the group that matches the hash value HT is obtained from the search tag table TT. Based on the acquired leading pointer P, search data DS belonging to the group is searched.
[0009]
If the search data DS belonging to the group matches the searched data DX, the search is matched and the search is terminated.
[0010]
As described above, in the hash search, the remainder obtained by dividing the search target data HT by the prime number of a predetermined number of digits is used as the hash value, so that the number of search candidates can be reduced, the number of searches can be reduced, and the search time can be shortened. Excellent in terms.
[0011]
Incidentally, in this hash search, there is a method of using CRC (Cyclic Redundancy Check) calculation instead of the division. This is because the CRC calculation corresponds to the division of the bit sequence, and thus exhibits the same properties as the division. Therefore, since the communication apparatus includes a CRC encoder used for error correction, a hash search using this CRC encoder is performed.
[0012]
By the way, when the hash search is actually performed, the search target data DX is included in a part of input data (communication frame) including a plurality of data fields. Therefore, it is necessary to calculate a CRC value (hash value) of the portion of the searched data DX.
[0013]
For example, as shown in FIG. 5, for n-bit input data D, the data D1 in the area from the first bit (LSB) to the (k1-1) th bit and the last bit from the (k2 + 1) th bit counted from the first bit The data D2 in the area up to (MSB) is assumed to be searched data DX. When obtaining the CRC value (hash value) of the search target data DX, calculation is performed as follows using the linearity of the CRC.
[0014]
First, a CRC value (hash value) for n-bit input data D is calculated. Also, the CRC value (hash value) of the data D3 in the area (mask area) from the k1th bit to the k2th bit is obtained. At this time, the CRC value of the data D of n bits (all areas) is set to CRCn, the CRC value of the data D3 of the mask area from the k1th bit to the k2th bit is set to CRCm, and the CRC value (hash) of the searched data DX When the value is CRCx, it can be obtained by the following calculation.
[0015]
CRCx = (CRCn) XOR (CRCm)
However, "XOR" is exclusive OR
At this time, the CRC value (= CRCm) of the data D3 is calculated by the CRC encoder. Since the data is “0” from the first bit to the (k1-1) th bit, there is no need to perform CRC calculation. Immediately, the k1th bit data is input to perform CRC calculation. However, even when the CRC calculation is performed up to the k2th bit, it is necessary to perform the CRC calculation by subsequently inputting data “0” from the (k2 + 1) bit to the last bit. Even if the data is “0”, the same amount of computation as that of normal data is required, and there is a problem that it takes time to calculate CRCm.
[0016]
Therefore, the value when “0” from the (k2 + 1) th bit to the last bit is input to the CRC value in the middle from the k1 bit to the k2 bit is calculated in advance. Then, it is conceivable to form a table of the results calculated for various intermediate CRC values and obtain the CRC value (= CRCm) of the data D3 in the mask area using the table. However, although this method can increase the speed, for example, when the number of bits in the mask area is large, the number of patterns becomes enormous and a large data table is required.
[0017]
Furthermore, using the principle of multiplication of Galois fields, that is, in the Galois encoder, shifting one is the same as multiplying one element of the Galois field, so the number of orders of Galois of “0” number. It is known that a field element can be calculated by multiplying it. When the number of bits in the mask area is fixed and the number of “0” is also fixed, it is advantageous in that it can be dealt with by preparing only one Galois field element.
[0018]
Galois field GF (2r) Is a set of finite numbers having a calculation rule, and when r = 4, the number of elements (prime numbers) of the Galois field is 16 (= 2)r) It becomes a piece. And each non-zero element is
α0, Α1, Α2, ΑThree, …………………, α14
It is represented by Each original value has a one-to-one correspondence with an integer of 1 to 15.
[0019]
The Galois field completes all four arithmetic operations including multiplication and division. For example, α2× αThree= ΑFiveOr αTen× α9= Α19= ΑFourIt becomes. ΑFour4 is the remainder when 19 is divided by 15. Further, addition and subtraction can be performed by exclusive OR (XOR) of vector expressions.
[0020]
An example of Galois field multiplication will be described below. For example, α which is an element (element) of Galois field6And α7The product (multiplication) can be expanded as follows.
[0021]
α6× α7= (ΑThree+ Α2) X (αThree+ Α1+ Α0)
= Α6+ ΑFour+ ΑThree+ ΑFive+ ΑThree+ Α2
= Α6+ ΑFour+ ΑFive+ Α2
= ΑThree+ Α2+ Α1+ Α0+ Α2+ Α1+ Α2
= Α13= Α(6 + 7)
FIG. 6 shows a logic circuit showing an example of the Galois multiplier. The Galois field multiplier shown in FIG. 6 includes a first arithmetic unit 51 that performs multiplication of bit pattern combinations, that is, a product (AND) calculation, and a bit about the arithmetic result obtained by the first arithmetic unit 51. And a second arithmetic unit 52 that performs an exclusive OR (XOR) calculation of units.
[0022]
When calculating the CRC value (= CRCm) of the data D3 in the mask area shown in FIG. 5 using this multiplier, the first register 53 calculates the data D3 from the k1 bit to the k2 bit. An N-bit bit string Di composed of Galois field elements, which is a CRC value during the calculation, is input. On the other hand, an N-bit bit string Sj indicating a Galois field element of degree “0” from the (k2 + 1) -th bit to the last bit is input to the second register 54.
[0023]
The bit string Di input to the first register 53 and the bit string Sj input to the second register 54 are output to the first arithmetic unit 51. In many AND gate circuits 51 a provided in the first arithmetic unit 51, AND calculation is performed on each bit of the bit string Sj for each bit of the bit string Di. At this time, as many AND gate circuits 51a as the number of combinations are provided so that calculation of each combination can be executed simultaneously. The result obtained by each AND gate circuit 51 a of the first calculation unit 51 is output to the second calculation unit 52. The second arithmetic unit 52 includes a large number of exclusive OR gate circuits (XOR circuits) 52a, and the XOR circuit 52a performs exclusive OR for all the bit patterns, and outputs the data D3 to the output register 55. A CRC value (= CRCm) is output.
[0024]
However, although the calculation speed is high, the number of all combinations (N2And the AND gate circuit 51a is required, and the circuit scale becomes very large.
[0025]
FIG. 7 shows a Galois multiplier that can be configured with a small circuit scale. In FIG. 7, this Galois multiplier includes an input register 61, a shift register 62, an AND gate circuit 63, an exclusive OR gate circuit 64, and a Galois encoder 65.
[0026]
Now, with the Galois encoder register 53a of the Galois encoder 65 initialized to "0", the input register 61 calculates the data D3 from the k1 bit to the k2 bit in the mask area shown in FIG. An N-bit bit string Di composed of Galois field elements, which is a CRC value during the calculation, is input. In addition, an N-bit bit string Sj indicating an element of a Galois field of the order of “0” from the (k2 + 1) th bit to the last bit is input to the shift register 62.
[0027]
When the most significant bit (MSB) of the shift register 62 is “1”, the exclusive OR gate circuit 64 excludes the contents of the input register 61 (bit string Di) and the contents g of the Galois encoder register 65a. Logical OR calculation, that is,
g = gXOR (Di × (MSB of shift register 62))
However, "x" is multiplication (Di operation with each bit of Di)
And the result is input to the Galois encoder 65.
[0028]
Then, the content g of the Galois encoder register 65a is shifted one bit to the right (most significant side) once. Similarly, the contents of the shift register 62 (bit string Sj) are also shifted to the right once. Then, by shifting the contents of the shift register 62 one bit to the right once, if the new MSB of the shift register 62 is “1”, the contents of the input register 61 and the contents of the Galois encoder register 65a g and the exclusive OR, ie,
g = gXOR (Di × (MSB of shift register 62))
And the result is input to the Galois encoder 65. Then, the contents of the Galois encoder 65 are shifted one bit to the right (most significant side) once, and the shift register 62 is similarly shifted one bit to the right once.
[0029]
This calculation is repeated until the least significant bit (LSB) bit becomes the MSB when the shift register 62 is initially set and the above calculation is performed.
[0030]
Finally, the content g of the Galois encoder register 65a obtained by the Galois encoder 65, that is,
g = gXOR (Dj × (MSB of shift register 62))
Is output as the CRC value (= CRCm) of the data D3.
[0031]
Although this Galois multiplier is inferior to the Galois multiplier described in FIG. 6 by the maximum (N-1) shift operations, the circuit speed can be greatly reduced.
[0032]
[Problems to be solved by the invention]
In this way, the CRC value (= CRCm) can be obtained using a Galois encoder, but if the CRC encoder inputs “0” and shifts it to the right once, it is the same as the Galois encoder. Therefore, the Galois encoder can be replaced with a CRC encoder.
[0033]
However, each time the Galois encoder 65 shifts one bit to the right, it must initialize the encoder. Normally, the CRC encoder is generally not used as it is because it is generally shifted in N-bit units (or 8-bit units) while inputting data after initializing the register. .
[0034]
The present invention has been made to solve the above problems, and an object of the present invention is to provide a Galois field multiplier and a communication device capable of reducing the circuit scale by enabling Galois multiplication using a CRC encoder. It is in.
[0035]
[Means for Solving the Problems]
The invention according to claim 1 is an N-bit first bit string composed of Galois field elements input to the first register, and an N-bit second bit string composed of Galois field elements input to the second register; In a Galois multiplier for performing Galois field multiplication, a shift register that shifts 1 bit to the most significant bit side while inputting the result of exclusive OR calculation of N bits and outputting the most significant bit at that time, and the N bits An AND gate circuit for sequentially multiplying the N bit first bit string one bit at a time from the most significant bit of the second bit string, an operation result from the AND gate circuit, and the contents of the shift register A first exclusive OR gate circuit that performs an exclusive OR calculation between the shift registers and inputs the calculation result to the shift register; A CRC encoder that sequentially inputs the order bits and performs a CRC operation, and a second exclusive OR gate circuit that performs an exclusive OR calculation between the contents of the CRC encoder and the contents of the shift register. Is the gist.
[0036]
According to a second aspect of the present invention, there is provided an N-bit first bit string composed of Galois field elements input to the first register, and an N-bit second bit string composed of Galois field elements input to the second register. In the Galois field multiplier for performing the Galois field multiplication, the first circuit unit for multiplying the first bit string of N bits for each bit of the second bit string, and the first circuit part In each of the calculation results for the first bit string of N bits, which are performed for each bit, the exclusive OR calculation is performed with the bits of the same position to generate a 2N-bit calculation result. A circuit unit, a third register for inputting a 2N-bit calculation result performed in the second circuit unit, and an upper N bit of the 2N-bit calculation result input to the third register in order Exclusively performing an exclusive OR calculation between a CRC encoder that performs CRC calculation and a CRC calculation result of the CRC encoder and the lower N bits of the 2N-bit operation result input to the third register And a logical OR gate circuit.
[0037]
According to a third aspect of the present invention, in the Galois field multiplier according to the first or second aspect, the N-bit first bit string is an N-bit bit string indicating an element of a Galois field determined by CRC calculation, The N-bit second bit string is an N-bit bit string indicating an element of a Galois field of the order of “0”.
[0038]
According to a fourth aspect of the present invention, in the Galois field multiplier according to the third aspect, the first bit string of N bits is obtained as a result of CRC calculation of a predetermined data string in the range of k1 bits to k2 bits. N-bit bit string indicating the elements of the Galois field, and the second bit string of N bits is all the data strings from the next bit to the last bit of the k2 bits are "0", and the number of "0" This is a bit string of N bits indicating an element of a Galois field of the order of.
[0039]
The gist of a fifth aspect of the present invention is a communication device in which the Galois field multiplier according to any one of the first to fourth aspects is mounted.
[0040]
According to a sixth aspect of the present invention, in the communication device according to the fifth aspect, a CRC encoder for performing an original CRC calculation provided in a signal processing device of the communication device is a Galois field that performs the Galois field multiplication. The gist of the present invention is to also use the CRC encoder of the multiplier.
[0041]
(Function)
According to the first aspect of the present invention, when the N-bit second bit string from the second register is output one bit at a time starting from the most significant bit, the AND gate circuit outputs the one bit and the first register to the first register. Multiplying in sequence with the input N-bit first bit string, and outputting the result to the first exclusive OR gate circuit. The first exclusive OR gate circuit performs an exclusive OR calculation between the multiplication result of the AND gate circuit and the contents previously input to the shift register, and inputs the calculation result to the shift register. The most significant bit of the content input to the shift register is output to the CRC encoder in order, and the CRC encoder performs CRC calculation. Then, the second exclusive OR gate circuit performs an exclusive OR calculation between the contents of the CRC operation result of the CRC encoder and the contents of the shift register, so that an N-bit of Galois field elements is obtained. A result of Galois field multiplication of the first bit string and the second bit string is obtained. Therefore, Galois field multiplication using a CRC encoder is possible.
[0042]
According to the second aspect of the present invention, when the first circuit unit multiplies the first bit sequence of N bits for each bit of the second bit sequence, the second circuit unit For each of the calculation results for the first bit string of N bits performed for each bit, exclusive OR calculation is performed with the bits of the same position to generate a calculation result of 2N bits in the third register. input. Of the 2N-bit calculation results input to the third register, the upper N bits are sequentially output to the CRC encoder, and CRC calculation is performed in the CRC encoder. An exclusive OR gate circuit performs an exclusive OR calculation between the CRC operation result of the CRC encoder and the lower N bits of the 2N bit operation result input to the third register. The result of Galois field multiplication of the N-bit first bit string and the second bit string made up of Galois field elements is obtained. Therefore, Galois field multiplication using a CRC encoder is possible.
[0043]
According to the third aspect of the present invention, the Galois of the N-bit bit string indicating the elements of the Galois field obtained by the CRC calculation and the N-bit bit string indicating the elements of the Galois field of the order of “0”. The result of multiplication is obtained.
[0044]
According to the fourth aspect of the present invention, an N-bit bit string indicating an element of a Galois field obtained as a result of CRC calculation of a data string in a predetermined k1 bit to k2 bit range, All the data strings from the bit to the last bit are set to “0”, and the result of Galois field multiplication is obtained with an N-bit bit string indicating the elements of the Galois field of the order of “0”.
[0045]
According to the invention described in claim 5, Galois field multiplication using a CRC encoder becomes possible.
[0046]
According to the sixth aspect of the present invention, Galois field multiplication using a CRC encoder is possible without increasing the circuit scale.
[0047]
DETAILED DESCRIPTION OF THE INVENTION
(First embodiment)
A first embodiment embodying the present invention will be described below with reference to FIG. FIG. 1 is a block circuit diagram for explaining a Galois field multiplier 1 using a CRC encoder. For convenience of explanation, a case where the CRC value (= CRCm) in the data D3 from the k1 bit to the k2 bit in the mask area shown in FIG. 5 will be described as an example.
[0048]
In FIG. 1, a Galois field multiplier 1 is roughly composed of a shift exclusive OR circuit unit 2, a CRC encoder 3, and an exclusive OR gate circuit 4 as a second exclusive OR gate circuit. ing. The shift exclusive OR circuit unit 2 includes an input register 10 as a first register, a first shift register 11 as a second register, a second shift register 12, an AND gate circuit 13, and a first exclusive OR gate circuit. The exclusive OR gate circuit 14 is provided.
[0049]
The input register 10 receives a bit string Di composed of Galois field elements, which are CRC values being calculated for the data D3 from the k1th bit to the k2th bit of the mask area shown in FIG. In this embodiment, the bit string Di as the first bit string is an N-bit bit string. The input register 10 outputs the input bit string Di to the AND gate circuit 13.
[0050]
The first shift register 11 is input with a bit string Sj as an N-bit second bit string indicating an element of the degree Galois field of the order of “0” from the (k2 + 1) th bit to the last bit. The first shift register 11 outputs the contents of the most significant bit (MBS) at that time to the AND gate circuit 13. Also, when the first shift register 11 outputs the contents of the most significant bit to the AND gate circuit 13, the contents s (bit string Sj) of the shift register 11 is shifted one bit to the right (most significant bit side) once and newly renewed. The most significant bit (MSB) is generated.
[0051]
The AND gate circuit 13 performs multiplication between the content d (N-bit bit string Di) of the input register 10 and the content of the most significant bit (MSB) output from the first shift register 11. This calculation is repeated until the least significant bit (LSB) bit becomes the MSB when the first shift register 11 is initially set and the above calculation is performed. The AND gate circuit 13 outputs the contents of the input register 10 to the exclusive OR gate circuit 14 when the MSB output from the first shift register 11 is “1”. The AND gate circuit 13 does not output the content d of the input register 10 to the exclusive OR gate circuit 14 when the MSB output from the first shift register 11 is “0”. A multiplication operation is performed by this operation.
[0052]
When the MSB output from the first shift register 11 is “1”, the exclusive OR gate circuit 14 determines the exclusive logic between the content d of the input register 10 and the content y of the second shift register 12. Perform a sum operation. Then, the operation result of the exclusive OR is output to the second shift register 12.
[0053]
That is, the second shift register 12 has
y = yXOR (d × (MSB of the first shift register 11))
Is entered.
[0054]
The second shift register 12 is configured to output the content of the most significant bit to the CRC encoder 3 when the operation result y of the exclusive OR from the exclusive OR gate circuit 14 is input. Further, when the second shift register 12 outputs the content of the most significant bit to the CRC encoder 3, the content y of the shift register 12 is shifted one bit to the right (most significant bit side) once and a new most significant bit is obtained. (MSB) is generated.
[0055]
This operation is performed by calculating the exclusive OR operation result y by the exclusive OR gate circuit 14 because the MSB is one bit higher than the least significant bit (LSB) when the first shift register 11 is initially set. Is repeated until. The second shift register 12 outputs the shifted content y to the exclusive OR gate circuit 14.
[0056]
The CRC encoder 3 inputs the most significant bit (MSB) of the second shift register 12 to the CRC encoder register 3a, and in response to the input, shifts the N-bit content g at that time once. Do. Therefore, the CRC encoder 3 repeats the shift operation once every time the MSB is input from the second shift register 12.
[0057]
The N-bit content g of the CRC encoder register 3 a is output to the exclusive OR gate circuit 4. The exclusive OR gate circuit 4 obtains an exclusive OR between the N-bit content g of the CRC encoder register 3a and the content g of the second shift register 12, and obtains the operation result G (= gXORy). It is designed to output.
[0058]
Next, the operation of the Galois field multiplier 1 configured as described above will be described.
[0059]
Now, with the CRC encoder register 3a of the CRC encoder 3 initialized to “0”, the input register 10 calculates the data D3 from the k1 bit to the k2 bit in the mask area shown in FIG. An N-bit bit string Di composed of Galois field elements, which is the CRC value being calculated, is input. In addition, an N-bit bit string Sj indicating a Galois field element of order “0” from the (k2 + 1) -th bit to the last bit is input to the first shift register 11. Further, the content y of the second shift register 12 is initialized to “0”.
[0060]
In this state, the MBS of the first shift register 11 is output to the AND gate circuit 13, and the AND gate circuit 13 performs multiplication between the MBS of the first shift register 11 and the content d of the input register 10. The result (= d × (MSB of the first shift register 11)) is output to the exclusive OR gate circuit 14 at the next stage.
[0061]
At this time, when the content of the MSB of the first shift register 11 is “0”, no operation is performed. When the content of the MSB of the first shift register 11 is “1”, multiplication is performed and the result is supplied to the exclusive OR gate circuit 14.
[0062]
The exclusive OR gate circuit 14 obtains an exclusive OR between the operation result of the AND gate circuit 13 and the content y of the second shift register 12 at that time. The result of the exclusive OR is input to the second shift register 12 as new contents y.
[0063]
When a new content y is input to the second shift register 12, the MSB content of the content y is output to the CRC encoder 3.
[0064]
When the content of the MSB of the second shift register 12 is input, the CRC encoder 3 shifts once in response to the input to generate a new N-bit content g in the CRC encoder register 3a. become.
[0065]
When the shift operation of the CRC encoder 3 is performed, the first and second shift registers 11 and 12 each perform a 1-bit shift operation to the right, and the AND gate circuit 13, the exclusive OR gate circuit 14, and the second shift register 12 and CRC encoder 3 repeat the same operation as described above. That is, the bit higher than the least significant bit (LSB) when initially set in the first shift register 11 becomes the MSB, and the exclusive OR operation result y by the exclusive OR gate circuit 14 is input. Repeat until Accordingly, every time the exclusive OR operation result y is input to the second shift register 12, the CRC encoder 3 inputs the MSB and repeats the shift operation.
[0066]
Then, the least significant bit (LSB) bit becomes the MSB, and the exclusive OR operation result y by the exclusive OR gate circuit 14 is obtained. As a result, y is input to the second shift register 12. The content y of the second shift register 12 is output to the exclusive OR gate circuit 4. The exclusive OR gate circuit 4 obtains an exclusive OR between the content y of the second shift register 12 and the N-bit content g of the CRC encoder register 3a at that time. Then, the calculation result G (= gXORy) is output as a CRC value (= CRCm = Di × Sj).
[0067]
That is, the second shift register 12 is provided, and the second shift register 12 is initialized to “0” from time to time, that is, the operation of y = yXOR (d × MBS of the first shift register 11) is performed in the first shift register. 11, while shifting the contents s of 11, the MBS of the second shift register 12 is sequentially input to the CRC encoder 3. As a result, it is the same as the multiplication using the Galois encoder. However, since the content y (= yXOR (d × MBS of the first shift register 11)) of the second shift register 12 is not directly input to the CRC encoder 3, (N-1) shift operations are performed. After that, an exclusive OR is taken between the content y of the second shift register 12 and the content g of the CRC encoder register 3a.
[0068]
Thus, in this embodiment, by providing the shift exclusive OR circuit unit 2 in the preceding stage of the CRC encoder 3, Galois multiplication similar to the Galois encoder can be performed. Therefore, the CRC value (= CRCm = Di × Sj) can be obtained without increasing the circuit scale.
[0069]
In addition, as the data input to the first shift register 11, an N-bit bit string Sj indicating an element of the degree “0” order Galois field from the (k2 + 1) -th bit to the last bit is input. Accordingly, the CRC encoder alone is faster than the case of obtaining the CRC value (= CRCm) by inputting “0” by the number of “0” from the (k2 + 1) th bit to the last bit and performing the shift operation. A CRC value (= CRCm = Di × Sj) can be obtained.
(Second Embodiment)
Next, a second embodiment of the present invention will be described with reference to FIG. FIG. 2 is a block circuit diagram for explaining a Galois field multiplier 21 using a CRC encoder. For convenience of explanation, a case where the CRC value (= CRCm) in the data D3 from the k1 bit to the k2 bit in the mask area shown in FIG. 5 will be described as an example.
[0070]
In FIG. 2, the Galois field multiplier 21 is roughly composed of a shift exclusive OR circuit unit 22, a CRC encoder 23, and an exclusive OR gate circuit 24. The shift exclusive OR circuit unit 22 includes an N-bit first register 31, an N-bit second register 32, a 2N-bit shift register 33, a first circuit unit 34, and a second circuit unit 35. Yes.
[0071]
The first register 31 receives a bit string Di composed of Galois field elements, which are CRC values being calculated for the data D3 from the k1th bit to the k2th bit of the mask area shown in FIG. In this embodiment, the bit string Di as the first bit string is an N-bit bit string. The second register 32 is input with a bit string Sj as an N-bit second bit string indicating elements of the degree of Galois field of the order of “0” from the (k2 + 1) th bit to the last bit.
[0072]
The first circuit unit 34 includes N sets corresponding to the number of bits (N bits) of the bit string Sj of the second register 32, and each set includes the number of bits of the bit string Di of the first register 31 ( N AND gate circuits 34a each corresponding to (N bits). Accordingly, the first circuit unit 34 is configured to have N2The AND gate circuit 34a is provided.
[0073]
Each set of N AND gate circuits 34a receives the bit data corresponding to the bit string Sj composed of N bits input to the second register 32 for each set. Each set of N AND gate circuits 34a receives bit data corresponding to a bit string Di consisting of N bits of the first register 31.
[0074]
That is, for example, N AND gate circuits 34a of a set (hereinafter referred to as a first set) that inputs the least significant bit (LSB) of the bit string Sj input to the second register 32 have the least significant bit (LSB). ) And the corresponding bit data of the bit string Di input to the first register 31, respectively.
[0075]
Incidentally, the N AND gate circuits 34a of the set (hereinafter referred to as the Nth set) that inputs the most significant bit (MSB) of the bit string Sj input to the second register 32 have the most significant bit (MSB) The bit data corresponding to each bit string Di input to the first register 31 is multiplied.
[0076]
The calculation results calculated by the first to Nth AND gate circuits 34 a of the first circuit unit 34 are output to the second circuit unit 35.
[0077]
The second circuit unit 35 has a number of output terminals corresponding to the number of bits (2N bits) input to the shift register 33, and each output terminal is connected to a bit of the shift register 33. . Then, the second circuit unit 35 moves the least significant bit (LSB) of the shift register 33 between the least significant bit (LSB) of the first set of bit strings Di and the least significant bit (LSB) of the bit string Sj. An operation result from the AND gate circuit 34a for performing the operation is input. The second circuit unit 35 inputs “0” data to the most significant bit (MSB) of the shift register 33. Further, the second circuit unit 35 performs the most significant bit of the Nth bit string Di with respect to the bit that is one bit lower ((2N−1) th bit) than the most significant bit (MSB) of the shift register 33. An operation result from the AND gate circuit 34a that performs an operation between (MSB) and the most significant bit (MSB) of the bit string Sj is input.
[0078]
Further, the second circuit unit 35 has each bit from 1 bit higher (second bit) than the lowest bit of the shift register 33 to 2 bits lower ((2N−2)) bit than the highest bit. Corresponding to the bit, an exclusive OR gate circuit 35a is provided. Each exclusive OR gate circuit 35a inputs the operation result to each bit of the corresponding shift register 33.
[0079]
More specifically, an exclusive OR gate circuit (hereinafter referred to as a first gate circuit) 35a corresponding to the second bit of the shift register 33 is supplied from each of the predetermined AND gate circuits 34a of the first set and the second set. Input the calculation result. An exclusive OR gate circuit (hereinafter referred to as a second gate circuit) 35a corresponding to the third bit of the shift register 33 inputs the operation results from the predetermined AND gate circuits 34a of the first to third groups. . An exclusive OR gate circuit (hereinafter referred to as a third gate circuit) 35a corresponding to the fourth bit of the shift register 33 inputs the operation results from the predetermined AND gate circuits 34a of the first to fourth groups. .
[0080]
In this way, in the exclusive OR gate circuit 35a, the number of sets for performing the exclusive OR operation is increased by one until the bit of the shift register 33 becomes N bits, and from (N + 1) bits to (2N−). 2) In the exclusive OR gate circuit 35a up to a bit, the number of sets for performing an exclusive OR operation is decreased by one. Accordingly, the exclusive OR gate circuit (Nth gate circuit) 35a corresponding to the N bits of the shift register 33 inputs the operation results from the predetermined AND gate circuit 34a from the first to Nth groups, which are the largest. .
[0081]
Each exclusive OR gate circuit 35a performs an operation by inputting the operation results from a plurality of predetermined AND gate circuits 34a.
[0082]
More specifically, the 2-bit exclusive OR gate circuit 35 a includes an AND gate circuit 34 a that performs the operation of the second bit of the first register 31 of the first set, and the lowest order of the first register 31 of the second set. An exclusive OR operation is performed on the operation result of the AND gate circuit 34a that performs a bit (first bit) operation. The 3-bit exclusive OR gate circuit 35 a includes an AND gate circuit 34 a that performs the operation of the third bit of the first register 31 and an AND operation that performs the operation of the second bit of the second register 31. An exclusive OR operation is performed on the operation results of the gate circuit 34a and the AND gate circuit 34a that performs the operation of the first bit of the third set of first registers 31.
[0083]
The 4-bit exclusive OR gate circuit 35a includes an AND gate circuit 34a that performs an operation on the fourth bit of the first register 31 and an AND gate that performs an operation on the third bit of the second register 31. The gate circuit 34a, the AND gate circuit 34a that performs the second bit operation of the third set of first registers 31, and the operation result of the AND gate circuit 34a that performs the first bit operation of the fourth set of first registers 31 Is subjected to an exclusive OR operation.
[0084]
In other words, the first and second circuit units 34 and 35 have their N-bit operation results obtained by the N AND gate circuits 34a in the first to N-th groups as they move to higher groups. The N-bit operation result of the set is shifted one bit higher than the N-bit operation result of the lower set. That is, after shifting the first to Nth sets of N-bit operation results, exclusive OR operation is performed for each bit (each digit). The first and second circuit units 34 and 35 are configured to input the obtained 2N-bit calculation result to the shift register 33.
[0085]
When the 2N-bit operation result y is input from the second circuit unit 35, the shift register 33 shifts the most significant bit to the most significant bit side and outputs the most significant bit (MSB) at that time to the CRC encoder 23. It has become. This shift operation is performed N times. Accordingly, the shift register 33 sequentially outputs the upper N bits of the 2N-bit calculation result y input from the second circuit unit 35 to the CRC encoder 23. The shift register 33 outputs the remaining lower N bits after outputting the upper N bits to the CRC encoder 23 to the exclusive OR gate circuit 24.
[0086]
The CRC encoder 23 sequentially receives the upper N bits of bit data from the shift register 33 and performs a shift operation.
[0087]
The exclusive OR gate circuit 24 inputs the content g of the operation result obtained by performing the N-time shift operation of the CRC encoder register 23 a and the content y of the lower N bits of the shift register 33. The exclusive OR gate circuit 24 obtains an exclusive OR between the contents g and y and outputs the operation result G (= gXORy).
[0088]
Next, the operation of the Galois field multiplier 21 configured as described above will be described.
[0089]
Now, in the state where the CRC encoder register 23a is initialized to “0”, the first register 31 is in the middle of calculating the data D3 from the k1 bit to the k2 bit in the mask area shown in FIG. An N-bit bit string Di composed of Galois field elements which are CRC values is input. In addition, an N-bit bit string Sj indicating a Galois field element of order “0” from the (k2 + 1) th bit to the last bit is input to the second register 32. Further, the contents y of the shift register 33 is initialized to “0”. 2N-bit data (content y) is generated from the N-bit content d and the N-bit content s and input to the shift register 33.
[0090]
The shift register 33 performs a shift operation N times, and inputs the upper N bits of bit data in the content y of 2N bits to the CRC encoder 23 in order. As a result, the CRC encoder 23 receives the upper N bits of bit data and performs a shift operation for N bits. Then, the exclusive OR gate circuit 24 obtains an exclusive OR between the lower N-bit data (content y) remaining in the shift register 33 and the content g of the CRC encoder register 23a at that time. That is, the operation result G (= gXORy) of the exclusive OR gate circuit 24 is output as a CRC value (= CRCm = Di × Sj).
[0091]
As described above, also in the second embodiment, by providing the shift exclusive OR circuit unit 22 in the previous stage of the CRC encoder 23, Galois multiplication similar to that of the Galois encoder can be performed. Therefore, the CRC value (= CRCm = Di × Sj) can be obtained without increasing the circuit scale.
[0092]
In addition, as the data input to the second register 32, an N-bit bit string Sj indicating an element of a degree Galois field of the order of “0” from the (k2 + 1) th bit to the last bit is input. Accordingly, the CRC encoder alone is faster than the case of obtaining the CRC value (= CRCm) by inputting “0” by the number of “0” from the (k2 + 1) th bit to the last bit and performing the shift operation. A CRC value (= CRCm) can be obtained.
(Third embodiment)
Next, a third embodiment of the present invention will be described with reference to FIG. FIG. 3 is a block circuit diagram for explaining an electrical configuration of a signal processing device in which the shift exclusive OR circuit unit 22 of the Galois multiplier 21 described in the second embodiment is mounted in a communication device such as a router. Indicates.
[0093]
In FIG. 3, the signal processing device 41 includes an ALU 42, a register group 43, a CRC engine 44, and a shift exclusive OR circuit unit 22, which exchange signals with each other via buses B1 and B2. The ALU 42 performs arithmetic processing for various signal processing for communication in cooperation with the register group 43. The CRC engine 44 is an engine that performs a CRC operation for error correction of an input signal input to the communication device, and is the CRC encoder 23 and the exclusive OR gate circuit 24 described in the second embodiment. And the same CRC encoder and exclusive OR gate circuit (not shown).
[0094]
The shift exclusive OR circuit unit 22 includes a first register 31, a second register 32, a shift register 33, a first circuit unit 34, and a second circuit unit 35. The first register 31 receives a CRC value calculated by the CRC engine 44 from the N-bit bit string Di. In the second register 32, the N-bit bit string Sj is read and input from data indicating Galois field elements of the order of “0” stored in the memory 45 prepared in advance. Therefore, when the number of “0” is fixed, one bit string Sj is stored in the memory 45 prepared in advance. In the memory 45, a search tag table TT and a search data table TD for searching the search target data DX shown in FIG. 4 are also stored in advance.
[0095]
The shift register 33 outputs the upper N bits of the 2N-bit calculation result y calculated based on the bit strings Di and Sj to the CRC engine 44 bit by bit in order from the upper bit. The shift register 33 outputs the upper N bits in order from the upper bits to the CRC engine 44, and then outputs the lower N bits of the 2N-bit operation result y to the CRC engine 44.
[0096]
Next, the operation of the signal processing device 41 configured as described above will be described.
[0097]
For convenience of explanation, a case will be described in which the CRC value (= CRCm = Di × Sj; where x is an exclusive OR) of the data D3 is obtained for the input data D shown in FIG.
[0098]
Now, when the input data D is input to the signal processing device 41, the CRC engine 44 starts calculating the CRC from the k1th bit data of the input data D input. The CRC engine 44 performs the CRC calculation on the entire input data D in parallel with the CRC calculation. When the calculation of the CRC up to the bit data of the k2th bit is completed, the N-bit bit string Di that is the CRC value up to that time is input to the first register 31 of the shift exclusive OR circuit unit 22. At the same time, the second register 32 receives an N-bit bit string Sj indicating an element of a Galois field of the order of “0” from the (k2 + 1) -th bit to the last bit from the memory 45. Then, a 2N-bit calculation result y calculated based on the bit strings Di and Sj is input to the shift register 33.
[0099]
Next, the CRC encoder register 44 a provided in the CRC engine 44 is initialized to “0”. Subsequently, the upper N bits of the shift register 33 are input to the CRC encoder register 44a bit by bit in order from the most significant bit. The CRC encoder register 44a of the CRC engine 44 is shifted by N bits by the input of the upper N bits of bit data. Then, by exclusive ORing the lower N bits of the shift register 33 and the value of the encoder register 44a, a Galois multiplication result of CRCm = Di × Sj is obtained.
[0100]
Then, the CRC value (= CRCx == CRCx) of the search target data DX is obtained by performing an exclusive OR operation on the CRC value (= CRCm) of the obtained data D3 and the CRC value (= CRCn) of the entire input data D. CRC × CRCm) can be obtained. When the CRC value (= CRCx) of the search target data DX is obtained, the signal processing device 41 uses the search tag table TT and the search data table TD stored in the memory 45 to search the search data DS for the search target data DX. Will search.
[0101]
Thus, according to the signal processing device 41 of the communication device such as the router of the present embodiment, only the shift exclusive OR circuit unit 22 is added and the CRC encoder provided in the CRC engine 44 is used for hash search. Thus, a CRC hash search can be performed without increasing the circuit scale.
[0102]
In addition, since the shift exclusive OR circuit unit 22 performed after the bit strings Di and Sj are input does not depend on the arithmetic processing of the ALU 42, the arithmetic operation can be performed with few instruction cycles. Further, as in the above embodiment, the CRC value can be obtained in a short time and without increasing the circuit scale.
[0103]
Further, according to the signal processing device 41 of the communication device such as the router of this embodiment, only the shift exclusive OR circuit unit 22 is added, and the CRC encoder provided in the CRC engine 44 is used for hash search. Therefore, a CRC hash search can be performed without increasing the circuit scale.
[0104]
In addition, you may change embodiment of this invention as follows.
[0105]
The signal processing device 41 according to the third embodiment has the shift exclusive OR circuit unit 22 described in the second embodiment added, but the shift exclusive OR circuit described in the first embodiment. You may apply to the signal processing apparatus formed by adding the part 2.
[0106]
In the third embodiment, the bit string Di, which is the CRC value for the data D3 from the k1th bit to the k2th bit, is a CRC calculation performed by the CRC engine 44 from time to time, and the last bit from the (k2 + 1) th bit The N-bit bit string Sj indicating the elements of the order Galois field of the number “0” up to the bit is obtained from data stored in the memory 45 in advance.
[0107]
In the input data D, the bit string Di that is the CRC value for the data D3 from the k1st bit to the k2th bit and the Galois of the order of the number “0” from the (k2 + 1) th bit to the last bit. An N-bit bit string Sj indicating a body element is included. Then, when the input data D is input, the bit string Di and the bit string Sj in the input data D may be read, and the operation may be immediately performed using the bit string Di and the bit string Sj.
[0108]
In this case, it is not necessary to perform the CRC calculation from the k1th bit to the k2th bit, and the bit string Sj indicating the elements of the Galois field of the order of “0” from the (k2 + 1) th bit to the last bit is stored. No storage means is required.
[0109]
【The invention's effect】
As described above in detail, according to the present invention, the Galois field multiplication using the CRC encoder can be performed.
[Brief description of the drawings]
FIG. 1 is a block circuit diagram for explaining a Galois field multiplier using a CRC encoder according to a first embodiment.
FIG. 2 is a block circuit diagram for explaining a Galois field multiplier using the CRC encoder of the second embodiment.
FIG. 3 is a block circuit diagram for explaining a signal processing device of a communication device according to a third embodiment.
FIG. 4 is an explanatory diagram for explaining a hash search.
FIG. 5 is an explanatory diagram for explaining a data structure of data to be searched for hash search and how to obtain the data structure;
FIG. 6 is a block circuit diagram for explaining a Galois field multiplier using a conventional Galois encoder.
FIG. 7 is a block circuit diagram for explaining a Galois field multiplier similarly using a conventional Galois encoder.
[Explanation of symbols]
1,21 ... Galois field multiplier
2,22 ... Shift exclusive OR circuit section
3, 23 ... CRC encoder
4, 24 ... Exclusive OR gate circuit
10 ... Input register
11: First shift register
12 ... Second shift register
13 ... AND gate circuit
14 ... Exclusive OR gate circuit
31 ... 1st register
32. Second register
33 ... Shift register
34. First circuit portion
34a ... AND gate circuit
35 ... Second circuit section
35a ... Exclusive OR gate circuit
41 ... Signal processing device
42 ... ALU
43: Register group
44 ... CRC engine
45 ... Memory
Di: Bit string
Sj: Bit string
TD ... Search data table
D3 ... Data
d, g, s, y

Claims (6)

第1レジスタに入力されたガロア体の要素からなるNビットの第1ビット列と、第2レジスタに入力されたガロア体の要素からなるNビットの第2ビット列とのガロア体掛け算を行なうガロア体掛け算器において、
Nビットの排他的論理和計算の結果を入力しその時の最上位ビットを出力しながら最上位ビット側に1ビットシフトするシフトレジスタと、
前記Nビットの第2ビット列の最上位ビットから順番に1ビットずつ、前記Nビットの第1ビット列との間で順番に掛け算するアンドゲート回路と、
前記アンドゲート回路からの演算結果と前記シフトレジスタの内容との間で排他的論理和計算を行ないその計算結果を前記シフトレジスタに入力する第1排他的論理和ゲート回路と、
前記シフトレジスタからの最上位ビットを順次入力しCRC演算するCRC符号器と、
前記CRC符号器の内容と前記シフトレジスタの内容との間で排他的論理和計算を行なう第2排他的論理和ゲート回路と
を備えたことを特徴とするガロア体掛け算器。
Galois field multiplication for performing Galois field multiplication of an N-bit first bit string composed of Galois field elements input to the first register and an N-bit second bit string composed of Galois field elements input to the second register In the vessel
A shift register that shifts 1 bit to the most significant bit side while inputting the result of the exclusive OR calculation of N bits and outputting the most significant bit at that time;
An AND gate circuit that sequentially multiplies the first bit string of N bits one by one in order from the most significant bit of the second bit string of N bits;
A first exclusive OR gate circuit that performs an exclusive OR calculation between the operation result from the AND gate circuit and the contents of the shift register and inputs the calculation result to the shift register;
A CRC encoder that sequentially inputs the most significant bit from the shift register and performs a CRC operation;
A Galois field multiplier comprising a second exclusive OR gate circuit for performing an exclusive OR calculation between the contents of the CRC encoder and the contents of the shift register.
第1レジスタに入力されたガロア体の要素からなるNビットの第1ビット列と、第2レジスタに入力されたガロア体の要素からなるNビットの第2ビット列とのガロア体掛け算を行なうガロア体掛け算器において、
前記Nビットの第1ビット列に対して、前記第2ビット列の各位のビット毎にそれぞれ掛け算を行ない、前記Nビットの第2ビット列の最下位ビットから最上位ビットに対応する第1組から第N組の計算結果を生成する第1の回路部と、
前記第1の回路部で前記第2ビット列の各位のビット毎に行なった前記Nビットの第1ビット列に対する前記第1組から第N組の計算結果のうち第2組から第N組の各計算結果をそれぞれの前の組の計算結果より1ビット上位へシフトし、前記第1組の計算結果及びシフトした前記第2組から第N組の各計算結果について、各組の同一の位のビット間で排他的論理和計算を行ない2Nビットの計算結果を生成する第2の回路部と、
前記第2の回路部で行なった、2Nビットの計算結果を入力する第3レジスタと、
前記第3レジスタに入力された2Nビットの演算結果の上位Nビットを順次入力しCRC計算を行なうCRC符号器と、
前記CRC符号器のCRC計算結果と、前記第3レジスタに入力された2Nビットの演算結果の下位Nビットとの間で排他的論理和計算を行なう排他的論理和ゲート回路と
を備えたことを特徴とするガロア体掛け算器。
Galois field multiplication for performing Galois field multiplication of an N-bit first bit string composed of Galois field elements input to the first register and an N-bit second bit string composed of Galois field elements input to the second register In the vessel
The first bit sequence of the N bits, the first set corresponding to the respective multiplication for each bit of the Dear second bit string row stomach, the most significant bits from the least significant bit of the second bit sequence of the N-bit A first circuit unit for generating Nth set of calculation results ;
Of the N sets of calculation results from the first set for the first bit sequence of said N bits made for each bit of each position the second bit string in said first circuit portion, each of the second set of the N sets computed by shifting the respective front set of calculations than 1 bit higher, for the first set of calculation result and the shifted second set the N sets of the calculation results from each set of same-position a second circuit portion for generating a calculation result of 2N bit performs exclusive OR computation between bits,
A third register for inputting a 2N-bit calculation result performed in the second circuit section;
A CRC encoder that sequentially inputs the upper N bits of the 2N-bit operation result input to the third register and performs CRC calculation;
An exclusive OR gate circuit that performs an exclusive OR calculation between the CRC calculation result of the CRC encoder and the lower N bits of the 2N-bit operation result input to the third register. Characteristic Galois field multiplier.
請求項1又は2に記載のガロア体掛け算器において、
Nビットの第1ビット列は、CRC計算で求められたガロア体の要素を示すNビットのビット列であり、
前記Nビットの第2ビット列は、「0」の数の次数のガロア体の要素を示すNビットのビット列であることを特徴とするガロア体掛け算器。
The Galois field multiplier according to claim 1 or 2,
The N-bit first bit string is an N-bit bit string indicating an element of a Galois field obtained by CRC calculation.
The N-bit second bit string is an N-bit bit string indicating an element of an order Galois field of the number “0”.
請求項3に記載のガロア体掛け算器において、
Nビットの第1ビット列は、予め定められたk1ビットからk2ビットの範囲のデータ列をCRC計算した結果得られたガロア体の要素を示すNビットのビット列であり、
前記Nビットの第2ビット列は、前記k2ビットの次のビットから最終ビットまでのデータ列を全て「0」とし、その「0」の数の次数のガロア体の要素を示すNビットのビット列であることを特徴とするガロア体掛け算器。
The Galois field multiplier according to claim 3,
The N-bit first bit string is an N-bit bit string indicating an element of a Galois field obtained as a result of CRC calculation of a predetermined data string in the range of k1 bits to k2 bits.
The N-bit second bit string is an N-bit bit string indicating all elements of the Galois field of the order of the number “0”, where all data strings from the next bit to the last bit of the k2 bit are “0”. A Galois field multiplier characterized by being.
請求項1乃至4項のいずれか1つに記載のガロア体掛け算器を実装した通信装置。  The communication apparatus which mounted the Galois field multiplier as described in any one of Claims 1 thru | or 4. 請求項5に記載の通信装置において、
通信装置の信号処理装置に設けられた本来のCRC計算を行なうためのCRC符号器を、前記ガロア体掛け算を行なうガロア体掛け算器のCRC符号器を兼用することを特徴とする通信装置。
The communication device according to claim 5, wherein
A communication apparatus characterized in that a CRC encoder for performing an original CRC calculation provided in a signal processing apparatus of the communication apparatus also serves as a CRC encoder of a Galois multiplier for performing the Galois multiplication.
JP2002258777A 2002-09-04 2002-09-04 Galois field multiplier and communication device Expired - Fee Related JP4313555B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2002258777A JP4313555B2 (en) 2002-09-04 2002-09-04 Galois field multiplier and communication device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2002258777A JP4313555B2 (en) 2002-09-04 2002-09-04 Galois field multiplier and communication device

Publications (2)

Publication Number Publication Date
JP2004094871A JP2004094871A (en) 2004-03-25
JP4313555B2 true JP4313555B2 (en) 2009-08-12

Family

ID=32063315

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2002258777A Expired - Fee Related JP4313555B2 (en) 2002-09-04 2002-09-04 Galois field multiplier and communication device

Country Status (1)

Country Link
JP (1) JP4313555B2 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8607129B2 (en) * 2011-07-01 2013-12-10 Intel Corporation Efficient and scalable cyclic redundancy check circuit using Galois-field arithmetic

Also Published As

Publication number Publication date
JP2004094871A (en) 2004-03-25

Similar Documents

Publication Publication Date Title
JP5456766B2 (en) Performing optional Galois Field computations on a programmable processor
US7685408B2 (en) Methods and apparatus for extracting bits of a source register based on a mask and right justifying the bits into a target register
CN102096609A (en) Instruction-set architecture for programmable cyclic redundancy check (CRC) computations
JPS59124011A (en) Numerous byte error correction system
KR20080040706A (en) Method and apparatus for configuring a cyclic redundancy check(crc) generation circuit to perform crc on a data stream
GB2399909A (en) Multiplication of selectively partitioned binary inputs using booth encoding
JP2585649B2 (en) Division circuit
JP4210378B2 (en) Galois field multiplier and Galois field multiplication method
JP4313555B2 (en) Galois field multiplier and communication device
JP2001251194A (en) Crc arithmetic unit
CN101308452A (en) Method to compare and sort binary data
JP4057876B2 (en) Control method of Galois field multiplier
JP3614978B2 (en) Galois field division method and division apparatus
JP3417286B2 (en) Multiplier
JP2009534729A (en) N-bit adder and corresponding addition method
US5691930A (en) Booth encoder in a binary multiplier
EP0431416A2 (en) Apparatus and method for accessing a cyclic redundancy error check code generated in parallel
US11489544B2 (en) Fast CRC computation circuit using an on-the-fly reconfigurable generator polynomial
JP3610564B2 (en) Information processing device
US20080104487A1 (en) Error detection apparatus and error detection method
JP4042215B2 (en) Arithmetic processing apparatus and method
JPH10215187A (en) Error detection encoding and decoding device and method
JP2797569B2 (en) Euclidean circuit
JPH10150367A (en) Error correction device
JP2591164B2 (en) Parity operation circuit

Legal Events

Date Code Title Description
A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A711

Effective date: 20040927

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20050713

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20081014

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20090114

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20090119

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090202

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20090512

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20090515

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120522

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

Ref document number: 4313555

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130522

Year of fee payment: 4

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S533 Written request for registration of change of name

Free format text: JAPANESE INTERMEDIATE CODE: R313533

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees