JPWO2003090362A1 - 誤り検出符号化及び復号装置並びに除算装置 - Google Patents

誤り検出符号化及び復号装置並びに除算装置 Download PDF

Info

Publication number
JPWO2003090362A1
JPWO2003090362A1 JP2003587014A JP2003587014A JPWO2003090362A1 JP WO2003090362 A1 JPWO2003090362 A1 JP WO2003090362A1 JP 2003587014 A JP2003587014 A JP 2003587014A JP 2003587014 A JP2003587014 A JP 2003587014A JP WO2003090362 A1 JPWO2003090362 A1 JP WO2003090362A1
Authority
JP
Japan
Prior art keywords
bit
remainder
error detection
data
data string
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.)
Granted
Application number
JP2003587014A
Other languages
English (en)
Other versions
JP3930479B2 (ja
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.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Publication of JPWO2003090362A1 publication Critical patent/JPWO2003090362A1/ja
Application granted granted Critical
Publication of JP3930479B2 publication Critical patent/JP3930479B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/09Error detection only, e.g. using cyclic redundancy check [CRC] codes or single parity bit
    • H03M13/091Parallel or block-wise CRC computation
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/09Error detection only, e.g. using cyclic redundancy check [CRC] codes or single parity bit
    • H03M13/093CRC update after modification of the information word
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0041Arrangements at the transmitter end
    • H04L1/0043Realisations of complexity reduction techniques, e.g. use of look-up tables
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0056Systems characterized by the type of code used
    • H04L1/0061Error detection codes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/12Arrangements for detecting or preventing errors in the information received by using return channel
    • H04L1/16Arrangements for detecting or preventing errors in the information received by using return channel in which the return channel carries supervisory signals, e.g. repetition request signals
    • H04L1/18Automatic repetition systems, e.g. Van Duuren systems
    • H04L1/1829Arrangements specially adapted for the receiver end

Landscapes

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

Abstract

誤り検出符号化処理によりパリティビットを作成し、該パリティビットを入力データ列に付加して符号化する誤り検出符号化装置および該パリティビットを用いて誤りを検出する該パリティビットを誤り検出復号装置である。データ分割手段は誤り検出符号化対象の入力データ列を複数に分割し、除算手段は分割したサブデータ列を誤り検出符号生成用の多項式で除算してその剰余を演算し、変換手段は剰余毎に、サブデータ列の分割位置に応じた変換処理を該剰余に施し、合成手段は変換処理により得られた各変換値を合成してパリティビットを出力する。符号器はこのパリティをデータ列に付加し、復号器は該パリティを用いて誤り検出を行う。

Description

技術分野
本発明は、誤り検出符号化及び復号装置並びに除算装置に係わり、特に、入力データ列の誤り検出用パリティビットを生成して該データ列に付加する誤り検出符号化装置およびパリティビットが付加された入力データ列に誤り検出処理を施して入力データ列の誤りを検出する誤り検出復号装置並びにこれら誤り検出符号化及び復号装置に使用できる除算装置に関する。
背景技術
誤り検出符号は、移動通信、FAX、銀行のキャッシュディスペンサ等、データ通信を行う際にデータを誤りなく伝送することが要求されるシステムに、あるいは、磁気ディスク、CDなどの大容量データ保存を行う際にデータを誤りなく読み出すことが要求されるシステムに適用される。また、誤り検出符号は、通常、誤り訂正符号と併用され、誤り訂正で完全に訂正できなかった誤りの検出を行うためのもので、誤りを検出すれば再送制御や再読み出し制御などが行われる。
・誤り検出を適用したシステム
図42は誤り検出を適用したシステムの構成例である。送信側1において、誤り検出符号化部1bは、情報生成部1aが生成した所定ビット長のデータ列に誤り検出符号化処理を施し、誤り訂正符号化部1cは畳み込み符号化あるいはターボ符号化処理などにより入力データ列を誤り訂正符号化して通信路2を介して受信側3に送信する。受信側3において、誤り訂正復号部3aは入力した符号化データ列を誤り訂正復号処理により復号し、復号データ列を誤り検出復号部3bに入力する。誤り検出復号部3bは復号データ列に誤り検出復号処理を施して誤りの有無を検出し、誤りが有れば送信側に再送要求信号RRQを送出する。情報抽出部3cは誤りが無ければデータを抽出して出力する。以下、巡回符号による誤り検出であるCRC(Cyclic Redundancy Check)について説明する。
・CRC
CRCは、簡単に言うと、送信側で、所定ビット長のデータ列を多項式に見立ててこれを誤り検出符号生成用の多項式(生成多項式)で除算し、余りが0となるように符号化する。受信側では、受信データ列を多項式に見立ててこれを送信側と同一の生成多項式で除算し、余りが0であれば誤り無し、余りが0でなければ誤り有りと判定する。
すなわち、送信側では、kビットの情報を多項式と見なしてK(x)とし、該多項式K(x)を生成多項式G(x)で除算して剰余が0となるようにパリティビットを付加する。たとえば、生成多項式G(x)を16ビットとし、
Figure 2003090362
であれば、
Figure 2003090362
を符号語とする。ここでx16K(x)はkビットのデータ列の低次側に16ビットの”0”を付加したデータ列を意味する。
受信側では、この符号語W(x)に誤りE(x)が付加されたW’(x)=W(x)+E(x)を受信すると、W’(x)をG(x)で除算し、その剰余が0であれば誤りなし、0以外であれば誤りありと検出する。具体的には、
Figure 2003090362
を演算し、割り切れるかどうかを検出する。
以下、32bitのオール“1”の信号を
Figure 2003090362
で誤り検出符号化、復号化を行う場合について示す。
・CRC演算装置
図43は生成多項式G(x)=x16+x12+x+1とした場合のCRC演算装置の第1、第2の構成例である。
▲1▼第1のCRC演算装置
図43(A)は通常のCRC演算装置、すなわち、G(x)=x16+x12+x+1としたときの除算器の例である。このCRC演算装置は、16段のシフトレジスタSRと、0ビット位置、5ビット位置、12ビット位置の入力側に設けられ、前段の出力データとフィードバックデータの排他的論理和演算を行う排他的論理和回路(Exclusive OR回路)EOR1〜EOR3と、15ビット位置の出力側に設けられたスイッチSWで構成されている。
スイッチSWをフィードバック側(A側)に切り替えた状態でデータ列x16K(x)を高次から1ビットづつEOR1に入力することで除算を行うことができる。すなわち、誤り検出符号化において、符号化する前のデータ列K(x)を例えば32ビットとすればx16K(x)は48ビットになり、この48ビットのデータ列を高次よりシフトレジスタSRを動作させながら入力する。48ビット入力し終わったときのレジスタSRの中身が剰余R(x)となるため、これをパリティビットとしてK(x)の低次側に付加してW(x)として出力する。
誤り検出復号に際して、W’(x)が48ビットであれば、図43(A)と同一構成のCRC演算装置のEOR1にシフトレジスタSRを動作させながら高次より48ビットの信号を入力する。48ビット入力し終わったときのレジスタSRの中身が剰余R(x)となるため、これが全て“0”であれば誤り無しと判定し、1つでも“0”でなければ誤りありと判定する。
▲2▼第2のCRC演算装置
図43(B)は、図43(A)のデータ入力位置を修正することで演算回数を少なくしたCRC演算装置(G(x)=x16+x12+x+1としたときの除算器)であり、データ入力用のEOR1の位置が左端から右端に移動している。データ入力は図2(A)の場合と同様に、データ列の高次側から1ビットづつEOR1に入力することで除算を行う。図2(A)と比べてEOR1の位置を左端から右端に移動させただけだが、これは入力データ列にx16を乗算しながら入力しているのに等しい。すなわち、シフトレジスタSRを動作させながら高次より32ビットのデータ列K(x)をEOR1に入力すれば、32ビットのデータ列K(x)を入力し終わったときのレジスタSRの中身が剰余R(x)となるため、該剰余R(x)をパリティビット(16ビット)としてK(x)の低次側に付加してW(x)として出力する。
誤り検出復号に際して、入力データ列W’(x)がパリティビット付きの48ビット(低次側の16ビットがパリティビット)であれば、図43(B)と同一構成のCRC演算装置のEOR1にシフトレジスタSRを動作させながら高次より32ビットのデータ列を入力する。32ビット入力し終わったときのレジスタSRの中身は剰余となるため、この剰余と残り16ビットのパリティと比較し、完全一致であれば誤り無しと判定し、完全一致しない場合には誤りありと判定する。これにより、演算回数を32回と少なくすることができる。
又、以下のように誤り検出復号を行うこともできる。すなわち、入力データ列W’(x)がパリティビット付きの48ビット(低次側の16ビットがパリティビット)であれば、図43(B)と同一構成のCRC演算装置のEOR1にシフトレジスタSRを動作させながら高次より48ビットのデータ列を全て入力する。この場合、シフトレジスタSRの中身が全て“0”であれば誤り無しと判定し、全て“0”でなければ、誤りありと判定する。なお、この誤り検出復号方式におけるレジスタSRの中身は剰余でなく、一致検出の結果を示している。
・符号器の従来例
図43(B)のCRC演算装置において、初期状態時、シフトレジスタSRの値を全て”0”にする。スイッチSWをA側にして1ビットづつデータ列K(x)をEOR1に順次入力する。全てのデータ列を入力し終わったときのレジスタ値R(x)がG(x)の剰余、すなわち余りとなる。ここでスイッチSWをB側に倒してレジスタSRの値R(x)を出力することでパリティビットを得ることができる。
32ビットのオール”1”のデータ列K(x)を生成多項式G(x)=x16+x12+x+1でCRC符号化する例を示す。32ビット入力し終えたときのシフトレジスタSRの値R(x)をパリティビットとする。この場合、K(x)、x16K(x)、R(x)、W(x)以下に示すようになる。
Figure 2003090362
図44はデータ列x16K(x)における高次側32ビットのオール”1”のデータ列を1クロックで1ビットづつ図43(B)のEOR1に入力したときのレジスタSRの内容を示すもので、32ビット入力し終えたときのシフトレジスタSRの値R(x)がパリティビットになる。
・復号器の第1従来例(一致検出復号方法)
図43(B)のCRC演算装置において、初期状態時、レジスタSRの値を全て”0”にする。スイッチSWをA側にして入力データ列W(x)’のうちパリティビットを除いた情報ビットのみを順次入力する。情報ビットのみを入力し終わったときのレジスタSRの値と、入力データ列の残りのビットであるパリティビットとの一致検出を行う。一致であれば誤りなし、一致しなければ誤りありと判定する。
図45は、32bitのオール”1”のデータ列に16bitのパリティビットが付加された符号化データを、1クロックで1ビットづつ高次側より図43(B)のEOR1に入力したときのレジスタSRの内容を示すものである。符号化データを32ビット入力し終えたときのシフトレジスタSRの値R1と入力データ列の残り16ビット(パリティビット)P1とが一致しているかにより誤り検出を行う。以上のように、演算されたパリティと入力データ列に付加されているパリティとが一致しているか否かにより、誤り検出する復号方法を一致検出復号方法という。
・復号器の第2従来例(オール”0”検出復号方法)
図43(B)のCRC演算装置において、初期状態時、レジスタSRの値を全て”0”にする。スイッチSWをA側にして入力データ列W(x)’の情報ビットを順次入力し、続いてパリティビットを入力する。パリティビットを入力し終わったときのレジスタSRの値が全て0であるか否かをチェックし、全て0であれば誤りなし、一つでも1があれば誤りありと判定する。
図46は、32bitのオール”1”のデータ列に16bitのパリティビットが付加された符号化データを、1クロックで1ビットづつ高次側より図43(B)のEOR1に入力したときのレジスタSRの内容を示すものである。符号化データ32ビット及びパリティ16ビットを入力し終えたときのシフトレジスタSRの値が全て0であるか否かをチェックし、全て0であれば誤りなし、一つでも1があれば誤りありと判定する。以上のように、全て”0”であれば誤りなし、一つでも”1”があれば誤り有りと判定する復号方法をオール”0”検出復号方法という。
図44〜図46に示すようにCRC演算では、少なくとも情報ビット長の演算が必要となる。すなわち、図44〜図46の誤り検出符号器及び復号器では、少なくとも32クロック必要になる。ところで、第4世代(新世代)の移動通信システムは総務省によれば、最大情報レートを100Mbps以上(無線LANは1Gbps以上)にすると言われている。情報レート100Mbpsの信号の場合、CRC演算するには100MHzのクロックが必要になる。この場合でもCRC誤り検出だけで1パケット長遅延することになる。これに更に再送制御を考慮すると再送信号要求生成に時間を要するため、データ伝送速度の著しい低下につながる。
又、CRC演算を低速クロック、例えば25MHzとすればCRC演算器が4つ必要になる。CRC演算器はもともと小規模なのでハードウェア規模は問題にならないが、演算遅延が4パケット長になるため、再送まで考えるとデータ伝送速度が大きく低下する。図47にかかる場合における受信側のタイムチャートを示す。パケット#1を受信してそれがNGであった場合に、再送要求するのはパケット#7以降になることがわかる。なお、CRC演算が高速に行われていればそれ以前に再送要求を行うことができる。
又、情報レート1Gbpsであれば、100Mbpsのクロックで動作するCRC演算回路を10個使用したとしても、CRC演算による遅延は10パケット長となり、再送制御は現実的でない。
以上より本発明の目的は、CRC演算に要する時間を短縮することである。
本発明の別の目的は、再送制御する場合でもパケットの遅延時間を短くすることである。
発明の開示
本発明の第1は、誤り検出符号化処理によりパリティビットを作成し、該パリティビットを入力データ列に付加して符号化する誤り検出符号化装置である。この誤り検出符号化装置において、データ分割手段は誤り検出符号化対象の入力データ列を複数に分割し、除算手段は分割したサブデータ列を生成多項式で除算してその剰余を演算し、変換手段は前記剰余毎に、サブデータ列の分割位置に応じた変換処理を該剰余に施し、合成手段は前記変換処理により得られた各変換値を合成してパリティビットを出力する。本発明の誤り検出符号化処理によれば、データ分割手段によりデータ列をn分割するものとすれば、CRC演算(パリティビット演算)に要する時間を略1/nに短縮することができる。
本発明の第2、第3は、パリティビットが付加された入力データ列に誤り検出処理を施して入力データ列の誤りを検出する誤り検出復号装置である。
第2の発明の誤り検出復号装置において、データ分割手段は入力データ列を複数に分割し、除算手段は分割したサブデータ列を生成多項式で除算してその剰余を演算し、変換手段は前記剰余毎に、サブデータ列の分割位置に応じた変換処理を該剰余に施し、合成手段は前記変換処理により得られた各変換値を合成してパリティビットを出力し、誤り検出部は該パリティビットと入力データに付加されているパリティビットが一致しているか否かにより入力データの誤りの有無を検出する。
第3の発明の誤り検出復号装置において、データ分割手段はパリティビットを含めて入力データ列を複数に分割し、除算手段は分割したサブデータ列を所定の生成多項式で除算してその剰余を演算し、変換手段は前記剰余毎に、サブデータ列の分割位置に応じた変換処理を該剰余に施し、合成部は前記変換処理により得られた各変換値を合成し、誤り検出部は合成結果が全ビット“0”であるか否かにより入力データの誤りの有無を検出する。
第2、第3の誤り検出復号装置によれば、データ分割手段によりデータ列をn分割するものとすれば、CRC演算(パリティビット演算)に要する時間を略1/nに短縮することができ、誤り検出を短時間で行うことができる。又、再送制御する場合でもパケットの遅延時間を短くすることができる。
第4の発明は、Kビットの入力データ列を第1の多項式と見立てて第2の多項式で除算してその剰余を演算する除算装置である。この除算装置において、データ分割手段は入力データ列を複数に分割し、除算手段は分割したサブデータ列毎に、サブデータ列の情報ビットを多項式と見立てて前記第2の多項式で除算してその剰余を演算し、変換手段は前記剰余毎に、サブデータ列の分割位置に応じた変換処理を該剰余に施し、合成部は前記変換処理により得られた各変換値を合成し、合成結果をKビットの入力データ列を前記第2の多項式で除算したときの剰余とする。この除算装置によれば、データ分割手段によりデータ列をn分割するものとすれば除算時間を、略1/nに短縮することができる。
発明を実施するための最良の形態
(A)本発明の概略
(a)本発明の原理
受信語W’(x)を生成多項式G(x)(=x16+x12+x+1)で除算したときの剰余すなわちパリティビットは以下のように求めることができる。受信語W’(x)を32bitとし、例えば、8bitづつ
Figure 2003090362
に分割し、該受信語W’(x)をG(x)で除算する。除算式を
Figure 2003090362
と表現し、
Figure 2003090362
を演算し、それぞれの剰余を順に
Figure 2003090362
とする。次に
▲1▼R(x)からx24A(x)/G(x)の剰余R’(x)を演算し、
▲2▼R(x)からx16B(x)/G(x)の剰余R’(x)を演算し、
▲3▼R(x)からxC(x)/G(x)の剰余R’(x)を演算し、
▲4▼R(x)=R’(x)とする。
’(x),R’(x),R’(x),R’(x)が求まれば次式
Figure 2003090362
により、受信語W’(x)を生成多項式G(x)で除算したときの剰余すなわちパリティビットが求まる。
(x)(=A(x)/G(x))からR’(x)の演算は以下のようにして行う。R’(x)はx24A(x)/G(x)の剰余であり、x24A(x)のx23次以下の係数は0である。従って、R(x)(=A(x)/G(x))からR’(x)の変換は、まず、図43(B)のCRC演算装置にA(x)を入力してR(x)を演算し(R(x)はシフトレジスタSRに記憶される)、ついで、CRC演算装置の入力を24ビットオール”0”としてシフトレジスタSRを24回シフトすれば、該シフトレジスタの中身がRA’(x)となる。しかし、実際に24回シフトするとそれだけ演算時間を要するため、後述するようにそれと等価な処理を行うことで演算時間を削減する。尚、以下ではNビットの”0”入力によるシフトレジスタSRのシフト動作を単にNビットシフトあるいはNビットシフト処理という。
同様に、R(x)(=B(x)/G(x))からR’(x)の変換は、図43(B)のCRC演算装置にB(x)を入力してR(x)を演算し(R(x)はシフトレジスタSRに記憶される)、ついで、シフトレジスタSRを16ビットシフトすれば該シフトレジスタの中身がR’(x)となる。
又、R(x)(=C(x)/G(x))からR’(x)の変換は、図43(B)のCRC演算装置にC(x)を入力してR(x)を演算し(R(x)はシフトレジスタSRに記憶される)、ついで、シフトレジスタSRを8ビットシフトすれば該シフトレジスタの中身がR’(x)となる。
(b)誤り検出符号器
図1は誤り検出符号化対象が32ビットのデータ列b0〜b31とした場合の本発明の誤り検出符号器のブロック構成図である。入力データ分割部11は、32ビットの入力データ列b0〜b31を8ビットづつのb0〜b7、b8〜b15、b16〜b23、b24〜b31に分割して
Figure 2003090362
とする。ただし、b24〜b31の8ビット情報で表現される多項式をA(x)、b16〜b23の8ビット情報で表現される多項式をB(x)、b8〜b15の8ビット情報で表現される多項式をC(x)、b0〜b7の8ビット情報で表現される多項式をD(x)とする。
CRC演算装置12A,12B,12C,12Dはそれぞれ図43(B)に示す構成を備え、G(x)=x16+x12+x+1を生成多項式として
Figure 2003090362
の除算演算を実行し、それぞれの剰余
Figure 2003090362
を出力する。
24ビットシフト装置13Aは剰余R(x)を24ビットシフト処理してx24A(x)/G(x)の剰余R’(x)を演算し、16ビットシフト装置13Bは剰余R(x)を16ビットシフト処理してx16B(x)/G(x)の剰余R’(x)を演算し、8ビットシフト装置13Cは剰余R(x)を8ビットシフト処理してxC(x)/G(x)の剰余R’(x)を演算する。
合成部14は、R’(x),R’(x),R’(x),R’(x)が求まれば次式
Figure 2003090362
により剰余を合成し(ビット毎の排他的論理和(EX−OR)演算し)、32ビットの入力データ列を生成多項式G(x)で除算したときの余り、すなわち、16ビットのCRCパリティビットを出力する。
図1の誤り検出符号化器によれば、CRC演算(パリティビット演算)に要する時間を従来の1/4に短縮することができ、入力データ列をn分割するものとすれば、1/nに短縮することができる。
(c)Nビットシフト装置
図2は、図43(B)のCRC演算装置において、”0”を1個入力してシフトレジスタSRの内容を1ビットシフトするのと等価な1ビットシフト処理演算を行う16×16の行列説明図である。この行列の見方は、シフトレジスタSRにおけるシフト後の各ビットがシフト前のどのビットのEX−OR演算により求まるかを示している。EX−OR演算の対象となるシフト前のビットは”1”が立っているビットである。例えば、シフト後の第5ビットは、シフト前の第4ビットと第15ビットのEX−ORにより求まり、シフト後の第12ビットはシフト前の第11ビットと第15ビットのEX−ORにより求まる。なお、シフト後の第0ビットは”1”が1つしか立っていないからシフト前の第15ビットの値となる。同様に、シフト後の第1ビットはシフト前の第0ビット、シフト後の第2ビットはシフト前の第1ビット、....の値となる。
従って、図2の16×16の1ビットシフト演算行列に、16ビットのシフトレジスタSRの内容を16×1の行列にして乗算すれば、1ビットシフト後のシフトレジスタSRの内容が16×1の行列として求まる。ここで行列演算における加算は排他的論理和演算EX−ORである。
1ビットシフト演算行列をN回乗算することによりNビットシフトを実現できる。すなわち、1ビットシフト演算行列をAと表現すれば、Nビットシフトを実現する演算行列はAとなる。従って、2ビットシフト行列A(=A×A)及び4ビットシフト行列A(=A×A)は図3(A),(B)に示すようになり、8ビットシフト行列A(=A×A)及び16ビットシフト行列A16(=A×A)は図4(A),(B)に示すようになる。又、24ビットビットシフト行列A24(=A16×A)は図5に示すようになり、32ビットシフト行列A32(=A24×A)及び40ビットシフト行列A40(=A32×A)は図6(A),(B)に示すようになる。
以上から、図1の8ビットシフト装置13Cは、CRC演算装置12Cから出力する16ビットの剰余R(x)(16×1の行列で表現する)を図4(A)の右側の変換行列Aに乗算する乗算回路により実現することができる。図7はCRC演算装置12Cと8ビットシフト装置13Cの接続構成図である。8ビットシフト装置13Cは、変換行列Aと剰余R(x)との乗算結果である16ビットのR’(x)を16個のEOR回路を用いて出力する構成になっている。
又、図1の16ビットシフト装置13Bは、CRC演算装置12Bから出力する16ビットの剰余R(x)(16×1の行列で表現する)を図4(B)の右側の変換行列A16に乗算する乗算回路により実現することができる。図8はCRC演算装置12Bと16ビットシフト装置13Bの接続構成図である。16ビットシフト装置13Bは、変換行列A16と剰余R(x)との乗算結果である16ビットのR’(x)を16個のEOR回路を用いて出力する構成になっている。
同様に図1の24ビットシフト装置13Aは、CRC演算装置12Aから出力する16ビットの剰余R(x)を16×1の行列で表現し、これを図5の右側の変換行列A24に乗算する回路により構成することができる。図9はCRC演算装置12Aと24ビットシフト装置13Aの接続構成図である。24ビットシフト装置13Aは、図示しないが、図7、図8と同様に変換行列A24と剰余R(x)との乗算結果である16ビットのR’(x)を16個のEOR回路を用いて出力する構成になっている。
図10〜図14は誤り検出符号器の各部動作説明図であり、入力データは32ビットオール”1”であるとしている。
図10(A),(B)はそれぞれCRC演算装置12A及び24ビットシフト装置13Aの動作説明図であり、CRC演算装置12Bには高次側より8クロックで順次x31〜x24が入力し、x24の入力が完了したときのシフトレジスタSRの内容がA(x)/G(x)の剰余R(x)となる。24ビットシフト装置13Aは変換行列A24と16×1の行列R(x)を掛け合わせてx24A(x)/G(x)の剰余R’(x)を出力する。尚、図中のx^mはxを意味する。
図11(A),(B)はそれぞれCRC演算装置12B及び16ビットシフト装置13Bの動作説明図であり、CRC演算装置12Bには高次側より8クロックで順次x23〜x16が入力し、x16の入力が完了したときのシフトレジスタSRの内容がB(x)/G(x)の剰余R(x)となる。16ビットシフト装置13Bは変換行列A16と16×1の行列R(x)を掛け合わせてx16B(x)/G(x)の剰余R’(x)を出力する。
図12(A),(B)はそれぞれCRC演算装置12C及び8ビットシフト装置13Cの動作説明図であり、CRC演算装置12Cには高次側より8クロックで順次x15〜xが入力し、xの入力が完了したときのシフトレジスタSRの内容がC(x)/G(x)の剰余R(x)となる。8ビットシフト装置13Cは変換行列Aと16×1の行列R(x)を掛け合わせてxC(x)/G(x)の剰余R’(x)を出力する。
図13はCRC演算装置12Dの動作説明図であり、CRC演算装置12Dには高次側より8クロックで順次x〜xが入力し、xの入力が完了したときのシフトレジスタSRの内容がD(x)/G(x)の剰余R(x)(=R’(x))となる。
図14は合成部14の動作説明図である。合成部14は上記演算された剰余R’(x)、R’(x)、R’(x)、R(x)のビット対応のEX−OR演算を行って16ビットのCRCパリティを出力する。
(d)誤り検出復号器
図15は32ビットの入力データの低次側に16ビットのCRCパリティビットが付加されている場合の本発明の誤り検出復号器のブロック構成図である。データ分割部21は、CRCパリティビットを除いた32ビットの入力データ列b16〜b47を8ビットづつのb16〜b23、b24〜b31、b32〜b39、b40〜b47に分割して
Figure 2003090362
とする。なお、b40〜b47の8ビット情報で表現される多項式をA(x)、b32〜b39の8ビット情報で表現される多項式をB(x)、b24〜b31の8ビット情報で表現される多項式をC(x)、b16〜b23の8ビット情報で表現される多項式をD(x)とする。又、データ分割部21はb0〜b15のCRCパリティビットP(x)を分離して出力する。
CRC演算装置22A,22B,22C,22Dはそれぞれ図43(B)に示す構成を備え、G(x)=x16+x12+x+1を生成多項式として
Figure 2003090362
の除算演算を実行し、それぞれの剰余
Figure 2003090362
を出力する。
24ビットシフト装置23Aは剰余R(x)を24ビットシフト処理してx24A(x)/G(x)の剰余R’(x)を演算し、16ビットシフト装置23Bは剰余R(x)を16ビットシフト処理してx16B(x)/G(x)の剰余R’(x)を演算し、8ビットシフト装置23Cは剰余R(x)を8ビットシフト処理してxC(x)/G(x)の剰余R’(x)を演算する。尚、各シフト装置23A〜23は誤り検出符号化器と同様に構成することができる
合成部24は、R’(x),R’(x),R’(x),R’(x)が求まれば次式
Figure 2003090362
により剰余を合成(ビット毎のEX−OR演算)し、32ビットの入力データ列を生成多項式G(x)で除算したときの余り、すなわち、パリティビットP’(x)を出力する。
比較部25は算出された16ビットのパリティビットP’(x)と入力データに付加されている16ビットのパリティビットP(x)をビット対応に比較し、全て一致すれば誤り無しと判定し、1つでも一致しなければ誤りありと判定する。
図16〜図20は誤り検出復号器の各部動作説明図であり、48ビットの入力データのうち低次側の16ビットx〜x15はCRCパリティビットであり、高次側の32ビットx16〜x47はオール”1”であるとしている。
図16(A),(B)はそれぞれCRC演算装置22A及び24ビットシフト装置23Aの動作説明図であり、CRC演算装置22Aには高次側より8クロックで順次x47〜x40が入力し、x40の入力が完了したときのシフトレジスタSRの内容がA(x)/G(x)の剰余R(x)となる。24ビットシフト装置23Aは変換行列A24と16×1の行列R(x)を掛け合わせてx24A(x)/G(x)の剰余R’(x)を出力する。
図17(A),(B)はそれぞれCRC演算装置22B及び16ビットシフト装置23Bの動作説明図であり、CRC演算装置22Bには高次側より8クロックで順次x39〜x32が入力し、x32の入力が完了したときのシフトレジスタSRの内容がB(x)/G(x)の剰余R(x)となる。16ビットシフト装置23Bは変換行列A16と16×1の行列R(x)を掛け合わせてx16B(x)/G(x)の剰余R’(x)を出力する。
図18(A),(B)はそれぞれCRC演算装置22C及び8ビットシフト装置23Cの動作説明図であり、CRC演算装置22Cには高次側より8クロックで順次x31〜x24が入力し、x24の入力が完了したときのシフトレジスタSRの内容がC(x)/G(x)の剰余R(x)となる。8ビットシフト装置23Cは変換行列Aと16×1の行列R(x)を掛け合わせてxC(x)/G(x)の剰余R’(x)を出力する。
図19はCRC演算装置22Dの動作説明図であり、CRC演算装置22Dには高次側より8クロックで順次x23〜x17が入力し、x17の入力が完了したときのシフトレジスタSRの内容がD(x)/G(x)の剰余R(x)(=R’(x))となる。
図20は合成部24の動作説明図である。合成部24は上記演算された剰余R’(x)、R’(x)、R’(x)、R(x)のビット対応のEX−OR演算を行って16ビットのCRCパリティP’(x)を出力する。
本発明の誤り検出復号器によれば、誤り有無検出に要する時間を従来の1/4に短縮することができ、入力データ列を1/nに分割するものとすれば誤り有無検出に要する時間を1/nに短縮することができる。したがって、再送制御する場合でもパケットの遅延時間を短くすることができる。
(e)誤り検出復号器の別の例
図21は本発明の別の誤り検出復号器のブロック構成図である。データ分割部31は、16ビットのCRCパリティを含む48ビットの入力データ列b0〜b47を8ビットづつのb0〜b7、b8〜b15、b16〜b23、b24〜b31、b32〜b39、b40〜b47に分割して
Figure 2003090362
とする。なお、b40〜b47の8ビット情報で表現される多項式をA(x)、b32〜b39の8ビット情報で表現される多項式をB(x)、b24〜b31の8ビット情報で表現される多項式をC(x)、b16〜b23の8ビット情報で表現される多項式をD(x)、b8〜b15の8ビット情報で表現される多項式をE(x)、b0〜b7の8ビット情報で表現される多項式をF(X)とする。
CRC演算装置32A,32B,32C,32D,32E,32Fはそれぞれ図43(B)に示す構成を備え、G(x)=x16+x12+x+1を生成多項式として
Figure 2003090362
の除算演算を実行し、それぞれの剰余
Figure 2003090362
を出力する。
40ビットシフト装置33Aは剰余R(x)を40ビットシフト処理してx40A(x)/G(x)の剰余R’(x)を演算し、32ビットシフト装置33Bは剰余R(x)を32ビットシフト処理してx32B(x)/G(x)の剰余R’(x)を演算し、24ビットシフト装置33Cは剰余R(x)を24ビットシフト処理してx24C(x)/G(x)の剰余R’(x)を演算し、16ビットシフト装置33Dは剰余R(x)を16ビットシフト処理してx16D(x)/G(x)の剰余R’(x)を演算し、8ビットシフト装置33Eは剰余R(x)を8ビットシフト処理してxE(x)/G(x)の剰余R’(x)を演算する。なお、40ビットシフト装置33AはCRC演算装置32Aから出力する16ビットの剰余R(x)(16×1の行列で表現する)を図6(B)の右側の変換行列A40に乗算する乗算回路により実現でき、32ビットシフト装置33BはCRC演算装置32Bから出力する16ビットの剰余R(x)(16×1の行列で表現する)を図6(A)の右側の変換行列A32に乗算する乗算回路により実現できる。また、24ビットシフト装置33C、16ビットシフト装置33D、8ビットシフト装置33Eは誤り検出符号器と同様に構成することができる。
合成部34は、R’(x),R’(x),R’(x),R’(x),R’(x),R’(x)が求まれば次式
Figure 2003090362
により剰余を合成(ビット毎のEX−OR演算)し、48ビットの入力データ列を生成多項式G(x)で除算したときの余り、すなわち、パリティビットP’(x)を出力する。誤り検出部35は算出された16ビットのパリティビットP’(x)の全ビットが”0”であるかチェックし、全て”0”であれば誤り無しと判定し(CRC OK)、1つでも”0”でなければ誤り有りと判定する(CRC NG)。
図22〜図28は図21の誤り検出復号器の各部動作説明図であり、48ビットの入力データのうち低次側の16ビットx〜x15はCRCパリティビットであり、高次側の32ビットx16〜x47はオール”1”であるとしている。
図22(A),(B)はそれぞれCRC演算装置32A及び40ビットシフト装置33Aの動作説明図であり、CRC演算装置32Aには高次側より8クロックで順次x47〜x40が入力し、x40の入力が完了したときのシフトレジスタSRの内容がA(x)/G(x)の剰余R(x)となる。40ビットシフト装置33Aは変換行列A40と16×1の行列R(x)を掛け合わせてx40A(x)/G(x)の剰余R’(x)を出力する。
図23(A),(B)はそれぞれCRC演算装置32B及び32ビットシフト装置33Bの動作説明図であり、CRC演算装置32Bには高次側より8クロックで順次x39〜x32が入力し、x32の入力が完了したときのシフトレジスタSRの内容がB(x)/G(x)の剰余R(x)となる。32ビットシフト装置33Bは変換行列A32と16×1の行列R(x)を掛け合わせてx32B(x)/G(x)の剰余R’(x)を出力する。
図24(A),(B)はそれぞれCRC演算装置32C及び24ビットシフト装置33Cの動作説明図であり、CRC演算装置32Cには高次側より8クロックで順次x31〜x24が入力し、x24の入力が完了したときのシフトレジスタSRの内容がC(x)/G(x)の剰余R(x)となる。8ビットシフト装置33Cは変換行列A24と16×1の行列R(x)を掛け合わせてx24C(x)/G(x)の剰余R’(x)を出力する。
図25(A),(B)はそれぞれCRC演算装置32D及び16ビットシフト装置33Dの動作説明図であり、CRC演算装置32Dには高次側より8クロックで順次x23〜x16が入力し、x16の入力が完了したときのシフトレジスタSRの内容がD(x)/G(x)の剰余R(x)となる。16ビットシフト装置33Dは変換行列A16と16×1の行列R(x)を掛け合わせてx16D(x)/G(x)の剰余R’(x)を出力する。
図26(A),(B)はそれぞれCRC演算装置32E及び8ビットシフト装置33Eの動作説明図であり、CRC演算装置32Eには高次側より8クロックで順次x15〜xが入力し、xの入力が完了したときのシフトレジスタSRの内容がE(x)/G(x)の剰余R(x)となる。8ビットシフト装置33Eは変換行列Aと16×1の行列R(x)を掛け合わせてxE(x)/G(x)の剰余R’(x)を出力する。
図27はCRC演算装置32Fの動作説明図であり、CRC演算装置32Fには高次側より8クロックで順次x〜xが入力し、xの入力が完了したときのシフトレジスタSRの内容がF(x)/G(x)の剰余R(x)(=R’(x))となる。
図28は合成部34の動作説明図である。合成部34は上記演算された剰余R’(x)、R’(x)、R’(x)、R’(x)、R’(x)、R(x)のビット対応のEX−OR演算を行って16ビットのCRCパリティP’(x)を出力する。誤り検出部35はCRCパリティP’(x)の全ビットが”0”であれば誤り無しと判定し、1つでも”1”が有れば誤り有りと判定する。
(f)本願発明と従来例の比較
データ長が32ビットの場合、従来例の誤り検出符号器ではパリティを生成するのに32クロック必要である。しかし、図1の本発明の誤り検出符号器では必要クロック数は8クロックであるため、演算時間が1/4に短縮する。
又、データ長が32ビット、パリティが16ビットの場合、従来例の一致検出復号方法による誤り検出復号器では32クロック必要である。しかし、図15の本発明の誤り検出復号器では、必要クロック数は8クロックであるため、演算時間が1/4に短縮する。
又、データ長が32ビット、パリティが16ビットの場合、従来例のオール”0”検出復号方法による誤り検出復号器では48クロック必要である。しかし、本発明の図21の誤り検出復号器では、必要クロック数は8クロックであるため演算時間が1/6に短縮する。
ところで、本発明の符号器、復号器は、演算時間に反比例してハードウェア規模がそれぞれ、4倍、4倍、6倍となる。これは演算を直列に行っていたものを並列に行ったからである。しかしながら、例えば、情報レート100Mbpsを25MHzのクロックでCRC演算する場合を考えると、ハードウェア規模は従来例と同等になる。
すなわち、情報レート100Mbpsを25MHzのクロックでCRC演算するためには、従来例では図47で説明したように誤り検出復号器が4つ必要になる。一方、本発明では図29に示すように演算速度が4倍であるため1つの誤り検出復号器のみで十分である。この結果、従来例及び本発明において、▲1▼誤り検出復号器のハードウェア規模、▲2▼情報レート100Mbpsを25MHzのクロックでCRC演算するために必要なハードウェア数、▲3▼演算時間は表1に示すようになる。これより、本発明によれば合計のハードウェア規模を変えることなく演算時間の高速化を実現できることがわかる。以上では誤り検出復号器について説明したが誤り検出符号器についても同様である。
Figure 2003090362
(B)第1実施例
図30は第1実施例の誤り検出符号器の構成図であり、生成多項式G(x)=x16+x12+x+1により32bitのデータ列x〜x31のCRCパリティを生成する場合である。図30において図1と同一部分には同一符号を付している。又、32ビットの入力データは8ビットづつのx〜x、x〜x15、x16〜x23、x24〜x31に分割され、以下の多項式
Figure 2003090362
で表現されるものとする。
全てのCRC演算装置12A〜12DにおけるシフトレジスタSRの初期値を“0”にしておく。図示しないデータ分割部は、32ビットのデータ列を8ビットづつのx〜x、x〜x15、x16〜x23、x24〜x31に分割して各CRC演算装置に入力する。
CRC演算装置12Aのシフトレジスタへは8クロックでx31〜x24が高次側より入力し、演算した結果(A(x)/G(x)の剰余R(x))は24ビットシフト装置13Aで24ビットシフト処理されてx24A(x)/G(x)の剰余R’(x)に変換される。
CRC演算装置12Bのシフトレジスタへは8クロックでx23〜x16が高次側より入力し、演算した結果(B(x)/G(x)の剰余R(x))は16ビットシフト装置13Bで16ビットシフト処理されてx16B(x)/G(x)の剰余R’(x)に変換される。
CRC演算装置12Cのシフトレジスタへは8クロックでx15〜xが高次側より入力し、演算した結果(C(x)/G(x)の剰余R(x))は8ビットシフト装置13Cで8ビットシフト処理されてxC(x)/G(x)の剰余R’(x)に変換される。
CRC演算装置12Dのシフトレジスタへは8クロックでx〜xを高次側より入力して、D(x)/G(x)の剰余R(x)を演算する。
以上の演算を同時に行い、合成部14はこれらの演算結果である剰余R’(x),R’(x),R’(x),R(x)をビットごとにEX−ORをとりCRCパリティP(x)を出力する。
(C)第2実施例
図31は、第2実施例である誤り検出復号器の構成図で、図15と同一部分には同一符号を付している。32ビットの入力データの低次側に16ビットのCRCパリティが付加されており、このCRCパリティは生成多項式G(x)=x16+x12+x+1を用いて生成されて入力データ列に付加されている。従って、誤り検出復号器はこの生成多項式G(x)=x16+x12+x+1を用いてで32ビットの情報ビットと16ビットのCRCパリティが正しいかどうか検出する。
全てのCRC演算装置22A〜22DにおけるシフトレジスタSRの初期値を“0”にしておく。図示しないデータ分割部は、48ビットのデータ列を低次側16ビットのCRCパリティx〜x15と高次側の32ビットの入力データx16〜x47に分離し、更に、32ビットの入力データを8ビットづつのx16〜x23、x24〜x31、x32〜x39、x40〜x47に分割して各CRC演算装置に入力する。
CRC演算装置22Aのシフトレジスタへは8クロックでx47〜x40が高次側より入力し、該CRC演算装置22Aの演算結果(A(x)/G(x)の剰余R(x))は24ビットシフト装置23Aに入力し、ここで24ビットシフト処理されてx24A(x)/G(x)の剰余R’(x)に変換される。
又、CRC演算装置22Bのシフトレジスタへは8クロックでx39〜x32が高次側より入力し、該CRC演算装置22Bの演算結果(B(x)/G(x)の剰余R(x))は16ビットシフト装置23Bに入力し、ここで16ビットシフト処理されてx16B(x)/G(x)の剰余R’(x)に変換される。
又、CRC演算装置22Cのシフトレジスタへは8クロックでx31〜x24が高次側より入力し、該CRC演算装置22Cの演算結果(C(x)/G(x)の剰余R(x))は8ビットシフト装置23Cに入力し、ここで8ビットシフト処理されてxC(x)/G(x)の剰余R’(x)に変換される。
CRC演算装置22Dのシフトレジスタへは8クロックでx23〜x16が高次側より入力し、D(x)/G(x)の剰余R(x)が演算される。
以上の演算を同時に行い、合成部24はこれらの演算結果である剰余R’(x),R’(x),R’(x),R(x)をビットごとにEX−ORをとりCRCパリティP’(x)を出力する。比較部25は、この16ビットのCRCパリティP’(x)と、入力データに付加されているCRCパリティビットP(x)(x15〜x)とビット毎にEX−ORをとって加算(論理和)することで誤りを検出する。すなわち、演算結果であるCRCパリティビットP’(x)と入力データに付加されているCRCパリティビットP(x)が全て等しく、誤りが無ければ比較部25は“0”を出力し、誤りが有れば”1”を出力する。
(D)第3実施例
図32は第3実施例である誤り検出復号器の構成図であり、図21と同一部分には同一符号を付している。図32において、32ビットの入力データの低次側には16ビットのCRCパリティが付加されており、このCRCパリティは生成多項式G(x)=x16+x12+x+1を用いて生成されて入力データ列に付加されている。従って、誤り検出復号器は生成多項式G(x)=x16+x12+x+1を用いて32ビットの情報ビットと16ビットのCRCパリティが正しいかどうか検出する。
48ビットのデータ列は、8ビットづつのx〜x、x〜x15、x16〜x23、x24〜x31、x32〜x39、x40〜x47に分割され以下の多項式
Figure 2003090362
で表現される。
全てのCRC演算装置32A〜32FにおけるシフトレジスタSRの初期値を“0”にしておく。図示しないデータ分割部は、48ビットのデータ列を8ビットづつのx〜x、x〜x15、x16〜x23、x24〜x31、x32〜x39、x40〜x47に分割して各CRC演算装置に入力する。
CRC演算装置32Aのシフトレジスタへは8クロックでx47〜x40が高次側より入力し、CRC演算装置32Aの演算結果(A(x)/G(x)の剰余R(x))は40ビットシフト装置33Aに入力し、ここで40ビットシフト処理されてx40A(x)/G(x)の剰余R’(x)に変換される。
CRC演算装置32Bのシフトレジスタへは8クロックでx39〜x32が高次側より入力し、該CRC演算装置32Bの演算結果(B(x)/G(x)の剰余R(x))は32ビットシフト装置33Bに入力し、ここで32ビットシフト処理されてx32B(x)/G(x)の剰余R’(x)に変換される。
CRC演算装置32Cのシフトレジスタへは8クロックでx31〜x24が高次側より入力し、該CRC演算装置32Cの演算結果(C(x)/G(x)の剰余R(x))は24ビットシフト装置23Cに入力し、ここで24ビットシフト処理されてx24C(x)/G(x)の剰余R’(x)に変換される。
CRC演算装置32Dのシフトレジスタへは8クロックでx23〜x16が高次側より入力し、該CRC演算装置32Dの演算結果(D(x)/G(x)の剰余R(x))は16ビットシフト装置33Dに入力し、ここで16ビットシフト処理されてx16D(x)/G(x)の剰余R’(x)に変換される。
CRC演算装置32Eのシフトレジスタへは8クロックでx15〜xが高次側より入力し、該CRC演算装置32Eの演算結果(E(x)/G(x)の剰余R(x))は8ビットシフト装置33Eに入力し、ここで8ビットシフト処理されてxE(x)/G(x)の剰余R’(x)に変換される。
CRC演算装置32Fのシフトレジスタへは8クロックでx〜xが高次側より入力し、F(x)/G(x)の剰余R(x)が演算される。
以上の演算を同時に行い、合成部34はこれらの演算結果である剰余R’(x),R’(x),R’(x),R’(x),R’(x),R(x)をビット毎にEX−ORをとり、16ビットのCRCパリティP’(x)を出力し、誤り検出部35はP’(x)の全ビットのORを計算する。CRCパリティP’(x)の全ビットが”0”であれば誤りはなく、誤り検出部35は”0”を出力する。しかし、1つでも”1”であれば誤りが有り、誤り検出部35は”1”を出力する。
(E)第4実施例
図33は第4実施例の誤り検出復号器の別の構成図であり、復号方式は図21の復号方式と同じである。図33の誤り検出復号器では、4台のCRC演算装置42A〜42Dを備えている。かかる場合、入力データ分割制御部41は各CRC演算装置42A〜42Dへ入力するビット長を
[全体の入力ビット長/4]
とし、一般にCRC演算装置をn台備えている場合、入力ビット長を
[全体の入力ビット長/n]
とする。例えば、CRC誤り検出符号化ビット長がCRCパリティを含めて40bitであったとすれば、入力データ分割制御部41は入力データを10bitずつ
Figure 2003090362
に分割し、それぞれを入力ビット数(演算回数)10と共にCRC演算装置42A,42B,42C,42Dに入力する。また、入力データ分割部41は各シフト変換装置43A,43B,43Cにビットシフト量を入力する。上記例では、シフト変換装置43Aに30ビットシフトを指示し、シフト変換装置43Bに20ビットシフトを指示し、シフト変換装置43Cに10ビットシフトを指示する。
以上により、CRC演算装置42A,42B,42C,42Dは指示されたビット数のデータが入力された時点におけるシフトレジスタの内容を剰余R(x),R(x),R(x),R(x)として出力する。又、シフト変換装置43Aは入力する剰余R(x)に30ビットシフト処理を行って剰余R’(x)に変換し、シフト変換装置43Bは入力する剰余R(x)に20ビットシフト処理を行って剰余R’(x)に変換し、シフト変換装置43Cは入力する剰余R(x)に10ビットシフト処理を行って剰余R’(x)に変換する。合成部44は剰余R’(x),R’(x),R’(x),R(x)をビット毎にEX−OR演算して合成し、全ビットが”0”であるか否かにより誤り検出を行う。
又、次のCRC誤り検出符号化ビット長がCRCパリティを含めて50bitであったとすれば、入力データ分割制御部41は該入力データを13,13,12,12ビットずつ
Figure 2003090362
に分割し、それぞれを入力ビット数(演算回数)13,13,12,12と共にCRC演算装置42A,42B,42C,42Dに入力する。また、入力データ分割制御部41は各シフト変換装置43A,43B,43Cにビットシフト量を入力する。上記例では、シフト変換装置43Aに37ビットシフトを指示し、シフト変換装置43Bに24ビットシフトを指示し、シフト変換装置43Cに12ビットシフトを指示する。
以上により、CRC演算装置42A,42B,42C,42Dは指示されたビット数のデータが入力された時点におけるシフトレジスタの内容を剰余R(x),R(x),R(x),R(x)として出力する。又、シフト変換装置43Aは入力する剰余R(x)に37ビットシフト処理を行って剰余R’(x)に変換し、シフト変換装置43Bは入力する剰余R(x)に24ビットシフト処理を行って剰余R’(x)に変換し、シフト変換装置43Cは入力する剰余R(x)に12ビットシフト処理を行って剰余R’(x)に変換する。合成部44は剰余R’(x),R’(x),R’(x),R(x)をビット毎にEX−OR演算して合成し、全ビットが”0”であるか否かにより誤り検出を行う。
以上、入力データ列を1/nに略等分割することにより、各CRC演算装置の演算時間を均一にできるため、CRC演算時間を短縮することができる。
なお、以上の入力データ列を1/nに略等分割する思想は、図15の誤り検出復号器や図1の誤り検出符号器にも適用することができる。すなわち、図1及び図15のデータ分割分11、21は、分割後のデータ列のビット長が等しくなるように入力データ列を分割し、各分割データ列を高次側より1ビットづつCRC演算装置(除算手段)に入力する。
(F)第5実施例
図34は第5実施例の誤り検出復号器の別の構成図であり、復号方式は図21の復号方式と同じである。誤り検出復号器において、
▲1▼最大のCRC誤り検出符号化ビット長が60ビットであり、
▲2▼4台のCRC演算装置52A〜52Dが備えられており、
▲3▼各CRC演算装置52A〜52Dへの最大入力ビット数が15ビットであり、
▲4▼シフト変換装置53A〜53Cがそれぞれ45ビットシフト処理、30ビットシフト処理、15ビットシフト処理を行うものとする。
上記構成において、CRC誤り検出符号化ビット長が40ビットであったとすれば、入力データ分割制御分51は、この40ビットを低次側から15ビットづつ分割し、順にCRC演算装置52D、CRC演算装置52Cに入力し、残りの10ビットをCRC演算装置52Bに入力し、CRC演算装置Aには入力しない。すなわち、入力データ分割部51は、CRC演算装置52Aにデータを入力せず、CRC演算装置52B,52C,52Dにそれぞれ
Figure 2003090362
を入力する。又、入力データ分割部51は、各CRC演算装置52A,52B,52C,52Dに入力ビット数(演算回数)0,10,15,15を入力する。
以上により、CRC演算装置52A,52B,52C,52Dは指示されたビット数のデータが入力された時点におけるシフトレジスタの内容を剰余R(x)(=0),R(x),R(x),R(x)として出力する。又、45ビットシフト変換装置53Aは入力する剰余R(x)(=0)に45ビットシフト処理を行って剰余R’(x)(=0)に変換し、30ビットシフト変換装置53Bは入力する剰余R(x)に30ビットシフト処理を行って剰余R’(x)に変換し、15ビットシフト変換装置53Cは入力する剰余R(x)に15ビットシフト処理を行って剰余R’(x)に変換する。合成部54は剰余R’(x),R’(x),R’(x),R(x)をビット毎にEX−OR演算して合成し、全ビットが”0”であるか否かにより誤り検出を行う。
また、CRC誤り検出符号化ビット長の入力が50ビットであったとすれば、入力データ分割制御部51は、入力データを低次側より15,15,15,5づつ分割し、CRC演算装置52A,52B,52C,52Dにそれぞれ
Figure 2003090362
を入力する。又、入力データ分割制御部51は、各CRC演算装置52A,52B,52C,52Dに入力ビット数(演算回数)5,15,15,15を入力する。
以上により、CRC演算装置52A,52B,52C,52Dは指示されたビット数のデータが入力された時点におけるシフトレジスタの内容を剰余R(x),R(x),R(x),R(x)として出力する。又、45ビットシフト変換装置53Aは入力する剰余R(x)に45ビットシフト処理を行って剰余R’(x)に変換し、30ビットシフト変換装置53Bは入力する剰余R(x)に30ビットシフト処理を行って剰余R’(x)に変換し、15ビットシフト変換装置53Cは入力する剰余R(x)に15ビットシフト処理を行って剰余R’(x)に変換する。合成部54は剰余R’(x),R’(x),R’(x),R(x)をビット毎にEX−OR演算して合成し、全ビットが”0”であるか否かにより誤り検出を行う。
第5実施例によれば、各ビットシフト変換装置は常に一定数のビットシフト処理を行うだけで良いため、構成を簡単にすることができる。
尚、以上の分割データ列のビット長が設定長となるように入力データ列を分割するという思想は、図15の誤り検出復号器や図1の誤り検出符号器にも適用することができる。すなわち、図1及び図15のデータ分割分11、21は、分割後のデータ列のビット長が設定長となるように入力データ列を分割し、各分割データ列を高次側より1ビットづつCRC演算装置(除算手段)に入力する。
(G)第6実施例
図35は第6実施例の誤り検出復号器の別の構成図であり、復号方式は図21の復号方式と同じである。誤り検出復号器において、
▲1▼最大のCRC誤り検出符号化ビット長が60ビットであり、
▲2▼4台のCRC演算装置62A〜62Dが備えられており、
▲3▼各CRC演算装置62A〜62Dへの最大入力ビット数が15ビットであり、
▲4▼シフト変換装置63A〜63Cがそれぞれ45ビットシフト処理、30ビットシフト処理、15ビットシフト処理を行うものとする。
上記構成において、CRC誤り検出符号化ビット長が40ビットであったとすれば、入力データ分割制御部61は、この40ビットを低次側から15ビットづつ分割し、順にCRC演算装置62D、CRC演算装置62Cに入力し、15ビットに満たない装置へは高次側に”0”を埋め込んでトータル15ビットを入力する。従って、入力データ分割制御部61は、CRC演算装置62A,62B,62C,62Dにそれぞれ
Figure 2003090362
を入力する。
以上により、CRC演算装置62A,62B,62C,62Dは15ビットのデータが入力された時点におけるシフトレジスタの内容を剰余R(x)(=0),R(x),R(x),R(x)として出力する。又、45ビットシフト変換装置63Aは入力する剰余R(x)(=0)に45ビットシフト処理を行って剰余R’(x)(=0)に変換し、30ビットシフト変換装置63Bは入力する剰余R(x)に30ビットシフト処理を行って剰余R’(x)に変換し、15ビットシフト変換装置63Cは入力する剰余R(x)に15ビットシフト処理を行って剰余R’(x)に変換する。合成部64は剰余R’(x),R’(x),R’(x),R(x)をビット毎にEX−OR演算して合成し、全ビットが”0”であるか否かにより誤り検出を行う。
また、CRC誤り検出符号化ビット長が50ビットであったとすれば、入力データ分割制御部61は、入力データを低次側より15,15,15,5づつ分割し、CRC演算装置62A,62B,62C,62Dにそれぞれ
Figure 2003090362
を入力する。
以上により、CRC演算装置62A,62B,62C,62Dは15ビットのデータが入力された時点におけるシフトレジスタの内容を剰余R(x),R(x),R(x),R(x)として出力する。又、45ビットシフト変換装置63Aは入力する剰余R(x)に45ビットシフト処理を行って剰余R’(x)に変換し、30ビットシフト変換装置63Bは入力する剰余R(x)に30ビットシフト処理を行って剰余R’(x)に変換し、15ビットシフト変換装置63Cは入力する剰余R(x)に15ビットシフト処理を行って剰余R’(x)に変換する。合成部64は剰余R’(x),R’(x),R’(x),RD(x)をビット毎にEX−OR演算して合成し、全ビットが”0”であるか否かにより誤り検出を行う。
第6実施例によれば、各CRC演算装置には常に一定数のデータが入力するため構成を簡単にできる。又、各ビットシフト変換装置は常に一定数のビットシフト処理を行うだけで良いため、ますます構成を簡単にすることができる。
以上のビット長が設定長に満たない分割データ列の高次側に前記満たない分“0”を付加する思想は、図15の誤り検出復号器や図1の誤り検出符号器にも適用することができる。すなわち、図1及び図15のデータ分割分11、21は、分割後のデータ列のビット長が設定長となるように入力データ列を分割し、ビット長が設定長に満たない分割データ列の高次側に前記満たない分“0”を付加して各分割データ列を高次側より1ビットづつCRC演算装置(除算手段)に入力する。
(H)第7実施例
図36は第7実施例の誤り検出復号器の構成図であり、図31の誤り検出復号器と同一部分には同一符号を付している。異なる点は、▲1▼ビットシフト処理により得られた剰余R’(x),R’(x),R’(x),R(x)を記憶する記憶装置26A〜26Dを設けている点、▲2▼誤り検出により再入力された8ビットの分割データのみ再度剰余を計算し、該剰余と保存されている他の分割データの剰余を合成してCRCパリティを出力する点である。
第7実施例の誤り検出復号器において、最初の誤り検出は、図31と同様の方法で行うが、誤りが検出されて、データが部分的に再入力がされた場合には、再入力された8ビットの分割データのみ再度剰余を計算し、該剰余と保存されている他の分割データの剰余を合成してCRCパリティを出力する。
初期時には、全てのCRC演算装置22A〜22Dにおけるシフトレジスタの初期値を“0”にしておく。図示しないデータ分割部は、48ビットのデータ列を低次側16ビットのCRCパリティx〜x15と高次側の32ビットの入力データx16〜x47に分離し、更に、32ビットの入力データを8ビットづつのx16〜x23、x24〜x31、x32〜x39、x40〜x47に分割して各CRC演算装置22A〜22Dに入力する。
CRC演算装置22Aのシフトレジスタへは8クロックでx47〜x40が高次側より入力し、該CRC演算装置22Aの演算結果(A(x)/G(x)の剰余R(x))は24ビットシフト装置23Aに入力し、ここで24ビットシフト処理されてx24A(x)/G(x)の剰余R’(x)に変換され,記憶装置26Aに記憶される。
又、CRC演算装置22Bのシフトレジスタへは8クロックでx39〜x32が高次側より入力し、該CRC演算装置22Bの演算結果(B(x)/G(x)の剰余R(x))は16ビットシフト装置23Bに入力し、ここで16ビットシフト処理されてx16B(x)/G(x)の剰余R’(x)に変換され,記憶装置26Bに記憶される。
又、CRC演算装置22Cのシフトレジスタへは8クロックでx31〜x24が高次側より入力し、該CRC演算装置22Cの演算結果(C(x)/G(x)の剰余R(x))は8ビットシフト装置23Cに入力し、ここで8ビットシフト処理されてxC(x)/G(x)の剰余R’(x)に変換され,記憶装置26Cに記憶される。
CRC演算装置22Dのシフトレジスタへは8クロックでx23〜x16が高次側より入力し、D(x)/G(x)の剰余R(x)が演算され,記憶装置26Dに記憶される。
以上の演算を同時に行い、合成部24はこれらの演算結果である剰余R’(x),R’(x),R’(x),R(x)をビットごとにEX−ORをとって合成し、CRCパリティビットP’(x)を出力する。比較部25は、このCRCパリティビットP’(x)と、入力データに付加されているCRCビットビットP(x)(x15〜x)とをビット毎にEX−ORをとって加算(論理和)することで誤りを検出する。すなわち、演算結果であるCRCパリティビットP’(x)と入力データに付加されているCRCパリティビットP(x)が全て等しく、誤りが無ければ比較部25は”0”を出力し、誤りが有れば”1”を出力する。
ここで誤りがあった場合、例えばx39〜x32のみが再入力された場合、CRC演算装置22Bのシフトレジスタのみに8クロックで8ビットデータx39〜x32が再入力し、該CRC演算装置22Bの演算結果(B(x)/G(x)の剰余R(x))は16ビットシフト装置23Bに入力し、ここで16ビットシフトしてx16B(x)/G(x)の剰余R’(x)に変換される。
合成部24は、記憶装置26A,26C,26Dに記憶されている剰余R’(x),R’(x),R(x)を読出し、これらと16ビットシフト回路23Bで16ビットシフト処理して得られた結果R’(x)とをビットごとにEX−ORをとる。比較部25は、この16ビットのCRCパリティP’(x)と、入力データに付加されているCRCビットP(x)(x15〜x)とビット毎にEX−ORをとって加算(論理和)することで誤りを検出する。
次に第7実施例の適用例について示す。CRCが2重にかけられている場合について図37(A),(B)に従って説明する。尚、図37(A)はシステム全体の構成図、図37(B)はデータ処理説明図である。
送信側101は、情報全体に対してL2レイヤのCRC誤り検出符号化を行う。ついで、誤り検出符号化されたデータ(L2レイヤのCRCパリティ付きのデータ)を複数a〜dに分割し、各分割データにL1レイヤのCRC誤り検出符号化を行い、最後に誤り訂正符号化を行って送信する。
受信側102は、誤り訂正復号後、復号データを複数A〜Dに分割し、各分割データにL1レイヤのCRC誤り検出処理を施す。L1 CRC誤り検出の結果、全て誤り検出なしと判断されてからL2レイヤのCRC誤り検出処理を行うと演算を2回に分けて行うため効率が悪い。そこでL1レイヤ及びL2レイヤにおける誤り検出処理を両方同時に行う。ところが、L1レイヤのCRC誤り検出によりデータ列A〜Dのうちどこか一つでも誤りが検出されてしまうとL2レイヤでのCRC誤り検出処理は無駄になってしまい、L1レイヤの誤った部分だけ再送されたとしても最初から同じ演算を行うことになる。
そこで、第7実施例の方法を適用する。すなわち、L2レイヤのCRC誤り検出の演算単位をa〜dとすることにより、L1レイヤの誤り検出のCRC演算単位と同じ長さにして行ない、演算結果を保存し、データが部分的に再送された場合にその部分のみを演算する。このようにすれば、効率のよいL2レイヤのCRC誤り検出を行うことができる。L2レイヤ以上の高位レイヤは処理をソフトウェアで行うことが多いため、部分的な演算で結果が得られることは、プロセッサの処理効率が向上して好ましい。
図38は第7実施例の適用例である誤り検出復号器の構成図である。入力データ分割制御部71は入力データ列をL1レイヤのCRC演算単位A〜D(図37(B)参照)に分割し、それぞれをL1 CRC誤り検出装置72A〜72Dに入力すると共に、L2 CRC誤り検出装置70のCRC演算装置74A〜74Dに入力する。L1 CRC誤り検出装置72A〜72D及びL2 CRC誤り検出装置70は同時に誤り検出処理を行う。
L1 CRC誤り検出装置72A〜72Dは分割データ列A〜DについてCRC演算を行い、演算結果を出力する。CRC監視部73はL1 CRC誤り検出装置72A〜72Dの誤り検出結果に基いてL1レイヤの誤りの有無を監視し、誤りがなければ合成許可信号をL2 CRC誤り検出装置70の合成部に入力する。
以上と並行してL2 CRC誤り検出装置70のCRC演算装置74A〜74Dは入力データ列A〜Dに含まれるL1 CRCパリティを除いたデータ部分を生成多項式で除算した剰余を出力する。シフト変換装置75A〜75CはデータA〜C列の分割位置に応じたビットシフト分、CRC演算装置74A〜74Cで求めた剰余にビットシフト処理を施して変換し、記憶部76A〜76Dに保存する。合成部77は、CRC監視部73からの合成許可信号により記憶部76A〜76Dに記憶されている剰余を合成(ビット毎のEX−OR演算)し、誤り検出部78は合成結果に基づいてL2レイヤのCRC誤り検出を行う。
L1 CRC誤り検出装置72A〜72Dのいずれかの誤り検出結果が誤りを示していれば、CRC監視部73は送信側に誤っているデータ部分の再送を要求する。例えばデータ列Bに誤りが含まれていれば、該データ列Bの再送を要求する。入力データ分割制御部71はデー列タBが再送されてくればL1 CRC検出装置72BとL2 CRC誤り検出装置70のCRC演算装置74Bに入力する。
L1 CRC誤り検出装置72Bは分割データ列BについてCRC演算を行い、演算結果を出力する。CRC監視部73はL1 CRC誤り検出装置72A〜72Dの誤り検出結果に基いてL1レイヤの誤りの有無を監視し、誤りがなければ合成部77に合成を許可する。以上と並行して、CRC演算装置74Bは,入力データBに含まれるL1 CRCパリティを除いたデータ部分を生成多項式で除算した剰余を出力し、シフト変換装置75BはデータBの分割位置に応じたビットシフト分、CRC演算装置74Bで求めた剰余にビットシフト処理を施して変換して記憶部76Bに記憶する。合成部77はCRC監視部73からの許可信号により、記憶部76A〜76Dに記憶されている剰余を合成(ビット毎のEX−OR演算)し、誤り検出部78は合成結果に基づいてL2レイヤのCRC誤り検出を行う。
(I)第8実施例
図39は第8実施例の誤り検出復号器の別の構成図で、CRCを2重にかける図37(A)に示すシステム構成において適用できるもの、図40はデータ処理説明図である。
誤り検出符号器側では図40に示すように、112ビットの情報全体に対してL2レイヤのCRC誤り検出符号化を行って16ビットのL2 CRCパリティを付加する。ついで、誤り検出符号化された128ビットのデータ(L2 CRCパリティ付きのデータ)を32ビットづつの複数のデータ列A〜Dに分割し、各分割データ列A〜Dに16ビットのL1 CRCパリティを付加し、最後に誤り訂正符号化を行って送信する。
受信側に設けられたL1 CRC演算部80(図39)は、一致検出復号方法によりL1 CRC演算を行う。尚、L1 CRC演算部80はオール”0”検出復号方法や本発明の復号方法など任意の復号方法を用いることができる。また、L2 CRC演算部90は、図21に示す復号方法によりL2 CRC演算を行うものとする。
L1 CRC演算部80は、まず、最初のL1 CRC演算をおこなう。すなわち、32bitのデータA(x191,x190,x189,x188,・・・,x161,x160)を除算器81のシフトレジスタSRに入力する。シフトレジスタへの入力が完了したとき、誤り検出部82は、シフトレジスタSRの値(剰余R(x))とL1 CRCパリティ(x159,x158,x157,x156,・・・,x145,x144)を比較し、全ビット一致しているか否かでL1 CRC誤り検出を行う。これと同時に、シフトレジスタの値(剰余R(x))をL2 CRC演算部90に引き渡す。L2 CRC演算部90はスイッチ91を制御することでこの値を記憶装置92Aに格納する。
ついで、L1 CRC演算部80は、シフトレジスタSRをクリアして次のL1 CRC演算を行う。すなわち、32bitのデータB(x143,x142,x141,x140,・・・,x113,x112)をシフトレジスタSRに入力する。シフトレジスタへの入力が完了したとき、誤り検出部82は、シフトレジスタSRの値(剰余R(x))とL1 CRCパリティ(x111,x110,x109,x108,・・・,x97,x96)とを比較し、全ビット一致しているか否かでL1 CRC誤り検出を行う。これと同時に、シフトレジスタの値(剰余R(x))をL2 CRC演算部90に引き渡す。L2 CRC演算部90はスイッチ91を制御することでこの値を記憶装置92Bに格納する。
ついで、L1 CRC演算部80は、シフトレジスタSRをクリアして次のL1 CRC演算を行う。すなわち、32bitのデータB(x95,x94,x93,x92,・・・,x65,x64)をシフトレジスタSRに入力する。シフトレジスタへの入力が完了したとき、誤り検出部82は、シフトレジスタSRの値(剰余R(x))とL1 CRCパリティ(x63,x62,x61,x60,・・・,x49,x48)とを比較し、全ビット一致しているか否かでL1 CRC誤り検出を行う。これと同時に、シフトレジスタの値(剰余R(x))をL2 CRC演算部90に引き渡す。L2 CRC演算部90はスイッチ91を制御することでこの値を記憶装置92Cに格納する。
ついで、L1 CRC演算部80は、シフトレジスタSRをクリアして次のL1 CRC演算を行う。すなわち、32bitのデータB(x47,x46,x45,x44,・・・,x17,x16)をシフトレジスタSRに入力する。シフトレジスタへの入力が完了したとき、誤り検出部82は、シフトレジスタSRの値(剰余R(x))とL1 CRCパリティ(x15,x14,x13,x12,・・・,x,x)とを比較し、全ビット一致しているか否かでL1 CRC誤り検出を行う。これと同時に、シフトレジスタの値(剰余剰余R(x))をL2 CRC演算部90に引き渡す。L2 CRC演算部90はスイッチ91を制御することでこの値を記憶装置92Dに格納する。
以上によりL1 CRC誤り検出が終了すれば、L2 CRC演算部90はL2 CRC演算を開始する。すなわち、96ビットシフト部93Aは記憶装置92Aから記憶データ(剰余R(x))を読出し、該剰余に96ビットシフト処理を施す。64ビットシフト部93Bは記憶装置92Bから記憶データ(剰余R(x))を読出し、該剰余に64ビットシフト処理を施す。32ビットシフト部93Cは記憶装置92Cから記憶データ(剰余R(x))を読出し、該剰余に32ビットシフト処理を施す。合成部94はビットシフト後のR’(x),R’(x),R’(x),R(x)をビット毎にEX−OR演算し、誤り検出部95は合成結果が全ビット0であるか否かによりL2レイヤのCRC誤り検出を行う。
尚、図39では、L1 CRC演算部80が直列的に剰余R(x),R(x),R(x),R(x)を演算したが、図41に示すように入力データ分割部83と4台のL1 CRC演算部80A〜80Dを設け、それぞれでL1 CRCチェックを行うと共に剰余R(x),R(x),R(x),R(x)を演算するように構成することもできる。尚、L1 CRC演算部80A〜80Dは図39のL1 CRC演算部80と同一の構成を有している。
以上第8実施例によれば、L2 CRC演算部のシフトレジスタ演算を不要に出来、ハードウェア構成を簡単にできる。
(J)第9実施例
以上では、誤り検出符号器及び誤り検出復号器について説明したが、図1の誤り検出符号器はそのままKビットの入力データ列を第1の多項式K(x)と見立てて第2の多項式(生成多項式G(x))で除算してその剰余を演算する除算装置として用いることができる。すなわち、除算装置は、▲1▼入力データ列を複数に分割するデータ分割手段11、▲2▼分割したサブデータ列毎に、サブデータ列の情報ビットを多項式と見立てて第2の多項式で除算してその剰余を演算する除算手段12A〜12D、▲3▼前記剰余毎に、サブデータ列の分割位置に応じた変換処理(ビットシフト処理)を該剰余に施す変換手段13A〜13C、▲4▼前記変換処理により得られた各変換値を合成し、合成結果をKビットの入力データ列を前記第2の多項式で除算したときの剰余とする合成部14、とで構成することができる。
かかる除算装置は、誤り検出符号器に限定されず種々の符号化において利用することができる。
【図面の簡単な説明】
図1は本発明の誤り検出符号器のブロック構成図ある。
図2はCRC演算装置において、1ビットシフトを行う16×16の行列の説明図である。
図3は2ビットシフト行列A(=A×A)及び4ビットシフト行列A(=A×A)の説明図である。
図4は8ビットシフト行列A(=A×A)及び16ビットシフト行列A16(=A×A)の説明図である。
図5は24ビットビットシフト行列A24(=A16×A)の説明図である。
図6は32ビットシフト行列A32(=A24×A)及び40ビットシフト行列A40(=A32×A)の説明図である。
図7はCRC演算装置と8ビットシフト装置の接続構成図である。
図8はCRC演算装置と16ビットシフト装置の接続構成図である。
図9はCRC演算装置と24ビットシフト装置の接続構成図である。
図10は誤り検出符号器の第1の動作説明図である。
図11は誤り検出符号器の第2の動作説明図である。
図12は誤り検出符号器の第3の動作説明図である。
図13は誤り検出符号器の第4の動作説明図である。
図14は誤り検出符号器の第5の動作説明図である。
図15は本発明の誤り検出復号器のブロック構成図である。
図16は誤り検出復号器の第1の動作説明図である。
図17は誤り検出復号器の第2の動作説明図である。
図18は誤り検出復号器の第3の動作説明図である。
図19は誤り検出復号器の第4の動作説明図である。
図20は誤り検出復号器の第5の動作説明図である。
図21は本発明の別の誤り検出復号器のブロック構成図である。
図22は誤り検出復号器の第1の動作説明図である。
図23は誤り検出復号器の第2の動作説明図である。
図24は誤り検出復号器の第3の動作説明図である。
図25は誤り検出復号器の第4の動作説明図である。
図26は誤り検出復号器の第5の動作説明図である。
図27は誤り検出復号器の第6の動作説明図である。
図28は誤り検出復号器の第7の動作説明図である。
図29は本発明の利点説明図である。
図30は第1実施例である誤り検出符号器の構成図である。
図31は第2実施例である誤り検出復号器の構成図である。
図32は第3実施例である誤り検出復号器の構成図である。
図33は第4実施例の誤り検出復号器の構成図である。
図34は第5実施例の誤り検出復号器の構成図である。
図35は第6実施例の誤り検出復号器の構成図である。
図36は第7実施例の誤り検出復号器の構成図である。
図37はシステム全体の構成図及びデータ処理説明図である。
図38は第7実施例の適用例である誤り検出復号器の構成図である。
図39は第8実施例の誤り検出復号器の構成図である。
図40はデータ処理説明図である。
図41は第8実施例の誤り検出復号器の別の構成図である。
図42は誤り検出を適用したシステムの構成例である。
図43は生成多項式G(x)=x16+x12+x+1とした場合のCRC演算装置の第1、第2の構成例である。
図44は誤り検出符号器の動作説明図である。
図45は一致検出復号方法説明図である。
図46はオール”0”検出復号方法説明図である。
図47は従来の問題点説明図である。

Claims (22)

  1. 誤り検出符号化処理によりパリティビットを作成し、該パリティビットを入力データ列に付加して符号化する誤り検出符号化装置において、
    入力データ列を複数に分割するデータ分割手段、
    分割したサブデータ列を生成多項式で除算してその剰余(第1の剰余)を演算する除算手段、
    前記剰余毎に、サブデータ列の分割位置に応じた変換処理を該剰余に施す変換手段、
    前記変換処理により得られた各変換値を合成してパリティビットを出力する合成手段、
    を備えたことを特徴とする誤り検出符号化装置。
  2. 前記サブデータの末尾に”0”を1個付加したデータ列を前記生成多項式で除算したときの剰余を第2の剰余とし、前記第1の剰余を第2の剰余に変換するための変換行列をAとするとき、前記サブデータの分割位置がSビット目であれば、前記変換手段は行列Aと第1の剰余を乗算することにより前記変換処理を実行する、
    ことを特徴とする請求項1記載の誤り検出符号化装置。
  3. 行列AをS回乗算して得られる変換行列Aをハードウェアで構成し、第1の剰余を該ハードウェアに入力して前記変換処理を実行する、
    ことを特徴とする請求項2記載の誤り検出符号化装置。
  4. 前記データ分割手段は、前記各サブデータ列のビット長が等しくなるように入力データ列を分割し、各サブデータ列を高次側より1ビットづつ前記除算手段に入力する、
    ことを特徴とする請求項1記載の誤り検出符号化装置。
  5. 前記データ分割手段は、サブデータ列のビット長が設定長となるように入力データ列を分割し、各サブデータ列を高次側より1ビットづつ前記除算手段に入力する、
    ことを特徴とする請求項1記載の誤り検出符号化装置。
  6. 前記データ分割手段は、ビット長が前記設定長に満たないサブデータ列の高次側に前記満たない分“0”を付加し、高次側よりサブデータ列を1ビットづつ前記除算手段に入力する、
    ことを特徴とする請求項5記載の誤り検出符号化装置。
  7. パリティビットが付加された入力データ列に誤り検出処理を施して入力データ列の誤りを検出する誤り検出復号装置において、
    入力データ列を複数に分割するデータ分割手段、
    分割したサブデータ列を生成多項式で除算してその剰余(第1の剰余)を演算する除算手段、
    前記剰余毎に、サブデータ列の分割位置に応じた変換処理を該剰余に施す変換手段、
    前記変換処理により得られた各変換値を合成してパリティビットを出力する合成手段、
    該パリティビットと入力データに付加されているパリティビットが一致しているか否かにより入力データの誤りの有無を検出する誤り検出部、
    を備えたことを特徴とする誤り検出復号装置。
  8. 前記サブデータの末尾に”0”を1個付加したデータ列を前記生成多項式で除算したときの剰余を第2の剰余とし、前記第1の剰余を第2の剰余に変換するための変換行列をAとするとき、前記サブデータの分割位置がSビット目であれば、前記変換手段は行列Aと第1の剰余を乗算することにより前記変換処理を実行する、
    ことを特徴とする請求項7記載の誤り検出復号装置。
  9. 行列AをS回乗算して得られる変換行列Aをハードウェアで構成し、第1の剰余を該ハードウェアに入力して前記変換処理を実行する、
    ことを特徴とする請求項8記載の誤り検出復号装置。
  10. 前記データ分割手段は、前記各サブデータ列のビット長が等しくなるように入力データ列を分割し、各サブデータ列を高次側より1ビットづつ前記除算手段に入力する、
    ことを特徴とする請求項7記載の誤り検出復号装置。
  11. 前記データ分割手段は、サブデータ列のビット長が設定長となるように入力データ列を分割し、各サブデータ列を高次側より1ビットづつ前記除算手段に入力する、
    ことを特徴とする請求項7記載の誤り検出復号装置。
  12. 前記データ分割手段は、ビット長が前記設定長に満たないサブデータ列の高次側に前記満たない分“0”を付加し、高次側よりサブデータ列を1ビットづつ前記除算手段に入力する、
    ことを特徴とする請求項11記載の誤り検出復号装置。
  13. 前記変換処理により得られた各変換値を保存する保存手段を備え、
    誤りのために再入力されたサブデータのみ再度剰余を計算し、該剰余の変換結果と保存されている他のサブデータの変換結果を合成してパリティビットを出力する、
    ことを特徴とする請求項7記載の誤り検出復号装置。
  14. パリティビットが付加された入力データ列に誤り検出処理を施して入力データ列の誤りを検出する誤り検出復号装置において、
    パリティビットを含めて入力データ列を複数に分割するデータ分割手段、
    分割したサブデータ列を生成多項式で除算してその剰余(第1の剰余)を演算する除算手段、
    前記剰余毎に、サブデータ列の分割位置に応じた変換処理を該剰余に施す変換手段、
    前記変換処理により得られた各変換値を合成する合成部、
    合成結果が全ビット“0”であるか否かにより入力データの誤りの有無を検出する誤り検出部、
    を備えたことを特徴とする誤り検出復号装置。
  15. 前記サブデータの末尾に”0”を1個付加したデータ列を前記生成多項式で除算したときの剰余を第2の剰余とし、前記第1の剰余を第2の剰余に変換するための変換行列をAとするとき、前記サブデータの分割位置がSビット目であれば、前記変換手段は行列Aと第1の剰余を乗算することにより前記変換処理を実行する、
    ことを特徴とする請求項14記載の誤り検出復号装置。
  16. 行列AをS回乗算して得られる変換行列Aをハードウェアで構成し、第1の剰余を該ハードウェアに入力して前記変換処理を実行する、
    ことを特徴とする請求項15記載の誤り検出復号装置。
  17. 前記データ分割手段は、前記各サブデータ列のビット長が等しくなるように入力データ列を分割し、各サブデータ列を高次側より1ビットづつ前記除算手段に入力する、
    ことを特徴とする請求項14記載の誤り検出復号装置。
  18. 前記データ分割手段は、サブデータ列のビット長が設定長となるように入力データ列を分割し、各サブデータ列を高次側より1ビットづつ前記除算手段に入力する、
    ことを特徴とする請求項14記載の誤り検出復号装置。
  19. 前記データ分割手段は、ビット長が前記設定長に満たないサブデータ列の高次側に前記満たない分“0”を付加し、高次側よりサブデータ列を1ビットづつ前記除算手段に入力する、
    ことを特徴とする請求項18記載の誤り検出復号装置。
  20. 前記変換処理により得られた各変換値を保存する保存手段を備え、
    誤りのために再入力されたサブデータのみ再度剰余を計算し、該剰余の変換結果と保存されている他のサブデータの変換結果を合成し、合成結果が全ビット“0”であるか否かにより入力データの誤りの有無を検出する、
    ことを特徴とする請求項14記載の誤り検出復号装置。
  21. パリティビットが付加された入力データ列に誤り検出処理を施して入力データ列の誤りを検出する誤り検出復号装置において、
    所定の生成多項式を用いて生成された第1のパリティビットが付加されたデータ列を複数に分割し、かつ、分割により得られたサブデータ列毎に前記生成多項式を用いて生成された第2のパリティビットを該サブデータ列に付加してなるデータ列が入力したとき、該入力データ列を第2のパリティを含む前記サブデータ列毎に分割するデータ分割手段、
    前記サブデータ列を前記生成多項式で除算し、その剰余をパリティビットとして出力し、該パリティビットと前記サブデータに付加されている第2のパリティビットとを比較してサブデータの誤りを検出する第1の誤り検出部、
    前記剰余毎に、サブデータ列の分割位置に応じた変換処理を該剰余に施す変換手段、
    前記変換処理により得られた各変換値を合成し、合成結果が全ビット“0”であるか否かにより入力データの誤りの有無を検出する第2の誤り検出部、
    を備えたことを特徴とするの誤り検出復号装置。
  22. Kビットの入力データ列を第1の多項式と見立てて第2の多項式で除算してその剰余を演算する除算装置において、
    入力データ列を複数に分割するデータ分割手段、
    分割したサブデータ列毎に、サブデータ列の情報ビットを多項式と見立てて前記第2の多項式で除算してその剰余を演算する除算手段、
    前記剰余毎に、サブデータ列の分割位置に応じた変換処理を該剰余に施す変換手段、
    前記変換処理により得られた各変換値を合成し、合成結果をKビットの入力データ列を前記第2の多項式で除算したときの剰余とする合成部、
    を備えたことを特徴とする除算装置。
JP2003587014A 2002-04-22 2002-04-22 誤り検出符号化及び復号装置並びに除算装置 Expired - Fee Related JP3930479B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2002/003965 WO2003090362A1 (fr) 2002-04-22 2002-04-22 Codeur et decodeur de detection d'erreur, et diviseur

Publications (2)

Publication Number Publication Date
JPWO2003090362A1 true JPWO2003090362A1 (ja) 2005-08-25
JP3930479B2 JP3930479B2 (ja) 2007-06-13

Family

ID=29227609

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003587014A Expired - Fee Related JP3930479B2 (ja) 2002-04-22 2002-04-22 誤り検出符号化及び復号装置並びに除算装置

Country Status (5)

Country Link
US (1) US7428693B2 (ja)
EP (2) EP2175559A1 (ja)
JP (1) JP3930479B2 (ja)
DE (1) DE60236896D1 (ja)
WO (1) WO2003090362A1 (ja)

Families Citing this family (53)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7356030B2 (en) * 2000-11-17 2008-04-08 Foundry Networks, Inc. Network switch cross point
US7236490B2 (en) 2000-11-17 2007-06-26 Foundry Networks, Inc. Backplane interface adapter
US7596139B2 (en) 2000-11-17 2009-09-29 Foundry Networks, Inc. Backplane interface adapter with error control and redundant fabric
US7187687B1 (en) 2002-05-06 2007-03-06 Foundry Networks, Inc. Pipeline method and system for switching packets
US20120155466A1 (en) 2002-05-06 2012-06-21 Ian Edward Davis Method and apparatus for efficiently processing data packets in a computer network
US7468975B1 (en) 2002-05-06 2008-12-23 Foundry Networks, Inc. Flexible method for processing data packets in a network routing system for enhanced efficiency and monitoring capability
US6901072B1 (en) * 2003-05-15 2005-05-31 Foundry Networks, Inc. System and method for high speed packet transmission implementing dual transmit and receive pipelines
US7817659B2 (en) 2004-03-26 2010-10-19 Foundry Networks, Llc Method and apparatus for aggregating input data streams
US8730961B1 (en) 2004-04-26 2014-05-20 Foundry Networks, Llc System and method for optimizing router lookup
US7657703B1 (en) 2004-10-29 2010-02-02 Foundry Networks, Inc. Double density content addressable memory (CAM) lookup scheme
WO2007034935A1 (en) * 2005-09-21 2007-03-29 Semiconductor Energy Laboratory Co., Ltd. Cyclic redundancy check circuit and semiconductor device having the cyclic redundancy check circuit
US8448162B2 (en) 2005-12-28 2013-05-21 Foundry Networks, Llc Hitless software upgrades
US8427961B2 (en) * 2006-05-18 2013-04-23 Motorola Mobility Llc Information encoding on a codeword in wireless communication networks
JP4648255B2 (ja) * 2006-06-26 2011-03-09 アラクサラネットワークス株式会社 情報処理装置および情報処理方法
US8229109B2 (en) * 2006-06-27 2012-07-24 Intel Corporation Modular reduction using folding
JP2008011025A (ja) * 2006-06-28 2008-01-17 Fujitsu Ltd 巡回冗長検査のための剰余計算装置
TWI312987B (en) * 2006-08-11 2009-08-01 Via Tech Inc Computer system having raid control function and raid control method
US7903654B2 (en) 2006-08-22 2011-03-08 Foundry Networks, Llc System and method for ECMP load sharing
WO2008023684A1 (fr) * 2006-08-22 2008-02-28 Panasonic Corporation Unité d'opération arithmétique de résidus en parallèle et procédé d'opération arithmétique de résidus en parallèle
US7827471B2 (en) * 2006-10-12 2010-11-02 Intel Corporation Determining message residue using a set of polynomials
US8238255B2 (en) 2006-11-22 2012-08-07 Foundry Networks, Llc Recovering from failures without impact on data traffic in a shared bus architecture
US20090279441A1 (en) 2007-01-11 2009-11-12 Foundry Networks, Inc. Techniques for transmitting failure detection protocol packets
DE102007032659A1 (de) 2007-07-13 2009-01-15 Knick Elektronische Messgeräte GmbH & Co. KG Verfahren zur telegrammweisen Datenübertragung in einem seriellen Kommunikationsprotokoll sowie dieses nutzende Datenübertragungsvorrichtung
US8689078B2 (en) 2007-07-13 2014-04-01 Intel Corporation Determining a message residue
US8037399B2 (en) 2007-07-18 2011-10-11 Foundry Networks, Llc Techniques for segmented CRC design in high speed networks
US20090024900A1 (en) * 2007-07-18 2009-01-22 Cisco Technology, Inc. Cyclic redundancy checking in lane-based communications
US8271859B2 (en) * 2007-07-18 2012-09-18 Foundry Networks Llc Segmented CRC design in high speed networks
KR101286238B1 (ko) * 2007-08-01 2013-07-15 삼성전자주식회사 데이터 병렬화 수신기
JP5126230B2 (ja) * 2007-08-07 2013-01-23 富士通株式会社 誤り検出方法
JP5232420B2 (ja) * 2007-08-17 2013-07-10 株式会社エヌ・ティ・ティ・ドコモ データ送信方法、データ受信方法、移動端末及び無線通信システム
JP4831018B2 (ja) * 2007-08-28 2011-12-07 日本電気株式会社 並列巡回符号生成装置および並列巡回符号検査装置
US8149839B1 (en) 2007-09-26 2012-04-03 Foundry Networks, Llc Selection of trunk ports and paths using rotation
US7886214B2 (en) * 2007-12-18 2011-02-08 Intel Corporation Determining a message residue
US8042025B2 (en) * 2007-12-18 2011-10-18 Intel Corporation Determining a message residue
CN101483441A (zh) * 2008-01-07 2009-07-15 三星电子株式会社 通信系统中添加循环冗余校验的设备
JP4798164B2 (ja) * 2008-04-02 2011-10-19 ソニー株式会社 送信装置および方法、受信装置および方法、並びにプログラム
KR20100008849A (ko) * 2008-07-17 2010-01-27 삼성전자주식회사 통신 시스템에서 순환중복검사 방법 및 장치
US8261175B2 (en) 2008-11-14 2012-09-04 Intel Mobile Communications GmbH Method and apparatus for performing a CRC check
US8090901B2 (en) 2009-05-14 2012-01-03 Brocade Communications Systems, Inc. TCAM management approach that minimize movements
US8352829B1 (en) * 2009-06-02 2013-01-08 Juniper Networks, Inc. Regeneration of a packet CRC
US8599850B2 (en) 2009-09-21 2013-12-03 Brocade Communications Systems, Inc. Provisioning single or multistage networks using ethernet service instances (ESIs)
US20110239098A1 (en) * 2010-03-26 2011-09-29 Mediatek Singapore Pte. Ltd. Detecting Data Error
CN102543207B (zh) * 2010-12-17 2016-01-06 西安奇维测控科技有限公司 一种在闪存控制器中rs纠检错算法的高效利用方法
US9437328B2 (en) * 2012-11-30 2016-09-06 Silicon Motion Inc. Apparatus and method for applying at-speed functional test with lower-speed tester
US9252778B2 (en) * 2013-09-27 2016-02-02 Scaleo Chip Robust flexible logic unit
US9362950B2 (en) * 2014-05-02 2016-06-07 Infineon Technologies Ag High performance CRC calculation with small footprint
US20170250710A1 (en) * 2014-10-03 2017-08-31 Telefonaktiebolaget Lm Ericsson (Publ) Method and device for calculating a crc code in parallel
US9787434B2 (en) * 2014-12-11 2017-10-10 Mediatek Inc. Cyclic redundancy check device and method
US9960788B2 (en) * 2015-03-27 2018-05-01 Toshiba Memory Corporation Memory controller, semiconductor memory device, and control method for semiconductor memory device
CN109219928B (zh) * 2016-06-07 2022-06-28 三菱电机株式会社 数据处理装置、数据处理方法及计算机可读取的存储介质
US10454480B2 (en) 2016-08-03 2019-10-22 Silicon Mobility Embedded FPGA with multiple configurable flexible logic blocks instantiated and interconnected by abutment
US10116311B2 (en) 2016-08-03 2018-10-30 Silicon Mobility Embedded FPGA with multiple configurable flexible logic blocks instantiated and interconnected by abutment
US10666437B2 (en) * 2017-11-07 2020-05-26 Harris Solutions NY, Inc. Customizable encryption/decryption algorithm

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4117458A (en) * 1977-03-04 1978-09-26 Grumman Aerospace Corporation High speed double error correction plus triple error detection system
DK155702C (da) 1986-12-15 1989-11-13 Skiold Datamix A S Datamatstyret toerfodringsanlaeg, navnlig til anvendelse i svinestalde
US4809273A (en) * 1987-01-29 1989-02-28 International Business Machines Corporation Device for verifying operation of a checking code generator
JPH01265332A (ja) * 1988-04-18 1989-10-23 Fujitsu Ltd Crc並列演算回路の行列式生成方法
US5121396A (en) * 1988-10-27 1992-06-09 International Business Machines Corp. Preservation of crc integrity upon intentional data alteration during message transmission
JPH0385923A (ja) * 1989-08-30 1991-04-11 Fujitsu Ltd Crc演算方式
JP2592681B2 (ja) 1989-09-11 1997-03-19 日本電信電話株式会社 セル同期回路
EP0609595B1 (en) * 1993-02-05 1998-08-12 Hewlett-Packard Company Method and apparatus for verifying CRC codes by combination of partial CRC codes
JP3283403B2 (ja) * 1995-07-04 2002-05-20 沖電気工業株式会社 周期冗長検査方式の誤り検出符号生成装置及び誤り検出装置
JPH0964754A (ja) * 1995-08-21 1997-03-07 Nippon Telegr & Teleph Corp <Ntt> 誤り検出符号生成回路
US5768294A (en) * 1995-12-11 1998-06-16 International Business Machines Corporation Memory implemented error detection and correction code capable of detecting errors in fetching data from a wrong address
JP3269415B2 (ja) * 1997-01-22 2002-03-25 日本電気株式会社 Crc演算回路
JPH10215187A (ja) * 1997-01-29 1998-08-11 Nec Corp 誤り検出符号化復号装置および方法
US6236647B1 (en) * 1998-02-24 2001-05-22 Tantivy Communications, Inc. Dynamic frame size adjustment and selective reject on a multi-link channel to improve effective throughput and bit error rate
US5951707A (en) * 1997-06-27 1999-09-14 International Business Machines Corporation Method of partitioning CRC calculation for a low-cost ATM adapter
JP3613448B2 (ja) 1999-06-21 2005-01-26 株式会社エヌ・ティ・ティ・ドコモ データ伝送方法、データ伝送システム、送信装置および受信装置
JP2001168730A (ja) 1999-12-07 2001-06-22 Hitachi Ltd データ送受信装置
US6763492B1 (en) 2000-09-26 2004-07-13 Qualcomm Incorporated Method and apparatus for encoding of linear block codes
US6883131B2 (en) * 2001-09-28 2005-04-19 Sun Microsystems, Inc. XOR processing incorporating error correction code data protection
US6961893B1 (en) * 2002-03-28 2005-11-01 Adaptec, Inc. Separable cyclic redundancy check

Also Published As

Publication number Publication date
EP1499024A4 (en) 2007-05-23
JP3930479B2 (ja) 2007-06-13
US20050097432A1 (en) 2005-05-05
EP2175559A1 (en) 2010-04-14
DE60236896D1 (de) 2010-08-12
WO2003090362A1 (fr) 2003-10-30
EP1499024A1 (en) 2005-01-19
EP1499024B1 (en) 2010-06-30
US7428693B2 (en) 2008-09-23

Similar Documents

Publication Publication Date Title
JP3930479B2 (ja) 誤り検出符号化及び復号装置並びに除算装置
JP5126230B2 (ja) 誤り検出方法
TWI656746B (zh) 編碼器、解碼器、通訊系統及用於編碼資料之方法
JP4976397B2 (ja) 並列剰余演算器及び並列剰余演算方法
CN113110954A (zh) 一种crc码并行计算方法、装置及其应用
US7168024B2 (en) Data processing system and method
US8015478B2 (en) Data processing
EP1152540A1 (en) Error control device and method using cyclic code
JP3000811B2 (ja) 巡回符号化およびcrc装置とその処理方法
CN108574490B (zh) 计算循环冗余校验crc编码的方法及装置
EP1695218B1 (en) Checksum generation apparatus and method thereof
CN109327276A (zh) 安全编码方法、解码方法及设备
JPH05183447A (ja) 改善された誤まり検出符号化システム
JP4787732B2 (ja) 情報ビット列の除算方法及びその装置
JP2002261624A (ja) 巡回冗長検査演算方法及び巡回冗長検査演算回路
EP2180600A1 (en) Error detecting apparatus for decoding two layers of error detection
JP3077639B2 (ja) 誤り訂正バランス符号送受信システム
JP2543319B2 (ja) 符号化装置
JPH08213917A (ja) Bch符号の誤り訂正装置
US7865808B2 (en) Fast error detection system and related methods
EP1374416B1 (en) Recursive convolutional encoding
JP2600130B2 (ja) 誤り訂正回路
JP2534563B2 (ja) 許容誤り逐次訂正回路
JP2002185334A (ja) Bch符号を用いた誤り訂正方法及びその装置
JP2001251196A (ja) リードソロモン復号方法及びリードソロモン復号装置

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20061017

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20061215

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: 20070306

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20070308

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20100316

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20110316

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20110316

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20120316

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20130316

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20130316

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20140316

Year of fee payment: 7

LAPS Cancellation because of no payment of annual fees