JPS5932038A - 浮動小数点加算器 - Google Patents
浮動小数点加算器Info
- Publication number
- JPS5932038A JPS5932038A JP57139886A JP13988682A JPS5932038A JP S5932038 A JPS5932038 A JP S5932038A JP 57139886 A JP57139886 A JP 57139886A JP 13988682 A JP13988682 A JP 13988682A JP S5932038 A JPS5932038 A JP S5932038A
- Authority
- JP
- Japan
- Prior art keywords
- data
- input
- adder
- output
- register
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
- G06F7/483—Computations with numbers represented by a non-linear combination of denominational numbers, e.g. rational numbers, logarithmic number system or floating-point numbers
- G06F7/485—Adding; Subtracting
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
- G06F7/499—Denomination or exception handling, e.g. rounding or overflow
- G06F7/49936—Normalisation mentioned as feature only
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computational Mathematics (AREA)
- Computing Systems (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Nonlinear Science (AREA)
- General Engineering & Computer Science (AREA)
Abstract
(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。
め要約のデータは記録されません。
Description
【発明の詳細な説明】
本発明は浮動小数点加算器に係り、特に関数演算に好適
な指数部の処理が可能な浮動小数点加算器に関する。
な指数部の処理が可能な浮動小数点加算器に関する。
従来の浮動小数点加算器では、関数演算で指数部の取り
出しを行なう場合、プログラミングによって対処してい
たので、プログラミングが複雑になり処理が遅くなる欠
点があった。
出しを行なう場合、プログラミングによって対処してい
たので、プログラミングが複雑になり処理が遅くなる欠
点があった。
本発明の目的は浮動小数点データの指数部を高速に抽出
する浮動小数点加算器を提供するにある。
する浮動小数点加算器を提供するにある。
本発明の要点は関数命令(,4ogx 、 51e t
c )を実行する際に必要になる指数部取り出し機能
をプログラミングによらずノ・−ドウエア命令として浮
動小数点加算器の・・−ドウエアで処理するようにした
点にある。
c )を実行する際に必要になる指数部取り出し機能
をプログラミングによらずノ・−ドウエア命令として浮
動小数点加算器の・・−ドウエアで処理するようにした
点にある。
以下、図面を照照して本発明の一実施例を説明する。捷
ず、第1図に本発明の対象となる浮動小数点加算器を含
むフローティングベクトルプロセッサの全体構成図を示
す。第1図において、1はホストコンピュータ(HO8
T ) 、2はインタフェイス部、3は演算ユニット、
4はレジスタファイル、5はメモリ部、6はアドンス演
算部、7はマイクロプログラムコントローラである。2
〜6の各ユニットは、マイクロプログラムコントローラ
7により制御される。
ず、第1図に本発明の対象となる浮動小数点加算器を含
むフローティングベクトルプロセッサの全体構成図を示
す。第1図において、1はホストコンピュータ(HO8
T ) 、2はインタフェイス部、3は演算ユニット、
4はレジスタファイル、5はメモリ部、6はアドンス演
算部、7はマイクロプログラムコントローラである。2
〜6の各ユニットは、マイクロプログラムコントローラ
7により制御される。
第2図に演算ユニット3の構成を示す。図において、1
0は、4段のパイプ′ラインステージよりなる32ビッ
ト乗算器、10−1は、乗算器の第1段目、10−2は
第2段目、10−3は第3段目、10−4は第4段目の
ステージ回路、11は3段のパイプラインステージより
なる64ビツト加算器、11−1は加算器の第1段目、
11−2は第2段目、11−3は第3段目のステージ回
路、12は加算器11の右入力バス、13は加算器11
の在入カバス、14は乗算器10の右入力バス、15は
乗算器10の在入カバス、16はデータバス、17は加
算器出力信号線、18は乗算器出力信号線、19は加算
器11の一ト32ビットヲ加算器11の左入力に入力す
る信号線、20は加算器11の上32ビットヲ加算器の
左入力に入力する信号線、21は乗算器10の出力の上
32ピッ14加算器の右入力に入力する信号線、22は
乗算器10の下32ビットを、加算器の右入力の下32
ビットに入力する信号線である。
0は、4段のパイプ′ラインステージよりなる32ビッ
ト乗算器、10−1は、乗算器の第1段目、10−2は
第2段目、10−3は第3段目、10−4は第4段目の
ステージ回路、11は3段のパイプラインステージより
なる64ビツト加算器、11−1は加算器の第1段目、
11−2は第2段目、11−3は第3段目のステージ回
路、12は加算器11の右入力バス、13は加算器11
の在入カバス、14は乗算器10の右入力バス、15は
乗算器10の在入カバス、16はデータバス、17は加
算器出力信号線、18は乗算器出力信号線、19は加算
器11の一ト32ビットヲ加算器11の左入力に入力す
る信号線、20は加算器11の上32ビットヲ加算器の
左入力に入力する信号線、21は乗算器10の出力の上
32ピッ14加算器の右入力に入力する信号線、22は
乗算器10の下32ビットを、加算器の右入力の下32
ビットに入力する信号線である。
乗算器10への入力は、乗算器右入力信号線14、乗算
器在入力信号線15により行なわれ、その出力は、デー
タバス16に信号線21により加算器右入力信号線12
に、及びレジスタファイル4に信号線18を介して送ら
れる。乗算が単精度の乗算結果を倍精度で出力する場合
、及び倍精度演算のときは、演算結果の下32ビット全
信号線22を介して直接加算器11の右入力に入力でき
る構成となっている。加算器11への入力は、単精度の
場合、倍精度で2度に分けて入力される場合、及び倍精
度の上位32ビツトは、加算器右入力及び左入力信号線
(12,及び13)を介して行なわれる。加嘗器の出力
は、データバス16に、あるいは信号線17を介して、
レジスタファイル4に、あるいは、信号線20を介して
加算器圧入力信号線13に送られる。倍精度演算のとき
は、出力の下32ピッ)k信号線19を介して直接加算
器11の左入力に入力できる構成となっている。
器在入力信号線15により行なわれ、その出力は、デー
タバス16に信号線21により加算器右入力信号線12
に、及びレジスタファイル4に信号線18を介して送ら
れる。乗算が単精度の乗算結果を倍精度で出力する場合
、及び倍精度演算のときは、演算結果の下32ビット全
信号線22を介して直接加算器11の右入力に入力でき
る構成となっている。加算器11への入力は、単精度の
場合、倍精度で2度に分けて入力される場合、及び倍精
度の上位32ビツトは、加算器右入力及び左入力信号線
(12,及び13)を介して行なわれる。加嘗器の出力
は、データバス16に、あるいは信号線17を介して、
レジスタファイル4に、あるいは、信号線20を介して
加算器圧入力信号線13に送られる。倍精度演算のとき
は、出力の下32ピッ)k信号線19を介して直接加算
器11の左入力に入力できる構成となっている。
第3図にレジスタファイル4の構成を示す。図において
30は、加算器出力17、乗算器出力18のうちの1つ
を選択するセレクタ、31は読み出し要求信号(几E)
、書き込み要求信号(WE)をもつFIFO(F 1r
st −Im 、 Firs t−0ut )レジスタ
、32は加算器出力17、乗算器出力18、データバス
16のうちの1つを選択するセレクタ、33は2つの読
み出しアドレス(l(、Al。
30は、加算器出力17、乗算器出力18のうちの1つ
を選択するセレクタ、31は読み出し要求信号(几E)
、書き込み要求信号(WE)をもつFIFO(F 1r
st −Im 、 Firs t−0ut )レジスタ
、32は加算器出力17、乗算器出力18、データバス
16のうちの1つを選択するセレクタ、33は2つの読
み出しアドレス(l(、Al。
1(A2)及び書キ込みアドレス(WA)’iもつ2ポ
ートレジスタである。
ートレジスタである。
FIFO31へのデータの書き込みは、加算器出力信号
NA17、及び乗算器出力信号線18のうちのいずれか
をセレクタ30で選択して、WE’(il−オンとする
ことにより行なわれる。また、FIFO31からの読み
出しは、lもEkオンとすることにより、加算器出力信
号1#、12、及び左入力信号線13に出力できる。
NA17、及び乗算器出力信号線18のうちのいずれか
をセレクタ30で選択して、WE’(il−オンとする
ことにより行なわれる。また、FIFO31からの読み
出しは、lもEkオンとすることにより、加算器出力信
号1#、12、及び左入力信号線13に出力できる。
2ボートンジスタ33への入力は、加算器出力信号線1
7、乗算器出力信号線18、データバス16のうちのい
ずれか全セレクタ32で選択してWAのアドレスの位置
に書き込まれる。また、2ボートレジスタ33からの読
み出しは、2ボートレジスタ33のILAI、l(、A
2で指定されたアドレスの位置から読み出され、各々、
乗算器在入力信号線15、加算器圧入力信号線13、及
び乗算器右入力信号線14、加算器右入力信号線12に
出力される。
7、乗算器出力信号線18、データバス16のうちのい
ずれか全セレクタ32で選択してWAのアドレスの位置
に書き込まれる。また、2ボートレジスタ33からの読
み出しは、2ボートレジスタ33のILAI、l(、A
2で指定されたアドレスの位置から読み出され、各々、
乗算器在入力信号線15、加算器圧入力信号線13、及
び乗算器右入力信号線14、加算器右入力信号線12に
出力される。
第4図にメモリ部5及びアドレス演初1部6の構成を示
す。図において、40はメモリデータレジスタ(MDR
H1) 、41はメモリ1.42はメモリデータライト
レジスタ1 (MDWRI )、43はメモリアドレス
レジスタ1 (MA)(,1)、44はメモリデータレ
ジスタ2 (MDRH2)、45はメモリ2.46はメ
モリデータライトレジスタ、47はメモリアドレスレ
スタ2.48.49はMDRll (40) 、MDR
H,2(44)のデータをデータバス16に出力する信
号線、50はALU53の出力と、データバス16のう
ちの1つを選ぶセレクタ、51は2ポートレジスタ、5
2は、MDRRI(40)、MDRH2(44)、)?
、EG51の出力のうちの1つを選ぶセレクタ、53は
A、LUである。2つのメモ!J41,44は同一の機
能をもち、例えば、メモIJI(41)では、読み出し
のときは、MARI(43)に指定されたアドレスのデ
ータを、メモIJI(41)から読み出して、M1月%
l(,1(40)にセットする。書き込みのときは、M
DRRI (42)のデータをメモリ(41)のMA)
(、[43)で指定されたアドレスの位置に書き込む。
す。図において、40はメモリデータレジスタ(MDR
H1) 、41はメモリ1.42はメモリデータライト
レジスタ1 (MDWRI )、43はメモリアドレス
レジスタ1 (MA)(,1)、44はメモリデータレ
ジスタ2 (MDRH2)、45はメモリ2.46はメ
モリデータライトレジスタ、47はメモリアドレスレ
スタ2.48.49はMDRll (40) 、MDR
H,2(44)のデータをデータバス16に出力する信
号線、50はALU53の出力と、データバス16のう
ちの1つを選ぶセレクタ、51は2ポートレジスタ、5
2は、MDRRI(40)、MDRH2(44)、)?
、EG51の出力のうちの1つを選ぶセレクタ、53は
A、LUである。2つのメモ!J41,44は同一の機
能をもち、例えば、メモIJI(41)では、読み出し
のときは、MARI(43)に指定されたアドレスのデ
ータを、メモIJI(41)から読み出して、M1月%
l(,1(40)にセットする。書き込みのときは、M
DRRI (42)のデータをメモリ(41)のMA)
(、[43)で指定されたアドレスの位置に書き込む。
MDW)LL (42)はデータバス16からのデータ
をセットでき、また、MDR)LL(40)は、データ
バス16、加算器右入力12、加算器圧入力13、乗算
器右入力14、乗算器圧入力15の信号線に出力可能な
構成となっている。また、MARL(43)は、ALU
53の出力をセットできるほか、1だけカウントアツプ
及びダウンする機能をもつ。
をセットでき、また、MDR)LL(40)は、データ
バス16、加算器右入力12、加算器圧入力13、乗算
器右入力14、乗算器圧入力15の信号線に出力可能な
構成となっている。また、MARL(43)は、ALU
53の出力をセットできるほか、1だけカウントアツプ
及びダウンする機能をもつ。
)1.EG51は、2つの読み出しアドレスWKI。
WN2にもつ2ボートレジスタであり、書き込みは、1
マシンサイクルの後半でWKIのアドレスに書き込まれ
る。ALU53?′i、右入力はl3JEG51からの
データ左入力は、■もEG51 、 MDRI(。
マシンサイクルの後半でWKIのアドレスに書き込まれ
る。ALU53?′i、右入力はl3JEG51からの
データ左入力は、■もEG51 、 MDRI(。
1 (40)、MDRR2(44)のいずれかのデータ
を用いて演算し、その結果kMAR1(43)。
を用いて演算し、その結果kMAR1(43)。
MA)L2 (47)、REG51にセットできる。
2〜6の各ユニットの1マシンサイクルの動作はマイク
ロプログラムコントローラ7にあるマイタロプログラム
の1飴により規定される。信号線12〜16への各ユニ
ットからの出力は、どれが1つしか選択されないように
規定されている。
ロプログラムコントローラ7にあるマイタロプログラム
の1飴により規定される。信号線12〜16への各ユニ
ットからの出力は、どれが1つしか選択されないように
規定されている。
表1に、演算ユニット3で扱われるデータフォーマット
盆示す。
盆示す。
表1
浮動小数点には、単精度及び倍精度のフォーマツIf用
いる。演算結果がアンダーフローを生じていた時は、演
算結果を零に、オーバーフローが生じていた場合には、
リザーブドオベランドにセットする。また、入力データ
がリザーブドオペランドでめった時は、そのデータを、
そのまま、演算結果として出力する。この時、入力デー
タが、左右入力ともリザーブドオベランドであった場合
は、左側入力データを演算結果として出力する。
いる。演算結果がアンダーフローを生じていた時は、演
算結果を零に、オーバーフローが生じていた場合には、
リザーブドオベランドにセットする。また、入力データ
がリザーブドオペランドでめった時は、そのデータを、
そのまま、演算結果として出力する。この時、入力デー
タが、左右入力ともリザーブドオベランドであった場合
は、左側入力データを演算結果として出力する。
第5図は本発明の中心である浮動小数点加算器11の構
成を示す。図で浮動小数点単精度データの加算を用いて
、加算器の機能を説明する。3段からなるパイプライン
ステージの第1ステージでは、以下の処理がなされる。
成を示す。図で浮動小数点単精度データの加算を用いて
、加算器の機能を説明する。3段からなるパイプライン
ステージの第1ステージでは、以下の処理がなされる。
加算器11の左入力13.19及び右入力12.22か
ら入力される各データの仮数部(リーディングピッ)1
−含む入力データの下位24ビツト)は、それぞれ、セ
レクタ114及び115により選択され、それぞれ、ラ
ンチレジスタ116及び117にラッチされる。
ら入力される各データの仮数部(リーディングピッ)1
−含む入力データの下位24ビツト)は、それぞれ、セ
レクタ114及び115により選択され、それぞれ、ラ
ンチレジスタ116及び117にラッチされる。
一方、左入力13及び右入力12の入力データの各指数
部は、Arithmetic Logic Unit
(以下、ALUと略す)109で比較される。ALU
109の左入力Aには加算器圧入カデータ13の上位8
ビツトか入力され、右側入力には加算器右入力データ1
2の上位8ビツトが入力される。ALU109によって
(左入力へ−右入力B)を行なった結果は、ラッチレジ
スタ113にラッチされる。
部は、Arithmetic Logic Unit
(以下、ALUと略す)109で比較される。ALU
109の左入力Aには加算器圧入カデータ13の上位8
ビツトか入力され、右側入力には加算器右入力データ1
2の上位8ビツトが入力される。ALU109によって
(左入力へ−右入力B)を行なった結果は、ラッチレジ
スタ113にラッチされる。
また、ALU109での演算結果の符号ビットは、ラッ
チレジスタ112にラッチされるとともに、セレクタ1
10の制御信号となり、符号ビットが0″の場合は右側
入力118のデータが右側入力120より大きな値であ
るということで、左側人力11,8が選択され、ラッチ
レジスタ111にラッチされる。なお、加算器11の左
入力である19には加算器11の出力の倍精度データの
下位32ビツトが、右入力である22には乗算器1゜の
出力の倍精度データの下位32ビツトが入力されるので
、このデータには指数部が含まれない。
チレジスタ112にラッチされるとともに、セレクタ1
10の制御信号となり、符号ビットが0″の場合は右側
入力118のデータが右側入力120より大きな値であ
るということで、左側人力11,8が選択され、ラッチ
レジスタ111にラッチされる。なお、加算器11の左
入力である19には加算器11の出力の倍精度データの
下位32ビツトが、右入力である22には乗算器1゜の
出力の倍精度データの下位32ビツトが入力されるので
、このデータには指数部が含まれない。
そのため、信号線−19及び22は指数部には入力され
ない。
ない。
次の第2ステージでは、ALU109の指数部減算によ
って取り出された指数部は、バイアス補正され、仮数部
はALUMODE 判定回路によって決定された加算命
令によって加算される。すなわち、以下の処理が行なわ
れる。ALU131の左側入力Aは、ラッチレジスタ1
11の内容が入力され、右側人力Bにはセレクタ133
によって選択されたROMデータゼロが入力され、両人
力データA、Bは加算される。単精度浮動小数点加算の
場合、加算器の出力として第4図に示す単精度の浮動小
数点データを出力しなければならないので、指数部のバ
イアス127を減算する必要はなく、八人力がそのまま
出力されればよい。そこで、ROMデータN OI+が
加えられ、その結果は、ラッチレジスタ132にラッチ
される。一方、第2ステージにおける仮数部の処理は、
以下のようになる。セレクタ134にはラッチレジスタ
112からALU 109の符号ビットを表わす1ビツ
トの制御信号114が入力され、この制御信号144が
0”ならばラッチレジスタ116,117のり135は
セレクタ134によって選択されたデータをラッチレジ
スタ113にセットされている加算器に入力された2つ
のデータの指数部の差分だけ右シフトする。次に、セレ
クタ137はラッチレジスタ112からの制御信号14
4が′0″ならば、データバス153と154の2つの
うち、データバス153をセレクトする。セレクタ13
8はラッチレジスタ112からの制御信号114が0”
ならばデータバス155と156の2つのウチ、データ
バス155を選択する。この2つのセレクタ137,1
38によって仮数部の加算データであるALU139の
2りの入力データを選択する。ALUMODE判定回路
でめる136は加算器の左右入力データ信号13及び1
2の符号ビット信号148及び149と外部からの演算
の種類を表わす制御信号152によってALU 139
の演算の種類全決定し、ALU139に制御信号151
−送る。ALUl 39はALUMODE判定回路13
6からの制御信号150によって仮数部の加算を行ない
、ラッチレジスタ142に演X結果をラッチする。LE
ADING″0”カウンタ140はALU 139の演
算結果を正規化するために、演算結果のリーディング″
′0”全カウントする回路である。すなわち、演算結果
が、例えば、0.00100・・・・・・でめれば1.
00・・・・・・の形に正規化するためのシフト数=3
を数える回路で、その結果をランチレジスタ141にラ
ッチする。以上が第2ステージの処理であるが、次に、
第3ステージの処理について説明する。
って取り出された指数部は、バイアス補正され、仮数部
はALUMODE 判定回路によって決定された加算命
令によって加算される。すなわち、以下の処理が行なわ
れる。ALU131の左側入力Aは、ラッチレジスタ1
11の内容が入力され、右側人力Bにはセレクタ133
によって選択されたROMデータゼロが入力され、両人
力データA、Bは加算される。単精度浮動小数点加算の
場合、加算器の出力として第4図に示す単精度の浮動小
数点データを出力しなければならないので、指数部のバ
イアス127を減算する必要はなく、八人力がそのまま
出力されればよい。そこで、ROMデータN OI+が
加えられ、その結果は、ラッチレジスタ132にラッチ
される。一方、第2ステージにおける仮数部の処理は、
以下のようになる。セレクタ134にはラッチレジスタ
112からALU 109の符号ビットを表わす1ビツ
トの制御信号114が入力され、この制御信号144が
0”ならばラッチレジスタ116,117のり135は
セレクタ134によって選択されたデータをラッチレジ
スタ113にセットされている加算器に入力された2つ
のデータの指数部の差分だけ右シフトする。次に、セレ
クタ137はラッチレジスタ112からの制御信号14
4が′0″ならば、データバス153と154の2つの
うち、データバス153をセレクトする。セレクタ13
8はラッチレジスタ112からの制御信号114が0”
ならばデータバス155と156の2つのウチ、データ
バス155を選択する。この2つのセレクタ137,1
38によって仮数部の加算データであるALU139の
2りの入力データを選択する。ALUMODE判定回路
でめる136は加算器の左右入力データ信号13及び1
2の符号ビット信号148及び149と外部からの演算
の種類を表わす制御信号152によってALU 139
の演算の種類全決定し、ALU139に制御信号151
−送る。ALUl 39はALUMODE判定回路13
6からの制御信号150によって仮数部の加算を行ない
、ラッチレジスタ142に演X結果をラッチする。LE
ADING″0”カウンタ140はALU 139の演
算結果を正規化するために、演算結果のリーディング″
′0”全カウントする回路である。すなわち、演算結果
が、例えば、0.00100・・・・・・でめれば1.
00・・・・・・の形に正規化するためのシフト数=3
を数える回路で、その結果をランチレジスタ141にラ
ッチする。以上が第2ステージの処理であるが、次に、
第3ステージの処理について説明する。
第3ステージでは仮数部加算後のシフトによって起こっ
た不合理を指数部を゛演算することによって整える。仮
数部加算後の丸め処理全行ない、浮動小数点単精度デー
タにして出力するための指数部及び仮数部を作成する。
た不合理を指数部を゛演算することによって整える。仮
数部加算後の丸め処理全行ない、浮動小数点単精度デー
タにして出力するための指数部及び仮数部を作成する。
絶対値表現変換回路171は仮数部加算によって2の補
数形式になったラッチレジスタ142の値を絶対値表現
とするもので、ラッチレジスタ142の値のうち下53
ビットのデータに対して、2の補数を取る回路である。
数形式になったラッチレジスタ142の値を絶対値表現
とするもので、ラッチレジスタ142の値のうち下53
ビットのデータに対して、2の補数を取る回路である。
これは出力すべき浮動小数点データの仮数部が絶対値表
現されているからである。丸め処理回路172は丸め処
理を行ない、シフタ173は丸め後のデータ182を正
規化するために、ラッチレジスタ141の値だけ左シフ
トする。一方、ラッチレジスタの142の10ビツト目
(ビットNo、、10)が1”ならば、これは加算器へ
の指数部が等しい2つの入力データを加算した場合に生
ずるが、シフタ173の代りに、シフタ174により丸
め後のデータ182を右に1ビツトシフトする。ALU
170は、丸め後のデータ182の仮数部のシフトによ
って生じた不合理を補償するために必要である。すなわ
ち、シフタ173または174によってシフトした分だ
け加算器11の出力データの指数部データであるラッチ
レジスタ132の値A’に補正する必要がある。具体的
には、ラッチレジスタ132の値Aからラッチレジスタ
141の値B?引く。しかし、ラッチレジスタ142の
10ビツト目(ビットNo、10)が1”の場合はA+
1の演算を行なう。以上述べた処理によって求めな値(
符号はラッチレジスタ1.42の符号ビット信号181
、指数部はALU170の演算結果信号176、仮数部
はシフタ173捷たVよ174の出力信号185)をセ
レクタ175に入力し、セレクタ175では外部制御信
号241〜244に基づいて単精度浮動小数点データを
作成し、データ188を出力する。
現されているからである。丸め処理回路172は丸め処
理を行ない、シフタ173は丸め後のデータ182を正
規化するために、ラッチレジスタ141の値だけ左シフ
トする。一方、ラッチレジスタの142の10ビツト目
(ビットNo、、10)が1”ならば、これは加算器へ
の指数部が等しい2つの入力データを加算した場合に生
ずるが、シフタ173の代りに、シフタ174により丸
め後のデータ182を右に1ビツトシフトする。ALU
170は、丸め後のデータ182の仮数部のシフトによ
って生じた不合理を補償するために必要である。すなわ
ち、シフタ173または174によってシフトした分だ
け加算器11の出力データの指数部データであるラッチ
レジスタ132の値A’に補正する必要がある。具体的
には、ラッチレジスタ132の値Aからラッチレジスタ
141の値B?引く。しかし、ラッチレジスタ142の
10ビツト目(ビットNo、10)が1”の場合はA+
1の演算を行なう。以上述べた処理によって求めな値(
符号はラッチレジスタ1.42の符号ビット信号181
、指数部はALU170の演算結果信号176、仮数部
はシフタ173捷たVよ174の出力信号185)をセ
レクタ175に入力し、セレクタ175では外部制御信
号241〜244に基づいて単精度浮動小数点データを
作成し、データ188を出力する。
次に、本発明の要点である指数部抽出処理について単精
度指数部用力を例にとり説明する。指数部取り出し命令
では入力データは1つなので加算器左側入力のみ、ある
いは、加算器右側入力のみの2つの場合がるるか、ここ
では加算器左側入力の場合について説明する。第1ステ
ージは以下の処理を行なう。まず、入力データの仮数部
は先に説明したのと同様にして、セレクタ114を介し
てラッチレジスタ116にラッチされる。次に、指数部
は外部信号200によりセレクタ110はデータバス1
18を選択し、ラッチレジスタ111にラッチされる。
度指数部用力を例にとり説明する。指数部取り出し命令
では入力データは1つなので加算器左側入力のみ、ある
いは、加算器右側入力のみの2つの場合がるるか、ここ
では加算器左側入力の場合について説明する。第1ステ
ージは以下の処理を行なう。まず、入力データの仮数部
は先に説明したのと同様にして、セレクタ114を介し
てラッチレジスタ116にラッチされる。次に、指数部
は外部信号200によりセレクタ110はデータバス1
18を選択し、ラッチレジスタ111にラッチされる。
第2ステージではバイアス補正を行なう。ALU131
は左側入力Aにラッチレジスタ111の値を、右側人力
Bにセレクタ133により選択されたバイアス値″12
7”を入力データとして加算し、演算結果を132にラ
ッチする。
は左側入力Aにラッチレジスタ111の値を、右側人力
Bにセレクタ133により選択されたバイアス値″12
7”を入力データとして加算し、演算結果を132にラ
ッチする。
一方、第2ステージにおける仮数部の処理は、以下の通
りである。ラッチレジスタ116の値は、外部信号20
1によりセレクタ137で選択されALU 139の八
人力となる。また、外部信号152によってAL、UM
ODE判定回路136は演算の種類としてA入力スルー
(八人力をそのままALU 139の出力とする)信号
150を出力する。A人力スルー信号150によりAL
U 139はA入力(入力データのリーディングピッI
f含めた仮数部データ162)’r出力し、仮数部デー
タ162はラッチレジスタ142にラッチされる。
りである。ラッチレジスタ116の値は、外部信号20
1によりセレクタ137で選択されALU 139の八
人力となる。また、外部信号152によってAL、UM
ODE判定回路136は演算の種類としてA入力スルー
(八人力をそのままALU 139の出力とする)信号
150を出力する。A人力スルー信号150によりAL
U 139はA入力(入力データのリーディングピッI
f含めた仮数部データ162)’r出力し、仮数部デー
タ162はラッチレジスタ142にラッチされる。
また、仮数部データ162は正規化されたデータなので
、リーディング″0”カウンタ140はラッチレジスタ
141に0”をセットする。
、リーディング″0”カウンタ140はラッチレジスタ
141に0”をセットする。
第3ステージの処理は次の通りである。まず、仮数部の
処理について説明する。ラッチレジスタ142の値は先
に説明したと同様に、絶対値表現変換回路171、丸め
処理回路172で処理される142の10ビツト目(ビ
ットNo、10)の値が0″′(正規化データされた入
力データそのもののため)であること、及び、ラッチレ
ジスタ141の値が0″′であることから、シフタ17
3でシフトせずに、そのまま、データバス185に出力
され、出力データ選択回路175に入力される。一方、
指数部については、ラッチレジスタ142の10ビツト
目が0”であることから、ALTJ 170ではラッチ
レジスタ1320fif Aから” O” ’に減算し
、Aそのもの、すなわち、入力データ13、の指数部を
データバス176に出力する。出力データ選択回路17
5は、単精度指数部命令を指命する外部信号により、入
力データの指数部を符号拡張データとして、データバス
188に出力する。この出力データ選択回路175の詳
細について次に説明する。
処理について説明する。ラッチレジスタ142の値は先
に説明したと同様に、絶対値表現変換回路171、丸め
処理回路172で処理される142の10ビツト目(ビ
ットNo、10)の値が0″′(正規化データされた入
力データそのもののため)であること、及び、ラッチレ
ジスタ141の値が0″′であることから、シフタ17
3でシフトせずに、そのまま、データバス185に出力
され、出力データ選択回路175に入力される。一方、
指数部については、ラッチレジスタ142の10ビツト
目が0”であることから、ALTJ 170ではラッチ
レジスタ1320fif Aから” O” ’に減算し
、Aそのもの、すなわち、入力データ13、の指数部を
データバス176に出力する。出力データ選択回路17
5は、単精度指数部命令を指命する外部信号により、入
力データの指数部を符号拡張データとして、データバス
188に出力する。この出力データ選択回路175の詳
細について次に説明する。
第6図は浮動小数点加算器出力を加算器に対する命令の
種類によって、命令に対応したデータを選択し出力する
出力データ選択回路175の構成図を示す。出力データ
選択回路175は、例えば、単精度浮動小数点加算命令
の場合には、第7図(a)に示すようにθビット目は符
号ビット、1−8ビツトは指数部、9−13ピツトは仮
数部となるデータを、また、単精度指数部出力命令の場
合には、第7図(C)に示すデータフォーマットのデー
タを出力する必要がある。ここでは、単精度指数部命令
における出力データ選択回路175の処理内容について
説明する。バッファ227の左側入力には、加算器入力
データの指数部がデータバス176がら入力され、右側
入力には出力起動信号241と単精度演算信号242と
指数部出力信号243のAND(i1″取った信号の反
転信号255が入力され、反転信号255が°′0”の
ときデータバス176の3ビツト目のデータが出力デー
タバス18800ビツト目から24ピツトに対応するデ
ータバス250に出力される。すなわち、指数部のMO
Bに対応する3ビツト目の値を符号ビットとして符号拡
張しff、0−24ビツトにセットする。バッファ22
8の左側入力には加算器入力データの指敷部がデータバ
ス176から入力され、右側入力には反転信号255の
4−10ピツトのデータは出力データバス188の25
−31ビツトに対応するデータバス257に出力される
。バッファ229の左側入力には加算器入力データの仮
数部がデータバス185から入力され、右側入力には反
転信号255゛が入力され、反転信号255が”0″の
とき、データバス185の32−85ピツトのデータは
出力データバス188の32−63ピツトに対応するデ
ータバス258に出力される。以上により、第7図(C
)に示すデータフォーマットの出力データが出力される
。
種類によって、命令に対応したデータを選択し出力する
出力データ選択回路175の構成図を示す。出力データ
選択回路175は、例えば、単精度浮動小数点加算命令
の場合には、第7図(a)に示すようにθビット目は符
号ビット、1−8ビツトは指数部、9−13ピツトは仮
数部となるデータを、また、単精度指数部出力命令の場
合には、第7図(C)に示すデータフォーマットのデー
タを出力する必要がある。ここでは、単精度指数部命令
における出力データ選択回路175の処理内容について
説明する。バッファ227の左側入力には、加算器入力
データの指数部がデータバス176がら入力され、右側
入力には出力起動信号241と単精度演算信号242と
指数部出力信号243のAND(i1″取った信号の反
転信号255が入力され、反転信号255が°′0”の
ときデータバス176の3ビツト目のデータが出力デー
タバス18800ビツト目から24ピツトに対応するデ
ータバス250に出力される。すなわち、指数部のMO
Bに対応する3ビツト目の値を符号ビットとして符号拡
張しff、0−24ビツトにセットする。バッファ22
8の左側入力には加算器入力データの指敷部がデータバ
ス176から入力され、右側入力には反転信号255の
4−10ピツトのデータは出力データバス188の25
−31ビツトに対応するデータバス257に出力される
。バッファ229の左側入力には加算器入力データの仮
数部がデータバス185から入力され、右側入力には反
転信号255゛が入力され、反転信号255が”0″の
とき、データバス185の32−85ピツトのデータは
出力データバス188の32−63ピツトに対応するデ
ータバス258に出力される。以上により、第7図(C
)に示すデータフォーマットの出力データが出力される
。
本発明によれば、7ogx、 l″;C等の関数演算
処理において、従来はμプログラムでシフト命令(2マ
シンサイクル)、減算命令、データ転送命令と4マシン
サ、イクルヲ要した入力データの指数部の切出し処理が
、3マシンサイクルで実行でき、かつ、1つの指数部出
力命令により処理できるので、μプログラミングが簡単
になるという効果がある。
処理において、従来はμプログラムでシフト命令(2マ
シンサイクル)、減算命令、データ転送命令と4マシン
サ、イクルヲ要した入力データの指数部の切出し処理が
、3マシンサイクルで実行でき、かつ、1つの指数部出
力命令により処理できるので、μプログラミングが簡単
になるという効果がある。
第1図は浮動小数点加算器を含むフローティングベクト
ルプロセッサの全体構成図、第2図は演算ユニットのブ
ロック図、第3図はレジスタファイルのブロック図、第
4図はメモリ部のブロック図、第5図は本発明の浮動小
数点加算器の全体構成図、第6図は本発明の出力データ
選択回路図、第7図(a)〜(d)は本発明の出力デー
タフォーマットの説明図である。 136・・・ALUMODE判定回路、171・・・絶
対値表現変換回路。 第 S 目 第5図
ルプロセッサの全体構成図、第2図は演算ユニットのブ
ロック図、第3図はレジスタファイルのブロック図、第
4図はメモリ部のブロック図、第5図は本発明の浮動小
数点加算器の全体構成図、第6図は本発明の出力データ
選択回路図、第7図(a)〜(d)は本発明の出力デー
タフォーマットの説明図である。 136・・・ALUMODE判定回路、171・・・絶
対値表現変換回路。 第 S 目 第5図
Claims (1)
- 【特許請求の範囲】 1、浮動小数点表示の入力データに基づいて、単精度、
倍精度演算を実行する浮動小数点加算器において、前記
入力データの指数部を固定小数点表示データ形式で出力
する手段を設けたことを特徴とする浮動小数点加算器。 2、特許請求の範囲第1項記載の浮動小数点加算器にお
いて、さらに、バイアス表示されている指数部データを
真値に変換する手段を設けたことを特徴とする浮動小数
点加算器。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP57139886A JPS5932038A (ja) | 1982-08-13 | 1982-08-13 | 浮動小数点加算器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP57139886A JPS5932038A (ja) | 1982-08-13 | 1982-08-13 | 浮動小数点加算器 |
Publications (1)
Publication Number | Publication Date |
---|---|
JPS5932038A true JPS5932038A (ja) | 1984-02-21 |
Family
ID=15255876
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP57139886A Pending JPS5932038A (ja) | 1982-08-13 | 1982-08-13 | 浮動小数点加算器 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JPS5932038A (ja) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS60181833A (ja) * | 1984-02-28 | 1985-09-17 | Nec Corp | 浮動小数点加算器用桁合せ回路 |
JPS6126136A (ja) * | 1984-07-16 | 1986-02-05 | Nec Corp | 浮動小数点加算回路の桁合わせ回路 |
US4719589A (en) * | 1983-12-28 | 1988-01-12 | Nec Corporation | Floating-point adder circuit |
JPH02226420A (ja) * | 1989-01-13 | 1990-09-10 | Internatl Business Mach Corp <Ibm> | 浮動小数点演算実行装置 |
-
1982
- 1982-08-13 JP JP57139886A patent/JPS5932038A/ja active Pending
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4719589A (en) * | 1983-12-28 | 1988-01-12 | Nec Corporation | Floating-point adder circuit |
JPS60181833A (ja) * | 1984-02-28 | 1985-09-17 | Nec Corp | 浮動小数点加算器用桁合せ回路 |
JPS6126136A (ja) * | 1984-07-16 | 1986-02-05 | Nec Corp | 浮動小数点加算回路の桁合わせ回路 |
JPH0379735B2 (ja) * | 1984-07-16 | 1991-12-19 | Nippon Electric Co | |
JPH02226420A (ja) * | 1989-01-13 | 1990-09-10 | Internatl Business Mach Corp <Ibm> | 浮動小数点演算実行装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6529928B1 (en) | Floating-point adder performing floating-point and integer operations | |
JP2662196B2 (ja) | 演算結果正規化方法及び装置 | |
CA1184664A (en) | Floating point addition architecture | |
US4941120A (en) | Floating point normalization and rounding prediction circuit | |
US6099158A (en) | Apparatus and methods for execution of computer instructions | |
US5272660A (en) | Method and apparatus for performing integer and floating point division using a single SRT divider in a data processor | |
JP2651267B2 (ja) | 演算処理装置及び演算処理方法 | |
US4866652A (en) | Floating point unit using combined multiply and ALU functions | |
JPH06236257A (ja) | データ・プロセッサにおいて浮動小数点実行ユニット内で後正規化を実行する方法および装置 | |
JPS6097435A (ja) | 演算処理装置 | |
JP3313560B2 (ja) | 浮動小数点演算処理装置 | |
US4386413A (en) | Method and apparatus of providing a result of a numerical calculation with the number of exact significant figures | |
JPS62197823A (ja) | 多能算術論理回路 | |
JP3146308B2 (ja) | マトリツクス演算回路 | |
US5337265A (en) | Apparatus for executing add/sub operations between IEEE standard floating-point numbers | |
JPH0343645B2 (ja) | ||
JPS63123125A (ja) | 浮動小数点数の加算装置 | |
JP2617974B2 (ja) | データ処理装置 | |
JPS5932038A (ja) | 浮動小数点加算器 | |
JPH02294731A (ja) | 浮動小数点数演算処理装置及び除数倍数生成装置 | |
JPS5968058A (ja) | フロ−テイング乗算器 | |
JPH0346024A (ja) | 浮動小数点演算器 | |
US9361268B2 (en) | Splitable and scalable normalizer for vector data | |
JPS59105142A (ja) | フロ−テイング加算器 | |
JPS62159224A (ja) | 浮動小数点演算回路 |