JPH03129441A - 分岐命令実行装置 - Google Patents
分岐命令実行装置Info
- Publication number
- JPH03129441A JPH03129441A JP2158825A JP15882590A JPH03129441A JP H03129441 A JPH03129441 A JP H03129441A JP 2158825 A JP2158825 A JP 2158825A JP 15882590 A JP15882590 A JP 15882590A JP H03129441 A JPH03129441 A JP H03129441A
- Authority
- JP
- Japan
- Prior art keywords
- branch
- instruction
- signal
- condition
- conditional
- 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
Links
- 238000012545 processing Methods 0.000 claims abstract description 41
- 238000000034 method Methods 0.000 claims description 25
- 238000004364 calculation method Methods 0.000 claims description 11
- 230000003213 activating effect Effects 0.000 claims description 4
- 230000004044 response Effects 0.000 claims description 4
- 230000004913 activation Effects 0.000 claims 1
- 238000012937 correction Methods 0.000 abstract description 2
- 238000010586 diagram Methods 0.000 description 19
- 230000009191 jumping Effects 0.000 description 3
- 230000001343 mnemonic effect Effects 0.000 description 3
- 230000003111 delayed effect Effects 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 230000001771 impaired effect Effects 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/362—Software debugging
- G06F11/3636—Software debugging by tracing the execution of the program
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/362—Software debugging
- G06F11/3648—Software debugging using additional hardware
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3836—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
- G06F9/3842—Speculative instruction execution
- G06F9/3846—Speculative instruction execution using static prediction, e.g. branch taken strategy
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Advance Control (AREA)
- Debugging And Monitoring (AREA)
Abstract
め要約のデータは記録されません。
Description
順次各命令語を実行して分岐命令のトレースを行う分岐
命令実行装置に関し、 この種の分岐命令トレース方法において、条件付き分岐
命令がデコードされた場合においても、パイプライン処
理に乱れが生じないようにして、処理速度の低下を防止
することを目的とし、パイプライン処理により命令を順
次実行する命令実行装置において、条件付き分岐命令が
デコードされた場合に、当該条件の判定結果を待つこと
なく条件成立を推定して分岐先の命令の実行の有無を決
める分岐先実行フラグを立て、その後実際の判定結果が
出た時点で前記分岐先実行フラグの内容を修正するよう
に構成する。
理を用いて順次各命令語を実行して分岐命令のトレース
を行う分岐命令実行装置に関する。
れるもので、プログラムが正しく動作しているか否かを
知るために、プログラム中の命令の実行順序や変数の値
を自動的に出力させるものである。
ース(分岐を行った分岐命令のトレース)に関して、条
件付き分岐命令の条件判定の結果が当該命令の処理の終
了まで出ないような場合、デバッグ例外発生を示すビッ
トを有するレジスタの書き込みは、当該命令処理の最終
サイクルで行われるので、分岐成立か否かの結果を見て
から前記レジスタの書き込みを行うと、パイプライン処
理に乱れが生じてしまう。
付き分岐命令がデコードされた場合、当該条件の判定結
果を待ってから、デバッグ例外発生ビットを立てるよう
にしていた。
ン処理本来の目的である処理速度の高速化が害されると
いう問題点があった。
件付き分岐命令がデコードされた場合においても、パイ
プライン処理に乱れが生じないようにして、処理速度の
低下を防止することを目的とする。
令デコード部1では、条件付き分岐命令をデコードした
場合、分岐判定部3に対しその旨を通知する(a2)。
)とトレースのモード制御などを行うデバッグ制御部4
からの分岐トレースの指示(a3)に基づいて分岐成立
の予測を行い、分岐成立の確率が高い場合には、演算実
行部2からの通知(a2)が来る前に、分岐成立を推定
して、分岐先実行ビット例えばデバッグ例外発生ビット
を立てるべき指示−を発生する(a4)。
件判定を行い、分岐不成立の場合には、デバッグ制御部
4にデバッグ例外発生ビットの修正指示を出す(a5)
。
有し、分岐トレースの指示を分岐判定部に通知しくa3
)、前記ビットを立てるべき指示(a4)を受けて前記
レジスタ内デバッグ例外発生ビットを立てる。
前記ビットの修正を行うものである。
ように、分岐確率が高い条件分岐命令の場合には、分岐
成立方向に予測する(命令種別による予測)。
命令を実行した際、その分岐方向を予測する(分岐予測
テーブルによる予測)。
順次各命令語を実行するマイクロプロセッサに関し、そ
の実行中に分岐した命令語を順次トレースする場合にお
いて、条件付き分岐命令がデコードされた場合には、当
該条件の判定結果を待つことなく直ちに条件成立を推定
してデバッグ例外発生ビットを立て、その後実際の判定
結果が出た時点でデバッグ例外発生ビットの内容を修正
することを特徴とするものである。
る場合、条件分岐命令をデコードした際(a2)、分岐
方向の予測を行い、分岐成立の確率が高い場合には、条
件判定結果(a2)を待たずに、分岐成立を予測して(
a4)デバッグ例外発生ビットを立てるようにし、分岐
不成立であった場合には(a5L前記ビットの修正を行
うようにしている。
ような条件分岐命令の分岐トレースを行った場合には、
デバッグ例外発生ビットの書き込みも当該命令処理中に
行われる為、パイプライン処理の乱れを抑えることがで
きる。
き分岐命令の分岐トレースにおけるパイプライン処理の
ステージを示している。
われ、サイクル■で条件の演算を行い、サイクル■で条
件の判定及びレジスタの書き込みを行う条件付き分岐命
令に於いて、この命令が無条件分岐、ループ命令のよう
に分岐確率が高い場合には、分岐成立を推定して、条件
判定結果を待たずに、サイクル■でデバッグ例外発生ビ
ットに1′が書き込まれる(図中(a)参照)。
の場合には、デバッグ例外発生ビットの内容はそのまま
に保持される(図中(a)参照)。
不成立の場合には、サイクル■においてデバッグ例外発
生ビットのクリアが行われる(図中(b)参照)。
なので、パイプライン処理には影響は与えない。
令の分岐トレースにおいて、分岐成立の確率が高いと予
測された場合には、分岐成立を推定して、デバッグ例外
発生ビットを立てるため、パイプライン処理の乱れを抑
制し、処理速度の低下を防止することができる。
キャッシュ11から命令をフェッチし、それを解読し、
演算する部分である。MMU/キャッシュ11からの命
令、すなわちマクロ命令は、命令デコーダ12にフェッ
チされて解読される。
て、マイクロROM13に格納される。フェッチされた
マクロ命令の○Pコードに対応するマイクロROM13
内の領域の先頭アドレスが命令デコーダ12から与えら
れると、マイクロROM13の出力は、制御信号として
演算器14.レジスタ15.あるいはメモリアクセス/
制御レジスタ制御回路16に与えられる。命令で処理さ
れるデータはレジスタ15やMMU/キャッシュllな
どから読出されて演算器14で演算され結果がレジスタ
15やMMU/キャッシュ11.またはそれを通して外
部メモリ(図示せず)などに書込まれる。第3図のMM
U/キャッシュ11はアドレス変換のための管理機構と
内蔵キャッシュからなる。MMU/キャッシュ11から
データの読み出し書き込みをする場合には、マイクロR
OM13からの制御信号は、メモリアクセス/制御レジ
スタ制御回路16に与えられる。メモリアクセス/制御
レジスタ制御回路16はマイクロROM13からの指示
にもとづきメモリのり一ド/ライト要求の発生や制御レ
ジスタのり一ド/ライト指示などを行う。MMU/キャ
ッシュ11は、外部の装置とインターフェース17を介
して接続されている。外部装置から割り込み要求がある
と割り込み要求信号が割込み/例外制御回路18に与え
られ、その割り込みが受は付けられた場合には、割り込
みルーチンに移るべきマイクロアドレスがマイクロRO
M13に与えられる。パイプライン制御回路19は、デ
コード(DC)ステージ、アドレス演算(AC)ステー
ジ、マイクロ読み出しくMりステージ、演算(OE)ス
テージ、結果の書き込み(OW)ステージ、すなわちD
C,AC,Ml、DE、OWの各ステージの進行を監視
し、また、キャッシュミスヒツトによる外部メモリアク
セスなどの待ち条件により必要に応してステージの状態
保持を制御する。またDCステージで有効な命令デコー
ドを行った直後にストローブ信号を1にする。
立したかどうかを演算器14からの状態フラグを用いて
判定し、条件が成立する場合には、条件成立信号をlに
、条件不成立の場合には、条件不成立信号を1にする。
る確率の低い条件分岐命令の違いにより、分岐制御を行
う論理回路よりなる制御回路を分岐判定部20に有する
。
ROM13からマイクロ指示が与えられ、そのどちらか
を選択して、得られる分岐条件が判定回路21に与えら
れる。go to文のような無条件分岐あるいは、Do
1oopのような分岐確率の高い条件分岐命令(条件
分岐2)、あるいは11分のように、分岐する確率の低
い条件分岐命令(条件分岐2)の区別を示す信号、すな
わち、無条件分岐信号5条件分岐1信号2条件分岐2信
号がそれぞれ命令デコーダ12から出力される。それら
の制御信号が分岐判定部20に与えられ、無条件分岐信
号と条件分岐1信号が活性化されている場合には、分岐
条件の条件制御を待たずに、分岐を実行する制御が行わ
れる。すなわち、無条件分岐と条件分岐lの制御信号は
、OR回路30に与えられ、その出力は、分岐が行われ
たときだけトレース条件となるフロートレースのモード
であることを示す信号と、AND回路32でアンドがと
られる。そのAND回路32の出力が1となると、OR
回路34を介してAND回路35に与えられる。したが
って、パイプライン回路19からのストローブ信号が1
のときに、すなわちデコード終了直後にAND回路35
の出力がlになり、パイプラインデイレイ回路37、O
R回路38を介してデバ・ング匍I ’<’IJレジス
タ25のステータスをセ・ント状態にする。またAND
回路35の出力はOR回路36を通して割込み/例外制
御回路18ヘデバッグ例外要求(即ちデバッグ例外発生
フラグ)となり(第4図(C)のANDの出力参照)、
分岐判定を待たずして、デバッグルーチンにJUMPす
ることになる。デパック例外発生フラグはパイプライン
デイレイ回路37で遅延された後、デバッグ制御レジス
タ25も制御する。JUMPしてしまったのち、パイプ
ライン動作の最後のステージ、すなわち演算結果を書き
込む○Wステージで分岐実行に対する可否の判定がなさ
れる。すなわち、演算器14からの状態フラグの内容の
結果、判定回路21に与えられる分岐条件が条件不成立
であった場合には、条件不成立信号と、条件分岐1信号
との両方が、フロートレース状態においてAND回路3
3に入力されると、デバッグ制御レジスタ25のデバッ
グステージ状態をクリアする。また、デバッグルーチン
はキャンセルされることになる。
わち1命令実行ごとにトレース条件が成立するときに1
となる信号が入力されている。以上の説明では、ステッ
プトレースはOとしている。
ンにJUMPする場合も考慮する。分岐する確率の低い
条件分岐命令、すなわち条件分岐2信号が1である場合
には、その条件が成立するか否かは、演算器14からの
状態フラグの観測によって決定され、パイプライン動作
の場合のOWステージで、この制御が行われる。すなわ
ち、条件が成立する場合には、条件成立信号が1で、条
件分岐2信号も1であるから、フロートレース状況では
、AND回路31の出力が1となり、この1がOR回路
36を介してデバッグ制御レジスタ25のデバッグステ
ータスの状態をセットする。
条件分岐1信号の場合に比べて、遅れることとなる。す
なわ、本発明では、常に分岐する無条件分岐の場合と、
命令の種類や過去の履歴等で決められる分岐する確率の
高い条件分岐命令すなわち、条件分岐1に対しては、命
令の解読後、次の命令をキャンセルした後に即座に、デ
バッグステータスをセットして、デバッグルーチンに入
る。
25のセット信号によって、デバッグルーチンが実行さ
れる。このとき、デバッグルーチンの各命令は本発明で
はCPU内部にたとえば、キャッシュの1部をROM化
して格納されている。
キャッシュ11.命令実行部10、命令デコーダ122
分岐判定部20.デバッグ制御部レジスタ25とともに
、l chip化されるので、条件分岐1信号の場合の
実行をあいまってデバッグルーチンを高速化することが
できる。
命令で分岐した場合のデバッグ処理である。
令で分岐した場合および無条件分岐のデバッグ処理であ
る。
岐命令であるからに、その命令は、DCステージ、AC
ステージ、Ml、DE、OW、ステージの順に、それぞ
れ1のサイクルづつ連続的に、各ステージが進行する。
コード、命令3のデコード、命令4のデコードの各サイ
クルで行われる。そして、命令2のデコードと命令1の
アドレス計算は同時に行われる。そして、命令Iの条件
分岐命令は、OEステージにおける演算器からの状態フ
ラグをセンスして、OWステージにおいて、分岐するか
どうかが決定される。条件が成立した場合に、命令2.
命令3.命令4の実行をキャンセルして、その命令1内
に示されるアドレス、すなわちジャンプ先のアドレスに
JUMPする。
スにジャンプするかわりにデバッグルーチンが起動され
、命令1のOWステージ後に、デバッグルーチンの最初
のステップのマイクロ読出しが行われる。
イクロ開始アドレス生成後Mlステージ、OEステージ
の各ステージ状態が進んで、デバッグのサブルーチンが
実行される。
件分岐命令であるから、フロートレース監視中の場合命
令1のDCステージ後、命令1に後続する命令2のデコ
ードステージをキャンセルし、デバッグルーチンに即座
に入ることが可能である。
はMl、OEステージになっている。本発明では、条件
分岐命令でも分岐する確率の高いものは、命令1の実行
完了を待たずにデコード直後から後続命令をキャンセル
してデバッグ処理に移るためのマイクロ処理を起動し、
条件が成立しなかった時はデバッグ処理に移るためのマ
イクロ処理をキャンセルして後続命令のデコードからや
り直す。
たない。
成立、不成立が定まるタイミングをデバッグ制御レジス
タ25との関係を示したものである。
イプラインデイレイ回路37は、フロートレースと条件
分岐1信号のANDによりAND回路32を介してセッ
トされる。そして、命令1がMIステージになったとき
に、即座にデバッグのDステージが始まり、デバッグ制
御レジスタ25(ステータス状態は、パイプラインデイ
レイ回路ニアの出力によってセントされる。パイプライ
ンライレイ回路は命令の進行にあわせて前記AND;5
の出力を遅延させ、命令が0wステージに進メだ時にデ
バッグ制御レジスタのステータスのセ〕トを指示する。
命令で例外・割込などにユリ命令取消が行われた場合デ
バッグ制御レジスタの変化を抑止するためである。もし
命令1の○Wステージにおいて、分岐条件不成立と判定
された場合には、命令1にっづくデバ・ングルーチンは
キャンセルされ、デバッグ制御レジスタ25のステータ
ス情報はリセットされる。その後に、命令上に続く命令
2.命令3が実行される。
体的に示した。まずOEステージの前半でレジスタ15
からデータを読み出し、OEステージの後半でこのデー
タに対する演算が演算器(ALU)14で実行される。
前半であって、その状態フラグが分岐判定回路に与えら
れ、OWステージの後半において、分岐条件が決定され
る。
ジスタの内容が更新される。
パイプライン制御のタイミングを示した図である。AC
B命令はカウンタを更新し、カウンタ値がリミット値未
満なら指定アドレスに分岐するループ命令である。
ウントは、カウントアツプのステップ幅(STEP)が
OEステージで加算され、更新されたカウント数がOW
ステージでレジスタに書き込まれる。そのカウンタ値の
更新の演算と同時に、カウンタの最大値(LIMIT)
と比較する動作をOEステージで行う。比較した結果が
LIMIT未満の場合にはループの先頭に分岐するので
デバッグ制御レジスタのステータスはセットされたまま
となるが、LIMIT以上なら非分岐であるからステー
タスをクリアする。
としてACB■場合は、カウンタ値とステンプ数との演
算をOEIステージで行い、更新されたカウンタ値とり
5ツトとの比較をOE2ステージで行う。この場合2つ
のマイクロステップとなるのでパイプラインデイレイ回
路はOEステージ等で2サイクル間状態を保持すること
によりタイミングをあわせる。ACB■の例の方が条件
分岐判定がさらに遅れるのでパイプラインが乱れる可能
性が大きくなる。
示す、BRAは無条件分岐命令、Bccは条件分岐命令
、BSRはサブルーチン分岐命令である。
る。そして、プログラムを進めてBccにくると、条件
成立であるとすれば、#A5にJUMPする。その後#
A6迄すすみ、ACBは条件成立であるとすれば、#A
3にもどる。次に、Bcc迄すすんで、これが条件不成
立となるとすれば、次の#A6のACBまで進む。した
がって、また#A3にもどる。次のBccは条件不成立
であるから、Bcc命令に続く命令を実行し、#A6迄
すすむ。ACBは条件成立であるから#A3に戻り、#
A4迄すすみBccは条件成立であるから#A5にJU
MPする。その後すすんで次のACBは条件不成立であ
るから、ACBに続く命令を実行し、BSRは無条件分
岐であるから、図示されていないサブルーチンの格納さ
れた#A8に跳ぶ。
ログラムからデバッグ処理にうつる時、マイクロ処理に
よって情報を退避する。退避する内容は、P S W
(Program 5tatus Word)、戻りア
ドレス及び例外発生アドレスであって、これを主記憶の
退避領域に記憶する。そして、デバッグのためのハンド
ラプログラム−で退避領域の戻りアドレス(フロートレ
ースでは分岐先アドレス)、例外発生アドレス(フロー
トレースでは分岐命令アドレス)を主記憶の一部に設け
られたトレース領域あるいは別に設けられたトレースメ
モリに書込み、またトレースメモリへの書込みポインタ
を更新する。その後、復帰命令を実行したときに、退避
した情報のPSW、戻りアドレスを戻して復帰する。
である。
令キャッシュ42に与えられると、命令デコーダ12に
対しキャッシュ42からの応答信号が出される。すると
、命令先取りバッファ43に現在のライトポインタ格納
用レジスタ44にインクリメンタで1だけ加えたライト
ポインタで示される番地に命令を書き込む。命令先取り
要求信号が出されている間は、命令キャッシュ42から
命令先取りバッファ43に命令が読み込まれる。
用レジスタ46の内容で読み出され、読み出された内容
が命令コードとして、第1のラッチ回路45に与えられ
る。そして、リードポインタ格納用レジスタ46の内容
は、加算器53によって、命令長に対応する更新量だけ
加算されて、その更新値がリードポインタ格納用レジス
タ46に再びセットされる。分岐命令が実行されていな
い場合には、連続する命令が次々と読み出され、第1の
ラッチ回路45にラッチされる。第1のラッチ回路45
にセットされた命令コードは命令デコーダP L A
(Programable Logic Array
) 47に与えられ、第2のラッチ回路48にセットさ
れ、その内容がマイクロROMをアドレスするマイクロ
アドレスや各種の制御信号、及び無条件分岐命令である
場合にアクティブになる無条件分岐命令信号、分岐確率
が高い場合にアクティブになる条件分岐命令1信号、分
岐確率が低い場合にアクティブになる条件分岐命令2信
号が出力される。命令先取りバッファ43からの命令コ
ードは、PLAを介さずに、命令レジスタ49にもセッ
トされる。命令レジスタ49の内容は、レジスタ番号や
分岐条件等を形成するために使われる。
分岐命令1、条件分岐命令2の各場合に命令先取りバッ
ファ43のライトポインタやリードポインタの値を退避
したり、あるいは、変化させる制御を行い、また、分岐
判定部2oから送られている条件分岐成立信号や条件分
岐不成立信号によって、ライトポインタやリードポイン
タ格納用レジスタ44及び46の状態を制御する。
び46のエントリ番号部(すなわち、WSあるいはR5
以外のライトポインタあるいはリードポインタ)と共に
ゼロにし、WS=RSになるようにサイド指定ビットを
イニシャライズする。
ント部は、実行部から分岐アドレス計算結果の該当する
下位部を抜き出してセットする。
岐先命令デコード・実行)をデコードした場合ニ ライトポインタ・リードポインタ格納用レジスタ44.
46のエントリ番号部を共にゼロにし、WS/RSとも
反転(逆サイド)にする。リードポインタ格納用レジス
タ46のエントリ肉オフセット部は、実行部から分岐ア
ドレス計算結果の該当する下位部を抜き出してセントす
る。またそれ以前のライトポインタ・リードポインタの
値をそれぞれライトポインタ2・リードポインタ2退避
用レジスタ54.56に退避する。
、読み出して実行する。
そのまま継続し、分岐条件不成立の場合は、命令実行を
キャンセルし、ライトポインタとリードポインタ格納用
レジスタ44.46をそれぞれライトポインタ2とリー
ドポインタ2の退避用レジスタ54.56の値に戻す。
岐命令をデコード・実行)をデコードした場合ニ ライトポインタ格納用レジスタ44の値をライトポイン
タ2退避用レジスタ54に退避し、ライトポインタ格納
用レジスタ44のエントリ番号部をゼロにし、WSを反
転する。リードポインタはそのままのサイドを指す。
ド・実行は非分岐側になる。
令実行をキャンセルし、リードポインタ格納用レジスタ
46のエントリ部をゼロにし、オフセット部に分岐アド
レスの下位側をロードし、RSを反転する。
デコード・実行はそのまま継続する。
から戻し、WSを反転する。
実行部にもつため第7図には図示しない(第3図も概略
図なので省略しである)が、ポインタ同様退避のための
レジスタを備える必要がある。
切換えが行われ、プログラムカウンタはリードポインタ
と同様に切換えられる。
は外部メモリから有効デコードが転送された(応答があ
った)時にカウントアツプされる。
長を指定するのでその分カウントアツプする。
り要求される。通常はライトポインタとリードポインタ
の差を判断して空きを検出する。
が一致しない時(条件分岐2の場合)は、ライトポイン
タが最大値になるまで先取りを行う。
バッファ制御回路50の構成と動作を第8図を参照して
説明する。
号がlの場合には、OR回路61の出力が1となり、W
S/R5をイニシャライズするWS/R5−C1ear
信号が活性化される。またOR回路63の出力であるW
P−zero信号とOR回路68の出力であるRP−z
ero信号とが活性化されて、命令先取りバッファ43
のリードポインタ、ライトポインタが初期化される、条
件分岐1信号が活性化される。
デコードされた場合には、OR回路66の出力が1にな
ることにより、WP2−1atch−1nable信号
の活性化によりライトポインタ2のラッチをイネーブル
し、現在のライトポインタWPをここに退避させる。更
にOR回路63の出力のWP−zer。
する。OR回路62の出力WS−reverseの信号
が活性化され、排他的論理和回路51(第7図)により
、WSフリップフロップの値を反転させ、ライトポイン
タの最上位ビット(WS)が1になる。
レスが、サイド1からサイド2側に移る。
頭アドレスを指すことになる。これがライトサイド反転
動作である。すなわち、命令先取りの命令として、分岐
先命令が命令先取りバッファ43のサイド2に取り込ま
れる動作となる。また、命令先取りバッファからのリー
ド動作に対しても、同様にサイド2側から読み出す動作
に移る。すなわち条件分岐1信号が1になると、反転回
路73゜74を介して、RP2−1atch−enab
le信号が1となって、現在のリードポインタの値をリ
ードポインタ2に退避させる。そしてOR回路69の出
力が1となり、その出力はOR回路67.68に入力さ
れる。R5−reverse 、 RP−zero信号
がそれぞれ1となる。R5−reverse信号が1と
なると、排他的論理和回路52(第7図)によって、R
S−FF0値が反転される。また、RP−zero信号
が1になることによって、RS以外のリードポインタす
なわちエントリ番号部が0にクリアされる。すなわち、
サイド2の先頭アドレスを指すことになり、サイド2側
から命令が読み出されることになる。
件分岐判定を待たず、命令先取りバッファのサイド2、
すなわち、分岐先命令の先取りと読み出しを実行する。
出力が1となって、Dタイプフリップフロップ78の状
態を1にする。このフリツブフロップは条件分岐Iがデ
コードされてから分岐条件成立、不成立信号のどちらか
がくるまで、1を保持するものである。すなわち、分岐
条件成立、不成立信号がともにOである場合にはNOR
回路75の出力が1となり、Q=1とNOR回路の出力
=1によってAND76の出力が1となり、0R77を
介してFFを再びlにする。すなわち1の保持が継続さ
れる。分岐条件成立、不成立信号は、命令先取りバッフ
ァのサイド2側への命令書き込み、あるいは命令読み出
しを実行している間に、遅れて入力される。条件分岐1
が活性化されてからQ=1の状態になって、その後分岐
条件成立が1になると、Q=1であるから反転回路71
の出力が0となり、分岐条件成立信号が1であっても、
AND回路70の出力はOとなり、バッファのサイド2
に対する読み書き動作をそのまま実行する。
6、OR回路77を介してフリツプフロツプの出力Qを
Oに戻す。
書きが行われているサイド2の分岐先命令の読み出しを
停止し、サイド1側にもどって、分岐命令につづく命令
の読み書き動作を実行する必要がある。そのために分岐
条件不成立信号がlになることにより、OR回路62の
出力WP−reversが1になり、WSを反転すなわ
ち1からOに戻し、また、反転回路64.65を介して
、WS−restore−f rom−WP2信号を1
にして、ライトポインタ2に退避されていた値をライト
ポインタに戻す制御が行われる。読み出し動作に対して
も同様で、分岐条件不成立信号が1になることにより、
Q=1であるから、AND回路72の出力が1となって
、OR回路67の出力R5−reverse信号を1に
し、またRP−restore−from−RP信号を
1にする。
ド1側から実行するために、リードポインタ2に退避さ
れていた内容をリードポインタ46に戻す制御が行われ
る。また、分岐条件不成立信号が1になると、NOR回
路75の出力がOとなって、AND回路76の出力をO
にするので、次のクロックでFFのQを0にリセットす
る。
先取りバッファへの書き込みに対しては、サイド2側に
対して実行される。すなわち、OR回路66の出力が1
になることにより、WSを反転し、WP−zeroをl
にして、エントリ番号部をOにし、現在のライトポイン
タのエントリ番号をライトポインタ2に退避するために
、WP2−zero−enable信号を1にする。し
かし、条件分岐2の場合には、命令先取りバッファから
の読み出しに対しては、サイド1側から行う。すなわち
、読み出しを制御する制御信号に対しては、条件分岐2
信号は、無関係であって、従って、条件分岐命令につづ
く命令が格納されているサイドl側から読み出される。
Oであるから、AND回路70の出力が1となって、サ
イド2側に移る動作が実行される。そして、ライト動作
のサイドと同じサイドになる。また、分岐条件不成立が
1になった場合には、ライト動作に対しては、サイド2
からサイドlに戻す必要があるので、OR回路62の出
力−5−reverse信号を1にし、また、WP−r
estore−f rom−WP2を1にして、ライト
ポインタ2の内容をライトアドレスとして使う様に、制
御が実行される。
conditionaly)の内容である。
分岐先アドレスを現在のプログラムカウンタからのオフ
セット(相対値)として示したものである。分岐条件コ
ードは4bitからなり、(0000)は、ALUのキ
ャリーフラグがlである場合に分岐、(0001)は、
キャリーフラグがOである場合に分岐するものである。
れにセット、クリアを表現する。ALUのZEROフラ
グが1またはOの場合の条件コードがそれぞれ(001
0)、(0011)に対応し、ニモニックではBEQ、
BNEに対応する。ここで、EQはequal N E
はnot equalを表現する。
高い場合に相当し、低い場合にブランチするのがBLT
であり、低くない場合がBGFに対応する。LTは1e
ss than、 G Eはgreater equa
lを表現する。(0110)と(0111)は、比較が
等しいか低い場合に分岐する場合と、そうでない場合に
分岐する場合に、それぞれ相当する。
s equal G Tはgreater thanに
対応する。
anch) / S CB (Subtract、Co
mpare & Branch )命令は命令コード中
に分岐条件コードを持たないが、例えば、ACBではカ
ウンタ値がリミット値未満ならば分岐なのでBLTに相
当し、SCBではカウンタ値がリミットより大きければ
分岐なのでBGTに相当する。この場合、分岐条件コー
ドはマイクロプログラムから指定される。
ある。
RPYやALUZEROなどが出力され、シックからシ
フタキャリー5FTCARRYなどが出力される。これ
らは、状態フラグと呼ばれる。状態フラグ生成条件はマ
イクロプログラムコードの指定によって、有効か無効か
が決定される。そのため、マイクロコードからの状態フ
ラグ生成条件をデコーダした信号と各フラグとのAND
がとられる。第10図では、負論理方式でデコーダや演
算器から信号が出力されるので、NOR回路でそれらの
有効か無効かが決定されている。状態フラグバスの各バ
スの列線が、X(キャリー)、 Z (0)、 L
(ロウ〔マイナス〕)・・・V(オーバーフロー)な
どのフラグに対応している。たとえば、各フラグハスは
クロック信号CLKX信号のロウにより、2MO3)ラ
ンジスタがオンとなり、バスがハイ状態になついる。そ
して、デコーダ回路82の出力綿83が0′でかつまた
、ALUCALLY信号がロウのとき、NOR回路84
の出力がハイとなり、NMOSトランジスタ85をオン
とする。すると、ハイ状態にあったXフラグバスがロウ
になって、負論理で活性化される。同様にシフタキャリ
ー5FTCARRY6<ロウで、マイクロ命令がシフタ
キャリー5FTCARRYを指定しているならば、NO
R回路86の出力がハイとなってMO3回路87をオン
にしてXをロウにする。ZフラグバスはALUZERO
信号がロウでかつ、マイクロ指定があった場合に、ロウ
となる。これら状態フラグは、クロック信号CLKYの
入力によって、ラッチ回路88にラッチされる。ランチ
回路88の出力は反転され、分岐条件コードの上位3ビ
ツト、すなわち第9図の分岐条件コードの上位3ビツト
とのそれぞれとAND回路89で分岐条件に従った条件
が形成される。
部91に入力される。その排他的論理部91の他の入力
は、分岐条件コードの最下位ビット(LSB)が入力さ
れている。それが1の場合には、OR回路90の出力は
反転され、Oの場合には、その出力は反転されない。排
他的論理部91の出力が分岐条件成立を示す信号である
が、実際にはマイクロプログラムよりの指令に従う分岐
条件判定タイミング信号が1の時に、AND回路92を
介して分岐条件成立信号を出力する。また、排他的論理
部91の出力の反転と、分岐条件判定タイミング信号と
のAND回路93の出力が分岐条件不成立信号となる。
演算器からキャリーやゼロチエツクの結果等の信号と、
マイクロ指示に基づき、X(キャリー)、Z(ゼロ)、
L(ロウ〔マイナス〕)、・・・、V(オーバーフロー
)などのフラグを演算器のどの信号によって生成するか
を示す信号とを組み合わせて生成される。例えば、CM
O3の回路では、ダイナミック論理回路を利用し、フラ
グセント条件と演算器出力の論理積=1の時フラグバス
の信号線につながるNMOSトランジスタをオンにし、
バス線をLOWレベルにする。セットする条件が1つも
成立しないとそのバス線はプリチャージによってHIG
Hレベルにされたままとなる。
えば、条件とするフラグの選択と、そのフラグのセット
・クリアいずれの状態を選ぶかで指定される。
ダの出力に従って選択されたフラグを条件により排他論
理和で反転し、マイクロからの分岐判定タイミング指示
で条件分岐成立あるいは不成立を判断する。
過去の履歴から予測するためのブロック図である。
ログラムカウンタPCの値とか比較器100〜104で
比較され、どれかに一致した場合に、分岐命令アドレス
105に対応する分岐先命令バッファ106の内容を読
み出す。そのために比較回路の比較結果をOR回路10
7を介してできる分岐ウィンドウヒツト信号を生成する
。この信号が1になると、イネーブル回路108の出力
がイネーブルになるので、分岐先命令バッファ1゜2.
3.4のうち比較結果でイネーブルされたレジスタの内
容がデコーダに与えられる。分岐ウィンドウヒント信号
がOlすなわち、PCがどの分岐命令アドレスと一致し
ない場合は、分岐ウィンドウヒツト信号がOであるから
、反転回路109によって、イネーブル回路110をイ
ネーブルし、命令先取りバッファから通常通り命令デコ
ーダに出力される。すなわち、これが履歴による分岐方
向予測の例の原理である。この方式では、数エントリ(
例では4エントリ)の分岐先命令バッファとそれと組に
なる分岐命令アドレス記憶用レジスタを持つ0分岐命令
アドレス記憶部は、過去に分岐条件成立したBcc命令
の命令アドレスが登録され、また分岐先命令バッファに
はそれに対応する分岐先命令が登録されている。プログ
ラムカウンタがそのいずれかと一致した場合には、過去
に分岐したBcc命令を再び実行することになるので、
今回も分岐する確率が高いものと判断して命令先取りバ
ッファの出力を抑え、分岐先命令バッフ1からの命令を
読み出して命令デコーダ(PLA)111に供給する。
りされる。分岐ウィンドウがヒントした場合で、分岐条
件が成立しなかった時は、該当エントリの登録が抹消さ
れる。
どおり命令先取りバッファ43を使用して処理されるが
、それが分岐条件成立した場合は、分岐ウィンドウの未
使用エントリまたはそれがない場合は旧エントリのどれ
かを追い出して、分岐命令アドレスおよび分岐先命令コ
ードを登録する。
説明したが、本発明はデバッグルーチンのトレース以外
の条件分岐命令を実行する場合に適用できることは勿論
である。
理を行うマイクロプロセッサの分岐トレースに対しては
、条件分岐命令の条件判定が命令処理の最終サイクルで
行われても、パイプライン処理の乱れを生ずることなく
処理が進められ、命令処理速度の向上に寄与するところ
が大きい。
トレースのパイプライン処理を示す図、第3図は本発明
の命令実行部のブロック図、第4図(a)〜(d)は本
発明のパイプライン動作説明図、 第5図は被デバツグプログラムとトレース内容の一例を
説明する図、 第6図はデバッグ処理の説明図、 第7図は第3図における命令デコーダとその周辺回路の
ブロック図、 第8図は条件分岐命令(BCC)を示す図、第9図は第
3図における分岐判定回路の構成図、第10図は第3図
における分岐予測の原理図、第11図は条件分岐の中で
分岐する確率の高い命令を過去の履歴から予測するため
のブロック図である。 1・・・命令デコード部、 2・・・演算実行部、 3・・・分岐判定部、 4・・・デバッグ制御部。 第 図 分岐ウィンドウヒット
Claims (1)
- 【特許請求の範囲】 1)パイプライン処理により命令を順次実行する命令実
行装置において、 条件付き分岐命令がデコードされた場合(a1)に、当
該条件の判定結果(a2)を待つことなく条件成立を推
定して分岐先の命令の実行の有無を決める分岐先実行フ
ラグを立て(a4)、その後実際の判定結果が出た時点
で前記分岐先実行フラグの内容を修正する(a5)こと
を特徴とする分岐命令実行装置。 2)前記分岐先実行フラグは、デバッグ例外発生フラグ
であって、前記分岐先はデバッグルーチンであることを
特徴とする請求項1記載の分岐命令実行装置。 3)パイプライン処理による各命令の実行中に分岐した
命令を順次実行する命令実行装置において、 条件付き分岐命令がデコードされた場合(a1)に、当
該条件の判定結果(a2)を待つことなく直ちに条件成
立を推定して分岐先命令を実行し、その後実際の判定結
果が出た時点でもし、分岐不成立の場合は、前記分岐先
命令の実行をキャンセルすることを特徴とする分岐命令
実行装置。 4)メインメモリユニットから命令をフェッチし、それ
を解読し演算する命令実行装置において、各命令を解読
し、解読した命令が無条件分岐である場合、分岐する確
率の高い条件分岐命令の場合あるいは分岐する確率の低
い条件分岐命令である場合に、それぞれ活性化される無
条件分岐信号、条件分岐1信号、条件分岐2信号を出力
する命令デコード手段と、 前記条件分岐命令の条件が成立する場合には、条件成立
信号と活性化し、条件不成立の場合には、条件不成立信
号を活性化する判定手段と、 前記命令デコーダ手段からの条件分岐1信号が活性化さ
れている場合に前記判定手段からの条件成立、不成立の
結果を待たずに条件分岐を行い、前記判定手段の判定結
果として、分岐不成立信号が活性化される場合には、分
岐先の命令の実行をキャンセルする制御を行う制御手段
とを有することを特徴とする分岐命令実行装置。 5)メインメモリユニットから命令をフェッチし、それ
を解読し演算する命令解読実行装置において、 各命令を解読し、解読した命令が無条件分岐である場合
活性化される無条件分岐信号、分岐する確率の高い条件
分岐命令である場合に活性化される条件分岐信号あるい
は分岐する確率の低い条件分岐命令である場合に活性化
される条件分岐2信号を出力する命令デコード手段(1
2)と、前記命令デコード手段によってアドレス制御さ
れマイクロプログラムを格納するマイクロ命令格納手段
(13)と、 前記マイクロ命令格納手段の出力によって制御される演
算手段(14)と、 前記演算手段からの状態フラグと前記命令デコーダ手段
から与えられる分岐条件コードを用いて、前記マイクロ
格納手段からのマイクロ指示に従って、前記条件分岐命
令の条件が成立する場合には、条件成立信号を活性化し
、条件不成立の場合には、条件不成立信号を活性化する
判定手段(21)と、前記命令デコーダ手段からの条件
分岐1信号が活性化されている場合に前記判定手段から
の条件成立、不成立の結果を待たずに条件分岐を行う分
岐実行フラグをたて、前記判定手段の判定結果として、
分岐不成立信号が活性化される場合には、前記分岐先実
行フラグの修正を行う制御手段とを有することを特徴と
する分岐命令実行装置。 6)前記命令解読実行装置のデコーダ(DC)ステージ
、アドレス計算(AC)ステージ、マイクロ命令読出し
(MI)ステージ、実行ステージ(OE)、実行結果書
込みステージ(OW)よりなるパイプライン活性化にお
いて、前記条件分岐2信号が活性化されている場合には
それ以前の命令のOEステージで実行される演算部の実
行結果として生じる状態フラグの生成を見て分岐するか
否かの判定を行い、分岐する場合には条件分岐2信号を
生じた分岐命令につづく命令をキャンセルし、 前記条件分岐1信号が活性化されている場合には、条件
分岐1命令の分岐先アドレス計算のACステージが終わ
り次第分岐先命令を先取りして分岐先命令のDCステー
ジに入り、OEステージで実行される演算部の実行結果
として生じる状態フラグの生成を見て分岐するか否かの
判定を行い、分岐する場合にはそのまま分岐先命令のパ
イプライン動作を実行し、分岐しない場合には、分岐先
命令をキャンセルし、そのOWステージにつづくDCス
テージから条件分岐1信号を生じた条件分岐命令につづ
く命令DCステージに入ることを特徴とする請求項5記
載の分岐命令実行装置。 7)前記命令デコーダ手段は、命令先取り要求を行う命
令先取り要求回路と、 条件分岐命令の非分岐側命令列と分岐側命令列をそれぞ
れ格納する2つの領域を有し、前記命令先取り要求回路
から命令先取付り要求信号が命令キャッシュに与えられ
、それに対する応答信号が出力された場合に前記命令キ
ャッシュから命令を先取して、書き込み、さらに書き込
んだ命令を読み出す動作を実行する命令先取りバッファ
と、前記命令先取りバッファから読み出される命令コー
ドをデコードするデコード手段と、 前記デコーダ手段から無条件分岐命令である場合にアク
ティブになる無条件分岐命令信号、分岐確率信号が高い
場合にアクティブになる条件分岐命令1信号、分岐確率
の低い場合にアクティブになる条件分岐命令2信号を入
力し、前記命令先取りバッファのライトポインタやリー
ドポインタの値を変化させる制御を行い、さらに条件分
岐の成立、不成立を制御する判定回路から送られてくる
条件分岐成立信号と条件分岐不成立信号の入力によって
前記変化されたライトポインタまたはリードポインタの
値を所定時間後、再度変化させる命令先取りバッファ制
御手段と、 前記命令先取りバッファの第1及び第2の領域に命令を
振りわけるために書き込みアドレスを生成または退避す
るライトポインタ手段と、 前記命令先取りバッファの第1及び第2の領域から命令
を振りわける読み出しアドレスを生成または退避するリ
ードポインタ手段、 とを有することを特徴とする請求項5記載の分岐命令実
行装置。 8)前記命令デコード手段が無条件分岐をデコードした
場合には、ライトポインタ、リードポインタの格納用レ
ジスタのエントリ番号部を共にゼロにし、WS=RSに
なるようにサイド指定ビットをイニシャライズする手段
と、リードポインタ格納用レジスタのエントリ内オフセ
ット部に、実行部から分岐アドレス計算結果の該当する
下位部を抜き出してセットする手段とを有し、前記命令
先取りバッファの一方の領域に対して、リード・ライト
を行うことを特徴とする請求項7記載の分岐命令実行装
置。 9)前記命令デコード手段が、分岐確率が高い命令であ
る条件分岐1をデコードした場合には、ライトポインタ
・リードポインタ格納用レジスタのエントリ番号部を共
にゼロにし、WS/RSとも反転(逆サイド)にする手
段と、リードポインタのエントリ内オフセット部に、実
行部から分岐アドレス計算結果の該当する下位部を抜き
出してセットする手段と、それ以前のライトポインタ・
リードポインタの値をそれぞれライトポインタとリード
ポインタ格納用レジスタに退避する手段と、 この状態で命令先取りバッファの逆サイドに分岐先命令
を先取りし、読み出して実行する手段と、その後、分岐
判定結果により分岐条件成立の場合は、そのまま継続し
、分岐条件不成立の場合は、命令実行をキャンセルし、
ライトポインタ・リードポインタ格納用レジスタにそれ
ぞれライトポインタとリードポインタ退避用レジスタに
退避してあった値を戻し、そしてWS/RSとも反転し
、命令先取りバッファのアドレスは非分岐側に戻す手段
とを有することを特徴とする請求項7記載の分岐命令実
行装置。 10)前記命令デコーダ手段は、分岐確率が低い命令で
ある条件分岐2をデコードした場合には、ライトポイン
タの値をライトポインタ退避用レジスタに退避し、ライ
トポインタ格納用レジスタのエントリ番号部をゼロにし
、WSを反転する手段と、リードポインタはそのままに
する手段と、その後、分岐判定結果により分岐条件成立
の場合には、命令実行をキャンセルし、リードポインタ
格納用レジスタのエントリ部をゼロにし、オフセット部
に分岐アドレスの下位側をロードし、RSを反転するよ
うに制御する手段と、 分岐条件不成立の場合には、命令バッファの読み出し・
デコード・実行はそのまま継続する手段と、ライトポイ
ンタ格納用レジスタにライトポインタ2退避用レジスタ
に退避してあった値を戻し、WSを反転する手段とを有
することを特徴とする請求項7記載の分岐命令実行装置
。 11)前記命令先取りバッファ制御手段は、無条件分岐
、条件分岐1、条件分岐2、分岐条件不成立、分岐条件
成立信号を入力し、 無条件分岐信号が活性化される場合には、ライトポイン
タ、リードポインタともクリアし、条件分岐1が活性化
された場合には、ライトポインタを退避用レジスタにセ
ットするイネーブル信号および、逆サイドに移させる制
御信号を形成し、 リードポインタを退避用レジスタにセットするイネーブ
ル信号および逆サイドに移させる制御信号を形成し、 条件分岐1信号がデコードされてから分岐条件成立、不
成立信号のどちらかが入力されるまでセットされている
フリップフロップにより条件分岐1の実行を判断し、分
岐条件不成立の場合には、リードポインタおよびライト
ポインタを退避状態からもとにもどし、分岐命令につづ
く命令の先取り、デコードを再開し、 条件分岐2信号が活性化されている場合には、ライトポ
インタを退避用レジスタにセットするイネーブル信号お
よび、逆サイドに移させる制御信号を形成し、 分岐信号不成立が活性化された場合には、ライトポイン
タを退避状態からもとに戻し、もとの分岐命令につづく
命令のライトを実行する制御信号発生し、 分岐条件成立信号が活性化された場合には、リードポイ
ンタを逆サイドに移させる制御信号を発生することを特
徴とする請求項7記載の分岐命令実行装置。 12)前記分岐先命令実行ビットで駆動される処理はデ
バッグルーチンであることを特徴とする請求項5記載の
分岐命令実行装置。 13)前記分岐命令としてデバッグルーチンにjump
した場合、該デバッグルーチンは特権モードで実行され
ることを特徴とする請求項12記載の分岐命令実行装置
。 14)前記条件分岐1信号を生じた条件分岐命令はDo
loopであることを特徴とする請求項5記載の分岐命
令実行装置。 15)前記DoloopはDoloopのカウント更新
と同一のOEステージにDoloopを抜けるためのリ
ミット値との比較を行うことにより実行されることを特
徴とする請求項14記載の分岐命令実行装置。 16)前記Doloopは、Doloopのカウント更
新を行うOEステージと、そのDoloopから抜ける
ためのリミット比較を行うOEステージとで実行するこ
とを特徴とする請求項14記載の分岐命令実行装置。 17)前記判定手段(21)は、演算部から出力される
状態フラグをマイクロ指示による状態フラグ生成条件に
よって有効にするか無効にするかを決定させる手段(8
1〜87)と、 有効になった状態フラグをさらに条件分岐命令の分岐条
件コードによって前記分岐条件の成立または不成立を決
定する手段(88〜93)を有することを特徴とする請
求項5記載の分岐命令実行装置。 18)前記命令解読実行装置は1chipのCPU内に
設けられ、デバッグルーチンを格納するメモリも該CP
U内に設けることを特徴とする請求項5記載の分岐命令
実行装置。19)前記命令デコード手段(12)は、過
去に分岐条件成立した分岐命令の命令アドレスを登録す
る複数の分岐命令アドレス記憶部と、 前記分岐命令アドレスに対する分岐先命令を登録する分
岐先命令バッファ手段と、 現在のプログラムカウンタ値と、前記分岐命令アドレス
記憶部に記憶されている複数の分岐命令アドレスをそれ
ぞれ比較する比較手段と、 前記比較手段の比較結果プログラムカウンタの値が分岐
命令アドレスのいずれかと一致した場合には、一致した
分岐命令アドレスに対応する分岐先命令を前記分岐先命
令バッファから読み出しデコーダに与えまた同時に分岐
確率の高い命令を示す条件分岐1信号を活性化し、プロ
グラムカウンタの値が前記分岐命令アドレス記憶部のど
のアドレスにも一致しない場合には、命令先取りのバッ
ファの命令を前記命令デコーダに与え分岐確率の低い命
令を示す条件分岐2信号を活性化する制御を行う分岐予
測手段を有することを特徴とする請求項5記載の分岐命
令実行装置。 20)パイプライン処理による各命令語の実行中に分岐
した命令語を順次トレースする方法において、 条件付き分岐命令がデコードされた場合に、当該条件の
判定結果を待つことなく直ちに条件成立を推定してデバ
ッグ例外発生ビットを立て、その後実際の判定結果が出
た時点でデバッグ例外発生ビットの内容を修正すること
を特徴とする分岐命令トレース方法。 21)パイプライン処理による各命令語の実行中に分岐
した命令語を順次トレースする方法において、 条件付き分岐命令がデコードされた場合に、当該条件の
判定結果を待つことなく直ちに条件成立を推定して分岐
先命令を実行し、その後実際の判定結果が出た時点でも
し、分岐不成立の場合は、前記分岐先命令の実行をキャ
ンセルすることを特徴とする分岐命令トレース方法。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP15790489 | 1989-06-20 | ||
JP1-157904 | 1989-06-20 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH03129441A true JPH03129441A (ja) | 1991-06-03 |
JPH0795271B2 JPH0795271B2 (ja) | 1995-10-11 |
Family
ID=15659980
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2158825A Expired - Lifetime JPH0795271B2 (ja) | 1989-06-20 | 1990-06-19 | 分岐命令実行装置 |
Country Status (4)
Country | Link |
---|---|
US (1) | US5715440A (ja) |
EP (1) | EP0404068A3 (ja) |
JP (1) | JPH0795271B2 (ja) |
KR (1) | KR930009756B1 (ja) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0528002A (ja) * | 1991-07-24 | 1993-02-05 | Nec Corp | マイクロプロセツサ |
KR100411402B1 (ko) * | 1995-01-26 | 2004-03-20 | 선 마이크로시스템즈 인코퍼레이티드 | 파이프라인방식의프로세서에서잘못예측된분기로부터의복원방법및장치 |
JP2014506371A (ja) * | 2011-01-13 | 2014-03-13 | アーム・リミテッド | データ処理装置のトレース |
Families Citing this family (24)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3494489B2 (ja) * | 1994-11-30 | 2004-02-09 | 株式会社ルネサステクノロジ | 命令処理装置 |
US6026236A (en) * | 1995-03-08 | 2000-02-15 | International Business Machines Corporation | System and method for enabling software monitoring in a computer system |
TW470915B (en) * | 1996-03-12 | 2002-01-01 | Matsushita Electric Ind Co Ltd | Optimization apparatus which removes transfer instructions by a global analysis of equivalence relations |
JP3203180B2 (ja) * | 1996-03-27 | 2001-08-27 | 三菱電機株式会社 | 幾何学演算装置 |
US6119221A (en) * | 1996-11-01 | 2000-09-12 | Matsushita Electric Industrial Co., Ltd. | Instruction prefetching apparatus and instruction prefetching method for processing in a processor |
US6112298A (en) * | 1996-12-20 | 2000-08-29 | Texas Instruments Incorporated | Method for managing an instruction execution pipeline during debugging of a data processing system |
US6052753A (en) * | 1997-01-21 | 2000-04-18 | Alliedsignal Inc. | Fault tolerant data bus |
US5838962A (en) * | 1997-04-09 | 1998-11-17 | Hewlett-Packard Company | Interrupt driven dynamic adjustment of branch predictions |
US6122729A (en) * | 1997-05-13 | 2000-09-19 | Advanced Micro Devices, Inc. | Prefetch buffer which stores a pointer indicating an initial predecode position |
US6553564B1 (en) * | 1997-12-12 | 2003-04-22 | International Business Machines Corporation | Process and system for merging trace data for primarily interpreted methods |
EP0992907B1 (en) * | 1998-10-06 | 2005-09-28 | Texas Instruments Inc. | Trace fifo management |
US7206877B1 (en) | 1998-12-22 | 2007-04-17 | Honeywell International Inc. | Fault tolerant data communication network |
GB2365546B (en) | 1999-12-23 | 2004-02-18 | St Microelectronics Sa | A computer system with two debug watch modes |
GB2362968B (en) | 1999-12-23 | 2003-12-10 | St Microelectronics Sa | Computer system with debug facility |
GB2362730B (en) | 1999-12-23 | 2004-02-11 | St Microelectronics Sa | Computer register watch |
GB2366006B (en) * | 1999-12-23 | 2004-06-30 | St Microelectronics Sa | A computer system with debug facility |
GB2362729B (en) | 1999-12-23 | 2004-02-11 | St Microelectronics Sa | Memory access debug facility |
US6842811B2 (en) * | 2000-02-24 | 2005-01-11 | Pts Corporation | Methods and apparatus for scalable array processor interrupt detection and response |
US7350110B2 (en) * | 2002-01-14 | 2008-03-25 | International Business Machines Corporation | Method and system using hardware assistance for continuance of trap mode during or after interruption sequences |
US8959500B2 (en) * | 2006-12-11 | 2015-02-17 | Nytell Software LLC | Pipelined processor and compiler/scheduler for variable number branch delay slots |
JP5082716B2 (ja) * | 2007-09-20 | 2012-11-28 | 富士通セミコンダクター株式会社 | プログラム変換装置、プログラム変換方法およびプログラム変換プログラム |
GB2481385B (en) * | 2010-06-21 | 2018-08-15 | Advanced Risc Mach Ltd | Tracing speculatively executed instructions |
US9489284B2 (en) | 2012-02-29 | 2016-11-08 | Freescale Semiconductor, Inc. | Debugging method and computer program product |
US10802828B1 (en) | 2018-09-27 | 2020-10-13 | Amazon Technologies, Inc. | Instruction memory |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS518841A (ja) * | 1974-07-09 | 1976-01-24 | Hitachi Ltd | Bunkimeireiseigyohoshiki |
JPS57153342A (en) * | 1981-03-19 | 1982-09-21 | Mitsubishi Electric Corp | Pipeline computer |
JPS59223850A (ja) * | 1983-06-03 | 1984-12-15 | Fuji Electric Co Ltd | 命令先読み制御方式 |
JPS6255738A (ja) * | 1985-09-04 | 1987-03-11 | Hitachi Ltd | プログラムカウンタトレ−ス機構をもつデ−タ処理装置 |
JPH0195331A (ja) * | 1987-10-08 | 1989-04-13 | Fujitsu Ltd | パイプライン処理システム |
Family Cites Families (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4200927A (en) * | 1978-01-03 | 1980-04-29 | International Business Machines Corporation | Multi-instruction stream branch processing mechanism |
US4338661A (en) * | 1979-05-21 | 1982-07-06 | Motorola, Inc. | Conditional branch unit for microprogrammed data processor |
US4477872A (en) * | 1982-01-15 | 1984-10-16 | International Business Machines Corporation | Decode history table for conditional branch instructions |
EP0109655B1 (en) * | 1982-11-17 | 1991-07-24 | Nec Corporation | Instruction prefetching device with prediction of a branch destination address |
JPH0752390B2 (ja) * | 1985-05-07 | 1995-06-05 | 株式会社日立製作所 | 命令処理装置 |
US4777587A (en) * | 1985-08-30 | 1988-10-11 | Advanced Micro Devices, Inc. | System for processing single-cycle branch instruction in a pipeline having relative, absolute, indirect and trap addresses |
EP0258453B1 (en) * | 1986-02-28 | 1993-05-19 | Nec Corporation | Instruction prefetch control apparatus |
JPS63245525A (ja) * | 1987-03-31 | 1988-10-12 | Toshiba Corp | マイクロプログラム処理装置 |
US4943908A (en) * | 1987-12-02 | 1990-07-24 | International Business Machines Corporation | Multiple branch analyzer for prefetching cache lines |
GB8728493D0 (en) * | 1987-12-05 | 1988-01-13 | Int Computers Ltd | Jump prediction |
US5129087A (en) * | 1988-02-03 | 1992-07-07 | International Business Machines, Corp. | Computer system and a method of monitoring transient data structures in a computer system |
US4974155A (en) * | 1988-08-15 | 1990-11-27 | Evans & Sutherland Computer Corp. | Variable delay branch system |
US5142634A (en) * | 1989-02-03 | 1992-08-25 | Digital Equipment Corporation | Branch prediction |
US5072364A (en) * | 1989-05-24 | 1991-12-10 | Tandem Computers Incorporated | Method and apparatus for recovering from an incorrect branch prediction in a processor that executes a family of instructions in parallel |
US5136697A (en) * | 1989-06-06 | 1992-08-04 | Advanced Micro Devices, Inc. | System for reducing delay for execution subsequent to correctly predicted branch instruction using fetch information stored with each block of instructions in cache |
US5265213A (en) * | 1990-12-10 | 1993-11-23 | Intel Corporation | Pipeline system for executing predicted branch target instruction in a cycle concurrently with the execution of branch instruction |
-
1990
- 1990-06-19 EP EP19900111575 patent/EP0404068A3/en not_active Ceased
- 1990-06-19 JP JP2158825A patent/JPH0795271B2/ja not_active Expired - Lifetime
- 1990-06-20 KR KR1019900009050A patent/KR930009756B1/ko not_active IP Right Cessation
-
1995
- 1995-03-08 US US08/400,550 patent/US5715440A/en not_active Expired - Lifetime
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS518841A (ja) * | 1974-07-09 | 1976-01-24 | Hitachi Ltd | Bunkimeireiseigyohoshiki |
JPS57153342A (en) * | 1981-03-19 | 1982-09-21 | Mitsubishi Electric Corp | Pipeline computer |
JPS59223850A (ja) * | 1983-06-03 | 1984-12-15 | Fuji Electric Co Ltd | 命令先読み制御方式 |
JPS6255738A (ja) * | 1985-09-04 | 1987-03-11 | Hitachi Ltd | プログラムカウンタトレ−ス機構をもつデ−タ処理装置 |
JPH0195331A (ja) * | 1987-10-08 | 1989-04-13 | Fujitsu Ltd | パイプライン処理システム |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0528002A (ja) * | 1991-07-24 | 1993-02-05 | Nec Corp | マイクロプロセツサ |
KR100411402B1 (ko) * | 1995-01-26 | 2004-03-20 | 선 마이크로시스템즈 인코퍼레이티드 | 파이프라인방식의프로세서에서잘못예측된분기로부터의복원방법및장치 |
JP2014506371A (ja) * | 2011-01-13 | 2014-03-13 | アーム・リミテッド | データ処理装置のトレース |
JP2014507710A (ja) * | 2011-01-13 | 2014-03-27 | アーム・リミテッド | 処理装置、トレースユニット、および診断装置 |
US10379989B2 (en) | 2011-01-13 | 2019-08-13 | Arm Limited | Processing apparatus, trace unit and diagnostic apparatus |
Also Published As
Publication number | Publication date |
---|---|
US5715440A (en) | 1998-02-03 |
KR910001538A (ko) | 1991-01-31 |
EP0404068A2 (en) | 1990-12-27 |
JPH0795271B2 (ja) | 1995-10-11 |
KR930009756B1 (ko) | 1993-10-09 |
EP0404068A3 (en) | 1991-12-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JPH03129441A (ja) | 分岐命令実行装置 | |
JP3599409B2 (ja) | 分岐予測装置 | |
US7047399B2 (en) | Computer system and method for fetching, decoding and executing instructions | |
US5592634A (en) | Zero-cycle multi-state branch cache prediction data processing system and method thereof | |
US7620802B2 (en) | Instruction execution device, debugging method, debugging device, and debugging program | |
JP2678527B2 (ja) | キャッシュメモリ装置 | |
JPH02260033A (ja) | ブランチ予測 | |
KR20010050791A (ko) | 분기 명령과 연관된 컴퓨팅 시스템 레이턴시를 감소시키기위한 시스템 및 방법 | |
US5185869A (en) | System for masking execution ready signal during unsettled period of determining branch condition to prevent reading out of stored instructions | |
JPS6125169B2 (ja) | ||
JPH01214932A (ja) | データ処理装置 | |
JPH03158928A (ja) | データ処理装置 | |
US8250344B2 (en) | Methods and apparatus for dynamic prediction by software | |
US5212779A (en) | System for guarantee reexecution after interruption by conditionally used store buffer if microinstruction being executed is a memory write and last microinstruction | |
KR970011209B1 (ko) | 실행된 명령 스트림을 추적하기 위해 사용되는 신호를 발생하기 위한 회로를 포함하는 마이크로프로세서 | |
JP2591325B2 (ja) | 分岐制御装置 | |
JP2503223B2 (ja) | 先行制御方式 | |
JPH0934704A (ja) | 無条件ジャンプ命令処理方法並びにそのための無条件ジャンプ命令処理装置及び汎用レジスタ | |
JP2579817B2 (ja) | マイクロプロセッサ | |
JPH01258032A (ja) | パイプライン処理機構を持つデータ処理装置 | |
JPH0769807B2 (ja) | データ処理装置 | |
JPH06242946A (ja) | 分岐制御装置 | |
JPH0895784A (ja) | 演算処理装置及び方法 | |
JPH0315771B2 (ja) | ||
JPH0769808B2 (ja) | データ処理装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20071011 Year of fee payment: 12 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20081011 Year of fee payment: 13 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20081011 Year of fee payment: 13 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20091011 Year of fee payment: 14 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20091011 Year of fee payment: 14 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20101011 Year of fee payment: 15 |
|
EXPY | Cancellation because of completion of term | ||
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20101011 Year of fee payment: 15 |