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.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
References
Berg, H. K., “Firmware-Engineering: Eine Übersicht”, Informatik Spektrum, Vol. 3, No. 2, Springer Yerlag, 1980.
Boehm, B. W., “Software Engineering”, IEEE Trans. on Computers, vol. 25, no. 12, 1976, pp. 1226–1242.
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.
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.
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.
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.
Stoy, J. E., “Denotational Semantics: The Scott-Strachey Approach to Programming Language Theory”, The MIT Press, Cambridge, MA, 1977.
Dijkstra, E. W., “Notes on Structured Programming”, Technical University Eindhoven, Tech. Report EWD 149, April 1970.
Fairley, R. E., “Tutorial: Static Analysis and Dynamic Testing of Computer Software”, Computer, vol. 11, no. 4, 1978, pp. 14–23.
Berg, H. K., “A Model of Timing Characteristics in Computer Control”, EUROMICRO Journal, vol. 5, No. 4, 1979, pp. 206–218.
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.
Petzhold, R.; Richter, L.; Röhrs, H. P., “A Two-Level Microprogram Simulator”, MICRO 7 Preprints, 1974, ACM, pp. 41–47.
Vickery, C. C., “Software Aids for Microprogram Development”, MICRO 7 Preprints, 1974, ACM, pp. 208–211.
Gasser, M., “An Interactive Debugger for Software and Firmware”, MICRO 6 Preprints, ACM, 1973, pp. 113–120.
Genshaft, R. S., “Micro-Delta Reference Manual”, Computer Science Department, Queens College of CUNY, 1976.
Shriver, B. D., “A Description of the MATHILDA System”, Computer Science Department, University of Aarhus, DAIMI PB-13, 1973.
Fey, H. J., “Ein mikroprozessorunterstütztes Mikroprogramm-Entwicklungssystem für den Nixdorf-Rechner NR 1501.XX”, Fachgespräch Mikroprogrammierung, GI, 1979, pp. 114–136.
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.
Hoare, C. A. R., “An Axiomatic Approach to Computer Programming”, Comm. of the ACM, vol. 12, no. 10, 1969, pp. 576–583.
Darringer, J. A.; King, J. C., “Application of Symbolic Execution to Program Testing”, Computer, vol. 11, no. 4, 1978, pp. 51–60.
Floyd, R. W., “Assigning Meaning to Programs”, Proc. of Symposia in Applied Mathematics, American Mathematical Society, vol. 19, 1967, pp. 19–32.
Blikle, A.; Mazurkiewicz, A., “An Algebraic Approach to the Theory of Programs, Algorithms, Languages, and Recursiveness”, Mathematical Foundations of Computer Science, Warsaw, 1972.
Dijkstra, E. W., “A Discipline of Programming”, Prentice Hall, Inc., Englewood Cliffs, NJ, 1976.
Patterson, D. A., “STRUM: Structured Microprogramming System for Correct Firmware”, IEEE Trans. on Computers, vol. C-25, no. 10, 1976, pp. 974–986.
Bell, C. G.; Newell, A., “Computer Structures: Readings and Examples”, McGraw-Hill, New York, 1971.
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.
Milner, R., “An Algebraic Definition of Simulation between Programs”, Proc. 2nd Int. Joint Conf. Artificial Intelligence, 1971, pp. 481–489.
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.
Blikle, A.; Budkowski, S., “Certification of Microprograms by an Algebraic Method”, MICRO 9 Proceedings, 1976, IEEE Catalog no. 76CH1148-6C, pp. 9–14.
Budkowski, S.; Dembinski, P., “Firmware versus Software Verification”, MICRO 11 Proceedings, 1978, IEEE Catalog no. 78CH1411-8, pp. 119–127.
Dasgupta, S., “Towards a Microprogramming Language Schema”, MICRO 11 Proceedings, 1978, IEEE Catalog no. 78CH1411-8, pp. 144–153.
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.
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights 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