Fondamenti di Informatica - Memoria cache, interrupt e DMA
FONDAMENTI DI INFORMATICA
Prof. PIER LUCA MONTESSORO
Facoltà di Ingegneria
Università degli Studi di Udine
Memoria cache, interrupt e DMA
© 2000 Pier Luca Montessoro (si veda la nota di copyright alla slide n. 2)
1
Fondamenti di Informatica - Memoria cache, interrupt e DMA
Nota di Copyright
Questo insieme di trasparenze (detto nel seguito slide) è protetto dalle leggi sul copyright
e dalle disposizioni dei trattati internazionali. Il titolo ed i copyright relativi alle slides (ivi
inclusi, ma non limitatamente, ogni immagine, fotografia, animazione, video, audio,
musica e testo) sono di proprietà dell’autore prof. Pier Luca Montessoro, Università degli
Studi di Udine.
Le slide possono essere riprodotte ed utilizzate liberamente dagli istituti di ricerca,
scolastici ed universitari afferenti al Ministero della Pubblica Istruzione e al Ministero
dell’Università e Ricerca Scientifica e Tecnologica, per scopi istituzionali, non a fine di
lucro. In tal caso non è richiesta alcuna autorizzazione.
Ogni altro utilizzo o riproduzione (ivi incluse, ma non limitatamente, le riproduzioni su
supporti magnetici, su reti di calcolatori e stampe) in toto o in parte è vietata, se non
esplicitamente autorizzata per iscritto, a priori, da parte degli autori.
L’informazione contenuta in queste slide è ritenuta essere accurata alla data della
pubblicazione. Essa è fornita per scopi meramente didattici e non per essere utilizzata in
progetti di impianti, prodotti, reti, ecc. In ogni caso essa è soggetta a cambiamenti senza
preavviso. L’autore non assume alcuna responsabilità per il contenuto di queste slide (ivi
incluse, ma non limitatamente, la correttezza, completezza, applicabilità, aggiornamento
dell’informazione).
In ogni caso non può essere dichiarata conformità all’informazione contenuta in queste
slide.
In ogni caso questa nota di copyright e il suo richiamo in calce ad ogni slide non devono
mai essere rimossi e devono essere riportati anche in utilizzi parziali.
© 2000 Pier Luca Montessoro (si veda la nota di copyright alla slide n. 2)
2
Fondamenti di Informatica - Memoria cache, interrupt e DMA
Memoria cache
© 2000 Pier Luca Montessoro (si veda la nota di copyright alla slide n. 2)
3
Fondamenti di Informatica - Memoria cache, interrupt e DMA
Memoria cache
• L’idea risale agli anni ’60
• Dagli anni ’90 le memorie cache risiedono sul
chip del microprocessore
CACHE
Memoria
centrale
20-1000 volte
più piccola
della RAM
CPU
5-20 volte
più veloce
© 2000 Pier Luca Montessoro (si veda la nota di copyright alla slide n. 2)
4
Fondamenti di Informatica - Memoria cache, interrupt e DMA
Miss e Hit
• La CPU genera l’indirizzo I e il comando
di lettura
• Se il dato non è nella cache: MISS
– leggere il dato dalla memoria centrale
– copiarlo in cache tenendo traccia
dell’indirizzo I, per i riferimenti futuri
• Se il dato è nella cache: HIT
© 2000 Pier Luca Montessoro (si veda la nota di copyright alla slide n. 2)
5
Fondamenti di Informatica - Memoria cache, interrupt e DMA
Problemi
• Directory dei dati contenuti in base agli
indirizzi di memoria
• Dimensione della cache e gestione in base al
principio di località spaziale dei programmi
• Criterio di mappatura tra la posizione in
memoria centrale delle parole in memoria
centrale e in cache (cache completamente
associativa, a mappatura diretta, associativa
a più vie)
© 2000 Pier Luca Montessoro (si veda la nota di copyright alla slide n. 2)
6
Fondamenti di Informatica - Memoria cache, interrupt e DMA
Mappatura diretta
• Capacità della cache: L = 2l linee
• Linee di W = 2w parole
(C = LxW parole nella cache)
• Memoria centrale di B = 2b blocchi (ogni
blocco delle stesse dimensioni della
cache)
b
l
w
• Indirizzo:
IB
IL
IW
© 2000 Pier Luca Montessoro (si veda la nota di copyright alla slide n. 2)
7
Fondamenti di Informatica - Memoria cache, interrupt e DMA
Mappatura diretta
memoria
linea k
cache
blocco 0
linea k
linea k
blocco 1
linea k
blocco 2
..
.
© 2000 Pier Luca Montessoro (si veda la nota di copyright alla slide n. 2)
8
Fondamenti di Informatica - Memoria cache, interrupt e DMA
Mappatura diretta
IB
IL
TAG RAM
Linea per
linea,
contiene il
numero del
blocco da
cui
provengono
compar.
IW
DATA RAM
hit/miss
OE
SEL
Linea per
linea,
contiene
copia delle
parole di
memoria
alla CPU
© 2000 Pier Luca Montessoro (si veda la nota di copyright alla slide n. 2)
9
Fondamenti di Informatica - Memoria cache, interrupt e DMA
Cache completamente associativa
• Ogni linea di memoria può essere copiata in
qualsiasi posizione della cache
• CAM: Content Addressable Memory
• Ogni linea di memoria ha un proprio univoco
indirizzo
– la TAG RAM ha L posizioni di b+l bit
• Nota: a seguito di un cache miss, bisogna
individuare la linea da riscrivere nella cache
© 2000 Pier Luca Montessoro (si veda la nota di copyright alla slide n. 2)
10
Fondamenti di Informatica - Memoria cache, interrupt e DMA
Cache parzialmente associativa
• Detta anche associativa a più vie
• Prevede un funzionamento analogo alla
mappatura diretta, ma con più banchi di
cache in cui può trovarsi il dato
© 2000 Pier Luca Montessoro (si veda la nota di copyright alla slide n. 2)
11
Fondamenti di Informatica - Memoria cache, interrupt e DMA
Cache parzialmente associativa
IB
IL
IW
TAG RAM
compar.
DATA RAM
OE
compar.
SEL
OE
SEL
alla CPU
© 2000 Pier Luca Montessoro (si veda la nota di copyright alla slide n. 2)
12
Fondamenti di Informatica - Memoria cache, interrupt e DMA
Il problema della scrittura
• Fortunatamente le scritture sono meno
frequenti delle letture (si pensi all’instruction
fetch, alle scritture nei registri, ecc.)
• Due approcci
– scrittura immediata
si aggiorna la memoria centrale immediatamente (o
quasi)
riduzione delle prestazioni
– scrittura differita
si tiene traccia delle modifiche effettuate sul
contenuto della cache mediante un “dirty bit” per
ogni linea
© 2000 Pier Luca Montessoro (si veda la nota di copyright alla slide n. 2)
13
Fondamenti di Informatica - Memoria cache, interrupt e DMA
Il problema del rimpiazzamento
• Analogie con la paginazione (v. sistemi
operativi)
• Principali strategie:
– LRU (Least Recently Used)
– FIFO (First-In First-Out)
– RAND (a caso)
© 2000 Pier Luca Montessoro (si veda la nota di copyright alla slide n. 2)
14
Fondamenti di Informatica - Memoria cache, interrupt e DMA
Interrupt e DMA
© 2000 Pier Luca Montessoro (si veda la nota di copyright alla slide n. 2)
15
Fondamenti di Informatica - Memoria cache, interrupt e DMA
Il problema della gestionde dell’I/O
• Le operazioni di input/output sono
asincrone rispetto alla CPU
• Due approcci:
– polling
– interrupt
© 2000 Pier Luca Montessoro (si veda la nota di copyright alla slide n. 2)
16
Fondamenti di Informatica - Memoria cache, interrupt e DMA
Polling
• Il programma esegue un ciclo di attesa:
LOOP: INB R1, 0001
TSTI 0001
JMPNZ LOOP
• Limitata efficienza
• Incompatibile con il multitasking
© 2000 Pier Luca Montessoro (si veda la nota di copyright alla slide n. 2)
17
Fondamenti di Informatica - Memoria cache, interrupt e DMA
Interrupt
• Si basa su:
– segnale hardware che permette ai
dispositivi esterni di segnalare eventi alla
CPU
– routine di servizio dell’interrupt attivata
quando la CPU riceve la segnalazione
Memoria
CPU
0000
0001
0002
0003
0004
0005
0006
0007
Dispositivi di I/O
Control
Unit
Arithmetic
and Logic
Unit
PC
R0
IR
SP
.
.
.
flags
.
.
.
R1
R15
Address
bus
segnale di interrupt
Data
bus
Control
bus
© 2000 Pier Luca Montessoro (si veda la nota di copyright alla slide n. 2)
18
Fondamenti di Informatica - Memoria cache, interrupt e DMA
Esempio
programma
principale
programma
principale
programma
principale
CPU
routine di servizio
(invio di 1 carattere alla stampante)
stampante
stampa
stampa
stampa
La stampante segnala alla CPU di essere
pronta a ricevere un nuovo carattere
© 2000 Pier Luca Montessoro (si veda la nota di copyright alla slide n. 2)
stampa
t
19
Fondamenti di Informatica - Memoria cache, interrupt e DMA
Gestione dell’interrupt
• Salvare il program counter nello stack
• Salto alla routine di servizio
• Salvataggio dei registri e dello stato del
processore (la cosiddetta PSW - Processor
Status Word)
• Eseguire l’operazione di I/O
• Ripristinare lo stato dei registri e del
processore
• Ripristinare il valore del program counter
salvato
© 2000 Pier Luca Montessoro (si veda la nota di copyright alla slide n. 2)
20
Fondamenti di Informatica - Memoria cache, interrupt e DMA
Mascheramento dell’interrupt
• La chiamata ad una routine di interrupt
normalmente attiva un flip-flop che
disabilita la ricezione dell’interrupt
mentre si sta ancora servendo il
precedente
• Esiste però quasi sempre almeno una
linea di interrupt “non mascherabile” per
le emergenze (es. caduta di
alimentazione)
© 2000 Pier Luca Montessoro (si veda la nota di copyright alla slide n. 2)
21
Fondamenti di Informatica - Memoria cache, interrupt e DMA
Vettori di interrupt
• Permettono di gestire più periferiche
• Due approcci:
– linee di richieste indipendenti
– controller esterno
© 2000 Pier Luca Montessoro (si veda la nota di copyright alla slide n. 2)
22
Fondamenti di Informatica - Memoria cache, interrupt e DMA
..
.
address
register
CALL ROUTINE 0
CALL ROUTINE 1
CALL ROUTINE 2
arbitro di
priorità
Linee di richieste indipendenti
INT 0
INT 1
INT 2
..
.
INT N
CALL ROUTINE i
CPU
© 2000 Pier Luca Montessoro (si veda la nota di copyright alla slide n. 2)
23
Fondamenti di Informatica - Memoria cache, interrupt e DMA
Controller esterno
• I dispositivi vengono gestiti da un
sistema esterno:
– La CPU riceve il segnale di interrupt
– La CPU segnala al controller esterno che
sta eseguendo un ciclo di interruzione
– Il controller seleziona la periferica da
servire e trasmette alla CPU, mediante il
bus dati, il “selettore di interruzione”
(l’informazione di quale periferica è stata
selezionata)
© 2000 Pier Luca Montessoro (si veda la nota di copyright alla slide n. 2)
24
Fondamenti di Informatica - Memoria cache, interrupt e DMA
Direct Memory Access (DMA)
• Tecnica adatta per periferiche veloci
• Prevede il trasferimento diretto di dati
(eventualmente a blocchi) tra la
periferica e la memoria, senza eseguire
routine di interrupt
• Richiede un DMA controller esterno
© 2000 Pier Luca Montessoro (si veda la nota di copyright alla slide n. 2)
25