A formal model of a large memory that supports efficient execution

The validation and application of formal processor models benefits fundamentally from both efficient execution and automated reasoning about the models. We present a memory model written in the ACL2 logic, with both reasoning support and a runtime environment, that accomplishes these objectives. Our memory model provides a space-efficient implementation for an address space of 248 bytes, and is used in our development of an ISA model for x86 instructions. We define and prove invariants, and we use them to prove useful lemmas and to formally verify absence of run-time simulator errors. Our memory model also supports efficient execution through constant-time read and write access in an applicative setting.

[1]  J. S. Moore,et al.  A Precise Description of the ACL2 Logic , 1998 .

[2]  Elizabeth M. Rudnick,et al.  Microprocessor Design Verification , 2000, The VLSI Handbook.

[3]  Robert S. Boyer,et al.  Single-Threaded Objects in ACL2 , 2002, PADL.

[4]  Sol Swords,et al.  Bit-Blasting ACL2 Theorems , 2011, ACL2.

[5]  Robert S. Boyer,et al.  Function memoization and unique object representation for ACL2 functions , 2006, ACL2 '06.

[6]  Magnus O. Myreen,et al.  A Trustworthy Monadic Formalization of the ARMv7 Instruction Set Architecture , 2010, ITP.

[7]  Warren A. Hunt,et al.  Microprocessor design verification , 1989, Journal of Automated Reasoning.

[8]  Warren A. Hunt,et al.  Towards a Formal Model of the X86 ISA , 2012 .

[9]  Matt Kaufmann,et al.  Structured Theory Development for a Mechanized Logic , 2001, Journal of Automated Reasoning.

[10]  Warren A. Hunt FM8501: A Verified Microprocessor , 1994, Lecture Notes in Computer Science.

[11]  W. Hunt,et al.  A formal HDL and its use in the FM9001 verification , 1992, Philosophical Transactions of the Royal Society of London. Series A: Physical and Engineering Sciences.

[12]  Jared Davis Memories: array-like records for ACL2 , 2006, ACL2 '06.

[13]  William D. Young,et al.  A robust machine code proof framework for highly secure applications , 2006, ACL2 '06.

[14]  Panagiotis Manolios,et al.  Computer-Aided Reasoning: An Approach , 2011 .