JP2002342114A - Processor capable of collecting trace data - Google Patents

Processor capable of collecting trace data

Info

Publication number
JP2002342114A
JP2002342114A JP2001151078A JP2001151078A JP2002342114A JP 2002342114 A JP2002342114 A JP 2002342114A JP 2001151078 A JP2001151078 A JP 2001151078A JP 2001151078 A JP2001151078 A JP 2001151078A JP 2002342114 A JP2002342114 A JP 2002342114A
Authority
JP
Japan
Prior art keywords
instruction
value
branch
previous
trace data
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
JP2001151078A
Other languages
Japanese (ja)
Inventor
Masao Yamamoto
昌生 山本
Koichi Kumon
耕一 久門
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 JP2001151078A priority Critical patent/JP2002342114A/en
Publication of JP2002342114A publication Critical patent/JP2002342114A/en
Pending legal-status Critical Current

Links

Landscapes

  • Debugging And Monitoring (AREA)

Abstract

PROBLEM TO BE SOLVED: To provide a processor capable of accurately and easily collecting an instruction trace (data). SOLUTION: This processor is provided with a trace buffer 18 for storing and holding trace data of an instruction block of a performed program, a PC 14 for storing and holding a current PC value being a value of a program counter used in an instruction fetch cycle of this time, a preceding PC 15 for storing and holding the preceding PC value being the value of the PC 14 used in the preceding instruction fetch cycle, a branch decision processing part 16 for deciding to be a branch occurrence if the difference between the current PC value and the preceding PC value does not coincide with a fixed instruction length with the instruction fetch of this time as a branch decision trigger and generating a collection trigger signal, and a data collection processing part 17 for receiving the collection trigger signal, collecting the preceding PC value and the current PC value as a branch source address and a branch destination address respectively and storing the preceding PC value and the current PC value in the trace buffer 18, detects a branch occurrence on the basis of change of a value of the PC 14 and collects trace data.

Description

【発明の詳細な説明】DETAILED DESCRIPTION OF THE INVENTION

【0001】[0001]

【発明の属する技術分野】本発明は、トレースデータ採
取可能なプロセッサに関し、より詳しくは、所定のプロ
グラムの、実行プロファイル(プログラムの実行をトレ
ースしたデータの中から利用目的に応じて抽出し加工し
たプログラム実行履歴のデータ)の作成、性能最適化
(プログラムの改善)、障害調査、デバッグ、およびハ
ードウェアやソフトウェア開発における各種シミュレー
ションのために用いられる基礎情報となるプログラム実
行履歴のトレースデータを採取することの可能なプロセ
ッサに関する。
BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to a processor capable of collecting trace data, and more particularly, to an execution profile of a predetermined program (extracted from data obtained by tracing the execution of a program according to the purpose of use). Creation of program execution history data), performance optimization (improvement of programs), failure investigation, debugging, and collection of trace data of program execution history as basic information used for various simulations in hardware and software development A possible processor.

【0002】[0002]

【従来の技術】初めに、本明細書中で使用するいくつか
の用語について定義しておく。本明細書においては、分
岐命令や割込み等、全ての要因による命令実行の制御移
行全般を「分岐」(広い意味での分岐)と呼ぶ。これに
対し、分岐命令による制御移行のみを特に「ブランチ」
(狭い意味での分岐)と呼ぶ。
2. Description of the Related Art First, some terms used in the present specification will be defined. In this specification, the entire control transfer of instruction execution due to all factors such as a branch instruction and an interrupt is referred to as “branch” (branch in a broad sense). On the other hand, only control transfer by a branch instruction is called "branch".
(Branch in a narrow sense).

【0003】また、プロセッサ上において、ある分岐に
おける分岐先命令からその次の分岐までに実行された分
岐元命令までのプログラムコード上で直線的に実行され
た命令列のブロック単位を「命令ブロック」と呼ぶ。な
お、この命令ブロックの途中には分岐先が来る場合もあ
り得る。また、同様の定義で「基本ブロック」という用
語があるが、この基本ブロックはその途中に分岐先は含
まれない場合が一般的である。
On the processor, a block unit of an instruction sequence linearly executed on a program code from a branch destination instruction in a certain branch to a branch source instruction executed from the next branch to the next branch is referred to as an “instruction block”. Call. Note that a branch destination may come in the middle of this instruction block. Although the term “basic block” is used in the same definition, it is common that this basic block does not include a branch destination in the middle.

【0004】これよりトレースデータ採取可能なプロセ
ッサの従来技術について以下に説明する。従来、ほとん
どのプロセッサは、プログラムコードに手を加えたり、
別途専用ハードウェアを付加したりせずに、プログラム
実行履歴のトレースデータが採取できるプロセッサとし
て、実行命令毎にトレースデータ採取用ソフトウェアに
割込みをあげてトレースデータ採取(以下、単にデータ
採取と記す)を行なうプロセッサや、実行命令毎にデー
タ採取するとオーバーヘッドが大となるのでこれを小さ
くするために、実行命令毎ではなく、分岐命令によるブ
ランチ毎、即ち命令ブロック単位で、データ採取用ソフ
トウェアへの割込みをあげてデータ採取を行なってい
た。
The prior art of a processor from which trace data can be collected will be described below. Traditionally, most processors have tweaked program code,
As a processor that can collect trace data of program execution history without additional dedicated hardware, trace data collection (hereinafter simply referred to as data collection) by giving an interrupt to the trace data collection software for each execution instruction If data is collected for each processor or execution instruction, the overhead will be large. To reduce this overhead, interrupt the data collection software not for each execution instruction but for each branch by a branch instruction, that is, for each instruction block. To collect data.

【0005】また従来のプロセッサには、オーバーヘッ
ドをさらに少なくするために、採取タイミングで毎回割
込みをあげずに、複数回分の採取データをバッファリン
グしておける機能を設けた分岐命令(ブランチ)複数個
毎に割込みをあげるプロセッサがあった。例えば、In
tel社のItaniumプロセッサは、Taken
Branch Trap(成立ブランチトラップ)機能
があり、分岐元・分岐先の各命令アドレスを記録してお
くための専用レジスタとして、IIPA(Interr
uption Interaction Previo
us Address:割込み命令前アドレス)とII
P(割込み命令ポインタ、即ち割込み命令後アドレス)
の各レジスタが設けられている。
Further, in order to further reduce overhead, a conventional processor has a plurality of branch instructions (branches) provided with a function of buffering a plurality of collected data without interrupting each time at a collection timing. There was a processor that gave an interrupt every time. For example, In
tel's Itanium processor is Taken
A Branch Trap (taken branch trap) function is provided, and IIPA (Interr) is used as a dedicated register for recording instruction addresses of a branch source and a branch destination.
uption Interaction Previo
us Address: address before interrupt instruction) and II
P (interrupt instruction pointer, ie address after interrupt instruction)
Are provided.

【0006】このプロセッサはまた、PSR(プロセッ
サ・ステータス・レジスタ)のレジスタ内に、Take
n Branch Trapを所定のソフトウェアから
制御するフラグが設けられており、これをオンに設定す
ることにより、ブランチ実行毎に分岐元・分岐先の命令
アドレスが上記各専用レジスタに記録され、データ採取
用ソフトウェアに割込みがあがる仕様になっている。
[0006] This processor also has Take in the register of the PSR (processor status register).
A flag for controlling n Branch Trap from predetermined software is provided. By setting this flag to ON, the instruction address of the branch source / branch destination is recorded in each of the above-described dedicated registers every time a branch is executed. The software is interrupted.

【0007】このときの、レジスタへのデータ記録およ
び割込みをあげるための分岐トリガーは、分岐命令によ
る分岐としてのブランチのみであり、割込み等の他要因
による分岐は、記録されていない。また、他の従来のプ
ロセッサ、例えばIntel社のPentium Pr
oプロセッサは、上記と同等の機能に加え、割込みや例
外による命令実行の制御移行の分岐時にも、分岐元・分
岐先アドレスを記録する機能、およびデータ採取用ソフ
トウェアへの割込みをあげる機能を有する。但し、分岐
命令によるブランチと、割込み等の例外による分岐とで
は、IIPA(InterruptionIntera
ction Previous Address:割込
み命令前アドレス)とIIP(割込み命令ポインタ)相
当のレジスタがそれぞれ独立して2組設けられており、
ターゲットデータの記録方法や記録場所が異なってい
る。即ち、トレース採取ソフトウェアでは割込みがあが
ると、分岐命令によるブランチか割込み等の例外による
分岐かを判断し、その判断結果に応じて前記IIPとI
IPA相当のレジスタ・ペア2組あるうちのどちらかか
ら分岐先・分岐元の命令アドレスを記録しなければなら
ない。
At this time, a branch trigger for recording data in a register and raising an interrupt is only a branch as a branch by a branch instruction, and a branch due to other factors such as an interrupt is not recorded. Also, other conventional processors, such as Intel's Pentium Pr
o In addition to the functions equivalent to the above, the processor has a function of recording the address of the branch source / destination even at the time of control transfer of instruction execution due to an interrupt or an exception, and a function of raising an interrupt to data collection software. . However, between a branch by a branch instruction and a branch by an exception such as an interrupt, IIPA (InterruptionIntera) is used.
two sets of registers each corresponding to a Ction Previous Address (address before an interrupt instruction) and an IIP (interrupt instruction pointer) are provided independently.
The recording method and recording location of the target data are different. That is, when an interrupt occurs, the trace collection software determines whether the branch is a branch by a branch instruction or a branch by an exception such as an interrupt.
The instruction address of the branch destination / branch source from one of the two register pairs corresponding to IPA must be recorded.

【0008】[0008]

【発明が解決しようとする課題】図9は従来技術による
トレースデータ採取の問題点を説明するための実行プロ
グラム例を示す図である。図9に示す例において、実行
されたプログラムの正しい履歴は、A1−B1−B2−
A2(ここで、A1、A2、B1、B2は命令ブロック
を示す)である。即ち、From1−To1−A1−F
rom2−To2−B1−From3−To3−B2−
From4−To4−A2−From5−To5(ここ
で、From1〜From5、To1〜To5はアドレ
スを示す)が、正しいプログラムの実行履歴である。こ
の実行履歴を生成するため、From1−To1、Fr
om2−To2、From3−To3、From4−T
o4、From5−To5の5ペアの分岐元−分岐先の
トレースデータが正しく採取されなければならない。し
かしながら、従来技術には以下に記す問題がある。
FIG. 9 is a diagram showing an example of an execution program for explaining the problem of trace data collection according to the prior art. In the example shown in FIG. 9, the correct history of the executed program is A1-B1-B2-
A2 (where A1, A2, B1, and B2 indicate instruction blocks). That is, From1-To1-A1-F
rom2-To2-B1-From3-To3-B2-
From4-To4-A2-From5-To5 (where From1 to From5 and To1 to To5 indicate addresses) is a correct program execution history. In order to generate this execution history, From1-To1, Fr
om2-To2, From3-To3, From4-T
The trace data of the branch source-destination of five pairs of o4 and From5-To5 must be correctly collected. However, the prior art has the following problems.

【0009】前述のItaniumに代表される様な従
来のプロセッサでは、分岐命令(ブランチ)以外の割込
み等の要因により採取されたトレースデータを単純に解
析するだけでは、誤った実行プロファイルを作成してし
まうことがあり、ソフトウェアで何らかの対処をしなけ
ればならなかった。例えば、トレースデータ採取中のシ
ステムがあって、そのシステム上で実行されているプロ
グラムの実行途中で割込みが発生し、実行制御がそのプ
ログラムの途中から割込みハンドラ(ハードウェアに対
する割込みの原因を調べそれに応じて動作するOSに用
意されているプログラム)に移った場合、割込みハンド
ラに移った瞬間の分岐は記録されていないため、そのト
レースデータとして、From1−To1、From3
−To3、From5−To5の3ペアの分岐元−分岐
先のトレースデータが採取される。即ち、To1−Fr
om3やTo3−From5のような異常な命令ブロッ
クが作成されてしまう。
In a conventional processor typified by the above-described Itanium, an erroneous execution profile is created by simply analyzing trace data collected due to an interrupt or the like other than a branch instruction (branch). I had to do something with the software. For example, in a system where trace data is being collected, an interrupt is generated during the execution of a program running on that system, and execution control is interrupted from the middle of the program by examining the cause of the interrupt to the hardware. (A program prepared in an OS that operates in response to the interrupt handler), since the branch at the moment when the process proceeds to the interrupt handler is not recorded, the trace data is stored as From1-To1, From3.
Trace data of three pairs of branch source and branch destination of -To3 and From5-To5 are collected. That is, To1-Fr
An abnormal instruction block such as om3 or To3-From5 is created.

【0010】つまり、上記トレースデータから単純に実
行プロファイルを作成すると、OSサービス部がメイン
スレッド部より記憶部の下位アドレスにあれば、異常に
長い直線的連続実行ブロックが生成され、逆にOSサー
ビス部がメインスレッド部より記憶部の上位アドレスに
あれば、PCが減少する方向への連続実行ブロックが生
成される(実際には起こり得ない)など誤った命令ブロ
ックが現れる可能性があり、これを回避するためには、
ソフトウェア、即ちトレースデータ採取プログラム(生
データであり命令アドレスの採取順のリスト)や解析プ
ログラム(実行プロファイルデータ)の方で辻褄合わせ
の何らかの対処をしなければならなかった。
That is, if an execution profile is simply created from the trace data, if the OS service section is located at a lower address of the storage section than the main thread section, an abnormally long linear continuous execution block is generated. If the section is at a higher address of the storage section than the main thread section, there is a possibility that an erroneous instruction block appears such that a continuous execution block in the direction of decreasing PC is generated (it cannot actually occur). To avoid
The software, that is, the trace data collection program (list of raw data and the collection order of instruction addresses) and the analysis program (execution profile data) had to deal with some kind of coordination.

【0011】また、前述のPentium Proに代
表される様な割込みや例外による分岐にも対応している
従来のプロセッサでも、分岐命令によるブランチと割込
みや例外による分岐とでは、分岐時の記録方法が異なっ
ているため、そのトレースデータから単純には正確な実
行プロファイルを作成できず、Itaniumプロセッ
サの場合同様、ソフトウェアの方でこれに対処する必要
があった。
[0011] Further, even in a conventional processor which also supports a branch caused by an interrupt or an exception as represented by the above-mentioned Pentium Pro, the recording method at the time of branching is different between a branch by a branch instruction and a branch by an interrupt or an exception. Because of the difference, it was not possible to simply create an accurate execution profile from the trace data, and it was necessary for software to deal with this, as in the case of the Itanium processor.

【0012】それゆえ、本発明は、トレースデータ採取
プログラムや解析プログラム等のソフトウェアの方では
特別な対処は行わなくてもよく、従来と比べて、より正
確なトレースデータの採取が可能であり、かつより容易
にデータ解析やプロファイル作成を実行可能であるプロ
セッサを提供することを目的とする。
Therefore, according to the present invention, no special measures need to be taken by software such as a trace data collection program and an analysis program, and more accurate trace data can be collected as compared with the related art. It is another object of the present invention to provide a processor capable of executing data analysis and profile creation more easily.

【0013】[0013]

【課題を解決するための手段】上記目的を達成する本発
明のトレースデータ採取可能なプロセッサは、実行した
プログラムの命令ブロックのトレースデータを格納し保
持するトレースバッファと今回の命令フェッチサイクル
で使用されたプログラムカウンタPCの値である現PC
値を格納し保持するプログラムカウンタPCとを備えた
トレースデータ採取可能なプロセッサにおいて、分岐命
令そのものではなくプログラムカウンタPCの値の変化
を、分岐が発生したか否かの判定条件およびトレースデ
ータ採取のトリガーに使用することを特徴とする。
A processor capable of collecting trace data according to the present invention, which achieves the above object, has a trace buffer for storing and holding trace data of an instruction block of an executed program, and a trace buffer used in the present instruction fetch cycle. Current PC which is the value of the program counter PC
In a processor capable of collecting trace data, comprising a program counter PC for storing and holding a value, a change in the value of the program counter PC, not the branch instruction itself, is used to determine whether or not a branch has occurred and to determine whether or not a branch has occurred. It is characterized by being used as a trigger.

【0014】上記構成により、トレースデータを採取又
は解析するソフトウェアの方では特別な対処は行わなく
てもよくなる。上記プロセッサはまた、前回の命令フェ
ッチサイクルで使用された前記プログラムカウンタPC
の値である前PC値を格納し保持する前PC値保持部
と、今回の命令フェッチを分岐判定トリガーとして、該
命令フェッチのサイクルと同期して、前記現PC値と前
記前PC値との差が固定の命令長と一致しなかった場合
に分岐の発生と判定し、トレースデータを採取する採取
トリガー信号を発生する分岐判定処理部と、前記採取ト
リガー信号を受け、前記前PC値および前記現PC値を
それぞれ分岐元アドレスおよび分岐先アドレスとしてペ
アで採取し、前記トレースバッファに格納し、採取完了
後に採取完了通知信号を発生するデータ採取処理部と、
を備える。
With the above configuration, the software for collecting or analyzing the trace data does not need to take any special measures. The processor may also include the program counter PC used in a previous instruction fetch cycle.
And a previous PC value holding unit that stores and holds a previous PC value that is a value of the current PC value and the previous PC value in synchronization with the cycle of the instruction fetch using the current instruction fetch as a branch determination trigger. When the difference does not match the fixed instruction length, it is determined that a branch has occurred, a branch determination processing unit that generates a collection trigger signal for collecting trace data, and receives the collection trigger signal, and receives the previous PC value and the A data collection processing unit that collects a current PC value as a branch source address and a branch destination address in pairs, stores the pair in the trace buffer, and generates a collection completion notification signal after the collection is completed;
Is provided.

【0015】上記分岐判定処理部において、命令のフェ
ッチサイクル毎に、PC値がイレギュラーな変化(減
少、又は不連続)をしていないかどうかを観察してお
り、分岐が発生したと判定した場合には、データ採取処
理部に採取実行のトリガー信号を送る。採取信号が送ら
れたデータ採取処理部は、分岐元・分岐先の各アドレス
データを採取し、トレースバッファに格納する。これに
より、純粋に命令列の実行が直線的でなくなった所をデ
ータ採取のトリガーにしているので、より正確かつソフ
トウェアからも利用し易いトレースデータの採取が可能
となる。
In the above-mentioned branch determination processing unit, it is observed whether or not the PC value changes irregularly (decrease or discontinuity) at each instruction fetch cycle, and it is determined that a branch has occurred. In this case, a trigger signal to execute the collection is sent to the data collection processing unit. The data collection processing unit to which the collection signal has been sent collects each address data of the branch source and the branch destination and stores them in the trace buffer. Accordingly, since a point where the execution of the instruction sequence is not linearly executed is used as a trigger for collecting data, it is possible to collect trace data that is more accurate and can be easily used from software.

【0016】上記プロセッサはまた、前記プログラムカ
ウンタの値で指示されるメモリアドレスに書き込まれた
命令を取り出し一時貯蔵する命令フェッチ部から前記分
岐判定処理部に送られる前記分岐判定トリガー信号を有
効にするか無効にするかを制御する制御フラグを備え
る。上記制御フラグは、ソフトウェアからも設定可能な
命令ブロックのトレース制御フラグであり、これにより
トレースデータの採取開始・停止の制御が、ハードウェ
ア内ではもちろんソフトウェアからも可能となる。
The processor also enables the branch determination trigger signal sent from the instruction fetch unit that retrieves and temporarily stores an instruction written to a memory address indicated by the value of the program counter to the branch determination processing unit. And a control flag for controlling whether to invalidate. The control flag is a trace control flag of an instruction block that can be set from software, and thereby control of start / stop of collection of trace data can be made from software in hardware as well as from software.

【0017】上記プロセッサはまた、前記分岐判定処理
部が、前回の(フェッチサイクルでフェッチした命令
を)命令デコードサイクルでデコードした前命令長を格
納し保持する前命令長保持部を備え、該前命令長を分岐
であるかを判定する分岐判定用命令長に用いる。上記前
命令長保持部を備えて、それを分岐判定用の命令長とし
て利用することにより、トレースデータの処理が可変長
命令のプロセッサにも適用可能になる。
The processor may further include a previous instruction length holding unit that stores and holds a previous instruction length decoded in a previous instruction decode cycle (an instruction fetched in a fetch cycle). The instruction length is used as the instruction length for branch determination for determining whether a branch is taken. By providing the previous instruction length holding unit and using it as the instruction length for branch determination, trace data processing can be applied to a processor of a variable length instruction.

【0018】上記プロセッサはまた、前記分岐判定処理
部が、前記現PC値と前記前PC値の差が命令キャッシ
ュサイズを越えた場合に命令キャッシュ上から外れた
(にのっていない)命令アドレスへの分岐の発生と判定
し、トレースデータを採取する採取トリガー信号を発生
するキャッシュ利用監視部を備える。上記キャッシュ利
用監視部を備えて、現PC値と前PC値の差が、命令キ
ャッシュサイズ以上かどうかを判定することにより、キ
ャッシュを無駄使いしている元凶となる分岐を捕らえる
ことが可能となり、実行したプログラムの性能改善場所
の目処を立てることができる。また、統計的に処理する
ことにより、命令キャッシュの有効利用率も測定可能と
なる。
In the above processor, the branch determination processing unit may include an instruction address that is out of the instruction cache when the difference between the current PC value and the previous PC value exceeds the instruction cache size. And a cache use monitoring unit that generates a trigger signal for collecting trace data. By providing the cache use monitoring unit and determining whether or not the difference between the current PC value and the previous PC value is equal to or larger than the instruction cache size, it is possible to catch a branch that is wasting the cache and causing a waste. The prospect of the place where the performance of the executed program is improved can be set. Further, by performing the statistical processing, the effective utilization rate of the instruction cache can be measured.

【0019】上記プロセッサはまた、前記データ採取処
理部が、トレースバッファがトレースデータでフル状態
になったか否かを、バッファリング終了毎に判断し、ト
レースバッファがフル状態になったことを検出したとき
ソフトウェアに割込み通知をあげるとともに前記制御フ
ラグをオフにするバッファフル検出部を備える。上記バ
ッファフル検出部およびトレースデータ採取の制御フラ
グを備えることにより、トレースバッファがフル状態に
なった時点で一旦トレースデータを正式な記憶装置内の
データ採取領域に格納して保存し、再びトレースデータ
を採取する制御フラグをオンすることによりトレースデ
ータの採取を開始することが可能となる。これにより、
実際には、任意のトレース区間かつ任意のデータサイズ
でのトレースデータの採取になるが、継続的かつ無制限
容量のトレースデータ採取が可能となる。
The data processor may be configured to determine whether or not the trace buffer has become full with the trace data every time buffering is completed, and to detect that the trace buffer has become full. A buffer full detection unit for notifying the software of an interrupt and turning off the control flag. By providing the buffer full detection unit and the control flag for trace data collection, once the trace buffer becomes full, the trace data is temporarily stored and stored in the data collection area in the formal storage device, and the trace data is stored again. By turning on a control flag for collecting trace data, it is possible to start collecting trace data. This allows
Actually, trace data is collected in an arbitrary trace section and in an arbitrary data size. However, it is possible to continuously and unlimitedly collect trace data.

【0020】[0020]

【発明の実施の形態】以下、添付図面を参照しながら本
発明の実施の形態を詳細に説明する。先ず、本発明の第
1実施形態について以下に説明する。図1は本発明の第
1実施形態に係るトレースデータ採取可能なプロセッサ
のブロック構成図である。図1は、命令長が固定長であ
るプロセッサにおいて、PCの値の変化がイレギュラー
であるかどうかを判定し、イレギュラーと判定されたと
きトリガーを発生して、トレースデータ(分岐元と分岐
先の各アドレス)の採取を行なう仕組みを表している。
Embodiments of the present invention will be described below in detail with reference to the accompanying drawings. First, a first embodiment of the present invention will be described below. FIG. 1 is a block diagram of a processor capable of collecting trace data according to the first embodiment of the present invention. FIG. 1 shows that in a processor having a fixed instruction length, it is determined whether or not a change in the value of PC is irregular, and if it is determined to be irregular, a trigger is generated and trace data (branch source and branch (Each of the above addresses).

【0021】その主な構成要素は以下の通りである。 固定長設定部10…実行する命令長が固定長Lのプロセ
ッサにおける命令長を格納するレジスタである。 記憶装置11…命令やデータを格納し保持している主記
憶(メモリ)またはキャッシュであり、最近のプロセッ
サでは記憶装置11としてキャッシュが多く使用されて
いる。
The main components are as follows. Fixed length setting unit 10: A register for storing the instruction length in a processor whose instruction length to be executed has a fixed length L. Storage device 11: a main storage (memory) or cache that stores and holds instructions and data. A cache is often used as the storage device 11 in recent processors.

【0022】命令フェッチ&デコードユニット12…記
憶装置11から命令を取り出し(命令フェッチ)、取り
出した命令のデコードを行う。このデコードについては
後述する。 実行ユニット13…操作コードで指定された動作を実行
する。 PC14…プログラムカウンタのこと。次に実行する命
令の記憶装置内格納先アドレスを指定するためのレジス
タであってそのアドレスを保持する。
Instruction fetch & decode unit 12 fetches an instruction from the storage device 11 (instruction fetch) and decodes the fetched instruction. This decoding will be described later. Executing unit 13 executes an operation specified by the operation code. PC14: Program counter. A register for designating a storage destination address of a next instruction to be executed in the storage device, and holds the address.

【0023】以上の構成要素は通常のプロッセサには大
抵装備されている命令実行処理の基本構成要素である。
以下、これら要素間の命令フロー、即ち一連の命令実行
処理の繰返しを「命令サイクル」と呼ぶこととする。次
に、本発明の第1実施形態に係る主に図1の右側に示さ
れている構成要素を説明する。
The above components are the basic components of the instruction execution processing which are usually provided in a normal processor.
Hereinafter, the instruction flow between these elements, that is, the repetition of a series of instruction execution processes will be referred to as an “instruction cycle”. Next, the components mainly shown on the right side of FIG. 1 according to the first embodiment of the present invention will be described.

【0024】前PC15…前PC保持部のことで、前回
の命令フェッチサイクルで使用されたプログラムカウン
タPC14の値を格納し保持しておくレジスタである。 分岐判定処理部16…命令フェッチと同期した分岐判定
のトリガー信号(破線で矢示する)を受けて、PC14
に保持されている現PC値と前PC15に保持されてい
る前PC値とを比較し、その差分が命令長(固定長L)
と一致しなかった場合は分岐の発生と判定し、データ採
取処理部17に採取トリガー信号(破線で矢示する)を
送る。また、判定処理終了毎にPC14から前PC15
への現PC値のシフト(上書きコピー)を行う。なお、
トレース採取トリガー信号をデータ採取処理部17に送
信した場合は、データ採取処理部17からの完了通知信
号(破線で矢示する)を待ってから、このシフト処理を
実行する。
Previous PC 15... A previous PC holding unit which stores and holds the value of the program counter PC 14 used in the previous instruction fetch cycle. Branch determination processing unit 16: Upon receiving a trigger signal for branch determination synchronized with instruction fetch (indicated by a broken line), the PC 14
Is compared with the previous PC value stored in the previous PC 15, and the difference is the instruction length (fixed length L).
If it does not match, it is determined that a branch has occurred, and a collection trigger signal (indicated by a broken line arrow) is sent to the data collection processing unit 17. Also, every time the determination process is completed, the PC 14
(Overwrite copy) of the current PC value to In addition,
When a trace collection trigger signal is transmitted to the data collection processing unit 17, the shift processing is executed after waiting for a completion notification signal (indicated by a broken line) from the data collection processing unit 17.

【0025】データ採取処理部17…トレースデータ採
取処理部の略称。下記に述べる分岐判定処理部16から
採取トリガー信号を受けることにより、前PC15に格
納されている前PC値とPC14に格納されている現P
C値とを、それぞれ分岐元アドレスと分岐先アドレスと
してペアで採取し、メモリまたはレジスタからなるトレ
ースバッファ18に格納する。また、採取完了の時点で
完了通知信号を分岐判定処理部16へ送出する。
Data collection processing unit 17: Abbreviation of trace data collection processing unit. Upon receiving the sampling trigger signal from the branch determination processing unit 16 described below, the previous PC value stored in the previous PC 15 and the current P
The C value is collected in pairs as a branch source address and a branch destination address, respectively, and stored in the trace buffer 18 including a memory or a register. Further, a completion notification signal is sent to the branch determination processing unit 16 when the collection is completed.

【0026】セレクタ19…固定長設定部10に格納さ
れた固定の命令長、後述する分岐命令(ブランチ)実行
による第1の場合(図1中の矢印A)の分岐先アドレ
ス、および割込み要因による第2の場合(図1中の矢印
B)の分岐先アドレスの何れか1つを選択する信号を受
けてPC14に書き込むもの。次に、これらの構成要素
を用いて主に図1の左側に示されている命令サイクルに
ついて説明する。
Selector 19: A fixed instruction length stored in the fixed length setting unit 10, a branch destination address in the first case (arrow A in FIG. 1) by execution of a branch instruction (branch) described later, and an interrupt factor. In the second case (arrow B in FIG. 1), a signal for selecting any one of the branch destination addresses is written to the PC 14. Next, an instruction cycle mainly shown on the left side of FIG. 1 will be described using these components.

【0027】図2はプロセッサが実行する命令サイクル
のフローチャートである。図1に示すプロセッサは次の
ステップS01からステップS04に記す処理を繰返し
実行することにより1つづつ命令を実行する(通常のプ
ロセッサの命令サイクルも基本的には同様である)。 ステップS01:命令の取出し(命令フェッチ)…PC
14の内容(値)が指し示す記憶装置11上の場所(ア
ドレス)から、次に実行する命令を読み出す。
FIG. 2 is a flowchart of an instruction cycle executed by the processor. The processor shown in FIG. 1 executes instructions one by one by repeatedly executing the processing described in the following steps S01 to S04 (the instruction cycle of a normal processor is basically the same). Step S01: Instruction fetch (instruction fetch) ... PC
An instruction to be executed next is read from a location (address) on the storage device 11 indicated by the content (value) of the instruction 14.

【0028】ステップS02:PCの更新…読み出した
命令の命令長(ここでは固定長L)をPC14の値に加
えて、次に読み出す命令アドレスとする。 ステップS03:命令のデコード…読み出した命令を、
命令の種類を指定する操作(命令)コード部とオペラン
ド(操作対象となるデータ)指定部に分け、操作コード
の解析とオペランド格納先の決定を行う。ここで解析さ
れる操作コードによりその命令の動作内容が決まる。ま
た、オペランド格納先としてはレジスタ(図示せず)の
場合と記憶装置11の場合とがあり、後者の場合にはオ
ペランドアドレスの計算も行う。
Step S02: Updating the PC ... The instruction length (fixed length L in this case) of the read instruction is added to the value of the PC 14 to obtain an instruction address to be read next. Step S03: Decode the instruction ...
The operation (instruction) code part for specifying the type of instruction and the operand (data to be operated) specification part are divided into operation code analysis and operand storage destination determination. The operation content of the instruction is determined by the operation code analyzed here. The operand storage destination includes a register (not shown) and the storage device 11, and in the latter case, the operand address is also calculated.

【0029】ステップS04:命令指定操作の実行、お
よび結果の書込みや分岐先アドレスの計算…デコード結
果に従った動作を行なう。必要によっては、オペランド
の読み出しや演算結果等のレジスタ(図示せず)や記憶
装置11上への書込みを行なう。また、分岐命令(ブラ
ンチ)の場合は、必要ならばフラグ等のテストを行な
い、その結果をもとにして分岐先アドレスを計算し、P
C14に設定する。以上のステップS01からステップ
S04の処理の実行終了後、再びステップS01に戻
る。
Step S04: Execution of an instruction designating operation, writing of a result, calculation of a branch destination address, etc. An operation according to the decoding result is performed. If necessary, operands are read and operation results are written into a register (not shown) or the storage device 11. In the case of a branch instruction (branch), if necessary, a test of a flag or the like is performed, and based on the result, a branch destination address is calculated.
Set to C14. After the execution of the processing from step S01 to step S04, the process returns to step S01.

【0030】また、上記命令フェッチサイクルでは、後
述する一連のトレースデータ採取処理が終了するまでP
C値は更新されない。ところで、この命令サイクル中で
分岐が発生する要因としては、分岐命令(ブランチ)実
行による第1の場合(図中の矢印A)と割込み要因によ
る第2の場合(図中の矢印B)とがある。第2(矢印
B)の場合には、ステップS01からステップS04の
処理の実行中にプロセッサ外部からの割込みがあがった
場合も含み、ステップS04の処理の実行終了まで待機
しており、実行終了後にPC14の値が該割込みの分岐
先アドレス(割込みハンドラの先頭アドレス)に書き換
えられる。第2の場合には、割込み直後にPC14の値
が該割込みの分岐先アドレスに書き換えられる。
In the above-described instruction fetch cycle, P is maintained until a series of trace data collection processing described later is completed.
The C value is not updated. By the way, the causes of the branch in the instruction cycle include a first case (arrow A in the figure) due to execution of a branch instruction (branch) and a second case (arrow B in the figure) due to an interrupt cause. is there. In the case of the second (arrow B), the process waits until the execution of the process of step S04 is completed, including a case where an interrupt from the outside of the processor is raised during the execution of the processes of steps S01 to S04. The value of the PC 14 is rewritten to the branch destination address of the interrupt (the top address of the interrupt handler). In the second case, immediately after the interruption, the value of the PC 14 is rewritten to the branch destination address of the interruption.

【0031】このように、割込みの発生するタイミング
としては、デコードユニット12における命令実行中に
エラーが発生した時の例外割込みI1、実行ユニット1
3における命令実行中にエラーが発生した時の例外割込
みI2および外部割込みやトラップを処理するタイミン
グとなる命令間の割込みの2つのパターンが挙げられ
る。いずれにせよ割込み発生時には、各割込みハンドラ
の先頭アドレスがPC14に設定されることになる。本
発明に基づく命令ブロックのトレース機能を有するプロ
セッサでは、これら任意のタイミングによる割込み発生
にも同じ方式で対応可能となる。
As described above, the timing of the occurrence of the interrupt includes the exception interrupt I1 when the error occurs during the execution of the instruction in the decode unit 12, the execution unit 1
3 is an exceptional interrupt I2 when an error occurs during the execution of the instruction, and two patterns of an external interrupt and an interrupt between instructions which are timings for processing a trap. In any case, when an interrupt occurs, the start address of each interrupt handler is set in the PC 14. The processor having the instruction block tracing function according to the present invention can cope with the occurrence of an interrupt at any given timing in the same manner.

【0032】図3は図1に示す本発明の第1実施形態に
係るトレースデータ採取可能なプロセッサによるトレー
スデータ採取処理のフローチャートである。図3に示す
ステップ番号S1〜S8は、図1において1〜8を丸で
囲んで示されている。 ステップS1:記憶装置11から次に実行する命令を読
み出す命令フェッチと同期して、分岐判定を行なうため
の分岐判定トリガー信号を送出する。
FIG. 3 is a flowchart of the trace data collecting process by the processor capable of collecting trace data according to the first embodiment of the present invention shown in FIG. Step numbers S1 to S8 shown in FIG. 3 are indicated by encircling 1 to 8 in FIG. Step S1: A branch determination trigger signal for performing a branch determination is transmitted in synchronization with an instruction fetch for reading an instruction to be executed next from the storage device 11.

【0033】ステップS2:分岐判定のトリガー信号を
受けた分岐判定処理部16は、PC14と前PC15か
らそれぞれ現PC値と前PC値を取り込み、比較判定を
行なう。ここで、その比較結果により、以降の処理が別
れる。先ず、現PC値と前PC値の差分が命令長(固定
長L)と一致しなかった場合、即ち分岐と判定される場
合はステップS3へ進み、一方、一致する場合、即ち分
岐ではないと判定される場合は下記のステップS13へ
進む。
Step S2: Upon receiving the trigger signal for branch determination, the branch determination processing section 16 fetches the current PC value and the previous PC value from the PC 14 and the previous PC 15, respectively, and makes a comparison determination. Here, the subsequent processing is separated according to the comparison result. First, if the difference between the current PC value and the previous PC value does not match the instruction length (fixed length L), that is, if it is determined to be a branch, the process proceeds to step S3. If it is determined, the process proceeds to step S13 described below.

【0034】ステップS3:分岐判定処理部16で分岐
の発生と判定された場合は、分岐判定処理部16からデ
ータ採取処理部17にトレースデータの採取トリガー信
号が送られる。 ステップS4:トレースデータの採取トリガー信号を受
けたデータ採取処理部17は、PC14と前PC15か
らそれぞれ現PC値と前PC値をペアで採取する。
Step S3: If the branch determination processing section 16 determines that a branch has occurred, a trace data collection trigger signal is sent from the branch determination processing section 16 to the data collection processing section 17. Step S4: Upon receiving the trace data collection trigger signal, the data collection processing unit 17 collects the current PC value and the previous PC value from the PC 14 and the previous PC 15 in pairs.

【0035】ステップS5:データ採取処理部17は、
現PC値と前PC値を採取完了後、完了通知信号を分岐
判定処理部16に送出する。 ステップS6:完了通知後、データ採取処理部17は、
ステップS4で採取した現PC値と前PC値をそれぞれ
分岐先アドレスと分岐元アドレスとして、トレースバッ
ファ18へ格納する。一方、分岐判定処理部16は、P
C14から前PC15へPC14の値をシフトするトリ
ガー信号を送出する。
Step S5: The data collection processing unit 17
After the collection of the current PC value and the previous PC value is completed, a completion notification signal is sent to the branch determination processing unit 16. Step S6: After the completion notification, the data collection processing unit 17
The current PC value and the previous PC value collected in step S4 are stored in the trace buffer 18 as a branch destination address and a branch source address, respectively. On the other hand, the branch determination processing unit 16
A trigger signal for shifting the value of PC14 is sent from C14 to the previous PC15.

【0036】ステップS7:PC14から前PC15へ
の、現PC値のシフト(上書きコピー)を行なう。 ステップS8:PC14の値の更新処理を行なう。 ステップS13:上記ステップS6における、分岐判定
処理部16での動作により、PC14から前PC15へ
PC14の値をシフトするトリガー信号を送出する。
Step S7: The current PC value is shifted (overwritten copy) from the PC 14 to the previous PC 15. Step S8: The value of the PC 14 is updated. Step S13: The PC 14 sends a trigger signal for shifting the value of the PC 14 to the previous PC 15 by the operation of the branch determination processing section 16 in the above step S6.

【0037】次に、本発明の第2実施形態について以下
に説明する。図4は本発明の第2実施形態に係るトレー
スデータ採取可能なプロセッサのブロック構成図であ
る。図4に示されるように、第2実施形態のトレースデ
ータ採取可能なプロセッサは、図1に示す上述した本発
明の第1実施形態のプロセッサに、トレース制御を可能
とする仕組みを加えたものである。図4において、図1
に示す第1実施形態のプロセッサに追加した構成要素は
以下の通りである。
Next, a second embodiment of the present invention will be described below. FIG. 4 is a block diagram of a processor capable of collecting trace data according to the second embodiment of the present invention. As shown in FIG. 4, the processor capable of collecting trace data according to the second embodiment is obtained by adding a mechanism for enabling trace control to the processor according to the first embodiment of the present invention shown in FIG. is there. In FIG. 4, FIG.
The components added to the processor of the first embodiment shown in FIG.

【0038】制御フラグ部20…命令ブロック・トレー
ス制御フラグの格納部であり、この制御フラグは命令フ
ェッチと同期して送出され、分岐判定を行なうために発
生されたトリガー信号を有効にするか無効にする制御を
行うためのフラグである。この制御フラグにより命令ブ
ロックのトレース制御を有効にするか無効にするかの設
定が可能となり、トレース採取プログラム(ソフトウェ
ア)21からもトレース採取の開始・停止制御が可能と
なる。従って、実際の採取では、採取したい命令ブロッ
ク部分だけトレースを有効にして採取を行なうという使
い方が可能となる。
Control flag section 20: A storage section for an instruction block / trace control flag. This control flag is sent out in synchronization with the instruction fetch, and enables or disables a trigger signal generated for performing branch determination. This is a flag for performing the control of With this control flag, it is possible to set whether to enable or disable the trace control of the instruction block, and the trace collection program (software) 21 can also start and stop the trace collection. Accordingly, in actual sampling, it is possible to use the trace by enabling the trace only for the instruction block portion to be sampled.

【0039】次に、本発明の第3実施形態について以下
に説明する。図5は本発明の第3実施形態に係るトレー
スデータ採取可能なプロセッサのブロック構成図であ
る。図5に示されるように、第3実施形態のトレースデ
ータ採取可能なプロセッサは、図4に示す上述した本発
明の第2実施形態での制御フラグ部20を有するプロセ
ッサに、可変命令長にも対応した仕組みを加えたもので
ある。
Next, a third embodiment of the present invention will be described below. FIG. 5 is a block diagram of a processor capable of collecting trace data according to the third embodiment of the present invention. As shown in FIG. 5, the processor capable of collecting trace data according to the third embodiment is different from the processor having the control flag unit 20 according to the second embodiment of the present invention shown in FIG. It adds a corresponding mechanism.

【0040】前命令長31…分岐判定処理部30内に設
けられる前命令長の保持部であり、分岐判定処理時、即
ちある命令フェッチ時に、前回の命令サイクルでデコー
ドされた命令長を保持しておくためのレジスタである。
なお、第3実施形態では、図1、4に示す第1、第2実
施形態と異なり、PC14の値の更新に使用される増分
量も固定長ではなくなる。
Pre-instruction length 31: A pre-instruction length holding unit provided in the branch judgment processing unit 30, and holds the instruction length decoded in the previous instruction cycle at the time of branch judgment processing, that is, at the time of fetching a certain instruction. This is a register for storing.
In the third embodiment, unlike the first and second embodiments shown in FIGS. 1 and 4, the increment used for updating the value of the PC 14 is not fixed length.

【0041】第3実施形態でも、基本的には第1実施形
態と同じトレースデータ採取処理のフローチャートとな
るが、フローチャートのステップS2において、現PC
値と前PC値の差分が、固定値ではなくこの前命令長に
一致しなければ分岐と判定し、一致すれば分岐ではない
と判定する点のみが、第1実施形態の処理と異なる。第
3実施形態によれば、可変命令長にも対応したトレース
データの採取が可能となる。
In the third embodiment as well, the flow chart of the trace data collection process is basically the same as that of the first embodiment.
The only difference from the processing of the first embodiment is that if the difference between the value and the previous PC value is not a fixed value and does not match the previous instruction length, it is determined to be a branch, and if matched, it is determined not to be a branch. According to the third embodiment, it is possible to collect trace data corresponding to a variable instruction length.

【0042】また、第3実施形態のトレースデータ採取
可能なプロセッサの別の実施形態として、図1に示す上
述した本発明の第1実施形態のプロセッサに、可変命令
長にも対応した仕組みを加えたものに構成、即ち図5に
示す第3実施形態のプロセッサから制御フラグ部20を
取除いた構成とすることもできる。次に、本発明の第4
実施形態について以下に説明する。
As another embodiment of the processor capable of collecting trace data according to the third embodiment, a mechanism corresponding to a variable instruction length is added to the processor according to the first embodiment of the present invention shown in FIG. Alternatively, the control flag unit 20 may be removed from the processor of the third embodiment shown in FIG. Next, the fourth aspect of the present invention.
An embodiment will be described below.

【0043】図6は本発明の第4実施形態に係るトレー
スデータ採取可能なプロセッサのブロック構成図であ
る。図6に示されるように、第4実施形態のトレースデ
ータ採取可能なプロセッサは、図5に示す上述した本発
明の第3実施形態のプロセッサにおける記憶装置11を
命令キャッシュ110に置き換えるとともに、分岐判定
処理部30が、命令キャッシュの有効利用を監視するキ
ャッシュ利用監視部40を備え、キャッシュを無駄使い
する分岐を捕える仕組みを加えたものである。
FIG. 6 is a block diagram of a processor capable of collecting trace data according to a fourth embodiment of the present invention. As shown in FIG. 6, the processor capable of collecting trace data according to the fourth embodiment replaces the storage device 11 in the processor according to the third embodiment of the present invention shown in FIG. The processing unit 30 includes a cache use monitoring unit 40 that monitors the effective use of the instruction cache, and has a mechanism for capturing a branch that wastes the cache.

【0044】キャッシュ利用監視部40は、命令キャッ
シュ110の有効利用の監視部であり、現PC値と前P
C値との差が命令キャッシュ110のサイズ以上か否か
を判定する。即ち、命令フェッチと同期した分岐判定の
トリガー信号を受けて、PC14に保持されている現P
C値と前PC15に保持されている前PC値とを比較
し、その差分が命令キャッシュ110のサイズ以上の場
合は命令キャッシュ110を無駄使いしていると判定
し、データ採取処理部17にトレースデータの採取トリ
ガー信号を送る。また、判定処理終了毎にPC14から
前PC15への現PC値のシフト(上書きコピー)を行
なう。なお、トレースデータの採取トリガー信号をデー
タ採取処理部17に送信した場合は、データ採取処理部
17からの完了通知信号を待ってから、このシフト処理
を実行する。
The cache usage monitoring unit 40 is a monitoring unit for monitoring the effective use of the instruction cache 110.
It is determined whether the difference from the C value is equal to or larger than the size of the instruction cache 110. That is, upon receiving a trigger signal for branch determination synchronized with the instruction fetch, the current P
The C value is compared with the previous PC value held in the previous PC 15. If the difference is equal to or larger than the size of the instruction cache 110, it is determined that the instruction cache 110 is being wasted, and the trace is sent to the data collection processing unit 17. Send a data collection trigger signal. Further, every time the determination process is completed, the current PC value is shifted (overwritten copy) from the PC 14 to the previous PC 15. Note that, when a trace data collection trigger signal is transmitted to the data collection processing unit 17, the shift process is executed after waiting for a completion notification signal from the data collection processing unit 17.

【0045】キャッシュサイズ41…キャッシュ利用監
視部40内に設けられるキャッシュサイズの保持部であ
り、分岐判定処理時、即ちある命令フェッチ時に、命令
キャッシュ110のサイズを保持しておくためのレジス
タである。第4実施形態でも、基本的には第1実施形態
や第3実施形態と同じトレースデータの採取処理のフロ
ーチャートとなる。但し、フローチャートのステップS
2において、現PC値と前PC値の差分が、前命令長で
はなく、命令キャッシュサイズ以上なら命令キャッシュ
110の無駄使いと判定し、命令キャッシュサイズ未満
なら命令キャッシュ110の無駄使いでないと判定する
点のみが、第1実施形態や第3実施形態の処理と異な
る。第4実施形態によれば、命令キャッシュ110の有
効利用率が測定可能となる。
Cache size 41: a cache size holding unit provided in the cache use monitoring unit 40, and is a register for holding the size of the instruction cache 110 at the time of branch determination processing, that is, at the time of fetching a certain instruction. . In the fourth embodiment as well, the flowchart of the trace data collection process is basically the same as in the first and third embodiments. However, step S in the flowchart
In 2, when the difference between the current PC value and the previous PC value is not the previous instruction length and is equal to or larger than the instruction cache size, it is determined that the instruction cache 110 is wasted, and if it is smaller than the instruction cache size, it is determined that the instruction cache 110 is not wasted. Only the point is different from the processing of the first embodiment or the third embodiment. According to the fourth embodiment, the effective utilization rate of the instruction cache 110 can be measured.

【0046】最後に、本発明の第5実施形態について以
下に説明する。図7は本発明の第5実施形態に係るトレ
ースデータ採取可能なプロセッサのブロック構成図であ
る。図7に示されるように、第5実施形態のトレースデ
ータ採取可能なプロセッサは、図5に示す上述した本発
明の第3実施形態のプロセッサにおけるデータ採取処理
部17に代えて、トレースバッファ18がフル状態であ
ることを検出するバッファフル検出部51を設けたデー
タ採取処理部50を備え、自動的にトレースデータの採
取を停止可能にする仕組みを加えたものである。
Finally, a fifth embodiment of the present invention will be described below. FIG. 7 is a block diagram of a processor capable of collecting trace data according to the fifth embodiment of the present invention. As shown in FIG. 7, the processor capable of collecting the trace data of the fifth embodiment is different from the processor of the third embodiment of the present invention shown in FIG. A data acquisition processing unit 50 provided with a buffer full detection unit 51 for detecting a full state is provided, and a mechanism for automatically stopping the acquisition of trace data is added.

【0047】バッファフル検出部51…トレースバッフ
ァ18がフル状態であるかどうかを、バッファリング毎
にチェックし、バッファフルを検出した場合はソフトウ
ェア(トレースデータ採取プログラム)に割込み通知を
あげるとともに、命令ブロックのトレース制御を有効ま
たは無効にする制御フラグ部20における制御フラグを
オフにする。
Buffer full detection unit 51: Checks whether the trace buffer 18 is full at each buffering, and when a buffer full is detected, gives an interrupt notification to software (trace data collection program) and issues an instruction. The control flag in the control flag section 20 for enabling or disabling the block trace control is turned off.

【0048】図8はバッファフル検出部の動作の具体例
を示すフローチャートである。図8に示すステップ番号
S101〜S104は、図7において1〜4を丸で囲ん
で示されている。 ステップS101:トレースデータの採取プログラム
が、制御フラグ部20における制御フラグをオンするこ
とによりトレースデータの採取を開始させる。
FIG. 8 is a flowchart showing a specific example of the operation of the buffer full detector. Step numbers S101 to S104 shown in FIG. 8 are indicated by encircling 1 to 4 in FIG. Step S101: The trace data collection program starts collection of trace data by turning on the control flag in the control flag section 20.

【0049】ステップS102:バッファリング毎にバ
ッファフル検出部51がトレースバッファ18のフル状
態をチェックする。 ステップS103:バッファフル検出部51がバッファ
フルを検出すると、ソフトウェア(ここではトレース採
取プログラム)へ割込み通知をあげるとともに、制御フ
ラグをオフにして自動的にトレースデータの採取を中断
させる。また、割込み処理中となるので、トレース採取
プログラムから復帰しない限り、該当プロセッサ上での
命令実行も中断されたままとなる。
Step S102: The buffer full detecting section 51 checks the full state of the trace buffer 18 for each buffering. Step S103: When the buffer full detecting section 51 detects the buffer full, it notifies the software (here, the trace collection program) of an interrupt and turns off the control flag to automatically stop the collection of the trace data. In addition, since the interrupt processing is being performed, the instruction execution on the corresponding processor remains interrupted unless returning from the trace collection program.

【0050】ステップS104:ステップS103で割
込み通知を受けたトレース採取プログラム(割込みハン
ドラ部)は、トレースバッファ18からトレースデータ
を正式な(自身の)データ採取領域に保存する。その
後、トレースデータの採取処理を継続して行なうのであ
れば、制御フラグを再びオンにして、割込み処理から復
帰する。制御フラグをオンにして割込み処理から復帰す
ると、また命令実行処理とトレースデータの採取処理が
開始される。
Step S104: The trace collection program (interrupt handler unit) that has received the interrupt notification in step S103 stores the trace data from the trace buffer 18 in a formal (own) data collection area. Thereafter, if the trace data collection process is to be continued, the control flag is turned on again, and the process returns from the interrupt process. When the control flag is turned on and the process returns from the interrupt process, the instruction execution process and the trace data collection process are started.

【0051】以後、制御フラグをオンし続ける限り、上
記ステップS101〜S104の繰返しとなる。第5実
施形態によれば、任意の区間かつ任意のトレースデータ
サイズでのトレースデータの採取が可能となる。 (付記1) 実行したプログラムの命令ブロックのトレ
ースデータを格納し保持するトレースバッファと今回の
命令フェッチサイクルで使用されたプログラムカウンタ
PCの値である現PC値を格納し保持するプログラムカ
ウンタPCとを備えたトレースデータ採取可能なプロセ
ッサにおいて、前記プログラムカウンタPCの値の変化
に基づいて分岐の発生を検出し前記トレースデータを採
取することを特徴とするトレースデータ採取可能なプロ
セッサ。
Thereafter, steps S101 to S104 are repeated as long as the control flag is kept ON. According to the fifth embodiment, it is possible to collect trace data in an arbitrary section and an arbitrary trace data size. (Supplementary Note 1) A trace buffer for storing and holding the trace data of the instruction block of the executed program and a program counter PC for storing and holding the current PC value which is the value of the program counter PC used in the current instruction fetch cycle. A processor capable of collecting trace data, comprising detecting a branch occurrence based on a change in the value of the program counter PC and collecting the trace data.

【0052】(付記2) 前回の命令フェッチサイクル
で使用された前記プログラムカウンタPCの値である前
PC値を格納し保持する前PC値保持部と、今回の命令
フェッチを分岐判定トリガーとして、前記現PC値と前
記前PC値との差が固定の命令長と一致しなかった場合
に分岐の発生と判定し、トレースデータを採取する採取
トリガー信号を発生する分岐判定処理部と、前記採取ト
リガー信号を受け、前記前PC値および前記現PC値を
それぞれ分岐元アドレスおよび分岐先アドレスとして採
取し、前記トレースバッファに格納し、採取完了後に採
取完了通知信号を発生するデータ採取処理部と、を備え
た付記1に記載のプロセッサ。
(Supplementary Note 2) The previous PC value holding unit for storing and holding the previous PC value which is the value of the program counter PC used in the last instruction fetch cycle, and the current instruction fetch as a branch determination trigger, A branch determination processing unit that determines that a branch has occurred when a difference between a current PC value and the previous PC value does not match a fixed instruction length, and generates a collection trigger signal for collecting trace data; A data collection processing unit that receives the signal, collects the previous PC value and the current PC value as a branch source address and a branch destination address, respectively, stores them in the trace buffer, and generates a collection completion notification signal after the completion of the collection. The processor according to supplementary note 1 provided.

【0053】(付記3) 前記プログラムカウンタの値
で指示されるメモリアドレスに書き込まれた命令を取り
出し一時貯蔵する命令フェッチ部から前記分岐判定処理
部に送られる前記分岐判定トリガー信号を有効にするか
無効にするかを制御する制御フラグを備えた、付記2に
記載のプロセッサ。 (付記4) 前記分岐判定処理部が、前回の命令デコー
ドサイクルでデコードした前命令長を格納し保持する前
命令長保持部を備え、該前命令長を分岐であるか否かを
判定する分岐判定用の命令長に用いる、付記2または3
に記載のプロセッサ。
(Supplementary Note 3) Whether to enable the branch determination trigger signal sent from the instruction fetch unit that fetches and temporarily stores the instruction written at the memory address indicated by the value of the program counter to the branch determination processing unit 3. The processor according to claim 2, further comprising a control flag for controlling whether to invalidate the processor. (Supplementary Note 4) The branch determination processing unit includes a previous instruction length holding unit that stores and holds a previous instruction length decoded in a previous instruction decode cycle, and determines whether the previous instruction length is a branch. Supplementary note 2 or 3 used for instruction length for determination
A processor according to claim 1.

【0054】(付記5) 前記分岐判定処理部が、前記
現PC値と前記前PC値の差が命令キャッシュサイズを
越えた場合にその時の命令キャッシュ上にのっていない
命令アドレスへの分岐の発生と判定し、トレースデータ
を採取する採取トリガー信号を発生するキャッシュ利用
監視部を備えた、付記2または4に記載のプロセッサ。
(Supplementary Note 5) When the difference between the current PC value and the previous PC value exceeds the instruction cache size, the branch determination processing unit determines whether a branch to an instruction address not on the instruction cache at that time is made. 5. The processor according to appendix 2 or 4, further comprising a cache use monitoring unit that determines that generation has occurred and generates a collection trigger signal for collecting trace data.

【0055】(付記6) 前記データ採取処理部が、ト
レースバッファがトレースデータでフルになったか否か
を、バッファリング終了毎に判断し、フルになったこと
を検出したときソフトウェアに割込み通知をあげるとと
もに前記制御フラグをオフにするバッファフル検出部を
備えた、付記2乃至5の何れか1項に記載のプロセッ
サ。
(Supplementary Note 6) The data collection processing unit determines whether or not the trace buffer is full of trace data each time buffering is completed, and notifies the software of an interrupt when it detects that the buffer is full. 6. The processor according to any one of claims 2 to 5, further comprising a buffer full detection unit that turns off the control flag.

【0056】(付記7) 前記バッファフル検出部が前
記トレースバッファがトレースデータでフルになったこ
とを検出する毎に該トレースデータを記憶装置の所定の
場所に転送するバッファ転送部を備えた、付記6項に記
載のプロセッサ。
(Supplementary Note 7) A buffer transfer unit that transfers the trace data to a predetermined location in a storage device each time the buffer full detection unit detects that the trace buffer is full of trace data. 7. The processor according to claim 6, wherein:

【0057】[0057]

【発明の効果】以上説明したように、本発明によれば、
従来の様な分岐命令をトリガーとした狭い意味での分岐
だけでなく、ソフトウェア割込みや外部割込み等の非同
期要因も含めた広い意味での分岐も含めた正確なプログ
ラム実行履歴のデータ採取が可能となる。
As described above, according to the present invention,
It is possible to collect accurate program execution history data not only in the narrow sense that triggered by a branch instruction as in the past, but also in the broad sense including asynchronous factors such as software interrupts and external interrupts. Become.

【0058】また、本発明によれば、分岐命令や割込み
等の分岐要因の種類を意識することなく一元的に目的に
応じたターゲットデータを採取・格納・管理することも
可能となる。したがって、採取データを解析するプログ
ラム部では、一種類の格納元から採取情報を読み出せば
良いだけとなり、別の格納場所からの採取情報の読み出
しや、それによる余分なマージ処理等が不要となり、解
析処理が簡単になる。その結果、実行プロファイルの作
成等がより正確かつ容易になる。
According to the present invention, it is also possible to collectively collect, store, and manage target data according to the purpose without being conscious of the types of branch factors such as branch instructions and interrupts. Therefore, in the program section for analyzing the collected data, it is only necessary to read the collected information from one type of storage source, and it is not necessary to read the collected information from another storage location and to perform extra merge processing thereby. The analysis process is simplified. As a result, creation of an execution profile and the like becomes more accurate and easier.

【図面の簡単な説明】[Brief description of the drawings]

【図1】本発明の第1実施形態に係るトレースデータ採
取可能なプロセッサのブロック構成図である。
FIG. 1 is a block diagram of a processor capable of collecting trace data according to a first embodiment of the present invention.

【図2】プロセッサが実行する命令サイクルのフローチ
ャートである。
FIG. 2 is a flowchart of an instruction cycle executed by a processor.

【図3】発明の第1実施形態に係るトレースデータ採取
可能なプロセッサによるトレースデータ採取処理のフロ
ーチャートである。
FIG. 3 is a flowchart of trace data collection processing by a processor capable of collecting trace data according to the first embodiment of the present invention.

【図4】本発明の第2実施形態に係るトレースデータ採
取可能なプロセッサのブロック構成図である。
FIG. 4 is a block diagram of a processor capable of collecting trace data according to a second embodiment of the present invention.

【図5】本発明の第3実施形態に係るトレースデータ採
取可能なプロセッサのブロック構成図である。
FIG. 5 is a block diagram of a processor capable of collecting trace data according to a third embodiment of the present invention.

【図6】本発明の第4実施形態に係るトレースデータ採
取可能なプロセッサのブロック構成図である。
FIG. 6 is a block diagram of a processor capable of collecting trace data according to a fourth embodiment of the present invention.

【図7】本発明の第5実施形態に係るトレースデータ採
取可能なプロセッサのブロック構成図である。
FIG. 7 is a block diagram of a processor capable of collecting trace data according to a fifth embodiment of the present invention.

【図8】バッファフル検出部の動作の具体例を示すフロ
ーチャートである。
FIG. 8 is a flowchart illustrating a specific example of the operation of the buffer full detection unit.

【図9】従来技術によるトレースデータ採取の問題点を
説明するための実行プログラム例を示す図である。
FIG. 9 is a diagram showing an example of an execution program for explaining a problem of trace data collection according to the related art.

【符号の説明】[Explanation of symbols]

10…固定長設定部 11…記憶装置 12…命令フェッチ&デコードユニット 13…実行ユニット 14…PC(プログラムカウンタ) 15…前PC 16、30…分岐判定処理部 17、50…データ採取処理部 18…トレースバッファ 19…セレクタ 20…制御フラグ部 31…前命令長 40…キャッシュ利用監視部 41…キャッシュサイズ 51…バッファフル検出部 DESCRIPTION OF SYMBOLS 10 ... Fixed length setting part 11 ... Storage device 12 ... Instruction fetch & decode unit 13 ... Execution unit 14 ... PC (program counter) 15 ... Previous PC 16, 30 ... Branch judgment processing part 17, 50 ... Data collection processing part 18 ... Trace buffer 19 selector 20 control flag unit 31 previous instruction length 40 cache use monitoring unit 41 cache size 51 buffer full detection unit

───────────────────────────────────────────────────── フロントページの続き Fターム(参考) 5B042 GC08 HH30 MA08 MA09 MA20 MC04  ──────────────────────────────────────────────────続 き Continued on the front page F-term (reference) 5B042 GC08 HH30 MA08 MA09 MA20 MC04

Claims (5)

【特許請求の範囲】[Claims] 【請求項1】 実行したプログラムの命令ブロックのト
レースデータを格納し保持するトレースバッファと今回
の命令フェッチサイクルで使用されたプログラムカウン
タPCの値である現PC値を格納し保持するプログラム
カウンタPCとを備えたトレースデータ採取可能なプロ
セッサにおいて、前記プログラムカウンタPCの値の変
化に基づいて分岐の発生を検出し前記トレースデータを
採取することを特徴とするトレースデータ採取可能なプ
ロセッサ。
1. A trace buffer for storing and holding trace data of an instruction block of an executed program, and a program counter PC for storing and holding a current PC value which is a value of a program counter PC used in a current instruction fetch cycle. A processor capable of collecting trace data, comprising detecting a branch occurrence based on a change in the value of the program counter PC and collecting the trace data.
【請求項2】 前回の命令フェッチサイクルで使用され
た前記プログラムカウンタPCの値である前PC値を格
納し保持する前PC値保持部と、 今回の命令フェッチを分岐判定トリガーとして、前記現
PC値と前記前PC値との差が固定の命令長と一致しな
かった場合に分岐の発生と判定し、トレースデータを採
取する採取トリガー信号を発生する分岐判定処理部と、 前記採取トリガー信号を受け、前記前PC値および前記
現PC値をそれぞれ分岐元アドレスおよび分岐先アドレ
スとして採取し、前記トレースバッファに格納し、採取
完了後に採取完了通知信号を発生するデータ採取処理部
と、を備えた請求項1に記載のプロセッサ。
2. A previous PC value holding unit for storing and holding a previous PC value which is a value of the program counter PC used in a previous instruction fetch cycle; and a current PC using a current instruction fetch as a branch determination trigger. A branch determination processing unit that determines that a branch has occurred when the difference between the value and the previous PC value does not match the fixed instruction length, and generates a collection trigger signal for collecting trace data; Receiving the previous PC value and the current PC value as a branch source address and a branch destination address, respectively, storing the same in the trace buffer, and generating a collection completion notification signal after the completion of the collection. The processor according to claim 1.
【請求項3】 前記プログラムカウンタの値で指示され
るメモリアドレスに書き込まれた命令を取り出し一時貯
蔵する命令フェッチ部から前記分岐判定処理部に送られ
る前記分岐判定トリガー信号を有効にするか無効にする
かを制御する制御フラグを備えた、請求項2に記載のプ
ロセッサ。
3. The method according to claim 1, wherein the instruction written to the memory address indicated by the value of the program counter is fetched and temporarily stored in an instruction fetch unit. The processor according to claim 2, further comprising a control flag for controlling whether to perform the operation.
【請求項4】 前記分岐判定処理部が、前回の命令デコ
ードサイクルでデコードした前命令長を格納し保持する
前命令長保持部を備え、該前命令長を分岐であるか否か
を判定する分岐判定用の命令長に用いる、請求項2また
は3に記載のプロセッサ。
4. The branch determination processing unit includes a previous instruction length holding unit that stores and holds a previous instruction length decoded in a previous instruction decode cycle, and determines whether the previous instruction length is a branch. 4. The processor according to claim 2, which is used for an instruction length for branch determination.
【請求項5】 前記分岐判定処理部が、前記現PC値と
前記前PC値の差が命令キャッシュサイズを越えた場合
にその時の命令キャッシュ上から外れた命令アドレスへ
の分岐の発生と判定し、トレースデータを採取する採取
トリガー信号を発生するキャッシュ利用監視部を備え
た、請求項2または4に記載のプロセッサ。
5. The branch determination processing unit determines, when a difference between the current PC value and the previous PC value exceeds an instruction cache size, that a branch to an instruction address off the instruction cache at that time has occurred. 5. The processor according to claim 2, further comprising a cache use monitoring unit that generates a collection trigger signal for collecting trace data.
JP2001151078A 2001-05-21 2001-05-21 Processor capable of collecting trace data Pending JP2002342114A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2001151078A JP2002342114A (en) 2001-05-21 2001-05-21 Processor capable of collecting trace data

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2001151078A JP2002342114A (en) 2001-05-21 2001-05-21 Processor capable of collecting trace data

Publications (1)

Publication Number Publication Date
JP2002342114A true JP2002342114A (en) 2002-11-29

Family

ID=18995989

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2001151078A Pending JP2002342114A (en) 2001-05-21 2001-05-21 Processor capable of collecting trace data

Country Status (1)

Country Link
JP (1) JP2002342114A (en)

Cited By (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8286141B2 (en) 2008-06-26 2012-10-09 Fujitsu Limited Instruction-trace generation program, instruction-trace generating device, and instruction-trace generating method
WO2013136737A1 (en) * 2012-03-16 2013-09-19 International Business Machines Corporation Run-time instrumentation sampling in transactional-execution mode
US8874975B2 (en) 2011-01-13 2014-10-28 Arm Limited Tracing of a data processing apparatus
US9158660B2 (en) 2012-03-16 2015-10-13 International Business Machines Corporation Controlling operation of a run-time instrumentation facility
JP2015210575A (en) * 2014-04-24 2015-11-24 富士通株式会社 Information processor, processing method and processing program
US9250902B2 (en) 2012-03-16 2016-02-02 International Business Machines Corporation Determining the status of run-time-instrumentation controls
US9280447B2 (en) 2012-03-16 2016-03-08 International Business Machines Corporation Modifying run-time-instrumentation controls from a lesser-privileged state
US9280346B2 (en) 2012-03-16 2016-03-08 International Business Machines Corporation Run-time instrumentation reporting
US9367316B2 (en) 2012-03-16 2016-06-14 International Business Machines Corporation Run-time instrumentation indirect sampling by instruction operation code
US9367313B2 (en) 2012-03-16 2016-06-14 International Business Machines Corporation Run-time instrumentation directed sampling
US9395989B2 (en) 2012-03-16 2016-07-19 International Business Machines Corporation Run-time-instrumentation controls emit instruction
US9400736B2 (en) 2012-03-16 2016-07-26 International Business Machines Corporation Transformation of a program-event-recording event into a run-time instrumentation event
US9405541B2 (en) 2012-03-16 2016-08-02 International Business Machines Corporation Run-time instrumentation indirect sampling by address
CN105868099A (en) * 2015-12-01 2016-08-17 乐视致新电子科技(天津)有限公司 Branch submit difference detection method and device
US9454462B2 (en) 2012-03-16 2016-09-27 International Business Machines Corporation Run-time instrumentation monitoring for processor characteristic changes
US9483269B2 (en) 2012-03-16 2016-11-01 International Business Machines Corporation Hardware based run-time instrumentation facility for managed run-times

Cited By (32)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8286141B2 (en) 2008-06-26 2012-10-09 Fujitsu Limited Instruction-trace generation program, instruction-trace generating device, and instruction-trace generating method
US9378113B2 (en) 2011-01-13 2016-06-28 Arm Limited Tracing of a data processing apparatus
US10379989B2 (en) 2011-01-13 2019-08-13 Arm Limited Processing apparatus, trace unit and diagnostic apparatus
US8874975B2 (en) 2011-01-13 2014-10-28 Arm Limited Tracing of a data processing apparatus
US9400736B2 (en) 2012-03-16 2016-07-26 International Business Machines Corporation Transformation of a program-event-recording event into a run-time instrumentation event
US9405541B2 (en) 2012-03-16 2016-08-02 International Business Machines Corporation Run-time instrumentation indirect sampling by address
US9250902B2 (en) 2012-03-16 2016-02-02 International Business Machines Corporation Determining the status of run-time-instrumentation controls
US9250903B2 (en) 2012-03-16 2016-02-02 International Business Machinecs Corporation Determining the status of run-time-instrumentation controls
US9280448B2 (en) 2012-03-16 2016-03-08 International Business Machines Corporation Controlling operation of a run-time instrumentation facility from a lesser-privileged state
US9280447B2 (en) 2012-03-16 2016-03-08 International Business Machines Corporation Modifying run-time-instrumentation controls from a lesser-privileged state
US9280346B2 (en) 2012-03-16 2016-03-08 International Business Machines Corporation Run-time instrumentation reporting
US9367316B2 (en) 2012-03-16 2016-06-14 International Business Machines Corporation Run-time instrumentation indirect sampling by instruction operation code
US9367313B2 (en) 2012-03-16 2016-06-14 International Business Machines Corporation Run-time instrumentation directed sampling
US9372693B2 (en) 2012-03-16 2016-06-21 International Business Machines Corporation Run-time instrumentation sampling in transactional-execution mode
US9158660B2 (en) 2012-03-16 2015-10-13 International Business Machines Corporation Controlling operation of a run-time instrumentation facility
US9395989B2 (en) 2012-03-16 2016-07-19 International Business Machines Corporation Run-time-instrumentation controls emit instruction
JP2015513375A (en) * 2012-03-16 2015-05-11 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation Computer program product, method, and system for implementing runtime instrumentation sampling in transactional execution mode (runtime instrumentation sampling in transactional execution mode)
WO2013136737A1 (en) * 2012-03-16 2013-09-19 International Business Machines Corporation Run-time instrumentation sampling in transactional-execution mode
US9405543B2 (en) 2012-03-16 2016-08-02 International Business Machines Corporation Run-time instrumentation indirect sampling by address
US9411591B2 (en) 2012-03-16 2016-08-09 International Business Machines Corporation Run-time instrumentation sampling in transactional-execution mode
US9489285B2 (en) 2012-03-16 2016-11-08 International Business Machines Corporation Modifying run-time-instrumentation controls from a lesser-privileged state
US9430238B2 (en) 2012-03-16 2016-08-30 International Business Machines Corporation Run-time-instrumentation controls emit instruction
US9442728B2 (en) 2012-03-16 2016-09-13 International Business Machines Corporation Run-time instrumentation indirect sampling by instruction operation code
US9442824B2 (en) 2012-03-16 2016-09-13 International Business Machines Corporation Transformation of a program-event-recording event into a run-time instrumentation event
US9454462B2 (en) 2012-03-16 2016-09-27 International Business Machines Corporation Run-time instrumentation monitoring for processor characteristic changes
US9459873B2 (en) 2012-03-16 2016-10-04 International Business Machines Corporation Run-time instrumentation monitoring of processor characteristics
US9465716B2 (en) 2012-03-16 2016-10-11 International Business Machines Corporation Run-time instrumentation directed sampling
US9471315B2 (en) 2012-03-16 2016-10-18 International Business Machines Corporation Run-time instrumentation reporting
US9483269B2 (en) 2012-03-16 2016-11-01 International Business Machines Corporation Hardware based run-time instrumentation facility for managed run-times
US9483268B2 (en) 2012-03-16 2016-11-01 International Business Machines Corporation Hardware based run-time instrumentation facility for managed run-times
JP2015210575A (en) * 2014-04-24 2015-11-24 富士通株式会社 Information processor, processing method and processing program
CN105868099A (en) * 2015-12-01 2016-08-17 乐视致新电子科技(天津)有限公司 Branch submit difference detection method and device

Similar Documents

Publication Publication Date Title
JP2002342114A (en) Processor capable of collecting trace data
US8060730B2 (en) Selective MISR data accumulation during exception processing
US6304960B1 (en) Validating prediction for branches in a cluster via comparison of predicted and condition selected tentative target addresses and validation of branch conditions
US5109381A (en) Apparatus and method for detecting errors in a pipeline data processor
JPS63175934A (en) Data processor
US7376820B2 (en) Information processing unit, and exception processing method for specific application-purpose operation instruction
JP2013211023A (en) Method and system for accelerating procedure return sequences
US20050028036A1 (en) Program debug apparatus, program debug method and program
JP2005215816A (en) Performance profiling method using hardware monitor
US20210004306A1 (en) Processor with non-intrusive self-testing
JPH1196006A (en) Information processor
JP2009217385A (en) Processor and multiprocessor
US5813039A (en) Guest execution control system, method and computer process for a virtual machine system
JPH04264923A (en) Information processor
US20190163601A1 (en) Apparatus and method for controlling assertion of a trigger signal to processing circuitry
JP2004062309A (en) Method of processing illegal instruction and processor
JP2001014027A (en) Fault analysis assisting system for process controller
TWI798339B (en) Method, module, apparatus, analyser, computer program and storage medium using commit window move element
JP3112861B2 (en) Microprocessor
JPH04145544A (en) Debugging device
JP2001265619A (en) Data tracing system
JP2687750B2 (en) Electronic computer processor
JP2001005689A (en) Trace sampling circuit
JPH0528002A (en) Microprocessor
KR20230013124A (en) Profiling of sampled operations processed by processing circuitry

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20060306

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20060314

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20060515

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20061003