Home Hardware Networking Programmazione Software Domanda Sistemi
Conoscenza del computer >> hardware >> CPU >> .

Perché la pipeline migliora le prestazioni nella CPU?

Le condutture migliorano le prestazioni della CPU sovrapponendo l'esecuzione di più istruzioni. Invece di aspettare che un'istruzione completa interamente prima di iniziare la successiva, una pipeline rompe l'esecuzione delle istruzioni in fasi più piccole. Diverse istruzioni possono essere in diverse fasi di esecuzione contemporaneamente. Questo è analogo a una catena di montaggio in una fabbrica; Ogni fase esegue un'attività specifica sull'istruzione e le istruzioni fluiscono contemporaneamente attraverso le fasi.

Ecco una ripartizione del perché questo porta a guadagni delle prestazioni:

* Aumento della throughput delle istruzioni: Il vantaggio chiave è la possibilità di emettere una nuova istruzione ogni ciclo di clock, anche se ogni istruzione richiede più cicli di clock per essere completato. Ciò aumenta significativamente il numero di istruzioni elaborate per unità di tempo.

* Utilizzo migliorato delle risorse della CPU: La pipeline tiene occupati vari componenti della CPU. Mentre un'istruzione sta eseguendo la sua operazione aritmetica nell'Alu, un'altra istruzione potrebbe recuperare l'istruzione successiva dalla memoria, e ancora un'altra potrebbe scrivere il risultato in un registro. Ciò massimizza l'utilizzo delle risorse.

* Riduzione del tempo di esecuzione medio delle istruzioni (sebbene non tempo di istruzione individuale): Mentre il tempo di eseguire un'istruzione * singola * potrebbe rimanere in gran parte lo stesso (o anche leggermente aumentare a causa dell'alto delle fasi della pipeline), il tempo * medio * per eseguire una * sequenza * di istruzioni è notevolmente ridotto a causa dell'esecuzione sovrapposta.

Tuttavia, le condutture non sono senza limiti:

* Pericoli della pipeline: Queste sono situazioni che possono interrompere il flusso regolare delle istruzioni attraverso la pipeline. I tipi principali sono:

* Pericoli dei dati: Un'istruzione ha bisogno di dati che non sono stati ancora prodotti da un'istruzione precedente.

* Pericoli di controllo: Un'istruzione di filiale altera il flusso del programma, rendendo irrilevanti alcune istruzioni nella pipeline.

* Pericoli strutturali: L'hardware manca delle risorse per eseguire più istruzioni contemporaneamente nella pipeline (ad esempio, solo un accesso alla memoria alla volta).

Questi pericoli richiedono tecniche come l'inoltro, lo stallo (inserimento di bolle) e la previsione del ramo per mitigare il loro impatto negativo sulle prestazioni. Nonostante queste sfide, i vantaggi del pipelining in termini di aumento della produttività superano di gran lunga i costi nella maggior parte delle CPU moderne. Le tecniche sofisticate vengono costantemente sviluppate per ottimizzare ulteriormente le prestazioni della pipeline e gestire i pericoli in modo più efficace.

 

hardware © www.354353.com