Mechanising a formal model of flash memory

We present second steps in the construction of formal models of NAND flash memory, based on a recently emerged open standard for such devices. The model is intended as a key part of a pilot project to develop a verified file store system based on flash memory. The project was proposed by Joshi and Holzmann as a contribution to the Grand Challenge in Verified Software, and involves constructing a highly assured flash file store for use in space-flight missions. The model is at a level of abstraction that captures the internal architecture of NAND flash devices. In this paper, we focus on mechanising the state model and its initialisation operation, where most of the conceptual complexity resides.

[1]  J. Michael Spivey,et al.  The Z notation - a reference manual , 1992, Prentice Hall International Series in Computer Science.

[2]  Ian J. Hayes,et al.  Specification case studies , 1987 .

[3]  Wei Tu,et al.  Model checking an entire Linux distribution for security violations , 2005, 21st Annual Computer Security Applications Conference (ACSAC'05).

[4]  Stephen N. Freund,et al.  Checking Concise Specifications for Multithreaded Software , 2004, J. Object Technol..

[5]  Mario Barbacci,et al.  Real Time Distributed Systems , 1993, CHDL.

[6]  Jim Woodcock,et al.  First Steps in the Verified Software Grand Challenge , 2006, Computer.

[7]  Mark Saaltink,et al.  The Z/EVES Reference Manual (for Version 1.5) , 1997 .

[8]  David Woodhouse,et al.  JFFS : The Journalling Flash File System , 2001 .

[9]  Gerard J. Holzmann,et al.  A mini challenge: build a verifiable filesystem , 2007, Formal Aspects of Computing.

[10]  Jim Woodcock,et al.  Z/Eves and the Mondex Electronic Purse , 2006, ICTAC.

[11]  Viktor Kuncak,et al.  Verifying a File System Implementation , 2004, ICFEM.

[12]  Sang-goo Lee,et al.  A new flash memory management for flash storage system , 1999, Proceedings. Twenty-Third Annual International Computer Software and Applications Conference (Cat. No.99CB37032).

[13]  Kyu Ho Park,et al.  An efficient NAND flash file system for flash memory storage , 2006, IEEE Transactions on Computers.

[14]  Paul E. Debevec,et al.  Virtual Cinematography: Relighting through Computation , 2006, Computer.

[15]  Maritta Heisel Specification of the Unix File System: A Comparative Case Study , 1995, AMAST.

[16]  Axel Sikora,et al.  Technologies and reliability of modern embedded flash cells , 2006, Microelectron. Reliab..

[17]  Jim Woodcock,et al.  Formalising Flash Memory: First Steps , 2007, 12th IEEE International Conference on Engineering Complex Computer Systems (ICECCS 2007).

[18]  Moonzoo Kim,et al.  Pre-testing Flash Device Driver through Model Checking Techniques , 2008, 2008 1st International Conference on Software Testing, Verification, and Validation.

[19]  Trevor N. Mudge,et al.  FlashCache: a NAND flash memory file cache for low power web servers , 2006, CASES '06.

[20]  Seongsoo Hong,et al.  Proceedings of the 2006 international conference on Compilers, architecture and synthesis for embedded systems , 2002 .

[21]  Sivan Toledo,et al.  Algorithms and data structures for flash memories , 2005, CSUR.

[22]  Ana Cavalcanti,et al.  The Unix filing system: a MooZ specification , 1994 .

[23]  Tetsuo Endoh,et al.  Reliability issues of flash memory cells , 1993, Proc. IEEE.

[24]  C. A. R. Hoare,et al.  The verifying compiler: A grand challenge for computing research , 2003, JACM.

[25]  Carroll Morgan,et al.  Specification of the UNIX Filing System , 1984, IEEE Transactions on Software Engineering.

[26]  Junfeng Yang,et al.  Using model checking to find serious file system errors , 2004, TOCS.

[27]  P. Krishnan,et al.  Flash memory file caching for mobile computers , 1994, 1994 Proceedings of the Twenty-Seventh Hawaii International Conference on System Sciences.