First Steps towards the Certification of an ARM Simulator Using Compcert

  • Xiaomu Shi
  • Jean-François Monin
  • Frédéric Tuong
  • Frédéric Blanqui
Part of the Lecture Notes in Computer Science book series (LNCS, volume 7086)

Abstract

The simulation of Systems-on-Chip (SoC) is nowadays a hot topic because, beyond providing many debugging facilities, it allows the development of dedicated software before the hardware is available. Low-consumption CPUs such as ARM play a central role in SoC. However, the effectiveness of simulation depends on the faithfulness of the simulator. To this effect, we propose here to prove significant parts of such a simulator, SimSoC. Basically, on one hand, we develop a Coq formal model of the ARM architecture while on the other hand, we consider a version of the simulator including components written in Compcert-C. Then we prove that the simulation of ARM operations, according to Compcert-C formal semantics, conforms to the expected formal model of ARM. Size issues are partly dealt with using automatic generation of significant parts of the Coq model and of SimSoC from the official textual definition of ARM. However, this is still a long-term project. We report here the current stage of our efforts and discuss in particular the use of Compcert-C in this framework.

Keywords

Memory Model Reference Manual Operational Semantic Correctness Proof Program Counter 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. 1.
    August, D., et al.: Unisim: An open simulation environment and library for complex architecture design and collaborative development. Computer Architecture Letters 6(2), 45–48 (2007)MathSciNetCrossRefGoogle Scholar
  2. 2.
    Bellard, F.: QEMU, a fast and portable dynamic translator. In: ATEC 2005: Proceedings of the Annual Conference on USENIX Annual Technical Conference, Berkeley, CA, USA, pages 41. USENIX Association (2005)Google Scholar
  3. 3.
    Bertot, Y., Castéran, P.: Interactive Theorem Proving and Program Development. Coq’Art: The Calculus of Inductive Constructions. Texts in Theoretical Computer Science. Springer, Heidelberg (2004)CrossRefMATHGoogle Scholar
  4. 4.
    Blanqui, F., Helmstetter, C., Joloboff, V., Monin, J.-F., Shi, X.: Designing a CPU model: from a pseudo-formal document to fast code. In: Proceedings of the 3rd Workshop on Rapid Simulation and Performance Evaluation: Methods and Tools, Heraklion, Greece (January 2011)Google Scholar
  5. 5.
    Coq Development Team. The Coq Reference Manual, Version 8.2. INRIA Rocquencourt, France (2008), http://coq.inria.fr/
  6. 6.
    Correnson, L., Cuoq, P., Puccetti, A., Signoles, J.: Frama-C User Manual, Release Boron-20100401. In: CEA LIST, Software Reliability Laboratory, Saclay, France (2010)Google Scholar
  7. 7.
    Fox, A.C.J., Myreen, M.O.: A Trustworthy Monadic Formalization of the ARMv7 Instruction Set Architecture. In: ITP, pp. 243–258 (2010)Google Scholar
  8. 8.
    Helmstetter, C., Joloboff, V., Xiao, H.: SimSoC: A full system simulation software for embedded systems. In: IEEE (ed.), OSSC 2009 (2009)Google Scholar
  9. 9.
    Hunt Jr., W.A. (ed.): FM8501: A Verified Microprocessor. LNCS (LNAI), vol. 795. Springer, Heidelberg (1994)MATHGoogle Scholar
  10. 10.
    Leroy, X.: Formal verification of a realistic compiler. Communications of the ACM 52(7), 107–115 (2009)CrossRefGoogle Scholar
  11. 11.
    Leroy, X., Blazy, S.: Formal Verification of a C-like Memory Model and Its Uses for Verifying Program Transformations. J. Autom. Reason. 41(1), 1–31 (2008)MathSciNetCrossRefMATHGoogle Scholar
  12. 12.
    Magnusson, P.S., et al.: Simics: A full system simulation platform. Computer 35(2), 50–58 (2002)CrossRefGoogle Scholar
  13. 13.
    Open SystemC Initiative. SystemC v2.2.0 Language Reference Manual (IEEE Std 1666-2005) (2006), http://www.systemc.org/
  14. 14.
    Peyton Jones, S.: Tackling the Awkward Squad: monadic input/output, concurrency, exceptions, and foreign-language calls in Haskell. Online lecture notes (2010)Google Scholar
  15. 15.
    OSCI SystemC TLM 2.0.1 (2007), http://www.systemc.org/

Copyright information

© Springer-Verlag Berlin Heidelberg 2011

Authors and Affiliations

  • Xiaomu Shi
    • 1
  • Jean-François Monin
    • 1
    • 2
  • Frédéric Tuong
    • 3
  • Frédéric Blanqui
    • 3
  1. 1.Université de Grenoble 1 - LIAMAFrance
  2. 2.CNRS - LIAMAFrance
  3. 3.INRIA - LIAMAFrance

Personalised recommendations