JP2512230B2 - 演算処理装置 - Google Patents

演算処理装置

Info

Publication number
JP2512230B2
JP2512230B2 JP2317295A JP31729590A JP2512230B2 JP 2512230 B2 JP2512230 B2 JP 2512230B2 JP 2317295 A JP2317295 A JP 2317295A JP 31729590 A JP31729590 A JP 31729590A JP 2512230 B2 JP2512230 B2 JP 2512230B2
Authority
JP
Japan
Prior art keywords
exponent
data group
output
correction
data
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 - Fee Related
Application number
JP2317295A
Other languages
English (en)
Other versions
JPH04184624A (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.)
Panasonic Holdings Corp
Original Assignee
Matsushita Electric Industrial 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 Matsushita Electric Industrial Co Ltd filed Critical Matsushita Electric Industrial Co Ltd
Priority to JP2317295A priority Critical patent/JP2512230B2/ja
Publication of JPH04184624A publication Critical patent/JPH04184624A/ja
Application granted granted Critical
Publication of JP2512230B2 publication Critical patent/JP2512230B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Description

【発明の詳細な説明】 産業上の利用分野 本発明は、デジタル信号処理に利用する演算処理装置
に関し、詳細には有限語長の固定小数点データを高精度
に演算するためのブロック浮動小数点演算を高速に行う
ようにした演算処理装置に関する。
従来の技術 デジタル信号処理におけるデータの表現方法の要素と
して演算処理の演算精度を決定づける要因の一つは、固
定小数点表現、浮動小数点表現のいずれかを用いる。
ここで浮動小数点表現は、殊に、精度の高い処理が必
要な場合に広いダイナミックレンジがとれるという利点
がある。しかし、装置の回路規模や制御が複雑であり、
処理速度の点で不利である。
固定小数点表現は、装置の構成が簡素にでき、しかも
高速演算が容易にできるなどの大きな利点がある反面、
演算を繰り返して行う場合には常に桁あふれ、桁落ちの
可能性があるという欠点がある。この欠点を補うための
方法がブロックフローティングと呼ばれる数値の表現方
法である。これは限られたダイナミックレンジをより有
効に用いるための方法であり、処理を行うデータ個数m
に対して1個の指数部を持つ表現方法である。すなわ
ち、m個のデータすべてに対して同一のスケーリングを
施すことによって桁落ちなどを防ぐものである。原則的
には乗算時の桁落ちを防ぐため、データを左詰め(正規
化)しておく。
しかしながら、これらのブロックデータ同士の加減算
を行うときには、それぞれのデータ群を算術シフトして
桁合わせをする必要が生じる。例えば、m個(mは正整
数)の仮数部d1i(i=0…m−1)と、仮数部d1iに対
して一つ定められる指数部e1からなる第1のデータ群D
1i(i=0…m−1)と、m個(mは正整数)の仮数部
d2i(i=0…m−1)と、仮数部d2iに対して一つ定め
られる指数部e2からなる第2のデータ群D2i(i=0…
m−1)の加減算をして、結果を第3のデータ群D
3i(i=0…m−1)として格納する場合、即ちD3i=D
1i±D2i(i=0…m−1)の計算を行う場合には、ま
ず仮数部d1iと仮数部d2iの加算を行う前にデータ群D1i
とデータ群D2iの指数が一致するように指数が大きい方
のデータ群に合わせて指数が小さい方のデータ群の仮数
部をシフトしておく必要がある。また、加減算の結果と
して得られる第3のデータ群D3iは次のブロック浮動小
数点演算のソースデータとなる場合に備えて、m個の仮
数部のそれぞれを正規化するのに必要な左シフト数のう
ち最小のシフト数だけ左にシフトしておく必要がある。
以下に、従来の演算処理装置で上記のようなブロック
浮動小数点演算処理を行う方法を説明する。
第4図は従来の演算処理装置の構成の一例を示してい
る。
第4図において、23はメモリであり、複数個の仮数部
と前記複数個の仮数部に対して一つの定められる指数部
および指数補正部からなる第1のデータ群、第2のデー
タ群および後述の第3のデータ群を少なくとも記憶する
ものである。24はデータバスであり、データの転送を行
うものである。25はバレルシフタであり、後述のレジス
タ26で指定されるシフト数にしたがい、シフト数が負の
時は左にシフトしシフト数が正の時は右にシフトしてレ
ジスタ29あるいはALU28に出力するものである。26はレ
ジスタであり、バレルシフタ25のシフト数を一時記憶し
て、バレルシフタ25に出力するものである。27はレジス
タであり、データバス出力を一時記憶して後述の演算ユ
ニット(以下、ALUという)28の左側入力に出力するも
のである。ALU28はレジスタ27の出力を左側入力とし、
データバス24の出力あるいはバレルシフタ25の出力を右
側入力として算術論理演算を行うものである。レジスタ
29は、ALU28の出力あるいはバレルシフタ25の出力を一
時記憶してデータバス24に出力するものである。
次に上記従来例の動作について説明する。
第4図において、メモリ23に格納されm個(mは正整
数)の仮数部d1i(i=0…m−1)と、仮数部d1iに対
して一つ定められる指数部e1からなる第1のデータ群D
1i(i=0…m−1)と、m個(mは正整数)の仮数部
d2i(i=0…m−1)と、仮数部d2iに対して一つ定め
られる指数部e2からなる第2のデータ群D2i(i=0…
m−1)の加減算をして、結果を第3のデータ群D
3i(i=0…m−1)として格納する場合、即ちD3i=D
1i±D2i(i=0…m−1)の計算を行う場合について
動作を説明する。但し、前記第1および第2のデータ群
D1i,D2iの仮数部d1i(i=0…m−1)と仮数部d
2i(i=0…m−1)はそれぞれブロックデータとして
あらかじめ正規化されていものとする。またここでは指
数部e1と指数部e2とはe1>e2の関係があるものとする。
まず、仮数部d1iの仮数部d2iの加算を行う前に第1およ
び第2のデータ群D1i,D2iの指数部が一致するように準
備する必要がある。即ちここでは指数部の値が大きい第
1のデータ群D1iの指数に第2のデータ群D2iの指数を合
わせるために、第2のデータ群D2iの仮数部d2iを値(e1
−e2)だけ右にシフトする必要がある。メモリ23からデ
ータバス24を介して第1のデータ群D1iの指数部の値e1
をレジスタ27に格納し、次にメモリ23から第2のデータ
群D2iの指数部の値e2をデータバス24に出力する。ALU28
はレジスタ27の出力とデータバス24の出力との減算を行
い第1および第2のデータ群D1i,D2iの指数部e1,e2の差
e1−e2をレジスタ29に出力する。次にレジスタ29の出力
をデータバス24を介してレジスタ26に格納する。
次に、第2のデータ群D2iの仮数部d2iを桁合わせのた
めのシフトをした上で、第1のデータ群D1iとの加減算
を行う。まず、第1のデータ群D1iの仮数部の値d1i(i
=0)をメモリ23から読み出してデータバス24を介して
レジスタ27に一時記憶する。また、第2のデータ群D2i
の仮数部の値d2i(i=0)をメモリ23から読み出して
データバス24を介してバレルシフタ25でレジスタ26の出
力の値(e1−e2)だけ右にシフトしてからALU28の右側
入力に出力する。ALU28はレジスタ27の出力とバレルシ
フタ25の出力を入力として加減算を行いレジスタ29に一
時記憶しその値を第1のデータ群D1iと同じ値e1を指数
部とする第3のデータ群D3iの仮数部d3i(i=0)とし
てメモリ23へ格納する。以下、第1のデータ群D1iの仮
数部の値d1i(i=1…m−1)と第2のデータの仮数
部の値d2i(i=1…m−1)に対して同様の処理を行
い、演算結果を第3のデータ群D3iの仮数部d3i(i=1
…m−1)としてメモリ23に格納する。
次に第3のデータ群D3iは次のブロック浮動小数点演
算のソースデータとなる場合に備えて、仮数部のm個の
値d3i(i=1…m−1)のそれぞれを正規化するのに
必要なシフトビット数のうち最小の左シフトビット数を
検出して、そのビット数だけ左シフトしてメモリ23に格
納しておく必要がある。このためにはメモリ23から仮数
部のm個の値d3i(i=1…m−1)を順に読み出してA
LU28を用いて絶対値を計算し、計算した絶対値のうち、
最も大きい絶対値に対応するデータのビットパターンを
あらかじめ調べ、その結果によってm個の全データのシ
フトを行う。
このように上記従来の演算処理装置でも、ブロックデ
ータ全体を何度も読み出して、正規化のためのシフト数
を検出したり、スケーリングのためのシフトを行った
り、加減算の時に桁合わせのためのシフトを行うことに
より、ブロック浮動小数点演算を行うことができる。
発明が解決しようとする課題 しかしながら、上記従来の演算処理装置では、ブロッ
ク浮動小数点演算を行うために、複数の演算結果を一度
メモリに格納した上で、複数の演算結果データを正規化
するのに必要なシフト数を求めなければならない。従っ
て、少なくともデータ数と同じ回数だけメモリから読出
動作を行う必要がある。また、求められたシフト数分だ
け正規化シフトするために再び少なくともデータ数と同
じ回数だけメモリからの読出し動作を行う必要があっ
た。また、メモリ内の2個のデータ群に対して加減算を
行う際に、加減算器に入力する2個のデータ群の正規化
後の指数が異なる場合はさらに指数部が大きいほうのデ
ータ群に桁を合わせるためにシフト処理も必要となるた
め、演算を高速に行うことができないという問題があっ
た。
本発明は、このような従来の問題を解決するものであ
り、シフト処理とメモリからのデータの読出し動作を省
略して高速演算処理ができる優れた演算処理装置を提供
することを目的とするものである。
課題を解決するための手段 本発明は上記目的を達成するために、複数個の仮数部
と前記複数個の仮数部に対して一つ定められた指数部お
よび指数補正部からなる第1のデータ群、第2のデータ
群および第3のデータ群を少なくとも記憶するメモリ
と、前記第1のデータ群の指数部と指数補正部の加算を
行い指数補正をい行う第1の指数補正手段と、前記第2
のデータ群の指数部と指数補正部の加算を行い指数補正
を行う第2の指数補正手段と、前記第1の指数補正手段
出力と前記第2の指数補正手段出力の大小判定を行い、
大であると判定した第1あるいは第2の指数補正手段出
力を第1の書き込み手段に出力する指数大小判断手段
と、前記指数大小比較手段が補正後の指数が大であると
判定した前記第1もしくは前記第2のデータ群の仮数部
の内容をそれと対応する指数補正部の絶対値分だけ左シ
フトする第1のシフト手段と、前記指数大小判定手段が
補正後の指数が小であると判定した前記第1もしくは前
記第2のデータ群の仮数部の内容を、前記指数大小判定
手段が補正後の指数が大であると判定した前記第1もし
くは第2のデータ群の指数部と指数補正部を加算した値
から、前記指数大小判定手段が補正後の指数が小である
と判定した前記第1もしくは第2のデータ群の指数部を
減算することにより求められる値に対応して、その値が
正の場合はその絶対値が右シフトし、その値が負の場合
はその絶対値だけ左シフトする第2のシフト手段と、前
記第1のシフト手段出力と前記第2のシフト手段出力の
加減算を行う加減算器と、前記加減算器から出力される
複数の演算結果に対して、各々の前記加減算器出力を正
規化するために必要な左シフト数の中で最小の左シフト
数を出力する第1の正規化シフト数検出手段と、前記加
減算器から出力される複数の演算結果を前記第3のデー
タ群の仮数部として、また前記指数大小判定手段が大で
あると判定した前記第1あるいは前記第2の指数補正手
段出力の値を前記第3のデータ群の指数部として、さら
に前記正規化シフト数検出手段の出力の値を前記第3の
データ群の指数補正部として前記メモリに格納する第1
の書き込み手段とを備えたものである。
作用 本発明は上記のような構成により次のような作用を有
する。すなわち、メモリが第1および第2のデータ群の
仮数部と指数部の他に、そのデータ群の仮数部を正規化
するのに必要なシフト数を表す指数補正部を記憶し、第
1のデータ群と第2のデータ群の間で加減算を行う際
に、第1および第2の指数補正手段がメモリに記憶され
た第1および第2のデータ群の指数部と指数補正部の値
から、第1および第2のそれぞれのデータ群を正規化し
た場合の指数を計算し、指数大小判定手段がこれらの指
数の大小を判定することにより、第1および第2のシフ
ト手段において、第1および第2のデータ群のうち正規
化した場合に指数が大きいほうに合わせて、第1および
第2のデータ群の仮数部に対して正規化のためのシフト
と桁合わせのためのシフトを一度のシフト動作で行った
うえで加減算器において演算することができ、また、複
数の加減算器出力を第3のデータ群の仮数部としてメモ
リに格納する際に、第1の正規化シフト検出手段におい
て複数の加減算器出力を正規化するのに必要なシフト数
を表す第3のデータ群の指数補正部を求めることができ
るので、必ずしも正規化されていない仮数部を持ったデ
ータ群に対して、必要最小限のメモリからの読出し動作
とシフト動作を行うだけで、ブロック浮動小数点演算を
行うことができる。
実施例 まず、本発明の演算処理装置の原則を説明する。この
場合のデータの表現方法として、仮数部と指数部のほか
に指数補正部を持つことが特徴である。この指数補正部
は仮数部を正規化するのに必要なシフト数を表すもので
ある。このようなデータの表現方法を用いることによ
り、仮数部は必ずしも正規化されている状態でメモリに
格納する必要はなくなり、正規化が必要になったとき
(例えば乗算を行う場合)に初めて正規化のためのシフ
トを行えばよく、加減算の場合のように桁合わせが必要
なときには桁合わせのためのシフトを行えばよい。この
データ表現方法の例をあげると、固定小数点値D1=0.01
(2の補数表現で左端のビットは符号ビット)は例えば
仮数部d1=0.00001、指数部e1=3、指数補正部n1=−
4(仮数部d1を左に4ビットシフトすると正規化できる
こと示している)で表される。このとき仮数部を正規化
してd1=0.1とした場合の指数は指数補正値e1+n1(=
−1)で表されることになる。
ここで、上記のデータ表現による演算例として、上記
の第1の値D1から仮数部d2=0.0001、指数部e2=1、指
数補正部n2=−3で表される第2の固定小数点値D2=0.
001を減算する場合の手順を説明する。まず、両者の指
数補正値を比較するとe1+n1(=−1)>e2+n2(=−
2)であるので、まず第1の値の仮数部d1をn1だけシフ
トして正規化してd1=0.1とし(指数部は、e1=e1+n1
(=−1)となる)、これに第2の値の桁を合わせて減
算を行えばよい。第2の値については仮数部d2(=0.00
01)を値e1+n1−e2(=−2)だけシフトしてd2=0.01
とすれば、指数部がe2=−1となり桁合わせができる。
次に仮数部同士の減算を行うと、結果の値D3の値の仮数
部はd3=0.01となり、指数部はe3=e1+n1−e2(=−
1)、指数補正部はn3=−1となる。結果の値は指数補
正部n3=−1の値を保持しておけば次の演算のソースデ
ータとしてそのまま使用することができるので、仮数部
は必ずしも正規化されている必要がない。これはブロッ
クデータ同士の演算に関しても同様である。このように
仮数部と指数部のほかに指数補正部を持つデータ表現方
法を用いると、必要最小限のシフト動作で演算を行うこ
とができる。
以下に実施例の詳細を説明する、以下は第2のデータ
の桁合わせのためのシフト数の値e1+n1−e2をe1+n1
(e2+n2)+n2の計算手順で求める例である。
第1図は本発明の一実施例の構成を示すものである。
第1図において、1はメモリであり、複数個の仮数部
と前記複数個の仮数部に対して一つ定められる指数部お
よび指数補正部からなる第1のデータ群D1i、第2のデ
ータ群D2iおよび第3のデータ群D3iを少なくとも記憶す
るものである。2はデータバスであり、データ転送を行
うためのものである。3は加減算器であり、前記第1お
よび前記第2のデータ群D1i,D2iの指数部と指数補正部
を加算して指数補正を行い、また、前記第1および前記
第2のデータ群D1i,D2iの指数補正値の差を計算し、ま
た、前記第1あるいは前記第2のデータ群D1i,D2iの指
数補正部と前記第1および前記第2のデータ群D1i,D2i
の指数補正値の差との加算を行い、さらに前記第1およ
び前記第2のデータ群D1i,D2iの仮数部の加減算を行う
ものである。4は加減算器3の左側入力の値を一時記憶
するレジスタ、5は加減算器3の右側入力の値を一時記
憶するレジスタである。6はレジスタであり、加減算器
3が前記第1のデータ群D1iの指数部と指数補正部を加
算した結果即ち第1のデータ群D1iの指数補正値を一時
記憶して後述の比較器8およびデータバス2に出力する
ものである。7はレジスタであり、加減算器3が前記第
2のデータ群D2iの指数部と指数補正部を加算した結果
即ち第2のデータ群D2iの指数補正値を一時記憶して比
較器8およびデータバス2に出力するものである。この
比較器8は、レジスタ6に一時記憶された第1のデータ
群D1iの指数補正値とレジスタ7に一時記憶された第2
のデータ群D2iの指数補正値とを比較してセレクタ9に
大小判定信号を出力するものである。このセレクタ9は
比較器8からの大小判定信号により、第1のデータ群D
1iの指数補正値と第2のデータ群D2iの指数補正値のう
ち大きい方を選択して第3のデータ群D3iの指数部とし
てデータバス2に出力するものである。10はレジスタで
あり、前記第1のデータ群D1iと前記第2のデータ群D2i
のうち比較器8が指数補正値が大であると判定した方の
データ群の指数補正値を一時記憶してバレルシフタ13に
シフト数として出力するものである。11はレジスタであ
り、加減算器3がレジスタ6の出力とレジスタ7の出と
の差を計算した結果、即ち第1のデータ群D1iおよび第
2のデータ群D2iをそれぞれブロックデータとして正規
化した場合の指数の差を一時記憶してデータバス2に出
力するものである。12はレジスタであり、前記第1のデ
ータ群D1iと前記第2のデータ群D2iのうち比較器8が指
数補正値が大であると判定した方のデータ群の指数補正
部の値とレジスタ11の出力を加減算器3が加算した結果
を一時記憶して、バレルシフタ13にシフト数として出力
するものである。バレルシフタ13は、前記第1あるいは
前記第2のデータ群D1i,D2iの仮数部を入力として、レ
ジスタ10あるいはレジスタ12で指定されるシフト数に従
って、シフト数が負の時は左にシフトしシフト数が正の
時は右にシフトしてレジスタ4あるいはレジスタ5に出
力するものである。14はレジスタであり、加減算器3が
前記第1および前記第2のデータ群D1i,D2iの仮数部の
加減算を行った結果即ち第3のデータ群D3iの仮数部を
一時記憶してデータバス2に出力するものである。15は
正規化シフト数検出部であり、レジスタ14の出力即ち第
3のデータ群D3iの仮数部を一連の入力として、各々の
仮数部の値を正規化するために必要な左シフト数の中で
最小の左シフト数を検出して第3のデータ群D3iの指数
補正部の値としてデータバス2に出力するものである。
次に上記実施例の動作について説明する。上記実施例
において、メモリ1に格納されm個(mは正整数)の仮
数部d1i(i=0…m−1)と、この仮数部d1iに対して
一つ定められた指数部e1と、仮数部d1i(i=0…m−
1)のそれぞれを正規化するため必要な左シフト数の中
で最小の左シフト数だけ仮数部d1iを左シフトにした時
の指数がe1+n1となるように定めた指数補正部n1からな
る第1のデータ群D1i(i=0…m−1)と、m個(m
は正整数)の仮数部d2i(i=0…m−1)と、仮数部d
2iに対して一つ定められる指数部e2と、仮数部d2i(i
=0…m−1)のそれぞれを正規化するために必要な左
シフト数の中で最小の左シフト数だけ仮数部d2iを左シ
フトした時の指数がe2+n2となるように定めた指数補正
部n2からなる第2のデータ群D2i(i=0…m−1)の
加減算をして、結果を第3のデータ群D3i(i=0…m
−1)として格納する場合、即ちD3i=D1i±D2i(i=
0…m−1)の計算を行う場合についての動作を説明す
る。
まず、仮数部d1iと仮数部d2iの加算を行う前に第1お
よび第2のデータ群D1i,D2iの指数部e1、e2が一致する
ように準備する必要がある。メモリ1からデータバス2
を介して第1のデータ群の指数部e1をレジスタ4に格納
し、指数補正部n1をレジスタ5に格納する。加減算器3
はレジスタ4の出力とレジスタ5の出力の加算を行い指
数補正値e1+n1をレジスタ6に出力する。ここで指数補
正値e1+n1は第1のデータ群D1iの仮数部d1iをブロック
データとして正規化した場合の指数を表している。
次に、メモリ1からデータバス2を介して第2のデー
タ群D2iの指数e2をレジスタ4に格納し、指数補正部n2
をレジスタ5に格納する。加減算器3はレジスタ4の出
力とレジスタ5の出力の加算を行い第2のデータ群D2i
の指数補正値e2+n2をレジスタ7に出力する。比較器8
はレジスタ6に一時記憶された第1のデータ群D1iの指
数補正値e1+n1とレジスタ7に一時記憶された第2のデ
ータ群D2iの指数補正値e2+n2の大小判定を行い大小判
定信号をセレクタ9に出力する。セレクタ9は比較器8
からの大小判定信号により、第1のデータ群D1iの指数
補正値と第2のデータ群D2iの補正値のうち大きい方を
選択してデータバス2に出力し、メモリ1はその値を第
3のデータ群D3iの指数部として記憶する。
以下、比較器8において、第1のデータ群D1iの指数
補正値e1+n1の方が第2のデータ群2iの指数補正値e1
n2よりも大であると判断した場合について説明する。
まず、比較器8が指数補正値が大であると判定した第
1のデータ群D1iの指数補正部の値n1をメモリ1から読
出してデータバス2を介してレジスタ10に格納する。次
に、レジスタ6に一時記憶された第1のデータ群D1i
指数補正値e1+n1をデータバス2を介してレジスタ4に
格納し、レジスタ7に一時記憶された第2のデータ群D
2iの指数補正値e2+n2をデータバス2を介してレジスタ
5に格納する。加減算器3は比較器8が大であると判定
した指数補正値から小であると判定した指数補正値を減
算する。即ち、この場合はレジスタ4の出力からレジス
タ5の出力を減算して結果をレジスタ11に格納する。こ
の値は第1のデータ群D1iおよび第2のデータ群D2iをそ
れぞれブロックデータとして正規化した場合の指数の差
を表している。そしてレジスタ11の内容をデータバス2
を介してレジスタ4に一時記憶する。また、指数補正値
が小であると判定された第2のデータ群D2iの指数補正
値n2をメモリ1から読出しデータバス2を介してレジス
タ5に一時記憶する。加減算器3はレジスタ4とレジス
タ5の内容を加算して結果をレジスタ12に出力する。
次に、第1のデータ群D1iと第2のデータ群D2iの仮数
部を正規化し、さらに桁を合わせた上で加減算を行う。
まず、指数補正値が大であると判定された第1のデータ
群D1iの仮数部を正規化するため、メモリ1からデータ
バス2を介して読出した第1のデータ群D1iの仮数部の
値d11(i=0)をレジスタ10に一時記憶されている指
数補正部の値n1だけ、バレルシフタ13においてシフトし
てレジスタ4に出力する。
次に、メモリ1からデータバス2を介して読出した第
2のデータ群D2iの仮数部の値d2i(i=0)レジスタ12
に一時記憶されている値(n2+(e1+n1)−(e2
n2))だけシフトし、レジスタ5に出力する。ただしバ
レルシフタ13はシフト数が負の時は左にシフトし、シフ
ト数が正の時は右にシフトする。加減算器3はレジスタ
4の出力とレジスタ5の出力の加減算を行い結果をレジ
スタ14に格納する。
そしてレジスタ14の出力を第3のデータ群D3iの仮数
部d3i(i=0)としてメモリ1に格納すると同時に正
規化シフト数検出部15に入力する。以下、第1のデータ
群D1iの仮数部の値d1i(i=1…m−1)と第2のデー
タ群D2iの仮数部の値d2i(i=1…m−1)に対して同
様の処理を行い、演算結果を第3のデータ群D3iの仮数
部d3i(i=1…m−1)としてメモリ1に格納すると
同時に正規化シフト数検出部15に供給する。正規化シフ
ト数検出部15は第3のデータ群D3iの仮数部のm個の値d
3i(i=1…m−1)のそれぞれを正規化するのに必要
なシフトビット数のうち最小の左シフトビット数を検出
して、求めたシフト数だけシフトした場合の指数が(e1
+n1+n3)となるように定められる値n3をデータバス2
に出力する。メモリ1はこの値を第3のデータ群D3i
指数補正部の値として記憶する。以上、比較器8が第1
のデータ群の指数補正値e1+n1の方が第2のデータ群の
指数補正値e2+n2よりも大であると判定した場合につい
て説明したが、逆の場合も同様の動作を行うことによっ
て演算することができる。
次に、正規化シフト数検出部15を説明する。
第2図は正規化シフト数検出部15の構成例を示すもの
である。
第2図において、16は絶対値演算回路であり、入力さ
れた仮数部d3i(i=1〜m−1)の絶対値を計算して
論理和回路17あるいはレジスタ18に出力するものであ
る。論理和回路17は、絶対値演算回路16の出力とレジス
タ18の出力の論理和を計算するものである。このレジス
タ18は、論理和演算回路17の出力あるいは絶対値演算回
路16の出力を一時記憶するものである。20は2の補数演
算回路であり、レジスタ18の出力を正規化するのに必要
な左シフト数を検出するプライオリティエンコーダ19の
出力の2の補数を計算するものである。
次に、正規化シフト数検出部15の動作を説明する。
第2図において、絶対値演算回路16は最初に入力され
た仮数部d3i(i=0)の絶対値を計算してレジスタ18
に出力する。次に2番目に入力された仮数部d3i(i=
1)の絶対値を計算して論理和回路17に出力する。論理
和回路17は絶対値演算回路16の出力とレジスタ18の出力
の論理和を計算してレジスタ18に出力する。以下、絶対
値演算回路16は連続して入力される仮数部d3i(i=2
…m−1)の絶対値を計算して論理和回路17に出力し、
論理和回路17は絶対値演算回路16の出力とレジスタ18と
の出力の論理和を計算してレジスタ18に出力することを
繰り返す。次に、プライオリティエンコーダ19はレジス
タ18の出力を正規化するのに必要な左シフトビット数を
検出して2の補数演算回路20に出力する。2の補数演算
回路20はプライオリティエンコーダ19の出力の2の補数
を計算して指数補正部の値n3を出力する。
このように、上記実施例によれば、メモリ1が第1お
よび第2のデータ群D1i,D2iの仮数部と指数部の他に、
そのデータ群の仮数部を正規化するのに必要なシフト数
を表す指数補正部を記憶し、第1のデータ群D1iと第2
のデータ群D2iの間で加減算を行う際に、加減算器3が
メモリ1に記憶された第1および第2のデータ群D1i,D
2iの指数部と指数補正部の値から、第1および第2のそ
れぞれのデータ群D1i,D2iを正規化した場合の指数を計
算し、比較器8がそれらの指数の大小を判定することに
より、バレルシフタ13において、第1および第2のデー
タ群D1i,D2iのうち正規化した場合に指数が大きいほう
に合わせて、第1および第2のデータ群D1i,D2iの仮数
部のそれぞれに対して正規化するためのシフトと桁合わ
せのためのシフトを一度のシフト動作で行ったうえで加
減算器3において演算することができ、また、複数の加
減算器出力を第3のデータ群D3iの仮数部としてメモリ
1に格納する際に、正規化シフト数検出部15において複
数の加減算器出力を正規化するのに必要なシフト数を表
す第3のデータ群D3iの指数補正部を求めることができ
るので、必ずしも正規化されていない仮数部を持ってデ
ータ群に対して、必要最小限のメモリ1からの読出し動
作とシフト動作を行うだけで、ブロック浮動小数点演算
を行うことができるものとなる。
さらに、第3図は第2の実施例を示すものである。
第3図においては、第1図に示した実施例の演算処理
装置に加えてレジスタ21と正規化シフト数検出部22が加
えられている。正規化シフト数検出部22は第2図に示し
た実施例と同じ構成で実現できる。
次に、第3図に示す第2の実施例の動作を説明する。
第3図において、レジスタ21は演算処理装置の外部か
ら入力する入力データを一時記憶してメモリ1および正
規化シフト数検出部22に出力する。この正規化シフト数
検出部22はレジスタ21の一連の出力を入力としてそれぞ
れの入力データを正規化するのに必要なシフトビット数
のうち最小の左シフトビット数を検出して、入力データ
を求めたシフト数だけシフトした場合の値をメモリ1に
出力する。メモリ1はレジスタ21の一連の出力を指数部
が零であるデータ群の仮数部として記憶し、正規化シフ
ト数検出部22の出力をそのデータ群の指数補正部として
記憶する。上記により格納したデータ群に対して第1の
実施例で示した手順と全く同様の手順でブロック浮動小
数点演算を行うことができる。
この第2の実施例ではメモリ1がレジスタ21の一連の
出力を、指数部が零であるデータ群の仮数部として記憶
し、正規化シフト数検出部22の出力をそのデータ群の指
数補正部として記憶することにより、新たに演算処理装
置外部から入力するデータ群に対して第1の実施例で示
したブロック浮動小数点演算をオーバーフロー無しに行
うことができる。
発明の効果 本発明は上記実施例より明らかなように、メモリが第
1および第2のデータ群の仮数部と指数部の他に、その
データ群の仮数部を正規化するのに必要なシフト数を表
す指数補正部を記憶し、第1のデータ群と第2のデータ
群の間で加減算を行う際に、加減算器がメモリに記憶さ
れた第1および第2のデータ群の指数部と指数補正部の
値から、第1および第2のそれぞれのデータ群を正規化
した場合の指数を計算し、大小判定手段がそれらの指数
の大小を判定することにより、バレルシフタにおいて、
第1および第2のデータ群のうち正規化した場合に指数
が大きいほうに合わせて、第1および第2のデータ群の
仮数部のそれぞれに対して正規化のためのシフトと桁合
わせのためのシフトを一度のシフト動作で行ったうえで
加減算器において演算することができ、また複数の加減
算器出力を第3のデータ群の仮数部としてメモリに格納
する際に、正規化シフト数検出において複数の加減算器
出力を正規化するのに必要なシフト数を表す第3のデー
タ群の指数補正部を求めることができるので、必ずしも
正規化されていない仮数部を持ったデータ群に対して、
必要最小限のメモリからの読出し動作とシフト動作を行
うだけで、ブロック浮動小数点演算を行うことができる
という利点を有する。
【図面の簡単な説明】
第1図は本発明の演算処理装置の一実施例における構成
を示すブロック図、第2図は第1図に示した正規化シフ
ト数検出部の構成例を示すブロック図、第3図は本発明
の演算処理装置の第2の実施例の構成を示すブロック
図、第4図は従来の演算処理装置の構成例を示すブロッ
ク図である。 1……メモリ、2……データバス、3……加減算器、
4、5、6、7……レジスタ、8……比較器、9……セ
レクタ、10、11、12……レジスタ、13……バレルシフ
タ、14……レジスタ、15……正規化シフト数検出部、16
……絶対値演算回路、17……論理和回路、18……レジス
タ、19……プライオリティエンコーダ、20……2の補数
演算回路、21……レジスタ、22……正規化シフト数検出
部。

Claims (2)

    (57)【特許請求の範囲】
  1. 【請求項1】複数個の仮数部とこの複数個の仮数部に対
    して定められた一つの指数部および指数補正部からなる
    第1のデータ群、第2のデータ群および第3のデータ群
    を少なくとも記憶するメモリと、 前記第1のデータ群の指数部と指数補正部の加算を行い
    指数補正を行う第1の指数補正手段と、 前記第2のデータ群の指数部と指数補正部の加算を行い
    指数補正を行う第2の指数補正手段と、 前記第1の指数補正手段出力と前記第2の指数補正手段
    出力の大小判定を行い、大であると判定した前記第1あ
    るいは第2の指数補正手段出力を第1の書き込み手段に
    出力する指数大小判断手段と、 前記指数大小判断手段が補正後の指数が大であると判定
    した前記第1もしくは前記第2のデータ群の仮数部の内
    容をそれと対応する指数補正部の絶対値分だけ左にシフ
    トする第1のシフト手段と、 前記指数大小判定手段が補正後の指数が小であると判定
    した前記第1もしくは前記第2のデータ群の仮数部の内
    容を、前記指数大小判定手段が補正後の指数が大である
    と判定した前記第1もしくは第2のデータ群の指数部と
    指数補正部を加算した値から、前記指数大小判定手段が
    補正後の指数が小であると判定した前記第1もしくは第
    2のデータ群の指数部を減算することにより求められる
    値に対応して、その値が正の場合はその絶対値だけ右に
    シフトし、その値が負の場合はその絶対値だけ左にシフ
    トする第2のシフト手段と、 前記第1のシフト手段出力と前記第2のシフト手段出力
    の加減算を行う加減算器と、 前記加減算器から出力される複数の演算結果に対して、
    各々の前記加減算器出力を正規化するために必要な左シ
    フト数の中で最小の左シフト数を出力する第1の正規化
    シフト数検出手段と、 前記加減算器から出力される複数の演算結果を前記第3
    のデータ群の仮数部として、また前記指数大小判定手段
    が大であると判定した前記第1あるいは前記第2の指数
    補正手段出力の値を前記第3のデータ群の指数部とし
    て、前記正規化シフト数検出手段の出力の値を前記第3
    のデータ群の指数補正部として前記メモリに格納する第
    1の書き込み手段とを備えることを特徴とする演算処理
    装置。
  2. 【請求項2】外部からのデータを入力して前記メモリに
    出力するレジスタと、 前記レジスタ出力に接続され、前記レジスタから出力さ
    れる複数のデータに対して、各々のデータを正規化する
    ために必要な左シフト数の中で最小の左シフト数を出力
    する第2の正規化シフト数検出手段と、 前記レジスタから出力される複数のデータと前記第2の
    正規化シフト数検出手段出力を前記メモリに格納する第
    2の書き込み手段とを備えることを特徴とする請求項1
    記載の演算処理装置。
JP2317295A 1990-11-20 1990-11-20 演算処理装置 Expired - Fee Related JP2512230B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2317295A JP2512230B2 (ja) 1990-11-20 1990-11-20 演算処理装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2317295A JP2512230B2 (ja) 1990-11-20 1990-11-20 演算処理装置

Publications (2)

Publication Number Publication Date
JPH04184624A JPH04184624A (ja) 1992-07-01
JP2512230B2 true JP2512230B2 (ja) 1996-07-03

Family

ID=18086637

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2317295A Expired - Fee Related JP2512230B2 (ja) 1990-11-20 1990-11-20 演算処理装置

Country Status (1)

Country Link
JP (1) JP2512230B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7478363B2 (en) 2001-09-18 2009-01-13 Asahi Kasei Kabushiki Kaisha Method for translating a given source program into an object program containing computing expressions

Also Published As

Publication number Publication date
JPH04184624A (ja) 1992-07-01

Similar Documents

Publication Publication Date Title
EP0820005B1 (en) Method and apparatus for computing floating point data
EP0483864B1 (en) Hardware arrangement for floating-point addition and subtraction
US5553015A (en) Efficient floating point overflow and underflow detection system
US5995991A (en) Floating point architecture with tagged operands
US8185570B2 (en) Three-term input floating-point adder-subtractor
US4994996A (en) Pipelined floating point adder for digital computer
US5010508A (en) Prenormalization for a floating-point adder
JP3178746B2 (ja) 浮動小数点数のためのフォーマット変換装置
US5111421A (en) System for performing addition and subtraction of signed magnitude floating point binary numbers
CN108139912B (zh) 在浮点运算期间计算和保留误差边界的装置和方法
JPH09212337A (ja) 浮動小数点演算処理装置
US5408426A (en) Arithmetic unit capable of performing concurrent operations for high speed operation
USH1222H (en) Apparatus for determining sticky bit value in arithmetic operations
JP2512230B2 (ja) 演算処理装置
JP2558669B2 (ja) 浮動小数点演算装置
JPS63123125A (ja) 浮動小数点数の加算装置
JP2919386B2 (ja) 浮動小数点数検出装置および浮動小数点数検出回路
JP2752698B2 (ja) 浮動小数点加減算回路
JP4428778B2 (ja) 演算装置及び演算方法並びに計算装置
KR100431707B1 (ko) 부동소수점연산에서의지수처리방법
JPH07104777B2 (ja) 浮動小数点加減算装置
US4907185A (en) Program-controlled computer with an interrupt capability for floating-point operation
JPH0540609A (ja) 浮動小数点除算装置
JPH03217938A (ja) 浮動小数点丸め正規化装置
JPH05204606A (ja) 浮動小数点演算方式および装置

Legal Events

Date Code Title Description
LAPS Cancellation because of no payment of annual fees