Αρχιτεκτονικές VLIW Στέφανος Καξίρας { kaxiras@cs.wisc,...

Preview:

DESCRIPTION

Αρχιτεκτονικές VLIW Στέφανος Καξίρας { kaxiras@cs.wisc.edu, kaxiras@ee.upatras.gr }. VLIW Αρχές. ILP (Instruction-Level Parallelism) Superscalar, OoO: hardware finds it VLIW: let the Software, COMPILER, find it! No need for DYNAMIC EXECUTION Register renaming out Reservation Stations out - PowerPoint PPT Presentation

Citation preview

Πανεπιστήμιο Πατρών, Τμήμα Ηλεκτρολόγων Μηχανικών & Τεχνολογίας Υπολογιστών

Αρχιτεκτονικές VLIW

Στέφανος Καξίρας{ kaxiras@cs.wisc.edu, kaxiras@ee.upatras.gr }

Πανεπιστήμιο Πατρών, Τμήμα Ηλεκτρολόγων Μηχανικών & Τεχνολογίας Υπολογιστών

VLIW Αρχές

ILP (Instruction-Level Parallelism)Superscalar, OoO: hardware finds itVLIW: let the Software, COMPILER, find it!

• No need for DYNAMIC EXECUTION— Register renaming out

— Reservation Stations out

— Reorder Buffer out

— Out-of-order issue out

Πανεπιστήμιο Πατρών, Τμήμα Ηλεκτρολόγων Μηχανικών & Τεχνολογίας Υπολογιστών

VLIW Αρχές

Πανεπιστήμιο Πατρών, Τμήμα Ηλεκτρολόγων Μηχανικών & Τεχνολογίας Υπολογιστών

VLIW: Very Long Instruction Word

Πανεπιστήμιο Πατρών, Τμήμα Ηλεκτρολόγων Μηχανικών & Τεχνολογίας Υπολογιστών

VLIW architetcure

Πανεπιστήμιο Πατρών, Τμήμα Ηλεκτρολόγων Μηχανικών & Τεχνολογίας Υπολογιστών

VLIW Execution Semantics

Πανεπιστήμιο Πατρών, Τμήμα Ηλεκτρολόγων Μηχανικών & Τεχνολογίας Υπολογιστών

VLIW Execution Semantics

Πανεπιστήμιο Πατρών, Τμήμα Ηλεκτρολόγων Μηχανικών & Τεχνολογίας Υπολογιστών

SuperScalar vs. VLIW

Πανεπιστήμιο Πατρών, Τμήμα Ηλεκτρολόγων Μηχανικών & Τεχνολογίας Υπολογιστών

VLIW execution semantics

UAL: Unit-assumed Latencies

• All latencies eq.

• New instr. issues after previous completes— Always finds results ready

NUAL: Non-Uniform Assumed Latencies

• Latencies of operations non-unit

• New instr. issues immediately, but ops may still be in progress

• Instructions must be scheduled when their results are ready (no interlocks)!

Πανεπιστήμιο Πατρών, Τμήμα Ηλεκτρολόγων Μηχανικών & Τεχνολογίας Υπολογιστών

VLIW execution semantics

NUAL: Non-Uniform Assumed LatenciesTwo models:

• Equals (EQ) Model: Each operation takes exactly its specified latency. Register values don’t change until operation completes. Example: TI C6x

• Less-Than-or-Equals (LEQ): Operations may take up to their specified latency

Πανεπιστήμιο Πατρών, Τμήμα Ηλεκτρολόγων Μηχανικών & Τεχνολογίας Υπολογιστών

VLIW execution semantics

Equals (EQ) Model

• Reduces register pressure because source operands stay around longer.

• Can’t reduce operation latencies and maintain source code compatibility.

Less-Than-or-Equals (LEQ):

• Destination register contents become unreliable immediately

• Can reduce operation latencies and maintain source code compatibility

Πανεπιστήμιο Πατρών, Τμήμα Ηλεκτρολόγων Μηχανικών & Τεχνολογίας Υπολογιστών

Προβλήματα VLIW

Compiler δεμένος με implementationScheduler must know operation latenciesCannot run binaries in another

implementation

Dynamically scheduled VLIW

• Αποσύνδεση operation latencies από τον compiler

Πανεπιστήμιο Πατρών, Τμήμα Ηλεκτρολόγων Μηχανικών & Τεχνολογίας Υπολογιστών

Dynamically Scheduled VLIW

Compatibility problem: compiler must know latencies

Schedule with assumed latenciesDelay buffer inserted between FUs and

register file, holds register updates and presents to the code the “assumed” latencies not the real latencies (similar to LEQ)

Scoreboard dynamically schedules VLIW instructions according to dependencies

VERY SIMILAR to OoO but simpler

Πανεπιστήμιο Πατρών, Τμήμα Ηλεκτρολόγων Μηχανικών & Τεχνολογίας Υπολογιστών

Role of COMPILER in VLIW

Find parallelism -- schedule independent instructions

• Find independent operations to create VLIW

• Many available registers to reduce false data dependencies

INCREASE ILP (create parallelism)

• Loop unrolling

• Software Pipelining

• Trace scheduling

• Predication

Πανεπιστήμιο Πατρών, Τμήμα Ηλεκτρολόγων Μηχανικών & Τεχνολογίας Υπολογιστών

Loop Unrolling

Basic Idea: Unroll loops to get loop with fewer but longer iterations

Pros:

• Creates parallelism -- instructions from different original iterations can be issued in parallel

• Latency Tolerance -- can issue instructions from one iteration while waiting for instructions from another to complete

• Reduces overhead -- fewer iterations means fewer compares and branches

Πανεπιστήμιο Πατρών, Τμήμα Ηλεκτρολόγων Μηχανικών & Τεχνολογίας Υπολογιστών

Loop Unrolling

Cons:

• Register pressure -- combining multiple iterations means more

• live values, potential for register overflow.REQUIRES MANY ARCHITECTURAL REGISTERS

• INTEL’s EPIC (ITANIUM) Arch has 128 registers!!!

Πανεπιστήμιο Πατρών, Τμήμα Ηλεκτρολόγων Μηχανικών & Τεχνολογίας Υπολογιστών

Loop Unrolling Example 1

Πανεπιστήμιο Πατρών, Τμήμα Ηλεκτρολόγων Μηχανικών & Τεχνολογίας Υπολογιστών

Loop Unrolling Example 2: no Unroll

Πανεπιστήμιο Πατρών, Τμήμα Ηλεκτρολόγων Μηχανικών & Τεχνολογίας Υπολογιστών

Loop Unrolling example 2: No Unroll

Πανεπιστήμιο Πατρών, Τμήμα Ηλεκτρολόγων Μηχανικών & Τεχνολογίας Υπολογιστών

Loop Unrolling Example 2

Πανεπιστήμιο Πατρών, Τμήμα Ηλεκτρολόγων Μηχανικών & Τεχνολογίας Υπολογιστών

Loop Unrolling Example 2

Πανεπιστήμιο Πατρών, Τμήμα Ηλεκτρολόγων Μηχανικών & Τεχνολογίας Υπολογιστών

Software pipelining

Idea: Transform loop which performs one iteration at a time into loop which performs pipelined steps of different iterations.

• Scheduling: Increase time between dependent instructions

Combines well with loop unrolling

Πανεπιστήμιο Πατρών, Τμήμα Ηλεκτρολόγων Μηχανικών & Τεχνολογίας Υπολογιστών

Software Pipelining

Modulo Scheduling

Πανεπιστήμιο Πατρών, Τμήμα Ηλεκτρολόγων Μηχανικών & Τεχνολογίας Υπολογιστών

Software Pipelining: modulo scheduling

Πανεπιστήμιο Πατρών, Τμήμα Ηλεκτρολόγων Μηχανικών & Τεχνολογίας Υπολογιστών

Comparison to Superscalar

Loop Unrolling + Software pipelining = Register Renaming + Multiple branch prediction (loop branch) + Dynamic Scheduling

VLI W OoO SuperScalar

False DataDependencies

Many arch.registers

Register Renaming

LargeI nstructionWindow

Loop Unrolling Multiple (loop)branch prediction

Latency hiding SoftwarePipelining

DynamicScheduling

Πανεπιστήμιο Πατρών, Τμήμα Ηλεκτρολόγων Μηχανικών & Τεχνολογίας Υπολογιστών

COMPILER: Reduce CONTROL dependencies

1 in 5 instructions is a branch5-op VLIW ? Each VLI contains a branch!

— Unacceptable ...

INCREASE STRAIGHT LINE CODE

• code without branches2 Techniques in addition to loop unrolling:

• TRACE SCHEDULING

• PREDICATION

Πανεπιστήμιο Πατρών, Τμήμα Ηλεκτρολόγων Μηχανικών & Τεχνολογίας Υπολογιστών

TRACE SCHEDULING

Parallelism across IF branches vs. LOOP branches

Compiler Support - Two steps:Trace Selection

• Find likely sequence of basic blocks (trace) of (statically predicted) long sequence of straight-line code

Trace Compaction

• Squeeze trace into few VLIW instructions

• Need bookkeeping code in case prediction is wrong

Πανεπιστήμιο Πατρών, Τμήμα Ηλεκτρολόγων Μηχανικών & Τεχνολογίας Υπολογιστών

Trace Scheduling

•Similar to branch prediction in SuperScalar OoO•When things go wrong: execute fix-up code (undo wrong path). Compiler inserts all necessary code.

Πανεπιστήμιο Πατρών, Τμήμα Ηλεκτρολόγων Μηχανικών & Τεχνολογίας Υπολογιστών

PREDICATION

Avoid branch prediction by turning branches into conditionally executed instructions:

if (x) then A = B op C else NOP

• If false, then neither store result nor cause exception

• Expanded ISA of Alpha, MIPS, PowerPC, SPARC have conditional move; PA-RISC can annul any following instruction.

Drawbacks to conditional instructions

• Complex conditions reduce effectiveness;

• Cannot predicate very large blocks

Πανεπιστήμιο Πατρών, Τμήμα Ηλεκτρολόγων Μηχανικών & Τεχνολογίας Υπολογιστών

Predication

Branch Prediction Predication

Πανεπιστήμιο Πατρών, Τμήμα Ηλεκτρολόγων Μηχανικών & Τεχνολογίας Υπολογιστών

Intel/HP EPIC

Intel/HP IA-64 “Explicitly Parallel Instruction Computer (EPIC)”

IA-64: instruction set architecture; EPIC is typeEPIC = 2nd generation VLIW? Itanium™ is name of first implementation

(2001)

Πανεπιστήμιο Πατρών, Τμήμα Ηλεκτρολόγων Μηχανικών & Τεχνολογίας Υπολογιστών

Intel EPIC VLIW Instructions

IA-64 instructions are encoded in bundles, which are 128 bits wide.

• Each bundle consists of a 5-bit template field and 3 instructions, each 41 bits in length

3 Instructions in 128 bit “groups”; field determines if instructions dependent or independent

• Smaller code size than old VLIW, larger than x86/RISC

• Groups can be linked to show independence > 3 instr

Πανεπιστήμιο Πατρών, Τμήμα Ηλεκτρολόγων Μηχανικών & Τεχνολογίας Υπολογιστών

Intel EPIC VLIW Instructions

Πανεπιστήμιο Πατρών, Τμήμα Ηλεκτρολόγων Μηχανικών & Τεχνολογίας Υπολογιστών

Itanium

Πανεπιστήμιο Πατρών, Τμήμα Ηλεκτρολόγων Μηχανικών & Τεχνολογίας Υπολογιστών

Instruction group/Bundle

Πανεπιστήμιο Πατρών, Τμήμα Ηλεκτρολόγων Μηχανικών & Τεχνολογίας Υπολογιστών

Intel IA-64 VLIW Instruction groups

Instruction group: a sequence of consecutive instructions with no register data dependences

• All the instructions in a group could be executed in parallel, if sufficient hardware resources existed and if any dependencies through memory were preserved

• An instruction group can be arbitrarily long, but the compiler must explicitly indicate the boundary between one instruction group and another by placing a stop between 2 instructions that belong to different groups

Πανεπιστήμιο Πατρών, Τμήμα Ηλεκτρολόγων Μηχανικών & Τεχνολογίας Υπολογιστών

Intel IA-64 VLIW Instruction groups

Πανεπιστήμιο Πατρών, Τμήμα Ηλεκτρολόγων Μηχανικών & Τεχνολογίας Υπολογιστών

Itanium (or Itanic as in Titanic)

Highly parallel and deeply pipelined hardware at 800Mhz (2000)

6-wide, 10-stage pipeline at 800Mhz on 0.18 µ process

Hardware checks dependencies (interlocks => binary compatibility over time)

DYNAMICALLY SCHEDULED VLIWPredicated execution (select 1 out of 64 1-bit

flags) => 40% fewer mispredictions?

Πανεπιστήμιο Πατρών, Τμήμα Ηλεκτρολόγων Μηχανικών & Τεχνολογίας Υπολογιστών

Itanium

IA-64 RegistersThe integer registers are configured to help

accelerate procedure calls using a register stack

8 64-bit Branch registers used to hold branch destination addresses for indirect branches

64 1-bit predication registers

Πανεπιστήμιο Πατρών, Τμήμα Ηλεκτρολόγων Μηχανικών & Τεχνολογίας Υπολογιστών

IA-64/Itanium registers

Πανεπιστήμιο Πατρών, Τμήμα Ηλεκτρολόγων Μηχανικών & Τεχνολογίας Υπολογιστών

Itanium

Both the integer and floating point registers support register rotation for registers 32-128.

Register rotation is designed to ease the task of allocating of registers in software pipelined loops

When combined with predication, possible to avoid the need for unrolling and for separate prologue and epilogue code for a software pipelined loop

Makes the SW-pipelining usable for loops with smaller numbers of iterations

Πανεπιστήμιο Πατρών, Τμήμα Ηλεκτρολόγων Μηχανικών & Τεχνολογίας Υπολογιστών

Itanium

Πανεπιστήμιο Πατρών, Τμήμα Ηλεκτρολόγων Μηχανικών & Τεχνολογίας Υπολογιστών

Itanium

Recommended