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, look ahead
- G06F9/3802—Instruction prefetching
- G06F9/3812—Instruction prefetching with instruction modification, e.g. store into instruction stream
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 |
---|---|---|---|
TW093120866A TWI365406B (en) | 2003-07-15 | 2004-07-13 | Shared code caching method and apparatus for program code conversion |
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 |
Family Applications Before (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) | CN100362475C (en) |
GB (3) | GB0316532D0 (en) |
HK (2) | HK1068698A1 (en) |
IL (1) | IL172830A0 (en) |
TW (2) | TWI365406B (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 |
GB2400938B (en) * | 2003-04-22 | 2005-07-06 | Transitive Ltd | Method and apparatus for performing lazy byteswapping 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 CN CNB2004800232770A patent/CN100362475C/en active Active
- 2004-07-13 TW TW093120866A patent/TWI365406B/en active
- 2004-07-13 CN CNB200480020101XA patent/CN100458687C/en active Active
- 2004-07-13 TW TW093120868A patent/TWI362614B/en active
-
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 |
CN1823322A (en) | 2006-08-23 |
HK1068699A1 (en) | 2005-04-29 |
GB0316532D0 (en) | 2003-08-20 |
GB2404044A (en) | 2005-01-19 |
CN100362475C (en) | 2008-01-16 |
GB0328121D0 (en) | 2004-01-07 |
GB2404043B (en) | 2006-04-12 |
TWI362614B (en) | 2012-04-21 |
CN1836210A (en) | 2006-09-20 |
GB2404044B (en) | 2006-07-26 |
IL172830A0 (en) | 2006-06-11 |
CN100458687C (en) | 2009-02-04 |
TW200515280A (en) | 2005-05-01 |
GB2404043A (en) | 2005-01-19 |
TWI365406B (en) | 2012-06-01 |
GB0328119D0 (en) | 2004-01-07 |
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 | |
WO2004072796A3 (en) | Reconfigurable processing | |
WO2006044235A3 (en) | Source code translator | |
WO2002005205A8 (en) | Method and system for modeling biological systems | |
WO2005006120A3 (en) | An intermediate representation for multiple exception handling models | |
GB0511414D0 (en) | Method and apparatus for combined execution of native code and target code during program code conversion | |
WO2004070584A3 (en) | Method and apparatus for converting objects between weakly and strongly typed programming frameworks | |
BR0306624A (en) | UI and Framework Automation Framework Classes | |
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 | |
WO2002103532A3 (en) | Data processing method | |
WO2005024631A3 (en) | Creating and checking runtime data types | |
DK313584D0 (en) | PROCEDURES FOR ORGANIC SYNTHESIS OF OLIGOSACCHARIDS CONTAINING GALACTOSAMINE-URIC ACID MASTERS, OBTAINED BY THE PROCESS OIGOSACCHARIDES AND BIOLOGICAL APPLICATION OF SUCH OIGOSACCHARIDS | |
WO2002061576A3 (en) | System, method and article of manufacture for interface constructs in a programming language capable of programming hardware architectures | |
EP1524596A3 (en) | Systems and methods for using synthetic instructions in a virtual machine | |
WO2007021417A3 (en) | Programmable search engine | |
BR0308211A (en) | Coumarins Useful as Biomarkers | |
WO2006085639A3 (en) | Methods and apparatus for instruction set emulation | |
NO950804L (en) | Process for extracting a carotenoid compound | |
SE0100080D0 (en) | New process | |
DE69927602D1 (en) | PROCESS FOR PRODUCING VITAMIN POWDER | |
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 | |
WO2003098436A3 (en) | Method of controlling access to cryptographic resources |