JPH011039A - In-circuit emulator - Google Patents

In-circuit emulator

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
Application number
JP63-25053A
Other languages
Japanese (ja)
Other versions
JPS641039A (en
JP2651916B2 (en
Inventor
小熊 康之
善文 今津
正田 政弘
Original Assignee
アンリツ株式会社
日本電気株式会社
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 アンリツ株式会社, 日本電気株式会社 filed Critical アンリツ株式会社
Publication of JPH011039A publication Critical patent/JPH011039A/en
Publication of JPS641039A publication Critical patent/JPS641039A/en
Application granted granted Critical
Publication of JP2651916B2 publication Critical patent/JP2651916B2/en
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Abstract

(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。
(57) [Summary] This bulletin contains application data before electronic filing, so abstract data is not recorded.

Description

【発明の詳細な説明】 [産業上の利用分野コ 本発明は、メモリ・マネージメント回路を内蔵したマイ
クロプロセッサを対象としたインサーキット・エミュレ
ータに閏する。
DETAILED DESCRIPTION OF THE INVENTION [Field of Industrial Application] The present invention relates to an in-circuit emulator intended for a microprocessor having a built-in memory management circuit.

コンピュータ技術において、コンピュータのプログラム
中実行の際に、速度を害わずに小さなメモリで大きなプ
ログラムを実行させ、メモリの使用効率を」二げる技術
の一つに仮想記憶技術がある。
In computer technology, virtual memory technology is one of the technologies that increases the efficiency of memory usage by allowing a large program to be executed using a small amount of memory without sacrificing speed when executing a computer program.

CPUがプログラムを実行する場合、CP Uがアクセ
スする主メモリのアドレスはランダムではなく、プログ
ラム実行中のある時間の近傍でみると一部分のアドレス
に集中するという性質がある。
When a CPU executes a program, the addresses of the main memory that the CPU accesses are not random, but tend to concentrate on a portion of addresses near a certain time during program execution.

仮想記憶技術とは、この性質を利用し、実行しようとす
るプログラム全体をハードディスクのような副メモリに
格納しておき、プログラムの実行に必要な部分のみを主
メモリにロードして実行することにより、少ないメモリ
で大きなプログラムを実行したり、複数プログラムの同
時実行(マルチスフ)を効率良く行う技術である。つま
り、プログラムは、ある一定の屯位のブロックに分割さ
れ、複数のブロックで成るプログラムの一連の実行中に
、今現在必要とされるブロックが主メモリにロードされ
、不要なブロックは副メモリに格納されたままになって
いる。プログラムの実行が進み、主メモリにロードされ
ていないブロックを実行しようとするときは、CPUは
プログラムの実行を一時中断し、O5(オペレーティン
グシステム)に制御を移す。このときO8は、例えば主
メモリにロードされている実行中のブロックの中で最も
遠い過去にアクセスされたもののように、アクセスが繰
り返し行われていないないブロックを探しだし、このよ
うな一応は不要と判断されるブロックを再度副メモリに
格納するか、捨てるかして主メモリ上に空きエリアを確
保する。次にO8は、引き続いて実行すべきブロックを
副メモリから主メモリの空きエリアに移してそこへロー
ドし、中断しているプログラムの実行を復活させる。前
述のように、実際には少ない主メモリ上でプログラムが
実行されているにもかかわらず、あたかも大きな仮想的
な主メモリがあって、そこにプログラム全体が記憶され
て動作しているかのごとく見えろためこの仮想的な主メ
モリに記憶することをを仮想記憶と呼んでいる。
Virtual memory technology utilizes this property to store the entire program to be executed in secondary memory such as a hard disk, and then loads only the parts necessary for program execution into main memory and executes it. , is a technology that efficiently executes large programs with little memory and simultaneously executes multiple programs (multi-programming). In other words, a program is divided into blocks of a certain size, and during a series of executions of a program consisting of multiple blocks, blocks that are currently needed are loaded into main memory, and unnecessary blocks are loaded into secondary memory. remains stored. As the program progresses and a block that has not been loaded into main memory is to be executed, the CPU temporarily suspends program execution and transfers control to O5 (operating system). At this time, the O8 searches for a block that has not been accessed repeatedly, such as the most recently accessed block among the active blocks loaded in main memory, and this process is unnecessary. A free area is secured in the main memory by storing the block determined to be in the secondary memory again or discarding it. Next, O8 moves the block to be subsequently executed from the secondary memory to a free area of the main memory and loads it there, thereby resuming execution of the interrupted program. As mentioned above, even though the program is actually being executed in a small amount of main memory, it appears as if there is a large virtual main memory in which the entire program is stored and running. Storing data in this virtual main memory is called virtual memory.

この仮想記憶技術を実現するためには仮想記憶における
アドレス(仮想アドレス)と、そのプログラムの一部が
記憶されている主メモリのアドレス(実アドレス)との
変換を行う回路が必要である。
In order to realize this virtual memory technology, a circuit is required that converts addresses in virtual memory (virtual addresses) and addresses in main memory (real addresses) where part of the program is stored.

この回路をメモリ・マネジメント回路と呼ぶ。メモリ・
マネジメント回路は、O8がプログラム中の所望のブロ
ックを主メモリにロードする時に決定した実アドレスが
記憶されている対応テーブルを参照して仮想アドレスか
ら実アドレスへの変換を行う。メモリ・マネジメント回
路には、幾つかの変1り情報を記憶するT L B (
Translation Look−aside Bu
ffer)があり、このTLBの内容は、対応テーブル
を参照して変換した情報で常に更新されるようになって
いる。メモリ・マネーメント回路は、常に対応テーブル
を参照して変換を行うわけでなく、TLBを参照して変
換可能な場合には直接変換を行い、TLBに変換情報が
ない場合のみ対応テーブルの参照を行うことによりメモ
リのアクセス回数を少なくしている。
This circuit is called a memory management circuit. memory·
The management circuit converts a virtual address into a real address by referring to a correspondence table in which the real address determined when the O8 loads a desired block in the program into the main memory is stored. The memory management circuit has a TLB (
Translation Look-aside Bu
ffer), and the contents of this TLB are always updated with information converted by referring to the correspondence table. The memory management circuit does not always refer to the correspondence table to perform conversion, but refers to the TLB and performs direct conversion when conversion is possible, and refers to the correspondence table only when there is no conversion information in the TLB. This reduces the number of memory accesses.

つまり、仮想アドレスとはメモリ・マネージメント回路
によって変換される前のアドレスであり、実アドレスと
は変換後のアドレスである。通常のプログラムは、この
仮想アドレスで動作するように設計されている。
That is, a virtual address is an address before being translated by the memory management circuit, and a real address is an address after being translated. Normal programs are designed to operate at this virtual address.

従来、このメモリ・マネージメント回路は、マイクロプ
ロセッサ・チップとは別のLSIとして製品化されてい
たが、最近のインテル社5!80386や日本電気型V
 60等のようなVLS Iのマイクロプロセッサ・チ
ップでは仮想アドレスから実アドレスへの変換速度を向
上させるためにメモリ・マネジメント回路はマイクロプ
ロセッサ・チップに内蔵されるようになっている。従っ
て、メモリマネジメント回路が内蔵されたマイクロプロ
セッサの1反想アドレスはマイクロプロセッサ・チップ
の内部で仮想ア1ζレスから実アドレスへの変換が行わ
れ、実アドレスだけがマイクロプロセッサチップから出
力されるようになっている。
Traditionally, this memory management circuit was commercialized as an LSI separate from the microprocessor chip, but recently Intel's 5!80386 and Nippon Electric V
In VLSI microprocessor chips such as VLSI 60, a memory management circuit is built into the microprocessor chip in order to improve the speed of conversion from virtual addresses to real addresses. Therefore, one virtual address of a microprocessor with a built-in memory management circuit is converted from a virtual address to a real address inside the microprocessor chip, so that only the real address is output from the microprocessor chip. It has become.

インサーキット・エミュレータは、マイクロプロセッサ
を応用したシステム(以後ターゲット・システムと呼ぶ
)の開発を効率良くに行うために用いるソフトウェア及
びハードウェアの開発装置の一種で、特にターゲット・
システムに含まれるプロゲラJ1をデバッグするために
用いられろ。
An in-circuit emulator is a type of software and hardware development equipment used to efficiently develop a system that uses a microprocessor (hereinafter referred to as a target system).
Used to debug Progera J1 included in the system.

ターゲット・システムは、マイクロプロセッサと、プロ
グラムやデータが格納されるメモリ、ジステJ1を制御
するI10ボート等から構成されている。開発段階にあ
るターゲット・システムのマイクロプロセッサは直接固
着するのを避けて、ソケットを使用してプリント基板等
に搭載され、取り外すことが可能なように作られている
The target system is composed of a microprocessor, a memory in which programs and data are stored, an I10 board that controls the register J1, and the like. The microprocessor of a target system at the development stage is designed to be mounted on a printed circuit board using a socket and to be removable, rather than being directly attached.

インサーキット・エミュレータを用いて、このターゲッ
ト・システムに含まれるプロゲラ11をデバッグする場
合には、ターゲット・システムのマイクロプロセッサを
ソケットから取り外し、かわりにインサーキット・エミ
ュレータのプラグをそのソケットに接続する。インサー
キット・エミュレータには、本来ターゲット・システム
に搭載されろべきマイクロプロセッサと同等のマイクロ
プロセッサが内蔵されており、ターゲット・システムに
含まれるプログラムのデバッキングに用いられる。この
デバッキングは、インサーキット・エミュレータの内部
にあるマイクロプロセッサにより代わって行われるので
あり、このマイクロプロセッサはエミュレーション・マ
イクロプロセッサ、あるいはエミュレーション・プロセ
ッサと呼ばれる。すなわち、エミュレーション・プロセ
ッサが本来のマイクロプロセッサの代わりにターゲット
システムのプログラムを実行する。更にインサーキット
・エミュレータには、プログラムのデバッキングが可能
なように、ユーザが指定する任意の場所でプログラムの
実行を中断するブレーク機能や再度実行を開始するスタ
ート機能、プログラムの実行過程を記憶し表示するトレ
ース機能、メモリ内容やレジスタの内容を参照あるいは
変更する機能、ターゲット・システムのメモリ機能をエ
ミュレートするエミュレーション・メモリ等を持ってい
る。ユーザはこれらの機能を用いてターゲット・システ
ムのプログラムをデバッグする。
When debugging the programmer 11 included in this target system using an in-circuit emulator, the microprocessor of the target system is removed from the socket and the plug of the in-circuit emulator is connected to the socket instead. An in-circuit emulator has a built-in microprocessor that is equivalent to the microprocessor that should originally be installed in the target system, and is used for debugging programs included in the target system. This debugging is performed on behalf of a microprocessor inside the in-circuit emulator, and this microprocessor is called an emulation microprocessor or emulation processor. That is, the emulation processor executes the target system's programs in place of the original microprocessor. Furthermore, in-circuit emulators have a break function that suspends program execution at any location specified by the user, a start function that restarts execution, and a memory function that stores the program execution process to enable program debugging. It has a trace function to display, a function to refer to or change the contents of memory and registers, and an emulation memory to emulate the memory functions of the target system. Users use these functions to debug programs on the target system.

インサーキット・エミュレータの最も重要な機能はブレ
ーク機能である。プログラムの中のバグは結果的にター
ゲット・システムの動作異常を惹起する。ユーザは動作
異常が現れた時点ではプログラムのとこにバグがあるか
発見することは堆しいが、最終結果の中に子1すIせめ
出力があることを見てどこかにバグがあったことを知る
。そこで、デバッグする時には、プログラムの実行を任
意の場所で中断し、その時のレジスタやメモリの内容を
確認することを繰り返しながら最終的なバグの場所を発
見する。従ってブレーク機能は、プログラムの位置や、
データの位置を指定するためにアドレスを用い、このブ
レークさせたい位置をアドレスによって指定し、CP 
Uが指定されたアドレスをアクセスした時にブレークす
るようにしたものが一般的である。
The most important function of an in-circuit emulator is the break function. Bugs in the program result in abnormal operation of the target system. It is difficult for the user to discover whether there is a bug in the program when an abnormality appears, but it is difficult for the user to discover whether there is a bug in the program when an abnormality occurs, but when the user sees that there is at least one output in the final result, it is easy to realize that there is a bug somewhere. Know. Therefore, when debugging, the final location of the bug is discovered by repeatedly interrupting program execution at an arbitrary location and checking the contents of registers and memory at that time. Therefore, the break function depends on the position of the program,
Use an address to specify the data location, specify the location where you want to break using the address, and
Generally, a break occurs when U accesses a specified address.

[従来の技術] 第3図に従来のインサーキット・エミュレータのブロッ
ク図を示す。従来のインサーキット・エミュレータにつ
いて図面を用いて説明する。
[Prior Art] FIG. 3 shows a block diagram of a conventional in-circuit emulator. A conventional in-circuit emulator will be explained using drawings.

エミュレーション・プロセッサ7は、本来ターゲット・
システム5に用いられるマイクロプロセッサである。エ
ミュレーション・プロセッサ7の制御信号J、データバ
スb及び実アドレスdは、バッファ回路3及びバスgを
介してターゲットシステム5の、本来マイクロプロセッ
サが搭載されるべきCPUソケット4ζこ1妾続されて
いる。フルレーク検出回路6は、エミュレーション・プ
ロセッサ7の実アドレスdを入力し、ブレーク要求信号
fを出力する。ブレーク要求信号fは、エミュレーショ
ン・プロセッサ7に接続されている。
Emulation processor 7 is originally a target
This is a microprocessor used in System 5. The control signal J, data bus b, and real address d of the emulation processor 7 are connected via the buffer circuit 3 and the bus g to the CPU socket 4ζ of the target system 5, in which the microprocessor should originally be installed. . The full rake detection circuit 6 inputs the real address d of the emulation processor 7 and outputs a break request signal f. Break request signal f is connected to emulation processor 7.

この様に構成されたインサーキット・エミュレータは、
エミュレーション・プロセッサ7が、バッファ回路3と
CPUソケット4を通して接続されたターゲット・シス
テム5をアクセスすることによってプログラムを実行す
る。そのプログラムの実行中にブレーク検出回路6によ
って常時監視されている実アドレスdが予め設定された
値になったとき出力されるブレーク要求信号fはエミュ
レーション・プロセッサ7の実行を停止させる。
The in-circuit emulator configured in this way is
The emulation processor 7 executes the program by accessing the target system 5 connected through the buffer circuit 3 and the CPU socket 4. A break request signal f output when the real address d, which is constantly monitored by the break detection circuit 6 during execution of the program, reaches a preset value causes the emulation processor 7 to stop execution.

[発明が解決しようとする課題] しかし、このようなインサーキット・エミュレータでは
次のような問題点があった。
[Problems to be Solved by the Invention] However, such in-circuit emulators have the following problems.

(1)メモリ・マネジメント回路が内蔵されたマイクロ
プロセッサ用に仮想アドレスで設計されたプログラムの
デバッキングができなかった。なぜなら、エミュレーシ
ョン・プロセッサから出力されるアドレスはエミュレー
ション・プロセッサに内蔵されているメモリ・マネジメ
ント回路によって変換された後の実アドレスであるため
、仮想アドレスでブレーク点を設定することができない
からである。
(1) It was not possible to debug a program designed using virtual addresses for a microprocessor with a built-in memory management circuit. This is because the address output from the emulation processor is a real address after being converted by the memory management circuit built into the emulation processor, so breakpoints cannot be set at virtual addresses.

(2)また、エミュレーション・プロセッサの故障でプ
ログラムの実行に異常が生じた場合、エミュレーション
・プロセッサの動作異常か、プログラムのバグかを即座
に判断することが難しかった。
(2) Furthermore, when an abnormality occurs in the execution of a program due to a failure of the emulation processor, it is difficult to immediately determine whether it is an operational abnormality in the emulation processor or a bug in the program.

[課題を解決するための手段] この発明は、これらの問題点を解決するためになされた
ものであり、従来の一個であったエミュレーション・プ
ロセッサの代わりに、2個のエミュレーション・プロセ
ッサを用いる。これらを並列かつ同時に動作させる。こ
の際に、一方のエミュレーション・プロセッサからは実
アドレスを出力し、他方からは本来実アドレスが出力さ
れるタイミングと同じタイミングで仮想アドレスを出力
させ、この仮想アドレスと、ブレーク点として予め設定
された仮想アドレス値とを比較することによって仮想ア
ドレスによるブレークを可能にし、更に2個のエミュレ
ーション・プロセッサが出力する制御信号を常に比較し
、それらが異なったときに動作エラー信号を出力する比
較回路を設けることによって、エミュレーション・プロ
セッサの動作に異常があることをユーザに知らせるイン
サーキットエミュレータを提供することにある。
[Means for Solving the Problems] The present invention was made to solve these problems, and uses two emulation processors instead of the conventional one emulation processor. These are operated in parallel and simultaneously. At this time, one emulation processor outputs a real address, the other emulation processor outputs a virtual address at the same timing that the real address would originally be output, and this virtual address and the break point set in advance are A comparison circuit is provided to enable a break based on a virtual address by comparing the virtual address values, and to constantly compare the control signals output by the two emulation processors and output an operation error signal when they differ. Accordingly, it is an object of the present invention to provide an in-circuit emulator that notifies a user that there is an abnormality in the operation of an emulation processor.

ここに用いられる2個のエミュレーション・プロセッサ
は、どちらも実アドレスを出力するモードと仮想アドレ
スを出力するモードを内部に持ち、外部からこれらのモ
ードを設定できるようにした一般の使用に供されるマイ
クロプロセッサである。
The two emulation processors used here both have an internal mode that outputs real addresses and a mode that outputs virtual addresses, and are used for general use so that these modes can be set externally. It is a microprocessor.

2個のエミュレーション・プロセッサのうち一方を通常
モード(実アドレスを出力)に、また他方をデバッグ・
モード(仮想アドレスを出力)に設定して並列にかつ同
時に動作させる。デバッグモードに設定されたマイクロ
プロセッサは、通常モードに設定されたマイクロプロセ
ッサが出力する実アドレスに対応した仮想アドレスを出
力するように動作する。
Set one of the two emulation processors to normal mode (outputs real addresses) and the other to debug mode.
mode (output virtual address) and operate in parallel and simultaneously. A microprocessor set to debug mode operates to output a virtual address corresponding to a real address output by a microprocessor set to normal mode.

[実施例] 第1図は、本発明の一実施例を示すブロック図である。[Example] FIG. 1 is a block diagram showing one embodiment of the present invention.

第1図を用いて本発明の実施例を具体的に説明する。An embodiment of the present invention will be specifically described using FIG.

第1図において、第1のエミュレーション・プロセッサ
lは通常モードに設定され、本来ターゲットシステム5
のCPUソケット4に挿入されるべきマイクロプロセッ
サと同一のマイクロプロセッサであり実アドレスdを出
力する。第2のエミュレーション・プロセッサ2は、第
1のエミュレーション・プロセッサlと同じものである
がデバッグ・モードに設定され、チップ内部のメモリマ
ネジメント回路をバイパスして本来実アドレスが出力さ
れるタイミングと同じタイミングで仮想アドレスeを直
接出力する。
In FIG. 1, the first emulation processor l is set to normal mode and is originally connected to the target system 5.
This microprocessor is the same as the microprocessor to be inserted into the CPU socket 4 of , and outputs the real address d. The second emulation processor 2 is the same as the first emulation processor l, but is set to debug mode, bypassing the memory management circuit inside the chip and outputting the real address at the same timing as originally. directly outputs the virtual address e.

マイクロプロセッサを通常モード又はデバッグモードに
設定するための方法は、使用されるマイクロプロセッサ
毎に個々に異なる。ここでは、モード設定端子ml、m
2に特定の論理信号を与える方法をとっているが、他に
も特定の命令を与える方法、特殊なパターンの制御信号
を与える方法等がある。このインサーキット・エミュレ
ータにおいては、ターゲット・システムのマイクロプロ
セッサに指定されたモード設定方法に従ってモード設定
を行っている。
The methods for setting a microprocessor into normal or debug mode vary depending on the microprocessor used. Here, mode setting terminals ml, m
2, a method is adopted in which a specific logic signal is given to the controller, but there are other methods such as giving a specific command and a method of giving a special pattern of control signals. In this in-circuit emulator, mode setting is performed according to a mode setting method specified for the microprocessor of the target system.

第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を出力する。
Input control signal a, output control signal C, data bus b, and real address d of the first emulation processor l
Each signal line is connected to a target system 50 CPU socket 4 through a buffer circuit 3 and a bus g. The second emulation processor 20 input control signal and data signal lines are respectively connected to the input control signal a and data bus b of the first emulation processor l. The virtual address e of the second emulation processor 2 is connected to a break detection circuit 6, and the break detection circuit 6 is connected to the second emulation processor 2.
The virtual address e of the processor 2 is monitored and a break request signal f is output.

ブレーク要求信号rは、第1のエミュレーション・プロ
セッサ1と第2のエミュレーション・プロセッサ2に接
続されている。
The break request signal r is connected to the first emulation processor 1 and the second emulation processor 2.

ブレーク検出回路6は、予め設定されたブレーク設定信
号elとプロセッサ2からの1反想アドレスeとが一致
したときに、ブレーク要求信号fをエミュレーション・
プロセッサl及び2に出力する。
The break detection circuit 6 emulates and emulates a break request signal f when a preset break setting signal el and one reflection address e from the processor 2 match.
Output to processors l and 2.

このように構成されたインサーキット・エミュレータの
動作を説明する。通常モードに設定された第1のエミュ
レーション・プロセッサ1がターゲット・システム5を
アクセスするときの状態と、その時同時に動作している
第2のエミュレーション・プロセッサの状態とを表1を
用いて説明する。
The operation of the in-circuit emulator configured in this way will be explained. The state when the first emulation processor 1 set to the normal mode accesses the target system 5 and the state of the second emulation processor operating at the same time will be explained using Table 1.

第1のエミュレーション・プロセッサ1は、実アドレス
でターゲット・システム5をアクセスずろ。
The first emulation processor 1 accesses the target system 5 at a real address.

データをリードするときには、ターゲット・システム5
はデータバスbにデータを乗せ、第1のエミュレーショ
ン・プロセッサ1はそのデータを取り込む。データをラ
イトするときには、第1のエミュレーション・プロセッ
サlはデータをデータバスbに乗せ、ターゲット・シス
テム5内のメモリ又はIloに書き込む。一方、第2の
エミュレーション・プロセッサ2は、前記実アドレスに
対応する仮想アドレスをアクセスすることになる。
When reading data, target system 5
puts data on data bus b, and first emulation processor 1 takes in the data. When writing data, the first emulation processor l puts the data on the data bus b and writes it to the memory or Ilo in the target system 5. On the other hand, the second emulation processor 2 accesses the virtual address corresponding to the real address.

データをリードするときには、第2のエミュレーション
・プロセッサ2は、データバスbが第1のエミュレーシ
ョン・プロセッサ1と接続されているため、第1のエミ
ュレーション・プロセッサ1と同じデータを読み込むこ
とになる。ライト時には第2のエミュレーション・プロ
セッサ2は、デバッグ・モードに設定されているため、
データバスを電気的に切り離すように動作し、データを
データバスに出力しない。
When reading data, the second emulation processor 2 reads the same data as the first emulation processor 1 because the data bus b is connected to the first emulation processor 1. At the time of writing, the second emulation processor 2 is set to debug mode, so
Operates to electrically disconnect the data bus and does not output data to the data bus.

つまり、第1のエミュレーション・プロセッサ1は、バ
ッファ回路3を通してターゲット・システムをアクセス
し、ターゲット・システムのプログラムを実行する。第
2のエミュレーション・プロセッサ2は、ターゲット・
システムの同じプログラムを、第1のエミュレーション
・プロセッサ1と同時に実行しながら第1のエミュレー
ション・プロセッサlが出力する実アドレスdに対応す
る仮想アドレスeを出力する。
That is, the first emulation processor 1 accesses the target system through the buffer circuit 3 and executes the program of the target system. The second emulation processor 2
While executing the same program in the system simultaneously with the first emulation processor 1, the first emulation processor l outputs a virtual address e corresponding to the real address d output.

表1 表2にプログラムの実行順に実アドレスと仮想アドレス
の対応の例を、命令の二一モニックと16進数で表され
た仮想及び実アドレスで示す。
Table 1 Table 2 shows an example of the correspondence between real addresses and virtual addresses in the order of program execution, using the bimonics of instructions and the virtual and real addresses expressed in hexadecimal numbers.

表  2 この例は、仮想及び実アドレス共に下位12ビツトが共
通であり、上位ビットがメモリ・マネージメント回路に
よって仮想アドレスから実アドレスに変換されている。
Table 2 In this example, the lower 12 bits are common to both the virtual and real addresses, and the upper bits are converted from the virtual address to the real address by the memory management circuit.

つまり仮想アドレスの上位2桁と実アドレスの上位1桁
に着目すれは11が2に、12が1に、10が5に変換
されていることがわかる。
In other words, if we look at the upper two digits of the virtual address and the upper one digit of the real address, we can see that 11 is converted to 2, 12 is converted to 1, and 10 is converted to 5.

また、表2の2行目と3行目は仮想アドレスでは連続し
ているが、実アドレスでは不連続である。
Further, the second and third lines of Table 2 are continuous in terms of virtual addresses, but are discontinuous in terms of real addresses.

このように仮想アドレスを実アドレスから類推すること
は不可能である。
It is impossible to infer a virtual address from a real address in this way.

また、仮想アドレスは、プログラムが作成された時点て
一義的に決定される。しかし、実アドレスは、プロクラ
ムのブロックがO8によって主メモリにロードされると
きに決定される。このため、実アドレスは常に固定の値
にはならず、あるブロックが主メモリにロードし直され
る度に異なる値になる可能性がある。
Furthermore, the virtual address is uniquely determined at the time the program is created. However, the real address is determined when the block of program is loaded into main memory by the O8. Therefore, the real address does not always have a fixed value, but may have a different value each time a block is reloaded into main memory.

ブレーク検出回路6は、仮想アドレスeがブレーク点と
して予め設定された値elになったときブレーク要求信
号fを出力し、第1のエミュレーション・プロセッサl
および第2のエミュレーション・プロセッサ2のプログ
ラムの実行を停止させる。
The break detection circuit 6 outputs a break request signal f when the virtual address e reaches a value el set in advance as a break point, and the break detection circuit 6 outputs a break request signal f to the first emulation processor l.
and stops the execution of the program in the second emulation processor 2.

本実施例によれば、主メモリにロードされていないブロ
ック、つまり実アドレスが未決定のブロックの仮想アド
レスをブレーク点として予め設定した場合でも、そのブ
ロックが主メモリにロートされ、実行された時点でブレ
ークさせることができることは容易に類推できる。
According to this embodiment, even if the virtual address of a block that has not been loaded into main memory, that is, the real address of a block whose real address has not yet been determined, is set in advance as a break point, the point at which the block is loaded into main memory and executed It can be easily inferred that a break can be caused by

第2図に本発明の他の実施例を示す。第1図に示した実
施例との違いは、比較器8が加えられている点である。
FIG. 2 shows another embodiment of the invention. The difference from the embodiment shown in FIG. 1 is that a comparator 8 is added.

通常モードに設定されたエミュレーション・ブロツセサ
とデバッグ・モードに設定されたエミュレーション・ブ
ロッセサの動作の差異を比較することによって、エミュ
レーション・プロセッサの動作異常をユーザに知らせよ
うとするものである。
By comparing the difference in operation between an emulation processor set to normal mode and an emulation processor set to debug mode, the user is notified of abnormal operation of the emulation processor.

比較回路8は、第1のエミュレーション・プロセッサ1
からの出力制御信号Cを第1の入力とし、第2のエミュ
レーション・プロセッサ2からの出力制御信号りを第2
の入力として両者を比較し、制御信号Cとhの論理値に
違いがあるときに動作エラー信号lを出力するものであ
る。
Comparison circuit 8 includes first emulation processor 1
The output control signal C from the second emulation processor 2 is used as the first input, and the output control signal C from the second emulation processor 2 is used as the second input.
The control signals C and h are input to compare the two, and when there is a difference in the logical values of the control signals C and h, an operation error signal l is output.

更に、第1のエミュレーション・プロセッサlの動作と
第2のエミュレーション・プロセッサ2の動作に違いが
発生した場合、比較回路8は動作エラー信号iを出力し
、エミュレーション・プロセッサの動作が異常であるこ
とをユーザに知らせる。第1のエミュレーション・プロ
セッサlの動作と第2のエミュレーション・プロセッサ
2の動作が違うことの理由は、両エミュレーション・プ
ロセッサ1及び2に入力されろ入力制御信号a、もしく
はデータバスbの内容を違った値として認識してしまっ
た場合、もしくはどちらかのエミュレーション・プロセ
ッサが故障した場合であり、その結果として出力制御信
号C及びhにも相違が現れることは、マイクロプロセッ
サの基本的な動作から明白である。
Further, if a difference occurs between the operation of the first emulation processor l and the operation of the second emulation processor 2, the comparison circuit 8 outputs an operation error signal i, indicating that the operation of the emulation processor is abnormal. Inform the user. The reason why the operation of the first emulation processor l and the operation of the second emulation processor 2 are different is that the input control signal a input to both emulation processors 1 and 2 or the contents of the data bus b are different. It is clear from the basic operation of a microprocessor that a difference will appear in the output control signals C and h as a result. It is.

また、本発明と、インサーキット・エミュレータの付加
機能であるトレーサ、すなわちプログラムが実行された
経過を表示する機能を組み合わせることもできる。この
場合、仮想アドレスを指定することによって、仮想アド
レスによるトレース開始点の指定や、仮想アドレスその
ものをトレースすることにより仮想アドレスによるトレ
ース結果の表示を行うことが容易にできる。
Further, the present invention can be combined with a tracer, which is an additional function of an in-circuit emulator, that is, a function of displaying the progress of program execution. In this case, by specifying the virtual address, it is possible to easily specify the trace start point using the virtual address, and to display the tracing result using the virtual address by tracing the virtual address itself.

[発明の効果] 以上述べたように本発明によれば、 (1)仮想アドレスでブレーク点を設定することができ
るため、仮想アドレスで設計されているプログラムをデ
バッグすることができる。
[Effects of the Invention] As described above, according to the present invention, (1) Break points can be set at virtual addresses, so a program designed using virtual addresses can be debugged.

(2)万が−、エミュレーション・プロセッサの動作に
異常が発生した場合でも、動作エラー信号によって異常
があったことを知ることができるため、ブaグラムのバ
グかエミュレーション・プロセッサの動作異常かを即座
に判断できろ。
(2) Even in the unlikely event that an abnormality occurs in the operation of the emulation processor, it is possible to know that the abnormality has occurred from the operation error signal, so it is possible to determine whether it is a bug in the program or an abnormality in the operation of the emulation processor. Be able to judge instantly.

【図面の簡単な説明】[Brief explanation of the drawing]

第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はモード設定端子である。
FIG. 1 is a block diagram showing an embodiment of the present invention, FIG. 2 is a block diagram showing another embodiment of the invention, and FIG. 3 is a block diagram showing an example of a conventional in-circuit emulator. In the figure, 1 is the first emulation processor, 2
is the second emulation processor, 3 is the buffer circuit, 4 is the CPU socket, 5 is the target system, 6 is the break detection circuit, 7 is the emulation processor, 8 is the comparator, a is the input, l/control signal, b is data, C is the output control signal of the normal mode proxy microprocessor, d is the real address, e is the virtual address, el is the break setting signal, f is the break request signal, g is the bus, h
is the output control signal of the second emulation processor,
■ indicates operation error 1, J indicates control signal, rn+ and rn
2 is a mode setting terminal.

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)とを備え、ブレー
ク点を仮想アドレスによって指定できるようにしたこと
を特徴とするインサーキット・エミュレータ。
[Claims] 1. CPU socket (4) of target system (5)
) via a bus (g), the first emulation processor (1) operates in a normal mode and executes a program for operating the target system. ) and; the input control signal (a), output control signal (c), data bus (b), and real address (d) signal lines of the first emulation processor are connected, and C.P.
Buffer circuit that forms the bus connected to the U socket (
3) a second emulation processor connected to each signal line of the input control signal and data bus and operating in a debug mode outputting a virtual address (e) corresponding to the real address output by the first emulation processor; an emulation processor (2); and a break detection circuit (6) that receives the virtual address and outputs a break request signal (f) to the first emulation processor and the second emulation processor. An in-circuit emulator characterized in that break points can be specified by virtual addresses. 2. CPU socket (4) of target system (5)
) via a bus (g), the first emulation processor (1) operates in a normal mode and executes a program for operating the target system. ) and; the input control signal (a), output control signal (c), data bus (b), and real address (d) signal lines of the first emulation processor are connected, and C.P.
Buffer circuit that forms the bus connected to the U socket (
3) a second emulation processor connected to each signal line of the input control signal and data bus and operating in a debug mode outputting a virtual address (e) corresponding to the real address output by the first emulation processor; an emulation processor (2); a break detection circuit (6) that inputs the virtual address and outputs a break request signal (f) to the first emulation processor and the second emulation processor; a comparator circuit (8) that takes an output control signal of the first emulation processor as a first input, takes an output control signal of the second emulation processor as a second input, and outputs an operation error signal (1); An in-circuit emulator characterized in that break points can be specified by virtual addresses.
JP63025053A 1987-02-06 1988-02-05 In-circuit emulator Expired - Lifetime JP2651916B2 (en)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
JP62-27017 1987-02-06
JP2701687 1987-02-06
JP2701787 1987-02-06
JP62-27016 1987-02-06

Publications (3)

Publication Number Publication Date
JPH011039A true JPH011039A (en) 1989-01-05
JPS641039A JPS641039A (en) 1989-01-05
JP2651916B2 JP2651916B2 (en) 1997-09-10

Family

ID=26364880

Family Applications (1)

Application Number Title Priority Date Filing Date
JP63025053A Expired - Lifetime JP2651916B2 (en) 1987-02-06 1988-02-05 In-circuit emulator

Country Status (2)

Country Link
US (1) US5132971A (en)
JP (1) JP2651916B2 (en)

Families Citing this family (40)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH01270148A (en) * 1988-04-21 1989-10-27 Nec Ic Microcomput Syst Ltd Emulator
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
EP0474256A3 (en) * 1990-09-07 1993-01-27 Nec Corporation In-circuit emulator
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 (en) * 1991-08-12 1993-10-08 Advanced Micro Devicds Inc System for giving internal execution parameter and array for verifying instruction to be executed by processor
ATE192246T1 (en) * 1991-09-23 2000-05-15 Intel Corp COMPUTER SYSTEM WITH SOFTWARE INTERRUPTION COMMANDS THAT SELECTIVELY OPERATES IN A VIRTUAL MODE
JPH05128080A (en) * 1991-10-14 1993-05-25 Mitsubishi Electric Corp Information processor
US5386522A (en) * 1991-12-30 1995-01-31 International Business Machines, Corp. Dynamic physical address aliasing during program debugging
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
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
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
DE69616917T2 (en) * 1995-08-30 2002-06-06 Motorola, Inc. Data processor with built-in emulation circuit
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 (en) 1998-05-13 1999-11-14 Axis Ab Computer chip and computer device with improved debugging ability
US6618698B1 (en) * 1999-08-12 2003-09-09 Quickturn Design Systems, Inc. Clustered processors in an emulation engine
DE10116861A1 (en) * 2001-04-04 2002-10-31 Infineon Technologies Ag Program controlled unit
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
US8271955B1 (en) 2004-07-23 2012-09-18 Green Hille Software, Inc. Forward post-execution software debugger
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
US7653899B1 (en) 2004-07-23 2010-01-26 Green Hills Software, Inc. Post-execution software debugger with performance display
US8015552B1 (en) 2004-07-23 2011-09-06 Green Hills Software, Inc. Post-execution software debugger with coverage 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)

* Cited by examiner, † Cited by third party
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 (en) * 1984-01-09 1985-08-02 Nec Corp Microprocessor
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

Similar Documents

Publication Publication Date Title
JP2651916B2 (en) In-circuit emulator
JPH011039A (en) In-circuit emulator
JP2752592B2 (en) Microprocessor, signal transmission method between microprocessor and debug tool, and tracing method
EP0391173B1 (en) Debug peripheral for microcomputers, microprocessors and core processor integrated circuits and system using the same
US6094730A (en) Hardware-assisted firmware tracing method and apparatus
EP0942372B1 (en) Processor with breakpoint circuit
US5047926A (en) Development and debug tool for microcomputers
EP0638864B1 (en) Development support system for microcomputer with internal cache
Kline et al. The in-circuit approach to the development of microcomputer-based products
JPH0477833A (en) Integrated circuit provided with debugging environment
JPH0550016B2 (en)
JP4421148B2 (en) Debug system
JP2664644B2 (en) How to reset the microprocessor
JP2902861B2 (en) Buffer device with trace function
US7194401B2 (en) Configuration for in-circuit emulation of a program-controlled unit
JP2654105B2 (en) Microprocessor
JP3019336B2 (en) Microprocessor development support equipment
JP2558902B2 (en) Semiconductor integrated circuit device
JPS6382525A (en) Microprocessor with tracing function
JPH04199336A (en) Microcomputer
JPH02120940A (en) Debugging supporting circuit
JPH04160650A (en) Microprocessor
JPH087706B2 (en) Single chip microcomputer for evaluation
JPS63289653A (en) In-circuit emitter
Grant et al. Pseudo-emulation facilities for the ferranti FDS-10 development system