JP3178746B2 - 浮動小数点数のためのフォーマット変換装置 - Google Patents

浮動小数点数のためのフォーマット変換装置

Info

Publication number
JP3178746B2
JP3178746B2 JP24742192A JP24742192A JP3178746B2 JP 3178746 B2 JP3178746 B2 JP 3178746B2 JP 24742192 A JP24742192 A JP 24742192A JP 24742192 A JP24742192 A JP 24742192A JP 3178746 B2 JP3178746 B2 JP 3178746B2
Authority
JP
Japan
Prior art keywords
mantissa
exponent
operand
bit
rounding
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
JP24742192A
Other languages
English (en)
Other versions
JPH05324270A (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 Corp
Panasonic Holdings Corp
Original Assignee
Panasonic Corp
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 Panasonic Corp, Matsushita Electric Industrial Co Ltd filed Critical Panasonic Corp
Priority to JP24742192A priority Critical patent/JP3178746B2/ja
Publication of JPH05324270A publication Critical patent/JPH05324270A/ja
Application granted granted Critical
Publication of JP3178746B2 publication Critical patent/JP3178746B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/14Conversion to or from non-weighted codes
    • H03M7/24Conversion to or from floating-point codes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods 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/483Computations with numbers represented by a non-linear combination of denominational numbers, e.g. rational numbers, logarithmic number system or floating-point numbers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods 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/499Denomination or exception handling, e.g. rounding or overflow
    • G06F7/49942Significance control
    • G06F7/49947Rounding

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical 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)
  • Nonlinear Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Complex Calculations (AREA)

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、IEEE(The Instit
ute of Electrical and Electronics Engineers)75
4規格又はこれに準拠した2進浮動小数点数のためのフ
ォーマット変換方法及びその装置に関するものである。
【0002】
【従来の技術】近年、科学技術計算やグラフィック処理
の複雑化に伴って、高速かつ正確な浮動小数点演算に対
する要求が高まっている。計算機は浮動小数点数の限ら
れた桁数のみを用いて処理を行なうため、多くの場合、
浮動小数点演算で得られる結果には誤差が生じる。演算
精度は計算機のハードウェア構成に大きく依存するが、
IEEE754規格に従うことによってハードウェア構
成に依存した誤差の発生を防ぐことができる。
【0003】さて、IEEE754規格には、単精度浮
動小数点数のために、1ビットの符号Sと、8ビットの
指数Eと、23ビットの小数部Fとの合計32ビットの
フォーマットが規定されている。通常は、小数部Fの最
上位ビット(MSB)より更に上位に仮想的な非ゼロ値
ビットと小数点とが位置するように指数Eの値を調整す
ることによって、正規化処理を施す。ただし、指数Eが
正数となるように、実際の指数にバイアスBsとして1
27を加えて得た数を指数Eとする。すなわち、正規化
数(ノーマライズド・ナンバー)として表現される実数
1は、 R1=(−1)SE-127(1.F) (1) となる。ただし、式(1)中の1.Fを仮数Mという。
【0004】また、IEEE754規格には、64ビッ
ト倍精度浮動小数点数のフォーマットとして、1ビット
の符号Sと、11ビットの指数Eと、52ビットの小数
部Fとで構成される数値表現形式も用意されている。こ
の場合、正規化数として表現される実数R3は、 R3=(−1)SE-1023(1.F) () であり、実際の指数にバイアスBdとして1023を加
えて得た数を指数Eとすることとしている。仮数Mは
1.Fである。
【0005】なお、IEEE754規格に固定小数点数
のフォーマットに関する規定はないが、負数を2の補数
で表現するように符号を表わした最上位ビット(MS
B)と所定のビット長の整数部分とを有する整数型固定
小数点数のフォーマットが通例採用される。32ビット
整数の場合には、MSBが符号ビット、残りの31ビッ
トが整数部分となり、該整数部分の最下位ビット(LS
B)より更に下位に小数点が位置するものとされる。
【0006】浮動小数点演算命令セットの中には各種フ
ォーマット変換のための命令が含まれており、必要に応
じて異なるフォーマット間の変換が実行される。
【0007】
【発明が解決しようとする課題】さて、フォーマット変
換の対象すなわちオペランドの値に応じて、最終変換結
果を得るまでに実行されるべき処理の数が異なる。例え
、32ビット整数として表わされたオペランドを単精
度浮動小数点数へフォーマット変換する場合には、オペ
ランドが負数であるときはその絶対値化が必要である。
また、オペランドが正数でありかつ該オペランドの31
ビット長の整数部分のうちの有効桁数が単精度浮動小数
点数の有効桁数24より大きいときにかぎり、丸め処理
が必要となる。そして、この丸め処理において桁上げが
生じた場合には、求める単精度浮動小数点数の指数及び
仮数を補正しなければならない。しかしながら、従来は
フォーマット変換命令の実行に際して比較的少ない処理
数で最終変換結果を求め得る場合にも該命令の実行に必
要な最大の処理数を費やしていたため、変換効率が高く
ならないという問題があった。
【0008】本発明の目的は、浮動小数点数を取り扱う
フォーマット変換の高速化、高効率化を図ることにあ
る。
【0009】
【課題を解決するための手段】上記目的を達成するた
め、本発明では、32ビット整数から単精度浮動小数点
数へのフォーマット変換のように固定小数点数から浮動
小数点数へのフォーマット変換を行なうに際し、オペラ
ンドである固定小数点数が正の数である場合には、該オ
ペランド中のリーディングゼロの数に相当する左シフト
量LSAに反映された該オペランドの実際の有効桁数に
応じて、丸め処理を実行するか否かを決定 することとし
た。
【0010】
【作用】本発明によれば、例えば32ビット整数から単
精度浮動小数点数へのフォーマット変換を行なうに際
し、オペランドが負数であるときはその絶対値化が行な
われる。また、オペランドが正数である場合には、該オ
ペランドの有効桁数と求める単精度浮動小数点数の有効
桁数との大小関係に応じて丸め処理を実行するか否かが
決定される。このようにオペランドの符号とその有効桁
数とに応じてフォーマット変換処理の流れを制御するこ
とにより、変換結果が早く得られた場合にはその時点で
処理を終了できるので、変換効率が向上する。
【0011】
【実施例】以下、本発明の実施例に係る浮動小数点数の
ためのフォーマット変換装置について、図面を参照しな
がら説明する。
【0012】図1及び図2は、32ビット整数からIE
EE754規格の単精度浮動小数点数へのフォーマット
変換に関する実施例を示すものである。図1は処理の流
れを示すフローチャート図であり、図2はその処理の実
施のための装置のブロック図である。
【0013】まず、図1を参照しながら本実施例のフォ
ーマット変換処理の流れを説明する。ただし、本実施例
におけるオペランドとしての32ビット整数は、負数を
2の補数で表現するように、符号を表わした最上位ビッ
ト(MSB)と31ビット長の整数部分とを有するもの
とする。MSBが0の場合は正数、1の場合は負数であ
る。
【0014】はじめに、オペランドが正か負かが、該オ
ペランドのMSBに基づいてステップ301で判断され
る。
【0015】オペランドが正数である場合には、該オペ
ランドの31ビット長の整数部分の中から実際に最大の
重みを持つビットの位置を見つけるために、ステップ3
02に示すように、MSBの1つ下のビットから最下位
ビット(LSB)の方向へ検索を行なって、最初に1と
なっているビットの位置を検出する。そして、検出した
ビット位置とMSBの位置との差を、所要の左シフト量
LSA(Left Shift Amount)とする。次に、ステップ
303に示すように、オペランドの31ビット長の整数
部分の中から実際に最大の重みを持つビットの位置を単
精度浮動小数点数における小数点の1つ上のビット位置
に合わせるために、オペランドをLSAで指定されたビ
ット数だけ左シフトさせ、仮数m1を得る。オペランド
の有効桁数は32−LSAなので、この有効ビットが持
つ最大の重みは231-LSAであり、この重みがステップ3
03で得られた仮数m1に対応する実際の指数となる。
【0016】次に、ステップ304に示すように、単精
度浮動小数点数の指数バイアスBs(=127)を用い
て、仮数m1に対応する指数e1が、 e1=31−LSA+Bs) として求められる。ところで、オペランドの有効桁数3
2−LSAが単精度浮動小数点数の有効桁数(24であ
る。ただし、小数点の1つ上のビットを含む。)より大
きい場合には、後者の有効桁数に合わせて丸めを行なう
必要があるが、これ以外の場合は丸め処理が不要とな
る。すなわち、丸めが不要の場合には 32−LSA≦24 () したがって、 LSA≧8 () となるので、ステップ305に示すように、丸めが必要
か不要かをLSAが8以上かどうかで判断することがで
きる。LSAが8以上である場合には丸めは不要であ
り、指数e1及び仮数m1がそれぞれ求める単精度浮動小
数点数の指数及び仮数となる。LSAが8より小さい場
合には、ステップ306に示すように、仮数m1を小数
点以下23ビットに丸めて仮数m2を得る。次に、ステ
ップ307に示すように、この丸めによって桁上げが生
じたかどうかを判断し、桁上げが生じなければ、求める
単精度浮動小数点数の指数はe1、仮数はm2となる。ま
た、桁上げが生じれば、ステップ308に示すように、
仮数m2を1ビットだけ右シフトさせて仮数m3を求め、
ステップ309に示すように、指数e1に1を加算して
指数e2を得る。この場合の求める単精度浮動小数点数
の指数はe2、仮数はm3となる。
【0017】一方、オペランドが負数である場合には、
該オペランドは2の補数で表現されているので、31ビ
ット長の整数部分の中から実際に最大の重みを持つビッ
トの位置を見つけるために、ステップ310に示すよう
に、MSBの1つ下のビットからLSBの方向へ検索が
行なわれ、最初に0となっているビットの位置が検出さ
れる。そして、オペランドが正数である場合と同様に、
検出されたビット位置とMSBの位置との差がLSAと
して求められる。次に、ステップ311に示すように、
オペランドをLSAで指定されたビット数だけ左シフト
させ、仮数m4が求められる。次に、ステップ312で
は、ステップ304と同様に、LSAと単精度浮動小数
点数の指数バイアスBs(=127)とを用いて指数e3
が求められる。上述のようにして求められた仮数m4
2の補数で表現される負数であるのに対して浮動小数点
数の仮数は絶対値表現であるため、ステップ313で
は、0から仮数m4を引くことによって仮数m4の絶対値
である仮数m5が求められる。次に、ステップ314に
示すように、仮数m5が小数点以下23ビットに丸めら
れて仮数m6が得られる。この丸めによって桁上げが生
じたか否かがステップ315で判断される。桁上げが生
じていなければ、求める単精度浮動小数点数の指数はe
3、仮数はm6である。桁上げが生じていれば、ステップ
316で仮数m6は右1ビットシフトされて仮数m7が求
められる。次に、ステップ317では指数e3に1を加
えて指数e4が得られる。この場合の求める単精度浮動
小数点数の指数はe4、仮数はm7である。
【0018】以上のように本実施例によれば、オペラン
ドが正数であるか負数であるかに応じてかつオペランド
の有効桁数に応じてフォーマット変換処理の流れの制御
を行なうことにより、同じ変換命令であっても結果が早
く求められた場合にはその時点で処理を終了することが
でき、変換の高効率化を図ることができる。
【0019】次に、図2を参照しながら本実施例のフォ
ーマット変換装置のブロック構成を説明する。
【0020】図2に示すように、本実施例のフォーマッ
ト変換装置は、内部仮数バス401と、内部指数バス4
02との2つのバスを有する。内部仮数バス401は先
行1検出手段403と、第1のシフタとしてのシフタ4
04と、加減算手段405と、仮数結果レジスタ413
とに仮数の出力を行ない、内部指数バス402は第2の
セレクタ411と、指数補正手段410と、指数結果レ
ジスタ412とに指数の出力を行なうものである。
【0021】先行1検出手段403は、内部仮数バス4
01からの入力データすなわちオペランドが正数である
場合はそのオペランドに対し、またオペランドが負数で
ある場合はそのオペランドを反転させて得たデータに対
して、MSBの1つ下のビットからLSBの方向へ検索
を行ない、最初に1となっているビットの位置を検出す
る。したがって、正数に対してはMSBに最も近い1の
ビットの位置が検出され、負数に対してはMSBに最も
近い0のビットの位置が検出されることになる。先行1
検出手段403は、このようにして検出したビット位置
とMSBの位置との差を所要の左シフト量LSAとして
求め、このLSAをシフタ404と指数演算手段409
とに出力する。また、先行1検出手段403は、LSA
が8以上であるかどうかを示す判定信号416と、オペ
ランドが負数であるかどうかを示す負数信号417とを
制御手段415に出力する。
【0022】可変量シフタとしてのシフタ404は、内
部仮数バス401から入力されたオペランドを先行1検
出手段403から出力されるLSAに等しいビット数だ
け左シフトさせることにより左シフト数を求め、この左
シフト数を再び内部仮数バス401に出力する。指数演
算手段409は、単精度浮動小数点数の指数バイアスB
s(=127)と先行1検出手段403から出力される
LSAとを用いて、31−LSA+Bsで表わされる指
数を求める。求められた指数は内部指数バス402に出
力される。
【0023】加減算手段405は、オペランドが正数で
ある場合にはシフタ404から出力される左シフト数を
そのまま演算処理数として丸め手段406に出力し、オ
ペランドが負数である場合には0から左シフト数を減算
した数値、すなわち左シフト数の絶対値を演算処理数と
して丸め手段406に出力する。丸め手段406は、加
減算手段405から出力される演算処理数を丸めて得た
丸め数を1ビットシフタ407及び第1のセレクタ40
8に出力するとともに、演算処理数の丸めによって桁上
げが生じたか否かを示す桁上げ信号414を第1のセレ
クタ408及び第2のセレクタ411に出力する。1ビ
ットシフタ407は、丸め手段406から出力される丸
め数を1ビットだけ右シフトさせて第1のセレクタ40
8に出力する。第1のセレクタ408は、桁上げ信号4
14に基づいて、演算処理数の丸めによって桁上げが生
じた場合には1ビットシフタ407からの出力を選択
し、演算処理数の丸めによって桁上げが生じない場合に
は丸め手段406から入力された丸め数を選択して、選
択したデータを内部仮数バス401に出力する。
【0024】指数補正手段410は、指数演算手段40
9から出力される指数に1を加算することによって補正
した数値を第2のセレクタ411に出力する。第2のセ
レクタ411は、桁上げ信号414に基づいて、演算処
理数の丸めによって桁上げが生じた場合には指数補正手
段410の出力を選択し、演算処理数の丸めによって桁
上げが生じない場合には指数演算手段409の出力を選
択して、選択したデータを内部指数バス402に出力す
る。指数結果レジスタ412は内部指数バス402に出
力される指数を格納し、仮数結果レジスタ413は内部
仮数バス401に出力される仮数を格納するものであ
る。
【0025】制御手段415は、32ビット整数から単
精度浮動小数点数へのフォーマット変換に必要な処理を
行なうように、403から413までの各ブロックを作
動させるための制御信号を送る。また、先行1検出手段
403からの判定信号416と負数信号417とに基づ
いて、フォーマット変換を終了するかどうかを判断す
る。
【0026】以上のように構成されたフォーマット変換
装置の動作を、図1及び図2を参照しながら説明する。
【0027】まず、オペランドが内部仮数バス401に
供給され、先行1検出手段403に入力される。先行1
検出手段403では、ステップ301に示すように、オ
ペランドが正か負かの判断が行なわれる。
【0028】オペランドが正数である場合には、ステッ
プ302に示すように、先行1検出手段403はこのオ
ペランドにおけるMSBに最も近い1のビット位置を検
出し、検出したビット位置とMSBの位置との差を所要
の左シフト量LSAとしてシフタ404と指数演算手段
409とに出力する。次に、ステップ303に示すよう
に、シフタ404は内部仮数バス401から入力された
オペランドを先行1検出手段403から出力されるLS
Aに等しいビット数だけ左シフトさせて仮数m1を求め
る。この仮数m1は再び内部仮数バス401に出力さ
れ、仮数結果レジスタ413に格納される。指数演算手
段409では、ステップ304に示すように、先行1検
出手段403から出力されるLSAを用いて指数e1
31−LSA+Bsが求められ、この指数e1は内部指数
バス402を介して指数結果レジスタ412に格納され
る。このとき、オペランドが正数であることを先行1検
出手段403からの負数信号417が示し、かつLSA
が8以上であることを該先行1検出手段403からの判
定信号416が示せば、制御手段415はフォーマット
変換の終了を決定する。これは、ステップ305におい
てLSAが8以上であると判断された場合に相当する。
これによって、指数結果レジスタ412に格納された指
数e1が求める単精度浮動小数点数の指数、仮数結果レ
ジスタ413に格納された仮数m1が求める単精度浮動
小数点数の仮数となる。
【0029】オペランドが正数であることを負数信号4
17が示し、かつLSAが8より小さいことを判定信号
416が示せば、制御手段415はフォーマット変換を
続行するための制御を実行する。これはステップ305
においてLSAが8より小さいと判断された場合に相当
し、ステップ306以降の処理が行なわれる。すなわ
ち、内部仮数バス401に出力された仮数m1が加減算
手段405に入力され、加減算手段405では、オペラ
ンドが正数なので0+m1の計算が行なわれ、その計算
結果である仮数m1が丸め手段406に出力される。丸
め手段406では、ステップ306に示すように、仮数
1の丸めによって仮数m2が求められる。これと同時
に、仮数m1の丸めによって桁上げが生じたか否かを示
す桁上げ信号414が第1のセレクタ408及び第2の
セレクタ411に出力される。ステップ307におい
て、桁上げ信号414に基づいて仮数m1の丸めによっ
て桁上げが生じていないと判断された場合には、第1の
セレクタ408は丸め手段406から出力される仮数m
2を選択して内部仮数バス401に出力する。内部仮数
バス401に出力された仮数m2は、求める単精度浮動
小数点数の仮数として仮数結果レジスタ413に格納さ
れる。一方、指数演算手段409から内部指数バス40
2に出力された指数e1は第2のセレクタ411に入力
され、そのまま第2のセレクタ411から内部指数バス
402を介して指数結果レジスタ412に格納される。
指数結果レジスタ412に格納された指数e1が、求め
る単精度浮動小数点数の指数となる。
【0030】また、ステップ307において、桁上げ信
号414に基づいて仮数m1の丸めによって桁上げが生
じていると判断された場合には、ステップ308に示す
ように、1ビットシフタ407は仮数m2を1ビットだ
け右シフトさせて仮数m3を求め、これを第1のセレク
タ408に出力する。第1のセレクタ408は、丸め手
段406からの桁上げ信号414に基づいて、仮数m3
を内部仮数バス401を介して仮数結果レジスタ413
に出力する。一方、指数演算手段409から内部指数バ
ス402に出力された指数e1は指数補正手段410に
入力される。指数補正手段410は、ステップ309に
示すように、指数e1に1を加算して指数e2を求め、こ
れを第2のセレクタ411に出力する。第2のセレクタ
411は内部指数バス402を介して指数e2を指数結
果レジスタ412に格納する。この場合には、求める単
精度浮動小数点数の仮数は、仮数結果レジスタ413に
格納されている仮数m3であり、求める単精度浮動小数
点数の指数は、指数結果レジスタ412に格納されてい
る指数e2である。
【0031】オペランドが負数であることを先行1検出
手段403からの負数信号417が示している場合に
も、制御手段415はフォーマット変換を続行するため
の制御を実行する。これはステップ301においてオペ
ランドが負数であると判断された場合に相当し、ステッ
プ310以降の処理が行なわれる。すなわち、先行1検
出手段403においてオペランドの各ビットを反転させ
たデータが求められ、この反転データ中のMSBに最も
近い1のビット位置が検出される。このような検出を行
なえば、MSBに最も近い0のビットの位置を検出した
ことと同じになる。次に、検出したビット位置とMSB
の位置との差が所要の左シフト量LSAとしてシフタ4
04と指数演算手段409とに出力される。次に、ステ
ップ311に示すように、シフタ404は、内部仮数バ
ス401から入力されたオペランドを先行1検出手段4
03から出力されるLSAに等しいビット数だけ左シフ
トさせて仮数m4を求める。この仮数m4は、加減算手段
405へ入力される。また、指数演算手段409では、
ステップ312に示すように、先行1検出手段403か
ら出力されるLSAを用いて指数e1=31−LSA+
sが求められ、この指数e1は内部指数バス402を介
して指数補正手段410に出力される。
【0032】加減算手段405では、ステップ313に
示すように、オペランドが負数なのでシフタ404から
出力される仮数m4を用いてm5=0−m4の計算が行な
われ、求められた仮数m5は丸め手段406に入力され
る。丸め手段406では、ステップ314に示すよう
に、仮数m5の丸めによって仮数m6が求められる。これ
と同時に、仮数m5の丸めによって桁上げが生じたか否
かを示す桁上げ信号414が第1のセレクタ408及び
第2のセレクタ411に出力される。ステップ315に
おいて、桁上げ信号414に基づいて仮数m5の丸めに
よって桁上げが生じていないと判断された場合には、第
1のセレクタ408は丸め手段406から出力される仮
数m6を選択して内部仮数バス401に出力する。内部
仮数バス401に出力された仮数m6は、求める単精度
浮動小数点数の仮数として仮数結果レジスタ413に格
納される。一方、指数演算手段409から内部指数バス
402に出力された指数e3は第2のセレクタ411に
入力され、そのまま第2のセレクタ411から内部指数
バス402を介して指数結果レジスタ412に格納され
る。指数結果レジスタ412に格納された指数e3が、
求める単精度浮動小数点数の指数となる。
【0033】また、ステップ315において、桁上げ信
号414に基づいて仮数m5の丸めによって桁上げが生
じていると判断された場合には、ステップ316に示す
ように、1ビットシフタ407は仮数m6を1ビットだ
け右シフトさせて仮数m7を求め、これを第1のセレク
タ408に出力する。第1のセレクタ408は、丸め手
段406からの桁上げ信号414に基づいて、仮数m7
を内部仮数バス401を介して仮数結果レジスタ413
に出力する。一方、指数演算手段409から内部指数バ
ス402に出力された指数e3は指数補正手段410に
入力される。指数補正手段410は、ステップ317に
示すように、指数e3に1を加算して指数e4を求め、こ
れを第2のセレクタ411に出力する。第2のセレクタ
411は、内部指数バス402を介して指数e4を指数
結果レジスタ412に出力する。この場合には、求める
単精度浮動小数点数の仮数は、仮数結果レジスタ413
に格納されている仮数m7であり、求める単精度浮動小
数点数の指数は、指数結果レジスタ412に格納されて
いる指数e4である。
【0034】以上のように本装置によれば、変換結果と
して求められた仮数及び指数がそれぞれ内部仮数バス4
01及び内部指数バス402を介して仮数結果レジスタ
413及び指数結果レジスタ412に書き込まれるの
で、書き込まれた変換結果を最終結果として取り出すこ
とも、それ以降に読み出して続けて処理を行なうことも
可能となる。また、オペランドが正の整数であるか負の
整数であるか等の場合に応じて先行1検出手段403及
び加減算手段405を制御することにより、比較的簡易
なハードウェアで単精度浮動小数点数へのフォーマット
変換を実行することができる。更に、変換結果が早く求
められた場合にはその時点で処理を終了することができ
るので、変換の高効率化が可能となる。
【0035】なお、例えば64ビット整数から倍精度浮
動小数点数あるいは単精度浮動小数点数のフォーマット
変換のために上記実施例を変更することは容易である。
【0036】
【発明の効果】以上説明してきたように、本発明によれ
ば、例えば32ビット整数から単精度浮動小数点数への
フォーマット変換を行なうに際して、オペランドである
固定小数点数が正の数である場合には、該オペランド中
のリーディングゼロの数に相当する左シフト量LSAに
反映された該オペランドの実際の有効桁数に応じて、丸
め処理を実行するか否かを決定することとしたので、変
換結果が早く得られた場合にはその時点で処理を終了で
き、変換効率が向上する。
【図面の簡単な説明】
【図1】本発明の実施例に係る32ビット整数から単精
度浮動小数点数へのフォーマット変換処理の流れを示す
フローチャート図である。
【図2】図1の処理を実施するためのフォーマット変換
装置の構成を示すブロック図である。
【符号の説明】401 内部仮数バス 402 内部指数バス 403 先行1検出手段 404 シフタ(第1のシフタ) 405 加減算手段 406 丸め手段 407 1ビットシフタ(第2のシフタ) 408 第1のセレクタ 409 指数演算手段 410 指数補正手段 411 第2のセレクタ 412 指数結果レジスタ 413 仮数結果レジスタ 414 桁上げ信号 415 制御手段 416 判定信号(LSA≧8) 417 負数信号
フロントページの続き (56)参考文献 特開 平3−100722(JP,A) 特開 昭63−204324(JP,A) 特開 平2−10426(JP,A) 特開 平2−214931(JP,A) 特開 平3−100723(JP,A) 「インターフェース」11[3](昭和 60年3月),CQ出版,P.226−228 (58)調査した分野(Int.Cl.7,DB名) G06F 7/00,7/38

Claims (3)

    (57)【特許請求の範囲】
  1. 【請求項1】 負数を2の補数で表現するように符号を
    表わした最上位ビットと第1のビット長の整数部分とを
    有する整数型のオペランドとしての固定小数点数を、バ
    イアスが付与された指数εと前記第1のビット長より短
    い第2のビット長の仮数μとを有する正規化された浮動
    小数点数へフォーマット変換するための装置であって、 前記オペランドが正数であるか負数であるかを該オペラ
    ンドの最上位ビットに基づいて判断し、 (a) 前記オペランドが正数である場合には、 前記オペランドの最上位ビットの位置と該最上位ビット
    に最も近い1のビット位置との差を所要の左シフト量L
    SAとして求め、 前記オペランドを前記左シフト量LSAだけ左シフトさ
    せて第1の仮数m1を求め、 前記オペランドの整数部分の第1のビット長から前記左
    シフト量LSAを減算しかつ前記浮動小数点数の指数バ
    イアスを加算することにより第1の指数e1を求め、 前記左シフト量LSAが前記オペランドの最上位ビット
    を含むビット長から前記第2のビット長を減じたしきい
    値以上であるときには、前記第1の指数e1と前記第1
    の仮数m1とをそれぞれ前記浮動小数点数の指数ε及び
    仮数μとし、 前記左シフト量LSAが前記しきい値より小さいときに
    は、前記第1の仮数m1を前記第2のビット長に丸めて
    第2の仮数m2を求め、該第1の仮数m1の丸めによって
    桁上げが生じないときには前記第1の指数e1と前記第
    2の仮数m2とをそれぞれ前記浮動小数点数の指数ε及
    び仮数μとし、前記第1の仮数m1の丸めによって桁上
    げが生じたときには前記第1の指数e1に1を加算して
    得た第2の指数e2と前記第2の仮数m2を1ビットだけ
    右シフトさせて得た第3の仮数m3とをそれぞれ前記浮
    動小数点数の指数ε及び仮数μとし、 (b) 前記オペランドが負数である場合には、 前記オペランドの最上位ビットの位置と該最上位ビット
    に最も近い0のビット位置との差を所要の左シフト量L
    SAとして求め、 前記オペランドを前記左シフト量LSAだけ左シフトさ
    せて第4の仮数m4を求め、 前記オペランドの整数部分の第1のビット長から前記左
    シフト量LSAを減算しかつ前記浮動小数点数の指数バ
    イアスを加算することにより第3の指数e3を求め、 0から前記第4の仮数m4を減算することにより第5の
    仮数m5を求め、 前記第5の仮数m5を前記第2のビット長に丸めて第6
    の仮数m6を求め、該第5の仮数m5の丸めによって桁上
    げが生じないときには前記第3の指数e3と前記第6の
    仮数m6とをそれぞれ前記浮動小数点数の指数ε及び仮
    数μとし、前記第5の仮数m5の丸めによって桁上げが
    生じたときには前記第3の指数e3に1を加算して得た
    第4の指数e4と前記第6の仮数m6を1ビットだけ右シ
    フトさせて得た第7の仮数m7とをそれぞれ前記浮動小
    数点数の指数ε及び仮数μとするように構成されたこと
    を特徴とするフォーマット変換装置
  2. 【請求項2】 請求項記載のフォーマット変換装置
    おいて、 符号を表わした最上位ビットと31ビット長の整数部分
    とを有する全32ビットのオペランドを、23ビット長
    の小数部を有する正規化された単精度浮動小数点数へ変
    換するように、前記左シフト量LSAのしきい値を8に
    設定することを特徴とするフォーマット変換装置
  3. 【請求項3】 負数を2の補数で表現するように符号を
    表わした最上位ビットと31ビット長の整数部分とを有
    する全32ビットのオペランドを、バイアスが付与され
    た指数と23ビット長の小数部とを有する正規化された
    単精度浮動小数点数へフォーマット変換するための装置
    であって、 前記オペランドが正数である場合には該オペランドの最
    上位ビットに最も近い1のビット位置を検出し、前記オ
    ペランドが負数である場合には該オペランドの全ビット
    を反転させて得たデータのうちの最上位ビットに最も近
    い1のビット位置を検出して、該検出したビット位置と
    前記最上位ビットの位置との差を所要の左シフト量LS
    Aとして出力する機能を有する先行1検出手段と、 前記オペランドを前記左シフト量LSAだけ左シフトさ
    せて得られる数値を出力するための第1のシフタと、 数値31から前記左シフト量LSAを減算しかつ単精度
    浮動小数点数の指数バイアスを加算して得た数値を出力
    するための指数演算手段と、前記オペランドが正数でありかつ前記左シフト量LSA
    が8以上である場合には、前記指数演算手段の出力と前
    記第1のシフタの出力とをそれぞれ求める単精度浮動小
    数点数の指数及び仮数とするための制御手段と、 前記第1のシフタの出力と0とが入力され、かつ前記オ
    ペランドが正数である場合には前記第1のシフタの出力
    を、前記オペランドが負数である場合には0から該第1
    のシフタの出力を減算して得た数値を各々演算処理数と
    して出力する機能を有する加減算手段と、 前記オペランドが負数である場合、又は、前記オペラン
    ドが正数でありかつ前記左シフト量LSAが8より小さ
    い場合には、前記加減算手段から出力された演算処理数
    を所定のビット長に丸めて得た数値を求める単精度浮動
    小数点数の補正された仮数として出力するための丸め手
    段と、 前記丸め手段における丸めにより桁上げが生じた場合に
    は、該丸め手段から出力された数値を1ビットだけ右シ
    フトさせて得た数値を求める単精度浮動小数点数の更に
    補正された仮数として出力するための第2のシフタと、 前記丸め手段における丸めにより桁上げが生じた場合に
    は、前記指数演算手段から出力された数値に1を加算し
    て得た数値を求める単精度浮動小数点数の補正された指
    数として出力するための指数補正手段とを備えたことを
    特徴とするフォーマット変換装置。
JP24742192A 1991-09-25 1992-09-17 浮動小数点数のためのフォーマット変換装置 Expired - Fee Related JP3178746B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP24742192A JP3178746B2 (ja) 1991-09-25 1992-09-17 浮動小数点数のためのフォーマット変換装置

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP24599591 1991-09-25
JP3-245995 1991-09-25
JP24742192A JP3178746B2 (ja) 1991-09-25 1992-09-17 浮動小数点数のためのフォーマット変換装置

Publications (2)

Publication Number Publication Date
JPH05324270A JPH05324270A (ja) 1993-12-07
JP3178746B2 true JP3178746B2 (ja) 2001-06-25

Family

ID=17141906

Family Applications (1)

Application Number Title Priority Date Filing Date
JP24742192A Expired - Fee Related JP3178746B2 (ja) 1991-09-25 1992-09-17 浮動小数点数のためのフォーマット変換装置

Country Status (2)

Country Link
US (1) US5317526A (ja)
JP (1) JP3178746B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6455956B1 (en) 1999-02-10 2002-09-24 Nikon Corporation Two-dimensional electric motor

Families Citing this family (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5542068A (en) * 1991-12-10 1996-07-30 Microsoft Corporation Method and system for storing floating point numbers to reduce storage space
US5805475A (en) * 1995-02-10 1998-09-08 International Business Machines Corporation Load-store unit and method of loading and storing single-precision floating-point registers in a double-precision architecture
US5732005A (en) * 1995-02-10 1998-03-24 International Business Machines Corporation Single-precision, floating-point register array for floating-point units performing double-precision operations by emulation
US5757682A (en) * 1995-03-31 1998-05-26 International Business Machines Corporation Parallel calculation of exponent and sticky bit during normalization
US5678016A (en) * 1995-08-08 1997-10-14 International Business Machines Corporation Processor and method for managing execution of an instruction which determine subsequent to dispatch if an instruction is subject to serialization
US5878266A (en) * 1995-09-26 1999-03-02 Advanced Micro Devices, Inc. Reservation station for a floating point processing unit
US5761105A (en) * 1995-09-26 1998-06-02 Advanced Micro Devices, Inc. Reservation station including addressable constant store for a floating point processing unit
US5973705A (en) * 1997-04-24 1999-10-26 International Business Machines Corporation Geometry pipeline implemented on a SIMD machine
JP3691307B2 (ja) * 1999-09-28 2005-09-07 三洋電機株式会社 ディジタル放送受信機
US8185723B2 (en) * 2001-07-13 2012-05-22 Intel Corporation Method and apparatus to extract integer and fractional components from floating-point data
US7523443B2 (en) * 2003-04-15 2009-04-21 The Mathworks, Inc. Programming language type system with automatic conversions
US7373369B2 (en) * 2003-06-05 2008-05-13 International Business Machines Corporation Advanced execution of extended floating-point add operations in a narrow dataflow
TWI220479B (en) * 2003-07-09 2004-08-21 Mediatek Inc Digital signal processor based on jumping floating point arithmetic
US7877431B2 (en) * 2004-09-07 2011-01-25 Research In Motion Limited Floating point encoding systems and methods
KR101043647B1 (ko) * 2010-08-27 2011-06-22 엘아이지넥스원 주식회사 데이터 변환 장치 및 데이터 변환 방법
US8984042B2 (en) 2012-02-09 2015-03-17 International Business Machines Corporation Mixed precision estimate instruction computing narrow precision result for wide precision inputs
KR102276910B1 (ko) * 2015-01-06 2021-07-13 삼성전자주식회사 테셀레이션 장치 및 방법
US10853067B2 (en) 2018-09-27 2020-12-01 Intel Corporation Computer processor for higher precision computations using a mixed-precision decomposition of operations
CN111008230B (zh) 2019-11-22 2023-08-04 远景智能国际私人投资有限公司 数据存储方法、装置、计算机设备及存储介质
CN113703717B (zh) * 2021-08-31 2024-01-26 南京英锐创电子科技有限公司 二进制浮点数乘法运算电路及其控制方法、计算装置

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2689414B2 (ja) * 1986-01-09 1997-12-10 日本電気株式会社 浮動小数点表現変換器
JPS63204324A (ja) * 1987-02-19 1988-08-24 Fujitsu Ltd 浮動少数点乗算方式
JPH0210426A (ja) * 1988-06-28 1990-01-16 Shikoku Nippon Denki Software Kk 浮動小数点変換回路
US4949291A (en) * 1988-12-22 1990-08-14 Intel Corporation Apparatus and method for converting floating point data formats in a microprocessor
JPH02214931A (ja) * 1989-02-16 1990-08-27 Oki Electric Ind Co Ltd 浮動小数点演算回路
JPH03100722A (ja) * 1989-09-13 1991-04-25 Fujitsu Ltd 精度変換命令の処理方式

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
「インターフェース」11[3](昭和60年3月),CQ出版,P.226−228

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6455956B1 (en) 1999-02-10 2002-09-24 Nikon Corporation Two-dimensional electric motor

Also Published As

Publication number Publication date
JPH05324270A (ja) 1993-12-07
US5317526A (en) 1994-05-31

Similar Documents

Publication Publication Date Title
JP3178746B2 (ja) 浮動小数点数のためのフォーマット変換装置
JP2662196B2 (ja) 演算結果正規化方法及び装置
JP3076046B2 (ja) 例外検出回路
US9608662B2 (en) Apparatus and method for converting floating-point operand into a value having a different format
CA1311848C (en) Apparatus and method for floating point normalization prediction
EP0472139A2 (en) A floating-point processor
JP3313560B2 (ja) 浮動小数点演算処理装置
US7634527B2 (en) Reciprocal estimate computation methods and apparatus
JP3845009B2 (ja) 積和演算装置、及び積和演算方法
US5111421A (en) System for performing addition and subtraction of signed magnitude floating point binary numbers
US20050114422A1 (en) High performance implementation of exponent adjustment in a floating point design
CN108153513B (zh) 前导零预测
JP2558669B2 (ja) 浮動小数点演算装置
CN112667197B (zh) 一种基于posit浮点数格式的参数化加减法运算电路
US5513362A (en) Method of and apparatus for normalization of a floating point binary number
US6615228B1 (en) Selection based rounding system and method for floating point operations
JP2517064B2 (ja) 非正規化数の処理方式
KR20150107614A (ko) 데이터 처리장치 및 이진수에 대해 시프트 기능을 수행하는 방법
JP3257278B2 (ja) 冗長なシフト数予測とシフト誤り補正を用いた正規化装置
JP3174974B2 (ja) 浮動小数点演算装置および方法
JP4428778B2 (ja) 演算装置及び演算方法並びに計算装置
JP3124286B2 (ja) 浮動小数点数演算装置
US4907185A (en) Program-controlled computer with an interrupt capability for floating-point operation
JPH0498524A (ja) 浮動小数点演算装置
JP2512230B2 (ja) 演算処理装置

Legal Events

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