JPH0361224B2 - - Google Patents
Info
- Publication number
- JPH0361224B2 JPH0361224B2 JP22030985A JP22030985A JPH0361224B2 JP H0361224 B2 JPH0361224 B2 JP H0361224B2 JP 22030985 A JP22030985 A JP 22030985A JP 22030985 A JP22030985 A JP 22030985A JP H0361224 B2 JPH0361224 B2 JP H0361224B2
- Authority
- JP
- Japan
- Prior art keywords
- precision
- double
- output
- data
- shifter
- 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
Links
- 238000010606 normalization Methods 0.000 claims description 23
- 238000007792 addition Methods 0.000 description 32
- 238000009825 accumulation Methods 0.000 description 10
- 238000010586 diagram Methods 0.000 description 7
- 238000001514 detection method Methods 0.000 description 6
- 230000007423 decrease Effects 0.000 description 3
- 238000000034 method Methods 0.000 description 3
- 230000000295 complement effect Effects 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 1
Landscapes
- Complex Calculations (AREA)
Description
【発明の詳細な説明】
〔産業上の利用分野〕
本発明は、高精度の積和演算を短時間に行うこ
とのできる。浮動小数点積和演算器に関する。
とのできる。浮動小数点積和演算器に関する。
積和演算器が行う積和演算は、ここでは、当該
演算器に入力される2つのデータ列について、各
データ列の対応する項ごとに乗算を行い、その乗
算の結果を順次加算することにより、内積を求め
る演算である、と定義される。
演算器に入力される2つのデータ列について、各
データ列の対応する項ごとに乗算を行い、その乗
算の結果を順次加算することにより、内積を求め
る演算である、と定義される。
従来の積和演算器において、入力データとして
単精度の浮動小数点データを与えたとき、先ず通
常の浮動小数点乗算に従つて乗算値を得、次いで
加算が行なわれるが、この場合、浮動小数点乗算
の結果は、丸めによつて単精度の浮動小数点デー
タとして得られる。
単精度の浮動小数点データを与えたとき、先ず通
常の浮動小数点乗算に従つて乗算値を得、次いで
加算が行なわれるが、この場合、浮動小数点乗算
の結果は、丸めによつて単精度の浮動小数点デー
タとして得られる。
上記の通常の浮動小数点乗算を具体的に述べ
る。例えば第6図aに示すように、数値データ6
1が、指数部がeビツト、仮数部がnビツト(2
の補数表示)の浮動小数点データ形式で与えられ
たとする。このようなデータ同士の乗算を行う
と、指数部同士の加算及び仮数部同士の乗算が行
われ、特に仮数部は2の補数表示によつて2n−
ビツトとなる。この2n−ビツトの乗算結果は、
正規化され、この上位nビツトを取出すことによ
つて、単精度のデータとして求められる。
る。例えば第6図aに示すように、数値データ6
1が、指数部がeビツト、仮数部がnビツト(2
の補数表示)の浮動小数点データ形式で与えられ
たとする。このようなデータ同士の乗算を行う
と、指数部同士の加算及び仮数部同士の乗算が行
われ、特に仮数部は2の補数表示によつて2n−
ビツトとなる。この2n−ビツトの乗算結果は、
正規化され、この上位nビツトを取出すことによ
つて、単精度のデータとして求められる。
上記の結果、従来の積和演算器では、単精度の
浮動小数点データとして得られた乗算値を用いて
引続き加算を行うので、積和演算の精度が低くな
る。
浮動小数点データとして得られた乗算値を用いて
引続き加算を行うので、積和演算の精度が低くな
る。
従つて、上記積和演算を高精度で行うために
は、最初の乗算による2n−1ビツトの仮数部の
乗算結果を丸めることなく、累算する必要があ
る。これを実際に行うには、第6図bに示すよう
なeビツトの指数部及び2n−1ビツトの仮数部
を有する倍精度浮動小数点データ62の状態で積
和演算を行うことができるようにする必要があ
る。
は、最初の乗算による2n−1ビツトの仮数部の
乗算結果を丸めることなく、累算する必要があ
る。これを実際に行うには、第6図bに示すよう
なeビツトの指数部及び2n−1ビツトの仮数部
を有する倍精度浮動小数点データ62の状態で積
和演算を行うことができるようにする必要があ
る。
eビツトの指数部及び2n−1ビツトの仮数部
を有する倍精度浮動小数点データについて浮動小
数点加算を行う場合には、桁合せシフタで倍精度
の仮数部をシフトさせる必要がある。また、仮数
部について倍精度加算を行うと共に、最後に正規
化シフタによりその加算結果について再度倍精度
シフトを行う必要が生じる。
を有する倍精度浮動小数点データについて浮動小
数点加算を行う場合には、桁合せシフタで倍精度
の仮数部をシフトさせる必要がある。また、仮数
部について倍精度加算を行うと共に、最後に正規
化シフタによりその加算結果について再度倍精度
シフトを行う必要が生じる。
上記のように倍精度浮動小数点加算を行うに
は、桁合せシフト、加算、正規化シフトの各々に
関し、倍精度処理を行う必要がある。従つて単精
度の浮動小数点加算を行う場合に比較して処理に
時間を要し、演算全体に要する時間が長くなる。
は、桁合せシフト、加算、正規化シフトの各々に
関し、倍精度処理を行う必要がある。従つて単精
度の浮動小数点加算を行う場合に比較して処理に
時間を要し、演算全体に要する時間が長くなる。
本発明の目的は、倍精度浮動小数点加算を含む
積和演算において、浮動小数点加算の一部を省略
し、演算時間を高速化した浮動小数点積和演算器
を提供することにある。
積和演算において、浮動小数点加算の一部を省略
し、演算時間を高速化した浮動小数点積和演算器
を提供することにある。
本発明に係る浮動小数点積和演算器は、2つの
単精度の浮動小数点データ列を入力し、対応する
項ごとに乗算し、その乗算結果を順次加算する浮
動小数点積和演算器において、乗算データを倍精
度で出力る浮動小数点乗算器と、前記乗算データ
と順次加算データを入力し、両データについて桁
合せシフトを行い、2つの倍精度仮数部と1つの
指数部を出力する倍精度桁合せシフタと、前記2
つの倍精度仮数部を加算し、倍精度加算出力とオ
ーバーフロー出力を出力する倍精度加算器と、こ
の倍精度加算器でオーバーフローが生じたとき前
記倍精度加算出力に対し1ビツト右シフタを行う
1ビツト右シフトと、前記倍精度加算器でオーバ
ーフローが生じたとき前記倍精度桁合せシフタか
ら出力される指数部に1を加算する指数部加算器
と、この指数部加算器の出力を指数部とし、前記
1ビツト右シフタの出力を仮数部とした前記順次
加算データを格納すると共に、前記倍精度桁合せ
シフタにこの順次加算データを与える倍精度レジ
スタと、この倍精度レジスタにおける最終的な順
次加算データを左正規化を行う左正規化シフタと
を備えたことを特徴としている。
単精度の浮動小数点データ列を入力し、対応する
項ごとに乗算し、その乗算結果を順次加算する浮
動小数点積和演算器において、乗算データを倍精
度で出力る浮動小数点乗算器と、前記乗算データ
と順次加算データを入力し、両データについて桁
合せシフトを行い、2つの倍精度仮数部と1つの
指数部を出力する倍精度桁合せシフタと、前記2
つの倍精度仮数部を加算し、倍精度加算出力とオ
ーバーフロー出力を出力する倍精度加算器と、こ
の倍精度加算器でオーバーフローが生じたとき前
記倍精度加算出力に対し1ビツト右シフタを行う
1ビツト右シフトと、前記倍精度加算器でオーバ
ーフローが生じたとき前記倍精度桁合せシフタか
ら出力される指数部に1を加算する指数部加算器
と、この指数部加算器の出力を指数部とし、前記
1ビツト右シフタの出力を仮数部とした前記順次
加算データを格納すると共に、前記倍精度桁合せ
シフタにこの順次加算データを与える倍精度レジ
スタと、この倍精度レジスタにおける最終的な順
次加算データを左正規化を行う左正規化シフタと
を備えたことを特徴としている。
本発明において、浮動小数点乗算器に入力され
る2つの単精度の浮動小数点データ同士の乗算結
果の仮数部を、単精度に丸めることなく、倍精度
のまま、倍精度桁合せシフタに入力し、戻された
倍精度レジスタの出力と桁合せを行つた後桁合せ
された倍精度仮数部同士の加算を倍精度加算器に
よつて行う。そして上記の仮数部加算においてオ
ーバーフローが生じたときには、1ビツト右シフ
タによつて仮数部を1ビツト右シフトし、指数部
加算器によつて桁合せされた指数部に1を加算す
る。
る2つの単精度の浮動小数点データ同士の乗算結
果の仮数部を、単精度に丸めることなく、倍精度
のまま、倍精度桁合せシフタに入力し、戻された
倍精度レジスタの出力と桁合せを行つた後桁合せ
された倍精度仮数部同士の加算を倍精度加算器に
よつて行う。そして上記の仮数部加算においてオ
ーバーフローが生じたときには、1ビツト右シフ
タによつて仮数部を1ビツト右シフトし、指数部
加算器によつて桁合せされた指数部に1を加算す
る。
仮数部加算において桁落ちが生じた場合には、
仮数部の加算結果は非正規化数になる。しかし、
非正規化数になつても正規化は行われず、加算結
果に対し逐一正規化しないで積和演算を行い、こ
れにより倍精度正規化シフトに要する時間を省略
することができる。
仮数部の加算結果は非正規化数になる。しかし、
非正規化数になつても正規化は行われず、加算結
果に対し逐一正規化しないで積和演算を行い、こ
れにより倍精度正規化シフトに要する時間を省略
することができる。
正規化しない積和演算を行う場合、一般に指数
部の値は増加することはあるが、反対に減少する
ことはない。そのため、桁落ちが生じて積和の値
が減少した時に、指数部の値が積和の指数部の値
よりも小さい浮動小数点乗算結果を積和の値に加
算しようとすると、桁合せシフトにより、浮動小
数点乗算結果の仮数部の下位ビツトが、最悪の場
合、正規化を行つた場合に比較して、桁落ちした
ビツト数と同じだけ失われることになる。このよ
うな場合、仮数部の演算精度(演算桁数)は、
(仮数部の桁数)−(桁落ちした桁数)になつてい
る。
部の値は増加することはあるが、反対に減少する
ことはない。そのため、桁落ちが生じて積和の値
が減少した時に、指数部の値が積和の指数部の値
よりも小さい浮動小数点乗算結果を積和の値に加
算しようとすると、桁合せシフトにより、浮動小
数点乗算結果の仮数部の下位ビツトが、最悪の場
合、正規化を行つた場合に比較して、桁落ちした
ビツト数と同じだけ失われることになる。このよ
うな場合、仮数部の演算精度(演算桁数)は、
(仮数部の桁数)−(桁落ちした桁数)になつてい
る。
しかし、仮数部加算は倍精度で行われるので、
仮に単精度に相当するビツト数の桁落ちが生じた
としても、残りの単精度に相当するビツト数の演
算精度は保存される。従つて、最終的な演算結果
の仮数部を単精度で得ることを考えれば、単精度
に相当するビツト数以下の桁落ちまで許容され
る。
仮に単精度に相当するビツト数の桁落ちが生じた
としても、残りの単精度に相当するビツト数の演
算精度は保存される。従つて、最終的な演算結果
の仮数部を単精度で得ることを考えれば、単精度
に相当するビツト数以下の桁落ちまで許容され
る。
以下に、図面を用いて本発明の実施例を説明す
る。
る。
第1図は浮動小数点積和演算器の全体構成を示
すブロツク図である。浮動小数点積和演算器は、
図示されるように、浮動小数点乗算器1と、倍精
度桁合せシフト2と、倍精度加算器3と、指数部
加算器4と、1ビツト右シフタ2と、倍精度加算
器3と、指数部加算器4と、1ビツト右シフタ5
と、倍精度レジスタ6と左正規化シフタ7とから
構成される。
すブロツク図である。浮動小数点積和演算器は、
図示されるように、浮動小数点乗算器1と、倍精
度桁合せシフト2と、倍精度加算器3と、指数部
加算器4と、1ビツト右シフタ2と、倍精度加算
器3と、指数部加算器4と、1ビツト右シフタ5
と、倍精度レジスタ6と左正規化シフタ7とから
構成される。
上記構成において、浮動小数点乗算器1は2つ
入力端子1aを有し、各入力端子1aを介して2
つのe+nビツトの浮動小数点データを入力す
る。浮動小数点データにおいて、eビツトは指数
部、nビツトは仮数部である。浮動小数点乗算器
1は2つの浮動小数点データに基づいてe+2n
−1ビツトの乗算データ8を出力する。乗算デー
タ8において、eビツトは指数部、2n−1ビツ
トは仮数部である。倍精度桁合せシフタ2には、
上記乗算データ8と後述される倍精度レジスタ6
の出力データ9とが入力される。倍精度桁合せシ
フタ2は、乗算データ8と出力データ9に関し、
指数部の値の大きい方を検出して指数部出力10
として出力すると共に、指数部の値の小さい方の
仮数部につき桁合せシフトを行つた後乗算データ
8と出力データ9に係る仮数部を仮数部出力1
1,12として出力する。仮数部出力11,12
は倍精度加算器3に入力される。倍精度加算器3
は倍精度桁合せシフタ2から与えられる2つの仮
数部出力11,12を加算し、倍精度加算出力1
3を出力する。また同時に倍精度加算器3は、加
算においてオーバーフローが生じた時には“1”、
オーバーフローが生じない時には“0”のオーバ
ーフロー出力14を出力する。
入力端子1aを有し、各入力端子1aを介して2
つのe+nビツトの浮動小数点データを入力す
る。浮動小数点データにおいて、eビツトは指数
部、nビツトは仮数部である。浮動小数点乗算器
1は2つの浮動小数点データに基づいてe+2n
−1ビツトの乗算データ8を出力する。乗算デー
タ8において、eビツトは指数部、2n−1ビツ
トは仮数部である。倍精度桁合せシフタ2には、
上記乗算データ8と後述される倍精度レジスタ6
の出力データ9とが入力される。倍精度桁合せシ
フタ2は、乗算データ8と出力データ9に関し、
指数部の値の大きい方を検出して指数部出力10
として出力すると共に、指数部の値の小さい方の
仮数部につき桁合せシフトを行つた後乗算データ
8と出力データ9に係る仮数部を仮数部出力1
1,12として出力する。仮数部出力11,12
は倍精度加算器3に入力される。倍精度加算器3
は倍精度桁合せシフタ2から与えられる2つの仮
数部出力11,12を加算し、倍精度加算出力1
3を出力する。また同時に倍精度加算器3は、加
算においてオーバーフローが生じた時には“1”、
オーバーフローが生じない時には“0”のオーバ
ーフロー出力14を出力する。
指数部加算器4は、倍精度桁合せシフタ2から
の指数部出力10と倍精度加算器3からのオーバ
ーフロー出力14を入力し、指数部出力10の最
下位ビツトにオーバーフロー出力14を加算す
る。また1ビツト右シフタ5は、倍精度加算器3
からの倍精度加算出力13とオーバーフロー出力
14を入力し、オーバーフロー出力14が“1”
の時には倍精度加算出力13を1ビツト右方向に
シフトさせて出力し、オーバーフロー出力14
が、“0”の時には上記シフトを行わずそのまま
出力する機能を有する。
の指数部出力10と倍精度加算器3からのオーバ
ーフロー出力14を入力し、指数部出力10の最
下位ビツトにオーバーフロー出力14を加算す
る。また1ビツト右シフタ5は、倍精度加算器3
からの倍精度加算出力13とオーバーフロー出力
14を入力し、オーバーフロー出力14が“1”
の時には倍精度加算出力13を1ビツト右方向に
シフトさせて出力し、オーバーフロー出力14
が、“0”の時には上記シフトを行わずそのまま
出力する機能を有する。
上記指数部加算器4の出力及び1ビツト右シフ
タ5の出力は倍精度レジスタ6に与えられる。倍
精度レジスタ6は、指数部加算器4の出力を指数
部とし、1ビツト右シフタ5の出力を仮数部とし
たe+2n−1ビツトの浮動小数点データを格納
する。このようにして倍精度レジスタ6に格納さ
れた浮動小数点データは、所要の累算が完了する
までの間、桁合せシフタ2に力えられる。
タ5の出力は倍精度レジスタ6に与えられる。倍
精度レジスタ6は、指数部加算器4の出力を指数
部とし、1ビツト右シフタ5の出力を仮数部とし
たe+2n−1ビツトの浮動小数点データを格納
する。このようにして倍精度レジスタ6に格納さ
れた浮動小数点データは、所要の累算が完了する
までの間、桁合せシフタ2に力えられる。
左正規化シフタ7は、所要の累算が完了した後
に、上記倍精度レジスタ6に格納されたe+2n
−1ビツトの浮動小数点データに対して左正規化
演算を行うものである。ここで、左正規化演算と
は、仮数部における左端の符号ビツトの次のビツ
ト位置に当該符号ビツトと異なる符号ビツトが来
るように、仮数部全体を左方向にシフトさせ、そ
の時のシフト量を指数部から減ずる演算をいう。
第6図の例で具体的に示すと、第6図cの浮動小
数点データの仮数部をmビツト左方向にシフト
し、指数部からmを引くと、第6図dに示す如き
浮動小数点データが左正規化演算されたものとし
て得られる。
に、上記倍精度レジスタ6に格納されたe+2n
−1ビツトの浮動小数点データに対して左正規化
演算を行うものである。ここで、左正規化演算と
は、仮数部における左端の符号ビツトの次のビツ
ト位置に当該符号ビツトと異なる符号ビツトが来
るように、仮数部全体を左方向にシフトさせ、そ
の時のシフト量を指数部から減ずる演算をいう。
第6図の例で具体的に示すと、第6図cの浮動小
数点データの仮数部をmビツト左方向にシフト
し、指数部からmを引くと、第6図dに示す如き
浮動小数点データが左正規化演算されたものとし
て得られる。
次に上記構成を有する浮動小数点積和演算器の
動作を、第2図及び第3図のフローチヤートに従
つて説明する。第2図及び第3図のフローチヤー
トは結合子,,により結合される。
動作を、第2図及び第3図のフローチヤートに従
つて説明する。第2図及び第3図のフローチヤー
トは結合子,,により結合される。
先ず、積和演算を開始すると、浮動小数点乗算
器1の2つの入力端子1a,1aのそれぞれにe
+nビツトの浮動小数点データが入力される(ス
テツプS1)。浮動小数点乗算器1は、これらの入
力データについて浮動小数点乗算を行い(ステツ
プS2)、e+2n−1ビツトの乗算データ8を得
て、これを出力する。
器1の2つの入力端子1a,1aのそれぞれにe
+nビツトの浮動小数点データが入力される(ス
テツプS1)。浮動小数点乗算器1は、これらの入
力データについて浮動小数点乗算を行い(ステツ
プS2)、e+2n−1ビツトの乗算データ8を得
て、これを出力する。
ここで、上記乗算データ8の指数部をE1、指
数部E1の値をe1と表現し、且つ仮数部をM1と
表現する。一方、倍精度レジスタ6から与えられ
る出力データ9の指数部をE2、指数部E2の値
をe2と表現し、且つ加数部M2と表現する。
数部E1の値をe1と表現し、且つ仮数部をM1と
表現する。一方、倍精度レジスタ6から与えられ
る出力データ9の指数部をE2、指数部E2の値
をe2と表現し、且つ加数部M2と表現する。
次のステツプでは、倍精度桁合せシフタ2にお
いて、E1とE2の差d=e1−e2を求める(ステ
ツプS3)。dが負のときには、倍精度桁合せシフ
タ2は、M1を|d|桁左方向にシフトし(ステ
ツプS4)、こうして得られたM1を仮数部出力1
1且つ上記M2を仮数部出力12とすると共にE
2を指数部出力10とする(ステツプS5)。反対
にdが正のときには、M2をd桁左方向にシフト
し(ステツプS6)、こうして得られたM2を仮数
部出力12且つM1を仮数部出力11とすると共
に、E1を指数部出力10とする(ステツプ
S7)。
いて、E1とE2の差d=e1−e2を求める(ステ
ツプS3)。dが負のときには、倍精度桁合せシフ
タ2は、M1を|d|桁左方向にシフトし(ステ
ツプS4)、こうして得られたM1を仮数部出力1
1且つ上記M2を仮数部出力12とすると共にE
2を指数部出力10とする(ステツプS5)。反対
にdが正のときには、M2をd桁左方向にシフト
し(ステツプS6)、こうして得られたM2を仮数
部出力12且つM1を仮数部出力11とすると共
に、E1を指数部出力10とする(ステツプ
S7)。
倍精度加算器3では、上記の如く定まる仮数部
出力11,12の加算が行われ、倍精度加算器3
は倍精度加算出力13を出力する(ステツプ
S8)。倍精度加算器3における加算においてはオ
ーバーフローが生じたか否かが判断される。(ス
テツプS9)。オーバーフローが生じた場合には、
1ビツト右シフタ5によつて倍精度加算出力13
の仮数部を1ビツト右シフトし(ステツプS10)、
または指数部加算器4によつて倍精度桁合せシフ
タ2から出力される指数部出力10に1を加算す
る(ステツプS11)。仮数部について上記1ビツ
ト右シフトを行う場合には、仮数部の最上位ビツ
トには倍精度加算出力13のキヤリー出力が入力
される。オーバーフローが生じない場合にはステ
ツプS10,S11は実行されない。
出力11,12の加算が行われ、倍精度加算器3
は倍精度加算出力13を出力する(ステツプ
S8)。倍精度加算器3における加算においてはオ
ーバーフローが生じたか否かが判断される。(ス
テツプS9)。オーバーフローが生じた場合には、
1ビツト右シフタ5によつて倍精度加算出力13
の仮数部を1ビツト右シフトし(ステツプS10)、
または指数部加算器4によつて倍精度桁合せシフ
タ2から出力される指数部出力10に1を加算す
る(ステツプS11)。仮数部について上記1ビツ
ト右シフトを行う場合には、仮数部の最上位ビツ
トには倍精度加算出力13のキヤリー出力が入力
される。オーバーフローが生じない場合にはステ
ツプS10,S11は実行されない。
倍精度レジスタ6は、指数部加算器4の出力を
指数部とし、1ビツト右シフタ5の出力を仮数部
とした浮動小数点データを、中間結果として格納
する(ステツプS12)。ステツプ13は、累算が
終了したか否かを判断するステツプで、終了して
いない場合には、ステツプS1の戻り、次の入力
データに対して、上記ステツプS1〜S12の処理を
繰返す。
指数部とし、1ビツト右シフタ5の出力を仮数部
とした浮動小数点データを、中間結果として格納
する(ステツプS12)。ステツプ13は、累算が
終了したか否かを判断するステツプで、終了して
いない場合には、ステツプS1の戻り、次の入力
データに対して、上記ステツプS1〜S12の処理を
繰返す。
累算が終了した場合には、倍精度レジスタ6に
格納される値を、最終結果として左正規化シフタ
7で正規化し(ステツプS14)、正規化した出力
を出力して(ステツプS15)、終了する。
格納される値を、最終結果として左正規化シフタ
7で正規化し(ステツプS14)、正規化した出力
を出力して(ステツプS15)、終了する。
上記動作で明らかなように、本発明に係る浮動
小数点積和演算器では、累算の途中において逐一
正規化を行わず、累算終了後の最終結果のみを正
規化する。従つて1回の累算に必要とされる浮動
小数点加算に要する時間を短縮することができ
る。
小数点積和演算器では、累算の途中において逐一
正規化を行わず、累算終了後の最終結果のみを正
規化する。従つて1回の累算に必要とされる浮動
小数点加算に要する時間を短縮することができ
る。
次に前記倍精度桁合せシフタ2と左正規化シフ
タ7の詳細な構成を説明する。
タ7の詳細な構成を説明する。
第4図は倍精度桁合せシフタ2の構成を示す回
路図である。倍精度桁合せシフタ2は、図示の如
く、入力レジスタ201,202、減算器20
3,204、入力セレクタ205,206、シフ
ト量セレクタ207、シフタ208、指数部出力
セレクタ209、仮数部出力セレクタ210,2
11とから構成される。
路図である。倍精度桁合せシフタ2は、図示の如
く、入力レジスタ201,202、減算器20
3,204、入力セレクタ205,206、シフ
ト量セレクタ207、シフタ208、指数部出力
セレクタ209、仮数部出力セレクタ210,2
11とから構成される。
上記構成において、第1の入力レジスタ201
には前記乗算データ8が入力し、第2のレジスタ
202には前記出力データ9が入力する。入力レ
ジスタ201に格納された乗算データ8の指数部
及び入力レジスタ202に格納された出力データ
9の指数部は減算器203,204に供給され、
減算器203は入力レジスタ201の指数部から
入力レジスタ202の指数部を減算し、減算器2
04は入力レジスタ202の指数部から入力レジ
スタ201の指数部を減算する。これの減算器2
03,204の各減算出力はシフト量セレクタ2
07に供給される。
には前記乗算データ8が入力し、第2のレジスタ
202には前記出力データ9が入力する。入力レ
ジスタ201に格納された乗算データ8の指数部
及び入力レジスタ202に格納された出力データ
9の指数部は減算器203,204に供給され、
減算器203は入力レジスタ201の指数部から
入力レジスタ202の指数部を減算し、減算器2
04は入力レジスタ202の指数部から入力レジ
スタ201の指数部を減算する。これの減算器2
03,204の各減算出力はシフト量セレクタ2
07に供給される。
また減算器203は、前記2つの指数部の大小
関係を表わす符号信号として、減算値における最
上位ビツトを取り、これをCSから出力する。こ
の符号信号において、入力レジスタ201の指数
部の値が入力レジスタ202の指数部の値より大
きいか又は等しいときにはCSの値は“0”とな
り、反対に入力レジスタ201の指数部の値が入
力レジスタ202の指数部の値よりも小さいとき
にはCSの値は“1”となる。この符号信号は、
入力セレクタ205,206、シフト量セレクタ
207等に与えられる。
関係を表わす符号信号として、減算値における最
上位ビツトを取り、これをCSから出力する。こ
の符号信号において、入力レジスタ201の指数
部の値が入力レジスタ202の指数部の値より大
きいか又は等しいときにはCSの値は“0”とな
り、反対に入力レジスタ201の指数部の値が入
力レジスタ202の指数部の値よりも小さいとき
にはCSの値は“1”となる。この符号信号は、
入力セレクタ205,206、シフト量セレクタ
207等に与えられる。
入力セレクタ205,206のそれぞれには、
入力レジスタ201,202の各仮数部が供給さ
れ、上記CSの値に応じていずれかの仮数部を選
択する。すなわち、入力セレクタ205は、CS
の値が“0”のときには入力レジスタ2012n
−1ビツト仮数部を選択し、CSの値が“1”の
ときには入力レジスタ202の2n−1ビツトの
仮数部を選択する。一方、入力セレクタ206
は、CSの値が“0”のときには入力レジスタ2
02の仮数部を選択し、CSの値が“1”のとき
には入力レジスタ201の仮数部を選択する。入
力セレクタ205の出力は仮数部出力セレクタ2
10,211に与えられ、入力セレクタ206の
出力はシフタ208に与えられる。
入力レジスタ201,202の各仮数部が供給さ
れ、上記CSの値に応じていずれかの仮数部を選
択する。すなわち、入力セレクタ205は、CS
の値が“0”のときには入力レジスタ2012n
−1ビツト仮数部を選択し、CSの値が“1”の
ときには入力レジスタ202の2n−1ビツトの
仮数部を選択する。一方、入力セレクタ206
は、CSの値が“0”のときには入力レジスタ2
02の仮数部を選択し、CSの値が“1”のとき
には入力レジスタ201の仮数部を選択する。入
力セレクタ205の出力は仮数部出力セレクタ2
10,211に与えられ、入力セレクタ206の
出力はシフタ208に与えられる。
前記シフト量セレクタ207は、CSの値が
“0”のときに減算器203の出力を選択し、CS
の値が“1”のときに減算器204の出力を選択
する。シフト量セレクタ207の出力はシフタ2
08に与えられる。
“0”のときに減算器203の出力を選択し、CS
の値が“1”のときに減算器204の出力を選択
する。シフト量セレクタ207の出力はシフタ2
08に与えられる。
シフタ208では、入力セレクタ206の出力
について、シフト量セレクタ207の出力によつ
て指定されるビツト数の分だけ右シフトが行われ
る。シフタ208の出力は仮数部出力セレクタ2
10,211に与えられる。
について、シフト量セレクタ207の出力によつ
て指定されるビツト数の分だけ右シフトが行われ
る。シフタ208の出力は仮数部出力セレクタ2
10,211に与えられる。
指数部出力セレクタ209には、入力レジスタ
201,202の指数部出力及び減算器203の
前記符号信号が供給される。指数部出力セレクタ
209は、CSの値が“0”のときに入力レジス
タ201の指数部出力を選択し、CSの値が“1”
のときに入力レジスタ202の指数部出力を選択
する。指数部出力セレクタ209は前記指数部出
力10を出力する。
201,202の指数部出力及び減算器203の
前記符号信号が供給される。指数部出力セレクタ
209は、CSの値が“0”のときに入力レジス
タ201の指数部出力を選択し、CSの値が“1”
のときに入力レジスタ202の指数部出力を選択
する。指数部出力セレクタ209は前記指数部出
力10を出力する。
仮数部出力セレクタ210,211には減算器
203から符号信号が供給され、この符号信号に
よつて仮数部出力セレクタ210,211は次の
ようなセレクタ動作を行う。すなわち、仮数部出
力セレクタ210では、CSの値が“0”のとき
には入力セレクタ205の出力を選択し、CSの
値が“1”のときにはシフタ208の出力を選択
し、前記仮数部出力11として出力する。また仮
数部出力セレクタ211では、CSの値が“0”
のときにはシフタ208の出力を選択し、CSの
値が“1”のときには入力セレクタ205の出力
を選択し、前記仮数部出力12として出力する。
203から符号信号が供給され、この符号信号に
よつて仮数部出力セレクタ210,211は次の
ようなセレクタ動作を行う。すなわち、仮数部出
力セレクタ210では、CSの値が“0”のとき
には入力セレクタ205の出力を選択し、CSの
値が“1”のときにはシフタ208の出力を選択
し、前記仮数部出力11として出力する。また仮
数部出力セレクタ211では、CSの値が“0”
のときにはシフタ208の出力を選択し、CSの
値が“1”のときには入力セレクタ205の出力
を選択し、前記仮数部出力12として出力する。
以下のようにして、倍精度桁合せシフタ2で
は、入力レジスタ201,202に入力される乗
算データ8と出力データ9のうち、大きい値の指
数部が指数部出力10として出力され、小さい値
の指数部を有するデータの仮数部が指数部の差の
分だけ右シフトされることによつて仮数部出力1
1,12が出力される。
は、入力レジスタ201,202に入力される乗
算データ8と出力データ9のうち、大きい値の指
数部が指数部出力10として出力され、小さい値
の指数部を有するデータの仮数部が指数部の差の
分だけ右シフトされることによつて仮数部出力1
1,12が出力される。
第5図は左正規化シフタ7の構成を示す回路図
である。左正規化シフタ7は、図示される如く、
入力レジスタ71と、最大反符号ビツト検出回路
72と、減算器73と、シフタ74と、出力レジ
スタ75から構成される。
である。左正規化シフタ7は、図示される如く、
入力レジスタ71と、最大反符号ビツト検出回路
72と、減算器73と、シフタ74と、出力レジ
スタ75から構成される。
上記構成において、入力レジスタ71には前記
倍精度レジスタ6から累算された出力データが入
力される。入力レジスタ71の出力において、指
数部データが減算器73に与えられると共に仮数
部データが最大反符号ビツト検出回路72及びシ
フタ74に与えられる。最大反符号ビツト検出回
路72は、上記仮数部データの最大反符号ビツト
(符号ビツトの下位ビツトの中で符号ビツトと異
なるビツトを有する最大桁のビツト)の位置を検
出し、符号ビツトの次の桁のビツトと最大反符号
ビツトとの桁の差を出力する。最大反符号ビツト
検出回路72の出力は減算器73及びシフタ74
に与えられる。
倍精度レジスタ6から累算された出力データが入
力される。入力レジスタ71の出力において、指
数部データが減算器73に与えられると共に仮数
部データが最大反符号ビツト検出回路72及びシ
フタ74に与えられる。最大反符号ビツト検出回
路72は、上記仮数部データの最大反符号ビツト
(符号ビツトの下位ビツトの中で符号ビツトと異
なるビツトを有する最大桁のビツト)の位置を検
出し、符号ビツトの次の桁のビツトと最大反符号
ビツトとの桁の差を出力する。最大反符号ビツト
検出回路72の出力は減算器73及びシフタ74
に与えられる。
減算器73では、入力レジスタ71の指数部デ
ータから最大反符号ビツト検出回路72の出力が
減じられる。またシフタ74では、入力レジスタ
71の仮数部データについて最大反符号ビツト検
出回路72の出力をシフト量として左シフトが行
われる。かかる減算器73及びシフタ74の出力
に基づいて、出力レジスタ75は、減算器73の
eビツトの出力を指数部とし、シフタ74の2n
−1ビツトの出力を仮数部とした、e+2n−1
ビツトの浮動小数点データを出力する。
ータから最大反符号ビツト検出回路72の出力が
減じられる。またシフタ74では、入力レジスタ
71の仮数部データについて最大反符号ビツト検
出回路72の出力をシフト量として左シフトが行
われる。かかる減算器73及びシフタ74の出力
に基づいて、出力レジスタ75は、減算器73の
eビツトの出力を指数部とし、シフタ74の2n
−1ビツトの出力を仮数部とした、e+2n−1
ビツトの浮動小数点データを出力する。
以上の説明で明らかなように、本発明によれ
ば、順次に得られる浮動小数点乗算結果に対して
倍精度小数点累算を行う浮動小数点積和演算器に
おいて、上記浮動小数点累算における各加算にお
いて正規化シフトを行わず、最終的な累算結果の
みに対して正規化を行うことにより、浮動小数点
加算に要する時間を短縮化し、浮動小数点積和演
算全体に要する時間を短くすることができる効果
がある。
ば、順次に得られる浮動小数点乗算結果に対して
倍精度小数点累算を行う浮動小数点積和演算器に
おいて、上記浮動小数点累算における各加算にお
いて正規化シフトを行わず、最終的な累算結果の
みに対して正規化を行うことにより、浮動小数点
加算に要する時間を短縮化し、浮動小数点積和演
算全体に要する時間を短くすることができる効果
がある。
第1図は、本発明に係る浮動小数点積和演算器
の全体構成を示すブロツク図、第2図は動作説明
のためのフローチヤート、第3図は動作説明のた
めのフローチヤート、第4図は倍精度桁合せシフ
タの詳細な構成を示す回路図、第5図は左正規化
シフタの詳細な構成を示す回路図、第6図は通常
の浮動小数点データ表現及び倍精度浮動小数点デ
ータ表現を示す図である。 1……浮動小数点乗算器、2……倍精度桁合せ
シフタ、3……倍精度加算器、4……指数部加算
器、5……1ビツト右シフタ、6……倍精度レジ
スタ、7……左正規化シフタ。
の全体構成を示すブロツク図、第2図は動作説明
のためのフローチヤート、第3図は動作説明のた
めのフローチヤート、第4図は倍精度桁合せシフ
タの詳細な構成を示す回路図、第5図は左正規化
シフタの詳細な構成を示す回路図、第6図は通常
の浮動小数点データ表現及び倍精度浮動小数点デ
ータ表現を示す図である。 1……浮動小数点乗算器、2……倍精度桁合せ
シフタ、3……倍精度加算器、4……指数部加算
器、5……1ビツト右シフタ、6……倍精度レジ
スタ、7……左正規化シフタ。
Claims (1)
- 1 2つの単精度の浮動小数点データ列を入力
し、対応する項ごと乗算し、その乗算結果を順次
加算する浮動小数点積和演算器において、乗算デ
ータを倍精度で出力する浮動小数点乗算器と、前
記乗算データと順次加算データを入力し、両デー
タについて桁合せシフトを行い、2つの倍精度仮
数部と1つの指数部を出力する倍精度桁合せシフ
タと、前記2つの倍精度仮数部を加算し、倍精度
加算出力とオーバーフロー出力を出力する倍精度
加算器と、この倍精度加算器でオーバーフローが
生じたとき前記倍精度加算出力に対し1ビツト右
シフトを行う1ビツト右シフタと、前記倍精度加
算器でオーバーフローが生じたとき前記倍精度桁
合せシフタから出力される指数部に1を加算する
指数部加算器と、この指数部加算器の出力を指数
部とし、前記1ビツト右シフタの出力を仮数部と
した前記順次加算データを格納すると共に、前記
倍精度桁合せシフタにこの順次加算データを与え
る倍精度レジスタと、この倍精度レジスタにおけ
る最終的な順次加算データを左正規化を行う左正
規化シフタとを備えたことを特徴とする浮動小数
点積和演算器。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP22030985A JPS6280764A (ja) | 1985-10-04 | 1985-10-04 | 浮動小数点積和演算器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP22030985A JPS6280764A (ja) | 1985-10-04 | 1985-10-04 | 浮動小数点積和演算器 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPS6280764A JPS6280764A (ja) | 1987-04-14 |
JPH0361224B2 true JPH0361224B2 (ja) | 1991-09-19 |
Family
ID=16749121
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP22030985A Granted JPS6280764A (ja) | 1985-10-04 | 1985-10-04 | 浮動小数点積和演算器 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JPS6280764A (ja) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3845009B2 (ja) | 2001-12-28 | 2006-11-15 | 富士通株式会社 | 積和演算装置、及び積和演算方法 |
JP7114622B2 (ja) | 2017-05-17 | 2022-08-08 | グーグル エルエルシー | ハードウェアにおける行列乗算の実行 |
-
1985
- 1985-10-04 JP JP22030985A patent/JPS6280764A/ja active Granted
Also Published As
Publication number | Publication date |
---|---|
JPS6280764A (ja) | 1987-04-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP0820005B1 (en) | Method and apparatus for computing floating point data | |
EP0472139A2 (en) | A floating-point processor | |
JP4388543B2 (ja) | 3項入力の浮動小数点加減算器 | |
JPH03208170A (ja) | 数学関数の近似を計算する数値システム及び計算法 | |
KR100203468B1 (ko) | 부동소수점수를 위한 산술연산장치 | |
JP3313560B2 (ja) | 浮動小数点演算処理装置 | |
US20090164544A1 (en) | Dynamic range enhancement for arithmetic calculations in real-time control systems using fixed point hardware | |
KR19980082906A (ko) | 부동 소수점 숫자의 정수형으로의 변환 방법 | |
JP2558669B2 (ja) | 浮動小数点演算装置 | |
JPH0361224B2 (ja) | ||
JPH0283728A (ja) | 浮動小数点乗算装置 | |
JPH04172526A (ja) | 浮動小数点除算器 | |
JPH0552532B2 (ja) | ||
JP3124286B2 (ja) | 浮動小数点数演算装置 | |
JP3100868B2 (ja) | 浮動小数点数のための算術演算装置 | |
JPS63158626A (ja) | 演算処理装置 | |
JPH01282633A (ja) | 非正規化数の処理方式 | |
JP2792998B2 (ja) | 加減算回路を用いた型変換装置 | |
Shapran et al. | DIVISION USING THE BASE RADIX16 NUMBER SYSTEM TO FORM FRACTION DIGITS | |
JPH0498524A (ja) | 浮動小数点演算装置 | |
Villalba-Moreno | Digit recurence division under HUB format | |
JPH0447848B2 (ja) | ||
CN117932200A (zh) | 一种浮点数平方根计算方法及浮点数计算模块 | |
JPH0427587B2 (ja) | ||
JPH0540609A (ja) | 浮動小数点除算装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
EXPY | Cancellation because of completion of term |