JPH02161563A - ベクトル演算方式 - Google Patents

ベクトル演算方式

Info

Publication number
JPH02161563A
JPH02161563A JP31556388A JP31556388A JPH02161563A JP H02161563 A JPH02161563 A JP H02161563A JP 31556388 A JP31556388 A JP 31556388A JP 31556388 A JP31556388 A JP 31556388A JP H02161563 A JPH02161563 A JP H02161563A
Authority
JP
Japan
Prior art keywords
exponent
mantissa
result
register
index
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.)
Pending
Application number
JP31556388A
Other languages
English (en)
Inventor
Masayuki Kimura
木村 真行
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NEC Corp
Original Assignee
NEC Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by NEC Corp filed Critical NEC Corp
Priority to JP31556388A priority Critical patent/JPH02161563A/ja
Publication of JPH02161563A publication Critical patent/JPH02161563A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Complex Calculations (AREA)

Abstract

(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。

Description

【発明の詳細な説明】 本発明はベクトル演算方式に関し、特に浮動小数点デー
タの累和演算を高速に実行するベクトル演算方式に関す
る。
藍氷弦韮 従来、浮動小数データの累和演算、すなわち次嘘 であられされるような演算は、例えば第2図のような加
算回路で実現されている。第2図において、1は加算回
路であり、2は加算回路1の制御回路である。
ここで、式(1)で表わされる累和演算のオペランドを
A、Bnとおき、A、Bnそれぞれの指数部をEA、E
Bn 、仮数部をMA、MBnとすると第2図の加算回
路を用いて浮動小数点データの累和演算は以下のように
実行される。
まず、データAの初期値の指数部が指数セレクタ3を通
して指数レジスタA4に、仮数部が仮数セレクタ12を
通して仮数レジスタA13に夫々格納される。データB
nの第1要素の指数部が指数レジスタB5に、仮数部が
仮数レジスタB14に夫々格納される。
また指数減算器A6では指数レジスタA4の内容から指
数レジスタ5の内容を引く減算が行なわれる。指数減算
器B7では指数レジスタB5の内容から指数レジスタA
4の内容を引く減算が行われる。ここで指数セレクト信
号8は指数減算器A7の出力の符号部であり、指数EA
とEBnの大小関係を示す。
指数演算結果セレクタ9は指数セレクト信号8により指
数レジスタA4と指数レジスタB5の内容のうち大きい
方の値を出力する。また、イコライズカウントセレクタ
10では指数セレクト信号8により指数演算結果6と指
数減算器B7の出力のうち正の方の値、すなわち仮数デ
ータの桁合せに必要なシフトカウントを出力する。
また、オペランドセレクタA15、オペランドセレクタ
B16は指数セレクト信号8の制御を受け、オペランド
セレクタA45からは指数値の大きい方のオペランドの
仮数部が、オペランドセレクタB16からは指数値の小
さい方のオペランドの仮数部が夫々出力される。イコラ
イズシフタ17はオペランドセレクタB16の出力をイ
コライズカウントセレクタ10の出力に応じて右シフト
する。
演算結果の仮数部は仮数加算器18においてオペランド
セレクタA15とイコライズシフタ17の出力を加算す
ることにより得られる。この時、仮数演算結果が正規形
でない場合は、仮数演算結果を正規形にしく以下正規化
すると記述する)、それに伴い指数演算結果も補正しな
ければいけない、そこで、演算結果チェック回路19で
は仮数加算回路18の出力の上位所定ビットを入力とし
て仮数演算結果が正規形か否かを判定し、演算時間延長
信号20を通して制御回路2に報告する。
制御回路2では演算時間延長信号20を入力として仮数
演算結果が正規形であった場合には、指数演算結果セレ
クタ9の出力を指数レジスタA4、指数リザルトレジス
タ26へそれぞれ指数セレクタ3、指数リザルトセレク
タ25を介して格納する。また、仮数加算回路18の出
力を仮数レジスタA13.仮数リザルトレジスタ22へ
、それぞれ仮数セレクタ12、仮数リザルトセレクタ2
1を介して格納し、同時にデータBnの次の要素Bn+
1の指数部を指数レジスタB5、仮数部を仮数レジスタ
B14へ格納して次の要素の演算を開始する。
また、制御回路2は演算時間延長信号20から仮数演算
結果が正規形でなかったと判定された場合には1、指数
演算結果セレクタ9の出力を、指数リザルトセレクタ2
5を通して指数リザルトレジスタ26に、仮数加算回路
18の出力を仮数リザルトセレクタ21を通して仮数リ
ザルトレジスタ22に夫々いったん格納して演算結果の
正規化処理を以下のように行う。
すなわち、正規化シフト量生成回路21に仮数リザルト
レジスタ22の出力を入力し、演算結果の正規化に必要
なシフト量を算出する。正規化シフタ24では、正規化
シフト量生成回FI@23の出力を受けて仮数リザルト
レジスタ22の出力の左シフトが行われ、指数補正回路
27では指数リザルトレジスタ26の出力を正規化シフ
ト量生成回路23の出力に基き補正する。
以上の正規化処理が終了すると、制御回路2は指数補正
回路27の出力を、指数レジスタA4、指数リザルトレ
ジスタ27へ、それぞれ指数セレクタ3、指数リザルト
セレクタ25を介して格納し、正規化シフタ24の出力
を、仮数レジスタA13、仮数リザルトレジスタ22へ
、それぞれ仮数セレクタ12、仮数リザルトセレクタ2
1を介して格納する。同時に、データBnの次の要素B
n+1の指数部を、指数レジスタB5、仮数部を仮数レ
ジスタB14へ夫々格納して次の要素の演算を開始する
。なお、正規化処理による指数値のアンダフローに関す
る処理の説明はここでは省略する。
上述した従来のベクトル(累和)演算装置を用いると、
演算ループ中に演算時間が延長されるケース、すなわち
仮数の加算結果が正規形でないケースが頻発すると、命
令の実行時間が著しく長くなるという欠点がある。
しかしながら、従来例で示したような浮動小数点データ
の加算の原理によれば、加算における仮数データの桁あ
わせにおいては、指数値の小さい方のデータの仮数部が
指数値の差分だけ右シフトされるという特徴がある。従
って、式(1)に示される演算ループ中のn番目の要素
B(n) (n= 1〜l)において、A+B  (n
)の演算結果の仮数部が正規形でなくとも、演算結果の
指数部が次の要素B(n+1)の指数部より小さいが若
しくは同じ場合には、n番目の演算結果の正規化処理を
行わないまま(n+1)番目の要素の演算にい用いても
(n+1)番目の要素の演算結果は同じであることがわ
かる。
九匪血旦旬 本発明は以上の点に着目してなされたものであって、そ
の目的とするところは、浮動小数点データの累和演算を
確率的に高速化することができるベクトル演算方式を提
供することを目的とする。
九匪血J羞 本発明によれば、複数のベクトル要素データを逐次加算
していくことにより累和を求める累和演算において、前
記累和演算の初期値若しくは中間結果の累和データと前
記要素データのうち第n番目の要素データとの指数部と
を比較する比較手段と、この比較結果である指数部の差
に応じて前記累和データと前記第n番目の要素データと
の仮数部を桁合せする桁合せ手段と、この桁合せ後の両
データを加算する加算手段と、この加算結果が正規形か
どうかを検出する正規形チェック手段と、正規形でない
場合には前記加算結果を正規形に補正する補正手段とを
含み、前記加算結果が正規形である場合にはこの加算結
果を、また正規形でない場合は前記補正手段による補正
結果を、前記第n+1番目の要素データとの加算のため
の累和データとするようにしたベクトル演算方式であっ
て、前記補正手段による補正時における前記加算結果の
指数部の補正時に、指数アンダフローが生じるか否かを
検出する指数アンダフロー検出手段を設け、前記正規形
チェック手段により前記加算結果が正規形でないと判定
され、また前記比較手段により前記加算結果の指数部が
前記第n+1番目の要素の指数部よりも大きくないこと
が検出され、かつ前記指数アンダフロー検出手段により
指数アンダフローが生じないと判定されたときに、前記
補正手段による正規化補正を行うことなく、前記加算結
果を前記第n+1番目の要素との累和データとして用い
ることを特徴とするベクトル演算方式が得られる。
衷隻舅 以下に図面を用いて本発明の実施例を詳細に説明する。
第1図は本発明の実施例のブロック図であり、第2図と
同等部分は同一符号により示している。
第2図と異なる部分のみについて述べれば、指数減算器
B7の符号部分の出力11が演算リトライ指示信号とし
て制御回路2へ供給されている。この信号11は指数レ
ジスタA4の内容が指数レジスタB5の内容より大きい
場合に“1”、等しいか小さい場合には“0”が出力さ
れる。
また、指数アンダフロー検出回路28は指数補正回路2
7の出力を入力とし、演算結果の正規化処理中に指数補
正回路27において指数リザルトレジスタ26の内容か
ら正規化シフト量生成回路23の出力を減じた結果がア
ンダフローした、すなわち指数表現範囲を逸脱したか否
か針判定する回路であり、指数アンダフロー報告信号2
9は指数アンダフロー検出回路28の判定結果を制御回
路2に伝える信号である。
第1の加算回路を用いて浮動小数点データの異相演算は
以下のようにして行われる。
(1)式(1)におけるデータAの初期値の指数部が指
数セレクタ3を通して指数セレクタA4へ、仮数部が仮
数セレクタ12を通して仮数レジスタ13へ夫々格納さ
れる。同時にデータB (n)の第1番目の要素の指数
部が指数レジスタB5へ、仮数部が仮数レジスタB14
へ夫々格納される。
(2)指数減算器A6において指数レジスタA4の内容
から指数レジスタB5の内容を引く減算が実行され、指
数減算器B7においては指数レジスタB5の内容から指
数レジスタA4の内容を引く減算が実行される。指数部
X結果セレクタ9は°指数セレクト信号8、すなわち指
数減算器A6の出力の符号部により制御され、指数レジ
スタA4と指数レジスタB5の内容のうち大きい方の値
を出力する。また、イコライズカウントセレクタ10も
同様に指数セレク1−信号8の制御を受け、指数減算器
A6と指数減算器B7の出力のうち正の方の値を出力す
る。
(3)オペランドセレクタA15.オペランドセレクタ
B16は指数セレクト信号8の制御を受け、オペランド
セレクタA15からは仮数レジスタA13.仮数レジス
タB14の内容のうち指数値の大きい方のデータに対応
する仮数部が選択され出力される。同様に、オペランド
セレクタ16からは(旨数値の小さい方のデータに対応
する仮数部が選択され、その出力はイコライズカウント
セレクタ10の出力によりイコライズシフタ17におい
て右シフトされる。仮数加算器18はオペランドセレク
タA15とイコライズシフタ17の出力の加算が行われ
る。
(4)演算結果チェック回路19において仮数加算器1
8より出力される仮数の演算結果が正規形か否かを判定
し、演算時間延長信号20を介して制御回路2へ報告す
る。同時に指数演算結果セレクタ9出力を指数セレクタ
3を通して指数レジスタA4へ、指数リザルトセレクタ
25を通して指数リザルトレジスタ26へ夫々格納する
。また、仮数加算器18の出力は仮数セレクタ12を通
して仮数レジスタA13へ、仮数リザルトセレクタ21
を通して仮数リザルトレジスタ22へ夫々格納される。
さらに、式(1)のデータB [n)の次の要素の指数
部が指数レジスタ5へ、仮数部が仮数レジスタ14へ夫
々格納される。
(5)制御回路2は演算時間延長信号20を受け、前演
算サイクルにおける仮数演算結果が正規形であったと判
定された場合には次の(6)の処理を、正規形でなかっ
たと判定された場合には次の(7)の処理を夫々実行す
る。
(6)前記(2)の処理と同様の指数部処理及び前記(
3)の処理と同様の仮数部処理と前記(4)の処理と同
様の後処理を行う。
(7)まず以下の■、■を同時に実行する。
■正規化シフト量作成回路23において、仮数リザルト
レジスタ22の内容を正規形にするために必要なシフト
量を作成し出力する。正規化シフタ24において、仮数
リザルトレジスタ22の内容を正規化シフト!作成回路
23出力により左シフトし、指数補正回路27において
、指数リザルトレジスタ26の出力から正規化シフト量
作成回路23の出力を減じる。また指数アンダフロー検
出回路28において、指数補正回路27の出力がアンダ
フローしたか否かを判定し、指数アンダフロー報告信号
28を通して制御口112へ報告する。
■前記■の処理と同時に(2)の処理と同様の指数部処
理、(3)の処理と同様の仮数部処理を行う、また演算
リトライ指示信号11を通じて指数減算器B7の出力の
符号部を制御口#12へ報告する。
■制御回路2は演算リトライ指示信号11と指数アンダ
フロー報告信号29を受け、前回の演算結果の指数部で
ある指数レジスタA4の内容が新しく演算を行ったデー
タB (n)の要素の指数部である指数レジスタB5の
内容と等しいがもしくは小さい場合であり、■の処理に
おける正規化処理により指数部がアンダフローしない場
合には、(4)の処理と同様の後処理を行う、また指数
レジスタA4の内容が指数レジスタB5の内容より小さ
いか等しい場合で、かつ■の処理における正規化処理に
より指数部がアンダフローした場合、及び指数レジスタ
A4の内容が指数レジスタB5の内容より大きい場合に
は次の■の処理を行う。
■前記■の処理における正規化処理で指数アンダフロー
した場合には、例えば指数値を負の最大値にし仮数部を
“0”にする等の処理を指数補正回路27の出力と正規
化シフタ24の出力に施し、それぞれ指数レジスタA4
、仮数レジスタA13へ格納し、指数レジスタB5、仮
数レジスタB14の内容は変更しないまま(2)、(3
)、(4)の各処理を再実行する。また、指数アンダフ
ローがない場合には、指数補正回路27の出力をそのま
ま指数レジスタA4へ、正規化シフタ24の出力をその
まま仮数レジスタA13へ夫々格納し、指数レジスタB
5、仮数レジスタB14の内容は変更しないまま(2)
、(3)、(4)の各処理を再実行する。
さらに、式(1)のデータB (n)の次の要素の指数
部が指数レジスタ5へ、仮数が仮数レジスタ14へ夫々
格納される。
(5)制御回路2は演算時間延長信号20を受け、前演
算サイクルにおける仮数演算結果が正規形であったと判
定された場合には(6)の処理を、正規形でなかったと
判定された場合には(7)の処理を実行する。
(6)前記(2)の処理と同様の指数部処理及び(3)
の処理と同様の仮数部処理と(4)の処理と同様の後処
理を行う。
(7)まず以下の■、■を同時に実行する。
■正規化シフト量作成回路23において、仮数リザルト
レジスタ22の内容を正規形にするために必要なシフト
量を作成し出力する。正規化シフタ24において仮数リ
ザルトレジスタ22の内容を正規化シフト量作成回路2
3の出力により左シフトし、指数補正回路27において
、指数リザルトレジスタ26の出力から正規化シフト量
作成回路23の出力を減じる。また指数アンダフロー検
出回路28において、指数補正回路27の出力がアンダ
フローしたか否かを判定し、指数アンダフロー報告信号
28を通して制御回路2へ報告する。
■前記(7)−■の処理と同時に(2)の処理と同様の
指数部処理、(3)の処理と同様の仮数部処理を行う、
また演算リトライ指示信号11を通じて指数減算器B7
の出力の符号部を制御回路2へ報告する。
■制御回路2は演算リトライ指示信号11と指数アンダ
フロー報告信号29を受け、前回の演算結果の指数部で
ある指数レジスタA4の内容が新しく演算を行ったデー
タB (n)の要素の指数部である指数レジスタB5の
内容と等しいかもしくは小さい場合であり、(7)−■
の処理における正規化処理により指数部がアンダフロー
しない場合には(4)と同様の後処理を行う、また指数
レジスタA4の内容が指数レジスタB5の内容より小さ
いか等しい場合でかっ(7)−■の処理における正規化
処理により指数部がアンダフローした場合、及び指数レ
ジスタA4の内容が指数レジスタB5の内容より大きい
場合には、次の■の処理を行う。
■前記(7)−■における正規化処理で指数アンダフロ
ーした場合には、例えば指数値を負の最大値にし仮数部
を・“0”にする等の処理を指数補正回路21の出力と
正規化シフタ24出カに施し、。
それぞれ指数レジスタA4、仮数レジスタA13へ格納
し、指数レジスタB5、仮数レジスタB14の内容は変
更しないまま(2)、(3)、(4)の各処理を再実行
する。また、指数アンダフローをしない場合には、指数
補正回路27の出方をそのまま指数レジスタA4へ、正
規化シフタ24の出力をそのまま仮数レジスタA13へ
格納し、指数レジスタB5、仮数レジスタB14の内容
は変更しないまま(8)、(3)、(4)の各処理を再
実行する。
(8)前記(5)、(6)もしくは(7)の処理を必要
回数くり返す。
以上の処理をモデル図として書くと第3図のようになる
、第3図中指数処理部60は(2)の処理の指数部処理
、仮数処理部61は(3)の処理の仮数部処理を行う、
また指数処理部69、仮数処理部70はそれぞれ(6)
、(7)−■の処理を行い、正規化シフト量生成回路2
3、指数補正回路27、正規化シフタ24は(7)−〇
の処理を行う、さらに指数処理部71.仮数処理部72
は(7)−■の処理を行う。
第3図かられかるように、ある要素の仮数演算結果が正
規形でなくとも、その結果の指数部が次の要素の指数部
より小さいもしくは等しい場合で、かつ正規化した場合
に指数アンダフローを生じないようなケースでは、その
演算結果の正規化に必要な演算時間を実質的に0にする
ことができる。
なお、本実施例では仮数の加算結果がオーバフローする
ケースについての説明は省略したが、これは(3)の仮
数部処理に含めることができる。
また正規化処理における指数アンダフローに関する処理
は対応する演算装置の使用にもとづき任意に変ることは
いうまでもない。
北遷ノと死重 以上述べた如く、本発明によれば、加算結果が正規形で
ない場合において、正規化補正により指数アンダフロー
が生じかつ加算結果の指数部が次の要素の指数部よりも
大きくない条件下において、当該加算結果の正規化補正
処理を行わないで、次の異相処理へ直ちに移行するよう
にしているので、浮動小数点データの異相演算を確率的
に高速化し得るという効果がある。
【図面の簡単な説明】
第1図は本発明の実施例のブロック図、第2図は従来の
ベクトル演算を行う装置のブロック図、第3図は本発明
の実施例の動作を示すモデル図である。 主要部分の符号の説明 2・・・・・・制御回路 4.5・・・・・・指数レジスタ 6.7・・・・・・指数減算器 13.14・・・・・・仮数レジスタ 17・・・・・・イコライズシフタ 18・・・・・・仮数加!+器 19・・・・・・演算結果チェック回路23・・・・・
・正規化シフト量生成回路24・・・・・・正規化シフ
タ 27・・・・・・指数補正回路 28・・・・・・指数アンダフロー検忠回路第2図

Claims (1)

    【特許請求の範囲】
  1. (1)複数のベクトル要素データを逐次加算していくこ
    とにより累和を求める累和演算において、前記累和演算
    の初期値若しくは中間結果の累和データと前記要素デー
    タのうち第n番目の要素データとの指数部とを比較する
    比較手段と、この比較結果である指数部の差に応じて前
    記累和データと前記第n番目の要素データとの仮数部を
    桁合せする桁合せ手段と、この桁合せ後の両データを加
    算する加算手段と、この加算結果が正規形かどうかを検
    出する正規形チェック手段と、正規形でない場合には前
    記加算結果を正規形に補正する補正手段とを含み、前記
    加算結果が正規形である場合にはこの加算結果を、また
    正規形でない場合は前記補正手段による補正結果を、前
    記第n+1番目の要素データとの加算のための累和デー
    タとするようにしたベクトル演算方式であって、前記補
    正手段による補正時における前記加算結果の指数部の補
    正時に、指数アンダフローが生じるか否かを検出する指
    数アンダフロー検出手段を設け、前記正規形チェック手
    段により前記加算結果が正規形でないと判定され、また
    前記比較手段により前記加算結果の指数部が前記第n+
    1番目の要素の指数部よりも大きくないことが検出され
    、かつ前記指数アンダフロー検出手段により指数アンダ
    フローが生じないと判定されたときに、前記補正手段に
    よる正規化補正を行うことなく、前記加算結果を前記第
    n+1番目の要素との累和データとして用いることを特
    徴とするベクトル演算方式。
JP31556388A 1988-12-14 1988-12-14 ベクトル演算方式 Pending JPH02161563A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP31556388A JPH02161563A (ja) 1988-12-14 1988-12-14 ベクトル演算方式

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP31556388A JPH02161563A (ja) 1988-12-14 1988-12-14 ベクトル演算方式

Publications (1)

Publication Number Publication Date
JPH02161563A true JPH02161563A (ja) 1990-06-21

Family

ID=18066850

Family Applications (1)

Application Number Title Priority Date Filing Date
JP31556388A Pending JPH02161563A (ja) 1988-12-14 1988-12-14 ベクトル演算方式

Country Status (1)

Country Link
JP (1) JPH02161563A (ja)

Similar Documents

Publication Publication Date Title
JP6001276B2 (ja) 浮動小数点加算を実行するための装置および方法
JPH06236257A (ja) データ・プロセッサにおいて浮動小数点実行ユニット内で後正規化を実行する方法および装置
JPH0542011B2 (ja)
JPH09212337A (ja) 浮動小数点演算処理装置
JP2511527B2 (ja) 浮動小数点演算器
JPH02161563A (ja) ベクトル演算方式
JP2903529B2 (ja) ベクトル演算方式
US5838601A (en) Arithmetic processing method and arithmetic processing device
JP2517064B2 (ja) 非正規化数の処理方式
JP2507183B2 (ja) 浮動小数点加減算装置
JP3310316B2 (ja) 演算装置
JP2664750B2 (ja) 演算装置及び演算処理方法
JP2801472B2 (ja) 浮動小数点演算装置
JPH05204606A (ja) 浮動小数点演算方式および装置
JP3295949B2 (ja) 浮動小数点演算方式とその装置
JPH04151729A (ja) 浮動小数点累算器
JPH01180627A (ja) 浮動小数点演算制御装置
JPH03217938A (ja) 浮動小数点丸め正規化装置
JP2665067B2 (ja) 浮動小数点加減算器
JPS60124729A (ja) 浮動小数点加減算方式
JP2552086B2 (ja) 浮動小数点演算装置
JPS6149234A (ja) 浮動小数点乗算回路
JPH04117520A (ja) 浮動小数点演算装置
JPH0335691B2 (ja)
JP2001188670A (ja) 演算装置