JP3436994B2 - シフト装置 - Google Patents

シフト装置

Info

Publication number
JP3436994B2
JP3436994B2 JP30072894A JP30072894A JP3436994B2 JP 3436994 B2 JP3436994 B2 JP 3436994B2 JP 30072894 A JP30072894 A JP 30072894A JP 30072894 A JP30072894 A JP 30072894A JP 3436994 B2 JP3436994 B2 JP 3436994B2
Authority
JP
Japan
Prior art keywords
shift
input
numbers
digit
shifting
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
JP30072894A
Other languages
English (en)
Other versions
JPH08161149A (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.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric 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 Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Priority to JP30072894A priority Critical patent/JP3436994B2/ja
Priority to US08/548,117 priority patent/US5726926A/en
Publication of JPH08161149A publication Critical patent/JPH08161149A/ja
Application granted granted Critical
Publication of JP3436994B2 publication Critical patent/JP3436994B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/483Computations with numbers represented by a non-linear combination of denominational numbers, e.g. rational numbers, logarithmic number system or floating-point numbers
    • G06F7/485Adding; Subtracting
    • 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/012Methods or arrangements for data conversion without changing the order or content of the data handled for shifting, e.g. justifying, scaling, normalising in floating-point computations

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computing Systems (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Nonlinear Science (AREA)
  • Complex Calculations (AREA)

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】この発明は、コンピュータにおい
て2数の差の値に基づいて他の数のシフト動作を行なう
シフト装置に関し、特に2つの浮動小数点数の加算を行
なう際の桁合せの高速化に関するものである。
【0002】
【従来の技術】科学技術計算を中心とする数値計算にお
いては、浮動小数点による様々な計算が実行される。そ
の中でも最も頻繁に行なわれるものの1つが浮動小数点
数加算である。
【0003】したがって、数値計算システム全体の高速
化を図る場合に、この浮動小数点数加算を高速化するこ
とが極めて有効である。
【0004】従来、浮動小数点数の加算はたとえば図1
2のようなブロック図で示される回路によって実行され
ている。これは、岡本他著「200MFLOPS 10
0MHz 64ビット BiCMOS ベクターパイプ
ラインプロセッサ ULSI」ジャーナルオブソリッド
ステートサーキット26巻ナンバー12、12月号19
91年(F.Okamoto et al.“ 200-MFLOPS 100MHz 64-b
BidCMOS Vector-Pipelined Processor (VPP) ULSI,”Jo
urnal of Solid-State Circuits, Vol. 26, No. 12, De
cember 1991 )の1887頁Fig.2と同じものであ
る。
【0005】図12における浮動小数点加算フローを説
明するために、まず浮動小数点のデータ構造を図13で
説明する。
【0006】図13に示すように、浮動小数点は通常符
号、指数部および仮数部からなり、たとえばIEEEの
規格ではそのデータ構造は、以下のように取決められて
いる。つまり、データが32ビット幅を持つ単精度の場
合は上位から、符号ビットが1ビット、指数部が8ビッ
ト、仮数部が23ビットであり、データが64ビット幅
を持つ倍精度の場合は上位から、符号ビットが1ビッ
ト、指数部が11ビット、仮数部が52ビットという構
造となっている。
【0007】この規格では符号ビットをS、指数部を
E、仮数部をKとすると、値Vは、 V=(−1)S ×(1.K)×2(E-n) …(1) となる。ここでnは、指数部に便宜的に加算されている
バイアス値で、単精度では2進数で1111111、倍
精度では2進法で1111111111である。
【0008】次に、浮動小数点加算回路の動作を説明す
る。入力となる浮動小数点数1および2は、式(1)の
ように表現されているため、加算を行なうためにはまず
指数の値を比較してこれに応じて仮数部の桁合せを行な
う必要がある。
【0009】図12で、桁合せシフト制御信号発生回路
101は、浮動小数点数1および2の指数部の減算結果
を用いて桁合せシフト制御信号を発生する。
【0010】つまり、指数部減算器3は、浮動小数点数
1および2それぞれの指数部のデータ7および9を入力
し、指数部データ7から指数部データ9を減算し、その
差の絶対値を示す絶対値信号11aと結果の正負に対応
するキャリー出力信号11cを出力する。
【0011】スワッパ4は、浮動小数点数1および2の
それぞれの仮数部のデータ8および10を入力し、キャ
リー出力信号11cの値に応じて、指数部データ7また
は9のうち、値の小さい方に対応する仮数部データ8ま
たは10を、後述の右方向バレルシフタ5に対して出力
し、指数部データ値の大きい方に対応する仮数部データ
を後述の仮数部加算器6に対して出力する。
【0012】右方向バレルシフタ5は、スワッパ4で選
択された仮数部データ8または10を入力し、前記指数
部データの差の絶対値信号11aの値によってシフト量
が制御される。
【0013】仮数部加算器6は、右方向バレルシフタ5
の出力と、スワッパ4によって選択された仮数部データ
8または10とを入力し、これのデータに対して加算を
行なう。
【0014】つまり、一般に浮動小数点数演算を行なう
場合は、演算対象となる2つのデータの指数部の値を大
きい方に揃えて演算を行なうため、指数部同士の差をと
ってこの差の分だけ指数部が小さい方の仮数部をシフト
する必要がある。
【0015】この処理を一般に桁合せシフトと言い、こ
のシフトのための制御信号を得るために指数部の差を絶
対値として得る必要があったわけである。
【0016】この桁合せシフトの動作について、以下さ
らに詳しく説明する。指数部データ7、9は、減算器3
に入力され指数部データ7から指数部データ9が減算さ
れる。ここで、指数部データ7の値が指数部データ9の
値より大きいときは、キャリー出力信号11cはHレベ
ルとなり、指数部データ9の値が指数部データ7の値に
等しいか、または大きいときは、キャリー出力信号11
cはLレベルになる。
【0017】なすわち、キャリー出力信号11cがHレ
ベルのときは、減算結果は正の値であり、キャリー出力
信号11cがLレベルのときは、減算結果は負の値であ
る。
【0018】図12中の指数部減算器3の中には、減算
結果が負のときは、2の補数演算を行なう回路が存在
し、この回路によりキャリー出力信号11cがLレベル
のときでも、絶対値信号11aが出力される。
【0019】ここで、2の補数演算とは各ビットデータ
を反転し、1を加えることであって演算回路中にあって
は2進数で表現された数の符号を反転させることに相当
する。
【0020】演算結果が正のときは減算結果はそのまま
絶対値信号11aとして出力される。この絶対値信号1
1aは、仮数部の桁合せのためのシフト量であり、この
値が右方向バレルシフタ5に入力され、桁合せシフトが
実行される。
【0021】また、仮数部データ8および10について
は、キャリー出力信号11cの値がLレベルのときは、
仮数部データ8が右方向バレルシフタ5に入力され、キ
ャリー出力信号11cの値がHレベルのときは、仮数部
データ10が右方向バレルシフタ5に入力される。
【0022】すなわち、指数部データ7または9の小さ
い方の仮数部データ8または10が、右方向バレルシフ
タ5に入力される。右方向バレルシフタ5は、指数部デ
ータの7と9の差の絶対値信号11aが示すシフト量に
基づき、桁合せシフトを行なう。以上の処理によって桁
合せが完了した後、仮数部データが加算器6に入力され
演算が実行される。
【0023】
【発明が解決しようとする課題】従来の浮動小数点加算
器は、以上のように構成を有していたため、次のような
問題点があった。
【0024】すなわち、スワッパ4による仮数部の入換
えおよび右方向バレルシフタ5によるシフトは、いずれ
も指数部減算器3の出力11の値が決まるまで待たなけ
ればならないという点である。
【0025】以下、指数部減算器3の動作についてさら
に詳しく説明する。なお、2進数の減算には被減数およ
び1つ上位の桁からの借りから減数を減算する減算回路
を使用する方法と、補数の加算を使用する方法がある。
【0026】以下では、加算回路と同様な考え方で構成
できる等の理由で、ほとんどの計算機では補数の加算を
使用しているので、後者について述べる。
【0027】図14は、一般的な並列加算器の構成を示
す概略ブロック図である。簡単のために5ビットのデー
タの加算(すなわち、補数の加算であれば減算を意味す
る。)について説明する。
【0028】被加数A(=A4 3 2 1 0 )およ
び加数B(=B4 3 2 1 0)の各ビットデータ
は、それぞれの桁が対応する全加算器FAi (i=4、
3、2、1、0)に入力される。まず、最下位ビットの
加算では、桁上げ信号(以下キャリー信号と呼ぶ)の初
期値として0が、被加算、加算データとしてデータA 0
およびB0 が入力され、加算結果S0 およびキャリー信
号C1 が出力される。
【0029】1つ上の桁では、A1 、B1 およびC1
入力として、加算結果S1およびキャリー信号C2 が出
力される。
【0030】以下、順次各ビットの演算が行なわれる
が、キャリー信号が最上位ビットまでで伝搬し終るまで
は、演算結果が確定しない。
【0031】したがって、このキャリー信号の伝搬遅延
のために、前記スワッパ4および右方向バレルシフタ5
に対する制御信号の確定も遅延するという問題があっ
た。
【0032】これを高速に行なうために、たとえばキャ
リー−ルック−アヘッド回路が提案されている。
【0033】その原理について以下、簡単に説明する。
今、被加数および加数の2i 桁ビットをAi 、Bi とす
ると、 Ai ・Bi =1 …(2) ならば、2i 桁ビットから桁上がり(キャリー信号)C
i+1 =1が出る。また、 Ai ・/Bi +/Ai ・Bi =1 …(3) (/Ai 、/Bi 等は、それぞれの論理値の否定を表わ
す。)ならば、2i-1 桁ビットの加算による桁上がりC
i =1があるときに限り桁上がりCi+1 =1が生じる。
したがって、下位からの桁上がり信号Ci を上位の桁に
伝搬させるには、式(3)の条件が満足されればよい。
【0034】ただし、上位桁への桁上がりCi+1 =1は
式(2)が満足されても発生し、その両者を区別する必
要はないので、 Ai ・Bi +(Ai ・/Bi +/Ai ・Bi )=Ai
i =1 ならば下位からの桁上がりCi を伝搬させればよい。
【0035】ここで、2i 桁ビットにおけるキャリー生
成関数Gi およびキャリー伝搬関数Pi を次式で定義す
る。
【0036】Gi =Ai ・Bi …(4) Pi =Ai +Bi …(5) この2つの関数を用いると、2i 桁ビットにおけるキャ
リー信号Ci+1 は次式で与えられる。
【0037】Ci+1 =Gi +Pi ・Ci …(6) ただし、C0 は外部キャリー入力であり、加算の場合に
は0とすればよい。
【0038】式(6)により、 Ci+1 =Gi +Pi ・Ci =Gi +Pi ・(Gi-1 +Pi-1 ・Ci-1 ) =Gi +Pi ・Gi-1 +Pi ・Pi-1 ・Gi-2 +…+Pi ・Pi-1 …P0 0 +Pi ・Pi-1 …P0 ・C0 …(7) が得られる。
【0039】すなわち、2i 桁ビットにおけるキャリー
i+1 は、 Gk (k=0〜i) …(8) Pk (k=0〜i) …(9) により計算され、Gk (k=0〜i)およびPk (k=
0〜i)は、式(4)、(5)により、2i 桁ビットま
での入力により計算される。
【0040】このとき、和Si は、 Si =Ai *Bi *Ci …(10) で与えられる。(記号*は、排他的論理和を表わす。) 以上の演算手続を用いた4ビットの桁上げ先見型(キャ
リー−ルック−アヘッド型)加算器のブロック図を図1
5に示す。
【0041】まず、被加算数および加算数のA(=A3
2 1 0 )とB(=B3 2 1 0 )とが加算器
に入力され、それぞれ対応するビットデータごとに、論
理積と論理和を計算することにより、各桁のキャリー生
成関数Gi とキャリー伝搬関数Pi が同時に確定する。
【0042】次に、各桁ごとに独立に、すなわち、各桁
の演算を全く並行に行なうことで、各桁の加算結果が得
られることになる。
【0043】たとえば、第1桁目では、被加算数と加算
数とが入力されて、既に確定されているC0 、P0 、G
0 およびA1 、B1 から加算結果S1 が確定される。し
たがって、下位桁の演算結果を待たずに各桁の加算結果
が確定する。
【0044】つまり、キャリー伝搬遅延のない分、減算
は高速化されることになる。しかし、いずれにしても指
数部減算器3(補数を生成するための回路を含む。)や
スワッパ4と、それに伴う遅延時間が必要となるばかり
でなく、ハードウェアの増加とそれに伴うスピードの低
下を招く要因となる。
【0045】この発明は、上記のような問題点を解消す
るためになされたもので、その目的とするところは、減
算演算を削減ないしは高速化し、構成を簡素化して高速
に処理できる桁合せシフト装置を得ることである。
【0046】
【課題を解決するための手段】請求項1記載の、2進数
で表わされた第1から第4の数に対し、第1の数から第
2の数を引いた差の値に基づき、第3または第4の数の
一方の桁をシフトする機能を備えたシフト装置は、第1
から第4の数を各々記憶・保持する手段と、第3または
第4の数の一方を入力とし、順次シフトされる、直列に
接続された2以上のシフト手段を備え、上記シフト手段
は各々、シフトされる数値が入力される第1の入力端
と、第1および第2の数の対応する各桁のビットデータ
の対が、少なくとも1対入力される第2の入力端と、ビ
ットデータの各々の対において、その差を冗長2進数と
みなした場合に、第2の入力端に入力された少なくとも
1対のビットデータの差で表現され得るシフト量をそれ
ぞれ有し、第2の入力端の入力データによって選択され
る、複数の固定ビット量シフト手段と、上記選択された
固定ビット量シフト手段の1つによる、第1の入力から
の入力数値のシフト結果を出力する出力端とを含む。
【0047】請求項2記載のシフト装置は、請求項1記
載のシフト装置の構成において第1および第2の数は、
n桁の2進数であり、直列に接続されたシフト手段もn
個からなる。そのシフト手段の第i番目のものは、シフ
トする数値が入力される第1の入力端と、第1の数およ
び第2の数のビットデータai およびbi の対(ai
i )が入力する第2の入力端と、固定ビット量シフト
手段とを備え、各固定ビット量シフト手段は、入力した
数値を2i-1 ビット分第1の方向へシフトする第1の固
定ビット量シフト手段と、シフトを行なわない第2の固
定ビット量シフト手段と、2i-1 分第2の方向へシフト
する第3の固定ビット量シフト手段とを含み、さらに各
シフト手段はシフト結果を出力する出力端を備える。
【0048】請求項3記載のシフト装置は、前記第1か
ら第4の数を各々記憶・保持する手段と、第3あるいは
第4の数の一方を入力とし、順次シフトさせる直列に接
続された2以上のシフト手段を備え、各シフト手段はシ
フトする数値が入力される第1の入力端と、シフト量に
対応する数値が入力される第2の入力端と、第1および
第2の数の対応する各桁のビットデータの対が、少なく
とも2対入力され、この各ビットデータの対において、
その差を冗長2進数とみなした場合に表現され得るシフ
ト量をエンコードする手段と、上記エンコード手段によ
り生じ得るシフト量にそれぞれ対応する固定ビット量シ
フト手段と、エンコード手段のエンコード結果に対応す
る固定ビット量シフト手段による、第1の入力端からの
入力数値のシフト手段を出力する出力端とを含む。
【0049】請求項4記載のシフト装置は、第1から第
4の数を各々記憶・保持する手段と、第1および第2の
数の対応する各桁のビットデータの対を第1および第2
のグループに分配する手段と、第3の数を入力とし、順
次シフトさせる直列に接続された2以上のシフト手段の
第1のグループを備え、第1のグループのシフト手段の
各々は、シフトする数値が入力される第1の入力端と、
第1および第2の数の対応する各桁のビットデータの対
の第1のグループのうちの少なくとも1つの対が入力さ
れる第2の入力端と、第2の入力端に入力するビットデ
ータの各々の対において、その差を冗長2進数とみなし
た場合に、各々の対で表現され得るシフト量にそれぞれ
対応し、シフト量が正のとき第1の方向へ、シフト量が
負のとき第2の方向へ、桁シフトを行なう固定ビット量
シフト手段と、第2の入力の入力データに対応して選択
された固定ビット量シフト手段の1つによる、第1の入
力からの入力数値のシフト結果を出力する出力端とを含
み、第4の数を入力とし、順次シフトさせる直列に接続
された2以上のシフト手段の第2のグループをさらに備
え、第2のグループのシフト手段の各々は、第1のグル
ープのシフト手段とは、シフト量の正負とシフト方向の
対応が逆となっている。
【0050】請求項5記載のシフト装置は、請求項1か
ら4までのいずれかに記載のシフト装置の構成におい
て、第1の数は、第1の浮動小数点数の指数部であり、
第2の数は、第2の浮動小数点数の指数部であり、第3
の数は、第1の浮動小数点数の仮数部であり、第4の数
は、第2の浮動小数点数の仮数部である。
【0051】
【作用】請求項1記載のシフト装置においては、シフト
量のもととなる第1および第2の数の差を冗長2進数で
表現することとしたので、演算中に桁上げが発生せず、
各桁ごとに独立かつ並列に演算を行なうことが可能であ
る。
【0052】しかも、第1および第2の数の対応する桁
のビットデータの対のそれぞれのグループに対して、1
つのシフト手段が対応する構成とした。
【0053】そして、その各々のシフト手段は、入力さ
れるビットデータの対のグループにより表現され得るシ
フト量にそれぞれ応じた固定ビット量シフト手段を予め
備えている。したがって、上記ビットデータの対のグル
ープが入力すると、そのシフト手段中の1つの固定ビッ
ト量シフト手段が選択され、入力数値のシフトが実行さ
れる。上記のような構成のシフト手段が、直列に接続し
て、最初に入力された第3あるいは第4の数を、順次シ
フトすることで全体として所定のシフト量だけシフトさ
れた結果を出力する。
【0054】請求項2記載のシフト装置は、第1および
第2の数はn桁の2進数であるので、シフト手段はそれ
ぞれの桁に対応してn個存在する。
【0055】しかも、各シフト手段のたとえば第i番目
のものは、第1の入力端から入力した数値を、第1およ
び第2の数の第i桁目のビットデータの対(ai
i )に応じて、選択される固定ビット量シフト手段に
よりシフトさせる。
【0056】この固定ビット量シフト手段としては、
(ai 、bi )の差が、冗長2進数として−1、0、1
のいずれかであることにそれぞれ対応して、2i-1 ビッ
ト分第1の方向へシフトする第1の固定ビット量シフト
手段か、シフトを行なわない第2の固定ビット量シフト
手段か、2i-1 ビット分第2の方向へシフトする第3の
固定ビット量シフト手段かのいずれかが選択される。各
桁ごとに対応する上記シフト手段が直列に接続して、最
初に入力された第3あるいは第4の数を順次シフトされ
ることで、全体として所定のシフト量だけシフトされた
結果を出力する。
【0057】請求項3記載のシフト装置においては、シ
フト量のもととなる第1および第2の数の差が冗長2進
数として表現され、この冗長2進数は少なくとも2つ以
上のグループに分配される。
【0058】すなわち、第1および第2の数の対応する
桁のビットデータの対を2つ以上のグループに分配す
る。その各々の対に属するビットデータの差を冗長2進
数とみなし、そのグループで表現され得る数値をエンコ
ードする手段を備える。
【0059】さらに、それぞれのグループごとに、上記
エンコード手段の出力により制御されるシフト手段が対
応する。
【0060】それらシフト手段は、上記冗長2進数のグ
ループで表現され得るシフト量にそれぞれ対応する、固
定ビット量シフト手段を有している。
【0061】上記、ビットデータの対のグループが入力
すると、そのうちの1つが選択され、入力数値のシフト
が実行される。上記のような構成のシフト手段が、直列
に接続して最初に入力された第3あるいは第4の数を、
順次シフトすることで全体として所定のシフト量だけシ
フトされた結果を出力する。
【0062】請求項4記載のシフト装置においては、シ
フト量のもととなる第1および第2の数の差が冗長2進
数として表現され、まず、この冗長2進数を第1および
第2の冗長2進数に分配する。
【0063】第1および第2の冗長2進数の各桁は、そ
れぞれ第1および第2の数の対応する桁のビットデータ
の対の差として表わされる。
【0064】上記第1の冗長2進数に属するビットデー
タの対を、さらにグループに分配し、それぞれのグルー
プに対しては1つのシフト手段が対応している。そし
て、その各々のシフト手段は、入力されるビットデータ
の対のグループにより表現されるシフト量に、それぞれ
応じた固定ビット量シフト手段を予め備えている。
【0065】したがって上記ビットデータの対のグルー
プが入力すると、そのシフト手段中の1つの固定ビット
量シフト手段が選択され、入力数値のシフトが実行され
る。上記のような構成のシフト手段が、直列に接続して
最初に入力された第3の数を、上記第1の冗長2進数に
属するビットデータの対による、それぞれのグループで
表現されるシフト量の正負に応じて、第1あるいは第2
の方向へ順次シフトしていく。
【0066】一方、第2の冗長2進数に属するビットデ
ータの対も、さらにグループに分配され、それぞれのグ
ループに対しては、上記第1の冗長2進数の場合と同様
に、1つのシフト手段が対応している。
【0067】上記のような構成のシフト手段が直列に接
続して、最初に入力された第4の数を、上記第2の冗長
2進数に属するビットデータの対による、それぞれのグ
ループで表現されるシフト量の正負に応じて、第1の冗
長2進数の場合とは逆の方向へ順次シフトしていく。
【0068】つまり、以上の構成で第3および第4の数
が相互にシフトすることで、全体のシフト量が2つに分
けられ、同時に実行されることになる。
【0069】請求項5記載のシフト装置は、第1の数を
指数部とし、第3の数を加数部とする第1の浮動小数点
数と、第2の数を指数部とし、第4の数を加数部とする
第2の浮動小数点数の間の加算を行なう際の桁合せシフ
トを行なう。
【0070】
【実施例】図1は、本発明の第1の実施例を示す概略ブ
ロック図である。
【0071】図1において、両方向バレルシフタ15
は、浮動小数点数1の仮数部8に対し、浮動小数点数1
および2の指数部7および9の2つの入力に基づいて左
右両方向にシフトを行なう両方向バレルシフタである。
その他の部分は従来例における該当箇所と同じである。
【0072】次に両方向バレルシフタ15の動作につい
て説明する。以下では、まず、上記両方向バレルシフタ
15の動作の根拠となる数学上の原理である、冗長2進
数演算について述べる。その後、その原理をもとに実際
に桁シフトを行なうハードウェアの構成について述べ
る。以下の説明で明らかになるように、2つの2進数の
差を冗長2進数で表現することにより、差を求める演算
は通常の減算から、むしろ、各桁のビットデータの大小
の比較演算に還元される。
【0073】その結果、その手続を具体化するハードウ
ェアも大幅に単純化されることになる。
【0074】浮動小数点数1および2の指数部7および
9を、それぞれ8ビットのデータE A およびEB とし、
以下のように表わす。
【0075】 EA =a7 6 5 4 3 2 0 …(11) EB =b7 6 5 4 3 2 0 …(12) 桁合せのためのシフトは、EA −EB の値に基づいて行
なわれ、この値が負のときは浮動小数点数1の方が浮動
小数点数2よりも小さいため、浮動小数点数1の加数部
である8は右方向にシフトし、逆EA −EB が正のとき
は左方向にシフトしなければならない。また、シフト量
はEA −EB の絶対値である。このシフトは各桁を−
1、0、1の3通りの値で表現するいわゆる冗長2進数
表現を用いると極めて容易に表わすことができる。
【0076】すなわち、仮にEA =10100010、
B =01111011とすると、図2に示すようにE
A −EB は対応する桁のビット同士を引算することによ
り1−10−1−100−1と簡単に表わされる。すな
わち、それぞれを10進数で表わすと、 EA =1・27 +0・26 +1・25 +0・24 +0・
3 +0・22 +1・21 +0・20 =162 EB =0.27 +1・26 +1・25 +1・24 +1・
3 +0・22 +1・21 +1・20 =123 EA −EB =1・27 +(−1)・26 +0・25
(−1)・24 +(−1)・23 +0・22 +0・21
+(−1)・20 =39 となり、冗長2進数表示が正しい値を示していることが
わかる。そしてこのEA−EB がシフト量となる。
【0077】この際引算のやり方から明らかなようにキ
ャリー信号の伝搬は起こらない。この考え基づいた両方
向バレルシフタ15の構成の一例を図3に示す。図中2
1〜28は、それぞれ128、64、32、16、8、
4、2、1ビット両方向シフタである。また、29〜3
6は、EA およびEB の対応する各ビットの組である。
【0078】上の考えに基づいて各ビットの組の値を以
下のように定義する。 (ai 、bi )=ai −bi …(13) ここでたとえば128ビット両方向シフタ21について
考えると、(a7 、b 7 )=(1、0)の場合は、式
(13)よりこの値は1となるので、入力8は128ビ
ット左方向へシフトする。(a7 、b7 )=(0、1)
の場合は、式(13)よりこの値は−1となるので12
8ビット右方向へシフトする。また、(a 7 、b7 )=
(1、1)あるいは(a7 、b7 )=(0、0)の場合
は式(13)よりこの値は0となるので、入力8のシフ
トは行なわない。他の7つの両方行シフタ22〜28に
ついても同様である。
【0079】このように構成することによって任意のE
A およびEB に対してその差の値に応じたシフトを実現
することができる。上の例の場合、最終的に39ビット
の左方向シフトが実現される。なお、冗長2進数表現で
は、たとえば10進数の方を4桁で表わすのに“010
1”、“011−1”、“1−101”、“1−11−
1”の4通りが可能であるように1つの値に対して複数
の表現方法があるが、本構成の両方向シフタを用いる
と、いずれの表現に対しても最終的に一通りの出力を得
ることができる。
【0080】ここで、さらに、両方向シフタ21〜28
の構成について詳しく説明する。図4は、図3の両方向
バレルシフタのうち、両方向シフタ21〜24の構成を
示したものである。ここで仮に可動小数点数の仮数部の
ビット幅を16ビットとする。図中データ8は、この仮
数部m15…m0 を示す。
【0081】MUXは、3つの入力に対し冗長2進数の
信号29〜32の対応する値によって1つを選択して出
力するマルチプレクサで、冗長2進数の値が−1のとき
は左側、0のときは真中、1のときは右側の信号を選択
して次段に出力する。
【0082】128ビット左右両方向シフタ21は、冗
長2進数29の値が−1のとき、入力8を右方向に12
8ビットシフトしてC-113〜C-128として出力する。こ
こで添字は桁の位置を示すもので左側を上位桁とし、0
桁よりも右側のものに対しては便宜上負の値で表わすこ
とにする。
【0083】冗長2進数のビットデータの組29が0の
ときは、入力8はシフトされずC15〜C0 として出力さ
れる。冗長2進数のビットデータの組29が1のとき
は、入力8は128ビット左方向にシフトされてC143
〜C128 として出力される。なお、C127 〜C16やC-1
〜C-112は仮想的には存在するが実際にはこれらの桁が
使われることはないのでハードウェアとして存在する必
要はなく、この例では無視している。
【0084】次に、64ビット両方向シフタ22は、冗
長2進数入力30が−1のとき、入力された数値を右方
向へ64ビットシフトして出力する。すなわち、C143
〜C 128 はd79〜d64に、C15〜C0 はd-49 〜d-64
にそれぞれシフトされる。
【0085】ここでC-113〜C-128も右方向へシフトさ
れてd-177〜d-192に出力されることになるが、これは
以下の理由で無視できる。すなわち、仮数部加算器6で
加算が必要なのは、桁合せされた2つの仮数部14と1
0に、桁の重なりがある場合であり、重なりがなければ
加算する必要はなく、いずれか大きい方の仮数部を選択
するだけでよい。
【0086】したがって、この例のように仮数部が16
桁の場合、桁合せの後の仮数部14の最下位ビットは、
−15桁から+15桁の間にある場合のみ考慮すればよ
い。そこで、d-177〜d-192について考えると、これよ
り以後のシフト量は冗長2進数31〜36の値の合計で
あり、これらは6桁の冗長2進数の値となり、−63〜
63の値となる。したがって、最大限左側にシフトして
も63ビットであり、そのとき最下位ビットは−129
桁目となり、−15桁から+15桁の間には入らない。
すなわちこの場合は考慮する必要がなく、d-177〜d
-192は出力しなくてよい。
【0087】冗長2進数30が0のときにはシフトされ
ずに出力され、冗長2進数入力30が1のときには左方
向に64ビットシフトされて出力される。これらの場合
も最終の出力14の最下位桁が−15桁から+15桁の
間に入る可能性のあるものだけを取出して、結局d79
64、d15〜d0 、d-49 〜d-64 が出力される。
【0088】32ビット両方向シフタ23、16ビット
両方向シフタ24は、いずれも64ビット両方向シフタ
22とシフト量が異なるだけで同様の動作をする。その
結果出力としてf31〜f-16 が得られる。
【0089】図5は、図3の両方向バレルシフタのう
ち、両方向シフタ25〜28の構成を示したものであ
る。
【0090】8ビット両方向シフタ25は、冗長2進数
33が−1のときは入力数f31〜f -16 を右方向へ8ビ
ットシフト、0のときはシフトなし、1のときは左方向
へ8ビットシフトしたものをg31〜g-16 に出力する。
【0091】4ビット両方向シフタ26は、冗長2進数
34が−1のときは入力g31〜g-1 6 を右方向へ4ビッ
トシフト、0のときはシフトなし、1のときは左方向へ
4ビットシフトしたものをh31〜h-16 に出力する。
【0092】2ビット両方向シフタ27は、冗長2進数
35が−1のときは入力h31〜h-1 6 を右方向に2ビッ
トシフト、0のときはシフトなし、1のときは左方向へ
2ビットシフトしたものをi31〜i-16 に出力する。
【0093】1ビット両方向シフタ28は、冗長2進数
36が−1のときは入力i31〜i-1 6 を右方向へ1ビッ
トシフト、0のときはシフトなし、1のときは左方向へ
1ビットシフトしたものをj31〜j-16 に出力する。
【0094】さらに、特に限定されないが、図4および
図5中のマルチプレクサ(MUX)の回路構成の一例を
図6に示す。
【0095】図6に示されたマルチプレクサ201は、
図7中に示されているCMOSトランスミッションゲー
トを基本構成要素とする4チャネル・マルチプレクサで
ある。トランスミッションゲートは、PチャネルMOS
トランジスタとNチャネルMOSトランジスタとを並列
に接続して構成されている。NチャネルMOSトランジ
スタのゲートへの入力信号INの反転信号/INが、P
チャネルMOSトランジスタのゲートに入力される。し
たがって、信号INがHレベルのときは、入力端と出力
端とが導通し、Lレベルのときは入力端と出力端とは電
気的に分離される。
【0096】マルチプレクサ201に、たとえば入力信
号(ai 、bi )=(1、0)が入力した場合について
以下説明する。
【0097】まず、信号bi がLレベルであるから、信
号がインバータ211と212とで反転されて、トラン
スミッションゲート221〜224に入力されると、ト
ランスミッションゲート221および223はオン状態
に、トランスミッションゲート222および224はオ
フ状態になる。
【0098】次に、信号ai がHレベルであるから、信
号がインバータ213と214とで反転されて、トラン
スミッションゲート225および226に入力される
と、トランスミッションゲート226はオン状態に、ト
ランスミッションゲート225はオフ状態となる。
【0099】つまり、入力端202、203、204の
うち、出力端205と導通するのは、入力端202のみ
である。
【0100】以上により、(ai 、bi )=(1、
0)、すなわち対応する冗長2進数が1の場合は、右側
の経路202が選択される。
【0101】全く同様にして、(ai 、bi )=(0、
1)のときは、左側の経路204が、(ai 、bi )=
(0、0)または(ai 、bi )=(1、1)のとき
は、真中の経路203が選択される。つまり、それぞれ
対応する冗長2進数−1または0に対応する経路が選択
されることになる。
【0102】したがって、上記のように構成したマルチ
プレクサを図4中に示すように128ビット両方向シフ
タ21内に配置した場合、入力信号(a7 、b7 )によ
り、直接、特に減算処理を行なわなくても、入力信号m
15…m0 が+128ビットシフト、0ビットシフト、−
128ビットシフトのいずれかを実行されたものとし
て、出力される。
【0103】その他の両方向シフタ22〜28について
も同様である。つまり、浮動小数点数1および2の指数
データ7および9のそれぞれの桁のビットデータの組
{(a7 、b7 )、(a6 、b6 )、…、(a0
0 )}が両方向バレルシフタ15に入力した時点で、
両方向シフタ21〜28の各々について信号の伝達経路
が決定される。
【0104】したがって、図3において入力8と出力1
4とをつなぐ経路が、並列に入力されたデータの組
{(a7 、b7 )、(a6 、b6 )、…、(a0
0 )}により一時に決定されることになる。
【0105】入力データ8がシフトされ、結果が出力さ
れるまでの遅延時間は、各々の両方向シフタにおいてマ
ルチプレクサが初期状態から入力ビットデータの組によ
り選択された状態に遷移する時間(各桁、並行して同時
に行なわれる。)と入力信号が各シフタを伝搬していく
遅延時間のみである。
【0106】その結果、指数部データ7および9の減算
処理を行ない、その結果に基づいて仮数部データ8およ
び10の入換えを行なった後、右方向バレルシフタで桁
合せシフトを行なうという従来の構成に比べると、第1
の実施例の構成では各段に高速に桁合せシフトを行なう
ことが可能である。
【0107】すなわち、このような構成によって、指数
部減算を実行することなく指数部の値から直接桁合せを
行なうことができ、また従来必要であったスワッパを省
略することができるため、簡素化された回路構成で極め
て高速な浮動小数点加算を実現することができる。
【0108】第2の実施例として、図8に両方向シフタ
の段数を削減した場合を示す。以下、動作について説明
する。エンコーダ38には指数部の入力29〜36のう
ち上位4ビット分が入力し、この4ビットの値に応じた
信号をエンコーダ出力信号39として出力する。
【0109】たとえば実施例1に挙げた例の場合、上位
4ビットは(1、0)(0、1)(1、1)(0、1)
=1−10−1=3となる。ただし、この上位5ビット
の最下位は24 を表わす桁となるので、24 を掛けて3
×24 =48となる。したがって、エンコーダ出力信号
39には左方向へ48ビットシフトさせる信号が出力さ
れる。
【0110】次に、エンコーダ42には指数部の入力2
9〜36のうち下位4ビット分が入力し、この4ビット
の値に応じたシフト信号をエンコーダ出力信号43とし
て出力する。実施例1に挙げた例の場合、下位4ビット
は(0、1)(0、0)(1、1)(0、1)=−10
0−1=−9となるので、エンコーダ出力信号43には
−9ビットすなわち右方向へ9ビットシフトさせる信号
が出力される。
【0111】両方向バレルシフタ37は上位4ビットか
ら生成されるシフト信号に従って仮数部の入力8をシフ
トさせ、出力データ40を出力する。さらに両方向バレ
ルシフタ41は、下位4ビットから生成されるシフト信
号に従って入力40をシフトさせ、出力データ14を出
力する。実施例1に挙げた例の場合、出力データ40と
しては入力データ8を左方向へ48ビットシフトしたも
のが出力され、さらに出力データ14としては、データ
40を右方向に9ビットシフトしたものが出力される。
【0112】したがって、最終的に出力データ14には
入力データ8を48−9=39ビット左方向にシフトし
たものが出力され、所望のシフトが達成される。
【0113】次に、両方向バレルシフタ37および41
について、さらに詳しく説明する。図9は、実施例2に
おける上位側の行方向バレルシフタ37の構成を示す図
である。上位4桁の冗長2進数29〜32は、エンコー
ダ38によって数値化され、信号39は−15〜+15
の値を持つ。ここで、冗長2進数は、さらに下位に4桁
の値33〜36を持つので、信号39の1の値は、16
桁のシフトを表わすことになる。
【0114】したがって、信号39が2以上か、あるい
は−2以下のときは、下位のシフト量がいくつであって
もシフト後の最下位桁が−15桁から+15桁の間に入
る可能性がないので、信号39は、1、0、−1の場合
だけを考えればよい。
【0115】信号39が、1の場合はm15〜m0 は左方
向に16ビットシフトされ、0のときはシフトされず、
−1のときは右方向に16ビットシフトされてf31〜f
-16に出力される。
【0116】図10は実施例2における下位側の両方向
バレルシフタ41の構成を示す図である。下位4桁の冗
長2進数33〜36はエンコーダ42によって数値化さ
れ、エンコーダ信号43は−15〜+15の値を持つ。
【0117】図中のMUXは、このエンコーダ信号43
の各値に応じて31入力のうちから1つを選択するマル
チプレクサ回路である。この例では、31桁目から−1
6桁目までの48個のマルチプレクサが配置され、各々
にエンコード信号43が入力する構成となっている。こ
れによって入力信号f31〜f-16 にエンコード信号43
のシフト量に応じたシフトが行なわれて、出力信号j31
〜j-16 として出力される。
【0118】この実施例では、指数部の入力を上位4ビ
ットと下位4ビットとに分割した場合を示したが、その
他の分割方法でもよい。
【0119】本構成では、第1の実施例に比べて両方向
シフタの段数を削減することができるので、シフト動作
のさらなる高速化を実現することができる。
【0120】図11に第3の実施例として、両方向バレ
ルシフタ16を追加した場合を示す。この例では、指数
部7および9はそれぞれ2つの部分に分けられる。すな
わち指数部7は一部17と他の部分18とに分けられ、
指数部9は指数部7と対応するように一部19と他の部
分20とに分けられる。
【0121】ここで、たとえば実施例2での例に従って
17および19が上位4桁、18および19は各々下位
4桁とする。両方向バレルシフタ15はここでは17お
よび19から作られる4桁の冗長2進数の値によってシ
フトを行なう。実施例2で述べたようにこの値は48で
あるので左方向へ48ビットのシフトを行なう。またこ
の値が負ならば右方向へシフトとなる。
【0122】これに対して両方向バレルシフタ16の第
2の浮動小数点数2の仮数部に対して、18および20
から作られる冗長2進数が正ならば右方向、負ならば左
方向のシフトを行なう。実施例1での例に従うと17お
よび19は各々下位4桁で値は実施例で述べたように−
9となるので両方向バレルシフタ16は左に9ビットシ
フトを行なう。この結果両方向バレルシフタ15の出力
14はシフト結果6に対しては相対的に39ビット右方
向にシフトされたことになり、所望のシフトが実現され
る。
【0123】この例では、指数部7および9をそれぞれ
上位4ビットと下位4ビットとに分割した場合を示した
が、その他の分割方法でもよい。
【0124】また、両方向バレルシフタ15および16
はそれぞれ図3に示したような1ビットごとにシフトす
るタイプでもよいし、図8に示したようなエンコードを
用いるタイプでもよい。
【0125】本構成により、バレルシフタの段数がさら
に削減でき、より一層の高速の桁合せが可能となる。
【0126】
【発明の効果】請求項1記載のシフト装置においては、
シフト量のもととなる第1および第2の数の差を冗長2
進数とみなしたので、各桁ごとに独立に演算を行なえば
よく、キャリー信号の伝搬遅延なくシフト量の制御信号
が確定する。しかも、複数の直列に接続されたシフト手
段の各々が、入力されるビットデータの組のグループに
より表現されるシフト量にそれぞれ応じた固定ビット量
シフト手段を予め備えている。その結果、入力された数
値が各々のシフト手段により順次シフトされていく経路
は、第1および第2の数のビットデータが入力された時
点で、一時に決定される。
【0127】そのため、第1および第2の数の間の減算
を実行することなく、第1および第2の数の値から直接
桁合せを行なうことができ、極めて高速なシフト動作を
実現できる。
【0128】請求項2記載のシフト装置においては、請
求項1記載のシフト装置の構成で、特に複数の直列に接
続されたシフト手段は、第1および第2の数の差のそれ
ぞれに桁に対応している。
【0129】したがって、請求項1記載のシフト装置と
同様の効果を奏する。請求項3記載のシフト装置におい
ては、第1および第2の数の差は、少なくとも2つのグ
ループに分配されている。その各々のグループに属する
第1および第2の数の各ビットデータの組は、エンコー
ドされた後、それぞれのグループに対応しているシフト
手段に入力される。したがって、両方向シフタの段数を
削減することができ、シフト動作の高速化を実現でき
る。
【0130】請求項4記載のシフト装置は、第1および
第2の数の差は冗長2進数とみなされ、まず2つに分配
される。分配された第1の冗長2進数の各桁のビットデ
ータのグループにそれぞれ対応し、直列に接続された、
シフト手段の第1のグループにより順次第3の数がシフ
トされる。
【0131】一方、分配された第2の冗長2進数の各桁
のビットデータのグループにそれぞれ対応し、直列に接
続されたシフト手段であって、冗長2進数の正負とシフ
ト方向の対応が第1のグループのシフト手段とは逆であ
る、シフト手段の第2のグループにより順次第4の数が
シフトされる。したがって、以上の構成で第3および第
4の数が相互にシフトすることで全体のシフト量を2つ
に分けて同時に実行することになり、両方向シフタの段
数をさらに削減でき、より一層の桁シフトの高速化が図
れる。
【0132】請求項5記載のシフト装置においては、請
求項1から4記載のいずれかのシフト装置を浮動小数点
加算時の桁合せシフトに応用したので、極めて高速な浮
動小数点加算を実現することができる。
【図面の簡単な説明】
【図1】 本発明の第1の実施例のシフト装置の構成を
示す図である。
【図2】 減算の冗長2進数による表現法を示す図であ
る。
【図3】 第1の実施例の両方向バレルシフタの構成を
示す第1の図である。
【図4】 第1の実施例の両方向バレルシフタの構成を
示す第2の図である。
【図5】 第1の実施例の両方向バレルシフタの構成を
示す第3の図である。
【図6】 両方向バレルシフタ中のマルチプレクサの構
成を示す図である。
【図7】 トランスミッションゲートの構成を示す図で
ある。
【図8】 本発明の第2の実施例の両方向バレルシフタ
の構成を示す第1の図である。
【図9】 第2の実施例の両方向バレルシフタの構成を
示す第2の図である。
【図10】 第2の実施例の両方向バレルシフタの構成
を示す第3の図である。
【図11】 本発明の第3の実施例のシフト装置の構成
を示す図である。
【図12】 従来のシフト装置の構成を示す図である。
【図13】 浮動小数点数のデータ構造を示す図であ
る。
【図14】 並列加算器の構成を示す概略ブロック図で
ある。
【図15】 キャリー−ルック−アヘッド型加算器の構
成を示す概略ブロック図である。
【符号の説明】
1 第1の浮動小数点数、2 第2の浮動小数点数、3
指数部減算器、4スワッパ、5 右方向バレルシフ
タ、6 仮数部加算器、7 第1の浮動小数点数の指数
部データ、8 第1の浮動小数点数の仮数部データ、9
第2の浮動小数点数の指数部データ、10 第2の浮
動小数点数の仮数部データ、11 指数部減算器の演算
結果、11a 減算結果の絶対値、11c キャリー出
力信号、12 スワッパの第1の出力、13 スワッパ
の第2の出力、14 バレルシフタの出力、15、16
両方向バレルシフタ、17 第1の浮動小数点数の指
数部の第1の分配数、18 第1の浮動小数点数の指数
部の第2の分配数、19第2の浮動小数点数の指数部の
第1の分配数、20 第2の浮動小数点数の指数部の第
2の分配数、21 128ビット両方向シフタ、22
64ビット両方向シフタ、23 32ビット両方向シフ
タ、24 16ビット両方向シフタ、258ビット両方
向シフタ、26 4ビット両方向シフタ、27 2ビッ
ト両方向シフタ、28 1ビット両方向シフタ、29、
30、31、32、33、34、35、36 第1およ
び第2の浮動小数点数の指数部の桁のビットデータの
組、37 第1の両方向バレルシフタ、38 エンコー
ダ、39 エンコーダの出力、40 第1の行方向バレ
ルシフタの出力、41 第2の両方向バレルシフタ、4
2 エンコーダ、43 エンコーダの出力、201 マ
ルチプレクサ、202マルチプレクサの第1の入力、2
03 マルチプレクサの第2の入力、204マルチプレ
クサの第3の入力、205 マルチプレクサの出力、2
11、212、213、214 インバータ、221、
222、223、224、225、226 トランスミ
ッションゲート。
───────────────────────────────────────────────────── フロントページの続き (58)調査した分野(Int.Cl.7,DB名) G06F 7/00 G06F 7/50

Claims (5)

    (57)【特許請求の範囲】
  1. 【請求項1】 2進数で表わされた第1から第4の数に
    対し、第1の数から第2の数を引いた差の値に基づき、
    第3または第4の数の一方の桁をシフトする機能を備え
    たシフト装置であって、 前記第1から第4の数を各々記憶・保持する手段と、 前記第3または第4の数の一方を入力として受取って、
    順次シフトさせる、直列に接続された2以上のシフト手
    段を備え、 前記シフト手段は各々、 シフトされる数値が入力される第1の入力端と、 前記第1および第2の数の対応する各桁のビットデータ
    の対が、少なくとも1対入力される第2の入力端と、 前記ビットデータの各々の対において、その差を冗長2
    進数とみなした場合に、前記第2の入力端に入力された
    少なくとも1対のビットデータの差で表現され得るシフ
    ト量をそれぞれ有し、前記第2の入力端の入力データに
    よって選択される、複数の固定ビット量シフト手段と、 前記選択された固定ビット量シフト手段の1つによる、
    前記第1の入力からの入力数値のシフト結果を出力する
    出力端とを含む、シフト装置。
  2. 【請求項2】 前記第1および第2の数は、n桁の2進
    数であり、 前記シフト手段は、n個が直列に接続したものであっ
    て、 前記シフト手段の第i番目のものは、 シフトする数値が入力される第1の入力端と、 前記第1の数の第i桁目のビットデータai および前記
    第2の数の第i桁目のビットデータbi の対(ai 、b
    i )が入力する第2の入力端と、 前記固定ビット量シフト手段とを備え、 前記固定ビット量シフト手段は、入力した数値を2i-1
    ビット分第1の方向へシフトする第1の固定ビット量シ
    フト手段と、 シフトを行なわない第2の固定ビット量シフト手段と、 2i-1 ビット分第2の方向へシフトする第3の固定ビッ
    ト量シフト手段とを含み、 前記出力端とをさらに備える、請求項1記載のシフト装
    置。
  3. 【請求項3】 2進数で表わされた第1から第4の数に
    対し、第1の数から第2の数を引いた差の値に基づき、
    第3あるいは第4の数の一方の桁をシフトする機能を備
    えたシフト装置であって、 前記第1から第4の数を各々記憶・保持する手段と、 前記第3あるいは第4の数の一方を入力とし、順次シフ
    トさせる直列に接続された2以上のシフト手段を備え、 前記シフト手段は各々、 シフトする数値が入力される第1の入力端と、 シフト量に対応する数値が入力される第2の入力端と、 前記第1および第2の数の対応する各桁のビットデータ
    の対が、少なくとも2対入力され、この各ビットデータ
    の対において、その差を冗長2進数とみなした場合に表
    現され得るシフト量をエンコードする手段と、 前記エンコード手段により生じ得るシフト量にそれぞれ
    対応する固定ビット量シフト手段と、 前記エンコード手段のエンコード結果に対応する固定ビ
    ット量シフト手段による前記第1の入力端からの入力数
    値のシフト結果を出力する出力端とを含む、シフト装
    置。
  4. 【請求項4】 2進数で表わされた第1から第4の数に
    対し、第1の数から第2の数を引いた差の値に基づき、
    第3および第4の数の桁をシフトする機能を備えたシフ
    ト装置であって、 前記第1から第4の数を各々記憶・保持する手段と、 前記第1および第2の数の対応する各桁のビットデータ
    の対を第1および第2のグループに分配する手段と、 前記第3の数を入力とし、直列に接続して順次シフトさ
    せる2以上のシフト手段の第1のグループを備え、 前記第1のグループのシフト手段の各々は、 シフトする数値が入力される第1の入力端と、 前記第1および第2の数の対応する各桁のビットデータ
    の対の第1のグループのうちの少なくとも1つの対が入
    力される第2の入力端と、 前記第2の入力端に入力するビットデータの各々の対に
    おいて、その差を冗長2進数とみなした場合に各々の対
    で表現され得るシフト量にそれぞれ対応し、 前記シフト量が正のとき、第1の方向へ 前記シフト量が負のとき、第2の方向へ 桁シフトを行なう固定ビット量シフト手段と、 前記第2の入力の入力データに対応して選択された前記
    固定ビット量シフト手段の1つによる、前記第1の入力
    からの入力数値のシフト結果を出力する出力端とを含
    み、 前記第4の数を入力とし、直列に接続して順次シフトさ
    せる2以上のシフト手段の第2のグループをさらに備
    え、 前記第2のグループのシフト手段の各々は、前記第1の
    グループのシフト手段とは、シフト量の正負とシフト方
    向の対応が逆となっている、シフト装置。
  5. 【請求項5】 前記第1の数は、第1の浮動小数点数の
    指数部であり、前記第2の数は、第2の浮動小数点数の
    指数部であり、前記第3の数は、第1の浮動小数点数の
    仮数部であり、前記第4の数は、第2の浮動小数点数の
    仮数部である、請求項1から4までのいずれかに記載の
    シフト装置。
JP30072894A 1994-12-05 1994-12-05 シフト装置 Expired - Fee Related JP3436994B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP30072894A JP3436994B2 (ja) 1994-12-05 1994-12-05 シフト装置
US08/548,117 US5726926A (en) 1994-12-05 1995-10-25 Shifter for shifting floating point number utilizing arithmetic operation of redundant binary number, and adder containing the same

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP30072894A JP3436994B2 (ja) 1994-12-05 1994-12-05 シフト装置

Publications (2)

Publication Number Publication Date
JPH08161149A JPH08161149A (ja) 1996-06-21
JP3436994B2 true JP3436994B2 (ja) 2003-08-18

Family

ID=17888390

Family Applications (1)

Application Number Title Priority Date Filing Date
JP30072894A Expired - Fee Related JP3436994B2 (ja) 1994-12-05 1994-12-05 シフト装置

Country Status (2)

Country Link
US (1) US5726926A (ja)
JP (1) JP3436994B2 (ja)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100265358B1 (ko) * 1997-05-22 2000-09-15 김영환 고속의쉬프팅장치
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
US6148315A (en) * 1998-04-30 2000-11-14 Mentor Graphics Corporation Floating point unit having a unified adder-shifter design
US6327651B1 (en) * 1998-09-08 2001-12-04 International Business Machines Corporation Wide shifting in the vector permute unit
EP1122637A3 (de) * 2000-01-31 2005-10-12 Micronas GmbH Recheneinheit für eingeschränkte Signalverarbeitung
US6675182B1 (en) * 2000-08-25 2004-01-06 International Business Machines Corporation Method and apparatus for performing rotate operations using cascaded multiplexers
US6983297B2 (en) * 2001-08-16 2006-01-03 Texas Instruments Incorporated Shifting an operand left or right while minimizing the number of multiplexor stages
US7320013B2 (en) * 2002-12-12 2008-01-15 Adaptec, Inc. Method and apparatus for aligning operands for a processor
US6853699B1 (en) * 2004-02-27 2005-02-08 Qualcomm, Incorporated High speed shifter circuit
US9021000B2 (en) 2012-06-29 2015-04-28 International Business Machines Corporation High speed and low power circuit structure for barrel shifter
CN113131948B (zh) * 2020-01-10 2024-07-16 瑞昱半导体股份有限公司 具有多模式的数据移位运算装置及方法

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4999800A (en) * 1989-11-13 1991-03-12 Motorola, Inc. Floating point adder with pre-shifter
US5166898A (en) * 1990-09-07 1992-11-24 Nec Corporation Shift amount floating-point calculating circuit with a small amount of hardware and rapidly operable
KR100262438B1 (ko) * 1991-05-08 2000-08-01 가나이 쓰도무 연산장치 및 이것을 사용한 비트필드조작 연산방법
US5408426A (en) * 1992-03-17 1995-04-18 Hitachi, Ltd. Arithmetic unit capable of performing concurrent operations for high speed operation

Also Published As

Publication number Publication date
JPH08161149A (ja) 1996-06-21
US5726926A (en) 1998-03-10

Similar Documents

Publication Publication Date Title
US7395304B2 (en) Method and apparatus for performing single-cycle addition or subtraction and comparison in redundant form arithmetic
US5053631A (en) Pipelined floating point processing unit
JP3436994B2 (ja) シフト装置
JPH02196328A (ja) 浮動小数点演算装置
JPS6347874A (ja) 算術演算装置
US6754689B2 (en) Method and apparatus for performing subtraction in redundant form arithmetic
KR100203468B1 (ko) 부동소수점수를 위한 산술연산장치
US4878192A (en) Arithmetic processor and divider using redundant signed digit arithmetic
US5144576A (en) Signed digit multiplier
WO1999040508A1 (en) Fast adder/subtractor for signed floating point numbers
KR20020063058A (ko) 덧셈 및 반올림 연산을 동시에 수행하는 부동 소수점alu 연산 장치
JPH057737B2 (ja)
JPS584369B2 (ja) デイジツトの有効性追跡装置
US4866655A (en) Arithmetic processor and divider using redundant signed digit
US4873660A (en) Arithmetic processor using redundant signed digit arithmetic
US6813628B2 (en) Method and apparatus for performing equality comparison in redundant form arithmetic
US4866657A (en) Adder circuitry utilizing redundant signed digit operands
US6826588B2 (en) Method and apparatus for a fast comparison in redundant form arithmetic
Neto et al. Decimal addition on FPGA based on a mixed BCD/excess-6 representation
US7240085B2 (en) Faster shift value calculation using modified carry-lookahead adder
JPH0251732A (ja) 浮動小数点演算器
JPH0667852A (ja) 除算器
JP2931632B2 (ja) 桁移動装置及び浮動小数点演算装置
Veeramachaneni et al. A novel carry-look ahead approach to a unified bcd and binary adder/subtractor
JPH1115641A (ja) 冗長2進加算器を用いた乗算装置

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: 20030520

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313111

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20080606

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20080606

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090606

Year of fee payment: 6

LAPS Cancellation because of no payment of annual fees