JP3495173B2 - 演算処理方法および演算処理装置 - Google Patents

演算処理方法および演算処理装置

Info

Publication number
JP3495173B2
JP3495173B2 JP02710396A JP2710396A JP3495173B2 JP 3495173 B2 JP3495173 B2 JP 3495173B2 JP 02710396 A JP02710396 A JP 02710396A JP 2710396 A JP2710396 A JP 2710396A JP 3495173 B2 JP3495173 B2 JP 3495173B2
Authority
JP
Japan
Prior art keywords
arithmetic
arithmetic processing
exponent
processing
circuit
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
JP02710396A
Other languages
English (en)
Other versions
JPH09223016A (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.)
Fujitsu Ltd
Original Assignee
Fujitsu 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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP02710396A priority Critical patent/JP3495173B2/ja
Priority to US08/674,514 priority patent/US5838601A/en
Publication of JPH09223016A publication Critical patent/JPH09223016A/ja
Application granted granted Critical
Publication of JP3495173B2 publication Critical patent/JP3495173B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • 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
    • G06F7/487Multiplying; Dividing
    • G06F7/4876Multiplying
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/3001Arithmetic instructions
    • G06F9/30014Arithmetic instructions with variable precision
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3861Recovery, e.g. branch miss-prediction, exception handling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3867Concurrent instruction execution, e.g. pipeline or look ahead using instruction pipelines
    • G06F9/3875Pipelining a single stage, e.g. superpipelining
    • 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/49905Exception handling

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Computing Systems (AREA)
  • Nonlinear Science (AREA)
  • Advance Control (AREA)
  • Complex Calculations (AREA)

Description

【発明の詳細な説明】
【0001】(目次) 発明の属する技術分野 従来の技術(図5〜図8) 発明が解決しようとする課題(図7) 課題を解決するための手段(図1,図2) 発明の実施の形態(図3,図4,図8) 発明の効果
【0002】
【発明の属する技術分野】本発明は、パイプライン方式
で演算を行なう演算処理方法および演算処理装置に関
し、特に浮動小数点演算に用いて好適の演算処理方法お
よび演算処理装置に関する。近年の情報処理装置の処理
速度の向上、および、1つのLSIにおける搭載ゲート
数の増大については著しいものがある。また、その情報
処理装置を用いて行なう演算としては、科学技術計算,
コンピュータグラフィックスの描画計算,シミュレーシ
ョン等の、高い精度が要求されるものが増えてきてい
る。このような高精度の演算を行なうために、浮動小数
点演算処理装置等の処理速度のさらなる高速化が望まれ
ている。
【0003】
【従来の技術】一般に、情報処理装置は、図5に示すよ
うに、命令制御部(Iユニット)1,記憶制御部(Sユ
ニット)2および演算処理部(Eユニット)3を有して
いる。また、演算処理部3は、オペランドレジスタ3
a,演算実行部3bおよび結果レジスタ3cを有してい
る。
【0004】このような情報処理装置の演算処理部3に
おいては、実行すべき命令の指令コードを命令制御部1
から供給されるとともに、オペランドデータを命令制御
部1または記憶制御部2から供給されてオペランドレジ
スタ3aに設定されると、その指令コードに従って、オ
ペランドレジスタ3aに保持されているオペランドデー
タについての演算が演算実行部3bによりパイプライン
方式で実行され、その演算結果が結果レジスタ3cに書
き込まれる。
【0005】そして、演算処理部3は、結果レジスタ3
cに書き込まれた演算結果を命令制御部1または記憶制
御部2へ送出するとともに演算終了信号(演算処理の終
了予告信号)を命令制御部1へ送出することによって、
演算終了を命令制御部1に通知する。命令制御部1は、
演算終了信号により演算処理部3の演算終了を認識する
と、次の命令処理を演算処理部3へ投入する。
【0006】なお、一般に、高度なパイプライン方式で
は、効率よくパイプライン制御を行なうために、演算処
理部3における処理終了の予告信号が演算終了信号とし
て使用されており、演算処理部3は、演算処理の最終サ
イクルで処理終了の予告信号を演算終了信号として命令
制御部1へ送出している。上述のような情報処理装置に
より浮動小数点演算を行なう際には、演算処理部3にお
いて、一般に、各命令に従って指数部演算と仮数部演算
とを行ない、仮数部演算の結果によって指数部の中間結
果を補正することによって最終結果を求めている。ま
た、その演算結果に応じて割込みを発生させることもあ
る。
【0007】一般的な浮動小数点データの形式(フォー
マット)を図6に示す。この図6に示すように、浮動小
数点データは、8バイトの長さをもち、最上位1ビット
で符号部s(sign;正負)を表し、次の7ビット無符号
2進整数が指数部e(exponent)を表し、その次の56
ビット16進数が仮数部m(mantissa)を表している。
つまり、この仮数部eのすぐ左(ビット8の直上)に小
数点があるものとして扱われている。
【0008】ここで、指数部eは、7ビット長であるた
め、“0〜127”まで表現することができるが、これ
を“−64〜+63”に対応させることにより(+64
バイアス調整)、負の指数の表現を実現している。即
ち、指数部eの値0は、指数部の各ビットを“1000
000”とすることで表現される。図6に示す浮動小数
点データの実際の値Rは、符号部sで示される符号をも
つ値“m×16e ”として表される。
【0009】次に、一般的な演算処理装置として、浮動
小数点乗算装置10の構成例を図7に示す。この浮動小
数点乗算装置10は、図5に示す演算処理部3に対応す
るもので、図7に示すように、オペランドレジスタ11
−1,11−2,符号演算回路12,入力指数補正回路
12−1,12−2,中間指数演算回路13,仮数部正
規化回路14−1,14−2,デコーダ15,CSA
TREE回路16,CPA回路17,正規化判定回路1
8,仮数部補正回路19,最終指数演算回路20,割込
み処理回路21および結果レジスタ22を有して構成さ
れている。
【0010】ここで、オペランドレジスタ11−1,1
1−2は、図5に示すオペランドレジスタ3aに対応す
るもので、それぞれ、被乗数または乗数としてのオペラ
ンドOP1,OP2をセットされるものである。符号演
算回路12は、オペランドOP1とOP2との乗算結果
の符号(正負)Sを、オペランドOP1の符号部s1の
値とオペランドOP2の符号部s2の値との排他的論理
和として算出するものである。
【0011】入力指数補正回路12−1,12−2は、
それぞれ、オペランドOP1,OP2の指数部e1,e
2を正規化補正するものである。中間指数演算回路13
は、入力指数補正回路12−1,12−2により正規化
補正されたオペランドOP1の指数部e1とオペランド
OP2の指数部e2とを加算した結果を、中間指数とし
て出力するものである。
【0012】仮数部正規化回路14−1,14−2は、
それぞれ、オペランドOP1,OP2の仮数部m1,m
2を正規化するものである。デコーダ15,CSA T
REE回路16およびCPA回路17は、仮数部正規化
回路14−1,14−2により正規化されたオペランド
OP1の仮数部m1とオペランドOP2の仮数部m2と
を乗算するためのもので、これらの回路構成は、既に広
く知られているので、ここではその詳細な構成について
の説明は省略する。
【0013】なお、デコーダ15は、入力データ(正規
化された仮数部m1,m2)のデコードを行なうもので
ある。また、CSA TREE回路16は、3入力2出
力のCSA(Carry Save Adder;桁上げ保存加算器)を
TREE状に接続して構成されており、このCSA T
REE回路16からの出力をCPA(Carry Propagatio
n Adder;桁上げ伝播加算器) 回路17に入力すること
で、このCPA回路17から仮数部m1とm2との乗算
結果(300)が出力される。
【0014】正規化判定回路18は、CPA回路17か
ら桁上げ信号CO(Carry Out)を受けて、仮数部m1と
m2との乗算結果(300)を正規化する必要があるか
否かを判定するものである。仮数部補正回路19は、正
規化判定回路18により乗算結果(300)の正規化が
必要であると判定された場合に、CPA回路17からの
仮数部乗算結果(300)を正規化し最終仮数部Mとし
て出力するほか、後述するごとく、割込み処理回路21
からの指示に従って仮数部乗算結果(300)を補正し
最終仮数部Mとして出力するものである。
【0015】最終指数演算回路20は、2つの指数部e
1とe2とを加算して得られた中間指数にはバイアス調
整分“64”が二重に含まれているためにそのバイアス
調整分である“64”を中間指数から減算する機能と、
正規化判定回路18により乗算結果(300)の正規化
が必要であると判定された場合〔乗算結果(300)を
仮数部補正回路19により正規化する場合〕にはさらに
その正規化に伴う補正を行なう機能とを有しており、こ
れらの機能によって最終指数部Eを演算して出力するも
のである。
【0016】割込み処理回路21は、最終指数演算回路
20からの最終指数部Eの値を参照して指数部下位桁あ
ふれもしくは指数部桁あふれが生じたことを認識する
と、後述するごとく、割込み処理を行なったり乗算結果
の補正を行なったりするものである。これらの符号演算
回路12,入力指数補正回路12−1,12−2,中間
指数演算回路13,仮数部正規化回路14−1,14−
2,デコーダ15,CSATREE回路16,CPA回
路17,正規化判定回路18,仮数部補正回路19,最
終指数演算回路20および割込み処理回路21から構成
される部分は、図5に示す演算実行部3bに対応するも
のである。
【0017】また、結果レジスタ22は、図5に示す結
果レジスタ3cに対応するもので、上述した演算実行部
3bに対応する部分により算出されたオペランドOP1
とOP2との乗算結果(符号S,最終指数部Eおよび最
終仮数部M)を書き込まれるものである。次に、上述の
ごとく構成された浮動小数点乗算装置10の動作につい
て説明する。
【0018】符号小数点乗算は、2つの浮動小数点デー
タの指数部の加算と仮数部の乗算とによって行なわれ
る。つまり、指数部演算として、中間指数演算回路13
により、正規化補正後のオペランドOP1の指数部e1
とオペランドOP2の指数部e2との加算を行ない、そ
の加算結果を中間指数とする。
【0019】また、仮数部演算としては、まず、仮数部
正規化回路14−1および14−2により、オペランド
OP1の仮数部m1およびオペランドOP2の仮数部m
2をそれぞれ正規化した後、デコーダ15,CSA T
REE回路16およびCPA回路17により、正規化さ
れた仮数部m1とm2との乗算を行なう。その乗算結果
(300)を正規化する必要があると正規化判定回路1
8により判定された場合には、仮数部補正回路19で乗
算結果(300)が正規化されて、最終仮数部Mが算出
される。
【0020】そして、最終指数演算回路20では、中間
指数からバイアス分である“64”が減算されるほか、
乗算結果(300)が仮数部補正回路19により正規化
された場合には、その分だけさらに中間指数に対する補
正が行なわれて、最終指数部Eが算出される。このよう
に算出された最終指数部Eが“0”よりも小さく且つ最
終仮数部Mが“0”でない場合、指数部下位桁あふれと
なる。この指数部下位桁あふれが割込み処理回路21で
検知され、命令制御部1(図5参照)に対する指数部下
位桁あふれ割込みが許可されている場合には、割込み処
理回路21は、仮数部補正回路19からの最終仮数部M
を最終的な演算結果とするとともに最終指数部Eとして
正しい値よりも“128”だけ大きい値を示して、演算
を終了させ、割込み(310)を命令制御部1に報告す
る。
【0021】また、指数部下位桁あふれ割込みが許可さ
れていない場合、割込み処理回路21は、命令制御部1
に割込み(310)を報告することなく、符号部S,最
終指数部Eおよび最終仮数部Mを全て“0”としたもの
を、演算結果として結果レジスタ22に書き込む。この
とき、CPA回路17からの乗算結果(300)は、仮
数部補正回路19により“0”に補正され、最終仮数部
Mとして結果レジスタ22へ出力される。つまり、指数
部下位桁あふれが生じた状態ではその乗算結果が極めて
小さく0に近いので、指数部下位桁あふれ割込みを許可
しないことで、命令制御部1に対する割込みを行なうこ
となく乗算結果として“0”を出力できるようになって
いる。
【0022】一方、最終指数演算回路20により算出さ
れた最終指数部Eが“127”を超えた場合は指数部桁
あふれとなる。この指数部桁あふれが割込み処理回路2
1で検知されると、割込み処理回路21は、最終指数部
Eとして正しい値よりも“128”だけ小さい値を示し
て演算を終了し、割込み(310)を命令制御部1に報
告する。
【0023】なお、オペランドOP1とOP2との乗算
結果の符号Sは、符号演算回路12によりオペランドO
P1の符号部s1の値とオペランドOP2の符号部s2
の値との排他的論理和として求められ、結果レジスタ2
2に書き込まれる。ところで、仮数部m1とm2との乗
算は、前述した通り、既に公知のデコーダ15,CSA
TREE回路16,CPA回路17等を用いて行なわ
れるが、乗算結果を得るためにはかなりの論理段数を必
要とする。正規化された7バイトの仮数部m1とm2と
を乗算するとその乗算結果(300)は14バイト長に
なるが、入力データパターンによっては乗算結果(30
0)の最上位桁が“0”となる場合がある。
【0024】この場合、その最上位桁1桁分だけ仮数部
〔乗算結果(300)〕を正規化する必要があり、指数
部についても、最終指数演算回路20により、中間指数
からその正規化分としての1を減算して最終指数部Eを
出力する必要がある。このように正規化に伴う減算を行
なった結果、最終指数部Eが“0”よりも小さくなって
指数部下位桁あふれとなる場合がある(図8の参
照)。また、中間指数の段階で指数部桁あふれ状態であ
っても、最終指数演算回路20により上述した正規化に
伴う減算を行なうことで、桁あふれとならなくなる場合
もある(図8の参照)。
【0025】ここで、図8は中間指数と割込み発生との
関連を説明するためのものである。中間指数は7ビット
長の指数部e1とe2とを加算した結果得られるので、
中間指数を8ビット長データとすると、その最小値は
“00000000”、その最大値は“1111111
0”となる。そして、前述したように、最終指数演算回
路20により、中間指数からは必ずバイアス調整分であ
る“010000000”(十進数で64)が減算され
るほか、仮数部〔乗算結果(300)〕の正規化に伴っ
て、中間指数からはさらに“1”が減算される可能性が
ある。
【0026】従って、図8に示すように、中間指数が
“00000000”〜“00111111”の範囲
では、明らかに下位桁あふれを生じる(OBVIOUS RUPTUR
E)。中間指数が“01000000”の時には、仮数
部〔乗算結果(300)〕の正規化が行なわれると、下
位桁あふれを生じる可能性がある(DUBIOUS RUPTURE)。
また、中間指数が“01000001”〜“10111
111”の範囲では、桁あふれや下位桁あふれを生じ
ることは全くない。中間指数が“11000000”の
時には、仮数部〔乗算結果(300)〕の正規化が行
なわれると、桁あふれを生じる可能性がある(DUBIOUS
RUPTURE)。
【0027】さらに、中間指数が“11000001”
〜“11111110”の範囲では、明らかに桁あふ
れを生じる(OBVIOUS RUPTURE)。
【0028】
【発明が解決しようとする課題】図7に示すような浮動
小数点乗算装置10では、仮数部m1とm2との乗算を
行なった後、その乗算結果(300)について正規化を
行なうか否かを判定し、正規化を行なう場合には中間指
数を補正して最終指数部Eを求め、その最終指数部Eが
下位桁あふれ状態で且つ下位桁あふれ割込みが非許可の
際に仮数部乗算結果(300)を補正するという一連の
論理(図7中に符号Aを付して示すパスA参照)が、最
大論理段数となっている。
【0029】従って、その最大論理段数のパスのディレ
イ値が、乗算装置10全体の演算処理速度を決定してし
まい、演算処理の高速化を妨げる要因になっている。科
学技術計算,コンピュータグラフィックスの描画計算,
シミュレーション等の演算を行なう際には高い精度が要
求され、つまりは浮動小数点演算の高速化が望まれてい
るが、浮動小数点演算の中でも、特に、出現頻度の高い
浮動小数点乗算を高速に処理することが望まれている。
【0030】本発明は、このような課題に鑑み創案され
たもので、今まで演算処理速度を決定してきた上記論理
に着目し、最終演算結果を得るまでの論理段数を削減し
て、浮動小数点乗算等の演算処理速度を高速化し演算処
理時間を短縮した、演算処理方法および演算処理装置を
提供することを目的とする。
【0031】
【課題を解決するための手段】図1は本発明の演算処理
方法の原理説明図で、本発明の演算処理方法(請求項
1)は、命令制御部からの演算処理命令に従って専用演
算手段により演算処理をパイプライン方式で実行し、そ
の演算処理の終了予告信号を演算終了信号として命令制
御部へ送出するものであって、図1に示すように、演算
処理により得られる演算結果に演算例外が発生する可能
性の有無を、専用演算手段による演算処理の途中で判定
している(ステップS1)。
【0032】そして、前記可能性が有ると判定された場
合(ステップS1でYES判定の場合)には、命令制御
部への演算終了信号の送出を抑止し(ステップS2)、
前記可能性の有る演算処理を専用演算手段とは別の演算
手段により実行した後(ステップS3)、その演算処理
についての演算終了信号を命令制御部へ送出する(ステ
ップS4)。ただし、ステップS1で前記可能性が無い
と判定された場合(NO判定の場合)には、通常通りの
演算処理を専用演算手段により実行する(ステップS
5)。
【0033】なお、演算例外が明らかに発生すると演算
処理の途中で判定された場合、その演算例外の発生時に
対応した演算制御を直ちに行なってもよい(請求項
2)。また、演算処理が浮動小数点乗算処理である場
合、前記可能性を、乗数の指数と被乗数の指数とを加算
して得られる中間指数に基づいて判定してもよい(請求
項3)。
【0034】図2は本発明の演算処理装置の原理ブロッ
ク図で、この図2に示すように、本発明の演算処理装置
(請求項4)は、演算処理命令を発行する命令制御部1
と、この命令制御部1からの演算処理命令に従って演算
処理をパイプライン方式で実行する演算処理部30とを
そなえて構成されている。そして、演算処理部30は、
演算処理を実行するための専用演算手段31と、演算処
理の終了予告信号を演算終了信号として命令制御部1へ
送出する演算終了通知手段32と、演算処理により得ら
れる演算結果に演算例外が発生する可能性の有無を専用
演算手段31による演算処理の途中で判定する判定手段
33と、この判定手段33により前記可能性が有ると判
定された演算処理を実行するための専用演算手段とは別
の演算手段34と、判定手段33により前記可能性が有
ると判定された場合に演算手段34により演算処理を実
行し終えるまで演算終了通知手段32から命令制御部1
への演算終了信号の送出を抑止する抑止手段35とを有
して構成されている。
【0035】なお、演算処理部30には、判定手段33
により演算例外が明らかに発生すると演算処理の途中で
判定された場合にその演算例外の発生時に対応した演算
制御を直ちに行なう演算制御手段をそなえてもよい(請
求項5)。また、演算処理が浮動小数点乗算処理である
場合、判定手段33は、乗数の指数と被乗数の指数とを
加算して得られる中間指数に基づいて前記可能性を判定
してもよい(請求項6)。
【0036】図2に示すごとく構成された本発明の演算
処理装置では、判断手段33によって、演算結果に演算
例外が発生する可能性の有無が、専用演算手段31によ
る演算処理の途中で判定することができる。この判断手
段33により前記可能性が有ると判定された場合には、
抑止手段35により、演算終了通知手段32から命令制
御部1への演算終了信号の送出が抑止される。
【0037】そして、前記可能性が有ると判定された演
算処理は専用演算手段31と別個の演算手段34により
実行され、その演算処理を終了すると、演算終了通知手
段32により演算終了信号が命令制御部1へ送出され
る。従って、上述した本発明の演算処理方法および演算
処理装置では、演算例外が発生する可能性のある演算処
理は、専用演算手段31による演算途中から別の処理
(演算手段34)で実行されることになるので、専用演
算手段31の負担を軽減できるほか、最終演算結果を待
つ必要がなくなり最終演算結果を得るまでの論理段数を
削減することができる(請求項1,4)。
【0038】また、演算例外が明らかに発生すると演算
処理の途中で判定された場合には、その演算例外の発生
時に対応した演算制御を直ちに行なうことで、最終演算
結果を待つことなく演算例外の発生に対処できる(請求
項2,5)。さらに、演算処理が浮動小数点乗算処理で
ある場合、乗数の指数と被乗数の指数とを加算して得ら
れる中間指数に基づいて、演算例外が発生する可能性を
判定することができる。このように中間指数を用いて演
算例外の発生可能性を判定することで、乗数の仮数部と
被乗数の仮数部との乗算結果を待つことなく、演算例外
(指数部桁あふれまたは指数部下位桁あふれ)に応じた
処理を行なうことが可能になる(請求項3,6)。
【0039】
【発明の実施の形態】以下、図面を参照して本発明の実
施の形態を説明する。図3は本発明の一実施形態として
の演算処理装置の全体構成を示すブロック図であり、こ
の図3に示すように、本実施形態の演算処理装置は、パ
イプライン方式で演算を行なうもので、演算処理命令を
発行する命令制御部1と、この命令制御部1からの演算
処理命令に従って演算処理を実行する演算処理部30A
と、オペランドデータを記憶部(図示せず)から読み出
して演算処理部30Aに供給したり演算処理部30Aか
ら受け取った演算結果を記憶部へ書き込むための記憶制
御部2とをそなえて構成されている。
【0040】これらの命令制御部1,演算処理部30A
および記憶制御部2は、それぞれ、図5に示した命令制
御部1,演算処理部3および記憶制御部2と基本的には
同じ機能を果たすものである。ただし、本実施形態にお
ける演算処理部30Aは、図3に示すごとく、オペラン
ドレジスタ11−1,11−2,結果レジスタ22,演
算実行部23,演算終了通知回路24,中間指数割込み
検出回路25,別系統演算実行部26および割込み処理
回路27を有して構成されている。
【0041】ここで、オペランドレジスタ11−1,1
1−2は、図7に示すものと同様、それぞれ、被乗数ま
たは乗数としてのオペランドOP1,OP2をセットさ
れるものであり、結果レジスタ22は、図7に示すもの
と同様、後述する演算実行部23または別系統演算実行
部26により算出されたオペランドOP1とOP2との
乗算結果(符号S,最終指数部Eおよび最終仮数部M)
を書き込まれるものである。
【0042】演算実行部23は、図4を参照しながら後
述するごとく、本実施形態では浮動小数点乗算処理部と
して機能する専用演算手段である。演算終了通知回路
(演算終了通知手段)24は、演算処理の最終サイクル
で処理終了の予告信号を演算終了信号として命令制御部
1へ送出することにより、その命令制御部1からの命令
により実行された演算処理の終了を通知するためのもの
である。本実施形態の演算終了通知回路24も、前述し
たように、効率よくパイプライン制御を行なうべく演算
実行部23による演算処理の終了予告信号を演算終了信
号として使用している。
【0043】中間指数割込み検出回路25は、演算実行
部23の演算処理(乗算処理)により得られる演算結果
に演算例外(指数部桁あふれまたは指数部下位桁あふ
れ)が発生する可能性の有無、さらには、演算例外が明
らかに発生するか否かを、演算実行部23による演算処
理の途中で判定する判定手段としての機能を果たしてい
る。特に、本実施形態では演算処理として浮動小数点乗
算処理を行なうものとしており、中間指数割込み検出回
路25は、後述するごとく、乗数の指数と被乗数の指数
とを加算して得られる中間指数に基づいて、演算例外の
発生可能性(図8参照)を判定している。
【0044】また、中間指数割込み検出回路25は、演
算例外の発生可能性が有ると判定した場合(図8のま
たはの場合)、演算終了抑止信号〔図3の(520)
参照〕を命令制御部1へ送出してその旨を通知する機能
を果たすほか、その演算終了抑止信号を演算終了通知回
路24へも送出することにより、別系統演算実行部26
にて演算処理を実行し終えるまで演算終了通知回路24
から命令制御部1への演算終了信号の送出を抑止する抑
止手段としての機能も果たしている。
【0045】別系統演算実行部(別の演算手段)26
は、中間指数割込み検出回路25により演算例外の発生
可能性が有ると判定された場合(図8のまたはの場
合)、そのように判定された演算処理を実行すべく、演
算実行部23とは別個にそなえられるものである。演算
実行部23は、本実施形態では浮動小数点乗算処理を最
高速で実行できるように浮動小数点乗算処理専用に設計
されているのに対して、別系統演算実行部26は、演算
例外の発生可能性の有る場合に割込みルーチンにより起
動され、その演算例外の発生可能性の有る演算処理を、
例えばマイクロプログラムで行なうものである。
【0046】割込み処理回路27は、中間指数割込み検
出回路25により演算例外(指数部下位桁あふれまたは
指数部桁あふれ)が明らかに発生すると判定された場合
(図8のまたはの場合)、その演算例外の発生時に
対応した演算制御(後述するごとく、割込み処理を行な
ったり乗算結果の補正を行なったりする制御)を直ちに
行なう演算制御手段としての機能を果たすものである。
【0047】一方、浮動小数点乗算処理専用の演算実行
部23は、図4に示すごとく、符号演算回路12,入力
指数補正回路12−1,12−2,中間指数演算回路1
3,仮数部正規化回路14−1,14−2,デコーダ1
5,CSA TREE回路16,CPA回路17,正規
化判定回路18,仮数部補正回路19および最終指数演
算回路20を有して構成されている。この演算実行部2
3の構成は、図7に示した浮動小数点乗算装置10の内
部構成とほぼ同様であるので、図4において、図7に示
すものと同一部分には同一符号を付し、その部分の詳細
な説明は省略する。
【0048】ただし、本実施形態では、中間指数演算回
路13により算出された中間指数は、最終指数演算回路
20のほかに前述した中間指数割込み検出回路25に対
しても出力されている。また、仮数部補正回路19は、
従来と同様、正規化判定回路18により乗算結果(30
0)の正規化が必要であると判定された場合に、CPA
回路17からの仮数部乗算結果(300)を正規化し最
終仮数部Mとして出力するほか、本実施形態では、前述
した割込み処理回路27からの指示に従って仮数部乗算
結果(300)を補正し最終仮数部Mとして出力するよ
うになっている。
【0049】さらに、図7に示した最終指数演算回路2
0は、その演算結果である最終指数部Eを割込み処理回
路21にも出力しているが、本実施形態では、最終指数
演算回路20が最終指数部Eを割込み処理回路27へ出
力する必要はない。ところで、ある演算を演算処理装置
により行なう際にその演算処理装置に供給されたオペラ
ンドデータが処理対象外のものである場合、演算終了信
号の送出を抑止し、そのオペランドデータに基づく演算
を別処理によって行なうという技術は、特開平2−71
326号公報に開示されている。
【0050】これに対し、本発明では、供給されたオペ
ランドデータがその演算処理装置の処理対象のものであ
っても、その演算処理の途中で、演算結果に対して特別
な後処理(演算例外の発生に伴う割込み処理や補正処
理)が必要になる可能性(演算例外の発生可能性)があ
ると判定された場合に、その可能性のある演算処理は、
特別なものとして別処理(別系統演算実行部26)によ
って実行する。これにより、演算処理速度を決定してい
た論理段数(図7のパスA参照)を削減することがで
き、演算処理速度の向上を実現することができる。
【0051】従来の符号小数点乗算手法では、指数部桁
あふれ割込みや指数部下位桁あふれ割込みを検出するた
めには仮数部の乗算結果を待たなければならず、乗算結
果を求めるのに論理段数が深くなり、演算処理速度の低
下をもたらしていたが、本実施形態では、図8に示した
中間指数と割込み発生との関連に基づいて、中間指数割
込み検出回路25により、仮数部の乗算結果を待つこと
なく、指数部桁あふれや指数部下位桁あふれを中間指数
から検出している。
【0052】即ち、中間指数が“01000000”よ
りも小さい場合(図8のの場合)には明らかに指数部
下位桁あふれとなり、“11000000”よりも大き
い場合(図8のの場合)には明らかに指数部桁あふれ
となる。従って、中間指数が図8に示す範囲または
に属する場合には、仮数部の乗算結果に関係なく演算例
外が発生するものとして処理を行なうものとする。
【0053】また、中間指数が“01000000”の
場合(図8のの場合)または“11000000”の
場合(図8のの場合)では、指数部下位桁あふれまた
は指数部桁あふれとなる可能性があるが、この場合は、
前述した通り、特別ケースとしてその演算処理を別系統
演算実行部26により別処理として実行するものとす
る。
【0054】次に、図3および図4に示す本実施形態の
演算処理装置によって実行される浮動小数点乗算処理に
ついて説明する。乗数および被乗数としての2つのオペ
ランドOP1,OP2がそれぞれオペランドレジスタ1
1−1および11−2に設定されると、符号小数点乗算
は、これら2つの浮動小数点データOP1,OP2の指
数部加算と仮数部乗算とによって行なわれる。
【0055】つまり、指数部演算として、中間指数演算
回路13により、正規化補正後のオペランドOP1の指
数部e1とオペランドOP2の指数部e2との加算を行
ない、その加算結果を中間指数とする。また、仮数部演
算としては、まず、仮数部正規化回路14−1および1
4−2により、オペランドOP1の仮数部m1およびオ
ペランドOP2の仮数部m2をそれぞれ正規化した後、
デコーダ15,CSA TREE回路16およびCPA
回路17により、正規化された仮数部m1とm2との乗
算を行なう。その乗算結果(300)を正規化する必要
があると正規化判定回路18により判定された場合に
は、仮数部補正回路19で乗算結果(300)が正規化
されて、最終仮数部Mが算出される。
【0056】そして、最終指数演算回路20では、中間
指数からバイアス分である“64”が減算されるほか、
乗算結果(300)が仮数部補正回路19により正規化
された場合には、その分だけさらに中間指数に対する補
正が行なわれて、最終指数部Eが算出される。このと
き、本実施形態では、中間指数演算回路13によって算
出された中間指数が中間指数割込み検出回路25にも与
えられ、その中間指数の値が中間指数割込み検出回路2
5によりチェックされる。そのチェックは、図8に示し
た基準(中間指数と割込み発生との関連)に従って行な
われる。
【0057】そのチェックの結果が“OBVIOUS RUPTURE
”である場合(図8のまたはの場合)には、割込
み処理回路27により割込み処理を行ない、命令制御部
1に割込み(510)を報告し、仮数部補正回路19で
正規化/補正された最終仮数部Mを出力する。また、中
間指数割込み検出回路23によるチェック結果が“DUBI
OUS RUPTURE”である場合(図8のまたはの場合)
には、中間指数割込み検出回路23から命令制御部1へ
演算終了抑止信号(520)を送ることによって演算例
外が発生する可能性のあることを通知する。このとき、
演算終了抑止信号(520)は演算終了通知回路24に
も送られ、別系統演算実行部26により演算処理を実行
し終えるまで演算終了通知回路24から命令制御部1へ
の演算終了信号の送出が抑止される。そして、その演算
例外の発生可能性のある演算処理を、演算処理部30A
において別処理(別系統演算実行部26)で実行し、演
算終了通知回路24から命令処理部1へ演算終了信号を
送って演算を終了する。
【0058】そして、中間指数割込み検出回路23によ
りチェックを行なった結果、中間指数の値が図8の範囲
に属している場合には、割込みを発生せずに、演算実
行部23で通常の演算処理を実行して乗算結果を求め、
符号部S,最終指数部E,最終仮数部Mが乗算結果とし
て結果レジスタ22に書き込まれて出力される。このよ
うに、本発明の一実施形態によれば、中間指数演算回路
13からの中間指数に基づいて演算例外(指数部桁あふ
れまたは指数部下位桁あふれ)が発生する可能性を中間
指数割込み検出回路25により判定し、演算例外が発生
する可能性のある演算処理を、演算実行部23による演
算途中から別系統演算実行部26で実行することで、演
算実行部23の負担を軽減できるほか、仮数部m1とm
2との乗算結果を待つ必要がなくなり最終演算結果を得
るまでの論理段数を削減できるので、浮動小数点乗算処
理速度が高速化され、その処理時間を大幅に短縮するこ
とができる。
【0059】また、演算例外が明らかに発生すると演算
処理の途中で判定された時点で直ちにその演算例外の発
生時に対応した割込み処理等へ移行することができるの
で、やはり仮数部m1とm2との乗算結果を待つことな
く、演算例外に対応した処理を迅速かつ確実に行なえ
る。従って、最終乗算結果を得るまでの論理段数が大幅
に削減され、浮動小数点乗算処理速度の高速化、そして
その処理時間の大幅な短縮に大きく寄与する。
【0060】なお、上述した実施形態では、演算処理が
浮動小数点乗算処理である場合について説明したが、本
発明は、これに限定されるものではなく、浮動小数点加
減算処理等の各種演算処理にも適用され、上述した実施
形態と同様の作用効果を得ることができる。
【0061】
【発明の効果】以上詳述したように、本発明の演算処理
方法および演算処理装置によれば、演算例外が発生する
可能性のある演算処理を、専用演算手段による演算途中
から別処理で実行することにより、専用演算手段の負担
を軽減できるほか、最終演算結果を待つ必要がなくなり
最終演算結果を得るまでの論理段数を削減できるので、
演算処理速度が高速化され、演算処理時間を大幅に短縮
できる効果がある(請求項1,4)。
【0062】また、演算例外が明らかに発生すると演算
処理の途中で判定された時点で直ちにその演算例外の発
生時に対応した演算制御を行なうことにより、最終演算
結果を待つことなく演算例外の発生に対処できるので、
演算処理速度の高速化、ひいては演算処理時間の大幅な
短縮に寄与することになる(請求項2,5)。さらに、
浮動小数点乗算処理に際しては、乗数の指数と被乗数の
指数とを加算して得られる中間指数に基づいて演算例外
が発生する可能性を判定することにより、乗数の仮数部
と被乗数の仮数部との乗算結果を待つことなく演算例外
(指数部桁あふれまたは指数部下位桁あふれ)に対応し
た処理を迅速かつ確実に行なえる。従って、最終乗算結
果を得るまでの論理段数が削減され、浮動小数点乗算処
理速度を高速化できその処理時間を大幅に短縮できる効
果もある(請求項3,6)。
【図面の簡単な説明】
【図1】本発明の演算処理方法の原理説明図である。
【図2】本発明の演算処理装置の原理ブロック図であ
る。
【図3】本発明の一実施形態としての演算処理装置の全
体構成を示すブロック図である。
【図4】本実施形態における演算処理部(浮動小数点乗
算装置)の要部の構成を示すブロック図である。
【図5】一般的な情報処理装置の構成を示すブロック図
である。
【図6】一般的な浮動小数点データの形式(フォーマッ
ト)を示す図である。
【図7】一般的な浮動小数点乗算装置の構成を示すブロ
ック図である。
【図8】中間指数と割込み発生との関連を説明するため
の図である。
【符号の説明】
1 命令制御部 2 記憶制御部 3 演算処理部 3a オペランドレジスタ 3b 演算実行部 3c 結果レジスタ 10 浮動小数点乗算装置(演算処理装置) 11−1,11−2 オペランドレジスタ 12 符号演算回路 12−1,12−2 入力指数補正回路 13 中間指数演算回路 14−1,14−2 仮数部正規化回路 15 デコーダ 16 CSA(Carry Save Adder) TREE回路 17 CPA(Carry Propagation Adder)回路 18 正規化判定回路 19 仮数部補正回路 20 最終指数演算回路 21 割込み処理回路 22 結果レジスタ 23 演算実行部(専用演算手段,浮動小数点乗算装
置) 24 演算終了通知回路(演算終了通知手段) 25 中間指数割込み検出回路(判定手段,抑止手段) 26 別系統演算実行部(別の演算手段) 27 割込み処理回路(演算制御手段) 30,30A 演算処理部 31 専用演算手段 32 演算終了通知手段 33 判定手段 34 別の演算手段 35 抑止手段
───────────────────────────────────────────────────── フロントページの続き (56)参考文献 特開 平6−290023(JP,A) 特開 平2−71326(JP,A) 特開 平2−10427(JP,A) 特開 平1−185726(JP,A) 特開 昭62−113232(JP,A) (58)調査した分野(Int.Cl.7,DB名) G06F 9/38 G06F 7/00 G06F 7/38 - 7/54

Claims (6)

    (57)【特許請求の範囲】
  1. 【請求項1】 命令制御部からの演算処理命令に従って
    専用演算手段により演算処理をパイプライン方式で実行
    し、前記演算処理の終了予告信号を演算終了信号として
    該命令制御部へ送出する演算処理方法であって、 前記演算処理により得られる演算結果に演算例外が発生
    する可能性の有無を、該専用演算手段による前記演算処
    理の途中で判定し、 前記可能性が有ると判定された場合には該命令制御部へ
    の演算終了信号の送出を抑止し、 前記可能性の有る前記演算処理を該専用演算手段とは別
    の演算手段により実行した後、 前記演算処理についての演算終了信号を該命令制御部へ
    送出することを特徴とする、演算処理方法。
  2. 【請求項2】 前記演算例外が明らかに発生すると前記
    演算処理の途中で判定された場合には、前記演算例外の
    発生時に対応した演算制御を直ちに行なうことを特徴と
    する、請求項1記載の演算処理方法。
  3. 【請求項3】 前記演算処理が浮動小数点乗算処理であ
    る場合、前記可能性が、乗数の指数と被乗数の指数とを
    加算して得られる中間指数に基づいて判定されることを
    特徴とする、請求項1または請求項2に記載の演算処理
    方法。
  4. 【請求項4】 演算処理命令を発行する命令制御部と、 該命令制御部からの演算処理命令に従って演算処理をパ
    イプライン方式で実行する演算処理部とをそなえ、 該演算処理部が、 前記演算処理を実行するための専用演算手段と、 前記演算処理の終了予告信号を演算終了信号として該命
    令制御部へ送出する演算終了通知手段と、 前記演算処理により得られる演算結果に演算例外が発生
    する可能性の有無を該専用演算手段による前記演算処理
    の途中で判定する判定手段と、 該判定手段により前記可能性が有ると判定された前記演
    算処理を実行するための、該専用演算手段とは別の演算
    手段と、 該判定手段により前記可能性が有ると判定された場合、
    該別の演算手段により前記演算処理を実行し終えるま
    で、該演算終了通知手段から該命令制御部への演算終了
    信号の送出を抑止する抑止手段とを有していることを特
    徴とする、演算処理装置。
  5. 【請求項5】 該演算処理部が、 該判定手段により前記演算例外が明らかに発生すると前
    記演算処理の途中で判定された場合、前記演算例外の発
    生時に対応した演算制御を直ちに行なう演算制御手段を
    有していることを特徴とする、請求項4記載の演算処理
    装置。
  6. 【請求項6】 前記演算処理が浮動小数点乗算処理であ
    る場合、該判定手段が、乗数の指数と被乗数の指数とを
    加算して得られる中間指数に基づいて前記可能性を判定
    することを特徴とする、請求項4または請求項5に記載
    の演算処理装置。
JP02710396A 1996-02-14 1996-02-14 演算処理方法および演算処理装置 Expired - Fee Related JP3495173B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP02710396A JP3495173B2 (ja) 1996-02-14 1996-02-14 演算処理方法および演算処理装置
US08/674,514 US5838601A (en) 1996-02-14 1996-07-02 Arithmetic processing method and arithmetic processing device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP02710396A JP3495173B2 (ja) 1996-02-14 1996-02-14 演算処理方法および演算処理装置

Publications (2)

Publication Number Publication Date
JPH09223016A JPH09223016A (ja) 1997-08-26
JP3495173B2 true JP3495173B2 (ja) 2004-02-09

Family

ID=12211758

Family Applications (1)

Application Number Title Priority Date Filing Date
JP02710396A Expired - Fee Related JP3495173B2 (ja) 1996-02-14 1996-02-14 演算処理方法および演算処理装置

Country Status (2)

Country Link
US (1) US5838601A (ja)
JP (1) JP3495173B2 (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5999961A (en) * 1997-09-15 1999-12-07 California Institute Of Technology Parallel prefix operations in asynchronous processors
US6044454A (en) * 1998-02-19 2000-03-28 International Business Machines Corporation IEEE compliant floating point unit
US6701427B1 (en) * 1999-12-22 2004-03-02 Arm Limited Data processing apparatus and method for processing floating point instructions
JP5707265B2 (ja) * 2011-07-20 2015-04-22 ルネサスエレクトロニクス株式会社 演算制御装置及び演算制御方法並びにプログラム、並列プロセッサ

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4791555A (en) * 1983-10-24 1988-12-13 International Business Machines Corporation Vector processing unit
JPS60136872A (ja) * 1983-12-26 1985-07-20 Hitachi Ltd ベクトル処理装置
JPS61160134A (ja) * 1984-12-29 1986-07-19 Hitachi Ltd 指数アンダ−フロ−検出回路
US5341482A (en) * 1987-03-20 1994-08-23 Digital Equipment Corporation Method for synchronization of arithmetic exceptions in central processing units having pipelined execution units simultaneously executing instructions
JPH0679307B2 (ja) * 1987-10-22 1994-10-05 日本電気株式会社 コプロセッサの並行動作制御方式
US5043867A (en) * 1988-03-18 1991-08-27 Digital Equipment Corporation Exception reporting mechanism for a vector processor
US5113521A (en) * 1988-03-18 1992-05-12 Digital Equipment Corporation Method and apparatus for handling faults of vector instructions causing memory management exceptions
US5003462A (en) * 1988-05-31 1991-03-26 International Business Machines Corporation Apparatus and method for implementing precise interrupts on a pipelined processor with multiple functional units with separate address translation interrupt means
JP2510691B2 (ja) * 1988-09-07 1996-06-26 富士通株式会社 演算処理方法
US5398330A (en) * 1992-03-05 1995-03-14 Seiko Epson Corporation Register file backup queue
JPH06290023A (ja) * 1993-04-01 1994-10-18 Hitachi Ltd 浮動小数点演算装置

Also Published As

Publication number Publication date
US5838601A (en) 1998-11-17
JPH09223016A (ja) 1997-08-26

Similar Documents

Publication Publication Date Title
Zhang et al. Efficient multiple-precision floating-point fused multiply-add with mixed-precision support
US5880984A (en) Method and apparatus for performing high-precision multiply-add calculations using independent multiply and add instruments
US5530663A (en) Floating point unit for calculating a compound instruction A+B×C in two cycles
US6631392B1 (en) Method and apparatus for predicting floating-point exceptions
JPH06236257A (ja) データ・プロセッサにおいて浮動小数点実行ユニット内で後正規化を実行する方法および装置
JP3313560B2 (ja) 浮動小数点演算処理装置
JP3178746B2 (ja) 浮動小数点数のためのフォーマット変換装置
EP3640792A1 (en) Arithmetic processing device and method of controlling arithmetic processing device
US8239441B2 (en) Leading zero estimation modification for unfused rounding catastrophic cancellation
CN109901813B (zh) 一种浮点运算装置及方法
US5341320A (en) Method for rapidly processing floating-point operations which involve exceptions
US6941334B2 (en) Higher precision divide and square root approximations
US6148314A (en) Round increment in an adder circuit
US6061707A (en) Method and apparatus for generating an end-around carry in a floating-point pipeline within a computer system
JP3495173B2 (ja) 演算処理方法および演算処理装置
EP0840207A1 (en) A microprocessor and method of operation thereof
JP2517064B2 (ja) 非正規化数の処理方式
EP1282034A2 (en) Elimination of rounding step in the short path of a floating point adder
JP3064405B2 (ja) 複素数の演算処理方式
JP2020071642A (ja) 演算処理装置及びその制御方法
JP3462054B2 (ja) 並列加減算回路
JP3187402B2 (ja) 浮動小数点データ加減算回路
JP3522387B2 (ja) パイプライン演算装置
JP3612248B2 (ja) 固定小数点演算回路
JP3229057B2 (ja) 例外処理装置

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: 20031111

LAPS Cancellation because of no payment of annual fees