Reexamination Certificate
1999-02-10
2001-01-30
Stamber, Eric W. (Department: 2763)
Reexamination Certificate
active
06179488
ABSTRACT:
BACKGROUND OF THE INVENTION
This invention relates to a system for and methods of executing a software program.
It is becoming more and more common for Processors Manufacturer to release the design criteria of a new processor a considerable time before the processor is available in hardware form and in particular before the internal circuitry of the processor is known. (The term processor includes microprocessors, digital signal processors, microcode processors and any other programmable sequenced-based digital circuitry). One example is Intelt's PENTIUM (Registered Trade Mark). Software Designers are obviously keen to have software available for such new processors as soon as devices incorporating them come on to the market. Equally hardware Designers wish to know whether they can use the new processor with particular software and peripheral hardware. Attempts at simulating processors have been made but these are very limited in their application and in particular tend to require a knowledge of the internal architecture of the processor before any steps can be taken. They may also require the creation of a compiler for that particular processor.
SUMMARY OF THE INVENTION
From one aspect the invention consists in a system for executing a software program including a simulator for simulating a specific processor, a processing means for executing the non-specific parts of the program and including means for identifying those parts of the program which require execution by the specific processor and a bidirectional bus, or other communication channel, for feeding the identified program parts to the simulator and for returning any resultant response to the processing means.
The invention also includes a method of testing or evaluating software on a simulated specific processor including the steps of executing the program on an existing processor, identifying program parts which require processing by the specific processor, feeding these program parts to the simulator and returning any resultant simulated response to the existing processor.
It will thus be seen that with the present invention a completely novel approach is used in that a general purpose and existing processor is combined with a simulator and the latter is configured only to simulate those interactions and responses which are specific to the simulated processor; all other parts of the program being executed on the general purpose processor.
This fresh approach to the problem not only significantly reduces the effort and time required to create the simulator, it also enables a simulator to be created purely with the knowledge of the design criteria of the new processor; the internal architecture of that device is irrelevant.
This approach arises from the realization that a substantial number of the functions performed by any processor when executing a program are non-specific, i.e. it does not matter which processor is used. Further, the steps which are specific are readily identified because they all involve interactions with peripheral hardware, for example, key-boards, mice and screens. A further advantage of this approach is that it is possible to perform the simulated interactions in a high level language.
Thus in a preferred embodiment the identified parts of the program are those which cause the specific processor to interact with the associated peripheral hardware. In many programs these identified parts may be sub-programs, because it is common programming practice to have a set of sub-programs to handle the interactions between a processor and peripheral hardware. Typically these identified parts are software or peripheral drivers.
Where the program is configured with such sub-programs, the system may further comprise a cross-compiler for compiling the existing sub-programs, prior to the sub-programs being fed to the bus, into a format or code suitable for interaction with the specific processor.
Preferably the simulator only simulates the responses of interactions with the identified parts of the program. Thus the simulator may be a processor or software model programmed to respond in accordance with the design response of the specific processor or it may be dedicated hardware designed to provide such responses.
Although the invention has been defined above it is to be understood it includes any inventive combination of the features set out above or in the following description.
REFERENCES:
patent: 4785416 (1988-11-01), Stringer
patent: 4812975 (1989-03-01), Adachi et al.
patent: 5077657 (1991-12-01), Cooper et al.
patent: 5287515 (1994-02-01), Murai
patent: 5301302 (1994-04-01), Blackard et al.
patent: 5613098 (1997-03-01), Landau et al.
patent: 5652869 (1997-07-01), Herdeg et al.
R.K. Gupta et al., “Synthesis and Simulation of Digital Systems Containing Interacting Hardware and Software Coponents,” pp.225-230, 29thACM/IEEE Design Automation Conference,1992. 1992. 1992.
K. Keutzer, “Hardware-Software Co-Design and ESDA, ” pp. 435-436, 31stACM/IEEE Design Automation Conference, 1994.
Serge A. Leef, “Architectural Outline, SEAMLESS,” (Mentor Graphics document), pp. 1-19, publication date: unknown.
A. Kalavade et al., “Manifestation of Heterogeneity in Hardware/Software Codesign,” pp. 437-438, 31stACM/IEEE Design Automation Confrence, 1994.
Application-Program Behaviour Analysis, IBM Technical Disclosure Bulletin, vol. 31, No. 3, pp. 274-278.
Sergent Doug
Stamber Eric W.
Synopsys Inc.
Young & Thompson
LandOfFree
Software execution systems does not yet have a rating. At this time, there are no reviews or comments for this patent.
If you have personal experience with Software execution systems, we encourage you to share that experience with our LandOfFree.com community. Your opinion is very important and Software execution systems will most certainly appreciate the feedback.
Profile ID: LFUS-PAI-O-2499893