JPH07120266B2 - 例外処理装置 - Google Patents

例外処理装置

Info

Publication number
JPH07120266B2
JPH07120266B2 JP62244933A JP24493387A JPH07120266B2 JP H07120266 B2 JPH07120266 B2 JP H07120266B2 JP 62244933 A JP62244933 A JP 62244933A JP 24493387 A JP24493387 A JP 24493387A JP H07120266 B2 JPH07120266 B2 JP H07120266B2
Authority
JP
Japan
Prior art keywords
exception
processing
result
zero
tag
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 - Lifetime
Application number
JP62244933A
Other languages
English (en)
Other versions
JPS6488628A (en
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
NEC Corp
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 NEC Corp filed Critical NEC Corp
Priority to JP62244933A priority Critical patent/JPH07120266B2/ja
Publication of JPS6488628A publication Critical patent/JPS6488628A/ja
Publication of JPH07120266B2 publication Critical patent/JPH07120266B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Description

【発明の詳細な説明】 [産業上の利用分野] 本発明は例外処理装置に関し、特に、マイクロプロセッ
サにおける演算の前処理に使用する例外処理装置に関す
る。
[従来の技術] マイクロプロセッサは近時著しい発展を遂げたが、その
処理の内容が複雑になるにつれて、各種例外事項の検出
及び処理が必要になってきた。
特に、数値演算プロセッサにおいては、オーバーフロー
及びアンダーフロー等の計算途中での異常事態並びに負
数の平方根演算及びゼロによる除算のような数学的な約
束事に起因する不可能な演算等が発生した場合、その例
外の発生を使用者に通達すると共に必要に応じてデフォ
ルト値を返す等の例外処理をする必要がある場合が頻繁
に発生する。
このような例外事項については、全体の平均実行時間を
短縮するため、計算処理の前にこの例外事項を検出して
処理する。従来の数値演算プロセッサにおいては例外事
項は全てマイクロプログラムにより検出され、処理され
ている。
以下、数値演算プロセッサにおいて、データAをデータ
Bで除算する場合について説明する。データA及びデー
タBには夫々タグと呼ばれるデータの属性を示す情報が
付加されている。下記第1表はデータの属性とタグとの
対応を示すが、この第1表に示すように、タグによりそ
のデータがどのような値を示しているかをデータ自身を
調べずとも判断することができるようになっている。な
お、タグは8ビットデータとし、タグのLSB(最下位ビ
ット)は符号を示すものとする(0:正,1:負)。
除算をマイクロプログラムにより記述する場合、データ
A及びBの値によってはこのタグを判断するだけで、実
際に計算処理しなくても、発生する例外と判定結果とし
て返すべきデフォルト値を決定することができる場合が
ある。第2表はこのデータAをデータBで除算する場合
に発生する例外とその結果を示す。なお、第2表におい
て、各事項の上段は例外の種類、下段は除算結果とし、
“一”は不正演算又はゼロ除算が発生しないことを示
す。また、例外の発生と結果の決定はIEEE(Institute
of Electrical and Electronics Engineers)の浮動小
数点演算規格における例外マスク時の規定に準ずる。
そこで、通常、全体の平均実行時間を短縮するため、計
算処理の前にタグにより各例外処理ルーチンへ分岐さ
せ、各処理ルーチンにて例外発生の処理及びデフォルト
値の出力を行う。
第5図はデータAとデータBとの除算におけるマイクロ
プログラムを示すフローチャート図である。先ず判断31
によって被除数Aのタグを調べ、無限大を示している場
合には判断32へ分岐する。この分岐以降の処理は、第2
表において上部2行に示されている例外処理である。判
断32への分岐後、除数Bが無限大であると判断された場
合には処理33及び処理34により不正演算例外を発生して
不定記号を出力し、処理を終了する。これは、第2表に
おける項目1−1,1−2,2−1,2−2に該当する処理であ
る。
一方、判断32によって除数Bが無限大でないと判断され
た場合には、更に、判断35によって除数Bがゼロである
か否かを調べる。ゼロの場合にはラベルに分岐し、処
理44によって被除数Aの符号を結果の符号とし、ラベル
によって処理37に戻り、結果の絶対値部分を無限大記
号にして処理を終了する。これは第2表における項目1
−3,2−3に該当する処理である。一方、判断35の結果
がゼロでない場合は、処理36によって被除数Aの符号と
除数Bの符号の排他的論理和をとり、結果の符号とす
る。つまり、被除数Aと除数Bとが同符号である場合に
は結果の符号を正とし、異符号である場合には負とす
る。いずれの場合にも処理37によって結果の絶対値部分
を無限大記号とし、処理を終了する。第2表における項
目1−4,1−5,2−4,2−5に該当する処理である。
また、判断31による結果が被除数Aは無限大ではないと
示していた場合には、続いて判断38により除数Bは無限
大であるか否かが判断される。無限大であった場合には
処理39に分岐し、結果としてゼロを返し、処理を終了す
る。これは第2表における項目3−1,3−2,4−1,4−2,5
−1,5−2に該当する処理である。
一方、判断38の結果が無限大ではない場合には、被除数
A及び除数Bはいずれも無限大以外の値であるというこ
とになるので、第2表において項目3−3乃至3−5,4
−3乃至4−5,5−3乃至5−5に示される処理をする
ことになる。
次に、判断40と判断41とにより被除数A及び除数Bが共
にゼロであることが検出された場合は、ラベルへ分岐
し処理33及び34によって不正演算例外を発生して不定結
果を出力し、処理を終了する。これは第2表の項目3−
3に該当する処理である。一方、判断41により除数Bの
みがゼロでないと判断された場合はラベルへ分岐し、
処理39によりゼロを結果として出力し、処理を終了す
る。これは第2表の項目3−4,3−5に該当する処理で
ある。
また、判断40の結果がゼロではない場合、判断42により
除数Bはゼロか否かが判断され、ゼロである場合には有
限値をゼロで割ることになるので、処理43によりゼロ除
算例外を発生し、処理44によって結果の符号を被除数A
の符号と同一にする。その後、ラベルへ分岐し、処理
37により結果の絶対値部分を無限大記号とし、処理を終
了する。これは第2表の項目4−3,5−3に該当する処
理である。
一方、判断42により除数Bもゼロでないと判断される
と、被除数A、除数Bともに正又は負の有限数というこ
とになるので、前処理における例外検出及び結果の決定
は不可能となる。よって、処理を本処理に移し、前処理
ルーチンを終了する。このようにして、例外事項が検
出、処理される。
[発明が解決しようとする問題点] しかしながら、上述した数値演算プロセッサの除算にお
いては、数値演算プロセッサのプログラムによる前処理
によって例外事項が検出され、処理されており、本来の
演算処理以外にも複雑な処理ルーチンを用意する必要が
ある。
また、加減算、乗算、除算及び各種超越関数等、演算の
種類に応じて前処理による例外の発生及び結果の決定の
パターンが異なるので、全ての演算命令に対して専用の
複雑な前処理ルーチンを記述しておく必要がある。
このため、マイクロプログラムのための記憶領域を本来
の演算以外にも多量に使用してしまい、また、実行時間
も演算処理のみを行う場合に比して長くなるという問題
点がある。
本発明はかかる問題点に鑑みてなされたものであって、
例外事項を処理する前処理のマイクロプログラムを簡素
化すると共に、処理時間を短縮することができる例外処
理装置を提供することを目的とする。
[問題点を解決するための手段] 本発明に係る例外処理装置は、被演算データの属性を示
すタグと命令の種類を示す命令レジスタとが入力され演
算処理が不要な場合に演算処理不要フラグ及び所定の演
算出力を選択する選択信号を出力する例外デコーダと、
複数種類の演算出力がストアされており前記選択記号に
より指示された演算出力を出力する手段と、を有するこ
とを特徴とする。
[作用] 本発明においては、数値演算プロセッサの演算の前処理
の際に、演算の種類によってそのデコードパターンを決
定する例外デコーダに、演算データの属性を示すタグを
入力する。例外デコーダにこのタグ及び命令の種類を示
す命令レジスタが入力されると、例外デコーダは演算処
理が不要の場合には演算処理不要フラグを出力し、同時
に入力されたタグ及び命令レジスタに応じた選択信号を
出力手段に出力する。
出力手段には演算出力となる各種定数及び被演算データ
がストアされている。出力手段は演算処理不要フラグに
より演算処理不要が示された場合には、選択信号の指示
によりストアされている演算出力のうち1つを選択して
出力する。
[実施例] 以下、添付の図面を参照して本発明の実施例について説
明する。第1図は本発明の第1の実施例に係る例外処理
装置を示すブロック図である。
本実施例は例外処理装置を数値演算プロセッサの除算に
ついて適用したものである。被除数をA、除数をBと
し、データA及びデータBには夫々数値の符号、ゼロか
否か及び無限大は否かの属性を示すタグ(タグA及びタ
グB)が付与されている。例外デコーダ(以下、EXDと
もいう)11にはタグA12、タグB13及び命令レジスタ14が
入力される。命令レジスタ14は命令の種類を示すもので
あり、例外デコーダ11はこの命令の種類によりそのデコ
ードパターンを決定される。EXD11からはEXDフラグ(EX
DF)15、IEフラグ(IEF)16、ZEフラグ(ZEF)17、Sレ
ジスタ(SF)18及び選択信号19が出力される。EXDF15は
例外デコーダによる分岐を行うことを示すフラグであ
る。IEF16はデコード結果により不正演算例外が発生し
たことを示すフラグであり、ZEF17は同様にゼロ除算例
外が発生したことを示すフラグである。SF18は結果の符
号を示す1ビットのレジスタであり、選択信号19は結果
として返すイミディエート値等がストアされているレジ
スタ20乃至25のうち一つを選択するための7ビットの指
示信号である。EXDF15、IEF16、ZEF17、SF18及び選択信
号19はEXD11に入力されるタグA12、タグB13及び命令レ
ジスタ14により一意に決定される。
オペランドレジスタA20及びオペランドレジスタB21には
夫々演算数A及びBが保持されている。イミディエート
レジスタ22,23,24,25は夫々不定を示すコード、無限大
を示すコード、数値“1"、数値“0"が保持されている。
これらのレジスタは全てマルチプレクサ26に入力されて
おり、マルチプレクサ26は選択信号19によって、レジス
タ20乃至25のうち1つを選択して出力する。
下記第3表は選択信号19の内容とイミディエート値又は
レジスタとの対応を示し、下記第4表は除算の場合の例
外デコーダのデコード内容を示したものである。なお、
第4表のデコード表の内容は第2表の内容と同様であ
る。また、第4表において、EXDPは選択信号を示す。
次に、このように構成された例外処理装置の動作につい
て説明する。第2図は本発明の実施例に係る例外デコー
ダを使用した前処理ルーチンを示すフローチャート図で
ある。第2図に示すように、前処理ルーチンの開始後、
処理27によりEXD11は起動される。EXD11にタグA12、タ
グB13及び命令レジスタ14が入力されると、EXD11により
EXDF15、IEF16、ZEF17、SF18及び選択信号19が決定され
る。そして、判断28においては、EXDF15を判断して、例
外処理に分岐するか否か、つまり本処理を必要としない
か必要とするかが決定される。例外処理に分岐する場合
には処理29へ移る。この処理29においては、マルチプレ
クサ26は、レジスタ20乃至25にストアされている演算結
果の一つを選択信号19に基いて選択し、この選択結果を
演算結果用のレジスタ50に出力する。判断28において本
処理が必要であると判断された場合には、データA,Bが
本処理のプログラムに与えられる。
本実施例においては、例外の発生を伴う場合に、例外処
理が例外デコーダEXD11により直接なされるので、マイ
クロプログラムはその出力される結果の転送のみを行え
ばよい。従って、前処理に要するプログラムを著しく簡
素化することができる。
次に、具体的なデータを使用して第1の実施例を説明す
る。いま、被除数として正の数aがレジスタAに、除数
としてゼロがレジスタBに入っているものとする。この
場合、タグA及びBは第1表より“01000100",“010010
10"である。処理27によりEXD11を起動すると、EXD11は
前記第4表に示すように EXDF15=1(分岐し、本処理しない) IEF16=0(不正演算例外なし) ZEF17=1(ゼロ除算例外発生) SF18=0(正) 選択信号EXDP19=1100010(無限大)という情報を出力
する。この出力によりゼロ除算例外発生となり、マルチ
プレクサ26は選択信号19により正の無限大を出力し、こ
れが結果として転送される。この演算は(正の有限数)
÷(ゼロ)=(正の無限大)であるので、本実施例装置
を使用した前処理は正しい結果を得ていることが解る。
第3図は本発明の第2の実施例に係る例外処理装置を示
すブロック図である。第3図において第1図と同一物に
は同一符号を付して説明を省略する。第2の実施例は単
項演算における例外処理装置による例外事項の処理を示
したものである。具体例として第4図に示す指数関数y
=exについて説明する。この関数は第4図に示すグラフ
図からわかるように、入力値xが負の無限大、ゼロ及び
正の無限大の場合には夫々ゼロ、“1"及び正の無限大に
なり、下記第5表に示すように、演算処理せずに結果を
得ることができる。第3図に示すEXD30には下記第6表
に示すデコードパターンが設定してある。本実施例にお
いても、第1の実施例と同様に第2図に示す前処理ルー
チンを使用する。
いま、入力データxがゼロであるとすると、タグA12は
“01001010"である。処理27によってEXD30を起動する。
EXD30は第6表からわかるように EXDF15=1(分岐し、本処理しない) IEF16=0(不正演算例外なし) ZEF17=0(ゼロ除算例外なし) SF18=0(正) 選択信号EXDP19=1101000(“1")という情報を出力す
る。この出力により、不正演算例外及びゼロ除算例外発
生はなしとなり、正の値“1"が結果として転送される。
この演算はy=e0であるので、転送された結果が正しい
ことが解る。
[発明の効果] 以上、説明したように、本発明によれば、数値演算プロ
セッサの前処理における例外事項の検出及び処理(演算
結果の決定)を例外デコーダによりハードウエア的に行
うので、前処理に必要なマイクロプログラムを簡素にす
ることができ、演算の種類に拘らず前処理を共通化する
ことができる。また、前処理ルーチンに必要なマイクロ
プログラム用の記憶領域の割り当てが減少し、例外の処
理は複雑な処理ルーチンを介することなく、ハードウエ
アによりなされるので、処理時間を短縮することができ
る。
【図面の簡単な説明】
第1図は本発明の第1の実施例に係る例外処理装置を示
すブロック図、第2図はこの実施例による例外処理を示
すフローチャート図、第3図は本発明の第2の実施例に
係る例外処理装置を示すブロック図、第4図は指数関数
y=exを示すグラフ図、第5図は従来のマイクロプログ
ラムによる例外処理を示すフローチャート図である。 11,30;例外デコーダ、12;タグA、13;タグB、14;命令
レジスタ、15;EXDフラグ、16;IEフラグ、17;ZEフラグ、
18;Sレジスタ、19;選択信号、20;オペランドレジスタ
A、21;オペランドレジスタB、22〜25;イミディエート
レジスタ、27,29;処理、28;判断

Claims (1)

    【特許請求の範囲】
  1. 【請求項1】被演算データの属性を示すタグと命令の種
    類を示す命令レジスタとが入力され演算処理が不要の場
    合に演算処理不要フラグ及び所定の演算出力を選択する
    選択信号を出力する例外デコーダと、複数種類の演算出
    力がストアされており前記選択信号により指示された演
    算出力を出力する手段と、を有することを特徴とする例
    外処理装置。
JP62244933A 1987-09-29 1987-09-29 例外処理装置 Expired - Lifetime JPH07120266B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP62244933A JPH07120266B2 (ja) 1987-09-29 1987-09-29 例外処理装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP62244933A JPH07120266B2 (ja) 1987-09-29 1987-09-29 例外処理装置

Publications (2)

Publication Number Publication Date
JPS6488628A JPS6488628A (en) 1989-04-03
JPH07120266B2 true JPH07120266B2 (ja) 1995-12-20

Family

ID=17126125

Family Applications (1)

Application Number Title Priority Date Filing Date
JP62244933A Expired - Lifetime JPH07120266B2 (ja) 1987-09-29 1987-09-29 例外処理装置

Country Status (1)

Country Link
JP (1) JPH07120266B2 (ja)

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6045844A (ja) * 1983-08-24 1985-03-12 Hitachi Ltd 演算装置
JPS60136832A (ja) * 1983-12-26 1985-07-20 Hitachi Ltd タグ付きデ−タを扱う論理型デ−タ処理装置
JPS61288226A (ja) * 1985-06-17 1986-12-18 Panafacom Ltd 外部コンデイシヨン制御方式
JPS6232536A (ja) * 1985-08-06 1987-02-12 Fujitsu Ltd 符号付2進除算の結果補正と異常検出方式
US4845659A (en) * 1986-08-15 1989-07-04 International Business Machines Corporation Accelerated validity response permitting early issue of instructions dependent upon outcome of floating point operations

Also Published As

Publication number Publication date
JPS6488628A (en) 1989-04-03

Similar Documents

Publication Publication Date Title
EP1058185A1 (en) A multiply and accumulate apparatus and a method thereof
US6128614A (en) Method of sorting numbers to obtain maxima/minima values with ordering
EP0221577B1 (en) Microprogram control unit
US4882701A (en) Lookahead program loop controller with register and memory for storing number of loop times for branch on count instructions
EP0205809B1 (en) Vector processing
JP2008071130A (ja) Simd型マイクロプロセッサ
EP0735462A2 (en) Method and apparatus for selectively controlling interrupt latency in a data processing system
US4739470A (en) Data processing system
EP0201833A2 (en) Instruction processor
US6378067B1 (en) Exception reporting architecture for SIMD-FP instructions
US4878189A (en) Microcomputer having Z-flag capable of detecting coincidence at high speed
US20080215859A1 (en) Computer with high-speed context switching
JPH07120266B2 (ja) 例外処理装置
EP0343668B1 (en) Normalization control system for floating point arithmetic operations
JPH01503340A (ja) データ処理ユニット
US7010562B2 (en) Arithmetic circuit
JP2985093B2 (ja) 演算制御装置
JP2001344100A (ja) 複数のフラグレジスタを備えた中央演算処理装置
JPS6230455B2 (ja)
JPH02148140A (ja) 情報処理装置における条件分岐制御方式
JPH04316127A (ja) 情報処理装置
JPH01307831A (ja) 情報処理装置
JPS5851352A (ja) デ−タ処理装置
JPS63279321A (ja) マイクロプログラム制御装置
JPH0795262B2 (ja) 演算処理装置

Legal Events

Date Code Title Description
EXPY Cancellation because of completion of term
FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20071220

Year of fee payment: 12