Sistemi di Elaborazione -...

25
Memoria Virtuale Le memorie cache forniscono un accesso veloce ai blocchi di memoria usati più di recente La memoria virtuale fornisce un accesso veloce ai dati sulle memorie di massa usati più di recente. Storicamente, la memoria virtuale serviva a consentire una condivisione efficiente e sicura della memoria principale per più programmi, trasparente al programmatore (protezione)

Transcript of Sistemi di Elaborazione -...

Page 1: Sistemi di Elaborazione - ISTI-CNRpomino.isti.cnr.it/~khast/wp-content/uploads/2016/05/TLC_11.pdf · TLB Miss + Page Table Miss • la pagina non è presente in memoria, cioè l’ingresso

Memoria Virtuale• Le memorie cache forniscono un accesso veloce ai

blocchi di memoria usati più di recente • La memoria virtuale fornisce un accesso veloce ai dati

sulle memorie di massa usati più di recente. • Storicamente, la memoria virtuale serviva a consentire

una condivisione efficiente e sicura della memoria principale per più programmi, trasparente al programmatore (protezione)

Page 2: Sistemi di Elaborazione - ISTI-CNRpomino.isti.cnr.it/~khast/wp-content/uploads/2016/05/TLC_11.pdf · TLB Miss + Page Table Miss • la pagina non è presente in memoria, cioè l’ingresso

0 232

RAM Frame Buffer Devices ROM

Spazio degli indirizzi fisici

0 232

Processo in esecuzione Sistema Operativo

Spazio degli indirizzi virtuali

0 232

Processo in background Sistema Operativo

Page 3: Sistemi di Elaborazione - ISTI-CNRpomino.isti.cnr.it/~khast/wp-content/uploads/2016/05/TLC_11.pdf · TLB Miss + Page Table Miss • la pagina non è presente in memoria, cioè l’ingresso

Terminologia• Un blocco di memoria virtuale si chiama pagina • Una cache miss si chiama page fault

Page 4: Sistemi di Elaborazione - ISTI-CNRpomino.isti.cnr.it/~khast/wp-content/uploads/2016/05/TLC_11.pdf · TLB Miss + Page Table Miss • la pagina non è presente in memoria, cioè l’ingresso

Traduzione dell’indirizzo

Page 5: Sistemi di Elaborazione - ISTI-CNRpomino.isti.cnr.it/~khast/wp-content/uploads/2016/05/TLC_11.pdf · TLB Miss + Page Table Miss • la pagina non è presente in memoria, cioè l’ingresso

Differenze progettuali• Un page fault ha una penalità di milioni di cicli di clock • Le pagine devono essere sufficientemente grandi

• Ammortizzare il lungo tempo di accesso • Tipicamente da 4 KB a 16 KB

• Tecniche full associative da preferire • Minore frequenza di page fault

• Il rimpiazzamento delle pagine è gestito via software • Tempo di accesso al disco dominante • Permette l’uso di algoritmi più intelligenti

• Write-through improponibile, bisogna usare il write-back

Page 6: Sistemi di Elaborazione - ISTI-CNRpomino.isti.cnr.it/~khast/wp-content/uploads/2016/05/TLC_11.pdf · TLB Miss + Page Table Miss • la pagina non è presente in memoria, cioè l’ingresso

Tabella delle pagine• La ricerca esaustiva per schemi completamente

associativi è impraticabile • Ogni processo ha un “catalogo” in memoria principale

che indicizza la propria memoria fisica tramite il numero di pagina virtuale: viene chiamato tabella delle pagine (page table)

• La tabella delle pagine di un processo è memorizzata a un certo indirizzo fisico, determinato da un registro “speciale” del processore, il page table register (PTR)

• Ogni pagina virtuale può corrispondere a qualsiasi pagina fisica

Page 7: Sistemi di Elaborazione - ISTI-CNRpomino.isti.cnr.it/~khast/wp-content/uploads/2016/05/TLC_11.pdf · TLB Miss + Page Table Miss • la pagina non è presente in memoria, cioè l’ingresso

Tabella delle pagine

Page 8: Sistemi di Elaborazione - ISTI-CNRpomino.isti.cnr.it/~khast/wp-content/uploads/2016/05/TLC_11.pdf · TLB Miss + Page Table Miss • la pagina non è presente in memoria, cioè l’ingresso

Page fault• Quando si verifica un page fault, si genera un’eccezione.

1. Il SO prende il controllo del processore 2. Identifica la pagina mancante dalla memoria 3. Cerca “da qualche parte” la pagina mancante 4. Carica in memoria principale la pagina mancante,

eventualmente rimpiazzando una pagina esistente. • Dove stanno le pagine mancanti?

• Quando un processo viene caricato in memoria, il SO “riserva” su disco spazio sufficiente a memorizzare tutte le pagine di un processo (spazio di swap).

• Il SO memorizza l’indice delle pagine nello spazio di swap (page table o struttura dati analoga)

Page 9: Sistemi di Elaborazione - ISTI-CNRpomino.isti.cnr.it/~khast/wp-content/uploads/2016/05/TLC_11.pdf · TLB Miss + Page Table Miss • la pagina non è presente in memoria, cioè l’ingresso

Spazio di swap

Page 10: Sistemi di Elaborazione - ISTI-CNRpomino.isti.cnr.it/~khast/wp-content/uploads/2016/05/TLC_11.pdf · TLB Miss + Page Table Miss • la pagina non è presente in memoria, cioè l’ingresso

Dettagli • Spesso, oltre al valid bit, sono aggiunti altri bit associati alla pagine

• dirty bit • serve a sapere se una pagina è stata modificata. • grazie a questo bit è possibile sapere se la pagina deve essere

ricopiata sul livello di memoria inferiore (disco). • il bit è necessario in quanto usiamo una politica write-back

• reference bit • serve a sapere se, in un certo lasso di tempo, una certa pagina è

stata riferita. • bit azzerato periodicamente, settato ogni volta che una pagina è

riferita. • il reference bit è usato per implementare una politica di

rimpiazzo delle pagine di tipo LRU (Least Recently Used)

Page 11: Sistemi di Elaborazione - ISTI-CNRpomino.isti.cnr.it/~khast/wp-content/uploads/2016/05/TLC_11.pdf · TLB Miss + Page Table Miss • la pagina non è presente in memoria, cioè l’ingresso

Problemi• Architettura a 32 bit,

con pagine di 4KB • 12 bit per offset

di pagina • 20 bit per

identificatore di pagina

Virtual AddressIdentificatore Offset

Tabella delle pagine

Riga

Pagina fisica

Indirizzo fisico

PTR

• La tabella delle pagine è salvata in memoria • 1’048’576 pagine diverse • Se una riga della tabella delle pagine è 4 byte, la tabella delle pagine

occupa 4 MB • Ogni processo ha la sua tabella delle pagine

• 256 processi occupano 1 GB di memoria solo per le tabelle delle pagine

Page 12: Sistemi di Elaborazione - ISTI-CNRpomino.isti.cnr.it/~khast/wp-content/uploads/2016/05/TLC_11.pdf · TLB Miss + Page Table Miss • la pagina non è presente in memoria, cioè l’ingresso

Cache di traduzione• Un accesso in memoria del programma costa come

minimo “doppio”: • un accesso alla tabella delle pagine in memoria • un accesso alla memoria fisica

• Località spaziale e temporale degli indirizzi • La traduzione degli indirizzi viene solitamente fatta in

hardware, da un componente denominato MMU (Memory Management Unit), tramite l’uso di una piccola memoria cache chiamata TLB (Translation Lookaside Buffer)

• dsd

Page 13: Sistemi di Elaborazione - ISTI-CNRpomino.isti.cnr.it/~khast/wp-content/uploads/2016/05/TLC_11.pdf · TLB Miss + Page Table Miss • la pagina non è presente in memoria, cioè l’ingresso

Esempio di TLB

Page 14: Sistemi di Elaborazione - ISTI-CNRpomino.isti.cnr.it/~khast/wp-content/uploads/2016/05/TLC_11.pdf · TLB Miss + Page Table Miss • la pagina non è presente in memoria, cioè l’ingresso

TLB + Cache (FastMATH)• TLB completamente

associativo

• Pagine da 4 KB

• Cache diretta, acceduta con l’indirizzo fisico

• Dimensione del blocco della cache: 26 = 64 bytes

Page 15: Sistemi di Elaborazione - ISTI-CNRpomino.isti.cnr.it/~khast/wp-content/uploads/2016/05/TLC_11.pdf · TLB Miss + Page Table Miss • la pagina non è presente in memoria, cioè l’ingresso

FastMATH Read-Write

Page 16: Sistemi di Elaborazione - ISTI-CNRpomino.isti.cnr.it/~khast/wp-content/uploads/2016/05/TLC_11.pdf · TLB Miss + Page Table Miss • la pagina non è presente in memoria, cioè l’ingresso

Modalità di esecuzione• Un processo in user mode:

• Non può modificare il PTR • Non può modificare le entry della TLB • Non può settare direttamente il bit che fissa la modalità di esecuzione

• Un processo in kernel mode: • Può fare tutto, come se fosse parte del SO • Esistono istruzioni speciali, eseguibili SOLO in kernel mode, per effettuare

le operazioni di cui sopra • Passaggio user → kernel tramite chiamate di sistema (syscall)

• Salva il PC corrente in EPC (Exception Program Counter) • L’istruzione ERET ripristina la modalità di esecuzione user e copia EPC in

PC • Le routine corrispondenti alle varie syscall sono prefissate, e fanno parte del

SO (l’utente non può crearsi da solo una sua syscall e invocarla)

Page 17: Sistemi di Elaborazione - ISTI-CNRpomino.isti.cnr.it/~khast/wp-content/uploads/2016/05/TLC_11.pdf · TLB Miss + Page Table Miss • la pagina non è presente in memoria, cioè l’ingresso

Meccanismi di protezione• I processi utente non possono modificare la propria

tabella delle pagine • Il sistema operativo deve poter modificare la tabella delle

pagine • Due processi possono condividere informazioni tramite

l’intermediazione del sistema operativo

Page 18: Sistemi di Elaborazione - ISTI-CNRpomino.isti.cnr.it/~khast/wp-content/uploads/2016/05/TLC_11.pdf · TLB Miss + Page Table Miss • la pagina non è presente in memoria, cioè l’ingresso

Tipologia di miss• Nelle varie gerarchie di memoria, i miss si possono verificare per cause diverse

• Modello delle tre C per classificare i miss • Ci riferiremo al livello cache, anche se il modello si applica anche agli altri livelli della

gerarchia di memoria • Tipi di miss

• Miss Certi (Compulsory) • miss di partenza a freddo, che si verifica quando il blocco deve essere portato

nella cache per la prima volta • Miss per Capacità

• la cache non è in grado di contenere tutti i blocchi necessari all’esecuzione del programma

• Miss per Conflitti• due blocchi sono in conflitto per una certa posizione • può verificarsi anche se la cache NON è piena • questo tipo di miss non si verifica se abbiamo una cache completamente

associativa

Page 19: Sistemi di Elaborazione - ISTI-CNRpomino.isti.cnr.it/~khast/wp-content/uploads/2016/05/TLC_11.pdf · TLB Miss + Page Table Miss • la pagina non è presente in memoria, cioè l’ingresso

Memoria virtuale e miss• Per quanto riguarda la memoria virtuale, il SO viene

invocato per gestire due tipi di eccezioni • TLB miss (anche se la TLB miss può essere gestita in

hardware) • Page fault • prima della fine del ciclo di clock in cui si accede alla

memoria • In risposta ad un’eccezione/interruzione

• il processore salta alla routine di gestione del SO • effettua anche un passaggio di modalità di esecuzione

user mode → kernel mode

Page 20: Sistemi di Elaborazione - ISTI-CNRpomino.isti.cnr.it/~khast/wp-content/uploads/2016/05/TLC_11.pdf · TLB Miss + Page Table Miss • la pagina non è presente in memoria, cioè l’ingresso

Miss

Page 21: Sistemi di Elaborazione - ISTI-CNRpomino.isti.cnr.it/~khast/wp-content/uploads/2016/05/TLC_11.pdf · TLB Miss + Page Table Miss • la pagina non è presente in memoria, cioè l’ingresso

TLB Miss + Page Table Hit• la pagina è presente in memoria • l’eccezione può essere risolta tramite la page table • l’istruzione che ha provocato l’eccezione deve essere rieseguita

Page 22: Sistemi di Elaborazione - ISTI-CNRpomino.isti.cnr.it/~khast/wp-content/uploads/2016/05/TLC_11.pdf · TLB Miss + Page Table Miss • la pagina non è presente in memoria, cioè l’ingresso

TLB Miss + Page Table Miss• la pagina non è presente in memoria, cioè l’ingresso

corrispondente della Tabella delle Pagine è NOT VALID • La pagina deve essere portata in memoria dal disco

• operazione di I/O dell’ordine di ms • è impensabile che la CPU rimanga in stallo, attendendo che il

page fault venga risolto • Context switch

• salvataggio dello stato (contesto) del programma (processo) in esecuzione

• Completamento page fault • processo bloccato diventa pronto, ed eventualmente riprende

l’esecuzione

Page 23: Sistemi di Elaborazione - ISTI-CNRpomino.isti.cnr.it/~khast/wp-content/uploads/2016/05/TLC_11.pdf · TLB Miss + Page Table Miss • la pagina non è presente in memoria, cioè l’ingresso

Context Switch• Salvataggio dello stato (contesto) del programma

(processo) in esecuzione • Fanno ad esempio parte dello stato i registri generali, e

quelli speciali come il registro della Tabella delle Pagine • Il processo che ha provocato l’eccezione diventa bloccato

• Si ripristina lo stato di un altro processo pronto per essere eseguito

• Si riavvia il nuovo processo • Durante uno switch le eccezioni sono disabilitate

Page 24: Sistemi di Elaborazione - ISTI-CNRpomino.isti.cnr.it/~khast/wp-content/uploads/2016/05/TLC_11.pdf · TLB Miss + Page Table Miss • la pagina non è presente in memoria, cioè l’ingresso

TLB di Cortex-A8 ARM e Core i7 Intel

Page 25: Sistemi di Elaborazione - ISTI-CNRpomino.isti.cnr.it/~khast/wp-content/uploads/2016/05/TLC_11.pdf · TLB Miss + Page Table Miss • la pagina non è presente in memoria, cioè l’ingresso

Cache di Cortex-A8 ARM e Core i7 Intel