Abstract
This paper provides an extensive update to an earlier survey article [23] which reviewed the state of the art and likely future trends in the field of firmware engineering. The current survey covers the areas of design and specification of microprograms, firmware construction techniques, testing, verification and debugging methods, and maintenance. The survey relates firmware engineering techniques to the analogous techniques for software. An extensive set of over 80 references has been provided.
This work was supported in part by NSF Grant MCS 76-01661
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
Similar content being viewed by others
References
T. Agerwala, “Microprogram Optimizations A Survey,” IEEE Trans. Comput., vol C-25, pp.962–973, Oct. 1976.
A. V. Aho, J. E. Hopcroft, and J. D. Ullman, The Design and Analysis of Computer Algorithms, Addison Wesley, Reading, Mass. 1974.
F.T. Baker, “Chief Programmer Team Management of Production Programming,” IBM Syst. Journ. vol 11, no. 1, (1972) pp. 56–73.
M. Barbacci and A. Parker, “Verification of Formal Architecture Descriptions,” Computer, Vol. 11, No. 5, May 1978, pp. 51–56.
C. G. Bell and A. Newell, Computer Structures: Reading and Examples, McGraw-Hill, New York, 1971.
H. K. Berg and B. E. Biasing, “PDP-11/40E Microcode Simulator Primer,” Technical Report 78–10, Computer Science Department, University of Minnesota, July 1978.
H. K. Berg and C. R. Covey, “A Primer on the Use of a Logic State Analyzer as a Microprogram Debugging Aid,” Technical Report 78–12, Computer Science Department, University of Minnesota, July 1978.
H. K. Berg and E. Dekel, “MICRO/40 Assembler Primer,” Technical Report 78–9, Computer Science Department, University of Minnesota, July 1978.
H. K. Berg and N. Samari Kermani, “A Primer on the SMILE Microprogram Load and Test System,” Technical Report 78–11, Computer Science Department, University of Minnesota, July 1978.
A. Blikte and S. Budkowski, “Certification of Microprograms by an Algebraic Method,” 9th Annu. Workshop on Microprogramming Preprints, pp. 9–15.
B.W. Boehm, “Software Engineering,” IEEE Trans. Comput., vol C-25, pp. 1226–1242, Dec. 1976.
P. A. Boudreaux, “A User’s Manual for the MARIA-LOUISE Microassemblers on Multics,” Computer Science Department, University of Southwestern Louisiana, June 1977.
H. Bratman and T. Court, “The Software Factory,” IEEE Computer, vol. 8, No. 5, pp. 28–40, May 1975.
C. L. Braun, “An Integrated Microprocessor Support System,” SIGPLAN Notices, vol. 11, pp. 57–66, April 1976.
S. Budkowski and P. Dembinski, “Firmware versus Software Verification,” Proc. 11th Annu. Microprogramming Workshop, pp. 119–127.
W. C. Carter, W. H. Joyner, Jr., D. B. Brand, H. A. Ellozy, and J. L. Wolf, “An Improved System to Verify Assembled Programs,” Digest Fault Tolerant Computing Symposium-8, June 1978.
W.C. Carter, W.H. Joyner and D. Brand, “Microprogram Verification Considered Necessary,” Proc. of the NCC, Anaheim, CA, June 1978.
W.C. Carter, W. H. Joyner, Jr., and D. B. Brand, “Symbolic Simulation for Correct Machine Design,” 16th Annu. Design Automation Conf., June 1979.
S. Dasgupta and J. Tartar, “The Identification of Maximal Parallelism in Straight Line Microprograms,” IEEE Trans. Comput. vol C-25, pp. 986–991, October 1976.
S. Dasgupta, “The Organization of Microprogram Stores,” Comp. Surveys, Vol. 11, No. 1, March 1979, pp. 39–66.
S. Dasgupta, “Parallelism in Loop-Free Microprograms,” 1977 IFIP Congress Proceedings, pp. 745–750.
S. Dasgupta, “Towards a Microprogramming Language Schema,” Proc. 11th Annu. Microprogramming Workshop, pp. 144–153.
S. Davidson and B. D. Shriver, “An Overview of Firmware Engineering,” Computer, Vol. 11, No. 5, May 1978, pp. 21–33.
S. Davidson, “Design and Construction of the Virtual Machine Resource Binding Language,” Dissertation Prospectus, Computer Science Department, University of Southwestern Louisiana, December 1978.
S. Davidson, “Syntax and Semantics of MARBLE,” MARBLE Memo 14, Computer Science Department, University of Southwestern Louisiana, July 1979.
S. Davidson and W. Tao “Testing of Microprograms Using the Lockheed SUE Microinstruction Simulator,” Proceedings of Symposium on Simulation of Computer Systems, pp. 189–201, August 1976.
P. Dembinski and S. Budkowski, “An Introduction to the Verification Oriented Microprogramming Language ‘MIDDLE’,” Proc. 11th Annu. Microprogramming Workshop, pp. 139–143.
D.J. DeWitt, “A Control Word Model for Detecting Conflicts Between Microprograms,” 8th Annu, Workshop on Microprogramming Preprints, pp. 6–13.
D. J. DeWitt, “Extensibility — a New Approach for Designing Machine Independent Microprogramming Languages,” 9th Annu, Workshop on Microprogramming Preprints, pp. 33–42.
D.J. DeWitt, “A Machine Independent Approach to the Production of Optimal Horizontal Microcode,” Ph.D Dissertation, The University of Michigan, 1976.
R. H. Eckhouse, “A High Level Microprogramming Language (MPL),” AFIPS Conf. Proc. 38, SJCC 1971.
M.E. Fagan “Design and Code Inspections and Process Control in the Development of Programs,” IBM Technical Report TR 00.2763, June 10, 1976, IBM Corporation, Poughkeepsie, N.Y.
H. J. Farber, “Statistical Evaluation of Programs Run on a Microprogrammed Computer Through Simulation,” SIGMICRO Newsletter, vol 4, pp. 24–29, April 1973.
M. Gasser, “An Interactive Debugger for Software and Firmware,” 6th Annu. Workshop on Microprogramming Preprints, pp. 113–120.
T. Gilb, Software Metrics, Cambridge, Masss: Winthrop Publishers Inc., 1977.
J. B. Goodenough and S. C. Gerhard, “Towards a Theory of Test Data Selection,” IEEE Trans. Software Eng. vol SE-1, pp. 156–173, June 1975.
R.K. Guha, “Dynamic Microprogramming in a Time Sharing Environment,” Proceedings 10th Annu. Workshop on Microprogramming, pp. 55–61.
B.C. Hodges and A.J. Edwards, “Support Software for Microprogram Development,” SIGMICRO Newsletter, vol. 5, pp. 17–24, January 1975.
S. S. Husson, Microprogramming: Principles and Practices, Englewood Cliffs, N.J.: Prentice Hall, 1970.
L.H. Jones, “Microinstruction Sequencing and Structured Microprogramming,” 7th Annu, Workshop on Microprogramming Preprints, pp. 277–290.
W.H. Joyner, W.C. Carter and G.B. Leeman, “Automated Proofs of Microprogram Correctness,” Proceedings 9th Annu. Workshop on Microprogramming, pp. 51–56.
R.L. Kleir and C.V. Ramamoorthy, “Optimization Strategies for Microprograms,” IEEE Trans, Comput. vol C-20. pp. 783–794, July 1971.
B.A. Laws Jr., “Microbe: A Self Commenting Microassembler,” Proceedings 10th Annu. Workshop on Microprogramming, pp. 61–66.
G.B. Leeman, “Some Problems in Certifying Microprograms,” IEEE Trans. Comput. vol. C-24, pp. 545–554, March 1975.
R.L. London, “A View of Program Verification,” SIGPLAN Notices, vol. 10, pp. 534–545, June 1975.
K. Malik and T. G. Lewis, “Design Objectives for High Level Microprogramming Languages,” Proc. 11th Annu. Microprogramming Workshop, pp. 154–160.
P. W. Mallett, “Methods of Compacting Microprograms,” Ph.D. Dissertation, Computer Science Department, University of Southwestern Louisiana, December 1978.
D. Martin, “An Eclipse Microassembler,” SIGMICRO Newsletter, vol 8, pp. 13–24, March 1977.
P. Marwedel and G. Zimmerman, “MIMOLA Report and MIMOLA Software System User Manual,” Bericht Nr. 2/79, Institut fur Informatik Und Praktische Mathematik, Christian-Albrechts-Univers itat, Kiel, Germany, May 1979.
W.D. Maurer, “Some Correctness Principles for Machine Language Programs and Microprograms,” 7th Annu, Workshop on Microprogramming Preprints, pp. 225–235.
C.L. McGowan and J.R. Kelly, Top Down Structured Programming Techniques, New York: Petrocelli/Charter, 1975.
W. M. McKeeman, “A Simple Computer,” SIGMICRO Newsletter, vol. 5, pp. 16–48, October 1975.
S. Menchard and R. Prat, “A Low-Cost Microprogram Development System Loader and Tester,” Eurmicro Journal, Vol. 5, No, 4, July 1979, pp.225–235.
D. A. Patterson, “An Approach to Firmware Engineering,” Proc. of the NCC, Anaheim, CA. June 1978, p. 643.
D. A. Patterson and K. Lew, “An Investigation of Automatic Microcoding of Operating System Routines,” submitted to IEEE Trans. on Soft. Eng., September 1979.
D.A. Patterson, “STRUM: Structured Microprogramming System for Correct Firmware,” IEEE Trans. Comput. vol C-25, pp. 974–986, October 1976.
D. A. Patterson, K. Lew, and R. Tuck, “Towards an Efficient, Machine-Independent Language for Microprogramming,” Proc. 12th Annu. Microprogramming Workshop, pp. 22–36.
M. Persson, “Design of Software Tools for Microprogrammable Microprocessors,” TRITA-NA-7903, Department of Numerical Analysis and Computing Science, Royal Institute of Technology, Stockholm, Sweden, 1979.
M. Persson, “MICAS/MICSIM — A Microprogram Generator for Varian V73,” TRITA-NA-7913, Department of Numerical Analysis and Computing Science, Royal Institute of Technology, Stockholm, Sweden, 1979.
R. Petzold, L. Richter, and H. P. Rohrs, “A Two Level Microprogram Simulator,” 7th Annu. Workshop on Microprogramming Preprints, pp. 5–65.
V. M. Powers and J. H. Hernandez, “Microprogram Assemblers for Bit-Slice Microprocessors,” Computer, Vol. 11, No. 7, July 1978. pp. 108–120.
C.V. Ramamoorthy and S.-B.F. Ho, “Testing Large Software with Automated Software Evaluation Systems,” IEEE Trans. Software Eng. vol SE-1, pp. 46–59, March 1975.
C.V. Ramamoorthy and K. S. Shankar, “Automatic Testing for the Correctness and Equivalence of Loopfree Microprograms,” IEEE Trans. Comput. vol C-23, pp. 768–783, August 1974.
C. V. Ramamoorthy and H. H. So, “A Survey of Software Requirements and Specifications,” Infotech State of the Art Report on Software Engineering.
C.V. Ramamoorthy and M. Tsuchiya, “A High Level Language for Horizontal Microprogramming,” IEEE Trans. Comput. vol C-23, pp. 791–802, August 1974.
T. G. Rauscher and A. K. Agrawala, “Dynamic Problem-Oriented Redefinition of Computer Architecture via Microprogramming,” IEEE Trans. Comput., Vol. C-27, November 1978, pp. 1006–1014.
M. Richards, “The BCPL Programming Manual,” The Computer Laboratory, University of Cambridge, Coin Exchange Street, Cambridge, England, CB2 3QG, 1973.
W. Rottman, “MIKADO — A System for Computer Aided Microprogram Development,” 7th Annu. Workshop on Microprogramming Preprints, pp. 195–202.
J.P. Schoellkopf, “Microprogramming: A Step of a Top-Down Design Methodology,” 7th Annu. Workshop on Microprogramming Preprints, pp. 203–207.
B.D. Shriver, “A Description of the MATHILDA System,” Computer Science Department, University of Aarhus, Aarhus, Denmark, DAIMI PB-13, 1973.
B. D. Shriver, D. Hyams and J. W. Anderson, “Virtual Machine Monitors,” in Encyclopedia of Computer Science and Technology, Eds, W. Beizer, A. G. Holzman and A. Kent, Marcel Dekker, Inc., New York, 1979.
J. F. Sommerville, “Towards Machine Independent Microprogramming,” Eurmicro Journal, Vol. 5, No. 4, July 1979, pp. 219–224.
J. Stockenburg and A. van Dam, “A Methodology for Vertical Migration in Layered Hardware/Firmware/Software Systems,” Computer, Vol. 11, No. 5, May 1978, pp. 35–50.
M. Tabandeh and C.V. Ramamoorthy, “Execution Time (and Memory) Optimization in Microprograms,” 7th Annu. Workshop on Microprogramming Preprints Supplement, pp. S19–S27.
D. Teichroew and H. Sayani, “Automation of System Building,” Datamation, pp. 25–30, August 1971.
M. Tokoro, E. Tamura, K. Takase and K. Tamaru, “An Approach to Microprogram Optimization Considering Resource Occupancy and Instruction Formats,” Proceedings 10th Annu. Workshop on Microprogrammings pp. 92–109.
M. Tokoro, T. Takizuka, E. Tamura, and I. Yamaura, “A Technique of Global Optimization of Microprograms,” Proc, 11th Annu. Microprogramming Workshop, pp. 41–51.
S. G. Tucker, “Microprogram Control for System/360,” IBM Systems Journ. vol 6, pp. 222–241, 1967.
R.G. Turner, “An Interactive Simulator for MATHILDA—RIKKE on Multics: Concept, Design and Implementation,” Masters Project Report, The University of Southwestern Louisiana, August 1977.
J. E. Urban, “A Specification Language and its Processor,” Ph.D Dissertation, The University of Southwestern Louisiana, December 1977.
D. van Mierop, L. Marcus, and S. Crocker, “Verification of the FTSC Microprogram,” Proc. 11th Annu. Microprogramming Workshop, p. 118.
C. Vickery, “A Microprogramming Design Laboratory,” SIGPLAN Notices, Vol. 11, No. 4, April 1976, pp. 113–117.
C. Vickery, “Software Aids for Microprogram Development,” 7th Annu. Workshop on Microprogramming, pp. 208–211.
T.M. Whitney, “A Test Procedure for Microprogrammed Systems,” 3rd Annu. Workshop on Microprogramming Preprints.
M.V. Wilkes, “The Best Way to Design an Automatic Machine,” Proc. Manchester Univ, Computer Inaugural Conf., July 1951, London, England: Ferrante, 1951.
N. Wirth, “Program Development by Stepwise Refinement,” Coram. ACM vol 14, pp. 221–227, April 1971.
G. Wood, “Microprogram Design at the Processor Level,” SIGMICRO Newsletter, Vol. 10, No. 1, March 1979, pp. 14–20.
G. Wood, “On the Packing of Micro-operations into Microinstruction Words,” Proc. 11th Annu. Microprogramming Workshop, pp. 51–56.
S.S. Yau, A.C. Schowe and M. Tsuchiya, “On Storage Optimization of Horizontal Microprograms,” 7th Annu. Workshop on Microprogramming Preprints, pp. 98–106.
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
Davidson, S., Shriver, B.D. (1980). Firmware Engineering: An Extensive Update. In: Giloi, W.K. (eds) Firmware Engineering. Informatik-Fachberichte, vol 31. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-67774-8_2
Download citation
DOI: https://doi.org/10.1007/978-3-642-67774-8_2
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-10304-2
Online ISBN: 978-3-642-67774-8
eBook Packages: Springer Book Archive