Pipeline
Una pipeline, nel contesto dell'elaborazione informatica, è una tecnica per eseguire più istruzioni contemporaneamente. I processori dei computer possono gestire milioni di istruzioni al secondo. Ogni istruzione attraversa diverse fasi, ciascuna elaborata da una parte diversa del processore. A ogni ciclo di clock, un'istruzione passa da una fase a quella successiva e, mentre un'istruzione attraversa una fase, altre istruzioni attraversano contemporaneamente fasi diverse.
Una tipica pipeline di una CPU comprende cinque fasi: recupero dell'istruzione, decodifica dell'istruzione, esecuzione, accesso alla memoria e riscrittura anche se può variare in base all'(architettura). Senza la pipeline, un processore potrebbe gestire una sola istruzione alla volta. Poiché ogni istruzione impiega diversi cicli di clock per attraversare tutte le fasi, gran parte del processore rimarrebbe inattiva mentre una singola istruzione passa da una fase all'altra. L'elaborazione senza pipeline non fa impiegare più tempo a una singola istruzione, ma significa che il processore può elaborare meno istruzioni al secondo.
La pipeline delle istruzioni funziona in modo molto simile a una catena di montaggio automobilistica, in cui ogni stazione ha un'unica attività: installare i sedili, montare il motore, fissare le ruote e così via. Se lungo la catena si muove una sola automobile alla volta, la maggior parte delle stazioni rimane inattiva e la fabbrica non riuscirà a produrre molte automobili in un giorno. Tuttavia, se sulla catena si trovano contemporaneamente decine di veicoli, abbastanza da mantenere occupata ogni stazione, in un solo giorno verranno completate molte più automobili, anche se per ciascuna occorre sempre lo stesso tempo.
Pipeline grafiche delle GPU
Oltre alle CPU, anche le GPU dei computer usano la pipeline per elaborare le istruzioni. La pipeline grafica della GPU è più complessa e comprende diversi componenti di elaborazione dedicati che eseguono funzioni matematiche per renderizzare scene e oggetti 3D trasformandoli in immagini 2D visualizzate su uno schermo.
Le architetture delle GPU variano notevolmente da una generazione all'altra, ma la maggior parte delle pipeline grafiche segue uno schema simile. Una semplice pipeline grafica inizia convertendo le coordinate 3D dei vertici, cioè gli angoli dei triangoli che compongono ogni oggetto 3D, in coordinate 2D sul piano piatto di uno schermo. Trasforma queste coordinate in wireframe, quindi riempie la geometria tra quei vertici per creare le forme. Successivamente, rasterizza queste forme trasformandole in pixel aggiungendo mappe di texture, illuminazione e altri effetti degli shader. I pixel nascosti e le altre informazioni non visibili dalla "telecamera" vengono eliminati; quindi l'immagine finale viene salvata nel buffer dei fotogrammi e visualizzata sullo schermo.
Metti alla prova le tue conoscenze