Instruction Level Parallelism ILP Weiss and Smith 1984

  • Slides: 35
Download presentation

Τα όρια του Παραλληλισμού σε επίπεδο εντολών (Instruction Level Parallelism - ILP) Weiss and

Τα όρια του Παραλληλισμού σε επίπεδο εντολών (Instruction Level Parallelism - ILP) Weiss and Smith [1984] 1. 58 Sohi and Vajapeyam [1987] 1. 81 Tjaden and Flynn [1970] 1. 86 (Flynn’s bottleneck) Tjaden and Flynn [1973] 1. 96 Uht [1986] 2. 00 Smith et al. [1989] 2. 00 Jouppi and Wall [1988] 2. 40 Johnson [1991] 2. 50 Acosta et al. [1986] 2. 79 Wedig [1982] 3. 00 Butler et al. [1991] 5. 8 Melvin and Patt [1991] 6 Wall [1991] 7 (Jouppi disagreed) Kuck et al. [1972] 8 Riseman and Foster [1972] 51 (no control dependences) Nicolau and Fisher [1984] 90 (Fisher’s optimism) cslab@ntua © 2004 -05

Κατηγοριοποίηση των μηχανημάτων βάσει του ILP [Jouppi, DECWRL 1991] • Baseline scalar RISC Ø

Κατηγοριοποίηση των μηχανημάτων βάσει του ILP [Jouppi, DECWRL 1991] • Baseline scalar RISC Ø Ø SUCCESSIVE INSTRUCTIONS Ø Παραλληλισμός διανομής (Issue parallelism) = IP = 1 Καθυστέρηση λειτουργίας (Operation latency) = OP = 1 Μέγιστο IPC = 1 IF 1 0 2 1 3 2 4 5 3 DE WB 6 4 5 6 7 TIME IN CYCLES (OF BASELINE MACHINE) cslab@ntua © 2004 -05 EX 8 9

Superscalar vs. Superpipelined • Περίπου ισοδύναμη επίδοση Ø Ø Αν n = m τότε

Superscalar vs. Superpipelined • Περίπου ισοδύναμη επίδοση Ø Ø Αν n = m τότε και τα δύο έχουν το ίδιο IPC Parallelism exposed in space vs. time Superscalar Superpipelined 0 1 2 3 4 5 6 TIME IN CYCLES (OF BASELINE MACHINE) cslab@ntua © 2004 -05 IF DE EX WB

Superpipelining “Superpipelining is a new and special term meaning pipelining. The prefix is attached

Superpipelining “Superpipelining is a new and special term meaning pipelining. The prefix is attached to increase the probability of funding for research proposals. There is no theoretical basis distinguishing superpipelining from pipelining. Etymology of the term is probably similar to the derivation of the now-common terms, methodology and functionality as pompous substitutes for method and function. The novelty of the term superpipelining lies in its reliance on a prefix rather than a suffix for the pompous extension of the root word. ” - Nick Tredennick, 1991 cslab@ntua © 2004 -05

Superscalar Challenges cslab@ntua © 2004 -05

Superscalar Challenges cslab@ntua © 2004 -05

Παράδειγμα sum = 0; for i=0 to 10 sum = sum + a[i]; i

Παράδειγμα sum = 0; for i=0 to 10 sum = sum + a[i]; i 1 i 2 i 3 i 4 i 5 i 6 i 7 Assembly r 1 = 0 r 2 = 0 loop: r 2 = MEM[a+r 2] r 0 = r 0 + r 2 r 1 = r 1 + 1 r 3 = r 1 != 10 if (r 3==true) goto loop (sum → r 0, i → r 1) cslab@ntua © 2004 -05

Παράδειγμα (συνέχεια…) Time fetch i 3 decode i 3 M[a+r 1] wr back r

Παράδειγμα (συνέχεια…) Time fetch i 3 decode i 3 M[a+r 1] wr back r 3 fetch i 4 decode i 4 r 0 + r 2 wr back r 0 fetch i 5 decode i 5 r 1 + 1 wr back r 1 fetch i 6 decode i 6 r 1 != 10 Εν σειρά εκτέλεση των εντολών (σε αρχιτεκτονική αγωγού) cslab@ntua © 2004 -05 wr back r 6

Παράδειγμα (συνέχεια…) Time fetch i 3 decode i 3 fetch i 4 decode i

Παράδειγμα (συνέχεια…) Time fetch i 3 decode i 3 fetch i 4 decode i 4 fetch i 5 decode i 5 fetch i 6 decode i 6 dispatch i 3 dispatch i 4 dispatch i 5 dispatch i 6 M[a+r 1] wb r 2 stall r 0 + r 2 r 1 + 1 wb r 1 stall r 1 != 10 wb r 3 Εκτός σειράς εκτέλεση των εντολών : Οι εντολές i 3 και i 5 εκτελούνται παράλληλα. Οι i 4 και i 6 πρέπει να περιμένουν το αποτέλεσμα των i 3 και i 5 cslab@ntua © 2004 -05

Παράδειγμα (συνέχεια…) Time fetch i 3 decode i 3 dispatch i 3 r 2=M[a+r

Παράδειγμα (συνέχεια…) Time fetch i 3 decode i 3 dispatch i 3 r 2=M[a+r 1] complete retire fetch i 4 decode i 4 dispatch i 4 stall r 0=r 0 + r 2 complete fetch i 5 decode i 5 dispatch i 5 r 1=r 1+1 complete fetch i 6 decode i 6 dispatch i 6 stall r 3=r 1 != 10 retire complete Διατήρηση της ορθότητας στην εκτός σειρά εκτέλεση των εντολών : Εισαγωγή του σταδίου complete (retire ≡ write back) Out of order complete – in order retire Αλλάζει το speculative state cslab@ntua © 2004 -05 retire Αλλάζει το architectural state retire

Παράδειγμα: Intel Pentium parallel pipeline (a) Intel i 486 : pipeline 5 σταδίων (b)

Παράδειγμα: Intel Pentium parallel pipeline (a) Intel i 486 : pipeline 5 σταδίων (b) Intel Pentium microprocessor : περιέχει 2 pipeline του i 486 cslab@ntua © 2004 -05

Ετερογενής σωλήνωση του Power 4 I-Cache FP Issue Q FP 1 Unit FP 2

Ετερογενής σωλήνωση του Power 4 I-Cache FP Issue Q FP 1 Unit FP 2 Unit Fetch Q BR Scan Decode BR Predict FX/LD 1 Issue Q FX 1 Unit FX/LD 2 Issue Q LD 1 Unit LD 2 Unit St. Q D-Cache cslab@ntua © 2004 -05 PC FX 2 Unit BR/CR Issue Q CR Unit BR Unit Reorder Buffer