"第1、第2プロセッサの各々からのトレースデータの出力と同期して出力される第1、第2出力イネーブル信号に基づき、トレースデータの出力タイミングが同一であるか否かを示すタイミング情報を出力するタイミング情報生成回路と、前記第1または前記第2のプロセッサから出力された各トレースデータと、各トレースデータ取得時のタイムスタンプと、前記タイミング情報と、を対応付けたトレースメッセージを生成するトレースメッセージ生成回路と、前記トレースメッセージ生成回路が生成したトレースメッセージをトレースメモリに書き込むトレースメモリ書き込み制御回路と、を備えるインサーキットエミュレータ。前記タイミング情報は、1ビットのビット値であり、前記タイミング情報生成回路は、前記第1、前記第2イネーブル信号のいずれかがトレースメッセージの出力を示す値となる度に前記ビット値を反転させることを特徴とする請求項1に記載のインサーキットエミュレータ。前記タイミング情報生成回路は、前記第1出力イネーブル信号と前記第2出力イネーブル信号の論理和を出力するOR回路と、前記OR回路の出力をイネーブル端子の入力とし、クロック信号をデータ端子の入力とするディレイラッチと、前記ディレイラッチの出力をクロック端子の入力とし、自身の出力の反転信号をデータ端子の入力とするフリップフロップと、前記フリップフロップの出力信号を反転し、前記反転信号を生成するNOT回路と、を備え、前記フリップフロップの出力信号を前記タイミング情報とすることを特徴とする請求項2に記載のインサーキットエミュレータ。前記タイミング情報生成回路は、前記第1出力イネーブル信号と前記第2出力イネーブル信号の論理和を出力するOR回路と、前記OR回路の出力をイネーブル端子の入力とし、クロック信号をデータ端子の入力とするディレイラッチと、前記ディレイラッチの出力をクロック端子の入力とし、自身の出力信号の反転信号を出力する出力端子と、データ入力端子と、を接続したフリップフロップと、を備え、前記フリップフロップの出力信号を前記タイミング情報とすることを特徴とする請求項2に記載のインサーキットエミュレータ。前記タイミング情報生成回路は、前記第1出力イネーブル信号と前記第2出力イネーブル信号の論理和を出力するOR回路と、前記OR回路の出力と、クロック信号と、の論理積を出力するAND回路と、前記AND回路の出力をクロック端子の入力とし、自身の出力の反転信号をデータ端子の入力とするフリップフロップと、前記フリップフロップの出力信号を反転し、前記反転信号を生成するNOT回路と、を備え、前記フリップフロップの出力信号を前記タイミング情報とすることを特徴とする請求項2に記載のインサーキットエミュレータ。前記タイミング情報は、nビットのnビット値を生成し、前記タイミング情報生成回路は、前記第1、前記第2イネーブル信号のいずれかがトレースメッセージの出力を示す値となる度に前記nビット値をカウントアップし、前記nビット値が前記nビット以上の値となるタイミングでリセットすることを特徴とする請求項1に記載のインサーキットエミュレータ。前記nビット値は、3ビット値であり、前記タイミング情報生成回路は、前記第1出力イネーブル信号と前記第2出力イネーブル信号の論理和を出力するOR回路と、前記OR回路の出力をイネーブル端子の入力とし、クロック信号をデータ端子の入力とするディレイラッチと、第1データ入力端子、第1データ出力端子、前記第1データ出力端子の反転信号を出力する第1データ反転端子、第1クロック端子を有し、前記ディレイラッチの出力を前記第1クロック端子の入力とし、前記第1データ反転端子と前記第1データ入力端子を接続した第1フリップフロップと、第2データ入力端子、第2データ出力端子、前記第2データ出力端子の反転信号を出力する第2データ反転端子、第2クロック端子を有し、前記第1データ反転端子の出力を前記第2クロック端子の入力とし、前記第2データ反転端子と前記第2データ入力端子を接続した第2フリップフロップと、第3データ入力端子、第3データ出力端子、前記第3データ出力端子の反転信号を出力する第3データ反転端子、第3クロック端子を有し、前記第2データ反転端子の出力を前記第3クロック端子の入力とし、前記第3データ反転端子と前記第3データ入力端子を接続した第3フリップフロップと、を有し、前記第1データ出力端子の出力、前記第2データ出力端子の出力、前記第3データ出力端子の出力、を下位ビットから構成することにより前記第3ビット値を生成することを特徴とする請求項6に記載のインサーキットエミュレータ。所定クロックに従って、一定時間間隔を係数するタイムスタンプカウンタと、前記タイムスタンプカウンタのオーバーフローの回数を計数するオーバーフローカウンタと、を更に備え、前記トレースメッセージ生成回路は、前記タイムスタンプカウンタがオーバーフローしたか否かを示すオーバーフローフラグを保持し、前記トレースメモリ書き込み制御回路は、直近に前記トレースメモリに書き込んだトレースメッセージに含まれる前記タイミング情報を保持するレジスタを備え、前記オーバーフローフラグがオンであり、かつ書き込み対象のトレースデータの前記タイミング情報と、前記レジスタの前記タイミング情報と、が一致しない場合に前記オーバーフローカウンタのカウント値を前記トレースメモリに書き込む、ことを特徴とする請求項1乃至請求項7のいずれか1項に記載のインサーキットエミュレータ。前記トレースメッセージ生成回路は、トレースメッセージの生成毎に、前記タイムスタンプカウンタ及び前記オーバーフローカウンタに対して、カウント値のリセットを要求するカウンタリセット信号を出力することを特徴とする請求項8に記載のインサーキットエミュレータ。請求項1乃至9のいずれか1項に記載のインサーキットエミュレータと、前記トレースメモリから各トレースメッセージを読み出し、各トレースメッセージ内の前記タイミング情報に基づき、他のトレースメッセージと出力タイミングが異なるかを判別できるように各トレースメッセージを表示する表示情報を生成するデバッグプログラムを実行するホストコンピュータと、を備えるエミュレーションシステム。第1、第2プロセッサの各々からのトレースデータと、各トレースデータ取得時のタイムスタンプと、トレースデータの出力タイミングが同一であるか否かを示すタイミング情報と、を対応付けたトレースメッセージを出力順に受け付け、トレースメモリに書き込むトレースメモリ書き込み制御回路と、前記トレースメモリから各トレースメッセージを読み出し、各トレースメッセージ内の前記タイミング情報に基づき、他のトレースメッセージと出力タイミングが異なるかを判別できるように各トレースメッセージを表示する表示情報を生成するデバッグプログラムを実行するホストコンピュータと、を備えるトレースメモリ制御システム。第1、第2プロセッサの各々からのトレースデータの出力と同期して出力される第1、第2出力イネーブル信号に基づき、トレースデータの出力タイミングが同一であるか否かを示すタイミング情報を出力するタイミング情報生成回路と、前記第1または前記第2のプロセッサから出力された各トレースデータと、各トレースデータ取得時のタイムスタンプと、前記タイミング情報と、を対応付けたトレースメッセージを生成し、前記タイミング情報に基づいて、各トレースメッセージを表示する制御装置に対し、生成したトレースメッセージを供給する、トレースメッセージ生成回路と、を備えるトレースメッセージ生成装置。第1、第2プロセッサの各々からのトレースデータの出力と同期して出力される第1、第2出力イネーブル信号に基づき、トレースデータの出力タイミングが同一であるか否かを示すタイミング情報を生成し、前記第1または前記第2のプロセッサから出力された各トレースデータと、各トレースデータ取得時のタイムスタンプと、前記タイミング情報と、を対応付けたトレースメッセージを生成し、前記トレースメッセージ生成回路が生成したトレースメッセージをトレースメモリに書き込む、トレースメッセージ処理方法。マイクロコンピュータのマルチコア環境において、複数のCPUコアが同時にトレース対象命令を実行する場合がある。しかしながら、一般に、同時に命令が実行されたか否かを考慮したトレース書き込みが行われていない。そのため、デバッガが、トレースメモリ内のメッセージを参照しても、正しいタイムスタンプ値が参照できない恐れがある。例えば、特許文献1に記載の構成において、第1CPUコア410と第2CPUコア430とが同時にトレース対象イベントを実行したことを想定する。しかし、トレースメモリ書き込み制御回路374にトレースメッセージを入力する場合に、これらのイベントが同時に発生したことを通知する手段がない。そのため、トレースメモリ書き込み制御回路374は、便宜的に先にトレースメッセージバッファ333に入力されたトレースメッセージを、先に発生したイベントにかかるメッセージと認識する。さらに、トレースメモリ書き込み制御回路374は、便宜的に後にトレースメッセージバッファ333に入力されたトレースメッセージを、後に発生したイベントにかかるメッセージと認識する。ここで、両トレースメッセージ内のOVFフラグが設定される場合がある。この場合、トレースメモリ書き込み制御回路374は、先に入力されたトレースメッセージの書き込み前にOVFカウント値バッファ373から先頭のOVFカウント値を読み込んでトレースメモリ380に書き込む。さらに、トレースメモリ書き込み制御回路374は、後に入力されたトレースメッセージの書き込み前にOVFカウント値バッファ373から先頭のOVFカウント値を読み込んでトレースメモリ380に書き込む。しかしながら、先のOVFカウント値の書き込みによりOVFカウント値バッファ273が空になる可能性がある。そのため、トレースメモリ書き込み制御回路374は、不定値をトレースメモリ380に書き込む恐れがある。なお、特許文献2でも、同一のタイミングで共有メモリに書き込むことが想定されていないため、正確なタイムスタンプ値を持つトレースデータを参照することができない。このように、上記した技術では、トレース対象の命令の実行が同時に生じた場合に、正確な命令発生タイミングを把握することができない恐れがあった。本発明にかかるインサーキットエミュレータの一態様は、第1、第2プロセッサの各々からのトレースデータの出力と同期して出力される第1、第2出力イネーブル信号に基づき、トレースデータの出力タイミングが同一であるか否かを示すタイミング情報を出力するタイミング情報生成回路と、前記第1または前記第2のプロセッサから出力された各トレースデータと、各トレースデータ取得時のタイムスタンプと、タイムスタンプをカウントするタイムスタンプカウンタがオーバーフローしたことを示すオーバーフローフラグと、前記タイミング情報と、を対応付けたトレースメッセージを生成するトレースメッセージ生成回路と、前記トレースメッセージ生成回路が生成したトレースメッセージをトレースメモリに書き込みを行う制御回路であって、前記オーバーフローフラグの設定時には、同じタイミング情報を持つトレースメッセージ群をトレースメモリに書き込む前にオーバーフローカウント値をトレースメモリに書き込み、その後に同じタイミング情報を持つトレースメッセージ群をトレースメモリに書き込む、トレースメモリ書き込み制御回路と、を備えるものである。本発明にかかるトレースメモリ制御システムの一態様は、第1、第2プロセッサの各々からのトレースデータと、各トレースデータ取得時のタイムスタンプと、トレースデータの出力タイミングが同一であるか否かを示すタイミング情報と、を対応付けたトレースメッセージを出力順に受け付け、トレースメモリに書き込むトレースメモリ書き込み制御回路を備えた装置と、前記トレースメモリから各トレースメッセージを読み出し、各トレースメッセージ内の前記タイミング情報に基づき、他のトレースメッセージと出力タイミングが異なるかを判別できるように各トレースメッセージを表示する表示情報を生成するデバッグプログラムを実行するホストコンピュータと、を備える、ものである。本発明にかかるトレースメッセージ生成装置の一態様は、第1、第2プロセッサの各々からのトレースデータの出力と同期して出力される第1、第2出力イネーブル信号に基づき、トレースデータの出力タイミングが同一であるか否かを示すタイミング情報を出力するタイミング情報生成回路と、前記第1または前記第2のプロセッサから出力された各トレースデータと、各トレースデータ取得時のタイムスタンプと、前記タイミング情報と、を対応付けたトレースメッセージを生成し、前記タイミング情報に基づいて、各トレースメッセージを表示する制御装置に対し、生成したトレースメッセージを供給する、トレースメッセージ生成回路と、を備える、ものである。本発明にかかるトレースメッセージ処理方法の一態様は、第1、第2プロセッサの各々からのトレースデータの出力と同期して出力される第1、第2出力イネーブル信号に基づき、トレースデータの出力タイミングが同一であるか否かを示すタイミング情報を生成し、前記第1または前記第2のプロセッサから出力された各トレースデータと、各トレースデータ取得時のタイムスタンプと、前記タイミング情報と、を対応付けたトレースメッセージを生成し、前記トレースメッセージ生成回路が生成したトレースメッセージをトレースメモリに書き込む、ものである。本発明では、トレースデータの出力と同期して出力される出力イネーブル信号から、トレースデータの出力タイミングの異同を示すタイミング情報が生成される。トレースメッセージは、タイミング情報とトレースデータが関連付けられてトレースメモリ内に格納される。そして、表示時には、トレースメッセージ内のタイミング情報を参照することにより、出力タイミングの異同を判別できる表示画面が生成される。これにより、トレース対象の命令の実行が同時に生じた場合であっても、正確な発生タイミングを把握することができる。本発明によれば、トレース対象の命令の実行が同時に生じた場合であっても、正確な命令発生タイミングを把握することができるインサーキットエミュレータ、トレースメモリ制御装置、トレースメッセージ生成装置及びトレースメッセージ処理方法を提供することができる。<実施の形態1>以下、図面を参照して本発明の実施の形態について説明する。図1は、本実施の形態にかかるインサーキットエミュレータシステムの構成を示すブロック図である。当該当該インサーキットエミュレータシステムは、インサーキットエミュレータ10と、ホストコンピュータ20と、を備える。インサーキットエミュレータ10は、第1プロセッサ110と、第2プロセッサ120と、タイムスタンプカウンタ制御回路130と、オーバーフローカウンタ制御回路140と、トレースメモリ150と、ホストIFインターフェイス160と、を備える。第1プロセッサ110、第2プロセッサ120、及びタイムスタンプ取得回路130は、同一チップ上に実装することができ、デバッグチップとして動作する。タイムスタンプカウンタ制御回路130は、タイミング情報生成回路131と、トレースメッセージ生成回路132と、タイムスタンプカウンタ135と、トレースメッセージバッファ136と、を備える。なお、タイムスタンプカウンタ制御回路130内の各処理部には、クロック信号が入力される。第1プロセッサ110及び第2プロセッサ120は、各々が内蔵する第1CPUコア111、第2CPUコア121がトレース対象命令を実行した場合、出力イネーブル信号プロセッサ1出力イネーブル信号、プロセッサ2出力イネーブル信号をタイミング情報生成回路131、及びトレースメッセージ生成回路132に出力し、トレースデータをトレースメッセージ生成回路132に出力する。ここで、第1プロセッサ110、第2プロセッサ120が出力するトレースデータには、第1プロセッサ110、第2プロセッサ120のどちらから出力されているかを示すプロセッサ識別子が含まれる。タイミング情報生成回路131は、第1プロセッサ110、または第2プロセッサ120のトレースデータ出力タイミングを示すタイミング情報を出力する。本実施の形態において、タイミング情報生成回路131は、タイミング情報として1ビットのビット値であるタイミングフラグを出力する。タイミング情報生成回路131は、プロセッサ1出力イネーブル信号、プロセッサ2出力イネーブル信号の少なくとも一方が入力されたタイミングにタイミングフラグを反転する。タイミング情報生成回路131の内部構成の一例を図2に示す。図示するようにタイミング情報生成回路131は、OR回路171と、AND回路172と、D型フリップフロップ173と、NOT回路174と、を備える。各回路の出力信号を図3のタイミングチャートに示す。OR回路171には、プロセッサ1出力イネーブル信号及びプロセッサ2出力イネーブル信号が入力される。OR回路171は、プロセッサ1出力イネーブル信号及びプロセッサ2出力イネーブル信号の一方がハイレベル1、以下同様である。である場合にハイレベルをAND回路172に出力し、それ以外の場合両信号がいずれもロウレベル0以下同様である。である場合にロウレベルをAND回路172に出力する図3参照。AND回路172には、クロック信号と、OR回路171からの出力信号が入力される。AND回路172は、両入力信号が共にハイレベルである場合にD型フリップフロップ173のクロック入力端子にハイレベルを供給し、それ以外の場合にD型フリップフロップ173のクロック入力端子にロウレベルを供給する図3参照。D型フリップフロップ173のクロック入力端子には、AND回路172の出力信号が入力される。D型フリップフロップ173の入力端子Dには、D型フリップフロップ173の出力信号の反転信号NOT回路174の出力信号が入力される。D型フリップフロップ173は、一般的なディレイ型のフリップフロップと同様の動作を行う。D型フリップフロップ173は、出力信号をトレースメッセージ生成回路132にタイミングフラグ信号として供給する。NOT回路174は、D型フリップフロップ173の出力信号を反転すなわち、ロウレベルであればハイレベルに変換し、ハイレベルであればロウレベルに変換する。し、反転信号をD型フリップフロップ173の入力端子Dに供給する。改めて、図3を参照し、各回路の出力信号について説明する。OR回路171は、プロセッサ1出力イネーブル信号及びプロセッサ2出力イネーブル信号の一方がハイレベルである場合にハイレベルをAND回路172に出力する。そのため、OR回路171は、t2~t8、t9~t10、t11~t12にハイレベルを出力する。AND回路172は、クロック信号とOR回路171の出力信号が共にハイレベルである場合にハイレベルを出力する。よって、AND回路172は、t2~t2.5タイミングt2とタイミングt3の中間タイミング、以下同様の記載を行う。、t3~t3.5、t4~t4.5、t5~t5.5、t6~t6.5、t7~t7.5、t9~t9.5、t11~t11.5にハイレベルを出力する。D型フリップフロップ173では、前述のようにAND回路172の出力信号がクロック入力端子に供給され、自身の出力信号の反転信号が入力端子Dに供給される。そのため、D型フリップフロップ173は、t2~t3、t4~t5、t6~t7、t9~t11にハイレベルを出力する。これにより、D型フリップフロップ173の出力信号、すなわちタイミングフラグは、図3に示すように、第1プロセッサ110及び第2プロセッサ130の少なくとも一方のトレース出力タイミングで値を反転している。再び、図1を参照する。トレースメッセージ生成回路132は、OVFフラグ133と、タイミングフラグ134と、を保持する。トレースメッセージ生成回路132は、タイミング情報生成回路131から入力されるタイミングフラグ134をトレースデータ毎に保持する。さらに、トレースメッセージ生成回路132は、タイムスタンプカウンタ135からキャリー信号が入力された場合に、OVFフラグ133をオンに設定する。トレースメッセージ生成回路132は、プロセッサ1出力イネーブル信号、プロセッサ2出力イネーブル信号の一方または双方を受信した場合、OVFフラグ133がオンに設定されているか否かを判定する。OVFフラグ133がオンに設定されている場合、OVFカウント値要求信号をOVFカウント値生成回路142に供給する。OVFカウント値要求信号とは、OVFカウント値生成回路142に対し、OVFカウンタ141のカウント値を用いてOVFカウント値を生成し、生成値をOVFカウント値バッファ143に格納することを要求する信号である。トレースメッセージ生成回路132は、プロセッサ1出力イネーブル信号を受信した場合、第1プロセッサ110からトレースデータ、タイムスタンプカウンタ135からタイムスタンプカウント値、タイミング情報生成回路131からタイミングフラグを受信する。同様に、トレースメッセージ生成回路32は、プロセッサ2出力イネーブル信号を受信した場合、第2プロセッサ120からトレースデータ、タイムスタンプカウンタ135からタイムスタンプカウント値、タイミング情報生成回路131からタイミングフラグを受信する。トレースメッセージ生成回路132は、トレースデータと、タイムスタンプカウント値と、タイミングフラグと、OVFフラグ133の値と、を関連付けたトレースメッセージを生成する。トレースメッセージバッファ136は、FIFOFirstInFirstOut型の記憶部である。トレースメッセージ生成回路132は、トレースメッセージの作成後にOVFフラグ133の値をクリアオフし、カウンタリセット信号RESをタイムスタンプカウンタ135及びOVFカウンタ141に供給する。カウンタリセット信号は、タイムスタンプカウンタ135のカウント値、及びOVFカウンタ141のカウント値をリセットする信号である。トレースメッセージ生成回路132は、生成したトレースメッセージをトレースメッセージバッファ136に入力する。なお、トレースメッセージ生成回路132は、プロセッサ1出力イネーブル信号及びプロセッサ2出力イネーブル信号を受信した場合、プロセッサ毎のトレースメッセージを同時に作成し、トレースメッセージバッファ136に入力する。タイムスタンプカウンタ135は、クロック信号に同期して、一定の時間間隔でカウント動作を行う。タイムスタンプカウンタ135は、カウント値をトレースメッセージ生成回路132に供給する。タイムスタンプカウンタ135は、カウント値が上限値に到達するオーバーフローすると、キャリー信号をトレースメッセージ生成回路132及びオーバーフローカウンタ制御回路140に供給する。タイムスタンプカウンタ135は、トレースメッセージ生成回路132からカウンタリセット信号を受信した場合に、カウント値をリセット0に設定する。オーバーフローカウンタ制御回路140は、OVFカウンタ141と、OVFカウント値生成回路142と、OVFカウント値バッファ143と、トレースメモリ書き込み制御回路144と、を備える。トレースメモリ書き込み制御回路144は、内部にレジスタ145を有する。OVFカウンタ141は、トレースメッセージ生成回路132からカウンタリセット信号RESを受信すると初期化され、ゼロから計数を開始する。OVFカウンタ141は、タイムスタンプカウンタ135から出力されるキャリー信号の入力回数を計数する。OVFカウント値生成回路142は、トレースメッセージ生成回路132からOVFカウント値要求信号が入力されるアクティブになると、OVFカウンタ141のカウント値を読み出す。OVFカウント値生成回路142は、読み出したカウント値をOVFカウント値バッファ143に入力する。OVFカウント値バッファ143は、FIFOFirstInFirstOut型の記憶部である。OVFカウント値バッファ143は、OVFカウント値生成回路142によって生成された順序でカウント値を保持する。トレースメモリ書き込み制御回路144は、トレースメッセージバッファ136からトレースメッセージを順次読み出し、読み出したトレースメッセージをトレースメモリ150に書き込む回路である。トレースメモリ書き込み制御回路144は、内部にレジスタ145を有する。レジスタ145は、トレースメモリ書き込み制御回路144が直近に書き込んだトレースメッセージに含まれるタイミング情報本実施の形態ではタイミングフラグの値を保持する。トレースメモリ書き込み制御回路144は、これから書き込むトレースメッセージ内のOVFフラグを抽出し、オンに設定されているか否かを判定する。さらに、トレースメモリ書き込み制御回路144は、これから書き込むトレースメッセージ内のタイミングフラグの値と、レジスタ145が保持するタイミングフラグの値と、を比較する。OVFフラグがオンであり、タイミングフラグの値が一致しない場合、トレースメモリ書き込み制御回路144は、OVFカウント値バッファ143の先頭に位置するカウント値を取得する。トレースメモリ書き込み制御回路144は、取得したカウント値をトレースメモリ150に書き込む。その後、トレースメモリ書き込み制御回路144は、書き込み対象のトレースメッセージをトレースメモリ150に書き込む。一方、OVFフラグがオンではない場合、またはタイミングフラグの値が一致する場合、トレースメモリ書き込み制御回路144は、OVFカウント値バッファ143からカウント値を取得しない。トレースメモリ書き込み制御回路144は、書き込み対象のトレースメッセージをトレースメモリ150に書き込む。トレースメモリ150は、トレースメモリ書き込み制御回路144から書き込まれるトレースメッセージを格納する記憶部である。ホストIF160は、トレースメモリ150と、デバッグプログラム210と、のデータのやり取りを仲介する処理部である。ホストコンピュータ20は、デバッグプログラム210を実行する。デバッグプログラム210は、第1CPUコアおよび第2CPUコアでのデバッグ対象のプログラムの実行、停止を指示したり、トレースメモリ150に書き込まれたトレースメッセージを取り込んでホストコンピュータの表示装置へ渡し、トレースメッセージの内容を表示させる。ホストコンピュータ20は、液晶ディスプレイ等の表示部と一体化された装置、または接続可能に構成された装置である。ホストコンピュータ20は、CPUCentralProcessingUnitやHDDHardDiskDrive等の補助記憶装置、RAMRandomAccessMemory等の不揮発性メモリを有する。デバッグプログラム210は、補助記憶装置内に格納され、実行時にRAMに適宜読み出されてCPUにより実行される。デバッグプログラム210は、前述の表示部に表示する表示メッセージを取得、生成する続いて、図4を参照して、タイミング情報生成回路131の動作を説明する。図4は、本実施の形態にかかるタイミング情報生成回路131の動作を示すフローチャートである。各CPUコアにてユーザプログラムが実行される前に、タイミング情報生成回路131内のタイミングフラグの値をリセットするS11。すなわち、はじめにタイミング情報生成回路131が生成するタイミングフラグの値を0ロウレベルとする。タイミングフラグの値のリセットは、ライトアクセスを行うことにより実現する。タイミング情報生成回路131は、第1CPUコア110及び第2CPUコア120がユーザプログラムを実行中であるか否かを判定するS12。ユーザプログラムの実行中ではない場合S12:No、タイミング情報生成回路131は、処理を終了する。ユーザプログラムの実行中である場合S12:Yes、タイミング情報生成回路131は、出力イネーブル信号プロセッサ1出力イネーブル信号、プロセッサ2出力イネーブル信号が有効1、ハイレベルであるか否かを判定するS13。いずれも有効ではない場合、タイミング情報生成回路131は、S12の処理を再度行う。出力イネーブル信号の一方が有効である場合S13:Yes、タイミング情報生成回路131は、タイミングフラグを反転するS14。続いて、図5を参照して、トレースメッセージ生成回路132の動作を説明する。図5は、トレースメッセージ生成回路132の動作を示すフローチャートである。各CPUコアにてユーザプログラムが実行される前に、タイムスタンプカウンタ135のカウント値、OVFフラグ133、及びOVFカウンタ141をライトアクセスによりリセットするS21。トレースメッセージ生成回路132は、第1CPUコア111及び第2CPUコア121がユーザプログラムを実行中であるか否かを判定するS22。ユーザプログラムの実行中ではない場合S22:No、トレースメッセージ生成回路132は、処理を終了する。ユーザプログラムの実行中である場合S22:Yes、トレースメッセージ生成回路132は、出力イネーブル信号プロセッサ1出力イネーブル信号、プロセッサ2出力イネーブル信号が有効である否かを判定するS23。出力イネーブル信号が有効ではない場合S23:No、トレースメッセージ生成回路132は、S22の処理を再度行う。出力イネーブル信号が有効になった場合S23:Yes、トレースメッセージ生成回路132は、OVFフラグ133がオンに設定されているか否かを判定するS24。OVFフラグ133がオンに設定されている場合S24:Yes、トレースメッセージ生成回路132は、OVFカウント値要求信号をOVFカウント値生成回路142に供給するS25。OVFフラグ133がオンに設定されていない場合S24:No、トレースメッセージ生成回路132は、OVFカウント値要求信号を出力しない。そして、トレースメッセージ生成回路132は、出力イネーブル信号の受信に応じて、トレースデータ、タイムスタンプカウント値、及びタイミングフラグを取得するS26。トレースメッセージ生成回路132は、トレースデータと、タイムスタンプカウント値と、タイミングフラグと、OVFフラグ133の値と、を関連付けたトレースメッセージを生成するS27。トレースメッセージ生成回路132は、OVFフラグ133の値をクリアオフすると共に、カウンタリセット信号をタイムスタンプカウンタ135及びOVFカウンタ141に供給するS28。トレースメッセージ生成回路132は、生成したトレースメッセージをトレースメッセージバッファ136に入力するS29。S29の処理の後、トレースメッセージ生成回路132は、S23の処理を再度行う。続いて、図6を参照して、オーバーフローカウント値生成回路142の動作を説明する。図6は、オーバーフローカウント値生成回路142の動作を示すフローチャートである。オーバーフローカウント値生成回路142は、第1CPUコア111及び第2CPUコア121がユーザプログラムを実行中であるか否かを判定するS31。ユーザプログラムの実行中ではない場合S31:No、オーバーフローカウント値生成回路142は、処理を終了する。ユーザプログラムの実行中である場合S31:Yes、オーバーフローカウント値生成回路142は、OVFカウント値要求信号の受信を受け付けるS32。OVFカウント値要求信号を受信しない場合S32:No、オーバーフローカウント値生成回路142は、S31から処理を再度行う。OVFカウント値要求信号を受信した場合S32:Yes、オーバーフローカウント値生成回路142は、OVFカウンタ141からカウント値を取得するS33。そして、OVFカウント値生成回路142は、取得したカウント値をOVFカウント値バッファ143に入力するS34。その後、オーバーフローカウント値生成回路142は、S32から処理を再度行う。続いて、図7及び図8を参照して、トレースメモリ書き込み制御回路144の動作を説明する。図7及び図8は、トレースメモリ書き込み制御回路144の動作を示すフローチャートである。各CPUコアにてユーザプログラムが実行される前に、タイミング情報生成回路131内のタイミングフラグの値をリセットするS41。すなわち、はじめにタイミング情報生成回路131が生成するタイミングフラグを0とする。トレースメモリ書き込み制御回路144は、第1CPUコア111及び第2CPUコア121がユーザプログラムを実行中であるか否かを判定するS42。ユーザプログラムの実行中ではない場合S42:No、トレースメモリ書き込み制御回路144は、処理を終了する。ユーザプログラムの実行中である場合S42:Yes、トレースメモリ書き込み制御回路144は、トレースメッセージバッファ136にトレースメッセージが格納されているか否かを判定するS43。トレースメッセージが格納されていない場合S43:No、トレースメモリ書き込み制御回路144は、S42から処理を再度行う。トレースメッセージが格納されている場合S43:Yes、トレースメモリ書き込み制御回路144は、トレースメッセージバッファ136の先頭からトレースメッセージを取得するS44。トレースメモリ書き込み制御回路144は、取得したトレースメッセージからOVFフラグの値を抽出する。トレースメモリ書き込み制御回路144は、抽出したOVFフラグがオンに設定されているか否かを判定するS45。OVFフラグがオンに設定されている場合S45:Yes、トレースメモリ書き込み制御回路144は、トレースメッセージ内のタイミングフラグの値を抽出する。トレースメモリ書き込み制御回路144は、抽出したタイミングフラグの値と、レジスタ145が保持する値と、を比較するS46。両者が一致しない場合S46:No、トレースメモリ書き込み制御回路144は、OVFカウント値バッファ143の先頭に格納されたカウント値を取得しS47、取得したカウント値をトレースメモリ150に書き込むS48。そして、トレースメモリ書き込み制御回路144は、トレースメモリ150のアドレスをインクリメントするS49。OVFフラグがオンに設定されていない場合S45:No、または書き込み対象のトレースメッセージに含まれるタイミングフラグの値とレジスタ145が保持する値とが一致する場合S46:Yes、トレースメモリ書き込み制御回路144は、S47~S49の処理を行わない。トレースメモリ書き込み制御回路144は、書き込み対象のトレースメッセージからタイミングフラグの値を取得し、取得した値をレジスタ145に上書きするS50。トレースメモリ書き込み制御回路144は、トレースメッセージをトレースメモリ150に書き込むS51。そして、トレースメモリ書き込み制御回路144は、トレースメモリ150のアドレスをインクリメントするS52。トレースメモリ書き込み制御回路144は、トレースメモリ150のアドレスのインクリメントS52の後に、再度、トレースメッセージバッファ136にトレースメッセージが格納されているか否かを判定するS43。次に、図9の模式図を参照して、各処理部の動作を更に説明する。なお、以下の説明において、参考として上述のフローチャート図4~図8の符号も併せて記載する。タイミング情報生成回路131は、上述した方法により、トレースデータの入力毎に反転するタイミングフラグを生成するS11~S14。この際、タイミング情報生成回路131は、どのプロセッサがトレースデータを出力したか、または複数のプロセッサがトレースデータを出力したか、等に関わらずトレースデータの入力毎にタイミングフラグを反転する。トレースメッセージ生成回路132は、トレースデータに、タイミングフラグ、OVFフラグ及びタイムスタンプカウンタのカウント値を関連付けたトレースメッセージを生成するS27。図9では、トレースメッセージ2のトレースデータと、トレースメッセージ3のトレースデータと、が同じタイミングで出力されている。この場合、トレースメッセージ2とトレースメッセージ3は、同じタイミングフラグ、同じOVFフラグ、及び同じタイムスタンプカウント値を持つ。同様に、トレースメッセージ4のトレースデータと、トレースメッセージ5のトレースデータと、が同じタイミングで出力されている。この場合、トレースメッセージ4とトレースメッセージ5は、同じタイミングフラグ、同じOVFフラグ、及び同じタイムスタンプカウント値を持つ。トレースメッセージ生成回路132は、生成したトレースメッセージを順次トレースメッセージバッファ136にエントリする。図9の上部には、トレースメッセージバッファ136にエントリされたトレースメッセージが示されている。トレースメモリ書き込み制御回路144は、トレースメッセージバッファ136からトレースメッセージを取得する。トレースメモリ書き込み制御回路144は、OVFフラグが0であれば、タイミングフラグの値をレジスタ145に書き込みS50、トレースメッセージをトレースメモリ150に書き込むS51。図9では、トレースメッセージバッファ136のトレースメッセージ1~3は、OVFフラグの値が0であるため、トレースメモリ150にそのまま書き込まれる。トレースメモリ書き込み制御回路144は、OVFフラグが1であれば、取得したトレースメッセージのタイミングフラグと、レジスタ145の値を比較するS46。一致しない場合、トレースメモリ書き込み制御回路144は、直近のトレースデータの発生後にタイムスタンプがオーバーフローし、その後にトレースデータが出力されたと判定する。この場合、トレースメモリ書き込み制御回路144は、OVFカウント値バッファ143からOVFカウント値を取得しS47、取得したOVFカウント値をトレースメモリ150に書き込むS48。そして、トレースメモリ書き込み制御回路144は、タイミングフラグの値をレジスタ145に書き込みS50、トレースメッセージをトレースメモリ150に書き込むS51。図9では、トレースメッセージ4~6は、保持するOVFフラグの値が1である。トレースメッセージ4のタイミングフラグの値は、直近のトレースメッセージのタイミングフラグと一致しない。そのため、トレースメッセージ4は、OVFカウント値1の書き込みの後にトレースメモリ150に書き込まれる。トレースメッセージ5のタイミングフラグの値は、直近のトレースメッセージのタイミングフラグと一致している。そのため、トレースメッセージ5は、トレースメッセージ4と同時に出力されたと判定される。ここで、OVFカウント値1は、すでにトレースメモリ150に書き込まれている。そのため、トレースメモリ書き込み制御回路144は、タイミングフラグの値をレジスタ145に書き込みS50、OVFカウント値を書き込むことなく、トレースメッセージ5をトレースメモリ150に書き込むS51。トレースメッセージ6のタイミングフラグの値は、直近のトレースメッセージのタイミングフラグと一致しない。そのため、トレースメッセージ6は、OVFカウント値2の書き込みの後にトレースメモリ150に書き込まれる。次に、ホストコンピュータ20によるトレースメモリの読み出し処理について説明する。ホストコンピュータ20上で実行されるデバッグプログラム210は、第1プロセッサ110及び第2プロセッサ120によるプログラム実行が終了した後に、トレース結果をホストコンピュータ20上ホストコンピュータ20に接続されたディスプレイ装置等に表示するため、トレースメモリ150からトレースメッセージとOVFカウント値を読み出す。なお、表示処理部210の処理は、一般にコンピュータが実行するデバッガプログラムとして実現される。デバッグプログラム210は、読み出したトレースメッセージを基に、例えばGUIGraphicalUserInterface形式のユーザに対する表示画面を生成する。デバッグプログラム210が最初に読み出したトレースメッセージに含まれるタイムスタンプの値は、ユーザプログラム実行開始から最初のトレースデータが生成されるまでの時間間隔を示す。デバッグプログラム210は、トレースメッセージを書き込み順に読み出す。デバッグプログラム210は、読み出したトレースメッセージ内のタイミングフラグと、直前に読み出したトレースメッセージ内のタイミングフラグを比較する。タイミングフラグの値が同じである場合、デバッグプログラム210は、これらのトレースメッセージに含まれるトレースデータが同時出力されたと判断する。ここで、タイミングフラグの値が異なる場合、読み出したトレースメッセージ内のトレースデータの発生と、直近のトレースメッセージ内のトレースデータの発生との間隔は、読み出したトレースメッセージに含まれるタイムスタンプ値となる。読み出したトレースメッセージの直近にOVFカウント値が書き込まれている場合、読み出したトレースメッセージ内のトレースデータの発生と、直近のトレースメッセージ内のトレースデータの発生との間隔は、以下の数1により算出される。数1OVFカウント値×タイムスタンプカウンタ135のフルカウント値読み出したトレースメッセージのタイムスタンプ値デバッグプログラム210は、タイミングフラグに基づいて、直近のトレースデータとの出力タイミングが同じであるか否か、トレースデータ間の出力間隔等が把握できる表示画面を生成する。例えば、デバッグプログラム210は、図9に示すトレースメモリ150内の構成に類似した画面を生成し、トレースデータ2とトレースデータ3が同時発生したこと、及びトレースデータ4とトレースデータ5が同時発生したこと、を当該画面上に表示すればよい。ここで、本実施の形態にかかるインサーキットエミュレータの効果について再度説明する。上述したように、タイミング情報生成回路131は、トレースデータの入力タイミング毎に反転するタイミングフラグを生成する。図3に示すように、同時にトレースデータが出力された場合、両トレースデータには同じ値を持つタイミングフラグが関連付けられる。そのため、デバッグプログラム210は、同時発生したイベントにかかるトレースメッセージを判別可能な表示画面を生成することができる。<実施の形態2>本実施の形態にかかるインサーキットエミュレータは、タイミング情報生成回路131の構成が実施の形態1と異なり、ノイズグリッチノイズを防止できることを特徴とする。本実施の形態にかかるインサーキットエミュレータについて、実施の形態1と異なる点を中心に説明する。なお、以下の説明において、同一符号、同一名称を付した処理部であって、特に言及しない処理部は、基本的に実施の形態1と同様の処理を行う。本実施の形態にかかるインサーキットエミュレータは、タイミング情報生成回路131の構成を除いて、実施の形態1の構成図1と同一構成である。はじめに実施の形態1にかかるタイミング情報生成回路131では、問題が起きる場合について説明する。続いて、本実施の形態にかかるタイミング情報生成回路131の構成、及び動作について説明する。図10を参照して、実施の形態1にかかるタイミング情報生成回路131では、問題が起きる場合について説明する。図10は、実施の形態1にかかるタイミング情報生成回路131の動作を示すタイミングチャートであり、縮尺が異なるものの図3と対応するものである。上述のように、AND回路172は、OR回路171プロセッサ1イネーブル信号とプロセッサ2イネーブル信号の論理和出力とクロック信号との論理積を出力する。しかし、何らかの誤操作により、クロック信号の立ち上がりがOR回路171の信号立下りよりも若干速く発生する可能性がある。この場合、AND回路172は、一瞬だけハイレベルとなる出力信号を生成する可能性がある。例えば、図10では、AND回路172は、t8において一瞬だけ立ち上がる信号ノイズの存在する信号を生成してしまう可能性がある。このようなAND回路172の出力信号を用いた場合、タイミングフラグの値が誤ったものとなる。次に、このような問題を解決するためのタイミング情報生成回路131の構成について説明する。図11は、本実施の形態にかかるタイミング情報生成回路131の構成を示すブロック図である。タイミング情報生成回路131は、OR回路175と、Dラッチ176と、D型フリップフロップ177と、NOT回路178と、を備える。各回路の出力信号を図12のタイミングチャートに示す。OR回路175には、プロセッサ1出力イネーブル信号及びプロセッサ2出力イネーブル信号が入力される。OR回路175は、プロセッサ1出力イネーブル信号及びプロセッサ2出力イネーブル信号の一方がハイレベルである場合にハイレベルをDラッチ176のイネーブル端子Eに供給し、それ以外の場合両信号がいずれもロウレベルである場合にロウレベルをDラッチ176のイネーブル端子Eに供給する図12参照。Dラッチ176は、一般的なDラッチの動作を行う。Dラッチ176のイネーブル端子Eには、OR回路175の出力信号が供給される。また、Dラッチ176の入力端子Dには、クロック信号が入力される。Dラッチ176は、出力信号をD型フリップフロップ177のクロック端子に供給する。D型フリップフロップ177のクロック端子には、Dラッチ176の出力信号が入力され、入力端子Dには自身の出力信号の反転信号NOT回路178の出力信号が入力される。D型フリップフロップ177は、一般的なディレイ型のフリップフロップと同様の動作を行う。D型フリップフロップ177は、出力信号をトレースメッセージ生成回路132にタイミングフラグ信号として出力する。NOT回路178は、D型フリップフロップ177の出力信号を反転すなわち、ロウレベルであればハイレベルに変換し、ハイレベルであればロウレベルに変換する。し、反転信号をD型フリップフロップ177の入力端子Dに供給する。次に図12を参照し、各回路の出力信号について説明する。なお、図12のプロセッサ1出力イネーブル信号及びプロセッサ2イネーブル信号の波形は、図10と同一である。OR回路175は、プロセッサ1出力イネーブル信号及びプロセッサ2出力イネーブル信号の一方がハイレベルである場合にハイレベルをDラッチ176に供給する。そのため、OR回路175は、t2~t8、t9~t10、t11~t12にハイレベルを出力する。Dラッチ176は、前述のようにOR回路175の出力信号E1をイネーブル端子Eの入力とし、クロック信号CKを入力端子Dの入力とする。Dラッチ176は、信号E1の立ち上がりに同期してクロック信号CKをスルー出力する。また、Dラッチ176は、信号E1の立ち下がりに同期してクロック信号CKを保持し、信号E1が立ち上がるまでその値を出力する。そのため、図12のタイミングt8においてクロック信号が所望のタイミングよりも若干速く立ち上がった場合であっても、Dラッチ176の出力信号Q1はハイレベルのままとなるクロック信号CKの値が保持される。そのため、図10に示すようなノイズの影響は受けない。D型フリップフロップ177は、図12に示す出力信号を出力する。なお、実施の構成1図3と比べてタイミングフラグの出力波形も変化している。しかし、図12に示すタイミングフラグは、トレースデータの少なくとも一方が出力される毎に値が反転している。そのため、実施の形態1と同様の効果トレースデータの同時出力を把握することができるを得ることができる。続いて、本実施の形態にかかるインサーキットエミュレータの効果について再度説明する。上述したように実施の形態1にかかるタイミング情報生成回路131は、クロック信号の入力タイミングのずれに起因して動作が不正確になる恐れがある。一方、本実施の形態にかかるタイミング情報生成回路131は、Dラッチ176を備える構成である。これにより、クロック信号の入力タイミングのずれが生じた場合であっても、このずれに起因するノイズが生じない。ノイズの発生を防止することにより、誤動作の少ないインサーキットエミュレータを実現することができる。<実施の形態3>本実施の形態にかかるインサーキットエミュレータは、実施の形態2と略同一の構成を有する。以下、本実施の形態にかかるインサーキットエミュレータについて、実施の形態2と異なる点を説明する。図13は、本実施の形態にかかるタイミング情報生成回路131の構成を示すブロック図である。本実施の形態にかかるタイミング情報生成回路131は、D型フリップフロップ179の構成のみが実施の形態2と異なる。D型フリップフロップ179は、出力端子Qからの出力信号の反転信号を出力する出力端子QBと、入力端子Dと、を接続する。これにより、図12と同一の動作を行う。なお、図示するように、図13の構成ではNOT回路を設ける必要性が無くなる。そのため、回路規模の縮小を実現することができる。<実施の形態4>本実施の形態にかかるインサーキットエミュレータは、タイミング情報としてタイミングカウント値所定値までカウントアップし、所定値となった時点でリセットされるカウント値を用いることを特徴とする。本実施の形態にかかるインサーキットエミュレータについて、実施の形態1と異なる点を中心に説明する。はじめに、本実施の形態にかかるタイミング情報生成回路131の構成について説明する。図14は、本実施の形態にかかるタイミング情報生成回路131の構成を示すブロック図である。タイミング情報生成回路131は、OR回路180と、Dラッチ181と、D型フリップフロップ182と、D型フリップフロップ183と、D型フリップフロップ184と、を備える。OR回路180には、プロセッサ1出力イネーブル信号及びプロセッサ2出力イネーブル信号が入力される。OR回路180は、プロセッサ1出力イネーブル信号及びプロセッサ2出力イネーブル信号の論理和をDラッチ181のイネーブル端子Eに供給する。Dラッチ181は、一般的なDラッチの動作を行う。Dラッチ181のイネーブル端子Eには、OR回路180の出力信号が供給される。また、Dラッチ181の入力端子Dにはクロック信号が入力される。Dラッチ176は、出力信号をD型フリップフロップ182のクロック端子に供給する。D型フリップフロップ182では、出力端子Qからの出力信号の反転信号を出力する出力端子QBと、入力端子Dと、が接続される。D型フリップフロップ182は、出力端子Qから出力信号D0を出力する。D型フリップフロップ182は、出力端子QBからの出力信号D0の反転信号をD型フリップフロップ183のクロック端子に供給する。D型フリップフロップ183では、出力端子Qからの出力信号の反転信号を出力する出力端子QBと、入力端子Dと、が接続される。D型フリップフロップ182は、出力端子Qから出力信号D1を出力する。D型フリップフロップ182は、出力端子QBからの出力信号D1の反転信号をD型フリップフロップ184のクロック端子に供給する。D型フリップフロップ184では、出力端子Qからの出力信号の反転信号を出力する出力端子QBと、入力端子Dと、が接続される。D型フリップフロップ182は、出力端子Qから出力信号D2を出力する。上述の出力信号D0、D1、D2の順に下位から連結させた3ビット値が、タイミングカウント値タイミング情報としてトレースメッセージ生成回路132に供給される。続いて、図15、図16のタイミングチャートに各信号の出力信号を示す。なお、各回路の出力信号値の変化は、上述の回路構成に基づいて当然に理解できるため、詳細な説明は省略する。ここで、[D2D1,D0]信号D0~D2より生成される3ビット値は、トレースデータの入力毎にカウントアップし、111となった後にリセット000される。上述の構成であっても、トレースデータの出力タイミングを正確に把握することができる。すなわち、同時に出力されたトレースデータを把握することができる。なお、トレースメモリ書き込み制御回路144は、本実施の形態においてタイミングフラグを扱う場合と略同一の手法でタイミングカウント値を参照し、トレースメッセージの書き込みを制御すればよい。なお、上述の説明では、3ビットのカウント値を用いて説明を行ったが、nビットの任意のカウント値を用いれば良い。本発明は上記実施の形態に限られたものではなく、趣旨を逸脱しない範囲で適宜変更することが可能である。"