Skip to main content

Firmware Engineering: An Extensive Update

  • Conference paper

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

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

This is a preview of subscription content, log in via an institution.

Buying options

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

Learn about institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. T. Agerwala, “Microprogram Optimizations A Survey,” IEEE Trans. Comput., vol C-25, pp.962–973, Oct. 1976.

    Article  MathSciNet  Google Scholar 

  2. A. V. Aho, J. E. Hopcroft, and J. D. Ullman, The Design and Analysis of Computer Algorithms, Addison Wesley, Reading, Mass. 1974.

    MATH  Google Scholar 

  3. F.T. Baker, “Chief Programmer Team Management of Production Programming,” IBM Syst. Journ. vol 11, no. 1, (1972) pp. 56–73.

    Article  Google Scholar 

  4. M. Barbacci and A. Parker, “Verification of Formal Architecture Descriptions,” Computer, Vol. 11, No. 5, May 1978, pp. 51–56.

    Article  Google Scholar 

  5. C. G. Bell and A. Newell, Computer Structures: Reading and Examples, McGraw-Hill, New York, 1971.

    Google Scholar 

  6. 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.

    Google Scholar 

  7. 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.

    Google Scholar 

  8. H. K. Berg and E. Dekel, “MICRO/40 Assembler Primer,” Technical Report 78–9, Computer Science Department, University of Minnesota, July 1978.

    Google Scholar 

  9. 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.

    Google Scholar 

  10. A. Blikte and S. Budkowski, “Certification of Microprograms by an Algebraic Method,” 9th Annu. Workshop on Microprogramming Preprints, pp. 9–15.

    Google Scholar 

  11. B.W. Boehm, “Software Engineering,” IEEE Trans. Comput., vol C-25, pp. 1226–1242, Dec. 1976.

    Article  Google Scholar 

  12. P. A. Boudreaux, “A User’s Manual for the MARIA-LOUISE Microassemblers on Multics,” Computer Science Department, University of Southwestern Louisiana, June 1977.

    Google Scholar 

  13. H. Bratman and T. Court, “The Software Factory,” IEEE Computer, vol. 8, No. 5, pp. 28–40, May 1975.

    Google Scholar 

  14. C. L. Braun, “An Integrated Microprocessor Support System,” SIGPLAN Notices, vol. 11, pp. 57–66, April 1976.

    Article  Google Scholar 

  15. S. Budkowski and P. Dembinski, “Firmware versus Software Verification,” Proc. 11th Annu. Microprogramming Workshop, pp. 119–127.

    Google Scholar 

  16. 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.

    Google Scholar 

  17. W.C. Carter, W.H. Joyner and D. Brand, “Microprogram Verification Considered Necessary,” Proc. of the NCC, Anaheim, CA, June 1978.

    Google Scholar 

  18. W.C. Carter, W. H. Joyner, Jr., and D. B. Brand, “Symbolic Simulation for Correct Machine Design,” 16th Annu. Design Automation Conf., June 1979.

    Google Scholar 

  19. 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.

    Article  MathSciNet  Google Scholar 

  20. S. Dasgupta, “The Organization of Microprogram Stores,” Comp. Surveys, Vol. 11, No. 1, March 1979, pp. 39–66.

    Article  MATH  Google Scholar 

  21. S. Dasgupta, “Parallelism in Loop-Free Microprograms,” 1977 IFIP Congress Proceedings, pp. 745–750.

    Google Scholar 

  22. S. Dasgupta, “Towards a Microprogramming Language Schema,” Proc. 11th Annu. Microprogramming Workshop, pp. 144–153.

    Google Scholar 

  23. S. Davidson and B. D. Shriver, “An Overview of Firmware Engineering,” Computer, Vol. 11, No. 5, May 1978, pp. 21–33.

    Article  Google Scholar 

  24. S. Davidson, “Design and Construction of the Virtual Machine Resource Binding Language,” Dissertation Prospectus, Computer Science Department, University of Southwestern Louisiana, December 1978.

    Google Scholar 

  25. S. Davidson, “Syntax and Semantics of MARBLE,” MARBLE Memo 14, Computer Science Department, University of Southwestern Louisiana, July 1979.

    Google Scholar 

  26. 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.

    Google Scholar 

  27. P. Dembinski and S. Budkowski, “An Introduction to the Verification Oriented Microprogramming Language ‘MIDDLE’,” Proc. 11th Annu. Microprogramming Workshop, pp. 139–143.

    Google Scholar 

  28. D.J. DeWitt, “A Control Word Model for Detecting Conflicts Between Microprograms,” 8th Annu, Workshop on Microprogramming Preprints, pp. 6–13.

    Google Scholar 

  29. D. J. DeWitt, “Extensibility — a New Approach for Designing Machine Independent Microprogramming Languages,” 9th Annu, Workshop on Microprogramming Preprints, pp. 33–42.

    Google Scholar 

  30. D.J. DeWitt, “A Machine Independent Approach to the Production of Optimal Horizontal Microcode,” Ph.D Dissertation, The University of Michigan, 1976.

    Google Scholar 

  31. R. H. Eckhouse, “A High Level Microprogramming Language (MPL),” AFIPS Conf. Proc. 38, SJCC 1971.

    Google Scholar 

  32. 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.

    Google Scholar 

  33. H. J. Farber, “Statistical Evaluation of Programs Run on a Microprogrammed Computer Through Simulation,” SIGMICRO Newsletter, vol 4, pp. 24–29, April 1973.

    Article  Google Scholar 

  34. M. Gasser, “An Interactive Debugger for Software and Firmware,” 6th Annu. Workshop on Microprogramming Preprints, pp. 113–120.

    Google Scholar 

  35. T. Gilb, Software Metrics, Cambridge, Masss: Winthrop Publishers Inc., 1977.

    Google Scholar 

  36. 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.

    Google Scholar 

  37. R.K. Guha, “Dynamic Microprogramming in a Time Sharing Environment,” Proceedings 10th Annu. Workshop on Microprogramming, pp. 55–61.

    Google Scholar 

  38. B.C. Hodges and A.J. Edwards, “Support Software for Microprogram Development,” SIGMICRO Newsletter, vol. 5, pp. 17–24, January 1975.

    Article  Google Scholar 

  39. S. S. Husson, Microprogramming: Principles and Practices, Englewood Cliffs, N.J.: Prentice Hall, 1970.

    Google Scholar 

  40. L.H. Jones, “Microinstruction Sequencing and Structured Microprogramming,” 7th Annu, Workshop on Microprogramming Preprints, pp. 277–290.

    Google Scholar 

  41. W.H. Joyner, W.C. Carter and G.B. Leeman, “Automated Proofs of Microprogram Correctness,” Proceedings 9th Annu. Workshop on Microprogramming, pp. 51–56.

    Google Scholar 

  42. R.L. Kleir and C.V. Ramamoorthy, “Optimization Strategies for Microprograms,” IEEE Trans, Comput. vol C-20. pp. 783–794, July 1971.

    Article  Google Scholar 

  43. B.A. Laws Jr., “Microbe: A Self Commenting Microassembler,” Proceedings 10th Annu. Workshop on Microprogramming, pp. 61–66.

    Google Scholar 

  44. G.B. Leeman, “Some Problems in Certifying Microprograms,” IEEE Trans. Comput. vol. C-24, pp. 545–554, March 1975.

    Article  MathSciNet  Google Scholar 

  45. R.L. London, “A View of Program Verification,” SIGPLAN Notices, vol. 10, pp. 534–545, June 1975.

    Article  Google Scholar 

  46. K. Malik and T. G. Lewis, “Design Objectives for High Level Microprogramming Languages,” Proc. 11th Annu. Microprogramming Workshop, pp. 154–160.

    Google Scholar 

  47. P. W. Mallett, “Methods of Compacting Microprograms,” Ph.D. Dissertation, Computer Science Department, University of Southwestern Louisiana, December 1978.

    Google Scholar 

  48. D. Martin, “An Eclipse Microassembler,” SIGMICRO Newsletter, vol 8, pp. 13–24, March 1977.

    Article  Google Scholar 

  49. 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.

    Google Scholar 

  50. W.D. Maurer, “Some Correctness Principles for Machine Language Programs and Microprograms,” 7th Annu, Workshop on Microprogramming Preprints, pp. 225–235.

    Google Scholar 

  51. C.L. McGowan and J.R. Kelly, Top Down Structured Programming Techniques, New York: Petrocelli/Charter, 1975.

    Google Scholar 

  52. W. M. McKeeman, “A Simple Computer,” SIGMICRO Newsletter, vol. 5, pp. 16–48, October 1975.

    Article  Google Scholar 

  53. 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.

    Google Scholar 

  54. D. A. Patterson, “An Approach to Firmware Engineering,” Proc. of the NCC, Anaheim, CA. June 1978, p. 643.

    Google Scholar 

  55. D. A. Patterson and K. Lew, “An Investigation of Automatic Microcoding of Operating System Routines,” submitted to IEEE Trans. on Soft. Eng., September 1979.

    Google Scholar 

  56. D.A. Patterson, “STRUM: Structured Microprogramming System for Correct Firmware,” IEEE Trans. Comput. vol C-25, pp. 974–986, October 1976.

    Article  Google Scholar 

  57. D. A. Patterson, K. Lew, and R. Tuck, “Towards an Efficient, Machine-Independent Language for Microprogramming,” Proc. 12th Annu. Microprogramming Workshop, pp. 22–36.

    Google Scholar 

  58. 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.

    Google Scholar 

  59. 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.

    Google Scholar 

  60. R. Petzold, L. Richter, and H. P. Rohrs, “A Two Level Microprogram Simulator,” 7th Annu. Workshop on Microprogramming Preprints, pp. 5–65.

    Google Scholar 

  61. V. M. Powers and J. H. Hernandez, “Microprogram Assemblers for Bit-Slice Microprocessors,” Computer, Vol. 11, No. 7, July 1978. pp. 108–120.

    Article  Google Scholar 

  62. 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.

    Google Scholar 

  63. 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.

    Article  Google Scholar 

  64. C. V. Ramamoorthy and H. H. So, “A Survey of Software Requirements and Specifications,” Infotech State of the Art Report on Software Engineering.

    Google Scholar 

  65. C.V. Ramamoorthy and M. Tsuchiya, “A High Level Language for Horizontal Microprogramming,” IEEE Trans. Comput. vol C-23, pp. 791–802, August 1974.

    Article  Google Scholar 

  66. 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.

    Article  Google Scholar 

  67. M. Richards, “The BCPL Programming Manual,” The Computer Laboratory, University of Cambridge, Coin Exchange Street, Cambridge, England, CB2 3QG, 1973.

    Google Scholar 

  68. W. Rottman, “MIKADO — A System for Computer Aided Microprogram Development,” 7th Annu. Workshop on Microprogramming Preprints, pp. 195–202.

    Google Scholar 

  69. J.P. Schoellkopf, “Microprogramming: A Step of a Top-Down Design Methodology,” 7th Annu. Workshop on Microprogramming Preprints, pp. 203–207.

    Google Scholar 

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

    Google Scholar 

  71. 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.

    Google Scholar 

  72. J. F. Sommerville, “Towards Machine Independent Microprogramming,” Eurmicro Journal, Vol. 5, No. 4, July 1979, pp. 219–224.

    Google Scholar 

  73. 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.

    Article  Google Scholar 

  74. M. Tabandeh and C.V. Ramamoorthy, “Execution Time (and Memory) Optimization in Microprograms,” 7th Annu. Workshop on Microprogramming Preprints Supplement, pp. S19–S27.

    Google Scholar 

  75. D. Teichroew and H. Sayani, “Automation of System Building,” Datamation, pp. 25–30, August 1971.

    Google Scholar 

  76. 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.

    Google Scholar 

  77. M. Tokoro, T. Takizuka, E. Tamura, and I. Yamaura, “A Technique of Global Optimization of Microprograms,” Proc, 11th Annu. Microprogramming Workshop, pp. 41–51.

    Google Scholar 

  78. S. G. Tucker, “Microprogram Control for System/360,” IBM Systems Journ. vol 6, pp. 222–241, 1967.

    Article  Google Scholar 

  79. 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.

    Google Scholar 

  80. J. E. Urban, “A Specification Language and its Processor,” Ph.D Dissertation, The University of Southwestern Louisiana, December 1977.

    Google Scholar 

  81. D. van Mierop, L. Marcus, and S. Crocker, “Verification of the FTSC Microprogram,” Proc. 11th Annu. Microprogramming Workshop, p. 118.

    Google Scholar 

  82. C. Vickery, “A Microprogramming Design Laboratory,” SIGPLAN Notices, Vol. 11, No. 4, April 1976, pp. 113–117.

    Article  Google Scholar 

  83. C. Vickery, “Software Aids for Microprogram Development,” 7th Annu. Workshop on Microprogramming, pp. 208–211.

    Google Scholar 

  84. T.M. Whitney, “A Test Procedure for Microprogrammed Systems,” 3rd Annu. Workshop on Microprogramming Preprints.

    Google Scholar 

  85. M.V. Wilkes, “The Best Way to Design an Automatic Machine,” Proc. Manchester Univ, Computer Inaugural Conf., July 1951, London, England: Ferrante, 1951.

    Google Scholar 

  86. N. Wirth, “Program Development by Stepwise Refinement,” Coram. ACM vol 14, pp. 221–227, April 1971.

    Article  MATH  Google Scholar 

  87. G. Wood, “Microprogram Design at the Processor Level,” SIGMICRO Newsletter, Vol. 10, No. 1, March 1979, pp. 14–20.

    Article  Google Scholar 

  88. G. Wood, “On the Packing of Micro-operations into Microinstruction Words,” Proc. 11th Annu. Microprogramming Workshop, pp. 51–56.

    Google Scholar 

  89. S.S. Yau, A.C. Schowe and M. Tsuchiya, “On Storage Optimization of Horizontal Microprograms,” 7th Annu. Workshop on Microprogramming Preprints, pp. 98–106.

    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

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

Publish with us

Policies and ethics