Data processing: software development – installation – and managem – Software program development tool – Translation of code
Reexamination Certificate
2001-03-19
2004-11-16
Dam, Tuan (Department: 2122)
Data processing: software development, installation, and managem
Software program development tool
Translation of code
C717S153000, C717S159000
Reexamination Certificate
active
06820254
ABSTRACT:
BACKGROUND OF THE INVENTION
1. Technical Field
The present invention relates to processing instructions In general, and in particular to processing instructions within a computer system. Still more particularly, the present invention relates to a method and system for optimizing code using an optimizing coprocessor within a computer system.
2. Description of the Prior Art
The computer industry is continuously developing new and improved hardware and software for data processing systems. In many cases, software is written for a particular type of hardware architecture. When updated hardware or software is released, the hardware or software that is being superseded is known as legacy hardware or software. In addition, even when referring to the most current release of a software package, if that release is designed for a superseded hardware architecture, the software is known as legacy software.
In order to protect a customer's investment in software, when hardware developers introduce an updated hardware architecture they usually design it to be backward compatible with prior machine instructions so customers can run legacy code on it. The processor is placed on the market with the potential of achieving great performance once the new software is obtained but in many cases the customer never does purchase the new software so the performance gain is never realized. Therefore, there is a need to realize these gains sooner without requiring users to upgrade their software.
One approach to optimizing legacy software is by generating an optimized copy of an entire legacy application before executing that application, either in response to a demand for the application or in advance of any actual request for the application. For example, a computer system may automatically generate an optimized copy of an entire application in response to a user initiating that application. However, such approach introduces an undesirable delay into the initiation process such that the user is forced to wait for the optimization to finish before the application can start execution.
Another approach to optimizing legacy software involves an approach known as in-stream or just-in-time code optimization. According to in-stream code optimization, the process of fetching and executing instructions includes an intermediate optimization step interposed between the fetch step and the execute step for each instruction. In-stream optimization reduces the duration of the delay experienced upon initiation of an application, relative to en-masse optimization. One disadvantage of in-stream optimization, however, is that system performance is decreased due to processing cycles that are consumed by the optimization steps.
The present disclosure provides an improved method for performing optimization without delaying the process of initiating legacy software and without decreasing system performance.
BRIEF SUMMARY OF THE INVENTION
In accordance with a preferred embodiment of the present invention, a data processing system includes a central processing unit (CPU) in communication with a system memory. Within the system memory, there is stored legacy code that does not utilize the full features of the CPU. The data processing system also includes a code-optimizing coprocessor in communication with the CPU and the system memory. Control logic within the code-optimizing coprocessor causes the code-optimizing coprocessor to generate optimized code from the legacy code at the same time the CPU executes the legacy code, such that the optimized code is tailored according to the CPU. After the code-optimizing coprocessor has generated at least some optimized code, the code-optimizing coprocessor causes the CPU to automatically utilize at least some optimized code in lieu of at least some of the legacy code.
All objects, features, and advantages of the present invention will become apparent in the following detailed written description.
REFERENCES:
patent: 4374417 (1983-02-01), Bradley et al.
patent: 5452457 (1995-09-01), Alpert et al.
patent: 5768593 (1998-06-01), Walters et al.
patent: 5835775 (1998-11-01), Washington et al.
patent: 5890013 (1999-03-01), Nair et al.
patent: 5933641 (1999-08-01), Ma
patent: 6014515 (2000-01-01), Burch
patent: 6075939 (2000-06-01), Bunnell et al.
patent: 6314560 (2001-11-01), Dunn et al.
patent: 6339840 (2002-01-01), Kothari et al.
patent: 6615303 (2003-09-01), Endo et al.
Chou et al., “Instruction Path Coprocessors”, Carnegie Mellon University, Department of ECE, pp. 1-24, Mar. 2000.*
Chow et al., “Instruction Path Coprocessors”, ACM, Proceedings of the 27th annual international symposium on Computer architecture, pp.: 270-281, May 2000.*
Chow et al., “PipeRench Implementation of the Instruction Path Coprocessor”, IEEE, pp.: 147-158, Dec. 2000.*
Patel et al., “rePLay: A Hardware Framework for Dynamic Program Optimization”, CiteSeer, http://citeseer.nj.nec.com/patel99replay.html, pp.: 1-26, Dec. 1999.
Smith Jack Robert
Ventrone Sebastian Theodore
Dam Tuan
Dillon & Yudell LLP
Henkler Richard A.
International Business Machines - Corporation
Vo Ted T.
LandOfFree
Method and system for optimizing code using an optimizing... does not yet have a rating. At this time, there are no reviews or comments for this patent.
If you have personal experience with Method and system for optimizing code using an optimizing..., we encourage you to share that experience with our LandOfFree.com community. Your opinion is very important and Method and system for optimizing code using an optimizing... will most certainly appreciate the feedback.
Profile ID: LFUS-PAI-O-3304462