Newsgroup: it.comp.hardware.cpu
Titolo: Informazioni sulla cache

Ciao,
vorrei avere un minimo di informazioni su cos'è la cache di un processore,
a cosa serve, e quanta ce n'è in un Athlon 1700 e un Pentium di pari
prestazioni!
Grazie!
-- 
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it

 prestazioni!
banalmente: la cache di un processore è una memoria molto veloce integrata
sulla CPU e quindi di piccole dimensioni, a differenza della memoria di
sistema che è esterna e di dimensioni molto maggiori. la CPU quindi cerca i
dati in cache e se non li trova va a ricercarli sulla memoria "lenta" di
sistema.

 prestazioni!
Alla prima domanda ha risposto P4.
Un processore "consumer" ha 2 livelli di cache, una detta di primo livello 
(L1) e una di secondo livello (L2).
Un processore Athlon XP 1700+ ha 128Kb di cache L1 (64+64) e 256Kb di cache 
L2.
Un processore Pentium 4 a 1700 o 1800Mhz ha 16Kb di cache L1 (8+8) e 256Kb 
di cache L2. Il Pentium 4 Northwood ha però 512Kb di cache L2, solitamente 
viene identificato come Pentium 4 1.8A (a 1800Mhz).
-- 
| (o_  | Piersandro Guerrera  -  Eden.Games Group    |            _o)  |
| //\  |  URL: 
http://www.edengames.net
              | (o_  (o_   /\\  |
| V_/_ |  Togli NOSPAM per rispondere in e-mail.     | (/)_ (/)_ _\_V  |

 ha scritto nel messaggio
news:CX9z9.10467$8E3.2...@twister2.libero.it...
 > Un processore Pentium 4 a 1700 o 1800Mhz ha 16Kb di cache L1 (8+8)....
Aggiungo solo che una porzione della cache istruzioni L1 utilizza la
tecnologia
Trace Cache, la quale è logicamente collegata a valle dell'unità di
decodifica
delle istruzioni.
In questo modo quando è richiesta nuovamente l'esecuzione di una
porzione di codice che si trova già nella Trace Cache non è necessario
ripetere l'operazione di decodifica delle istruzioni, migliorando così
discretanente le prestazioni rispetto ad una cache di tipo "standard".
Ciao


Tutti hanno detto cose giuste, ma si sono dimenticati del particolare
fondamentale: che dati ci sono in cache?
Semplificando, e per capire il funzionamento, si può dire che quando la CPU
incomincia a lavorare o dopo un reset, la cache è vuota. La CPU ha bisogno
di un dato, guarda in cache: vuota. OK, allora lo prende dalla RAM e lo
copia in cache e, diciamo contemporaneamente, se lo porta a casa e ci
lavora. Ha bisogno di un altro dato, in cache non c'è, va in RAM, copia in
cache, usa. Dopo un po' la cache è piena (perchè è relativamente piccola),
allora la CPU incomincia a sovrascrivere i dati che ha usato meno
recentemente (algoritmo LRU, least recently used) e così nella cache ci sono
sempre i dati "più utilizzati" e "più richiesti" dalla CPU in ogni dato
momento (ricordiamoci che la CPU viaggia a velocità impensabili, quindi
milioni di accessi in cache avvengono in tempi molto brevi dal punto di
vista umano).
Perchè tutto ciò funziona? Perchè la CPU tende a riutilizzare più di una
volta gli stessi dati in un dato periodo di tempo, quindi la prima volta ci
mette tutto il tempo che serve per andare in RAM, ma la seconda invece ci
mette solo i 3-5 ns della cache, e la terza pure, e la quarta anche.
Statisticamente, grazie alla struttura dei programmi e del modo di
funzionare di una CPU, e ai sofisticati algoritmi di gestione delle cache,
si ottengono "hit ratio" anche dell'ordine del 90% (più prudentemente
dell'80-85%), cioè l'80-85% delle volte che la CPU ha bisogno di un dato lo
trova in cache, anche se questa è grande solo 512KB e di RAM ce ne sono per
esempio 512MB (1000 volte tanto).
Per finire, ricordiamci che la RAM fa da cache agli hard disk e gli hard
disk fanno da cache ai sistemi di archiviazione ottica (parlando di grandi
server con qualche centinaio di migliaia di gigabyte di memoria di massa):
cioè si tratta di un'organizzazione gerarchica nella quale le memorie più
lontane dalla CPU sono anche le più grandi e lente e contengono TUTTI i
dati, mentre a mano a mano che ci si avvicina all'elaboratore le memorie
diventano sempre più veloci e piccole e contengono sempre più solo i dati
utili in un ben preciso momento.
Spero che questa piccola conferenza :-)) sia abbastanza chiara!!
Massimo

 fondamentale: che dati ci sono in cache?
si, hai perfettamente ragione, dalla fretta mi sono dimenticati di spiegare
che in cache c'è solo una piccola porzione di dati che ci sono in RAM.

 Massimo
Massimo, complimenti per l'eccellente spiegazione.


Grazie!!!


Ottima spiegazione... naturalmente ci sarebbe da dire ancora molto,
(modalità WB WT, cache inclusive, esclusive, associatività,ecc...) ma non
credo che sia il caso.
Ciao

 ha scritto nel messaggio
news:dttz9.17940$XO.8...@news2.tin.it...

Certo, altrimenti diventerebbe una grande conferenza :-)))) e comunque per
spiegarsi decentemente servirebbero dei disegni e degli schemi.
Ciao
Massimo

 Grazie!

Grazie a tutti per le esaurienti spiegazioni sulla cache, fantastico, ho
capito tutto!
