JPS6382513A - バレルシフタ - Google Patents

バレルシフタ

Info

Publication number
JPS6382513A
JPS6382513A JP61226220A JP22622086A JPS6382513A JP S6382513 A JPS6382513 A JP S6382513A JP 61226220 A JP61226220 A JP 61226220A JP 22622086 A JP22622086 A JP 22622086A JP S6382513 A JPS6382513 A JP S6382513A
Authority
JP
Japan
Prior art keywords
rotation
shift
bit
bits
input information
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
JP61226220A
Other languages
English (en)
Other versions
JPH0379734B2 (ja
Inventor
Takeji Tokumaru
武治 得丸
Miyuki Nagata
永田 みゆき
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.)
Toshiba Corp
Original Assignee
Toshiba Corp
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 Toshiba Corp filed Critical Toshiba Corp
Priority to JP61226220A priority Critical patent/JPS6382513A/ja
Priority to US07/101,640 priority patent/US4839839A/en
Publication of JPS6382513A publication Critical patent/JPS6382513A/ja
Publication of JPH0379734B2 publication Critical patent/JPH0379734B2/ja
Granted legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F5/00Methods or arrangements for data conversion without changing the order or content of the data handled
    • G06F5/01Methods or arrangements for data conversion without changing the order or content of the data handled for shifting, e.g. justifying, scaling, normalising
    • G06F5/015Methods or arrangements for data conversion without changing the order or content of the data handled for shifting, e.g. justifying, scaling, normalising having at least two separately controlled shifting levels, e.g. using shifting matrices

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Executing Machine-Instructions (AREA)
  • Complex Calculations (AREA)

Abstract

(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。

Description

【発明の詳細な説明】 [発明の目的] (B葉上の利用分野) この発明は入力情報のキャリーを含むローテート動作に
おけるシフト量をハードウェアによる構成で算出して、
キャリーを含むローテートを高速に行なうバレルシフタ
に関する。
(従来の技術) 情報をビット単位で循環させるキャリービットを含んだ
ローテート動作は、例えばバレルシフタを用いて行なう
ものがある。
第3図及び第4図はキャリービットを含んだローテート
動作(以下「キャリー付ローテート」と呼ぶ)を行なう
バレルシフタの構成図であり、第3図はバレルシフタに
おけるシフト部の構成を示す図であり、第4図はバレル
シフタにおける0 −テート部の構成を示す図である。
このバレルシフタは、8ビットの入力情報(Do =D
y )をローテートあるいはキャリー付ローテートする
ものであり、シフト部は8ビットの入力情報(Do=0
7)を0〜7ビット上位ビット方向(以下「左方向」と
する)ヘシフトして、キャリーCaを所定の位置に挿入
し、ローテート部は、シフト部でシフトされた入力情報
のローテート動作を行なうものである。
シフト部は、入力情報Do=D7をシフト信号81.8
2.34に応じて所定量だけシフトして出力端0UTO
〜0UT7,0UT8〜0uT15に出力するセレクタ
11a、11b、13a。
13b 、 15a 、 15bと、キャリーCaをシ
フトされた入力情報Do−D7の最下位ビットD。
の後に挿入するアンド回路17.19.21を有してい
る。
セレクタ11aは、シフト信号S4が“1″レベルにな
ることで導通状態となり、入力情報DO〜D7を左方向
へ4ビットシフトさせ、セレクタ13aは、シフト信号
S2が“1″レベルになることで導通状態となり、この
セレクタ13aへの入力情報を左方向へ2ビットシフト
させ、セレクタ15aは、シフト信号S1が“1″レベ
ルになることで導通状態となり、このセレクタ15aへ
の入力情報を左方向へ1ビットシフトさせて、入力情報
Do−Dyを出力端0UTO−OLIT7゜0UT8〜
0LIT15に出力する。セレクタ11b、131)、
15bは、それぞれシフト信号84゜82.81が゛0
″レベルになると導通状態となり、この状態にあっては
、それぞれのセレクタへ1a〜15bによりシフト信号
81,82.84のレベルの組み合わせに応じて、左方
向へOビットから7ピツトの範囲でシフトされて、出力
端0UTO−OUT7.0tJT8〜0UT15に出力
される。
アンド回路17.19.21は、キャリー付ローテート
信号CRが1”レベルとなり、キャリー付ローテート動
作を行なう場合に、シフトされた入力情報D(1−D7
の最下位ビットDoの後にキャリーCaを挿入するもの
である。シフト信号S4が“1”レベルの場合には、シ
フト信号82゜Slのレベルにかかわらず、キャリーC
aがアンド回路17を介して挿入され、シフト信号S4
が“0″レベル、シフト信号S2が“1°ルベルの場合
には、シフト信号S1のレベルにかかわらず、キャリー
Caはアンド回路19から挿入され、シフト信号84.
82がともに“0”レベル、シフト信号S1が“1″レ
ベルの場合には、キャリーCaはアンド回路21から挿
入される。
なお、入力情報DO〜D7及びキャリーCaが出力され
ない出力端には、110 IIが供給されるようになっ
ている。
ローテート部は、セレクタ11a〜15bと同様の機能
を有するセレクタ25.27と8個のオア回路29を有
しており、シフト部の出力結果のローテート動作及びキ
ャリー付ローテート動作を行なう。
ローテート部は、ローテート動作にあって、第4図に示
しであるように出力端01JT−OtJT15に出力さ
れた値と出力端0tJTO〜0LJT7に出力された値
との論理和をとる。この時、出力端0LITOと0LI
T8・・・・・・0UT7と0UT15との論理和をと
る。キャリー付ローテート動作にあっては、出力端0U
T9〜0UT16に出力された値と出力端0UTO〜0
IJT7に出力された値との論理和をとる。この時、出
力端○LJTOとQUT9・・・0UT7とGNDレベ
ルとの論理和をとる。なお、0UT8に出力された入力
情報はキャリーフリップフロップQa F/Fに供給す
る。
このようなローテート及びキャリー付ローチー1〜動作
は、ローテート動作の場合にはローテート信号Rが゛′
1″1″になることにより、また、キャリー付ローテー
ト動作の場合にはキャリー付ローテート信号CRがパ1
”レベルになることにより、出力端0UTO−OUT7
と出力端0UT8〜0UT15との論理和演算をOR回
路29で行なうことによりなされる。
ところで、上述したような構成で例えば32ビットの入
力情報をローデートするバレルシフタに83いては、入
力情報は31ビットまでシフトされるので、16ビット
、8ビット、4ビット、2ビット、1ビットのシフト冊
をそれぞれ指示する5つのシフト信号816,88.5
4.82.31が必要となる。のこようなバレルシフタ
に8ビットの入力情報とキャリーCaが与えられて、9
ビット以上のシフト徂が指示された場合、例えば11ビ
ットのシフトσが指示された場合には、第5図に示す如
くキャリー付ローテート動作は行なわれないことになる
。すなわち、NビットのバレルシフタにNビット長以下
の入力情報が与えられて、入力情報のビット長以上のシ
フト伍が指示された場合に、シフト回に応じたシフト信
号では、ローテート動作及びキャリー付ローテート動作
は行なわれないことになる。
これは、ローテート動作がローテート酸にかかわらず、
入力情報のビット長に応じて周期的に繰り返さなければ
ならないからである。そして、Nビットの入力情報のロ
ーテート動作では、Nビットのローテート毎にローテー
ト結果は同一となる(以下このことを「モジュロN」と
呼ぶ)。したがって、入力情報をNビットとするモジュ
ロNのローテート動作において、ローテート量をχとす
ると、(χ/N)の除算における際会が実際に入力情報
をローデートするローテート量となる。
例えば、5つのシフト信号316.88.84゜S2,
81を用いて、入力情報を最大31ビットまでシフトす
るバレルシフタで、8ビットの入力情報をシフトしてロ
ーテート動作を行なうためには、シフト団はくローテー
ト量/8)の際会となる。この際会はO〜7までの値と
なり、シフト信号、816.S8をマスクして“OIT
とし、シフト信号84,82.81で表わされる。例え
ばローテート量を19ビットとすると、(ローテートf
f1(19)/8)の際会は3となり、実際のシフトで
は3ビットとなる。したがって、19ビットのローテー
トを行なうために、シフト信号816〜S1は(100
11)となるが、このようなシフト信号において、シフ
ト信号S16.S8をマスクしてパ0”と、シフト信号
816〜S1を(00011)とすれば、3ビットシフ
トの指示がバレルシフタに与えられることになる。
このように、シフト信号316〜$1は、ローテート動
作を行なう入力情報のビット長とローテート量に応じて
、第6図に示すようになる。なお、第6図において、*
印はシフト看に応じてII 111あるいは0″の値を
とり、0印はマスクして“0”とすることを表わしてい
る。
しかしながら、Nビットのバレルシフタにおいて、Nビ
ット以下のビット長の入力情報を、この入力情報のビッ
ト長以上のキャリー付ローテート動作を行なう場合には
、モジュロがN+1(但しNは32.16.8.4とす
る)となるために、第6図に示したように、ローテート
量/入力情報のビット長の際会に応じて、シフト信号を
マスクしたのではキャリー付ローテート動作は行なわれ
ないことになる。
例えば、8ビットの入力情報をキャリー付ローデートす
る場合に、ローテート量を例えば13ビットとすると、
モジュロは9となり、(ローテートI(13)/9)の
際会は4となる。これは、13ビットのローテート結果
は4ビットのローテート結果と同じになることを表わし
ており、バレルシフタにおいて入力情報を4ビットシフ
トすればよいことになる。
しかしながら、ローテート量が13ビットということは
、シフト信号816〜S1は(01101)になってお
り、このようなシフト信号816〜S1にあって、シフ
ト信号S16と88をマスクすることにより“0′°と
して、シフト信号816〜$1を(00101)とする
と、入力情報は5ビットシフトされてしまい、ローテー
ト量を4ビットするキャリー付ローテートは行なわれな
いことになる。
このため、Nビットのバレルシフタにおいて、Nビット
未満のビット長の入力情報をローデートする場合には、
例えば入力情報が8ビットにあっては0〜7ビットまで
の範囲でしかローテート間を指示することができないこ
とになり、ローテートmは入力情報のビット長に応じて
制限されることになる。
そこで、ローテートmを制限しないようにするためには
Cローテート堡/(入力情報のビット数+1))の除算
を行ない、際会をシフト信号とする必要があり、この除
算は通常ソフトウェアで処理される。
例えば、32ビットのバレルシフタにおいて8ビットの
入力情報をキャリー付ローデートする場合のシフト量は
、第7図に示ずフローチャートにしたがってソフトウェ
ア処理されて決定される。
これは、まず、シフト量が判断されて(ステップ100
.101.102)、シフト量≦8の場合にはこのシフ
ト量が実際にバレルシフタに与えられるシフト量となる
。また、9≦シフト量≦17の場合には、シフト量から
9を減尊しくステップ103)、18≦シフト量≦26
の場合にはシフト量から18を減算しくステップ104
)、27≦シフト量の場合にはシフト量から27を減算
して(ステップ105)、それぞれの減算結果が実際に
バレルシフタに与えられるシフト量となる。
このようにして、ソフトウェア処理によりシフト量が決
定されるために、シフト量が27ビット以上の場合には
、5ステツプの処理を要することになり、時間がかかつ
ていた。
(発明が解決しようとする問題点) 以上説明したように、Nビットの入力情報を処理するバ
レルシフタにおいて、Nビット未満の入力情報をキャリ
ー付ローデートするためには、ローテート量が制限され
ることになり、バレルシフタの使用条件が限定されてし
まうという不具合が生じていた。
また、ローテート量を制限することなく、入力情報のビ
ット長以上のローテート動作を行なうためには、実際に
バレルシフタに与えられるシフト量がソフトウェアより
処理されて算出されるために、このシフト量の算出に時
間がかかつていた。
したがって、入力情報のシフト動作が高速に行なわれて
も、このシフト動作のシフト量を算出すめたに時間がか
かり、全体としてのローテート動作を高速に行なうこと
が困難であるという問題があった。
そこで、この発明は、上記に鑑みてなされたものであり
、Nビットの入力情報を処理するバレルシフタにあって
、Nビット未満の入力情報における入力情報のビット長
以上のローテート量のキャリー付ローテートを行なうた
めのシフト量を高速に算出して、キャリー付ローテート
を高速に行なうことができるバレルシフタを提供するこ
とを目的とする。
[発明の構成] (問題点を解決するための手段) この発明のバレルシフタは、Nビットの入力情報をロー
テート間に応じて算出されたシフト量に基づいてシフト
させ、キャリーを含むローテート動作にあっては、シフ
トされた入力情報の最下位ビットの後にキャリーを挿入
して2Nビットの出力を供給するシフト手段と、キャリ
ーを含んだローテート動作におけるローテート量が入力
情報のビット長以上の場合に、入力情報のビット長及び
ローテート量に応じて (ローテート昂−(N+1)Xi )(i =0.1゜
2、・・・)の演算を行ない前記シフト量を算出するシ
フトff1G9出手段と、前記シフト手段から供給され
る下位側Nビットの出力と、ローチー1−動作及びキャ
リー付ローテート動作に応じて前記下位側Nビットの出
力にそれぞれ対応する前記シフト手段の上位側ビットの
出力との論理和を算出するローテート手段とから構成さ
れる。
(作用) この発明のバレルシフタにおいては、キャリーを含んだ
ローテート動作におけるローテート量がNビットの入力
情報のビット長以上の場合には、入力情報のビット長及
びローテートmに応じて(0−7−トWi/ (N+1
)Xi )(i =1.2゜・・・)をシフトfflと
してNビットの入力情報をシフトさけ、キャリーを含む
ローテート動作にあっては、キャリーをシフトされた入
力情報の最下位のビットの後に挿入して2Nビットの情
報を作成し、2Nビットの情報のうち下位側Nビットと
この下位側Nビットにローテート/キャリー付ローテー
トに応じてそれぞれ対応する上位側ビットとの論理和を
算出して、入力情報のローテート動作およびキャリーを
含むローテート動作を行なっている。
(実施例〉 以下図面を用いてこの発明の一実施例を説明する。
第1図はこの発明の一実施例に係るバレルシフタのシフ
ト量算出部の構成を示す図である。このシフト量算出部
は、第3図に示したような構成で32ビットの入力情報
を処理するバレルシフタにシフト量を供給するものであ
り、5つのシフト信号31,82.84,88,816
をバレルシフタに供給するものである。
32ビットの入力情報を処理するバレルシフタにあって
は、入力情報は最大で31ビットまでシフトされるので
、第3図に示した構成によれば、シフト信号は、16ビ
ットのシフトを指示するシフト信号816.8ビットの
シフトを指示するシフト信号S8,4ビットのシフトを
指示するシフト信@84.2ビットのシフトを指示する
シフト信号S2.1ビットのシフトを指示するシフト信
号S1の合計5つのシフト信号が必要となる。そして、
これらのシフト信号の組み合せにより、入力情報はO〜
31ビットまでシフトされる。
また、シフト量算出部は、32ビットのバレルシフタに
16ビットあるいは8ビットの入力情報が与えられて、
バレルシフタがこれらの入力情報のビット長以上のロー
テート量のキャリー付ローテート動作を行なうべく、バ
レルシフタにシフト信号を供給するものである。
第1図に示したシフト量算出部は、ローテート■指示線
L1〜L16から与えられるローテート量と入力情報の
ビット長との比較を行ない、ローテート量が(入力情報
のビット数+1)ビット以上の場合に、入力情報のビッ
ト数に応じた減算信号S[31,SB2.SB3.SW
lを出力する減算値算出部31と、この減算値算出部3
1から与えられる検出信号に応じた減口値を、ローテー
トM指示1911〜L16から与えられるローテートm
から減算して、シフト信号81〜S16を出力する減算
部33とから構成されている。
ローテート借指示線L1〜L16に与えられるローテー
トmは、BCDコードで表わされており、ローテート予
指示線L1は1ビットのローテート量を表わし、以下ロ
ーテート優指示線L2は2ビット、ローテートは指示線
L4は4ビット、ローテート量指示線L8は8ビット、
ローテート伍指示線L16は16ビットのシフト量をそ
れぞれ表わしている。
減算値算出部31は、インバータ回路、アンド回路、オ
ア回路、ノア回路を有している。
ノア回路35は、それぞれの入力端子がローテート吊指
示線L2.L4.L8に接続されている。
アンド回路37は、その一方の入力端子がノア回路35
の出力端子に接続されており、他方の入力端子がローテ
ート徂指示線L16に接続されている。オア回路3つは
、それぞれの入力ぐ々子がローテート吊指示線L1.L
2.L4.に接続されている。オア回路41は、その一
方の入力端子がローテート吊指示I!L8に接続され、
他方の入力端子がオア回路3つの出力端子に接続されて
いる。
オア回路43は、それぞれの入力端子がローテート■指
示線L2.L4.L8に接続されている。
アンド回路45は、それぞれの入力端子がローテート最
指示線L1.L2に接続されている。オア回路47は、
その一方の入力端子がアンド回路45の出力端子に接続
されており、他方の入力端子にローテート量指示線L4
が接続されている。
アンド回路49は、その一方の入力端子に入力情報が8
ビットであることを示すバイト信号が与えられており、
他方の入力端子にキャリー付0−テート信@CRが与え
られている。アンド回路51は、その一方の入力端子に
入力情報が16ビットであることを示すワード信号が与
えられており、他方の入力端子にキャリー付ローテート
信号CRが与えられている。
アンド回路53は“、それぞれの入力端子がアンド回路
37の出力端子、オア回路39の出力端子、アンド回路
49の出力端子、ローテート量指示線L8に接続されて
おり、出力端子から検出信号SB1を出力する。この検
出信号SB1は、8ビットの入力情報のキャリー付ロー
テートにおいて、9ビット〜17ビットのO−テートm
がローテート量指示線L1〜L16から与え°られた場
合に、″1”レベルとなる。
アンド回路55は、それぞれの入力端子がオア回路41
の出力端子、アンド回路51の出力端子、ローテート但
指示線116に接続されており、出力端子から検出信号
SWIを出力する。この検出信号SW1は、16ビット
の入力情報のキャリー付ローテートにおいて、17ビッ
ト〜31ビットのローテート量がローテート母指示線し
1〜L16から与えられた場合に、1”レベルとなる。
アンド回路57は、それぞれの入力端子がオア回路43
の出力端子、アンド回路49の出力端子、インバータ回
路59の出力端子、ローテート母指示線L16に接続さ
れており、出力端子から検出信号SB2を出力する。こ
の検出信号SB2は、8ビットの入力情報のキャリー付
ローテートにおいて、18ビット〜26ビットのローテ
ート聞がローテート量指示線L1〜L16から与えられ
た場合に、′1”レベルとなる。
アンド回路61は、それぞれ°の入力端子がオア回路4
7の出力端子、アンド回路・49の出力端子、ローテー
ト量指示aL8.116に接続され、出力端子から検出
信号883を出力する。また、この出力端子はインバー
タ回路59の入力端子に接続されている。この検出信号
883は、8ビットの入力情報のキャリー付ローテート
において、27ビット〜31ビットのローテート量がロ
ーテート量指示線し1〜L16から与えられた場合に、
゛1′9レベルとなる。
減算部33は、5つの減算器とオア回路とを有している
。それぞれの減算器63.65.67゜69.71は、
減算信号が減算器63.65.67.69.71に与え
られると、ローテート争指示線し1〜L16から一方の
入力端子Aに与えられるローテート量から、ボロー入力
端子Cinに与えられるボローを含み、他方の入力端子
Bに与えられる検出信号881.8B2.583.SW
Iに応じた減算値を減算する。そして、その結果を出力
端子Sから出力すとるともに、ボロー出力端子Coから
減算時に生じるボローを出力するものである。また減算
信号が与えられない場合には、それぞれの減算器63.
65.67.69.、.71は、入力端子Aに与えられ
たローテート量をそのまま出力端子Sから出力する。
減i1!63は、その入力端子Aがローテート母指示線
L1に接続され、入力端子Bが検出信号S81、S83
.SWIが入力端子に与えられたオア回路73の出力端
子に1&続されており、出力端子Sからシフト信号S1
が出力される。
減算器65は、その入力端子Aがローテート俵指示線L
2に接続され、入力端子Bが検出信号S82.383が
入力端子に与えられたオア回路75の出力端子に接続さ
れており、出力端子Sからシフト信号S2が出力される
減算器67は、その入力端子Aがローテート吊指示線L
4に接続され、入力端子Bがグランドに接続されており
、出力端子Sからシフト信号S4が出力される。
減算器69は、その入力端子Aがローテート量指示線L
8に接続され、入力端子Bが検出信号S81、Se2が
入力端子に与えられたオア回路77の出力端子に接続さ
れており、出力端子Sからシフト信号$8が出力される
減算器71は、その入力端子Aがローテート聞指示線L
16に接続され、入力端子Bが検出信号8B2.SB3
.8WIが入力端子に与えられたオア回路79の出力端
子に接続されており、出力端子Sからシフト信号816
が出力される。
以上説明したように、この発明の一実施例は構成されて
おり、次にこの実施例の作用を第2図を用いて説明する
32ビットの入力情報を処理するバレルシフタにおいて
、8ビットの入力情報のキャリー付ローテートを行なう
場合には、入力情報が8ビットであるのでモジュロは9
となる。したがって、実際にバレルシフタに与えられる
シフト量は、(ローテート量/9)の際会で規定される
ことになる。
この際会はローテート1からローテート量に応じた減算
値を減算することにより算出しており、ローテートmが
9ビット〜17ビットにおける減算値は9.ローテート
量が18ビット〜26ビットにおける減算値は18.ロ
ーテート層が27ビット〜31ビットにおける減算値は
27となる。
8ビットの入力情報のキャリー付ローテートにおいては
、バイト信号及びキャリー付ローテート信号が′″1″
1″レベル、ローテート量指示線L1〜L16から減算
値算出部31にOピットル8ビットのローテート量が与
えられると、検出信号SB1.SB2.883.SW3
はすべて“0゛ルベルとなる。これにより、減算部33
では与えられたローテート量からの減算は行なわれず、
ローテート量指示線L1〜L16に与えられたローテー
トmは、そのままシフト信号81〜S16として出力さ
れる。
ローテート旦指示線し1〜L16から9ビット〜17ビ
ットのローテート量が与えられると、検出信号SB1が
ll I ITレベルとなり、この検出信号SBIが減
算器63.69の入力端子Bに供給される。そして、減
算部33において、与えられた9ビット〜17ビットの
ローテートのから減算119(01001)が減算され
て、その結果(0〜8)がシフト信号81〜316とし
て実際にバレルシフタに与えられるシフト量となる。
ローテート箇指示線し1〜し16から18ビット〜26
ビットのローテート量が与えられると、検出信号8B2
が′1”レベルとなり、この検出信号8B2が減算器6
5.71の入力端子Bに供給される。そして、減算部3
3において、与えられた18ビット〜26ビットのロー
テート量がら減算値18 (10010)が減算されて
1、その結果(O〜8)がシフト信号$1〜S16とし
てバレルシフタに与えられるシフト量となる。
ローテート沿指示線L1〜L16がら27ビット〜31
ビットのローテート量が与えられると、検出信号SB3
が゛1″レベルとなり、この検出信号SB3が減算器6
3,65,69.71の入:h端子Bに供給される。そ
して、減算部33において、与えられた27ビット〜3
1ビットのローテート量から減算値27(11011)
が減算されて、その結果(O〜8)がシフト信号として
バレルシフタに与えられるシフト量となる。
次に、16ビットの入力情報のキャリー付ローテートを
行なう場合には、入力情報は16ビットであるので、モ
ジュロは17となる。したがって、実際にバレルシフタ
に与えられるシフト】は、(ローテートffi/17)
の際会で規定されることになる。この際会は、ローテー
ト量からローテート量に応じた減算値を減算することに
より算出しており、ローテート量が17ビット〜31ビ
ットにおける減算値は17となる。
16ビットの入力情報のキャリー付ローテートにおいて
は、ワード信号及びキャリー付ローテート信号CRが“
1″レベルとなり、ローテート吊指示線L1〜L16か
らOピットル16ビットのローテート量が与えられると
、検出信号SBI。
SB2.8B3.SWlはすべて゛O″レベルとなる。
これにより、減算部33では与えられたローテート量か
らの減算は行なわれず、ローテート量指示線L1〜L1
6に与えられたローテート量は、そのままシフト信号8
1〜816として出力される。
ローテート量指示線L1〜L16から17ビットル31
ビットのローテート量が与えられた場合には、検出信号
SW1が゛1″レベルとなり、この検出信号SW1が減
算器63.71の入力端子Bに供給される。そして、減
算部33において、与えられた17ビット〜31ビット
のローテート看から減算値17(10001)が減算さ
れてその結果(0〜14)がシフト信号81〜S16と
して実際にバレルシフタに与えられるシフト量となる。
入力情報が32ビットの場合には、バイト信号及びワー
ド信号がともに“OIIレベルとなるため、ローテート
量にかかわらず検出信号8B1.SB2、SB3.3W
Iはすべて“O”レベルとなり、さらに、減算信号も減
算部33に供給されない。
このため、ローテート量指示線L1〜116に与えられ
たローテート量は、そのままシフト信号81〜816と
してバレルシフタに供給される。
また、入力情報が8ビット、16ビット、32ビットで
キャリーを含まないローテート動作にあっても、キャリ
ー付ローテート信号が゛0″レベルどなることにより、
検出信号及び減算信号とも、すべてOとなり、ローテー
ト量指示線し1〜L16に与えられたローテート量は、
そのままシフト信号81〜816としてバレルシフタに
供給される。
このように、この実施例にあっては、32ビットの入力
情報を処理するバレルシフタによる8ビット及び16ビ
ットの入力情報のキャリー付ローテート動作において、
入力情報のビット長以上のローテート量のローテート動
作に対して、入力情報のビット長及びローテート量に応
じてバレルシフタに与えられるシフト量が、ソフトウェ
ア処理によらずハードウェアにより算出されるために、
シフト量が高速に締出されることになる。
[発明の効果] 以上説明したように、この発明によれば、キャリーを含
んだローテート動作におけるローテート量が入力情報の
ビット長以上の場合に、入力情報のビット長及びローテ
ート量に応じてシフト量をハードウェアにより算出する
ようにしたので、シフト量が高速に算出することができ
るようになり、ローテート動作を高速に行なうバレルシ
フタを提供することができる。
【図面の簡単な説明】
第1図は発明の一実施例に係るバレルシフタのシフト量
算出部の構成図、第2図は第1図の算出結果を説明する
ための説明図、第3図はバレルシフタのシフト部の構成
図、第4図はバレルシフタのローテート部の構成図、第
5図はローテート動作の結果を説明するための説明図、
第6図は入力情報及びシフト量とシフト信号との関係を
説明するための図、第7図はソフトウェア処理でシフド
ロを算出する場合のフローチャートである。 (図の主要な部分を表わす符号の説明)31・・・減口
値算出部 33・・・減算部 箪 1 刃 シフト量 工 バレルシフタ 棺 7図

Claims (3)

    【特許請求の範囲】
  1. (1)Nビットの入力情報をローテート量に応じて算出
    されたシフト量に基づいてシフトさせ、キャリーを含む
    ローテート動作にあつては、シフトされた入力情報の最
    下位ビットの後にキャリーを挿入して2Nビットの出力
    を供給するシフト手段と、キャリーを含んだローテート
    動作におけるローテート量が入力情報のビット長以上の
    場合に、入力情報のビット長及びローテート量に応じて
    {ローテート量−(N+1)×i}(i=0、1、2、
    ・・・)の演算を行ない前記シフト量を算出するシフト
    量算出手段と、前記シフト手段から供給される下位側N
    ビットの出力と、ローテート動作およびキャリー付ロー
    テート動作に応じて前記下位側Nビットの出力にそれぞ
    れ対応する前記シフト手段の上位側ビットの出力との論
    理和を算出するローテート手段とを有することを特徴と
    するバレルシフタ。
  2. (2)前記シフト手段は、32ビットの入力情報を1ビ
    ットのシフト動作を行なうセレクタと2ビットのシフト
    動作を行なうセレクタと4ビットのシフト動作を行なう
    セレクタと8ビットのシフト動作行なうセレクタと16
    ビットのシフト動作を行なうセレクタとにより、0ビッ
    ト〜31ビットの範囲でシフト動作を行なうことを特徴
    とする特許請求の範囲第1項に記載のバレルシフタ。
  3. (3)前記シフト量算出手段はキャリー付ローテートに
    おいて、ローテート量が(入力情報のビット数+1)ビ
    ット以上の場合に入力情報のビット長に応じた減算値を
    口出する減算値算出部と、この減算値算出部により算出
    された減算値をローテート量から減算する減算部とから
    構成されていることを特徴とする特許請求の範囲第1項
    記載のバレルシフタ。
JP61226220A 1986-09-26 1986-09-26 バレルシフタ Granted JPS6382513A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP61226220A JPS6382513A (ja) 1986-09-26 1986-09-26 バレルシフタ
US07/101,640 US4839839A (en) 1986-09-26 1987-09-28 Barrel shifter including rotate operation

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP61226220A JPS6382513A (ja) 1986-09-26 1986-09-26 バレルシフタ

Publications (2)

Publication Number Publication Date
JPS6382513A true JPS6382513A (ja) 1988-04-13
JPH0379734B2 JPH0379734B2 (ja) 1991-12-19

Family

ID=16841775

Family Applications (1)

Application Number Title Priority Date Filing Date
JP61226220A Granted JPS6382513A (ja) 1986-09-26 1986-09-26 バレルシフタ

Country Status (2)

Country Link
US (1) US4839839A (ja)
JP (1) JPS6382513A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001143722A (ja) * 1999-08-27 2001-05-25 Nisshinbo Ind Inc 燃料電池セパレータの製造装置及び製造方法
US7424504B2 (en) 1997-04-18 2008-09-09 Certicom Corp. Arithmetic processor for accomodating different field sizes

Families Citing this family (34)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5327541A (en) * 1989-10-13 1994-07-05 Texas Instruments Inc. Global rotation of data in synchronous vector processor
JPH087668B2 (ja) * 1990-02-07 1996-01-29 株式会社東芝 ダイナミックバレルシフタ
JPH0421025A (ja) * 1990-05-15 1992-01-24 Toshiba Corp 左右シフタ
JP2556612B2 (ja) * 1990-08-29 1996-11-20 日本電気アイシーマイコンシステム株式会社 バレルシフタ回路
JPH05134848A (ja) * 1991-03-06 1993-06-01 Fujitsu Ltd 中央処理装置のデータシフト回路
US5282152A (en) * 1992-03-31 1994-01-25 Vlsi Technology, Inc. Integer-based 18-bit RGB to 5-bit gray scale conversion device and method therefor
US5379240A (en) * 1993-03-08 1995-01-03 Cyrix Corporation Shifter/rotator with preconditioned data
JPH0778068A (ja) * 1993-06-30 1995-03-20 Mitsubishi Denki Eng Kk 半導体集積回路
US5745744A (en) * 1995-10-12 1998-04-28 International Business Machines Corporation High speed mask generation using selection logic
US5729482A (en) * 1995-10-31 1998-03-17 Lsi Logic Corporation Microprocessor shifter using rotation and masking operations
US5844825A (en) * 1996-09-03 1998-12-01 Wang; Song-Tine Bidirectional shifter circuit
US5822231A (en) * 1996-10-31 1998-10-13 Samsung Electronics Co., Ltd. Ternary based shifter that supports multiple data types for shift functions
US5948050A (en) * 1996-12-19 1999-09-07 Lucent Technologies Inc. Fast conversion two's complement encoded shift value for a barrel shifter
US5991786A (en) * 1997-12-19 1999-11-23 Advanced Micro Devices, Inc. Circuit and method for shifting or rotating operands of multiple size
US6006244A (en) * 1997-12-19 1999-12-21 Advanced Micro Devices, Inc. Circuit for shifting or rotating operands of multiple size
US6035310A (en) * 1997-12-19 2000-03-07 Advanced Micro Devices, Inc. Method and circuit for performing a shift arithmetic right operation
US6122651A (en) * 1998-04-08 2000-09-19 Advanced Micro Devices, Inc. Method and apparatus for performing overshifted rotate through carry instructions by shifting in opposite directions
US6308189B1 (en) 1998-06-03 2001-10-23 International Business Machines Corporation Apparatus for partial logical shifts and method therefor
US6675182B1 (en) * 2000-08-25 2004-01-06 International Business Machines Corporation Method and apparatus for performing rotate operations using cascaded multiplexers
TWI273388B (en) * 2004-06-08 2007-02-11 Mediatek Inc Method and apparatus for processing multiple decomposed data for calculating key equation polynomials in decoding error correction code
FR2914447B1 (fr) * 2007-03-28 2009-06-26 St Microelectronics Sa Dispositif electronique de decalage de donnees en particulier pour du codage/decodage avec un code ldpc
US8041755B2 (en) * 2007-06-08 2011-10-18 Apple Inc. Fast static rotator/shifter with non two's complemented decode and fast mask generation
US20090182988A1 (en) * 2008-01-11 2009-07-16 International Business Machines Corporation Compare Relative Long Facility and Instructions Therefore
US9280480B2 (en) 2008-01-11 2016-03-08 International Business Machines Corporation Extract target cache attribute facility and instruction therefor
US7734900B2 (en) 2008-01-11 2010-06-08 International Business Machines Corporation Computer configuration virtual topology discovery and instruction therefore
US7870339B2 (en) * 2008-01-11 2011-01-11 International Business Machines Corporation Extract cache attribute facility and instruction therefore
US20090182985A1 (en) * 2008-01-11 2009-07-16 International Business Machines Corporation Move Facility and Instructions Therefore
US7895419B2 (en) 2008-01-11 2011-02-22 International Business Machines Corporation Rotate then operate on selected bits facility and instructions therefore
US20090182984A1 (en) * 2008-01-11 2009-07-16 International Business Machines Corporation Execute Relative Long Facility and Instructions Therefore
US7739434B2 (en) 2008-01-11 2010-06-15 International Business Machines Corporation Performing a configuration virtual topology change and instruction therefore
US20090182992A1 (en) * 2008-01-11 2009-07-16 International Business Machines Corporation Load Relative and Store Relative Facility and Instructions Therefore
US8972469B2 (en) 2011-06-30 2015-03-03 Apple Inc. Multi-mode combined rotator
US9959247B1 (en) 2017-02-17 2018-05-01 Google Llc Permuting in a matrix-vector processor
US11106438B2 (en) * 2020-03-27 2021-08-31 Intel Corporation Integration of automated complier dataflow optimizations

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3961750A (en) * 1974-04-05 1976-06-08 Signetics Corporation Expandable parallel binary shifter/rotator
JPS5523501A (en) * 1978-06-29 1980-02-20 Fujitsu Ltd Shift operation unit
JPS5652441A (en) * 1979-10-05 1981-05-11 Pioneer Electronic Corp Programmable bit shift circuit
JPS5750049A (en) * 1980-09-09 1982-03-24 Toshiba Corp Shifting circuit
US4396994A (en) * 1980-12-31 1983-08-02 Bell Telephone Laboratories, Incorporated Data shifting and rotating apparatus
US4583197A (en) * 1983-06-30 1986-04-15 International Business Machines Corporation Multi-stage pass transistor shifter/rotator

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7424504B2 (en) 1997-04-18 2008-09-09 Certicom Corp. Arithmetic processor for accomodating different field sizes
JP2001143722A (ja) * 1999-08-27 2001-05-25 Nisshinbo Ind Inc 燃料電池セパレータの製造装置及び製造方法

Also Published As

Publication number Publication date
JPH0379734B2 (ja) 1991-12-19
US4839839A (en) 1989-06-13

Similar Documents

Publication Publication Date Title
JPS6382513A (ja) バレルシフタ
US4727508A (en) Circuit for adding and/or subtracting numbers in logarithmic representation
JP2689414B2 (ja) 浮動小数点表現変換器
JPH0391832A (ja) 加算回路
JPH0317132B2 (ja)
US4977534A (en) Operation circuit based on floating-point representation with selective bypass for increasing processing speed
JPH0374419B2 (ja)
JP3213982B2 (ja) 除算回路
JPH01207823A (ja) 浮動小数点数一固定小数点数変換装置
JP2605848B2 (ja) 非回復型除算器
JP3187402B2 (ja) 浮動小数点データ加減算回路
JP2674507B2 (ja) ビット誤り数算出回路
JP2575856B2 (ja) 演算回路
JP2996024B2 (ja) 乗算回路
JPH0553768A (ja) 除算器
JP3109080B2 (ja) 語長制限回路
JPH0778724B2 (ja) 除算器
JP2821289B2 (ja) シフト量算出回路および方法
Mitchell et al. How computers process data
JP3528334B2 (ja) データセレクト回路
KR20030078541A (ko) Dsp에서 가드 비트 처리가 간단한 연산 장치 및 상기연산 장치에서 가드 비트 처리 방법
JPS63197220A (ja) 正規化回路
JPH02267625A (ja) 浮動小数点演算を用いた整数部取出し方式
JPS62245433A (ja) 浮動小数点演算回路
JPH06274319A (ja) 乱数発生装置