JP2000081989A - プロセッサおよび該プロセッサを用いた巡回符号化処理方法 - Google Patents

プロセッサおよび該プロセッサを用いた巡回符号化処理方法

Info

Publication number
JP2000081989A
JP2000081989A JP10252463A JP25246398A JP2000081989A JP 2000081989 A JP2000081989 A JP 2000081989A JP 10252463 A JP10252463 A JP 10252463A JP 25246398 A JP25246398 A JP 25246398A JP 2000081989 A JP2000081989 A JP 2000081989A
Authority
JP
Japan
Prior art keywords
data
register
bit
input
exclusive
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP10252463A
Other languages
English (en)
Inventor
Yuki Inoue
由紀 井上
Atsushi Kiuchi
淳 木内
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.)
Hitachi Ltd
Original Assignee
Hitachi 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 Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP10252463A priority Critical patent/JP2000081989A/ja
Publication of JP2000081989A publication Critical patent/JP2000081989A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Detection And Correction Of Errors (AREA)
  • Error Detection And Correction (AREA)

Abstract

(57)【要約】 【課題】 キャリフラグとビット演算命令を行うビット
の位置を固定としても、情報ビット列を格納するレジス
タを事前にシフト演算をする必要がない簡単な構成のプ
ロセッサ、および、処理量を削減しプログラムサイズを
大幅に縮小することが可能な巡回符号化処理方法を提供
すること。 【解決手段】 第1〜3のデータを保持するための複数
のレジスタ(汎用レジスタ110)と、2入力ポートで
受信したデータをシフトする入力シフタ(109,119)
を持つ算術論理演算装置(108)と、受信したデータを
シフトするビット処理装置(111)と、前記入力シフ
タの一方からシフトアウトしたデータとビット処理装置
からシフトアウトしたデータの排他的論理演算を行う排
他的論理和演算回路(XOR回路112)と、該排他的
論理和演算回路からの出力データを格納するステータス
レジスタ(113)を有する。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、ビット演算命令を
備えたプロセッサに係り、特に、簡単な構成で、演算処
理量を削減するとともに、プログラムサイズを縮小する
ことが可能なプロセッサおよび該プロセッサを用いた巡
回符号化処理方法に関する。
【0002】
【従来の技術】従来、1ビットのみで行う論理演算であ
るビット演算命令を使用する処理として、誤り訂正技術
の1つである巡回符号化処理が知られている。以下、具
体的な例をあげて巡回符号化処理を説明する。巡回符号
の詳細に関しては、例えば、電子情報通信学会編 今井
秀樹著「符号理論」PP.106ー120(平成6年6月10日
電子情報通信学会)を参照されたい。例えば、生成多項
式G(X)=x3+x+1の(7、4)巡回符号化処理
において、情報ビット列“1100”が与えられると、
巡回符号化処理によって生成されるパリティビット列
は、“010”となる。つまり、巡回符号化処理におい
て、入力は情報ビット列であり、出力はパリティビット
列である。
【0003】図3は上記の例の巡回符号化処理を示した
図であり、また、図4は汎用的に使用されているC言語
で記述したプログラムである。以下、図3、図4を用い
て巡回符号化処理を説明する。図4の巡回符号化処理を
実行するプログラムは大きく分けて2つの処理、すなわ
ち、変数にデータをセットする「初期化処理」と、パリ
ティビットを生成する「剰余算出処理」を実行する命令
列から構成される。図4において、「初期化処理」を実
行する命令列は、命令1101〜命令1106であり、
「剰余算出処理」を実行する命令列は、命令1107〜
命令1112である。
【0004】始めに、「初期化処理」を実行する命令列
について説明する。命令1101は変数を宣言する命令
である。具体的には、geneRegは生成多項式の係
数を格納する変数であり、parityRegは剰余多
項式の係数を格納する変数であり、InfoREGは情
報ビット列を格納する変数であり、flagはフラグを
表す変数であり、counterはカウンタを表す変数
である。変数geneRegおよび変数parityR
egは、図5の(a)のように、多項式の各々の次数の
係数を格納している。具体的には、変数geneReg
および変数parityRegは、LSBビットから順
にそれぞれの多項式のx2、x、定数項の係数が格納さ
れ、InfoRegには情報ビット列が格納される。
【0005】情報ビット列は、図5の(b)に示すよう
に、メモリ上のInformation_arrayに
格納されており、初期化処理の時に該メモリ上のInf
ormation_arrayからInfoRegに転
送される。命令1102はメモリに格納されている情報
ビットを指すポインタを宣言している命令である。命令
1103はgeneRegに生成多項式の係数を設定す
る命令であり、命令1104はgeneRegに0を格
納しgeneRegを初期化している。命令1105は
ポインタをInformation_arrayの先頭
に設定する命令であり、命令1106は情報ビットをI
nfoRegに転送している命令である。
【0006】次に、「剰余算出処理」を実行する命令列
について説明する。剰余算出処理では、上記初期化処理
における命令1101〜命令1106でセットされたデ
ータを使用して演算を実行する。命令1107は繰り返
し命令であり、命令1108から命令1112までの命
令が情報ビット数に等しい回数繰り返される。本例で
は、情報ビット列“1100”のビット数が4ビットで
あるから4回繰り返される。また、命令1108〜命令
1112は、図3で示している割り算のブロックに相当
する。命令1108は条件判定に使用するフラグを生成
する命令であり、図3で図示した演算1の部分に相当す
る。フラグを生成する処理は、具体的には、情報ビット
列のLSBビットとparityRegのLSBビット
とで排他的論理和演算を行う処理であり、flagの値
は「0」または「1」の2値の何れかである。
【0007】命令1109は、parityRegを1
ビット右にシフトする命令であり、図3で図示した演算
2に相当する。命令1110は、InfoRegを1ビ
ット右にシフトする命令である。命令1111は条件判
定を行う命令であり、flagの値が「1」の場合は、
命令1112を実行しflagの値が「0」の場合は命
令1112を実行しない。
【0008】命令1112は、geneRegとpar
ityRegに格納されているデータで排他的論理和演
算を行い、演算結果をparityRegに格納する命
令である。命令1111と命令1112は図3で図示し
た演算3に相当する。図3で図示したように、割り算の
ブロックはビット論理演算とシフト演算で構成されてい
る。また、図4に示すように剰余算出処理の処理量は情
報ビット数に比例するため(繰り返しが情報ビット数の
回数分繰り返される)、剰余算出処理を高速に実行する
ためには、命令1107〜1112までの処理を低減す
るようなビット演算命令が必要である。
【0009】従来のビット操作命令として、例えば、日
立製作所H8/330ハードウェアマニュアルによる
と、H8/330にはBXOR命令がある。これは、汎
用レジスタの指定された1ビットとキャリフラグとの排
他的論理和をとり、その結果をキャリフラグとしてステ
ータスレジスタに格納するという命令である。ここで、
ビット番号はイミディエートデータで指定する。この命
令を使用して図3の割り算ブロックの演算、つまり、図
4の命令1108〜命令1112までを最も効率よく行
うためには、次の3つの動作(1)〜(3)の繰り返し
となる。
【0010】ここで、剰余ビット列parityReg
を格納するレジスタをr1とし、情報ビット列Info
Regを格納するレジスタをr2とし、生成多項式の係
数データを格納するレジスタをr3とする。まず、
(1)レジスタr1を1ビットシフトとし、キャリフラ
グにデータを出力する。次に、(2)レジスタr2のN
ビット目(N=0、1、2、3)とキャリフラグとでB
XOR命令を行う。(3)(2)演算後のキャリフラグ
の結果が1の場合は、レジスタr1とレジスタr3で排
他的論理和演算を行い、演算結果をレジスタr1に格納
する。 上記の割り算ブロックの演算のうち、(3)の演算は、
例えば日立製作所SH-DSP(SH7410)プログ
ラミングマニュアルによると、SH7410のように、
条件付き論理演算命令が実行可能なプロセッサであれ
ば、高速演算が可能である。
【0011】また(1)および(2)の演算は、(3)
の命令で必要となる条件の生成を行うものであり、生成
されたフラグはキャリフラグとしてステータスレジスタ
に格納する必要がある。そこで、上記の通りBXOR命
令を使用すると、ある程度、割り算ブロックの演算を高
速化できる。
【0012】
【発明が解決しようとする課題】しかし、ここで問題と
なるのは、(2)の演算では、キャリフラグとXOR演
算を行うビット番号はイミディエート値で指定する点で
ある。上記の方法で割り算ブロックの演算を行うと、割
り算ブロックの演算を行う度に(2)で指定するビット
番号を毎回変える必要があり、プログラムサイズが増大
する。また、割り算ブロックの演算を行う他の方法とし
て、キャリフラグとBXOR命令を行うレジスタのビッ
ト番号を最下位ビットに固定することもできるが、その
ためには、上記(2)のBXOR命令の前で予めレジス
タr2を1ビットシフトする命令が必要になり、結果的
に、割り算ブロックの演算の処理量が増加するという問
題が生じる。
【0013】本発明の目的は、上記問題を解決し、キャ
リフラグとビット演算命令を行うビットの位置を固定と
しても、情報ビット列を格納するレジスタを事前にシフ
ト演算をする必要がない簡単な構成のプロセッサ、およ
び、処理量を削減しプログラムサイズを大幅に縮小する
ことが可能な巡回符号化処理方法を提供することにあ
る。
【0014】
【課題を解決するための手段】上記目的を達成するため
に、本発明に係るプロセッサは、複数のビットからなる
第1〜第3のデータをそれぞれ保持するための複数のレ
ジスタと、2入力ポートとその2入力ポートで受信した
データをシフトする入力シフタを持つ算術論理演算装置
と、受信したデータをシフトするビット処理装置と、前
記入力シフタの一方からシフトアウトしたデータと前記
ビット処理装置からシフトアウトしたデータを排他的論
理演算を行う排他的論理和演算回路(XOR回路)と、
該排他的論理和演算回路(XOR回路)からの出力デー
タを格納するステータスレジスタを有することを特徴と
している。
【0015】具体的には、本発明のプロセッサは、受信
したデータをシフトする入力シフタ(109,119)
と算術論理演算を施す演算回路(汎用演算器108)か
ら構成される算術論理演算器と、データをシフトするビ
ット処理装置(111)と、入力シフタ(109,11
9)とビット処理装置(111)のシフトアウトデータ
を入力して排他的論理和演算を行う排他的論理和演算回
路(112)と、該排他的論理和演算回路(112)の
出力を保持するステータスレジスタ(113)を有して
いる。
【0016】また、本発明のプロセッサは、さらに、複
数のビットからなる第1〜3のデータを保持するための
第1〜3のレジスタと、第1および第3のレジスタの出
力を入力シフタ(109,119)の入力に接続する手
段(セレクタ115、バスa,b)と、第2のレジスタ
の出力をビット処理装置(111)の入力に接続する手
段(セレクタ115、バスc,d)と、算術論理演算器
(108)の出力を第1のレジスタの入力に接続する手
段(バスe、セレクタ114)と、ビット処理装置(1
11)の出力を第2のレジスタの入力に接続する手段
(バスf、セレクタ114)を有する(図1)。
【0017】また、本発明の巡回符号化処理方法は、上
記構成のプロセッサを用い、まず、第1のデータを剰余
多項式の係数、第2のデータを情報ビット列、第3のデ
ータを生成多項式の係数とし、これらを初期化する。次
に、入力シフタとビット処理装置により第1のデータお
よび第2のデータを1ビットシフトしシフトアウトされ
たデータを排他的論理和演算回路で排他的論理和をと
り、排他的論理和が「1」のときのみ、算術論理演算器
により第1のデータと第3のデータの排他的論理和を演
算して新たな第1のデータを生成し、第1のレジスタに
格納する。以上の処理を第2のデータのビット数の回数
だけ繰り返す(図3および図4参照)。
【0018】また、上記プロセッサの変形として、排他
的論理和演算回路でステータスレジスタのデータとビッ
ト処理装置からシフトアウトデータの排他的論理和演算
を行う構成を採用し、まず、ビット処理装置により第2
のレジスタの出力を1ビットシフトし、シフトアウトし
たデータをステータスレジスタに保持し、次に、ビット
処理装置により第1のデータをシフトしシフトアウトし
たデータとステータスレジスタのデータを排他的論理和
演算回路により排他的論理和をとりステータスレジスタ
に保持し、該ステータスレジスタのデータが「1」のと
きのみ、算術論理演算器により第1のデータと第3のデ
ータの排他的論理和を演算して新たな第1のデータを生
成し第1のレジスタに格納するようにしてもよい。
【0019】
【発明の実施の形態】以下、本実施例を図面を参照して
説明する。 (第1の実施例)図1は、本発明の第1の実施例に係わ
るプロセッサ100を示す図である。本実施例における
プロセッサ100は、処理を行うための命令が格納され
ているプログラムメモリ101と、演算を行うために必
要なデータが格納してあるデータメモリ102と、演算
処理回路118がデータバス103およびアドレスバス
104により接続されている。
【0020】また、演算処理回路118は、プログラム
メモリ101からプログラムカウンタ105により指定
したアドレスに記憶された命令を読み込むとともにその
命令を解読して制御回路106に信号を送る命令フェッ
チデコード回路107と、算術演算や論理演算を行う汎
用演算器108と、汎用演算器に入力するデータを予め
シフトするための入力シフタ109,119と、データ
メモリ102からデータバス103を介して転送されて
きたデータを格納する複数の汎用レジスタ110と、ビ
ット処理演算装置111と、入力シフタ109からシフ
トアウトしたデータとビット処理演算装置111からシ
フトアウトしたデータの2つを入力として排他的論理和
演算を行うXOR回路112と、XOR回路112から
の出力データを格納するステータスレジスタ113と、
セレクタ114,115,116,117からなる。
【0021】汎用演算器108は2つの入力を持ち、入
力データを予めシフトできるように入力シフタ109を
具備している。また、入力シフタ109の入力はバスa
を介して汎用レジスタ110の出力に接続されている。
入力シフタ109の出力は汎用演算器108の入力に接
続されている。シフト演算後に算術論理演算を行うよう
な命令が命令フェッチデコード回路107でデコードさ
れると、制御回路106はセレクタ114および115
に制御信号を送り、この制御信号によるセレクタの制御
により汎用レジスタ110はバスaおよびbを介して入
力シフタ109および119にデータを入力する。入力
シフタ109に入力されたデータに対して、入力シフタ
109は動作し、シフトを実行する。
【0022】そして、シフトの結果、シフトアウトした
データはXOR回路112の入力となり、シフト後のデ
ータは汎用演算器108の入力となる。ただし、入力デ
ータに予めシフト処理を必要としない演算命令が命令フ
ェッチデコード回路107でデコードされると、入力シ
フタ109は動作せずに、入力データはそのまま汎用演
算器108に入力される。そして、汎用演算器108
は、入力されたデータに対して演算を実行する。汎用演
算器108が出力する演算結果は、バスeを介して汎用
レジスタ110に格納される。汎用演算器108は、演
算結果を出力すると同時に、演算結果の状態(ステータ
ス)も出力する。演算結果の状態はステータスレジスタ
113に格納される。また、汎用演算器108は、演算
の条件としてステータスレジスタ113を参照すること
により条件付き演算命令を実行することができる。
【0023】ビット処理装置111は、2つの入力を持
ち、これらはバスcおよびdを介して汎用レジスタ11
0の出力に接続されている。この2つの入力のうち、バ
スdからの入力がシフトされるデータであり、バスcか
らの入力がシフト値(シフト量)となる。また、通常の
1ビットシフト演算命令が命令フェッチデコード回路1
07でデコードされると、制御回路106はセレクタ1
15に制御信号を送り、この制御信号を受けたセレクタ
115の制御により、汎用レジスタ110はバスdを介
してビット処理装置111にデータを送る。ビット処理
装置111は入力されたデータに対して、1ビットシフ
ト演算を実行する。シフト後のデータはバスfを介して
汎用レジスタ110に格納され、シフトアウトしたデー
タはセレクタ116および117を介してステータスレ
ジスタ113に格納される。
【0024】しかし、本発明に係る演算命令(巡回符号
化処理)が命令フェッチデコード回路107にてデコー
ドされると、制御回路106はセレクタ115に制御信
号を送り、この制御信号を受けたセレクタ115の制御
により、汎用レジスタ110はバスdを介してビット処
理装置111にデータを送る。ビット処理装置111は
入力されたデータに対して、1ビットシフト演算を実行
する。そして、シフト後のデータはバスfを介して汎用
レジスタに格納され、シフトアウトしたデータはXOR
回路112に入力され、XOR回路112で演算された
結果はセレクタ116および117を介してステータス
レジスタ113に格納される。
【0025】上述したように、本実施例では、ビット処
理装置111と汎用演算器108は、それぞれ異なるバ
スを用いて汎用レジスタ110と接続しているので、両
演算器を同時並列的に動作させることが可能である。具
体的には、汎用演算器108への入力はバスaおよびb
を使用し、ビット処理装置111への入力はバスcおよ
びdを使用している。また、汎用演算器108の出力は
バスeを使用し、ビット処理装置111の出力にはバス
fを使用している。
【0026】次に、図3の巡回符号化処理を例にして、
上記のプロセッサ100の動作を詳細に説明する。ここ
で、複数の汎用レジスタ110の内の4つのレジスタに
対して、剰余ビット列parityRegを格納するレ
ジスタをr1とし、情報ビット列InfoRegを格納
するレジスタをr2とし、生成多項式の係数データを格
納するレジスタをr3とし、繰り返しの回数を格納する
レジスタをr4とする。
【0027】まず、これらの4つのレジスタを初期化す
る。具体的に記述すると、データメモリ102には、図
5の(a)のような生成多項式の係数データが格納され
ており、また、図5の(b)のような情報ビット列のデ
ータが格納されている。そこで、データメモリ102に
格納されたこれらのデータをそれぞれのレジスタに転送
し、各レジスタを初期化する。さらに、レジスタr1は
データをクリアし、レジスタr4を「4」にセットす
る。
【0028】次に、剰余算出処理を実行する。図3に示
すように、剰余算出処理は割り算ブロックの繰り返しで
あり、また、割り算ブロックの演算は大きく分けて演算
1,演算2,演算3で構成されている。ここで、例え
ば、図3の演算1および演算2のフラグを生成する命令
を“crcflag r2 r1”とする。
【0029】まず、命令フェッチデコード回路107
は、プログラムカウンタ105により指定したアドレス
に記憶された上記命令をプログラムメモリ101から読
み込むとともに、上記命令を解読し、得られた制御信号
を制御回路106に送る。制御回路106は、まずセレ
クタ114およびセレクタ115に制御信号を送りこれ
らのセレクタを制御する。その結果、レジスタr1のデ
ータが内部バスaから汎用演算器108に接続されてい
る入力シフタ109に入力され、また、レジスタr2の
データが内部バスdを介してビット処理装置111に入
力される。
【0030】次に、入力シフタ109は、入力されたデ
ータを1ビット右シフトし、MSBビットには0を入力
し、シフトアウトした最下位の1ビットのデータをXO
R回路112に出力し、シフト後のデータをバスeに出
力する。レジスタr1は、バスeを介して受け取ったシ
フト後のデータを格納する。
【0031】ビット処理装置111は、汎用演算器10
8の動作と同じタイミングで、入力されたデータを1ビ
ット右シフトし、MSBビットには0を入力し、シフト
アウトした最下位の1ビットのデータをXOR回路11
2のもう1方の入力とし、また、シフト後のデータをバ
スfに出力する。汎用レジスタ110のレジスタr2
は、バスfを介して受け取ったシフト後のデータを格納
する。
【0032】汎用演算器108とビット処理装置111
からデータが出力されると同時に、XOR回路112は
入力された2つのデータで排他的論理和演算を行い演算
結果であるステータスフラグをセレクタ116および1
17を介してステータスレジスタ113に出力する。以
上で、図3の演算1、演算2を実行する命令である“c
rcflag r2r1”の処理が終了する。
【0033】次に、図3の演算3を実行する命令、つま
り、条件付き排他的論理和演算命令を実行する。具体的
には、レジスタr1のデータと、レジスタr3のデータ
が汎用演算器に入力され、前記ステータスフラグの状態
が「1」のときは、2入力データに対して排他的論理和
演算が実行され、演算結果はバスeを介してレジスタr
1に格納される。また、ステータスフラグの状態が
「0」の場合は、汎用演算器108では演算は実行され
ず、レジスタr1およびレジスタr3に保持されている
データも更新されない。
【0034】なお、上記実施例では、汎用レジスタ11
0に格納するデータを図5(a)(b)のようにLSB
側から配置し右シフト演算を使用して剰余算出処理を行
っているが、各データをMSB側から配置し左シフト演
算を使用しても剰余算出処理は実行可能である。
【0035】上記構成のプロセッサによると、汎用演算
器,ビット処理装置,およびそれらの出力に対して排他
的論理和を演算するXOR回路を設けたことにより、演
算1と演算2を一括して1サイクルで演算できるように
なり、従来より高速に剰余算出処理を行うことが可能で
ある。また、情報ビット列は演算を実行するごとに1ビ
ット右シフトされるので、演算1で必要となる情報ビッ
トのデータは、常にLSBビットに格納されている。つ
まり、図3で図示した演算1のようなフラグ生成のため
のビット演算を実行する場合、従来はビットの位置を指
定していたが、本実施例ではビットの指定は不要であ
る。従って、プログラム量が大幅に削減可能となる。ま
た、本実施例は、異なるバス上に汎用演算器とビット処
理装置が接続されている汎用的なプロセッサに、剰余算
出処理を高速に処理するためのフラグ生成回路を付加し
た構成である。また、フラグ生成回路は単純なXOR回
路であるため、新たに付加する回路規模は非常に小さ
く、かつ実現が容易である。
【0036】(第2の実施例)図2は、本発明の他の実
施例に係るプロセッサ200を示す図である。本実施例
におけるプロセッサ200は、処理を行うための命令が
格納されているプログラムメモリ101と、演算を行う
ために必要なデータが格納してあるデータメモリ102
と、演算処理回路118がデータバス103およびアド
レスバス104により接続されている。
【0037】また、演算処理回路118は、プログラム
メモリ101からプログラムカウンタ105により指定
したアドレスに記憶された命令を読み込むとともにその
命令を解読して制御回路106に信号を送る命令フェッ
チデコード回路107と、算術演算や論理演算を行う汎
用演算器108と、汎用演算器に入力するデータを予め
シフトするための入力シフタ109と、データメモリ1
02からデータバス103を介して転送されてきたデー
タを格納する複数の汎用レジスタ110と、ビット処理
演算装置111と、先行の命令が生成した演算の状態を
格納するステータスレジスタ113と、ステータスレジ
スタ113に格納されているデータとビット処理演算装
置111からシフトアウトしたデータの2つを入力とし
て排他的論理和演算を行うXOR回路112と、XOR
回路112からの出力データを格納するステータスレジ
スタ113と、セレクタ114,115,116,11
7からなる。
【0038】以下、第2の実施例において、汎用演算器
108は、2つの入力を持ち、算術論理演算を行い、演
算結果と演算結果の状態(ステータス)を出力する。演
算結果はレジスタに格納され、演算結果の状態はステー
タスレジスタ113に格納される。また、汎用演算器1
08は、条件としてステータスレジスタ113を参照
し、条件付き演算命令を実行する。XOR回路112は
2つの入力を持ち、入力の1方はステータスレジスタ1
13からのデータであり、もう1方の入力はビット演算
装置111からシフトアウトしたデータである。また、
本実施例では、上記第1の実施例と異なり、ビット処理
装置111と汎用演算器108は、同一バスaとbを使
用している。
【0039】次に、図3の巡回符号化処理を例にして、
上記のプロセッサ200の動作を説明する。まず、複数
の汎用レジスタ110の内の4つのレジスタに対して、
剰余ビット列parityRegを格納するレジスタを
r1とし、情報ビット列InfoRegを格納するレジ
スタをr2とし、生成多項式の係数データを格納するレ
ジスタをr3とし、繰り返しの回数を格納するレジスタ
をr4とする。
【0040】まず、これらの4つのレジスタを初期化す
る。具体的に記述すると、データメモリ102には、図
5の(a)のような生成多項式の係数データが格納され
ており、また、図5の(b)のような情報ビット列のデ
ータが格納されている。そこで、メモリに格納されたこ
れらのデータをそれぞれのレジスタに転送し、レジスタ
を初期化する。さらに、レジスタr1はデータをクリア
し、レジスタr4を「4」にセットする。
【0041】次に、剰余算出処理を行う。図3に示すよ
うに、剰余算出処理は割り算ブロックの繰り返しであ
り、割り算ブロックの演算は以下の演算1,演算2,演
算3で構成されている。まず、演算1を行う前に、レジ
スタr2をビット処理装置111により1ビット右シフ
ト演算を行う。すると、第1番目の情報ビットがセレク
タ116および117を介してステータスレジスタ11
3に格納され、ビット処理装置111でシフトされたデ
ータはバスfを介して汎用レジスタ110のレジスタr
2に格納される。
【0042】次に、演算1および演算2を同時並列的に
実行する。例えば、演算1を実行する命令を“crcf
g r2”とする。命令フェッチデコーダ回路107は
プログラムカウンタ105により指定したアドレスに記
憶された上記命令をプログラムメモリ101から読み込
むとともに、上記命令を解読し、制御回路106に制御
信号を送る。制御回路106は、まずセレクタ115に
制御信号を送る。制御信号を受け取ったセレクタ115
の制御により、汎用レジスタ110のレジスタr2のデ
ータが内部バスbを介してビット処理装置111に入力
される。ビット処理装置111はレジスタr2から出力
されたデータを1ビット右シフトする。次に、ビット処
理装置111からシフトアウトされたデータとステータ
スレジスタ113に格納されているデータの2つのデー
タがXOR回路112に入力され、排他的論理和の演算
結果は再びステータスレジスタ113に格納される。ま
た、ビット処理装置111においてシフト演算されたデ
ータはバスfを介して再び汎用レジスタ110のレジス
タr2に格納される。
【0043】次に、図3の演算3を実行する命令、つま
り、条件付き排他的論理和演算命令を実行する。具体的
には、レジスタr1のデータと、レジスタr3のデータ
が汎用演算器108に入力され、ステータスレジスタ1
13のデータすなわちステータスフラグの状態が「1」
のときは、2入力データに対して排他的論理和演算が実
行され、演算結果がバスeを介して汎用レジスタ110
のレジスタr1に格納される。また、ステータスフラグ
の状態が「0」の場合は、汎用演算器108では演算は
実行されず、汎用レジスタ110にレジスタr1および
レジスタr3に保持されているデータも更新されない。
【0044】パリティビットを生成する剰余算出処理の
結果は、上記の命令をレジスタr4に保持されている回
数すなわち4回繰り返した後のレジスタr1の値であ
る。なお、上記実施例では、汎用レジスタ110に格納
するデータを図5(a)(b)のようにLSB側から配
置し右シフト演算を使用して剰余算出処理を行っている
が、各データをMSB側から配置し左シフト演算を使用
しても剰余算出処理は実行可能である。
【0045】上記構成のプロセッサによると、演算1お
よび演算2を2サイクルで演算できるので、従来と同等
の剰余算出処理を行うことが可能である。しかも、情報
ビット列データは毎回シフト演算されるので、演算1で
必要となる情報ビット列は、常にLSBビットに格納さ
れている。すると、演算1のようなビット演算を実行す
る場合、従来はビットの位置を指定していたが、本発明
ではビットの指定は不要である。従って、プログラム量
が大幅に削減可能となる。また、本発明は、同一のバス
上に汎用演算器とビット処理装置を接続している汎用的
なプロセッサに、剰余算出処理を高速に処理するための
フラグ生成回路を付加した構成である。フラグ生成回路
は単純なXOR回路112であるため、新たに付加する
回路規模は非常に小さく、かつ実現が容易である。
【0046】
【発明の効果】本発明によれば、剰余算出処理を高速に
処理するためのフラグ生成回路であるXOR回路を付加
するだけという簡単な構成のプロセッサ、および、剰余
算出処理の処理量が削減され、かつプログラムサイズも
大幅に縮小することが可能な巡回符号化処理方法が実現
できる。
【図面の簡単な説明】
【図1】本発明の一実施例におけるプロセッサの概略回
路図である。
【図2】本発明の一実施例におけるプロセッサの概略回
路図である。
【図3】本発明に係る巡回符号化処理の原理を説明する
図である。
【図4】本発明に係る巡回符号化処理の原理を説明する
ための、C言語で記述したプログラムである。
【図5】本発明に係る巡回符号化処理で使用する情報デ
ータの構造例を示す図である。
【符号の説明】
100,200:プロセッサ、 101:プログラムメモリ、 102:データメモリ、 103:データバス、 104:アドレスバス、 105:プログラムカウンタ、 106:制御回路、 107:命令フェッチデコード回路、 108:汎用演算器、 109,119:入力シフタ、 110:汎用レジスタ、 111:ビット処理装置、 112:排他的論理和演算回路(XOR回路)、 113:ステータスレジスタ、 114〜117:セレクタ、 118:演算処理回路、 a〜f:バス。
───────────────────────────────────────────────────── フロントページの続き Fターム(参考) 5B001 AA01 AA04 AB03 AC01 5J065 AA01 AB01 AC01 AD04 AE06 AF03 AH02 AH03 AH04 AH05 AH06 AH09

Claims (6)

    【特許請求の範囲】
  1. 【請求項1】 受信したデータをシフトする入力シフタ
    と該入力シフタを介して入力されたデータに算術論理演
    算を施す演算回路から構成される算術論理演算器と、 データをシフトするためのビット処理装置と、 前記入力シフタのシフトアウトデータと前記ビット処理
    装置のシフトアウトデータを入力して排他的論理和演算
    を行う排他的論理和演算回路と、 該排他的論理和演算回路の出力を保持するステータスレ
    ジスタとを有することを特徴とするプロセッサ。
  2. 【請求項2】 請求項1記載のプロセッサにおいて、さ
    らに、 複数のビットからなる第1のデータを保持するための第
    1のレジスタと、 複数のビットからなる第2のデータを保持するための第
    2のレジスタと、 複数のビットからなる第3のデータを保持するための第
    3のレジスタと、 前記第1および第3のレジスタの出力を前記入力シフタ
    の入力に接続する手段と、 前記第2のレジスタの出力を前記ビット処理装置の入力
    に接続する手段と、 前記算術論理演算器の出力を前記第1のレジスタの入力
    に接続する手段と、 前記ビット処理装置の出力を前記第2のレジスタの入力
    に接続する手段を有することを特徴とするプロセッサ。
  3. 【請求項3】 請求項2記載のプロセッサを用いた巡回
    符号化処理方法において、 前記第1のデータは剰余多項式の係数、前記第2のデー
    タは情報ビット列、前記第3のデータは生成多項式の係
    数とし、これらのデータを初期化する第1のステップ
    と、 前記入力シフタと前記ビット処理装置により前記第1の
    データおよび前記第2のデータを1ビットシフトする第
    2のステップと、 前記入力シフタと前記ビット処理装置における1ビット
    シフトによりシフトアウトされたデータを前記排他的論
    理和演算回路により排他的論理和をとり前記ステータス
    レジスタに保持する第3のステップと、 前記排他的論理和が「1」のときのみ、前記算術論理演
    算器により前記第1のデータと前記第3のデータを入力
    し排他的論理和を演算して新たな第1のデータを生成
    し、前記第1のレジスタに格納する第4のステップと、 前記情報ビット列のビット数だけ前記第2のステップ〜
    第4のステップを繰り返す第5のステップからなること
    を特徴とする巡回符号化処理方法。
  4. 【請求項4】 入力されたデータに算術論理演算を施す
    演算回路から構成される算術論理演算器と、 データをシフトするためのビット処理装置と、 演算の状態を格納するステータスレジスタと、 前記ステータスレジスタのデータと前記ビット処理装置
    からのシフトアウトデータを入力して排他的論理和演算
    を行う排他的論理和演算回路とを有することを特徴とす
    るプロセッサ。
  5. 【請求項5】 請求項4記載のプロセッサにおいて、さ
    らに、 複数のビットからなる第1のデータを保持するための第
    1のレジスタと、 複数のビットからなる第2のデータを保持するための第
    2のレジスタと、 複数のビットからなる第3のデータを保持するための第
    3のレジスタと、 前記第1および第3のレジスタの出力を前記算術論理演
    算器の入力に接続する手段と、 前記第2のレジスタの出力を前記ビット処理装置の入力
    に接続する手段と、 前記算術論理演算器の出力を前記第1のレジスタの入力
    に接続する手段と、 前記ビット処理装置の出力を前記第2のレジスタの入力
    に接続する手段を有することを特徴とするプロセッサ。
  6. 【請求項6】 請求項5記載のプロセッサを用いた巡回
    符号化処理方法において、 前記第1のデータは剰余多項式の係数、前記第2のデー
    タは情報ビット列、前記第3のデータは生成多項式の係
    数とし、これらのデータを初期化する第1のステップ
    と、 前記ビット処理装置により前記第2のレジスタの出力を
    1ビットシフトし、シフトアウトしたデータを前記ステ
    ータスレジスタに保持する第2のステップと、 前記ビット処理装置により前記第1のデータをシフト
    し、該シフトアウトしたデータと前記ステータスレジス
    タのデータを前記排他的論理和演算回路により排他的論
    理和をとり前記ステータスレジスタに保持する第3のス
    テップと、 前記ステータスレジスタのデータが「1」のときのみ、
    前記算術論理演算器により前記第1のデータと前記第3
    のデータを入力し排他的論理和を演算して新たな第1の
    データを生成し、前記第1のレジスタに格納する第4の
    ステップと、 前記情報ビット列のビット数だけ前記第2のステップ〜
    第4のステップを繰り返す第5のステップからなること
    を特徴とする巡回符号化処理方法。
JP10252463A 1998-09-07 1998-09-07 プロセッサおよび該プロセッサを用いた巡回符号化処理方法 Pending JP2000081989A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP10252463A JP2000081989A (ja) 1998-09-07 1998-09-07 プロセッサおよび該プロセッサを用いた巡回符号化処理方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP10252463A JP2000081989A (ja) 1998-09-07 1998-09-07 プロセッサおよび該プロセッサを用いた巡回符号化処理方法

Publications (1)

Publication Number Publication Date
JP2000081989A true JP2000081989A (ja) 2000-03-21

Family

ID=17237742

Family Applications (1)

Application Number Title Priority Date Filing Date
JP10252463A Pending JP2000081989A (ja) 1998-09-07 1998-09-07 プロセッサおよび該プロセッサを用いた巡回符号化処理方法

Country Status (1)

Country Link
JP (1) JP2000081989A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6754870B2 (en) 2000-04-14 2004-06-22 Matsushita Electric Industrial Co., Ltd. CRC operation unit and CRC operation method

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6754870B2 (en) 2000-04-14 2004-06-22 Matsushita Electric Industrial Co., Ltd. CRC operation unit and CRC operation method

Similar Documents

Publication Publication Date Title
US5946361A (en) Viterbi decoding method and circuit with accelerated back-tracing and efficient path metric calculation
US6334176B1 (en) Method and apparatus for generating an alignment control vector
EP0034142B1 (en) Galois field computer
US7062526B1 (en) Microprocessor with rounding multiply instructions
US6009451A (en) Method for generating barrel shifter result flags directly from input data
US6745319B1 (en) Microprocessor with instructions for shuffling and dealing data
US5996057A (en) Data processing system and method of permutation with replication within a vector register file
US6385751B1 (en) Programmable, reconfigurable DSP implementation of a Reed-Solomon encoder/decoder
US5991785A (en) Determining an extremum value and its index in an array using a dual-accumulation processor
JP2835103B2 (ja) 命令指定方法及び命令実行方式
US6711602B1 (en) Data processor with flexible multiply unit
US6671797B1 (en) Microprocessor with expand instruction for forming a mask from one bit
US10534606B2 (en) Run-length encoding decompression
KR20100122493A (ko) 프로세서
JPH04313121A (ja) インストラクションメモリ装置
KR20080049825A (ko) 임베딩된 마스킹을 갖는 빠른 회전자와 그 방법
US7814302B2 (en) Address calculation instruction within data processing systems
US5742621A (en) Method for implementing an add-compare-select butterfly operation in a data processing system and instruction therefor
KR0142334B1 (ko) 확장된 비트 슬라이스 프로세서 산술논리 연산 유니트
CN112650471A (zh) 用于处理掩蔽数据的处理器和方法
US20050005224A1 (en) Configurable, fast, 32-bit CRC generator for 1-byte to 16-bytes variable width input data
US6889320B1 (en) Microprocessor with an instruction immediately next to a branch instruction for adding a constant to a program counter
EP1102161A2 (en) Data processor with flexible multiply unit
JP2009037291A (ja) 半導体装置
EP0936537B1 (en) Cyclic redundancy check in a computer system