First Steps towards the Certification of an ARM Simulator Using Compcert
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.
KeywordsMemory Model Reference Manual Operational Semantic Correctness Proof Program Counter
Unable to display preview. Download preview PDF.
- 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
- 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.Coq Development Team. The Coq Reference Manual, Version 8.2. INRIA Rocquencourt, France (2008), http://coq.inria.fr/
- 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.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.Helmstetter, C., Joloboff, V., Xiao, H.: SimSoC: A full system simulation software for embedded systems. In: IEEE (ed.), OSSC 2009 (2009)Google Scholar
- 13.Open SystemC Initiative. SystemC v2.2.0 Language Reference Manual (IEEE Std 1666-2005) (2006), http://www.systemc.org/
- 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.OSCI SystemC TLM 2.0.1 (2007), http://www.systemc.org/