JPH06187128A - 演算例外検出方法 - Google Patents
演算例外検出方法Info
- Publication number
- JPH06187128A JPH06187128A JP4341986A JP34198692A JPH06187128A JP H06187128 A JPH06187128 A JP H06187128A JP 4341986 A JP4341986 A JP 4341986A JP 34198692 A JP34198692 A JP 34198692A JP H06187128 A JPH06187128 A JP H06187128A
- Authority
- JP
- Japan
- Prior art keywords
- generation circuit
- bit
- sum
- exception
- carry
- 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.)
- Withdrawn
Links
Abstract
(57)【要約】
【目的】 本発明は、演算例外検出方法に関し、少ない
ハードウェア量で固定小数点演算の例外情報を保持する
ことを目的とする。 【構成】 セレクタ3は、固定小数点演算の場合に、前
記中間和生成回路1の出力のうち、演算対象のデータの
符号の中間和である符号ビットを選択して、これを最終
和生成回路4の前記符号ビットの上位側に隣接するビッ
トに入力する。最終和生成回路4は、中間和生成回路
1、桁上げ生成回路2及びセレクタ3からの入力に基づ
いて最終和を生成する。例外検出回路5は、固定小数点
演算の場合に、最終和生成回路4の出力のうち、符号ビ
ット及びその上位側に隣接するビットを用いて、当該演
算の例外検出を行う。
ハードウェア量で固定小数点演算の例外情報を保持する
ことを目的とする。 【構成】 セレクタ3は、固定小数点演算の場合に、前
記中間和生成回路1の出力のうち、演算対象のデータの
符号の中間和である符号ビットを選択して、これを最終
和生成回路4の前記符号ビットの上位側に隣接するビッ
トに入力する。最終和生成回路4は、中間和生成回路
1、桁上げ生成回路2及びセレクタ3からの入力に基づ
いて最終和を生成する。例外検出回路5は、固定小数点
演算の場合に、最終和生成回路4の出力のうち、符号ビ
ット及びその上位側に隣接するビットを用いて、当該演
算の例外検出を行う。
Description
【0001】
【産業上の利用分野】本発明は、演算例外検出方法に関
し、特に、固定小数点演算時においてその最終和から演
算の例外検出を行うようにした演算例外検出方法に関す
る。
し、特に、固定小数点演算時においてその最終和から演
算の例外検出を行うようにした演算例外検出方法に関す
る。
【0002】固定小数点の演算時においても、演算結果
(最終和)が表現し得るデータの範囲から外れている場
合には、これを演算の例外として検出する必要がある。
データの範囲から正の側へ外れている場合を正のオーバ
ーフロー、負の側へ外れている場合を負のオーバーフロ
ー(又はアンダフロー)という。
(最終和)が表現し得るデータの範囲から外れている場
合には、これを演算の例外として検出する必要がある。
データの範囲から正の側へ外れている場合を正のオーバ
ーフロー、負の側へ外れている場合を負のオーバーフロ
ー(又はアンダフロー)という。
【0003】
【従来の技術】固定小数点の演算回路、特に高速演算を
行うスーパーコンピュータ等における固定小数点の演算
回路の取扱うデータ形式は、図8(A)の如くである。
行うスーパーコンピュータ等における固定小数点の演算
回路の取扱うデータ形式は、図8(A)の如くである。
【0004】即ち、bit0乃至bit31は使用され
ず、その値は保証されない(無効データである)。bi
t32乃至bit63は符号付32bitデータであ
り、そのbit32は符号部(符号ビット)Sであり、
そのbit33乃至bit63は整数部である。正の整
数は符号部Sを2値信号の“0”とした上で整数部にお
いて2進数として表される。負の整数は符号部Sを2値
信号の“1”とした上で整数部において2の補数として
表される。
ず、その値は保証されない(無効データである)。bi
t32乃至bit63は符号付32bitデータであ
り、そのbit32は符号部(符号ビット)Sであり、
そのbit33乃至bit63は整数部である。正の整
数は符号部Sを2値信号の“0”とした上で整数部にお
いて2進数として表される。負の整数は符号部Sを2値
信号の“1”とした上で整数部において2の補数として
表される。
【0005】このようなデータフォーマットを採れるの
は、図8(B)に示すデータ形式を採る浮動小数点演算
と1つの演算回路を共用するためである。なお、図8
(B)のデータ形式において、bit0は符号部S、b
it1乃至bit7は指数部e、bit8乃至bit6
3は仮数部fである。
は、図8(B)に示すデータ形式を採る浮動小数点演算
と1つの演算回路を共用するためである。なお、図8
(B)のデータ形式において、bit0は符号部S、b
it1乃至bit7は指数部e、bit8乃至bit6
3は仮数部fである。
【0006】固定小数点演算は次のように行なわれる。
まず、演算対象である加数データ及び被加数データが用
意される。これら2つのデータは、共に、図8(A)の
如き符号付32bitデータからなる。
まず、演算対象である加数データ及び被加数データが用
意される。これら2つのデータは、共に、図8(A)の
如き符号付32bitデータからなる。
【0007】次に、2つのデータの中間和が生成され、
また、各桁毎に桁上げが生成される。そして、中間和と
桁上げとを加えて最終和が生成される。この最終和が演
算(加算又は減算)の結果である。この最終和について
演算の例外検出を行う必要がある。
また、各桁毎に桁上げが生成される。そして、中間和と
桁上げとを加えて最終和が生成される。この最終和が演
算(加算又は減算)の結果である。この最終和について
演算の例外検出を行う必要がある。
【0008】
【発明が解決しようとする課題】固定小数点演算を行う
場合の演算例外の検出は、次のように行なわれている。
即ち、加(減)算における符号部Sの桁上がりと数値部
分の最上位ビットからの桁上がりとが一致するか否かで
検出している。一致する場合は例外検出なしであり、不
一致の場合は例外検出ありである。
場合の演算例外の検出は、次のように行なわれている。
即ち、加(減)算における符号部Sの桁上がりと数値部
分の最上位ビットからの桁上がりとが一致するか否かで
検出している。一致する場合は例外検出なしであり、不
一致の場合は例外検出ありである。
【0009】符号部Sの桁上がりは桁上げを生成するた
めの回路(桁上げ生成回路)における符号部Sからの桁
上がりである。即ち、bit32についての桁上げを計
算した結果として得られる桁上がりである。数値部分の
最上位ビットからの桁上がりは、桁上げ生成回路におけ
る整数部の最上位からの桁上がりである。即ち、bit
33についての桁上げを計算した結果として得られる桁
上がりである。
めの回路(桁上げ生成回路)における符号部Sからの桁
上がりである。即ち、bit32についての桁上げを計
算した結果として得られる桁上がりである。数値部分の
最上位ビットからの桁上がりは、桁上げ生成回路におけ
る整数部の最上位からの桁上がりである。即ち、bit
33についての桁上げを計算した結果として得られる桁
上がりである。
【0010】この方法によれば、演算例外は検出できる
ものの、演算結果を保持するレジスタ(データレジス
タ)の他に、演算の例外検出の有無を示す情報(例外情
報)を保持するレジスタ(フラグレジスタ)が必要とな
る。なお、データレジスタは図8(B)の如きデータも
格納するため64bitの大きさとされ、例外情報はフ
ラグレジスタの所定のビットを使用して格納される。
ものの、演算結果を保持するレジスタ(データレジス
タ)の他に、演算の例外検出の有無を示す情報(例外情
報)を保持するレジスタ(フラグレジスタ)が必要とな
る。なお、データレジスタは図8(B)の如きデータも
格納するため64bitの大きさとされ、例外情報はフ
ラグレジスタの所定のビットを使用して格納される。
【0011】従って、前述の方法によれば、例外情報を
演算結果とは別に保持するため、この分ハードウェア量
(レジスタ)が多くなってしまうという問題があった。
特に、この問題は、高速演算のためにパイプライン処理
を行なう構成を採用するスーパーコンピュータ等におい
て顕著であった。即ち、演算結果を各処理ステージに転
送する際に例外情報も共に転送する必要があるため、各
処理ステージ毎にフラグレジスタが必要になる。例外情
報はフラグレジスタの全ビットを使用するものではない
が、各処理ステージのフラグレジスタのビット数を増加
させる一因となる。
演算結果とは別に保持するため、この分ハードウェア量
(レジスタ)が多くなってしまうという問題があった。
特に、この問題は、高速演算のためにパイプライン処理
を行なう構成を採用するスーパーコンピュータ等におい
て顕著であった。即ち、演算結果を各処理ステージに転
送する際に例外情報も共に転送する必要があるため、各
処理ステージ毎にフラグレジスタが必要になる。例外情
報はフラグレジスタの全ビットを使用するものではない
が、各処理ステージのフラグレジスタのビット数を増加
させる一因となる。
【0012】本発明の目的は、少ないハードウェア量で
固定小数点演算の例外情報を保持できるようにした演算
例外検出方法を提供することを目的とする。
固定小数点演算の例外情報を保持できるようにした演算
例外検出方法を提供することを目的とする。
【0013】
【課題を解決するための手段】図1は本発明の原理構成
図であり、本発明による演算回路を示す。この演算回路
は、固定小数点演算及び浮動小数点演算を行う演算回路
であって、演算対象のデータ(即ち加数データ及び被加
数データ)の対応するビット毎の中間和を生成する中間
和生成回路1と、演算対象のデータの下位からの桁上げ
を生成する桁上げ生成回路2と、中間和生成回路1及び
桁上げ生成回路2からの入力に基づいて最終和を生成す
る最終和生成回路4とを備える。更に、この演算回路
は、中間和生成回路1の出力の所定ビットを選択してこ
れを最終和生成回路4の所定ビットに入力するセレクタ
3と、最終和生成回路4の出力の複数の所定のビットの
値を用いて当該演算の例外検出を行う例外検出回路5と
を備える。
図であり、本発明による演算回路を示す。この演算回路
は、固定小数点演算及び浮動小数点演算を行う演算回路
であって、演算対象のデータ(即ち加数データ及び被加
数データ)の対応するビット毎の中間和を生成する中間
和生成回路1と、演算対象のデータの下位からの桁上げ
を生成する桁上げ生成回路2と、中間和生成回路1及び
桁上げ生成回路2からの入力に基づいて最終和を生成す
る最終和生成回路4とを備える。更に、この演算回路
は、中間和生成回路1の出力の所定ビットを選択してこ
れを最終和生成回路4の所定ビットに入力するセレクタ
3と、最終和生成回路4の出力の複数の所定のビットの
値を用いて当該演算の例外検出を行う例外検出回路5と
を備える。
【0014】セレクタ3は、固定小数点演算の場合に、
中間和生成回路1の出力のうち、演算対象のデータの符
号の中間和である符号ビットを選択して、これを最終和
生成回路4の符号ビットの上位側に隣接するビットに入
力する。
中間和生成回路1の出力のうち、演算対象のデータの符
号の中間和である符号ビットを選択して、これを最終和
生成回路4の符号ビットの上位側に隣接するビットに入
力する。
【0015】最終和生成回路4は、中間和生成回路1、
桁上げ生成回路2及びセレクタ3からの入力に基づいて
最終和を生成する。例外検出回路5が、固定小数点演算
の場合に、最終和生成回路4の出力のうち、符号ビット
及びその上位側に隣接するビットを用いて、当該演算の
例外検出を行う。
桁上げ生成回路2及びセレクタ3からの入力に基づいて
最終和を生成する。例外検出回路5が、固定小数点演算
の場合に、最終和生成回路4の出力のうち、符号ビット
及びその上位側に隣接するビットを用いて、当該演算の
例外検出を行う。
【0016】
【作用】この演算回路は、固定小数点演算と浮動小数点
演算の双方を同一の回路で行うものであるので、固定小
数点演算の場合、図8(A)と(B)との比較からも判
るように、符号部S(符号ビット)の上位側のビットは
本来無効であって使用されていない。
演算の双方を同一の回路で行うものであるので、固定小
数点演算の場合、図8(A)と(B)との比較からも判
るように、符号部S(符号ビット)の上位側のビットは
本来無効であって使用されていない。
【0017】そこで、本発明では、この無効データ部分
を利用して、ここにセレクタ3により例外検出用情報を
書込む。これにより、演算結果即ち最終和だけを知れ
ば、特に例外情報を別に保持せずに、例外検出を行うこ
とができる。従って、最終和を保持するレジスタ6とは
別のレジスタを不要にできる。あるいは、そのようなレ
ジスタのビット数を例外情報の分だけ削減することがで
きる。即ち、ハードウェア量を削減できる。
を利用して、ここにセレクタ3により例外検出用情報を
書込む。これにより、演算結果即ち最終和だけを知れ
ば、特に例外情報を別に保持せずに、例外検出を行うこ
とができる。従って、最終和を保持するレジスタ6とは
別のレジスタを不要にできる。あるいは、そのようなレ
ジスタのビット数を例外情報の分だけ削減することがで
きる。即ち、ハードウェア量を削減できる。
【0018】セレクタ3により無効データ部分に書込ま
れる例外検出用情報は、演算の例外検出の有無を示す例
外情報そのものではなく、当該検出のための情報であ
る。例外検出回路5は最終和からこの例外検出用情報を
取出して例外検出を行う。これにより、固定小数点演算
の最終和から演算の例外を検出することができる。
れる例外検出用情報は、演算の例外検出の有無を示す例
外情報そのものではなく、当該検出のための情報であ
る。例外検出回路5は最終和からこの例外検出用情報を
取出して例外検出を行う。これにより、固定小数点演算
の最終和から演算の例外を検出することができる。
【0019】また、このように、最終和に例外検出用情
報を内蔵しているので、パイプライン処理の際に当該最
終和を各処理ステージに転送する場合において、各処理
ステージにおける例外検出のためのフラグレジスタを不
要にできる。即ち、各処理ステージ毎にハードウェア量
を削減でき、全体として大幅にハードウェア量を削減で
きる。
報を内蔵しているので、パイプライン処理の際に当該最
終和を各処理ステージに転送する場合において、各処理
ステージにおける例外検出のためのフラグレジスタを不
要にできる。即ち、各処理ステージ毎にハードウェア量
を削減でき、全体として大幅にハードウェア量を削減で
きる。
【0020】
【実施例】図2乃至図6は、図1に示した演算回路を構
成する各回路部分の具体的な構成を示す。なお、本実施
例において、データの大きさ及び形式は、図8(A)及
び(B)に示したと同一である。即ち、固定小数点演算
のデータ形式は図8(A)により、浮動小数点演算のデ
ータ形式は図8(B)による。
成する各回路部分の具体的な構成を示す。なお、本実施
例において、データの大きさ及び形式は、図8(A)及
び(B)に示したと同一である。即ち、固定小数点演算
のデータ形式は図8(A)により、浮動小数点演算のデ
ータ形式は図8(B)による。
【0021】図2は中間和生成回路1の構成を示す。こ
の中間和生成回路1はG1−8乃至G1−63の排他的
論理和回路(EOR)からなる。中間和は、固定小数点
演算の場合には符号付32bitデータの全ビットにつ
いて生成する必要があり、浮動小数点演算の場合には仮
数部fの全ビットについて生成する必要がある。即ち、
前者の場合、図8(A)のbit32乃至bit63の
各ビットが対象であり、後者の場合、図8(B)のbi
t8乃至bit63の各ビットが対象である。
の中間和生成回路1はG1−8乃至G1−63の排他的
論理和回路(EOR)からなる。中間和は、固定小数点
演算の場合には符号付32bitデータの全ビットにつ
いて生成する必要があり、浮動小数点演算の場合には仮
数部fの全ビットについて生成する必要がある。即ち、
前者の場合、図8(A)のbit32乃至bit63の
各ビットが対象であり、後者の場合、図8(B)のbi
t8乃至bit63の各ビットが対象である。
【0022】そこで、よりビット数の多い浮動小数点演
算の場合に合わせて、bit8乃至bit63の各ビッ
トの中間和の演算のために、これらの各ビットに対応し
てEORゲートG1−8乃至G1−63が設けられる。
例えば、ゲートG1−nは、bitnに対応し、加数と
被加数の各々のbitnの排他的論理和を出力する。中
間和生成回路1の出力する中間和は、加数と被加数のb
it8乃至bit63の対応する各ビットの排他的論理
和からなる。
算の場合に合わせて、bit8乃至bit63の各ビッ
トの中間和の演算のために、これらの各ビットに対応し
てEORゲートG1−8乃至G1−63が設けられる。
例えば、ゲートG1−nは、bitnに対応し、加数と
被加数の各々のbitnの排他的論理和を出力する。中
間和生成回路1の出力する中間和は、加数と被加数のb
it8乃至bit63の対応する各ビットの排他的論理
和からなる。
【0023】固定小数点演算の場合、共に図8(A)の
データ形式の加数及び被加数のbit8乃至bit63
が中間和生成回路1に入力されるが、このうちbit8
乃至bit31は無効データである。中間和生成回路1
は、bit8乃至bit63の中間和を出力するが、こ
のうちbit8乃至bit31は無効データである。
データ形式の加数及び被加数のbit8乃至bit63
が中間和生成回路1に入力されるが、このうちbit8
乃至bit31は無効データである。中間和生成回路1
は、bit8乃至bit63の中間和を出力するが、こ
のうちbit8乃至bit31は無効データである。
【0024】浮動小数点演算の場合、共に図8(B)の
データ形式の加数及び被加数のbit8乃至bit63
即ち各々の仮数部fが中間和生成回路1に入力される。
中間和生成回路1は、bit8乃至bit63即ち仮数
部fの中間和を出力する。
データ形式の加数及び被加数のbit8乃至bit63
即ち各々の仮数部fが中間和生成回路1に入力される。
中間和生成回路1は、bit8乃至bit63即ち仮数
部fの中間和を出力する。
【0025】図3はセレクタ3の構成を示す。このセレ
クタ3は2入力論理積回路G3−1及びG3−2と、2
入力論理和回路G3−3とからなる。セレクタ3は、中
間和生成回路1の出力のうちbit31及びbit32
を取込んで、制御信号としての演算種別を示す入力に従
って、中間和bit31及びbit32のいずれか一方
を中間和bit31−S(中間和bit31に代える信
号)として出力する。
クタ3は2入力論理積回路G3−1及びG3−2と、2
入力論理和回路G3−3とからなる。セレクタ3は、中
間和生成回路1の出力のうちbit31及びbit32
を取込んで、制御信号としての演算種別を示す入力に従
って、中間和bit31及びbit32のいずれか一方
を中間和bit31−S(中間和bit31に代える信
号)として出力する。
【0026】制御信号は、浮動小数点演算であることを
示す信号FLと、固定小数点演算であることを示す信号
FIとからなる。浮動小数点演算の場合、信号FLが
“H”(又は“1”)とされ、信号FIが“L”(又は
“0”)とされる。固定小数点演算の場合、信号FLが
“0”とされ、信号FIが“1”とされる。
示す信号FLと、固定小数点演算であることを示す信号
FIとからなる。浮動小数点演算の場合、信号FLが
“H”(又は“1”)とされ、信号FIが“L”(又は
“0”)とされる。固定小数点演算の場合、信号FLが
“0”とされ、信号FIが“1”とされる。
【0027】固定小数点演算の場合、信号FI=“1”
によりANDゲートG3−2が開かれて中間和bit3
2が出力され、また、信号FL=“0”によりANDゲ
ートG3−1が閉じられて出力が“0”に固定される。
従って、ORゲートG3−3の出力は、ゲートG3−2
からの中間和bit32に依存する(中間和bit32
を出力する)。これにより、中間和bit32、即ち、
符号部S(符号ビット)の中間和が選択されて、当該符
号ビットの上位側に隣接するbit31の中間和bit
31−Sとされる。この中間和bit31−Sが、元の
中間和bit31に代えて、最終和生成回路4に入力さ
れる。
によりANDゲートG3−2が開かれて中間和bit3
2が出力され、また、信号FL=“0”によりANDゲ
ートG3−1が閉じられて出力が“0”に固定される。
従って、ORゲートG3−3の出力は、ゲートG3−2
からの中間和bit32に依存する(中間和bit32
を出力する)。これにより、中間和bit32、即ち、
符号部S(符号ビット)の中間和が選択されて、当該符
号ビットの上位側に隣接するbit31の中間和bit
31−Sとされる。この中間和bit31−Sが、元の
中間和bit31に代えて、最終和生成回路4に入力さ
れる。
【0028】前述した如く、固定小数点演算の場合の中
間和bit8乃至bit31は無効データである。そこ
で、これを利用して、符号ビットの中間和(bit3
2)を上位側に隣接する無効部分(bit31)に(中
間和を求めた時点で)複写する。このbit31に複写
された中間和bit32が、前述した例外検出用情報
(又はその基になる情報)として用いられる。無効デー
タである部分を利用しているので、この情報の保持のた
めのレジスタ等は不要である。
間和bit8乃至bit31は無効データである。そこ
で、これを利用して、符号ビットの中間和(bit3
2)を上位側に隣接する無効部分(bit31)に(中
間和を求めた時点で)複写する。このbit31に複写
された中間和bit32が、前述した例外検出用情報
(又はその基になる情報)として用いられる。無効デー
タである部分を利用しているので、この情報の保持のた
めのレジスタ等は不要である。
【0029】浮動小数点演算の場合、信号FL=“1”
によりゲートG3−1が開かれて中間和bit31が出
力され、また信号FI=“0”によりゲートG3−2が
閉じられて出力が“0”に固定される。従って、ゲート
G3−3の出力は、ゲートG3−1からの中間和bit
31となる。これにより、中間和bit31−Sは中間
和bit31に一致する。
によりゲートG3−1が開かれて中間和bit31が出
力され、また信号FI=“0”によりゲートG3−2が
閉じられて出力が“0”に固定される。従って、ゲート
G3−3の出力は、ゲートG3−1からの中間和bit
31となる。これにより、中間和bit31−Sは中間
和bit31に一致する。
【0030】以上により、浮動小数点演算の場合には、
中間和bit31がそのまま最終和生成回路4に入力さ
れるので、仮数部fの中間和bit8乃至bit63は
そのまま(正しく)最終和生成回路4に入力される。従
って、浮動小数点演算に支障はない。
中間和bit31がそのまま最終和生成回路4に入力さ
れるので、仮数部fの中間和bit8乃至bit63は
そのまま(正しく)最終和生成回路4に入力される。従
って、浮動小数点演算に支障はない。
【0031】図4は桁上げ生成回路2の構成を示す。こ
の桁上げ生成回路2は、中間和生成回路1と同じく、よ
りビット数の多い浮動小数点演算の仮数部fの演算を行
い得るように、bit8乃至bit63(仮数部f)の
各ビットについての桁上がりを生成する。
の桁上げ生成回路2は、中間和生成回路1と同じく、よ
りビット数の多い浮動小数点演算の仮数部fの演算を行
い得るように、bit8乃至bit63(仮数部f)の
各ビットについての桁上がりを生成する。
【0032】例えば、bitnについての桁上がりは、
加数のbitn、被加数のbitn及び加数及び被加数
のbit(n+1)から生じた桁上がりとに基づいて生
成される。即ち、桁上げbitn=“1”となるのは、
加数及び被加数のbitnが共に“1”の場合、加数及
び被加数のbitnのいずれか一方が“1”でかつ下位
のbit(n+1)からの桁上がりCn+1 が“1”の場
合である。
加数のbitn、被加数のbitn及び加数及び被加数
のbit(n+1)から生じた桁上がりとに基づいて生
成される。即ち、桁上げbitn=“1”となるのは、
加数及び被加数のbitnが共に“1”の場合、加数及
び被加数のbitnのいずれか一方が“1”でかつ下位
のbit(n+1)からの桁上がりCn+1 が“1”の場
合である。
【0033】固定小数点演算の場合、桁上げ生成回路2
は桁上げbit8乃至bit63を出力するが、このう
ちbit8乃至bit31は無効データである。浮動小
数点演算の場合、桁上げ生成回路2はbit8乃至bi
t63即ち仮数部fの桁上げを出力する。
は桁上げbit8乃至bit63を出力するが、このう
ちbit8乃至bit31は無効データである。浮動小
数点演算の場合、桁上げ生成回路2はbit8乃至bi
t63即ち仮数部fの桁上げを出力する。
【0034】図5は最終和生成回路4の構成を示す。こ
の最終和生成回路4は、主として、G4−8乃至G4−
62の排他的論理和回路(EOR)からなる。この最終
和生成回路4は、中間和生成回路1と同じく、よりビッ
ト数の多い浮動小数点演算の仮数部fの演算を行い得る
ように、bit8乃至bit63(仮数部f)の各ビッ
トについての最終和を生成すると共に、bit8からの
桁上げを(最終和bit7として)生成する。
の最終和生成回路4は、主として、G4−8乃至G4−
62の排他的論理和回路(EOR)からなる。この最終
和生成回路4は、中間和生成回路1と同じく、よりビッ
ト数の多い浮動小数点演算の仮数部fの演算を行い得る
ように、bit8乃至bit63(仮数部f)の各ビッ
トについての最終和を生成すると共に、bit8からの
桁上げを(最終和bit7として)生成する。
【0035】最終和生成回路4は、中間和生成回路1か
らの中間和bit63については、これをそのまま最終
和bit63として出力する。また、中間和bit8乃
至bit62までについては、当該ビットの中間和と1
つ下位側のビットからの桁上げとの排他的論理和を当該
ビットの最終和として出力する。例えば、中間和bit
nと桁上げbit(n+1)との排他的論理和を最終和
bitnとして出力する。更に、桁上げbit8につい
ては、これをそのまま最終和bit7として出力する。
らの中間和bit63については、これをそのまま最終
和bit63として出力する。また、中間和bit8乃
至bit62までについては、当該ビットの中間和と1
つ下位側のビットからの桁上げとの排他的論理和を当該
ビットの最終和として出力する。例えば、中間和bit
nと桁上げbit(n+1)との排他的論理和を最終和
bitnとして出力する。更に、桁上げbit8につい
ては、これをそのまま最終和bit7として出力する。
【0036】固定小数点演算の場合、最終和生成回路4
はbit7乃至bit63の最終和を出力するが、この
うちbit7乃至bit30は無効データである。ま
た、最終和bit31は、本来は無効データであるが、
本発明においては例外検出用情報である。最終和bit
32は符号部S(符号ビット)であり、最終和bit3
3乃至bit63は整数部である。
はbit7乃至bit63の最終和を出力するが、この
うちbit7乃至bit30は無効データである。ま
た、最終和bit31は、本来は無効データであるが、
本発明においては例外検出用情報である。最終和bit
32は符号部S(符号ビット)であり、最終和bit3
3乃至bit63は整数部である。
【0037】前述の如く、固定小数点演算の場合、中間
和bit31−Sは中間和bit32と同一である。従
って、最終和bit31は中間和bit32と桁上げb
it32との排他的論理和からなる。また、最終和bi
t32は中間和bit32と桁上げbit33との排他
的論理和からなる。
和bit31−Sは中間和bit32と同一である。従
って、最終和bit31は中間和bit32と桁上げb
it32との排他的論理和からなる。また、最終和bi
t32は中間和bit32と桁上げbit33との排他
的論理和からなる。
【0038】ここで、最終和bit31は、オーバーフ
ローが無ければ、常に最終和bit32と同一となるは
ずである。これは最終和bit32、即ち符号ビットが
“0”(正)の場合でも、“1”(負)の場合でも同様
である。
ローが無ければ、常に最終和bit32と同一となるは
ずである。これは最終和bit32、即ち符号ビットが
“0”(正)の場合でも、“1”(負)の場合でも同様
である。
【0039】例えば、中間和bit32が“0”であっ
たとすると、中間和bit31−Sも“0”である。ま
た、無効データbit31は、加数及び被加数において
共に“0”である(無効データは全て符号ビットの値
(この場合は“0”)と等しくされる)。従って、桁上
げbit31は“0”である。これにより、最終和bi
t31は“0”である。
たとすると、中間和bit31−Sも“0”である。ま
た、無効データbit31は、加数及び被加数において
共に“0”である(無効データは全て符号ビットの値
(この場合は“0”)と等しくされる)。従って、桁上
げbit31は“0”である。これにより、最終和bi
t31は“0”である。
【0040】この状態で、符号ビットであるbit32
への下位からの桁上がりがなければ(桁上げbit33
が“0”であれば)、最終和bit32は“0”となっ
て、最終和bit31と一致する。一方、前記桁上がり
があれば(桁上げbit33が“1”であれば)、最終
和bit32は“1”となって、最終和bit31と不
一致となる。
への下位からの桁上がりがなければ(桁上げbit33
が“0”であれば)、最終和bit32は“0”となっ
て、最終和bit31と一致する。一方、前記桁上がり
があれば(桁上げbit33が“1”であれば)、最終
和bit32は“1”となって、最終和bit31と不
一致となる。
【0041】ここで、桁上げbit33が“1”である
ということは、符号ビットへの桁上げがあるということ
であり、この場合は正のオーバーフローがあることを意
味する。この桁上げbit33の“1”は、本発明によ
れば、前述の如く最終和bit31と最終和bit32
との不一致として検出することができる。即ち、演算の
例外検出が可能である。
ということは、符号ビットへの桁上げがあるということ
であり、この場合は正のオーバーフローがあることを意
味する。この桁上げbit33の“1”は、本発明によ
れば、前述の如く最終和bit31と最終和bit32
との不一致として検出することができる。即ち、演算の
例外検出が可能である。
【0042】なお、中間和bit32が“1”の場合に
ついても、同様の理由で演算例外を検出できる。この場
合は、最終和bit31が“1”であり、かつ最終和b
it32が“0”となった時に、負のオーバーフロー
(アンダフロー)があることを検出できる。
ついても、同様の理由で演算例外を検出できる。この場
合は、最終和bit31が“1”であり、かつ最終和b
it32が“0”となった時に、負のオーバーフロー
(アンダフロー)があることを検出できる。
【0043】以上をまとめると、図6の如くになる。即
ち、最終和bit31及びbit32が共に“0”又は
“1”の場合には演算例外なしであり、両者が共に
“0”の状態であるべきところbit32が“1”にな
った場合には正のオーバーフローであり、両者が共に
“1”の状態であるべきところbit32が“0”にな
った場合には負のオーバーフローである。
ち、最終和bit31及びbit32が共に“0”又は
“1”の場合には演算例外なしであり、両者が共に
“0”の状態であるべきところbit32が“1”にな
った場合には正のオーバーフローであり、両者が共に
“1”の状態であるべきところbit32が“0”にな
った場合には負のオーバーフローである。
【0044】換言すれば、符号ビット(bit32)及
びその上位側に隣接するビット(bit31)の値が一
致する場合には演算例外なしとし、符号ビット及びその
上位側に隣接するビットの値が、各々、「1」及び
「0」の場合には正にオーバーフローとして検出し、こ
の逆の場合には負のオーバーフローとして検出する。
びその上位側に隣接するビット(bit31)の値が一
致する場合には演算例外なしとし、符号ビット及びその
上位側に隣接するビットの値が、各々、「1」及び
「0」の場合には正にオーバーフローとして検出し、こ
の逆の場合には負のオーバーフローとして検出する。
【0045】このように、本発明では、符号ビットの上
位側の無効ビットにおいて、1ビット分だけ余分に(符
号ビットの複写信号を用いた)演算を行うことによっ
て、そのための専用の(即ち余分な)ハードウェア及び
演算時間を必要とすることなく、例外検出を行ってい
る。
位側の無効ビットにおいて、1ビット分だけ余分に(符
号ビットの複写信号を用いた)演算を行うことによっ
て、そのための専用の(即ち余分な)ハードウェア及び
演算時間を必要とすることなく、例外検出を行ってい
る。
【0046】最終和生成回路4において浮動小数点演算
を行う場合、bit7乃至bit63の最終和が出力さ
れる。これは仮数部fの最終和であり、bit7は桁上
げ信号である。
を行う場合、bit7乃至bit63の最終和が出力さ
れる。これは仮数部fの最終和であり、bit7は桁上
げ信号である。
【0047】最終和は、パイプライン処理における各処
理ステージに送られレジスタ6(図1)に格納される。
この時、例外情報を最終和と共に送る必要はない。即
ち、例外情報が必要となる処理ステージには、最終和か
ら例外検出を行うために例外検出回路5が設けられる。
図7は例外検出回路5の構成を示す。この例外検出回路
5は、反転回路INV1及びINV2と、2入力論理積
回路G5−1及びG5−2とからなる。
理ステージに送られレジスタ6(図1)に格納される。
この時、例外情報を最終和と共に送る必要はない。即
ち、例外情報が必要となる処理ステージには、最終和か
ら例外検出を行うために例外検出回路5が設けられる。
図7は例外検出回路5の構成を示す。この例外検出回路
5は、反転回路INV1及びINV2と、2入力論理積
回路G5−1及びG5−2とからなる。
【0048】最終和bit31及びbit32が共に
“0”である場合及び共に“1”である場合、ANDゲ
ートG5−1及びG5−2が共に閉じられ、その出力は
共に“0”となる。即ち、演算例外は検出されない。
“0”である場合及び共に“1”である場合、ANDゲ
ートG5−1及びG5−2が共に閉じられ、その出力は
共に“0”となる。即ち、演算例外は検出されない。
【0049】最終和bit31及びbit32が各々
“0”及び“1”の場合、bit31の“0”によりゲ
ートG5−1は閉じられて出力は“0”となり、一方、
bit31の反転信号とbit32の“1”とによりゲ
ートG5−2は“1”を出力する。これにより、正のオ
ーバーフローが検出される。
“0”及び“1”の場合、bit31の“0”によりゲ
ートG5−1は閉じられて出力は“0”となり、一方、
bit31の反転信号とbit32の“1”とによりゲ
ートG5−2は“1”を出力する。これにより、正のオ
ーバーフローが検出される。
【0050】最終和bit31及びbit32が各々
“1”及び“0”の場合、ゲートG5−1は“1”を出
力し、ゲートG5−2は“0”を出力する。これによ
り、負のオーバーフローが検出される。
“1”及び“0”の場合、ゲートG5−1は“1”を出
力し、ゲートG5−2は“0”を出力する。これによ
り、負のオーバーフローが検出される。
【0051】以上、本発明を実施例により説明したが、
本発明はその主旨により種々変形可能である。例えば、
データ形式は図8(A)及び(B)に示したものに限ら
れるものではない。また、各回路1乃至5の構成も種々
変更可能である。更に、符号ビットの上位側に隣接しな
いビット(例えばbit30)をbit31に代えて用
いてもよく、符号ビットの上位側の複数のビット(例え
ばbit30,bit29)を用いてもよい。
本発明はその主旨により種々変形可能である。例えば、
データ形式は図8(A)及び(B)に示したものに限ら
れるものではない。また、各回路1乃至5の構成も種々
変更可能である。更に、符号ビットの上位側に隣接しな
いビット(例えばbit30)をbit31に代えて用
いてもよく、符号ビットの上位側の複数のビット(例え
ばbit30,bit29)を用いてもよい。
【0052】
【発明の効果】以上、説明したように、本発明によれ
ば、演算例外検出において、固定小数点演算時に無効部
分を利用して符号部を拡張して演算することによって、
最終和から演算例外を検出することができるので、最終
和と共に例外情報を転送、保持等する必要をなくしてハ
ードウェア量を減らすことができ、一方、例外情報が必
要となる場合には例外検出回路により正確に演算例外を
検出することができる。
ば、演算例外検出において、固定小数点演算時に無効部
分を利用して符号部を拡張して演算することによって、
最終和から演算例外を検出することができるので、最終
和と共に例外情報を転送、保持等する必要をなくしてハ
ードウェア量を減らすことができ、一方、例外情報が必
要となる場合には例外検出回路により正確に演算例外を
検出することができる。
【図1】本発明の原理構成図である。
【図2】中間和生成回路構成図である。
【図3】セレクタ構成図である。
【図4】桁上げ生成回路構成図である。
【図5】最終和生成回路構成図である。
【図6】例外検出の説明図である。
【図7】例外検出回路構成図である。
【図8】従来技術説明図である。
1 中間和生成回路 2 桁上げ生成回路 3 セレクタ 4 最終和生成回路 5 例外検出回路 6 レジスタ
Claims (2)
- 【請求項1】 固定小数点演算及び浮動小数点演算を行
う演算回路であって、 演算対象のデータの対応するビット毎の中間和を生成す
る中間和生成回路(1)と、 前記演算対象のデータの下位からの桁上げを生成する桁
上げ生成回路(2)と、 前記中間和生成回路(1)及び桁上げ生成回路(2)か
らの入力に基づいて最終和を生成する最終和生成回路
(4)とを備えた演算回路において、 前記中間和生成回路(1)の出力の所定ビットを選択し
てこれを前記最終和生成回路(4)の所定ビットに入力
するセレクタ(3)と、 前記最終和生成回路(4)の出力の複数の所定のビット
の値を用いて当該演算の例外検出を行う例外検出回路
(5)とを備え、 前記セレクタ(3)が、前記固定小数点演算の場合に、
前記中間和生成回路(1)の出力のうち、前記演算対象
のデータの符号の中間和である符号ビットを選択して、
これを前記最終和生成回路(4)の前記符号ビットの上
位側に隣接するビットに入力し、 前記最終和生成回路(4)が、前記中間和生成回路
(1)、桁上げ生成回路(2)及びセレクタ(3)から
の入力に基づいて前記最終和を生成し、 前記例外検出回路(5)が、前記固定小数点演算の場合
に、前記最終和生成回路(4)の出力のうち、前記符号
ビット及びその上位側に隣接するビットを用いて、当該
演算の例外検出を行うことを特徴とする演算例外検出方
法。 - 【請求項2】 前記演算対象のデータが、正の整数につ
いては符号を「0」として2進数で表され、負の整数に
ついては符号を「1」として2の補数で表される場合に
おいて、 前記符号ビット及びその上位側に隣接するビットの値が
一致する場合には演算例外なしとし、 前記符号ビット及びその上位側に隣接するビットの値
が、各々、「1」及び「0」の場合には正にオーバーフ
ローとして検出し、この逆の場合には負のオーバーフロ
ーとして検出することを特徴とする請求項1に記載の演
算例外検出方法。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP4341986A JPH06187128A (ja) | 1992-12-22 | 1992-12-22 | 演算例外検出方法 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP4341986A JPH06187128A (ja) | 1992-12-22 | 1992-12-22 | 演算例外検出方法 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JPH06187128A true JPH06187128A (ja) | 1994-07-08 |
Family
ID=18350298
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP4341986A Withdrawn JPH06187128A (ja) | 1992-12-22 | 1992-12-22 | 演算例外検出方法 |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JPH06187128A (ja) |
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN120488932A (zh) * | 2025-05-23 | 2025-08-15 | 中车青岛四方机车车辆股份有限公司 | 一种间隙传感器的异常数据检测电路及设备 |
-
1992
- 1992-12-22 JP JP4341986A patent/JPH06187128A/ja not_active Withdrawn
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN120488932A (zh) * | 2025-05-23 | 2025-08-15 | 中车青岛四方机车车辆股份有限公司 | 一种间隙传感器的异常数据检测电路及设备 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US6381624B1 (en) | Faster multiply/accumulator | |
| TWI405126B (zh) | 微處理器及其執行指令之方法 | |
| EP0328063A2 (en) | Absolute value calculating circuit having a single adder | |
| JPH087083A (ja) | 算術及び論理混合組合せを形成する3入力算術論理装置 | |
| JP2618374B2 (ja) | 最上位の数字の位置の検出 | |
| JPH07295790A (ja) | 2状態先行0/1予想機構(lza) | |
| US5111421A (en) | System for performing addition and subtraction of signed magnitude floating point binary numbers | |
| US5343413A (en) | Leading one anticipator and floating point addition/subtraction apparatus | |
| CN106528050B (zh) | 尾随或前导数字预测器 | |
| US4617641A (en) | Operation unit for floating point data having a variable length exponent part | |
| CN102495714A (zh) | 执行浮点减法的装置与方法及预测符号数字的装置与方法 | |
| US6499044B1 (en) | Leading zero/one anticipator for floating point | |
| JP3225043B2 (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 | |
| GB1579100A (en) | Digital arithmetic method and means | |
| JPH0542697B2 (ja) | ||
| JP3753275B2 (ja) | 最上位有効ビット位置予測方法 | |
| EP0332215B1 (en) | Operation circuit based on floating-point representation | |
| US11275559B2 (en) | Circular accumulator for floating point addition | |
| JPH09114641A (ja) | 最上位デジットを決定するための装置と方法 | |
| JP7044528B2 (ja) | リーディングゼロ予想 | |
| CN111290790A (zh) | 一种定点转浮点的转换装置 | |
| US7003540B2 (en) | Floating point multiplier for delimited operands | |
| US5754458A (en) | Trailing bit anticipator | |
| US7444366B2 (en) | Faster shift value calculation using modified carry-lookahead adder |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A300 | Withdrawal of application because of no request for examination |
Free format text: JAPANESE INTERMEDIATE CODE: A300 Effective date: 20000307 |