JP2012069130A - 仮想マシン環境におけるアプリケーション・プログラム・インタフェースの最適化の方法および装置 - Google Patents
仮想マシン環境におけるアプリケーション・プログラム・インタフェースの最適化の方法および装置 Download PDFInfo
- Publication number
- JP2012069130A JP2012069130A JP2011228831A JP2011228831A JP2012069130A JP 2012069130 A JP2012069130 A JP 2012069130A JP 2011228831 A JP2011228831 A JP 2011228831A JP 2011228831 A JP2011228831 A JP 2011228831A JP 2012069130 A JP2012069130 A JP 2012069130A
- Authority
- JP
- Japan
- Prior art keywords
- processor
- instructions
- instruction
- proxy stub
- managed
- 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.)
- Pending
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
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)
- Executing Machine-Instructions (AREA)
Abstract
【解決手段】1つ以上のプロセッサ命令に関連するプロセッサ命令スタブ(PIPS)が生成される。この「スタブ」は、プログラムの実行時に種々のタスクを実行するために提供される、動的に生成されるコードの一部を指す。そして、生成されたPIPSに基づいて、1つ以上のプロセッサ命令を実行するために最適化アプリケーション・プログラム・インタフェースが生成される。
【選択図】図2
Description
Claims (27)
- 1つ以上のプロセッサ命令に関連するプロセッサ命令プロキシ・スタブを生成するステップと、
前記1つ以上のプロセッサ命令に関連する1つ以上のプロセッサの機能を使用可能にするために、前記プロセッサ命令プロキシ・スタブに基づいて最適化マネージド・アプリケーション・プログラム・インタフェースを生成するステップと
を備える方法。 - 前記1つ以上のプロセッサ命令に関連する前記プロセッサ命令プロキシ・スタブを生成するステップは、マネージド・ランタイム環境の仮想マシンに関連するレイヤにおいて前記プロセッサ命令プロキシ・スタブを生成するステップを備える請求項1に記載の方法。
- 前記1つ以上のプロセッサ命令に関連する前記プロセッサ命令プロキシ・スタブを生成するステップは、マネージド・ランタイム・アプリケーションのインストール時に前記プロセッサ命令プロキシ・スタブを生成するステップを備える請求項1に記載の方法。
- 前記1つ以上のプロセッサ命令に関連する前記プロセッサ命令プロキシ・スタブを生成するステップは、ストリーミングSIMD拡張(SSE)命令、SSE2命令、およびマルチメディア拡張命令のうちの1つに関連する前記プロセッサ命令プロキシ・スタブを生成するステップを備える請求項1に記載の方法。
- 前記1つ以上のプロセッサ命令に関連する前記プロセッサ命令プロキシ・スタブを生成するステップは、仮想マシンのマーシャリング言語コードによって前記プロセッサ命令プロキシ・スタブを生成するステップを備える請求項1に記載の方法。
- 前記プロセッサの前記1つ以上のプロセッサ命令に関連する前記プロセッサ命令プロキシ・スタブを生成するステップは、前記1つ以上のプロセッサ命令に関連する前記プロセッサの識別に応じて、前記プロセッサ命令プロキシ・スタブを生成するステップを備える請求項1に記載の方法。
- 前記最適化マネージド・アプリケーション・プログラム・インタフェースに基づいて、マネージド・ランタイム・アプリケーションの実行中に、前記1つ以上のプロセッサ命令に関連する機能を使用可能にするステップを更に備える請求項1に記載の方法。
- 命令群を記録したマシンアクセス可能な媒体であって、
前記命令群は、マシン上で実行されることにより、
1つ以上のプロセッサ命令に関連するプロセッサ命令プロキシ・スタブを生成し、
前記1つ以上のプロセッサ命令に関連する1つ以上のプロセッサの機能を使用可能にするために前記プロセッサ命令プロキシ・スタブに基づいて、最適化マネージド・アプリケーション・プログラム・インタフェースを生成する
媒体。 - 前記命令は、前記マシンに、マネージド・ランタイム環境の仮想マシンに関連するレイヤにおいて前記プロセッサ命令プロキシ・スタブを生成させることによって、前記1つ以上のプロセッサ命令に関連する前記プロセッサ命令プロキシ・スタブを生成させる請求項8に記載の媒体。
- 前記マシンに前記1つ以上のプロセッサ命令に関連する前記プロセッサ命令プロキシ・スタブを生成させる前記命令は、前記マシンに、マネージド・ランタイム・アプリケーションのインストール中に前記プロセッサ命令プロキシ・スタブを生成させることを備える請求項8に記載の媒体。
- 前記マシンに前記1つ以上のプロセッサ命令に関連する前記プロセッサ命令プロキシ・スタブを生成させる前記命令は、前記マシンに、ストリーミングSIMD拡張(SSE)命令、SSE2命令、およびマルチメディア拡張命令のうちの1つに関連する前記プロセッサ命令プロキシ・スタブを生成させることを備える請求項8に記載の媒体。
- 前記命令は、前記マシンに、仮想マシンのマーシャリング言語コードによって前記プロセッサ命令プロキシ・スタブを生成させることによって、1つ以上のプロセッサ命令に関連する前記プロセッサ命令プロキシ・スタブを生成させる請求項8に記載の媒体。
- 前記命令は、前記マシンに、前記1つ以上のプロセッサ命令に関連する前記プロセッサを識別したこと応じて、前記プロセッサ命令プロキシ・スタブを生成させることによって、前記プロセッサの前記1つ以上のプロセッサ命令に関連する前記プロセッサ命令プロキシ・スタブを生成させる請求項8に記載の媒体。
- 前記命令は、前記マシンに、前記最適化マネージド・アプリケーション・プログラム・インタフェースに基づいてマネージド・ランタイム・アプリケーションを実行させるために、前記1つ以上のプロセッサ命令に関連する機能を使用可能にさせる請求項8に記載の媒体。
- 前記マシンアクセス可能な媒体は、プログラマブル・ゲート・アレイ、特定用途向け集積回路、消去可能プログラマブル・リード・オンリー・メモリ、リード・オンリー・メモリ、ランダム・アクセス・メモリ、磁気メディア、および光メディアのうちの1つからなる請求項8に記載の媒体。
- 1つ以上のプロセッサ命令に関連するプロセッサ命令プロキシ・スタブを生成し、前記プロセッサ命令プロキシ・スタブに基づいて最適化マネージド・アプリケーション・プログラム・インタフェースを生成するプロセッサ命令プロキシ・スタブ・ジェネレータと、
前記1つ以上のプロセッサ命令に関連するプロセッサの1つ以上の機能を使用可能にするために前記最適化マネージド・アプリケーション・プログラム・インタフェースをコンパイルするコンパイラと
を備える装置。 - 前記プロセッサ命令プロキシ・スタブ・ジェネレータは、仮想マシンおよびコンパイラのうちの1つに組み込まれている請求項16に記載の装置。
- 前記プロセッサ命令プロキシ・スタブ・ジェネレータは、前記プロセッサ命令プロキシ・スタブを生成するために、前記1つ以上のプロセッサ命令に関連するプロセッサを識別する請求項16に記載の装置。
- 1つ以上のプロセッサ命令は、ストリーミングSIMD拡張(SSE)命令、SSE2命令、およびマルチメディア拡張命令のうちの1つを有する請求項16に記載の装置。
- 前記コンパイラは、ジャスト・イン・タイム・コンパイラを有する請求項16に記載の装置。
- 前記プロセッサ命令プロキシ・スタブは、マネージド・ランタイム環境の仮想マシンに関連するレイヤにおいて生成される請求項16に記載の装置。
- 前記最適化マネージド・アプリケーション・プログラム・インタフェースは、マネージド・ランタイム・アプリケーションの実行に対して前記1つ以上のプロセッサ命令に関連する機能を使用可能にする請求項16に記載の装置。
- 1つ以上の最適化マネージド・アプリケーション・プログラム・インタフェースを保存するダイナミック・ランダム・メモリ(DRAM)と、
1つ以上のプロセッサ命令に関連するプロセッサ命令プロキシ・スタブを生成し、前記1つ以上のプロセッサ命令に関連する前記プロセッサの1つ以上の機能を使用可能にするために前記プロセッサ命令プロキシ・スタブに基づいて最適化アプリケーション・プログラム・インタフェースを生成する、前記DRAMに接続されたプロセッサと
を備えるプロセッサシステム。 - 1つ以上のプロセッサ命令は、ストリーミングSIMD拡張(SSE)命令、SSE2命令、およびマルチメディア拡張命令のうちの1つを有する請求項23に記載のプロセッサシステム。
- 前記プロセッサ命令プロキシ・スタブは、マネージド・ランタイム環境の仮想マシンに関連するレイヤにおいて生成される請求項23に記載のプロセッサシステム。
- 前記プロセッサ命令プロキシ・スタブは、マネージド・ランタイム・アプリケーションのインストール時に生成される請求項23に記載のプロセッサシステム。
- 前記最適化マネージド・アプリケーション・プログラム・インタフェースは、マネージド・ランタイム・アプリケーションの実行時に前記1つ以上のプロセッサ命令に関連する機能を使用可能にする請求項23に記載のシステム。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/783,840 | 2004-02-20 | ||
US10/783,840 US7516459B2 (en) | 2004-02-20 | 2004-02-20 | Methods and apparatus to optimize managed application program interfaces |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2010051081A Division JP2010176688A (ja) | 2004-02-20 | 2010-03-08 | 仮想マシン環境におけるアプリケーション・プログラム・インタフェースの最適化の方法および装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2012069130A true JP2012069130A (ja) | 2012-04-05 |
JP2012069130A5 JP2012069130A5 (ja) | 2012-07-12 |
Family
ID=34861350
Family Applications (3)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2006553152A Pending JP2007522584A (ja) | 2004-02-20 | 2005-02-02 | 仮想マシン環境におけるアプリケーション・プログラム・インタフェースの最適化の方法および装置 |
JP2010051081A Pending JP2010176688A (ja) | 2004-02-20 | 2010-03-08 | 仮想マシン環境におけるアプリケーション・プログラム・インタフェースの最適化の方法および装置 |
JP2011228831A Pending JP2012069130A (ja) | 2004-02-20 | 2011-10-18 | 仮想マシン環境におけるアプリケーション・プログラム・インタフェースの最適化の方法および装置 |
Family Applications Before (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2006553152A Pending JP2007522584A (ja) | 2004-02-20 | 2005-02-02 | 仮想マシン環境におけるアプリケーション・プログラム・インタフェースの最適化の方法および装置 |
JP2010051081A Pending JP2010176688A (ja) | 2004-02-20 | 2010-03-08 | 仮想マシン環境におけるアプリケーション・プログラム・インタフェースの最適化の方法および装置 |
Country Status (5)
Country | Link |
---|---|
US (1) | US7516459B2 (ja) |
EP (2) | EP1719053A1 (ja) |
JP (3) | JP2007522584A (ja) |
CN (2) | CN101777006B (ja) |
WO (1) | WO2005083564A1 (ja) |
Families Citing this family (26)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4486483B2 (ja) * | 2004-11-26 | 2010-06-23 | 古野電気株式会社 | Tdma通信装置 |
US7472375B2 (en) * | 2005-03-29 | 2008-12-30 | Intel Corporation | Creating managed code from native code |
US9363481B2 (en) * | 2005-04-22 | 2016-06-07 | Microsoft Technology Licensing, Llc | Protected media pipeline |
US8311091B1 (en) * | 2005-06-03 | 2012-11-13 | Visualon, Inc. | Cache optimization for video codecs and video filters or color converters |
US7694285B2 (en) * | 2005-08-30 | 2010-04-06 | Microsoft Corporation | Relaxed and extended delegates |
US20070074185A1 (en) * | 2005-08-30 | 2007-03-29 | Microsoft Corporation | Identifier expressions |
US8429629B2 (en) | 2005-11-30 | 2013-04-23 | Red Hat, Inc. | In-kernel virtual machine for low overhead startup and low resource usage |
US8104034B2 (en) * | 2005-11-30 | 2012-01-24 | Red Hat, Inc. | Purpose domain for in-kernel virtual machine for low overhead startup and low resource usage |
US8612970B2 (en) * | 2005-11-30 | 2013-12-17 | Red Hat, Inc. | Purpose domain for low overhead virtual machines |
US7784041B2 (en) * | 2006-03-30 | 2010-08-24 | Oracle America, Inc. | Mechanism for reducing detectable pauses in dynamic output caused by dynamic compilation |
US7984483B2 (en) | 2007-04-25 | 2011-07-19 | Acxess, Inc. | System and method for working in a virtualized computing environment through secure access |
GB2452316B (en) * | 2007-08-31 | 2009-08-19 | Toshiba Res Europ Ltd | Method of Allocating Resources in a Computer. |
KR101528853B1 (ko) * | 2007-12-14 | 2015-07-01 | 삼성전자주식회사 | Api 서비스 방법과 api 매쉬업 생성 방법, 장치 및기록매체 |
US8479178B2 (en) * | 2008-06-27 | 2013-07-02 | Microsoft Corporation | Compiler in a managed application context |
US8442343B1 (en) * | 2009-05-29 | 2013-05-14 | Adobe Systems Incorporated | Optimization of staged computations |
US8694988B2 (en) * | 2010-10-22 | 2014-04-08 | Adobe Systems Incorporated | Runtime extensions |
US9152437B2 (en) * | 2010-10-28 | 2015-10-06 | Hewlett-Packard Development Company, L.P. | Dynamically installing image processing |
US9223599B1 (en) * | 2012-03-30 | 2015-12-29 | Zynga Inc. | Client-side server for client-side scripting languages |
CN102693150B (zh) * | 2012-05-11 | 2016-06-08 | 深圳市华为技术软件有限公司 | 基于计费专有领域的虚拟机的处理方法及装置 |
US9001136B2 (en) * | 2012-05-30 | 2015-04-07 | Ncr Corporation | Format and method for representing a dynamic digital image |
US8826240B1 (en) * | 2012-09-29 | 2014-09-02 | Appurify, Inc. | Application validation through object level hierarchy analysis |
CN103020530A (zh) * | 2012-11-23 | 2013-04-03 | 山东电力集团公司 | 一种基于嵌入式平台sm2加密算法的优化方法 |
US20150286471A1 (en) * | 2012-12-06 | 2015-10-08 | Integrity Project Ltd | System and methods thereof for safe compilation of code into embedded processing systems |
CN103136029A (zh) * | 2013-03-12 | 2013-06-05 | 无锡江南计算技术研究所 | 即时编译系统自适应调优方法 |
US9720661B2 (en) * | 2014-03-31 | 2017-08-01 | International Businesss Machines Corporation | Selectively controlling use of extended mode features |
US11023556B2 (en) * | 2019-07-10 | 2021-06-01 | Salesforce.Com, Inc. | Web page designing with content beam to device preview |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1313012A1 (en) * | 2001-11-15 | 2003-05-21 | Texas Instruments France | Java DSP acceleration by byte-code optimization |
US20050172286A1 (en) * | 2004-02-03 | 2005-08-04 | Microsoft Corporation | Hosted code runtime protection |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5339430A (en) * | 1992-07-01 | 1994-08-16 | Telefonaktiebolaget L M Ericsson | System for dynamic run-time binding of software modules in a computer system |
EP1313021B1 (en) | 1995-06-30 | 2007-01-03 | Sony Corporation | Data recording method and apparatus, data record medium and data reproducing method and apparatus |
US5999732A (en) | 1998-03-23 | 1999-12-07 | Sun Microsystems, Inc. | Techniques for reducing the cost of dynamic class initialization checks in compiled code |
US6332215B1 (en) * | 1998-12-08 | 2001-12-18 | Nazomi Communications, Inc. | Java virtual machine hardware for RISC and CISC processors |
WO2002041145A2 (en) | 2000-11-20 | 2002-05-23 | Zucotto Wireless Inc. | System and methods providing runtime byte code simplification for platform independent languages |
US7225260B2 (en) * | 2001-09-28 | 2007-05-29 | Symbol Technologies, Inc. | Software method for maintaining connectivity between applications during communications by mobile computer terminals operable in wireless networks |
US7213240B2 (en) * | 2001-10-05 | 2007-05-01 | Sun Microsystems, Inc. | Platform-independent selective ahead-of-time compilation |
US6993750B2 (en) * | 2001-12-13 | 2006-01-31 | Hewlett-Packard Development Company, L.P. | Dynamic registration of dynamically generated code and corresponding unwind information |
US7158924B2 (en) * | 2002-04-04 | 2007-01-02 | International Business Machines Corporation | Dynamic loading of C-API HDL model instrumentation |
US7203941B2 (en) * | 2002-11-14 | 2007-04-10 | Microsoft Corporation | Associating a native resource with an application |
US7707566B2 (en) * | 2003-06-26 | 2010-04-27 | Microsoft Corporation | Software development infrastructure |
US7770202B2 (en) * | 2004-02-03 | 2010-08-03 | Microsoft Corporation | Cross assembly call interception |
-
2004
- 2004-02-20 US US10/783,840 patent/US7516459B2/en active Active
-
2005
- 2005-02-02 CN CN2010100044586A patent/CN101777006B/zh active Active
- 2005-02-02 EP EP05712435A patent/EP1719053A1/en not_active Ceased
- 2005-02-02 CN CN200580005548A patent/CN100594479C/zh active Active
- 2005-02-02 EP EP16020341.0A patent/EP3136233B1/en active Active
- 2005-02-02 JP JP2006553152A patent/JP2007522584A/ja active Pending
- 2005-02-02 WO PCT/US2005/002989 patent/WO2005083564A1/en not_active Application Discontinuation
-
2010
- 2010-03-08 JP JP2010051081A patent/JP2010176688A/ja active Pending
-
2011
- 2011-10-18 JP JP2011228831A patent/JP2012069130A/ja active Pending
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1313012A1 (en) * | 2001-11-15 | 2003-05-21 | Texas Instruments France | Java DSP acceleration by byte-code optimization |
US20050172286A1 (en) * | 2004-02-03 | 2005-08-04 | Microsoft Corporation | Hosted code runtime protection |
Also Published As
Publication number | Publication date |
---|---|
US20050188382A1 (en) | 2005-08-25 |
US7516459B2 (en) | 2009-04-07 |
WO2005083564A1 (en) | 2005-09-09 |
JP2010176688A (ja) | 2010-08-12 |
EP3136233A1 (en) | 2017-03-01 |
JP2007522584A (ja) | 2007-08-09 |
CN100594479C (zh) | 2010-03-17 |
CN101777006B (zh) | 2013-11-13 |
CN1922575A (zh) | 2007-02-28 |
EP1719053A1 (en) | 2006-11-08 |
CN101777006A (zh) | 2010-07-14 |
EP3136233B1 (en) | 2019-12-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2012069130A (ja) | 仮想マシン環境におけるアプリケーション・プログラム・インタフェースの最適化の方法および装置 | |
US10466986B2 (en) | Optimized recompilation using hardware tracing | |
US10367822B2 (en) | Restrictive access control for modular reflection | |
US7657881B2 (en) | Using optimized libraries to improve performance of deployed application code at runtime | |
US7913240B2 (en) | Method and apparatus for transforming java native interface function calls into simpler operations during just-in-time compilation | |
US7917898B2 (en) | Methods and apparatus to provide a modular native method invocation system | |
US8312439B2 (en) | Inlining native functions into compiled java code | |
US7765527B2 (en) | Per thread buffering for storing profiling data | |
US9003402B1 (en) | Method and system for injecting function calls into a virtual machine | |
EP3350696B1 (en) | Overriding a migrated method of an updated type | |
US7844960B2 (en) | Optimizing software program execution during class loading phase | |
US7765537B2 (en) | Profiling interface assisted class loading for byte code instrumented logic | |
US7793275B2 (en) | Methods and apparatus to tune intermediate representations in a managed runtime environment | |
JP2014002790A (ja) | 高速パッチベースメソッドコール | |
US20050251652A1 (en) | Methods and apparatus for processing an extensible firmware interface byte code instruction in a loop | |
US10394610B2 (en) | Managing split packages in a module system | |
EP1046985A2 (en) | File portability techniques | |
US11726786B2 (en) | Lazy copying of runtime-managed stack frames | |
TWI549056B (zh) | 以函式庫作業系統達成之應用程式相容性 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20120523 |
|
A871 | Explanation of circumstances concerning accelerated examination |
Free format text: JAPANESE INTERMEDIATE CODE: A871 Effective date: 20120523 |
|
A975 | Report on accelerated examination |
Free format text: JAPANESE INTERMEDIATE CODE: A971005 Effective date: 20120531 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20120612 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20120910 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20121002 |