New Paradigms for Instruction Level Parallelism

Jim Smith, University of Wisconsin

Current paradigms (e.g. the superscalar paradigm) for instruction parallelism are based on concepts developed a number of years ago and may be approaching their useful limits. A primary limitation is the size of the "window" from which instructions may be selected for parallel execution. The window size is, in turn, limited by hardware complexity and the ability to predict conditional branches. A more fundamental cause, however, is the use of a single program counter for fetching, predicting, and scanning instructions for data dependences.

New paradigms for instruction level parallelism should focus on implementations based on multiple program counters. One such paradigm is "low overhead autotasking" where a small number of processors (perhaps on a single chip) cooperate in executing a single process. The compiler detects parallelism (and manages data communication) automatically. A second, more radical, approach is the multiscalar paradigm where the hardware takes much more responsibility for resolving data dependences. Tasks are assigned to processing units speculatively, and hardware plays a major role in communicating register and memory data. Memory loads and stores from different tasks may be performed speculatively, and in parallel, with hardware recovery in the event of incorrect speculation. Low overhead autotasking and the multiscalar processing are endpoints of a broad spectrum of possible approaches that should be studied for use in future high performance processors.


Back to PACT'95 home page