JP3175757B2 - デバッグシステム - Google Patents

デバッグシステム

Info

Publication number
JP3175757B2
JP3175757B2 JP15392697A JP15392697A JP3175757B2 JP 3175757 B2 JP3175757 B2 JP 3175757B2 JP 15392697 A JP15392697 A JP 15392697A JP 15392697 A JP15392697 A JP 15392697A JP 3175757 B2 JP3175757 B2 JP 3175757B2
Authority
JP
Japan
Prior art keywords
signal
circuit
asynchronous
microprocessor
synchronous
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP15392697A
Other languages
English (en)
Other versions
JPH10111815A (ja
Inventor
啓介 進藤
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NEC Corp
Original Assignee
NEC Corp
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 NEC Corp filed Critical NEC Corp
Priority to JP15392697A priority Critical patent/JP3175757B2/ja
Priority to US08/910,800 priority patent/US6145099A/en
Publication of JPH10111815A publication Critical patent/JPH10111815A/ja
Application granted granted Critical
Publication of JP3175757B2 publication Critical patent/JP3175757B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/362Software debugging
    • G06F11/3636Software debugging by tracing the execution of the program
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/362Software debugging
    • G06F11/3632Software debugging of specific synchronisation aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3466Performance evaluation by tracing or monitoring
    • G06F11/349Performance evaluation by tracing or monitoring for interfaces, buses

Description

【発明の詳細な説明】
【0001】
【発明が属する技術分野】本発明は、マイクロプロセッ
サを内蔵したLSI等に代表される、内部動作の直接監
視が不可能なデジタル同期回路を使用したシステムと、
動作の直接監視が難しい同期回路間インターフェースを
使用システム、あるいは同期回路の間にシリアルインタ
ーフェース、高速バスインターフェースなどの非同期イ
ンターフェースを使用したシステムの動作を解析するデ
バッグシステムに関し、特に、ソフトウェアシミュレー
タに関する。
【0002】
【従来の技術】一般に、マイクロプロセッサに代表され
る機能LSIでは、微細化加工技術の進歩により、単独
の機能だけではなく、複数の機能を1つのチップに内蔵
する傾向がある。これによって、システムの高速化、高
機能化、消費電力の削減、及びシステム全体の低コスト
化を実現している。
【0003】マイクロプロセッサを中心とするシステム
では、そのハードウェアとともにマイクロプロセッサで
動作するソフトウェアと連係したシステムの開発が求め
られる。しかし、近年、そのシステムは大規模化、複雑
化の一途を辿っており、ソフトウェア及びハードウェア
開発の規模が大きくなるにしたがい、デバッグが複雑に
なっている。そして、このデバッグを効率的に行うため
には、そのシステムの動作を詳細に観測する必要があ
る。
【0004】一般的に、デバッグシステムにおいては、
LSIチップの外部端子の信号を観測することは可能で
あるが、LSIチップの中の信号は観測できない。一
方、初期のLSIチップで構成されたマイクロプロセッ
サでは、外部のメモリからの命令の読み込みをチップ外
部端子から行うことによって、その動作の最小単位であ
る命令の動作順序を外部から観測することができる。
【0005】しかし、回路集積技術の進歩により、LS
Iチップ上にキャッシュメモリが内蔵され、命令の読み
込みの大半がチップ内部のキャッシュメモリを使用する
ことによって行われる結果、LSIチップの外部端子を
用いて命令の挙動を観測することが難しくなっている。
【0006】さらに、タイマ及びシリアルインターフェ
ース等のマイクロプロセッサ以外の機能もチップの内部
に内蔵されつつあり、マイクロプロセッサ以外の機能の
挙動解析を外部から観測できず、それらの機能と連係し
た動作のデバッグが非常に難しい。
【0007】このようなシステムを想定したデバッグシ
ステムとして、例えば、特開平5−224989号公報
に記載されたものが知られている。
【0008】まず、図7を参照して、キャッシュメモリ
内蔵形のプロセッサのデバッグシステムについて概説す
る(以下この例を従来例1とする)。
【0009】キャッシュメモリを内蔵したマイクロプロ
セッサ701は、バスでメインメモリ702に接続され
ている。トレースアナライザ703は、バスに接続され
ており、マイクロプロセッサ701のメインメモリ70
2へのアクセスを読み取り、トレースメモリ704に格
納する。キャッシュメモリが有効でない場合には、プロ
セッサ701の命令読みだしは全てメインメモリ702
から行われ、トレースアナライザ703でその内容を完
全に監視できる。
【0010】ところが、キャッシュメモリが有効な場合
には、命令の実行内容をトレースアナライザ703で監
視することができない。そこで、マイクロプロセッサ7
01からモード表示信号705、命令実行開始信号70
6、分岐命令発生信号707、及び割り込み分岐発生信
号708がトレースアナライザ703に与えられる。
【0011】キャッシュメモリが有効な場合には、命令
実行開始信号706及び分岐命令発生信号707を用い
て、プログラムの分岐をしない動作、分岐先アドレスが
静的な条件分岐の動作をトレースアナライザ703で一
意に推定することができる。
【0012】一方、アドレスが動的に決定される分岐で
は、その動作の推定はこれだけの端子では不可能になる
ため、トレースアナライザ703がマイクロプロセッサ
701に割り込みを加えて動作を停止させて、そのアド
レスを確認する必要がある。ところが、このような動作
の停止は、実際のシステムの実時間の観測を事実上不可
能にするものである。
【0013】さらに、このようなシステムを想定したデ
バッグシステムとして、例えば、日経エレクトロニクス
1995年7月31日号、133頁に記載されたものが
知られている。
【0014】図8を参照して、分岐情報の出力機能が付
加されたデバッグシステムについて概説する(以下この
例を従来例2とする)。
【0015】CPUコア801には、デバッグ専用回路
802が接続され、トレースアナライザ803にデバッ
グの専用ピン804を介して接続される。信号は、CP
Uコア801のクロックに同期して出力され、毎クロッ
ク毎のCPUコア801の状態をマイクロプロセッサに
伝達する。信号として使用されているバスは4本で、プ
ロセッサの内部状態に対しては少ない信号である。
【0016】図9にデバッグの専用ピン804を介して
トレースアナライザ803に伝えられる信号の一部の内
容を示す。この状態は、CPUのクロック毎の命令実行
状態が必要な分だけ出力されている。この状態に加え、
非決定的な分岐が発生した状態JMPの時に限り、分岐
先アドレスを30クロック掛けてトレースアナライザ8
03に伝送する機能を持つ。これによって、従来例1で
不可能だったレジスタ間接ジャンプ等の非決定的なアド
レスへの分岐の観測をシステムを停止させずに行うこと
ができる。ただし、非決定的な分岐が30クロックの間
に連続して発生しないという条件を要する。
【0017】次に、図10を参照して、ソフトウェアデ
バッグ用ソフトウェアシミュレータについて概説する
(以下この例を従来例3とする)。
【0018】シミュレーションモデル401には、命令
実行ユニット401と、キャッシュ411を含んだCP
U412、それにメモリ415、I/Oインターフェー
スモデル1001及び1002と、それらを結合するバ
ス416で構成されたシステムのモデルを全て含む。
【0019】まず、ソフトウェアシミュレータにプログ
ラムメモリ初期状態402をロードし、クロック毎にシ
ミュレーションモデル401を動作させて、結果を内部
状態モニタ404で確認する。これによって、作成した
システム、プログラムの動作の正当性を検証する。
【0020】この従来例3のソフトウェアシミュレータ
の長所は、外部I/Oインターフェース1001、10
02のモデルを完全に作成する限りは、マイクロプロセ
ッサ、システムの動作の全てをユーザが監視できること
である。
【0021】
【発明が解決しようとする課題】ところで、上述の従来
例2では、マイクロプロセッサのプログラムカウンタの
動作を監視する機構を備え、命令の動作順序だけは観測
できるようになっているが、プログラムカウンタの流れ
だけでは、そのシステムの挙動の把握の手がかりにはな
るものの、不具合の原因を突き止めるのは難しい。つま
り、修正すべき不具合は、プログラムの流れ自体が原因
ではなく、そのシステムからの入力データ、マイクロプ
ロセッサの演算結果に関連して発生するものであり、そ
の動作の原因究明、原因の修正にはさらにプログラムの
解析が必要になる。
【0022】従来例2の方法では、人間がプログラム、
システムの動作を完全に把握する必要がある。ところ
が、今後大規模化、分散化する一途のシステムの解析に
対して人間の能力の向上には限界があり、システムの規
模の拡大に対して、デバッグの効率の向上が追い付かな
い可能性がある。このため、デバッグ環境の更なる支援
が求められる。
【0023】上述の従来例3では、この上記の欠点を克
服するために、ソフトウェアモデルでシステムの必要な
部分を全て作成して内部状態を観測するという手法を取
っている。これによって、命令の実行順序だけではな
く、システムの動作の全てが観測でき、観測したいイベ
ントが発生した以前に、時間にさかのぼって観測できる
という長所を持つ。
【0024】しかし、従来例2に対して次のような顕著
な欠点も持つ。それは、システムに存在する全てのハー
ドウェアのソフトウェアモデルが必要になるという点で
ある。また、実際のシステムで不具合が発生した時のシ
ステムの挙動を直接再現することができるわけではな
い。よって、実際の不具合の原因の特定では、デバッグ
システムのオペレータがシステムの動作を推測して特定
することが依然として不可欠となる。
【0025】よって、従来例3は開発を援助するには適
したシステムだが、実際のシステムで突発的に発生した
不具合の原因解析には、直接不具合の状態を観測出来る
訳ではないので適しているとはいえない。
【0026】いずれにしても、今後の複雑化するシステ
ムの動作の解析には、システム上で実際に発生した動作
の直接観測と、内部状態の詳細観測の双方が同時に求め
られる。
【0027】更に、近年のように大規模なシステムで
は、各同期回路が、それぞれに別個のクロックで同期し
て動作しているケースも存在する。一般的な同期回路の
シミュレーションには、入力信号を監視する必要がある
ため、このようなデバイスの非同期接続も全て監視する
必要が発生する。この方法では、非同期インターフェー
スの通信の全ての記録が必要になり、バッファ容量が膨
大になるという欠点がある。
【0028】このインターフェースが双方のクロックに
同期したインターフェースならば、それぞれのシミュレ
ーションモデルを使用してインターフェースの内容を再
現できる。ところが、クロック非同期転送に対しては流
用できない。理由は、転送タイミングがクロックに対し
て実行の度に変わるためである。このままでは結局全て
の転送信号の監視が必要になり、信号履歴バッファが大
量に必要になる。そのため、非同期転送でも一部の信号
だけの監視だけで、転送内容を再現する手法が求められ
る。
【0029】また、近年の高速インターフェースは、配
線の電気的特性すら厳格に規定するようになり、外部か
らの観測のプローブの接続が難しくなってきている。こ
のため、論理回路の内部動作の監視どころか、信号の入
力の全てを監視することすら出来なくなりつつある。
【0030】更に、高速転送を要求されるシステムは、
各デバイスが互いに非同期に動作し、転送は同期クロッ
クと共に転送するようなインターフェースも出現してい
る。このようなシステムはほとんどが同期回路であるに
もかかわらず外部から内部の動作タイミングを推測する
ことができない。
【0031】このように、双方のシステムが非同期に動
作するため、実際に発生した転送のタイミングは、実際
の観測無しに正確に判明しない。
【0032】このような非同期インターフェースを持つ
場合でも、内部動作、連携動作の観測が必要なことには
変わり無い。そのため、シミュレーションで内部動作を
観測する機能を有するデバッグシステムが求められる。
【0033】本発明の目的は内部状態の観測を行うこと
のできるデバッグシステムを提供することにある。
【0034】本発明の他の目的はソフトウェアモデル作
成の必要性を低減できるデバッグシステムを提供するこ
とにある。
【0035】
【課題を解決するための手段】本発明によれば、内部動
作を観測できない高速なデジタル同期回路あるいは高速
インターフェースを持つシステムに用いられ、該システ
ムの素子間の入力信号をシステムクロックに同期化して
出力する出力手段と、該出力手段の出力信号をスヌープ
して蓄積情報として蓄積する蓄積手段と、該蓄積情報を
用いて前記システムの同期回路あるいは高速インターフ
ェースの内部動作を再現する再現手段とを有することを
特徴とするデバッグシステムが得られる。
【0036】さらに、本発明によれば、マイクロプロセ
ッサを中核としてシステムクロックに同期する論理回路
を用いたシステムに用いられ、前記論理回路の初期状態
を出力するか又は前記論理回路を一意に初期化する初期
化手段と、前記マイクロプロセッサのシステムクロック
に同期した入力信号の少なくとも一部を監視して蓄積入
力信号として蓄積する蓄積手段と、該蓄積入力信号の履
歴を転送して前記システムのうちの外部から動作を観測
できない回路の内部動作を前記システムクロック単位で
再現する再現手段とを有することを特徴とするデバッグ
システムが得られる。
【0037】そして、前記マイクロプロセッサ以外の回
路からはメモリの変更が行われない場合には、前記マイ
クロプロセッサにおけるアクセスのうち前記メモリから
のリードデータ内容を除外して前記メモリのアクセスタ
イミングだけを監視して蓄積する入力信号監視機構が備
えられる。この際、前記入力信号監視機構は、変化の頻
度の低い信号を変化の内容と時間だけを記録して蓄積す
る手段を有している。
【0038】また、前記システムに前記マイクロプロセ
ッサだけではなく別のシステムクロックに同期して動作
する同期回路が備えられている場合には、前記マイクロ
プロセッサの外部からの入力信号に加えて前記同期回路
への入力信号を監視して再現する手段が備えられてお
り、前記マイクロプロセッサ及び前記同期回路を合わせ
て再現する手段を有し、前記マイクロプロセッサと前記
同期回路の間の信号の入出力の監視を省略する。
【0039】前記システムに前記システムクロックに非
同期に動作する非同期回路が備えられている場合には、
該非同期回路から前記論理回路に伝達された信号を別に
出力する出力手段と、該出力手段の出力信号を入力信号
として蓄積する手段と、該入力信号を用いて前記非同期
回路との連係動作を再現する手段が備えられる。
【0040】前記システムに前記システムクロックに非
同期に動作する非同期回路が備えられている場合には、
前記非同期回路から論理回路に伝達された信号のうち前
記非同期回路からのハンドシェイク入力信号だけをクロ
ック同期化して出力する第1の出力手段を有するととも
に、前記非同期回路からのバス信号を前記マイクロプロ
セッサの共有バスに同期化せずに出力する第2の出力手
段を有し、さらに、前記第1及び前記第2の出力手段の
出力信号を用いて前記非同期回路から前記論理回路への
入力を再現して連係動作を再現する手段を有するように
してもよい。
【0041】さらに、前記マイクロプロセッサに前記シ
ステムの初期状態をメモリに退避しておく手段を備え
て、前記入力信号を観測して蓄積する手段を有し、該蓄
積された入力信号を読みだす手段を有するとともに前記
蓄積された入力信号を用いて前記システムの動作を再現
する手段を有するようにしてもよい。
【0042】また、本発明によれば、複数のマイクロプ
ロセッサが複数搭載され、共有メモリと、外部の低速な
同期I/Oバスへのブリッジを有するとともに前記マイ
クロプロセッサ、前記共有メモリ、及び前記ブリッジを
接続してシステムクロックに同期して動作させる高速な
同期バスを有し、さらに、複数の非同期動作を行うI/
Oインターフェースを有し、該I/Oインターフェース
を外部の低速な同期I/Oバスに接続して前記同期バス
を経由して前記ブリッジへ伝達するシステムに用いら
れ、前記同期I/Oバスに接続されて前記ブリッジに到
達する信号だけを監視して蓄積する手段を有することを
特徴とするデバッグシステムが得られる。
【0043】この場合、前記マイクロプロセッサ、前記
共有メモリ、前記I/Oインターフェースの動作が蓄積
された入力信号を用いて動作を再現する再現手段が備え
られており、前記システムには外部のI/Oバスに高速
な同期回路が接続されている場合には、該高速な同期回
路の非同期入力信号を信号を監視して蓄積する手段を有
し、前記再現手段は前記高速な同期回路の動作を再現す
る。
【0044】
【発明の実施の形態】次に、本発明について図面を参照
して説明する。
【0045】図1を参照して、デバッグの対象であるタ
ーゲットシステム1にはプローブユニット2が接続さ
れ、ソフトウェアシミュレータモデル3はプローブユニ
ット2からのデータを使用する。
【0046】ターゲットシステム1は、プロセッサのソ
ケット11と、非同期I/Oインターフェース12、メ
インメモリ13等から構成され、バス14を通じてI/
Oインターフェース12とメモリ13が接続されてい
る。ターゲットシステム1は1つのクロック信号で同期
しており、ターゲットシステム1の中でクロックと同期
していない部分との仲介はI/Oインターフェース12
が行っている。
【0047】プロセッサのソケット11には、プローブ
104が接続され、プローブユニット2にプロセッサに
接続された端子の全信号を伝達する。プローブユニット
2は、ソケット11に挿入されるべきCPU(プロセッ
サ)と同じ動作をするCPU101と、CPUへの入力
信号を監視する入力信号スヌープユニット102と、ト
レースメモリ103とから構成され、入力信号スヌープ
ユニット102は通信バス105を介してソフトウェア
シミュレータ3にトレースメモリ103の内容を要求に
応じて伝達する。
【0048】ソフトウェアシミュレータ3には、CPU
のモデル312と、メインメモリモデル315と、プロ
ーブユニット2からの入力信号をシミュレータ上に再生
する入力信号再生ユニット313とが備えられている。
【0049】<マイクロプロセッサ(CPU)101>
ソケット11に挿入されるべきマイクロプロセッサ(C
PU)101は、1つのクロックに同期して動作し、全
ての内部状態を外部に出力可能にできるか、あるいは特
定のコマンドでリセットが可能になっている。これは、
暗黙の状態のため、動作が非決定的になってソフトウェ
アでの予測が不可能になることを回避するのが目的であ
る。
【0050】<非同期I/Oインターフェース12>非
同期I/Oインターフェース12は、マイクロプロセッ
サとクロック同期式のバスで接続されるととともに、割
り込み信号等のクロック非同期な信号も接続されてい
る。
【0051】<メインメモリ13>メインメモリ13の
アクセスタイミング、リフレッシュタイミング等は、マ
イクロプロセッサ101の動作とは無関係に決定され、
マイクロプロセッサ101へバスサイクルの終了を示す
READY信号が入力される。
【0052】図示の例では、メインメモリ13は、バス
信号14のストア以外の手段で勝手に内容を変更するこ
とはない。DMAなどの手段で、マイクロプロセッサ1
01の出力とは別の値の変更が有る場合には、マイクロ
プロセッサ101への入力でなくてもデータバス123
を監視する必要が発生する。
【0053】ここで、図2も参照してプローブユニット
2について説明する。
【0054】<プローブユニット2>ターゲットシステ
ム1の、本来マイクロプロセッサ101を挿入するソケ
ット11に挿入して、その信号をプローブユニット2上
のマイクロプロセッサ101に伝達し、マイクロプロセ
ッサ101の信号を出力する。その際、マイクロプロセ
ッサ(CPU)101への入力信号を入力信号スヌープ
ユニット102にも入力させる。
【0055】<入力信号スヌープユニット102>入力
スヌープユニット102には、マイクロプロセッサに入
力されている信号、データバス123、割り込み信号1
24、READY信号125の全てが接続されている。
【0056】データバス123、割り込み信号124は
マイクロプロセッサ101と並列に入力される。バスサ
イクル制御READY信号125は、まずプローブユニ
ットだけに入力し、マイクロプロセッサ101に、別の
READY信号126を生成して出力している。
【0057】入力スヌープユニット102では、マイク
ロプロセッサ101から発せられたアドレス信号121
とステータス信号122を読み取り、アドレスラッチ1
14にアドレスを出力し、データラッチ113、メモリ
コントロール116に制御信号を出力している。REA
DY信号125は、バスサイクル制御部111に入力さ
れ、その信号の内容をエンコード119に伝送するとと
ともに、READY信号126をマイクロプロセッサ1
01に出力する。
【0058】エンコード119は、割り込み信号12
4、READY信号123を時間方向にエンコードし
て、内部データバスに出力する。
【0059】内部データバスには、エンコード119、
データラッチ113、アドレスラッチ114、通信イン
ターフェース118が接続されている。メモリコントロ
ール116は、アドレスデコード112、エンコード1
19、通信インターフェース118の要求を調停すると
とともに、トレースメモリ103の読み書き制御信号1
25、アドレスカウンタ117への要求信号を発生す
る。
【0060】アドレスカウンタ117は、メモリコント
ロール116の要求に応じてトレースメモリ103への
アドレス130をインクリメントする。あるいは、通信
インターフェース118からの要求でアドレス130を
リセット、設定する。内部データバスにはトレースメモ
リ131のデータバス131が接続される。
【0061】<入力信号スヌープユニット102の動作
>CPU101はキャッシュ内蔵型のマイクロプロセッ
サであるため、その入力信号は以下の5通りである。
【0062】(1)メモリからの入力データ123 (2)メモリアクセスの終了タイミングを示すREAD
Y信号125 (3)外部I/Oインターフェースからの入力データ1
23 (4)外部I/Oインターフェースからの終了タイミン
グを示すREADY信号125 (5)割り込みなどの外部周辺からの非同期割り込み信
号124 このうち、(1)のメモリからの入力データは、自分で
書いたメモリの内容と同一のものが読みだされることが
保証されるならば、そのタイミングだけを保存すれば良
い。ただし、メモリアクセスに、外部周辺I/Oインタ
ーフェースからのCPUを介さないDMAアクセス等が
存在する場合は例外となる。その場合はに、アドレスに
到達しているDMA等のメモリデータライトをトレース
メモリにイベントとして別途格納する必要がある。
【0063】外部I/Oインターフェースは、入力デー
タをCPUの出力データから推測することはできないの
でデータを監視する必要がある。
【0064】アドレスデコード112は、(3)のケー
スのI/Oバスサイクルの時に、データバス123をデ
ータラッチ113に、アドレスバス121の内容をアド
レスラッチ114に格納し、カウンタ115で計測した
時間をエンコード116に伝達し、メモリコントロール
116の調停による権利を取得した後にトレースメモリ
131に出力する。また、(2)、(4)のケースのR
EADY信号125を関知して、エンコード119でエ
ンコードして、カウンタ115で計測した時間とととも
に、同様に、メモリコントロール116の調停による権
利を取得した後に、トレースメモリ131に出力する。
(5)のケースもエンコード119でエンコードして、
同様に、トレースメモリ131に出力を行う。
【0065】アドレスカウンタ117は、一回のトレー
スメモリ131への書き込み毎にインクリメントされ
て、トレースメモリ103の容量分の時間のトレースを
可能にする。
【0066】通信インターフェース118は、ソフトウ
ェアシミュレータモデル3等のホストからの要求132
を受け、メモリコントロール116の制御権を取得し、
通信バス133からアドレスカウンタ117にアドレス
を直接転送し、アドレスを指定したトレースメモリ10
3からの蓄積されたデータの読み込みを行い、通信バス
133からホストに転送する。
【0067】また、入力スヌープユニット102は、マ
イクロプロセッサ101からの特定のI/Oアドレスの
アクセスで、トレースメモリ103の内容の読み書きも
可能である。
【0068】<トレースメモリ103の内容>図6にト
レースメモリ103の内容の例を示す。マイクロプロセ
ッサ101への入力信号は、以下の方法でエンコードさ
れて記録される。
【0069】event:信号の種類に応じて、イベン
トを対応させる。信号の種類に適したエンコードを行
い、PROPTERTYに書き込む。以下に、イベント
の種類を示す。
【0070】−READY メモリアクセスREADY
信号125の内容 −INT 割り込み信号125の内容 −I/Oread I/Oインターフェースからのデー
タリードのアドレス及びデータ time:トレース開始からのイベントの発生したクロ
ック単位の時間 property:イベントの詳細な内容。イベントに
よって意味が変わる。
【0071】READY信号125はビットの変化の頻
度が高いことが想定されるため、エンコード119によ
って、16クロック分をビット列でpropertyに
格納する。同時に、eventの項目にREADY信号
を示すコード、timeの項目にビット列の開始時のシ
ステムクロック時間を書き込む。
【0072】割り込み信号124は、ビットの変化の頻
度が低いことが想定されるため、ON/OFFの際に、
各々1回、複数の信号のうちのどれが有効であるかの情
報ととともにエンコードして、トレースメモリ103の
propertyに書き込む。同時に、eventの項
目に割り込み信号の変化を示すコード、timeの項目
に割り込み信号の変化のシステムクロック時間を書き込
む。
【0073】I/Oリードバスサイクル125も同様
に、トレースメモリ103のpropertyにそのデ
ータを格納する。図1に示す例の場合は、データは16
ビットである。同時に、eventの項目にI/Oリー
ドを示すコード、timeの項目にI/Oリード完了の
システムクロック時間を書き込む。
【0074】<ソフトウェアシミュレータ3の構造>図
3に、ソフトウェアシミュレータ3の模式図を示す。ソ
フトウェアシミュレーションモデルは、キャッシュメモ
リ311を内蔵したCPU310と、外部メモリ315
と、入力信号デコードユニット313とから構成され
る。CPU310からメモリ315へは、バス316を
アドレスコントロール信号として接続されている。CP
U310とメモリ315と入力信号デコードユニット3
13の双方向信号のデータバス317を介して接続され
ている。また別に、割り込み信号などの入力信号デコー
ドユニット313から直接CPU312へ入力されてい
る信号317もある。
【0075】図10に示す従来例と異なり、I/Oイン
ターフェースモデル1001、1002を内部に持た
ず、ターゲットシステム1からキャプチャした入力信号
トレース結果303を使用してソフトウェアシミュレー
ションを行う。この構成の従来例3に対する長所は、完
全には動作を合わせにくいI/Oインターフェース10
01、1002のモデルの作成の必要がないばかりでは
なく、実際にターゲットシステムで発生した現象を完全
に再現できることにある。
【0076】<入力信号デコードユニット313>入力
信号デコードユニット313には、プローブユニット2
で獲得したトレースメモリ103の内容が全て転送され
る。
【0077】シミュレーションの開始によって、クロッ
ク単位のクロックカウント314を0に初期化する。カ
ウント314の値はシミュレーション時間の経過ととも
にインクリメントする。トレース結果の最初の行のti
meの項とクロックカウントの値が一致した時点で、e
ventの項にしたがって入力信号デコードユニットの
出力信号の値を変更する。
【0078】・READY信号の場合は、その後16ク
ロックの間、propertyの値を上位から1ビット
ずつクロック毎にずらして入力させる。
【0079】・I/OReadの場合は、該当するデー
タをデータバスに入力させる。この例では16ビットに
制限している。
【0080】・INTの場合は、該当するINT信号を
変化させる。
【0081】CPU101の出力信号などは一切確認し
ないでシステムクロック時間に依存して入力信号を決定
させる。
【0082】<デバッグの手順>ユーザーは以下の手順
でデバッグを行う。
【0083】1.ターゲットシステム1の動作を停止さ
せ、全ての初期値をソフトウェアシミュレータ3に転送
する。
【0084】2.ターゲットシステム1の動作の開始と
とともに、入力信号スヌープユニット102は入力信号
のトレースを開始する。
【0085】3.不具合等の事象の発生で、入力信号ス
ヌープユニット2の動作を止める。
【0086】4.その時点までのレトースメモリ103
の履歴を全てホストのソフトウェアシミュレータ3に伝
達する。
【0087】5.最初に送られた初期値で、ソフトウェ
アシミュレータ上の全回路を初期化する。
【0088】6.ソフトウェアシミュレータをシステム
クロック毎に動作させる。
【0089】7.システムクロック毎にトレースメモリ
103の履歴情報をデコードして入力する。
【0090】この手順を踏まえることにより、初期値の
転送時からトレース停止までの全ての時間において、マ
イクロプロセッサ101の全ての内部動作が再現でき
る。
【0091】この手法で、マイクロプロセッサ動作完全
に再現ができる理由は、基本的にマイクロプロセッサ
は、外部から入力されるクロックに同期して動作する。
つまり、同期された入力信号が与えられれば出力値が決
定的に予測できる。よって、従来例2と異なり、不具合
に至るまでの命令の実行順序、不具合が発生した状態を
読み取るだけではなく、不具合が起こる前までのマイク
ロプロセッサ101の内部状態が全て観測できる。
【0092】図4に、他の例として、図2のプローブユ
ニットの別の構成を示す。
【0093】周辺内蔵マイクロプロセッサ401は、図
1に示すマイクロプロセッサ101に相当するCPU4
10に加え、クロックに非同期な動作を行う非同期内蔵
I/O411、システムクロックに同期して動作するメ
モリコントローラ412を内蔵している。非同期内蔵I
/O411からの信号413は、ラッチ414でクロッ
クに同期化してCPUに入力させるととともに、その信
号を外部に同期化信号404として出力する。CPU4
10から非同期内蔵I/O411へのアクセスは、外部
バス121、122、123に内部信号と透過させて出
力する。
【0094】また、図1に示す例と異なり、メモリコン
トローラ412を内蔵しているため、外部からREAD
Y信号125を受け取る必要がない。
【0095】入力信号スヌープユニット413の構成も
異なる。周辺内蔵プロセッサ401の内部信号として出
力された非同期入力信号404を割り込み信号124と
同じ様に入力する。
【0096】メモリコントローラ412は、DRAM等
に不可欠なリフレッシュ等もクロックに同期した同期化
回路で生成するため、シミュレーションモデルを作成す
ればクロック単位のシミュレーションでREADY信号
の挙動が再現できる。このため、メモリアクセスのRE
ADY信号の入力スヌープが省略できる。
【0097】<図1に示す例との違い>図1に示す例と
異なり、周辺内蔵マイクロプロセッサ401は、CPU
410のクロックに同期して動作するメモリコントロー
ラ412、非同期に動作する内蔵I/O411を内部に
含む。
【0098】ソフトウェアシミュレーションモデル3
は、システムクロックに同期して動作しているため、温
度などの回路の変動に影響されることなく動作を決定的
に予測することができる。
【0099】そのため、メモリコントローラ412は、
メモリコントローラ412からCPU410への入力信
号を監視しなくてもメモリコントローラ412のシミュ
レーションモデルを作成すればその動作を決定的に予測
できる。
【0100】それに対して、非同期内蔵I/O411
は、周辺内蔵マイクロプロセッサ401の外部からの入
力信号402をシステムクロック単位で観測するだけで
は動作が予測できない。これにより、非同期内蔵I/O
411からCPU410への出力信号のタイミングも予
測できないため、PCU410の入力信号の全てが観測
できないことになり、図1で説明した手法だけではCP
U410動作の再現が出来ない。
【0101】ところが、非同期回路411のクロック単
位の再現が不可能でも、CPU410の動作の再現は可
能である。非同期回路の動作が非決定的なのは、非同期
信号が同期回路に入力されるタイミングがその都度変わ
るため、信号が入力される同期回路の挙動が非決定的に
なるためである。よって、非同期信号を同期化したタイ
ミングの履歴を別に保存すれば、非同期信号を入力する
同期回路の挙動の方は決定的に予測できる。
【0102】よって、この例では、同期化信号404を
別に出力して、非同期内蔵I/O411から内蔵CPU
410への同期化のタイミングを外部に出力している。
入力スヌープユニット413に同期化信号404のタイ
ミングを観測する回路を付加して、周辺マイクロプロセ
ッサ401の外部からのCPU410の動作を完全に観
測することを可能にしている。
【0103】さらに、DMA等の信号の入出力量の多い
同期回路を含んだ周辺内蔵プロセッサの場合も、DMA
のシミュレーションモデル作成とDMAへの入力信号の
キャプチャとによって、DMAからCPUへの信号がシ
ミュレーションで予測できるようになるため、観測する
入力信号が大幅に省略できる。
【0104】なお、この例は、周辺内蔵プロセッサの例
であるが、同期回路の周辺I/O、メモリコントローラ
がマイクロプロセッサの外部の周辺回路で作成してある
場合も、同じ様に周辺回路に入力スヌープユニットとそ
の周辺回路のモデルを作成して、非同期信号の同期化タ
イミングを監視すれば、マイクロプロセッサ外部の周辺
回路を含んだ再現も可能になる。
【0105】図5に、本発明の他の例のブロック図を示
す。
【0106】図5を参照して、キャッシュを内蔵したマ
イクロプロセッサ501,502,503は、クロック
同期の高速バス504により結合されている。高速バス
504にはさらに1つの共有メモリ510、I/Oブリ
ッジ511が接続されている。I/Oブリッジ511の
先には、クロックに非同期なI/Oインターフェース5
13、クロックに非同期な部分を含み高速動作を行うグ
ラフィックアクセラレータ514が低速バス512で接
続されている。
【0107】I/Oバススヌープユニット521は、こ
の低速バスに接続されており、I/Oインターフェース
513、グラフィックアクセラレータ514からのリー
ドサイクルをスヌープして格納する。同時に、I/Oブ
リッジ531に到達した割り込み信号を同期化して信号
531から受け取り、トレースメモリ522に格納す
る。
【0108】また、マイクロプロセッサ501上に、マ
イクロプロセッサ501から503と共有メモリ51
0、I/Oブリッジ511のソフトウェアモデルを持
つ。
【0109】1.マイクロプロセッサ501、共有メモ
リ510の初期状態を別のところに保存しておく。
【0110】2.上述した例と同様にして、I/Oバス
スヌープ521が履歴をトレースメモリ522に格納す
る。
【0111】3.不具合が出た時点などで履歴の格納を
停止し、マイクロプロセッサ501がトレースメモリ5
22の内容を読みだす。
【0112】4.ソフトウェアモデルシミュレータを起
動して、初期状態と履歴を利用してマイクロプロセッサ
501等の動作を再現する。
【0113】さらに、応用として、システムクロックに
同期したグラフィックアクセラレータ514が存在し、
グラフィックアクセラレータ514からI/Oブリッジ
501への読み込みデータが大量に発生する場合を考え
る。
【0114】この場合は、グラフィックアクセラレータ
の全ての同期化入力信号533をI/Oバススヌープユ
ニット521に出力して記録する。そして、グラフィッ
クアクセラレータ514のソフトウェアモデルを作成し
てシステムのモデルに追加して一緒にシミュレーション
を行えば、グラフィックアクセラレータ514とのバス
通信の内容が予測できるのでスヌープを省略でき、トレ
ースメモリ522に格納するI/Oバス信号の蓄積量が
削減できる。
【0115】図11に、本発明の他の例のブロック図を
示す。
【0116】図11を参照して、ここでは、ターゲット
システム1101が動作を観測する対象システムであ
る。プローブユニット1102は、ターゲットシステム
1101の動作を監視して、その監視内容をデバッグホ
ストシステム1103に転送する。
【0117】ターゲットシステム1101は、プロセッ
サ1111、プロセッサ1112、メモリ1113、そ
の他クロック信号生成素子、及びI/O回路1116等
から構成される。プロセッサ1111とプロセッサ11
12とは、それぞれ別のクロックで同期している。
【0118】プロセッサ1111には、非同期バス11
21と、非同期信号1122と非同期信号1124、ク
ロック信号1123、外付けメモリ1113、I/O1
116への制御信号バス1132、及びデータバス11
31が接続されている。非同期信号1124は外部I/
O1116からの非同期入力である。
【0119】このプロセッサ1111への非同期入力の
うち、非同期信号1124と、プロセッサ1112から
の転送要求信号1122は、それぞれクロック1123
で同期化されて信号1126、信号1125が生成され
る。これらの信号はテスト用にチップの外部に出力され
る。プロセッサの内部回路1114は全てクロック信号
1123で同期化されており、初期値と入力信号からそ
の挙動を一意に再現できる。
【0120】プロセッサ1112には、非同期バス11
21と、非同期信号1120と非同期信号1128、ク
ロック信号1127が接続されている。信号1128は
実施例1と同じ外部I/Oからの非同期入力である。こ
の実施例ではデバイス1112に外付けのメモリは接続
されない。このプロセッサ1112への非同期入力のう
ち、非同期信号1128と、プロセッサ1111からの
転送要求信号1120は、それぞれクロック1127で
同期化されて信号1129、信号1130が生成され
る。これらの信号はテスト用にチップの外部に出力され
る。プロセッサの内部回路1115は全てクロック信号
1127で同期化されており、初期値と入力信号からそ
の挙動を一意に再現できる。
【0121】プローブユニット1102にはターゲット
システム1101から以下の信号が入力される。
【0122】プロセッサ1111からの同期化された出
力信号である信号1125、信号1126 プロセッサ1111に入力されるクロック1123 プロセッサ1112からの同期化された出力信号である
信号1129、信号1130 プロセッサ1112に入力されるクロック1127 プロセッサ1111とプロセッサ外付けメモリ1113
とのインターフェース信号である制御信号1132、デ
ータ信号1131 プローブユニット1102からターゲットシステム11
01には以下の信号が出力される。
【0123】プロセッサ1111、プロセッサ1112
双方のリセット信号1133 プロセッサ1111とプロセッサ外付けメモリ1113
とのインターフェース信号である制御信号1132、こ
れは初期状態読みだしを行う目的で使用する。
【0124】デバッグホストシステム1103は、プロ
ーブユニットとの通信を行うインターフェース1150
と、ソフトウェアシミュレータ1151を搭載してい
る。
【0125】ソフトウェアシミュレータ1151は、主
にプロセッサ1101の内部回路1114に相当するシ
ミュレーションモデル1152、およびプロセッサ11
02の内部回路1115に相当するシミュレーションモ
デル1153、非同期バス1121、相互の転送ラッチ
1142,1146に相当する非同期転送バッファ11
43で構成される。ソフトウェアシミュレータ1151
は、通信インターフェース1150から入力された入力
信号履歴1305、メモリ初期値1306を入力して動
作する。
【0126】図12に、プローブユニット1102の内
部構造を示す。
【0127】プロセッサ1101からの出力信号は、プ
ロセッサ1101のクロック1123を使用したカウン
タでその時間を記録され、内部バッファにエンコードさ
れて格納される。
【0128】プロセッサ1102からの出力信号は、プ
ロセッサ1102のクロック1127を使用したカウン
タで時間を記録され、内部バッファにエンコードされて
格納される。
【0129】さらに、プロセッサ1101に接続された
メモリ1113を読み出すための制御回路を有する。
【0130】クロック1123のカウンタ、クロック1
127のカウンタのどちらかが一杯になった時点で、バ
ッファフラッシュ要求信号1209をホストシステムに
出力する。デバッグホストシステム1103は、通信イ
ンターフェース1150を使用してバッファ転送要求1
210を発行し、データバス1211からバッファの内
容をすべて受信して記録する。
【0131】図13に、ソフトウェアシミュレータの内
部構造を示す。
【0132】入力信号履歴1305、メモリ初期値13
06は、プローブユニット1102、通信インターフェ
ース1150を通じてターゲットシステムから送られる
データになる。プロセッサ1101のモデル1152に
は入力信号再生モジュール1310、メモリモデル13
11、及び非同期転送バスモジュール1303が接続さ
れている。
【0133】プロセッサ1102のモデル1153には
入力信号再生モジュール1310、非同期転送バスモジ
ュール1303が接続されているが、プロセッサ110
2と同じくメモリは接続されない。
【0134】各プロセッサは、同期以外はタイミング的
に独立して動作するため、マルチスレッドと同期の機能
を使用して実装するのが望ましい。マルチスレッド間の
状態の共有によって、同期によってメモリ、転送信号な
どの状態の共有を実現する。本実施例でのスレッド13
01は、プロセッサ1101のクロックで動作するシミ
ュレーションモデルで、スレッド1302は、プロセッ
サ1102のクロックで動作するシミュレーションモデ
ルとなる。さらに、同期機能で転送タイミングを実際の
動作と一致させる。入力信号再生モジュール1310
は、プロセッサ1101のシミュレーション時間にした
がって入力信号を再生する。この信号をプロセッサ11
01のシミュレーションモデル1152に出力する。
【0135】プロセッサBモデル1153の入力信号再
生モジュール1312では、プロセッサBのクロックで
計数しているシミュレーション時間にしたがって再生す
る。この信号をプロセッサ1102のシミュレーション
モデル1153に出力する。
【0136】互いの転送は非同期転送バス1303を使
用して行われる。これはスレッド間の同期変数として実
装されている。
【0137】<デバッグの手順>ユーザーは以下の手順
でデバッグを行う。
【0138】1.ターゲットシステムを初期化する。
【0139】2.プロセッサ1101、プロセッサ11
02およびメモリ1113の内部状態を退避してシミュ
レータに転送する。
【0140】3.システムを動作させて信号を監視す
る。
【0141】4.シミュレーションで動作の監視を開始
する。図14に、本実施例4のソフトウェアシミュレー
タの動作を示す。
【0142】このスレッド1301とスレッド1302
は、実際のプロセッサ1101とプロセッサ1102の
関係と同じように互いに独立して動作し、非同期転送バ
ス1303で通信する。
【0143】マイクロプロセッサ上のソフトウェアでの
実装は、1クロックごとに交互に実行、同期待ちが発生
ごとに切替える、マルチスレッド同期機能を持つOSや
ハードウェアを使用するなどの方法が考えられるが、い
ずれの場合でも、ユーザーから見た動作に変わりはな
い。
【0144】図14に示すフローチャートに沿ってスレ
ッド1301の動作を説明する。なお、スレッド130
2も同様の動作を行う。
【0145】ステップ1420:シミュレーション開始
直後に、メモリ初期値1306でメモリモデル1311
等を初期化する。
【0146】ステップ1410:プロセッサ1101の
クロックを1つ進める。
【0147】ステップ1411:入力信号履歴1305
から、非同期信号1125、非同期ハンドシェイク信号
1126を再現して入力する。
【0148】ステップ1412:このとき非同期入力1
126が有効になっているかどうか判定。
【0149】ステップ1413:入力があれば、スレッ
ド1302を調査し、スレッド1301への非同期信号
出力状態で同期待ちになっているか調査する。同期待ち
状態なら、スレッド1302からの非同期バス信号を転
送バッファ1303を介して伝達する。同時にスレッド
1302を再開する。同期待ちでなければスレッド13
01を中断する。スレッド1302からの非同期信号出
力があるまで待つ。この時点で転送方向に関わらず転送
信号の内容がシミュレーションで算出されている。受信
の場合は論理シミュレーションに加える。
【0150】ステップ1414:プロセッサ1101の
内部回路の論理シミュレーションを1クロック分行う。
【0151】ステップ1415:出力信号を内部状態モ
ニタ1304に伝達して記録。
【0152】ステップ1416:プロセッサ1101
が、プロセッサ1102に非同期信号を伝達しているか
どうか確認。
【0153】ステップ1417:プロセッサ1101
が、転送開始を示す非同期信号を出力している場合、ス
レッド1302が同期待ちであるかどうかを確認する。
同期待ちがあればバス転送信号を転送バッファ1303
を介して伝達する。同期待ちでない場合は、スレッド1
301を中断してプロセッサ1302が入力状態になる
まで待つ。
【0154】ステップ1418:出力信号から、ユーザ
ーの指定したブレークポイントの条件を満たしているか
どうかを確認する。満たしていなければ1410に戻
る。
【0155】ステップ1419:ブレークの場合は、ス
レッド1302も中断してユーザーの操作を待つ。再開
は1410から行われる。
【0156】以上の手順で、プロセッサ1111及び1
112の双方において、実際にシステムを動作させて発
生した内部状態の変化、出力信号を内部状態モニタ13
04で監視することができる。
【0157】<非同期転送が再現できる理由>非同期転
送では、転送する信号とは別に同期信号を使用して、同
期信号がアクティブになった状態で非同期信号の値の内
容を読むのが普通である。その理由は、信号の内容が安
定していることを保証する1ビットの信号を使用しなけ
れば、値の読みだし内容がタイミングによって変わると
いう危険が生じるためである。
【0158】この同期信号を利用して複数の非同期に動
作するシミュレーションモデル間の同期をとる。つま
り、双方のシミュレーションクロックを実際に同期信号
が発生した時間に合わせることになる。この時点で、シ
ミュレーションで再現された非同期転送信号の値は実際
にその時点で発生した転送信号の内容と同一になる。こ
の信号の値を受信側のシミュレーションモデルに伝達す
れば実際に発生した非同期信号伝達が再現できる。
【0159】ちなみに、同期信号の転送方向に対する実
際の非同期バス信号の転送方向はハードウェアの使用に
依存するが、どちらの場合でもこの方法で再現できる。
【0160】図15に、本発明の他の例のブロック図を
示す。
【0161】ターゲットシステム1501が動作を観測
する対象システムである。プローブユニット1102
は、図11でターゲットシステム1101に接続されて
いたものと同一のものである。同じようにターゲットシ
ステム1501の動作を監視し、その内容をデバッグホ
ストシステム1103に転送する。デバッグホストシス
テム1103は、ハードウェア構成は図11のデバッグ
ホストシステム1103と同一のものである、しかし、
ターゲットシステム1501に合わせたソフトウェアシ
ミュレータ1510を有する点で異なる。
【0162】ターゲットシステム1501は、プロセッ
サ1502、プロセッサ1504、メモリ1113、そ
の他クロック信号生成素子、I/O回路1116などか
ら構成される。プロセッサ1502とプロセッサ150
4は、それぞれ別のクロックで同期している。
【0163】プロセッサ1502には、非同期バス15
03と、非同期信号1124、クロック信号1123、
外付けメモリ1113、I/O1116への制御信号バ
ス1132、データバス1131が接続されている。非
同期信号1124は外部I/O1116からの非同期入
力である。
【0164】プロセッサ1502は、大きくわけてクロ
ック信号1123に同期した回路1601と、クロック
信号1123に非同期に動作する非同期インターフェー
ス回路1606から構成される。
【0165】このプロセッサ1502の同期回路160
1への非同期入力のうち、非同期信号1124と、非同
期インターフェース回路1606からの転送要求信号1
122は、それぞれクロック信号1123で同期化され
て信号1125、信号1505が生成される。これらの
信号はテスト用にチップの外部に出力される。プロセッ
サの内部回路1601は全てクロック信号1123で同
期化されており、初期値と入力信号からその挙動を一意
に再現できる。
【0166】プローブユニット1102にはターゲット
システム1501から以下の信号が入力される。
【0167】プロセッサ1511からの同期化された出
力信号である信号1125、信号1505 プロセッサ1511に入力されるクロック1123 プロセッサ1512からの同期化された出力信号である
信号1129及び信号1506 プロセッサ1512に入力されるクロック1127 プロセッサ1511とプロセッサ外付けメモリ1113
とのインターフェース信号である制御信号1132及び
データ信号1131 プローブユニット1102からターゲットシステム15
01へは以下の信号が出力される。
【0168】プロセッサ1511及びプロセッサ151
2双方のリセット信号1133 プロセッサ1511とプロセッサ外付けメモリ1113
とのインターフェース信号である制御信号1132。こ
れは初期状態読みだしを行う目的で使用する。
【0169】ソフトウェアシミュレーション1510
は、主にプロセッサモデル1511、プロセッサモデル
1512、非同期バッファモデル1513から構成され
る。
【0170】ソフトウェアシミュレータ1510プロセ
ッサモデル1511は、プロセッサ1501の内部回路
に相当するソフトウェアシミュレーションモデルとな
る。プロセッサモデル1512は、プロセッサ1502
の内部回路に相当するソフトウェアシミュレーションモ
デルとなる。
【0171】非同期転送信号1503、非同期転送回路
1606,1608の3つのユニットを統合した機能
を、2組の汎用のバッファとしてモデル化する。このバ
ッファはクロックには一切同期しない。
【0172】この例は、図11と比較して、非同期イン
ターフェース信号1503の監視を行わない、一回の転
送で同時に復数回のバス信号の転送を行う。その転送タ
イミングは同期回路に伝達される内部ハンドシェイク信
号と一致しないという点で異なる。
【0173】図16に、プロセッサ1502の内部の模
式図を示す。プロセッサ1502は、同期回路1601
と、非同期インターフェース1503との通信を行う非
同期インターフェース回路1606と、クロック信号入
力1123、外部データバス1131、外部アドレスバ
ス1132、非同期入力信号1124、同期化出力信号
1125で構成される。
【0174】非同期インターフェース回路1606は、
非同期インターフェース制御回路1602、非同期入力
バッファ1603、非同期出力バッファ1604、非同
期制御入力信号1605、非同期制御出力1607、さ
らに信号1605を同期化した非同期ハンドシェイク信
号1606から構成される。
【0175】プロセッサ1502の外部に出力されるの
は非同期入力信号1125と、非同期制御信号1605
だけになる。
【0176】以下に、このプロセッサ1502を使用し
た非同期転送の動作を示す。
【0177】非同期インターフェース1503から非同
期通信回路1606に入力された入力信号は、非同期制
御回路1602によってまず入力バッファ1603に蓄
積される。そして入力要求信号1605によって同期回
路1601に読み込み要求を出す。しかし、非同期制御
回路1602は、次の非同期バス1503からの信号入
力を停止することはせず、次の入力があればバッファ1
603に蓄積する。同期回路1601は、入力バッファ
1603を、非同期インターフェース1603からの到
着順に読み出すことができる。
【0178】図17に、ソフトウェアシミュレーション
1510の動作を示す。
【0179】スレッド1701は、プロセッサ1502
の内部回路1601のシミュレーションモデルで、クロ
ック1123単位で動作する。スレッド1702は、プ
ロセッサ1504の内部回路1609のシミュレーショ
ンモデルで、クロック1127単位で動作する。
【0180】転送バッファ1703はどちらのクロック
にも同期しない。スレッド1701から本来非同期転送
回路1606に送られるデータの書き込み制御信号を感
知して入力し、スレッド1702からのデータ読み込み
制御信号を感知して読み込む。データは先に書き込んだ
順に読みだされる。転送バッファ1704も同じ動作を
する。
【0181】プロセッサ1501からプロセッサ150
2に転送する時はバッファ1701を使用し、プロセッ
サ1502からプロセッサ1501に転送する時はバッ
ファ1702を使用する。
【0182】以下、スレッド1701の動作を示す。ま
ず、シミュレーション開始直後に、メモリ初期値130
6でメモリモデル1311等を初期化する。それ以降の
動作は、図17のフローチャートに沿って説明する。
【0183】ステップ1710:プロセッサ1501の
クロックを1つ進める。
【0184】ステップ1711:入力信号履歴1305
から、非同期信号1124、非同期ハンドシェイク信号
1126を再現して入力する。
【0185】ステップ1712:このとき転送バッファ
1704からの入力があるかどうか判定する。
【0186】ステップ1713:転送バッファ1704
に値がなければ転送バッファ1704に入力があるまで
待機する。既に転送バッファ1704に値があれば、待
機状態になっているはずのスレッド1701を再開す
る。
【0187】ステップ1714:転送バッファ1704
から転送信号を受信する。
【0188】ステップ1715:プロセッサ1101の
内部回路の論理シミュレーションを1クロック分行う。
【0189】ステップ1716:出力信号を内部状態モ
ニタ1304に伝達して記録。
【0190】ステップ1717:非同期転送バスへの転
送制御信号が有効の時、非同期転送バッファ1703に
信号を出力する。
【0191】ステップ1719:出力信号から、ユーザ
ーの指定したブレークポイントの条件を満たしているか
どうかを確認する。満たしていなければ1710に戻
る。
【0192】ステップ1720:ブレークの場合は、ス
レッド1302も中断してユーザーの操作を待つ。再開
は1710から行われる。
【0193】このように、バッファを使用する転送の場
合も、書き込み側の値から一意に読みだし側に入力され
る値が判明できるようなモデルを作成すれば良い。
【0194】このようなインターフェースはバッファが
一杯になった状態でプロセッサに対して転送要求を出す
ことになる。同期信号を持たないシリアルインターフェ
ース、大量の情報を一括して高速に送るプロセッサに非
同期な同期バスインターフェース等の実施例がある。
【0195】なお、本発明では、一般的な内部状態の観
測が不可能な同期回路のLSIや、高速同期I/Oイン
ターフェース等に適用できる。そのためには、以下の手
段を提供すれば十分である。
【0196】1.全ての内部状態の出力、あるいは初期
化の手段を持つ。
【0197】2.入力される全ての同期信号の履歴を保
存し、非同期信号の各同期回路によって同期化された最
初の信号の履歴を保存して、伝達する手段を提供する。
【0198】3.同期回路の全てのシミュレーションモ
デルを持ち、1の初期状態、2の同期化信号の入力の手
段を持つ。
【0199】上記の手段を用いることで、一般的な同期
回路のシステムの完全な観測手段を提供できる。
【0200】更に、本発明では、複数の同期回路が非同
期な動作を行っている場合でも、以下の手段を用いるこ
とにより適用できる。
【0201】1.全ての同期回路の内部状態の出力、あ
るいは初期化の手段を持つ。
【0202】2.全ての同期回路に対し、シミュレーシ
ョンモデルを持たない回路からの信号を全て履歴に保存
し、非同期信号の各同期回路によって同期化された最初
の信号の履歴を保存して伝達する手段を提供する。
【0203】3.非同期回路からの同期回路に入力され
る信号のうち、他の非同期信号入力をマスクする手段を
制御する役割を果たす信号だけを監視する手段を持つ。
【0204】4.同期回路間の非同期転送で送信側が1
つに限定され、読みだし側から入力される信号の内容は
全く変更なく伝達する手段を持つか、あるいは書き込み
側の出力信号から一意に決定する変換が行われて伝達す
る手段を持つ。また、複数の転送の転送順序を保存する
手段を持つ。
【0205】5.同期回路と同期回路間のインターフェ
ースの全てのシミュレーションモデルを持ち、1の初期
状態、2,3の同期化信号の入力手段を持つ。
【0206】6.同期回路間の非同期転送が、複数の同
期回路が転送元になる能力を有する非同期インターフェ
ースでは、その転送順序は保存される機能を有し、受信
先が転送元を特定する情報を出力する手段を有し、その
情報を保存する手段を持つ必要がある。
【0207】7.同期回路と同期回路間のインターフェ
ースの全てのシミュレーションモデルを持ち、1の初期
状態、2,3の同期化信号に加え、6の転送元特定の情
報の入力手段を持つ。
【0208】上記の手段を用いることで、一般的な非同
期インターフェースと同期回路で構成される論理回路に
対しても完全な観測手段を提供できる。
【0209】
【発明の効果】以上説明したように本発明では、マイク
ロプロセッサの全ての時間、全ての内部状態の完全な観
測が可能になり、上述した従来例1及び従来例2では、
プログラムの動作順序の観測までしかできなかったが、
本発明では、マイクロプロセッサの全命令動作、全変
数、実行時間の全てが観測できる。
【0210】また、クロック同期なシステムでは、初期
状態とクロックに同期された入力データが完全に揃え
ば、ソフトウェアシミュレータによって、動作の再現が
完全に可能である。
【0211】さらに、本発明では、クロックに非同期な
回路を含むシステムでも、クロックに同期した部分の内
部状態に限り観測できる。
【0212】また、本発明では、上述した従来例3のソ
フトウェアシミュレータと比較して、外部I/Oインタ
ーフェースのモデルの作成が必要無い。
【0213】実際に、I/Oインターフェース等を持つ
システムではマイクロプロセッサの動作はI/Oインタ
ーフェースの動作に強固に連係することになる。そのた
め、マイクロプロセッサの動作を完全に再現するだけの
目的でも、I/Oインターフェースの完全なソフトウェ
アモデルでの再現が不可欠であったが、本発明では、外
部のI/Oインターフェースの動作のうちの必要な部分
だけをキャプチャして動作に組みこむことができるの
で、外部I/Oインターフェースのソフトウェアモデル
の作成の必要が無くなる。
【0214】さらに、本発明によれば、マイクロプロセ
ッサに留まらない、複数の同期回路の連係動作の解析が
可能になる。観測できないほどの高速インターフェース
のメモリシステム、グラフィックアクセラレータなどか
らも、システムクロックと非同期に動作する信号を出力
させてキャプチャを行い、このキャプチャしたトレース
結果を入力できる、メモリシステムやグラフィックアク
セラレータのソフトウェアシミュレータモデルを準備す
れば、マイクロプロセッサの動作に留まらず、メモリシ
ステム、アクセラレータ等との連係動作の解析も可能に
なる。
【0215】このように、本発明では、複数のクロック
が非同期に動作しているシステムでも全体のシミュレー
ションが可能になる。
【0216】また、あるI/Oデバイス等のボードをシ
ステムに新たに組み込む際にも、I/Oデバイスが共通
のトレースメモリへ同期化信号を書き込む手段を持ち、
I/Oデバイスのソフトウェアモデルと、入力信号トレ
ースメモリの読みだし手法を、I/Oデバイスのデバイ
スドライバと同じの形で一緒に提供して元のシステムの
シミュレーションモデルに組み込めば、新たに組み込ん
だI/Oデバイスと連係したシステム全体の動作のデバ
ッグが可能になる。
【0217】さらに本発明によれば、複数のクロックが
非同期に動作しているシステムでも、非同期回路間の通
信の大半の記録を省略しながらも完全な動作の再現を可
能にする。この場合は転送の同期タイミングだけを履歴
として保存することで実現する。
【0218】また、シリアルインターフェースなど、1
本の非同期信号だけが入力され、その非同期信号の変化
の頻度が多い場合も、その同期タイミングの保存の大半
を省略しながら、同時に完全な動作の再現を行うことを
可能にする。
【0219】それぞれの論理回路に、非同期のクロック
で動作する高速同期バスインターフェースが接続されて
いる場合でも、同期バスの監視を全く行わずに、比較的
低速な内部ハンドシェイク信号の監視だけで、完全な動
作の再現を行うことを可能にする。
【0220】複数の同期回路が非同期に接続され、出力
元が一意に定まらない場合でも、転送元を特定する情報
を出力して記録手段を提供すれば同様に完全なシステム
の動作の再現が可能になる。
【0221】本発明では、従来のソフトウェアデバッグ
システムと比較して、システムの動作の情報が完全に得
られる。このため、上位のソフトウェアデバッガでの変
数の動作の追跡、プログラムの関数毎の性能解析が可能
になる。
【図面の簡単な説明】
【図1】本発明によるデバッグシステムの一例を模式的
に示す図である。
【図2】図1に示すプローブユニットを模式的に示す図
である。
【図3】図1に示すソフトウェアシミュレーションモデ
ルを模式的に示す図である。
【図4】本発明によるプローブユニットの他の例を模式
的に示す図である。
【図5】図1に示すターゲットシステムの一例を模式的
に示す図である。
【図6】図1に示すトレースメモリの内容の一例を示す
図である。
【図7】従来のデバッグシステムの第1の例を模式的に
示す図である。
【図8】従来のデバッグシステムの第2の例を模式的に
示す図である。
【図9】図8に示すデバッグ専用ピンで伝達される信号
の状態を示す図である。
【図10】従来のソフトウェアシミュレーションモデル
を模式的に示す図である。
【図11】本発明によるデバッグシステムの他の例を模
式的に示す図である。
【図12】図11のプローブユニット1102の構造を
模式的に示す図である。
【図13】図11のソフトウェアシミュレータ1151
を模式的に示す図である。
【図14】図11のソフトウェアシミュレータ1151
の動作を示すフローチャート図である。
【図15】本発明によるデバッグシステムの他の例を模
式的に示す図である。
【図16】図15のプロセッサ1502の構造を模式的
に示す図である。
【図17】図15のソフトウェアシミュレータ1510
の動作を示すフローチャート図である。
【符号の説明】
1 ターゲットシステム 2 プローブユニット 3 ソフトウェアシミュレータモデル 11 プローブソケット 12 非同期I/Oインターフェース 13 メインメモリ 14 同期式システムバス 101 マイクロプロセッサ(CPU) 102 入力信号スヌープ 103 トレースメモリ 104 ターゲットプローブ 111 バスサイクル制御ユニット 112 アドレス、ステータスデコード 113 データラッチ 114 アドレスラッチ 115 クロックカウンタ 116 トレースメモリコントロール 117 アドレスカウンタ 118 通信インターフェース 119 割り込み信号エンコード 121 アドレスバス 122 ステータスバス 123 データバス 301 ソフトウェアシミュレーションモデル 304 内部状態監視モニタ 310 命令実行ユニットモデル 311 キャッシュユニットモデル 312 CPUモデル 314 クロックカウンタ 315 メモリモデル 316 アドレスバス 317 データバス 401 周辺内蔵マイクロプロセッサ 405 入力信号スヌープユニット 410 内蔵CPU 411 非同期内蔵I/Oユニット 412 内蔵メモリコントローラ 414 システムクロック同期化ラッチ 501,502,503 キャッシュ内蔵マイクロプロ
セッサユニット 504 高速同期マルチプロセッサバス 510 共有メモリ 511 ブリッジ 512 ローカルI/Oバス 513 非同期I/Oインターフェースユニット 514 非同期高機能グラフィックアクセラレータ 521 入力信号スヌープユニット 522 I/Oバス入力信号トレースメモリ 701 キャッシュ内蔵型マイクロプロセッサ 702 メインメモリ 703 トレースアナライザ 704 トレースメモリ 801 CPUコア 802 オンチップCPUデバッグ専用回路 803 トレースアナライザ 804 デバッグの専用バス 1001 ソフトウェア非同期I/Oモデル 1002 ソフトウェア非同期I/Oモデル 1101 ターゲットシステム 1102 デバッグシステムのプローブユニット 1103 デバッグホストシステム 1111 プロセッサA 1112 プロセッサB 1113 メモリ 1114,1115 同期回路部分 1116 I/O 1121 プロセッサ間転送バス 1131 データ転送バス 1132 制御バス 1140,1141,1142,1143,1144,
1145 同期化ラッチ 1150,1207 通信インターフェース 1151 ソフトウェアシミュレータ 1152,1153,1154 ソフトウェアモデル 1202,1205 カウンタ 1203,1204 エンコーダ 1206 データバス入力エンコーダ 1208 履歴バッファ 1211 データ転送バス 1221 入力エンコーダ 1301,1302,1311 シミュレーションモデ
ル 1304 内部状態モニタ 1410 シミュレーション時間更新ルーチン 1414 論理動作シミュレーション 1501 ターゲットシステム 1502 マイクロプロセッサ 1503 非同期バス 1504 マイクロプロセッサ 1510 ソフトウェアシミュレータ 1511,1512 プロセッサモデル 1513 非同期転送バッファモデル 1601 同期回路部分 1603,1604 非同期入力バッファ 1606,1608 非同期通信回路 1609 同期回路 1703,1704 転送バッファモデル(転送バッフ
ァ)
───────────────────────────────────────────────────── フロントページの続き (58)調査した分野(Int.Cl.7,DB名) G06F 11/22 - 11/36 G06F 15/78 510

Claims (12)

    (57)【特許請求の範囲】
  1. 【請求項1】 マイクロプロセッサを有しシステムクロ
    ックに同期する論理回路を用いたシステムに用いられ、
    前記論理回路の初期状態を出力するか又は前記論理回路
    を一意に初期化する初期化手段と、前記システムクロッ
    クに同期した前記マイクロプロセッサの入力信号の少な
    くとも一部を監視して蓄積入力信号として蓄積する第1
    の蓄積手段と、該蓄積入力信号の履歴を転送して前記シ
    ステムのうちの外部から動作を観測できない回路の内部
    動作を前記システムクロック単位で再現する第1の再現
    手段とを有し、前記マイクロプロセッサ以外の回路から
    はメモリの変更が行われず、前記マイクロプロセッサに
    おけるアクセスのうち前記メモリからのリードデータ内
    容を除外して前記メモリのアクセスタイミングだけを監
    視して蓄積する入力信号監視機構を有することを特徴と
    するデバッグシステム。
  2. 【請求項2】 請求項1に記載されたデバッグシステム
    において、前記入力信号監視機構は、変化の頻度の低い
    信号を変化の内容と時間だけを記録して蓄積する第2の
    蓄積手段を有することを特徴とするデバッグシステム。
  3. 【請求項3】 マイクロプロセッサを有しシステムクロ
    ックに同期する論理回路を用いたシステムに用いられ、
    前記論理回路の初期状態を出力するか又は前記論理回路
    を一意に初期化する初期化手段と、前記システムクロッ
    クに同期した前記マイクロプロセッサの入力信号の少な
    くとも一部を監視して蓄積入力信号として蓄積する第1
    の蓄積手段と、該蓄積入力信号の履歴を転送して前記シ
    ステムのうちの外部から動作を観測できない回路の内部
    動作を前記システムクロック単位で再現する第1の再現
    手段とを有し、前記システムは前記マイクロプロセッサ
    だけではなく同一のシステムクロックに同期して動作す
    る別の同期回路を有しており、前記マイクロプロセッサ
    の外部からの入力信号に加えて前記同期回路への入力信
    号を監視して再現する第2の再現手段が備えられてお
    り、前記マイクロプロセッサ及び前記同期回路を合わせ
    て再現する第3の再現手段を有し、前記マイクロプロセ
    ッサと前記同期回路との間の信号の入出力の監視を省略
    するようにしたことを特徴とするデバッグシステム。
  4. 【請求項4】 複数のマイクロプロセッサが複数搭載さ
    れ、共有メモリと、外部の低速な同期I/Oバスへのブ
    リッジとを有するとともに前記マイクロプロセッサ、前
    記共有メモリ、及び前記ブリッジを接続してシステムク
    ロックに同期して動作させる高速な同期バスを有し、さ
    らに、複数の非同期動作を行うI/Oインターフェース
    を有し、該I/Oインターフェースを外部の低速な同期
    I/Oバスに接続して前記同期バスを経由して前記ブリ
    ッジへ伝達するようにしたシステムに用いられ、前記同
    期I/Oバスに接続されて前記ブリッジに到達する信号
    だけを監視して蓄積する第1の蓄積手段を有することを
    特徴とするデバッグシステム。
  5. 【請求項5】 請求項4に記載されたデバッグシステム
    において、さらに、前記マイクロプロセッサ、前記共有
    メモリ、前記I/Oインターフェースの動作を前記蓄積
    された信号を用いて動作を再現する第1の再現手段を有
    することを特徴とするデバッグシステム。
  6. 【請求項6】 請求項5に記載されたデバッグシステム
    において、前記システムには外部のI/Oバスに高速な
    同期回路が接続されており、該高速な同期回路の非同期
    入力信号を信号を監視して蓄積する第2の蓄積手段を有
    し、前記第1の再現手段は前記蓄積した非同期入力信号
    に応じて前記高速な同期回路の動作を再現するようにし
    たことを特徴とするデバッグシステム。
  7. 【請求項7】 内部動作が観測できない高速なデジタル
    同期回路あるいは高速インターフェースを備えるシステ
    ムに用いられ、該システムの素子間の入力信号をシステ
    ムクロックに同期化して出力する出力手段と、該出力手
    段の出力信号をスヌープして蓄積情報として蓄積する蓄
    積手段と、該蓄積情報を用いて前記システムの同期回路
    あるいは高速インターフェースの内部動作を再現する第
    1の再現手段とを有し、前記システムには前記システム
    クロックに同期するマイクロプロセッサの他に、前記シ
    ステムクロックとは別の別システムクロックに同期して
    動作する同期回路が備えられており、前記マイクロプロ
    セッサへ入力される信号のうち同期入力信号、前記マイ
    クロプロセッサのクロックに同期化した非同期入力信
    号、及び前記同期回路との非同期ハンドシェイク信号を
    監視してそれぞれ第1の監視出力信号として出力する第
    1の監視手段と、前記同期回路へ入力されている信号の
    うち同期入力信号、前記同期回路のクロックに同期化し
    た非同期信号、及び前記マイクロプロセッサとの非同期
    ハンドシェイク信号を監視して第2の監視出力信号とし
    て出力する第2の監視手段と、前記第1及び前記第2の
    監視出力信号に応じて前記マイクロプロセッサ及び前記
    同期回路を合わせて再現する第2の再現手段と、該第2
    の再現手段の再現出力に基づいて前記マイクロプロセッ
    サ及び前記同期回路との相互の転送の内容を再現する第
    3の再現手段とを有することを特徴とするデバッグシス
    テム。
  8. 【請求項8】 請求項7に記載されたデバッグシステム
    において、前記同期回路の各々への入力信号とクロック
    とに応じて前記同期回路の再現を行う同期回路再現手段
    と、前記同期回路間の転送ハンドシェイク信号の入力履
    歴に基づいて前記同期回路再現手段間の実時間同期をと
    って転送元の同期回路再現手段で再現された転送出力信
    号を転送先の同期回路再現手段に伝送するようにしたこ
    とを特徴とするデバッグシステム。
  9. 【請求項9】 請求項8に記載されたデバッグシステム
    において、前記同期回路うちの一つの再現を行い、別の
    同期回路との通信を示す非同期ハンドシェイク信号入力
    を検出した時点で動作を一時停止し転送元の同期回路の
    再現を行い該非同期ハンドシェイク信号の出力を再現し
    た時点で該同期回路の動作を再開して転送の同期を行う
    第4の再現手段を有することを特徴とするデバッグシス
    テム。
  10. 【請求項10】 請求項7に記載されたデバッグシステ
    ムにおいて、前記マイクロプロセッサと別のシステムク
    ロックに同期して動作する同期回路を有する論理回路と
    を備え、前記マイクロプロセッサと前記論理回路と間の
    通信において相手の非同期インターフェース回路から伝
    達された情報をクロック非同期に蓄積する記憶手段が内
    蔵され、前記マイクロプロセッサの内部同期回路が前記
    記憶手段から一括して情報を受信する非同期インターフ
    ェース回路を備えており、前記マイクロプロセッサの内
    部にクロック同期回路と非同期インターフェース回路及
    び該クロック同期回路と該非同期インターフェース回路
    とを接続するバス信号と非同期ハンドシェイク信号、さ
    らに前記マイクロプロセッサへの入力信号と該非同期ハ
    ンドシェイク信号を同期化した直後に出力する第1の出
    力手段が備えられており、前記論理回路の内部にもクロ
    ック同期回路と非同期インターフェース回路及びこれら
    クロック同期回路と非同期インターフェース回路とを接
    続するバス信号と非同期ハンドシェイク信号、さらに前
    記論理回路への入力信号と該非同期ハンドシェイク信号
    を同期化した直後に出力する第2の出力手段が備えら
    れ、前記マイクロプロセッサからの入力信号と該非同期
    ハンドシェイク信号をともに同期化して履歴として保存
    して全て転送する第1の転送手段を有し、さらに、該論
    理回路からの同期化入力信号と該非同期ハンドシェイク
    信号をともに同期化して履歴として保存して全て転送す
    る第2の転送手段を有し、転送された全ての同期化入力
    信号と非同期ハンドシェイク信号の履歴を用いて前記マ
    イクロプロセッサと前記論理回路の動作を合わせて再現
    する第4の再現手段を有し、該第4の再現手段による再
    現結果に応じて前記マイクロプロセッサ及び前記論理回
    路との相互の転送の内容を再現する第5の再現手段を有
    することを特徴とするデバッグシステム。
  11. 【請求項11】 請求項10に記載されたデバッグシス
    テムにおいて、前記マイクロプロセッサの内部同期回路
    の論理動作を再現する内部同期回路再現手段が備えら
    れ、非同期通信回路からの読み込み要求を再現した時点
    で再現を一時停止し通信先の前記論理回路の論理動作を
    行い前記マイクロプロセッサが要求した分の非同期通信
    回路からの出力が再現された時点で非同期通信回路の動
    作を再開して前記論理回路からの通信を再現する第6の
    再現手段を有することを特徴とするデバッグシステム。
  12. 【請求項12】 請求項10に記載されたデバッグシス
    テムにおいて、1つの非同期インターフェースに複数の
    論理回路が接続されており、該複数の同期回路が前記非
    同期インターフェースに出力するための伝達手段が備え
    られ、前記伝達手段の受信側の論理回路が送信側の論理
    回路を特定する情報を出力する第3の出力手段と、該第
    3の出力手段からの出力結果を保存する保存手段とを有
    し、前記特定情報を用いて前記非同期インターフェース
    に接続された全ての論理回路の動作を再現する第6の再
    現手段を有することを特徴とするデバッグシステム。
JP15392697A 1996-08-13 1997-06-11 デバッグシステム Expired - Fee Related JP3175757B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP15392697A JP3175757B2 (ja) 1996-08-13 1997-06-11 デバッグシステム
US08/910,800 US6145099A (en) 1996-08-13 1997-08-13 Debugging system

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP21367696 1996-08-13
JP8-213676 1996-08-13
JP15392697A JP3175757B2 (ja) 1996-08-13 1997-06-11 デバッグシステム

Publications (2)

Publication Number Publication Date
JPH10111815A JPH10111815A (ja) 1998-04-28
JP3175757B2 true JP3175757B2 (ja) 2001-06-11

Family

ID=26482407

Family Applications (1)

Application Number Title Priority Date Filing Date
JP15392697A Expired - Fee Related JP3175757B2 (ja) 1996-08-13 1997-06-11 デバッグシステム

Country Status (2)

Country Link
US (1) US6145099A (ja)
JP (1) JP3175757B2 (ja)

Families Citing this family (39)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7079490B1 (en) * 1998-12-03 2006-07-18 Intel Corporation Integrated circuit with trace analyzer
US6330528B1 (en) * 1998-12-16 2001-12-11 Compaq Computer Corp. Method of terminating temporarily unstoppable code executing in a multi-threaded simulated operating system
US6732307B1 (en) 1999-10-01 2004-05-04 Hitachi, Ltd. Apparatus and method for storing trace information
US6298394B1 (en) * 1999-10-01 2001-10-02 Stmicroelectronics, Ltd. System and method for capturing information on an interconnect in an integrated circuit
US6684348B1 (en) 1999-10-01 2004-01-27 Hitachi, Ltd. Circuit for processing trace information
US6918065B1 (en) 1999-10-01 2005-07-12 Hitachi, Ltd. Method for compressing and decompressing trace information
US6615370B1 (en) * 1999-10-01 2003-09-02 Hitachi, Ltd. Circuit for storing trace information
US6658545B1 (en) * 2000-02-16 2003-12-02 Lucent Technologies Inc. Passing internal bus data external to a completed system
JP4551019B2 (ja) * 2000-03-02 2010-09-22 テキサス インスツルメンツ インコーポレイテツド 複数データ処理コアのデバッグ機能を同時サポートする動的に構成可能なデバッグ装置
AU2001255808A1 (en) * 2000-03-15 2001-09-24 Arc Cores, Inc. Method and apparatus for debugging programs in a distributed environment
US6658557B1 (en) * 2000-05-25 2003-12-02 Advanced Micro Devices, Inc. Synthesizing the instruction stream executed by a microprocessor from its branch trace data
US20030005407A1 (en) * 2000-06-23 2003-01-02 Hines Kenneth J. System and method for coordination-centric design of software systems
JP4529063B2 (ja) * 2001-03-30 2010-08-25 ルネサスエレクトロニクス株式会社 システムシミュレータ、シミュレーション方法及びシミュレーションプログラム
US7000053B2 (en) * 2001-07-26 2006-02-14 Sun Microsystems, Inc. Computer system having a hot swappable hot swap controller
JP4488666B2 (ja) * 2002-02-15 2010-06-23 株式会社東芝 医用システムの再現試験サービス装置
US7254745B2 (en) * 2002-10-03 2007-08-07 International Business Machines Corporation Diagnostic probe management in data processing systems
US7188205B2 (en) * 2002-10-24 2007-03-06 Sun Microsystems, Inc. Mapping of hot-swap states to plug-in unit states
JP4403794B2 (ja) * 2003-02-28 2010-01-27 株式会社デンソー 制御プログラムの検査方法及び検査装置及び検査プログラム
US7149933B2 (en) * 2003-08-07 2006-12-12 Arm Limited Data processing system trace bus
US8090564B1 (en) 2003-11-03 2012-01-03 Synopsys, Inc. Automatic generation of transaction level bus simulation instructions from bus protocol
US20060174155A1 (en) * 2005-02-03 2006-08-03 Arm Limited System, method and computer program product for testing software
US7716031B2 (en) * 2005-02-25 2010-05-11 Coware, Inc. Interface converter for unified view of multiple computer system simulations
US7742905B2 (en) * 2005-02-25 2010-06-22 Coware, Inc. Method and system for dynamically adjusting speed versus accuracy of computer platform simulation
US7899661B2 (en) * 2006-02-16 2011-03-01 Synopsys, Inc. Run-time switching for simulation with dynamic run-time accuracy adjustment
US8543367B1 (en) 2006-02-16 2013-09-24 Synopsys, Inc. Simulation with dynamic run-time accuracy adjustment
US7555605B2 (en) * 2006-09-28 2009-06-30 Freescale Semiconductor, Inc. Data processing system having cache memory debugging support and method therefor
US20080155345A1 (en) * 2006-10-31 2008-06-26 Mips Technologies, Inc. Apparatus and method for forming a bus transaction trace stream with simplified bus transaction descriptors
WO2009031254A1 (ja) * 2007-09-03 2009-03-12 Panasonic Corporation 半導体装置及び開発支援装置
CN102089784A (zh) * 2008-07-25 2011-06-08 高通股份有限公司 图形成像的基于分割的性能分析
US20100020069A1 (en) * 2008-07-25 2010-01-28 Qualcomm Incorporated Partitioning-based performance analysis for graphics imaging
US9792718B2 (en) 2008-07-25 2017-10-17 Qualcomm Incorporated Mapping graphics instructions to associated graphics data during performance analysis
US8275977B2 (en) * 2009-04-08 2012-09-25 Freescale Semiconductor, Inc. Debug signaling in a multiple processor data processing system
US8279213B2 (en) * 2009-12-23 2012-10-02 Intel Corporation Synchronized media processing
US20110271284A1 (en) * 2010-04-29 2011-11-03 Veronika Simonian Method of Simulating, Testing, and Debugging Concurrent Software Applications
US8924788B2 (en) * 2010-06-28 2014-12-30 Intel Corporation Replaying architectural execution with a probeless trace capture
DE112010006087T5 (de) 2010-12-23 2014-06-26 Intel Corporation Architektur zum Testen, zur Validierung und zur Fehlerbereinigung
US20130326539A1 (en) * 2011-03-24 2013-12-05 Renesas Electronics Corporation Semiconductor device
JP6047520B2 (ja) * 2014-04-28 2016-12-21 インテル・コーポレーション テスト、検証及びデバッグアーキテクチャのプログラム及び方法
KR20180091364A (ko) 2017-02-06 2018-08-16 삼성전자주식회사 디버그 호스트로서 동작하는 cpu를 포함하는 시스템 온 칩 및 이의 동작 방법

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5101117A (en) * 1988-02-17 1992-03-31 Mips Computer Systems Variable delay line phase-locked loop circuit synchronization system
JPH07113912B2 (ja) * 1991-05-31 1995-12-06 富士ゼロックス株式会社 分散型情報処理システムのデバッグ方式
JP2760228B2 (ja) * 1991-09-04 1998-05-28 日本電気株式会社 キャッシュメモリを内蔵したマイクロプロセッサとそのトレースアナライザ
US5313618A (en) * 1992-09-03 1994-05-17 Metalink Corp. Shared bus in-circuit emulator system and method
GB9320052D0 (en) * 1993-09-29 1993-11-17 Philips Electronics Uk Ltd Testing and monitoring of programmed devices
GB2286508A (en) * 1994-02-08 1995-08-16 Ibm Performance and status monitoring in a computer network
US5537536A (en) * 1994-06-21 1996-07-16 Intel Corporation Apparatus and method for debugging electronic components through an in-circuit emulator
US5764885A (en) * 1994-12-19 1998-06-09 Digital Equipment Corporation Apparatus and method for tracing data flows in high-speed computer systems
US5642478A (en) * 1994-12-29 1997-06-24 International Business Machines Corporation Distributed trace data acquisition system
JPH08320808A (ja) * 1995-05-24 1996-12-03 Nec Corp エミュレーション方式
US5834956A (en) * 1995-12-29 1998-11-10 Intel Corporation Core clock correction in a 2/N mode clocking scheme
US5793976A (en) * 1996-04-01 1998-08-11 Gte Laboratories Incorporated Method and apparatus for performance monitoring in electronic communications networks

Also Published As

Publication number Publication date
JPH10111815A (ja) 1998-04-28
US6145099A (en) 2000-11-07

Similar Documents

Publication Publication Date Title
JP3175757B2 (ja) デバッグシステム
JP4335999B2 (ja) プロセッサ内蔵半導体集積回路装置
US6175914B1 (en) Processor including a combined parallel debug and trace port and a serial port
US7636870B2 (en) Semiconductor integrated circuit device, and debugging system and method for the semiconductor integrated circuit device
US6041406A (en) Parallel and serial debug port on a processor
JP3105223B2 (ja) マイクロコンピュータ,マイクロプロセッサおよびコア・プロセッサ集積回路用デバッグ周辺装置
EP0942372B1 (en) Processor with breakpoint circuit
US6502209B1 (en) Chip with debug capability
US8762779B2 (en) Multi-core processor with external instruction execution rate heartbeat
KR20010006188A (ko) 마이크로프로세서 기반 장치용 트레이스 캐시
WO2006043227A1 (en) Data processing system and method for monitoring the cache coherence of processing units
US20180276052A1 (en) Deadlock detector, system including the same and associated method
US6526501B2 (en) Adapter for a microprocessor
US20060161818A1 (en) On-chip hardware debug support units utilizing multiple asynchronous clocks
US6584586B1 (en) Apparatus and method for capturing and transferring internal system activity
CN112685212A (zh) 一种处理器异常的调试追踪方法、装置和系统
US7231568B2 (en) System debugging device and system debugging method
US8103496B1 (en) Breakpoint control in an in-circuit emulation system
US11392406B1 (en) Alternative interrupt reporting channels for microcontroller access devices
JP2002229811A (ja) 論理分割システムの制御方法
JP4197798B2 (ja) デバッグ能力を有するチップ
US6606590B1 (en) Emulation system with address comparison unit and data comparison unit ownership arbitration
JPH11143789A (ja) バストレース装置
US6282600B1 (en) Method and apparatus of resolving conflicting register access requests from a service processor and system processor
TWI470421B (zh) 微處理器及其除錯方法

Legal Events

Date Code Title Description
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20010307

LAPS Cancellation because of no payment of annual fees