- I predittori di branch vengono utilizzati per prevedere la successiva istruzione da eseguire. Se viene effettuata la previsione corretta, le istruzioni sono già precaricate e quindi non si verifica alcuno stallo della pipeline. In caso di previsione errata, invece, l'esecuzione entra in fasi di recupero. Lo stallo della pipeline comporta una perdita di prestazioni.
- Le tecniche che possono essere applicate per ridurre la previsione errata dei rami sono:aumento delle dimensioni del buffer, srotolamento del loop, fusione del loop.
2. Riduzione delle penalità per mancata cache dei dati
- La cache dei dati viene utilizzata per ridurre i tempi di caricamento e archiviazione durante il recupero dei dati dalla memoria principale. Ma quando l'indirizzo di memoria richiesto non viene trovato nella cache, si parla di Cache Miss e i dati devono essere recuperati dalla memoria principale, il che richiede più tempo.
- Esistono due tipi di cache miss:
a) Insuccessi a freddo - Si verifica quando il blocco di memoria a cui si fa riferimento non è nella cache e non c'era nemmeno prima.
b) Mancanza di capacità - Si verifica quando il blocco richiesto non è presente nella cache ma avrebbe potuto essere presente se ci fosse abbastanza spazio.
- Tecniche per ridurre i cache miss:aumento delle dimensioni della cache, localizzazione spaziale (raggruppamento dei dati con elevata probabilità di accesso).
3. Riduzione del sovraccarico del flusso di controllo
- Le istruzioni di flusso di controllo in un programma modificano la sequenza di esecuzione delle istruzioni.
- Tecniche che possono essere utilizzate per ridurre il flusso di controllo:riduzione del numero di rami (ad esempio rimozione di if-else nidificati), utilizzo di Jump-Table, srotolamento dei loop.
4. Esecuzione speculativa
- L'esecuzione speculativa implica l'esecuzione di istruzioni oltre un'istruzione di salto con il presupposto che il salto verrà eseguito.
- Le speculazioni vengono verificate o schiacciate a seconda della direzione effettiva del ramo in seguito.
hardware © www.354353.com