JP4313555B2 - Galois field multiplier and communication device - Google Patents
Galois field multiplier and communication device Download PDFInfo
- 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
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.
[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
[0022]
When calculating the CRC value (= CRCm) of the data D3 in the mask area shown in FIG. 5 using this multiplier, the
[0023]
The bit string Di input to the
[0024]
However, although the calculation speed is high, the number of all combinations (N2And the AND
[0025]
FIG. 7 shows a Galois multiplier that can be configured with a small circuit scale. In FIG. 7, this Galois multiplier includes an
[0026]
Now, with the Galois encoder register 53a of the
[0027]
When the most significant bit (MSB) of the
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
[0028]
Then, the content g of the
g = gXOR (Di × (MSB of shift register 62))
And the result is input to the
[0029]
This calculation is repeated until the least significant bit (LSB) bit becomes the MSB when the
[0030]
Finally, the content g of the
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
[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
[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
[0048]
In FIG. 1, a
[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
[0050]
The
[0051]
The AND
[0052]
When the MSB output from the
[0053]
That is, the
y = yXOR (d × (MSB of the first shift register 11))
Is entered.
[0054]
The
[0055]
This operation is performed by calculating the exclusive OR operation result y by the exclusive OR
[0056]
The
[0057]
The N-bit content g of the CRC encoder register 3 a is output to the exclusive OR
[0058]
Next, the operation of the
[0059]
Now, with the
[0060]
In this state, the MBS of the
[0061]
At this time, when the content of the MSB of the
[0062]
The exclusive OR
[0063]
When a new content y is input to the
[0064]
When the content of the MSB of the
[0065]
When the shift operation of the
[0066]
Then, the least significant bit (LSB) bit becomes the MSB, and the exclusive OR operation result y by the exclusive OR
[0067]
That is, the
[0068]
Thus, in this embodiment, by providing the shift exclusive OR
[0069]
In addition, as the data input to the
(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
[0070]
In FIG. 2, the
[0071]
The
[0072]
The
[0073]
Each set of N AND
[0074]
That is, for example, N AND
[0075]
Incidentally, the N AND
[0076]
The calculation results calculated by the first to Nth AND
[0077]
The
[0078]
Further, the
[0079]
More specifically, an exclusive OR gate circuit (hereinafter referred to as a first gate circuit) 35a corresponding to the second bit of the
[0080]
In this way, in the exclusive OR
[0081]
Each exclusive OR
[0082]
More specifically, the 2-bit exclusive OR
[0083]
The 4-bit exclusive OR
[0084]
In other words, the first and
[0085]
When the 2N-bit operation result y is input from the
[0086]
The
[0087]
The exclusive OR
[0088]
Next, the operation of the
[0089]
Now, in the state where the
[0090]
The
[0091]
As described above, also in the second embodiment, by providing the shift exclusive OR
[0092]
In addition, as the data input to the
(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
[0093]
In FIG. 3, the
[0094]
The shift exclusive OR
[0095]
The
[0096]
Next, the operation of the
[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
[0099]
Next, the CRC encoder register 44 a provided in the
[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
[0101]
Thus, according to the
[0102]
In addition, since the shift exclusive OR
[0103]
Further, according to the
[0104]
In addition, you may change embodiment of this invention as follows.
[0105]
The
[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
[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)
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.
前記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.
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”.
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.
通信装置の信号処理装置に設けられた本来の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.
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)
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 |
-
2002
- 2002-09-04 JP JP2002258777A patent/JP4313555B2/en not_active Expired - Fee Related
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 |