Abstract
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 can grow exponentially [FIS81a] and the complex bookkeeping stage of the trace scheduling is an obstacle to implementation.A technique called tree compaction, which is based on the trace scheduling, is proposed to mitigate these drawbacks. Basically, it partitions a given set of microprogram blocks into tree-shaped subsets and applies the idea of trace scheduling on each tree-shaped subset separately. It achieves almost all of the compaction of the Fisher's trace scheduling procedure except that which causes copying of blocks. Preliminary tests indicate that tree compaction gives almost as short execution time as trace scheduling but with much less memory. The paper includes such an example.
- {AGE76} T. Agerwala, "Microprogram Optimization: A Survey", IEEE Transaction on Computers Vol. C-25(10) pp. 962--973 (October, 1976).]]Google Scholar
Digital Library
- {AHO74} A. V. Aho, J. D. Ullman, Principles of Compiler Design, Addison-Wesley (1974)]] Google Scholar
Digital Library
- {DAS79} S. Dasgupta, "The Organization of Microprogram Stores", ACM Computing Surveys Vol. 11(1) pp. 39--65 (March, 1979).]] Google Scholar
Digital Library
- {DAV81} S. Davidson, D. Landskov, B. D. Shriver, P. W. Mallett, "Some Experiments in Local Microcode Compaction for Horizontal Machines", IEEE Transaction on Computers Vol. C-30(7) pp. 460--477 (July, 1981).]]Google Scholar
Digital Library
- {DEW76} D. J. DeWitt, "A Machine Independent Approach to the Production of Optimal Horizontal Microcode," Ph. D. Dissertation, University of Michigan, (August, 1976).]] Google Scholar
Digital Library
- {FIS79} J. A. Fisher, "The Optimization of Horizontal Microcode within and beyond Basic Blocks: An Application of Processor Scheduling with Resources," Ph. D. Dissertation, New York University, (October, 1979).]] Google Scholar
Digital Library
- {FIS81a} J. A. Fisher, "Trace Scheduling: A Technique for Global Microcode Compaction," IEEE Transaction on Computers Vol. C-30(7) pp. 478--490 (July, 1981).]]Google Scholar
Digital Library
- {FIS81b} J. A. Fisher, D. A. Landskov, B. D. Shriver, "Microcode Compaction: Looking Backward and Looking Forward", National Computer Conference, pp. 95--102 (1981)]]Google Scholar
- {FIS82} J. A. Fisher, "Very Long Instruction Word Architectures", and the ELI-512", Research Report #253, Yale University, Department of Computer Science (December, 1982)]]Google Scholar
- {LAN80} D. Landskov, S. Davidson, B. Shriver, and P. W. Mallett, "Local Microcode Compaction Techniques," ACM Computing Surveys Vol. 12(3) pp. 261--294 (September, 1980).]] Google Scholar
Digital Library
- {PAT76} D. A. Patterson, "STRUM: Structured Programming System for Correct Firmware", IEEE Transaction on Computers Vol. C-25(10) pp. 974--985 (October, 1976).]]Google Scholar
Digital Library
- {ROB79} E. L. Robertson, "Microcode Bit Optimization is NP-complete", IEEE Transaction on Computers Vol. C-28(4) pp. 316--319 (April, 1979).]]Google Scholar
Digital Library
- {SIN80} H. J. Sint, "A Survey of High Level Microprogramming Languages", Proceedings of the 13th Annual Workshop on Microprogramming pp. 141--153 (1980)]] Google Scholar
Digital Library
- {TOK78} M. Tokoro, T. Takizuka, E. Tamura, I. Yamaura, "A Technique of Global Optimization of Microprograms", Proceedings of the 11th Annual Workshop on Microprogramming pp. 41--50 (1978)]] Google Scholar
Digital Library
- {TOK81} M. Tokoro, E. Tamura, and T. Takizuka, "Optimization of Microprograms," IEEE Transaction on Computers Vol. C-30(7) pp. 491--504 (July, 1981).]]Google Scholar
Digital Library
- {VEG83} S. R. Vegdahl, "A New Perspective on the Classical Microcode Compaction Problem", SIGMICRO Newsletter, Vol. 14(1) pp.11--14 (March, 1983)]] Google Scholar
Digital Library
- {WOO79} W. G. Wood, "The Computer Aided Design of Microprograms", Ph. D. Dissertation, University of Edinburgh, Scotland (1979)]]Google Scholar
Recommendations
An algorithm for global compaction of horizontal microprograms
Compacting microoperations of a microprogram into horizontal microinstructions require an efficient global compaction algorithm. This paper describes a global compaction algorithm which is more practical than some of the existing techniques based on ...
SRDAG compaction: a generalization of trace scheduling to increase the use of global context information
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 ...






Comments