JP2005202614A - 動的変換方式のエミュレータ向けメモリ管理方法 - Google Patents
動的変換方式のエミュレータ向けメモリ管理方法 Download PDFInfo
- Publication number
- JP2005202614A JP2005202614A JP2004007460A JP2004007460A JP2005202614A JP 2005202614 A JP2005202614 A JP 2005202614A JP 2004007460 A JP2004007460 A JP 2004007460A JP 2004007460 A JP2004007460 A JP 2004007460A JP 2005202614 A JP2005202614 A JP 2005202614A
- Authority
- JP
- Japan
- Prior art keywords
- instruction
- program
- instruction set
- address
- converted
- 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
Images
Classifications
-
- 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)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Advance Control (AREA)
- Executing Machine-Instructions (AREA)
Abstract
【解決手段】エミュレーションプログラムのうちエミュレーション動作中に実行頻度の高い部分との命令キャッシュ競合がおこるか否かの判定を行い、競合しないアドレスのみを変換済命令格納領域に設定する。
【効果】動的変換方法のエミュレータでの命令キャッシュミスが低減され、エミュレーション速度が向上する。
【選択図】図12
Description
ある命令セット(第一の命令セット)を有する新たなコンピュータ・ハードウェアで、第二の命令セットを前提に記述されたプログラムを実質的に動作させる一つの方法は、そのプログラムを、第一の命令セット、つまりコンピュータ・ハードウェアにネイティブな命令セットで記述されたプログラムに変換することである。
一方、動的変換方式は上記の問題は生じないが、変換された命令を格納するメモリ領域によっては、命令キャッシュの競合の問題が生じる。これを説明すると、動的変換方式では、動的変換を行なうプログラム(エミュレーションプログラム)の実行により、まず変換後の命令列を格納する命令格納領域をメモリ上に確保し、第二の命令セットで記述された変換対象のプログラムを第一の命令セットのプログラムに変換して前記命令格納領域に格納し、この命令格納領域にある命令を実行する。この動的変換を行なうプログラム中の実行頻度が高い領域と、変換済み命令の格納領域とで命令キャッシュの検索に用いる添字(カラム番号)が重なる場合、変換済み命令格納領域にある命令を実行する際に、命令キャッシュミスが多数発生し、性能が大きく低下することがある。このように、同一の命令キャッシュ領域を複数のプログラム領域が使用するために、キャッシュミスが発生する状況を命令キャッシュにおける競合と呼ぶ。
本実施例のコンピュータシステムは、プロセッサ100とメモリ120からなる。
プロセッサ100には命令キャッシュ101が塔載されている。命令キャッシュ101 はメモリ120から読み出したプログラムを格納する、メモリ120より高速で小容量なメモリである。最近実行されたプログラムを命令キャッシュ101に格納しておくことで、プログラムを繰り返し実行する際に、メモリ120から読み出す代わりに、命令キャッシュ101から読み出しができるため、読み出し時間を短縮することができる。
メモリ120にはエミュレーションプログラム200と高頻度実行アドレス表122と命令キャシュ構成情報123と変換済命令格納領域表124と使用way表125が格納されている。
変換実行処理240は変換済命令検索処理500、命令変換処理520、変換済み命令実行処理540、終了判定処理560からなる。
381 命令キャッシュアドレス変換処理
400 命令キャッシュ競合判定処理
363 変換命令格納領域判定表に登録。
Claims (6)
- 命令キャッシュを有し、第一の命令セットを解釈・実行可能なプロセッサとメモリとを含むる計算機システムにて、上記メモリに格納されたエミュレーションプログラムにより、第二の命令セットで記述されたプロクラムを上記第一の命令セットで記述されたプログラムに必要に応じて変換しながら実行する動的変換方式のプログラム実行における使用メモリの管理方法であって、
上記第二の命令セットで記述されたプログラムに対応する上記第一の命令セットで記述されたプログラムのアドレスを検索するために使用する変換済命令格納領域表の初期化のための手順として、
1)上記エミュレーションプログラムの中で、エミュレーション動作中に実行頻度が高い部分のアドレス情報を取得するステップ、及び
2)上記アドレス情報から、上記命令キャッシュにて上記実行頻度が高い部分とキャッシュ競合を生じるメモリアドレスを特定し、特定されたメモリアドレスを除外して変換済命令が格納されるべき格納領域を設定するステップを含み、
命令変換及び実行の手順として、
3)上記第二の命令セットで作成されたプログラムに対応する第一の命令セットで作成されたプログラムが上記メモリ上に有るか否を上記変換済命令格納領域表を用いて検索し、
4)第一の命令セットで作成されたプログラムが有る場合はこれを上記プロセッサで実行し、
5)第一の命令セットで作成されたプログラムが無い場合は上記第二の命令セットで作成されたプログラムを第一の命令セットで作成したプログラムに変換し、変換したプログラムを上記メモリの設定された格納領域の範囲内に格納し、格納したプログラムの格納アドレスと変換前の上記第1の命令セットで作成されたプログラムとの対応関係を上記変換済命令格納領域表に格納する、
とのステップを含むことを特徴とするエミュレータ向けメモリ管理方法。 - 上記実行頻度が高い部分のアドレス情報は上記エミュレーションプログラムの作成時点で該プログラム中に埋め込まれることを特徴とする請求項1記載のエミュレータ向けメモリ管理方法。
- 上記実行頻度が高い部分は上記エミュレーションプログラムのうち変換済命令検索処理の部分を含む請求項1記載のエミュレータ向けメモリ管理方法。
- 上記実行頻度が高い部分は上記エミュレーションプログラムのうち変換済命令検索処理の部分を含む請求項1記載のエミュレータ向けメモリ管理方法。
- 命令キャッシュを有し、第一の命令セットを解釈・実行可能なプロセッサとメモリとを含むる計算機システム上で動作し、第二の命令セットで記述されたプロクラムを上記第一の命令セットで記述されたプログラムに必要に応じて変換しながら実行させるエミュレーションプログラムであって、
上記第二の命令セットで記述されたプログラムに対応する上記第一の命令セットで記述されたプログラムのアドレスを検索するために使用する変換済命令格納領域表の初期化のための手順として、
1)上記エミュレーションプログラムの中で、エミュレーション動作中に実行頻度が高い部分のアドレス情報を取得するステップ、及び
2)上記アドレス情報から、上記命令キャッシュにて上記実行頻度が高い部分とキャッシュ競合を生じるメモリアドレスを特定し、特定されたメモリアドレスを除外して変換済命令が格納されるべき格納領域を設定するステップを前記計算機システムに実行させ、、
命令変換及び実行の手順として、
3)上記第二の命令セットで作成されたプログラムに対応する第一の命令セットで作成されたプログラムが上記メモリ上に有るか否を上記変換済命令格納領域表を用いて検索し、
4)第一の命令セットで作成されたプログラムが有る場合はこれを実行し、
5)第一の命令セットで作成されたプログラムが無い場合は上記第二の命令セットで作成されたプログラムを第一の命令セットで作成したプログラムに変換し、変換したプログラムを上記メモリの設定された格納領域の範囲内に格納し、格納したプログラムの格納アドレスと変換前の上記第1の命令セットで作成されたプログラムとの対応関係を上記変換済命令格納領域表に格納する、
との手順をステップを前記計算機システムに実行させることを特徴とするエミュレーションプログラム。 - 命令キャッシュを有し、第一の命令セットを解釈・実行可能なプロセッサとメモリとを含む計算機システムにおいて、
上記計算機システムは、メモリ上に、第一の命令セットで記述されたエミュレーションプログラムと、第二の命令セットで記述されたプログラムのアドレスに対応する第一の命令セットで記述されたプログラムのアドレスを検索するために使用する変換済命令格納領域表とを有し、
上記エミュレーションプログラムは、
上記変換済命令格納領域表を初期化する初期化処理と、
第二の命令セットで記述されたプログラムに対応する第一の命令セットで記述されたプログラムの有無を変換済命令格納領域表を用いて検索し、第二の命令セットで記述されたプログラムに対応する第一の命令セットで記述されたプログラムがある場合は、対応する第一の命令セットで記述されたプログラムを上記プロセッサで実行し、第二の命令セットで記述されたプログラムに対応する第一の命令セットで記述されたプログラムがない場合は第二の命令セットで記述されたプログラムに対応する第一の命令セットで記述されたプログラムに変換し、変換された命令を変換済命令格納領域表の第一の命令セットで記述されたプログラムのアドレスに格納すると共に、その対応関係を変換済命令格納領域表に格納する変換実行処理とを有し、
上記初期化処理は
上記プロセッサの命令キャッシュの構成を取得する命令キャッシュ構成取得処理と、
命令キャッシュを使用する確率が高いプログラムのアドレス情報を取得する高頻度実行アドレス取得処理と、第二の命令セットで記述されたプログラムのアドレスに対応する第一の命令セットで記述されたプログラムのアドレスと、命令キャッシュの構成と命令キャッシュを使用する確率が高いプログラムのアドレス情報と、上記プロセッサの命令キャッシュの構成とから第一の命令セットで記述されたプログラムが上記命令キャッシュを使用する確率が高いプログラムと上記命令キャッシュで競合を起こすか否かを判定する命令キャッシュ競合判定処理とを有し、変換済命令格納領域表の第一の命令セットで記述されたプログラムのアドレスを初期化する際に、命令キャッシュ競合判定で競合があると判定されたメモリアドレスを除外して変換済命令格納領域表の第一の命令セットで記述されたプログラムのアドレスに登録することを特徴とする計算機システム。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2004007460A JP4701611B2 (ja) | 2004-01-15 | 2004-01-15 | 動的変換方式のエミュレータ向けメモリ管理方法 |
US10/933,218 US7617087B2 (en) | 2004-01-15 | 2004-09-03 | Memory management method for dynamic conversion type emulator |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2004007460A JP4701611B2 (ja) | 2004-01-15 | 2004-01-15 | 動的変換方式のエミュレータ向けメモリ管理方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2005202614A true JP2005202614A (ja) | 2005-07-28 |
JP4701611B2 JP4701611B2 (ja) | 2011-06-15 |
Family
ID=34747146
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2004007460A Expired - Fee Related JP4701611B2 (ja) | 2004-01-15 | 2004-01-15 | 動的変換方式のエミュレータ向けメモリ管理方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US7617087B2 (ja) |
JP (1) | JP4701611B2 (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2018028777A (ja) * | 2016-08-17 | 2018-02-22 | Necプラットフォームズ株式会社 | エミュレーション装置、エミュレーション方法、及び、エミュレーションプログラム |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008059279A (ja) * | 2006-08-31 | 2008-03-13 | Internatl Business Mach Corp <Ibm> | 文字列出力処理を最適化する技術 |
JP4600700B2 (ja) * | 2009-03-17 | 2010-12-15 | 日本電気株式会社 | プログラムのメモリ空間への配置方法、装置、およびプログラム |
JP6693308B2 (ja) * | 2016-07-05 | 2020-05-13 | 富士通株式会社 | 負荷推定プログラム、負荷推定方法及び負荷推定装置 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH11212798A (ja) * | 1998-01-26 | 1999-08-06 | Nec Corp | 言語処理方法、言語処理装置及び言語処理プログラムを記録した記憶媒体 |
JP2000076132A (ja) * | 1998-08-31 | 2000-03-14 | Hitachi Ltd | キャッシュメモリを備えた情報処理装置 |
JP2000148506A (ja) * | 1998-11-13 | 2000-05-30 | Nec Corp | キャッシュメモリへのプログラム割り付け装置、キャッシュメモリへのプログラム割り付け方法、及び、その方法をコンピュータに実行させるためのプログラムを記録したコンピュータ読み取り可能な記録媒体 |
JP2001166948A (ja) * | 1999-12-07 | 2001-06-22 | Nec Corp | プログラム変換方法、プログラム変換装置及びプログラム変換プログラムを記憶した記憶媒体 |
JP2003140909A (ja) * | 2001-11-07 | 2003-05-16 | Fujitsu Ltd | Jitコンパイラを備えた仮想計算機 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB2287111B (en) * | 1994-03-01 | 1998-08-05 | Intel Corp | Method for pipeline processing of instructions by controlling access to a reorder buffer using a register file outside the reorder buffer |
US6093213A (en) * | 1995-10-06 | 2000-07-25 | Advanced Micro Devices, Inc. | Flexible implementation of a system management mode (SMM) in a processor |
JP3425069B2 (ja) | 1996-10-28 | 2003-07-07 | 富士通株式会社 | バイナリ・プログラム変換装置および方法 |
US6075937A (en) * | 1998-03-18 | 2000-06-13 | International Business Machines Corporation | Preprocessing of stored target routines for controlling emulation of incompatible instructions on a target processor and utilizing target processor feedback for controlling non-sequential incompatible instruction emulation |
US6704925B1 (en) * | 1998-09-10 | 2004-03-09 | Vmware, Inc. | Dynamic binary translator with a system and method for updating and maintaining coherency of a translation cache |
US20020147969A1 (en) * | 1998-10-21 | 2002-10-10 | Richard A. Lethin | Dynamic optimizing object code translator for architecture emulation and dynamic optimizing object code translation method |
-
2004
- 2004-01-15 JP JP2004007460A patent/JP4701611B2/ja not_active Expired - Fee Related
- 2004-09-03 US US10/933,218 patent/US7617087B2/en not_active Expired - Fee Related
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH11212798A (ja) * | 1998-01-26 | 1999-08-06 | Nec Corp | 言語処理方法、言語処理装置及び言語処理プログラムを記録した記憶媒体 |
JP2000076132A (ja) * | 1998-08-31 | 2000-03-14 | Hitachi Ltd | キャッシュメモリを備えた情報処理装置 |
JP2000148506A (ja) * | 1998-11-13 | 2000-05-30 | Nec Corp | キャッシュメモリへのプログラム割り付け装置、キャッシュメモリへのプログラム割り付け方法、及び、その方法をコンピュータに実行させるためのプログラムを記録したコンピュータ読み取り可能な記録媒体 |
JP2001166948A (ja) * | 1999-12-07 | 2001-06-22 | Nec Corp | プログラム変換方法、プログラム変換装置及びプログラム変換プログラムを記憶した記憶媒体 |
JP2003140909A (ja) * | 2001-11-07 | 2003-05-16 | Fujitsu Ltd | Jitコンパイラを備えた仮想計算機 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2018028777A (ja) * | 2016-08-17 | 2018-02-22 | Necプラットフォームズ株式会社 | エミュレーション装置、エミュレーション方法、及び、エミュレーションプログラム |
US10268462B2 (en) | 2016-08-17 | 2019-04-23 | Nec Platforms, Ltd. | Emulation device, emulation method, and recording medium storing emulation program |
Also Published As
Publication number | Publication date |
---|---|
US7617087B2 (en) | 2009-11-10 |
US20050160407A1 (en) | 2005-07-21 |
JP4701611B2 (ja) | 2011-06-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5147280B2 (ja) | 異機種マルチプロセッサ・システムにおけるガーベッジ・コレクションのためのシステムおよび方法 | |
US6971092B1 (en) | System and method for analyzing data accesses of a trace from a computer-executable program to determine data access patterns | |
US10146545B2 (en) | Translation address cache for a microprocessor | |
US6813693B2 (en) | System and method for the discovery and use of repetitively accessed data | |
WO2017067175A1 (zh) | 一种加载elf文件的方法、装置、设备和计算机存储介质 | |
JP5608594B2 (ja) | プレロード命令制御 | |
US20080215848A1 (en) | Method and System For Caching Address Translations From Multiple Address Spaces In Virtual Machines | |
US8839215B2 (en) | String cache file for optimizing memory usage in a java virtual machine | |
KR100955101B1 (ko) | 효율적인 메모리 계층 관리 | |
US8589143B2 (en) | Virtualization apparatus and processing method thereof | |
KR20090026296A (ko) | 예측 데이터 로더 | |
US8856761B2 (en) | Instruction processing method, instruction processing apparatus, and instruction processing program | |
JP2020525905A (ja) | アドレス変換データの無効化 | |
US6052530A (en) | Dynamic translation system and method for optimally translating computer code | |
KR101851330B1 (ko) | 코드 재사용 공격 탐지 장치 및 그 방법 | |
JP4666511B2 (ja) | データ処理におけるメモリキャッシング | |
JP4701611B2 (ja) | 動的変換方式のエミュレータ向けメモリ管理方法 | |
US7143399B2 (en) | Method and apparatus for prefetching memory pages during execution of a computer program | |
US20070203877A1 (en) | Intermediate cache utility for file system access | |
US20100268921A1 (en) | Data collection prefetch device and methods thereof | |
US7975303B1 (en) | Efficient file scanning using input-output hints | |
US6532532B1 (en) | Instruction execution mechanism | |
CN109710267B (zh) | 基于二进制翻译自修改代码检测方法和装置 | |
KR101376884B1 (ko) | 프로그램 명령어 프리페치 제어 장치 및 그 방법 | |
JP3848171B2 (ja) | 計算機シミュレーションプログラム、プロセッサのモデルの検証方法、及び計算機シミュレーション方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
RD04 | Notification of resignation of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7424 Effective date: 20060424 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20061006 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20090105 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20091215 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20100212 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20101109 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20101222 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20110208 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20110221 |
|
LAPS | Cancellation because of no payment of annual fees |