Abstract
The ARM verification project started in 2000 with the aim of seeing whether existing mechanised formal specification and verification methods could be applied to a commercial off-the-shelf processor. After succeeding in formally verifying that a model of the ARM6 micro-architecture correctly implemented a model of the ARMv3 instruction set architecture (ISA), the project gradually moved away from processor verification to software verification. Models of relatively recent ISAs were specified, and a code verification methodology is being developed, where the semantics of code execution is given by the processor ISA model. The long-term goal, similar to that of the pioneering CLI stack project, is to create systems on bare metal with as much as possible formally modelled and verified. The current case study is implementing a simple Lisp machine in ARM machine code. This chapter is an overview of the Cambridge ARM project together with some technical highlights that have emerged from the research.
This is a preview of subscription content, log in via an institution.
Buying options
Tax calculation will be finalised at checkout
Purchases are for personal use only
Learn about institutional subscriptionsPreview
Unable to display preview. Download preview PDF.
References
Alglave J, Fox A, Ishtiaq S, Myreen M, Sarkar S, Sewell P, Nardelli FZ (2009) The semantics of Power and ARM multiprocessor machine code. In: Basin D, Wolff B (eds) Proceedings of the 4th ACM SIGPLAN workshop on declarative aspects of multicore programming. Association for Computing Machinery, New York, NY, pp 13–24
ARM Ltd. (2009) Jazelle technology. http://www.arm.com/products/multimedia/java/jazelle.html (accessed in July 2009)
Burch J, Dill D (1994) Automatic verification of pipelined microprocessor control. Springer, Berlin, pp 68–80
Fox ACJ (1998) Algebraic models for advanced microprocessors. PhD thesis, University of Wales, Swansea
Fox ACJ (2001a) An algebraic framework for modelling and verifying microprocessors using HOL. In: Technical report 512, University of Cambridge Computer Laboratory, April 2001
Fox ACJ (2001b). A HOL specification of the ARM instruction set architecture. In: Technical report 545, University of Cambridge Computer Laboratory, June 2001
Fox ACJ (2002) Formal verification of the ARM6 micro-architecture. In: Technical report 548, University of Cambridge, Computer Laboratory, 2002
Fox ACJ (2003) Formal specification and verification of ARM6. In: Basin D, Wolff B (eds) Theorem proving in higher order logics, vol 2758 of Lecture notes in computer science. Springer, Berlin, pp 25–40
Fox ACJ (2005) An algebraic framework for verifying the correctness of hardware with input and output: a formalization in HOL. In: Fiadeiro J, Harman N, Roggenbach M, Rutten JJMM (eds) CALCO 2005, vol 3629 of Lecture notes in computer science. Springer, Berlin, pp 157–174
Furber S (2000) ARM: system-on-chip architecture, 2nd edn. Addison-Wesley, Reading, MA
Gordon M (2007) Defining a LISP interpreter in a logic of total functions. In: The ACL2 theorem prover and its applications (ACL2)
Gordon MJC (1983) Proving a computer correct with the LCF-LSM hardware verification system. In: Technical report 42, University of Cambridge Computer Laboratory, 1983
Greve D, Wilding M, Vanfleet WM (2003) A separation kernel formal security policy. In: ACL2 workshop 2003, June 2003
Greve D, Richards R, Wilding M (2004) A summary of intrinsic partitioning verification. In: ACL2 Workshop 2004, November 2004
Hardin D (2008) Invited tutorial: considerations in the design and verification of microprocessors for safety-critical and security-critical applications. In: Proceedings of FMCAD 2008, November 2008
Harman NA, Tucker JV (1997) Algebraic models of microprocessors: the verification of a simple computer. In: Stavridou V (ed) Mathematics of dependable systems II. Oxford University Press, Oxford, pp 135–170
Harrison JR (2005) A HOL theory of Euclidean space. In: Hurd J, Melham T (eds) Theorem proving in higher order logics, 18th International conference, TPHOLs 2005, vol 3603 of Lecture notes in computer science, Oxford, UK. Springer, Berlin, pp 114–129
Hurd J (2005) Formalizing elliptic curve cryptography in higher order logic. Available from the author’s Web site, October 2005
Hurd J, Gordon M, Fox A (2006) Formalized elliptic curve cryptography. In: High confidence software and systems: HCSS 2006, April 2006
McCarthy J, Abrahams PW, Edwards DJ, Hart TP, Levin MI (1966) LISP 1.5 programmer’s manual. MIT, Cambridge, MA
Moore JS (foreword) (1989) Special issue on systems verification. J Autom Reason 5(4): 461–492
Myreen MO (2009a) Formal verification of machine-code programs. PhD thesis, University of Cambridge
Myreen MO (2009b) Verified implementation of LISP on ARM, x86 and PowerPC. In: Theorem proving in higher-order logics (TPHOLs). Springer, Berlin
Myreen MO, Slind K, Gordon MJC (2008) Machine-code verification for multiple architectures – an application of decompilation into logic. In: Formal methods in computer aided design (FMCAD). IEEE, New York, NY
Myreen MO, Slind K, Gordon MJC (2009) Extensible proof-producing compilation. In: Compiler construction (CC). Springer, Heidelberg
Reynolds J (2002) Separation logic: a logic for shared mutable data structures. In: Proceedings of logic in computer science (LICS). IEEE Computer Society, Washington, DC
Sawada J, Hunt WA Jr (2002) Verification of fm9801: an out-of-order microprocessor model with speculative execution, exceptions, and program-modifying capability. Formal Methods Syst Des 20(2):187–222
Schostak D (2003) Methodology for the formal specification of RTL RISC processor designs (with particular reference to the ARM6). PhD thesis, University of Leeds
Slind K (2009) TFL: an environment for terminating functional programs. http://www.cl.cam.ac.uk/~ks121/tfl.html (accessed in July 2009)
Thery L (2007) Proving the group law for elliptic curves formally. In: Technical report RT-0330, INRIA, 2007
Wong W (1983) Formal verification of VIPER ’s ALU. In: Technical report 300, University of Cambridge Computer Laboratory, April 1983
Author information
Authors and Affiliations
Corresponding author
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2010 Springer Science+Business Media, LLC
About this chapter
Cite this chapter
Fox, A.C.J., Gordon, M.J.C., Myreen, M.O. (2010). Specification and Verification of ARM Hardware and Software. In: Hardin, D. (eds) Design and Verification of Microprocessor Systems for High-Assurance Applications. Springer, Boston, MA. https://doi.org/10.1007/978-1-4419-1539-9_8
Download citation
DOI: https://doi.org/10.1007/978-1-4419-1539-9_8
Published:
Publisher Name: Springer, Boston, MA
Print ISBN: 978-1-4419-1538-2
Online ISBN: 978-1-4419-1539-9
eBook Packages: EngineeringEngineering (R0)