JP6187264B2 - 計算方法、計算プログラム、および計算装置 - Google Patents
計算方法、計算プログラム、および計算装置 Download PDFInfo
- Publication number
- JP6187264B2 JP6187264B2 JP2014001176A JP2014001176A JP6187264B2 JP 6187264 B2 JP6187264 B2 JP 6187264B2 JP 2014001176 A JP2014001176 A JP 2014001176A JP 2014001176 A JP2014001176 A JP 2014001176A JP 6187264 B2 JP6187264 B2 JP 6187264B2
- Authority
- JP
- Japan
- Prior art keywords
- instruction
- combination
- specific code
- code
- performance value
- 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.)
- Expired - Fee Related
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
- G06F11/3409—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
- G06F11/3419—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment by assessing time
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/3004—Arrangements for executing specific machine instructions to perform operations on memory
- G06F9/30043—LOAD or STORE instructions; Clear instruction
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
- G06F11/3457—Performance evaluation by simulation
- G06F11/3461—Trace driven simulation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2201/00—Indexing scheme relating to error detection, to error correction, and to monitoring
- G06F2201/885—Monitoring specific for caches
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Software Systems (AREA)
- Debugging And Monitoring (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Description
図2は、計算装置100のハードウェア構成例を示すブロック図である。図2において、計算装置100は、ホストCPU201と、ROM(Read Only Memory)202と、RAM203と、ディスクドライブ204と、ディスク205と、を有する。計算装置100は、I/F(Inter Face)206と、入力装置207と、出力装置208と、を有する。また、各部はバス200によってそれぞれ接続される。
図3は、計算装置100の機能的構成例を示すブロック図である。計算装置100は、コード変換部301と、シミュレーション実行部302と、シミュレーション情報収集部303と、を含む。また、コード変換部301、シミュレーション実行部302およびシミュレーション情報収集部303は、制御部となる機能である。各部の処理は、例えば、ホストCPU201がアクセス可能なROM202やディスク205などの記憶装置に記憶された計算ターゲットプログラムpgrにコーディングされる。そして、ホストCPU201が記憶装置から計算ターゲットプログラムpgrを読み出して、計算ターゲットプログラムpgrにコーディングされた処理を実行する。これにより、各部の処理が実現される。また、各部の処理結果は、例えば、RAM203、ディスク205などの記憶装置に記憶される。
図13、図14は、計算装置100による計算処理手順例を示すフローチャートである。計算装置100は、ターゲットプログラムpgrの実行が終了したか否かを判断する(ステップS1301)。ターゲットプログラムpgrの実行が終了していないと判断された場合(ステップS1301:No)、計算装置100は、対象ブロックが変化したか否かを判断する(ステップS1302)。対象ブロックが変化していないと判断された場合(ステップS1302:No)、計算装置100は、ステップS1301へ戻る。
前記複数回のアクセスを前記プロセッサが実行した場合の前記プロセッサがアクセス可能なキャッシュメモリの動作結果の複数の組み合わせの各々について、前記動作結果が前記組み合わせとなった場合における前記特定コード内の各命令の性能値を取得し、
前記特定コードが性能値の計算対象となった場合に、
前記プロセッサが前記プログラムを実行した場合の前記キャッシュメモリの動作シミュレーションの実行結果によって、前記複数回のアクセスを前記プロセッサが実行した場合の前記キャッシュメモリの動作結果の組み合わせを取得し、
取得した前記組み合わせが前記複数の組み合わせに含まれる場合、取得した前記各命令の性能値のうち、取得した前記組み合わせに対応する前記各命令の性能値によって、前記プロセッサが前記特定コードを実行した場合の前記特定コードの性能値を計算する、
処理を実行することを特徴とする計算方法。
取得した前記組み合わせが前記複数の組み合わせに含まれない場合、前記動作結果が取得した前記組み合わせとなった場合における前記特定コード内の各命令の性能値を、前記プロセッサが前記特定コードを実行した場合の前記プロセッサの動作シミュレーションを実行することによって導出し、導出した前記各命令の性能値によって前記プロセッサが前記特定コードを実行した場合の前記特定コードの性能値を計算することを特徴とする付記1に記載の計算方法。
前記コンピュータが、
前記特定コードの性能値を計算する処理において最初に計算対象となった場合、取得した前記各命令の性能値のうち、前記特定の組み合わせに対応する前記各命令の性能値によって前記プロセッサが前記特定コードを実行した場合の前記特定コードの性能値を計算可能な計算用コードを生成する処理を実行し、
前記特定コードの性能値を計算する処理では、生成した前記計算用コードを実行し、前記計算用コードによって計算された前記特定コードの性能値を、取得した前記各命令の性能値のうち、取得した前記組み合わせに対応する前記各命令の性能値によって補正することを特徴とする付記1〜5のいずれか一つに記載の計算方法。
前記コンピュータが、
前記特定コードが最初に性能値の計算対象となった場合、取得した前記各命令の性能値のうち、前記特定の組み合わせに対応する前記各命令の性能値によって前記プロセッサが前記特定コードを実行した場合の前記特定コードの性能値を計算可能な計算用コードを生成する処理を実行し、
取得した前記組み合わせが前記複数の組み合わせに含まれない場合、前記特定コードの性能値を計算する処理では、生成した前記計算用コードを実行し、前記計算用コードによって計算された前記特定コードの性能値を、導出した前記各命令の性能値によって補正することを特徴とする付記2に記載の計算方法。
前記複数回のアクセスを前記プロセッサが実行した場合の前記プロセッサがアクセス可能なキャッシュメモリの動作結果の複数の組み合わせの各々について、前記動作結果が前記組み合わせとなった場合における前記特定コード内の各命令の性能値を取得し、
前記特定コードが性能値の計算対象となった場合に、
前記プロセッサが前記プログラムを実行した場合の前記キャッシュメモリの動作シミュレーションの実行結果によって、前記複数回のアクセスを前記プロセッサが実行した場合の前記キャッシュメモリの動作結果の組み合わせを取得し、
取得した前記組み合わせが前記複数の組み合わせに含まれる場合、取得した前記各命令の性能値のうち、取得した前記組み合わせに対応する前記各命令の性能値によって、前記プロセッサが前記特定コードを実行した場合の前記特定コードの性能値を計算する、
処理を実行させることを特徴とする計算プログラム。
前記複数回のアクセスを前記第1プロセッサが実行した場合の前記第1プロセッサがアクセス可能なキャッシュメモリの動作結果の複数の組み合わせの各々について、前記動作結果が前記組み合わせとなった場合における前記特定コード内の各命令の性能値を取得し、
前記特定コードが性能値の計算対象となった場合に、
前記第1プロセッサが前記プログラムを実行した場合の前記キャッシュメモリの動作シミュレーションの実行結果によって、前記複数回のアクセスを前記第1プロセッサが実行した場合の前記キャッシュメモリの動作結果の組み合わせを取得し、
取得した前記組み合わせが前記複数の組み合わせに含まれる場合、取得した前記各命令の性能値のうち、取得した前記組み合わせに対応する前記各命令の性能値によって、前記第1プロセッサが前記特定コードを実行した場合の前記特定コードの性能値を計算する、
処理を実行する第2プロセッサを有することを特徴とする計算装置。
前記複数回のアクセスを前記プロセッサが実行した場合の前記プロセッサがアクセス可能なキャッシュメモリの動作結果の複数の組み合わせの各々について、前記動作結果が前記組み合わせとなった場合における前記特定コード内の各命令の性能値を取得し、
前記特定コードが性能値の計算対象となった場合に、
前記プロセッサが前記プログラムを実行した場合の前記キャッシュメモリの動作シミュレーションの実行結果によって、前記複数回のアクセスを前記プロセッサが実行した場合の前記キャッシュメモリの動作結果の組み合わせを取得し、
取得した前記組み合わせが前記複数の組み合わせに含まれる場合、取得した前記各命令の性能値のうち、取得した前記組み合わせに対応する前記各命令の性能値によって、前記プロセッサが前記特定コードを実行した場合の前記特定コードの性能値を計算する、
処理を実行させる計算プログラムを記録したことを特徴とする記録媒体。
101 ターゲットCPU
102 キャッシュメモリ
103 テーブル
104 組み合わせ
201 ホストCPU
301 コード変換部
302 シミュレーション実行部
303 シミュレーション情報収集部
311 コード分割部
312 判断部
313 予測シミュレーション実行部
314 コード生成部
321 コード実行部
322 補正部
330 タイミング情報
331 予測情報
333 シミュレーション情報
pgr ターゲットプログラム
HC,HC1 ホストコード
FC,FC1 機能コード
TC,TC1 タイミングコード
Claims (7)
- プロセッサに記憶領域への複数回のアクセスを指示する特定コードを有するプログラムを前記プロセッサが実行した場合の前記プログラムの性能値を計算するコンピュータが、
前記複数回のアクセスを前記プロセッサが実行した場合の前記プロセッサがアクセス可能なキャッシュメモリの動作結果の複数の組み合わせの各々について、前記動作結果が前記組み合わせとなった場合における前記特定コード内の各命令の性能値を取得し、
前記特定コードが性能値の計算対象となった場合に、
前記プロセッサが前記プログラムを実行した場合の前記キャッシュメモリの動作シミュレーションの実行結果によって、前記複数回のアクセスを前記プロセッサが実行した場合の前記キャッシュメモリの動作結果の組み合わせを取得し、
取得した前記組み合わせが前記複数の組み合わせに含まれる場合、取得した前記各命令の性能値のうち、取得した前記組み合わせに対応する前記各命令の性能値によって、前記プロセッサが前記特定コードを実行した場合の前記特定コードの性能値を計算する、
処理を実行することを特徴とする計算方法。 - 前記コンピュータが、
取得した前記組み合わせが前記複数の組み合わせに含まれない場合、前記動作結果が取得した前記組み合わせとなった場合における前記特定コード内の各命令の性能値を、前記プロセッサが前記特定コードを実行した場合の前記プロセッサの動作シミュレーションを実行することによって導出し、導出した前記各命令の性能値によって前記プロセッサが前記特定コードを実行した場合の前記特定コードの性能値を計算することを特徴とする請求項1に記載の計算方法。 - 前記複数の組み合わせは、前記複数回のアクセスについて前記キャッシュメモリの動作結果がすべてキャッシュミスヒットとなる組み合わせと異なる組み合わせであることを特徴とする請求項1または2に記載の計算方法。
- 前記複数の組み合わせは、前記複数回のアクセスについて前記キャッシュメモリの動作結果がすべてキャッシュヒットとなる組み合わせと、前記複数回のアクセスのうちの一つのアクセスについて前記キャッシュメモリの動作結果がキャッシュミスヒットとなる組み合わせと、であることを特徴とする請求項1〜3のいずれか一つに記載の計算方法。
- 前記各命令の性能値を取得する処理は、前記特定コードの性能値を計算する処理において最初に計算対象となった場合、前記複数の組み合わせの各々について、前記動作結果が前記組み合わせとなった場合における前記特定コード内の各命令の性能値を、前記プロセッサが前記特定コードを実行した場合の前記プロセッサの動作シミュレーションを実行することによって、取得することを特徴とする請求項1〜4のいずれか一つに記載の計算方法。
- プロセッサに記憶領域への複数回のアクセスを指示する特定コードを有するプログラムを前記プロセッサが実行した場合の前記プログラムの性能値を計算するコンピュータに、
前記複数回のアクセスを前記プロセッサが実行した場合の前記プロセッサがアクセス可能なキャッシュメモリの動作結果の複数の組み合わせの各々について、前記動作結果が前記組み合わせとなった場合における前記特定コード内の各命令の性能値を取得し、
前記特定コードが性能値の計算対象となった場合に、
前記プロセッサが前記プログラムを実行した場合の前記キャッシュメモリの動作シミュレーションの実行結果によって、前記複数回のアクセスを前記プロセッサが実行した場合の前記キャッシュメモリの動作結果の組み合わせを取得し、
取得した前記組み合わせが前記複数の組み合わせに含まれる場合、取得した前記各命令の性能値のうち、取得した前記組み合わせに対応する前記各命令の性能値によって、前記プロセッサが前記特定コードを実行した場合の前記特定コードの性能値を計算する、
処理を実行させることを特徴とする計算プログラム。 - 第1プロセッサに記憶領域への複数回のアクセスを指示する特定コードを有するプログラムを前記第1プロセッサが実行した場合の前記プログラムの性能値を計算する計算装置であって、
前記複数回のアクセスを前記第1プロセッサが実行した場合の前記第1プロセッサがアクセス可能なキャッシュメモリの動作結果の複数の組み合わせの各々について、前記動作結果が前記組み合わせとなった場合における前記特定コード内の各命令の性能値を取得し、
前記特定コードが性能値の計算対象となった場合に、
前記第1プロセッサが前記プログラムを実行した場合の前記キャッシュメモリの動作シミュレーションの実行結果によって、前記複数回のアクセスを前記第1プロセッサが実行した場合の前記キャッシュメモリの動作結果の組み合わせを取得し、
取得した前記組み合わせが前記複数の組み合わせに含まれる場合、取得した前記各命令の性能値のうち、取得した前記組み合わせに対応する前記各命令の性能値によって、前記第1プロセッサが前記特定コードを実行した場合の前記特定コードの性能値を計算する、
処理を実行する第2プロセッサを有することを特徴とする計算装置。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2014001176A JP6187264B2 (ja) | 2014-01-07 | 2014-01-07 | 計算方法、計算プログラム、および計算装置 |
US14/534,908 US9880841B2 (en) | 2014-01-07 | 2014-11-06 | Computation method for computing performance value when processor executes code, computation apparatus for computing performance value when processor executes code, and computer readable storage medium storing computation program for computing performance value when processor executes code |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2014001176A JP6187264B2 (ja) | 2014-01-07 | 2014-01-07 | 計算方法、計算プログラム、および計算装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2015130067A JP2015130067A (ja) | 2015-07-16 |
JP6187264B2 true JP6187264B2 (ja) | 2017-08-30 |
Family
ID=53495285
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2014001176A Expired - Fee Related JP6187264B2 (ja) | 2014-01-07 | 2014-01-07 | 計算方法、計算プログラム、および計算装置 |
Country Status (2)
Country | Link |
---|---|
US (1) | US9880841B2 (ja) |
JP (1) | JP6187264B2 (ja) |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0721061A (ja) | 1993-07-05 | 1995-01-24 | Hitachi Ltd | プログラム性能解析方法 |
US6163840A (en) * | 1997-11-26 | 2000-12-19 | Compaq Computer Corporation | Method and apparatus for sampling multiple potentially concurrent instructions in a processor pipeline |
JP3214459B2 (ja) | 1998-10-15 | 2001-10-02 | 日本電気株式会社 | シミュレーション方法及び装置 |
JP2000222245A (ja) * | 1999-01-28 | 2000-08-11 | Toshiba Corp | プログラム実行時間評価装置、ソースプログラム実行時間評価装置、プログラム実行時間評価方法、及びソースプログラム実行時間評価方法 |
JP2001249829A (ja) | 2000-03-06 | 2001-09-14 | Hitachi Ltd | システムシミュレータ |
US20040193395A1 (en) * | 2003-03-26 | 2004-09-30 | Dominic Paulraj | Program analyzer for a cycle accurate simulator |
US7546598B2 (en) * | 2003-09-03 | 2009-06-09 | Sap Aktiengesellschaft | Measuring software system performance using benchmarks |
US8527956B2 (en) * | 2008-12-23 | 2013-09-03 | International Business Machines Corporation | Workload performance projection via surrogate program analysis for future information handling systems |
JP5817324B2 (ja) * | 2011-08-18 | 2015-11-18 | 富士通株式会社 | 補正装置、補正方法、および補正プログラム |
JP5961971B2 (ja) * | 2011-10-12 | 2016-08-03 | 富士通株式会社 | シミュレーション装置,方法,およびプログラム |
US9015006B2 (en) * | 2012-01-13 | 2015-04-21 | International Business Machines Corporation | Automated enablement of performance data collection |
-
2014
- 2014-01-07 JP JP2014001176A patent/JP6187264B2/ja not_active Expired - Fee Related
- 2014-11-06 US US14/534,908 patent/US9880841B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
US9880841B2 (en) | 2018-01-30 |
JP2015130067A (ja) | 2015-07-16 |
US20150193352A1 (en) | 2015-07-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9207916B2 (en) | Simulation apparatus, method and medium | |
EP1728155A2 (en) | Method and system for performing link-time code optimization without additional code analysis | |
US9465595B2 (en) | Computing apparatus, computing method, and computing program | |
KR102013582B1 (ko) | 혼합 모드 프로그램의 소스 코드 오류 위치 검출 장치 및 방법 | |
US10564992B2 (en) | Simulation apparatus and storage medium | |
Wang et al. | Fast and accurate cache modeling in source-level simulation of embedded software | |
US10402510B2 (en) | Calculating device, calculation method, and calculation program | |
US8949681B2 (en) | Correction apparatus, correction method, and computer product | |
US20160196156A1 (en) | Simulation apparatus, simulation method, and computer product | |
US10353708B2 (en) | Strided loading of non-sequential memory locations by skipping memory locations between consecutive loads | |
US10102099B2 (en) | Performance information generating method, information processing apparatus and computer-readable storage medium storing performance information generation program | |
KR20160098794A (ko) | 디바이스 프로그램 구조 모델링 기반 골격코드 생성 장치 및 방법 | |
US20160011889A1 (en) | Simulation method and storage medium | |
JP6187264B2 (ja) | 計算方法、計算プログラム、および計算装置 | |
US9383981B2 (en) | Method and apparatus of instruction scheduling using software pipelining | |
Mallya et al. | Flexible timing simulation of RISC-V processors with sniper | |
US20170115973A1 (en) | Operating method of semiconductor device and semiconductor system | |
JP2007080049A (ja) | 組み込み用プログラム生成方法、組み込み用プログラム開発システム、及び情報テーブル部 | |
US9606779B2 (en) | Data processing system and data simulation method in the system | |
CN101819608A (zh) | 一种微处理器指令级随机验证中加速取指的装置和方法 | |
JP5021584B2 (ja) | マイコンシミュレータ、そのシミュレーション方法、プログラム、及びコンピュータ読み取り可能な媒体 | |
US10671780B2 (en) | Information processing device that executes simulation and a simulation method | |
Kaufmann et al. | Superblock compilation and other optimization techniques for a Java-based DBT machine emulator | |
JP2019185486A (ja) | コード変換装置、コード変換方法、及びコード変換プログラム | |
WO2011114478A1 (ja) | 生成方法、スケジューリング方法、生成プログラム、スケジューリングプログラム、生成装置、および情報処理装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20160905 |
|
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: 20170704 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20170630 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20170717 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6187264 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
LAPS | Cancellation because of no payment of annual fees |