JPS62245442A - 情報処理装置 - Google Patents

情報処理装置

Info

Publication number
JPS62245442A
JPS62245442A JP61090702A JP9070286A JPS62245442A JP S62245442 A JPS62245442 A JP S62245442A JP 61090702 A JP61090702 A JP 61090702A JP 9070286 A JP9070286 A JP 9070286A JP S62245442 A JPS62245442 A JP S62245442A
Authority
JP
Japan
Prior art keywords
instruction
address
processor
bus
read
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
JP61090702A
Other languages
English (en)
Other versions
JPH0731615B2 (ja
Inventor
Junichi Iwasaki
岩先 純一
Hisao Harigai
針谷 尚夫
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 JP61090702A priority Critical patent/JPH0731615B2/ja
Priority to KR1019870003729A priority patent/KR930008686B1/ko
Priority to US07/039,900 priority patent/US4879646A/en
Priority to EP87105823A priority patent/EP0241946B1/en
Priority to DE3751356T priority patent/DE3751356T2/de
Publication of JPS62245442A publication Critical patent/JPS62245442A/ja
Publication of JPH0731615B2 publication Critical patent/JPH0731615B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F5/00Methods or arrangements for data conversion without changing the order or content of the data handled
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/362Software debugging
    • G06F11/3636Software debugging by tracing the execution of the program
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/362Software debugging
    • G06F11/3648Software debugging using additional hardware
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording 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)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Debugging And Monitoring (AREA)
  • Advance Control (AREA)

Abstract

(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。

Description

【発明の詳細な説明】 〔産業上の利用分野〕 本発明は情報処理装置に関し、とくにマイクロ・プロセ
ッサ等の如く半導体チップ上に集積されたプロセッサの
アドレス・バス端子、データ・バス端子を主とするチッ
プ端子に現われる(入力もしくは出力される)情報から
、プロセッサ内部で実行された命令を実行順にその命令
二一モニツクを復元したり、ある°いは実行された命令
がプロセッサ外部にオペ2ンドを有する場合には命令二
一モニツクに付随して実際にプロセッサがオペランドと
してアクセスしたアドレスおよびそのデータをも復元す
る(命令トレース)機能を有し、プロセッサを用いて開
発するソフトウェアのデパック作業に有効な情報処理装
置に関する。
〔従来の技術〕
まず、命令の光行制御機能を有するマイクロブロセッサ
の内部構成、特に、命令コードの先行フ゛  エッチ制
御、キュー・ステータスおよびバス・ステータスを説明
し、従来のマイクロプロセッサがキュー・ステータスお
よびバス・ステータスtどのように用いて命令トレース
を実行しているかを説明する。さらに、上記マイクロプ
ロセッサよシも進歩した多段ステージのパイプライン構
造を有する高機能マイクロ・プロセッサの内部構成につ
いて説明し、かかる高機能マイクロプロセッサで前記の
命令トレースを実行した場合における欠点を説明する。
命令コード・フェッチ−命令解読−オペランド・アクセ
ス−命令実行−オペランド・アクセスというマイクロプ
ロセッサの基本動作シーケンスを全てシーケンシャルに
行う従来のマイクロプロセッサにおいては、マイクロプ
ロセッサが一連の命令の実行中にアドレスバス端子及び
データ端子に現われる情報を順番に追うだけで命令トレ
ースを行う事ができた。また、マイクロプロセッサの前
記基本動作シーケンスの中で、命令コード・7エクチを
独豆したユニットに任せて、命令コード・フェッチ動作
だけを先行制御するタイプのマイクロプロセッサにおい
ては、該マイクロプロセッサが一連の命令の処理中にア
ドレス・パス端子とデータ・バス端子及び命令コード・
7エツチを行うユニットの内部状態を示すステータス信
号の出力端子に現われる情報を一旦トレース・バッファ
・メモリに時系列データとして蓄えておき、先行制御さ
れる命令コード・7エツチによりプロセッサ内に取込ま
れた命令コードとその後その命令コードが実行された結
果とを、前記ステータス信号によって対応づける編集作
業を行って命令トレースを行うことができる。このよう
に1マイクロプロセツサの命令トレース法は、マイクロ
プロセッサの端子に現われる情報をトレースしているた
め、先に述べた命令コード・7エツチの先行制御を行う
ためにマイクロプロセッサの内部構成を変えると、それ
に伴って命令トレースの為に内部状態を示す必要最小限
の情報を最少の端子から出力する事が必要になるととも
に、命令トレース法も変更しなければならない。
第4図は従来のプロセッサの内部ブロック図である。4
01はプロセッサチップ、402はアドレスおよびデー
タが入出力されるパス端子である。
403は内部バス、404はデータ・レジスタ。
405はアドレス生成部、406は6バイト分の命令キ
ュー及び命令キ島−制御部である。プロセッサのキュー
・ステータス情報は命令キュー制御部406で生成され
、キュー・ステータス専用の信号路407を介してプロ
セッサ401の外部へ出力される。命令キュ−406か
ら出力された命令コードは信号路408.内部データ・
バス409を介して命令ラッチ411に送られ、そこに
格納される。412は命令コードのデコーダであり、命
令ラッチ411の出力を入力とする。、410は命令実
行制御部である。413は各種レジスタ、414は算術
論理演算回路、415は算術論理演算回路用のオペラン
ド・レジスタである。416ハハス制御部であり、プロ
セッサ401のバス・サイクル制御、バス・ステータス
信号生成等を制御する。417はバス制御部416から
生成されるバス・ステータス信号をプロセッサ401の
外部へ出力する為の信号路である。
第4図に基いて、プロセッサの命令コード・ブリフェッ
チ動作、命令デコード動作、命令実行について説明する
プロセッサの命令コード拳ブリフェッチ動作は、アドレ
ス生成部405に於て生成したプリフェッチ用アドレス
をパス端子402を介して不図示のシステム・アドレス
・バスに出力し、不図示のメモリ内の該当する領域から
不図示のシステム・データ・バスに出力された命令コー
ドをパス端子402から取込み、内部バス403を介し
てFIF O(First In First Out
 )構造の命令キュ−406の最後尾に格納する。ここ
でプロセッサのデータ・バスが16ビツト巾であるとす
れば、1回の命令コード・プリ7工ツチ動作により2バ
イト分の命令コード(1バイト=8ビツト)を命令キ、
−406に格納できる。
プロセッサは命令キ、−408の先頭から順に1命令キ
エ−408の先頭かな順に1命令当り1バイト分ずつの
命令コードを信号路408、内部バス409を介して命
令ラッチ411に格納し、命令コード・デコーダ412
を用いてデコードする。デコードの結果生成される制御
情報は命令実行制御部等に転送され、デコーダ412に
於てデコードされた命令コードに記述されている動作が
直ちに実行される。デコーダ412に於てデコードされ
た命令コードに記述されている動作の実行が終了すると
、プロセッサは命令キ、−412から次の1命令コード
を命令ラッチ411に取込み、デコードして実行すると
いうシーケンスを繰返す。
例えば、命令キニー406から取出されて命令ラッチに
格納された命令コードをデコーダ412に於てデコード
した結果、メモリ内にリード・オペランドが必要である
場合には、まず命令コードのデコード後メモリから必要
なリード・オペランドを読出す1命令実行制御部410
はアドレス生成部405に対し、メモリ内のリード・オ
ペランドのアドレスを生成する為に必要な情報を与えて
からパス制御部416に対し、メモリ・リード・バス・
サイクルの起動を指令する。パス制御部416は命令実
行制御部410からの前記指令により、アドレス生成部
に於て生成されたアドレスを用いてメモリ・リード・バ
ス・サイクルを起動し、メモリから得たデータをデータ
・レジスタ404に格納し、メモリ・リードが完了した
事を命令実行制御部410に伝える。命令実行制御部4
10は先に発したメモリ・リード・バス・サイクル起動
指令に対するメモリ・リード完了の情報をバス制御部4
16から受けるとデータ・レジスタ404の内容を用い
て必要な処理を行う。従って、命令実行制御部410か
らのメモリ・リード・バス・サイクル起動指令をパス制
御部416が受取っても、システム・データ・バス及び
システム・アドレス・バスが他のバス・マスク等により
専有されていると、パス制御部416は命令実行制御部
410から指令されているメモリ・リード・バス・サイ
クルの起動ができないので命令の実行はできない。パス
制御部がシステム・データ・バス及ヒシステム・アドレ
ス・バスの使用権を獲得してメモリ・リード・バス・サ
イクルを起動し、メモリ内の所定の領域からのデータを
取込んでデータ・レジスタに書込むまで、命令の実行は
停止したままである。言い換えれば、このプロセッサに
おいて、メモリ又はI10アクセスを必要とする命令の
為のメモリ・アクセス又はI10アクセスの実際のバス
・サイクルは、その命令実行中に限られるわけである。
かかるプロセッサを用いてソフトウェアを開発する際に
は、命令トレースによるソフトウェアのデパックが必要
である。命令トレースはCPUがどの命令を実行した時
にどのような結果が得られるか、1つの命令の実行結果
がその命令以降の6礫令にどのような影響を及ぼすか、
また1つの命令又はルーチンの実行中に外部からの割込
み等があった場合に実行中の命令又はプログラムがどの
ような影響を受けるか等を検討するのに必要な1−2報
′  を得るためのもので、ソフトウェア開発において
有用な手法の1つである。
プロセッサは前述のように命令コードのプリフェッチが
可能であるからプロセッサのデータ入出力端子からプロ
セッサ内に取込まれた命令が実行されるタイミングはプ
ロセッサの内部状態に依存する。プロセッサは命令キー
−の状態を示すキー−・ステータス信号QS1.QSo
と、バス・サイクルの種類を示すバス・ステータス信号
84〜SOを出力できるようになっている。キー−ステ
ータス信号からは表1に示すように命令中−一の状態が
わかり、バス・ステータス信号からは表2に示すように
バス・サイクルの種類がわかる。
表1 表2 命令トレース用装置におけるトレース・バッファ・メモ
リの情報は、プロセッサ内部の命令キューと同一の動き
をする擬似命令キューを命令トレース用装置のン7トウ
ェアで実現し、トレース・バッファメモリ内の時系列デ
ータの一語一語のキュー・ステータス信号、ハス・ステ
ータス信号に基いて、プロセッサ内部の命令キューを処
理の進行に従ってシミユレートしつつ、擬似命令キュー
の状態を基準としてプロセッサの実際の処理の進行11
にトレース・バッファーメモリ内の命令コードを逆アセ
ンブルして命令二一モニツクを得ることによって編集さ
れる。又、実行された命令がメモリアクセス又はI10
アクセスを伴う命令の場合には、命令コードを逆アセン
ブルして命令二一モニツクを得ると同時に、実際にメモ
リアクセス又はIlo・アクセスがどのようなアドレス
とデータを用いて行なわれたかを求める必要がある。
上記プロセッサの命令トレース用装置は主としてプロセ
ッサの実行中のアドレス・パスの情報、データ・パスの
情報およびコントロール信号ステータス情報を蓄積する
トレース・バッファ・メモリ機能、ブレーク・ポイント
設定機能、キエー状態エミエレート機能及ヒトレース・
バッファ・メモリ内の情報編集機能を有している。命令
トレース用装置はプロセッサがプログラムを実行してい
る際に、実行に伴って各パス、入出力信号端子に現れる
データ、信号の中で予め決められたものを遂次トレース
・バッファ・メモリに取シ込む。トレース・バッファ・
メモリとしては現在−語が64ビット程度、容量が64
語程度のものから2に語程度のものまで実用化されてい
る。ユーザーはブレーク・ポイント設定機能により設定
したブレーク・ポイントでプログラムの実行を中断した
後、トレース・バッファ・メモリ内の情報が編集された
結果をみて開発したン7トウェアをチェックすることが
できる。
ここで、プロセッサはプリ7工ツチ機能を有し−〔いる
のでデータ・バス端子から入力された命令は直接デコー
ド/実行されるのではなく、命令キューに一旦取込まれ
ここで待ち合わせが行なわれる。命令キー−の詰り具合
、現在実行中の命令の種類等に依存されるので一定とい
うわけではない。
前記プロセッサの場合には、命令キューの状態及び現在
進行中のパス・サイクルの種類が夫々中。
−スf−夕xn[Qso、QSlおよびパス・ステータ
ス情報SQ、〜S4として端子から外部へ出力できるよ
うになっているので、命令トレース用装置テハ、−+ニ
ー・ステータス、パス・ステータス信号と他の情報と共
にトレース・バッファ・メモリ内に取込み、ブレークポ
イントによるプログラム中断後これを参照しつつトレー
ス・バッファ・メモリに時系列データとして蓄積されて
いる情報を鳩果し、どのアドレスの命令コードがデコー
ド又は実行され、その過程において生ずるメモリ又は工
10アクセスが、トレース・バッファ・メモリ内のどの
メモリ・アクセスに対応するかを編集するようにしてい
る。
以下にかかる編集の原理を簡単に説明する。1つの命令
が命令キューから取出されデコード及び実行されている
場合、実行されている命令が終了するまで、次の命令の
実行は始まらない。従って、メモリ又はI10アクセス
を伴う命令が例えば2命令連続している時でも、それぞ
れのメモリ又はI10アクセスの順序はプログラムに書
かれている命令の順序と同一である。さらに、メモリ又
はI10アクセスを伴う命令をメモリから取込む時刻と
、それが命令キューから取出されデコード処理及び実行
処理で必要とされるメモリ・アクセス時刻との差異は、
命令キューの状態に依存するが、メモリ又はI10アゲ
セスの時刻は命令が実行されている時刻と一致している
。以上の事を前提として、以下にトレース・バッファ・
メそりについて説明する。
wc5図にトレース・バッファ・メモリ内の畳込まれた
データの一例を示す。フレームはトレース・バッファ・
メモリの番地に相当し、1つのフレームに一度に取込ま
れる1語の情報が書込まれる。
トレース・バッファ・メモリに堰込まれた順にフレーム
番号が付けられている。B)IE*はバイト・ハイ・イ
ネーブル信号で*はアクティブ・ローを示す。BHE*
信号はデータ・バスの上位半分にデータを出力する事を
示す信号である。STSはバス・ステータス・信号SO
〜S2を表2に示す略号で示したものである。QSTS
はキュー・ステータス信号QSI、QSOを表1に示す
略号で示したものである。QDEPTHは命令キ為−に
格納されている命令コードのバイト数である。DMUX
はトレース・バッファ・メモリに取込んだ目的が何であ
るかを示し、人はアドレスを、DはデータをQはステー
タスを示す。命令トレース用装置にはプロセッサと同等
のバス・サイクルが割り当てられており、プロセッサの
システム・クロック毎にアドレス、データ、ステータス
等のトレース・データを監視スる。アドレスはバス・サ
イクルT1で変化するので、TIでトレース・データ1
語分をトレースバッファ・メモリ内に取込む。この時D
MUXにはアドレスを示す人を書込む。T1で出力され
たアドレスに対するデータは同一パス・サイクルのT4
で確定しているので、T4で1フレームをトレース・バ
ッファ・メモリに取込む。この時DMUXにはDを書込
む。バス・ステータスは、バス・サイクルのT2からで
4の間有効となるが、直前にトレース・バッファ・メモ
リに取込んだバス・ステータスの内容と変化した場合の
みそのバス・ステータス′f!:17レーム分トレース
・バッファ・メモリに堰込む。キュー・ステータスは基
本的にはバス・サイクルには依存しないが、直前にトレ
ース・バッファ・メモリに取込ンタ) L/ −、C・
データのキエー・ステータスの内容と変化した場合にの
み、トレース・データ1語分を取込む。ステータスを取
込む時にはDMUXにはQを書込む。
このプロセッサでは、アドレス、データおよびステータ
スはいずれも同じ端子から時分割に入力されマルチプレ
ックスされているため、DMUXのような指標を設けて
、アドレス(A)か、データ(D)か、ステータス(Q
)かを職別できるようにしておく必要がある。QDEP
THにプロセッサの端子から直接得られる情報ではない
が、キュー・ステータス(QSTS)とバス・ステータ
ス(STS)’lいて次のようにして算出する。
なお、擬似命令キューの構成法にはいくつかの方法かわ
るが、第6図に示す方法について説明する。601は1
バイト1JのメモIJ Q間で命令トレースに充分な8
xが確保されている。プロセッサでは命令コードのブリ
フェッチは2バイトずつ行なわれ、バス・ステータスが
F、DMUXがDを示す事で検知されるので命令コード
・プリフェッチ動作をシミユレートするには、擬似命令
キエー・書込みポインタ(wp )の内容を1づつ2つ
増やしつつブリ・フェッチされた命令コードをWPの示
すメモリ番地に書込む。また、命令コードが命令キュー
から取出される事をシミ、レートするには、キューステ
ータスにより検知できるので、擬似命令キエー読出しポ
インタ(RP)の示すメモリ番地から命令コードを取出
して、擬似命令キエー読出しポインタ(RP)の内容を
1だけ増やす。
QI)EPTHの値は、命令トレース用装置内に設けら
れた第7図に示すハードウェア回路700により、プロ
セッサがリセットされた時を起点として実際に動作して
いる間に逐時計算される。その結果は命令トレース用装
竜がバッファ・メモリ内に取込むlフレーム分の情報の
中に含まれる。第7図に於て、701はキュー・ステー
タス信号を伝達する信号路、702は信号路701上の
キエー・ステータス信号をデコードするデコーダである
。デコーダ702から2つの信号が出力される。
信号路703上の信号は、キエー・ステータス信号が、
表1中の略号のF又はSを示した時にノ・イ・レベルに
なり、信号路707上の信号はキエー・ステータス信号
が表1中の略号でEを示した時にハイ・レベルになる。
704はモジュロ6のアップ・カウンタであり、信号路
703上の信号がロー・レベルからハイ・レベルに遷移
する立上りエッヂを1つ検出する毎にカウンタの値を1
増やす。
705はカウンタ704の出力信号路で、3ビツト巾で
ある。708はプロセッサ及び命令トレース用装置を含
む1つのシステムのリセット信号を伝達する信号路で、
リセット信号はアクティブ・ハイである。709は信号
路707上の信号と信号路708上のリセット信号とを
入力とする論理和ゲートである。710は論理和ゲート
7o9の出力信号路である。711はプロセッサからの
バス・ステータス信号を伝達する信号路で、デ為−ダ7
12に入力される。713はデコーダ712の出力信号
路であり、信号路713上の信号はバス・ステータス信
号が表2中の略号のF(コードフェッチ)を示した時に
ハイ・レベルになる。
714は信号路713上の信号を入力とするモジェロ6
のアップ・カウンタである。カウンタ714は信号路7
13上の信号の立上りエツジを1つ検出する毎にカウン
タの値を2増やす。715はカウンタ714の出力信号
路で3ビツト巾である。
706は減算器である。減算器706には信号路705
及び715を用いてそれぞれカウンタ704及びカウン
タ714の出力信号が入力され、カウンタ714の出力
信号の値からカウンタ704の出力信号の値が減算され
、その結果が信号路716に出力される。
第7図のQDEPTH算出用ハードウェア700の動作
の概略を説明する。プロセッサのキ、−・ステータス信
号及びバス・ステータス信号はそれぞれ信号路701及
び711により逐時QDEPTH算出用ハードウェア7
00内部に伝達される。システムのリセット信号708
がハイ・レベルになると論理和ゲート709の出力信号
がハイ・レベルになり、信号路710を通じてカウンタ
704゜714に入力される。カウンタ704,714
は信号路710上の信号がハイ・レベルになるとカウン
タの出力を零にリセットする。プロセッサがリセット信
号に応答して動作を開始し、命令コードをプリフェッチ
するとバス・ステータスが表2中の略号のF(コード・
7エツチ)を示すので、カウンタ714の出力が2とな
る。プロセッサは1回のプリ7工ツチ動作により2バイ
トの命令コードを命令キ、−に格納するので、デコーダ
713はバス・ステータス信号が表2中の略号のFを1
回検出する毎にカウンタ714の出力を2ずつ増加させ
る。プロセッサが命令キエーからlバイトの命令コード
を取出す事は、デコーダ702が信号路701上のキ凰
−・ステータス信号が表1中の略号(OF (Firs
t)又はS (5ubssequent)を検出する事
で把握し、F又はSを検出する毎にカランタフ04の出
力を1ずつ増加させる。ある時点で減算器706により
命令コード・プリ7エツチを示すカウンタ714の出力
の値から、命令−?、−から命令コードが取出された事
を示すカウンタ704の出力の値を減じた結果が、その
時点でのキ為−の深さQDEPTHである。ま九、デコ
ーダ702に於てキエー・ステータス信号をデコードし
た結果、表1中の略号のE(キ為−・フラッシュ)が検
出された時にはデコーダ702の1つの出力信号路70
7上の信号がハイ・レベルになる。従って、論理和ゲー
)709の出力信号路710上の信号がハイ・レベルに
なシ、カウンタ704及び714がリセットされる。信
号路707上の信号によるカウンタ704及び714の
リセットは、プロセッサが命令キ為−の内容をパージし
た事に相当する。
このように第7図のQDEPTH算出用ハー算出用ハロ
ドウエフ回路令キ、−に入出力される命令コードの増減
がシミユレートされ、結果は出力信号路716上の信号
を命令トレース用装置のバッファ・メモリ内に1度に取
込む1フレームの情報の1部として、プロセッサがリセ
ットされてからブレーク・ポイント・アドレスに於て一
連の動作を停止するまでの間、データ・バス、アドレス
・バス、キ為−・ステータス信号、バス−ステータス信
号の情報と共に逐次バッファ・メモリ内に取込まれる。
次に、第5図のトレース・バッファ・メモリ内のデータ
をもとにしてプロセッサが実際に実行したIlo又はメ
モリ・アクセスを伴う命令を逆アセンブルし、命令の実
行に伴うプロセッサのIlo又はメモリ・アクセスと対
応づける方法を説明する。先行制御では、命令がプロセ
ッサに取込まれてから実行されるまでの時間は一定では
ない。
しかし表から、分岐命令等のようにプログラムのシーケ
ンスを変える可能性のある命令が含まれない限り、命令
の実行の順は命令キー−に取込まれた順と同一である事
を前提として以下の説明を行なう。
実行された命令をトレースする際には、命令キエーが空
になっている状態を捜し出して、トレースの基準とする
。命令キ、−が何時中になりたかは、キューステータス
がEを示している事でわかる。例えば第5図において、
フレーム0002や、フレーム0022ではQSTSが
Eを示している。キューステータスEである場合の直後
の命令7エツチにより命令キ為−に取込まれた命令コー
ドは、命令キエーの先頭におかれ一番初めにデコード、
実行される。命令コードがバイト可変長(例えば1バイ
ト命令から6バイト命令まである場合)の時、キエー・
ステータスのFから次のFまでの1つのFとSの数との
和が実行された命令のバイト数を示している。第51に
おいて、フレーム0002でQsTsがEとなった後、
フレームooo3でアトL/ スi)E出力サレ(DM
UX2>:A ) 、7 L/−A 0004でデータ
が取込まれている(DMUXがD)が、STSがFとな
っているためフレーム0004で取込まれたデータが命
令コードであり、フレーム0002でQSTSがEで命
令キ凰−が空であった直後の命令フェッチであるので、
フレーム0004で取込まれた命令コードがフレーム0
0040段階で命令キ為−の先頭にある。7レーム00
06でQ S ’r SがFを示しているので、7レー
ム0004で取込まれた命令コードが実行部に取込まれ
た事がわかる。フレーム000617)次に7L/−A
OOllでQS’rSがFを示すまでの間フレーム00
07と7レーAOOIOでQSTSがSを示しているの
で、7レーム0004で取込まれ゛Cフレーム0006
から実行され始めた命令は3バイト命令である事がわか
る。またフレーム0005でアドレスが出されて7レー
ム0008で命令コードがプリフェッチされているので
、フレーム0006から実行され始めた命令は、BA 
EAFF  (いずれも16進数表示)の命令コードを
もち、逆アセンブルするとMOV DX FFEAとい
う二一モニツクが得られる。以下フレーム0002の命
令キ1−が空の状態を基準として命令コードのバイト数
をキ1−・ステータスから得て1命令分の命令コードを
得る方法を繰返す。
フレーム0006からフレーム0010までの命令の次
は、フレーム0011からフレーム14までの命令であ
る。キュー・ステータスはフレーム0011でFを示し
、次にフレーム15でFを示すまでSを示さないので7
レーム0011からフレーム14までの間に実行された
命令は1バイト命令であり、フレーム0008でフェッ
チされた2バイト分の命令コードううちフレーム000
6からフレーム0010の命令コードではない方の1バ
イトのEC(16進数表示)という命令コードをもつ。
EC(16進数表示)を逆アセンブルするとIN AL
、DXという二−モニツクを得る。フレーム0013及
びフレーム0014でバス・ステータスSTSがIを示
しているが、これはフレーム00130段階で出方され
たアドレスに対応するI10ポートからフレーム001
4の段階で示されるデータを取込んだ事を示している。
つまり、IN AL、DXという命令の実行の過程で生
ずるIlo・アクセスはフレーム0013及び7レーム
0014の段階でのIlo・アクセスである。
このように1キ為−・ステータス信号が表1の略号のE
を示しているフレームを基準にして、キエー・ステータ
ス信号、ハス・ステータス信号、DMUX指標及びデー
タ・バス上のデータ、アドレス・パス上のアドレスから
1命令分の命令コードを選び出して逆アセンブルして命
令二一モニツクを得、命令実行に必要とされるメモリ又
は工10アクセスとを対応づける事で、プロセッサが実
際に実行した命令を復元することができる。トレース・
バッファ・メモリ内に一箇所基準となるフレームがあれ
ば、その7レーム以降の命令の復元はキュー・ステータ
ス信号とバス・ステータス信号と命令コード・プリフェ
ッチ時のデータ・バス上のデータとをもとにして、順次
1命令分ずつ実行された命令を復元する事ができる。ま
た、基準となるフレーム以前の命令については、キュー
・ステータス信号、バス・ステータス信号、命令コード
・プリ7工ツチ時のデータ・バス上のデータ及びキュー
の深さQDEPTHの情報を用いて基準となるフレーム
から時間の経過とは逆向きにトレース・バッファ・メモ
リ内のフレームをたどる事により実行された命令の復元
が可能である。
第5図に示したトレース・バッファ・メモリ内のデータ
をもとに命令の復元(トレース)を行った結果は第8図
に示すとおりである。
次に、多段ステージのパイプライン構造を持つプロセッ
サにつ込て述べる(以下、このプロセッサを仮にAプロ
セッサという)。
第9図は、Aプロセッサの内部ブロック図である。90
1はAプロセッサチップ、9o2はAプロセッサのアド
レス・バス信号路、903はAプロセッサのデータ・バ
ス信号路、904はAプロセッサ内のデータ・バス、9
05はAプロセッサの命令プリ7工ツチ部で、命令プリ
7工ツチ部905内にはFIFO構造の命令キエーと、
命令キス−制御回路とを有する。906は命令プリ7工
ツチ部内の命令キエーの先頭にある命令解読部907に
転送する為の信号路、907Ifi命令解絖部で、命令
デコーダおよび命令解読部の動作を制御するシーケンサ
等を含む。908は命令解読部907に於てデコードさ
れた結果得られる情報の中で命令実行部910の動作を
指定する情報を格納するFIFO構造のデコード情報キ
ュー、9o9はデコード情報キ、−908からの情報を
命令実行部910に伝達する為の信号路、910は命令
実行部で、算術論理演算回路、各種レジスタ等のハード
ウェアから成る。911は命令解読部907がらの情報
及び指令によシアドレス計算を行うアドレス計算を行う
アドレス生成部、912はアドレス生成部911で生成
されたアドレスをバス制御部913のアドレス・バス・
インターフェース部に伝達する為の信号路である。91
3はAプロセッサのバス制御部である。バス制御部91
3は、機能的に大別してアドレス・バス・インターフェ
ース部、データ・バス・インターフェース部、バス・サ
イクル制御部の3つの部分に分けることができる。アド
レス・バス・インターフェース部はAプロセッサのアド
レス計算ス902からAプロセッサを含むシステムのシ
ステム・アドレス・バスに対して定められたアドレスを
出力する機能をもち、各種アドレスを格納しておくアド
レス・レジスタ群919等のハードウェアを有する。デ
ータ拳パス・インターフェース部a、A、20セツサの
データ・バス903を介しシステム・データ・バスから
データを取込んで一時的に蓄えておくテンポラリ・レジ
スタ916、システム・データ・バス上にデータを出力
する際にデータ出力に先だってAプロセッサ内で生成さ
れたデータを一時蓄えておくテンポラリ・レジスタ91
7等のハードウェアを有する。バス制御部913内のバ
ス・サイクル制御部は、Aプロセッサのバス・サイクル
制御、バス・ステータス出力の制御、Aプロセッサの外
部端子からの信号の入出力の制御を行なう。
915は命令解読部907からバス制御部913へ動作
を指定する情報、やよびバス制御部913から命令解読
部907ヘバス制御部の内部状態を示す情報を夫々双方
向に伝達する為の信号路、914は命令解読部907か
らアドレス生成部911ヘアドレスの生成に必要な情報
およびアドレス生成部911の動作を指定する情報を供
給し、又アドレス生成部911から命令解読部907ヘ
アドレス生成部911の内部状態を示す情報を伝達する
為の信号路である。918は命令実行部910内  ゛
で生成したデータをバス制御部913内のデータ・バス
・インターフェース部にあるテンポ2り拳レジスタ91
7に転送し、又バス制御部913内のデータ・バス・イ
ンターフェース部にあるテンポラリ・レジスタ916か
ら命令実行部910に転送する為の信号路である。92
0はAプロセッサのバス・ステータス信号路、921は
メモリ・す−ド信号・やI10ライト信号等Aプロセッ
サの外部へ出力される情報の信号路である。922はA
プロセッサのキエー・ステータス信号路である。
Aプロセッサには命令プリフェッチ部905゜命令解読
部907、アドレス化成部911.バス制御部913、
命令実行部がある。命令プリフェッチ部905はブリフ
ェッチした命令コードを蓄えるFIFO構造の命令キュ
ーを中心としたノ・−ドウエアを有する。命令解読部9
07は命令キューから取出した数バイトの命令コードの
デコーダと、命令解読部の動作を司るシーク/す、プロ
グラムカウンタ、命令のデコードの結果得られた情報を
蓄えるF’IFO構造のデコード情報キ+S−908等
のハードウェアを有する。アドレス生成部911はアド
レッシングに関するハードウェアを有する。
バス制御部913には大別してアドレス・バス・インタ
ーフェース部、データ・バス・インターフェース部、バ
ス・サイクル制御部がある。アドレス・バス・インター
フェース部はプリフェッチ用アドレス・レジスタ、リー
ド・オペランド用アドレス・レジスタ、ライト・オペラ
ンド用アドレス・レジスタ等のレジスタ8F919をイ
する。データ・バス・インターフェース部は、Aプロセ
ッサの外部へのリード・アクセスにより得られたデータ
を一時格納するテンポ2す・レジスタ916と、Aプロ
セッサの外部へのライト・アクセスの為のデータを一時
格納するテンポラリ・レジスタ917を有する。バス・
サイクル制御部は主にシーケンサから成る。命令実行部
910には、算術論理演算器、レジスタ・ファイル、シ
ックや、命令実行を司る制御回路部がある。
Aプロセッサのハードウェアで本発明の説明に関する部
分について次のように定める。命令プリフェッチ部の命
令キ為−は1バイト巾で最大8バイトの容量とする。命
令解読部は、命令キューから命令コードを取出す時はl
クロックに1バイトずつ取出す。デコード情報キューは
2命令分のデコード情報を蓄える容量金もつ。バス制御
部のテンポラリ・レジスタ916はデータの1#i分に
対して2本あり、夫々RDR1,RDR2と名付ける。
テンポラリ・レジスタ917はデータの1語分に対して
1本あり、WDRと名付ける。プリフェッチ用アドレス
・レジスタはlアドレス情報分ありPARと名付ける。
リード・オペランド用アドレス・レジスタはlアドレス
情報分に対して2本あり、夫々RAR1,RAR2と名
付ける。RARlはRDRIに、RAR2はRDR2に
対応する。ライト・オペランド用アドレス・レジスタは
lアドレス情報に対して1本あり、WARと名付ける。
WARはWDHに対応する。
第1θ図はAプロセッサのバス制御部内のアドレス・バ
ス・インターフェース部の主要部分を示した図である。
信号路912は第9図のものと同じで、アドレス生成部
に於て生成されたアドレスを転送する信号路である。1
002,1005,1008゜1011dアドレス・レ
ジスタ群であるが格納されるアドレスの種類によりプリ
フェッチ用アドレス・レジスタ(PAR)1002.リ
ード・オペランド用アドレス・レジスタl (RARI
)1005.リードオペランド用アドレス・レジスタ2
 (PAR2)1008゜ライト・オペランド用アドレ
ス・レジスタ(WAR)1011と名付ける。1003
 、10.06 、1009 、1012はそれぞれ第
9図のレジスタ919(1002,1005゜1008
.1011)の各ラッチ信号である。1004はレジス
タ1002の出力信号路、907は905の出力信号路
、1010はレジスタ1008の出力信号路、1013
はレジスタ1011の出力信号路である。
1014はマルチプレクサで、信号路1004,100
7゜1010.1013上の信号を入力とし、選択信号
により4本の入力の中から必ず1つだけを選び出すもの
である。マルチプレクサ1014の出力はアドレス・バ
ス902へ出力される。4本のラッチ信号100311
006,1009.1012と、マルチプレクサ101
4の選択信号は命令解読部907に於て生成された信号
であシ、信号路915を介して転送される。レジスタ1
002は他の3つのレジスタ1005.1008.10
11が持たないアドレスの自動更新機能(インクリメン
タ)を有する。ラッチ信号1003によりて信号路10
01上のアドレスが一旦レジスタ1002内に格納され
ると、マルチプレフサ1014の出力としてレジスタ1
002の出力信号路1004上の信号が選ばれ、バス制
御部が命令コード・プリ7エツチの為のメモリ・リード
・バス・サイクルを1回終了される度にレジスタ100
2の内容が一定の量だけ増加される。レジスタ1002
の該自動更新機能により、命令解読部は一旦命令コード
・プリフェッチ用アドレスをレジスタ1002に設定し
た後分岐命令等により次に新たな命令コード・プリフェ
ッチ用アドレスをレジスタ1002に設定しなければな
らない場合までは、命令ニード・プリ7エツチの為のバ
ス・サイクルの毎にレジスタ1002の内容を更新する
必要がないので、命令解読部の負荷が軽減される。
次にAプロセッサの動作の概略について説明する。
メモリ内に格納されている命令コードは、Aプロセッサ
の命令コードのプリ7工ツチ機能によりAプロセッサ内
に取込まれる。プリ7工ツチ動作には、命令解読部、ア
ドレス生成部、バス制御部及び命令プリ7工ツチ部が関
係する。プリ7工ツチ動作は、バス制御部のプリフェッ
チ用アドレス・レジスタPAHに命令解読部からの指令
によりバス生成部からプリフェッチ用アドレスが書込ま
れると、次に命令解読部の指令によりPARの内容が書
替えられるまで、PARの更新はパス制御部が行なう。
バス制御部はAプロセッサとシステムを接続しているシ
ステム・アドレス・バス及ヒシステム・データバスが空
き状態である場合にプリフェッチ動作を行う。バス制御
部はPARの内容をシステム・アドレス・バスに出力す
ると同時にバス・ステータス信号BST2−0 に命令
コード・7エツチであるコードを出力し、MMIO信号
をメモリ・アクセス状態にする。システム・アドレス・
バスに出力したプリ7エツチ用アドレスに対応するメモ
リ内のアドレスの内容(命令コード)をデータ・バスか
らAプロセッサのバス制御部に取込み、命令プリフェッ
チ部の命令キューへ転送して、PARの内容を更新する
。命令プリ7工ツチ部はバス制御部から転送されてきた
命令コードを順番に命令中ニーの最後尾に格納する。命
令プリフェッチ部の主な機能は、命令中ニーの動作の制
御と、中ニー・ステータスQST3−00出力の制御で
ある。バス制御部の主な機能は、メモリ・アクセス、I
10アクセス、大部分の制御信号の入出力制御である。
アドレス生成部の主な機能は、各種アドレッシングの為
のアドレス計算等である。
命令解読部の主な機能は、命令コードのデコード、Aプ
ロセッサ内の各部分の動作の制御である。命令実行部の
主な機能は、算術論理演算等、実際にデータを加工する
事である。
Aプロセッサのステータスについて以下に説明する。A
プロセッサには命令プリフェッチ部の命令キ為−と命令
解読部のデコード情報キ為−の2種類のキ為−があるの
で、2種類のキ為−の状態を示すために4ピツトのキュ
ー・ステータス信号QST3−0 をAプロセッサの外
部に出力している。
QST3はデコード情報キ為−の先頭の1命令分のデコ
ード情報が命令実行部に引取られた時1クロック期間ハ
イ・レベルにな抄、新しい命令が命令実行部に於て実行
され始めた事を示す信号である。
QST2−0は、Aプロセッサの2穫類の中ニーの状態
を第4表に示すようなエンコードして示す信号である。
中ニー・ステータス信号は命令解読部に於て生成される
。バス・ステータスは、バス・ステータス信号BST2
−0 とメモリ・アクセスかI10アクセスかを示す信
号MPvII Oとリード・アクセスかライト・アクセ
スかを示す信号RDWRKより第5表に示すようにエン
コードされている。
MMIO信号はハイ・レベルの時メモリ拳アクセスヲ、
ロー・レベルの時I10アクセスヲ、ハイ拳インピーダ
ンス状態の時アクセスがない事を示す。
RDWR信号はハイ・レベルの時リード・アクセスを、
ロー、レベルの時ライトやアクセスを、ハイ・インピー
ダンス状態の時アクセスがない事を示す。
バス・ステータス信号BST2−0 と朋工0信号とR
DWR信号はバス制御部において生成される。
命令解読部は命令キ、−の先頭にある命令コードから順
に1バイトずつl命令分の命令コードを取出して命令コ
ード・レジスタに蓄える。命令デコーダには命令コード
・レジスタの出力が入力されて命令コードのデコードが
行なわれる。命令解読部でのデコードにより、命令実行
部の動作を指定する情報を、命令実行部の動作に必要な
情報と、アドレス生成部の動作を指定する情報とアドレ
ス生成部の動作に必要な情報と、バス制御部の動作を指
定する情報とバス制@部の動作に必要な情報とが生成さ
れる。命令実行部に関する情報はデコード情報キエーに
格納される。アドレス生成部及びパス制御部に関する情
報は命令解読部では特にラッチしていない。従って命令
コード・レジスタの内容が更新されるとアドレス生成部
及びパス制御部に関する情報は変化する。命令解読部か
ら送られたアドレス生成部に関する1′H報及びパス制
御部に関する情報はそれぞれアドレス生成部、バス制御
部内にラッチされるが、アドレス生成部又はパス制御部
の内部状態により命令解読部から送られてきた情報を受
取る事ができない場合には命令解読部に対し、現在与え
られた情報を受取る事ができないという情報(ビジニ信
号)が返信される。
命令解読部は、1命令分の命令コードのデコードは、命
令実行部の動作に関する情報をデコード情報キエーに格
納する事で終了する。デコード情報キエーに空きが無い
場合とアドレス生成部又はパス制御部からビジー信号を
受取った場合には、命令解読部のデコード動作を停止す
るが、この場合でも命令プリフェッチ部の制御は行う。
命令解読部は命令プリ7工ツチ部の命令キー−の詰シ具
合いを営時監視し、命令コードのプリ7エツチ喪求の制
御も行う。例えば命令キューが空になった場合つまり命
令キ1−から取出した数バイトからなる1命令分の命令
コードを命令解読部においてデコードした結果、無粂件
分岐命令である事が判明し九鳩合などシζは、命令解読
部が命令プリ7工ツテ部に対し直ちに命令キ為−の内容
を全て棄てる(パージ)するように指令するとともに1
アドレス生成部に対しては分岐先のアドレスを生成して
パス制御部に転送するよう指令し、パス制御部に対して
は、プリフェッチ用アドレス・レジスタPAHの内容を
アドレス生成部、経由で伝送されて来る新しいプリ7エ
ツチ・アドレス情報に書き改め、新しい分岐先アドレス
からのプリフェッチ動作の起動を指令する。分岐命令解
読直後の分岐先アドレスからのプリ7工ツチ動作は、A
プロセッサ内部における外部バス使用を必要とする事象
の甲で最烏攬先j−位を与えられている。既ち、分岐命
令解読直後の分岐先アドレスからのプリ7工ツチ動作は
、命令ギューに所定のバイト数の命令コードが蓄えられ
るまで順次続けられ、該ブリ7工ツチ動作期間中には、
命令の実行に必要なメモリ・アクセスの為の外部バスの
使用は不加能である。以上のような命令解読部からの指
令に従りてAプロセッサの命分コードのプリフェッチ動
作が進行する。
命令解読部及び命令実行部の一連の加令に対する動作の
順番は、完全に一致している。簡単ら例としていずれも
分岐命令ではない命令(1)と命令(2)が、命令(1
)、命令(2)の順にアドレスの連続したメモリの領域
に格納されている場合を考える。Aプロセッサのプリフ
ェッチ憬能により命令プリフェッチ部の命令キ為−に命
令α)、命令(2)の順にてれぞれ数バイトから成る命
令コードが取込まれ、命令解読部は命令(1)のデコー
ドを終了して必要なデコード情@をデコード情報キエー
に格納した後に命令(2)のデコードを行う。従って命
令実行部もデコード情報キ為−から取出された命令(1
)のデコード情報を用いて命令(1)の実行を終了した
後に、デコード情報−?為−の先頭にある命令(2)の
デコード情報を引取り、命令(2)を実行する。
命令解読部において解読した命令がメモリ内又はIlo
にリード・オペランドを必要とする命令である場合には
、リード・オペランドの先読みが行われる。リード・オ
ペランドの先読みには、命令解読部、パス制御部が関与
し、命令実行部は関係しない。リード・オペランドの先
読みは、リード・オペランドを必要とする命令が命令実
行部で実行される時刻よシ以前に、予め読込んでおくの
であるが、Aプロセ;すの内部、外部の状態、条件によ
り常に先読みができているとは限らない。
以下にリード・オペランドの先読みについて説明する。
リード・オペランドを必要とする命令の命令コードが命
令解読部の命令コード・レジスタに格納され、デコーダ
に入力されて解読されると、命令解読部からアドレス生
成部及びバス制御部の動作に関する情報として、リード
・オペランドの先読み動作が指定される。命令解読がア
ドレス生成部に対して指定するリード・オペランド先読
みの為の動作はリード・オペランドのアドレス生成の為
に必要な情報を命令解読部からアドレス生成部に提供し
てリード・オペランド先読み用アドレスを生成し、生成
されたリード・オペランド先読み用アドレスをバス制御
部に転送するという動作である。命令解読部がバス制御
部に対して指定するリード・オペランド先読みの為の動
作は、アドレス生成部経由でバス制御部に転送されたリ
ード・オペランド先読み用アドレスを、バス制御部のア
ドレス・バス・インターフェース部内の2つのリード・
オペランド用アドレス・レジス)RARl。
RAR2のどちらに格納するかを指定してリード・オペ
ランド先読み用アドレスをリード・オペランド用アドレ
ス・レジスタに格結し、リード・バス・サイクルを起動
してリード・オペランドの読込んで、リード・オペラン
ド用アドレス・レジスタに対応するリード・オペランド
用データ・レジスタに格納するという動作である。命令
解読部からバス制御部に対して指定するリード・オペラ
ンド先読みの為の動作では、タイミングを指定しない。
バス制御部では、命令解読部から前記のリード・オペラ
ンド先読みの為の情報を得ると、Aプロセッサ外部のシ
ステム・データ・バス及びシステム・データ・バス及び
システム・アドレス・バスの状態、条件に応じてメモリ
・アクセス、又はI10アクセスが可能な時にリード・
オペランド先読みの為のリード・バス・サイクルを起動
してリード・オペランドを読込み指定された読込みテン
ポラリ・レジスタに格納する。リード・オペランド・先
読みの為のリード・バス・サイクルの起動のタイミング
は、命令実行部、命令解読部から制御されず、バス制御
部が他のユニットから独立に制御している。
リード・オペランドの先読みは、リード・オペランドの
先読みは、リード・オペランドを必要とする命令コード
の命令解読部でのデコード段階で検知される。命令解読
部はアドレス生成部及びバス制御部に対し前記の動作指
定を行うとともに、命令実行部に対し、バス制御部がリ
ード・オペラランドを読込んだ後、命令実行部がリード
・アクセスすべきリード・オペランド・レジスタ(RD
RlかRDR2か)を、命令実行部の動作を指定する情
報としてデコード情報キー−に格納しておく、例えば、
命令解読部においてデコードした命令がメモリ内に2つ
のリード−オペランドを必要とする命令である場合には
、第1オペランドのアドレスをRAR2に、従って第1
オペランドのデータをRDR2に、第2オペランドのア
ドレスをRAR1に、従って第2オペランドのデータを
RDRIに格納するようバス制御部に指定した場合には
、命令実行部に対し第1オペランド・データはRDR2
の内容を、第2オペランド・データはRDR1の内容を
使用して命令を実行するようデコード情報キューに情報
を格納して該命令のデコードを終了する。
命令実行部が該命令のデコード情報をデコード情報キュ
ーの先頭から取出して実行する際、メモリ内の2つのリ
ード・オペランドが2つともバス制御部によりメモリか
らRDRl、RDR2に予め転送されている場合には、
命令実行部は本来メモリ内にある2つのオペランドのデ
ータを、Aプロセッサ内のレジスタにアクセスするだけ
で得る事ができる。メモリーアクセスには数クロックを
要するがリード・オペランドの先読みKよシ、メモリ内
のリード・オペランドのデータを、命令実行部が必要と
する時点より前に予めAプロセッサ内部のバス制御部内
のレジスタ(本例ではRDRl、RDR2)に転送して
おく事ができた場合には命令実行部が1クロツクで1リ
ード・オペランドをアクセスしたように見えるので、命
令実行効率が向上し、ひいてはAプロセッサのスルー・
プツトが向上する。
しかし、Aプロセッサの外部のシステム・データeバス
、システム・アドレス・バスカ他のバスマスタに長時間
占有されている場合等は、リード・オペランドを必要と
する命令の命令コードが命令解読部でのデコード期間に
、命令解読部から提供したリード・オペランド先読みに
関する情報をバス制御部が受取っても、リード・オペラ
ンドの先読みの為のリード・バス・サイクルの起動は、
早くてもAプロセッサが、現在システム・バスヲ占有し
ているバス・マスクからシステム・バス占有催を返還さ
れるまで待たされる。リード・オペランドの先読みがこ
のように待たされていても、命令実行部では、リード・
オペランドが先読みされているか否かに殉ず、実際にリ
ード・オペランドを必要とする命令が実行され、命令実
行部は命令解読部によって指定されたバス制御部のリー
ド・オペランド・レジスタの内容を読出そうとする。
命令解読部により指定されたリード・オペランド・レジ
スタに、リード・オペランドが先読みされていない時に
は、命令実行部は、バス制御部が17 +ドーバス書サ
イクルを起動してリード・オペランドからデータを読込
んで命令解読部によシ指定されたリード・オペランド・
レジスタに格納し、該リード・オペランド・レジスタの
命令実行部からのアクセスが許可されるまで命令実行部
は動作を停止して待つ。結令夾行部の@作が停止してし
まうと、デコード情報キ息−も止まるので、命令解読部
のデコードも止1す、A7”ロセッザの主な動作は全て
停止する。バス制御部がリード・バス・サイクルを起動
してん令解胱部により指定された読込みテンポラリ・レ
ジスタにリード・オペ2ンドを格納する事により命令冥
行部の動作が再紹され命令解−り部のデコードも再開さ
れてAプロセッサの動作が14開される。本例のように
、メモリ内又はl10Kリード・オペランドを必をとす
る節令が命令K mc 廊に於てデコードされ、デコー
ドと同時は命令解tc部からアドレス生成部及びバス制
御部に対しリード・オペランドの先説与動作を指定して
、該命令のデコード情報をデコード情報キ為−に格納し
た佼、命令実行部での命令処理が進み、QtFi実行部
がデコード情報キ為−の先読から該命令を実行するまで
の藺に、リード・オペランドの先読みが行なわれなかっ
た場合には、前述の416プロセツサと同等の実行効率
となる。
命令解読部でS読される一連の命令の順番とバス制御部
におけるリードオペランドの先読みの順とは完全に一致
している。例えばともにメモリ内にリード・オペランド
を必要とする2つの命令(3)命令(4)が、命令(3
)、命令(4)のIllに命令キューに格納されている
場合を考える。命令解読部は令命キ為−からまず命令(
3)の数バイトから成る命令コード(3)を取出してデ
コードし、バス制御部に対し命令(3)のリード・オペ
ランド(3)先読みの為のメモリ・リード・アクセスを
指定し、命令(3)に関するデコード情報をデコード情
報キー−に格納する。次に命令解読部から命令(4)の
数バイトから成る命令コード(4)を取出してデコード
し、バス制御部に対し命令(4)のリード・オペランド
(4)先読みの為のメモリ・リード・アクセスを指定す
る。従ってバス制御部は命令解読部から命令(3)のリ
ード・オペランド(3)先読みの為のメモリ・リード・
アクセス指定を受取った後にネ令(4)のリード・オペ
ランド(4)先読みの為のメモリ・リード・アクセス指
定を受取り、バス制御部は命令解読部から受取った順に
リード・オペランド先読み動作を行うので、一連の命令
の流れとバス制御部に於けるリード・オペランド先読み
の順は一致している。
命令解読部において解読した命令がメモリ内又はIlo
にライト・オペランドを必要とする場合には、ライト・
オペランドの後書きが行なわれる。
ライト・オペランドの後書きはリード・オペランドと等
価であるので、ここでは簡単に説明する。
ライト・オペランドを必要とする命令の命令コードが命
令解読部の命令コード・レジスタに格納され、デコーダ
に入力されて解読されると、命令解読部からアドレス生
成部及びバス制御部の動作に関する情報として、ライト
・オペランドの後書き動作が指定される。命令解読部が
アドレス生成部に対して指定するライト・オペランド後
書きの為の動作はライト・オペランドのアドレス生成の
為に必要な情報を命令解読部からアドレス生成部に提供
してライト・オペランド後書き用アドレスを生成し、生
成されたライト・オペランド後書き用アドレスをパス制
御部に転送するという動作である。命令解読部がバス制
御部に対して指定するライト・オペランドの後書きの為
の動作は、アドレス主成部経由でバス制御部に転送され
たライト・オペランド後書き用アドレスを、バス制御部
のアドレス・パス・インターフェース部内のライト・オ
ペランド用アドレス・レジスタWARに格納し、ライト
・オペランドを必要とする命令が命令実行部に於て実行
され、命令実行部が該命令の実行結果を書出しテンポラ
リ・レジスタWDRに格納した後、ライト・パス・サイ
クルを起動して、WARに格納されているアドレス1W
DRの内容を書出すという動作である。命令解読部から
バス制御部に対して指定するライト・オペランド後書き
の為の動作では、ライト・パスサイクルの起動のタイミ
ングを指定しない。バス制御部では、命令解読部からラ
イト・オペランド後書きの為の情報を得、命令実行部か
らの命令実行結果をWDHに格納した後、Aプロセッサ
外部のシステム・データ・パス及びシステム・アドレス
・パスの状態、条件に応じてメモリ・アクセス又はI1
0アクセスが可能な時にライト・オペランドを沓出す。
ライト・オペランド後書きの為のライト・パス・サイク
ルの起動のタイミングは、命令実行部、命令実行部から
制御されず、バス制御部が他のユニットから独立に制御
している。
また、リード・オペランドの先読みの順が一連の命令の
流れに一致しているのと同様にライト・オペランドの後
書きの順も一連の命令の流れに一致している。
以上説明したように、高度なパイプライン構造を採用し
ているAプロセッサにおいて、リード・オペランドの先
読み及びライ)−オペランドの後書きは、パス制御部内
の読込みテンポラリ・レジスタ、書出しテンポラリ・レ
ジスタと制御用のハードウェアにより実現されており、
命令の処理速度の異なる命令実行部とバス制御部とが滑
らかに命令を処理し、かつ命令の処理効率を向上させる
ものである。前述のように、一連の命令の流れと命令実
行部における命令の処理の順は一致しており、またリー
ド・オペランドの先読みの順及びライト・オペランドの
後書きの順も一連の命令の流れに一致している。しかし
、リード・オペランドの先読み及びライト・オペランド
の後書きのためのメモリ・アクセス又はI10アクセス
を行うバス制御部は、Aプロセッサの内部の状態及び外
部の状WK拘束されているので、バス制御部のメモリ・
アクセス又は工10アクセスのタイミングは、Aプロセ
ッサの内部にある命令解読部や命令実行部からは制御さ
れず、独立しているため、リード・オペランドの先読み
の為のリード・パス・サイクルは、リード・オペランド
を必要とする命令の命令コードが命令解読部に於てデコ
ードされてから、該命令の実行が終了するまでの間に行
われる事と、ライト・オペランドの後書きの為の2イト
・パス・サイクルは、ライト・オペランドを必要とする
命令の実行が終了した後に行なわれるという事は明らか
であるが、ある1つの為のリード・オペランド先読み又
はライト・オペランド後書きの為のパス・サイクルが同
時起動されるかを予測する事は不可能である。
以下の説明のためにAプロセッサのアセンブリ言語の命
令の中から2つの命令について二一モニックと動作を定
義する。
MOVd、aは転送命令である。dはディスティネーシ
鵞ン・オペランド、3はソース・オペランドであり、8
で示されるオペランドの内容がdで示されるオペランド
へ転送される。ディスティネーシヨン・オペランドd1
及びソース・オペ2ンドSはAプロセッサ内のレジスタ
資源でも、メモリ内にあっても、I10ボートであって
もよい。
またディスティネーシ諺ン・オペランドd、ソース奉オ
ペランド3は直接アドレッシングもレジスタ等を用いる
間接アドレッシングも可能である。
従ってソース・オペランドSとしてメモリ内のアドレス
を指定すればMOV d、sはメモリ内にリード・オペ
ランドを必要とする命令となり、ディスティネーシヨン
・オペランドdとしてメモリ内のアドレスを指定すれば
MOVd、sはメモリ内にライト・オペランドを必要と
する命令となる。
JUMP adrは無条件分岐命令である。adrは該
分岐命令の分岐先アドレスである。JUMP adrの
命令コードがAプロセッサ内の命令解読部に於てデコー
ドされると、命令解読部の指令により命令プリフェッチ
部の命令キューの内容の全てが棄てられ、バス制御部の
プリ7エツ用アドレス・レジスタPARにadr K相
当する値が格納されて、バス制御部はPARの内容で示
されるメモリ・アドレスから新たに命令コードのプリ7
エツチを行う。
第11図は転送命令MOVd、sと無条件分岐命令JU
MP adrを用いて書いたプログラムの一部である。
Ll、L2.・・・]Ltoは行番号であり、オペラン
ドのMlo、Mll、M21.・・・、Mloo、MI
OIは全てメモリ内にあるものとする。またオペランド
のR2,R3,R6,R7は命令実行部内のレジスタに
付された番号である。オペランドMIO,Mll、・・
・。
Mloo、MIOIは直接アドレッシングでも間接アド
レッシングでもよい。
fi3は、第11図で用いられている命令二一モニツク
と命令コードとの対応表である。
表3 表3 Kオイテ、例、tば、MOV Mio、Mxtと
いう二一モニツクの命令は0PCDIO,0PCDII
 の命令コードを持つ。ここで、0PCDIO,0PC
DIIはそれぞれ1バイト巾の2進数のパターンである
転送命令MOV d、sも無条件分岐命令JUMP a
drも2バイトの命令コードをもつものとする。
第12図は第11図のプログラムをアセンブルして得た
オブジェクト・コードをメモリに格納した時のメモリ内
のロケーシ謬ノを示した図である。
第11図中ADRI O、ADRI 1、−−−−−−
 、 AL)R100。
ADRlol はメモリのアドレスである。メモリは1
バイト巾である。例えばメモリ内のADHIOのアドレ
スを持つ領域には命令コード0PCDIQが格納されて
いる事が示されている。ADRIQからADR51まで
のアドレスとADR60以降のアドレスは連続している
が、ADR51とADR60が連続しているとは限らな
い。
第13図はAプロセッサの内部の各部の動作のタイミン
グの概要を示した図である。第13図においてゲート遅
延、アドレスとデータのタイミング関係の詳細等線省略
している。第13図にはAプロセッサ内部の各部での動
作が行なわれた時刻t1〜t17と、命令解読部での命
令の解読の順とキュー・ステータスの出力を表4の略号
で示したものと、命令実行部で命令の実行の順と、バス
制御部のアドレス・パス・インターフェース部にある2
つのリード・オペランド用アドレス・レジスタRAR1
とRAR2とライト・オペランド用アドレスレジスタW
ARの内容の変化と、Aプロセッサの外部のシステム・
アドレス・パス上及びシステム・データ・バス上の情報
と、Aプロセッサ内部のデータ・バス・インターフェー
ス部の2つのリード・オペランド用データ・レジスタR
DRI、RDR2とライト−オペランド用データ・レジ
スタWDHの内容の変化を示している。ただしキエー・
ステータスについては表4中の略号のFとElのみを示
し他は省略した・   表 。
命令解読部の欄、命令実行部の欄のII、I2゜I3.
JUMP、I6.I7は第11図中に示した命令を区別
する為の記号で、例えば11はMOVMIOMllとい
う二一モニツクの転送命令である。
命令解読部では時刻H(以下H、t2・・・・・・と略
す)において命令If  (以下II、I2・・・・・
・と略す)の2バイトから成る命令コードを命令キ為−
の先頭から順に取出し、11の命令解読を行う。
工1はメモリ内にリード・オペランドMllを必要とす
るので、命令解読部はアドレス生成部に対しMll  
のアドレスRA1を生成してバス制御部に転送する事を
指令し、バス制御部に対しアドレス生成部から転送され
るRAIをアドレス・パス・インタフェース部のリード
・オペランド用アドレス・レジスタRAR1に格納して
、メモリ内のアドレスRAIの領域に格納されているデ
ータを先読みしてデータ・バス・インタフェース部のリ
ード・オペランド用データ・レジスタRDR1に格納す
る事を指令する。また、11はメモリ内にライト・オペ
ランドMIOを必要としているので、アドレス生成部に
対しMIOのアドレスWAIを生成してバス制御部に転
送する事を指定し、バス制御部に対し、アドレス生成部
から転送されるWAlをアドレス・パス・インターフェ
ース部のライト・オペランド用アドレス・レジスタWA
RiC格納し、工1の命令実行部に於ける実行中にバス
制御部のデータ・パス・インターフェース部のライト−
オペランド用データ・レジスタWDRに転送され格納さ
れるデータを、11の命令実行部に於ける命令実行後に
、メモリ内のアドレスWAIの領域に格納する拳を指令
する。Ilの命令実行部での処理に必要な情報をデコー
ド情報キエーの最後尾に格納して工1の命令解読を終了
する。t2から命令キエーの先頭からI2の2バイトか
ら成る命令コードを取出して命令解読を行う。I2はメ
モリ内にリード−オペランドM21を必要とするので、
工1の時と同様に、M21のアドレスRA2をアドレス
生成部に於て生成させてバス制御部内にRAR2に格納
し、メモリ内のアドレスRA2の領域からのデータの先
読みを指令する。工2の命令解読はt6に於て終了する
。t6からは工3の命令解読を行う。t6から命令キエ
ーの先頭からI3の2バイトから成る命令コードを取出
して命令解読を始める。工3もメモリ内にリード・オペ
ランドM31を必要とするので、II、I2の時と同様
に、M31のアドレスRA3をアドレス生成部に於て生
成させてパス制御部内の2本のリード・オペランド用ア
ドレス・レジスタのうち既にリード・オペランドの先読
みが行なわれ、内容が不要になっている方のレジスタに
格納する。本例の場合は、RARlにRA3が格納され
る。後述するように、t3に於てバス制御部が、tlに
於てRARIK格納した工1のリード・オペランド用ア
ドレスRA1を用いて11のリード・オペランドの先読
みの為のメモリ・リードゆバス−サイクルを起動し、メ
モリ内のアドレスRAIのデータRDltRDRIに格
納しているため、t6に於てRARIの内容RA1は既
に不要となりている。同様にt5に於てRAR2の内容
RA2を用いてI2のリード・オペランド・先読みの為
のメモリ・リード・バス・サイクルが起動されてメモリ
内のアドレスRA2のデータRD2がRDR2に格納さ
れているためt6に於てRAR2の内容RA2も既に不
要になっており、RAR2も実質的には空になっている
。t9に於てI3の命令解読を終了する。t9から命令
JUMPに対する命令解読を開始する。t9から命令キ
為−の先頭から順に2バイトから成るJUMPの命令コ
ードを取出して命令解読を行う。J UMPは無条件分
岐命令であり、JUMPの命令コードが命令解読部に於
て解読されると、命令キエーの内容を全て無効にする。
JUMPの命令コード中に分岐先アドレスをもつため命
令解読部で該分岐先アドレスを解読し、アドレス生成部
に対し該分岐先アドレスを解読して得た情報を転送して
該分岐先アドレスを生成しバス制御部に転送する事を指
令し、バス制御部に対してアドレス生成部から転送され
る該分岐先アドレスをプリフェッチ用アドレス・レジス
タPAHに格納した後PARの内容のアドレスから命令
コードのプリフェッチを、リード・オペランドの先読み
及びライト・オペランドの後書きに優先して行う事を指
定する。JUMPに関し命令実行部での実行はないが、
命令実行部に対し1実行なし”という悄服をJUIVi
Pのデコード情報としてデコード情報キューの最後尾に
格納しtl2に於て無条件分岐命令JUI’/IPの命
令解読を終了する。tl2からtl3までは命令解読部
は、JUMP命令解読時(空になった命令キューに、J
UMP命令による分岐先からの新たな命令コードのブリ
フェッチによって命令コードが1命令分以上蓄えられる
まで動作を停止して待ち合せ状態にある。tl3から命
令I6の命令解読を行う。命令キューの先頭から2バイ
トから成るI6の命令コードを取出して工6を命令′M
読し、工6に必要なメモリ内のリード・オペランドM6
1に対するアドレスRA5をアドレス生成部で生成して
、バス制御部内のRAR2に格納し、RARlの内容R
A5を用いて工6の為のメモリ内のリード・オペランド
の先読みを指令する。I6に関して命令実行部での命令
実行に必要な情報をデコード清報キー−の最後尾に格納
してtl5に於て工6の命令解読を終了する。tl5か
らエフの命令解読を始める。
命令キー−の先頭から2バイトから成るエフの命令コー
ドを取出してI7の命令解読を行う。エフにはメモリ内
にライト・オペランドM7Qが必要である為、命令解読
部が、アドレス生成部に対しM2Oに対するアドレスf
A7を生成し°Cバス制御部へ転送するよう指令し、バ
ス制御部に対しアドレス生成部から転送されるアドレス
WA7をライト・オペランド用アドレス・レジスタWA
Rに格納し、I7の命令実行部に於ける処理の後WDR
K転送され格納されるデータをWARの内容のアドレス
WA7を用いてメモリに書く事を指令する。このように
命令解読部に於てはtlから工1の命令解読が開始され
、I2はt2から、I3はt6から、JUMPはt9か
ら、工6はtl3がら、エフはtl5からそれぞれ命令
解読が開始される。
キュー・ステータスは、1命令分の命令コードの最初の
1バイトが命令キューから命令解読部に取出されると第
4表中の略号のFで表わされる3ビツト・コードをAプ
ロセッサの外部に出力するので、tl、t2.t6.t
9.tl3.tl5の直後にキュー・ステータスがFを
示している。また、命令解読部に於てt9から無条件分
岐命令JUMPの命令コードの命令解読が開始されると
、tlOに於て命令キューの内容が全て無効にされるの
で、tlOに於てキュー・ステータスとして第4表中の
略号のElに相当する3ビツトコードがAプロセッサの
外部に出刃さnる。
命令実行部ではt4に於いてデコード情報キューの先頭
にあっ之IIのデコード情報を喉出し、11の命令実行
を行う。IIはメモリ(Cあるリード・オペランドMl
lをメモリ内のう、イト・オペランドMIOに転送する
命令である。Aプロセッサはリード・オペランドの先読
み機能を有しており、番13図の例においては、11の
命令実行部に於ける命令実行のrW4にされる1寺刻t
4に先立ってt3に於いてAプロセッサ部である11の
リード・オペランドMllを読出す為のメモリ・リード
・バス・サイクルが起動され、該メモリ・リード・バス
・サイクル期間中に得られるMllに対応するデータR
DIがRDRIに格納されるので、t4に於いて工1の
命令実行が開始された時には、11のリード・オペラン
ドMllは既にAプロセッサ内部に存在する。従って、
工1の命令実行では、リード・オペランドMllを得る
為のA7’eyセッサ外部へのアクセスが不要になシ、
Aプロセッサ内部のレジスタRDR1にアクセスすれば
M□1が得られるので、Ilの命令実行時間が短縮され
る。また、11は、メモリ内にライト・オペランドMI
Oが必要であるが、Aプロセッサがライト・オペランド
後書き機能を有しているので、第13図の例において工
1の命令実行部に於ける命令実行がt7に於いて終了し
た時には、11のAプロセッサ外部のライト・オペラン
ドMIOに対応するデータWDIがAプロセッサ内部の
WDHに格納されており、工1のメモリ内へのライト・
オペランドMIOの曹込みは、Ilの命令実行部での命
令実行の終了したt7以後のt8に於いてAプロセッサ
外部にある11のライト・オペランドM10の書出しの
為のメモリ・ライト・バス・サイクルが起動され、tB
でAプロセッサのWDRに格納されている、11のライ
ト:オペランドMIOに対応するデータWD1がメモリ
内の所定の領域に格納される事によってなされる。従や
て、命令実行部に於ける工1の命令実行期間中には、メ
モリ内のリード・オペランド読出し及びメモリ内へのラ
イト・オペランド書出しの為のパス・サイクル期間が含
まれず、リード・オペ2ンド、ライト・オペランドとも
に必要な時にはAプロセッサ内部のレジスタRDRI、
WDRKアクセスすればよいので、工1の命令実行時間
が大幅に短縮される。
I2の命令実行部に於ける命令実行はt7から開始され
、tllで終了する。I2が必要とするメモリ内のリー
ド・オペランドM21は、I2の命令実行部での命令実
行開始時刻t7に先立ってtBに於て先読みされ、Aプ
ロセッサ内部のRDR2に格納されている。I2の命令
実行部に於ける命令実行期間中tlOで、命令解読部で
解読した命令が無条件分岐命令JUMPであったため、
命令キエーの内容が全て無効にされ、JUMPの命令コ
ード中に指定された分岐先からの新たな命令コード・ブ
リフェッチ動作が開始されるという状況が発生している
が、命令実行部における工2の命令実行は全く影響され
ない。
I3の命令実行部に於ける命令実行はtllから開始さ
れ、t17で終了する。前記t10から開始されるJU
MP命令解読に起因する分岐先からの新たな命令コード
・プリ7工ツチ動作がt13まで外部バス占有の最高優
先権を得て続くため、I3の必要とするメモリ内のリー
ド・オペランドM31の先読みを、I3の命令実行部に
於ける命令実行開始時刻tll以前に行う事ができない
従って命令実行部に於ける工3の命令実行はt14で工
3のリード・オペランド先読みがバス占有権を得で、M
31読出しの為のメモリ・リード・パス・サイクルを起
動してメモリからAプロセッサの内部のRDRlにMB
2に対応するデータRD3を格納し、命令実行部がRD
Rlにアクセス可能になるまで待ち合せを行う。その後
、I3のリード・オペランドM31に対応するデータR
D3をRDRIから命令実行部に取出して工3の命令実
行を行いt17においてI3の命令実行を終了する。
JUMPの命令実行部に於ける命令実行はt17から開
始される。JUMPの命令実行部における命令実行は実
質的には動作なしである。t16に於いて工6が必要と
する、メモリ内のリード・オペランドM61の先読みの
為のメモリ・リード・パス・サイクルが起動され、MB
1に対応するデータRA5がAプロセッサ内のRDR2
に格納されている。
命令解読部に於てII、I2.I3.、・の順に命令解
読が行なわれると、命令実行部に於てもII、I2゜工
3・・・の順に命令実行が行なわれるが、例えば命令解
読部に於てI1の命令解読が開始される時刻t1から命
令実行部に於てIIの命令実行が開始される時刻t4ま
での時間はAプロセッサ内部及び外部の諸条件により定
まり、一般には予測し難い。また、命令解読部に於てメ
モリ等Aプロセ。
す外部にオペランドを必要とする命令がII、I2゜工
3の順に命令解読されると、パス制御部に於て工1のオ
ペランドのアクセス、I2のオペランドのアクセス、I
3のオペランドのアクセスの順にAプロセッサ外部にア
クセスする。例えば、工1゜I2.I3はともにメモリ
内にリード・オペランドRA1.RA2.RA3を必要
とし、バス制御部に於てRAI、RA2.RASの順に
メモリ・リード・パス・サイクルが起動される。前述し
たように工3のリード・オペランドの為のメモリ・リー
ド・パス・サイクルは、命令実行部に於けるI3の命令
実行開始時刻tllよシも時間的に後になりてt14に
於て起動されている事からも判るように、Aプロセッサ
の外部にリード・オペランドを必要とする命令のリード
・オペランドのアクセスの為のパス・サイクルが起動さ
れる時刻は該命令の命令解読部での命令′4読開始時刻
と該命令の命令実行終了時刻の間にあるが1.Aプロセ
ッサ内部及び外部の諸条件に彰曽さnるため一般、には
予cijlJL難い。
Aプロセッサの外部にライト・オペランドを必要とする
命令の場合についても同様で、該命令のライト・オペラ
ンドのアクセスの為のパス・サイクルが起動される時刻
、例えば工1のライト・オペランドMIOのアクセスの
為のバス・サイクルが起動される時刻t8、は該命令の
命令実行部での命令実行終了時刻の後にあるが、Aプロ
セ、すの内部及び外部の諸条件に影響されるため一般に
は予測し難い。
以上、高度なパイプライン構造を実現しているAプロセ
ッサについて、Aプロセッサのハードウェアの概略、A
プロセッサ内部の各部分の動作の概略、特にAプロセッ
サの命令先読み機能、リード・オペランドの先読み機能
、ライト拳オペランドの後書き機能を説明した。
次にAプロセッサを用いてソフトウェアを開発する事を
考える。前記8086プロセツサを用いてソフトウェア
を開発する際には命令トレース法により開発中のソフト
ウェアのデパグを行ったが、Aプロセ、すを用いてソフ
トウェアを開発する際にも8086プロセツサの場合と
同様にして命令トレース法及び命令トレース装置を用い
て開発するソフトウェアのデバグを用い、ノアトウエア
の開発するソフトウェアのデバグを用い、ソフトウェア
の開発効率を向上させる。
Aプロセッサの命令トレース法は、プロセッサの命令ト
1/−ス法と同様である。Aプロセッサ用命令トレース
装鍔にはNプロセッサが一連の命令を実行している間に
アドレス・パス上の情報、データ・バス上の情報、必要
な制御信号、ステータス信号をサンプリングした1フレ
ームを次々に時系列データとして蓄積するトレース・バ
ッファ・メモリ、ブレーク・ポイント設定や能、トレー
ス・バッファ・メモリ内の情報の異実機能等が必要であ
る。Aプロセッサ用命令トレース装置を用いてブレーク
・ポイントを設定し、Aプロセッサに一連の命令を実行
させて例えばアドレス・バスに新しい情報が出力された
時やステータス信号が変化シタ時等に1フレームをトレ
ース・バッファ・メモリ内に取込む。ブレーク・ポイン
トに於てAプロセッサの動作が停止した後、トレース・
バッファ・メモリの内容を楯果し、Aプロセッサが実際
に実行したIl’11に命令のニーそニックを得、又メ
モリやI10アクセスを行った命令については実際にア
クセスしたアドレスとデータとを命令二一モニツクと対
応させてユーザに示さなければならない。
第11図に示したプログラムが、アセンブルされて第1
2図に示すようにメモリ内に格納されているとして、A
プロセッサが#S12図中のメそり・アドレスADRI
Oの近傍にある一連の命令を実行した時に、Aプロセッ
サ用の命令トレース装置を用いて命令トレースを行う場
合について説明する。
表5は、Aプロセッサ用の命令トレース装置のトレース
・バッファ・メモリの内容の一部のダンプ・リストであ
る。
表5において、アドレスの欄のRAl、ADR41・・
・・・・は、Aプロセッサがアドレス・パス上に出力し
たアドレス、データの欄のRDI、0PCD41・・・
・・・はAプロセッサの入出力の為にデータ・パス上に
現れたデータである。BUS−8TSの1はAプロセッ
サがバス・ステータス端子に出力したバス・ステータス
のコード及びMMIO信号、RDWR信号を表6に示し
た略図でF、MR,MW のみを表わしている。QST
S4の欄のH,Lは、AプロセッサがQSTS4端子に
出力した信号がハイ・レベル(H)であったか、ローレ
ベル(L)であったかを示している。QSTSa−oの
欄はAプロセッサがキュー・ステータス端子に出力した
キ瓢−・ステータスの信号を第4表に示した略号でF、
S、Elのみを表わしている。右端の欄は、トレース・
バッファ・メモリの内容ではなく、第13図と表5との
対応をつける為に設けた欄で、t2は第13図中のt2
に対応している。まず表5に示したトレース・バッファ
・メモリの内容のダンプ・リストからAプロセッサが実
際に実行した命令をAプロセッサが実行した順に命令二
一モニツクを得る方法を簡単に説明する。
本命令トレースの基準として、プロセッサの命令トレー
ス法と同様にキュm−ステータスが、命令キエーの内容
が全てパージされた事を示す時点を選ぶ。表5では7レ
ーム021に於てQSTSa−〇がEl(命令キエーの
内容パージ)を示しているので、表5のトレース・バッ
ファ・メそりから命令トレースを行う基準としてフレー
ムを選ぶ。
フレーム021でQSTSa−0がElを示した後、最
初にQSTSa−0がFを示すのはフレーム031であ
り、フレーム031の次にQSTSa−0がFを示すの
はフレーム035である。フレーム031とフレーム0
350間でQST3−0がSを示すのはフレーム032
のみであるので、フレーム031で命令コードの第1バ
イト目が命令キエーから取出されて命令解読部へ転送さ
れた命令は2バイト長の命令コードを持つ命令である。
フレーム031で命令コードの填1バイト目が命令キエ
ーから取出された命令を仮に命令工と名付ける。次に命
令工の命令コードを選び出す。フレーム021で命令キ
ューの内容が全てパージされた後、最初の命令コード・
フェッチはフレーム023とフレーム024である。フ
レーム023で出力したプリフェッチ用アドレスに対応
するメモリ内の領域から出力された命令コードはフレー
ム024のデータ欄の0PCD60である。フレーム0
23及びフレーム024により爺令工の第1バイト目の
命令コードは0PCD60  である事がわかる。フレ
ーム023及び、フレーム0240次の命令コート囃7
エツチはフレーム025及びフレーム026で行なわれ
ており、命令コード0PCDe1がAプロセッサ内に取
込まれているので、2バイト長の命令コードをもつ命令
工の命令コードは0PCD60゜0PCD61 である
。2バイト長の命令コード0PCD60,0PCD61
を逆7センプルするとMOV M2O、M61  とい
う二−モ二ックが得られるので、命令Iの命令二一モエ
ックはMOV M2O,1VI61である。以下同様な
操作を繰返すと、フレーム035で命令コードの第1バ
イト目をまた7レーム036で命令コードの2バイト目
を命令キエーから取出された命令は2バイト長の命令コ
ードを持つ命令で、命令コードは命令工のプリフェッチ
の次の2回のプリフェッチつまり027,028及びフ
レーム029.030での命令コードであるので、0P
CD7Q。
0PCD71 であシ、逆アセンブルするとMOV M
2O、M71 を得る。
次1cAプロセッサが実行した命令がAプロセッサ外部
のメモリ又はIloにオペランドを持つ場合には、該オ
ペランドの実際の値、つまりどのアドレスに対しどのよ
うなデータをアクセスしたかをトレースしなければなら
ない。命令■を例として説明する。命令工は、メモリ内
にリード・オペランドM61と、ライト・オペランドM
60を必要とする転送命令である。Aプロセッサのリー
ド・オペランド先読み機能により命令工のリード・オペ
ランドが、命令工の命令解読部に於ける命令解読後命令
工の命令実行部に於ける命令実行終了前の間にメモリか
ら読出される。しかし命令■のMOV M2O,M61
のリード・オペランドのアドレスが間接アドレッシング
により得られるとすれば、命令工のリード・オペランド
のアドレスの値が命令Iの命令コード中K FiKI 
K現われてこないため、表5のダンプ・リスト中のメモ
リ・リード(BUS−8TSがMRを示す)を示してい
るいくつかのフレームの中のどのフレームでのメモリ・
リードが命令工のリード・オペランドの読込みの為のメ
モリ・リードを行っているフレームであるかを特定する
事ができない。表5には、フレーム003と004のメ
モリ・リード、フレームoioと011のメモリ・リー
ド、フレーム033と034のメモリ・リード、フレー
ム037と039のメモリ・リードの4つスバある0、
フレーム003と004のメモリ・リードとフレーム0
10と011のメモリ・リードは命令■のデコードが行
なわれるフレーム031よりも時間的に前にあるので、
フレーム003と004のメモリ・リードと、7レーム
010と011のメモリ・リードは命令工のリード・オ
ペランドをメモリから読出す為のメモリ・リード・バス
・サイクルではない事は明白である。
命令■のデコードが行なわれるフレーム031よりも時
[4的に後にあるフレーム033と034−t’のメモ
リ・リード、フレーム037と039でのメモリ・リー
ド及び、表5には示されていないフレーム39以呻に現
われるであろうメモリ・リードのフレームが命令工のリ
ード・オペランドのメモリからの晴出しの為のメモリ・
リード・バス・サイクルである可能性があるが、その中
のどのフレームが命令Iのリード・オペランドの為のメ
モリ・リード・パス・サイクルであるかを特定する事が
できない。従って、命令工の二一モニツクを得る事はで
きて本、命令Iがどのような値のリード・オペランドを
どのアドレスから得たかを示す情報がないため、命令I
の動作の完全な復元ができない。
〔発明が解決すべき問題点〕
以上説明してきたように、命令コード・プリフェッチ機
能のみを有する情報処理装置に対し、命令実行動作を該
情報処理装置外部に設けた手段によシ追跡する事が可能
になるように情報処理装置から内部の命令コード・プリ
7エツチ・キエーの状態を示す情報とバス・サイクルの
種類を示す情報の該情報処理装置の外部への出力を必要
充分とする従来の命令トレース方法は、多段パイプライ
ン構造を有し、命令コード・プリフェッチ機能、リード
・オペランド先読み機能、ライト・オペランド後書き機
能を有する高性能な情報処理装置に対しては何ら効果が
ないという欠点を有していた。
〔問題点を解決するための手段〕
本発明は多段ステージのパイプライン構造を実現してい
るマイクロプロセッサにおいて、マイクロプロセッサ内
部に所定の命令の命令コードが解読されると出力が変化
するステータス・フリップ・70ツブと、該ステータス
・フリップ・70ツブの出力をマイクロプロセッサのバ
ス・サイクル期間のアドレスの出力タイミ゛ングに同斯
してマイクロプロセッサ外部に出力する手段と、マイク
ロプロセッサ外部とマイクロプロセッサの入出力端子に
現われる情報を遂次時系列データとして蓄える手段とを
設け、マイクロプロセッサ内部にあるステータス・フリ
ップ・フロップからマイクロプロセッサ外部へ出力され
る情報を参照して、マイクロプロセッサのパス・サイク
ルがステータスφフリップ・フロップの出力を変化させ
る所定の命令以前の命令に付随するパス・サイクルか、
あるいは所定の岐令以後の命令に付随するパス・サイク
ルかを区別して時系列データを@実するようにしたこと
を特徴とする。
〔実施例〕
第1図は本発明の1実施例のブロック図である。
101はマイクロプロセッサチップ、102はプロセッ
サ102のアドレス・バス信号路、103はプロセッサ
101のデータ・バス信号路、104はプロセッサ10
1内のデータ・バス、105はプロセッサ101の命令
プリ7工ツチ部で、命令ブリフェッチ部105内[II
′1FIFO構造の数バイトの命令コードを格納する命
令キューと、命令キエー制御回路を有する。106は命
令プリフェッチ部内の命令キエーの先頭にある命令コー
ドを命令解読部107に転送する為の信号路、107は
命令解読部で、命令解読部107内には数バイトの解読
中の命令コードを格納する命令コード・レジスタと命令
デコーダと命令解読部の動作を制御するシーケンサ等か
ら成る。108は命令解読部に於てデコードされた結果
得られる情報の中で命令実行部110の動作を指定する
情報を格納するFIFO構造のデコード情報キュ−11
09はデコード情報キュー、109はデコード情報キュ
−108からの情報を命令実行部110に伝達する為の
信号路、110は命令実行部で、算術論理演算回路、各
椙レジスタ等のハードウェアを有する。
111は命令解読部107からの情報及び指令によ抄ア
ドレス計真を行うアドレス生成部、112はアドレス生
成部111で生成されたアドレスをバス制御f4113
のアドレス・バス・インターフェース部に伝達する為の
信号路である。113はプロセッサ101のバス制御部
である。バス制御部113は機能的に大別してアドレス
・バス・インターフェース部、データ・バス・インター
フェース部、バス・サイクル制御部の3つの部分に分ケ
ラれる。アドレス・バス・インターフェース部はプロセ
ッサ101のアドレス・バス102からプロセッサ11
1を含む情報処理システム−アドレス・バス上に定めら
れたアドレスを出力する機能をもち、各種アドレスを格
納しておくアドレス・レジスタ群119等のハードウェ
アを有する。データ・バス・インターフェース部はプロ
セッサ101のデータ・バス103を介しシステム・デ
ーダバスとプロセッサ101の内部とのデータの授受を
司る部分で、データ・バス103を介しシステム・デー
タ・バスからデータを取込んで一時的に蓄えておく読込
みテンポラリ・レジスタ1116、またシステム・デー
タ・バス上にデータを出力する際にデータ出力に先だっ
てプロセッサ101内で生成されたデータを一時蓄えて
おく書出しテンポラリ・レジスタ117等のハードウェ
アを有する。バス制御5113内のバス・サイクル制御
部はプロセッサ101のバス・サイクル制御、バス・ス
テータス出力制御プロセッサ101の外部端子からの信
号の入出力制御の機能を有する。115は命令解読部1
07がパン制御部113に対し動作を指定する情報を供
給し、又バス制御部113が命令解読部107に対しバ
ス制御部113の内部状態の情報を伝達する為の信号路
、114は命令解読部107がアドレス生成部111に
対しアドレスの生成に必要な情報とアドレス生成部11
1の動作を指定する情報を供給し、又アドレス生成部1
11が命令解読部107に対しアドレス生成部111の
内部状態の↑に@を伝達する為の信号路をまとめ”C示
したものである。118は命令実行部110内で生成し
たデータをバス制御1Wb 113内のデータ・バス・
インターフェース部にある書出しテンポラリ・レジスタ
117に転送し、又バス制御部113内のデータ・バス
・インターフェース部にあるaJ□!!込みテンポラリ
・レジスタ116から命令実行部110に転送する為の
信号路である。120はプロセッサ101のバス・ステ
ータス信号路、121はメモリI10信号(MMIO)
  や’)−ド・5イHi号(RDWR)  等のプロ
セッサ101の外部へ出力する信号路をまとめて示した
ものである。122はプロセッサ101のキエー・ステ
ータス信号略で6る。123,124゜125.126
は本発明を実施する為に新たに設けられたハードウェア
である。123は命令解読部107内に設けられたトグ
ル・フリップ・フロップで、命令解読部に於て分岐命令
が解読される度に出力が反転する回路である。124は
トグル・フリップ・フロップ123の出力信号用の信号
線、125はバス制御部113内のアドレス・バス・イ
ンターフェース部内のアドレス・レジスタ群の個々のレ
ジスタに1対lで対応するレジスタ群である。126は
、レジスタ群125の出力の中から選ばれた信号をプロ
セッサ101外に出力する信号路である。
本実施例は、第8図に示し九Aプロセッサに、トグル・
クリップ・フロップ123、信号路124、レジスタ群
125、出力信号路126を付加したものになっている
ので命令コード・ブリフェッチ機能、リード・オペラン
ド先読み機能、ライト・オペランド後書き機能を初めと
するAプロセッサの全機能が本実施例のプロセッサ10
10機能に含まれている。
第2図は、プロセッサ101内のバス制御部内のアドレ
ス・バス・インターフェース部の主要部分を示した図で
ある。201は第1図の信号路112に相当し、信号路
201は不図示のアドレス生成部に於て生成されたアド
レスを転送する信号路である。205 、208 、2
11 、214はアドレス舎レジスタ群である。205
はプリ7エツチ用・アドレス・レジスタ(PAR) 、
  208はリード・オペランド用アドレス・レジスタ
(RARI)、 211はリード・オペランド用・アド
レス・レジスタ(RAR2)、214はライト・オペラ
ンド用アドレス・レジスタ(WAR)である。206,
209,212゜215は第1図119に対応し206
,209,212゜215はそれぞれレジスタ205,
208,211,214のラッチ信号である。207は
レジスタ205の出力信号路、210は208の出力信
号路、213はレジスタ211の出力化゛号路、216
はレジスタ214の出力信号路である。217は本発明
で新たに付加された信号路てあり第1図の信号路124
に対応する。219,221,223.225はそれぞ
れレジスタでレジスタ219はレジスタ205の、レジ
スタ221はレジスタ206の、レジスタ223扛レジ
スタ211の、レジスタ225はレジスタ214のそれ
ぞれ拡張した部分と考えられる。220はレジスタ21
9の、222はレジスタ221の224はレジスタ22
3の、226はレジスタ225の出力信号路である。2
02はマルチプレクサでレジスタ205から出力される
アドレスとレジスタ208から出力されるアドレスレジ
スタ211から出力されるアドレスとレジスタ214か
ら出力されるアドレスの4つのアドレスと、レジスタ2
19から出力される信号とレジスタ221から出力され
る信号とレジスタ223から出力される信号とレジスタ
225から出力される信号の4つの信号を入力とし、選
択信号204で4つのアドレスの中から1つのアドレス
を選んでアドレス出力1M号路203に出力すると同時
に、選ばれたアドレスの格納されていえレジスタに対応
する該レジスタの拡−JIR部分からの出力信号を信号
路218に出力する。例えば選択信号204によってレ
ジスタ208から出力されたアドレスが選ばれた時には
信号路218上にはレジスタ222の内容が選ばれて出
力さnる。18号M2O4,206゜209.212,
215は不図示の命令解読部に於°C生成され第1図の
信号路115を介してバス制御部に送られてくる信号で
ある。信号路203は第1図のアドレス・バス102に
対応し信号路218は第1図の126は対応する。PA
R205のみがアドレスの自動更新機能を有する。以下
の説明の為にPAR205の拡張した部分で、信号路2
17上の情報を蓄える部分219をPAT、RARIに
対し221をRATI 、RAR2に対し223をRA
T2゜WARに対し225をVATと名付ける。
第3図は第13図に対応するタイミング・チャートを模
式化した図である。従来例を比較し易いように、第3図
のタイミング・チャートは、表3に示したアセンブリ言
語の命令二一モニツクと命令コードを持つ命令を用いて
書いた第11図のプログラムがアセンブルされて第12
図に示すようにメモリ内に格納されているものと仮定し
、プロセッサ101が第12図中のメモリ・アドレスA
DHIQの近傍にある一連の命令を実行した時のプロセ
ッサ101の内部及び、プロセッサ101の外部バス端
子に表われる情報の時間的相対関係を示している。プロ
セッサ101は前記Aプロセッサの主要機能を全て含ん
でいるので、第3図の命令解読部、キー−・ステータス
、命令実行部の命令処理のタイミング及び、RARI、
RAW2.WAR。
RDRl、RDR2,WDRのレジスタの内容の変化す
るタイミング、アドレス・パス、データ・バx上に現わ
れる情報の変化するタイミング等は第13図に示した各
タイミングと同様である。ここでは本発明により、新た
に付加された機能の動作について説明する。
第13図中、トグル出力とは第1図中の命令解読部10
7内に本発明により新たに設けられたトグル、フリップ
・70ツブ123の出力信号用の信号線124上の信号
レベルを示しており、命令11の命令解読部に於ける命
令解読が開始される時刻t1ではハイ・レベル(H)に
あるものを仮定する。
JUMPの2バイトの命令コードがt9から命令解読部
に於て命令解読が開始されtlOでJUMPが無条件分
岐命令である事が判明すると、該トグル・クリップ・フ
ロップの出力が反転しロー中レベル(L) Kなる。t
loの後、早くても第3図のt17までは、該トグル・
スリップ・フロップの出力はロー・レベルにある。t6
でプロセッサ101外部のメモリにリード・オペランド
M31を必要とする命令I3が命令解読部に於て命令解
読されると、命令解読部はアドレス生成部に対し工3の
リード・オペランドM31のアドレスRA3を生成しバ
ス制御部に転送する事を指令する。
同時に命令解読部はパス制御部に対しアドレス生成部か
ら転送されるリード・オペランドM31のアドレスRA
3をアドレス・パス・インターフェース部内のリード・
オペランド用アドレス・レジスタRARIK格納する事
を指令する。バス制御部に対する該指令は、第2図中の
信号路201にアドレス生成部がRA3を出力している
間にRAW 1(208)のラッチ信号路206上のラ
ッチ信号をアクティブにする事によってなされる。ラッ
チ信号路206上のラッチ信号がアクティブになると、
RAR1内に信号路201上のRA3が格納されるのと
同時に、RATI(221)に217上のt6に於てハ
イ・レベルにある信号が格納される。つまり、第3図の
模式的タイミングチャートのt6に於て信号路201上
の情報であるRA3をサンプリングしてRARlに格納
するのと同時に、命令解読部内に設けたトグル・クリッ
プ・フロップ123の出力をサンプリングしてRATt
K格納する。tloに於てトグル・フリップ−7リツプ
123は無条件分岐命令の命令コードが命令解読部に於
て命令解読される事により出力を反転した後、命令解読
部に於て命令解読される事により出力を反転した後、命
令解読部に於てt13から命令解読が開始される命令工
6もプロセッサ101外部にリード・オペランドM61
を必要とする命令であり、前記工3の場合と同様にt 
13に於て、アドレス生成部に於て生成されるI6のリ
ード・オペランドM61のアドレスRA5をRAW2に
格納するのと同時にロー・レベルにある前記トグル・フ
リップ123の出力をサンプリングしRAT2に格納す
る。t14に於てバス制御部はRARlに格納されてい
るI3のリード・オペランドM31のアドレスRA3を
用いてMB2の先読みの為のメモリ・リード・パス・サ
イクルを起動する。第2図でt14において信号路20
4上の選択信号により、マルチプレクサ202の2つの
出力信号路の出力としてRARlから出力されている工
3のリード・オペランドM31のアドレスRA3を選択
してアドレス・パス203に出力し同時にRATlから
出力されているハイ・レベルにある信号を選択して信号
路218に出力する。第1図では、t14に於てアドレ
ス・パス102にRA3が出力され、同時に信号路12
6にはRATlに格納されている。
ハイ・レベルの信号が出力される。第3図のt14に於
て第3図のアドレス生成部の欄KRA3が、また第1図
の信号路126、第2図の信号路218に対応する第3
図のATの欄にハイ・レベル(H!の信号が出力されて
いる。次にt16に於て、バス制御部はRAW2に格納
されている。I6のリード・オペランドM61のアドレ
スRA(5を用いてM61の先読みの為のメモリ・リー
ド・パス・サイクルを起動する。即ちt 16に於て第
1図の102、第2図の203、第3図のアドレス・バ
スの欄にはI6のリード・オペランドM61のアドレス
RA6が出力され、同時に第1図の信号路6、第219
の信号路218、第3図のATの欄には、RAT2に格
納されているロー・レベルの信号が出力されている。ま
た、命令解読部に於いてtloで命令解読された命令コ
ードが無条件分岐命令である事が判明すると、命令プリ
7工ツチ部の命令キューにプリフェッチされていた命令
コードが全て無効にされ、Aプロセッサと同様にプロセ
ッサ101でも無条件分岐命令の命令コード内に指定さ
れている分岐先アドレスからの命令コードのプリフェッ
チが外部バス占有の峡高優先権を得る。tlOで命令解
読部107がアドレス生成部111に対し、JUMP命
令の命令コード内に指定されている分岐先を示す情報を
信号路114経由で伝達して、該分岐先アドレスADR
60の生成しバス制御部に転送する事を指令し、バス制
御部113に対しアドレス生成部から転送されてくる該
分岐先アドレスADR60をPARに格納して、PAR
の内容を用いて命令コードのプリフェッチ動作を開始す
る事を指令する。ここで、アドレス生成部111からバ
ス制御部113に対して転送されるJUMP命令による
分岐の分岐先アドレスADR5QをPAR205に格納
する際同時にPAR2Q5の拡張部分FAT219 に
は、命令@枦部内のトグル・クリップ・フロップ123
の出力信号路217上の信号が格納される。前述のよう
にPAR205はナトレス自動更新様能を有しtlOに
於てJ UMP命令による分岐の分肢先アドレスADR
60が格納された後、命令フードのプリ7エツチの為の
1回のメモリ・リード・バス・サイクルが終了する度K
PAR205の内容が更新されるが、FAT219の内
容はPAR2Q5 の該ナトレス自動更新様能とは無関
係に、次に命令解読8(107からの指令によりPAR
205に新たなアドレスが設定される時まで不変である
。バス制御部113内のアト1/ス・バス・インターフ
ェース部のマルチプレクサ202が選択信号路204上
の情報によりプリ7エツチの為にPAR205を選択し
てPARの内容をアドレス・バス端子203に出力する
とともに、PAR219を選択してFATの内容を信号
路218上に出力する。第3図の例ではtlOに於てロ
ー・レベルにある信号路217上の信号f、PAT21
9にサンプリングしているため、tloからt13まで
続く分収命令直後の命令コード・プリフェッチ動作で信
号路126から、アドレスと同じタイミングで出力され
る信号ATはロー・レベル(L)にある。
本実施例では、無条件分岐命令の命令コードが命令解読
部に於て命令解読されると、命令解読部内のトグル・ス
リップフロップ123の出力が変化するが、ここでトグ
ル・クリップ・フロップ123の出力を変化させる要因
として無条件分岐命令を選んだ理白は、無条件分岐命令
は通常のプログラムでは枕計的に約10ステツプに1−
1ま用いられているためである。すなわち、柳にしか用
いられない一&6台をトグル・フリップ・フロップ12
3の出力を変化ぢせる要因とし−C用いると、命令トレ
ースmWの有限なトレース・バッファ・メモリ内で1度
もATが変化しない事が生ずると、本命令トレースが不
可能になる。従って、数〜数10ステップ1同視われる
命令、もしくはそのステップサイクルで強制的に挿入で
きる命令を用いる方がよい。
以上高度なパイプライン構造を実現しているAプロセッ
サに本発明により新たに付加されたハードウェアの動作
について説明した。次に本発明を実施しているプロセッ
サ101を用いてソフトウェアを開発する際に用いる命
令トレース法についいて説明する。本発明の本命令トレ
ース法は、前述したAプロセッサの場合の命令トレース
法に、本発明により倉たに付加されたハードウェアから
得られる情報を追加する事〈より、前述のAプロセッサ
の場合の命令トレース法の有していた重大な問題点を根
本的に解決する事ができる。
本発明の命令トレース法による命令トレースを行うため
の命令トレース装置には、前述のAプロセッサの命令ト
レース装置と同様に、プロセッサ101が一連の命令を
実行している間にアドレス・バス上の情報、必要な制御
信号、ステータス信号及び前記信号路126から出力さ
れる信号をサンプリングし次々に時系列データとして蓄
積するトレース・バッファ・メモリ、ブレーク・ホイン
ト設定機能、トレース・バッファ・メモリ内の時系列情
報のi果機能等が必要である。本発明の命令トレース法
が命令トレースの基準としてトレース・バッファ・メモ
リ内でキュー・ステータスが命令キエーの内容が全て無
効にされた事を示す時点を用いている事及び、本命令ト
レース法の該基準点からトレース・バッファ・メモリ内
の時系列データを追跡して該基準点の直後に実行された
1命令分の命令コードを選び出して逆アセンブルして該
基準点直後に実行された命令の二一モニツクを得る方法
は、前述したAプロセッサに対する命令トレース法と同
様である。ここでは本発明の命令トレース法により可能
になった、メモリやI10アクセスを伴う命令について
前記逆アセンブルにより得られた命令二一モニツクと、
該命令が実際にアクセスしたアドレスとデータとを命令
二−モ二第11図に示したプログラムがアセンブルされ
て第12図に示すようにメモリ内に格納されているとし
て、Aプロセッサが第12南中のメモリ・アドレスAD
HIOの近傍からの一部の命令を実行した時にプロセッ
サ101用の命令トレース装置を用いて命令トレースを
行う法を説明する。表7はプロセッサ101用の命令ト
レース装置のトレース・バッファ・メモリの内容の一部
のダンプ・リストであり、表5と大部分が一致している
アドレスを出力するのと同時に信号路126に出力する
信号がハイ・レベル(均であったかロー・レベル(L)
にあったかを示している。
表7 K!?イテ、7 V−A 021 テQsTs3
−OカE1を示す点を基準とすると、表5で用いた方法
によりフレーム031,032で命令解読部に於て命令
解読される2バイト長の命令コードを持つ命令Jの命令
コードはフレーム023,024及びフレーム025,
026でプリフェッチされた2バイトの命令コード0P
CD60,0PCD61 であり、命令コー表  7 ド0PCD60,0PCD61 を逆アセンブルして命
令JO命令二一モニツクとしてMOV R5,M51を
得る。命令Jは、メモリ内にリード・オペランドM61
を必要とする転送命令であるので、命令Jの命令トレー
スの為には、命令Jのリード・オペランドM61として
どのようなメモリ・アドレスから、どのようなデータが
プロセッサ101内に取込まれたかを示さなければなら
ない。このため、表7に新たに加えられたATの欄の情
報を用いる。
ATの欄の情報は、プロセッサ101のアドレス端子1
02に出力されるアドレスがバス制御部内のアドレス・
レジスタに格納される際の、命令解読部内のトグル・ク
リップ・70ツブ123の出力の状態を記憶しているも
のである。該トグル・フリップ・フロップ123は命令
解読部で無条件分岐命令の命令コードを解読された瞬間
に出力を反転する。無条件分岐命令の命令コードの解読
は、キュー・ステータスQSTS3−0がElを示す事
でプロセッサ101外部に直ちに示されるため、QST
S3−0がElを示すフレーム021の前後のブリフェ
ッチの為のアドレス出力の際のATO値を見ると、フレ
ーム021の前にATはノ1イ・レベル(H)にあり、
フレーム021の後ではATがロー・レベル(L)にな
っている事が判る。無条件分岐命令涛説直後にある転送
命令Jの命令コードがフレーム021よりも後に命令解
読部に於いて命令解読され、該命令Jのリード・オペラ
ンドM61のアドレスがアドレス生成部で生成されバス
制御部のアドレス・レジスタ群に格納される際に該アド
レス・レジスタの拡張部分には、ロー・レベルにあるト
グル・フリップ・フロップ123の出力が格納される。
従ってメモリ内にリード・オペランドM61を必要とす
る命令Jのリード・オペ2ンド読込みの為のメモリ・リ
ード・バス・サイクルは、フレーム021よりも後のフ
レームの中で、初めてATがL(ロー・レベル)を示し
ている、命令コード・プリ7エツチ以外のメモリ・リー
ド・バス・サイクルである。表8ではフレーム021よ
り後に7レーム033,034とフレーム037.03
9の2回のメモリ・リード・バス中サイクルがあるが、
ATの欄がフレーム021より4後に初めてLを示すの
はフレーム037でのアドレス出力であるので、メモリ
内にリード・オペランドM61を必要とする命令Jのリ
ード・オペランド読込みの為のバス・サイクルはフレー
ム037゜039に於けるメモリ・リード・バス・サイ
クルであり、命令Jのリード・オペランドM61のアド
レスはフレーム037からRA6であり、Mo2のデー
タはフレーム039のRD6である事が決定される。以
下同様にして、無条件分岐命令の命令コードの命令解読
後初めて現われるメモリ内にリード・オペランドを必要
とする命令Jの次に現われるメモリ内にリード・オペラ
ンドを必要とする命令のリード・オペランド読込みの為
のメモリ・リード曖パス・サイクルは、フレーム037
,039の次KATがLを示すメモリ・リード・バス・
サイクルである事が決定できる。ここまでの説明は、命
令がメモリ内にリード・オペランドを持つ場合について
行りてきたが、該命令トレース法の命令とオペランドの
対応をつける法は、オペランドがメモリ内にあってもI
10内にあっても全く同様に行う事ができる。
以上説明したように1本発明は多段ステージのパイプラ
イン構造を実現している高機能プロセッサ内で、各ステ
ージの命令処理のシーケンスヲ定める命令解読部内に、
予め定められた種類の命令の命令コードが命令解読され
ると出力が反転するトグル・7リツプ・70ツブを設け
、該プロセッサ内のアドレス生成部に於いて生成された
アドレスがバス制御部内のアドレス・レジスタの中の一
本に格納される時同時に該アドレス・レジスタの拡張部
分に前記トグル・フリップ・70ツブの状態を格納し、
バス制御部がバス・サイクルを起動する際に選ばれるア
ドレス0レジスタのアドレス部分を該プロセッサのアド
レス−バス端子に、アドレス・レジスタの拡張部分の情
報を該プロセッサの情報出力用端子に出力し、該プロセ
ッサ用の命令トレース装置において情報出力用端子に現
われる信号を該プロセッサのアドレス・バス上に現われ
る信号とともに命令トレース装置のトレース・バッファ
内に遂次取込み、リード・オペランド先読み及びライト
・オペランド後書きを行うプロセッサの命令トレースの
際、命令二一モニツクと該命令のプロセッサ外部のオペ
ランド・アクセストラ、アドレス・レジスタの拡張部分
からプロセッサ外にアドレスとともに出力される情報を
基準にして対応づける命令トレース法である。
表7において、アドレス欄のRAI、ADR41−・社
プロセッサ101がアドレス・バス上に出力したアドレ
ス、データ欄のRDI、0PCD41−・・はプロセッ
サ101のデータ入出力によりデータ・バス上に現われ
たデータである。BUS−8TS  の欄はプロセッサ
101がバス・ステータス端子120に出力したバス・
ステータス・コード及び信号路121上に出力されるM
M工O信号、RD′wR信号を表6に示した略号でF、
MR,MW のみを示している。QSTS欄のH,Lは
プロセッサ101がQSTS4端子122に出力した信
号がノ・イ・レベル(H)にあったかロー・レベル(L
)にあったかを示している。QSTS3−0欄はプロセ
ッサ101がキエーΦステータス端子122に出力した
キュー・ステータス信号を表4に示した略号でF、S、
Elのみを表わしている。人Tの欄はプロセッサ101
がアドレス・バス端子102上にアドレスを出力するの
と同時に信号wr126に出力する信号がハイ・レベル
(ハ)でめったかロー・レベル(ト)にめったかを示し
ている。
この結果、多段ステージのパイプライン構造を来現して
いるプロセ、すが、このプロセ、すの外部にオペランド
を必要とする命令のリード・オペランドの先読み又はラ
イト+1万ベランドの後書きt行っている場合でも、こ
のグロセ、すが実行した命令に対してその実行順に命令
二一モニツクを得、プロセッサの外部にオペランドを必
要とする命令の場合には、その命令の二一モニツクとオ
ペランドが実際にアクセスされた際のアドレスとデータ
を対応づける事ができる。
なお、表1はJ’8086プロセツサのキュー−ステー
タスの表、表2は、i’8086グロセ、丈のバス・ス
テータスの表、表3はAプロセ、す及びプロセ、す10
1のアセ/プリ言語で誓かれたプログラムの命令二一モ
ニツクと命令コードの対応表、表4は人プaセ、す及び
プロセッサ101のキュー・ステータスの表、表5はA
プロセッサが、第12図に示したメモリ内のADRI 
Oの近傍から順次命令1に実行した時の命令トレース装
置のトレース拳バ、7ア・メモリに蓄えられた情報のダ
ンプリスト、表6はAプロセ、す及びプロセ、す101
のバス・ステータスの表、表7はプロセッサ101が第
12図に示したメモリ内のADhioの近傍から順次命
令を実行した時に命令トレース装置のトレース・パ、フ
ァ・メモリに蓄えられた情報のダンプリストである。
〔発明の効果〕
本発明によれば、多段ステージのパイプライン機能をも
つプロセッサであって、プロセッサ外部のオペランドに
対しリード・オペランドの先読み及びライト・オペラン
ドの後書きを行なうプロセ、すにおいて、該プロセッサ
の完全な命令トレースが可能となるので、プロセッサの
ソフトウェア開発とデバッグ効率が飛細的に向上すると
いう効果がめる。
【図面の簡単な説明】
第1図は本発明の一実施例のプロセッサの内部ブロック
図である。 101・・・・・・プロセ、す、102・・・・・・ア
ドレス・バス、103・・・・・・チーターバス、10
4・・・・・・内部データ・バス、105・・・・・・
命令プリフェッチ部、106・・・・・・命令コード用
信号路、107・・・・・−命令解読部、108・・・
・・・デコード情報キュー、109・・・・・・デコー
ド情報用信号路、110・・・・・・命令実行部、11
1・・・・・・アドレス生成部、112・・・・・・ア
ドレス用信号路、113・・・・・・バス制御部、11
4・・・・・・アドレス生成部と命令解読部間の情報授
受の為の信号路、115・・・・・・バス制御部と命令
解読部間の情報授受の為の信号路、116・・・・・・
プロセ、す101の外部から読込んだデータを格納する
レジスタ群、117・・・・・・命令実行部で生成され
、プロセッサ101の外部へ書出すデータを格納するレ
ジスタ群、11B・・・・・・バス制御部と命令実行部
間のデータ授受の為の信号路、119・・・・・・アド
レス生成部で生成されプロセッサ101の外部へ出力す
るアドレスを格納するレジスタ群のアドレスを格納する
部分、120・・・・・・バス制御部で生成されるバス
・ステータス情報をプロセッサ101の外部へ出力する
為の信号路、121・・・・・・プロセッサ101がプ
ロセッサ101の内部と外部の間で情報を授受する為の
信号路、122・・・・・・命令1リフ工ツチ部の命令
キューの状態を示す情報をプロ七、す101の外部へ出
力する為の信号路、123・・・・・・トグル・フリ、
プ・70.プ、124・・・・・・トグル−フリ、プ・
70ツブ123の出力信号をバス制御部113内へ伝達
する為の信号路、125・・・・・・トグル・フリ、プ
・70.プ123の出力信号を格納する、レジスタ群1
19の拡張部分、126・・・・・・レジスタ群119
の拡張部分1251にブロモ、す101外部へ出力する
信号路、第2図は、wl1図アドレス・バス・インター
フェース部内のアドレス・レジスタ群の詳細なプロ、り
図である。 第3図は、ブロモ、す101のタイミング図でめる。 第4図は従来のプロセッサの内部ブロック図でおる。 401・・・・・・1sossプロセツサ、402・・
・・・・アドレス/データ・バス、403・・・・・・
内部ハス、404・・・・・・データ・レジスタ、40
5・・・・・・アドレス生成部、406・・・・・・命
令キュー、407・・・・・・キュー・ステータス信号
路、408・・・−・・命やコード用信号M、409・
・・・・・内部データ・バス、410・・・・・・命情
実行制御部、411・・・・・・命令う、テ、412・
・・・・・デコーダ、413・・・・・・各種レジスタ
群、414・・・・・・算術論理演算回路、415・・
・・・・万ペランド・レジスタ、416・・・・・・バ
ス制御回路、417・・・・・・バス・ステータス信号
用信号路、第5図は、命令トレース装置のトレース−バ
ッファメモリのダンプリスト図である。 第6図は、シ似キューの構成図である。 第7図は、キューの深さを算出する回路のプロ、り図で
ある。 700・・・・・・キューの深さを算出する回路、70
1・・・・・・キュー・ステータス信号路、702・・
・・・・デコーダ、703・・・・・・信号路、704
・・・・・・カウンタ、705・・・・・・信号路、7
06・・・・・・減算器、707・・・・・・信号路、
708・・・・・・リセット信g路、709・・・・・
・オア・ゲート、710・・・・・・出力信号路、71
1・・・・・・バス・ステータス信号路、712・・・
・・・デコーダ、713・・・・・・信号路、714・
・・・・・カウンタ、715・・・・・・信号路、71
6・・・・・・キュー深さ出力信号路、 第8図は、第5図のトレース・バッファ・メモリの内容
を編集した結果を示す図でおる。 #J9図はパイプライン機能をもつAブロモ、すの内部
ブロック図である。 901・・・・・・A7″ロセッサ、902・・・・・
・アドレス・バス、903・・・・・・データ・バス、
904・・・・・・内部データ・バス、905・・・・
・・命令プリフェッチ部、906・・・・・・命令コー
ド用信号路、907・・・・・・命令解読部、908・
・・・・・デコード情報キュー、909・・・・・・デ
コード情報用信号路、910・・・・・・命令実行部、
911・・・・・・アドレス生成部、912・・・・・
・アドレス用信号路、913・・・・・・バス制御部、
914・・・・・・命令解読部とアドレス生成部の間の
信号路、915・−・・・・バス制御部と命令解読部の
間の信号路、916・・・・・・Aブロモ、す外部から
絖込んだデータを格納するレジスタ群、917・・・・
・・命令実行部で生成されAブロモ、す外部へ賽出すデ
ータを格納するレジスタ群、918・・・・・・バス制
御部と命令実行部間のデータ授受の為の信号路、919
・・・・・・アドレス生成部で生成されAブロモ、すの
外部へ出力するアドレスを格納するレジスタ群、920
・・・・・・バス制御部で生成されるバス・ステータス
信号出力信号路、921・・・・・・Aブロモ、すの内
部と外部で制御信号を授受する信号路、922・・・・
・・命令プリフェッチ部の命令キューの状態を示す情報
をAブロモ、す外部に出力する信号路、 第10図はレジスタ919の内部詳細プロ、り図である
。 1001・・・・・・アドレス用信号路、1002・・
・・・・アドレスeレジスタ、1003・・・・・・レ
ジスタ1002のう、チ信号路、1004・・・・・・
信号路、1005・・・・・・アドレス・レジスタ、1
006・・・・・・レジスタ1005のう、チ信号路、
1007・・・・・・信号路、1008・・・・・・ア
ドレス・レジスタ、1009・・・・・・アドレス・レ
ジスタ1008用ラツチ便号路、1010・・・・・・
信号路、1011・・・・・・アドレス・レジスタ、1
012・・・・・・レジスタ1011用ラツチ信号路、
1013・・・・・・信号路、1014・・・・・・マ
ルチプレクサ、1015・・・・・・選択信号路、10
16・・・・・・アドレス出力信号路、第11図はテス
ト・プログラム図である。 11g12図はテスト・プログラムのメモリ内ロケーシ
ョンを示す図である。 第13図はAプロセッサのタイミング図である。 代理人 弁理士  内 原   貴 方1図 芳4図(従来例) 2θ/ 角5  乙  図 +u、、   、、    、、・ 、、000110
.、.0110.90.。 フ、7 ¥J9@ ■ 11:   uov  Mπ、Mff;ll12:  
 yoV   K22M21    ;   1213
:   ytw   K!jpμ31    s   
1314:   JLINP  1ull)     
 ;   JIJMF’l汐:sθv  N、+o、u
st    ;   z51t:MθI’  KA t
 M&/   y  ll17:   Ml)V   
M71)qK7      ;    17″45ti
図 箭72’図

Claims (1)

    【特許請求の範囲】
  1. 多段ステージのパイプライン構造を有するマイクロプロ
    セッサを含む情報処理装置において、所定の命令コード
    が解読されると出力が変化するステータス指示部と、前
    記マイクロプロセッサのバス・サイクル期間中のアドレ
    スの出力タイミングに同期して前記ステータス指示部の
    出力を前記マイクロプロセッサ部に出力する手段と、該
    マイクロプロセッサから出力される情報を逐次時系列デ
    ータとして蓄える手段とを有し、前記ステータス指示部
    の出力情報を参照して、前記マイクロプロセッサのバス
    ・サイクルが、前記ステータス指示部の出力を変化させ
    る前記所定の命令以前の命令に付随するバス・サイクル
    か、前記所定の命令以後の命令に付随するバス・サイク
    ルかを区別して前記時系列データを編集する事を特徴と
    する情報処理装置。
JP61090702A 1986-04-18 1986-04-18 情報処理装置 Expired - Fee Related JPH0731615B2 (ja)

Priority Applications (5)

Application Number Priority Date Filing Date Title
JP61090702A JPH0731615B2 (ja) 1986-04-18 1986-04-18 情報処理装置
KR1019870003729A KR930008686B1 (ko) 1986-04-18 1987-04-18 정보 처리장치
US07/039,900 US4879646A (en) 1986-04-18 1987-04-20 Data processing system with a pipelined structure for editing trace memory contents and tracing operations during system debugging
EP87105823A EP0241946B1 (en) 1986-04-18 1987-04-21 Information processing system
DE3751356T DE3751356T2 (de) 1986-04-18 1987-04-21 Informationsverarbeitungssystem.

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP61090702A JPH0731615B2 (ja) 1986-04-18 1986-04-18 情報処理装置

Publications (2)

Publication Number Publication Date
JPS62245442A true JPS62245442A (ja) 1987-10-26
JPH0731615B2 JPH0731615B2 (ja) 1995-04-10

Family

ID=14005856

Family Applications (1)

Application Number Title Priority Date Filing Date
JP61090702A Expired - Fee Related JPH0731615B2 (ja) 1986-04-18 1986-04-18 情報処理装置

Country Status (5)

Country Link
US (1) US4879646A (ja)
EP (1) EP0241946B1 (ja)
JP (1) JPH0731615B2 (ja)
KR (1) KR930008686B1 (ja)
DE (1) DE3751356T2 (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH01154255A (ja) * 1987-12-10 1989-06-16 Mitsubishi Electric Corp マイクロプロセッサ
JPH0233631A (ja) * 1988-07-22 1990-02-02 Fujitsu Ltd 先行制御トレース方式
JPH05204644A (ja) * 1992-01-28 1993-08-13 Toshiba Corp データ処理装置

Families Citing this family (63)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2982875B2 (ja) * 1987-12-28 1999-11-29 株式会社日立製作所 スレーブ制御装置
JP2678283B2 (ja) * 1988-03-15 1997-11-17 株式会社日立製作所 データ通信制御装置
JPH02133834A (ja) * 1988-11-14 1990-05-23 Nec Corp インサートキットエミュレータ
CA2016068C (en) * 1989-05-24 2000-04-04 Robert W. Horst Multiple instruction issue computer architecture
JPH06105432B2 (ja) * 1989-06-01 1994-12-21 三菱電機株式会社 マイクロプロセッサ
FR2649507B1 (fr) * 1989-07-07 1994-07-08 Bull Sa Procede d'observation de l'execution d'un programme charge dans un systeme informatique et dispositif pour la mise en oeuvre dudit procede
US5412799A (en) * 1990-02-27 1995-05-02 Massachusetts Institute Of Technology Efficient data processor instrumentation for systematic program debugging and development
JPH0511827A (ja) * 1990-04-23 1993-01-22 Canon Inc 工業用自動装置の実行時間出力方式
US5151981A (en) * 1990-07-13 1992-09-29 International Business Machines Corporation Instruction sampling instrumentation
JP2505950B2 (ja) * 1991-05-13 1996-06-12 インターナショナル・ビジネス・マシーンズ・コーポレイション ハ―ドウェア支援ブレ―クポイント・システム
US5305454A (en) * 1991-08-12 1994-04-19 International Business Machines Corporation Notification of event handlers in broadcast or propagation mode by event management services in a computer system
US5237684A (en) * 1991-08-12 1993-08-17 International Business Machines Corporation Customized and versatile event monitor within event management services of a computer system
US5625821A (en) * 1991-08-12 1997-04-29 International Business Machines Corporation Asynchronous or synchronous operation of event signaller by event management services in a computer system
US5355484A (en) * 1991-08-12 1994-10-11 International Business Machines Corporation Dynamically established event monitors in event management services of a computer system
US5345569A (en) * 1991-09-20 1994-09-06 Advanced Micro Devices, Inc. Apparatus and method for resolving dependencies among a plurality of instructions within a storage device
JP3544214B2 (ja) * 1992-04-29 2004-07-21 サン・マイクロシステムズ・インコーポレイテッド プロセッサの状態を監視する方法及び監視システム
US5367657A (en) * 1992-10-01 1994-11-22 Intel Corporation Method and apparatus for efficient read prefetching of instruction code data in computer memory subsystems
US5383192A (en) * 1992-12-23 1995-01-17 Intel Corporation Minimizing the likelihood of slip between the instant a candidate for a break event is generated and the instant a microprocessor is instructed to perform a break, without missing breakpoints
US5410686A (en) * 1993-11-01 1995-04-25 Motorola, Inc. Methods for scan path debugging
JPH07182182A (ja) * 1993-12-21 1995-07-21 Mitsubishi Electric Corp システムコール情報採取装置
US5922070A (en) * 1994-01-11 1999-07-13 Texas Instruments Incorporated Pipelined data processing including program counter recycling
US5724566A (en) * 1994-01-11 1998-03-03 Texas Instruments Incorporated Pipelined data processing including interrupts
US5680583A (en) * 1994-02-16 1997-10-21 Arkos Design, Inc. Method and apparatus for a trace buffer in an emulation system
US5446876A (en) * 1994-04-15 1995-08-29 International Business Machines Corporation Hardware mechanism for instruction/data address tracing
US5920712A (en) * 1994-05-13 1999-07-06 Quickturn Design Systems, Inc. Emulation system having multiple emulator clock cycles per emulated clock cycle
US5850562A (en) * 1994-06-27 1998-12-15 International Business Machines Corporation Personal computer apparatus and method for monitoring memory locations states for facilitating debugging of post and BIOS code
US5642478A (en) * 1994-12-29 1997-06-24 International Business Machines Corporation Distributed trace data acquisition system
US5923865A (en) * 1995-06-28 1999-07-13 Quickturn Design Systems, Inc. Emulation system having multiple emulated clock cycles per emulator clock cycle and improved signal routing
US5819065A (en) * 1995-06-28 1998-10-06 Quickturn Design Systems, Inc. System and method for emulating memory
US5754827A (en) * 1995-10-13 1998-05-19 Mentor Graphics Corporation Method and apparatus for performing fully visible tracing of an emulation
US5678003A (en) * 1995-10-20 1997-10-14 International Business Machines Corporation Method and system for providing a restartable stop in a multiprocessor system
US5822564A (en) * 1996-06-03 1998-10-13 Quickturn Design Systems, Inc. Checkpointing in an emulation system
US6003107A (en) * 1996-09-10 1999-12-14 Hewlett-Packard Company Circuitry for providing external access to signals that are internal to an integrated circuit chip package
US5881224A (en) * 1996-09-10 1999-03-09 Hewlett-Packard Company Apparatus and method for tracking events in a microprocessor that can retire more than one instruction during a clock cycle
US5887003A (en) * 1996-09-10 1999-03-23 Hewlett-Packard Company Apparatus and method for comparing a group of binary fields with an expected pattern to generate match results
US5867644A (en) * 1996-09-10 1999-02-02 Hewlett Packard Company System and method for on-chip debug support and performance monitoring in a microprocessor
US5956476A (en) * 1996-10-31 1999-09-21 Hewlett Packard Company Circuitry and method for detecting signal patterns on a bus using dynamically changing expected patterns
US5956477A (en) * 1996-11-25 1999-09-21 Hewlett-Packard Company Method for processing information in a microprocessor to facilitate debug and performance monitoring
US5881217A (en) * 1996-11-27 1999-03-09 Hewlett-Packard Company Input comparison circuitry and method for a programmable state machine
US6009539A (en) * 1996-11-27 1999-12-28 Hewlett-Packard Company Cross-triggering CPUs for enhanced test operations in a multi-CPU computer system
US5960191A (en) * 1997-05-30 1999-09-28 Quickturn Design Systems, Inc. Emulation system with time-multiplexed interconnect
US5970240A (en) * 1997-06-25 1999-10-19 Quickturn Design Systems, Inc. Method and apparatus for configurable memory emulation
US6202199B1 (en) * 1997-07-31 2001-03-13 Mutek Solutions, Ltd. System and method for remotely analyzing the execution of computer programs
JP3214613B2 (ja) * 1998-07-03 2001-10-02 日本電気株式会社 マイクロプロセッサ及びデータ処理システム
US6374370B1 (en) 1998-10-30 2002-04-16 Hewlett-Packard Company Method and system for flexible control of BIST registers based upon on-chip events
US6393606B1 (en) * 1999-06-25 2002-05-21 Agilent Technologies, Inc. Inverse assembler
US6446029B1 (en) * 1999-06-30 2002-09-03 International Business Machines Corporation Method and system for providing temporal threshold support during performance monitoring of a pipelined processor
US20020087949A1 (en) * 2000-03-03 2002-07-04 Valery Golender System and method for software diagnostics using a combination of visual and dynamic tracing
US8312435B2 (en) 2000-12-26 2012-11-13 Identify Software Ltd. (IL) System and method for conditional tracing of computer programs
US7069545B2 (en) * 2000-12-29 2006-06-27 Intel Corporation Quantization and compression for computation reuse
US7386839B1 (en) 2002-11-06 2008-06-10 Valery Golender System and method for troubleshooting software configuration problems using application tracing
US8032866B1 (en) 2003-03-27 2011-10-04 Identify Software Ltd. System and method for troubleshooting runtime software problems using application learning
US7328429B2 (en) * 2003-11-13 2008-02-05 Intel Corporation Instruction operand tracing for software debug
US7827539B1 (en) 2004-06-25 2010-11-02 Identify Software Ltd. System and method for automated tuning of program execution tracing
US20090178032A1 (en) * 2005-03-03 2009-07-09 Rongzhen Yang Mining for performance data for systems with dynamic compilers
US8108198B2 (en) * 2006-02-21 2012-01-31 Mentor Graphics Corporation Memory tracing in an emulation environment
US20070226471A1 (en) * 2006-03-13 2007-09-27 Arm Limited Data processing apparatus
US8010774B2 (en) * 2006-03-13 2011-08-30 Arm Limited Breakpointing on register access events or I/O port access events
US7555424B2 (en) 2006-03-16 2009-06-30 Quickturn Design Systems, Inc. Method and apparatus for rewinding emulated memory circuits
JP2008071227A (ja) * 2006-09-15 2008-03-27 Nec Electronics Corp 半導体集積回路
US9811335B1 (en) * 2013-10-14 2017-11-07 Quicklogic Corporation Assigning operational codes to lists of values of control signals selected from a processor design based on end-user software
US9760494B2 (en) 2015-06-24 2017-09-12 International Business Machines Corporation Hybrid tracking of transaction read and write sets
US9858189B2 (en) 2015-06-24 2018-01-02 International Business Machines Corporation Hybrid tracking of transaction read and write sets

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6042968B2 (ja) * 1978-02-07 1985-09-26 日本電気株式会社 情報処理装置
JPS5916370B2 (ja) * 1979-05-07 1984-04-14 株式会社明電舎 真空しや断器
JPS56140931A (en) * 1980-04-04 1981-11-04 Nippon Zeon Co Ltd Preparation of conjugated diolefin
JPS56140932A (en) * 1980-04-07 1981-11-04 Toray Ind Inc Isolation of cyclohexene by adsorption
US4390946A (en) * 1980-10-20 1983-06-28 Control Data Corporation Lookahead addressing in a pipeline computer control store with separate memory segments for single and multiple microcode instruction sequences
US4430706A (en) * 1980-10-27 1984-02-07 Burroughs Corporation Branch prediction apparatus and method for a data processing system
US4477872A (en) * 1982-01-15 1984-10-16 International Business Machines Corporation Decode history table for conditional branch instructions
JPS58181152A (ja) * 1982-04-15 1983-10-22 Fujitsu Ltd デ−タ処理装置のデバグ方式
US4775927A (en) * 1984-10-31 1988-10-04 International Business Machines Corporation Processor including fetch operation for branch instruction with control tag

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH01154255A (ja) * 1987-12-10 1989-06-16 Mitsubishi Electric Corp マイクロプロセッサ
JPH0233631A (ja) * 1988-07-22 1990-02-02 Fujitsu Ltd 先行制御トレース方式
JPH05204644A (ja) * 1992-01-28 1993-08-13 Toshiba Corp データ処理装置
JP2693678B2 (ja) * 1992-01-28 1997-12-24 株式会社東芝 データ処理装置

Also Published As

Publication number Publication date
US4879646A (en) 1989-11-07
EP0241946A2 (en) 1987-10-21
DE3751356D1 (de) 1995-07-27
DE3751356T2 (de) 1995-12-14
JPH0731615B2 (ja) 1995-04-10
KR930008686B1 (ko) 1993-09-11
KR870010438A (ko) 1987-11-30
EP0241946B1 (en) 1995-06-21
EP0241946A3 (en) 1989-12-27

Similar Documents

Publication Publication Date Title
JPS62245442A (ja) 情報処理装置
US5375216A (en) Apparatus and method for optimizing performance of a cache memory in a data processing system
JP2539199B2 (ja) デジタルプロセッサ制御装置
JPS63193230A (ja) 高性能マイクロプロセッサ集積回路とメモリ参照を行なう方法
JP2000330790A (ja) コンピュータシステム動作方法、コンピュータシステムにおける命令スケジューリング方法およびコンピュータシステム
US11755456B2 (en) Tracking debug events from an autonomous module through a data pipeline
JP2693678B2 (ja) データ処理装置
JP2007102333A (ja) データ処理装置およびデータ処理方法
JPS63193246A (ja) 集積キャッシュ・メモリと外部メモリの間の一貫性を保つ方法と装置
JPH0743648B2 (ja) 情報処理装置
US5197133A (en) Control store addressing from multiple sources
JPS60225262A (ja) 2重キヤツシユメモリを有するパイプラインプロセツサ
JPH08249175A (ja) スーパースカラ・プロセッサ装置内の非アーキテクト命令を選択的にサポートする方法及び装置
JPS601655B2 (ja) デ−タプリフェツチ方式
JPH0384632A (ja) データ処理装置
JP2758624B2 (ja) マイクロプログラムの調速方式
JP3739556B2 (ja) 情報処理装置
JP2819733B2 (ja) 情報処理装置
JP3102399B2 (ja) データ処理装置及び方法
JPH087713B2 (ja) マイクロプロセッサ
JP3850156B2 (ja) 命令処理装置
JPH0721018A (ja) マイクロプログラム制御方式の中央処理装置
JPH0241770B2 (ja)
JP2545594B2 (ja) オペランドデータ先取り方式
JPS63167951A (ja) 情報処理装置

Legal Events

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