JP2012198657A - 命令処理方法、命令処理装置、及び命令処理プログラム - Google Patents
命令処理方法、命令処理装置、及び命令処理プログラム Download PDFInfo
- Publication number
- JP2012198657A JP2012198657A JP2011061324A JP2011061324A JP2012198657A JP 2012198657 A JP2012198657 A JP 2012198657A JP 2011061324 A JP2011061324 A JP 2011061324A JP 2011061324 A JP2011061324 A JP 2011061324A JP 2012198657 A JP2012198657 A JP 2012198657A
- Authority
- JP
- Japan
- Prior art keywords
- code
- translation
- instruction
- unit
- translated
- 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
- G06F9/45504—Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators
- G06F9/45516—Runtime code conversion or optimisation
- G06F9/4552—Involving translation to a different instruction set architecture, e.g. just-in-time translation in a JVM
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Devices For Executing Special Programs (AREA)
Abstract
【解決手段】命令処理方法は、実行対象プログラムに含まれる命令のうち、逐次解釈による実行回数が閾値以上となった命令の翻訳コードを生成して第一の記憶部に記憶し、所定のタイミングで前記翻訳コードの一部又は全部を前記第一の記憶部より破棄する処理をコンピュータが実行し、前記生成する処理は、前記翻訳コードが破棄されてから所定期間において、前記閾値を前記実行回数に対して相対的に低下させる。
【選択図】図2
Description
ここで、min(x,y)は、xとyとの最小値を示す。したがって、after_gc_time<MAX_GC_TIMEの場合(すなわち、GC実行時刻からの経過時間がMAX_GC_TIME未満である場合)、min(after_gc_time,MAX_GC_TIME)の値は、after_gc_timeとなる。一方、after_gc_time≧MAX_GC_TIMEの場合(すなわち、GC実行時刻からの経過時間がMAX_GC_TIME以上である場合)、min(after_gc_time,MAX_GC_TIME)の値は、MAX_GC_TIMEとなる。
式(2)は、第一の実施の形態の式(1)におけるafter_gc_time及びMAX_GC_TIMEのそれぞれが、after_gc_vol又はMAX_GC_VOLに置換されたものである。したがって、GC実行時からの翻訳コード量がMAX_GC_VOL未満である場合、当該翻訳コード量が小さい程、閾値は実質的に小さくなる。一方、GC実行時刻からの経過時間がMAX_GC_VOL以上である場合、閾値は、本来の値となる。
例えば、定数A=1024、定数B=1が式(3)に当てはめられて、閾値が算出されてもよい。
(付記1)
実行対象プログラムに含まれる命令のうち、逐次解釈による実行回数が閾値以上となった命令の翻訳コードを生成して第一の記憶部に記憶し、
所定のタイミングで前記翻訳コードの一部又は全部を前記第一の記憶部より破棄する処理をコンピュータが実行し、
前記生成する処理は、前記翻訳コードが破棄されてから所定期間において、前記閾値を前記実行回数に対して相対的に低下させる
ことを特徴とする命令処理方法。
(付記2)
前記破棄する処理は、破棄対象の前記翻訳コードの中で、当該翻訳コードの生成後に前記実行対象プログラムにおいて当該翻訳コードに対応する命令が更新されていない翻訳コードを示す情報を第二の記憶部に記憶し、
前記生成する処理は、前記第二の記憶部が記憶する情報が示す前記翻訳コードに関して、破棄されてからの所定期間において前記閾値を低下させる付記1記載の命令処理方法。
(付記3)
前記破棄する処理は、前記第一の記憶部が前記翻訳コードに関連付けて記憶する該翻訳コードに対応する命令の識別情報を退避し、
前記生成する処理は、退避されている前記識別情報に係る命令に関して、破棄されてからの所定期間において前記閾値を低下させる付記1又は2記載の命令処理方法。
(付記4)
実行対象プログラムに含まれる命令のうち、逐次解釈による実行回数が閾値以上となった命令の翻訳コードを生成して第一の記憶部に記憶する生成部と、
所定のタイミングで前記翻訳コードの一部又は全部を前記第一の記憶部より破棄する破棄部とを有し、
前記生成部は、前記翻訳コードが破棄されてから所定期間において、前記閾値を前記実行回数に対して相対的に低下させる命令処理装置。
(付記5)
前記破棄部は、破棄対象の前記翻訳コードの中で、当該翻訳コードの生成後に前記実行対象プログラムにおいて当該翻訳コードに対応する命令が更新されていない翻訳コードを示す情報を第二の記憶部に記憶し、
前記生成部は、前記第二の記憶部が記憶する情報が示す前記翻訳コードに関して、破棄されてからの所定期間において前記閾値を低下させる付記4記載の命令処理装置。
(付記6)
前記破棄部は、前記第一の記憶部が前記翻訳コードに関連付けて記憶する該翻訳コードに対応する命令の識別情報を退避し、
前記生成部は、退避されている前記識別情報に係る命令に関して、破棄されてからの所定期間において前記閾値を低下させる付記4又は5記載の命令処理装置。
(付記7)
実行対象プログラムに含まれる命令のうち、逐次解釈による実行回数が閾値以上となった命令の翻訳コードを生成して第一の記憶部に記憶し、
所定のタイミングで前記翻訳コードの一部又は全部を前記第一の記憶部より破棄する処理をコンピュータに実行させ、
前記生成する処理は、前記翻訳コードが破棄されてから所定期間において、前記閾値を前記実行回数に対して相対的に低下させる命令処理プログラム。
(付記8)
前記破棄する処理は、破棄対象の前記翻訳コードの中で、当該翻訳コードの生成後に前記実行対象プログラムにおいて当該翻訳コードに対応する命令が更新されていない翻訳コードを示す情報を第二の記憶部に記憶し、
前記生成する処理は、前記第二の記憶部が記憶する情報が示す前記翻訳コードに関して、破棄されてからの所定期間において前記閾値を低下させる付記7記載の命令処理プログラム。
(付記9)
前記破棄する処理は、前記第一の記憶部が前記翻訳コードに関連付けて記憶する該翻訳コードに対応する命令の識別情報を退避し、
前記生成する処理は、退避されている前記識別情報に係る命令に関して、破棄されてからの所定期間において前記閾値を低下させる付記7又は8記載の命令処理プログラム。
11 逐次解釈部
12 翻訳要求キュー
13 翻訳部
14 コードキャッシュ部
15 翻訳コード破棄部
16 強制破棄フラグ記憶部
100 ドライブ装置
101 記録媒体
102 補助記憶装置
103 メモリ装置
104 CPU
105 インタフェース装置
B バス
Claims (5)
- 実行対象プログラムに含まれる命令のうち、逐次解釈による実行回数が閾値以上となった命令の翻訳コードを生成して第一の記憶部に記憶し、
所定のタイミングで前記翻訳コードの一部又は全部を前記第一の記憶部より破棄する処理をコンピュータが実行し、
前記生成する処理は、前記翻訳コードが破棄されてから所定期間において、前記閾値を前記実行回数に対して相対的に低下させる
ことを特徴とする命令処理方法。 - 前記破棄する処理は、破棄対象の前記翻訳コードの中で、当該翻訳コードの生成後に前記実行対象プログラムにおいて当該翻訳コードに対応する命令が更新されていない翻訳コードを示す情報を第二の記憶部に記憶し、
前記生成する処理は、前記第二の記憶部が記憶する情報が示す前記翻訳コードに関して、破棄されてからの所定期間において前記閾値を低下させる請求項1記載の命令処理方法。 - 前記破棄する処理は、前記第一の記憶部が前記翻訳コードに関連付けて記憶する該翻訳コードに対応する命令の識別情報を退避し、
前記生成する処理は、退避されている前記識別情報に係る命令に関して、破棄されてからの所定期間において前記閾値を低下させる請求項1又は2記載の命令処理方法。 - 実行対象プログラムに含まれる命令のうち、逐次解釈による実行回数が閾値以上となった命令の翻訳コードを生成して第一の記憶部に記憶する生成部と、
所定のタイミングで前記翻訳コードの一部又は全部を前記第一の記憶部より破棄する破棄部とを有し、
前記生成部は、前記翻訳コードが破棄されてから所定期間において、前記閾値を前記実行回数に対して相対的に低下させる命令処理装置。 - 実行対象プログラムに含まれる命令のうち、逐次解釈による実行回数が閾値以上となった命令の翻訳コードを生成して第一の記憶部に記憶し、
所定のタイミングで前記翻訳コードの一部又は全部を前記第一の記憶部より破棄する処理をコンピュータに実行させ、
前記生成する処理は、前記翻訳コードが破棄されてから所定期間において、前記閾値を前記実行回数に対して相対的に低下させる命令処理プログラム。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2011061324A JP5614348B2 (ja) | 2011-03-18 | 2011-03-18 | 命令処理方法、命令処理装置、及び命令処理プログラム |
US13/421,419 US8856761B2 (en) | 2011-03-18 | 2012-03-15 | Instruction processing method, instruction processing apparatus, and instruction processing program |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2011061324A JP5614348B2 (ja) | 2011-03-18 | 2011-03-18 | 命令処理方法、命令処理装置、及び命令処理プログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2012198657A true JP2012198657A (ja) | 2012-10-18 |
JP5614348B2 JP5614348B2 (ja) | 2014-10-29 |
Family
ID=46829427
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2011061324A Active JP5614348B2 (ja) | 2011-03-18 | 2011-03-18 | 命令処理方法、命令処理装置、及び命令処理プログラム |
Country Status (2)
Country | Link |
---|---|
US (1) | US8856761B2 (ja) |
JP (1) | JP5614348B2 (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2015179318A (ja) * | 2014-03-18 | 2015-10-08 | インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation | バイナリコードの実行を制御する装置及び方法 |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10621092B2 (en) | 2008-11-24 | 2020-04-14 | Intel Corporation | Merging level cache and data cache units having indicator bits related to speculative execution |
US9672019B2 (en) | 2008-11-24 | 2017-06-06 | Intel Corporation | Systems, apparatuses, and methods for a hardware and software system to automatically decompose a program to multiple parallel threads |
WO2013048468A1 (en) | 2011-09-30 | 2013-04-04 | Intel Corporation | Instruction and logic to perform dynamic binary translation |
WO2014143042A1 (en) * | 2013-03-15 | 2014-09-18 | Intel Corporation | Path profiling using hardware and software combination |
US9891936B2 (en) * | 2013-09-27 | 2018-02-13 | Intel Corporation | Method and apparatus for page-level monitoring |
GB2533575A (en) * | 2014-12-22 | 2016-06-29 | Ibm | Elapsed time indications for source code in development environment |
US10635465B2 (en) * | 2015-03-28 | 2020-04-28 | Intel Corporation | Apparatuses and methods to prevent execution of a modified instruction |
US20160306847A1 (en) * | 2015-04-15 | 2016-10-20 | Futurewei Technologies, Inc. | Apparatus and Method for Using Parameterized Intermediate Representation for Just-In-Time Compilation in Database Query Execution Engine |
US10282182B2 (en) * | 2016-09-23 | 2019-05-07 | Intel Corporation | Technologies for translation cache management in binary translation systems |
US11182205B2 (en) * | 2019-01-02 | 2021-11-23 | Mellanox Technologies, Ltd. | Multi-processor queuing model |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH11272476A (ja) * | 1997-10-06 | 1999-10-08 | Sun Microsyst Inc | バイトコードされたプログラムを動的に最適化するための方法及び装置 |
JP2000035890A (ja) * | 1998-05-15 | 2000-02-02 | Internatl Business Mach Corp <Ibm> | コンパイル方法、フレーム検出方法及び装置、コード破棄方法、並びにコンピュータ |
JP2004005650A (ja) * | 2002-05-30 | 2004-01-08 | Hewlett-Packard Development Co Lp | 実行中のコンピュータプログラムの性能を向上させる方法 |
JP2006521597A (ja) * | 2003-02-25 | 2006-09-21 | インテル コーポレイション | 優先度に基づくコードキャッシュ管理 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6189141B1 (en) * | 1998-05-04 | 2001-02-13 | Hewlett-Packard Company | Control path evaluating trace designator with dynamically adjustable thresholds for activation of tracing for high (hot) activity and low (cold) activity of flow control |
GB9813592D0 (en) | 1998-06-25 | 1998-08-19 | Philips Electronics Nv | Dynamic memory space allocation |
JP4573189B2 (ja) * | 1998-10-10 | 2010-11-04 | インターナショナル・ビジネス・マシーンズ・コーポレーション | プログラムコード変換方法 |
GB9825102D0 (en) | 1998-11-16 | 1999-01-13 | Insignia Solutions Plc | Computer system |
US6470492B2 (en) * | 1999-05-14 | 2002-10-22 | Hewlett-Packard Company | Low overhead speculative selection of hot traces in a caching dynamic translator |
-
2011
- 2011-03-18 JP JP2011061324A patent/JP5614348B2/ja active Active
-
2012
- 2012-03-15 US US13/421,419 patent/US8856761B2/en active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH11272476A (ja) * | 1997-10-06 | 1999-10-08 | Sun Microsyst Inc | バイトコードされたプログラムを動的に最適化するための方法及び装置 |
JP2000035890A (ja) * | 1998-05-15 | 2000-02-02 | Internatl Business Mach Corp <Ibm> | コンパイル方法、フレーム検出方法及び装置、コード破棄方法、並びにコンピュータ |
JP2004005650A (ja) * | 2002-05-30 | 2004-01-08 | Hewlett-Packard Development Co Lp | 実行中のコンピュータプログラムの性能を向上させる方法 |
JP2006521597A (ja) * | 2003-02-25 | 2006-09-21 | インテル コーポレイション | 優先度に基づくコードキャッシュ管理 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2015179318A (ja) * | 2014-03-18 | 2015-10-08 | インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation | バイナリコードの実行を制御する装置及び方法 |
Also Published As
Publication number | Publication date |
---|---|
JP5614348B2 (ja) | 2014-10-29 |
US20120239912A1 (en) | 2012-09-20 |
US8856761B2 (en) | 2014-10-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5614348B2 (ja) | 命令処理方法、命令処理装置、及び命令処理プログラム | |
Zhang et al. | Fast restore of checkpointed memory using working set estimation | |
US10558569B2 (en) | Cache controller for non-volatile memory | |
US20140237181A1 (en) | Method and apparatus for preparing a cache replacement catalog | |
US20210192046A1 (en) | Resource Management Unit for Capturing Operating System Configuration States and Managing Malware | |
JP2007272885A (ja) | 代替ページのプールを使用してdma書込みページ障害をコンピュータにより管理するための方法、装置、及びコンピュータ・プログラム | |
JP2009026081A (ja) | メモリ管理方法、情報処理装置及びメモリ管理プログラム | |
US9507657B2 (en) | Investigation program, information processing apparatus, and information processing method | |
US10795708B1 (en) | Transparent disk caching for virtual machines and applications | |
US20170262328A1 (en) | Information processing system, information processing apparatus, information processing method, and computer-readable non-transitory storage medium | |
US9870400B2 (en) | Managed runtime cache analysis | |
US20210191775A1 (en) | Resource Management Unit for Capturing Operating System Configuration States and Offloading Tasks | |
JP2005316632A (ja) | キャッシュ制御およびデータ処理システム並びにその処理プログラム | |
KR20120098068A (ko) | 플래시 메모리 배드 블록 관리 장치 및 방법 | |
US9513824B2 (en) | Control method, control device, and recording medium | |
US9141543B1 (en) | Systems and methods for writing data from a caching agent to main memory according to a pre-clean criterion | |
US20170039110A1 (en) | Computer | |
US20190236076A1 (en) | Computer and cache control method | |
US20210191776A1 (en) | Resource Management Unit for Capturing Operating System Configuration States and Memory Management | |
US8990504B2 (en) | Storage controller cache page management | |
JP4701611B2 (ja) | 動的変換方式のエミュレータ向けメモリ管理方法 | |
JP2012038197A (ja) | 情報処理装置および割込み制御プログラム | |
JP2022522508A (ja) | コールスタックサンプリング | |
US7305661B1 (en) | Mechanism for lossless tracing in an architecture having a delay slot | |
JP4371043B2 (ja) | ストレージシステム、スナップショット制御方法およびプログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20131129 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20140716 |
|
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: 20140812 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20140825 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5614348 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |