TW200516497A - Method and apparatus for partitioning code in program code conversion - Google Patents
Method and apparatus for partitioning code in program code conversionInfo
- Publication number
- TW200516497A TW200516497A TW093120868A TW93120868A TW200516497A TW 200516497 A TW200516497 A TW 200516497A TW 093120868 A TW093120868 A TW 093120868A TW 93120868 A TW93120868 A TW 93120868A TW 200516497 A TW200516497 A TW 200516497A
- Authority
- TW
- Taiwan
- Prior art keywords
- code
- subject
- partitioning technique
- self
- partitions
- Prior art date
Links
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
- 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/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
- G06F9/3812—Instruction 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
A partitioning technique utilized by a translator to divide the subject code space into regions, referred to hereafter as partitions, where each partition contains a distinct set of basic blocks of subject code and corresponding target code. The partitioning technique divides the translator's representation of subject code and subject code translations into non-overlapping regions of subject memory. In this manner, when the subject program modifies subject code, only those partitions actually affected by the self-modifying code need be discarded and all translations in unaffected partitions can be kept. This partitioning technique is advantageous in limiting the amount of target code that must be retranslated in response to self-modifying code operation. In another process, the partitioning technique allows multithreaded subject programs that also involve self-modifying code to perform code modification in a thread-safe manner.
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 |
GB0328121A GB2404044B (en) | 2003-07-15 | 2003-12-04 | Method and apparatus for partitioning code in program code conversion |
Publications (2)
Publication Number | Publication Date |
---|---|
TW200516497A true TW200516497A (en) | 2005-05-16 |
TWI362614B TWI362614B (en) | 2012-04-21 |
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 After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW093120866A TWI365406B (en) | 2003-07-15 | 2004-07-13 | Shared code caching method and apparatus for program code conversion |
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 (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI447649B (en) * | 2006-10-02 | 2014-08-01 | Ibm | Method and apparatus for administering a process filesystem with respect to program code conversion |
TWI571802B (en) * | 2014-11-25 | 2017-02-21 | 財團法人資訊工業策進會 | Variable inference system and method for software program |
Families Citing this family (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070294675A1 (en) * | 2006-06-20 | 2007-12-20 | Transitive Limited | 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 |
CN101458630B (en) * | 2008-12-30 | 2011-07-27 | 中国科学院软件研究所 | Self-modifying code identification method based on hardware emulator |
US8069339B2 (en) * | 2009-05-20 | 2011-11-29 | Via Technologies, Inc. | Microprocessor with microinstruction-specifiable non-architectural condition code flag register |
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 |
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)
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 |
US6516295B1 (en) * | 1999-06-30 | 2003-02-04 | Bull Hn Information Systems Inc. | Method and apparatus for emulating self-modifying code |
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 |
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 |
-
2003
- 2003-07-15 GB GBGB0316532.1A patent/GB0316532D0/en not_active Ceased
- 2003-12-04 GB GB0328119A patent/GB2404043B/en not_active Expired - Lifetime
- 2003-12-04 GB GB0328121A patent/GB2404044B/en not_active Expired - Lifetime
-
2004
- 2004-07-13 TW TW093120868A patent/TWI362614B/en not_active IP Right Cessation
- 2004-07-13 TW TW093120866A patent/TWI365406B/en not_active IP Right Cessation
- 2004-07-13 CN CNB200480020101XA patent/CN100458687C/en not_active Expired - Lifetime
- 2004-07-13 CN CNB2004800232770A patent/CN100362475C/en not_active Expired - Lifetime
-
2005
- 2005-02-04 HK HK05100970A patent/HK1068698A1/en not_active IP Right Cessation
- 2005-02-04 HK HK05100971A patent/HK1068699A1/en not_active IP Right Cessation
- 2005-12-26 IL IL172830A patent/IL172830A0/en unknown
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI447649B (en) * | 2006-10-02 | 2014-08-01 | Ibm | Method and apparatus for administering a process filesystem with respect to program code conversion |
TWI571802B (en) * | 2014-11-25 | 2017-02-21 | 財團法人資訊工業策進會 | Variable inference system and method for software program |
Also Published As
Publication number | Publication date |
---|---|
HK1068698A1 (en) | 2005-04-29 |
CN100362475C (en) | 2008-01-16 |
GB0328119D0 (en) | 2004-01-07 |
CN1823322A (en) | 2006-08-23 |
GB0328121D0 (en) | 2004-01-07 |
TWI362614B (en) | 2012-04-21 |
CN100458687C (en) | 2009-02-04 |
CN1836210A (en) | 2006-09-20 |
IL172830A0 (en) | 2006-06-11 |
GB0316532D0 (en) | 2003-08-20 |
GB2404044A (en) | 2005-01-19 |
GB2404043A (en) | 2005-01-19 |
GB2404044B (en) | 2006-07-26 |
TWI365406B (en) | 2012-06-01 |
GB2404043B (en) | 2006-04-12 |
TW200515280A (en) | 2005-05-01 |
HK1068699A1 (en) | 2005-04-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2005008487A3 (en) | Method and apparatus for partitioning code in program code conversion | |
TW200516497A (en) | Method and apparatus for partitioning code in program code conversion | |
WO2002005205A8 (en) | Method and system for modeling biological systems | |
AU2002304439A1 (en) | Computer system with natural language to machine language translator | |
WO2005006120A3 (en) | An intermediate representation for multiple exception handling models | |
WO2004070584A3 (en) | Method and apparatus for converting objects between weakly and strongly typed programming frameworks | |
TW200719229A (en) | Method and apparatus for combined execution of native code and target code durign program code conversion | |
TW200517923A (en) | Improved portrayal of navigation objects | |
FR2856298B1 (en) | MACA EXTRACT AND COSMETIC COMPOSITION COMPRISING SUCH AN EXTRACT | |
WO2002103532A3 (en) | Data processing method | |
WO2005024631A3 (en) | Creating and checking runtime data types | |
EP1524596A3 (en) | Systems and methods for using synthetic instructions in a virtual machine | |
BR0308211A (en) | Coumarins Useful as Biomarkers | |
WO2002051055A3 (en) | Computer programming language to describe and encapsulate a computer as a set of classes and objects | |
TW200511116A (en) | Method and apparatus for performing interpreter optimizations during program code conversion | |
EP1519273A3 (en) | Region-based memory management for object-oriented programs | |
BRPI0516727A (en) | methods for treating a cd30 positive lymphoma, for inhibiting the growth of a cd30 expressing cell, and for treating or preventing a disease | |
TW200606706A (en) | System for correct distribution of hypervisor work | |
BR9914907A (en) | Mineral capsule, process for its preparation, and use of the capsules | |
BRPI0412891A (en) | compounds, process for preparing same, pesticidal agent, and process for combating phytopathogenic fungi | |
AU2002311289A8 (en) | Point processing apparatus, point processing method, and program for instructing computer to execute the method | |
WO2004063834A3 (en) | Method and apparatus for instruction compression | |
BR0307341A (en) | Delta1-Pyrrolines | |
DE60319681D1 (en) | ZYTOKAPAZITÄT PROCESS | |
BRPI0416640A (en) | device and method for analyzing a region of interest relative to a predetermined event |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
MK4A | Expiration of patent term of an invention patent |