Abstract
Microcode compaction, or packing, is the process of assigning microoperations to microwords so that the minimum number of microwords and execution time is used by the microprogram. The techniques for global microcode compaction have been described elsewhere (see below). This paper describes a proposal for an intermediate level language approach to compilation which allows machine independent global compaction. We will call the program which does this compaction the packer. This work comes from the development of the V-Compiler, a retargetable microprogram generation system1. The goal is to be able to produce very high quality microcode, while allowing code manipulations to be described and performed in an orderly manner.
- 1 Patterson, D., Goodell, R., Poe, M. D., and Steely, S. C., V-Compiler, A Next-generation Tool for Microprogramming, Proceedings of the National Computer Conference, May, 1981, pages 103-109.Google Scholar
- 2 Fisher, J. A., The Optimization of Horizontal Microcode Within and Beyond Basic Blocks: An Application of Processor Scheduling with Resources, Ph.D. Thesis, New York University, October 1979. Google Scholar
Digital Library
- 3 Aho, A. V., and Ullman, J. D., Principles of Compiler Design, Addison-Wesley, Reading, Massachusetts, 1977. Google Scholar
Digital Library
- 4 Poe, M. D., Measurement and Manipulation of Potential Parallelism in Microcode, Euromicro81, in press.Google Scholar
- 5 Goodell, R., The Software Bus, unpublished DEC Internal Document, December 1979.Google Scholar
- 6 Wulf, W. A., Russell, D. B., and Habermann, A. N., BLISS: A Language for Systems Programming, Communications of the ACM, Vol. 14, No. 12, December 1971. Google Scholar
Digital Library
- 7 Barbacci, M. R., Barnes, G. E., Cattell, R. G. G., and Siewiorek, D. P., The ISPS Computer Description Language, Technical Report, Department of Computer Science, Carnegie-Mellon University, 1977.Google Scholar
- 8 McCarthy, J., et. al., Lisp 1 Programmer's Manual, Computation Center and Research Laboratory of Electronics, M.I.T., Cambridge, 1960.Google Scholar
- 9 Poe, M. D., Heuristics for the Global Optimization of Microprograms, Proceedings of the 13th Annual Workshop on Microprogramming, IEEE, 1980, pages 13-22. Google Scholar
Digital Library
- 10 Fisher, J. A., Trace Scheduling: A Technique for Global Microcode Compaction, IEEE Transactions on Computers, Vol. C-30, No. 7, July, 1981, pages 478-490.Google Scholar
- 11 Tokoro, M., Tamura, E., and Takizuka, T., Optimization of Microprograms, IEEE Transactions on Computers, Vol. C-30, No. 7, July, 1981, pages 491-504.Google Scholar
- 12 Tokoro, M., Takizuka, T., Tamura, E., and Yamaura, I., A Technique of Global Optimization of Microprogramms, Proceedings of the 11th Annual Workshop on Microprogramming, IEEE, 1978, pages 41-50. Google Scholar
Digital Library
- 13 Landskov, D., Davidson, S., Shriver, B., and Mallett, P. W., Local Microcode Compaction Techniques, Computing Surveys, Vol. 12, No. 3, September 1980, pages 261-294. Google Scholar
Digital Library
- 14 Davidson, S., Landskov, D., Shriver, B. D., and Mallett, P. W., Some Experiments in Local Microcode Compaction for Horizontal Machines, IEEE Transactions on Computers, Vol. C-30, No. 7, July, 1981, pages 460-477.Google Scholar
- 15 Dasgupta, S., Some Aspects of High-Level Microprogramming, Computing Surveys, Vol. 12, No. 3, September 1980, pages 295-323. Google Scholar
Digital Library
- 16 Davidson, S., and Shriver, B. D., Firmware Engineering: An Extensive Update, in Firmware, Microprogramming, and Restructurable Hardware, Chroust, G., and Mihlbacker, J. R., (Eds), North-Holland Publishing Co., Amsterdam, 1980, pages 1-36.Google Scholar
- 17 Ma, P.-Y. R., and Lewis, T., On the Design of a Microcode Compiler for a Machine-Independent High-Level Language, IEEE Transactions on Software Engineering, Vol. 7, No. 3, May, 1981. pages 261-273.Google Scholar
Digital Library
- 18 Goodell, R., Using Semantic Productions to Compile Microcode in the V-Compiler, Euromicro81, in press.Google Scholar
- 19 Warren, D. H. D., Logic Programming and Compiler Writing, Software - Practice and Experience, Vol. 10, pages 97-125.Google Scholar
- 20 Cattell, R. G., Formalization and Automatic Derivation of Code Generators, Ph.D. Thesis, Department of Computer Science, Carnegie-Mellon University, April 1978. Google Scholar
Digital Library
- 21 Davis, R., and King, J., An Overview of Production Systems, Machine Intelligence 8, 1977, pages 300-332.Google Scholar
- 22 Hecht, M. S., Flow Analysis of Computer Programs, North-Holland Publishing Company, 1977. Google Scholar
Digital Library
Index Terms
Issues of the design of a low level microprogramming language for global microcode compaction
Recommendations
Issues of the design of a low level microprogramming language for global microcode compaction
MICRO 14: Proceedings of the 14th annual workshop on MicroprogrammingMicrocode compaction, or packing, is the process of assigning microoperations to microwords so that the minimum number of microwords and execution time is used by the microprogram. The techniques for global microcode compaction have been described ...
Microcode compaction: looking backward and looking forward
AFIPS '81: Proceedings of the May 4-7, 1981, national computer conferenceThe past decade has seen significant advances in the state of the art in microcode compaction. Microprograms are compacted by placing several microoperations into each microinstruction, subject to the constraints of data dependency in the program and ...
Some Experiments in Local Microcode Compaction for Horizontal Machines
Microcode compaction is an essential tool for the compilation of high-level language microprograms into microinstructions with parallel microoperations. The purpose of the research reported in this paper is to compare four microcode compaction methods ...






Comments