Performance analysis of embedded software using implicit path enumeration

Embedded computer systems are characterized by the presence of a processor running application-specific dedicated software. A large number of these systems must satisfy real-time constraints. This paper examines the problem of determining the extreme (best and worst) case bounds on the running time of a given program on a given processor. This has several applications in the design of embedded systems with real-time constraints. An important aspect of this problem is determining which paths in the program are exercised in the extreme cases. The state-of-the-art solution here relies on an explicit enumeration of program paths. This solution runs out of steam rather quickly since the number of feasible program paths is typically exponential in the size of the program. We present a solution for this problem that does not require an explicit enumeration of program paths, i.e., the paths are considered implicitly. This solution is implemented in the program cinderella (in recognition of her hard real-time constraint-she had to be back home at the stroke of midnight), which currently targets a popular embedded processor-the Intel i960. The preliminary results of using this tool are also presented here.

[1]  Alfred V. Aho,et al.  Compilers: Principles, Techniques, and Tools , 1986, Addison-Wesley series in computer science / World student series edition.

[2]  Sharad Malik,et al.  Performance estimation of embedded software with instruction cache modeling , 1995, Proceedings of IEEE International Conference on Computer Aided Design (ICCAD).

[3]  Alexander D. Stoyen,et al.  Real-Time Euclid: A language for reliable real-time systems , 1989, IEEE Transactions on Software Engineering.

[4]  Sharad Malik,et al.  Computation of floating mode delay in combinational circuits: theory and algorithms , 1993, IEEE Trans. Comput. Aided Des. Integr. Circuits Syst..

[5]  David B. Whalley,et al.  Bounding worst-case instruction cache performance , 1994, 1994 Proceedings Real-Time Systems Symposium.

[6]  Robert B. Hitchcock,et al.  Timing verification and the timing analysis program , 1988, DAC 1982.

[7]  Alan C. Shaw,et al.  Reasoning About Time in Higher-Level Language Software , 1989, IEEE Trans. Software Eng..

[8]  Gary M. Koob,et al.  Foundations of Real-Time Computing: Scheduling and Resource Management , 1991 .

[9]  Chang Yun Park,et al.  Predicting deterministic execution times of real-time programs , 1992 .