JPH0546390A - 電子計算機の演算エラー情報保持装置 - Google Patents

電子計算機の演算エラー情報保持装置

Info

Publication number
JPH0546390A
JPH0546390A JP3199541A JP19954191A JPH0546390A JP H0546390 A JPH0546390 A JP H0546390A JP 3199541 A JP3199541 A JP 3199541A JP 19954191 A JP19954191 A JP 19954191A JP H0546390 A JPH0546390 A JP H0546390A
Authority
JP
Japan
Prior art keywords
error
destination register
holding means
instruction
register number
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.)
Granted
Application number
JP3199541A
Other languages
English (en)
Other versions
JP2793386B2 (ja
Inventor
Shinichiro Suzuki
慎一郎 鈴木
Yoichiro Takeuchi
陽一郎 竹内
Tei Ishikawa
禎 石川
Ikuo Uchibori
郁夫 内堀
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.)
Toshiba Corp
Original Assignee
Toshiba 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 Toshiba Corp filed Critical Toshiba Corp
Priority to JP3199541A priority Critical patent/JP2793386B2/ja
Priority to US07/926,174 priority patent/US5283891A/en
Publication of JPH0546390A publication Critical patent/JPH0546390A/ja
Application granted granted Critical
Publication of JP2793386B2 publication Critical patent/JP2793386B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

  • Advance Control (AREA)
  • Debugging And Monitoring (AREA)

Abstract

(57)【要約】 【目的】 高速性能を維持しながら、演算エラーのリカ
バリー性能も向上できるパイプライン演算可能な電子計
算機を実現する。 【構成】 演算ステータス保持制御手段によって各演算
の完了ごとにその演算ステータスを対応する番号の演算
ステータスレジスタに保持させ、デスティネーションレ
ジスタ番号保持制御手段によって、演算エラー割込みを
伴うエラーの発生時に、その割込みを遅延させ、その間
のすべての演算のデスティネーションレジスタ番号をそ
れらの演算が完了するごとに順次、デスティネーション
レジスタ番号保持手段に保持していくようにして、性能
を犠牲にすることなく、演算エラーに対するリカバリー
の可能性を高める。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】この発明は、パイプライン演算を
行なう電子計算機における演算エラー情報の保持を行な
う電子計算機の演算エラー情報保持装置に関する。
【0002】
【従来の技術】従来、よりいっそうの演算性能向上のた
めに図3に示すようなパイプライン演算を実施している
電子計算機が多くある。
【0003】このパイプライン演算は、例えば最初の演
算命令OP−1をフェッチ(F)し、次のマシンサイク
ルの間に、この演算命令OP−1をデコード(D)する
と共に、これと並行して次の演算命令OP−2をフェッ
チし、さらに次のマシンサイクルの間に、最初の演算命
令OP−1を実行(E)すると共に、演算命令OP−2
についてはデコードし、新たな演算命令OP−3につい
てはフェッチする。そしてさらに次のサイクルでは、実
行処理が完了した演算命令OP−1についてはその処理
結果をライトバック(W)すると共に、新たな命令をフ
ェッチしてくる演算方式である。つまり、実行ステージ
が1パイプラインサイクルで終わらなくても、命令パイ
プラインを止めることなく、同じ演算器を利用する命令
を含めて、後続の命令を順次フェッチし、実行していく
演算方式である。
【0004】このようなパイプライン演算を行なう電子
計算機において、演算エラーが発生した場合、エラーを
発生させた命令、またはリカバリー時の操作対象となる
演算のデスティネーションレジスタなどを特定すること
は困難、あるいは不可能であった。それは、パイプライ
ン演算の実行中に演算エラー割込みを伴うエラーが発生
しても、割込みルーチンからの復帰後の動作に矛盾を生
じさせないために、エラー発生までにフェッチされてい
る命令がすべて完了するのを待ってから演算エラー割込
みルーチンの実行を開始するようにしており、その結
果、演算エラー割込みの開始時にはすでに演算エラーを
発生した命令に後続する他の命令も実行されてしまって
いることによる。このため、従来は、演算エラー発生箇
所の命令後レベルでの特定ができないものと諦めている
ことが多かった。
【0005】また、パイプライン演算を行なう演算器に
おいて、演算エラー割込みを伴う演算エラーが発生した
場合、割込みからの復帰後の動作に矛盾を生じさせない
ため、その時までにフェッチした命令すべての実行、つ
まり命令パイプラインのライトバックステージ(W)ま
でが完了してから、実際に割り込まなければならないこ
とがあるが、このときには、図4に示すようにある命
令、例えばOP−1で演算エラー割込みを伴うエラー
(演算エラー1)が発生し、すでにフェッチされている
すべての命令OP−2,OP−3,OP−4の実行完了
を待つ間にそれらの命令にも演算エラー(演算エラー
2)が発生すると、演算エラー割込み処理ルーチンへ飛
び込んだ時点で複数の演算エラーが発生していることに
なる。
【0006】ところが、このような第2、第3のエラー
は見落とされることが普通であり、実際には不完全なエ
ラー情報しか得られないことになっていた。
【0007】さらに、実行サイクル数が異なるパイプラ
イン演算命令が近接して配置されていると、図4に示す
OP−3,OP−4のようにフェッチの順序と異なる順
序で命令の実行が完了することがあるが、このような場
合には、演算エラーが発生するタイミングも、その順序
がフェッチと逆になり得る。特に、実行ステージ(E)
で複数の異なるプロセッサを同時に利用できる並列処理
プロセッサにおいてその可能性が高く、この順序を正し
く認識して正確なリカバリー処理を実施することも容易
ではなかった。
【0008】このように、従来のパイプライン演算を行
なう電子計算機では、エラーリカバリーの可能性が小さ
く、高性能化のために信頼性をある程度犠牲にする傾向
があった。そして、逆に、高い信頼性を特徴とする電子
計算機では、例えば、命令パイプラインの実行ステージ
が1マシンサイクルを超えるときにはその分、命令パイ
プラインをストールさせて実行ステージには1つの命令
しか存在しないように制御するなどして、演算パイプラ
インによるいっそうの性能向上は諦めても、確実に演算
エラーの発生場所を特定し、リカバリー処理を可能とし
ていく傾向にあった。
【0009】
【発明が解決しようとする課題】以上のように、従来の
パイプライン演算を行なう電子計算機では、演算エラー
発生部分の命令語レベルでの特定がきわめて困難であ
り、また、演算エラーが重なっている場合、すなわち、
最初の演算エラー発生からすべてのフェッチ済み命令が
完了して演算エラー割込みルーチンへ飛び込むまでの間
に他の演算エラーが発生した場合、その発生回数や順序
の特定がきわめて困難であり、パイプライン演算によっ
て高性能化を達成することができても、演算エラーの正
確なリカバリー実現の可能性が小さく、高い信頼性を確
保することができない問題点があった。
【0010】この発明は、このような従来の問題点に鑑
みなされたもので、高性能化のためのパイプライン演算
を行なう電子計算機において、並列に実行される演算命
令のエラー情報を正確に認識できるようにし、演算性能
を犠牲にすることになく、演算エラーに対するリカバリ
ー機能も信頼性の高いものとすることができる電子計算
機の演算エラー情報保持装置を提供することを目的とす
る。
【0011】
【課題を解決するための手段】この発明は、パイプライ
ン演算を行なう電子計算機の演算エラー情報保持装置に
おいて、演算命令のデスティネーションオペランドとし
て指定可能な各レジスタごとに設けられた演算ステータ
スレジスタと、演算命令のデスティネーションレジスタ
の番号を複数個保持することができるデスティネーショ
ンレジスタ番号保持手段と、各演算の完了ごとにその演
算ステータスを対応する番号の前記演算ステータスレジ
スタに保持させる演算ステータス保持制御手段と、演算
エラー割込みを伴うエラーの発生時に、その割込みを遅
延させ、その間のすべての演算のデスティネーションレ
ジスタ番号をそれらの演算が完了するごとに順次、前記
デスティネーションレジスタ番号保持手段に保持してい
くデスティネーションレジスタ番号保持制御手段とを備
えたものである。
【0012】
【作用】この発明の電子計算機の演算エラー情報保持装
置では、演算ステータス保持制御手段によって各演算の
完了ごとにその演算ステータスを対応する番号の演算ス
テータスレジスタに保持させ、デスティネーションレジ
スタ番号保持制御手段によって、演算エラー割込みを伴
うエラーの発生時に、その割込みを遅延させ、その間の
すべての演算のデスティネーションレジスタ番号をそれ
らの演算が完了するごとに順次、デスティネーションレ
ジスタ番号保持手段に保持していく。
【0013】こうして、演算エラー発生時には、エラー
の発生した演算命令のデスティネーションレジスタをデ
スティネーションレジスタ番号保持手段によって直接知
ることができ、また、このデスティネーションレジスタ
番号保持手段に保持されている演算命令の演算ステータ
スをデスティネーションレジスタに対応する演算ステー
タス保持手段によって知ることができ、さらには、演算
エラー発生から割込み発生までの間の演算の有無や、演
算があった場合にそれらの完了順序やそれらにも演算エ
ラーが発生したか否かをも知ることができ、性能を犠牲
にすることなく、演算エラーに対するリカバリーの可能
性を高めることができる。
【0014】
【実施例】以下、この発明の実施例を図に基づいて詳説
する。
【0015】図1はこの発明の一実施例のブロック図を
示しており、この実施例の電子計算機の演算エラー情報
保持装置は、パイプライン演算を実行することができる
演算器1と、演算命令のオペランドとして指定され、使
用されるレジスタr0〜rnで構成されるレジスタファ
イル2と、レジスタファイル2の各レジスタr0,r
1,r2,…,rnに1対1に対応するステータスレジ
スタs0,s1,s2,…,snで構成され、演算のデ
スティネーションレジスタに対応するステータスレジス
タに演算ステータスを格納するようにした演算ステータ
ス保持手段3を備えている。
【0016】また、この実施例の演算エラー情報保持装
置は、演算のデスティネーションレジスタ番号0,1,
2,…,nを保持していくためのレジスタdn0,dn
1.dn2,…,dn6から構成されるデスティネーシ
ョンレジスタ番号保持手段4を備えている。
【0017】このデスティネーションレジスタ番号保持
手段4は、演算エラー割込みを伴うエラーが発生する
と、その時点から、それまでにフェッチ済みの複数の命
令がすべて完了するまでの間、演算結果をレジスタファ
イル2に書き戻すライトバックを行なうたびに、レジス
タdn0からdn6までに対して順に、ライトバックさ
れたレジスタの番号を保存していく。
【0018】なお、図示実施例では、このデスティネー
ションレジスタ番号保持手段4は0〜6までの7個で構
成されているが、一般には、この個数を後述するように
図2に示すようにして決定する。すなわち、本レジスタ
の個数は、演算エラー割込みを伴うエラー発生時点から
それまでにフェッチされたすべての命令が完了するまで
間に、ライトバックを迎え得る命令の最大数とする。
【0019】また、レジスタdn0,dn1,…,dn
6のそれぞれは、同時に命令パイプライン中のライトバ
ックステージを迎え得る演算命令数の最大個数分のレジ
スタ番号フィールドで構成する。そして、その最大個数
分の演算命令が同時にライトバックステージを迎えて
も、それらのデスティネーションレジスタの番号はすべ
て同時にレジスタdn0,dn1,…,dn6のいずれ
か1つのレジスタに保持される。一般に、この最大個
数、すなわち個々のデスティネーションレジスタ番号保
持用レジスタ内のレジスタ番号フィールドの数は、演算
器1の個数分に等しくなる。
【0020】さらに、この実施例の演算エラー情報保持
装置は、演算ステータスをその演算のデスティネーショ
ンレジスタに対応する演算ステータス保持手段3内のレ
ジスタs0,s1,s2,…,snにセーブしていき、
演算割込みを伴うエラーが発生し、演算ステータスなど
によって演算エラー検出がなされると、演算結果として
書き戻されるレジスタの番号をデスティネーションレジ
スタ番号保持手段4内のレジスタdn0,dn1,…,
dn6へ順次、記録していく制御装置5を備えている。
【0021】次に、上記の構成の電子計算機の演算エラ
ー情報保持装置の動作について説明する。
【0022】電子計算機は図2に示すようにパイプライ
ン方式で命令を処理していき、その命令パイプラインは
フェッチ(F)、デコード(D)、実行(E)、ライト
バック(W)の4ステージから構成され、演算器1はパ
イプライン演算を行なうことができ、演算エラーはライ
トバックステージのみ発生するものとし、図1の実施例
では、演算エラーが発生した時点までにフェッチ済みの
命令がすべて完了するまでの間に起こり得る演算結果の
最大ライトバック回数を7回として、以下、この実施例
の動作を説明する。
【0023】演算のライトバックステージでは、毎回、
そのライトバック対象レジスタ、すなわち、その演算の
デスティネーションレジスタr0,r1,r2,…,r
nに対応するステータス保持用レジスタs0,s1,s
2,…,snのいずれかに、その演算ステータスを制御
装置5によって書き込む。
【0024】ここで、演算エラー割込みを伴うエラーが
発生した場合、図2に示すように、まずそのデスティネ
ーションレジスタ番号を制御装置5の機構によってデス
ティネーションレジスタ番号保持手段4のうちのレジス
タdn0に書き込む。
【0025】その後、パイプライン演算する場合に、割
込みからの復帰後、矛盾なく動作を継続させるために新
たな命令フェッチを中止し、ここまでにフェッチされて
いる命令をすべて完了させてから割り込む。その間、そ
れらの命令のうち、演算命令がライトバックサイクルを
迎えるごとに、図2に示すように、上記と同じようにし
てステータスレジスタ保持手段3を構成するステータス
レジスタs0〜snのうち、演算のデスティネーション
レジスタ、すなわちライトバック対象レジスタに対応す
るレジスタに演算ステータスを書き込み、同デスティネ
ーションレジスタの番号をデスティネーションレジスタ
番号保持手段4のレジスタdn1〜dn6に書き込んで
いく。
【0026】この結果、演算エラー割込み発生時、その
原因となった演算のデスティネーションレジスタ番号を
デスティネーションレジスタ番号保持手段4のレジスタ
dn0に格納されている情報から直接知ることができ、
その演算ステータスも同時に知ることができる。
【0027】さらに、デスティネーションレジスタ番号
保持手段4のレジスタdn1〜dn6に格納されている
情報から、演算エラー発生から割込み発生までの間に実
行されたすべての演算命令について、その終了順序およ
びそれらの命令のデスティネーションレジスタ番号を知
ることができる。また、それらの演算でもエラーが発生
していないかどうか、エラーが発生している場合にはそ
の演算ステータスも、最初の演算ステータスと同様、対
応する演算ステータス保持手段3のステータスレジスタ
によって知ることができる。
【0028】以上のようにして、パイプライン演算実行
時の演算エラー情報を正確に取得でき、高速性能を犠牲
にすることなく、エラーリカバリーの可能性を大幅に向
上させることができるようになる。
【0029】なお、この発明は上記の実施例に限定され
ることなく、パイプライン演算を行なう電子計算機一般
に広く応用することができる。
【0030】
【発明の効果】以上のようにこの発明によれば、演算ス
テータス保持制御手段によって各演算の完了ごとにその
演算ステータスを対応する番号の演算ステータスレジス
タに保持させ、デスティネーションレジスタ番号保持制
御手段によって、演算エラー割込みを伴うエラーの発生
時に、その割込みを遅延させ、その間のすべての演算の
デスティネーションレジスタ番号をそれらの演算が完了
するごとに順次、デスティネーションレジスタ番号保持
手段に保持していくようにしているため、演算エラー発
生時には、エラーの発生した演算命令のデスティネーシ
ョンレジスタをデスティネーションレジスタ番号保持手
段によって直接知ることができ、また、このデスティネ
ーションレジスタ番号保持手段に保持されている演算命
令の演算ステータスをデスティネーションレジスタに対
応する演算ステータス保持手段によって知ることがで
き、さらには、演算エラー発生から割込み発生までの間
の演算の有無や、演算があった場合にそれらの完了順序
やそれらにも演算エラーが発生したか否かをも知ること
ができ、性能を犠牲にすることなく、演算エラーに対す
るリカバリーの可能性を高めることができる。
【図面の簡単な説明】
【図1】この発明の一実施例のブロック図。
【図2】上記実施例の動作を説明する説明図。
【図3】一般的なパイプライン演算動作を説明する説明
図。
【図4】従来例のブロック図。
【符号の説明】
1 演算器 2 レジスタファイル 3 演算ステータス保持手段 4 デスティネーションレジスタ番号保持手段 5 制御装置 r0,r1,r2,…,rn レジスタ s0,s1,s2,…,sn 演算ステータスレジスタ dn0,dn1,dn2,…,dn6 デスティネーシ
ョンレジスタ番号レジスタ
─────────────────────────────────────────────────────
【手続補正書】
【提出日】平成3年11月6日
【手続補正1】
【補正対象書類名】明細書
【補正対象項目名】0004
【補正方法】変更
【補正内容】
【0004】このようなパイプライン演算を行なう電子
計算機において、演算エラーが発生した場合、エラーを
発生させた命令、またはリカバリー時の操作対象となる
演算のデスティネーションレジスタなどを特定すること
は困難、あるいは不可能であった。それは、パイプライ
ン演算の実行中に演算エラー割込みを伴うエラーが発生
しても、割込みルーチンからの復帰後の動作に矛盾を生
じさせないために、エラー発生までにフェッチされてい
る命令がすべて完了するのを待ってから演算エラー割込
みルーチンの実行を開始するようにしており、その結
果、演算エラー割込みの開始時にはすでに演算エラーを
発生した命令に後続する他の命令も実行されてしまって
いることによる。このため、従来は、演算エラー発生箇
所の命令レベルでの特定ができないものと諦めている
ことが多かった。
───────────────────────────────────────────────────── フロントページの続き (72)発明者 内堀 郁夫 東京都府中市東芝町1番地 株式会社東芝 府中工場内

Claims (1)

    【特許請求の範囲】
  1. 【請求項1】 パイプライン演算を行なう電子計算機の
    演算エラー情報保持装置において、 演算命令のデスティネーションオペランドとして指定可
    能な各レジスタごとに設けられた演算ステータスレジス
    タと、 演算命令のデスティネーションレジスタの番号を複数個
    保持することができるデスティネーションレジスタ番号
    保持手段と、 各演算の完了ごとにその演算ステータスを対応する番号
    の前記演算ステータスレジスタに保持させる演算ステー
    タス保持制御手段と、 演算エラー割込みを伴うエラーの発生時に、その割込み
    を遅延させ、その間のすべての演算のデスティネーショ
    ンレジスタ番号をそれらの演算が完了するごとに順次、
    前記デスティネーションレジスタ番号保持手段に保持し
    ていくデスティネーションレジスタ番号保持制御手段と
    を備えて成る電子計算機の演算エラー情報保持装置。
JP3199541A 1991-08-08 1991-08-08 電子計算機の演算エラー情報保持装置 Expired - Fee Related JP2793386B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP3199541A JP2793386B2 (ja) 1991-08-08 1991-08-08 電子計算機の演算エラー情報保持装置
US07/926,174 US5283891A (en) 1991-08-08 1992-08-07 Error information saving apparatus of computer

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP3199541A JP2793386B2 (ja) 1991-08-08 1991-08-08 電子計算機の演算エラー情報保持装置

Publications (2)

Publication Number Publication Date
JPH0546390A true JPH0546390A (ja) 1993-02-26
JP2793386B2 JP2793386B2 (ja) 1998-09-03

Family

ID=16409544

Family Applications (1)

Application Number Title Priority Date Filing Date
JP3199541A Expired - Fee Related JP2793386B2 (ja) 1991-08-08 1991-08-08 電子計算機の演算エラー情報保持装置

Country Status (1)

Country Link
JP (1) JP2793386B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6839832B2 (en) 1992-03-05 2005-01-04 Seiko Epson Corporation Register file backup queue

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6839832B2 (en) 1992-03-05 2005-01-04 Seiko Epson Corporation Register file backup queue
US7395417B2 (en) 1992-03-05 2008-07-01 Seiko Epson Corporation Register file backup queue
US7657728B2 (en) 1992-03-05 2010-02-02 Seiko Epson Corporation Register file backup queue

Also Published As

Publication number Publication date
JP2793386B2 (ja) 1998-09-03

Similar Documents

Publication Publication Date Title
US5003462A (en) Apparatus and method for implementing precise interrupts on a pipelined processor with multiple functional units with separate address translation interrupt means
EP0423906B1 (en) Method of and apparatus for nullifying an instruction
JPH06214799A (ja) コンピュータ・システムにおける順不同ロード動作の性能を改善する方法と装置
EP0372751B1 (en) Pipelined data-processing apparatus
JPH02257219A (ja) パイプラインプロセッサ装置および方法
JPH07248897A (ja) コンピュータ・システムにおける例外からの回復方法、及びそのための装置
JPS61109147A (ja) 命令フェッチ及び実行制御方法
JP2620511B2 (ja) データ・プロセッサ
JP3338488B2 (ja) データ処理装置の検証方法及び装置
US6820216B2 (en) Method and apparatus for accelerating fault handling
US5283891A (en) Error information saving apparatus of computer
EP0212132A1 (en) Method and digital computer for recovering from errors
JPH1196006A (ja) 情報処理装置
JP2793386B2 (ja) 電子計算機の演算エラー情報保持装置
JP2793396B2 (ja) 電子計算機の演算ステータス保持装置
JP2894438B2 (ja) パイプライン処理装置
EP0211487A1 (en) Conditional operations in computers
JP2783285B2 (ja) 情報処理装置
US20040098564A1 (en) Status register update logic optimization
JP2824484B2 (ja) パイプライン処理計算機
JP2616542B2 (ja) 疑似障害発生システム
JP2503223B2 (ja) 先行制御方式
JPS63214856A (ja) デ−タ処理装置のデ−タ保護制御方式
JPH04287231A (ja) マイクロプロセッサ
JP2001243066A (ja) パイプライン処理方法並びにその方法を利用するパイプライン処理装置

Legal Events

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