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

ベクトル演算方式

Info

Publication number
JP2903529B2
JP2903529B2 JP4229289A JP4229289A JP2903529B2 JP 2903529 B2 JP2903529 B2 JP 2903529B2 JP 4229289 A JP4229289 A JP 4229289A JP 4229289 A JP4229289 A JP 4229289A JP 2903529 B2 JP2903529 B2 JP 2903529B2
Authority
JP
Japan
Prior art keywords
exponent
data
result
normal form
addition result
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
Application number
JP4229289A
Other languages
English (en)
Other versions
JPH02220173A (ja
Inventor
真行 木村
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
Nippon Electric Co Ltd
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 Nippon Electric Co Ltd filed Critical Nippon Electric Co Ltd
Priority to JP4229289A priority Critical patent/JP2903529B2/ja
Publication of JPH02220173A publication Critical patent/JPH02220173A/ja
Application granted granted Critical
Publication of JP2903529B2 publication Critical patent/JP2903529B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Landscapes

  • Complex Calculations (AREA)

Description

【発明の詳細な説明】 技術分野 本発明はベクトル演算方式に関し、特に浮動小数点デ
ータの累和演算を高速に実行するベクトル演算方式に関
する。
従来技術 従来、浮動小数データの累和演算、すなわち次式 DO 10 N=1,M A=A+B(W) ……(1) 10CONTINUE であらわされるような演算は、例えば第2図のような加
算回路で実現されている。第2図において、1は加算回
路であり、2は加算回路1の制御回路である。
ここで、式(1)で表される累和演算のオペランドを
A,Bnとおき、A,Bnそれぞれの指数部をEA,EBn,仮数部をM
A,MBnとすると第2図の加算回路を用いて浮動小数点デ
ータの累和演算は以下のように実行される。
まず、データAの初期値の指数部が指数セレクタ3を
通して指数レジスタA4に、仮数部が仮数セレクタ12を通
して仮数レジスタA13に夫々格納される。データBnの第
1要素の指数部が指数レジスタB5に、仮数部が仮数レジ
スタB14に夫々格納される。
また指数減算器A6では指数レジスタA4の内容から指数
レジスタ5の内容を引く減算が行なわれる。指数減算器
B7では指数レジスタB5の内容から指数レジスタA4の内容
を引く減算が行われる。ここで指数レセクト信号8は指
数減算器A7の出力の符号部であり、指数EAとEBnの大小
関係を示す。
指数演算結果セレクタ9は指数セレクト信号8により
指数レジスタA4と指数レジスタB5の内容のうち大きい方
の値を出力する。また、イコライズカウントセレクタ10
では指数セレクト信号8により指数減算器A6と指数減算
器B7の出力のうち正の方の値、すなわち仮数データの桁
合せに必要なシフトカウントを出力する。
また、オペランドセレクタA15、オペランドセレクタB
16は指数セレクト信号8の制御を受け、オペランドセレ
クタA15からは指数値の大きい方のオペランドの仮数部
が、オペランドセレクタB16からは指数値の小さい方の
オペランドの仮数部が夫々出力される。イコライズシフ
タ17はオペランドセレクタB16の出力をイコライズカウ
ントセレクタ10の出力に応じて右シフトする。
演算結果の仮数部は仮数加算器18においてオペランド
セレクタA15とイコライズシフタ17の出力を加算するこ
とにより得られる。この時、仮数演算結果が正規形でな
い場合は、仮数演算結果を正規形にし(以下正規化する
と記述する)、それに伴い指数演算結果も補正しなけれ
ばいけない。そこで、演算結果チェック回路19では仮数
加算回路18の出力の上位所定ビットを入力として仮数演
算結果が正規形か否かを判定し、演算時間延長信号20を
通して制御回路2に報告する。
制御回路2では演算時間延長信号20を入力として仮数
演算結果が正規形であった場合には、指数演算結果セレ
クタ9の出力を指数レジスタA4、指数リザルトレジスタ
26へそれぞれ指数セレクタ3、指数リザルトセレクタ25
を介して格納する。また、仮数加算回路18の出力を仮数
レジスタA13,仮数リザルトレジスタ22へ、それぞれ仮数
セレクタ12、仮数リザルトセレクタ21を介して格納し、
同時にデータBnの次の要素Bn+1の指数部を指数レジス
タB5、仮数部を仮数レジスタB14へ格納して次の要素の
演算を開始する。
また、制御回路2は演算時間延長信号20から仮数演算
結果が正規形でなかったと判定された場合には、指数演
算結果セレクタ9の出力を、指数リザルトセレクタ25を
通して指数リザルトレジスタ26に、仮数加算回路18の出
力を仮数リザルセレクタ21を通して仮数リザルトレジス
タ22に夫々いったん格納して演算結果の正規化処理を以
下のように行う。
すなわち、正規化シフト量生成回路23に仮数リザルト
レジスタ22の出力を入力し、演算結果の正規化に必要な
シフト量を算出する。正規化シフタ24では、正規化シフ
ト量生成回路23の出力を受けて仮数リザルトレジスタ22
の出力の左シフトが行われ、指数補正回路27では指数リ
ザルトレジスタ26の出力を正規化シフト量生成回路23の
出力に基き補正する。
以上の正規化処理が終了すると、制御回路2は指数補
正回路27の出力を、指数レジスタA4、指数リザルトレジ
スタ26へ、それぞれ指数セレクタ3、指数リザルトセレ
クタ25を介して格納し、正規化シフタ24の出力を、仮数
レジスタA13、仮数リザルトレジスタ22へ、それぞれ仮
数セレクタ12、仮数リザルトセレクタ21を介して格納す
る。同時に、データBnの次の要素Bn+1の指数部を、指
数レジスタB5、仮数部を仮数レジスタB14へ夫々格納し
て次の要素の演算を開始する。なお、正規化処理による
指数値のアンダフローに関する処理の説明はここでは省
略する。
上述した従来のベクトル(累和)演算装置を用いる
と、演算ループ中に演算時間が延長されるケース、すな
わち仮数の加算結果が正規形でないケースが頻発する
と、命令の実行時間が著しく長くなるという欠点があ
る。
しかしながら、従来例で示したような浮動小数点デー
タの加算の原理によれば、加算における仮数データの桁
あわせにおいては、指数値の小さい方のデータの仮数部
が指数値の差分だけ右シフトされるという特徴がある。
従って、式(1)に示される演算ループ中のn番目の要
素B(n)(n=1〜m)において、A+B(n)の演
算結果の仮数部が正規形でなくとも、演算結果の指数部
が次の要素B(n+1)の指数部より小さいか若しくは
同じ場合には、n番目の演算結果の正規化処理を行わな
いまま(n+1)番目の要素の演算にい用いても(n+
1)番目の要素の演算結果は同じであることがわかる。
また、同様にA+B(n)の演算結果の仮数部が正規
形でなくかつ演算結果の指数部が次の要素B(n+1)
の指数部よりも大きい場合でも、B(n+1)を右シフ
トすることにより桁合せする際、有効データが切捨てら
れない限り演算をそのまま実効してもB(n+1)に対
する正しい累和演算結果が得られる(結果は正規化され
ることになるため)。
発明の目的 本発明は以上の点に着目してなされたものであって、
その目的とするところは、浮動小数点データの累和演算
を確率的に高速化することができるベクトル演算方式を
提供することを目的とする。
発明の構成 本発明によれば、複数のベクトル要素データを逐次加
算していくことにより累和を求める累和演算において、
前記累和演算の初期値若しくは中間結果の累和データと
前記要素データのうち第n番目の要素データとの指数部
とを比較する比較手段と、この比較結果である指数部の
差に応じて前記累和データと前記第n番目の要素データ
との仮数部を桁合せする桁合せ手段と、この桁合せ後の
両データを加算する加算手段と、この加算結果が正規形
かどうかを検出する正規形チェック手段と、正規形でな
い場合には前記加算結果を正規形に補正する補正手段と
を含み、前記加算結果が正規形である場合にはこの加算
結果を、また正規形でない場合は前記補正手段による補
正結果を、前記第n+1番目の要素データとの加算のた
めの累和データとするようにしたベクトル演算方式であ
って、前記桁合せ手段におけるシフト時に有効データが
切捨てられるか否かを判定するスピルアウトデータチェ
ック手段と、前記正規形チェック手段により前記加算結
果が正規形でないと判定され、また前記比較手段により
前記加算結果の指数部が前記第n+1番目の要素の指数
部よりも大きくないことが検出されたときに、前記補正
手段による正規化補正を行うことなく、前記加算結果を
前記第n+1番目の要素との累和データとして用い、更
に前記正規形チェック手段により前記加算結果が正規形
でないと判定され、また前記比較手段により前記加算結
果の指数部が前記第n+1番目の要素の指数部よりも大
きいことが検出され、かつ前記スピルアウトデータチェ
ック手段により前記有効データが切捨てられないと判定
されたときに、前記加算結果を前記第n+1番目の要素
との累和データとして用いるよう制御する制御手段とを
含むことを特徴とするベクトル演算方式が得られる。
実施例 以下に図面を用いて本発明の実施例を詳細に説明す
る。
第1図は本発明の実施例のブロック図であり、第2図
と同等部分は同一符号により示している。第2図と異な
る部分についてのみ述べれば、仮数桁合せ用のイコライ
ズシフタ17における右シフト処理時に、切捨てられるデ
ータが全て無効か否かをチェックするためのスピルアウ
トデータチェック回路28が設けられている。
そのチェック出力29は演算リトライ指示信号となって
制御回路2へ入力されている。この信号19はイコライズ
シフタ17において切捨てられるデータがオール“0"なら
“0"、オール“0"でなければ“1"を夫々示す。
また、演算延長レジスタ30が設けられており、これは
前の累和演算における演算結果チェック回路19でのチェ
ック結果、すなわち係数加算回路18の出力が正規形であ
った場合には“0"、正規形でなかった場合には“1"を夫
々保持し、その出力は演算重複信号31として制御回路2
に報告される。
なお、第1図中の1は加算回路全体を示し、制御回路
2は指数セレクト信号8、演算リトライ指示信号29、演
算重複信号31を入力とし、加算回路1中の各種セレクタ
の選択、各種レジスタのセット/リセットを行う。
第1図の加算回路を用いて浮動小数データの累和演算
は以下のように行われる。
(1)式(1)におけるデータAの初期値の指数部が指
数セレクタ3を通して指数レジスタA4へ、仮数部が仮数
セレクタ12を通して仮数レジスタA13に格納される。同
時にデータB(n)の第1番目の要素の指数部が指数レ
ジスタB5へ、仮数部が仮数レジスタB14へ夫々格納され
る。
(2)指数減算器A6において指数レジスA4の内容から指
数レジスタB5の内容を減じる減算が実行され、指数減算
器B7ではその逆の減算が実行される。指数演算結果セレ
クタ9は指数セレクト信号8、すなわち指数減算器A6の
出力の符号部により制御され、指数レジスタA4と指数レ
ジスタB5の内容のうち大きい方の値を出力する。また、
イコライズカウントセレクタ10も同様に指数セレクト信
号8の制御を受け、指数減算器A6,B7の出力のうち正の
方の値を出力する。
(3)オペランドセレクタA15、オペランドセレクタB16
は指数セレクト信号8の制御を受け、オペランドセレク
タA15からは仮数レジスタA13、仮数レジスタB14のうち
対応する指示レジスタA4、B5の値の大きい方の内容を出
力する。逆に、オペランドセレクタB16からは指数値の
小さい方の内容が出力される。オペランドセレクタB16
の出力はイコライズカウントセレクタ10の出力によりイ
コライズシフタ17において右シフトされる。
(4)仮数加算器18はオペランドセレクタA15とイコラ
イズシフタ17の出力を加算し、その結果が正規形か否か
が演算結果チェック回路19においてチェックされる。
(5)指数演算結果セレクタ25の出力が指数レジスタA
4、指数リザルトレジスタ26に夫々格納され、仮数加算
回路18の出力は仮数レジスタA13、仮数リザルトレジス
タ22へ格納される。同時に演算結果チェック回路19の出
力が演算延長レジスタ30に格納され、さらにB(n)の
次の要素の指数部が指数レジスタB5、仮数レジスタB14
に夫々格納され、B(n)の次の要素に対する演算が開
始される。
(6)(2)(3)(4)と同様の加算が実行される。
(7)指数セレクト信号8、演算リトライ指示信号29、
演算重複信号31の出力から、前の要素に対する加算結果
が正規形ではなく、かつその加算結果の指数部が次の要
素の指数部より大きく、更にイコライズシフタ17におい
て切捨られる次の要素の仮数部データに有効データが含
まれると判断された場合には、演算を中止し次の(8)
を実行する。またそれ以外のケースでは次の(10)を実
行する。
(8)仮数リザルトレジスタ22の出力を正規形にするた
めに必要な左シフトカウントが正規化シフト量生成回路
23において生成される。正規化シフタ24では仮数リザル
トレジスタ22の出力を正規化シフト量生成回路23の出力
により左シフトする。また指数補正回路24では、指数リ
ザルトレジスタ26の出力から正規化シフト量生成回路23
の出力を減じる減算を行い、次の(10)を実行する。
(9)正規化シフタ24の出力を仮数レジスタA13、仮数
リザルトレジスタA22へ夫々格納し、指数補正回路27の
出力を指数レジスタA4,指数リザルトレジスタ26へ夫々
格納し、演算延長レジスタ30をリセットして次の要素に
対する演算を再開する。
(10)演算を続行する。
(11)所要回数(5)〜(10)がくり返される。
(12)最終要素に対する加算結果を正規形にする。
なお、本実施例では仮数加算結果がオーバフローする
ケースの説明は省略したが、これは(4)の処理に含め
ることができる。また、正規化処理において指数アンダ
フローする場合の処理についても説明しなかったが、こ
れは対応する演算装置の仕様に基づき任意に変えること
はいうまでもない。
発明の効果 以上述べた如く、本発明によれば、加算結果が正規形
でない場合にも、加算結果によっては正規化処理を行わ
ないでも住むことを利用しているので、この場合には直
ちに次の累和処理へ移行することができ、よって浮動小
数点データの累和演算を確率的に高速化し得るという効
果がある。
【図面の簡単な説明】
第1図は本発明の実施例のブロック図、第2図は従来の
ベクトル演算装置のブロック図である。 主要部分の符号の説明 2……制御回路 4,5……指数レジスタ 6,7……指数減算器 13,14……仮数レジスタ 17……イコライズシフタ 18……仮数加算器 19……演算結果チェック回路 23……正規化シフト量生成回路 24……正規化シフタ 27……指数補正回路 28……スピルアウトデータチェック回路 30……演算延長レジスタ

Claims (1)

    (57)【特許請求の範囲】
  1. 【請求項1】複数のベクトル要素データを逐次加算して
    いくことにより累和を求める累和演算において、前記累
    和演算の初期値若しくは中間結果の累和データと前記要
    素データのうち第n番目の要素データとの指数部とを比
    較する比較手段と、この比較結果である指数部の差に応
    じて前記累和データと前記第n番目の要素データとの仮
    数部を桁合せする桁合せ手段と、この桁合せ後の両デー
    タを加算する加算手段と、この加算結果が正規形かどう
    かを検出する正規形チェック手段と、正規形でない場合
    には前記加算結果を正規形に補正する補正手段とを含
    み、前記加算結果が正規形である場合にはこの加算結果
    を、また正規形でない場合には前記補正手段による補正
    結果を、前記第n+1番目の要素データと加算のための
    累和データとするようにしたベクトル演算方式であっ
    て、 前記桁合せ手段におけるシフト時に有効データが切捨て
    られるか否かを判定するスピルアウトデータチェック手
    段と、 前記正規形チェック手段により前記加算結果が正規形で
    ないと判定された、また前記比較手段により前記加算結
    果の指数部が前記第n+1番目の要素の指数部よりも大
    きくないことが検出されたときに、前記補正手段による
    正規化補正を行うことなく、前記加算結果を前記第n+
    1番目の要素との累和データとして用い、更に前記正規
    形チェック手段により前記加算結果が正規形でないと判
    定され、また前記比較手段により前記加算結果の指数部
    が前記第n+1番目の要素の指数部よりも大きいことが
    検出され、かつ前記スピルアウトデータチェック手段に
    より前記有効データが切捨てられないと判定されたとき
    に、前記加算結果を前記第n+1番目の要素との累和デ
    ータとして用いるよう制御する制御手段と、 を含むことを特徴とするベクトル演算方式。
JP4229289A 1989-02-22 1989-02-22 ベクトル演算方式 Expired - Lifetime JP2903529B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP4229289A JP2903529B2 (ja) 1989-02-22 1989-02-22 ベクトル演算方式

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP4229289A JP2903529B2 (ja) 1989-02-22 1989-02-22 ベクトル演算方式

Publications (2)

Publication Number Publication Date
JPH02220173A JPH02220173A (ja) 1990-09-03
JP2903529B2 true JP2903529B2 (ja) 1999-06-07

Family

ID=12631967

Family Applications (1)

Application Number Title Priority Date Filing Date
JP4229289A Expired - Lifetime JP2903529B2 (ja) 1989-02-22 1989-02-22 ベクトル演算方式

Country Status (1)

Country Link
JP (1) JP2903529B2 (ja)

Also Published As

Publication number Publication date
JPH02220173A (ja) 1990-09-03

Similar Documents

Publication Publication Date Title
EP0483864B1 (en) Hardware arrangement for floating-point addition and subtraction
JP2729027B2 (ja) パイプライン浮動小数点プロセッサ及びその乗算・加算命令シーケンスの実行
US8965945B2 (en) Apparatus and method for performing floating point addition
US5530663A (en) Floating point unit for calculating a compound instruction A+B×C in two cycles
JP4418578B2 (ja) 第1、第2、第3オペランドに浮動小数点演算を適用するためのデータ処理装置および方法
US5097435A (en) High speed dividing apparatus
JPH0792739B2 (ja) 浮動小数点データ正規化方式
JPH0544046B2 (ja)
US10061561B2 (en) Floating point addition with early shifting
US6314443B1 (en) Double/saturate/add/saturate and double/saturate/subtract/saturate operations in a data processing system
JP2511527B2 (ja) 浮動小数点演算器
JP2903529B2 (ja) ベクトル演算方式
JP3064405B2 (ja) 複素数の演算処理方式
JP2517064B2 (ja) 非正規化数の処理方式
JP2507183B2 (ja) 浮動小数点加減算装置
JP3495173B2 (ja) 演算処理方法および演算処理装置
JPS62128331A (ja) 情報処理装置
JP2664750B2 (ja) 演算装置及び演算処理方法
JPH02161563A (ja) ベクトル演算方式
JP3174974B2 (ja) 浮動小数点演算装置および方法
JP4428778B2 (ja) 演算装置及び演算方法並びに計算装置
JPH01180627A (ja) 浮動小数点演算制御装置
JP3100868B2 (ja) 浮動小数点数のための算術演算装置
JP4177962B2 (ja) データ処理システムにおける数値演算
JP3522387B2 (ja) パイプライン演算装置