JP2014174998A5 - - Google Patents

Download PDF

Info

Publication number
JP2014174998A5
JP2014174998A5 JP2014042957A JP2014042957A JP2014174998A5 JP 2014174998 A5 JP2014174998 A5 JP 2014174998A5 JP 2014042957 A JP2014042957 A JP 2014042957A JP 2014042957 A JP2014042957 A JP 2014042957A JP 2014174998 A5 JP2014174998 A5 JP 2014174998A5
Authority
JP
Japan
Prior art keywords
processor
binary conversion
code segment
state
core
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
Application number
JP2014042957A
Other languages
English (en)
Other versions
JP5936640B2 (ja
JP2014174998A (ja
Filing date
Publication date
Priority claimed from US13/795,720 external-priority patent/US9405551B2/en
Application filed filed Critical
Publication of JP2014174998A publication Critical patent/JP2014174998A/ja
Publication of JP2014174998A5 publication Critical patent/JP2014174998A5/ja
Application granted granted Critical
Publication of JP5936640B2 publication Critical patent/JP5936640B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Description

図3の参照を続けると、実行が続けられ、プロファイリングが実行された後に、特定されたコードセグメントに関する情報(例えばホットスポットコード、自己修正コード、エミュレートされるコード)をバイナリ変換エージェントに提供することができる(ブロック320)。例としては、このバイナリ変換エージェントが、ここで説明するバイナリ変換エンジンであってよい。次に制御はブロック330に移行され、ここで、インスツルメントコードセグメントが、コードセグメントから生成され、装備キャッシュ(インスツルメントキャッシュ)に格納されてよい。例としては、このインスツルメントコードの生成には、プロセッサの所与のコアまたはその他のプロセッシングユニットによってサポートされない1以上の命令をエミュレートするための1以上のエミュレーションルーチンが含まれてよい。このようにすることで、インスツルメントコードが、エミュレートされたコードの、より低いコストでの実行を可能とするエミュレーション機能を提供する(例えば、より低い電力消費コアにおいて)。ある実施形態では、変換生成中にOS及びアプリケーションコードの前進予想を確実にするために、時間チェックを行ってよい。このイベントが起こった場合、制御は、ネイティブコードの実行に戻る。次のホットスポットイベントは、プロセッサを、変換生成タスクに戻す。

Claims (22)

  1. 第1の命令セットアーキテクチャ(ISA)の命令を実行する第1のコアと、
    第2のISAの命令を実行する第2のコアと、
    プロセッサによりソフトウェアスタックにトランスペアレントに制御されるバイナリ変換コンテナと、
    前記バイナリ変換コンテナを管理するホスト実体ロジックと、
    を備える前記プロセッサであって、
    前記バイナリ変換コンテナは、バイナリ変換状態を格納するバイナリ変換状態ストレージと、コードセグメントを受け取り、前記コードセグメントのバイナリ変換を生成し、前記バイナリ変換を変換キャッシュに格納するバイナリ変換エンジンを含み、前記バイナリ変換は、前記第2のISA内で利用不可能な前記第1のISAの命令をエミュレートするための少なくとも1つのエミュレーションルーチンを含み、前記第2のコアが前記バイナリ変換を実行し、
    前記第2のコアは前記第1のコアと非対称であり、
    前記ホスト実体ロジックは、バイナリ変換の実行を可能とするべく、前記プロセッサの状態を第1の状態ストレージに格納させ、前記バイナリ変換状態ストレージに格納されている前記バイナリ変換状態を、前記プロセッサ内にロードし、
    前記バイナリ変換が実行された後で、前記バイナリ変換状態を、前記バイナリ変換状態ストレージに格納させ、前記プロセッサの状態を前記第1の状態ストレージからロードする、プロセッサ。
  2. 前記少なくとも1つのエミュレーションルーチンは、前記第2のコアに、第1のベクトルオペランドにオペレーションを実行する命令を実行することを可能にさせ、
    前記第2のコアのデータパスの幅は、前記第1のベクトルオペランドの幅未満である、請求項1に記載のプロセッサ。
  3. 前記プロセッサは、前記コードセグメントを含むアプリケーションをプロファイリングして、前記バイナリ変換エンジンに、前記プロファイリングに呼応して前記バイナリ変換を生成させる、請求項1または2に記載のプロセッサ。
  4. 前記プロセッサは、それぞれがネイティブコードセグメントをバイナリ変換コードセグメントに関連付ける、複数のエントリを含むマッピングテーブルを含む、請求項1から3の何れか一項に記載のプロセッサ。
  5. 前記プロセッサは、前記マッピングテーブルにアクセスして、前記コードセグメントへのエントリポイントに遭遇して、前記マッピングテーブルが、前記コードセグメントを前記バイナリ変換に関連付けるエントリを含むとき、前記コードセグメントの代わりに、前記バイナリ変換を実行する、請求項4に記載のプロセッサ。
  6. 前記バイナリ変換エンジンは、前記コードセグメントの代わりに前記バイナリ変換を実行させるステアリング論理を含む、請求項1から5の何れか一項に記載のプロセッサ。
  7. 前記第2のコアは、前記第1のコアよりも低い電力消費レベルを有する、請求項1から6の何れか一項に記載のプロセッサ。
  8. プロセッサのバイナリ変換エージェントで、第1のコードセグメントバイナリ変換を実行する命令を受信する段階と、
    第1の命令セットアーキテクチャ(ISA)の第1の命令をサポートしていない前記プロセッサのコアの上で実行されると、前記第1の命令をエミュレートする第1のルーチンを含む、前記第1のコードセグメントインスツルメントコードセグメントを生成する段階と、
    前記インスツルメントコードセグメントを、インスツルメントキャッシュメモリに格納する段階と、
    前記第1のコードセグメントへのエントリポイントに遭遇したときに、前記第1のコードセグメントの代わりに前記インスツルメントコードセグメントを実行することを前記コアに可能とするよう、前記プロセッサをプログラミングする段階と
    を備え
    前記インスツルメントコードセグメントを実行する段階は、
    前記エントリポイントに遭遇したときに前記バイナリ変換を実行する命令を受信し、前記プロセッサの状態を第1の状態ストレージに格納させ、前記バイナリ変換エージェントのバイナリ変換状態ストレージに格納されているバイナリ変換状態を、前記プロセッサ内にロードする段階と、
    前記バイナリ変換が実行された後で、前記バイナリ変換状態を前記バイナリ変換エージェントの前記バイナリ変換状態ストレージに格納させ、前記プロセッサの状態を前記第1の状態ストレージからロードする段階と
    を有する、方法。
  9. 前記バイナリ変換エージェントは、前記プロセッサの上で実行されるソフトウェアスタックに対してトランスペアレントである、請求項8に記載の方法。
  10. 前記インスツルメントキャッシュメモリ内の前記インスツルメントコードセグメントの位置に、前記エントリポイントを関連付けるために、マッピングテーブルにエントリを格納する段階を更に備える、請求項8または9に記載の方法。
  11. 前記コアに、第2のコードセグメントの代わりに、第2のインスツルメントコードセグメントを実行させるために、マッピングテーブルにエントリを格納する段階を更に備え、
    前記第2のコードセグメントは、ホットスポットを含む、請求項8から10の何れか一項に記載の方法。
  12. 前記コアに、第3のコードセグメントの代わりに、第3のインスツルメントコードセグメントを実行させるために、マッピングテーブルにエントリを格納する段階を更に備え、
    前記第3のコードセグメントは、自己修正コードを含む、請求項8から11の何れか一項に記載の方法。
  13. 第1のコードセグメントのバイナリ変換を生成して、前記バイナリ変換を変換キャッシュに格納するコードを含む、バイナリ変換コンテナ手段(BTコンテナ手段)と、
    前記BTコンテナ手段を管理して、前記第1のコードセグメントを特定するホスト実体手段と、
    前記BTコンテナ手段をソフトウェアスタックから隔離する保護手段と
    を備えるプロセッサであって
    前記ソフトウェアスタックは、仮想マシンモニタ層(VMM層)と、オペレーティングシステム層(OS層)と、アプリケーション層とを含み、前記BTコンテナ手段は、前記ソフトウェアスタックに対してトランスペアレントであり、
    前記ホスト実体手段は、BT呼び出しへのエントリがあると、前記プロセッサの状態を第1の状態ストレージに格納させ、前記BTコンテナ手段のBT状態ストレージに格納されているBT状態を、前記プロセッサ内にロードし、
    前記バイナリ変換が実行された後で、前記BT状態を、前記BTコンテナ手段の前記BT状態ストレージに格納させ、前記プロセッサの状態を前記第1の状態ストレージからロードする、プロセッサ。
  14. 前記保護手段は、前記BTコンテナ手段の位置を特定するためのレンジ値を格納する少なくとも1つのレジスタを有する、請求項13に記載のプロセッサ。
  15. 前記ホスト実体手段は、前記プロセッサのアイドルコアの上での前記バイナリ変換の実行を可能とするために、前記アイドルコアの状態ストレージに前記BT状態をロードさせ、前記ソフトウェアスタックのアプリケーションは、前記プロセッサの第2のコアの上で実行される、請求項1または1に記載のプロセッサ。
  16. 前記ホスト実体手段は、前記ソフトウェアスタックの前記VMM層及び前記OS層への前記BTコンテナのアクセスを回避させる、請求項13から1の何れか一項に記載のプロセッサ。
  17. 前記ホスト実体手段は、前記ソフトウェアスタックの前記アプリケーション層への前記BTコンテナの書き込みアクセスを回避させる、請求項13から1の何れか一項に記載のプロセッサ。
  18. 前記ホスト実体手段は、前記BTコンテナの、前記プロセッサの状態の第1のサブセットへのアクセスを可能として、前記BTコンテナの、前記プロセッサの状態の第2のサブセットへのアクセスを回避させる、請求項13から1の何れか一項に記載のプロセッサ。
  19. 請求項8から12のいずれか一項に記載の方法を実行するよう構成された通信デバイス。
  20. コンピューターに請求項8から12のいずれか一項に記載の方法を実行させるためのプログラム。
  21. 請求項8から12のいずれか一項に記載の方法を実行する命令を処理する装置。
  22. 請求項8から12のいずれか一項に記載の方法を実行する手段を備える装置。
JP2014042957A 2013-03-12 2014-03-05 協調設計されたプロセッサへの、隔離された実行環境の作成 Expired - Fee Related JP5936640B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US13/795,720 2013-03-12
US13/795,720 US9405551B2 (en) 2013-03-12 2013-03-12 Creating an isolated execution environment in a co-designed processor

Publications (3)

Publication Number Publication Date
JP2014174998A JP2014174998A (ja) 2014-09-22
JP2014174998A5 true JP2014174998A5 (ja) 2015-07-09
JP5936640B2 JP5936640B2 (ja) 2016-06-22

Family

ID=50554836

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014042957A Expired - Fee Related JP5936640B2 (ja) 2013-03-12 2014-03-05 協調設計されたプロセッサへの、隔離された実行環境の作成

Country Status (6)

Country Link
US (1) US9405551B2 (ja)
JP (1) JP5936640B2 (ja)
KR (1) KR101673435B1 (ja)
CN (1) CN104050010A (ja)
DE (1) DE102014003540A1 (ja)
GB (2) GB2514221B (ja)

Families Citing this family (19)

* Cited by examiner, † Cited by third party
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
US9417855B2 (en) * 2011-09-30 2016-08-16 Intel Corporation Instruction and logic to perform dynamic binary translation
US9032381B2 (en) 2012-06-29 2015-05-12 Intel Corporation State recovery methods and apparatus for computing platforms
US9454487B2 (en) * 2012-08-27 2016-09-27 Vmware, Inc. Transparent host-side caching of virtual disks located on shared storage
US9563432B2 (en) * 2013-04-19 2017-02-07 Nvidia Corporation Dynamic configuration of processing pipeline based on determined type of fetched instruction
US9891936B2 (en) 2013-09-27 2018-02-13 Intel Corporation Method and apparatus for page-level monitoring
US9652612B2 (en) * 2015-03-25 2017-05-16 International Business Machines Corporation Security within a software-defined infrastructure
KR102002143B1 (ko) * 2015-04-10 2019-07-19 구글 엘엘씨 네이티브 클라이언트로의 이진 변환
DE112015006436T5 (de) * 2015-04-10 2018-01-04 Google Inc. Binär-umsetzung auf ebene eines gemeinsam genutzten objekts
CN106325819B (zh) 2015-06-17 2019-08-02 华为技术有限公司 计算机指令处理方法、协处理器和系统
US10713146B2 (en) * 2015-06-26 2020-07-14 AVAST Software s.r.o. Dynamic binary translation and instrumentation with postponed attachment to running native threads
US9524183B1 (en) 2015-07-22 2016-12-20 Bluedata Software, Inc. Employing application containers in a large scale processing environment
GB2542646B (en) * 2016-03-18 2017-11-15 Imagination Tech Ltd Non-linear cache logic
US11650902B2 (en) * 2017-11-08 2023-05-16 Intel Corporation Methods and apparatus to perform instruction-level graphics processing unit (GPU) profiling based on binary instrumentation
US11281767B2 (en) * 2018-03-23 2022-03-22 International Business Machines Corporation Secure system state extraction software extensibility via plugin sandboxing
US11188361B1 (en) 2020-06-26 2021-11-30 Red Hat, Inc. Cross-architecture software distribution using a virtual instruction set architecture
US20220308867A1 (en) * 2021-03-26 2022-09-29 Intel Corporation Apparatus and method for managing unsupported instruction set architecture (isa) features in a virtualized environment
CN113342436B (zh) * 2021-06-10 2023-03-17 网易(杭州)网络有限公司 一种游戏翻译方法和装置

Family Cites Families (43)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA1325288C (en) 1989-02-03 1993-12-14 Ricky C. Hetherington Method and apparatus for controlling the conversion of virtual to physical memory addresses in a digital computer system
JPH0581070A (ja) 1990-12-10 1993-04-02 Omron Corp プログラマブルコントローラ、およびプログラマブルコントローラにおけるユーザプログラム実行方法
US5345576A (en) 1991-12-31 1994-09-06 Intel Corporation Microprocessor simultaneously issues an access to an external cache over an external cache bus and to an internal cache, cancels the external cache access on an internal cache hit, and reissues the access over a main memory bus on an external cache miss
JP3516963B2 (ja) 1993-03-12 2004-04-05 株式会社東芝 メモリアクセス制御装置
US5513337A (en) 1994-05-25 1996-04-30 Intel Corporation System for protecting unauthorized memory accesses by comparing base memory address with mask bits and having attribute bits for identifying access operational mode and type
US5524208A (en) 1994-06-09 1996-06-04 Dell Usa, L.P. Method and apparatus for performing cache snoop testing using DMA cycles in a computer system
US5826089A (en) 1996-01-04 1998-10-20 Advanced Micro Devices, Inc. Instruction translation unit configured to translate from a first instruction set to a second instruction set
US6003129A (en) * 1996-08-19 1999-12-14 Samsung Electronics Company, Ltd. System and method for handling interrupt and exception events in an asymmetric multiprocessor architecture
US5926832A (en) 1996-09-26 1999-07-20 Transmeta Corporation Method and apparatus for aliasing memory data in an advanced microprocessor
US6631514B1 (en) 1998-01-06 2003-10-07 Hewlett-Packard Development, L.P. Emulation system that uses dynamic binary translation and permits the safe speculation of trapping operations
US7257814B1 (en) 1998-12-16 2007-08-14 Mips Technologies, Inc. Method and apparatus for implementing atomicity of memory operations in dynamic multi-streaming processors
US7941647B2 (en) 1999-01-28 2011-05-10 Ati Technologies Ulc Computer for executing two instruction sets and adds a macroinstruction end marker for performing iterations after loop termination
US8127121B2 (en) 1999-01-28 2012-02-28 Ati Technologies Ulc Apparatus for executing programs for a first computer architechture on a computer of a second architechture
US8065504B2 (en) 1999-01-28 2011-11-22 Ati International Srl Using on-chip and off-chip look-up tables indexed by instruction address to control instruction execution in a processor
US6820255B2 (en) * 1999-02-17 2004-11-16 Elbrus International Method for fast execution of translated binary code utilizing database cache for low-level code correspondence
US6615340B1 (en) 2000-03-22 2003-09-02 Wilmot, Ii Richard Byron Extended operand management indicator structure and method
US6615300B1 (en) 2000-06-19 2003-09-02 Transmeta Corporation Fast look-up of indirect branch destination in a dynamic translation system
US20020156977A1 (en) 2001-04-23 2002-10-24 Derrick John E. Virtual caching of regenerable data
US20040015874A1 (en) * 2001-05-14 2004-01-22 David Ungar Method and apparatus for finding resource allocation errors in virtual machine compilers
US6907519B2 (en) 2001-11-29 2005-06-14 Hewlett-Packard Development Company, L.P. Systems and methods for integrating emulated and native code
US7269825B1 (en) 2002-12-27 2007-09-11 Unisys Corporation Method and system for relative address translation
JP4713820B2 (ja) * 2003-05-28 2011-06-29 パナソニック株式会社 プログラム実行制御装置、プログラム実行制御方法
US7290253B1 (en) * 2003-09-30 2007-10-30 Vmware, Inc. Prediction mechanism for subroutine returns in binary translation sub-systems of computers
JP4563669B2 (ja) * 2003-11-25 2010-10-13 三菱電機株式会社 命令模擬装置
JP2006039879A (ja) * 2004-07-26 2006-02-09 Aplix Corp クラスファイル実行方法およびJava(R)実行環境プログラム
WO2009076324A2 (en) * 2007-12-10 2009-06-18 Strandera Corporation Strand-based computing hardware and dynamically optimizing strandware for a high performance microprocessor system
US8255882B2 (en) * 2004-12-30 2012-08-28 Intel Corporation Selecting formats for multi-format instructions in binary translation of code from a hybrid source instruction set architecture to a unitary target instruction set architecture
US7734895B1 (en) * 2005-04-28 2010-06-08 Massachusetts Institute Of Technology Configuring sets of processor cores for processing instructions
WO2007101969A1 (en) 2006-03-06 2007-09-13 Arm Limited Accessing a cache in a data processing apparatus
JP4208895B2 (ja) 2006-05-30 2009-01-14 株式会社東芝 キャッシュメモリ装置および処理方法
JP4784827B2 (ja) * 2006-06-06 2011-10-05 学校法人早稲田大学 ヘテロジニアスマルチプロセッサ向けグローバルコンパイラ
US8505002B2 (en) * 2006-09-29 2013-08-06 Arm Limited Translation of SIMD instructions in a data processing system
CN101295265A (zh) 2007-04-25 2008-10-29 国际商业机器公司 全系统isa仿真系统及其识别进程的方法
EP2159706B1 (en) 2007-06-19 2014-09-10 Fujitsu Limited Operation processing apparatus and operation processing method
JP4687729B2 (ja) 2008-03-04 2011-05-25 日本電気株式会社 キャッシュメモリ及びベクトル処理装置並びにベクトルデータ整列方法
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
US8464035B2 (en) 2009-12-18 2013-06-11 Intel Corporation Instruction for enabling a processor wait state
US8700943B2 (en) 2009-12-22 2014-04-15 Intel Corporation Controlling time stamp counter (TSC) offsets for mulitple cores and threads
US8775153B2 (en) 2009-12-23 2014-07-08 Intel Corporation Transitioning from source instruction set architecture (ISA) code to translated code in a partial emulation environment
US20110320766A1 (en) 2010-06-29 2011-12-29 Youfeng Wu Apparatus, method, and system for improving power, performance efficiency by coupling a first core type with a second core type
CN101923492B (zh) 2010-08-11 2013-05-01 上海交通大学 面向嵌入式异构多核上执行动态分配指令的方法
US8683243B2 (en) 2011-03-11 2014-03-25 Intel Corporation Dynamic core selection for heterogeneous multi-core systems
US9417855B2 (en) * 2011-09-30 2016-08-16 Intel Corporation Instruction and logic to perform dynamic binary translation

Similar Documents

Publication Publication Date Title
JP2014174998A5 (ja)
US10162655B2 (en) Hypervisor context switching using TLB tags in processors having more than two hierarchical privilege levels
US10255090B2 (en) Hypervisor context switching using a redirection exception vector in processors having more than two hierarchical privilege levels
US10877793B2 (en) Extending the base address register by modifying the number of read-only bits associated with a device to be presented to a guest operating system
JP5936640B2 (ja) 協調設計されたプロセッサへの、隔離された実行環境の作成
US20130117530A1 (en) Apparatus for translating virtual address space
JP5541036B2 (ja) メモリアクセス制御プログラム、メモリアクセス制御方法、及び情報処理装置
US10162657B2 (en) Device and method for address translation setting in nested virtualization environment
TWI620124B (zh) 虛擬機器控制結構陰影化技術
US10019275B2 (en) Hypervisor context switching using a trampoline scheme in processors having more than two hierarchical privilege levels
KR20140002048A (ko) 결합된 가상 그래픽 장치
JP2007272576A5 (ja)
JP2009512020A5 (ja)
CN107479946B (zh) 一种内核模块的交互行为监控方案
KR101666032B1 (ko) 로드 가능한 모듈에 대한 가상화 지원 방법 및 장치
JP2016513835A5 (ja)
KR101665976B1 (ko) 운영 체제 커널의 자동 반가상화 장치 및 방법
US10649787B2 (en) Exception handling involving emulation of exception triggering data transfer operation using syndrome data store that includes data value to be transferred
US20140208034A1 (en) System And Method for Efficient Paravirtualized OS Process Switching
US11544092B2 (en) Model specific register (MSR) instrumentation
KR20120070326A (ko) 메모리 가상화 장치 및 방법
US20170351617A1 (en) Information processing device, information processing method, and non-transitory computer-readable recording medium storing information processing program
US9122549B2 (en) Method and system for emulation of instructions and hardware using background guest mode processing
TWI660307B (zh) 二元碼轉譯裝置及方法
CN113268726B (zh) 程序代码执行行为的监控方法、计算机设备