1
Fondamenti di Informatica 1
Gestione della memoria
• I sistemi di memoria possono essere suddivisi in:
– memoria interna al processore – memoria principale
– memoria secondaria
Fondamenti di Informatica 2
Memoria interna
• Registri interni alla CPU (visibili al programmatore Assembly)
• Memorizzano temporaneamente i dati e le istruzioni
• Dimensioni: decine di bytes
Fondamenti di Informatica 3
Memoria principale
• Veloce e di grande capacità
• Memorizza dati e istruzioni che servono per il funzionamento della CPU
• La CPU vi accede direttamente
• Dimensioni: decine di MBytes
Fondamenti di Informatica 4
Memoria secondaria
• Di grandi dimensioni e molto più lenta della memoria principale
• Memorizza dati e istruzioni che non sono di immediato interesse per la CPU
• Dimensioni: decine di Gigabytes
Fondamenti di Informatica 5
Memoria secondaria
• Può essere suddivisa in:
– memorie in linea (es. dischi magnetici);
interesse nell’ambito dei millisecondi … secondi
– memorie fuori linea (es. nastri magnetici);
interesse nell’ambito dei minuti … anni
Fondamenti di Informatica 6
Tecnologie e caratteristiche
• Le memorie differiscono per la tecnologia con cui sono realizzate e per i seguenti parametri:
– costo per singolo bit immagazzinato – tempo di accesso (ritardo tra la richiesta del
dato e la sua disponibilità al richiedente) – modi di accesso (seriale o casuale)
2
Fondamenti di Informatica 7
Tecnologie delle memorie
• Memorie a semiconduttore con tecnologia VLSI (Very Large Scale of Integration)
• Memorie magnetiche (memoria secondaria)
• Memorie ottiche (memoria secondaria)
Fondamenti di Informatica 8
Il sistema di memoria
• La memoria deve essere progettata e gestita in modo da ottenere:
– capacità di memorizzazione adeguata – prestazioni accettabili
– costi ridotti
• Il collo di bottiglia della macchina di Von Neumann è la comunicazione tra la CPU e la memoria
Fondamenti di Informatica 9
Gerarchie di memoria
• La soluzione ottimale per un sistema di memoria è:
– costo minimo – capacità massima – tempi di accesso minimi
• Soluzione approssimata: gerarchia
Fondamenti di Informatica 10
Esempio di gerarchia
• Il sistema di memoria di uno studente:
– la propria memoria – borsa
– scaffale di casa
– libreria o biblioteca di Facoltà – depositi casa editrice
Fondamenti di Informatica 11
Località
• Un sistema di memoria gerarchico è efficiente se la modalità di accesso ai dati ha caratteristiche prevedibili
• Principio di località:
– Se al tempo t si accede all’indirizzo X, è molto probabile che l’indirizzo X+ÄX sia richiesto fra t e t+Ät
Fondamenti di Informatica 12
Località
• Nel breve periodo, gli indirizzi generati da un programma sono confinati in regioni limitate
Spazio indirizzi Numero di accessi in intervallo di tempo
3
Fondamenti di Informatica 13
Struttura della gerarchia
• Memorie M1 e M2 (tecnologie diverse) con:
– costo per bit: c1 > c2 – dimensioni: S1 < S2 – tempi di accesso: t1 < t2
M1 M2
Fondamenti di Informatica 14
Gestione della gerarchia
• La gestione deve essere automatica e trasparente all’utente
• I dati utilizzati più raramente sono posti in memorie con tempi di accesso più elevato;
i dati utilizzati più frequentemente in memorie con prestazioni più elevate
Fondamenti di Informatica 15
Gestione della gerarchia
• Obiettivi:
– mimare una memoria con:
• tempi di accesso della più veloce
• le dimensioni della maggiore
• i costi della più economica
• Criteri:
– allocazione dinamica
– spostamento automatico dei dati
Fondamenti di Informatica 16
Memoria virtuale
• Il meccanismo di gestione della gerarchia di memoria si dice Memoria Virtuale
• La memoria virtuale:
– sfrutta efficacemente la gerarchia – rende il programma indipendente dalle
dimensioni della memoria della macchina – libera il programmatore dalla gestione dello
spazio di memoria fisico
Fondamenti di Informatica 17
Sostituzione dati in memoria
• Obiettivo:
– minimizzare il numero di insuccessi
• Politiche:
– FIFO: First In First Out – LRU: Least Recently Used
Fondamenti di Informatica 18
Esempio di gerarchia
CPU Cache
L1 Cache
L2 Memoria
Principale Memoria Secondaria