A fill-unit approach to multiple instruction issue

  • Authors:
  • Manoj Franklin;Mark Smotherman

  • Affiliations:
  • Dept. of Elect. and Computer Eng., Clemson University, Clemson, SC;Dept. of Computer Science, Clemson University, Clemson, SC

  • Venue:
  • MICRO 27 Proceedings of the 27th annual international symposium on Microarchitecture
  • Year:
  • 1994

Quantified Score

Hi-index 0.01

Visualization

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 a six-functional-unit machine is found to be 52 to 108% faster than a single-issue processor for unrecompiled SPECint92 benchmarks.