Skip to main content

Correctness of Firmware -An Overview-

  • Conference paper
Firmware Engineering

Part of the book series: Informatik-Fachberichte ((INFORMATIK,volume 31))

Abstract

Similar to the developments in the area of software engineering, microprogram verification evolved into one of the fundamental notions of firmware engineering. In a general sense, program verification is the task of systematically demonstrating that a program achieves its intended purpose, i. e., the task of proving the absence of errors from a program. This task may be considered as a backward mapping from a given program to a statement of the functional requirements for that program. There exist two fundamental approaches to establish such mappings. A program may be exercised for a specific set of input values; the successful completion of program execution constitutes a necessary condition for the correctness of that program. A more rigorous approach is to provide an argument that a program satisfies its functional requirements which is independent of specific input values thus constituting a necessary and sufficient condition for the correctness of that program. In this paper, we investigate both approaches to the verification of firmware.

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 54.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 69.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. Berg, H. K., “Firmware-Engineering: Eine Übersicht”, Informatik Spektrum, Vol. 3, No. 2, Springer Yerlag, 1980.

    Google Scholar 

  2. Boehm, B. W., “Software Engineering”, IEEE Trans. on Computers, vol. 25, no. 12, 1976, pp. 1226–1242.

    Article  MATH  Google Scholar 

  3. Popek, G. J.; Farber, D. A., “A Model for Verification of Data Security in Operating Systems”, Comm. of the ACM, vol. 21, no. 9, 1978, pp. 737–749.

    Article  MATH  Google Scholar 

  4. Boebert, W. E.; Franta, W. R.-, “Specification of Message-Oriented Systems”, Honeywell Systems & Research Center, Minneapolis. DPRE Final Report Volume 3, no. F0606-FR-Y3 (A005), 1978.

    Google Scholar 

  5. Berg, H. K.; Franta, W. R.; Moher, T. G.; Boebert, W. E., “Formal Methods of Program Verification and Specification: Part I”, Course Notes, Department of Computer Science, University of Minnesota, 1979.

    Google Scholar 

  6. Stockenberg, J.; van Dam, A., “Vertical Migration for Performance Enhancement in Layered Hardware/Firmware/Software Systems”, Computer, vol. 11, no. 5, 1978, pp. 35–50.

    Article  Google Scholar 

  7. Stoy, J. E., “Denotational Semantics: The Scott-Strachey Approach to Programming Language Theory”, The MIT Press, Cambridge, MA, 1977.

    Google Scholar 

  8. Dijkstra, E. W., “Notes on Structured Programming”, Technical University Eindhoven, Tech. Report EWD 149, April 1970.

    Google Scholar 

  9. Fairley, R. E., “Tutorial: Static Analysis and Dynamic Testing of Computer Software”, Computer, vol. 11, no. 4, 1978, pp. 14–23.

    Article  Google Scholar 

  10. Berg, H. K., “A Model of Timing Characteristics in Computer Control”, EUROMICRO Journal, vol. 5, No. 4, 1979, pp. 206–218.

    Article  Google Scholar 

  11. Davidson, S.; Tao, W., “Testing of Microprograms using the Lockhead SUE Microinstruction Simulator”, Proc. Symposium on the Simulation of Computer Systems, 1976, pp. 189–801.

    Google Scholar 

  12. Petzhold, R.; Richter, L.; Röhrs, H. P., “A Two-Level Microprogram Simulator”, MICRO 7 Preprints, 1974, ACM, pp. 41–47.

    Google Scholar 

  13. Vickery, C. C., “Software Aids for Microprogram Development”, MICRO 7 Preprints, 1974, ACM, pp. 208–211.

    Google Scholar 

  14. Gasser, M., “An Interactive Debugger for Software and Firmware”, MICRO 6 Preprints, ACM, 1973, pp. 113–120.

    Google Scholar 

  15. Genshaft, R. S., “Micro-Delta Reference Manual”, Computer Science Department, Queens College of CUNY, 1976.

    Google Scholar 

  16. Shriver, B. D., “A Description of the MATHILDA System”, Computer Science Department, University of Aarhus, DAIMI PB-13, 1973.

    Google Scholar 

  17. Fey, H. J., “Ein mikroprozessorunterstütztes Mikroprogramm-Entwicklungssystem für den Nixdorf-Rechner NR 1501.XX”, Fachgespräch Mikroprogrammierung, GI, 1979, pp. 114–136.

    Google Scholar 

  18. Berg, H. K.; Covey, C. R., “A Primer on the Use of a Logic State Analyzer as a Microprogram Debugging Aid”, Department of Computer Science, University of Minnesota, Tech. Report 78–12, 1978.

    Google Scholar 

  19. Hoare, C. A. R., “An Axiomatic Approach to Computer Programming”, Comm. of the ACM, vol. 12, no. 10, 1969, pp. 576–583.

    Article  MATH  Google Scholar 

  20. Darringer, J. A.; King, J. C., “Application of Symbolic Execution to Program Testing”, Computer, vol. 11, no. 4, 1978, pp. 51–60.

    Article  Google Scholar 

  21. Floyd, R. W., “Assigning Meaning to Programs”, Proc. of Symposia in Applied Mathematics, American Mathematical Society, vol. 19, 1967, pp. 19–32.

    MathSciNet  Google Scholar 

  22. Blikle, A.; Mazurkiewicz, A., “An Algebraic Approach to the Theory of Programs, Algorithms, Languages, and Recursiveness”, Mathematical Foundations of Computer Science, Warsaw, 1972.

    Google Scholar 

  23. Dijkstra, E. W., “A Discipline of Programming”, Prentice Hall, Inc., Englewood Cliffs, NJ, 1976.

    MATH  Google Scholar 

  24. Patterson, D. A., “STRUM: Structured Microprogramming System for Correct Firmware”, IEEE Trans. on Computers, vol. C-25, no. 10, 1976, pp. 974–986.

    Article  Google Scholar 

  25. Bell, C. G.; Newell, A., “Computer Structures: Readings and Examples”, McGraw-Hill, New York, 1971.

    Google Scholar 

  26. Ramamoorthy, C. V.; Shankar, K. S., “Automatic Testing for the Correctness and Equivalence of Loopfree Microprograms”, IEEE Trans, on Computers, vol. C-23, no. 8, 1974, pp. 768–782.

    Article  Google Scholar 

  27. Milner, R., “An Algebraic Definition of Simulation between Programs”, Proc. 2nd Int. Joint Conf. Artificial Intelligence, 1971, pp. 481–489.

    Google Scholar 

  28. Joyner, W. H.; Carter, W. C; Leeman, G. B., “Automated Proofs of Microprogram Correctness”, MICRO 9 Proceedings, 1976, IEEE Catalog no. 76CH1148-6C, pp. 51–55.

    Google Scholar 

  29. Blikle, A.; Budkowski, S., “Certification of Microprograms by an Algebraic Method”, MICRO 9 Proceedings, 1976, IEEE Catalog no. 76CH1148-6C, pp. 9–14.

    Google Scholar 

  30. Budkowski, S.; Dembinski, P., “Firmware versus Software Verification”, MICRO 11 Proceedings, 1978, IEEE Catalog no. 78CH1411-8, pp. 119–127.

    Google Scholar 

  31. Dasgupta, S., “Towards a Microprogramming Language Schema”, MICRO 11 Proceedings, 1978, IEEE Catalog no. 78CH1411-8, pp. 144–153.

    Google Scholar 

  32. Berg, H. K.; Franta, W. R., “An Approach to Firmware Engineering Disciplines”, submitted to the IFIP Working Conference on Firmware, Microprogramming, and Restructurable Hardware, Linz, Austria, May 1980.

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 1980 Springer-Verlag Berlin · Heidelberg

About this paper

Cite this paper

Berg, H.K. (1980). Correctness of Firmware -An Overview-. In: Giloi, W.K. (eds) Firmware Engineering. Informatik-Fachberichte, vol 31. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-67774-8_8

Download citation

  • DOI: https://doi.org/10.1007/978-3-642-67774-8_8

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-10304-2

  • Online ISBN: 978-3-642-67774-8

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics