Presentation on theme: "POLITECNICO DI MILANO Parallelism in wonderland: are you ready to see how deep the rabbit hole goes? ILP: VLIW Architectures Marco D. Santambrogio:"— Presentation transcript:
POLITECNICO DI MILANO Parallelism in wonderland: are you ready to see how deep the rabbit hole goes? ILP: VLIW Architectures Marco D. Santambrogio: Simone Campanoni:
2 Outline Introduction to ILP (a short reminder) VLIW architecture
Beyond CPI = 1 Initial goal to achieve CPI = 1 Can we improve beyond this? Two approaches Superscalar and VLIW Superscalar: varying no. instructions/cycle (1 to 8), scheduled by compiler or by HW (Tomasulo) e.g. IBM PowerPC, Sun UltraSparc, DEC Alpha, HP 8000 The successful approach (to date) for general purpose computing - 3 -
Beyond CPI = 1 (Very) Long Instruction Words (V)LIW: fixed number of instructions (4-16) scheduled by the compiler; put ops into wide templates Currently found more success in DSP, Multimedia applications Joint HP/Intel agreement in 1999/2000 Intel Architecture-64 (Merced/A-64) 64-bit address Style: “Explicitly Parallel Instruction Computer (EPIC)” But first a little context …
5 5 Definition of ILP ILP = Potential overlap of execution among unrelated instructions Overlapping possible if: No Structural Hazards No RAW, WAR of WAW Stalls No Control Stalls
6 Instruction Level Parallelism Two strategies to support ILP: Dynamic Scheduling: Depend on the hardware to locate parallelism Static Scheduling: Rely on software for identifying potential parallelism Hardware intensive approaches dominate desktop and server markets
7 Dynamic Scheduling The hardware reorder the instruction execution to reduce pipeline stalls while maintaining data flow and exception behavior. Main advantages: It enables handling some cases where dependences are unknown at compile time It simplifies the compiler complexity It allows compiled code to run efficiently on a different pipeline. Those advantages are gained at a cost of a significant increase in hardware complexity and power consumption.
8 Static Scheduling Compilers can use sophisticated algorithms for code scheduling to exploit ILP (Instruction Level Parallelism). The amount of parallelism available within a basic block – a straight-line code sequence with no branches in except to the entry and no branches out except at the exit – is quite small. Data dependence can further limit the amount of ILP we can exploit within a basic block to much less than the average basic block size. To obtain substantial performance enhancements, we must exploit ILP across multiple basic blocks (i.e. across branches).
9 Static detection and resolution of dependences ( static scheduling): accomplished by the compiler dependences are avoided by code reordering. Output of the compiler: reordered into dependency- free code. Typical example: VLIW (Very Long Instruction Word) processors expect dependency-free code. Detection and resolution of dependences: Static Scheduling
Very Long Instruction Word Architectures Processor can initiate multiple operations per cycle Specified completely by the compiler (!like superscalar) Low hardware complexity (no scheduling hardware, reduced support of variable latency instructions) No instruction reordering performed by the hardware Explicit parallelism Single control flow 10
11 VLIW: Very Long Instruction Word Multiple operations packed into one instruction Each operation slot is for a fixed function Constant operation latencies are specified Architecture requires guarantee of: Parallelism within an instruction => no x-operation RAW check No data use before data ready => no data interlocks Two Integer Units, Single Cycle Latency Two Load/Store Units, Three Cycle Latency Two Floating-Point Units, Four Cycle Latency Int Op 2Mem Op 1Mem Op 2FP Op 1FP Op 2Int Op 1
12 VLIW Compiler Responsibilities The compiler: Schedules to maximize parallel execution Exploit ILP and LLP It is necessary to map the instructions over the machine functional units This mapping must account for time constraints and dependencies among the tasks Guarantees intra-instruction parallelism Schedules to avoid data hazards (no interlocks) Typically separates operations with explicit NOPs The goal is to minimize the total execution time for the program
A VLIW Machine Configuration 13
VLIW: Pros and Cons Pros Simple HW Easy to extend the #FUs Good compilers can effectively detect parallelism Cons Huge number of registers to keep active the FUs Needed to store operands and results Large data transport capacity between FUs and register files Register files and Memory High bandwidth between i-cache and fetch unit Large code size 14
19 Software Pipelining vs. Loop Unrolling time performance time performance Loop Unrolled Software Pipelined Startup overhead Wind-down overhead Loop Iteration Software pipelining pays startup/wind-down costs only once per loop, not once per iteration