JP2006285430A - Cpu memory access analysis device - Google Patents

Cpu memory access analysis device Download PDF

Info

Publication number
JP2006285430A
JP2006285430A JP2005102159A JP2005102159A JP2006285430A JP 2006285430 A JP2006285430 A JP 2006285430A JP 2005102159 A JP2005102159 A JP 2005102159A JP 2005102159 A JP2005102159 A JP 2005102159A JP 2006285430 A JP2006285430 A JP 2006285430A
Authority
JP
Japan
Prior art keywords
cache
output
hit
event
cpu
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
JP2005102159A
Other languages
Japanese (ja)
Inventor
Hidekazu Yamazaki
英和 山崎
Toshiaki Nishio
歳朗 西尾
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.)
Panasonic Holdings Corp
Original Assignee
Matsushita Electric Industrial Co 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 Matsushita Electric Industrial Co Ltd filed Critical Matsushita Electric Industrial Co Ltd
Priority to JP2005102159A priority Critical patent/JP2006285430A/en
Publication of JP2006285430A publication Critical patent/JP2006285430A/en
Pending legal-status Critical Current

Links

Images

Abstract

<P>PROBLEM TO BE SOLVED: To output a CPU memory access state with a low band width without influencing the behavior of a system so as to optimize processing speed of software by means of CPU memory access analysis in the system LSI. <P>SOLUTION: The system LSI is provided with; a cache access detection means which detects a cache mishit signal; a process change detection means which detects the change of a process; an output control means which controls an output selection means so that process change information and cache mishit information may be each outputted to the outside of the system LSI when it receives process change signals and cache mishit signals, respectively; and the output selection means which generates the process change information or the cache mishit information according to the output control means to output it to the outside of the system LSI. The system LSI outputs a memory access state at the time of the cache mishit as a virtual address correlated with a process ID. <P>COPYRIGHT: (C)2007,JPO&INPIT

Description

本発明は、CPU、メモリ、他周辺回路から構成されるSoC(System On Chip)等のシステムLSIにおいて、ソフトウェア処理速度の改善を可能にするCPUメモリアクセス解析装置に関するものである。   The present invention relates to a CPU memory access analysis device that can improve software processing speed in a system LSI such as a SoC (System On Chip) composed of a CPU, a memory, and other peripheral circuits.

CPU処理速度は年率数10%で向上しているが、メモリ処理速度の向上率はCPUと比較して低い。その結果、メモリアクセス時のペナルティが年々増加している。   The CPU processing speed is improved at an annual rate of 10%, but the improvement rate of the memory processing speed is lower than that of the CPU. As a result, penalties for memory access are increasing year by year.

CPUのメモリアクセスを解析するためには、CPUのキャッシュアクセスの状態を抽出すればよく、計測方法には、シミュレータによる計測と実機による計測がある。   In order to analyze the memory access of the CPU, it is only necessary to extract the cache access state of the CPU, and the measurement method includes measurement by a simulator and measurement by an actual machine.

従来のシミュレータによるCPUメモリアクセスの計測方法としては、計測対象となるCPUの動作をソフトウェアでシミュレーションしてメモリアクセスの状態を抽出する方法があった。   As a conventional method for measuring CPU memory access by a simulator, there is a method of extracting the memory access state by simulating the operation of the CPU to be measured by software.

従来の実機によるCPUメモリアクセスの計測方法としては、CPU外部バスからキャッシュミスヒット時のアドレスとデータを取得し、そのアドレスに対応したキャッシュエントリ単位でミスヒット数をカウントアップし、その値を主記憶に保持する方法や、ハードウェアによりミスヒット数などをカウントした値を、割り込みなどを利用してソフトウェアで収集し主記憶に保持、あるいは、外部に出力する方法があった(例えば、特許文献1参照)。図10は、前記特許文献1に記載された従来のCPUメモリアクセス解析方法を示すものである。   As a conventional method for measuring CPU memory access by a real machine, an address and data at the time of a cache miss hit are obtained from the CPU external bus, the number of miss hits is counted up for each cache entry corresponding to the address, and the value is mainly used. There are a method of holding in memory, a method of collecting the number of miss hits by hardware, etc. by software using interrupts and holding it in the main memory, or a method of outputting to the outside (for example, patent document) 1). FIG. 10 shows a conventional CPU memory access analysis method described in Patent Document 1. In FIG.

図10において、キャッシュミスヒット時にCPU200からCPU外部のアドレスバスに出力されたアドレスは、アクセスアドレス格納手段110により取得される。アクセスアドレス格納手段110が取得したアドレスは、比較アドレス格納手段130で予め設定されたアドレス領域内であるか比較手段140により比較される。比較手段140が一致を検出した場合には制御手段180に通知し、制御手段180は、下位アドレス抽出手段150と上位アドレス格納手段160を用いて主記憶上のキャッシュミスアドレス分布表310のエントリから、カウンタ値を読出し、その値に加算手段170により1加算して、元のエントリに書き戻す。これにより、キャッシュミスアドレス分布表310にキャッシュミス分布を出力する。
特許第2790119号公報
In FIG. 10, the address output from the CPU 200 to the address bus outside the CPU at the time of a cache miss hit is acquired by the access address storage means 110. The address acquired by the access address storage means 110 is compared by the comparison means 140 to determine whether it is within the address area preset by the comparison address storage means 130. When the comparison unit 140 detects a match, the control unit 180 notifies the control unit 180, and the control unit 180 uses the lower address extraction unit 150 and the upper address storage unit 160 from the entry in the cache miss address distribution table 310 on the main memory. The counter value is read out, 1 is added to the value by the adding means 170, and the result is written back to the original entry. As a result, the cache miss distribution is output to the cache miss address distribution table 310.
Japanese Patent No. 2790119

しかしながら、シミュレータによるCPUメモリアクセス解析方法では、計測時間が大きくなる上に、CPU周辺回路をモデル化しているため、実システムでの動作とは異なるという課題を有している。また、前記特許文献1のような従来の実機による解析方法では、CPUメモリアクセス状態を抽出するためにシステムリソース(CPU、バス、あるいは主記憶)を消費し、それによりシステムの実動作が阻害される課題を有していた。さらに、CPUメモリアクセスの計測結果を利用してソフトウェアの処理速度を改善するためには、高速なCPUメモリアクセス動作をCPU動作周波数よりはるかに長いプログラム実行時間のオーダで計測する必要があるが、前記特許文献1のような従来の実機による解析方法をシステムLSI上に実装するには、搭載するメモリ容量が限られ、外部出力端子数が限られているため困難であった。   However, the CPU memory access analysis method by the simulator has a problem that the measurement time is increased and the CPU peripheral circuit is modeled, which is different from the operation in the actual system. Further, in the conventional analysis method using a real machine such as Patent Document 1, system resources (CPU, bus, or main memory) are consumed to extract the CPU memory access state, thereby hindering the actual operation of the system. Had problems. Furthermore, in order to improve the processing speed of software using the measurement result of CPU memory access, it is necessary to measure a high-speed CPU memory access operation on the order of program execution time much longer than the CPU operating frequency. It is difficult to mount an analysis method using a conventional actual machine such as Patent Document 1 on a system LSI because the memory capacity to be mounted is limited and the number of external output terminals is limited.

本発明は、前記従来の課題を解決するもので、ソフトウェア処理速度の改善に必要なCPUメモリアクセス状態を、システムの振舞いに影響を与えることなく低ビットレートでシステムLSI外部に出力する方法、装置を提供することを目的とする。   The present invention solves the above-described conventional problems, and outputs a CPU memory access state necessary for improving the software processing speed to the outside of the system LSI at a low bit rate without affecting the system behavior. The purpose is to provide.

前記従来の課題を解決するために、本発明のCPUメモリアクセス解析装置は、システムLSI内に、キャッシュミスヒット信号を検出するキャッシュアクセス検出手段と、プロセス切替を検出するプロセス切替検出手段と、前記プロセス切替信号を受信した場合にはプロセス切替情報を、前記キャッシュミスヒット信号を受信した場合にはキャッシュミスヒット情報をシステムLSI外部に出力するように制御する出力制御手段と、前記出力制御手段に従ってプロセス切替情報、または、キャッシュミスヒット情報を生成しシステムLSI外部に出力する出力選択手段を有し、キャッシュミスヒット時のメモリアクセス状態をプロセスIDに対応付けられた仮想アドレスとして出力することを特徴とする。   In order to solve the conventional problem, a CPU memory access analysis device according to the present invention includes, in a system LSI, a cache access detection unit that detects a cache miss hit signal, a process switching detection unit that detects process switching, According to the output control means for controlling to output the process switching information when the process switching signal is received, and to output the cache miss information to the outside of the system LSI when the cache miss hit signal is received. It has an output selection means for generating process switching information or cache miss hit information and outputting it to the outside of the system LSI, and outputs the memory access state at the time of the cache miss hit as a virtual address associated with the process ID. And

本構成によって、システムの振舞いに影響を与えず、少ないバンド幅でCPUメモリアクセス状態を出力することができ、ソフトウェアの性能面でボトルネックとなっている部分を最適化し、システム全体の処理速度を向上することができる。   With this configuration, it is possible to output the CPU memory access status with a small bandwidth without affecting the system behavior, optimizing the bottleneck in terms of software performance, and reducing the overall system processing speed. Can be improved.

本発明のCPUメモリアクセス解析装置によれば、システムの振舞いに影響を与えることなく低ビットレートでCPUメモリアクセスの状態を抽出することができる。   According to the CPU memory access analysis device of the present invention, the CPU memory access state can be extracted at a low bit rate without affecting the system behavior.

これは、CPUメモリアクセス解析装置が、CPUから取得したメモリアクセス状態からソフトウェアの最適化に必要な情報、つまり、キャッシュミスヒット情報とプロセス切替情報とを抽出して、間欠的に出力する機構としてシステムLSI内に構築されることによる。   This is a mechanism in which the CPU memory access analyzer extracts information necessary for software optimization from the memory access state acquired from the CPU, that is, cache miss hit information and process switching information, and outputs them intermittently. By being built in the system LSI.

また、本発明のCPUメモリアクセス解析装置によれば、出力されるビットレートが低減されるため、プログラム実行時間というCPU動作周波数に比べてマクロなオーダでメモリアクセス解析を行うことが可能となり、キャッシュミスヒットの詳細な情報により、ソフトウェアの処理速度の面でボトルネックとなっている部分の最適化が容易になる。   Further, according to the CPU memory access analysis device of the present invention, the output bit rate is reduced, so that it is possible to perform memory access analysis on a macro order compared to the CPU operating frequency of program execution time, and cache The detailed information on the miss hits makes it easy to optimize the part that is a bottleneck in terms of software processing speed.

以下本発明の実施の形態について、図面を参照しながら説明する。   Embodiments of the present invention will be described below with reference to the drawings.

(実施の形態1)
図1は、本発明の実施の形態1におけるCPUメモリアクセス解析装置の一例を示す構成図である。図1に示すシステムLSI10は、CPUメモリアクセス解析装置100と、CPU200と、メモリ300と、システムバス400を備えている。CPUメモリアクセス解析装置100は、キャッシュアクセス検出手段101と、プロセス切替検出手段102と、出力制御手段103と、出力選択手段104を備えている。
(Embodiment 1)
FIG. 1 is a configuration diagram showing an example of a CPU memory access analysis apparatus according to Embodiment 1 of the present invention. A system LSI 10 shown in FIG. 1 includes a CPU memory access analysis device 100, a CPU 200, a memory 300, and a system bus 400. The CPU memory access analysis apparatus 100 includes a cache access detection unit 101, a process switching detection unit 102, an output control unit 103, and an output selection unit 104.

さらに、CPU200は、CPUコア201と、MMU(Memory Management Unit)202と、キャッシュメモリ203を備えている。   Further, the CPU 200 includes a CPU core 201, an MMU (Memory Management Unit) 202, and a cache memory 203.

本実施の形態では、CPU200上でメモリ300に保持されているOS(Operating System)301が動作しており、OS301上でメモリ300に保持されているプロセスA302、プロセスB303等の複数のプロセスが動作している。   In this embodiment, an OS (Operating System) 301 held in the memory 300 is operating on the CPU 200, and a plurality of processes such as a process A 302 and a process B 303 held in the memory 300 are operating on the OS 301. is doing.

CPUコア201はメモリから命令コードをフェッチするために仮想アドレスをMMU202に出力する。MMU202は仮想アドレスを対応する物理アドレスに変換し、物理アドレスがキャッシュ対象のアドレス空間の場合に、キャッシュメモリ203にキャッシュアクセスリクエスト信号と共に物理アドレスを出力する。キャッシュメモリ203はMMU202からキャッシュアクセスリクエスト信号により物理アドレスを受信すると、物理アドレスに対応する命令コードがキャッシュメモリ203内に保持されているかどうか判定し、命令コードが見つかった、キャッシュヒットした場合には保持している命令コードをCPUコア201に出力する。命令コードが見つからなかった、キャッシュミスヒットした場合にはCPUコア201はキャッシュメモリ203から出力されたミスヒット信号を受信し、キャッシュメモリ203がメモリ300から前記物理アドレスに対応する命令コードを取得するまで待機する。同時に、キャッシュメモリ203はシステムバス400を介して、メモリ300に前記物理アドレスを出力し対応する命令コードを取得する。キャッシュメモリ204が命令コードを取得すると、CPUコア201は再度同じ物理アドレスによりキャッシュメモリ203から命令コードをフェッチする。   The CPU core 201 outputs a virtual address to the MMU 202 in order to fetch the instruction code from the memory. The MMU 202 converts the virtual address into a corresponding physical address, and outputs the physical address together with the cache access request signal to the cache memory 203 when the physical address is an address space to be cached. When the cache memory 203 receives a physical address from the MMU 202 by a cache access request signal, the cache memory 203 determines whether or not an instruction code corresponding to the physical address is held in the cache memory 203, and if the instruction code is found or if a cache hit occurs. The retained instruction code is output to the CPU core 201. When the instruction code is not found or a cache miss occurs, the CPU core 201 receives the miss hit signal output from the cache memory 203, and the cache memory 203 acquires the instruction code corresponding to the physical address from the memory 300. Wait until. At the same time, the cache memory 203 outputs the physical address to the memory 300 via the system bus 400 and obtains a corresponding instruction code. When the cache memory 204 acquires the instruction code, the CPU core 201 fetches the instruction code from the cache memory 203 again with the same physical address.

また、前記OS301上で動作するプロセスが、例えばプロセスA302からプロセスB303に切替った場合に、OS301はCPUコア201が保持するレジスタにプロセスB303を識別するプロセスIDを書き込むことにより、MMU201にプロセスIDを出力する。MMU202は前記プロセスIDによりプロセス毎の仮想アドレス空間を管理する。   Further, when the process operating on the OS 301 is switched from, for example, the process A 302 to the process B 303, the OS 301 writes the process ID for identifying the process B 303 in a register held by the CPU core 201, so that the process ID is stored in the MMU 201. Is output. The MMU 202 manages a virtual address space for each process based on the process ID.

キャッシュアクセス検出手段101はMMU202から出力されたキャッシュアクセスリクエスト信号とキャッシュメモリ203から出力されたキャッシュミスヒット信号により、キャッシュミスヒットを検出しキャッシュミスヒット信号を出力制御手段103に出力する。   The cache access detection unit 101 detects a cache miss based on the cache access request signal output from the MMU 202 and the cache miss signal output from the cache memory 203, and outputs the cache miss signal to the output control unit 103.

出力制御手段103がキャッシュミスヒット信号を受信すると、キャッシュミスヒットイベントを特定するためのイベント識別子、値「1」を出力選択手段104に出力すると共に、出力選択手段104が、CPUコア201から出力された仮想アドレスと前記イベント識別子を選択するように出力制御信号を出力する。   When the output control means 103 receives the cache miss hit signal, it outputs an event identifier for identifying a cache miss hit event, the value “1” to the output selection means 104, and the output selection means 104 outputs from the CPU core 201. An output control signal is output so as to select the virtual address and the event identifier.

出力選択手段104は、出力制御手段103からの出力制御信号によって、前記仮想アドレスと前記イベント識別子を出力する。   The output selection unit 104 outputs the virtual address and the event identifier in response to an output control signal from the output control unit 103.

さらに、プロセス切替検出手段102はMMU202から出力されたプロセスIDとプロセス切替検出手段102が保持するプロセスIDを比較する。一致しない場合には、プロセス切替検出手段102は保持していたプロセスIDをMMU202から出力されたプロセスIDにより更新し、同時に、出力制御手段103にプロセス切替信号を、出力選択手段104に更新されたプロセスIDを出力する。   Further, the process switching detection unit 102 compares the process ID output from the MMU 202 with the process ID held by the process switching detection unit 102. If they do not match, the process switching detection unit 102 updates the held process ID with the process ID output from the MMU 202, and at the same time, the process switching signal is updated to the output control unit 103 and the output selection unit 104 is updated. Output process ID.

出力制御手段103がプロセス切替信号を受信すると、プロセス切替を特定するためのイベント識別子、値「2」を出力選択手段104に出力すると共に、出力選択手段104が、プロセス切替検出手段102から出力された前記プロセスIDと前記イベント識別子を選択するように出力制御信号を出力する。   When the output control means 103 receives the process switching signal, it outputs an event identifier for specifying process switching, the value “2” to the output selection means 104, and the output selection means 104 is output from the process switching detection means 102. An output control signal is output so as to select the process ID and the event identifier.

出力選択手段104は、出力制御手段103からの出力制御信号によって、前記プロセスIDと前記イベント識別子を出力する。   The output selection unit 104 outputs the process ID and the event identifier in response to an output control signal from the output control unit 103.

このようにして、CPUメモリアクセス解析装置100はキャッシュミスヒットが発生した場合には、CPU200から出力された仮想アドレスと、キャッシュミスヒットイベントを特定するイベント識別子をキャッシュミスヒット情報として出力する。また、プロセス切替が発生した場合には、切替ったプロセスIDと、プロセス切替イベントを特定するイベント識別子をプロセス切替情報として出力する。   In this way, when a cache miss hit occurs, the CPU memory access analysis apparatus 100 outputs the virtual address output from the CPU 200 and the event identifier specifying the cache miss hit event as cache miss hit information. When process switching occurs, the switched process ID and an event identifier for identifying a process switching event are output as process switching information.

図2は、本発明の実施の形態1における出力制御手段103の動作をフローチャートにより説明したものである。   FIG. 2 is a flowchart for explaining the operation of the output control means 103 in Embodiment 1 of the present invention.

出力制御手段103は、キャッシュアクセス検出手段101からキャッシュミスヒット信号を、あるいは、プロセス切替検出手段102からプロセス切替信号を受信すると、イベント判定を行う。キャッシュミスヒットイベントであればステップS2002に進み、プロセス切替イベントであればS2004に進む(ステップS2001)。   When the output control unit 103 receives a cache miss hit signal from the cache access detection unit 101 or a process switching signal from the process switching detection unit 102, the output control unit 103 performs event determination. If it is a cache miss hit event, the process proceeds to step S2002, and if it is a process switching event, the process proceeds to S2004 (step S2001).

出力制御手段103はキャッシュミスヒットイベントを受信した場合、キャッシュミスヒットイベントを特定するイベント識別子、ここでは値「1」を出力選択手段104に出力する(ステップS2002)。   When receiving the cache miss hit event, the output control means 103 outputs an event identifier for identifying the cache miss hit event, here the value “1” to the output selection means 104 (step S2002).

さらに、出力制御手段103はCPU100から出力された仮想アドレスと、ステップS2002で出力したイベント識別子を出力するように出力選択手段104に出力制御信号を出力する(ステップS2003)。   Further, the output control means 103 outputs an output control signal to the output selection means 104 so as to output the virtual address output from the CPU 100 and the event identifier output in step S2002 (step S2003).

一方、出力制御手段103はプロセス切替イベントを受信した場合、プロセス切替イベントを特定するイベント識別子、ここでは値「2」を出力選択手段104に出力する(ステップS2004)。   On the other hand, when receiving the process switching event, the output control means 103 outputs an event identifier for identifying the process switching event, here the value “2”, to the output selection means 104 (step S2004).

さらに、出力制御手段103はプロセス切替検出手段102から出力されたプロセスIDと、ステップS2004で出力したイベント識別子を出力するように出力選択手段104に出力制御信号を出力する(ステップS2005)。   Further, the output control unit 103 outputs an output control signal to the output selection unit 104 so as to output the process ID output from the process switching detection unit 102 and the event identifier output in step S2004 (step S2005).

かかる構成によれば、キャッシュミスヒット時とプロセス切替時のみメモリアクセス状態を出力することにより、プログラムの実行時間のオーダで、図3の(a)に示すようにキャッシュミスヒット時のメモリアクセス状態をプロセスIDに対応付けられた仮想アドレスとして出力することができる。この結果を用いて、図3の(b)に示すようにキャッシュミスヒット数により統計をとることにより、プログラムの性能面でボトルネックとなっている部分を見つけ出すことが可能となる。これは、プログラムのリンク時に出力されたマップファイル、プログラムの逆アセンブル結果、あるいは、デバッグ情報により、CPUメモリアクセス解析装置100によって出力された仮想アドレスをプログラムコードと対応付けることが可能であり、また、OS301によりプロセスIDとプロセス名(プログラム名)を対応付けることが可能であることによる。   According to such a configuration, the memory access state is output only at the time of cache miss hit and at the time of process switching, so that the memory access state at the time of cache miss hit as shown in FIG. Can be output as a virtual address associated with the process ID. By using this result and taking statistics based on the number of cache misses as shown in FIG. 3 (b), it becomes possible to find a portion that is a bottleneck in terms of program performance. This is because the virtual address output by the CPU memory access analyzer 100 can be associated with the program code based on the map file output at the time of linking the program, the program disassembly result, or the debug information. This is because the OS 301 can associate the process ID with the process name (program name).

なお、本発明の実施の形態において、CPUメモリアクセス解析装置の例としてCPUが命令コードをフェッチする場合を示したが、CPUがメモリからデータを読み込む、あるいは、メモリに保存する場合についても同様にメモリアクセス状態を出力することができる。そのため、本CPUメモリアクセス解析装置を、命令、データを別々に扱うハーバード型キャッシュに用いてもよいし、命令、データを同一に扱うユニファイドキャッシュに用いてもよい。   In the embodiment of the present invention, the case where the CPU fetches the instruction code is shown as an example of the CPU memory access analysis device, but the same applies to the case where the CPU reads data from the memory or stores it in the memory. The memory access status can be output. Therefore, this CPU memory access analysis apparatus may be used for a Harvard cache that handles instructions and data separately, or may be used for a unified cache that handles instructions and data in the same way.

(実施の形態2)
図4は、本発明の実施の形態2におけるCPUメモリアクセス解析装置の一例を示す構成図である。図4に示すシステムLSI10は、CPUメモリアクセス解析装置100と、CPU200と、メモリ300と、システムバス400を備えている点は実施の形態1と同様であるが、実施の形態2においては、CPUメモリアクセス解析装置100は、イベントカウンタ505とキャッシュヒットカウンタ506を更に備え、また、キャッシュアクセス検出手段101の代わりにキャッシュアクセス検出手段501と、出力制御手段103の代わりに出力制御手段503と、出力選択手段104の代わりに出力選択手段504を備えている。
(Embodiment 2)
FIG. 4 is a block diagram showing an example of a CPU memory access analysis apparatus according to Embodiment 2 of the present invention. The system LSI 10 shown in FIG. 4 is similar to the first embodiment in that the CPU memory access analysis apparatus 100, the CPU 200, the memory 300, and the system bus 400 are provided. The memory access analysis apparatus 100 further includes an event counter 505 and a cache hit counter 506, a cache access detection unit 501 instead of the cache access detection unit 101, an output control unit 503 instead of the output control unit 103, and an output An output selection unit 504 is provided instead of the selection unit 104.

キャッシュアクセス検出手段501はCPU200から出力されたキャッシュアクセスリクエスト信号とキャッシュミスヒット信号により、キャッシュヒット、あるいは、キャッシュミスヒットを検出し、キャッシュヒット信号、あるいは、キャッシュミスヒット信号をそれぞれ出力する。   The cache access detection unit 501 detects a cache hit or a cache miss hit based on the cache access request signal and the cache miss hit signal output from the CPU 200, and outputs a cache hit signal or a cache miss hit signal, respectively.

キャッシュヒットカウンタ506は、前記キャッシュヒット信号を受信すると保持するカウンタを1加算してその結果を出力選択手段504に出力する。   When the cache hit counter 506 receives the cache hit signal, it adds 1 to the held counter and outputs the result to the output selection means 504.

イベントカウンタ505は、前記キャッシュミスヒット信号を受信すると保持するカウンタを1加算する。また、CPU200はシステムバス400を介して、イベントカウンタ505にカウント閾値を設定することができる。イベントカウンタ505にイベント閾値として値「10」が設定されていた場合、イベントカウンタ505は、キャッシュミスヒット信号を10回受信すると出力制御手段503にイベント閾値検出信号を出力し、カウンタをリセットする。   When the event counter 505 receives the cache miss hit signal, the event counter 505 increments the counter held by one. In addition, the CPU 200 can set a count threshold in the event counter 505 via the system bus 400. When the value “10” is set as the event threshold value in the event counter 505, the event counter 505 outputs an event threshold detection signal to the output control unit 503 when the cache miss hit signal is received 10 times, and resets the counter.

出力制御手段503は、キャッシュミスヒット信号を受信した場合には、実施の形態1と同様の動作を行う。また、プロセス切替信号を受信した場合には、プロセス切替を特定するためのイベント識別子、値「2」を出力選択手段504に出力すると共に、出力選択手段504が、プロセス切替検出手段102から出力された前記プロセスIDと、前記イベント識別子と、キャッシュヒットカウンタ506の出力値を選択するように出力制御信号を出力する。さらに、イベントカウンタ505からイベント閾値検出信号を受信すると、キャッシュヒット数通知イベントを特定するためのイベント識別子、値「3」を出力選択手段504に出力すると共に、出力選択手段504が、キャッシュヒットカウンタ506の出力値と、前記イベント識別子を選択するように出力制御信号を出力し、同時にキャッシュヒットカウンタ506をリセットする。   The output control means 503 performs the same operation as in the first embodiment when it receives a cache miss hit signal. When a process switching signal is received, an event identifier for specifying process switching and a value “2” are output to the output selection unit 504, and the output selection unit 504 is output from the process switching detection unit 102. An output control signal is output so as to select the process ID, the event identifier, and the output value of the cache hit counter 506. Further, when the event threshold detection signal is received from the event counter 505, the event identifier for specifying the cache hit count notification event and the value “3” are output to the output selection means 504, and the output selection means 504 includes the cache hit counter. An output control signal is output so as to select the output value of 506 and the event identifier, and at the same time, the cache hit counter 506 is reset.

出力選択手段504は、キャッシュミスヒット時には、実施の形態1と同様の動作を行う。また、プロセス切替時には、出力制御手段503からの出力制御信号によって、前記プロセスIDと、前記イベント識別子と、前記キャッシュヒット数を出力する。さらに、キャッシュミスヒット信号が10回出現した場合には、出力制御手段503からの出力制御信号によって、前記キャッシュヒット数、そして前記イベント識別子を出力する。   The output selection unit 504 performs the same operation as in the first embodiment when a cache miss hits. At the time of process switching, the process ID, the event identifier, and the number of cache hits are output by an output control signal from the output control means 503. Further, when the cache miss hit signal appears 10 times, the cache hit count and the event identifier are output by the output control signal from the output control means 503.

このようにして、CPUメモリアクセス解析装置100はキャッシュミスヒット発生時に、実施の形態1に示すキャッシュミスヒット情報を出力するのに加えて、プロセス切替時には、切替ったプロセスIDと、プロセス切替を特定するイベント識別子と、キャッシュミスヒットが10回発生してからプロセス切替が発生するまでのキャッシュヒット数をプロセス切替情報として出力する。さらに、キャッシュミスヒットが10回発生した場合には、キャッシュヒット数通知イベントを特定するイベント識別子と、キャッシュミスヒットが10回発生する間にキャッシュメモリがヒットした回数をキャッシュヒット数通知情報として出力する。   In this way, the CPU memory access analysis apparatus 100 outputs the cache miss information shown in the first embodiment when a cache miss hit occurs, and at the time of process switching, the changed process ID and process switching are performed. The event identifier to be identified and the number of cache hits until the process switching occurs after 10 cache miss hits are output as process switching information. In addition, when 10 cache miss hits occur, an event identifier that identifies the cache hit number notification event and the number of times the cache memory hit during the 10 cache miss hits are output as cache hit number notification information To do.

かかる構成によれば、キャッシュミスヒットが10回発生する間隔でキャッシュヒット数を出力し、さらに、プロセス切替時にもキャッシュヒット数を出力するができるため、プロセス単位でキャッシュヒット数を算出でき、プロセス毎のキャッシュヒット率を求めることができる。   According to such a configuration, the number of cache hits can be output at intervals of 10 cache miss hits, and the number of cache hits can also be output during process switching. The cache hit rate can be obtained for each.

なお、本発明の実施の形態において、イベントカウンタ505の例としてキャッシュミスヒット数をカウントする例を示したが、対応するイベントはこれに限らない。別の例として、イベントカウンタ505によりキャッシュヒット数をカウントすることができる。この場合には、キャッシュヒット数通知イベントを特定するイベント識別子と、キャッシュヒット数に加えて、閾値に達した時点の仮想アドレスを出力する事によりプログラムのさらに詳細なトレースを得ることができる。なお、この場合には、キャッシュヒットカウンタ506は不要である。   In the embodiment of the present invention, the example of counting the number of cache misses is shown as an example of the event counter 505, but the corresponding event is not limited to this. As another example, the event counter 505 can count the number of cache hits. In this case, a more detailed trace of the program can be obtained by outputting the event identifier that identifies the cache hit count notification event and the virtual address at the time when the threshold is reached in addition to the cache hit count. In this case, the cache hit counter 506 is unnecessary.

(実施の形態3)
図5の(a)は、本発明の実施の形態3におけるキャッシュメモリトレース圧縮方式の一例を説明した図である。CPU200は、セットアソシアティブ方式のキャッシュメモリ、ここでは、4ウェイセットアソシアティブのキャッシュメモリ603を備えている。キャッシュメモリ603は、4つのブロック(ウェイ0、1、2、3)を備え、各ブロックには、20ビットのタグと16バイトのデータなどから構成される256個のエントリから構成される。
(Embodiment 3)
FIG. 5A illustrates an example of the cache memory trace compression method according to Embodiment 3 of the present invention. The CPU 200 includes a set associative cache memory, here, a 4-way set associative cache memory 603. The cache memory 603 includes four blocks (ways 0, 1, 2, 3), and each block includes 256 entries including a 20-bit tag and 16-byte data.

CPUコア201から出力された32ビットの仮想アドレスは、MMU202により32ビットの物理アドレスに変換される。ここでは、MMU202により、仮想アドレス「0x2000C1A0」が、物理アドレス「0x800081A0」に変換されたことを示している。MMU202は、アドレス空間を4KBのページとして管理しているため、仮想ページ番号を示す仮想アドレスの上位20ビットは、対応する物理ページ番号を示す物理アドレスの上位20ビットに変換される。ここでは、仮想ページ番号「0x2000C」が、物理ページ番号「0x80008」に対応していることを示している。   The 32-bit virtual address output from the CPU core 201 is converted into a 32-bit physical address by the MMU 202. Here, the MMU 202 indicates that the virtual address “0x2000C1A0” has been converted to the physical address “0x800081A0”. Since the MMU 202 manages the address space as a 4 KB page, the upper 20 bits of the virtual address indicating the virtual page number are converted into the upper 20 bits of the physical address indicating the corresponding physical page number. Here, the virtual page number “0x2000C” corresponds to the physical page number “0x80008”.

図5の(a)に示すように、MMU202により変換された物理アドレスのビット11からビット4までの値は、エントリアドレスと呼ばれ、各ブロック内のエントリを指定するために使用される。また、物理アドレスの上位20ビットは、タグアドレスと呼ばれ、各ブロック中のエントリ内のタグと比較してブロックを選択するために使用される。物理アドレスの下位4ビットは、バイトアドレスと呼ばれ、エントリ内のデータのアドレスである。つまり、物理アドレス「0x800081A0」によりキャッシュメモリ603がアクセスされ対応するブロックが見つからなかった場合、ミスヒットとなる。この場合には、物理アドレスが指し示すメモリ300上のデータをキャッシュメモリ603のデータ部に格納するため、データを入れ替えるブロック、リフィル対象ブロックとしてウェイ0が決定され、物理アドレスのエントリアドレス「0x1A」が示す位置にあるタグに物理アドレスのタグアドレス「0x80008」が格納される。   As shown in FIG. 5A, the values of bits 11 to 4 of the physical address converted by the MMU 202 are called entry addresses and are used to designate entries in each block. The upper 20 bits of the physical address are called a tag address and are used to select a block in comparison with a tag in an entry in each block. The lower 4 bits of the physical address are called a byte address and are the address of data in the entry. That is, when the cache memory 603 is accessed by the physical address “0x800081A0” and the corresponding block is not found, a miss hit occurs. In this case, in order to store the data on the memory 300 indicated by the physical address in the data part of the cache memory 603, the way 0 is determined as the block to be replaced and the refill target block, and the entry address “0x1A” of the physical address is set. The tag address “0x80008” of the physical address is stored in the tag at the indicated position.

前記キャッシュミスヒットから、ウェイ0のエントリ「0x1A」内のデータがリフィルされるまで、同じ物理アドレス「0x800081A0」でキャッシュメモリ603をアクセスすると、キャッシュヒットする。   When the cache memory 603 is accessed with the same physical address “0x800081A0” from the cache miss hit until the data in the entry “0x1A” of the way 0 is refilled, a cache hit occurs.

これにより、キャッシュメモリアクセスアドレスの履歴をとる場合には、キャッシュミスヒット時には、物理アドレスと、その時リフィル対象となったウェイ番号を保存しておけば、同じブロックの同じエントリが入れ替えられるまで、ウェイ番号と、物理アドレスのエントリアドレスとバイトアドレスに対応する下位12ビットを出力するだけで、キャッシュヒット時の物理アドレスを求めることができ出力データを圧縮することが可能となる。   As a result, when taking a history of cache memory access addresses, if a cache miss occurs, if the physical address and the way number that was the target of refilling are saved, the way is changed until the same entry in the same block is replaced. By only outputting the number, the lower 12 bits corresponding to the entry address and byte address of the physical address, the physical address at the time of a cache hit can be obtained and the output data can be compressed.

図5の(a)では、キャッシュミスヒット時には、物理アドレス「0x800081A0」とウェイ番号「0」を出力し、その後のキャッシュヒット時には、物理アドレスの下位12ビット「0x1A0」とウェイ番号「0」を出力すればよい。   In FIG. 5A, when a cache miss hits, the physical address “0x800081A0” and the way number “0” are output, and at the subsequent cache hit, the lower 12 bits “0x1A0” and the way number “0” of the physical address are output. Just output.

さらに、仮想アドレスと物理アドレスは、1対1に対応しているため、キャッシュミスヒット時には、仮想アドレス「0x2000C1A0」とウェイ番号0を出力し、その後のキャッシュヒット時には、仮想アドレスの下位12ビット「0x1A0」とウェイ番号0を出力すればよいこととなる。   Furthermore, since the virtual address and the physical address have a one-to-one correspondence, the virtual address “0x2000C1A0” and the way number 0 are output when a cache miss hits, and the lower 12 bits of the virtual address “ “0x1A0” and way number 0 may be output.

図5の(b)は、本発明の実施の形態3におけるキャッシュメモリトレース圧縮方式の動作をフローチャートにより説明したものである。   FIG. 5B is a flowchart for explaining the operation of the cache memory trace compression method according to the third embodiment of the present invention.

キャッシュヒットイベント、あるいは、キャッシュミスヒットイベントを受信するとイベント判定を行う。キャッシュヒットイベントであればステップS3003に進み、キャッシュミスヒットイベントであればステップS3002に進む(ステップS3001)。   When a cache hit event or a cache miss hit event is received, event determination is performed. If it is a cache hit event, the process proceeds to step S3003, and if it is a cache miss event, the process proceeds to step S3002 (step S3001).

キャッシュミスヒットイベントを受信した場合、仮想アドレスとリフィル対象となったウェイ番号を出力する(ステップS3002)。   When the cache miss hit event is received, the virtual address and the way number to be refilled are output (step S3002).

一方、キャッシュミスヒットイベントを受信した場合、仮想アドレスの下位アドレス、ここでは下位12ビットと、ヒットしたブロックのウェイ番号を出力する(ステップS3003)。   On the other hand, if a cache miss hit event is received, the lower address of the virtual address, here the lower 12 bits, and the way number of the hit block are output (step S3003).

かかる方式によれば、図6に示すように、キャッシュミスヒット時には、仮想アドレスとリフィル対象となったウェイ番号が保存され、キャッシュヒット時には、仮想アドレスの下位12ビットとヒットしたブロックのウェイ番号が保存される。キャッシュヒット時には、仮想アドレスの下位12ビットとヒットしたブロックのウェイ番号をキーとしてトレース履歴を逆に検索することによって、その値と一致するキャッシュミスヒット時の仮想アドレスを参照することにより、仮想アドレスの上位20ビットを見つけることができる。   According to this method, as shown in FIG. 6, when a cache miss hits, the virtual address and the refilled way number are stored, and when the cache hit occurs, the lower 12 bits of the virtual address and the way number of the hit block are stored. Saved. At the time of a cache hit, the virtual address is obtained by referring to the virtual address at the time of the cache miss hit matching the value by searching the trace history in reverse using the lower 12 bits of the virtual address and the way number of the hit block as a key. Can be found.

図6では、インデックス3のヒット時の仮想アドレスは、インデックス0の仮想アドレスより「0x20000010」であることがわかり、インデックス5と6の仮想アドレスは、それぞれ、「0x30000010」と「0x20000310」であることがわかる。   In FIG. 6, it can be seen that the virtual address at the time of hit of index 3 is “0x20000010” from the virtual address of index 0, and the virtual addresses of indexes 5 and 6 are “0x30000010” and “0x20000310”, respectively. I understand.

よって、本実施の形態において、本方式を用いれば、キャッシュヒット、ミスヒット毎に仮想アドレスを毎回出力していた方式と比較すると、ヒット1回につき18ビットの圧縮が可能となる。これは、ヒット数がミスヒット数に比べてはるかに多いため、ミスヒット時のリフィル対象となるブロックのウェイ番号を示す2ビットが無視できることによる。   Therefore, in this embodiment, if this method is used, it is possible to compress 18 bits per hit as compared with a method in which a virtual address is output every time a cache hit or a miss hit. This is because the number of hits is much larger than the number of miss hits, and 2 bits indicating the way number of the block to be refilled at the time of the miss hit can be ignored.

また、キャッシュミスヒットの要因を解析するためには、どのブロックのどのエントリが置き換えられたかを知ることが重要である。しかし、図6の(a)に示すように、MMUが1KBごとにページ管理を行うために物理アドレスの上位22ビットをページアドレスとして参照し、一方、キャッシュメモリが物理アドレスの上位20ビットをタグアドレス、4から11ビットまでをエントリアドレス、そして、下位4ビットをバイトアドレスとして参照するといった、キャッシュメモリによって参照される物理アドレスのエントリアドレスとバイトアドレスのビット数が、MMUによって参照されるページ内アドレスと呼ばれる、物理アドレスのページ番号以外のアドレスのビット数より大きい場合、キャッシュミスヒット時に仮想アドレスを出力する上記の方法ではキャッシュミスヒット時にリプレースされたエントリが解決できない。   In order to analyze the cause of the cache miss hit, it is important to know which entry in which block has been replaced. However, as shown in FIG. 6A, the MMU refers to the upper 22 bits of the physical address as the page address in order to perform page management every 1 KB, while the cache memory tags the upper 20 bits of the physical address. The address of the physical address referenced by the cache memory and the number of bits of the byte address are referred to by the MMU, such as the address 4 to 11 bits as the entry address and the lower 4 bits as the byte address. If the number of bits of the address other than the page number of the physical address, which is called an address, is larger than the number of bits of the address, the entry replaced at the time of a cache miss cannot be resolved by the above method of outputting a virtual address at the time of a cache miss.

このような場合には、エントリアドレスとバイトアドレスで構成されるアドレスと、ページ内アドレスの差分、図6の(a)では、物理アドレスの下位12ビットと下位10ビットとの差分、10ビット目と11ビット目を、キャッシュミス時に、ウェイ番号と仮想アドレスと共に出力すれば解決することができる。   In such a case, the difference between the address composed of the entry address and the byte address and the in-page address. In FIG. 6A, the difference between the lower 12 bits and the lower 10 bits of the physical address, the 10th bit. If the 11th bit is output together with the way number and virtual address when a cache miss occurs, the problem can be solved.

なお、本発明の実施の形態において、MMU203のメモリ管理の例として4KBのサイズでページ管理している例を示したが、ページサイズはこれに限らない。これは、仮想アドレスと物理アドレスが一対一に対応していることによる。   In the embodiment of the present invention, as an example of memory management of the MMU 203, an example in which page management is performed with a size of 4 KB is shown, but the page size is not limited to this. This is because the virtual address and the physical address have a one-to-one correspondence.

また、セットアソシアティブ方式のキャッシュメモリの例として4ウェイセットアソシアティブのキャッシュメモリ603を示したが、ウェイ数はこれに限らない。さらに、キャッシュメモリ内のエントリサイズ、および、各ブロック内のタグサイズとデータサイズもこれに限らない。   Further, although the 4-way set associative cache memory 603 is shown as an example of the set associative cache memory, the number of ways is not limited thereto. Further, the entry size in the cache memory and the tag size and data size in each block are not limited to this.

(実施の形態4)
図7は、本発明の実施の形態4におけるCPUメモリアクセス解析装置の一例を示す構成図である。図7に示すシステムLSI10は、CPUメモリアクセス解析装置100と、メモリ300と、システムバス400を備えている点は実施の形態2と同様であるが、CPU200の代わりに、前記キャッシュメモリ603を備え、プロセスID、仮想アドレス、キャッシュアクセスリクエスト信号、キャッシュミスヒット信号、そして、ウェイ番号を出力するCPU800を備えている。さらに、実施の形態8においては、CPUメモリアクセス解析装置100は、イベントカウンタ505の代わりにタイムカウンタ707を更に備え、また、出力制御手段503の代わりに出力制御手段703と、出力選択手段504の代わりに出力選択手段704を備えている。
(Embodiment 4)
FIG. 7 is a block diagram showing an example of a CPU memory access analysis apparatus according to Embodiment 4 of the present invention. The system LSI 10 shown in FIG. 7 is similar to the second embodiment in that it includes a CPU memory access analysis device 100, a memory 300, and a system bus 400, but includes the cache memory 603 instead of the CPU 200. The CPU 800 outputs a process ID, a virtual address, a cache access request signal, a cache miss hit signal, and a way number. Further, in the eighth embodiment, the CPU memory access analysis apparatus 100 further includes a time counter 707 instead of the event counter 505, and outputs control means 703 and output selection means 504 instead of the output control means 503. Instead, output selection means 704 is provided.

タイムカウンタ707は、システム外部から入力されるクロックに同期してカウンタを1加算する。また、CPU200はシステムバス400を介して、タイムカウンタ707にカウント閾値を設定することができる。この例では、タイムカウンタ707には10MHzのクロックが入力されており、閾値として10マイクロ秒を表す値「100」が設定されているため、タイムカウンタ707は、10マイクロ秒経過毎に出力制御手段703にタイムイベント検出信号を出力し、カウンタをリセットする。   The time counter 707 adds 1 to the counter in synchronization with a clock input from outside the system. Further, the CPU 200 can set a count threshold value in the time counter 707 via the system bus 400. In this example, since the clock of 10 MHz is input to the time counter 707 and the value “100” representing 10 microseconds is set as the threshold value, the time counter 707 outputs the output control means every 10 microseconds. A time event detection signal is output to 703, and the counter is reset.

出力制御手段703は、プロセス切替信号を受信した場合には、実施の形態2と同様の動作を行う。キャッシュミスヒット信号を受信した場合には、キャッシュミスヒットイベントを特定するためのイベント識別子、値「1」を出力すると共に、出力選択手段704が、CPU200から出力された仮想アドレスと、リフィル対象となったブロックのウェイ番号と、前記イベント識別子を選択するように出力制御信号を出力し、また、タイムカウンタ707からタイムイベント検出信号を受信した場合には、タイムスタンプ通知イベントを特定するためのイベント識別子、値「4」を出力する。さらに、キャッシュアクセス検出手段501から出力されたキャッシュヒット信号を受信した場合は、出力選択手段704が、CPU200から出力された仮想アドレスの下位12ビットと、ヒットしたウェイ番号と、キャッシュヒットカウンタ506の出力値と、前記イベント識別子を選択するように出力制御信号を出力し、また、キャッシュヒット信号を受信しなかった場合は、出力選択手段704が、キャッシュヒットカウンタ506の出力値と、前記イベント識別子のみを出力するように出力制御信号を出力する。そして、同時にキャッシュヒットカウンタ506をリセットする。   When receiving the process switching signal, the output control means 703 performs the same operation as in the second embodiment. When a cache miss hit signal is received, an event identifier for specifying a cache miss hit event and a value “1” are output, and the output selection unit 704 outputs a virtual address output from the CPU 200, a refill target, An output control signal is output so as to select the way number of the block and the event identifier, and when a time event detection signal is received from the time counter 707, an event for specifying a time stamp notification event The identifier and value “4” are output. Further, when the cache hit signal output from the cache access detection unit 501 is received, the output selection unit 704 outputs the lower 12 bits of the virtual address output from the CPU 200, the hit way number, and the cache hit counter 506. When the output control signal is output so as to select the output value and the event identifier, and the cache hit signal is not received, the output selection means 704 outputs the output value of the cache hit counter 506, the event identifier, The output control signal is output so that only the signal is output. At the same time, the cache hit counter 506 is reset.

出力選択手段704は、プロセス切替時には、実施の形態2と同様の動作を行う。キャッシュミスヒット時には、出力制御手段703からの出力制御信号によって、前記仮想アドレスと、前記ウェイ番号と、そして前記イベント識別子を出力する。また、10マイクロ秒経過する毎に、出力制御手段703からの出力制御信号によって、前記キャッシュヒット数、そして前記イベント識別子を出力し、同時に、キャッシュヒット時には前記仮想アドレスの下位12ビットと、前記ウェイ番号を出力する。   The output selection unit 704 performs the same operation as in the second embodiment at the time of process switching. When a cache miss occurs, the virtual address, the way number, and the event identifier are output by an output control signal from the output control means 703. Also, every 10 microseconds, the number of cache hits and the event identifier are output by an output control signal from the output control means 703. At the same time, when the cache hits, the lower 12 bits of the virtual address and the way Print the number.

このようにして、CPUメモリアクセス解析装置100はプロセス切替時に、実施の形態2に示すプロセス切替情報を出力するのに加えて、キャッシュミスヒットが発生した場合には、CPU200から出力された仮想アドレスとリフィル対象となったウェイ番号と、キャッシュミスヒットイベントを特定するイベント識別子をキャッシュミスヒット情報として出力する。さらに、10マイクロ秒経過した場合には、タイムスタンプ通知を特定するイベント識別子と、10マイクロ秒間にキャッシュがヒットした回数をキャッシュヒット数通知情報として出力し、同時に、キャッシュヒットの場合は、CPU200から出力された仮想アドレスの下位12ビットとヒットしたウェイ番号を出力する。   In this way, the CPU memory access analysis apparatus 100 outputs the process switching information shown in the second embodiment at the time of process switching, and in addition, when a cache miss occurs, the virtual address output from the CPU 200 And the refill target way number and the event identifier specifying the cache miss hit event are output as cache miss hit information. Further, when 10 microseconds have elapsed, an event identifier for specifying a time stamp notification and the number of times the cache has been hit in 10 microseconds are output as cache hit number notification information. The lower 12 bits of the output virtual address and the hit way number are output.

図8は、本発明の実施の形態4における出力制御手段703の手順をフローチャートにより説明したものである。   FIG. 8 is a flowchart for explaining the procedure of the output control means 703 according to the fourth embodiment of the present invention.

出力制御手段703は、キャッシュアクセス検出手段501からキャッシュミスヒット信号を、プロセス切替検出手段102からプロセス切替信号を、あるいは、タイムカウンタからタイムイベント検出信号を受信すると、イベント判定を行う。キャッシュミスヒットイベントであればステップS4002に進み、他のイベントであればS4004に進む(ステップS4001)。   When the output control unit 703 receives a cache miss hit signal from the cache access detection unit 501, a process switching signal from the process switching detection unit 102, or a time event detection signal from a time counter, the output control unit 703 performs event determination. If it is a cache miss hit event, the process proceeds to step S4002, and if it is another event, the process proceeds to S4004 (step S4001).

出力制御手段703はキャッシュミスヒットイベントを受信した場合、キャッシュミスヒットイベントを特定するイベント識別子、ここでは値「1」を出力選択手段704に出力する(ステップS4002)。   When receiving the cache miss hit event, the output control means 703 outputs an event identifier for identifying the cache miss hit event, here the value “1”, to the output selection means 704 (step S4002).

さらに、出力制御手段703はCPU100から出力された仮想アドレスとウェイ番号、ステップS4002で出力したイベント識別子を選択するように出力選択手段704に出力制御信号を出力する(ステップS4003)。   Further, the output control means 703 outputs an output control signal to the output selection means 704 so as to select the virtual address and way number output from the CPU 100 and the event identifier output in step S4002 (step S4003).

一方、出力制御手段703がプロセス切替信号、あるいは、タイムイベント検出信号を受信した場合、さらにイベント判定を行う。プロセス切替イベントであればステップS4005に進み、タイムイベント検出であればS4007に進む(ステップS4004)。   On the other hand, when the output control unit 703 receives a process switching signal or a time event detection signal, the event determination is further performed. If it is a process switching event, the process proceeds to step S4005. If a time event is detected, the process proceeds to S4007 (step S4004).

出力制御手段403はタイムイベントイベントを受信した場合、プロセス切替イベントを特定するイベント識別子、ここでは値「2」を出力選択手段404に出力する(ステップS4005)。   When receiving the time event event, the output control unit 403 outputs an event identifier for identifying the process switching event, here the value “2” to the output selection unit 404 (step S4005).

出力制御手段703はプロセス切替検出手段102から出力されたプロセスIDと、ステップS4005で出力したイベント識別子と、キャッシュヒットカウンタから出力されたキャッシュヒット数を選択するように出力選択手段704に出力制御信号を出力する(ステップS4006)。   The output control unit 703 outputs an output control signal to the output selection unit 704 so as to select the process ID output from the process switching detection unit 102, the event identifier output in step S4005, and the number of cache hits output from the cache hit counter. Is output (step S4006).

出力制御手段403はタイム検出イベントを受信した場合、タイムスタンプ通知イベントを特定するイベント識別子、ここでは値「4」を出力選択手段704に出力する(ステップS4007)。   When receiving the time detection event, the output control means 403 outputs an event identifier for identifying the time stamp notification event, here the value “4”, to the output selection means 704 (step S4007).

このとき、キャッシュアクセス検出手段501からキャッシュヒット信号を受信しているかどうか判定を行う、キャッシュヒットイベントであればステップS4009に進み、その他のイベントであればS40010に進む(ステップS4008)。   At this time, it is determined whether or not a cache hit signal is received from the cache access detection means 501. If it is a cache hit event, the process proceeds to step S4009, and if it is any other event, the process proceeds to S40010 (step S4008).

出力制御手段403はタイム検出イベントと、キャッシュヒットイベントを同時に受信した場合、CPU200から出力された仮想アドレスの下位12ビットとウェイ番号と、ステップS4007で出力したイベント識別子と、キャッシュヒットカウンタから出力されたキャッシュヒット数を選択するように出力選択手段704に出力制御信号を出力する(ステップS4009)。   When the time detection event and the cache hit event are received simultaneously, the output control means 403 outputs the lower 12 bits and way number of the virtual address output from the CPU 200, the event identifier output in step S4007, and the cache hit counter. An output control signal is output to the output selection means 704 so as to select the number of cache hits (step S4009).

一方、タイム検出イベントと、キャッシュヒットイベントを同時に受信しなかった場合、ステップS4007で出力したイベント識別子と、キャッシュヒットカウンタから出力されたキャッシュヒット数を選択するように出力選択手段704に出力制御信号を出力する(ステップS4010)。   On the other hand, if the time detection event and the cache hit event are not received at the same time, an output control signal is sent to the output selection means 704 so as to select the event identifier output in step S4007 and the number of cache hits output from the cache hit counter. Is output (step S4010).

キャッシュヒットカウンタ506をリセットする(ステップS4011)。   The cache hit counter 506 is reset (step S4011).

かかる構成によれば、図9の(a)に示すように、タイムスタンプイベント周期毎、ここでは、10マイクロ秒毎に、圧縮されたキャッシュヒット時の仮想アドレスを出力することにより、実施の形態2に比べて低ビットレートで、プログラムの動作をトレースすることが出来る。また、図9の(b)に示すように、10マイクロ秒の周期でキャッシュヒット数が出力され、さらに、プロセス切替時にもキャッシュヒット数が出力されるため、プロセス単位でキャッシュヒット数を算出でき、プロセス毎の経過時間単位でのキャッシュヒット率を求めることができる。   According to such a configuration, as shown in FIG. 9A, the compressed virtual address at the time of cache hit is output every time stamp event cycle, here, every 10 microseconds. Compared to 2, the program operation can be traced at a lower bit rate. Further, as shown in FIG. 9B, the number of cache hits is output at a cycle of 10 microseconds, and the number of cache hits is also output at the time of process switching, so that the number of cache hits can be calculated for each process. The cache hit rate in elapsed time units for each process can be obtained.

なお、本実施の形態として、CPUメモリアクセス解析装置をシステムLSI内部に構築する例を示したが、CPU内部に構築してもよい。   In this embodiment, an example in which the CPU memory access analysis device is built inside the system LSI is shown, but it may be built inside the CPU.

また、メモリアクセス状態を低ビットレートでシステムLSI外部に出力するために、CPUメモリアクセス解析装置の出力側に緩衝バッファを用いてもよい。   In order to output the memory access state to the outside of the system LSI at a low bit rate, a buffer buffer may be used on the output side of the CPU memory access analyzer.

また、特定のプロセスのメモリアクセス状態を出力させるために、出力制御手段にプロセスIDを予め保持させておき、特定のプロセスのみのメモリアクセス状態を出力させてもよい。   Further, in order to output the memory access state of a specific process, the output control means may hold the process ID in advance and output the memory access state of only the specific process.

また、ユーザ空間、あるいは、カーネル空間といった特定のアドレス空間に対するメモリアクセス状態を出力させるために、出力制御手段に解析したいアドレス領域を予め保持させておき、特定のアドレス空間のメモリアクセス状態を出力させてもよい。   In addition, in order to output a memory access state for a specific address space such as a user space or a kernel space, the output control means holds in advance an address area to be analyzed, and outputs the memory access state of the specific address space. May be.

本発明にかかるCPUメモリアクセス解析装置は、システムリソースに影響を与えず、低ビットレートでCPUメモリアクセス状態を抽出できるという効果を有し、SoC(System On Chip)等のシステムLSIにおいてソフトウェアの処理速度の面での最適化、しいては、システム全体の処理速度向上等の用途に有用である。   The CPU memory access analysis apparatus according to the present invention has an effect of extracting a CPU memory access state at a low bit rate without affecting system resources, and software processing in a system LSI such as SoC (System On Chip). It is useful for optimization in terms of speed, and for purposes such as improving the processing speed of the entire system.

本発明の実施の形態1における構成図Configuration diagram in Embodiment 1 of the present invention 本発明の実施の形態1における出力制御手段の流れ図Flowchart of output control means in Embodiment 1 of the present invention (a)本発明の実施の形態1における出力結果を示す図(b)本発明の実施の形態1におけるキャッシュミスヒット数の統計図(A) The figure which shows the output result in Embodiment 1 of this invention (b) The statistical figure of the number of cache misses in Embodiment 1 of this invention 本発明の実施の形態2における構成図Configuration diagram in Embodiment 2 of the present invention (a)本発明の実施の形態3におけるキャッシュメモリトレース圧縮原理の説明図(b)本発明の実施の形態3におけるキャッシュメモリトレース圧縮動作の流れ図(A) Explanatory diagram of cache memory trace compression principle according to the third embodiment of the present invention (b) Flow chart of cache memory trace compression operation according to the third embodiment of the present invention (a)本発明の実施の形態3における例外時の説明図(b)本発明の実施の形態3における出力結果を示す図(A) Explanatory diagram at the time of exception in the third embodiment of the present invention (b) Diagram showing the output result in the third embodiment of the present invention 本発明の実施の形態4における構成図Configuration diagram in Embodiment 4 of the present invention 本発明の実施の形態4における出力制御手段の流れ図Flowchart of output control means in Embodiment 4 of the present invention 本発明の実施の形態4における出力結果を示す図The figure which shows the output result in Embodiment 4 of this invention. 従来のCPUメモリアクセス解析装置の構成図Configuration of conventional CPU memory access analyzer

符号の説明Explanation of symbols

10 システムLSI
100 CPUメモリアクセス解析装置
101 キャッシュアクセス検出手段
102 プロセス切替検出手段
103 出力制御手段
104 出力選択手段
200 CPU
201 CPUコア
202 MMU
203 キャッシュメモリ
300 メモリ
301 OS
302 プロセスA
303 プロセスB
400 システムバス
501 キャッシュアクセス検出手段
503 出力制御手段
504 出力選択手段
505 イベントカウンタ
506 キャッシュヒットカウンタ
603 キャッシュメモリ
703 出力制御手段
704 出力選択手段
707 タイムカウンタ
800 CPU
10 System LSI
DESCRIPTION OF SYMBOLS 100 CPU memory access analyzer 101 Cache access detection means 102 Process switching detection means 103 Output control means 104 Output selection means 200 CPU
201 CPU core 202 MMU
203 Cache memory 300 Memory 301 OS
302 Process A
303 Process B
400 system bus 501 cache access detection means 503 output control means 504 output selection means 505 event counter 506 cache hit counter 603 cache memory 703 output control means 704 output selection means 707 time counter 800 CPU

Claims (7)

キャッシュメモリと、MMU(Memory Management Unit)と、CPUコアから構成されるCPUと、外付け、あるいは、内蔵されたメモリと、周辺回路とを備えるシステムLSIであって、
前記システムLSIは、前記CPUから出力されたキャッシュミスヒット信号によりキャッシュヒット、あるいは、ミスヒットを検出するキャッシュアクセス検出手段と、
前記CPUから出力されたプロセスIDによりプロセスが切替ったことを検出し、保持しているプロセスIDを更新するプロセス切替検出手段と、
前記プロセス切替検出手段からのプロセス切替信号、あるいは、キャッシュアクセス検出手段からのキャッシュミスヒット信号によって出力選択手段を制御し、また同時に、それらの信号に対応してプロセス切替イベント、あるいは、キャッシュミスヒットイベントを特定するイベント識別子を出力する出力制御手段と、
前記出力制御手段から出力された出力制御信号により、プロセス切替時には、前記イベント識別子と、前記プロセス切替検出手段から出力されたプロセスIDを選択してプロセス情報として出力し、キャッシュミスヒット時には、前記イベント識別子と、前記CPUから出力された仮想アドレスを選択してキャッシュミスヒット情報として出力する出力選択手段とを備えることにより、測定対象となるシステムの振舞いに影響を与えることなく、キャッシュミスヒット時のメモリアクセス状態をプロセスIDに対応付けられた仮想アドレスとして出力することを特徴とするCPUメモリアクセス解析装置。
A system LSI including a cache memory, an MMU (Memory Management Unit), a CPU composed of a CPU core, an externally or built-in memory, and a peripheral circuit,
The system LSI includes a cache access detection means for detecting a cache hit or a miss hit by a cache miss signal output from the CPU, and
Process switching detection means for detecting that the process has been switched based on the process ID output from the CPU and updating the retained process ID;
The output selection unit is controlled by a process switching signal from the process switching detection unit or a cache miss hit signal from the cache access detection unit, and at the same time, a process switching event or a cache miss hit corresponding to these signals. Output control means for outputting an event identifier for identifying an event;
When the process is switched by the output control signal output from the output control means, the event identifier and the process ID output from the process switch detection means are selected and output as process information, and when the cache miss hits, the event By providing an identifier and an output selection means for selecting the virtual address output from the CPU and outputting it as cache miss hit information, it is possible to detect the cache miss hit without affecting the behavior of the system to be measured. A CPU memory access analyzing apparatus that outputs a memory access state as a virtual address associated with a process ID.
キャッシュヒット、あるいは、キャッシュミスヒットイベントをカウントするイベントカウンタを更に備え、
前記出力制御手段は、前記イベントカウンタが予め設定された閾値に達するとイベントカウンタをリセットし、前記キャッシュアクセス検出手段から出力されるキャッシュヒット信号によりキャッシュヒットイベントを特定するイベント識別子を出力し、前記イベント識別子と前記CPUから出力された仮想アドレスをキャッシュヒット情報として出力するように前記出力選択手段を制御することを特徴とする請求項1記載のCPUメモリアクセス解析装置。
An event counter for counting cache hit or cache miss hit events;
The output control means resets the event counter when the event counter reaches a preset threshold, outputs an event identifier that identifies a cache hit event by a cache hit signal output from the cache access detection means, 2. The CPU memory access analyzing apparatus according to claim 1, wherein the output selecting unit is controlled to output an event identifier and a virtual address output from the CPU as cache hit information.
前記キャッシュアクセス検出手段から出力されたキャッシュヒット信号によりキャッシュヒット数をカウントするキャッシュヒットカウンタを更に備え、
前記イベントカウンタが予め設定された閾値に達すると、前記キャッシュアクセス検出手段から出力されるキャッシュヒット信号により、前記イベントカウンタと前記キャッシュヒットカウンタをリセットし、キャッシュヒットイベントを特定するイベント識別子と、キャッシュヒットカウンタがリセット前に保持していたカウント値と、前記CPUから出力された仮想アドレスをキャッシュヒット情報として出力し、また、プロセス切替検出手段からプロセス切替通知が出力されると、プロセス切替イベントを特定するイベント識別子と、プロセスIDと、キャッシュヒットカウンタが保持しているカウント値を出力するように前記出力選択判定手段を制御することを特徴とする請求項2記載のCPUメモリアクセス解析装置。
A cache hit counter that counts the number of cache hits according to a cache hit signal output from the cache access detection means;
When the event counter reaches a preset threshold, the event counter and the cache hit counter are reset by a cache hit signal output from the cache access detecting means, and an event identifier for identifying a cache hit event, The count value held by the hit counter before reset and the virtual address output from the CPU are output as cache hit information, and when a process switching notification is output from the process switching detection means, a process switching event is generated. 3. The CPU memory access analyzing apparatus according to claim 2, wherein the output selection determining unit is controlled to output an event identifier to be specified, a process ID, and a count value held by a cache hit counter.
CPU内のキャッシュメモリがセットアソシアティブ方式であって、
前記CPUによって出力される仮想アドレスが、MMUによって変換される物理アドレスと一対一で対応し、キャッシュヒット時に、ヒットしたウェイ番号と、ヒット時のキャッシュエントリを一意に決定する物理アドレスの下位アドレスとの組み合わせが、前記物理アドレスと一対一で対応していることを利用して、キャッシュヒット時には、ヒットしたウェイ番号と、ヒット時の仮想アドレスから前記物理アドレスの下位アドレスと同じ大きさ分の下位アドレスを出力し、キャッシュミスヒット時には、リフィル対象となったウェイ番号とミスヒット時の仮想アドレスを出力することにより、仮想アドレス全体をキャッシュヒット、ミスヒット時に出力する場合と比較して出力データ量を圧縮することを特徴とするキャッシュメモリトレース圧縮方法。
The cache memory in the CPU is a set associative method,
The virtual address output by the CPU has a one-to-one correspondence with the physical address converted by the MMU. When a cache hit occurs, the hit way number and the lower address of the physical address that uniquely determines the cache entry at the time of hit When the cache hits, the combination of the address and the physical address has a one-to-one correspondence, and the hit way number and the virtual address at the time of the hit are the same size as the lower address of the physical address. Outputs the address, and when the cache miss hits, outputs the way number to be refilled and the virtual address at the time of the miss hit. Cache memory Scan compression method.
セットアソシアティブ方式のキャッシュメモリと、MMUと、CPUコアから構成されるCPUと、外付け、あるいは、内蔵されたメモリと、周辺回路とを備えるシステムLSIであって、
前記システムLSIは、前記CPUから出力されたキャッシュミスヒット信号によりキャッシュヒット、あるいは、ミスヒットをそれぞれ検出するキャッシュアクセス検出手段と、
前記キャッシュアクセス検出手段の出力によって出力選択手段を制御し、同時に、キャッシュヒットイベント、あるいは、キャッシュミスヒットイベントを特定するイベント識別子を出力する出力制御手段と、
前記出力制御手段から出力された出力制御信号により、キャッシュミスヒット時には、前記イベント識別子と、前記CPUから出力された仮想アドレスと、リフィル対象となったウェイ番号を選択してキャッシュミスヒット情報を出力し、また、キャッシュヒット時には、前記イベント識別子と、ヒット時の仮想アドレス内の前記下位アドレスと、ヒットしたウェイ番号を選択してキャッシュヒット情報を出力することにより、仮想アドレス全体をキャッシュヒット、ミスヒット時に出力する場合と比較して出力データ量を圧縮することを特徴とする請求項4記載の方式を用いたCPUメモリアクセス解析装置。
A system LSI comprising a set associative cache memory, an MMU, a CPU comprising a CPU core, an external or built-in memory, and a peripheral circuit,
The system LSI includes a cache access detection means for detecting a cache hit or a miss according to a cache miss signal output from the CPU, and
Output control means for controlling the output selection means by the output of the cache access detection means, and simultaneously outputting an event identifier for specifying a cache hit event or a cache miss hit event;
When a cache miss hit occurs, the event identifier, the virtual address output from the CPU, and the way number to be refilled are selected and output by the output control signal output from the output control means. When a cache hit occurs, the event identifier, the lower address in the virtual address at the time of the hit, and the hit way number are selected and the cache hit information is output, so that the entire virtual address is cache hit / missed. 5. The CPU memory access analysis device using the method according to claim 4, wherein the output data amount is compressed as compared with the case of outputting at the time of hit.
経過時間をカウントするタイムカウンタを更に備え、
前記出力制御手段は、前記タイムカウンタが予め設定された閾値に達すると、前記タイムカウンタをリセットし、時間経過イベントを特定するイベント識別子をタイムスタンプ情報として出力するように前記出力選択手段を制御することを特徴とする請求項1記載のCPUメモリアクセス解析装置。
A time counter for counting elapsed time;
The output control means controls the output selection means to reset the time counter when the time counter reaches a preset threshold value and to output an event identifier specifying a time elapsed event as time stamp information. 2. The CPU memory access analysis apparatus according to claim 1, wherein
前記キャッシュアクセス検出手段から出力されたキャッシュヒット信号によりキャッシュヒット数をカウントするキャッシュヒットカウンタを更に備え、
前記タイムカウンタが予め設定された閾値に達すると、前記タイムカウンタと前記キャッシュヒットカウンタをリセットし、時間経過イベントを特定するイベント識別子とキャッシュヒットカウンタがリセット前に保持していたカウント値をタイムスタンプ情報として出力し、また、前記プロセス切替検出手段からプロセス切替通知が出力されると、プロセス切替イベントを特定するイベント識別子と、プロセスIDと、キャッシュヒットカウンタが保持しているカウント値を出力するように前記出力選択判定手段を制御することを特徴とする請求項6記載のCPUメモリアクセス解析装置。
A cache hit counter that counts the number of cache hits according to a cache hit signal output from the cache access detection means;
When the time counter reaches a preset threshold value, the time counter and the cache hit counter are reset, and an event identifier for specifying a time elapsed event and a count value held by the cache hit counter before the reset are time stamped When the process switching notification is output from the process switching detection unit, the event identifier for identifying the process switching event, the process ID, and the count value held by the cache hit counter are output. 7. The CPU memory access analyzing apparatus according to claim 6, wherein the output selection determining means is controlled.
JP2005102159A 2005-03-31 2005-03-31 Cpu memory access analysis device Pending JP2006285430A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2005102159A JP2006285430A (en) 2005-03-31 2005-03-31 Cpu memory access analysis device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2005102159A JP2006285430A (en) 2005-03-31 2005-03-31 Cpu memory access analysis device

Publications (1)

Publication Number Publication Date
JP2006285430A true JP2006285430A (en) 2006-10-19

Family

ID=37407321

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005102159A Pending JP2006285430A (en) 2005-03-31 2005-03-31 Cpu memory access analysis device

Country Status (1)

Country Link
JP (1) JP2006285430A (en)

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010510584A (en) * 2006-11-15 2010-04-02 クゥアルコム・インコーポレイテッド Embedded Trace Macrocell for Enhanced Digital Signal Processor Debugging Operation
US8370806B2 (en) 2006-11-15 2013-02-05 Qualcomm Incorporated Non-intrusive, thread-selective, debugging method and system for a multi-thread digital signal processor
US8380966B2 (en) 2006-11-15 2013-02-19 Qualcomm Incorporated Method and system for instruction stuffing operations during non-intrusive digital signal processor debugging
US8484516B2 (en) 2007-04-11 2013-07-09 Qualcomm Incorporated Inter-thread trace alignment method and system for a multi-threaded processor
US8533530B2 (en) 2006-11-15 2013-09-10 Qualcomm Incorporated Method and system for trusted/untrusted digital signal processor debugging operations
US8555001B2 (en) 2008-08-25 2013-10-08 Nec Corporation Cache memory, including miss status/information and a method using the same
JP2015166896A (en) * 2014-03-03 2015-09-24 富士通株式会社 Information processing device, program for collecting performance information of information processing device, and method for collecting performance information of information processing device
US9189279B2 (en) 2011-07-29 2015-11-17 Fujitsu Limited Assignment method and multi-core processor system
US9606890B2 (en) 2014-09-26 2017-03-28 International Business Machines Corporation Analysis system, analysis method and program
JP2017156824A (en) * 2016-02-29 2017-09-07 株式会社リコー Information processing system and program

Cited By (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010510584A (en) * 2006-11-15 2010-04-02 クゥアルコム・インコーポレイテッド Embedded Trace Macrocell for Enhanced Digital Signal Processor Debugging Operation
US8341604B2 (en) 2006-11-15 2012-12-25 Qualcomm Incorporated Embedded trace macrocell for enhanced digital signal processor debugging operations
US8370806B2 (en) 2006-11-15 2013-02-05 Qualcomm Incorporated Non-intrusive, thread-selective, debugging method and system for a multi-thread digital signal processor
US8380966B2 (en) 2006-11-15 2013-02-19 Qualcomm Incorporated Method and system for instruction stuffing operations during non-intrusive digital signal processor debugging
US8533530B2 (en) 2006-11-15 2013-09-10 Qualcomm Incorporated Method and system for trusted/untrusted digital signal processor debugging operations
US8484516B2 (en) 2007-04-11 2013-07-09 Qualcomm Incorporated Inter-thread trace alignment method and system for a multi-threaded processor
US8555001B2 (en) 2008-08-25 2013-10-08 Nec Corporation Cache memory, including miss status/information and a method using the same
US9189279B2 (en) 2011-07-29 2015-11-17 Fujitsu Limited Assignment method and multi-core processor system
JP2015166896A (en) * 2014-03-03 2015-09-24 富士通株式会社 Information processing device, program for collecting performance information of information processing device, and method for collecting performance information of information processing device
US9606890B2 (en) 2014-09-26 2017-03-28 International Business Machines Corporation Analysis system, analysis method and program
US9710351B2 (en) 2014-09-26 2017-07-18 International Business Machines Corporation Analysis system, analysis method and program
US10360384B2 (en) 2014-09-26 2019-07-23 International Business Machines Corporation Analysis systems, analysis method and program
US10963364B2 (en) 2014-09-26 2021-03-30 International Business Machines Corporation Analysis system, analysis method and program
JP2017156824A (en) * 2016-02-29 2017-09-07 株式会社リコー Information processing system and program

Similar Documents

Publication Publication Date Title
JP2006285430A (en) Cpu memory access analysis device
Waldspurger et al. Efficient {MRC} construction with {SHARDS}
TWI285330B (en) Method and apparatus for identifying candidate virtual addresses in a content-aware prefetcher
EP3405875B1 (en) Measuring address translation latency
JP5119994B2 (en) Performance monitoring program, performance monitoring method, performance monitoring device
JP4371452B2 (en) Apparatus for spatial and temporal sampling in a computer memory system
KR100292642B1 (en) Systems and Methods for Interfering Code Instrumentation
US6968547B2 (en) Dynamic trap table interposition for efficient collection of trap statistics
Panda et al. Dictionary sharing: An efficient cache compression scheme for compressed caches
US6341357B1 (en) Apparatus and method for processor performance monitoring
US20120095728A1 (en) Data processing apparatus, performance evaluation/analysis apparatus, and performance evaluation/analysis system and method
US10761998B2 (en) Recording set indicator
US9740541B2 (en) Information processing apparatus and method of collecting performance analysis data
CN102236541A (en) Preload instruction control
US10055221B2 (en) Method and apparatus for generating a profile of a target program
US20160378636A1 (en) Software-Initiated Trace Integrated with Hardware Trace
TW200527198A (en) Method and apparatus to autonomically profile applications
CN102789377B (en) The method and apparatus of processing instruction grouping information
US20060294334A1 (en) Statement regarding federally sponsored-research or development
JP2009217385A (en) Processor and multiprocessor
US11663132B2 (en) Prefetching
US20230161678A1 (en) Classification of different types of cache misses
JP2008123130A (en) Coverage measurement method and device and tracing method and device for module
Garg et al. Looking Inside Memory
Bächle et al. Lightweight performance forecasts for buffer algorithms