JP3512700B2 - 浮動小数点演算装置 - Google Patents
浮動小数点演算装置Info
- Publication number
- JP3512700B2 JP3512700B2 JP2000064616A JP2000064616A JP3512700B2 JP 3512700 B2 JP3512700 B2 JP 3512700B2 JP 2000064616 A JP2000064616 A JP 2000064616A JP 2000064616 A JP2000064616 A JP 2000064616A JP 3512700 B2 JP3512700 B2 JP 3512700B2
- Authority
- JP
- Japan
- Prior art keywords
- circuit
- bit
- precision
- precision loss
- operands
- 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
Links
Description
1ビット誤差補正シフトの可否を判断する予測誤差検出
回路を使用する浮動小数点演算装置に係り、特にその高
速化方法に関する。
数点加減算後の値の最上位ビットを特定の位置に揃える
ために、演算操作の後に正規化処理を必要とする。正規
化処理は、演算結果の最上位桁から連続する0または連
続する1の並ぶ数をカウントし、その並ぶ数だけ左方向
にシフトさせるものである。プロセッサが高速になる
と、演算処理と並行して演算結果の最上位桁から連続す
る0または連続する1の並ぶ数を予測する方法(先行ゼ
ロ予測方式、桁落ち予測方式、或いは桁落ち予測回路)
が考案されてきた。桁落ち予測方式は、E.HOKENEK(IBM.
J.RES.DEVELP.VOL.34.、1990、pp71-77)やH.SUZUKIらの
論文(CICC proc.、1995、pp.27.5.l-27.5.4)に記載
されている。E.HOKENEK(IBM.J.RES.DEVELP.VOL34.、199
0、pp71-77)に記載された桁落ち予測の基本的な原理
は以下の通りである。2つの被演算数の仮数部の同じビ
ット毎の比較を行い、その状態により以下の3つの状態
を表す入力信号G(共に“1”)とZ(共に“0”)と
P(“1”と“0”)を定義する。最上位ビットからこ
れらの3つの信号の何れかがアクティブとなるので、そ
の信号から図10の3つの状態を持つ状態遷移図にした
がって調べていくと、桁落ちが起きるビットを特定でき
るというものである。
3:0>と、Fb<23:0>の補数(Fb<23:0
>のビット反転“Fbx<23:0>”+最下位ビット
“1”)を加算することである。即ち、 となる。この演算の結果では8ビット分の桁落ちが生じ
ている。桁落ち予測は減算と並行して行われるもので、
上記桁落ちビットを予測する。上記3つの状態を表す入
力信号G(共に“1”)とZ(共に“0”)とP
(“1”と“0”)でまず定義すると、次のようにな
る。(尚、以下に示したP、G、Zは、各状態を示して
いる。) 即ち、 となる。これらを最上位ビットから図10の状態遷移図
にしたがって順に調べていくと、“PPPP”ではP−
Stateを繰り返し、次の“G”でZ−stateに
遷移し、“ZZZZ”″でZ一Stateを繰り返し、
次の“P”で桁落ち発生を検出する。
teから桁落ちが起きうると予測される信号(桁落ち予
測ビット信号)のみを抽出して、そのうち最上位のビッ
トの信号をプラィオリティエンコーダで検出するという
ものである。これは、2数の仮数部の大小関係が既知で
あることを利用して桁落ち予測ビット信号をつくる論理
を簡単に実現している。減算の場合には、必ず結果が正
となるように、2つの仮数部の大小関係によって数を入
れ替えているので、G−stateへの遷移が存在しな
いようにしている。即ち、桁落ちが発生するのは、Z−
stateの状態にあって、上位ビットから順にZ→
P、またはZ→Gのような並びの時である。このことを
論理で実現すると下記のようになる。 EE<i>=(Z<i>andG<i−1>)or(Ζ
<i>andP<i−1>) このように連続する2ビットを調べることで、桁落ちビ
ット予測信号EE<i>を生成することができる。これ
が上記の減算の例で示しており、ここでは、EE<15
>=“1”となっているので、ここに桁落ちが起きると
予測する。この位置を実際に数値化する場合には、EE
<i>のうち、EE<i>=“1”となる最上位のもの
だけが意味をもつので、プライオリティエンコーダーを
通すことで、その位置を2進数表現で示すことができ
る。
の発生を調べているが、桁落ちの位置は下位ビットから
の桁上げ信号の伝搬によって変化する。上記の例では、
ビット<7>からの桁上げが伝搬しており、もし、この
桁上げが無いと、桁落ちビットの位置が1ビット右にず
れることになる。即ち、上記2つの方式では、桁落ち予
測に1ビットの予測誤差を含むこととなる。そこで、正
規化処理では、上記ような桁落ち予測回路の結果を用い
て左シフト処理を行うが、桁落ち予測回路の結果には1
ビットの予測誤差を含むため、正規化のための左シフト
動作に続いて、1ビット誤差補正シフトを行う必要があ
る。1ビットの予測誤差は、正規化された演算結果の最
上位ビットを調べることで検出でき、その結果を用いて
1ビット誤差補正シフトを行うか否かを判断する。ま
た、前記誤差を桁落ち予測処理と同時に検出する方式に
関して、特願平10−6026において提案されてい
る。次に浮動小数点加減算器の構成について説明する。
図11に示すのが従来の桁落ち予測回路、(先行0予測
回路)が使用される典型的な浮動小数点演算装置の構成
例である。この浮動小数点演算装置では、加減算の前に
指数部の比較を行い、その結果をもとに指数の小さい被
演算数の仮数部の右シフト(桁合わせ)を行う。更に減
算(加算)後に正規化(左シフト)を行う。
落ち予測回路は、加減算前の桁合わせ処理後の2つ被演
算数を用いて桁落ち予測を行う。比較回路1は、被演算
数の指数部の大小比較を行ない、その結果に基づいて、
一対のセレクタ2、3は被演算数の仮数部Fa<23:
0>、Fb<23:0>のいずれかを反転し、或いはい
ずれも反転しないで出力し、その後、右シフタ4は指数
の小さい被演算数の仮数部の右シフト(桁合わせ)を行
う。加減算器16は仮数部の桁合わせが行われた被演算
数の仮数部Fa<23:0>、Fb<23:0>の減算
を行い、その結果を左シフタ8に出力する。また、この
際、仮数部の桁合わせが行われたFa<23:0>、F
b<23:0>は桁落ち予測回路6及び大小比較回路7
に入力され、桁落ち予測が加減算器16の加減算と並行
して行われる。左シフタ8は、桁落ち予測回路6の桁落
ち予測結果であるシフト量制御信号を用いて、加減算器
16の減算結果を左シフト処理して正規化処理を行う。
桁落ち予測回路6の結果であるシフト量制御信号には1
ビットの予測誤差を含む。このため、誤差補正シフタ9
は正規化のための左シフト動作に続いて、予測誤差検出
回路10からの予測誤差信号に基づいて1ビット誤差補
正シフト(左シフト)を行う。予測誤差検出回路10は
桁落ち予測回路6の予測情報と大小比較回路7の比較情
報に基づいて前記1ビットの誤差を検出する。
のより高速化した構成例を示したブロック図である。本
例は、図13に示すように被演算数の指数部Exa、E
xbの差が2以上であるかどうかによって、処理のパス
を分けている。減算において指数部の差が2以上である
場合また、加算の場合は、右シフタ13、セレクタ1
4、15及び加減算器16により加減算処理が行われ
る。この場合、加減算器16による演算前に仮数部の桁
合わせが行なわれる。この時、演算後の仮数部はせいぜ
い1ビットの正規化処理で済むため、専用のバレルシフ
タを必要としなくなる。その結果、演算後の仮数部の正
規化処理にかかる時間が短縮できる(図13、図1
4)。一方、減算において、指数部の差が1以下の場合
には、減算器5による演算前の仮数部の桁合わせは、せ
いぜい1ビットで済むため、専用のバレルシフタを必要
としない。しかし、演算後の仮数部の正規化処理では、
最大24ビットの正規化処理が必要となるため、専用の
24ビットバレルシフタ(左シフタ8)が必要となる。
セレクタ2、3、減算器5、インバータ11、セレクタ
12、左シフタ8、誤差補正シフタ9のパスで、減算処
理が行われる。
演算系のパスをセレクタ17によって切り替えること
で、図14に示すように演算前と後における桁合わせ
と、正規化処理の時間を各々短くすることができ、より
高速に演算を行うことができる。
12に示した従来例の場合でも、2個の被演算数の指数
の大小関係によって、1対のセレクタ2、3で反転処理
を行った2個の被演算数を桁落ち予測回路6に入力して
桁落ち予測を行っている。このため、比較回路1による
指数の差を出力した後、セレクタ2、3による処理を行
うので、桁落ち予測回路6のシフト量制御信号の出力の
タイミングが遅くなるため、全演算処理の時間が増える
という問題があった。本発明は、上述の如き従来の課題
を解決するためになされたもので、その目的は、桁落ち
予測動作を被演算数の桁合わせのための指数部の大小比
較を待つことなく開始することにより、演算処理をより
高速化することができる浮動小数点演算装置を提供する
ことである。
に、本発明の好適な実施態様としての浮動小数点演算装
置は、2個の被演算数の指数部の比較によって前記2個
の被演算数のいずれか一方を1ビットシフトするか、両
方ともシフトせずそのまま出力するかを選択することに
より前記2個の被演算数の桁合わせを行う第1のセレク
ト回路と、前記桁合わせされた2個の被演算数の減算を
行う減算回路と、この減算回路の減算結果、又はその反
転結果のいずれかを選択する第2のセレクト回路と、こ
の第2のセレクト回路を通ってきた減算結果を正規化す
る左シフタ回路と、前記正規化された減算結果の桁落ち
予測誤差を補正する誤差補正回路とを有し、且つ前記2
個の被演算数の指数部の差が1、0、−1の時にのみ、
前記減算回路で演算を行う浮動小数点演算装置におい
て、前記第1のセレクト回路を通って桁合わせされる前
の2個の被演算数から前記減算結果の桁落ちビット予測
信号を発生して桁落ちビットの位置を求める桁落ち予測
回路と、この桁落ち予測回路の桁落ちビット予測信号か
ら桁落ち予測誤差を検出してそれを補正する補正信号を
得る予測誤差検出回路とを具備し、前記左シフタ回路は
前記予測誤差検出回路により求められた桁落ちビットの
位置により前記減算結果を左にシフトして正規化し、前
記誤差補正回路は前記予測誤差検出回路により得られた
補正信号により前記正規化された減算結果の前記桁落ち
予測誤差を補正することにある。
て、桁落ち予測回路は2個の被演算数の指数部の大小を
比較する前の被演算数、即ち、桁合わせをする前の2個
の被演算数を直接取り込んで桁落ち予測を行って、桁落
ち位置を求めると共に桁落ち予測の誤差を検出するた
め、減算回路による減算結果が出ると同時、又はそれ以
前に前記桁落ち予測による桁落ち位置が求まっている。
それ故、この桁落ち位置を用いて、減算結果が出ると遅
滞なく正規化処理を行うことができ、以降の桁落ち予測
誤差の補正も遅滞なく行うことができ、浮動小数点演算
の高速化を図ることができる。また、この発明に係る上
記浮動小数点演算装置において、前記桁落ち予測回路
は、前記2個の被演算数の指数部の差が1の時に、前記
減算結果の桁落ちビット予測信号を発生する第1の桁落
ちビット予測信号発生回路と、前記2個の被演算数の指
数部の差が−1の時に、前記減算結果の桁落ちビット予
測信号を発生する第2の桁落ちビット予測信号発生回路
と、前記2個の被演算数の指数部の差が0の時で仮数部
の差が正の時、前記減算結果の桁落ちビット予測信号を
発生する第3の桁落ちビット予測信号発生回路と、前記
2個の被演算数の指数部の差が0の時で仮数部の差が負
の時、前記減算結果の桁落ちビット予測信号を発生する
第4の桁落ちビット予測信号発生回路と、前記2個の被
演算数の指数部の差が1又は0により、前記第1の桁落
ちビット予測信号発生回路と前記第3の桁落ちビット予
測信号発生回路のいずれか一方より発生された桁落ちビ
ット予測信号を選択する第1の選択回路と、前記2個の
被演算数の指数部の差が−1又は0により、前記第2の
桁落ちビット予測信号発生回路と前記第4の桁落ちビッ
ト予測信号発生回路のいずれか一方より発生された桁落
ちビット予測信号を選択する第2の選択回路と、前記第
1の選択回路により選択された桁落ちビット予測信号か
ら桁落ちビット位置を求める第1の桁落ちビット位置決
定回路と、前記第2の選択回路により選択された桁落ち
ビット予測信号から桁落ちビット位置を求める第2の桁
落ちビット位置決定回路と、前記2個の被演算数の仮数
部の差の正負により、前記第1、第2の桁落ちビット位
置決定回路により求められた桁落ちビット位置のいずれ
か一方を選択して出力する第3の選択回路と、を具備す
ることにある。
装置において、前記桁落ち予測回路は、前記2個の被演
算数の指数部の差が1の時に、前記減算結果の桁落ちビ
ット予測信号を発生する第1の桁落ちビット予測信号発
生回路と、前記2個の被演算数の指数部の差が−1の時
に、前記減算結果の桁落ちビット予測信号を発生する第
2の桁落ちビット予測信号発生回路と、前記2個の被演
算数の指数部の差が0の時で仮数部の差の正負に拘りな
く有効な前記減算結果の桁落ちビット予測信号を発生す
る第3の桁落ちビット予測信号発生回路と、前記2個の
被演算数の指数部の差が1、−1又は0により、前記第
1の桁落ちビット予測信号発生回路、前記第2の桁落ち
ビット予測信号発生回路及び前記第3の桁落ちビット予
測信号発生回路のいずれか一方より発生された桁落ちビ
ット予測信号を選択する第1の選択回路と、前記第1の
選択回路により選択された桁落ちビット予測信号から桁
落ちビット位置を求める桁落ちビット位置決定回路と、
を具備することにある。この発明の他の好適な実施の形
態としての浮動小数点演算装置は、2つの被減算数の指
数の差の絶対値が2以上か、2未満かによって、演算す
る手順の異なる浮動小数点演算装置であり、前記浮動小
数点演算装置は、加算と2つの被減算数の指数の差の絶
対値が2以上の減算を行う加減算器と、2つの被減算数
の指数の差の絶対値が2未満の減算のみを行う減算器
と、2つの被演算数の指数部の差を計算する指数部比較
器と、指数部の差に応じて仮数部の桁合わせを行う右シ
フタと、前記2つの被演算数の仮数部の大小を比較する
大小比較器と、前記減算器における減算結果に起きる桁
落ち量を1ビット以内の誤差で予測し、その桁落ちの起
き得る位置を示す桁落ちビット予測信号を発生する桁落
ちビット予測信号発生回路、および、前記桁落ちビット
予測信号を2進数表現に数値化して桁落ち予測信号を出
力する桁落ちビット位置決定回路からなる桁落ち予測回
路と、前記桁落ち予測信号の誤差を検出する予測誤差検
出回路と、前記減算器の結果を左シフトして正規化する
左シフタと、予測誤差検出回路をもとに誤差を補正する
誤差補正シフタによって構成され、前記減算器は、前記
指数部比較器の結果により、前記2つの被演算数の仮数
または、何れか一方の仮数が右シフトされた値を入力と
して減算を行ってその結果を出力し、前記桁落ち予測回
路は、前記2つの被演算数の仮数を直接入力し、且つ前
記指数部比較器の結果を入力し、前記減算器の減算の結
果起きる桁落ちの予測量を前記左シフタに出力し、前記
予測誤差検出回路は、前記2つの被演算数の仮数を直接
人力し、且つ前記指数部比較器の結果を入力し、且つ前
記桁落ち予測回路から予測処理動作中の桁落ち予測信号
を入力し、且つ前記大小比較器の出力する仮数部の大小
比較結果を入力して、前記桁落ち予測回路の予測誤差の
有無を示す誤差検出信号を出力し、前記左シフタは、前
記桁落ち予測回路から出力された前記桁落ち予測信号を
もとに前記減算器から出力された前記減算結果を左シフ
トして正規化し、前記誤差補正シフタは、前記予測誤差
検出回路の出力した誤差検出信号をもとに前記左シフタ
が正規化した減算結果の誤差を補正することにある。
装置において、前記減算器の演算の結果生じる桁落ち量
を1ビット以内の誤差で予測する桁落ち予測回路は、前
記桁落ちビット予測信号発生回路の信号発生論理を、2
つの被演算数a、bの“n+1”ビット幅をもつ仮数を
Fa<n:0>、Fb<n:0>とし、指数をExa、
Exbとし、“and”を論理積、“or”を論理和、
“xor”排他的論理和、“not”論理否定として、
(I)Exa−Exb=1の時、2つの被演算数の連続
する2ビットを用いて、2つの被演算数の減算の結果に
おいて起きる桁落ちビットの位置の予測する論理回路に
おいて、i<nとなる整数iでは G<i>=(Fa<i>)and(not(Fb<i+
1>)) P<i>=(Fa<i>)xor(not(Fb<i+
1>)) Z<i>=(not(Fa<i>))and(Fb<i
+1>) 更に、G<n>=1、Z<n>=P<n>=0、 Z<−1>=Fb<0>、G<−1>=0、P<−1>
=not(Fb<0>) とし、桁落ちビット予測信号EEを、 EE<i>=(not(P<i>))and(not
(Z<i−1>))とし、 (IIa)Exa−Exb=0且つFa−Fb>0を仮定
した時、2つの被演算数の連続する2ビットを用いて、
2つの被演算数の演算の結果において起きる桁落ちビッ
トの位置の予測する論理回路において、i<nとなる整
数iでは G<i>=(Fa<i>)and(not(Fb<i
>)) P<i>=(Fa<i>)xor(not(Fb<i
>)) Z<i>=(not(Fa<i>))and(Fb<i
>) 更に、P<n>=1、G<n>=Z<n>=0、 Z<−1>=0、G<−1>=0、P<−1>=1 とし、桁落ちビット予測信号EEを、 EE<i>=(not(P<i>))and(not
(Z<i−1>))とし、 (IIb)Exa−Exb=0且つFa−Fb<0を仮定
した時、2つの被演算数の連続する2ビットを用いて、
2つの被演算数の減算の結果において起きる桁落ちビッ
トの位置の予測する論理回路において、i<nとなる整
数iでは G<i>=(Fa<i>)and(not(Fb<i
>)) P<i>=(Fa<i>)xor(not(Fb<i
>)) Z<i>=(not(Fa<i>))and(Fb<i
>) 更に、P<n>=1、G<n>=Z<n>=0、 Z<−1>=0、G<−1>=0、P<−1>=1 とし、桁落ちビット予測信号EEを、 EE<i>=(not(P<i>)and(not(G
<i−1>))とし、 (III)Exa−Exb=−1の時、2つの被演算数の
連続する2ビットを用いて、2つの被演算数の減算の結
果において起きる桁落ちビットの位置の予測する論理回
路において、i<nとなる整数iでは G<i>=(not(Fb<i>))and(Fa<i
+1>) P<i>=(not(Fb<i>))xor(Fa<i
十1>) Z<i>=Fb<i>and(not(Fa<i+1
>)) 更に、Z<n>=1、G<n>=P<n>=0、 G<−1>=Fa<0>、Z<−1>=0、P<−1>
=not(Fa<0>) とし、桁落ちビット予測信号EEを、 EE<i>=(not(P<i>))and(not
(G<i−1>)) とし、桁落ちビット予測信号EEは、Exa−Exbの
値に応じて、上記論理の何れかより選択され、前記桁落
ちビット位置決定回路は、上記仮数部の差が正、または
正と仮定した場合と、負または負と仮定した場合の2通
りの場合に各々備え、各々の場合においてEE<i>=
“1”となる最大のiの値を2進数表現で表す桁落ちビ
ット位置を出力し、前記大小比較回路により出力される
Fa−Fbの結果をもとに、上記桁落ちビット位置の何
れか一方を選択し、前記桁落ち予測誤差検出回路は、前
記桁落ちビット位置決定回路と共に、G(−1)<k−
1>、Z(−1)<k−1>を決定する論理を有し、こ
の時、 P(k)<k>=P<k> G(k)<k>=G<k> Z(k)<k>=Z<k> P(k)<k+1>=(P(k+1)<k+1>)an
d(P(k)<k>) G(k)<k+1>=(G(k+1)<k+1>)or
{(P(k+1)<k+1>)and(G(k)<k
>)} Z(k)<k+1>=(Z(k+1)<k+1>)or
{(P(k+1)<k+1>)and(Z(k)<k
>)} P(m)<k>=(P(n)<k>)and(P(m)
<n−1>) (m<n<k) G(m)<k>=(G(n)<k>)or{(P(n)
<k>)and(G(m)<n−1>)} (m<n<
k) Z(m)<k>=(Z(n)<k>)or{(P(n)
<k>)and(Z(m)<n−1>)} (m<n<
k) とし、前記大小比較回路により出力されるFa−Fbの
結果をもとに、G(−1)<k−1>、Z(−1)<k
−1>の何れか一方を選択することにある。
装置において、前記減算器の減算の結果生じる桁落ち量
を1ビット以内の誤差で予測する桁落ち予測回路は、前
紀桁落ちビット予測信号発生回路の信号発生論理を、2
つの被演算数a、bの“n+1”ビット幅をもつ仮数仮
数をFa<n:0>、Fb<n:0>とし、指数をEx
a、Exbとし、“and”を論理積、“or”を論理
和、“xor”排他的論理和、“not”論理否定とし
て、(I)Exa−Exb=1の時、2つの被演算数の
連続する2ビットを用いて、2つの被演算数の減算の結
果において起きる桁落ちビットの位置の予測する論理回
路において、i<nとなる整数iでは G<i>=(Fa<i>)and(not(Fb<i十
1>)) P<i>=(Fa<i>)xor(not(Fb<i+
1>)) Z<i>=(not(Fa<i>))and(Fb<i
十1>) 更に、G<n>=1、Z<n>=P<n>=0、 Z<−1>=Fb<0>、G<−1>=0、P<−1>
=not(Fb<0>) とし、桁落ちビット予測信号EEを、EE<i>=(n
ot(P<i>))and(not(Z<i−1>))
とし、 (II)Exa−Exb=0の時、2つの被演算数の連続
する3ビットを用いて、2つの被演算数の減算の結果に
おいて起きる桁落ちビットの位置の予測する論理回路に
おいて、i<nとなる整数iでは G<i>=(Fa<i>)and(not(Fb<i
>)) P<i>=(Fa<i>)xor(not(Fb<i
>)) Z<i>=(not(Fa<i>))and(Fb<i
>) 更に、P<n>=1、G<n>=Z<n>=0、 Z<−1>=0、G<−1>=0、P<−1>=1 とし、桁落ちビット予測信号EEを、 EE<i>=[P<i+1>and{(Z<i>and
(not(G<i−1>)))or(G<i>and
(not(Z<i−1>)))}]or[not(P<
i+1>)and{(Z<i>and(not(Z<i
−1>)))or(G<i>and(not(G<i−
1>)))}] とし、(III)Exa−Exb=−1の時、2つの被演
算数の連続する2ビットを用いて、2つの被演算数の減
算の結果において起きる桁落ちビットの位置の予測する
論理回路において、i<nとなる整数iでは G<i>=(not(Fb<i>))and(Fa<i
+1>) P<i>=(not(Fb<i>))xor(Fa<i
+1>) Z<i>=(Fb<i>)and(not(Fa<i+
1>)) 更に、Z<n>=1、G<n>=P<n>=0、 G<−1>=Fa<0>、Z<−1>=0、P<−1>
=not(Fa<0>) とし、桁落ちビット予測信号EEを、 EE<i>=(not(P<i>))and(not
(G<i−1>)) とし、桁落ちビット予測信号EEは、Exa−Exbの
値、−1、+1、0に応じて、上記論理の何れかより選
択され、前記桁落ちビット位置決定回路は、EE<i>
=“1”となる最大のiの値を2進数表現で表す桁落ち
ビット位置を出力し、前記桁落ち予測誤差検出回路は、
前記桁落ちビット位置決定回路と共に、G(−1)<k
−1>、Z(−1)<k−1>を決定する論理を有し、
この時、 P(k)<k>=P<k> G(k)<k>=G<k> Z(k)<k>=Z<k> P(k)<k+1>=(P(k+1)<k+1>)an
d(P(k)<k>)G(k)<k+1>=(G(k+
1)<k+1>)or{(P(k+1)<k+1>)a
nd(G(k)<k>)} Z(k)<k+1>=(Z(k+1)<k+1>)or
{(P(k+1)<k+1>)and(Z(k)<k
>)} P(m)<k>=(P(n)<k>)and(P(m)
<n−1>) (m<n<k) G(m)<k>=(G(n)<k>)or{(P(n)
<k>)and(G(m)<n−1>)} (m<n
<k) Z(m)<k>=Z(n)<k>or{(P(n)<k
>)and(Z(m)<n−1>)} (m<n<
k) となり、前記大小比較回路により出力されるFa−Fb
の結果をもとに、G(−1)<k−1>、Z(−1)<
k−1>の何れか一方を選択することを特徴とする。
に基づいて説明する。図1は、本発明の浮動小数点演算
装置の第1の実施の形態を示したブロック図である。但
し、従来例と同様の部分には同一符号を用い、且つ適宜
その説明を省略する。浮動小数点演算装置は、2個の被
演算数の指数部の大小を演算する比較回路1、2個の被
演算数のいずれか一方を右シフトするか、いずれもシフ
トしないで出力するかを選択するセレクタ2、3、桁合
わせ後の2個の被演算数の減算を行う減算器5、桁落ち
ビット予測信号発生回路61と桁落ちビット位置決定回
路62とを備え減算結果の桁落ちを予測する桁落ち予測
回路60、2個の被演算数の仮数部の大小を比較する仮
数部大小比較回路7、減算結果を左シフトして正規化す
る左シフタ8、正規化した減算結果の1ビット誤差を補
正する誤差補正シフタ9、桁落ち予測の1ビットの誤差
を検出する予測誤差検出回路100、減算器5の減算結
果を反転するインバータ11、減算器5の減算結果とそ
の反転結果のいずれか一方を選択するセレクタ12、加
減算器16側と減算器5側の出力のいずれか一方を選択
するセレクタ17を有している。
号発生回路61と桁落ちビット位置決定回路62の詳細
構成例を示したブロック図である。桁落ちビット予測信
号発生回路61は桁落ちビット予測信号発生回路61
A、桁落ちビット予測信号発生回路61B、桁落ちビッ
ト予測信号発生回路61C、桁落ちビット予測信号発生
回路61Dからなっている。そして、セレクタ63はセ
レクタ63A、63Bからなり、セレクタ63Aは、桁
落ちビット予測信号発生回路61A、桁落ちビット予測
信号発生回路61Bの出力のいずれかを選択し、セレク
タ63Bは、桁落ちビット予測信号発生回路61C、桁
落ちビット予測信号発生回路61Dの出力のいずれかを
選択する。桁落ちビット位置決定回路62は桁落ちビッ
ト位置決定回路62A、桁落ちビット位置決定回路62
Bから成っている。予測誤差検出回路100は予測誤差
検出回路100Aと予測誤差検出回路100Bから成っ
ている。セレクタ64は、桁落ちビット位置決定回路6
2Aと桁落ちビット位置決定回路62Bのいずれかの出
力を選択する。セレクタ65は、予測誤差検出回路10
0Aと予測誤差検出回路100Bのいずれかの出力を選
択する。
の形態では、単精度の浮動小数点演算装置を例にし、減
算a−bを行うものとして説明する。2つの被演算数
a、bの仮数をFa<23:0>、Fb<23:0>と
し、指数をExa、Exbとする。但し、Fa<23
>、Fb<23>は、浮動小数点形式の数値表現におけ
る暗黙の“1”を表し、本例では、Fa<23>=Fb
<23>=1として、以下説明を行う。また、加算また
は、指数部の差が2以上の減算を行う場合には、演算後
の仮数部の桁落ちはせいぜい1ビットの範囲なので、桁
落ち予測回路は必要としない。そこで、以下の説明で
は、指数部の差が1以下の減算を前提とし、減算器5側
のパスについて説明する。本実施の形態の桁落ち予測回
路60は、セレクタ2、3の処理を受ける前の、即ち桁
合わせ前の被演算数が入力されている。これにより、従
来の桁落ち予測回路や予測誤差検出回路への入力信号
は、比較回路1及びセレクタ2、3による指数部の比較
処理が終了しないと確定しなかったが、本例では、比較
回路1による指数部の比較処理の開始と同時に、桁落ち
予測回路60の動作も開始させることができ、これによ
って指数部の比較処理と並列して桁落ち予測を行うこと
ができる。
検出回路100の概略動作を説明しておく。図2にて、
例えば、Fa<23:0>、Fb<23:0>等の2個
の桁合わせ前の被演算数は、桁落ちビット予測信号発生
回路61A〜桁落ちビット予測信号発生回路61Dに入
力され、桁落ちビット予測信号が発生される。この時、
セレクタ63A、63Bは2個の被演算数の指数部の大
小により、桁落ちビット予測信号発生回路61A〜桁落
ちビット予測信号発生回路61Dのいずれか一つを選択
して、桁落ちビット位置決定回路62A、桁落ちビット
位置決定回路62Bのいずれかに選択した桁落ちビット
予測信号を出力する。その後、桁落ちビット位置決定回
路62A、62Bから出力された桁落ちビットの位置決
定信号のいずれか一方が、被演算数の仮数部の大小によ
りセレクタ64で選択されて、図1の左シフタ8に出力
される。例えば、2個の被演算数の指数部の差が+1
で、仮数部の差が正の場合、桁落ちビット予測信号発生
回路61Aで発生された桁落ちビット予測信号から桁落
ちビット位置決定回路62Aにより決定された桁落ちビ
ット位置信号(SHB<4:0>)がセレクタ64から
左シフタ8に出力される。
タ63Aの選択信号と、桁落ちビット位置決定回路62
Aの桁落ちビット決定情報により桁落ちビット予測に誤
差があるかどうかを検出する。同様に、予測誤差検出回
路100Bはセレクタ63Bの選択信号と、桁落ちビッ
ト位置決定回路62Bの桁落ちビット決定情報により桁
落ちビット予測に誤差があるかどうかを検出する。その
後、予測誤差検出回路100A、100Bの桁落ちビッ
ト予測誤差の検出情報の一方がセレクタ65により2個
の被演算数の仮数部の差の正負によって選択されて、図
1の誤差補正シフタ9に出力される。まず、桁落ちビッ
ト予測信号発生回路61A〜61Dを4つ用意するのは
以下の理由による。桁落ちビット予測信号発生回路61
は、比較するビット列の連続する2ビットを調べ、そこ
で桁落ちが起きるかどうかを予測する。この桁落ちビッ
ト予測信号発生回路61を使用する場合、前提として、
比較する被演算数の仮数の大小関係が既知であることが
要求される。指数の差が“+1”または、“−1”であ
る場合には、指数の小さい方の仮数が必ず1ビット右シ
フトされる。従って、仮数の大小関係も明らかとなるの
で、その大小関係を考慮して、桁落ちビット予測信号発
生回路61A、61Cにこれら仮数のビット列を入力す
る。
の大小関係はこれらの大小比較を行わないと判定できな
い。しかし、仮数部の大小比較処理を行うと、その分の
処理時間が加算され高速化の妨げとなる。そこで、本実
施の形態では、大小関係を仮定した2種類の桁落ち予測
を行う。即ち、2つの桁落ちビット予測信号発生回路6
1B、61Dを用意し、これらに各々Fa≧Fb、Fb
≧Faの場合を仮定して、被演算数を入力する。図2の
例では、上部2ブロックの桁落ちビット予測信号発生回
路61A及び61Bと、桁落ちビット位置決定回路62
A及び予測誤差検出回路100Aが、仮数の差が正であ
ること、又は正であることを仮定したパスとなる。一
方、図2の下部2ブロックの桁落ちビット予測信号発生
回路61C及び61Dと桁落ちビット位置決定回路62
B及び予測誤差検出回路100Bが、仮数部の差が負で
あること、又は負であることを仮定したパスである。セ
レクタ63Aは、被演算数の指数部の差を選択信号とし
て、2つの桁落ちビット予測信号発生回路61A、61
Bからの出力信号を選択する。セレクタ63Bは、被演
算数の指数部の差を選択信号として、2つの桁落ちビッ
ト予測信号発生回路61C、61Dからの出力信号を選
択する。
つの桁落ちビット予測信号発生回路61A、61Bから
の出力信号の選択は、指数部の差が“0”か“+1”か
によって決定される。ここで選択されるのは、桁落ちビ
ット予測信号EE<i>と、P<i−1>及び、Z<i
−1>信号である。但し、(i=0〜23) P、Z信
号は予測誤差検出に使用する。通常、予測誤差検出に
は、P、Gの組、或いはP、Zの組の2種類の信号のみ
を使用する。回路の対称性を考慮して仮数部の差が正又
は正と仮定した場合には、P、Zの組を使用し、仮数部
の差が負又は負と仮定した場合にはP、Gの組を使用し
ている。桁落ちビット位置決定回路62A、62Bにお
いて、桁落ちビット予測信号発生回路61A〜61Dが
発生した桁落ちビット予測信号を数値化すると同時に、
予測誤差検出回路100A、100Bにおいて予測誤差
を検出する。桁落ちビット位置決定回路62A、62B
及び予測誤差検出回路100A、100Bを各々2つ用
意しているのは、指数部の差が“0”場合を考慮してい
る。即ち、指数部の差が“0”場合には、実際に仮数部
の差を比較せずに、桁落ちビット予測信号生成前には、
仮数部の大小関係が判らない。そのため、仮数部の大小
関係を仮定して、桁落ちビット予測信号発生回路61
B、61Dの2種類の桁落ちビット予測信号を生成す
る。桁落ちビット位置決定回路62A、62B及び予測
誤差検出回路100A、100Bも、その各々に対応し
たものである。
合には、一方の仮数部が必ず右シフトされるので仮数の
大小関係が判明する。その結果、桁落ちビット位置決定
回路62及び予測誤差検出回路100も各々1つで済
む。そして、指数部の差が“0”場合と桁落ちビット位
置決定回路62及び予測誤差検出回路100を共有する
構成とするように考慮している。即ち、本実施の形態で
は、指数部の差が“+1”の場合と指数部の差が“0”
且つ仮数部の差が正と仮定した場合で、桁落ちビット位
置決定回路62A及び予測誤差検出回路100Aを共有
し、指数部の差が“−1”の場合と指数部の差が“0”
且つ仮数部の差が負と仮定した場合で、桁落ちビット位
置決定回路62B及び予測誤差検出回路100Bを共有
する。セレクタ63Aとセレクタ63Bは、これらを共
有するためにパスを切り替える役目を果たす。セレクタ
63Aにおいては、指数部の差が“+1”か“0”かに
よってパスを選択し、セレクタ63Bにおいては、指数
部の差が“−1”か“0”かによってパスを選択する。
セレクタ64は、2つの桁落ちビット位置決定回路62
A、62Bから出力された桁落ちビット量SHB<4:
0>(21、22)のうち一方を選択し、セレクタ65
は予測誤差検出回路100A、100Bから出力された
予測誤差検出信号のうち一方を選択する。
64とセレクタ65は最終的な桁落ちビット量SHB<
4:0>(25)と予測誤差検出信号を決定する。ここ
では仮数部の差の正負としたが、次の示すようにこれ
と、指数部の差が“+1”を示す信号、或いは“−1”
を示す信号の論理和を制御信号とすることができる。 (上位ブロック選択)=(仮数部の差正)or(指数部
の差が“+1”) (下位ブロック選択)=(仮数部の差負)or(指数部
の差が“−1”) 次に、図3および図4を参照して図2に示した各ブロッ
クの構成と動作について更に詳細に説明する。 [1]桁落ちビット予測信号発生回路 まず、図2に示した桁落ちビット予測信号発生回路につ
いて説明する。ここでは、2つの浮動小数点数a、bの
減算a−bを前提に考える。尚、Exa、Exbは、各
々a、bの指数部を示し、Fa<22:0>、Fb<2
2:0>は、a、bの仮数部を示す。通常、暗黙の
“1”を含めて、Fa<23:0>、Fb<23:0>
をa、bの仮数とする。尚、FaX<23:0>、Fb
X<23:0>、GX<23:0>、PX<23:0>
及びZX<23:0>は、各々Fa<23:0>、Fb
<23:0>、G<23:0>、P<23:0>及びZ
<23:0>のビット反転論理である。
の絶対値が2未満の場合を考えているので、以下のよう
に指数部の差によって分けて論理を生成する。 (I)指数部の差が+1の時(Exa−Exb=1の
時)、Fbを1ビット右シフトして演算を行う必要があ
るので、次のように信号を定義する。 i<23において G<i>=(Fa<i>)and(FbX<i+1>) P<i>=(Fa<i>)xor(FbX<i+1>) Z<i>=(FaX<i>)and(Fb<i+1>) 更に、G<23>=1、Z<23>=P<23>=0 Z<−1>=Fb<0>、G<−1>=0、P<−1>
=FbX<0> とする。減算結果が必ず正となるので、 EE<i>=(PX<i>)and(ΖX<i−1>)
(EE<i>=LZ<i>と論理を定義した。) (IIa)指数部の差が0且つ仮数部の差が正の時(Ex
a−Exb=0且つFa−Fb>0を仮定した時)、こ
の時は、仮数部のシフトを必要としないので、次のよう
に信号を定義する。 i<23において G<i>=(Fa<i>)and(FbX<i>) P<i>=(Fa<i>)xor(FbX<i>) Ζ<i>=(FaX<i>)and(Fb<i>) 更に、P<23>=1、G<23>=Z<23>=0、 Z<−1>=0、G<−1>=0、P<−1>=1 とする。減算結果が正となることを前提としているの
で、桁落ちビット予測信号は、 EE<i>=(PX<i>)and(ZX<i−1>)
(EE<i>=LZ<i>と論理を定義した。) (IIb)指数部の差が0且つ仮数部の差が負の時(Ex
a−Exb=0且つFa−Fb<0を仮定した場合の
時)、この時は、仮数部のシフトを必要としないので、
つぎのように信号を定義する。
で、桁落ちビット予測信号は、 EE<i>=(PX<i>)and(GX<i−1>)
(=LG<i>と論理を定義した。) 尚、(IIa)と(IIb)では、G<i>、P<i>、Z
<i>の生成論理が同じなので、これらを共有すること
が可能である。 (III)指数部の差が−1の時(Exa−Exb=−1
の時)、Faを1ビット右シフトして演算を行う必要が
あるので、次のように信号を定義する。 i<23において G<i>=(FbX<i>)and(Fa<i+1>) P<i>=(FbX<i>)xor(Fa<i+1>) Z<i>=(Fb<i>)and(FaX<i+1>) 更に、Ζ<23>=1、G<23>=P<23>=0、 G<−1>=Fa<0>、Z<−1>=0、P<−1>
=FaX<0> とする。
ト予測信号は EE<i>=(PX<i>)and(GX<i−1>)
(=LG<i>と論理を定義した。) [2]セレクタ63A、63B 指数部の比較を行っている間、上記の桁落ちビット予測
信号発生回路61A、61B、61C、61Dにより、
LZ<i>、LG<i>、P<i−1>、G<i−1
>、Z<i−1>を発生する。そして、図2に示すよう
に、指数部の比較結果により該当する信号を選択する。
即ち、図2では予め指数部の差が“+1”又は指数部の
差が0且つ仮数部の差が正(Exa−Exb=+1とE
xa−Exb=0且つFa>Fb)となる時の各々LΖ
<i>、P<i−1>、Ζ<i−1>を2種類用意し、
この内Exa−Exbの結果により、上記の各々の一方
を選択する。他方、予め指数部の差が“−1”または指
数部の差が0且つ仮数部の差が負(Exa−Exb=−
1とExa一Exb=0且つFa<Fb)となる時の各
々LG<i>、P<i−1>、G<i−1>を2種類用
意し、このうちExa−Exbの結果により、上記の各
々の一方を選択する。 [3]桁落ちビット位置決定回路 上記桁落ちビット予測信号のうち、値が“1”となった
ビットの内の最上位ビットが桁落ちの起きるビットであ
る。そこで桁落ちビット位置決定回路62A、62B
は、プライオリティエンコーダを有し、これにより桁落
ちが起きると予測されたビットを決定する。
により、桁落ち予測ビットの位置が2進数表現に数値化
される。その位置は5ビットの数値SHB<4:0>に
よって表される。 [4]予測誤差検出回路 予測誤差検出回路100A、100Bは、上記桁落ちビ
ット位置決定回路62A、62Bにより桁落ちが起きる
と予測されたビットにおけるキャリー(減算なのでボロ
ーということもある。)信号を特定し、この信号をもと
に予測誤差検出を行う。予測誤差検出回路100は、桁
落ちビット位置決定回路62の中間論理を使用する。即
ち、予測誤差検出回路100でのP信号とG信号(また
はZ信号)の選択を、上記桁落ちビット位置決定回路6
2A、62Bの中間論理を用いて行い、前記桁落ちビッ
卜決定回路62A、62Bが特定したビットにおけるキ
ャリー信号を最終的に選択するものである。まず、回路
の動作を説明する前に、説明で使用する信号の論理につ
いて以下に定義する。 P(k)<k>=P<k> G(k)<k>=G<k> Z(k)<k>=Ζ<k> P(k)<k+1>=(P(k+1)<k+1>)an
d(P(k)<k>) G(k)<k十1>=(G(k+1)<k+1>)or
{(P(k+1)<k+1>)and(G(k)<k
>)} Z(k)<k+1>=(Z(k+1)<k+1>)or
{(P(k+l)<k+1>)and(Ζ(k)<k
>)} P(m)<k>=(P(n)<k>)and(P(m)
<n−1>) (m<n<k) G(m)<k>=(G(n)<k>)or{(P(n)
<k>)and(G(m)<n−1>)} (m<n
<k) Ζ(m)<k>=(Ζ(n)<k>)or{(P(n)
<k>)and(Z(m)<n−1>)} (m<n
<k) この時、 (P(m)<k>)and(G(m)<k>)=G
(m)<k>and(Z(m)<k>)=(P(m)<
k>)and(Z(m)<k>)=0 (P(m)<k>)or(G(m)<k>)or(Z
(m)<k>)=1 となる。
(m)<k>は、通常、桁上げ先見加算器におけるビッ
ト“m”からビット“k”までの桁上げ発生信号、桁上
げ伝搬信号、ゼロ信号であることが判る。図3は、「4
ビットの桁落ちビット位置決定回路+予測誤差検出回
路」の構成である。これをもとにまず4ビットの桁落ち
ビット予測信号、P信号とG信号(Z信号)の生成論理
を説明する。ここで、Z信号の説明は、回路の対称性よ
りG信号の説明をもって類推可能なので、これに代える
ものとする。まず、4ビットの桁落ちビット予想信号を
EE<i+3:i>とし、P、G信号をP<i+2:i
−1>、G<i+2:i−1>とする。4ビットの桁落
ちビット決定回路は、4ビットのプライオリティエンコ
ーダと同等の論理を有する。4ビットのプライオリティ
エンコーダの論理は、EEXをEEの論理反転とする
と、プライオリティエンコーダ301とプライオリティ
エンコーダ302及び論理和回路303において、 SHB(i)<0>={(EE<i+1>)and(E
EX<i+2>)}or(EE<i+3>) SHB(i)<1>=(EE<i+2>)or(EE<
i+3>) OR(i)=(EE<i>)or(EE<i+1>)o
r(EE<i+2>)or(EE<i+3>) となる論理で生成される。 予測誤差検出論理において
は、もし、第Kビット(i≦K≦i+3)がEE<K>
=“1”となる最上位ビットだとすると、P信号、G信
号では、P(i−1)<K−1>、G(i−1)<K−
1>が出力される。もし、i≦K≦i+3において、い
ずれもEE<K>=“0”のときには、OR(i)=
“0”を出力し、P信号、G信号ではP(i−1)<i
−1>、G(i−1)<i−1>が出力される。
ブロック内においては第“i−1”ビットからの伝播を
考慮してつくられる。すなわち、 P(i−1)<i−1>=P<i−1> G(i−1)<i−1>=G<i−1> P(i−1)<i> =(P<i>)and(P<i
−1>) G(i−1)<i> =(G<i>)or{(P<i
>)and(G<i−1)} P(i−1)<i+1>=(P<i+1>)and(P
(i−1)<i>) G(i−1)<i+1>=(G<i+1>)or{(P
<i+1>)and(G(i−1)<i>)} P(i−1)<i+2>=(P(i+1)<i+2>)
and(P(i−1)<i>) G(i−1)<i+2>=(G(i+1)<i+2>)
or{(P(i+1)<i+2>)and(G(i−
1)<i>)} となる。上記の論理を実現するために、図3に示す構成
では2ビット毎に階層化させている。また、桁落ちビッ
ト予想信号EE<i+3;i+1>を選択信号に使用す
ることで、選択動作とキャリー伝播を同時に行う。すな
わち、4ビットの予想誤差検出回路に相当する部分が、
「キャリー伝播回路」403、「キャリー伝播回路+選
択回路」304、402である。
と、「キャリー伝播回路+選択回路」304において、
EE<i+1>を選択信号として、出力されるP、G信
号35は、 ・EE<i+1>=“1”のとき (L=i+1) P(i−1)<L> =(P<i>)and(P<i
−1>) G(i−1)<L> =(G<i>)or{(P<i
>)and(G<i−1)} ・EE<i+1>=“0”のとき(L=i) P(i−1)<L> =P<i−1> G(i−1)<L> =G<i−1> となる。同様に、第i+2ビットと第i+3ビットに着
目すると、「キャリー伝播回路+選択回路」304にお
いて、EE<i+3>を選択信号として、出力される
P、G信号36は、 ・EE<i+3>=“1”のとき(H=i+3) P(i+1)<H> =(P<i+2>)and(P
<i+1>) G(i+1)<H> =(G<i+2>)or{(P
<i+2>)and(G<i+1>)} ・EE<i+3>=“0”のとき(H=i+2) P(i+1)<H> =P<i+1> G(i+1)<H> =G<i+1> となる。つぎに次段の「キャリー伝播回路+選択回路」
402において、SHB(i)<1>を選択信号とし
て、このブロックから出力されるP、G信号は、 ・SHB(i)<1>=“1”のとき、 (K=
H) P(i−1)<K> =(P(i+1)<H>)an
d(P(i−1)<i>) G(i−1)<K> =(G(i+1)<H>)or
{(P(i+1)<H>)and(G(i−1)<i
>)} ・SHB(i)<1>=“0”のとき、 (K=L) P(i−1)<K> =P(i−1)<L> G(i−1)<K> =G(i−1)<L> を生成する。
ビットから第i+2ビットのキャリーを伝播・生成させ
る。ここでも2ビット毎に階層化させている。これら
「キャリー伝播回路」403により、P(i−1)<i
+2>、G(i−1)<i+2>39を生成する。図4
は、「8ビットの桁落ちビット位置決定回路(プライオ
リティエンコーダ)+予測誤差検出回路」の構成であ
る。尚、図5の「8ビットの桁落ちビット位置決定回路
(プライオリティエンコーダ)+予測誤差検出回路」、
図6の「8ビットの桁落ちビット位置決定回路(プライ
オリティエンコーダ)+予測誤差検出回路」も同様の機
能を持つが、構成上不要なブロックは一部削除してあ
る。そこで、ここでは、図4を用いて説明する。「8ビ
ットの桁落ちビット位置決定回路」は、2つの「4ビッ
トの桁落ちビット位置決定回路+予測誤差検出回路」4
01と「選択回路」402、「キャリー伝播回路」40
3、「キャリー伝播回路+選択回路」404、「論理和
回路」405により構成されている。8ビットの桁落ち
ビット予測信号をEE<i+7:i>とし、P、G信号
をP<i+6:i−1>、G<i+6:i−1>とす
る。(この場合i=8であり、i=0、16の場合が、
図5と図6である。) まず、2つの「4ビットの桁落ちビット位置決定回路+
予測誤差検出回路」401の内上位のブロックの出力を
SHB(H)<1:0>43、OR(H)、P(i+
3)<H−1>、G(i+3)<H−1>44とする。
但し、i+4≦H≦i+7で、上位ブロックでは第Hビ
ットがEE<H>=“1”となった最上位ビットとす
る。
置決定回路+予測誤差検出回路」の出力をSHB(L)
<1:0>41、OR(L)、P(i−1)<L−1
>、G(i−1)<L−1>42とすることができる。
この時、i≦L≦i+3で、下位のブロックでは、第L
ビットがEE<L>=“1”となった最上位ビットとす
る。更に、2つの「4ビットの桁落ちビット位置決定回
路+予測誤差検出回路」401は、キャリー伝播のため
に、各々P(i+3)<i+6>、G(i+3)<i+
6>46とP(i−1)<i+2>、G(i−1)<i
+2>45を出力する。「選択回路」402は、OR
(H)を選択制御信号として、SHB(H)<1:0>
43とSHB(L)<1:0>41の何れかを選択す
る。もし、OR(H)=“1”であれば、上位ブロック
の桁落ちビット予測信号において“1”が入力されたこ
とになるので、SHB(H)<1:0>が選択される。
尚、この時、SHB(H)<2>=OR<H>として、
SHB(H)<2:0>がブロツクの出力信号となる。
一方、OR(H)=“0”であれば、SHB(L)<
1:0>が選択される。この時もSHB(L)<2>=
OR<H>として、SHB(L)<2:0>がブロック
の出力信号SHB(8)<2:0>となる。
は、上記と同様の方法でブロックが特定したビットに対
応したP、G信号を選択する。即ち、OR(H)=
“1”であれば、上位ブロックからの出力信号P(i+
3)<H−1>、G(i+3)<H−1>が選ばれる。
但し、この場合には第“i−1”ビットからのキャリー
の伝播を反映させるために、 P(i−1)<H−1>=(P(i+3)<H−1>)
and(P(i−1)<i+2>) G(i−1)<H−1>=(G(i+3)<H−1>)
or{(P(i+3)<H−1>)and(G(i−
1)<i+2>)}とする。 一方、OR(H)=“0”であれば、P(i−1)<L
−1>、G(i−1)<L−1>が選ばれる。この場合
には、第“i−1”ビットからのキャリーの伝播となっ
ているのでそのまま出力する。「キャリー伝播回路」4
03は、ブロック間のキャリーの伝播信号として第“i
−1”ビットから第“i+6”ビットまでのP、G信号
を生成する。即ち、 P(i−1)<i+6>=(P(i+3)<i+6>)
and(P(i−1)<i+2>) G(i−1)<i+6>=(G(i+3)<i+6>)
or{(P(i+3)<i+6>)and(G(i−
1)<i+2>)} として、生成する。
決定回路(プライオリティエンコーダ)+予測誤差検出
回路」の構成である。基本構成は、3つの「8ビットの
桁落ちビット位置決定回路+予測誤差検出回路A、B、
C」701、2つの「選択回路B、C」702、70
3、「キャリー伝播回路」、2つの「キャリー伝播回路
+選択回路」404と「論理和回路」405により構成
されている。但し「選択回路B」702は、ビット幅が
3ビットであるのに対し、「選択回路C」703は、ビ
ット幅が4ビットである。「8ビットの桁落ちビット位
置決定回路+予測誤差検出回路」は、下位ビットから
A、B、Cと割り当てられており、「8ビットの桁落ち
ビット位置決定回路+予測誤差検出回路」701Aへ
は、P<6:-1>、G<6:-1>またはZ<6:-1
>、とEE<7:0>が入力信号となり、「8ビットの
桁落ちビット位置決定回路+予測誤差検出回路」701
Bへは、P<14:7>、G<14:7>またはZ<1
4:7>、とEE<15:8>が入力信号となり、「8
ビットの桁落ちビット位置決定回路+予測誤差検出回
路」701Cへは、P<22:15>、G<22:15
>またはZ<22:15>、とEE<23:16>が入
力信号となる。
上位ビットの位置を基準に桁落ちビットの位置を計算す
る。そのため、ブロックは上位16ビットと下位8ビッ
トに更に分けられる。即ち、上位16ビットにおいて
は、「16ビットの桁落ちビット位置決定回路+予測誤
差検出回路」を構成していることになる。(破線より下
の部分)16ビットの桁落ちビット予測信号をEE<2
3:8>とし、P、G信号をP<22:7>、G<2
2:7>とする。まず、上位のブロック「8ビットの桁
落ちビット位置決定回路+予測誤差検出回路」701C
の出力をSHB(16)<2:0>、OR(16)、P
(15)<C−1>、G(15)<C−1>とする。但
し、16≦C≦23で、上位ブロックでは第Cビットが
“1”となった最上位ビットとする。一方、中位の「8
ビットの桁落ちビット位置決定回路+予測誤差検出回
路」701Bの出力をSHB(8)<2:0>、OR
(8)、P(7)<B−1>、G(7)<B−1>とす
ることができる。この時、8≦B≦15で、中位のブロ
ックでは、第Bビットが“1”となった最上位ビットと
する。更に、下位の「8ビットの桁落ちビット位置決定
回路+予測誤差検出回路」は、キャリー伝播のために、
P(7)<15>、G(7)<15>75を出力する。
2:0>とSHB(8)<2:0>の何れかをOR(1
6)を選択制御信号として選択する。もし、OR(1
6)=“1”であれば、上位ブロックの桁落ちビット予
測信号において“1”が入力されたことになるので、S
HB(16)<2:0>が選択される。尚、この時、S
HB(H)<3>=OR(16)として、SHB(H)
<3:0>がブロックの出力信号となる。一方、OR
(16)=“0”であれば、SHB(8)<2:0>が
選択される。この時もSHB(H)<3>=OR<16
>として、SHB(H)<3:0>がブロックの出力信
号となる。「キャリー伝播回路+選択回路」703は、
上記と同様の方法でブロックが特定したビットに対応し
たP、G信号を選択する。即ち、OR(16)=“1”
であれば、上位ブロックからの出力信号P(15)<C
−1>、G(15)<C−1>が選ばれる。但し、この
場合には第“7”ビットからのキャリーの伝播を反映さ
せるために、 P(7)<C−1>=(P(15)<C−1>)and
(P(7)<14>) G(7)<C−1>=(G(15)<C−1>)or
{(P(15)<C−1>)and(G(7)<14
>)} とする。
(7)<B−1>、G(7)<B−1>が選ばれる。こ
の場合には、第“7”ビットからのキャリーの伝播とな
っているので、そのまま出力する。論理和回路405
は、OR(8)とOR(16)の論理和をとり、その出
力をSHB<4>とする。これは上位16ビットにおい
て、EE<k>=“1”となるkが存在するか否かを意
味する。以上のようにして、上位16ビットの桁落ちビ
ットの位置と予測誤差検出信号が作られる。図7の例で
は、下位8ビットにおいてはそのまま「8ビットの桁落
ちビット位置決定回路+予測誤差検出回路」701Aか
らの出力信号が出力信号となる。但し、SHB(0)<
2:0>は、3ビットの信号であるため、1ビット拡張
する必要がある。即ち、SHB(0)<3>=“1”と
して、ビットを拡張する。SHB<4>は、選択回路7
05の選択制御信号となる。SHB<4>=“1”の時
は、上位16ビットのブロックの少なくとも1ビットの
桁落ち予測信号が“1”となったことを意味するので、
SHB(H)<3:0>を選び、これをSHB<3:0
>とする。一方、SHB<4>=“0”の時は、SHB
(L)<3:0>を選び、これをSHB<3:0>とす
る。
し、その位置はSHB<4:0>によって表される。
尚、SHB<4:0>は、実際の桁落ち予測ビット位置
の値のビット反転表現となっている。また、桁落ち予測
誤差検出信号もSHB<4>によって選択される。上記
と同様の方法でブロックが特定したビットに対応した
P、G信号を選択する。即ち、SHB<4>=“1”で
あれば、上位ブロックからの出力信号P(7)<C−1
>、G(7)<C−1>が選ばれる。但し、この場合に
は最下位ビットからのキャリーの伝播を反映させるため
に、 P(−1)<C−1>=(P(7)<C−1>)and
(P(−1)<6>) G(−1)<C−1>=(G(7)<C−1>)or
{(P(7)<C−1>)and(G(−1)<6
>)} とする。一方、SHB<4>=“0”であれば、P(−
1)<A−1>、G(−1)<A−1>が選ばれる。こ
の場合には、最下位ビットからのキャリーの伝播となっ
ているので、そのまま出力する。ここで、最終的に決定
した桁落ち予測ビットを“K”と仮定すると、このビッ
トにおけるキャリー信号から、予測誤差検出信号を生成
すると、 CR<K>=(G(−1)<K−1>)or{(P(−
1)<K−1>)and(Cin)}=G(−1)<K
−1> (減算結果が負の時、Cin=0とする。) BR<K>=not[CR<K>] =not[(G(−1)<K−1>)or{(P(−1)<K−1 >and(Cin)}] =not[(G(−1)<K−1>)or(P(−1)<K−1> )] =Ζ(−1)<K−1>(減算結果が正の時、Cin=1とする。 ) となる。
説明したが、ZとGの双対性を利用して、GをZに入れ
代えて説明できる。即ち、減算結果が正の場合には、 BR<K>=(Z(−1)<K−1>)or{(P(−1)<K−1>)an d(not(Cin))} =Ζ(−1)<K−1> (減算結果が正の時、Cin=1とする 。) となる。即ち、まったく同じ論理をもった予測誤差検出
回路を2つ使用し、入力信号を入れ替えることで、仮数
部の差の正負の2通りの仮定に対して、桁落ちビットの
位置を特定し、且つその予測誤差を検出できる。 [5]セレクタ64、65 本実施の形態では、上記桁落ちビット位置決定回路62
A、62B、予測誤差検出回路100A、100Bにお
いて、各々仮数部の差が正、負である2通りの場合を仮
定して、桁落ちビットの位置とその予測誤差を特定して
いる間に、それと並列にFaとFbの大小比較を行い、
その結果を用いて最終的に桁落ちビットの位置とその予
測誤差を確定する。即ち、桁落ちビット位置決定回路6
2A、62Bは桁落ちが起きるビットを特定し、これと
同時に予測誤差検出回路100A、100Bは予測誤差
検出信号を出力する。その処理期間において、別に設け
た仮数部大小比較回路7において仮数部の大小比較を行
う。桁落ちビット位置決定回路62A、62B、予測誤
差検出回路100A、100Bは、仮数部の差の正負に
応じて、2つ用意されているので、上記仮数部の大小比
較回路7の結果をもとに、セレクタ64、65は、各々
何れか一方の出力信号を選択する。
部の差が0且つ仮数部の差が正の時(Exa−Exb=
+1の時、または、Exa−Exb=0且つFa>Fb
の時)、桁落ちが起きると特定したビットを<K>とす
ると、これに対応するキャリー信号の反転信号、 BR<K>=Z(−1)<K−1> が誤差予測信号となる。このBR<K>が“1”の時、
予測誤差が含まれるので、更に1ビット左シフトさせて
誤差を補正する。上記仮数部の大小比較回路の結果が正
であるか、指数部の差が“+1”なら、これを選択す
る。一方、(ii)指数部の差が−1の時、または指数
部の差が0且つ仮数部の差が負の時(Exa−Exb=
−1の時、または、Exa−Exb=0且つFa<Fb
の時)、桁落ちが起きると特定したビット<K>とする
と、これに対応するキャリー信号、 CR<K>=G(−1)<K−1> が誤差予測信号となる。このCR<K>が“1”の時、
予測誤差が含まれるので、更に1ビット左シフトさせて
誤差を補正する。上記仮数部の大小比較回路7の結果が
負であるか、指数部の差が“−1”ならこれを選択す
る。図8は、本実施の形態における処理時間を示してい
る。従来例(図14)と比較すると、以下のことが改善
されていることが判明する。
間」と「指数部の比較時間+セレクタ制御信号駆動時
間」が並ぶ、そのため「桁落ちビット量決定」と「仮数
部減算処理」の開始時間が同じになるので、図14にお
ける「仮数部減算処理」後の“待ち時間”が無くなり、
その分の処理時間が短くなる。本実施の形態によれば、
セレクタ2、3を通る前、即ち桁合わせ前の2個の被演
算数を直接桁落ち予測回路60に入力して、桁落ち予測
を行って、桁落ちビット位置を決定することにより、減
算器5による減算結果が出力されると同時又はそれより
も早く、桁落ちビット位置を決定することができ、以降
の減算結果の正規化処理及び正規化誤差補正を待ち時間
なしに迅速に行うことができ、その分、演算を高速に行
うことができる。図9は本発明の浮動小数点演算装置の
第2の実施の形態を示したブロック図である。本例は桁
落ち予測回路及び予測誤差検出回路の構成が図1に示し
た第1の実施の形態と異なり、他の構成は同様であるた
め、桁落ち予測回路及び予測誤差検出回路の構成のみを
示した。桁落ち予測回路は桁落ちビット予測信号発生回
路91、92、93から成り、特に桁落ちビット予測信
号発生回路93は2個の被演算数の仮数部の差の正負に
拘らず、2個の被演算数の指数部の差が0の時、隣り合
う3ビットを見ることにより、常に有効な桁落ちビット
予測信号を出すことができるため、桁落ちビット予測信
号発生回路を3個で済ますことができる。尚、図9に示
す構成では、図1および図2に示した実施の形態1にお
けるセレクタ63A、63Bからなるセレクタ63の代
わりにセレクタ94を設け、図1および図2におけるセ
レクタ65の代わりにセレクタ97を設け、さらに図1
および図2におけるセレクタ64が不要となっている。
2、93の桁落ちビット予測信号のいずれか一つが2個
の被演算数の指数部の差によって、セレクタ94により
選択され、その後、桁落ちビット位置決定回路95によ
り、桁落ちビットの位置が決定され、左シフタ8(図
1)を制御する。また、予測誤差検出回路96はセレク
タ94の選択情報と桁落ちビット位置決定回路95の桁
落ちビットの位置より、桁落ちビット予測に誤差がある
かないかを検出するが、その検出結果は2個の被演算数
の仮数部の差によって異なるため、セレクタ97により
選択されて、誤差補正シフタ9(図1)に出力される。
本実施の形態ではExa−Exb=0の時の桁落ちビッ
ト予測信号の生成論理が第1の実施の形態と異なり、桁
落ち予測信号発生回路を3個に削減でき、更に桁落ちビ
ット位置決定回路を1個に削減している。即ち、本例の
桁落ち予測回路と予測誤差検出回路は、2つの桁落ち予
測信号発生回路91、92と1つの桁落ち予測信号発生
回路93とセレクタ94と1つの桁落ちビット位置決定
回路95及び予測誤差検出回路96とセレクタ97から
構成されている。即ち、図2の2個の桁落ちビット予測
信号発生回路61B、61Dを1個の桁落ちビット予測
信号発生回路93に置き換えている。他の構成は図1に
示した第1の実施の形態と同様である。
る。 (I)指数部の差が+1(Exa−Exb=1)の時、 Fbを1ビット右シフトして演算を行う必要があるの
で、つぎのように信号を定義する。 i<23において G<i>=(Fa<i>)and(FbX<i+1>) P<i>=(Fa<i>)xor(FbX<i十1>) Ζ<i>=(FaX<i>)and(Fb<i十1>) 更に、G<23>=1、Ζ<23>=P<23>=0、 Ζ<−1>=Fb<0>、G<−1>=0、P<−1>
=FbX<0> とする。減算結果が必ず正となるので、桁落ちビット予
測信号は、 EE<i>=(PX<i>)and(ZX<i−1>)
(=LZ<i>と論理を定義した。) となる。尚、これは桁落ち予測信号発生回路(A)の生
成論理に対応する。 (II)指数部の差が0(Exa−Exb=0)の時、 桁落ちビット予測信号発生回路93では、連続する3ビ
ットのPGΖの信号の状態を調べることで、仮数部の大
小に関わらず、桁落ちビット予測信号を生成できる。 i<23において G<i>=(Fa<i>)and(FbX<i>) P<i>=(Fa<i>)xor(FbX<i>) Ζ<i>=(FaX<i>)and(Fb<i>) さらに、P<23>=1、G<23>=Z<23>=
0、 Ζ<−1>=0、G<−1>=0、P<−1>=1 として、桁落ちビット予測信号は、 EE<i>=LQ<i> =[(P<i+1>)and{(Z<i> and G
X<i−1>)or(G<i> and ZX<i−1
>)}]or[(PX<i+1>)and{(Z<i>
and ZX<i−1>)or(G<i> and
GX<i−1>)}] となる。
b=−1)の時、 Faを1ビット右シフトして演算を行う必要があるの
で、つぎのように信号を定義する。 i<23において G<i>=(FbX<i>)and(Fa<i+1>) P<i>=(FbX<i>)xor(Fa<i+1>) Ζ<i>=(Fb<i>)and(FaX<i+1>) さらに、Ζ<23>=1、G<23>=P<23>=
0、 G<−1>=Fa<0>、Z<−1>=0、P<−1>
=FaX<0> とする。減算結果が必ず負となるので、桁落ちビット予
測信号は、 EE<i>=(PX<i>)and(GX<i−1>)
(=LG<i>と論理を定義した。) と表すことができる。尚、これは桁落ちビット予測信号
発生回路93の生成論理に対応する。(II)において、
連続する3ビットのPGΖの信号の状態を調べることで
仮数の大小関係に依存せずに桁落ちビット予測信号を発
生させることができる。図9のように、桁落ちビット位
置決定回路95及び予測誤差検出回路96は各々−つず
つで済ませることができるのは、2つの被演算数の仮数
の大小関係がわからなくとも、桁落ちビット予測信号を
発生させることができるからである。また、桁落ちビッ
ト位置決定回路95の1つとなるので、図1のセレクタ
64に相当する部分が不要となる。
係に依存する。これは仮数部の差の正負により生成論理
が異なるためであることは、第1の実施の形態において
説明した。桁落ちビット位置決定回路95には、指数部
の差に基づきセレクタ94で選択した結果を入力する。
即ち、指数部の差は“+1”、“0”、“−1″の3通
りが考えられるが、これに対応する選択信号によって、
2つの桁落ちビット予測信号発生回路91、92、桁落
ちビット予測信号発生回路93のいずれかから出力され
る桁落ちビット予測信号EE<i>と、P<i−1>及
び、G<i−1>信号(または、G<i−1>とZ<i
−1>両方の信号)をセレクタ94で選択する。桁落ち
ビット位置決定回路95は、ここで桁落ちビット量SH
B<4:0>を決定する。第1の実施の形態とは異な
り、仮数部の差の正負を仮定せずとも誤差1ビット以内
で予測することが可能である。セレクタ97は、予測誤
差検出回路96が出力する予測誤差検出信号CR<X>
とBR<K>のうち、仮数の差の正負から何れか一方選
択する。尚、第1の実施例と同様に、指数部の差が“+
1”または“−1”を示す信号との論理和を制御信号と
することもできる。
正)or(指数部の差が“+1”) (CR<K>の選択)=(仮数部の差が負)or(指数
部の差が“−1”) 本実施の形態による効果は、図8に示した第1の実施の
形態における効果と、基本的には同じである。即ち、図
8では「桁落ちビット信号生成時間」と「指数部の比較
時間+セレクタ制御信号駆動時間」が並行に並ぶ、その
ため「桁落ちビット量決定」と「仮数部減算処理」の開
始時間が同じになるので、従来の図14に示した「仮数
部減算処理」後の待ち時間が無くなり、その分の処理時
間が短くなる効果を、本実施の形態も得ることができ
る。但し、桁落ちビット予測信号発生回路93では、桁
落ちビット予測信号発生回路91、92に比べ論理段数
が増えているので、処理時間とハードウェアの増大を招
く。しかし、処理時間については実際には指数部の比較
時間とその後のセレクタ選択制御信号を駆動するための
バッファにおける遅延時間の方が長い(クリティカルで
ある)ために、その処理時間の増大の影響は無い。むし
ろ、本実施の形態では、最終段のセレクタの段数が削減
されるために、SHB<4:0>が確定するまでの処理
時間は第1の実施の形態のそれよりも短くなる。
指数部の差が0の時、隣り合う3ビットを見て仮数部の
差の正負によらず常に有効な予測信号を出力する桁落ち
ビット予測信号発生回路93を1個用いることにより、
桁落ちビット予測信号発生回路を3個に削減でき、この
ため、桁落ちビット位置決定回路も予測誤差検出回路も
それぞれ1個に削減することができるため、セレクタの
段数を減らして第1の実施の形態よりも更に演算処理を
高速化することができると共に、回路規模を大幅に削減
することができる。
動小数点演算装置によれば、桁落ちビット予測を被演算
数の桁合わせのための指数部の比較動作を待つことな
く、この比較動作と並行して桁落ちビット予測動作を開
始できるため、演算処理をより高速化することができ
る。
態を示したブロック図である。
路の詳細構成例を示したブロック図である。
差検出回路の構成例を示したブロック図である。
差検出回路の構成例を示したブロック図である。
差検出回路の他の構成例を示したブロック図である。
差検出回路の他の構成例を示したブロック図である。
誤差検出回路の構成例を示したブロック図である。
示したタイムチャートである。
態を示したブロック図である。
る。
ブロック図である。
したブロック図である。
間を示したタイムチャートである。
間を示したタイムチャートである。
タ 5 減算器 6 桁落ち予測回路 7 仮数部大小比較回路 8 左シフタ 9 誤差補正シフタ 10、96、100 予測誤差検出回路 11 インバータ 13 右シフタ 16 加減算器 61、91〜93 桁落ちビット予測信号発生回路 62、95 桁落ちビット位置決定回路
Claims (6)
- 【請求項1】2個の浮動小数点形成をもつ被演算数の指
数部の比較によって前記2個の被演算数の仮数部のいず
れか一方を1ビットシフトするか、両方ともシフトせず
そのまま出力するかを選択することにより前記2個の被
演算数の仮数部の桁合わせを行う第1のセレクト回路
と、 前記桁合わせされた2個の被演算数の仮数部の減算を行
う減算回路と、 この減算回路の減算結果、又はその反転結果のいずれか
を選択する第2のセレクト回路と、 この第2のセレクト回路を通ってきた減算結果を正規化
する左シフタ回路と、前記正規化された減算結果の桁落
ち予測誤差を補正する誤差補正回路とを有し、且つ前記
2個の被演算数の指数部の差が1、0、−1の時にの
み、減算回路で演算を行う浮動小数点演算装置におい
て、 前記第1のセレクト回路を通って桁合わせされる前の2
個の被演算数の仮数部から前記減算結果の桁落ちビット
予測信号を発生して桁落ちビットの位置を求める桁落ち
予測回路と、 この桁落ち予測回路の桁落ちビット予測信号の桁落ち予
測誤差を検出してそれを補正する補正信号を得る予測誤
差検出回路とを具備し、 前記左シフタ回路は、前記予測誤差検出回路により求め
られた桁落ちビットの位置により前記減算結果を左にシ
フトして正規化し、 前記誤差補正回路は、前記予測誤差検出回路により得ら
れた補正信号により前記正規化された減算結果の前記桁
落ち予測誤差を補正することを特徴とする浮動小数点演
算装置。 - 【請求項2】前記桁落ち予測回路は、前記2個の被演算
数の指数部の差が1の時に、前記減算結果の桁落ちビッ
ト予測信号を発生する第1の桁落ちビット予測信号発生
回路と、 前記2個の被演算数の指数部の差が−1の時に、前記減
算結果の桁落ちビット予測信号を発生する第2の桁落ち
ビット予測信号発生回路と、 前記2個の被演算数の指数部の差が0の時で仮数部の差
が正の時、前記減算結果の桁落ちビット予測信号を発生
する第3の桁落ちビット予測信号発生回路と、 前記2個の被演算数の指数部の差が0の時で仮数部の差
が負の時、前記減算結果の桁落ちビット予測信号を発生
する第4の桁落ちビット予測信号発生回路と、 前記2個の被演算数の指数部の差が1又は0により、前
記第1の桁落ちビット予測信号発生回路と前記第3の桁
落ちビット予測信号発生回路のいずれか一方より発生さ
れた桁落ちビット予測信号を選択する第1の選択回路
と、 前記2個の被演算数の指数部の差が−1又は0により、
前記第2の桁落ちビット予測信号発生回路と前記第4の
桁落ちビット予測信号発生回路のいずれか一方より発生
された桁落ちビット予測信号を選択する第2の選択回路
と、 前記第1の選択回路により選択された桁落ちビット予測
信号から桁落ちビット位置を求める第1の桁落ちビット
位置決定回路と、 前記第2の選択回路により選択された桁落ちビット予測
信号から桁落ちビット位置を求める第2の桁落ちビット
位置決定回路と、 前記2個の被演算数の仮数部の差の正負により、前記第
1、第2の桁落ちビット位置決定回路により求められた
桁落ちビット位置のいずれか一方を選択して出力する第
3の選択回路と、 を具備することを特徴とする請求項1記載の浮動小数点
演算装置。 - 【請求項3】前記桁落ち予測回路は、前記2個の被演算
数の指数部の差が1の時に、前記減算結果の桁落ちビッ
ト予測信号を発生する第1の桁落ちビット予測信号発生
回路と、 前記2個の被演算数の指数部の差が−1の時に、前記減
算結果の桁落ちビット予測信号を発生する第2の桁落ち
ビット予測信号発生回路と、 前記2個の被演算数の指数部の差が0の時で仮数部の差
の正負に拘りなく有効な前記減算結果の桁落ちビット予
測信号を発生する第3の桁落ちビット予測信号発生回路
と、 前記2個の被演算数の指数部の差が1、−1又は0によ
り、前記第1の桁落ちビット予測信号発生回路、前記第
2の桁落ちビット予測信号発生回路及び前記第3の桁落
ちビット予測信号発生回路のいずれか一方より発生され
た桁落ちビット予測信号を選択する第1の選択回路と、 前記第1の選択回路により選択された桁落ちビット予測
信号から桁落ちビット位置を求める桁落ちビット位置決
定回路と、 を具備することを特徴とする請求項1記載の浮動小数点
演算装置。 - 【請求項4】2つの被減算数の指数の差の絶対値が2以
上か、2未満かによって、演算する手順の異なる浮動小
数点演算装置において、 加算と2つの被減算数の指数の差の絶対値が2以上の場
合の減算を行う加減算器と、 2つの被減算数の指数の差の絶対値が2未満の減算のみ
を行う減算器と、 2つの被演算数の指数部の差を計算する指数部比較器
と、 指数部の差に応じて仮数部の桁合わせを行う右シフタ
と、 前記2つの被演算数の仮数部の大小を比較する大小比較
器と、 前記減算器における減算結果に起きる桁落ち量を1ビッ
ト以内の誤差で予測し、その桁落ちの起き得る位置を示
す桁落ちビット予測信号を発生する桁落ちビット予測信
号発生回路と、前記桁落ちビット予測信号を2進数表現
に数値化して桁落ち予測信号として出力する桁落ちビッ
ト位置決定回路とからなる桁落ち予測回路と、 前記桁落ち予測信号の誤差を検出する予測誤差検出回路
と、 前記減算器の結果を左シフトして正規化する左シフタ
と、 前記予測誤差検出回路の検出結果をもとに前記減算結果
の誤差を補正する誤差補正シフタとを有し、 前記減算器は、前記指数部比較器の結果により、前記2
つの被演算数の仮数または、何れか一方の仮数が右シフ
トされた値を入力として減算を行ってその結果を出力
し、 前記桁落ち予測回路は、前記2つの被演算数の仮数を直
接入力し、且つ前記指数部比較器の結果を入力し、前記
減算器の減算の結果起きる桁落ちの予測量を前記左シフ
タに出力し、 前記予測誤差検出回路は、前記2つの被演算数の仮数を
直接人力し、且つ前記指数部比較器の結果を入力し、且
つ前記桁落ち予測回路で予測処理動作中の前記桁落ち予
測信号を入力し、且つ前記大小比較器の出力する仮数部
の大小比較結果を入力して、前記桁落ち予測回路での予
測誤差の有無を示す誤差検出信号を出力し、 前記左シフタは、前記桁落ち予測回路から出力された前
記桁落ち予測信号をもとに前記減算器から出力された前
記減算結果を左シフトして正規化し、 前記誤差補正シフタは、前記予測誤差検出回路の出力し
た誤差検出信号をもとに前記左シフタが正規化した前記
減算結果の誤差を補正することを特徴とする浮動小数点
演算装置。 - 【請求項5】前記減算器の演算の結果生じる桁落ち量を
1ビット以内の誤差で予測する前記桁落ち予測回路は、 前記桁落ちビット予測信号発生回路の信号発生論理を、
2つの被演算数a、bの“n+1”ビット幅をもつ仮数
をFa<n:0>、Fb<n:0>とし、指数をEx
a、Exbとし、“and”を論理積、“or”を論理
和、“xor”を排他的論理和、“not”を論理否定
として、 (I)Exa−Exb=1の時、2つの被演算数の連続
する2ビットを用いて、2つの被演算数の減算の結果に
おいて起きる桁落ちビットの位置の予測する論理回路に
おいて、 i<nとなる整数iでは G<i>=(Fa<i>)and(not(Fb<i+
1>)) P<i>=(Fa<i>)xor(not(Fb<i+
1>)) Z<i>=(not(Fa<i>))and(Fb<i
+1>) 更に、G<n>=1、Z<n>=P<n>=0、 Z<−1>=Fb<0>、G<−1>=0、P<−1>
=not(Fb<0>) とし、桁落ちビット予測信号EEを、 EE<i>=(not(P<i>))and(not
(Z<i−1>))とし、 (IIa)Exa−Exb=0且つFa−Fb>0を仮定
した時、2つの被演算数の連続する2ビットを用いて、
2つの被演算数の演算の結果において起きる桁落ちビッ
トの位置の予測する論理回路において、 i<nとなる整数iでは G<i>=(Fa<i>)and(not(Fb<i
>)) P<i>=(Fa<i>)xor(not(Fb<i
>)) Z<i>=(not(Fa<i>))and(Fb<i
>) 更に、P<n>=1、G<n>=Z<n>=0、 Z<−1>=0、G<−1>=0、P<−1>=1 とし、桁落ちビット予測信号EEを、 EE<i>=(not(P<i>))and(not
(Z<i−1>))とし、 (IIb)Exa−Exb=0且つFa−Fb<0を仮定
した時、2つの被演算数の連続する2ビットを用いて、
2つの被演算数の減算の結果において起きる桁落ちビッ
トの位置の予測する論理回路において、 i<nとなる整数iでは G<i>=(Fa<i>)and(not(Fb<i
>)) P<i>=(Fa<i>)xor(not(Fb<i
>)) Z<i>=(not(Fa<i>))and(Fb<i
>) 更に、P<n>=1、G<n>=Z<n>=0、 Z<−1>=0、G<−1>=0、P<−1>=1 とし、桁落ちビット予測信号EEを、 EE<i>=(not(P<i>))and(not
(G<i−1>))とし、 (III)Exa−Exb=−1の時、2つの被演算数の
連続する2ビットを用いて、2つの被演算数の減算の結
果において起きる桁落ちビットの位置の予測する論理回
路において、 i<nとなる整数iでは G<i>=(not(Fb<i>))and(Fa<i
+1>) P<i>=(not(Fb<i>))xor(Fa<i
十1>) Z<i>=Fb<i>and(not(Fa<i+1
>)) 更に、Z<n>=1、G<n>=P<n>=0、 G<−1>=Fa<0>、Z<−1>=0、P<−1>
=not(Fa<0>) とし、桁落ちビット予測信号EEを、 EE<i>=(not(P<i>))and(not
(G<i−1>)) とし、桁落ちビット予測信号EEは、Exa−Exbの
値に応じて、上記論理の何れかより選択され、 前記桁落ちビット位置決定回路は、上記仮数部の差が
正、または正と仮定した場合と、負または負と仮定した
場合の2通りの場合に各々備え、各々の場合においてE
E<i>=“1”となる最大のiの値を2進数表現で表
す桁落ちビット位置を出力し、前記大小比較回路により
出力されるFa−Fbの結果をもとに、上記桁落ちビッ
ト位置の何れか一方を選択し、 前記桁落ち予測誤差検出回路は、前記桁落ちビット位置
決定回路と共に、 G(−1)<k−1>、Z(−1)<k−1>を決定す
る論理を有し、 この時、 P(k)<k>=P<k> G(k)<k>=G<k> Z(k)<k>=Z<k> P(k)<k+1>=(P(k+1)<k+1>)an
d(P(k)<k>) G(k)<k+1>=(G(k+1)<k+1>)or
{(P(k+1)<k+1>)and(G(k)<k
>)} Z(k)<k+1>=(Z(k+1)<k+1>)or
{(P(k+1)<k+1>)and(Z(k)<k
>)} P(m)<k>=(P(n)<k>)and(P(m)
<n−1>) (m<n<k) G(m)<k>=G(n)<k>or{(P(n)<k
>)and(G(m)<n−1>)} (m<n<k) Z(m)<k>=Z(n)<k>or{(P(n)<k
>)and(Z(m)<n−1>)} (m<n<k) とし、 前記大小比較回路により出力されるFa−Fbの結果を
もとに、Fa−Fb<0のときにはG(−1)<k−1
>を選択し、Fa−Fb>0のときにはZ(−1)<k
−1>を選択することを特徴とする請求項1または4記
載の浮動小数点演算装置。 - 【請求項6】前記減算器の減算の結果生じる桁落ち量を
1ビット以内の誤差で予測する桁落ち予測回路は、 前紀桁落ちビット予測信号発生回路の信号発生論理を、
2つの被演算数a、bの“n+1”ビット幅をもつ仮数
をFa<n:0>、Fb<n:0>とし、指数をEx
a、Exbとし、“and”を論理積、“or”を論理
和、“xor”排他的論理和、“not”論理否定とし
て、 (I)Exa−Exb=1の時、2つの被演算数の連続
する2ビットを用いて、2つの被演算数の減算の結果に
おいて起きる桁落ちビットの位置の予測する論理回路に
おいて、 i<nとなる整数iでは G<i>=(Fa<i>)and(not(Fb<i十
1>)) P<i>=(Fa<i>)xor(not(Fb<i+
1>)) Z<i>=(not(Fa<i>))and(Fb<i
十1>) 更に、G<n>=1、Z<n>=P<n>=0、 Z<−1>=Fb<0>、G<−1>=0、P<−1>
=not(Fb<0>) とし、桁落ちビット予測信号EEを、 EE<i>=(not(P<i>))and(not
(Z<i−1>))とし、 (II)Exa−Exb=0の時、2つの被演算数の連続
する3ビットを用いて、2つの被演算数の減算の結果に
おいて起きる桁落ちビットの位置の予測する論理回路に
おいて、 i<nとなる整数iでは G<i>=(Fa<i>)and(not(Fb<i
>)) P<i>=(Fa<i>)xor(not(Fb<i
>)) Z<i>=(not(Fa<i>))and(Fb<i
>) 更に、P<n>=1、G<n>=Z<n>=0、 Z<−1>=0、G<−1>=0、P<−1>=1 とし、桁落ちビット予測信号EEを、 EE<i>=[P<i+1>and{(Z<i>and
(not(G<i−1>)))or(G<i>and
(not(Z<i−1>)))}]or[not(P<
i+1>)and{(Z<i>and(not(Z<i
−1>)))or(G<i>and(not(G<i−
1>)))}] とし、 (III)Exa−Exb=−1の時、2つの被演算数の
連続する2ビットを用いて、2つの被演算数の減算の結
果において起きる桁落ちビットの位置の予測する論理回
路において、 i<nとなる整数iでは G<i>=(not(Fb<i>))and(Fa<i
+1>) P<i>=(not(Fb<i>))xor(Fa<i
+1>) Z<i>=Fb<i>and(not(Fa<i+1
>)) 更に、Z<n>=1、G<n>=P<n>=0、 G<−1>=Fa<0>、Z<−1>=0、P<−1>
=not(Fa<0>) とし、桁落ちビット予測信号EEを、 EE<i>=(not(P<i>))and(not
(G<i−1>)) とし、桁落ちビット予測信号EEは、Exa−Exbの
値、−1、+1、0に応じて、上記論理の何れかより選
択され、 前記桁落ちビット位置決定回路は、EE<i>=“1”
となる最大のiの値を2進数表現で表す桁落ちビット位
置を出力し、 前記桁落ち予測誤差検出回路は、前記桁落ちビット位置
決定回路と共に、 G(−1)<k−1>、Z(−1)<k−1>を決定す
る論理を有し、 この時、 P(k)<k>=P<k> G(k)<k>=G<k> Z(k)<k>=Z<k> P(k)<k+1>=(P(k+1)<k+1>)an
d(P(k)<k>) G(k)<k+1>=(G(k+1)<k+1>)or
{(P(k+1)<k+1>)and(G(k)<k
>)} Z(k)<k+1>=(Z(k+1)<k+1>)or
{(P(k+1)<k+1>)and(Z(k)<k
>)} P(m)<k>=(P(n)<k>)and(P(m)
<n−1>) (m<n<k) G(m)<k>=(G(n)<k>)or{(P(n)
<k>)and(G(m)<n−1>)} (m<n
<k) Z(m)<k>=(Z(n)<k>)or{(P(n)
<k>)and(Z(m)<n−1>)} (m<n
<k) となり、前記大小比較回路により出力されるFa−Fb
の結果をもとにFa−Fb<0のときには、G(−1)
<k−1>を選択し、Fa−Fb>0のときには、Z
(−1)<k−1>を選択することを特徴とする請求項
1または4記載の浮動小数点演算装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2000064616A JP3512700B2 (ja) | 1999-03-10 | 2000-03-09 | 浮動小数点演算装置 |
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP11-64059 | 1999-03-10 | ||
JP6405999 | 1999-03-10 | ||
JP2000064616A JP3512700B2 (ja) | 1999-03-10 | 2000-03-09 | 浮動小数点演算装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2000322238A JP2000322238A (ja) | 2000-11-24 |
JP3512700B2 true JP3512700B2 (ja) | 2004-03-31 |
Family
ID=26405192
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2000064616A Expired - Fee Related JP3512700B2 (ja) | 1999-03-10 | 2000-03-09 | 浮動小数点演算装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3512700B2 (ja) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7707236B2 (en) * | 2004-08-13 | 2010-04-27 | Analog Devices, Inc. | Methods and apparatus for an efficient floating point ALU |
JP4997812B2 (ja) | 2006-03-31 | 2012-08-08 | カシオ計算機株式会社 | 計算装置及び計算プログラム |
-
2000
- 2000-03-09 JP JP2000064616A patent/JP3512700B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2000322238A (ja) | 2000-11-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2508912B2 (ja) | 浮動小数点加算装置 | |
JP6001276B2 (ja) | 浮動小数点加算を実行するための装置および方法 | |
US5010508A (en) | Prenormalization for a floating-point adder | |
US8185570B2 (en) | Three-term input floating-point adder-subtractor | |
JP2013012203A (ja) | 浮動小数点加算器 | |
US7720898B2 (en) | Apparatus and method for adjusting exponents of floating point numbers | |
JPH01211119A (ja) | 条件コードの予測装置 | |
JPH0695851A (ja) | 浮動小数点加算器用の正確な先行ゼロ予測のための方法及び装置 | |
EP1782268A1 (en) | Method for an efficient floating point alu | |
US7668892B2 (en) | Data processing apparatus and method for normalizing a data value | |
CN108694037B (zh) | 用于在执行浮点减法时估计移位量的装置和方法 | |
US7437400B2 (en) | Data processing apparatus and method for performing floating point addition | |
US6499044B1 (en) | Leading zero/one anticipator for floating point | |
KR100241072B1 (ko) | 부동소수점 감산시 대량소거의 병렬예측 및 연산방법과 장치 | |
US8620983B2 (en) | Leading sign digit predictor for floating point near subtractor | |
JP3544846B2 (ja) | 論理回路及び浮動小数点演算装置 | |
US6947962B2 (en) | Overflow prediction algorithm and logic for high speed arithmetic units | |
JPH0520028A (ja) | 加減算のための浮動小数点演算装置の仮数部処理回路 | |
US5831884A (en) | Apparatus for performing arithmetic operation of floating point numbers capable of improving speed of operation by performing canceling prediction operation in parallel | |
JP3512700B2 (ja) | 浮動小数点演算装置 | |
US6571267B1 (en) | Floating point addition/subtraction execution unit | |
JP2558669B2 (ja) | 浮動小数点演算装置 | |
US7356553B2 (en) | Data processing apparatus and method for determining a processing path to perform a data processing operation on input data elements | |
US7386580B2 (en) | Data processing apparatus and method for computing an absolute difference between first and second data elements | |
EP1282034A2 (en) | Elimination of rounding step in the short path of a floating point adder |
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: 20040106 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20040107 |
|
FPAY | Renewal fee payment (prs date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20080116 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (prs date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090116 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (prs date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100116 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (prs date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110116 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (prs date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120116 Year of fee payment: 8 |
|
FPAY | Renewal fee payment (prs date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130116 Year of fee payment: 9 |
|
LAPS | Cancellation because of no payment of annual fees |