(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2023150107
(43)【公開日】2023-10-16
(54)【発明の名称】インサーキットエミュレータ装置
(51)【国際特許分類】
G06F 11/36 20060101AFI20231005BHJP
【FI】
G06F11/36 152
【審査請求】未請求
【請求項の数】8
【出願形態】OL
(21)【出願番号】P 2022059026
(22)【出願日】2022-03-31
(71)【出願人】
【識別番号】320012037
【氏名又は名称】ラピステクノロジー株式会社
(74)【代理人】
【識別番号】110001025
【氏名又は名称】弁理士法人レクスト国際特許事務所
(72)【発明者】
【氏名】山崎 博
【テーマコード(参考)】
5B042
【Fターム(参考)】
5B042GA38
5B042HH03
(57)【要約】 (修正有)
【課題】プログラム実行中にCPUがアクセスした記憶装置の記憶箇所以外の記憶箇所のデータを取得するインサーキットエミュレータ装置を提供する。
【解決手段】システム10において、マイクロコンピュータは、第1のクロック信号に同期したプログラムの実行により第1のアドレス信号を生成するCPUと、第1のクロック信号より高い周波数の第2のクロック信号に同期して第2のアドレス信号を生成するリアルタイムキャプチャ回路と、第1のクロック信号の1周期のうちの第1の期間に亘って第2のアドレス信号を記憶装置に供給し、残りの第2の期間に亘って第1のアドレス信号を供給するセレクタ回路と、を含む。記憶装置は、第2のアドレス信号の供給時に第2のアドレス信号が示すアドレスの記憶箇所からデータを読み出し、第1のアドレス信号の供給時に第1のアドレス信号が示すアドレスの記憶箇所についてCPUからのデータの書き込み又は読み出しを行う。
【選択図】
図1
【特許請求の範囲】
【請求項1】
第1のクロック信号と、前記第1のクロック信号の周波数より高い周波数を有する第2のクロック信号とを生成するクロック生成回路と、
データを記憶する記憶装置と、
前記第1のクロック信号に同期してプログラムを実行し、前記プログラムの実行時にアクセスする前記記憶装置内でのアドレスを示す第1のアドレス信号を生成するCPUと、
前記第2のクロック信号に同期して前記記憶装置内の予め指定されたアドレスを示す第2のアドレス信号を生成するリアルタイムキャプチャ回路と、
前記第1のアドレス信号及び前記第2のアドレス信号を受けて、前記第1のクロック信号の1周期のうちの第1の期間に亘って前記第2のアドレス信号を前記記憶装置に供給し、残りの第2の期間に亘って前記第1のアドレス信号を前記記憶装置に供給するセレクタ回路と、を含み、
前記記憶装置は、前記セレクタ回路から前記第2のアドレス信号が供給されたときに前記第2のアドレス信号が示すアドレスの記憶箇所からデータを読み出し、その読み出しデータを前記リアルタイムキャプチャ回路に対して出力し、前記セレクタ回路から前記第1のアドレス信号が供給されたときに前記第1のアドレス信号が示すアドレスの記憶箇所について前記CPUからのデータの書き込む又はデータを読み出してそれを前記CPUに出力することを特徴とするインサーキットエミュレータ装置。
【請求項2】
前記第2のクロック信号は前記第1のクロック信号の周波数の2倍の周波数を有し、
前記第1の期間及び前記第2の期間の各々は前記第2のクロック信号の1周期に相当することを特徴とする請求項1記載のインサーキットエミュレータ装置。
【請求項3】
前記リアルタイムキャプチャ回路は、前記第2のアドレス信号が示すアドレスを記憶する読み出しアドレスレジスタと、前記第2のアドレス信号が示すアドレスの前記記憶装置の記憶箇所から読み出されたデータを保存する読み出しデータレジスタと、を含むことを特徴とする請求項1又は2記載のインサーキットエミュレータ装置。
【請求項4】
前記読み出しデータレジスタにデータが保存される毎に前記読み出しデータレジスタからデータを読み出すリアルタイムキャプチャ制御回路を有することを特徴とする請求項3記載のインサーキットエミュレータ装置。
【請求項5】
トレースメモリと、
前記リアルタイムキャプチャ回路に対して出力される前記読み出しデータを前記トレースメモリに対して記憶箇所の指定をしつつ順次書き込むリアルタイムトレース制御回路と、を有することを特徴とする請求項1又は2記載のインサーキットエミュレータ装置。
【請求項6】
前記プログラムを記憶したプログラムメモリを有し、
前記リアルタイムトレース制御回路は、前記CPUから出力される前記プログラムメモリの記憶箇所を示すプログラム実行アドレス信号に応じてトリガ信号を生成し、
前記リアルタイムキャプチャ回路はトリガ信号に応答して前記第2のアドレス信号を生成することを特徴とする請求項5記載のインサーキットエミュレータ装置。
【請求項7】
前記読み出しアドレスレジスタは、前記記憶装置内の前記予め指定された記憶箇所のアドレスとして通信ポートのアドレスを記憶し、
前記リアルタイムキャプチャ回路は、前記通信ポートのポートビット番号を記憶するポートビット番号レジスタを更に有し、
前記第2のアドレス信号が生成することにより前記読み出しアドレスレジスタに記憶された前記通信ポートのアドレスに対応する前記記憶装置の記憶箇所からデータを読み出し、その読み出しデータのうちから前記ポートビット番号レジスタに記憶された前記ポートビット番号のビットデータを抽出し、前記ビットデータを前記読み出しデータレジスタに保存することを特徴とすることを特徴とする請求項3記載のインサーキットエミュレータ装置。
【請求項8】
シリアル通信用のクロックに同期したトリガ信号を生成し、1つのシリアル通信が完了すると通信完了信号を生成するシリアル通信制御回路を有し、
前記リアルタイムキャプチャ回路は、前記トリガ信号に応答して前記第2のアドレス信号を生成し、前記通信完了信号に応答して前記ビットデータの前記読み出しデータレジスタへの保存を終了することを特徴とする請求項7記載のインサーキットエミュレータ装置。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、プログラムを試験的に実行するインサーキットエミュレータ装置に関する。
【背景技術】
【0002】
インサーキットエミュレータ装置は、マイクロコンピュータシステムの開発の際に用いられる試験装置であり、マイクロコンピュータシステムのCPUがプログラムに従って正しく実行するか否かをそのCPUに代わって確認するものである。
【0003】
特許文献1には、デバッグ用CPUと、プログラムやデータを格納するメインメモリと、デバッグ時にデバッグ用CPUを制御する制御回路と、デバッグ用CPUのプログラム実行中の命令の実行履歴、及びメインメモリへのデータアクセスの履歴を記録するトレースメモリ装置とを有するインサーキットエミュレータ装置が開示されている。この従来のインサーキットエミュレータ装置では、デバッグ用CPUでの命令の実行に伴ってメインメモリに新たに書き込まれたデータを、トレースメモリ装置に記録された命令実行履歴の情報に基づいて、トレースメモリ装置に記録されたデータアクセス履歴の情報から取得して出力することができる。
【先行技術文献】
【特許文献】
【0004】
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかしながら、かかる従来のインサーキットエミュレータ装置においては、CPUのプログラム実行中にCPUからメインメモリ等の記憶装置へのアクセスにより記憶装置に書き込まれたデータだけがデータアクセス履歴の情報として取得される構成であるので、CPUのプログラム実行中にはCPUがアクセスした記憶装置の記憶箇所以外の任意の記憶箇所のデータを取得することはできないという問題があった。
【0006】
そこで、本発明の目的は、CPUのプログラム実行中にCPUがアクセスした記憶装置の記憶箇所以外の記憶箇所のデータを取得することができるインサーキットエミュレータ装置を提供することである。
【課題を解決するための手段】
【0007】
本発明のインサーキットエミュレータ装置は、第1のクロック信号と、前記第1のクロック信号の周波数より高い周波数を有する第2のクロック信号とを生成するクロック生成回路と、データを記憶する記憶装置と、前記第1のクロック信号に同期してプログラムを実行し、前記プログラムの実行時にアクセスする前記記憶装置内でのアドレスを示す第1のアドレス信号を生成するCPUと、前記第2のクロック信号に同期して前記記憶装置内の予め指定されたアドレスを示す第2のアドレス信号を生成するリアルタイムキャプチャ回路と、前記第1のアドレス信号及び前記第2のアドレス信号を受けて、前記第1のクロック信号の1周期のうちの第1の期間に亘って前記第2のアドレス信号を前記記憶装置に供給し、残りの第2の期間に亘って前記第1のアドレス信号を前記記憶装置に供給するセレクタ回路と、を含み、前記記憶装置は、前記セレクタ回路から前記第2のアドレス信号が供給されたときに前記第2のアドレス信号が示すアドレスの記憶箇所からデータを読み出し、その読み出しデータを前記リアルタイムキャプチャ回路に対して出力し、前記セレクタ回路から前記第1のアドレス信号が供給されたときに前記第1のアドレス信号が示すアドレスの記憶箇所について前記CPUからのデータの書き込む又はデータを読み出してそれを前記CPUに出力することを特徴としている。
【発明の効果】
【0008】
本発明のインサーキットエミュレータ装置によれば、プログラム実行中のCPUによる記憶装置からのデータ読み出し及び記憶装置へのデータ書き込み動作に影響を与えることなく、CPUのデータの読み出し又は書き込み動作のためのアクセス先とは無関係に記憶装置内の指定した記憶箇所のデータを獲得することができる。
【図面の簡単な説明】
【0009】
【
図1】本発明の実施例1としてインサーキットエミュレータ装置の構成を示すブロック図である。
【
図2】
図1の装置のCPUのデータ読み出し動作を示すタイミングチャートである。
【
図3】
図1の装置のリアルタイムクロック信号を用いたリアルタイムキャプチャ動作を示すタイミングチャートである。
【
図4】本発明の実施例2としてインサーキットエミュレータ装置の構成を示すブロック図である。
【
図5】本発明の実施例3としてインサーキットエミュレータ装置の構成を示すブロック図である。
【発明を実施するための形態】
【0010】
以下、本発明の実施例を、図面を参照しつつ詳細に説明する。
【実施例0011】
図1は本発明の実施例1としてインサーキットエミュレータ装置の構成を示している。このインサーキットエミュレータ装置は、ICE(インサーキットエミュレータ)回路11及びマイクロコンピュータ12を含むマイクロコンピュータデバッグシステム10と、ICE制御CPU(中央処理装置)20と、プログラムメモリ30とを備えている。
【0012】
ICE回路11はリアルタイムキャプチャ制御回路13を含んでいる。マイクロコンピュータ12は、クロック生成回路15、CPU16、記憶装置17、リアルタイムキャプチャ回路18、及びセレクタ回路19を含んでいる。リアルタイムキャプチャ回路18は読み出しアドレスレジスタ21と、読み出しデータレジスタ22とを有している。
【0013】
ICE制御CPU20は、リアルタイムキャプチャ制御回路13に接続されており、リアルタイムキャプチャ制御回路13に命令を送出し、またリアルタイムキャプチャ制御回路13から出力されたデータを受信する。リアルタイムキャプチャ制御回路13は、リアルタイムキャプチャ回路18に接続されている。リアルタイムキャプチャ制御回路13とリアルタイムキャプチャ回路18との間にはアドレスライン25、データライン26、及び信号ライン27が設けられている。
【0014】
マイクロコンピュータ12において、クロック生成回路15はCPUクロック信号(第1のクロック信号)とリアルタイムクロック信号(第2のクロック信号)とを生成する。CPUクロック信号はCPU16に供給され、CPU16の動作タイミングを定める。リアルタイムクロック信号は本実施例1ではCPUクロック信号の周波数の2倍の周波数を有する。CPUクロック信号の立ち上がりタイミングでリアルタイムクロック信号も立ち上がる。リアルタイムクロック信号はリアルタイムキャプチャ回路18に供給され、リアルタイムキャプチャ回路18の動作タイミングを定める。
【0015】
リアルタイムキャプチャ回路18はリアルタイムキャプチャ制御回路13に対して保持完了信号と読み出しデータとを供給する。リアルタイムキャプチャ回路18はリアルタイムキャプチャ制御回路13から供給された読み出しアドレス信号が示すアドレスを読み出しアドレスレジスタ21に保存する。
【0016】
CPU16はプログラムメモリ30に接続されている。プログラムメモリ30にはデバッグ対象のプログラムが記憶されている。CPU16はプログラムメモリ30に記憶されたデバッグ対象のプログラムを実行する。そのプログラムの実行ではCPU16によってプログラムメモリ30の実行アドレス(プログラム実行アドレス)が順次指定され、その実行アドレスで指定された記憶箇所からデバッグ対象のプログラムの命令が読み出される。CPU16は読み出した命令を実行することになる。
【0017】
また、CPU16は自身のアドレス出力端からアドレス信号(第1のアドレス信号)をアドレスライン31を介してセレクタ回路19に供給し、リアルタイムキャプチャ回路18は自身のアドレス出力端からアドレス信号(第2のアドレス信号)をアドレスライン32を介してセレクタ回路19に供給する。アドレスライン31、32はセレクタ回路19に接続されている。セレクタ回路19は、記憶装置17にアドレスライン33を介して接続され、リアルタイムキャプチャ回路18から供給されるアクセス有効信号に応じてCPU16からのアドレス信号とリアルタイムキャプチャ回路18からのアドレス信号とのいずれか一方を選択し、選択したアドレス信号をアドレスライン33を介して記憶装置17に供給する。
【0018】
アクセス有効信号は、リアルタイムキャプチャ回路18が記憶装置17からデータを読み出すためにアドレス指定をする際にリアルタイムクロック信号の1周期だけアクティブ、例えば、高レベルとなる信号であり、それ以外では非アクティブ、例えば、低レベルの状態である。
【0019】
記憶装置17は、CPU16がデバッグ対象のプログラムを実行することによりデータが記憶されるRAM(ランダムアクセスメモリ)等のデータメモリ(図示せず)と、データを一時的に保存する周辺回路レジスタ(図示せず)とを含み、供給されるアドレス信号が示すアドレスによって記憶箇所が指定される。記憶装置17は、アドレス信号が示すアドレスによって指定された記憶箇所にCPU16からデータライン34を介して供給されたデータを書き込み、又は書き込まれたデータを読み出してそれを信号としてデータライン34に出力する。データライン34はCPU16のデータ入出力端及びリアルタイムキャプチャ回路18のデータ入力端に接続されている。
【0020】
かかる構成のインサーキットエミュレータ装置において、クロック生成回路15は
図2の(A)に示すような波形のCPUクロック信号を生成する。CPU16はそのCPUクロック信号の立ち上がりt01に応答してアドレス信号を生成する。アドレス信号は
図2の(B)に示すようにCPUクロック信号の1周期T1に亘ってアドレスを表す。そのアドレスは記憶装置17の全記憶箇所のうちの1つの記憶箇所を指定する値である。アドレス信号はアドレスライン31、セレクタ回路19、そしてアドレスライン33を介して記憶装置17に供給される。CPU16がプログラムメモリ30に記憶されさたデバッグ対象のプログラムの実行中に記憶装置17からデータを読み出す際には、
図2の(C)に示すタイミングでアドレス信号が表すアドレスに対応した記憶装置17の記憶箇所からデータが読み出される。その読み出しデータは、期間T2に亘って出力され、例えば、CPUクロック信号の次の立ち上がりt02時にCPU16に取り込まれる。期間T2はCPUクロック信号の1周期T1に等しい時間長である。
【0021】
なお、
図2に示したデータ読み出し動作ではアクセス有効信号が非アクティブ、例えば、低レベルであり、セレクタ回路19はCPU16から出力されたアドレス信号を記憶装置17に供給する。
【0022】
次に、インサーキットエミュレータ装置のリアルタイムキャプチャ動作を
図3の(A)~(E)のタイミングチャートを用いて説明する。
【0023】
クロック生成回路15は、
図3の(A)に示すような波形のCPUクロック信号を生成する一方、
図3の(D)に示すような波形のリアルタイムクロック信号を生成する。上述したように、リアルタイムクロック信号はCPUクロック信号の周波数の2倍の周波数を有する。CPU16はそのCPUクロック信号の立ち上がりに応答して
図3の(B)に示すようにアドレス信号を生成する。これは
図2の(B)と同じである。
【0024】
CPU16がデバッグ対象のプログラムの実行を開始した後、ICE制御CPU20がリアルタイムキャプチャ制御回路13に対してリアルタイムキャプチャ命令を生成したとする。リアルタイムキャプチャ命令には記憶装置17の読み出すべき記憶箇所を指定するアドレスが含まれる。リアルタイムキャプチャ命令がリアルタイムキャプチャ制御回路13に供給されると、リアルタイムキャプチャ制御回路13はリアルタイムキャプチャ命令に含まれるアドレスを示す読み出しアドレス信号をリアルタイムキャプチャ回路18に対して出力する。読み出しアドレス信号はアドレスライン25を介してリアルタイムキャプチャ回路18に供給される。リアルタイムキャプチャ回路18は読み出しアドレス信号が供給されると、そのアドレス信号が示すアドレスを読み出しアドレスレジスタ21に書き込む。
【0025】
その後、リアルタイムキャプチャ回路18は、時点t1のリアルタイムクロック信号のパルスP1の立ち上がりに応答して読み出しアドレスレジスタ21からアドレスを読み出し、そのアドレスを示すアドレス信号を生成する。そのアドレス信号は
図3の(E)に示す期間T3(第1の期間)に亘って生成される。期間T3はリアルタイムクロック信号の1つパルスP1の立ち上がりから次のパルスP2の立ち上がり時点t2までの時間長である。
【0026】
また、リアルタイムキャプチャ回路18は、アドレス信号の生成と同時にアクセス有効信号をアクティブにする。よって、セレクタ回路19はリアルタイムキャプチャ回路18から出力されたアドレス信号を記憶装置17に供給する。すなわち、リアルタイムキャプチャ回路18から出力されたアドレス信号はアドレスライン32、セレクタ回路19、そしてアドレスライン33を介して記憶装置17に供給される。
【0027】
記憶装置17では供給されたアドレス信号が表すアドレスに対応した記憶箇所からデータRD1が読み出される。その読み出しデータRD1は
図3の(C)に示す期間T4内に読み出される。すなわち、期間T4はリアルタイムクロック信号のパルスP1の立ち下がり時点から次のパルスP2の立ち下がり時点までの時間長である。読み出しデータRD1は記憶装置17からリアルタイムキャプチャ回路18に供給され、そして取り込まれる。
【0028】
リアルタイムキャプチャ回路18は取り込んだ読み出しデータRD1を読み出しデータレジスタ22に保存する。そして、その読み出しデータRD1の保存直後にリアルタイムキャプチャ回路18は保存完了信号をアクティブとして信号ライン27を介してリアルタムキャプチャ制御回路13に供給する。
【0029】
ICE制御CPU20は、リアルタイムキャプチャ制御回路13を通じて保持完了信号がアクティブになったことを検知すると、リアルタイムキャプチャ制御回路13を通じてリアルタイムキャプチャ命令によって指定されたアドレスに対応する記憶装置17の記憶箇所からの読み出しデータRD1を獲得する。
【0030】
アクセス有効信号は期間T3経過後には非アクティブとなり、セレクタ回路19は
図3の(B)に示す如き、CPU16から出力されたアドレス信号を記憶装置17に供給する。そのCPU16から出力されたアドレス信号は、
図3の(B)に示す期間T5(第2の期間)に亘って記憶装置17に供給される。期間T5はリアルタイムクロック信号のパルスP2の立ち上がり時点から次のパルスP3の立ち上がり時点までの時間長である。
【0031】
その結果、そのアドレス信号が表すアドレスに対応した記憶装置17の記憶箇所からデータRD2が読み出される。その読み出しデータRD2は期間T6に亘って記憶装置17から出力され、例えば、CPUクロック信号の次の立ち上がり時点t3時にCPU16に取り込まれる。期間T6はリアルタイムクロック信号のパルスP2の立ち下がりから次のパルスP3の立ち下がりまでの時間長である。
【0032】
このように実施例1のインサーキットエミュレータ装置では、CPUクロック信号の1周期の前半の半周期内において、読み出しアドレスレジスタ21に保存されたアドレスに対応する記憶装置17の記憶箇所からデータRD1が読み出され、その読み出しデータRD1はリアルタイムキャプチャ回路18の読み出しデータレジスタ22に保存された後、リアルタイムキャプチャ制御回路13を介してICE制御CPU20に供給される。CPUクロック信号の1周期の後半の半周期内において、CPU16から出力されたアドレス信号が示すアドレスに対応する記憶装置17の記憶箇所からデータRD2が読み出され、その読み出しデータRD2はCPU16に供給される。
【0033】
よって、実施例1のインサーキットエミュレータ装置では、CPU16がデバッグ対象のプログラム実行中にCPU16の記憶装置17からのデータ読み出し動作に影響を与えることなく、CPU16のデータ読み出し動作のためのアクセス先とは無関係に記憶装置17の指定した記憶箇所のデータを獲得することができる。また、ICE制御CPU20はリアルタイムキャプチャ制御回路13を介して獲得したデータを図示しない表示装置に供給することにより、記憶装置17の指定した記憶箇所のデータをリアルタイムで表示することができる。
【0034】
なお、上記した実施例1では、CPUクロック信号の1周期の後半の半周期内において、CPU16から出力されたアドレス信号が示すアドレスに対応する記憶装置17の記憶箇所からのデータの読み出し動作が行われているが、CPU16から出力されたアドレス信号が示すアドレスに対応する記憶装置17の記憶箇所へのデータの書き込み動作を行っても良い。
【0035】
また、上記した実施例1ではリアルタイムクロック信号の周波数は、CPUクロック信号の周波数の2倍に設定されているが、本発明はこれに限定されない。リアルタイムクロック信号の周波数はCPUクロック信号の周波数より高ければ良い。
マイクロコンピュータ12内のリアルタイムキャプチャ回路18は、読み出しアドレスレジスタ21を有しているが、実施例1の読み出しデータレジスタ22を有していない。また、リアルタイムキャプチャ制御回路13とリアルタイムキャプチャ回路18との間にはアドレスライン25及びデータライン26は設けられているが、信号ライン27は設けられていない。
また、実施例2のインサーキットエミュレータ装置は、マイクロコンピュータデバッグシステム10の外にICE制御CPU20及びプログラムメモリ30と共に、トレースメモリ41を有している。トレースメモリ41は、リアルタイムトレース制御回路14、リアルタイムキャプチャ回路18及びプログラムメモリ30に接続され、リアルタイムトレース制御回路14の制御下、読み出しアドレスレジスタ21に保存されたアドレスに対応する記憶装置17の記憶箇所から読み出されたデータをリアルタイムキャプチャ回路18を介して受け入れ、それをプログラムメモリ30のプログラム実行アドレスと共に順番に記憶してトレース履歴データを形成する。
先ず、CPU16がデバッグ対象のプログラムの実行を開始した後、ICE制御CPU20がリアルタイムキャプチャ制御回路13に対してリアルタイムキャプチャ命令を生成したとする。リアルタイムキャプチャ命令がリアルタイムキャプチャ制御回路13に供給されると、リアルタイムキャプチャ制御回路13はリアルタイムキャプチャ命令に含まれるトレース対象のアドレスを示す読み出しアドレス信号をリアルタイムキャプチャ回路18に対して出力する。読み出しアドレス信号はアドレスライン25を介してリアルタイムキャプチャ回路18に供給される。リアルタイムキャプチャ回路18は読み出しアドレス信号が供給されると、そのアドレス信号が示すアドレスを読み出しアドレスレジスタ21に書き込む。そして、リアルタイムトレース制御回路14が、CPU16がデバッグ対象のプログラムの実行中に、リアルタイムキャプチャ回路18に対してトリガ信号を出力すると、実施例1と同様に、CPUクロック信号の1周期の前半の半周期内において、読み出しアドレスレジスタ21に保存されたアドレスに対応する記憶装置17の記憶箇所からデータが読み出される。
その読み出しデータはリアルタイムキャプチャ回路18を介してリアルタイムキャプチャ制御回路13及びトレースメモリ41に供給される。トレースメモリ41ではリアルタイムトレース制御回路14内のトレースカウンタ(図示せず)のカウント値をトレースメモリアドレス信号とし受け入れ、当該カウント値で指定される記憶箇所に読み出しデータがプログラム実行アドレスと共に記憶される。トレースカウンタのカウント値はプログラム命令の進行と共に増加するので、増加したカウント値に対応するトレースメモリ41の記憶箇所に読み出しデータ及びプログラム実行アドレスが順に記憶される。
このように実施例2のインサーキットエミュレータ装置では、CPUクロック信号の1周期の前半の半周期内において、読み出しアドレスレジスタ21に保存されたアドレスに対応する記憶装置17の記憶箇所からデータが読み出され、その読み出しデータはリアルタイムキャプチャ回路18を介してトレースメモリ41に順次記憶される。CPUクロック信号の1周期の後半の半周期内において、CPU16から出力されたアドレス信号が示すアドレスに対応する記憶装置17の記憶箇所からデータが読み出され、その読み出しデータはCPU16に供給される。
よって、実施例2のインサーキットエミュレータ装置では、CPU16がデバッグ対象のプログラム実行中にCPU16の記憶装置17からのデータ読み出し動作を損なうことなく、CPU16のデータ読み出し動作のためのアクセス先とは無関係に記憶装置17の指定した記憶箇所のデータトレースをすることができる。
なお、実施例2において、リアルタイムキャプチャ回路18内に読み出しデータを今回値と前回値とを比較する比較器を設けて、読み出しデータが変化したときだけ上述したトレースカウンタのカウント値を変化させ、トレースメモリ41には読み出しデータを書き込んでも良い。これにより、トレースメモリ41の記憶容量を節約することができる。