JP6234640B2 - シミュレーション装置及びシミュレーション方法及びシミュレーションプログラム - Google Patents
シミュレーション装置及びシミュレーション方法及びシミュレーションプログラム Download PDFInfo
- Publication number
- JP6234640B2 JP6234640B2 JP2017520179A JP2017520179A JP6234640B2 JP 6234640 B2 JP6234640 B2 JP 6234640B2 JP 2017520179 A JP2017520179 A JP 2017520179A JP 2017520179 A JP2017520179 A JP 2017520179A JP 6234640 B2 JP6234640 B2 JP 6234640B2
- Authority
- JP
- Japan
- Prior art keywords
- buffer
- code
- program
- host code
- host
- 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
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/28—Error detection; Error correction; Monitoring by checking the correct order of processing
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0893—Caches characterised by their organisation or structure
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/20—Design optimisation, verification or simulation
-
- 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/41—Compilation
- G06F8/44—Encoding
- G06F8/443—Optimisation
- G06F8/4441—Reducing the execution time required by the program code
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2201/00—Indexing scheme relating to error detection, to error correction, and to monitoring
- G06F2201/865—Monitoring of software
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1016—Performance improvement
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Quality & Reliability (AREA)
- Computer Hardware Design (AREA)
- Evolutionary Computation (AREA)
- Geometry (AREA)
- Debugging And Monitoring (AREA)
Description
プログラムの命令の読み込みにキャッシュを用いるシステムでの前記プログラムの実行を模擬するシミュレーション装置であって、
前記プログラムの命令が前記システムでの実行形式で記述されたゲストコードを記憶する記憶媒体と、
前記プログラムの命令が前記シミュレーション装置での実行形式で記述されたホストコードを格納するためのバッファと、
前記バッファに格納されたホストコードに記述された命令を実行する実行部と、
前記実行部により次に実行される命令である次命令が記述されたホストコードが前記バッファに格納されていない場合、当該次命令が記述されたゲストコードを含む、前記プログラムの命令が前記キャッシュに格納される単位であるキャッシュラインのサイズ分のゲストコード群を前記記憶媒体から読み取り、読み取ったゲストコード群を変換して、当該次命令が記述されたホストコードを含むホストコード群を生成し、生成したホストコード群をホストコードブロックとしてまとめて前記バッファに書き込む処理部とを備える。
本実施の形態に係る装置の構成、本実施の形態に係る装置の動作、本実施の形態の効果を順番に説明する。
図1を参照して、本実施の形態に係る装置であるシミュレーション装置100の構成を説明する。
図2及び図3及び図4を参照して、シミュレーション装置100の動作を説明する。シミュレーション装置100の動作は、本実施の形態に係るシミュレーション方法に相当する。シミュレーション装置100の動作は、本実施の形態に係るシミュレーションプログラムの処理手順に相当する。
本実施の形態では、ゲストコード201をホストコード202に変換する際に、キャッシュラインのサイズ分のゲストコード群をホストコード群に変換し、当該ホストコード群をホストコードブロックとしてまとめてバッファ120に書き込むことで、キャッシュを用いた動作を精度良く、かつ、高速に模擬することが可能となる。
(1)変換済コード群に対応する変換前コード群にどれだけのサイズのゲストコード201が含まれていたかを計算する。変換済コード群とは、ホストコード群のことである。変換前コード群とは、ゲストコード群のことである。
(2)(1)の結果をキャッシュのラインサイズと比較して、変換前コード群がキャッシュのどのラインに格納されているかを計算する。
(3)(2)の結果からキャッシュのヒット及びミスを判定する。
Claims (8)
- プログラムの命令の読み込みにキャッシュを用いるシステムでの前記プログラムの実行を模擬するシミュレーション装置であって、
前記プログラムの命令が前記システムでの実行形式で記述されたゲストコードを記憶する記憶媒体と、
前記プログラムの命令が前記シミュレーション装置での実行形式で記述されたホストコードを格納するためのバッファと、
前記バッファに格納されたホストコードに記述された命令を実行する実行部と、
前記実行部により次に実行される命令である次命令が記述されたホストコードが前記バッファに格納されていない場合、当該次命令が記述されたゲストコードを含む、前記プログラムの命令が前記キャッシュに格納される単位であるキャッシュラインのサイズ分のゲストコード群を前記記憶媒体から読み取り、読み取ったゲストコード群を変換して、当該次命令が記述されたホストコードを含むホストコード群を生成し、生成したホストコード群をホストコードブロックとしてまとめて前記バッファに書き込む処理部と
を備えるシミュレーション装置。 - 前記処理部は、前記バッファに格納されたホストコードブロックに対応するゲストコードの合計サイズと前記キャッシュのサイズとを比較することで、生成したホストコード群を格納するための空き領域が前記バッファにあるかどうかを判定し、前記空き領域がない場合、いずれかのホストコードブロックを前記バッファから削除する請求項1に記載のシミュレーション装置。
- 前記処理部は、前記キャッシュのミスの発生時に前記システムが一部の命令を前記キャッシュから削除するアルゴリズムと同じアルゴリズムを用いて、いずれかのホストコードブロックを前記バッファから削除する請求項2に記載のシミュレーション装置。
- 前記システムでの前記プログラムの実行時間の推定値を計算する計算部
をさらに備え、
前記記憶媒体は、前記キャッシュのミスの発生時における前記システムでの前記プログラムの命令の読み込み時間を示すペナルティ情報を記憶し、
前記計算部は、新たなホストコードブロックが前記バッファに書き込まれる度に、前記記憶媒体に記憶されたペナルティ情報が示す読み込み時間を前記推定値に加算する請求項1から3のいずれか1項に記載のシミュレーション装置。 - 前記ペナルティ情報は、前記キャッシュのミスの発生時に前記システムで前記プログラムの命令の読み込みにかかる時間を、前記プログラムの命令の読み込み元であるメモリのアドレス範囲ごとに示す情報である請求項4に記載のシミュレーション装置。
- 前記記憶媒体は、前記システムで前記プログラムの命令の実行にかかる時間を示す時間情報を記憶し、
前記計算部は、前記バッファに格納されたホストコードに記述された命令が前記実行部により実行される度に、前記記憶媒体に記憶された時間情報が示す時間を前記推定値に加算する請求項4又は5に記載のシミュレーション装置。 - プログラムの命令の読み込みにキャッシュを用いるシステムでの前記プログラムの実行を模擬するシミュレーション方法であって、
前記プログラムの命令が前記システムでの実行形式で記述されたゲストコードを記憶する記憶媒体と、前記プログラムの命令がコンピュータでの実行形式で記述されたホストコードを格納するためのバッファとを備える前記コンピュータが、前記バッファに格納されたホストコードに記述された命令を実行し、
前記コンピュータが、次に実行する命令である次命令が記述されたホストコードが前記バッファに格納されていない場合、当該次命令が記述されたゲストコードを含む、前記プログラムの命令が前記キャッシュに格納される単位であるキャッシュラインのサイズ分のゲストコード群を前記記憶媒体から読み取り、読み取ったゲストコード群を変換して、当該次命令が記述されたホストコードを含むホストコード群を生成し、生成したホストコード群をホストコードブロックとしてまとめて前記バッファに書き込むシミュレーション方法。 - プログラムの命令の読み込みにキャッシュを用いるシステムでの前記プログラムの実行を模擬するシミュレーションプログラムであって、
前記プログラムの命令が前記システムでの実行形式で記述されたゲストコードを記憶する記憶媒体と、前記プログラムの命令がコンピュータでの実行形式で記述されたホストコードを格納するためのバッファとを備える前記コンピュータに、
前記バッファに格納されたホストコードに記述された命令を実行する処理と、
次に実行される命令である次命令が記述されたホストコードが前記バッファに格納されていない場合、当該次命令が記述されたゲストコードを含む、前記プログラムの命令が前記キャッシュに格納される単位であるキャッシュラインのサイズ分のゲストコード群を前記記憶媒体から読み取り、読み取ったゲストコード群を変換して、当該次命令が記述されたホストコードを含むホストコード群を生成し、生成したホストコード群をホストコードブロックとしてまとめて前記バッファに書き込む処理と
を実行させるシミュレーションプログラム。
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| PCT/JP2015/065374 WO2016189725A1 (ja) | 2015-05-28 | 2015-05-28 | シミュレーション装置及びシミュレーション方法及びシミュレーションプログラム |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JPWO2016189725A1 JPWO2016189725A1 (ja) | 2017-07-27 |
| JP6234640B2 true JP6234640B2 (ja) | 2017-11-22 |
Family
ID=57393826
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2017520179A Expired - Fee Related JP6234640B2 (ja) | 2015-05-28 | 2015-05-28 | シミュレーション装置及びシミュレーション方法及びシミュレーションプログラム |
Country Status (3)
| Country | Link |
|---|---|
| US (1) | US10176001B2 (ja) |
| JP (1) | JP6234640B2 (ja) |
| WO (1) | WO2016189725A1 (ja) |
Family Cites Families (13)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US5790825A (en) * | 1995-11-08 | 1998-08-04 | Apple Computer, Inc. | Method for emulating guest instructions on a host computer through dynamic recompilation of host instructions |
| US6980946B2 (en) * | 2001-03-15 | 2005-12-27 | Microsoft Corporation | Method for hybrid processing of software instructions of an emulated computer system |
| US7496494B2 (en) * | 2002-09-17 | 2009-02-24 | International Business Machines Corporation | Method and system for multiprocessor emulation on a multiprocessor host system |
| US7568189B2 (en) * | 2006-05-03 | 2009-07-28 | Sony Computer Entertainment Inc. | Code translation and pipeline optimization |
| US8176280B2 (en) * | 2008-02-25 | 2012-05-08 | International Business Machines Corporation | Use of test protection instruction in computing environments that support pageable guests |
| US8479176B2 (en) | 2010-06-14 | 2013-07-02 | Intel Corporation | Register mapping techniques for efficient dynamic binary translation |
| US20120173851A1 (en) * | 2010-12-30 | 2012-07-05 | International Business Machines Corporation | Mechanism for maintaining dynamic register-level memory-mode flags in a virtual machine system |
| US8666723B2 (en) * | 2011-08-31 | 2014-03-04 | Oregon State Board Of Higher Education On Behalf Of Portland State University | System and methods for generating and managing a virtual device |
| JP2014194746A (ja) | 2013-02-28 | 2014-10-09 | Mitsubishi Electric Corp | シミュレーション装置及びシミュレーション方法及びプログラム |
| JP6163898B2 (ja) * | 2013-06-11 | 2017-07-19 | 富士通株式会社 | 計算装置、計算方法、および計算プログラム |
| US9785454B2 (en) * | 2013-07-25 | 2017-10-10 | Login VSI B.V. | Virtual session benchmarking tool for measuring performance and/or scalability of centralized desktop environments |
| US9946538B2 (en) * | 2014-05-12 | 2018-04-17 | Intel Corporation | Method and apparatus for providing hardware support for self-modifying code |
| US9389897B1 (en) * | 2014-12-18 | 2016-07-12 | International Business Machines Corporation | Exiting multiple threads of a simulation environment in a computer |
-
2015
- 2015-05-28 JP JP2017520179A patent/JP6234640B2/ja not_active Expired - Fee Related
- 2015-05-28 US US15/564,398 patent/US10176001B2/en active Active
- 2015-05-28 WO PCT/JP2015/065374 patent/WO2016189725A1/ja not_active Ceased
Also Published As
| Publication number | Publication date |
|---|---|
| WO2016189725A1 (ja) | 2016-12-01 |
| US10176001B2 (en) | 2019-01-08 |
| US20180136956A1 (en) | 2018-05-17 |
| JPWO2016189725A1 (ja) | 2017-07-27 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JP6234639B2 (ja) | シミュレーション装置及びシミュレーション方法及びシミュレーションプログラム | |
| US11263150B2 (en) | Testing address translation cache | |
| US10437949B1 (en) | Scheduling events in hardware design language simulation | |
| US20180349533A1 (en) | Capturing Time-Slice of Emulation Data for Offline Embedded Software Debug | |
| CN114662427B (zh) | 一种逻辑系统设计的调试方法及设备 | |
| CN108008715A (zh) | 基于fpga的系统功率评估装置与方法 | |
| CN107533473A (zh) | 用于仿真的高效波形生成 | |
| US20130013283A1 (en) | Distributed multi-pass microarchitecture simulation | |
| JP6667733B2 (ja) | シミュレーション装置、シミュレーション方法およびシミュレーションプログラム | |
| CN103324515A (zh) | 仿真期间存储器步移序列加速的方法和系统 | |
| JP6471615B2 (ja) | 性能情報生成プログラム、性能情報生成方法及び情報処理装置 | |
| JP5454349B2 (ja) | 性能推定装置 | |
| US12293137B2 (en) | Processor core simulator including trace-based coherent cache driven memory traffic generator | |
| JP5040625B2 (ja) | Lsiの電力見積方法及びその装置 | |
| JP6234640B2 (ja) | シミュレーション装置及びシミュレーション方法及びシミュレーションプログラム | |
| US20120089386A1 (en) | Simulation apparatus, computer-readable recording medium, and method | |
| CN118170597A (zh) | 指令验证方法、装置、电子设备和存储介质 | |
| US20190369997A1 (en) | Simulation device, simulation method, and computer readable medium | |
| CN114237705B (zh) | 验证方法、装置、电子设备和计算机可读存储介质 | |
| US10666255B1 (en) | System and method for compacting X-pessimism fixes for gate-level logic simulation | |
| JP2014194746A (ja) | シミュレーション装置及びシミュレーション方法及びプログラム | |
| CN114186396A (zh) | 芯片的仿真测试方法、装置、设备及系统 | |
| JP2017215096A (ja) | シミュレーション装置、シミュレーション方法及びシミュレーションプログラム | |
| JP5597584B2 (ja) | 命令実行分析装置及び命令実行分析方法及びプログラム | |
| US20180196907A1 (en) | Architecture generating device |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20170330 |
|
| 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: 20170926 |
|
| A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20171024 |
|
| R150 | Certificate of patent or registration of utility model |
Ref document number: 6234640 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
| R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
| R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
| R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
| LAPS | Cancellation because of no payment of annual fees |