JP2856791B2 - バレルシフタおよび浮動小数点演算器 - Google Patents

バレルシフタおよび浮動小数点演算器

Info

Publication number
JP2856791B2
JP2856791B2 JP30935689A JP30935689A JP2856791B2 JP 2856791 B2 JP2856791 B2 JP 2856791B2 JP 30935689 A JP30935689 A JP 30935689A JP 30935689 A JP30935689 A JP 30935689A JP 2856791 B2 JP2856791 B2 JP 2856791B2
Authority
JP
Japan
Prior art keywords
barrel shifter
shift
bit
selector
shift amount
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.)
Expired - Fee Related
Application number
JP30935689A
Other languages
English (en)
Other versions
JPH03171226A (ja
Inventor
親宏 堀
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 JP30935689A priority Critical patent/JP2856791B2/ja
Publication of JPH03171226A publication Critical patent/JPH03171226A/ja
Application granted granted Critical
Publication of JP2856791B2 publication Critical patent/JP2856791B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Description

【発明の詳細な説明】 [発明の目的] (産業上の利用分野) 本発明は、指定された量だけ入力データをシフトする
バレルシフタおよびこれを用いた浮動小数点演算器の構
成に関し、特に桁合わせ回路に有効なバレルシフタおよ
び浮動小数点演算器に関する。
(従来の技術) バレルシフタは一般にセレクタを組み合わせて構成さ
れている。このタイプのバレルシフタは入力データを予
めnビットシフトさせたものとシフトさせていないもの
とを準備し、セレクタを動作させてこれらを選択するこ
とにより必要とする形式のデータを得る。
第6図は従来のバレルシフタの構成図である。同図に
おいて、61,62および63はシフタであり各々1ビット、
2ビットおよび4ビットのシフトを行なう領域である。
これらは互いに直列に接続されている。64,65および66
はセレクタであり各々シフタ61,62,63を介して直列に接
続されている。各セレクタ64,65および66はシフト量指
定信号67により制御され動作する。
この従来のバレルシフタは、前段のセレクタを制御す
る信号(シフト量指定信号67の下位ビット部)が先に決
まる場合には、シフト量指定信号67全体が確定する以前
に、例えば下位ビット部に対応したシフタ61,62等を動
作させることが可能である。一般に、加減算器の演算結
果は、下位ビットから決まってくるものが多い。第7図
は、加減算器71とバレルシフタ72とを並行して動作させ
ることができる演算器の概略の構成図である。同図にお
いて、バレルシフタ72は第6図に示したバレルシフタか
ら構成されている。加減算器71の出力をバレルシフタ72
のシフト量指定信号67として下位ビット部から順に出力
すれば、加減算器とバレルシフタとを並行して動作させ
ることができる。
ところで、加減算器が複数個の加減算器から構成され
これらの出力データを選択してバレルシフタに入力する
構成の演算器の場合、演算器とバレルシフタとを並行し
て動作することが一般に困難になる。
具体的例を、浮動小数点加減算器の桁合わせ回路の部
分を用いて説明する。一般に浮動小数点は符号、指数、
仮数によって表されている。たとえばIEEEのbitフォー
マットの正規化数は として、数値を表す。しかしこれらの数値間で加減算等
の演算を行うには、先ず桁を合わせなければならない。
1.0×2+1.0×22は、0.1×22+1.0×22として計算す
る。即ち、指数部は値の大きいほうに合わせ、仮数部は
それに合わせて下位方向にシフトする。
第8図は浮動小数点加減算器の桁合わせ回路のブロッ
ク図である。第9図は第8図における減算器81の構成図
である。この桁合わせ回路は、二つの浮動小数点データ
A,Bの桁合わせを行うものである。図中81は減算器であ
り、A及びBの指数部の減算を行い、符号と差の絶対値
を出力する。83はバレルシフタ、82はセレクタであり減
算器81の符号と差とを用いて入力A若しくはBの指数部
の小さい方の仮数部を指数部の差の分だけシフトする。
第8図では減算器81の差の出力が直接バレルシフタ83に
接続されている。この減算器81は差の絶対値を出力する
ためその内部は、第9図若しくは第10図に示される構成
を有する。第9図の構成ではAの指数部からBの指数部
を減ずる動作を減算器91で行ない、Bの指数部からAの
指数部を減ずる動作を減算器92で行ない、かつこれらの
動作を並行して行い、セレクタ93を介して正の方を出力
する様になっている。第10図の構成では通常の減算器10
1の動作と減算の結果が負であった場合の正への変換を
行なう減算器102の動作、即ち減算をしながら更に1を
減じる動作および反転回路104によりビット反転を行う
動作とを並行して行っておき、減算の結果の符号を見て
セレクタ103が選択する。差の絶対値を出力する減算器
は他に何通りか存在するが、高速なものは第9図および
第10図に示した様に並列に並べた演算器の結果をいずれ
の演算結果の符号によりセレクタを介して選択する形式
である。
このように、浮動小数点加減算器の桁合わせ回路部内
では、複数個の減算器とバレルシフタ間にセレクタが入
り、かつ該セレクタ103への選択信号は、減算器101およ
び102の動作の完了後セレクタへ送られるため加減算器
とバレルシフタとを並行して動作させることが出来な
い。これは高速動作化の妨げとなる。この問題を避ける
ために、バレルシフタを加減算器の数だけ設け、そこで
それぞれの加減算器の演算結果のシフトを行っておき、
シフト後の値を選択する手法もある。第8図の例では、
浮動小数点加減算器の桁合わせ回路にバレルシフタを2
つ設け、指数部の減算を並行して行うと共に、仮数部の
シフトも並行して行なう。しかしながら、この方法では
高速化は得られるが、当然バレルシフタを併設するだけ
ハードウエアコストが増加するという問題があった。
(発明が解決しようとする課題) 上記した従来技術においては、複数の加減算器の出力
によりバレルシフタを動作させる場合、加減算器とバレ
ルシフタとの並行動作をあきらめるか、バレルシフタを
並列化して高速性を得る代わりに、ハードウエアの増加
を許すかどちらかであった。
しかしながら、最近の大規模同期システムにおいて
は、その中間が要求されることが多くなっている。大規
模同期システムは、複数の要素がそれぞれクロックに同
期して動作しているので、各要素は指定された時間内に
処理を行うことが要求される。ある要素が所定の時間内
に処理を行うことが出来ない場合、それはシステム全体
が所定の時間内に処理を行うことが出来ない事と等価で
あるので、各要素に対する制約は厳しい。逆に、ある要
素を必要以上に高速化することは無意味である。一要素
のみ高速化しても、システム全体としては高速化するこ
とにはならない。従って、高速化の為に増加したハード
ウエアも無駄になる。
そこで本発明は上記した問題に鑑みてなされたもの
で、その目的とするところは、ハードウエア量の増加を
抑えかつ高速に動作することのできるバレルシフタおよ
びそれを用いた浮動小数点演算器を提供することであ
る。
[発明の構成] (課題を解決するための手段) 本発明のバレルシフタは、指定されたシフト量の下位
ビット部分をシフトするための並列化された複数の下位
シフト部を有する下位シフト部と、前記複数の下位シフ
トから出力された出力データを選択しこれを出力する選
択手段と、前記選択手段から出力されたデータを入力
し、該シフト量の上位ビット部をシフトする上位シフト
部とを有することを特徴としている。
また、本発明の浮動小数点演算器は上記したバレルシ
フタを具備していることを特徴としている。
(作用) 本発明のバレルシフタは加減算器に対応した並列化さ
れた複数の下記シフト部を有し、加減算器の出力データ
により制御され動作する。従って、加減算器における演
算において下位ビット部から演算結果が得られる場合、
その演算結果をバレルシフタの下位シフト部に随時入力
することにより、加減算器とバレルシフタとを並行して
動作させることができる。また下位シフト部を並列化す
るので、ハードウエアの増加を小さく抑えることができ
る。
(実施例) 以下、本発明の実施例を図面に参照して説明する。第
1図は、本発明の一実施例であるバレルシフタの概略構
成図である。同図において、11および12は並列動作する
下位シフト部としての下位ビットシフタである。これら
の下位ビットシフタ11および12は各々に対応した加減算
器(図示せず)から送られてくるシフト量下位データ13
および14によって制御され動作する。15は選択手段であ
るセレクタであり、セレクト信号16により選択され下位
ビットシフタ11および12のいずれかの出力を選択する。
17は上位シフト部としての上位ビットシフタでありセレ
クタ15により選択されたデータの上位ビット部分のシフ
トを行なう。シフト量はシフト量上位データ18により制
御される。
第6図に示した従来のバレルシフタにおいては、2進
級の各桁のシフト量に対応したセレクタを直列に接続す
ることにより任意のビットシフトを可能としている。こ
のシフタは予め2nビットシフトしておいた値とシフトし
ていない値を準備しておき2nビットシフトが指定されて
いるか否かでセレクタを制御する。通常シフト量は2進
級で指定されるので、シフト量を指示する信号でセレク
タを制御する事により任意のビットのシフトができる。
この形のバレルシフタは、予め2nビットシフトしておい
た値とシフトしていない値を準備しておくのであるが、
LSI上で実現しようとする場合、nが大きい程、必要と
する面積が大きくなる。即ち、第6図に示したように、
2nビットシフトした値を準備する配線の干渉が複雑とな
るため、nが大きい程、配線の領域が増加する(例え
ば、4ビットシフト領域における配線68)。干渉する配
線はnが1増えることによりほぼ2倍になり、配線の領
域はシフト量が多くなるほど、急激に増加する。また、
シフト量が多くなるほど配線長も長くなるのでセレクタ
に必要とされるに駆動能力も大きくなり、面積の増加を
導く。即ち、シフト量の多い部分ほどハードウエアコス
トが急激に高くなる。
これに対し本実施例のバレルシフタはバレルシフタの
下位部分のみ並列化している。即ち、ハードウエアコス
トの低い部分を並列化しているので、ハードウエアを増
加は少なくてすむ。
一方、バレルシフタの下位部分を並列化したので、下
位部分からシフト量の決まっている様な加減算の結果を
シフト量とする場合、演算とシフト動作とを同時に始め
ることができる。従来技術の問題点に示したような複数
の加減算器からの出力データを選択して入力する場合で
も、加減算器の数だけバレルシフタの下位部位を並列化
する事により、各加減算器の結果が出始めた段階でシフ
トを始める事ができる。即ち、その分高速化することが
できる。この様に、ハードウエアコストの低い部分を並
列化しかつ高速化することができるのでトータルしてコ
ストパーフォーマンスの高いシステムを得ることができ
る。
第2図は、第1図の実施例に示したバレルシフタを浮
動小数点演算器の桁合わせ回路に応用した構成図であ
る。同図において、21および22は入力データAおよびB
の指数部を減算する減算器であり、その結果はセレクタ
15および23の動作を制御する。
本実施例の浮動小数点の桁合わせ回路では入力データ
AおよびBの指数部どうしの減算を行ない、小さい指数
部を持つ入力データのほうの仮数部を指数の差の分だけ
シフトする。すなわち、『A指数−B指数』と『B指数
−A指数』とを並列に計算しておく方式に本発明を適用
したものである。『A指数−B指数』や『B指数−A指
数』の演算結果の下位部分は符号より先に決まることが
多いので、バレルシフタ24(第1図の実施例に示したバ
レルシフタ)を具備したことにより減算器21および22の
動作と並行してシフトを始めることができ、ハードウエ
アの増加を抑えかつ高速動作を得ることができる。
本発明は更にもう一つの利点を有している。それは、
入力データのビット長より、指定できるシフト量が大き
いオーバーシフトの場合である。例えば、浮動小数点の
桁合わせ回路では、指数部の差の分だけ仮数部をシフト
するが、IEEEの32ビット浮動小数点フォーマットでは、
仮数部24ビットに対し指数部は8ビットであって指数部
の差の方が大きいことがあるうる。即ち、8ビットの2
進級は0〜255まで表示し得るが、仮数部は24ビットし
かない。つまり、24ビットまでのシフト数は5ビット有
れば表示することが可能である。このような場合、指定
可能な全シフト量に対応するバレルシフタを準備するの
は無駄が多い。例えばIEEE32ビット浮動小数点フォーマ
ットの桁合わせ回路の場合255ビットまでシフト出来る
シフタを準備するのは無駄が多い。その代わりに、明ら
かに全ビットシフトアウトしてしまうようなシフト信号
が立った場合を検知して、別回路で対策をとると効率が
良くなる。IEEE32ビット浮動小数点フォーマットの場
合、シフト量を指定する信号が5ビットのバレルシフタ
を準備しておくとともに、別回路の検知手段を設け、指
数部の差の結果の信号の6〜8ビット目のいずれかに1
が立つようであればバレルシフタの出力を0とする。
第3図は、上記したような入力データ(AおよびB)
のビット長より指定されたシフト量が大きい場合、検知
手段によりこれを検知し固定データを出力する機能を具
備した、本発明の第三実施例である浮動小数点桁合わせ
回路の構成図である。同図において、32は上記した別回
路の機能を有する検知手段である。この検知手段32は、
セレクタ31の出力データがオーバシフトを示した場合、
セレクタ33に対し出力データを例えばオール‘0'として
出力するように指示する。それにより、上位ビットシフ
タ34はセレクタ33からオール‘0'が入力された場合、オ
ール‘0'を出力データとして出力する。
次に、このセレクタ33の構成例について説明する。第
11図に示す論理回路は、セレクタ33として作用する回路
である。即ち、SA=1,SB=0の時、出力はAとなり、SA
=0,SB=1の時、出力はBとなる。この回路に、SA=0,
SB=0の信号を入力すると、出力は0となる。従って、
シフト量から、明らかにシフトアウトしてしまう様な場
合は、SA=SB=0とすることにより、セレクタ33の出力
は0となる。したがって指示するシフト量が出力のビッ
ト幅より明らかに大きくなるオーバシフトの場合は、セ
レクタ33から固定値(ここではオール‘0')を出力させ
る。このことによりシフトアウトを実施したことと等価
な事を少ないハードウエアにより実現できる。
第4図は、本発明の第四実施例を示す。本実施例は
『A指数−B指数』を計算する代わりに『−(B指数−
A指数)』を計算する方式に本発明を適用した場合であ
る。つまり、本実施例では、第10図に示した従来の桁合
わせ回路に本発明のバレルシフタ41を適用した例であ
る。本実施例では、減算の結果が負であった場合、正へ
の変換を行なう動作とビット反転を行なう動作とを減算
器43および反転回路44において並行して行ない、減算の
結果を符号を見てセレクタ42が選択する。しかし、下位
ビット部の減算結果は、早く決定される場合が多いの
で、減算器45および43に対応した下位ビットシフタ46お
よび47を減算器45および43の動作と並行して実行させる
ことができる。
第5図は、本発明の第五実施例を示す。本実施例は浮
動小数点演算器の出力を正規化する正規化回路に本発明
を適用した例である。浮動小数点演算器の正規化回路で
は、プライオリティーエンコーダ51で仮数部に1の立つ
最上位のビット位置を検出し、それを所定位置に持って
くる分だけ仮数部をシフトすると共に、シフトした量だ
け指数部を補正する。この場合、仮数部シフタ53はプラ
イオリティーエンコーダ51の出力分シフトする。しかし
IEEE浮動小数点フォーマットのように『指数部は正もし
くは0とし、仮数部シフトはその範囲で可能な最大値と
する』場合、指数部を補正してみた結果が負となってし
まう時は指数部を0とすると同時に仮数部は指数部の値
だけ仮数部シフタ52によりシフトする。すなわち、仮数
部のシフト量はプライオリティーエンコーダ51の出力か
あるいは指数部の値のいずれかであるが、その判定は遅
れる。本実施例は指数部補正演算中にシフトを始めてお
くことにより高速化でき、同時にハードウエアの増加は
少ないというメリットを持つ。
尚、IEEEフォーマットでは指数部が0である場合とそ
うでない場合の表現方式に差があるため、本実施例に示
した構成要素意外にも回路が必要となるが、本実施例の
説明においては本質でないので割愛した。
また、上記した各実施例においては、下記ビットシフ
タが2個並列に設けられた場合を示したが、本発明はこ
れに限定されるものではなく、下位ビットシフタが2個
により多い複数個並設された場合でも同様の効果を有す
る。
さらに、下位ビット数および上記ビット数は用途に応
じて適当なビット数に設定することができる。
[発明の効果] 本発明のバレルシフタは、下位シフト部を複数の下位
シフト部に分け、各々の下位シフト部が並行動作を行な
う構成を有している。従って、高速動作を行なうことが
でき、かつハードウエアの増加を比較的小さく抑えるこ
とができる。また、本発明のバレルシフタを用いた浮動
小数点演算器は、減算器とバレルシフタとを並行して動
作することができるので、高速に動作させることがで
き、かつ、ハードウエアの増加を低く抑えることができ
る。
【図面の簡単な説明】
第1図は、本発明の第一実施例であるバレルシフタの構
成図、 第2図は、第1図のバレルシフタを具備した本発明の第
二実施例である浮動小数点演算器の桁合わせ回路の構成
図、 第3図は、第1図のバレルシフタを具備した本発明の第
三実施例である浮動小数点演算器の桁合わせ回路の構成
図、 第4図は、第1図のバレルシフタを具備した本発明の第
四実施例である浮動小数点演算器の桁合わせ回路の構成
図、 第5図は、第1図のバレルシフタを具備した本発明の第
五実施例である浮動小数点演算器の正規化回路の構成
図、 第6図は、従来のバレルシフタの構成図、 第7図は、従来の浮動少数点演算器の桁合わせ回路の構
成図、 第8図は、複数の減算器を有する従来の浮動小数点演算
器の構成図であり、第9図は第8図における減算器の構
成図、 第10図は、反転回路を具備した減算器の構成図、 第11図は論理回路の構成図である。 11,12,46,47……下位ビットシフト部 15,33……セレクタ(選択手段) 17,34……上位ビットシフト部 32……検知手段

Claims (3)

    (57)【特許請求の範囲】
  1. 【請求項1】指定されたシフト量の下位ビット分をシフ
    トするための並列化された複数の下位シフト部と、 前記複数の下位シフト部から出力された出力データを選
    択しこれを出力する選択手段と、 前記選択手段から出力されたデータを入力し、該シフト
    量の上位ビット部をシフトする上位シフト部と を具備することを特徴とするバレルシフタ。
  2. 【請求項2】前記選択手段は、加えて固定値を出力する
    機能を具備していることを特徴とする請求項1記載のバ
    レルシフタ。
  3. 【請求項3】前記複数の下位シフト部と、前記上位シフ
    ト部とのシフト量は前記入力データのビット数を越えて
    シフト可能であり、 加えて、前記シフト量が前記入力データのビット数を越
    える場合であるオーバシフトを検出する検出手段と、 前記検出手段により前記オーバシフトが検出された場
    合、前記選択手段は前記固定値を出力することを特徴と
    する請求項2記載のバレルシフタ。
JP30935689A 1989-11-30 1989-11-30 バレルシフタおよび浮動小数点演算器 Expired - Fee Related JP2856791B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP30935689A JP2856791B2 (ja) 1989-11-30 1989-11-30 バレルシフタおよび浮動小数点演算器

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP30935689A JP2856791B2 (ja) 1989-11-30 1989-11-30 バレルシフタおよび浮動小数点演算器

Publications (2)

Publication Number Publication Date
JPH03171226A JPH03171226A (ja) 1991-07-24
JP2856791B2 true JP2856791B2 (ja) 1999-02-10

Family

ID=17992017

Family Applications (1)

Application Number Title Priority Date Filing Date
JP30935689A Expired - Fee Related JP2856791B2 (ja) 1989-11-30 1989-11-30 バレルシフタおよび浮動小数点演算器

Country Status (1)

Country Link
JP (1) JP2856791B2 (ja)

Also Published As

Publication number Publication date
JPH03171226A (ja) 1991-07-24

Similar Documents

Publication Publication Date Title
US5317526A (en) Format conversion method of floating point number and device employing the same
US4617641A (en) Operation unit for floating point data having a variable length exponent part
US5187678A (en) Priority encoder and floating-point normalization system for IEEE 754 standard
EP0164451A2 (en) An arithmetic processing unit for executing a floating point operation
US4692891A (en) Coded decimal non-restoring divider
US5063530A (en) Method of adding/subtracting floating-point representation data and apparatus for the same
JPH0690668B2 (ja) ファジイ演算装置
JPH07234778A (ja) 演算回路
JP2856791B2 (ja) バレルシフタおよび浮動小数点演算器
US5528525A (en) Processor for determining shift counts based on input data
US6014683A (en) Arithmetic operation system for arithmetically operating a first operand having an actual point and a second operand having no actual point
JPH0346024A (ja) 浮動小数点演算器
US5754458A (en) Trailing bit anticipator
KR100309520B1 (ko) 라운드오프기능을갖는승산방법및승산회로
JP2578482B2 (ja) 浮動小数点演算器
JP2645422B2 (ja) 浮動小数点演算処理装置
JP2664750B2 (ja) 演算装置及び演算処理方法
EP0442220B1 (en) Decoder
US4141077A (en) Method for dividing two numbers and device for effecting same
JPH0426495B2 (ja)
JPS63115229A (ja) エレメントシフト方式
JP2512939B2 (ja) 固定浮動デ−タ変換回路
KR200222599Y1 (ko) 부동소숫점형식정규화기
JPH0797312B2 (ja) 演算装置
JP2555967B2 (ja) 浮動小数点加減算器

Legal Events

Date Code Title Description
LAPS Cancellation because of no payment of annual fees