JP6234639B2 - シミュレーション装置及びシミュレーション方法及びシミュレーションプログラム - Google Patents
シミュレーション装置及びシミュレーション方法及びシミュレーションプログラム Download PDFInfo
- Publication number
- JP6234639B2 JP6234639B2 JP2017520112A JP2017520112A JP6234639B2 JP 6234639 B2 JP6234639 B2 JP 6234639B2 JP 2017520112 A JP2017520112 A JP 2017520112A JP 2017520112 A JP2017520112 A JP 2017520112A JP 6234639 B2 JP6234639 B2 JP 6234639B2
- Authority
- JP
- Japan
- Prior art keywords
- code
- cache
- target
- instruction
- 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.)
- Active
Links
Images
Classifications
-
- 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
- G06F8/4442—Reducing the number of cache misses; Data prefetching
-
- 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
- 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/3003—Monitoring arrangements specially adapted to the computing system or computing system component being monitored
- G06F11/302—Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a software system
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3003—Monitoring arrangements specially adapted to the computing system or computing system component being monitored
- G06F11/3037—Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a memory, e.g. virtual memory, cache
-
- 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/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
-
- 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
-
- 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
- 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/0864—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using pseudo-associative means, e.g. set-associative or hashing
-
- 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
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- Computing Systems (AREA)
- Computer Hardware Design (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Debugging And Monitoring (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Description
命令を示すターゲットコードを記憶するメモリと前記メモリから読み込まれるターゲットコードを格納するためのキャッシュとを有するシステムの動作を模擬するシミュレーション装置であって、
前記メモリに記憶されたターゲットコードが読み込まれるとともに読み込まれたターゲットコードで前記キャッシュが更新される動作であるキャッシュミス時の動作が前記システムにより行われたと仮定した場合の前記キャッシュに格納されるターゲットコードの一覧を記憶する記憶媒体と、
対応するターゲットコードの命令を模擬用の形式で示すホストコードを格納するためのバッファと、
前記バッファに格納されたホストコードを順次読み込み、読み込んだホストコードの命令を実行するとともに、読み込んだホストコードに対応するターゲットコードである対応コードが前記一覧に含まれているかどうかを判定し、前記対応コードが含まれていないと判定した場合、前記対応コードについて前記キャッシュミス時の動作を模擬し、模擬した動作に合わせて前記一覧を更新する実行部とを備える。
本実施の形態に係る装置の構成、本実施の形態に係る装置の動作、本実施の形態の効果を順番に説明する。
図1を参照して、本実施の形態に係る装置であるシミュレーション装置100の構成を説明する。
図3を参照して、シミュレーション装置100の動作を説明する。シミュレーション装置100の動作は、本実施の形態に係るシミュレーション方法に相当する。シミュレーション装置100の動作は、本実施の形態に係るシミュレーションプログラムの処理手順に相当する。
本実施の形態では、ホストコードを格納するためのバッファ220を利用してキャッシュミスの有無を判定するのではなく、ターゲットシステムのキャッシュに格納されるターゲットコードの一覧を管理しておき、この一覧を利用してキャッシュミスの有無を判定する。よって、本実施の形態によれば、シミュレーションにおけるキャッシュミスの判定の精度が向上する。
ターゲットシステムのキャッシュに格納されるターゲットコードの一覧は、本実施の形態ではタグ212を格納するタグテーブル211として管理されるが、ターゲットコードを識別可能な別の情報を格納するテーブル又はその他のデータ構造として管理されてもよい。
本実施の形態に係る装置の構成、本実施の形態に係る装置の動作、本実施の形態の効果を順番に説明する。主に実施の形態1との差異を説明する。
図9を参照して、本実施の形態に係る装置であるシミュレーション装置100の構成を説明する。
図11を参照して、シミュレーション装置100の動作を説明する。シミュレーション装置100の動作は、本実施の形態に係るシミュレーション方法に相当する。シミュレーション装置100の動作は、本実施の形態に係るシミュレーションプログラムの処理手順に相当する。
本実施の形態では、ソフトウェアへ変更を加えることなく、バッファ220を利用してシミュレーションの高速実行を可能としつつ、ハードウェアとソフトウェアとの協調シミュレーションを実行することができる。この協調シミュレーションでは、ターゲットシステムのキャッシュヒット/ミスの判定とキャッシュミスの発生時の命令メモリアクセス動作とをキャッシュライン単位で模擬することができる。本実施の形態に係るシミュレーション装置100を用いることで、正確なソフトウェアの性能評価を実施することができる。
本実施の形態について、主に実施の形態1との差異を説明する。
Claims (9)
- 命令を示すターゲットコードを記憶するメモリと前記メモリから読み込まれるターゲットコードを格納するためのキャッシュとを有するシステムの動作を模擬するシミュレーション装置であって、
前記メモリに記憶されたターゲットコードが読み込まれるとともに読み込まれたターゲットコードで前記キャッシュが更新される動作であるキャッシュミス時の動作が前記システムにより行われたと仮定した場合の前記キャッシュに格納されるターゲットコードの一覧を記憶する記憶媒体と、
対応するターゲットコードの命令を模擬用の形式で示すホストコードを格納するためのバッファと、
前記バッファに格納されたホストコードを順次読み込み、読み込んだホストコードの命令を実行するとともに、読み込んだホストコードに対応するターゲットコードである対応コードが前記一覧に含まれているかどうかを判定し、前記対応コードが含まれていないと判定した場合、前記対応コードについて前記キャッシュミス時の動作を模擬し、模擬した動作に合わせて前記一覧を更新する実行部と
を備えるシミュレーション装置。 - 前記実行部は、前記バッファに格納されていないホストコードの命令を次に実行する場合、そのホストコードに対応するターゲットコードである次コードについて前記キャッシュミス時の動作を模擬し、模擬した動作に合わせて前記一覧を更新し、
前記シミュレーション装置は、さらに、
前記次コードについて前記キャッシュミス時の動作が前記実行部により模擬された場合、前記次コードに対応するホストコードを生成し、生成したホストコードを前記バッファに格納する生成部
を備える請求項1に記載のシミュレーション装置。 - 前記生成部は、生成するホストコードに、前記キャッシュのキャッシュミスが発生するかどうかを判定するよう指示する判定コードを付加し、
前記実行部は、読み込んだホストコードに前記判定コードが付加されている場合、前記対応コードが前記一覧に含まれているかどうかを判定する請求項2に記載のシミュレーション装置。 - 前記生成部は、1つの命令ごとに前記判定コードを付加する請求項3に記載のシミュレーション装置。
- 前記生成部は、前記キャッシュのラインサイズ分の命令ごとに前記判定コードを付加する請求項3に記載のシミュレーション装置。
- 前記バッファは、前記キャッシュよりも容量が大きい請求項1から5のいずれか1項に記載のシミュレーション装置。
- 前記一覧は、前記キャッシュに格納されるターゲットコードを識別するタグを格納するタグテーブルとして前記記憶媒体に記憶される請求項1から6のいずれか1項に記載のシミュレーション装置。
- 命令を示すターゲットコードを記憶するメモリと前記メモリから読み込まれるターゲットコードを格納するためのキャッシュとを有するシステムの動作を模擬するシミュレーション方法であって、
前記メモリに記憶されたターゲットコードが読み込まれるとともに読み込まれたターゲットコードで前記キャッシュが更新される動作であるキャッシュミス時の動作が前記システムにより行われたと仮定した場合の前記キャッシュに格納されるターゲットコードの一覧を記憶する記憶媒体と、対応するターゲットコードの命令を模擬用の形式で示すホストコードを格納するためのバッファとを備えるコンピュータが、前記バッファに格納されたホストコードを順次読み込み、読み込んだホストコードの命令を実行するとともに、読み込んだホストコードに対応するターゲットコードである対応コードが前記一覧に含まれているかどうかを判定し、前記対応コードが含まれていないと判定した場合、前記対応コードについて前記キャッシュミス時の動作を模擬し、模擬した動作に合わせて前記一覧を更新するシミュレーション方法。 - 命令を示すターゲットコードを記憶するメモリと前記メモリから読み込まれるターゲットコードを格納するためのキャッシュとを有するシステムの動作を模擬するシミュレーションプログラムであって、
前記メモリに記憶されたターゲットコードが読み込まれるとともに読み込まれたターゲットコードで前記キャッシュが更新される動作であるキャッシュミス時の動作が前記システムにより行われたと仮定した場合の前記キャッシュに格納されるターゲットコードの一覧を記憶する記憶媒体と、対応するターゲットコードの命令を模擬用の形式で示すホストコードを格納するためのバッファとを備えるコンピュータに、
前記バッファに格納されたホストコードを順次読み込み、読み込んだホストコードの命令を実行するとともに、読み込んだホストコードに対応するターゲットコードである対応コードが前記一覧に含まれているかどうかを判定し、前記対応コードが含まれていないと判定した場合、前記対応コードについて前記キャッシュミス時の動作を模擬し、模擬した動作に合わせて前記一覧を更新する処理
を実行させるシミュレーションプログラム。
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| PCT/JP2015/064995 WO2016189642A1 (ja) | 2015-05-26 | 2015-05-26 | シミュレーション装置及びシミュレーション方法及びシミュレーションプログラム |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JPWO2016189642A1 JPWO2016189642A1 (ja) | 2017-08-17 |
| JP6234639B2 true JP6234639B2 (ja) | 2017-11-22 |
Family
ID=57393918
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2017520112A Active JP6234639B2 (ja) | 2015-05-26 | 2015-05-26 | シミュレーション装置及びシミュレーション方法及びシミュレーションプログラム |
Country Status (3)
| Country | Link |
|---|---|
| US (1) | US20180143890A1 (ja) |
| JP (1) | JP6234639B2 (ja) |
| WO (1) | WO2016189642A1 (ja) |
Families Citing this family (11)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20210357497A9 (en) | 2018-02-02 | 2021-11-18 | Dover Microsystems, Inc. | Systems and methods for transforming instructions for metadata processing |
| US20210042100A1 (en) * | 2018-02-02 | 2021-02-11 | Dover Microsystems, Inc. | System and method for translating mapping policy into code |
| EP3788488A1 (en) | 2018-04-30 | 2021-03-10 | Dover Microsystems, Inc. | Systems and methods for checking safety properties |
| WO2020097179A1 (en) | 2018-11-06 | 2020-05-14 | Dover Microsystems, Inc. | Systems and methods for stalling host processor |
| WO2020102064A1 (en) | 2018-11-12 | 2020-05-22 | Dover Microsystems, Inc. | Systems and methods for metadata encoding |
| US11841956B2 (en) | 2018-12-18 | 2023-12-12 | Dover Microsystems, Inc. | Systems and methods for data lifecycle protection |
| WO2020150351A1 (en) | 2019-01-18 | 2020-07-23 | Dover Microsystems, Inc. | Systems and methods for metadata classification |
| WO2021076871A1 (en) | 2019-10-18 | 2021-04-22 | Dover Microsystems, Inc. | Systems and methods for updating metadata |
| US12253944B2 (en) | 2020-03-03 | 2025-03-18 | Dover Microsystems, Inc. | Systems and methods for caching metadata |
| US12124576B2 (en) | 2020-12-23 | 2024-10-22 | Dover Microsystems, Inc. | Systems and methods for policy violation processing |
| CN114201281B (zh) * | 2021-12-10 | 2025-06-03 | 北京奕斯伟计算技术股份有限公司 | 指令调度方法、装置、设备以及存储介质 |
Family Cites Families (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP6163898B2 (ja) * | 2013-06-11 | 2017-07-19 | 富士通株式会社 | 計算装置、計算方法、および計算プログラム |
-
2015
- 2015-05-26 US US15/564,343 patent/US20180143890A1/en not_active Abandoned
- 2015-05-26 WO PCT/JP2015/064995 patent/WO2016189642A1/ja not_active Ceased
- 2015-05-26 JP JP2017520112A patent/JP6234639B2/ja active Active
Also Published As
| Publication number | Publication date |
|---|---|
| WO2016189642A1 (ja) | 2016-12-01 |
| US20180143890A1 (en) | 2018-05-24 |
| JPWO2016189642A1 (ja) | 2017-08-17 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JP6234639B2 (ja) | シミュレーション装置及びシミュレーション方法及びシミュレーションプログラム | |
| CN107480327B (zh) | 一种仿真验证方法、装置和电子设备 | |
| CN107436762A (zh) | 一种寄存器代码文件生成方法、装置和电子设备 | |
| US20100131685A1 (en) | Hardware configuration information system, method, and computer program product | |
| US20120011490A1 (en) | Development system | |
| JP6667733B2 (ja) | シミュレーション装置、シミュレーション方法およびシミュレーションプログラム | |
| US8886512B2 (en) | Simulation apparatus, computer-readable recording medium, and method | |
| CN111176583B (zh) | 一种数据写入方法、装置和电子设备 | |
| JP6545417B2 (ja) | シミュレーション装置、シミュレーション方法およびシミュレーションプログラム | |
| CN114237705B (zh) | 验证方法、装置、电子设备和计算机可读存储介质 | |
| US8997210B1 (en) | Leveraging a peripheral device to execute a machine instruction | |
| JP2007094986A (ja) | シミュレーション装置およびシミュレーション方法 | |
| JP6234640B2 (ja) | シミュレーション装置及びシミュレーション方法及びシミュレーションプログラム | |
| JP2016045676A (ja) | デバッグ回路、デバッガ装置、半導体装置及びデバッグ方法 | |
| JP2012018641A (ja) | ソフトウェア開発システム | |
| JP2014099215A (ja) | マルチコアプロセッサシステム、マルチコアプロセッサシステムの制御方法、およびマルチコアプロセッサシステムの制御プログラム | |
| CN110362501B (zh) | 一种执行饱和寻址加载和存储操作的设备和方法 | |
| JP6331400B2 (ja) | 検証方法、検証装置および検証プログラム | |
| US10303385B1 (en) | Updating block random access memory contents using memory emulation | |
| JP2025072688A (ja) | 自律試験装置、自律試験方法、及び自律試験プログラム | |
| JP6239212B1 (ja) | シミュレーション装置、シミュレーション方法及びシミュレーションプログラム | |
| JP5597584B2 (ja) | 命令実行分析装置及び命令実行分析方法及びプログラム | |
| CN114896179A (zh) | 内存页的拷贝方法、装置、计算设备及可读存储介质 | |
| JP2012022640A (ja) | ソフトウェア開発システム | |
| JP2000231495A (ja) | 仮想マシン |
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: 6234639 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 |
|
| 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 |