JPH0683577A - シフト演算装置 - Google Patents

シフト演算装置

Info

Publication number
JPH0683577A
JPH0683577A JP4230795A JP23079592A JPH0683577A JP H0683577 A JPH0683577 A JP H0683577A JP 4230795 A JP4230795 A JP 4230795A JP 23079592 A JP23079592 A JP 23079592A JP H0683577 A JPH0683577 A JP H0683577A
Authority
JP
Japan
Prior art keywords
shift
data
bit
output
input
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.)
Withdrawn
Application number
JP4230795A
Other languages
English (en)
Inventor
Takeshi Nagano
勇志 長野
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.)
Oki Electric Industry Co Ltd
Original Assignee
Oki Electric Industry 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 Oki Electric Industry Co Ltd filed Critical Oki Electric Industry Co Ltd
Priority to JP4230795A priority Critical patent/JPH0683577A/ja
Publication of JPH0683577A publication Critical patent/JPH0683577A/ja
Withdrawn legal-status Critical Current

Links

Abstract

(57)【要約】 【目的】 シフト演算装置の出力幅をソースデータ幅と
同じビット幅とし、補正回路を用いることなく基本とし
ているシフトのシフト方向と逆のシフトを行うことが可
能なシフト演算装置を提供する。 【構成】 ビット幅を持つデータをビット単位で移動す
るシフト演算装置において、データを左方向へ移動する
シフト情報をデコードする左シフト用デコード手段21
と、データを右方向へ移動するシフト情報をデコードす
る右シフト用デコード手段22と、デコード手段の出力
を選択的に入力して前記データをビット単位で移動する
移動手段23,24とを有するものである。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、シフト演算装置に関す
るものである。
【0002】
【従来の技術】一般に、論理回路において、レジスタ内
にあるデータの各ビットを右あるいは左に移動するシフ
トが行われる場合があり、右へ動かすことを右シフト、
左へ動かすことを左シフトという。そして、シフトには
論理シフトと算術シフトとがある。
【0003】以下に、論理シフトにおいて説明を行う。
図9は、シフト状態図であり、図9の(a)に示すよう
に、例えば8ビットのレジスタ内にある元のデータを左
へ1回シフトすると図9の(b)に示す状態となり、一
方、レジスタ内にある元のデータを右へ1回シフトする
と図9の(c)に示す状態となる。
【0004】また、右シフトや左シフトを行ったとき、
はみ出たものを循環させてもどすサイクリック・シフト
がある。図10はこのサイクリック・シフトのシフト状
態図である。図10の(a)においては、左へシフトし
て左端のビットからはみ出たデータを右端のビットに戻
すことよって循環させ、いわばデータの回転を行う。ま
た、図10の(b)においては、右へシフトして右端の
ビットからはみ出たデータを左端のビットに戻すことに
よって循環させ、データの回転を行う。
【0005】前記データのシフト及び回転の演算を行う
演算装置として、シフト演算装置が知られている。図1
1はシフト演算装置の基本動作概念図であり、図12は
8ビットシフト演算装置の回路図であり、図13は8ビ
ットシフト演算装置回路に用いる基本回路ユニットであ
る。図11において、(a)は元のソースデータであ
り、例えば8ビットのデータ幅を有している。
【0006】データのシフトを行うには、ソースデータ
の2倍のデータ幅を持つシフト演算装置を用意し、指定
されたビット数だけ右もしくは左方向へのシフトを行
う。図11の(b)は、ソースデータを左方向へ3ビッ
トだけシフトしたものであり、シフト演算装置本体の右
半分から左方向へ3ビット分シフトした結果が得られ、
一方、シフト演算装置本体の左半分から右方向へ5ビッ
ト分シフトした結果が得られる。
【0007】また、データの回転を行うには、前記図1
1の(b)のシフト結果を用い、シフト演算装置本体の
出力の右半分と左半分のビットごとの論理和をとること
によって得られる。図12における8ビットシフト演算
装置回路では、図13に示す基本ユニットを階層状に配
列して各基本ユニットにソースデータ、基本ユニットか
らのシフト結果及びシフト信号を入力することによっ
て、右シフトの結果、左シフトの結果及び回転の結果を
出力するものである。
【0008】なお、図13の基本ユニットは、トランス
ミッションゲートタイプの2入力セレクタであり、非シ
フトデータと被シフトデータの入力信号をシフト信号及
び非シフト信号によって選択するものである。
【0009】
【発明が解決しようとする課題】しかしながら、上記の
構成では、以下のような問題点を有している。 (1)従来のシフト演算装置においては、シフト演算装
置の出力がソースデータ幅の2倍のビット幅となる。例
えば、図11の(b)あるいは図12に示されるよう
に、8ビット幅のソースデータに対してシフト演算装置
の出力は16ビットとなり、2倍のビット幅の出力デー
タに対応する演算処理を必要とする。 (2)また、従来のシフト演算装置においては、基本と
しているシフトのシフト方向と逆のシフトを行う場合に
は、補正回路を必要とする。
【0010】一般に、シフト演算装置回路は、データの
移動の方向に応じて右シフトと左シフトの2種類があ
る。例えば、図12の8ビットシフト演算装置回路にお
いては、左シフトを基本としている。この左シフトを基
本としているシフト演算装置回路においては、右シフト
を行う場合には補正回路を通す必要がある。図14の補
正回路のデータ状態図によって説明する。
【0011】図11のシフト演算装置の基本動作概念図
において、左シフトのシフト量をa 2 ,a1 ,a0 のシ
フト信号(a2 は4ビットシフト信号、a1 は4ビット
シフト信号、a0 は4ビットシフト信号とする)で表す
場合には、以下のようにして右シフトを行う。1ビット
右方向にシフトさせる場合について説明する。
【0012】左シフトを基本とする回路においては、1
ビット左シフトは(a2 ,a1 ,a 0 )=(1,0,
0)のシフト信号となる。右シフトを行う場合には、こ
のシフト信号の補数をとり、(a2 ,a1 ,a0)=
(0,1,1)のシフト信号とする。この補数のシフト
信号によってソースデータをシフトすると、その結果と
図14の(b)に示すようになり、出力の左半分におい
てソースデータを2ビット右シフトした状態となる。
【0013】そこで、次に図14の(b)の結果を1ビ
ットだけ補正シフトさせると、出力の左半分からソース
データを1ビット右シフトしたものが得られることにな
る。図12において説明すると、例えば、右方向に1ビ
ットシフトさせる場合には、図12の右シフト信号によ
って1ビットシフト信号a0 、2ビットシフト信号a1
及び4ビットシフト信号a2 についてその補数をとって
その補数のシフト信号によりシフトを行い、さらに前記
右シフト信号を出力のLSBビットに入力して1ビット
の補正シフトを行う。これによって、基本シフトを左シ
フトとした場合の右シフトが行われる。
【0014】したがって、左シフトを基本としているシ
フト演算装置回路において右シフトを行う場合には、シ
フト信号の補数をとったり、補正シフトを行うなどの補
正回路を通す必要がある。本発明は、前記した従来のシ
フト演算装置の問題点を除去し、シフト演算装置の出力
幅をソースデータ幅と同じビット幅とし、補正回路を用
いることなく基本としているシフトのシフト方向と逆の
シフトを行うことが可能なシフト演算装置を提供するこ
とを目的とする。
【0015】
【課題を解決するための手段】前記の目的を達成するた
めに本発明のビット幅を持つデータをビット単位で移動
するシフト演算装置において、データを左方向へ移動す
るシフト情報をデコードする左シフト用デコード手段
と、データを右方向へ移動するシフト情報をデコードす
る右シフト用デコード手段と、デコード手段の出力を選
択的に入力して前記データをビット単位で移動する移動
手段とを有するものである。そして、移動手段は、デコ
ード手段の出力に応じて前記データをサイクリックに循
環させる手段や、空きビットを0又は1とする手段や、
またデコード手段の出力の上位ビットから見て最初に1
が現れるビット位置に応じてデータの符号補正を行う手
段を有するものである。
【0016】
【作用】そのために、本発明のシフト演算装置において
は、データを移動するシフト情報をデコードするデコー
ド手段を、左方向へ移動するシフト情報をデコードする
左シフト用デコード手段と、右方向へ移動するシフト情
報をデコードする右シフト用デコード手段との2つのデ
コード手段とすることによって、シフト演算の基本のシ
フト方向と逆のシフト方向のシフトを行う場合の補正回
路を不要とすることができる。
【0017】また、データの符号補正を行うことによっ
て、左方向と右方向の両シフト方向に対応する算術シフ
トを行うことができる。
【0018】
【実施例】以下、本発明の実施例について図面を参照し
ながら詳細に説明する。図1は本発明のシフト演算装置
の第1の実施例の構成図である。図1において、21は
左シフト用デコーダ(以下、DECLという)、22は
右シフト用デコーダ(以下、DECRという)、23は
セレクタ、24は循環演算器(以下、ROTという)、
Aは入力データ、Bはシフトデータ、Rは出力データで
ある。
【0019】本発明のシフト演算装置の第1の実施例に
おいて、入力データAはシフトデータBに基づいてRO
T24を駆動し、出力データRを出力する。そして、R
OT24の回転の量及び回転の方向を制御する入力信号
Xは、シフトデータBをDECL21とDECR22の
2つのデコーダによってデコードし、セレクタ23で選
択することによって得られる。
【0020】つまり、ソースデータである入力データA
が32ビットの場合には、入力データAはROT24に
おいて、入力信号Xに応じて回転演算が施されてデータ
のシフトが行われ出力データRとして出力される。この
ROT24における回転の量と回転方向とは、入力信号
Xによって決定される。そして、この入力信号Xはシフ
トデータBをデコードして得られるものであり、本発明
はこのシフトデータBをデコードするデコーダを2つ用
いるものである。2つのデコーダのうち一方のデコーダ
はDECL21であり、他方のデコーダはDECR22
である。
【0021】したがって、本発明のシフト演算装置にお
いては、ROT24におけるシフトに先だってDECL
21及びDECR22において左シフトと右シフトの2
つのシフト制御用の信号をあらかじめ用意し、セレクタ
23によって選択するものがある。このセレクタ23
は、シフトデータBの符号SGNBとシフト方向Cによ
って決定される。
【0022】このデコーダを2つ用いることによって、
シフト演算装置の出力幅をソースデータ幅と同じビット
幅とし、また補正回路を用いることなく基本としている
シフトのシフト方向と逆のシフトを行うことが可能とな
る。図2はデータ長が32ビットの場合のDECLの回
路図であり、図3は同じくデータ長が32ビットの場合
のDECRの回路図であり、図4はそれらの真理値表で
ある。また、図5はROTの真理値表である。
【0023】以下に、図1〜5を用いてシフトデータB
の正負、及びシフト方向Cの組み合わせについて説明す
る。32ビットの入力データAを(d313029・・・
3 2 1 0 )によって表し、SGNBをシフトデ
ータBの符号、Cをシフト方向(C=0のとき左シフ
ト、C=1のとき右シフト)とする。 (1)始めに、シフトデータBの符号SGNBが正で入
力データAを左シフトする場合について説明する。
【0024】シフトデータBがDECL21及びDEC
R22に入力されると、各デコーダにおいて図4の真理
値表に応じた32ビットのデータがセレクタ23に入力
される。このセレクタ23において、左シフトであるの
で0を選択して、DECL21の値をROT24に入力
する。 (2)次に、シフトデータBの符号SGNBが正で入力
データAを右シフトする場合について説明する。
【0025】シフトデータBがDECL21及びDEC
R22に入力されると、前記(1)の場合と同様にして
各デコーダにおいて図4の真理値表に応じた32ビット
のデータがセレクタ23に入力される。このセレクタ2
3において、右シフトであるので1を選択して、DEC
R22の値をROT24に入力する。 (3)次に、シフトデータBの符号SGNBが負で入力
データAを左シフトする場合について説明する。
【0026】この場合は、前記(2)の正方向右シフト
と同様の動作であり、シフトデータBがDECL21及
びDECR22に入力されると、前記(1)の場合と同
様にして各デコーダにおいて図4の真理値表に応じた3
2ビットのデータがセレクタ23に入力される。そし
て、このセレクタ23においてSGNB=1、C=0と
なり、1を選択して、DECR22の値をROT24に
入力する。 (4)次に、シフトデータBの符号SGNBが負で入力
データAを右シフトする場合について説明する。
【0027】この場合は、前記(1)の正方向左シフト
と同様の動作であり、シフトデータBがDECL21及
びDECR22に入力されると、前記(1)の場合と同
様に各デコーダにおいて図4の真理値表に応じた32ビ
ットのデータがセレクタ23に入力される。そして、こ
のセレクタ23においてSGNB=1、C=1となり、
0を選択して、DECR21の値をROT24に入力す
る。
【0028】以下に、シフトデータBが2の場合のシフ
トと、−2の場合のシフトの例、つまりデータを2ビッ
トシフトさせる例について説明する。 (a)B=2で左シフトの場合:B=2で左シフトの場
合は前記の(1)に対応するものである。シフトデータ
BがDECL21及びDECR22に入力されると、各
デコーダにおいて図4の真理値表に応じた32ビットの
データがセレクタ23に入力される。シフトデータBを
5ビットによって表すと(00010)となり、図4の
真理値表からシフトデータに対するDECL21の出力
データは(000…0100)、DECR22の出力デ
ータは(010…0000)となる。
【0029】セレクタ23において、シフトデータBの
符号は正であり、また左シフトであるため、セレクタ2
3への入力はSGNB=0,C=0となり、0を選択す
ることになる。このセレクタ23の選択によって、RO
T24にはDECL21の出力データ(000…010
0)が入力される。ROT24への入力信号Xのデータ
(000…0100)に対して、ROT24は図5の真
理値表から出力データR(d292827・・・d1 0
3130)を出力する。
【0030】したがって、入力データAは2ビット左に
シフトされたことになる。 (b)B=2で右シフトの場合:シフトデータBがDE
CL21及びDECR22に入力されると、各デコーダ
において図4の真理値表に応じた32ビットのデータが
セレクタ23に入力される。シフトデータBを5ビット
によって表すと(00010)となり、図4の真理値表
からシフトデータに対するDECL21の出力データは
(000…0100)、DECR22の出力データは
(010…0000)となる。ここまでの段階は前記
(a)と同様である。
【0031】次に、セレクタ23において、シフトデー
タBの符号は正であり、また右シフトであるため、セレ
クタ23への入力はSGNB=0,C=1となり、1を
選択することになる。このセレクタ23の選択によっ
て、ROT24にはDECR22のデータ(010…0
000)が入力される。ROT24への入力信号Xのデ
ータ(010…0000)に対して、ROT24は図5
の真理値表から出力データR(d1 0 31・・・d5
4 3 2 )を出力する。
【0032】したがって、入力データAは2ビット右に
シフトされたことになる。 (c)B=−2で左シフトの場合:シフトデータBがD
ECL21及びDECR22に入力されると、各デコー
ダにおいて図4の真理値表に応じた32ビットのデータ
がセレクタ23に入力される。シフトデータBを5ビッ
トによって表すと(00010)となり、図4の真理値
表からシフトデータに対するDECL21の出力データ
は(000…0100)、DECR22の出力データは
(010…0000)となる。ここまでの段階は前記
(a),(b)と同様である。
【0033】次に、セレクタ23において、シフトデー
タBの符号は負であり、また左シフトであるため、セレ
クタ23への入力はSGNB=1,C=0となり、1を
選択することになる。このセレクタ23の選択によっ
て、ROT24にはDECR22のデータ(010…0
000)が入力される。ROT24への入力信号Xのデ
ータ(010…0000)に対して、ROT24は図5
の真理値表から出力データR(d1 0 31・・・d5
4 3 2 )を出力する。
【0034】したがって、入力データAは2ビット右に
シフトされたことになり、前記(b)の場合と同様にな
る。 (d)B=−2で右シフトの場合:シフトデータBがD
ECL21及びDECR22に入力されると、各デコー
ダにおいて図4の真理値表に応じた32ビットのデータ
がセレクタ23に入力される。シフトデータBを5ビッ
トによって表すと(00010)となり、図4の真理値
表からシフトデータに対するDECL21の出力データ
は(000…0100)、DECR22の出力データは
(010…0000)となる。ここまでの段階は前記
(a),(b),(c)と同様である。
【0035】次に、セレクタ23において、シフトデー
タBの符号は負であり、また右シフトであるため、セレ
クタ23への入力はSGNB=1,C=1となり、0を
選択することになる。このセレクタ23の選択によっ
て、ROT24にはDECL21のデータ(000…0
100)が入力信号Xから入力される。ROT24への
入力信号Xのデータ(000…0100)に対して、R
OT24は図5の真理値表から出力データR(d2928
27・・・d1 0 3130)を出力する。
【0036】したがって、入力データAは2ビット左に
シフトされたことになり、前記(a)の場合と同様にな
る。ただし、ROT24による出力データRは、データ
が回転しただけであるので、図6の構成図で示される補
正回路MASKによって補正する。補正回路MASK
は、以下の3つの機能を有している。 機能1:データの回転を行う場合には、入力される出力
データRをそのまま出力Qから出力する。 機能2:データをシフトし、シフト後の空き部分を0と
して出力する。
【0037】この場合には、図7の補正回路の機能図に
示すように、ROT24によって出力された出力データ
Rの有効部分に対して1のANDをとり、また不必要な
部分に対して0のANDをとるものであり、このAND
をとることによってデータをシフトし、そのシフト後の
空き部分を0とすることができる。 機能3:データをシフトし、シフト後の空き部分を1と
して出力する。
【0038】この場合には、図8の補正回路の機能図に
示すように、ROT24によって出力された出力データ
Rの有効部分に対して0との論理和をとり、また不必要
な部分に対して1との論理和をとるものである。この論
理和をとることによってデータをシフトし、そのシフト
後の空き部分を1とすることができる。したがって、R
OT24による出力データRを補正回路MASKを通す
ことによって、回転したデータや、空き部分を0または
1としたシフトデータを得ることができる。
【0039】次に、本発明のシフト演算装置の第2の実
施例について説明する。本発明のシフト演算装置の第1
の実施例は論理シフトにおけるものであるのに対して、
第2の実施例は算術シフトにおけるものである。始め
に、算術シフトについて説明する。第1の実施例の図9
において、データが二進数で表されているとき、左へ1
回シフトすることは2倍することと同じであり、右へ1
回シフトすることは2で割ることと同じとなる。図9の
(a)は二進数としてみれば44であり、図9の(b)
は88、図9の(c)は22となる。したがって、2
倍、4倍、…、2分の1、4分の1するかわりにシフト
を用いることができる。
【0040】負の数が2の補数を用いて表現されている
場合には、符号を表すビットは通常最も左のビットが用
いられるので、図15の算術シフトのシフト状態図にお
いて、図15の(b)のように左へ1回シフトする場合
には符号のところは1の負の数となり問題はないが、図
15の(c)のように右へ1回シフトすると符号のとこ
ろに0がはいって負の数でなくなってしまう。したがっ
て、2で割る目的で右シフトをするときには、符号のビ
ットをそのままにしておく必要がある。
【0041】すなわち、図15の負の数を例にすると、
図16の算術シフトのシフト状態図に示すような移動を
行う必要がある。図16の右シフトのときには、符号の
ビット1が数を表す部分にはいっていて、しかも符号の
ビットはそのまま1で0にはならない。したがって、シ
フト後の数は負の数で、シフトする前の1/2を表すこ
とになる。
【0042】この算術シフトの場合においても、前記し
た論理シフトと同様に (1)従来のシフト演算装置においては、シフト演算装
置の出力がソースデータ幅の2倍のビット幅となる。 (2)従来のシフト演算装置においては、基本としてい
るシフトのシフト方向と逆のシフトを行う場合には補正
回路を必要とする。という問題点と、さらに、 (3)シフトによる符号の補正が必要となる。
【0043】という問題点を有している。そこで、本発
明の第2の実施例においては、算術シフトにおいて以下
の構成によって前記問題点を解決している。図17は本
発明の第2の実施例の構成図である。図17において、
25はファインドファースト1(以下、FF1Bとい
う)、26は補正回路MASK、Aは入力データ、Bは
シフトデータ、Dは出力データである。
【0044】本発明のシフト演算装置の第2の実施例に
おいて、シフトデータBはデコード後、一方では入力デ
ータAをROT24において循環演算し、また他方のF
F1B25では補正用の信号を形成する。そして、前記
ROT24の出力とFF1B25とを補正回路MASK
26に入力し、出力データDを出力する。そして、RO
T24の回転の量及び回転の方向を制御する入力信号X
は、シフトデータBをDECLとDECRの2つのデコ
ーダ21、22によってデコードし、セレクタ23で選
択することによって得られる。
【0045】つまり、ソースデータである入力データA
が32ビットの場合には、入力データAはROT24に
おいて、入力信号Xに応じて回転演算が施されてデータ
のシフトが行われた出力データRが出力される。このR
OT24における回転の量と回転方向とは、入力信号X
によって決定される。そして、この入力信号Xはシフト
データBをデコードして得られるものであり、本発明は
このシフトデータBをデコードするデコーダを2つ用い
るものである。2つのデコーダの一方のデコーダは左シ
フト用のデコーダDECL21であり、他方のデコーダ
は右シフト用のデコーダDECR22である。
【0046】したがって、本発明のシフト演算装置にお
いては、ROT24におけるシフトに先だってDECL
21及びDECR22において左シフトと右シフトの2
つのシフト制御用の信号をあらかじめ用意し、セレクタ
23によって選択するものがある。このセレクタ23
は、シフトデータBの符号SGNBとシフト方向Cによ
って決定される。
【0047】このデコーダを2つ用いることによって、
シフト演算装置の出力幅をソースデータ幅と同じビット
幅とし、また補正回路を用いることなく基本としている
シフトのシフト方向と逆のシフトを行うことが可能とな
る。図4はデータ長が32ビットの場合のDECL及び
DECRの真理値表であり、また、図5はROTの真理
値表である。ここまでは、本発明の第1の実施例と同様
の動作である。
【0048】本発明の第2の実施例においては、FF1
B及び補正回路MASKによって算術シフトにおいてシ
フトによる符号の補正を行うものである。ここで、FF
1Bは、最上位ビットの方からみていき、nビット目に
1が現れたとき(n−1)ビット目以降が1となる機能
を有するものである。図18はFF1Bの機能図であ
る。図18において、「×」は「1」でも「0」でもよ
いことを示している。
【0049】以下に、入力データAを2B 倍する場合と
B 分の1する場合について説明する。ここで、入力デ
ータAを(d313029・・・d3 2 1 0 )で表
される32ビットのデータとする。 (1)始めに、入力データAを2B 倍する場合について
説明する。
【0050】入力データAを2B 倍する場合は、シフト
データBの符号SGNBが正で入力データAを左シフト
する場合に相当する。したがって、シフトデータBがD
ECL21及びDECR22に入力されると、各デコー
ダにおいて図4の真理値表に応じた32ビットの出力デ
ータRがセレクタ23に入力される。このセレクタ23
は、左シフトであるので、0を選択してDECL21の
値をROT24に入力する。また、セレクタ23の出力
はFF1B25に入力され、図18の真理値に対応して
FB信号を出力する。
【0051】補正回路MASK26では、前記出力デー
タR及びFB信号が入力され、データDを出力する。 (2)次に、入力データAを2B 分の1にする場合につ
いて説明する。入力データAを2B 分の1にする場合
は、シフトデータBの符号SGNBが正で入力データA
を右シフトする場合に相当する。したがって、シフトデ
ータBがDECL21及びDECR22に入力される
と、各デコーダにおいて図4の真理値表に応じた32ビ
ットの信号がセレクタ23に入力される。
【0052】このセレクタ23は、右シフトであるの
で、1を選択してDECR22の値をROT24に入力
する。また、セレクタ23の出力はFF1B25に入力
され、図18の真理値に対応してFB信号を出力する。
補正回路MASK26では、出力データR及びFB信号
が入力され、データDを出力する。
【0053】補正回路MASK26の機能は、Bが0の
場合、左シフトでBが正の場合及び右シフトでBが負の
場合にはFB信号を反転させ、さらに、そのFB信号の
値が1のビットに対して出力データRの対応するビット
の値を出力し、そのFB信号の値が0のビットに対して
Aが負で左シフトでBが負の場合及びAが負で右シフト
でBが正の場合に出力データRの対応するビットの値を
1とし、その他の場合では出力データRの対応するビッ
トの値を0とするものである。
【0054】以下に、シフトデータBが2の場合のシフ
トと、−2の場合のシフトの例、つまりデータを4倍あ
るいは4分の1にする例について説明する。 (a)B=2のときにデータAを2B 倍する場合:シフ
トデータBがDECL21及びDECR22に入力され
ると、各デコーダにおいて図4の真理値表に応じた32
ビットのデータがセレクタ23に入力される。シフトデ
ータBを5ビットによって表すと(00010)とな
り、図4の真理値表からシフトデータに対するDECL
21の出力データは(000…0100)、DECR2
2の出力データは(010…0000)となる。
【0055】セレクタ23において、シフトデータBの
符号は正であり、また左シフトであるため、セレクタ2
3への入力はSGNB=0,C=0となり、0を選択す
ることになる。このセレクタ23の選択によって、RO
T24にはDECL21のデータ(000…0100)
が入力される。セレクタ23からの入力信号Xのデータ
(000…0100)及び入力データAに対して、RO
T24は図5の真理値表から出力データR(d2928
27・・・d1 0 3130)を出力する。
【0056】一方、入力信号Xのデータ(000…01
00)に対して、FF1B25は図18の真理値表から
FB信号(0000・・・011)を出力する。データ
R(d292827・・・d1 0 3130)及びFB信
号(0000・・・011)は補正回路MASK26の
機能に従って処理を行う。この場合、補正回路MASK
26はBが正で左シフトであるのでFB信号は反転され
て(1111・・・100)となり、FB信号が1のビ
ットに対応するデータRの部分はその値を出力し、FB
信号が0のビットに対応するデータRの部分はAが正で
あれば0となり、またAが負であれば左シフトでBが正
であるのでやはり0とする。したがって、補正回路MA
SK26の出力は(d292827・・・d1 0
0)となる。 (b)B=2のときにデータAを2B 分の1にする場
合:シフトデータBがDECL21及びDECR22に
入力されると、各デコーダにおいて図4の真理値表に応
じた32ビットのデータがセレクタ23に入力される。
シフトデータBを5ビットによって表すと(0001
0)となり、図4の真理値表からシフトデータに対する
DECL21の出力データは(000…0100)、D
ECR22の出力データは(010…0000)とな
る。
【0057】セレクタ23において、シフトデータBの
符号は正であり、また右シフトであるため、セレクタ2
3への入力はSGNB=0,C=1となり、1を選択す
ることになる。このセレクタ23の選択によって、RO
T24にはDECR22のデータ(010…0000)
が入力される。セレクタ23からの入力信号Xのデータ
(010…0000)及び入力データAに対して、RO
T24は図5の真理値表から出力データR(d1 0
31・・・d3 2 )を出力する。
【0058】一方、入力信号Xのデータ(010…00
00)に対して、FF1B25は図18の真理値表から
FB信号(0011・・・11)を出力する。出力デー
タR(d1 0 31・・・d3 2 )及びFB信号(0
011・・・11)は補正回路MASK26の機能に従
って処理を行う。この場合、補正回路MASK26はB
が正で右シフトであるのでFB信号は反転されず(00
11・・・11)のまままであり、FB信号が1のビッ
トに対応する出力データRの部分はその値を出力し、F
B信号が0のビットに対応する出力データRの部分はA
が正であればつまりd31が0であれば0であり、またA
が負であればつまりd31が1であれば右シフトでBが正
であるのでやはり1となり、いずれにしてもd31が出力
されることになる。
【0059】したがって、補正回路MASK26の出力
は(d31313130・・・d3 2 )となる。 (c)B=−2のときにデータAを2B 倍する場合:シ
フトデータBがDECL21及びDECR22に入力さ
れると、各デコーダにおいて図4の真理値表に応じた3
2ビットのデータがセレクタ23に入力される。シフト
データBを5ビットによって表すと(11110)とな
り、図4の真理値表からシフトデータに対するDECL
21の出力データは(010…0000)、DECR2
2の出力データは(000…0100)となる。
【0060】セレクタ23において、シフトデータBの
符号は負であり、また左シフトであるため、セレクタ2
3への入力はSGNB=1,C=0となり、1を選択す
ることになる。このセレクタ23の選択によって、RO
T24にはDECL21のデータ(010…0000)
が入力される。セレクタ23からの入力信号Xのデータ
(010…0000)及び入力データAに対して、RO
T24は図5の真理値表から出力データR(d1 0
31・・・d3 2 )を出力する。
【0061】一方、入力信号Xのデータ(010…00
00)に対して、FF1B25は図18の真理値表から
FB信号(0011・・・111)を出力する。出力デ
ータR(d1 0 31・・・d3 2 )及びFB信号
(0011・・・111)は補正回路MASK26の機
能に従って処理を行う。この場合、補正回路MASK2
6はBが負で左シフトであるのでFB信号は反転されず
(0011・・・111)のままであり、FB信号が1
のビットに対応する出力データRの部分はその値を出力
し、FB信号が0のビットに対応する出力データRの部
分はAが正であればつまりd31が0であれば0であり、
またAが負であればつまりd31が1であれば右シフトで
Bが正であるのでやはり1となり、いずれにしてもd31
が出力されることになる。
【0062】したがって、補正回路MASK26の出力
は(d31313130・・・d3 2 )となる。 (c)B=−2のときにデータAを2B 分の1する場
合:シフトデータBがDECL21及びDECR22に
入力されると、各デコーダにおいて図4の真理値表に応
じた32ビットのデータがセレクタ23に入力される。
シフトデータBを5ビットによって表すと(1111
0)となり、図4の真理値表からシフトデータに対する
DECL21の出力データは(010…0000)、D
ECR22の出力データは(000…0100)とな
る。
【0063】セレクタ23において、シフトデータBの
符号は負であり、また右シフトであるため、セレクタ2
3への入力はSGNB=1,C=1となり、0を選択す
ることになる。このセレクタ23の選択によって、RO
T24にはDECR22のデータ(000…0100)
が入力される。セレクタ23からの入力信号Xのデータ
(000…0100)及び入力データAに対して、RO
T24は図5の真理値表から出力データR(d2928
27・・・d1 0 3130)を出力する。
【0064】一方、入力信号Xのデータ(000…01
00)に対して、FF1B25は図18の真理値表から
FB信号(0000・・・011)を出力する。出力デ
ータR(d292827・・・d1 0 3130)及びF
B信号のデータ(0000・・・011)は補正回路M
ASK26の機能に従って処理を行う。この場合、補正
回路MASK26はBが負で右シフトであるのでFB信
号は反転されて(1111・・・100)となり、FB
信号が1のビットに対応する出力データRの部分はその
値を出力し、FB信号が0のビットに対応する出力デー
タRの部分はAが正であれば0となり、またAが負であ
れば右シフトでBが負であるのでやはり0とする。した
がって、補正回路MASK26の出力は(d29 2827
・・・d1 0 0 0)となる。
【0065】なお、本発明は前記実施例に限定されるも
のではなく、本発明の趣旨に基づき種々の変形が可能で
あり、それらを本発明の範囲から排除するものではな
い。
【0066】
【発明の効果】以上、詳細に説明したように、本発明に
よれば、 (1)シフト演算装置の出力のデータ幅をソースデータ
幅と同じビット幅とすることができる。 (2)また、基本としているシフトのシフト方向と逆の
シフトを行う場合においても、補正回路を必要としな
い。 (3)したがって、左右のシフト方向に対応することが
できるシフト演算装置を得ることができる。
【図面の簡単な説明】
【図1】本発明のシフト演算装置の第1の実施例の構成
図である。
【図2】データ長が32ビットの場合のDECLの回路
図である。
【図3】データ長が32ビットの場合のDECRの回路
図である。
【図4】DECL及びDECRの真理値表である。
【図5】ROTの真理値表である。
【図6】補正回路MASKの構成図である。
【図7】補正回路の機能図である。
【図8】補正回路の機能図である。
【図9】シフト状態図である。
【図10】サイクリック・シフトのシフト状態図であ
る。
【図11】シフト演算装置の基本動作概念図である。
【図12】8ビットシフト演算装置の回路図である。
【図13】8ビットシフト演算装置回路に用いる基本回
路ユニットである。
【図14】補正回路のデータ状態図である。
【図15】算術シフトのシフト状態図である。
【図16】算術シフトのシフト状態図である。
【図17】本発明の第2の実施例の構成図である。
【図18】FF1Bの機能図である。
【符号の説明】
21 左シフト用デコーダ(DECL) 22 右シフト用デコーダ(DECR) 23 セレクタ 24 循環演算器(ROT) 25 ファインドファースト1(FF1B) 26 補正回路MASK A 入力データ B シフトデータ D,R 出力データ C シフト方向データ

Claims (4)

    【特許請求の範囲】
  1. 【請求項1】 ビット幅を持つデータをビット単位で移
    動するシフト演算装置において、(a)前記データを左
    方向へ移動するシフト情報をデコードする左シフト用デ
    コード手段と、(b)前記データを右方向へ移動するシ
    フト情報をデコードする右シフト用デコード手段と、
    (c)前記デコード手段の出力を選択的に入力して前記
    データをビット単位で移動する移動手段とからなること
    を特徴とするシフト演算装置。
  2. 【請求項2】 前記移動手段は、前記デコード手段の出
    力に応じて前記データをサイクリックに循環させる手段
    を有する請求項1記載の演算装置。
  3. 【請求項3】 前記移動手段は空きビットを0又は1と
    する手段を有する請求項2記載の演算装置。
  4. 【請求項4】 前記移動手段は前記デコード手段の出力
    の上位ビットから見て最初に1が現れるビット位置に応
    じてデータの符号補正を行う手段を有する請求項1記載
    の演算装置。
JP4230795A 1992-08-31 1992-08-31 シフト演算装置 Withdrawn JPH0683577A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP4230795A JPH0683577A (ja) 1992-08-31 1992-08-31 シフト演算装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP4230795A JPH0683577A (ja) 1992-08-31 1992-08-31 シフト演算装置

Publications (1)

Publication Number Publication Date
JPH0683577A true JPH0683577A (ja) 1994-03-25

Family

ID=16913396

Family Applications (1)

Application Number Title Priority Date Filing Date
JP4230795A Withdrawn JPH0683577A (ja) 1992-08-31 1992-08-31 シフト演算装置

Country Status (1)

Country Link
JP (1) JPH0683577A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7237997B2 (en) 2003-11-10 2007-07-03 Aoyama Seisakusho Co., Ltd. Fixing tool

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7237997B2 (en) 2003-11-10 2007-07-03 Aoyama Seisakusho Co., Ltd. Fixing tool

Similar Documents

Publication Publication Date Title
US4472788A (en) Shift circuit having a plurality of cascade-connected data selectors
US4872128A (en) High speed data processing unit using a shift operation
JPS62191920A (ja) シフト数制御回路
JPH05134848A (ja) 中央処理装置のデータシフト回路
US5721809A (en) Maximum value selector
US4149263A (en) Programmable multi-bit shifter
US4890251A (en) Arithmetic shifter with sign extend facility
JPH0421025A (ja) 左右シフタ
JPS63225822A (ja) バレルシフタ
US6167420A (en) Multiplication method and multiplication circuit
JP3507517B2 (ja) 2進数に於いて最も端にある「1」ビットの位置検出回路
US4435782A (en) Data processing system with high density arithmetic and logic unit
US5729482A (en) Microprocessor shifter using rotation and masking operations
JPH0683577A (ja) シフト演算装置
US5991786A (en) Circuit and method for shifting or rotating operands of multiple size
JPH0697431B2 (ja) バレルシフタ
US5146479A (en) Up/down counter for counting binary data stored in flip flops
JPH09114639A (ja) マスクデータ生成回路及びビットフィールド操作回路
US6122651A (en) Method and apparatus for performing overshifted rotate through carry instructions by shifting in opposite directions
JP2758549B2 (ja) Mosシフト回路装置
JP2679820B2 (ja) ビット反転装置
JP2002196923A (ja) 負の2値数を算術右シフトする方法及び負の2値数を右シフトするシステム
JP2503017B2 (ja) バレルシフタ回路
JP2556613B2 (ja) バレルシフタ回路
JP3031044B2 (ja) 丸め演算回路

Legal Events

Date Code Title Description
A300 Withdrawal of application because of no request for examination

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 19991102