This Article 
 Bibliographic References 
 Add to: 
A Development Environment for Horizontal Microcode
May 1988 (vol. 14 no. 5)
pp. 584-594

A development environment for horizontal microcode is described that uses percolation scheduling-a transformational system for parallelism extraction-and an interactive profiling system to give the user control over the microcode compaction process while reducing the burdensome details of architecture, correctness preservation, and synchronization. Through a graphical interface, the user suggests what can be executed in parallel, while the system performs the actual changes using semantics-preserving transformations. If a request cannot be satisfied, the system reports the problem causing the failure. The user can then help eliminate the problem by supplying guidance or information not explicit in the code.

[1] S. R. Vegdahl, "Microcode optimization: Examples and approaches,"IEEE Software, vol. 3, pp. 59-68, July 1986.
[2] R. I. Winner and E. M. Caner, "Automated vertical migration to dynamic microcode: An overview and example,"IEEE Software, vol. 3, pp. 6-16, July 1986.
[3] S. Davidson and B. Shriver, "An overview of firmware engineering,"IEEE Comput., vol. 11, pp. 21-34, May 1978.
[4] J. R. Allen and K. Kennedy, "PFC: A program to convert Fortran to parallel form," Rice Univ., Tech. Rep. MASC TR 82-6, Houston, TX, 1982.
[5] J. A. Fisher, "Trace scheduling: A technique for global microcode compaction,"IEEE Trans. Comput., vol. C-30, pp. 478-90, July 1981.
[6] D. J. Kuck, R.H. Kuhn, B. Leasure, D.A. Padua, and M. Wolfe, "Compiler transformation of dependence graphs," inConf. Rec. 8th ACM Symp. Principles Program. Languages, Williamsburg, VA, Jan. 1981.
[7] R. T. Hood and K. Kennedy, "A programming environment for Fortran," Rice Univ., Houston, TX, Tech. Rep. COMP TR 84-1, 1984.
[8] L. Snyder, "Introduction to the Poker parallel programming environment," Purdue Univ., West Lafayette, IN, Tech. Rep. CSD-TR-432, 1983.
[9] R. A. Mueller and M. R. Duda, "Formal methods of microcode verification and synthesis,"IEEE Software, vol. 3, pp. 38-48, July 1986.
[10] J. R. Ellis, J. A. Fisher, J. C. Ruttenberg, and A. Nicolau, "Parallel processing: A smart compiler and a dumb machine," inProc. SIGPLAN 84 Symp. Compiler Construction, ACM SIGPLAN Notices, June 1984.
[11] K. Karplus and A. Nicolau, "Efficient hardware for multi-way jumps and pre-fetches," inProc. 18th Workshop Microprogramming, Dec. 1985, pp. 11-18.
[12] Y. Patt, W. Hwu, and M. Shebanow, "HPS, A new microarchitecture: Rationale and introduction," inProc. MICRO-18, ACM, Dec. 1985, pp. 103-108.
[13] D. D. Gajski, D. A. Padua, D. J. Kuck, and R. H. Kuhn, "A second opinion on data-flow machines and languages,"IEEE Comput., vol. 15, pp. 58-69, Feb. 1982.
[14] A. Nicolau, "Percolation scheduling: A parallel compilation technique," TR 85-678, Dep. Comput. Sci., Cornell Univ., 1985.
[15] A. Nicolau and J. Fisher, "Measuring the parallelism available for very long instruction word architectures,"IEEE Trans. Comput., vol. C-33, pp. 968-976, Nov. 1984.
[16] A. Nicolau, "Loop quantization, or unwinding done right,"Cornell Univ., Ithaca, NY, Tech. Rep. 85-709, 1985.
[17] A. Aiken and A. Nicolau, "Loop quantization: An analysis and algorithm," Cornell Univ., Ithaca, NY, Tech. Rep. 87-821, 1987.
[18] D. Kuck, "Parallel processing of ordinary programs," inAdvances in Computers, Vol. 15, New York: Academic, 1976, pp. 119-179.
[19] A. Nicolau, "Parallelism, memory anti-aliasing and correctness for trace scheduling compilers," Ph.D. dissertation, Yale Univ., June 1984.
[20] W. H. Harrison, "Compiler analysis of the value ranges for variables,"IEEE Trans. Software Eng., vol. SE-3, pp. 243-250, May 1977.
[21] J. Cohen, "Computer-assisted microanalysis of programs,"Commun. ACM, vol. 25, no. 10, Oct. 1982.
[22] S. Dasgupta, P. A. Wilsey, and J. Heinanen, "Axiomatic specification in firmware development systems,"IEEE Software, vol. 3, pp. 49-58, July 1986.
[23] W. Damm, "Design and specification of microprogrammed computer architectures," inProc. 18th Workshop Microprogramming, Dec. 1985, pp. 3-11.

Index Terms:
development environment; horizontal microcode; percolation scheduling; parallelism extraction; interactive profiling system; microcode compaction process; architecture; correctness preservation; synchronization; graphical interface; semantics-preserving transformations; microprogramming; parallel programming; programming environments; scheduling; synchronisation; user interfaces
A. Aiken, A. Nicolau, "A Development Environment for Horizontal Microcode," IEEE Transactions on Software Engineering, vol. 14, no. 5, pp. 584-594, May 1988, doi:10.1109/32.6136
Usage of this product signifies your acceptance of the Terms of Use.