JPH0769783B2 - 例外処理方式 - Google Patents

例外処理方式

Info

Publication number
JPH0769783B2
JPH0769783B2 JP62289912A JP28991287A JPH0769783B2 JP H0769783 B2 JPH0769783 B2 JP H0769783B2 JP 62289912 A JP62289912 A JP 62289912A JP 28991287 A JP28991287 A JP 28991287A JP H0769783 B2 JPH0769783 B2 JP H0769783B2
Authority
JP
Japan
Prior art keywords
exception
register
processing
unit
contents
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
JP62289912A
Other languages
English (en)
Other versions
JPH01130224A (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
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 JP62289912A priority Critical patent/JPH0769783B2/ja
Priority to US07/271,832 priority patent/US4961161A/en
Priority to EP19880119122 priority patent/EP0316904A3/en
Publication of JPH01130224A publication Critical patent/JPH01130224A/ja
Publication of JPH0769783B2 publication Critical patent/JPH0769783B2/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
    • 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
    • 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
    • G06F7/4991Overflow or underflow
    • 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
    • G06F7/49926Division by zero

Landscapes

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

Description

【発明の詳細な説明】 〔産業上の利用分野〕 本発明はLSIの方式設計に関し、特にマイクロプロセッ
サにおける例外処理方法に関する。
〔従来の技術〕
ここ数年で目覚ましい発展を遂げたマイクロプロセッサ
はその処理の内容が複雑になるにつれ、各種例外事項の
検出と処理が必要となってきた。
特に数値演算プロセッサにおいては、オーバーフロー/
アンダーフローなどの計算途中での異常事態や、負数の
平方根演算・ゼロによる除算のような数学上の約束事に
起因する不可能な演算など、例外としてその発生を使用
者に通達するとともに必要に応じてデフォルト値を返
す、もしくはディスティネーションレジスタを書き換え
ずに例外処理ルーチンヘトラップする、などの例外処理
をしなければならない場合が頻繁に発生する。
従来の数値演算プロセッサにおいてはこの例外処理をす
べてマイクロプログラムにより行なっていた。以下にこ
の例を示す。
いま、データAとデータBの演算によりゼロ除算例外
(除数がゼロである除算により発生する例外)が発生し
たとする。この場合、IEEEの規定する浮動小数点演算に
関する規格(ANSI/IEEE Std 754-1985)により、2通り
の処理が存在する。1つは例外が発生したことをその時
点では通知せずにゼロ除算例外のディフォルト値として
無限大を示す記号をディスティネーションレジスタに返
し、以降の演算処理を続行するマスク処理であり、もう
1つは例外が発生したことを直ちに通知し、ディスティ
ネーションレジスタは破壊せずに割込みを発生して例外
の処理を外部に任せるトラップ処理である。
トラップ処理の場合、例外発生を示すフラグにより終了
時に割込みを発生するだけでは演算結果の書き戻しのた
めディスティネーションレジスタを破壊してしまうこと
になり、以降の例外処理が正常に実行できない場合があ
る。よって、マスク処理の場合とトラップ処理の場合は
演算結果の書き戻しを行なう前にマイクロプログラムに
よる処理を分けなければならない。実際には第5図に示
すように、入力オペランドから例外が検知され(処理50
2)、発生した例外に該当する例外フラグを設定した
(処理503)後、その例外事項に対する例外処理方法の
指定を判断して(処理504)処理を分岐しなければなら
ず、マイクロプログラムが複雑になる一因となってい
た。
〔発明が解決しようとする問題点〕
上述した従来の技術では、2種類の例外処理をマイクロ
プログラムが判断し処理を分岐させるために、例外であ
るか否かの判断・分岐とあわせて2回の条件分岐が必要
となるためマイクロプログラムの記述が複雑になり、例
外処理の処理速度が遅くなるという欠点を有している。
〔発明の従来技術に対する相違点〕
従来、マイクロプログラムにより分岐させて処理してい
た例外処理のマスク/トラップの切り分けを、マイクロ
プログラムによる分岐は行なわずにハードウェアによっ
てディスティネーションレジスタへの書き戻しを制御す
る事により実現しているという相違点を有している。
〔問題点を解決するための手段〕
本発明の例外処理方式は、 演算により例外が発生したことを示す例外フラグと、 例外処理をマスク処理とするかトラップ処理とするかを
示す例外マスクフラグと、 演算結果を書き戻す必要のないことを示す演算結果書き
戻し禁止フラグと、 前記例外フラグと前記例外マスクフラグを入力し、演算
結果を書き戻す必要のないことを判断して前記演算結果
書き戻し禁止フラグを設定する書き戻し禁止フラグ設定
回路を有している。
〔実施例1〕 IEEEの浮動小数点演算規格に準拠した浮動小数点演算を
行なう場合、入力オペランドもしくは演算処理により4
種類の例外事項(不正演算例外,ゼロ除算例外,オーバ
ーフロー例外,アンダーフロー例外)を検出しなければ
ならない。また、それぞれの例外に対してディフォルト
値を返す処理(マスク処理)と、ディスティネーション
レジスタを保存して割込みを発生し、外部の例外処理ル
ーチンに処理を渡す処理(トラップ処理)の2通りの例
外処理をユーザーの選択により実行できるようにしなけ
ればならない。
本発明はこの2通りの例外処理のうち、トラップ処理が
指定された場合にマイクロプログラムによらずにハード
ウェアによってディスティネーションレジスタを誤った
演算結果の書き戻しから保護し、マイクロプログラムの
負担を軽減するものである。
第1図に本発明を用いたマイクロプロセッサ内部の例外
処理に関するハードウェア構成の例を示す。
101はマイクロプログラムに基づき全体のハードウェア
を制御する制御回路、102は入力されたオペランドを保
持するオペランドレジスタ、103はオペランドレジスタ1
02の内容から例外であることを判断してその旨を制御回
路101に通知する例外デコーダ、104は例外デコーダ103
により例外が検出されなかった場合に演算処理を行なう
演算回路、105は演算回路104もしくは制御回路101の出
力を保持する演算結果レジスタ、106から109はそれぞれ
不正演算例外,ゼロ除算例外,オーバーフロー例外,ア
ンダーフロー例外の発生を示す例外フラグ、同様に110
から113はそれらの例外処理をマスク処理とするかトラ
ップ処理とするかを示す例外マスクフラグ、114は演算
結果書き戻し禁止フラグ設定回路、115設定回路114によ
り設定される演算結果書き戻し禁止フラグ、116は書き
戻し禁止フラグ115により演算結果レジスタからの転送
を禁止する転送制御回路、117は外部に出力する結果デ
ータを保持するディスティネーションレジスタである。
以下、フローチャートを用いて第1図に示した実施例の
動作説明を行なう。
第2図に本発明による例外処理のフローチャートを示
す。これは第5図に示した従来の例外処理の例に本発明
による演算結果書き戻し禁止フラグを加えた場合の処理
例である。
201はオペランド入力、202は不正演算,ゼロ除算のよう
に演算前に入力オペランドを参照するだけで検出される
例外を発生したか否かを判断する処理、203は例外フラ
グの設定、204は例外が発生した場合にそのディフォル
ト値を演算結果と置き換える処理、205は例外が発生し
なかった場合の演算処理、206は演算結果を演算結果用
のレジスタに書き戻す処理である。
今、外部からオペランドレジスタ102に入力されたオペ
ランドを参照した結果、例外デコーダ103がゼロ除算例
外を検知したとする。制御回路101は例外デコーダ103か
らの信号によりゼロ除算例外フラグを設定する(処理20
2→処理203)。ここで、書き戻し禁止フラグ設定回路11
4により、例外フラグの設定と同時に演算結果書き戻し
禁止フラグ115も設定される。なお、書き戻し禁止フラ
グ設定回路114の内部は第3図に示す回路となってお
り、それぞれの例外フラグ301と例外マスクフラグ302の
反転信号との論理積をとり、そのトラップ例外発生信号
303の論理和を演算結果書き戻し禁止フラグ304の設定信
号とすることにより、マイクロプログラムによらずに演
算結果書き戻し禁止フラグ304を設定することができる
ようになっている。
次に制御回路101によりゼロ除算例外マスク処理のデフ
ォルト値が演算結果レジスタ105に設定され(処理20
4)、処理206に移る。ここで、ゼロ除算例外がマスク処
理の指定であった場合には演算結果書き戻し禁止フラグ
115は、‘書き戻し禁止’となっていないため、転送制
御回路116により演算結果がディスティネーションレジ
スタ117に書き戻される。また、ゼロ除算例外がトラッ
プ処理の指定であった場合には演算結果書き戻し禁止フ
ラグ115は‘書き戻し禁止’を示しているため、転送制
御回路116により演算結果レジスタ105内容は転送されず
にディスティネーションレジスタ117は例外発生前の状
態が保存される。よって、処理終了後にトラップ例外発
生信号303によって割込みが発生し、例外処理ルーチン
が起動されても正常に例外処理が実行できることにな
る。
〔実施例2〕 上述の実施例では演算前に検出される例外な処理に対す
る本発明の有用性を述べたが、演算中に検出される例外
(オーバーフロー例外,アンダーフロー例外)の例外ト
ラップ処理が不正演算例外,ゼロ除算例外と同様にディ
スティネーションレジスタ保存となる場合にはこれらの
例外の処理に対しても本発明ほ有効である。以下にその
例を述べる。
この場合の従来の処理を第6図に、本発明を施した場合
の処理を第4図に示す。
演算回路104により演算が行なわれ(処理401)、この演
算中にオーバーフロー例外が発生したとする。オーバー
フロー例外フラグ108は例外の発生した時点で演算処理4
01の中で設定される。ここで、書き戻しき禁止フラグ設
定回路114により、例外フラグの設定と同時に演算結果
書き戻し禁止フラグ115も設定される。
以降は実施例1と同様に、オーバーフロー例外マスク処
理のデフォルト値が演算結果と置き換えられ(処理40
3)、演算結果書き戻し禁止フラグ115と演算結果の書き
戻し処理404によりオーバーフロー例外がマスク処理の
指定であった場合には演算結果がディスティネーション
レジスタ117に書き戻され、オーバーフロー例外がトラ
ップ処理の指定であった場合にはディスティネーション
レジスタ117は破壊されず例外発生前の状態が保存され
る。よって、演算中にトラップ例外が発生した場合にも
正常に例外処理が実行できることになる。
〔発明の効果〕
以上説明したように本発明は、例外処理に演算結果書き
戻し禁止フラグを導入することにより、マイクロプログ
ラムにおける例外処理ルーチン中の例外処理の種類(マ
スク/トラップ)を判断する分岐命令と例外トラップ処
理の場合のルーチンの記述を省略することができるとい
う効果がある。
また、マイクロプログラム制御を用いずハードウェアシ
ーケンサにより制御を行なうマイクロプロセッサにおい
ても、本発明によりシーケンサの例外処理部分を簡略化
することができる。
さらに本発明はIEEE標準の浮動小数点処理に限らず、特
定の条件を満たした場合のみディスティネーションレジ
スタへの書き戻しを中止しなければならないような処理
を行なうマイクロプロセッサに応用することも可能であ
る。
【図面の簡単な説明】
第1図は本発明を用いたハードウェア構成の実施例であ
り、 第2図は演算前に検出できる例外の処理に本発明を施し
た実施例のフローチャート、 第3図は、書き戻し禁止フラグ設定回路の詳細図、 第4図は、演算中に発生する例外の処理に本発明を施し
た実施例のフローチャート、 第5図は演算前に検出できる例外に対する処理の従来の
フローチャート、 第6図は演算中に発生する例外に対する処理の従来のフ
ローチャートである。 110,113……フラグ。

Claims (1)

    【特許請求の範囲】
  1. 【請求項1】演算を指示する情報を保持する第1のレジ
    スタと前記第1のレジスタの内容に応じて前記演算を行
    う演算回路とを備えた演算部と、 前記演算部の出力を保持する第2のレジスタと、 前記第2のレジスタの内容を転送されて保持する第3の
    レジスタと、 前記演算部に接続され前記演算部において生じる所定の
    例外動作を検出して、前記所定の例外動作が生じること
    を示す例外記号を出力すると共に前記所定の例外動作に
    対応して所定の出力値を前記第2のレジスタに書き込む
    例外制御部と、 前記例外動作が検出された場合において、前記所定の出
    力値を前記第3のレジスタへ転送する第1の例外処理及
    び前記転送をせず第3のレジスタの保持内容を維持する
    第2の例外処理の一方を、選択的に指定する情報を保持
    し、前記転送を指定するとき指定信号を出力する指定部
    と、 前記例外信号が出力されかつ前記指定信号が出力されて
    いないことを検出して転送制御信号を発生する論理回路
    と、 前記転送制御信号に応じて前記第2のレジスタの内容の
    前記第3のレジスタへの転送を選択的に禁止する転送制
    御部とを有し、 前記例外動作が検出されないときは前記演算部の出力を
    前記第3のレジスタに転送し、前記例外動作が検出され
    たときは前記例外制御部により前記第2のレジスタに前
    記所定の出力値を書き込むと共に前記論理回路にて前記
    指定部の内容に応じて前記転送制御信号を発生して前記
    第1及び第2の例外処理の一方を選択的に実行すること
    を特徴とする例外処理方式。
JP62289912A 1987-11-16 1987-11-16 例外処理方式 Expired - Fee Related JPH0769783B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP62289912A JPH0769783B2 (ja) 1987-11-16 1987-11-16 例外処理方式
US07/271,832 US4961161A (en) 1987-11-16 1988-11-16 Arithmetic processor performing mask and trap operations for exceptions
EP19880119122 EP0316904A3 (en) 1987-11-16 1988-11-17 Arithmetic processor performing mask and trap operations for exceptions

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP62289912A JPH0769783B2 (ja) 1987-11-16 1987-11-16 例外処理方式

Publications (2)

Publication Number Publication Date
JPH01130224A JPH01130224A (ja) 1989-05-23
JPH0769783B2 true JPH0769783B2 (ja) 1995-07-31

Family

ID=17749375

Family Applications (1)

Application Number Title Priority Date Filing Date
JP62289912A Expired - Fee Related JPH0769783B2 (ja) 1987-11-16 1987-11-16 例外処理方式

Country Status (3)

Country Link
US (1) US4961161A (ja)
EP (1) EP0316904A3 (ja)
JP (1) JPH0769783B2 (ja)

Families Citing this family (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0797313B2 (ja) * 1989-08-30 1995-10-18 株式会社東芝 計算機及びこの計算機に用いられる演算方法
US5327567A (en) * 1989-11-16 1994-07-05 Texas Instruments Incorporated Method and system for returning emulated results from a trap handler
US5463778A (en) * 1989-11-16 1995-10-31 Texas Instruments Incorporated User controlled trap handler
US5210839A (en) * 1990-12-21 1993-05-11 Sun Microsystems, Inc. Method and apparatus for providing a memory address from a computer instruction using a mask register
US5257214A (en) * 1992-06-16 1993-10-26 Hewlett-Packard Company Qualification of register file write enables using self-timed floating point exception flags
US5530874A (en) * 1993-02-02 1996-06-25 3Com Corporation Network adapter with an indication signal mask and an interrupt signal mask
DE4434895C2 (de) * 1993-12-23 1998-12-24 Hewlett Packard Co Verfahren und Vorrichtung zur Behandlung von Ausnahmebedingungen
JP3105738B2 (ja) * 1994-06-10 2000-11-06 日本電気株式会社 情報処理装置
DE69626282T2 (de) * 1995-06-01 2004-04-08 Fujitsu Ltd., Kawasaki Programmierbare vorrichtung und verfahren zum befehlsauffang
US5748516A (en) * 1995-09-26 1998-05-05 Advanced Micro Devices, Inc. Floating point processing unit with forced arithmetic results
US5812439A (en) * 1995-10-10 1998-09-22 Microunity Systems Engineering, Inc. Technique of incorporating floating point information into processor instructions
US5657445A (en) * 1996-01-26 1997-08-12 Dell Usa, L.P. Apparatus and method for limiting access to mass storage devices in a computer system
US5862066A (en) * 1997-05-01 1999-01-19 Hewlett-Packard Company Methods and apparatus for fast check of floating point zero or negative zero
US6408379B1 (en) * 1999-06-10 2002-06-18 Advanced Micro Devices, Inc. Apparatus and method for executing floating-point store instructions in a microprocessor
US6571265B1 (en) * 1999-10-29 2003-05-27 Intel Corporation Mechanism to detect IEEE underflow exceptions on speculative floating-point operations
JP2003216418A (ja) * 2002-01-25 2003-07-31 Oki Electric Ind Co Ltd 演算回路
US10387151B2 (en) 2007-12-31 2019-08-20 Intel Corporation Processor and method for tracking progress of gathering/scattering data element pairs in different cache memory banks
US7984273B2 (en) 2007-12-31 2011-07-19 Intel Corporation System and method for using a mask register to track progress of gathering elements from memory
US8447962B2 (en) * 2009-12-22 2013-05-21 Intel Corporation Gathering and scattering multiple data elements
US10175990B2 (en) 2009-12-22 2019-01-08 Intel Corporation Gathering and scattering multiple data elements
US9626333B2 (en) 2012-06-02 2017-04-18 Intel Corporation Scatter using index array and finite state machine
US8972697B2 (en) 2012-06-02 2015-03-03 Intel Corporation Gather using index array and finite state machine
JP7027857B2 (ja) * 2017-12-07 2022-03-02 株式会社デンソー 制御装置

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4338675A (en) * 1980-02-13 1982-07-06 Intel Corporation Numeric data processor
US4460970A (en) * 1981-05-22 1984-07-17 Data General Corporation Digital data processing system using unique techniques for handling the leading digits and the signs of operands in arithmetic operations
JPH0619700B2 (ja) * 1983-09-28 1994-03-16 株式会社東芝 演算装置
JPS60136872A (ja) * 1983-12-26 1985-07-20 Hitachi Ltd ベクトル処理装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
「DEMOS−EPL/1文法説明書」(昭54)日本電信電話公社P.151−171

Also Published As

Publication number Publication date
JPH01130224A (ja) 1989-05-23
EP0316904A3 (en) 1991-03-20
EP0316904A2 (en) 1989-05-24
US4961161A (en) 1990-10-02

Similar Documents

Publication Publication Date Title
JPH0769783B2 (ja) 例外処理方式
JP2539199B2 (ja) デジタルプロセッサ制御装置
JP3014381B2 (ja) Ieee準拠浮動小数点ユニット
US5596733A (en) System for exception recovery using a conditional substitution instruction which inserts a replacement result in the destination of the excepting instruction
WO1991011765A1 (en) Architecture for minimal instruction set computing system
JPH113226A (ja) 統合グラフィックス機能を有するcpu用のビジュアル命令セット
US6216222B1 (en) Handling exceptions in a pipelined data processing apparatus
US5440703A (en) System and method for saving state information in a multi-execution unit processor when interruptable instructions are identified
JP4219507B2 (ja) コンピュータ動作方法
JPH0213333B2 (ja)
US5469552A (en) Pipelined data processor having combined operand fetch and execution stage to reduce number of pipeline stages and penalty associated with branch instructions
JPH0795278B2 (ja) 処理装置の割込制御方式
JP3705811B2 (ja) 再構成可能なプログラム状態語を有するマイクロコントローラ
JPH02125330A (ja) データ処理装置
JP2520882B2 (ja) デ−タ処理装置およびデ−タ処理方法
JP2557629B2 (ja) 割込方式
JP2562838B2 (ja) プロセッサ及びストアバッファ制御方法
JPS62267869A (ja) ベクトル・プロセツサにおける演算例外時の処理方式
JPH0352092B2 (ja)
GB2077009A (en) Microprocessor
JPH0258648B2 (ja)
JPS62154023A (ja) オペランド・デ−タのマスク読み出し制御方式
JPS63247834A (ja) 浮動小数点関数擬似命令処理方法
JPH03226830A (ja) 情報処理装置
JPH03142528A (ja) 情報処理装置

Legal Events

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