TW200515280A - Shared code caching method and apparatus for program code conversion - Google Patents

Shared code caching method and apparatus for program code conversion

Info

Publication number
TW200515280A
TW200515280A TW093120866A TW93120866A TW200515280A TW 200515280 A TW200515280 A TW 200515280A TW 093120866 A TW093120866 A TW 093120866A TW 93120866 A TW93120866 A TW 93120866A TW 200515280 A TW200515280 A TW 200515280A
Authority
TW
Taiwan
Prior art keywords
code
translations
shared
program code
caching method
Prior art date
Application number
TW093120866A
Other languages
Chinese (zh)
Other versions
TWI365406B (en
Inventor
Geraint North
Original Assignee
Transitive Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Transitive Ltd filed Critical Transitive Ltd
Publication of TW200515280A publication Critical patent/TW200515280A/en
Application granted granted Critical
Publication of TWI365406B publication Critical patent/TWI365406B/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45504Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators
    • G06F9/45516Runtime code conversion or optimisation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3802Instruction prefetching
    • G06F9/3812Instruction prefetching with instruction modification, e.g. store into instruction stream

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)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

Subject program code is translated to target code in basic block units at run-time in a process wherein translation of basic blocks is interleaved with execution of those translations. A shared code cache mechanism is added to persistently store subject code translations, such that a translator may reuse translations that were generated and/or optimized by earlier translator instances.
TW093120866A 2003-07-15 2004-07-13 Shared code caching method and apparatus for program code conversion TWI365406B (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
GBGB0316532.1A GB0316532D0 (en) 2003-07-15 2003-07-15 Method and apparatus for partitioning code in program code conversion
GB0328119A GB2404043B (en) 2003-07-15 2003-12-04 Shared code caching method and apparatus for program code conversion

Publications (2)

Publication Number Publication Date
TW200515280A true TW200515280A (en) 2005-05-01
TWI365406B TWI365406B (en) 2012-06-01

Family

ID=27763853

Family Applications (2)

Application Number Title Priority Date Filing Date
TW093120868A TWI362614B (en) 2003-07-15 2004-07-13 Method, apparatus and computer program product for generating a translation of subject code into target code
TW093120866A TWI365406B (en) 2003-07-15 2004-07-13 Shared code caching method and apparatus for program code conversion

Family Applications Before (1)

Application Number Title Priority Date Filing Date
TW093120868A TWI362614B (en) 2003-07-15 2004-07-13 Method, apparatus and computer program product for generating a translation of subject code into target code

Country Status (5)

Country Link
CN (2) CN100458687C (en)
GB (3) GB0316532D0 (en)
HK (2) HK1068698A1 (en)
IL (1) IL172830A0 (en)
TW (2) TWI362614B (en)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI423122B (en) * 2009-05-20 2014-01-11 Via Tech Inc Microprocessor and instruction processing method
TWI427535B (en) * 2006-06-20 2014-02-21 Ibm Method and apparatus for handling exceptions during binding to native code
US9015727B2 (en) 2008-04-02 2015-04-21 Qualcomm Incorporated Sharing operating system sub-processes across tasks

Families Citing this family (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2442497B (en) * 2006-10-02 2010-03-31 Transitive Ltd Method and apparatus for administering a process filesystem with respect to program code conversion
CN101458630B (en) * 2008-12-30 2011-07-27 中国科学院软件研究所 Self-modifying code identification method based on hardware emulator
US8578357B2 (en) * 2009-12-21 2013-11-05 Intel Corporation Endian conversion tool
US8479176B2 (en) * 2010-06-14 2013-07-02 Intel Corporation Register mapping techniques for efficient dynamic binary translation
CN102043659A (en) * 2010-12-08 2011-05-04 上海交通大学 Compiling device for eliminating memory access conflict and implementation method thereof
US10146545B2 (en) 2012-03-13 2018-12-04 Nvidia Corporation Translation address cache for a microprocessor
US9880846B2 (en) 2012-04-11 2018-01-30 Nvidia Corporation Improving hit rate of code translation redirection table with replacement strategy based on usage history table of evicted entries
US10241810B2 (en) 2012-05-18 2019-03-26 Nvidia Corporation Instruction-optimizing processor with branch-count table in hardware
US20140189310A1 (en) 2012-12-27 2014-07-03 Nvidia Corporation Fault detection in instruction translations
US10108424B2 (en) 2013-03-14 2018-10-23 Nvidia Corporation Profiling code portions to generate translations
US9684607B2 (en) * 2015-02-25 2017-06-20 Microsoft Technology Licensing, Llc Automatic recovery of application cache warmth
CN105700932B (en) * 2014-11-25 2019-02-05 财团法人资讯工业策进会 For the variable inference system and method for software program
CN104375879B (en) * 2014-11-26 2018-02-09 康烁 Based on the binary translation method and device for performing tree depth
CN105893031B (en) * 2016-03-28 2019-12-24 广州华多网络科技有限公司 Cache operation implementation method, service layer method calling method and device
US20180210734A1 (en) * 2017-01-26 2018-07-26 Alibaba Group Holding Limited Methods and apparatus for processing self-modifying codes
US10613844B2 (en) * 2017-11-10 2020-04-07 International Business Machines Corporation Using comments of a program to provide optimizations
CN107902507B (en) * 2017-11-11 2021-05-04 林光琴 Control software field debugging system and debugging method
US11442740B2 (en) * 2020-09-29 2022-09-13 Rockwell Automation Technologies, Inc. Supporting instruction set architecture components across releases
CN112416338A (en) * 2020-11-26 2021-02-26 上海睿成软件有限公司 Code warehouse system based on label
CN117348889B (en) * 2023-12-05 2024-02-02 飞腾信息技术有限公司 Code translation processing method, system, computer system and computer equipment

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5313614A (en) * 1988-12-06 1994-05-17 At&T Bell Laboratories Method and apparatus for direct conversion of programs in object code form between different hardware architecture computer systems
US5619665A (en) * 1995-04-13 1997-04-08 Intrnational Business Machines Corporation Method and apparatus for the transparent emulation of an existing instruction-set architecture by an arbitrary underlying instruction-set architecture
US5875318A (en) * 1996-04-12 1999-02-23 International Business Machines Corporation Apparatus and method of minimizing performance degradation of an instruction set translator due to self-modifying code
US6711667B1 (en) * 1996-06-28 2004-03-23 Legerity, Inc. Microprocessor configured to translate instructions from one instruction set to another, and to store the translated instructions
US6112280A (en) * 1998-01-06 2000-08-29 Hewlett-Packard Company Method and apparatus for distinct instruction pointer storage in a partitioned cache memory
US6205545B1 (en) * 1998-04-30 2001-03-20 Hewlett-Packard Company Method and apparatus for using static branch predictions hints with dynamically translated code traces to improve performance
US6397242B1 (en) * 1998-05-15 2002-05-28 Vmware, Inc. Virtualization system including a virtual machine monitor for a computer with a segmented architecture
US6339822B1 (en) * 1998-10-02 2002-01-15 Advanced Micro Devices, Inc. Using padded instructions in a block-oriented cache
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
GB2348305A (en) * 1999-03-24 2000-09-27 Int Computers Ltd Instruction execution mechanism
US6529862B1 (en) * 1999-06-30 2003-03-04 Bull Hn Information Systems Inc. Method and apparatus for dynamic management of translated code blocks in dynamic object code translation
US6516295B1 (en) * 1999-06-30 2003-02-04 Bull Hn Information Systems Inc. Method and apparatus for emulating self-modifying code
US7072939B1 (en) * 2000-01-27 2006-07-04 International Business Machines Corporation Instant selective multiple soft document sharing between multiple heterogeneous computing devices
US20010049818A1 (en) * 2000-02-09 2001-12-06 Sanjeev Banerjia Partitioned code cache organization to exploit program locallity
US6615300B1 (en) * 2000-06-19 2003-09-02 Transmeta Corporation Fast look-up of indirect branch destination in a dynamic translation system
US6980946B2 (en) * 2001-03-15 2005-12-27 Microsoft Corporation Method for hybrid processing of software instructions of an emulated computer system
US20030093775A1 (en) * 2001-11-14 2003-05-15 Ronald Hilton Processing of self-modifying code under emulation
GB2393274B (en) * 2002-09-20 2006-03-15 Advanced Risc Mach Ltd Data processing system having an external instruction set and an internal instruction set
GB2400937B (en) * 2003-04-22 2005-05-18 Transitive Ltd Method and apparatus for performing interpreter optimizations during program code conversion

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI427535B (en) * 2006-06-20 2014-02-21 Ibm Method and apparatus for handling exceptions during binding to native code
US9015727B2 (en) 2008-04-02 2015-04-21 Qualcomm Incorporated Sharing operating system sub-processes across tasks
TWI423122B (en) * 2009-05-20 2014-01-11 Via Tech Inc Microprocessor and instruction processing method

Also Published As

Publication number Publication date
IL172830A0 (en) 2006-06-11
GB0328121D0 (en) 2004-01-07
GB2404043B (en) 2006-04-12
GB0328119D0 (en) 2004-01-07
HK1068698A1 (en) 2005-04-29
CN1836210A (en) 2006-09-20
HK1068699A1 (en) 2005-04-29
TWI362614B (en) 2012-04-21
GB2404044A (en) 2005-01-19
CN1823322A (en) 2006-08-23
TWI365406B (en) 2012-06-01
CN100362475C (en) 2008-01-16
TW200516497A (en) 2005-05-16
GB2404043A (en) 2005-01-19
CN100458687C (en) 2009-02-04
GB2404044B (en) 2006-07-26
GB0316532D0 (en) 2003-08-20

Similar Documents

Publication Publication Date Title
WO2005008479A3 (en) Shared code caching method and apparatus for program code conversion
TW200515280A (en) Shared code caching method and apparatus for program code conversion
TW200719229A (en) Method and apparatus for combined execution of native code and target code durign program code conversion
TW200504595A (en) Extreme pipeline and optimized reordering technology
BRPI0402409A (en) Adaptive Machine Translation
WO2004095264A3 (en) Method and apparatus for performing interpreter optimizations during program code conversion
HK1072987A1 (en) Phrase-based joint probability model for statistical machine translation
EP1316883A3 (en) System and method for executing program code
GB2442495B (en) Method and apparatus for handling dynamically linked function cells with respect to program code conversion
WO2003105023A3 (en) Statistical machine translation using a large monlingual corpus
BRPI0607812A8 (en) PROCESS FOR TREATMENT OF WASTE AND APPARATUS FOR CARRYING OUT THE PROCESS
WO2010045027A3 (en) Caching runtime generated code
CN101428950B (en) Sewage plant sewage sludge curing/stabilizing treatment material
WO2001022213A3 (en) Optimized bytecode interpreter of virtual machine instructions
BRPI1008308B8 (en) process to produce a compound
TW200617669A (en) Purging without write-back of cache lines containing spent data
CA2425046A1 (en) Method and system for caching database query statements
BR0308283A (en) Machine and process for recycling inorganic and organic waste and obtaining a moldable mass for various uses
TW200725411A (en) Method for automatically translating a high level programming language into an extended activity diagram
BR0214183A (en) Method and installation for radioactive waste treatment
FR2843640B1 (en) PROCESS FOR GENERATING, TRANSMITTING AND PROCESSING DOCUMENTS
CN101739238B (en) Binary floating point translation method aiming at SSE2 instructions
Li et al. Dynamic binary translation and optimization.
DE602004024985D1 (en) SYSTEM AND METHOD FOR INCREMENTAL OBJECT GENERATION
WO2007130805A3 (en) Translation block invalidation prehints in emulation of a target system on a host system