JP6458959B2 - 協調設計されたプロセッサ用動的言語アクセラレータ - Google Patents
協調設計されたプロセッサ用動的言語アクセラレータ Download PDFInfo
- Publication number
- JP6458959B2 JP6458959B2 JP2016550253A JP2016550253A JP6458959B2 JP 6458959 B2 JP6458959 B2 JP 6458959B2 JP 2016550253 A JP2016550253 A JP 2016550253A JP 2016550253 A JP2016550253 A JP 2016550253A JP 6458959 B2 JP6458959 B2 JP 6458959B2
- Authority
- JP
- Japan
- Prior art keywords
- accelerator
- bytecode
- dynamic language
- language accelerator
- virtual machine
- 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/10—Program control for peripheral devices
-
- 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
-
- 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
- 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/4401—Bootstrapping
- G06F9/4411—Configuring for operating with peripheral devices; Loading of device drivers
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Devices For Executing Special Programs (AREA)
- Executing Machine-Instructions (AREA)
- Advance Control (AREA)
Description
Claims (19)
- 複数の命令を実行するプロセッサであって、少なくとも1つのコア及び動的言語アクセラレータを含み、前記動的言語アクセラレータと関連付けられたファイル記述子に関するメモリマップド入出力(MMIO)操作に応答してバイトコードを実行し、前記動的言語アクセラレータを用いて前記バイトコードを実行すべく、仮想マシンが、パス名を含むコールに従って、前記仮想マシンがアクセラレータを開くことが可能であると判断し、前記動的言語アクセラレータが前記バイトコードを実行している間、前記少なくとも1つのコアにおけるネイティブコードの実行をブロックし、システムコールを介して、前記動的言語アクセラレータをトリガする仮想マシンの仮想マシン状態に対して前記プロセッサのネイティブ状態のマッピングを構成し、前記仮想マシン状態はバイトコード状態を含み、識別子を前記仮想マシン状態と関連付け、前記動的言語アクセラレータに結合されたアクセラレータネイティブインタフェースをさらに備え、前記動的言語アクセラレータは、前記アクセラレータネイティブインタフェースを介して、ネイティブライブラリにコールバックし、前記ネイティブライブラリを用いて前記仮想マシン用の関数を実行して、前記関数が実行された後に、前記動的言語アクセラレータにおいて前記バイトコードの実行を継続する、プロセッサと、
前記プロセッサに結合されたシステムメモリと、
を備える、
システム。 - 前記動的言語アクセラレータはハードウェア割り込みに応答して実行を中断し、前記プロセッサは前記ネイティブコードを実行して前記ハードウェア割り込みを処理し、前記ハードウェア割り込みが処理された後に、前記プロセッサは前記動的言語アクセラレータを再度トリガする、
請求項1に記載のシステム。 - 前記動的言語アクセラレータは、前記ネイティブコードの実行の前に、前記識別子と関連付けられた前記バイトコード状態を記憶する、
請求項2に記載のシステム。 - 前記仮想マシンは、前記ハードウェア割り込みが処理された後に、少なくとも1つのバイトコードを解釈し、その後、前記動的言語アクセラレータを再度トリガする、
請求項2又は3に記載のシステム。 - 前記動的言語アクセラレータは、前記動的言語アクセラレータの実行中に生じた例外に応答して、前記例外を引き起こしたバイトコード命令の前の前記バイトコードの命令において実行を中断し、
前記プロセッサは、その後、前記バイトコードの少なくとも1つのバイトコード命令を解釈し、ネイティブ例外ハンドラを実行して前記例外を処理し、次に前記動的言語アクセラレータを再度トリガする、
請求項1から4の何れか一項に記載のシステム。 - プロセッサの動的言語アクセラレータを用いてバイトコードを実行すべく、仮想マシンが、パス名を含むコールに従って、前記仮想マシンがアクセラレータを開くことが可能であると判断し、前記動的言語アクセラレータ用のアクセラレータマッピング及び仮想マシン状態を構成し、前記仮想マシン状態を仮想マシンの識別子と関連付ける段階と、
入出力操作を実行して前記動的言語アクセラレータにおいて前記バイトコードの実行をトリガし、前記動的言語アクセラレータが前記バイトコードを実行している間、前記プロセッサのコアにおけるネイティブコードの実行をブロックする段階と、
前記動的言語アクセラレータのアクセラレータネイティブインタフェースを介して、ネイティブライブラリをコールし、前記動的言語アクセラレータ用の関数を処理する段階であって、前記プロセッサが、前記ネイティブライブラリを用いて前記仮想マシン用の関数を実行して、前記関数が実行された後に、前記動的言語アクセラレータにおいて前記バイトコードの実行を継続する、段階と、
前記動的言語アクセラレータが前記バイトコードの少なくとも一部を実行した後に、前記仮想マシンにおいて前記バイトコードの少なくとも1つのバイトコードを解釈する段階と、
を備える、
方法。 - ハードウェア割り込みに応答して、前記識別子と関連付けられたバイトコード状態を記憶し、その後、前記動的言語アクセラレータを中断し、ネイティブコードを実行して前記ハードウェア割り込みを処理する段階をさらに備える、
請求項6に記載の方法。 - 前記ネイティブコードを実行して前記ハードウェア割り込みを処理した後に、前記少なくとも1つのバイトコードを解釈し、その後、前記動的言語アクセラレータを再度トリガして前記バイトコードをさらに実行する段階をさらに備える、
請求項7に記載の方法。 - 例外に応答して、前記識別子と関連付けられたバイトコード状態を記憶し、その後、前記例外の前の命令において前記動的言語アクセラレータを中断し、ネイティブ例外ハンドラを実行して前記例外を処理する段階をさらに備える、
請求項6から8の何れか一項に記載の方法。 - 前記動的言語アクセラレータのアクセラレータネイティブインタフェースを介して、ネイティブライブラリをコールして前記動的言語アクセラレータ用の関数を処理する段階をさらに備える、
請求項6から9の何れか一項に記載の方法。 - 請求項6から10の何れか一項に記載の方法を実行する手段を備える、装置。
- 請求項6から10の何れか一項に記載の方法を実行する手順をコンピュータに実行させる、プログラム。
- 請求項12に記載のプログラムを格納する、コンピュータ可読記憶媒体。
- プロセッサの動的言語アクセラレータを用いてバイトコードを実行すべく、仮想マシンが、パス名を含むコールに従って、前記仮想マシンがアクセラレータを開くことが可能であると判断し、前記動的言語アクセラレータ用のアクセラレータマッピング及び仮想マシン状態を構成し、前記仮想マシン状態を仮想マシンの識別子と関連付ける手段と、
入出力操作を実行して前記動的言語アクセラレータにおいて前記バイトコードの実行をトリガし、前記動的言語アクセラレータが前記バイトコードを実行している間、前記プロセッサのコアにおけるネイティブコードの実行をブロックする手段と、
前記動的言語アクセラレータのアクセラレータネイティブインタフェースを介して、ネイティブライブラリをコールし、前記動的言語アクセラレータ用の関数を処理する手段であって、前記プロセッサが、前記ネイティブライブラリを用いて前記仮想マシン用の関数を実行して、前記関数が実行された後に、前記動的言語アクセラレータにおいて前記バイトコードの実行を継続する、手段と、
前記動的言語アクセラレータが前記バイトコードの少なくとも一部を実行した後に、前記仮想マシンにおいて前記バイトコードの少なくとも1つのバイトコードを解釈する手段と、
を備える、
システム。 - 前記動的言語アクセラレータが開かれることが可能かどうかを判断し、可能でなければ、前記仮想マシンにおいて前記バイトコードを解釈する手段をさらに備える、
請求項14に記載のシステム。 - 前記仮想マシンにおいて前記少なくとも1つのバイトコードを前記解釈した後に、前記動的言語アクセラレータにおいて前記バイトコードの実行を再度トリガする手段をさらに備える、
請求項14又は15に記載のシステム。 - ハードウェア割り込みに応答して、前記識別子と関連付けられたバイトコード状態を記憶し、その後、前記動的言語アクセラレータを中断し、ネイティブコードを実行して前記ハードウェア割り込みを処理する手段をさらに備える、
請求項14から16の何れか一項に記載のシステム。 - 前記ネイティブコードを実行して前記ハードウェア割り込みを処理した後に、前記少なくとも1つのバイトコードを解釈し、その後、前記動的言語アクセラレータを再度トリガして前記バイトコードをさらに実行する手段をさらに備える、
請求項17に記載のシステム。 - 例外に応答して、前記識別子と関連付けられたバイトコード状態を記憶し、その後、前記例外の前の命令において前記動的言語アクセラレータを中断し、ネイティブ例外ハンドラを実行して前記例外を処理する手段をさらに備える、
請求項14から18の何れか一項に記載のシステム。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/225,755 | 2014-03-26 | ||
US14/225,755 US9542211B2 (en) | 2014-03-26 | 2014-03-26 | Co-designed dynamic language accelerator for a processor |
PCT/US2015/022613 WO2015148741A1 (en) | 2014-03-26 | 2015-03-26 | Co-designed dynamic language accelerator for a processor |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2017508208A JP2017508208A (ja) | 2017-03-23 |
JP6458959B2 true JP6458959B2 (ja) | 2019-01-30 |
Family
ID=54190452
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2016550253A Active JP6458959B2 (ja) | 2014-03-26 | 2015-03-26 | 協調設計されたプロセッサ用動的言語アクセラレータ |
Country Status (6)
Country | Link |
---|---|
US (1) | US9542211B2 (ja) |
EP (1) | EP3123341A4 (ja) |
JP (1) | JP6458959B2 (ja) |
KR (1) | KR101879113B1 (ja) |
CN (1) | CN106030558B (ja) |
WO (1) | WO2015148741A1 (ja) |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9639382B2 (en) * | 2014-05-15 | 2017-05-02 | Microsoft Technology Licensing, Llc. | Interactive viewer of intermediate representations of client side code |
US10567517B2 (en) * | 2015-06-05 | 2020-02-18 | Apple Inc. | Web resource load blocking API |
US9996379B2 (en) * | 2016-01-25 | 2018-06-12 | International Business Machines Corporation | Program execution without the use of bytecode modification or injection |
US10459751B2 (en) * | 2017-06-30 | 2019-10-29 | ATI Technologies ULC. | Varying firmware for virtualized device |
US10281669B2 (en) | 2017-07-14 | 2019-05-07 | Senko Advance Components, Inc. | Ultra-small form factor optical connectors |
US10725839B2 (en) * | 2018-07-12 | 2020-07-28 | International Business Machines Corporation | Helping a hardware accelerator using software |
US11806831B2 (en) | 2018-11-21 | 2023-11-07 | Senko Advanced Components, Inc. | Fixture and method for polishing fiber optic connector ferrules |
US11175464B2 (en) | 2018-11-25 | 2021-11-16 | Senko Advanced Components, Inc. | Open ended spring body for use in an optical fiber connector |
EP3794444A4 (en) * | 2019-01-04 | 2022-01-12 | Baidu.com Times Technology (Beijing) Co., Ltd. | METHOD AND SYSTEM FOR THE PROTECTION OF DATA PROCESSED BY DATA PROCESSING ACCELERATORS |
JP2022021554A (ja) * | 2020-07-22 | 2022-02-03 | 富士通株式会社 | アセンブリ命令変換プログラム、アセンブリ命令変換方法、及び情報処理装置 |
CN114253694B (zh) * | 2022-02-25 | 2022-06-24 | 杭州雄迈集成电路技术股份有限公司 | 一种基于神经网络加速器的异步处理方法与装置 |
Family Cites Families (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20010072477A (ko) | 1998-08-13 | 2001-07-31 | 썬 마이크로시스템즈, 인코포레이티드 | 가상 머신 환경에서 네이티브 코드를 변환하고 실행하는방법 및 장치 |
US20050149694A1 (en) * | 1998-12-08 | 2005-07-07 | Mukesh Patel | Java hardware accelerator using microcode engine |
KR20020028814A (ko) * | 2000-10-10 | 2002-04-17 | 나조미 커뮤니케이션즈, 인코포레이티드 | 마이크로코드 엔진을 이용한 자바 하드웨어 가속기 |
US20030023958A1 (en) | 2001-07-17 | 2003-01-30 | Patel Mukesh K. | Intermediate language accelerator chip |
US8769508B2 (en) * | 2001-08-24 | 2014-07-01 | Nazomi Communications Inc. | Virtual machine hardware for RISC and CISC processors |
WO2003025743A1 (fr) * | 2001-09-12 | 2003-03-27 | Hitachi, Ltd. | Systeme processeur ayant un accelerateur java |
JP4035004B2 (ja) * | 2002-06-26 | 2008-01-16 | 株式会社ルネサステクノロジ | 情報処理装置 |
JP4224430B2 (ja) * | 2003-07-07 | 2009-02-12 | 株式会社ルネサステクノロジ | 情報処理装置 |
EP1622009A1 (en) * | 2004-07-27 | 2006-02-01 | Texas Instruments Incorporated | JSM architecture and systems |
JP4602047B2 (ja) * | 2004-10-29 | 2010-12-22 | ルネサスエレクトロニクス株式会社 | 情報処理装置 |
KR20080027821A (ko) * | 2005-07-06 | 2008-03-28 | 마쯔시다덴기산교 가부시키가이샤 | 기록 및 재생 장치 |
CN101763265B (zh) * | 2010-01-19 | 2012-10-03 | 湖南大学 | 一种过程级软硬件协同设计自动化开发方法 |
CN101963918B (zh) * | 2010-10-26 | 2013-05-01 | 上海交通大学 | 实现cpu/gpu异构平台的虚拟执行环境的方法 |
US9836316B2 (en) * | 2012-09-28 | 2017-12-05 | Intel Corporation | Flexible acceleration of code execution |
-
2014
- 2014-03-26 US US14/225,755 patent/US9542211B2/en active Active
-
2015
- 2015-03-26 CN CN201580010721.3A patent/CN106030558B/zh active Active
- 2015-03-26 KR KR1020167023036A patent/KR101879113B1/ko active IP Right Grant
- 2015-03-26 WO PCT/US2015/022613 patent/WO2015148741A1/en active Application Filing
- 2015-03-26 JP JP2016550253A patent/JP6458959B2/ja active Active
- 2015-03-26 EP EP15769489.4A patent/EP3123341A4/en not_active Withdrawn
Also Published As
Publication number | Publication date |
---|---|
JP2017508208A (ja) | 2017-03-23 |
EP3123341A4 (en) | 2017-10-25 |
CN106030558A (zh) | 2016-10-12 |
KR101879113B1 (ko) | 2018-07-16 |
WO2015148741A1 (en) | 2015-10-01 |
KR20160111996A (ko) | 2016-09-27 |
CN106030558B (zh) | 2019-10-11 |
US20150277866A1 (en) | 2015-10-01 |
US9542211B2 (en) | 2017-01-10 |
EP3123341A1 (en) | 2017-02-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6458959B2 (ja) | 協調設計されたプロセッサ用動的言語アクセラレータ | |
JP5608243B2 (ja) | 仮想化環境においてi/o処理を行う方法および装置 | |
US10255090B2 (en) | Hypervisor context switching using a redirection exception vector in processors having more than two hierarchical privilege levels | |
US10162655B2 (en) | Hypervisor context switching using TLB tags in processors having more than two hierarchical privilege levels | |
KR101574403B1 (ko) | 결합된 가상 그래픽 장치 | |
Patel et al. | Embedded hypervisor xvisor: A comparative analysis | |
CN107077337B (zh) | 用于执行根据两个指令集架构编译的应用编码的系统和方法 | |
JP6090452B2 (ja) | コンピューティングデバイス、方法、プログラム、および機械可読ストレージ媒体 | |
US10162657B2 (en) | Device and method for address translation setting in nested virtualization environment | |
US12014199B1 (en) | Virtualization extension modules | |
US10019275B2 (en) | Hypervisor context switching using a trampoline scheme in processors having more than two hierarchical privilege levels | |
US9524178B2 (en) | Defining an instruction path to be compiled by a just-in-time (JIT) compiler | |
Rossier | EmbeddedXEN: A Revisited Architecture of the XEN hypervisor to support ARM-based embedded virtualization | |
CN108292233B (zh) | 开启虚拟机的应用处理器 | |
EP2941694B1 (en) | Capability based device driver framework | |
EP2828747A1 (en) | Hybrid emulation and kernel function processing systems and methods | |
KR101083271B1 (ko) | 액티브엑스 컨트롤 변환 시스템 및 방법 | |
US20150186168A1 (en) | Dedicating processing resources to just-in-time compilers and instruction processors in a dynamic translator | |
KR101462347B1 (ko) | 가상 머신 바이너리 변환 방법 | |
Steil et al. | Inside VMware | |
KR20130051271A (ko) | Arm 기반 운영체제의 가상화를 위한 정책 제공 시스템 및 방법 | |
Mutia | EVALUATION AND ANALYSIS OF OKL4-BASED ANDROID | |
WO2017171744A1 (en) | Method and system for treating interrupts in an embedded system |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20160913 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20160913 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20170815 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20170822 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20171121 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20180320 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20180620 |
|
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: 20181127 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20181211 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6458959 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 |