JPH06295252A - 計算機 - Google Patents

計算機

Info

Publication number
JPH06295252A
JPH06295252A JP5082938A JP8293893A JPH06295252A JP H06295252 A JPH06295252 A JP H06295252A JP 5082938 A JP5082938 A JP 5082938A JP 8293893 A JP8293893 A JP 8293893A JP H06295252 A JPH06295252 A JP H06295252A
Authority
JP
Japan
Prior art keywords
branch
instruction
execution
interrupt
computer
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.)
Pending
Application number
JP5082938A
Other languages
English (en)
Inventor
Yutaka Enko
豊 円光
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.)
Hitachi Ltd
Original Assignee
Hitachi 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 Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP5082938A priority Critical patent/JPH06295252A/ja
Publication of JPH06295252A publication Critical patent/JPH06295252A/ja
Pending legal-status Critical Current

Links

Landscapes

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

Abstract

(57)【要約】 【目的】分岐トレースを容易に実行する。 【構成】分岐割り込みの発生制御を分岐先命令の実行サ
イクル内で行うことにより、分岐割り込み動作を遅延命
令の実行後に行う。 【効果】命令トレース/デバッグの分岐情報収集が容易
になる。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は遅延分岐を行う計算機に
関する。
【0002】
【従来の技術】近年、パイプラインを用いて命令を実行
する計算機のなかには、遅延分岐とよばれる手法により
分岐を行うものがある。遅延分岐とは、計算機が命令列
を実行する場合、通常、分岐命令の直後のアドレスの命
令はすでにメモリから計算機内部に取り込み(フェッ
チ)が完了しているか、あるいはさらに実行可能な状態
にあるため、計算機内部のパイプラインの有効な活用の
ために、分岐命令実行後さらに一つまたは複数個の命令
を実行した後に分岐(実行の対象となる命令のアドレス
の変更)を行うものである。
【0003】また、デバッグ/トレース(ここでは、計
算機の使用者が要求する時点における計算機の状態情報
を収集することをデバッグ/トレースと呼び、そのため
に用いられるソフトウェアをトレーサ/デバッガと呼
ぶ。以下同じ)を支援するために分岐割り込み機能を有
する計算機がある(特開平1−111236 号公報)。分岐割
り込み機能とは、分岐の実行にともない割り込みを発生
する機能である。この分岐割り込み機能は、分岐時に割
り込みを発生させ、トレーサ/デバッガを起動し、トレ
ーサ/デバッガに分岐時の計算機の状態をトレース/デ
バッグ情報として収集させる目的に主に用いられる。
【0004】しかし、遅延分岐を行うプロセッサにおい
て、従来の技術による分岐割り込みは、分岐命令実行
後、遅延スロット内の命令(分岐命令実行後から分岐ま
での間に実行される一つまたは複数の命令。以下同
じ。)の実行までの間に行っている。
【0005】
【発明が解決しようとする課題】遅延分岐を行うプロセ
ッサにおいて、従来のように、分岐割り込み動作を分岐
命令のサイクル内で行う場合、(あるいは、分岐命令の
次の命令の実行サイクルの先頭で行う場合も同様)一連
の動作は、(1)分岐割り込み発生、(2)割り込み復帰、
(3)遅延命令を実行、(4)分岐、の順序となる。いいか
えると、分岐割り込みが発生したプロセッサの状態は遅
延スロット内の命令の実行前であり、分岐時(遅延スロ
ット内の命令実行を終了し、分岐先命令の実行を開始す
るまで)の状態ではない(図6)。
【0006】そのため、このようなプロセッサで、トレ
ーサ/デバッガが分岐時のプロセッサ状態情報を収集し
ようとした場合、分岐割り込み時のプロセッサ状態はま
だ遅延スロット内の命令を実行していないので、これを
分岐時のプロセッサ状態情報として用いることができな
い。トレーサ/デバッガが分岐時の情報を得ようとする
ならば、さらにトレーサ/デバッガが遅延スロット内に
ある命令を実行する等の方法によりプロセッサを分岐時
の状態にした後、改めて情報収集をしなければならな
い。そのため、ソフトウェアの負担が増し、プログラマ
の負担が増大する。また、トレーサのオーバーヘッドが
増し、非効率的なデバッグ/トレースの原因となるなど
の問題が生じる。
【0007】
【課題を解決するための手段】上記問題の解決手段とし
て、本発明による計算機は、分岐割り込みを遅延スロッ
ト内の命令の実行後から分岐先命令の実行開始までの間
に行う。即ち、分岐割り込み動作を含む一連の分岐動作
を、(1)遅延命令を実行、(2)分岐割り込み発生、(3)
割り込み復帰、(4)分岐、の順序で行う(図5)。いい
かえると、分岐割り込みが発生した計算機の状態が遅延
スロット内の命令の実行後の状態であり、割り込み発生
時の状態をそのまま分岐時の計算機の状態情報として用
いることができるような割り込みを発生させる。
【0008】
【作用】上記手段を用いた計算機で、トレーサ/デバッ
ガが分岐時のプロセッサ状態情報を収集しようとした場
合、分岐割り込みが発生した時の計算機は、遅延スロッ
ト内の命令をすでに実行しているので、このときの状態
を分岐時の計算機の状態情報として用いる。トレーサ/
デバッガが分岐時の情報を得ようとするとき、割り込み
時に退避された計算機の状態情報をもとに分岐時の情報
を収集する。トレーサ/デバッガは情報を収集した後、
割り込み復帰によりトレース対象のプログラムの実行を
再開する。
【0009】
【実施例】本発明の方法による計算機の実施例を図1に
示す。さらに同実施例における命令実行サイクル(分岐
割り込みに関する部分)を図3に示す。
【0010】以下、本発明の方式による計算機の実施例
の構成,動作を説明する。
【0011】この計算機は実行ユニット110,インス
トラクションユニット120及びアドレスバス/データ
バス・インターフェイスユニット130その他のユニッ
トにより構成される。
【0012】インストラクションユニットは、インスト
ラクションキュー121、及びインストラクションフェ
ッチャ123を含む。さらにインストラクションユニッ
トは、1命令実行毎にインストラクションキューを先頭
方向に1命令分シフトする機能を備える。
【0013】実行ユニットは、デコーダ111,分岐命
令実行ユニット112,分岐割り込み検出ユニット11
3及び、その他命令の実行に必要なユニット(PSW(計
算機の状態を表す状態語:Processor Status Word)11
4,レジスタ115,ALU116)を含む。デコーダはインス
トラクションキューの先頭要素から命令コードを取り出
す。レジスタは計算に必要な情報を記憶するために用い
られる。ALUはレジスタからの情報をもとに演算を行
い、結果をレジスタ,メモリに格納する。
【0014】インストラクションキュー121は要素数
が7(本実施例の場合。)の配列で、分岐フラグキュー
121−1,プログラムカウンタキュー121−2およ
びインストラクションレジスタキュー121−3により
構成される。
【0015】インストラクションフェッチャ123は、
命令のフェッチ(計算機が実行すべき命令をメモリから
プロセッサ内にロードすること)を行う。すなわちイン
ストラクションレジスタキュー121−3のなかから未
フェッチ状態のものを見つけ、メモリ上から命令コード
をアドレスバス/データバス・インターフェイスユニッ
ト130を通して読みだし、ロードする。
【0016】アドレスバス/データバス・インターフェ
イスユニット130は、実行ユニット110及び命令ユ
ニット120に代わり、外部バスとの情報のやりとりを
行う。
【0017】実行ユニット110はインストラクション
レジスタキュー121−1の先頭121−11に命令コ
ードがすでにフェッチされていれば、デコーダ111に
より命令コードを取り出しこれをデコードする。実行ユ
ニット110はデコードされた命令により動作する(ス
テップ304,305)。
【0018】分岐命令実行時、あるいは条件付き分岐命
令実行時において分岐条件成立の時の動作を説明する。
分岐命令実行ユニットはプログラムカウンタの特定の要
素121−23に分岐先アドレスの設定を行い、これと
ともに、分岐フラグ121−13を1にセットする。
【0019】分岐命令以外の実行時、あるいは条件付き
分岐命令実行時において分岐条件不成立の時、分岐命令
実行ユニットはプログラムカウンタ及び分岐フラグには
何もしない。このとき、プログラムカウンタにはプログ
ラムカウンタの一つ前のキュー要素の1命令長分インク
リメントされたアドレスを設定し、分岐フラグにはデフ
ォルト値0をセットする。
【0020】1命令実行毎にインストラクションユニッ
トは、インストラクションキューを先頭方向に1命令分
シフトする。
【0021】分岐割り込み制御に係る動作を次に説明す
る。分岐割り込み検出ユニットは分岐フラグキューの先
頭要素121−11によって分岐を検査する。要素が1
であれば、計算機内のユニットに分岐割り込み動作を要
求する。
【0022】分岐実行ユニットは、分岐割り込み検出ユ
ニットの制御を、分岐フラグキューを介して行ってい
る。このため、分岐実行ユニットの実行が、分岐フラグ
キューがシフトされる間、すなわち、遅延スロットの命
令実行の間遅れて伝達される。すなわち分岐割り込みが
遅延スロットの実行後に発生する。
【0023】本実施例において、分岐命令を実行すると
き、分岐命令実行ユニット112は、インストラクショ
ンキュー121の先頭から3番目の分岐フラグ121−
13に1を設定し、プログラムカウンタ121−23に
分岐先アドレスを設定し(ステップ307)、先頭から
3番目以降のインストラクションレジスタキュー121−
33をすべて未フェッチとする。キューの先頭要素は現
在実行中の命令であり、分岐命令の実行にともなう分岐
先アドレス及び分岐フラグの設定を先頭から3番目のキ
ュー要素に行っている。このため、遅延スロット内の命
令(遅延命令)は先頭から2番目の要素であり、その命
令数は1である。
【0024】分岐の検出は分岐割り込み検出ユニット1
13が行う。分岐割り込みの発生/非発生は、PSW114の
Tビット(分岐割り込み発生制御ビット)により制御可
能になっており、Tビットが1のときにのみ分岐割り込
みが発生する(ステップ301)。分岐割り込み検出ユニッ
ト113は、PSW114のTビットが1の時、かつ、分岐フ
ラグキューの先頭要素121−11が1のとき分岐の発
生条件の成立を検出する(ステップ302)。この時、
分岐割り込み検出ユニット113はプロセッサ状態退避
手段140と割り込みアドレス生成ユニット150へ信
号を送出し、分岐割り込み動作の実行を指示する(割り
込み復帰後の動作を保障するために、割り込み動作時に
は、命令アドレスおよび分岐フラグの先頭2要素を、割
り込み時のプロセッサ状態として退避する必要があ
る。)。
【0025】次に、分岐命令のフェッチ,実行から分岐
割り込み発生までの過程を説明する。
【0026】インストラクションフェッチャ123によ
りメモリからフェッチされた命令は一旦、インストラク
ションレジスタ121−3にロードされる。デコーダは
インストラクションレジスタキュー130の先頭121
−31から命令を取り出しデコードする。
【0027】実行ユニットはデコードされた命令により
動作する(ステップ304,305)。分岐命令の実行時
は、分岐命令実行ユニットがプログラムカウンタ121
−2の先頭から3番目の要素121−23に分岐先アド
レスの設定を行い、かつ、分岐フラグキュー110の先
頭から3番目の要素を1にセットする(ステップ307)。
図1中のインストラクションキュー121は、プロセッ
サが、番地 0x0100のbranch 0x0200命令(0x0200
への分岐命令)の実行中の状態をあらわしている。ここ
では、分岐命令実行ユニット112が分岐フラグに1
(分岐先であることを示すフラグ)をセットし121−
13、分岐先アドレスをセット112−23)してい
る。0x0104番地のload x1,x2 命令は遅延スロット
内の命令であり、この命令の実行後、0x0200番地への分
岐を行う。
【0028】分岐命令以外の実行時、あるいは条件付き
分岐命令実行時において分岐条件不成立の時、分岐命令
実行ユニット112はインストラクションキューの変更
は行わない。このとき、プログラムカウンタキュー12
1−2の各要素には、プログラムカウンタより1命令手
前のアドレスに1命令長分インクリメントしたアドレス
が設定され、分岐フラグにはデフォルト値0がセットさ
れる。
【0029】インストラクションユニットは1命令実行
サイクル毎に、インストラクションキュー121)のシ
フト(キューの各要素を一要素分先頭方向へ移動させ
る。先頭要素は捨てる。)を行う(ステップ308)。
【0030】分岐命令実行後、さらに命令実行のため、
2回目のキューシフトが行われたとき、さきに分岐命令
実行ユニット112によりセットされた分岐フラグの値
1が分岐フラグキューの先頭要素となる。分岐割り込み
検出ユニット113は分岐フラグキューの先頭要素12
1−11によって分岐を検査するが、このときの先頭要
素が1であるため、計算機内の割り込みアドレス生成ユ
ニット140およびプロセッサ状態退避手段150に分
岐割り込み動作を要求する信号を送出する。
【0031】さらに、図2は従来例の計算機を、図4に
同従来例における命令実行サイクル(分岐割り込みに関
する部分)を、図6に従来技術による分岐割り込みの動
作順序を示す。
【0032】本従来例では、分岐命令の実行(条件付き
分岐の場合は分岐条件の成立した時)にともなう分岐命
令実行ユニット212からの指示により、分岐割り込み
検出ユニット213が分岐の検出を行っている。(ただ
し、通常の計算機においては、分岐割り込みはPSW214内
の分岐割り込み発生制御フラグTの値が1である場合に
のみ発生する。このため、上述の検出もこの時にのみ行
われるのが一般的である。)分岐割り込み検出ユニット
213による分岐の検出は分岐命令の実行と同一サイク
ル内で行い、計算機は遅延命令の実行を待たずに、分岐
割り込みを行う。
【0033】このため、このような計算機により分岐命
令を含む命令列の実行順序を図6を用いて説明すると、
分岐命令601実行,割り込み動作602,割り込み復
帰後に遅延命令603,分岐先命令604の実行順序と
なる。
【0034】次に、本発明による計算機において分岐ト
レースを行うソフトウェア(以下、トレーサ)について
説明する。
【0035】トレーサはトレースの開始を、PSW114のT
ビットを1にセットし、割り込みアドレス生成ユニット
140にトレーサのエントリアドレスを、分岐割り込み
の発生により実行が開始される命令アドレスとして設定
することにより行う。
【0036】分岐割り込みが発生すると、トレーサは分
岐割り込み処理ルーチンとして実行開始される。トレー
サは割り込み発生時に退避されたプロセッサ状態情報
を、分岐実行時のプロセッサ状態情報として収集し、こ
の情報よりトレースレコードを生成し、磁気ディスク,
磁気テープ等の記録媒体に出力する。
【0037】その後、トレーサはプロセッサを割り込み
発生の直前の状態に復元し、割り込み復帰命令により計
算機を割り込み前の状態に戻す。
【0038】
【発明の効果】本発明により、プロセッサでトレーサ/
デバッガが分岐時のプロセッサ情報を収集する場合、分
岐割り込みによって起動されたトレーサ/デバッガが、
分岐割り込み発生時のプロセッサ状態を、分岐時のプロ
セッサ状態として収集することができる。
【0039】すなわち、従来の分岐割り込み発生方法に
比べ、遅延スロット内の命令を改めて実行する必要がな
いため、ソフトウェアの負担が軽減する。
【図面の簡単な説明】
【図1】本発明の計算機の実施例を示したブロック図。
【図2】従来例を示したブロック図。
【図3】本発明の計算機の実施例における命令実行サイ
クルを示したフローチャート。
【図4】従来例における命令実行サイクルを示したフロ
ーチャート。
【図5】本発明の計算機による分岐割り込みの動作順序
を示した説明図。
【図6】従来技術による分岐割り込みの動作順序を示し
た説明図。
【符号の説明】
121…インストラクションキュー、121−1…分岐
フラグキュー、121−11…分岐フラグ、121−1
3…分岐フラグ、121−2…プログラムカウンタキュ
ー、121−21…プログラムカウンタ、121−23
…プログラムカウンタ、121−3…インストラクショ
ンレジスタキュー、121−33…インストラクション
レジスタ。

Claims (3)

    【特許請求の範囲】
  1. 【請求項1】分岐命令による分岐成立を原因とした割り
    込みを発生させる機能をもち、かつ、分岐割り込み動作
    を遅延命令の実行後に行うことを特徴とする計算機。
  2. 【請求項2】プログラムカウンタに記憶されるアドレス
    が分岐先アドレスであるか否かを記憶する記憶手段をプ
    ログラムカウンタと同数個備えたことを特徴とする計算
    機。
  3. 【請求項3】分岐割り込み検出ユニットを備え、前記分
    岐割り込み検出ユニットが、分岐フラグの先頭要素によ
    り分岐検出を行うことを特徴とする計算機。
JP5082938A 1993-04-09 1993-04-09 計算機 Pending JPH06295252A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP5082938A JPH06295252A (ja) 1993-04-09 1993-04-09 計算機

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP5082938A JPH06295252A (ja) 1993-04-09 1993-04-09 計算機

Publications (1)

Publication Number Publication Date
JPH06295252A true JPH06295252A (ja) 1994-10-21

Family

ID=13788171

Family Applications (1)

Application Number Title Priority Date Filing Date
JP5082938A Pending JPH06295252A (ja) 1993-04-09 1993-04-09 計算機

Country Status (1)

Country Link
JP (1) JPH06295252A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007188527A (ja) * 2007-03-19 2007-07-26 Ricoh Co Ltd 情報処理装置における割り込み処理方法

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007188527A (ja) * 2007-03-19 2007-07-26 Ricoh Co Ltd 情報処理装置における割り込み処理方法
JP4564025B2 (ja) * 2007-03-19 2010-10-20 株式会社リコー 情報処理装置における割り込み処理方法

Similar Documents

Publication Publication Date Title
EP0297893B1 (en) Apparatus and method for recovering from page faults in vector data processing operations
US5003462A (en) Apparatus and method for implementing precise interrupts on a pipelined processor with multiple functional units with separate address translation interrupt means
JPH0727462B2 (ja) データ処理装置におけるページフォールト実行再開方法
US5146569A (en) System for storing restart address of microprogram, determining the validity, and using valid restart address to resume execution upon removal of suspension
JPH07120338B2 (ja) 共同プロセッサによる命令の実行をデータプロセッサが調整する方法および該データプロセッサ
JPH1196006A (ja) 情報処理装置
JPH06295252A (ja) 計算機
IE79236B1 (en) Apparatus and method for recovering from page faults in vector data processing operations
JP2783285B2 (ja) 情報処理装置
JP2671160B2 (ja) 例外処理方式
US5787276A (en) Microprocessor including circuit for generating signal used for tracing executed instruction stream
JP2562838B2 (ja) プロセッサ及びストアバッファ制御方法
JP2793386B2 (ja) 電子計算機の演算エラー情報保持装置
JPH06324861A (ja) Cpu制御システム及び制御方法
JP2793396B2 (ja) 電子計算機の演算ステータス保持装置
JP2765831B2 (ja) データ処理装置
JP3112861B2 (ja) マイクロプロセッサ
JP2666737B2 (ja) トレースメモリ内蔵マイクロプロセッサおよびトレース方法
JPH1055289A (ja) デバッグ情報生成回路、およびそれを用いた情報処理装置
JPH0364903B2 (ja)
JPH0795288B2 (ja) マイクロコンピュータ
JPS6149695B2 (ja)
JPS63214856A (ja) デ−タ処理装置のデ−タ保護制御方式
JPH05250161A (ja) マイクロコンピュータ装置
JPS6232507B2 (ja)