JP3607116B2 - 演算処理装置 - Google Patents

演算処理装置 Download PDF

Info

Publication number
JP3607116B2
JP3607116B2 JP12267399A JP12267399A JP3607116B2 JP 3607116 B2 JP3607116 B2 JP 3607116B2 JP 12267399 A JP12267399 A JP 12267399A JP 12267399 A JP12267399 A JP 12267399A JP 3607116 B2 JP3607116 B2 JP 3607116B2
Authority
JP
Japan
Prior art keywords
data
arithmetic
calculation
storage means
result
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP12267399A
Other languages
English (en)
Other versions
JP2000311096A (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.)
Panasonic Corp
Panasonic Holdings Corp
Original Assignee
Panasonic Corp
Matsushita Electric Industrial Co 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 Panasonic Corp, Matsushita Electric Industrial Co Ltd filed Critical Panasonic Corp
Priority to JP12267399A priority Critical patent/JP3607116B2/ja
Priority to CN 00800598 priority patent/CN1300391A/zh
Priority to AU39881/00A priority patent/AU3988100A/en
Priority to EP00919165A priority patent/EP1096380A1/en
Priority to PCT/JP2000/002681 priority patent/WO2000067125A1/ja
Publication of JP2000311096A publication Critical patent/JP2000311096A/ja
Application granted granted Critical
Publication of JP3607116B2 publication Critical patent/JP3607116B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/60Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers
    • G06F7/72Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers using residue arithmetic
    • G06F7/724Finite field arithmetic
    • 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
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/65Purpose and implementation aspects
    • H03M13/6569Implementation on processors, e.g. DSPs, or software implementations
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Signal Processing (AREA)
  • Pure & Applied Mathematics (AREA)
  • Mathematical Optimization (AREA)
  • Mathematical Analysis (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Computational Mathematics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • General Engineering & Computer Science (AREA)
  • Error Detection And Correction (AREA)
  • Detection And Correction Of Errors (AREA)
  • Complex Calculations (AREA)

Description

【0001】
【発明の属する技術分野】
本発明は、無線通信機器等に搭載され、CRC演算を行う演算処理装置に関する。
【0002】
【従来の技術】
無線通信では、無線伝送中に発生するビット誤りを訂正するため、送信側にて、データに対して誤り訂正のための符号化処理を施し、受信側にて、誤り訂正符号に対する復号処理を施している。
【0003】
しかし、伝搬環境が悪く、極端に誤りが多く発生する場合、上記誤り訂正処理のみでは誤りを完全に訂正することは困難である。そこで、移動無線通信では、上記誤り訂正処理と併用して誤り検査処理を行い、誤りが残留しているか否かを検出している。そして、誤り検査処理の代表的なものにCRC(Cyclic Redundancy Check)がある。
【0004】
以下、CRCについて説明する。まず、CRC演算の符号化回路について説明する。図7は、生成多項式をG(X)=1+X+X としたときのCRC演算の符号化回路図である。
【0005】
図7に示すように、CRC演算の符号化回路におけるシフトレジスタの段数は、生成多項式の最高次数に等しい数となる。そして、各フリップフロップ(以下、「FF」という)の境界が、生成多項式の各次数に対応しており、LSB(Least Significant Bit:最下位ビット)からMSB(Most Significant Bit:最高位ビット)に向かう順に次数が高くなる。
【0006】
また、CRC演算の符号化回路は、生成多項式の1次以上の項の係数が「1」なら、その次数に対応した各FFの境界にEXOR(排他的論理和素子)が挿入される。
【0007】
次に、CRCの符号化動作及びCRCの復号動作について説明する。
【0008】
CRCの符号化動作では、まず、第1ステップとして、シフトレジスタの内容を全て「0」にリセットする。次に、第2ステップとして、入力データ1ビットに対し、シフトレジスタのMSBとのmod2加算(modulo2‐adder:1桁の2進数の加算)を行う。そして、第3ステップとして、第2ステップのmod2加算結果をシフトレジスタにシフトインとともに、最高次数以外のEXORに入力し、各FF出力とmod2加算を行い、結果を次段のFFに入力する。
【0009】
上記の第2ステップと第3ステップの処理を入力ビットがなくなるまで繰り返し、最終的に得られたシフトレジスタの内容がCRCの符号化結果であり、冗長ビットとして入力データに付け加えられる。
【0010】
一方、CRCの復号動作は、まず、上記CRCの符号化動作と同様の動作を行い、その結果得られたシフトレジスタの内容と受信した冗長ビットとを比較する。そして、比較の結果、一致した場合には、誤りは検出されないと判定され、一致しなければ、誤りが検出されたと判定される。
【0011】
ここで、生成多項式や冗長ビットのビット数、すなわち、シフトレジスタの段数は、システムによって様々であり、同じシステムの中でも複数の種類を使い分けて使用される場合もある。
【0012】
したがって、複数の種類のCRC演算に対応した専用ハードウェアを搭載するより、DSP(ディジタル信号処理プロセッサ)によりプログラマブルに処理する方が装置の小型化、軽量化を図ることができる。また、DSPは、携帯端末の小型化・軽量化・低価格化を実現するために、専用LSIで処理していた領域もDSP処理による1チップ化が図られている。
【0013】
従来のDSPにてCRC演算を実現させる場合、下記のオペレーションが必要となる。
【0014】
まず、第1オペレーションで、入力データをロードして第1レジスタに格納する。
【0015】
次に、第2オペレーションで、演算結果を格納している第2レジスタから最高次のビット位置を抽出して第3レジスタに格納する。
【0016】
次に、第3オペレーションで、第2レジスタをMSB側に1ビット論理シフトして、結果を第2レジスタに格納する。
【0017】
次に、第4オペレーションで、第1レジスタと第3レジスタとのmod2加算を行う。
【0018】
そして、第5オペレーションで、第4オペレーションの結果、「0」であれば第2レジスタの内容を更新せず、「1」であれば第2レジスタと生成多項式を格納している第4レジスタとのmod2加算結果を第2レジスタに格納する。
【0019】
このように、従来のDSPでは、CRC演算を実現するために、入力データ1ビット当たり少なくとも5オペレーション必要であり、それぞれを1マシンサイクルで実行した場合には、最低でも5マシンサイクル必要となる。実際には、第5オペレーションの条件分岐がDSPのパイプラインによる分岐ペナルティを起こすため、さらにその分だけマシンサイクルが増加する。CRC演算に要するDSPの演算量は、必要とするマシンサイクルに比例して増加する。
【0020】
【発明が解決しようとする課題】
ここで、近年、移動無線通信上で伝送されるビットレートは高速化する傾向にある。CRC演算に要するDSPの演算量は、ビットレートに比例して増加する。
【0021】
DSPによる演算量が増加すると、携帯端末のバッテリーを長時間持続させることが困難となる。また、既存のDSPの処理能力を超えてしまい、DSPによる1チップ化が不可能となる。演算量を増加させるためにDSPを高機能化させると、DSP自身のコストアップを招き、結果携帯端末の低価格化が実現できなくなる。
【0022】
本発明はかかる点に鑑みてなされたものであり、少ないハードウェアの投資で、DSPによるCRC演算を効率的に処理する演算処理装置を提供することを目的とする。
【0023】
【課題を解決するための手段】
本発明の骨子は、演算データと入力データとのmod2加算の演算結果に基づいて、演算データをMSB側に1ビットシフトさせたデータと生成多項式の係数とのmod2加算の演算結果、あるいは、演算データをMSB側に1ビットシフトさせたデータのいずれか一方を新たに演算データとして格納することである。
【0024】
【発明の実施の形態】
本発明の第1の態様に係る演算処理装置は、第1記憶手段に格納された演算データの最上位ビットと第2記憶手段に格納された入力データとの2進数加算を行う第1演算手段と、前記演算データを1ビット最上位ビット側にシフトしたシフトデータと第3記憶手段に格納された生成多項式の係数との2進数加算を行う第2演算手段と、前記第1演算手段の演算結果に基づき、前記第2演算手段の演算結果あるいは前記シフトデータのいずれかを選択し、新たな演算データとして前記第1記憶手段に格納する選択手段とを具備する構成を採る。
【0025】
この構成により、入力データ1ビットにつき1マシンサイクルでCRC演算を繰り返し実行することができるので、DSPによるCRC演算を効率よく実行することができ、DSPの1チップ化、装置の小型化・軽量化・低価格化、及び、バッテリーの長寿命化を実現することができる。
【0026】
本発明の第2の態様に係る演算処理装置は、第1記憶手段に格納された演算データの最上位ビットと第2記憶手段に格納された入力データとの2進数加算である第1演算を行い、前記演算データを1ビット最上位ビット側にシフトしたシフトデータと第3記憶手段に格納された生成多項式の係数との2進数加算である第2演算を行う第3演算手段と、前記第1演算の演算結果に基づき、前記第2演算の演算結果あるいは前記シフトデータのいずれかを選択し、新たな演算データとして前記第1記憶手段に格納する選択手段とを具備する構成を採る。
【0027】
この構成により、1ビット当たり2マシンサイクルでCRC演算を行い、1つの演算器で2度のmod2加算を行うことができるので、第1の態様よりも装置の構成を簡略化することができる。また、従来に比べて、DSPによるCRC演算を効率よく実行することができ、DSPの1チップ化、装置の小型化・軽量化・低価格化、及び、バッテリーの長寿命化を実現することができる。
【0028】
本発明の第3の態様は、第2の態様の演算処理装置において、選択手段は、第2演算の演算結果が入力されるまで、第1演算の演算結果を第4記憶手段に保持する構成を採る。
【0029】
この構成により、CRC演算時に生じる一時的なデータを高速に保持することができるので、2相クロックで動作させることにより、1つの演算器で、しかも、入力データ1ビット当たり1マシンサイクル相当の時間でCRC演算を実行することができる。
【0030】
本発明の第4の態様に係る演算処理装置は、第1記憶手段に格納された演算データを1ビット最上位ビット側にシフトしたシフトデータに第2記憶手段に格納された入力データを合併した値と、第3記憶手段に格納された生成多項式の係数に前記演算データの最上位ビットを合併した値との2進数加算を行う第4演算手段と、入力データと演算データの最上位ビットとの2進数加算結果に基づき、前記シフトデータと生成多項式の係数との2進数加算結果あるいは前記シフトデータのいずれかを選択し、新たな演算データとして前記第1記憶手段に格納する選択手段とを具備する構成を採る。
【0032】
これらの構成により、2種類のデータを合併してから演算することができるので、演算器を1つにして、1ビット当たり1マシンサイクルでCRC演算を行うことができ、第1の態様よりも装置の構成を簡略化することができる。
【0033】
本発明の第6の態様は、第1から第5のいずれかの演算処理装置において、第1記憶手段に格納される演算データの最上位ビットを所定位置に移動するシフト手段を具備する構成を採る。
【0034】
この構成により、任意のビットのCRC演算に対応させることができる。
【0035】
本発明の第7の態様は、第6の演算処理装置において、シフト手段はDSPの汎用シフタを構成要素とする構成を採る。
【0036】
本発明の第8の態様は、第1から第7のいずれかの演算処理装置において、演算手段のうち、少なくとも一つがALUを構成要素とする構成を採る。
【0037】
本発明の第9の態様は、第1から第8のいずれかの演算処理装置において、記憶手段のうち、少なくとも一つがDSPの汎用レジスタを構成要素とする構成を採る。
【0038】
本発明の第10の態様は、第1から第9のいずれかの演算処理装置において、記憶手段のうち、少なくとも一つがシフトレジスタを構成要素とする構成を採る。
【0039】
これらの構成により、CRC演算においてDSPの汎用演算器を用いることができるので、CRCアクセラレータのためのハード規模投資量を削減でき、一層の装置の小型化・軽量化・低価格化を実現することができる。
【0040】
本発明の第11の態様に係る無線通信端末装置は、第1から第10のいずれかの態様の演算処理装置を搭載する構成を採る。
【0041】
本発明の第12の態様に係る無線通信基地局装置は、第11の態様の無線通信端末装置と無線通信を行う構成を採る。
【0042】
本発明の第13の態様に係る無線通信基地局装置は、第1から第10のいずれかの態様の演算処理装置を搭載する構成を採る。
【0043】
本発明の第14の態様に係る無線通信端末装置は、第13の態様の無線通信端末装置と無線通信を行う構成を採る。
【0044】
これらの構成によりCRC演算を効率的に行うことができる無線通信を行うことができる。
【0045】
本発明の第15の態様に係るコンピュータ読み取り可能な記録媒体は、コンピュータを、第1記憶手段に格納された演算データの最上位ビットと第2記憶手段に格納された入力データとの2進数加算を行う第1演算手段と、前記演算データを1ビット最上位ビット側にシフトしたシフトデータと第3記憶手段に格納された生成多項式の係数との2進数加算を行う第2演算手段と、前記第1演算手段の演算結果に基づき、前記第2演算手段の演算結果あるいは前記シフトデータのいずれかを選択し、新たな演算データとして前記第1記憶手段に格納する選択手段として機能させるためのプログラムを記録した構成を採る。
【0046】
以下、本発明の実施の形態について、添付図面を参照して詳細に説明する。
【0047】
(実施の形態1)
図1は、本実施の形態に係る演算処理装置の構成を示すブロック図である。
【0048】
図1において、演算データを格納する演算データ記憶部101と、入力データを格納する入力データ記憶部102と、生成多項式の係数を格納する生成多項式記憶部103と、mod2加算を行う演算器104、105と、入力した2つのデータのいずれか一方を出力する選択部106とから主に構成される。
【0049】
以下、3bitCRCの場合を例に、各構成部が行う処理を具体的に説明する。
【0050】
NbitCRCの場合、演算データ記憶部101及び生成多項式記憶部103は少なくともNビットで構成され、演算器105は少なくともNビットのmod2加算を行う能力を有する必要がある。例えば、3bitCRCの場合、演算データ記憶部101及び生成多項式記憶部103は、少なくとも3ビットで構成され、演算器105は少なくとも3ビットのmod2加算を行う。
【0051】
演算データ記憶部101に格納される演算データをMSBから順に{a、a、a}とした場合、aが3次と2次との境界、aが2次と1次との境界、aが1次と0次との境界に対応する。
【0052】
入力データ記憶部102からは、CRC対象となる入力データが先頭から1マシンサイクル毎に1ビットづつ順に出力される。以下、入力データ記憶部102に格納される入力データの各時点における先頭の1ビットを{b}とする。
【0053】
生成多項式記憶部103には、(最高次数−1)次以下の項の係数が、次数が最も高いものをMSBとして、順に格納される。例えば、生成多項式の係数をMSBから順に{c、c、c}とし、生成多項式としてG(X)=1+X+Xを用いた場合、{c、c、c}={0、1、1}が格納される。
【0054】
演算器104は、演算データ記憶部101に格納された演算データのMSB{a}と、入力データ記憶部102に格納された入力データ{b}とのmod2加算を行い、1ビットの演算結果{a^b}を選択部106に出力する。
【0055】
演算器105は、演算データ記憶部101に格納された演算データをMSB側に1ビットシフトさせたデータ(以下、「シフトデータ」という){a、a、0}と、生成多項式記憶部103に格納された生成多項式の係数{c、c、c}とのmod2加算を行い、演算結果{a^c、a^c、0^c}を選択部106に出力する。
【0056】
選択部106は、演算器104の演算結果{a^b}に基づいて、シフトデータ{a、a、0}と演算器105の演算結果{a^c、a^c、0^c}のいずれか一方を選択し、選択したものを新たに演算データ{a、a、a}として演算データ記憶部101に格納する。例えば、演算器104の演算結果が「0」であればシフトデータを演算データ記憶部101に格納し、「1」であれば演算器105の演算結果を演算データ記憶部101に格納する。
【0057】
次に、本実施の形態に係る演算処理装置の処理動作について、図2のフロー図を用いて説明する。なお、図2では、3bitCRCの場合を示し、演算データをA[2:0]、入力データの各時点における先頭の1ビットをB、生成多項式の係数をC[2:0]として表す。
【0058】
まず、ST151で、記憶部101に格納される演算データA[2:0]を例えばA(0,0,0)等に初期化する。また、CRC対象となる入力データを記憶部102に読み込ませる。また、生成多項式の係数C[2:0]を記憶部103に設定する。例えば、生成多項式がG(X)=1+X+Xである場合、C(0,1,1)となる。
【0059】
次に、ST152で、演算器104にて、A[2]とBとのmod2加算:D=A[2]^Bが行われ、1ビットの演算結果Dが選択部106に出力される。
【0060】
次に、ST153からST155で、選択部106にて、Dの値に基づくAの更新処理が行われる。すなわち、D=0の場合、シフトデータA<<1を新たなAとする処理:A=A<<1が行われ、D=1の場合、演算器104にて行われたA<<1とCとのmod2加算の結果を新たな演算データとする処理:A=(A<<1)^Cが行われる。
【0061】
そして、ST156の判断で入力データがなくなるまで、ST152からST155までの処理が繰り返され、ST157で、最終的に得られるAが、3bitCRCの演算結果である。
【0062】
このように、入力データ1ビットにつき1マシンサイクルでCRC演算を繰り返し実行することにより、DSPによるCRC演算を効率よく実行することができ、DSPの1チップ化、携帯端末の小型化・軽量化・低価格化、及び、バッテリーの長寿命化を実現することができる。
【0063】
(実施の形態2)
図3は、本実施の形態に係る演算処理装置の構成を示すブロック図である。なお、図3において、図1と共通の構成部分については図1と同一の符号を付して説明を省略する。
【0064】
図3に示す演算処理装置は、図1に示す演算処理装置と比較して、演算器104、105の代りに、選択部201、202、演算器203、演算結果記憶部204を追加した構成を採る。
【0065】
図3に示す演算処理装置は、図1に示す演算処理装置における2つの演算器104、105の処理を演算器203で兼用し、1ビット当たり2マシンサイクルでCRC演算を実行する。選択部201及び選択部202は、1マシンサイクル目と2マシンサイクル目とで、演算器203に入力するデータを切替える。
【0066】
以下、各マシンサイクルにおける各部の動作について説明する。
【0067】
1マシンサイクル目において、選択部201は、入力データ記憶部102に格納された入力データを演算器203に出力する。選択部202は、演算データ記憶部101に格納された演算データのMSBを演算器203に出力する。演算器203は、入力データと演算データのMSBとのmod2加算を行い、演算結果を演算結果記憶部204に格納する。
【0068】
2マシンサイクル目において、選択部201は、演算データ記憶部101に格納された演算データを演算器203に出力する。選択部202は、生成多項式記憶部103に格納された生成多項式の係数を演算器203に出力する。演算器203は、演算データと生成多項式の係数とのmod2加算を行い、演算結果を選択部106に出力する。
【0069】
また、2マシンサイクル目において、選択部106は、演算結果記憶部204に格納された演算結果に基づいて、シフトデータと演算器203の演算結果のいずれか一方を選択し、選択したものを新たに演算データとして演算データ記憶部101に格納する。例えば、演算結果記憶部204に格納された演算結果が「0」であればシフトデータを演算データ記憶部101に格納し、「1」であれば演算器105の演算結果を演算データ記憶部101に格納する。
【0070】
このように、1ビット当たり2マシンサイクルでCRC演算を行い、1つの演算器で2度のmod2加算を行うことにより、実施の形態1よりも装置の構成を簡略化することができる。また、従来に比べて、DSPによるCRC演算を効率よく実行することができ、DSPの1チップ化、携帯端末の小型化・軽量化・低価格化、及び、バッテリーの長寿命化を実現することができる。
【0071】
なお、演算処理装置を2相クロックで動作させ、演算結果記憶部204をラッチ(latch circuit)で構成し、1相目のクロックでラッチさせ、上記1サイクル目に相当する各部の処理を1相目のクロックで行い、上記2サイクル目に相当する各部の処理を2相目のクロックで行わせることにより、本実施の形態に係る演算処理装置は、入力データ1ビット当たり1マシンサイクル相当の時間でCRC演算を実行することができる。
【0072】
(実施の形態3)
図4は、本実施の形態に係る演算処理装置の構成を示すブロック図である。なお、図4において、図1と共通の構成部分については図1と同一の符号を付して説明を省略する。
【0073】
図4に示す演算処理装置は、図1に示す演算処理装置と比較して、演算器104、105の代りに、演算器301を追加した構成を採る。
【0074】
図4に示す演算処理装置は、図1に示す演算処理装置における2つの演算器104、105の処理を演算器301で兼用し、2種類のデータをマージ(merge:合併)してから演算することにより、1ビット当たり1マシンサイクルでCRC演算を実行する。
【0075】
以下、3bitCRCの場合を例に、各構成部が行う処理を具体的に説明する。
【0076】
3bitCRCの場合、演算データ記憶部101及び生成多項式記憶部103は、少なくとも3ビットで構成され、演算器301は少なくとも4ビットのmod2加算を行う。
【0077】
演算データ記憶部101に格納される演算データをA[2:0]、入力データ記憶部102に格納される入力データの各時点における先頭の1ビットをB、生成多項式記憶部103に格納される生成多項式の係数をC[2:0]とする。
【0078】
演算器301に入力されるデータの一方は、演算データ記憶部101に格納された演算データを1ビットMSB側に論理シフトしたデータ{A[1]、A[0]、0}と入力データ記憶部102に格納された1ビットの入力データ{B}とをマージした値{A[1]、A[0]、0、B}である。また、他方は、生成多項式記憶部103に格納された生成多項式の係数{C[2]、C[1]、C[0]}と演算データ記憶部101に格納された演算データのMSB{A[2]}とをマージした値{C[2]、C[1]、C[0]、A[2]}である。
【0079】
演算器301は、{A[1]、A[0]、0、B}と{C[2]、C[1]、C[0]、A[2]}とのmod2加算を行い、加算結果を選択部106に出力する。
【0080】
選択部106は、演算器301の演算結果のLSB{A[2]^B}に基づいて、シフトデータ{A[1]、A[0]、0}と演算器301のLSB以外の演算結果{A[1]^C[2]、A[0]^C[1]、0^C[0]}のいずれか一方を選択し、選択したものを新たに演算データ{A[2:0]}として演算データ記憶部101に格納する。例えば、{A[2]^B}が「0」であれば{A[1]、A[0]、0}を演算データ記憶部101に格納し、「1」であれば{A[1]^C[2]、A[0]^C[1]、0^C[0]}を演算データ記憶部101に格納する。
【0081】
このように、2種類のデータをマージしてから演算することにより、演算器を1つにして、1ビット当たり1マシンサイクルでCRC演算を行うことができ、実施の形態1よりも装置の構成を簡略化することができる。
【0082】
(実施の形態4)
図5は、本実施の形態に係る演算処理装置の構成を示すブロック図である。なお、図5において、図1と共通の構成部分については図1と同一の符号を付して説明を省略する。
【0083】
図5に示す演算処理装置は、図1に示す演算処理装置と比較して、シフト部401を追加した構成を採る。
【0084】
シフト部401は、生成多項式の(最高次数−1)の値だけ演算データ記憶部101に格納される演算データをLSB側に論理シフトし、LSBの値を演算器104に出力する。
【0085】
これにより、任意のビットのCRC演算に対応させることができる。
【0086】
(実施の形態5)
図6は、本実施の形態に係る演算処理装置の構成を示すブロック図である。なお、図6において、図5と共通の構成部分については図5と同一の符号を付して説明を省略する。
【0087】
図6に示す演算処理装置は、図5に示す演算処理装置と比較して、演算データ記憶部101を汎用レジスタ501にて構成し、入力データ記憶部102をRAM502とシフトレジスタ503にて構成し、生成多項式記憶部103をROM504と汎用レジスタ505にて構成し、シフト部401を汎用シフタ506にて構成し、演算器105をALU(Arithmetic Logic Unit)507にて構成している。
【0088】
以下、生成多項式としてG(X)=1+X+Xを用い、16ビットの固定小数点DSPを用いて3bitCRCを実現する場合を例に、各構成部が行う処理を具体的に説明する。
【0089】
汎用レジスタ501には、演算データA[15:0]が格納され、CRC演算を行う前に初期値A[15:0]=0×0000が設定される。
【0090】
RAM502には、入力データが16ビット詰めでMSBから先頭にデータが数ワード分格納され、CRC演算を行う前に、1ワード分の入力データB[15:0]がシフトレジスタ503に転送される。
【0091】
シフトレジスタ503は、CRC演算が実行されると、1マシンサイクルに1回、MSBの値を演算器104に出力し、同時にシフトアップする。
【0092】
ROM504には、少なくとも1つの生成多項式の係数が格納され、CRC演算を行う前に、予めDSPが指示した生成多項式が汎用レジスタ505に転送される。本例の場合、ROM504には{0、1、1}が格納される。
【0093】
汎用レジスタ505は、ROM504の出力が16ビットに満たない場合、生成多項式下位側に、残りの上位ビットを零詰めして格納する。3bitCRCの場合、汎用レジスタ505は、C[15:0]=0×0003を格納する。
【0094】
汎用シフタ506は、生成多項式の(最高次数−1)の値だけ汎用レジスタ501に格納された演算データA[15:0]をLSB側に論理シフトし、LSBの値を演算器104に出力する。本例の場合、汎用シフタ506はA[2]を出力する。
【0095】
ALU507には、汎用レジスタ501に格納された演算データを1ビットMSB側に論理シフトした値であるシフトデータ{A[14:0]、0}が常に固定配線で入力される。また、ALU507には、汎用レジスタ505に格納された生成多項式の係数C[15:0]が入力される。ALU507は、{A[14:0]、0}とC[15:0]とのmod2加算を行い、演算結果を選択部106に出力する。
【0096】
選択部106には、ALU507の演算結果と、シフトデータが常に固定配線で入力される。選択部106は、演算器104の演算結果に基づいて、ALU507の演算結果とシフトデータのいずれか一方を選択し、選択したものを新たに演算データとして汎用レジスタ501に格納する。例えば、演算器104の演算結果が「0」であればシフトデータを汎用レジスタ501に格納し、「1」であればALU507の演算結果を汎用レジスタ501に格納する。
【0097】
ここで、汎用レジスタ501、505は、CRC演算以外における途中の演算結果を保存できる。
【0098】
シフトレジスタ503は、割り算命令等、DSPのCRC演算以外の命令と兼用できる。
【0099】
汎用シフタ506は、CRC演算以外のシフト演算実行命令時は、汎用レジスタ群やメモリ(RAM又はROM)等からデータを入力してシフト演算を行い、演算結果を汎用レジスタやメモリ等に書込みを行う。
【0100】
ALU507は、CRC演算以外のALU演算実行命令時は、汎用レジスタ群やメモリ(RAM又はROM)等からデータを入力してALU演算を行い、演算結果を汎用レジスタやメモリ等に書込みを行う。
【0101】
このように、CRC演算にDSPの汎用レジスタ、シフトレジスタ、汎用シフタ、ALU等を適宜用いることにより、演算処理装置をLSI化する場合、チップ面積をさらに削減することができ、コストを低減することができる。
【0102】
なお、上記各実施の形態においては、生成多項式の次数の高い方をMSB側に格納したが、LSB側に格納して適宜変更を施すことも可能である。
【0103】
また、無線通信の基地局装置あるいは端末装置のチャネル復号部に上記各実施の形態に係る演算処理装置のいずれかを組み込むことにより、チャネル符号化部、チャネル復号部及びタイミング制御部等を1チップのDSPのソフトウェアで形成できるため、装置における部品点数を削減でき、装置の小型化・軽量化・低価格化を図ることができる。
【0104】
【発明の効果】
以上説明したように、本発明の演算処理装置は、入力データ1ビットにつき1又は2マシンサイクルでCRC演算を繰り返し実行することができるので、DSPによるCRC演算を効率よく実行することができ、DSPの1チップ化、携帯端末の小型化・軽量化・低価格化、及び、バッテリーの長寿命化を実現することができる。
【図面の簡単な説明】
【図1】本発明の実施の形態1に係る演算処理装置の構成を示すブロック図
【図2】上記実施の形態に係る演算処理装置の処理動作を示すフロー図
【図3】本発明の実施の形態2に係る演算処理装置の構成を示すブロック図
【図4】本発明の実施の形態3に係る演算処理装置の構成を示すブロック図
【図5】本発明の実施の形態4に係る演算処理装置の構成を示すブロック図
【図6】本発明の実施の形態5に係る演算処理装置の構成を示すブロック図
【図7】生成多項式G(X)=1+X+X のCRC演算の符号化回路図
【符号の説明】
101 演算データ記憶部
102 入力データ記憶部
103 生成多項式記憶部
104、105、203、301 演算器
106、201、202 選択部
204 演算結果記憶部
401 シフト部
501 汎用レジスタ
503 シフトレジスタ
505 汎用レジスタ
506 汎用シフタ
507 ALU

Claims (14)

  1. 第1記憶手段に格納された演算データの最上位ビットと第2記憶手段に格納された入力データとの2進数加算を行う第1演算手段と、前記演算データを1ビット最上位ビット側にシフトしたシフトデータと第3記憶手段に格納された生成多項式の係数との2進数加算を行う第2演算手段と、前記第1演算手段の演算結果に基づき、前記第2演算手段の演算結果あるいは前記シフトデータのいずれかを選択し、新たな演算データとして前記第1記憶手段に格納する選択手段とを具備することを特徴とする演算処理装置。
  2. 第1記憶手段に格納された演算データの最上位ビットと第2記憶手段に格納された入力データとの2進数加算である第1演算を行い、前記演算データを1ビット最上位ビット側にシフトしたシフトデータと第3記憶手段に格納された生成多項式の係数との2進数加算である第2演算を行う第3演算手段と、前記第1演算の演算結果に基づき、前記第2演算の演算結果あるいは前記シフトデータのいずれかを選択し、新たな演算データとして前記第1記憶手段に格納する選択手段とを具備することを特徴とする演算処理装置。
  3. 選択手段は、第2演算の演算結果が入力されるまで、第1演算の演算結果を第4記憶手段に保持することを特徴とする請求項2記載の演算処理装置。
  4. 第1記憶手段に格納された演算データを1ビット最上位ビット側にシフトしたシフトデータに、第2記憶手段に格納された入力データを合併した値と、第3記憶手段に格納された生成多項式の係数に、前記演算データの最上位ビットを合併した値との2進数加算を行う第4演算手段と、入力データと演算データの最上位ビットとの2進数加算結果に基づき前記シフトデータと生成多項式の係数との2進数加算結果あるいは前記シフトデータのいずれかを選択し、新たな演算データとして前記第1記憶手段に格納する選択手段とを具備することを特徴とする演算処理装置。
  5. 第1記憶手段に格納される演算データの最上位ビットを所定位置に移動するシフト手段を具備することを特徴とする請求項1から請求項4のいずれかに記載の演算処理装置。
  6. シフト手段はDSPの汎用シフタを構成要素とすることを特徴とする請求項5記載の演算処理装置。
  7. 演算手段のうち、少なくとも一つがALUを構成要素とすることを特徴とする請求項1から請求項6のいずれかに記載の演算処理装置。
  8. 記憶手段のうち、少なくとも一つがDSPの汎用レジスタを構成要素とすることを特徴とする請求項1から請求項7のいずれかに記載の演算処理装置。
  9. 記憶手段のうち、少なくとも一つがシフトレジスタを構成要素とすることを特徴とする請求項1から請求項8のいずれかに記載の演算処理装置。
  10. 請求項1から請求項9のいずれかに記載の演算処理装置を搭載することを特徴とする無線通信端末装置。
  11. 請求項10記載の無線通信端末装置と無線通信を行うことを特徴とする無線通信基地局装置。
  12. 請求項1から請求項9のいずれかに記載の演算処理装置を搭載することを特徴とする無線通信基地局装置。
  13. 請求項12記載の無線通信基地局装置と無線通信を行うことを特徴とする無線通信端末装置。
  14. コンピュータを、第1記憶手段に格納された演算データの最上位ビットと第2記憶手段に格納された入力データとの2進数加算を行う第1演算手段と、前記演算データを1ビット最上位ビット側にシフトしたシフトデータと第3記憶手段に格納された生成多項式の係数との2進数加算を行う第2演算手段と、前記第1演算手段の演算結果に基づき、前記第2演算手段の演算結果あるいは前記シフトデータのいずれかを選択し、新たな演算データとして前記第1記憶手段に格納する選択手段として機能させるためのプログラムを記録したコンピュータ読み取り可能な記録媒体。
JP12267399A 1999-04-28 1999-04-28 演算処理装置 Expired - Fee Related JP3607116B2 (ja)

Priority Applications (5)

Application Number Priority Date Filing Date Title
JP12267399A JP3607116B2 (ja) 1999-04-28 1999-04-28 演算処理装置
CN 00800598 CN1300391A (zh) 1999-04-28 2000-04-25 运算处理装置
AU39881/00A AU3988100A (en) 1999-04-28 2000-04-25 Processor
EP00919165A EP1096380A1 (en) 1999-04-28 2000-04-25 Processor
PCT/JP2000/002681 WO2000067125A1 (fr) 1999-04-28 2000-04-25 Processeur

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP12267399A JP3607116B2 (ja) 1999-04-28 1999-04-28 演算処理装置

Publications (2)

Publication Number Publication Date
JP2000311096A JP2000311096A (ja) 2000-11-07
JP3607116B2 true JP3607116B2 (ja) 2005-01-05

Family

ID=14841813

Family Applications (1)

Application Number Title Priority Date Filing Date
JP12267399A Expired - Fee Related JP3607116B2 (ja) 1999-04-28 1999-04-28 演算処理装置

Country Status (5)

Country Link
EP (1) EP1096380A1 (ja)
JP (1) JP3607116B2 (ja)
CN (1) CN1300391A (ja)
AU (1) AU3988100A (ja)
WO (1) WO2000067125A1 (ja)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1148650A1 (en) 2000-04-14 2001-10-24 Matsushita Electric Industrial Co., Ltd. Crc operation unit and crc operation method
US6658847B2 (en) 2000-10-05 2003-12-09 Nissan Motor Co., Ltd. Control of supercharger
US7124351B2 (en) * 2002-12-04 2006-10-17 Stmicroelectronics Asia Pacific Pte. Ltd. Software instructions utilizing a hardwired circuit
CN100517214C (zh) * 2007-05-30 2009-07-22 北京天碁科技有限公司 一种实现二进制多项式运算的硬件配置方法及硬件系统
CN102681818A (zh) * 2011-03-09 2012-09-19 上海华虹集成电路有限责任公司 基于ucps加密算法的128比特模加电路及控制方法
US20210215773A1 (en) * 2018-05-23 2021-07-15 Sakai Display Products Corporation Connection system

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS51132048A (en) * 1975-05-13 1976-11-16 Mitsubishi Electric Corp Computing circuit of cyclic code
JP3252029B2 (ja) * 1993-08-04 2002-01-28 松下電器産業株式会社 符号化装置及び符号化方法

Also Published As

Publication number Publication date
EP1096380A1 (en) 2001-05-02
AU3988100A (en) 2000-11-17
WO2000067125A1 (fr) 2000-11-09
JP2000311096A (ja) 2000-11-07
CN1300391A (zh) 2001-06-20

Similar Documents

Publication Publication Date Title
US5170399A (en) Reed-Solomon Euclid algorithm decoder having a process configurable Euclid stack
US5946361A (en) Viterbi decoding method and circuit with accelerated back-tracing and efficient path metric calculation
US20130246887A1 (en) Memory controller
KR100439211B1 (ko) 연산처리장치
US8989242B2 (en) Encoding/decoding processor and wireless communication apparatus
US6754870B2 (en) CRC operation unit and CRC operation method
EP1974271A1 (en) Error detection / correction circuit and corresponding method
JP3274668B2 (ja) 演算処理装置及び演算処理方法
US7571370B2 (en) Configurable, fast, 32-bit CRC generator for 1-byte to 16-bytes variable width input data
JP3607116B2 (ja) 演算処理装置
US7124351B2 (en) Software instructions utilizing a hardwired circuit
KR100864363B1 (ko) 부호화 회로 및 디지털 신호 처리 회로
KR100747487B1 (ko) 리드-솔로몬 복호 장치 및 수정된 유클리드 알고리즘연산회로
JP3512175B2 (ja) Crc演算装置、およびcrc演算方法
JP3191442B2 (ja) ビタビ復号用演算装置
US6023782A (en) RAM based key equation solver apparatus
JP2001186021A (ja) 誤り検出装置及びそれを内蔵した演算処理装置
JP2008112522A (ja) 誤り検出装置および誤り検出方法
JP3252029B2 (ja) 符号化装置及び符号化方法
KR100202949B1 (ko) 리드 솔로몬 디코더의 에러 정정 시스템
KR100414152B1 (ko) 프로그래머블 프로세서에서의 비터비 디코딩 연산방법 및그 연산방법을 실행하기 위한 연산회로
KR100192800B1 (ko) 리드 솔로몬 디코더의 다항식 평가 시스템 및 그 방법
JP3595271B2 (ja) 誤り訂正復号方法および装置
WO2002056480A1 (fr) Decodeur de viterbi
Steen Error correction for voice grade data communication using a communication processor

Legal Events

Date Code Title Description
A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20040116

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20041006

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees