A Fill-Unit Approach to Multiple Instruction Issue
Manoj Franklin, Mark Smotherman
mfrankl@eng.clemson.edu
Abstract
Multiple issue of instructions occurs in superscalar and VLIW
machines. This paper investigates a third type of machine
design, which combines the advantages of code compatibility as
in superscalars and the absence of complex dependency-checking
logic from the decoder as in VLIW. In this design, a stream
of scalar instructions is executed by the hardware and is
simultaneously compacted into VLIW-type instructions, which
are then stored in a structure called a shadow cache. When a
shadow cache line contains the instructions requested by the
fetch unit, the scalar instruction stream is preempted and
all operations in the shadow cache line are simultaneously
issued and executed. The mechanism that compacts instructions
is called a fill unit, and was first proposed for dynamically
compacting microoperations into large executable units by
Melvin, Shebanow, and Patt in 1988. We have extended their
approach to directly handle data dependencies, delayed branches,
and speculative execution (using branch prediction). This
approach is evaluated using the MIPS architecture, and six-
functional-unit machine is found to be 52 to 108% faster than
a single-issue processor for unrecompiled SPECint92 benchmarks.
Talk
Overheads (0 bytes)