JPH05150942A - 演算装置、ビツトフイールド操作演算方法、デコーダ、及び半導体集積回路装置 - Google Patents

演算装置、ビツトフイールド操作演算方法、デコーダ、及び半導体集積回路装置

Info

Publication number
JPH05150942A
JPH05150942A JP4137957A JP13795792A JPH05150942A JP H05150942 A JPH05150942 A JP H05150942A JP 4137957 A JP4137957 A JP 4137957A JP 13795792 A JP13795792 A JP 13795792A JP H05150942 A JPH05150942 A JP H05150942A
Authority
JP
Japan
Prior art keywords
data
shift
bit
circuit
output
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
JP4137957A
Other languages
English (en)
Other versions
JP3247724B2 (ja
Inventor
Shigeru Nakahara
茂 中原
Shinobu Yabuki
忍 矢吹
Ryuichi Satomura
隆一 里村
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 JP13795792A priority Critical patent/JP3247724B2/ja
Publication of JPH05150942A publication Critical patent/JPH05150942A/ja
Application granted granted Critical
Publication of JP3247724B2 publication Critical patent/JP3247724B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Abstract

(57)【要約】 【目的】 ビットフィールド操作演算可能な演算装置が
チップに占める面積を低減し、且つ、当該演算処理の高
速化を図ることである。 【構成】 入力データを任意ビットシフトする第1バレ
ルシフタBSFT1のシフト量と同一にシフト量が制御
される第2バレルシフタBSFT2を、ビットフィール
ド操作演算装置におけるマスクデータ生成回路MASK
Gとする。第1及び第2バレルシフタの夫々の一列分の
トランジスタ形成領域を、レジスタファイルの1ビット
分の記憶セルの幅と同一幅の領域に並存させ、且つ、双
方のバレルシフタにおけるシフト量制御線を共通化して
チップ占有面積を低減する。データの任意領域抽出処理
の速度向上のため第1バレルシフタによる入力データの
シフトに並行して、その入力データの第0ビットで全ビ
ットを符号拡張する回路EXT2を設ける。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明はビットフィールド操作演
算の為の演算装置並びにその演算方法に関し、例えばプ
ロセッサの整数演算部に適用して有効な技術に関するも
のである。
【0002】
【従来の技術】ビットフィールド操作演算としては、例
えばデータの任意領域の抽出やデータの任意領域の置換
のための処理がある。例えば、データの任意領域の抽出
を指示する命令としてExtract命令がある。この
イクストラクト命令に応答して、基本的には図16に示
されているような処理が行われる。すなわち、(i)抽
出する領域をデータの右端までシフトするデータシフト
処理、(ii)抽出すべき領域の各ビットに対応したビ
ットに“1”を立てたマスクデータを生成するマスクデ
ータ生成処理、(iii)シフトしたデータから、マス
クデータ中のビット値が1である領域だけ取り出し、残
りの領域に0もしくは符号ビットを詰める拡張処理を行
うものである。具体的に述べるならば、入力データの第
hビットを右詰めにシフトし、領域幅LENで特定され
る領域以外の領域に対してはサインビットSで符号拡張
し又はビット0を詰めて拡張し、入力データに対して所
要領域LENを抽出した出力データを得る。このときの
符号拡張又は0拡張すべき領域はマスクデータによって
指定する。後者の置換処理を指示する命令としては、例
えばDeposit命令がある。この命令により、基本
的には図17に示されるような処理が行われる。すなわ
ち、(i)置換すべき領域を置換したい位置まで左シフ
トするデータシフト処理、(ii)置換すべき領域の各
ビットに対応したビットに“1”を立てたマスクデータ
を生成するマスクデータ生成処理、及び、(iii)シ
フトしたデータから、マスクデータ中のビット値が1で
ある領域だけ取り出し、レジスタなどから読出されたデ
ータ、もしくは各ビットが0詰めされたデータの上に書
き込むマスク実行処理を行うものである。例えば、入力
データの右端を第hビットまでシフトし、シフトされた
データの第hビットから幅LENの領域で、レジスタの
データ又は全ビット“0”のデータの一部を置換して、
出力データを得るものである。このとき、置換すべき領
域はマスクデータによって特定される。本明細書では、
データとして、32ビットの幅を有するデータについて
主に説明する。32ビット幅のデータは、特に制限され
ないが、その右端が最下位ビット(LSB)、左端が最
上位ビット(MSB)とされ、最上位ビットを第0ビッ
ト、最下位ビットを第31ビットと定義する。
【0003】前記双方のマスクデータの生成に利用する
ことができるマスクデータ生成回路としては、図18に
示されているようなものを考えることができる。この回
路は、減算器SUB、2個のマスクビット生成用論理回
路MLOG1,MLOG2、及び論理積回路ANDによ
って構成される。前記減算器SUBは、抽出又は置換す
べき領域の左端のビット位置を領域幅LENを表わすデ
ータLENDと当該領域幅の下位側ビット位置hを示す
情報hDから生成する。マスクビット生成論理回路ML
OG1は前記領域の左端から最下位ビットまでに1を詰
めたデータを生成し、マスクビット生成論理回路MLO
G2は前記領域の右端から最上位ビットまでに1を詰め
たデータを生成する。論理積回路ANDはそれらのデー
タの論理積を採って、マスク実行や符号拡張に利用する
マスクデータを生成する。図18にはディポジット命令
用のマスクデータを生成する手順が一例として示されて
いる。イクストラクト命令用のマスクデータは第hビッ
トを第31ビットとすることによって生成される。
【0004】
【発明が解決しようとする課題】データのビット若しく
は領域が画素と対応されるようなグラフィックデータを
扱う処理、例えば動画像のグラフィック処理などにおい
ては、データのある領域の内容を別のデータの所要領域
に複写したりすることがある。このような処理に前記イ
クストラクト命令及びディポジット命令を適用すること
により、命令実行サイクル数を著しく低減することがで
きる。それら命令を実行するためのビットフィールド操
作演算装置を専用ハードウェアとして採用する場合に
は、前記マスクデータ生成回路の他に、データの任意ビ
ット数のシフトを行うバレルシフタ、バレルシフトされ
たデータをマスクデータに基づいて符号拡張したり、あ
るいはマスクしたりする回路が必要とされる。本発明者
はそのようなビットフィールド操作演算装置をRISC
形式のプロセッサに内蔵させることを検討した。これに
よれば、前記図18に示されるマスクデータ生成回路の
占有面積はビットフィールド操作演算装置全体の約20
%を占め、チップ面積を増大させることが明らかとなっ
た。
【0005】更に、前記イクストラクト命令において領
域幅LENが入力データの第0ビットを越えて左に広が
る場合、出力データにおける符号拡張では第0ビットを
符号ビットとして扱うことになるが、最初のバレルシフ
ト処理で領域LENを右詰めとするようにシフトしてし
まうと、マスクデータに基づく符号拡張に際して入力デ
ータの第0ビットを特定することができなくなる。その
ため、予め入力データの第0ビットを全ビットに配分し
た符号拡張データを生成し、この拡張データと入力デー
タとをバレルシフタに供給してバレルシフト処理を行う
ことを検討した。しかしながら、第0ビットを全ビット
に配分した符号拡張データを生成した後でバレルシフト
処理を行っていたのでは、その従属的な処理故にイクス
トラクト命令の実行速度が遅れることを本発明者は見い
出した。
【0006】また、符号拡張回路において拡張すべき符
号ビットをマスクデータに基づいて特定するためにはマ
スクデータの論理値が変化する境界ビットの位置を探さ
なければならない。そのために、入力データを相補レベ
ルにしてデコードする論理を採用すると、入力を相補レ
ベルに変換するためのインバータのような論理回路が多
数必要になり、この点においてもチップ面積増大を惹起
することが明らかにされた。
【0007】本発明の目的は、データの任意領域の抽出
やデータの任意領域の置換を行う為の演算装置がチップ
に占める面積を低減することができる演算装置を提供す
ることにある。
【0008】本発明の別の目的は、データの任意領域の
抽出やデータの任意領域の置換を行う為のビットフィー
ルド操作演算の高速化を図ることにある。
【0009】本発明の更に別の目的は、チップ占有面積
の低減に寄与するデコーダを提供することにある。
【0010】本発明の更に別の目的は、高速化または/
及び小型化が可能なバレルシフタ回路を提供することに
ある。
【0011】本発明の前記並びにその他の目的と新規な
特徴は本明細書の記述及び添付図面から明らかになるで
あろう。
【0012】
【課題を解決するための手段】本願において開示される
発明のうち代表的なものの概要を簡単に説明すれば下記
の通りである。
【0013】すなわち、データの任意領域の抽出、ある
いはデータの任意領域の置換などのビットフィールド操
作を行う演算装置において、入力データを任意ビットシ
フトする第1バレルシフタとシフト量が同一に制御され
る第2バレルシフタをマスクデータ生成回路に採用す
る。マスクデータ生成回路は、ビット列における領域幅
を指定するための情報に基づいて第2マスクデータを生
成するマスクビット生成回路を有し、前記第2バレルシ
フタはそのマスクビット生成回路の出力を受けて第1マ
スクデータを生成する。第1マスクデータは、前記第1
バレルシフタの出力とその他のデータとを受けてその何
れかをビット毎に選択して出力する選択手段の選択信号
として利用され、第2マスクデータは、前記第1バレル
シフタから出力されるデータに対する符号拡張又は所定
論理値での拡張を行う拡張回路のための拡張領域指定情
報として利用される。
【0014】前記第1バレルシフタ及び第2バレルシフ
タを設けることにより生じるチップ面積の増加を抑制す
る為に、前記第1及び第2バレルシフタの夫々における
一列分のトランジスタ形成領域を、演算情報を一時的に
保持するレジスタファイルのような記憶手段の1ビット
分の記憶セルがチップ上で占有する幅と同一幅の領域に
並存させ、且つ、双方のバレルシフタにおけるシフト量
制御線を共通化するものである。
【0015】前記拡張回路において、第2マスクデータ
に基づいて符号拡張すべき符号ビットの位置を特定する
ための特定回路を設けることにより生じるチップ面積の
増加を抑制するために、特定回路として、第2マスクデ
ータの相互に隣合う2ビットの論理値をそれぞれ比較
し、その第2マスクデータのビット列中で論理値が変化
される境界ビットを他のビットとは異なる論理値で出力
する論理ゲート回路を用いる。この論理ゲート回路は複
数個の排他的論理和回路によって構成することができ
る。斯る論理ゲート回路はその他のデコード論理回路と
しても利用することができ、nビットのデータを2のn
乗ビットのデータに展開する手段の出力を前記論理ゲー
ト回路で処理することにより、nビットのデータに対す
るデコード論理を構成することができる。
【0016】イクストラクト命令などによるデータの任
意領域を抽出する処理において、抽出したい領域以外の
部分に対する符号拡張処理の速度を向上させるために、
前記第1バレルシフタの入力データを受け、そのデータ
の所定ビット例えば第0ビットに基づいて全ビットを符
号拡張し、これを前記選択手段の前記他のデータとして
出力可能な符号拡張回路を設ける。
【0017】斯る符号拡張回路を採用した演算装置を用
いて、入力データの任意領域を抽出して出力するビット
フィールド操作演算を行う場合には、前記第1バレルシ
フタによって入力データをシフトする処理と、前記符号
拡張回路によって前記入力データの全ビットを符号拡張
する処理とを並列化して、双方の処理に要する一連の処
理時間を短縮し、双方の処理結果を前記選択手段に入力
して、第1マスクデータで選択させて、入力データの抽
出したい領域と第0ビットを含むデータを生成する。
【0018】前記演算装置は、前記別のデータの任意領
域を前記入力データの所定領域によって置換する処理を
行うことができる。その処理は、前記第1バレルシフタ
を用いて、入力データの置換する領域を置換したい位置
まで所定ビットシフトする処理と、前記シフトされたデ
ータにおける置換する領域を特定するための第1マスク
データを、前記第2バレルシフタで生成する処理と、第
1バレルシフタの出力データと別のデータとを第1マス
クデータに基づいて選択する処理とを含む。
【0019】
【作用】上記した手段によれば、ビットフィールド操作
演算装置において、入力データのシフト用並びにマスク
データ生成用の夫々にバレルシフタが採用され、且つ、
双方のバレルシフタのシフト量が相互に同一にされる。
これにより、データの任意領域の抽出やデータの任意領
域の置換などのビットフィールド操作が比較的簡単化さ
れ、且つ、以下で説明する処理の高速化並びに高機能化
が図られる。
【0020】2組のバレルシフタをレジスタファイルの
1ビット分の記憶セルの幅に合わせて折り重ねるように
レイアウトすることにより、ビットフィールド操作演算
の為の演算装置のチップ占有面積を低減する。
【0021】入力データに対する符号拡張とデータシフ
トとを時間的に並列化することは、データの任意領域を
抽出するための演算速度の高速化を図る。
【0022】マスクビットを用いてデコード結果を得る
ようにすることによって、入力データを相補レベルの信
号に変換する回路を不要とし、回路規模若しくはチップ
占有面積を低減する。
【0023】
【実施例】本発明に係るビットフィールド操作演算装置
並びにその演算手法を実施例に基づいて順次説明する。
【0024】(1)プロセッサ 図1には本発明が適用されるマイクロプロセッサの一実
施例が示されている。同図に示されるプロセッサMCU
は、特に制限されないが、命令キャッシュメモリCC、
データキャッシュメモリDC、整数演算ユニットEU、
浮動小数点演算ユニットFU、命令制御用ランダムロジ
ックユニットIU、メモリ制御用ランダムロジックユニ
ットMU、2次キャッシュ制御用ランダムロジックユニ
ットSU、命令用タグキャッシュメモリCA、データ用
タグキャッシュメモリDA、命令用アドレス変換バッフ
ァCT、データ用アドレス変換バッファDT、及び入出
力ユニットI/Oなどを備える。これらは公知の半導体
集積回路製造技術によって、シリコン基板のような1個
の半導体基板に形成される。特に制限されないが、この
プロセッサMCUはRISC(Reduced Ins
tructionSet Computer)形式のア
ーキテクチャを有する。このRISCアーキテクチャは
公知であり、命令セットを簡素化して処理の高速化を図
るものであり、例えば制御記憶を用いることなく命令デ
コードをランダムロジックのようなハードワイヤード論
理だけで行うことも可能である。
【0025】図2には前記整数演算ユニットEUの一例
が示される。この整数演算ユニットEUは、命令キャッ
シュメモリCCから読出されて命令制御用ランダムロジ
ックユニットIUで解読された解読結果に従って制御さ
れ、算術論理演算装置ALUとビットフィールド操作演
算装置SMUの2つの演算装置を有し、前記命令制御用
ランダムロジックユニットIUから出力される制御信号
に基づいて何れかが動作させられる。演算は整数演算ユ
ニットEUに含まれるレジスタファイルREGFに保持
されているデータに対して行われる。レジスタファイル
REGFから読出されたデータは整数演算ユニットEU
内のソースバスSB1,SB2を通り、算術論理演算装
置ALUやビットフィールド操作演算装置SMUに送ら
れる。データを受け取った算術論理演算装置ALUやビ
ットフィールド操作演算装置SMUは所定の演算を実行
し、演算結果を書き込みバスWBを通して再びレジスタ
ファイルREGFへ書き戻す。整数演算ユニットEU
と、上述したその他のユニットとの間でのデータ転送は
ロードバスLBを介して行われる。前記算術論理演算装
置ALUはレジスタ間の算術/論理演算やLOAD/S
TORE命令実行時のメモリアクセスのアドレス、分岐
命令での分岐先のアドレス計算などを行う。前記ビット
フィールド操作演算装置SMUは、通常のシフト命令以
外に、他のRISCプロセッサにはないデータの任意領
域の抽出やデータの任意領域の置換などを行うものであ
り、本発明の一実施例に係る演算装置である。
【0026】前記ビットフィールド操作演算装置SMU
が実行する命令は、 シフト命令、 イクストラクト命令[Extract命令(データの
任意領域の抽出]、 ディポジット命令[Deposit命令(データの任
意領域の置換)] に大別され、夫々の命令は全て1マシンサイクルで実行
される。イクストラクト命令の基本的なオペレーション
は図16に示され、ディポジット命令の基本的なオペレ
ーションは図17に示される。これらの命令は他のRI
SCプロセッサにはない専用オペレーションのためのも
のである。同様の機能はCISCプロセッサでは存在す
るが、その演算はマイクロプログラム制御(前記制御記
憶を用いた制御)により、十数サイクルを要する。イク
ストラクト命令はデータの任意領域を右端へシフトし、
残りの領域には0または符号ビットを詰めるものであ
る。抽出するデータの任意領域は、領域幅LENと領域
の右端のビット位置hで指定される。ディポジット命令
はイクストラクト命令とは逆のオペレーションであり、
データの右端の幅LENで指定される領域を、別データ
の任意領域に書き込む命令である。このとき、書き込ま
れる下地とされるデータは、特に制限されないが、レジ
スタファイルREGFから供給されるデータ又は全ビッ
トが論理0のデータとされる。
【0027】図19の(A)及び(B)には、上記イク
ストラクト命令のフォーマットが示されている。残りの
領域に“0”を詰めるか、符号ビットを詰めるかは、オ
ペレーションコードによって決められる。そのため、イ
クストラクト命令には、2種類の命令がある。例えば、
図19の(A)に示されているイクストラクト命令は、
残りの領域に“0”を詰めることを指示するオペレーシ
ョンコードOP−EX1を有し、図19の(B)に示さ
れているイクストラクト命令は、残りの領域に符号ビッ
トをを詰めることを指示するオペレーションコードOP
−EX2を有する。本実施例においては、上記ビット位
置hがイクストラクト命令に含まれるデータ&あるいは
予じめシフト量用制御レジスタ(図示しないが、上記命
令制御用ランダムロジックユニットIUに含まれてい
る)に保持されたデータによって決められる。制御レジ
スタに保持されているデータ(コード化されたデータ)
を使うのか、あるいは命令中のフィールド&に保持され
ているデータ(コード化されたデータ)を使うのかは、
イクストラクト命令中の制御フィールドSの値によって
定まる。例えば、制御フィールドSに“1”を設定する
ことにより、当該命令中のフィールド&の値が上記ビッ
ト位置hを表わすデータとして使われ、制御フィールド
Sに“0”を設定することにより、シフト量用制御レジ
スタの値が上記ビット位置hを表わすデータとして使わ
れる。イクストラクト命令中のフィールドLENDは、
上記領域幅LENを表わすデータ(コード化されたデー
タ)が保持されるフィールドである。
【0028】図19の(C)及び(D)には、ディポジ
ット命令のフォーマットが示されている。このディポジ
ット命令の場合にも、2種類の命令が用意されている。
例えば、図19の(C)に示されているディポジット命
令は、書き込まれる下地のデータとして、レジスタファ
イルREGF中のレジスタに保持されているデータを用
いることを表わすオペレーションコードOP−DE1を
有する。これに対して、図19の(D)に示されている
ディポジット命令は、下地のデータとして“0”を用い
ることを表わすオペレーションコードOP−DE2を有
している。図19の(C)に示されているディポジット
命令の場合には、下地データを保持しているレジスタを
指示する必要がある。そのため、この図19(C)のデ
ィポジット命令はそのレジスタの番号を指示するデータ
REG−Noを保持するフィールドを有している。ま
た、図19の(C)及び(D)に示されているフィール
ドLEND,S,&は、前記イクストラクト命令のそれ
らと同じである。
【0029】データの任意領域を、別データの任意領域
に置換するオペレーションは、グラフィック処理等で頻
繁に利用されるが、そのオペレーションに本実施例に係
るビットフィールド操作演算装置SMUを用いない場
合、即ち本実施例とは別のRISCプロセッサを用いる
場合には、図3に示される以下の6命令を実行すること
が必要になる。 シフト命令 ;置換したい領域が置換したい位置
(所望の位置)にくるまでシフトする。 LOAD命令 ;置換されるべき領域のビットに対応
したビットに1を立てたマスクデータを読み込む。 AND命令 ;シフトしたデータとマスクデータの
論理積をとる。 ビット反転命令;マスクデータのビット反転データを
作成する。 AND命令 ;ビット反転データと下地データの論
理積をとる。 OR命令 ;で作成したデータと、で作成し
たデータの論理和をとる。
【0030】これに比べ、本実施例のビットフィールド
操作演算装置SMUでは、イクストラクト命令とディポ
ジット命令の2サイクルで同様のオペレーションが完了
し、処理時間が3倍以上も短縮され、高速なグラフィッ
ク処理等が可能となる。
【0031】図4には本実施例のマイクロプロセッサM
CUを用いたグラフィック処理システムの一例が示され
る。システムバスSBにはディスプレイCRT、キーボ
ードKBD、主記憶装置MMRYなどが接続され、デュ
アルポートを持つ共有メモリのようなメモリインタフェ
ースMITFによってペリフェラルバスPBに接続され
る。ペリフェラルバスPBにはマイクロプロセッサMC
Uが接続され、夫々のマイクロプロセッサMCUには2
次キャッシュメモリCMRYが結合される。
【0032】(2)ビットフィールド操作演算装置 図5にはビットフィールド操作演算装置SMUの一実施
例が示される。
【0033】ビットフィールド操作演算装置SMUは、
入力データをシフトするための第1バレルシフタBSF
T1、マスクデータ生成回路MASKG、マスク実行回
路MASKE、拡張回路EXT1、及び第0ビット符号
拡張回路EXT2を主体とする。第1バレルシフタBS
FT1は、データの任意ビットシフトを行うものであ
り、セレクタSEL2,SEL3から夫々1ワード(本
実施例において1ワードは32ビットとする)のデータ
を入力して合計2ワードを同時にシフトして1ワードの
データを出力する。図6及び図8から分かるように、出
力されるワードの各ビット位置は、上位ワードの各ビッ
ト位置に対応している。このことは、バレルシフタBS
FT2についても同様である。シフト量はデコーダSD
ECの出力によって決定される。尚、この第1バレルシ
フタBSFT1はイクストラクト命令及びディポジット
命令の他に、通常のシフト命令にも使用する。他のRI
SCプロセッサには、ビットフィールド操作演算器とし
てこのこのようなバレルシフタのみを備えているものが
多い。
【0034】前記マスク実行回路MASKEは、前記マ
スクデータ生成回路MASKGで生成される第1マスク
データMASKD1をもとにマスクを実行する回路であ
る。この回路は各入力に夫々1ワードのデータが入力さ
れる2入力形式のセレクタとして機能され、第1マスク
データMASKD1の各ビットの値に従い、第1バレル
シフタBSFT1から出力されるデータとセレクタSE
L1側から供給されるデータとをビット毎に選択して合
計1ワードのデータを出力する。
【0035】前記拡張回路EXT1は、イクストラクト
命令の実行時に前記マスクデータ生成回路MASKGで
生成される第2マスクデータMASKD2をもとに、マ
スク実行回路MASKEから出力されるデータの0拡張
(論理0拡張)又は符号拡張を行う。尚、拡張回路EX
T1は、ディポジット命令実行時にはマスク実行回路M
ASKEから出力されるデータをそのまま出力する。
【0036】 AT:1=マスク実行回路MASKEの出力を選択 AT:2=第2マスクデータMASKD2に従ってマスク実
行回路MASKEの出力とセレクタSEL6の出力から
選択 AT:3=第1マスクデータMASKD1に従ってシフトさ
れたデータとセレクタSEL1の出力から選択 AT:4=シフトされたデータを選択
【0037】前記第0ビット符号拡張回路EXT2は、
入力データの第0ビットの値で当該入力データの全ビッ
トを符号拡張して、前記セレクタSEL1に出力する。
第0ビット符号拡張回路EXT2の構成は、後で述べる
図20の回路の一部を使うことにより容易に実現でき
る。
【0038】図5に示されているセレクタSEL1〜S
EL5のそれぞれは、上記命令制御用ランダムロジック
ユニットIUにより形成された制御信号によって制御さ
れる。上記命令制御用ランダムロジックユニットIU
は、特に制限されないが、それに供給される命令(ディ
ポジット命令,イクストラクト命令,シフト命令)の主
にオペコードに基づいて上記制御信号を形成する。
【0039】上記tableには、命令とセレクタSE
L1〜SEL5のそれぞれの状態との関係が示されてい
る。また、このtableには、命令によって形成され
る制御信号C00,C01,C02も示されている。tabl
eにおけるA欄は、ディポジット命令で下地データとし
てデータ“0”を使うことが指示されている場合を示
し、B欄はディポジット命令で下地データとしてレジス
タの保持データを使うことが指示されている場合を示し
ている。また、C欄はイクストラクト命令で残り領域に
“0”を詰めることが指示されている場合を示し、D欄
はイクストラクト命令で残り領域に符号データを詰める
ことが指示されている場合を示している。tableに
おける“−”は、どのような状態でも良いことを表わし
ている。命令が供給されることにより、セレクタSEL
1〜SEL5及び制御信号C00,C01,C02がどのよう
な状態になるかについて、次に述べる。
【0040】ディポジット命令がユニットIUに供給さ
れることにより、セレクタSEL2は、バスSB1のデ
ータを選択して出力する。このとき、セレクタSEL4
は、MBGの出力を選択し、セレクタSEL5はデータ
“0”を選択して、出力する。セレクタSEL1は、下
地データとしてデータ“0”の使用が指示されていた場
合、データ“0”を選択し(A欄)、下地データとして
レジスタの保持データの使用が指示されている場合に
は、バスSB2のデータを選択して(B欄)、出力す
る。また、ディポジット命令の場合には、上記制御信号
C00,C02として“1”,“0”が出力される。下地デ
ータとしてレジスタの保持データの使用が指示されてい
る場合、ディポジット命令中のレジスタ番号REG−N
oにより指示されているレジスタが選択され、その保持
データは上記バスSB2に出力されている。そのため、
下地データとしてレジスタのデータが指示されていると
きには、セレクタSEL1からレジスタ番号REG−N
oにより指示されたレジスタの保持データが出力され
る。
【0041】イクストラクト命令が上記ユニットIUに
供給されることにより、セレクタSEL2はデータ
“0”を選択し、セレクタSEL3はバスSB2のデー
タを選択し、セレクタSEL4はデータ“0”を選択
し、セレクタSEL5はデータ“1”を選択して出力す
る。また、残り領域に“0”を詰めることが指示されて
いる場合、セレクタSEL1はデータ“0”を選択し、
残り領域に符号を詰めることが指示されている場合に
は、セレクタSEL1は拡張回路EXT2の出力を選択
して、出力する。さらに、上記制御信号C00,C02は、
ともに“0”となる。制御信号C01は、後で図20を用
いて説明するが、“0”を詰める場合、データ“0”を
選択する信号とされ、符号を詰める場合には、SIN−
BITを選択する信号とされる。
【0042】シフト命令がユニットIUに供給される
と、セレクタSEL2はバスSB1を選択し、セレクタ
SEL4はデータ“0”を選択し、セレクタSEL5は
データ“1”を選択して出力する。セレクタSEL3
は、64ビットデータについてシフト動作を行う場合、
データバスSB2のデータを選択し、32ビットデータ
についてのシフト動作の場合には、データ“0”を選択
して出力する。このとき制御信号C00,C02は、ともに
“1”である。
【0043】上記マスクビット生成回路MBGには、上
記命令制御用ランダムロジックユニットIUから、命令
に含まれている領域幅LENを表わすフィールドLEN
Dの値が供給され、上記デコーダSDECには、同じく
上記命令制御用ランダムロジックユニットIU命令に含
まれているシフト量hを表わすところのフィールド&の
値又は上記シフト量用制御レジスタの保持値が供給され
る。
【0044】上記制御信号C02は、オアゲートORG1
の一方の入力端子に供給され、その他方の入力端子に
は、マスクデータMASKD1が供給される。
【0045】上記制御信号C00,C01は上記拡張回路E
XT1に供給される。この拡張回路EXT1の一実施例
が図20に示されている。
【0046】図20に示されている拡張回路EXT1
は、デコーダBDEC,オアゲートORG2,トライス
テートバッファTB,符号線SIN−BIT及びセレク
タSEL6,SEL7を有している。
【0047】上記デコーダBDECには、マスクデータ
MASKD2が供給され、マスクデータMASKD2に
おいて論理値が変化する境界ビットを判断し、それに対
応したビットを例えば“1”にし、残りのビットを
“0”にする。このようなデコーダBDECついては、
図15にその一例が示されており、後で説明する。マス
ク実行回路MASKEの出力はトライステートバッファ
TBに供給される。これらのトライステートバッファT
Bの制御は上記デコーダBDECの出力により行われ、
各トライステートバッファTBの出力は、共通にされ、
符号線SIN−BITに供給される。これにより、マス
クデータMASKD2において論理値が変化する境界ビ
ットに対応したマスク実行回路MASKEの出力データ
におけるビットをトライステートバッファTBは、共通
の符号線SIN−BITに伝える。セレクタSEL6
は、上記制御信号C01に従って、上記符号線SIN−B
ITの値又はデータ“0”を選択して出力する。上記オ
アゲートORG2は、上記制御信号C00と上記マスクデ
ータMASKD2とを入力として受け、上記セレクタS
EL7を制御する信号を形成する。上記セレクタSEL
7は、上記セレクタSEL6の出力又はマスク実行回路
MASKEの出力を選択して出力する。
【0048】上記制御信号C00が“1”となることによ
り、オアゲートORG2は、マスクデータMASKD2
の値にかかわらず、“1”を出力する。これにより、上
記セレクタSEL7は、マスク実行回路MASKEの出
力を選択して出力する。これに対して、制御信号C00が
“0”の場合には、マスクデータMASKD2において
“1”となっているビットに対応した、マスク実行回路
MASKEの出力におけるビットがセレクタSEL7か
ら出力され、マスクデータMASKD2において“0”
となっているビットに対応した、出力データDDにおけ
るビットには、セレクタSEL6の出力が出力されるよ
うにセレクタSEL7が働く。
【0049】上記制御信号C02が“1”となっていると
きには、上記オアゲートORG1からは、データ“1”
がマスク実行回路MASKEへ出力され、上記制御信号
C02が“0”とされているときには、マスクデータMA
SKD1のデータに従ったデータが上記オアゲートOR
G1からマスク実行回路MASKEへ供給される。
【0050】上記制御信号C01は、符号拡張の場合、例
えば“1”となる。これに応答してセレクタSEL6
は、符号線SIN−BITにおけるデータを選択する。
これにより、全てのセレクタSEL6からは、共通の値
が出力される。これに対して、残りの領域にデータ
“0”を詰める場合、上記制御信号C01は“0”とな
る。これによって、セレクタSEL6は、データ“0”
を選択して出力する。
【0051】前記拡張回路EXT1、第0ビット符号拡
張回路EXT2、マスクデータ生成回路MASKG、及
びマスク実行回路MASKEは、本実施例のビットフィ
ールド操作演算装置SMU固有の処理であるイクストラ
クト命令とディポジット命令の実行に必要な固有の回路
であり、他のRISCプロセッサには存在しない。これ
らの回路の面積を小さく抑え、かつ動作遅延を小さくす
ることが、他のRISCプロセッサより優れた性能を実
現するためのに必要であり、本実施例ではそれらを実現
しており、以下その詳細を順次説明する。
【0052】(3)バレルシフタを採用したマスクデー
タ生成回路 前記マスクデータ生成回路MASKGは、図6にも示さ
れるように、第2バレルシフタBSFT2、マスクビッ
ト生成回路MBG、及びセレクタSEL4,SEL5を
有する。マスクビット生成回路MBGは、特に制限され
ないが、命令中に含まれている5ビットの情報LEND
を受け、その5ビットの値によって、32ビットのビッ
ト列の右端からの論理1のビット幅(領域幅)LENを
示す第2マスクデータMASKD2を生成する。第2マ
スクデータMASKD2を生成する論理は、ハードワイ
ヤードロジックにより簡単に構成することができる。前
記第2バレルシフタBSFT2は、前記第1バレルシフ
タBSFT1と同様にデータの任意ビットシフトを行う
ものであり、夫々1ワードのデータを入力し、合計2ワ
ードを同時にシフトして、上位側の入力ワードにおける
ビット位置と1対1に対応したビット位置を有する1ワ
ードのデータを出力する。シフト量は前記デコーダSD
ECの出力によって決定される。第2バレルシフタBS
FT2の上位側入力には前記セレクタSEL4を介して
第2マスクデータMASKD2又は全ビットを論理0と
するデータが供給される。第2バレルシフタBSFT2
の下位側入力には、前記セレクタSEL5を介して32
ビット全てが論理0のデータ又は32ビット全てが論理
1のデータが供給される。第2バレルシフタシフタBS
FT2によってシフトされた出力は前記第1マスクデー
タMASKD1とされる。
【0053】図6に示されるように、このマスクデータ
生成回路MASKGは、右端から幅LENで与えられる
領域に1を立てた第2マスクデータMASKD2を、第
1バレルシフタBSFT1に供給される演算データと同
じ量だけ第2バレルシフタBSFT2で左シフト(31
−hビットシフト)することにより、ディポジット命令
などに利用される第1マスクデータMASKD1を生成
することができる。イクストラクト命令用のマスクデー
タとしては、前記第2マスクデータMASKD2が利用
される。したがって、このマスクデータ生成回路MAS
KGは減算器を用いることなく図18と同様にディポジ
ット命令用マスクデータと、イクストラクト命令用マス
クデータを生成することができる。更に、イクストラク
ト命令を実行するときには、前記拡張回路EXT1に供
給すべき第2マスクデータの生成に利用されない第2バ
レルシフタBSFT2を、第1バレルシフタBSFT1
と共に当該イクストラクト命令の別の処理に利用可能に
なる。
【0054】(4)イクストラクト命令における符号拡
張シフトの高速化 イクストラクト命令において拡張回路EXT1で行われ
る符号拡張は、図7に示される(i)と(ii)の2通
りの場合があり、(i)に示されるように領域幅LEN
が入力データの第0ビットを越えない場合、出力データ
における符号拡張は当該領域幅LENの左端のビットの
符号に応じて行われる。一方、(ii)で示されるよう
に領域幅LENが入力データの第0ビットを越えて左に
広がる場合、出力データにおける符号拡張では入力デー
タの第0ビットを符号ビットとして扱うことになる。
【0055】図8に示されるように、イクストラクト命
令を実行するときは、第1バレルシフタBSFT1は、
夫々32ビットの入力データと任意値のデータ(例えば
データが)とを受け、入力データの第hビットが右端に
くるようにバレルシフト(31−hビットシフト)を行
う。これに並行して第0ビット符号拡張回路EXT2
は、入力データの第0ビットの値を全部のビットに符号
拡張する。更に、第2バレルシフタBSFT2は、全ビ
ット“0”の1ワードデータと全ビット“1”の1ワー
ドデータとを入力して、第1バレルシフタBSFT1と
同一のシフト量を以てシフト動作を行い、第1マスクデ
ータMASKD1を生成する。マスク実行回路MASK
Eは、第1バレルシフタBSFT1の出力と第0ビット
符号拡張回路EXT2の出力とを受ける。マスク実行回
路MASKEは、第1マスクデータMASKD1におい
て論理値1となっているビットについて、そのビット位
置に対応した第1バレルシフタBSFT1の出力を選択
し、出力する。これに対して、第1マスクデータMAS
KD1において論理値0となっているビットについて
は、そのビット位置に対応した第0ビット符号拡張回路
EXT2の出力を選択し、出力する。これによってマス
ク実行回路MASKEから出力されるデータは、入力デ
ータの第0ビットから第hビットまでの値を下位側(右
側)に保有し、残りのビットは入力データの第0ビット
の値を保有するデータとされる。このマスク実行回路M
ASKEの出力データは、図9に示されるように拡張回
路EXT1に供給される。この拡張回路EXT1には、
第2マスクデータMASKD2も供給される。拡張回路
EXT1は第2マスクデータMASKD2によって指定
される領域幅LENの左側ビットを符号ビットとして符
号拡張する。図7の(i)に対応する場合には、符号拡
張されるべきビット位置は入力データの第0ビットでは
なく、図の斜線で示される幅hの中に存在する符号ビッ
トSとされ、第2マスクデータMASKD2によって指
定される符号ビットSの符号即ち論理値に応じて、当該
符号ビットSの左側(上位側)の各ビットが符号ビット
Sの論理値に従って符号拡張される。図20から判るよ
うに、境界ビットに対応したビットが、符号線SIN−
BITに伝えられ、残りの領域には、この符号線SIN
−BITのデータが伝えられる。図7の(ii)に対応
する場合には、前記入力データの第0ビットが符号拡張
ビットとされるから、拡張回路EXT1からの出力デー
タは前記マスク実行回路MASKEの出力と同一とされ
る。この場合には、LENが第0ビットを超えるため、
セレクタSEL7によって、マスク実行回路MASKE
の出力が選択される。
【0056】このように、第1バレルシフタBSFT1
による入力データのバレルシフト処理に並行して、入力
データの第0ビットの値を第0ビット符号拡張回路EX
T2で全ビットを第0ビットの値に符号拡張する処理を
行い、双方の処理結果をマスク実行回路MASKEで選
択して、算術シフトと同様の処理を行うことができる。
即ち、マスクデータ生成用の第2バレルシフタBSFT
2の上位側入力には全ビットが論理値0のデータを入
れ、下位側入力には全ビットが論理値1のデータを入れ
て、第1バレルシフタBSFT1による入力データのシ
フト量と同じだけシフトすることにより第1マスクデー
タMASKD1を生成し、予め入力データの第0ビット
を全ビットに符号拡張したデータと第1バレルシフタB
SFT1のシフト出力データとのマスク処理を、前記前
記第1マスクデータMASKD1によって実行すれば、
算術シフトと等価なオペレーションとなる。図10に示
されるところの、入力データに対する第0ビット符号拡
張処理とバレルシフト処理との従属的若しくは直列的な
処理に比べて、図8に示される本実施例演算方式では、
第1バレルシフタBSFT1の上位側入力には任意値を
供給すればよく、入力データに対する第0ビット符号拡
張処理を待つ必要はない。従ってこの算術シフト演算に
よれば、予め入力データの第0ビットを全ビットに配分
して符号拡張データを生成してからバレルシフトする処
理に比べて、イクストラクト命令の実行速度を高速化す
ることができる。
【0057】(5)バレルシフタの占有面積低減 図11には第1及び第2バレルシフタBSFT1,BS
FT2の一実施例の回路図が示されている。第1及び第
2バレルシフタBSFT1,BSFT2の夫々の一列分
のトランジスタ形成領域を、演算情報を一時的に保持す
る前記レジスタファイルREGFの1ビット分の記憶セ
ルが占有する幅と同一幅の領域に並存させ、且つ、双方
のバレルシフタBSFT1,BSFT2におけるシフト
量を制御する制御信号を伝えるシフト量制御線を共通化
する。図において、m1−in0,…は第2バレルシフ
タBSFT2の下位側の32本の入力信号線、m2−i
n0,…は第2バレルシフタBSFT2の上位側の32
本の入力信号線、m−out0,…は第2バレルシフタ
BSFT2の32本の出力信号線、d1−in0,…は
第1バレルシフタBSFT1の下位側の32本の入力信
号線、d2−in0,…は第1バレルシフタBSFT1
の上位側の32本の入力信号線、d−out0,…は第
1バレルシフタBSFT1の32本の出力信号線、sh
ift0,…は第1バレルシフタBSFT1及び第2バ
レルシフタBSFT2に共通利用されるシフト量を指示
する制御線である。前記出力信号線と制御線とは交差的
配置を採って並設され、前記制御線からシフト量指示信
号を選択端子に受けてスイッチ制御されることにより入
力を所定の出力信号線に導通させる複数個のトランジス
タTRがマトリクス配置されている。
【0058】図11は、実際のチップ上におけるレイア
ウトに合わせて描かれている。また、同図には、上記セ
レクタSEL3の一部,セレクタSEL5の一部及びレ
ジスタファイルREGF内のレジスタREGn−1,R
EGn,REGn+1が示されており、これらも実際の
レイアウトに合わせて描かれている。セレクタは、複数
の単位セレクタU−SELにより構成され、レジスタも
複数の記憶セルU−REGにより構成される。記憶セル
と単位セレクタとの間はバスによって結合されいる。同
図から判るように、一列分のトランジスタ形成領域と、
記憶セルU−REG,単位セレクタU−SELは、互い
にほぼ同一幅にされている。
【0059】前記レジスタファイルREGFの記憶セル
U−REGは、スタティック型フリップフロップを主体
として構成され、例えばCMOS回路で構成される場合
には、トランスファゲートを含めて最低6個のトランジ
スタを要する。この6個のトランジスタを配置する高さ
が図11に示される1ビット領域の高さ寸法に一致す
る。双方のバレルシフタBSFT1,BSFT2を夫々
分離させて別々の領域に配置したとすれば、図12及び
図13に示されているようなレイアウトになると思われ
る。これらの図12及び図13から判るように、この場
合には、何等利用されない無駄な領域が多数存在する。
図11から判るように、前記バレルシフタBSFT1,
BSFT2は、セレクタ及びバスSB1,SB2を介し
てレジスタファイルREGFからデータが供給される。
このとき、スタンダードセルのようなレイアウト手法を
考慮すると、機能毎に把握される回路ブロックに対して
は、矩形領域として定義される領域にトランジスタを配
置することがレイアウト上望ましい。特にバレルシフタ
BSFT1,BSFT2はレジスタファイルREGFか
ら並列的にデータが与えられ、密接に機能するから、並
列的に供給されるデータの各ビット相互間に信号伝播遅
延などがあっては動作上望ましくない。従って、レジス
タファイルREGFとバレルシフタBSFT1,BSF
T2を結ぶ信号配線の複雑で統一的でない屈曲は極力防
止することが得策である。この観点に立つと、図12及
び図13に示されるようにバレルシフタBSFT1,B
SFT2を夫々別々の領域に構成する場合にも、一見無
駄と考えられる空間を採るようにして前記1ビット領域
毎にトランジスタやその入力信号線が配置される。本実
施例ではその空間を有効に利用するため、双方のバレル
シフタBSFT1,BSFT2を同一領域に並存させ
る。これにより、2個のバレルシフタBSFT1,BS
FT2を採用してもそれによる実質的なチップ面積増大
を抑制することができる。仮に図14に示されるよう
に、バレルシフタBSFT1,BSFT2の幅寸法を小
さくすると、縦寸法X分だけバレルシフタの形成領域を
相対的に小さくできるが、その反面、配線の屈曲部分に
おいてはレイアウト配線ルールにより配線間には所定の
間隔を設けなければならないために横方向の寸法Yが増
し、整数演算装置EUのチップ占有面積は期待通りに小
さくならない。
【0060】(6)符号ビットの位置抽出用デコード論
理 前記拡張回路EXT1において、マスク実行回路MAS
KEから出力されるデータに対する符号拡張のための符
号ビットの位置は図15に示される論理ゲート回路LG
C(図20のデコーダBDECに相当)が検出する。こ
の論理ゲート回路LGCは、前記マスクビット生成回路
MBGから出力される第2マスクデータMASKD2の
相互に隣合う2ビットの論理値をそれぞれ排他的論理和
ゲートEORで比較し、その第2マスクデータMASK
D2のビット列中で論理値が変化される境界ビットを他
のビットとは異なる論理値で出力する論理を有する。斯
る論理ゲート回路LGCは、第2マスクデータMASK
D2の各ビットを1段の排他的論理和ゲートEORを通
すことにより、符号拡張すべき符号ビットの位置を切り
出すことができる。したがって、前記情報LENを入力
してデコードするような別のデコーダを新たに設けなく
ても済み、この点において拡張回路EXT1の回路規模
は小さくされる。上記デコード論理は、被デコード信号
から相補レベルを生成する回路が必要なく、この点にお
いて従来のデコード回路に比べて、配線パターンの簡素
化と回路素子の低減が可能になり、整数演算装置EUの
レイアウト面積削減に寄与する。
【0061】この論理ゲート回路LGCは、前記マスク
ビット生成回路MBGのような回路と共に一般的なデコ
ーダとしてその他の用途にも適用することができる。こ
のとき、前記マスクビット生成回路MBGのような回路
は、nビットのデータから、2のn乗のビット列であっ
て、且つ、そのビット列の端から連続的に配置される一
定論理値のビットの数によって相違される2のn乗種類
の何れかのデータを展開する手段として定義することが
でき、これに応じて、論理ゲート回路は、前記展開手段
から出力されるデータの相互に隣合う2ビットの論理値
をそれぞれ比較し、その展開手段からの出力データのビ
ット列中で論理値が変化される境界ビットを他のビット
とは異なる論理値で出力する回路として構成される。
【0062】上記実施例によれば以下の作用効果を得る
ことができる。 (1)入力データのシフト並びにマスクデータの生成
に、バレルシフタBSFT1,BSFT2が、それぞれ
採用され、且つ、双方のバレルシフタBSFT1,BS
FT2のシフト量が相互に同一にされる。これは、ディ
ポジット命令やイクストラクト命令などによるビットフ
ィールド操作をサポートする演算装置SMUの高機能化
並びに演算処理の高速化に寄与する。 (2)2組のバレルシフタBSFT1,BSFT2の夫
々における1列分のトランジスタ列がレジスタファイル
REGFの1ビット分の記憶セルの幅に合わせて折り重
ねるようにレイアウトされる。これにより、ビットフィ
ールド操作演算装置SMUのチップ占有面積を低減する
ことができる。 (3)入力データに対する第0ビット符号拡張と第1バ
レルシフタBSFT1による入力データのバレルシフト
とを、時間的に並列に処理可能となる。また、その並列
処理結果が、第2バレルシフタBSFT2で生成される
第1マスクデータMASKD1に基づいてマスク実行回
路MASKEで選択され、算術シフトが行われる。算術
シフトの結果に対して拡張回路EXT1で符号拡張が行
われることにより、イクストラクト命令によってデータ
の任意領域を抽出する演算速度を高速化することができ
る。 (4)第2マスクデータMASKD2のようなデータを
入力してデコード結果を出力する論理ゲート回路LGC
(BDEC)を採用することにより、デコーダには、入
力を相補レベルの信号に変換する回路が不要とされ、前
記拡張回路EXT1さらには一般的なデコーダの回路規
模並びにチップ占有面積を低減することができる。 (5)上記作用効果により、チップ占有面積の増大を抑
え、且つ動作速度を高速化して、ディポジット命令とイ
クストラクト命令とをサポートした高機能RISCプロ
セッサを得ることができる。
【0063】次に、バレルシフタの他の実施例について
述べる。以下に述べられるバレルシフタは、前述した実
施例中におけるバレルシフタBSFT1,BSFT2と
して用いることができる。また、前述した実施例とは別
のプロセッサ、例えばコプロセッサにおけるバレルシフ
タとして用いることもできる。
【0064】前記図12及び図13にも示したが、従来
のバレルシフタ回路としては、図30に示されるよう
に、複数のMOSトランジスタQをマトリクス状に配置
して構成することができる。例えばN=2nビットまで
の任意のシフトを行うバレルシフタ回路では、N×N個
のMOSトランジスタQがマトリクス状に配置され、n
ビットのシフト制御データSFをデコードするデコーダ
DECの出力によって、当該シフト制御データSFに呼
応する所定列の全てのMOSトランジスタQが導通状態
とされる。これによって入力データを、シフト制御デー
タSFに従った任意ビットについてシフトすることが可
能とされる。
【0065】尚、バレルシフタについて記載された文献
の例としては、特開平2−90318号公報がある。
【0066】上記図30のバレルシフタ回路において
は、バレルシフタ回路を構成するMOSトランジスタQ
の制御信号を生成するために、nビットのシフト制御デ
ータSFをデコードするデコーダDECが必要とされ
る。このデコーダDECでのデコード時間、すなわちデ
コーダDECにシフト制御データSFが与えられてから
デコード出力が確定するまでに要する時間によって、上
記バレルシフタ回路では、その動作速度が制限されてし
まう。また、そのようなデコーダDECを設けることが
必要とされるため、LSIチップにおけるバレルシフタ
回路の占有面積の減少が阻害されていることが、本発明
者によって見いだされた。
【0067】前述した目的の一つは、バレルシフタ回路
を以下のように構成することによって達成される。
【0068】すなわち、nを正の整数とするとき、それ
ぞれ2i(i=0,1,2,…,n−1)ビットのデー
タシフトを可能とするn個のシフト回路を結合してバレ
ルシフタを形成する。また、nビットのシフト制御デー
タに呼応して2ワード分の入力データについて、2n
ットまでの任意ビット数のシフトを可能にするには、2
ワードのうちの1ワード分の入力データを上位側若しく
は下位側へシフトする第1シフト回路群と、他の1ワー
ド分の入力データを上記第1シフト回路群とは逆方向へ
シフトする第2シフト回路群とを含んでバレルシフト回
路を形成する。この場合においては、それぞれ2i(i
=0,1,2,…,n−1)ビットのデータシフトを可
能とするn個のシフト回路を結合して上記第1シフト回
路群及び第2シフト回路群が形成される。このとき、上
記第1シフト回路群のシフト出力と上記第2シフト回路
群のシフト出力とを合成することにより、1ワード分の
シフト出力を得ることができる。さらに、上記第1シフ
ト回路群に入力されるシフト制御データが反転されて、
上記第2シフト回路群にシフト制御データとして入力さ
れる場合、上記第1シフト回路群のシフト出力と上記第
2シフト回路群のシフト出力との合成を適確に行うに
は、上記シフト制御データに拘らず入力データの1ビッ
トシフトを行う1ビットシフト回路を上記第2シフト回
路群に含めると良い。尚、ワードは8,16,32のい
ずれでも良いし、その他任意のビット数を1単位とする
ことができる。
【0069】さらに具体的な態様では、上記n個のシフ
ト回路は、上記シフト制御データに呼応してデータスル
ー状態とデータシフト状態とを切り換えるためのゲート
回路を含んで形成することができる。
【0070】上記した構成によれば、それぞれ2i(i
=0,1,2,…,n−1)ビットのデータシフトを可
能とするn個のシフト回路は、nビットのシフト制御デ
ータに呼応して入力データの2nビットシフト動作を可
能とし、このことが、nビットのシフト制御データをデ
コードするためのデコーダを不要とする。
【0071】図28には、本発明の一実施例としてのバ
レルシフト回路(バレルシフタ)が適用されるコプロセ
ッサが示されている。同図に示されるコプロセッサ1
は、特に制限されないが、公知の半導体集積回路製造技
術によりシリコン基板のような一つの半導体基板に形成
される。
【0072】上記コプロセッサ1は、バスインタフェー
ス回路2を介して結合される外部の図示されない主プロ
セッサの演算能力を補い若しくは当該主プロセッサによ
る演算能力負担を軽減するためのものであり、主プロセ
ッサの指示に基づいて所定の演算処理を行う。図28に
示されるようにコプロセッサ1は、所定の演算手順等が
記述されたマイクロプログラムが格納されたマイクロR
OM(リード・オンリ・メモリ)4を備える。このマイ
クロROM4は、コントローラ5によってアクセスさ
れ、それにより、マイクロプログラムを構成するマイク
ロ命令が順次読出される。
【0073】上記コントローラ5は、上記バスインタフ
ェース回路2及び内部バス6を介して、図示されない主
プロセッサから与えられるコマンドをフェッチし、この
コマンドに含まれるコマンドコードをデコードして得ら
れるアドレス信号若しくはそのコマンドに含まれるアド
レス情報に基づいて、マイクロROM4をアクセスす
る。これにより、そのコマンドで指示される演算処理を
行うための一連のマイクロ命令郡の最初のマイクロ命令
が、マイクロROM4から読出される。上記コマンドで
指示される演算処理を行うための一連のマイクロ命令群
のうち、2番目以降のマイクロ命令は、直前に読出され
たマイクロ命令のネクストアドレスフィールドの情報が
上記コントローラ5に供給されることによって指示され
る。このようにしてマイクロROM4から読出されるマ
イクロ命令はマイクロ命令デコーダ7に供給される。こ
のマイクロ命令デコーダ7は、与えられたマイクロ命令
をデコードし、実行ユニット3などに対する制御信号を
生成する。尚、マイクロ命令に従って実行ユニット3が
演算処理等を行っているとき、マイクロフローの分岐が
必要になった場合には、実行ユニット3がその指示をコ
ントローラ5に与える。
【0074】上記実行ユニット3は、内部バス6に結合
されると共に一対のRAM(ランダムアクセスメモリ)
9,10に結合されている。このRAM9,10は、外
部から供給される演算に必要なデータを予め蓄えたり、
演算処理に際してテンポラリレジスタとして利用され
る。RAM9,10に対するアクセス制御は、上記マイ
クロ命令デコーダ7から出力される制御信号8に基づい
て行われる。例えば浮動小数点演算に際してRAM9,
10の所定領域がテンポラリレジスタとして利用される
とき、そのRAM9,10は、そこからソースデータが
読出され、読出されたソースデータは、例えば加工さ
れ、ディストネーションデータとしてRAM9,10に
戻されるというようなリード・モディファイ・ライト動
作を行う。
【0075】図29には上記実行ユニット3の構成の一
例が示されている。
【0076】この実行ユニット3は、特に制限されない
が、それぞれ32ビット構成の内部バスBUS1,BU
S2,BUS3を含む。これら内部バスBUS1,BU
S2,BUS3には、算術論理演算装置11、シフト演
算装置12、シフトカウンタSCUNT、及びテンポラ
リレジスタ13が結合される。尚、テンポラリレジスタ
13は上記RAM9,10の所定領域に割当ることが可
能である。
【0077】図29には、上記コントローラ5に含まれ
るシフト制御データ形成回路SFGも示されている。例
えば、上記コマンドは、前記実施例の命令と同様に、そ
の中にシフト量を表わすデータを含んでいる。上記シフ
ト制御データ形成回路SFGは、例えばコマンドから上
記シフト量を取り出し、それをシフト制御データSFと
してシフト演算装置12に供給する。
【0078】図21には上記シフト演算装置12の詳細
な構成が示される。
【0079】図21に示されるシフト演算装置12は、
特に制限されないが、N及びnを正の整数とするとき、
nビットのシフト制御データ(コード化されたデータ)
S0,…,Sn-2,Sn-1に呼応して2ワード分の入力デ
ータについて、N=2nビットまでの任意ビット数のシ
フトを可能とするバレルシフト回路を有する。このバレ
ルシフト回路は、I1乃至INで示される1ワード分の入
力データを左シフトするための左シフト回路群20と、
J1乃至JNで示される1ワード分の入力データを右シフ
トする右シフト回路群21とを含む。
【0080】ここで、特に制限されないが、左シフトと
は、例えば図24に示されるように入力データI1,I
2,I3,I4について、そのシフト結果がデータ列I2,
I3,I4となるように、入力データが上位側にシフトさ
れる場合を指し、また、右シフトとは、例えば図25に
示されるように入力データJ1,J2,J3,J4につい
て、そのシフト結果がデータ列J1,J2,J3となるよ
うに、入力データが下位側にシフトされる場合を指す。
【0081】上記左シフト回路群20及び右シフト回路
群21は、図30に示されるようなnビットのシフト制
御データSFをデコードするためのデコーダDECを不
要とするため、以下のように構成される。
【0082】上記左シフト回路群20は、それぞれ2i
(i=0,1,2,…,n−1)ビットのデータシフト
を可能とするn個のシフト回路LSF0,…,LSFn-
2,LSFn-1がシリーズ接続されて成る。例えばシフト
回路LSFn-1は、シフト制御データSn-1がハイレベル
にアサートされた場合、1ワード分の入力データI1乃
至INを2n-1ビット左シフトする機能を有し、それの後
段に配置されたシフト回路LSFn-2は、シフト制御デ
ータSn-2がハイレベルにアサートされた場合、入力デ
ータを2n-2ビット左シフトする機能を有し、それの後
段に配置されたシフト回路LSF0は、シフト制御デー
タS0がハイレベルにアサートされた場合、入力データ
を20ビット(すなわち1ビット)左シフトする機能を
有する。
【0083】上記右シフト回路群21は、上記左シフト
回路群20と同様に、それぞれ2i(i=0,1,2,
…,n−1)ビットのデータシフトを可能とするn個の
シフト回路RSF0,…,RSFn-2,RSFn-1がシリ
ーズ接続され、さらにそれの入力初段には、後に詳述す
るように上記左シフト回路群20のシフト出力と右シフ
ト回路群21のシフト出力との合成を適確に行うため、
シフト制御データS0,…,Sn-2,Sn-1に拘らず1ワ
ードの入力データJ1乃至JNを1ビット右シフトする1
ビット右シフト回路23が配置される。このシフト回路
23の後段に配置されたシフト回路RSFn-1は、上記
シフト制御データSn-1がインバータINn-1で反転され
たデータSn-1*(*はデータ反転又はローアクティブ
を示す)がハイレベルにアサートされた場合に入力デー
タを2n-1ビット右シフトする機能を有し、それの後段
に配置されたシフト回路RSFn-2は、シフト制御デー
タSn-2を反転するインバータINn-2の出力データSn-
2*がハイレベルにアサートされた場合に入力データを
n-2ビット右シフトする機能を有し、それの後段に配
置されたシフト回路RSF0は、シフト制御データS0を
反転するインバータIN0の出力データS0*がハイレベ
ルにアサートされた場合に入力データを20ビット(す
なわち1ビット)右シフトする機能を有する。
【0084】上記左シフト回路群20及び右シフト回路
群21の出力は1ワードに合成されることにより、本実
施例のバレルシフト回路のシフト出力O1乃至ONとされ
る。上記左シフト回路群20及び右シフト回路群21に
含まれるシフト回路(1ビット右シフト回路23を除
く)は、上記シフト制御データS0,…,Sn-2,Sn-1
に呼応してデータスルー状態とデータシフト状態とを切
り換えるためのゲート回路により比較的簡単に構成され
る。
【0085】例えば1ワード入力データI1乃至INを2
n-1ビット左シフトするシフト回路LSFn-1は、図22
に示されるように、シフト制御データSn-1を反転する
インバータINLの出力によってオン/オフ制御される
複数のNチャンネル型MOSFETQI1と、シフト制
御データSn-1によってオン/オフ制御される複数のN
チャンネル型MOSFETQI2とを含む。上記インバ
ータINLの介在により複数のMOSFETQI1と複
数のMOSFETQI2とは相補的にオン/オフされる
ようになっており、一対のMOSFETQI1とQI2と
で入力データI1乃至INを選択するためのマルチプレク
サが形成される。すなわち、シフト制御データSn-1が
ローレベルの場合、複数のMOSFETQI1がオン状
態、複数のMOSFETQI2がオフ状態とされること
により、入力データI1乃至INがそのままの状態(シフ
トされない状態)で後段のシフト回路LSFn-2に伝達
される(スルー状態)。それに対して、シフト制御デー
タSn-1がハイレベルの場合、複数のMOSFETQI1
がオフ状態、複数のMOSFETQI2がオン状態とさ
れることにより、入力データI1乃至INのビットがシフ
トされてから後段のシフト回路LSFn-2に伝達される
(シフト状態)。このシフト回路LSFn-1でのデータ
シフト量は2n-1ビットとされるので、例えばデータI1
5に代えてデータI31が割り当てられ、同様にデータI1
6に代えてデータINが割り当てられ、そのようなデータ
選択により入力データI1乃至INの2n-1ビットのシフ
トが可能とされる。
【0086】同様に1ワード分の入力データJ1乃至JN
を2n-1ビット右シフトするシフト回路RSFn-1は、図
23に示されるように、シフト制御データSn-1*を反
転するインバータINRの出力によってオン/オフ制御
される複数のNチャンネル型MOSFETQJ1と、シ
フト制御データSn-1*によってオン/オフ制御される
複数のNチャンネル型MOSFETQJ2とを含む。イ
ンバータINRの介在により複数のMOSFETQJ1
と複数のMOSFETQJ2とは相補的にオン/オフさ
れるようになっており、一対のMOSFETQJ1とQ
J2とで入力データJ1乃至JNを選択するためのマルチ
プレクサが形成される。すなわちシフト制御データSn-
1*がローレベルの場合、複数のMOSFETQJ1がオ
ン状態、複数のMOSFETQJ2がオフ状態とされる
ことにより、入力データJ1乃至JNがそのままの状態
(シフトされない状態)で後段のシフト回路RSFn-2
に伝達される(スルー状態)。それに対して、シフト制
御データSn-1*がハイレベルの場合、複数のMOSF
ETQJ1がオフ状態、複数のMOSFETQJ2がオン
状態とされることにより、入力データJ1乃至JNのビッ
トがシフトされてから後段のシフト回路RSFn-2に伝
達される(シフト状態)。このシフト回路RSFn-1で
のデータシフト量は2n-1ビットとされるので、例えば
データJ18に代えてデータJ2が選択され、同様にデー
タJ17に代えてデータJ1が選択され、そのようなデー
タ選択により入力データJ1乃至JNの2n-1ビットのシ
フトが可能とされる。
【0087】尚、右シフト回路群21に含まれるその他
のシフト回路は、そこでのシフト量が異なるだけで上記
と同様に構成される。
【0088】次に、入力データを4ビットとした場合の
バレルシフト回路の構成例を図26に基づいて説明す
る。
【0089】図26において、左シフト回路群20は、
シフト制御データS1がハイレベルにアサートされるこ
とによって入力データI1乃至I4の2ビットシフトを可
能とする21ビット左シフト回路LSF1と、その後段に
配置され、シフト制御データS0がハイレベルにアサー
トされることによって入力データの20=1ビットシフ
トを可能とする20ビット左シフト回路LSF0とから構
成される。また、右シフト回路群21は、上記左シフト
回路群20と同様に、入力データJ1乃至J3の1ビット
シフトを行う1ビット右シフト回路23と、上記シフト
制御データSn-1を反転するインバータIN1の出力デー
タS1*がハイレベルにアサートされることによって入
力データの2ビットシフトを可能とする21ビット右シ
フト回路RSF1と、上記シフト制御データS0を反転す
るインバータIN0の出力データS0*がハイレベルにア
サートされることによって入力データの1ビットシフト
を可能とする20ビット右シフト回路RSF0とを含む。
上記左シフト回路LSF1やLSF0、さらには右シフト
回路RSF1やRSF0は、上記と同様にシフト制御デー
タS1,S0に呼応してデータスルー状態とデータシフト
状態とを切り換えるためのゲート回路を含んで構成され
る。すなわち、左シフト回路LSF1やLSF0は図22
に示されるのと同様に、また、右シフト回路RSF1や
RSF0は図23に示されるのと同様に、それぞれシフ
ト制御データに呼応して相補的にオン/オフ制御される
複数のNチャンネル型MOSFETを含んで構成され
る。尚、図26における複数のブロックBは、図22又
は図23におけるMOSFET、若しくは相補的に動作
されるMOSFETの組み合わせによって形成されるマ
ルチプレクサとされる。
【0090】ここで、上記1ビット右シフト回路23は
以下のように作用する。例えば図27に示されるよう
に、シフト制御データ「S1,S0」が「0,1」とされ
ることによって、入力データI1,I2,I3,I4は1ビ
ット左シフトされる場合を考えると、そのシフト結果は
上位3ビットI1,I2,I3とされる。その場合のシフ
ト制御データ「01」がインバータIN1,IN2で反転
されると、「S1*,S2*」は「1,0」となり、2ビ
ット右シフトが指示される。つまり他の入力データJ
1,J2,J3は2ビット右シフトされることにより下位
2ビットJ1,J2とされる。この状態では、I3とJ1と
が競合するため、左シフト結果と右シフト結果とを合成
して4ビット出力とすることはできない。そこで上記2
ビット右シフト結果をさらに1ビット右シフトすると、
その結果は、下位1ビットJ1とされるので上記2ワー
ドデータの4ビットシフト合成出力(図27ではI1,
I2,I3,J1)を得ることができる。そのような意味
で、本実施例のように2ワード分のデータシフト出力を
合成して1ワードシフト出力O1乃至O4を得る場合に
は、上記1ビット右シフト回路23による1ビットシフ
トが有効とされる。
【0091】本実施例によれば以下の作用効果を得るこ
とができる。 (6)nを正の整数とするとき、それぞれ2i(i=
0,1,2,…,n−1)ビットのデータシフトを可能
とするn個のシフト回路としての左シフト回路LSF
0,…,LSFn-2,LSFn-1及び右シフト回路RSF
0,…,RSFn-2,RSFn-1を有することにより、n
ビットのコード化されたシフト制御データをデコードす
ることなく、直接取り込み、それに呼応して入力データ
の2nビットまでの任意ビット数のシフト動作が可能と
される。そのため、図30に示されるようなnビットの
シフト制御データSFをデコードするためのデコーダD
ECが不要とされる。 (7)上記(6)の作用効果によりシフト制御データを
デコードするためのデコーダDECが不要とされるの
で、デコーダDECでの信号遅延が排除され、それによ
り当該バレルシフト回路の動作速度の向上が可能とされ
る。また、デコーダDECを省略することによって、L
SIチップにおけるバレルシフト回路の占有面積の減少
が可能とされる。 (8)上記(7)の作用効果は、本実施例のバレルシフ
ト回路が適用されるコプロセッサにおいても得られる。 (9)本実施例のように2ワード分のデータシフト出力
を合成して1ワード分のシフト出力を得る場合、シフト
制御データに拘らず入力データの1ビットシフトを行う
1ビットシフト回路23を設けることにより、そのよう
な合成出力を適確に得ることができる。
【0092】以上本発明者によってなされた発明を実施
例に基づいて具体的に説明したが、本発明はそれに限定
されるものではなく、その要旨を逸脱しない範囲におい
て種々変更可能であることは言うまでもない。
【0093】例えば、本発明に係るビットフィールド操
作演算でのデータの処理単位は32ビットのワードデー
タに限定されず、16ビット或いは64ビットなどであ
ってもよい。また、データの任意領域の抽出やデータの
任意領域の置換などのビットフィールド操作のオペレー
ションは上記実施例のディポジット命令やイクストラク
ト命令に限定されず、適宜変更可能であり、また、その
命令の名称も制限されない。
【0094】また、上記実施例(図21〜図24)では
i(i=0,1,2,…,n−1)ビットのデータシ
フトを可能とするn個のシフト回路を、Nチャンネル型
MOSFETによって形成するようにしたが、トランス
ファゲートさらにはその他の半導体素子を適用すること
もできる。また、1ビット右シフト回路23の配置箇所
は右シフト回路群21の入力初段に限定されず、例えば
右シフト回路群21の最終段など、適宜の箇所に設ける
ことができる。上記実施例では左シフト回路群及び右シ
フト回路群を含むものについて説明したが、いずれか一
方を省略することもできる。その場合において1ビット
右シフト回路23は特に必要とされない。
【0095】図21〜図29の実施例を先の実施例に適
用する場合には、上記命令ユニットIUからのシフト量
を表わすデータを上記シフト制御データとして使う。こ
の場合、もちろん図5のデコーダSDECは不要とさ
れ、バレルシフタBSFT1,BSFT2のそれぞれ
に、図21〜図29に示したバレルシフタが使われる。
【0096】以上の説明では主として本発明者によって
なされた発明をその背景となった利用分野であるRIS
Cプロセッサ,コプロセッサに適用した場合について説
明したが、本発明はそれに限定されず、CISC形式の
プロセッサや論理LSIなどにも広く適用することがで
きる。
【0097】
【発明の効果】本願において開示される発明のうち代表
的なものによって得られる効果を簡単に説明すれば下記
の通りである。
【0098】すなわち、入力データのバレルシフト並び
にマスクデータ生成用の夫々にバレルシフタを採用し、
且つ、双方のバレルシフタのシフト量を相互に同一にし
て、ビットフィールド操作可能な演算装置を構成するこ
とにより、データの任意領域抽出やデータの任意領域置
換などのビットフィールド操作のための演算装置の高機
能化並びに演算速度の高速化に寄与するという効果があ
る。
【0099】前記2組のバレルシフタの夫々のトランジ
スタ列を1列づつ対にして、レジスタファイルの1ビッ
ト分の記憶セルの幅に合わせて折り重ねるようにレイア
ウトすることにより、ビットフィールド操作演算の為の
演算装置のチップ占有面積を低減することができるとい
う効果がある。
【0100】第1バレルシフタによる入力データのデー
タシフトに並行して、符号拡張回路で符号拡張し、夫々
の処理結果を選択して算術シフトを行うことにより、デ
ータの任意領域を抽出する演算速度を高速化することが
できるという効果がある。
【0101】マスクビットを用いてデコード結果を得る
論理を採用することにより、入力を相補レベルの信号に
変換する回路を不要とし、デコーダの回路規模若しくは
チップ占有面積を低減することができる。
【0102】また、nを正の整数とするとき、それぞれ
i(i=0,1,2,…,n−1)ビットのデータシ
フトを可能とするn個のシフト回路を含むことにより、
nビットのシフト制御データに呼応して入力データのN
=2nビットまでの任意ビット数シフト動作が可能とさ
れるので、nビットのシフト制御データをデコードする
ためのデコーダが不要とされ、これにより、バレルシフ
ト回路の動作速度の向上や、LSIチップにおけるバレ
ルシフト回路の占有面積の減少を可能にすることができ
る。
【図面の簡単な説明】
【図1】図1は本発明が適用されたプロセッサの一実施
例のチップ平面図である。
【図2】図2は整数演算ユニットの一例を示すブロック
図である。
【図3】図3はデータの任意領域を別データの任意領域
に置換するオペレーションを本実施例のビットフィール
ド操作演算装置を用いて行う場合とそうでない場合とを
比較した命令ステップの説明図である。
【図4】図4はプロセッサを用いたグラフィック処理シ
ステムの一例を示すブロック図である。
【図5】図5はビットフィールド操作演算装置の一実施
例のブロック図である。
【図6】図6はマスクデータ生成回路の一例を示す説明
図である。
【図7】図7はイクストラクト命令で行われる2通りの
場合の符号拡張処理の説明図である。
【図8】図8はイクストラクト命令における入力データ
のバレルシフトと入力データの第0ビット符号拡張との
並行処理の説明図である。
【図9】図9はイクストラクト命令実行に際しての図8
の続きの処理を示す説明図である。
【図10】図10は図8に示される入力データに対する
第0ビット符号拡張処理とバレルシフト処理とを従属的
若しくは直列的に処理する場合の説明図である。
【図11】図11は第1及び第2バレルシフタの一例を
示す回路図である。
【図12】図12は図11に示される双方のバレルシフ
タから第1バレルシフタの回路構成を抜き出した説明図
である。
【図13】図13は図11に示される双方のバレルシフ
タから第2バレルシフタの回路構成を抜き出した説明図
である。
【図14】図14は図12及び図13に示される回路を
夫々別々にレイアウトするときにその領域の高さ寸法を
小さくしたと仮定したときの横方向寸法の拡大を説明す
る図面である。
【図15】図15はマスク実行回路から出力されるデー
タに対する符号拡張のための符号ビットの位置を抽出す
るためのデコーダの一実施例を示すブロック図である。
【図16】図16はイクストラクト命令の基本的なオペ
レーションの説明図である。
【図17】図17はディポジット命令の基本的なオペレ
ーションを説明する図である。
【図18】図18は減算器を利用するマスクデータ生成
回路の説明図である。
【図19】図19はイクストラクト命令及びディポジッ
ト命令のフォーマットを示す図である。
【図20】図20は図5の拡張回路の一実施例を示すブ
ロック図である。
【図21】図21はバレルシフト回路の他の実施例を示
すブロック図である。
【図22】図22は図21のバレルシフト回路に含まれ
る左シフト回路の構成例を示す回路図である。
【図23】図23は図21のバレルシフト回路に含まれ
る右シフト回路の構成例を示す回路図である。
【図24】図24は入力データの左シフトを説明するた
めの図である。
【図25】図25は入力データの右シフトを説明するた
めの図である。
【図26】図26はシフト対象データを4ビットとした
場合の図21のバレルシフト回路の構成を示すブロック
である。
【図27】図27は左シフト出力と右シフト出力との合
成についての説明図である。
【図28】図28は実施例のバレルシフト回路が含まれ
るコプロセッサの構成を示すブロック図である。
【図29】図29は上記コプロセッサに含まれる実行ユ
ニットの構成を示すブロック図である。
【図30】図30は従来のバレルシフタ回路の回路図で
ある。
【符号の説明】
MCU プロセッサ EU 整数演算ユニット SMU ビットフィールド操作演算装置 REGF レジスタファイル BSFT1 第1バレルシフタ BSFT2 第2バレルシフタ SDEC シフトデコーダ MASKG マスクデータ生成回路 MBG マスクビット生成回路 MASKD1 第1マスクデータ MASKD2 第2マスクデータ EXT1 拡張回路 EXT2 第0ビット符号拡張回路 MASKE マスク実行回路 LGC 論理ゲート回路 EOR 排他的論理和回路 m1−in0 第2バレルシフタの下位側入力信号線 m2−in0 第2バレルシフタの上位側入力信号線 m−out0 第2バレルシフタの出力信号線 d1−in0 第1バレルシフタの下位側入力信号線 d2−in0 第1バレルシフタの上位側入力信号線 d−out0 第1バレルシフタの出力信号線 shift0 第1バレルシフタ及び第2バレルシフタ
のシフト量制御線 1 コプロセッサ 2 バスインタフェース 3 実行ユニット 4 マイクロROM 5 コントローラ 7 マイクロ命令デコーダ 9 RAM 10 RAM 11 算術論理演算装置 12 シフト演算装置 13 テンポラリレジスタ 20 左シフト回路群 21 右シフト回路群 23 1ビット右シフト回路群 LSFN-1 2n-1ビット左シフト回路 LSFN-2 2n-2ビット左シフト回路 LSF0 20ビット左シフト回路 RSFN-1 2n-1ビット右シフト回路 RSFN-2 2n-2ビット右シフト回路 RSF0 20ビット右シフト回路

Claims (13)

    【特許請求の範囲】
  1. 【請求項1】 複数ビットの入力データを、所定量シフ
    トして出力する第1バレルシフタと、 前記第1バレルシフタの出力と所定のデータとを第1マ
    スクデータに基づいてビット毎に選択して出力する選択
    手段と、 前記第1バレルシフタから出力されるデータに対し、第
    2マスクデータに基づいて指定される領域を符号拡張又
    は所定論理値で拡張する拡張手段と、 前記第1及び第2マスクデータを生成するマスクデータ
    生成手段戸を備え、 前記マスクデータ生成手段は、ビット列における領域幅
    を指定するための情報に基づいて前記第2マスクデータ
    を生成するマスクビット生成手段と、前記マスクビット
    生成手段の出力を、前記所定量に対応した量だけシフト
    して、前記第1マスクデータを生成する第2バレルシフ
    タと、を含んで、 半導体基板に形成された演算装置。
  2. 【請求項2】 複数の記憶セルによって情報を記憶する
    記憶手段をさらに有し、 前記第1及び第2バレルシフタのそれぞれは、互いに並
    列に配置された複数の出力信号線と、上記出力信号線と
    交差的に配置され、シフト量指示信号に伝達する複数の
    信号線と、上記出力信号線と上記制御線との交点に配置
    され、対応する制御線におけるシフト量指示信号に応答
    してスイッチ動作する複数のトランジスとタを有し、 前記記憶手段の1ビット分の記憶セルが半導体基板上で
    占有する一方向の幅と同一幅の領域に、第1バレルシフ
    タの出力信号線及びこれに結合するトランジスタ列と、
    第2バレルシフタの出力信号線及びこれに結合するトラ
    ンジスタ列とを並存させ、且つ、第1バレルシフタと第
    2バレルシフタにおける制御線を共通化して成る、請求
    項1記載の演算装置。
  3. 【請求項3】 前記拡張回路は、前記マスクビット生成
    手段から出力される第2マスクデータにおいて相互に隣
    合う2ビットの論理値をそれぞれ比較し、第2マスクデ
    ータのビット列中で論理値が変化される境界ビットを検
    出する論理ゲート回路を有し、当該論理ゲート回路の出
    力は、符号拡張されるべき領域の位置を表わす情報とし
    て利用される請求項1記載の演算装置。
  4. 【請求項4】 前記第1バレルシフタの入力データを受
    け、そのデータの所定ビットに基づいてその全ビットが
    符号拡張されたデータを形成し、これを前記選択手段の
    前記所定のデータとして出力可能な符号拡張回路を更に
    有する請求項1記載の演算装置。
  5. 【請求項5】 入力データの任意領域を抽出する演算を
    行うビットフィールド操作演算方法であって、 入力データの抽出したい領域を第1バレルシフタで所定
    ビットシフトする処理と、この処理に並行して前記入力
    データの所定ビットを符号拡張した符号データを形成す
    る処理と、 前記シフトされたデータにおける抽出したい領域を特定
    するための第1マスクデータを第2バレルシフタによっ
    て生成する処理と、 前記第1バレルシフタの出力と前記符号データとを前記
    第1マスクデータに基づいて選択手段で選択する処理
    と、 前記選択手段の出力を、ビット列における領域幅を指定
    するデータにより拡張回路で符号拡張する処理と、 を含むビットフィールド操作演算方法。
  6. 【請求項6】 前記第1バレルシフタを用いて、入力デ
    ータの置換する領域を置換したい位置まで所定ビットシ
    フトする処理と、 前記シフトされた入力データにおける置換する領域を特
    定するための第1マスクデータを、前記第2バレルシフ
    タで生成する処理と、 第1バレルシフタの出力データと所定のデータとを第1
    マスクデータに基づいて選択する処理とを含んで、 前記所定のデータの所定領域を、前記入力データにおけ
    る置換したい領域によって置換する請求項5記載のビッ
    トフィールド操作演算方法。
  7. 【請求項7】 複数のビットを有し、少なくとも互いに
    隣合うビット間で互いに異なる論理値の領域を有する入
    力データを受け、出力データを形成する論理ゲート回路
    を含み、 前記論理ゲート回路は、上記入力データにおいて互いに
    隣合うビット間で論理値を比較する比較手段を含み、 前記出力データは、上記入力データに対応した複数のビ
    ットを有し、上記入力データにおいて論理値が互いに異
    なる境界領域に対応した上記出力データにおける領域が
    所定の論理値にされるものであるデコーダ。
  8. 【請求項8】 nビットのシフト制御データを形成する
    制御データ形成手段、及び上記シフト制御データに従っ
    たシフト動作を行うバレルシフタを含み、 前記バレルシフタは、それぞれ2i(i=0,1,…,
    n−1)ビットのデータシフトを行うn個のシフト回路
    を含んで成る半導体集積回路装置。
  9. 【請求項9】 上記n個のシフト回路のそれぞれは、上
    記シフト制御データに従って、データスルー状態とデー
    タシフト状態とを切り換えるためのゲート回路を含むも
    のである請求項8記載の半導体集積回路装置。
  10. 【請求項10】 nビットのシフト制御データを形成す
    る制御データ形成手段と、 第1の入力データを、上記シフト制御データに従って、
    第1の方向へのシフト動作を行う第1シフト回路群と、 第2の入力データを、上記シフト制御データに従って、
    上記第1の方向とは異なる第2の方向へのシフト動作を
    行う第2シフト回路群とを備え、 前記第1シフト回路群及び上記第2シフト回路群のそれ
    ぞれは、上記シフト制御データに従って、それぞれ2i
    (i=0,1,…,n−1)ビットのシフトを行うn個
    のシフト回路を含んで成る半導体集積回路装置。
  11. 【請求項11】 前記第1シフト回路群の出力データと
    上記第2シフト回路群の出力データとを合成して、出力
    する合成手段を更に備えて成る請求項10記載の半導体
    集積回路装置。
  12. 【請求項12】 前記第2シフト回路群は、上記シフト
    制御データの反転データに従ってシフト動作を行うシフ
    ト回路群と、定常的に上記第2の入力データを1ビット
    シフトする固定シフト回路を含んで成る請求項11記載
    の半導体集積回路装置。
  13. 【請求項13】 前記n個のシフト回路のそれぞれは、
    上記シフト制御データに呼応してデータスルー状態とデ
    ータシフト状態とを切り換えるためのゲート回路を含ん
    で成る請求項10記載の半導体集積回路装置。
JP13795792A 1991-05-08 1992-04-30 ビットフィールド操作演算装置及びマイクロプロセッサ Expired - Fee Related JP3247724B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP13795792A JP3247724B2 (ja) 1991-05-08 1992-04-30 ビットフィールド操作演算装置及びマイクロプロセッサ

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
JP13203991 1991-05-08
JP3-132039 1991-05-08
JP13957491 1991-05-15
JP3-139574 1991-05-15
JP13795792A JP3247724B2 (ja) 1991-05-08 1992-04-30 ビットフィールド操作演算装置及びマイクロプロセッサ

Publications (2)

Publication Number Publication Date
JPH05150942A true JPH05150942A (ja) 1993-06-18
JP3247724B2 JP3247724B2 (ja) 2002-01-21

Family

ID=27316418

Family Applications (1)

Application Number Title Priority Date Filing Date
JP13795792A Expired - Fee Related JP3247724B2 (ja) 1991-05-08 1992-04-30 ビットフィールド操作演算装置及びマイクロプロセッサ

Country Status (1)

Country Link
JP (1) JP3247724B2 (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09114639A (ja) * 1995-10-19 1997-05-02 Denso Corp マスクデータ生成回路及びビットフィールド操作回路
JP2016026365A (ja) * 2009-12-22 2016-02-12 インテル・コーポレーション プロセッサ、システムオンチップ(SoC)、ハンドヘルドデバイス、および装置
CN108231118A (zh) * 2016-12-22 2018-06-29 拉碧斯半导体株式会社 半导体存储装置

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09114639A (ja) * 1995-10-19 1997-05-02 Denso Corp マスクデータ生成回路及びビットフィールド操作回路
US5729725A (en) * 1995-10-19 1998-03-17 Denso Corporation Mask data generator and bit field operation circuit
JP2016026365A (ja) * 2009-12-22 2016-02-12 インテル・コーポレーション プロセッサ、システムオンチップ(SoC)、ハンドヘルドデバイス、および装置
JP2018160288A (ja) * 2009-12-22 2018-10-11 インテル・コーポレーション プロセッサ、方法、プログラム、および機械可読記録媒体
US10372455B2 (en) 2009-12-22 2019-08-06 Intel Corporation Hand held device to perform a bit range isolation instruction
US10579380B2 (en) 2009-12-22 2020-03-03 Intel Corporation System-on-chip (SoC) to perform a bit range isolation instruction
US10579379B2 (en) 2009-12-22 2020-03-03 Intel Corporation Processor to perform a bit range isolation instruction
US10656947B2 (en) 2009-12-22 2020-05-19 Intel Corporation Processor to perform a bit range isolation instruction
CN108231118A (zh) * 2016-12-22 2018-06-29 拉碧斯半导体株式会社 半导体存储装置
CN108231118B (zh) * 2016-12-22 2023-09-05 拉碧斯半导体株式会社 半导体存储装置

Also Published As

Publication number Publication date
JP3247724B2 (ja) 2002-01-21

Similar Documents

Publication Publication Date Title
KR100262438B1 (ko) 연산장치 및 이것을 사용한 비트필드조작 연산방법
EP0011374B1 (en) Execution unit for data processor using segmented bus structure
JP2554050B2 (ja) デ−タ処理方法
US4225934A (en) Multifunctional arithmetic and logic unit in semiconductor integrated circuit
JPS6014336A (ja) 命令処理装置
JPH06332792A (ja) データ処理装置及びそのデータ読み出し制御回路,データ書き込み制御回路
JPH0721022A (ja) パイプライン演算処理装置
JP2000305781A (ja) Vliw方式プロセッサ、コード圧縮装置、コード圧縮方法およびコード圧縮プログラムを記録した媒体
JPS63100538A (ja) 複数の制御信号を発生するための論理アレイ
US5226129A (en) Program counter and indirect address calculation system which concurrently performs updating of a program counter and generation of an effective address
JPS6014338A (ja) 計算機システムにおける分岐機構
US4999808A (en) Dual byte order data processor
JP3247724B2 (ja) ビットフィールド操作演算装置及びマイクロプロセッサ
US4674063A (en) Information processing apparatus having a sequence control function
JP3202108B2 (ja) パイプライン処理を用いたプロセッサ
US4975837A (en) Programmable unit having plural levels of subinstruction sets where a portion of the lower level is embedded in the code stream of the upper level of the subinstruction sets
US5457803A (en) Bit-field logic operation unit
EP0265972A2 (en) Control of the program counter used in a pipelined computer
US5070445A (en) Programmably controlled partially distributed masking mechanism in a programmable unit having variable data path widths
EP0232796B1 (en) Pseudo-microprogramming in microprocessor with compressed control rom and with strip layout of busses, alu and registers
JP2583506B2 (ja) データ処理装置
JPH07210545A (ja) 並列処理プロセッサ
JP2543589B2 (ja) デ―タ処理装置
JP2003099250A (ja) レジスタ読み出し回路及びマイクロプロセッサ
IE56443B1 (en) Microprogram control

Legal Events

Date Code Title Description
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20011023

LAPS Cancellation because of no payment of annual fees