LEZIONE #05 del 12-Mag-2008 (2 ore) - Dipartimento di Ingegneria ...
LEZIONE #05 del 12-Mag-2008 (2 ore) - Dipartimento di Ingegneria ... LEZIONE #05 del 12-Mag-2008 (2 ore) - Dipartimento di Ingegneria ...
ALPHA 21264 Branch Prediction case study Roberto Giorgi, Universita’ di Siena, C208L01, Slide 19 Processore Alpha 21264 • 500-600 MHz, 15x10 6 transistors, 2.2V, 0.35µ CMOS • Processore a 64-bit • Processore Superscalare a 4 vie • Puo’ prelevare ed eseguire fino a 4 istruzioni per ciclo • L’esecuzione avviene “fuori ordine” (out-of-order) • Secondo Hennessy e Patterson ha il predittore piu’ sofisticato implmentato fino al 2003 Roberto Giorgi, Universita’ di Siena, C208L05, Slide 20
Predittore dell’Alpha 21264 [Alpha99] • Tournament Predictor • Sceglie dinamicamente fra due predittori - Il “predittore locale” (sinistra) – equivalente ad uno schena PAg - Il “predittore globale” (destra) – equivalente ad uno schema Gag - La selezione del predittore avviene attraverso una storia degli esiti competitivi data in pasto al solito contatore a saturazione a 2 bit. Local predictor Local history table (1024 x 10) Program counter Roberto Giorgi, Universita’ di Siena, C208L05, Slide 21 Local prediction (1024 x 3) branch prediction MUX Global prediction (4096 x 2) Alpha 21264 - Predittore Locale • Local History Table (LHT) Choice prediction (4096 x 2) Path history • Equivalente alla BHT dello schema PAg (k=10, 1024 entry BHT (m=10)) • Mantiene gli ultimi 10 esiti per un massimo di 1024 branch • E’ indicizzato dall’indirizzo dell’istruzione di salto (BIA) • Local Prediction Table (LPT) • Equivalente a una PHT dello schema PAg (j=3, 1024 entries(k=10)) • E’ indicizzata dall’elemento di storia della LHT • La FSM e’ un contatore a saturazione a 3 bit • La predizione coincide col bit piu’ significativo dello stato (1=T) • La LHT e la LPT sono aggiornate dopo che il branch viene risolto • Funziona bene per sequenze alternativamente T e N Roberto Giorgi, Universita’ di Siena, C208L05, Slide 22
- Page 1 and 2: Branch Prediction (parte seconda) C
- Page 3 and 4: Esempio - PowerPC 604 (1) • Micro
- Page 5 and 6: Predittori a correlazione: gselect
- Page 7 and 8: Predittori “competitivi” (“To
- Page 9: Eager Execution [Uht95] • In un g
- Page 13 and 14: Uso del predittore Globale rispetto
- Page 15 and 16: Branch Prediction nel P6 [Shen02]
- Page 17 and 18: P4 - Branch prediction [Boggs03]
- Page 19 and 20: Loop predictor • Cerca di scoprir
Pre<strong>di</strong>tt<strong>ore</strong> <strong>del</strong>l’Alpha 2<strong>12</strong>64 [Alpha99]<br />
• Tournament Pre<strong>di</strong>ctor<br />
• Sceglie <strong>di</strong>namicamente fra due pre<strong>di</strong>ttori<br />
- Il “pre<strong>di</strong>tt<strong>ore</strong> locale” (sinistra) – equivalente ad uno schena PAg<br />
- Il “pre<strong>di</strong>tt<strong>ore</strong> globale” (destra) – equivalente ad uno schema Gag<br />
- La selezione <strong>del</strong> pre<strong>di</strong>tt<strong>ore</strong> avviene attraverso una storia degli esiti<br />
competitivi data in pasto al solito contat<strong>ore</strong> a saturazione a 2 bit.<br />
Local pre<strong>di</strong>ctor<br />
Local<br />
history<br />
table<br />
(1024 x 10)<br />
Program<br />
counter<br />
Roberto Giorgi, Universita’ <strong>di</strong> Siena, C208L05, Slide 21<br />
Local<br />
pre<strong>di</strong>ction<br />
(1024 x 3)<br />
branch<br />
pre<strong>di</strong>ction<br />
MUX<br />
Global pre<strong>di</strong>ction<br />
(4096 x 2)<br />
Alpha 2<strong>12</strong>64 - Pre<strong>di</strong>tt<strong>ore</strong> Locale<br />
• Local History Table (LHT)<br />
Choice pre<strong>di</strong>ction<br />
(4096 x 2)<br />
Path history<br />
• Equivalente alla BHT <strong>del</strong>lo schema PAg (k=10, 1024 entry BHT (m=10))<br />
• Mantiene gli ultimi 10 esiti per un massimo <strong>di</strong> 1024 branch<br />
• E’ in<strong>di</strong>cizzato dall’in<strong>di</strong>rizzo <strong>del</strong>l’istruzione <strong>di</strong> salto (BIA)<br />
• Local Pre<strong>di</strong>ction Table (LPT)<br />
• Equivalente a una PHT <strong>del</strong>lo schema PAg (j=3, 1024 entries(k=10))<br />
• E’ in<strong>di</strong>cizzata dall’elemento <strong>di</strong> storia <strong>del</strong>la LHT<br />
• La FSM e’ un contat<strong>ore</strong> a saturazione a 3 bit<br />
• La pre<strong>di</strong>zione coincide col bit piu’ significativo <strong>del</strong>lo stato (1=T)<br />
• La LHT e la LPT sono aggiornate dopo che il branch viene<br />
risolto<br />
• Funziona bene per sequenze alternativamente T e N<br />
Roberto Giorgi, Universita’ <strong>di</strong> Siena, C208L05, Slide 22