JPH0731591B2 - 先行1検出回路および浮動小数点加減算装置 - Google Patents
先行1検出回路および浮動小数点加減算装置Info
- Publication number
- JPH0731591B2 JPH0731591B2 JP4015601A JP1560192A JPH0731591B2 JP H0731591 B2 JPH0731591 B2 JP H0731591B2 JP 4015601 A JP4015601 A JP 4015601A JP 1560192 A JP1560192 A JP 1560192A JP H0731591 B2 JPH0731591 B2 JP H0731591B2
- Authority
- JP
- Japan
- Prior art keywords
- digit
- zsd
- value
- subtraction
- circuit
- 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 - Lifetime
Links
Description
【0001】
【産業上の利用分野】本発明は、仮数部、指数部、符号
部からなる2つの浮動小数点データについて加減算を実
行し、上位桁に無効桁が発生する場合、有効桁の最上位
位置を高速に予測する回路およびこの回路を用いた浮動
小数点加減算装置に関するものである。
部からなる2つの浮動小数点データについて加減算を実
行し、上位桁に無効桁が発生する場合、有効桁の最上位
位置を高速に予測する回路およびこの回路を用いた浮動
小数点加減算装置に関するものである。
【0002】
【従来の技術】従来、仮数部、指数部、符号部からなる
2つの浮動小数点データX,Yにおいて仮数部減算を実
行する場合、桁合わせ処理、仮数部加減算処理、正規化
処理の順で実行される。以下図4に示す従来の浮動小数
点数の加減算を実行する浮動小数点加減算装置を例にし
て説明する。
2つの浮動小数点データX,Yにおいて仮数部減算を実
行する場合、桁合わせ処理、仮数部加減算処理、正規化
処理の順で実行される。以下図4に示す従来の浮動小数
点数の加減算を実行する浮動小数点加減算装置を例にし
て説明する。
【0003】図4において、まず桁合わせ処理は以下の
ように実行される。2つの入力オペランド指数部(X
e,Ye)は減算回路405 、シフト信号生成回路404 、
セレクタ回路406 に入力される。また、同時に、オペラ
ンド仮数部(1.Xfまたは0.Xf,1.Yfまたは
0.Yf)は、左右1桁シフト回路401 に入力される。
このとき、減算回路405 では、オペランド指数値Xeか
らYeを減算し、絶対値(絶対値(Xe−Ye))と、
符号値(符号値(Xe−Ye))を生成する。また同時
に、シフト信号生成回路404 では、それぞれの入力オペ
ランドが、指数値Xe、Yeを使用し正規化数であるか
否かを検出し、オペランドの符号値(Xs,Ys)と、
減算実行信号subを使用し、2つの入力オペランド仮
数値を左右にシフトする制御信号をつくる。この制御に
ついては、特願平1-38687 号に示してある。左右シフト
回路401 では、シフト信号生成回路404 からの制御信号
を基に、2つの入力オペランド仮数値を右または左にシ
フトする。左右シフト回路401 の出力はスワップ回路40
2 に入力され、ここで、減算回路405 から出力される符
号値(符号値(Xe−Ye))に基づいて、入力データ
がスワップされ、指数値の大きくないオペランドの仮数
値は右バレルシフト回路403 に入力され、もう一方の指
数値の大きいオペランド仮数値は加減算回路407 に入力
される。右バレルシフト回路403 では、減算回路405 か
ら出力されるオペランド指数値の差の絶対値(絶対値
(Xe−Ye))だけ入力値が右にシフトされる。この
ようにして、桁合わせ処理が実行される。
ように実行される。2つの入力オペランド指数部(X
e,Ye)は減算回路405 、シフト信号生成回路404 、
セレクタ回路406 に入力される。また、同時に、オペラ
ンド仮数部(1.Xfまたは0.Xf,1.Yfまたは
0.Yf)は、左右1桁シフト回路401 に入力される。
このとき、減算回路405 では、オペランド指数値Xeか
らYeを減算し、絶対値(絶対値(Xe−Ye))と、
符号値(符号値(Xe−Ye))を生成する。また同時
に、シフト信号生成回路404 では、それぞれの入力オペ
ランドが、指数値Xe、Yeを使用し正規化数であるか
否かを検出し、オペランドの符号値(Xs,Ys)と、
減算実行信号subを使用し、2つの入力オペランド仮
数値を左右にシフトする制御信号をつくる。この制御に
ついては、特願平1-38687 号に示してある。左右シフト
回路401 では、シフト信号生成回路404 からの制御信号
を基に、2つの入力オペランド仮数値を右または左にシ
フトする。左右シフト回路401 の出力はスワップ回路40
2 に入力され、ここで、減算回路405 から出力される符
号値(符号値(Xe−Ye))に基づいて、入力データ
がスワップされ、指数値の大きくないオペランドの仮数
値は右バレルシフト回路403 に入力され、もう一方の指
数値の大きいオペランド仮数値は加減算回路407 に入力
される。右バレルシフト回路403 では、減算回路405 か
ら出力されるオペランド指数値の差の絶対値(絶対値
(Xe−Ye))だけ入力値が右にシフトされる。この
ようにして、桁合わせ処理が実行される。
【0004】次に、加減算処理および丸め処理が加減算
回路407 で実行される。さらに、正規化処理について説
明する。2つの浮動小数点数入力オペランドの指数値X
eから指数値Yeを引いた減算結果が0,1または−1
のとき、浮動小数点数減算実行時に、仮数減算値の上位
に無効桁が生じ桁落ちする場合が生じる。この桁落ちし
た仮数値の正規化処理のためにプライオリティエンコー
ダ(以下PEと記述する)408 および左バレルシフト回
路409 が必要になる。加減算回路407 からの出力結果
は、PE408 および左バレルシフト回路409 に入力され
る。PE408 では、加減算回路407 より出力された結果
から、正規化するために必要な左シフト量を検出する。
そして、PE408 で検出されたシフト量に基づいて、左
バレルシフト回路409 で仮数値減算結果を正規化する。
回路407 で実行される。さらに、正規化処理について説
明する。2つの浮動小数点数入力オペランドの指数値X
eから指数値Yeを引いた減算結果が0,1または−1
のとき、浮動小数点数減算実行時に、仮数減算値の上位
に無効桁が生じ桁落ちする場合が生じる。この桁落ちし
た仮数値の正規化処理のためにプライオリティエンコー
ダ(以下PEと記述する)408 および左バレルシフト回
路409 が必要になる。加減算回路407 からの出力結果
は、PE408 および左バレルシフト回路409 に入力され
る。PE408 では、加減算回路407 より出力された結果
から、正規化するために必要な左シフト量を検出する。
そして、PE408 で検出されたシフト量に基づいて、左
バレルシフト回路409 で仮数値減算結果を正規化する。
【0005】一方、セレクタ回路406 に入力された指数
値は、減算回路405 から出力される符号値(符号値(X
e−Ye))にしたがい、指数値の小さくない方を選択
する。そしてセレクタ回路406 の出力は減算回路410 に
入力され、PE408 で検出されたシフト量を減算し、浮
動小数点数加減算の指数値が求まる。
値は、減算回路405 から出力される符号値(符号値(X
e−Ye))にしたがい、指数値の小さくない方を選択
する。そしてセレクタ回路406 の出力は減算回路410 に
入力され、PE408 で検出されたシフト量を減算し、浮
動小数点数加減算の指数値が求まる。
【0006】このように、従来の浮動小数点加減算装置
では、仮数値減算結果を正規化処理するために、仮数値
減算結果から上位に発生する無効桁の数をPE408 で検
出し、そしてその検出量に基づいて正規化を行ってい
た。
では、仮数値減算結果を正規化処理するために、仮数値
減算結果から上位に発生する無効桁の数をPE408 で検
出し、そしてその検出量に基づいて正規化を行ってい
た。
【0007】
【発明が解決しようとする課題】以上説明したような従
来の浮動小数点加減算装置においては、指数の差が0,
1または−1のとき、桁合わせ処理した後の仮数値を減
算した結果について、減算結果の上位に生じる無効桁の
数をPE408で求め、このPE408 で求められた無効桁
の数を用い、仮数値減算結果を左バレルシフト回路で正
規化処理していたため、仮数値の減算と正規化処理のた
めのシフト量検出と正規化処理が連続して実行され、浮
動小数点の加減算実行速度を遅くする原因となってい
た。
来の浮動小数点加減算装置においては、指数の差が0,
1または−1のとき、桁合わせ処理した後の仮数値を減
算した結果について、減算結果の上位に生じる無効桁の
数をPE408で求め、このPE408 で求められた無効桁
の数を用い、仮数値減算結果を左バレルシフト回路で正
規化処理していたため、仮数値の減算と正規化処理のた
めのシフト量検出と正規化処理が連続して実行され、浮
動小数点の加減算実行速度を遅くする原因となってい
た。
【0008】本発明は、上記問題に鑑み、仮数部減算結
果の無効桁の量(または最上位有意桁)を高速に予測す
る先行1検出回路を提供すると同時に、この先行1検出
回路を使用することにより、仮数値の減算と減算結果の
無効桁の数の予測を同時に実行することができて、演算
所要時間を短くできる浮動小数点加減算装置を提供する
ことを目的とするものである。
果の無効桁の量(または最上位有意桁)を高速に予測す
る先行1検出回路を提供すると同時に、この先行1検出
回路を使用することにより、仮数値の減算と減算結果の
無効桁の数の予測を同時に実行することができて、演算
所要時間を短くできる浮動小数点加減算装置を提供する
ことを目的とするものである。
【0009】
【課題を解決するための手段】上記問題を解決するた
め、本発明の先行1検出回路は、桁合わせ処理が終了し
た後の2つの浮動小数点仮数部オペランドについて、各
桁毎に減算し、各桁が(−1,0,1)より構成される
冗長2進数値Zsdを生成する第1の手段と、冗長2進
数値Zsdの下位よりk桁目の冗長2進数値Zsdk と
下位よりk+1桁目の冗長2進数値Zsdk+1 を用い、
Zsdk+1 =“1”または“−1”であるときにSk =
−Zsdk となり、Zsdk+1 =“0”であるときにS
k =Zsd k となるように、式Zsdk =2・Ck +S
k にしたがい、中間桁上げCk 、中間和Sk を生成する
第2の手段と、下位桁からの中間桁上げCk-1 と中間和
Skの加算結果が0のときに“0”、0以外のときに
“1”という信号Zk を生成する第3の手段を備えたも
のである。
め、本発明の先行1検出回路は、桁合わせ処理が終了し
た後の2つの浮動小数点仮数部オペランドについて、各
桁毎に減算し、各桁が(−1,0,1)より構成される
冗長2進数値Zsdを生成する第1の手段と、冗長2進
数値Zsdの下位よりk桁目の冗長2進数値Zsdk と
下位よりk+1桁目の冗長2進数値Zsdk+1 を用い、
Zsdk+1 =“1”または“−1”であるときにSk =
−Zsdk となり、Zsdk+1 =“0”であるときにS
k =Zsd k となるように、式Zsdk =2・Ck +S
k にしたがい、中間桁上げCk 、中間和Sk を生成する
第2の手段と、下位桁からの中間桁上げCk-1 と中間和
Skの加算結果が0のときに“0”、0以外のときに
“1”という信号Zk を生成する第3の手段を備えたも
のである。
【0010】さらに、本発明の浮動小数点加減算装置
は、仮数部オペランド、指数部オペランド、符号部オペ
ランドを有する浮動小数点形式の2つの被演算データを
加算または減算する浮動小数点加減算装置において、桁
合わせ処理された後の2つの仮数部オペランドを、加減
算回路と前記先行1検出回路に同時に入力し、前記加減
算回路では減算を実行してその減算結果を左バレルシフ
ト回路に入力し、前記先行1検出回路から出力される前
記加減回路の上位に生じる無効桁数の予測数をPEによ
りデコードした値を用い前記左バレルシフト回路に入力
された減算結果を左シフトするように構成したものであ
る。
は、仮数部オペランド、指数部オペランド、符号部オペ
ランドを有する浮動小数点形式の2つの被演算データを
加算または減算する浮動小数点加減算装置において、桁
合わせ処理された後の2つの仮数部オペランドを、加減
算回路と前記先行1検出回路に同時に入力し、前記加減
算回路では減算を実行してその減算結果を左バレルシフ
ト回路に入力し、前記先行1検出回路から出力される前
記加減回路の上位に生じる無効桁数の予測数をPEによ
りデコードした値を用い前記左バレルシフト回路に入力
された減算結果を左シフトするように構成したものであ
る。
【0011】
【作用】本発明は上述した構成の先行1検出回路を使用
することで、仮数値減算時に生じる無効桁の数の予測を
オペランドの桁数に関係なく一定の時間で求めることが
できる。また、この先行1検出回路を、仮数値減算と同
時に動作させることで、仮数値減算結果が求められると
同時に桁落ち数の予測値を使用し、仮数値減算結果を正
規化処理するため、高速な浮動小数点数加減算装置を実
現できる。
することで、仮数値減算時に生じる無効桁の数の予測を
オペランドの桁数に関係なく一定の時間で求めることが
できる。また、この先行1検出回路を、仮数値減算と同
時に動作させることで、仮数値減算結果が求められると
同時に桁落ち数の予測値を使用し、仮数値減算結果を正
規化処理するため、高速な浮動小数点数加減算装置を実
現できる。
【0012】
【実施例】以下本発明の一実施例を図面に基づいて説明
する。図1は本発明の浮動小数点加減算装置に用いる先
行1検出回路の一実施例を示すブロック図である。浮動
小数点演算において、仮数部の桁落ちが発生する場合
は、指数値の差が0,1または−1の場合に、仮数値減
算を実行した場合である。これから述べる先行1検出回
路は、仮数値減算実行時に仮数値の桁落ち量を高速に予
測する回路であり、ここでは被減数X、減数Yの2k-1
の重みを持つ桁から2k+1 の重みを持つ桁までの3桁の
範囲について示してある。ただしkは自然数である。以
下の説明においては、2k の重みを持つ桁の処理につい
て述べる。
する。図1は本発明の浮動小数点加減算装置に用いる先
行1検出回路の一実施例を示すブロック図である。浮動
小数点演算において、仮数部の桁落ちが発生する場合
は、指数値の差が0,1または−1の場合に、仮数値減
算を実行した場合である。これから述べる先行1検出回
路は、仮数値減算実行時に仮数値の桁落ち量を高速に予
測する回路であり、ここでは被減数X、減数Yの2k-1
の重みを持つ桁から2k+1 の重みを持つ桁までの3桁の
範囲について示してある。ただしkは自然数である。以
下の説明においては、2k の重みを持つ桁の処理につい
て述べる。
【0013】図1において、101 は冗長2進数生成回路
であり、被減数Xと減数Yから各桁毎に冗長二進数値Z
sdを生成する。102 は中間和中間桁上げ生成回路であ
り、一桁上位の冗長2進数値(Zsdk+1 )とその桁の
冗長2進数値(Zsdk )を用い、Zsdk =2・Ck
+Sk にしたがい、中間桁上げCk 、中間和Sk を生成
する(ただし、Ck 、Sk は冗長2進数)。103 はスキ
ャン値生成回路であり、中間和Sk と下位からの中間桁
上げCk-1 を用い、Ck-1 +Sk =0のときに0を出力
し、Ck-1 +Sk =0以外のときに1を出力する。104
は先行1検出回路の各桁毎の構成要素である。
であり、被減数Xと減数Yから各桁毎に冗長二進数値Z
sdを生成する。102 は中間和中間桁上げ生成回路であ
り、一桁上位の冗長2進数値(Zsdk+1 )とその桁の
冗長2進数値(Zsdk )を用い、Zsdk =2・Ck
+Sk にしたがい、中間桁上げCk 、中間和Sk を生成
する(ただし、Ck 、Sk は冗長2進数)。103 はスキ
ャン値生成回路であり、中間和Sk と下位からの中間桁
上げCk-1 を用い、Ck-1 +Sk =0のときに0を出力
し、Ck-1 +Sk =0以外のときに1を出力する。104
は先行1検出回路の各桁毎の構成要素である。
【0014】次に図1の先行1検出回路の詳細な説明を
述べる。まず、冗長2進数生成回路101 の真理値表を表
1に示す。
述べる。まず、冗長2進数生成回路101 の真理値表を表
1に示す。
【0015】
【表1】
【0016】表1でXk 、Yk はそれぞれ被減数、減数
のk桁目の値で、Xk −Yk =Zsdk により冗長2進
数値Zsdk が生成される。次に、冗長2進数生成回路
101 で生成された冗長2進数値Zsdk は一桁上位の冗
長2進数値Zsdk+1 とともに、中間和中間桁上げ生成
回路102 に入力される。中間和中間桁上げ生成回路102
では、冗長2進数値Zsdk+1 を見て冗長2進数値Zs
dk より、(1) 式にしたがい中間和Sk 、中間桁上げC
k を生成する(ただし、Ck 、Sk は冗長2進数)。
のk桁目の値で、Xk −Yk =Zsdk により冗長2進
数値Zsdk が生成される。次に、冗長2進数生成回路
101 で生成された冗長2進数値Zsdk は一桁上位の冗
長2進数値Zsdk+1 とともに、中間和中間桁上げ生成
回路102 に入力される。中間和中間桁上げ生成回路102
では、冗長2進数値Zsdk+1 を見て冗長2進数値Zs
dk より、(1) 式にしたがい中間和Sk 、中間桁上げC
k を生成する(ただし、Ck 、Sk は冗長2進数)。
【0017】
【0018】(1) 式より中間桁上げCk 、中間和S
kは、(2) 式のように生成される。
kは、(2) 式のように生成される。
【0019】
【0020】(2) 式から解るように冗長2進数値Zsd
k が“1”または“−1”のとき、中間桁上げCk 、中
間和Sk の組合せとしてそれぞれ2通りあることが解
る。ここでは、(2) 式に示される中間和中間桁上げの組
合せを、1桁上位の冗長2進数値Zsdk+1 を見て、以
下の表2に示されるように振り分ける。表2では、1桁
上位の冗長2進数値Zsdk+1 が1または−1のとき、
Ck =Zsdk になるような組合せが選択され、また1
桁上位の冗長2進数値Zsdk+1 が0のとき、Zsdk
は、中間桁上げCk が“0”になる組合せが選択され
る。
k が“1”または“−1”のとき、中間桁上げCk 、中
間和Sk の組合せとしてそれぞれ2通りあることが解
る。ここでは、(2) 式に示される中間和中間桁上げの組
合せを、1桁上位の冗長2進数値Zsdk+1 を見て、以
下の表2に示されるように振り分ける。表2では、1桁
上位の冗長2進数値Zsdk+1 が1または−1のとき、
Ck =Zsdk になるような組合せが選択され、また1
桁上位の冗長2進数値Zsdk+1 が0のとき、Zsdk
は、中間桁上げCk が“0”になる組合せが選択され
る。
【0021】
【表2】
【0022】次に、中間和中間桁上げ生成回路102 によ
り生成された中間和Sk ,中間桁上げCk を用い、スキ
ャン値生成回路103 で値Zk を生成する。ここでは、表
3に示す論理でZk を生成する。
り生成された中間和Sk ,中間桁上げCk を用い、スキ
ャン値生成回路103 で値Zk を生成する。ここでは、表
3に示す論理でZk を生成する。
【0023】
【表3】
【0024】表3において、スキャン値Zk はCk-1 +
Sk =0の時0であり、Ck-1 +S k =0以外の場合1
であることが解る。次に、以上のような論理で構成され
た先行1検出回路を使用することで、減算値の桁落ち量
を予測できることを説明する。
Sk =0の時0であり、Ck-1 +S k =0以外の場合1
であることが解る。次に、以上のような論理で構成され
た先行1検出回路を使用することで、減算値の桁落ち量
を予測できることを説明する。
【0025】まず、冗長2進数値生成回路101 を使用
し、2進数で表現された減数、被減数から、各桁が−
1,0,1で表現される冗長2進数値Zsdを生成す
る。冗長2進数値Zsdには、各桁毎の減算値が表現さ
れている。すなわち、冗長2進数Zsdが“1”である
ということは、その桁の被減数が“1”、減数が“0”
であるということ、冗長2進数Zsdが“−1”である
ということは、その桁の被減数が“0”、減数が“1”
であるということ、冗長2進数Zsdが“0”であると
いうことは、その桁の被減数と減数が同じ値であるとい
うことである。すなわち、減数、被減数を冗長2進数値
Zsdで表現するということは、桁借りを伝搬させない
減算を実行することと同等の効果を有する。
し、2進数で表現された減数、被減数から、各桁が−
1,0,1で表現される冗長2進数値Zsdを生成す
る。冗長2進数値Zsdには、各桁毎の減算値が表現さ
れている。すなわち、冗長2進数Zsdが“1”である
ということは、その桁の被減数が“1”、減数が“0”
であるということ、冗長2進数Zsdが“−1”である
ということは、その桁の被減数が“0”、減数が“1”
であるということ、冗長2進数Zsdが“0”であると
いうことは、その桁の被減数と減数が同じ値であるとい
うことである。すなわち、減数、被減数を冗長2進数値
Zsdで表現するということは、桁借りを伝搬させない
減算を実行することと同等の効果を有する。
【0026】ここで、減数と被減数を冗長2進数値Zs
dで表現することで、以下のようなことがいえる。「冗
長2進数値Zsdの最上位桁より0個以上の連続した数
値“0”が存在し、その後に“0”以外の数値が存在す
る場合、“0”以外の数値が存在する桁よりも上位桁に
最上位有意桁が存在することはない。
dで表現することで、以下のようなことがいえる。「冗
長2進数値Zsdの最上位桁より0個以上の連続した数
値“0”が存在し、その後に“0”以外の数値が存在す
る場合、“0”以外の数値が存在する桁よりも上位桁に
最上位有意桁が存在することはない。
【0027】たとえば、冗長2進数値Zsdの上位から
みて、最初に現われる“0”以外の数値が“1”の場合
と、“−1”の場合について、(3),(4)式に示す。
みて、最初に現われる“0”以外の数値が“1”の場合
と、“−1”の場合について、(3),(4)式に示す。
【0028】
【0029】このとき、(3) 式は(5) 式に示すような範
囲の値を取ることができる。
囲の値を取ることができる。
【0030】
【0031】すなわち、(5) 式から分かるように、(3)
式に示される冗長2進数値Zsdを2進数に変換した場
合、冗長2進数値Zsdの最上位桁より見て、最も上位
に“0”以外の数値が存在する桁よりも上位桁に最上位
有意桁がくることはない。
式に示される冗長2進数値Zsdを2進数に変換した場
合、冗長2進数値Zsdの最上位桁より見て、最も上位
に“0”以外の数値が存在する桁よりも上位桁に最上位
有意桁がくることはない。
【0032】また、(4) 式に示されるように、冗長2進
数値Zsdの上位からみて、最初に現われる“0”以外
の数値が“−1”の場合、(4) 式は(6) 式に示すような
範囲の値を取る。
数値Zsdの上位からみて、最初に現われる“0”以外
の数値が“−1”の場合、(4) 式は(6) 式に示すような
範囲の値を取る。
【0033】
【0034】(6) 式に示される数値はすべて負の数とな
り、2進数に変換すると(7) 式に示すようになる。
り、2進数に変換すると(7) 式に示すようになる。
【0035】
【0036】減算結果が負の場合、無効桁は上位より続
く“1”となり、最上位有意桁は最上位からみても最も
上位に“1”以外の数値が存在する桁になる。すなわ
ち、(6),(7) 式から分かるように、減算結果が負の場合
においても冗長2進数値Zsdの上位桁からみても最も
上位に“0”以外の数値が存在する桁よりも上位桁に最
上位有効桁が存在することは無いことが解る。
く“1”となり、最上位有意桁は最上位からみても最も
上位に“1”以外の数値が存在する桁になる。すなわ
ち、(6),(7) 式から分かるように、減算結果が負の場合
においても冗長2進数値Zsdの上位桁からみても最も
上位に“0”以外の数値が存在する桁よりも上位桁に最
上位有効桁が存在することは無いことが解る。
【0037】以上述べたように、減数、被減数を用い、
冗長2進数値Zsdを生成することで、最上位有意桁位
置を限定することができる。次に、生成された冗長2進
数値Zsdは、中間和中間桁上げ生成回路102 に入力さ
れ中間和Sk 、中間桁上げCk に分解され、その後、ス
キャン値生成回路103 に入力される。スキャン値生成回
路103 では、その桁の中間和Sk と下位桁からの中間桁
上げCk-1 を用い、それらの加算値が“0”であれば
“0”、加算値が“0”以外であれば、“1”のスキャ
ン値Zk を出力する。このような回路を用い、最上位有
意桁位置をさらに精度良く予想することができる。
冗長2進数値Zsdを生成することで、最上位有意桁位
置を限定することができる。次に、生成された冗長2進
数値Zsdは、中間和中間桁上げ生成回路102 に入力さ
れ中間和Sk 、中間桁上げCk に分解され、その後、ス
キャン値生成回路103 に入力される。スキャン値生成回
路103 では、その桁の中間和Sk と下位桁からの中間桁
上げCk-1 を用い、それらの加算値が“0”であれば
“0”、加算値が“0”以外であれば、“1”のスキャ
ン値Zk を出力する。このような回路を用い、最上位有
意桁位置をさらに精度良く予想することができる。
【0038】以下に、さらに精度良く最上位有意桁位置
を予測できることを示す。ここでは、下記の(8) 式に示
される形の式を例に説明する。(8)式では、最下位から
n桁目まで任意の冗長2進数値(*&)が続き、n+1
桁目より上位m桁は数値“0”が連続して続く場合を示
してある(ただし、n,mは自然数)。
を予測できることを示す。ここでは、下記の(8) 式に示
される形の式を例に説明する。(8)式では、最下位から
n桁目まで任意の冗長2進数値(*&)が続き、n+1
桁目より上位m桁は数値“0”が連続して続く場合を示
してある(ただし、n,mは自然数)。
【0039】
【0040】ここで、冗長2進数値Zsdの下位よりn
+1,n,n−1桁の3桁について考える。この3桁は
(9) 式に示すようになる。
+1,n,n−1桁の3桁について考える。この3桁は
(9) 式に示すようになる。
【0041】
【0042】(9) 式は、以下に示す3つのグループに分
割できる。
割できる。
【0043】
【0044】ここで、[1]はZsdn とZsdn-1 が
同符号の数値である場合、[2]はZsdn-1 が0であ
る場合、[3]はZsdn とZsdn-1 が異符号の数値
である場合である。
同符号の数値である場合、[2]はZsdn-1 が0であ
る場合、[3]はZsdn とZsdn-1 が異符号の数値
である場合である。
【0045】まず、[1]の場合について考える。最上
位有意桁位置は、下位よりn桁目になる。ここで、ある
桁のスキャン値Zk は、下位からの中間桁上げCk-1 と
その桁の中間和Sk の加算値が“0”であるときは
“0”、加算値が“0”以外であるときは“1”である
と定義する。いま、(Zsdn+1 ,Zsdn ,Zsd
n-1)=(0,1,1)の場合を例に、各桁をどのよう
に中間和、中間桁上げに分けるかを考える。中間和、中
間桁上げの組合せとしては、(2) 式に示してある。Zs
dn+1 =0は、中間和、中間桁上げに分ける組合せ(こ
れを(C,S)n+1 とする)として、(C,S)n+1 =
(0,0)しか存在しない。また、Zsdn =1の場合
は、(C,S)n =(0,1),(1,T)の二通り存
在するが、ここでは、(C,S)n =(0,1)を採用
する。これは、中間桁上げCn =1となる(C,S)n
=(1,T)を採用した場合、n+1桁において、スキ
ャン値を求めた場合、Zn+1 =Cn +Sn+1 =1になっ
てしまい、スキャン値Zにおいて、最も上位に1が存在
する位置(以下、スキャン値最上位1位置とする)が、
最上位有意桁位置の1桁上位になってしまうからであ
る。すなわち、1桁上位の値が0である場合、その1桁
下位の値を中間和中間桁上げに分類する場合、(C,
S)n =(0,1)となるように、分割しなければなら
ない。
位有意桁位置は、下位よりn桁目になる。ここで、ある
桁のスキャン値Zk は、下位からの中間桁上げCk-1 と
その桁の中間和Sk の加算値が“0”であるときは
“0”、加算値が“0”以外であるときは“1”である
と定義する。いま、(Zsdn+1 ,Zsdn ,Zsd
n-1)=(0,1,1)の場合を例に、各桁をどのよう
に中間和、中間桁上げに分けるかを考える。中間和、中
間桁上げの組合せとしては、(2) 式に示してある。Zs
dn+1 =0は、中間和、中間桁上げに分ける組合せ(こ
れを(C,S)n+1 とする)として、(C,S)n+1 =
(0,0)しか存在しない。また、Zsdn =1の場合
は、(C,S)n =(0,1),(1,T)の二通り存
在するが、ここでは、(C,S)n =(0,1)を採用
する。これは、中間桁上げCn =1となる(C,S)n
=(1,T)を採用した場合、n+1桁において、スキ
ャン値を求めた場合、Zn+1 =Cn +Sn+1 =1になっ
てしまい、スキャン値Zにおいて、最も上位に1が存在
する位置(以下、スキャン値最上位1位置とする)が、
最上位有意桁位置の1桁上位になってしまうからであ
る。すなわち、1桁上位の値が0である場合、その1桁
下位の値を中間和中間桁上げに分類する場合、(C,
S)n =(0,1)となるように、分割しなければなら
ない。
【0046】今度は、さらに1桁下位の、(Zsdn ,
Zsdn-1 )=(1,1)に注目してみる。Zsdn-1
=1から(C,S)n-1 を生成するとき、(2) 式より2
通りの場合がある。すなわち、(C,S)n-1 =(1,
T),(0,1)である。いま、スキャン値最上位1位
置が下位からn桁目になる(Zn =1)ようにしなけれ
ばならない。つまりCn-1 +Sn ≠0になるようにしな
ければならない。先に述べた通り(C,S)n =(0,
1)であるから、Cn-1 として1,0どちらの場合を採
用しても、Cn-1 +Sn ≠0となり、スキャン値Zn =
1となる。したがって、(Zsdn ,Zsdn-1 )=
(1,1)の場合、(C,S)n-1 =(1,T),
(0,1)のどちらを採用してもかまわない。
Zsdn-1 )=(1,1)に注目してみる。Zsdn-1
=1から(C,S)n-1 を生成するとき、(2) 式より2
通りの場合がある。すなわち、(C,S)n-1 =(1,
T),(0,1)である。いま、スキャン値最上位1位
置が下位からn桁目になる(Zn =1)ようにしなけれ
ばならない。つまりCn-1 +Sn ≠0になるようにしな
ければならない。先に述べた通り(C,S)n =(0,
1)であるから、Cn-1 として1,0どちらの場合を採
用しても、Cn-1 +Sn ≠0となり、スキャン値Zn =
1となる。したがって、(Zsdn ,Zsdn-1 )=
(1,1)の場合、(C,S)n-1 =(1,T),
(0,1)のどちらを採用してもかまわない。
【0047】以上をまとめると、次のようになる。
(C,S)n-1 =(1,T)のとき
(C,S)n-1 =(1,T)のとき
【0048】
【0049】(C,S)n-1 =(0,1)のとき
【0050】
【0051】なお、以上は、(Zsdn+1 ,Zsdn ,
Zsdn-1 )=(0,1,1)のばあいについてのみ述
べたが、(Zsdn+1 ,Zsdn ,Zsdn-1 )=
(0,T,T)についても同様のことがいえる。したが
って、以上のことから、(Zsd k+1 ,Zsdk )を見
たばあい、以下のように、中間桁上げ中間和に分割すれ
ばよいことが解る。
Zsdn-1 )=(0,1,1)のばあいについてのみ述
べたが、(Zsdn+1 ,Zsdn ,Zsdn-1 )=
(0,T,T)についても同様のことがいえる。したが
って、以上のことから、(Zsd k+1 ,Zsdk )を見
たばあい、以下のように、中間桁上げ中間和に分割すれ
ばよいことが解る。
【0052】
【0053】次に[2]の場合について考える。最上位
有意桁位置は、n−1桁より下位桁にZsdn と同符号
の数値が存在する場合、n桁目になる。またn−1桁よ
り下位桁にZsdn と反対の符号を持つ数値が存在する
場合、n−1桁目になる。
有意桁位置は、n−1桁より下位桁にZsdn と同符号
の数値が存在する場合、n桁目になる。またn−1桁よ
り下位桁にZsdn と反対の符号を持つ数値が存在する
場合、n−1桁目になる。
【0054】以下に、スキャン値最上位1位置が最上位
有意桁位置と等しくなるような中間和中間桁上げを考え
る。例として、(Zsdn+1 ,Zsdn ,Zsdn-1 )
=(0,1,0)の場合を考える。(C,S)n =
(0,1)であることは、先に述べた通りである。ま
た、Zsdn-1 =0であるため、(2) 式より(C,S)
n-1=(0,0)である。したがって、スキャン値Zn
=1(Cn-1 +Sn =1)となり、スキャン値最上位1
位置は必ず下位からn桁目になる。したがって、n−1
桁目より下位側に−1が存在する場合(n−1桁より下
位桁にZsdn と反対の符号を持つ数値が存在する場
合)、スキャン値最上位1位置は最上位有意桁位置の1
桁上位を示すことになる。なお以上は、(Zsdn+1 ,
Zsdn ,Zsd n-1 )=(0,1,0)の場合につい
て考えたが、(Zsdn+1 ,Zsdn ,Zsdn-1 )=
(0,T,0)の場合についても同様である。
有意桁位置と等しくなるような中間和中間桁上げを考え
る。例として、(Zsdn+1 ,Zsdn ,Zsdn-1 )
=(0,1,0)の場合を考える。(C,S)n =
(0,1)であることは、先に述べた通りである。ま
た、Zsdn-1 =0であるため、(2) 式より(C,S)
n-1=(0,0)である。したがって、スキャン値Zn
=1(Cn-1 +Sn =1)となり、スキャン値最上位1
位置は必ず下位からn桁目になる。したがって、n−1
桁目より下位側に−1が存在する場合(n−1桁より下
位桁にZsdn と反対の符号を持つ数値が存在する場
合)、スキャン値最上位1位置は最上位有意桁位置の1
桁上位を示すことになる。なお以上は、(Zsdn+1 ,
Zsdn ,Zsd n-1 )=(0,1,0)の場合につい
て考えたが、(Zsdn+1 ,Zsdn ,Zsdn-1 )=
(0,T,0)の場合についても同様である。
【0055】さらに[3]の場合について考える。最上
位有意桁位置はZsdn-1 の数値と同じ数値がn−2桁
目以下に0個以上連続して存在する場合、それが途切れ
る桁の位置またはそれより1桁下位の位置になる。
位有意桁位置はZsdn-1 の数値と同じ数値がn−2桁
目以下に0個以上連続して存在する場合、それが途切れ
る桁の位置またはそれより1桁下位の位置になる。
【0056】以下に、スキャン値最上位1位置が最上位
有意桁位置と等しくなるように中間和中間桁上げを考え
る。例として、(Zsdn+1 ,Zsdn ,Zsdn-1 )
=(0,1,T)の場合を考える。(Zsdn+1 ,Zs
dn )=(0,1)のとき、(C,S)n =(0,1)
であることは、先に述べた通りである。次に(Zsd
n ,Zsdn-1 )=(1,T)のとき、(C,S)n-1
をどのようにするかを考える。いま最上位有意桁位置は
必ずn桁目より下位桁になるため、n桁目のスキャン値
Zn=0になるようにしなければならない。すなわち、
いまSn =1であるからCn-1 =Tになるような(C,
S)n を選択しなければならない。したがってZsd
n-1 =Tであるから(C,S)n-1 =(T,1)が選択
される。
有意桁位置と等しくなるように中間和中間桁上げを考え
る。例として、(Zsdn+1 ,Zsdn ,Zsdn-1 )
=(0,1,T)の場合を考える。(Zsdn+1 ,Zs
dn )=(0,1)のとき、(C,S)n =(0,1)
であることは、先に述べた通りである。次に(Zsd
n ,Zsdn-1 )=(1,T)のとき、(C,S)n-1
をどのようにするかを考える。いま最上位有意桁位置は
必ずn桁目より下位桁になるため、n桁目のスキャン値
Zn=0になるようにしなければならない。すなわち、
いまSn =1であるからCn-1 =Tになるような(C,
S)n を選択しなければならない。したがってZsd
n-1 =Tであるから(C,S)n-1 =(T,1)が選択
される。
【0057】以上をまとめると、次のようになる。
【0058】
【0059】さらに、[3]の場合において、Zsd
n-2 =Tである場合を考える。このとき最上位有意桁は
n−2桁目より下位桁になるので、したがってスキャン
値Zn- 1 =0でなくてはならない。いまSn-1 =1であ
るので、Cn-2 =Tとなるような(C,S)n-2 を選択
しなければならない。いま、Zsdn-2=Tであるか
ら、(C,S)n-2 =(T,1)が選択される。この様
子を示すと次のようになる。
n-2 =Tである場合を考える。このとき最上位有意桁は
n−2桁目より下位桁になるので、したがってスキャン
値Zn- 1 =0でなくてはならない。いまSn-1 =1であ
るので、Cn-2 =Tとなるような(C,S)n-2 を選択
しなければならない。いま、Zsdn-2=Tであるか
ら、(C,S)n-2 =(T,1)が選択される。この様
子を示すと次のようになる。
【0060】
【0061】したがって、[3]の場合においては、
(Zsdn-1 、Zsdn-2 )=(T,T)のとき、
(C,S)n-2 =(T,1)を使用しなければならな
い。もし(C,S)n-2 =(0,T)を使用すれば、ス
キャン値最上位1位置と最上位有意桁位置がまったく異
なってくる。
(Zsdn-1 、Zsdn-2 )=(T,T)のとき、
(C,S)n-2 =(T,1)を使用しなければならな
い。もし(C,S)n-2 =(0,T)を使用すれば、ス
キャン値最上位1位置と最上位有意桁位置がまったく異
なってくる。
【0062】なお以上は、(Zsdn+1 ,Zsdn ,Z
sdn-1 )=(0,1,T)の場合について考えたが、
(Zsdn+1 ,Zsdn ,Zsdn-1 )=(0,T,
1)の場合についても同様である。したがって、以上の
ことから、任意の2桁(Zsd k+1 ,Zsdk )につい
て見た場合、以下のように、Zsdk を中間桁上げ中間
和に分割すればよいことが解る。
sdn-1 )=(0,1,T)の場合について考えたが、
(Zsdn+1 ,Zsdn ,Zsdn-1 )=(0,T,
1)の場合についても同様である。したがって、以上の
ことから、任意の2桁(Zsd k+1 ,Zsdk )につい
て見た場合、以下のように、Zsdk を中間桁上げ中間
和に分割すればよいことが解る。
【0063】
【0064】以上、[1],[3]より、0以外の同じ
数値が連続して続く場合((Zsd k+1 ,Zsdk )=
(1,1)、(T,T))、[1]においては、(C,
S) k として2通りの取り方があった。しかし、[3]
の条件において、0以外の同じ数値が連続して続く場
合、(C,S)k の取り方として、1通りに限定され
る。すなわち、[1]において、(C,S)の取り方と
して、[3]の取り方をしておけばよいことになる。す
なわち、[1],[2],[3]より、1桁上位の値を
見て中間和中間桁上げを生成する規則は、表2に示すよ
うな規則になる。そして、表2に示されるような規則を
用い、スキャン値Zを生成すると、スキャン値最上位1
位置は、最上位有意桁位置と同じかもしくは1桁上位を
表わすことになる。
数値が連続して続く場合((Zsd k+1 ,Zsdk )=
(1,1)、(T,T))、[1]においては、(C,
S) k として2通りの取り方があった。しかし、[3]
の条件において、0以外の同じ数値が連続して続く場
合、(C,S)k の取り方として、1通りに限定され
る。すなわち、[1]において、(C,S)の取り方と
して、[3]の取り方をしておけばよいことになる。す
なわち、[1],[2],[3]より、1桁上位の値を
見て中間和中間桁上げを生成する規則は、表2に示すよ
うな規則になる。そして、表2に示されるような規則を
用い、スキャン値Zを生成すると、スキャン値最上位1
位置は、最上位有意桁位置と同じかもしくは1桁上位を
表わすことになる。
【0065】したがって、以上述べたように、本実施例
の先行1検出回路を使用することで、減算時の有効桁最
上位位置と同じか、1桁上位の位置で高速にしかも桁数
に関係なく予測することができる。
の先行1検出回路を使用することで、減算時の有効桁最
上位位置と同じか、1桁上位の位置で高速にしかも桁数
に関係なく予測することができる。
【0066】次に、上記規則により組み上げた実際の先
行1検出回路の一例を図2に示す。図2においては、図
1に示される上位桁からの冗長2進数入力値Zsdk+1
および下位桁からの中間桁上げCk-1 は、図2中の信号
Pk ,Zsdk-1 に集約されている。ここで、Pk は1
桁上位桁の冗長2進数値が“0”であるという信号であ
る。図2に示される回路は、減数、被減数の桁数に関係
なく、ゲート遅延段数が高々3段で構成される。すなわ
ち、本実施例の先行1検出回路を用いることで、実際に
減算するよりもはるかに早く減算時の桁落ち量を予測で
きることがわかる。
行1検出回路の一例を図2に示す。図2においては、図
1に示される上位桁からの冗長2進数入力値Zsdk+1
および下位桁からの中間桁上げCk-1 は、図2中の信号
Pk ,Zsdk-1 に集約されている。ここで、Pk は1
桁上位桁の冗長2進数値が“0”であるという信号であ
る。図2に示される回路は、減数、被減数の桁数に関係
なく、ゲート遅延段数が高々3段で構成される。すなわ
ち、本実施例の先行1検出回路を用いることで、実際に
減算するよりもはるかに早く減算時の桁落ち量を予測で
きることがわかる。
【0067】次に、本発明の先行1検出回路を用いた一
実施例の浮動小数点加減算装置の仮数演算部のブロック
図を図3に示す。従来と同じように、仮数部、指数部、
符号部からなる2つの浮動小数点データX,Yにおいて
減算を実行する場合、桁合わせ処理、仮数部加減算処
理、正規化処理の順で実行される。以下に図3に示す浮
動小数点加減算装置を例にして説明する。
実施例の浮動小数点加減算装置の仮数演算部のブロック
図を図3に示す。従来と同じように、仮数部、指数部、
符号部からなる2つの浮動小数点データX,Yにおいて
減算を実行する場合、桁合わせ処理、仮数部加減算処
理、正規化処理の順で実行される。以下に図3に示す浮
動小数点加減算装置を例にして説明する。
【0068】まず第1に桁合わせ処理は以下のように実
行される。2つの入力オペランド指数部(Xe,Ye)
は減算回路305 、シフト信号生成回路304 、セレクタ回
路306 に入力される。また、同時に、オペランド仮数部
(1.Xfまたは0.Xf,1.Yfまたは0.Yf)
も、左右1桁シフト回路301 に入力される。このとき、
減算回路305 では、オペランド指数値Xe,Yeを減算
し、絶対値(絶対値(Xe−Ye))と、符号値(符号
値(Xe−Ye))を生成する。また同時に、シフト信
号生成回路304 では、それぞれの入力オペランドが、正
規化数であるか否かを検出し、オペランドの符号値(X
s,Ys)と、減算実行信号subを使用し、2つの入
力オペランド仮数値を左右にシフトする制御信号をつく
る。左右シフト回路301 では、シフト信号生成回路304
からの制御信号を基に、2つの入力オペランド仮数値を
右または左にシフトする。左右シフト回路301の出力は
スワップ回路302 に入力され、ここで減算回路305 から
出力される符号値(符号値(Xe−Ye))に基づい
て、入力データがスワップされ、指数値の小さいオペラ
ンドの仮数値は右バレルシフト回路303 に入力され、も
う一方の指数値の小さくないオペランド仮数値は加減算
回路307 に入力される。右バレルシフト回路303 では、
減算回路305 から出力されるオペランド指数値の差の絶
対値(絶対値(Xe−Ye))だけ入力値が右にシフト
される。このようにして、桁合わせ処理が実行される。
行される。2つの入力オペランド指数部(Xe,Ye)
は減算回路305 、シフト信号生成回路304 、セレクタ回
路306 に入力される。また、同時に、オペランド仮数部
(1.Xfまたは0.Xf,1.Yfまたは0.Yf)
も、左右1桁シフト回路301 に入力される。このとき、
減算回路305 では、オペランド指数値Xe,Yeを減算
し、絶対値(絶対値(Xe−Ye))と、符号値(符号
値(Xe−Ye))を生成する。また同時に、シフト信
号生成回路304 では、それぞれの入力オペランドが、正
規化数であるか否かを検出し、オペランドの符号値(X
s,Ys)と、減算実行信号subを使用し、2つの入
力オペランド仮数値を左右にシフトする制御信号をつく
る。左右シフト回路301 では、シフト信号生成回路304
からの制御信号を基に、2つの入力オペランド仮数値を
右または左にシフトする。左右シフト回路301の出力は
スワップ回路302 に入力され、ここで減算回路305 から
出力される符号値(符号値(Xe−Ye))に基づい
て、入力データがスワップされ、指数値の小さいオペラ
ンドの仮数値は右バレルシフト回路303 に入力され、も
う一方の指数値の小さくないオペランド仮数値は加減算
回路307 に入力される。右バレルシフト回路303 では、
減算回路305 から出力されるオペランド指数値の差の絶
対値(絶対値(Xe−Ye))だけ入力値が右にシフト
される。このようにして、桁合わせ処理が実行される。
【0069】第2に、加減算処理と丸め処理が加減算回
路307 で実行される。この加減算回路307 では、演算結
果の絶対値を出力する。これに、ついては特開平1-2053
28号公報に記載されている。
路307 で実行される。この加減算回路307 では、演算結
果の絶対値を出力する。これに、ついては特開平1-2053
28号公報に記載されている。
【0070】第3に、正規化処理について説明する。前
記第2の加減算処理、丸め処理と平行して、桁落ち量の
予測が、先行1検出回路311 ,PE308 を使用し実行され
る。そして予測された桁落ち量は、PE308 よりZae とし
て出力される。
記第2の加減算処理、丸め処理と平行して、桁落ち量の
予測が、先行1検出回路311 ,PE308 を使用し実行され
る。そして予測された桁落ち量は、PE308 よりZae とし
て出力される。
【0071】左シフト回路309 では、PE308 より出力さ
れる予測された桁落ち量Zae を使用し、加減算回路307
の出力値を左シフトし出力する。また、同時に小数点よ
り上位1桁目の値を信号線L1に出力する。L1は、左
シフトした後の値が正規化されていなければ“0”であ
り、正規化されていれば“1”になる。もし、L1が
“0”であれば、予測された桁落ち量Zae は1だけ小さ
かったと言うことであるから、1桁左シフトする必要が
ある。これは、アライメント回路312 で実行される。
れる予測された桁落ち量Zae を使用し、加減算回路307
の出力値を左シフトし出力する。また、同時に小数点よ
り上位1桁目の値を信号線L1に出力する。L1は、左
シフトした後の値が正規化されていなければ“0”であ
り、正規化されていれば“1”になる。もし、L1が
“0”であれば、予測された桁落ち量Zae は1だけ小さ
かったと言うことであるから、1桁左シフトする必要が
ある。これは、アライメント回路312 で実行される。
【0072】また、同時に、予測された桁落ち量Zae
は、減算回路310 にも入力され、減算回路310 において
Ze´-Zae とZe´-Zae-1 の2つの減算が同時に実行さ
れ、データ線L2、L3に出力される。そして、セレク
タ回路313 では、信号線L1の値が“0”であればZe´
-Zae-1 の減算結果を、信号線L1の値が“1”であれ
ばZe´-Zae の減算結果Zeを出力し、正規化処理が実現
される。
は、減算回路310 にも入力され、減算回路310 において
Ze´-Zae とZe´-Zae-1 の2つの減算が同時に実行さ
れ、データ線L2、L3に出力される。そして、セレク
タ回路313 では、信号線L1の値が“0”であればZe´
-Zae-1 の減算結果を、信号線L1の値が“1”であれ
ばZe´-Zae の減算結果Zeを出力し、正規化処理が実現
される。
【0073】以上本実施例の不動小数点加減算装置で
は、桁落ちした減算結果の正規化処理のために、仮数部
の加減算結果を求めるのと並行して、正規化のために必
要なシフト量を先行1検出回路311 とPE308 を使用し
て早期に予測することができるため、正規化処理を早く
実行することができる。もしアライメント回路312 を使
用しなければならなくなっても、このアライメント回路
は高速であるので、全体として高速な浮動小数点数加減
算装置を実現できる。
は、桁落ちした減算結果の正規化処理のために、仮数部
の加減算結果を求めるのと並行して、正規化のために必
要なシフト量を先行1検出回路311 とPE308 を使用し
て早期に予測することができるため、正規化処理を早く
実行することができる。もしアライメント回路312 を使
用しなければならなくなっても、このアライメント回路
は高速であるので、全体として高速な浮動小数点数加減
算装置を実現できる。
【0074】
【発明の効果】上述のごとく本発明によれば、先行1検
出回路により、減算時に生じる桁落ち量をオペランドの
桁数に関係なく一定時間で予測することができる。そし
て、これを用いて浮動小数点加減算装置を構成すること
により、仮数値減算時に、仮数値の減算と減算結果の桁
落ち数の予測が並列して実行できるため、演算所要時間
の少ない浮動小数点加減算装置を得ることができるとい
う効果が得られ、実用上極めて有用である。
出回路により、減算時に生じる桁落ち量をオペランドの
桁数に関係なく一定時間で予測することができる。そし
て、これを用いて浮動小数点加減算装置を構成すること
により、仮数値減算時に、仮数値の減算と減算結果の桁
落ち数の予測が並列して実行できるため、演算所要時間
の少ない浮動小数点加減算装置を得ることができるとい
う効果が得られ、実用上極めて有用である。
【図1】本発明の一実施例である先行1検出回路のブロ
ック図である。
ック図である。
【図2】図1に示される先行1検出回路の論理図であ
る。
る。
【図3】本発明の一実施例の先行1検出回路を使用した
浮動小数点加減算装置の一実施例を示すブロック図であ
る。
浮動小数点加減算装置の一実施例を示すブロック図であ
る。
【図4】従来の浮動小数点加減算装置のブロック図であ
る。
る。
101 冗長2進数生成回路 102 中間和中間桁上げ生成回路 103 スキャン値生成回路 104 先行1検出回路の各桁毎の構成要素 307 加減算回路 308 プライオリティエンコーダ 309 左バレルシフト回路 311 先行1検出回路 312 アライメント回路 X 被減数 Y 減数 Zsd 冗長2進数値 C 中間桁上げ S 中間和 Z スキャン値
Claims (2)
- 【請求項1】 i桁の2進数より構成される被減数Xと
j桁の2進数より構成される減数Y(i,jは自然数)
を、各桁毎に減算し、各桁が(−1,0,1)より構成
される冗長2進数値Zsdを生成する第1の手段と、前
記冗長2進数値Zsdの下位よりk桁目(kは自然数)
の冗長2進数値Zsdk と下位よりk+1桁目の冗長
2進数値Zsdk+1 を用い、Zsdk+1 =“1”または
“−1”であるときにCk =Zsdk となり、Zsd
k+1 =“0”であるときにCk =0となるように、式Z
sdk =2・Ck +Sk にしたがい、中間桁上げCk 、
中間和Sk を生成する第2の手段と、下位桁からの中間
桁上げCk-1 と中間和Skの各桁毎の加算結果が0のと
きに“0”、0以外のときに“1”という信号Zkを生
成する第3の手段を備えた先行1検出回路。 - 【請求項2】 仮数部オペランド、指数部オペランド、
符号部オペランドを有する浮動小数点形式の2つの被演
算データを加算または減算する浮動小数点加減算装置で
あって、桁合わせ処理された後の2つの仮数部オペラン
ドがそれぞれ入力される加減算回路および請求項1記載
の先行1検出回路と、前記加減算回路で減算を実行した
減算結果が入力される左バレルシフト回路と、前記先行
1検出回路から出力される数値が入力されて最上位から
の無効桁数を求めるプライオリティエンコーダとを備
え、前記プライオリティエンコーダの出力を用い、前記
左バレルシフト回路に入力された減算結果を左シフトす
るように構成した浮動小数点加減算装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP4015601A JPH0731591B2 (ja) | 1991-01-31 | 1992-01-31 | 先行1検出回路および浮動小数点加減算装置 |
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP3-10700 | 1991-01-31 | ||
JP1070091 | 1991-01-31 | ||
JP4015601A JPH0731591B2 (ja) | 1991-01-31 | 1992-01-31 | 先行1検出回路および浮動小数点加減算装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH0553765A JPH0553765A (ja) | 1993-03-05 |
JPH0731591B2 true JPH0731591B2 (ja) | 1995-04-10 |
Family
ID=26346022
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP4015601A Expired - Lifetime JPH0731591B2 (ja) | 1991-01-31 | 1992-01-31 | 先行1検出回路および浮動小数点加減算装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JPH0731591B2 (ja) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3313002B2 (ja) * | 1994-12-02 | 2002-08-12 | 三菱電機株式会社 | 浮動小数点演算装置 |
CN103607990B (zh) | 2011-06-10 | 2016-10-26 | 宝洁公司 | 用于吸收制品的吸收结构 |
US9987176B2 (en) | 2013-08-27 | 2018-06-05 | The Procter & Gamble Company | Absorbent articles with channels |
US11207220B2 (en) | 2013-09-16 | 2021-12-28 | The Procter & Gamble Company | Absorbent articles with channels and signals |
EP2851048B1 (en) | 2013-09-19 | 2018-09-05 | The Procter and Gamble Company | Absorbent cores having material free areas |
-
1992
- 1992-01-31 JP JP4015601A patent/JPH0731591B2/ja not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
JPH0553765A (ja) | 1993-03-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2508912B2 (ja) | 浮動小数点加算装置 | |
JP4388543B2 (ja) | 3項入力の浮動小数点加減算器 | |
JP4500358B2 (ja) | 演算処理装置および演算処理方法 | |
JP3609512B2 (ja) | 演算器 | |
JP2618374B2 (ja) | 最上位の数字の位置の検出 | |
US20080288571A1 (en) | Arithmetic device for performing division or square root operation of floating point number and arithmetic method therefor | |
US5343413A (en) | Leading one anticipator and floating point addition/subtraction apparatus | |
CN108694037B (zh) | 用于在执行浮点减法时估计移位量的装置和方法 | |
US5282156A (en) | Leading one anticipator and floating point addition/subtraction apparatus employing same | |
JPH04283831A (ja) | 除算器 | |
JPH09212337A (ja) | 浮動小数点演算処理装置 | |
JPH0520028A (ja) | 加減算のための浮動小数点演算装置の仮数部処理回路 | |
JPS584369B2 (ja) | デイジツトの有効性追跡装置 | |
JPH10289096A (ja) | 論理回路及び浮動小数点演算装置 | |
JPH0731591B2 (ja) | 先行1検出回路および浮動小数点加減算装置 | |
KR100331846B1 (ko) | 실수 연산기 | |
JP2558669B2 (ja) | 浮動小数点演算装置 | |
JP5966768B2 (ja) | 演算回路、演算処理装置、及び演算処理装置の制御方法 | |
CN111290790B (zh) | 一种定点转浮点的转换装置 | |
JP2752564B2 (ja) | 先行1予測装置及び浮動小数点加減算装置 | |
JPH0635671A (ja) | 浮動小数点加減算装置 | |
JPH1040078A (ja) | 先行0、1数予測回路、浮動小数点演算装置、マイクロプロセッサおよび情報処理装置 | |
JP3298119B2 (ja) | 零フラグ生成加減算器 | |
KR20010018956A (ko) | 부동소수점 병렬 반올림 방법 및 연산장치 | |
JPS6371725A (ja) | 演算処理装置 |