Skip to main content

Specification and Verification of ARM Hardware and Software

  • Chapter
  • First Online:

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

Chapter
USD   29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD   89.00
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD   119.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info
Hardcover Book
USD   169.99
Price excludes VAT (USA)
  • Durable hardcover edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Learn about institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. 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

    Google Scholar 

  2. ARM Ltd. (2009) Jazelle technology. http://www.arm.com/products/multimedia/java/jazelle.html (accessed in July 2009)

  3. Burch J, Dill D (1994) Automatic verification of pipelined microprocessor control. Springer, Berlin, pp 68–80

    Google Scholar 

  4. Fox ACJ (1998) Algebraic models for advanced microprocessors. PhD thesis, University of Wales, Swansea

    Google Scholar 

  5. Fox ACJ (2001a) An algebraic framework for modelling and verifying microprocessors using HOL. In: Technical report 512, University of Cambridge Computer Laboratory, April 2001

    Google Scholar 

  6. Fox ACJ (2001b). A HOL specification of the ARM instruction set architecture. In: Technical report 545, University of Cambridge Computer Laboratory, June 2001

    Google Scholar 

  7. Fox ACJ (2002) Formal verification of the ARM6 micro-architecture. In: Technical report 548, University of Cambridge, Computer Laboratory, 2002

    Google Scholar 

  8. 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

    Chapter  Google Scholar 

  9. 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

    Google Scholar 

  10. Furber S (2000) ARM: system-on-chip architecture, 2nd edn. Addison-Wesley, Reading, MA

    Google Scholar 

  11. Gordon M (2007) Defining a LISP interpreter in a logic of total functions. In: The ACL2 theorem prover and its applications (ACL2)

    Google Scholar 

  12. Gordon MJC (1983) Proving a computer correct with the LCF-LSM hardware verification system. In: Technical report 42, University of Cambridge Computer Laboratory, 1983

    Google Scholar 

  13. Greve D, Wilding M, Vanfleet WM (2003) A separation kernel formal security policy. In: ACL2 workshop 2003, June 2003

    Google Scholar 

  14. Greve D, Richards R, Wilding M (2004) A summary of intrinsic partitioning verification. In: ACL2 Workshop 2004, November 2004

    Google Scholar 

  15. 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

    Google Scholar 

  16. 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

    Google Scholar 

  17. 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

    Google Scholar 

  18. Hurd J (2005) Formalizing elliptic curve cryptography in higher order logic. Available from the author’s Web site, October 2005

    Google Scholar 

  19. Hurd J, Gordon M, Fox A (2006) Formalized elliptic curve cryptography. In: High confidence software and systems: HCSS 2006, April 2006

    Google Scholar 

  20. McCarthy J, Abrahams PW, Edwards DJ, Hart TP, Levin MI (1966) LISP 1.5 programmer’s manual. MIT, Cambridge, MA

    Google Scholar 

  21. Moore JS (foreword) (1989) Special issue on systems verification. J Autom Reason 5(4): 461–492

    Google Scholar 

  22. Myreen MO (2009a) Formal verification of machine-code programs. PhD thesis, University of Cambridge

    Google Scholar 

  23. Myreen MO (2009b) Verified implementation of LISP on ARM, x86 and PowerPC. In: Theorem proving in higher-order logics (TPHOLs). Springer, Berlin

    Google Scholar 

  24. 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

    Google Scholar 

  25. Myreen MO, Slind K, Gordon MJC (2009) Extensible proof-producing compilation. In: Compiler construction (CC). Springer, Heidelberg

    Google Scholar 

  26. 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

    Google Scholar 

  27. 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

    Article  MATH  Google Scholar 

  28. Schostak D (2003) Methodology for the formal specification of RTL RISC processor designs (with particular reference to the ARM6). PhD thesis, University of Leeds

    Google Scholar 

  29. Slind K (2009) TFL: an environment for terminating functional programs. http://www.cl.cam.ac.uk/~ks121/tfl.html (accessed in July 2009)

  30. Thery L (2007) Proving the group law for elliptic curves formally. In: Technical report RT-0330, INRIA, 2007

    Google Scholar 

  31. Wong W (1983) Formal verification of VIPER ’s ALU. In: Technical report 300, University of Cambridge Computer Laboratory, April 1983

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Anthony C. J. Fox .

Editor information

Editors and Affiliations

Rights and permissions

Reprints 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)

Publish with us

Policies and ethics