JPH011039A - インサーキット・エミュレータ - Google Patents
インサーキット・エミュレータInfo
- Publication number
- JPH011039A JPH011039A JP63-25053A JP2505388A JPH011039A JP H011039 A JPH011039 A JP H011039A JP 2505388 A JP2505388 A JP 2505388A JP H011039 A JPH011039 A JP H011039A
- Authority
- JP
- Japan
- Prior art keywords
- emulation processor
- control signal
- address
- circuit
- emulation
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Abstract
(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。
め要約のデータは記録されません。
Description
【発明の詳細な説明】
[産業上の利用分野コ
本発明は、メモリ・マネージメント回路を内蔵したマイ
クロプロセッサを対象としたインサーキット・エミュレ
ータに閏する。
クロプロセッサを対象としたインサーキット・エミュレ
ータに閏する。
コンピュータ技術において、コンピュータのプログラム
中実行の際に、速度を害わずに小さなメモリで大きなプ
ログラムを実行させ、メモリの使用効率を」二げる技術
の一つに仮想記憶技術がある。
中実行の際に、速度を害わずに小さなメモリで大きなプ
ログラムを実行させ、メモリの使用効率を」二げる技術
の一つに仮想記憶技術がある。
CPUがプログラムを実行する場合、CP Uがアクセ
スする主メモリのアドレスはランダムではなく、プログ
ラム実行中のある時間の近傍でみると一部分のアドレス
に集中するという性質がある。
スする主メモリのアドレスはランダムではなく、プログ
ラム実行中のある時間の近傍でみると一部分のアドレス
に集中するという性質がある。
仮想記憶技術とは、この性質を利用し、実行しようとす
るプログラム全体をハードディスクのような副メモリに
格納しておき、プログラムの実行に必要な部分のみを主
メモリにロードして実行することにより、少ないメモリ
で大きなプログラムを実行したり、複数プログラムの同
時実行(マルチスフ)を効率良く行う技術である。つま
り、プログラムは、ある一定の屯位のブロックに分割さ
れ、複数のブロックで成るプログラムの一連の実行中に
、今現在必要とされるブロックが主メモリにロードされ
、不要なブロックは副メモリに格納されたままになって
いる。プログラムの実行が進み、主メモリにロードされ
ていないブロックを実行しようとするときは、CPUは
プログラムの実行を一時中断し、O5(オペレーティン
グシステム)に制御を移す。このときO8は、例えば主
メモリにロードされている実行中のブロックの中で最も
遠い過去にアクセスされたもののように、アクセスが繰
り返し行われていないないブロックを探しだし、このよ
うな一応は不要と判断されるブロックを再度副メモリに
格納するか、捨てるかして主メモリ上に空きエリアを確
保する。次にO8は、引き続いて実行すべきブロックを
副メモリから主メモリの空きエリアに移してそこへロー
ドし、中断しているプログラムの実行を復活させる。前
述のように、実際には少ない主メモリ上でプログラムが
実行されているにもかかわらず、あたかも大きな仮想的
な主メモリがあって、そこにプログラム全体が記憶され
て動作しているかのごとく見えろためこの仮想的な主メ
モリに記憶することをを仮想記憶と呼んでいる。
るプログラム全体をハードディスクのような副メモリに
格納しておき、プログラムの実行に必要な部分のみを主
メモリにロードして実行することにより、少ないメモリ
で大きなプログラムを実行したり、複数プログラムの同
時実行(マルチスフ)を効率良く行う技術である。つま
り、プログラムは、ある一定の屯位のブロックに分割さ
れ、複数のブロックで成るプログラムの一連の実行中に
、今現在必要とされるブロックが主メモリにロードされ
、不要なブロックは副メモリに格納されたままになって
いる。プログラムの実行が進み、主メモリにロードされ
ていないブロックを実行しようとするときは、CPUは
プログラムの実行を一時中断し、O5(オペレーティン
グシステム)に制御を移す。このときO8は、例えば主
メモリにロードされている実行中のブロックの中で最も
遠い過去にアクセスされたもののように、アクセスが繰
り返し行われていないないブロックを探しだし、このよ
うな一応は不要と判断されるブロックを再度副メモリに
格納するか、捨てるかして主メモリ上に空きエリアを確
保する。次にO8は、引き続いて実行すべきブロックを
副メモリから主メモリの空きエリアに移してそこへロー
ドし、中断しているプログラムの実行を復活させる。前
述のように、実際には少ない主メモリ上でプログラムが
実行されているにもかかわらず、あたかも大きな仮想的
な主メモリがあって、そこにプログラム全体が記憶され
て動作しているかのごとく見えろためこの仮想的な主メ
モリに記憶することをを仮想記憶と呼んでいる。
この仮想記憶技術を実現するためには仮想記憶における
アドレス(仮想アドレス)と、そのプログラムの一部が
記憶されている主メモリのアドレス(実アドレス)との
変換を行う回路が必要である。
アドレス(仮想アドレス)と、そのプログラムの一部が
記憶されている主メモリのアドレス(実アドレス)との
変換を行う回路が必要である。
この回路をメモリ・マネジメント回路と呼ぶ。メモリ・
マネジメント回路は、O8がプログラム中の所望のブロ
ックを主メモリにロードする時に決定した実アドレスが
記憶されている対応テーブルを参照して仮想アドレスか
ら実アドレスへの変換を行う。メモリ・マネジメント回
路には、幾つかの変1り情報を記憶するT L B (
Translation Look−aside Bu
ffer)があり、このTLBの内容は、対応テーブル
を参照して変換した情報で常に更新されるようになって
いる。メモリ・マネーメント回路は、常に対応テーブル
を参照して変換を行うわけでなく、TLBを参照して変
換可能な場合には直接変換を行い、TLBに変換情報が
ない場合のみ対応テーブルの参照を行うことによりメモ
リのアクセス回数を少なくしている。
マネジメント回路は、O8がプログラム中の所望のブロ
ックを主メモリにロードする時に決定した実アドレスが
記憶されている対応テーブルを参照して仮想アドレスか
ら実アドレスへの変換を行う。メモリ・マネジメント回
路には、幾つかの変1り情報を記憶するT L B (
Translation Look−aside Bu
ffer)があり、このTLBの内容は、対応テーブル
を参照して変換した情報で常に更新されるようになって
いる。メモリ・マネーメント回路は、常に対応テーブル
を参照して変換を行うわけでなく、TLBを参照して変
換可能な場合には直接変換を行い、TLBに変換情報が
ない場合のみ対応テーブルの参照を行うことによりメモ
リのアクセス回数を少なくしている。
つまり、仮想アドレスとはメモリ・マネージメント回路
によって変換される前のアドレスであり、実アドレスと
は変換後のアドレスである。通常のプログラムは、この
仮想アドレスで動作するように設計されている。
によって変換される前のアドレスであり、実アドレスと
は変換後のアドレスである。通常のプログラムは、この
仮想アドレスで動作するように設計されている。
従来、このメモリ・マネージメント回路は、マイクロプ
ロセッサ・チップとは別のLSIとして製品化されてい
たが、最近のインテル社5!80386や日本電気型V
60等のようなVLS Iのマイクロプロセッサ・チ
ップでは仮想アドレスから実アドレスへの変換速度を向
上させるためにメモリ・マネジメント回路はマイクロプ
ロセッサ・チップに内蔵されるようになっている。従っ
て、メモリマネジメント回路が内蔵されたマイクロプロ
セッサの1反想アドレスはマイクロプロセッサ・チップ
の内部で仮想ア1ζレスから実アドレスへの変換が行わ
れ、実アドレスだけがマイクロプロセッサチップから出
力されるようになっている。
ロセッサ・チップとは別のLSIとして製品化されてい
たが、最近のインテル社5!80386や日本電気型V
60等のようなVLS Iのマイクロプロセッサ・チ
ップでは仮想アドレスから実アドレスへの変換速度を向
上させるためにメモリ・マネジメント回路はマイクロプ
ロセッサ・チップに内蔵されるようになっている。従っ
て、メモリマネジメント回路が内蔵されたマイクロプロ
セッサの1反想アドレスはマイクロプロセッサ・チップ
の内部で仮想ア1ζレスから実アドレスへの変換が行わ
れ、実アドレスだけがマイクロプロセッサチップから出
力されるようになっている。
インサーキット・エミュレータは、マイクロプロセッサ
を応用したシステム(以後ターゲット・システムと呼ぶ
)の開発を効率良くに行うために用いるソフトウェア及
びハードウェアの開発装置の一種で、特にターゲット・
システムに含まれるプロゲラJ1をデバッグするために
用いられろ。
を応用したシステム(以後ターゲット・システムと呼ぶ
)の開発を効率良くに行うために用いるソフトウェア及
びハードウェアの開発装置の一種で、特にターゲット・
システムに含まれるプロゲラJ1をデバッグするために
用いられろ。
ターゲット・システムは、マイクロプロセッサと、プロ
グラムやデータが格納されるメモリ、ジステJ1を制御
するI10ボート等から構成されている。開発段階にあ
るターゲット・システムのマイクロプロセッサは直接固
着するのを避けて、ソケットを使用してプリント基板等
に搭載され、取り外すことが可能なように作られている
。
グラムやデータが格納されるメモリ、ジステJ1を制御
するI10ボート等から構成されている。開発段階にあ
るターゲット・システムのマイクロプロセッサは直接固
着するのを避けて、ソケットを使用してプリント基板等
に搭載され、取り外すことが可能なように作られている
。
インサーキット・エミュレータを用いて、このターゲッ
ト・システムに含まれるプロゲラ11をデバッグする場
合には、ターゲット・システムのマイクロプロセッサを
ソケットから取り外し、かわりにインサーキット・エミ
ュレータのプラグをそのソケットに接続する。インサー
キット・エミュレータには、本来ターゲット・システム
に搭載されろべきマイクロプロセッサと同等のマイクロ
プロセッサが内蔵されており、ターゲット・システムに
含まれるプログラムのデバッキングに用いられる。この
デバッキングは、インサーキット・エミュレータの内部
にあるマイクロプロセッサにより代わって行われるので
あり、このマイクロプロセッサはエミュレーション・マ
イクロプロセッサ、あるいはエミュレーション・プロセ
ッサと呼ばれる。すなわち、エミュレーション・プロセ
ッサが本来のマイクロプロセッサの代わりにターゲット
システムのプログラムを実行する。更にインサーキット
・エミュレータには、プログラムのデバッキングが可能
なように、ユーザが指定する任意の場所でプログラムの
実行を中断するブレーク機能や再度実行を開始するスタ
ート機能、プログラムの実行過程を記憶し表示するトレ
ース機能、メモリ内容やレジスタの内容を参照あるいは
変更する機能、ターゲット・システムのメモリ機能をエ
ミュレートするエミュレーション・メモリ等を持ってい
る。ユーザはこれらの機能を用いてターゲット・システ
ムのプログラムをデバッグする。
ト・システムに含まれるプロゲラ11をデバッグする場
合には、ターゲット・システムのマイクロプロセッサを
ソケットから取り外し、かわりにインサーキット・エミ
ュレータのプラグをそのソケットに接続する。インサー
キット・エミュレータには、本来ターゲット・システム
に搭載されろべきマイクロプロセッサと同等のマイクロ
プロセッサが内蔵されており、ターゲット・システムに
含まれるプログラムのデバッキングに用いられる。この
デバッキングは、インサーキット・エミュレータの内部
にあるマイクロプロセッサにより代わって行われるので
あり、このマイクロプロセッサはエミュレーション・マ
イクロプロセッサ、あるいはエミュレーション・プロセ
ッサと呼ばれる。すなわち、エミュレーション・プロセ
ッサが本来のマイクロプロセッサの代わりにターゲット
システムのプログラムを実行する。更にインサーキット
・エミュレータには、プログラムのデバッキングが可能
なように、ユーザが指定する任意の場所でプログラムの
実行を中断するブレーク機能や再度実行を開始するスタ
ート機能、プログラムの実行過程を記憶し表示するトレ
ース機能、メモリ内容やレジスタの内容を参照あるいは
変更する機能、ターゲット・システムのメモリ機能をエ
ミュレートするエミュレーション・メモリ等を持ってい
る。ユーザはこれらの機能を用いてターゲット・システ
ムのプログラムをデバッグする。
インサーキット・エミュレータの最も重要な機能はブレ
ーク機能である。プログラムの中のバグは結果的にター
ゲット・システムの動作異常を惹起する。ユーザは動作
異常が現れた時点ではプログラムのとこにバグがあるか
発見することは堆しいが、最終結果の中に子1すIせめ
出力があることを見てどこかにバグがあったことを知る
。そこで、デバッグする時には、プログラムの実行を任
意の場所で中断し、その時のレジスタやメモリの内容を
確認することを繰り返しながら最終的なバグの場所を発
見する。従ってブレーク機能は、プログラムの位置や、
データの位置を指定するためにアドレスを用い、このブ
レークさせたい位置をアドレスによって指定し、CP
Uが指定されたアドレスをアクセスした時にブレークす
るようにしたものが一般的である。
ーク機能である。プログラムの中のバグは結果的にター
ゲット・システムの動作異常を惹起する。ユーザは動作
異常が現れた時点ではプログラムのとこにバグがあるか
発見することは堆しいが、最終結果の中に子1すIせめ
出力があることを見てどこかにバグがあったことを知る
。そこで、デバッグする時には、プログラムの実行を任
意の場所で中断し、その時のレジスタやメモリの内容を
確認することを繰り返しながら最終的なバグの場所を発
見する。従ってブレーク機能は、プログラムの位置や、
データの位置を指定するためにアドレスを用い、このブ
レークさせたい位置をアドレスによって指定し、CP
Uが指定されたアドレスをアクセスした時にブレークす
るようにしたものが一般的である。
[従来の技術]
第3図に従来のインサーキット・エミュレータのブロッ
ク図を示す。従来のインサーキット・エミュレータにつ
いて図面を用いて説明する。
ク図を示す。従来のインサーキット・エミュレータにつ
いて図面を用いて説明する。
エミュレーション・プロセッサ7は、本来ターゲット・
システム5に用いられるマイクロプロセッサである。エ
ミュレーション・プロセッサ7の制御信号J、データバ
スb及び実アドレスdは、バッファ回路3及びバスgを
介してターゲットシステム5の、本来マイクロプロセッ
サが搭載されるべきCPUソケット4ζこ1妾続されて
いる。フルレーク検出回路6は、エミュレーション・プ
ロセッサ7の実アドレスdを入力し、ブレーク要求信号
fを出力する。ブレーク要求信号fは、エミュレーショ
ン・プロセッサ7に接続されている。
システム5に用いられるマイクロプロセッサである。エ
ミュレーション・プロセッサ7の制御信号J、データバ
スb及び実アドレスdは、バッファ回路3及びバスgを
介してターゲットシステム5の、本来マイクロプロセッ
サが搭載されるべきCPUソケット4ζこ1妾続されて
いる。フルレーク検出回路6は、エミュレーション・プ
ロセッサ7の実アドレスdを入力し、ブレーク要求信号
fを出力する。ブレーク要求信号fは、エミュレーショ
ン・プロセッサ7に接続されている。
この様に構成されたインサーキット・エミュレータは、
エミュレーション・プロセッサ7が、バッファ回路3と
CPUソケット4を通して接続されたターゲット・シス
テム5をアクセスすることによってプログラムを実行す
る。そのプログラムの実行中にブレーク検出回路6によ
って常時監視されている実アドレスdが予め設定された
値になったとき出力されるブレーク要求信号fはエミュ
レーション・プロセッサ7の実行を停止させる。
エミュレーション・プロセッサ7が、バッファ回路3と
CPUソケット4を通して接続されたターゲット・シス
テム5をアクセスすることによってプログラムを実行す
る。そのプログラムの実行中にブレーク検出回路6によ
って常時監視されている実アドレスdが予め設定された
値になったとき出力されるブレーク要求信号fはエミュ
レーション・プロセッサ7の実行を停止させる。
[発明が解決しようとする課題]
しかし、このようなインサーキット・エミュレータでは
次のような問題点があった。
次のような問題点があった。
(1)メモリ・マネジメント回路が内蔵されたマイクロ
プロセッサ用に仮想アドレスで設計されたプログラムの
デバッキングができなかった。なぜなら、エミュレーシ
ョン・プロセッサから出力されるアドレスはエミュレー
ション・プロセッサに内蔵されているメモリ・マネジメ
ント回路によって変換された後の実アドレスであるため
、仮想アドレスでブレーク点を設定することができない
からである。
プロセッサ用に仮想アドレスで設計されたプログラムの
デバッキングができなかった。なぜなら、エミュレーシ
ョン・プロセッサから出力されるアドレスはエミュレー
ション・プロセッサに内蔵されているメモリ・マネジメ
ント回路によって変換された後の実アドレスであるため
、仮想アドレスでブレーク点を設定することができない
からである。
(2)また、エミュレーション・プロセッサの故障でプ
ログラムの実行に異常が生じた場合、エミュレーション
・プロセッサの動作異常か、プログラムのバグかを即座
に判断することが難しかった。
ログラムの実行に異常が生じた場合、エミュレーション
・プロセッサの動作異常か、プログラムのバグかを即座
に判断することが難しかった。
[課題を解決するための手段]
この発明は、これらの問題点を解決するためになされた
ものであり、従来の一個であったエミュレーション・プ
ロセッサの代わりに、2個のエミュレーション・プロセ
ッサを用いる。これらを並列かつ同時に動作させる。こ
の際に、一方のエミュレーション・プロセッサからは実
アドレスを出力し、他方からは本来実アドレスが出力さ
れるタイミングと同じタイミングで仮想アドレスを出力
させ、この仮想アドレスと、ブレーク点として予め設定
された仮想アドレス値とを比較することによって仮想ア
ドレスによるブレークを可能にし、更に2個のエミュレ
ーション・プロセッサが出力する制御信号を常に比較し
、それらが異なったときに動作エラー信号を出力する比
較回路を設けることによって、エミュレーション・プロ
セッサの動作に異常があることをユーザに知らせるイン
サーキットエミュレータを提供することにある。
ものであり、従来の一個であったエミュレーション・プ
ロセッサの代わりに、2個のエミュレーション・プロセ
ッサを用いる。これらを並列かつ同時に動作させる。こ
の際に、一方のエミュレーション・プロセッサからは実
アドレスを出力し、他方からは本来実アドレスが出力さ
れるタイミングと同じタイミングで仮想アドレスを出力
させ、この仮想アドレスと、ブレーク点として予め設定
された仮想アドレス値とを比較することによって仮想ア
ドレスによるブレークを可能にし、更に2個のエミュレ
ーション・プロセッサが出力する制御信号を常に比較し
、それらが異なったときに動作エラー信号を出力する比
較回路を設けることによって、エミュレーション・プロ
セッサの動作に異常があることをユーザに知らせるイン
サーキットエミュレータを提供することにある。
ここに用いられる2個のエミュレーション・プロセッサ
は、どちらも実アドレスを出力するモードと仮想アドレ
スを出力するモードを内部に持ち、外部からこれらのモ
ードを設定できるようにした一般の使用に供されるマイ
クロプロセッサである。
は、どちらも実アドレスを出力するモードと仮想アドレ
スを出力するモードを内部に持ち、外部からこれらのモ
ードを設定できるようにした一般の使用に供されるマイ
クロプロセッサである。
2個のエミュレーション・プロセッサのうち一方を通常
モード(実アドレスを出力)に、また他方をデバッグ・
モード(仮想アドレスを出力)に設定して並列にかつ同
時に動作させる。デバッグモードに設定されたマイクロ
プロセッサは、通常モードに設定されたマイクロプロセ
ッサが出力する実アドレスに対応した仮想アドレスを出
力するように動作する。
モード(実アドレスを出力)に、また他方をデバッグ・
モード(仮想アドレスを出力)に設定して並列にかつ同
時に動作させる。デバッグモードに設定されたマイクロ
プロセッサは、通常モードに設定されたマイクロプロセ
ッサが出力する実アドレスに対応した仮想アドレスを出
力するように動作する。
[実施例]
第1図は、本発明の一実施例を示すブロック図である。
第1図を用いて本発明の実施例を具体的に説明する。
第1図において、第1のエミュレーション・プロセッサ
lは通常モードに設定され、本来ターゲットシステム5
のCPUソケット4に挿入されるべきマイクロプロセッ
サと同一のマイクロプロセッサであり実アドレスdを出
力する。第2のエミュレーション・プロセッサ2は、第
1のエミュレーション・プロセッサlと同じものである
がデバッグ・モードに設定され、チップ内部のメモリマ
ネジメント回路をバイパスして本来実アドレスが出力さ
れるタイミングと同じタイミングで仮想アドレスeを直
接出力する。
lは通常モードに設定され、本来ターゲットシステム5
のCPUソケット4に挿入されるべきマイクロプロセッ
サと同一のマイクロプロセッサであり実アドレスdを出
力する。第2のエミュレーション・プロセッサ2は、第
1のエミュレーション・プロセッサlと同じものである
がデバッグ・モードに設定され、チップ内部のメモリマ
ネジメント回路をバイパスして本来実アドレスが出力さ
れるタイミングと同じタイミングで仮想アドレスeを直
接出力する。
マイクロプロセッサを通常モード又はデバッグモードに
設定するための方法は、使用されるマイクロプロセッサ
毎に個々に異なる。ここでは、モード設定端子ml、m
2に特定の論理信号を与える方法をとっているが、他に
も特定の命令を与える方法、特殊なパターンの制御信号
を与える方法等がある。このインサーキット・エミュレ
ータにおいては、ターゲット・システムのマイクロプロ
セッサに指定されたモード設定方法に従ってモード設定
を行っている。
設定するための方法は、使用されるマイクロプロセッサ
毎に個々に異なる。ここでは、モード設定端子ml、m
2に特定の論理信号を与える方法をとっているが、他に
も特定の命令を与える方法、特殊なパターンの制御信号
を与える方法等がある。このインサーキット・エミュレ
ータにおいては、ターゲット・システムのマイクロプロ
セッサに指定されたモード設定方法に従ってモード設定
を行っている。
第1のエミュレーション・プロセッサlの入力制御信号
a、出力制御信号C、データバスb、及び実アドレスd
の各信号線は、バッファ回路3及びバスgを通してター
ゲット・システム50CPUソケツト4に接続されてい
る。第2のエミュレーション・プロセッサ20入力制御
信号およびデータの各信号線は、各々第1のエミュレー
ション・プロセッサlの入力制御信号a及びデータバス
bに接続されている。第2のエミュレーションプロセッ
サ2の仮想アドレスeは、ブレーク検出回路6に接続さ
れ、ブレーク検出回路6は、第2のエミュレーション・
プロセッサ2の仮想アドレスeを監視し、ブレーク要求
信号fを出力する。
a、出力制御信号C、データバスb、及び実アドレスd
の各信号線は、バッファ回路3及びバスgを通してター
ゲット・システム50CPUソケツト4に接続されてい
る。第2のエミュレーション・プロセッサ20入力制御
信号およびデータの各信号線は、各々第1のエミュレー
ション・プロセッサlの入力制御信号a及びデータバス
bに接続されている。第2のエミュレーションプロセッ
サ2の仮想アドレスeは、ブレーク検出回路6に接続さ
れ、ブレーク検出回路6は、第2のエミュレーション・
プロセッサ2の仮想アドレスeを監視し、ブレーク要求
信号fを出力する。
ブレーク要求信号rは、第1のエミュレーション・プロ
セッサ1と第2のエミュレーション・プロセッサ2に接
続されている。
セッサ1と第2のエミュレーション・プロセッサ2に接
続されている。
ブレーク検出回路6は、予め設定されたブレーク設定信
号elとプロセッサ2からの1反想アドレスeとが一致
したときに、ブレーク要求信号fをエミュレーション・
プロセッサl及び2に出力する。
号elとプロセッサ2からの1反想アドレスeとが一致
したときに、ブレーク要求信号fをエミュレーション・
プロセッサl及び2に出力する。
このように構成されたインサーキット・エミュレータの
動作を説明する。通常モードに設定された第1のエミュ
レーション・プロセッサ1がターゲット・システム5を
アクセスするときの状態と、その時同時に動作している
第2のエミュレーション・プロセッサの状態とを表1を
用いて説明する。
動作を説明する。通常モードに設定された第1のエミュ
レーション・プロセッサ1がターゲット・システム5を
アクセスするときの状態と、その時同時に動作している
第2のエミュレーション・プロセッサの状態とを表1を
用いて説明する。
第1のエミュレーション・プロセッサ1は、実アドレス
でターゲット・システム5をアクセスずろ。
でターゲット・システム5をアクセスずろ。
データをリードするときには、ターゲット・システム5
はデータバスbにデータを乗せ、第1のエミュレーショ
ン・プロセッサ1はそのデータを取り込む。データをラ
イトするときには、第1のエミュレーション・プロセッ
サlはデータをデータバスbに乗せ、ターゲット・シス
テム5内のメモリ又はIloに書き込む。一方、第2の
エミュレーション・プロセッサ2は、前記実アドレスに
対応する仮想アドレスをアクセスすることになる。
はデータバスbにデータを乗せ、第1のエミュレーショ
ン・プロセッサ1はそのデータを取り込む。データをラ
イトするときには、第1のエミュレーション・プロセッ
サlはデータをデータバスbに乗せ、ターゲット・シス
テム5内のメモリ又はIloに書き込む。一方、第2の
エミュレーション・プロセッサ2は、前記実アドレスに
対応する仮想アドレスをアクセスすることになる。
データをリードするときには、第2のエミュレーション
・プロセッサ2は、データバスbが第1のエミュレーシ
ョン・プロセッサ1と接続されているため、第1のエミ
ュレーション・プロセッサ1と同じデータを読み込むこ
とになる。ライト時には第2のエミュレーション・プロ
セッサ2は、デバッグ・モードに設定されているため、
データバスを電気的に切り離すように動作し、データを
データバスに出力しない。
・プロセッサ2は、データバスbが第1のエミュレーシ
ョン・プロセッサ1と接続されているため、第1のエミ
ュレーション・プロセッサ1と同じデータを読み込むこ
とになる。ライト時には第2のエミュレーション・プロ
セッサ2は、デバッグ・モードに設定されているため、
データバスを電気的に切り離すように動作し、データを
データバスに出力しない。
つまり、第1のエミュレーション・プロセッサ1は、バ
ッファ回路3を通してターゲット・システムをアクセス
し、ターゲット・システムのプログラムを実行する。第
2のエミュレーション・プロセッサ2は、ターゲット・
システムの同じプログラムを、第1のエミュレーション
・プロセッサ1と同時に実行しながら第1のエミュレー
ション・プロセッサlが出力する実アドレスdに対応す
る仮想アドレスeを出力する。
ッファ回路3を通してターゲット・システムをアクセス
し、ターゲット・システムのプログラムを実行する。第
2のエミュレーション・プロセッサ2は、ターゲット・
システムの同じプログラムを、第1のエミュレーション
・プロセッサ1と同時に実行しながら第1のエミュレー
ション・プロセッサlが出力する実アドレスdに対応す
る仮想アドレスeを出力する。
表1
表2にプログラムの実行順に実アドレスと仮想アドレス
の対応の例を、命令の二一モニックと16進数で表され
た仮想及び実アドレスで示す。
の対応の例を、命令の二一モニックと16進数で表され
た仮想及び実アドレスで示す。
表 2
この例は、仮想及び実アドレス共に下位12ビツトが共
通であり、上位ビットがメモリ・マネージメント回路に
よって仮想アドレスから実アドレスに変換されている。
通であり、上位ビットがメモリ・マネージメント回路に
よって仮想アドレスから実アドレスに変換されている。
つまり仮想アドレスの上位2桁と実アドレスの上位1桁
に着目すれは11が2に、12が1に、10が5に変換
されていることがわかる。
に着目すれは11が2に、12が1に、10が5に変換
されていることがわかる。
また、表2の2行目と3行目は仮想アドレスでは連続し
ているが、実アドレスでは不連続である。
ているが、実アドレスでは不連続である。
このように仮想アドレスを実アドレスから類推すること
は不可能である。
は不可能である。
また、仮想アドレスは、プログラムが作成された時点て
一義的に決定される。しかし、実アドレスは、プロクラ
ムのブロックがO8によって主メモリにロードされると
きに決定される。このため、実アドレスは常に固定の値
にはならず、あるブロックが主メモリにロードし直され
る度に異なる値になる可能性がある。
一義的に決定される。しかし、実アドレスは、プロクラ
ムのブロックがO8によって主メモリにロードされると
きに決定される。このため、実アドレスは常に固定の値
にはならず、あるブロックが主メモリにロードし直され
る度に異なる値になる可能性がある。
ブレーク検出回路6は、仮想アドレスeがブレーク点と
して予め設定された値elになったときブレーク要求信
号fを出力し、第1のエミュレーション・プロセッサl
および第2のエミュレーション・プロセッサ2のプログ
ラムの実行を停止させる。
して予め設定された値elになったときブレーク要求信
号fを出力し、第1のエミュレーション・プロセッサl
および第2のエミュレーション・プロセッサ2のプログ
ラムの実行を停止させる。
本実施例によれば、主メモリにロードされていないブロ
ック、つまり実アドレスが未決定のブロックの仮想アド
レスをブレーク点として予め設定した場合でも、そのブ
ロックが主メモリにロートされ、実行された時点でブレ
ークさせることができることは容易に類推できる。
ック、つまり実アドレスが未決定のブロックの仮想アド
レスをブレーク点として予め設定した場合でも、そのブ
ロックが主メモリにロートされ、実行された時点でブレ
ークさせることができることは容易に類推できる。
第2図に本発明の他の実施例を示す。第1図に示した実
施例との違いは、比較器8が加えられている点である。
施例との違いは、比較器8が加えられている点である。
通常モードに設定されたエミュレーション・ブロツセサ
とデバッグ・モードに設定されたエミュレーション・ブ
ロッセサの動作の差異を比較することによって、エミュ
レーション・プロセッサの動作異常をユーザに知らせよ
うとするものである。
とデバッグ・モードに設定されたエミュレーション・ブ
ロッセサの動作の差異を比較することによって、エミュ
レーション・プロセッサの動作異常をユーザに知らせよ
うとするものである。
比較回路8は、第1のエミュレーション・プロセッサ1
からの出力制御信号Cを第1の入力とし、第2のエミュ
レーション・プロセッサ2からの出力制御信号りを第2
の入力として両者を比較し、制御信号Cとhの論理値に
違いがあるときに動作エラー信号lを出力するものであ
る。
からの出力制御信号Cを第1の入力とし、第2のエミュ
レーション・プロセッサ2からの出力制御信号りを第2
の入力として両者を比較し、制御信号Cとhの論理値に
違いがあるときに動作エラー信号lを出力するものであ
る。
更に、第1のエミュレーション・プロセッサlの動作と
第2のエミュレーション・プロセッサ2の動作に違いが
発生した場合、比較回路8は動作エラー信号iを出力し
、エミュレーション・プロセッサの動作が異常であるこ
とをユーザに知らせる。第1のエミュレーション・プロ
セッサlの動作と第2のエミュレーション・プロセッサ
2の動作が違うことの理由は、両エミュレーション・プ
ロセッサ1及び2に入力されろ入力制御信号a、もしく
はデータバスbの内容を違った値として認識してしまっ
た場合、もしくはどちらかのエミュレーション・プロセ
ッサが故障した場合であり、その結果として出力制御信
号C及びhにも相違が現れることは、マイクロプロセッ
サの基本的な動作から明白である。
第2のエミュレーション・プロセッサ2の動作に違いが
発生した場合、比較回路8は動作エラー信号iを出力し
、エミュレーション・プロセッサの動作が異常であるこ
とをユーザに知らせる。第1のエミュレーション・プロ
セッサlの動作と第2のエミュレーション・プロセッサ
2の動作が違うことの理由は、両エミュレーション・プ
ロセッサ1及び2に入力されろ入力制御信号a、もしく
はデータバスbの内容を違った値として認識してしまっ
た場合、もしくはどちらかのエミュレーション・プロセ
ッサが故障した場合であり、その結果として出力制御信
号C及びhにも相違が現れることは、マイクロプロセッ
サの基本的な動作から明白である。
また、本発明と、インサーキット・エミュレータの付加
機能であるトレーサ、すなわちプログラムが実行された
経過を表示する機能を組み合わせることもできる。この
場合、仮想アドレスを指定することによって、仮想アド
レスによるトレース開始点の指定や、仮想アドレスその
ものをトレースすることにより仮想アドレスによるトレ
ース結果の表示を行うことが容易にできる。
機能であるトレーサ、すなわちプログラムが実行された
経過を表示する機能を組み合わせることもできる。この
場合、仮想アドレスを指定することによって、仮想アド
レスによるトレース開始点の指定や、仮想アドレスその
ものをトレースすることにより仮想アドレスによるトレ
ース結果の表示を行うことが容易にできる。
[発明の効果]
以上述べたように本発明によれば、
(1)仮想アドレスでブレーク点を設定することができ
るため、仮想アドレスで設計されているプログラムをデ
バッグすることができる。
るため、仮想アドレスで設計されているプログラムをデ
バッグすることができる。
(2)万が−、エミュレーション・プロセッサの動作に
異常が発生した場合でも、動作エラー信号によって異常
があったことを知ることができるため、ブaグラムのバ
グかエミュレーション・プロセッサの動作異常かを即座
に判断できろ。
異常が発生した場合でも、動作エラー信号によって異常
があったことを知ることができるため、ブaグラムのバ
グかエミュレーション・プロセッサの動作異常かを即座
に判断できろ。
第1図は本発明の実施例を示すブロック図、第2図は本
発明による他の実施例を示すブロック図、第3図は従来
のインサーキット・エミュレータの例を示すブロック図
である。 図中の、1は第1のエミュレーション・プロセッサ、2
は第2のエミュレーション・プロセッサ、3はバッファ
回路、4はCPUソケット、5はターゲット・システム
、6はブレーク検出回路、7はエミュレーション・プロ
セッサ、8は比較器、aは入力、l/制御信号、bはデ
ータ、Cは通常モード代行マイクロプロセッサの出力制
御信号、dは実アドレス、eは仮想アドレス、elはブ
レーク設定信号、fはブレーク要求信号、gはバス、h
は第2のエミュレーションプロセッサの出力制御信号、
■は動作エラー1を号、Jは制逓信号、rn+及びrn
2はモード設定端子である。
発明による他の実施例を示すブロック図、第3図は従来
のインサーキット・エミュレータの例を示すブロック図
である。 図中の、1は第1のエミュレーション・プロセッサ、2
は第2のエミュレーション・プロセッサ、3はバッファ
回路、4はCPUソケット、5はターゲット・システム
、6はブレーク検出回路、7はエミュレーション・プロ
セッサ、8は比較器、aは入力、l/制御信号、bはデ
ータ、Cは通常モード代行マイクロプロセッサの出力制
御信号、dは実アドレス、eは仮想アドレス、elはブ
レーク設定信号、fはブレーク要求信号、gはバス、h
は第2のエミュレーションプロセッサの出力制御信号、
■は動作エラー1を号、Jは制逓信号、rn+及びrn
2はモード設定端子である。
Claims (1)
- 【特許請求の範囲】 1、ターゲット・システム(5)のCPUソケット(4
)にバス(g)を介して接続して使用するインサーキッ
ト・エミュレータであって、 前記ターゲット・システムを動作させるためのプログラ
ムの実行を代行する通常モードで動作する第1のエミュ
レーション・プロセッサ(1)と;該第1のエミュレー
ション・プロセッサの入力制御信号(a)、出力制御信
号(c)、データバス(b)、及び実アドレス(d)の
各信号線が接続され、前記ターゲット・システムのCP
Uソケットに接続されるバスを形成するバッファ回路(
3)と;前記入力制御信号及びデータバスの各信号線が
接続され、前記第1のエミュレーション・プロセッサが
出力する実アドレスに対応する仮想アドレス(e)を出
力するデバッグ・モードで動作する第2のエミュレーシ
ョン・プロセッサ(2)と;前記仮想アドレスを入力し
、前記第1のエミュレーション・プロセッサと、前記第
2のエミュレーション・プロセッサに向けてブレーク要
求信号(f)を出力するブレーク検出回路(6)とを備
え、ブレーク点を仮想アドレスによって指定できるよう
にしたことを特徴とするインサーキット・エミュレータ
。 2、ターゲット・システム(5)のCPUソケット(4
)にバス(g)を介して接続して使用するインサーキッ
ト・エミュレータであって、 前記ターゲット・システムを動作させるためのプログラ
ムの実行を代行する通常モードで動作する第1のエミュ
レーション・プロセッサ(1)と;該第1のエミュレー
ション・プロセッサの入力制御信号(a)、出力制御信
号(c)、データバス(b)、及び実アドレス(d)の
各信号線が接続され、前記ターゲット・システムのCP
Uソケットに接続されるバスを形成するバッファ回路(
3)と;前記入力制御信号及びデータバスの各信号線が
接続され、前記第1のエミュレーション・プロセッサが
出力する実アドレスに対応する仮想アドレス(e)を出
力するデバッグ・モードで動作する第2のエミュレーシ
ョン・プロセッサ(2)と;前記仮想アドレスを入力し
、前記第1のエミュレーション・プロセッサと、前記第
2のエミュレーション・プロセッサにブレーク要求信号
(f)を出力するブレーク検出回路(6)と; 前記第1のエミュレーション・プロセッサの出力制御信
号を第1の入力とし、前記第2のエミュレーション・プ
ロセッサの出力制御信号を第2の入力とし、動作エラー
信号(1)を出力する比較回路(8)とを備え、ブレー
ク点を仮想アドレスによって指定できるようにしたこと
を特徴とするインサーキット・エミュレータ。
Applications Claiming Priority (4)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP62-27017 | 1987-02-06 | ||
| JP2701787 | 1987-02-06 | ||
| JP62-27016 | 1987-02-06 | ||
| JP2701687 | 1987-02-06 |
Publications (3)
| Publication Number | Publication Date |
|---|---|
| JPS641039A JPS641039A (en) | 1989-01-05 |
| JPH011039A true JPH011039A (ja) | 1989-01-05 |
| JP2651916B2 JP2651916B2 (ja) | 1997-09-10 |
Family
ID=26364880
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP63025053A Expired - Lifetime JP2651916B2 (ja) | 1987-02-06 | 1988-02-05 | インサーキット・エミュレータ |
Country Status (2)
| Country | Link |
|---|---|
| US (1) | US5132971A (ja) |
| JP (1) | JP2651916B2 (ja) |
Families Citing this family (40)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPH01270148A (ja) * | 1988-04-21 | 1989-10-27 | Nec Ic Microcomput Syst Ltd | エミュレーター |
| US5394544A (en) * | 1989-08-07 | 1995-02-28 | Ricoh Co., Ltd. | Software system debugger with distinct interrupt vector maps for debugging and application programs |
| US5551050A (en) * | 1989-12-20 | 1996-08-27 | Texas Instruments Incorporated | System and method using synchronized processors to perform real time internal monitoring of a data processing device |
| US5463760A (en) * | 1990-09-07 | 1995-10-31 | Nec Corporation | Break function in-circuit emulator for a microprocessor with a cache memory |
| US5493723A (en) * | 1990-11-06 | 1996-02-20 | National Semiconductor Corporation | Processor with in-system emulation circuitry which uses the same group of terminals to output program counter bits |
| US5455935A (en) * | 1991-05-31 | 1995-10-03 | Tandem Computers Incorporated | Clock synchronization system |
| US5321828A (en) * | 1991-06-07 | 1994-06-14 | Step Engineering | High speed microcomputer in-circuit emulator |
| JPH05257710A (ja) * | 1991-08-12 | 1993-10-08 | Advanced Micro Devicds Inc | 内部実行パラメータを与えるためのシステムおよびプロセッサによって実行されるべき命令を検証するための配列 |
| ATE192246T1 (de) * | 1991-09-23 | 2000-05-15 | Intel Corp | Rechnersystem mit software- unterbrechungsbefehlen, das selektiv in einem virtuellen modus arbeitet |
| JPH05128080A (ja) * | 1991-10-14 | 1993-05-25 | Mitsubishi Electric Corp | 情報処理装置 |
| US5386522A (en) * | 1991-12-30 | 1995-01-31 | International Business Machines, Corp. | Dynamic physical address aliasing during program debugging |
| US5629876A (en) * | 1992-07-10 | 1997-05-13 | Lsi Logic Corporation | Method and apparatus for interim in-situ testing of an electronic system with an inchoate ASIC |
| US5339262A (en) * | 1992-07-10 | 1994-08-16 | Lsi Logic Corporation | Method and apparatus for interim, in-situ testing of an electronic system with an inchoate ASIC |
| US5491793A (en) * | 1992-07-31 | 1996-02-13 | Fujitsu Limited | Debug support in a processor chip |
| US5333307A (en) * | 1992-08-17 | 1994-07-26 | Intel Corporation | Circuitry and method for causing a microcontroller/microprocessor to be on-circuit emulated |
| US5313618A (en) * | 1992-09-03 | 1994-05-17 | Metalink Corp. | Shared bus in-circuit emulator system and method |
| US5388060A (en) * | 1992-12-15 | 1995-02-07 | Storage Technology Corporation | Simulated host computer/channel interface system |
| US5574892A (en) * | 1993-06-30 | 1996-11-12 | Intel Corporation | Use of between-instruction breaks to implement complex in-circuit emulation features |
| US5539901A (en) * | 1993-09-30 | 1996-07-23 | Intel Corporation | Method and apparatus for system management mode support for in-circuit emulators |
| US5630052A (en) * | 1993-09-30 | 1997-05-13 | Intel Corporation | System development and debug tools for power management functions in a computer system |
| US5640542A (en) * | 1993-10-29 | 1997-06-17 | Intel Corporation | On-chip in-circuit-emulator memory mapping and breakpoint register modules |
| US5551013A (en) * | 1994-06-03 | 1996-08-27 | International Business Machines Corporation | Multiprocessor for hardware emulation |
| US5537536A (en) * | 1994-06-21 | 1996-07-16 | Intel Corporation | Apparatus and method for debugging electronic components through an in-circuit emulator |
| JP3846939B2 (ja) * | 1995-08-30 | 2006-11-15 | フリースケール セミコンダクター インコーポレイテッド | データプロセッサ |
| US5964893A (en) * | 1995-08-30 | 1999-10-12 | Motorola, Inc. | Data processing system for performing a trace function and method therefor |
| US5737516A (en) * | 1995-08-30 | 1998-04-07 | Motorola, Inc. | Data processing system for performing a debug function and method therefor |
| SE9801678L (sv) | 1998-05-13 | 1999-11-14 | Axis Ab | Datorchip och datoranordning med förbättrad avlusningsförmåga |
| US6618698B1 (en) * | 1999-08-12 | 2003-09-09 | Quickturn Design Systems, Inc. | Clustered processors in an emulation engine |
| DE10116861A1 (de) * | 2001-04-04 | 2002-10-31 | Infineon Technologies Ag | Programmgesteuerte Einheit |
| TWI220192B (en) * | 2001-11-06 | 2004-08-11 | Mediatek Inc | Memory access method and apparatus in ICE system |
| US7360117B1 (en) * | 2002-10-24 | 2008-04-15 | Verisilicon Holdings (Cayman Islands) Co. Ltd. | In-circuit emulation debugger and method of operation thereof |
| US20040153813A1 (en) * | 2002-12-17 | 2004-08-05 | Swoboda Gary L. | Apparatus and method for synchronization of trace streams from multiple processors |
| US20040133386A1 (en) * | 2002-12-17 | 2004-07-08 | Swoboda Gary L. | Apparatus and method for trace stream identification of a pause point in code execution sequence |
| US8132159B1 (en) | 2004-07-23 | 2012-03-06 | Green Hills Software, Inc. | Post-execution software debugger with event display |
| US8136096B1 (en) | 2004-07-23 | 2012-03-13 | Green Hills Software, Inc. | Backward post-execution software debugger |
| US8015552B1 (en) | 2004-07-23 | 2011-09-06 | Green Hills Software, Inc. | Post-execution software debugger with coverage display |
| US8271955B1 (en) | 2004-07-23 | 2012-09-18 | Green Hille Software, Inc. | Forward post-execution software debugger |
| US7653899B1 (en) | 2004-07-23 | 2010-01-26 | Green Hills Software, Inc. | Post-execution software debugger with performance display |
| US7913118B2 (en) * | 2008-10-15 | 2011-03-22 | Andes Technology Corporation | In-circuit debugging system and related method |
| US10241879B2 (en) * | 2017-04-28 | 2019-03-26 | Dell Products, Lp | Virtual debugging of server operations |
Family Cites Families (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US4636940A (en) * | 1983-03-31 | 1987-01-13 | Hewlett-Packard Company | Logic analyzer using source program or other user defined symbols in the trace specification and the trace listing |
| JPS60146341A (ja) * | 1984-01-09 | 1985-08-02 | Nec Corp | マイクロプロセツサ |
| US4635193A (en) * | 1984-06-27 | 1987-01-06 | Motorola, Inc. | Data processor having selective breakpoint capability with minimal overhead |
| US4674089A (en) * | 1985-04-16 | 1987-06-16 | Intel Corporation | In-circuit emulator |
-
1988
- 1988-02-03 US US07/151,886 patent/US5132971A/en not_active Expired - Fee Related
- 1988-02-05 JP JP63025053A patent/JP2651916B2/ja not_active Expired - Lifetime
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JP2651916B2 (ja) | インサーキット・エミュレータ | |
| JP2752592B2 (ja) | マイクロプロセッサ、マイクロプロセッサ−デバッグツール間信号伝送方法及びトレース方法 | |
| US6094730A (en) | Hardware-assisted firmware tracing method and apparatus | |
| JP3105223B2 (ja) | マイクロコンピュータ,マイクロプロセッサおよびコア・プロセッサ集積回路用デバッグ周辺装置 | |
| EP0942372B1 (en) | Processor with breakpoint circuit | |
| US5047926A (en) | Development and debug tool for microcomputers | |
| HK1000737B (en) | Debug peripheral for microcomputers, microprocessors and core processor integrated circuits and system using the same | |
| US20190361786A1 (en) | Semiconductor device and debug method | |
| EP0638864B1 (en) | Development support system for microcomputer with internal cache | |
| US20180181478A1 (en) | Performing diagnostic operations upon a target apparatus | |
| Kline et al. | The in-circuit approach to the development of microcomputer-based products | |
| JPH0477833A (ja) | デバッグ環境を備えた集積回路 | |
| JPH0550016B2 (ja) | ||
| JP4421148B2 (ja) | デバッグシステム | |
| JP2664644B2 (ja) | マイクロプロセッサのリセット方法 | |
| JP2902861B2 (ja) | トレース機能付バッファ装置 | |
| US7194401B2 (en) | Configuration for in-circuit emulation of a program-controlled unit | |
| JP2654105B2 (ja) | マイクロプロセッサ | |
| JP3019336B2 (ja) | マイクロプロセッサ開発支援装置 | |
| JPH04160650A (ja) | マイクロプロセッサ | |
| JP2558902B2 (ja) | 半導体集積回路装置 | |
| JPS59202546A (ja) | デバツグ装置 | |
| JPH04199336A (ja) | マイクロコンピュータ | |
| JP2004185356A (ja) | デバッグ装置 | |
| JPH02120940A (ja) | デバッグ支援回路 |