Statistically based estimate of embedded software execution time
First Claim
1. A method of estimating the execution time of software, comprising the steps of:
- preparing a model of a target processor based on a set of benchmark programs;
correlating the software to be estimated with the benchmark programs; and
applying the correlated software to the model to determine an estimate of the execution time of the software;
wherein;
the step of preparing a model comprises,determining a frequency of virtual instructions in the benchmark programs,determining actual execution times of the benchmark programs,determining at least one of a predictor equation, error of estimation, and cycles per virtual instruction of the benchmark programs;
said method is embodied in a set of computer instructions stored on a computer readable media; and
said computer instructions, when loaded into a computer, cause the computer to perform the steps of said method.
2 Assignments
0 Petitions
Accused Products
Abstract
A statistical approach to estimating software execution times is implemented by preparing a model of a target processing device, correlating the software to be estimated to benchmark programs used in the preparation of the model, and then applying the software to be estimated to the model. The model is developed by determining the actual execution times of the benchmark programs, determining a number of virtual instructions in the benchmark programs and determining a predictor equation that correlates the virtual instructions to the actual execution time. The predictor equation is determined by a linear regression technique that includes a correlation analysis of the virtual instructions, removal of highly correlated instructions, and a combination of stepwise linear regression and multiple linear regression to determine the predictor equation.
-
Citations
20 Claims
-
1. A method of estimating the execution time of software, comprising the steps of:
-
preparing a model of a target processor based on a set of benchmark programs; correlating the software to be estimated with the benchmark programs; and applying the correlated software to the model to determine an estimate of the execution time of the software; wherein; the step of preparing a model comprises, determining a frequency of virtual instructions in the benchmark programs, determining actual execution times of the benchmark programs, determining at least one of a predictor equation, error of estimation, and cycles per virtual instruction of the benchmark programs; said method is embodied in a set of computer instructions stored on a computer readable media; and said computer instructions, when loaded into a computer, cause the computer to perform the steps of said method. - View Dependent Claims (2, 3, 4, 5)
-
-
6. A method of estimating the execution time of software, comprising the steps of:
-
preparing a model of a target processor based on a set of benchmark programs; correlating the software to be estimated with the benchmark programs; and applying the correlated software to the model to determine an estimate of the execution time of the software; wherein; said step of preparing a model comprises the steps of; selecting a set of benchmark programs from a same domain as the software to be estimated; determining a set of virtual instructions in the set of benchmark programs; measuring actual execution times of the set of benchmark programs; and determining a predictor equation by correlating the virtual instructions to the actual execution times; said step of determining a predictor equation comprises the steps of, performing a correlation analysis between virtual instructions contained in the benchmark programs to determine which virtual instructions are highly correlated to other virtual instructions, removing one or more elements from each set of highly correlated virtual instructions until one of the highly correlated elements remains to produce a pruned virtual instruction set, performing linear regression on the pruned virtual instruction set to derive a predictor equation having a set of predictor variables, reducing the set of predictor variables to a predetermined threshold, and applying the reduced variable predictor equation to a 2nd set of benchmark programs to measure an amount of error in the reduced variable predictor equation. - View Dependent Claims (7, 8, 9, 10, 11)
-
-
12. A device for estimating execution times of software, comprising:
-
modeling means for modeling a target processor; correlation means for correlating software to be estimated to a set of benchmark software programs that were used as a basis in said modeling means; and an estimation device configured to apply the correlated software to said modeling means to determine an estimated execution time of the software wherein said modeling means comprises; means for determining a frequency of virtual instructions in the benchmark programs; means for determining actual execution times of the benchmark programs; and means for determining at least one of a predictor equation, error of estimation, and cycles per virtual instruction of the benchmark programs. - View Dependent Claims (13, 14, 15, 16, 17, 18)
-
-
19. A device for performing estimates of software execution times, comprising:
-
a model of a target processor based on execution time of a set of at least one benchmark program; a correlating device configured to correlate a software program to be estimated to the set of at least one benchmark program; and an estimation device configured to apply the software program to be estimated to the model to determine an estimated execution time of the software; wherein the model comprises, determining a frequency of virtual instructions in the benchmark programs; determining actual execution times of the benchmark programs; and determining at least one of a predictor equation, error of estimation, and cycles per virtual instruction of the benchmark programs. - View Dependent Claims (20)
-
Specification