JP2000194581A - 情報処理装置 - Google Patents

情報処理装置

Info

Publication number
JP2000194581A
JP2000194581A JP10372851A JP37285198A JP2000194581A JP 2000194581 A JP2000194581 A JP 2000194581A JP 10372851 A JP10372851 A JP 10372851A JP 37285198 A JP37285198 A JP 37285198A JP 2000194581 A JP2000194581 A JP 2000194581A
Authority
JP
Japan
Prior art keywords
data
branch
output
information
address
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP10372851A
Other languages
English (en)
Other versions
JP3583937B2 (ja
Inventor
Kotaro Tagawa
耕太郎 田川
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.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP37285198A priority Critical patent/JP3583937B2/ja
Priority to US09/422,864 priority patent/US6594782B1/en
Publication of JP2000194581A publication Critical patent/JP2000194581A/ja
Application granted granted Critical
Publication of JP3583937B2 publication Critical patent/JP3583937B2/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
    • G06F11/364Software debugging by tracing the execution of the program tracing values on a bus

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)
  • Test And Diagnosis Of Digital Computers (AREA)

Abstract

(57)【要約】 【課題】 トレースデータを効率的に出力する。 【解決手段】 競合検出手段1は、分岐情報の入力とデ
ータアクセス情報の入力とを監視し、出力データ選択手
段2は、分岐情報の入力とデータアクセス情報の入力と
が競合するという通知を競合検出手段1から受けた場
合、分岐情報を出力した後に、遅延手段3で遅延させら
れたデータアクセス情報を出力する。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は情報処理装置に関
し、特に、組込み用途のマイクロコントローラ(以下、
マイコンと称す)におけるインサーキットエミュレータ
(以下、ICEと称す)とのインタフェース部に適用し
て好適なものである。
【0002】
【従来の技術】CPUの動作をトレースする場合、その
実行履歴を示すトレースデータを外部に出力する必要が
ある。
【0003】一方、CPUの動作を高速化するために、
RISCマイコンなどのように命令バスとデータバスと
を別個に設けたり、バス幅の多ビット化を図ったりする
ことが行われている。
【0004】これらの技術に対応してトレースデータを
出力するためのバス幅を拡大することは、1パッケージ
当たりのピン数が増大し、実現が困難である。
【0005】このため、マイコンで扱うアドレスやデー
タのビット幅が8ビットや16ビット程度で低速で動作
する場合には、比較的容易に全てのトレースデータを外
部に出力することが可能であるが、マイコンで扱うアド
レスやデータのビット幅が32ビットや64ビット程度
で100MHZ以上の高速で動作する場合には、全ての
トレースデータを外部に出力することが困難になってき
ている。
【0006】このような事態に対処するため、従来のト
レース装置では、以下に示すような技術が用いられてい
る。
【0007】図15は、従来のトレース装置の構成を示
すブロック図である。
【0008】図15において、201はマイコン、20
2はCPU、203はバスコントローラ、204はIC
E205とのインタフェース回路であるトレースモジュ
ール、205はマイコン201の実行履歴であるトレー
スデータを受信するICE、206はトレースデータを
格納するトレースメモリを示す。
【0009】また、211はCPU202が命令フェッ
チに使用する命令アドレスバス、212はCPU202
がデータアクセスに使用するデータアドレスバス、21
3はCPU202がデータアクセスに使用するデータバ
ス、214はマイコン201の外部バス、215はIC
E205に対してCPU202の命令実行状態を出力す
るためのトレース用バス、216はトレース用バス21
5から出力されるデータのステータスを示す信号を出力
するためのステータス出力バス、217はトレース用バ
ス215からのトレースデータの出力が間に合わなくな
った時に、CPU202を止めるためのウエイト信号を
出力するため信号線を示す。
【0010】ここで、命令アドレスバス211、データ
アドレスバス212、データデータバス213及びトレ
ース用バス215のビット幅はいずれも32ビットであ
るものとすると、トレースモジュール204は、命令ア
ドレスバス211から出力される命令アドレスのみをト
レース用バス215を介してICE205に出力し、命
令アドレスについてだけ、各クロックごとにトレースデ
ータが出力されるようにする。この場合、データアドレ
スバス212及びデータデータバス213から出力され
るデータアクセス情報は、ICE205に出力されな
い。
【0011】一方、データアクセス情報も命令アドレス
と同時にトレースしたいという要求がある場合は、トレ
ースモジュール204は、データアクセス情報及び命令
アドレスをトレース用バス215に出力する。ここで、
命令アクセスとデータアクセスが同一タイミングで発生
した場合、トレース用バス215には、これらの両方の
情報を同時に乗せるためのバス幅の余裕がないため、ト
レースモジュール204は、これらのトレースデータの
出力が終わるまで、CPU202にウエイトを掛け、ト
レースデータの消失を防止する。
【0012】図16は、従来のトレース装置の別の構成
を示すブロック図である。
【0013】図16において、221はマイコン、22
2はCPU、223はバスコントローラ、224はIC
E225とのインタフェース回路としてのデバッグサポ
ートユニット(以下、DSUと称す)、225はIC
E、226はトレースデータを格納するトレースメモリ
を示す。
【0014】また、231はCPU222が命令フェッ
チに使用する命令アドレスバス、232はCPU222
がデータアクセスに使用するデータアドレスバス、23
3はCPU222がデータアクセスに使用するデータバ
ス、234はマイコン221の外部バス、235はIC
E225に対してCPU222の命令実行状態を出力す
るためのトレース用バス、236はトレース用バス23
5から出力されるデータのステータスとマイコン222
の内部ステータスを示す信号を出力するステータス出力
バス、237はCPU222が命令実行したことと、分
岐命令を実行したことをDSU224に伝える信号線を
示す。
【0015】図17は、図16のDSU224の構成を
示すブロック図である。
【0016】図17において、241は命令アドレスバ
ス231から出力される命令アドレスを保持するための
バッファ、242はデータアドレスバス232から出力
されるデータアドレスを保持するためのバッファ、24
3はデータバス233から出力されるデータを保持する
ためのバッファ、244はバッファ241〜243の中
からトレース用バス235に出力するデータを選択する
ためのスイッチ、245はスイッチ244で選択された
データを保持するためのバッファ、246はバッファ2
45に保持されているデータをトレース用バス235に
シリアルで出力するためのパラレル−シリアル変換器、
247はバッファ241〜243の状態とパラレル−シ
リアル変換器246の状態から次に出力するデータを決
定してスイッチ244を制御する制御回路、248は特
定アドレスへのデータライトを検出するためのアドレス
デコーダを示す。
【0017】ここで、DSU224は、トレース用バス
235から出力されるデータの種類によって出力に必要
なクロック数が固定されており、出力中のデータが途中
で出力を打ち切られることはない。
【0018】また、データアクセスのトレースを行う場
合には、トレース用バス235のバス幅が足りないた
め、ユーザプログラムで指定されたバッファ243の割
り当てアドレスへのデータライトの情報のみをアドレス
デコーダ248で選択し、トレース用バス235に出力
する。
【0019】さらに、DSU224は、CPU222に
よる1命令の実行と分岐命令の実行を示す情報をCPU
222から受け取る。そして、分岐先アドレスをトレー
ス用バス235から出力することに加え、実行命令数を
ICE225でカウントするためのステータスをステー
タス出力バス236から常に出力する。ICE225
は、分岐先アドレスと実行命令数とをDSU224から
受け取ると、これらの情報を用いることにより、分岐が
発生した時の分岐元の命令アドレスと分岐先の命令アド
レスとを算出し、ユーザプログラムの実行履歴を復元す
る。
【0020】
【発明が解決しようとする課題】しかしながら、図15
のトレース装置では、命令実行のみがトレースされる場
合は、CPU202にウエイトが掛からないが、命令実
行だけでなくデータアクセスも同時にトレースする場合
は、CPU202にウエイトが掛かることがある。この
ため、トレースをしない時とトレースをする時とで、C
PU202の動作速度が異なり、例えば、マイコン20
1を用いてモータを制御したり、シリアル通信を行った
りすると、トレースをしない場合はCPU202が動作
するが、トレースをする場合はCPU202の処理速度
が間に合わなくなるという問題があった。
【0021】また、図16のトレース装置では、マイコ
ン221をリアルタイムで動作させた場合、1回の分岐
情報出力に必要なクロック数以下の間隔で分岐が発生し
たり、ユーザがデバッグのためにアドレスデコーダ24
8で定めているアドレスへのデータライトを短時間に複
数回行ったりすると、これらの情報がバッファ241〜
243からあふれ出す。このため、バッファ241〜2
43に格納できない分の情報がICE225側に出力で
きなくなり、命令実行のトレースが行えなくなるという
問題があった。
【0022】また、トレースデータがトレース用バス2
35からシリアルで出力されるため、データアクセスの
トレースを行うにはトレース用バス235のバンド幅が
足りず、ユーザプログラムによるバッファ243の割り
当てアドレスへのデータライトの情報だけしか出力でき
ないという問題があった。
【0023】また、ステータス出力バス236から出力
されるステータス情報は、CPU202に接続されてい
る信号線237の情報に同期して生成される。このた
め、ステータス出力バス236から出力される実行命令
数は、トレース用バス235から出力される分岐先アド
レスと非同期で出力され、これらの情報から分岐元の命
令アドレスと分岐先の命令アドレスとをICE225側
で算出する場合の処理が複雑になるという問題があっ
た。
【0024】また、組み込み用途のマイコン221で
は、応用製品の開発中であっても、最終的なプログラム
形態でデバッグすることが要求される。このため、図1
6のDSU224では、データ監視用のデータライトの
命令コードが最終的なユーザプログラム中に残ってしま
うという問題があった。
【0025】そこで、本発明の目的は、トレースデータ
を効率的に出力することが可能な情報処理装置を提供す
ることである。
【0026】
【課題を解決するための手段】上述した課題を解決する
ために、本発明によれば、データアクセス情報の出力系
列の中に分岐情報を挿入して出力するようにしている。
【0027】このことにより、データアクセス情報を出
力するための出力バスと分岐情報を出力するための出力
バスとを共通にすることが可能となり、データアクセス
情報を出力するための出力バスと分岐情報を出力するた
めの出力バスとを個別に設ける必要がなくなることか
ら、トレースを行う場合の装置の規模を低減させること
が可能となる。
【0028】また、本発明の一態様によれば、分岐情報
の出力とデータアクセス情報の出力との競合が検出され
た場合、分岐情報の出力後に、データアクセス情報を出
力するようにしている。
【0029】このことにより、分岐情報をデータアクセ
ス情報の出力系列の中に挿入した場合においても、分岐
情報とデータアクセス情報との時間関係の整合性を保つ
ことが可能となり、トレース解析を効率よく行うことが
可能となる。
【0030】また、本発明の一態様によれば、分岐の発
生によりキャンセルされた命令の出力を行わないように
している。
【0031】このことにより、分岐情報の出力とデータ
アクセス情報の出力とが競合した場合においても、その
競合により溢れた情報を命令のキャンセルされた位置で
吸収することができ、溢れた情報を保持するためのバッ
ファの負担を軽減することが可能となる。
【0032】また、本発明の一態様によれば、分岐情報
として、分岐の発生によるアドレス変位と分岐の発生か
ら次の分岐の発生までの命令実行数とを算出し、前記ア
ドレス変位及び前記命令実行数をその有効桁数分だけ出
力するようにしている。
【0033】このことにより、分岐元アドレスと分岐先
アドレスとがあまり離れていないにもかかわらず、プロ
グラムがアドレス空間の最後の方に配置されているため
に、分岐元アドレス及び分岐先アドレスの桁数が大きく
なるような場合には、これらの情報を圧縮することが可
能となり、これらの情報の出力を高速に行うことが可能
となる。
【0034】また、本発明の一態様によれば、有効桁数
を分岐情報の中に含めるようにしている。
【0035】このことにより、トレースデータの上位ビ
ットが0のみであった部分のデータ出力を行わなくて
も、分岐元アドレスと分岐先アドレスとを復元すること
が可能となることから、トレースデータの上位ビットが
0のみであった部分のデータ出力を行わなくて済み、ト
レースデータの圧縮が可能となる。
【0036】また、本発明の一態様によれば、分岐によ
る相対アドレスの有効桁数と分岐による絶対アドレスの
桁数との大小関係に基づいて、相対アドレスと絶対アド
レスとを切り替えて出力するようにしている。
【0037】このことにより、分岐元アドレスと分岐先
アドレスとが離れているために、相対アドレスの有効桁
数が大きくなった場合には、分岐情報として相対アドレ
スを出力するのではなく、絶対アドレスをそのまま分岐
情報として出力することが可能となり、ICEでのトレ
ースデータの解析を効率よく行うことが可能となる。
【0038】また、本発明の一態様によれば、データア
クセス情報として、データアドレスとアクセスデータと
をその有効桁数分だけ出力するようにしている。
【0039】このことにより、データがアドレス空間の
最初の方に格納されている場合などでは、冗長な部分を
効率よく切り捨てて出力することが可能となり、これら
の情報の出力を高速に行うことが可能となる。
【0040】また、本発明の一態様によれば、所定の期
間に最低1回は絶対アドレスを出力するようにしてい
る。
【0041】このことにより、絶対アドレスが出力され
た時点から命令実行による分岐アドレスのチェーンを辿
ることが可能となり、相対アドレスを出力している途中
でデータロストが発生し、アドレスのチェーンが途中で
切れた場合においても、絶対アドレスが出力された時点
からトレースデータの解析を行うことが可能となるとと
もに、相対アドレスから絶対アドレスを復元する際の遡
る回数を減らして、トレースリストの作成を容易にする
ことが可能となる。
【0042】また、本発明の一態様によれば、出力タイ
ミング調整用バッファから読み出されたデータをパラレ
ルシリアル変換しながら出力するとともに、そのデータ
のデコード結果をトレースバスのステータス信号として
同時に出力するようにしている。
【0043】このことにより、トレースデータと、トレ
ースデータのステータスを示す信号とを同期をとりなが
ら出力することが可能となり、トレースデータの解析を
効率的に行うことが可能となる。
【0044】また、本発明の一態様によれば、トレース
データをパラレルシリアル変換して出力する第1の出力
バスの他に、トレースデータをパラレルのまま出力する
第2の出力バスを設け、トレースデータを第2の出力バ
スから出力する場合には、分岐情報として絶対アドレス
のみを出力するようにしている。
【0045】このことにより、トレースデータの圧縮を
行わない場合でも、トレースデータの消失を伴うことな
く、トレースデータを出力することが可能となる。
【0046】また、本発明の一態様によれば、第2の出
力バスから分岐情報及びデータアクセス情報を出力する
場合、第1の出力バスから分岐情報及びデータアクセス
情報以外のシステム情報を出力するようにしている。
【0047】このことにより、トレースデータの消失を
伴うことなくトレースデータを出力することが可能とな
るとともに、第1の出力バスをデバイスのステータス出
力などに有効に利用することが可能となる。
【0048】また、本発明の一態様によれば、出力タイ
ミングを調整するバッファがフルになった場合、データ
消失ステータスをバッファに書き込んでから、バッファ
へのデータの書き込みを中断するようにしている。
【0049】このことにより、データロストが起こった
場合に、データロストが起こるまでに既にバッファに書
き込まれているデータを保護することが可能となるとと
もに、そのデータロストが起こった位置を確認すること
が可能となり、データトレースを効率よく行うことが可
能となる。
【0050】また、本発明の一態様によれば、データロ
スト後のバッファへのデータの書き込みを分岐発生時か
ら再開し、その時の分岐情報として絶対アドレスをバッ
ファに書き込むようにしている。
【0051】このことにより、データの書き込みの再開
の開始時点からデータのチェーンを辿ることが可能とな
り、データの書き込みの再開時に無駄なデータが書き込
まれることを防止して、データトレースを効率的に行う
ことが可能となる。
【0052】また、本発明の一態様によれば、バッファ
をトレースメモリとして使用するようにしている。
【0053】このことにより、バッファの容量分だけ
は、データ消失させないでトレースデータを保持するこ
とが可能となり、データ消失がないトレースデータのデ
バッグを保証することが可能となる。
【0054】
【発明の実施の形態】以下、本発明の一実施例に係わる
情報処理装置について図面を参照しながら説明する。
【0055】図1は、本発明の第1実施例に係わる情報
処理装置の構成を示すブロック図である。
【0056】図1において、競合検出手段1は、分岐情
報の入力とデータアクセス情報の入力とを監視し、分岐
情報の入力とデータアクセス情報の入力とが競合した場
合、そのことを出力データ選択手段2に伝える。
【0057】出力データ選択手段2には、分岐情報及び
データアクセス情報が入力されるとともに、遅延手段3
により遅延させられたデータアクセス情報が入力され
る。そして、競合検出手段1からの指令に基づいて、分
岐情報及びデータアクセス情報の出力を切り替えること
により、分岐情報及びデータアクセス情報を同一のバス
ライン上に出力する。
【0058】ここで、出力データ選択手段2は、分岐情
報の入力とデータアクセス情報の入力とが競合するとい
う通知を競合検出手段1から受けた場合、分岐情報を出
力した後に、遅延手段3で遅延させられたデータアクセ
ス情報を出力する。
【0059】このことにより、分岐情報とデータアクセ
ス情報との時間関係の整合性を保ちつつ、分岐情報及び
データアクセス情報を単一のバスライン上に出力するこ
とが可能となり、トレースデータを出力するために必要
なビット幅を低減させて、パケージのピン数を削減する
ことが可能となる。
【0060】また、出力データ選択手段2は、分岐の発
生により分岐命令の直後の命令がキャンセルされる場
合、その命令の出力を行わないようにすることもでき
る。
【0061】このことにより、データの出力系列の中に
隙間を生成することが可能となり、分岐情報の出力とデ
ータアクセス情報の出力との競合により溢れた情報を、
その隙間で吸収することが可能となることから、溢れた
情報を保持するためのバッファの負担を軽減することが
可能となる。
【0062】図2は、本発明の第2実施例に係わる情報
処理装置の構成を示すブロック図である。
【0063】図2において、アドレス変位算出手段11
は、分岐によるアドレス変位を算出する。なお、アドレ
ス変位は、(分岐先アドレス−分岐元アドレス)の計算
を行うことにより、算出できる。命令実行数算出手段1
2は、分岐の発生から次の分岐の発生までの命令実行数
を算出する。有効桁数算出手段13は、アドレス変位の
有効桁数及び命令実行数の有効桁数を算出し、その算出
結果をデータ出力手段14に出力する。データ出力手段
14は、アドレス変位算出手段11から送られたアドレ
ス変位から有効桁の部分のみを取り出すとともに、命令
実行数算出手段12から送られた実行命令数から有効桁
の部分のみを取り出す。そして、分岐情報として、アド
レス変位及び命令実行数を有効桁数分だけ出力する。
【0064】ここで、分岐情報として命令アドレスが入
力された場合に、実行された命令をトレースするために
必要な情報は、分岐が発生した場合の分岐元の命令アド
レス及び分岐先の命令アドレスである。分岐元の命令ア
ドレスは、分岐が発生して次の分岐が発生するまでの間
に行われた実行命令数により求めることができる。ま
た、分岐先の命令アドレスは、分岐元の命令アドレスか
ら分岐先の命令アドレスへのアドレス変位により求める
ことができる。
【0065】従って、アドレス変位及び実行命令数を求
め、これらのデータを分岐情報として出力することによ
り、実行された命令をトレースすることが可能となる。
なお、プログラムの開始も分岐とみなす。
【0066】図3は、図2のアドレス変位及び実行命令
数の算出方法を示す図である。
【0067】図3において、分岐元アドレス“100”
の位置で分岐が発生し、分岐先アドレス“200”の位
置にジャンプして命令を実行し、分岐元アドレス“22
0”の位置で再び分岐が発生し、分岐先アドレス“30
0”の位置にジャンプしたものとする。この場合、分岐
元アドレス“100”から分岐先アドレス“200”へ
のアドレス変位=100、最初の分岐発生から次の分岐
発生までの実行命令数=20、分岐元アドレス“22
0”から分岐先アドレス“300”へのアドレス変位=
80である。従って、アドレス変位及び実行命令数を用
いることにより、分岐元アドレス及び分岐先アドレスを
算出することが可能となる。
【0068】ここで、アドレス変位及び命令実行数を算
出するのは、分岐元の命令アドレス及び分岐元の命令ア
ドレスから冗長な部分を取り除くためである。例えば、
通常のプログラムでは、アドレス変位の有効桁数が10
ビット以下のループが組まれることが多い。この場合、
例えば、ビット幅が32ビットの命令アドレスをそのま
ま出力すると、その出力データには冗長な部分が多く含
まれ、多くのビット数が無駄になるため、トレース用バ
スの利用効率が悪くなる。
【0069】そこで、分岐情報としてアドレス変位及び
命令実行数を出力することにより、トレース用バスの利
用効率を高める。
【0070】図4は、図2の情報処理装置の出力データ
の一例を示す図である。
【0071】図4において、アドレス空間のアドレス
“0”〜“10”の間にループが組まれ、アドレス“1
99990”〜“200000”の間にループが組まれ
ているものとする。この場合、いずれのループにおいて
も、アドレスの差分は10であるが、アドレス“0”〜
“10”の位置のループの実行結果を絶対アドレスで送
ると、アドレス幅が2桁分(10進数の場合)で済む。
これに対し、アドレス“199990”〜“20000
0”の位置のループの実行結果を絶対アドレスで送る
と、アドレス幅が6桁分(10進数の場合)必要とな
る。
【0072】すなわち、ループがアドレス空間の後ろの
方に置かれると、分岐元アドレスと分岐先アドレスとの
間に冗長な部分が増加し、これらのデータをそのまま出
力すると、トレース用バスの利用効率が悪くなる。特
に、ループの繰り返し回数によっては、このような冗長
なデータが何回も出力され、効率が悪い。
【0073】そこで、アドレス“199990”〜“2
00000”の位置のループについて、分岐元から分岐
先へのアドレス変位()及び各分岐間の実行命令数
()を算出する。そして、分岐先アドレスと分岐元ア
ドレスとをそのまま出力するのではなく、それらのアド
レスを復元するための必要最小限の情報、すなわち、ア
ドレス変位及び実行命令数を出力するとともに、アドレ
ス変位及び実行命令数が下から何ビット有効かを示すタ
グ情報を出力するようにする。
【0074】このことにより、アドレス“19999
0”〜“200000”の位置のループの実行結果を出
力するために必要なデータ幅が2桁分(10進数の場
合、符号を除く)で済むようになり、トレース用バスを
効率的に利用することが可能となる。
【0075】図5は、本発明の第3実施例に係わる情報
処理装置の構成を示すブロック図である。
【0076】図5において、21はCPU、22はDS
U、23は各分岐間に実行した命令数を求める実行命令
数カウンタ、24はCPU21が出力した命令アドレス
の差分から分岐発生を検出する分岐検出部、25は命令
アドレスの差分を求める減算器、26は分岐発生時に命
令実行数カウンタ23及び分岐検出部24の出力データ
からトレース出力に必要なデータを生成するエンコー
ダ、27は命令実行数カウンタ23及び分岐検出部24
の出力データの有効桁数を算出するタグ生成部、28は
データアドレスバス42のデータのタイミングを取るバ
ッファ、29はデータバス43のデータのタイミングを
取るバッファ、30はバッファ28、29に保持されて
いるデータアクセス情報からトレースデータを生成する
エンコーダ、31はデータアクセス情報を遅延させるバ
ッファ、32はデータアクセス情報の有効桁数を算出す
るタグ生成部、33は制御回路34からの指示に基づい
て、エンコーダ26から出力される分岐情報とエンコー
ダ30から出力されるデータアクセス情報との出力の切
り替えを行うマルチプレクサ、34は分岐発生とデータ
アクセスの状況からトレース用バス53に出力するデー
タをマルチプレクサ33に指示する制御部、35は分岐
発生とデータアクセスの競合を検出する競合検出部、3
6は不定期に発生するトレースデータのタイミング調整
を行うFIFOを含むパラレル−シリアル変換器、37
はパラレル−シリアル変換器36から出力されるトレー
スデータの種類を示すステータス信号を出力するエンコ
ーダ、38はICE、39はICE38内のトレースメ
モリである。
【0077】また、41はCPU21が命令フェッチに
使用する命令アドレスバス、42はCPU21がデータ
アクセスに使用するデータアドレスバス、43はCPU
21がデータアクセスに使用するデータバス、44は実
行命令数をエンコーダ26に出力する信号線、45はア
ドレス変位をエンコーダ26に出力する信号線、46は
分岐発生をエンコーダ26及び制御部34に伝えるため
の信号線、47はエンコーダ26が生成した分岐情報を
マルチプレクサ33に出力する信号線、48はエンコー
ダ30が生成したデータアクセス情報をマルチプレクサ
33に出力する信号線、49はデータアクセスの発生を
制御部34に伝えるための信号線、50はマルチプレク
サ33の切り替え指示を出力するための信号線、51は
FIFOに空きエントリがあるかどうかを伝えるための
信号線、52は、マルチプレクサ33からのトレースデ
ータを出力する信号線、53はトレースデータをICE
38へ出力するためのトレース用バス、54はトレース
用バス53に出力中のデータのステータスをICE38
へ伝えるためのステータス出力用バスである。
【0078】以下、図5のDSU22の動作について説
明する。
【0079】CPU21が命令を実行すると、実行した
命令の命令アドレスが命令アドレスバス41を介して実
行命令数カウンタ23及び分岐検出部24に出力され
る。実行命令数カウンタ23は、入力された命令アドレ
スの数を計数することにより、CPU21が実行した命
令の数を算出する。
【0080】図6は、図5の実行命令数カウンタ23の
動作を示すフローチャートである。
【0081】図6において、実行命令数カウンタ23
は、分岐発生の場合(ステップS1)、実行命令数カウ
ンタ23のリセットを行い(ステップS2)、分岐発生
でない場合(ステップS1)、CPU21で命令が実行
されるごとに(ステップS3)、実行命令数カウンタ2
3の内容を1づつインクリメントする(ステップS
4)。
【0082】分岐検出部24は、現在入力された命令ア
ドレスとその直前に入力された命令アドレスとの差分を
算出することにより、命令アドレスのアドレス変位を算
出する。そして、アドレス変位からCPU21の命令実
行中に分岐が発生したかどうかを検出する。分岐検出部
24が分岐発生を検出すると、分岐が発生したことをエ
ンコーダ26及び制御部34に伝えるとともに、実行命
令数カウンタ23をリセットする。
【0083】エンコーダ26は、分岐発生の通知を受け
ると、分岐検出部24から出力されたアドレス変位の有
効ビット数を算出する。なお、有効ビット数は、送られ
てきたデータを最上位ビットから見た時に、初めて0で
ないビットが出現する位置から求めることができる。
【0084】アドレス変位の有効ビット数が求まると、
この有効ビット数をタグデータとしてアドレス変位に付
加した分岐情報を生成する。そして、アドレス変位の有
効ビット数にタグデータのビット数を加えた値と、命令
アドレスのビット幅とを比較する。ここで、アドレス変
位の有効ビット数にタグデータのビット数を加えた値
が、命令アドレスのビット幅以上の場合は、命令アドレ
スバス41から出力された分岐先の絶対アドレスをその
ままマルチプレクサ33に出力する。
【0085】一方、アドレス変位の有効ビット数にタグ
データのビット数を加えた値が、命令アドレスのビット
幅より小さい場合は、タグデータが付加されたアドレス
変位をマルチプレクサ33に出力する。
【0086】例えば、命令アドレスのビット幅が32ビ
ットで、タグデータのビット数が5ビットであるものと
すると、アドレス変位の有効ビット数が27ビット以上
の場合は、命令アドレスバス41から出力された分岐先
の絶対アドレスをそのまま出力し、アドレス変位の有効
ビット数が27ビットより小さい場合は、タグデータが
付加されたアドレス変位を出力する。すなわち、アドレ
ス空間の端から端までジャンプする場合には、アドレス
変位の有効ビット数が大きくなるため、絶対アドレスが
そのまま出力され、小さなループの繰り返しの場合は、
アドレス変位の有効ビット数が小さくなるため、相対ア
ドレスが出力される。
【0087】また、エンコーダ26は、分岐発生の通知
を受けると、実行命令数カウンタ23から出力された実
行命令数についても、有効ビット数を算出する。実行命
令数の有効ビット数が求まると、この有効ビット数をタ
グデータとして実行命令数に付加した分岐情報を生成
し、マルチプレクサ33に出力する。
【0088】ここで、エンコーダ26は、アドレス変位
及び実行命令数の有効ビット数がどのような値であって
も、任意の期間に最低1回は、絶対アドレスをマルチプ
レクサ33に出力する。例えば、数千クロックに1回は
必ず絶対アドレスをマルチプレクサ33に出力するよう
にする。これは、ICE38側でのトレースデータの解
析を容易に行えるようにするためである。すなわち、相
対アドレスばかり出力した場合には、レースリストの解
析を行う際にトレースリストの最初まで遡る必要があ
り、トレースデータの解析に手間がかかる。一方、数千
クロックに1回は必ず絶対アドレスが出力されると、最
大でも数千クロック分だけ遡ればよく、トレースリスト
の解析を効率よく行うことが可能となる。さらに、相対
アドレスばかり出力されると、その途中でデータロスト
が起こった場合には、それ以後のトレースデータの解析
が不可能となるが、絶対アドレスが出力されている場合
には、そこからトレースデータの解析が可能となる。
【0089】一方、CPU21の動作中にデータアクセ
スが発生すると、データアドレスバス42に出力された
データアドレスがバッファ28を介してエンコーダ30
に出力されるとともに、データバス43に出力されたア
クセスデータがバッファ29を介してエンコーダ30に
出力されるエンコーダ30は、データアドレス及びアク
セスデータが入力されると、データアクセスの発生を制
御部34に伝えるとともに、データアドレス及びアクセ
スデータの有効ビット数を求める。そして、求めた有効
ビット数をタグデータとしてデータアドレス及びアクセ
スデータに付加したデータアクセス情報を生成し、生成
したデータアクセス情報をマルチプレクサ33に出力す
る。また、生成したデータアクセス情報をバッファ31
に格納し、現在のデータアクセス情報に加え、遅延させ
たデータアクセス情報もマルチプレクサ33に出力す
る。
【0090】制御部34は、分岐検出部24から伝えら
れた分岐の発生と、エンコーダ30から伝えられたデー
タアクセスの発生とを監視し、分岐の発生とデータアク
セスの発生とが競合する場合には、競合が起こったこと
をマルチプレクサ33に伝える。
【0091】図7は、図5の制御部34の動作を示すフ
ローチャートである。
【0092】図7において、制御部34は、分岐発生の
場合(ステップS11)、データアクセス発生があった
かどうかを判断し、データアクセス発生の場合(ステッ
プS12)、分岐情報の出力指示をマルチプレクサ33
に与え(ステップS13)、フラグを1にセットする
(ステップS14)。この場合、ステップS12で発生
したアクセスデータは、バッファ31に保持されてい
る。
【0093】一方、ステップS12において、データア
クセス発生でない場合、分岐情報の出力指示をマルチプ
レクサ33に与え(ステップS15)、フラグを0にク
リアする(ステップS16)。
【0094】一方、ステップS11において、分岐発生
でない場合、データアクセス発生があったかどうかを判
断し(ステップS17)、データアクセス発生の場合、
フラグが1がどうかを判断する(ステップS18)。こ
こで、フラグが1の場合、1クロック前のアクセスデー
タの出力指示をマルチプレクサ33に与える(ステップ
S19)。一方、フラグが1でない場合、現在のアクセ
スデータの出力指示をマルチプレクサ33に与え(ステ
ップS20)、フラグを0にクリアする(ステップS2
1)。
【0095】一方、ステップS17において、データア
クセス発生でない場合、フラグが1がどうかを判断し
(ステップS22)、フラグが1の場合、現在のアクセ
スデータの出力指示をマルチプレクサ33に与え(ステ
ップS20)、フラグを0にクリアする(ステップS2
1)。 一方、ステップS22において、フラグが1で
ない場合、処理を終了する。
【0096】マルチプレクサ33は、エンコーダ26か
らの分岐情報、またはエンコーダ30からのデータアク
セス情報が入力されると、これらの情報を共通の信号線
52を介してパラレル−シリアル変換器36に出力す
る。ここで、マルチプレクサ33は、分岐の発生とデー
タアクセスの発生との競合を制御回路34から通知され
ると、エンコーダ26からの分岐情報を選択して信号線
52に出力した後、エンコーダ30からの遅延後のデー
タアクセス情報を選択して信号線52に出力する。
【0097】この結果、有効ビット数を含む分岐情報及
びデータアクセス情報が時系列で並んだ状態で、パラレ
ル−シリアル変換器36に送られる。
【0098】パラレル−シリアル変換器36は、分岐情
報及びデータアクセス情報が信号線52を介して送られ
てくると、パラレル−シリアル変換器36に含まれてい
るFIFOにそのまま格納する。そして、分岐情報及び
データアクセス情報の出力タイミング調整を行いなが
ら、分岐情報及びデータアクセス情報をFIFOから読
み出し、分岐情報及びデータアクセス情報をシリアルデ
ータに変換した後、トレース用バス53を介してICE
38に出力する。ここで、分岐情報及びデータアクセス
情報をFIFOから読み出した際に、分岐情報及びデー
タアクセス情報に含まれている有効ビット数を取り出
し、この有効ビット数で示されるデータ以外を切り捨て
ながら、パラレル−シリアル変換を行う。
【0099】また、パラレル−シリアル変換器36は、
パラレル−シリアル変換の対象となるデータをエンコー
ダ37に送り、トレース用バス53に出力しているデー
タのステータスをエンコードさせる。そして、パラレル
−シリアル変換されたデータがトレース用バス53に出
力されている時に、エンコーダ37でデコードされたス
テータス信号がステータス出力用バス54を介してIC
E38に出力されるようにする。
【0100】例えば、命令アドレスバス41、データア
ドレスバス42及びデータバス43のビット幅がそれぞ
れ32ビットであるものとし、マルチプレクサ33から
の信号線52のビット幅が64ビット、トレース用バス
53のビット幅が4ビットであるものとすると、マルチ
プレクサ33は、命令アドレスバス41、データアドレ
スバス42及びデータバス43から入力された分岐情報
及びデータアクセス情報が64ビットパラレルでパラレ
ル−シリアル変換器36に送られる。パラレル−シリア
ル変換器36はマルチプレクサ33から送られた64ビ
ットパラレルのデータを4ビットパラレルのデータに変
換してICE38に出力する。この際、パラレル−シリ
アル変換器36は、マルチプレクサ33から送られた6
4ビットパラレルのデータに含まれる冗長な部分を切り
落としてICE38に出力する。このため、トレースデ
ータをパラレルシリアル変換してICE38に出力する
際に、トレースデータの出力に必要なクロック数を減ら
すことが可能となり、トレースデータの欠落を防止する
ことが可能となる。
【0101】また、図5のDSU22では、トレースデ
ータの出力が間に合わなくなった時の復帰のためのプロ
トコルが定義されている。
【0102】例えば、分岐やデータアクセスが頻発し、
タイミング調節用のバッファがフルになり、トレースデ
ータの出力が間に合わなくなると、パラレル−シリアル
変換器36は、バッファフルであることを制御部34に
伝える。制御部34は、バッファフルという通知を受け
た場合、データ消失ステータスをバッファの最後に書き
込んで、トレースデータのバッファへの出力を中断させ
る。
【0103】このことにより、バッファフルになるまで
に格納されたトレースデータを保護して、バッファフル
になるまでに格納されたトレースデータの出力を保証す
ることが可能となるとともに、データロストが発生した
時点を容易に確認することが可能となる。
【0104】そして、トレースデータのバッファへの書
き込みを再開する場合には、バッファに空きができた時
の分岐発生からトレースデータの書き込みを開始し、出
力再開時に書き込む分岐情報は絶対アドレスとする。
【0105】このことにより、データロスト後に再開さ
れたトレースデータの出力開始直後からデータのチェー
ンを辿ることが可能となり、トレースデータの解析を効
率的に行うことが可能となる。
【0106】このように、図5の実施例によれば、エン
コーダ26からの分岐情報とエンコーダ30からのデー
タアクセス情報とを切り替えながら、これらの情報を共
通の信号線52に出力することにより、トレースデータ
を出力するための必要な信号線の本数を減らすことが可
能となる。
【0107】また、実行命令数とアドレス変位を分岐情
報として出力することにより、分岐先が近距離の場合は
データ圧縮を効率的に行うことが可能となり、小さなル
ープが実行されて分岐が短期間に連続して発生した場合
でも、1回分の分岐情報の出力に必要なクロック数を減
らすことが可能となり、トレース情報の欠落を防止する
ことが可能となる。
【0108】また、分岐の発生とデータアクセスとが競
合した場合には、分岐情報を出力した後、データアクセ
ス情報を出力することにより、分岐情報とデータアクセ
ス情報との時間関係の整合性を保ちつつ、分岐情報の出
力とデータアクセス情報の出力の衝突を回避することが
可能となる。
【0109】また、トレースデータにタグ情報を付加し
たままパラレル−シリアル変換器36に送り、パラレル
−シリアル変換する時に冗長なデータを切り捨てること
により、トレース用バス53から出力されるトレースデ
ータとステータス用バス54から出力されるステータス
信号を同期させることが可能となることから、出力され
たデータの解析を容易にすることが可能となるととも
に、ステータス用バス54で多くの情報を送ることが可
能になり、出力データに複雑なフォーマットを指定する
ことが可能となる。
【0110】図8は、本発明の第4実施例に係わる情報
処理装置の構成を示すブロック図である。
【0111】図8において、71はCPU、72はDS
U、73は命令アドレスバス101のデータから実際に
実行された命令のアドレスだけを取り出すアドレスパイ
プライン、74は各分岐間に実行した命令数を求める命
令実行数カウンタ、75はCPU71が出力した命令ア
ドレスの差分から分岐発生を検出する分岐検出部、76
は命令アドレスの差分を求める減算器、77は分岐発生
時に命令実行数カウンタ74及び分岐検出部75の出力
データからトレース出力に必要なデータを生成するエン
コーダ、78は命令実行数カウンタ74及び分岐検出部
75の出力データの有効桁数を算出するタグ生成部、7
9はデータアドレスバス102のデータのタイミングを
取るバッファ、80はデータバス103のデータのタイ
ミングを取るバッファ、81はバッファ79、80に保
持されているデータアクセス情報からトレースデータを
生成するエンコーダ、82はデータアクセス情報を遅延
させるバッファ、83はデータアクセス情報の有効桁数
を算出するタグ生成部、84はトレース対象とするデー
タアドレスを指定するレジスタ、85はレジスタ84で
指定されたデータアドレスとデータアドレスバス102
から出力されたデータアドレスとを比較するアドレス比
較部、86は制御部87からの指示に基づいて、エンコ
ーダ77から出力される分岐情報とエンコーダ81から
出力されるデータアクセス情報の出力の切り替えを行う
マルチプレクサ、87はトレース用バス113とトレー
ス用バス115との切替を指示したり、分岐発生とデー
タアクセスの状況からトレース用バス115に出力する
データをマルチプレクサ86に指示したりする制御部、
88は分岐発生とデータアクセスの競合を検出する競合
検出部、89はFIFO90をタイミング調整用バッフ
ァとして使用するか、トレースメモリとして使用するか
を設定するレジスタ、90はトレースデータの生成タイ
ミングのばらつきを吸収するためのFIFO、91はF
IFO90から出力されるデータの種別を示すためのス
テータス信号を生成するエンコーダ、92はICE、9
3はトレースメモリである。
【0112】また、101はCPU71が命令フェッチ
に使用する命令アドレスバス、102はCPU71がデ
ータアクセスに使用するデータアドレスバス、103は
CPU71がデータアクセスに使用するデータバス、1
01’はパイプライン73から出力されたアドレス情報
を出力する信号線、104は実行命令数をエンコーダ7
7に出力する信号線、105はアドレス変位をエンコー
ダ77に出力する信号線、106は分岐発生をエンコー
ダ77及び制御部87に伝えるための信号線、107は
エンコーダ77が生成した分岐情報をマルチプレクサ8
6に出力する信号線、108はエンコーダ81が生成し
たデータアクセス情報をマルチプレクサ86に出力する
信号線、109はデータアクセスの発生を制御部87に
伝えるための信号線、110はマルチプレクサ86の切
り替えを指示するための信号線、111はFIFO90
に設けられている2ポートRAM141に空きエントリ
があるかどうかを伝えるための信号線、112はFIF
O90をタイミング調整用バッファとして使用するか、
トレースメモリとして使用するかを指示するための信号
線、113はトレースデータをICE92へパラレルで
出力するためのトレース用バス、115はトレースデー
タをパラレルシリアル変換してICE92へ出力するた
めのトレース用バス、116はトレース用バス115に
出力中のデータのステータスをICE92へ伝えるため
のステータス出力用バスである。
【0113】ここで、トレースデータ出力バス113
は、データアドレス、データ、データサイズ及びリード
/ライト信号をパラレルに出力するもので、例えば、デ
ータアドレス及びデータのビット幅が32ビットである
ものとすると、トレースデータ出力バス113のビット
幅は70ビット程度になる。
【0114】以下、図8のDSU72の動作について説
明する。
【0115】CPU71が命令をフェッチすると、その
命令アドレスが命令アドレスバス101を介してパイプ
ライン73に送られる。このパイプライン73は、CP
U71で行われるパイプライン動作と同様の処理を行
い、命令アドレスバス101のデータから実際に実行さ
れた命令のアドレスだけを取り出して、命令実行数カウ
ンタ74及び分岐検出部75に出力する。パイプライン
73からアドレス情報が出力されると、命令実行数カウ
ンタ74は、CPU71により実際に実行された命令実
行数を算出する。また、分岐検出部75は、命令アドレ
スのアドレス変位を算出することにより、CPU71の
命令実行中に分岐が発生したかどうかを検出する。そし
て、分岐検出部75が分岐発生を検出すると、分岐が発
生したことをエンコーダ77及び制御部87に伝えると
ともに、命令実行数カウンタ74をリセットする。
【0116】制御部87には、トレースデータをトレー
ス用バス115を介して送るか、トレース用バス113
を介して送るかが設定され、トレースデータをトレース
用バス113を介して送る場合、制御部87は、分岐情
報として絶対アドレスのみを出力するようにエンコーダ
77に指示する。また、トレースデータをトレース用バ
ス113に出力するようにマルチプレクサ86に指示す
るとともに、トレース用バス115からは分岐とデータ
アクセス以外のシステム情報を出力するように指示す
る。このシステム情報は、例えば、CPU71が動作し
ているのか動作していないのかを示す情報や省電力モー
ドかどうかを示す情報などである。
【0117】エンコーダ77は、トレースデータがトレ
ース用バス115を介して送られる場合、分岐検出部7
5から出力されたアドレス変位の有効ビット数を算出す
る。アドレス変位の有効ビット数が求まると、この有効
ビット数をタグデータとしてアドレス変位に付加した分
岐情報を生成する。そして、アドレス変位の有効ビット
数にタグデータのビット数を加えた値と、命令アドレス
のビット幅とを比較する。ここで、アドレス変位の有効
ビット数にタグデータのビット数を加えた値が、命令ア
ドレスのビット幅以上の場合は、パイプライン73から
出力された分岐先の絶対アドレスをそのままマルチプレ
クサ86に出力する。
【0118】一方、アドレス変位の有効ビット数にタグ
データのビット数を加えた値が、命令アドレスのビット
幅より小さい場合は、タグデータが付加されたアドレス
変位をマルチプレクサ86に出力する。
【0119】また、エンコーダ77は、実行命令数カウ
ンタ74から出力された実行命令数についても、有効ビ
ット数を算出する。実行命令数の有効ビット数が求まる
と、この有効ビット数をタグデータとして実行命令数に
付加した分岐情報を生成し、マルチプレクサ86に出力
する。
【0120】ここで、エンコーダ77は、アドレス変位
及び実行命令数の有効ビット数がどのような値であって
も、任意の期間に最低1回は、絶対アドレスをマルチプ
レクサ86に出力する。
【0121】図9は、図8の分岐検出部75及びエンコ
ーダ77の構成例を示すブロック図である。
【0122】図9において、ラッチ131には、実行命
令アドレスが入力され、命令アドレスが有効の場合、分
岐前に実行された命令アドレスをラッチする。分岐が発
生すると、減算器132は、ラッチ131に格納されて
いる実行命令アドレスと現在の実行命令アドレスとの差
分を算出し、アドレスブロック数算出部133及び切り
替えスイッチ134に出力する。アドレスブロック数算
出部133は、命令アドレスの差分のアドレスブロック
数を算出し、そのアドレスブロック数をタグデータとし
て出力するとともに、切り替えスイッチ134に伝え
る。切り替えスイッチ134は、アドレスブロック数が
所定値以上の場合、実行命令アドレスをそのまま分岐情
報として出力し、アドレスブロック数が所定値より小さ
い場合、命令アドレスの差分を分岐情報として出力す
る。
【0123】図10は、アドレスブロック数算出処理の
一例を示すフローチャートである。なお、図10の実施
例では、アドレスのビット幅は32ビット、1ブロック
当たりのビット数は4ビットとしているが、1ブロック
当たりのビット数は、トレース用バス115のビット幅
と対応するように設定することができる。例えば、FI
FO90で32ビットパラレルのデータを4ビットパラ
レルのデータに変換して出力する場合には、1ブロック
当たりのビット数は4とする。
【0124】図10において、アドレスの31〜28ビ
ット目が0かどうかを判断し(ステップS21)、アド
レスの31〜28ビット目が0でない場合、アドレスブ
ロック数として7を出力する(ステップS22)。
【0125】一方、アドレスの31〜28ビット目が0
である場合、アドレスの27〜24ビット目が0かどう
かを判断し(ステップS23)、アドレスの27〜24
ビット目が0でない場合、アドレスブロック数として6
を出力する(ステップS24)。
【0126】一方、アドレスの27〜24ビット目が0
である場合、アドレスの23〜20ビット目が0かどう
かを判断し(ステップS25)、アドレスの23〜20
ビット目が0でない場合、アドレスブロック数として5
を出力する(ステップS26)。
【0127】一方、アドレスの23〜20ビット目が0
である場合、アドレスの19〜16ビット目が0かどう
かを判断し(ステップS27)、アドレスの19〜16
ビット目が0でない場合、アドレスブロック数として4
を出力する(ステップS28)。
【0128】一方、アドレスの19〜16ビット目が0
である場合、アドレスの15〜12ビット目が0かどう
かを判断し(ステップS29)、アドレスの15〜12
ビット目が0でない場合、アドレスブロック数として3
を出力する(ステップS30)。
【0129】一方、アドレスの11〜8ビット目が0で
ある場合、アドレスの11〜8ビット目が0かどうかを
判断し(ステップS31)、アドレスの11〜8ビット
目が0でない場合、アドレスブロック数として2を出力
する(ステップS32)。
【0130】一方、アドレスの11〜8ビット目が0で
ある場合、アドレスの7〜4ビット目が0かどうかを判
断し(ステップS33)、アドレスの7〜4ビット目が
0でない場合、アドレスブロック数として1を出力する
(ステップS34)。
【0131】一方、アドレスの7〜4ビット目が0であ
る場合、アドレスブロック数として0を出力する(ステ
ップS35)。
【0132】一方、エンコーダ77は、トレースデータ
がトレース用バス113を介して送られる場合には、パ
イプライン73から送られる命令アドレスをそのままマ
ルチプレクサ77に送る。
【0133】これは、トレース用バス113のビット幅
は、トレースデータの欠落なくトレースデータをICE
92に出力できるように設定されており、絶対アドレス
をそのまま出力してもデータの欠落のない場合には、絶
対アドレスをそのまま出力した方が、トレースデータの
解析を効率よく行うことができるからである。
【0134】一方、CPU71の動作中にデータアクセ
スが発生すると、データアドレスバス102に出力され
たデータアドレスがバッファ79を介してエンコーダ8
1に送られるとともに、データバス103に出力された
データがバッファ80を介してエンコーダ81に送られ
る。また、データアドレスバス102に出力されたデー
タアドレスは比較部85にも送られる。
【0135】比較部85は、データアドレスバス102
に出力されたデータアドレスを受け取ると、レジスタ8
4に設定されているデータアドレスと比較を行い、その
比較結果をエンコーダ81に出力する。
【0136】エンコーダ81は、データアドレス及びア
クセスデータが入力されると、比較部85から送られた
比較結果に基づいて、入力されたデータアドレス及びア
クセスデータを処理対象とするかどうかを判断する。そ
して、入力されたデータアドレス及びアクセスデータを
処理対象とする場合、データアクセスの発生を制御部8
7に伝えるとともに、データアドレス及びアクセスデー
タの有効ビット数を求める。そして、求めた有効ビット
数をタグデータとしてデータアドレス及びアクセスデー
タに付加したデータアクセス情報を生成し、生成したデ
ータアクセス情報をマルチプレクサ86に伝える。ま
た、生成したデータアクセス情報をバッファ82に格納
し、現在のデータアクセス情報に加え、遅延させたデー
タアクセス情報もマルチプレクサ86に伝える。
【0137】ここで、エンコーダ81は、データアドレ
スについて、図10と同様の処理を行うことにより、ア
ドレスブロック数を算出する。また、アクセスデータに
ついて、以下の処理を行うことにより、データブロック
数を算出する。
【0138】図11は、データブロック数算出処理の一
例を示すフローチャートである。
【0139】図11において、32ビットアクセスかど
うかを判断し(ステップS41)、32ビットアクセス
の場合、データブロック数として7を出力する(ステッ
プS42)。
【0140】一方、32ビットアクセスでない場合、1
6ビットアクセスかどうかを判断し(ステップS4
3)、16ビットアクセスの場合、データブロック数と
して3を出力する(ステップS44)。
【0141】一方、16ビットアクセスでない場合、デ
ータブロック数として0を出力する(ステップS4
5)。
【0142】制御部87は、分岐検出部75から伝えら
れた分岐の発生と、エンコーダ81から伝えられたデー
タアクセスの発生とを監視し、分岐の発生とデータアク
セスの発生とが競合する場合には、競合が起こったこと
をマルチプレクサ86に伝える。
【0143】マルチプレクサ86は、トレースデータを
トレース用バス115に出力するように指示された場合
には、エンコーダ77から送られた分岐情報及びエンコ
ーダ81から送られたデータアクセス情報を信号線11
4を介してFIFO90に出力する。ここで、マルチプ
レクサ86は、分岐の発生とデータアクセスの発生との
競合の発生を制御回路87から受けると、エンコーダ7
7からの分岐情報を選択して信号線114に出力した
後、エンコーダ81からの遅延後のデータアクセス情報
を選択して信号線114に出力する。
【0144】一方、マルチプレクサ86は、トレースデ
ータをトレース用バス113に出力するように指示され
た場合には、エンコーダ77から送られた分岐情報及び
エンコーダ81から送られたデータアクセス情報をトレ
ース用バス113を介してICE92に送る。
【0145】FIFO90は、分岐情報及びデータアク
セス情報が信号線114を介して送られてくると、それ
らの情報をそのまま格納する。そして、分岐情報及びデ
ータアクセス情報の出力タイミング調整を行いながら、
分岐情報及びデータアクセス情報を読み出し、分岐情報
及びデータアクセス情報をシリアルデータに変換した
後、トレース用バス115を介してICE92に出力す
る。ここで、分岐情報及びデータアクセス情報をFIF
O90から読み出した際に、分岐情報及びデータアクセ
ス情報に含まれている有効ビット数を取り出し、この有
効ビット数で示されるデータ以外を切り捨てながら、パ
ラレルシリアル変換を行い、ICE92に出力する。
【0146】図12は、図8のFIFO90の構成例を
示すブロック図である。
【0147】図12において、FIFO90には、2ポ
ートRAM141、比較回路142及びパラレルシリア
ル変換器143が設けられている。2ポートRAM14
1には、アドレスとデータの入出力端子が2セット設け
られ、2つのアクセス要求を同時に処理できるようにな
っている。
【0148】トレースデータ145を2ポートRAM1
41に書き込む場合、比較回路142は、ライトポイン
タ144の値とリードポインタ146の値とを比較し、
その比較結果を制御部87に送る。制御部87は、比較
回路142から送られた比較結果からFIFO90に空
きがあるかどうかを判断し、FIFO90に空きがある
場合、ライトポインタ144の値をインクリメントし、
トレースデータ145を2ポートRAM141に書き込
む。
【0149】トレースデータ145を2ポートRAM1
41から読み出す場合、リードポインタ146は、2ポ
ートRAM141から前回読み出されたトレースデータ
145のパラレルシリアル変換が終わっているかどうか
を調べる。そして、パラレルシリアル変換が終わってい
る場合には、リードポインタ146の値をインクリメン
トし、トレースデータ145を2ポートRAM141か
ら読み出し、パラレルシリアル変換器143及びエンコ
ーダ91に出力する。
【0150】パラレルシリアル変換器143は、2ポー
トRAM141から読み出されたトレースデータ145
が入力されると、そのトレースデータ145の有効ビッ
ト部分のみをシリアルデータに変換して、ICE92へ
出力する。そして、2ポートRAM141から読み出さ
れたトレースデータ145のパラレルシリアル変換が終
了すると、そのことをリードポインタ146に伝える。
【0151】エンコーダ91は、2ポートRAM141
から読み出されたトレースデータ145が入力される
と、トレース用バス115に出力されているデータのス
テータスをエンコードし、ステータス出力用バス116
を介してICE92に出力する。
【0152】一方、制御部87は、比較回路142から
比較結果が送られた時に、FIFO90に空きがないと
判断した場合、データの出力が間に合わなくなった時の
復帰のためのプロトコルに従って処理を行う。
【0153】この復帰のためのプロトコルでは、FIF
O90に空きがないと判断した場合、データ消失ステー
タスをFIFO90の最後に書き込んで、トレースデー
タのFIFO90への出力を中断する。そして、FIF
O90に格納されたトレースデータがトレースデータ出
力バス115を介してICE92に出力され、FIFO
90に空きができた時の分岐発生により、FIFO90
への書き込みを再開し、出力再開時の分岐情報として絶
対アドレスを書き込む、また、図8のDSU72では、
レジスタ89で設定することにより、タイミング調整用
のFIFO90をトレースメモリ93として使用するこ
とができる。
【0154】例えば、FIFO90の容量が128ステ
ップ分あるとすると、この128ステップ分のトレース
データをFIFO90に格納し、FIFO90に格納さ
れたトレースデータをトレース出力バス115から出力
しないようにする。
【0155】このことにより、128ステップ分のトレ
ースデータについては、データ出力時のデータロストを
防止することができ、128ステップ分のトレースデー
タについては、データロストしないようにして欲しいと
いうユーザの要求に応えることができる。
【0156】なお、FIFO90に格納されているトレ
ースデータの解析は、ICE92側からの中断命令など
によりCPU71を停止させ、エミュレータ用のプログ
ラムに実行を移し、デバッカによりFIFO90に格納
されているトレースデータを読み出させることにより行
うことができる。
【0157】図13は、図8の制御部87の動作の一例
を示すフローチャートである。
【0158】図13において、トレースデータが発生し
た場合(ステップS61)、レジスタ89の内容を確認
することにより、FIFO90をタイミング調整用バッ
ファとして使用しているかどうかを判断する(ステップ
S62)。ここで、FIFO90をタイミング調整用バ
ッファとして使用している場合、空きエントリがFIF
O90にあるかどうかを判断する(ステップS63)。
空きエントリがFIFO90にある場合、トレースデー
タをFIFO90に書き込む(ステップS64)。一
方、空きエントリがFIFO90にない場合、データロ
スト処理を行う(ステップS65)。なお、このデータ
ロスト処理は、上述したデータの出力が間に合わなくな
った時の復帰のためのプロトコルに従って行う。
【0159】一方、FIFO90をタイミング調整用バ
ッファとして使用していない場合、トレースメモリに空
きがあるかどうかを判断する(ステップS66)。ここ
で、FIFO90をタイミング調整用バッファとして使
用していない場合とは、FIFO90をトレースメモリ
として使うように指定した場合や、DSU72が集積さ
れているチップ外部にトレース用メモリを接続してトレ
ースを行う場合である。トレースメモリに空きがある場
合、トレースデータをトレースメモリに書き込む(ステ
ップS67)。
【0160】一方、トレースメモリに空きがない場合、
トレースメモリがリングバッファかどうか判断する(ス
テップS68)。ここで、トレースメモリがリングバッ
ファの場合、トレースデータをトレースメモリに書き込
む(ステップS69)。一方、トレースメモリがリング
バッファでない場合、トレースを停止する(ステップS
70)。なお、トレースメモリをリングバッファとして
使用する場合、トレースデータの古い部分から新たなト
レースデータが上書きされる。
【0161】図14(a)は、図8のパイプライン73
の動作を説明する図であり、分岐命令を実行した時のパ
イプライン動作を行うCPU71の内部動作タイミング
を示したものである。。
【0162】図14(a)において、IFは命令フェッ
チステージ、IDは命令デコードステージ、EXは演算
ステージ、MAはメモリアクセスステージ、WBは演算
結果をレジスタに書き戻すためのライトバックステー
ジ、〜はCPU71のサイクルを示し、右側が時間
的に後になる。また、JMPは分岐命令を、#0は分岐
命令JMPの直後の命令を、#1は分岐命令JMPの分
岐先の1命令目を、×は命令#0が分岐命令JMPによ
ってフェッチ後にキャンセルされたことを示す。サイク
ルで分岐命令JMPをフェッチし、サイクルで分岐
命令JMPがIDステージに送られるとともに、命令#
0がフェッチされる。ここで、分岐命令JMPをデコー
ドした結果、分岐の発生を検知すると、分岐命令JMP
の直後の命令#0はキャンセルされる。この結果、サイ
クルで分岐命令JMPがEXステージに送られるとと
もに、キャンセルされた命令の隙間がIDステージに発
生する。また、後続の命令#1がフェッチされる。
【0163】次に、サイクルで分岐命令JMPがMA
ステージに送られ、キャンセルされた命令の隙間がEX
ステージに送られ、命令#1がIDステージに送られ、
サイクルで分岐命令JMPがEXステージに送られ、
キャンセルされた命令の隙間がMAステージに送られ、
命令#1がWBステージに送られ、サイクルでキャン
セルされた命令の隙間がMAステージに送られるととも
に、命令#1がWBステージに送られ、サイクルで命
令#1がWBステージに送られる。
【0164】図14(b)は分岐命令実行時の差分アド
レスの生成方法を説明する図であり、図14(a)から
MAステージのみを抜き出したものである。
【0165】図14(b)において、差分アドレスを求
めるためには、分岐元アドレスと分岐先アドレスが必要
である。このため、分岐命令JMPがMAステージに入
るサイクルで、分岐元アドレスをラッチし、分岐先の
1命令目がMAステージに入るサイクルで、(分岐先
アドレス−分岐元アドレス)の演算を分岐検出部75で
行うことにより、差分アドレスを算出する。ここで、M
Aステージを基準に命令トレースのデータを生成するの
は、データアクセスのトレースデータの生成と同期をと
るためである。
【0166】一方、データアクセスのトレースデータ
は、データアクセスを伴う命令によりMAステージで実
際にアクセスが行われた時に生成する。そのため、図1
4(a)において、分岐命令JMPが存在せず、命令#
1がデータアクセス命令の場合には、データアクセスの
トレースデータはサイクルで生成される。この場合、
エンコーダ81から出力されるデータアクセス情報がマ
ルチプレクサ86で選択され、FIFO90へ送られ
る。
【0167】次に、分岐発生による差分アドレスとデー
タアクセスによるトレースデータが同一タイミングで発
生した場合の競合回避の方法につい説明する。
【0168】図14(c)は、分岐による差分アドレス
とデータアクセスによるトレースデータの生成タイミン
グを説明する図であり、図14(a)の命令#1がスト
ア命令STである場合を示している。
【0169】図14(c)において、分岐発生とデータ
アクセスとが競合した場合には、命令トレース用の差分
アドレスとデータアクセス情報との両方のデータがサイ
クルで生成される。この場合、競合検出部88は、分
岐発生とデータアクセスとの競合の発生をマルチプレク
サ86に伝える。マルチプレクサ86は、分岐発生とデ
ータアクセスとの競合の発生を知らされると、命令トレ
ース用の差分アドレスを選択してFIFO90に出力し
た後、バッファ82で1クロック分遅延させられたデー
タアクセス情報を選択してFIFO90に出力する。こ
の結果、分岐発生とデータアクセスとが競合した場合に
おいても、分岐情報とデータアクセス情報の時間関係の
整合性を保ちつつ、分岐情報とデータアクセス情報とを
共通の信号線114を用いて出力することが可能とな
る。
【0170】なお、データアクセスが連続して発生して
いる時に分岐が発生し、分岐情報を送るためにデータア
クセス情報を1クロック分遅延させると、1クロック分
遅延させられたデータアクセス情報と現在のデータアク
セス情報とが競合する。この場合、競合したデータアク
セス情報は、分岐発生直後のキャンセルされた命令の隙
間で吸収することができる。
【0171】以上説明したように、本実施例によれば、
単一のトレース用バスで命令実行とデータアクセスの2
つの情報をトレース結果として出力することが可能にな
り、今後のシステム高速化の際もトレース用端子の増加
を防ぐことができ、機能を落とすことなく、ICEを含
めたシステム全体を容易に実現することが可能となる。
【0172】また、出力情報の冗長部分を削減し、トレ
ース用バスに出力する情報の密度を上げることが可能と
なり、トレース用バスのビット幅を増やすことなしに、
より多くのトレース情報を出力することが可能となる。
【0173】
【発明の効果】以上説明したように、本発明によれば、
データアクセス情報の出力系列の中に分岐情報を挿入す
ることにより、データアクセス情報を出力するための出
力バスと分岐情報を出力するための出力バスとを共通に
することが可能となることから、トレースデータの出力
に必要なパケージのピン数を減らすことが可能となる。
また、本発明の一態様によれば、分岐情報の出力とデー
タアクセス情報の出力との競合が検出された場合、分岐
情報の出力後に、データアクセス情報を出力することに
より、分岐情報とデータアクセス情報との時間関係の整
合性を保ちつつ、分岐情報とデータアクセス情報とを共
通の出力バスを介して出力することが可能となる。
【0174】また、本発明の一態様によれば、分岐の発
生によりキャンセルされた命令の出力を行わないように
することにより、不要となったデータの出力を防止し
て、トレース解析に必要な情報のみを出力することが可
能となる。
【0175】また、本発明の一態様によれば、分岐によ
るアドレス変位と命令実行数をその有効桁数分だけ出力
することにより、それらの情報をシリアルで出力する際
に必要なクロック数を減らすことが可能となり、トレー
スデータを高速に出力することが可能となる。
【0176】また、本発明の一態様によれば、有効桁数
を分岐情報の中に含めることにより、有効桁数と分岐情
報とを同時に転送することが可能となり、有効桁数と分
岐情報とを同期させて出力することが可能となる。
【0177】また、本発明の一態様によれば、相対アド
レスの有効桁数の方が絶対アドレスの桁数よりも大きい
場合、相対アドレスを出力するのではなく、絶対アドレ
スをそのまま分岐情報として出力することにより、トレ
ースデータの出力を効率よく行うことが可能となる。
【0178】また、本発明の一態様によれば、データア
ドレスとアクセスデータとをその有効桁数分だけ出力す
ることにより、データアクセス情報の出力についても効
率化を図ることが可能となる。
【0179】また、本発明の一態様によれば、所定の期
間に最低1回は絶対アドレスを出力することにより、ト
レースデータの解析を容易に行うことが可能となるとと
もに、データロストが起こった時のトレースが不能とな
る部分を減らすことができる。
【0180】また、本発明の一態様によれば、出力タイ
ミング調整用バッファから読み出されたデータをパラレ
ルシリアル変換しながら出力するとともに、そのデータ
のデコード結果を同時に出力することにより、これらの
情報の出力を同期させることが可能となる。
【0181】また、本発明の一態様によれば、トレース
データをパラレルシリアル変換して出力する出力バスに
加え、トレースデータをパラレルのまま出力する出力バ
スを設け、分岐情報として絶対アドレスを出力すること
により、データロストの発生を伴うことなく、トレース
データを出力することが可能となる。
【0182】また、本発明の一態様によれば、トレース
データをパラレルのまま出力する場合には、余った出力
バスからシステム情報を出力することにより、出力バス
を有効に利用することが可能となる。
【0183】また、本発明の一態様によれば、出力タイ
ミングを調整するバッファがフルになった場合、データ
消失ステータスをバッファに書き込んだ後に、バッファ
へのデータの書き込みを中断することにより、データロ
ストが起こるまでに既にバッファに書き込まれているデ
ータを保護することが可能となるとともに、そのデータ
ロストが起こった位置を確認することが可能となる。
【0184】また、本発明の一態様によれば、バッファ
へのデータの書き込みを分岐発生時から再開し、その時
の分岐情報として絶対アドレスをバッファに書き込むこ
とにより、データの書き込みの再開時にトレース不能な
データが書き込まれることを防止して、データトレース
を効率的に行うことが可能となる。
【0185】また、本発明の一態様によれば、バッファ
をトレースメモリとして使用することにより、バッファ
の容量分だけは、データ消失させないでトレースデータ
を保持することが可能となり、データ消失がないトレー
スデータのデバッグを保証することが可能となる。
【図面の簡単な説明】
【図1】本発明の第1実施例に係わる情報処理装置の構
成を示すブロック図である。
【図2】本発明の第2実施例に係わる情報処理装置の構
成を示すブロック図である。
【図3】図2のアドレス変位及び実行命令数の算出方法
を示す図である。
【図4】図2の情報処理装置の出力データの一例を示す
図である。
【図5】本発明の第3実施例に係わる情報処理装置の構
成を示すブロック図である。
【図6】図5の実行命令数カウンタ23の動作を示すフ
ローチャートである。
【図7】図5の制御部34の動作を示すフローチャート
である。
【図8】本発明の第4実施例に係わる情報処理装置の構
成を示すブロック図である。
【図9】図8の分岐検出部75及びエンコーダ77の構
成の一例を示すブロック図である。
【図10】アドレスブロック数算出処理の一例を示すフ
ローチャートである。
【図11】データブロック数算出処理の一例を示すフロ
ーチャートである。
【図12】図8のFIFO90の構成例を示すブロック
図である。
【図13】図8の制御部87の動作の一例を示すフロー
チャートである。
【図14】(a)は図8のパイプライン73の動作を説
明する図、(b)は分岐命令実行時の差分アドレスの生
成方法を説明する図、(c)は分岐による差分アドレス
とデータアクセスによるトレースデータの生成タイミン
グを説明する図である。
【図15】従来のトレース装置の構成を示すブロック図
である。
【図16】従来のトレース装置の構成を示すブロック図
である。
【図17】図16のDSU224の構成を示すブロック
図である。
【符号の説明】
1 競合検出手段 2 出力データ選択手段 3 遅延手段 11 アドレス変位算出手段 12 命令実行数算出手段 13 有効桁数算出手段 14 データ出力手段 21、71 CPU 22、72 DSU 23、74 実行命令数カウンタ 24、75 分岐検出部 25、76、132 減算器 26、30、37、77、81、91 エンコーダ 27、32、78、83 タグ生成部 28、29、31、79、80、82 バッファ 34、87 制御部 35、88 競合検出部 33、86 マルチプレクサ 36、143 パラレルシリアル変換部 38、92 ICE 39、93 トレースメモリ 73 パイプライン 84、89 レジスタ 85 比較部 90 FIFO 131 命令アドレス用ラッチ 133 アドレスブロック数算出部 141 2ポートRAM 142 比較回路

Claims (18)

    【特許請求の範囲】
  1. 【請求項1】 命令実行中の分岐の発生を検出する分岐
    発生検出手段と、 前記分岐に対する分岐情報を生成する分岐情報生成手段
    と、 データアクセスに対するデータアクセス情報を生成する
    データアクセス情報生成手段と、 前記分岐情報を前記データアクセス情報の出力系列の中
    に挿入して出力するデータ出力手段とを備えることを特
    徴とする情報処理装置。
  2. 【請求項2】 前記データ出力手段は、 前記データアクセス情報を遅延させる遅延手段と、 前記分岐情報の出力と前記データアクセス情報の出力と
    の競合を検出する競合検出手段とを備え、 前記競合が検出された場合、前記分岐情報の出力後に、
    前記遅延手段で遅延させたデータアクセス情報を出力す
    ることを特徴とする請求項1に記載の情報処理装置。
  3. 【請求項3】 前記分岐の発生によりキャンセルされた
    命令を検出するキャンセル命令検出手段をさらに備え、 前記データ出力手段は、前記キャンセルされた命令の出
    力を行わないようにすることを特徴とする請求項1また
    は2に記載の情報処理装置。
  4. 【請求項4】 前記分岐情報生成手段は、 前記分岐によるアドレス変位を算出するアドレス変位算
    出手段と、 前記分岐の発生から次の分岐の発生までの命令実行数を
    算出する命令実行数算出手段と、 前記アドレス変位算出手段における算出結果の有効桁数
    を算出する第1の有効桁数算出手段と、 前記命令実行数算出手段における算出結果の有効桁数を
    算出する第2の有効桁数算出手段とを備え、 前記データ出力手段は、前記分岐情報として、前記アド
    レス変位及び前記命令実行数を前記有効桁数分だけ出力
    することを特徴とする請求項1〜3のいずれか1項に記
    載の情報処理装置。
  5. 【請求項5】 前記分岐情報生成手段は、前記有効桁数
    を前記分岐情報の中に含めることを特徴とする請求項4
    に記載の情報処理装置。
  6. 【請求項6】 前記分岐情報生成手段により生成された
    相対アドレスの有効桁数と前記分岐による絶対アドレス
    の桁数とを比較する比較手段をさらに備え、 前記データ出力手段は、前記比較結果に基づいて、前記
    相対アドレスまたは前記絶対アドレスを切り替えて出力
    することを特徴とする請求項4または5に記載の情報処
    理装置。
  7. 【請求項7】 前記データアクセス情報生成手段は、 データアドレスの有効桁数を算出する第3の有効桁数算
    出手段と、 アクセスデータの有効桁数を算出する第4の有効桁数算
    出手段とを備え、 前記データ出力手段は、前記データアクセス情報とし
    て、前記データアドレス及び前記アクセスデータを前記
    有効桁数分だけ出力することを特徴とする請求項1〜6
    のいずれか1項に記載の情報処理装置。
  8. 【請求項8】 前記データ出力手段は、所定の期間に最
    低1回は相対アドレスではなく、絶対アドレスを出力す
    ることを特徴とする請求項4〜7のいずれか1項に記載
    の情報処理装置。
  9. 【請求項9】 前記データ出力手段は、 出力データの出力タイミングを調整するバッファと、 前記バッファから読み出されたデータのパラレルシリア
    ル変換を行うパラレルシリアル変換手段と、 前記パラレルシリアル変換後のデータを出力する第1の
    出力バスと、 前記前記バッファから読み出されたデータをデコードす
    るデコード手段と、 前記デコード結果に基づいて、前記第1の出力バスから
    出力されているデータのステータスを出力する第2の出
    力バスとを備えることを特徴とする請求項1〜8のいず
    れか1項に記載の情報処理装置。
  10. 【請求項10】 前記パラレルシリアル変換手段は、出
    力データの有効桁以外の部分を切り捨てながら、パラレ
    ルシリアル変換を行うことを特徴とする請求項9に記載
    の情報処理装置。
  11. 【請求項11】 前記データ出力手段は、前記データ出
    力手段に入力されたデータをパラレルに出力する第3の
    出力バスを備え、 前記第3の出力バスから出力される分岐情報は、絶対ア
    ドレスであることを特徴とする請求項9または10に記
    載の情報処理装置。
  12. 【請求項12】 前記データ出力手段は、前記第3の出
    力バスから分岐情報及びデータアクセス情報を出力する
    場合、前記第1の出力バスから前記分岐情報及び前記デ
    ータアクセス情報以外のシステム情報を出力することを
    特徴とする請求項11に記載の情報処理装置。
  13. 【請求項13】 前記データ出力手段は、 前記バッファがフルになった場合、データ消失ステータ
    スを前記バッファに書き込む書き込み手段と、 前記データ消失ステータスを書き込んだ後の前記バッフ
    ァへのデータの書き込みを中断する中断手段とを備える
    ことを特徴とする請求項9〜12のいずれか1項に記載
    の情報処理装置。
  14. 【請求項14】 前記データ出力手段は、前記バッファ
    に空きができた後に分岐が発生した場合、分岐情報とし
    て絶対アドレスを前記バッファに書き込んでから、前記
    バッファへのデータの書き込みを再開することを特徴と
    する請求項13に記載の情報処理装置。
  15. 【請求項15】 前記バッファをトレースメモリとして
    使用することを特徴とする請求項9〜14のいずれか1
    項に記載の情報処理装置。
  16. 【請求項16】 命令実行中の分岐の発生を検出するス
    テップと、 前記分岐の発生とデータアクセスとの競合を検出するス
    テップと、 前記競合が検出された場合、前記分岐を示す情報を出力
    した後に、前記データアクセスを示す情報を出力するス
    テップとを備えることを特徴とするトレースデータの出
    力方法。
  17. 【請求項17】 分岐によるアドレス変位を算出するス
    テップと、 前記分岐の発生から次の分岐の発生までの命令実行数を
    算出するステップと、 前記アドレス変位及び命令実行数の有効桁数を算出する
    ステップと、 前記アドレス変位及び前記命令実行数の有効桁の部分の
    みを分岐情報として出力するステップとを備えることを
    特徴とするトレースデータの出力方法。
  18. 【請求項18】 トレースデータの出力タイミング調整
    用のバッファがフルになった場合、データ消失ステータ
    スを前記バッファに書き込むステップと、 前記バッファへのデータの書き込みを中断するステップ
    と、 前記バッファに空きができた後に分岐が発生した場合、
    分岐情報として絶対アドレスを前記バッファに書き込む
    ステップと、 、前記バッファへのデータの書き込みを再開するステッ
    プとを備えることを特徴とするトレースデータの出力方
    法。
JP37285198A 1998-12-28 1998-12-28 情報処理装置 Expired - Fee Related JP3583937B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP37285198A JP3583937B2 (ja) 1998-12-28 1998-12-28 情報処理装置
US09/422,864 US6594782B1 (en) 1998-12-28 1999-10-25 Information processing apparatus

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP37285198A JP3583937B2 (ja) 1998-12-28 1998-12-28 情報処理装置

Publications (2)

Publication Number Publication Date
JP2000194581A true JP2000194581A (ja) 2000-07-14
JP3583937B2 JP3583937B2 (ja) 2004-11-04

Family

ID=18501154

Family Applications (1)

Application Number Title Priority Date Filing Date
JP37285198A Expired - Fee Related JP3583937B2 (ja) 1998-12-28 1998-12-28 情報処理装置

Country Status (2)

Country Link
US (1) US6594782B1 (ja)
JP (1) JP3583937B2 (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002288999A (ja) * 2001-03-27 2002-10-04 Fujitsu Ltd 半導体メモリ
JP2009259289A (ja) * 2009-08-07 2009-11-05 Stmicroelectronics Sa マイクロプロセッサのモニタ回路により伝送されるメッセージの時間的相関
JP2010123050A (ja) * 2008-11-21 2010-06-03 Renesas Technology Corp 半導体装置
WO2012137599A1 (ja) * 2011-04-05 2012-10-11 ルネサスエレクトロニクス株式会社 半導体装置

Families Citing this family (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001184212A (ja) * 1999-12-24 2001-07-06 Mitsubishi Electric Corp トレース制御回路
JP2001202270A (ja) * 2000-01-21 2001-07-27 Mitsubishi Electric Corp 内部バストレース機能付プロセッサ
JP2003085000A (ja) * 2001-09-10 2003-03-20 Mitsubishi Electric Corp トレース情報生成装置およびその方法
US20030120970A1 (en) * 2001-12-24 2003-06-26 Chih-Yung Chen Method and apparatus for debugging an electronic product using an internal I/O port
JP2003263337A (ja) * 2002-03-08 2003-09-19 Seiko Epson Corp デバック機能内蔵型マイクロコンピュータ
JP2003296136A (ja) * 2002-04-04 2003-10-17 Mitsubishi Electric Corp トレース装置
US7565576B2 (en) * 2003-04-17 2009-07-21 Seagate Technology Llc Method and apparatus for obtaining trace data of a high speed embedded processor
WO2005112296A2 (en) 2004-04-29 2005-11-24 Interdigital Technology Corporation Wireless communication method and system for configuring radio access bearers for enhanced uplink services
TWI511583B (zh) * 2004-05-07 2015-12-01 Interdigital Tech Corp 配置具增強上鏈服務胞元之無線通信系統及方法
US7702964B2 (en) * 2004-05-11 2010-04-20 Qualcomm Incorporated Compression of data traces for an integrated circuit with multiple memories
US7603589B2 (en) * 2005-05-16 2009-10-13 Texas Instruments Incorporated Method and system for debugging a software program
US20060294343A1 (en) * 2005-06-27 2006-12-28 Broadcom Corporation Realtime compression of microprocessor execution history
US7773626B2 (en) * 2006-11-14 2010-08-10 Intel Corporation Technique to improve network switch throughput
US7870436B2 (en) * 2007-04-25 2011-01-11 Broadcom Corporation System and method for tracing acceleration in an embedded device
JPWO2009031254A1 (ja) * 2007-09-03 2010-12-09 パナソニック株式会社 半導体装置及び開発支援装置
FR2977342A1 (fr) * 2011-06-30 2013-01-04 Proton World Int Nv Verification d'integrite d'un programme execute par un circuit electronique
US10819791B2 (en) * 2013-10-11 2020-10-27 Ge Aviation Systems Llc Data communications network for an aircraft
US9753836B2 (en) * 2014-09-12 2017-09-05 Intel Corporation Low power debug architecture for system-on-chips (SoCs) and systems
CN104516820B (zh) * 2015-01-16 2017-10-27 浪潮(北京)电子信息产业有限公司 一种独热码检测方法和独热码检测器
CN108563583A (zh) * 2018-05-07 2018-09-21 清华大学 数据竞争检测工具的检测效果评估方法及装置

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6286442A (ja) 1985-10-14 1987-04-20 Hitachi Ltd デ−タ処理装置
JPH02205937A (ja) 1989-02-03 1990-08-15 Nec Corp 情報処理システム
JPH04287241A (ja) 1991-03-18 1992-10-12 Nec Corp 履歴情報記憶装置
JPH04287242A (ja) 1991-03-18 1992-10-12 Nec Corp 履歴情報記憶装置
JPH05158734A (ja) 1991-12-09 1993-06-25 Matsushita Electric Ind Co Ltd マイクロプロセッサ
US5463746A (en) * 1992-10-30 1995-10-31 International Business Machines Corp. Data processing system having prediction by using an embedded guess bit of remapped and compressed opcodes
JPH09114692A (ja) 1995-10-23 1997-05-02 Yokogawa Digital Computer Kk インサーキットエミュレータ
US5832205A (en) * 1996-08-20 1998-11-03 Transmeta Corporation Memory controller for a microprocessor for detecting a failure of speculation on the physical nature of a component being addressed
US6009270A (en) * 1997-04-08 1999-12-28 Advanced Micro Devices, Inc. Trace synchronization in a processor
US5978902A (en) * 1997-04-08 1999-11-02 Advanced Micro Devices, Inc. Debug interface including operating system access of a serial/parallel debug port
US6142683A (en) * 1997-04-08 2000-11-07 Advanced Micro Devices, Inc. Debug interface including data steering between a processor, an input/output port, and a trace logic
US6247146B1 (en) * 1998-08-17 2001-06-12 Advanced Micro Devices, Inc. Method for verifying branch trace history buffer information
US6351844B1 (en) * 1998-11-05 2002-02-26 Hewlett-Packard Company Method for selecting active code traces for translation in a caching dynamic translator
US6418530B2 (en) * 1999-02-18 2002-07-09 Hewlett-Packard Company Hardware/software system for instruction profiling and trace selection using branch history information for branch predictions
US6347383B1 (en) * 1999-03-31 2002-02-12 International Business Machines Corporation Method and system for address trace compression through loop detection and reduction

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002288999A (ja) * 2001-03-27 2002-10-04 Fujitsu Ltd 半導体メモリ
JP2010123050A (ja) * 2008-11-21 2010-06-03 Renesas Technology Corp 半導体装置
JP2009259289A (ja) * 2009-08-07 2009-11-05 Stmicroelectronics Sa マイクロプロセッサのモニタ回路により伝送されるメッセージの時間的相関
WO2012137599A1 (ja) * 2011-04-05 2012-10-11 ルネサスエレクトロニクス株式会社 半導体装置
JP5559932B2 (ja) * 2011-04-05 2014-07-23 ルネサスエレクトロニクス株式会社 半導体装置

Also Published As

Publication number Publication date
JP3583937B2 (ja) 2004-11-04
US6594782B1 (en) 2003-07-15

Similar Documents

Publication Publication Date Title
JP3583937B2 (ja) 情報処理装置
US5706459A (en) Processor having a variable number of stages in a pipeline
KR920006275B1 (ko) 데이타 처리 장치
US7545381B2 (en) Interruptible GPU and method for context saving and restoring
JP2761956B2 (ja) パイプライン式データ処理システム
EP0459445A2 (en) Method for processing by processor
US5446849A (en) Electronic computer which executes squash branching
JPS63301339A (ja) コンピュ−タ装置
JPH1185512A (ja) 命令圧縮格納および命令復元機能を有するデータ処理装置
JP2693678B2 (ja) データ処理装置
US7376820B2 (en) Information processing unit, and exception processing method for specific application-purpose operation instruction
US4747045A (en) Information processing apparatus having an instruction prefetch circuit
US6839869B2 (en) Trace control circuit for tracing CPU operation in real time
JP2513417B2 (ja) 情報処理装置
US6754813B1 (en) Apparatus and method of processing information for suppression of branch prediction
JPH1078887A (ja) デバッグシステム及びデバッグ方法
US20040111592A1 (en) Microprocessor performing pipeline processing of a plurality of stages
EP0376258B1 (en) Control system and method for fetching an instruction
EP0374598B1 (en) Control store addressing from multiple sources
RU2138075C1 (ru) Микрокомпьютер с развитыми средствами поддержки
JP3628265B2 (ja) マルチプロセッサシステム装置
KR100237642B1 (ko) 파이프라인 정지회로를 구비한 프로세서
US5630158A (en) Central processing unit including inhibited branch area
EP0415351A2 (en) Data processor for processing instruction after conditional branch instruction at high speed
US20020069351A1 (en) Memory data access structure and method suitable for use in a processor

Legal Events

Date Code Title Description
TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20040727

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20040730

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20080806

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20090806

Year of fee payment: 5

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313111

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

Free format text: PAYMENT UNTIL: 20090806

Year of fee payment: 5

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: 20090806

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20100806

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20110806

Year of fee payment: 7

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

Free format text: PAYMENT UNTIL: 20110806

Year of fee payment: 7

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

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: 20110806

Year of fee payment: 7

R371 Transfer withdrawn

Free format text: JAPANESE INTERMEDIATE CODE: R371

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

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: 20110806

Year of fee payment: 7

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: 20110806

Year of fee payment: 7

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

Free format text: PAYMENT UNTIL: 20120806

Year of fee payment: 8

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

Free format text: PAYMENT UNTIL: 20130806

Year of fee payment: 9

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313111

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

LAPS Cancellation because of no payment of annual fees