JP4935787B2 - 巡回符号演算処理回路 - Google Patents
巡回符号演算処理回路 Download PDFInfo
- Publication number
- JP4935787B2 JP4935787B2 JP2008235124A JP2008235124A JP4935787B2 JP 4935787 B2 JP4935787 B2 JP 4935787B2 JP 2008235124 A JP2008235124 A JP 2008235124A JP 2008235124 A JP2008235124 A JP 2008235124A JP 4935787 B2 JP4935787 B2 JP 4935787B2
- Authority
- JP
- Japan
- Prior art keywords
- bits
- remainder
- data block
- unit
- data
- 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.)
- Active
Links
Images
Classifications
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
- H03M13/09—Error detection only, e.g. using cyclic redundancy check [CRC] codes or single parity bit
- H03M13/091—Parallel or block-wise CRC computation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/004—Arrangements for detecting or preventing errors in the information received by using forward error control
- H04L1/0045—Arrangements at the receiver end
- H04L1/0052—Realisations of complexity reduction techniques, e.g. pipelining or use of look-up tables
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/004—Arrangements for detecting or preventing errors in the information received by using forward error control
- H04L1/0056—Systems characterized by the type of code used
- H04L1/0061—Error detection codes
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computing Systems (AREA)
- Physics & Mathematics (AREA)
- Probability & Statistics with Applications (AREA)
- Theoretical Computer Science (AREA)
- Error Detection And Correction (AREA)
Description
図16(a)は、並列ビット数M=8、フレーム長n=29ビットの場合における、k番目の入力フレームNk(x)の一例であり、最終ワード有効情報H(k)=5となる。18−1−1〜18−4−5がCRC符号演算対象となるデータであり、18−4−6〜18−4−8がCRC符号演算対象外の無効データである。また、M=8であることから、L=3(=Log28)である。
片下、外4名、「高速かつ軽量な可変データ長対応のCRC回路構成手法」、情報処理学会論文誌、情報処理学会、2007年7月、第48巻、第7号、pp.2382−2392
なお、既に前述しているが、前記非特許文献1に開示された並列CRC符号演算処理回路は、巡回符号にCRC符号を用いた並列巡回符号演算処理回路であり、並列CRC符号演算処理回路内CRC計算部は、巡回符号の計算をおこなう巡回符号計算部である。
所定の並列ビット数のビットに対して処理を並列に行うことによって、連続する複数のビットからなる入力データを生成多項式により除算した剰余である入力データ剰余を算出する巡回符号演算処理回路である。
上記入力データを構成する複数のビットのうちの、上記並列ビット数のビットからなるワード毎に当該複数のビットを先頭から順に分割した場合における最も末尾側のワードである最終ワードよりも先頭側のビットからなる整数倍データブロックを、上記生成多項式によって除算した剰余である整数倍データブロック剰余を、当該並列ビット数のビットに対して処理を並列に行うことにより算出する整数倍データブロック剰余算出手段と、
上記入力データのうちの、上記最終ワードに含まれるビットからなる最終ワード有効データブロックを上記生成多項式によって除算した剰余である最終ワード有効データブロック剰余を算出する最終ワード有効データブロック剰余算出手段と、
上記算出された整数倍データブロック剰余と、上記算出された最終ワード有効データブロック剰余と、に基づいて上記入力データ剰余を算出する入力データ剰余算出手段と、
を備える。
所定の並列ビット数のビットに対して処理を並列に行うことによって、連続する複数のビットからなる入力データを生成多項式により除算した剰余である入力データ剰余を算出するネットワーク・インタフェース・カードである。
上記入力データを構成する複数のビットのうちの、上記並列ビット数のビットからなるワード毎に当該複数のビットを先頭から順に分割した場合における最も末尾側のワードである最終ワードよりも先頭側のビットからなる整数倍データブロックを、上記生成多項式によって除算した剰余である整数倍データブロック剰余を、当該並列ビット数のビットに対して処理を並列に行うことにより算出する整数倍データブロック剰余算出手段と、
上記入力データのうちの、上記最終ワードに含まれるビットからなる最終ワード有効データブロックを上記生成多項式によって除算した剰余である最終ワード有効データブロック剰余を算出する最終ワード有効データブロック剰余算出手段と、
上記算出された整数倍データブロック剰余と、上記算出された最終ワード有効データブロック剰余と、に基づいて上記入力データ剰余を算出する入力データ剰余算出手段と、
を備える。
所定の並列ビット数のビットに対して処理を並列に行うことによって、連続する複数のビットからなる入力データを生成多項式により除算した剰余である入力データ剰余を算出する方法である。
上記入力データを構成する複数のビットのうちの、上記並列ビット数のビットからなるワード毎に当該複数のビットを先頭から順に分割した場合における最も末尾側のワードである最終ワードよりも先頭側のビットからなる整数倍データブロックを、上記生成多項式によって除算した剰余である整数倍データブロック剰余を、当該並列ビット数のビットに対して処理を並列に行うことにより算出する整数倍データブロック剰余算出工程と、
上記入力データのうちの、上記最終ワードに含まれるビットからなる最終ワード有効データブロックを上記生成多項式によって除算した剰余である最終ワード有効データブロック剰余を算出する最終ワード有効データブロック剰余算出工程と、
上記算出された整数倍データブロック剰余と、上記算出された最終ワード有効データブロック剰余と、に基づいて上記入力データ剰余を算出する入力データ剰余算出工程と、
を含む。
所定の並列ビット数のビットに対して処理を並列に行うことによって、連続する複数のビットからなる入力データを生成多項式により除算した剰余である入力データ剰余を算出する巡回符号演算処理回路である。
上記入力データを構成する複数のビットのうちの、上記並列ビット数のビットからなるワード毎に当該複数のビットを先頭から順に分割した場合における最も末尾側のワードである最終ワードよりも先頭側のビットからなる整数倍データブロックを、上記生成多項式によって除算した剰余である整数倍データブロック剰余を、当該並列ビット数のビットに対して処理を並列に行うことにより算出する整数倍データブロック剰余算出手段と、
上記入力データのうちの、上記最終ワードに含まれるビットからなる最終ワード有効データブロックを上記生成多項式によって除算した剰余である最終ワード有効データブロック剰余を算出する最終ワード有効データブロック剰余算出手段と、
上記算出された整数倍データブロック剰余と、上記算出された最終ワード有効データブロック剰余と、に基づいて上記入力データ剰余を算出する入力データ剰余算出手段と、
を備える。
上記入力データ剰余算出手段は、
上記最終ワード有効データブロックを構成するビットの数を指数として有するべき乗の項のみを有する多項式を、上記生成多項式によって除算した剰余である上記剰余算出用係数と、上記整数倍データブロック剰余と、を乗算した乗算値と、上記最終ワード有効データブロック剰余と、を加算することにより上記入力データ剰余を算出するように構成されることが好適である。
上記最終ワード有効データブロック剰余算出手段は、
上記並列ビット数のビットに対して処理を並列に行うことにより、上記最終ワード有効データブロックの末尾のビットが0を指数として有するべき乗の項に対応する一端に位置するように当該最終ワード有効データブロックを含み且つ当該最終ワード有効データブロックよりも他端側のすべてのビットが0に設定された上記並列ビット数のデータを上記生成多項式によって除算した剰余を上記最終ワード有効データブロック剰余として算出するように構成されることが好適である。
上記巡回符号演算処理回路は、
上記整数倍データブロック剰余算出手段及び上記最終ワード有効データブロック剰余算出手段は、制御信号生成手段と、シフト手段と、選択手段と、計算手段と、からなることが好適である。
上記入力データを先頭から順に上記並列ビット数のビットからなるワード毎に出力するとともに、上記最終ワード有効データブロックを構成するデータを出力するときには出力するデータが当該最終ワード有効データブロックを構成する旨を表す最終ワード有効データ信号と、上記並列ビット数から当該最終ワード有効データブロックを構成するビットの数を減じた数を表すシフト情報と、を出力するように構成される。
上記制御信号生成手段から出力されたデータを受け付けるとともに、当該制御信号生成手段から上記シフト情報が出力された場合に当該受け付けたデータを当該シフト情報が表す数のビットだけ上記一端側にシフトし且つそのシフトされたデータよりも他端側のすべてのビットを0に設定したデータを出力し、当該制御信号生成手段から当該シフト情報が出力されなかった場合に当該受け付けたデータを出力するように構成される。
上記計算手段から前回の演算処理にて出力されたデータを受け付けるとともに、上記制御信号生成手段から上記最終ワード有効データ信号が出力された場合に上記生成多項式の次数と同数の0からなるデータを出力し、一方、当該制御信号生成手段から当該最終ワード有効データ信号が出力されなかった場合に上記受け付けたデータを出力するように構成される。
上記シフト手段から出力されたデータと、上記選択手段から出力されたデータと、に基づいて、上記並列ビット数のビットに対して演算処理を並列に行うことにより、その処理結果を表すデータを出力するように構成される。
上記巡回符号演算処理回路は、
誤り検出処理を行うためのFCS値として上記入力データ剰余を上記入力データに付加する回路に適用されることが好適である。
上記巡回符号演算処理回路は、
上記入力データ剰余に基づいて上記入力データの誤り検出処理を行う回路に適用されることが好適である。
上記巡回符号演算処理回路は、
CRCを用いてデータの誤り検出処理を行うために上記入力データ剰余を使用する回路に適用されることが好適である。
所定の並列ビット数のビットに対して処理を並列に行うことによって、複数のビットからなる入力データを生成多項式により除算した剰余である入力データ剰余を算出するように構成される。
所定の並列ビット数のビットに対して処理を並列に行うことによって、連続する複数のビットからなる入力データを生成多項式により除算した剰余である入力データ剰余を算出するネットワーク・インタフェース・カードである。
上記入力データを構成する複数のビットのうちの、上記並列ビット数のビットからなるワード毎に当該複数のビットを先頭から順に分割した場合における最も末尾側のワードである最終ワードよりも先頭側のビットからなる整数倍データブロックを、上記生成多項式によって除算した剰余である整数倍データブロック剰余を、当該並列ビット数のビットに対して処理を並列に行うことにより算出する整数倍データブロック剰余算出手段と、
上記入力データのうちの、上記最終ワードに含まれるビットからなる最終ワード有効データブロックを上記生成多項式によって除算した剰余である最終ワード有効データブロック剰余を算出する最終ワード有効データブロック剰余算出手段と、
上記算出された整数倍データブロック剰余と、上記算出された最終ワード有効データブロック剰余と、に基づいて上記入力データ剰余を算出する入力データ剰余算出手段と、
を備える。
上記入力データ剰余算出手段は、
上記最終ワード有効データブロックを構成するビットの数を指数として有するべき乗の項のみを有する多項式を、上記生成多項式によって除算した剰余である上記剰余算出用係数と、上記整数倍データブロック剰余と、を乗算した乗算値と、上記最終ワード有効データブロック剰余と、を加算することにより上記入力データ剰余を算出するように構成される。
上記最終ワード有効データブロック剰余算出手段は、
上記並列ビット数のビットに対して処理を並列に行うことにより、上記最終ワード有効データブロックの末尾のビットが0を指数として有するべき乗の項に対応する一端に位置するように当該最終ワード有効データブロックを含み且つ当該最終ワード有効データブロックよりも他端側のすべてのビットが0に設定された上記並列ビット数のデータを上記生成多項式によって除算した剰余を上記最終ワード有効データブロック剰余として算出するように構成されることが好適である。
所定の並列ビット数のビットに対して処理を並列に行うことによって、連続する複数のビットからなる入力データを生成多項式により除算した剰余である入力データ剰余を算出する方法である。
上記入力データを構成する複数のビットのうちの、上記並列ビット数のビットからなるワード毎に当該複数のビットを先頭から順に分割した場合における最も末尾側のワードである最終ワードよりも先頭側のビットからなる整数倍データブロックを、上記生成多項式によって除算した剰余である整数倍データブロック剰余を、当該並列ビット数のビットに対して処理を並列に行うことにより算出する整数倍データブロック剰余算出工程と、
上記入力データのうちの、上記最終ワードに含まれるビットからなる最終ワード有効データブロックを上記生成多項式によって除算した剰余である最終ワード有効データブロック剰余を算出する最終ワード有効データブロック剰余算出工程と、
上記算出された整数倍データブロック剰余と、上記算出された最終ワード有効データブロック剰余と、に基づいて上記入力データ剰余を算出する入力データ剰余算出工程と、
を含む。
上記入力データ剰余算出工程は、
上記最終ワード有効データブロックを構成するビットの数を指数として有するべき乗の項のみを有する多項式を、上記生成多項式によって除算した剰余である上記剰余算出用係数と、上記整数倍データブロック剰余と、を乗算した乗算値と、上記最終ワード有効データブロック剰余と、を加算することにより上記入力データ剰余を算出するように構成されることが好適である。
上記最終ワード有効データブロック剰余算出工程は、
上記並列ビット数のビットに対して処理を並列に行うことにより、上記最終ワード有効データブロックの末尾のビットが0を指数として有するべき乗の項に対応する一端に位置するように当該最終ワード有効データブロックを含み且つ当該最終ワード有効データブロックよりも他端側のすべてのビットが0に設定された上記並列ビット数のデータを上記生成多項式によって除算した剰余を上記最終ワード有効データブロック剰余として算出するように構成されることが好適である。
なお、以降、本発明における各実施形態は、説明上前記非特許文献1と同様に巡回符号としてCRC符号を使用するが、これは、本発明をCRC符号のみに限定するものは無く、CRC符号以外の他の巡回符号であっても良い。
先ず、本発明の基礎となる式(基礎式)の導出について説明する。
連続する複数(ここでは、n)のビットからなる入力フレーム(入力データ)Nk(x)のCRC値を求める場合、CRC符号演算対象であるNk(x)は、整数倍データブロックA(x)と、最終ワード有効データブロックB(x)と、を用いて下記式(1)のように表すことができる。ここで、xは多項式の変数である。また、入力フレームは、その入力フレームを構成する各ビットを係数とする多項式Nk(x)により表現される。同様に、整数倍データブロックA(x)、最終ワード有効データブロックB(x)及び後述する他のデータも、そのデータの各ビットを係数とする多項式により表現される。
Nk(x)=A(x)・xH(k)+B(x) …(1)
Ra(x)=[A(x)・xd] mod G(x) …(2)
R(x)=[Nk(x)・xd] mod G(x) …(3)
R(x)={[A(x)・xd・xH(k)]+[B(x)・xd]} mod G(x)
…(4)
R(x)={[Ra(x)・xH(k)]+[B(x)・xd]} mod G(x)
…(5)
R(x)={Ra(x)・[xH(k)] mod G(x)}
+{[B(x)・xd] mod G(x)} …(6)
[xH(k)] mod G(x)βH(k)(x)= …(7)
R(x)={Ra(x)・βH(k)(x)}+Rb(x) …(8)
R(x)={[Ra(x)・βH(k)(x)] mod G(x)}+Rb(x)
…(9)
(1)並列ビット数Mのビットに対して処理を並列に行う、Mビット入力のCRC計算回路により整数倍データブロック剰余Ra(x)を算出する
(2)剰余算出用係数βH(k)(x)を最終ワード有効ビット数H(k)に基づいて算出する
(3)最終ワード有効ビット数H(k)のビットからなるB(x)をp(p=M−H(k))ビットだけ最下位ビット側にシフトする
(4)(3)にてシフトしたデータに基づいて、Mビット入力のCRC計算回路により最終ワード有効データブロック剰余Rb(x)を算出する
(5)Ra(x)とβH(k)(x)との乗算(ガロア体上の乗算)を行う
(6)(5)にて乗算した結果と、Rb(x)と、の加算(ガロア体上の加算:排他的論理和)を行うことにより、Nk(x)のCRC値(入力データ剰余)R(x)を求める
入力フレームNk´(x)内に含まれる誤りを検出する場合、CRC符号演算対象範囲を、Nk´(x)の先頭から、最後尾までとすることで、演算結果よりNk´(x)内の誤りを検出することが出来る。
これは、Nk´(x)= Nk(x)・xd+R(x)であり、CRC値R(x)は、Nk(x)を生成多項式G(x)で除算した際の剰余であるため、Nk´(x)は、生成多項式G(x)の倍数となる。つまり、Nk´(x)をG(x)で除算した際の剰余は、必ず‘0’になり、剰余が‘0’以外の場合、Nk´(x)内に誤りがあることになる。
前述を式で表すと、下記式(10)〜(12)のようになる。なお、また、A(x)は、Nk´(x)の並列幅Mビットの整数倍データブロックであり、B(x)は、Nk´(x)の最終ワード有効データブロックである。
Nk´(x)=A(x)・xH(k)+B(x) …(10)
Ra(x)=[A(x)] mod G(x) …(11)
C(x)=[Nk´(x)] mod G(x) …(12)
C(x)={Ra(x)・[xH(k)] mod G(x)}
+{[B(x)] mod G(x)} …(13)
C(x)={Ra(x)・βH(k)(x)}+Rb(x) …(14)
C(x)={[Ra(x)・βH(k)(x)] mod G(x)}+Rb(x)
…(15)
(構成)
次に、本発明の第1実施形態について、図1及び図2を参照しながら、詳細に説明する。図1は、本発明の第1実施形態に係るネットワーク・インタフェース・カード(NIC;Network Interface Card)28の送信機能の構成を示すブロック図である。ネットワーク・インタフェース・カード28は、図示しないサーバ装置又はコンピュータ装置に搭載され、フレームを送受信する処理を行うカードである。
次に、上述したように構成されたネットワーク・インタフェース・カード28の作動について説明する。
シフト部12は、セレクタ回路611〜61Mと、制御部621〜62Mと、を含む。セレクタ回路611〜61Mには、Mビットのデータと1ビットの‘0’と、が入力される。セレクタ回路611〜61Mは、制御部621〜62Mの信号に応じて、入力されたビットのうちの1つのビットを出力する。
いま、入力側の最上位ビットを入力ビットデータ1とし、入力側の最下位ビットを入力ビットデータ3とし、出力側の最上位ビットを出力ビットデータ1とし、出力側の最下位ビットを出力ビットデータ3とし、且つ、シフト情報p=1である場合を想定して説明を続ける。
係数部15は、セレクタ回路711と、係数テーブル721と、を含む。係数テーブル721は、上記式(7)に基づいて算出されたM組の係数β1(x)731〜βM(x)73Mを予め記憶している。
この場合、係数テーブル721は、係数β1(x)731〜β3(x)733を含む。セレクタ回路711は、最終ワード有効ビット数H(k)=1を受け取ったとき、係数β1(x)を出力する。また、セレクタ回路711は、最終ワード有効ビット数H(k)=2を受け取ったとき、係数β2(x)を出力する。同様に、セレクタ回路711は、最終ワード有効ビット数H(k)=3を受け取ったとき、係数β3(x)を出力する。
E(x)=Ra(x)・β(x)
=e4・x4+e3・x3+e2・x2+e1・x1+e0・x0 …(16)
e4=ra2・bt2 …(17)
e3=ra1・bt2+ra2・bt1 …(18)
e2=ra0・bt2+ra1・bt1+ra2・bt0 …(19)
e1=ra0・bt1+ra1・bt0 …(20)
e0=ra0・bt0 …(21)
G(x)=x3+x1+x0 …(22)
R´a (x)=r´a2・x2+r´a1・x1+r´a0・x0 …(23)
r´a2=e2+e4 …(24)
r´a1=e1+e3+e4 …(25)
r´a0=e0+e3 …(26)
乗算部16は、AND部811〜81dと、生成多項式G(x)の次数dの2倍の数2dのビットを入力幅とするmod計算部821と、複数の排他的論理和演算部と、を含む。
d=3であり且つ生成多項式G(x)=x3+x1+x0である場合を想定して説明を続ける。この場合、入力信号Ra(x)=(ra2・x2+ra1・x1+ra0・x0)であり、β(x)=(bt2・x2+bt1・x1+bt0・x0)である。
次に、本発明の第2実施形態に係るイーサネット・スイッチについて説明する。
図10に示したように、このイーサネット・スイッチは、ラインカード受信部1011〜101Cと、スイッチ部103と、ラインカード送信部1021〜102Cと、を備える。このイーサネット・スイッチは、1つのラインカード受信部1011〜101Cと、1つのラインカード送信部1021〜102Cと、からなる組をC組だけ構成している。ここで、Cは1以上の任意の正の整数である。
並列CRC検査部1004は、入力フレームN´k(x)(kは任意の正の整数)の先頭からFCS値までに含まれる誤りを検出するため、入力フレームN´k(x)の先頭からFCS値までをCRC符号演算する。
並列CRC検査部1004は、CRC符号演算対象である入力フレームN´k(x)のビット数nが並列ビット数Mの整数倍でない場合、つまり、最終ワード有効データブロックが端数ビットである場合に、入力フレームN´k(x)のうち最終ワード有効データブロック以外のビット(並列ビット数Mを整数倍した数のビット)からなる整数倍データブロックA(x)のCRC値(整数倍データブロック剰余)Ra(x)と、最終ワード有効ビット数H(k)のビットからなる最終ワード有効データブロックB(x)のCRC値(最終ワード有効データブロック剰余)Rb(x)と、を独立に算出する。
任意長のデータ系列Nk(x)に対して、任意の生成多項式G(x)による除算演算を、任意の並列度M(Mは2以上の正の整数)で行い、その剰余を算出するCRC符号演算処理方式であって、
前記データ系列Nk(x)を、最終ワード有効データブロックB(x)を除く、Mの整数倍の長さを有する整数倍データブロックA(x)と、長さM−p(pは0以上M−1未満の正の整数)の最終ワード有効データブロックB(x)とに分割し、
前記整数倍データブロックA(x)を生成多項式G(x)で除算し、
前記最終ワード有効データブロックB(x)を生成多項式G(x)で除算し、
該A(x)のG(x)による剰余結果と、係数との乗算を行い、
該乗算結果と、該B(x)のG(x)による剰余結果との排他的論和演算を行うことで、データ系列Nk(x)に対する生成多項式G(x)による剰余を算出することを特徴とするCRC符号演算処理方式、
を用いている、と言うことができる。
任意長のデータ系列Nk(x)に対して、次数dの任意の生成多項式G(x)による除算演算を、任意の並列度Mビット(Mは2以上の正の整数)で行い、その剰余を算出するCRC符号生成演算処理回路であって、
前記データ系列Nk(x)を、最終ワード有効データブロックB(x)を除く、Mビットの整数倍の長さを有するデータブロックA(x)と、M−pビット幅(pは0以上M−1未満の正の整数)の最終ワード有効データブロックB(x)とに分割する手段と、
前記最終ワード有効データブロックB(x)を下位ビット側にシフトし、その上位ビット側にpビットの‘0’を付加して、Mビット幅のデータブロックを生成する手段と、
前記のMビット幅のシフトデータと、前記整数倍データブロックA(x)の剰余演算を行う手段と、
前記整数倍データブロックA(x)に対する剰余計算結果と、M−pビットに対応する係数との乗算計算を行う手段と、
前記dビット幅の乗算結果と、dビット幅の前記最終ワード有効データブロックB(x)に対する剰余計算結果との排他的論理和を行う手段を備えることを特徴とする、CRC符号生成演算処理回路、
を用いている、と言うこともできる。
検査用CRC符号を含む任意長のデータ系列Nk(x)に対して、次数dの任意の生成多項式G(x)による除算演算を、任意の並列度Mビット(Mは2以上の正の整数)で行い、Nk(x)の誤りを検出するCRC符号検査演算処理回路であって、
検査用CRC符号を含む任意長のデータ系列Nk(x)を、最終ワード有効データブロックB(x)を除く、Mの整数倍の長さを有する整数倍データブロックA(x)と、M−pビット幅(pは0以上M−1未満の正の整数)の最終ワード有効データブロックB(x)とに分割する手段と、
前記最終ワード有効データブロックB(x)を下位ビット側にシフトし、その上位ビット側にpビットの‘0’を付加して、Mビット幅のデータブロックを生成する手段と、
前記のMビット幅のシフトデータと、前記整数倍データブロックA(x)のCRC計算を行う手段と、
前記整数倍データブロックA(x)に対するCRC計算結果と、M−pビットに対応する係数との乗算計算を行う手段と、
前記dビット幅の乗算結果と、dビット幅の前記最終ワード有効データブロックB(x)に対するCRC計算結果との排他的論理和を行う手段を備えることを特徴とする、並列CRC符号検査演算処理回路、
を用いている、と言うことができる。
12、112 シフト部
13、113 選択部
14、114、1502〜1505 CRC計算部
15、115 係数部
16、116 乗算部
17、117 加算部
21 バス終端部
22 ヘッダ付与部
23 並列CRC符号演算処理部
24 FCS付与部
25 PCS部
26 送信器
27 MAC送信処理部
28 ネットワーク・インタフェース・カード
31、32 FCS
611〜61M セレクタ回路
621〜62M 制御部
711 セレクタ回路
721 係数テーブル
730〜73M 係数
811〜81d、901 AND部
821 mod計算部
1001 受信器
1002 PCS部
1003 ヘッダ解析部
1004 並列CRC計算部
1005 フレーム廃棄部
1006 フレームバッファ
1011〜101C ラインカード受信部
1021〜102C ラインカード送信部
103 スイッチ部
1501 制御部
1506〜1508 データ選択部
1509〜1511 結果選択部
Claims (10)
- 所定の並列ビット数のビットに対して処理を並列に行うことによって、連続する複数のビットからなる入力データを生成多項式により除算した剰余である入力データ剰余を算出する巡回符号演算処理回路であって、
前記入力データを構成する複数のビットのうちの、前記並列ビット数のビットからなるワード毎に当該複数のビットを先頭から順に分割した場合における最も末尾側のワードである最終ワードよりも先頭側のビットからなる整数倍データブロックを、前記生成多項式によって除算した剰余である整数倍データブロック剰余を、当該並列ビット数のビットに対して処理を並列に行うことにより算出する整数倍データブロック剰余算出手段と、
前記入力データのうちの、前記最終ワードに含まれるビットからなる最終ワード有効データブロックを前記生成多項式によって除算した剰余である最終ワード有効データブロック剰余を算出する最終ワード有効データブロック剰余算出手段と、
前記算出された整数倍データブロック剰余と、前記算出された最終ワード有効データブロック剰余と、に基づいて前記入力データ剰余を算出する入力データ剰余算出手段と、
を備え、
前記最終ワード有効データブロック剰余算出手段は、
前記並列ビット数のビットに対して処理を並列に行うことにより、前記最終ワード有効データブロックの末尾のビットが0を指数として有するべき乗の項に対応する一端に位置するように当該最終ワード有効データブロックを含み且つ当該最終ワード有効データブロックよりも他端側のすべてのビットが0に設定された前記並列ビット数のデータを前記生成多項式によって除算した剰余を前記最終ワード有効データブロック剰余として算出するように構成された巡回符号演算処理回路。 - 請求項1に記載の巡回符号演算処理回路であって、
前記入力データ剰余算出手段は、
前記最終ワード有効データブロックを構成するビットの数を指数として有するべき乗の項のみを有する多項式を、前記生成多項式によって除算した剰余である剰余算出用係数と、前記整数倍データブロック剰余と、を乗算した乗算値と、前記最終ワード有効データブロック剰余と、を加算することにより前記入力データ剰余を算出するように構成された巡回符号演算処理回路。 - 請求項1又は請求項2に記載の巡回符号演算処理回路であって、
前記整数倍データブロック剰余算出手段及び前記最終ワード有効データブロック剰余算出手段は、制御信号生成手段と、シフト手段と、選択手段と、計算手段と、からなり、
前記制御信号生成手段は、
前記入力データを先頭から順に前記並列ビット数のビットからなるワード毎に出力するとともに、前記最終ワード有効データブロックを構成するデータを出力するときには出力するデータが当該最終ワード有効データブロックを構成する旨を表す最終ワード有効データ信号と、前記並列ビット数から当該最終ワード有効データブロックを構成するビットの数を減じた数を表すシフト情報と、を出力するように構成され、
前記シフト手段は、
前記制御信号生成手段から出力されたデータを受け付けるとともに、当該制御信号生成手段から前記シフト情報が出力された場合に当該受け付けたデータを当該シフト情報が表す数のビットだけ前記一端側にシフトし且つそのシフトされたデータよりも他端側のすべてのビットを0に設定したデータを出力し、当該制御信号生成手段から当該シフト情報が出力されなかった場合に当該受け付けたデータを出力するように構成され、
前記選択手段は、
前記計算手段から前回の演算処理にて出力されたデータを受け付けるとともに、前記制御信号生成手段から前記最終ワード有効データ信号が出力された場合に前記生成多項式の次数と同数の0からなるデータを出力し、一方、当該制御信号生成手段から当該最終ワード有効データ信号が出力されなかった場合に前記受け付けたデータを出力するように構成され、
前記計算手段は、
前記シフト手段から出力されたデータと、前記選択手段から出力されたデータと、に基づいて、前記並列ビット数のビットに対して演算処理を並列に行うことにより、その処理結果を表すデータを出力するように構成された巡回符号演算処理回路。 - 請求項1乃至請求項3のいずれか一項に記載の巡回符号演算処理回路であって、
誤り検出処理を行うためのフレームチェックシーケンス(FCS:Frame Check Sequence)値として前記入力データ剰余を前記入力データに付加する回路に適用される巡回符号演算処理回路。 - 請求項1乃至請求項4のいずれか一項に記載の巡回符号演算処理回路であって、
前記入力データ剰余に基づいて前記入力データの誤り検出処理を行う回路に適用される巡回符号演算処理回路。 - 請求項1乃至請求項5のいずれか一項に記載の巡回符号演算処理回路であって、
巡回冗長検査方式を用いてデータの誤り検出処理を行うために前記入力データ剰余を使用する回路に適用された巡回符号演算処理回路。 - 所定の並列ビット数のビットに対して処理を並列に行うことによって、連続する複数のビットからなる入力データを生成多項式により除算した剰余である入力データ剰余を算出するネットワーク・インタフェース・カードであって、
前記入力データを構成する複数のビットのうちの、前記並列ビット数のビットからなるワード毎に当該複数のビットを先頭から順に分割した場合における最も末尾側のワードである最終ワードよりも先頭側のビットからなる整数倍データブロックを、前記生成多項式によって除算した剰余である整数倍データブロック剰余を、当該並列ビット数のビットに対して処理を並列に行うことにより算出する整数倍データブロック剰余算出手段と、
前記入力データのうちの、前記最終ワードに含まれるビットからなる最終ワード有効データブロックを前記生成多項式によって除算した剰余である最終ワード有効データブロック剰余を算出する最終ワード有効データブロック剰余算出手段と、
前記算出された整数倍データブロック剰余と、前記算出された最終ワード有効データブロック剰余と、に基づいて前記入力データ剰余を算出する入力データ剰余算出手段と、
を備え、
前記最終ワード有効データブロック剰余算出手段は、
前記並列ビット数のビットに対して処理を並列に行うことにより、前記最終ワード有効データブロックの末尾のビットが0を指数として有するべき乗の項に対応する一端に位置するように当該最終ワード有効データブロックを含み且つ当該最終ワード有効データブロックよりも他端側のすべてのビットが0に設定された前記並列ビット数のデータを前記生成多項式によって除算した剰余を前記最終ワード有効データブロック剰余として算出するように構成されたネットワーク・インタフェース・カード。 - 請求項7に記載のネットワーク・インタフェース・カードであって、
前記入力データ剰余算出手段は、
前記最終ワード有効データブロックを構成するビットの数を指数として有するべき乗の項のみを有する多項式を、前記生成多項式によって除算した剰余である剰余算出用係数と、前記整数倍データブロック剰余と、を乗算した乗算値と、前記最終ワード有効データブロック剰余と、を加算することにより前記入力データ剰余を算出するように構成されたネットワーク・インタフェース・カード。 - 所定の並列ビット数のビットに対して処理を並列に行うことによって、連続する複数のビットからなる入力データを生成多項式により除算した剰余である入力データ剰余を算出する巡回符号演算方法であって、
前記入力データを構成する複数のビットのうちの、前記並列ビット数のビットからなるワード毎に当該複数のビットを先頭から順に分割した場合における最も末尾側のワードである最終ワードよりも先頭側のビットからなる整数倍データブロックを、前記生成多項式によって除算した剰余である整数倍データブロック剰余を、当該並列ビット数のビットに対して処理を並列に行うことにより算出する整数倍データブロック剰余算出工程と、
前記入力データのうちの、前記最終ワードに含まれるビットからなる最終ワード有効データブロックを前記生成多項式によって除算した剰余である最終ワード有効データブロック剰余を算出する最終ワード有効データブロック剰余算出工程と、
前記算出された整数倍データブロック剰余と、前記算出された最終ワード有効データブロック剰余と、に基づいて前記入力データ剰余を算出する入力データ剰余算出工程と、
を含み、
前記最終ワード有効データブロック剰余算出工程は、
前記並列ビット数のビットに対して処理を並列に行うことにより、前記最終ワード有効データブロックの末尾のビットが0を指数として有するべき乗の項に対応する一端に位置するように当該最終ワード有効データブロックを含み且つ当該最終ワード有効データブロックよりも他端側のすべてのビットが0に設定された前記並列ビット数のデータを前記生成多項式によって除算した剰余を前記最終ワード有効データブロック剰余として算出するように構成された巡回符号演算方法。 - 請求項9に記載の巡回符号演算方法であって、
前記入力データ剰余算出工程は、
前記最終ワード有効データブロックを構成するビットの数を指数として有するべき乗の項のみを有する多項式を、前記生成多項式によって除算した剰余である剰余算出用係数と、前記整数倍データブロック剰余と、を乗算した乗算値と、前記最終ワード有効データブロック剰余と、を加算することにより前記入力データ剰余を算出するように構成された巡回符号演算方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008235124A JP4935787B2 (ja) | 2008-09-12 | 2008-09-12 | 巡回符号演算処理回路 |
US12/557,269 US8402353B2 (en) | 2008-09-12 | 2009-09-10 | Cyclic code processing circuit, network interface card, and cyclic code processing method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008235124A JP4935787B2 (ja) | 2008-09-12 | 2008-09-12 | 巡回符号演算処理回路 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2010068429A JP2010068429A (ja) | 2010-03-25 |
JP4935787B2 true JP4935787B2 (ja) | 2012-05-23 |
Family
ID=42008315
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2008235124A Active JP4935787B2 (ja) | 2008-09-12 | 2008-09-12 | 巡回符号演算処理回路 |
Country Status (2)
Country | Link |
---|---|
US (1) | US8402353B2 (ja) |
JP (1) | JP4935787B2 (ja) |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2012169926A (ja) * | 2011-02-15 | 2012-09-06 | Fujitsu Ltd | Crc演算回路 |
US9680639B2 (en) * | 2011-03-31 | 2017-06-13 | Panasonic Intellectual Property Management Co., Ltd. | Secret sharing apparatus and secret sharing method that restores secret data from at least two of generated shared data |
JP5724601B2 (ja) * | 2011-05-10 | 2015-05-27 | 富士通株式会社 | Crc演算回路及びプロセッサ |
US8539326B1 (en) * | 2011-12-07 | 2013-09-17 | Xilinx, Inc. | Method and implementation of cyclic redundancy check for wide databus |
US11132251B2 (en) * | 2012-05-31 | 2021-09-28 | Samsung Electronics Co., Ltd. | Enhanced checksum system |
ES2750999T3 (es) * | 2014-07-22 | 2020-03-30 | Huawei Tech Co Ltd | Método y aparato para determinar límites de trama de corrección de errores hacia adelante, y sistema de descodificación |
US10637610B2 (en) * | 2015-07-20 | 2020-04-28 | Huawei Technologies Co., Ltd. | Information sending method and apparatus, and information receiving method and apparatus |
CN109787713B (zh) * | 2017-11-15 | 2020-10-09 | 华为技术有限公司 | 一种循环冗余校验crc计算方法和装置 |
US10880211B2 (en) | 2019-05-06 | 2020-12-29 | Seth Gregory Friedman | Transaction encoding and verification by way of data-link layer fields |
US10868707B1 (en) | 2019-09-16 | 2020-12-15 | Liquid-Markets-Holdings, Incorporated | Zero-latency message processing with validity checks |
US11935120B2 (en) | 2020-06-08 | 2024-03-19 | Liquid-Markets GmbH | Hardware-based transaction exchange |
Family Cites Families (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS5872253A (ja) | 1981-10-26 | 1983-04-30 | Nippon Telegr & Teleph Corp <Ntt> | 巡回符号演算方式 |
CA2050123C (en) * | 1990-10-11 | 1997-12-09 | Subrahmanyam Dravida | Apparatus and method for parallel generation of cyclic redundancy check (crc) codes |
JPH06252777A (ja) * | 1993-02-26 | 1994-09-09 | Mitsubishi Electric Corp | 巡回符号器、巡回符号復号器及び巡回符号初期値設定方法 |
JPH0969836A (ja) * | 1995-08-31 | 1997-03-11 | Toshiba Corp | Crc符号生成回路およびcrc符号生成回路設計方法 |
JPH10107647A (ja) * | 1996-09-25 | 1998-04-24 | Mitsubishi Electric Corp | Crc回路 |
JP2001285076A (ja) * | 2000-03-31 | 2001-10-12 | Ando Electric Co Ltd | Crc符号演算回路、及びcrc符号演算方法 |
JP2002164791A (ja) * | 2000-11-27 | 2002-06-07 | Ando Electric Co Ltd | Crc符号演算回路、及びcrc符号演算方法 |
JP3546959B2 (ja) | 2001-05-31 | 2004-07-28 | 日本電気株式会社 | Crc演算装置 |
JP2005006188A (ja) * | 2003-06-13 | 2005-01-06 | Mitsubishi Electric Corp | Crc演算方法およびcrc演算装置 |
US7168024B2 (en) * | 2003-10-03 | 2007-01-23 | Jennic Limited | Data processing system and method |
US7266760B1 (en) * | 2004-09-30 | 2007-09-04 | Altera Corporation | Method and apparatus for calculating cyclic redundancy checks for variable length packets |
US7363574B1 (en) * | 2004-10-12 | 2008-04-22 | Nortel Networks Limited | Method and system for parallel CRC calculation |
JP4764973B2 (ja) * | 2005-12-09 | 2011-09-07 | 独立行政法人産業技術総合研究所 | Crc値の算出装置 |
US7941727B2 (en) * | 2006-10-31 | 2011-05-10 | Hewlett-Packard Development Company, L.P. | Checksum generator for variable-length data |
JP4831018B2 (ja) * | 2007-08-28 | 2011-12-07 | 日本電気株式会社 | 並列巡回符号生成装置および並列巡回符号検査装置 |
-
2008
- 2008-09-12 JP JP2008235124A patent/JP4935787B2/ja active Active
-
2009
- 2009-09-10 US US12/557,269 patent/US8402353B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
JP2010068429A (ja) | 2010-03-25 |
US8402353B2 (en) | 2013-03-19 |
US20100070839A1 (en) | 2010-03-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4935787B2 (ja) | 巡回符号演算処理回路 | |
JP4831018B2 (ja) | 並列巡回符号生成装置および並列巡回符号検査装置 | |
US8468439B2 (en) | Speed-optimized computation of cyclic redundancy check codes | |
EP1499024B1 (en) | Error-detection encoder and decoder | |
JP4764973B2 (ja) | Crc値の算出装置 | |
JP2005102213A (ja) | メッセージのcrcを計算するための方法 | |
US8700971B2 (en) | Parallel residue arithmetic operation unit and parallel residue arithmetic operating method | |
US6928601B2 (en) | Decoding circuit, and decoder, decoding method and semiconductor device that use the decoding circuit | |
US7010738B2 (en) | Combinational circuit, and encoder, decoder and semiconductor device using this combinational circuit | |
CN117014017A (zh) | 一种基于高位宽数据计算多项式除法余数的crc计算方法 | |
JP4515651B2 (ja) | 巡回冗長検査演算方法及び巡回冗長検査演算回路 | |
JP2010034976A (ja) | 誤り訂正符号化装置、誤り訂正復号装置及び誤り訂正符号化方法 | |
Babaie et al. | Double bits error correction using CRC method | |
US20220286145A1 (en) | Pipelined forward error correction for vector signaling code channel | |
KR20060098269A (ko) | 파이프라인 재귀적인 기술을 이용한 면적 효율적인 리드솔로몬 복호기 | |
JP5842697B2 (ja) | データ伝送システム、データ送信装置およびデータ受信装置 | |
Lee | A VLSI design of a high-speed Reed-Solomon decoder | |
JP3812983B2 (ja) | エラー評価多項式係数計算装置 | |
JP2016201770A (ja) | Crc符号演算回路、及びその方法並びに半導体装置 | |
JP3953397B2 (ja) | リードソロモン符号化回路およびリードソロモン復号化回路 | |
WO2022222727A1 (zh) | 用于循环码编码的方法、芯片、电路组件和电子设备 | |
KR100340001B1 (ko) | 순회 용장 부호 계산장치 | |
JP2011211353A (ja) | Crc演算回路 | |
US7185258B2 (en) | Signal processing method, signal processing system, program for signal processing, and computer-readable storage medium on which this program is recorded | |
JPH0964754A (ja) | 誤り検出符号生成回路 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
RD03 | Notification of appointment of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7423 Effective date: 20100702 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20110803 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20111108 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20111115 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20111226 |
|
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: 20120124 |
|
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: 20120206 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20150302 Year of fee payment: 3 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 4935787 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 Free format text: JAPANESE INTERMEDIATE CODE: R150 |