| INFORMAZIONI TECNICHE | Cache |
Copyright © elma srl.
Tutti i diritti riservati.
Aggiornato il 18/03/02.
SOMMARIO
- Che cosa é la cache ?
- Che cosa é la cache della CPU ?
- Che cosa è il TAG ?
- Cosa si intende per WRITE BACK e WRITE THROUGH ?
- Cosa sono cache sincrona e asincrona ?
- COASt , CELP , cosa sono ?
- Quali sono le differenze tra COAST 1.3 e COAST 2.1?
- Che caratteristiche deve avere la cache ?
- Quanta cache cesulle mainboard Pentium Pro ?
- Le mainboard di ultima generazione non hanno piú il modulo per l'espansione della cache ?
- Cè differenza tra la cache saldata e quella su modulo ?
- Il chipset puó fare cache di soli 64MB . E se installo piú ram ?
- Utilities e links
Che cos'è la cache ?
Cache, in generale, è un blocco di memoria che serve di
supporto allo scambio di dati tra unitá che hanno diverse velocitá.
Per intenderci, ricorriamo ad un esempio : pensiamo di riempire una bottiglia
con un imbuto. Quando versiamo in un imbuto, se la quantitá di liquido che
versiamo é minore della portata del condotto di uscita dell'imbuto, tutto il
liquido passa direttamente nella bottiglia; se versiamo rapidamente il liquido
in quantitá superiore a quella che puó uscire dall'imbuto, questo, poco
per volta si riempie.
Avendo in mente questa immagine possiamo farne un parallelo : lo scambio dati
tra due unitá é il flusso di liquido che stiamo versando; la cache é
l'imbuto, che costituisce il passaggio da un contenitore all'altro. Se la
velocitá con cui il ricevitore (bottiglia) é in grado di accettare dati
(liquido) é minore o uguale alla quantitá di dati (liquido) che arriva dal
trasmettitore (noi che stiamo versando), nell'imbuto (cache) non resta
liquido (dati) in attesa. Se, come spesso capita, la possibilitá del ricevitore
di trattare i dati é inferiore alla quantitá ricevuta, si richiede , per
evitare la perdita dei dati no accettabili che il trasmettitore arresti per un
certo tempo la trasmissione in modo da dare la possibilitá al ricevitore di
smaltire il carico. (nel nostro esempio idrico, se mi accorgo di stare versando
il liquido troppo in fretta, devo rallentare o sospendere, altrimenti una parte
traboccherá).
Se uso un imbuto, posso, entro certi limiti dati dalla grandezza dell'imbuto
stesso, continuare a versare il liquido anche se il passaggio nella bottiglia é
completamente impegnato : il liquido riempirá l'imbuto e non andrá perduto .
Similmente la cache accoglie quella parte di dati che il ricevitore non riesce
ad accettare e con questi si riempie in attesa di rilasciarli appena possibile.
La presenza della cache permette al trasmettitore di liberarsi dell'operazione
in corso senza essere dipendente dai tempi del ricevitore, in modo da poter
svolgere immediatamente un'altra attivitá.
Come per l'imbuto, la capacitá della cache di "parcheggiare"dati non
puó essere illimitata; raggiunto un certo livello di riempimento l'operazione
di versamento deve essere sospesa in attesa della fuoriuscita di quanto giá
immesso.
É ovvio che una cache molto grande potrá fornire risultati migliori, ma nel
contempo costerá di piú e non é detto che venga sempre impegnata al 100%.
Quindi si dimensiona la grandezza della cache in modo da coprire le esigenze
mediamente presentate dal processo a cui si applica, in un bilanciamento tra
costo e prestazioni.
Cache sono contenute in moltissimi dispositivi elettronici, ad
esempio nei processori, nei dischi, nei masterizzatori, nelle schede video,
nelle schede di acquisizione dati, nelle unitá di trasmissione ed in generale
dovunque ci sia un interscambio di dati veloci, critico o di grandi dimensioni.
La cache puó essere realizzata anche in modo virtuale, con l'impiego di routine
software ed il parcheggio dei dati su diversi supporti, ad esempi su disco. In
questi casi, piú che di cache, é corretto parlare di buffer.
Che cosa é la cache della CPU ?
In questo caso si tratta di una area di memoria ad alta
velocità di accesso e di dimensioni piuttosto piccole , rispetto alla
memoria primaria , situato tra questa e il microprocessore . In
genere si tratta di memoria di tipo statico , ovvero senza la
necessità di refresh , assai più costosa di quella dinamica ,
ma con tempi di accesso molto ridotti , dell ordine di pochi nanosecondi .
Puó essere sia esterna che interna al chip del processore e puó essere situata
a diversi livelli logico/fisici, a seconda delle funzioni svolte.
La cache contiene i dati utilizzati con maggior frequenza dal
microprocessore nelle operazioni correnti e questo contribuisce
all' incremento delle prestazioni , poiché tali dati non devono
essere richiamati ogni volta dalla più lenta memoria RAM . Le
cache possono contenere istruzioni (codici), dati o entrambi i
tipi di informazione. Ad esempio , se la CPU deve cercare un dato
o una istruzione , la ricerca per primo nella cache; se non è
presente , la preleva dalla RAM o dalla ROM e ne fa anche una
copia nella cache (se larea da cui è stato prelevato
questo elemento è dichiarata cacheable dal BIOS o
dal software del sistema ).
Anche se sembrerebbe che quanto più grande è la cache ,
tanto più grande è il numero di informazioni che possono essere
gestiti con efficienza, questa affermazione è vera relativamente, in quanto,
aumentando la cache oltre certi limiti , il rapporto
prezzo/prestazioni diventa non conveniente.
Per aumentare
ulteriormente le prestazioni , la cache può essere incorporata
nel microprocessore allo scopo di accrescerne piú la velocitá di accesso che
la dimensione : la cache nel chip, data la riduzione delle distanze di
interconnessione e la maggior possibilitá di integrazione delle funzioni di
scambio, comunica più rapidamente
con il microprocessore, solitamente lavorando alla stessa velocitá della CPU,
mentre le cache esterne funzionano con clock ridotti.
In genere sono definiti due tipi di cache, dette L1, interna al chip
del processore , e L2 , spesso esterna, mentre sono state realizzate anche
strutture con piú livelli (ad esempio L3 di AMD K6-3). Sono stati realizzati anche chipset che permettono un sistema di
cache virtuale, che utilizza dei registri FIFO (First In First
Out) o altri sistemi semplificati per emulare le funzioni della
cache, piú economici, ma comunque meno efficienti . La cache virtuale gestita
in questo modo non è da confondersi con la cache fittizia
(inesistente) di molti prodotti orientali . Poiché attualmente
il costo della cache si è grandemente ridotto , non ha più
alcun senso il piccolissimo risparmio dovuto alla cache virtuale , mentre , per contro, conta alquanto la differenza di
prestazione tra i due sistemi .
Un sistema senza cache ha
prestazioni nettamente ridotte rispetto ad uno con cache; la differenza é
rilevabile facilmente disabilitando le cache interne dal setup del BIOS : si
noterá un rallentamento del sistema visibile ad occhio nudo.
Che cosa è il TAG?
Larea TAG della cache mantiene una traccia degli indirizzi residenti e dello stato dei dati nella cache . In genere si tratta di un chip separato , ma può anche essere integrato o semi integrato nel chipset .
Cosa si intende per WRITE BACK e WRITE THROUGH ?
Nellarchitettura Write Back i dati nella memoria e nella cache non sono correlati simultaneamente ; il controller della cache mantiene una traccia della coerenza di questi dati . Questa struttura , abbastanza complessa , riduce il traffico sul bus e le operazioni di scrittura della memoria , con sensibili vantaggi di prestazione .Nel modo Write Thru , i dati scritti sono sempre passati attraverso (through) la cache verso la memoria principale ed è mantenuta una stretta coerenza tra queste . Questa struttura è più semplice da implementare , ma aumenta il traffico sulla memoria e riduce le prestazioni . Negli ultimi processori , in generale , la cache L1 è di tipo Write Back ; la cache L2 dipende dal chipset della mainboard , ma tutti i chipset più recenti hanno anche essi adottato questa modalità .
AVVERTENZA : alcuni costruttori orientali utilizzano la dizione Write Back per indicare una cache fittizia , non esistente , visualizzata da BIOS "compiacenti" nel prompt del boot .
Cosa sono cache sincrona e asincrona ?
La cache asincrona è economica , ma meno
performante della cache sincrona . La non sincronicitá tra il
processore e la risposta della ram portano alla necessità di
più cicli di clock per esaurire una richiesta di informazioni .
Tipicamente , per leggere il blocco di 4 bytes=64bit con cui
lavorano le CPU pentium , sono impegnati 9 cicli di clock e
questo da origine alla indicazione 3-2-2-2 . L'accesso alla cache
é quindi piú veloce di quello alla RAM (ved. Bollettino Tecnico
Memoria) .
La cache sincrona richiede un numero minore di clock per esaurire
una richiesta . Il tipo piú performante , e piú costoso , é
quella detta "flow-through " o SyncSRAM (Synchronous
Burst Static RAM ) che ha un ciclo di 2-1-1-1 . ( il ciclo ideale
della CPU sarebbe 1-1-1-1)
Altro tipo di cache sincrona é quella detta Pipelined Burst ed
è attualmente la più diffusa . Con riferimento all
esempio precedente , il ciclo diventa 3-1-1-1 , ottimo risultato
, anche perché , in ogni caso , i chipset Triton non possono
gestire tempi minori di questo .
Si può distinguere la cache asincrona perché è costituita da più chip nel comune package DIL (Dual In Line) , installati su zoccoli , mentre la cache sincrona è realizzata con pochi chip a montaggio superficiale , senza zoccolo oppure su modulo (ved. paragrafo successivo) . Attualmente il costo della cache sincrona é tale da permetterne l' uso su tutte le mainboard .
COAST , CELP , cosa sono ?
COASt è lacronimo di Cache On A Stick e indica lo standard del modulo cache L2 , principalmente riferito alla Pipelined Burst Ram . CELP deriva da Card Edge Low Profile ed è il connettore posto sulla mainboard per ricevere il modulo . Differenti formati del profilo delle estremità del modulo dovrebbero garantire la possibilità di inserire il modulo stesso solo nel corrispondente ed adeguato zoccolo .
Quali sono le differenze tra COAST 1.3 e COAST 2.1?
COAST 1.3 é supportato solo da PCIset Intel 430FX
. COAST 2.1 é supportato da PCIset Intel 430HX , VX , FX o
chipset compatibile puó essere anche di tipo Global Burst ( solo
per chipset HX e VX ) . I due moduli si distinguono per la
differente sagomatura delle estremitá , che impediscono l'
inserzione in uno zoccolo non adeguato .
Che caratteristiche deve avere la cache ?
In genere la cache ha tempi di accesso molto brevi . Ad es. il PCIset Intel 430HX supporta la cache pipelined burst che deve essere da almeno 15nsec per il clock a 66MHz . La cache delle mainboard SUPERMICRO e EPOX è da 7 nsec .
Quanta cache cesulle mainboard Pentium Pro ?
Niente = 0kB . E caratteristica particolare del Pentium Pro lavere la cache L2 integrata nel chip . Questa struttura consente di avere notevoli benefici prestazionali , sia per laumento della velocitá di accesso alla cache , sia per la struttura della cache stessa , di tipo non-blocking , che puó supportare fino a 4 transazioni contemporanee . Pertanto , a livello di L2 , non è possibile , né ha senso , aggiungere altra cache
Le mainboard di ultima generazione non hanno piú il modulo per l'espansione della cache ?
Le prime versioni di mainboard per Pentium adottavano la cache di tipo asincrono , costituita da chip in contenitore DIL , montati su zoccolo , retaggio delle strutture 486 . Quasi subito , peró , lo sviluppo tecnologico ha prodotto la cache di tipo sincrono/pipeline burst , con elevati benefici , e i costruttori hanno iniziato ad offrire la possibilitá di installare anche questo tipo di cache , ben piú costosa della asincrona . Guidata principalmente dal punto di vista economico , si é stabilito lo standard COAST per la cache su modulo , in modo da permettere una certa flessibilitá di configurazione . Attualmente l'incremento della produzionea di cache sincrona ne ha ridotto grandemente il costo , tanto da portarlo al livello della vecchia cache asincrona , che é sparita dal mercato . Inoltre , la richiesta di prestazioni elevate porta alla necessitá di una progettazione molto critica delle strutture hardware , ivi compreso il circuito stampato ; sarebbe quindi impensabile rinunciare oggi al miglioramento delle temporizzazioni che si ottiene fissando direttamente i chip di cache sul circuito principale , senza i problemi di capacitá disperse , lunghezza di piste , problemi dei contatti del modulo COAST , del suo zoccolo , ecc. Pertanto , una mainboard di qualitá della generazione attuale é dotata di 512kB di cache direttamente on board . Solo prodotti vecchi , decisamente da scartare , hanno ancora COAST o usano cache asincrona .
Cè differenza tra la cache saldata e quella su modulo ?
In linea di principio , nessuna differenza . La
tendenza attuale per i prodotti di classe più elevata è quella
di montare direttamente la cache sulla mainboard , anche perché
al momento attuale , il costo dei chip della cache si è ridotto
alquanto rispetto allo scorso anno . Tuttavia molti costruttori hanno
installato il connettore per il modulo COAST assieme ad un certo
quantitativo di cache . Inoltre , i chip di cache sincrona sono
studiati per essere saldati e non zoccolati . Inoltre la mancanza dello zoccolo e del modulo COAST garantisce
lassenza di problemi dovuti ai contatti tra le due parti e
consente di migliorare i tempi di accesso alla cache.
Si possono
verificare allora le seguenti possibilità :
Il chipset puó fare cache di soli 64MB . E se installo piú ram ?
Alcuni chipset , ad es. PCIset Intel 430VX e TX possono contenere nella cache una estensione massima di 64MB di ram . Se é installata una quantitá superiore , questa ram oltre i 64MB sará ovviamente disponibile per il PC e quindi per i programmi , ma il contenuto di questa area non sfrutterá il beneficio della cache . Nella valutazione della mainboard , puó essere importante anche questo aspetto : non é detto che l' ultimo prodotto sia il piú adeguato alle proprie necessitá . Per un uso intensivo di grosse quantitá di ram é consigliabile poter disporre della cache , che accelera sensibilmente le prestazioni ; chipset come 430HX possono supportare fino a 512MB di ram e mantenere la cache attiva su tutta l' area .
Utilities e links
| CacheCHK 6.0 cache test | CACHCHK6.ZIP |
| NuCache 1.2a cache test | NUCACHE.EXE |
| CCT386 cache & ram test | http://www.rtfm.be/fpiette/index.html |
Copyright © elma srl.
Tutti i diritti riservati.
Aggiornato il 18/03/02.