Università di Trieste Calcolatori Elettronici a.a. 2001-2002Omero TuzziL01, Basi 1 Sommario: 1....
-
Upload
vitale-barbieri -
Category
Documents
-
view
212 -
download
0
Transcript of Università di Trieste Calcolatori Elettronici a.a. 2001-2002Omero TuzziL01, Basi 1 Sommario: 1....
Calcolatori Elettronici a.a. 2001-2002 Omero Tuzzi L01, Basi 1
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 2
Università di Trieste
Il concetto di bit Un bit può contenere uno 0 o un 1 e rappresental’unità di base della memoria.• Per memorizzare informazione bisogna avere un dispositivoche possa assumere almeno due stati distinti;• i dispositivi che hanno solo due stati sono più affidabili eveloci di quelli con tre o più stati; A volte si parla di dispositivi che usano l’aritmeticadecimale intendendo con ciò la codifica binaria dellecifre decimali (BCD - Binary Coded Decimal)• con quattro bit (16 combinazioni) si codificano le cifre da
0a 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 3
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 unaqualunque 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 sonodi 32/64 bit), su cui la CPU esegue le operazioni.
Calcolatori Elettronici a.a. 2001-2002 Omero Tuzzi L01, Basi 4
Università di Trieste
Organizzazione della memoria Anche gli indirizzi della memoria sono rappresentaticome 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 numeromassimo di celle indirizzabili nella memoria ed èindipendente dal numero di bit per cella (una memoria con212 celle richiede sempre 12 bit di indirizzo, quale che sia ladimensione 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 8celle 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 5
Università di Trieste
Il concetto di memoria virtuale• Separare il concetto di spazio diindirizzamento e locazioni di memoria• Spazio di indirizzamento = numero di paroleindirizzabili Dipende esclusivamente dal numero di bitdell’indirizzo e non dal numero di parole dimemoria effettivamente disponibile Se la dimensione della memoria principale èminore dello spazio indirizzabile, primadell’esistenza della memoria virtuale una partedegli indirizzi non sarebbe ststa utilizzabile acausa della corrispondenza uno a uno tra indirizzie locazioni di memoria.
Calcolatori Elettronici a.a. 2001-2002 Omero Tuzzi L01, Basi 6
Università di Trieste
Spazio di indirizzamento• Separazione tra spazio di indirizzamentoe locazioni di memoria• Esempio: 16 bit di indirizzo, memoria principale di4K parole In ogni istante di tempo è possibileaccedere a sole 4096 parole di memoria,ma non necessariamente corrispondentiagli indirizzi 0-4095.
Calcolatori Elettronici a.a. 2001-2002 Omero Tuzzi L01, Basi 7
Università di Trieste
Traduzione degli indirizziQuando si accede all’indirizzo 4096, questo vieneautomaticamente tradotto nell’indirizzo 0 della memoriaprincipale, 4097 nell’indirizzo 1 .....8191 in 4095.
Calcolatori Elettronici a.a. 2001-2002 Omero Tuzzi L01, Basi 8
Università di Trieste
Memoria virtuale• Cosa succede se un programma chiede disaltare dall’indirizzo 2500 all’indirizzo 8190?• Con il meccanismo di memoria virtuale: I contenuti della memoria principale vengonosalvati su disco Le parole agli indirizzi da 4096 a 8191 vengonocopiate in memoria principale tra gli indirizzi 0 e4095 L’esecuzione del programma prosegue come senon fosse successo nulla• Meccanismo di overlay automatico:paginazione
Calcolatori Elettronici a.a. 2001-2002 Omero Tuzzi L01, Basi 9
Università di Trieste
Paginazione• Blocchi di dimensione fissa (es. 4K)trasferiti tra memoria principale ememoria secondaria: pagine• Oggi: metodo più sofisticato per latraduzione dello spazio diindirizzamento sugli indirizzi di memoriareali
Calcolatori Elettronici a.a. 2001-2002 Omero Tuzzi L01, Basi 10
Università di Trieste
Memoria virtuale• Indirizzi a cui fa riferimento il programma inesecuzione: indirizzi virtuali• Indirizzi di memoria centrale: indirizzi fisici• Meccanismo di traduzione automatico degliindirizzi virtuali in indirizzi fisici• Con la memoria virtuale, la CPU produce unindirizzo virtuale, che viene tradotto da unacombinazione di elementi hardware e softwarein un indirizzo fisico, che può essere utilizzatoper accedere alla memoria principale:traduzione dell’indirizzo( memory mapping)
Calcolatori Elettronici a.a. 2001-2002 Omero Tuzzi L01, Basi 11
Università di Trieste
Obiettivi della memoriavirtuale• consentire una condivisione efficiente dellamemoria da parte di più programmi• rimuovere il carico di lavoro delprogrammatore provocato dalla limitataquantità di memoria disponibile La paginazione è trasparente al programmatore Il programmatore può scrivere i propri programmipensando di avere a disposizione l’intero spazio diindirizzamento virtuale indipendentemente dalledimensioni effettive della memoria centrale
Calcolatori Elettronici a.a. 2001-2002 Omero Tuzzi L01, Basi 12
Università di Trieste
Rilocazione• Meccanismo per la fase di caricamentodi un programma prima dell’esecuzione:gli indirizzi virtuali utilizzati dalprogramma vengono tradotti in indirizzifisici diversi prima che possano essereutilizzati per accedere alla memoria.• Questa traduzione consente ilcaricamento del programma in unaqualsiasi locazione della memoria fisica.
Calcolatori Elettronici a.a. 2001-2002 Omero Tuzzi L01, Basi 13
Università di Trieste
Rilocazione• Tutti i meccanismi di gestione dellamemoria virtuale rilocano il programmacome un insieme di blocchi didimensione fissa (pagine), eliminandocosì la necessità di individuare un bloccodi memoria contigua sufficientementeampio da potervi caricare il programma;• Il sistema operativo ha solo bisogno ditrovare un numero sufficiente di paginedisponibili nella memoria fisica.
Calcolatori Elettronici a.a. 2001-2002 Omero Tuzzi L01, Basi 14
Università di Trieste
Implementazione dellapaginazione• Lo spazio di indirizzamento virtuale èsuddiviso in un numero intero di paginedi dimensione fissa• Dimensioni di pagina tipici: da 512 bytea 64 Kbyte• Dimensione della pagina: sempre unapotenza di 2.
Calcolatori Elettronici a.a. 2001-2002 Omero Tuzzi L01, Basi 15
Università di Trieste
Implementazione dellapaginazione• Lo spazio di indirizzamento fisico (ossiadella memoria centrale) viene suddivisoin un numero intero di pagine di ugualedimensione di quelle utilizzate per lospazio di indirizzamento virtuale.• Ogni pagina della memoria può quindicontenere esattamente una pagina dellospazio di indirizzamento virtuale.• Pagina della memoria: page frame
Calcolatori Elettronici a.a. 2001-2002 Omero Tuzzi L01, Basi 16
Università di Trieste
Calcolatori Elettronici a.a. 2001-2002 Omero Tuzzi L01, Basi 17
Università di Trieste
Esempio• Spazio di indirizzamento virtuale: indirizzi da32 bit 232 indirizzi diversi• Dimensione di pagina: 4K parole 212 indirizzi• Numero di pagine dello spazio diindirizzamento virtuale = 232 / 212 = 220
pagine• Spazio di indirizzamento fisico: 4M parole 222 indirizzi• Numero di pagine dello spazio diindirizzamento fisico = 222 / 212 = 210 pagine
Calcolatori Elettronici a.a. 2001-2002 Omero Tuzzi L01, Basi 18
Università di Trieste
Traduzione dell’indirizzovirtuale in indirizzo fisico
Calcolatori Elettronici a.a. 2001-2002 Omero Tuzzi L01, Basi 19
Università di Trieste
Memory Management Unit• La traduzione del numero di paginavirtuale nel corrispondente numero dipagina fisica avviene mediante undispositivo, la Memory ManagementUnit (MMU)• Può essere posizionata nel chip dellaCPU, o in un chip separato
Calcolatori Elettronici a.a. 2001-2002 Omero Tuzzi L01, Basi 20
Università di Trieste
Tabella delle pagine• La MMU contiene una tabella delle pagine, con
una riga per ogni paginadello spazio di indirizzamento virtuale• Ogni riga è identificata dal numero dipagina virtuale e contiene due campi: 1 bit VALIDO che indica se la paginacorrispondente è presente/assente inmemoria Il numero di pagina fisica corrispondente
Calcolatori Elettronici a.a. 2001-2002 Omero Tuzzi L01, Basi 21
Università di Trieste
Costruzione dell’indirizzo fisico
Calcolatori Elettronici a.a. 2001-2002 Omero Tuzzi L01, Basi 22
Università di Trieste
Procedura di calcolodell’indirizzo fisico1. MMU riceve l’indirizzo virtuale da 32bit2. Separa i 12 bit meno significativi cherappresentano lo spiazzamentoall’interno della pagina di 4K3. I 20 bit più significativi rappresentanoil numero di pagina virtuale4. Il numero di pagina virtuale identificala riga della tabella delle pagine
Calcolatori Elettronici a.a. 2001-2002 Omero Tuzzi L01, Basi 23
Università di Trieste
Procedura di calcolodell’indirizzo fisico5. La MMU verifica se la pagina richiesta èpresente in memoria centrale esaminando ilbit di VALIDO.6. Se il bit=1 la pagina è presente in memoria Legge il valore contenuto nella tabella cherappresenta il numero di pagina fisica e loaffianca come bit più significativi all’offsetottenendo l’indirizzo fisico di memoria dacercare.7. Else si verifica un errore di pagina (pagefault)
Calcolatori Elettronici a.a. 2001-2002 Omero Tuzzi L01, Basi 24
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 25
Università di Trieste
Errore di pagina• Deve inserire la corrispondenza traindirizzo di pagina virtuale e di paginafisica nella tabella delle pagine• Ripetere l’esecuzione dell’istruzione cheaveva causato l’errore di pagina
Calcolatori Elettronici a.a. 2001-2002 Omero Tuzzi L01, Basi 26
Università di Trieste
Tabella delle pagine
Calcolatori Elettronici a.a. 2001-2002 Omero Tuzzi L01, Basi 27
Università di Trieste
Traduzione degli indirizziV = {0, 1, . . . , n - 1} spazio indirizzi virtualiM = {0, 1, . . . , m - 1} spazio indirizzi fisiciMAP: V --> M U {Ø} f. traduzione degli indirizzin > mMAP(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 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
Università di Trieste