|
 |
Il Processore e il Debugger |
PROCESSORE 80x86 5/14
[16 di 60] |
|
|
 |
Aggiornato 12 dicembre 2003 |
 | Anche la memoria cache
(=ripostiglio) presente su un
computer può costituire un elemento di scelta, consapevoli che nessun computer
può, oggi, farne
a meno. |
 | Il problema nasce dal fatto che, sebbene
il processore abbia
velocità di elaborazione galattiche (dell'ordine del
GHz, quella di clock),
la memoria di sistema lavora con
velocità decisamente inferiore, quella
del bus (attualmente,
anno 2002,
233MHz .. tendenti ai 533MHz). |
 | Quando la veloce CPU
è chiamata ad elaborare dati è, quindi, costretta
ad aspettare che questi arrivino, con comodo..., dai suoi
lenti bus e dalla
sua lenta memoria esterna di
sistema; in questo modo le prestazioni complessive degradano inevitabilmente.. |
 | Per questo è stata inventata la
cache memory, che trova posto tra il primo
e la seconda; si tratta di una memoria di piccole
dimensioni ma particolarmente veloce; la sua velocità può variare infatti da
quella di clock (se
di primo livello) a valori comunque superiori a quella del
bus. |
 | Il trucco consiste nel pre-caricare
in cache il maggior numero possibile di istruzioni (o meglio, di codici operativi e di
bytes di dato) che il processore prevede di eseguire
in una determinata sessione di lavoro; non appena la CPU tenta di comunicare
con la sua memoria esterna i dati richiesti (e
una buona parte di quelli vicini ad essi) sono
trasferiti
nella cache. |
 | In questo modo, almeno nell'immediato e con sufficiente
probabilità, la CPU troverà in essa anche
i dati necessari in seguito, senza dover attendere troppo. |
 | Naturalmente prima o poi capiterà che il dato
o il codice operativo (dopo un
salto o una chiamata di procedura) richiesti
non siano nella cache: in questo caso
la CPU sarà comunque costretta ad accedere normalmente
alla lenta Ram di sistema posta sul
bus. |
 | Una delle ragioni della diversa velocità dei 2 tipi di
memoria è di tipo tecnologico:
 | la
cache memory è fatta con circuiti
elementari a transistor bipolari ed è nota come
SRAM (RAM Statica); per
questo è molto veloce (meno di
2ns, più di 500MHz) ma relativamente
piccola (il valore tipico è di
256kBytes÷512kBytes,
fino ad un massimo di
2MBytes) e più
costosa. |
 | la memoria centrale
di sistema è la Ram per antonomasia, molto semplice dal punto di vista
costruttivo; è nota come DRAM
(RAM Dinamica) e, di solito, presente in
grande quantità (32MBytes,
64MBytes, 128MBytes
e via raddoppiando..) e soggetta alla velocità del bus (alcuni
esempi: 15ns/66MHz,
10ns/100MHz,
7.5ns/133MHz,
3.75ns/233MHz). |
|
 | Fin dalle prime architetture è stata prevista la presenza
di cache tra CPU e memoria, direttamente sulla scheda madre e, data la
grande efficienza di questo meccanismo, ben presto si è pensato di introdurre
parte di essa addirittura dentro il processore; per velocizzare lo scambio di
dati tra memoria e processore sono oggi disponibili:
 | la cache di 1° livello, non grandissima (da 8kBytes fino a
64kBytes) ma funzionante con la stessa velocità (clock) del
processore che la ospita. |
 | la
cache di 2° livello, posta la cache di
1° livello
(dentro la CPU) e la relativamente
lenta RAM esterna; la sua dimensione tipica è di
256kBytes
e, sebbene all'inizio come detto fosse allocata sulla scheda madre, nei
moderni processori è loro parte integrante
(come la cache di 1° livello); in questo caso la sua velocità
pari a quella del processore (clock)
e, comunque, sarà superiore a quella del bus,
a seconda del tipo di architettura. |
|
 |
La presenza della Cache Memory rende molto più rapida
l'esecuzione dei programmi, dato che la CPU trova con buona probabilità
i bytes che gli servono direttamente dentro se stessa (Cache di 1°
livello) e nelle sue immediate vicinanze (Cache di 2° livello),
senza essere costretta a perdere tempo per indirizzare ed aspettare risposta
dalla lenta Ram convenzionale esterna. |
 | Vale la pena ricordare che l'aumento della
cache produce aumento di prestazioni,
anche se non direttamente proporzionale
e comunque subordinato al caso (per altro piuttosto probabile) di
contenere dentro di sè i dati necessari alla CPU. |
 | Poichè i suoi costi sono intrinsecamente elevati, la tendenza dei produttori è
quella, piuttosto, di rendere le frequenze del bus
(e delle memorie DRAM convenzionali)
sempre più simili a quella di clock. |
©
2001-2010 - Studio Tecnico
ing. Giorgio OBER
Tutti i diritti sono riservati
|