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



Documenti analoghi
La memoria virtuale. Calcolatori Elettronici. Valeria Cardellini Rielaborate da Salvatore Tucci

memoria virtuale protezione

Calcolatori Elettronici. La memoria gerarchica La memoria virtuale

Sistemi Operativi. 5 Gestione della memoria

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

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

Gestione della memoria. Paginazione Segmentazione Segmentazione con paginazione

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

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

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

Strutture di Memoria 1

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

Sistema operativo: Gestione della memoria

La Memoria Virtuale Valeria Cardellini

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

Varie tipologie di memoria

La Gestione delle risorse Renato Agati

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

La memoria - generalità

MEMORIA GERARCHIE DI MEMORIA

Capitolo 11 La memoria cache

GESTIONE DELLA MEMORIA CENTRALE

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

Il memory manager. Gestione della memoria centrale

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

Capitolo Silberschatz

Architettura hardware

Le virtual machine e la memoria virtuale

HEX Bin HEX Bin HEX Bin HEX Bin C D A 1010 E B 1011 F 1111

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

Gerarchie di Memoria Andrea Gasparetto

Memoria Virtuale. Lezione 29 Sistemi Operativi

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

Gestione della Memoria

Gestione della memoria centrale

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

Laboratorio di Informatica

12. Implementazione di un File System Struttura a livelli Allocazione contigua

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

STRUTTURE DEI SISTEMI DI CALCOLO

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

MECCANISMI E POLITICHE DI PROTEZIONE 13.1

Memoria virtuale. Riassumendo Meccanismo di traduzione indirizzi con tabella TLB Ogni processo ha la sua PMT Politiche della memoria virtuale E

Corso di Informatica

Le virtual machine e la memoria virtuale

La memoria centrale (RAM)

Organizzazione della memoria

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

La memoria. I sistemi di memoria di un elaboratore possono essere suddivisi in: Memoria interna al processore Memoria principale Memoria secondaria

Materiali per il modulo 1 ECDL. Autore: M. Lanino

Sistemi Operativi 1. Mattia Monga. a.a. 2008/09. Dip. di Informatica e Comunicazione Università degli Studi di Milano, Italia mattia.monga@unimi.

Architettura dei calcolatori II parte Memorie

Tesina per l esame di Sistemi Operativi a cura di Giuseppe Montano. Prof. Aldo Franco Dragoni

Gestione della memoria centrale

Esercitazione E6 Esercizi d esame

Le gerarchie di memoria: memoria cache

Calcolatori Elettronici

Il contesto! Gestione della Memoria! Reg. di Base e reg. Limite! Associazione tra dati/istruzioni e memoria!

Memoria secondaria. Architettura dell elaboratore. Memoria secondaria. Memoria secondaria. Memoria secondaria

Lezione 2 Principi Fondamentali di SO Interrupt e Caching. Sommario

Software relazione. Software di base Software applicativo. Hardware. Bios. Sistema operativo. Programmi applicativi

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

Architettura del calcolatore

1. Spiegare le differenze fra le seguenti modalità di binding degli indirizzi:

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

Calcolatori Elettronici

Desiderata: memoria capiente e veloce. Connessioni tra livelli di memoria. Memoria cache, struttura. Tecniche impiegate. Ad ogni accesso alla memoria

Approccio stratificato

Sistemi Operativi Gestione della Memoria (parte 2)

SCHEDULING DEI PROCESSI

Esame di INFORMATICA

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

Introduzione alle tecnologie informatiche. Strumenti mentali per il futuro

Sistemi Operativi. Interfaccia del File System FILE SYSTEM : INTERFACCIA. Concetto di File. Metodi di Accesso. Struttura delle Directory

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

Calcolatori Elettronici A a.a. 2008/2009

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

File system II. Sistemi Operativi Lez. 20

Capitolo Quarto...2 Le direttive di assemblaggio di ASM Premessa Program Location Counter e direttiva ORG

Università degli Studi di Padova Dipartimento di Matematica. - Corso di Laurea in Informatica

Architettura dei computer

La Memoria Cache. Informatica B. Daniele Loiacono

La Memoria Virtuale Ottimizzazione della memoria centrale

C. P. U. MEMORIA CENTRALE

Organizzazione della memoria principale Il bus

Sistemi Operativi Il Sistema Operativo Windows (parte 3)

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

Esercitazione E2 Memoria virtuale

Il Sistema Operativo

1.4b: Hardware. (Memoria Centrale)

Gerarchia di memorie

Corso di Sistemi di Elaborazione delle informazioni

Sistemi Operativi Kernel

Calcolatori Elettronici A a.a. 2008/2009

Il Software. Il software del PC. Il BIOS

Il Software e Il Sistema Operativo. Prof. Francesco Accarino IIS Altiero Spinelli A.S. 09/10

Migliorare le prestazioni di processori e memorie

Introduzione. Il principio di localizzazione... 2 Organizzazioni delle memorie cache... 4 Gestione delle scritture in una cache...

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

L informatica INTRODUZIONE. L informatica. Tassonomia: criteri. È la disciplina scientifica che studia

Transcript:

La memoria Architetture Avanzate dei Calcolatori Valeria Cardellini Nelle lezioni precedenti { Memoria La gerarchia di memorie Registri Istruzioni, operandi L Cache Blocchi L2 Cache Blocchi Memoria Pagine Disco File Nastro Più veloce Più grande AAC - Valeria Cardellini, A.A. 26/7 Memoria Memoria Uso della memoria principale come una cache della memoria secondaria (disco) Permette di separare i concetti di Spazio di indirizzamento di un processo Condivisione della memoria tra più processi, garantendo la protezione (un processo non scrive/legge la porzione di memoria di un altro processo) Dimensione effettiva della memoria fisica Si ha l illusione di avere a disposizione più memoria fisica Solo le parti attive dei programmi sono in memoria E possibile eseguire più programmi, con codici e dati di dimensioni maggiori della memoria fisica Indirizzo fisico Indirizzo fisico (o reale) E l indirizzo della memoria fisica Spazio di indirizzamento fisico (o reale) E il numero di byte (o parole) indirizzabili fisicamente Dipende esclusivamente dal numero di bit dell indirizzo fisico Dimensione della memoria fisica Numero di byte (o di parole) che la costituiscono AAC - Valeria Cardellini, A.A. 26/7 2 AAC - Valeria Cardellini, A.A. 26/7 3

Indirizzo Indirizzo (o logico) E l indirizzo usato dal programma in esecuzione (nelle istruzioni in linguaggio macchina) Assegnato dal linker (è quindi un indirizzo rilocabile) Spazio di indirizzamento (o logico) Dipende dal numero di bit dell indirizzo Tipicamente molto maggiore dello spazio di indirizzamento fisico Dimensione della memoria di un programma Iniziale: calcolata dal linker dopo la generazione del codice eseguibile Durante l esecuzione: può variare per la modifica dello stack (chiamate a procedure) e per la modifica dello heap (gestione delle strutture dati dinamiche) Traduzione da indirizzo a indirizzo fisico Il processore fa riferimento ad un indirizzo, che viene tradotto in un indirizzo fisico, utilizzato per accedere alla memoria principale Traduzione (mapping) degli indirizzi virtuali in indirizzi fisici Coinvolge elementi hw e sw Viene attivata durante l esecuzione del programma ad ogni riferimento di memoria E trasparente al programmatore, al compilatore, al linker Il meccanismo di traduzione degli indirizzi deve essere efficiente! AAC - Valeria Cardellini, A.A. 26/7 4 AAC - Valeria Cardellini, A.A. 26/7 5 Traduzione da indirizzo a indirizzo fisico (2) Virtual addresses Address translation Physical addresses Disk addresses Nella memoria, blocchi di memoria vengono mappati dallo spazio di indirizzamento allo spazio di indirizzamento fisico AAC - Valeria Cardellini, A.A. 26/7 6 Paginazione e segmentazione Sono due meccanismi per la gestione della memoria (trattati nel modulo di Sistemi Operativi) Il sistema operativo deve individuare dei blocchi di memoria fisica liberi (non necessariamente contigui) Paginazione I blocchi di memoria hanno una dimensione fissa (detti pagine), tipicamente 4 KB o 8 KB Vantaggi: Riduce la frammentazione della memoria (presenza di zone di memoria piccole e libere inframmezzate a zone utilizzate): solo frammentazione interna (porzione di pagina non utilizzata) Rimpiazzamento banale (tutte le pagine hanno la stessa dimensione) Facilita la gestione della crescita di memoria di un processo durante l esecuzione Svantaggi: Limitazione nella protezione AAC - Valeria Cardellini, A.A. 26/7 7

Paginazione e segmentazione (2) Segmentazione I blocchi di memoria hanno una dimensione variabile (detti segmenti), da byte come dimensione minima a 2 6-2 32 byte come dimensione massima Vantaggi: Si presta alla protezione ed alla condivisione tra processi Semplifica la gestione di strutture dati di dimensione variabile Permette di fornire spazi di indirizzamento multipli Svantaggi: Frammentazione esterna (porzione di pagina non utilizzata) Rimpiazzamento difficile (occorre trovare un area di memoria contigua e di dimensioni variabili) Paginazione Spazio di indirizzamento di un programma: lineare e suddiviso in un numero intero di pagine di dimensione fissa pari a una potenza di 2 Dimensioni tipiche di pagina: da 52 byte a 64 KB L indirizzo è formato da due campi: Il numero di pagina (NPV) Lo spiazzamento (offset) del byte dall inizio della pagina Esempio di indirizzo logico: 3 3 29 28 27 Virtual address 5 4 3 2 9 8 32 Virtual page number AAC - Valeria Cardellini, A.A. 26/7 8 AAC - Valeria Cardellini, A.A. 26/7 9 Paginazione (2) Spazio di indirizzamento fisico: suddiviso in un numero intero di pagine di dimensione pari a quelle utilizzate per lo spazio di indirizzamento Ogni pagina della memoria (page frame) può contenere una pagina dello spazio di indirizzamento L indirizzo fisico è formato da due campi: Il numero di pagina fisica (NPF) Lo spiazzamento (offset) del byte dall inizio della pagina Esempio di indirizzo fisico: 29 28 27 5 4 3 2 9 8 32 Traduzione degli indirizzi NPV tradotto in NPF L offset non viene modificato: offset della pagina fisica offset della pagina Spazio di indirizzamento (in byte): # pagine virtuali dimensione pagina 2 NPV 2 OFFSET byte Spazio di indirizzamento fisico (in byte): # pagine fisiche dimensione pagina fisica 2 NPF 2 OFFSET byte Physical address AAC - Valeria Cardellini, A.A. 26/7 AAC - Valeria Cardellini, A.A. 26/7

Esempio di traduzione degli indirizzi Indirizzo (32 bit) 2 bit per NPV e 2 bit per offset Pagina di dimensione pari a 4 KB (2 2 B) Spazio di indirizzamento di 4 GB (2 2 4 KB) Indirizzo fisico (3 bit) 8 bit per NPF e 2 bit per offset Spazio di indirizzamento fisico di GB (2 8 4 KB) 3 3 29 28 27 29 28 27 Virtual page number Translation Virtual address 5 4 3 2 5 4 3 2 9 8 9 8 32 32 Da indirizzo simbolico a indirizzo fisico Prima dell esecuzione ogni programma attraversa quattro stadi: Codice sorgente, codice oggetto, codice eseguibile, codice in esecuzione In ciascuno di questi stadi il riferimento agli indirizzi è fatto in modo diverso Memory Management Unit (MMU): unità di gestione della memoria, responsabile della traduzione da NPV a NPF La MMU è incorporata nel processore software hardware Indirizzo simbolico Indirizzo rilocabile Indirizzo Indirizzo fisico compilazione linking mapping (MMU) AAC - Valeria Cardellini, A.A. 26/7 Physical address 2 AAC - Valeria Cardellini, A.A. 26/7 3 Tabella delle pagine La tabella delle pagine (TP o page table) contiene la corrispondenza tra pagine virtuali e pagine fisiche per un processo La TP è indicizzata tramite il NPV Ogni elemento della TP contiene il NPF per quella pagina Quindi: TP[NPV] NPF Ogni processo ha la sua TP Lo spazio di indirizzamento è condiviso tra più processi Tabella delle pagine (2) Il sistema operativo è responsabile dell allocazione della memoria fisica e dell aggiornamento delle TP La TP risiede in memoria Il registro della TP (page table register) contiene l indirizzo in memoria fisica della TP del processo correntemente in esecuzione Ogni pagina può corrispondere ad una qualsiasi pagina fisica In linea di principio, la TP contiene una riga per ogni pagina del processo x8a23456c Registro della TP x8a23456c AAC - Valeria Cardellini, A.A. 26/7 4 AAC - Valeria Cardellini, A.A. 26/7 5 TP

Esempio di tabella delle pagine Page fault 2 bit per NPV 2 bit per offset 8 bit per NPF La TP ha 2 2 righe Il bit di validità indica se la corrispondenza registrata è legale Uguale a : la pagina non è presente in memoria (page fault) Uguale a : la pagina è presente in memoria Valid Ifthenpageisnot present in memory Page table register Virtual page number Virtual address 3 3 29 28 27 5 4 3 2 9 8 3 2 Page table 2 2 8 29 28 27 5 4 3 2 9 8 3 2 Quando un processo richiede una pagina che non è nella memoria principale, il processore genera un errore di pagina (page fault) Page fault cache miss per la cache In caso di page fault, la pagina deve essere caricata dal disco Fault penalty grande E utile che le pagine siano grandi Le letture dal disco hanno un costo iniziale elevato, dovuto ai movimenti meccanici dei dispositivi E quindi importante ridurre i page fault Page fault gestiti a software tramite l intervento del sistema operativo Physical address AAC - Valeria Cardellini, A.A. 26/7 6 AAC - Valeria Cardellini, A.A. 26/7 7 Page fault (2) Al loading del processo, viene creato su disco l immagine delle varie pagine del programma e dei dati (swap space) La TP può anche essere usata per memorizzare gli indirizzi delle pagine su disco Indirizzi usati dal sistema operativo per gestire il page fault ed il rimpiazzo delle pagine Virtual page number Page table Physical page or Valid disk address Physical memory Disk storage Bit nella tabella delle pagine Oltre al bit di validità, a ciascuna entry nella TP sono associati altri bit: Bit di modifica (dirty bit) Indica se una pagina è stata modificata Necessario in quanto per la memoria si usa la politica di scrittura write-back Bit di riferimento (reference bit) Indica se, in un certo lasso di tempo, la pagina è stata acceduta Settato ogni volta che la pagina è acceduta ed azzerato periodicamente dal SO Usato dal SO per implementare la politica di rimpiazzamento delle pagine LRU (Least Recently Used) AAC - Valeria Cardellini, A.A. 26/7 8 AAC - Valeria Cardellini, A.A. 26/7 9

Dimensioni della tabella delle pagine Per indirizzi virtuali grandi la TP diventa enorme Es.: indirizzo a 32 bit e pagine da 4 KB 2 bit per NPV TP con 2 2 entry Se ciascuna entry è di 4 B, occorrono 4 MB (4 2 2 2 22 B) per la TP Se ci sono molti programmi in esecuzione, è necessaria una gran quantità di memoria solo per memorizzare le varie tabelle delle pagine! Si usano tecniche per ridurre lo spazio occupato dalla TP AAC - Valeria Cardellini, A.A. 26/7 2 Ridurre lo spazio della tabella delle pagine Diverse tecniche basate sull osservazione che i programmi (piccoli) usano solo una piccola parte della TP a loro assegnata e che c è anche una certa località nell uso della TP. La tecnica più semplice consiste nell usare un registro limite, che restringe la dimensione della tabella di ciascun processo La dimensione della tabella delle pagine cresce dinamicamente in base al bisogno Svantaggio: lo spazio di indirizzamento può crescere in una sola direzione 2. Per consentire la crescita in due direzioni, si usano due registri limite e due tabelle delle pagine E una forma di segmentazione della memoria invisibile al programma applicativo Svantaggio: non funziona bene quando lo spazio degli indirizzi è usato in modo sparso anziché contiguo AAC - Valeria Cardellini, A.A. 26/7 2 Ridurre lo spazio della tabella delle pagine (2) 3. Tabella delle pagine multi-livello Gerarchia di tabelle: ogni livello contiene una tabella che memorizza i puntatori alla tabella del livello sottostante Il livello più basso è composto da tabelle che contengono la mappatura effettiva Permette di memorizzare in locazioni non contigue la tabella delle pagine attivamente utilizzate dal processo Svantaggio: il processo di traduzione delle pagine è più complicato 4. Tabella inversa delle pagine Si usa una funzione hash per tradurre l indirizzo in una entry della tabella delle pagine La tabella delle pagine ha tante entry quante sono le pagine fisiche Svantaggio: il processo di traduzione delle pagine è più complicato 5. Paginazione della tabella delle pagine AAC - Valeria Cardellini, A.A. 26/7 22 TLB: traduzione veloce degli indirizzi In linea di principio: ogni accesso alla memoria principale richiede due tempi di accesso Uno per accedere alla TP ed ottenere l indirizzo fisico, uno per accedere all informazione richiesta Per migliorare le prestazioni si sfrutta la località dei riferimenti Quando si traduce un numero di pagina, il risultato sarà probabilmente necessario di nuovo entro breve tempo (i riferimenti ad una stessa pagina hanno località spaziale e temporale) Si ricorre ad una cache di traduzione, detta translationlookaside buffer (TLB), che registra le traduzioni effettuate di recente La traduzione dal NPV nel corrispondente NPF viene compiuta dalla MMU, che include il TLB AAC - Valeria Cardellini, A.A. 26/7 23

TLB: traduzione veloce degli indirizzi (2) TLB: traduzione veloce degli indirizzi (3) Il TLB contiene un sottoinsieme delle corrispondenze tra NPV e NPV memorizzate nella TP Il TLB è una cache: Ogni elemento del TLB contiene un campo etichetta ed un campo dati Il campo tag contiene una parte del NPV Il campo dati contiene un NPF Inoltre, ciascuna riga del TLB contiene bit di validità, bit di riferimento e bit di modifica Non si accede più necessariamente alla TP per ogni riferimento in memoria Virtual page number Valid DirtyRef Valid DirtyRef Page table Tag Physical page or disk address TLB Physical page address Physical memory Disk storage AAC - Valeria Cardellini, A.A. 26/7 24 AAC - Valeria Cardellini, A.A. 26/7 25 Hit e miss nel TLB Dato un indirizzo di memoria, si cerca il NPV nel TLB (confronto dei tag) In caso di hit nel TLB: Si usa il NPF per generare l indirizzo fisico, si pone a il bit di riferimento; se l operazione richiesta è una scrittura, si pone a anche il bit di modifica In caso di miss nel TLB: Si deve verificare se si tratta solo di miss nel TLB oppure di page fault La pagina è in memoria: manca semplicemente la traduzione nel TLB, si carica la traduzione dalla TP nel TLB e si ripete l accesso La pagina non è in memoria: il miss nel TLB diventa un page fault, si genera un eccezione che viene gestita dal sistema operativo Il numero di elementi nel TLB è molto minore del numero di pagine nella memoria principale miss sul TLB molto più frequenti dei veri page fault AAC - Valeria Cardellini, A.A. 26/7 26 TLB e gestione di miss I miss (fallimenti) di accesso al TLB sono gestibili da hw o da sw La differenza di prestazioni è modesta Miss nel TLB: scelta dell elemento da sostituire Al momento della sostituzione, si devono copiare i bit di validità e di modifica nell elemento della TP La copia avviene solo in caso di sostituzione, non ad ogni modifica (strategia write-back) Grado di associatività del TLB Da completamente associativi (TLB piccoli) a soluzioni setassociative Valori tipici del TLB Da 6 a 52 entry, con blocchi di -2 elementi (da 4 a 8 byte per blocco) Hit time:,5- cicli di clock Miss rate:,% - % Miss penalty: da a cicli di clock AAC - Valeria Cardellini, A.A. 26/7 27

Esempio: il TLB dell Intrisity FastMATH Pagine da 4 KB Indirizzi fisici da 32 bit Indirizzi logici da 32 bit Struttura dell indirizzo logico: 2 bit per NPV e 2 bit per offset, essendo 2log 2 (4K) TLB completamente associativo con 6 elementi e condiviso per dati e istruzioni Ciascun elemento del TBL da 64 bit 2 bit per tag 2 bit per NPF bit di validità, bit di modifica ed altri bit (anche per protezione) Cache Cache hit TLB TLB hit 8 Valid Dirty Valid Virtual address 3 3 29 4 3 2 9 3 2 Virtual page number 2 2 AAC - Valeria Cardellini, A.A. 26/7 28 Tag Tag 8 Physical address Block Physical address tag Cache index offset 2 Data Data 2 Caso ottimo: hit in TLB ed in cache 32 8 4 2 Byte offset Gestione di letture e scritture usando il TLB e la cache nell Intrisity FastMATH Cache indirizzata fisicamente lettura Notare le eccezioni TLB miss Write protection TLB miss exception Cache miss stall while read block TLB e cache No No Cicli di stallo in caso di Virtual address TLB access TLB hit? Try to read data from cache Cache hit? Yes No Write access bit on? Write data into cache, update the dirty bit, and cache miss put the data and the address into the write buffer AAC - Valeria Cardellini, A.A. 26/7 29 No Yes Write? Physical address Yes Write protection exception Deliver data to the CPU Cache miss stall while read block No Yes Try to write data to cache Cache hit? scrittura Yes Diversi tipi di miss In una gerarchia di memorie con TLB, memoria e cache abbiamo tre tipi di miss: TLB miss, page fault, cache miss Analizziamo le combinazioni possibili con almeno un miss (sono 7) TLB TP Cache E possibile? Quando? hit hit miss Possibile, ma la TP non viene mai consultata in caso di hit nel TLB! miss hit hit Miss in TLB ma elemento in TP; si ritenta l operazione e si trova l elemento in cache miss hit miss Miss in TLB, elemento in TP, miss in cache; trasferimento in cache miss miss miss Miss in TLB seguito da page fault; si ritenta l operazione e si verifica miss in cache hit miss miss Impossibile: non si ha traduzione dal TLB se la pagina non è in memoria hit miss hit Impossibile: non si ha traduzione dal TLB se la pagina non è in memoria miss miss hit Impossibile: non si hanno dati in cache se la pagina non è in memoria AAC - Valeria Cardellini, A.A. 26/7 3 Quale indirizzo per la cache? Finora abbiamo considerato che l accesso in cache avvenga usando l indirizzo fisico di memoria Prima dell accesso in cache si traduce l indirizzo in indirizzo fisico Cache indirizzata fisicamente: indice fisico e tag fisico Indirizzo Indirizzo fisico CPU MMU CACHE AAC - Valeria Cardellini, A.A. 26/7 3

Quale indirizzo per la cache? (2) Alcune architetture consentono di accedere alla cache con un indirizzo completamente o parzialmente Cache indirizzata virtualmente: si usa solo l indirizzo Indice e tag Problema dell ambiguità degli indirizzi (address aliasing): due indirizzi virtuali per la stessa pagina fisica CPU Indirizzo Indirizzo MMU CACHE Indirizzo fisico Cache indirizzata virtualmente ma con tag fisico: si usa parzialmente l indirizzo Indice e tag fisico AAC - Valeria Cardellini, A.A. 26/7 32 Riepilogo per la gerarchia di memorie ) Posizionamento di un blocco Organizzazione Indirizzamento diretto Set associativa Completamente associativa Soluzione usata per la memoria (una pagina ovunque in memoria principale) Numero di set Numero di blocchi in cache Numero di blocchi in cache/grado associatività 5% 2% Blocchi per set Grado di associatività (da 2 a 6) Numero di blocchi in cache 3% 6 KB 32 KB 64 KB 28 KB One-way Two-way Four-way Eight-way AAC - Valeria Cardellini, A.A. 26/7 Associativity 33 9% 6% KB 2 KB 4 KB 8 KB Riepilogo per la gerarchia di memorie (2) Riepilogo per la gerarchia di memorie (3) 2) Individuare un blocco Associatività Indirizzamento diretto Set associativa Completamente associativa Soluzione usata per la memoria (tabella delle pagine) Metodo di individuazione Indice del blocco Indice del set, ricerca i blocchi del set Ricerca tutti i blocchi Tabella di lookup separata Confronti necessari Grado di associatività Dimensione della cache 3) Sostituire un blocco Le due strategie principali sono LRU Random Per la cache, la politica di sostituzione è implementata in hardware Politica di sostituzione semplice (Random o LRU approssimata) Per la memoria, la politica di sostituzione è implementata dal software La politica può essere più sofisticata, perché i miss sono meno frequenti ma più costosi Tempo di accesso in memoria dell ordine di -8 sec; tempo di accesso al disco dell ordine di -3 sec AAC - Valeria Cardellini, A.A. 26/7 34 AAC - Valeria Cardellini, A.A. 26/7 35

Riepilogo per la gerarchia di memorie (4) Esempi: Pentium 4 e AMD Opteron 4) Strategia di scrittura Le due principali strategie di scrittura sono Write-through Write-back Per la cache, si possono usare entrambe Per la memoria, si usa solo write-back Troppo lungo il tempo di latenza del disco Pentium 4 ha TLB per dati e TLB per istruzioni Opteron ha 2 TLB per dati e 2 TLB per istruzioni TLB L e L2 per dati TLB L e L2 per istruzioni AAC - Valeria Cardellini, A.A. 26/7 36 AAC - Valeria Cardellini, A.A. 26/7 37 33 Esempi: Pentium 4 e AMD Opteron (2) Traduzione dell indirizzo nell Opteron Opteron: L cache indirizzata virtualmente ma con tag fisico Opteron: L cache e L2 cache gestite con multi-level exclusion Tabella delle pagine con 4 livelli gerarchici (pagina da 4 KB) AAC - Valeria Cardellini, A.A. 26/7 38 AAC - Valeria Cardellini, A.A. 26/7 39

Traduzione degli indirizzi nell Opteron La gerarchia di memoria dell Opteron Istruzioni Dati L cache 2 s 64KB/64B 2 s 9 write buffer L2 cache 2 s 24KB/64B 6 s AAC - Valeria Cardellini, A.A. 26/7 4 AAC - Valeria Cardellini, A.A. 26/7 4