2001/02 Lezione N. 4 Organizzazione della memoria Ref

Transcript

2001/02 Lezione N. 4 Organizzazione della memoria Ref
2001/02
Lezione N. 4
Organizzazione della memoria
In linea di principio, una memoria può essere vista come un insieme di celle alle quali sono associati indirizzi
univoci. Le operazioni di archiviazione e recupero di un dato in memoria consistono nella scrittura e nella lettura
del dato in una cella di cui si specifica l’indirizzo. La dimensione o capacità di una memoria è il numero totale di
byte che può contenere. Il parallelismo di una memoria è il numero di bit contenuti in ogni sua cella. I bit
memorizzati in una stessa cella non possono essere scritti o letti singolarmente. Le memorie vengono dette ad
accesso casuale (Random Access Memory) se il tempo d’accesso ad una cella non dipende dalla sua posizione.
Di questo tipo sono quasi tutte le memorie utilizzate nei moderni computer. I nastri magentici sono invece un
esempio di memorie ad accesso non casuale, ma sequenziale. I sistemi di calcolo hanno tre tipi di memorie, con
ruoli e caratteristiche decisamente differenti: la memoria di massa, la ROM e la memoria centrale.
Memoria di massa. Contiene grandi quantità di dati da memorizzare a lungo termine. E’ detta non volatile perché
mantiene i dati memorizzati anche spegnendo il computer. La memoria di massa è gestita dall’utente attraverso il
software. Tipici dispositivi di memoria di massa sono i dischi magnetici: hard disk e floppy disk. Gli hard disk hanno
dimensioni superiori al giga-byte (Gb, miliardi di byte), mentre i floppy hanno dimensioni mille volte inferiori, pari a
1.4 mega-byte (Mb, milioni di byte).
ROM (Read-Only Memory). Memoria in sola lettura. Contiene istruzioni di inizializzazione da eseguire
automaticamente al momento dell’accensione del computer.
Memoria centrale. Contiene dati temporanei relativi alla elaborazione corrente: istruzioni da eseguire, operandi,
risultati, ecc. La memoria principale è detta volatile, poiché spegnendo il computer i dati in essa contenuti vengono
persi. La memoria centrale è gestita direttamente dal microprocessore in modo trasparente all’utente.
Poiché il microprocessore comunica continuamente con la memoria centrale durante il suo funzionamento, il tempo
di accesso alla memoria influenza significativamente le prestazioni del computer. Il tempo di accesso dipende a
sua volta da diversi fattori: la distanza fisica tra la memoria e l’unità di elaborazione, il parallelismo del trasferimento
dei dati, il tempo necessario a reperire il dato all'interno della memoria. In generale, tanto più grande è una
memoria tanto più distante essa si trova dal microprocessore e tanto più lento è il suo tempo di accesso. Per
realizzare un compromesso tra prestazioni e capacità di memoria, la memoria centrale è organizzata in modo
piramidale.
• Registri. Al vertice della piramide sono i registri interni al microprocessore, che contengono operandi e risultati
dell'operazione correntemente svolta dalla ALU. I registri hanno tempi di accesso trascurabili, parallelismo pari
al parallelismo della ALU (64bit), e sono poche decine. I registri non fanno propriamente parte della memoria
centrale in quanto il loro impiego è molto diverso da quello della memoria, tuttavia ha senso considerarli al
vertice della gerarchia di elementi di memoria in quanto, come la memoria centrale, sono capaci di
memorizzare informazioni ed hanno tempi di accesso inferiori a qualsiasi altro dispositivo.
• Cache. Immediatamente sotto stanno uno o più livelli di cache, piccole memorie interne (o vicine) al
microprocessore nelle quali vengono temporaneamente memorizzati dati recenti che molto probabilmente
saranno presto riutilizzati. Le cache sono caratterizzate da tempi di accesso dell'ordine del ciclo di clock e da
dimensioni generalmente inferiori al milione di byte (Mb).
• RAM. La memoria principale, RAM, è posta sulla scheda madre e dialoga con il microprocessore attraverso un
BUS. Il parallelismo della RAM e del BUS possono essere inferiori a quello del microprocessore. Gli accessi
alla memoria richiedono comunque più di un ciclo di clock. Le dimensioni tipiche della RAM sono di 8, 16, 32
Mb o loro multipli.
• Memoria virtuale. Alla base della piramide è la memoria virtuale: uno spazio dell'hard disk utilizzato come
estensione ideale della memoria principale. La memoria virtuale può avere dimensioni superiori al Gb, ma i
tempi di accesso sono molto superiori a quelli della RAM.
Nei computer vengono attuate complicate politiche di gestione della memoria per ridurre al minimo gli accessi alle
memorie di basso livello. A tal fine si sfrutta il principio di località, in base al quale dati e istruzioni memorizzati in
celle di memoria tra loro vicine hanno alta probabilità di essere utilizzati a breve distanza di tempo. Pertanto,
quando il computer accede ad una locazione di memoria, l’intero settore di memoria a cui quella locazione
appartiene viene trasferito in una memoria cache di livello superiore per rendere più rapido l’accesso futuro a tutte
le locazioni vicine a quella corrente. Se un'elaborazione richiede prevalentemente l'uso di istruzioni e dati presenti
in cache, il computer offre il massimo delle sue prestazioni. Se dati e istruzioni sono molto dispersi sono necessari
numerosi accessi alla RAM e le prestazioni calano. Se è necessario sfruttare la memoria virtuale perché la
memoria richiesta dall'esecuzione eccede i limiti della RAM le prestazioni degradano ulteriormente.
Prestazioni di un computer. In ultima analisi, le prestazioni di un computer dipendono da: insieme di istruzioni (e
presenza di eventuali co-processori), frequenza di clock, parallelismo interno, parallelismo dei BUS, dimensioni e
prestazioni della cache, dimensioni e prestazioni della RAM.
Ref: Boni Cap 2.81-2.90