Skip to main content

Formal Verification of a Flash Memory Device Driver – An Experience Report

  • Conference paper
Model Checking Software (SPIN 2008)

Part of the book series: Lecture Notes in Computer Science ((LNTCS,volume 5156))

Included in the following conference series:

Abstract

Flash memory has become virtually indispensable in most mobile devices. In order for mobile devices to operate successfully, it is essential that flash memory be controlled correctly through the device driver software. However, as is typical for embedded software, conventional testing methods often fail to detect hidden flaws in the complex device driver software. This deficiency incurs significant development and operation overhead to the manufacturers.

In order to compensate for the weaknesses of conventional testing, we have applied NuSMV, Spin, and CBMC to verify the correctness of a multi-sector read operation of the Samsung OneNANDTM flash device driver and studied their relative strengths and weaknesses empirically. Through this project, we verified the correctness of the multi-sector read operation on a small scale. The results demonstrate the feasibility of using model checking techniques to verify the control algorithm of a device driver in an industrial setting.

This work was supported by KAIST Institute for Information Technology Convergence and Samsung Electronics.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 39.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 54.99
Price excludes VAT (USA)
  • Compact, lightweight 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

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. Samsung OneNAND fusion memory, http://www.samsung.com/global/business/semiconductor/products/fusionmemory/Products_OneNAND.html

  2. SAT competition 2007: a satellite event of the SAT 2007 conference (2007), http://www.satcompetition.org/2007/

  3. Bollig, B., Wegener, I.: Improving the variable ordering of obdds is np-complete. IEEE Transactions on Computers 45(9) (September 1996)

    Google Scholar 

  4. Bouajjani, A., Habermehl, P., Rogalewicz, A., Vojnar, T.: Abstract regular tree model checking of complex dynamic data structures. In: 13th International Static Analysis Symposium, pp. 52–70 (2006)

    Google Scholar 

  5. Chan, W., Anderson, R.J., Beame, P., Burns, S., Modugno, F., Notkin, D., Reese, J.D.: Model checking large software specifications. IEEE Transactions on Software Engineering 24(7), 498–520 (1998)

    Article  Google Scholar 

  6. Cimatti, A., Clarke, E.M., Giunchiglia, E., Giunchiglia, F., Pistore, M., Roveri, M., Sebastiani, R., Tacchella, A.: NuSMV 2: An opensource tool for symbolic model checking. In: Proceeding of International Conference on Computer-Aided Verification (2002)

    Google Scholar 

  7. Clarke, E., Grumberg, O., Jha, S., Lu, Y., Veith, H.: Counterexample-guided abstraction refinement. In: Proceedings of the 12th International Conference on Computer Aided Verification, July 2000, pp. 154–169 (2000)

    Google Scholar 

  8. Darga, P.T., Boyapati, C.: Efficient software model checking of data structure properties. In: 21st Annual ACM SIGPLAN Conference on Object-Oriented Programming Systems, Languages, and Applications (2006)

    Google Scholar 

  9. Dong, Y., Du, X., Holzmann, G.J., Smolka, S.A.: Fighting livelock in the GNU i-protocol: a case study in explicit-state model checking. International Journal on Software Tools for Technology Transfer (4) (2003)

    Google Scholar 

  10. Clarke, E., Kroening, D., Lerda, F.: A tool for checking ANSI-C programs. In: Jensen, K., Podelski, A. (eds.) TACAS 2004. LNCS, vol. 2988, pp. 168–176. Springer, Heidelberg (2004)

    Google Scholar 

  11. Eén, N., Sörensson, N.: An Extensible SAT-solver. In: Giunchiglia, E., Tacchella, A. (eds.) SAT 2003. LNCS, vol. 2919, pp. 502–518. Springer, Heidelberg (2004)

    Google Scholar 

  12. Eisner, C., Peled, D.: Comparing symbolic and explicit model checking of a software system. In: SPIN Workshop (2002)

    Google Scholar 

  13. Ball, T., et al.: Thorough static analysis of device drivers. ACM SIGOPS Operating Systems Review 40(4), 73–85 (2006)

    Article  Google Scholar 

  14. Holzmann, G.J.: The Spin Model Checker. Wiley, New York (2003)

    Google Scholar 

  15. Holzmann, G.J., Joshi, R.: Model-driven software verification. In: Spin Workshop (2004)

    Google Scholar 

  16. Graf, S., Saidi, H.: Construction of abstract state graphs with PVS. In: Grumberg, O. (ed.) CAV 1997. LNCS, vol. 1254, pp. 72–83. Springer, Heidelberg (1997)

    Google Scholar 

  17. Geldenhuys, J., Valmari, A.: A nearly memory-optimal data structure for sets and mappings. In: Spin Workshop (2003)

    Google Scholar 

  18. Zhang, L., Malik, S.: The quest for efficient boolean satisfiability solvers. In: Computer Aided Verification (2002)

    Google Scholar 

  19. McMillan, K.: Verification of infinite state systems by compositional model checking. In: Conference on Hardware Design and Verification Methods (1999)

    Google Scholar 

  20. Miller, S.P., Tribble, A.C., Whalen, M.W., Heimdahl, M.P.E.: Proving the shalls: Early validation of requirements through formal methods. International Journal on Software Tools for Technology Transfer 8(4), 303–319 (2006)

    Article  Google Scholar 

  21. Kim, M., Kim, Y., Choi, Y., Kim, H.: Pre-testing flash device driver through model checking techniques. In: IEEE Int. Conf. on Software Testing, Verification and Validation (2008)

    Google Scholar 

  22. Monniaux, D.: Verification of device drivers and intelligent controllers: A case study. In: 7th ACM and IEEE international conference on Embedded Software (2006)

    Google Scholar 

  23. Rudell, R.: Dynamic variable ordering for ordered binary decision diagrams. In: International Conference on Computer-Aided Design(ICCAD) (November 1993)

    Google Scholar 

  24. Anand, S., Pasareanu, C.S., Visser, W.: Symbolic execution with abstraction. Software Tools for Technology Transfer (2008)

    Google Scholar 

  25. Witkowski, T., Blanc, N., Kroening, D., Weissenbacher, G.: Model checking concurrent linux device drivers. In: Automated Software Engineering (November 2007)

    Google Scholar 

  26. Choi, Y.: From NuSMV to SPIN: Experiences with model checking flight guidance systems. Formal Methods in System Design, 199–216 (2007)

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Klaus Havelund Rupak Majumdar Jens Palsberg

Rights and permissions

Reprints and permissions

Copyright information

© 2008 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Kim, M., Choi, Y., Kim, Y., Kim, H. (2008). Formal Verification of a Flash Memory Device Driver – An Experience Report . In: Havelund, K., Majumdar, R., Palsberg, J. (eds) Model Checking Software. SPIN 2008. Lecture Notes in Computer Science, vol 5156. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-540-85114-1_12

Download citation

  • DOI: https://doi.org/10.1007/978-3-540-85114-1_12

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-85113-4

  • Online ISBN: 978-3-540-85114-1

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics