JP3522387B2 - パイプライン演算装置 - Google Patents
パイプライン演算装置Info
- Publication number
- JP3522387B2 JP3522387B2 JP11323595A JP11323595A JP3522387B2 JP 3522387 B2 JP3522387 B2 JP 3522387B2 JP 11323595 A JP11323595 A JP 11323595A JP 11323595 A JP11323595 A JP 11323595A JP 3522387 B2 JP3522387 B2 JP 3522387B2
- Authority
- JP
- Japan
- Prior art keywords
- stage
- denormalization
- calculation
- circuit
- pipeline
- 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
Links
Landscapes
- Advance Control (AREA)
Description
り演算を行うパイプライン演算装置に係り、特に不正規
化数(denormalized number)の演算をサポートするパ
イプライン演算装置に関するものである。
化形式であらわすことのできない非常に小さな数値を表
現するための表現形式である。この不正規化数について
は、IEEE(The Institute of Electrical and Elec
tronics Engeneers, Inc:アメリカ電気・電子通信学
会)による2進浮動小数点演算についての規格IEEE
754−1985の中で「不正規化数(denormalized n
umber)とは、指数部が所定の値、通常フォーマットの
最小値、を有し、且つ明示的にまたは非明示的に上位の
有効数字ビットがゼロである非ゼロ浮動小数点数であ
る」と定義されている。
では、数値は、符号、適宜バイアスされた指数および有
効数字で構成され、これらがそれぞれ符号部、指数部お
よび仮数部に配置されて表現される。正規化形式では、
仮数部は、“1.…”という仮数の小数点以下の有効数字
で構成される。これに対して、“0.000…”というよう
に非常に小さく、前述の正規化形式であらわすことがで
きない数は、不正規化形式で表現される。不正規化形式
では、指数部がゼロ、仮数部の上位ビットもゼロとして
表現される。
数の場合正規化数では、次のようにあらわされる。指数
部は、1〜2046(指数部をeとすると0<e<2047)であり、
バイアス値が1023であるので、-1022〜+1023に相当す
る。仮数部は、前述のように仮数の小数点以下の値であ
る。したがって、このような正規化数で表現することが
できない数値、すなわち2-1022以下の数値を表現するの
に不正規化数が用いられる。
的には、演算装置では不正規化数の演算はサポートされ
ていない。不正規化数の演算は、本来、より精度の高い
演算の実現には必要な機能である。それにもかかわら
ず、演算装置で不正規化数の演算処理がサポートされて
いないのは、不正規化数の演算処理をサポートするため
に、余分なハードウェアが必要であり、しかも演算に長
時間が必要となることが原因である。
ライン演算装置の通常考えられる一例の構成を示してい
る。図7に示すパイプライン演算装置は、第1の正規化
回路1A、第2の正規化回路1B、第1の演算回路2、
第2の演算回路3および不正規化回路4を有する。これ
ら各部の入出力側には、入出力を一旦保持するラッチL
1A,L1B,L2A,L2B,L3,L4およびL5
が設けられている。
SBは、演算に供される数、すなわち被演算数であり、
これら第1および第2のソースデータSAおよびSBは
ラッチL1AおよびL1Bに一旦保持される。
SBとして、毎サイクル、演算すべきデータが与えら
れ、パイプライン演算装置は、それら第1および第2の
ソースデータSAおよびSBに対して演算を行って、結
果を出力する。
処理は、フェッチステージ(第1段)、正規化ステージ
(第2段)、第1の演算ステージ(第3段)、第2の演
算ステージ(第4段)、不正規化ステージ(第5段)、
およびライトステージ(第6段)の6段のパイプライン
からなる。
ァイルなどの外部の回路からデータを受け取り、ラッチ
L1AおよびL1Bに格納する。第2段の正規化ステー
ジで、正規化回路1Aおよび1Bにより、各入力データ
の仮数部を例えば左シフトすることにより、入力データ
が不正規化数である場合に、仮数を正規化して、指数を
補正した結果を、ラッチL2AおよびL2Bに出力す
る。このとき、入力データが正規化数であれば、正規化
処理によってもデータが変化せず入力データがそのまま
ラッチL2AおよびL2Bに出力される。
算ステージで、第1および第2の演算回路2および3に
より、加算、乗算等の実際の演算を行う。このとき、第
3段の第1の演算ステージの第1の演算回路2による演
算結果が第1の中間結果としてラッチL3に格納され、
第4段の第2の演算ステージの第2の演算回路3による
演算結果が第2の中間結果としてラッチL4に格納され
る。
路4により、第1および第2の演算回路2および3によ
る演算結果である第2の中間結果の仮数部を例えば右シ
フトすることにより、該第2の中間結果を不正規化する
必要がある場合に、不正規化し、最終出力としてラッチ
L5に出力する。このとき、前記第2の中間結果データ
が正規化数であれば、不正規化処理は行われず、前記第
2の中間結果データがそのまま最終出力としてラッチL
5に出力される。を行う。
に保持される演算最終結果をレジスタファイルなどへの
書き込むことにより、外部に出力する。このように、不
正規化数をサポートする場合、正規化数だけをサポート
する場合に比べて、正規化ステージおよび不正規化ステ
ージの2つのステージが余分に必要となる。
プライン演算装置において、不正規化数をサポートする
ためには、正規化回路1A、1Bおよび不正規化回路4
による正規化ステージおよび不正規化ステージの2つの
ステージが余分に必要となるなど、余分なハードウェア
が必要であり、しかも演算に長時間が必要となる。
不正規化数の演算を可能とすることが必要であるが、通
常の演算においては、不正規化数はほとんどあらわれな
い。したがって、このように極めてまれにしかあらわれ
ない不正規化数の演算をサポートするために、不正規化
数のあらわれない通常の演算の演算時間も長くなってし
まうことは、結果として、パイプライン演算装置の性能
の低下につながる。
になされたもので、不正規化数の演算をサポートして、
しかも通常の演算の演算時間にはほとんど悪影響がな
い、高性能のパイプライン演算装置を提供することを目
的としている。
プライン演算装置は、入力データが不正規化数であるこ
とを検出する不正規化数検出手段と、前記不正規化数検
出手段により不正規化数が検出された場合に、該入力デ
ータを正規化する正規化手段と、正規化数である場合の
入力データおよび前記正規化手段により正規化された入
力データの少なくともいずれかを用いて演算を行い所要
の演算の第1の中間結果を得る第1の演算手段と、前記
第1の演算手段で得られる前記第1の中間結果より、前
記所要の演算の最終演算結果が不正規化数となることを
予測する不正規化予測手段と、前記第1の演算手段で得
られる前記第1の中間結果に基づく演算を行って、不正
規化数でなければ最終演算結果となるべき前記所要の演
算の第2の中間結果を得るための第2の演算手段と、前
記不正規化予測手段で、不正規化数と予測された場合、
前記第2の演算手段で得られる前記第2の中間結果に不
正規化処理を施して前記所要の演算の最終演算結果とす
る不正規化手段とを具備することを特徴としている〔請
求項1〕。
終演算結果が不正規化数となる可能性が高いことを予測
する手段であってもよい〔請求項2〕。本発明に係る第
2のパイプライン演算装置は、パイプラインの動作を制
御するパイプライン制御手段と、入力データが不正規化
数であることを検出する不正規化数検出手段と、前記不
正規化数検出手段により不正規化数が検出された場合
に、後続の命令がパイプラインに投入されるのを前記パ
イプライン制御手段によりインタロックさせ、且つ該入
力データを正規化する正規化手段と、正規化数である場
合の入力データおよび前記正規化手段により正規化され
た入力データの少なくともいずれかを用いて演算を行い
所要の演算の第1の中間結果を得る第1の演算手段と、
前記第1の演算手段で得られる前記第1の中間結果よ
り、前記所要の演算の最終演算結果が不正規化数となる
ことを予測する不正規化予測手段と、前記第1の演算手
段で得られる前記第1の中間結果に基づく演算を行っ
て、不正規化数でなければ最終演算結果となるべき前記
所要の演算の第2の中間演算結果を得るための第2の演
算手段と、前記不正規化予測手段で、不正規化数と予測
された場合、前記第2の演算手段で得られる前記第2の
中間結果に不正規化処理を施して前記所要の演算の最終
演算結果とする不正規化手段とを具備することを特徴と
している〔請求項3〕。
終演算結果が不正規化数となる可能性が高いことを予測
する手段であってもよい〔請求項4〕。前記不正規化手
段は、第2の演算手段で得られる第2の中間結果に対し
て、直接に丸め処理を行わず、次のステージにおいて、
パイプライン制御手段により、後続の命令の実行をイン
タロックして、丸め前の前記第2の中間結果と丸めに必
要な情報とを用いて不正規化および丸め処理を行う手段
を含んでいてもよい〔請求項5〕。
られる第2の中間結果に対して、直接に丸め処理を行わ
ず、丸め前の前記第2の中間結果と丸めに必要な情報と
を格納する格納手段と、前記格納手段により丸め前の前
記第2の中間結果と丸めに必要な情報とを格納した状態
で割り込みを生起し、ソフトウェア処理による不正規化
および丸め処理を行わせる制御手段とを含んでいてもよ
い〔請求項6〕。
は、命令およびデータの少なくとも一方の取り込みのた
めのフェッチステージ、第1の中間結果を得る演算のた
めの第1の演算ステージ、第2の中間結果を得る演算の
ための第2の演算ステージおよび演算の最終結果の出力
のためのライトステージの4つのステージを有するパイ
プラインの動作を制御するパイプライン制御手段と、前
記第1の演算ステージにおいて、入力データが不正規化
数であることを検出する不正規化数検出手段と、前記不
正規化数検出手段により不正規化数が検出された場合
に、前記フェッチステージにおいて後続の命令がパイプ
ラインに投入されるのを前記パイプライン制御手段によ
りインタロックさせ且つ前記入力データを正規化して前
記フェッチステージにて入力する正規化手段と、前記第
1の演算ステージにおいて、正規化数である場合の入力
データおよび前記正規化手段により正規化された入力デ
ータの少なくともいずれかを用いて演算を行い所要の演
算の第1の中間結果を得る第1の演算手段と、前記第1
の演算手段で得られる前記第1の中間結果より、前記第
2の演算ステージにおいて、前記所要の演算の最終演算
結果が不正規化数となることを、予測する不正規化予測
手段と、前記第2の演算ステージにおいて、前記第1の
演算手段で得られる前記第1の中間結果に基づく演算を
行って、不正規化数でなければ最終演算結果となるべき
前記所要の演算の第2の中間演算結果を得るための第2
の演算手段と、前記不正規化予測手段で、不正規化数と
予測された場合、前記ライトステージにおいて、前記第
2の演算手段で得られる前記第2の中間結果に不正規化
処理を施して、前記第2の演算手段の出力に代えて前記
所要の演算の最終演算結果とする不正規化手段とを具備
することを特徴としている〔請求項7〕。
終演算結果が不正規化数となる可能性が高いことを予測
する手段であってもよい〔請求項8〕。前記不正規化手
段は、第2の演算ステージにおいて第2の演算手段で得
られる第2の中間結果に対して、直接に丸め処理を行わ
ず、次のステージにおいて、パイプライン制御手段によ
り、後続の命令の実行をインタロックして、丸め前の前
記第2の中間結果と丸めに必要な情報とを用いて不正規
化および丸め処理を行う手段を含んでいてもよい〔請求
項9〕。
作し得る複数の演算手段を有し且つパイプライン制御手
段は、後続の命令をインタロックする際に、同期して動
作している他の演算手段に対しても後続命令をインタロ
ックするようにしてもよい〔請求項10〕。
データから不正規化数を検出し、不正規化数が検出され
た場合に、該入力データを正規化してから演算を行うと
ともに、その演算の中間結果より、演算結果が不正規化
数となるか否かを予測し、演算結果が不正規化数となる
と予測された場合にのみ、演算結果に不正規化処理を施
すようにするので、不正規化数の演算が可能となり、し
かも通常の演算の演算時間にはほとんど悪影響がない。
実施例を図面を参照して説明する。
による原理的なパイプライン演算装置の構成を示してい
る。
正規化数検出回路11A、第2の不正規化数検出回路1
1B、第1の正規化回路12A、第2の正規化回路12
B、第1の演算回路13、第2の演算回路14、不正規
化予測回路15、不正規化回路16、パイプライン制御
回路17およびオア回路18を備えている。さらに、図
1のパイプライン演算装置は、第1、第2、第3および
第4のラッチL11A、L11B、L12およびL1
3、ならびに第1、第2および第3のセレクタS11
A、S11BおよびS12を有している。
11Bは、それぞれこのパイプライン演算装置による演
算に供される入力を保持するためのラッチである。第3
のラッチL12は、第1の演算回路13の演算結果であ
る第1の中間結果を保持するためのラッチである。第4
のラッチL13は、第2の演算回路14の演算結果であ
る第2の中間結果を保持するためのラッチである。
のラッチL11Aに保持されたデータが不正規化数であ
ればそれを検出する。第1の不正規化数検出回路11A
が不正規化数を検出すると、該不正規化数のデータを第
1の正規化回路12Aに出力する。同様に、第2の不正
規化数検出回路11Bは、第2のラッチL11Bに保持
されたデータが不正規化数であればそれを検出する。第
2の不正規化数検出回路11Bが不正規化数を検出する
と、該不正規化数のデータを第2の正規化回路12Bに
それぞれ出力する。第1および第2の不正規化数検出回
路11Aおよび11Bは、不正規化数を検出すると、そ
の旨の検出信号をオア回路18を介してパイプライン制
御回路17に与える。
化数検出回路11Aで検出された不正規化数に正規化処
理を施し、正規化数として第1のセレクタS11Aに与
える。第2の正規化回路12Bは、第2の不正規化数検
出回路11Bで検出された不正規化数に正規化処理を施
し、正規化数として第2のセレクタS11Bに与える。
びS11Bは、パイプライン制御回路17により制御さ
れて、第1および第2のソースデータSAおよびSBと
第1および第2の正規化回路12Aおよび12Bの出力
とのいずれか一方を選択して第1および第2のラッチL
11AおよびL11Bに供給する。
8を介して与えられる不正規化数の検出信号に応動し
て、不正規化数が検出されないときは、第1および第2
ののセレクタS11AおよびS11Bに、第1および第
2のソースデータSAおよびSBを選択させ、不正規化
数が検出されたときは、第1および第2ののセレクタS
11AおよびS11Bに、第1および第2の正規化回路
12Aおよび12Bの出力を選択させる。
ラッチL11AおよびL11Bでラッチされた値に所定
の第1段階の演算処理を施して第1の中間結果を得て、
該第1の中間結果を第3のラッチL12に格納する。
2でラッチされた値に所定の第2段階の演算処理、すな
わち残りの演算、正規化および丸め処理、を施して第2
の中間結果を得て、該第2の中間結果を第3のセレクタ
S12に与える。第3のセレクタS12は、パイプライ
ン制御回路17により制御されて、第4のラッチL13
でラッチすべき入力を選択するものであり、第3のセレ
クタS12が第2の演算回路14から出力される第2の
中間結果を選択していれば、該第2の中間結果データが
第4のラッチL13でラッチされる。
12に保持された第1の中間結果データに基づき、最終
演算結果が不正規化数となる可能性を予測する。不正規
化予測回路15は、最終演算結果が不正規化数となる可
能性があることを予測すると、その旨の不正規化数予測
信号をパイプライン制御回路17および第2の演算回路
14に与える。第2の演算回路14は、不正規化数予測
回路15からの不正規化数予測信号により、最終結果が
不正規化数になると予測された場合、または最終結果が
不正規化数になる可能性がある、と予測される場合に
は、丸め処理は行わず、代わりに丸めに必要な情報を出
力する。
わち不正規化予測回路15が不正規化数予測信号を出力
しないときは、第3のセレクタS12に第2の演算回路
14からの第2の中間結果出力を選択させておき、不正
規化予測回路15から不正規化数予測信号が供給される
と、そのときの第2の演算回路14からの第2の中間結
果出力が第4のラッチL13に格納された後、不正規化
回路16の出力を選択する。
でラッチされたデータに不正規化処理を施して、該デー
タを不正規化数に変換する。不正規化予測回路15が不
正規化数予測信号を出力しないときは、第4のラッチL
13でラッチされた、第2の演算回路14からの第2の
中間結果出力がそのまま最終演算結果として出力され、
不正規化予測回路15が不正規化数予測信号を出力した
ときは、不正規化回路16で不正規化された第2の演算
回路14からの第2の中間結果出力が最終演算結果とし
て出力される。
S11Bは、単に第1および第2のラッチL11Aおよ
びL11Bの入力を選択するだけでなく、それぞれ第1
および第2のラッチL11AおよびL11Bの入力とし
て、第1および第2の正規化回路12Aおよび12Bの
出力を選択しているときに、後続の第1および第2のソ
ースデータSAおよびSBをインタロックし、これら第
1および第2のソースデータSAおよびSBが第1およ
び第2のラッチL11AおよびL11Bへ入力されるの
を抑止する。
ラッチL13の入力を選択するだけでなく、第4のラッ
チL13の入力として、不正規化回路16の出力を選択
しているときに、第2の演算回路14からの後続の第2
の中間結果データをインタロックし、該後続の第2の中
間結果データが第4のラッチL13へ入力されるのを抑
止する。
ついて詳細に説明する。図1のパイプライン演算装置
は、フェッチステージ、第1の演算ステージ、第2の演
算ステージおよびライトステージの4つのステージを含
むパイプライン処理による演算を行う。
供給される第1のソースデータSAと、第1の正規化回
路12Aから出力されるデータとのいずれか一方を、パ
イプライン制御回路17により制御される第1のセレク
タS11Aで選択して受け取り、第1のラッチL11A
でラッチする。同様に、外部の回路等から供給される第
2のソースデータSBと、第2の正規化回路12Bから
出力されるデータとのいずれか一方を、パイプライン制
御回路17により制御される第2のセレクタS11Bで
選択して受け取り、第2のラッチL11Bでラッチす
る。
13は、第1および第2のラッチL11AおよびL11
Bからの2つの入力データがともに正規化数であると見
なして所定の第1段階の演算を行い、第1の中間結果を
第3のラッチL12でラッチする。
のラッチL11Aからの入力データが不正規化数である
場合に、それを検出し、オア回路18を介してパイプラ
イン制御回路17に通知するとともに、該不正規化数デ
ータを第1の正規化回路12Aに出力する。第2の不正
規化数検出回路11Bは、第2のラッチL11Bからの
入力データが不正規化数である場合に、それを検出し、
オア回路18を介してパイプライン制御回路17に通知
するとともに、該不正規化数データを第2の正規化回路
12Bに出力する。
12Bは、入力データを正規化して、フェッチステージ
のそれぞれ第1および第2のセレクタS11AおよびS
11Bに供給する。
路15は、第3のラッチL12から出力される第1の中
間結果から最終演算結果が不正規化数になる可能性を予
測し、最終演算結果が不正規化数になると予測されると
きは、不正規化数予測信号をパイプライン制御回路17
および第2の演算回路2に供給する。なお、不正規化予
測回路15は、最終演算結果が不正規化数になる可能性
が所定値より高い場合にそれを予測し、不正規化数予測
信号をパイプライン制御回路17および第2の演算回路
14に供給するようにしてもよい。
対して第2段階の演算処理、すなわち残りの演算、正規
化および丸め処理、を行い、第2の中間結果を得る。た
だし、不正規化数予測回路15からの不正規化数予測信
号により、最終結果が不正規化数になる、またはその可
能性がある、と予測される場合には、丸め処理は行わ
ず、代わりに丸めに必要な情報を出力する。
御回路17により制御され、第2の演算回路14の出力
と、不正規化回路16の出力とのいずれか一方を選択す
る。ライトステージでは、パイプライン制御回路17の
制御に基づき、第4のラッチL13から最終結果を図示
していない出力レジスタに書き込むなどして、出力す
る。
路17の制御に基づき、第2の中間結果の不正規化処理
および丸め処理を行い、第2の演算ステージの第3のセ
レクタS12に与える。
は、主として次の2つの機能である。 (1) 不正規化数検出回路11Aおよび11Bより、入
力データが不正規化数であると通知された場合に、フェ
ッチステージのセレクタS11AおよびS11Bに正規
化回路12Aおよび12Bの出力を選択させる。また、
命令制御回路(図示していない)に、次の命令をパイプ
ラインに投入するのを持たせるように指令する。
結果が不正規化数になる、またはその可能性がある、と
通知された場合に、次のサイクルで第2の演算ステージ
のセレクタS12に不正規化回路16の出力を選択させ
る。また、第1および第2の演算ステージのラッチL1
1A、L11BおよびL13のラッチ用クロックをデイ
スエーブルとしてラッチされている値をホールドさせ、
且つ前記命令制御回路に指令を与えて、次の命令をパイ
プラインに投入するのを持たせる。
装置では、入力されるソースデータから不正規化数を検
出し、不正規化数が検出された場合に、該入力データを
正規化してから演算を行うとともに、その演算の中間結
果より、演算結果が不正規化数となるか否かを予測し、
演算結果が不正規化数となると予測された場合にのみ、
演算結果に不正規化処理を施すようにする。したがっ
て、不正規化数の演算が可能となり、しかも通常の演算
の際には不正規化数のための処理をほとんど行わないで
済むので、通常の演算の演算時間にはほとんど悪影響が
ない。
イン演算装置を倍精度のパイプライン乗算器に適用した
第2の実施例の構成を示している。
チェック回路21A、第2のゼロチェック回路21B、
第1のゼロカウント回路22A、第2のゼロカウント回
路22B、第1の補数回路23A、第2の補数回路23
B、第1の左シフト回路24A、第2の左シフト回路2
4B、第1のデコード回路25A、第2のデコード回路
25B、ウォラスツリー演算回路26、第1のアダー2
7、符号チェック回路28、インクリメント回路29第
2のアダー30、正規化/丸め処理回路31および右シ
フト回路32を備えている。さらに、図2のパイプライ
ン乗算器は、第1、第2、第3、第4、第5、第6およ
び第7のラッチL21A、L21B、L22、L22、
L23、L24、L25およびL26、ならびに第1、
第2、第3、第4、第5および第6のセレクタS21
A、S21B、S22、S23、S24およびS25を
有している。
21Bは、それぞれこのパイプライン乗算器による乗算
に供される入力データを保持するためのラッチである。
第3のラッチL22は、第1のアダー27の演算結果を
保持するためのラッチである。第4および第5のラッチ
L23およびL24は、ウォラスツリー演算回路26の
演算結果を保持するためのラッチである。これら、第
3、第4および第5のラッチL22、L23およびL2
4にラッチされる第1のアダー27の演算結果およびウ
ォラスツリー演算回路26の演算結果が第1の中間結果
である。第6のラッチL25は、第4のセレクタS23
の出力を保持するためのラッチであり、第7のラッチL
26は、第6のセレクタS25の出力を保持するための
ラッチである。これら第6および第7のラッチL25お
よびL26に保持されるデータが、最終演算結果として
出力される。
1および第2のオペランドとしての第1および第2のソ
ースデータSAおよびSBはそれぞれビット番号00〜63
の64ビットの浮動小数点データであり、ビット番号00
が符号部、ビット番号01〜11が指数部そしてビット番号
12〜63が仮数部である。これら第1および第2のソース
データSAおよびSBがそれぞれ第1および第2のセレ
クタS21AおよびS21Bに与えられる。
ラッチL21Aにラッチされたデータのビット番号01〜
11の指数部がゼロであるか否かをチェックする。第1の
ゼロカウント回路22Aは、第1のラッチL21Aにラ
ッチされたデータのビット番号12〜63の仮数部の先頭の
ゼロの数(仮数部の最上位ビットから最初にゼロ以外の
数があらわれるまでのゼロの数)をカウントする。第1
のゼロチェック回路21Aで検出される指数部の情報お
よび第1のゼロカウント回路22Aで検出される仮数部
の情報により、指数部がゼロで且つ仮数部(52ビッ
ト)が“全てゼロ(第1のゼロカウント回路22Aのカ
ウント結果が52)”でない場合に、第1のラッチL2
1Aにラッチされたデータが不正規化数であると認識す
る。つまり、指数がゼロでない場合(正規化数)、およ
び指数がゼロで且つ仮数もゼロある場合(ゼロ)以外を
不正規化数とする。すなわち、第1のゼロチェック回路
21Aおよび第1のゼロカウント回路22Aは、第1の
ラッチL21Aにラッチされたデータについての不正規
化数検出回路を構成する。
第2のラッチL21Bにラッチされたデータのビット番
号01〜11の指数部がゼロであるか否かをチェックする。
第2のゼロカウント回路22Bは、第2のラッチL21
Bにラッチされたデータのビット番号12〜63の仮数部の
先頭のゼロの数をカウントする。第2のゼロチェック回
路21Bで検出される指数部の情報および第2のゼロカ
ウント回路22Bで検出される仮数部の情報により、指
数部がゼロで且つ仮数部が“全てゼロ”でない場合に、
第2のラッチL21Bにラッチされたデータが不正規化
数であると認識する。すなわち、第2のゼロチェック回
路21Bおよび第2のゼロカウント回路22Bは、第2
のラッチL21Bにラッチされたデータについての不正
規化数検出回路を構成する。
ック回路21Aで指数部がゼロであることが検出された
場合に、第1のゼロカウント回路22Aのカウント結果
の“2の補数”を生成する。この第1の補数回路23A
で得られる第1のゼロカウント回路22Aのカウント結
果の“2の補数”は、第1のラッチL21Aにラッチさ
れたデータが不正規化数である場合に、それを正規化し
た場合の指数に相当する。第1の左シフト回路24A
は、与えられた数が不正規化数である場合、つまり第1
のゼロチェック回路21Aで指数部ゼロが検出され、且
つ第1のゼロカウント回路22Aで仮数部が“全てゼ
ロ”でないことが検出された場合に、第1のラッチL2
1Aにラッチされたデータのビット番号12〜63の仮数部
を、“第1のゼロカウント回路22Aのカウント結果+
1”ビットだけ左シフトする。この左シフトの際、有効
情報の存在しない下位桁は、ゼロで埋められる(ゼロフ
ィリング)など適宜なる処理が施される。
のゼロカウント回路22Aにより、第1のラッチL21
Aにラッチされたデータが不正規化数であると認識され
た場合、その認識結果は、第1の補数回路23Aからパ
イプライン制御回路(図2では図示していない)に与え
られる。第1の補数回路23Aの出力(第1のゼロカウ
ント回路22Aのカウント結果の“2の補数”)および
第1の左シフト回路24Aの出力(正規化された結果)
は、それぞれ、指数部および仮数部として第1のセレク
タS21Aに与えられる。
第2のゼロチェック回路21Bで指数部がゼロであるこ
とが検出された場合に、第2のゼロカウント回路22B
のカウント結果の“2の補数”を生成する。この第2の
補数回路23Bで得られる第2のゼロカウント回路22
Bのカウント結果の“2の補数”は、第2のラッチL2
1Bにラッチされたデータが不正規化数である場合に、
それを正規化した場合の指数に相当する。第2の左シフ
ト回路24Bは、与えられた数が不正規化数である場
合、つまり第2のゼロチェック回路21Bで指数部ゼロ
が検出され、且つ第2のゼロカウント回路22Bで仮数
部が“全てゼロ”でないことが検出された場合に、第2
のラッチL21Bにラッチされたデータのビット番号12
〜63の仮数部を、“第2のゼロカウント回路22Bのカ
ウント結果+1”ビットだけ左シフトする。この左シフ
トの際、有効情報の存在しない下位桁は、ゼロで埋めら
れるなど適宜なる処理が施される。
のゼロカウント回路22Bにより、第2のラッチL21
Bにラッチされたデータが不正規化数であると認識され
た場合、その認識結果は、第2の補数回路23Bから前
述のパイプライン制御回路に与えられる。第2の補数回
路23Bの出力および第2の左シフト回路24Bの出力
は、それぞれ、指数部および仮数部として第2のセレク
タS21Bに与えられる。
1の左シフト回路24Aは、第1のソースデータSAに
対する正規化回路を構成し、第2の補数回路23Bおよ
び第2の左シフト回路24Bは、第2のソースデータS
Bに対する正規化回路を構成する。第1のセレクタS2
1Aは、前述のパイプライン制御回路により制御され、
外部から与えられる第1のソースデータSAと、該第1
のソースデータSAが不正規化数であった場合に第1の
補数回路23Aおよび第1の左シフト回路24Aから与
えられる正規化処理の結果とのいずれか一方を選択し
て、第1のラッチL21Aに供給する。第2のセレクタ
S21Bは、前述のパイプライン制御回路により制御さ
れ、外部から与えられる第2のソースデータSBと、該
第2のソースデータSBが不正規化数であった場合に第
2の補数回路23Bおよび第2の左シフト回路24Bか
ら与えられる正規化処理の結果とのいずれか一方を選択
して、第2のラッチL21Bに供給する。
ータSAまたは第2のソースデータSBが、不正規化数
であった場合、第1のセレクタS21Aまたは第2のセ
レクタS21Bを制御して、第1および第2のラッチL
21AおよびL21Bのうちの該当する側に正規化処理
が施されたデータをラッチさせ、且つその間に次のソー
スデータが入力されるのを抑止すなわちインタロックす
る。
合に、または正規化された結果、第1および第2のラッ
チL21AおよびL21Bにラッチされたデータのビッ
ト番号01〜11の指数部を加算し、その加算結果が第3の
ラッチL22にラッチされる。第1および第2のデコー
ド回路25Aおよび25Bは、第1および第2のラッチ
L21AおよびL21Bにラッチされたデータのビット
番号12〜63の仮数部を、それぞれデコードして、複数の
部分の部分積の形に変換する。ウォラスツリー演算回路
26は、よく知られた乗算器の1つであり、第1および
第2のデコード回路25Aおよび25Bでデコードされ
た複数の部分積を2つに分けて各々互いに足し合わせ、
2つの数を得る。第4および第5のラッチL23および
L24は、それぞれウォラスツリー演算回路26で得た
2つの数をラッチする。
クタS22に供給される。符号チェック回路28は、第
3のラッチL22にラッチされた第1の中間結果の指数
部の符号をチェックする。この第1の中間結果の指数部
の符号が負であれば、最終演算結果が不正規化数になる
可能性が高いと予測して、前記パイプライン制御回路に
通知する。すなわち、符号チェック回路28は、不正規
化予測回路を構成する。
タS22で選択されたデータを“1”インクリメント
(+1)する。第4のセレクタS23は、第3のセレク
タS22で選択されたデータとそのデータが1インクリ
メントされたデータとのうちのいずれか一方を選択し
て、第6のラッチL25に供給する。
の内容と第5のラッチL24の内容とを加算して、仮数
部の乗算結果を得る。第2のアダー30の演算結果は第
5のセレクタS24に供給される。
クタS24で選択されたデータを、正規化するとともに
丸め処理を行って、適切に丸め処理が施された正しい正
規化表現のデータとする。第6のセレクタS25は、第
5のセレクタS24で選択されたデータに正規化および
丸め処理が施されたデータと、第5のセレクタS24で
選択されたデータそれ自体、つまり正規化および丸め処
理が施されていないデータとのうちのいずれか一方を選
択して、第7のラッチL26に供給する。
26にラッチされる内容が、第2の中間結果である。右
シフト回路32は、第7のラッチL26のラッチ内容
を、第6のラッチL25にラッチされた指数部のデータ
に応じて右シフトして、第5のセレクタS24に供給す
る。
路28で指数部が負とならず、演算の最終結果が不正規
化数とならないことが予測される場合には、第3のラッ
チL22の出力を選択し、符号チェック回路28で指数
部が負となって、演算の最終結果が不正規化数となるこ
とが予測される場合には、第6のラッチL25の出力を
選択する。また、第4のセレクタS23は、符号チェッ
ク回路28で指数部が負とならず、演算の最終結果が不
正規化数とならないことが予測される場合には、正規化
のための「+1」が行われたインクリメント回路29の
出力を選択し、符号チェック回路28で指数部が負とな
って、演算の最終結果が不正規化数となることが予測さ
れる場合には、第3のセレクタS22で選択された結果
を選択する。
路28で指数部が負とならず、演算の最終結果が不正規
化数とならないことが予測される場合には、常に、第2
のアダー30の出力を選択し、符号チェック回路28で
指数部が負となって、演算の最終結果が不正規化数とな
ることが予測された場合には、次の選択に際し、右シフ
ト回路32の出力を選択するように制御される。また、
第6のセレクタS25は、符号チェック回路28で指数
部が負とならず、演算の最終結果が不正規化数とならな
いことが予測される場合には、常に正規化および丸め処
理が施された正規化/丸め処理回路31の出力を選択
し、符号チェック回路28で指数部が負となって、演算
の最終結果が不正規化数となることが予測された場合に
は、一旦、第5のセレクタS24で選択された結果、つ
まり正規化および丸め処理が施されていないデータを選
択し、次に、そのデータに正規化および丸め処理が施さ
れた正規化/丸め処理回路31の出力を選択する。
部が負とならず、演算の最終結果が不正規化数とならな
いことが予測される場合には、第6および第7のラッチ
L25およびL26の内容がそれぞれそのまま最終出力
の指数部および仮数部として出力され、符号チェック回
路28で指数部が負とならず、演算の最終結果が不正規
化数となることが予測される場合には、インクリメント
処理を経ていない第6のラッチL25の内容を演算最終
結果の指数部とし、正規化および丸め処理を経ずに右シ
フト回路32で右シフトされた後に、正規化および丸め
処理が施された結果の第7のラッチL26の内容を最終
演算結果の仮数部とする。
いて具体的に説明する。図2のパイプライン乗算器は、
大きく分けてフェッチステージF、第1の演算ステージ
E1、第2の演算ステージE2およびライトステージW
の4つのステージからなる4段パイプラインで動作す
る。
のラッチL21AおよびL21Bにオペランドすなわち
ソースデータの取り込みが行われる。第1の演算ステー
ジE1では、第1のアダー27およびウォラスツリー演
算回路26を用いた第1段階の乗算処理が行われる。第
2の演算ステージE2では、インクリメント回路29、
第2のアダー30および正規化/丸め処理回路31を用
いた第2段階の乗算処理が行われる。ライトステージW
では、演算の最終結果の出力レジスタ(図示せず)への
書込み等の出力処理が行われる。
ら供給される第1のオペランドである第1のソースデー
タSAと、第1の演算ステージE1における第1の補数
回路23Aおよび第1の左シフト回路24Aから出力さ
れるデータとのいずれか一方が、パイプライン制御回路
(図2には示されていない)により制御される第1のセ
レクタS21Aで選択され、第1のラッチL21Aでラ
ッチされる。同様に、外部の回路等から供給される第2
のオペランドである第2のソースデータSBと、第1の
演算ステージE1における第2の補数回路23Bおよび
第2の左シフト回路24Bから出力されるデータとのい
ずれか一方が、前記パイプライン制御回路により制御さ
れる第2のセレクタS21Bで選択され、第2のラッチ
L21Bでラッチされる。
第2のラッチL21AおよびL21Bの内容のビット番
号01〜11の指数部が、第1のアダー27で加算され手第
3のラッチL22にラッチされる。また、第1および第
2のラッチL21AおよびL21Bの内容のビット番号
12〜63の仮数部が、第1および第2のデコード回路25
Aおよび25Bにより複数の部分の部分積に変換され、
ウォラスツリー演算回路26により部分積が互いに足し
合わされて、2つの数が得られ、第4および第5のラッ
チL23およびL24にラッチされる。
および21Bは、それぞれ第1および第2のラッチL2
1AおよびL21Bの内容の指数部がゼロであるか否か
をチェックし、第1および第2のゼロカウント回路22
Aおよび22Bは、それぞれ第1および第2のラッチL
21AおよびL21Bの内容の仮数部の最上位ビットか
ら何ビット目までゼロが続いているかをカウントする。
指数部がゼロであり、仮数部の“52ビット全てがゼ
ロ”ではない場合に、そのデータは不正規化数であると
認識され、その旨がパイプライン制御回路に通知され
る。
3Bは、それぞれ第1および第2のゼロカウント回路2
2Aおよび22Bのカウント結果の“2の補数”を生成
し、入力データが正規化されたデータの指数として、フ
ェッチステージFの第1および第2のセレクタSAおよ
びSBに供給する。第1および第2の左シフト回路24
Aおよび24Bは、それぞれ第1および第2のゼロカウ
ント回路22Aおよび22Bの“カウント結果+1”だ
け、仮数部のデータを左シフトすることにより、前記入
力データが正規化されたデータの仮数として、フェッチ
ステージFの第1および第2のセレクタSAおよびSB
に供給する。
リー演算回路26で得られる仮数部の第1の中間結果が
第2のアダー30により加算される。第2のアダー30
の出力とライトステージWの右シフト回路32の出力と
のうちの一方が第5のセレクタS24により選択され
る。さらに、この第5のセレクタS24の選択結果に対
し、正規化/丸め処理回路31により正規化処理および
丸め処理を行った結果と正規化処理および丸め処理を行
わない場合とのいずれか一方が第6のセレクタS25に
より選択され、第7のラッチL26でラッチされる。
結果の指数部の符号をチェックし、符号が負であった場
合には、演算の最終結果が、不正規化数となる可能性が
あると認識して、不正規化数の予測を行い予測情報を前
述のパイプライン制御回路に通知する。前記第1の中間
結果の指数部は、インクリメント回路29で“+1”し
たデータと、“+1”しないデータとのいずれか一方が
第4のセレクタS23で選択され、その選択結果が第6
のラッチL25でラッチされる。
ラッチL25およびL26にラッチされたデータが、第
2の中間結果の指数部および仮数部となる。符号チェッ
ク回路28により、最終結果が不正規化数となることが
予測されないときには、前記第2の中間結果の指数部お
よび仮数部がそのまま演算最終結果の指数部および仮数
部として出力される。
不正規化数となることが予測されるときには、インクリ
メント回路29を経ずに、第6のラッチL25でラッチ
された前記第2の中間結果の指数部に応じて、正規化/
丸め処理回路31を経ずに第7のラッチL26にラッチ
された前記第2の中間結果を右シフト回路32で右シフ
トして不正規化し、第5のセレクタS24に供給する。
最終結果が不正規化数となることが予測されるときに
は、第3のセレクタS22は、第6のラッチL25でラ
ッチされたデータを選択し、第5のセレクタS24は、
右シフト回路32の出力を選択する。そして、最終結果
が不正規化数となることが予測される場合には、第4の
セレクタS23は、第3のセレクタS22で選択された
データを選択してそのまま第6のラッチL25に与えて
最終結果出力の指数部とし、第6のセレクタS25は、
第5のセレクタS24で選択されたデータを選択してそ
のまま第7のラッチL26に与えて最終結果出力の仮数
部とする。
いて図3〜図6のタイミングチャートを参照して具体的
に説明する。図2のパイプライン乗算器は、図3〜図6
に示すように、基本的には、フェッチステージF、第1
の演算ステージE1、第2の演算ステージE2およびラ
イトステージWの4つのステージからなる4段構成であ
るが、それに加えて、さらに必要に応じて正規化ステー
ジNおよび不正規化ステージUを含むパイプライン処理
による演算を行う。なお、図3〜図6には、インタロッ
ク期間×も示されている。フェッチステージFでは、第
1および第2のラッチL21AおよびL21Bにオペラ
ンドすなわちソースデータの取り込みが行われる。第1
の演算ステージE1では、第1のアダー27およびウォ
ラスツリー演算回路26を用いた第1段階の乗算処理が
行われる。第2の演算ステージE2では、インクリメン
ト回路29、第2のアダー30および正規化/丸め処理
回路31を用いた第2段階の乗算処理が行われる。ライ
トステージWでは、演算の最終結果の出力レジスタ(図
示せず)への書込み等の出力処理が行われる。正規化ス
テージNは、第1の演算ステージE1に関連しており、
この正規化ステージNでは、不正規化数入力を演算のた
めに正規化する正規化処理が行われる。不正規化ステー
ジUは、第2の演算ステージE2およびライトステージ
Wに関連しており、この不正規化ステージUでは、演算
結果すなわち乗算の最終結果が不正規化数になると予測
される場合に、出力を不正規化数とするための不正規化
処理が行われる。また、インタロック期間×は、正規化
または不正規化処理のために次のデータの取り込みを抑
止する。
令、第2の命令および第3の命令は、全て乗算命令であ
る。 〔入力も出力も正規化数だけの場合〕図3は、入力デー
タおよび出力データが共に正規化数のみである場合、す
なわち入力データおよび出力データに不正規化数が含ま
れない場合のパイプライン処理のタイミングチャートを
示している。
し、第1の命令の第1の演算ステージE1に入ると、第
2の命令のフェッチステージFが開始される。第1の命
令の第1の演算ステージE1が終了し、第2の命令のフ
ェッチステージFが終了すると、第1の命令が第2の演
算ステージE2に入り、第2の命令が第1の演算ステー
ジE1に入るとともに、第3の命令のフェッチステージ
Fが開始される。
ージE2が終了し、第2の命令の第1の演算ステージE
1が終了し、第3の命令のフェッチステージFが終了す
ると、第1の命令がライトステージWに入り、第2の命
令が第2の演算ステージE2に入り、第3の命令の第1
の演算ステージE1が開始される。第1の命令のライト
ステージWが終了し、第2の命令の第2の演算ステージ
E2が終了し、第3の命令の第1の演算ステージE1が
終了すると、第2の命令がライトステージWに入り、第
3の命令の第2の演算ステージE2が開始される。第2
の命令のライトステージWが終了し、第3の命令の第2
の演算ステージE2が終了すると、第3の命令のライト
ステージWが開始される。第3の命令のライトステージ
Wが終了すると、第1〜第3の命令の乗算を全て終了す
る。
出力データが共に正規化数のみである場合には、正規化
ステージNおよび不正規化ステージUは、全く動作せ
ず、見かけ上、フェッチステージF、第1の演算ステー
ジE1、第2の演算ステージE2およびライトステージ
Wの4つのステージのみで動作する。このため、演算時
間もフェッチステージF、第1の演算ステージE1、第
2の演算ステージE2およびライトステージWの4段の
みで構成されいているのと同等となる。
る場合〕図4は、第1の命令の入力データに不正規化数
が含まれ、その他の入力データおよび出力データが全て
正規化数である場合のパイプライン処理のタイミングチ
ャートを示している。
ると、第1の命令の正規化ステージNが開始され、第2
の命令のフェッチがインタロックされる。第1の命令の
正規化ステージNが終了し、第1の命令の第1の演算ス
テージE1に入ると、第2の命令のフェッチステージF
が開始される。第1の命令の第1の演算ステージE1が
終了し、第2の命令のフェッチステージFが終了する
と、第1の命令が第2の演算ステージE2に入り、第2
の命令が第1の演算ステージE1に入るとともに、第3
の命令のフェッチステージFが開始される。
命令の第2の演算ステージE2が終了し、第2の命令の
第1の演算ステージE1が終了し、第3の命令のフェッ
チステージFが終了すると、第1の命令がライトステー
ジWに入り、第2の命令が第2の演算ステージE2に入
り、第3の命令の第1の演算ステージE1が開始され
る。第1の命令のライトステージWが終了し、第2の命
令の第2の演算ステージE2が終了し、第3の命令の第
1の演算ステージE1が終了すると、第2の命令がライ
トステージWに入り、第3の命令の第2の演算ステージ
E2が開始される。第2の命令のライトステージWが終
了し、第3の命令の第2の演算ステージE2が終了する
と、第3の命令のライトステージWが開始される。第3
の命令のライトステージWが終了すると、第1〜第3の
命令の乗算を全て終了する。
データに正規化数が含まれ、その他の入力データおよび
出力データが全て正規化数である場合には、第1の命令
の正規化ステージNの期間が増え、この期間、次の第2
の命令のフェッチステージFがインタロックされるだけ
で、フェッチステージF、第1の演算ステージE1、第
2の演算ステージE2およびライトステージWの4段構
成で動作する図3の場合よりも1ステージ分の時間が増
加するのみである。
図5は、第1の命令の出力データが不正規化数となり、
その他の入力データおよび出力データが全て正規化数で
ある場合のパイプライン処理のタイミングチャートを示
している。
し、第1の命令の第1の演算ステージE1に入ると、第
2の命令のフェッチステージFが開始される。第1の命
令の第1の演算ステージE1が終了し、第2の命令のフ
ェッチステージFが終了すると、第1の命令が第2の演
算ステージE2に入り、第2の命令が第1の演算ステー
ジE1に入るとともに、第3の命令のフェッチステージ
Fが開始される。
了すると、第1の命令の不正規化ステージUが開始さ
れ、この不正規化ステージUが終了するまで、第2の命
令および第3の命令の処理が、それぞれ第1の演算ステ
ージE1およびフェッチステージFを終了した状態でイ
ンタロックされる。第1の命令の不正規化ステージUが
終了し、第1の命令のライトステージWに入ると、第2
の命令が第2の演算ステージE2に入り、第3の命令の
第1の演算ステージE1が開始される。第1の命令のラ
イトステージWが終了し、第2の命令の第2の演算ステ
ージE2が終了し、第3の命令の第1の演算ステージE
1が終了すると、第2の命令がライトステージWに入
り、第3の命令の第2の演算ステージE2が開始され
る。第2の命令のライトステージWが終了し、第3の命
令の第2の演算ステージE2が終了すると、第3の命令
のライトステージWが開始される。第3の命令のライト
ステージWが終了すると、第1〜第3の命令の乗算を全
て終了する。
データが不正規化数であり、その他の入力データおよび
出力データが全て正規化数である場合には、第1の命令
の不正規化ステージUの期間が増え、この期間、次の第
2および第3の命令のそれぞれ第2および第1の演算ス
テージE2およびE1がインタロックされるだけで、フ
ェッチステージF、第1の演算ステージE1、第2の演
算ステージE2およびライトステージWの4段構成で動
作する図3の場合よりも1ステージ分の時間が増加する
のみである。
且つ出力が不正規化数の場合〕図6は、第1の命令の入
力データに不正規化数が含まれ、該第1の命令の出力デ
ータが不正規化数で、その他の入力データおよび出力デ
ータが全て正規化数である場合のパイプライン処理のタ
イミングチャートを示している。
ると、第1の命令の正規化ステージNが開始され、第2
の命令のフェッチがインタロックされる。第1の命令の
正規化ステージNが終了し、第1の命令の第1の演算ス
テージE1に入ると、第2の命令のフェッチステージF
が開始される。第1の命令の第1の演算ステージE1が
終了し、第2の命令のフェッチステージFが終了する
と、第1の命令が第2の演算ステージE2に入り、第2
の命令が第1の演算ステージE1に入るとともに、第3
の命令のフェッチステージFが開始される。
命令の第2の演算ステージE2が終了すると、第1の命
令の不正規化ステージUが開始され、この不正規化ステ
ージUが終了するまで、第2の命令および第3の命令の
処理が、それぞれ第1の演算ステージE1およびフェッ
チステージFを終了した状態でインタロックされる。第
1の命令の不正規化ステージUが終了し、第1の命令の
ライトステージWに入ると、第2の命令が第2の演算ス
テージE2に入り、第3の命令の第1の演算ステージE
1が開始される。第1の命令のライトステージWが終了
し、第2の命令の第2の演算ステージE2が終了し、第
3の命令の第1の演算ステージE1が終了すると、第2
の命令がライトステージWに入り、第3の命令の第2の
演算ステージE2が開始される。第2の命令のライトス
テージWが終了し、第3の命令の第2の演算ステージE
2が終了すると、第3の命令のライトステージWが開始
される。第3の命令のライトステージWが終了すると、
第1〜第3の命令の乗算を全て終了する。
データに不正規化数が含まれ且つ出力データが不正規化
数であり、その他の入力データおよび出力データが全て
正規化数である場合には、第1の命令の正規化ステージ
Nおよび不正規化ステージUの期間が増え、この期間、
第2および第3の命令の次のステージがインタロックさ
れるだけで、フェッチステージF、第1の演算ステージ
E1、第2の演算ステージE2およびライトステージW
の4段構成で動作する図3の場合よりも2ステージ分の
時間が増加するのみである。
不正規化数を検出し、不正規化数が検出された場合に、
該入力データを正規化してから演算を行うとともに、そ
の演算の中間結果より、演算結果が不正規化数となるか
否かを予測し、演算結果が不正規化数となると予測され
た場合にのみ、演算結果に不正規化処理を施すようにす
る。したがって、不正規化数の含まれる分だけの演算時
間の増加となり、不正規化数が含まれない場合の演算時
間には、ほとんど悪影響がない。
プライン演算装置にも適用することができる。
入力データから不正規化数を検出し、不正規化数が検出
された場合に、該入力データを正規化してから演算を行
うとともに、その演算の中間結果より、演算結果が不正
規化数となるか否かを予測し、演算結果が不正規化数と
なると予測された場合にのみ、演算結果に不正規化処理
を施すようにするので、不正規化数の演算をサポートし
て、しかも通常の演算の演算時間にはほとんど悪影響が
ない、高性能のパイプライン演算装置を提供することが
できる。
第1の実施例の構成を示すシステムブロック図である。
施例であるパイプライン乗算器の構成を示すシステムブ
ロック図である。
れない場合の動作を説明するためのタイミングチャート
である。
が含まれる場合の動作を説明するためのタイミングチャ
ートである。
が含まれる場合の動作を説明するためのタイミングチャ
ートである。
不正規化数が含まれる場合の動作を説明するためのタイ
ミングチャートである。
すブロック図である。
1B,L22,L23,L24,L25,L26…ラッ
チ S11A,S11B,S12,S21A,S21B,S
22,S23,S24,S25…セレクタ
Claims (10)
- 【請求項1】 入力データが不正規化数であることを検
出する不正規化数検出手段と、 前記不正規化数検出手段により不正規化数が検出された
場合に、該入力データを正規化する正規化手段と、 正規化数である場合の入力データおよび前記正規化手段
により正規化された入力データの少なくともいずれかを
用いて演算を行い所要の演算の第1の中間結果を得る第
1の演算手段と、 前記第1の演算手段で得られる前記第1の中間結果よ
り、前記所要の演算の最終演算結果が不正規化数となる
ことを予測する不正規化予測手段と、 前記第1の演算手段で得られる前記第1の中間結果に基
づく演算を行って、不正規化数でなければ最終演算結果
となるべき前記所要の演算の第2の中間結果を得るため
の第2の演算手段と、 前記不正規化予測手段で、不正規化数と予測された場
合、前記第2の演算手段で得られる前記第2の中間結果
に不正規化処理を施して前記所要の演算の最終演算結果
とする不正規化手段とを具備することを特徴とするパイ
プライン演算装置。 - 【請求項2】 不正規化予測手段は、所要の演算の最終
演算結果が不正規化数となる可能性が高いことを予測す
る手段であることを特徴とする請求項1に記載のパイプ
ライン演算装置。 - 【請求項3】 パイプラインの動作を制御するパイプラ
イン制御手段と、 入力データが不正規化数であることを検出する不正規化
数検出手段と、 前記不正規化数検出手段により不正規化数が検出された
場合に、後続の命令がパイプラインに投入されるのを前
記パイプライン制御手段によりインタロックさせ、且つ
該入力データを正規化する正規化手段と、 正規化数である場合の入力データおよび前記正規化手段
により正規化された入力データの少なくともいずれかを
用いて演算を行い所要の演算の第1の中間結果を得る第
1の演算手段と、 前記第1の演算手段で得られる前記第1の中間結果よ
り、前記所要の演算の最終演算結果が不正規化数となる
ことを予測する不正規化予測手段と、 前記第1の演算手段で得られる前記第1の中間結果に基
づく演算を行って、不正規化数でなければ最終演算結果
となるべき前記所要の演算の第2の中間演算結果を得る
ための第2の演算手段と、 前記不正規化予測手段で、不正規化数と予測された場
合、前記第2の演算手段で得られる前記第2の中間結果
に不正規化処理を施して前記所要の演算の最終演算結果
とする不正規化手段とを具備することを特徴とするパイ
プライン演算装置。 - 【請求項4】 不正規化予測手段は、所要の演算の最終
演算結果が不正規化数となる可能性が高いことを予測す
る手段であることを特徴とする請求項3に記載のパイプ
ライン演算装置。 - 【請求項5】 不正規化手段は、第2の演算手段で得ら
れる第2の中間結果に対して、直接に丸め処理を行わ
ず、次のステージにおいて、パイプライン制御手段によ
り、後続の命令の実行をインタロックして、丸め前の前
記第2の中間結果と丸めに必要な情報とを用いて不正規
化および丸め処理を行う手段を含むことを特徴とする請
求項3または4に記載のパイプライン演算装置。 - 【請求項6】 不正規化手段は、第2の演算手段で得ら
れる第2の中間結果に対して、直接に丸め処理を行わ
ず、丸め前の前記第2の中間結果と丸めに必要な情報と
を格納する格納手段と、前記格納手段により丸め前の前
記第2の中間結果と丸めに必要な情報とを格納した状態
で割り込みを生起し、ソフトウェア処理による不正規化
および丸め処理を行わせる制御手段とを含むことを特徴
とする請求項3または4に記載のパイプライン演算装
置。 - 【請求項7】 命令およびデータの少なくとも一方の取
り込みのためのフェッチステージ、第1の中間結果を得
る演算のための第1の演算ステージ、第2の中間結果を
得る演算のための第2の演算ステージおよび演算の最終
結果の出力のためのライトステージの4つのステージを
有するパイプラインの動作を制御するパイプライン制御
手段と、 前記第1の演算ステージにおいて、入力データが不正規
化数であることを検出する不正規化数検出手段と、 前記不正規化数検出手段により不正規化数が検出された
場合に、前記フェッチステージにおいて後続の命令がパ
イプラインに投入されるのを前記パイプライン制御手段
によりインタロックさせ且つ前記入力データを正規化し
て前記フェッチステージにて入力する正規化手段と、 前記第1の演算ステージにおいて、正規化数である場合
の入力データおよび前記正規化手段により正規化された
入力データの少なくともいずれかを用いて演算を行い所
要の演算の第1の中間結果を得る第1の演算手段と、 前記第1の演算手段で得られる前記第1の中間結果よ
り、前記第2の演算ステージにおいて、前記所要の演算
の最終演算結果が不正規化数となることを、予測する不
正規化予測手段と、 前記第2の演算ステージにおいて、前記第1の演算手段
で得られる前記第1の中間結果に基づく演算を行って、
不正規化数でなければ最終演算結果となるべき前記所要
の演算の第2の中間演算結果を得るための第2の演算手
段と、 前記不正規化予測手段で、不正規化数と予測された場
合、前記ライトステージにおいて、前記第2の演算手段
で得られる前記第2の中間結果に不正規化処理を施し
て、前記第2の演算手段の出力に代えて前記所要の演算
の最終演算結果とする不正規化手段とを具備することを
特徴とするパイプライン演算装置。 - 【請求項8】 不正規化予測手段は、所要の演算の最終
演算結果が不正規化数となる可能性が高いことを予測す
る手段であることを特徴とする請求項7に記載のパイプ
ライン演算装置。 - 【請求項9】 不正規化手段は、第2の演算ステージに
おいて第2の演算手段で得られる第2の中間結果に対し
て、直接に丸め処理を行わず、次のステージにおいて、
パイプライン制御手段により、後続の命令の実行をイン
タロックして、丸め前の前記第2の中間結果と丸めに必
要な情報とを用いて不正規化および丸め処理を行う手段
を含むことを特徴とする請求項7または8に記載のパイ
プライン演算装置。 - 【請求項10】 パイプライン演算装置は、同期して動
作し得る複数の演算手段を有し且つパイプライン制御手
段は、後続の命令をインタロックする際に、同期して動
作している他の演算手段に対しても後続命令をインタロ
ックすることを特徴とする請求項3、5、7および9の
いずれか1項に記載のパイプライン演算装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP11323595A JP3522387B2 (ja) | 1995-05-11 | 1995-05-11 | パイプライン演算装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP11323595A JP3522387B2 (ja) | 1995-05-11 | 1995-05-11 | パイプライン演算装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH08305546A JPH08305546A (ja) | 1996-11-22 |
JP3522387B2 true JP3522387B2 (ja) | 2004-04-26 |
Family
ID=14606999
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP11323595A Expired - Fee Related JP3522387B2 (ja) | 1995-05-11 | 1995-05-11 | パイプライン演算装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3522387B2 (ja) |
-
1995
- 1995-05-11 JP JP11323595A patent/JP3522387B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JPH08305546A (ja) | 1996-11-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11347511B2 (en) | Floating-point scaling operation | |
US5357237A (en) | In a data processor a method and apparatus for performing a floating-point comparison operation | |
US4941120A (en) | Floating point normalization and rounding prediction circuit | |
US5892697A (en) | Method and apparatus for handling overflow and underflow in processing floating-point numbers | |
KR100302686B1 (ko) | 독립적인승산및가산명령어를이용하여고정밀도승산-가산연산을수행하기위한방법및장치 | |
US8694572B2 (en) | Decimal floating-point fused multiply-add unit | |
US5995991A (en) | Floating point architecture with tagged operands | |
KR100239029B1 (ko) | 가산기와 함께 사용하기 위한 결과 정규화기 및 결과 정규화 방법과 그를 포함하는 데이터 프로세서 | |
EP0362580B1 (en) | Leading 0/1 anticipator (LZA) | |
KR20190090817A (ko) | 부동 소수점 수를 누산하기 위한 산술 연산을 수행하는 장치 및 방법 | |
US6631392B1 (en) | Method and apparatus for predicting floating-point exceptions | |
US7395297B2 (en) | Floating point system that represents status flag information within a floating point operand | |
US5184318A (en) | Rectangular array signed digit multiplier | |
JPH02294820A (ja) | 浮動小数点数演算処理装置および演算処理方法 | |
Schwarz et al. | FPU implementations with denormalized numbers | |
EP0487814A2 (en) | Overflow determination for three-operand alus in a scalable compound instruction set machine | |
US5341320A (en) | Method for rapidly processing floating-point operations which involve exceptions | |
US8019805B1 (en) | Apparatus and method for multiple pass extended precision floating point multiplication | |
US5144576A (en) | Signed digit multiplier | |
US5867413A (en) | Fast method of floating-point multiplication and accumulation | |
Tsen et al. | A combined decimal and binary floating-point multiplier | |
JP3522387B2 (ja) | パイプライン演算装置 | |
US7003540B2 (en) | Floating point multiplier for delimited operands | |
JP2517064B2 (ja) | 非正規化数の処理方式 | |
US20040049528A1 (en) | Apparatus and method for adding multiple-bit binary-strings |
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: 20040127 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20040204 |
|
FPAY | Renewal fee payment (prs date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20080220 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (prs date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090220 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (prs date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090220 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (prs date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100220 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (prs date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110220 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (prs date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110220 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (prs date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120220 Year of fee payment: 8 |
|
FPAY | Renewal fee payment (prs date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130220 Year of fee payment: 9 |
|
FPAY | Renewal fee payment (prs date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130220 Year of fee payment: 9 |
|
FPAY | Renewal fee payment (prs date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140220 Year of fee payment: 10 |
|
LAPS | Cancellation because of no payment of annual fees |