JP2006012064A - トレース装置 - Google Patents

トレース装置 Download PDF

Info

Publication number
JP2006012064A
JP2006012064A JP2004191658A JP2004191658A JP2006012064A JP 2006012064 A JP2006012064 A JP 2006012064A JP 2004191658 A JP2004191658 A JP 2004191658A JP 2004191658 A JP2004191658 A JP 2004191658A JP 2006012064 A JP2006012064 A JP 2006012064A
Authority
JP
Japan
Prior art keywords
trace
information
trace information
memory
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.)
Pending
Application number
JP2004191658A
Other languages
English (en)
Inventor
Katsuyuki Kimura
克行 木村
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.)
Toshiba Corp
Original Assignee
Toshiba 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 Toshiba Corp filed Critical Toshiba Corp
Priority to JP2004191658A priority Critical patent/JP2006012064A/ja
Priority to US11/148,324 priority patent/US7444553B2/en
Publication of JP2006012064A publication Critical patent/JP2006012064A/ja
Pending legal-status Critical Current

Links

Images

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

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)
  • Microcomputers (AREA)

Abstract

【課題】トレース情報を効率的に圧縮して記録し、トレースメモリの情報量を増加させる。
【解決手段】プロセッサ10のプログラム実行状態を示すトレース情報を格納するトレースメモリ32と、トレース情報をあらかじめ定めたトレースフォーマットに圧縮して、トレースメモリ32に循環的に順次格納するトレース情報圧縮ユニット24と、トレースメモリ32に最終的に格納したアドレスを保持するアドレスレジスタ28とを備え、トレースメモリ32の内容をプログラムの実行された順と逆順に解析し、トレースフォーマットの切れ目を探索し、切れ目からプログラムの実行順にトレース解析を行うトレース装置20であり、トレース情報圧縮ユニットは、更にトレース情報の圧縮を停止する圧縮停止部26を備え、トレース開始およびトレース終了時に特定の形式のトレース情報をトレースメモリに格納する。トレース装置20はプロセッサ10に内蔵可能である。
【選択図】図1


Description

本発明は、プロセッサのプログラムの実行状況を示すトレース情報を生成し記録する技術に関し、特にトレース情報を効率的に圧縮し、記録するトレース装置に関する。
近年のマイクロプロセッサは、動作周波数を高めて高性能化するだけでなく、プロセッサが搭載されたシステムの開発期間を短くすることを支援する機能も求められている。プロセッサ及びプロセッサを搭載したシステムの開発では、プロセッサが実行したプログラムの流れやデータ更新の情報(トレース情報)を解析できることは、開発期間の短縮に有効である。このため、プロセッサに、プロセッサのトレース情報を外部に出力する機能を設けて、取り出されたトレース情報からプログラムの流れやデータの更新の状況を解析するインサーキットエミュレータ(ICE:In Circuit Emulator)などの技術開発が行われ提供されている。
一方、プロセッサの高速化により、解析のために信号を取り出すことが困難になってきている。このため、プロセッサのトレース情報を圧縮して、リアルタイムで出力する信号の数を減らす技術開発や、プロセッサ内部にメモリを設けてリアルタイムなトレース情報をメモリに蓄積記録するようにした技術開発も進められている。プロセッサ内部などに設けたメモリにトレース情報を格納する場合、使用するメモリに対して出来るだけトレース情報を多く蓄えるために、可変長のトレース格納フォーマットを用いる方法が知られている(例えば、非特許文献1参照)。
しかしながら、この可変長のトレース格納フォーマットを用いてメモリ(トレースメモリ)にトレース情報を格納する場合、可変長のデータを隙間なく格納することができず、無駄なデータが詰められるという不都合が存在する。
即ち、通常、可変長のトレース格納フォーマットを用いる場合、格納したトレース情報の解析が行えるようにするために、トレースメモリの1ワード(64ビット)毎に、そのワードに格納されたトレース情報の先頭アドレスを求めるための4ビット長の情報を下位側[3:0]に格納している。このため、トレースメモリの1/16の容量がトレース情報を格納する目的に使用できず、また、その情報が示すトレース情報の先頭アドレスが4ビット毎になるため、その直前のトレース情報の最終アドレスが4の倍数−1でない時は、無駄なデータが詰められることになり、使用するメモリに対して出来るだけトレース情報を多く蓄えることの実現を妨げる問題があった。
ミップス・テクノロジーズ著、"EJTAG トレースコントロールブロック仕様", ドキュメント番号:MD00148,改訂版1.04, 2002年3月21日、("EJTAG Trace Control Block Specification",MIPS Technologies Inc. 2001-2002, http://www.mips.jp/04doc/MIPSDoc/ejtag.html, P.3-6)
本発明は、トレース情報を効率的に圧縮して記録し、トレースメモリの情報量を増加させ、性能向上を図る。
本発明の実施の形態の特徴は、(イ)プロセッサのプログラム実行状態を示すトレース情報を格納するトレースメモリと、(ロ)トレース情報をあらかじめ定めたトレースフォーマットに圧縮して、トレースメモリに循環的に順次格納するトレース情報圧縮ユニットと、(ハ)トレースメモリに最終的に格納したアドレスを保持するアドレスレジスタとを備え、(ニ)トレースメモリの内容をプログラムの実行された順と逆順に解析し、トレースフォーマットの切れ目を探索し、切れ目からプログラムの実行順にトレース解析を行うトレース装置であることを要旨とする。
本発明のトレース装置によれば、トレースメモリにトレース情報の格納アドレス情報を格納しなくても個々のトレース情報を切り出すことができて、トレースメモリに格納するトレース情報を増加させることができる。
次に、図面を参照して、本発明の実施の形態を説明する。以下の図面の記載において、同一又は類似の部分には同一又は類似の符号を付している。ただし、図面は模式的なものであり、各ブロックの平面寸法、各データフォーマットの厚み等は現実のものとは異なることに留意すべきである。又、図面相互間においても互いの寸法の関係や比率が異なる部分が含まれていることはもちろんである。
また、以下に示す実施の形態は、この発明の技術的思想を具体化するための装置や方法を例示するものであって、この発明の技術的思想は、各ブロックの構成部品の配置等を下記のものに特定するものでない。この発明の技術的思想は、特許請求の範囲において、種々の変更を加えることができる。
[第1の実施の形態]
本発明の実施の形態に係るトレース装置20は、図1に示すように、プロセッサ10のプログラム実行状態を示すトレース情報を格納するトレースメモリ32と、トレース情報をあらかじめ定めたトレースフォーマットに圧縮して、トレースメモリ32に循環的に順次格納するトレース情報圧縮ユニット24と、トレースメモリ32に最終的に格納したアドレスを保持するアドレスレジスタ28とを備え、トレースメモリ32の内容をプログラムの実行された順と逆順に解析し、トレースフォーマットの切れ目を探索し、切れ目からプログラムの実行順にトレース解析を行う。
更に又、トレース情報圧縮ユニット24は、トレース開始およびトレース終了時、またはトレース開始時に特定の形式のトレース情報をトレースメモリ32に格納する構成を備えていても良い。
又、本発明の実施の形態に係るトレース装置20は、トレース対象であるプロセッサ10に内蔵されていても良いことは勿論である。
本発明の実施の形態に係るトレース装置20を内蔵するプロセッサ10は、図1に示すように、トレース情報出力ユニット18を備えるプロセッサコアモジュール14と、トレース装置20,JTAGデバッグインタフェース22を備えるデバッグモジュール16と、プロセッサコアモジュール14,デバッグモジュール16間をバス36,38を介して接続するメインバス34とから構成される。
プロセッサコアモジュール14は、プロセッサ命令を読み込み実行する。デバッグモジュール16は、JTAGデバッグインタフェース22においてJTAGデバッグ出力バス64を介して外部のJTAGデバッグ装置12に接続されており、デバッグ時に、外部のJTAGデバッグ装置12によって制御可能である。
プロセッサコアモジュール14内に設けられたトレース情報出力ユニット18は、トレース情報出力データバス50を介してトレース装置20に接続されており、プロセッサコアモジュール14の命令実行状態を示す情報を入力して、デバッグモジュール16内のトレース装置20にトレース情報を出力する。
本発明の実施の形態に係るトレース装置20は、図1に示すように、圧縮停止部26を備えるトレース情報圧縮ユニット24と、アドレスレジスタ28及びバッファレジスタ30と、トレースメモリ32とを備える。
プロセッサコアモジュール14で実行されたプログラムを解析するJTAGデバッグ装置12は、図2に示すように、トレースメモリ読み出しデータバス52及び最終格納アドレス読み出しデータバス54に接続され,トレ―ス情報を入力するホストコンピュータ40と、実行中のプログラムのオブジェクト/ソースリスト44をバス58を介して入力するトレース解析プログラム格納部42とを備える。
トレース動作時には、プログラムを実行したプロセッサコアモジュール14内のトレース情報出力ユニット18から、命令の種類,アドレス情報,データ情報,及びトレース情報出力ユニット18の動作状況などからなるトレース情報を出力させて、トレース装置20に入力する。トレース装置20では、トレース情報圧縮ユニット24に入力されたトレース情報を図3に示す形式に圧縮して、トレースメモリ32に順次格納させる。
トレース動作終了後、JTAGデバッグ装置12は、トレースメモリ32の内容とアドレスレジスタ28に記憶された最終格納アドレスをトレース装置20から読み出し、プロセッサコアモジュール14上で実行中のプログラムのオブジェクト/ソースリスト44を、バス58を介して、トレース解析プログラム格納部42に入力し、トレース解析プログラムを用いてトレースメモリ32の内容を解析し、トレース中のプロセッサコアモジュール14のプログラム実行状況を出力する。
圧縮したトレース情報は、図3に示すように、12種類のフォーマットでトレースメモリ32に格納される。全てのフォーマットは、下位側より読み出すことで、そのフォーマット全体の長さが判断できるように、構成されている。
プロセッサコアモジュール14が、次に示す命令列を実行する時を例に、トレース情報が格納される様子を図4に示す。
以下の表記において、例えば左端の0x0100は、プログラムメモリのアドレス100番地を16進表示したものである。
0X0100 add $2,4
0X0102 sw $3,($2)
0X0104 jmp $5 ;この時点のRegister5の内容が0X1000であるとする。
: :
: :
0X1000 add $3,100
: :
プロセッサコアモジュール14が、100番地のadd命令を実行すると、トレース情報としてDPF2が生成され、図4(a)に示すように格納される。次にプロセッサコアモジュール14が、102番地のsw命令を実行すると、トレース情報としてDPF2が生成されて、図4(b)のように格納される。次に、104番地のjmp命令を実行すると、トレース情報としてDPF5が生成されて、図4(c)のように格納される。このように、トレース情報は、トレースメモリ32のワードの上位より下位方向に隙間無く順次格納される。また、格納するトレース情報がワードの境界を越える時は、境界位置で分割して複数の連続するワードに格納される。そしてトレースメモリ32の最終ワードに続くワードは、トレースメモリ32の先頭ワードであるように制御して循環的にトレース情報を格納する。
プロセッサコアモジュール14で実行されたプログラムを解析するJTAGデバッグ装置12は、図2に示すように、トレースメモリ読み出しデータバス52及び最終格納アドレス読み出しデータバス54に接続され,トレ―ス情報を入力するホストコンピュータ40と、実行中のプログラムのオブジェクト/ソースリスト44をバス58を介して入力するトレース解析プログラム格納部42とを備える。
本発明の実施の形態に係るトレース装置20では、プロセッサコアモジュール14が実行したプログラムの流れやデータ更新の情報であるトレース情報を、トレース情報出力ユニット18から入力し、可変長のトレース格納フォーマットに圧縮変換し、トレースメモリ32に格納する順序をトレースメモリ32のワードの上位より下位方向に行うようにするとともに循環的に格納することが可能である。
格納フォーマットは下位ビットより解釈すればフォーマットの種類とフォーマット長が一意的に定まるようにする。
トレース終了後、最終格納アドレス情報を用いて、トレースメモリ32に格納された可変長のトレース情報をトレース終了時点から時間軸の逆方向へ正確に切り出すことができるので、トレースメモリ32にトレース情報の格納場所を示すデータを格納することが不要となり、トレース装置20に格納できるトレースの情報量を増加させることができ、トレース装置20の性能が向上する。
(トレース動作)
図5に示すトレースメモリ32に格納されたトレース情報の内容を例に、トレース装置20の動作を説明する。
(a)トレース動作が開始されると、トレース装置20はDPF6を生成し、アドレスレジスタ28を0で初期化し、バッファレジスタ30を0で初期化後、バッファレジスタ30の最左端部分にDPF6を格納して、アドレスレジスタ28の値をDPF6のフォーマット長である5増加させる(図3のDPF6を参照)。
(b)64ビット長のバッファレジスタ30のビットアドレスは、最右端が0で最左端が63になるが、アドレスレジスタ28がバッファレジスタ30やトレースメモリ32のビットアドレスを指す時は、アドレスレジスタ28の下位6ビットを反転して用いている。以下の説明において、この出力を反転してアドレス指定しているとの記述は省略する。即ち、下位6ビットが0の時は最左端の63ビット目を意味し、逆に下位6ビットが63の時は最右端の0ビット目を示す。
(c)次いでプロセッサコアモジュール14からストールなどで命令を実行していないことを示すトレース情報が出力され、トレース装置20に入力されたので、トレース情報圧縮ユニット24で、DPF1を生成して、アドレスレジスタ28の指すバッファレジスタ30のアドレスに格納し、アドレスレジスタ28の値を1増加させる(図3のDPF1を参照)。
(d)次のサイクルも同様のトレース情報が出力されたので、同様にDPF1を格納する動作を行う。
(e)次のサイクルで、プロセッサコアモジュール14から分岐命令であることを示すトレース情報が出力されたので、トレース情報圧縮ユニット24は、圧縮停止部26を動作させてDPF4またはDPF5を生成するが、命令の実行アドレスと比較した時、分岐先アドレスの上位16ビットが異なるので、DPF5のフォーマットでトレース情報を生成して、アドレスレジスタ28の指すバッファレジスタ30のアドレスに格納し、アドレスレジスタ28の値を39増加させる(図3のDPF5を参照)。
(f)以下8サイクルは、プロセッサコアモジュール14のトレース情報出力ユニット18からの出力に従い、トレース情報を圧縮生成して、アドレスレジスタ28の指すバッファレジスタ30のアドレスに格納し、アドレスレジスタ28の値を更新させることを繰り返す。
(g)続くサイクルで、プロセッサコアモジュール14のトレース情報出力ユニット18から、プログラムのオブジェクトコードから静的に分岐先アドレスが定まる分岐命令であることが出力されたので、トレース情報圧縮ユニット24は、アドレス情報を圧縮してDPF3を生成して、アドレスレジスタ28の指すバッファレジスタ30のアドレスに格納し、アドレスレジスタ28の値を5増加させる(図3のDPF3を参照)。
(h)以下2サイクルは、プロセッサコアモジュール14が命令を実行していないので、DPF1が格納されるが2サイクル目のDPF1を格納して、アドレスレジスタ28の値を更新すると下位6ビットを除いたアドレスレジスタ28の値が増加し、下位6ビットが0となるので、バッファレジスタ30の内容をトレースメモリ32の先頭ワードに格納するとともに、バッファレジスタ30を初期化する。
(i)次のサイクルでは、プロセッサコアモジュール14のトレース情報出力ユニット18から、次のプログラム実行アドレスが連続するような命令を実行したことを示すトレース情報が出力されたので、トレース情報圧縮ユニット24はDPF2を生成し、アドレスレジスタ28の下位6ビットが指すバッファレジスタ30のアドレスに格納し、アドレスレジスタ28の値を2増加させる(図3のDPF2を参照)。
(j)以下5サイクルは、同様にプロセッサコアモジュール14のトレース情報出力ユニット18からの出力に従い、トレース情報を圧縮生成して、アドレスレジスタ28の下位6ビットが指すバッファレジスタ30のアドレスに格納し、アドレスレジスタ28の値を更新させることを繰り返す。
(k)5サイクル目の命令が、Load命令であらかじめトレース情報出力ユニット18に設定したアドレスからのデータ読み出しを行ったため、トレース情報圧縮ユニット24は16ビット長のデータ情報を含むDDF4を連続して生成し、アドレスレジスタ28の下位6ビットが指すバッファレジスタ30のアドレスに格納し、アドレスレジスタ28の値を25増加させる(図3のDDF4を参照)。
(l)以下10サイクルは、プロセッサコアモジュール14内のトレース情報出力ユニット18からの出力に従い、トレース情報を圧縮生成して、アドレスレジスタ28の下位6ビットが指すバッファレジスタ30のアドレスに格納し、アドレスレジスタ28の値を更新させることを繰り返す。
(m)次のサイクルで、プロセッサコアモジュール14から分岐命令であることを示すトレース情報が出力され、命令の実行アドレスと比較した時、分岐先アドレスの上位16ビットが異なるので、トレース情報圧縮ユニット24は、DPF5のフォーマットでトレース情報を生成して、アドレスレジスタ28の下位6ビットが指すバッファレジスタ30のアドレスに格納し、アドレスレジスタ28の値を39増加させる(図3のDPF5を参照)。増加時、アドレスレジスタ28の下位6ビットを除いたアドレスレジスタ28の値が増加し下位6ビットが0でないので、DPF5の上位側がバッファレジスタ30に格納できるビット位置でDPF5を分割して、分割した上位側のトレース情報をバッファレジスタ30に格納し、トレースメモリ32の先頭から第2番目のワードに格納するとともに、バッファレジスタ30を初期化する。バッファレジスタ30に、分割したDPF5の下位側を格納する。
(n)以下23サイクルは、プロセッサコアモジュール14内のトレース情報出力ユニット18からの出力に従い、トレース情報を圧縮生成して、アドレスレジスタ28の下位6ビットが指すバッファレジスタ30のアドレスに格納し、アドレスレジスタ28の値を更新させることを繰り返して、アドレスレジスタ28の下位6ビットを除くアドレスレジスタ28の値が増加し、下位6ビットが0となるので、バッファレジスタ30をトレースメモリ32の先頭から第3番目のワードに格納するとともに、バッファレジスタ30を初期化する。
(o)続くサイクルは、プロセッサコアモジュール14が命令を実行していないので、DPF1をバッファレジスタ30に格納し、アドレスレジスタ28の値を1増加させる(図3のDPF1を参照)。
(p)ここで、トレース動作の終了を検出すると、トレース装置20は、DPF6を生成し、アドレスレジスタ28の指すバッファレジスタ30のアドレスに格納しアドレスレジスタ28の値を5増加させ、バッファレジスタ30を、トレースメモリ32の先頭から第4番目のワードに格納する(図3のDPF6を参照)。
このトレースメモリ32に格納されたトレース情報は可変長であるが、図6に示すように、最終格納アドレスから、トレースメモリ32を上位方向に順次読み出すことで、トレース情報の下位部分に示されるそれぞれのトレース情報フォーマットの全体の長さの情報を用いて、次の(前の実行サイクル)のトレース情報の格納アドレスを得ることができ、各サイクルのトレース情報を切り出すことができる。
このように、トレースメモリ32からトレース情報を切り出して行く時、DPF6のトレース情報を得た時は、トレース動作の開始時点に達したことを知ることができる。もしも、トレースメモリ32の先頭ワードのトレース情報の切り出しを行ってもDPF6が得られない時は、トレースメモリ32が循環的に使用されていることを知ることができ、トレースメモリ32の最終ワードからのトレース情報の切り出しを行うことができる。
本発明の実施の形態に係るトレース装置20は、圧縮した可変長のトレース情報のみをトレースメモリ32に格納しても、最終格納アドレス情報から、正確にトレース情報を切り出すことができるので、トレースメモリ32にトレース情報の格納位置を示す情報を格納する必要がなく、トレースメモリ32に格納できるトレース情報量を増加させることができ、搭載プロセッサシステムの開発期間を短くする機能の高いプロセッサ10を提供できる。
以上のように、本発明の実施の形態に係るトレース装置によれば、トレースメモリ32にトレース情報の格納場所を示すデータを格納することが不要となり、トレース装置20に格納できるトレースの情報量を増加させることができてトレース装置20の性能が向上する。
又、本発明の実施の形態に係るトレース装置20を用いれば、トレースメモリ32にトレース情報の格納アドレス情報を格納しなくても個々のトレース情報を切り出すことができ、トレースメモリ32に格納するトレース情報を増加させることができる。
更に又、本発明の実施の形態に係るトレース装置20を用いれば、プロセッサ10に内蔵することで、高速動作するプロセッサ10のトレース情報を得ることができる。
(変形例1)
本発明の実施の形態の変形例に係るトレース装置においては、トレース情報圧縮ユニット24は、トレース情報の圧縮を停止する圧縮停止部26を備え、分岐命令に係わるトレース情報は、トレース開始後、または分岐先アドレス情報が圧縮された形式のトレース情報での格納が一定の容量を超えた後は、分岐先アドレス情報が圧縮されない形式のトレース情報を格納するようにしても良い。例えば、DPF3やDPF4(命令実行アドレスと分岐先アドレスの上位16ビットが同じ時に下位15ビット[15:1]の差異をアドレス情報として用いることで圧縮する)を用いて、分岐命令のアドレス情報を圧縮して格納する時、格納したトレース情報の合計容量が一定の値を超えても、DPF5による分岐命令のトレース情報が格納されない時は、DPF3やDPF4に圧縮できる条件が整っていても、DPF5によって分岐命令のトレース情報を格納する。
このように制御することで、格納できるトレース情報量は減少するが、トレースメモリ32の内容にDPF5が発生しないようなプログラムの解析でも、妥当な量のトレース情報を保存することができ、搭載プロセッサシステムの開発期間を短くする機能の高いプロセッサ10を提供できる。
本発明の実施の形態の変形例1に係るトレース装置20を用いれば、プログラムの分岐アドレス情報を圧縮して、トレース情報を格納した時に、プログラムの実行状況の復元の精度を向上させることができる。
(変形例2)
本発明の実施の形態の変形例2に係るトレース装置においては、トレース情報は、プロセッサ10が実行した命令毎のトレース情報に限定しても良い。例えば、プロセッサコアモジュール14がストールなどで命令を実行していない時は、トレース情報を格納しないようにすることで、プロセッサコアモジュール14の実行サイクル数の情報は失われるが、プログラムで実行した命令のトレース情報を、トレースメモリ32に、より多く格納することができ、搭載プロセッサシステムの開発期間を短くする機能の高いプロセッサ10を提供できる。
又、本発明の実施の形態の変形例2に係るトレース装置においては、トレース情報は、トレース情報の内、プロセッサ10が実行した分岐命令に関するトレース情報に限定しても良い。
本発明の実施の形態の変形例2に係るトレース装置20を用いれば、プロセッサコアモジュール14が実行した命令に関するトレース情報に、限定することで、トレースメモリ32に格納できるトレース情報を増加させることができる。
[その他の実施の形態]
上記のように、本発明の実施の形態によって記載したが、この開示の一部をなす論述及び図面はこの発明を限定するものであると理解すべきではない。この開示から当業者には様々な代替実施の形態、実施の形態及び運用技術が明らかとなろう。
このように、本発明はここでは記載していない様々な実施の形態等を含むことは勿論である。したがって、本発明の技術的範囲は上記の説明から妥当な特許請求の範囲に係る発明特定事項によってのみ定められるものである。
本発明の実施の形態に係るトレース装置を内蔵するプロセッサの模式的ブロック構成図。 本発明の実施の形態に係るトレース装置におけるプログラム解析のデータの流れを説明する模式的ブロック構成図。 トレースフォーマットの一覧を示す図。 トレース情報が格納される様子を示す図。 トレース情報が格納されたトレースメモリの内容を示す図。 トレースメモリと、格納されたトレース情報をサイクル毎に切り出した時の状況を示す図。
符号の説明
10…プロセッサ
12…JTAGデバッグ装置
14…プロセッサコアモジュール
16…デバッグモジュール
18…トレース情報出力ユニット
20…トレース装置
22…JTAGデバッグインタフェース
24…トレース情報圧縮ユニット
26…圧縮停止部
28…アドレスレジスタ
30…バッファレジスタ
32…トレースメモリ
34…メインバス
36,38,58…バス
40…ホストコンピュータ
42…トレース解析プログラム格納部
44…オブジェクト/ソースリスト
50…トレース情報出力データバス
52…トレースメモリ読み出しデータバス
54…最終格納アドレス読み出しデータバス
56…出力データバス
64…JTAGデバッグ出力バス

Claims (5)

  1. プロセッサのプログラム実行状態を示すトレース情報を格納するトレースメモリと、
    前記トレース情報をあらかじめ定めたトレースフォーマットに圧縮して、前記トレースメモリに循環的に順次格納するトレース情報圧縮ユニットと、
    前記トレースメモリに最終的に格納したアドレスを保持するアドレスレジスタ
    とを備え、前記トレースメモリの内容をプログラムの実行された順と逆順に解析し、前記トレースフォーマットの切れ目を探索し、切れ目から前記プログラムの実行順にトレース解析を行うことを特徴とするトレース装置。
  2. 前記トレース情報圧縮ユニットは、トレース開始およびトレース終了時、またはトレース開始時に特定の形式のトレース情報を前記トレースメモリに格納することを特徴とする請求項1記載のトレース装置。
  3. 前記トレース情報圧縮ユニットは、更にトレース情報の圧縮を停止する圧縮停止部を備え、分岐命令に係わる前記トレース情報は、トレース開始後、または分岐先アドレス情報が圧縮された形式のトレース情報での格納が一定の容量を超えた後は、分岐先アドレス情報が圧縮されない形式のトレース情報を格納するようにしたことを特徴とする請求項1乃至請求項2の内、いずれか1項に記載のトレース装置。
  4. 前記トレース情報は、前記プロセッサが実行した命令毎のトレース情報に限定したことを特徴とする請求項1乃至請求項3の内、いずれか1項に記載のトレース装置。
  5. 前記トレース情報のうち、前記プロセッサが実行した分岐命令に関するトレース情報に限定したことを特徴とする請求項4項に記載のトレース装置。
JP2004191658A 2004-06-29 2004-06-29 トレース装置 Pending JP2006012064A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2004191658A JP2006012064A (ja) 2004-06-29 2004-06-29 トレース装置
US11/148,324 US7444553B2 (en) 2004-06-29 2005-06-09 Tracer, tracer embedded processor, and method for operating the tracer

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2004191658A JP2006012064A (ja) 2004-06-29 2004-06-29 トレース装置

Publications (1)

Publication Number Publication Date
JP2006012064A true JP2006012064A (ja) 2006-01-12

Family

ID=35507505

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004191658A Pending JP2006012064A (ja) 2004-06-29 2004-06-29 トレース装置

Country Status (2)

Country Link
US (1) US7444553B2 (ja)
JP (1) JP2006012064A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008071227A (ja) * 2006-09-15 2008-03-27 Nec Electronics Corp 半導体集積回路
JP2017076158A (ja) * 2015-10-13 2017-04-20 日立オートモティブシステムズ株式会社 動作ログ処理装置

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7185234B1 (en) * 2001-04-30 2007-02-27 Mips Technologies, Inc. Trace control from hardware and software
JP4533682B2 (ja) * 2004-06-29 2010-09-01 株式会社東芝 トレース解析装置およびトレース解析方法
GB2456677B (en) * 2008-02-26 2012-02-15 Ibm Method and mechanism for formatting hardware trace
US8027829B2 (en) * 2008-02-28 2011-09-27 Infineon Technologies Ag System and method for integrated circuit emulation
US7502972B1 (en) * 2008-03-16 2009-03-10 International Business Machines Corporation Reducing log entries using hash keys
JP5376509B2 (ja) 2009-03-16 2013-12-25 スパンション エルエルシー 実行履歴トレース方法
US8364461B2 (en) * 2009-11-09 2013-01-29 International Business Machines Corporation Reusing invalidated traces in a system emulator
GB2504772A (en) 2012-08-10 2014-02-12 Ibm Coprocessor providing service address space for diagnostics collection
US9053138B2 (en) 2013-01-18 2015-06-09 International Business Machines Corporation Merging compressed data arrays
US10216659B2 (en) 2014-05-30 2019-02-26 Hewlett Packard Enterprise Development Lp Memory access signal detection utilizing a tracer DIMM
US9524227B2 (en) 2014-07-09 2016-12-20 Intel Corporation Apparatuses and methods for generating a suppressed address trace
US10481997B2 (en) * 2016-11-27 2019-11-19 Amazon Technologies, Inc. Distributed code tracing system
KR20210014365A (ko) * 2019-07-30 2021-02-09 에스케이하이닉스 주식회사 컨트롤러 및 그 동작 방법

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5642478A (en) * 1994-12-29 1997-06-24 International Business Machines Corporation Distributed trace data acquisition system
US6314530B1 (en) * 1997-04-08 2001-11-06 Advanced Micro Devices, Inc. Processor having a trace access instruction to access on-chip trace memory
US6009270A (en) * 1997-04-08 1999-12-28 Advanced Micro Devices, Inc. Trace synchronization in a processor
US6732307B1 (en) * 1999-10-01 2004-05-04 Hitachi, Ltd. Apparatus and method for storing trace information
US7178133B1 (en) * 2001-04-30 2007-02-13 Mips Technologies, Inc. Trace control based on a characteristic of a processor's operating state
JP2003076578A (ja) * 2001-09-03 2003-03-14 Mitsubishi Electric Corp マイクロコンピュータ及びデバッグシステム並びにトレース情報収集方法
US6615371B2 (en) * 2002-03-11 2003-09-02 American Arium Trace reporting method and system
US7308681B2 (en) * 2003-10-28 2007-12-11 International Business Machines Corporation Control flow based compression of execution traces
JP4533682B2 (ja) * 2004-06-29 2010-09-01 株式会社東芝 トレース解析装置およびトレース解析方法

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008071227A (ja) * 2006-09-15 2008-03-27 Nec Electronics Corp 半導体集積回路
JP2017076158A (ja) * 2015-10-13 2017-04-20 日立オートモティブシステムズ株式会社 動作ログ処理装置

Also Published As

Publication number Publication date
US7444553B2 (en) 2008-10-28
US20050289399A1 (en) 2005-12-29

Similar Documents

Publication Publication Date Title
JP4533682B2 (ja) トレース解析装置およびトレース解析方法
US7444553B2 (en) Tracer, tracer embedded processor, and method for operating the tracer
JP3629181B2 (ja) プログラム開発支援装置
US9507688B2 (en) Execution history tracing method
US7673187B2 (en) Data processing apparatus and method for reducing trace bandwidth
JP4846493B2 (ja) デバッグシステム及びデバッグ回路
JP2015531936A (ja) 状態機械エンジンにおける命令挿入
US7552363B2 (en) Generation of trace elements within a data processing apparatus
JP2001273138A (ja) プログラム変換装置および方法
CN113742298A (zh) 一种机载二进制文件通用并行的解析方法、装置及电子设备
CN111142918A (zh) 一种可编程器件程序参数配置和流程控制方法
US20130262808A1 (en) Compression and decompression system, compression apparatus, decompression apparatus and compression and decompression method
US7110934B2 (en) Analysis of the performance of a portion of a data processing system
US20120166887A1 (en) Monitoring multiple data transfers
US9619361B2 (en) Performance profiling apparatus and performance profiling method
JP2878264B1 (ja) トレーサ装置、トレースデータ圧縮方法および圧縮トレースデータ読み出し方法
JP3019922B2 (ja) トレースデータ削減方式
JP2005165825A (ja) トレース情報記録装置
JPH11353205A (ja) トレースメモリ内蔵のプロセッサ
JP2006228108A (ja) トレースデータ記録方法、トレースデータ記録装置及びプログラムデバッグシステム
JP2007279043A (ja) データディクショナリを含むデータの出力方法及び命令
JP2006031248A (ja) 関数呼び出しをフックしてログを生成するソフトウェア評価システム
JP2006107198A (ja) ファイル解析プログラム、ファイル解析方法、ファイル解析システム
JP5696442B2 (ja) プログラム
CN118427027A (zh) 一种Pattern文件快速显示方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20061003

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20090302

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090908

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20091106

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20091208

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100208

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20100309