Firmware Engineering: An Extensive Update

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.

[1]  David A. Patterson Strum: Structured Microprogram Development System for Correct Firmware , 1976, IEEE Transactions on Computers.

[2]  Jack Belzer,et al.  Encyclopedia of Computer Science and Technology , 2002 .

[3]  S. Monchaud,et al.  A low-cost microprogram development system loader and tester , 1979 .

[4]  Stephen S. Yau,et al.  On storage optimization of horizontal microprograms , 1974, MICRO 7.

[5]  Daniel Brand,et al.  Symbolic Simulation for Correct Machine Design , 1979, 16th Design Automation Conference.

[6]  Subrata Dasgupta Towards a microprogramming language schema , 1978, MICRO 11.

[7]  Christopher Vickery A microprogramming design laboratory , 1976, MINI.

[8]  C. V. Ramamoorthy,et al.  Execution time (and memory) optimization in microprograms , 1974, MICRO 7.

[9]  Alfred V. Aho,et al.  The Design and Analysis of Computer Algorithms , 1974 .

[10]  David J. DeWitt Extensibility - a new approach for designing machine independent microprogramming languages , 1976, MICRO 9.

[11]  Bruce D. Shriver,et al.  An Overview of Firmware Engineering , 1978, Computer.

[12]  William H. Joyner,et al.  Automated proofs of microprogram correctness , 1976, MICRO 9.

[13]  Ratan K. Guha,et al.  Dynamic microprogramming in a time sharing environment , 1977, MICRO 10.

[14]  Stanislaw Budkowski,et al.  Firmware versus software verification , 1978, MICRO 11.

[15]  S. G. Tucker Microprogram Control for System/360 , 1967, IBM Syst. J..

[16]  Christopher Vickery Software aids for microprogram development , 1974, MICRO 7.

[17]  Andrzej Blikle,et al.  Certification of microprograms by an algebraic method , 1976, MICRO 9.

[18]  Samir S. Husson,et al.  Microprogramming: principles and practices , 1971, SIGM.

[19]  David Johns Dewitt A machine independent approach to the production of optimized horizontal microcode. , 1976 .

[20]  Clement L. McGowan,et al.  Top-down structured programming techniques , 1975 .

[21]  Louise H. Jones,et al.  Microinstruction sequencing and structured microprogramming , 1974, MICRO 7.

[22]  David A. Patterson An approach to firmware engineering , 1978, AFIPS National Computer Conference.

[23]  Ted Lewis,et al.  Design objectives for high level microprogramming languages , 1978, MICRO 11.

[24]  Ward Douglas Maurer Some correctness principles for machine language programs and microprograms , 1974, MICRO 7.

[25]  F. T. Baker,et al.  Chief Programmer Team Management of Production Programming , 1972, IBM Syst. J..

[26]  Tilak Agerwala Microprogram Optimization: A Survey , 1976, IEEE Transactions on Computers.

[27]  Andries van Dam,et al.  Vertical Migration for Performance Enhancement in Layered Hardware/Firmware/Software Systems , 1978, Computer.

[28]  Graham Wood On the packing of micro-operations into micro-instruction words , 1978, MICRO 11.

[29]  David J. DeWitt A Control Word Model for detecting conflicts between microprograms , 1975, MICRO 8.

[30]  Daniel Martin An Eclipse microassembler , 1977, SIGM.

[31]  Richard H. Eckhouse A high-level microprogramming language (MPL) , 1971, AFIPS '71 (Spring).

[32]  Ralph L. London A view of program verification , 1975 .

[33]  Mario Tokoro,et al.  An approach to microprogram optimization considering resource occupancy and instruction formats , 1977, MICRO 10.

[34]  M. R. Barbacci,et al.  Using Emulaion to Verify Formal Architecture Descriptions , 1978, Computer.

[35]  George B. Leeman Some Problems in Certifying Microprograms , 1975, IEEE Transactions on Computers.

[36]  C. V. Ramamoorthy,et al.  Automatic Testing for the Correctness and Equivalence of Loopfree Microprograms , 1974, IEEE Transactions on Computers.

[37]  Scott Davidson,et al.  Testing of microprograms using the lockheed SUE microinstruction simulator , 1976, ANSS '76.

[38]  C. V. Ramamoorthy,et al.  Testing large software with automated software evaluation systems , 1975 .

[39]  Daniel Brand,et al.  Microprogram verification considered necessary , 1978, AFIPS National Computer Conference.

[40]  Subrata Dasgupta,et al.  The Identification of Maximal Parallelism in Straight-Line Microprograms , 1976, IEEE Transactions on Computers.

[41]  C. V. Ramamoorthy,et al.  A High-Level Language for Horizontal Microprogramming , 1974, IEEE Transactions on Computers.

[42]  Morrie Gasser An interactive debugger for software and firmware , 1973, MICRO 6.

[43]  V. Michael Powers,et al.  Microsystems Microprogram Assemblers for Bit Slice Microprocessors , 1978, Computer.

[44]  Stanislaw Budkowski,et al.  An introduction to the verification oriented microprogramming language “MIDDLE” , 1978, MICRO 11.

[45]  Harvey Bratman,et al.  The Software Factory , 1975, Computer.

[46]  Patrick Wayne Mallett Methods of compacting microprograms , 1979 .

[47]  David A. Patterson,et al.  Towards an efficient, machine-independent language for microprogramming , 1979, MICRO 12.

[48]  Ben A. Laws Microbe: A self commenting microassembler , 1977, MICRO 10.

[49]  Bruce D. Shriver A Description of the MATHILDA System , 1973 .

[50]  Jean P. Schoellkopf Microprogramming: A step of a top-down design methodology , 1974, MICRO 7.

[51]  Steve Crocker,et al.  Verification of the FTSC microprogram , 1978, MICRO 11.

[52]  Graham Wood Microprogram design at the processor level , 1979, SIGM.

[53]  Joseph E. Urban,et al.  A specification language and its processor. , 1977 .

[54]  C. V. Ramamoorthy,et al.  Optimization Strategies for Microprograms , 1971, IEEE Transactions on Computers.

[55]  Subrata Dasgupta,et al.  The Organization of Microprogram Stores , 1979, CSUR.

[56]  Lutz Richter,et al.  A two level microprogram simulator , 1974, MICRO 7.

[57]  Mario Tokoro,et al.  A technique of global optimization of microprograms , 1978, MICRO 11.

[58]  Hans-Jürgen Färber Statistical evaluation of program runs on a microprogrammed computer through simulation , 1973, SIGM.

[59]  Ashok K. Agrawala,et al.  Dynamic Problem-Oriented Redefinition of Computer Architecture via Microprogramming , 1978, IEEE Transactions on Computers.

[60]  Subrata Dasgupta,et al.  Parallelism in Loop-Free Microprograms , 1977, IFIP Congress.

[61]  Bobby C. Hodges,et al.  Support software for micro program development , 1975, SIGM.

[62]  J. F. Sommerville Towards machine-independent microprogramming , 1979 .

[63]  W. M. McKeeman A simple computer , 1974, SIGM.