Some Aspects of High-Level Microprogramming

The design of high-level microprogramming languages poses problems t~hat are not ordinarily encountered in the software domain. Some of the more important are the phenomenon of microparallelism, the need for microcode optimization, the variability in computer microarchitectures, and, above all, the inherent machine-specificity of microprograms. These problems are discussed within a general architectural framework and a number of strategies and language design philosophies for solving them are described. They include machine-oriented languages such as Eckhouse's MPL [ECKH71] and Patterson's STRUM [PATT76]; DeWitt's EMPL, an extensible language [DEWI76a]; VMPL, an abstract machine-independent language designed by Malik and Lewis [MALI78]; and the microprogramming language schema S* proposed by Dasgnpta [DASG78]. The structure of S* is described in some detail.

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

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

[3]  Herbert A. Simon,et al.  The Sciences of the Artificial , 1970 .

[4]  Donald E. Knuth,et al.  Structured Programming with go to Statements , 1974, CSUR.

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

[6]  Maurice H. Halstead,et al.  Elements of software science (Operating and programming systems series) , 1977 .

[7]  Harry D. Huskey About the Cover: The colors of computing , 1978, Computer.

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

[9]  Glenford J. Myers Advances in computer architecture , 1978 .

[10]  David Andrew Patterson Verification of microprograms. , 1976 .

[11]  Gideon Frieder,et al.  An analysis of code density for the two level programmable control of the Nanodata QM-1 , 1977, MICRO 10.

[12]  Richard H. Eckhouse,et al.  An environment for research in microprogramming and emulation , 1972, CACM.

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

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

[15]  C. A. R. Hoare,et al.  An Axiomatic Definition of the Programming Language PASCAL , 1973, Acta Informatica.

[16]  Samuel H. Fuller,et al.  Evaluation of computer architectures via test programs , 1899, AFIPS '77.

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

[18]  David A. Patterson An experiment in high level language microprogramming and verification , 1981, CACM.

[19]  Alan B. Salisbury Microprogrammable Computer Architectures , 1976 .

[20]  John Peck,et al.  The Pica-B Computer An Abstract Target Machine For A Transportable Single-User Operating Environment , 1978, ACM Annual Conference.

[21]  Barbara Liskov The design of the Venus operating system , 1972, CACM.

[22]  Mario Barbacci,et al.  Instruction set processor specifications (ISPS): The notation and its applications , 1981, IEEE Transactions on Computers.

[23]  Earl W. Reigel,et al.  The interpreter: a microprogrammable building block system , 1971, AFIPS '72 (Spring).

[24]  H. Simon,et al.  The Organization of Complex Systems , 1977 .

[25]  Ted G. Lewis,et al.  Considerations for Implementing a High Level Microprogramming Language Translation System , 1975, Computer.

[26]  Samuel H. Fuller,et al.  Initial selection and screening of the CFA candidate computer architectures , 1977, AFIPS '77.

[27]  Elliott Irving Organick,et al.  Interpreting machines: Architecture and programming of the B1700/B1800 series (Operating and programming systems series) , 1978 .

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

[29]  Maurice V. Wilkes,et al.  Time-sharing computer systems , 1968 .

[30]  Per Brinch Hansen,et al.  The Architecture of Concurrent Programs , 1977 .

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

[32]  David Gries An Illustration of Current Ideas on the Derivation of Correctness Proofs and Correct Programs , 1976, IEEE Transactions on Software Engineering.

[33]  Masahiro Tsuchiya,et al.  Toward Optimization of Horizontal Microprograms , 1976, IEEE Transactions on Computers.

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

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

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

[37]  David Lorge Parnas,et al.  Use of the concept of transparency in the design of hierarchically structured systems , 1975, CACM.

[38]  Alfred C. Hartmann A Concurrent Pascal Compiler for Minicomputers , 1977, Lecture Notes in Computer Science.

[39]  Ashok K. Agrawala,et al.  On the syntax and semantics of horizontal microprogramming languages , 1973, ACM Annual Conference.

[40]  Samuel H. Fuller,et al.  Initial selection and screening of the CFA candidate computer architectures , 1899 .

[41]  Nick Tredennick,et al.  Microprogrammed implementation of a single chip microprocessor , 1978, MICRO 11.

[42]  Dave Johannsen Our machine, a microcoded LSI processor , 1978, MICRO 11.

[43]  Robert G. Barr,et al.  A Research-Oriented Dynamic Microprocessor , 1973, IEEE Transactions on Computers.

[44]  P. M. Melliar-Smith,et al.  A program structure for error detection and recovery , 1974, Symposium on Operating Systems.

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

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

[47]  Ole-Johan Dahl,et al.  SIMULA 67 common base language, (Norwegian Computing Center. Publication) , 1968 .

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

[49]  Edward A. Feustel,et al.  A Conceptual Framework for Computer Architecture , 1976, CSUR.

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

[51]  C. A. R. Hoare,et al.  Communicating sequential processes , 1978, CACM.

[52]  George Champine Current Trends in Data Base Systems , 1979, Computer.

[53]  C. A. R. HOARE,et al.  An axiomatic basis for computer programming , 1969, CACM.

[54]  Maurice H. Halstead,et al.  Elements of software science , 1977 .

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

[56]  Herbert A. Simon,et al.  The Sciences of the Artificial , 1970 .