JP6834457B2 - エミュレーション性能算出装置、エミュレーション性能算出システム、エミュレーション性能算出方法、および、エミュレーション性能算出プログラム - Google Patents
エミュレーション性能算出装置、エミュレーション性能算出システム、エミュレーション性能算出方法、および、エミュレーション性能算出プログラム Download PDFInfo
- Publication number
- JP6834457B2 JP6834457B2 JP2016246188A JP2016246188A JP6834457B2 JP 6834457 B2 JP6834457 B2 JP 6834457B2 JP 2016246188 A JP2016246188 A JP 2016246188A JP 2016246188 A JP2016246188 A JP 2016246188A JP 6834457 B2 JP6834457 B2 JP 6834457B2
- Authority
- JP
- Japan
- Prior art keywords
- performance
- emulation
- instruction
- execution
- program
- 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.)
- Active
Links
Images
Landscapes
- Debugging And Monitoring (AREA)
Description
a)エミュレータは、初回実行時、実行開始アドレス(addr_A)から数個の命令( A )を読み出す。
b)エミュレータは、動的コンパイルを行ってTC(TC_A)を作成し、TC管理テーブルに登録する。ここで、TC(Translated Code)は、動的コンパイルで変換されたコードである。
c)エミュレータは、アドレスを、A → B → C …と順次ずらしながら命令を取り出して、TCを作成しながら、順次実行する。
d)過去に実行済みで、既にTCが作成・登録されていれば、エミュレータは、当該TCを実行する。
<概要>
本実施の形態にかかるエミュレーション性能算出装置100は、性能算出の対象のソフトウェアを「元の」(本来の)コンピュータである自装置上で実際に動作させ、分岐命令のトレースを採取する。ここで、「元の」コンピュータとは、性能算出の対象のソフトウェアの命令を、エミュレーションを必要とせず直接実行するコンピュータを意味する。
発生頻度=動的コンパイル発生回数/実行された命令数・・・・(2)
実行された命令数(ステップ数とかダイナミックステップ数と呼ばれることも有る)や、平均命令長は計測または算出が可能であるため、連続実行区間がわかれば、動的コンパイルの発生回数や頻度も算出可能である。
動的コンパイル発生回数×動的コンパイル処理時間・・・・(3)
実行時間見積り=実行命令数×変換コード実行時間+
実行命令数×動的コンパイル発生頻度×動的コンパイル処理時間・・・・(4)
<構成>
図3は、第1の実施の形態にかかるエミュレーション性能算出システム500の構成を示すブロック図である。エミュレーション性能算出システム500は、ネットワーク400で接続されたエミュレーション装置300と、エミュレーション性能算出装置100を包含する。
図5は、CPU/FW10の動作フローチャートである。プログラムコード13の実行開始とともに、CPU/FW10が、コードの各命令を逐次実行し、実行命令数カウンタ12が実行した命令数を計上する。ここで、実行した命令が分岐命令であり、かつ、当該分岐命令とは連続しないアドレスへ処理が分岐する場合(分岐GO)、分岐命令トレース採取・出力部11は、当該分岐命令のアドレス、及び、分岐先のアドレスを分岐命令トレース格納部20に格納する。
性能値は、実行時間以外に、CPU使用時間など、実行/処理した命令数に比例する他の値であっても良い。
第1の効果は、本実施の形態にかかるエミュレーション性能算出装置100は、動的変換方式のエミュレーション動作時の実行性能を、対象プログラムをエミュレーションで実行する前に見積もることが出来ることである。それが可能な理由は、連続実行区間抽出部30が、プログラムの命令中、1度でも実行されたことが有る命令が格納されている連続アドレスの区間を取得するからである。これに基づき、性能値算出部50が、動的変換の発生回数を得て、動的変換の性能を計算する。
図8は、第2の実施の形態にかかるエミュレーション性能算出装置100の構成を示すブロック図である。なお、図中の矢印は、データ参照・更新例を示すが、データ参照・更新は、これらに限られない。
本実施の形態のエミュレーション性能算出装置100は、分岐命令実行時以外にコンテキストスイッチ発生時にもトレース情報を採取する。
本実施の形態のエミュレーション性能算出装置100において、性能値算出部50は、実行命令数カウンタ12の値が所定数、例えば10万ステップ増加するたびに、図7に示した処理フローで性能計算を実行する。これを実現する為、実行命令数カウンタ12は、値が所定数増加するたびに、割込みを発生して性能値算出部50に通知しても良い。
図9は、第5の実施の形態にかかるエミュレーション性能算出装置100の構成を示すブロック図である。なお、図中の矢印は、データ参照・更新例を示すが、データ参照・更新は、これらに限られない。
エミュレーション性能算出装置100は、動的コンパイルの発生頻度が判明したプログラムコード13と類似し、同程度に動的コンパイルが発生すると考えられるプログラムコード13について、簡単にエミュレーション動作時の概算性能を求めることが出来る。
図10は、第6の実施の形態にかかるエミュレーション性能算出装置100の構成を示すブロック図である。本実施の形態にかかるエミュレーション性能算出装置100は、入力されたプログラムを実行して、実行した命令数であるステップ数をカウントするCPU/FW10を備える。エミュレーション性能算出装置100は、実行された命令のトレース情報に基づいて、プログラムの命令中、1度でも実行されたことが有る命令が格納されている連続アドレスの区間を取得する連続実行区間抽出部30も備える。
11 分岐命令トレース採取・出力部
12 実行命令数カウンタ
13 プログラムコード
20 分岐命令トレース格納部
30 連続実行区間抽出部
40 連続実行区間格納部
50 性能値算出部
51 カウンタ読み出し部
52 連続実行区間合計サイズ算出部
53 サンプル性能読み出し部
54 性能値計算・出力部
60 サンプル性能格納部
70 プロセススイッチ部
80 プロセス
81 命令数カウンタ退避部
90 過去データ格納部
100 エミュレーション性能算出装置
300 エミュレーション装置
301 サンプルプログラム
302 エミュレーション部
303 計測部
400 ネットワーク
500 エミュレーション性能算出システム
Claims (9)
- 入力されたプログラムを実行して、実行した命令数であるステップ数をカウントするプロセッサと、
実行された命令のトレース情報に基づいて、前記プログラムの命令中、1度でも実行されたことが有る命令が格納されている連続アドレスの区間を取得する連続実行区間抽出手段と、
1)前記ステップ数と、与えられた命令ごとのエミュレーション性能に基づいて実行性能を見積もり、2)前記連続アドレスの区間のサイズを得て、当該サイズを与えられた平均命令長で除算することにより、前記連続アドレスの区間内の命令数を得て、当該命令数と、与えられた命令ごとの変換性能に基づいて変換性能を見積もり、3)両者から、前記プログラムを動的変換方式でエミュレーションした時の実行性能見積りを算出する性能算出手段と、を備えるエミュレーション性能算出装置。 - 分岐命令トレース格納手段を、さらに備え、
前記プロセッサは、分岐した分岐命令のアドレスと分岐先のアドレスを含む前記トレース情報を前記分岐命令トレース格納手段に出力し、
前記連続実行区間抽出手段は、前記分岐命令トレース格納手段に格納されている前記トレース情報の履歴に基づいて分岐と分岐の間の連続実行区間を取得し、前記連続実行区間の和集合を、前記アドレスの区間として出力する、請求項1のエミュレーション性能算出装置。 - 前記性能算出手段は、前記プログラムの実行終了後、または、前記ステップ数が所定数増加するたびに前記実行性能見積りを算出する、請求項1乃至請求項2の何れか1項のエミュレーション性能算出装置。
- 複数のプロセスを切替えながら並行して実行し、前記プログラムを前記プロセス上で実行するプロセススイッチ手段をさらに備え、
前記プロセッサは、ステップ数をカウントするカウンタを備え、前記トレース情報を前記プロセスに関連付けられた前記分岐命令トレース格納手段に出力し、
前記プロセススイッチ手段は、前記プロセスごとに前記カウンタを退避回復し、
前記連続実行区間抽出手段は、実行中プロセスに関連付けられている前記分岐命令トレース格納手段に格納されている前記トレース情報の履歴に基づいて分岐と分岐の間の連続実行区間を取得する、請求項2のエミュレーション性能算出装置。 - 過去データ格納手段をさらに備え、
前記性能算出手段は、前記ステップ数と前記実行性能見積りを前記過去データ格納手段に格納し、新たに入力された前記プログラムの前記ステップ数と前記過去データ格納手段に格納されている前記ステップ数と前記実行性能見積りから、新たに入力された前記プログラムの前記実行性能見積りを算出する、請求項1乃至請求項2の何れか1項のエミュレーション性能算出装置。 - サンプルプログラムを、前記動的変換方式でエミュレーションするエミュレーション手段と、前記命令ごとのエミュレーション性能、および、前記命令ごとの変換性能を計測する計測手段を備えた、エミュレーション装置と、
請求項1乃至請求項2の何れか1項のエミュレーション性能算出装置と、を包含するエミュレーション性能算出システム。 - コンピュータが、
入力されたプログラムを実行して、実行した命令数であるステップ数をカウントし、
実行された命令のトレース情報に基づいて、前記プログラムの命令中、1度でも実行されたことが有る命令が格納されている連続アドレスの区間を取得し、
1)前記ステップ数と、与えられた命令ごとのエミュレーション性能に基づいて実行性能を見積もり、2)前記連続アドレスの区間のサイズを得て、当該サイズを与えられた平均命令長で除算することにより、前記連続アドレスの区間内の命令数を得て、当該命令数と、与えられた命令ごとの変換性能に基づいて変換性能を見積もり、3)両者から、前記プログラムを動的変換方式でエミュレーションした時の実行性能見積りを算出する、エミュレーション性能算出方法。 - コンピュータが、
分岐した分岐命令のアドレスと分岐先のアドレスを含む前記トレース情報を分岐命令トレース格納手段に出力し、
前記分岐命令トレース格納手段に格納されている前記トレース情報の履歴に基づいて分岐と分岐の間の連続実行区間を取得し、前記連続実行区間の和集合を、前記アドレスの区間として出力する、請求項7のエミュレーション性能算出方法。 - 実行された命令のトレース情報に基づいて、実行されたプログラムの命令中、1度でも実行されたことが有る命令が格納されている連続アドレスの区間を取得する連続実行区間抽出処理と、
1)前記プログラムを実行して得られたステップ数と、与えられた命令ごとのエミュレーション性能に基づいて実行性能を見積もり、2)前記連続アドレスの区間のサイズを得て、当該サイズを与えられた平均命令長で除算することにより、前記連続アドレスの区間内の命令数を得て、当該命令数と、与えられた命令ごとの変換性能に基づいて変換性能を見積もり、3)両者から、前記プログラムを動的変換方式でエミュレーションした時の実行性能見積りを算出する性能算出処理と、をコンピュータに実行させるエミュレーション性能算出プログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2016246188A JP6834457B2 (ja) | 2016-12-20 | 2016-12-20 | エミュレーション性能算出装置、エミュレーション性能算出システム、エミュレーション性能算出方法、および、エミュレーション性能算出プログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2016246188A JP6834457B2 (ja) | 2016-12-20 | 2016-12-20 | エミュレーション性能算出装置、エミュレーション性能算出システム、エミュレーション性能算出方法、および、エミュレーション性能算出プログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2018101233A JP2018101233A (ja) | 2018-06-28 |
JP6834457B2 true JP6834457B2 (ja) | 2021-02-24 |
Family
ID=62714328
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2016246188A Active JP6834457B2 (ja) | 2016-12-20 | 2016-12-20 | エミュレーション性能算出装置、エミュレーション性能算出システム、エミュレーション性能算出方法、および、エミュレーション性能算出プログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP6834457B2 (ja) |
-
2016
- 2016-12-20 JP JP2016246188A patent/JP6834457B2/ja active Active
Also Published As
Publication number | Publication date |
---|---|
JP2018101233A (ja) | 2018-06-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6079032A (en) | Performance analysis of computer systems | |
KR20110070468A (ko) | 인스트루먼테이션 실행 장치 및 방법 | |
KR100921514B1 (ko) | 성능 예측 기능을 제공하는 소프트웨어 개발 장치 및 방법 | |
JP5029245B2 (ja) | プロファイリング方法及びプログラム | |
US9336055B2 (en) | Apparatus and method for predicting processing performance | |
JP5353227B2 (ja) | 性能測定プログラム及び性能測定方法並びに性能測定機能を有する情報処理装置。 | |
JP2006227999A (ja) | ボトルネック検出システム、測定対象サーバ、ボトルネック検出方法およびプログラム | |
US10564992B2 (en) | Simulation apparatus and storage medium | |
US20120331448A1 (en) | Coverage measurement apparatus and method and medium | |
US10089088B2 (en) | Computer that performs compiling, compiler program, and link program | |
US10409636B2 (en) | Apparatus and method to correct an execution time of a program executed by a virtual machine | |
JP2014106972A (ja) | 動的ライブラリのプロファイリング方法 | |
JP6834457B2 (ja) | エミュレーション性能算出装置、エミュレーション性能算出システム、エミュレーション性能算出方法、および、エミュレーション性能算出プログラム | |
JP6544054B2 (ja) | 情報処理装置、実行情報記録プログラムおよび実行情報記録方法 | |
CN107769987B (zh) | 一种报文转发性能评估方法和装置 | |
Asheim et al. | Impact of microarchitectural state reuse on serverless functions | |
JP2008146426A (ja) | 模擬ソースプログラム生成プログラム及び装置、並びに情報処理方法 | |
US7971190B2 (en) | Machine learning performance analysis tool | |
JP2008090699A (ja) | トレースロギング方法、装置及びプログラム | |
JP2004030514A (ja) | 性能解析方法 | |
JP6503774B2 (ja) | プログラム実行解析方法、情報処理装置及びプログラム実行解析プログラム | |
US20190384687A1 (en) | Information processing device, information processing method, and computer readable medium | |
EP3547141B1 (en) | Information processing apparatus, information processing method, and information processing program | |
RU2390821C1 (ru) | Способ динамической инструментации | |
US20230333987A1 (en) | Computer-readable recording medium, information processing method, and information processing device |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20191115 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20200904 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20200915 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20201111 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20201112 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20210105 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20210118 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6834457 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |