PDA

View Full Version : Pipeline e frequenza


Tomasino
24-11-2003, 15:14
Stvo leggendo un articolo che confrontava p4 e G4 qui http://arstechnica.com/cpu/01q2/p4andg4e/p4andg4e-1.html , e c' e' scritto che intel ha scelto per il suo processore una pipeline piu' lunga per poter avere frequenze piu' alte.

Per quale motivo la lunghezza della pipeline influenza la frequenza della cpu?

jappilas
24-11-2003, 19:46
Allora... la pipeline prevede che un' istruzione per essere eseguita passi attraverso più fasi ...come un prodotto in catena di montaggio...;)

Ora, siccome ogni fase naturalemte prevede un diverso algoritmo, e quindi costruzioni diverse delle reti logiche corrispondenti, ce ne saranno alcune intrinsecamente più complesse di altre,
siccome il clock che ricevono è lo stesso degli altri stadi, lo stadio più lento fa da "tappo" per tutta la pipeline...

Da qui la necessità di rendere il più possibile semplici e disaccoppiati i singoli stadi, in modo tale che le reti logiche (porte logiche -> transistor) possano funzionare in modo stabile (cioè che i bit varino come da progetto - simulazione- anzhe nell' implementazione fisica) a frequenze di lavoro che si avvicinino al limite fisico del SINGOLO transistor

ora, i procesori risc tradizionalmente hanno istruzioni della stessa complessità, il che significa che tutte attraverseranno le stesse fasi (prelievo decodifica, esecuzione, salavataggio risultati ad esempio) e per lungo tempo son oandati avanti senza auemntare il numero di stadi della pipeline (l' Alpha 21264 aveva sempre i 6 stadi standard a 1 Ghz)
ma le cpu x86 hanno un set di istruzioni disomogeneo dal punto di vista della durata in pipeline, il che aggiunge complicazione...

l' aumento degli stadi contribuisce a "spezzettare" il problema in parti il più semplici possibile..

Athlon
24-11-2003, 19:57
la frequenza massima e' data dalla lunghezza del percorso massimo.


In pratica il processore puo' andare al massimo alla frequenza che riesce ad andare la sua parte piu' lenta.

Ad esempio se per fare un calcolo l'impulzo deve attraversare 100 transistor al massimo la frequenza sara' un centesimo della frequenza di lavoro del singolo transistor.


Se adesso immagini di dividere in due tronconi da 50 transistor il percorso che deve fare il dato la freqenza massima diventa un cinquantesimo di quella del singolo transistor , cioe' il doppio di quella dell' esempio precedente.


Quindi una pipeline a 2 stadi viaggia ad una frequenza doppia rispetto ad una pipeline monostadio

tra uno stadio e l'altro ci sono dei "parcheggi" che trattengono il dato tra un ciclo di clock e l'altro.

La pipeline ci mette piu' tempo a completare la singola operazione pero' una volta che e' a regime ha una buona frequenza di lavoro e sforna dati in buona quantita';

Puoi immaginare la pipeline come una catena di montaggio con tante piccole stazioncine dove viene fatto un piccolo lavoro per completare l'operazione complessiva.


La pipeline pero' ha anche dei problemi , ad esempio i "parcheggi" tra uno stadio e l'altro aumentano il numero di transistor (consumo e temperatura)


Il problema piu' grave pero' e dato dai salti condizionati ed dai cache miss.


Nel caso di una salto condizionato (IF A>0 FaiQuesto ELSE FaiQuello) il processore puo' decidere se fare questo o quello solo quando sa se A>0 o no..... il problema e' che questa operazione (il controllo di A) magari e' anche lei dentro la pipeline e non si puo' sapere .... in questi casi i processori provano ad indovinare (algoritmo di previsione dei salti) ma se non ci riescono devono svuotare completamente la pipeline e ricaricarla da capo .... svuotare e ricaricare una pipeline corta (ad esempio 10 stadi) e' molto piu' veloce che non svuotare e ricaricare una pipe lunga (esempio 20 stadi)




Nel caso di cache miss invece la pipe resta senza dati ... e' come se su una catena di montaggio di automobili finissero i bulloni in una stazione e finche' non arrivano i bulloni l' intera catena di montaggio non puo' ripartire.... piu' la catena e' lunga piu' automobili (operazioni) rimangono bloccate nel caso di cache miss.


La tecnonologia Hyper Threading puo' essere vista come un piccolo capannone affianco alla fabbrica dove gli operai vengono mandati a fare dei lavoretti in piu' mentre aspettano che arrivino i bulloni sulla catena di montaggio.

Tomasino
25-11-2003, 00:56
Grazie ad entrambi per le spiegazioni chiare.

lombardp
25-11-2003, 08:14
Se ti vuoi avventurare in spiegazioni tecniche dettagliate, guarda questo articolo di LITHIUM in special modo la sezione sull'architettura a pipeline:

http://www.lithium.it/articolo.asp?code=52 (http://www.lithium.it/articolo.asp?code=52&user=370)