Uniamo VM e CACHE. Physically addressed. Physically Addressed. Prestazioni. Ci sono varie alternative architetturali. Sono quelle piu semplici



Documenti analoghi
memoria virtuale protezione

La memoria virtuale. La gerarchia di memorie. Indirizzo fisico. Memoria virtuale. Architetture Avanzate dei Calcolatori. Valeria Cardellini

Calcolatori Elettronici. La memoria gerarchica La memoria virtuale

MEMORIA GERARCHIE DI MEMORIA

Le virtual machine e la memoria virtuale

Le virtual machine e la memoria virtuale

La memoria centrale (RAM)

Gerarchie di Memoria Andrea Gasparetto

Tipi classici di memoria. Obiettivo. Principi di localita. Gerarchia di memoria. Fornire illimitata memoria veloce. Static RAM. Problemi: Dynamic RAM

Strutture di Memoria 1

Memoria Virtuale. Anche la memoria principale ha una dimensione limitata. memoria principale (memoria fisica) memoria secondaria (memoria virtuale)

STRUTTURE DEI SISTEMI DI CALCOLO

9. Memoria Virtuale. 9. Memoria Virtuale. 9. Memoria Virtuale

Esempio: aggiungere j

Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A Pietro Frasca.

Calcolatori Elettronici A a.a. 2008/2009

CPU. Maurizio Palesi

Sistemi Operativi GESTIONE DELLA MEMORIA CENTRALE. D. Talia - UNICAL. Sistemi Operativi 6.1

Quinto Homework. Indicare il tempo necessario all'esecuzione del programma in caso di avvio e ritiro fuori ordine.

I Thread. I Thread. I due processi dovrebbero lavorare sullo stesso testo

Il processore. Il processore. Il processore. Il processore. Architettura dell elaboratore

= 0, 098 ms. Da cui si ricava t 2 medio

Il sistema di I/O. Hardware di I/O Interfacce di I/O Software di I/O. Introduzione

Gestione della memoria centrale

Il Sistema Operativo. C. Marrocco. Università degli Studi di Cassino

Architettura hardware

Gerarchie di memoria Divide et impera. Gerarchie di memoria La congettura 90/10. Gerarchie di memoria Schema concettuale

Con il termine Sistema operativo si fa riferimento all insieme dei moduli software di un sistema di elaborazione dati dedicati alla sua gestione.

Valutazione delle Prestazioni. Valutazione delle Prestazioni. Architetture dei Calcolatori (Lettere. Tempo di risposta e throughput

La memoria - generalità

Calcolatori Elettronici B a.a. 2008/2009

Lezione 2 Principi Fondamentali di SO Interrupt e Caching. Sommario

Laboratorio di Informatica

La Gestione delle risorse Renato Agati

Prestazioni CPU Corso di Calcolatori Elettronici A 2007/2008 Sito Web: Prof. G. Quarella prof@quarella.

La Memoria Cache. Informatica B. Daniele Loiacono

Sistema operativo: Gestione della memoria

1.4b: Hardware. (Memoria Centrale)

Un sistema operativo è un insieme di programmi che consentono ad un utente di

Corso di Sistemi di Elaborazione delle informazioni

Memoria Virtuale. Lezione 29 Sistemi Operativi

Il software. la parte contro cui si può solo imprecare. Funzioni principali del sistema operativo. (continua) Gestione della memoria principale

CALCOLATORI ELETTRONICI 29 giugno 2010

Varie tipologie di memoria

Il memory manager. Gestione della memoria centrale

L unità di controllo. Il processore: unità di controllo. Le macchine a stati finiti. Struttura della macchina a stati finiti

GESTIONE DELLA MEMORIA CENTRALE

CALCOLATORI ELETTRONICI 31 marzo 2015

Architettura dei calcolatori II parte Memorie

Sistemi Operativi Kernel

Capitolo 11 La memoria cache

Architettura di un sistema di calcolo

Capitolo Silberschatz

Sistemi Operativi. 5 Gestione della memoria

I componenti di un Sistema di elaborazione. Memoria centrale. È costituita da una serie di CHIP disposti su una scheda elettronica

memoria virtuale protezione

Gestione della memoria. Paginazione Segmentazione Segmentazione con paginazione

Corso di Sistemi Operativi Ingegneria Elettronica e Informatica prof. Rocco Aversa. Raccolta prove scritte. Prova scritta

Sistemi Operativi Gestione della Memoria (parte 2)

Introduzione. Classificazione di Flynn... 2 Macchine a pipeline... 3 Macchine vettoriali e Array Processor... 4 Macchine MIMD... 6

Linguaggi di programmazione

Laboratorio di Informatica

Gerachie di Memorie. Matteo Dominoni a.a. 2002/2003. Gerarchie di Memoria A.A. 2002/2003 1

Hazard sul controllo. Sommario

esercizi memoria virtuale maurizio pizzonia - sistemi operativi

Sistemi Operativi IMPLEMENTAZIONE DEL FILE SYSTEM. D. Talia - UNICAL. Sistemi Operativi 9.1

Migliorare le prestazioni di processori e memorie

Struttura del calcolatore

C. P. U. MEMORIA CENTRALE

Architettura del calcolatore

Organizzazione della memoria

Appunti di informatica. Lezione 6 anno accademico Mario Verdicchio

AXO. Operativi. Architettura dei Calcolatori e Sistemi. memoria virtuale

Esercizi su. Funzioni

La gestione di un calcolatore. Sistemi Operativi primo modulo Introduzione. Sistema operativo (2) Sistema operativo (1)

SISTEMI OPERATIVI. Gestione della memoria Domande di verifica. Luca Orrù Centro Multimediale Montiferru 18/06/2007

Architettura (10/9/2003) Pag. 1/6. Cognome e Nome (in stampatello):

Fondamenti di Informatica PROBLEMI E ALGORITMI. Fondamenti di Informatica - D. Talia - UNICAL 1

Calcolatori Elettronici

Sistemi Operativi IMPLEMENTAZIONE DEL FILE SYSTEM. Implementazione del File System. Struttura del File System. Implementazione

CALCOLATORI ELETTRONICI A cura di Luca Orrù. Lezione n.7. Il moltiplicatore binario e il ciclo di base di una CPU

Il Processore: i registri

ESERCIZIO 1 (b) Dove è memorizzato il numero del primo blocco del file? Insieme agli altri attributi del file, nella cartella che contiene il file.

Sistemi Operativi MECCANISMI E POLITICHE DI PROTEZIONE. D. Talia - UNICAL. Sistemi Operativi 13.1

MECCANISMI E POLITICHE DI PROTEZIONE 13.1

Input/Output. Moduli di Input/ Output. gestiscono quantità di dati differenti a velocità diverse in formati diversi. n Grande varietà di periferiche

Architetture Avanzate dei Calcolatori. Valeria Cardellini. Divario delle prestazioni processore- memoria

Lezione 1: L architettura LC-3 Laboratorio di Elementi di Architettura e Sistemi Operativi 10 Marzo 2014

Architettura hw. La memoria e la cpu

Esame di INFORMATICA

Architettura dei computer

Automatizzare i compiti ripetitivi. I file batch. File batch (1) File batch (2) Visualizzazione (2) Visualizzazione

Gestione della memoria

Coordinazione Distribuita

Lezione n.19 Processori RISC e CISC

LABORATORIO DI SISTEMI

DMA Accesso Diretto alla Memoria

PARTE 4 La Macchina Software

INFORMATICA. Il Sistema Operativo. di Roberta Molinari

Ing. Paolo Domenici PREFAZIONE

Transcript:

Uniamo VM e CACHE Physically addressed Ci sono varie alternative architetturali physically addressed virtually addressed virtually indexed Sono quelle piu semplici un dato puo essere in cache solo se e contenuto in memoria centrale l indirizzo da cui si parte (index e tag) e quello fisico 17 18 Virtual address Physically Addressed 31 30 29 28 27 15 14 13 12 11 10 9 8 3210 Virtual page number Page offset Prestazioni Anche se non sono l obiettivo principale, e meglio tenerne conto Physical address Translation 29 28 27 15 14 13 12 Physical page number Tag 11 10 9 8 3210 Page offset Index La Page Table e contenuta in memoria Quando si vuole accedere ad una cella di memoria, prima di tutto bisogna accedere al suo indirizzo fisico quindi PRIMA di guardare se c e qualcosa nella cache, si accede alla memoria per sapere dove guardare!!! 19

Introduciamo un nuovo livello di cache per la traduzione degli indirizzi Translation Lookaside Buffer E una vera e propria cache anche se molto piccola quindi spesso: Completamente associativa Tag e quindi il numero di pagina virtuale Il dato e il numero di pagina fisico Singola parola Yes PT Hit Page Fault No Cache miss stall Virtual address access hit? No Trytoreaddata from cache Cache hit? VM Cache Possibile? Gravita' Hit Hit Hit Hit Hit Miss (S) (S) 0 1 Hit Miss Hit N - Hit Miss Miss N - Miss Hit Hit S 1 Miss Hit Miss S 2 Miss Miss Hit N - Miss Miss Miss S 3 No Yes Yes Write? Deliver data to the CPU Physical address Yes Write data into cache, update the tag, and put the data and the address into the write buffer 21 22 Virtual address 31 30 29 15 14 13 12 11 10 9 8 3 2 1 0 Virtual pagenumber Page offset 12 MIPS R00 caratteristiche hit Valid Dirty Tag Physical page number Physical pagenumber Page offset Physical address Physical address tag Cache index 16 14 Byte offset 2 Perche puo essere piccola? Altissima localita temporale (spaziale) TEMPORALE se vista a livello di pagine: basta accedere non alla stessa cella, ma a celle appartenenti ad una stessa pagina SPAZIALE se vista a livello di indirizzi Valid Tag Data Cache 32 Cache hit Data 23 24

Virtually addressed Virtually addressed Cache Cache hit Virtual address Virtual page number Pageoffset address tag Cache index 16 14 Valid Tag Data 32 Data hit ValidDirty Byte offset 2 Tag 12 Physical page number Physical page number Page offset PRO: non si deve accedere alla memoria prima di guardare in cache CONTRO: in ambiente con piu programmi in esecuzione: Indirizzi virtuali sono comuni svuotare cache ad ogni context switch aggiungere al tag. Il PID del processo Aliasing di memoria condivisa 25 26 Esercizio Cioe`... Simulare l accesso a e cache dato il seguente programma Ipotizzare una di 2 celle, pagine di 4KB e una RAM fisica grande 16Kb una cache di 512Byte SW-DM Indirizzo virtuale 32 bit indirizzo fisico 32 bit Ho 4 pagine fisiche La page table e` memorizzata nella pagina 0 Ho 2 righe nella inizialmente vuote Ho 256Byte di cache blocchi di 32 bit 64 righe PageTable 0 1 2 3 27 28

Frammento di codice Indirizzamento fisico 16 lw $1, 4100($0) lw $2, 10000($0) 24 add $3, $1, $2 28 sw $3, 30000($0) 30 sub $3, $1, $2 34 sw $3, 41($0) Ricaviamo accessi a memoria 16 4100 10000 24 28 30000 30 34 41 CACHE Page Table RAM Traduco indirizzo virtuale in fisico tramite e PageTable (se necessario) accedo alla cache usando indirizzo fisico accedo a memoria usando indirizzo fisico 29 30 IV VP Offset PT PF IF Tag Index CACHE 16 0 16 M M 1 4112 16 4 M Carico in pagina fisica 1 pagina virtuale 0 MemorizzotraduzioneinPagetable Memorizzotraduzionein 4100 1 4 M M 2 8196 32 1 M Carico in pagina fisica 2 pagina virtuale 1 MemorizzotraduzioneinPagetable Memorizzotraduzionein 0 H - 1 4116 16 5 M TrovotraduzionediPV0in 10000 2 1808 M M 3 14096 55 4 M Carico in pagina fisica 3 pagina virtuale 2 conflitto, sostituisco MemorizzotraduzioneinPagetable Memorizzotraduzionein,ma ho bisogno di liberare una riga (LRU) 24 0 24 H - 1 41 16 6 M TrovotraduzionediPV0in 28 0 28 H - 1 4124 16 7 M TrovotraduzionediPV0in 30000 7 1328 M M 3 13616 53 12 M Conflitto scarico pagina vecchia: 2 devo svuotare righe cache relative (index 1) Carico in pagina fisica 2 pagina virtuale 7 MemorizzotraduzioneinPagetable Memorizzotraduzionein,ma ho bisogno di liberare una riga (LRU) CACHE Indirizzamento virtuale Page Table RAM accedo alla cache usando indirizzo virtuale Traduco indirizzo virtuale in fisico tramite e PageTable (se necessario) accedo a memoria (se necessario) usando indirizzo fisico 31 32

IV Tag Index CACHE VP Offset LB PT PF IF 16 0 4 M 0 16 M M 1 4112 Carico in pagina fisica 1 pagina virtuale 0 Memorizzo traduzione in Page table Memorizzo traduzione in 4100 16 1 M 1 4 M M 2 8196 Carico in pagina fisica 2 pagina virtuale 1 Memorizzo traduzione in Page table Memorizzo traduzione in 0 5 M 0 H - 1 4116 Trovo traduzione di PV0 in 10000 39 4 M 2 1808 M M 3 14096 Carico in pagina fisica 3 pagina virtuale 2 Memorizzo traduzione in Page table Memorizzo traduzione in, ma ho bisogno di liberare una riga (LRU) 24 0 6 M 0 24 H - 1 41 Trovo traduzione di PV0 in 28 0 7 M 0 28 H - 1 4124 Trovo traduzione di PV0 in 30000 117 12 M 7 1328 M M 3 13616 Conflitto scarico pagina vecchia: 2 NONsonoobbligatoasvuotarerighecacherelative(index1) Carico in pagina fisica 2 pagina virtuale 7 Memorizzo traduzione in Page table Memorizzo traduzione in, ma ho bisogno di liberare una riga (LRU) Cache Cache hit Virtually indexed Virtual address Virtual page number Pageoffset Valid Tag Data 32 Data 12 ValidDirty Tag Physical page number hit Physical page number Page offset 33 34 Virtually indexed Dimensione pagina grande? PRO: in cache sono indirizzi fisici e molto veloce e quindi il confronto tra i TAG e quasi senza rallentamenti CONTRO: viene legata dimensione cache a dimensione della pagina Multiword? no Associative? Si, ma... PRO indicizzazione virtuale riduzione dimensione Page Table ammortizzazione swap CONTRO: possibile peggior sfruttamento memoria rallentamento processi piccoli 35 36

Protezione Memoria Come realizzarla? E la seconda funzione della memoria virtuale Piu processi (programmi) possono condividere la memoria centrale del calcolatore senza poter leggere e scrivere dati di altri programmi eccezione: condivisione richiesta e consapevole di una pagina di memoria ma con diritti di accesso organizzare la page table in maniera adeguata la mappatura su pagine fisiche deve essere tale che non ci siano possibili sovrapposizioni rendere non accessibile ai programmi normali tutte le page table le page table sono contenute in memoria centrale 38 39 Page table in memoria Elementi critici Sono nello spazio di indirizzamento virtuale del sistema operativo quindi sono accessibili da SO ma non da altri programmi ci stiamo mangiando la coda? affinche un programma non possa modificare le page table il Page Table Register indica l inizio della page table corrente... la contiene diverse traduzioni gia effettuate si possono forzare traduzioni Se si ha accesso a tali componenti, non si puo garantire nulla 40 41

SOLUZIONE L architettura della macchina (HW) prevede meccanismi per assicurare che solo un programma (il sistema operativo) abbia accesso a tali componenti identificazione di due modi di funzionamento USER e SUPERVISOR set di istruzioni riservato a SUPERVISOR scrittura degli elementi critici visti prima passaggio sicuro a modo SUPERVISOR meccanismo delle eccezioni system calls (eccezioni sincrone) MISS Abbiamo visto nello schema che comporta lettura della Page table per controllare esistenza pagina in memoria e se Page table HIT -> aggiornamento del se Page table MISS -> generazione PAGE Faults ma come facciamo a leggere Page Table? Una possibilita : gestire il MISS in HW... Seconda possibilita (piu comune): viene generata una eccezione 42 43 Gestione SW del MISS PAGE FAULTS L hw solleva una eccezione: scrive dentro a EPC (Exception Program Counter) l indirizzo della istruzione in esecuzione scrive dentro al registro Cause il tipo di eccezione passa in modosupervisor passa il controllo ad una specifica istruzione del sistema operativo Il sistema operativo legge Page Table Viene gestito sempre in SW E una operazione lunga perche c e accesso al disco Il SO salva tutte le informazioni di stato del processo contenuto dei registri normali page table register EPC e Cause 44 45

PAGE FAULTS... Page Faults... Deve essere individuato indirizzo virtuale che ha generato l eccezione: EPC contiene l indirizzo dell ISTRUZIONE durante la quale... se l errore e stato generato dalla lettura dell istruzione allora e EPC altrimenti, va cercato tra gli argomenti specificati nella istruzione di indirizzo EPC Cerca nella Page Table dove andare a trovare (nel disco) la pagina contenente l indirizzo virtuale richiesto Sceglie (se necessario) una pagina fisica di memoria da sostituire per fare posto alla nuova se modificata, deve scaricarla prima su disco 46 47 Page Faults... Legge la pagina dal disco alla memoria cioe fa partire la lettura DMA il processo a questo punto risulta sospeso in attesa del completamento dell operazione di caricamento il processore e libero Viene scelto il processo da eseguire tra i processi sospesi (ma pronti) introduce possibili complicazioni es. page fault in concorrenza per spazio fisico Ritorno da page fault Quando il trasferimento della pagina dal disco e completato, viene segnalato al sistema operativo Mette il processo tra i processi sospesi (ma pronti) eventualmente gli da il controllo viene ripristinato il cotenuto di tutti i registri viene rimesso il processore in modo user Diverse politiche di scheduling dei processi 48 49

Ritorno da page fault... Ripartenza istruzione Il PC continene l indirizzo dell istruzione che aveva causato il PF (salvato in EPC) I caso: eccezione su caricamento istruzione il processo ricomincia l esecuzione II caso: eccezione su accesso a dati il processo si era sospeso in mezzo ad una operazione bisogna garantire che si possa ricominciare l esecuzione dell istruzione da capo rendere l istruzione restartable In MIPS e facile eventuali cambiamenti di stato della macchina avvengono sempre nell ultima fase dell esecuzione dell istruzione scrittura di un registro scrittura di una cella di memoria basta garantire di non scrivere dati durante il fallimento dell istruzione deasserire i segnali write in presenza di eccezione 50 51 Protezione condivisione 1: Esercizio 7.27 (7.13 it) Alcune volte e necessario condividere spazio in memoria bit di accesso in scrittura a pagina nuovo tipo di eccezione - violazione di protezione tutti i bit di controllo (modifica, protezione, etc.) devono essere presenti anche nella Date le seguenti macchine: M1: cache DM SW miss rate: Istruz. 4%, dati 8% M2: cache DM MW (4 parole) miss rate: Istruz. 2%, dati 5% M3: cache 2-way MW (4 parole) miss rate: Istruz. 2%, dati 4% 50% istruzioni si riferisce a dati in memoria MISS PENALTY = 6 + numero parole nel blocco Quale macchina spende piu cicli di clock per Miss Rate? 52 55

2: Esercizio 7.28 (7.14 it) 3: Esercizio 7.32 (7.9 it) Date le seguenti frequenze di clock: M1: 10 ns M2: 10 ns M3: 12 ns Assunto un CPI di 2.0 in assenza di miss per tutte e tre le macchine. Confrontare le velocita delle tre macchine Date le seguenti caratteristiche: indirizzamento virtuale a 40 bit indirizzamento fisico a 36 bit dimensione pagina 16KB bit aggiuntivi per ogni entry della page tabel: uso, validita, modifica, protezione Determinare dimensione massima della page table per un processo 56 57 4: 7.29 Data il seguente programma: int i,j,c,stride,array[256]; for(i=0;i<10000; i++) for(j=0;j<256;j=j+stride) c=array[j]+5; Considerando solo gli accessi all array e che un intero occupi una parola (4 byte) date le seguenti macchine: M1: cache 256 byte DM MW (16 byte) M2: cache 256 byte 2-way MW (16 byte) quale e il miss rate se stride = 132? quale e il miss rate se stride = 131? 5: Esercizio 7.38 Facendo riferimento alla divisione data per i MISS: obbligatori di capacita di conflitto Dire come vengono influenzati da: riduzione della dimensione del programma per miglioramento compilatore aumento frequenza clock aumento grado di associativita aumento dimensione blocco 58 59

A: B: 6: Quale e migliore e perche? for (j=0; j<000; j++) for (i=0; i<000; i++) x[i][j] = x[i][j] + 1; for (i=0; i<000; i++) for (j=0; j<000; j++) x[i][j] = x[i][j] + 1; si consideri il risultato di una compilazione senza ottimizzazioni 60