JP3116901B2 - プログラム検査方法、プログラム検査装置及びプログラム検査プログラムを記録した記録媒体 - Google Patents

プログラム検査方法、プログラム検査装置及びプログラム検査プログラムを記録した記録媒体

Info

Publication number
JP3116901B2
JP3116901B2 JP10118969A JP11896998A JP3116901B2 JP 3116901 B2 JP3116901 B2 JP 3116901B2 JP 10118969 A JP10118969 A JP 10118969A JP 11896998 A JP11896998 A JP 11896998A JP 3116901 B2 JP3116901 B2 JP 3116901B2
Authority
JP
Japan
Prior art keywords
history information
information
program
storage means
stored
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
JP10118969A
Other languages
English (en)
Other versions
JPH11312098A (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 JP10118969A priority Critical patent/JP3116901B2/ja
Priority to US09/300,685 priority patent/US6321290B1/en
Priority to DE19919388A priority patent/DE19919388B4/de
Publication of JPH11312098A publication Critical patent/JPH11312098A/ja
Application granted granted Critical
Publication of JP3116901B2 publication Critical patent/JP3116901B2/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/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
    • 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/3476Data logging
    • 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/348Circuit details, i.e. tracer hardware

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】この発明は、プログラム検査
方法、プログラム検査方法、プログラム検査装置及びプ
ログラム検査プログラムを記録したコンピュータ読取可
能な記録媒体に係り、詳しくは、ファクシミリ装置や画
像処理装置等、開発の対象であるシステム(ターゲット
システム)を構成する中央処理装置(CPU)が実行す
べきプログラム(ターゲットプログラム)を実行して検
査するプログラム検査方法、プログラム検査装置及びプ
ログラム検査プログラムを記録したコンピュータ読取可
能な記録媒体に関する。
【0002】
【従来の技術】ターゲットシステムに組み込まれるター
ゲットプログラムは、完成当初から正常に動作すること
はまれである。そこで、通常は、プログラム検査装置が
ターゲットプログラムを実行して、ターゲットプログラ
ムを構成する各命令がどのような順番で実行されるか、
各命令が実行された後、レジスタの内容がどのように変
化するか、あるいは主記憶装置内のどのアドレスの内容
がどのように変化するかを1つ1つ追跡(トレース)
し、それらに関する情報(履歴情報)を獲得して外部記
憶装置に記憶させている。そして、得られた履歴情報に
基づいて、ターゲットプログラムの問題点(バグ等)を
なくすようにしている。
【0003】従来は、CPUに接続されるアドレスバス
やデータバスをプログラム検査装置と接続して、所定の
タイミングで所望の履歴情報を獲得し、プログラム検査
装置に内蔵された記憶装置に記憶するようにしていた。
しかし、近年ではCPUの動作が向上し、動作クロック
は数100MHzにも及ぶようになった。このように高
速で動作するアドレスバスやデータバスにプログラム検
査装置のコネクタやプローブなどを接続すると、不要な
寄生容量がアドレスバスやデータバスに付加されること
になり、アドレス信号やデータ信号の波形がなまり、タ
ーゲットシステムが正常に動作しなくなることがあっ
た。さらに、CPU内部にキャッシュ回路を内蔵してい
ると、外部の記憶部をアクセスしないこともあり、外部
のアドレスバスやデータバスをトレースしても、CPU
が処理したステップを完全にトレースできないことも生
ずる。このような理由により、CPUのチップ内部にト
レース手段を設け、トレース専用の端子を介して必要な
履歴情報を外部に出力するようになった。プログラム検
査装置であれば、トレース用の記憶容量は可能な限り大
きくすることができ、しかも、高速のメモリを用いてい
れば高速で大量の情報を獲得することも可能である。し
かしながら、CPUチップの内部にトレース用の記憶部
を設けた場合、記憶容量を大きくすることは、CPUチ
ップのコストアップにつながり、好ましくない。また、
トレース専用の端子数を増やして、高速にデータを取り
出すようにすることは、パッケージが大きくなり、これ
も好ましくない。このように、限られたトレース用の記
憶容量と限られたトレース専用の端子で、如何に効率的
に履歴情報を獲得するかが問題となっている。
【0004】このようなプログラム検査装置としては、
従来から、以下に示すものがあった。すなわち、この種
のプログラム検査装置は、図11に示すように、ターゲ
ットメモリ部1と、CPUチップ2と、外部記憶装置3
とから概略構成されている。ターゲットメモリ部1は、
ターゲットシステムの主記憶装置を模したメモリであ
り、CPUが実行すべき検査の対象であるターゲットプ
ログラムが記憶されたターゲットプログラム記憶部1a
と、ターゲットプログラム実行時に用いられるデータが
記憶されたデータ記憶部1bとから構成されている。C
PUチップ2は、ターゲットレジスタ部4と、CPU5
と、トレース手段6と、トレースバッファ7とから概略
構成されている。ターゲットレジスタ部4は、CPUが
用いるレジスタを模したレジスタである。CPU5は、
装置各部を制御すると共に、ターゲットプログラムを順
次実行する。トレース手段6は、ターゲットプログラム
を構成する各命令の実行順序、各命令実行後のターゲッ
トレジスタ部4の内容の変化状況等を1つ1つトレース
し、それらに関する履歴情報を獲得してトレースバッフ
ァ7に一旦記憶した後、外部記憶装置3に記憶する。履
歴情報としては、例えば、条件分岐命令ではターゲット
プログラム記憶部1a上の分岐先のアドレス、ジャンプ
命令ではターゲットプログラム記憶部1a上のジャンプ
先のアドレス、データのロード命令ではターゲットレジ
スタ部4にロードされたデータのデータ記憶部1b上の
アドレスなどがある。トレースバッファ7は、所定の記
憶容量を有し、履歴情報がサイクリックに順次記憶され
る。外部記憶装置3は、RAM等の半導体メモリ、FD
(フロッピーディスク)やHD(ハードディスク)等の
大規模な記憶容量を有する記憶媒体からなり、履歴情報
が記憶される。
【0005】次に、上記構成のプログラム検査装置の動
作について説明する。CPU5は、ターゲットプログラ
ム記憶部1aからターゲットプログラムを構成する各命
令を順次読み出してどの命令かを解釈し、各命令を、例
えば、データ記憶部1bに記憶されたデータをターゲッ
トレジスタ部4にロードするなどして実行する。これに
より、トレース手段6は、各命令の実行順序、当該命令
実行後のターゲットレジスタ部4の内容の変化状況等を
1つ1つトレースし、それらに関する履歴情報を獲得し
てトレースバッファ7に順次記憶する。トレース手段6
が上記処理を繰り返すことにより、トレースバッファ7
がオーバーフローすると、トレース手段6は、CPU5
に対して現在実行中のプログラム処理動作を一旦停止す
るように要求し、その間にトレースバッファ7に記憶し
た全ての履歴情報を外部記憶装置3に記憶した後、トレ
ースバッファ7が空になると、トレースを再開する。
【0006】
【発明が解決しようとする課題】ところで、上述した従
来のプログラム検査装置においては、トレースバッファ
7がオーバーフローする度にCPU5の動作を停止させ
ているため、リアルタイム処理の必要なターゲットプロ
グラムのトレースへは適用できなかった。例えば、自動
車のエンジン制御用に開発したプログラムを検査する場
合、運転手がアクセルをどの程度押したか、エンジンの
回転数や温度はいくらといった情報がCPUに入力さ
れ、CPUが燃料の供給量や供給タイミングなどを制御
している。プログラム開発者は、最適な燃料供給量を求
めるため、CPUに設定するパラメータを色々変えてエ
ンジンを動作させてみる。そのとき、プログラム開発者
は、CPU内部でどのようにプログラムが処理され、ど
のようなパラメータであったかを確かめながら開発を進
めている。従来のプログラム検査装置のように、プログ
ラム処理を途中で一旦止めて履歴情報を獲得するように
すると、エンジンも止まってしまい、実使用状況での情
報が取得できなくなってしまう。そこで、特開平5−1
81713号公報に開示されているように、プログラム
の異常終了時にのみ履歴情報を獲得することも考えられ
るが、それでは正常動作中のレジスタの内容を見ること
ができず、どのようなパラメータで動作していたかを知
ることができない。
【0007】この発明は、上述の事情に鑑みてなされた
もので、トレースの中のCPU動作を停止させることな
く、プログラムの検査に必要な履歴情報が得られるよう
にしたプログラム検査方法、プログラム検査装置及びプ
ログラム検査プログラムを記憶した記憶媒体を提供する
ことを第1の目的としている。また、この発明は、CP
Uに内蔵した最小限のトレース記憶容量で、トレースの
中断時間を短縮すると共に、トレースの中断箇所を特定
でき、これにより、ターゲットプログラムの検査を簡単
・迅速に行うことができるプログラム検査方法、プログ
ラム検査装置及びプログラム検査プログラムを記憶した
記憶媒体を提供することを第2の目的としている。
【0008】
【課題を解決するための手段】上記課題を解決するため
に、請求項1記載の発明は、開発の対象であるシステム
を構成する中央処理装置が実行すべきプログラムを実行
すると共に、その際のプログラム実行の履歴に関する履
歴情報を獲得し、上記履歴情報に基づいて上記プログラ
ムを検査するプログラム検査方法に係り、上記履歴情報
が記憶される第1及び第2の記憶手段を備え、上記プロ
グラムが実行され、上記履歴情報が供給された場合、上
記第1の記憶手段に上記履歴情報が記憶可能な記憶容量
がある場合には、上記履歴情報を上記第1の記憶手段に
一時的に記憶し、上記記憶容量がない場合には、上記第
1の記憶手段に記憶された全ての履歴情報を読み出して
上記第2の記憶手段に記憶した後、上記第1の記憶手段
に上記履歴情報が記憶不可能であったことを示す記憶不
可能情報を記憶する第1の処理と、上記履歴情報が供給
されない場合には、上記第1の記憶手段に記憶された上
記履歴情報及び上記記憶不可能情報を読み出し、上記第
2の記憶手段に記憶する第2の処理とからなることを特
徴としている。
【0009】請求項2記載の発明は、開発の対象である
システムを構成する中央処理装置が実行すべきプログラ
ムを実行すると共に、その際のプログラム実行の履歴に
関する履歴情報を獲得し、上記履歴情報に基づいて上記
プログラムを検査するプログラム検査方法に係り、上記
履歴情報が記憶される第1及び第2の記憶手段を備え、
上記プログラムが実行され、上記履歴情報が供給された
場合、上記第1の記憶手段に上記履歴情報が記憶可能な
第1の記憶容量がある場合には、上記履歴情報を上記第
1の記憶手段に一時的に記憶し、上記第1の記憶容量が
ないが、上記第1の記憶手段に上記履歴情報が記憶不可
能であったことを示す記憶不可能情報が記憶可能な第2
の記憶容量がある場合には、上記記憶不可能情報を上記
第1の記憶手段に一時的に記憶し、上記第2の記憶容量
がない場合には、上記第1の記憶手段に上記第2の記憶
容量ができるまで待機した後、上記記憶不可能情報を記
憶する第1の処理と、上記第1の記憶手段に記憶された
上記履歴情報及び上記記憶不可能情報を読み出し、上記
第2の記憶手段に記憶する第2の処理とからなることを
特徴としている。
【0010】請求項3記載の発明は、請求項2記載のプ
ログラム検査方法に係り、上記第1の記憶手段は、複数
個のフリップフロップが直列接続されたシフトレジスタ
が複数個直列接続されて構成され、上記履歴情報及び上
記記憶不可能情報が上記第1の記憶手段に記憶可能か否
かは、上記履歴情報及び上記記憶不可能情報のビット長
と、上記第1の記憶手段の次に記憶すべき情報の最下位
ビットのアドレスを示すポインタとを比較して判断する
ことを特徴としている。
【0011】請求項4記載の発明は、開発の対象である
システムを構成する中央処理装置が実行すべきプログラ
ムを実行すると共に、その際のプログラム実行の履歴に
関する履歴情報を獲得し、上記履歴情報に基づいて上記
プログラムを検査するプログラム検査方法に係り、上記
履歴情報が記憶される第1及び第2の記憶手段を備え、
上記プログラムが実行され、上記履歴情報が供給された
場合、上記第1の記憶手段に上記履歴情報が記憶可能な
第1の記憶容量がある場合には、上記履歴情報を上記第
1の記憶手段に一時的に記憶し、上記第1の記憶容量が
ないが、上記第1の記憶手段に上記履歴情報が記憶不可
能であったことを示す記憶不可能情報が記憶可能な第2
の記憶容量がある場合には、上記記憶不可能情報を上記
第1の記憶手段に一時的に記憶し、上記第2の記憶容量
がない場合には、上記第1の記憶手段に上記第2の記憶
容量ができるまで上記履歴情報及び上記記憶不可能情報
を読み出し、上記第2の記憶手段に記憶した後、上記記
憶不可能情報を記憶する第1の処理と、上記履歴情報が
供給されない場合には、上記第1の記憶手段に記憶され
た上記履歴情報及び上記記憶不可能情報を読み出し、上
記第2の記憶手段に記憶する第2の処理とからなること
を特徴としている。
【0012】請求項5記載の発明は、請求項4記載のプ
ログラム検査方法に係り、上記第1の記憶手段は、半導
体メモリにより構成され、上記履歴情報及び上記記憶不
可能情報が上記第1の記憶手段に記憶可能か否かは、上
記履歴情報及び上記記憶不可能情報のビット長と、上記
第1の記憶手段の最大アドレスと次に記憶すべき情報の
最上位ビットのアドレスを示す第1のポインタとの差又
は上記第1の記憶手段の次に読み出すべき情報の最上位
ビットのアドレスを示す第2のポインタとを比較して判
断することを特徴としている。
【0013】請求項6記載の発明は、請求項1乃至5の
いずれか1に記載のプログラム検査方法に係り、上記履
歴情報は、割込・例外・分岐がそれぞれ発生した時の分
岐元のアドレス及び分岐先のアドレス、アクセスしたデ
ータの値又はデータが記憶されたアドレスからなること
を特徴としている。
【0014】請求項7記載の発明は、請求項6記載のプ
ログラム検査方法に係り、上記履歴情報及び上記記憶不
可能情報に代えて、上記履歴情報の種類又は上記記憶不
可能情報を示すコードと、上記アドレス又はデータの値
からなるパケットを上記第1及び第2の記憶手段に記憶
することを特徴としている。
【0015】請求項8記載の発明は、請求項1乃至7の
いずれか1に記載のプログラム検査方法に係り、上記第
1の記憶手段は、上記プログラムを実行する中央処理装
置及び上記第1及び第2の処理を実行する手段と同一の
チップ内に形成されていることを特徴としている。
【0016】請求項9記載の発明は、開発の対象である
システムを構成する中央処理装置が実行すべきプログラ
ムを実行すると共に、その際のプログラム実行の履歴に
関する履歴情報を獲得し、上記履歴情報に基づいて上記
プログラムを検査するプログラム検査装置に係り、上記
履歴情報が記憶される第1及び第2の記憶手段と、上記
プログラムが実行され、上記履歴情報が供給された場
合、上記第1の記憶手段に上記履歴情報が記憶可能な記
憶容量がある場合には、上記履歴情報を上記第1の記憶
手段に一時的に記憶し、上記記憶容量がない場合には、
上記第1の記憶手段に記憶された全ての履歴情報を読み
出して上記第2の記憶手段に記憶した後、上記第1の記
憶手段に上記履歴情報が記憶不可能であったことを示す
記憶不可能情報を記憶し、上記履歴情報が供給されない
場合には、上記第1の記憶手段に記憶された上記履歴情
報及び上記記憶不可能情報を読み出し、上記第2の記憶
手段に記憶するトレース手段とからなることを特徴とし
ている。
【0017】また、請求項10記載の発明は、開発の対
象であるシステムを構成する中央処理装置が実行すべき
プログラムを実行すると共に、その際のプログラム実行
の履歴に関する履歴情報を獲得し、上記履歴情報に基づ
いて上記プログラムを検査するプログラム検査装置に係
り、上記履歴情報が記憶される第1及び第2の記憶手段
と、上記プログラムが実行され、上記履歴情報が供給さ
れた場合、上記第1の記憶手段に上記履歴情報が記憶可
能な第1の記憶容量がある場合には、上記履歴情報を上
記第1の記憶手段に一時的に記憶し、上記第1の記憶容
量がないが、上記第1の記憶手段に上記履歴情報が記憶
不可能であったことを示す記憶不可能情報が記憶可能な
第2の記憶容量がある場合には、上記記憶不可能情報を
上記第1の記憶手段に一時的に記憶し、上記第2の記憶
容量がない場合には、上記第1の記憶手段に上記第2の
記憶容量ができるまで待機した後、上記記憶不可能情報
を記憶し、上記第1の記憶手段に記憶された上記履歴情
報及び上記記憶不可能情報を読み出し、上記第2の記憶
手段に記憶するトレース手段とからなることを特徴とし
ている。
【0018】また、請求項11記載の発明は、請求項1
0記載のプログラム検査装置に係り、上記第1の記憶手
段は、複数個のフリップフロップが直列接続されたシフ
トレジスタが複数個直列接続されて構成され、上記トレ
ース手段は、上記履歴情報及び上記記憶不可能情報が上
記第1の記憶手段に記憶可能か否かを、上記履歴情報及
び上記記憶不可能情報のビット長と、上記第1の記憶手
段の次に記憶すべき情報の最下位ビットのアドレスを示
すポインタとを比較して判断することを特徴としてい
る。
【0019】請求項12記載の発明は、開発の対象であ
るシステムを構成する中央処理装置が実行すべきプログ
ラムを実行すると共に、その際のプログラム実行の履歴
に関する履歴情報を獲得し、上記履歴情報に基づいて上
記プログラムを検査するプログラム検査装置に係り、上
記履歴情報が記憶される第1及び第2の記憶手段と、上
記プログラムが実行され、上記履歴情報が供給された場
合、上記第1の記憶手段に上記履歴情報が記憶可能な第
1の記憶容量がある場合には、上記履歴情報を上記第1
の記憶手段に一時的に記憶し、上記第1の記憶容量がな
いが、上記第1の記憶手段に上記履歴情報が記憶不可能
であったことを示す記憶不可能情報が記憶可能な第2の
記憶容量がある場合には、上記記憶不可能情報を上記第
1の記憶手段に一時的に記憶し、上記第2の記憶容量が
ない場合には、上記第1の記憶手段に上記第2の記憶容
量ができるまで上記履歴情報及び上記記憶不可能情報を
読み出し、上記第2の記憶手段に記憶した後、上記記憶
不可能情報を記憶し、上記履歴情報が供給されない場合
には、上記第1の記憶手段に記憶された上記履歴情報及
び上記記憶不可能情報を読み出し、上記第2の記憶手段
に記憶するトレース手段とからなることを特徴としてい
る。
【0020】請求項13記載の発明は、請求項12記載
のプログラム検査装置に係り、上記第1の記憶手段は、
半導体メモリにより構成され、上記トレース手段は、上
記履歴情報及び上記記憶不可能情報が上記第1の記憶手
段に記憶可能か否かを、上記履歴情報及び上記記憶不可
能情報のビット長と、上記第1の記憶手段の最大アドレ
スと次に記憶すべき情報の最上位ビットのアドレスを示
す第1のポインタとの差又は上記第1の記憶手段の次に
読み出すべき情報の最上位ビットのアドレスを示す第2
のポインタとを比較して判断することを特徴としてい
る。
【0021】請求項14記載の発明は、請求項9乃至1
3のいずれか1に記載のプログラム検査装置に係り、上
記履歴情報は、割込・例外・分岐がそれぞれ発生した時
の分岐元のアドレス及び分岐先のアドレス、アクセスし
たデータの値又はデータが記憶されたアドレスからなる
ことを特徴としている。
【0022】請求項15記載の発明は、請求項14記載
のプログラム検査装置に係り、上記履歴情報及び上記記
憶不可能情報に代えて、上記履歴情報の種類又は上記記
憶不可能情報を示すコードと、上記アドレス又はデータ
の値からなるパケットを上記第1及び第2の記憶手段に
記憶することを特徴としている。
【0023】また、請求項16記載の発明は、請求項9
乃至15のいずれか1に記載のプログラム検査装置に係
り、上記第1の記憶手段は、上記プログラムを実行する
中央処理装置及び上記トレース手段と同一のチップ内に
形成されていることを特徴としている。
【0024】また、請求項17記載の発明は、コンピュ
ータ読取可能な記録媒体に係り、コンピュータに請求項
1乃至16のいずれか1に記載の機能を実現させるため
のプログラム検査プログラムが記憶されていることを特
徴としている。
【0025】
【作用】この発明の構成によれば、トレースの中のCP
U動作を停止させることなく、プログラムの検査に必要
な履歴情報が得られる。加えて、CPUに内蔵した最小
限のトレース記憶容量で、トレースの中断時間を短縮で
きるると共に、トレースの中断箇所を特定できる。これ
により、ターゲットプログラムの検査を簡単・迅速に行
うことができる。
【0026】
【発明の実施の形態】以下、図面を参照して、この発明
の実施の形態について説明する。説明は、実施例を用い
て具体的に行う。 A.第1の実施例 図1はこの発明の第1の実施例であるプログラム検査装
置の電気的構成を示すブロック図である。この例のプロ
グラム検査装置は、ターゲットメモリ部11と、CPU
チップ12と、外部記憶装置13とから概略構成されて
いる。ターゲットメモリ部11は、ターゲットシステム
の主記憶装置を模したメモリであり、CPUが実行すべ
きターゲットプログラムが記憶されたターゲットプログ
ラム記憶部11aと、ターゲットプログラム実行時に用
いられるデータが記憶されたデータ記憶部11bとから
構成されている。CPUチップ12は、ターゲットレジ
スタ部14と、CPU15と、トレース手段16と、ト
レースバッファ17とから概略構成されている。ターゲ
ットレジスタ部14は、CPUが用いるレジスタを模し
たレジスタであり、複数のレジスタからなる。CPU1
5は、プログラムカウンタ(PC)15aを有し、装置
各部を制御すると共に、ターゲットプログラムを順次実
行する。PC15aは、CPU15が次に実行すべきア
ドレスの値を格納し、各命令の実行毎にカウント値を順
次カウントアップしたり、ジャンプ先のアドレスをロー
ドしたりする。トレース手段16は、ターゲットプログ
ラムを構成する各命令の実行順序、各命令実行後のター
ゲットレジスタ部14の内容の変化状況等を1つ1つト
レースしてそれらに関する履歴情報を獲得すると共に、
履歴情報をトレースパケットTPに変換してトレースバ
ッファ17に一旦記憶した後、外部記憶装置13に記憶
する。トレースバッファ17は、320ビットの記憶容
量を有し、トレースパケットTPがサイクリックに順次
記憶される。外部記憶装置13は、RAM等の半導体メ
モリ、FDやHD等の大規模な記憶容量を有する記憶媒
体からなり、トレースパケットTPが記憶される。
【0027】次に、トレースパケットTPについて説明
する。この実施例では、履歴情報は、トレース手段16
において、図2に示すように、8ビット又は40ビット
からなる7種類のトレースパケットTPに変換される。
図2(1)は、トレースの開始(トレースコードTRC
ODE[0101]b、[]bは、[]内の数字が2進
数であることを表す。以下同様である。)、ユーザが設
定したターゲットプログラム記憶部11aのアドレスに
記憶された命令の実行(トレースコードTRCODE
[0010]b)、トレースバッファ17のオーバーフ
ロー(トレースコードTRCODE[0011]b)を
それぞれ表すトレースパケットTPのフォーマットを示
す。このフォーマットを有するトレースパケットTPの
ビット長は8ビットである。これらのトレースパケット
TPのうち、トレースコードTRCODE[0011]
bのトレースパケットTPをオーバーフローパケットO
FPと呼ぶことにする。図2(2)は、外部からの割込
信号を無効にできる割込(マスカブル割込)(トレース
コードTRCODE[1100]b)、外部からの割込
信号を無効にできない割込(ノンマスカブル割込)や例
外(トレースコードTRCODE[1101]b)によ
る分岐がそれぞれ発生した時に分岐すべき分岐先の処理
ルーチンが集まったハンドラ領域のアドレス(ハンドラ
アドレス)HD_ADDRをそれぞれ表すトレースパケ
ットTPのフォーマットを示す。このフォーマットを有
するトレースパケットTPのビット長は8ビットであ
る。図2(3)は、CPU15がデータ読出のために、
ターゲットレジスタ部14を構成し、データの読出/書
込に使用される2つのレジスタのいずれかを選択し、選
択したレジスタに設定されたデータ記憶部11bのアド
レスに対してアクセスしたことを表すトレースパケット
TPのフォーマットを示す。このフォーマットを有する
トレースパケットTPのビット長は8ビット、トレース
コードTRCODEは[0001]bであり、BE
[2:0]はCPU15とターゲットメモリ部11との
間に設けられたデータバス(図示略)のなかで有効なバ
イトを表すバイトイネーブル信号、TRGRは上記2つ
のレジスタのうち、CPU15がいずれを選択したかを
表す信号である。
【0028】図2(4)は、各種分岐命令による分岐が
それぞれ発生した時に分岐元のアドレスBB_ADDR
(PC15aのカウント値)をそれぞれ表すトレースパ
ケットTPのフォーマットを示す。このフォーマットを
有するトレースパケットTPのビット長は40ビット、
トレースコードTRCODEは[0110]bである。
分岐命令としては、通常のジャンプ命令、分岐元のアド
レスをターゲットレジスタ部14を構成する特別なレジ
スタに保存してからジャンプするジャンプ・リンク命
令、分岐先のアドレスを現時点のアドレスからの相対ア
ドレスで表記する相対分岐命令、各種割込・例外処理ル
ーチンからの復帰命令、分岐先のアドレスをターゲット
レジスタ部14を構成するあるレジスタを参照して決定
した後、ジャンプするレジスタ間接分岐命令などの他、
上記マスカブル割込、ノンマスカブル割込や例外も含ま
れる。図2(5)は、上記復帰命令(トレースコードT
RCODE[1010]b)及びレジスタ間接分岐命令
(トレースコードTRCODE[1011]b)による
分岐がそれぞれ発生した時に分岐すべき分岐先のアドレ
スAB_ADDR(PC13aのカウント値)をそれぞ
れ表すトレースパケットTPのフォーマットを示す。こ
のフォーマットを有するトレースパケットTPのビット
長は40ビットである。図2(6)は、トレースを強制
的に開始させた時の実行アドレスEX_ADDR(PC
15aのカウント値)を表すトレースパケットTPのフ
ォーマットを示す。このフォーマットを有するトレース
パケットTPのビット長は40ビット、トレースコード
TRCODEは[1000]bである。図2(7)は、
CPU15がデータWR_DATAを書き込むために、
ターゲットレジスタ部14を構成し、データの読出/書
込に使用される2つのレジスタのいずれかを選択し、選
択したレジスタに設定されたデータ記憶部11bのアド
レスに対してアクセスしたことを表すトレースパケット
TPのフォーマットを示す。このフォーマットを有する
トレースパケットTPのビット長は40ビット、トレー
スコードTRCODEは[1001]bである。なお、
BE[2:0]及びTRGRの意味については、図2
(4)に示すトレースパケットTPと同様である。
【0029】次に、上記構成のプログラム検査装置の動
作について、図3〜図5を参照して説明する。この実施
例では、検査すべきターゲットプログラムは、図3に示
すフローチャートに対応しているとする。図3におい
て、各処理の右上近傍に記載されている4ビットの16
進数は、CPU15が各処理を実行する時点におけるP
C15aのカウント値を示している。CPU15は、P
C15aのカウント値を「0000」h(「」hは「」
内の数字が16進数であることを表す。以下同様であ
る。)にリセットした後、ターゲットプログラムの実行
を開始する。まず、PC15aが、そのカウント値を
「0000」hから「0001」hへカウントアップす
ると、CPU15は、図3のステップSA1へ進み、カ
ウント値「0001」hに対応したターゲットプログラ
ム記憶部11a上のアドレスに記憶されている初期化命
令を読み出して解釈し、ターゲットレジスタ部14を構
成する複数のレジスタや各種フラグをリセットするなど
の初期化を行う。次に、PC15aが、そのカウント値
を「0001」hから「0002」hへカウントアップ
すると、CPU15は、ステップSA2へ進み、カウン
ト値「0002」hに対応したターゲットプログラム記
憶部11a上のアドレスに記憶されているデータ入力命
令を読み出して解釈し、図示せぬデータ入力手段からの
データの入力としてデータ記憶部11bのある記憶領域
に記憶されているデータをターゲットレジスタ部14を
構成する所定のレジスタにロードする。今の場合、値が
「0AC3」hであるデータが入力されたものとする。
次に、PC15aが、そのカウント値を「0002」h
から「0003」hへカウントアップすると、CPU1
5は、ステップSA3へ進み、カウント値「0003」
hに対応したターゲットプログラム記憶部11a上のア
ドレスに記憶されている条件分岐命令を読み出して解釈
し、変数nが3以上であるか否かを判断する。今、この
条件分岐命令は、変数nが3以上であればPC15aの
カウント値「01B8」hに対応したターゲットプログ
ラム記憶部11a上のアドレスに記憶されている表示継
続処理命令へジャンプし、変数nが3未満であればPC
15aのカウント値「05F9」hに対応したターゲッ
トプログラム記憶部11a上のアドレスに記憶されてい
る表示クリア命令へジャンプする命令であるとする。
【0030】ステップSA3の判断結果が「YES」の
場合、すなわち、変数nが3以上の場合には、CPU1
5は、PC15aのカウント値を「0003」hから
「01B8」hへ変更した後、ステップSA4へ進み、
PC15aのカウント値「01B8」hに対応したター
ゲットプログラム記憶部11a上のアドレスに記憶され
ている表示処理命令を読み出して解釈し、既に図示せぬ
ディスプレイに表示されている表示をそのまま継続する
表示継続処理を行う。一方、ステップSA3の判断結果
が「NO」の場合、すなわち、変数nが3未満の場合に
は、CPU15は、PC15aのカウント値を「000
3」hから「05F9」hへ変更した後、ステップSA
5へ進み、PC15aのカウント値「05F9」hに対
応したターゲットプログラム記憶部11a上のアドレス
に記憶されている表示クリア命令を読み出して解釈し、
図示せぬディスプレイの表示を消去する表示クリア処理
を行う。次に、PC15aが、そのカウント値を「05
F9」hから「05FA」hへカウントアップすると、
CPU15は、ステップSA6へ進み、カウント値「0
5FA」hに対応したターゲットプログラム記憶部11
a上のアドレスに記憶されている新規表示命令を読み出
して解釈し、例えば、入力され、ターゲットレジスタ部
14を構成する所定のレジスタに記憶されているデータ
を図示せぬディスプレイに新たに表示する新規表示処理
を行う。以下同様に、CPU15は、ターゲットプログ
ラムを順次実行する。なお、以上の説明においては、説
明を簡単にするために特に述べていないが、CPU15
は、各命令を実行する毎に、PC15aのカウント値や
実行された命令の種類等を表す履歴情報をトレース手段
16へ供給する。
【0031】以上説明したCPU15によるターゲット
プログラムの実行と並行して、トレース手段16は、以
下に示すトレース処理及びトレースパケット読出処理を
実行する。まず、トレースパケット読出処理について説
明する。このトレースパケット読出処理は、以下に説明
するトレース処理とは原則として別個独立に行われる。
まず、トレースバッファ17にトレースパケットTPが
記憶されて残っているか否かを判断し(ステップSB1
1)、記憶されて残っていない空の場合には、ステップ
SB1に戻り記憶されるまで待機する。一方、トレース
バッファ17にトレースパケットTPが記憶されて残っ
いる場合には、トレースバッファ17に記憶されたト
レースパケットTPを4ビットのブロックに分割して出
力し(ステップSB10)、外部記憶装置13の所定の記
憶領域に記憶する。そして、再びトレースバッファ17
にトレースパケットTPが記憶されて残っているか否か
を判断する処理(ステップSB11)進む。この処理を
順次繰り返す。
【0032】次に、トレース処理について説明する。ま
ず、トレース手段16は、図5(1)に示すように、ト
レースバッファ17の記憶内容をクリアすると共に、ト
レースバッファ17の先頭アドレス0にポインタをセッ
トする(図中PP0の位置)等の初期化処理を行った
後、図4に示すステップSB1の処理へ進み、PC15
aのカウント値や履歴情報等がCPU15から供給され
たか否かを判断する。この判断結果が「NO」の場合に
は、同判断を繰り返す。一方、ステップSB1の判断結
果が「YES」の場合、すなわち、PC15aのカウン
ト値や履歴情報等がCPU15から供給された場合に
は、ステップSB2へ進む。ステップSB2では、PC
15aのカウント値や履歴情報等に基づいて、8ビット
又は40ビットからなる7種類のトレースパケットTP
のいずれかを生成した後、ステップSB3へ進む。今の
場合、PC15aのカウント値「0000」hが供給さ
れるので、トレースが開始されたと認識して、トレース
の開始を表すトレースコードTRCODE[0101]
bのトレースパケットTP(図2(1)参照)、すなわ
ち、トレースパケットTP「05」hを生成する。ステ
ップSB3では、生成されたトレースパケットTPのト
レースパケット長LTPを算出した後、ステップSB4
へ進む。今の場合、トレースパケットTP「05」hで
あるので、トレースパケット長LTPは、8ビットであ
る。ステップSB4では、式(1)に基づいて、ステッ
プSB2の処理で生成されたトレースパケットTPがト
レースバッファ17に書き込みできるか否かを判断す
る。
【0033】
【数1】(MAD−PP)≧LTP……(1)
【0034】式(1)において、MADはトレースバッ
ファ17のアドレスの最大値、PPはポインタの現在の
位置(アドレス値)である。ステップSB4の判断結果
が「YES」の場合には、ステップSB5へ進む。今の
場合、トレースバッファ17には何も記憶されていない
ので、ポインタは先頭アドレス(図5(1)中PP0
位置)にあり、式(1)が成立するので、ステップSB
5へ進む。ステップSB5では、トレースパケットTP
をトレースバッファ17のポインタで示された記憶領域
に書き込んだ後、ステップSB6へ進む。今の場合、図
5(2)に示すように、トレースの開始を示すトレース
パケットTP「05」hがトレースバッファ17の先頭
アドレスから書き込まれる。ステップSB6では、ポイ
ンタの位置を更新した後、ステップSB1へ戻る。今の
場合、ポインタを図5(1)のPP0の位置から、図5
(2)PP1の位置へ移動させる。
【0035】このように、CPU15からPC15aの
カウント値や履歴情報等が供給されない間は、ステップ
SB1の判断結果が「NO」のままであるから、トレー
スバッファ17に記憶されたトレースパケットTPを4
ビットのブロックに分割して出力し、外部記憶装置13
の所定の記憶領域に記憶する処理を繰り返す(図5
(3)参照)。そして、CPU15からPC15aのカ
ウント値や履歴情報等が供給されると、ステップSB1
の判断結果が「YES」となってステップSB2へ進
み、ステップSB2〜SB6の処理が繰り返される。例
えば、図3のステップSA2の処理では、PC15aの
カウント値が「0002」hであって、値が「0AC
3」hであるデータの入力処理がなされている。そこ
で、トレース手段16は、図2(7)に示すフォーマッ
トを有するトレースパケットTP「00000AC3X
9」h(Xは任意の値)を生成して(ステップSB
2)、トレースパケット長(今の場合、40ビット)を
算出する(ステップSB3)。次に、式(1)によれば
まだトレースパケットTPの書き込みが可能であるの
で、ステップSB4の判断結果が「YES」となり、ス
テップSB5へ進み、トレースパケットTP「0000
0AC3X9」hをトレースバッファ17のポインタが
示す記憶領域(図5(2)のPP1の位置)に書き込ん
だ後、ポインタの位置を図5(2)のPP1から図5
(3)PP2に更新する(ステップSB6)。
【0036】以上説明した処理が繰り返されると、トレ
ースバッファ17においては、トレースパケットTPが
書き込まれると共に、4ビットずつに分割されたトレー
スパケットTPが順次読み出されて外部記憶装置13に
記憶されていく。しかし、トレースバッファ17の記憶
容量が320ビットであると共に、1回の処理で書き込
まれるトレースパケットTPのビット数が8ビット又は
40ビットであるのに対し、1回の処理で読み出される
トレースデータのビット数が4ビットであるので、ビッ
ト長が8ビットのトレースの開始を示すトレースパケッ
トTP「05」hがトレースバッファ17に書き込まれ
た後、ビット長が40ビットのトレースパケットTPが
8回連続して生成されると、8個目のビット長が40ビ
ットのトレースパケットTPを書き込む際には、ポイン
タが図5(4)に示すPP8の位置(アドレスMADか
ら32ビット目の位置)にあるので、式(1)が成立し
ない。したがって、ステップSB4の判断結果が「N
O」となり、ステップSB7へ進む。
【0037】ステップSB7では、式(1)に基づい
て、トレースバッファ17にオーバーフローパケットO
FPの書き込みが可能か否か判断する。この判断結果が
「YES」の場合には、ステップSB8へ進む。一方、
ステップSB7の判断結果が「NO」の場合には、同判
断を繰り返す。そして、このトレース処理と独立に行わ
れているトレースパケット読出処理により、式(1)が
成立する場合には、ステップSB7の判断結果が「YE
S」となる。ステップSB8では、図2(1)に示すフ
ォーマットを有するビット長が8ビットのオーバーフロ
ーパケットOFP「03」hを生成してトレースバッフ
17の上記ポインタ(図5(4)に示すPP8の位
置)で示された記憶領域に書き込んだ後、ステップSB
9へ進む。ステップSB9では、ポイントの位置を更新
した後、ステップSB10へ進む。今の場合、ポインタ
を図5(5)のPP9の位置へ移動させる。ステップS
B10では、トレースバッファ17に記憶されたトレー
スパケットTPを4ビットのブロックに分割して出力
し、外部記憶装置13の所定の記憶領域に記憶した後、
ステップSB11へ進む。ステップSB11では、トレ
ースバッファ17に記憶されたトレースパケットTPが
全て読み出され、トレースバッファ17が完全に空にな
ったか否かを判断する。この判断結果が「NO」の場合
には、ステップSB10へ戻る。今の場合、4ビットの
データが1個読み出されただけであるので、ステップS
B10の判断結果は「NO」となり、ステップSB10
へ戻り、ステップSB10及びステップSB11の処理
を繰り返す。そして、トレースバッファ17が完全に空
になると、ステップSB11の判断結果が「YES」と
なり、ステップSB12へ進む。ステップSB12で
は、ポインタの位置を更新した後、ステップSB1へ戻
る。今の場合、ポインタを図5(1)のPP0の位置へ
移動させる。これにより、トレース手段16は、トレー
スを再開することができる。
【0038】このように、この例の構成によれば、トレ
ースバッファ17においては、トレースに従ってトレー
スパケットTPが書き込まれると共に、4ビットずつに
分割されたトレースパケットTPが順次読み出されて外
部記憶装置13に記憶されていくので、トレースバッフ
ァ17がオーバーフローするまでの時間を長くすること
ができる。また、トレースバッファ17がオーバーフロ
ーしても、従来のように、CPU15の動作を停止させ
ることがなく、実使用状態でのアクセス履歴やレジスタ
の内容などのトレースが可能になる。さらに、トレース
バッファ17がオーバーフローしてトレースパケットT
Pが連続的に保存できなくなった場合には、その旨を示
すオーバーフローパケットOFPを生成してトレースバ
ッファ17に書き込んでいる。したがって、外部記憶装
置13に記憶されたトレースパケットTPからターゲッ
トプログラムの実行状況が正確に把握できると共に、ど
の箇所でトレースが中断されたかを判断することができ
る。これにより、ターゲットプログラムにバグ等の問題
点があった場合には、具体的にどの箇所にバグなどがあ
るかが確認でき、ターゲットプログラムの検査を簡単・
迅速に行うことができる。また、トレースバッファ17
がオーバーフローしたとき、トレースバッファ17に記
憶された全てのトレースパケットTPを外部記憶装置1
3に記憶してから次の履歴情報を獲得するので、オーバ
ーフローパケットOFPの生成頻度を最小限に抑えるこ
とができる。
【0039】B.第2の実施例 次に、第2の実施例について説明する。図6はこの発明
の第2の実施例であるプログラム検査装置の電気的構成
を示すブロック図である。この図において、図1の各部
に対応する部分には同一の符号を付け、その説明を省略
する。図6に示すプログラム検査装置においては、図1
に示すCPUチップ12に代えて、CPUチップ21が
新たに設けられている。
【0040】CPUチップ21は、ターゲットレジスタ
部14と、CPU15と、トレース手段22と、トレー
スパケット記憶部23とから概略構成されている。トレ
ース手段22は、履歴情報等検出部24と、トレースパ
ケット生成部25と、比較部26と、オーバーフロー制
御部27と、ポインタ制御部28と、トレースデータ出
力部29とから概略構成されている。履歴情報等検出部
24は、オーバーフロー制御部27から供給される検出
指示信号DECに基づいて、CPU15から供給される
PC15aのカウント値や履歴情報等を検出してトレー
スパケット生成部25へ供給する。トレースパケット生
成部25は、履歴情報等検出部24から供給されるPC
15aのカウント値や履歴情報等に基づいて、第1の実
施例で説明した8ビット又は40ビットからなる7種類
のパラレルのトレースパケットTPのいずれかを生成
し、オーバーフロー制御部27から供給される許可信号
ACKに基づいて、トレースパケット記憶部23のポイ
ンタで示された記憶領域にトレースパケットTPを書き
込むと共に、生成されたトレースパケットTPのトレー
スパケット長LTPを算出して比較部26へ供給する。
比較部26は、トレースパケット生成部25から供給さ
れるトレースパケット長LTPとポインタ制御部28か
ら供給されるポインタの現在位置PPとの差を演算し、
その差を比較信号CMPとしてオーバーフロー制御部2
7へ供給する。オーバーフロー制御部27は、比較部2
6から供給される比較信号CMPに基づいて、トレース
パケット記憶部23のポインタで示された記憶領域への
トレースパケットTPの書き込みを許可する旨の許可信
号ACKをトレースパケット生成部25へ供給するか、
あるいはパラレルのオーバーフローパケットOFPを生
成して上記ポインタで示された記憶領域に書き込むと共
に、ポインタ制御部28へポインタの更新を要求する旨
のポインタ更新要求信号RNE1を供給する。また、オ
ーバーフロー制御部27は、履歴情報等検出部24へ履
歴情報等の検出を指示する検出指示信号DECを供給す
る。ポインタ制御部28は、オーバーフロー制御部27
及びトレースデータ出力部29からそれぞれ供給される
ポインタ更新要求信号RNE1,RNE2に基づいて、ト
レースパケット記憶部23におけるポインタの現在位置
PPを更新すると共に、比較部26にポインタの現在位
置PPを報知する。トレースデータ出力部29は、トレ
ースパケット記憶部23から1ビットずつ出力されるシ
リアルのトレースパケットTP及びオーバーフローパケ
ットOFPを4ビットのパラレルのトレースデータに変
換して外部記憶装置13の所定の記憶領域に書き込むと
共に、ポインタ制御部28に対してポインタ更新要求信
号RNE2を供給する。
【0041】トレースパケット記憶部23は、図7に示
すように、シフトレジスタ31と、ローテート回路32
と、シフトレジスタ33と、制御部34とから概略構成
されている。シフトレジスタ31は、8個のシフトレジ
スタ351〜358が信号バス361〜367を介して直列
に接続されて構成されている。シフトレジスタ351
358は、それぞれ5個のフリップフロップ(以下、F
Fと略す)により構成されており、各FFは8ビットの
シリアルデータを保持でき、1個のシフトレジスタ35
で最大40ビットのシリアルデータを保持できる。した
がって、シフトレジスタ31全体では、最大320ビッ
トのデータを保持できる。各シフトレジスタ351〜3
8を構成する各FFは、制御部34から供給される制
御信号SC1〜SC8に基づいて、供給されたデータを保
持するロード動作、シフトクロックSCKに同期して保
持しているデータを8ビットずつ下位ビット側に隣接す
るFFにシフトするシフト動作を行ったり、あるいは動
作しないイネーブル状態に移行する。なお、図7におい
て、シフトレジスタ357の最下位のFFに示された黒
三角印はポインタを意味する。また、図6に示すトレー
スパケット記憶部23において、斜線を示した部分はそ
の記憶領域にトレースパケットTPが記憶されているこ
とを示し、黒三角印はポインタを意味している。ローテ
ート回路32は、供給されるパラレルのトレースパケッ
トTP及びオーバーフローパケットOFPに対して、制
御部34から供給されるローテート制御信号SRに基づ
いてローテート処理を行う。そして、ローテート回路3
2は、ローテート処理を施したデータを、信号バス37
を介してシフトレジスタ351〜358のいずれかへ供給
する。シフトレジスタ33は、8ビットのシリアルデー
タを保持でき、供給されるシフトクロックSCKに同期
して1回に1ビットずつデータを下位ビット側にシフト
して出力し、シリアルのトレースパケットTP及びオー
バーフローパケットOFPとしてトレースデータ出力部
29へ供給する。制御部34は、供給されるシフトクロ
ックSCKに同期して、ローテート制御信号SR及び制
御信号SC1〜SC8を発生して各部を制御する。なお、
トレースパケット記憶部23の詳細な構成及び動作につ
いては、この出願人が先に提案した特願平9−4546
号を参照されたい。
【0042】次に、上記構成のプログラム検査装置の動
作について、図8に示すフローチャートを参照して説明
する。まず、この実施例においても、検査すべきターゲ
ットプログラムは、図3に示すフローチャートに対応し
ているものとし、CPU15の動作についても上記した
第1の実施例におけるCPU15の動作と略同様である
とする。したがって、CPU15の動作については、そ
の説明を省略する。次に、上記CPU15によるターゲ
ットプログラムの実行と並行して実行されるトレース手
段22のトレース処理について説明する。まず、ポイン
タ制御部28は、トレースパケット記憶部23を構成す
るシフトレジスタ31,33の全ての記憶内容をクリア
すると共に、トレースパケット記憶部23を構成するシ
フトレジスタ31の8個目のシフトレジスタ358を構
成する最下位8ビットのFF(アドレスMAD)にポイ
ンタをセットさせるための初期化信号をトレースパケッ
ト記憶部23を構成する制御部34へ供給する等の初期
化処理を行う。これにより、制御部34は、シフトレジ
スタ31,33の全ての記憶内容のクリア及びポインタ
のセットを行う。次に、履歴情報等検出部24は、オー
バーフロー制御部27から供給される検出指示信号DE
Cに基づいて、PC15aのカウント値や履歴情報等が
CPU15から供給されたか否かを判断する(ステップ
SC1)。この判断結果が「NO」の場合には、履歴情
報等検出部24は、同判断を繰り返す。また、トレース
データ出力部29は、トレースパケット記憶部23から
1ビットずつ出力されるシリアルのトレースパケットT
P及びオーバーフローパケットOFPを4ビットのパラ
レルのトレースデータに変換して外部記憶装置13の所
定の記憶領域に書き込んだ後、ポインタ制御部28に対
してポインタ更新要求信号RNE2を供給する。したが
って、ポインタ制御部28は、ポインタ更新要求信号R
NE2に基づいて、トレースパケット記憶部23におけ
るポインタの現在位置PPを更新すると共に、比較部2
6にポインタの現在位置PPを報知する。今の場合、ト
レースパケット記憶部23には何も記憶されていないの
で、外部記憶装置13には何も記憶されず、ポインタの
現在位置PPの更新も行われない。
【0043】一方、ステップSC1の判断結果が「YE
S」の場合、すなわち、履歴情報等検出部24にPC1
5aのカウント値や履歴情報等がCPU15から供給さ
れた場合には、履歴情報等検出部24は、検出したPC
15aのカウント値や履歴情報等をトレースパケット生
成部25へ供給する。これにより、トレースパケット生
成部25は、PC15aのカウント値や履歴情報等に基
づいて、8ビット又は40ビットからなる7種類のパラ
レルのトレースパケットTPのいずれかを生成する(ス
テップSC2)。今の場合、PC15aのカウント値
「0000」hが供給されるので、トレースが開始され
たと認識して、トレースの開始を表すトレースコードT
RCODE[0101]bのトレースパケットTP(図
2(1)参照)、すなわち、トレースパケットTP「0
5」hを生成する。次に、トレースパケット生成部25
は、生成されたトレースパケットTPのトレースパケッ
ト長LTPを算出して比較部26へ供給する(ステップ
SC3)。今の場合、トレースパケットTP「05」h
であるので、トレースパケット長LTPは、8ビットで
ある。これにより、比較部26は、トレースパケット長
LTPとポインタの現在位置PPとの差を演算し、その
差を示す比較信号CMPをオーバーフロー制御部27へ
供給する。今の場合、トレースパケット記憶部23のシ
フトレジスタ31には何も記憶されていないので、ポイ
ンタはトレースパケット記憶部23を構成するシフトレ
ジスタ31の8個目のシフトレジスタ358を構成する
最下位8ビットの位置にあり、比較部26は、(320
−8=312)ビットを示す比較信号CMPをオーバー
フロー制御部27へ供給する。オーバーフロー制御部2
7は、比較信号CMPに基づいて、トレースパケットT
Pの書き込みが可能か否かを判断する(ステップSC
4)。この判断結果が「YES」の場合には、オーバー
フロー制御部26は、トレースパケット記憶部23のポ
インタで示された記憶領域へのトレースパケットTPの
書き込みを許可する旨の許可信号ACKをトレースパケ
ット生成部25へ供給すると共に、ポインタ制御部28
へポインタ更新要求信号RNE1を供給し、さらに、履
歴情報等検出部24へ検出指示信号DECを供給する。
一方、ステップSC4の判断結果が「NO」の場合、す
なわち、トレースパケットTPの書き込みが不可能な場
合には、トレースパケット生成部25への許可信号AC
Kの供給その他の処理を行わない。今の場合、312ビ
ットを示す比較信号CMPが供給されているので、オー
バーフロー制御部27は、トレースパケットTPの書き
込みが可能と判断して、許可信号ACKをトレースパケ
ット生成部25へ供給すると共に、ポインタ制御部28
へポインタ更新要求信号RNE1を供給し、さらに、履
歴情報等検出部24へ検出指示信号DECを供給する。
これにより、トレースパケット生成部25は、オーバー
フロー制御部27から供給される許可信号ACKに基づ
いて、トレースパケット記憶部23のポインタで示され
た記憶領域にトレースパケットTPを書き込む(ステッ
プSC5)。今の場合、トレースの開始を示すトレース
パケットTP「05」hがトレースパケット記憶部23
を構成するシフトレジスタ31の8個目のシフトレジス
タ358を構成する最下位8ビットのFFに書き込まれ
る。また、ポインタ制御部28は、オーバーフロー制御
部27から供給されたポインタ更新要求信号RNE1
基づいて、トレースパケット記憶部23におけるポイン
タの現在位置PPを更新すると共に、比較部26にポイ
ンタの現在位置PPを報知する(ステップSC6)。今
の場合、ポインタの位置PPはシフトレジスタ358
構成する下位16ビットのFFの位置へ移動する。そし
て、履歴情報等検出部24は、オーバーフロー制御部2
7から供給された検出指示信号DECに基づいて、再び
PC15aのカウント値や履歴情報等がCPU15から
供給されたか否かを判断する(ステップSC1)。以上
説明したステップSC1〜SC6の処理が行われている
間、トレースパケット記憶部23においては、制御部3
4の制御の下、シフトクロックSCKに同期してシフト
レジスタ31を構成する各シフトレジスタ351〜358
においてデータのシフト動作が行われ、トレースデータ
出力部29を介してトレースデータが外部記憶装置13
に順次記憶されていく。
【0044】以上説明した処理が繰り返されると、トレ
ースパケット記憶部23においては、トレースパケット
TPが書き込まれると共に、シリアルのトレースパケッ
トTPが1ビットずつ出力され、トレースデータ出力部
29において4ビットのパラレルのトレースデータに変
換されて外部記憶装置13の所定の記憶領域に書き込ま
れていく。しかし、トレースパケット記憶部23の記憶
容量が320ビットであると共に、1回の処理で書き込
まれるトレースパケットTPのビット数が8ビット又は
40ビットであるのに対し、1回の処理で読み出される
トレースデータのビット数が4ビットであるので、ビッ
ト長が8ビットのトレースの開始を示すトレースパケッ
トTP「05」hがトレースパケット記憶部23に書き
込まれた後、ビット長が40ビットのトレースパケット
TPが8回連続して生成されると、8個目のビット長が
40ビットのトレースパケットTPを書き込む際には、
ポインタの現在位置PPの方がトレースパケットTPの
ビット長LTPより小さくなってしまう。そこで、比較
部26は、その場合の差のビット数(負の数)を示す比
較信号CMPをオーバーフロー制御部27へ供給する。
したがって、オーバーフロー制御部27は、比較信号C
MPに基づいて、トレースパケットTPの書き込みが不
可能と判断して、トレースパケット生成部25へ許可信
号ACKを供給しない(ステップSC4)。次に、オー
バーフロー制御部27は、オーバーフローパケットOF
Pが既に書き込み済かを判断する(ステップSC7)。
この判断は、例えば、オーバーフロー制御部27内部に
オーバーフローパケットOFPが書き込み済の場合に1
にセットされるフラグを設けておき、そのフラグが1に
セットされているか否かによる。ステップSC7の判断
結果が「YES」の場合、すなわち、オーバーフローパ
ケットOFPが既に書き込み済の場合には、オーバーフ
ロー制御部27は、履歴情報等検出部24へ検出指示信
号DECを供給する。これにより、履歴情報等検出部2
4は、オーバーフロー制御部27から供給された検出指
示信号DECに基づいて、再びPC15aのカウント値
や履歴情報等がCPU15から供給されたか否かを判断
する(ステップSC1)。一方、ステップSC7の判断
結果が「NO」の場合、すなわち、オーバーフローパケ
ットOFPがまだ書き込まれていない場合には、オーバ
ーフロー制御部27は、オーバーフローパケットOFP
の書き込みが可能か否か判断する(ステップSC8)。
この判断は、例えば、(アドレスの最大値MAD−ポイ
ンタの現在位置PP)が8以上であるか否かによる。ス
テップSC8の判断結果が「YES」の場合には、オー
バーフロー制御部27は、ステップSC9へ進む。一
方、ステップSC8の判断結果が「NO」の場合には、
オーバーフロー制御部27は、同判断を繰り返す。そし
て、トレースパケット記憶部23の各シフトレジスタ3
1〜358におけるデータのシフト動作及びトレースデ
ータ出力部29におけるトレースデータの外部記憶装置
13への書き込み処理により、ポインタの現在位置PP
が8以上となると、ステップSC8の判断結果が「YE
S」となる。ステップSC9では、オーバーフロー制御
部27は、オーバーフローパケットOFPを生成して上
記ポインタで示された記憶領域に書き込む。次に、オー
バーフロー制御部27は、ポインタ制御部28へポイン
タ更新要求信号RNE1を供給すると共に、履歴情報等
検出部24へ履歴情報等の検出を指示する検出指示信号
DECを供給する(ステップSC10)。これにより、
履歴情報等検出部24は、オーバーフロー制御部27か
ら供給された検出指示信号DECに基づいて、再びPC
15aのカウント値や履歴情報等がCPU15から供給
されたか否かを判断する(ステップSC1)。
【0045】このように、この例の構成によれば、例え
ば、図3に示すターゲットプログラムにおいて、ステッ
プSA2の処理を実行した際に、トレースパケット記憶
部23を構成するシフトレジスタ31がオーバーフロー
した場合、第1の実施例では、トレースバッファ17が
全てからになるまで次の履歴情報を獲得しないので、ス
テップSA3の処理においてどちらへ分岐して処理した
かをトレースできないこともある。しかし、この実施例
においては、トレースパケット記憶部23にトレースパ
ケットTPが書き込める領域が確保できると、次の履歴
情報を獲得してトレースパケットTPに変換した後、ト
レースパケット記憶部23に書き込むことができる。ス
テップSA5〜SA6など処理に関する一部の履歴情報
が獲得できれば、どちらに分岐して処理したかを判断す
ることができる。したがって、第1の実施例に比べてト
レース処理を中断している時間が短くて済む。これによ
り、獲得できる履歴情報の間隔を短くすることができ
る。また、この例の構成によれば、トレースパケット記
憶部23を用いているので、シフトレジスタ31の無駄
な未使用部分が発生することを防止でき、シフトレジス
タ31の利用効率が向上すると共に、その分トレース処
理を中断している時間が短くて済む。
【0046】C.第3の実施例 次に、第3の実施例について説明する。図9はこの発明
の第3の実施例であるプログラム検査装置の電気的構成
を示すブロック図である。この図において、図6の各部
に対応する部分には同一の符号を付け、その説明を省略
する。図9に示すプログラム検査装置においては、図6
に示すCPUチップ21に代えて、CPUチップ41が
新たに設けられている。CPU41は、トレース手段4
2及びトレースパケットメモリ43により構成されてい
る。トレース手段42は、履歴情報等検出部44と、ト
レースパケット生成部45と、オーバーフロー制御部4
6と、メモリコントローラ47と、ポインタ制御部4
8、比較部49と、トレースデータ出力部50とから概
略構成されている。
【0047】履歴情報等検出部44は、オーバーフロー
制御部46から供給される検出指示信号DECに基づい
て、CPU15から供給されるPC15aのカウント値
や履歴情報等を検出してトレースパケット生成部45へ
供給する。トレースパケット生成部45は、履歴情報等
検出部44から供給されるPC15aのカウント値や履
歴情報等に基づいて、第1の実施例で説明した8ビット
又は40ビットからなる7種類のパラレルのトレースパ
ケットTPのいずれかを生成し、オーバーフロー制御部
46から供給される許可信号ACKに基づいて、メモリ
コントローラ47へ供給すると共に、生成されたトレー
スパケットTPのトレースパケット長LTPを算出して
比較部49へ供給する。オーバーフロー制御部46は、
比較部49から供給されるオーバーフロー信号SOFに
基づいて、トレースパケットTPの書き込みを許可する
旨の許可信号ACKをトレースパケット生成部45へ供
給するか、あるいはパラレルのオーバーフローパケット
OFPを生成してメモリコントローラ47へ供給すると
共に、ポインタ制御部48へポインタの更新を要求する
旨のポインタ更新要求信号RNE1を供給する。メモリ
コントローラ47は、トレースパケット生成部45から
供給されるトレースパケットTP、あるいはオーバーフ
ロー制御部46から供給されるオーバーフローパケット
OFPをポインタ制御部47から供給される書込ポイン
タWPによって指定されたトレースパケットメモリ43
の記憶領域に書き込みと共に、ポインタ制御部48から
供給される読出ポインタRPによって指定されたトレー
スパケットメモリ43の記憶領域からトレースパケット
TP及びオーバーフローパケットOFPを読み出してト
レースデータ出力部50へ供給する。
【0048】ポインタ制御部48は、オーバーフロー制
御部46及びトレースデータ出力部50からそれぞれ供
給されるポインタ更新要求信号RNE1,RNE2に基づ
いて、トレースパケットメモリ43における書込ポイン
タWP及び読出ポインタRPを更新すると共に、比較部
49に書込ポインタWP及び読出ポインタRPを報知す
る。また、ポインタ制御部48は、履歴情報等検出部4
4へ履歴情報等の検出を指示する検出指示信号DECを
供給する。比較部49は、トレースパケット生成部45
から供給されるトレースパケット長LTPと、ポインタ
制御部48から供給される書込ポインタWP及び読出ポ
インタRPとに基づいて、トレースパケットメモリ43
においてオーバーフローが発生しているか否かを判断
し、オーバーフローが発生している場合には、オーバー
フロー信号SOFを生成してオーバーフロー制御部46
に供給する。トレースデータ出力部50は、メモリコン
トローラ47から供給されるトレースパケットTPを4
ビットのパラレルのトレースデータに変換して外部記憶
装置13の所定の記憶領域に書き込むと共に、ポインタ
制御部48に対してポインタ更新要求信号RNE2を供
給する。トレースパケットメモリ43は、RAM等から
なり、320ビットの記憶容量を有しており、メモリコ
ントローラ47の制御の下、トレースパケットTP又は
オーバーフローパケットOFPの書込及びトレースパケ
ットTP及びオーバーフローパケットOFPの読出が行
われる。なお、メモリコントローラ47は、トレースパ
ケットTP又はオーバーフローパケットOFPをトレー
スパケットメモリ43のアドレス0からアドレスの最大
値MADに向かって順次書き込むものとし、アドレスの
最大値MADまで書き込んだ後は、トレースパケットT
P及びオーバーフローパケットOFPをトレースパケッ
トメモリ43のアドレス0からアドレスの最大値MAD
に向かって順次読み出しているので、再びアドレス0か
らアドレスの最大値MADに向かって順次書き込むもの
とする。
【0049】次に、上記構成のプログラム検査装置の動
作について、図10に示すフローチャートを参照して説
明する。まず、この実施例においても、検査すべきター
ゲットプログラムは、図3に示すフローチャートに対応
しているものとし、CPU15の動作についても上記し
た第1の実施例におけるCPU15の動作と略同様であ
るとする。したがって、CPU15の動作については、
その説明を省略する。次に、上記CPU15によるター
ゲットプログラムの実行と並行して実行されるトレース
手段42のトレース処理について説明する。まず、ポイ
ンタ制御部48は、トレースパケットメモリ43の全て
の記憶内容をクリアすると共に、トレースパケットメモ
リ43の先頭アドレスに書込ポインタWP及び読出ポイ
ンタRPをセットさせるための初期化信号をメモリコン
トローラ47へ供給する等の初期化処理を行う。これに
より、メモリコントローラ47は、トレースパケットメ
モリ43の全ての記憶内容のクリア並びに書込ポインタ
WP及び読出ポインタRPのセットを行う。次に、履歴
情報等検出部44は、オーバーフロー制御部46から供
給される検出指示信号DECに基づいて、PC15aの
カウント値や履歴情報等がCPU15から供給されたか
否かを判断する(ステップSD1)。この判断結果が
「NO」の場合、すなわち、PC15aのカウント値や
履歴情報等がCPU15から供給されていない場合に
は、履歴情報等検出部44は、その旨をメモリコントロ
ーラ47に報知する。これにより、メモリコントローラ
47は、ポインタ制御部48から供給される読出ポイン
タRPによって指定されたトレースパケットメモリ43
の記憶領域からトレースパケットTPを読み出してトレ
ースデータ出力部50へ供給する(ステップSD2)。
したがって、トレースデータ出力部50は、メモリコン
トローラ50から供給されるトレースパケットTPを4
ビットのパラレルのトレースデータに変換して外部記憶
装置13の所定の記憶領域に書き込んだ後、ポインタ制
御部48に対してポインタ更新要求信号RNE2を供給
する。したがって、ポインタ制御部48は、ポインタ更
新要求信号RNE2に基づいて、トレースパケットメモ
リ43における読出ポインタRPを更新すると共に、比
較部49に読出ポインタRPを報知する。また、ポイン
タ制御部48は、履歴情報等検出部44へ検出指示信号
DECを供給する(ステップSD3)。今の場合、トレ
ースパケットメモリ43には何も記憶されていないの
で、外部記憶装置13には何も記憶されず、読出ポイン
タRPの更新も行われない。そして、履歴情報等検出部
44は、ポインタ制御部48から供給された検出指示信
号DECに基づいて、再びPC15aのカウント値や履
歴情報等がCPU15から供給されたか否かを判断する
(ステップSD1)。
【0050】一方、ステップSD1の判断結果が「YE
S」の場合、すなわち、履歴情報等検出部44にPC1
5aのカウント値や履歴情報等がCPU15から供給さ
れた場合には、履歴情報等検出部44は、検出したPC
15aのカウント値や履歴情報等をトレースパケット生
成部45へ供給する。これにより、トレースパケット生
成部45は、PC15aのカウント値や履歴情報等に基
づいて、8ビット又は40ビットからなる7種類のパラ
レルのトレースパケットのいずれかを生成する(ステッ
プSD4)。今の場合、PC15aのカウント値「00
00」hが供給されるので、トレースが開始されたと認
識して、トレースの開始を表すトレースコードTRCO
DE[0101]bのトレースパケットTP(図2
(1)参照)、すなわち、トレースパケットTP「0
5」hを生成する。次に、トレースパケット生成部45
は、生成されたトレースパケットTPのトレースパケッ
ト長LTPを算出して比較部49へ供給する(ステップ
SD5)。今の場合、トレースパケットTP「05」h
であるので、トレースパケット長LTPは、8ビットで
ある。これにより、比較部49は、式(2)及び式
(3)に基づいて、トレースパケットTPが書き込み可
能か、すなわち、オーバーフローが発生しているか否か
を判断する(ステップSD6)。
【0051】
【数2】(MAD−WP)≧LTP……(2)
【0052】
【数3】RP≧LTP……(3)
【0053】すなわち、メモリコントローラ47がトレ
ースパケットメモリ43へのトレースパケットTP又は
オーバーフローパケットOFPの書き込みを上述したよ
うにサイクリックに行っているので、式(2)又は式
(3)のいずれかが成立する場合には、トレースパケッ
トTPは未だ書き込み可能である。しかし、式(2)及
び式(3)のいずれも成立しない場合には、オーバーフ
ローが発生していることになる。そこで、これら式
(2)及び式(3)により、オーバーフローの発生の有
無が判断できるのである。今の場合、トレースパケット
メモリ43には何も記憶されていないので、書込ポイン
タWPはトレースパケットメモリ43の先頭アドレス0
の位置にあるから、上記式(2)が成立する。したがっ
て、比較部49は、トレースパケットTPが書き込み可
能と判断してオーバーフロー信号SOFをオーバーフロ
ー制御部46へ供給しない。これにより、オーバーフロ
ー制御部46は、オーバーフロー信号SOFが供給され
ないので、トレースパケットメモリ43の書込ポインタ
WPで示された記憶領域へのトレースパケットTPの書
き込みを許可する旨の許可信号ACKをトレースパケッ
ト生成部45へ供給すると共に、ポインタ制御部48へ
ポインタ更新要求信号RNE1を供給する。したがっ
て、トレースパケット生成部45は、オーバーフロー制
御部46から供給された許可信号ACKに基づいて、生
成したトレースパケットTPをメモリコントローラ47
へ供給する。メモリコントローラ47は、トレースパケ
ット生成部45から供給されるトレースパケットTPを
ポインタ制御部48から供給された書込ポインタWPに
よって指定されたトレースパケットメモリ43の記憶領
域に書き込む(ステップSD7)。今の場合、トレース
の開始を示すトレースパケットTP「05」hがトレー
スパケットメモリ43の先頭アドレス0から書き込まれ
る。また、ポインタ制御部48は、オーバーフロー制御
部46から供給されたポインタ更新要求信号RNE1
基づいて、トレースパケットメモリ43における書込ポ
インタWPを更新すると共に、メモリコントローラ47
及び比較部49に書込ポインタWPを報知する。さら
に、ポインタ制御部48は、履歴情報等検出部44へ検
出指示信号DECを供給する(ステップSD8)。そし
て、履歴情報等検出部44は、ポインタ制御部48から
供給された検出指示信号DECに基づいて、再びPC1
5aのカウント値や履歴情報等がCPU15から供給さ
れたか否かを判断する(ステップSD1)。
【0054】以上説明した処理が繰り返されると、トレ
ースパケットメモリ43においては、トレースパケット
TPが書き込まれると共に、トレースパケットTPが読
み出され、トレースデータ出力部50において4ビット
のパラレルのトレースデータに変換されて外部記憶装置
13の所定の記憶領域に書き込まれていく。しかし、ト
レースパケットメモリ43の記憶容量が320ビットで
あると共に、1回の処理で書き込まれるトレースパケッ
トTPのビット数が8ビット又は40ビットであるのに
対し、1回の処理で読み出されるトレースデータのビッ
ト数が4ビットであるので、上記した式(2)及び式
(3)のいずれも成立しない事態が発生する場合があ
る。その場合には、比較部49は、オーバーフローが発
生していると判断して、オーバーフロー信号SOFをオ
ーバーフロー制御部46へ供給する。これにより、オー
バーフロー制御部46は、オーバーフロー信号SOFが
供給されたので、トレースパケットTPの書き込みが不
可能と判断して、トレースパケット生成部45へ許可信
号ACKを供給しない(ステップSD6)。次に、オー
バーフロー制御部46は、オーバーフローパケットOF
Pが既に書き込み済かを判断する(ステップSD9)。
この判断は、例えば、オーバーフロー制御部46内部に
オーバーフローパケットOFPが書き込み済の場合に1
にセットされるフラグを設けておき、そのフラグが1に
セットされているか否かによる。ステップSD9の判断
結果が「YES」の場合、すなわち、オーバーフローパ
ケットOFPが既に書き込み済の場合には、オーバーフ
ロー制御部46は、その旨をメモリコントローラ47に
報知する。これにより、メモリコントローラ47は、ポ
インタ制御部48から供給される読出ポインタRPによ
って指定されたトレースパケットメモリ43の記憶領域
からトレースパケットTPを読み出してトレースデータ
出力部50へ供給する(ステップSD10)。したがっ
て、トレースデータ出力部50は、メモリコントローラ
47から供給されるトレースパケットTPを4ビットの
パラレルのトレースデータに変換して外部記憶装置13
の所定の記憶領域に書き込んだ後、ポインタ制御部48
に対してポインタ更新要求信号RNE2を供給する。し
たがって、ポインタ制御部48は、ポインタ更新要求信
号RNE2に基づいて、トレースパケットメモリ43に
おける読出ポインタRPを更新すると共に、比較部49
に読出ポインタRPを報知する。また、ポインタ制御部
48は、履歴情報等検出部44へ検出指示信号DECを
供給する(ステップSD11)。これにより、履歴情報
等検出部44は、ポインタ制御部48から供給された検
出指示信号DECに基づいて、再びPC15aのカウン
ト値や履歴情報等がCPU15から供給されたか否かを
判断する(ステップSD1)。
【0055】一方、ステップSD9の判断結果が「N
O」の場合、すなわち、オーバーフローパケットOFP
がトレースパケットメモリ43にまだ書き込まれていな
い場合には、オーバーフロー制御部46は、その旨を比
較部49へ報知する。これにより、比較部49は、オー
バーフローパケットOFPの書き込みが可能か否か判断
する(ステップSD12)。この判断は、例えば、アド
レスの最大値MADと書込ポインタWPとの差(MAD
−WP)、あるいは読出ポインタRPが8以上であるか
否かによる。ステップSD12の判断結果が「YES」
の場合には、比較部49は、その旨をオーバーフロー制
御部46へ報知する。これにより、オーバーフロー制御
部46は、オーバーフローパケットOFPを生成してメ
モリコントローラ47へ供給すると共に、ポインタ更新
要求信号RNE1をポインタ制御部48へ供給する。メ
モリコントローラ47は、オーバーフロー制御部46か
ら供給されたオーバーフローパケットOFPをポインタ
制御部48から供給された書込ポインタWPによって指
定されたトレースパケットメモリ43の記憶領域に書き
込む(ステップSD13)。また、ポインタ制御部48
は、オーバーフロー制御部46から供給されたポインタ
更新要求信号RNE1に基づいて、トレースパケットメ
モリ43における書込ポインタWPを更新すると共に、
メモリコントローラ47及び比較部49に書込ポインタ
WPを報知する。さらに、ポインタ制御部48は、履歴
情報等検出部44へ検出指示信号DECを供給する(ス
テップSD14)。そして、履歴情報等検出部44は、
ポインタ制御部48から供給された検出指示信号DEC
に基づいて、再びPC15aのカウント値や履歴情報等
がCPU15から供給されたか否かを判断する(ステッ
プSD1)。一方、ステップSD12の判断結果が「N
O」の場合、すなわち、オーバーフローパケットOFP
の書き込みが不可能の場合には、比較部49は、その旨
をオーバーフロー制御部46及びメモリコントローラ4
7へ報知する。これにより、メモリコントローラ47
は、ポインタ制御部48から供給される読出ポインタR
Pによって指定されたトレースパケットメモリ43の記
憶領域からトレースパケットTPを読み出してトレース
データ出力部50へ供給する(ステップSD15)。し
たがって、トレースデータ出力部50は、メモリコント
ローラ47から供給されるトレースパケットTPを4ビ
ットのパラレルのトレースデータに変換して外部記憶装
置13の所定の記憶領域に書き込んだ後、ポインタ制御
部48に対してポインタ更新要求信号RNE2を供給す
る。したがって、ポインタ制御部48は、ポインタ更新
要求信号RNE2に基づいて、トレースパケットメモリ
43における読出ポインタRPを更新すると共に、比較
部49に読出ポインタRPを報知する(ステップSD1
6)。そして、トレースパケットメモリ43からのトレ
ースデータの読出処理及びトレースデータ出力部50に
おけるトレースデータの外部記憶装置13への書込処理
により、アドレスの最大値MADと書込ポインタWPと
の差(MAD−WP)、あるいは読出ポインタRPが8
以上となると、比較部49は、オーバーフローパケット
OFPの書き込みが可能と判断して、その旨をオーバー
フロー制御部46へ報知する。これにより、上記したス
テップSD13及びステップSD14の処理が行われ
る。
【0056】このように、この例の構成によれば、第2
の実施例で示したと略同様の効果が得られると共に、次
の効果も得られる。この実施例においては、トレースパ
ケットTPを記憶する記憶手段としてシフトレジスタの
代わりに、DRAMやSRAMなど汎用の半導体メモリ
を用いることができる。記憶容量が同じであれば、シフ
トレジスタを使用した第2の実施例に比べ、CPUチッ
プ41のチップ面積を低減できる。逆に、同じチップ面
積であれば、記憶容量を大きくすることができ、獲得で
きる履歴情報の数を増加できる。
【0057】以上、この発明の実施例を図面を参照して
詳述してきたが、具体的な構成はこの実施例に限られる
ものではなく、この発明の要旨を逸脱しない範囲の設計
の変更等があってもこの発明に含まれる。例えば、上述
した第1〜第3の実施例においては、いずれもCPU1
5がターゲットプログラムを全て実行してトレース手段
がトレース処理を行う例を示したが、これに限定されな
い。ターゲットプログラムは、通常、検査が終了した定
型処理と当該ターゲットプログラム固有で検査が終了し
ていない非定型処理から構成されている。このうち、定
型処理については、CPU15が解釈せずに実行できる
形態の命令で構成することにより実行を高速で行うこと
ができ、また検査が終了しているためトレース処理を行
う必要がない。これに対し、非定型処理は、当該ターゲ
ットプログラム固有であるから、CPU15が1命令ず
つ解釈して実行する必要があり、かつ、検査が終了して
いないため、トレース処理を行う必要がある。そこで、
例えば、ユーザがトレース処理を希望する箇所を指定で
きる入力手段を設け、CPU15がターゲットプログラ
ムを定型処理については高速に実行し、非定型処理につ
いては1命令ずつ解釈して実行し、これに並行して、ト
レース手段は、ユーザが指定した箇所についてのみトレ
ース処理を実行するように構成する。このような構成で
あれば、トレースパケットを記憶するトレースバッファ
17、トレースパケット記憶部23やトレースパケット
メモリ43がオーバーフローになる頻度が少なくなり、
これに伴ってトレース処理が中断される時間も短縮され
る。これにより、トレース処理を含めたターゲットプロ
グラムを検査する処理時間全体が短くて済む。
【0058】また、上述した第1〜第3の実施例におい
ては、いずれも1回のトレース処理についてのみの説明
であるが、通常、バグなどは何回かトレース処理を行わ
なければ完全には除去できない。そこで、ターゲットプ
ログラムのうち、前回のトレース処理で問題が発生しな
かった箇所については今回はトレース処理を行わず、異
常が発生した箇所や、前回のトレース処理時にトレース
バッファ17等がオーバーフローしたためにトレースパ
ケットTPがトレースバッファ17等に記憶できなかっ
た箇所について、重点的にトレース処理して確実にトレ
ースパケットTPを記憶する必要がある。そのために
は、例えば、前回の履歴情報等を所定の記憶手段に記憶
しておくと共に、上記したユーザがトレース処理を希望
する箇所を指定する。これにより、CPU15は、ター
ゲットプログラムを実行するが、正常に動作する箇所で
は処理を省き(例えば、単にデータ記憶部11bの所定
箇所に記憶されたデータを、ターゲットレジスタ部14
を構成するレジスタにロードしたり、データ記憶部11
bの他の記憶箇所や外部の機器に転送する処理など)、
前回の履歴情報に基づいて、トレース処理がユーザによ
って指定された箇所を実行する直前の状態にターゲット
レジスタ部14やデータ記憶部11bの内容を設定し、
直ちに当該指定箇所のトレース処理を実行する。このよ
うな構成によれば、ターゲットプログラムの検査を簡単
・迅速に行うことができる。
【0059】さらに、上述した第1〜第3の実施例にお
いては、いずれも、各手段をハードウェアで構成した例
を示したが、これに限定されない。すなわち、上記プロ
グラム検査装置を、CPUと、サブCPUと、ROMや
RAM等の内部記憶装置と、FDD(フロッピー・ディ
スク・ドライバ)、HDD(ハード・ディスク・ドライ
バ)、CD−ROMドライバ等の外部記憶装置と、出力
手段と、入力手段とを有するコンピュータによって構成
し、上記履歴情報等検出部24,44、トレースパケッ
ト生成部25,45、オーバーフロー制御部27,4
6、比較部26,49、ポインタ制御部28,48、ト
レースデータ出力部29,50並びにメモリコントロー
ラ47がサブCPUによって構成され、CPU及びサブ
CPUの機能がプログラム検査プログラムとして、RO
M等の半導体メモリや、FD、HDやCD−ROM等の
記憶媒体に記憶されていると構成しても良い。この場
合、上記内部記憶装置、あるいは外部記憶装置がターゲ
ットメモリ部11、ターゲットレジスタ部14、トレー
スバッファ17、トレースパケット記憶部23、トレー
スパケットメモリ43となり、プログラム検査プログラ
ムは、記憶媒体からCPUやサブCPUに読み込まれ、
CPU及びサブCPUの動作を制御する。サブCPU
は、プログラム検査プログラムが起動されると、上記履
歴情報等検出部24,44、トレースパケット生成部2
5,45、オーバーフロー制御部27,46、比較部2
6,49、ポインタ制御部28,48、トレースデータ
出力部29,50並びにメモリコントローラ47として
機能し、プログラム検査プログラムの制御により、上記
した処理を実行するのである。また、上述した第1〜第
3の実施例においては、トレースパケットのビット長を
8ビット又は40ビットとする例を示したが、これに限
定されず、履歴情報やPCのカウント値及びオーバーフ
ローしたことを示すことができる程度のビット長であれ
ば良いことはいうまでもない。
【0060】
【発明の効果】以上説明したように、この発明の構成に
よれば、CPUのターゲットプログラムの実行を中断す
ることなく、要所要所の履歴情報を獲得できる。また、
トレースの中断時間を短縮できると共に、トレースの中
断箇所を特定できる。これにより、プログラムの検査に
必要な履歴情報が得られ、ターゲットプログラムの検査
を簡単・迅速に行うことができる。さらに、アドレスバ
スやデータバス用の端子とは別の端子から履歴情報を出
力するようにしたので、高速のCPUであっても、アド
レスバスやデータバスの信号波形をなまらせることがな
く、履歴情報を獲得することができる。また、トレース
手段をCPUチップの内部に構成することにより、キャ
ッシュ回路を内蔵していても、キャッシュ回路にヒット
したアクセス履歴情報をトレースすることができる。
【図面の簡単な説明】
【図1】この発明の第1の実施例であるプログラム検査
装置の電気的構成を示すブロック図である。
【図2】7種類のトレースパケットのフォーマットを示
す図である。
【図3】ターゲットプログラムの一部に対応したフロー
チャートである。
【図4】同実施例におけるトレース手段の動作を表すフ
ローチャートである。
【図5】同実施例のトレースバッファにおけるトレース
パケットの記憶状態の一例を示す図である。
【図6】この発明の第2の実施例であるプログラム検査
装置の電気的構成を示すブロック図である。
【図7】同実施例におけるトレースパケット記憶部の構
成を示すブロック図である。
【図8】同実施例におけるトレース手段の動作を表すフ
ローチャートである。
【図9】この発明の第3の実施例であるプログラム検査
装置の電気的構成を示すブロック図である。
【図10】同実施例におけるトレース手段の動作を表す
フローチャートである。
【図11】従来のプログラム検査装置の電気的構成例を
示すブロック図である。
【符号の説明】
12,21,41 CPUチップ 15 CPU(中央処理装置) 16,22,42 トレース手段 17 トレースバッファ(第1の記憶手段) 13 外部記憶装置(第2の記憶手段) 23 トレースパケット記憶部(第1の記憶手
段) 24,44 履歴情報等検出部 25,45 トレースパケット生成部 26,49 比較部 27,46 オーバーフロー制御部 28,48 ポインタ制御部 29,50 トレースデータ出力部 43 トレースパケットメモリ(第1の記憶手
段) 47 メモリコントローラ

Claims (17)

    (57)【特許請求の範囲】
  1. 【請求項1】 開発の対象であるシステムを構成する中
    央処理装置が実行すべきプログラムを実行すると共に、
    その際のプログラム実行の履歴に関する履歴情報を獲得
    し、前記履歴情報に基づいて前記プログラムを検査する
    プログラム検査方法において、 前記履歴情報が記憶される第1及び第2の記憶手段を備
    え、 前記プログラムが実行され、前記履歴情報が供給された
    場合、前記第1の記憶手段に前記履歴情報が記憶可能な
    記憶容量がある場合には、前記履歴情報を前記第1の記
    憶手段に一時的に記憶し、前記記憶容量がない場合に
    は、前記第1の記憶手段に記憶された全ての履歴情報を
    読み出して前記第2の記憶手段に記憶した後、前記第1
    の記憶手段に前記履歴情報が記憶不可能であったことを
    示す記憶不可能情報を記憶する第1の処理と、 前記履歴情報が供給されない場合には、前記第1の記憶
    手段に記憶された前記履歴情報及び前記記憶不可能情報
    を読み出し、前記第2の記憶手段に記憶する第2の処理
    とからなることを特徴とするプログラム検査方法。
  2. 【請求項2】 開発の対象であるシステムを構成する中
    央処理装置が実行すべきプログラムを実行すると共に、
    その際のプログラム実行の履歴に関する履歴情報を獲得
    し、前記履歴情報に基づいて前記プログラムを検査する
    プログラム検査方法において、 前記履歴情報が記憶される第1及び第2の記憶手段を備
    え、 前記プログラムが実行され、前記履歴情報が供給された
    場合、前記第1の記憶手段に前記履歴情報が記憶可能な
    第1の記憶容量がある場合には、前記履歴情報を前記第
    1の記憶手段に一時的に記憶し、前記第1の記憶容量が
    ないが、前記第1の記憶手段に前記履歴情報が記憶不可
    能であったことを示す記憶不可能情報が記憶可能な第2
    の記憶容量がある場合には、前記記憶不可能情報を前記
    第1の記憶手段に一時的に記憶し、前記第2の記憶容量
    がない場合には、前記第1の記憶手段に前記第2の記憶
    容量ができるまで待機した後、前記記憶不可能情報を記
    憶する第1の処理と、 前記第1の記憶手段に記憶された前記履歴情報及び前記
    記憶不可能情報を読み出し、前記第2の記憶手段に記憶
    する第2の処理とからなることを特徴とするプログラム
    検査方法。
  3. 【請求項3】 前記第1の記憶手段は、複数個のフリッ
    プフロップが直列接続されたシフトレジスタが複数個直
    列接続されて構成され、前記履歴情報及び前記記憶不可
    能情報が前記第1の記憶手段に記憶可能か否かは、前記
    履歴情報及び前記記憶不可能情報のビット長と、前記第
    1の記憶手段の次に記憶すべき情報の最下位ビットのア
    ドレスを示すポインタとを比較して判断することを特徴
    とする請求項2記載のプログラム検査方法。
  4. 【請求項4】 開発の対象であるシステムを構成する中
    央処理装置が実行すべきプログラムを実行すると共に、
    その際のプログラム実行の履歴に関する履歴情報を獲得
    し、前記履歴情報に基づいて前記プログラムを検査する
    プログラム検査方法において、 前記履歴情報が記憶される第1及び第2の記憶手段を備
    え、 前記プログラムが実行され、前記履歴情報が供給された
    場合、前記第1の記憶手段に前記履歴情報が記憶可能な
    第1の記憶容量がある場合には、前記履歴情報を前記第
    1の記憶手段に一時的に記憶し、前記第1の記憶容量が
    ないが、前記第1の記憶手段に前記履歴情報が記憶不可
    能であったことを示す記憶不可能情報が記憶可能な第2
    の記憶容量がある場合には、前記記憶不可能情報を前記
    第1の記憶手段に一時的に記憶し、前記第2の記憶容量
    がない場合には、前記第1の記憶手段に前記第2の記憶
    容量ができるまで前記履歴情報及び前記記憶不可能情報
    を読み出し、前記第2の記憶手段に記憶した後、前記記
    憶不可能情報を記憶する第1の処理と、 前記履歴情報が供給されない場合には、前記第1の記憶
    手段に記憶された前記履歴情報及び前記記憶不可能情報
    を読み出し、前記第2の記憶手段に記憶する第2の処理
    とからなることを特徴とするプログラム検査方法。
  5. 【請求項5】 前記第1の記憶手段は、半導体メモリに
    より構成され、前記履歴情報及び前記記憶不可能情報が
    前記第1の記憶手段に記憶可能か否かは、前記履歴情報
    及び前記記憶不可能情報のビット長と、前記第1の記憶
    手段の最大アドレスと次に記憶すべき情報の最上位ビッ
    トのアドレスを示す第1のポインタとの差又は前記第1
    の記憶手段の次に読み出すべき情報の最上位ビットのア
    ドレスを示す第2のポインタとを比較して判断すること
    を特徴とする請求項4記載のプログラム検査方法。
  6. 【請求項6】 前記履歴情報は、割込・例外・分岐がそ
    れぞれ発生した時の分岐元のアドレス及び分岐先のアド
    レス、アクセスしたデータの値又はデータが記憶された
    アドレスからなることを特徴とする請求項1乃至5のい
    ずれか1に記載のプログラム検査方法。
  7. 【請求項7】 前記履歴情報及び前記記憶不可能情報に
    代えて、前記履歴情報の種類又は前記記憶不可能情報を
    示すコードと、前記アドレス又はデータの値からなるパ
    ケットを前記第1及び第2の記憶手段に記憶することを
    特徴とする請求項6記載のプログラム検査方法。
  8. 【請求項8】 前記第1の記憶手段は、前記プログラム
    を実行する中央処理装置及び前記第1及び前記第2の処
    理を実行する手段と同一のチップ内に形成されているこ
    とを特徴とする請求項1乃至7のいずれか1に記載のプ
    ログラム検査方法。
  9. 【請求項9】 開発の対象であるシステムを構成する中
    央処理装置が実行すべきプログラムを実行すると共に、
    その際のプログラム実行の履歴に関する履歴情報を獲得
    し、前記履歴情報に基づいて前記プログラムを検査する
    プログラム検査装置において、 前記履歴情報が記憶される第1及び第2の記憶手段と、 前記プログラムが実行され、前記履歴情報が供給された
    場合、前記第1の記憶手段に前記履歴情報が記憶可能な
    記憶容量がある場合には、前記履歴情報を前記第1の記
    憶手段に一時的に記憶し、前記記憶容量がない場合に
    は、前記第1の記憶手段に記憶された全ての履歴情報を
    読み出して前記第2の記憶手段に記憶した後、前記第1
    の記憶手段に前記履歴情報が記憶不可能であったことを
    示す記憶不可能情報を記憶し、前記履歴情報が供給され
    ない場合には、前記第1の記憶手段に記憶された前記履
    歴情報及び前記記憶不可能情報を読み出し、前記第2の
    記憶手段に記憶するトレース手段とからなることを特徴
    とするプログラム検査装置。
  10. 【請求項10】 開発の対象であるシステムを構成する
    中央処理装置が実行すべきプログラムを実行すると共
    に、その際のプログラム実行の履歴に関する履歴情報を
    獲得し、前記履歴情報に基づいて前記プログラムを検査
    するプログラム検査装置において、 前記履歴情報が記憶される第1及び第2の記憶手段と、 前記プログラムが実行され、前記履歴情報が供給された
    場合、前記第1の記憶手段に前記履歴情報が記憶可能な
    第1の記憶容量がある場合には、前記履歴情報を前記第
    1の記憶手段に一時的に記憶し、前記第1の記憶容量が
    ないが、前記第1の記憶手段に前記履歴情報が記憶不可
    能であったことを示す記憶不可能情報が記憶可能な第2
    の記憶容量がある場合には、前記記憶不可能情報を前記
    第1の記憶手段に一時的に記憶し、前記第2の記憶容量
    がない場合には、前記第1の記憶手段に前記第2の記憶
    容量ができるまで待機した後、前記記憶不可能情報を記
    憶し、前記第1の記憶手段に記憶された前記履歴情報及
    び前記記憶不可能情報を読み出し、前記第2の記憶手段
    に記憶するトレース手段とからなることを特徴とするプ
    ログラム検査装置。
  11. 【請求項11】 前記第1の記憶手段は、複数個のフリ
    ップフロップが直列接続されたシフトレジスタが複数個
    直列接続されて構成され、前記トレース手段は、前記履
    歴情報及び前記記憶不可能情報が前記第1の記憶手段に
    記憶可能か否かを、前記履歴情報及び前記記憶不可能情
    報のビット長と、前記第1の記憶手段の次に記憶すべき
    情報の最下位ビットのアドレスを示すポインタとを比較
    して判断することを特徴とする請求項10記載のプログ
    ラム検査装置。
  12. 【請求項12】 開発の対象であるシステムを構成する
    中央処理装置が実行すべきプログラムを実行すると共
    に、その際のプログラム実行の履歴に関する履歴情報を
    獲得し、前記履歴情報に基づいて前記プログラムを検査
    するプログラム検査装置において、 前記履歴情報が記憶される第1及び第2の記憶手段と、 前記プログラムが実行され、前記履歴情報が供給された
    場合、前記第1の記憶手段に前記履歴情報が記憶可能な
    第1の記憶容量がある場合には、前記履歴情報を前記第
    1の記憶手段に一時的に記憶し、前記第1の記憶容量が
    ないが、前記第1の記憶手段に前記履歴情報が記憶不可
    能であったことを示す記憶不可能情報が記憶可能な第2
    の記憶容量がある場合には、前記記憶不可能情報を前記
    第1の記憶手段に一時的に記憶し、前記第2の記憶容量
    がない場合には、前記第1の記憶手段に前記第2の記憶
    容量ができるまで前記履歴情報及び前記記憶不可能情報
    を読み出し、前記第2の記憶手段に記憶した後、前記記
    憶不可能情報を記憶し、前記履歴情報が供給されない場
    合には、前記第1の記憶手段に記憶された前記履歴情報
    及び前記記憶不可能情報を読み出し、前記第2の記憶手
    段に記憶するトレース手段とからなることを特徴とする
    プログラム検査装置。
  13. 【請求項13】 前記第1の記憶手段は、半導体メモリ
    により構成され、前記トレース手段は、前記履歴情報及
    び前記記憶不可能情報が前記第1の記憶手段に記憶可能
    か否かを、前記履歴情報及び前記記憶不可能情報のビッ
    ト長と、前記第1の記憶手段の最大アドレスと次に記憶
    すべき情報の最上位ビットのアドレスを示す第1のポイ
    ンタとの差又は前記第1の記憶手段の次に読み出すべき
    情報の最上位ビットのアドレスを示す第2のポインタと
    を比較して判断することを特徴とする請求項12記載の
    プログラム検査装置。
  14. 【請求項14】 前記履歴情報は、割込・例外・分岐が
    それぞれ発生した時の分岐元のアドレス及び分岐先のア
    ドレス、アクセスしたデータの値又はデータが記憶され
    たアドレスからなることを特徴とする請求項9乃至13
    のいずれか1に記載のプログラム検査装置。
  15. 【請求項15】 前記履歴情報及び前記記憶不可能情報
    に代えて、前記履歴情報の種類又は前記記憶不可能情報
    を示すコードと、前記アドレス又はデータの値からなる
    パケットを前記第1及び第2の記憶手段に記憶すること
    を特徴とする請求項14記載のプログラム検査装置。
  16. 【請求項16】 前記第1の記憶手段は、前記プログラ
    ムを実行する中央処理装置及び前記トレース手段と同一
    のチップ内に形成されていることを特徴とする請求項9
    乃至15のいずれか1に記載のプログラム検査装置。
  17. 【請求項17】 コンピュータに請求項1乃至16のい
    ずれか1に記載の機能を実現させるためのプログラム検
    査プログラムを記録したコンピュータ読取可能な記録媒
    体。
JP10118969A 1998-04-28 1998-04-28 プログラム検査方法、プログラム検査装置及びプログラム検査プログラムを記録した記録媒体 Expired - Fee Related JP3116901B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP10118969A JP3116901B2 (ja) 1998-04-28 1998-04-28 プログラム検査方法、プログラム検査装置及びプログラム検査プログラムを記録した記録媒体
US09/300,685 US6321290B1 (en) 1998-04-28 1999-04-27 Program checking method, program checking apparatus, and computer-readable recording medium for recording target program checking program capable of reducing tracing interrupt time
DE19919388A DE19919388B4 (de) 1998-04-28 1999-04-28 Programmprüfverfahren, Programmprüfvorrichtung und computerlesbares Aufzeichnungsmedium zum Aufzeichnen eines Zielprogramm-Prüfprogramms, das die Ablaufverfolgungsunterbrechungszeit reduzieren kann

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP10118969A JP3116901B2 (ja) 1998-04-28 1998-04-28 プログラム検査方法、プログラム検査装置及びプログラム検査プログラムを記録した記録媒体

Publications (2)

Publication Number Publication Date
JPH11312098A JPH11312098A (ja) 1999-11-09
JP3116901B2 true JP3116901B2 (ja) 2000-12-11

Family

ID=14749773

Family Applications (1)

Application Number Title Priority Date Filing Date
JP10118969A Expired - Fee Related JP3116901B2 (ja) 1998-04-28 1998-04-28 プログラム検査方法、プログラム検査装置及びプログラム検査プログラムを記録した記録媒体

Country Status (3)

Country Link
US (1) US6321290B1 (ja)
JP (1) JP3116901B2 (ja)
DE (1) DE19919388B4 (ja)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7099817B2 (en) * 2002-11-22 2006-08-29 Texas Instruments Incorporated Stalling CPU pipeline to prevent corruption in trace while maintaining coherency with asynchronous events
US20040153635A1 (en) * 2002-12-30 2004-08-05 Kaushik Shivnandan D. Privileged-based qualification of branch trace store data
US7146473B1 (en) * 2003-11-14 2006-12-05 Sun Microsystems, Inc. Mechanism for ring buffering in an arbitrary-action tracing framework
US7317992B2 (en) 2004-06-16 2008-01-08 General Electric Company Method and apparatus for inspecting dovetail edgebreak contour
JP2006120071A (ja) * 2004-10-25 2006-05-11 Matsushita Electric Ind Co Ltd プロセッサおよび開発支援装置
US7610320B2 (en) * 2005-10-14 2009-10-27 Symantec Corporation Technique for remapping data in a storage management system
US20090037886A1 (en) * 2007-07-30 2009-02-05 Mips Technologies, Inc. Apparatus and method for evaluating a free-running trace stream
US8001428B2 (en) * 2007-10-29 2011-08-16 Arm Limited Packing trace protocols within trace streams
JP5376509B2 (ja) 2009-03-16 2013-12-25 スパンション エルエルシー 実行履歴トレース方法
US8935574B2 (en) 2011-12-16 2015-01-13 Advanced Micro Devices, Inc. Correlating traces in a computing system
US8832500B2 (en) 2012-08-10 2014-09-09 Advanced Micro Devices, Inc. Multiple clock domain tracing
US8959398B2 (en) 2012-08-16 2015-02-17 Advanced Micro Devices, Inc. Multiple clock domain debug capability
US9983986B2 (en) * 2015-09-28 2018-05-29 International Business Machines Corporation Testing code response to injected processing errors

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS61168435A (ja) 1985-01-18 1986-07-30 Fujitsu Ltd ウエ−ハの研磨方法
JPS6359640A (ja) 1986-08-30 1988-03-15 Nec Corp ログ情報フアイル制御方式
JPH033043A (ja) 1989-05-31 1991-01-09 Nec Eng Ltd 半導体装置
JPH03237544A (ja) 1990-02-14 1991-10-23 Nec Corp 通信制御処理装置
JPH05181713A (ja) 1991-12-29 1993-07-23 Nec Corp ヒストリ情報採取方式
JPH06324916A (ja) 1993-05-10 1994-11-25 Hokuriku Nippon Denki Software Kk 障害情報ロギング方式
JP3290280B2 (ja) * 1994-01-13 2002-06-10 株式会社東芝 情報処理装置
US6006033A (en) * 1994-08-15 1999-12-21 International Business Machines Corporation Method and system for reordering the instructions of a computer program to optimize its execution
US5680542A (en) * 1995-06-07 1997-10-21 Motorola, Inc. Method and apparatus for synchronizing data in a host memory with data in target MCU memory
JPH09259015A (ja) 1996-03-21 1997-10-03 Nec Ibaraki Ltd ログデータ格納装置
US6148381A (en) * 1997-04-08 2000-11-14 Advanced Micro Devices, Inc. Single-port trace buffer architecture with overflow reduction
US6047353A (en) * 1997-05-07 2000-04-04 Emc Corporation Method and apparatus for monitoring of host activities relating to an attached storage device
US6182210B1 (en) * 1997-12-16 2001-01-30 Intel Corporation Processor having multiple program counters and trace buffers outside an execution pipeline
US6145123A (en) * 1998-07-01 2000-11-07 Advanced Micro Devices, Inc. Trace on/off with breakpoint register
US6173395B1 (en) * 1998-08-17 2001-01-09 Advanced Micro Devices, Inc. Mechanism to determine actual code execution flow in a computer
US6052700A (en) * 1998-09-17 2000-04-18 Bull Hn Information Systems Inc. Calendar clock caching in a multiprocessor data processing system

Also Published As

Publication number Publication date
DE19919388B4 (de) 2004-02-12
JPH11312098A (ja) 1999-11-09
US6321290B1 (en) 2001-11-20
DE19919388A1 (de) 1999-11-11

Similar Documents

Publication Publication Date Title
JP3116901B2 (ja) プログラム検査方法、プログラム検査装置及びプログラム検査プログラムを記録した記録媒体
US10877766B2 (en) Embedded scheduling of hardware resources for hardware acceleration
US6922795B2 (en) Microcomputer, electronic equipment, and debugging system
JP3542463B2 (ja) 集積回路装置、その動作制御方法
KR100901167B1 (ko) 시험 장치, 프로그램을 기록한 기록 매체 및 시험 방법
US20110289357A1 (en) Information processing device
EP1172730A2 (en) One-chip system large-scale integrated circuit including processor circuit and its pheripheral circuits
KR20010098929A (ko) 외형 검사 장치 및 외형 검사 방법
EP0530816A2 (en) Microprocessor with cache memory and trace analyzer therefor
JP2006092029A (ja) マイクロコンピュータ及びトレース制御方法
JP2001005676A (ja) 割り込み処理装置
JP2003263337A (ja) デバック機能内蔵型マイクロコンピュータ
JP2006318412A (ja) 半導体装置
JPH11232211A (ja) Dma制御装置及びdma制御方法
JP2005222446A (ja) オンボードデバッグ装置および半導体回路装置
JP2003263339A (ja) デバック機能内蔵型マイクロコンピュータ
JP2016091277A (ja) トレースシステムおよびicチップ
JP2005165825A (ja) トレース情報記録装置
JP4305389B2 (ja) 時間追跡可能メッセージを送信することによるマイクロプロセッサプログラムの監視
JPH1040130A (ja) マイクロコンピュータ
JP5312918B2 (ja) タイムスタンプ取得回路及びタイムスタンプ取得方法
JP2001084161A (ja) データ処理装置
JP5467172B1 (ja) 情報処理システム、および情報処理方法
JPH0652013A (ja) トレース回路
TW201610665A (zh) 系統單晶片及其驗證方法

Legal Events

Date Code Title Description
FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20081006

Year of fee payment: 8

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20091006

Year of fee payment: 9

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20091006

Year of fee payment: 9

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20101006

Year of fee payment: 10

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20101006

Year of fee payment: 10

S533 Written request for registration of change of name

Free format text: JAPANESE INTERMEDIATE CODE: R313533

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20101006

Year of fee payment: 10

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20111006

Year of fee payment: 11

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20121006

Year of fee payment: 12

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20121006

Year of fee payment: 12

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20131006

Year of fee payment: 13

LAPS Cancellation because of no payment of annual fees