Abstract
A procedure is described which permits applications problems coded in a Higher Level Language to be compiled to microcode for horizontally microprogrammed processors. An experimental language has been designed which is suitable for expressing computationally oriented problems for such processors in a distributed processing environment. Source programs are compiled first to a machine independent intermediate language and then to a machine dependent form consisting of elementary microoperations, with optimizations performed during each step. The microoperations are then compacted into executable microinstructions for a specific target machine. The procedure has been implemented for experimental purposes and used to compile several different types of applications programs. The experimental results are presented with an interpretation and analysis, along with recommendations for future study.
- 1 D. Landskov, et al., "Local Microcode Compaction Techniques", Computing Surveys, Vol. 12, No. 3, September 1980, pp. 261-294. Google Scholar
Digital Library
- 2 A.K. Agrawala and T.G. Rauscher, Foundation of Microprogramming Architecture Software and Applications, Academic Press, Inc., 1976.Google Scholar
- 3 A.V. Aho and S.C. Johnson, "Optimal Code Generation for Expression Trees", JACM, Vol. 23, No. 3, pp. 488-501, July 1976. Google Scholar
Digital Library
- 4 A.V. Aho and S. C. Johnson, and J. D. Ullman "Code Generation for Expressions with Common Subexpressions", JACM, Vol. 24, No. 1, pp. 146-160, January 1977. Google Scholar
Digital Library
- 5 J. Barth, "A Practical Interprocedural Data Flow Analysis Algorithm", CACM, Vol. 21, No. 9, pp. 724-736, September 1978. Google Scholar
Digital Library
- 6 J.L. Bruno and R. Sethi, "Code Generation for a One-Register Machine", JACM, Vol. 23, No. 3, pp. 502-510, July 1976. Google Scholar
Digital Library
- 7 P. Calingaert, Assemblers, Compilers, and Program Translation, Computer Science Press, Potomac, Md. 1979. Google Scholar
Digital Library
- 8 J. Cocke and K. Kennedy, "An Algorithm for Reduction of Operator Strength", CACM, Vol. 20, No. 11, pp. 850-856, November 1977. Google Scholar
Digital Library
- 9 S. Dasgupta and J. Tartar "The Identification of Maximal Parallelism in Straight-Line Microprograms", IEEE Trans. Comp, Vol C-25, October 1976, pp. 986-991.Google Scholar
Digital Library
- 10 C.G. Davis and R. L. Couch, "Ballistic Missile Defense: A Super Computer Challenge" Computer, Vol. 13, No. 11, pp. 37-46, November 1980.Google Scholar
Digital Library
- 11 D.J. DeWitt, "A Control Word Model for Detecting Conflicts Between Micro-Operations", Proceedings of the Eighth Annual Workshop on Microprogramming, October 1975. Google Scholar
Digital Library
- 12 D.J. DeWitt, A Machine Independent Approach to the Production of Optimized Horizontal Microcode, Ph.D. Thesis, University of Michigan, 1976. Google Scholar
Digital Library
- 13 USA Standard FORTRAN, USAS X3.9-1966, United States of America Standards Institute, New York, 1966.Google Scholar
- 14 S.L. Graham, "Table Driven Code Generation", Computer, Vol. 13, No. 8, pp. 25-34, August 1980.Google Scholar
Digital Library
- 15 D. Gries, "Use of Transition Matrices in Compiling". CACM, Vol. 11, No. 1, January 1968. Google Scholar
Digital Library
- 16 W.H. Harrison, "A New Strategy for Code Generation—The General Purpose Optimizing Compiler", IEEE Transactions on Software Engineering, Vol. SE-5, No. 4, pp. 367-373, July 1979.Google Scholar
Digital Library
- 17 H. Hellerman, Digital Computer System Principles, McGraw-Hill, New York, 1967.Google Scholar
- 18 S.S. Husson, Microprogramming: Principles and Practices, Prentice-Hall, New Jersey, 1970.Google Scholar
- 19 Final Report for the Study of Compilers for High Throughput Horizontal Microprocessors, JRS industries, Inc., San Diego, Ca., November 28, 1979.Google Scholar
- 20 Final Technical Report for Higher Order Language for High Throughput, Horizontal Microprocessors, JRS Industries, Inc., San Diego, Ca., October, 1980.Google Scholar
- 21 K. Johnsson, An Approach to Global Register Allocation, Carnegie-Mellon University, 1976.Google Scholar
- 22 H. Katzan, Jr., Advanced Programming, Van Nostrand Reinhold Company, New York 1970.Google Scholar
- 23 H.W. Lawson, Jr., "Programming - Language-Oriented instruction Streams", IEEE Transactions on Computers, Vol. C-17, No. 5, pp. 476-485, May 1968.Google Scholar
- 24 T.G. Lewis, et al, Firmware Engineering Using a High-Level Microprogramming System to Implement Virtual Instruction Set Processors, Oregon State University, 1976.Google Scholar
- 25 E.S. Lowry and C.W. Medlock, "Object Code Optimization", CACM, Vol. 12, No. 1, pp. 13-22, January 1969. Google Scholar
Digital Library
- 26 P-Y. Ma, Optimizing the Microcode Produced by a High-Level Microprogramming Language, Ph. D. Thesis, Oregon State University, 1978.Google Scholar
- 27 K. Malik and T. Lewis, "Design Objectives for High Level Microprogramming Languages", Proc. Micro-11 Conf., IEEE, 1978 Google Scholar
Digital Library
- 28 P.W. Mallett, Methods of Compacting Microprograms, Ph.D. Thesis, University of Southwestern Louisiana, 1978. Google Scholar
Digital Library
- 29 Advanced Data Processing Subsystem Investigations: Volume XXII, DDP Software Development Facility Key Issue Studies, McDonnell-Douglas Astronautics Company, Huntington Beach, Ca., October 1979.Google Scholar
- 30 W.M. McKeeman, "Peephole Optimization", CACM, Vol. 8, No. 7, pp. 443-444, July 1965. Google Scholar
Digital Library
- 31 W.M. McKeeman et al, A Compiler Generator, Prentice-Hall, New Jersey, 1970Google Scholar
- 32 Advanced Data Processing Subsystem Investigations: In-Process Review - 20 February 1980, MDC G8481, McDonnell- Douglas Astronautics Company, Huntington Beach, Ca., February 1980.Google Scholar
- 33 Advanced Data Processing Subsystem Investigations: Technical Interchange Meeting - 16 May 1980, McDonnell-Douglas Astronautics Company, Huntington Beach, Ca., May 1980Google Scholar
- 34 Advanced Data Processing Subsystem Investigations: Technical Interchange Meeting - 19 August 1980, McDonnell-Douglas Astronautics Company, Huntington Beach, Ca., August 1980.Google Scholar
- 35 I. Nakata, "On Compiling Algorithms for Arithmetic Expressions," CACM, Vol. 10, No. 8, pp. 492-494 (August 1967). Google Scholar
Digital Library
- 36 B.W. Pollack, editor, Compiler Techniques, Auerbach, Princeton, 1972.Google Scholar
- 37 C.V. Ramamoorthy and M. Tsuchiya, "A High-Level Language for Horizontal Microprogramming," IEEE Transactions on Computers, Vol. C-23, No. 8, pp. 791-801, August 1974.Google Scholar
- 38 R. Sethi and J. D. Ullman, "The Generation of Optimal Code for Arithmetic Expressions", JACM, Vol. 17, No. 4, pp. 715-728, October 1970. Google Scholar
Digital Library
- 39 H.A. Schutz, "On the Design of a Language for Programming Real-Time Concurrent Processes," IEEE Transactions on Software Engineering, Vol. SE-5, No. 3, pp. 248-255, May 1979.Google Scholar
Digital Library
- 40 S. Su, "Hardware Description Language Description: An Introduction and Prognosis," IEEE Computer, June 1977.Google Scholar
- 41 M. Tokoro et al, "A Technique of Global Optimization of Microprograms," IEEE Proceedings of 11th Annual Workshop on Microprogramming, November 1978. Google Scholar
Digital Library
- 42 M. Tsuchiya and M. J. Gonzalez, "Toward Optimization of Horizontal Microprograms," IEEE Transactions on Computers, Vol. C-25 No. 10, October 1976.Google Scholar
- 43 W. Wulf et al, The Design of an Optimizing Compiler, Elsevier, Amsterdam, 1975. Google Scholar
Digital Library
Index Terms
Automatic microcode generation for horizontally microprogrammed processors
Recommendations
Automatic microcode generation for horizontally microprogrammed processors
MICRO 14: Proceedings of the 14th annual workshop on MicroprogrammingA procedure is described which permits applications problems coded in a Higher Level Language to be compiled to microcode for horizontally microprogrammed processors. An experimental language has been designed which is suitable for expressing ...
Experiments in Automatic Microcode Generation
A procedure is described which permits applications problems coded in a higher level language to be compiled to microcode for horizontally microprogrammed processors. An experimental language has been designed which is suitable for expressing ...
On Horizontally Microprogrammed Microarchitecture Description Techniques
In automatically generating microcode starting from a highlevel source language, a significant issue is the description of the target microengine architecture. The techniques and methodologies used to accomplish this address the practical issues of: 1) ...






Comments