Nota di Copyright Memoria cache Memoria cache Miss e Hit Problemi

Fondamenti di Informatica
Fondamenti di Informatica - Memoria cache, interrupt e DMA
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.
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
© 2000 Pier Luca Montessoro (si veda la nota di copyright alla slide n. 2)
Fondamenti di Informatica - Memoria cache, interrupt e DMA
2
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
Memoria cache
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)
3
© 2000 Pier Luca Montessoro (si veda la nota di copyright alla slide n. 2)
Fondamenti di Informatica - Memoria cache, interrupt e DMA
Fondamenti di Informatica - Memoria cache, interrupt e DMA
Miss e Hit
Problemi
• La CPU genera l’indirizzo I e il comando
di lettura
• Se il dato non è nella cache: MISS
• 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)
– 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
4
© 2000 Pier Luca Montessoro (si veda la nota di copyright alla slide n. 2)
© 2000 Pier Luca Montessoro (si veda la nota di copyright alla slide n. 2)
6
1
Fondamenti di Informatica
Fondamenti di Informatica - Memoria cache, interrupt e DMA
Fondamenti di Informatica - Memoria cache, interrupt e DMA
Mappatura diretta
Mappatura diretta
memoria
• 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
linea k
blocco 0
cache
linea k
linea k
blocco 1
linea k
blocco 2
..
.
© 2000 Pier Luca Montessoro (si veda la nota di copyright alla slide n. 2)
7
© 2000 Pier Luca Montessoro (si veda la nota di copyright alla slide n. 2)
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.
DATA RAM
OE
SEL
Fondamenti di Informatica - Memoria cache, interrupt e DMA
Cache completamente associativa
IW
hit/miss
8
Linea per
linea,
contiene
copia delle
parole di
memoria
• 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
alla CPU
© 2000 Pier Luca Montessoro (si veda la nota di copyright alla slide n. 2)
9
© 2000 Pier Luca Montessoro (si veda la nota di copyright alla slide n. 2)
Fondamenti di Informatica - Memoria cache, interrupt e DMA
10
Fondamenti di Informatica - Memoria cache, interrupt e DMA
Cache parzialmente associativa
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
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)
11
© 2000 Pier Luca Montessoro (si veda la nota di copyright alla slide n. 2)
© 2000 Pier Luca Montessoro (si veda la nota di copyright alla slide n. 2)
12
2
Fondamenti di Informatica
Fondamenti di Informatica - Memoria cache, interrupt e DMA
Il problema della scrittura
Il problema del rimpiazzamento
• Fortunatamente le scritture sono meno
frequenti delle letture (si pensi all’instruction
fetch, alle scritture nei registri, ecc.)
• Due approcci
• Analogie con la paginazione (v. sistemi
operativi)
– 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)
Fondamenti di Informatica - Memoria cache, interrupt e DMA
13
• 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)
Fondamenti di Informatica - Memoria cache, interrupt e DMA
14
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:
Interrupt e DMA
© 2000 Pier Luca Montessoro (si veda la nota di copyright alla slide n. 2)
– polling
– interrupt
15
© 2000 Pier Luca Montessoro (si veda la nota di copyright alla slide n. 2)
Fondamenti di Informatica - Memoria cache, interrupt e DMA
16
Fondamenti di Informatica - Memoria cache, interrupt e DMA
Interrupt
Polling
• Si basa su:
• Il programma esegue un ciclo di attesa:
– segnale hardware che permette ai
dispositivi esterni di segnalare eventi alla
CPU
– routine di servizio dell’interrupt attivata
quando la CPU riceve la segnalazione
LOOP: INB R1, 0001
TSTI 0001
JMPNZ LOOP
Memoria
CPU
0000
0001
• Limitata efficienza
• Incompatibile con il multitasking
0006
0007
Dispositivi di I/O
Control
Unit
0002
0003
0004
0005
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)
17
© 2000 Pier Luca Montessoro (si veda la nota di copyright alla slide n. 2)
© 2000 Pier Luca Montessoro (si veda la nota di copyright alla slide n. 2)
18
3
Fondamenti di Informatica
Fondamenti di Informatica - Memoria cache, interrupt e DMA
Esempio
programma
principale
programma
principale
Gestione dell’interrupt
programma
principale
CPU
routine di servizio
(invio di 1 carattere alla stampante)
stampante
stampa
stampa
Fondamenti di Informatica - Memoria cache, interrupt e DMA
stampa
stampa
t
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)
19
• 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)
Fondamenti di Informatica - Memoria cache, interrupt e DMA
Mascheramento dell’interrupt
Fondamenti di Informatica - Memoria cache, interrupt e DMA
Vettori di 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
• 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)
Fondamenti di Informatica - Memoria cache, interrupt e DMA
address
register
..
.
arbitro di
priorità
Linee di richieste indipendenti
CALL ROUTINE 0
CALL ROUTINE 1
CALL ROUTINE 2
22
Fondamenti di Informatica - Memoria cache, interrupt e DMA
Controller esterno
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)
20
23
• 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)
© 2000 Pier Luca Montessoro (si veda la nota di copyright alla slide n. 2)
24
4
Fondamenti di Informatica
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
© 2000 Pier Luca Montessoro (si veda la nota di copyright alla slide n. 2)
5