10.1145/2392987.2393000acmotherconferencesArticle/Chapter ViewAbstractPublication PagesrtnsConference Proceedings
research-article

Static profiling of the worst-case in real-time programs

ABSTRACT

With the increasing performance demand in real-time systems it becomes more and more relevant to provide feedback to engineers and programmers, but also software development tools, on the performance-relevant code parts of a real-time program. So far, the information provided to programmers through tools was limited to an estimation of the worst-case execution time (WCET) and its associated worst-case execution path (WCEP). However, these metrics only provide partial information. Only those code parts that are on one of the WCEPs are indicated to the programmer. No information is provided for all other code parts. To give an accurate view covering the entire code base, tools in the spirit of standard program profiling tools are required.

This work proposes an efficient approach to compute worst-case timing information for all code parts of a program using a complementary metric, called criticality. Every statement of a real-time program is assigned a criticality value, expressing how critical the respective code is with respect to the global WCET. This gives an accurate view to programmers how close the worst execution path passing through a specific part of a real-time program is to the global WCEP. We formally define the criticality metric and investigate some of its properties with respect to dominance in control-flow graphs. Exploiting some of those properties, we propose an algorithm that reduces the overhead of computing the metric to cover complete real-time programs.

References

  1. H. Agrawal. Dominators, super blocks, and program coverage. In Proc. of the Symposium on Principles of Programming Languages, pages 25--34. ACM, 1994. Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. T. Ball and S. G. Eick. Software visualization in the large. Computer, 29:33--43, 1996. Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. T. Ball and J. R. Larus. Optimally profiling and tracing programs. ACM Trans. Program. Lang. Syst., 16(4):1319--1360, July 1994. Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. S. L. Graham, P. B. Kessler, and M. K. Mckusick. Gprof: A call graph execution profiler. In Proc. of the Symposium on Compiler Construction, CC 82, pages 120--126. ACM, 1982. Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. J. Gustafsson, A. Betts, A. Ermedahl, and B. Lisper. The Mälardalen WCET benchmarks -- past, present and future. In Proc. of the Workshop on Worst-Case Execution Time Analysis, pages 137--147. OCG, 2010.Google ScholarGoogle Scholar
  6. N. Holsti, T. Långbacka, and S. Saarinen. Using a worst-case execution-time tool for real-time verification of the DEBIE software. In Proc. of the Data Systems in Aerospace Conference, page 307. ESA, 2000.Google ScholarGoogle Scholar
  7. F. Lemieux and M. Salois. Visualization techniques for program comprehension a literature review. In Proc. of the Conference on New Trends in Software Methodologies, Tools and Techniques (SoMeT '06), pages 22--47. IOS Press, 2006. Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. T. Lengauer and R. E. Tarjan. A fast algorithm for finding dominators in a flowgraph. ACM Trans. Program. Lang. Syst., 1(1):121--141, 1979. Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. Y.-T. S. Li and S. Malik. Performance analysis of embedded software using implicit path enumeration. In Proc. of the Design Automation Conference, DAC '95, pages 456--461. ACM, 1995. Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. P. Lokuciejewski, F. Gedikli, and P. Marwedel. Accelerating WCET-driven optimizations by the invariant path paradigm - a case study of loop unswitching. In Proc. of the Workshop on Software & Compilers for Embedded Systems (SCOPES '09), pages 11--20, 2009. Google ScholarGoogle ScholarCross RefCross Ref
  11. F. Nemer, H. Cassé, P. Sainrat, J.-P. Bahsoun, and M. D. Michiel. Papabench: A free real-time benchmark. In Proc. of the Workshop on Worst-Case Execution Time Analysis, pages 63--68. OCG, 2006.Google ScholarGoogle Scholar
  12. P. P. Puschner and A. V. Schedl. Computing maximum task execution times - a graph-based approach. Real-Time Systems, 13(1):67--91, July 1997. Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. R. E. Tarjan. Depth-first search and linear graph algorithms. SIAM J. Comput., 1(2):146--160, 1972.Google ScholarGoogle ScholarCross RefCross Ref
  14. H. Theiling, C. Ferdinand, and R. Wilhelm. Fast and precise wcet prediction by separated cache and path analyses. Real-Time Systems, 18(2/3):157--179, 2000. Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. Static profiling of the worst-case in real-time programs

              Comments

              Login options

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

              Sign in

              PDF Format

              View or Download as a PDF file.

              PDF

              eReader

              View online with eReader.

              eReader
              About Cookies On This Site

              We use cookies to ensure that we give you the best experience on our website.

              Learn more

              Got it!