JP2008299833A - 作業遂行速度を向上させる装置および方法 - Google Patents
作業遂行速度を向上させる装置および方法 Download PDFInfo
- Publication number
- JP2008299833A JP2008299833A JP2008043716A JP2008043716A JP2008299833A JP 2008299833 A JP2008299833 A JP 2008299833A JP 2008043716 A JP2008043716 A JP 2008043716A JP 2008043716 A JP2008043716 A JP 2008043716A JP 2008299833 A JP2008299833 A JP 2008299833A
- Authority
- JP
- Japan
- Prior art keywords
- code
- native
- native code
- block
- bytecode
- 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
- 238000000034 method Methods 0.000 title claims abstract description 24
- 238000012790 confirmation Methods 0.000 claims abstract description 15
- 238000013523 data management Methods 0.000 claims description 11
- 230000005540 biological transmission Effects 0.000 abstract description 6
- 238000013519 translation Methods 0.000 description 16
- 238000010586 diagram Methods 0.000 description 8
- 230000001133 acceleration Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000007796 conventional method Methods 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
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
-
- 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/52—Binary to binary
-
- 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3802—Instruction prefetching
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Devices For Executing Special Programs (AREA)
Abstract
【解決手段】 本発明の実施形態による作業遂行速度を向上させる装置はバイトコードを受信する受信部と、上記受信されたバイトコードがブロックの最後のバイトコードであるのか確認する制御部および上記確認結果によって上記ブロックに含まれた少なくとも一つのバイトコードに対するネイティブコードのうち最初のネイティブコードの住所を送信する送信部を含む。
【選択図】図2
Description
その動作過程を察し見ると、プロセッサ(CPU)上で動作するソフトウェアルーチンが先にバイトコードをロード(load)し、プロセッサはバイトコードあるいはバイトコードの住所をジャバ翻訳加速機に伝達する(S10)。伝達される対象がバイトコードの住所の場合、該当位置にあるバイトコードが呼び出しされ得る。
その他実施形態の具体的な事項は詳細な説明および図面に含まれている。
前述したように、ネイティブコードキャッシュ210にはネイティブコードが保存されるが、ネイティブコードは図4に図示されたようにブロック単位で保存され得る。すなわち、少なくとも一つ以上のブロック410、420、430各々に少なくとも一つ以上のネイティブコードが含み得る。
本発明でブロックは命令語の集合として理解され得る。すなわち、ブロックに含まれた一連の命令語が順次に実行されるものである。したがって、コンパイルとインタープリタのハンドオフを減少させるためにはブロックにより多くの数のネイティブコードが含まれていることが望ましいが、実際にブロックは分岐命令語の位置によってその大きさが決定され得る。
作業遂行速度を向上させるため、状態マシン300の受信部310は、まずプロセッサ100からバイトコードあるいはバイトコードの住所を受信する(S610)。
200 翻訳加速機
210 ネイティブコードキャッシュ
220 バイトコード翻訳機
300 状態マシン
Claims (14)
- バイトコードを受信する受信部と、
上記受信されたバイトコードがブロックの最後のバイトコードであるのかを確認する制御部、および
上記確認結果によって上記ブロックに含まれた少なくとも一つのバイトコードに対するネイティブコード中、最初のネイティブコードの住所を送信する送信部を含む作業遂行速度を向上させる装置。 - 上記ブロックは少なくとも一つ以上の命令語中、分岐命令語の間に含まれた命令語に対するバイトコードを含む、請求項1に記載の作業遂行速度を向上させる装置。
- 上記確認結果によってネイティブコードキャッシュに上記受信されたバイトコードに対するネイティブコードを保存するデータ管理部をさらに含む、請求項1に記載の作業遂行速度を向上させる装置。
- 上記送信部は、上記ネイティブコードキャッシュに保存されたネイティブコード中、上記ブロックの最初のバイトコードに対応するネイティブコードの住所を送信する、請求項3に記載の作業遂行速度を向上させる装置。
- 上記ネイティブコードの住所を受信し、上記ブロックに含まれた少なくとも一つのバイトコードに対するネイティブコードによる作業を遂行するプロセッサをさらに含む、請求項1に記載の作業遂行速度を向上させる装置。
- 上記受信されたバイトコードに対応するネイティブコードの存在可否によって上記受信されたバイトコードに対応するネイティブコードを生成するインタープリタをさらに含む、請求項1に記載の作業遂行速度を向上させる装置。
- 上記バイトコードはジャバコンパイラによって、コンパイルされたジャバコードを含む、請求項1に記載の作業遂行速度を向上させる装置。
- バイトコードを受信する段階と、
上記受信されたバイトコードがブロックの最後のバイトコードであるのかを確認する段階、および
上記確認結果によって上記ブロックに含まれた少なくとも一つのバイトコードに対するネイティブコード中、最初のネイティブコードの住所を送信する段階を含む作業遂行速度を向上させる方法。 - 上記ブロックは少なくとも一つ以上の命令語中、分岐命令語の間に含まれた命令語に対するバイトコードを含む、請求項8に記載の作業遂行速度を向上させる方法。
- 上記確認結果によってネイティブコードキャッシュに上記受信されたバイトコードに対するネイティブコードを保存する段階をさらに含む、請求項8に記載の作業遂行速度を向上させる方法。
- 上記送信する段階は上記ネイティブコードキャッシュに保存されたネイティブコード中、上記ブロックの最初のバイトコードに対応するネイティブコードの住所を送信する段階を含む、請求項10に記載の作業遂行速度を向上させる方法。
- 上記ネイティブコードの住所を受信し、上記ブロックに含まれた少なくとも一つのバイトコードに対するネイティブコードによる作業を遂行する段階をさらに含む、請求項8に記載の作業遂行速度を向上させる方法。
- 上記受信されたバイトコードに対応するネイティブコードの存在可否によって上記受信されたバイトコードに対応するネイティブコードを生成する段階をさらに含む、請求項8に記載の作業遂行速度を向上させる方法。
- 上記バイトコードはジャバコンパイラによってコンパイルされたジャバコードを含む、請求項8に記載の作業遂行速度を向上させる方法。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR10-2007-0054661 | 2007-06-04 | ||
KR1020070054661A KR101407628B1 (ko) | 2007-06-04 | 2007-06-04 | 작업 수행 속도를 향상시키는 장치 및 방법 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2008299833A true JP2008299833A (ja) | 2008-12-11 |
JP5508681B2 JP5508681B2 (ja) | 2014-06-04 |
Family
ID=40089750
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2008043716A Active JP5508681B2 (ja) | 2007-06-04 | 2008-02-26 | 作業遂行速度を向上させる装置および方法 |
Country Status (4)
Country | Link |
---|---|
US (1) | US9235397B2 (ja) |
JP (1) | JP5508681B2 (ja) |
KR (1) | KR101407628B1 (ja) |
CN (1) | CN101344856B (ja) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8286152B2 (en) * | 2007-08-22 | 2012-10-09 | International Business Machines Corporation | Systems, methods, and computer products for just-in-time compilation for virtual machine environments for fast application startup and maximal run-time performance |
US9176714B2 (en) * | 2007-11-12 | 2015-11-03 | International Business Machines Corporation | Re-using legacy libraries in software |
US9836316B2 (en) * | 2012-09-28 | 2017-12-05 | Intel Corporation | Flexible acceleration of code execution |
CN103092618A (zh) * | 2013-01-15 | 2013-05-08 | 东南大学 | 基于软件Cache的Dalvik虚拟机JIT加速方法 |
KR101694291B1 (ko) * | 2014-01-28 | 2017-01-10 | 한국전자통신연구원 | 자바 스크립트 엔진 가속 장치 및 방법 |
CN105589729A (zh) * | 2015-12-28 | 2016-05-18 | 北京锐安科技有限公司 | 一种基于嵌入式虚拟机的动态编译的方法及装置 |
US11188316B2 (en) * | 2020-03-09 | 2021-11-30 | International Business Machines Corporation | Performance optimization of class instance comparisons |
US20210405982A1 (en) * | 2020-06-25 | 2021-12-30 | Red Hat, Inc. | Bytecode transformations using virtual artifacts |
WO2024060232A1 (en) * | 2022-09-23 | 2024-03-28 | Intel Corporation | Apparatus, device, method, and computer program for executing bytecode |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS6410335A (en) * | 1987-07-03 | 1989-01-13 | Nec Corp | System for shortening compiling time |
JP2000267862A (ja) * | 1999-03-09 | 2000-09-29 | Hewlett Packard Co <Hp> | 資源の消費を最小限にするハイブリッド式ジャストインタイム・コンパイラ |
JP2002163116A (ja) * | 2000-10-10 | 2002-06-07 | Nazomi Communications Inc | マイクロコードエンジンを用いたJava(登録商標)ハードウェアアクセラレータ |
JP2003140909A (ja) * | 2001-11-07 | 2003-05-16 | Fujitsu Ltd | Jitコンパイラを備えた仮想計算機 |
JP2006323844A (ja) * | 2005-05-19 | 2006-11-30 | Samsung Electronics Co Ltd | ジャバ仮想マシンでバイトコードの実行時間を短縮するシステム及び方法 |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5768593A (en) * | 1996-03-22 | 1998-06-16 | Connectix Corporation | Dynamic cross-compilation system and method |
US7124407B1 (en) * | 2000-08-16 | 2006-10-17 | Sun Microsystems, Inc. | Method and apparatus for caching native code in a virtual machine interpreter |
US6964039B2 (en) | 2000-12-13 | 2005-11-08 | Esmertec Ag | Method to create optimized machine code through combined verification and translation of JAVA™ bytecode |
US20020156977A1 (en) * | 2001-04-23 | 2002-10-24 | Derrick John E. | Virtual caching of regenerable data |
FR2831969B1 (fr) * | 2001-11-08 | 2004-01-16 | Schneider Automation | Systeme de telechargement et de telemaintenance d'une carte electronique |
US7150012B2 (en) | 2002-10-15 | 2006-12-12 | Nokia Corporation | Method and apparatus for accelerating program execution in platform-independent virtual machines |
AU2002363920A1 (en) * | 2002-10-29 | 2004-05-25 | Freescale Semiconductor, Inc. | Method and apparatus for selectively optimizing interpreted language code |
JP3757235B2 (ja) * | 2003-02-18 | 2006-03-22 | 株式会社Access | ネイティブコンパイル方法、ネイティブコンパイル前処理方法、コンピュータプログラム、サーバ、通信システム、および移動体通信端末装置 |
KR100597413B1 (ko) * | 2004-09-24 | 2006-07-05 | 삼성전자주식회사 | 자바 바이트코드 변환 방법 및 상기 변환을 수행하는 자바인터프리터 |
US20060129990A1 (en) * | 2004-12-13 | 2006-06-15 | International Business Machines Corporation | System, method, and article of manufacture for determining execution counts associated with a software program of an embedded system |
-
2007
- 2007-06-04 KR KR1020070054661A patent/KR101407628B1/ko active IP Right Grant
-
2008
- 2008-01-31 US US12/023,456 patent/US9235397B2/en not_active Expired - Fee Related
- 2008-02-26 JP JP2008043716A patent/JP5508681B2/ja active Active
- 2008-06-03 CN CN200810098633.5A patent/CN101344856B/zh not_active Expired - Fee Related
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS6410335A (en) * | 1987-07-03 | 1989-01-13 | Nec Corp | System for shortening compiling time |
JP2000267862A (ja) * | 1999-03-09 | 2000-09-29 | Hewlett Packard Co <Hp> | 資源の消費を最小限にするハイブリッド式ジャストインタイム・コンパイラ |
JP2002163116A (ja) * | 2000-10-10 | 2002-06-07 | Nazomi Communications Inc | マイクロコードエンジンを用いたJava(登録商標)ハードウェアアクセラレータ |
JP2003140909A (ja) * | 2001-11-07 | 2003-05-16 | Fujitsu Ltd | Jitコンパイラを備えた仮想計算機 |
JP2006323844A (ja) * | 2005-05-19 | 2006-11-30 | Samsung Electronics Co Ltd | ジャバ仮想マシンでバイトコードの実行時間を短縮するシステム及び方法 |
Non-Patent Citations (2)
Title |
---|
CSNG199800644004; 志村浩也、木村康則: 'Java JITコンパイラの試作' 情報処理学会研究報告 第96巻,第106号, 19961031, pp.37〜42, 社団法人情報処理学会 * |
JPN6010041164; 志村浩也、木村康則: 'Java JITコンパイラの試作' 情報処理学会研究報告 第96巻,第106号, 19961031, pp.37〜42, 社団法人情報処理学会 * |
Also Published As
Publication number | Publication date |
---|---|
JP5508681B2 (ja) | 2014-06-04 |
KR20080106795A (ko) | 2008-12-09 |
CN101344856B (zh) | 2014-06-04 |
US9235397B2 (en) | 2016-01-12 |
KR101407628B1 (ko) | 2014-06-13 |
CN101344856A (zh) | 2009-01-14 |
US20080301653A1 (en) | 2008-12-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5508681B2 (ja) | 作業遂行速度を向上させる装置および方法 | |
WO2021036174A1 (zh) | 部署和执行智能合约的方法及装置 | |
US7069549B2 (en) | Multi-threaded fragment patching | |
US9417857B2 (en) | Unifying static and dynamic compiler optimizations in source-code bases | |
US10055208B2 (en) | Extending a virtual machine instruction set architecture | |
US20050028155A1 (en) | Java execution device and Java execution method | |
JP2001508907A (ja) | 仮想マシン命令を実行するための処理装置 | |
KR101407629B1 (ko) | 자바 변환 가속 장치 및 방법 | |
US8589143B2 (en) | Virtualization apparatus and processing method thereof | |
US20060070049A1 (en) | Java bytecode translation method and Java interpreter performing the same | |
US10635472B2 (en) | Import mechanism for hardware intrinsics | |
JP2006302272A (ja) | ジャバ仮想マシンの命令語実行方法及びその装置 | |
US20140157247A1 (en) | Enabling Symbol Resolution of Private Symbols in Legacy Programs and Optimizing Access to the Private Symbols | |
JP2014002790A (ja) | 高速パッチベースメソッドコール | |
JP2002366367A (ja) | プログラム命令解釈 | |
CN114327477A (zh) | 智能合约执行方法、装置、电子装置和存储介质 | |
JP4684571B2 (ja) | エミュレーションコンピュータ技術を実行する直接命令 | |
US10152307B2 (en) | Specifying user defined or translator definitions to use to interpret mnemonics in a computer program | |
JPH11514119A (ja) | 転送可能および転送不可能なプログラム部分を有するプログラムを移送するための方法 | |
JP2005267640A (ja) | 機能を呼び出す方法と装置 | |
US20190266084A1 (en) | Verifying The Validity of a Transition From a Current Tail Template to a New Tail Template for a Fused Object | |
US9600252B2 (en) | System for dynamic compilation of at least one instruction flow | |
US6904516B2 (en) | Mechanism for enabling efficient execution of an instruction | |
KR101598819B1 (ko) | 타겟 독립적인 디버깅 정보를 이용한 코드 변환 방법과 그를 위한 장치 및 컴퓨터로 읽을 수 있는 기록매체 | |
US20060288338A1 (en) | Offset threaded code |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20110225 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20120222 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20121106 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20121120 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20130813 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20131213 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A821 Effective date: 20131225 |
|
A911 | Transfer to examiner for re-examination before appeal (zenchi) |
Free format text: JAPANESE INTERMEDIATE CODE: A911 Effective date: 20140123 |
|
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: 20140225 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20140324 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5508681 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 |