Quote:
Originariamente inviato da -fidel-
Una domanda: una lunga pipeline, pur essendo più complessa da gestire per diversi motivi con l'aumentare della lunghezza, non porta sempre vantaggi prestazionali? Se no, quali sono gli aspetti che possono portare ad avere vantaggio ad usare una pipeline più corta?
|
Le pipeline più corte consentono di avere una maggiore efficienza a parità di clock. Le moderne CPU hanno dei meccanismi di branch prediction (tentano di indovinare quale sarà l'istruzione successiva), che gli consentono di avere sempre tutti gli stadi della pipeline pieni e operativi.
Se questi algoritmi falliscono la previsione, si avrà una cosiddetta "bolla", cioè stadi della pipeline vuoti.
A quel punto sarà necessario cancellare il contenuto dell'intera pipeline, e ciò comporta maggiori sprechi di cicli di clock, maggiore è il numero degli stadi.
Per questo una pipeline più corta è più efficiente di una lunga.