Parte 5 Memoria e I/O - Istituto di Scienze e Tecnologie dell

Transcript

Parte 5 Memoria e I/O - Istituto di Scienze e Tecnologie dell
Informatica Applicata - Architetture degli elaboratori
© Alessandro Bogliolo
Parte 5
Memoria e I/O
Facoltà di Scienze MM FF NN – Università di Urbino – A.A. 2001/2002
1
Informatica Applicata - Architetture degli elaboratori
© Alessandro Bogliolo
1 Memoria
[Bucci c3.1]
1.1
Classificazione
•
•
1.2
Memorie volatili (che perdono il contenuto quando si spegne l’alimentazione) e non-volatili (che
mantengono il loro contenuto anche in assenza di alimentazione)
Memorie a semiconduttore:
o ROM (read only memory),
o PROM (programmable read only memory)
o RAM (random access memory)
ƒ SRAM (static random access memory)
ƒ DRAM (dynamic random access memory)
Parametri
•
•
•
•
•
Capacità: numero di parole
Parallelismo: numero di bit per parola
Consumo di potenza
o energia per cliclo di lettura/scrittura
o potenza media in condizioni di stand-by
Costo per bit
Grado di integrazione
2 Dispositivi di Memoria RAM
2.1
Dispositivi SRAM [Bucci c3.2]
•
•
•
•
•
•
•
2.2
La cella di memoria è un bistabile realizzato con due invertitori in retroazione.
Le due uscite dei due invertitori hanno sempre valore opposto e rappresentano il dato memorizzato e il suo
complemento
L’uscita che rappresenta il dato in forma vera è collegata (attraverso un interruttore) ad una linea detta bitline (vedi organizzazione interna), l’altra uscita è collegata ad una linea parallela alla precedente detta bitline negata
Gli interruttori che collegano la cella alle bit line sono pilotati da un segnale di controllo detto word line (vedi
organizzazione interna)
Quando la word line vale 0 la cella mantiene il suo contenuto. La cella è detta statica poichè il meccanismo
di memorizzazione è basato sulla presenza di un collegamento stabile tra il segnale d’uscita e una linea di
alimentazione (alta o bassa a seconda che il dato memorizzato sia 1 o 0).
Quando la word line vale 1 la cella è collegata alle bit line.
o In lettura le bit line sono pilotate dalla cella, che impone loro i valori in essa memorizzati
o In scrittura le bit line sono collegate a linee di alimentazione che rappresentano in forma era e in
forma negata il valore da scrivere nella cella. Quando l’interruttore pilotato dalle word line si chiude
il valore delle bit line viene imposto alla cella sbilanciando il bistabile interno.
Le memorie RAM statiche realizzte in tecnologia CMOS richiedono 6 transistori per bit: 4 per i due
invertitori e due per i due interruttori di controllo
Dispositivi DRAM [Bucci c3.3]
•
•
•
•
La cella di memoria è un condensatore, la cui tensione rappresenta il dato memorizzato
Una delle due armature del condensatore è collegata a massa, l’altra è collegata alla bit line attraverso un
interruttore pilotato dal segnale di controllo detto word line
Quando la word line vale 0, il condensatore è isolato e mantiene la tensione ai suoi capi, e quindi il dato
memorizzato
Quando la word line vale 1 il condensatore è collegato alla bit line
o In scrittura la bit-line è collegata ad un segnale di alimentazione (0 o 1) e impone il suo valore alla
cella
o In lettura la bit line è dapprima precaricata ad un valore di tensione di riferimento (Vref) intermedio
tra 0 e 1, poi scollegata dall’alimentazione e collegata alla cella. Il valore di tensione della cella
influenza il valore di tensione della bit-line sbilanciandolo verso 1 o verso 0.
Facoltà di Scienze MM FF NN – Università di Urbino – A.A. 2001/2002
2
Informatica Applicata - Architetture degli elaboratori
•
•
•
© Alessandro Bogliolo
Il meccanismo di memorizzazione è dinamico poichè è affidato ad un fenomeno dinamico: la
conservazione della carica sulle armature del condensatore. Se condensatori e interruttori fossero ideali, la
carica verrebbe mantenuta per un tempo indefinito, ma poichè ideali non sono la carica viene
progressivamente persa, facendo calare lentamente il valore della tensione ai capi del condensatore.
Supponiamo che il valore logico 1 sia associato a tensioni comprese tra 1 e 2 Volt e il valore logico 0 a
tensioni tra 0 e 1 Volt. Se la tensione che memorizza un 1 cala al di sotto di 1 Volt il valore logico
memorizzato s trasforma in 0. Questo è inaccettabile. Per questo è necessario rinfrescare periodicamente i
dati contenuti nelle celle di memoria dinamiche. Questa operazione prende il nome di refresh e consiste
nella lettura del dato prima del suo definitivo degrado e nella riscrittura del dato sulla cella stessa.
La lettura di una cella DRAM avviene per ridistribuzione di carica tra la capacità interna alla cella e la
capacità associata all bit line. Per spiegare il fenomeno si può pensare ad un’analogia idrostatica: il
condensatore è come una cisterna la cui area di base rappresenta la capacità. Il volume del liquido la
quantità di carica sulle armature del condensatore, il livello del liquido è il valore di tensione. Tanto
maggiore è la capacità tanto maggiore è la quantità di carica necessaria a sostenere un certo livello di
tensione. L’interruttore che collega la cella di memoria alla bit line è come un tubo che mette in
comunicazione due cisterne. La cisterna che rappresenta il condensatore associato alla bit line ha area di
base (capacità) Cbl molto maggiore dell’area di base (capacità) Cc di quella che rappresenta il
condensatore associato alla cella. Alla chiusura dell’interruttore, per vasi comunicanti il livello del liquido
nelle due cisterne diviene lo stesso. Il livello a cui si porta il liquido è la media pesata dei due livelli originali.
Questo meccanismo porta a due considerazioni:
1. lo sbilanciamento che la cella di RAM dinamica impone alla bit line è minimo, e quindi occorrono
circuiti di sensing che lo amplifichino per poter effettuare la lettura del dato
2. il meccanismo di ridistribuzione di carica è lento e pertanto la memoria RAM dinamica non ha
prestazioni ottimali
La dimensione di una cella di DRAM è quella di un solo transistore, poichè nelle attuali tecnologie il
condensatore viene sovrapposto al transistore e non occupa ulteriore area sul chip.
3 Organizzazione interna
3.1
Indirizzamento
•
•
•
•
•
•
•
•
3.2
Per semplicità facciamo riferimento ad una memoria a parallelismo 1, i cui elementi sono parole di un solo
bit
Dal punto di vista logico una memoria contiene un array di elementi individuati univocamente da un indice
progressivo che ne rappresenta l’indirizzo
Dal punto di vista implementativo gli elementi di memoria sono disposti su una matrice quadrata e sono
individuati dall’intersezione tra righe e colonne
Lungo le righe corrono le word line che propagano i segnali di controllo
Lungo le colonne corrono le bit line che propagano i dati
Ogni cella è individuata da un indirizzo di riga (che attiva la corrispondente word line) e da un indirizzo di
colonna (che seleziona la corrispondente bit line)
Per passare dall’indirizzo di una cella ai suoi indirizzi di riga e colonna è sufficiente dividere i bit di indirizzo
in due parti uguali: i bit più significativi costituiscono l’indirizzo di riga, i meno significativi quello di colonna.
Ad esempio, una memoria da 1Mbit ha indirizzi a 20 bit, di cui i 10 più significativi individuano
univocamente una delle 1024 righe, quelli meno significativi una delle 1024 colonne.
Gli indirizzi di riga e colonna sono decodificati da decoder di riga e di colonna per generare segnali di
selezione in codice 1-su-n. Il decodificatore di colonna si comporta come un multiplexer che seleziona
quale della bit-line collegare alla porta di input/output.
Parallelismo
•
3.3
Per generalizzare la trattazione del paragrafo precedente si può pensare che una memoria a parallelismo
interno p sia composta da p matrici concettualmente sovrapposte che condividono gli stessi indirizzi e le
stesse word line, mentre hanno bit-line distinte, collegate ad altrettante porte di input/output.
Cicli di lettura
•
Un ciclo di lettura consiste in
o Acquisizione dell’indirizzo
o Decodifica dell’indirizzo di riga
o Pilotaggio della word line
o Pilotaggio della bit line da parte della cella
o Sensing del dato letto
Facoltà di Scienze MM FF NN – Università di Urbino – A.A. 2001/2002
3
Informatica Applicata - Architetture degli elaboratori
•
•
•
© Alessandro Bogliolo
o Decodifica dell’indirizzo di colonna e selezione della bit line
o Pilotaggio della porta d’uscita
Tempo di accesso (access time): intervallo di tempo tra l’asserzione degli indirizzi e la stabilizzazione dei
dati in uscita
Tempo di ciclo di lettura (read cycle time): intervallo di tempo minimo tra due letture indipendenti
Data la sequenza di operazioni che compongono un ciclo di lettura è possibile realizzare memorie alle
quali l’indirizzo di riga e l’indirizzo di colonna vengono forniti in sequenza al fine di dimezzare la dimensione
del BUS indirizzi. In particolare questo ha senso farlo per memorie DRAM che hanno tempi di accesso
molto più lunghi.
4 Organizzazione esterna
[Bucci c3.5]
4.1
Introduzione
•
4.2
Le dimensioni e il parallelismo dei dispositivi di memoria utilizzati da un sistema non necessariamente
coincidono con le dimensioni e il parallelismo della memoria del sistema. Le dimensione della memoria di
un sistema sono legate al numero di bit che compongono il BUS di indirizzi. Il parallelismo della memoria di
un sistema è legato al parallelismo del suo BUS dati.
Dimensione
•
4.3
N dispositivi di memoria di capacità C e parallelismo P possono essere utilizzati per realizzare un’unica
memoria di capaictà NC e parallelismo C. A tal fine tutti i dispositivi vengono collegati al bus dati e ai primi
c=log2(C) bit del bus indirizzi. I restanti bit del bus indirizzi (gli n=log2(N) bit più ingnificativi) vengono
utilizzati per individuare e abilitare (attraverso il semplice logica di decodifica che genera i seganli di chip
select) i singoli dispositivi.
Parallelismo
•
N dispositivi di memoria di capacità C e parallelismo P possono essere utilizzati per realizzare un’unica
memoria di capacità C e parallelismo NC. A tal fine tutti i dispositivi vengono collegati al bus indirizzi e
ciascuno di essi viene collegato esclusivamente ad una porzione di P bit del bus dati (che
complessivamente ha parallelismo NP). Tutti i dispositivi vengono selezionati contemporaneamente
durante le operazioni di lettura e scrittura.
5 Organizzazione gerarchica
[Bucci c3.7]
5.1
Introduzione
•
•
•
•
•
5.2
Le prestazioni dei dispositivi di memoria peggiorano all’aumentare delle dimensioni (bit line e word line più
lunghe, capacità di carico più grandi, circuiti di decodifica più complessi, maggiore distanza dal
microprocessore)
A parità di generazione tecnologica, le SRAM sono molto più veloci delle DRAM, ma meno capaci e più
costose
Le DRAM raggiungono capacità molto più elevate delle SRAM a costi contenuti, ma sono più lente
L’obiettivo è la realizzazione di memorie con capacità e costo delle DRAM e prestazioni delle SRAM
Tale obiettivo può essere raggiunto mediante un’organizzazione gerarchica della memoria principale,
sfruttando il principio di località e la modalità di funzionamento in page mode delle memorie
Principio di località
•
•
•
5.3
Osservazione empirica della distribuzione statistica degli accesi in memoria
Località spaziale: è molto probabile che nell’immediato futuro il microprocessore acceda a locazioni di
memoria contigue a quelle appena utilizzate
Località temporale: è molto probabile che nell’immediato futuro il microprocessore acceda nuovamente a
locazioni di memoria appena utilizzate
Page mode
•
•
Molte memorie consentono di trasferire il contenuto di blocchi di locazioni contigue con prestazioni molto
superiori a quelle ottenibili mediante una sequenza di accessi singoli
In particolare, se si pensa che ogni accesso ad una memoria DRAM richiede la decodifica di riga,
l’attivazione della WL, la stabilizzazione delle BL, il sensing dei dati, la decodifica di colonna e la selezione
Facoltà di Scienze MM FF NN – Università di Urbino – A.A. 2001/2002
4
Informatica Applicata - Architetture degli elaboratori
© Alessandro Bogliolo
delle bit-line, per accedere a celle disposte sulla stessa riga è sufficiente cambiare l’indirizzo di colonna,
riducendo sensibilmente i tempi di accesso ai dati successivi al primo.
5.4
Gerarchia di memoria
•
•
•
•
La memoria principale ha un’orgnizzazione piramidale. Al vertice stanno memorie piccole, veloci e costose,
alla base memorie capienti, lente ed economiche:
o registri interni
o cache interna
o cache esterna
o RAM
o memoria virtuale
Le celle di memoria alle quali si prevede che il microprocessore debba accedere vengono trasferite nei
livelli di memoria più alti.
Fintanto che il microprocessore trova i dati di cui ha bisogno nei livelli di memoria più alti percepisce la
memoria principale come una memoria ad alte prestazioni
In base al principio di località, le celle di memorie che vengono spostate ai livelli di memoria più alti sono
quelle contigue a quella indirizzata dal microprocessore
6 Cache
[Bucci c7.1-4]
6.1
Principio di funzionamento
•
•
•
•
•
•
•
•
•
•
•
•
6.2
Immaginiamo che le locazioni (word) di memoria principale siano disposte su righe di W elementi.
Immaginiamo inoltre che L righe formino un blocco e che vi siano B blocchi. La memoria risulta quindi
composta da B blocchi di L righe di W parole.
Questa organizzazione logica (da non confondere con l’organizzazione matriciale dei dispositivi di
memoria) si riflette sull’indirizzo delle celle di memoria, che viene suddiviso in tre parti:
b
o i b bit più significativi individuano il blocco (B=2 )
l
o gli l bit successivi individuano la riga (L=2 )
w
o i w bit meno significativi individuano la parola (W=2 )
Supponiamo di disporre di una memoria cache grande quanto un blocco, idealmente organizzata in L righe
di W parole ciascuna
Una parola in cache è individuata dagli l+w bit meno significativi dell’indirizzo
La parola rappresenta la minima unità di memoria indirizzabile
La riga è la zona di memoria trasferita tra unitariamente da memoria RAM a cache
Il blocco è la dimensione della cache
Quando il microprocessore accede alla parola di indirizzo (IB,Ll,IW), l’intera riga in cui si trova la parola
indirizzata viene trasferito in cache. La posizione che la riga occuperà in cache dipende dalla modalità di
gestione della cache
Se la locazione di memoria indirizzata è presente in cache, si parla di cache hit, altrimenti di cache miss
In caso di cache hit i tempi di accesso sono quelli tipici della cache (tls), molto brevi
In caso di cache miss si paga una penalità dovuta all’accesso ad una memoria di più basso livello e al
trasferimento dell’intera riga in cache (tp)
Il tempo di accesso medio è tavg=h tls + m tp, con h e m probabilità di hit e miss
Cache a mappatura diretta (direct mapped cache)
•
•
•
•
•
•
La parola di indirizzo (BI,LI,WI) viene mappata in cache in posizione (LI,WI)
La posizione in cache è univocamente determinata dall’indirizzo
Poichè tutte le righe omologhe di blocchi diversi verrebbero mappate nella stessa posizione in cache
(poichè condividono i bit meno significativi dell’indirizzo), ogni volta che una riga viene portata in cache
occorre annotare a quale blocco appartiene. A tal fine ad ogni riga di cache è associato un tag di b bit in
cui vengono trascritti i bit più significativi dell’indirizzo che individuano il blocco (BI).
Quando il microprocessore indirizza la locazione (BI,LI,WI), si verifica che il dato non sia già presente in
cache in posizione (LI,WI), confrontando il tag associato alla riga LI con l’indirizzo di blocco BI
Vantaggio: semplicità
Svantaggio: nessuna libertà di scelta nel piazzamento delle righe. Righe omologhe di blocchi di memoria
diversi si sovrascrivono a vicenda in cache, anche se il resto della cache è inutilizzato.
Facoltà di Scienze MM FF NN – Università di Urbino – A.A. 2001/2002
5
Informatica Applicata - Architetture degli elaboratori
6.3
© Alessandro Bogliolo
Cache associativa (fully assciative cache)
•
•
•
6.4
Le linee di memoria possono essere mappate in qualsiasi posizione in cache, indipendentemente dal loro
indirizzo. Questo ha due conseguenze:
o poichè la posizione della linea in cache non è più legata all’indirizzo di linea, il tag associato alla
linea deve contenere sia l’indirizzo di blocco che l’indirizzo di linea (BI,LI)
o dovendo cercare in cache la locazione di memoria indirizzata occorre confrontare i bit più
significativi dell’indirizzo (BI,LI) con i tag di tutte le linee di cache. Se uno dei tag coincide, la linea
corrispondente contiene la parola indirizzata, altrimenti si è verificato un cache miss
Vantaggio: piena libertà di scelta nel piazzamento delle linee in cache, che permette di sfruttare al meglio
la cache disponibile. Le prestazioni dipendono dalle politiche di rimpiazzamento, che decidono
dinamicamente quale delle linee di memoria già presenti in cache sacrificare per far posto ad altre
Svantaggio: complessità (in particolare, l’esigenza di prestazioni elevate impone di effettuare
parallelamente il confronto di tutti i tag)
Cache parzialmente associativa (set associative cache)
•
•
•
•
6.5
Compromesso tra cache diretta e associativa: la cache è divisa in insieme di linee (detti vie)
L’indirizzo di memoria individua univocamente l’insieme di linee di cache in cui la cella va mappata, ma
lascia libertà di scelta della posizione all’interno di ogni insieme.
Per indirizzare la cache si utilizza l’indirizzo di memoria per individuare l’insieme di linee, e poi si
confrontano i tag delle linee dell’insieme per cercare l’elemento desiderato.
Il numero di righe in ogni insieme viene detto numero di vie o grado di associatività della cache
Prestazioni
•
•
Il tempo di accesso medio è tavg=h tls + m tp, con h e m probabilità di hit e miss
Per aumentare le prestazioni occorre:
o ridurre il tempo di accesso alla cache tls
ƒ scegliendo dispositivi cache ad alte prestazioni
o ridurre il miss penalty tp
ƒ scegliendo dispositivi a prestazioni più alte
ƒ utilizzando multipli livelli di cache
ƒ consentendo il bypass della cache in caso di miss
o aumentare la probabilità di hit, che dipende da:
ƒ dimensione della cache
ƒ dimensione delle linee di cache
ƒ grado di associatività
ƒ politica di rimpiazzamento
7 Memoria virtuale
[Bucci c8.1-2, c8.4]
7.1
Principio di funzionamento
•
•
•
•
•
7.2
Esigenza: eseguire programmi che richiedono più memoria di quella fisica disponibile (per le istruzioni o
per i dati), gestire più processi contemporaneamente, le cui esigenze di memoria complessive eccedono le
dimensioni della RAM
Soluzione: spazio di indirizzamento logico più grande di quello fisico e suddiviso in pagine (zone di
memoria di dimensioni prefissate, generalmente potenze di 2, gestite automaticamente dal sisteam
indipendentemente dal contenuto della memoria) o in segmenti (zone di memoria di dimensioni arbitrarie
decise dal programmatore in base al contenuto; ad esempio stack, programma e dati)
In base al principio di località, i segmenti o le pagine di memoria logica vengono mappate sulla memoria
fisica (RAM) quando utilizzate, e riposte in memoria di massa se non utilizzate e superiori alle dimensioni
della RAM
La funzione che trasforma indirizzi logici in indirizzi fisici dipende dal tempo (poichè il mapping della
memoria logica su quella fisica è dinamico) ed è implementata dalla Memory Management Unit (MMU)
La MMU può trovarsi a monte della cache (se questa fa il caching della memoria fisica, cache fisica) o in
parallelo alla cache (se questa fa il caching della memoria logica, cache virtuale)
Page-Map Table (PMT)
•
La funzione di traduzione di indirizzi logici in fisici è rappresentata da una tabella delle pagine (page-map
table, PMT).
Facoltà di Scienze MM FF NN – Università di Urbino – A.A. 2001/2002
6
Informatica Applicata - Architetture degli elaboratori
•
•
•
•
•
7.3
© Alessandro Bogliolo
Un indirizzo logico è composto da due parti:
o i bit più significativi formano il Virtual Page Number (VPN)
o i bit meno significativi l’Offset interno alla pagina
Un indirizzo fisico è analogamente composto da due parti:
o i bit più significativi formano il Real Page Number (RPN)
o i bit meno significativi l’Offset interno alla pagina
La tabella delle pagine viene indirizzata dal VPN e restituisce il RPN
Chiamiamo root pointer il puntatore al primo elemento della tabella delle pagine
Ogni elemento della tabella delle pagine contiene:
o RPN
o PROT, serie di flag tra cui: P (a 1 se la pagina è presente in memoria fisica), A (a 1 se la pagina è
stata indirizzata dall’ultimo reset), M (a 1 se la pagina è stata modificata, nel qual caso dovrà
essere trascritta in memoria di massa prima di essere sovrascritta da un’altra pagina), ACC (diritti
di accesso)
PMT gerarchica
•
•
•
•
•
•
•
7.4
Dimensione della tabella delle pagine (esempio):
o indirizzi logici a 32 bit
o pagine di 4Kbyte (offset di 12 bit, VPN a 20 bit)
o PTE di 4 byte
20
o Numero di elementi della PMT: 2 =1M
o Dimensione della PMT = 4Mbyte
Per ridurre l’occupazione di memoria della PMT vengono utilizzate tabelle delle pagine paginate a loro
volta, ovvero tabelle delle pagine gerarchiche
Il VPN dell’indirizzo logico è suddiviso in due pari:
o VPN.Liv1, bit più significativi
o VPN.Liv2, bit meno significativi
Il VPN.Liv1 viene utilizzato per indirizzare una PMT di primo livello, il cui primo elemento è pntato dal root
pointer
La PMT di primo livello restituisce il root pointer di una delle PMT di secondo livello, in cui cercare il RPN
associato al VPN.liv2
Il vantaggio è che le PMT di secondo livello vengono portate in RAM solo se utilizzate
Esempio di PMT gerarchica:
o VPN.liv1 a 10 bit
o VPN.liv2 a 10 bit
o PMT di primo livello di 4Kbyte (1 pagina)
o PMT di secondo livello di 4Kbyte (1 pagina)
Parametri di progetto
•
7.5
Pagine di dimensioni maggiori
o miglior ammortizzamento della latenza per il piazzamento della testina dell’hard disk all’inizio della
pagina
o PMT di dimensioni minore
o maggiore frammentazione
Translation Lookaside Buffer (TLB)
•
•
•
•
7.6
Prestazioni
o Se la tabella delle pagine è memorizzata in RAM, ogni accesso in memoria richiede 2 accessi alla
RAM: uno per recuperare il RPN dalla PMT, uno per accedere all’indirizzo fisico richiesto
o Se la tabella è gerarchica, gli accessi alla RAM necessari a realizzare un accesso alla memoria
logica sono 3 o più
Per migliorare le performance si utilizza una cache associativa per i RPN, detta translation lookaside buffer
(TLB)
Si noti che il TLB contiene gli ultimi RPN utilizzati e i relativi VPN (usati come tag di una cache associativa)
Poichè RPN e VPN restano immutati fintanto che il microprocessore indirizza celle di memoria
appartenenti alla stessa pagina, il principio di località degli accessi alla PMT è particolarmente valido,
rendendo molto efficace il caching anche se il TLB è molto piccolo (ad esempio di soli 16 elementi)
Multitasking
•
Processo: coppia (programma, stato di esecuzione)
Facoltà di Scienze MM FF NN – Università di Urbino – A.A. 2001/2002
7
Informatica Applicata - Architetture degli elaboratori
•
•
•
•
•
© Alessandro Bogliolo
Lo stato di esecuzione di un programma è rappresentato dal valore corrente di tutte le variabili e dal
contenuto di tutti i registri interni al microprocessore, tra cui ovviamente il program counter (PC)
In sistemi multitasking è possibile sospendere l’esecuzione di un processo per dedicare la CPU ad un altro
processo. Questo richiede un cambiamento di contesto che comporta il salvataggio dello stato del
processo da sospendere e il ripristino dello stato del processo di cui riprendere l’esecuzione.
L’esecuzione di processi concorrenti (multitasking) può essere gestita in due modi diversi:
o time sharing: ad ogni processo è dedicato uno slot temporale di lunghezza prefissata al termine del
quale si rimette in discussione l’assegnazione delle risorse di calcolo
o sospensione: l’esecuzione di un processo è interrotta solo quando il processo incontra una
condizione di blocco in attesa di un evento
Tabella delle pagine condivisa da tutti i processi:
o Spazio di indirizzamento logico unico
o I processi concorrenti devono utilizzare zone dello spazio di indirizzamento logico non sovrapposte
Tabella delle pagine dedicata ad ogni processo:
o Ogni processo ha il proprio spazio di indirizzo logico
o Se due processi usano lo stesso indirizzo logico non si creano conflitti
o La tabella delle pagine fa parte del contesto di ogni processo e deve essere salvata e ricaricata ad
ogni cambio di contesto
8 Input output
8.1
Introduzione [Bucci c4.1]
•
•
8.2
I/O a controllo di programma [Bucci c4.2]
•
•
•
8.3
Chiamata a procedura
Stack
Ritorno da procedura
I/O a controllo di interruzione (interrupt) [Bucci c4.3-7]
•
8.4
Memory-mapped I/O
Sincronizzazione
Interruzioni ed eccezioni
o esterne (asincrone e impreviste)
o interne (sincrone, ma impreviste)
o trappole (sincrone e previste)
Accesso diretto alla memoria [Bucci c4.10]
Facoltà di Scienze MM FF NN – Università di Urbino – A.A. 2001/2002
8