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.
- 1 ACM SIGPLAN Notices. Proc. SIGPLAN/SIGMICRO Interface Meeting, Harriman, NY, May 30-June 1, 1973.9, 8 (Aug. 1974).Google Scholar
- 2 Agrawala, T. Microprogramming optimization: A survey. IEEE Trans. on Computers, Special Issue on Microprogramming, (Oct. 1976), 962-973.Google Scholar
- 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 ScholarCross Ref
- 4 Bell, C.G. and NeweU, A., Computer Structures: Readings and Examples, McGraw Hill, New York, 1971. Google ScholarDigital Library
- 5 Birman, A., On proving correctness of microprograms. IBM J. Res. Develop., 18, 5, (May 1974) 250-256.Google ScholarDigital Library
- 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 Scholar
- 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 Scholar
- 8 Davidson, S. and Shriver, B.D., An overview of firmware engineering. Computer 11, 5, (May 1978) 21-33.Google ScholarDigital Library
- 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 ScholarDigital Library
- 10 Mathematical Aspects of Computer Science. J.T. Schwatrz, Ed. 19 (AMS, New York, 1967) pp 19-32.Google Scholar
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 15 Husson, S., Microprogramming: Principles and Practices, Prentice Hall, Englewood Cliffs, N.J., 1970.Google Scholar
- 16 Hewlett-Packard, A pocket guide to the 2100 computer, Palo Alto, California, 1966.Google Scholar
- 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 ScholarDigital Library
- 18 Leeman, G.B., Jr., Some problems in certifying microprogramming. IEEE Trans. on Computers, C-24, 5, (May 1975) 543-553.Google Scholar
- 19 Lehman, M.M., Microprogramming trend considered dangerous, Comm. ACM, 18, 6, (June 1975) 358-360.Google Scholar
- 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 ScholarDigital Library
- 21 McKeeman, W.M., Peephole optimization. Comm. ACM, 8 7, (July 1965) 443-444. Google ScholarDigital Library
- 22 Milner, R., An algebraic definition of simulation between programs, Report No. CS-205, Stanford University, Feb. 1971. Google ScholarDigital Library
- 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 ScholarDigital Library
- 24 Patterson, D.A., STRUM: Structured microprogramming system for correct firmware. 1EEE Trans. on Computers, Special Issue on Microprogramming (October 1976) 974-985.Google Scholar
- 25 Patterson, D.A., Verification of Microprograms, Ph.D. Thesis, University of California, UCLA-ENG-7707, January 1977. Google ScholarDigital Library
- 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 Scholar
- 27 Patterson, D.A., An approach to firmware engineering. Proc. of the NCC, Anaheim, California, June 1978, p 643.Google Scholar
- 28 Ragland, L.C., A Verified Program Verifier, Ph.D. Thesis, University of Texas, Austin, Texas, May 1973. Google ScholarDigital Library
- 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 Scholar
- 30 Tucker, S.G., Microprogram control for System/360, IBM Syst. J. 6, 4, (April 1967) 222-241.Google ScholarDigital Library
- 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 Scholar
- 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 ScholarDigital Library
Index Terms
- An experiment in high level language microprogramming and verification
Recommendations
Experiments in Automatic Microcode Generation
A procedure is described which permits applications problems coded in a higher level language to be compiled to microcode for horizontally microprogrammed processors. An experimental language has been designed which is suitable for expressing ...
The Datasaab FCPU microprogramming language
This paper describes the high level microprogramming language (ML) used in microprogramming the FCPU (Flexible Central Processing Unit) developed by the Datasaab sector of Saab-Scania AB. The background of the use of machine dependent high level ...
The Datasaab FCPU microprogramming language
Proceedings of the meeting on SIGPLAN/SIGMICRO interfaceThis paper describes the high level microprogramming language (ML) used in microprogramming the FCPU (Flexible Central Processing Unit) developed by the Datasaab sector of Saab-Scania AB. The background of the use of machine dependent high level ...
Comments