GB2404044B - Method and apparatus for partitioning code in program code conversion - Google Patents

Method and apparatus for partitioning code in program code conversion

Info

Publication number
GB2404044B
GB2404044B GB0328121A GB0328121A GB2404044B GB 2404044 B GB2404044 B GB 2404044B GB 0328121 A GB0328121 A GB 0328121A GB 0328121 A GB0328121 A GB 0328121A GB 2404044 B GB2404044 B GB 2404044B
Authority
GB
United Kingdom
Prior art keywords
partitioning
code
program code
conversion
code conversion
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.)
Expired - Lifetime
Application number
GB0328121A
Other versions
GB2404044A (en
GB0328121D0 (en
Inventor
Alex Brown
Paul Knowles
Geraint North
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Transitive Ltd
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 GB0328121D0 publication Critical patent/GB0328121D0/en
Priority to US10/802,309 priority Critical patent/US7934204B2/en
Priority to PCT/GB2004/003026 priority patent/WO2005008487A2/en
Priority to JP2006519994A priority patent/JP4958103B2/en
Priority to TW093120868A priority patent/TWI362614B/en
Publication of GB2404044A publication Critical patent/GB2404044A/en
Application granted granted Critical
Publication of GB2404044B publication Critical patent/GB2404044B/en
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

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)
GB0328121A 2003-07-15 2003-12-04 Method and apparatus for partitioning code in program code conversion Expired - Lifetime GB2404044B (en)

Priority Applications (4)

Application Number Priority Date Filing Date Title
US10/802,309 US7934204B2 (en) 2003-07-15 2004-03-17 Partitioning code in program code conversion
PCT/GB2004/003026 WO2005008487A2 (en) 2003-07-15 2004-07-13 Method and apparatus for partitioning code in program code conversion
JP2006519994A JP4958103B2 (en) 2003-07-15 2004-07-13 Method and apparatus for code partitioning in 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

Applications Claiming Priority (1)

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

Publications (3)

Publication Number Publication Date
GB0328121D0 GB0328121D0 (en) 2004-01-07
GB2404044A GB2404044A (en) 2005-01-19
GB2404044B true GB2404044B (en) 2006-07-26

Family

ID=27763853

Family Applications (3)

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

Family Applications Before (1)

Application Number Title Priority Date Filing Date
GBGB0316532.1A Ceased GB0316532D0 (en) 2003-07-15 2003-07-15 Method and apparatus for partitioning code in program code conversion

Family Applications After (1)

Application Number Title Priority Date Filing Date
GB0328119A Expired - Lifetime GB2404043B (en) 2003-07-15 2003-12-04 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) TWI362614B (en)

Families Citing this family (23)

* Cited by examiner, † Cited by third party
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
GB2442497B (en) * 2006-10-02 2010-03-31 Transitive Ltd Method and apparatus for administering a process filesystem with respect to program code conversion
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
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

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0372835A2 (en) * 1988-12-06 1990-06-13 AT&T Corp. Translation technique
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
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
US6339822B1 (en) * 1998-10-02 2002-01-15 Advanced Micro Devices, Inc. Using padded instructions in a block-oriented cache
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
US20030093775A1 (en) * 2001-11-14 2003-05-15 Ronald Hilton Processing of self-modifying code under emulation
GB2400937A (en) * 2003-04-22 2004-10-27 Transitive Ltd Performing interpreter optimizations during program code conversion

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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
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
US6397242B1 (en) * 1998-05-15 2002-05-28 Vmware, Inc. Virtualization system including a virtual machine monitor for a computer with a segmented architecture
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
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
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

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0372835A2 (en) * 1988-12-06 1990-06-13 AT&T Corp. Translation technique
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
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
US6339822B1 (en) * 1998-10-02 2002-01-15 Advanced Micro Devices, Inc. Using padded instructions in a block-oriented cache
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
US20030093775A1 (en) * 2001-11-14 2003-05-15 Ronald Hilton Processing of self-modifying code under emulation
GB2400937A (en) * 2003-04-22 2004-10-27 Transitive Ltd Performing interpreter optimizations during program code conversion
GB2400938A (en) * 2003-04-22 2004-10-27 Transitive Ltd Lazy byteswapping optimizations during program code conversion
GB2400939A (en) * 2003-04-22 2004-10-27 Transitive Ltd Partial dead code elimination optimizations for program code conversion

Also Published As

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

Similar Documents

Publication Publication Date Title
HK1068698A1 (en) Method and apparatus for partitioning code in program code conversion
GB2398312B (en) Apparatus and method
GB0419003D0 (en) Method and apparatus for inserting code
GB0424574D0 (en) Apparatus and method
GB0320541D0 (en) Structural design apparatus and method therefor
GB0305023D0 (en) Apparatus and method
GB0327981D0 (en) De-blistering apparatus and method
GB0315475D0 (en) Apparatus and method
GB2400938B (en) Method and apparatus for performing lazy byteswapping optimizations during program code conversion
GB2402865B (en) De-Infestation method and apparatus
GB0410751D0 (en) Apparatus and method
GB0328090D0 (en) Apparatus and method
GB0303973D0 (en) Method and apparatus
GB2404238B (en) Apparatus and method
GB0319792D0 (en) Method and apparatus
GB0313439D0 (en) Apparatus and method
AU2003285516A8 (en) Analytical method and apparatus
GB0201234D0 (en) Amenity selection apparatus and method
GB0403325D0 (en) Apparatus and method
GB0305551D0 (en) Method and apparatus
GB0328929D0 (en) Method and apparatus
GB0326900D0 (en) Apparatus and method
GB0308030D0 (en) Apparatus and method
GB0312543D0 (en) Method and apparatus
GB0315932D0 (en) Apparatus and method

Legal Events

Date Code Title Description
REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 1068698

Country of ref document: HK

REG Reference to a national code

Ref country code: HK

Ref legal event code: GR

Ref document number: 1068698

Country of ref document: HK

732E Amendments to the register in respect of changes of name or changes affecting rights (sect. 32/1977)

Free format text: REGISTERED BETWEEN 20090702 AND 20090708

PE20 Patent expired after termination of 20 years

Expiry date: 20231203