Data processing: software development – installation – and managem – Software program development tool – Translation of code
Reexamination Certificate
1998-10-21
2002-10-08
Morse, Gregory (Department: 2122)
Data processing: software development, installation, and managem
Software program development tool
Translation of code
C717S138000, C717S139000
Reexamination Certificate
active
06463582
ABSTRACT:
BACKGROUND OF THE INVENTION
The present invention relates to the art of object code translators which operate on a host processing system to emulate a second operating system. More particularly, the present invention relates to the art of dynamic object code translators which perform analysis and computation of an original object code instruction set in real time during execution on a host processor having a host processor object code instruction set.
In the field of object code translators, it becomes necessary to convert object code which has been developed for one computer on another computer having a different computer architecture. Conversion methods for such object code include a conventional method entitled a “static object code conversion method,” in which instruction statements are first converted into an object code of a second architecture before execution. A second conventional method is a “dynamic object code conversion method,” in which a first object code is converted into a second object code while executing instructions.
In the art of static object code conversion methods, execution time is not influenced by the time required for conversion. However, the physical size of the converted object code becomes large upon execution of the static object code conversion. In other words, in the static object code conversion method, a number of operating steps in the converted object code inevitably increases. As a result, there is a problem in that performance of the converted object code deteriorates and inefficiencies are introduced.
On the other hand, in the dynamic object code conversion method, the size of the converted object code becomes relatively small in comparison with the static converted object code. However, the conventional dynamic object code conversion method has a problem in that all objects, including seldom used objects, are converted. In other words, the conventional dynamic object code conversion method fails to efficiently recognize objects which are executed plural times and thereby increases the time needed for conversion of the original object code while sacrificing efficiency.
BRIEF SUMMARY OF THE INVENTION
Accordingly, it is an object of the present invention to provide an object code translator which address the problems in the art while providing dynamic optimization of the translated object code.
It is a further object of the present invention to profile a major program until a compiler completes compiling, with the is profile being used by the compiler to compile and optimize the program.
It is an even further object of the present invention to jump from non-translated code to translated during dynamic optimization and compilation.
It is an even further object of the present invention to provide a dynamic optimizing object code translator with software feedback which computes difference between a number of translation requests sent to the compiler and a number of translations completed.
A further object of the present invention is to provide a dynamic translation of a computer program in one machine language into another machine language while the program is running.
Moreover, it is an object of the present invention to provide a dynamic object code translator which determines segments for translation from a plurality of seeds which correspond to branches in a source object code.
Objects of the present invention are achieved by a computer architecture emulation system which emulates a source computer architecture on a destination computer architecture, including an interpreter for individually translating source object code into corresponding translated object code and for determining a number of executions of branch instructions in the source object code; and a compiler for grouping instructions of the source object code into a segment when a number of executions of a corresponding branch instruction exceeds a threshold number, and for dynamically compiling the segment.
Objects of the present invention are further achieved by a computer architecture emulation system which emulates a source computer architecture on a destination computer architecture system, including a plurality of interpreters for individually translating source object code into corresponding translated object code, wherein each of the plurality of interpreters profile source object code branch information in real time while executing translated object code instructions; and a compiler for grouping source object code instructions from any of the plurality of interpreters into segments based upon corresponding branch instructions in the source object code and for dynamically compiling the segments of the source object code when the corresponding branch instruction is greater than a threshold number.
Even further objects of the present invention are achieved by a computer architecture emulation system which emulates a source computer architecture on a destination computer architecture system, including an interpreter for individually translating source object code into corresponding translated object code, wherein the interpreter profiles branch instructions of the source object code by storing a number executions for each branch instruction and comparing the number of executions with a threshold number, such that branch instructions which exceed the threshold number are seeds; and a compiler for grouping the source object code instructions into segments based upon the seeds and dynamically compiling the segments of the source object code during translation and profiling by the interpreter.
Additional objects of the present invention are achieved by a multi-tasking computer architecture emulation system which emulates a source computer architecture on a multi-tasking destination computer architecture, including an interpreter task for individually translating source object code into corresponding translated object code and for determining a number of executions of branch instructions in the source object code; and a compiler task operating with the interpreter on the multi-tasking destination computer architecture, for grouping instructions of the source object code into a segment when a number of executions of a corresponding branch instruction exceeds a threshold number, and for dynamically compiling the segment.
REFERENCES:
patent: 5751982 (1998-05-01), Morley
patent: 5761477 (1998-06-01), Wahbe et al.
patent: 6115809 (2000-09-01), Mattson, Jr. et al.
patent: 6158047 (2000-12-01), Le et al.
patent: 4-213730 (1992-08-01), None
patent: 6-282437 (1994-10-01), None
Armstrong, HotSpot: A New Breed of Virtual Machine, Java World, Mar. 1998, http://www.javaworld.com/javaworld/jw-03-1998/jw-03-hotspot_p.html.*
Cohn-Lowney, Hot Cold Optimization of Large Windows/NT Applications, IEEE 96, Dec. 1996.*
Conte-Patel-Cox, Using Branch Handling Hardware to Support Profile-driven Optimization, Proceeding of the 1994 27the Annual International Symposium on MicroArchitecture, Dec. 1994.*
Holze-Ungar, Optimizing Dynamically-dispatched Calls with Run-time Type Feedback, 1994 ACM Jun. 1994.*
Office Action from corresponding German Application No. 199 45 992.4-54 dated Sep. 26, 2001.
Raymond J. Hookway, et al., Digital FX!32: Combining Emultion and Binary Translation, Digital Technical Journal, vol. 9, No. 1, (1997) (11 pages total).
Frank Yellin, The Java Native Code API, Jul. 30 1996, pp. 1-21.
Kemal Ebcioglu, et al., IBM Research Report, Daisy: Dynamic Compilation for 100% Architectural Compatibility, RC 20539 (Aug. 5, 1996) Computer Science, pp. 1-82.
Kemal Ebcioglu, et al., Daisy: Dynamic Compilation for 100% Architectural Compatibility, IBM Thomas J. Watson, Research Center, Yorktown Heights, NY 10598, pp. 26-37.
Raymond J. Hookway, et al., Digital FX132: Combining Emultion and Binary Translation (11 pages total).
H. Massalin. Synthesis: An efficient Implementation of Fundamental Operating System Services. Columbia University Computer Science Technical Report CUCS-039-92, published 1992, Chapter 6, pp. 93-108, 137-140.
U.S. patent application Ser. No. 09/132,139, Wada et al., (
Bank, III Joseph A.
Garrett Charles D.
Lethin Richard A.
Sakurai Mitsuo
Wada Mikayo
Fujitsu Limited
Morse Gregory
Nguyen-Ba Hoang-Vu Antony
Staas & Halsey , LLP
LandOfFree
Dynamic optimizing object code translator for architecture... does not yet have a rating. At this time, there are no reviews or comments for this patent.
If you have personal experience with Dynamic optimizing object code translator for architecture..., we encourage you to share that experience with our LandOfFree.com community. Your opinion is very important and Dynamic optimizing object code translator for architecture... will most certainly appreciate the feedback.
Profile ID: LFUS-PAI-O-2972984