PDA

View Full Version : L'importanza dell'L2 cache e i 64bit


stgww
14-05-2006, 15:43
Qualcuno mi potrebbe gentilmente spiegare l'importanza dell'L2 cache? che vantaggi ha averne uno da 2 mega ad esempio?
Cosa sono questi nuovi processori a 64bit, cosa è che effettivamente lavora a 64 bit? (io conoscevo il bit come unità di misura per la profondità di colore!!!)
Grazie a chi avrà la cortesia di "Informatizarmi"!

asdfghjkl
14-05-2006, 18:55
Il vantaggio è che se li ha già usati il procesore potrebbe ritrovare i dati che gli servono nella cache, che è molto più veloce della ram, e quindi impiegare meno tempo a fare una operazione. In genere avere più cache dà qualche vantaggio, ma dipende dall'applicazione. Più la cache aumenta e meno in genere si notano i miglioramenti. Ho sentito dire che architetture con pipeline lunga traggono maggiore beneficio dalla cache perchè è più probabile che si verifichi un errore e il processore debba ricominciare un'operazione.
I 64 bit significano che il processore può avere in memoria(nei registri interni) e fare operazioni su numeri di 64 bit di lunghezza, cioè 2 alla 64. Ciò gli permette di indirizzare più di 4 GB di ram (4 GB=2 alla 32 byte). Questo dovrebbe anche dare qualche vantaggio come prestazioni, anche se non mi è chiaro come, immagino che in particolari condizioni ci sia il modo di fare meno operazioni purchè queste siano su numeri a 64 bit. I processori a 64 bit attuali sono fatti in modo da poter funzionare anche come processori a 32 bit, perciò possiamo usarli anche con sistemi operativi a 32 bit come windows xp, però in questo caso funzionano come processori a 32 bit a tutti gli effetti.

appleroof
14-05-2006, 18:59
Il vantaggio è che se li ha già usati il procesore potrebbe ritrovare i dati che gli servono nella cache, che è molto più veloce della ram, e quindi impiegare meno tempo a fare una operazione. In genere avere più cache dà qualche vantaggio, ma dipende dall'applicazione. Più la cache aumenta e meno in genere si notano i miglioramenti. Ho sentito dire che architetture con pipeline lunga traggono maggiore beneficio dalla cache perchè è più probabile che si verifichi un errore e il processore debba ricominciare un'operazione.
I 64 bit significano che il processore può avere in memoria(nei registri interni) e fare operazioni su numeri di 64 bit di lunghezza, cioè 2 alla 64. Ciò gli permette di indirizzare più di 4 GB di ram (4 GB=2 alla 32 byte). Questo dovrebbe anche dare qualche vantaggio come prestazioni, anche se non mi è chiaro come, immagino che in particolari condizioni ci sia il modo di fare meno operazioni purchè queste siano su numeri a 64 bit. I processori a 64 bit attuali sono fatti in modo da poter funzionare anche come processori a 32 bit, perciò possiamo usarli anche con sistemi operativi a 32 bit come windows xp, però in questo caso funzionano come processori a 32 bit a tutti gli effetti.

quoto, nemmeno una sbavatura :read: ;)

berto1886
14-05-2006, 19:21
Il vantaggio è che se li ha già usati il procesore potrebbe ritrovare i dati che gli servono nella cache, che è molto più veloce della ram, e quindi impiegare meno tempo a fare una operazione. In genere avere più cache dà qualche vantaggio, ma dipende dall'applicazione. Più la cache aumenta e meno in genere si notano i miglioramenti. Ho sentito dire che architetture con pipeline lunga traggono maggiore beneficio dalla cache perchè è più probabile che si verifichi un errore e il processore debba ricominciare un'operazione.
I 64 bit significano che il processore può avere in memoria(nei registri interni) e fare operazioni su numeri di 64 bit di lunghezza, cioè 2 alla 64. Ciò gli permette di indirizzare più di 4 GB di ram (4 GB=2 alla 32 byte). Questo dovrebbe anche dare qualche vantaggio come prestazioni, anche se non mi è chiaro come, immagino che in particolari condizioni ci sia il modo di fare meno operazioni purchè queste siano su numeri a 64 bit. I processori a 64 bit attuali sono fatti in modo da poter funzionare anche come processori a 32 bit, perciò possiamo usarli anche con sistemi operativi a 32 bit come windows xp, però in questo caso funzionano come processori a 32 bit a tutti gli effetti.


Azzarola che precisione!! :eek: :D complimenti :mano:

Phlmos
14-05-2006, 20:15
Il vantaggio è che se li ha già usati il procesore potrebbe ritrovare i dati che gli servono nella cache, che è molto più veloce della ram, e quindi impiegare meno tempo a fare una operazione. In genere avere più cache dà qualche vantaggio, ma dipende dall'applicazione. Più la cache aumenta e meno in genere si notano i miglioramenti. Ho sentito dire che architetture con pipeline lunga traggono maggiore beneficio dalla cache perchè è più probabile che si verifichi un errore e il processore debba ricominciare un'operazione.
I 64 bit significano che il processore può avere in memoria(nei registri interni) e fare operazioni su numeri di 64 bit di lunghezza, cioè 2 alla 64. Ciò gli permette di indirizzare più di 4 GB di ram (4 GB=2 alla 32 byte). Questo dovrebbe anche dare qualche vantaggio come prestazioni, anche se non mi è chiaro come, immagino che in particolari condizioni ci sia il modo di fare meno operazioni purchè queste siano su numeri a 64 bit. I processori a 64 bit attuali sono fatti in modo da poter funzionare anche come processori a 32 bit, perciò possiamo usarli anche con sistemi operativi a 32 bit come windows xp, però in questo caso funzionano come processori a 32 bit a tutti gli effetti.


Ottima Spiegazione :sofico:

stgww
14-05-2006, 20:29
Vi Ringrazio di Cuore... o meglio di "core"

berto1886
14-05-2006, 22:53
Vi Ringrazio di Cuore... o meglio di "core"

:rotfl: :rotfl:

asdfghjkl
15-05-2006, 11:30
:D accidenti quanti complimenti, mi fate arrossire :D

berto1886
15-05-2006, 12:52
eh eh siamo ruffiani!!!

ShadowX84
15-05-2006, 19:07
Il vantaggio è che se li ha già usati il procesore potrebbe ritrovare i dati che gli servono nella cache, che è molto più veloce della ram, e quindi impiegare meno tempo a fare una operazione. In genere avere più cache dà qualche vantaggio, ma dipende dall'applicazione. Più la cache aumenta e meno in genere si notano i miglioramenti. Ho sentito dire che architetture con pipeline lunga traggono maggiore beneficio dalla cache perchè è più probabile che si verifichi un errore e il processore debba ricominciare un'operazione.
I 64 bit significano che il processore può avere in memoria(nei registri interni) e fare operazioni su numeri di 64 bit di lunghezza, cioè 2 alla 64. Ciò gli permette di indirizzare più di 4 GB di ram (4 GB=2 alla 32 byte). Questo dovrebbe anche dare qualche vantaggio come prestazioni, anche se non mi è chiaro come, immagino che in particolari condizioni ci sia il modo di fare meno operazioni purchè queste siano su numeri a 64 bit. I processori a 64 bit attuali sono fatti in modo da poter funzionare anche come processori a 32 bit, perciò possiamo usarli anche con sistemi operativi a 32 bit come windows xp, però in questo caso funzionano come processori a 32 bit a tutti gli effetti.

Solo due piccole precisazioni:

1) Le cache L2 (per le L3 le considerazioni sono leggermente differenti) favoriscono le prestazioni in determinate architetture non solo in base alle loro dimensioni. E' vero che architetture con pipeline lunghe si avvantaggiano di cache generose, ma è altrettanto vero che c'è un altro fattore discriminante: la filosofia con cui viene gestita tale cache, cioè se sono cache inclusive, o cache exclusive.

2) La parte che ho evidenziato del tuo post ha un piccolo errore, non sono 2 alla 32 byte, ma sono 2 alla 32 bits.

;)

appleroof
15-05-2006, 19:17
Solo due piccole precisazioni:

1) Le cache L2 (per le L3 le considerazioni sono leggermente differenti) favoriscono le prestazioni in determinate architetture non solo in base alle loro dimensioni. E' vero che architetture con pipeline lunghe si avvantaggiano di cache generose, ma è altrettanto vero che c'è un altro fattore discriminante: la filosofia con cui viene gestita tale cache, cioè se sono cache inclusive, o cache exclusive.

2) La parte che ho evidenziato del tuo post ha un piccolo errore, non sono 2 alla 32 byte, ma sono 2 alla 32 bits.

;)


:D ragazzi siete un pozzo di scienza :D :mano:

berto1886
15-05-2006, 19:18
La parte che ho evidenziato del tuo post ha un piccolo errore, non sono 2 alla 32 byte, ma sono 2 alla 32 bits.

;)

Esatto...

isd88
15-05-2006, 19:26
Ottima spiegazione. una piccolissima precisazione: per i processori moderni l'eccezione non è il cache hit (quand otrovano il dato nelal cache) ma il cache miss. E sui netburst (pentium 4) ogni cache miss fa sprecare decine di cicli di clok (per via della frequenza elevata e della lunga pipeline) , per questo usano cache L2 di diversi mega. GLi athlon ( bassa frequenza, pipeline corta) soffrono meno di questi problemi e offrono ottime prestazioni anche con mezzo mega o meno di cache L2

berto1886
15-05-2006, 19:31
Basta che sto diventando uno scenziato!! :D :D :D

asdfghjkl
15-05-2006, 22:41
Qualcosa non mi torna: 2^32 fà 4294967296, cioè 2^10 x 2^10 x 2^10 x 2^2, cioè 1024 x 1024 x 1024 x 4, torna anche dividendo 3 volte per 1024 2^32 con la calcolatrice di windows, quindi 2^32 bits fanno 4 Gigabits o 0,5 Gigabytes, mentre 2^32 Bytes fanno 4 Gigabytes. Immagino che un valore in un registro possa indicare un byte, e non si possa indicare una sua porzione tipo un singolo bit, per cui con numeri grandi 32 bits si indirizzano 4 Gigabytes di memoria.

ShadowX84
16-05-2006, 02:24
Qualcosa non mi torna: 2^32 fà 4294967296, cioè 2^10 x 2^10 x 2^10 x 2^2, cioè 1024 x 1024 x 1024 x 4, torna anche dividendo 3 volte per 1024 2^32 con la calcolatrice di windows, quindi 2^32 bits fanno 4 Gigabits o 0,5 Gigabytes, mentre 2^32 Bytes fanno 4 Gigabytes. Immagino che un valore in un registro possa indicare un byte, e non si possa indicare una sua porzione tipo un singolo bit, per cui con numeri grandi 32 bits si indirizzano 4 Gigabytes di memoria.

Ho rifatto un pò di conti anche io, ed in effetti ho preso una svista clamorosa...mi son lasciato prendere dalla fretta...ed ho detto una cazzata grossa come tutto il forum, chiedo scusa a tutti. non bit in quel caso...ma sono byte.

Scusate ancora :cry:

NoLimit
16-05-2006, 14:19
Non capisco dove sta l'errore.

Lui ha indicato giustamente che 2^32 bits indirizza 4 GB di memoria.
Quindi è giusto, nel senso che i 32 bits indicati puntano ad una locazione di memoria di 8 bit.

Per puntualizzare il perchè i proci a 64 bit sono più veloci; i calcoli matematici avvengono più velocemente. Il processore a 32 bit opera con operatori preimpostati, tipo char, int e via dicendo; a parte i float che hanno un modo particolare di essere rappresentati (e quindi maniplati), gli interi possono essere elaborati semplicemente, e possibilmente anche di dimensioni maggiori di quelle dei registri, ma in questo caso interviene l'architettura dell'elaboratore, che di fatto scompone il dato per elaborarlo in più passaggi. Se quindi manipolo un dato a 64 bit su un processore a 32 devo di fatto procedere in più volte per ottenere, ad esempio, anche il semplice risultato di una somma. Con un 64 bit invece questo è immediato.
Di fatto in generale, i dati possono essere manipolati 64 bit alla volta e quindi, per dati complessi, ridurre il numero di cicli che impiega ad elaborarlo. Ovviamente perchè questo avvenga il sistema operativo deve gestire il processore in modo che nativamente utilizzi questo tipo di impostazione per i dati, quindi per questo serve anche il sistema operativo a 64 bit.

asdfghjkl
16-05-2006, 20:06
Allora, riassumendo, 2^32 bytes SONO 4 Gigabyte, 2^32 bits INDIRIZZANO 4 Gigabytes, perchè ogni possibile valore indica un byte, e i processori a 64 bits se opportunamente supportati eseguono meno operazioni perchè non hanno bisogno di spezzare dati più grandi di 32 bits come un intero molto lungo per compiervi sopra operazioni. Giusto? :read:

berto1886
16-05-2006, 21:55
Ho rifatto un pò di conti anche io, ed in effetti ho preso una svista clamorosa...mi son lasciato prendere dalla fretta...ed ho detto una cazzata grossa come tutto il forum, chiedo scusa a tutti. non bit in quel caso...ma sono byte.

Scusate ancora :cry:

Nn aver paura... errare è umano.... :D

fires89
16-05-2006, 22:23
:ave: Ragazzi siete mostruosi... :ave:

berto1886
16-05-2006, 22:31
:ave: Ragazzi siete mostruosi... :ave:

Eh si si lo sono :asd: io se faccio tutti quei calcoli mi si frigge il cervello!!! :D

ShadowX84
17-05-2006, 09:52
Nn aver paura... errare è umano.... :D

Si si...tranquillo, lo so bene.
Sono gli errori causati dalla fretta quelli che mi danno i nervi :mad:

Comunque sia ragazzi, date un'occhiata a questo thread, è la F.A.Q. della sezione processori: http://www.hwupgrade.it/forum/showthread.php?t=1093784

Ultimamente è un pò in fase di stallo, ma ci troverete comunque informazioni utili, e nel giro di poche settimane dovrebbero anche riprendere gli aggiornamenti, questo dipende molto da come è messo MaxArt con la tesi, ed io col lavoro nonchè tutte le altre persone che hanno deciso di collaborare :)

Fateci un salto ok? ;)

berto1886
17-05-2006, 18:42
Bel thread interessante!! :mano:

ShadowX84
17-05-2006, 19:13
Bel thread interessante!! :mano:


Già, puoi dirlo forte!

Quando sarà completo o quasi...sarà un concentrato interessante di informazioni!

Gente se volete collaborare...fatevi avanti..;)

berto1886
18-05-2006, 19:32
Già, puoi dirlo forte!

Quando sarà completo o quasi...sarà un concentrato interessante di informazioni!

Gente se volete collaborare...fatevi avanti..;)

Eh si... :asd: