(57)【特許請求の範囲】
【請求項１】
それぞれが演算内容の異なる演算を実行するとともに、指数の基数が相違する複数の異なる浮動小数点の表現形式の入力データに対して前記複数のデータ形式で共通の演算を行なう複数の演算手段と、
前記演算手段に入力する入力データの浮動小数点表現形式を判定する判定手段と、
前記複数の演算手段に共有して用いられ、前記複数の演算手段による演算結果が入力し、前記判定手段での判定結果に応じて、所定の浮動小数点の表現形式によるデータに対する演算結果に対し、前記複数の演算手段に共通の付加的処理を行なう処理手段とを有する演算装置。
【請求項２】
前記演算手段の出力と前記処理手段の出力とを選択的に出力する選択手段を更に備える請求項１記載の演算装置。
【請求項３】
前記判定手段は、前記複数の演算手段のそれぞれに設けられている請求項1又は２記載の演算装置。
【請求項４】
前記処理手段は、前記複数の演算手段による演算結果に対するビットシフト或いは丸め演算を行う請求項１乃至３のいずれか一項記載の演算装置。
【請求項５】
指数の基数が相違する複数の異なる浮動小数点の表現形式の入力データに対して演算を行なう演算回路を有する計算装置において、
前記演算回路は、複数の異なる浮動小数点表現形式の入力データに対して共通の演算を行なう、それぞれ演算内容の異なる複数の演算部と、
前記演算回路に入力する入力データの浮動小数点表現形式を判定する判定部と、
前記複数の演算部に共有に用いられ、前記判定部での判定結果に応じて、前記演算部から出力される所定の浮動小数点表現形式のデータに対する演算結果に対し、前記複数の演算部に共通の付加的処理を行なう処理部とを有する計算装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は演算装置及び演算方法並びに計算装置に係り、特に、浮動小数点演算を行う演算装置及び演算方法並びに計算装置に関する。
現在、浮動小数点演算には、ディジット単精度浮動小数点形式、ディジット倍精度浮動小数点形式、ＩＥＥＥ単精度浮動小数点形式など複数の浮動小数点演算形式が存在する。これら複数の浮動小数点演算形式は、指数演算幅、指数の基数、丸め演算の有無等が異なる。
【０００２】
このため、複数の浮動小数点演算を一つの浮動小数点演算回路では対応できなかった。複数の浮動小数点演算形式に対応できる演算装置を実現しようとすると、それぞれの浮動小数点演算形式に対応した演算回路を設ける必要があり、回路規模が大きくなる。よって、複数の浮動小数点形式を回路規模を大きくすることなく演算できるようにすることが望まれている。
【０００３】
【従来の技術】
浮動小数点数は、数値を指数及び仮数で表す数値表現方法である。例えば、数値をｘ、仮数をｍ、指数をｅ、基数をＢとすると、
ｘ＝ｍ×Ｂe                                             ・・・（１）
で表される。浮動小数点数は、科学技術計算、コンピュータグラフィックスの分野の演算で広く使用される。
【０００４】
図１は浮動小数点を２進数での表現を説明するための図を示す。
浮動小数点数値１は、符号部２、指数部３、仮数部４から構成される。
符号部２には、数値１の正又は負を識別するための符号が２進数で格納される。例えば、符号部２が「０」であれば正、符号部２が「１」であれば負を示す。
指数部３には、式（１）の「ｅ」に対応する数値が２進数で格納される。
【０００５】
仮数部４には、式（１）の「ｍ」に対応する数値が２進数で格納される。
この浮動小数点数には、様々な表現形式がある。主なものに、ディジット浮動小数点形式及びＩＥＥＥ（The Institute of  Electrical  and Electronic Engineers）浮動小数点形式がある。
ディジット浮動小数点形式は、数値ｘ16が
ｘ16＝ｍ×１６e                                         ・・・（２）
で表される形式である。
【０００６】
また、ＩＥＥＥ浮動小数点形式は、数値ｘIEEEが
ｘIEEE＝ｍ×２e                                         ・・・（３）
で表される形式である。
次に、ディジット浮動小数点形式、ＩＥＥＥ浮動小数点形式をビット表現した場合について説明する。
【０００７】
まず、ディジット浮動小数点形式をビット表現した場合について説明する。
ディジット浮動小数点形式は、それをビット表現した場合の表現形式としては、例えば、単精度表現形式又は倍精度表現形式、拡張精度表現方式などがある。
図２はディジット浮動小数点形式の数値をビット表現したとき場合を説明するための図である。図２（Ａ）はディジット単精度浮動小数点形式、図２（Ｂ）はディジット倍精度浮動小数点形式を示す。
【０００８】
ディジット単精度浮動小数点形式のビット列５は、図２（Ａ）に示すように１ビットの符号部６、７ビットの指数部７、２４ビットの仮数部８の計３２ビットのビット列で表現される。
ディジット倍精度浮動小数点形式のビット列９は、図２（Ｂ）に示すように１ビットの符号部１０、７ビットの指数部１１、５６ビットの仮数部１２の計６４ビットのビット列で表現される。
【０００９】
なお、ディジット浮動小数点形式では、演算処理により桁合わせ等で表現できなくなった値についてはそれを切り捨てた値が結果となる。
次に、ＩＥＥＥ浮動小数点形式をビット表現した場合について説明する。
ＩＥＥＥ浮動小数点形式は、それをビット表現した場合の表現形式としては、例えば、単精度表現形式、倍精度表現形式、拡張精度表現方式などがある。
【００１０】
図３はＩＥＥＥ浮動小数点形式の数値をビット表現したとき場合を説明するための図である。図３（Ａ）はＩＥＥＥ単精度浮動小数点形式、図３（Ｂ）はＩＥＥＥ倍精度浮動小数点形式を示す。
ＩＥＥＥ単精度浮動小数点形式のビット列１３は、図３（Ａ）に示すように１ビットの符号部１４、８ビットの指数部７、２３ビットの仮数部１５の計３２ビットのビット列で表現される。
【００１１】
ＩＥＥＥ倍精度浮動小数点形式のビット列１７は、図３（Ｂ）に示すように１ビットの符号部１８、１１ビットの指数部１９、５２ビットの仮数部２０の計６４ビットのビット列で表現される。
なお、ＩＥＥＥ浮動小数点形式では、演算処理により桁合わせ等で表現できなくなった値については切り捨てるのではなく、指定されたモードで丸め処理を行ったものを結果とする。このため、ＩＥＥＥ浮動小数点形式の方がディジット浮動小数点形式に比べて演算誤差が少なくなる。このように、ＩＥＥＥ浮動小数点形式を処理する演算装置では、ディジット浮動小数点形式では必要のないビット単位シフタ、丸め演算回路等が必要となる。
【００１２】
一方、従来のディジット浮動小数点形式のみを扱う計算機においては、指数演算部の演算幅は、７ビットでよい。また、演算後の丸め処理も必要なかった。しかし、ディジット浮動小数点形式は、演算誤差が多い。さらに、近年ＪＡＶＡなどのプログラムにおいてはＩＥＥＥ浮動小数点形式が標準となっている。このため、ディジット浮動小数点形式の他に、精度の高いＩＥＥＥ浮動小数点形式を扱える計算機が望まれている。
【００１３】
そこで、従来のディジット浮動小数点形式を扱う浮動小数点演算装置に、指数演算部の演算幅を拡張するとともに、仮数桁合わせビットシフタ及び丸め回路を追加し、ＩＥＥＥ浮動小数点形式の処理を可能とした演算装置が開発されている。
ここで、まず、従来の浮動小数点加減算装置について説明する。
【００１４】
図４は、従来の浮動小数点加減算装置の一例のブロック図を示す。
浮動小数点加減算装置２１は、ディジット浮動小数点形式の加減算及びＩＥＥＥ浮動小数点形式の数値の加減算を行うものである。
浮動小数点加減算装置２１は、入力部２２、２３、指数比較部２４、指数差検出部２５、桁合部２６、加算部２７、正規化数カウント部２８、正規化部２９、指数補正部３０、選択部３１〜３４、出力部３５、桁溢れビット保持部３６、丸め演算部３７、制御部３８から構成される。
【００１５】
入力部２２、２３には、浮動小数点形式の数値が供給される。入力部２２、２３は、ディジット浮動小数点形式とＩＥＥＥ浮動小数点形式とで指数ビット桁数と仮数ビット桁数とが切り換えられる。
入力部２２、２３から入力された数値のうち指数ビットは、指数比較部２４、指数差検出部２５、選択部３１に供給される。また、仮数ビットは、選択部３２、３３に供給される。
【００１６】
指数比較部２４は、入力部２２からの指数ビットと入力部２３からの指数ビットとを比較し、選択部３１、３２、３３を制御する。選択部３１は、大きい方の指数ビットを選択し、指数補正部３０に供給する。
選択部３２は、指数ビットの小さい方の数値の仮数ビットを選択し、桁合部２６に供給する。選択部３３は、指数ビットの大きい方の数値の仮数ビットを選択し、加算部２７に供給する。
【００１７】
指数差検出部２５は、入力部２２からの指数ビットと入力部２３からの指数ビットとの指数差を検出し、桁合部２６に供給する。桁合部２６は、選択部３２から供給された仮数ビットを指数差検出部２５から供給された指数差に応じてシフトし、桁合わせを行う。桁合部２６で桁合わせされた仮数ビットは、加算部２７に供給される。なお、桁合部２６は、ＩＥＥＥ浮動小数点形式で加減算を行うときには、桁溢れビット保持部３６に桁溢れビットを保持する。
【００１８】
加算部２７は、桁合部２６からの仮数ビットと選択部３３からの仮数ビットとを加算する。加算部２７で加算された仮数ビットは、正規化部２９及び選択部３４に供給される。また、加算部２７は、正規化カウント部２８に正規化の必要な数を設定する。
正規化カウント部２８は、加算部２７から設定された数に応じて正規化部２９を制御する。正規化部２９は、加算部２７から加算結果が供給され、正規化カウント部２８に設定された数だけ加算結果を正規化をする。なお、正規化部２９は、ＩＥＥＥ浮動小数点形式の演算を行うときには、ビット単位で桁合わせシフトを行う。
【００１９】
正規化部２９で正規化された仮数ビットは、選択部３４に供給される。選択部３４は、正規化カウント部２８により正規化部２９からの仮数ビット又は加算部２９からの仮数ビットのいずれかを選択し、出力部３５に供給する。選択部３４は、正規化カウント部２８で正規化が必要ないと判断された場合には、加算部２７からの仮数ビットを選択出力し、正規化カウント部２８で正規化が必要であると判断された場合には、正規化部２９で正規化された仮数ビットを選択出力する。
【００２０】
また、正規化カウント部２８は、加算部２７から設定された数に応じた補正値を指数補正部３０に供給する。指数補正部３０は、選択部３１からの指数ビットを正規化カウント部２８からの補正値に応じて補正する。丸め演算部３７は、ディジット浮動小数点形式の数値の加減算を行うときには、選択部３４からの仮数ビットをそのまま出力部３５に供給する。丸め演算部３７は、ＩＥＥＥ浮動小数点形式の数値の加減算を行うときには、桁溢れビット保持部３６に保持された桁溢れビットに応じて丸め演算を行い、丸め演算結果を出力部３５に供給する。
【００２１】
出力部３５は、指数補正部３０からの指数ビットと選択部３４からの仮数ビットとを合成して演算結果として出力する。
制御部３８は、ディジット浮動小数点形式とＩＥＥＥ浮動小数点形式とで指数ビットと仮数ビットとの桁数及び桁溢れビット保持部３６での桁溢れビット保持動作並びに丸め演算部３７での演算を制御する。
【００２２】
次に、浮動小数点乗算装置について説明する。
図５は従来の浮動小数点乗算装置の一例のブロック図を示す。
浮動小数点乗算装置３９は、入力部４０、４１、指数演算部４２、仮数乗算部４３、正規化カウント部４４、正規化部４５、指数補正部４６、丸め演算部４７、出力部４８、制御部４９から構成される。
【００２３】
入力部４０、４１は、図４の入力部２２、２３と同様に入力された浮動小数点の数値を指数と仮数に分割する。入力部４０、４１で分割された指数は、指数演算部４２に供給される。
指数演算部４２は、入力部４０、４１からの指数を加算する。指数演算部４２で加算された指数は、指数補正部４６に供給される。
【００２４】
また、入力部４０、４１で分割された仮数は、仮数乗算部４３に供給される。仮数乗算部４３は、入力部４０、４１から供給された仮数を乗算する。仮数乗算部４３での乗算結果は、正規化部４５に供給される。また、仮数乗算部４３は、乗算結果、必要な正規化の回数を正規化カウント部４４に供給する。
正規化カウント部４４は、仮数乗算部４３から供給された正規化回数に応じて正規化部４５の正規化数を制御するとともに、指数補正部４６に指数補正値を供給する。
【００２５】
正規化部４５は、仮数乗算部４３からの乗算結果を正規化カウント部４４からの正規化回数分だけ正規化して、その結果を丸め演算部４７に供給する。また、正規化部４５は、正規化が不要なときには、仮数乗算部４３からの乗算結果をそのまま出力する。なお、正規化部４５は、ＩＥＥＥ浮動小数点で演算を行うときには、ビット単位で桁合せシフトを行う。
【００２６】
丸め演算部４７は、正規化部４５からの正規化結果を丸め演算する。丸め演算部４７は、制御部４９によってＩＥＥＥ浮動小数点演算時に丸め演算を行い、ディジット浮動小数点演算時には正規部４５の出力をそのまま出力する。丸め演算部４７の出力は、出力部４８に供給される。
出力部４８には、指数補正部４６から指数が供給され、丸め演算部４７から仮数が供給される。出力部４８は、指数補正部４６からの指数と丸め演算部４７からの仮数を合成して出力する。
【００２７】
次に、従来の浮動小数点除算装置について説明する。
図６は従来の浮動小数点除算装置の一例のブロック構成図を示す。
浮動小数点除算装置５０は、入力部５１、５２、指数演算部５３、仮数除算部５４、正規化カウント部５５、正規化部５６、指数補正部５７、丸め演算部５８、出力部５９、制御部６０から構成される。
【００２８】
入力部５１、５２は、図４に示す入力部２２、２３、図５に示す入力部４０、４１と同様に、浮動小数点を指数と仮数とに分割する。指数演算部５３には、入力部５１、５２から指数が供給される。指数演算部５３は、指数の減算を行う。指数演算部５３での演算結果は、指数補正部５７に供給される。
仮数除算部５４には、入力部４０、４１から仮数が供給される。仮数除算部５４は、入力部４０からの仮数を入力部４０からの仮数で除算する。仮数除算部５４の除算結果は、正規化部５６に供給される。また、仮数除算部５４は、除算結果に応じて必要な正規化の回数を正規化カウント部５５に供給する。
【００２９】
正規化カウント部５５は、図５の正規化カウント部４４と同様に仮数除算部５４から供給された正規化回数に応じて正規化部５６の正規化数を制御するとともに、指数補正部５７に指数補正値を供給する。
また、指数補正部５７は、図５の指数補正部４６と同様に、指数演算部５３からの指数を正規化カウント部５５からの指数補正値により補正する。指数補正部５７で補正された指数は、出力部５９に供給される。
【００３０】
丸め演算部５８は、図５の丸め演算部４７と同様に、正規化部５５からの正規化結果を丸め演算する。丸め演算部５８は、制御部６０によってＩＥＥＥ浮動小数点演算時に丸め演算を行い、ディジット浮動小数点演算時には正規部５８の出力をそのまま出力する。丸め演算部５８の出力は、出力部５９に供給される。
出力部５９には、指数補正部５７から指数が供給され、丸め演算部５８から仮数が供給される。出力部５９は、図５の出力部４７と同様に、指数補正部５７からの指数と丸め演算部５８からの仮数を合成して出力する。
【００３１】
【発明が解決しようとする課題】
しかるに、従来のディジット形式とＩＥＥＥ形式とでは、指数演算幅、指数の基数が相違する。この相違によりディジット形式の演算装置でＩＥＥＥ形式の演算を行う場合には、演算前後のビット単位の桁合わせシフト、演算後の丸め演算が必要となる。
【００３２】
従来、ディジット形式の演算装置でＩＥＥＥ形式の演算を行えるようにするために加減算、乗算、除算の各演算装置にそれぞれにビット単位の桁合わせシフタ、丸め演算回路を設けていた。このため、ゲート数が多くなるなどの問題点があった。
本発明は上記の点に鑑みてなされたもので、簡単な構成で複数のデータ形式のデータの演算が行える演算装置及び計算装置を提供することを目的とする。
【００３３】
【課題を解決するための手段】
本発明の演算装置は、それぞれが演算内容の異なる演算を実行するとともに、指数の基数が相違する複数の異なる浮動小数点の表現形式の入力データに対して複数の浮動小数点表現形式で共通の演算を行なう複数の演算手段と、演算手段に入力する入力データの浮動小数点表現形式を判定する判定手段と、複数の演算手段に共有して用いられ、複数の演算手段による演算結果が入力し、判定手段での判定結果に応じて、所定の浮動小数点表現形式のデータに対する演算結果に対し、複数の演算手段に共通の付加的処理を行なう処理手段とを有するものである。
【００３４】
また、本発明は、演算手段の出力と処理手段の出力とを選択的に出力する選択手段を更に備えるものである。さらに、本発明の判定手段は、複数の演算手段のそれぞれに設けられるものである。
【００３５】
また、本発明の処理手段は、複数の演算手段による演算結果に対するビットシフト或いは丸め演算を行うものである。
【００３６】
さらに、本発明は、指数の基数が相違する複数の異なる浮動小数点の表現形式の入力データに対して演算を行なう演算回路を有する計算装置において、前記演算回路は、複数の異なる浮動小数点表現形式の入力データに対して共通の演算を行なう、それぞれ演算内容の異なる複数の演算部と、前記演算回路に入力する入力データの浮動小数点表現形式を判定する判定部と、前記複数の演算部に共有に用いられ、前記判定部での判定結果に応じて、前記演算部から出力される所定の浮動小数点表現形式のデータに対する演算結果に対し、前記複数の演算部に共通の付加的処理を行なう処理部とを有するものである。
【００３７】
本発明によれば、複数の演算手段それぞれで共通の付加的処理を行う必要がないので、回路構成を簡略化できる。
また、複数の演算手段では、予め決められた処理を実行すればよいので、複数の演算手段で付加的処理による遅延が生じることがなく、処理を効率よく行える。
【００３８】
【発明の実施の形態】
図７は本発明の計算装置の一実施例の概略ブロック構成図を示す。
本実施例の計算装置１００は、命令制御ユニット１０１、演算ユニット１０２、記憶制御ユニット１０３から構成される。命令制御ユニット１０１は、外部から供給される命令に応じて演算ユニット１０２、記憶制御ユニット１０３を制御する。
【００３９】
演算ユニット１０２は、浮動小数点演算ユニット１０４を含む構成とされている。浮動小数点演算ユニット１０４は、後述するような構成とされており、複数の浮動小数点形式のデータの演算が可能とされている。記憶制御ユニット１０４は、入力データ、演算結果を外部に接続されたメモリに記憶する。
次に、本実施例の浮動小数点演算ユニットについて詳細に説明する。
【００４０】
図８に本発明の計算装置の一実施例の浮動小数点演算ユニットのブロック構成図を示す。
浮動小数点演算ユニット１０４は、入力レジスタ１０５、１０６、加減算部１０７、乗算部１０８、除算部１０９、ＩＥＥＥ後処理部１１０、結果選択部１１１、結果レジスタ１１２から構成される。
【００４１】
入力レジスタ１０５、１０６には、浮動小数点形式の数値が供給され、供給された数値を一時的に保持する。入力レジスタ１０５、１０６に保持された数値は、加減算部１０７、乗算部１０８、除算部１０９に供給される。
加減算部１０７は、後述するように入力レジスタ１０５、１０６から供給された数値を加減算する。乗算部１０８は、後述するように入力レジスタ１０５、１０６から供給された数値を乗算する。除算部１０９は、後述するように入力レジスタ１０５、１０６から供給された数値を除算する。
【００４２】
ＩＥＥＥ後処理部１１０は、加減算部１０７、乗算部１０８、除算部１０９で共通して設けられており、ＩＥＥＥ浮動小数点形式の数値を演算するときに必要な正規化ビットシフト及び丸め演算を加減算、乗算、除算で共通して行う。
次に、本実施例の加減算部１０７について詳細に説明する。
図９は本発明の計算装置の一実施例の加減算部のブロック構成図を示す。同図中、図４と同一構成部分には同一符号を付し、その説明は省略する。
【００４３】
本実施例の加減算部１０７は、図４の加減算装置２１で丸め演算部３７をなくし、形式判定部１１３、形式補正部１１４、ＩＥＥＥ制御部１１５を設けてなる。
形式判定部１１３には、命令制御ユニット１０１から命令制御信号が供給される。形式判定部１１３は、命令制御ユニット１０１から供給される命令制御信号に応じて演算する浮動小数点の形式がディジット形式か、ＩＥＥＥ形式かを判定する。形式判定部１１３の判定結果は、形式補正部１１４及びＩＥＥＥ制御部１１５に供給される。
【００４４】
形式補正部１１４は、形式判定部１１３からの判定結果がディジット形式であると判定された場合には、ディジット形式の指数部の７ビットが指数差検出部２５に供給されるようにビット長を補正する。また、形式補正部１１４は、形式判定部１１３からの判定結果がＩＥＥＥ単精度形式であると判定された場合には、ＩＥＥＥ単精度形式の指数部の９ビットが指数差検出部２５に供給されるようにビット長を補正し、ＩＥＥＥ倍精度形式であると判定された場合には、ＩＥＥＥ倍精度形式の指数部の１２ビットが指数差検出部２５に供給されるようにビット長を補正する。
【００４５】
ＩＥＥＥ制御部１１５は、形式判定部１１３からの判定結果に応じた情報をＩＥＥＥ後処理部１１０に出力する。ＩＥＥＥ後処理部１１０は、ＩＥＥＥ制御部１１５からの情報がＩＥＥＥ形式のときには動作し、ディジット形式のときには動作が停止するように制御される。
また、図４では正規化部２９の出力は、選択部３４にのみ供給されていたが、本実施例では正規化部２９の出力をＩＥＥＥ後処理部１１０に直接供給可能にしている。さらに、図４では指数補正部３０の出力は、出力部３５にのみ供給されていたが、本実施例では指数補正部３０をＩＥＥＥ後処理部１１０に直接供給可能にしている。また、本実施例では桁溢れビット保持部３６に保持された桁溢れビットはＩＥＥＥ後処理部１１０に直接供給される。
【００４６】
次に、乗算部１０８について詳細に説明する。
図１０は本発明の計算装置の一実施例の乗算部のブロック構成図を示す。同図中、図５、図９と同一構成部分には同一符号を付し、その説明は省略する。
本実施例の乗算部１０８は、図５に示す乗算部３９の丸め演算部４７を削除し、図９に示す形式判定部１１３、形式補正部１１４、ＩＥＥＥ制御部１１５を設た構成とされている。また、乗算部１０８は、指数補正部４６、正規化部４５の出力を直接ＩＥＥＥ後処理部１１０に供給可能とされている。
【００４７】
次に、除算部１０９について詳細に説明する。
図１１は本発明の計算装置の一実施例の除算部のブロック構成図を示す。同図中、図６、図９と同一構成部分には同一符号を付し、その説明は省略する。
本実施例の除算部１０９は、図６に示す除算部５０の丸め演算部５８を削除し、図９に示す形式判定部１１３、形式補正部１１４、ＩＥＥＥ制御部１１５が設けられている。また、除算部１０９は、指数補正部５７、正規化部５６の出力が直接ＩＥＥＥ後処理部１１０に供給可能となっている。
【００４８】
次に、ＩＥＥＥ後処理部１１０について詳細に説明する。
図１２は本発明の計算装置の一実施例のＩＥＥＥ後処理部のブロック構成図を示す。
ＩＥＥＥ後処理部１１０は、制御部１１６、選択部１１７、１１８、ビットシフト数カウント回路１１９、ビットシフタ１２０、指数補正部１２１、１２２、丸め演算部１２３、出力部１２４から構成される。
【００４９】
制御部１１６には、加減算部１０７、乗算部１０８、除算部１０９のＩＥＥＥ制御部１１５から演算形式を示す制御情報が供給される。制御部１１６は、制御情報に応じて選択部１１７、１１８及び出力部１２４を制御する。
選択部１１７には、加減算部１０７、乗算部１０８、除算部１０９の指数補正部３０、４６、５７から指数が供給される。選択部１１７は、制御部１１６からの制御信号に応じて指数補正部３０、４６、５７からの指数を択一的に出力する。選択部１１７から出力された指数は、指数補正部１２１に供給される。
【００５０】
選択部１１８には、加減算部１０７、乗算部１０８、除算部１０９の正規化部２９、４５、５６から仮数が供給される。選択部１１８は、制御部１１６からの制御信号に応じて正規化部２９、４５、５６からの仮数を択一的に出力する。選択部１１８から出力された仮数は、ビットシフト数カウント回路１１９、ビットシフタ１２０に供給される。
【００５１】
ビットシフト数カウント回路１１９は、選択部１１８からの仮数に対して行われるビットシフトの残りのビットシフト数をカウントする。また、ビットシフタ１２０は、供給された仮数に対してビットシフトを行う。
図１３に本発明の計算機の一実施例のビットシフトの動作を説明するための図を示す。図１３（Ａ）は各形式の符号部、指数部、仮数部のビット位置を示す図、図１３（Ｂ）はビットシフトの動作を説明するための図を示す。
【００５２】
図１３（Ａ）に示すようにＩＥＥＥ単精度形式では０ビットが符号、１〜８ビットが指数、９〜１３ビットが仮数となる。
このとき、図１３（Ｂ）に示すようにＩＥＥＥ単精度形式の場合は、９ビット目の「８ビット」が最上位有効ビットとなるように左シフトが行われ、ＩＥＥＥ倍精度形式の場合は、１２ビット目の「１１ビット」が最上位有効ビットとなるように右シフトが行われる。ビットシフタ１２０の出力は、丸め演算部１２３に供給される。
【００５３】
丸め演算部１２３は、ビットシフタ１２０から供給された仮数に丸め演算を行う。丸め演算は、ビットシフトなどにより溢れた桁を所定のビットに丸め込む演算処理である。丸め演算部１２３には、命令制御ユニット１０１から制御信号が供給される。丸め演算部１２３は、制御信号に応じて動作がオン・オフされる。丸め演算部１２３の出力仮数は、出力部１２４に供給される。
【００５４】
また、指数補正部１２１には、ビットシフト数カウント回路１１９のカウント値が供給される。指数補正部１２１は、ビットシフト数カウント回路１１９からのカウント値を選択部１１７で選択された指数にシフト方向に応じて加算又は減算し、指数の補正を行う。
指数補正部１２１で補正された指数は、指数補正部１２２に供給される。指数補正部１２２は、丸め演算部１２３に接続され、丸め演算部１２３から指数補正値が供給される。丸め演算部１２３は、丸め演算時に桁溢れが生じた場合に桁溢れに応じた補正値を指数補正部１２２に供給する。指数補正部１２２は、丸め演算部１２３から供給された補正値を指数補正部１２１からの指数に加減算することにより指数補正部１２１からの指数を補正する。指数補正部１２２の出力指数は、出力部１２４に供給される。
【００５５】
出力部１２４には、指数補正部１２２から指数が供給されるとともに、丸め演算部１２３から仮数が供給される。出力部１２４は、指数補正部１２２からの指数と丸め演算部１２３からの仮数とを合成して出力する。出力部１２４には、制御部１１６から制御信号が供給される。出力部１２４は、制御部１１６からの制御信号がディジット形式を示す信号のときには出力を停止する。出力部１２４の出力がＩＥＥＥ後処理部１１０の出力となる。ＩＥＥＥ後処理部１１０の出力は、選択部１１１に供給される。
【００５６】
選択部１１１には、加減算部１０７の出力部３５の出力、乗算部１０８の出力部４８の出力、除算部１０９の出力部５９の出力、ＩＥＥＥ後処理部１１０の出力部１２４の出力が供給され、命令制御ユニット１０１から供給される制御信号に応じて何れかの出力を択一的に出力する。
選択部１１１は、ディジット形式の加減算のときには、加減算部１０７からのデータを出力し、ディジット形式の乗算のときには、乗算部１０８からのデータを出力し、ディジット形式の除算のときには、除算部１０８からのデータを出力する。また、選択部１１１は、ＩＥＥＥ形式の演算のときににはＩＥＥＥ後処理部１１０からのデータを出力する。
【００５７】
選択部１１１から出力されたデータは、結果レジスタ１１２に供給される。結果レジスタ１１２は、選択部１１１からのデータを保持する。
本実施例によれば、ＩＥＥＥ形式の演算のビットシフト及び丸め演算は、ＩＥＥＥ後処理部１１０でまとめて行われるので、加減算部１０７、乗算部１０８、除算部１０９には、ビットシフタ及び丸め演算部が不要となる。よって、演算装置の構成を簡略化できる。
【００５８】
また、加減算部１０７、乗算部１０８、除算部１０９は、加減算、乗算、除算のみを行えばよいので、演算時にビットシフト、丸め演算処理により遅延が発生することがなく、効率よく演算を行うことができる。
次に、演算の具体例について図面とともに説明する。
図１４は本発明の計算機の一実施例のＩＥＥＥ単精度形式の加減算の計算経過を示す図を示す。図１４において左欄２０１は加算時の計算経過、右欄２０２は減算時の計算経過を示す。図１５は本発明の計算機の一実施例のＩＥＥＥ倍精度形式の加算の計算経過を示す図を示す。図１６は本発明の計算機の一実施例のＩＥＥＥ倍精度形式の減算の計算経過を示す図を示す。
【００５９】
図１４、図１５、図１６において、第１行Ｌ１は、入力部２２、２３への入力データを示す。第２行Ｌ２は、指数補正部１１４の出力を示す。第３行Ｌ３は、指数差検出部２５の出力を示す。第４行Ｌ４は、桁合部２６の出力を示す。第５行Ｌ５は、桁溢れビット保持部３６の保持データを示す。第６行Ｌ６は、仮数加減算部２７の入出力を示す。第７行Ｌ７は、正規化数カウント部２８の出力を示す。第８行Ｌ８は、正規化部２９の出力を示す。第９行Ｌ９は、指数補正部３０の出力を示す。第１０行Ｌ１０は、指数補正部３０からＩＥＥＥ後処理部１１０に供給される指数データ及び正規化部２９からＩＥＥＥ後処理部１１０に供給される仮数データを示す。
【００６０】
第１１行Ｌ１１は、ビットシフト数カウント部１１９の出力を示す。第１２行Ｌ１２は、ビットシフタ１２０の出力を示す。第１３行Ｌ１３は、指数補正部１２２の出力を示す。第１４行Ｌ１４は、丸め演算部１２３の出力を示す。第１５行Ｌ１５は、出力部１２４の出力を示す。
図１７は本発明の計算機の一実施例のＩＥＥＥ単精度形式の乗算の計算経過を示す図、図１８は本発明の計算機の一実施例のＩＥＥＥ倍精度形式の乗算の計算経過を示す図を示す。
【００６１】
図１７、図１８において、第１行Ｌ１は、入力部４０、４１への入力データを示す。第２行Ｌ２は、指数補正部１１４の出力を示す。第３行Ｌ３は、指数差検出部４２の出力を示す。第４行Ｌ４は、仮数乗算部４３の出力を示す。第５行Ｌ５は、正規化カウント部４４の出力を示す。第６行Ｌ６は、正規化部４５の出力を示す。第７行Ｌ７は、指数補正部４６の出力を示す。第８行Ｌ８は、指数補正部４６及び正規化部４５の出力を示す。第９行Ｌ９は、ビットシフト数カウント部１１９の出力を示す。第１０行Ｌ１０は、ビットシフタ１２０の出力を示す。第１１行Ｌ１１は、指数補正部１２２の出力を示す。第１２行Ｌ１２は、丸め演算部１２３の出力を示す。第１３行Ｌ１３は、出力部１２４の出力を示す。
【００６２】
図１９は本発明の計算機の一実施例のＩＥＥＥ単精度形式の除算の計算経過を示す図、図２０は本発明の計算機の一実施例のＩＥＥＥ倍精度形式の除算の計算経過を示す図を示す。
図１９、図２０において、第１行Ｌ１は、入力部５１、５２への入力データを示す。第２行Ｌ２は、指数補正部１１４の出力を示す。第３行Ｌ３は、指数差検出部５３の出力を示す。第４行Ｌ４は、仮数除算部５４の出力を示す。第５行Ｌ５は、正規化カウント部５５の出力を示す。第６行Ｌ６は、正規化部５６の出力を示す。第７行Ｌ７は、指数補正部５７の出力を示す。第８行Ｌ８は、指数補正部５７及び正規化部５６の出力を示す。第９行Ｌ９は、ビットシフト数カウント部１１９の出力を示す。第１０行Ｌ１０は、ビットシフタ１２０の出力を示す。第１１行Ｌ１１は、指数補正部１２２の出力を示す。第１２行Ｌ１２は、丸め演算部１２３の出力を示す。第１３行Ｌ１３は、出力部１２４の出力を示す。
【００６３】
【発明の効果】
上述の如く、本発明によれば、複数の演算手段それぞれで付加的処理を行う必要がないので、回路構成を簡略化できる等の特長を有する。
また、本発明によれば、複数の演算手段では、予め決められた処理を実行すればよいので、複数の演算手段で付加的処理による遅延が生じることがなく、処理を効率よく行える等の特長を有する。
【図面の簡単な説明】
【図１】浮動小数点を２進数での表現を説明するための図である。
【図２】ディジット浮動小数点形式の数値をビット表現した場合を説明するための図である。
【図３】ＩＥＥＥ浮動小数点形式の数値をビット表現した場合を説明するための図である。
【図４】従来の浮動小数点加減算装置の一例のブロック図である。
【図５】従来の浮動小数点乗算装置の一例のブロック図である。
【図６】従来の浮動小数点除算装置の一例のブロック構成図である。
【図７】本発明の計算装置の一実施例の概略ブロック構成図である。
【図８】本発明の計算装置の一実施例の浮動小数点演算ユニットのブロック構成図である。
【図９】本発明の計算装置の一実施例の加減算部のブロック構成図である。
【図１０】本発明の計算装置の一実施例の乗算部のブロック構成図である。
【図１１】本発明の計算装置の一実施例の除算部のブロック構成図である。
【図１２】本発明の計算装置の一実施例のＩＥＥＥ後処理部のブロック構成図である。
【図１３】本発明の計算機の一実施例のビットシフトの動作を説明するための図である。
【図１４】本発明の計算機の一実施例のＩＥＥＥ単精度形式の加減算の計算経過を示す図である。
【図１５】本発明の計算機の一実施例のＩＥＥＥ倍精度形式の加算の計算経過を示す図である。
【図１６】本発明の計算機の一実施例のＩＥＥＥ倍精度形式の減算の計算経過を示す図である。
【図１７】本発明の計算機の一実施例のＩＥＥＥ単精度形式の乗算の計算経過を示す図である。
【図１８】本発明の計算機の一実施例のＩＥＥＥ倍精度形式の乗算の計算経過を示す図である。
【図１９】本発明の計算機の一実施例のＩＥＥＥ単精度形式の除算の計算経過を示す図である。
【図２０】本発明の計算機の一実施例のＩＥＥＥ倍精度形式の除算の計算経過を示す図である。
【符号の説明】
１００  計算装置
１０１  命令制御ユニット
１０２  演算ユニット
１０３  記憶制御ユニット
１０４  浮動小数点ユニット
１０５、１０６  入力レジスタ
１０７  加減算部
１０８  乗算部
１０９  除算部
１１０  ＩＥＥＥ後処理部
１１１  結果選択部
１１２  結果レジスタ
１１３  形式判定部
１１４  形式補正部
１１５  ＩＥＥＥ制御部
１１６  制御部
１１７、１１８  選択部
１１９  ビットシフト数カウント部
１２０  ビットシフタ
１２１、１２２  指数補正部
１２３  丸めビット演算部
１２４  出力部
【図１】
0004428778.tif 000002
【図２】
0004428778.tif 000003
【図３】
0004428778.tif 000004
【図４】
0004428778.tif 000005
【図５】
0004428778.tif 000006
【図６】
0004428778.tif 000007
【図７】
0004428778.tif 000008
【図８】
0004428778.tif 000009
【図９】
0004428778.tif 000010
【図１０】
0004428778.tif 000011
【図１１】
0004428778.tif 000012
【図１２】
0004428778.tif 000013
【図１３】
0004428778.tif 000014
【図１４】
0004428778.tif 000015
【図１５】
0004428778.tif 000016
【図１６】
0004428778.tif 000017
【図１７】
0004428778.tif 000018
【図１８】
0004428778.tif 000019
【図１９】
0004428778.tif 000020
【図２０】
0004428778.tif 000021