Abstract
Microcode compaction is the process of converting essentially vertical microcode into horizontal microcode for a given architecture. The conventional plan calls for a microcode compiler to generate vertical code for a given architecture and then use a compaction system to produce horizontal code, thereby greatly reducing the complexity of horizontal code generation.This paper attempts to extend the existing techniques used to perform the compaction process. Specifically, the procedure presented generalizes the "trace scheduling" method of [Fisher81] by using more global context information in compaction decisions. A number of definitions from classical compaction are generalized to encompass this expanded scope.Further, the paper presents two example classes of problem for which the new method outperforms the trace scheduling technique in terms of the execution time efficiency of the generated code. A number of unresolved questions are noted involving the class of global compaction procedures.
- {Aho77} A. V. Aho and J. D. Ullman Principles of Compiler Design, Bell Laboratories, Murray Hill, N.J., 1977. Published by Addison-Wesley, Menlo Park, California.Google Scholar
- {Dasgupta78} S. Dasgupta "Towards a Microprogramming Language Schema," Proc. 11th Annual Workshop on Microprogramming, pp. 144--153, November, 1978. Google Scholar
Digital Library
- {Davidson80} S. Davidson "Design and Construction of a Virtual Machine Resource Binding Language," Ph.D. Dissertation, University of Southwestern Louisiana, Lafayette, Louisiana, August, 1980. Google Scholar
Digital Library
- {Davidson81} S. Davidson, D. Landskov, B. D. Shriver, and P. W. Mallett "Some Experiments in Local Microcode Compaction for Horizontal Machines," IEEE TC, vol. c-30, no. 7, pp. 460--477, July, 1981.Google Scholar
Digital Library
- {Dewitt76} D. J. Dewitt "A machine independent approach to the production of optimal horizontal microcode," Ph.D. Dissertation, Univ. of Michigan, Ann Arbor, Tech. Rep. 76 DT4, August, 1976. Google Scholar
Digital Library
- {Fisher79} J. A. Fisher "The optimization of horizontal microcode within and beyond basic blocks: An application of processor scheduling with resources," Courant Math. Comput. Lab., Ph.D. Dissertation, New York Univ., New York, New York, October, 1979. Google Scholar
Digital Library
- {Fisher81} J. A. Fisher "Trace Scheduling: A Technique for Global Microcode Compaction," IEEE TC, vol. c-30, no. 7, pp. 478--490, July, 1981.Google Scholar
Digital Library
- {Gross82} T. Gross and J. L. Hennessy "Optimizing Delayed Branches," Proc. 15th Annual Workshop on Microprogramming, pp. 114--120, October, 1982. IEEE TC, vol. c-30, no. 7, pp. 460--477, July, 1981. Google Scholar
Digital Library
- {Klassen81} A. Klassen and S. Dasgupta "S* (QM-1): An Instantiation of the High Level Microprogramming Schema S* for the Nanodata QM-1," Proc. 14th Annual Workshop on Microprogramming, pp. 124--130, November, 1981. Google Scholar
Digital Library
- {Horowitz78} E. Horowitz and S. Sahni Fundamentals of Computer Algorithms, Computer Science Press, Rockville, Maryland, 1978. Google Scholar
Digital Library
- {Landskov80} D. Landskov, S. Davidson, B. D. Shriver, and P. W. Mallett "Local Microcode Compaction Techniques," ACM Computing Surveys, vol. 12, pp. 261--294, September, 1980. Google Scholar
Digital Library
Recommendations
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 ...
Tree compaction of microprograms
Although Fisher's trace scheduling procedure for global compaction may produce significant reduction in execution time of compacted microcode, the growth of memory size by extensive copying of blocks can be enormous. In the worst case, the memory size ...






Comments