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