Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
10.1145/3453417.3453424acmotherconferencesArticle/Chapter ViewAbstractPublication PagesrtnsConference Proceedingsconference-collections
research-article

Data Cache Analysis by Counting Integer Points

Published: 22 July 2021 Publication History

Abstract

The scheduling of reliable real-time systems require a precise and sound analysis of the execution times of their tasks. Part of these execution times is spent fetching data from the main memory to the cache memories. These fetch events occur on cache misses, but cache misses are hard to predict when the program accesses an array. An imprecise cache miss analysis can lead to an imprecise but still sound Worst-Case Execution Time (WCET) analysis. In this article we present a framework for deriving an upper bound to the number of times a data-accessing instruction triggers a cache miss. Backed by this framework, we present an analysis that produces numeric or symbolic bounds, by reasoning on a short history of accesses and by counting the number of integer points in a volume with an existing tool (Barvinok). Using such bounds will improve the precision of the estimations delivered by the WCET analyses.

References

[1]
G. Balakrishnan and T. Reps. 2004. Analyzing Memory Accesses in x86 Executables. In Compiler Construction. Lecture Notes in Computer Science, Vol. 2985. Springer Berlin, 2732–2733.
[2]
Patrick Cousot and Radhia Cousot. 1977. Abstract Interpretation: A Unified Lattice Model for Static Analysis of Programs by Construction or Approximation of Fixpoints. In Conference Record of the Fourth ACM Symposium on Principles of Programming Languages, Los Angeles, California, USA, January 1977, Robert M. Graham, Michael A. Harrison, and Ravi Sethi (Eds.). ACM, 238–252.
[3]
Leonardo Mendonça de Moura and Nikolaj Bjørner. 2008. Z3: An Efficient SMT Solver. In Tools and Algorithms for the Construction and Analysis of Systems, 14th International Conference, TACAS 2008, Held as Part of the Joint European Conferences on Theory and Practice of Software, ETAPS 2008, Budapest, Hungary, March 29-April 6, 2008. Proceedings(Lecture Notes in Computer Science, Vol. 4963), C. R. Ramakrishnan and Jakob Rehof (Eds.). Springer, 337–340.
[4]
Edsger W. Dijkstra and Carel S. Scholten. 1990. Predicate Calculus and Program Semantics. Springer. https://doi.org/10.1007/978-1-4612-3228-5
[5]
C. Ferdinand. 2005. A Fast and Efficient Cache Persistence Analysis. Technical Report. Saarländische Universitäts- und Landesbibliothek / Naturwissenschaftlich-Technische Fakultät I, http://www.scientificcommons.org/2150484.
[6]
C. Ferdinand, F. Martin, and R. Wilhelm. 1997. Applying Compiler Techniques to Cache Behavior Prediction. In ACM SIGPLAN Workshop on Language, Compiler and Tool Support for Embedded Systems.
[7]
Christian Ferdinand, Florian Martin, Reinhard Wilhelm, and Martin Alt. 1999. Cache Behavior Prediction by Abstract Interpretation. Sci. Comput. Program. 35, 2 (1999), 163–189. https://doi.org/10.1016/S0167-6423(99)00010-6
[8]
C. Ferdinand and R. Wilhelm. 1998. On predicting data cache behavior for real-time systems. In ACM SIGPLAN Workshop on Language, Compiler and Tool Support for Embedded Systems.
[9]
S. Hahn and D. Grund. 2012. Relational Cache Analysis for Static Timing Analysis. In 2012 24th Euromicro Conference on Real-Time Systems.
[10]
B. K. Huynh, L. Ju, and A. Roychoudhury. 2011. Scope-Aware Data Cache Analysis for WCET Estimation. In Real-Time and Embedded Technology and Applications Symposium (RTAS). 203–212.
[11]
Vincent Laviron, Bor-Yuh Evan Chang, and Xavier Rival. 2010. Separating Shape Graphs. In Programming Languages and Systems, 19th European Symposium on Programming, ESOP 2010, Held as Part of the Joint European Conferences on Theory and Practice of Software, ETAPS 2010, Paphos, Cyprus, March 20-28, 2010. Proceedings(Lecture Notes in Computer Science, Vol. 6012), Andrew D. Gordon (Ed.). Springer, 387–406. https://doi.org/10.1007/978-3-642-11957-6_21
[12]
Y.-T. S. Li, S. Malik, and A. Wolfe. 1995. Efficient microarchitecture modelling and path analysis for real-time software. In IEEE Real-Time Systems Symposium.
[13]
Y.-T. S. Li, S. Malik, and A. Wolfe. 1997. Cache Modeling for Real-Time Software: Beyond Direct Mapped Instruction Caches. In ACM SIGPLAN Workshop on Language, Compiler and Tool Support for Embedded Systems.
[14]
Rathijit S. and Srikant Y. N.2007. WCET estimation for executables in the presence of data caches. In ACM & IEEE International Conf. on Embedded Software.
[15]
R. Sen and Y. N. Srikant. 2007. Executable Analysis with Circular Linear Progressions. Technical Report IISc-CSA-TR-2007-3. Computer Science and Automation Indian Institute of Science.
[16]
Gregory Stock, Sebastian Hahn, and Jan Reineke. 2019. Cache Persistence Analysis: Finally Exact. In IEEE Real-Time Systems Symposium, RTSS 2019, Hong Kong, SAR, China, December 3-6, 2019. IEEE, 481–494. https://doi.org/10.1109/RTSS46320.2019.00049
[17]
Sven Verdoolaege, Rachid Seghir, Kristof Beyls, Vincent Loechner, and Maurice Bruynooghe. 2007. Counting Integer Points in Parametric Polytopes Using Barvinok’s Rational Functions. Algorithmica 48, 1 (2007), 37–66. https://doi.org/10.1007/s00453-006-1231-0
[18]
S. Wegener. 2012. Computing Same Block Relations for Relational Cache Analysis. In WCET’12, Vol. 23.
[19]
R. T. White, C. A. Healy, D. B. Whalley, F. Mueller, and M. G. Harmon. 1997. Timing Analysis for Data Caches and Set-Associative Caches. In IEEE Real-Time and Embedded Technology and Applications Symposium.
[20]
R. T. White, F. Mueller, C. Healy, D. Whalley, and M. Harmon. 1999. Timing Analysis for Data and Wrap-Around Fill Caches. Real-Time Systems 17(1999).

Cited By

View all
  • (2023)Leveraging LLVM's ScalarEvolution for Symbolic Data Cache Analysis2023 IEEE Real-Time Systems Symposium (RTSS)10.1109/RTSS59052.2023.00029(237-250)Online publication date: 5-Dec-2023

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM Other conferences
RTNS '21: Proceedings of the 29th International Conference on Real-Time Networks and Systems
April 2021
236 pages
ISBN:9781450390019
DOI:10.1145/3453417
© 2021 Association for Computing Machinery. ACM acknowledges that this contribution was authored or co-authored by an employee, contractor or affiliate of a national government. As such, the Government retains a nonexclusive, royalty-free right to publish or reproduce this article, or to allow others to do so, for Government purposes only.

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 22 July 2021

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. data cache analysis
  2. formal methods
  3. precondition calculus
  4. static analysis
  5. worst-case execution time analysis

Qualifiers

  • Research-article
  • Research
  • Refereed limited

Conference

RTNS'2021

Acceptance Rates

Overall Acceptance Rate 119 of 255 submissions, 47%

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)7
  • Downloads (Last 6 weeks)0
Reflects downloads up to 13 Sep 2024

Other Metrics

Citations

Cited By

View all
  • (2023)Leveraging LLVM's ScalarEvolution for Symbolic Data Cache Analysis2023 IEEE Real-Time Systems Symposium (RTSS)10.1109/RTSS59052.2023.00029(237-250)Online publication date: 5-Dec-2023

View Options

Get Access

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

HTML Format

View this article in HTML Format.

HTML Format

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media