JPS62168228A - 浮動小数点積和演算器 - Google Patents
浮動小数点積和演算器Info
- Publication number
- JPS62168228A JPS62168228A JP61009033A JP903386A JPS62168228A JP S62168228 A JPS62168228 A JP S62168228A JP 61009033 A JP61009033 A JP 61009033A JP 903386 A JP903386 A JP 903386A JP S62168228 A JPS62168228 A JP S62168228A
- Authority
- JP
- Japan
- Prior art keywords
- double
- output
- precision
- exponent
- mantissa
- 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.)
- Granted
Links
- 238000010606 normalization Methods 0.000 claims abstract description 36
- 238000009825 accumulation Methods 0.000 abstract description 15
- 230000002411 adverse Effects 0.000 abstract 1
- 238000007792 addition Methods 0.000 description 42
- 238000010586 diagram Methods 0.000 description 5
- 230000007423 decrease Effects 0.000 description 3
- 230000000295 complement effect Effects 0.000 description 2
- 238000001514 detection method Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000000034 method Methods 0.000 description 2
- 241000862969 Stella Species 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
Landscapes
- Complex Calculations (AREA)
Abstract
(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。
め要約のデータは記録されません。
Description
【発明の詳細な説明】
〔産業上の利用分野〕
本発明は、高精度の積和演算を短時間に行うことのでき
る、浮動小数点積和演算器に関する。
る、浮動小数点積和演算器に関する。
積和演算器が行う積和演算は、ここでは、当該演算器に
入力される2つのデータ列について、各データ列の対応
する項ごとに乗算を行い、その乗算の結果を順次加算す
ることにより、内積を求める演算である、と定義される
。
入力される2つのデータ列について、各データ列の対応
する項ごとに乗算を行い、その乗算の結果を順次加算す
ることにより、内積を求める演算である、と定義される
。
従来の積和演算器について、入力データとして単精度の
浮動小数点データを与えたとき、先ず通常の浮動小数点
乗算に従って乗算値を得、次いで加算が行われるが、こ
の場合、浮動小数点乗算の結果は、丸めによって単精度
の浮動小数点データとして得られる。
浮動小数点データを与えたとき、先ず通常の浮動小数点
乗算に従って乗算値を得、次いで加算が行われるが、こ
の場合、浮動小数点乗算の結果は、丸めによって単精度
の浮動小数点データとして得られる。
上記の通常の浮動小数点乗算を具体的に述べる。
例えば第5図(a)に示すように、数値データ61が、
指数部Eがeビット、仮数部Mがnビット(2の補数表
示)の浮動小数点データ形式で与えられたとする。この
ようなデータ同士の乗算を行うと、指数部同士の加算及
び仮数部同士の乗算が行われ、特に仮数部は2の補数表
示によって20−1ビットとなる。この2n−1ビット
の乗算結果は、正規化され、その上位nビットを取出す
ことによって、単精度のデータとして求められる。
指数部Eがeビット、仮数部Mがnビット(2の補数表
示)の浮動小数点データ形式で与えられたとする。この
ようなデータ同士の乗算を行うと、指数部同士の加算及
び仮数部同士の乗算が行われ、特に仮数部は2の補数表
示によって20−1ビットとなる。この2n−1ビット
の乗算結果は、正規化され、その上位nビットを取出す
ことによって、単精度のデータとして求められる。
上記の結果、従来の積和演算器では、単精度の浮動小数
点データとして得られた乗算値を用いて引続き加算を行
うので、積和演算の精度が低くなる。
点データとして得られた乗算値を用いて引続き加算を行
うので、積和演算の精度が低くなる。
従って、上記積和演算を高精度で行うためには、最初の
乗算による2n−1ビットの仮数部の乗算結果を丸める
ことなく、累算する必要がある。これを実際に行うには
、第5図(b)に示すようなeビットの指数部及び20
−1ビットの仮数部を有する倍精度浮動小数点データ6
2の状態で積和演算を行うことができるようにする必要
がある。
乗算による2n−1ビットの仮数部の乗算結果を丸める
ことなく、累算する必要がある。これを実際に行うには
、第5図(b)に示すようなeビットの指数部及び20
−1ビットの仮数部を有する倍精度浮動小数点データ6
2の状態で積和演算を行うことができるようにする必要
がある。
eビットの指数部及び2n−1ビットの仮数部を有する
倍精度浮動小数点データについて浮動小数点加算を行う
場合には、桁合わせシフタで倍精度の仮数部をシフトさ
せる必要がある。また、仮数部について倍精度加算を行
うと共に、最後に正規化シフタによりその加算結果につ
いて再度倍精度シフトを行う必要が生じる。
倍精度浮動小数点データについて浮動小数点加算を行う
場合には、桁合わせシフタで倍精度の仮数部をシフトさ
せる必要がある。また、仮数部について倍精度加算を行
うと共に、最後に正規化シフタによりその加算結果につ
いて再度倍精度シフトを行う必要が生じる。
上記のように倍精度浮動小数点加算を行うには、桁合わ
せシフト、加算、正規化シフトの各々に関し、倍精度処
理を行う必要がある。従って、単精度の浮動小数点加算
を行う場合に比較して処理に時間を要し、演算全体に要
する時間が長くなり、また、より多くのハードウェア量
が必要になる。
せシフト、加算、正規化シフトの各々に関し、倍精度処
理を行う必要がある。従って、単精度の浮動小数点加算
を行う場合に比較して処理に時間を要し、演算全体に要
する時間が長くなり、また、より多くのハードウェア量
が必要になる。
本発明の目的は、倍精度浮動小数点加算を含む積和演算
において、浮動小数点加算の一部を省略し、演算時間を
高速化すると同時に、ハードウェア量の増加を抑えた浮
動小数点積和演算器を提供することにある。
において、浮動小数点加算の一部を省略し、演算時間を
高速化すると同時に、ハードウェア量の増加を抑えた浮
動小数点積和演算器を提供することにある。
本発明に係る浮動小数点積和演算器は、乗算データを倍
精度で出力する浮動小数点乗算器と、前記乗算データと
後記倍精度レジスタの出力を入力し、両データについて
桁合わせシフトを行い、2つの倍精度仮数部と1つの指
数部を出力する倍精度桁合わせシフタと、前記2つの倍
精度仮数部を加算し、倍精度加算出力とオーバーフロー
出力を出力する倍精度加算器と、この倍精度加算器でオ
ーバーフローが生じたとき前記倍精度加算出力に対し1
ビット右シフトを行う1ビット右シフタと、前記倍精度
加算器でオーバーフローが生じたとき前記倍精度桁合わ
せシフタから出力される指数部に1を加算する指数部加
算器と、この指数部加算器の出力を指数部とし、前記1
ビット右シフタの出力を仮数部とした順次加算データを
格納すると共に、前記倍精度桁合わせシフタにこの順次
加算データを与える倍精度レジスタとを備えた浮動小数
点積和演算器において、前記倍精度レジスタの出力の仮
数部の最大反符号ビット(符号ビットの下位ビットの中
で符号ビットと異なるビットを有する最大桁のビット)
の位置を検出し、符号ビット(7)次の桁のビットと最
大反符号ビットとの桁の差を出力する最大反符号ビット
検出器と、この最大反符号ビット検出器の出力を用いて
、前記倍精度桁合わせシフタをシフトする手段と、前記
倍精度レジスタの出力の指数部から前記最大反符号ビッ
ト検出器の出力を減する指数部減算器と、前記指数部加
算器の出力と、前記指数部減算器の出力とを入力とし浮
動小数点加算を行う場合は前記指数部加算器の出力を選
択し、正規化を行う場合は前記指数部減算器の出力を選
択して前記倍精度レジスタの指数部へ出力する選択器と
を備え、前記倍精度レジスタに蓄えられた積和演算結果
の正規化シフトを前記倍精度桁合わせシフタを利用して
実行することを特徴としている。
精度で出力する浮動小数点乗算器と、前記乗算データと
後記倍精度レジスタの出力を入力し、両データについて
桁合わせシフトを行い、2つの倍精度仮数部と1つの指
数部を出力する倍精度桁合わせシフタと、前記2つの倍
精度仮数部を加算し、倍精度加算出力とオーバーフロー
出力を出力する倍精度加算器と、この倍精度加算器でオ
ーバーフローが生じたとき前記倍精度加算出力に対し1
ビット右シフトを行う1ビット右シフタと、前記倍精度
加算器でオーバーフローが生じたとき前記倍精度桁合わ
せシフタから出力される指数部に1を加算する指数部加
算器と、この指数部加算器の出力を指数部とし、前記1
ビット右シフタの出力を仮数部とした順次加算データを
格納すると共に、前記倍精度桁合わせシフタにこの順次
加算データを与える倍精度レジスタとを備えた浮動小数
点積和演算器において、前記倍精度レジスタの出力の仮
数部の最大反符号ビット(符号ビットの下位ビットの中
で符号ビットと異なるビットを有する最大桁のビット)
の位置を検出し、符号ビット(7)次の桁のビットと最
大反符号ビットとの桁の差を出力する最大反符号ビット
検出器と、この最大反符号ビット検出器の出力を用いて
、前記倍精度桁合わせシフタをシフトする手段と、前記
倍精度レジスタの出力の指数部から前記最大反符号ビッ
ト検出器の出力を減する指数部減算器と、前記指数部加
算器の出力と、前記指数部減算器の出力とを入力とし浮
動小数点加算を行う場合は前記指数部加算器の出力を選
択し、正規化を行う場合は前記指数部減算器の出力を選
択して前記倍精度レジスタの指数部へ出力する選択器と
を備え、前記倍精度レジスタに蓄えられた積和演算結果
の正規化シフトを前記倍精度桁合わせシフタを利用して
実行することを特徴としている。
本発明において、浮動小数点乗算器に入力される2つの
単精度の浮動小数点データ同士の乗算結果の仮数部を、
単精度に丸めることなく、倍精度のまま、倍精度桁合わ
せシフタに入力し、戻された倍精度レジスタの出力と桁
合わせを行った後、桁合わせされた倍精度仮数部同士の
加算を倍精度加算器によって行う。そして上記の仮数部
加算においてオーバーフローが生じたときには、1ビッ
ト右シツクによって仮数部を1ビット右シフトし、指数
部加算器によって桁合わせされた指数部1を加算する。
単精度の浮動小数点データ同士の乗算結果の仮数部を、
単精度に丸めることなく、倍精度のまま、倍精度桁合わ
せシフタに入力し、戻された倍精度レジスタの出力と桁
合わせを行った後、桁合わせされた倍精度仮数部同士の
加算を倍精度加算器によって行う。そして上記の仮数部
加算においてオーバーフローが生じたときには、1ビッ
ト右シツクによって仮数部を1ビット右シフトし、指数
部加算器によって桁合わせされた指数部1を加算する。
仮数部加算において桁落ちが生じた場合には、仮数部の
加算結果は非正規化数になる。しかし、非正規化数にな
っても正規化は行われず、加算結果に対し逐一正規化し
ないで積和演算を行い、これにより倍精度正規化シフト
に要する時間を省略することができる。
加算結果は非正規化数になる。しかし、非正規化数にな
っても正規化は行われず、加算結果に対し逐一正規化し
ないで積和演算を行い、これにより倍精度正規化シフト
に要する時間を省略することができる。
正規化しないで積和演算を行う場合、一般に指数部の値
は増加することはあるが、反対に減少することはない。
は増加することはあるが、反対に減少することはない。
そのため、桁落ちが生じて積和の値が減少した時に、指
数部の値が積和の指数部の値よりも小さい浮動小数点乗
算結果を積和の値に加算しようとすると、桁合わせシフ
トにより浮動小数点乗算結果の仮数部の下位ビットが、
最悪の場合、正規化を行った場合に比較して、桁落ちし
たビット数と同じたけ失われることになる。このような
場合、仮数部の演算精度(演算桁数)は、(仮数部の桁
数)−(桁落ちした桁数)になっている。
数部の値が積和の指数部の値よりも小さい浮動小数点乗
算結果を積和の値に加算しようとすると、桁合わせシフ
トにより浮動小数点乗算結果の仮数部の下位ビットが、
最悪の場合、正規化を行った場合に比較して、桁落ちし
たビット数と同じたけ失われることになる。このような
場合、仮数部の演算精度(演算桁数)は、(仮数部の桁
数)−(桁落ちした桁数)になっている。
しかし、仮数部加算は倍精度で行われるので、仮り単精
度に相当するビット数の桁落ちが生じたとしても、残り
の単精度に相当するビット数の演算精度は保存される。
度に相当するビット数の桁落ちが生じたとしても、残り
の単精度に相当するビット数の演算精度は保存される。
従って、最終的な演算結果の仮数部を単精度で得ること
を考えれば、単精度に相当するビット数以下の桁落ちま
では許容される。
を考えれば、単精度に相当するビット数以下の桁落ちま
では許容される。
一方、積和演算結果を正規化数として出力する場合、倍
精度レジスタに蓄えられた非正規化数に対して正規化演
算を行う必要があり、この正規化演算を高速に行う為に
は、前記倍精度桁合わせシフタで用いたものと同じ規模
の多桁シフタを用意する必要がある。
精度レジスタに蓄えられた非正規化数に対して正規化演
算を行う必要があり、この正規化演算を高速に行う為に
は、前記倍精度桁合わせシフタで用いたものと同じ規模
の多桁シフタを用意する必要がある。
本発明においては、倍精度レジスタに格納された最終累
算結果の仮数部を最大反符号ビット検出器及び倍精度桁
合わせシフタに入力し、先ず最大反符号ビット検出器で
正規化に必要なシフト量を求め、このシフトfflに基
づいて倍精度桁合わせシフタにおいて仮数部の正規化シ
フトを行う。一方、倍精度レジスタに格納された最終累
算結果の指数部に対し指数部減算器により前記正規化シ
フト量を減算することにより正規化結果の指数部を求め
る。このように最終累算結果の正規化を行う際の仮数部
正規化シフトの為に、新たに別のシフタを設けることな
く、桁合わせシフトの為のシフタを共用することができ
るため、多くのハードウェア量を要するシフタの数を削
減することが可能になる。
算結果の仮数部を最大反符号ビット検出器及び倍精度桁
合わせシフタに入力し、先ず最大反符号ビット検出器で
正規化に必要なシフト量を求め、このシフトfflに基
づいて倍精度桁合わせシフタにおいて仮数部の正規化シ
フトを行う。一方、倍精度レジスタに格納された最終累
算結果の指数部に対し指数部減算器により前記正規化シ
フト量を減算することにより正規化結果の指数部を求め
る。このように最終累算結果の正規化を行う際の仮数部
正規化シフトの為に、新たに別のシフタを設けることな
く、桁合わせシフトの為のシフタを共用することができ
るため、多くのハードウェア量を要するシフタの数を削
減することが可能になる。
以下に、図面を用いて本発明の詳細な説明する。
第1図は浮動小数点積和演算器の全体構成を示すブロッ
ク図である。浮動小数点積和演算器は、図示されるよう
に浮動小数点乗算器1と、倍精度桁合わせシフタ2と、
倍精度加算器3と、指数部加算器4と、1ビット右シフ
タ5と、倍精度しジスタロと、最大反符号ビット検出器
7と、指f11.部減算器14と、選択器15とから構
成される。
ク図である。浮動小数点積和演算器は、図示されるよう
に浮動小数点乗算器1と、倍精度桁合わせシフタ2と、
倍精度加算器3と、指数部加算器4と、1ビット右シフ
タ5と、倍精度しジスタロと、最大反符号ビット検出器
7と、指f11.部減算器14と、選択器15とから構
成される。
上記構成において、浮動小数点乗算器1は2つの入力端
子1a、lbを有し、各入力端子1a。
子1a、lbを有し、各入力端子1a。
lbを介して2つのe+nビットの浮動小数点データを
入力する。浮動小数点データにおいて、eビットは指数
部、nビットは仮数部である。浮動小数点乗算器1は2
つの浮動小数点データに基づいてe+2n 1ビット
の乗算データ8を出力する。乗算データ8において、e
ビットは指数部、2n−1ビットは仮数部である。倍精
度桁合わせシフタ2には、上記乗算データ8と後述され
る倍精度レジスタ6の出力データ9とが入力される。
入力する。浮動小数点データにおいて、eビットは指数
部、nビットは仮数部である。浮動小数点乗算器1は2
つの浮動小数点データに基づいてe+2n 1ビット
の乗算データ8を出力する。乗算データ8において、e
ビットは指数部、2n−1ビットは仮数部である。倍精
度桁合わせシフタ2には、上記乗算データ8と後述され
る倍精度レジスタ6の出力データ9とが入力される。
倍精度桁合わせシフタ2は、浮動小数点加算を行う場合
と左正規化演算を行う場合とで異なる処理を行う。左正
規化演算を行う場合については後述する。
と左正規化演算を行う場合とで異なる処理を行う。左正
規化演算を行う場合については後述する。
浮動小数点加算を行う場合は、乗算データ8と出力デー
タ9に関し、指数部の値の大きい方を検出して指数部出
力10として出力すると共に、指数部の値の小さい方の
仮数部につき桁合わせシフトを行った後、乗算データ8
と出力データ9に係る仮数部を仮数部出力11.12と
して出力する。
タ9に関し、指数部の値の大きい方を検出して指数部出
力10として出力すると共に、指数部の値の小さい方の
仮数部につき桁合わせシフトを行った後、乗算データ8
と出力データ9に係る仮数部を仮数部出力11.12と
して出力する。
仮数部出力11.12は倍精度加算器3に入力される。
倍精度加算器3は倍精度桁合わせシフタ2から与えられ
る2つの仮数部出力11.12を加算し、倍精度加算出
力13を出力する。また同時に倍精度加算器3は、加算
においてオーバーフローが生じた時には“1”、オーバ
ーフローが生じない時には“0”のオーバーフロー出力
17を出力する。
る2つの仮数部出力11.12を加算し、倍精度加算出
力13を出力する。また同時に倍精度加算器3は、加算
においてオーバーフローが生じた時には“1”、オーバ
ーフローが生じない時には“0”のオーバーフロー出力
17を出力する。
指数部加算器4は、倍精度桁合わせシフタ2からの指数
部出力10と倍精度加算器3からのオーバーフロー出力
17を入力し、指数部出力10の最下位ビットにオーバ
ーフロー出力17を加算する。また1ビット右シフタ5
は、倍精度加算器3からの倍精度加算出力13とオーバ
ーフロー出力17を入力し、オーバーフロー出力17が
“1”の時には倍精度加算出力13を1ビット右方向に
シフトさせて出力し、オーバーフロー出力17が“0”
の時には上記シフトを行わずそのまま出力する機能を有
する。
部出力10と倍精度加算器3からのオーバーフロー出力
17を入力し、指数部出力10の最下位ビットにオーバ
ーフロー出力17を加算する。また1ビット右シフタ5
は、倍精度加算器3からの倍精度加算出力13とオーバ
ーフロー出力17を入力し、オーバーフロー出力17が
“1”の時には倍精度加算出力13を1ビット右方向に
シフトさせて出力し、オーバーフロー出力17が“0”
の時には上記シフトを行わずそのまま出力する機能を有
する。
選択器15は浮動小数点加算を行う場合は、指数部加算
器4の出力を選択し、左正規化演算を行う時は後述する
指数部減算器14の出力を選択する。選択器15の出力
及び1ビット右シフタ5の出力は倍精度レジスタ6に与
えられる。倍精度レジスタ6は、指数部加算器4の出力
を指数部とし、1ビット右シフタ5の出力を仮数部とし
たe+2n−1ビットの浮動小数点データを格納する。
器4の出力を選択し、左正規化演算を行う時は後述する
指数部減算器14の出力を選択する。選択器15の出力
及び1ビット右シフタ5の出力は倍精度レジスタ6に与
えられる。倍精度レジスタ6は、指数部加算器4の出力
を指数部とし、1ビット右シフタ5の出力を仮数部とし
たe+2n−1ビットの浮動小数点データを格納する。
このようにして倍精度レジスタ6に格納された浮動小数
点データは、所要の累算が完了するまでの間、桁合わせ
シフタ2に与えられる。
点データは、所要の累算が完了するまでの間、桁合わせ
シフタ2に与えられる。
最大反符号ビット検出器7は左正規化演算を行う時に用
いられる。ここで左正規化演算とは、所要の累算が完了
した後に、後述する倍精度レジスタ6に格納されたe+
2n−1ビットの浮動小数点データに対して行うもので
あり、仮数部における左端の符号ビットの次のビット位
置に当該符号ビットと異なる符号ビットが来るよう、仮
数部全体を左方向にシフトさせ、その時のシフトiを指
数部から減する演算をいう。最大反符号ビット検出器7
では、倍精度レジスタ6からの出力データ9の仮数部に
おける符号ビットと最大反符号ビット(符号ビットの下
位ビットの中で符号ビットと異なるビットを有する最大
桁のビット)の位置の差を検出して検出値16を出力す
る。
いられる。ここで左正規化演算とは、所要の累算が完了
した後に、後述する倍精度レジスタ6に格納されたe+
2n−1ビットの浮動小数点データに対して行うもので
あり、仮数部における左端の符号ビットの次のビット位
置に当該符号ビットと異なる符号ビットが来るよう、仮
数部全体を左方向にシフトさせ、その時のシフトiを指
数部から減する演算をいう。最大反符号ビット検出器7
では、倍精度レジスタ6からの出力データ9の仮数部に
おける符号ビットと最大反符号ビット(符号ビットの下
位ビットの中で符号ビットと異なるビットを有する最大
桁のビット)の位置の差を検出して検出値16を出力す
る。
前記桁合わせシフタ2は、左正規化演算を行う場合は、
前記出力データ9の仮数部を、前記最大反符号ビット検
出器7が出力した検出値16だけ左シフトを行う。
前記出力データ9の仮数部を、前記最大反符号ビット検
出器7が出力した検出値16だけ左シフトを行う。
指数部減算器14では出力データ9の指数部なら最大反
符号ビット検出器7の検出値16を減じる。左正規化シ
フトを行う場合、倍精度加算器3は仮数部出力12を入
力してそのまま出力する。
符号ビット検出器7の検出値16を減じる。左正規化シ
フトを行う場合、倍精度加算器3は仮数部出力12を入
力してそのまま出力する。
選択器15は、左正規化演算を行う場合は、指数部減算
器14の値を選択し、倍精度レジスタ6には左正規化シ
フトされた浮動小数点データが入力される。第5図の例
で具体的に示すと、第5図(c)の浮動小数点データの
仮数部をmビ・ノド左方向にシフトし、指数部デーから
mを引くと、第5図(d)に示す如き浮動小数点データ
が左正規化演算されたものとして得られる。
器14の値を選択し、倍精度レジスタ6には左正規化シ
フトされた浮動小数点データが入力される。第5図の例
で具体的に示すと、第5図(c)の浮動小数点データの
仮数部をmビ・ノド左方向にシフトし、指数部デーから
mを引くと、第5図(d)に示す如き浮動小数点データ
が左正規化演算されたものとして得られる。
次に、上記構成を有する浮動小数点積和演算器の動作を
、第2図及び第3図のフローチャートに従って説明する
。第2図及び第3図のフローチャートは結合子■、■、
◎により結合される。
、第2図及び第3図のフローチャートに従って説明する
。第2図及び第3図のフローチャートは結合子■、■、
◎により結合される。
先ず、積和演算を開始すると、浮動小数点乗算器lの2
つの入力端子1a、lbのそれぞれにe+nピントの浮
動小数点データが入力される(ステップ31)。浮動小
数点乗算器1は、これらの入力データについて浮動小数
点乗算を行う(ステップS2) 、e+2n−1ビット
の乗算データ8を得て、これを出力する。
つの入力端子1a、lbのそれぞれにe+nピントの浮
動小数点データが入力される(ステップ31)。浮動小
数点乗算器1は、これらの入力データについて浮動小数
点乗算を行う(ステップS2) 、e+2n−1ビット
の乗算データ8を得て、これを出力する。
ここで、上記乗算データ80指数部をEl、指数部E1
の値をel と表現し、且つ仮数部をMlと表現する。
の値をel と表現し、且つ仮数部をMlと表現する。
一方、倍精度レジスタ6から与えられる出力データ9の
指数部をE2、指数部E2の値をe2と表現し、且つ仮
数部をM2と表現する。
指数部をE2、指数部E2の値をe2と表現し、且つ仮
数部をM2と表現する。
次のステップでは、倍精度桁合わせシフタ2において、
ElとE2の差d=el −e2を求める(ステップ
S3)。dが負の時には、倍精度桁合わせシフタ2は、
MlをId1桁左桁間方向フトしくステップS4)、こ
うして得られたMlを仮数部出力■1且つM2を仮数部
出力12とすると共にE2を指数部出力10とする(ス
テップs5)。反対にdが正のときには、M2を6桁左
方向にシフトしくステップS6)、こうして得られたM
2を仮数部出力12且つMlを仮数部出力11とすると
共に、Elを指数部出力1oとする(ステップ37)。
ElとE2の差d=el −e2を求める(ステップ
S3)。dが負の時には、倍精度桁合わせシフタ2は、
MlをId1桁左桁間方向フトしくステップS4)、こ
うして得られたMlを仮数部出力■1且つM2を仮数部
出力12とすると共にE2を指数部出力10とする(ス
テップs5)。反対にdが正のときには、M2を6桁左
方向にシフトしくステップS6)、こうして得られたM
2を仮数部出力12且つMlを仮数部出力11とすると
共に、Elを指数部出力1oとする(ステップ37)。
倍精度加算器3でCt、上記の如く定まる仮数部出力1
1.12の加算が行われ、倍精度加算器3は倍精度加算
出力13を出力する(ステップs8)。倍精度加算器3
における加算においてはオーバーフローが生じたか否か
が判断される(ステラ7’S9)。オーバーフローが生
じた場合には、1ビット右シフタ5によって倍精度加算
出力13の仮数部を1ビット右シフトしくステップ51
0)、また指数部加算器4によって倍精度桁合わせシフ
タ2から出力される指数部出力■oに1を加算する(ス
テップ511)。仮数部について上記1ビット右シフト
を行う場合には、仮数部の最上位ビットには倍精度加算
出力13のキャリー出力が入力される。オーバーフロー
が生じない場合にはステップ310.Sitは実行され
ない。
1.12の加算が行われ、倍精度加算器3は倍精度加算
出力13を出力する(ステップs8)。倍精度加算器3
における加算においてはオーバーフローが生じたか否か
が判断される(ステラ7’S9)。オーバーフローが生
じた場合には、1ビット右シフタ5によって倍精度加算
出力13の仮数部を1ビット右シフトしくステップ51
0)、また指数部加算器4によって倍精度桁合わせシフ
タ2から出力される指数部出力■oに1を加算する(ス
テップ511)。仮数部について上記1ビット右シフト
を行う場合には、仮数部の最上位ビットには倍精度加算
出力13のキャリー出力が入力される。オーバーフロー
が生じない場合にはステップ310.Sitは実行され
ない。
倍精度レジスタ6は、指数部加算器4の出力を選択した
選択器15の出力を指数部とし、1ビット右シフタ5の
出力を仮数部とした浮動小数点データを、中間結果とし
て格納する(ステップ512)。ステップ513は、累
算が終了したか否かを判断するステップで、終了してい
ない場合には、ステップS1に戻り、次の入力データに
対して、上記ステップ81〜312の処理を繰返す。
選択器15の出力を指数部とし、1ビット右シフタ5の
出力を仮数部とした浮動小数点データを、中間結果とし
て格納する(ステップ512)。ステップ513は、累
算が終了したか否かを判断するステップで、終了してい
ない場合には、ステップS1に戻り、次の入力データに
対して、上記ステップ81〜312の処理を繰返す。
累算が終了した場合には、倍精度レジスタ6に格納され
る値を、最終結果として左正規化シフトを行う。ここで
は先ず、最大反符号ビット検出器7で出力データ9の仮
数部に対する正規化シフト量を求め(ステップ514)
、次に桁合わせシフタ2で左正規化シフトを行う(ステ
ップ515)。
る値を、最終結果として左正規化シフトを行う。ここで
は先ず、最大反符号ビット検出器7で出力データ9の仮
数部に対する正規化シフト量を求め(ステップ514)
、次に桁合わせシフタ2で左正規化シフトを行う(ステ
ップ515)。
また、指数部減算器14で出力データ9の指数部から正
規化シフト量だけ値を減じ(ステップ816)、これを
指数部とし、桁合わせシフタ2の出力値を仮数部とした
値を倍精度レジスタ6に格納し、これを出力して(ステ
ップ517)終了する。
規化シフト量だけ値を減じ(ステップ816)、これを
指数部とし、桁合わせシフタ2の出力値を仮数部とした
値を倍精度レジスタ6に格納し、これを出力して(ステ
ップ517)終了する。
上記動作で明らかなように、本発明に係る浮動小数点積
和演算器では、累算の途中において逐一正規化を行わず
、累算終了後の最終結果のみを正規化する。従って1回
の累算に必要とされる浮動小数点加算に要する時間を短
縮することができる。
和演算器では、累算の途中において逐一正規化を行わず
、累算終了後の最終結果のみを正規化する。従って1回
の累算に必要とされる浮動小数点加算に要する時間を短
縮することができる。
また、浮動小数点加算における桁合わせシフトと最終結
果の正規化シフトを同じシフタを用いて行う為、ハード
ウェア量を節約することができる。
果の正規化シフトを同じシフタを用いて行う為、ハード
ウェア量を節約することができる。
次に、前記倍精度桁合わせシフタ2の詳細な構成を説明
する。
する。
第4図は倍精度桁合わせシフタ2の構成を示す回路図で
ある。倍精度桁合わせシフタ2は、図示の如く、入力レ
ジスタ201,202、減算器203.204、入力セ
レクタ205,206,212、シフト量セレクタ20
7,213、シック208、指数部出力セレクタ209
、仮数部出力セレクタ210,211,214とから構
成される装 上記構成において、第1の入力レジスタ201には前記
乗算データ8が入力し、第2のレジスタ202には前記
出力データ9が入力する。入力レジスタ201に格納さ
れた乗算データ8の指数部及び入力レジスタ202に格
納された出力データ9の指数部は減算器203,204
に供給され、減算器203は入力レジスタ201の指数
部から入力レジスタ202の指数部を減算し、減算器2
04は入力レジスタ202の指数部から入力レジスタ2
01の指数部を減算する。これの減算器203.204
の各減算出力はシフト量セレクタ207に供給される。
ある。倍精度桁合わせシフタ2は、図示の如く、入力レ
ジスタ201,202、減算器203.204、入力セ
レクタ205,206,212、シフト量セレクタ20
7,213、シック208、指数部出力セレクタ209
、仮数部出力セレクタ210,211,214とから構
成される装 上記構成において、第1の入力レジスタ201には前記
乗算データ8が入力し、第2のレジスタ202には前記
出力データ9が入力する。入力レジスタ201に格納さ
れた乗算データ8の指数部及び入力レジスタ202に格
納された出力データ9の指数部は減算器203,204
に供給され、減算器203は入力レジスタ201の指数
部から入力レジスタ202の指数部を減算し、減算器2
04は入力レジスタ202の指数部から入力レジスタ2
01の指数部を減算する。これの減算器203.204
の各減算出力はシフト量セレクタ207に供給される。
また減算器203は、前記2つの指数部の大小関係を表
す符号信号として、減算値における最上位ビットを取り
、これを符号信号CSとして出力する。この符号信号C
8において、入力レジスタ201の指数部の値が入力レ
ジスタ202の指数部の値より大きいか又は等しいとき
に、はC8の値は“O”となり、反対に入力レジスタ2
01の指数部の値が入力レジスタ202の指数部の値よ
りも小さいときにはC3の値は1″となる。この符号信
号は、入力セレクタ205.j06、シフト量セレクタ
207等に与えられる。
す符号信号として、減算値における最上位ビットを取り
、これを符号信号CSとして出力する。この符号信号C
8において、入力レジスタ201の指数部の値が入力レ
ジスタ202の指数部の値より大きいか又は等しいとき
に、はC8の値は“O”となり、反対に入力レジスタ2
01の指数部の値が入力レジスタ202の指数部の値よ
りも小さいときにはC3の値は1″となる。この符号信
号は、入力セレクタ205.j06、シフト量セレクタ
207等に与えられる。
入力セレクタ205,206のそれぞれには、入力レジ
スタ201,202の各仮数部が供給され、上記CSO
値に応じていずれかの仮数部を選択する。すなわち、入
力セレクタ205は、C8の値が“0”のときには入力
レジスタ201の2n−1ビット仮数部を選択し、C8
の値が“1”のときには入力レジスタ202の2n−1
ビットの仮数部を選択する。一方、入力セレクタ206
は、C8の値が“0”のときには入力レジスタ202の
仮数部を選択し、C3の値が“1”のときには入力レジ
スタ201の仮数部を選択する。入力セレクタ205の
出力は仮数部出力セレクタ210.211に与えられ、
入力セレクタ206の出力は入力セレクタ212に与え
られる。
スタ201,202の各仮数部が供給され、上記CSO
値に応じていずれかの仮数部を選択する。すなわち、入
力セレクタ205は、C8の値が“0”のときには入力
レジスタ201の2n−1ビット仮数部を選択し、C8
の値が“1”のときには入力レジスタ202の2n−1
ビットの仮数部を選択する。一方、入力セレクタ206
は、C8の値が“0”のときには入力レジスタ202の
仮数部を選択し、C3の値が“1”のときには入力レジ
スタ201の仮数部を選択する。入力セレクタ205の
出力は仮数部出力セレクタ210.211に与えられ、
入力セレクタ206の出力は入力セレクタ212に与え
られる。
入力セレクタ212は、浮動小数点加算を行う時は、入
力セレクタ206の出力を選択し、左正規化シフトを行
う時は、入力レジスタ202の仮数部を選択する。シフ
ト量セレクタ207は、C8の値が“O”のときに減算
器203の出力を選択し、C8の値が1″のときに減算
器204の出力を選択する。シフト量セレクタ213は
、浮動小数点加算を行う時は、シフト量セレクタ207
の出力を選択し、左正規化シフトを行う時は、最大反符
号ビット検出器7の正規化シフト量出力215を選択す
る。シフト量セレクタ213の出力はシフタ208に与
えられる。
力セレクタ206の出力を選択し、左正規化シフトを行
う時は、入力レジスタ202の仮数部を選択する。シフ
ト量セレクタ207は、C8の値が“O”のときに減算
器203の出力を選択し、C8の値が1″のときに減算
器204の出力を選択する。シフト量セレクタ213は
、浮動小数点加算を行う時は、シフト量セレクタ207
の出力を選択し、左正規化シフトを行う時は、最大反符
号ビット検出器7の正規化シフト量出力215を選択す
る。シフト量セレクタ213の出力はシフタ208に与
えられる。
シフタ208では、入力セレクタ212の出力について
、シフト量セレクタ213の出力によって指定されるビ
ット数の分だけ、浮動小数点加算の時は右シフトが、左
正規化シフトの時は左シフトが行われる。シフタ208
の出力は仮数部出力セレクタ210,211,214に
与えられる。
、シフト量セレクタ213の出力によって指定されるビ
ット数の分だけ、浮動小数点加算の時は右シフトが、左
正規化シフトの時は左シフトが行われる。シフタ208
の出力は仮数部出力セレクタ210,211,214に
与えられる。
指数部出力セレクタ209には、入力レジスタ201.
202の指数部出力及び減算器203の前記符号信号C
Sが供給される。指数部出力セレクタ209は、C8の
値が“0”の時に入力レジスタ201の指数部出力を選
択し、CSの値が“1”のときに入力レジスタ202の
指数部出力を選択する。指数部出力セレクタ209は前
記指数部出力10を出力する。
202の指数部出力及び減算器203の前記符号信号C
Sが供給される。指数部出力セレクタ209は、C8の
値が“0”の時に入力レジスタ201の指数部出力を選
択し、CSの値が“1”のときに入力レジスタ202の
指数部出力を選択する。指数部出力セレクタ209は前
記指数部出力10を出力する。
仮数部出力セレクタ210,211には減算器203か
ら符号信号C8が供給され、この符号信号によって仮数
部出力セレクタ210,211は次のようなセレクタ動
作を行う。すなわち、仮数部出力セレクタ210では、
C8の値が“0”のときには入力セレクタ205の出力
を選択し、C8の値が“1”のときにはシック208の
出力を選択し、前記仮数部出力11として出力する。ま
た仮数部出力セレクタ211では、C8O値が“0”の
ときにはシフタ208の出力を選択し、C3の値が“1
”のときには入力セレクタ205の出力を選択する。仮
数部出力セレクタ214は、浮動小数点加算の時は、仮
数部出力セレクタ211の出力を選択し、左正規化シフ
トの時は、シック208の出力を選択して仮数部出力1
2として出力する。
ら符号信号C8が供給され、この符号信号によって仮数
部出力セレクタ210,211は次のようなセレクタ動
作を行う。すなわち、仮数部出力セレクタ210では、
C8の値が“0”のときには入力セレクタ205の出力
を選択し、C8の値が“1”のときにはシック208の
出力を選択し、前記仮数部出力11として出力する。ま
た仮数部出力セレクタ211では、C8O値が“0”の
ときにはシフタ208の出力を選択し、C3の値が“1
”のときには入力セレクタ205の出力を選択する。仮
数部出力セレクタ214は、浮動小数点加算の時は、仮
数部出力セレクタ211の出力を選択し、左正規化シフ
トの時は、シック208の出力を選択して仮数部出力1
2として出力する。
以上のようにして、倍精度桁合わせシフタ2では、浮動
小数点加算を行う場合は、入力レジスタ201.202
に入力される乗算データ8と出力データ9のうち、大き
い値の指数部が指数部出力10として出力され、小さい
値の指数部を有するデータの仮数部が指数部の差の分だ
け右シフトされることによって仮数部出力11.12が
出力される。
小数点加算を行う場合は、入力レジスタ201.202
に入力される乗算データ8と出力データ9のうち、大き
い値の指数部が指数部出力10として出力され、小さい
値の指数部を有するデータの仮数部が指数部の差の分だ
け右シフトされることによって仮数部出力11.12が
出力される。
また、左正規化シフトを行う場合は、入力レジスタ20
2の仮数部を最大反符号ビット検出器7の正規化シフト
量出力で与えられる値だけ左シフトを行う。
2の仮数部を最大反符号ビット検出器7の正規化シフト
量出力で与えられる値だけ左シフトを行う。
以上の説明で明らかなように、本発明によれば、順次に
得られる浮動小数点乗算結果に対し倍精度小数点累算を
行う浮動小数点積和演算器において、上記浮動小数点累
算にける各加算において正規化シフトを行わず、最終的
な累算結果のみに対して正規化を行うことにより、浮動
小数点加算に要する時間を短縮化し、浮動小数点積和演
算全体に要する時間を短くすることができる効果がある
。
得られる浮動小数点乗算結果に対し倍精度小数点累算を
行う浮動小数点積和演算器において、上記浮動小数点累
算にける各加算において正規化シフトを行わず、最終的
な累算結果のみに対して正規化を行うことにより、浮動
小数点加算に要する時間を短縮化し、浮動小数点積和演
算全体に要する時間を短くすることができる効果がある
。
また最終的な累算結果の正規化を、桁合わせシックを用
いることにより、多量のハードウェア量を要するシフタ
の数を減らすことができる。
いることにより、多量のハードウェア量を要するシフタ
の数を減らすことができる。
第1図は本発明に係る浮動小数点積和演算器の全体構成
を示すブロック図、 第2図は動作説明のためのフローチャート、第3図は動
作説明のためのフローチャート、第4図は倍精度桁合わ
せシフタの詳細な構成を示す回路図、 第5図は通常の浮動小数点データ表現及び倍精度浮動小
数点データ表現を示す図である。 1・・・・・浮動小数点乗算器 2・・・・・倍精度桁合わせシフタ 3・・・・・倍精度加算器 4・・・・・指数部加算器 5・・・・・1ビット右シフタ 6・・・・・倍精度レジスタ 7・・・・・最大反符号ビ7ト検出器 14・・・・指数部減算器 15・・・・選択器
を示すブロック図、 第2図は動作説明のためのフローチャート、第3図は動
作説明のためのフローチャート、第4図は倍精度桁合わ
せシフタの詳細な構成を示す回路図、 第5図は通常の浮動小数点データ表現及び倍精度浮動小
数点データ表現を示す図である。 1・・・・・浮動小数点乗算器 2・・・・・倍精度桁合わせシフタ 3・・・・・倍精度加算器 4・・・・・指数部加算器 5・・・・・1ビット右シフタ 6・・・・・倍精度レジスタ 7・・・・・最大反符号ビ7ト検出器 14・・・・指数部減算器 15・・・・選択器
Claims (1)
- (1)乗算データを倍精度で出力する浮動小数点乗算器
と、前記乗算データと後記倍精度レジスタの出力を入力
し、両データについて桁合わせシフトを行い、2つの倍
精度仮数部と1つの指数部を出力する倍精度桁合わせシ
フタと、前記2つの倍精度仮数部を加算し、倍精度加算
出力とオーバーフロー出力を出力する倍精度加算器と、
この倍精度加算器でオーバーフローが生じたとき前記倍
精度加算出力に対し1ビット右シフトを行う1ビット右
シフタと、前記倍精度加算器でオーバーフローが生じた
とき前記倍精度桁合わせシフタから出力される指数部に
1を加算する指数部加算器と、この指数部加算器の出力
を指数部とし、前記1ビット右シフタの出力を仮数部と
した順次加算データを格納すると共に、前記倍精度桁合
わせシフタにこの順次加算データを与える倍精度レジス
タとを備えた浮動小数点積和演算器において、前記倍精
度レジスタの出力の仮数部の最大反符号ビット(符号ビ
ットの下位ビットの中で符号ビットと異なるビットを有
する最大桁のビット)の位置を検出し、符号ビットの次
の桁のビットと最大反符号ビットとの桁の差を出力する
最大反符号ビット検出器と、この最大反符号ビット検出
器の出力を用いて、前記倍精度桁合わせシフタをシフト
する手段と、前記倍精度レジスタの出力の指数部から前
記最大反符号ビット検出器の出力を減する指数部減算器
と、前記指数部加算器の出力と、前記指数部減算器の出
力とを入力とし浮動小数点加算を行う場合は前記指数部
加算器の出力を選択し、正規化を行う場合は前記指数部
減算器の出力を選択して前記倍精度レジスタの指数部へ
出力する選択器とを備え、前記倍精度レジスタに蓄えら
れた積和演算結果の正規化シフトを前記倍精度桁合わせ
シフタを利用して実行することを特徴とする浮動小数点
積和演算器。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP61009033A JPS62168228A (ja) | 1986-01-21 | 1986-01-21 | 浮動小数点積和演算器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP61009033A JPS62168228A (ja) | 1986-01-21 | 1986-01-21 | 浮動小数点積和演算器 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPS62168228A true JPS62168228A (ja) | 1987-07-24 |
JPH0552532B2 JPH0552532B2 (ja) | 1993-08-05 |
Family
ID=11709340
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP61009033A Granted JPS62168228A (ja) | 1986-01-21 | 1986-01-21 | 浮動小数点積和演算器 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JPS62168228A (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH01171023A (ja) * | 1987-12-26 | 1989-07-06 | Fujitsu Ltd | 2進浮動小数点乗算における丸め処理方式 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS5776634A (en) * | 1980-10-31 | 1982-05-13 | Hitachi Ltd | Digital signal processor |
JPS58186840A (ja) * | 1982-04-27 | 1983-10-31 | Hitachi Ltd | デ−タ処理装置 |
JPS59105142A (ja) * | 1982-12-09 | 1984-06-18 | Hitachi Ltd | フロ−テイング加算器 |
JPS6054070A (ja) * | 1983-09-02 | 1985-03-28 | Nec Corp | 演算装置 |
-
1986
- 1986-01-21 JP JP61009033A patent/JPS62168228A/ja active Granted
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS5776634A (en) * | 1980-10-31 | 1982-05-13 | Hitachi Ltd | Digital signal processor |
JPS58186840A (ja) * | 1982-04-27 | 1983-10-31 | Hitachi Ltd | デ−タ処理装置 |
JPS59105142A (ja) * | 1982-12-09 | 1984-06-18 | Hitachi Ltd | フロ−テイング加算器 |
JPS6054070A (ja) * | 1983-09-02 | 1985-03-28 | Nec Corp | 演算装置 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH01171023A (ja) * | 1987-12-26 | 1989-07-06 | Fujitsu Ltd | 2進浮動小数点乗算における丸め処理方式 |
Also Published As
Publication number | Publication date |
---|---|
JPH0552532B2 (ja) | 1993-08-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112860220B (zh) | 一种适用于多精度计算的可重构浮点乘加运算单元及方法 | |
EP0472139A2 (en) | A floating-point processor | |
US5148386A (en) | Adder-subtracter for signed absolute values | |
KR100203468B1 (ko) | 부동소수점수를 위한 산술연산장치 | |
JP7115211B2 (ja) | 演算処理装置および演算処理装置の制御方法 | |
EP0356153B1 (en) | Radix-2**n divider method and apparatus using overlapped quotient bit selection and concurrent quotient rounding and correction | |
JP2008152360A (ja) | 3項入力の浮動小数点加減算器 | |
JP3313560B2 (ja) | 浮動小数点演算処理装置 | |
EP3647939A1 (en) | Arithmetic processing apparatus and controlling method therefor | |
JP2558669B2 (ja) | 浮動小数点演算装置 | |
JPS62168228A (ja) | 浮動小数点積和演算器 | |
US7003540B2 (en) | Floating point multiplier for delimited operands | |
JPH0283728A (ja) | 浮動小数点乗算装置 | |
JPH04172526A (ja) | 浮動小数点除算器 | |
JPH0361224B2 (ja) | ||
JP2507183B2 (ja) | 浮動小数点加減算装置 | |
JPS63158626A (ja) | 演算処理装置 | |
JP3100868B2 (ja) | 浮動小数点数のための算術演算装置 | |
JPH01282633A (ja) | 非正規化数の処理方式 | |
JP2792998B2 (ja) | 加減算回路を用いた型変換装置 | |
Shapran et al. | DIVISION USING THE BASE RADIX16 NUMBER SYSTEM TO FORM FRACTION DIGITS | |
JP3124286B2 (ja) | 浮動小数点数演算装置 | |
Villalba-Moreno | Digit recurence division under HUB format | |
JPS62159224A (ja) | 浮動小数点演算回路 | |
JPH02267625A (ja) | 浮動小数点演算を用いた整数部取出し方式 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
EXPY | Cancellation because of completion of term |