Skip to main content
U.S. Department of Energy
Office of Scientific and Technical Information

Optimization of horizontal microcode within and beyond basic blocks: an application of processor scheduling with resources

Technical Report ·
DOI:https://doi.org/10.2172/5752434· OSTI ID:5752434

Microprogram optimization is the rearrangement of microcode written vertically, with one operation issued per step, into legal horizontal microinstructions, in which several operations are issued each instruction cycle. The rearrangement is done in a way that approximately minimizes the running time of the code. This problem is identified with the problem of processor scheduling with resource constraints. Thus, the problem of optimizing basic blocks of microcode can be seen to be np-complete; however, approximate methods for basic blocks which have good records in other, similar scheduling environments can be used. In priority list scheduling the tasks are ordered according to some evaluation function, and then schedules are found by repeated scans of the list. Several evaluation functions are shown to perform very well on large samples of various classes of random data-precedence graphs with characteristics similar to those derived from microprograms. A method of spotting resource bottlenecks in the derived data-precedence graph enables one to obtain a resource-considerate evaluation function, in which tasks which contribute directly to or precede bottlenecks have their priorities raised. The complexity of the calculations necessary to compute the lower bound was greatly reduced. A method is suggested for optimizing beyond basic blocks. Groups of basic blocks are treated as if they were one block; the information necessary to control the motion of tasks between blocks is encoded as data-precedence constraints on the conditional tasks. Long paths of code can thus be optimized, with no back branches, by the same methods used for basic blocks. 9 figures, 6 tables.

Research Organization:
New York Univ., NY (USA). Courant Mathematics and Computing Lab.
DOE Contract Number:
EY-76-C-02-3077
OSTI ID:
5752434
Report Number(s):
COO-3077-161
Country of Publication:
United States
Language:
English

Similar Records

Simulation of multiprocessing microcoded architectures
Thesis/Dissertation · Tue Dec 31 23:00:00 EST 1985 · OSTI ID:7157611

Microcode control of a parallel architecture microprocessor
Patent · Mon Feb 06 23:00:00 EST 1989 · OSTI ID:6215319

Multiprocessor scheduling with practical constraints
Thesis/Dissertation · Tue Dec 31 23:00:00 EST 1985 · OSTI ID:7204001