JP2010009175A - Program performance estimation device - Google Patents
Program performance estimation device Download PDFInfo
- Publication number
- JP2010009175A JP2010009175A JP2008165558A JP2008165558A JP2010009175A JP 2010009175 A JP2010009175 A JP 2010009175A JP 2008165558 A JP2008165558 A JP 2008165558A JP 2008165558 A JP2008165558 A JP 2008165558A JP 2010009175 A JP2010009175 A JP 2010009175A
- Authority
- JP
- Japan
- Prior art keywords
- information
- unit
- program
- wait
- program operation
- 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
Links
Images
Landscapes
- Debugging And Monitoring (AREA)
Abstract
Description
本発明は、種々のコンピュータアーキテクチャにおいて実行されるプログラムの性能を見積もる技術に関するものである。 The present invention relates to a technique for estimating the performance of a program executed in various computer architectures.
コンピュータ上で実行されるプログラムの性能は、主にそのプログラムの動作とコンピュータの仕様により決定される。実在しないコンピュータ上で動作するプログラムの性能を計測することができないので、新規のコンピュータの仕様によるプログラム性能の変化を把握するためには、何らかの見積もり手段が必要になる。 The performance of a program executed on a computer is mainly determined by the operation of the program and the specifications of the computer. Since the performance of a program running on a non-existing computer cannot be measured, some estimation means is required to grasp the change in program performance due to the specifications of the new computer.
そのような見積もり手段として、一般にハードウェアエミュレータ、あるいはサイクル精度のソフトウェアのシミュレータを利用する手段が知られている。これは、コンピュータの仕様を擬似的に設定可能であり、設定したコンピュータの動作クロックに応じた振る舞いを正確にシミュレートし、プログラムの実行に要した総サイクル数を算出するものである。 As such estimation means, means that use a hardware emulator or a cycle-precision software simulator is generally known. In this case, the specification of the computer can be set in a pseudo manner, the behavior according to the set operation clock of the computer is accurately simulated, and the total number of cycles required to execute the program is calculated.
しかし、一般的にハードウェアエミュレータ、あるいはサイクル精度のソフトウェアのシミュレータは低速で動作することから、実用上のプログラムの性能を見積もるのに必要とする時間がかかるという欠点があった。 However, since a hardware emulator or a cycle-accurate software simulator generally operates at a low speed, there is a drawback that it takes time to estimate the performance of a practical program.
上記背景のもとで、サイクル精度ではなく、CPUの動作を命令の順序を保証することのみで、動作速度が高速なシミュレーションを行い、全命令の実行時間の合計を算出する技術が開示されている(例えば、特許文献1参照)。プログラム、データ初期値、実行開始番地及び実行終了番地を入力とし、CPUの全命令の実行トレースを行い、パイプラインストールとキャッシュ方式とキャッシュサイズに関する情報を用いてヒット率シミュレーションを実施する。その結果得られたトレース情報にストールペナルティを加えて実行クロック数を求め、キャッシュミスによる実行時間の増加を見積もる技術が開示されている。その中で特に、割り込み処理に起因するキャッシュミスの増加等に基づいて生じる実行時間の増加を考慮し、見積もりに反映していた。
しかしながら、一般にプログラムの動作中には、コンピュータが動作を停止し、実行している命令の処理を停止することがある。例えば、プログラムの実行中にコンピュータと接続している他の機器に処理を要求し、他の機器の処理を待つ場合、コンピュータ自身が停止処理を行い、何らかの起動トリガを発生するまで命令の実行を停止し待つ場合などがある。 However, in general, during the operation of a program, the computer may stop operating, and may stop processing instructions being executed. For example, if a request is made to another device connected to the computer during the execution of the program and the processing of the other device is waited for, the computer itself performs a stop process and executes the instruction until some start trigger is generated. There is a case of stopping and waiting.
前記従来の技術は、コンピュータのシミュレートによる全命令の実行トレースに基づき性能を見積もっており、プログラムの動作中に、コンピュータが動作を停止し、命令を実行していない区間の実行時間を見積もることができない。つまり、プログラムの動作全体に対する性能を見積もることができないという課題を有していた。 In the conventional technique, the performance is estimated based on the execution trace of all instructions by computer simulation, and the execution time of the section in which the computer stops operating and the instruction is not executed during the operation of the program is estimated. I can't. In other words, there is a problem that it is impossible to estimate the performance of the entire program operation.
本発明は、前記従来の課題を解決するもので、コンピュータが動作を停止している区間に対する性能見積もりを可能にし、プログラムの動作全体に対する性能を見積もることを可能にするプログラム性能見積もり装置の提供を目的とする。 The present invention solves the above-described conventional problems, and provides a program performance estimation device that enables performance estimation for a section in which the computer stops operating and enables estimation of performance for the entire operation of the program. Objective.
前記従来の課題を解決するために、本発明のプログラム性能見積もり装置は、コンピュータ上で動作するプログラムの動作性能を見積もるプログラム性能見積もり装置であって、プログラムの動作に関する命令実行とデータアクセスに関する情報、ウェイトの発生とイベント発生の情報を取得するプログラム動作情報入力部と、前記プログラム動作情報入力部から取得したプログラム動作情報のうち、ウェイトが発生する区間とウェイトが発生しない区間を判別し抽出するウェイト発生区間抽出部と、前記ウェイト発生区間抽出部から取得したウェイトが発生しない区間のプログラム動作情報と、SoCの仕様情報に基づき、命令実行とストールを解析する命令実行解析部と、前記ウェイト発生区間抽出部から取得したプログラム動作情報と、SoCの仕様情報に基づき、データアクセス要求に対するキャッシュヒットとバスアクセスを解析するバスアクセス解析部と、前記命令実行解析部から命令実行解析結果と前記バスアクセス解析部からバスアクセス解析結果を取得し、前記命令実行解析部と前記バスアクセス解析部からイベント発生の情報を取得し、前記解析結果とストールサイクル情報に基づきイベント間の動作時間を見積もるイベント間見積もり部と、前記イベント間見積もり部から取得したイベント間の動作時間と、前記ウェイト発生区間抽出部から取得したウェイトが発生した区間のプログラム動作情報に基づき、ウェイトが発生した時間を見積もるウェイト発生時間見積もり部を備えることを特徴とする。 In order to solve the above-described conventional problems, the program performance estimation apparatus of the present invention is a program performance estimation apparatus that estimates the operation performance of a program running on a computer, and includes information related to instruction execution and data access related to program operation, A program operation information input unit for acquiring information on occurrence of a wait and event occurrence, and a weight for determining and extracting a section in which a wait occurs and a section in which no wait occurs in the program operation information acquired from the program operation information input unit A generation section extracting unit; a program operation information of a section in which no weight is acquired, obtained from the wait generation section extraction unit; an instruction execution analysis unit for analyzing instruction execution and stall based on SoC specification information; and the wait generation section Program operation information obtained from the extraction unit Based on the SoC specification information, a bus access analysis unit for analyzing a cache hit and a bus access for a data access request, an instruction execution analysis result from the instruction execution analysis unit, and a bus access analysis result from the bus access analysis unit, Obtained event occurrence information from the instruction execution analysis unit and the bus access analysis unit, and obtained from the inter-event estimation unit and the inter-event estimation unit for estimating the operation time between events based on the analysis result and the stall cycle information A wait generation time estimation unit is provided that estimates a time at which a wait has occurred based on an operation time between events and program operation information of a section in which a wait occurred, acquired from the wait generation section extraction unit.
上記の構成により、ウェイト発生区間とウェイト発生しない区間を判別し、SoC仕様に基づくイベント間の性能見積もりを用いて、ウェイト発生区間の性能見積もりを可能にし、プログラムの動作全体に対する性能を見積もることができる。 With the above configuration, it is possible to discriminate between a wait generation interval and a non-wait generation interval, enable performance estimation of the wait generation interval using performance estimation between events based on the SoC specification, and estimate performance for the entire operation of the program. it can.
本発明のプログラム性能見積もり装置によれば、コンピュータが動作を停止している区間に対する性能見積もりを可能にし、プログラムの動作全体に対する性能を見積もることができる。 According to the program performance estimation apparatus of the present invention, it is possible to estimate the performance of the section in which the computer stops operating, and to estimate the performance of the entire program operation.
以下、本発明の実施の形態について、図面を参照しながら説明する。 Hereinafter, embodiments of the present invention will be described with reference to the drawings.
図1は、本発明の実施の形態におけるプログラム性能見積もり装置を備えた情報処理装置の構成を示す図である。この情報処理装置1000は、それ自体としてユーザの使用に供することもできるが、様々な電気機器に組み込まれてもよい。情報処理装置1000の一例は、代表的にはPC(Personal Computer;パーソナルコンピュータあるいはパソコン)等の汎用のコンピュータである。PDA(Personal Digital Assistance)あるいは携帯電話機等の携帯通信端末でもよい。 FIG. 1 is a diagram illustrating a configuration of an information processing apparatus including a program performance estimation apparatus according to an embodiment of the present invention. The information processing apparatus 1000 can be used by a user as it is, but may be incorporated in various electric devices. An example of the information processing apparatus 1000 is typically a general-purpose computer such as a PC (Personal Computer). It may be a PDA (Personal Digital Assistance) or a mobile communication terminal such as a mobile phone.
情報処理装置1000は、CPU(Central Processing Unit;中央演算処理部)1、メモリ装置2、通信装置34、入力装置40、表示装置45、タイマ回路51及び割り込みコントローラ55を備えている。これらの装置は、バスライン50を通じて互いに接続されている。また、必要に応じて、バスライン50には、ハードディスク装置25及び読み取り装置32を接続することが可能となっている。ハードディスク装置25、読み取り装置32、入力装置40及び表示装置45は、それぞれ、インタフェース26、35、41及び46を通じてバスライン50に接続される。
The information processing apparatus 1000 includes a CPU (Central Processing Unit) 1, a memory device 2, a communication device 34, an
CPU1は、単一のCPUで構成されても良く、複数のCPUで構成されてもよい。一例として、情報処理装置1000は、複数のCPU11、12、13、・・・を有するものとする。メモリ装置2は、ROM(Read Only Memory)21及びRAM(Random Access Memory)22を備えている。ROM21は、CPU1の動作を規定するコンピュータプログラム及びデータを記憶している。コンピュータプログラム及びデータは、ハードディスク装置25に記憶させることもできる。CPU1は、ROM21又はハードディスク装置25が格納するコンピュータプログラム及びデータを、必要に応じてRAM22に書き込みつつ、コンピュータプログラムが規定する処理を実行する。RAM22は、CPU1が処理を実行するのに伴って発生するデータを一時的に記憶する媒体としても機能する。ROM21には、フラッシュROMのように書き込みが可能で、電源を切っても記憶内容を保持できる不揮発性のメモリと記憶媒体も含まれる。RAM22には、電源を切ると記憶内容が保持されない揮発性のメモリと記憶媒体が含まれる。
The
ハードディスク装置25は、内蔵する不図示のハードディスクへ、コンピュータプログラム、あるいはデータを書き込み及び読み出す装置である。読み取り装置32は、記録媒体31(例えばCD、DVD、メモリカードなど)に記録されたコンピュータプログラム、あるいはデータを読み取る装置である。通信装置34は、電話回線、ネットワーク線、無線、赤外線通信等の通信回線33を通じて、外部と自身との間で、コンピュータプログラム、あるいはデータを交換する装置である。入力装置40は、ユーザの操作によりデータ等を入力する装置であり、例えば、PDAに配列されたキーボード、携帯電話機に配列された入力ボタン、あるいは着脱自在のマウス、キーボードである。表示装置45は、データ、画像等を画面に表示したり、データ等を音声で出力したりする装置であり、例えばLCD(Liguid Crystal Display;液晶表示器)、ブラウン管、スピーカである。
The
タイマ回路51は、一定の周期でタイマ割り込み信号を出力する装置である。割り込みコントローラ55は、タイマ回路51、入力装置40、CPU1、ネットワークデバイスとしての通信装置34、ハードディスク装置25、読み取り装置32等から送られる割り込み要求信号を、CPU1へ中継する装置である。各装置からの割り込み要求には優先度が付けられている。割り込みコントローラ55は、同時に複数の装置から割り込みが発生した場合には、それらの要求を優先度に応じて調停する機能を有している。
The
以上のように、情報処理装置1000は、コンピュータとして構成されている。上記コンピュータプログラムは、ROM21、ハードディスク装置25、不図示のフレキシブルディスク、CD−ROM等のプログラム記録媒体31を通じて供給することも、電気通信回線33等の伝送媒体を通じて供給することも可能である。例えば、プログラム記録媒体31(CD−ROM)に記録されたコンピュータプログラムは、読み取り装置32を情報処理装置1000へ接続することで、読み出すことができる。また、読み出したコンピュータプログラムを、RAM22あるいはハードディスク装置25に格納することができる。
As described above, the information processing apparatus 1000 is configured as a computer. The computer program can be supplied through a
プログラム記録媒体としてROM21からコンピュータプログラムが供給される場合には、当該ROM21を情報処理装置1000に搭載することにより、CPU1は上記コンピュータプログラムに従った処理を実行可能となる。電気通信回線33等の伝送媒体を通じて供給されるコンピュータプログラムは、通信装置34を通じて受信され、例えば、RAM22あるいはハードディスク装置25に格納される。伝送媒体は、有線の伝送媒体に限られず、無線の伝送媒体であってもよい。また、伝送媒体は通信線路のみでなく、通信線路を中継する中継装置、例えばルータをも含む。
When a computer program is supplied from the
プログラム性能見積もり機能の実体は、メモリ装置2あるいはハードディスク装置25に格納され、CPU1と協働して実行することにより、プログラム性能見積もり装置を実現している。
The entity of the program performance estimation function is stored in the memory device 2 or the
図2は、プログラム動作ログを出力するプログラム疑似動作装置70の構成を示すブロック図である。プログラム動作ログは、プログラム性能見積もり装置80に出力され、プログラム性能見積もり装置80は、プログラム動作ログを用いて、性能見積もりを行う。プログラム疑似動作装置70は、典型的にはコンピュータ、プロセッサ、デバイスのハードウェアの動作を模擬するシミュレータあるいはエミュレータと、そのシミュレータあるいはエミュレータ上で動作するプログラムから成る。プログラム疑似動作装置70は、特にサイクル精度による動作のシミュレートを要求されず、実行する命令を模擬するものであればよい。さらには、プログラム疑似動作装置70は、実際のハードウェアであるコンピュータ、プロセッサ、デバイスそのものであってもよい。 FIG. 2 is a block diagram illustrating a configuration of the program pseudo operation apparatus 70 that outputs a program operation log. The program operation log is output to the program performance estimation device 80, and the program performance estimation device 80 performs performance estimation using the program operation log. The program pseudo-operation device 70 typically includes a simulator or emulator that simulates the operation of hardware of a computer, processor, or device, and a program that operates on the simulator or emulator. The program pseudo-operation device 70 is not particularly required to simulate an operation with cycle accuracy, and may be any device that simulates an instruction to be executed. Furthermore, the program pseudo-operation device 70 may be a computer, a processor, or a device itself that is actual hardware.
プログラム疑似動作装置70は、プログラムを疑似的に動作させ、プログラム性能見積もり装置80がプログラムの動作性能を見積もるのに必要な情報を、動作記録であるログとして出力する。なお、プログラム疑似動作装置70が出力するプログラム動作ログは、必ずしもファイルなどの形式で二次記憶装置上に格納する必要はなく、プログラム性能見積もり装置80に渡せる形式であればよい。 The program pseudo operation device 70 operates the program in a pseudo manner, and outputs information necessary for the program performance estimation device 80 to estimate the operation performance of the program as a log that is an operation record. Note that the program operation log output by the program pseudo-operation device 70 does not necessarily need to be stored in the secondary storage device in the form of a file or the like, and may be in a format that can be passed to the program performance estimation device 80.
図2を参照し、プログラム疑似動作装置70の構成を説明する。 With reference to FIG. 2, the configuration of the program pseudo-operation device 70 will be described.
命令実行検出部201は、プログラムが動作している際に、コンピュータあるいはCPUなどのプロセッサ上で実行される命令の実行を検出する。命令実行検出部201は、例えばシミュレータあるいはエミュレータに備わる命令の実行を監視する機能を利用し、実行される命令をすべて検出することが可能である。CPUなどのプロセッサに転送された命令でありながら、最終的に条件により実行されない命令も検出することが可能である。
The instruction
また、命令実行検出部201は、検出開始と終了のトリガを外部から受け、指定された開始から終了までの区間における命令の実行を検出する。
Further, the instruction
命令実行検出部201は、命令の実行を検出した後、実行番地であるプログラムカウンタ、実行命令コード、プロセッサの動作モードに応じた識別子などをプログラム動作ログ出力部206に渡す。また、命令実行検出部201は、命令実行に関する動作ログであることを示す識別子、開始から終了までの区間における命令実行の回数をプログラム動作ログ出力部206に渡すこともできる。また、命令実行検出部201は、命令の実行番地であるプログラムカウンタを命令フェッチ要求検出部202に渡すことができる。
After detecting the execution of the instruction, the instruction
また、命令実行検出部201は、実行命令コードを解析し、何の命令であるかを判断した上で出力を変える機能を有してもよい。例えば、検出した命令が分岐命令であった場合、プログラム性能の見積もりに反映させるために、命令実行検出部201は、分岐命令であることを示す識別子を、プログラム動作ログ出力部206に出力することが可能となる。また、検出した命令が、ロード命令またはストア命令などの、外部の記憶装置へのアクセスを要求する命令である場合、命令実行検出部201は、データアクセス要求検出部203に実行命令コードを出力することが可能となる。
The instruction
命令フェッチ要求検出部202は、命令実行時後部201からプログラムカウンタを受け取り、命令フェッチ要求の発生を検出する。つまり、命令フェッチ要求検出部202は、事前に指定された命令フェッチ単位長を超えるプログラムカウンタになった場合に、命令フェッチ要求が発生すると見なして命令フェッチ要求の記録をプログラム動作ログ出力部206に通知する。
The instruction fetch
データアクセス要求検出部203は、命令実行検出部201から渡された実行命令コードを解析し、解析した結果をプログラム動作ログ出力部206に通知する。ここでの解析した結果とは、データアクセスを要求する番地、読み出し(read)であるか書き込み(write)かの判定、及び要求するデータサイズ、なお、図2では、データアクセス要求検出部203は、命令実行検出部201から実行命令コードを受け取って解析している。別の構成として、データアクセス要求検出部203が、シミュレータあるいはエミュレータに備わる機能であるデータアクセスを監視する機能を利用し、直接データアクセス要求を検出し、データアクセス要求に関係する情報を取得してもよい。
The data access
ウェイト発生監視部204は、命令実行検出部201から実行番地であるプログラムカウンタまたは実行命令コードなどの情報を受け取り、命令の実行を停止するタイミングであるか否かを判定する。ウェイト発生監視部204は、停止するタイミングと判定した場合、命令の実行を停止したことを示す情報を、プログラム動作ログ出力部206に通知する。なお、ウェイト発生監視部204は、実行命令コードの解析結果を用いて、命令の実行を停止する命令であるかどうかを判定することができる。また、受け取ったプログラムカウンタを用いて、ほかのデバイスまたは機器を待つための関数の呼び出しまたはモジュールの実行であることを判定することができる。これは、コンピュータまたはプロセッサが命令の実行を停止し待ち状態に入るのは、特定の命令を実行する場合またはプログラムの動作中に実行される特定の関数またはモジュールを実行するためである。
The wait
疑似タイマ記録部205は、疑似的なタイマを動作させ、プログラム疑似動作装置70の疑似環境下の時間情報をプログラム動作ログ出力部206に通知する。例えば、プログラム疑似動作装置70そのものが動作するコンピュータに接続するタイマ回路を利用することができる。このタイマ回路が、実世界で一定の時間間隔でイベントを発生させることにより、プログラム疑似動作装置70上の世界に、疑似的に一定の時間間隔のイベントを発生させる。疑似タイマ記録部205は、疑似的なタイマイベントを受けると、プログラム動作ログ出力部206に疑似的なタイマイベントの発生を通知する。また、タイマイベント発生時に、その時のタイムスタンプをプログラム動作ログ出力部206に通知することも可能である。
The pseudo
プログラム動作ログ出力部206は、命令実行検出部201、命令フェッチ要求検出部202、データアクセス要求検出部203、ウェイト発生監視部204、疑似タイマ記録部205から情報を受け取り、プログラム動作ログを生成する。また、プログラム動作ログ出力部206は、生成したプログラム動作ログを、プログラム性能見積もり装置80に出力する。なお、プログラム動作ログは、受け取った情報が発生した順序関係を把握できる形式であるものとする。
The program operation
以上の構成により、本発明のプログラム擬似動作装置70は、ウェイト発生監視部204と疑似タイマ記録部205から取得する情報を用いて、命令の実行停止時間を見積もるのに必要な情報を、プログラム動作ログとして出力できる。このプログラム動作ログを受け取ったプログラム性能見積もり装置80は、命令を実行している区間だけでなく、コンピュータが動作を停止している区間に対する性能見積もりを可能とする。これにより、プログラムの動作全体に対する性能を見積もることができる。このコンピュータが停止している区間は、プログラムの実行中にコンピュータと接続しているほかの機器に処理を要求し、ほかの機器の処理完了を待つ時間を含んでいる。また、コンピュータ自身が停止処理を行い、何らかの起動トリガを発生するまで命令の実行を停止し待つ時間を含んでいる。
With the above configuration, the program pseudo-operation device 70 of the present invention uses the information acquired from the wait
また、プログラム疑似動作装置70は、プログラムをサイクル精度でシミュレートし動作させるものではないので、プログラム疑似動作装置70の疑似環境下の時間情報が必要となる。そのため、疑似タイマ記録部205により疑似的なタイマを動作させ、プログラム疑似動作装置70の疑似環境下の時間情報をプログラム動作ログ出力部206に通知することにより、疑似的な時間情報をプログラム動作ログに含めることができる。
Further, since the program pseudo-operation device 70 does not simulate and operate a program with cycle accuracy, time information in the pseudo environment of the program pseudo-operation device 70 is required. Therefore, the pseudo
図3は、プログラム疑似動作装置70が出力しプログラム性能見積もり装置80に入力するプログラム動作ログに記される情報の一例である。図3では、1行で一つのログ情報を示しており、プログラム動作ログに記される情報90は、発生した順序に従って、5つのログ情報(251〜255)が上から並んでいる。各ログ情報は、識別子と、補助情報とから構成されている。 FIG. 3 is an example of information recorded in the program operation log output from the program pseudo-operation device 70 and input to the program performance estimation device 80. In FIG. 3, one log information is shown in one line, and the information 90 described in the program operation log has five log information (251 to 255) arranged from the top according to the order of occurrence. Each log information includes an identifier and auxiliary information.
識別子は、動作ログの種別を識別するための情報である。識別できるのであれば、補助情報に含まれるほかの情報を用いて、識別してもよい。例えば、命令フェッチ要求に関する情報(図3の252)は、アクセス種別により命令フェッチ要求の情報であることを特定しても問題はない。 The identifier is information for identifying the type of operation log. If it can be identified, it may be identified using other information included in the auxiliary information. For example, there is no problem even if the information related to the instruction fetch request (252 in FIG. 3) is the information of the instruction fetch request by the access type.
補助情報は、識別子に応じて必要となる情報が異なっている。 The auxiliary information requires different information depending on the identifier.
ログ情報251は、命令実行検出部201からプログラム動作ログ出力部206に渡される情報の一例である。プログラムカウンタ値と実行命令種別が記される。実行命令種別は、実行命令コードを解析した後に命令を特定する識別情報を記してもよいし、実行命令コードを解析せずに記録してもかまわない。
The
ログ情報252は、命令フェッチ要求検出部202からプログラム動作ログ出力部206に渡される情報の一例である。命令フェッチを要求しているアドレスと、命令フェッチであることを示すアクセス種別と、命令フェッチで要求しているサイズが記される。
The
ログ情報253は、データアクセス要求検出部203からプログラム動作ログ出力部206に渡される情報の一例である。データアクセスを要求しているアドレスと、データアクセスの要求が読み込み(readアクセス)であるか書き出し(writeアクセス)であるかを判別するアクセス種別と、データアクセスで要求しているサイズが記される。
The
ログ情報254は、ウェイト発生監視部204からプログラム動作ログ出力部206に渡される情報の一例である。命令の実行が停止するウェイトが発生したことを示すウェイト発生イベント発生記録と、ウェイト種別が記される。ウェイト種別は、プログラムが自らコンピュータまたはプロセッサを停止モードにしたかどうか、あるいはほかの機器またはデバイスに対する何の要求を出して待ちに入っているのかを示す。
The
ログ情報255は、疑似タイマ記録部205からプログラム動作ログ出力部206に渡される情報の一例である。疑似タイマからのイベントが発生したことを示す疑似タイマイベント発生記録と、疑似タイマからのイベントが発生した時刻を示すタイムスタンプが記される。
The
図3に示すプログラム動作ログに記される情報90は、一例であり、同等の情報が別の形式に加工されていても、プログラム性能見積もり装置80の動作に支障はない。 The information 90 recorded in the program operation log shown in FIG. 3 is an example, and there is no problem in the operation of the program performance estimation apparatus 80 even if equivalent information is processed into another format.
また、実際にはプログラム動作ログは、プログラムの動作として記録される一連の情報が発生した順序関係を特定できる形式で記録される。最も単純には、発生した順序の時系列により、プログラム動作の情報が記されていればよい。 In practice, the program operation log is recorded in a format that can identify the order relationship in which a series of information recorded as program operations has occurred. In the simplest case, the program operation information only needs to be written in the time sequence of the order of occurrence.
図4は、本発明の実施の形態におけるプログラム性能見積もり装置80の構成を示すブロック図である。 FIG. 4 is a block diagram showing the configuration of the program performance estimation apparatus 80 in the embodiment of the present invention.
プログラム性能見積もり装置80は、プログラム動作ログ入力部301、ウェイト発生区間抽出部303、CPUバス仕様入力部、命令実行解析部305、バスアクセス解析部306、ストールサイクル管理部307、擬似タイマ時間見積もり部308、通常処理時間見積もり部309、ウェイト発生時間見積もり部310、見積もり時間提示部311を備えている。
The program performance estimation device 80 includes a program operation log input unit 301, a wait generation interval extraction unit 303, a CPU bus specification input unit, an instruction
プログラム動作ログ入力部301は、プログラム疑似動作装置70からプログラム動作ログを受け取り、受け取ったプログラム動作ログをウェイト発生区間抽出部303に出力する。 The program operation log input unit 301 receives the program operation log from the program pseudo operation device 70 and outputs the received program operation log to the wait generation interval extraction unit 303.
ウェイト発生区間抽出部303は、プログラム動作ログに含まれる各ログ情報が、ウェイト発生区間に発生したプログラム動作か否かを判定する。ウェイト発生区間に発生したプログラム動作と判定した場合、ウェイト発生区間抽出部303は、対応するログ情報を、ウェイト発生時間見積もり部310に通知する。また、ウェイトが発生していない通常動作区間に発生したプログラム動作と判定した場合、ウェイト発生区間抽出部303は、対応するログ情報を命令実行解析部305、及びバスアクセス解析部306に通知する。
The wait generation interval extraction unit 303 determines whether each piece of log information included in the program operation log is a program operation occurring in the wait generation interval. When it is determined that the program operation has occurred in the wait occurrence interval, the wait occurrence interval extraction unit 303 notifies the corresponding log information to the wait occurrence
CPUバス仕様入力部304は、見積もり対象のプログラムを動作させることを想定するコンピュータ、プロセッサ、あるいはCPUに関する仕様、種々のキャッシュアーキテクチャ、バスアーキテクチャの仕様を読み込み、その情報を命令実行解析部305、バスアクセス解析部306、ストールサイクル管理部307に通知する。つまり、CPUバス仕様入力部304は、見積もり対象のSoCの仕様情報を読み込み、各処理部(305、306、307)が必要とする情報を抽出して、通知を行う。
The CPU bus
命令実行解析部305、バスアクセス解析部306及びストールサイクル管理部307は、上述のCPUバス仕様入力部304から、解析に必要なCPUとキャッシュアーキテクチャ仕様の情報を取得して動作する。
The instruction
ストールサイクル管理部307は、CPU関連の情報と、キャッシュ関連のストールサイクルに関する情報と、外バス関連のストールサイクルに関する情報などをストールサイクル管理情報として管理し、保持している。ストールサイクル管理部307は、CPUバス仕様入力部304から取得した仕様に基づいて、見積もりに使用するストール数の情報を、擬似タイマ時間見積もり部308と通常処理時間見積もり部309に通知する。
The stall
命令実行解析部305は、ウェイト発生区間抽出部303からログ情報を、CPUバス仕様入力部304からCPU仕様情報を取得し、命令実行に関するプログラム動作を解析する。具体的には、命令の実行回数と分岐命令の実行回数、パイプラインハザードによるストールサイクル回数を算出する。なお、命令実行解析部305が取得するログ情報は、例えば、図3のログ情報251であり、プログラムカウンタ値と実行命令コードの情報を得る。また、命令実行解析部305は、取得したログ情報に含まれる擬似タイマイベント発生記録を用いて、算出した値と擬似タイマイベントとを対応付け、通常処理時間見積もり部309と疑似タイマ時間見積もり部308に解析情報を通知する。
The instruction
バスアクセス解析部306は、ウェイト発生区間抽出部303からログ情報を、CPUバス仕様入力部304からキャッシュ仕様情報を取得し、命令フェッチ及びデータアクセスに関する解析を行う。具体的は、キャッシュヒット回数を算出する。なお、バスアクセス解析部306が取得するログ情報は、例えば、図3のログ情報252、ログ情報253である。また、バスアクセス解析部306は、取得したログ情報に含まれる疑似タイマイベント発生記録を用いて、算出した値と擬似タイマイベントとを対応付け、通常処理時間見積もり部309と疑似タイマ時間見積もり部308に解析情報を通知する。
The bus
疑似タイマ時間見積もり部308は、命令実行解析部305とバスアクセス解析部から解析情報を取得し、ストールサイクル管理部307からストール数の情報を取得し、擬似タイマイベント区間のプログラム動作時間を算出する。また、擬似タイマ時間見積もり部308は、算出したプログラム動作時間と、対象としている疑似タイマイベントと対応付け、ウェイト発生時間見積もり部310に通知する。
The pseudo timer
ウェイト発生時間見積もり部310は、コンピュータが他の機器の処理を待つ場合や、何らかの起動トリガを発生するまで命令の実行を停止し待つ場合の動作時間を見積もる。
The wait generation
ウェイト発生時間見積もり部310は、ウェイトが発生した際のプログラム動作であるとウェイト発生区間抽出部303が判断したプログラム動作ログの情報を取得する。ウェイト発生時間見積もり部310は、そのプログラム動作ログの情報から疑似タイマイベントが発生した回数を計算する。
The wait generation
また、ウェイト発生時間見積もり部310は、疑似タイマ時間見積もり部308が各疑似タイマイベント区間に対して算出した動作時間を取得し、その各疑似タイマイベント区間に動作時間に基づき疑似タイマイベント区間あたりの動作時間を算出する。典型的には、全ての各疑似タイマイベント区間の動作時間の平均値、あるいは中央値、あるいは最頻値を疑似タイマイベント区間あたりの動作時間と判断してもよいし、分布の偏りを考慮して上位と下位のサンプルを何パーセントか削除した上で平均値、あるいは中央値を疑似タイマイベント区間あたりの動作時間と判断してもよい。
Further, the wait generation
ウェイト発生時間見積もり部310は、上記算出した疑似タイマイベント区間あたりの動作時間と、プログラム動作ログに基づき計算した疑似タイマイベントの発生回数との積により、ウェイト発生区間抽出部303から取得したプログラム動作全体においてコンピュータが待ちにより停止した時間であると見なし、その時間をウェイト発生時間として見積もり時間提示部311に通知する。これにより、コンピュータが待ちの発生により停止している処理区間に対して停止時間を見積もることが可能になる。
The wait generation
通常処理時間見積もり部309は、命令実行解析部305から命令時実行回数、分岐命令回数、ストール回数の情報などの命令実行に関するプログラム動作の解析情報を取得し、バスアクセス解析部からキャッシュヒット回数と外バスアクセス情報などの命令フェッチ及びデータアクセスに関する解析情報を取得し、解析情報の全体のプログラム動作時間を算出し、見積もり時間提示部311に通知する。
The normal processing
通常処理時間見積もり部309は、疑似タイマ時間見積もり部308と同様の動作を行う。動作が異なる点は、疑似タイマ時間見積もり部308が疑似タイマイベント間の動作時間を算出しているのに対し、通常処理時間見積もり部309は命令実行解析部305及びバスアクセス解析部306から取得するプログラム動作の解析情報全体に対して動作時間を算出する点である。通常処理時間見積もり部309は、プログラム動作の解析情報全体に対し、CPU実行時間及び各レベルのキャッシュヒットに要する時間及び外バスアクセス時間を算出し、その合計をプログラムが待ちに入らず動作している通常処理時間であると判断し、見積もり時間提示部311に通知する。
The normal processing
あるいは、通常処理時間見積もり部309はプログラム動作の解析情報全体ではなく、指定されるタイマイベント間の動作時間を算出することも可能である。例えば、疑似タイマのタイムスタンプにより動作時間を見積もる区間の開始と終了を指定し、指定される区間に対して上記と同様に通常処理時間を算出し、見積もり時間提示部311に通知する。この場合、疑似タイマ時間見積もり部308は、開始と終了を示すタイムスタンプの区間に存在する疑似タイマイベントの発生回数を計算し、疑似タイマイベント区間あたりの動作時間との積により、指定された開始から終了までの区間のウェイト発生時間を見積もり、見積もり時間提示部311に通知する。
Alternatively, the normal processing
見積もり時間提示部311は、通常処理時間見積もり部309から取得したプログラムが動作している通常処理時間と、ウェイト発生時間見積もり部310から取得したウェイト発生時間を合算し、プログラム疑似動作装置70から取得したプログラム動作ログ全体においてコンピュータが待ちにより停止している時間を含め、プログラム動作時間として出力することができる。このプログラム動作時間がプログラム性能見積もり値である。
The estimated
以上により、本発明のプログラム性能見積もり装置80は、命令を実行している区間だけでなく、コンピュータが動作を停止している区間に対する見積もりを可能にする。これにより、サイクル精度がない動作シミュレーションに基づくプログラム性能の見積もりにおいて、プログラムの動作全体の性能を見積もることができる。 As described above, the program performance estimation apparatus 80 according to the present invention enables estimation not only for a section in which an instruction is executed but also for a section in which the computer stops operating. Thereby, in the estimation of the program performance based on the operation simulation with no cycle accuracy, the performance of the entire program operation can be estimated.
図5は、ウェイト発生区間抽出部303の処理フローを示している。ウェイト発生区間抽出部303は、プログラム動作ログ入力部301からプログラム動作ログを受け取り、最初の疑似タイマイベントの発生記録を確認することで、処理を開始する。 FIG. 5 shows a processing flow of the weight generation interval extraction unit 303. The wait generation interval extraction unit 303 receives the program operation log from the program operation log input unit 301, and starts processing by confirming the generation record of the first pseudo timer event.
ウェイト発生区間抽出部303は、現在の疑似タイマイベントの記録から、次に発生する疑似タイマイベントの記録までの区間に存在するプログラム動作ログを確認する(S321)。プログラム動作ログを確認とは、対象のログ情報の内容を確認することを意味する。 The wait generation interval extraction unit 303 checks the program operation log existing in the interval from the recording of the current pseudo timer event to the recording of the next generated pseudo timer event (S321). Confirming the program operation log means confirming the contents of the target log information.
ウェイト発生区間抽出部303は、現在の疑似タイマイベントの区間内に、ウェイト発生イベントのログ情報が存在するか否かを判定する(S322)。 The wait occurrence interval extraction unit 303 determines whether log information of the wait occurrence event exists in the current pseudo timer event interval (S322).
ウェイト発生イベントのログ情報が存在する場合(S322でYes)、ウェイト発生区間抽出部303は、現在の疑似タイマイベント区間のプログラム動作を、ウェイトが発生した際のプログラム動作であると判断する。そして、対応するログ情報をウェイト発生時間見積もり部310に通知する(S325)。 When log information of a wait occurrence event exists (Yes in S322), the wait occurrence interval extraction unit 303 determines that the program operation in the current pseudo timer event interval is a program operation when a wait occurs. Then, the corresponding log information is notified to the wait occurrence time estimation unit 310 (S325).
一方、ウェイト発生イベントの記録が存在しない場合(S322でNo)、ウェイト発生区間抽出部303は、現在の疑似タイマイベントの区間内に、ほかのプログラム動作のログ情報が存在するかを判定する(S323)。なお、ここで存在を判定するのは、プログラムカウンタの値、命令フェッチ、データアクセスなどのログ情報である。ほかのプログラム動作のログ情報が存在する場合(S323でYes)、ウェイト発生区間抽出部303は、現在の疑似タイマイベント区間のログ情報を命令実行解析部305、及びバスアクセス解析部306に通知する(S324)。
On the other hand, when there is no record of the wait occurrence event (No in S322), the wait occurrence interval extraction unit 303 determines whether there is log information of another program operation in the interval of the current pseudo timer event ( S323). It is to be noted that log information such as a program counter value, instruction fetch, and data access is determined. When log information of other program operations exists (Yes in S323), the wait generation interval extraction unit 303 notifies the instruction
また、ほかのプログラム動作のログ情報が存在しない場合(S323でNo)、ウェイト発生区間抽出部303は、現在の疑似タイマイベント区間のプログラム動作を、ウェイトが発生した際のプログラム動作であると判断する。そして、対応するログ情報をウェイト発生時間見積もり部310に通知する(S325)。 If there is no log information of other program operations (No in S323), the wait generation interval extraction unit 303 determines that the program operation in the current pseudo timer event interval is a program operation when a wait occurs. To do. Then, the corresponding log information is notified to the wait occurrence time estimation unit 310 (S325).
なお、プログラム動作ログの先頭から最初の疑似タイマイベントの記録までの間に発生しているプログラム動作のログ情報に関して、ウェイト発生時間見積もり部310は、ウェイトが発生していない通常動作区間であると判断する。そして、この区間のプログラム動作のログ情報を、命令実行解析部305、及びバスアクセス解析部306に通知すればよい。また、最後の疑似タイマイベントの記録からプログラム動作ログの最後尾までに発生しているプログラム動作のログ情報に関して、ウェイト発生時間見積もり部310は、ウェイトが発生していない通常動作区間であると判断する。そして、この区間のプログラム動作ログの情報を、命令実行解析部305、及びバスアクセス解析部306に渡せばよい。
Regarding the log information of the program operation that has occurred between the beginning of the program operation log and the recording of the first pseudo timer event, the wait generation
図6は、CPUバス仕様入力部304が読み込む情報の一例を示している。図6の401は、CPUに関する仕様の情報をまとめて記すもので、その中にはクロック周波数(402)、実行並列度(403)、分岐予測方式(404)、バイパス回路の有無(405)に関する情報などが含まれる。
FIG. 6 shows an example of information read by the CPU bus
クロック周波数402は、CPUの動作の最小単位であるクロックが単位時間あたりどの程度供給されるのかを示す値であり、典型的にはMHzまたはGHzの単位に基づいて、CPUのクロック周波数の値が記される。
The
実行並列度403にはCPUが命令をどの程度並列に実行することができると想定するかを記すことができ、例えば、1クロックあたりの命令の実行回数を平均的に記してもよく、命令に応じて並列に実行できるかどうかの情報を記してもよい。命令に応じた実行並列度の情報を記す場合、並列に実行可能である命令が何であるかを実行命令コードに基づいて判断できる情報が記されていればよい。 The execution parallelism 403 can indicate how much the CPU is assumed to be able to execute instructions in parallel. For example, the execution count of instructions per clock may be averaged. Accordingly, information on whether or not it can be executed in parallel may be written. When writing information about the degree of execution parallelism according to an instruction, it is only necessary to describe information that can determine what instruction can be executed in parallel based on the execution instruction code.
分岐予測方式404は、CPUが備える分岐予測機能に関する情報を示し、分岐予測機能の有無、あるいは分岐予測の方式の種別が記される。また、バイパス回路有無405は、CPUのパイプラインハザードが起きた際に、迂回して前段にデータを送るバイパス回路の有無の情報を記されている。
The branch prediction method 404 indicates information related to the branch prediction function provided in the CPU, and indicates the presence / absence of the branch prediction function or the type of the branch prediction method. The bypass circuit presence /
図7は、CPUバス仕様入力部304が読み込む情報の一例を示している。図7の451は、キャッシュアーキテクチャ仕様の情報をまとめて記す物で、その中には使用有無(452)、方式(453)、way数(454)、ブロック数(455)、ラインサイズ(456)、置換アルゴリズム(457)、ダーティビット管理(458)に関する情報などが含まれる。
FIG. 7 shows an example of information read by the CPU bus
キャッシュは記憶媒体である外部デバイスとの間に介在する小容量で高速な記憶媒体であり、複数の段数分を実装することができる。そのため、プログラム性能を見積もる上で想定するキャッシュの構成に応じ、複数段のキャッシュアーキテクチャ仕様の情報を読み込むことが可能である。また、複数段分のキャッシュ構成を想定し、レベル1のキャッシュアーキテクチャ仕様だけではなく、レベル2、レベル3、またはそれ以上の段数に関しても、同様にキャッシュアーキテクチャ仕様の情報を読み込むことができる。
A cache is a small-capacity and high-speed storage medium that is interposed between an external device that is a storage medium, and a plurality of stages can be mounted. For this reason, it is possible to read information on a plurality of stages of cache architecture specifications according to the cache configuration assumed in estimating the program performance. Further, assuming a cache configuration of a plurality of stages, not only the cache architecture specification of
キャッシュの使用有無452は、そのレベルのキャッシュを使用するかどうかを示す情報が記される。
Information indicating whether or not to use the cache of the level is written in the cache use /
キャッシュの方式453は、命令フェッチとデータアクセスの双方を扱う統合型(ユニファイド)キャッシュであるか、命令フェッチとデータアクセスを分離して別々に扱う分離型(ハーバード)キャッシュであるかの情報が記される。
The
way数454、ブロック数455、ラインサイズ456は、キャッシュの総容量を決めるパラメータである。キャッシュにヒットするかミスするかを判定する基準のサイズをラインサイズ456として、典型的にはバイト(byte)の単位で記される。また、ブロック数455は、1つのラインサイズをブロック数1として、1wayあたりのラインサイズの総個数に相当する値が記される。way数454は、キャッシュにヒットするかミスするかを、並列に判定することができるラインサイズ×ブロック数のキャッシュが幾つ備わっているかを示す。
The number of
置換アルゴリズム457は、LRU、ランダム置換など、どの置換アルゴリズムを使用するかを記す。ダーティビット管理458は、キャッシュラインに対する書き込みが発生した場合に、キャッシュラインの中でどの単位でダーティビットを管理するかを示す。
The
また、CPUバス仕様入力部304は、CPU仕様とキャッシュ仕様のみならず、接続しているバスの種別と、バス幅またはバースト長などのバス仕様に関しても情報を読み込むことができる。
Further, the CPU bus
図8は、ストールサイクル管理部307が管理するストールサイクル管理情報の一例を示している。図8の471は、ストールサイクル管理情報をまとめて記すもので、その中にはCPU関連の情報、キャッシュ関連のストールサイクルに関する情報、外バス関連のストールサイクルに関する情報などが含まれる。
FIG. 8 shows an example of stall cycle management information managed by the stall
ストールサイクル管理部307は、CPUバス仕様入力部304からクロック周波数402の値を取得し、クロック周波数472として管理する。CPI473は1つの命令に対しCPUが動作するサイクル数を示す。あらかじめ定数値を与えてもよいが、ストールサイクル管理部307は条件に応じて、疑似タイマ時間見積もり部308及び通常処理時間見積もり部309に通知するストール管理情報を変化させることが可能である。例えば、ストールサイクル管理部307は、CPU−AとCPU−Bの2種類のCPU種別に応じCPIの値を管理する。ストールサイクル管理部307は、CPUバス仕様入力部304が読み込んだCPU仕様の実行並列度403が示すCPU種別に応じCPIの値を選択し、疑似タイマ時間見積もり部308及び通常処理時間見積もり部309に通知することが可能である。
The stall
また、その他のストールサイクル管理情報に関しても、ストールサイクル管理部307はCPUバス仕様入力部304から取得する仕様の条件に応じ、変化させることができる。CPUは一般にパイプライン実行されるので、分岐命令が実行された結果、後続のアドレス以外にジャンプすることになると、それまでパイプラインに積んでいた、後続のアドレスの命令が無駄になる。そのため、分岐ペナルティ474がストール数として加算される。ストールサイクル管理部307は、分岐ペナルティ474に関しても、分岐予測機能がない場合、あるいは分岐予測機能がある場合に、その種別ごとに、分岐ペナルティを管理する。CPUバス仕様入力部304のCPU仕様の情報から、分岐予測方式の情報を取得すると、それに応じて分岐ペナルティの情報を疑似タイマ時間見積もり部308及び通常処理時間見積もり部309に通知する。
Further, regarding other stall cycle management information, the stall
また、ストールサイクル管理部307は、レジスタ競合ストール475も同様に、CPUのバイパス回路の有無によりストール数を管理する。CPUバス仕様入力部304から取得するバイパス回路有無405の情報に応じて、ストール数の情報を疑似タイマ時間見積もり部308及び通常処理時間見積もり部309に通知する。
The stall
ストールサイクル管理部307は、キャッシュ関連のストール情報も管理する。基準クロック周波数477には、キャッシュ関連のストールサイクル数が、どの周波数のサイクルベースで記されているかを示す周波数値が管理される。キャッシュ関連のCPU関連のクロック周波数472を利用してもかまわない。
The stall
ストールサイクル管理部307は、レベル1キャッシュヒット時にストール478またはレベル2キャッシュヒット時のストール479のように、キャッシュのレベルに応じて、キャッシュヒット時のストール数を管理することができる。キャッシュのレベル数増加に応じて管理することも可能である。
The stall
また、レベル1キャッシュヒット時のストール情報もアクセスの条件に応じて管理することも可能である。例えば、リード(read)アクセスによる場合とライト(write)アクセスによる場合に分けて、ストール情報を管理してもよい。
Also, stall information at the time of
ストールサイクル管理部307は、さらに外バス関連のストール情報も管理する。基準クロック周波数480は、外バス関連のストールサイクル数が、どの周波数のサイクルベースで記されているかを示す周波数値が管理される。デバイス1のストール481またはデバイス2のストール482のように、外バス関連のストール情報には、コンピュータと接続される外部デバイスのストール情報が管理される。
The stall
ストールサイクル管理部307は、デバイスごとに条件に応じてストール情報を管理することが可能である。例えば、キャッシュラインのサイズが変更されれば転送サイズが変化し、それに応じてストールサイクル数が変化する。また、バス幅またはバースト長が変更されれば一度に転送するサイズが変化するので、それに応じてストールサイクル数が変化する。したがって、ストールサイクルキャッシュ仕様またはバスの仕様に応じて種々のストール情報を管理し、適切なストール数の情報を、疑似タイマ時間見積もり部308及び通常処理時間見積もり部309に通知することができる。
The stall
図9は、命令実行解析部305の処理フローを示している。
FIG. 9 shows a processing flow of the instruction
命令実行解析部305は、ウェイト発生区間抽出部303から実行命令コードの情報を取得し(S501)、CPUバス仕様入力部304からCPU仕様の情報を取得する(S502)。
The instruction
命令実行解析部305は、実行される順序で先頭の命令の実行命令コードを対象に選択する(S503)。
The instruction
命令実行解析部305は、現在の実行命令コード、及び先だって実行された実行命令コードを解析し、指定されている命令であるかどうかを判定する(S504)。この判定は、ステップS502で取得したCPU仕様の情報に命令の実行並列度の情報が含まれ、並列に実行可能である命令が何であるかを実行命令コードに基づいて判断できる情報がある場合に可能である。
The instruction
先だって実行された命令と並列に実行可能ではない場合(S504でNo)、命令実行解析部305は、その命令を実行するのに必要なサイクル数を消費すると判断する。命令実行解析部305は、管理する命令実行回数の値を加算し(S505)、ステップS506に移る。
If the instruction cannot be executed in parallel with the previously executed instruction (No in S504), the instruction
先だって実行された命令と並列に実行可能である場合(S504でYes)、命令実行解析部305は、現在の実行命令コードを解析し、分岐命令であるかどうかを判定する(S506)。その結果、現在の命令が分岐命令であると判定した場合(S506でYes)、命令実行解析部305は、管理する分岐命令回数の値を加算し(S507)、ステップS508に移る。
If the instruction can be executed in parallel with the previously executed instruction (Yes in S504), the instruction
現在の命令が分岐命令ではないと判定した場合(S506でNo)、命令実行解析部305は、現在の実行命令コードを解析し、先だって実行された命令とデータ依存関係に基づいて、ストールが発生するかどうかを判定する(S508)。その結果、ストールが発生すると判定した場合(S508でYes)、命令実行解析部305は、管理するストール回数の値を加算し(S509)、ステップS510に移る。
If it is determined that the current instruction is not a branch instruction (No in S506), the instruction
ストールが発生しないと判定する場合(S508でNo)、命令実行解析部305は、現在の命令が最後の実行命令コードであるかどうかを判定する(S510)。最後の実行命令コードではないと判定する場合(S510でNo)、次に実行される実行命令コードを対象にし(S511)、ステップS504に戻り処理を繰り返す。最後の実行命令コードである場合(S510でYes)、命令実行解析部305は、算出した命令実行回数、分岐命令回数及びストール回数を、通常時間見積もり部302及び疑似タイマ時間見積もり部308に通知する(S512)。
If it is determined that a stall does not occur (No in S508), the instruction
図10は、バスアクセス解析部306の処理フローを示している。
FIG. 10 shows a processing flow of the bus
バスアクセス解析部306は、ウェイト発生区間抽出部303から命令フェッチに関する情報とデータアクセスに関する情報を取得し(S531)、CPUバス仕様入力部304からキャッシュ仕様情報を取得する(S532)。バスアクセス解析部306は、取得したキャッシュ仕様情報を最小のレベルのキャッシュから順に使用有りに指定されているキャッシュ仕様情報を探し、使用有りに指定される、最小のレベルのキャッシュ仕様情報を取得する(S533)。
The bus
ウェイト発生区間抽出部303は、S531で取得したすべての命令フェッチに関する動作ログ情報とデータアクセスに関する動作ログ情報を対象にする(S534)。次に、S533で取得したキャッシュ仕様情報に記されるキャッシュの方式が、統合型(ユニファイド)キャッシュであるか、分離型(ハーバード)キャッシュであるか判定する(S535)。 The wait generation interval extraction unit 303 targets the operation log information related to all instruction fetches and the operation log information related to data access acquired in S531 (S534). Next, it is determined whether the cache method described in the cache specification information acquired in S533 is a unified (unified) cache or a separated (Harvard) cache (S535).
キャッシュの方式が統合型である場合(S535でYes)、S534で対象にした命令フェッチ及びデータアクセスに関する動作ログ情報が分離されていれば、順序関係を損なわず併合する(S536)。その後、取得したキャッシュ仕様情報に基づきキャッシュシミュレートし、キャッシュヒット回数を算出し(S537)、ステップS540に移る。キャッシュ仕様情報には、キャッシュのway数、ブロック数、ラインサイズ、置換アルゴリズム、ダーティビット管理などを含んでいる。 When the cache method is the integrated type (Yes in S535), if the operation log information related to instruction fetch and data access targeted in S534 is separated, the order relation is merged (S536). Thereafter, a cache simulation is performed based on the acquired cache specification information, the number of cache hits is calculated (S537), and the process proceeds to step S540. The cache specification information includes the number of cache ways, the number of blocks, the line size, a replacement algorithm, dirty bit management, and the like.
キャッシュの方式が統合型ではない場合(S535でNo)、S534で対象にした命令フェッチ及びデータアクセスに関する動作ログ情報が併合されていれば、命令フェッチとデータアクセスに分離する(S538)。なお、ここでは、順序関係を損なわない形式で分離するものとする。その後、命令キャッシュとデータキャッシュの各々のキャッシュ仕様情報に基づきキャッシュシミュレートし、キャッシュヒット回数を算出し(S539)、ステップS540に移る。 If the cache method is not the integrated type (No in S535), if the operation log information related to instruction fetch and data access targeted in S534 is merged, the instruction fetch and data access are separated (S538). Here, the separation is performed in a format that does not impair the order relationship. Thereafter, cache simulation is performed based on the cache specification information of the instruction cache and the data cache, the number of cache hits is calculated (S539), and the process proceeds to step S540.
バスアクセス解析部306は、使用有りに指定される、次のレベルのキャッシュ仕様情報を探し存在するか判定する(S540)。次のキャッシュ仕様情報が存在すれば(S540でYes)、そのキャッシュ使用情報を取得する(S541)。その後、ステップS534あるいはステップS539のキャッシュシミュレートによりキャッシュミスしたアクセスを対象にし(S542)、ステップS535に移る。
The bus
次のキャッシュ仕様情報が存在しなければ(S540でNo)、バスアクセス解析部306は、キャッシュシミュレートを実施した、各レベルのキャッシュのキャッシュヒット回数と、最終的にキャッシュミスし外バスに出るアクセスの情報を、通常処理時間見積もり部309と疑似タイマ時間見積もり部308に通知する(S543)。
If the next cache specification information does not exist (No in S540), the bus
図11は、疑似タイマ時間見積もり部308の処理フローを示している。
FIG. 11 shows a processing flow of the pseudo timer
疑似タイマ時間見積もり部308は、命令実行解析部305から命令実行に関するプログラム動作の解析情報を取得し、バスアクセス解析部から命令フェッチ及びデータアクセスに関する解析情報を取得する(S601)。なお、命令実行に関する解析情報とは、命令時実行回数、分岐命令回数、ストール回数の情報などである。また、命令フェッチ及びデータアクセスに関する解析情報とは、キャッシュヒット回数と外バスアクセス情報などである。この解析情報には、命令実行解析部305及びバスアクセス解析部306から出力される、疑似タイマイベントの記録に関する情報も含まれる。
The pseudo timer
疑似タイマ時間見積もり部308は、ストールサイクル管理部307からストールサイクル管理情報を取得する(S602)。
The pseudo timer
疑似タイマ時間見積もり部308は、命令実行解析部305及びバスアクセス解析部306から取得する解析情報に含まれる、疑似タイマイベントの記録のうち、先頭の記録を選択し処理を開始する(S603)。典型的には時系列で、疑似タイマイベントの記録及び解析情報の処理を実施する。しかし、どの疑似タイマイベント間の解析情報を処理したかを管理し、すべての疑似タイマイベント間の解析情報を対象にするのであれば、時系列で処理しなくてもかまわない。
The pseudo timer
次に、疑似タイマ時間見積もり部308は、現在選択している疑似タイマイベントの記録から、その次に発生する疑似タイマイベントを検出し、その擬似タイマイベントまでの区間の解析情報を対象にする(S604)。
Next, the pseudo timer
疑似タイマ時間見積もり部308は、命令実行解析部305から取得した解析情報と、ストールサイクル管理部307から取得したストールサイクル管理情報に基づき、プログラムの動作時間のうちCPU実行時間を算出する(S605)。なお、命令実行解析部305から取得した解析情報とは、命令実行回数、分岐命令回数、ストール回数の情報などである。また、ストールサイクル管理情報とは、CPUクロック周波数、CPI値、分岐ペナルティ、レジスタ競合ストールの情報などである。典型的には、命令実行回数とCPI値を積算し、クロック周波数により除算することにより命令実行時間を算出する。また、分岐命令回数と分岐ペナルティのサイクル数を積算しクロック周波数により除算することにより分岐ペナルティによる時間を算出する。さらに、ストール回数とレジスタ競合ストールのサイクル数を積算し、クロック周波数により除算することによりパイプラインのストール時間を算出する。これらを合計することで、対象区間のCPU実行時間を算出することができる。
The pseudo timer
疑似タイマ時間見積もり部308は、バスアクセス解析部306から取得した解析情報と、ストールサイクル管理部307から取得したストールサイクル管理情報に基づき、プログラムの動作時間のうち各レベルのキャッシュヒット時間を算出する(S606)。なお、バスアクセス解析部306から取得した解析情報とは、各レベルのキャッシュヒット回数である。また、ストールサイクル管理部307から取得したストールサイクル管理情報とは、基準クロック周波数とキャッシュヒット時のストールの情報などである。典型的には、各レベルのキャッシュヒット回数と各レベルのキャッシュヒット時のストールサイクル数を積算し、基準クロック周波数により除算することにより、対象区間の各レベルのキャッシュヒットに要する時間を算出する。
Based on the analysis information acquired from the bus
疑似タイマ時間見積もり部308は、バスアクセス解析部306から取得した解析情報と、ストールサイクル管理部307から取得したストールサイクル管理情報に基づき、各デバイスのアクセス時間を算出する(S607)。なお、バスアクセス解析部306から取得した解析情報とは、外バスアクセス情報である。また、ストールサイクル管理部307から取得したストールサイクル管理情報とは、基準クロック周波数とデバイスのストール情報などである。典型的には、外バスアクセス情報として一つ一つのアクセス要求がどのアドレスに対するアクセス要求であるかを把握し、各デバイスが配置されているアドレス空間に照らして、どのデバイスにアクセスするかを判定する。次に、アクセスするデバイスのストールサイクル管理情報を参照し、当該アクセス要求にかかるストールサイクル数と判断する。疑似タイマ時間見積もり部308は、現在対象にしている解析情報に含まれるすべての外バスアクセスに、どのデバイスに対するアクセスであるかを判定する。疑似タイマ時間見積もり部308は、アクセスするデバイスのストールサイクル数を用いて、その総和を外バスアクセスに要するサイクル数とし、基準クロック周波数により除算することにより対象区間の外バスアクセス時間を算出する。
The pseudo timer
疑似タイマ時間見積もり部308は、ステップS605で算出したCPU実行時間と、S606で算出した各レベルのキャッシュヒットに要する時間と、及びS606で算出した外バスアクセス時間を合計して動作時間を算出する。その後、疑似タイマ時間見積もり部308は、現在対象としている疑似タイマイベントの記録として一意に識別できるように、算出した動作時間を例えばタイムスタンプと対応付け、ウェイト発生時間見積もり部310に通知する(S609)。
The pseudo timer
以上により、本発明のプログラム性能見積もり装置は、命令を実行している区間だけでなく、コンピュータが動作を停止している区間に対する見積もりを可能にする。これにより、サイクル精度がない動作シミュレーションに基づくプログラム性能の見積もりにおいて、プログラムの動作全体の性能を見積もることができる。 As described above, the program performance estimation apparatus according to the present invention makes it possible to estimate not only a section in which an instruction is being executed but also a section in which the computer has stopped operating. Thereby, in the estimation of the program performance based on the operation simulation with no cycle accuracy, the performance of the entire program operation can be estimated.
なお、前述の説明はあらゆる点において本発明の例示に過ぎず、その範囲を限定しようとするものではない。本発明の範囲を逸脱することなく種々の改良や変形を行うことができることは言うまでもない。 The above description is merely an example of the present invention in all respects, and is not intended to limit the scope thereof. It goes without saying that various improvements and modifications can be made without departing from the scope of the present invention.
本発明にかかるプログラム性能見積もり装置は、コンピュータが動作を停止している区間に対する見積もりを行う機能を有し、情報処理装置などとして有用である。また、情報機器、AV機器、通信機器、家電機器などの組み込み機器の開発ツールとして有用である。 The program performance estimation apparatus according to the present invention has a function of estimating a section in which the computer stops operating, and is useful as an information processing apparatus. Further, it is useful as a development tool for embedded devices such as information devices, AV devices, communication devices, and home appliances.
1,11,12,13 CPU
2 メモリ装置
10 プログラム性能見積もり装置
21 ROM
22 RAM
25 ハードディスク装置
26,35,41,46 インタフェース
31 記録媒体
32 読み取り装置
33 電気通信回線
34 通信装置
40 入力装置
45 表示装置
50 バスライン
51 タイマ回路
55 割り込みコントローラ
70 プログラム擬似動作装置
80 プログラム性能見積もり装置
201 命令実行検出部
202 命令フェッチ要求検出部
203 データアクセス要求検出部
204 ウェイト発生監視部
205 疑似タイマ記録部
206 プログラム動作ログ出力部
301 プログラム動作ログ入力部
303 ウェイト発生区間抽出部
304 CPU・バス仕様入力部
305 命令実行解析部
306 バスアクセス解析部
307 ストールサイクル管理部
308 疑似タイマ時間見積もり部
309 通常処理時間見積もり部
310 ウェイト発生時間見積もり部
311 見積もり時間提示部
1, 11, 12, 13 CPU
2
22 RAM
Claims (4)
プログラムの動作に関する命令実行とデータアクセスに関する情報、ウェイトの発生とイベント発生の情報を取得するプログラム動作情報入力部と、
前記プログラム動作情報入力部から取得したプログラム動作情報のうち、ウェイトが発生する区間とウェイトが発生しない区間を判別し抽出するウェイト発生区間抽出部と、
前記ウェイト発生区間抽出部から取得したウェイトが発生しない区間のプログラム動作情報と、SoCの仕様情報に基づき、命令実行とストールを解析する命令実行解析部と、
前記ウェイト発生区間抽出部から取得したプログラム動作情報と、SoCの仕様情報に基づき、データアクセス要求に対するキャッシュヒットとバスアクセスを解析するバスアクセス解析部と、
前記命令実行解析部から命令実行解析結果と前記バスアクセス解析部からバスアクセス解析結果を取得し、前記命令実行解析部と前記バスアクセス解析部からイベント発生の情報を取得し、前記解析結果とストールサイクル情報に基づきイベント間の動作時間を見積もるイベント間見積もり部と、
前記イベント間見積もり部から取得したイベント間の動作時間と、前記ウェイト発生区間抽出部から取得したウェイトが発生した区間のプログラム動作情報に基づき、ウェイトが発生した時間を見積もるウェイト発生時間見積もり部を備えることを特徴とするプログラム性能見積もり装置。 A program performance estimation device for estimating the performance of a program running on a computer,
Information on instruction execution and data access related to program operation, program operation information input unit for acquiring information on occurrence of wait and event occurrence,
Of the program operation information acquired from the program operation information input unit, a weight generation interval extraction unit that determines and extracts an interval in which a weight is generated and an interval in which no weight is generated;
An instruction execution analysis unit for analyzing instruction execution and stall based on program operation information of a section in which no weight is acquired, obtained from the wait generation section extraction unit, and SoC specification information;
A bus access analysis unit for analyzing a cache hit and a bus access for a data access request based on the program operation information acquired from the wait generation section extraction unit and the SoC specification information;
An instruction execution analysis result is acquired from the instruction execution analysis unit and a bus access analysis result is acquired from the bus access analysis unit, event occurrence information is acquired from the instruction execution analysis unit and the bus access analysis unit, and the analysis result and stall An inter-event estimator that estimates the operating time between events based on cycle information;
A wait generation time estimation unit for estimating a time at which a weight is generated based on an operation time between events acquired from the inter-event estimation unit and a program operation information of a section in which a weight is acquired from the wait generation interval extraction unit; An apparatus for estimating program performance.
プログラムの動作に関する命令実行とデータアクセスに関する情報、ウェイトの発生とイベント発生の情報を取得するプログラム動作情報入力ステップと、
前記プログラム動作情報入力部から取得したプログラム動作情報のうち、ウェイトが発生する区間とウェイトが発生しない区間を判別し抽出するウェイト発生区間抽出ステップと、
前記ウェイト発生区間抽出部から取得したウェイトが発生しない区間のプログラム動作情報と、SoCの仕様情報に基づき、命令実行とストールを解析する命令実行解析ステップと、
前記ウェイト発生区間抽出部から取得したプログラム動作情報と、SoCの仕様情報に基づき、データアクセス要求に対するキャッシュヒットとバスアクセスを解析するバスアクセス解析ステップと
前記命令実行解析部から命令実行解析結果と前記バスアクセス解析部からバスアクセス解析結果を取得し、前記命令実行解析部と前記バスアクセス解析部からイベント発生の情報を取得し、前記解析結果とストールサイクル情報に基づきイベント間の動作時間を見積もるイベント間見積もりステップと、
前記イベント間見積もり部から取得したイベント間の動作時間と、前記ウェイト発生区間抽出部から取得したウェイトが発生した区間のプログラム動作情報に基づき、ウェイトが発生した時間を見積もるウェイト発生時間見積もりステップとを備えることを特徴とするプログラム性能見積もり方法。 A program performance estimation method for estimating the performance of a program running on a computer,
Program operation information input step for obtaining information on instruction execution and data access related to program operation, information on occurrence of wait and event occurrence,
Of the program operation information acquired from the program operation information input unit, a weight generation interval extraction step for discriminating and extracting an interval in which a weight is generated and an interval in which no weight is generated;
An instruction execution analysis step for analyzing instruction execution and stall based on program operation information in a section where no weight is acquired, obtained from the wait generation section extraction unit, and SoC specification information;
A bus access analyzing step of analyzing a cache hit and a bus access for a data access request based on the program operation information acquired from the wait generation interval extracting unit and the SoC specification information; an instruction execution analysis result from the instruction execution analyzing unit; An event that acquires a bus access analysis result from the bus access analysis unit, acquires event occurrence information from the instruction execution analysis unit and the bus access analysis unit, and estimates an operation time between events based on the analysis result and stall cycle information An interim estimation step;
A wait generation time estimation step for estimating a time at which a wait occurs based on the operation time between events acquired from the inter-event estimation unit and the program operation information of the interval in which the wait acquired from the wait generation interval extraction unit is generated. A program performance estimation method characterized by comprising:
プログラムの動作に関する命令実行とデータアクセスに関する情報、ウェイトの発生とイベント発生の情報を取得するプログラム動作情報入力ステップと、
前記プログラム動作情報入力部から取得したプログラム動作情報のうち、ウェイトが発生する区間とウェイトが発生しない区間を判別し抽出するウェイト発生区間抽出ステップと、
前記ウェイト発生区間抽出部から取得したウェイトが発生しない区間のプログラム動作情報と、SoCの仕様情報に基づき、命令実行とストールを解析する命令実行解析ステップと、
前記ウェイト発生区間抽出部から取得したプログラム動作情報と、SoCの仕様情報に基づき、データアクセス要求に対するキャッシュヒットとバスアクセスを解析するバスアクセス解析ステップと
前記命令実行解析部から命令実行解析結果と前記バスアクセス解析部からバスアクセス解析結果を取得し、前記命令実行解析部と前記バスアクセス解析部からイベント発生の情報を取得し、前記解析結果とストールサイクル情報に基づきイベント間の動作時間を見積もるイベント間見積もりステップと、
前記イベント間見積もり部から取得したイベント間の動作時間と、前記ウェイト発生区間抽出部から取得したウェイトが発生した区間のプログラム動作情報に基づき、ウェイトが発生した時間を見積もるウェイト発生時間見積もりステップとを備えることを特徴とするプログラム性能見積もりのプログラム。 A program for estimating the performance of a program running on a computer,
Program operation information input step for obtaining information on instruction execution and data access related to program operation, information on occurrence of wait and event occurrence,
Of the program operation information acquired from the program operation information input unit, a weight generation interval extraction step for discriminating and extracting an interval in which a weight is generated and an interval in which no weight is generated;
An instruction execution analysis step for analyzing instruction execution and stall based on program operation information in a section where no weight is acquired, obtained from the wait generation section extraction unit, and SoC specification information;
A bus access analyzing step of analyzing a cache hit and a bus access for a data access request based on the program operation information acquired from the wait generation interval extracting unit and the SoC specification information; an instruction execution analysis result from the instruction execution analyzing unit; An event that acquires a bus access analysis result from the bus access analysis unit, acquires event occurrence information from the instruction execution analysis unit and the bus access analysis unit, and estimates an operation time between events based on the analysis result and stall cycle information An interim estimation step;
A wait generation time estimation step for estimating a time at which a wait occurs based on the operation time between events acquired from the inter-event estimation unit and the program operation information of the interval in which the wait acquired from the wait generation interval extraction unit is generated. A program for estimating program performance, comprising:
プログラムの動作に関する命令実行とデータアクセスに関する情報、ウェイトの発生とイベント発生の情報を取得するプログラム動作情報入力ステップと、
前記プログラム動作情報入力部から取得したプログラム動作情報のうち、ウェイトが発生する区間とウェイトが発生しない区間を判別し抽出するウェイト発生区間抽出ステップと、
前記ウェイト発生区間抽出部から取得したウェイトが発生しない区間のプログラム動作情報と、SoCの仕様情報に基づき、命令実行とストールを解析する命令実行解析ステップと、
前記ウェイト発生区間抽出部から取得したプログラム動作情報と、SoCの仕様情報に基づき、データアクセス要求に対するキャッシュヒットとバスアクセスを解析するバスアクセス解析ステップと
前記命令実行解析部から命令実行解析結果と前記バスアクセス解析部からバスアクセス解析結果を取得し、前記命令実行解析部と前記バスアクセス解析部からイベント発生の情報を取得し、前記解析結果とストールサイクル情報に基づきイベント間の動作時間を見積もるイベント間見積もりステップと、
前記イベント間見積もり部から取得したイベント間の動作時間と、前記ウェイト発生区間抽出部から取得したウェイトが発生した区間のプログラム動作情報に基づき、ウェイトが発生した時間を見積もるウェイト発生時間見積もりステップとを備えることを特徴とするプログラム性能見積もりのプログラムを記録した記録媒体。 A medium in which a program performance estimation program for estimating the performance of a program running on a computer is recorded,
Program operation information input step for obtaining information on instruction execution and data access related to program operation, information on occurrence of wait and event occurrence,
Of the program operation information acquired from the program operation information input unit, a weight generation interval extraction step for discriminating and extracting an interval in which a weight is generated and an interval in which no weight is generated;
An instruction execution analysis step for analyzing instruction execution and stall based on program operation information in a section where no weight is acquired, obtained from the wait generation section extraction unit, and SoC specification information;
A bus access analyzing step of analyzing a cache hit and a bus access for a data access request based on the program operation information acquired from the wait generation interval extracting unit and the SoC specification information; an instruction execution analysis result from the instruction execution analyzing unit; An event that acquires a bus access analysis result from the bus access analysis unit, acquires event occurrence information from the instruction execution analysis unit and the bus access analysis unit, and estimates an operation time between events based on the analysis result and stall cycle information An interim estimation step;
A wait generation time estimation step for estimating a time at which a wait occurs based on the operation time between events acquired from the inter-event estimation unit and the program operation information of the interval in which the wait acquired from the wait generation interval extraction unit is generated. A recording medium on which a program for estimating program performance is recorded.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008165558A JP2010009175A (en) | 2008-06-25 | 2008-06-25 | Program performance estimation device |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008165558A JP2010009175A (en) | 2008-06-25 | 2008-06-25 | Program performance estimation device |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2010009175A true JP2010009175A (en) | 2010-01-14 |
Family
ID=41589623
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2008165558A Pending JP2010009175A (en) | 2008-06-25 | 2008-06-25 | Program performance estimation device |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2010009175A (en) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2018163387A1 (en) * | 2017-03-09 | 2018-09-13 | 三菱電機株式会社 | Analysis device, analysis method, and analysis program |
-
2008
- 2008-06-25 JP JP2008165558A patent/JP2010009175A/en active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2018163387A1 (en) * | 2017-03-09 | 2018-09-13 | 三菱電機株式会社 | Analysis device, analysis method, and analysis program |
JPWO2018163387A1 (en) * | 2017-03-09 | 2019-03-14 | 三菱電機株式会社 | Analysis apparatus, analysis method, and analysis program |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5119994B2 (en) | Performance monitoring program, performance monitoring method, performance monitoring device | |
JP5686904B2 (en) | Operating information prediction computer, operating information prediction method and program | |
JP2006004211A (en) | Performance analysis method using hardware monitor | |
JP4996624B2 (en) | Detection apparatus, system, program, and detection method | |
US20170212844A1 (en) | Measuring address translation latency | |
US7519510B2 (en) | Derivative performance counter mechanism | |
KR102161192B1 (en) | Method and apparatus for data mining from core trace | |
JP6790913B2 (en) | Information processing equipment, information processing methods and programs | |
CA2800271A1 (en) | System test method | |
JP2017167930A (en) | Information processing device, power measurement method and power measurement program | |
JP4940996B2 (en) | Profiling device and profiling program | |
US9959191B2 (en) | Dynamic library profiling method and dynamic library profiling system | |
US20080010555A1 (en) | Method and Apparatus for Measuring the Cost of a Pipeline Event and for Displaying Images Which Permit the Visualization orf Said Cost | |
JP6544054B2 (en) | INFORMATION PROCESSING APPARATUS, EXECUTION INFORMATION RECORDING PROGRAM, AND EXECUTION INFORMATION RECORDING METHOD | |
US8868886B2 (en) | Task switch immunized performance monitoring | |
JP2010009175A (en) | Program performance estimation device | |
US20110107072A1 (en) | Method for self-diagnosing system management interrupt handler | |
CN107423206B (en) | Method and device for measuring system management interruption time | |
JP2009217385A (en) | Processor and multiprocessor | |
JP2005215816A (en) | Performance profiling method using hardware monitor | |
WO2012056569A1 (en) | Performance measurement method, performance measurement device, and performance measurement program | |
KR102210544B1 (en) | Method of analyzing a fault of an electronic system | |
JP6213309B2 (en) | Information processing apparatus, performance information collecting program for information processing apparatus, and performance information collecting method for information processing apparatus | |
US20190146892A1 (en) | Computer, bottleneck identification method, and non-transitory computer readable storage medium | |
JP2022133094A (en) | Anomaly factor determination method and anomaly factor determination program |