Retargetable computer design system
First Claim
1. A system for designing a computer system having a processor and a memory hierarchy, comprising:
- means for generating an event trace of an application program for the computer system, the event trace indicating a sequence of control flow events in the application program that are independent of a design of the processor;
means for generating an executable file for the application program such that the executable file includes a set of memory addresses that are adapted to the design of the processor;
trace generator means for generating an address trace in response to the executable file and the event trace such that the address trace includes a sequence of the memory addresses from the executable file that correspond to the sequence of control flow events specified in the event trace;
component simulator means for generating a set of performance statistics for a component of the memory hierarchy in response to the address trace and a description of the component.
3 Assignments
0 Petitions
Accused Products
Abstract
An automatic and retargetable computer design system is using a combination of simulation and performance prediction to investigate a plurality of target computer systems. A high-level specification and a predetermined application are used by the computer design system to provide inputs into a computer evaluator. The computer evaluator has reference computer system dependent and independent systems for producing a reference representation and dynamic behavior information, respectively, of the application. The reference representation and information are mated to produce further information to drive a simulator. The simulator provides performance information of a reference computer system. The performance information is provided to another computer evaluator, which has a target computer system dependent system for producing a target representation of the application for the plurality of target computer systems. The performance information and the target representation are used by a computer system predictor for quickly estimating the performance information of the plurality of target computer systems in a simulation efficient manner.
61 Citations
30 Claims
-
1. A system for designing a computer system having a processor and a memory hierarchy, comprising:
-
means for generating an event trace of an application program for the computer system, the event trace indicating a sequence of control flow events in the application program that are independent of a design of the processor;
means for generating an executable file for the application program such that the executable file includes a set of memory addresses that are adapted to the design of the processor;
trace generator means for generating an address trace in response to the executable file and the event trace such that the address trace includes a sequence of the memory addresses from the executable file that correspond to the sequence of control flow events specified in the event trace;
component simulator means for generating a set of performance statistics for a component of the memory hierarchy in response to the address trace and a description of the component. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10)
assembler that generates a binary code for the application program in response to a description of an instruction format for the design of the processor such that the binary code depends on the instruction format;
linker that generates the executable file in response to the binary code and in response to the description of the instruction format for the design of the processor.
-
-
7. The system of claim 1, wherein the means for generating an event trace comprises:
-
emulator that converts the application program into an equivalent code for an existing computer system including code for recording the control flow events;
execution engine that generates the event trace by compiling and executing the equivalent code.
-
-
8. The system of claim 1, wherein the trace generator generates the address trace by symbolically executing the executable file in response to the control flow events specified in the event trace.
-
9. The system of claim 1, further comprising means for combining the performance statistics with a set of cost information pertaining to the component.
-
10. The system of claim 1, further comprising means for measuring characteristics of an executable file for a second design for the processor in comparison to the executable file for the design for the processor and for adjusting the performance statistics accordingly.
-
11. A method for designing a computer system having a processor and a memory hierarchy, comprising the steps of:
-
generating an event trace of an application program for the computer system, the event trace indicating a sequence of control flow events in the application program that are independent of a design of the processor;
generating an executable file for the application program such that the executable file includes a set of memory addresses that are adapted to the design of the processor;
generating an address trace in response to the executable file and the event trace such that the address trace includes a sequence of the memory addresses from the executable file that correspond to the sequence of control flow events specified in the event trace;
generating a set of performance statistics for a component of the memory hierarchy in response to the address trace and a description of the component. - View Dependent Claims (12, 13, 14, 15, 16, 17, 18, 19, 20)
generating a binary code for the application program in response to a description of an instruction format for the design of the processor such that the binary code depends on the instruction format;
generating the executable file in response to the binary code and in response to the description of the instruction format for the design of the processor.
-
-
17. The method of claim 11, wherein the step of generating an event trace comprises the steps of:
-
converting the application program into an equivalent code for an existing computer system including code for recording the control flow events;
generating the event trace by compiling and executing the equivalent code.
-
-
18. The method of claim 11, wherein the step of generating an address trace includes the step of symbolically executing the executable file in response to the control flow events specified in the event trace.
-
19. The method of claim 11, further comprising the step of combining the performance statistics with a set of cost information pertaining to the component.
-
20. The method of claim 11, further comprising the steps of measuring characteristics of an executable file for a second design for the processor in comparison to the executable file for the design for the processor and adjusting the performance statistics accordingly.
-
21. A computer-readable storage media that contains a computer program that when executed on a computer designs a computer system having a processor and a memory hierarchy, the computer program comprising:
-
instructions for generating an event trace of an application program for the computer system, the event trace indicating a sequence of control flow events in the application program that are independent of a design of the processor;
instructions for generating an executable file for the application program such that the executable file includes a set of memory addresses that are adapted to the design of the processor;
instructions for generating an address trace in response to the executable file and the event trace such that the address trace includes a sequence of the memory addresses from the executable file that correspond to the sequence of control flow events specified in the event trace;
instructions for generating a set of performance statistics for a component of the memory hierarchy in response to the address trace and a description of the component. - View Dependent Claims (22, 23, 24, 25, 26, 27, 28, 29, 30)
instructions for generating a binary code for the application program in response to a description of an instruction format for the design of the processor such that the binary code depends on the instruction format;
instructions for generating the executable file in response to the binary code and in response to the description of the instruction format for the design of the processor.
-
-
27. The computer-readable storage media of claim 21, wherein instructions for generating an event trace comprises:
-
instructions for converting the application program into an equivalent code for an existing computer system including code for recording the control flow events instructions for generating the event trace by compiling and executing the event code.
-
-
28. The computer-readable storage media of claim 21, wherein instructions for generating an address trace includes instructions for symbolically executing the executable file in response to the control flow events specified in the event trace.
-
29. The computer-readable storage media of claim 21, wherein the computer program further comprising instructions for combining the performance statistics with a set of cost information pertaining to the component.
-
30. The computer-readable storage media of claim 21, wherein the computer program further comprising instructions for measuring statistics of an executable file for a second design for a second design;
- if or the processor in comparison to the executable file for the design for the processor and adjusting the performance statistics accordingly.
Specification