Abstract
Timing analysis of assembler code is essential to achieve the strongest possible guarantee of correctness for safety-critical, real-time software. Previous work has shown how timing constraints on control-flow paths through high-level language programs can be formalised using the semantics of the statements comprising the path. We extend these results to assembler-level code where it becomes possible to not only determine timing constraints, but also to verify them against the known execution times for each instruction. A minimal formal model is developed with both a weakest liberal precondition and a strongest postcondition semantics. However, despite the formalism’s simplicity, it is shown that complex timing behaviour associated with instruction pipelining and iterative code can be modelled accurately.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
References
N. C. Audsley, I. J. Bate, and A. Grigg. Portable code for critical systems. In Proc. 6th International Conference on Real-Time Computing Systems and Applications, pages 111–118, December 1999.
R.-J. R. Back and J. von Wright. Refinement calculus, part I: Sequential nondeterministic programs. In J. W. de Bakker, W.-P. de Roever, and G. Rozenberg, editors, Stepwise Refinement of Distributed Systems: Models, Formalisms, Correctness (REX Workshop 1989), volume 430 of Lecture Notes in Computer Science, pages 42–66. Springer-Verlag, 1989.
B. Carré. Program analysis and verification. In C. T. Sennett, editor, High-Integrity Software, chapter 8, pages 176–197. Plenum Press, 1989.
C. Cifuentes, D. Simon, and A. Fraboulet. Assembly to high-level language translation. Technical Report 439, School of Information Technology, The University of Queensland, August 1998.
D. Corman, P. Goertzen, J. Luke, and M. Mills. Incremental Upgrade of Legacy Systems (IULS): A fundamental software technology for aging aircraft. In Fourth Joint DOD/FAA/NASA Conference on Aging Aircraft, 2000.
E. W. Dijkstra and C. S. Scholten. Predicate Calculus and Program Semantics. Springer-Verlag, 1990.
J. Engblom and A. Ermedahl. Modeling complex flows for worst-case execution time analysis. In Proceedings of the 21st IEEE Real-Time Systems Symposium, pages 163–174. IEEE Computer Society, 2000.
C. J. Fidge, I. J. Hayes, and G. Watson. The deadline command. IEE Proceedings—Software, 146(2):104–111, April 1999.
S. Grundon, I. J. Hayes, and C. J. Fidge. Timing constraint analysis. In C. McDonald, editor, Computer Science’ 98: Proc. 21st Australasian Computer Science Conference, pages 575–586. Springer-Verlag, 1998.
E. L. Gunter and D. Peled. Path exploration tool. In W. R. Cleaveland, editor, Tools and Algorithms for the Construction and Analysis of Systems (TACAS/ETAPS’99), volume 1579 of Lecture Notes in Computer Science, pages 405–419. Springer-Verlag, 1999.
I. J. Hayes and M. Utting. A sequential real-time refinement calculus. Acta Informatica, 37(6):385–448, 2001.
C. A. Healy, D. B. Whalley, and M. G. Harmon. Integrating the timing analysis of pipelining and instruction caching. In Proc. 16th IEEE Real-Time Systems Symposium, pages 288–297. IEEE Computer Society Press, December 1995.
P. Kearney and M. Utting. A layered real-time specification of a RISC processor. In H. Langmaack, W.-P. de Roever, and J. Vytopil, editors, Formal Techniques in Real Time and Fault Tolerant Systems, volume 863 of Lecture Notes in Computer Science, pages 455–475. Springer-Verlag, 1994.
T. Lundqvist and P. Stenström. An integrated path and timing analysis method based on cycle-level symbolic execution. Real-Time Systems, 17(2/3):183–207, November 1999.
C. Morgan. Programming from Specifications. Prentice-Hall, 1990.
M. Müller-Olm. Modular Compiler Verification: A Refinement-Algebraic Approach Advocating Stepwise Abstraction, volume 1283 of Lecture Notes in Computer Science. Springer-Verlag, 1997.
N. Ramsey and M. F. Fernández. Specifying representations of machine instructions. ACM Transactions on Programming Languages and Systems, 19(3):492–524, May 1997.
A. Sampaio. An Algebraic Approach to Compiler Design, volume 4 of AMAST Series in Computing. World Scientific, 1997.
M. Utting and P. Kearney. Instruction level specification of a MIPS R3000 CPU. Technical Report 93-25, Software Verification Research Centre, The University of Queensland, February 1994.
T. Williams. Performance pushes RISC chips into real-time roles. Computer Design, pages 79–86, September 1991.
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2002 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Fidge, C.J. (2002). Timing Analysis of Assembler Code Control-Flow Paths. In: Eriksson, LH., Lindsay, P.A. (eds) FME 2002:Formal Methods—Getting IT Right. FME 2002. Lecture Notes in Computer Science, vol 2391. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-45614-7_21
Download citation
DOI: https://doi.org/10.1007/3-540-45614-7_21
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-43928-8
Online ISBN: 978-3-540-45614-8
eBook Packages: Springer Book Archive