PDA

View Full Version : Curiosità sulle pipes


sccc
20-08-2005, 14:00
Raga, vi volevo chiedere una cosa a riguardo della differenza del numero di pipelins presenti nei processori Intel ed Amd. Si sa che mentre nei primi ce ne sono 20, nei secondi ce ne sono 15, giusto? Ecco, quello che mi hciedevo è questo: questa differenza porta a quali pro e contro e in quali ambiti (non so, magari grafica, calcolo puro, giochi...)?grazie mille

checo
20-08-2005, 14:10
dunque stadi fp o int?
cmq i prescott hanno 31 stadi mentre gli athlon 64 12 parlando di int (vado a memoria potrei sbagliare)

avere più stadi porta a 2 conseguenze, facilità di salire in frequenza, ma dall' altra parte se la pipe va in stallo più grande è più cicli ci mette ad entrare a pieno regime.

generelmente pipe lunghe vanno bene per dati sequenzaili, tipo encoding etc

sccc
20-08-2005, 14:27
ah, quindi non sono 20 e 15, ma 31 e 12? Ok, forse ricordavo male... ti volevo chiedere un altro paio di cose se possibile:
- mi faresti qualche altro esempio in cui vanno meglio quelle a più stadi o quelle a meno stadi?
- mica sai dove posso recuperare qualche guida o articolo riguardo l'argomento "pipes" riferito ai processori Intel ed Amd?

fan100
20-08-2005, 14:35
Se il codice è sequenziale la pepeline si svuotano raramente portando grandi vantaggi nell'esecuzione.Tipico delle esecuzioni mltimediali.

Se è il codice è molto ramificato e si verifica un errore la pipeline deve essere ricaricata in tutti gli stadi.Tipico dei videogiochi.Quindi in teoria meno ce ne sono meglio è.

Spiegazione da bar.Cmq dovrebbe essere cosi.

Dreadnought
20-08-2005, 15:33
I P4 e gli Athlon hanno tutti una sola pipe per core.

I P4 con l'hyperthreading ne emulano due.

neo571
20-08-2005, 16:17
Che differenza c'è tra stadi stadi fp o int?

Yagami
20-08-2005, 17:16
I P4 e gli Athlon hanno tutti una sola pipe per core.

I P4 con l'hyperthreading ne emulano due.

Eh? :D

Dumah Brazorf
20-08-2005, 17:16
Fp sta per floating point, cioè virgola mobile, mentre int per integer cioè interi.
I P4 con 20 stadi (o erano 21.... boh...) erano i core Willamette e Northwood se ricordo bene, con Prescott sono aumentati a 31.
Ciao.

Mauro82
20-08-2005, 17:36
Fp sta per floating point, cioè virgola mobile, mentre int per integer cioè interi.
I P4 con 20 stadi (o erano 21.... boh...) erano i core Willamette e Northwood se ricordo bene, con Prescott sono aumentati a 31.
Ciao.
fino al Northwood erano 20 (giusta la prima :D )
per gli interi su amd sono 10 stadi sui vari Athlon e 12 sugli A64
sui pIII mi sembra fossero 10, sul Pentium M dovrebbero essere 12 ma non ne sono sicuro

in questo (http://www.lithium.it/articolo.asp?code=52) articolo su Lithium.it viene spiegato in maniera abbastanza semplice cos'è una pipeline (assieme a un minimo di elettronica digitale che non guasta mai :D )

TheDarkAngel
20-08-2005, 17:56
I P4 e gli Athlon hanno tutti una sola pipe per core.

I P4 con l'hyperthreading ne emulano due.

mhhhh sono perplesso

neo571
21-08-2005, 08:03
[QUOTE=Mauro82]fino al Northwood erano 20 (giusta la prima :D )
per gli interi su amd sono 10 stadi sui vari Athlon e 12 sugli A64
sui pIII mi sembra fossero 10, sul Pentium M dovrebbero essere 12 ma non ne sono sicuro


Però qui stiamo parlando di stadi int per interi invece quelli fp quanti sono?

Poi ho ancora una domanda curiosa:Quante Alu e FPU contiene un pentium 4 e un athlon 64?

MaxArt
21-08-2005, 10:22
Però qui stiamo parlando di stadi int per interi invece quelli fp quanti sono?Se non ricordo male sono 17 per gli A64, e qualcosa più di 31 per i P4 ma non mi ricordo esattamente.

checo
21-08-2005, 11:58
mhhhh sono perplesso


in effetti è vero la pipeline è una sono gli stadi ad essere 20-30 cazzo ne so :D

^TiGeRShArK^
21-08-2005, 12:18
in realtà la pipe effettiva è una sola per gli interi e una sola per i FP.
Però il discorso è più complesso...
per evitare di svuotare la pipeline, oltre all'uso del branch predictor (unità di predizione dei salti), vi sono anke delle ramificazioni di pipeline virtuali in cui il processore, in certi punti, riesce a seguire due branch contemporaneamente e alla fine scarterà il branch non valido, evitando di svuotare la pipeline continuando sul branch valido.
Ora non ricordo di preciso se anke nell'arkitettura x86 è implementato questo meccanismo, ma cmq la sua complessità a livello di transistor impiegati era davvero molto elevata.....
Per quanto riguarda l'HT in realtà il suo uso impiega la duplicazione di *alcune* strutture di calcolo, ma il suo principale era per sfruttare meglio la LUUUNGAAA pipeline dei processori netburst...
infatti durante l'esecuzione delle istruzioni vi sono diversi tempi morti in cui il processore non fa niente..
un metodo per riempire questi tempi morti è l'out of order execution ke consiste nel cambiare l'ordine di esecuzione delle istruzioni per sfruttare al meglio le unità di calcolo del processore.
Un altro metodo è appunto l'HT ke simulando due processori logici, permette al processore di fare scorrere nella pipeline anke istruzioni non correlate tra loro (essendo di processi differenti, o di uno stesso processo scritto in maniera multi-threaded) e quindi si ha un effetto di "riempimento" maggiore della pipeline con conseguente aumento dell'efficienza del processore.

piottocentino
21-08-2005, 14:19
molto interessante, sintonizzato, continuate pure :)