JPH11203106A - プロセッサ - Google Patents

プロセッサ

Info

Publication number
JPH11203106A
JPH11203106A JP10005096A JP509698A JPH11203106A JP H11203106 A JPH11203106 A JP H11203106A JP 10005096 A JP10005096 A JP 10005096A JP 509698 A JP509698 A JP 509698A JP H11203106 A JPH11203106 A JP H11203106A
Authority
JP
Japan
Prior art keywords
bit
input
bits
processor
selection circuit
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
JP10005096A
Other languages
English (en)
Inventor
Takashi Nakamoto
貴士 中本
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 JP10005096A priority Critical patent/JPH11203106A/ja
Publication of JPH11203106A publication Critical patent/JPH11203106A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Executing Machine-Instructions (AREA)
  • Microcomputers (AREA)
  • Detection And Correction Of Errors (AREA)

Abstract

(57)【要約】 【課題】 誤り訂正用の符号化処理やビット入れ替え演
算を高速に行えるプロセッサを提供する 【解決手段】 プロセッサ内に設けられたビット演算器
12内では、入力選択回路110内のビット選択器10
5がレジスタ104内の任意の1ビットを選択し、共通
の1ビット演算器E8はこの選択された1ビットと、レ
ジスタ104内の特定のビットとにビット演算を実行
し、その結果を個別演算器E0からE7に供給する。入
力選択回路110は、各個別演算器E0,,またはE7
に、それぞれレジスタ104内の特定のビットをさらに
供給する。演算器E0からE8の各々は、二つの入力ビ
ットに対して、XOR演算、一方の入力ビットの選択、
あるいは0出力のいずれかを行う。出力選択回路109
は、個別演算器E0,,またはE7の出力に対して複数
のビット位置の入れ替えを並列に実行する。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、特に巡回型符号等
に関する符号化処理または暗号化処理で用いるビット演
算を行うのに好適なビット演算器を内蔵するプロセッサ
に関する。
【0002】
【従来の技術】近年、マルチメディアの信号処理におい
て、伝送する音声や画像データをディジタル処理により
圧縮あるいは復号化する処理が行われている。この処理
を高速に実行するのに適したプロセッサも開発されてい
る。例えば、日経マイクロデバイス 1996年2月
号、第70頁から第77頁参照。このようなプロセッサ
は、画像や音声の信号処理を高速で実現するためにSI
MD型の演算器、浮動小数点演算器等を内蔵するように
工夫されている。
【0003】一方、ディジタル伝送による信号通信にお
いて、データの誤り検出、訂正のための符号化、暗号化
のための符号化、復号化等の処理などが注目されてい
る。誤り検出、訂正の分野で重要な処理に巡回符号によ
るものがある。その中でも、よく使用されるハミング符
号による誤り検出がある。
【0004】
【発明が解決しようとする課題】上に示したハミング符
号の符号器のように、巡回符号による処理は専用の回路
により高速に実行可能である。このことは誤り検出、訂
正あるいは暗号化等の処理に関して一般的にいえる。し
かし、最近では製品あるいは用途により誤り訂正方式あ
るいは暗号化方式を変更することが要求されてきてい
る。これらの多様な処理をそれぞれ実行する専用の回路
を用いるよりも、同じハードウエア構成のプロセッサに
よりそれぞれの処理をプログラムを変更して実行させる
方法を採ることが望ましい。
【0005】しかし、本発明者は、誤り検出、訂正のた
めの符号化復号化あるいは暗号に関連する復号化復号化
等のいろいろの処理を従来のプロセッサで実行させるこ
とを検討した結果、従来のプロセッサではこれらの処理
を実行する速度に制限が大きいことを見いだした。すな
わち、これらの誤り検出、訂正に関連する符号化復号あ
るいは暗号に関連する符号化復号化処理等をプロセッサ
で実行するには、種々のビット単位の演算が必要であ
る。従来のプロセッサは主としてワード単位の演算を高
速に実行するように構成されているが、誤り検出訂正の
ための符号化復号化処理や暗号処理で多用される種々の
ビット演算を効率よく実行することが出来ない。例えば
日立製作所により販売されているプロセッサSH760
4は、ビット演算命令として、排他的論理和を含む6種
類の論理演算命令と10種類のシフト命令を備えてい
る。日立製作所が発行した「SH7604ハードウェア
マニュアル」参照。しかしながら、これらの命令を用い
るだけでは、誤り検出、訂正あるいは暗号化等の処理で
必要となる種々のビット単位の演算を高速に行うことが
できない。
【0006】本発明の目的は、誤りの検出、訂正のため
の符号化復号化あるいは暗号化等の処理で使用される種
々のビット演算を高速に実行することができるプロセッ
サを提供することである。
【0007】本発明のより具体的な目的は、異なる用途
に応じて上記種々のビット演算を多様な態様で高速に実
行することができるプロセッサを提供することである。
【0008】
【課題を解決するための手段】上記目的を達成するため
に、本発明によるプロセッサは、ビット演算器を有し、
そのビット演算器は、複数の1ビット演算器と、演算を
受けるべき一つのデータを構成する複数のビットの内、
各1ビット演算器毎に2つの入力ビットを選択して供給
する入力選択回路と、ビット演算を要求する命令に応答
して、上記入力選択回路と上記複数の1ビット演算器と
を制御するための演算制御回路とを有し、上記複数の1
ビット演算器の内の少なくとも一部は、複数種類の演算
を実行可能であり、上記入力選択回路は、上記複数の1
ビット演算器の内の少なくとも一部のビット演算器の各
々に供給すべき2つの入力ビットの内の少なくとも一方
を切り替え可能である。
【0009】ビット演算器がこのように構成された結
果、上記入力選択回路により、上記複数の1ビット演算
器毎に二つの入力ビットを選択して供給できる。さら
に、上記複数の1ビット演算器は、上記演算制御回路に
よる制御により、それぞれ異なるビット演算を実行でき
る。これにより、上記ビット演算器は、演算を受けるデ
ータの種々のビットに対して種々のビット演算を実行で
きる。しかも、上記演算制御回路は、一つのビット演算
命令に応答して、上記入力選択回路および上記複数の1
ビット演算回路を一括して制御することができる。
【0010】より望ましくは、上記複数の1ビット演算
器から出力される複数の出力ビットからそれぞれ1ビッ
トを選択するための複数の出力選択回路をさらに設け
る。この出力選択回路により、上記ビット演算回路が出
力するデータを構成する複数のビット値を変更できる。
このとき、上記演算制御回路は、上記命令に応答して、
選択すべき出力ビットを指定する信号を各出力選択回路
に供給する。
【0011】
【発明の実施の形態】本発明の実施の形態を説明する前
に、従来技術とその問題点をさらに詳しく説明する。
【0012】<従来技術とその問題点>ここでは簡単な
例として、(7、4)ハミング符号を例に用いる。この
符号は、4ビットの情報ビット列に対して生成多項式G
(x)=x3+x+1によって3ビットのパリティービ
ット列を生成し、元の情報ビット列に付加し、その結果
7ビットの符号を生成する。
【0013】図8に、(7、4)ハミング符号を生成す
るための従来の符号器を示す。まずスイッチ409をオ
ン、スイッチ408をa側にして、入力端子410から
情報ビット列i3,i2,i1,i0を順に排他的論理
和回路403に入力するとともに、これらの情報ビット
列をそのまま出力端子420に出力する。これらの情報
ビット列に対して、フリップフロップ404,405,
406および排他的論理和回路402、403により検
査ビット列p2,p1,p0が順次生成される。その時
点でスイッチ408をオフ、スイッチ409をb側にす
る。この結果、出力端子420には情報ビット列i3,
i2,i1,i0に続いて検査ビット列p2,p1,p
0が順次出力される。このように、符号器では高速にハ
ミング符号を生成できる。
【0014】しかし、従来のプロセッサではハミング符
号を生成する処理を実行させると、時間が掛かる。以
下、この問題を具体的に説明する。前述の(7、4)ハ
ミング符号の符号器が実行する処理は、以下のような処
理からなると考えることができる。ここでは、8ビット
の演算レジスタに情報ビット列i3、i2、i1、i0
を格納した上で、それらの情報ビット列から検査ビット
列p2、p1、p0を同じ演算レジスタを使用して生成
し、そのレジスタに格納すると仮定する。図9は、その
演算レジスタ内のデータの変化を示す。
【0015】まず、情報ビット列i3〜i0を、最上位
の情報ビットi3が演算レジスタの最右位置(最下位ビ
ット位置)に位置するように演算レジスタにロードする
(図9(A))。図9(A)に示したビットp2a、p
1a、p0aは、これらの情報ビット列に対して求める
べき検査ビット列p2、p1、p0の初期値を示し、こ
れらはいずれも0である。
【0016】次に、検査ビットp2aと情報ビットi3
との排他的論理和を求めて、第3の検査ビットp0bに
入力する。すなわち、次の演算を実行する。
【0017】p0b←XOR(p2a、i3) ここで、XORは排他的論理和演算を示す。
【0018】さらに、次の排他的論理和演算を実行す
る。
【0019】p1b←XOR(p0a、p2a、i3) さらに、次の代入演算を行う。
【0020】p2b←p1aさらに、情報ビット列i3
〜i0を1ビット右シフトし、ビット列i2〜i0を演
算レジスタの上位3ビットに移動する。
【0021】以上の演算の結果、演算レジスタに保持さ
れたデータは図9(B)で示されるものとなる。図9
(A)から(B)に移る過程で巡回演算を一回実行した
ことになる。
【0022】以後同様に検査ビット列p2c、p1c、
p0cを求めるビット演算と情報ビット列のシフトを行
うと、図9(C)に示されるデータが得られる。さらに
同様に検査ビット列p2d、p1d、p0dを求めるビ
ット演算と情報ビット列のシフトを行うと、図9(D)
に示されるデータが得られる。さらに同様に検査ビット
列p2e、p1e、p0eを求めるビット演算と情報ビ
ット列のシフトを行うと、図9(E)に示されるデータ
が得られる。これらの検査ビット列p2e〜p0eが求
める検査ビット列である。
【0023】以上に示した(7、4)ハミング符号の符
号器の処理を、従来のプロセッサにおいて実行させるた
めに発明者が考えた手順を図10を参照して説明する。
従来のプロセッサとはSH7604に代表されるプロセ
ッサである。従来のプロセッサにおいては、ワード内の
各ビットに異なる演算を並行して行うことは出来ない。
またあるビットに対する演算と、そのビットを含むデー
タのシフト動作は行えない。したがって、ワード単位の
ビット演算とシフト動作の組み合わせで処理を実現する
必要がある。以下では、プロセッサは、1ワードが8ビ
ットからなるワード構成をとると仮定する。例としてi
3〜i0={1,0,1,0}と仮定する。
【0024】まず、最上位の情報ビットi3が演算レジ
スタ1の最下位ビット位置(図の最右側のビット位置)
に位置するように、情報ビット列i3〜i0を演算レジ
スタ1にロードする(ステップ1)。以下の処理でも、
演算レジスタ1の第4ビットから第2ビットは、図9に
示したように、検査ビット列p2からp0の初期値p2
aからp0aであり、これらの値は0に等しい。次に演
算レジスタ1を、情報ビット列のビット数4だけ右にシ
フトし、シフト後の演算レジスタ1の内容を演算レジス
タ2に格納する(ステップ2)。このシフトにより、図
9(B)に示した検索ビット列p2b、p1b,p0b
が演算レジスタ1の最右ビット位置から順に左側に格納
されたことになる。但し、これらのビットの値は今の場
合0である。
【0025】次に、演算レジスタ1と2のデータに対す
る排他的論理和を取り、その結果を演算レジスタ2に格
納する(ステップ3)。この結果、演算レジスタ2の最
右ビット(第8ビット)には、前に述べた次の演算の結
果データが格納されることになる。この結果データは今
の場合1に等しい。
【0026】p2b←XOR(p2a、i3) 演算レジスタ2の第7ビットには、次の演算の結果デー
タが格納されることになる。この結果データは今の場合
0に等しい。
【0027】p1b←XOR(p1a、i2) 演算レジスタ2の第6の上位ビットには、次の演算の結
果データが格納されることになる。この結果データは今
の場合1に等しい。
【0028】p0b←XOR(p0a、i1) 次に、演算レジスタ2の最右ビットを拡張しながら、こ
のレジスタ2をそのビット数より1小さい7ビットだけ
左にシフトする(ステップ4)。その結果、演算レジス
タ2の全ビットには、検査ビットp2bが格納されたこ
とになる。今の場合には、演算レジスタ2の全ビットが
1となる。
【0029】各ビットに検査ビットp2bを有効に利用
するビットを指定するためのマスクデータを演算レジス
タ3に設定する。ここでは対象とする生成多項式はX3
+X+1であることから、検査ビットp1,p0に対し
て上記演算結果p2bを有効に利用するように、マスク
データ{0,0,0,0,0,1,1,0}を演算レジ
スタ3に設定する(ステップ5)。演算レジスタ2と3
のアンドを取り、結果を演算レジスタ2に格納する(ス
テップ6)。演算レジスタ1を1ビット右にシフトする
(ステップ7)。演算レジスタ2と1の排他的論理和を
取り、演算レジスタ1に格納する(ステップ8)。以上
のステップ1〜8により、図9(A)から(B)に移る
処理を実行したことになる。検査ビット列の算出を完了
するためには、同様の演算を情報ビット列i3〜i0が
シフトアウトされるまで、すなわち4回、以上の演算を
繰り返す必要がある。その結果、演算レジスタ1には
{0,0,0,0,0,1,1,0}が格納され、検査
ビット列p2e〜p0eが演算レジスタ1の第4から第
2ビット位置に得られる。
【0030】以上のように、従来のプロセッサで図3に
示すようなハミング符号の符号器が行う処理を実行させ
るためには、1巡回に7ステップかかり、従って、検査
ビット列の算出には合計で28ステップ掛かることにな
る。必要とする演算レジスタも多い。このような問題
は、巡回型の誤り検出用の符号化処理について一般にあ
てはまる。
【0031】また、暗号化処理では、ビット入れ替え処
理を頻繁に行う。このビット入れ替えも従来のプロセッ
サでは時間が掛かる。ここでは、一例として8ビットの
データの総入れ替え操作の例を図11に示す。この操作
では、Aレジスタにあるデータ{a,b,c,d,e,
f,g,h}のビット入れ替えを行い、Bレジスタにデ
ータ{c,d,b,a,e,f,g,h}として格納さ
れる。この操作を従来の1ワードが8ビットであるワー
ド構成のプロセッサで実行させるために発明者が考えた
処理フローを図12に記載する。
【0032】まず、ビットaのみ有効にするために、A
レジスタ内のデータとマスクデータ{1,0,0,0,
0,0,0,0}とのアンドを取り、テンポラリレジス
タTemp1に格納する(ステップ1)。テンポラリレ
ジスタTemp1内のデータを、ビットaを所定の位置
にくるように、今の場合には右に3ビット、シフトする
(ステップ2)。ステップ1と2を、ビットb、c、d
に対して繰り返し、それぞれのビットに対する処理の結
果をテンポラリレジスタTemp2,Temp3,Te
mp4に格納する(ステップ3から8)。テンポラリレ
ジスタTemp1,Temp2,temp3,Temp
4のオアを取り、テンポラリレジスタTemp1に格納
する(ステップ9から11)。ビットe〜hのみ有効に
するために、Aレジスタ内のデータとマスクデータ
{0,0,0,0,1,1,1,1}とのアンドを取
り、テンポラリレジスタTemp2に格納する(ステッ
プ12)。テンポラリレジスタTemp1、Temp2
内のデータのANDを取り、レジスタBに格納する(ス
テップ13)。
【0033】以上の処理から分かるように、従来のプロ
セッサで4ビットの入れ替え操作を行った場合は13ス
テップ掛かる。さらにテンポラリレジスタを4つ必要と
してしまう。このことから、暗号処理等で用いられるビ
ット入れ替えに従来のプロセッサを使用すると十分な処
理速度を確保できず、また、必要とするテンポラリレジ
スタの数も多い。
【0034】以下、本発明に係るプロセッサを図面に示
したいくつかの実施の形態を参照してさらに詳細に説明
する。なお、以下においては、同じ参照番号は同じもの
もしくは類似のものを表わすものとする。また、発明の
第2の実施の形態以降においては、発明の第1の実施の
形態との相違点を主に説明するに止める。
【0035】<発明の実施の形態1>図2において、プ
ロセッサは、メモリアクセス回路120、命令フェッチ
回路121、ランダムアクセスメモリ(RAM)10
0、命令デコーダ122、算術論理演算器124および
ビット演算器12とを有し、これらの回路はバス101
に接続されている。これらの回路は、半導体集積回路に
より構成され、このプロセッサは一つのチップ上に実現
される。メモリ100は機械語命令により記述されたプ
ログラムおよびそのプログラムで使用するデータとを記
憶する。命令フェッチ回路121は、このプログラム内
の機械語命令列を順次メモリ100より読み出し、命令
デコーダ122は、読み出された機械語命令を解読し、
制御回路123は、命令デコーダ122から与えられる
解読結果情報の基づき、装置動作を制御するための種々
の制御信号102を生成し、関連する回路部分に供給す
る。算術論理演算器124は一つあるいは二つのデータ
に対して四則演算あるいは簡単な論理演算を行う演算器
である。このプロセッサは1ワードが8ビットからなる
マシーンであると仮定している。しかし、本発明は1ワ
ードのデータ長が異なるものに適用可能であることはい
うまでもない。なお、本プロセッサには他に汎用レジス
タを含んでいてもよいが、ここでは簡単化のために図示
しない。
【0036】ビット演算器12は本発明に係る演算器で
あり、一つのデータ内の複数のビットの各々に他と異な
る演算を実行可能である。図1(A)に示すように、ビ
ット演算器12は、複数(今の例では8個)の1ビット
演算器E0からE7と、各1ビット演算器に供給する1
対のビットを選択するための入力選択回路110と、上
記8個の1ビット演算器から供給される8個の演算結果
ビットから、出力データの各ビットに供給すべき演算結
果ビットを選択するための出力選択回路109と、演算
制御回路125および入力選択回路110に供給する1
ビット演算を受けるべきデータを選択するための選択器
103からなる。
【0037】入力選択回路110は、演算を受けるべき
データを選択するためのデータ選択器103と、選択器
103から与えられるデータを保持するためのレジスタ
104と、レジスタ104内のデータ内の任意の1ビッ
トを選択するためのビット選択器105と、個別の1ビ
ット演算器E0〜E7に共通の1ビット演算器E8とよ
りなる。この共通の1ビット演算器E8は、ビット選択
器105により選択された1ビットとレジスタ104内
の特定の1ビット、今の例では第8ビットとに対してビ
ット演算を行うことができ、その演算結果は、個別の1
ビット演算器E0〜E7の全てに供給される。
【0038】データ選択器103にはバス101に出力
されたデータもしくは出力選択回路109より線24a
に出力されたビット演算結果データ演算が供給される。
選択器103は、ビット演算を受けるべきデータをメモ
リ100からレジスタ104にロードする命令が実行さ
れたときには、メモリ100からバス101に読み出さ
れたデータを選択する。いずれかのビット演算命令が実
行されたときには、選択器103は、ビット演算の実行
の終了時に線24a上に出力される演算結果データを選
択する。
【0039】上記共通の1ビット演算器E8および個別
の1ビット演算器E0からE7は、図1(B)に示すよ
うに、二つのANDゲート111,112と、それらの
ANDゲートの出力が入力されるXORゲート113よ
りなる。ANDゲート111には、第1のオペランドビ
ットAiと演算制御回路125から供給される制御信号
fiAとが入力され、ANDゲート112には、第2の
オペランドビットBiと制御信号fiBとが入力され
る。制御信号fiAが1でfiBが0のときには、AN
Dゲート111は、入力ビットAi、BiをXORゲー
ト113に供給する。一方、ANDゲート112はオフ
である。したがって、この1ビット演算器Eiの出力
は、入力ビットAiに等しくなる。したがって、このと
きには、1ビット演算器Eiは、入力ビットAiを選択
する選択器として動作している。同様に、制御信号fi
Aが0でfiBが1のときには、1ビット演算器Ei
は、入力ビットBiを選択する選択器として動作する。
制御信号fiA、fiBがともに1のときには、この1
ビット演算器Eiの出力は、入力ビットAi、Biの排
他的論理和になる。したがって、このときには、1ビッ
ト演算器Eiは、XORゲートとして動作する。制御信
号fiA、fiBがともに0のときには、この1ビット
演算器Eiの出力は0である。
【0040】本実施の形態では、共通の1ビット演算器
E8には、レジスタ104内の第8ビットとビット選択
器105により選択された1ビットとがそれぞれオペラ
ンドビットA、Bとして供給され、他の1ビット演算器
E0からE7の各々には、レジスタ104内の第iビッ
トと共通のビット演算器E8の出力ビットとがそれぞれ
オペランドビットA、Bとして供給されるように、入力
選択回路110が構成されている。これは後に示すよう
に、既に述べた巡回型の符号化を行うのに、各ビット演
算器E0からE7の構造が簡単であるからである。
【0041】出力選択回路109は、1ワードのデータ
を構成するビット数8に等しい数のビット選択器G0か
らG7よりなり、各ビット選択器は、個別の1ビット演
算器E0からE7から供給される8ビットの内の任意の
1ビットを選択する。この出力選択回路109は、個々
の1ビット演算器E0からE8により出力される8ビッ
トを入れ替えて出力するスイッチとして動作する。
【0042】演算制御回路125は、ビット演算テーブ
ル107と、ビット入れ替えテーブル108とを有す
る。ビット演算テーブル107は、ビット選択器105
に3ビットの選択信号cを供給し、共通の1ビット演算
器8に、2ビットの演算制御信号f8を供給し、個々の
1ビット演算器E0からE7にそれぞれ2ビットの演算
制御信号f0からf7を供給する。ここで、制御信号f
i(i=0,,,または8)は制御信号fiAとfiB
とからなる。同様にビット入れ替えテーブル108は、
出力選択回路109内のビット選択器G0からG7にそ
れぞれ3ビットの選択信号h0からh7を供給する。こ
のビット演算テーブル107は、複数のビット演算命令
に対応する異なる制御信号を、それぞれのビット演算命
令に対応するエントリに記憶し、ビット入れ替えテーブ
ル108は、それぞれのビット演算命令に対応する制御
信号をそれぞれのビット演算命令に対応するエントリに
記憶、る。これらのテーブル107,108は、ROM
で構成され、同じビット演算、例えばハミング符号の符
号化のための制御信号として、種々の用途に対応して情
報ビット列の長さnおよび生成されるハミング符号の長
さmが異なる種々のハミング符号((m,n)ハミング
符号)を生成するための制御信号を異なるアドレスに記
憶する。同様に、後に述べるビット入れ替え演算を種々
の態様で実施するための制御信号も記憶する。
【0043】命令デコーダ122が算術論理演算命令を
解読したときには、制御回路123は、算術論理演算の
種別を示すコードを算術論理演算器124に供給すると
ともに、およびその演算の実行を制御するいろいろの信
号を線102を介してそこに供給する。これらの命令お
よび算術論理演算器124の詳細は省略する。図3に示
すように、ビット演算命令は、ビット演算識別コードB
Iとビット演算アドレスFmapからなる。ビット演算
識別コードBIは、ビット演算命令であることを示すコ
ードであり、実行すべきビット演算命令に依存しない。
ビット演算アドレスFmapは実行すべきビット演算に
対する制御信号を保持した、ビット演算テーブル107
のエントリおよびビット入れ替えテーブル108のエン
トリに共通のアドレスである。命令デコーダ122がビ
ット演算命令を解読したときには、制御回路123は、
ビット演算アドレスFmapを線102を介して演算制
御回路125に転送する。演算制御回路125では、こ
のビット演算アドレスFmapによりビット演算テーブ
ル107及びビット入れ替えテーブル108を読み出
す。
【0044】ビット演算器12を前述の(7、4)ハミ
ング符号器の処理を実行するのに使用したときのプログ
ラムと装置動作を図4を参照して以下に説明する。
【0045】まず、メモリ100から演算を受けるべき
情報ビット列i3〜i0を含むデータをレジスタ104
にロードする命令を実行する。このデータの中には、最
上位の情報ビットi3が最右位置に位置するように情報
ビット列i3〜i0が予め並べられている。図には例と
してi3〜i0={1,0,1,0}の場合を示した。
図9の場合と同様に、このレジスタ104の第4から第
2ビットは、検査ビット列の初期値p2a,p1a,p
0aである。次の演算で巡回のビット演算を行うが、そ
のためにビット演算命令を実行する。この命令が指定す
るビット演算アドレスは今の場合0番地であるとする。
ビット演算テーブルの0番地に記憶された制御信号C,
f8〜f0は図5(a)に示されるものである。ビット
選択器105の選択制御信号Cは、この場合、レジスタ
103のa3ビット信号を選択するように値”3”有す
る。また、制御信号f8A、f8B,,,f0A、f0
Bは、{11,00,10,10,10,01,10,
11,00}という値を有する。また、ビット入れ替え
テーブル108の0番地に記憶された選択制御信号h8
〜h0は、図5(b)に示すように、{3,6,5,
4,7,2,1,0}という値を有する。
【0046】選択制御信号Cの値が3であるので、ビッ
ト選択器105は最上位の検査ビットp2の初期値p2
0を選択する。この結果、共通の1ビット演算器E8に
は、最上位の情報ビットi3と上記初期値p2aが供給
される。制御信号f8A、f8Bがともに1であるの
で、共通の1ビット演算器E8の出力は、XOR(p2
a,i3)となる。また個別の1ビット演算器E7〜E
0の出力は、それぞれのブロック内に入力ビットA、B
を用いて示したように、0、A、A、A、B、A、XO
R(A、B)または0となる。具体的には、これらの1
ビット演算器の出力は、レジスタ104内の情報ビット
i3〜i0および検査ビット列の初期値p2a〜p0a
で示すと、図に示したように、0,i2,i1,i0,
XOR(i3+p2a),p1a,XOR(p0a,i
3,p2a),0となる。出力選択回路109の出力は
{i2,i1,i0,0,p1a,XOR(p0a,p
2a,i3),XOR(i3,p2a),0}となる。
図9に示したように、p2b=p1a,p1b=XOR
(p0a,p2a,i3),p0b=XOR(i3,p
2a)であるので、出力選択回路109の出力は{i
2,i1,i0,0,p2b,p1b,p0b}とな
り、これらのデータはレジスタ104に格納される。
【0047】こうして、図9におけるステップAからB
に至る処理が1ステップで実行できたことが分かる。し
たがって、前述のビット演算命令を3回繰り返して発行
し、以上の処理を3回繰り返すことにより、図9で示す
工程(C)、(D)、(E)を経て、情報ビット列i3
〜i0に対する検査ビット列p2e〜p0eをレジスタ
104内に得られる。その後、このレジスタ104内の
データをメモリ100にストアする命令を実行する。こ
うして、検査ビット列を4ステップで算出できることに
なる。上記ビット演算命令が一マシンサイクルで実行さ
れるようにプロセッサが構成されているときには、4マ
シーンサイクルで符号化が完了する。しかも、レジスタ
104以外の他のレジスタを必要としない。
【0048】以上の説明から明らかなように、本実施の
形態に示したビット演算器12は、共通のビット演算器
E8によるビット演算の結果に対して、個別の1ビット
演算器E0〜E7がさらにビット演算を行うことができ
る。例えば、上記の例では、検査ビットp1bを生成す
るのに、3つのデータp0a、i3、p2aに対する排
他的論理和演算を必要としたが、これら3つのデータの
内の二つのデータi3、p2aに対する排他的論理和演
算を共通のビット演算器E8により実行させ、その結果
データと第3のデータp0aとの排他的論理和演算を個
別の1ビット演算器E1により実行させることができ
た。この結果、検査ビット列p2b,p1b,p0bを
一つのビット演算命令により生成できる。
【0049】なお、ハミング符号(m,n)のための符
号化処理では、このm,nの値が変わると、レジスタ1
04に格納されるべき検査ビット列の位置が変化する。
したがって、ビット選択器105は、レジスタ104内
の任意のビットを共通のビット演算器E8に供給するた
めに設けられている。しかし、このm,nの値が変わっ
てもレジスタ104の最右ビット位置にセットされる最
上位の情報ビットは使用されるのが通常である。したが
って、共通のビット演算器E8に対する他方の入力は、
レジスタ104の第8ビットに限定されていても通常は
使用上は大きな制約ではない。
【0050】次に図2のプロセッサでビット入れ替え用
のビット演算命令を実行する場合を説明する。図11に
示したのと同じように、8ビットa〜hをシフトする場
合を説明する。図6には、このときの1ビット演算器E
0〜E8および出力選択回路109の動作を示してい
る。まず、シフトされるべきデータをメモリ100から
レジスタ104にロードする命令を実行する。つぎに、
ビット入れ替え用のビット演算命令を実行する。この命
令はビット演算アドレスとして1番地を指定するものと
する。ビット演算テーブル107の1番地には図7
(a)に示すように、制御信号{00,10,10,1
0,10,10,10,10,10,00}があらかじ
め記憶される。ビット入れ替えテーブル108には図7
(b)に示すように、{2,3,1,0,4,5,6,
7}が予め記憶される。この結果、共通の1ビット演算
器E8の出力は0であり、個別の1ビット演算器E0〜
E7はレジスタ104内の対応するビットa〜hをその
まま出力する。出力選択回路109は図10に示すよう
にビット入れ替えを行う。したがって、本実施の形態で
は、複数のビットの入れ替えを1ステップ、1マシーン
サイクルで実行できる。
【0051】本実施の形態では、個別の1ビット演算器
E0〜E8の各々への一つの入力ビットは、レジスタ1
04内の特定の1ビットであり、他の入力ビットは共通
の1ビット演算器E8の出力である。本実施の形態で
は、ビット選択器105と、共通の1ビット演算器E8
からなる回路部分を入力選択回路110を構成する第1
の入力選択回路と考える。また、レジスタ104内の各
ビットを特定の個別の1ビット演算器に与える線路も入
力選択回路110を構成する第2の入力選択回路と考え
る。
【0052】この入力選択回路110の構造では、個別
の1ビット演算器E0〜E8の各々への入力ビットが固
定であるかに見える。しかし、共通の1ビット演算器E
8への入力ビットの一つはビット選択器105よりレジ
スタ104の任意のビットが与えられる与えられる。し
たがって、入力選択回路110は、個別の1ビット演算
器E8を介して、レジスタ104内の任意のビットに対
する演算結果ビットを1ビット演算器E0〜E7に供給
している。したがって、このような入力選択回路110
も、各個別の1ビット演算器に、レジスタ104内の任
意のビットを供給していると考えることができる。しか
しながら、個別の1ビット演算器E0〜E8の各々への
一つの入力ビットは、レジスタ104内の特定の1ビッ
トであり、他の入力ビットは共通の1ビット演算器E8
の出力であり、個別の1ビット演算器E0〜E8の各々
には、レジスタ104内の任意のビットが供給可能では
ない。したがって、出力選択回路109が、個別の1ビ
ット演算器E0〜E8の出力の並び替えを行うことによ
り、個別の1ビット演算器E0〜E8の各々に出力を任
意のビット位置に出力可能にしている。
【0053】本実施の形態では、全ての1ビット演算器
E0からE7は、複数の演算を実行可能に構成されてい
る。しかし、以上の動作説明では、特定のいくつかの1
ビット演算器はこれらの全ての演算を使用していない。
図4から分かるように、ハミング符号の符号化のために
は、演算器E1のみEOR演算を実行している。1ビッ
ト演算器E2、E4〜E6は入力Aを選択し、E3は入
力Bを選択する。E0とE7は、0を出力する。一方、
図6から分かるように、各個別の演算器E0からE7は
A入力を選択するのみである。EOR演算を実行する1
ビット演算器は、生成すべき(m,n)ハミング符号の
長さに依存する。したがって、種々の長さのハミング符
号を生成できるように、また、ここで説明しなかった他
のビット演算を実行できるように、全ての個別の1ビッ
ト演算器E0からE7がこのEOR演算を実行できるよ
うに構成されている。入力Bを選択する1ビット演算器
はE3のみであるが、同じ理由で、他の1ビット演算器
もこの入力Bを選択可能に構成されている。
【0054】上述のように、ビット演算テーブル107
とビット入れ替えテーブル108にあらかじめ演算に必
要な制御信号を格納しておくことにより、複雑なビット
演算とシフト動作もプロセッサの命令でわずか一ステッ
プで行うことが可能となる。しかも、異なるハミング符
号を生成するビット演算あるいは異なる態様のビット入
れ替え演算を実行するには、それらの演算を要求するビ
ット演算命令が指定するビット演算アドレスを変更すれ
ばよい。
【0055】<発明の実施の形態2>実施の形態1で
は、全ての1ビット演算器E0からE7は、種々の長さ
のハミング符号を生成できるように、複数の演算を実行
可能に構成された。しかし、種々の長さのハミング符号
を生成する場合にも使用されない演算がある。たとえ
ば、1ビット演算器E0とE7は、生成すべきハミング
符号の長さが変わっても0出力するのみであり、EOR
演算を実行することはない。したがって、EOR演算を
使用する他のビット演算をプロセッサに実行させないと
きには、これらの一部の1ビット演算器は、EOR演算
を実行しないように構成できる。種々の長さのハミング
符号を生成するとしても、実用的に使用される符号長
m、情報ビット列の長さnはある程度の値に限定され
る。したがって、この限定された範囲のハミング符号を
生成するようにプロセッサを構成するときには、1ビッ
ト演算器E0とE7以外の他の1ビット演算器にもEO
R演算を実行しないものが出現する。このような、1ビ
ット演算器からもEOR演算機能を削除できる。
【0056】さらに、このように限定された機能のプロ
セッサでは、一部の1ビット演算器はA入力またはB入
力しか選択しないことが起こりうる。このため、入力選
択回路110は、その限定された入力信号だけをそれら
の特定の1ビット演算器に固定的に供給するように構成
される。
【0057】以上の改善により、ビット演算器12の構
造が簡単化される。本発明は、このように簡単化された
bビット演算器も含む。
【0058】<発明の実施の形態3>実施の形態1にお
いては、入力選択回路110は、個別の1ビット演算器
E0からE7にレジスタ104内の対応する特定の1ビ
ットを供給した。しかし、本実施の形態では、個別の1
ビット演算器E0からE7の各々に、レジスタ104内
の任意の位置の1ビットを供給するように、入力選択回
路内に、それぞれ一つの個別の1ビット演算器に対応す
る複数のビット選択器を設ける。個別の1ビット演算器
E0からE7の各々に共通の1ビット演算器E8の出力
を与えるのは実施の形態1と同じである。以上の入力選
択回路を使用したので、出力選択回路109は使用しな
くてよい。図2に用いたビット入れ替えテーブル108
は、上記の新たに設けられた複数のビット選択器の制御
に使用すればよい。この実施の形態に依れば、出力選択
回路109を用いなくても先に述べた巡回型の符号を生
成するためのビット演算命令とビット並び替えのための
ビット演算命令とを実行できる。
【0059】<発明の実施の形態4>より一般的にビッ
ト演算器12を構成するには、実施の形態1において、
共通の1ビット演算器E8を省略し、各個別の1ビット
演算器E0からE7を、3入力の演算器にて構成し、入
力選択回路110を、レジスタ104内の任意の3ビッ
トを各個別の1ビット演算器に供給するように構成する
ことである。各個別の1ビット演算器は、レジスタ10
4内の任意の第1のビットと第2のビットに対して1ビ
ット演算を行う第1のビット演算器と、その演算器の出
力と、レジスタ104内の任意の第3のビットに対して
1ビット演算を行う第2の1ビット演算器により構成さ
れる。第1,第2の1ビット演算器は、ともに図1
(b)に示したものと同じ構造を有すればよい。ビット
演算テーブル107は、このように構成された個別の1
ビット演算器の動作を制御するために4ビットの制御信
号を各個別の1ビット演算器に対応して記憶する必要が
ある。なお、この実施の形態においても、出力選択回路
109を用いなくても、前述の2種のビット演算命令を
実行できる。
【0060】<発明の実施の形態5>実施の形態1にお
いては、入力選択回路110内に、共通の1ビット演算
器E8を設けた。しかし、実施の形態2のように、入力
選択回路110を構成した状態で、この演算器を省略す
る。この場合、検査ビットp0bの算出には2回の排他
的論理和演算を必要とする。従って、前述の符号化のた
めのビット演算を実行するには、ビット演算回路を2度
使用する必要がある。すなわち、レジスタ104内のデ
ータに対してビット演算を1ビット演算器E0〜E7に
より行った後に、その結果得られる中間結果データをレ
ジスタ104に格納する。この中間結果データに対し
て、別のビット演算を行う。このためには、ビット演算
テーブル107、ビット入れ替えテーブル108には、
一つのビット演算命令に対して、ビット演算器12を2
度動作させるように、二つのアドレスに異なる信号を記
憶する。
【0061】<変形例>本発明は以上の実施の形態1、
2に限定されるのでなく、以下に例示する変形例を含
み、いろいろの変形例により実現可能であるのは言うま
でもない。
【0062】(1)実施の形態1においては、演算を受
けるべきデータをメモリ100よりビット演算器12内
のレジスタ104にロードした。しかし、ビット演算器
12を、プロセッサに通常含まれている複数の汎用レジ
スタに保持されたデータに対してビット演算を実行する
ように構成することもできる。この場合には、汎用レジ
スタの一つをビット演算命令で指定する。その汎用レジ
スタは上記レジスタ104の代わりに使用される。した
がって、レジスタ104は不要である。この場合には、
ビット演算の結果データは、その指定された汎用レジス
タに格納される。あるいはビット演算命令が指定する他
の汎用レジスタに格納させることもできる。
【0063】(2)実施の形態1では、ビット演算器1
2等の演算器の制御は制御回路123により実行される
と仮定した。しかし、この回路に代えて、マクロ命令に
より制御する回路を用いてよいのは言うまでもない。
【0064】(3)実施の形態1では、ビット演算テー
ブル107とビット入れ替えテーブル108は、ROM
で構成されたが、これらをRAMで構成し、プロセッサ
の起動時にメモリ100より必要な制御信号をこのRA
Mに転送するようにしてもよい。
【0065】
【発明の効果】本発明によれば、ビット演算を高速にし
かも種々の態様で実行できるプロセッサが得られる。
【図面の簡単な説明】
【図1】本発明に係るビット演算器の概略構造図。
【図2】本発明に係るプロセッサの概略構造図。
【図3】図2のプロセッサに使用するビット演算命令の
フォーマットを示す図。て符号器
【図4】(7、4)ハミング符号を生成するときの図1
の演算器の動作を説明する図。
【図5】(7、4)ハミング符号を生成するのに使用す
る、ビット演算テーブルとビット入れ替えテーブル内の
信号を示す図。
【図6】ビット入れ替え演算を実行するときの図1の演
算器の動作を説明する図。
【図7】ビット入れ替え演算を実行するときに使用す
る、ビット演算テーブルとビット入れ替えテーブル内の
信号を示す図。
【図8】従来の(7、4)ハミング符号の符号器の概略
構造を示す図。
【図9】(7、4)ハミング符号の符号器による符号化
処理をプロセッサで実行させるのに必要な処理の概略を
示す図。
【図10】図9の処理を従来のプロセッサで実行させる
手順を説明する図。
【図11】ビット入れ替え処理の一例を説明する図。
【図12】従来のプロセッサで図11のビット入れ替え
処理を実行させるときの処理手順を説明する図。
【符号の説明】
E0〜E7…個別の1ビット演算器、E8…共通の1ビ
ット演算器、G0〜G7…1ビット選択器。

Claims (8)

    【特許請求の範囲】
  1. 【請求項1】ビット演算器を有するプロセッサであっ
    て、 上記ビット演算器は、 複数の1ビット演算器と、 演算を受けるべき一つのデータを構成する複数のビット
    の内、各1ビット演算器毎に2つの入力ビットを選択し
    て供給する入力選択回路と、 ビット演算を要求する命令に応答して、上記入力選択回
    路と上記複数の1ビット演算器とを制御するための演算
    制御回路とを有し、 上記複数の1ビット演算器の内の少なくとも一部は、複
    数種類の演算を実行可能であり、 上記入力選択回路は、上記複数の1ビット演算器の内の
    少なくとも一部のビット演算器の各々に供給すべき2つ
    の入力ビットの内の少なくとも一方を切り替え可能であ
    るもの。
  2. 【請求項2】上記入力選択回路は、 上記データを構成する上記複数の入力ビットから、各1
    ビット演算器ごとに1ビットを選択し、選択された1ビ
    ットをその1ビット演算器に第1の入力ビットとして供
    給するための第1の入力選択回路と、 上記複数の入力ビットの内の特定のビットを選択し、上
    記複数の1ビット演算器に対する共通の第2入力ビット
    として供給する第2の入力選択回路とよりなる請求項1
    記載のプロセッサ。
  3. 【請求項3】上記第2の入力選択回路は、 上記特定のビットを選択する選択器と、 選択された上記特定のビットに対して、ビット演算を実
    行するための、上記複数の1ビット演算器に共通に設け
    られた1ビット演算器とを有し、上記共通の1ビット演
    算器は、その出力を上記複数の1ビット演算器に上記共
    通の第2入力ビットとして供給する請求項2記載のプロ
    セッサ。
  4. 【請求項4】上記共通の1ビット演算器は、複数の演算
    を実行可能であり、 上記演算制御回路は、上記命令に応答して、上記共通の
    1ビット演算器に、それが実行すべき演算を指定する信
    号を供給する請求項3記載のプロセッサ。
  5. 【請求項5】上記第2の入力選択回路は、上記複数の入
    力ビットの内の予め定められた特定の位置のビットを上
    記共通の演算器に供給する回路をさらに有し、 上記共通の演算器は、上記選択器により選択されたビッ
    トと上記特定のビットとに対して上記複数の演算の一つ
    を実行可能である請求項4記載のプロセッサ。
  6. 【請求項6】上記複数の1ビット演算器と上記共通の1
    ビット演算器は、 それぞれ第1,第2の入力ビットが入力される二つのA
    NDゲートと、 上記二つのANDゲートの出力が入力されるORゲート
    からなり、 上記演算制御回路が上記複数の1ビット演算器の各々に
    供給する上記信号は、その1ビット演算器に含まれた上
    記二つのANDゲートのそれぞれのオン、オフを制御す
    る信号であり、 上記演算制御回路が上記共通の1ビット演算器に供給す
    る上記信号は、その共通の1ビット演算器に含まれた上
    記二つのANDゲートのそれぞれのオン、オフを制御す
    る信号である請求項5記載のプロセッサ。
  7. 【請求項7】上記第1の入力選択回路は、 上記データを構成する上記複数の入力ビットの各ビット
    を、そのビット位置に対応して選んだ上記複数の1ビッ
    ト演算器の一つに、第1の入力ビットとして供給する回
    路よりなる請求項2から6のいずれか一つに記載のプロ
    セッサ。
  8. 【請求項8】上記複数の1ビット演算器から出力される
    複数の出力ビットからそれぞれ1ビットを選択するため
    の複数の出力選択回路をさらに有し、 上記演算制御回路は、上記命令に応答して、選択すべき
    出力ビットを指定する信号を各出力選択回路に供給する
    請求項1から7のいずれか一つに記載のプロセッサ。
JP10005096A 1998-01-13 1998-01-13 プロセッサ Pending JPH11203106A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP10005096A JPH11203106A (ja) 1998-01-13 1998-01-13 プロセッサ

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP10005096A JPH11203106A (ja) 1998-01-13 1998-01-13 プロセッサ

Publications (1)

Publication Number Publication Date
JPH11203106A true JPH11203106A (ja) 1999-07-30

Family

ID=11601860

Family Applications (1)

Application Number Title Priority Date Filing Date
JP10005096A Pending JPH11203106A (ja) 1998-01-13 1998-01-13 プロセッサ

Country Status (1)

Country Link
JP (1) JPH11203106A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008523761A (ja) * 2004-12-14 2008-07-03 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ プログラム可能な信号処理回路及びインターリーブ方法
JP2017529601A (ja) * 2014-09-25 2017-10-05 インテル・コーポレーション ビットシャッフルプロセッサ、方法、システム、および命令

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008523761A (ja) * 2004-12-14 2008-07-03 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ プログラム可能な信号処理回路及びインターリーブ方法
US8108651B2 (en) 2004-12-14 2012-01-31 Silicon Hive B.V. Programmable signal processing circuit and method of interleaving
KR101235822B1 (ko) 2004-12-14 2013-02-21 실리콘 하이브 비.브이. 프로그램 가능한 신호 처리 회로 및 인터리빙 방법
US8433881B2 (en) 2004-12-14 2013-04-30 Intel Benelux B.V. Programmable signal processing circuit and method of interleaving
JP2017529601A (ja) * 2014-09-25 2017-10-05 インテル・コーポレーション ビットシャッフルプロセッサ、方法、システム、および命令
US10713044B2 (en) 2014-09-25 2020-07-14 Intel Corporation Bit shuffle processors, methods, systems, and instructions

Similar Documents

Publication Publication Date Title
JP5703385B2 (ja) データ処理装置および方法
US4037213A (en) Data processor using a four section instruction format for control of multi-operation functions by a single instruction
WO2001089098A2 (en) A method and system for performing permutations with bit permutation instructions
CA2375058A1 (en) A method and system for performing permutations using permutation instructions based on modified omega and flip stages
US6601158B1 (en) Count/address generation circuitry
WO2004053718A1 (en) Cellular engine for a data processing system
WO2009092987A1 (en) Apparatus and method for performing permutation operations on data
CN111563281B (zh) 一种支持多种加解密算法的处理器及其实现方法
US20230325189A1 (en) Forming Constant Extensions in the Same Execute Packet in a VLIW Processor
JPS6041768B2 (ja) デ−タ処理装置
US20170115990A1 (en) Conditional execution specification of instructions using conditional extension slots in the same execute packet in a vliw processor
JP4686435B2 (ja) 演算装置
JP5382635B2 (ja) 二重データ経路処理のための装置および方法
JP4950796B2 (ja) 半導体装置
JPH11203106A (ja) プロセッサ
KR20070002163A (ko) 재구성 가능 프로세서의 효율적인 재구성 방법
US4831572A (en) Polynomial vector arithmetic operation control system
JP2006072961A (ja) 演算処理装置のメモリ回路
US6845441B2 (en) User initiated microcode modification
JPH0644051A (ja) マイクロコンピュータ
KR960011681A (ko) 마이크로프로세서
JP5025521B2 (ja) 半導体装置
JP3251447B2 (ja) 符号化装置及び方法、並びに復号化装置及び方法
US7039795B2 (en) System and method for using a two-stage multiplexing architecture for performing combinations of passing, rearranging, and duplicating operations on data
JP2787958B2 (ja) 文字パターン発生器

Legal Events

Date Code Title Description
EXPY Cancellation because of completion of term