JP2996703B2 - エミュレータ回路 - Google Patents
エミュレータ回路Info
- Publication number
- JP2996703B2 JP2996703B2 JP2238203A JP23820390A JP2996703B2 JP 2996703 B2 JP2996703 B2 JP 2996703B2 JP 2238203 A JP2238203 A JP 2238203A JP 23820390 A JP23820390 A JP 23820390A JP 2996703 B2 JP2996703 B2 JP 2996703B2
- Authority
- JP
- Japan
- Prior art keywords
- instruction
- storage device
- data
- address
- out storage
- 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
Links
Landscapes
- Tests Of Electronic Circuits (AREA)
- Test And Diagnosis Of Digital Computers (AREA)
Description
【発明の詳細な説明】 〔産業上の利用分野〕 本発明は、インサーキット・エミュレータに係り、特
に、プロセッサの実行結果を解析するアナリシス機能に
関連して、プロセッサのプリフェッチのデキューイング
を行い、実行された命令のみをアナライザに送ってプロ
セッサ動作の解析を容易にする機能を具備するインサー
キット・エミュレータに関する。
に、プロセッサの実行結果を解析するアナリシス機能に
関連して、プロセッサのプリフェッチのデキューイング
を行い、実行された命令のみをアナライザに送ってプロ
セッサ動作の解析を容易にする機能を具備するインサー
キット・エミュレータに関する。
プロセッサの実行した命令を順次トレースしてゆく場
合、プロセッサがフェッチした命令を基に解析を行な
う。しかし、例えば条件分岐命令などの存在によりプリ
フェッチ(命令の先読み)されながら実行されなかった
命令は解析結果から取り除く必要がある。このようにプ
リフェッチ命令を取り除くことをデキューイングと呼
ぶ。
合、プロセッサがフェッチした命令を基に解析を行な
う。しかし、例えば条件分岐命令などの存在によりプリ
フェッチ(命令の先読み)されながら実行されなかった
命令は解析結果から取り除く必要がある。このようにプ
リフェッチ命令を取り除くことをデキューイングと呼
ぶ。
デキューイングを行うための従来技術の一つはプロセ
ッサが出力するキューの状態(キューステータス)を利
用して実現されていた。ここで、キューは、例えば、プ
ロセッサ内においてフェッチ内容を一時的に置いておく
ための先入れ先出し(FIFO)記憶装置である。インテル
社のマイクロプロセッサ8086では、6個のインストラク
ションを収容可能なキューユニットを備えており、次の
3つのキューステータスを出力することができる。
ッサが出力するキューの状態(キューステータス)を利
用して実現されていた。ここで、キューは、例えば、プ
ロセッサ内においてフェッチ内容を一時的に置いておく
ための先入れ先出し(FIFO)記憶装置である。インテル
社のマイクロプロセッサ8086では、6個のインストラク
ションを収容可能なキューユニットを備えており、次の
3つのキューステータスを出力することができる。
(1) 命令の第1オペコードをキューから読み出した
(実行の開始を意味する。本明細書では、QEXECと呼
ぶ。) (2) 第1オペコードに必要な第2以後のオペコード
又はオペランドをキューから読み出した(本明細書で
は、QREADと呼ぶ。) (3) キューが空になった(本明細書では、QCLRと呼
ぶ)。
(実行の開始を意味する。本明細書では、QEXECと呼
ぶ。) (2) 第1オペコードに必要な第2以後のオペコード
又はオペランドをキューから読み出した(本明細書で
は、QREADと呼ぶ。) (3) キューが空になった(本明細書では、QCLRと呼
ぶ)。
上記の3種類のキューステータスによって動作する従
来例に係るエミュレータ回路を第2図に基づいて説明す
る。エミュレータ回路21は、エミュレーション・プロセ
ッサ22と、制御回路23と、FIFO24と、データラッチ部25
と、アドレス・カウンタ26とを具備している。エミュレ
ーション・プロセッサ22には、データバス27とアドレス
バス28とが接続されている。データバス27には、FIFO2
4、データラッチ25が接続されており、アドレスバス28
にはアドレスカウンタ26が接続されている。データラッ
チ25及びアドレスカウンタ26の出力は、アナライザ(図
示せず)へ接続される。プロセッサ22から、キューステ
ータス・ライン29を介して「QCLR」を受け取った制御回
路23は、クリア信号線30によりFIFO24をクリアし、次の
プリフェッチ時のアドレスをアドレス・カウンタ26にロ
ードする。これ以降、プロセッサ22がターゲット装置か
らフェッチするデータは、FIFO24に次々とためられてゆ
く。
来例に係るエミュレータ回路を第2図に基づいて説明す
る。エミュレータ回路21は、エミュレーション・プロセ
ッサ22と、制御回路23と、FIFO24と、データラッチ部25
と、アドレス・カウンタ26とを具備している。エミュレ
ーション・プロセッサ22には、データバス27とアドレス
バス28とが接続されている。データバス27には、FIFO2
4、データラッチ25が接続されており、アドレスバス28
にはアドレスカウンタ26が接続されている。データラッ
チ25及びアドレスカウンタ26の出力は、アナライザ(図
示せず)へ接続される。プロセッサ22から、キューステ
ータス・ライン29を介して「QCLR」を受け取った制御回
路23は、クリア信号線30によりFIFO24をクリアし、次の
プリフェッチ時のアドレスをアドレス・カウンタ26にロ
ードする。これ以降、プロセッサ22がターゲット装置か
らフェッチするデータは、FIFO24に次々とためられてゆ
く。
「QEXEC」または「QREAD」を受け取った場合には、プ
リフェッチによりFIFO24にためられたデータを読み出
し、データラッチ25とアドレス・カウンタ26の値をアナ
ライザへと送る。さらに、アドレス・カウンタの値のイ
ンクリメントを行なう。
リフェッチによりFIFO24にためられたデータを読み出
し、データラッチ25とアドレス・カウンタ26の値をアナ
ライザへと送る。さらに、アドレス・カウンタの値のイ
ンクリメントを行なう。
第2図の従来のエミュレータ回路は、上記のように構
成され動作するものである。仮に、プロセッサ22の処理
する命令がすべて1サイクル命令であれば、「QEXEC」
及び「QCLR」のみでプロセッサの命令実行状態を知るこ
とができる。
成され動作するものである。仮に、プロセッサ22の処理
する命令がすべて1サイクル命令であれば、「QEXEC」
及び「QCLR」のみでプロセッサの命令実行状態を知るこ
とができる。
しかし、通常は、命令の種類により命令の長さや実行
ステップ数が異なる命令体系を備えたプロセッサが一般
的であり、そのようなプロセッサが「QREAD」を出力で
きないものである場合には、従来方法ではプロセッサの
実行状態を完全に知ることができなかった。FIFO24に記
憶される内容は、プロセッサ22内のキューにプリフェッ
チされる内容と対応するものの、それが実際に実行され
たかどうかは、プロセッサ外部からはわからないからで
ある。
ステップ数が異なる命令体系を備えたプロセッサが一般
的であり、そのようなプロセッサが「QREAD」を出力で
きないものである場合には、従来方法ではプロセッサの
実行状態を完全に知ることができなかった。FIFO24に記
憶される内容は、プロセッサ22内のキューにプリフェッ
チされる内容と対応するものの、それが実際に実行され
たかどうかは、プロセッサ外部からはわからないからで
ある。
本発明は、上記した従来技術の問題点を解決するため
になされたものであって、その目的とするところは、次
の(1)乃至(4)のような特徴を有するプロセッサの
インストラクション・トラッキングを行なう場合にデキ
ューイングを可能とし、正しい解析を行うことができる
エミュレーション回路を提供することである。
になされたものであって、その目的とするところは、次
の(1)乃至(4)のような特徴を有するプロセッサの
インストラクション・トラッキングを行なう場合にデキ
ューイングを可能とし、正しい解析を行うことができる
エミュレーション回路を提供することである。
(1) 命令の長さが一定していない。
(2) 命令のプリフェッチが可能であり、そのための
キューを備えている。
キューを備えている。
(3) キューステータスを出力できるが、第2以降の
オペコードまたはオペランドをキューから読み出したと
いう情報を出力することができない。
オペコードまたはオペランドをキューから読み出したと
いう情報を出力することができない。
(4) 複数サイクル命令の実行は、原則として、命令
の実行が完了するまで、割り込み等で中断することはな
い。
の実行が完了するまで、割り込み等で中断することはな
い。
以下、本発明を第1図に示す実施例に基づいて説明す
る。第1図は、本発明の説明に必要な構成のみを図示し
たものであり、本発明の適用される実際の製品の他の機
能を果たす部分やバッファ等は省略されている。
る。第1図は、本発明の説明に必要な構成のみを図示し
たものであり、本発明の適用される実際の製品の他の機
能を果たす部分やバッファ等は省略されている。
実施例に係るエミュレータ回路1は、エミュレーショ
ン・プロセッサ2と、制御回路3と、FIFO4と、データ
ラッチ部5と、アドレス・カウンタ6と、読出カウント
設定回路11とを具備している。エミュレーション・プロ
セッサ2には、ターゲット装置へ接続されるデータバス
7とアドレスバス8とが接続されている。データバス7
には、先入れ先出し記憶部(FIFO)4及びデータラッチ
5とが図示のように接続されており、アドレスバス8に
は、アドレスカウンタ6が図示のように接続されてい
る。
ン・プロセッサ2と、制御回路3と、FIFO4と、データ
ラッチ部5と、アドレス・カウンタ6と、読出カウント
設定回路11とを具備している。エミュレーション・プロ
セッサ2には、ターゲット装置へ接続されるデータバス
7とアドレスバス8とが接続されている。データバス7
には、先入れ先出し記憶部(FIFO)4及びデータラッチ
5とが図示のように接続されており、アドレスバス8に
は、アドレスカウンタ6が図示のように接続されてい
る。
読出カウント設定回路11は、命令バイト数記憶部13
と、カウンタ15とを備えている。
と、カウンタ15とを備えている。
命令バイト数記憶部13は、プロセッサ2(すなわちタ
ーゲット装置のプロセッサと同じ)が用意しているすべ
ての命令に関して、第1オペコードと、その第1オペコ
ードから始まる命令が何バイト命令かを記憶させてある
ROMである。ROM13には、FIFO4の出力からバス7Aを介し
てデータが入力されるようになっている。
ーゲット装置のプロセッサと同じ)が用意しているすべ
ての命令に関して、第1オペコードと、その第1オペコ
ードから始まる命令が何バイト命令かを記憶させてある
ROMである。ROM13には、FIFO4の出力からバス7Aを介し
てデータが入力されるようになっている。
カウンタ15は、制御回路3から「ロード制御信号(ロ
ード)」31を受けた時、ROM13の記憶する命令バイト数
に応じた所定の値が、セットされ、クロックに同期して
カウント・ダウンを行い、カウントがゼロ(0)になっ
た時に、「カウント0制御信号(ゼロ)」32を制御回路
3に対して送るようになっている。
ード)」31を受けた時、ROM13の記憶する命令バイト数
に応じた所定の値が、セットされ、クロックに同期して
カウント・ダウンを行い、カウントがゼロ(0)になっ
た時に、「カウント0制御信号(ゼロ)」32を制御回路
3に対して送るようになっている。
制御回路3は、プロセッサ2から、「キュー・ステー
タス信号(キューステータス)」33を受けて、FIFO4、
データラッチ5、アドレスカウンタ6、読出カウント設
定回路11に対して、それぞれ制御信号により動作を制御
するようになっている。
タス信号(キューステータス)」33を受けて、FIFO4、
データラッチ5、アドレスカウンタ6、読出カウント設
定回路11に対して、それぞれ制御信号により動作を制御
するようになっている。
FIFO4は、「FIFOクリア制御信号(クリア)」34及び
「イネーブル制御信号(イネーブル)」35により、FIFO
のクリア及び読出が制御されるようになっている。
「イネーブル制御信号(イネーブル)」35により、FIFO
のクリア及び読出が制御されるようになっている。
データラッチ5は、イネーブル35により、データラッ
チの制御を受けるようになっている。
チの制御を受けるようになっている。
アドレスカウンタ6は、「アドレスロード信号(ロー
ド)」36により、アドレスの値をロードするようになっ
ており、イネーブル35により、インクリメント制御を受
けるようになっている。
ド)」36により、アドレスの値をロードするようになっ
ており、イネーブル35により、インクリメント制御を受
けるようになっている。
本発明の実施例は、上記のように構成されており、以
下その動作について説明する。
下その動作について説明する。
(1)キューステータス33としては、「QCLR」を受けた
制御回路3は、クリア34によってFIFO4を空にすると共
に、次にプリフェッチ時のアドレスを、アドレスカウン
タ6にロードするため、ロード36を付勢する。プロセッ
サ2内のキューと同一内容の情報がFIFO4にストアされ
る。
制御回路3は、クリア34によってFIFO4を空にすると共
に、次にプリフェッチ時のアドレスを、アドレスカウン
タ6にロードするため、ロード36を付勢する。プロセッ
サ2内のキューと同一内容の情報がFIFO4にストアされ
る。
(2)次に、キューステータス33として「QEXEC」を受
けた制御回路3は、イネーブル35により、FIFO4からプ
リフェッチ情報を出力させ、そのデータをデータラッチ
5にラッチさせ、該データラッチ5の値とアドレスカウ
ンタ6の値をアナライザへ送る。このとき、FIFOから出
力されたデータはオペコードであり、何バイト命令であ
るかは一義的に決められる。例えば、3バイト命令であ
る場合には、あと2バイト分のオペコード(またはオペ
ランド)が読み出される必要があるため、ROM13から
「2」の値がカウンタ15にセットされる。
けた制御回路3は、イネーブル35により、FIFO4からプ
リフェッチ情報を出力させ、そのデータをデータラッチ
5にラッチさせ、該データラッチ5の値とアドレスカウ
ンタ6の値をアナライザへ送る。このとき、FIFOから出
力されたデータはオペコードであり、何バイト命令であ
るかは一義的に決められる。例えば、3バイト命令であ
る場合には、あと2バイト分のオペコード(またはオペ
ランド)が読み出される必要があるため、ROM13から
「2」の値がカウンタ15にセットされる。
(3)次に、クロックに同期して、カウンタ15のカウン
トが「0」になるまで、各部で次の乃至の動作がほ
ぼ同時に繰り返される。
トが「0」になるまで、各部で次の乃至の動作がほ
ぼ同時に繰り返される。
カウンタ15のカウントダウン。
FIFO4の読み出し及びデータラッチ5からアナライ
ザへのデータ出力。
ザへのデータ出力。
アドレスカウンタ6からアナライザへのデータ出力
及びアドレスカウンタ6のインクリメント。
及びアドレスカウンタ6のインクリメント。
(4)制御信号ゼロ32を受けた制御回路3は、次のキュ
ーステータス33を受けるまで待機する。「QEXEC」を受
けた場合には、上記(2)に戻り、「QCLR」を受けた場
合には、上記(1)に戻ることになる。
ーステータス33を受けるまで待機する。「QEXEC」を受
けた場合には、上記(2)に戻り、「QCLR」を受けた場
合には、上記(1)に戻ることになる。
このように、本発明では従来の「QREAD」の情報を代
替する手段を提供している。
替する手段を提供している。
なお、本発明は、「QREAD」を出力できないプロセッ
サに適用されるものとして説明したが、「QREAD」が出
力できるプロセッサにも適用しうることは言うまでもな
い。
サに適用されるものとして説明したが、「QREAD」が出
力できるプロセッサにも適用しうることは言うまでもな
い。
本発明は、以上のように構成され、作用するものであ
るから、上記した課題を達成することができるエミュレ
ーション回路を提供することができるという効果が得ら
れる。例えば、三菱電機株式会社製M37700プロセッサに
好適である。
るから、上記した課題を達成することができるエミュレ
ーション回路を提供することができるという効果が得ら
れる。例えば、三菱電機株式会社製M37700プロセッサに
好適である。
第1図は、本発明の実施例に係るエミュレーション回路
のブロック図である。 第2図は、従来例に係るエミュレーション回路のブロッ
ク図である。 7:データバス 4:先入れ先出し記憶装置 2:プロセッサ 13:命令バイト数記憶部 14:カウンタ 1:エミュレータ回路。
のブロック図である。 第2図は、従来例に係るエミュレーション回路のブロッ
ク図である。 7:データバス 4:先入れ先出し記憶装置 2:プロセッサ 13:命令バイト数記憶部 14:カウンタ 1:エミュレータ回路。
Claims (3)
- 【請求項1】エミュレーション・プロセッサからキュー
・ステータス信号を受ける制御回路と、 データ・バスに接続されて、プリフェッチの内容を記憶
する先入れ先出し記憶装置と、 前記先入れ先出し記憶装置の出力をラッチし、そのデー
タをアナライザへ出力するデータ・ラッチと、 アドレス・バスに接続され、アドレス値をロード及びイ
ンクリメントし、そのアドレス値をアナライザへ出力す
るアドレス・カウンタと、 各命令の第1オペコードと、該第1オペコードから始ま
るその命令のバイト数を予め記憶しており、前記先入れ
先出し記憶装置から命令の第1オペコードが入力される
とその命令バイト数に従ったカウント値を設定し、以後
クロックに同期してカウントを行い、カウントごとに前
記先入れ先出し記憶装置の内容を順に読み出し、カウン
ト終了を前記制御回路に知らせる読出カウント設定回路
と を設けて成るエミュレータ回路。 - 【請求項2】前記読出カウント設定回路は、 各命令の第1オペコードと該第1オペコードから始まる
その命令バイト数を予め記憶しており、前記先入れ先出
し記憶装置から命令の第1のオペコードが入力される
と、その命令バイト数を出力する記憶手段と、 前記制御回路からロード信号を受けた時に前記記憶手段
から読み出したバイト数に従ってカウント数を設定し、
クロックに同期してカウントを行い、カウント終了を前
記制御回路に知らせるカウンタと を含むことを特徴とする、請求項1に記載のエミュレー
タ回路。 - 【請求項3】プロセッサをエミュレートする方法におい
て、 (a)プロセッサのキュー・ステータスが「キューを空
にした」である時、先入れ先出し記憶装置内のデータを
空にし、次のプリフェッチ時のアドレスをアドレス・カ
ウンタにロードし、次のプリフェッチの内容を先入れ先
出し記憶装置にストアするステップと、 (b)プロセッサのキュー・ステータスが「命令の第1
オペコードをキューから読み出した」である時、先入れ
先出し記憶装置から第1オペコードを出力させ、これを
データ・ラッチにラッチさせるステップと、 (c)前記データ・ラッチにラッチさせたデータと、前
記アドレス・カウンタにロードしたデータをアナライザ
へ送るステップと、 (d)前記第1オペコードからその命令のバイト数に従
ったカウント値を設定するステップと、 (e)カウントが終了するまで、 (e−1)先入れ先出し記憶装置からデータを読み出
し、データ・ラッチからアナライザへデータを出力する
ステップと、 (e−2)アドレス・カウンタからアナライザへデータ
を出力し、アドレス・カウンタをインクリメントするス
テップと を繰り返し行うステップと、 (f)カウントが終了した時、プロセッサの次のキュー
・ステータスを受けるまで待機するステップと を設けて成る方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2238203A JP2996703B2 (ja) | 1990-09-08 | 1990-09-08 | エミュレータ回路 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2238203A JP2996703B2 (ja) | 1990-09-08 | 1990-09-08 | エミュレータ回路 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH04118725A JPH04118725A (ja) | 1992-04-20 |
JP2996703B2 true JP2996703B2 (ja) | 2000-01-11 |
Family
ID=17026687
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2238203A Expired - Fee Related JP2996703B2 (ja) | 1990-09-08 | 1990-09-08 | エミュレータ回路 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2996703B2 (ja) |
-
1990
- 1990-09-08 JP JP2238203A patent/JP2996703B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JPH04118725A (ja) | 1992-04-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP0464494B1 (en) | A high performance pipelined emulator | |
FI90804B (fi) | Dataprosessorin ohjausyksikkö, jolla on käskyn esihaun uudelleensuuntausta käyttävä keskeytyspalvelu | |
US5838950A (en) | Method of operation of a host adapter integrated circuit | |
EP0901071B1 (en) | Methods for interfacing a processor to a coprocessor | |
JP2746549B2 (ja) | コンピュータシステム及びその動作方法 | |
US4893233A (en) | Method and apparatus for dynamically controlling each stage of a multi-stage pipelined data unit | |
JPH02155037A (ja) | デジタルコンピュータに於けるパイプライン化された処理ユニットの動作方法 | |
US4903264A (en) | Method and apparatus for handling out of order exceptions in a pipelined data unit | |
US4967338A (en) | Loosely coupled pipeline processor | |
US5023828A (en) | Microinstruction addressing in high-speed CPU | |
US4833640A (en) | Register bank change including register to register transfer in a data processing system | |
US5274770A (en) | Flexible register-based I/O microcontroller with single cycle instruction execution | |
EP0287115A2 (en) | Coprocessor and method of controlling the same | |
US5034880A (en) | Apparatus and method for executing a conditional branch instruction | |
US7051146B2 (en) | Data processing systems including high performance buses and interfaces, and associated communication methods | |
JP2996703B2 (ja) | エミュレータ回路 | |
EP0753810A1 (en) | Computer instruction execution | |
US5237664A (en) | Pipeline circuit | |
JPH0646382B2 (ja) | プリフェッチキュー制御方式 | |
EP0306891A2 (en) | Pipelined slave protocol for high performance CPU-FPU cluster | |
US5838961A (en) | Method of operation and apparatus for optimizing execution of short instruction branches | |
JPS6349938A (ja) | 命令先取り制御装置 | |
US7818549B2 (en) | Event driven digital signal processor with time constraints | |
JP3184363B2 (ja) | マイクロプロセッサ装置 | |
EP0015276B1 (en) | A digital pipelined computer |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
S111 | Request for change of ownership or part of ownership |
Free format text: JAPANESE INTERMEDIATE CODE: R313113 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
LAPS | Cancellation because of no payment of annual fees |