JPH0731615B2 - 情報処理装置 - Google Patents

情報処理装置

Info

Publication number
JPH0731615B2
JPH0731615B2 JP61090702A JP9070286A JPH0731615B2 JP H0731615 B2 JPH0731615 B2 JP H0731615B2 JP 61090702 A JP61090702 A JP 61090702A JP 9070286 A JP9070286 A JP 9070286A JP H0731615 B2 JPH0731615 B2 JP H0731615B2
Authority
JP
Japan
Prior art keywords
instruction
address
bus
processor
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.)
Expired - Fee Related
Application number
JP61090702A
Other languages
English (en)
Other versions
JPS62245442A (ja
Inventor
純一 岩先
尚夫 針谷
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NEC Corp
Original Assignee
NEC Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by NEC Corp filed Critical NEC Corp
Priority to JP61090702A priority Critical patent/JPH0731615B2/ja
Priority to KR1019870003729A priority patent/KR930008686B1/ko
Priority to US07/039,900 priority patent/US4879646A/en
Priority to DE3751356T priority patent/DE3751356T2/de
Priority to EP87105823A priority patent/EP0241946B1/en
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)
  • Advance Control (AREA)
  • Debugging And Monitoring (AREA)

Description

【発明の詳細な説明】 〔産業上の利用分野〕 本発明は情報処理装置に関し、とくにマイクロ・プロセ
ッサ等の如く半導体チップ上に集積されたプロセッサの
アドレス・バス端子、データ・バス端子を主とするチッ
プ端子に現われる(入力もしくは出力される)情報か
ら、プロセッサ内部で実行された命令を実行順にその命
令ニーモニックを復元したり、あるいは実行された命令
がプロセッサ外部にオペランドを有する場合には命令ニ
ーモニックに付随して実際にプロセッサがオペランドと
してアクセスしたアドレスおよびそのデータをも復元す
る(命令トレース)機能を有し、プロセッサを用いて開
発するソフトウェアのデバック作業に有効な情報処理装
置に関する。
〔従来の技術〕
まず、命令の光行制御機能を有するマイクロプロセッサ
の内部構成、特に、命令コードの先行フェッチ制御、キ
ュー・ステータスおよびバス・ステータスを説明し、従
来のマイクロプロセッサがキュー・ステータスおよびバ
ス・ステータスをどのように用いて命令トレースを実行
しているかを説明する。さらに、上記マイクロプロセッ
サよりも進歩した多段ステージのパイプライン構造を有
する高機能マイクロ・プロセッサの内部構成について説
明し、かかる高機能マイクロプロセッサで前記の命令ト
レースを実行した場合における欠点を説明する。
命令コード・フェッチ−命令解読−オペランド・アクセ
ス−命令実行−オペランド・アクセスというマイクロプ
ロセッサの基本動作シーケンスを全てシーケンスシャル
に行う従来のマイクロプロセッサにおいては、マイクロ
プロセッサが一連の命令の実行中にアドレスバス端子及
びデータ端子に現われる情報を順番に追うだけで命令ト
レースを行う事ができた。また、マイクロプロセッサの
前記基本動作シーケンスの中で、命令コード・フェッチ
を独立したユニットに任せて、命令コード・フェッチ動
作だけを先行制御するタイプのマイクロプロセッサにお
いては、該マイクロプロセッサが一連の命令の処理中に
アドレス・バス端子とデータ・バス端子及び命令コード
・フェッチを行うユニットの内部状態を示すステータス
信号の出力端子に現われる情報を一旦トレース・バッフ
ァ・メモリに時系列データとして蓄えておき、先行制御
される命令コード・フェッチによりプロセッサ内に取込
まれた命令コードとその後その命令コードが実行された
結果とを、前記ステータス信号によって対応づける編集
作業を行って命令トレースを行うことができる。このよ
うに、マイクロプロセッサの命令トレース法は、マイク
ロプロセッサの端子に現われる情報をトレースしている
ため、先に述べた命令コード・フェッチの先行制御を行
うためにマイクロプロセッサの内部構成を変えると、そ
れに伴って命令トレースの為に内部状態を示す必要最小
限の情報を最少の端子から出力する事が必要になるとと
もに、命令トレース法も変更しなければならない。
第4図は従来のプロセッサの内部ブロック図である。40
1はプロセッサチップ、402はアドレスおよびデータが入
出力されるバス端子である。403は内部バス,404はデー
タ・レジスタ,405はアドレス生成部,406は6バイト分の
命令キュー及び命令キュー制御部である。プロセッサの
キュー・ステータス情報は命令キュー制御部406で生成
され、キュー・ステータス専用の信号路407を介してプ
ロセッサ401の外部へ出力される。命令キュー406から出
力された命令コードは信号路408,内部データ・バス409
を介して命令ラッチ411に送られ、そこに格納される。4
12は命令コードのデコーダであり、命令ラッチ411の出
力を入力とする。410は命令実行制御部である。413は各
種レジスタ、414は算術論理演算回路、415は算術論理演
算回路用のオペランド・レジスタである。416はバス制
御部であり、プロセッサ401のバス・サイクル制御、バ
ス・ステータス信号生成等を制御する。417はバス制御
部416から生成されるバス・ステータス信号をプロセッ
サ401の外部へ出力する為の信号路である。
第4図に基いて、プロセッサの命令コード・プリフェッ
チ動作、命令デコード動作、命令実行について説明す
る。
プロセッサの命令コード・プリフェッチ動作は、アドレ
ス生成部405に於て生成したプリフェッチ用アドレスを
バス端子402を介して不図示のシステム・アドレス・バ
スに出力し、不図示のメモリ内の該当する領域から不図
示のシステム・データ・バスに出力された命令コードを
バス端子402から取込み、内部バス403を介してFIFO(Fi
rst In First Out)構造の命令キュー406の最後尾に格
納する。ここでプロセッサのデータ・バスが16ビット巾
であるとすれば、1回の命令コード・プリフェッチ動作
により2バイト分の命令コード(1バイト=8ビット)
を命令キュー406に格納できる。
プロセッサは命令キュー408の先頭から順に1命令キュ
ー408の先頭かな順に1命令当り1バイト分ずつの命令
コードを信号路408、内部バス409を介して命令ラッチ41
1に格納し、命令コード・デコーダ412を用いてデコード
する。デコードの結果生成される制御情報は命令実行制
御部等に転送され、デコーダ412に於てデコードされた
命令コードに記述されている動作が直ちに実行される。
デコーダ412に於てデコーダされた命令コードに記述さ
れている動作の実行が終了すると、プロセッサは命令キ
ュー412から次の1命令コードを命令ラッチ411に取込
み、デコードして実行するというシーケンスを繰返す。
例えば、命令キュー406から取出されて命令ラッチに格
納された命令コードをデコーダ412に於てデコードした
結果、メモリ内にリード・オペランドが必要である場合
には、まず命令コードのデコード後メモリから必要なリ
ード・オペランドを読出す。命令実行制御部410はアド
レス生成部405に対し、メモリ内のリード・オペランド
のアドレスを生成する為に必要な情報を与えてからバス
制御部416に対し、メモリ・リード・バス・サイクルの
起動を指令する。バス制御部416は命令実行制御部410か
らの前記指令により、アドレス生成部に於て生成された
アドレスを用いてメモリ・リード・バス・サイクルを起
動し、メモリから得たデータをデータ・レジスタ404に
格納し、メモリ・リードが完了した事を命令実行制御部
410に伝える。命令実行制御部410は先に発したメモリ・
リード・バス・サイクル起動指令に対するメモリ・リー
ド完了の情報をバス制御部416から受けるとデータ・レ
ジスタ404の内容を用いて必要な処理を行う。従って、
命令実行制御部410からのメモリ・リード・バス・サイ
クル起動指令をバス制御部416が受取っても、システム
・データ・バス及びシステム・アドレス・バスが他のバ
ス・マスタ等により専有されていると、バス制御部416
は命令実行制御部410から指令されているメモリ・リー
ド・バス・サイクルの起動ができないので命令の実行は
できない。バス制御部がシステム・データ・バス及びシ
ステム・アドレス・バスの使用権を獲得してメモリ・リ
ード・バス・サイクルを起動し、メモリ内の所定の領域
からのデータを取込んでデータ・レジスタに書込むま
で、命令の実行は停止したままである。言い換えれば、
このプロセッサにおいて、メモリ又はI/Oアクセスを必
要とする命令の為のメモリ・アクセス又はI/Oアクセス
の実際のバス・サイクルは、その命令実行中に限られる
わけである。
かかるプロセッサを用いてソフトウェアを開発する際に
は、命令トレースによるソフトウェアのデバックが必要
である。命令トレースはCPUがどの命令を実行した時に
どのような結果が得られるか、1つの命令の実行結果が
その命令以降の命令にどのような影響を及ぼすか、また
1つの命令又はルーチンの実行中に外部からの割込み等
があった場合に実行中の命令又はプログラムがどのよう
な影響を受けるか等を検討するのに必要な情報を得るた
めのもので、ソフトウェア開発において有用な手法の1
つである。
プロセッサは前述のように命令コードのプリフェッチが
可能であるからプロセッサのデータ入出力端子からプロ
セッサ内に取込まれた命令が実行されるタイミングはプ
ロセッサの内部状態に依存する。プロセッサは命令キュ
ーの状態を示すキュー・ステータス信号QS1,QS0と、バ
ス・サイクルの種類を示すバス・ステータス信号S4〜S0
を出力できるようになっている。キューステータス信号
からは表1に示すように命令キューの状態がわかり、バ
ス・ステータス信号からは表2に示すようにバス・サイ
クルの種類がわかる。
命令トレース用装置におけるトレース・バッファ・メモ
リの情報は、プロセッサ内部の命令キューと同一の動き
をする擬似命令キューを命令トレース用装置のソフトウ
ェアで実現し、トレース・バッファメモリ内の時系列デ
ータの一語一語のキュー・ステータス信号、バス・ステ
ータス信号に基いて、プロセッサ内部の命令キューを処
理の進行に従ってシミュレートしつつ、擬似命令キュー
の状態を基準としてプロセッサの実際の処理の進行順に
トレース・バッファ・メモリ内の命令コードを逆アセン
ブルして命令ニーモニックを得ることによって編集され
る。又、実行された命令がメモリアクセス又はI/Oアク
セスを伴う命令の場合には、命令コードを逆アセンブル
して命令ニーモニックを得ると同時に、実際にメモリア
クセス又はI/O・アクセスがどのようなアドレスとデー
タを用いて行なわれたかを求める必要がある。
上記プロセッサの命令トレース用装置は主としてプロセ
ッサの実行中のアドレス・バスの情報、データ・バスの
情報およびコントロール信号ステータス情報を蓄積する
トレース・バッファ・メモリ機能、ブレーク・ポイント
設定機能、キュー状態エミュレート機能及びトレース・
バッファ・メモリ内の情報編集機能を有している。命令
トレース用装置はプロセッサがプログラムを実行してい
る際に、実行に伴って各バス、入出力信号端子に現れる
データ、信号の中で予め決められたものを逐次トレース
・バッファ・メモリに取り込む。トレース・バッファ・
メモリとしては現在一語が64ビット程度、容量が64語程
度のものから2k語程度のものまで実用化されている。ユ
ーザーはブレーク・ポイント設定機能により設定したブ
レーク・ポイントでプログラムの実行を中断した後、ト
レース・バッファ・メモリ内の情報が編集された結果を
みて開発したソフトウェアをチェックすることができ
る。
ここで、プロセッサはプリフェッチ機能を有しているの
でデータ・バス端子から入力された命令は直接デコード
/実行されるのではなく、命令キューに一旦取込まれこ
こで待ち合わせが行なわれる。命令キューの詰り具合、
現在実行中の命令の種類等に依存されるので一定という
わけではない。前記プロセッサの場合には、命令キュー
の状態及び現在進行中のバス・サイクルの種類が夫々キ
ューステータス情報QS0,QS1およびバス・ステータス情
報S0,〜S4として端子から外部へ出力できるようになっ
ているので、命令トレース用装置では、キュー・ステー
タス、バス・ステータス信号と他の情報と共にトレース
・バッファ・メモリ内に取込み、ブレークポイントによ
るプログラム中断後これを参照しつつトレース・バッフ
ァ・メモリに時系列データとして蓄積されている情報を
編集し、どのアドレスの命令コードがデコード又は実行
され、その過程において生ずるメモリ又はI/Oアクセス
が、トレース・バッファ・メモリ内のどのメモリ・アク
セスに対応するかを編集するようにしている。
以下にかかる編集の原理を簡単に説明する。1つの命令
が命令キューから取出されデコード及び実行されている
場合、実行されている命令が終了するまで、次の命令の
実行は始まらない。従って、メモリ又はI/Oアクセスを
伴う命令が例えば2命令連続している時でも、それぞれ
のメモリ又はI/Oアクセスの順序はプログラムに書かれ
ている命令の順序と同一である。さらに、メモリ又はI/
Oアクセスを伴う命令をメモリから取込み時刻と、それ
が命令キューから取出されデコード処理及び実行処理で
必要とされるメモリ・アクセス時刻との差異は、命令キ
ューの状態に依存するが、メモリ又はI/Oアグセスの時
刻は命令が実行されている時刻と一致している。以上の
事を前提として、以下にトレース・バッファ・メモリに
ついて説明する。
第5図にトレース・バッファ・メモリ内の書込まれたデ
ータの一例を示す。フレームはトレース・バッファ・メ
モリの番地に相当し、1つのフレームに一度に取込まれ
る1語の情報が書込まれる。トレース・バッファ・メモ
リに取込まれた順にフレーム番号が付けられている。BH
E*はバイト・ハイ・イネーブル信号で*はアクティブ
・ローを示す。BHE*信号はデータ・バスの上位半分に
データを出力する事を示す信号である。STSはバス・ス
テータス・信号S0〜S2を表2に示す略号で示したもので
ある。QSTSはキュー・ステータス信号QS1,QS0を表1に
示す略号で示したものである。QDEPTHは命令キューに格
納されている命令コードのバイト数である。DMUXはトレ
ース・バッファ・メモリに取込んだ目的が何であるかを
示し、Aはアドレスを、DはデータをQはステータスを
示す。命令トレース用装置にはプロセッサと同等のバス
・サイクルが割り当てられており、プロセッサのシステ
ム・クロック毎にアドレス,データ,ステータス等のト
レース・データを監視する。アドレスはバス・サイクル
T1で変化するので、T1でトレース・データ1語分をトレ
ースバッファ・メモリ内に取込む。この時DMUXにはアド
レスを示すAを書込む。T1で出力されたアドレスに対す
るデータは同一バス・サイクルのT4で確定しているの
で、T4で1フレームをトレース・バッファ・メモリに取
込む。この時DMUXにはDを書込む。バス・ステータス
は、バス・サイクルのT2からT4の間有効となるが、直前
にトレース・バッファ・メモリに取込んだバス・ステー
タスの内容と変化した場合のみそのバス・ステータスを
1フレーム分トレース・バッファ・メモリに取込む。キ
ュー・ステータスは基本的にはバス・サイクルには依存
しないが、直前にトレース・バッファ・メモリに取込ん
だトレース・データのキュー・ステータスの内容と変化
した場合にのみ、トレース・データ1語分を取込む。ス
テータスを取込む時にはDMUXにはQを書込む。このプロ
セッサでは、アドレス、データおよびステータスはいず
れも同じ端子から時分割に入力されマルチプレックスさ
れているため、DMUXのような指標を設けて、アドレス
(A)か、データ(D)か、ステータス(Q)かを識別
できるようにしておく必要がある。QDEPTHはプロセッサ
の端子から直接得られる情報ではないが、キュー・ステ
ータス(QSTS)とバス・ステータス(STS)を用いて次
のようにして算出する。
なお、擬似命令キューの構成法にはいくつかの方法があ
るが、第6図に示す方法について説明する。601は1バ
イト巾のメモリ空間で命令トレースに充分な容量が確保
されている。プロセッサでは命令コードのプリフェッチ
は2バイトずつ行なわれ、バス・ステータスがF,DMUXが
Dを示す事で検知されるので命令コード・プリフェッチ
動作をシミュレートするには、擬似命令キュー・書込み
ポインタ(WP)の内容を1づつ2つ増やしつつプリ・フ
ェッチされた命令コードをWPの示すメモリ番地に書込
む。また、命令コードが命令キューから取出される事を
シミュレートするには、キューステータスにより検知で
きるので、擬似命令キュー読出しポインタ(RP)の示す
メモリ番地から命令コードを取出して、擬似命令キュー
読出しポインタ(RP)の内容を1だけ増やす。
QDEPTHの値は、命令トレース用装置内に設けられた第7
図に示すハードウェア回路700により、プロセッサがリ
セットされた時を起点として実際に動作している間に逐
時計算される。その結果は命令トレース用装置がバッフ
ァ・メモリ内に取込む1フレーム分の情報の中に含まれ
る。第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は論理和
ゲート709の出力信号路である。711はプロセッサからの
バス・ステータス信号を伝達する信号路で、デューダ71
2に入力される。713はデューダ712の出力信号路であ
り、信号路713上の信号はバス・ステータス信号が表2
中の略号のF(コードフェッチ)を示した時にハイ・レ
ベルになる。714は信号路713上の信号を入力とするモジ
ュロ6のアップ・カウンタである。カウンタ714は信号
路713上の信号の立上りエッジを1つ検出する毎にカウ
ンタの値を2増やす。715はカウンタ714の出力信号路で
3ビット巾である。706は減算器である。減算器706には
信号路705及び715を用いてそれぞれカウンタ704及びカ
ウンタ714の出力信号が入力され、カウンタ714の出力信
号の値からカウンタ704の出力信号の値が減算され、そ
の結果が信号路716に出力される。
第7図のQDEPTH算出用ハードウェア700の動作の概略を
説明する。プロセッサのキュー・ステータス信号及びバ
ス・ステータス信号はそれぞれ信号路701及び711により
逐時QDEPTH算出用ハードウェア700内部に伝達される。
システムのリセット信号708がハイ・レベルになると論
理和ゲート709の出力信号がハイ・レベルになり、信号
路710を通じてカウンタ704,714に入力される。カウンタ
704,714は信号路710上の信号がハイ・レベルになるとカ
ウンタの出力を零にリセットする。プロセッサがリセッ
ト信号に応答して動作を開始し、命令コードをプリフェ
ッチするとバス・ステータスが表2中の略号のF(コー
ド・フェッチ)を示すので、カウンタ714の出力が2と
なる。プロセッサは1回のプリフェッチ動作により2バ
イトの命令コードを命令キューに格納するので、デコー
ダ713はバス・ステータス信号が表2中の略号のFを1
回検出する毎にカウンタ714の出力を2ずつ増加させ
る。プロセッサが命令キューから1バイトの命令コード
を取出す事は、デコーダ702が信号路701上のキュー・ス
テータス信号が表1中の略号のF(First)又はS(Sub
sequent)を検出する事で把握し、F又はSを検出する
毎にカウンタ704の出力を1ずつ増加させる。ある時点
で減算器706により命令コード・プリフェッチを示すカ
ウンタ714の出力の値から、命令キューから命令コード
が取出された事を示すカウンタ704の出力の値を減じた
結果が、その時点でのキューの深さQDEPTHである。ま
た、デコーダ702に於てキュー・ステータス信号をデコ
ードした結果、表1中の略号のE(キュー・フラッシ
ュ)が検出された時にはデコーダ702の1つの出力信号
路707上の信号がハイ・レベルになる。従って、論理和
ゲート709の出力信号路710上の信号がハイ・レベルにな
り、カウンタ704及び714がリセットされる。信号路707
上の信号によるカウンタ704及び714のリセットは、プロ
セッサが命令キューの内容をパージした事に相当する。
このように第7図のQDEPTH算出用ハードウェア回路によ
り、命令キューに入出力される命令コードの増減がシミ
ュレートされ、結果は出力信号路716上の信号を命令ト
レース用装置のバッファ・メモリ内に1度に取込む1フ
レームの情報の1部として、プロセッサがリセットされ
てからブレーク・ポイント・アドレスに於て一連の動作
を停止するまでの間、データ・バス、アドレス・バス、
キュー・ステータス信号、バス・ステータス信号の情報
と共に逐次バッファ・メモリ内に取込まれる。
次に、第5図のトレース・バッファ・メモリ内のデータ
をもとにしてプロセッサが実際に実行したI/O又はメモ
リ・アクセスを伴う命令を逆アセンブルし、命令の実行
に伴うプロセッサのI/O又はメモリ・アクセスと対応づ
ける方法を説明する。先行制御では、命令がプロセッサ
に取込まれてから実行されるまでの時間は一定ではな
い。しかしながら、分岐命令等のようにプログラムのシ
ーケンスを変える可能性のある命令が含まれない限り、
命令の実行の順は命令キューに取込まれた順と同一であ
る事を前提として以下の説明を行なう。
実行された命令をトレースする際には、命令キューが空
になっている状態を捜し出して、トレースの基準とす
る。命令キューが何時空になったかは、キューステータ
スがEを示している事でわかる。例えば第5図におい
て、フレーム0002や、フレーム0022ではQSTSがEを示し
ている。キューステータスEである場合の直後の命令フ
ェッチにより命令キューに取込まれた命令コードは、命
令キューの先頭におかれ一番初めにデコード、実行され
る。命令コードがバイト可変長(例えば1バイト命令か
ら6バイト命令まである場合)の時、キュー・ステータ
スのFから次のFまでの1つのFとSの数との和が実行
された命令のバイト数を示している。第5図において、
フレーム0002でQSTSがEとなった後、フレーム0003でア
ドレスが出力され(DMUXがA)、フレーム0004でデータ
が取込まれている(DMUXがD)が、STSがFとなってい
るためフレーム0004で取込まれたデータが命令コードで
あり、フレーム0002でQSTSがEで命令キューが空であっ
た直後の命令フェッチであるので、フレーム0004で取込
まれた命令コードがフレーム0004の段階で命令キューの
先頭にある。フレーム0006でQSTSがFを示しているの
で、フレーム0004で取込まれた命令コードが実行部に取
込まれた事がわかる。フレーム0006の次にフレーム0011
でQSTSがFで示すまでの間フレーム0007とフレーム0010
でQSTSがSを示しているので、フレーム0004で取込まれ
てフレーム0006から実行され始めた命令は3バイト命令
である事がわかる。またフレーム0005でアドレスが出さ
れてフレーム0008で命令コードがプリフェッチされてい
るので、フレーム0006から実行され始めた命令は、BA E
A FF(いずれも16進数表示)の命令コードをもち、逆ア
センブルするとMOV DX FFEAというニーモニックが得ら
れる。以下フレーム0002の命令キューが空の状態を基準
として命令コードのバイト数をキュー・ステータスから
得て1命令分の命令コードを得る方法を繰返す。
フレーム0006からフレーム0010までの命令の次は、フレ
ーム0011からフレーム14までの命令である。キュー・ス
テータスはフレーム0011でFを示し、次にフレーム15で
Fを示すまでSを示さないのでフレーム0011からフレー
ム14までの間に実行された命令は1バイト命令であり、
フレーム0008でフェッチされた2バイト分の命令コード
ううちフレーム0006からフレーム0010の命令コードでは
ない方の1バイトのEC(16進数表示)という命令コード
をもつ。EC(16進数表示)を逆アセンブルするとIN AL,
DXというニーモニックを得る。フレーム0013及びフレー
ム0014でバス・ステータスSTSがIを示しているが、こ
れはフレーム0013の段階で出力されたアドレスに対応す
るI/Oポートからフレーム0014の段階で示されるデータ
を取込んだ事を示している。つまり、IN AL,DXという命
令の実行の過程で生ずるI/O・アクセスはフレーム0013
及びフレーム0014の段階でのI/O・アクセスである。
このように、キュー・ステータス信号が表1の略号のE
を示しているフレームを基準にして、キュー・ステータ
ス信号、バス・ステータス信号、DMUX指標及びデータ・
バス上のデータ、アドレス・バス上のアドレスから1命
令分の命令コードを選び出して逆アセンブルして命令ニ
ーモニックを得、命令実行に必要とされるメモリ又はI/
Oアクセスとを対応づける事で、プロセッサが実際に実
行した命令を復元することができる。トレース・バッフ
ァ・メモリ内に一箇所基準となるフレームがあれば、そ
のフレーム以降の命令の復元はキュー・ステータス信号
とバス・ステータス信号と命令コード・プリフェッチ時
のデータ・バス上のデータとをもとにして、順次1命令
分ずつ実行された命令を復元する事ができる。また、基
準となるフレーム以前の命令については、キュー・ステ
ータス信号、バス・ステータス信号、命令コード・プリ
フェッチ時のデータ・バス上のデータ及びキューの深さ
QDEPTHの情報を用いて基準となるフレームから時間の経
過とは逆向きにトレース・バッファ・メモリ内のフレー
ムをたどる事により実行された命令の復元が可能であ
る。
第5図に示したトレース・バッファ・メモリ内のデータ
をもとに命令の復元(トレース)を行った結果は第8図
に示すとおりである。
次に、多段ステージのパイプライン構造を持つプロセッ
サについて述べる(以下、このプロセッサを仮にAプロ
セッサという)。
第9図は、Aプロセッサの内部ブロック図である。901
はAプロセッサチップ、902はAプロセッサのアドレス
・バス信号路、903はAプロセッサのデータ・バス信号
路、904はAプロセッサ内のデータ・バス、905はAプロ
セッサの命令プリフェッチ部で、命令プリフェッチ部90
5内にはFIFO構造の命令キューと、命令キュー制御回路
とを有する。906は命令プリフェッチ部内の命令キュー
の先頭にある命令解読部907に転送する為の信号路、907
は命令解読部で、命令デコーダおよび命令解読部の動作
を制御するシーケンサ等を含む。908は命令解読部907に
於てデコードされた結果得られる情報の中で命令実行部
910の動作を指定する情報を格納するFIFO構造のデコー
ド情報キュー、909はデコード情報キュー908からの情報
を命令実行部910に伝達する為の信号路、910は命令実行
部で、算術論理演算回路、各種レジスタ等のハードウェ
アから成る。911は命令解読部907からの情報及び指令に
よりアドレス計算を行うアドレス計算を行うアドレス生
成部、912はアドレス生成部911で生成されたアドレスを
バス制御部913のアドレス・バス・インターフェース部
に伝達する為の信号路である。913はAプロセッサのバ
ス制御部である。バス制御部913は、機能的に大別して
アドレス・バス・インターフェース部、データ・バス・
インターフェース部、バス・サイクル制御部の3つの部
分に分けることができる。アドレス・バス・インターフ
ェース部はAプロセッサのアドレス・バス902からAプ
ロセッサを含むシステムのシステム・アドレス・バスに
対して定められたアドレスを出力する機能をもち、各種
アドレスを格納しておくアドレス・レジスタ群919等の
ハードウェアを有する。データ・バス・インターフェー
ス部は、Aプロセッサのデータ・バス903を介しシステ
ム・データ・バスからデータを取込んで一時的に蓄えて
おくテンポラリ・レジスタ916、システム・データ・バ
ス上にデータを出力する際にデータ出力に先だってAプ
ロセッサ内で生成されたデータを一時蓄えておくテンポ
ラリ・レジスタ917等のハードウェアを有する。バス制
御部913内のバス・サイクル制御部は、Aプロセッサの
バス・サイクル制御、バス・ステータス出力の制御、A
プロセッサの外部端子からの信号の入出力の制御を行な
う。915は命令解読部907からバス制御部913へ動作を指
定する情報、やよびバス制御部913から命令解読部907へ
バス制御部の内部状態を示す情報を夫々双方向に伝達す
る為の信号路、914は命令解読部907からアドレス生成部
911へアドレスの生成に必要な情報およびアドレス生成
部911の動作を指定する情報を供給し、又アドレス生成
部911から命令解読部907へアドレス生成部911の内部状
態を示す情報を伝達する為の信号路である。918は命令
実行部910内で生成したデータをバス制御部913内のデー
タ・バス・インターフェース部にあるテンポラリ・レジ
スタ917に転送し、又バス制御部913内のデータ・バス・
インターフェース部にあるテンポラリ・レジスタ916か
ら命令実行部910に転送する為の信号路である。920はA
プロセッサのバス・ステータス信号路、921はメモリ・
リード信号やI/Oライト信号等Aプロセッサの外部へ出
力される情報の信号路である。922はAプロセッサのキ
ュー・ステータス信号路である。
Aプロセッサには命令プリフェッチ部905,命令解読部90
7、アドレス生成部911、バス制御部913、命令実行部が
ある。命令プリフェッチ部905はプリフェッチした命令
コードを蓄えるFIFO構造の命令キューを中心としたハー
ドウェアを有する。命令解読部907は命令キューから取
出した数バイトの命令コードのデコーダと、命令解読部
の動作を司るシーケンサ、プログラムカウンタ、命令の
デコードの結果得られた情報を蓄えるFIFO構造のデコー
ド情報キュー908等のハードウェアを有する。アドレス
生成部911はアドレッシングに関するハードウェアを有
する。バス制御部913には大別してアドレス・バス・イ
ンターフェース部、データ・バス・インターフェース
部、バス・サイクル制御部がある。アドレス・バス・イ
ンターフェース部はプリフェッチ用アドレス・レジス
タ、リード・オペランド用アドレス・レジスタ、ライト
・オペランド用アドレス・レジスタ等のレジスタ群919
を有する。データ・バス・インターフェース部は、Aプ
ロセッサの外部へのリード・アクセスにより得られたデ
ータを一時格納するテンポラリ・レジスタ916と、Aプ
ロセッサの外部へのライト・アクセスの為のデータを一
時格納するテンポラリ・レジスタ917を有する。バス・
サイクル制御部は主にシーケンサから成る。命令実行部
910には、算術論理演算器、レジスタ・ファイル、シフ
タや、命令実行を司る制御回路部がある。
Aプロセッサのハードウェアで本発明の説明に関する部
分について次のように定める。命令プリフェッチ部の命
令キューは1バイト巾で最大8バイトの容量とする。命
令解読部は、命令キューから命令コードを取出す時は1
クロックに1バイトずつ取出す。デコード情報キューは
2命令分のデコード情報を蓄える容量をもつ。バス制御
部のテンポラリ・レジスタ916はデータの1語分に対し
て2本あり、夫々RDR1,RDR2と名付ける。テンポラリ・
レジスタ917はデータの1語分に対して1本あり、WDRと
名付ける。プリフェッチ用アドレス・レジスタは1アド
レス情報分ありPARと名付ける。リード・オペランド用
アドレス・レジスタは1アドレス情報分に対して2本あ
り、夫々RAR1,RAR2と名付ける。RAR1はRDR1に、RAR2
RDR2に対応する。ライト・オペランド用アドレス・レジ
スタは1アドレス情報に対して1本あり、WARと名付け
る。WARはWDRに対応する。
第10図はAプロセッサのバス制御部内のアドレス・バス
・インターフェース部の主要部分を示した図である。信
号路912は第9図のものと同じで、アドレス生成部に於
て生成されたアドレスを転送する信号路である。1002,1
005,1008,1011はアドレス・レジスタ群であるが格納さ
れるアドレスの種類によりプリフェッチ用アドレス・レ
ジスタ(PAR)1002,リード・オペランド用アドレス・レ
ジスタ1(RAR1)1005,リードオペランド用アドレス・
レジスタ2(PAR2)1008,ライト・オペランド用アドレ
ス・レジスタ(WAR)1011と名付ける。1003,10.06,100
9,1012はそれぞれ第9図のレジスタ919(1002,1005,100
8,1011)の各ラッチ信号である。1004はレジスタ1002の
出力信号路、907は905の出力信号路、1010はレジスタ10
08の出力信号路、1013はレジスタ1011の出力信号路であ
る。1014はマルチプレクサで、信号路1004,1007,1010,1
013上の信号を入力とし、選択信号により4本の入力の
中から必ず1つだけを選び出すものである。マルチプレ
クサ1014の出力はアドレス・バス902へ出力される。4
本のラッチ信号1003,1006,1009,1012と、マルチプレク
サ1014の選択信号は命令解読部907に於て生成された信
号であり、信号路915を介して転送される。レジスタ100
2は他の3つのレジスタ1005,1008,1011が持たないアド
レスの自動更新機能(インクリメンタ)を有する。ラッ
チ信号1003によって信号路1001上のアドレスが一旦レジ
スタ1002内に格納されると、マルチプレクサ1014の出力
としてレジスタ1002の出力信号路1004上の信号が選ば
れ、バス制御部が命令コード・プリフェッチの為のメモ
リ・リード・バス・サイクルを1回終了される度にレジ
スタ1002の内容が一定の量だけ増加される。レジスタ10
02の該自動更新機能により、命令解読部は一旦命令コー
ド・プリフェッチ用アドレスをレジスタ1002に設定した
後分岐命令等により次に新たな命令コード・プリフェッ
チ用アドレスをレジスタ1002に設定しなければならない
場合までは、命令エード・プリフェッチの為のバス・サ
イクルの毎にレジスタ1002の内容を更新する必要がない
ので、命令解読部の負荷が軽減される。
次にAプロセッサの動作の概略について説明する。
メモリ内に格納されている命令コードは、Aプロセッサ
の命令コードのプリフェッチ機能によりAプロセッサ内
に取込まれる。プリフェッチ動作には、命令解読部、ア
ドレス生成部、バス制御部及び命令プリフェッチ部が関
係する。プリフェッチ動作は、バス制御部のプリフェッ
チ用アドレス・レジスタPARに命令解読部からの指令に
よりバス生成部からプリフェッチ用アドレスが書込まれ
ると、次に命令解読部の指令によりPARの内容が書替え
られるまで、PARの更新はバス制御部が行なう。バス制
御部はAプロセッサとシステムを接続しているシステム
・アドレス・バス及びシステム・データバスが空き状態
である場合にプリフェッチ動作を行う。バス制御部はPA
Rの内容をシステム・アドレス・バスに出力すると同時
にバス・ステータス信号BST2-0に命令コード・フェッチ
であるコードを出力し、MMIO信号をメモリ・アクセス状
態にする。システム・アドレス・バスに出力したプリフ
ェッチ用アドレスに対応するメモリ内のアドレスの内容
(命令コード)をデータ・バスからAプロセッサのバス
制御部に取込み、命令プリフェッチ部の命令キューへ転
送して、PARの内容を更新する。命令プリフェッチ部は
バス制御部から転送されてきた命令コードを順番に命令
キューの最後尾に格納する。命令プリフェッチ部の主な
機能は、命令キューの動作の制御と、キュー・ステータ
スQST3-0の出力の制御である。バス制御部の主な機能
は、メモリ・アクセス、I/Oアクセス、大部分の制御信
号の入出力制御である。アドレス生成部の主な機能は、
各種アドレッシングの為のアドレス計算等である。命令
解読部の主な機能は、命令コードのデコード、Aプロセ
ッサ内の各部分の動作の制御である。命令実行部の主な
機能は、算術論理演算等、実際にデータを加工する事で
ある。
Aプロセッサのステータスについて以下に説明する。A
プロセッサには命令プリフェッチ部の命令キューと命令
解読部のデコード情報キューの2種類のキューがあるの
で、2種類のキューの状態を示すために4ビットのキュ
ー・ステータス信号QST3-0をAプロセッサの外部に出力
している。QST3はデコード情報キューの先頭の1命令分
のデコード情報が命令実行部に引取られた時1クロック
期間ハイ・レベルになり、新しい命令が命令実行部に於
て実行され始めた事を示す信号である。QST2-0は、Aプ
ロセッサの2種類のキューの状態を第4表に示すような
エンコードして示す信号である。キュー・ステータス信
号は命令解読部に於て生成される。バス・ステータス
は、バス・ステータス信号BST2-0とメモリ・アクセスか
I/Oアクセスかを示す信号MMIOとリード・アクセスかラ
イト・アクセスかを示す信号RDWRにより第5表に示すよ
うにエンコードされている。MMIO信号はハイ・レベルの
時メモリ・アクセスを、ロー・レベルの時I/Oアクセス
を、ハイ・インピーダンス状態の時アクセスがない事を
示す。RDWR信号はハイ・レベルの時リード・アクセス
を、ロー、レベルの時ライト・アクセスを、ハイ・イン
ピーダンス状態の時アクセスがない事を示す。バス・ス
テータス信号BST2-0とMMIO信号とRDWR信号はバス制御部
において生成される。
命令解読部は命令キューの先頭にある命令コードから順
に1バイトずつ1命令分の命令コードを取出して命令コ
ード・レジスタに蓄える。命令デコーダには命令コード
・レジスタの出力が入力されて命令コードのデコードが
行なわれる。命令解読部でのデコードにより、命令実行
部の動作を指定する情報を、命令実行部の動作に必要な
情報と、アドレス生成部の動作を指定する情報とアドレ
ス生成部の動作に必要な情報と、バス制御部の動作を指
定する情報とバス制御部の動作に必要な情報とが生成さ
れる。命令実行部に関する情報はデコード情報キューに
格納される。アドレス生成部及びバス制御部に関する情
報は命令解読部では特にラッチしていない。従って命令
コード・レジスタの内容が更新されるとアドレス生成部
及びバス制御部に関する情報は変化する。命令解読部か
ら送られたアドレス生成部に関する情報及びバス制御部
に関する情報はそれぞれアドレス生成部、バス制御部内
にラッチされるが、アドレス生成部又はバス制御部の内
部状態により命令解読部から送られてきた情報を受取る
事ができない場合には命令解読部に対し、現在与えられ
た情報を受取る事ができないという情報(ビジー信号)
が返信される。命令解読部は、1命令分の命令コードの
デコードは、命令実行部の動作に関する情報をデコード
情報キューに格納する事で終了する。デコード情報キュ
ーに空きが無い場合とアドレス生成部又はバス制御部か
らビジー信号を受取った場合には、命令解読部のデコー
ド動作を停止するが、この場合でも命令プリフェッチ部
の制御は行う。
命令解読部は命令プリフェッチ部の命令キューの詰り具
合いを常時監視し、命令コードのプリフェッチ要求の制
御も行う。例えば命令キューが空になった場合つまり命
令キューから取出した数バイトからなる1命令分の命令
コードを命令解読部においてデコードした結果、無条件
分岐命令である事が判明した場合などには、命令解読部
が命令プリフェッチ部に対し直ちに命令キューの内容を
全て棄てる(パージ)するように指令するとともに、ア
ドレス生成部に対しては分岐先のアドレスを生成してバ
ス制御部に転送するよう指令し、バス制御部に対して
は、プリフェッチ用アドレス・レジスタPARの内容をア
ドレス生成部経由で転送されて来る新しいプリフェッチ
・アドレス情報に書き改め、新しい分岐先アドレスから
のプリフェッチ動作の起動を指令する。分岐命令解読直
後の分岐先アドレスからのプリフェッチ動作は、Aプロ
セッサ内部における外部バス使用を必要とする事象の中
で最高優先順位を与えられている。既ち、分岐命令解読
直後の分岐先アドレスからのプリフェッチ動作は、命令
キューに所定のバイト数の命令コードが蓄えられるまで
順次続けられ、該プリフェッチ動作期間中には、命令の
実行に必要なメモリ・アクセスの為の外部バスの使用は
不加能である。以上のような命令解読部からの指令に従
ってAプロセッサの命令コードのプリフェッチ動作が進
行する。
命令解読部及び命令実行部の一連の命令に対する動作の
順番は、完全に一致している。簡単ら例としていずれも
分岐命令ではない命令(1)と命令(2)が、命令
(1)、命令(2)の順にアドレスの連続したメモリの
領域に格納されている場合を考える。Aプロセッサのプ
リフェッチ機能により命令プリフェッチ部の命令キュー
に命令(1)、命令(2)の順にてれぞれ数バイトから
成る命令コードが取込まれ、命令解読部は命令(1)の
デコードを終了して必要なデコード情報をデコード情報
キューに格納した後に命令(2)のデコードを行う。従
って命令実行部もデコード情報キューから取出された命
令(1)のデコード情報を用いて命令(1)の実行を終
了した後に、デコード情報キューの先頭にある命令
(2)のデコード情報を引取り、命令(2)を実行す
る。
命令解読部において解読した命令がメモリ内又はI/Oに
リード・オペランドを必要とする命令である場合には、
リード・オペランドの先読みが行われる。リード・オペ
ランドの先読みには、命令解読部、バス制御部が関与
し、命令実行部は関係しない。リード・オペランドの先
読みは、リード・オペランドを必要とする命令が命令実
行部で実行される時刻より以前に、予め読込んでおくの
であるが、Aプロセッサの内部、外部の状態、条件によ
り常に先読みができているとは限らない。以下にリード
・オペランドの先読みについて説明する。リード・オペ
ランドを必要とする命令の命令コードが命令解読部の命
令コード・レジスタに格納され、デコーダに入力されて
解読されると、命令解読部からアドレス生成部及びバス
制御部の動作に関する情報として、リード・オペランド
の先読み動作が指定される。命令解読がアドレス生成部
に対して指定するリード・オペランド先読みの為の動作
はリード・オペランドのアドレス生成の為に必要な情報
を命令解読部からアドレス生成部に提供してリード・オ
ペランド先読み用アドレスを生成し、生成されたリード
・オペランド先読み用アドレスをバス制御部に転送する
という動作である。命令解読部がバス制御部に対して指
定するリード・オペランド先読みの為の動作は、アドレ
ス生成部経由でバス制御部に転送されたリード・オペラ
ンド先読み用アドレスを、バス制御部のアドレス・バス
・インターフェース部内の2つのリード・オペランド用
アドレス・レジスタRAR1,RAR2のどちらに格納するかを
指定してリード・オペランド先読み用アドレスをリード
・オペランド用アドレス・レジスタに格結し、リード・
バス・サイクルを起動してリード・オペランドの読込ん
で、リード・オペランド用アドレス・レジスタに対応す
るリード・オペランド用データ・レジスタに格納すると
いう動作である。命令解読部からバス制御部に対して指
定するリード・オペランド先読みの為の動作では、タイ
ミングを指定しない。バス制御部では、命令解読部から
前記のリード・オペランド先読みの為の情報を得ると、
Aプロセッサ外部のシステム・データ・バス及びシステ
ム・データ・バス及びシステム・アドレス・バスの状
態、条件に応じてメモリ・アクセス、又はI/Oアクセス
が可能な時にリード・オペランド先読みの為のリード・
バス・サイクルを起動してリード・オペランドを読込み
指定された読込みテンポラリ・レジスタに格納する。リ
ード・オペランド・先読みの為のリード・バス・サイク
ルの起動のタイミングは、命令実行部、命令解読部から
制御されず、バス制御部が他のユニットから独立に制御
している。
リード・オペランドの先読みは、リード・オペランドの
先読みは、リード・オペランドを必要とする命令コード
の命令解読部でのデコード段階で検知される。命令解読
部はアドレス生成部及びバス制御部に対し前記の動作指
定を行うとともに、命令実行部に対し、バス制御部がリ
ード・オペランドを読込んだ後、命令実行部がリード・
アクセスすべきリード・オペランド・レジスタ(RDR1
RDR2か)を、命令実行部の動作を指定する情報としてデ
コード情報キューに格納しておく、例えば、命令解読部
においてデコードした命令がメモリ内に2つのリード・
オペランドを必要とする命令である場合には、第1オペ
ランドのアドレスをRDR2に、従って第1オペランドのデ
ータをRDR2に、第2オペランドのアドレスをRAR1に、従
って第2オペランドのデータをRDR1に格納するようバス
制御部に指定した場合には、命令実行部に対し第1オペ
ランド・データはRDR2の内容を、第2オペランド・デー
タはRDR1の内容を使用して命令を実行するようデコード
情報キューに情報を格納して該命令のデコードを終了す
る。命令実行部が該命令のデコード情報をデコード情報
キューの先頭から取出して実行する際、メモリ内の2つ
のリード・オペランドが2つともバス制御部によりメモ
リからRDR1,RDR2に予め転送されている場合には、命令
実行部は本来メモリ内にある2つのオペランドのデータ
を、Aプロセッサ内のレジスタにアクセスするだけで得
る事ができる。メモリ・アクセスには数クロックを要す
るがリード・オペランドの先読みにより、メモリ内のリ
ード・オペランドのデータを、命令実行部が必要とする
時点より前に予めAプロセッサ内部のバス制御部内のレ
ジスタ(本例ではRDR1,RDR2)に転送しておく事ができ
た場合には命令実行部が1クロックで1リード・オペラ
ンドをアクセスしたように見えるので、命令実行効率が
向上し、ひいてはAプロセッサのスルー・プットが向上
する。
しかし、Aプロセッサの外部のシステム・データ・バ
ス、システム・アドレス・バスが他のバスマスタに長時
間占有されている場合等は、リード・オペランドを必要
とする命令の命令コードが命令解読部でのデコード期間
に、命令解読部から提供したリード・オペランド先読み
に関する情報をバス制御部が受取っても、リード・オペ
ランドの先読みの為のリード・バス・サイクルの起動
は、早くてもAプロセッサが、現在システム・バスを占
有しているバス・マスタからシステム・バス占有権を返
還されるまで待たされる。リード・オペランドの先読み
がこのように待たされていても、命令実行部では、リー
ド・オペランドが先読みされているか否かに拘ず、実際
にリード・オペランドを必要とする命令が実行され、命
令実行部は命令解読部によって指定されたバス制御部の
リード・オペランド・レジスタの内容を読出そうとす
る。命令解読部により指定されたリード・オペランド・
レジスタに、リード・オペランドが先読みされていない
時には、命令実行部は、バス制御部がリード・バス・サ
イクルを起動してリード・オペランドからデータを読込
んで命令解読部により指定されたリード・オペランド・
レジスタに格納し、該リード・オペランド・レジスタの
命令実行部からのアクセスが許可されるまで命令実行部
は動作を停止して待つ。命令実行部の動作が停止してし
まうと、デコード情報キューも止まるので、命令解読部
のデコードも止まり、Aプロセッサの主な動作は全て停
止する。バス制御部がリード・バス・サイクルを起動し
て命令解読部により指定された読込みテンポラリ・レジ
スタにリード・オペランドを格納する事により命令実行
部の動作が再開され命令解読部のデコードも再開されて
Aプロセッサの動作が再開される。本例のように、メモ
リ内又はI/Oにリード・オペランドを必要とする命令が
命令解読部に於てデコードされ、デコードと同時は命令
解読部からアドレス生成部及びバス制御部に対しリード
・オペランドの先読み動作を指定して、該命令のデコー
ド情報をデコード情報キューに格納した後、命令実行部
での命令処理が進み、命令実行部がデコード情報キュー
の先頭から該命令を実行するまでの間に、リード・オペ
ランドの先読みが行なわれなかった場合には、前述のプ
ロセッサと同等の実行効率となる。
命令解読部で解読される一連の命令の順番とバス制御部
におけるリードオペランドの先読みの順とは完全に一致
している。例えばともにメモリ内にリード・オペランド
を必要とする2つの命令(3)命令(4)が、命令
(3)、命令(4)の順に命令キューに格納されている
場合を考える。命令解読部は命令キューからまず命令
(3)の数バイトから成る命令コード(3)を取出して
デコードし、バス制御部に対し命令(3)のリード・オ
ペランド(3)先読みの為のメモリ・リード・アクセス
を指定し、命令(3)に関するデコード情報をデコード
情報キューに格納する。次に命令解読部から命令(4)
の数バイトから成る命令コード(4)を取出してデコー
ドし、バス制御部に対し命令(4)のリード・オペラン
ド(4)先読みの為のメモリ・リード・アクセスを指定
する。従ってバス制御部は命令解読部から命令(3)の
リード・オペランド(3)先読みの為のメモリ・リード
・アクセス指定を受取った後に命令(4)のリード・オ
ペランド(4)先読みの為のメモリ・リード・アクセス
指定を受取り、バス制御部は命令解読部から受取った順
にリード・オペランド先読み動作を行うので、一連の命
令の流れとバス制御部に於けるリード・オペランド先読
みの順は一致している。
命令解読部において解読した命令がメモリ内又はI/Oに
ライト・オペランドを必要とする場合には、ライト・オ
ペランドの後書きが行なわれる。ライト・オペランドの
後書きはリード・オペランドと等価であるので、ここで
は簡単に説明する。ライト・オペランドを必要とする命
令の命令コードが命令解読部の命令コード・レジスタに
格納され、デコーダに入力されて解読されると、命令解
読部からアドレス生成部及びバス制御部の動作に関する
情報として、ライト・オペランドの後書き動作が指定さ
れる。命令解読部がアドレス生成部に対して指定するラ
イト・オペランド後書きの為の動作はライト・オペラン
ドのアドレス生成の為に必要な情報を命令解読部からア
ドレス生成部に提供してライト・オベランド後書き用ア
ドレスを生成し、生成されたライト・オペランド後書き
用アドレスをバス制御部に転送するという動作である。
命令解読部がバス制御部に対して指定するライト・オペ
ランドの後書きの為の動作は、アドレス生成部経由でバ
ス制御部に転送されたライト・オペラント後書き用アド
レスを、バス制御部のアドレス・バス・インターフェー
ス部内のライト・オペランド用アドレス・レジスタWAR
に格納し、ライト・オペランドを必要とする命令が命令
実行部に於て実行され、命令実行部が該命令の実行結果
を書出しテンポラリ・レジスタWDRに格納した後、ライ
ト・バス・サイクルを起動して、WARに格納されている
アドレスにWDRの内容を書出すという動作である。命令
解読部からバス制御部に対して指定するライト・オペラ
ンド後書きの為の動作では、ライト・バスサイクルの起
動のタイミングを指定しない。バス制御部では、命令解
読部からライト・オペランド後書きの為の情報を得、命
令実行部からの命令実行結果をWDRに格納した後、Aプ
ロセッサ外部のシステム・データ・バス及びシステム・
アドレス・バスの状態、条件に応じてメモリ・アクセス
又はI/Oアクセスが可能な時にライト・オペランドを書
出す。ライト・オペランド後書きの為のライト・バス・
サイクルの起動のタイミングは、命令実行部、命令実行
部から制御されず、バス制御部が他のユニットから独立
に制御している。
また、リード・オペランドの先読みの順が一連の命令の
流れに一致しているのと同様にライト・オペランドの後
書きの順も一連の命令の流れに一致している。
以上説明したように、高度なパイプライン構造を採用し
ているAプロセッサにおいて、リード・オペランドの先
読み及びライト・オペランドの後書きは、バス制御部内
の読込みテンポラリ・レジスタ、書出しテンポラリ・レ
ジスタと制御用のハードウェアにより実現されており、
命令の処理速度の異なる命令実行部とバス制御部とが滑
らかに命令を処理し、かつ命令の処理効率を向上させる
ものである。前述のように、一連の命令の流れと命令実
行部における命令の処理の順は一致しており、またリー
ド・オペランドの先読みの順及びライト・オペランドの
後書きの順も一連の命令の流れに一致している。しか
し、リード・オペランドの先読み及びライト・オペラン
ドの後書きのためのメモリ・アクセス又はI/Oアクセス
を行うバス制御部は、Aプロセッサの内部の状態及び外
部の状態に拘束されているので、バス制御部のメモリ・
アクセス又はI/Oアクセスのタイミングは、Aプロセッ
サの内部にある命令解読部や命令実行部からは制御され
ず、独立しているため、リード・オペランドの先読みの
為のリード・バス・サイクルは、リード・オペランドを
必要とする命令の命令コードが命令解読部に於てデコー
ドされてから、該命令の実行が終了するまでの間に行わ
れる事と、ライト・オペランドの後書きの為のライト・
バス・サイクルは、ライト・オペランドを必要とする命
令の実行が終了した後に行なわれるという事は明らかで
あるが、ある1つの為のリード・オペランド先読み又は
ライト・オペランド後書きの為のバス・サイクルが同時
起動されるかを予測する事は不可能である。
以下の説明のためにAプロセッサのアセンブリ言語の命
令の中から2つの命令についてニーモニックと動作を定
義する。
MOV d,sは転送命令である。dはディスティネーション
・オペランド、sはソース・オペランドであり、sで示
されるオペランドの内容がdで示されるオペランドへ転
送される。ディスティネーション・オペランドd、及び
ソース・オペランドsはAプロセッサ内のレジスタ資源
でも、メモリ内にあっても、I/Oポートであってもよ
い。またディスティネーション・オペランドd、ソース
・オペランドsは直接アドレッシングもレジスタ等を用
いる間接アドレッシングも可能である。従ってソース・
オペランドsとしてメモリ内のアドレスを指定すればMO
V d,sはメモリ内にリード・オペランドを必要とする命
令となり、ディスティネーション・オペランドdとして
メモリ内のアドレスを指定すればMOV d,sはメモリ内に
ライト・オペランドを必要とする命令となる。
JUMP adrは無条件分岐命令である。adrは該分岐命令の
分岐先アドレスである。JUMP adrの命令コードがAプロ
セッサ内の命令解読部に於てデコードされると、命令解
読部の指令により命令プリフェッチ部の命令キューの内
容の全てが棄てられ、バス制御部のプリフェッ用アドレ
ス・レジスタPARにadrに相当する値が格納されて、バス
制御部はPARの内容で示されるメモリ・アドレスから新
たに命令コードのプリフェッチを行う。
第11図は転送命令MOV d,sと無条件分岐命令JUMP adrを
用いて書いたプログラムの一部であるL1,L2,…L10
行番号であり、オペランドのM10,M11,M21,…,
M100,M101は全てメモリ内にあるものとする。またオペ
ランドのR2,R3,R6,R7は命令実行部内のレジスタに付
された番号である。オペランドM10,M11,…,M100,M
101は直接アドレッシングでも間接アドレッシングでも
よい。
表3は、第11図で用いられている命令ニーモニックと命
令コードとの対応表である。
表3において、例えば、MOV M10,M11というニーモニッ
クの命令はOPCD10,OPCD11の命令コードを待つ。ここ
で、OPCD10,OPCD11はそれぞれ1バイト巾の2進数のパ
ターンである。転送命令MOV d,sも無条件分岐命令JUMP
adrも2バイトの命令コードをもつものとする。
第12図は第11図のプログラムをアセンブルして得たオブ
ジェクト・コードをメモリに格納した時のメモリ内のロ
ケーションを示した図である。第11図中ADR10,ADR11
……,ADR100,ADR101はメモリのアドレスである。メモ
リは1バイト巾である。例えばメモリ内のADR10のアド
レスを持つ領域には命令コードOPCD10が格納されている
事が示されている。ADR10からADR51までのアドレスとAD
R60以降のアドレスは連続しているが、ADR51とADR60
連続しているとは限らない。
第13図はAプロセッサの内部の各部の動作のタイミング
の概要を示した図である。第13図においてゲート遅延、
アドレスとデータのタイミング関係の詳細等は省略して
いる。第13図にはAプロセッサ内部の各部での動作が行
なわれた時刻t1〜t17と、命令解読部での命令の解読の
順とキュー・ステータスの出力を表4の略号で示したも
のと、命令実行部で命令の実行の順と、バス制御部のア
ドレス・バス・インターフェース部にある2つのリード
・オペランド用アドレス・レジスタRAR1とRAR2とライト
・オペランド用アドレスレジスタWARの内容の変化と、
Aプロセッサの外部のシステム・アドレス・バス上及び
システム・データ・バス上の情報と、Aプロセッサ内部
のデータ・バス・インターフェース部の2つのリード・
オペランド用データ・レジスタRDR1,RDR2とライト・オ
ペランド用データ・レジスタWDRの内容の変化を示して
いる。ただしキュー・ステータスについては表4中の略
号のFとE1のみを示し他は省略した。
命令解読部の欄、命令実行部の欄のI1,I2,I3,JUMP,
I6,I7は第11図中に示した命令を区別する為の記号で、
例えばI1はMOV M10M11というニーモニックの転送命令で
ある。
命令解読部では時刻t1(以下t1,t2……と略す)におい
て命令I1(以下I1,I2……と略す)の2バイトから成る
命令コードを命令キューの先頭から順に取出し、I1の命
令解読を行う。I1はメモリ内にリード・オペランドM11
を必要とするので、命令解読部はアドレス生成部に対し
M11のアドレスRA1を生成してバス制御部に転送する事を
指令し、バス制御部に対しアドレス生成部から転送され
るRA1をアドレス・バス・インタフェース部のリード・
オペランド用アドレス・レジスタRAR1に格納して、メモ
リ内のアドレスRA1の領域に格納されているデータを先
読みしてデータ・バス・インタフェース部のリード・オ
ペランド用データ・レジスタRDR1に格納する事を指令す
る。また、I1はメモリ内にライト・オペランドM10を必
要としているので、アドレス生成部に対しM10のアドレ
スWA1を生成してバス制御部に転送する事を指定し、バ
ス制御部に対し、アドレス生成部から転送されるWA1
アドレス・バス・インターフェース部のライト・オペラ
ンド用アドレス・レジスタWARに格納し、I1の命令実行
部に於ける実行中にバス制御部のデータ・バス・インタ
ーフェース部のライト・オペランド用データ・レジスタ
WDRに転送され格納されるデータを、I1の命令実行部に
於ける命令実行後に、メモリ内のアドレスWA1の領域に
格納する事を指令する。I1の命令実行部での処理に必要
な情報をデコード情報キューの最後尾に格納してI1の命
令解読を終了する。t2から命令キューの先頭からI2の2
バイトから成る命令コードを取出して命令解読を行う。
I2はメモリ内にリード・オペランドM21を必要とするの
で、I1の時と同様に、M21のアドレスRA2をアドレス生成
部に於て生成させてバス制御部内にRAR2に格納し、メモ
リ内のアドレスRA2の領域からのデータの先読みを指令
する。I2の命令解読はt6に於て終了する。t6からはI3
命令解読を行う。t6から命令キューの先頭からI3の2バ
イトから成る命令コードを取出して命令解読を始める。
I3もメモリ内にリード・オペランドM31を必要とするの
で、I1,I2の時と同様に、M31のアドレスRA3をアドレス
生成部に於て生成させてバス制御部内の2本のリード・
オペランド用アドレス・レジスタのうち既にリード・オ
ペランドの先読みが行なわれ、内容が不要になっている
方のレジスタに格納する。本例の場合は、RAR1にRA3
格納される。後述するように、t3に於てバス制御部が、
t1に於てRAR1に格納したI1のリード・オペランド用アド
レスRA1を用いてI1のリード・オペランドの先読みの為
のメモリ・リード・バス・サイクルを起動し、メモリ内
のアドレスRA1のデータRD1をRDR1に格納しているため、
t6に於てRAR1の内容RA1は既に不要となっている。同様
にt5に於てRAR2の内容RA2を用いてI2のリード・オペラ
ンド・先読みの為のメモリ・リード・バス・サイクルが
起動されてメモリ内のアドレスRA2のデータRD2がRDR2
格納されているためt6に於てRAR2の内容RA2も既に不要
になっており、RAR2も実質的には空になっている。t9
於てI3の命令解読を終了する。t9から命令JUMPに対する
命令解読を開始する。t9から命令キューの先頭から順に
2バイトから成るJUMPの命令コードを取出して命令解読
を行う。JUMPは無条件分岐命令であり、JUMPの命令コー
ドが命令解読部に於て解読されると、命令キューの内容
を全て無効にする。JUMPの命令コード中に分岐先アドレ
スをもつため命令解読部で該分岐先アドレスを解読し、
アドレス生成部に対し該分岐先アドレスを解読して得た
情報を転送して該分岐先アドレスを生成しバス制御部に
転送する事を指令し、バス制御部に対してアドレス生成
部から転送される該分岐先アドレスをプリフェッチ用ア
ドレス・レジスタPARに格納した後PARの内容のアドレス
から命令コードのプリフェッチを、リード・オペランド
の先読み及びライト・オペランドの後書きに優先して行
う事を指定する。JUMPに関し命令実行部での実行はない
が、命令実行部に対し“実行なし”という情報JUMPのデ
コード情報としてデコード情報キューの最後尾に格納し
t12に於て無条件分岐命令JUMPの命令解読を終了する。t
12からt13までは命令解読部は、JUMP命令解読時に空に
なった命令キューに、JUMP命令による分岐先からの新た
な命令コードのプリフェッチによって命令コードが1命
令分以上蓄えられるまで動作を停止して待ち合せ状態に
ある。t13から命令I6の命令解読を行う。命令キューの
先頭から2バイトから成るI6の命令コードを取出してI6
を命令解読し、I6に必要なメモリ内のリード・オペラン
ドM61に対するアドレスRA6をアドレス生成部で生成し
て、バス制御部内のRAR2に格納し、RAR1の内容RA6を用
いてI6の為のメモリ内のリード・オペランドの先読みを
指令する。I6に関して命令実行部での命令実行に必要な
情報をデコード情報キューの最後尾に格納してt15に於
てI6の命令解読を終了する。t15からI7の命令解読を始
める。命令キューの先頭から2バイトから成るI7の命令
コードを取出してI7の命令解読を行う。I7にはメモリ内
にライト・オペランドM70が必要である為、命令解読部
が、アドレス生成部に対しM70に対するアドレスWA7を生
成してバス制御部へ転送するよう指令し、バス制御部に
対しアドレス生成部から転送されるアドレスWA7をライ
ト・オペランド用アドレス・レジスタWARに格納し、I7
の命令実行部に於ける処理の後WDRに転送され格納され
るデータをWARの内容のアドレスWA7を用いてメモリに書
く事を指令する。このように命令解読部に於てはt1から
I1の命令解読が開始され、I2はt2から、I3はt6から、JU
MPはt9から、I6はt13から、I7はt15からそれぞれ命令解
読が開始される。キュー・ステータスは、1命令分の命
令コードの最初の1バイトが命令キューから命令解読部
に取出されると第4表中の略号のFで表わされる3ビッ
ト・コードをAプロセッサの外部に出力するので、t1
t2,t6,t9,t13,t15の直後にキュー・ステータスがF
を示している。また、命令解読部に於てt9から無条件分
岐命令JUMPの命令コードの命令解読が開始されると、t
10に於て命令キューの内容が全て無効にされるので、t
10に於てキュー・ステータスとして第4表中の略号のE1
に相当する3ビットコードがAプロセッサの外部に出力
される。
命令実行部ではt4に於いてデコード情報キューの先頭に
あったI1のデコード情報を取出し、I1の命令実行を行
う。I1はメモリにあるリード・オペランドM11をメモリ
内のライト・オペランドM10に転送する命令である。A
プロセッサはリード・オペランドの先読み機能を有して
おり、番13図の例においては、I1の命令実行部に於ける
命令実行の開始される時刻t4に先立ってt3に於いてAプ
ロセッサ部にあるI1のリード・オペランドM11を読出す
為のメモリ・リード・バス・サイクルが起動され、該メ
モリ・リード・バス・サイクル期間中に得られるM11
対応するデータRD1がRDR1に格納されるので、t4に於い
てI1の命令実行が開始された時には、I1のリード・オペ
ランドM11は既にAプロセッサ内部に存在する。従っ
て、I1の命令実行では、リード・オペランドM11を得る
為のAプロセッサ外部へのアクセスが不要になり、Aプ
ロセッサ内部のレジスタRDR1にアクセスすればM11が得
られるので、I1の命令実行時間が短縮される。また、I1
は、メモリ内にライト・オペランドM10が必要である
が、Aプロセッサがライト・オペランド後書き機能を有
しているので、第13図の例においてI1の命令実行部に於
ける命令実行がt7に於いて終了した時には、I1のAプロ
セッサ外部のライト・オペランドM10に対応するデータW
D1がAプロセッサ内部のWDRに格納されており、I1のメ
モリ内へのライト・オペランドM10の書込みは、I1の命
令実行部での命令実行の終了したt7以後のt8に於いてA
プロセッサ外部にあるI1のライト・オペランドM10の書
出しの為のメモリ・ライト・バス・サイクルが起動さ
れ、t8でAプロセッサのWDRに格納されている、I1のラ
イト・オペランドM10に対応するデータWD1がメモリ内の
所定の領域に格納される事によってなされる。従ゃて、
命令実行部に於けるI1の命令実行期間中には、メモリ内
のリード・オペランド読出し及びメモリ内へのライト・
オペランド書出しの為のバス・サイクル期間が含まれ
ず、リード・オペランド、ライト・オペランドともに必
要な時にはAプロセッサ内部のレジスタRDR1,WDRにアク
セスすればよいので、I1の命令実行時間が大幅に短縮さ
れる。
I2の命令実行部に於ける命令実行はt7から開始され、t
11で終了する。I2が必要とするメモリ内のリード・オペ
ランドM21は、I2の命令実行部での命令実行開始時刻t7
に先立ってt5に於て先読みされ、Aプロセッサ内部のRD
R2に格納されている。I2の命令実行部に於ける命令実行
期間中t10で、命令解読部で解読した命令が無条件分岐
命令JUMPであったため、命令キューの内容が全て無効に
され、JUMPの命令コード中に指定された分岐先からの新
たな命令コード・プリフェッチ動作が開始されるという
状況が発生しているが、命令実行部におけるI2の命令実
行は全く影響されない。
I3の命令実行部に於ける命令実行はt11から開始され、t
17で終了する。前記t10から開始されるJUMP命令解読に
起因する分岐先からの新たな命令コード・プリフェッチ
動作がt13まで外部バス占有の最高優先権を得て続くた
め、I3の必要とするメモリ内のリード・オペランドM31
の先読みを、I3の命令実行部に於ける命令実行開始時刻
t11以前に行う事ができない。従って命令実行部に於け
るI3の命令実行はt14でT3のリード・オペランド先読み
がバス占有権を得で、M31読出しの為のメモリ・リード
・バス・サイクルを起動してメモリからAプロセッサの
内部のRDR1にM31に対応するデータRD3を格納し、命令実
行部がRDR1にアクセス可能になるまで待ち合せを行う。
その後、I3のリード・オペランドM31に対応するデータR
D3をRDR1から命令実行部に取出してI3の命令実行を行い
t17においてI3の命令実行を終了する。
JUMPの命令実行部に於ける命令実行はt17から開始され
る。JUMPの命令実行部における命令実行は実質的には動
作なしである。t16に於いてI6が必要とする、メモリ内
のリード・オペランドM61の先読みの為のメモリ・リー
ド・バス・サイクルが起動され、M61に対応するデータR
A6がAプロセッサ内のRDR2に格納されている。
命令解読部に於てI1,I2,I3…の順に命令解読が行なわ
れると、命令実行部に於てもI1,I2,I3…の順に命令実
行が行なわれるが、例えば命令解読部に於てI1の命令解
読が開始される時刻t1から命令実行部に於てI1の命令実
行が開始される時刻t4までの時間はAプロセッサ内部及
び外部の諸条件により定まり、一般には予測し難い。ま
た、命令解読部に於てメモリ等Aプロセッサ外部にオペ
ランドを必要とする命令がI1,I2,I3の順に命令解読さ
れると、バス制御部に於てI1のオペランドのアクセス、
I2のオペランドのアクセス、I3のオペランドのアクセス
の順にAプロセッサ外部にアクセスする。例えば、I1
I2,I3はともにメモリ内にリード・オペランドRA1,R
A2,RA3を必要とし、バス制御部に於てRA1,RA2,RA3
順にメモリ・リード・バス・サイクルが起動される。前
述したようにI3のリード・オペランドの為のメモリ・リ
ード・バス・サイクルは、命令実行部に於けるI3の命令
実行開始時刻t11よりも時間的に後になってt14に於て起
動されている事からも判るように、Aプロセッサの外部
にリード・オペランドを必要とする命令のリード・オペ
ランドのアクセスの為のバス・サイクルが起動される時
刻は該命令の命令解読部での命令解読開始時刻と該命令
の命令実行終了時刻の間にあるが、Aプロセッサ内部及
び外部の諸条件に影響されるため一般には予測し難い。
Aプロセッサの外部にライト・オペランドを必要とする
命令の場合についても同様で、該命令のライト・オペラ
ンドのアクセスの為のバス・サイクルが起動される時
刻、例えばI1のライト・オペランドM10のアクセスの為
のバス・サイクルが起動される時刻t8、は該命令の命令
実行部での命令実行終了時刻の後にあるが、Aプロセッ
サの内部及び外部の諸条件に影響されるため一般には予
測し難い。
以上、高度なパイプライン構造を実現しているAプロセ
ッサについて、Aプロセッサのハードウェアの概略、A
プロセッサ内部の各部分の動作の概略、特にAプロセッ
サの命令先読み機能、リード・オペランドの先読み機
能、ライト・オペランドの後書き機能を説明した。
次にAプロセッサを用いてソフトウェアを開発する事を
考える。前記8086プロセッサを用いてソフトウェアを開
発する際には命令トレース法により開発中のソフトウェ
アのデバグを行ったが、Aプロセッサを用いてソフトウ
ェアを開発する際にも8086プロセッサの場合と同様にし
て命令トレース法及び命令トレース装置を用いて開発す
るソフトウェアのデバグを用い、ソフトウェアの開発す
るソフトウェアのデバグを用い、ソフトウェアの開発効
率を向上させる。
Aプロセッサの命令トレース法は、プロセッサの命令ト
レース法と同様である。Aプロセッサ用命令トレース装
置にはAプロセッサが一連の命令を実行している間にア
ドレス・バス上の情報、データ・バス上の情報、必要な
制御信号、ステータス信号をサンプリングした1フレー
ムを次々に時系列データとして蓄積するトレース・バッ
ファ・メモリ、ブレーク・ポイント設定機能、トレース
・バッファ・メモリ内の情報の編集機能等が必要であ
る。Aプロセッサ用命令トレース装置を用いてブレーク
・ポイントを設定し、Aプロセッサに一連の命令を実行
させて例えばアドレス・バスに新しい情報が出力された
時やステータス信号が変化した時等に1フレームをトレ
ース・バッファ・メモリ内に取込む。ブレーク・ポイン
トに於てAプロセッサの動作が停止した後、トレース・
バッファ・メモリの内容を編集し、Aプロセッサが実際
に実行した順に命令のニーモニックを得、又メモリやI/
Oアクセスを行った命令については実際にアクセスした
アドレスとデータとを命令ニーモニックと対応させてユ
ーザに示さなければならない。
第11図に示したプログラムが、アセンブルされて第12図
に示すようにメモリ内に格納されているとして、Aプロ
セッサが第12図中のメモリ・アドレスADR10の近傍にあ
る一連の命令を実行した時に、Aプロセッサ用の命令ト
レース装置を用いて命令トレースを行う場合について説
明する。表5は、Aプロセッサ用の命令トレース装置の
トレース・バッファ・メモリの内容の一部のダンプ・リ
ストである。
表5において、アドレスの欄のRA1,ADR41……は、Aプ
ロセッサがアドレス・バス上に出力したアドレス、デー
タの欄のRD1,OPCD41……はAプロセッサの入出力の為
にデータ・バス上に現れたデータである。BUS−STSの欄
はAプロセッサがバス・ステータス端子に出力したバス
・ステータスのコード及びMMIO信号、RDWR信号を 表6に示した略図でF,MR,MWのみを表わしている。QSTS4
の欄のH,Lは、AプロセッサがQSTS4端子に出力した信号
がハイ・レベル(H)であったか、ローレベル(L)で
あったかを示している。QSTS3-0の欄はAプロセッサが
キュー・ステータス端子に出力したキュー・ステータス
の信号を第4表に示した略号でF,S,E1のみを表わしてい
る。右端の欄は、トレース・バッファ・メモリの内容で
はなく、第13図と表5との対応をつける為に設けた欄
で、t2は第13図中のt2に対応している。まず表5に示し
たトレース・バッファ・メモリの内容のダンプ・リスト
からAプロセッサが実際に実行した命令をAプロセッサ
が実行した順に命令ニーモニックを得る方法を簡単に説
明する。
本命令トレースの基準として、プロセッサの命令トレー
ス法と同様にキュー・ステータスが、命令キューの内容
が全てパージされた事を示す時点を選ぶ。表5ではフレ
ーム021に於てQSTS3-0がE1(命令キューの内容パージ)
を示しているので、表5のトレース・バッファ・メモリ
から命令トレースを行う基準としてフレームを選ぶ。フ
レーム021でQSTS3-0がE1を示した後、最初にQSTS3-0
Fを示すのはフレーム031であり、フレーム031の次にQS
TS3-0がFを示すのはフレーム035である。フレーム031
とフレーム035の間でQST3-0がSを示すのはフレーム032
のみであるので、フレーム031で命令コードの第1バイ
ト目が命令キューから取出されて命令解読部へ転送され
た命令は2バイト長の命令コードを持つ命令である。フ
レーム031で命令コードの第1バイト目が命令キューか
ら取出された命令を仮に命令Iと名付ける。次に命令I
の命令コードを選び出す。フレーム021で命令キューの
内容が全てパージされた後、最初の命令コード・フェッ
チはフレーム023とフレーム024である。フレーム023で
出力したプリフェッチ用アドレスに対応するメモリ内の
領域から出力された命令コードはフレーム024のデータ
欄のOPCD60である。フレーム023及びフレーム024により
命令Iの第1バイト目の命令コードはOPCD60である事が
わかる。フレーム023及び、フレーム024の次の命令コー
ド・フェッチはフレーム025及びフレーム026で行なわれ
ており、命令コードOPCD61がAプロセッサ内に取込まれ
ているので、2バイト長の命令コードをもつ命令Iの命
令コードはOPCD60,OPCD61である。2バイト長の命令コ
ードOPCD60,OPCD61を逆アセンブルするとMOV M60,M61
というニーモニックが得られるので、命令Iの命令ニー
モニックはMOV M60,M61である。以下同様な操作を繰返
すと、フレーム035で命令コードの第1バイト目をまた
フレーム036で命令コードの2バイト目を命令キューか
ら取出された命令は2バイト長の命令コードを持つ命令
で、命令コードは命令Iのプリフェッチの次の2回のプ
リフェッチつまり027,028及びフレーム029,030での命令
コードであるので、OPCD70,OPCD71であり、逆アセンブ
ルするとMOV M70,M71を得る。
次にAプロセッサが実行した命令がAプロセッサ外部の
メモリ又はI/Oにオペランドを持つ場合には、該オペラ
ンドの実際の値、つまりどのアドレスに対しどのような
データをアクセスしたかをトレースしなければならな
い。命令Iを例として説明する。命令Iは、メモリ内に
リード・オペランドM61と、ライト・オペランドM60を必
要とする転送命令である。Aプロセッサのリード・オペ
ランド先読み機能により命令Iのリード・オペランド
が、命令Iの命令解読部に於ける命令解読命令Iの命令
実行部に於ける命令実行終了前の間にメモりから読出さ
れる。しかし命令IのMOV M60,M61のリード・オペラン
ドのアドレスが間接アドレッシングにより得られるとす
れば、命令Iのリード・オペランドのアドレスの値が命
令Iの命令コード中には陽に現われてこないため、表5
のダンプ・リスト中のメモリ・リード(BUS−STSがMRを
示す)を示しているいくつかのフレームの中のどのフレ
ームでのメモリ・リードが命令Iのリード・オペランド
の読込みの為のメモリ・リードを行っているフレームで
あるかを特定する事ができない。表5には、フレーム00
3と004のメモリ・リード、フレーム010と011のメモリ・
リード、フレーム033と034のメモリ・リード、フレーム
037と039のメモリ・リードの4つがある。フレーム003
と004のメモリ・リードとフレーム010と011のメモリ・
リードは命令Iのデコードが行なわれるフレーム031よ
りも時間的に前にあるので、フレーム003と004のメモリ
・リードと、フレーム010と011のメモリ・リードは命令
Iのリード・オペランドをメモリから読出す為のメモリ
・リード・バス・サイクルではない事は明白である。命
令Iのデコードが行なわれるフレーム031よりも時間的
に後にあるフレーム033と034でのメモリ・リード、フレ
ーム037と039でのメモリ・リード、及び、表5には示さ
れていないフレーム39以降に現われるであろうメモリ・
リードのフレームが命令Iのリード・オペランドのメモ
リからの読出しの為のメモリ・リード・バス・サイクル
である可能性があるが、その中のどのフレームが命令I
のリード・オペランドの為のメモリ・リード・バス・サ
イクルであるかを特定する事ができない。従って、命令
Iのニーモニックを得る事はできても、命令Iがどのよ
うな値のリード・オペランドをどのアドレスから得たか
を示す情報がないため、命令Iの動作の完全な復元がで
きない。
〔発明が解決すべき問題点〕
以上説明してきたように、命令コード・プリフェッチ機
能のみを有する情報処理装置に対し、命令実行動作を該
情報処理装置外部に設けた手段により追跡する事が可能
になるように情報処理装置から内部の命令コード・プリ
フェッチ・キューの状態を示す情報とバス・サイクルの
種類を示す情報の該情報処理装置の外部への出力を必要
充分とする従来の命令トレース方法は、多段パイプライ
ン構造を有し、命令コード・プリフェッチ機能、リード
・オペランド先読み機能、ライト・オペランド後書き機
能を有する高性能な情報処理装置に対しては何ら効果が
ないという欠点を有していた。
〔問題点を解決するための手段〕
本発明は多段ステージのパイプライン構造を実現してい
るマイクロプロセッサにおいて、マイクロプロセッサ内
部に所定の命令の命令コードが解読されると出力が変化
するステータス・フリップ・フロップと、該ステータス
・フリップ・フロップの出力をマイクロプロセッサのバ
ス・サイクル期間のアドレスの出力タイミングに同期し
てマイクロプロセッサ外部に出力する手段と、マイクロ
プロセッサ外部にマイクロプロセッサの入出力端子に現
われる情報を逐次時系列データとして蓄える手段とを設
け、マイクロプロセッサ内部にあるステータス・フリッ
プ・フロップからマイクロプロセッサ外部へ出力される
情報を参照して、マイクロプロセッサのバス・サイクル
がステータス・フリップ・フロップの出力を変化させる
所定の命令以前の命令に付随するバス・サイクルか、あ
るいは所定の命令以後の命令に付随するバス・サイクル
かを区別して時系列データを編集するようにしたことを
特徴とする。
〔実施例〕
第1図は本発明の1実施例のブロック図である。101は
マイクロプロセッサチップ、102はプロセッサ102のアド
レス・バス信号路、103はプロセッサ101のデータ・バス
信号路、104はプロセッサ101内のデータ・バス、105は
プロセッサ101の命令プリフェッチ部で、命令プリフェ
ッチ部105内にはFIFO構造の数バイトの命令コードを格
納する命令キューと、命令キュー制御回路を有する。10
6は命令プリフェッチ部内の命令キューの先頭にある命
令コードを命令解読部107に転送する為の信号路、107は
命令解読部で、命令解読部107内には数バイトの解読中
の命令コードを格納する命令コード・レジスタと命令デ
コーダと命令解読部の動作を制御するシーケンサ等から
成る。108は命令解読部に於てデコードされた結果得ら
れる情報の中で命令実行部110の動作を指定する情報を
格納するFIFO構造のデコード情報キュー、109はデコー
ド情報キュー、109はデコード情報キュー108からの情報
を命令実行部110に伝達する為の信号路、110は命令実行
部で、算術論理演算回路、各種レジスタ等のハードウェ
アを有する。111は命令解読部107からの情報及び指令に
よりアドレス計算を行うアドレス生成部、112はアドレ
ス生成部111で生成されたアドレスをバス制御部113のア
ドレス・バス・インターフェース部に伝達する為の信号
略である。113はプロセッサ101のバス制御部である。バ
ス制御部113は機能的に大別してアドレス・バス・イン
ターフェース部、データ・バス・インターフェース部、
バス・サイクル制御部の3つの部分に分けられる。アド
レス・バス・インターフェース部はプロセッサ101のア
ドレス・バス102からプロセッサ111を含む情報処理シス
テム・アドレス・バス上に定められたアドレスを出力す
る機能をもち、各種アドレスを格納しておくアドレス・
レジスタ群119等のハードウェアを有する。データ・バ
ス・インターフェース部はプロセッサ101のデータ・バ
ス103を介しシステム・データ・バスとプロセッサ101の
内部とのデータの授受を司る部分で、データ・バス103
を介しシステム・データ・バスからデータを取込んで一
時的に蓄えておく読込みテンポラリ・レジスタ1116、ま
たシステム・データ・バス上にデータを出力する際にデ
ータ出力に先だってプロセッサ101内で生成されたデー
タを一時蓄えておく書出しテンポラリ・レジスタ117等
のハードウェアを有する。バス制御部113内のバス・サ
イクル制御部はプロセッサ101のバス・サイクル制御、
バス・ステータス出力制御プロセッサ101の外部端子か
らの信号の入出力制御の機能を有する。115は命令解読
部107がバン制御部113に対し動作を指定する情報を供給
し、又バス制御部113が命令解読部107に対しバス制御部
113の内部状態の情報を伝達する為の信号路、114は命令
解読部107がアドレス生成部111に対しアドレスの生成に
必要な情報とアドレス生成部111の動作を指定する情報
を供給し、又アドレス生成部111が命令解読部107に対し
アドレス生成部111の内部状態の情報を伝達する為の信
号路をまとめて示したものである。118は命令実行部110
内で生成したデータをバス制御部113内のデータ・バス
・インターフェース部にある書出しテンポラリ・レジス
タ117に転送し、又バス制御部113内のデータ・バス・イ
ンターフェース部にある読込みテンポラリ・レジスタ11
6から命令実行部110に転送する為の信号路である。120
はプロセッサ101のバス・ステータス信号路、121はメモ
リI/O信号(MMIO)やリード・ライト信号(RDWR)等の
プロセッサ101の外部へ出力する信号路をまとめて示し
たものである。122はプロセッサ101のキュー・ステータ
ス信号路である。123,124,125,126は本発明を実施する
為に新たに設けられたハードウェアである。123は命令
解読部107内に設けられたトグル・フリップ・フロップ
で、命令解読部に於て分岐命令が解読される度に出力が
反転する回路である。124はトグル・フリップ・フロッ
プ123の出力信号用の信号線、125はバス制御部113内の
アドレス・バス・インターフェース部内のアドレス・レ
ジスタ群の個々のレジスタに1対1で対応するレジスタ
群である。126は、レジスタ群125の出力の中から選ばれ
た信号をプロセッサ101外に出力する信号路である。
本実施例は、第8図に示したAプロセッサに、トグル・
フリップ・フロップ123、信号路124、レジスタ群125、
出力信号路126を付加したものになっているので命令コ
ード・プリフェッチ機能、リード・オペランド先読み機
能、ライト・オペランド後書き機能を初めとするAプロ
セッサの全機能が本実施例のプロセッサ101の機能に含
まれている。
第2図は、プロセッサ101内のバス制御部内のアドレス
・バス・インターフェース部の主要部分を示した図であ
る。201は第1図の信号路112に相当し、信号路201は不
図示のアドレス生成部に於て生成されたアドレスを転送
する信号路である。205,208,211,214はアドレス・レジ
スタ群である。205はプリフェッチ用・アドレス・レジ
スタ(PAR),208はリード・オペランド用アドレス・レ
ジスタ(RAR1),211はリード・オペランド用・アドレス
・レジスタ(RAR2),214はライト・オペランド用アドレ
ス・レジスタ(WAR)である。206,209,212,215は第1図
119に対応し206,209,212,215はそれぞれレジスタ205,20
8,211,214のラッチ信号である。207はレジスタ205の出
力信号路、210は208の出力信号路、213はレジスタ211の
出力信号路、216はレジスタ214の出力信号路である。21
7は本発明で新たに付加された信号路であり第1図の信
号路124に対応する。219,221,223,225はそれぞれレジス
タでレジスタ219はレジスタ205の、レジスタ221はレジ
スタ208の、レジスタ223はレジスタ211の、レジスタ225
はレジスタ214のそれぞれ拡張した部分と考えられる。2
20はレジスタ219の、222はレジスタ221の224はレジスタ
223の、226はレジスタ225の出力信号路である。202はマ
ルチプレクサでレジスタ205から出力されるアドレスと
レジスタ208から出力されるアドレスレジスタ211から出
力されるアドレスとレジスタ214から出力されるアドレ
スの4つのアドレスと、レジスタ219から出力される信
号とレジスタ221から出力される信号とレジスタ223から
出力される信号とレジスタ225から出力される信号の4
つの信号を入力とし、選択信号204で4つのアドレスの
中から1つのアドレスを選んでアドレス出力信号路203
に出力すると同時に、選ばれたアドレスの格納されてい
たレジスタに対応する該レジスタの拡張部分からの出力
信号を信号路218に出力する。例えば選択信号204によっ
てレジスタ208から出力されたアドレスが選ばれた時に
は信号路218上にはレジスタ222の内容が選ばれて出力さ
れる。信号路204,206,209,212,215は不図示の命令解読
部に於て生成され第1図の信号路115を介してバス制御
部に送られてくる信号である。信号路203は第1図のア
ドレス・バス102に対応し信号路218は第1図の126は対
応する。PAR205のみがアドレスの自動更新機能を有す
る。以下の説明の為にPAR205の拡張した部分で、信号路
217上の情報を蓄える部分219をPAT,RAR1に対し221をRAT
1,RAR2に対し223をRAT2,WARに対し225をWATと名付け
る。
第3図は第13図に対応するタイミング・チャートを模式
化した図である。従来例を比較し易いように、第3図の
タイミング・チャートは、表3に示したアセンブリ言語
の命令ニーモニックと命令コードを持つ命令を用いて書
いた第11図のプログラムがアセンブルされて第12図に示
すようにメモリ内に格納されているものと仮定し、プロ
セッサ101が第12図中のメモリ・アドレスADR10の近傍に
ある一連の命令を実行した時のプロセッサ101の内部及
び、プロセッサ101の外部バス端子に表われる情報の時
間的相対関係を示している。プロセッサ101は前記Aプ
ロセッサの主要機能を全て含んでいるので、第3図の命
令解読部、キュー・ステータス、命令実行部の命令処理
のタイミング及び、RAR1,RAR2,WAR,RDR1,RDR2,WDRの
レジスタの内容の変化するタイミング、アドレス・バ
ス、データ・バス上に現われる情報の変化するタイミン
グ等は第13図に示した各タイミングと同様である。ここ
では本発明により、新たに付加された機能の動作につい
て説明する。
第13図中、トグル出力とは第1図中の命令解読部107内
に本発明により新たに設けられたトグル、フリップ・フ
ロップ123の出力信号用の信号線124上の信号レベルを示
しており、命令I1の命令解読部に於ける命令解読が開始
される時刻t1ではハイ・レベル(H)にあるものを仮定
する。
JUMPの2バイトの命令コードがt9から命令解読部に於て
命令解読が開始されt10でJUMPが無条件分岐命令である
事が判明すると、該トグル・フリップ・フロップの出力
が反転しロー・レベル(L)になる。t10の後、早くて
も第3図のt17までは、該トグル・フリップ・フロップ
の出力はロー・レベルにある。t6でプロセッサ101外部
のメモリにリード・オペランドM31を必要とする命令I3
が命令解読部に於て命令解読されると、命令解読部はア
ドレス生成部に対しI3のリード・オペランドM31のアド
レスRA3を生成しバス制御部に転送する事を指令する。
同時に命令解読部はバス制御部に対しアドレス生成部か
ら転送されるリード・オペランドM31のアドレスRA3をア
ドレス・バス・インターフェース部内のリード・オペラ
ンド用アドレス・レジスタRAR1に格納する事を指令す
る。バス制御部に対する該指令は、第2図中の信号路20
1にアドレス生成部がRA3を出力している間にRAR1(20
8)のラッチ信号路206上のラッチ信号をアクティブにす
る事によってなされる。ラッチ信号路206上のラッチ信
号がアクティブになると、RAR1内に信号路201上のRA3
格納されるのと同時に、RAT1(221)に217上のt6に於て
ハイ・レベルにある信号が格納される。つまり、第3図
の模式的タイミングチャートのt6に於て信号路201上の
情報であるRA3をサンプリングしてRAR1に格納するのと
同時に、命令解読部内に設けたトグル・フリップ・フロ
ップ123の出力をサンプリングしてRAT1に格納する。t10
に於てトグル・フリップ・フロップ123は無条件分岐命
令の命令コードが命令解読部に於て命令解読される事に
より出力を反転した後、命令解読部に於て命令解読され
る事により出力を反転した後、命令解読部に於てt13
ら命令解読が開始される命令I6もプロセッサ101外部に
リード・オペランドM61を必要とする命令であり、前記I
3の場合と同様にt13に於て、アドレス生成部に於て生成
されるI6のリード・オペランドM61のアドレスRA6をRAR2
に格納するのと同時にロー・レベルにある前記トグル・
フリップ123の出力をサンプリングしRAT2に格納する。t
14に於てバス制御部はRAR1に格納されているI3のリード
・オペランドM31のアドレスRA3を用いてM31の先読みの
為のメモリ・リード・バス・サイクルを起動する。第2
図でt14において信号路204上の選択信号により、マルチ
プレクサ202の2つの出力信号路の出力としてRAR1から
出力されているI3のリード・オペランドM31のアドレスR
A3を選択してアドレス・バス203に出力し同時にRAT1
ら出力されているハイ・レベルにある信号を選択して信
号路218に出力する。第1図では、t14に於てアドレス・
バス102にRA3が出力され、同時に信号路126にはRAT1
格納されている。ハイ・レベルの信号が出力される。第
3図のt14に於て第3図のアドレス・バスの欄にRA3が、
また第1図の信号路126、第2図の信号路218に対応する
第3図のATの欄にハイ・レベル(H)の信号が出力され
ている。次にt16に於て、バス制御部はRAR2に格納され
ている。I6のリード・オペランドM61のアドレスRA6を用
いてM61の先読みの為のメモリ・リード・バス・サイク
ルを起動する。即ちt16に於て第1図の102、第2図の20
3、第3図のアドレス・バスの欄にはI6のリード・オペ
ランドM61のアドレスRA6が出力され、同時に第1図の信
号路6、第2図の信号路218、第3図のATの欄には、RAT
2に格納されているロー・レベルの信号が出力されてい
る。また、命令解読部に於いてt10で命令解読された命
令コードが無条件分岐命令である事が判明すると、命令
プリフェッチ部の命令キューにプリフェッチされていた
命令コードが全て無効にされ、Aプロセッサと同様にプ
ロセッサ101でも無条件分岐命令の命令コード内に指定
されている分岐先アドレスからの命令コードのプリフェ
ッチが外部バス占有の最高優先権を得る。t10で命令解
読部107がアドレス生成部111に対し、JUMP命令の命令コ
ード内に指定されている分岐先を示す情報を信号路114
経由で伝達して、該分岐先アドレスADR60の生成しバス
制御部に転送する事を指令し、バス制御部113に対しア
ドレス生成部から転送されてくる該分岐先アドレスADR
60をPARに格納して、PARの内容を用いて命令コードのプ
リフェッチ動作を開始する事を指令する。ここで、アド
レス生成部111からバス制御部113に対して転送されるJU
MP命令による分岐の分岐先アドレスADR60をPAR205に格
納する際同時にPAR205の拡張部分PAT219には、命令解読
部内のトグル・フリップ・フロップ123の出力信号路217
上の信号が格納される。前述のようにPAR205はアドレス
自動更新機能を有しt10に於てJUMP命令による分岐の分
岐先アドレスADR60が格納された後、命令コードのプリ
フェッチの為の1回のメモリ・リード・バス・サイクル
が終了する度にPAR205の内容が更新されるが、PAT219
内容はPAR205の該アドレス自動更新機能とは無関係に、
次に命令解読部107からの指令によりPAR205に新たなア
ドレスが設定される時まで不変である。バス制御部113
内のアドレス・バス・インターフェース部のマルチプレ
クサ202が選択信号路204上の情報によりプリフェッチの
為にPAR205を選択してPARの内容をアドレス・バス端子2
03に出力するとともに、PAR219を選択してPATの内容を
信号路218上に出力する。第3図の例ではt10に於てロー
・レベルにある信号路217上の信号をPAT219にサンプリ
ングしているため、t10からt13まで続く分岐命令直後の
命令コード・プリフェッチ動作で信号路126から、アド
レスと同じタイミングで出力される信号ATはロー・レベ
ル(L)にある。
本実施例では、無条件分岐命令の命令コードが命令解読
部に於て命令解読されると、命令解読部内のトグル・フ
リップフロップ123の出力が変化するが、ここでトグル
・フリップ・フロップ123の出力を変化させる要因とし
て無条件分岐命令を選んだ理由は、無条件分岐命令は通
常のプログラムでは統計的に約10ステップに1回は用い
られているためである。すなわち、稀にしか用いられな
い命令をトグル・フリップ・フロップ123の出力を変化
させる要因として用いると、命令トレース装置の有限な
トレース・バッファ・メモリ内で1度もATが変化しない
事が生ずると、本命令トレースが不可能になる。従っ
て、数〜数10ステップ1回現われる命令、もしくはその
ステップサイクルで強制的に挿入できる命令を用いる方
がよい。
以上高度なパイプライン構造を実現しているAプロセッ
サに本発明により新たに付加されたハードウェアの動作
について説明した。次に本発明を実施しているプロセッ
サ101を用いてソフトウェアを開発する際に用いる命令
トレース法について説明する。本発明の本命令トレース
法は、前述したAプロセッサの場合の命令トレース法
に、本発明により新たに付加されたハードウェアから得
られる情報を追加する事により、前述のAプロセッサの
場合の命令トレース法の有していた重大な問題点を根本
的に解決する事ができる。
本発明の命令トレース法による命令トレースを行うため
の命令トレース装置には、前述のAプロセッサの命令ト
レース装置と同様に、プロセッサ101が一連の命令を実
行している間にアドレス・バス上の情報、必要な制御信
号、ステータス信号及び前記信号路126から出力される
信号をサンプリングし次々に時系列データとして蓄積す
るトレース・バッファ・メモリ、ブレーク・ポイント設
定機能、トレース・バッファ・メモリ内の時系列情報の
編集機能等が必要である。本発明の命令トレース法が命
令トレースの基準としてトレース・バッファ・メモリ内
でキュー・ステータスが命令キューの内容が全て無効に
された事を示す時点を用いている事及び、本命令トレー
ス法の該基準点からトレース・バッファ・メモリ内の時
系列データを追跡して該基準点の直後に実行された1命
令分の命令コードを選び出して逆アセンブルして該基準
点直後に実行された命令のニーモニックを得る方法は、
前述したAプロセッサに対する命令トレース法と同様で
ある。ここでは本発明の命令トレース法により可能にな
った、メモりやI/Oアクセスを伴う命令について前記逆
アセンブルにより得られた命令ニーモニックと、該命令
が実際にアクセスしたアドレスとデータとを命令ニーモ
ニックと対応させる方法を説明する。
第11図に示したプログラムがアセンブルされて第12図に
示すようにメモリ内に格納されているとして、Aプロセ
ッサが第12図中のメモリ・アドレスADR10の近傍からの
一連の命令を実行した時にプロセッサ101用の命令トレ
ース装置を用いて命令トレースを行う法を説明する。表
7はプロセッサ101用の命令トレース装置のトレース・
バッファ・メモリの内容の一部のダンプ・リストであ
り、表5と大部分が一致している。アドレスを出力する
のと同時に信号路126に出力する信号がハイ・レベル
(H)であったかロー・レベル(L)にあったかを示し
ている。
表7において、フレーム021でQSTS3-0がE1を示す点を基
準とすると、表5で用いた方法によりフレーム031,032
で命令解読部に於て命令解読される2バイト長の命令コ
ードを持つ命令Jの命令コードはフレーム023,024及び
フレーム025,026でプリフェッチされた2バイトの命令
コードOPCD60,OPCD61であり、命令コー ドOPCD60,OPCD61を逆アセンブルして命令Jの命令ニー
モニックとしてMOV R6,M61を得る。命令Jは、メモリ
内にリード・オペランドM61を必要とする転送命令であ
るので、命令Jの命令トレースの為には、命令Jのリー
ド・オペランドM61としてどのようなメモリ・アドレス
から、どのようなデータがプロセッサ101内に取込まれ
たかを示さなければならない。このため、表7に新たに
加えられたATの欄の情報を用いる。
ATの欄の情報は、プロセッサ101のアドレス端子102に出
力されるアドレスがバス制御部内のアドレス・レジスタ
に格納される際の、命令解読部内のトグル・フリップ・
フロップ123の出力の状態を記憶しているものである。
該トグル・フリップ・フロップ123は命令解読部で無条
件分岐命令の命令コードを解読された瞬間に出力を反転
する。無条件分岐命令の命令コードの解読は、キュー・
ステータスQSTS3-0がE1を示す事でプロセッサ101外部に
直ちに示されるため、QSTS3-0がE1を示すフレーム021の
直後のプリフェッチの為のアドレス出力の際のATの値を
見ると、フレーム021の前にATはハイ・レベル(H)に
あり、フレーム021の後ではATがロー・レベル(L)に
なっている事が判る。無条件分岐命令解読直後にある転
送命令Jの命令コードがフレーム021よりも後に命令解
読部に於いて命令解読され、該命令Jのリード・オペラ
ンドM61のアドレスがアドレス生成部で生成されバス制
御部のアドレス・レジスタ群に格納される際に該アドレ
ス・レジスタの拡張部分には、ロー・レベルにあるトグ
ル・フリップ・フロップ123の出力が格納される。従っ
てメモリ内にリード・オペランドM61を必要とする命令
Jのリード・オペランド読込みの為のメモリ・リード・
バス・サイクルは、フレーム021よりも後のフレームの
中で、初めてATがL(ロー・レベル)を示している、命
令コード・プリフェッチ以外のメモリ・リード・バス・
サイクルである。表8ではフレーム021より後にフレー
ム033,034とフレーム037,039の2回のメモリ・リード・
バス・サイクルがあるが、ATの欄がフレーム021よりも
後に初めてLを示すのはフレーム037でのアドレス出力
であるので、メモリ内にリード・オペランドM61を必要
とする命令Jのリード・オペランド読込みの為のバス・
サイクルはフレーム037,039に於けるメモリ・リード・
バス・サイクルであり、命令Jのリード・オペランドM
61のアドレスはフレーム037からRA6であり、M61のデー
タはフレーム039のRD6である事が決定される。以下同様
にして、無条件分岐命令の命令コードの命令解読初めて
現われるメモリ内にリード・オペランドを必要とする命
令Jの次に現われるメモリ内にリード・オペランドを必
要とする命令のリード・オペランド読込みの為のメモリ
・リード・バス・サイクルは、フレーム037,039の次にA
TがLを示すメモリ・リード・バス・サイクルである事
が決定できる。ここまでの説明は、命令がメモリ内にリ
ード・オペランドを持つ場合について行ってきたが、該
命令トレース法の命令とオペランドの対応をつける法
は、オペランドがメモリ内にあってもI/0内にあっても
全く同様に行う事ができる。
以上説明したように、本発明は多段ステージのパイプラ
イン構造を実現している高機能プロセッサ内で、各ステ
ージの命令処理のシーケンスを定める命令解読部内に、
予め定められた種類の命令の命令コードが命令解読され
ると出力が反転するトグル・フリップ・フロップを設
け、該プロセッサ内のアドレス生成部に於いて生成され
たアドレスがバス制御部内のアドレス・レジスタの中の
一本に格納される時同時に該アドレス・レジスタの拡張
部分に前記トグル・フリップ・フロップの状態を格納
し、バス制御部がバス・サイクルを起動する際に選ばれ
るアドレス・レジスタのアドレス部分を該プロセッサの
アドレス・バス端子に、アドレス・レジスタの拡張部分
の情報を該プロセッサの情報出力用端子に出力し、該プ
ロセッサ用の命令トレース装置において情報出力用端子
に現われる信号を該プロセッサのアドレス・バス上に現
われる信号とともに命令トレース装置のトレース・バッ
ファ内に逐次取込み、リード・オペランド先読み及びラ
イト・オペランド後書きを行うプロセッサの命令トレー
スの際、命令ニーモニックと該命令のプロセッサ外部の
オペランド・アクセスとを、アドレス・レジスタの拡張
部分からプロセッサ外にアドレスとともに出力される情
報を基準にして対応づける命令トレース法である。
表7において、アドレス欄のRA1,ADR41…はプロセッサ
101がアドレス・バス上に出力したアドレス、データ欄
のRD1,OPCD41…はプロセッサ101のデータ入出力により
データ・バス上に現われたデータである。BUS−STSの欄
はプロセッサ101がバス・ステータス端子120に出力した
バス・ステータス・コード及び信号路121上に出力され
るMMIO信号、RDWR信号を表6に示した略号でF,MR,MWの
みを示している。QSTS欄のH,Lはプロセッサ101がQSTS4
端子122に出力した信号がハイ・レベル(H)にあった
かロー・レベル(L)にあったかを示している。QSTS
3-0欄はプロセッサ101がキュー・ステータス端子122に
出力したキュー・ステータス信号を表4に示した略号で
F,S,E1のみを表わしている。ATの欄はプロセッサ101が
アドレス・バス端子102上にアドレスを出力するのと同
時に信号路126に出力する信号がハイ・レベル(H)で
あったかロー・レベル(L)であったかを示している。
この結果、多段ステージのパイプライン構造を実現して
いるプロセッサが、このプロセッサの外部にオペランド
を必要とする命令のリード・オペランドの先読み又はラ
イト・オペランドの後書きを行っている場合でも、この
プロセッサが実行した命令に対してその実行順に命令ニ
ーモニックを得、プロセッサの外部にオペランドを必要
とする命令の場合には、その命令のニーモニックとオペ
ランドが実際にアクセスされた際のアドレスとデータを
対応づける事ができる。
なお、表1は8086プロセッサのキュー・ステータスの
表、表2は8086プロセッサのバス・ステータスの表、表
3はAプロセッサ及びプロセッサ101のアセンブリ言語
で書かれたプログラムの命令ニーモニックと命令コード
の対応表、表4はAプロセッサ及びプロセッサ101のキ
ュー・ステータスの表、表5はAプロセッサが、第12図
に示したメモリ内のADR10の近傍から順次命令を実行し
た時の命令トレース装置のトレース・バッファ・メモリ
に蓄えられた情報のダンプリスト、表6Aはプロセッサ及
びプロセッサ101のバス・ステータスの表、表7はプロ
セッサ101が第12図に示したメモリ内のADR10の近傍から
順次命令を実行した時に命令トレース装置のトレース・
バッファ・メモリに蓄えられた情報のダンプリストであ
る。
〔発明の効果〕
本発明によれば、多段ステージのパイプライン機能をも
つプロセッサであって、プロセッサ外部のオペランドに
対しリード・オペランドの先読み及びライト・オペラン
ドの後書きを行なうプロセッサにおいて、該プロセッサ
の完全な命令トレースが可能となるので、プロセッサの
ソフトウェア開発とデバッグ効率が飛躍的に向上すると
いう効果がある。
【図面の簡単な説明】
第1図は本発明の一実施例のプロセッサの内部ブロック
図である。 101……プロセッサ、102……アドレス・バス、103……
データ・バス、104……内部データ・バス、105……命令
プリフェッチ部、106……命令コード用信号路、107……
命令解読部、108……デコード情報キュー、109……デコ
ード情報用信号路、110……命令実行部、111……アドレ
ス生成部、112……アドレス用信号路、113……バス制御
部、114……アドレス生成部と命令解読部間の情報授受
の為の信号路、115……バス制御部と命令解読部間の情
報授受の為の信号路、116……プロセッサ101の外部から
読込んだデータを格納するレジスタ群、117……命令実
行部で生成され、プロセッサ101の外部へ書出すデータ
を格納するレジスタ群、118……バス制御部と命令実行
部間のデータ授受の為の信号路、119……アドレス生成
部で生成されプロセッサ101の外部へ出力するアドレス
を格納するレジスタ群のアドレスを格納する部分、120
……バス制御部で生成されるバス・ステータス情報をプ
ロセッサ101の外部へ出力する為の信号路、121……プロ
セッサ101がプロセッサ101の内部と外部の間で情報を授
受する為の信号路、122……命令プリフェッチ部の命令
キューの状態を示す情報をプロセッサ101の外部へ出力
する為の信号路、123……トグル・フリップ・フロッ
プ、124……トグル・フリップ・フロップ123の出力信号
をバス制御部113内へ伝達する為の信号路、125……トグ
ル・フリップ・フロップ123の出力信号を格納する、レ
ジスタ群119の拡張部分、126……レジスタ群119の拡張
部分125をプロセッサ101外部へ出力する信号路、 第2図は、第1図アドレス・バス・インターフェース部
内のアドレス・レジスタ群の詳細なブロック図である。 第3図は、プロセッサ101のタイミング図である。 第4図は従来のプロセッサの内部ブロック図である。 401……i8086プロセッサ、402……アドレス/データ・
バス、403……内部バス、404……データ・レジスタ、40
5……アドレス生成部、406……命令キュー、407……キ
ュー・ステータス信号路、408……命令コード用信号
路、409……内部データ・バス、410……命令実行制御
部、411……命令ラッチ、412……デコーダ、413……各
種レジスタ群、414……算術論理演算回路、415……オペ
ランド・レジスタ、416……バス制御回路、417……バス
・ステータス信号用信号路、 第5図は、命令トレース装置のトレース・バッファメモ
リのダンプリスト図である。 第6図は、擬似キューの構成図である。 第7図は、キューの深さを算出する回路のブロック図で
ある。 700……キューの深さを算出する回路、701……キュー・
ステータス信号路、702……デコーダ、703……信号路、
704……カウンタ、705……信号路、706……減算器、707
……信号路、708……リセット信号路、709……オア・ゲ
ート、710……出力信号路、711……バス・ステータス信
号路、712……デコーダ、713……信号路、714……カウ
ンタ、715……信号路、716……キュー深さ出力信号路、 第8図は、第5図のトレース・バッファ・メモリの内容
を編集した結果を示す図である。 第9図はパイプライン機能をもつAプロセッサの内部ブ
ロック図である。 901……Aプロセッサ、902……アドレス・バス、903…
…データ・バス、904……内部データ・バス、905……命
令プリフェッチ部、906……命令コード用信号路、907…
…命令解読部、908……デコード情報キュー、909……デ
コード情報用信号路、910……命令実行部、911……アド
レス生成部、912……アドレス用信号路、913……バス制
御部、914……命令解読部とアドレス生成部の間の信号
路、915……バス制御部と命令解読部の間の信号路、916
……Aプロセッサ外部から読込んだデータを格納するレ
ジスタ群、917……命令実行部で生成されAプロセッサ
外部へ書出すデータを格納するレジスタ群、918……バ
ス制御部と命令実行部間のデータ授受の為の信号路、91
9……アドレス生成部で生成されAプロセッサの外部へ
出力するアドレスを格納するレジスタ群、920……バス
制御部で生成されるバス・ステータス信号出力信号路、
921……Aプロセッサの内部と外部で制御信号を授受す
る信号路、922……命令プリフェッチ部の命令キューの
状態を示す情報をAプロセッサ外部に出力する信号路、 第10図はレジスタ919の内部詳細ブロック図である。 1001……アドレス用信号路、1002……アドレス・レジス
タ、1003……レジスタ1002のラッチ信号路、1004……信
号路、1005……アドレス・レジスタ、1006……レジスタ
1005のラッチ信号路、1007……信号路、1008……アドレ
ス・レジスタ、1009……アドレス・レジスタ1008用ラッ
チ信号路、1010……信号路、1011……アドレス・レジス
タ、1012……レジスタ1011用ラッチ信号路、1013……信
号路、1014……マルチプレクサ、1015……選択信号路、
1016……アドレス出力信号路、 第11図はテスト・プログラム図である。 第12図はテスト・プログラムのメモリ内ロケーションを
示す図である。 第13図はAプロセッサのタイミング図である。

Claims (1)

    【特許請求の範囲】
  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
DE3751356T DE3751356T2 (de) 1986-04-18 1987-04-21 Informationsverarbeitungssystem.
EP87105823A EP0241946B1 (en) 1986-04-18 1987-04-21 Information processing system

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 JPS62245442A (ja) 1987-10-26
JPH0731615B2 true 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)

Families Citing this family (66)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0782448B2 (ja) * 1987-12-10 1995-09-06 三菱電機株式会社 マイクロプロセッサ
JP2982875B2 (ja) * 1987-12-28 1999-11-29 株式会社日立製作所 スレーブ制御装置
JP2678283B2 (ja) * 1988-03-15 1997-11-17 株式会社日立製作所 データ通信制御装置
JPH0233631A (ja) * 1988-07-22 1990-02-02 Fujitsu Ltd 先行制御トレース方式
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 インターナショナル・ビジネス・マシーンズ・コーポレイション ハ―ドウェア支援ブレ―クポイント・システム
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
US5355484A (en) * 1991-08-12 1994-10-11 International Business Machines Corporation Dynamically established event monitors in event management services of a computer system
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
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
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
JP2693678B2 (ja) * 1992-01-28 1997-12-24 株式会社東芝 データ処理装置
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
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
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
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
US9858189B2 (en) * 2015-06-24 2018-01-02 International Business Machines Corporation Hybrid tracking of transaction read and write sets
US9760494B2 (en) 2015-06-24 2017-09-12 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

Also Published As

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

Similar Documents

Publication Publication Date Title
JPH0731615B2 (ja) 情報処理装置
US7533302B2 (en) Trace and debug method and system for a processor
JP2693678B2 (ja) データ処理装置
JP2001525568A (ja) 命令デコーダ
JP2002163127A (ja) トレース制御回路
JP4865960B2 (ja) データ処理装置およびその制御方法
JP3260083B2 (ja) デバッグシステム及びデバッグ方法
JP2002535749A (ja) 複数の命令ソースからの命令を実行するプロセッサおよび方法
US20070038435A1 (en) Emulation method, emulator, computer-attachable device, and emulator program
JP2563708B2 (ja) マイクロプロセッサ装置およびそれを用いたエミュレータ装置
JP2758624B2 (ja) マイクロプログラムの調速方式
JP2808757B2 (ja) デバッグ用マイクロプロセッサ
JPS6316350A (ja) マイクロプロセッサ
JP3078293B2 (ja) 記憶制御装置
JP2504224B2 (ja) デ―タ処理装置
JPH0241770B2 (ja)
JPH0317135B2 (ja)
JPH03216734A (ja) データ処理方法及び中央処理装置
JP2927751B2 (ja) 情報処理装置及び情報処理方法及びスケジューリング装置
JP2806690B2 (ja) マイクロプロセッサ
KR100658485B1 (ko) 마이크로프로세서 개발시스템
JPH0752402B2 (ja) データ処理装置
JPH07302198A (ja) データ処理装置およびデバッグ装置
JPH05120071A (ja) データ処理装置
JP2006018490A (ja) マイクロプロセッサ及び情報処理方法

Legal Events

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