Knowledge-Based Code Selection Methods in Retargetable Microcode Synthesis

We have presented a method for machine-independent synthesis of microcode using knowledge-based techniques. A high-level representation of the microprogram is translated into symbolic assertions and then converted by the synthesis system to microcode. Thus, a synthesis system can function as the back end of a microcode compiler. Since the knowledge base is machine-independent and requires only a machine description to generate microcode for that machine, it can also be used as a retargetable microcode compiler. The knowledge base is in procedural form and consists of transformation rules that reflect the effect of MOs on machine states. Many of these rules simply restrict the transformations to acceptable behavior on the part of the synthesis system. Others help to reduce the search by providing knowledge about desirable behavior in the form of heuristics, or help the synthesis system reason about different possible derivations for the same specification.

[1]  Robert Andrew Mueller Automated microprogram synthesis , 1980 .

[2]  Steven R. Vegdahl,et al.  Local code generation and compaction in optimizing microcode compilers , 1982 .

[3]  David Gries,et al.  The Science of Programming , 1981, Text and Monographs in Computer Science.

[4]  Stephen C. Johnson A portable compiler: theory and practice , 1978, POPL.

[5]  Peter Marwedel A retargetable compiler for a high-level microprogramming language , 1984, MICRO 17.

[6]  Takanobu Baba,et al.  The MPG System: A Machine-Independent Efficient Microprogram Generator , 1981, IEEE Transactions on Computers.

[7]  John L. Gieser,et al.  Automatic microcode generation for horizontally microprogrammed processors , 1981, MICRO 14.

[8]  R. G. G. Cattell,et al.  Automatic Derivation of Code Generators from Machine Descriptions , 1980, TOPL.

[9]  Maurice V. Wilkes,et al.  The best way to design an automatic calculating machine , 1981 .

[10]  Subrata Dasgupta A model of clocked micro-architectures for firmware engineering and design automation applications , 1984, MICRO 17.

[11]  David S. Johnson,et al.  Computers and Intractability: A Guide to the Theory of NP-Completeness , 1978 .

[12]  Ted G. Lewis,et al.  On the Design of a Microcode Compiler for a Machine-Independent High-Level Language , 1981, IEEE Transactions on Software Engineering.

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

[14]  R. Preston Gurd Experience developing microcode using a high level language , 1983, SIGM.

[15]  John L. Bruno,et al.  Code Generation for a One-Register Machine , 1976, J. ACM.

[16]  Subrata Dasgupta,et al.  Axiomatic proof rules for a machine-specific microprogramming language , 1983, SIGM.

[17]  Christopher W. Fraser,et al.  Automatic generation of code generators. , 1977 .

[18]  Robert A. Mueller Automated microcode synthesis , 1984 .

[19]  Robert A. Mueller,et al.  Applying algebraic simulation to machine-independent microcode synthesis , 1983 .

[20]  Utpal Banerjee,et al.  Time and Parallel Processor Bounds for Fortran-Like Loops , 1979, IEEE Transactions on Computers.

[21]  Robert A. Mueller,et al.  Flow graph machine models in microcode synthesis , 1983, SIGM.

[22]  Vicki H. Allan,et al.  Global methods in the flow graph approach to retargetable microcode generation , 1984, MICRO 17.

[23]  Robert Steven Glanville,et al.  A Machine Independent Algorithm for Code Generation and Its Use in Retargetable Compilers , 1977 .

[24]  Marleen Sint MIDL - a microinstruction description language , 1981, MICRO 14.

[25]  John L. Gieser On Horizontally Microprogrammed Microarchitecture Description Techniques , 1982, IEEE Transactions on Software Engineering.