JP2878264B1 - トレーサ装置、トレースデータ圧縮方法および圧縮トレースデータ読み出し方法 - Google Patents

トレーサ装置、トレースデータ圧縮方法および圧縮トレースデータ読み出し方法

Info

Publication number
JP2878264B1
JP2878264B1 JP10059461A JP5946198A JP2878264B1 JP 2878264 B1 JP2878264 B1 JP 2878264B1 JP 10059461 A JP10059461 A JP 10059461A JP 5946198 A JP5946198 A JP 5946198A JP 2878264 B1 JP2878264 B1 JP 2878264B1
Authority
JP
Japan
Prior art keywords
compressed
instruction
data
trace data
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.)
Expired - Fee Related
Application number
JP10059461A
Other languages
English (en)
Other versions
JPH11259335A (ja
Inventor
大 清水
Original Assignee
甲府日本電気株式会社
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 甲府日本電気株式会社 filed Critical 甲府日本電気株式会社
Priority to JP10059461A priority Critical patent/JP2878264B1/ja
Application granted granted Critical
Publication of JP2878264B1 publication Critical patent/JP2878264B1/ja
Publication of JPH11259335A publication Critical patent/JPH11259335A/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Abstract

【要約】 【課題】多くのトレースデータを採取できるトレーサ装
置を提供する。 【解決手段】実行した命令のアドレスとその命令語長を
出力するとともに、その命令の実行により命令が分岐さ
れたか否かを判定する命令制御回路1と、分岐判定結果
に基づいて、命令アドレスのうち命令が分岐されなかっ
たものについては、その命令語長を特定する番号を圧縮
トレースデータとして出力するとともに該データが圧縮
データであることを示す圧縮結果を出力し、命令が分岐
されたものについては、該命令アドレスをそのまま圧縮
トレースデータとして出力するとともに該データが圧縮
データでないことを示す圧縮結果を出力する圧縮データ
生成回路2と、出力された圧縮トレースデータおよび圧
縮結果をトレースメモリ4に格納するトレーサ制御回路
3を有する。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、計算機システムの
動作データを時系列に保存するトレーサ装置に関し、特
にトレースデータを圧縮する機能を有するトレーサ装置
に関する。さらには、トレースデータを圧縮する方法お
よびその圧縮されたトレースデータを読み出す方法に関
する。
【0002】
【従来の技術】従来、プログラムトレーサ装置は計算機
システムの動作データを時系列にさかのぼって保存して
おくため、評価時および障害発生時に解析を行う手段と
して用いられている。プログラムトレーサ装置は、その
性質上、トレースするデータ量が多いほど解析が容易と
なる。そのため、最近では、トレースデータを圧縮する
機能を有するプログラムトレーサ装置が提案されてい
る。
【0003】トレースデータを圧縮する機能を有するプ
ログラムトレーサ装置の一例として、特開昭62-111334
号公報には、実行プログラム中の各分岐命令に対応する
通過アドレス情報を保持する第1のフリップ・フロップ
と、上記分岐命令より後に行われた分岐命令に対応する
通過アドレス情報を保持する第2のフリップ・フロップ
とを有し、これらフリップ・フロップに保持された通過
アドレス情報を比較し、該比較結果に基づいて分岐命令
に対応する通過アドレス情報の記録を制御するようにし
たプログラムトレーサ装置が開示されている。
【0004】このプログラムトレーサ装置では、プログ
ラムがループ状態になり、同一分岐命令が繰り返し実行
されるとき、同一分岐命令に対応する通過アドレス情報
の重複記録を禁止することでトレースデータの圧縮が行
われる。
【0005】
【発明が解決しようとする課題】しかしながら、上述し
た特開昭62-111334号公報に記載のプログラムトレーサ
装置においては、プログラムがループ状態に移入した場
合にしかトレースデータの圧縮は行われず、通常の場合
は、データを圧縮せずに採取が行われる。そのため、プ
ログラムがループになっていない場合は、トレースデー
タの圧縮は全く行われずにトレースデータが採取され続
けてしまい、プログラムデバッグや障害解析時に十分な
解析ができない。
【0006】本発明の目的は、限られたトレーサメモリ
で、多くのトレースデータを採取できるトレーサ装置を
提供することにある。さらには、トレースデータを圧縮
する方法およびその圧縮されたトレースデータを読み出
す方法を提供することにある。
【0007】
【課題を解決するための手段】上記目的を達成するた
め、本発明のトレーサ装置は、トレースデータを格納す
るためのトレースメモリ手段と、実行した命令のアドレ
スとその命令語長を出力するとともに、その命令の実行
により命令が分岐されたか否かを判定し、該分岐判定結
果を出力する命令制御手段と、前記分岐判定結果に基づ
いて、前記命令制御手段から出力された命令アドレスの
うち命令が分岐されなかったものについては、その命令
語長を特定する番号を圧縮トレースデータとして出力す
るとともに該圧縮トレースデータが圧縮データであるこ
とを示す圧縮結果を出力し、命令が分岐されたものにつ
いては、該命令アドレスをそのまま圧縮トレースデータ
として出力するとともに該圧縮トレースデータが圧縮デ
ータでないことを示す圧縮結果を出力する圧縮データ生
成手段と、前記圧縮トレースデータおよび圧縮結果をト
レースデータとして前記トレースメモリ手段に格納する
トレーサ制御手段と、を有することを特徴とする。
【0008】本発明のトレースデータ圧縮方法は、実行
した命令のアドレスの命令語長を求めるとともに該命令
の実行により命令が分岐されたか否かを判定し、命令が
分岐されなかった命令については、その命令アドレスの
命令語長を特定する番号を圧縮トレースデータとして格
納するとともに該圧縮トレースデータが圧縮データであ
ることを示す圧縮結果を格納し、命令が分岐されたもの
については、その命令アドレスを圧縮トレースデータと
して格納するとともに該圧縮トレースデータが圧縮デー
タでないことを示す圧縮結果を格納することを特徴とす
る。
【0009】本発明の圧縮トレースデータ読み出し方法
は、上述のトレースデータ圧縮方法によって格納された
圧縮トレースデータを読み出す方法であって、最後に格
納された圧縮トレースデータを開始ポイントとして、前
記格納された圧縮トレースデータをその格納順序とは逆
の順序で取り出すとともに取り出した圧縮トレースデー
タについて圧縮結果を基に圧縮データか否かを判断し、
前記開始ポイントの圧縮トレースデータについては、ト
レース終了時または中断時の命令アドレスをベースアド
レスとし、該開始ポイントの圧縮トレースデータ以降の
圧縮トレースデータについては、1つ前に読み出された
圧縮トレースデータの命令アドレスをベースアドレスと
し、取り出された圧縮トレースデータが圧縮データの場
合は、該圧縮トレースデータとして格納された、命令語
長を特定する番号から元の命令語長を求め、前記ベース
アドレスからその求めた命令語長分のアドレスを減算し
た値を読み出すべき命令アドレスとし、取り出された圧
縮トレースデータが圧縮データでない場合は、該圧縮ト
レースデータとして格納された命令アドレスを、そのま
ま読み出すべき命令アドレスとすることを特徴とする。 (作用)前述したような従来のトレースデータの圧縮
は、プログラムがループ状態に移入した場合にその分岐
命令について通過アドレス情報の重複記録を禁止するだ
けで、命令アドレスそのものを圧縮することは行われて
いない。これに対して、上記のとおりの本発明によれ
ば、実行された命令アドレスのうち命令が分岐されなか
った命令アドレスについて、その命令語長を特定する番
号が圧縮トレースデータとしてトレースされる。このよ
うに、本発明では、命令アドレスそのものを圧縮するこ
とができるので、従来の場合と比較して、多くのトレー
スデータの採取が可能となる。
【0010】
【発明の実施の形態】次に、本発明の実施形態について
図面を参照して説明する。
【0011】本発明の一実施形態である、トレースデー
タ圧縮機能を備えるプログラムトレーサ装置の概略構成
を図1に示す。このプログラムトレーサ装置は、命令制
御回路1、圧縮データ生成回路2、トレーサ制御回路
3、トレーサメモリ4、トレーサリード回路5から構成
される。
【0012】命令制御回路1はプログラム実行を制御す
る回路で、実行した命令のアドレス101とその命令語
長102を出力するとともに、その命令の実行により命
令が分岐されたか否かを判定し、該判定結果103を出
力する。ここでは、判定結果103の出力は、実行した
命令が分岐命令で分岐が成功した場合に「1」が出力さ
れ、実行した命令が通常命令である場合や分岐命令であ
っても分岐が成功しなかった場合には「0」が出力され
るものとする。これら命令アドレス101、命令語長1
02および判定結果103は圧縮データ生成回路2に入
力される。なお、命令制御回路1は、プログラム実行中
の間、命令アドレス101、命令語長102および判定
結果103を出力し続けるが、プログラムストップ時に
は、トレースをストップさせるためのトレーサストップ
信号104を出力する。このトレーサストップ信号10
4はトレーサ制御回路3に入力されており、プログラム
ストップ時には、トレーサストップ信号104が「1」
にセットされてトレースストップ指示が出される。
【0013】圧縮データ生成回路2は、判定結果103
が「0」の場合には圧縮可能と判断し、命令制御回路1
から出力された命令アドレス101について、その命令
語長102を特定する番号を圧縮トレースデータ201
として出力するとともに圧縮結果202として「1」を
出力し、判定結果103が「1」の場合には圧縮不可能
と判断し、命令制御回路1から出力された命令アドレス
101をそのまま圧縮トレースデータ201として出力
するとともに圧縮結果202として「0」を出力する。
ここで、命令語長102を特定する番号は、命令語長の
種類が2種類である場合、nビットのデータである。
例えば、命令語長が4種類ある場合はn=2となり、2
ビットのデータが圧縮トレースデータとして出力され
る。この圧縮トレースデータ201は、圧縮結果202
が「0」(圧縮不可能)の場合は命令アドレス101の
データ幅と同じになり、圧縮結果202が「1」(圧縮
可能)の場合にはnビットになる。これら圧縮トレース
データ201および圧縮結果202はトレーサ制御回路
3に入力される。
【0014】トレーサ制御回路3は、トレーサメモリ4
に対するトレースデータの書き込みの制御を行う。この
トレーサ制御回路3は、圧縮トレースデータ201およ
び圧縮結果202を一旦格納し、該格納データがトレー
サメモリ4に格納する単位のデータ量になった時点でト
レーサメモリ4へ書き込む(トレーサライトデータ30
1)。
【0015】トレーサリード回路5は、プログラムデバ
ッグや障害解析時に、トレーサメモリ4に書き込まれた
圧縮トレースデータをその格納順序とは逆の順序で取り
込んで順次解凍を行う(トレーサリードデータ40
1)。
【0016】次に、このトレーサ装置におけるトレース
データ圧縮およびその読み出しについて説明する。
【0017】(1)トレースデータの圧縮 トレースデータの圧縮の手順を図2に示す。以下、図2
を参照してトレースデータの圧縮を具体的に説明する。
【0018】命令制御回路1はプログラムを実行する
と、実行した命令について命令アドレス101と命令語
長102を出力するとともに、その実行命令により命令
が分岐されたか否かを判定し、分岐していない場合を
「0」、分岐した場合を「1」とする分岐判定結果10
3を出力する(ステップ10)。続いて、圧縮データ生
成回路2は、出力された各命令アドレス101につい
て、それぞれの分岐判定結果103から圧縮可能かどう
かを判断する(ステップ11)。
【0019】分岐判定結果103が「0」の場合は、圧
縮データ生成回路2は圧縮可能と判断し、命令アドレス
101についてその命令語長102を特定する番号を圧
縮トレースデータ201として出力するとともに、圧縮
結果202として、その出力した圧縮トレースデータ2
01が圧縮データである旨を示す「1」を出力する(ス
テップ12)。分岐判定結果103が「1」の場合は、
圧縮データ生成回路2は圧縮不可能と判断し、命令アド
レス101をそのまま圧縮トレースデータ201として
出力するとともに、圧縮結果202として、その出力し
た圧縮トレースデータ201が圧縮データでない旨を示
す「0」を出力する(ステップ13)。このステップ1
2,13の処理をさらに具体的に説明すると、以下のよ
うなことになる。
【0020】例えば命令語長が2,4,6,8バイトの
4種類ある場合、2バイト命令の命令語長を番号「0
0」、4バイト命令の命令語長を番号「01」、6バイ
ト命令の命令語長を番号「10」、8バイト命令の命令
語長を番号「11」で表わす。そして、分岐判定結果1
03が「0」の場合は、命令アドレス101の圧縮トレ
ースデータ201としてその命令語長102を特定する
番号「00」〜「11」を出力するとともに、圧縮結果
202としてその出力した圧縮トレースデータ201が
圧縮データである旨を示す「1」を出力する。分岐判定
結果103が「1」の場合は、命令アドレス101をそ
のまま圧縮トレースデータ201として出力するととも
に、圧縮結果202としてその出力した圧縮トレースデ
ータ201が圧縮データでない旨を示す「0」を出力す
る。例えば、図3に示しすように、命令が分岐しない
(1)〜(6),(8),(9),(11)〜(14)では、命令語長を特定す
る「00」〜「11」の番号(圧縮トレースデータ20
1)に「1」(圧縮結果202)を付加したデータを出
力し、(7),(10)では分岐成功のために、命令アドレス
「08002028」、「080020E0」(圧
縮トレースデータ201)にそれぞれ「0」(圧縮結果
202)を付加したデータを出力する。図3中、(1)〜
(14)はトレースの順番を示す。
【0021】上述のようにして圧縮トレースデータ20
1および圧縮結果202が圧縮データ生成回路2から出
力されると、トレーサ制御回路3がその出力された圧縮
トレースデータ201および圧縮結果202を一旦格納
する(ステップ14)。そして、トレーサ制御回路3
は、格納データが所定量(トレーサメモリ4に格納する
単位のデータ量)に達した時点で、その格納したデータ
をトレーサメモリ4へ書き込む(ステップ15)。この
ように、格納データをトレーサメモリ4に格納する単位
のデータ幅でトレーサメモリ4へのデータの書き込みむ
ことにより、トレーサメモリ4の記憶領域を有効に使用
することができる。
【0022】以上のトレース動作は、プログラムの実行
が終了し、あるいは中断するまで行われる。プログラム
の実行が終了し、あるいは中断した場合は、命令制御回
路1がトレーサストップ信号104を「1」にしてトレ
ーサストップ指示を出す。トレーサ制御回路3は、トレ
ーサストップ信号104が「1」にセットされると、現
在格納しているデータを全てトレーサメモリ4へ書き込
む。
【0023】(2)圧縮トレースデータの読み出し トレーサリード回路5によって行われる圧縮トレースデ
ータの読み出し手順のフローチャートを図4に示す。以
下、図4を参照して圧縮トレースデータの読み出しを具
体的に説明する。
【0024】トレーサメモリ4に最後に書き込まれたデ
ータ(圧縮トレースデータ201および圧縮結果20
2)が最新のトレースデータであることから、この最新
のトレースデータを解凍開始ポイントとする(ステップ
20)。そして、トレーサストップ終了時または中断時
の命令アドレスをベースアドレスとし(ステップ2
1)、まず、解凍開始ポイントとした圧縮トレースデー
タについて解凍を行う。ここで、トレーサストップ時の
命令アドレスは、例えばプログラム中断時に実行された
命令の次の命令のアドレスである。
【0025】この解凍では、まず、解凍開始ポイントと
した圧縮トレースデータの圧縮結果が「1」であるかど
うかの判定を行う(ステップ22)。圧縮結果が「1」
である場合は、その圧縮トレースデータは命令語長を特
定する番号で書き込まれているので、これを取り出して
元の命令語長に変換する(ステップ23)。そして、ベ
ースアドレスからその命令語長分のアドレスを減算した
値を、その取り出した圧縮トレースデータの命令アドレ
スとするとともに次解凍のベースアドレスとする(ステ
ップ24)。圧縮結果が「0」である場合は、その圧縮
トレースデータは命令アドレスで書き込まれているの
で、これを取り出して命令アドレスとするとともに次解
凍のベースアドレスとする(ステップ25)。
【0026】上記のステップ24またはステップ25で
次解凍のベースアドレスが設定されると、次いで、他に
未解凍の圧縮トレースデータがあるかどうかを調べる
(ステップ26)。未解凍の圧縮トレースデータがある
場合は、上述のステップ22に戻ってその圧縮トレース
データについて解凍を行う。未解凍の圧縮トレースデー
タがない場合は読み出し処理を終了する。
【0027】以上説明した読み出し処理を、上述の図3
に示したようなトレースが行われて、トレーサストップ
時の命令アドレスが「08002304」(hは16
進数表示を表わす。)となった場合を例に挙げて、具体
的に説明すると以下のようなことになる。
【0028】トレーサ制御回路3によってトレーサメモ
リ4に最後に書き込まれたデータは(14)の2バイト命令
のデータであることから、これを解凍開始ポイントとす
る。そして、トレーサストップ時の命令アドレスである
「08002304」をベースアドレスとし、解凍開
始ポイントとした圧縮トレースデータについて解凍を行
う。この解凍では、解凍開始ポイントとした圧縮トレー
スデータは命令語長を特定する番号「00」で書き込ま
れたものであり、その圧縮結果は「1」であるので、そ
の圧縮トレースデータ「00」を取り出してこれを元の
命令語長(2バイト)に変換する。そして、ベースアド
レスである「08002304」からその命令語長
(2バイト)分を減算した値「08002302」を
得る。この得られた「08002302」が解凍開始
ポイントとした圧縮トレースデータ「00」を解凍した
命令アドレスとなり、次解凍のベースアドレスとなる。
【0029】次いで、他に未解凍の圧縮トレースデータ
があるかどうかを調べる。図3に示したトレースの場
合、(13)でトレースされた圧縮トレースデータ「00」
があるので、この圧縮トレースデータ「00」について
解凍を行う。この解凍では、上記で解凍された(14)の圧
縮トレースデータ「00」の命令アドレス「08002
302」をベースアドレスとして解凍を行う。まず、
圧縮トレースデータ「00」の圧縮結果は「1」である
ので、その圧縮トレースデータ「00」を取り出してこ
れを元の命令語長(2バイト)に変換する。そして、ベ
ースアドレス「08002302」からその命令語長
(2バイト)を減算した値「08002300」を得
る。この得られた「08002300」が(13)でトレ
ースされた圧縮トレースデータ「00」を解凍した命令
アドレスとなり、次解凍のベースアドレスとなる。
【0030】上述のようにして、圧縮トレースデータの
解凍を、解凍開始ポイントから順に、トレーサライト時
とは逆方向に、圧縮結果が「0」となるデータまで行
う。図3に示したトレース例の場合、(10)でトレースさ
れた圧縮トレースデータ「080020E0」の圧縮
結果が「0」となっているので、(11)でトレースされた
圧縮トレースデータまで上述の解凍処理が順に行われ
る。
【0031】(11)までの圧縮トレースデータについて解
凍が行われると、続いて、(10)の圧縮トレースデータ
「080020E0」について解凍を行う。この解凍
では、圧縮トレースデータ「080020E0」は圧
縮結果が「0」であり、命令アドレスをそのまま書き込
んだものであるので、これを取り出してそのまま命令ア
ドレスとするとともに次解凍のベースアドレスとする。
【0032】上述のような解凍手順で図3に示した(14)
〜(1)のトレースデータを順に解凍すると、図5に示す
ような読み出し結果を得られる。
【0033】次に、トレーサ制御回路3のライト制御部
の具体的な構成について説明する。
【0034】図6は、トレースデータ圧縮回路の一構成
例を示すブロック図である。このトレースデータ圧縮回
路は、バッファ制御回路31、バッファ32,33、ラ
イトデータ選択回路34、トレーサライト回路35およ
びトレーサアドレス36より構成される。
【0035】バッファ制御回路31は、時系列に出力さ
れる圧縮トレースデータ201および圧縮結果202
を、バッファ32またはバッファ33に順次格納すると
ともに、ライトデータ選択回路34にバッファ32,3
3のいずれかを選択させるためのバッファ選択信号30
2および選択されたバッファの格納データをトレースメ
モリ4に書き出させるためのイネーブル信号303を出
力する。
【0036】ライトデータ選択回路34は、バッファ3
2,33の出力を選択するもので、バッファ信号302
が「0」のときにバッファ32を選択し、バッファ信号
302が「1」のときにバッファ33を選択する。イネ
ーブル信号303が「1」のときに、バッファ選択信号
302により選択されたバッファの格納データがトレー
サライト回路35へ出力され、イネーブル信号303が
「0」のときにはバッファへのデータの格納が行われ
る。このように、ライトデータ選択回路34は、バッフ
ァ選択信号302により選択されたバッファの格納デー
タ(圧縮トレースデータ201と圧縮結果202)をイ
ネーブル信号303が「1」になったタイミングでトレ
ーサライト回路35へ出力させる。
【0037】トレーサライト回路35は、ライトデータ
選択回路34により選択されたバッファからの出力デー
タ(格納データ)を、上記イネーブル信号303が
「1」になったタイミングで、トレーサライトデータ3
01として出力してトレーサメモリ4に書き込む。この
トレーサライト回路35は、トレーサメモリ4への書き
込みを行う度にトレーサアドレス36を加算する。トレ
ーサアドレス36は、トレーサメモリ4のアドレスを示
すレジスタであり、トレーサメモリ4へトレーサアドレ
ス信号304を出力する。トレーサメモリ4では、この
トレーサアドレス信号304で指定されたアドレスにト
レーサライトデータ301が保持される。
【0038】上述のように構成されたライト制御部で
は、バッファ制御回路31によって、圧縮データ生成回
路2から出力された圧縮トレースデータ201および圧
縮結果202がバッファ32の左端から順に格納され
る。このとき、バッファ制御回路31は、バッファ選択
信号302としてバッファ32を示す「0」を出力して
いる。
【0039】バッファ32がフル状態になると、バッフ
ァ32に格納できなくなった圧縮トレースデータ201
および圧縮結果202がバッファ33の左端から格納さ
れる。バッファ制御回路31は、バッファ32がフル状
態になると、イネーブル信号303を「1」にセットす
る。イネーブル信号303が「1」にセットされると、
ライトデータ選択回路34がバッファ32の格納データ
をトレーサライト回路35へ出力させる。トレーサライ
ト回路35は、トレーサアドレス36をインクリメント
して、バッファ32からの格納データを上記イネーブル
信号303が「1」になったタイミングで、トレーサメ
モリ4のトレーサアドレス信号304で指定されたアド
レスに書き込む。
【0040】バッファ32から全格納データが出力され
てトレーサメモリ4に書き込まれると、バッファ制御回
路31はイネーブル信号303を「0」にセットすると
ともに、バッファ選択信号302を「1」にセットす
る。
【0041】バッファ33がフル状態になると、バッフ
ァ33に格納できなくなった圧縮トレースデータ201
および圧縮結果202がバッファ32の左端から格納さ
れる。バッファ制御回路31は、バッファ33がフル状
態になると、イネーブル信号303を「1」にセットす
る。イネーブル信号303が「1」にセットされると、
ライトデータ選択回路34がバッファ33の格納データ
をトレーサライト回路35へ出力させる。トレーサライ
ト回路35は、トレーサアドレス36をインクリメント
して、バッファ33からの格納データを上記イネーブル
信号303が「1」になったタイミングで、トレーサメ
モリ4のトレーサアドレス信号304で指定されたアド
レスに書き込む。
【0042】バッファ33から全格納データが出力され
てトレーサメモリ4に書き込まれると、バッファ制御回
路31はイネーブル信号303を「0」にセットすると
ともに、バッファ選択信号302を「0」にセットす
る。
【0043】上述のようにして、このライト制御部で
は、2つのバッファ32,33に交互に圧縮トレースデ
ータ201および圧縮結果202を格納しながら、フル
状態になったバッファから格納データのデータを書き出
しが行われる。ここで、バッファ32,33の容量は、
トレーサメモリ4に格納する単位のデータ量に相当し、
トレーサメモリ4への書き込みは、単位のデータ量毎に
行われる。なお、プログラムが終了し、あるいは中断し
た場合は、命令制御回路1から出力されるトレーサスト
ップ信号104に基づいて、バッファ制御回路31がバ
ッファ32またはバッファ33に格納されている全デー
タを出力させるように、バッファ選択信号302および
イネーブル信号303をセットする。
【0044】上述したトレーサ制御回路は、図6に示し
た構成に限定されるものではなく、例えばバッファは3
つ以上であってもよい。
【0045】以上説明したような本発明のトレーサ装置
では、例えば、図2に示した(7)および(10)の命令カウ
ンタを32ビットとすると、(1)〜(14)までのトレース
内容は全部で102ビット存在することとなり、14ワ
ードのトレースが可能となる。これに対して、前述した
従来のトレーサ装置の場合は、102ビットのトレース
では、3ワードしかトレースできない。このように、大
幅なトレース量のアップが期待できる。
【0046】
【発明の効果】以上説明したように構成されている本発
明によれば、従来の場合と比較して、より多くのトレー
スデータの採取ができるので、プログラムデバッグや障
害解析時に十分な解析を行うことができるという効果を
奏する。
【図面の簡単な説明】
【図1】本発明の一実施形態のトレーサ装置の概略構成
を示す図である。
【図2】図1に示すトレーサ装置において行われるトレ
ースデータの圧縮の手順をを説明するためのフローチャ
ート図である。
【図3】トレースデータの一例を示す図である。
【図4】図1に示すトレーサ装置において行われるトレ
ースデータの読出手順を説明するためのフローチャート
図である。
【図5】図3に示すトレースデータを解凍した読み出し
結果を示す図である。
【図6】図1に示すトレースデータ圧縮回路の一構成例
を示すブロック図である。
【符号の説明】
1 命令制御回路 2 圧縮データ生成回路 3 トレーサ制御回路 4 トレーサメモリ 5 トレーサリード回路

Claims (8)

    (57)【特許請求の範囲】
  1. 【請求項1】 トレースデータを格納するためのトレー
    スメモリ手段と、 実行した命令のアドレスとその命令語長を出力するとと
    もに、その命令の実行により命令が分岐されたか否かを
    判定し、該分岐判定結果を出力する命令制御手段と、 前記分岐判定結果に基づいて、前記命令制御手段から出
    力された命令アドレスのうち命令が分岐されなかったも
    のについては、その命令語長を特定する番号を圧縮トレ
    ースデータとして出力するとともに該圧縮トレースデー
    タが圧縮データであることを示す圧縮結果を出力し、命
    令が分岐されたものについては、該命令アドレスをその
    まま圧縮トレースデータとして出力するとともに該圧縮
    トレースデータが圧縮データでないことを示す圧縮結果
    を出力する圧縮データ生成手段と、 前記圧縮トレースデータおよび圧縮結果をトレースデー
    タとして前記トレースメモリ手段に格納するトレーサ制
    御手段と、を有することを特徴とするトレーサ装置。
  2. 【請求項2】 請求項1に記載のトレーサ装置におい
    て、 前記トレーサ制御手段は、圧縮トレースデータおよび圧
    縮結果を一旦格納し、該格納データが所定量に達した時
    点で格納データを前記トレースメモリ手段に格納するこ
    とを特徴とするトレーサ装置。
  3. 【請求項3】 請求項2に記載のトレーサ装置におい
    て、 前記トレーサ制御手段は、圧縮トレースデータおよび圧
    縮結果を格納するための第1および第2のバッファを有
    し、 前記第1および第2のバッファは、一方のバッファがフ
    ル状態になると他方のバッファに切り替わり、フル状態
    となったバッファに格納されたデータが前記トレースメ
    モリ手段に書き出されるよう構成されていることを特徴
    とするトレーサ装置。
  4. 【請求項4】 請求項1に記載のトレーサ装置におい
    て、 前記圧縮データ生成手段は、命令語長の種類が2種類
    である場合、該命令語長を特定する番号としてnビット
    の番号を圧縮トレースデータとして出力することを特徴
    とするトレーサ装置。
  5. 【請求項5】 請求項1に記載のトレーサ装置におい
    て、前記トレーサメモリに書き込まれた圧縮トレースデ
    ータを読み出すトレーサリード手段をさらに有し、 前記トレーサリード手段が、 最後に格納された圧縮トレースデータを開始ポイントと
    して、格納された圧縮トレースデータをその格納順序と
    は逆の順序で取り出すとともに取り出した圧縮トレース
    データについて圧縮結果を基に圧縮データか否かを判断
    し、 前記開始ポイントの圧縮トレースデータについては、ト
    レース終了時または中断時の命令アドレスをベースアド
    レスとし、該開始ポイントの圧縮トレースデータ以降の
    圧縮トレースデータについては、1つ前に読み出された
    圧縮トレースデータの命令アドレスをベースアドレスと
    し、 取り出した圧縮トレースデータが圧縮データの場合は、
    該圧縮トレースデータとして格納された、命令語長を特
    定する番号から元の命令語長を求め、前記ベースアドレ
    スからその求めた命令語長分のアドレスを減算した値を
    命令アドレスとして読み出し、 取り出した圧縮トレースデータが圧縮データでない場合
    は、該圧縮トレースデータとして格納された命令アドレ
    スを、そのまま読み出すことを特徴とするトレーサ装
    置。
  6. 【請求項6】 実行した命令のアドレスの命令語長を求
    めるとともに該命令の実行により命令が分岐されたか否
    かを判定し、 命令が分岐されなかった命令については、その命令アド
    レスの命令語長を特定する番号を圧縮トレースデータと
    して格納するとともに該圧縮トレースデータが圧縮デー
    タであることを示す圧縮結果を格納し、 命令が分岐されたものについては、その命令アドレスを
    圧縮トレースデータとして格納するとともに該圧縮トレ
    ースデータが圧縮データでないことを示す圧縮結果を格
    納することを特徴とするトレースデータ圧縮方法。
  7. 【請求項7】 請求項6に記載のトレースデータ圧縮方
    法において、 命令語長の種類が2種類である場合に、該命令語長を
    特定する番号としてnビットの番号を用いることを特徴
    とするトレースデータ圧縮方法。
  8. 【請求項8】 請求項6または請求項7に記載のトレー
    スデータ圧縮方法によって格納された圧縮トレースデー
    タを読み出す方法であって、 最後に格納された圧縮トレースデータを開始ポイントと
    して、前記格納された圧縮トレースデータをその格納順
    序とは逆の順序で取り出すとともに取り出した圧縮トレ
    ースデータについて圧縮結果を基に圧縮データか否かを
    判断し、 前記開始ポイントの圧縮トレースデータについては、ト
    レース終了時または中断時の命令アドレスをベースアド
    レスとし、該開始ポイントの圧縮トレースデータ以降の
    圧縮トレースデータについては、1つ前に読み出された
    圧縮トレースデータの命令アドレスをベースアドレスと
    し、 取り出された圧縮トレースデータが圧縮データの場合
    は、該圧縮トレースデータとして格納された、命令語長
    を特定する番号から元の命令語長を求め、前記ベースア
    ドレスからその求めた命令語長分のアドレスを減算した
    値を読み出すべき命令アドレスとし、 取り出された圧縮トレースデータが圧縮データでない場
    合は、該圧縮トレースデータとして格納された命令アド
    レスを、そのまま読み出すべき命令アドレスとすること
    を特徴とする圧縮トレースデータ読み出し方法。
JP10059461A 1998-03-11 1998-03-11 トレーサ装置、トレースデータ圧縮方法および圧縮トレースデータ読み出し方法 Expired - Fee Related JP2878264B1 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP10059461A JP2878264B1 (ja) 1998-03-11 1998-03-11 トレーサ装置、トレースデータ圧縮方法および圧縮トレースデータ読み出し方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP10059461A JP2878264B1 (ja) 1998-03-11 1998-03-11 トレーサ装置、トレースデータ圧縮方法および圧縮トレースデータ読み出し方法

Publications (2)

Publication Number Publication Date
JP2878264B1 true JP2878264B1 (ja) 1999-04-05
JPH11259335A JPH11259335A (ja) 1999-09-24

Family

ID=13113985

Family Applications (1)

Application Number Title Priority Date Filing Date
JP10059461A Expired - Fee Related JP2878264B1 (ja) 1998-03-11 1998-03-11 トレーサ装置、トレースデータ圧縮方法および圧縮トレースデータ読み出し方法

Country Status (1)

Country Link
JP (1) JP2878264B1 (ja)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3629181B2 (ja) * 2000-03-28 2005-03-16 Necマイクロシステム株式会社 プログラム開発支援装置
US7093108B2 (en) 2001-02-01 2006-08-15 Arm Limited Apparatus and method for efficiently incorporating instruction set information with instruction addresses
JP4533682B2 (ja) * 2004-06-29 2010-09-01 株式会社東芝 トレース解析装置およびトレース解析方法
JP2007148565A (ja) * 2005-11-24 2007-06-14 Toshiba Corp マイクロプロセッサ
JP5024252B2 (ja) * 2008-09-24 2012-09-12 日本電気株式会社 トレース情報取得装置、トレース情報取得プログラム、および、トレース情報取得方法
GB2560749B (en) * 2017-03-24 2020-10-14 Advanced Risc Mach Ltd Trace data representation

Also Published As

Publication number Publication date
JPH11259335A (ja) 1999-09-24

Similar Documents

Publication Publication Date Title
US7065749B2 (en) Program development compressed trace support apparatus
JP4533682B2 (ja) トレース解析装置およびトレース解析方法
JPH0679290B2 (ja) コンピュ−タ装置
US4975872A (en) Dual port memory device with tag bit marking
JP2878264B1 (ja) トレーサ装置、トレースデータ圧縮方法および圧縮トレースデータ読み出し方法
JPH1040122A (ja) 計算機
JP2591825B2 (ja) 圧縮データを用いた論理回路試験方法及びその装置
JPH08227372A (ja) データ処理装置
JPH06202715A (ja) 状態変化検知記録回路
JP4406119B2 (ja) インサーキットエミュレータ
JPS59158450A (ja) プログラムテスト装置
JPH0635748A (ja) デバッグ方法およびデバッグ装置
JPS59103158A (ja) デイジタル信号処理プログラムデバツグ方式
JPS60549A (ja) メモリ試験方式
JP2002149448A (ja) メモリダンプ装置
JPS59163653A (ja) デバツグ装置
JPH06175883A (ja) プログラムデバッグ装置
JPS5936853A (ja) 演算処理装置
JP2006228108A (ja) トレースデータ記録方法、トレースデータ記録装置及びプログラムデバッグシステム
JP2000035958A (ja) ベクトル命令処理装置、バッファ制御方法、ベクトル演算処理装置、情報処理装置
JPH01314345A (ja) トレースメモリ装置
JPS6191751A (ja) デ−タバツフア出力制御方式
JPS63201741A (ja) ダンプ情報編集出力方式
JPH06204884A (ja) データ復元回路
JPH1165887A (ja) プロセッサ

Legal Events

Date Code Title Description
LAPS Cancellation because of no payment of annual fees