skip to main content
article
Free Access

An experiment in high level language microprogramming and verification

Published:01 October 1981Publication History
Skip Abstract Section

Abstract

The STRUM system was created to apply software engineering techniques to microprogramming. It provides the tools that allow the microprogrammer to use high level language, structured programming, and formal program verification to create emulations for a horizontally microprogrammed computer. This system is evaluated in two parts: (1) High level microprogramming language design and its use in structured microprogramming; and (2) Verification of a large microprogram. Both parts of this evaluation include experimental results. Part I includes a comparison of an emulation created using traditional techniques to the same emulation created using the STRUM system. Part II describes the formal verification of a 1700 line program that was immediately subjected to extensive testing. This work provides new results on the efficiency of high level microprogramming languages, the effectiveness of peephole optimization for microcode and the practicality of formal microprogram verification.

References

  1. 1 ACM SIGPLAN Notices. Proc. SIGPLAN/SIGMICRO Interface Meeting, Harriman, NY, May 30-June 1, 1973.9, 8 (Aug. 1974).Google ScholarGoogle Scholar
  2. 2 Agrawala, T. Microprogramming optimization: A survey. IEEE Trans. on Computers, Special Issue on Microprogramming, (Oct. 1976), 962-973.Google ScholarGoogle Scholar
  3. 3 Beyers, J.W., Dohse, L. J., Fucetola, J. P., Kochis, R. L., Lob, C. G., Taylor, G. L., and Zeller, E. R. A 32b VLSI CPU chip, Proc. IEEE Inter. Solid-State Circuits Conf., New York, N.Y., Feb. 1981, pp. 104-105.Google ScholarGoogle ScholarCross RefCross Ref
  4. 4 Bell, C.G. and NeweU, A., Computer Structures: Readings and Examples, McGraw Hill, New York, 1971. Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. 5 Birman, A., On proving correctness of microprograms. IBM J. Res. Develop., 18, 5, (May 1974) 250-256.Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. 6 Carter, W.C., Joyner, W.H., Jr., and Brand, D. Microprogram verification considered necessary. Proc. of the NCC, Anaheim, California, June 1978, p. 657.Google ScholarGoogle Scholar
  7. 7 Cottrell, J.R., A verification condition generator for a structured microprogramming language. UCLA-ENG-7606, Dept of Computer Sci, University of California, Los Angeles, Los Angeles, California, Mar. 1976.Google ScholarGoogle Scholar
  8. 8 Davidson, S. and Shriver, B.D., An overview of firmware engineering. Computer 11, 5, (May 1978) 21-33.Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. 9 Fisher, J., The Optimization of Horizontal Microcode: Within Basic Blocks and Beyond, Ph.D. Thesis, Courant Institute, New York University, New York, N.Y., 1979. Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. 10 Mathematical Aspects of Computer Science. J.T. Schwatrz, Ed. 19 (AMS, New York, 1967) pp 19-32.Google ScholarGoogle Scholar
  11. 11 Gerhart, S.L. and Yelowitz, L., Observations of fallibility in applications of modern program methodologies. IEEE Trans. on Software Engineering, SE-2, 3, (Sept. 1976) 195-207.Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. 12 Guha, R.K., Dynamic microprogramming in a timesharing environment. Proc. 10th Ann. Workshop on Microprogramming. Niagara Falls, N.Y., October 1977, pp. 55-60. Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. 13 Hearn, A.C., REDUCE 2: A system and language for algebraic manipulation, Proc. 2nd Symp. Symbolic and Algebraic Manipulation, ACM, Los Angeles, CA; March 23-25, 1971, pp. 128-133. Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. 14 Heiser, J.E., METAFOR--A Verified Portable Translator Writing System, Ph.D. Thesis, Department of Computer Science, School of Engineering, University of California, June 1976. Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. 15 Husson, S., Microprogramming: Principles and Practices, Prentice Hall, Englewood Cliffs, N.J., 1970.Google ScholarGoogle Scholar
  16. 16 Hewlett-Packard, A pocket guide to the 2100 computer, Palo Alto, California, 1966.Google ScholarGoogle Scholar
  17. 17 Joyner, W.H., Jr., Carter, W.C., and Leeman, G.B., Jr., Automated proofs of microprogram correctness. Proc. 9th Ann. Workshop on Microprogramming, New Orleans, LA (Sept. 1976) pp. 9-14. Google ScholarGoogle ScholarDigital LibraryDigital Library
  18. 18 Leeman, G.B., Jr., Some problems in certifying microprogramming. IEEE Trans. on Computers, C-24, 5, (May 1975) 543-553.Google ScholarGoogle Scholar
  19. 19 Lehman, M.M., Microprogramming trend considered dangerous, Comm. ACM, 18, 6, (June 1975) 358-360.Google ScholarGoogle Scholar
  20. 20 London, R.L. Correctness of two compilers for a LISP subset. Proc. ACM Conf. on Proving Assertions about Programs, New Mexico State University, Las Cruces, NM, Jan. 6-7, 1972, pp 121-127 Google ScholarGoogle ScholarDigital LibraryDigital Library
  21. 21 McKeeman, W.M., Peephole optimization. Comm. ACM, 8 7, (July 1965) 443-444. Google ScholarGoogle ScholarDigital LibraryDigital Library
  22. 22 Milner, R., An algebraic definition of simulation between programs, Report No. CS-205, Stanford University, Feb. 1971. Google ScholarGoogle ScholarDigital LibraryDigital Library
  23. 23 Patterson, D.A., The design of a system for the synthesis of correct microprograms, Proc. 8th Ann. Workshop on Microprogramming, Chicago, IL, September 21-23, 1975, pp 13-17. Google ScholarGoogle ScholarDigital LibraryDigital Library
  24. 24 Patterson, D.A., STRUM: Structured microprogramming system for correct firmware. 1EEE Trans. on Computers, Special Issue on Microprogramming (October 1976) 974-985.Google ScholarGoogle Scholar
  25. 25 Patterson, D.A., Verification of Microprograms, Ph.D. Thesis, University of California, UCLA-ENG-7707, January 1977. Google ScholarGoogle ScholarDigital LibraryDigital Library
  26. 26 Patterson, D.A., Formal verification in an unverified environment: An experiment, Proc. of the 6th Texas Conf. on Computer Systems, Austin, TX, November, 1977. pp. 4A-13-4A-18.Google ScholarGoogle Scholar
  27. 27 Patterson, D.A., An approach to firmware engineering. Proc. of the NCC, Anaheim, California, June 1978, p 643.Google ScholarGoogle Scholar
  28. 28 Ragland, L.C., A Verified Program Verifier, Ph.D. Thesis, University of Texas, Austin, Texas, May 1973. Google ScholarGoogle ScholarDigital LibraryDigital Library
  29. 29 Reigel, E.W. Faber, U., and Fisher, D.A., The interpreter--a microprogrammable building block system. Proc. of the SJCC, Anaheim, California, May 1972, pp. 705-723.Google ScholarGoogle Scholar
  30. 30 Tucker, S.G., Microprogram control for System/360, IBM Syst. J. 6, 4, (April 1967) 222-241.Google ScholarGoogle ScholarDigital LibraryDigital Library
  31. 31 Wilkes, M.V., The best way to design an automatic calculation machine, Manchester University Computer Inaugural Conference Proceedings, Manchester, England, 1951, p. 16.Google ScholarGoogle Scholar
  32. 32 Wood, G., On packing of micro-operations into microinstruction words. Proc. 10th Ann. Workshop on Microprogramming, Niagara Falls, NY, September 19-22, 1978, pp. 51-55. Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. An experiment in high level language microprogramming and verification

                  Recommendations

                  Comments

                  Login options

                  Check if you have access through your login credentials or your institution to get full access on this article.

                  Sign in

                  Full Access

                  • Published in

                    cover image Communications of the ACM
                    Communications of the ACM  Volume 24, Issue 10
                    Oct. 1981
                    85 pages
                    ISSN:0001-0782
                    EISSN:1557-7317
                    DOI:10.1145/358769
                    Issue’s Table of Contents

                    Copyright © 1981 ACM

                    Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

                    Publisher

                    Association for Computing Machinery

                    New York, NY, United States

                    Publication History

                    • Published: 1 October 1981

                    Permissions

                    Request permissions about this article.

                    Request Permissions

                    Check for updates

                    Qualifiers

                    • article

                  PDF Format

                  View or Download as a PDF file.

                  PDF

                  eReader

                  View online with eReader.

                  eReader