JPWO2016189642A1 - シミュレーション装置及びシミュレーション方法及びシミュレーションプログラム - Google Patents
シミュレーション装置及びシミュレーション方法及びシミュレーションプログラム Download PDFInfo
- Publication number
- JPWO2016189642A1 JPWO2016189642A1 JP2017520112A JP2017520112A JPWO2016189642A1 JP WO2016189642 A1 JPWO2016189642 A1 JP WO2016189642A1 JP 2017520112 A JP2017520112 A JP 2017520112A JP 2017520112 A JP2017520112 A JP 2017520112A JP WO2016189642 A1 JPWO2016189642 A1 JP WO2016189642A1
- 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.)
- Granted
Links
- 238000004088 simulation Methods 0.000 title claims abstract description 94
- 238000000034 method Methods 0.000 title claims description 23
- 230000006399 behavior Effects 0.000 claims 1
- 238000012545 processing Methods 0.000 description 23
- 230000006870 function Effects 0.000 description 15
- 238000011156 evaluation Methods 0.000 description 7
- 238000004891 communication Methods 0.000 description 6
- 238000010586 diagram Methods 0.000 description 6
- 230000002093 peripheral effect Effects 0.000 description 6
- 238000006243 chemical reaction Methods 0.000 description 5
- 238000012795 verification Methods 0.000 description 5
- 230000000694 effects Effects 0.000 description 4
- 238000007796 conventional method Methods 0.000 description 3
- 239000013078 crystal Substances 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 239000007788 liquid Substances 0.000 description 1
- 230000033772 system development Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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; 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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; CALCULATING OR 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; CALCULATING OR 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; 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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; CALCULATING OR 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; CALCULATING OR 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; CALCULATING OR 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; 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
-
- 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/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)
Abstract
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 true JPWO2016189642A1 (ja) | 2017-08-17 |
JP6234639B2 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 (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2019152792A1 (en) * | 2018-02-02 | 2019-08-08 | Dover Microsystems, Inc. | Systems and methods for policy linking and/or loading for secure initialization |
WO2019213061A1 (en) | 2018-04-30 | 2019-11-07 | Dover Microsystems, Inc. | Systems and methods for checking safety properties |
TW202022679A (zh) | 2018-11-06 | 2020-06-16 | 美商多佛微系統公司 | 用於停滯主處理器的系統和方法 |
US11841956B2 (en) | 2018-12-18 | 2023-12-12 | Dover Microsystems, Inc. | Systems and methods for data lifecycle protection |
US12079197B2 (en) | 2019-10-18 | 2024-09-03 | Dover Microsystems, Inc. | Systems and methods for updating metadata |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2014241031A (ja) * | 2013-06-11 | 2014-12-25 | 富士通株式会社 | 計算装置、計算方法、および計算プログラム |
-
2015
- 2015-05-26 US US15/564,343 patent/US20180143890A1/en not_active Abandoned
- 2015-05-26 JP JP2017520112A patent/JP6234639B2/ja active Active
- 2015-05-26 WO PCT/JP2015/064995 patent/WO2016189642A1/ja active Application Filing
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2014241031A (ja) * | 2013-06-11 | 2014-12-25 | 富士通株式会社 | 計算装置、計算方法、および計算プログラム |
Also Published As
Publication number | Publication date |
---|---|
JP6234639B2 (ja) | 2017-11-22 |
WO2016189642A1 (ja) | 2016-12-01 |
US20180143890A1 (en) | 2018-05-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6234639B2 (ja) | シミュレーション装置及びシミュレーション方法及びシミュレーションプログラム | |
CN101410812B (zh) | 用于迁移受到输入/输出设备访问的数据的方法和设备 | |
CN107436762A (zh) | 一种寄存器代码文件生成方法、装置和电子设备 | |
US7895376B2 (en) | Hardware configuration information system, method, and computer program product | |
US20120011490A1 (en) | Development system | |
US8886512B2 (en) | Simulation apparatus, computer-readable recording medium, and method | |
JP6667733B2 (ja) | シミュレーション装置、シミュレーション方法およびシミュレーションプログラム | |
JP2007094986A (ja) | シミュレーション装置およびシミュレーション方法 | |
JP6545417B2 (ja) | シミュレーション装置、シミュレーション方法およびシミュレーションプログラム | |
CN114237705A (zh) | 验证方法、装置、电子设备和计算机可读存储介质 | |
JP6318976B2 (ja) | デバッグ回路、デバッガ装置、半導体装置及びデバッグ方法 | |
US20150106916A1 (en) | Leveraging a peripheral device to execute a machine instruction | |
JP6234640B2 (ja) | シミュレーション装置及びシミュレーション方法及びシミュレーションプログラム | |
KR102466551B1 (ko) | 데이터 기록 방법, 장치 및 전자 기기 | |
JP2012018641A (ja) | ソフトウェア開発システム | |
JP2013122740A (ja) | データ処理装置、変換装置、データ処理システム、変換方法、および変換プログラム | |
JP2018121245A (ja) | 通信装置、通信仕様差分抽出方法及び通信仕様差分抽出プログラム | |
JP2007219893A (ja) | ファームウェア評価システムおよびファームウェア評価方法 | |
JP6331400B2 (ja) | 検証方法、検証装置および検証プログラム | |
JP6239212B1 (ja) | シミュレーション装置、シミュレーション方法及びシミュレーションプログラム | |
WO2018163387A1 (ja) | 解析装置、解析方法及び解析プログラム | |
JP2014099215A (ja) | マルチコアプロセッサシステム、マルチコアプロセッサシステムの制御方法、およびマルチコアプロセッサシステムの制御プログラム | |
JP5597584B2 (ja) | 命令実行分析装置及び命令実行分析方法及びプログラム | |
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 |