skip to main content
article
Free Access

Performance estimation of embedded software with instruction cache modeling

Published:01 July 1999Publication History
Skip Abstract Section

Abstract

Embedded systems generally interact in some way with the outside world. This may involve measuring sensors and controlling actuators, communicating with other systems, or interacting with users. These functions impose real-time constraints on system design. Verification of these specifications requires computing an upper bound on the worst-case execution time (WCET) of a hardware/software system. Furthermore, it is critical to derive a tight upper bound on WCET in order to make efficient use of system resources.

The problem of bounding WCET is particularly difficult on modern processors. These processors use cache-based memory systems that vary memory access time based on the dynamic memory access pattern of the program. This must be accurately modeled in order to tightly bound WCET. Several analysis methods have been proposed to bound WCET on processors with instruction caches. Existing approaches either search all possible program paths, an intractable problem, or they use highly pessimistic assumptions to limit the search space. In this paper we present a more effective method for modeling instruction cache activity and computing a tight bound on WCET. The method uses an integer linear programming formulation and does not require explicit enumeration of program paths. The method is implemented in the program cinderella and we present some experimental results of this implementation.

References

  1. ARNOLD, R., MUELLER, F., WHALLEY, D., AND HARMON, M. 1994. Bounding worst-case instruction cache performance. In Proceedings of the 15th IEEE Symposium on Real-Time Systems (Dec.). IEEE Computer Society Press, Los Alamitos, CA, 172-181.Google ScholarGoogle Scholar
  2. AVRUNIN, G. S., CORBETT, J. C., DILLON, L. K., AND WILEDEN, J. C. 1994. Automated derivation of time bounds in uniprocessor concurrent systems. IEEE Trans. Softw. Eng. 20, 9 (Sept. 1994), 708-719. Google ScholarGoogle Scholar
  3. GUPTA, R. K. 1994. Co-synthesis of hardware and software for digital embedded systems. Ph.D. Dissertation. Stanford University, Stanford, CA. Google ScholarGoogle Scholar
  4. INTEL CORPORATION, 1990. QT960 User Manual. Intel Corp., Santa Clara, CA.Google ScholarGoogle Scholar
  5. INTEL CORPORATION, 1991. i960KA/KB Microprocessor Programmers's Reference Manual. Intel Corp., Santa Clara, CA. Google ScholarGoogle Scholar
  6. KLIGERMAN, E AND STOYENKO, A D 1986. Real-time Euclid: a language for reliable real-time systems. IEEE Trans. Softw. Eng. SE-12, 9 (Sept. 1986), 941-949. Google ScholarGoogle Scholar
  7. LI, Y.-T. S. AND MALIK, S. 1995. Performance analysis of embedded software using implicit path enumeration. In Proceedings of the 32nd ACM/IEEE Conference on Design Automation (DAC '95, San Francisco, CA, June 12-16, 1995), B. T. Preas, Ed. ACM Press, New York, NY, 456-461. Google ScholarGoogle Scholar
  8. LIM, S., BAE, Y. H., JANG, G. T., RHEE, B., MIN, S. L., PARK, C. Y., SHIN, H., PARK, K., AND KIM, C.S. 1994. An accurate worst case timing analysis technique for RISC processors. In Proceedings of the 15th IEEE Symposium on Real-Time Systems (Dec.). IEEE Computer Society Press, Los Alamitos, CA, 97-108.Google ScholarGoogle Scholar
  9. LIU, J. AND LEE, H. 1994. Deterministic upperbounds of the worst-case execution times of cached programs. In Proceedings of the 15th IEEE Symposium on Real-Time Systems (Dec.). IEEE Computer Society Press, Los Alamitos, CA, 182-191.Google ScholarGoogle Scholar
  10. MOK, A. K., AMERASINGHE, P., CHEN, M., AND TANTISIRIVAT, K. 1989. Evaluating tight execution time bounds of programs by annotations. In Proceedings of the Sixth IEEE Workshop on Real-Time Operating Systems and Software (May). IEEE Computer Society Press, Los Alamitos, CA, 74-80.Google ScholarGoogle Scholar
  11. MYERS, G. J. AND BUDDE, D. L. 1988. The 80960 Microprocessor Architecture. John Wiley & Sons, Inc., New York, NY. Google ScholarGoogle Scholar
  12. PARK, C.Y. 1992. Predicting deterministic execution times of real-time programs. Ph.D. Dissertation. University of Washington, Seattle, WA. Google ScholarGoogle Scholar
  13. PUSCHNER, P. AND KOZA, CH. 1989. Calculating the maximum, execution time of real-time programs. Real-Time Syst. 1, 2 (Sep. 1989), 159-176. Google ScholarGoogle Scholar
  14. RAWAT, J. 1993. Static analysis of cache performance for real-time programming. Master's Thesis. Iowa State Univ., Ames, IA.Google ScholarGoogle Scholar
  15. SHAW, A. C. 1989. Reasoning about time in higher-level language software. IEEE Trans. Softw. Eng. 15, 7 (July 1989), 875-889. Google ScholarGoogle Scholar

Index Terms

  1. Performance estimation of embedded software with instruction cache modeling

        Recommendations

        Reviews

        Maurice S. Elzas

        The design of embedded systems differs from the design of other computer systems mainly in that, while an embedded system will often use the same components as a standard PC, it will do so in an environment with very little user control and will be focused on a single application. Moreover, the system's importance to the environment in which it is embedded will require optimal, uninterrupted operation and minimum size and cost. This is an elaborate and well-researched paper on one of the key problems confronting the designers of embedded systems. The processors used in embedded systems are similar to those used in ordinary computers, and some components that are generally most welcome can cause design problems when used in embedded systems. A case in point is the presence of caches, for instructions as well as for data. The optimal design problem is complicated further by the fact that, although the system runs a single application, its behavior will be greatly influenced by the data it acquires from the outside world. Optimal design in this case means the fastest execution combined with the smallest size and lowest cost for the desired reliability. It is obvious that such a design cannot be assessed without extensive testing. While this may be physically possible for simple systems with small applications, the task will become daunting for larger, more complex situations. In such cases, an accurate mathematical model, focused on the instruction cache problem, for establishing the worst-case execution time of the system being designed can provide an answer to the dilemma. The authors clearly present the mathematical background of their approach and illustrate its power with a reasonable number of example experiments. A sound list of references concludes the paper. The paper is not intended for either the faint-hearted or inexperienced reader, nor for the designer concerned with relatively simple systems. However, readers who are concerned with the design of more ambitious embedded systems can glean many useful ideas and techniques from this text.

        Access critical reviews of Computing literature here

        Become a reviewer for Computing Reviews.

        Comments

        Login options

        Check if you have access through your login credentials or your institution to get full access on this article.

        Sign in

        Full Access

        PDF Format

        View or Download as a PDF file.

        PDF

        eReader

        View online with eReader.

        eReader