JP5489884B2 - 命令実行装置、命令実行方法、及び命令実行プログラム - Google Patents
命令実行装置、命令実行方法、及び命令実行プログラム Download PDFInfo
- Publication number
- JP5489884B2 JP5489884B2 JP2010148579A JP2010148579A JP5489884B2 JP 5489884 B2 JP5489884 B2 JP 5489884B2 JP 2010148579 A JP2010148579 A JP 2010148579A JP 2010148579 A JP2010148579 A JP 2010148579A JP 5489884 B2 JP5489884 B2 JP 5489884B2
- Authority
- JP
- Japan
- Prior art keywords
- instruction
- specific
- memory area
- unit
- execution
- 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; 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/45525—Optimisation or modification within the same instruction set architecture, e.g. HP Dynamo
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
Description
例えば、他のマシン用のバイナリを実行するバイナリトランスレータ・エミュレータにも適用でき、監視対象の特定の命令の実行に対してなされる、メモリ領域を必要とする任意の付加処理に対して適用可能であることに留意されたい。
Claims (7)
- コンピュータ上で所定の実行系により実行される命令を含む命令列内に含まれる監視対象の特定の命令の実行に対して、メモリ領域を必要とする付加処理を行う命令実行装置であって、
メモリ上に読み込まれた前記命令列内に含まれる前記特定の命令に対し、前記付加処理のためのメモリ領域を確保するメモリ確保部と、
前記特定の命令を、確保した前記メモリ領域にコピーし、かつ、前記付加処理を行う専用命令及び前記メモリ領域の位置を特定する特定情報で置換する命令置換部と、
前記命令列内の前記専用命令の読み出しに応答して、該専用命令と共に置換された前記特定情報から前記メモリ領域を取得し、該メモリ領域を用いて前記付加処理を実行する付加処理実行部と、
取得された前記メモリ領域にコピーされた前記特定の命令を参照して、該特定の命令によりなされる処理と同じ処理を行う被置換命令実行部とを含み、
前記付加処理実行部及び前記被置換命令実行部を、前記専用命令に応答して呼び出される前記専用命令のハンドラとして実装し、
前記メモリ確保部及び前記命令置換部を、前記特定の命令に応答して呼び出される、前記特定の命令のハンドラの一部として実装し、該特定の命令のハンドラは、前記特定の命令を処理すると共に、確保した前記メモリ領域の初期化を行う、
命令実行装置。 - 前記実行系は、Java(R)仮想マシンであり、前記メモリ上に読み込まれた前記命令列は、1以上の前記特定の命令を含む、クラスファイルに含まれる各メソッドのバイトコード列であり、前記メモリ確保部は、前記クラスファイルの前記メソッド毎に、前記メモリ領域を、前記1以上の特定の命令の数に等しい要素数からなる配列として確保し、確保した前記配列の位置情報を前記メソッドに関連付けて保存し、前記命令置換部は、前記バイトコード列内に含まれる前記1以上の特定の命令の各々を、前記配列の各要素にコピーし、かつ、前記専用命令及び前記特定の命令に割り当てられた前記配列のインデックス情報で置換する、請求項1に記載の命令実行装置。
- 前記特定の命令は後方へのジャンプ命令であり、前記メモリ領域を必要とする付加処理は、前記後方へのジャンプ命令の実行回数をカウントするカウンタ処理である、請求項2に記載の命令実行装置。
- 前記配列のインデックス情報は、前記バイトコード列内の前記後方へのジャンプ命令のジャンプ先を示すオフセット情報と置換される、請求項3に記載の命令実行装置。
- 前記配列のインデックス情報は、前記専用命令の命令名に埋め込まれて前記バイトコード列内の前記後方へのジャンプ命令と置換される、請求項3に記載の命令実行装置。
- 前記命令実行装置は、マルチスレッド環境下で動作し、前記特定の命令のハンドラは更に、1のスレッドの要求に基づく前記命令列内の前記特定の命令の読み出しに応答して、処理の実行の待機を要求する待機命令で前記特定の命令を置換し、該特定の命令を一時的な退避場所に格納する待機命令挿入部と、前記命令列内の前記特定の命令を実行中の他のスレッドの有無を確認する実行状態確認部とを含み、前記メモリ確保部は、前記特定の命令を実行中の他のスレッドが存在しないことを条件にその処理を開始し、前記命令置換部は、一時的な退避場所に格納された前記特定の命令を前記メモリ領域にコピーし、かつ、前記バイトコード列内の前記待機命令を、前記専用命令及び前記特定情報で置換する、請求項2に記載の命令実行装置。
- コンピュータ上で所定の実行系により実行される命令を含む命令列内に含まれる監視対象の特定の命令の実行に対してメモリ領域を必要とする付加処理を行う、コンピュータにおいて実行される命令実行プログラムであって、該命令実行プログラムは前記コンピュータに、
メモリ上に読み込まれた前記命令列内に含まれる前記特定の命令に対し、前記付加処理のためのメモリ領域を確保するステップと、
前記特定の命令を、確保した前記メモリ領域にコピーし、かつ、前記付加処理を行う専用命令及び前記メモリ領域の位置を特定する特定情報で置換するステップと、
前記命令列内の前記専用命令の読み出しに応答して、該専用命令と共に置換された前記特定情報から前記メモリ領域を取得し、該メモリ領域を用いて前記付加処理を実行するステップと、
取得された前記メモリ領域にコピーされた前記特定の命令を参照して、該特定の命令によりなされる処理と同じ処理を行うステップと
を実行させ、前記命令実行プログラムは、前記専用命令に応答して呼び出される専用命令のハンドラと、前記特定の命令に応答して呼び出される特定命令のハンドラとを含み、前記専用命令のハンドラは前記確保するステップと、前記置換するステップとを前記コンピュータに実行させ、前記特定命令のハンドラは、前記付加処理を実行するステップと、前記特定の命令によりなされる処理と同じ処理を行うステップとを前記コンピュータに実行させ、かつ、前記コンピュータに、前記特定の命令を処理すると共に、確保した前記メモリ領域の初期化を行わせる、
命令実行プログラム。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2010148579A JP5489884B2 (ja) | 2010-06-30 | 2010-06-30 | 命令実行装置、命令実行方法、及び命令実行プログラム |
US13/165,850 US20120005460A1 (en) | 2010-06-30 | 2011-06-22 | Instruction execution apparatus, instruction execution method, and instruction execution program |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2010148579A JP5489884B2 (ja) | 2010-06-30 | 2010-06-30 | 命令実行装置、命令実行方法、及び命令実行プログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2012014312A JP2012014312A (ja) | 2012-01-19 |
JP5489884B2 true JP5489884B2 (ja) | 2014-05-14 |
Family
ID=45400637
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2010148579A Expired - Fee Related JP5489884B2 (ja) | 2010-06-30 | 2010-06-30 | 命令実行装置、命令実行方法、及び命令実行プログラム |
Country Status (2)
Country | Link |
---|---|
US (1) | US20120005460A1 (ja) |
JP (1) | JP5489884B2 (ja) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9027003B2 (en) * | 2008-03-31 | 2015-05-05 | Vmware, Inc. | Precise branch counting in virtualization systems |
WO2015096120A1 (en) * | 2013-12-27 | 2015-07-02 | Intel Corporation | Techniques for implementing a secure mailbox in resource-constrained embedded systems |
US10191723B2 (en) | 2015-06-30 | 2019-01-29 | Citrix Systems, Inc. | Virtualization layer for mobile applications |
US20180285240A1 (en) * | 2017-04-04 | 2018-10-04 | Microsoft Technology Licensing, Llc | Instrumenting computer programs for telemetry data collection |
US10552185B2 (en) | 2018-05-24 | 2020-02-04 | International Business Machines Corporation | Lightweight and precise value profiling |
Family Cites Families (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5226127A (en) * | 1989-04-07 | 1993-07-06 | Intel Corporation | Method and apparatus providing for conditional execution speed-up in a computer system through substitution of a null instruction for a synchronization instruction under predetermined conditions |
JPH0540654A (ja) * | 1991-08-05 | 1993-02-19 | Tohoku Nippon Denki Software Kk | 任意命令トレースシステム |
JP3305841B2 (ja) * | 1993-12-08 | 2002-07-24 | 株式会社東芝 | プログラム制御装置 |
US6112025A (en) * | 1996-03-25 | 2000-08-29 | Sun Microsystems, Inc. | System and method for dynamic program linking |
US5870607A (en) * | 1996-09-11 | 1999-02-09 | Brown University Research Foundation | Method and apparatus for selective replay of computer programs |
US6289300B1 (en) * | 1998-02-06 | 2001-09-11 | Analog Devices, Inc. | Integrated circuit with embedded emulator and emulation system for use with such an integrated circuit |
US6151709A (en) * | 1998-02-13 | 2000-11-21 | Novell, Inc. | Processes and apparatuses for uploading instructions to a computer |
US6735689B1 (en) * | 2000-05-01 | 2004-05-11 | Raza Microelectronics, Inc. | Method and system for reducing taken branch penalty |
EP1644853A4 (en) * | 2003-07-01 | 2007-01-17 | Stream Engineering Corp | CONTEXT-RELATED STREAMING SYSTEM AND METHOD |
US7849452B2 (en) * | 2004-04-23 | 2010-12-07 | Waratek Pty Ltd. | Modification of computer applications at load time for distributed execution |
US7526608B2 (en) * | 2004-05-28 | 2009-04-28 | Sony Computer Entertainment Inc. | Methods and apparatus for providing a software implemented cache memory |
US7921407B2 (en) * | 2004-08-10 | 2011-04-05 | Oracle America, Inc. | System and method for supporting multiple alternative methods for executing transactions |
US20060225049A1 (en) * | 2005-03-17 | 2006-10-05 | Zhiyuan Lv | Trace based signal scheduling and compensation code generation |
US7669186B2 (en) * | 2005-11-16 | 2010-02-23 | Sun Microsystems, Inc. | Debugging applications at resource constrained virtual machines using dynamically installable lightweight agents |
JP2008204013A (ja) * | 2007-02-16 | 2008-09-04 | Seiko Epson Corp | スレッド動作異常検知方法、マルチスレッドシステム |
US8667476B1 (en) * | 2009-01-20 | 2014-03-04 | Adaptmicrosys LLC | Instruction grouping and ungrouping apparatus and method for an adaptive microprocessor system |
-
2010
- 2010-06-30 JP JP2010148579A patent/JP5489884B2/ja not_active Expired - Fee Related
-
2011
- 2011-06-22 US US13/165,850 patent/US20120005460A1/en not_active Abandoned
Also Published As
Publication number | Publication date |
---|---|
US20120005460A1 (en) | 2012-01-05 |
JP2012014312A (ja) | 2012-01-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7203941B2 (en) | Associating a native resource with an application | |
US8522222B2 (en) | Tracing just-in-time compilation with pointers to local variables | |
US9235433B2 (en) | Speculative object representation | |
US8510710B2 (en) | System and method of using pooled thread-local character arrays | |
TWI442235B (zh) | 記憶體交易群組 | |
US20120198427A1 (en) | Ensuring Register Availability for Dynamic Binary Optimization | |
US8843920B2 (en) | Systems and methods for deferring software implementation decisions until load time | |
JP2012506094A (ja) | ランタイムにおいて生成したコードのキャッシュへの格納 | |
US20090319554A1 (en) | Unified metadata for external components | |
JP2009032252A (ja) | クラッシュダンプ用のメモリアロケーション | |
JP5489884B2 (ja) | 命令実行装置、命令実行方法、及び命令実行プログラム | |
US11579855B2 (en) | Reduced memory consumption of compiler-transformed asynchronous methods | |
EP2080115B1 (en) | Automatic native generation | |
JP5719278B2 (ja) | 情報処理装置、プロファイル対象決定プログラム及び方法 | |
JP2009152790A (ja) | 動的再構成支援プログラム、動的再構成支援方法、動的再構成回路、動的再構成支援装置および動的再構成システム | |
JP2008003882A (ja) | コンパイラプログラム,リストベクトルの領域割当て最適化方法,コンパイル処理装置およびコンパイラプログラムを記録したコンピュータ読み取り可能な記録媒体 | |
US20190265956A1 (en) | Compiler-Generated Asynchronous Enumerable Object | |
KR20060035077A (ko) | 데이터 처리 장치 및 이를 이용한 레지스터 할당 방법 | |
JP5871589B2 (ja) | 情報処理装置、配列の初期サイズ調整プログラム及び方法 | |
JP2003241967A (ja) | プログラム実行装置およびその方法、並びにそこで実行されるプログラム | |
JP6245028B2 (ja) | 実行制御方法、実行制御プログラムおよび実行制御装置 | |
JP6011329B2 (ja) | プログラム生成装置、プログラム生成方法、および、コンピュータ・プログラム | |
JP6691294B2 (ja) | 情報処理装置、ダイナミックリンクプログラムおよびプログラム再開方法 | |
JP2009064125A (ja) | サーバ装置、そのプログラム | |
US10055207B2 (en) | Persistent variables in programming languages |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20130304 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20131129 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20131203 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20140106 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20140121 |
|
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: 20140204 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20140225 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5489884 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
LAPS | Cancellation because of no payment of annual fees |