JP5961971B2 - シミュレーション装置,方法,およびプログラム - Google Patents
シミュレーション装置,方法,およびプログラム Download PDFInfo
- Publication number
- JP5961971B2 JP5961971B2 JP2011224714A JP2011224714A JP5961971B2 JP 5961971 B2 JP5961971 B2 JP 5961971B2 JP 2011224714 A JP2011224714 A JP 2011224714A JP 2011224714 A JP2011224714 A JP 2011224714A JP 5961971 B2 JP5961971 B2 JP 5961971B2
- Authority
- JP
- Japan
- Prior art keywords
- instruction
- execution
- simulation
- code
- time
- 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 OR CALCULATING; 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/52—Binary to binary
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
Description
「命令キャッシュ:予測=ヒット,
データキャッシュ:予測=ヒット,
TLB検索:予測=ヒット,
分岐予測:予測=ヒット,
コール/リターン:予測=ヒット,…」
が定められる。
(1) シミュレーション装置1のコード変換部11のブロック分割部111は,ターゲットプログラム2のターゲットコードを得て記憶部(図1に図示しない)に保持し,保持したターゲットコードを任意のブロックに分割する(図2参照)。
(1) シミュレーション実行部12のコード実行部121は,コード変換部11が生成したホストコードを用いて,ターゲットプログラム2の性能シミュレーションを行う。
「ld [r1],r2 :[r1]→r2;
mult r3,r4,r5 :r3*r4→r5;
add r2,r5,r6 :r2+r5→r6」
図7(A)は,予測結果が「キャッシュヒット」の場合の命令実行タイミングのチャート例を示す図である。この予測ケースにおいて,3番目に実行されるadd命令に,2サイクルストールが生じている。
「ld [r1],r2 :[r1]→r2;
ld [r3],r4 :[r3]→r4;
mult r5,r6,r7 :r5*r6→r7;
add r2,r4,r2 :r2+r4→r2;
add r2,r7,r2 :r2+r7→r2」
図8(A)は,2つのキャッシュ処理での予測結果が「キャッシュヒット」の場合の命令実行タイミングのチャート例を示す図である。この予測ケースでは,2つのld命令が,2サイクル分(通常の1サイクル+付加した1サイクル)をあけて実行されるものとする。
性能計算命令2:対象の命令の性能値を加算する,
性能計算命令3:結果をメモリに書き込む」
図13は,ターゲットプログラムの命令と変換後のホストプログラムのホスト命令数との関係を示す図である。
性能計算命令2:命令i2の前の命令i0,i1の記録された性能値(実行時間)を加算する,
性能計算命令3:性能値を更新する,
性能計算命令4:命令i2に対するヘルパー関数を呼び出し,命令i2の実行時間を性能値に加算する。」
図14は,第2の実施例におけるシミュレーション装置1のコード変換部11の概要処理フロー図である。
11 コード変換部
111 ブロック分割部
113 予測シミュレーション実行部
115 コード生成部
12 シミュレーション実行部
121 コード実行部
123 補正部
13 シミュレーション情報収集部
15 電力シミュレーション情報生成部
2 ターゲットプログラム
3 タイミング情報
4 予測情報
5 シミュレーション情報
6 電力情報
7 電力シミュレーション情報
Claims (5)
- パイプライン処理を制御するターゲットプロセッサに対するプログラムの命令実行のシミュレーションを実行するシミュレーション装置であって,
プログラムのコードを所定のブロックに分割し,前記ブロックに含まれる命令のうち該命令の実行結果が外部環境に依存する所定の命令種に該当する外部依存命令を検出し,検出した前記外部依存命令の予測結果として命令実行により生じる確率が高い実行結果を設定し,設定された前記予測結果を前提とする条件で前記ブロックの命令実行をシミュレーションし,
前記シミュレーションの結果をもとに,前記予測結果を前提とする命令実行の場合の前記ブロックに含まれる各命令の実行時間を取得し,
前記ブロックのターゲットコードをもとに,前記外部依存命令が前記予測結果を前提とする条件で命令実行を行うホストコードを生成し,
前記ブロックから検出された前記外部依存命令のみについて実行時間を計算するホスト命令と,実行結果が設定された前記予測結果と異なる場合に検出された前記外部依存命令の実行時間の補正処理を呼び出すホスト命令と,検出された前記外部依存命令の計算された実行時間と検出された前記外部依存命令以外の命令の実行時間とを加算して前記ブロックの処理時間を計算するシミュレーション用コードとを生成した前記ホストコードに組み込む処理を実行するコード変換部と,
ホストプロセッサにより前記ホストコードが実行された際に,検出された前記外部依存命令の実行結果が前記予測結果と異なる場合に,前記補正処理において計算された値であって前記外部依存命令の実行時間および所定の遅延時間ならびに該外部依存命令の後に実行される命令の実行時間を用いて計算された補正値により該外部依存命令の前記予測結果での実行時間を補正した補正後の実行時間を取得するシミュレーション実行部とを,備える
ことを特徴とするシミュレーション装置。 - 前記シミュレーション実行部は,前記外部依存命令の次に実行される次命令の実行時間が,前記外部依存命令に付加される遅延時間を超えない場合に,前記次命令の実行時間を前記補正値として前記外部依存命令の遅延時間から減算する処理を行う
ことを特徴とする請求項1に記載のシミュレーション装置。 - 前記ホストコードの命令セットの各命令の1実行当たりの消費電力量を定めた電力情報を得て,前記電力情報と前記機能シミュレーションの結果とをもとに,前記ブロックの実行時の電力シミュレーション情報を求める電力シミュレーション情報生成部を備える
ことを特徴とする請求項1または請求項2に記載のシミュレーション装置。 - パイプライン処理を制御するターゲットプロセッサに対するプログラムの命令実行のシミュレーションを実行するシミュレーション方法であって,
ホストCPUが,
プログラムのコードを所定のブロックに分割し,前記ブロックに含まれる命令のうち該命令の実行結果が外部環境に依存する所定の命令種に該当する外部依存命令を検出し,検出した前記外部依存命令の予測結果として命令実行により生じる確率が高い実行結果を設定し,設定された前記予測結果を前提とする条件で前記ブロックの命令実行をシミュレーションし,
前記シミュレーションの結果をもとに,前記予測結果を前提とする命令実行の場合の前記ブロックに含まれる各命令の実行時間を取得し,
前記ブロックのターゲットコードをもとに,前記外部依存命令が前記予測結果を前提とする条件で命令実行を行うホストコードを生成し,
前記ブロックから検出された前記外部依存命令のみについて実行時間を計算するホスト命令と,実行結果が設定された前記予測結果と異なる場合に検出された前記外部依存命令の実行時間の補正処理を呼び出すホスト命令と,検出された前記外部依存命令の計算された実行時間と検出された前記外部依存命令以外の命令の実行時間とを加算して前記ブロックの処理時間を計算するシミュレーション用コードとを生成した前記ホストコードに組み込み,
ホストプロセッサにより前記ホストコードが実行された際に,検出された前記外部依存命令の実行結果が前記予測結果と異なる場合に,前記補正処理において計算された値であって前記外部依存命令の実行時間および所定の遅延時間ならびに該外部依存命令の後に実行される命令の実行時間を用いて計算された補正値により該外部依存命令の前記予測結果での実行時間を補正した補正後の実行時間を取得する,処理を実行する
ことを特徴とするシミュレーション方法。 - パイプライン処理を制御するターゲットプロセッサに対するプログラムの命令実行のシミュレーションを実行させるためのシミュレーションプログラムであって,
ホストCPUに,
プログラムのコードを所定のブロックに分割し,前記ブロックに含まれる命令のうち該命令の実行結果が外部環境に依存する所定の命令種に該当する外部依存命令を検出し,検出した前記外部依存命令の予測結果として命令実行により生じる確率が高い実行結果を設定し,設定された前記予測結果を前提とする条件で前記ブロックの命令実行をシミュレーションし,
前記シミュレーションの結果をもとに,前記予測結果を前提とする命令実行の場合の前記ブロックに含まれる各命令の実行時間を取得し,
前記ブロックのターゲットコードをもとに,前記外部依存命令が前記予測結果を前提とする条件で命令実行を行うホストコードを生成し,
前記ブロックから検出された前記外部依存命令のみについて実行時間を計算するホスト命令と,実行結果が設定された前記予測結果と異なる場合に検出された前記外部依存命令の実行時間の補正処理を呼び出すホスト命令と,検出された前記外部依存命令の計算された実行時間と検出された前記外部依存命令以外の命令の実行時間とを加算して前記ブロックの処理時間を計算するシミュレーション用コードとを生成した前記ホストコードに組み込み,
ホストプロセッサにより前記ホストコードが実行された際に,検出された前記外部依存命令の実行結果が前記予測結果と異なる場合に,前記補正処理において計算された値であって前記外部依存命令の実行時間および所定の遅延時間ならびに該外部依存命令の後に実行される命令の実行時間を用いて計算された補正値により該外部依存命令の前記予測結果での実行時間を補正した補正後の実行時間を取得する処理を,実行させる
ことを特徴とするシミュレーションプログラム。
Priority Applications (4)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2011224714A JP5961971B2 (ja) | 2011-10-12 | 2011-10-12 | シミュレーション装置,方法,およびプログラム |
| US13/617,828 US9372703B2 (en) | 2011-10-12 | 2012-09-14 | Simulation apparatus and simulation method |
| KR1020120110856A KR101332499B1 (ko) | 2011-10-12 | 2012-10-05 | 시뮬레이션 장치, 방법, 및 기록 매체 |
| CN2012103779846A CN103049307A (zh) | 2011-10-12 | 2012-10-08 | 仿真设备和仿真方法 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2011224714A JP5961971B2 (ja) | 2011-10-12 | 2011-10-12 | シミュレーション装置,方法,およびプログラム |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JP2013084178A JP2013084178A (ja) | 2013-05-09 |
| JP5961971B2 true JP5961971B2 (ja) | 2016-08-03 |
Family
ID=48061957
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2011224714A Expired - Fee Related JP5961971B2 (ja) | 2011-10-12 | 2011-10-12 | シミュレーション装置,方法,およびプログラム |
Country Status (4)
| Country | Link |
|---|---|
| US (1) | US9372703B2 (ja) |
| JP (1) | JP5961971B2 (ja) |
| KR (1) | KR101332499B1 (ja) |
| CN (1) | CN103049307A (ja) |
Families Citing this family (18)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| EP2629197B1 (en) * | 2010-10-12 | 2019-09-11 | Fujitsu Limited | Simulation device, method, and program |
| KR20130088285A (ko) * | 2012-01-31 | 2013-08-08 | 삼성전자주식회사 | 데이터 처리 시스템 및 그 시스템에서 데이터 시뮬레이션 방법 |
| JP6163898B2 (ja) * | 2013-06-11 | 2017-07-19 | 富士通株式会社 | 計算装置、計算方法、および計算プログラム |
| JP6146197B2 (ja) * | 2013-08-07 | 2017-06-14 | 株式会社ソシオネクスト | 設計支援方法、設計支援プログラム、および設計支援装置 |
| WO2015045472A1 (ja) * | 2013-09-24 | 2015-04-02 | 富士通株式会社 | シミュレーション装置、シミュレーション方法およびシミュレーションプログラム |
| JP5920842B2 (ja) * | 2013-11-28 | 2016-05-18 | インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation | シミュレーション装置、シミュレーション方法、およびプログラム |
| JP6187264B2 (ja) | 2014-01-07 | 2017-08-30 | 富士通株式会社 | 計算方法、計算プログラム、および計算装置 |
| JP6287650B2 (ja) * | 2014-07-10 | 2018-03-07 | 富士通株式会社 | シミュレーション方法、シミュレーションプログラム |
| JP6394341B2 (ja) | 2014-07-23 | 2018-09-26 | 富士通株式会社 | 計算装置、計算方法、および計算プログラム |
| JP6740607B2 (ja) * | 2015-12-18 | 2020-08-19 | 富士通株式会社 | シミュレーションプログラム、情報処理装置、シミュレーション方法 |
| CN107769987B (zh) * | 2016-08-16 | 2021-05-11 | 深圳市中兴微电子技术有限公司 | 一种报文转发性能评估方法和装置 |
| CN109557827B (zh) * | 2017-09-25 | 2021-10-01 | 中国电力科学研究院 | 一种电网逻辑控制脚本的生成与结果仿真方法及系统 |
| GB2570161B (en) * | 2018-01-16 | 2020-03-25 | Advanced Risc Mach Ltd | Simulation of exclusive instructions |
| KR101997012B1 (ko) * | 2018-12-18 | 2019-07-05 | 한국과학기술정보연구원 | 오토마타 상태 복잡도에 기초한 프로그램의 리소스 예측 방법 및 이를 적용한 장치 |
| CN110765667B (zh) * | 2019-11-28 | 2020-06-16 | 深圳市金城保密技术有限公司 | 激光打印机的仿真方法及系统 |
| CN111324948B (zh) * | 2020-02-10 | 2023-04-25 | 上海兆芯集成电路有限公司 | 模拟方法及模拟系统 |
| US11429507B2 (en) * | 2020-06-10 | 2022-08-30 | General Electric Company | Performance benchmarking for real-time software and hardware |
| CN113360259B (zh) * | 2021-05-28 | 2022-10-11 | 清华大学 | 一种应用于面向云端深度学习推理的分布式fpga多任务调度算法 |
Family Cites Families (13)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2919302B2 (ja) * | 1995-05-08 | 1999-07-12 | 株式会社エヌイーシー情報システムズ | Cpuシミュレーション方法 |
| JP3351725B2 (ja) * | 1997-01-08 | 2002-12-03 | 株式会社東芝 | パワーシミュレーション装置、パワーシミュレーション方法、及びパワーシミュレーションプログラムを記録した機械読み取り可能な記録媒体 |
| JPH11161692A (ja) * | 1997-11-28 | 1999-06-18 | Matsushita Electric Ind Co Ltd | 消費電力のシミュレーション方法 |
| US6751583B1 (en) | 1999-10-29 | 2004-06-15 | Vast Systems Technology Corporation | Hardware and software co-simulation including simulating a target processor using binary translation |
| JP2001167061A (ja) | 1999-12-10 | 2001-06-22 | Fujitsu Ltd | マルチプロセッサ・システムの性能評価方法および装置 |
| JP2005078243A (ja) | 2003-08-29 | 2005-03-24 | Denso Corp | マイコンリソース消費見積もりプログラム、マイコンリソース消費見積もり装置、およびプログラム生成方法 |
| US20070006178A1 (en) * | 2005-05-12 | 2007-01-04 | Microsoft Corporation | Function-level just-in-time translation engine with multiple pass optimization |
| JP2008176453A (ja) * | 2007-01-17 | 2008-07-31 | Nec Electronics Corp | シミュレーション装置 |
| JP5116624B2 (ja) * | 2008-09-29 | 2013-01-09 | ルネサスエレクトロニクス株式会社 | シミュレーション装置及びシミュレーション方法 |
| JP5440083B2 (ja) * | 2009-10-07 | 2014-03-12 | 富士通株式会社 | シミュレーション装置、方法およびプログラム |
| JP5412305B2 (ja) | 2010-01-27 | 2014-02-12 | 株式会社日立アドバンストデジタル | モデルベースの性能予測システム |
| EP2629197B1 (en) * | 2010-10-12 | 2019-09-11 | Fujitsu Limited | Simulation device, method, and program |
| JP5817324B2 (ja) * | 2011-08-18 | 2015-11-18 | 富士通株式会社 | 補正装置、補正方法、および補正プログラム |
-
2011
- 2011-10-12 JP JP2011224714A patent/JP5961971B2/ja not_active Expired - Fee Related
-
2012
- 2012-09-14 US US13/617,828 patent/US9372703B2/en not_active Expired - Fee Related
- 2012-10-05 KR KR1020120110856A patent/KR101332499B1/ko not_active Expired - Fee Related
- 2012-10-08 CN CN2012103779846A patent/CN103049307A/zh active Pending
Also Published As
| Publication number | Publication date |
|---|---|
| CN103049307A (zh) | 2013-04-17 |
| JP2013084178A (ja) | 2013-05-09 |
| KR20130039678A (ko) | 2013-04-22 |
| KR101332499B1 (ko) | 2013-11-26 |
| US9372703B2 (en) | 2016-06-21 |
| US20130096903A1 (en) | 2013-04-18 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JP5961971B2 (ja) | シミュレーション装置,方法,およびプログラム | |
| JP5278624B2 (ja) | シミュレーション装置,方法,およびプログラム | |
| US10564992B2 (en) | Simulation apparatus and storage medium | |
| Herdt et al. | Fast and Accurate Performance Evaluation for RISC-V using Virtual Prototypes*. | |
| EP3391224B1 (en) | Method and apparatus for data mining from core traces | |
| JP5817324B2 (ja) | 補正装置、補正方法、および補正プログラム | |
| Wang et al. | Fast and accurate cache modeling in source-level simulation of embedded software | |
| US9465595B2 (en) | Computing apparatus, computing method, and computing program | |
| Van Biesbrouck et al. | Efficient sampling startup for sampled processor simulation | |
| Mutlu et al. | Understanding the effects of wrong-path memory references on processor performance | |
| US20160196156A1 (en) | Simulation apparatus, simulation method, and computer product | |
| Van Biesbrouck et al. | Efficient sampling startup for SimPoint | |
| US20160011889A1 (en) | Simulation method and storage medium | |
| Hart et al. | Predicting memcached throughput using simulation and modeling. | |
| CN102520984A (zh) | 目标软件在指定硬件环境中最差时间的计算方法 | |
| US7684971B1 (en) | Method and system for improving simulation performance | |
| Mittal et al. | Integrating sampling approach with full system simulation: Bringing together the best of both | |
| CN108345763A (zh) | 乱序处理器Cache缺失服务时间的评估方法 | |
| Plyaskin et al. | System-level software performance simulation considering out-of-order processor execution | |
| JP6740607B2 (ja) | シミュレーションプログラム、情報処理装置、シミュレーション方法 | |
| US20150127318A1 (en) | Apparatus and method for simulating an operation of an out-of-order processor | |
| Posadas et al. | Static Write Buffer Cache Modeling to Increase Host-Compiled Simulation Accuracy | |
| Pepi et al. | Correct Wrong Path Simulation |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20140603 |
|
| A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20150119 |
|
| A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20150224 |
|
| A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20150427 |
|
| A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20151027 |
|
| A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20151228 |
|
| 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: 20160531 |
|
| A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20160613 |
|
| R150 | Certificate of patent or registration of utility model |
Ref document number: 5961971 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
| LAPS | Cancellation because of no payment of annual fees |