1. ● Cos'è una pipeline?
Il termine pipeline in informatica e in elettronica si
riferisce a un prodotto composto da più elementi.
Ogni elemento provvede a ricevere in ingresso un
dato o un segnale, ad elaborarlo e poi a trasmetterlo
all'elemento successivo. Quindi il flusso di dati o di
segnali percorre tutti gli elementi fino all'ultimo come
quando una conduttura è attraversata da un fluido.
(Infatti, il termine pipeline in inglese indica una
tubatura).
2. ● La pipeline dati che viene utilizzata all'interno dei
moderni microprocessori.
● La pipeline grafica, che viene utilizzata dalle schede
grafiche tridimensionali.
● La pipeline software utilizzata da sistemi operativi.
3. Il microprocessore per leggere ed eseguire le
istruzioni segue 5 fasi:
● IF(Instruction Fetch): lettura dell'istruzione da memoria;
● ID(Instruction Decode): decodifica l'istruzione e legge gli
operandi dai registri;
● EX(Execution): esecuzione dell'istruzione;
● MEM(Memory): accesso alla memoria(solo alcune istruzioni);
● WB(Write Back): scrittura del risultato nel registro opportuno;
4. I primi microprocessori avevano una struttura che consentiva
di elaborare un'istruzione alla volta nelle sue 5 fasi.
Con il miglioramento della tecnologia è stato possibile realizzare
5 strutture che lavorano parallelamente su ciascuna delle 5 fasi.
5. Questa tecnica funziona molto bene se non ci sono
legami troppo stretti tra due istruzioni; se a un'istruzione
serve il risultato di una precedente, essa non potrà fare la
fase EX fino a quando l'istruzione precedente non è
arrivata alla fase WB.
Un altro problema è quello dei salti di esecuzione dove
spesso alcune istruzioni non vengono eseguite.
6. Per risolvere questi problemi le soluzioni sono state:
● Utilizzare registri a doppia porta.
● Utilizzare più pipeline in parallelo
● Introdurre dei circuiti che si occupano di analizzare i
possibili salti.
● Suddividere l'esecuzione di un'operazione in fasi
elementari, così da eseguirle rapidamente.
● Introduzione di CPU multicore, ogni core lavora
autonomamente.
7. Per risolvere questi problemi le soluzioni sono state:
● Utilizzare registri a doppia porta.
● Utilizzare più pipeline in parallelo
● Introdurre dei circuiti che si occupano di analizzare i
possibili salti.
● Suddividere l'esecuzione di un'operazione in fasi
elementari, così da eseguirle rapidamente.
● Introduzione di CPU multicore, ogni core lavora
autonomamente.