JP2868075B2 - 浮動小数点演算処理装置 - Google Patents

浮動小数点演算処理装置

Info

Publication number
JP2868075B2
JP2868075B2 JP8067677A JP6767796A JP2868075B2 JP 2868075 B2 JP2868075 B2 JP 2868075B2 JP 8067677 A JP8067677 A JP 8067677A JP 6767796 A JP6767796 A JP 6767796A JP 2868075 B2 JP2868075 B2 JP 2868075B2
Authority
JP
Japan
Prior art keywords
data
floating
point arithmetic
operand
arithmetic unit
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
JP8067677A
Other languages
English (en)
Other versions
JPH09258959A (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 JP8067677A priority Critical patent/JP2868075B2/ja
Publication of JPH09258959A publication Critical patent/JPH09258959A/ja
Application granted granted Critical
Publication of JP2868075B2 publication Critical patent/JP2868075B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、浮動小数点演算器
に関し、特にIEEE−754に規定される形式の数値
データの演算を行う浮動小数点演算処理装置に関する。
【0002】
【従来の技術】浮動小数点のデータ形式として「IEE
E Standard for Binary Flo
ating Point Arithmetic,AN
SI/IEEE std 754−1985」(以下、
IEEE−754形式)が事実上標準として使用される
ようになってきた。IEEE−754形式は浮動小数点
形式の数値データを指数部と仮数部とに分け、これらの
数値の組み合わせにより通常数と、5種類の特殊数とを
定義している。
【0003】浮動小数点演算器でIEEE−754形式
を扱う場合、通常数のみが必ず入力されるようなフォー
マットに対応する演算器と異なり特殊数に対する特別な
対応が必要になる。すなわち、演算器に入力される複数
の数値データがそれぞれ通常数であるかまたはいずれか
の特殊数であるかを判別し、その結果どれか1つでも入
力数値データが特殊数に該当したり、また通常数同士の
演算であってもオーバーフローやアンダーフローのよう
な例外が発生する場合にはその結果に応じて演算器の出
力結果の数値データを正しい特殊数の数値データに置き
換える必要がある。また、「特開平4−281518
ディジタルシグナルプロセッサ」においては従来IEE
E−754形式を扱っていなかったディジタルシグナル
プロセッサにおいて、簡単なハードウェアによって外部
メモリ中に配置されたIEEE−754形式の数値デー
タを扱う方法が提示されている。
【0004】しかし、これはディジタルシグナルプロセ
ッサ内部の数値データ形式への変換する方法を示したも
のである。この中ではIEEE−754形式の特殊数を
ディジタルシグナルプロセッサ内部で用いられる2の補
数形式へと変換するハードウェア構成について述べられ
ているが、演算器自体がこれら特殊数をどのように扱う
かについてまでは触れられていない。
【0005】
【発明が解決しようとする課題】第1の問題点は、この
ようなIEEE−754形式を扱う浮動小数点演算器で
は演算器全体のハードウェア量が増大することである。
【0006】その理由は、入力される複数の数値データ
毎にその数値データがIEEE−754形式で定義され
るどの数値データの種類に該当するのか判別するハード
ウェアと、ここで得られた数値データの種類や、たとえ
それが通常数同士の演算であってもオーバーフローやア
ンダーフローの例外発生を起こす場合には演算器からの
出力結果の数値データを適切な特殊数の数値データで置
き換えるためのハードウェアが必要になるからである。
最近ではLSIの集積度が非常に高くなり、マイクロプ
ロセッサもスーパースカラやVLIWなどのアーキテク
チャをとると1チップに複数の浮動小数点演算器を搭載
することも珍しくなり、ハードウェア量増大の影響は非
常に深刻である。
【0007】第2の問題点は、演算器全体の処理時間が
増えることにより性能が低下することである。
【0008】その理由は、前記の第1の問題点の理由で
示した新たなハードウェアが必要になることから通常の
演算器での処理に加えてこれら追加ハードウェアでの処
理が必要になるからである。特に出力結果の数値データ
を置き換える処理は演算器内部の他の処理と並列に実行
することができないため、この部分での処理時間がその
まま増加することになる。クロックサイクルの高速化を
行うに際し、このような演算器の処理時間増大は大きな
影響を与えることは明かである。
【0009】本発明では、前記のような問題点を解決
し、IEEE−754形式の数値データを扱う浮動小数
点演算処理装置で、特に特殊数を扱う際のハードウェア
量削減並びに演算処理時間の短縮が可能な浮動小数点演
算処理装置を提供することを目的とする。
【0010】
【課題を解決するための手段】本発明における浮動小数
点演算処理装置は、少なくとも1つ以上の浮動小数点演
算器と、前記浮動小数点演算器への入力データと前記浮
動小数点演算器からの出力データとを記憶する記憶装置
と、少なくとも1つ以上の前記記憶装置から前記浮動小
数点演算器への入力データを読み出す手段と、前記読み
出し手段と前記浮動小数点演算器との間で前記読み出し
データを転送する1つ以上の経路と、少なくとも1つ以
上の前記浮動小数点演算器から前記記憶装置へ出力デー
タを書き戻す手段と、前記浮動小数点演算器と前記書き
戻し手段との間で書き戻しデータを転送する1つ以上の
経路とを備え、前記記憶装置から前記浮動小数点演算器
へのデータを読み出す手段において読み出しデータが予
め定められた浮動小数点形式の特定のデータの種類と一
致することを検出しその状態を前記読み出しデータとは
別のデータとして出力する手段と、前記特定のデータの
種類を表すデータを入力とする演算結果を同様の特定の
データの種類を表すデータで出力する手段と、前記浮動
小数点演算器の出力データを前記記憶装置に書き戻す手
段において前記特定のデータの種類を表すデータを出力
する手段より得られるデータに応じて前記浮動小数点演
算器の出力データを前記特定のデータに置き換える手段
とを新たに加えることにより構成される。
【0011】
【作用】浮動小数点演算器に入力される数値データは、
本発明の浮動小数点演算処理装置の外部の記憶装置から
データを読み出し演算器へと供給する手段においてIE
EE−754形式の通常数かそれとも特定の特殊数に該
当するかを同時に検出してこれらの特定の種類を表すフ
ラグ信号を数値データに付加する。
【0012】また、本発明の浮動小数点演算処理装置か
ら外部の記憶装置に数値データを書き戻す手段において
IEEE−754形式の特定の特殊数を表すフラグ信号
から実際に書き戻す数値データを正しいデータパターン
に置き換える。
【0013】本発明の浮動小数点演算装置内の各浮動小
数点演算器は入力される数値データとそれに付随するフ
ラグ信号とを見て、フラグ信号が特殊数を表していた場
合にはこの入力フラグ信号から組み合わせ論理回路によ
り出力結果の数値データの特殊数を表すフラグ信号を生
成する。この際に演算器から実際に出力される数値デー
タは無視することにする。本発明の浮動小数点演算装置
内ではこのフラグ信号を常に数値データとともに転送す
ることで、各演算器において特殊数を検出するハードウ
ェアや出力を置き換えるハードウェアを不要にすること
ができる。
【0014】
【発明の実施の形態】次に、本発明の実施形態について
図面を参照して説明する。
【0015】図1はIEEE−754形式の倍精度にお
けるフォーマットとその際の特殊数の種類を表すデータ
パターンを表した図である。
【0016】IEEE−754形式の倍精度では、符号
1ビット、指数11ビット、仮数52ビットからなる。
そして指数と仮数の特定のデータパターンにより零(Z
ERO)、無限大(∞)、2種類の非数(sNaN、q
NaN)、微小固定小数点数(denormal)の計
5種類の特殊数が規定される。なお、これらの特殊数以
外の数を通常数(normal)と呼ぶ。
【0017】図2は、このようなIEEE−754形式
を扱う従来の浮動小数点演算器の例を示すブロック図で
ある。
【0018】2つの入力オペランドデータ200,20
1を入力とする浮動小数点演算器(演算器本体)240
以外に、それぞれの入力オペランドデータ200,20
1が特殊数のいずれかのデータパターンに一致するかど
うかを検出し、それを適当な形式のフラグ信号(以下、
オペランドステータスとする)210,211を生成す
るオペランドステータス生成回路251,252があ
る。浮動小数点演算器(演算器本体)240の出力はア
ンダーフローやオーバーフロー時の例外処理を行う例外
処理回路260へ送られる。一方、オペランドステータ
ス210,211はその状態に応じて出力データのオペ
ランドステータス230を決定するための簡単な組み合
わせ論理回路である出力ステータス生成回路270へ送
られる。例外処理回路260を通った出力データ220
は、この出力データ220のオペランドステータス23
0が特殊数を示していた場合にはその種類に応じたデー
タパターンに置き換えられる必要がある。これを行うの
が出力差し替え回路280である。
【0019】図3はこのような浮動小数点演算器を構成
するオペランドステータス生成回路251又は252の
詳細を説明するブロック図である。
【0020】オペランドステータス生成回路251又は
252は、入力オペランドデータ300が特殊数のデー
タパターン301,302,303,304,305と
一致するかどうかを検出する複数の比較器311,31
2,313,314,315と、それらの比較器31
1,312,313,314,315の出力から所望の
オペランド・ステータス330を生成するためのエンコ
ーダ320とから成っている。
【0021】また、図4は図2に示すような浮動小数点
演算器を構成する出力差し替え回路280の詳細を説明
するブロック図である。
【0022】出力差し替え回路280は、演算器からの
通常数の場合の出力データ400と各特殊数のデータパ
ターン401,402,403,404,405を入力
とする選択回路430と、差し替えられる出力データの
オペランド・ステータス410から選択回路430の切
り替え制御信号を生成するデコーダ420とから成って
いる。
【0023】以上のように、IEEE−754形式を扱
う従来の浮動小数点演算器は各演算器毎に入力オペラン
ドが特殊数であるかどうかを検出してはそれに応じて出
力データを差し替えるという構成を採っていた。
【0024】本発明における浮動小数点演算処理装置で
はオペランドと同時にオペランドステータスを装置内で
持ち回ることにより特殊数の場合の処理の簡単化を行
う。
【0025】図5が、本発明の実施形態に係る浮動小数
点演算処理装置内の各浮動小数点演算器の構成を示すブ
ロック図である。
【0026】複数の入力オペランド500,501によ
り演算を行い出力オペランド520を生成する演算器本
体540と、各入力オペランド500,501に付随す
る入力オペランド・ステータス510,511と演算器
本体540の出力オペランド520を入力として出力オ
ペランド520のオペランド・ステータスを生成するた
めの組み合わせ論理回路である出力オペランドステータ
ス生成回路570とから構成される。
【0027】入力オペランドステータスの少なくとも一
方が特殊数のステータスを表していた場合には、出力オ
ペランドステータスは予め規定されているルールに従っ
ていずれかの特殊数のステータスを出力する。また、入
力オペランドステータスがいずれも通常数である場合で
も、演算器本体540の出力オペランド520によって
はアンダーフローやオーバーフローが発生することがあ
る。IEEE−754ではアンダーフロー時の出力はZ
EROとなるよう規定されており、またオーバーフロー
時には丸めモードに応じて∞か通常数で採り得る最大の
値のいずれかを出力するように規定されている。従っ
て、出力オペランドステータス生成回路570は出力オ
ペランド520も入力として前記のような例外が発生し
た場合には適切な出力オペランドステータスを出力する
ように論理回路を構成する。
【0028】なお、オーバーフロー時に出力される可能
性のある通常数の採り得る値の中で最も大きな値(以
下、最大数)は本来特殊数ではないが例外時に出力され
ること、及び特定のデータパターンになることを考慮し
て、5種類の特殊数のオペランドステータス以外に通常
数以外のオペランドステータスとして追加することが充
分理にかなっていることは明かである。
【0029】図6は、本発明における浮動小数点演算処
理装置全体の一実施形態を表すブロック図である。
【0030】特に、整数演算処理系と浮動小数点演算処
理系とが分離したマイクロプロセッサの浮動小数点演算
処理系に応用した例である。
【0031】データ読み出しポート641,642とデ
ータ書き込みポート643を有する浮動小数点レジスタ
ファイル(RF)640と、ステータス読み出しポート
646,647とステータス書き込みポート648を有
する浮動小数点ステータスレジスタファイル(RF)6
45と、浮動小数点演算器650と出力オペランドステ
ータス生成回路655と、図面外の記憶装置との間でデ
ータの入出力を行うLOAD/STOREユニット66
0とで構成され、それぞれの構成単位はオペランドデー
タバス601,602,621とオペランドステータス
バス611,612,631とで相互に接続されてい
る。
【0032】本実施形態に係る浮動小数点演算処理装置
の動作を図を用いて説明する。
【0033】浮動小数点レジスタファイル(RF)64
0には複数の浮動小数点データが蓄えられている。一
方、各々の浮動小数点データに対するオペランドステー
タスが、浮動小数点ステータスレジスタファイル(R
F)645の中に浮動小数点レジスタファイル(RF)
640のアドレスと同一のアドレスに蓄えられている。
浮動小数点レジスタファイル(RF)640中から必要
なデータを、図面外の命令処理系から与えられるアドレ
スにより読み出しポート641,642に出力する。こ
の際、同一のアドレスが浮動小数点ステータスレジスタ
ファイル(RF)645にも与えられ、各々のデータに
対応したオペランドステータスが読み出しポート64
6,647に出力される。オペランドデータは浮動小数
点レジスタファイル640の読み出しポート641,6
42よりオペランドデータバス601,602に出力さ
れ、これらのオペランドデータを必要とする他の処理要
素へと転送される。同時にオペランドステータスも浮動
小数点ステータスレジスタファイル645の読み出しポ
ート646,647よりオペランドステータスバス61
1,612に出力され転送される。
【0034】浮動小数点演算器650は、オペランドデ
ータバス601,602より必要なオペランド651,
652を獲得し、演算結果653を出力する。これと同
時に出力オペランドステータス生成回路655は浮動小
数点演算器650への入力オペランド651,652に
付随してオペランドステータスバス611,612上に
ある各々のオペランドステータス656,657を獲得
し、浮動小数点演算器650の出力オペランド653の
例外検出も行いながら、この出力オペランド653に付
随すべきオペランドステータス658を生成する。出力
オペランド653と出力されたオペランドステータス6
58は、それぞれオペランドデータバス621、オペラ
ンドステータスバス631に出力され他の処理要素へと
転送される。
【0035】通常は再びレジスタファイルへと書き戻さ
れる場合が多く、オペランドデータは浮動小数点レジス
タファイル(RF)640の書き込みポート643から
書き戻され、オペランドステータスは書き戻された浮動
小数点レジスタファイル(RF)640のアドレスと同
一の浮動小数点ステータスレジスタファイル(RF)6
45中のアドレスに書き込みポート648から書き戻さ
れる。
【0036】このように、本実施形態の浮動小数点演算
処理装置内では、オペランドデータにそのデータの種類
を示すオペランドステータスを付随して転送することで
各演算器が持っていた機能を省いている。しかし、本実
施形態の浮動小数点演算処理装置外とデータのアクセス
を行う場合には、本来のIEEE−754形式に準拠し
たデータとする必要がある。この役割をLOAD/ST
OREユニット660が担当する。
【0037】図7は、LOAD/STOREユニット6
60(図6参照)の詳細を表すブロック図である。
【0038】LOAD/STOREユニット660(図
6参照)は、外部の記憶装置にアクセスするための実行
アドレスを生成するためのアドレス加算器750と論理
アドレスから物理アドレスへの変換を行うテーブルであ
るTLB(Translation Lookasid
e Buffer)760と、書き戻しデータをIEE
E−754形式に準拠させるためのオペランド差し替え
回路770と、読み込みデータから本実施形態の浮動小
数点演算処理装置内で使用するためのオペランドステー
タスを生成するステータス生成回路780と外部メモリ
に対して書き込みデータを出力するのか、それとも読み
出しデータを入力するのかメモリアクセスパス740を
切り替えるためのスイッチ790とから成る。
【0039】次に、このLOAD/STOREユニット
660(図6参照)の動作を説明する。
【0040】本実施形態の浮動小数点演算処理装置外の
整数演算処理系より実行アドレス算出のためのオペラン
ドデータ700,701が入力される。アドレス加算器
750にてこれらのオペランドデータ700,701の
加算を行い実行論理アドレスを得る。実際の外部メモリ
にアクセスするためには論理アドレスを物理アドレスに
変換する必要がある。このためアドレス加算器750に
出力の一部を用いてTLB760をアクセスして物理ア
ドレス730を得る。なお、本実施形態のマイクロプロ
セッサではこのような論理アドレスから物理アドレスへ
の変換を必要としているためにこのような構成を採用し
ているが、例えばディジタルシグナルプロセッサのよう
に論理アドレスを持たない場合には、本実施形態に記載
のTLB760は必要ないことは明かである。
【0041】一方、データ系の処理としてデータ書き戻
しの際の動作をまず説明する。
【0042】通常書き戻しデータはそのままメモリアク
セスパス740に出力すればよいが、本実施形態の浮動
小数点演算処理装置ではIEEE−754形式の特殊数
をオペランドステータスとして表し、実際のデータパタ
ーンには正しい値が設定されていない。従ってこのまま
データだけを書き戻すことはできないため、オペランド
ステータス711の値によって書き戻しデータ710の
データパターンを適切なものに差し替えるオペランド差
し替え回路770が必要である。このオペランド差し替
え回路770は、従来の各浮動小数点演算器の出力部の
存在した回路とほぼ同一の構成を採ることで実現可能で
あり、例えば図4にて示した構成などが利用できる。
【0043】次に、データ読み出しの際の動作を説明す
る。
【0044】読み出しデータも通常数の場合には特に問
題にならないが、特殊数のデータを読み出した場合、本
発明の浮動小数点演算処理装置内ではオペランドステー
タスが存在しないと特殊数を認識することができない。
従って、読み出し(Read)データ720のデータパ
ターンを調べて特殊数であった場合には、同時に適切な
オペランドステータス721を出力するステータス生成
回路780が必要になる。このステータス生成回路78
0も従来の浮動小数点演算器の入力部に存在した回路と
ほぼ同一の構成を採ることで実現可能であり、例えば図
3にて示した構成などが利用できる。
【0045】図6に示した本発明の一実施形態に戻って
説明をすると、LOAD/STOREユニット660よ
り外部メモリにデータを書き戻す場合には、オペランド
データバス601より書き戻しデータ661を、オペラ
ンドステータスバス611よりそのデータに付随するオ
ペランドステータス666をLOAD/STOREユニ
ット660へ転送し、前記の動作に従ってオペランドの
差し替えを行った後メモリアクセスパス680を用いて
外部メモリへ書き戻される。LOAD/STOREユニ
ット660へ入力されるオペランドデータ661とオペ
ランドステータス666は直接浮動小数点レジスタファ
イル(RF)640と浮動小数点ステータスレジスタフ
ァイル(RF)645から転送されてくる場合が多い。
【0046】一方、外部メモリよりデータを読み出す場
合には、メモリアクセスパス680より入力されたデー
タをLOAD/STOREユニット660内にて前記の
動作に従ってオペランドデータ663とそれに付随する
オペランドステータス668を生成する。そして、それ
ぞれオペランドデータバス621とオペランドステータ
スバス631により他の構成要素に転送される。これら
のデータとステータスはそのまま浮動小数点レジスタフ
ァイル(RF)640と、浮動小数点レジスタファイル
に書き込んだアドレスと同一の浮動小数点ステータスレ
ジスタファイル(RF)645のアドレスに書き込まれ
る場合が多い。
【0047】このように本実施形態では、従来各演算器
毎に個別に行っていた特殊数に対する処理を、各オペラ
ンドデータにオペランドステータス信号を付加すること
で不要にし、本実施形態の浮動小数点演算処理装置外と
データのアクセスを行う部分に前記の特殊数に対する処
理を一括化することでハードウェアの削減、処理の簡単
化を行っている。
【0048】次に、前記の一実施形態を一般化した例を
図8に示す。
【0049】演算器をn個850−1,…,850−
n、各演算器の出力オペランドステータス決定論理回路
855−1,…,855−n、LOAD/STOREユ
ニットをm個860−1,…,860−mとする。ま
た、オペランドデータバスを多重化801−1,…,8
01−u,802−1,…,802−u,821−1,
…,821−vとし、各々のオペランドステータスバス
811−1,…,811−u,812−1,…,812
−u,831−1,…,831−vもオペランドデータ
バスに合わせて多重化する。当然のことながら、同時に
複数のデータを多重化バスにのせて各処理要素間に転送
するために浮動小数点レジスタファイル(RF)840
と浮動小数点ステータスレジスタファイル(RF)84
5もマルチポート化されている。
【0050】基本的な動作は、図6にて説明した動作と
同一であり、同時に異なる複数のデータが転送され、そ
れぞれ異なる演算処理が複数の処理要素にて実行される
ことになる。
【0051】なお、図8において各処理要素であるレジ
スタファイルと演算器、LOAD/STOREユニット
間を多重化バス構成で接続しているが、もちろんこの接
続方法だけに限られることはなく、レジスタファイルの
各ポートと特定の処理要素を直接接続する構成や、逆に
自由に接続先を変更できるクロスバー構成とするなどの
変形が可能なことは明かである。
【0052】このような変形例の一例を図9に示す。
【0053】演算器#1(950−1)と演算器#2
(950−2)の2つの演算器を持つ。出力オペランド
ステータス決定論理回路も各演算器対応で2つ955−
1,955−2存在する。各演算器の入力オペランド部
にはオペランドデータバスからのオペランドと他方の演
算器の出力オペランドとの入力を切り替える選択回路9
91−1,992−1,及び991−2,992−2が
存在する。対応する出力オペランドステータス決定回路
955−1,955−2の入力部にも同様な選択回路9
96−1,997−1,及び996−2,997−2が
存在する。
【0054】一方の演算器の出力を他方の演算器ですぐ
に使用したい場合に、一度バス経由でレジスタファイル
に書き戻すのではなく、選択回路を切り替えて他方の演
算器の出力オペランドを直接入力して処理時間の短縮を
はかる構成である。このような場合にも、オペランドデ
ータと同時にオペランドステータスも直接入力するパス
とそのための選択回路を設けることで本発明を適用する
ことが可能である。
【0055】なお、実施例においてレジスタファイルを
有する構成を主に説明したが、本発明においてレジスタ
ファイルの存在は必須ではないのは明かである。外部と
のアクセスを実行する処理要素と実際の演算を行う処理
要素とがあれば本発明の適用は可能である。
【0056】また逆に、本実施形態の浮動小数点演算処
理装置内に含まれる記憶装置としてはレジスタファイル
のみに限られるものではないことも明かである。特にア
クセス速度を速くする必要がある同一マイクロプロセッ
サ内に集積される一次データキャッシュなどは、本発明
の実施例によるLOAD/STOREユニットにおける
付加回路による若干の遅延時間増が問題になるようであ
れば、一次データキャッシュにもステータス信号を同時
に記録する領域を設けることで本発明の適用が可能にな
る。
【0057】また、上記実施形態では各演算器への入力
オペランドのいずれか1つでも特殊数を表すステータス
を持っていたならば、事実上ステータス信号のみが有効
であり演算器への実際の入力オペランドデータ、及びこ
れらの演算結果である出力オペランドデータは全て無効
なデータとして無視されることになる。従って、無効な
データに対する無駄な演算を行わないようにしようとす
る構成も可能で、図示はしていないが例えば、出力オペ
ランドステータス決定論理回路より入力の一方が特殊数
であった場合に演算器本来へのクロック供給を止めた
り、演算供給本体内の全F/Fをホールド状態にするな
どの制御信号を発行することで無駄な演算の実行を停止
して低消費電力化をはかる構成も可能である。
【0058】
【発明の効果】第1の効果は、IEEE−754形式を
扱う浮動小数点演算器のハードウェア量を削減すること
ができるということである。これにより、IEEE−7
54形式を扱う浮動小数点演算器のLSI上での実装面
積が減少しマイクロプロセッサ等の集積度を向上させる
ことができるようになる。
【0059】その理由は、従来各浮動小数点演算器で持
っていたハードウェアの一部を本発明の浮動小数点演算
処理装置の外部にある記憶装置とのインタフェース部分
に集約して各浮動小数点演算器から削減したからであ
る。この効果は、スーパースカラプロセッサやVLIW
プロセッサ、画像処理用の並列演算プロセッサなどの複
数の浮動小数点演算器を1チップに内蔵する場合により
顕著になる。
【0060】第2の効果は、IEEE−754形式を扱
う浮動小数点演算器の処理時間を短縮することができる
ということである。これにより、IEEE−754形式
を扱う浮動小数点演算器のパイプライン段数の削減やク
ロックサイクルの高速化が可能になりマイクロプロセッ
サ等の性能を向上させることができるようになる。
【0061】その理由は、浮動小数点演算器の処理と並
列に処理することができないIEEE−754形式の特
殊数のデータパターンに対する置き換え処理を各浮動小
数点演算器から削除し、本発明の浮動小数点演算処理装
置の外部にある記憶装置へと数値データ書き戻す部分に
集約したからである。これは、一般にクロックサイクル
の3倍程度で浮動小数点演算処理が完了するのに対し
て、外部の記憶装置にデータのアクセスを行う場合には
クロックサイクルの数倍から数十倍の処理時間が必要で
あるためこの部分でのわずかな処理時間の増大はマイク
ロプロセッサ全体の処理性能にほとんど影響がないため
に可能である。
【図面の簡単な説明】
【図1】IEEE−754形式フォーマット(倍精度)
と、特定のデータの種類を表すデータパターンを説明す
る図である。
【図2】従来の浮動小数点演算器を説明するブロック図
である。
【図3】オペランドステータスを生成するブロックの詳
細を説明する図である。
【図4】浮動小数点演算器の出力結果をオペランドステ
ータスにより差し替えるブロックの詳細を説明する図で
ある。
【図5】本発明の一実施形態における浮動小数点演算器
を説明する図である。
【図6】本発明をレジスタファイルを有するマイクロプ
ロセッサに適用した一実施形態を示すブロック図であ
る。
【図7】図6中のLOAD/STOREユニットの詳細
を説明する図である。
【図8】図6の変形実施形態で、複数の接続経路を有す
る実施形態を示すブロック図である。
【図9】図6の変形実施形態で、複数の浮動小数点演算
器間に相互接続経路を有する実施形態を示すブロック図
である。
【符号の説明】
210 Xオペランドステータス信号 211 Yオペランドステータス信号 251 Xオペランドステータス生成回路 252 Yオペランドステータス生成回路 510 入力オペランドステータスX 511 入力オペランドステータスY 570 出力オペランドステータス決定論理回路 640 浮動小数点データレジスタファイル 641 浮動小数点データレジスタファイル読み出し
ポート1 642 浮動小数点データレジスタファイル読み出し
ポート2 643 浮動小数点データレジスタファイル書き込み
ポート 645 浮動小数点ステータスレジスタファイル 646 浮動小数点ステータスレジスタファイル読み
出しポート1 647 浮動小数点ステータスレジスタファイル読み
出しポート2 648 浮動小数点ステータスレジスタファイル書き
込みポート 650 浮動小数点演算器本体 651 浮動小数点演算器入力オペランドデータ1 652 浮動小数点演算器入力オペランドデータ2 653 浮動小数点演算器出力オペランドデータ 655 浮動小数点演算器出力オペランドステータス
決定論理回路 656 浮動小数点演算器入力オペランドステータス
1 657 浮動小数点演算器入力オペランドステータス
2 658 浮動小数点演算器出力オペランドステータス 660 LOAD/STOREユニット 661 STOREオペランドデータ 663 LOADオペランドデータ 666 STOREオペランドステータス 668 LOADオペランドステータス 680 メモリアクセスポート 801−1 浮動小数点オペランドデータバス1#1 801−u 浮動小数点オペランドデータバス1#u 802−1 浮動小数点オペランドデータバス2#1 802−u 浮動小数点オペランドデータバス2#u 811−1 浮動小数点オペランドステータスバス1
#1 811−u 浮動小数点オペランドステータスバス1
#u 812−1 浮動小数点オペランドステータスバス2
#1 812−u 浮動小数点オペランドステータスバス2
#u 821−1 浮動小数点オペランドデータバス3#1 821−v 浮動小数点オペランドデータバス3#v 831−1 浮動小数点オペランドステータスバス3
#1 831−v 浮動小数点オペランドステータスバス3
#v 840 マルチポート浮動小数点データレジスタファ
イル 845 マルチポート浮動小数点ステータスレジスタ
ファイル 850−1 浮動小数点演算器本体#1 850−n 浮動小数点演算器本体#n 855−1 演算器#1用出力オペランドステータス
決定論理回路 855−n 演算器#n用出力オペランドステータス
決定論理回路 860−1 LOAD/STOREユニット#1 860−m LOAD/STOREユニット#m 950−1 浮動小数点演算器本体#1 950−2 浮動小数点演算器本体#2 953−1 浮動小数点演算器#1出力オペランドデ
ータ 953−2 浮動小数点演算器#2出力オペランドデ
ータ 955−1 演算器#1用出力オペランドステータス
決定論理回路 955−2 演算器#2用出力オペランドステータス
決定論理回路 958−1 演算器#1用出力オペランドステータス 858−2 演算器#2用出力オペランドステータス 991−1 演算器#1用Xオペランドデータ入力選
択回路 991−2 演算器#2用Xオペランドデータ入力選
択回路 992−1 演算器#1用Yオペランドデータ入力選
択回路 992−2 演算器#2用Yオペランドデータ入力選
択回路 996−1 演算器#1用Xオペランドステータス入
力選択回路 996−2 演算器#2用Xオペランドステータス入
力選択回路 997−1 演算器#1用Yオペランドステータス入
力選択回路 997−2 演算器#2用Yオペランドステータス入
力選択回路

Claims (4)

    (57)【特許請求の範囲】
  1. 【請求項1】 少なくとも1つ以上の浮動小数点演算器
    と、前記浮動小数点演算器への入力データと前記浮動小
    数点演算器からの出力データとを記憶する記憶装置と、
    少なくとも1つ以上の前記記憶装置から前記浮動小数点
    演算器への入力データを読み出す手段と、前記読み出し
    手段と前記浮動小数点演算器との間で前記読み出しデー
    タを転送する1つ以上の経路と、少なくとも1つ以上の
    前記浮動小数点演算器から前記記憶装置へ出力データを
    書き戻す手段と、前記浮動小数点演算器と前記書き戻し
    手段との間で書き戻しデータを転送する1つ以上の経路
    と、を備える処理装置において、前記記憶装置から前記
    浮動小数点演算器へのデータを読み出す手段において読
    み出しデータが予め定められた浮動小数点形式の特定の
    データの種類と一致することを検出しその状態を前記読
    み出しデータとは別のデータとして出力する手段と、前
    記特定のデータの種類を表すデータを入力とする演算結
    果を同様の特定のデータの種類を表すデータで出力する
    手段と、前記浮動小数点演算器の出力データを前記記憶
    装置に書き戻す手段において前記特定のデータの種類を
    表すデータを出力する手段より得られるデータに応じて
    前記浮動小数点演算器の出力データを前記特定のデータ
    に置き換える手段とを備えることを特徴とする浮動小数
    点演算処理装置。
  2. 【請求項2】 前記浮動小数点演算器は複数の入力デー
    タを選択する手段を有し、演算結果の出力データを他の
    浮動小数点演算器の入力へ転送する経路と、前記出力デ
    ータの特定の種類を表す出力データを他の浮動小数点演
    算器の入力へ転送する経路とを有し、前記複数の浮動小
    数点演算器が前記経路によって相互に接続されたことを
    特徴とする請求項1記載の浮動小数点演算処理装置。
  3. 【請求項3】 前記データ読み出し手段からのデータ
    と、前記1つ以上の浮動小数点演算器からのデータと、
    を一時的に記憶する記憶装置と、前記読み出しデータの
    特定のデータの種類を表すデータと、前記書き戻しデー
    タの特定のデータの種類を表すデータと、を一時的に記
    憶する記憶装置とを備えることを特徴とする請求項1記
    載の浮動小数点演算処理装置。
  4. 【請求項4】 前記浮動小数点演算器において、入力デ
    ータの特定の種類を表すデータが有効なデータであった
    場合に通常の入力データによる演算の実行を停止する手
    段を有することを特徴とする請求項1記載の浮動小数点
    演算処理装置。
JP8067677A 1996-03-25 1996-03-25 浮動小数点演算処理装置 Expired - Fee Related JP2868075B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP8067677A JP2868075B2 (ja) 1996-03-25 1996-03-25 浮動小数点演算処理装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP8067677A JP2868075B2 (ja) 1996-03-25 1996-03-25 浮動小数点演算処理装置

Publications (2)

Publication Number Publication Date
JPH09258959A JPH09258959A (ja) 1997-10-03
JP2868075B2 true JP2868075B2 (ja) 1999-03-10

Family

ID=13351875

Family Applications (1)

Application Number Title Priority Date Filing Date
JP8067677A Expired - Fee Related JP2868075B2 (ja) 1996-03-25 1996-03-25 浮動小数点演算処理装置

Country Status (1)

Country Link
JP (1) JP2868075B2 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6904543B2 (en) 1999-12-24 2005-06-07 Denso Corporation Electronic control having floating-point data check function
JP4729770B2 (ja) * 2008-02-04 2011-07-20 エヌイーシーコンピュータテクノ株式会社 浮動小数点演算装置、浮動小数点演算器、特殊数判定回路故障検出方法及びプログラム

Also Published As

Publication number Publication date
JPH09258959A (ja) 1997-10-03

Similar Documents

Publication Publication Date Title
CA1184664A (en) Floating point addition architecture
JP2662196B2 (ja) 演算結果正規化方法及び装置
US8447800B2 (en) Mode-based multiply-add recoding for denormal operands
KR101020430B1 (ko) 동적 범위 조정 부동 소수점 실행 유닛
US8793294B2 (en) Circuit for selectively providing maximum or minimum of a pair of floating point operands
JPH06236257A (ja) データ・プロセッサにおいて浮動小数点実行ユニット内で後正規化を実行する方法および装置
JP2000235491A (ja) コンピュータ・プロセッサにおけるロード・エラーの処理
US20020133525A1 (en) Floating-point calculation apparatus
EP0529101B1 (en) Floating-point dividing circuit
US7613762B2 (en) Floating point remainder with embedded status information
US6249798B1 (en) Method, apparatus and computer system for directly transferring and translating data between an integer processing unit and a floating point processing unit
US20050223055A1 (en) Method and apparatus to correct leading one prediction
US5337265A (en) Apparatus for executing add/sub operations between IEEE standard floating-point numbers
JP2868075B2 (ja) 浮動小数点演算処理装置
JPS6227412B2 (ja)
US5752072A (en) Sorting scheme without compare and branch instructions
US4707783A (en) Ancillary execution unit for a pipelined data processing system
CN111290790B (zh) 一种定点转浮点的转换装置
US6065034A (en) Circuit and method employing an adder for sign extending operands
US20020198917A1 (en) Floating point adder with embedded status information
US7444367B2 (en) Floating point status information accumulation circuit
US7363337B2 (en) Floating point divider with embedded status information
WO2002097606A1 (en) Floating point multiplier with embedded status information
He et al. Multiply-add fused float point unit with on-fly denormalized number processing
US20020178199A1 (en) Floating point status information testing circuit

Legal Events

Date Code Title Description
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 19981125

LAPS Cancellation because of no payment of annual fees