Università di Trieste
Sommario:
1. Concetto di bit.
2. Indirizzi di memoria.
3. Ordinamento dei byte (little endian vs. big endian).
4. Codici di correzione degli errori.
5. Memoria cache.
6. Packaging e tipi di memoria.
Calcolatori Elettronici a.a. 2001-2002
Omero Tuzzi
L01, Basi 1
Università di Trieste
Il concetto di bit
Un bit può contenere uno 0 o un 1 e rappresenta
l’unità di base della memoria.
• Per memorizzare informazione bisogna avere un dispositivo
che possa assumere almeno due stati distinti;
• i dispositivi che hanno solo due stati sono più affidabili e
veloci di quelli con tre o più stati;
A volte si parla di dispositivi che usano l’aritmetica
decimale intendendo con ciò la codifica binaria delle
cifre decimali (BCD - Binary Coded Decimal)
• con quattro bit (16 combinazioni) si codificano le cifre da 0
a 9, che poi vengono utilizzate per comporre un numero;
• 1944dieci = 0001 1001 0100 0100BCD = 11110011000due;
• 16 bit in formato BCD codificano 10000 numeri (0-10’000);
• 16 bit in formato binario codificano 65536 numeri (216).
Calcolatori Elettronici a.a. 2001-2002
Omero Tuzzi
L01, Basi 2
Università di Trieste
Indirizzi di memoria
I bit nelle memorie sono raggruppati in celle:
• tutte le celle sono formate dallo stesso numero di bit;
• una cella composta da k bit, è in grado di contenere una
qualunque tra 2k combinazioni diverse di bit.
Ogni cella ha un indirizzo:
• serve come accesso all’informazione;
• in una memoria con N celle gli indirizzi vanno da 0 a N–1.
La cella è l’unità indirizzabile più piccola.
In quasi tutti i calcolatori è di 8 bit (un byte).
I byte vengono raggruppati in parole (che oggi sono
di 32/64 bit), su cui la CPU esegue le operazioni.
Calcolatori Elettronici a.a. 2001-2002
Omero Tuzzi
L01, Basi 3
Università di Trieste
Organizzazione della memoria
Anche gli indirizzi della memoria sono rappresentati
come numeri binari:
• un indirizzo di M bit consente di indirizzare 2M celle;
• per 6 o 8 celle bastano 3 bit, per 12 celle ne servono 4;
• il numero di bit nell’indirizzo determina il numero
massimo di celle indirizzabili nella memoria ed è
indipendente dal numero di bit per cella (una memoria con
212 celle richiede sempre 12 bit di indirizzo, quale che sia la
dimensione di una cella).
Una memoria può essere organizzata in diversi modi:
• con 96 bit possiamo avere 6 celle di 16 bit (6*16=96), o 8
celle di 12 bit (8*12=96) o 12 celle di 8 bit (12*8=96).
Calcolatori Elettronici a.a. 2001-2002
Omero Tuzzi
L01, Basi 4
Università di Trieste
Il concetto di memoria virtuale
• Separare il concetto di spazio di
indirizzamento e locazioni di memoria
• Spazio di indirizzamento = numero di parole
indirizzabili
Dipende esclusivamente dal numero di bit
dell’indirizzo e non dal numero di parole di
memoria effettivamente disponibile
Se la dimensione della memoria principale è
minore dello spazio indirizzabile, prima
dell’esistenza della memoria virtuale una parte
degli indirizzi non sarebbe ststa utilizzabile a
causa della corrispondenza uno a uno tra indirizzi
e locazioni di memoria.
Calcolatori Elettronici a.a. 2001-2002
Omero Tuzzi
L01, Basi 5
Università di Trieste
Spazio di indirizzamento
• Separazione tra spazio di indirizzamento
e locazioni di memoria
• Esempio:
16 bit di indirizzo, memoria principale di
4K parole
In ogni istante di tempo è possibile
accedere a sole 4096 parole di memoria,
ma non necessariamente corrispondenti
agli indirizzi 0-4095.
Calcolatori Elettronici a.a. 2001-2002
Omero Tuzzi
L01, Basi 6
Università di Trieste
Traduzione degli indirizzi
Quando si accede all’indirizzo 4096, questo viene
automaticamente tradotto nell’indirizzo 0 della memoria
principale, 4097 nell’indirizzo 1 .....8191 in 4095.
Calcolatori Elettronici a.a. 2001-2002
Omero Tuzzi
L01, Basi 7
Università di Trieste
Memoria virtuale
• Cosa succede se un programma chiede di
saltare dall’indirizzo 2500 all’indirizzo 8190?
• Con il meccanismo di memoria virtuale:
I contenuti della memoria principale vengono
salvati su disco
Le parole agli indirizzi da 4096 a 8191 vengono
copiate in memoria principale tra gli indirizzi 0 e
4095
L’esecuzione del programma prosegue come se
non fosse successo nulla
• Meccanismo di overlay automatico:
paginazione
Calcolatori Elettronici a.a. 2001-2002
Omero Tuzzi
L01, Basi 8
Università di Trieste
Paginazione
• Blocchi di dimensione fissa (es. 4K)
trasferiti tra memoria principale e
memoria secondaria: pagine
• Oggi: metodo più sofisticato per la
traduzione dello spazio di
indirizzamento sugli indirizzi di memoria
reali
Calcolatori Elettronici a.a. 2001-2002
Omero Tuzzi
L01, Basi 9
Università di Trieste
Memoria virtuale
• Indirizzi a cui fa riferimento il programma in
esecuzione: indirizzi virtuali
• Indirizzi di memoria centrale: indirizzi fisici
• Meccanismo di traduzione automatico degli
indirizzi virtuali in indirizzi fisici
• Con la memoria virtuale, la CPU produce un
indirizzo virtuale, che viene tradotto da una
combinazione di elementi hardware e software
in un indirizzo fisico, che può essere utilizzato
per accedere alla memoria principale:
traduzione dell’indirizzo( memory mapping)
Calcolatori Elettronici a.a. 2001-2002
Omero Tuzzi
L01, Basi 10
Università di Trieste
Obiettivi della memoria
virtuale
• consentire una condivisione efficiente della
memoria da parte di più programmi
• rimuovere il carico di lavoro del
programmatore provocato dalla limitata
quantità di memoria disponibile
La paginazione è trasparente al programmatore
Il programmatore può scrivere i propri programmi
pensando di avere a disposizione l’intero spazio di
indirizzamento virtuale indipendentemente dalle
dimensioni effettive della memoria centrale
Calcolatori Elettronici a.a. 2001-2002
Omero Tuzzi
L01, Basi 11
Università di Trieste
Rilocazione
• Meccanismo per la fase di caricamento
di un programma prima dell’esecuzione:
gli indirizzi virtuali utilizzati dal
programma vengono tradotti in indirizzi
fisici diversi prima che possano essere
utilizzati per accedere alla memoria.
• Questa traduzione consente il
caricamento del programma in una
qualsiasi locazione della memoria fisica.
Calcolatori Elettronici a.a. 2001-2002
Omero Tuzzi
L01, Basi 12
Università di Trieste
Rilocazione
• Tutti i meccanismi di gestione della
memoria virtuale rilocano il programma
come un insieme di blocchi di
dimensione fissa (pagine), eliminando
così la necessità di individuare un blocco
di memoria contigua sufficientemente
ampio da potervi caricare il programma;
• Il sistema operativo ha solo bisogno di
trovare un numero sufficiente di pagine
disponibili nella memoria fisica.
Calcolatori Elettronici a.a. 2001-2002
Omero Tuzzi
L01, Basi 13
Università di Trieste
Implementazione della
paginazione
• Lo spazio di indirizzamento virtuale è
suddiviso in un numero intero di pagine
di dimensione fissa
• Dimensioni di pagina tipici: da 512 byte
a 64 Kbyte
• Dimensione della pagina: sempre una
potenza di 2.
Calcolatori Elettronici a.a. 2001-2002
Omero Tuzzi
L01, Basi 14
Università di Trieste
Implementazione della
paginazione
• Lo spazio di indirizzamento fisico (ossia
della memoria centrale) viene suddiviso
in un numero intero di pagine di uguale
dimensione di quelle utilizzate per lo
spazio di indirizzamento virtuale.
• Ogni pagina della memoria può quindi
contenere esattamente una pagina dello
spazio di indirizzamento virtuale.
• Pagina della memoria: page frame
Calcolatori Elettronici a.a. 2001-2002
Omero Tuzzi
L01, Basi 15
Università di Trieste
Calcolatori Elettronici a.a. 2001-2002
Omero Tuzzi
L01, Basi 16
Università di Trieste
Esempio
• Spazio di indirizzamento virtuale: indirizzi da
32 bit 232 indirizzi diversi
• Dimensione di pagina: 4K parole 212 indirizzi
• Numero di pagine dello spazio di
indirizzamento virtuale = 232 / 212 = 220 pagine
• Spazio di indirizzamento fisico: 4M parole
222 indirizzi
• Numero di pagine dello spazio di
indirizzamento fisico = 222 / 212 = 210 pagine
Calcolatori Elettronici a.a. 2001-2002
Omero Tuzzi
L01, Basi 17
Università di Trieste
Traduzione dell’indirizzo
virtuale in indirizzo fisico
Calcolatori Elettronici a.a. 2001-2002
Omero Tuzzi
L01, Basi 18
Università di Trieste
Memory Management Unit
• La traduzione del numero di pagina
virtuale nel corrispondente numero di
pagina fisica avviene mediante un
dispositivo, la Memory Management
Unit (MMU)
• Può essere posizionata nel chip della
CPU, o in un chip separato
Calcolatori Elettronici a.a. 2001-2002
Omero Tuzzi
L01, Basi 19
Università di Trieste
Tabella delle pagine
• La MMU contiene una tabella delle pagine, con una
riga per ogni pagina
dello spazio di indirizzamento virtuale
• Ogni riga è identificata dal numero di
pagina virtuale e contiene due campi:
1 bit VALIDO che indica se la pagina
corrispondente è presente/assente in
memoria
Il numero di pagina fisica corrispondente
Calcolatori Elettronici a.a. 2001-2002
Omero Tuzzi
L01, Basi 20
Università di Trieste
Costruzione dell’indirizzo fisico
Calcolatori Elettronici a.a. 2001-2002
Omero Tuzzi
L01, Basi 21
Università di Trieste
Procedura di calcolo
dell’indirizzo fisico
1. MMU riceve l’indirizzo virtuale da 32
bit
2. Separa i 12 bit meno significativi che
rappresentano lo spiazzamento
all’interno della pagina di 4K
3. I 20 bit più significativi rappresentano
il numero di pagina virtuale
4. Il numero di pagina virtuale identifica
la riga della tabella delle pagine
Calcolatori Elettronici a.a. 2001-2002
Omero Tuzzi
L01, Basi 22
Università di Trieste
Procedura di calcolo
dell’indirizzo fisico
5. La MMU verifica se la pagina richiesta è
presente in memoria centrale esaminando il
bit di VALIDO.
6. Se il bit=1 la pagina è presente in memoria
Legge il valore contenuto nella tabella che
rappresenta il numero di pagina fisica e lo
affianca come bit più significativi all’offset
ottenendo l’indirizzo fisico di memoria da
cercare.
7. Else si verifica un errore di pagina (page
fault)
Calcolatori Elettronici a.a. 2001-2002
Omero Tuzzi
L01, Basi 23
Università di Trieste
Errore di pagina
• Si verifica quando il bit di validità per una pagina
virtuale è = 0: il controllo deve essere passato al
sistema operativo con il meccanismo dell’eccezione.
• Una volta che il sistema operativo ha ottenuto il
controllo, deve rintracciare la pagina nel livello
inferiore della gerarchia (di solito un disco
magnetico) e decidere dove, nella memoria fisica,
deve mettere la pagina richiesta.
• Per individuare la posizione della pagina sul disco è
necessaria una struttura dati che ne registra la
posizione
Calcolatori Elettronici a.a. 2001-2002
Omero Tuzzi
L01, Basi 24
Università di Trieste
Errore di pagina
• Deve inserire la corrispondenza tra
indirizzo di pagina virtuale e di pagina
fisica nella tabella delle pagine
• Ripetere l’esecuzione dell’istruzione che
aveva causato l’errore di pagina
Calcolatori Elettronici a.a. 2001-2002
Omero Tuzzi
L01, Basi 25
Università di Trieste
Tabella delle pagine
Calcolatori Elettronici a.a. 2001-2002
Omero Tuzzi
L01, Basi 26
Università di Trieste
Traduzione degli indirizzi
V = {0, 1, . . . , n - 1} spazio indirizzi virtuali
M = {0, 1, . . . , m - 1} spazio indirizzi fisici
MAP: V --> M U {Ø} f. traduzione degli indirizzi
n>m
MAP(a) = a' se il dato all’ind. virtuale a è presente all’ind.
fisico a' e a' in M
= Ø se il dato all’ind. virtuale a non è presente in M
Calcolatori Elettronici a.a. 2001-2002
Omero Tuzzi
L01, Basi 27
Università di Trieste
Calcolatori Elettronici a.a. 2001-2002
Omero Tuzzi
L01, Basi 28
Università di Trieste
Calcolatori Elettronici a.a. 2001-2002
Omero Tuzzi
L01, Basi 29
Università di Trieste
Calcolatori Elettronici a.a. 2001-2002
Omero Tuzzi
L01, Basi 30
Università di Trieste
Calcolatori Elettronici a.a. 2001-2002
Omero Tuzzi
L01, Basi 31
Università di Trieste
Calcolatori Elettronici a.a. 2001-2002
Omero Tuzzi
L01, Basi 32
Università di Trieste
Calcolatori Elettronici a.a. 2001-2002
Omero Tuzzi
L01, Basi 33
Università di Trieste
Calcolatori Elettronici a.a. 2001-2002
Omero Tuzzi
L01, Basi 34
Università di Trieste
Calcolatori Elettronici a.a. 2001-2002
Omero Tuzzi
L01, Basi 35
Università di Trieste
Calcolatori Elettronici a.a. 2001-2002
Omero Tuzzi
L01, Basi 36
Università di Trieste
Calcolatori Elettronici a.a. 2001-2002
Omero Tuzzi
L01, Basi 37
Università di Trieste
Calcolatori Elettronici a.a. 2001-2002
Omero Tuzzi
L01, Basi 38
Università di Trieste
Calcolatori Elettronici a.a. 2001-2002
Omero Tuzzi
L01, Basi 39
Università di Trieste
Calcolatori Elettronici a.a. 2001-2002
Omero Tuzzi
L01, Basi 40
Università di Trieste
Calcolatori Elettronici a.a. 2001-2002
Omero Tuzzi
L01, Basi 41
Università di Trieste
Calcolatori Elettronici a.a. 2001-2002
Omero Tuzzi
L01, Basi 42
Università di Trieste
Calcolatori Elettronici a.a. 2001-2002
Omero Tuzzi
L01, Basi 43