Lezione 19 Memoria Virtuale



Похожие документы
Lezione 19 Memoria Virtuale

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

Le virtual machine e la memoria virtuale

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

Gestione della memoria. Paginazione Segmentazione Segmentazione con paginazione

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

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

Gerarchia di memorie

Calcolatori Elettronici. La memoria gerarchica La memoria virtuale

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

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

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

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

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

Sistemi Operativi. 5 Gestione della memoria

Capitolo Silberschatz

MEMORIA GERARCHIE DI MEMORIA

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

Gestione della memoria centrale

Laboratorio di Informatica

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

STRUTTURE DEI SISTEMI DI CALCOLO

Hardware di un Computer

Gestione della Memoria

Calcolatori Elettronici

Schemi di paginazione nell architettura 86 (32 e 64 bit)

Capitolo 11 La memoria cache

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

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

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

La memoria centrale (RAM)

Architettura del calcolatore

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

Architettura di un sistema di calcolo

GESTIONE DELLA MEMORIA CENTRALE

Memoria Virtuale. Lezione 29 Sistemi Operativi

Architettura hardware

Fondamenti di informatica: un po di storia

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

File system II. Sistemi Operativi Lez. 20

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

Cache e gerarchia di memoria

Secondo biennio Articolazione Informatica TPSIT Prova Quarta

La Gestione delle risorse Renato Agati

Modello della memoria in Unix. Unix: Gestione della Memoria. Gestione della memoria in UNIX - fondamenti. Gestione della memoria in UNIX - storia

Sistemi Operativi Gestione della Memoria (parte 2)

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

Sistema operativo: Gestione della memoria

C. P. U. MEMORIA CENTRALE

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

Esame di INFORMATICA

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

Memoria Virtuale. Lezione Sistemi Operativi

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

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

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

Gestione della memoria centrale

Architettura di un calcolatore

Architettura dei computer

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

Informatica - A.A. 2010/11

Hazard sul controllo. Sommario

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

1. Si consideri uno spazio di indirizzamento logico di otto pagine di 1024 parole ognuna, mappate su una memoria fisica di 32 frame.

Speedup. Si definisce anche lo Speedup relativo in cui, invece di usare T 1 si usa T p (1).

Il memory manager. Gestione della memoria centrale

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

Il software impiegato su un computer si distingue in: Sistema Operativo Compilatori per produrre programmi

Corso di Sistemi di Elaborazione delle informazioni

Il Software. Il software del PC. Il BIOS

Capitolo 9: Memoria centrale

La gerarchia di Memoria

Organizzazione della memoria

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

IL PROBLEMA DELLA MEMORIA

Approccio stratificato

Il sistema operativo. Sistema operativo. Multiprogrammazione. Il sistema operativo. Gestione della CPU

MODELLO DLX IN UNISIM

Транскрипт:

Lezione 9 Memoria Virtuale http://www.dii.unisi.it/~giorgi/didattica/calel All figures from Computer Organization and Design: The Hardware/Software Approach, Second Edition, by David Patterson and John Hennessy, are copyrighted material. (COPYRIGHT 998 MORGAN KAUFMANN PUBLISHERS, INC. ALL RIGHTS RESERVED.) Figures may be reproduced only for classroom or personal educational use in conjunction with the book and only when the above copyright line is included. They may not be otherwise reproduced, distributed, or incorporated into other works without the prior written consent of the publisher. Roberto Giorgi, Universita di Siena, C7L9, Slide Other material is adapted from CS52 Copyright (C) 2 UCB Disk Caching (!= Memoria Virtuale) Idea: utilizzare la Memoria Principale come se fosse una cache del disco Scopo: ridurre il tempo medio di accesso ai file che stanno su disco Memoria Principale DISCO -5 clks 5 clks Funzionamento: e una cache implementata completamente a software Memorizza i blocchi di disco piu recentemente utilizzati Su hit, ottengo un tempo di accesso di 5 /= 4 volte maggiore La tecnica e usata da Windows, Linux e altri sistemi operativi Roberto Giorgi, Universita di Siena, C7L9, Slide 2

Memoria Virtuale Obiettivi delle tecniche di caching Memoria Disco Disk Caching migliorare il tempo di accesso file Memoria Virtuale creare uno spazio di indirizzamento piu largo (con tempi di accesso simili alla memoria principale) Uso il disco come memoria esterna rispetto alla memoria principale: il livello successivo nella gerarchia di memoria La memoria contiene una copia delle istruzioni/dati piu recentemente usati Tutto il resto sta su disco Roberto Giorgi, Universita di Siena, C7L9, Slide 3 Memoria Virtuale: vantaggi Crea l illusione di un enorme quantita di memoria (molto piu ampia della memoria fisica realmente disponibile nel calcolatore) Rimuove i vincoli di programmazione legati all avere una memoria di dimensioni limitate Rilocazione dei programmi non necessaria Il programma viene caricato in uno spazio di memoria che e completamente vuoto per ogni programma, ovvero ogni programma ha a disposizione tutti gli indirizzi di uno proprio spazio virtuale privato Protezione dei programmi Porzioni dello spazio di indirizzamento possono essere rese condivise in maniera controllata ed efficiente Un programma non puo accedere allo spazio di indirizzamento privato di un altro programma Il tutto funziona grazie ancora al principio di localita In un certo intervallo di tempo lo working set del programma e abbastanza limitato Roberto Giorgi, Universita di Siena, C7L9, Slide 4

Memoria Virtuale: Funzionamento L unita di trasferimento fra memoria e disco e la pagina La pagina ha una dimensione tipica di 4-6KB Indirizzi Virtuali Indirizzi Fisici Memoria Principale swap-in swap-out Meccanismo di traduzione degli indirizzi DISK La Pagina Virtuale indirizzata puo trovarsi sul disco anziche nella memoria fisica swap-in Roberto Giorgi, Universita di Siena, C7L9, Slide 5 Tempi di accesso Rapporti tipici fra i tempi di accesso di vari tipi di memoria L L2 L2 MEM MEM DISCO t t t penalty, L t hit, L penalty, L 2 t hit, L 2 penalty, MEM t hit, MEM Nel caso di un page-miss, o meglio di un page-fault, il tempo di penalty risulta molto grande = = 5 5 = Roberto Giorgi, Universita di Siena, C7L9, Slide 6

Esempio Il processore P, viaggia a 3 MIPS e /3 delle istruzioni generate da un certo programma sono di tipo LD P fa 3/3 = milioni di load/secondo Supponiamo che L e L2 insieme riescano a servire il 95% delle richieste la Memoria Principale deve servire.5 x 7 = 5 x 5 load/secondo Supponiamo che il Disco possa servire 5 richieste/secondo (considerando un rapporto di : per servire un miss). Determinare il tempo di esecuzione del programma ipotizzando che l hit-rate della memoria principale assuma i seguenti valori: Hit Rate Richieste al disco Tempo di Esecuzione Memoria Principale per secondo del Programma..... % (normalizzato) 99.999% 5 99.99% 5 99.9% 5 9.% 5 Roberto Giorgi, Universita di Siena, C7L9, Slide 7 Memoria Virtuale: Caratteristiche La memoria principale si comporta come una cache Le caratteristiche di tale cache sono A=A MAX cache fully associative: una pagina virtuale puo essere mappata su qualsiasi pagina fisica B=4-6KB C=Dimensione della Memoria Politica di Rimpiazzamento=LRU Politica di Scrittura=WB (Write-Back) Politica di Scrittura su Miss=WA (Write Allocate) Roberto Giorgi, Universita di Siena, C7L9, Slide 8

Memoria Virtuale: Terminologia Working set : Insieme di pagine che e necessario mantenere in Memoria per ottenere un hit rate accettabile Thrashing : Perdita di prestazioni conseguente al fatto che lo working set e diventato piu grande della Memoria Principale Page Swap : Trasferimento di una pagina nuova in memoria principale e conseguente riscrittura su disco di una pagina vittima Roberto Giorgi, Universita di Siena, C7L9, Slide 9 Memoria Virtuale: schema logico Identificatore di Pagina Virtuale (VPN) n + p = 32 n Indirizzo Virtuale Funzione di Mapping Virtuale Fisico p Offset di pagina Identificatore di Pagina Fisica (PPN) m Indirizzo Fisico m + p Roberto Giorgi, Universita di Siena, C7L9, Slide

Funzione di Mapping Virtuale-Fisico E una tabella! Bit di validita : mi dice se la pagina e in memoria o no Bit di modifica (Dirty): utile all algoritmo di scrittura Bit di uso: utile all algoritmo di rimpiazzamento VPN V D U Identificatore di Pag. Fisica Memoria Fisica PPN DISCO La Tabella delle Pagine sta in Memoria Fisica Quanto e grande questa tabella? Roberto Giorgi, Universita di Siena, C7L9, Slide Gestione del Page-Fault (Page-Fault Handler) Passi per leggere una locazione della Memoria Principale ) Presento un indirizzo virtuale al sistema di Memoria 2) Accedo alla Tabella delle Pagine per vedere se la pagina e in RAM 3) Se la pagina e in RAM accedo nuovamente alla RAM per prendere il dato 4) Se la pagina non e in RAM lancio un interrupt al processore e chiamo una routine di servizio del Sistema Operativo denominata Page-Fault Handler 5) Il Page-Fault Handler si occupa di fare il page-swap (tramite il DMA) e porta in RAM la pagina richiesta prelevandola da disco 6) Viene ripetuta la lettura: stavolta la pagina si trovera in RAM Anche se avessi una percentuale del % di Hit-Rate in Memoria Principale, la penalty dovuta all uso della memoria virtuale comporaterebbe un raddoppio dei tempi di accesso alla memoria Roberto Giorgi, Universita di Siena, C7L9, Slide 2

Tecniche per ridurre la Tabella delle Pagine A) Paginazione della Tabella delle Pagine Parte della tabella finisce in memoria virtuale anziche fisica ( si potra generare un doppio page-fault!) Staranno in RAM solo le porzioni della tabelle piu usate B) Tabella delle Pagine Inversa Si applica una funzione di hashing all indirizzo virtuale cosi che il numero di entry nella tabella delle pagine e al piu pari al numero totale di pagine fisiche Roberto Giorgi, Universita di Siena, C7L9, Slide 3 A) Tabella delle Pagine a Due Livelli Indirizzo a 32 bit 2 P index P2 index page offest radice K foglie 4KB 4 bytes Ho k tabelle di secondo livello ( foglie ) + la tabella radice Non tutte le tabelle foglie saranno pero presenti in memoria In totale la radice occupa 4KB tutte le foglie 4MB Ogni processo del sistema ha pero una proprima tabella completa! 4 bytes Roberto Giorgi, Universita di Siena, C7L9, Slide 4

A) Tabella delle Pagine a Tre Livelli (Alpha) Avendo indirizzi a 64 bit conviene suddividere in tre livelli Nell Alpha uso in realta solo 43 bit per lo spazio virtuale selector Indirizzo VIRTUALE a 64-bit PAGE TABLE BASE REGISTER + Level Level 2 Level 3 page offest + + L page table L2 page table L3 page table Roberto Giorgi, Universita di Siena, C7L9, Slide 5 PHYSICAL PAGE NUMBER page offest 64-bit PHYSICAL address A) Metodi di accesso Top-Down e Bottom-Up Top-Down Accesso alla root page table (sempre in memoria) Accesso alla leaf page table Accesso alla pagina fisica Totale 3 accessi alla memoria + eventuale fault o doppio fault In generale ho un numero di accessi alla memoria pari a +Num_Livelli Bottom-Up Accesso diretto all insieme delle leaf page table* (supposte contigue in memoria e allineate su boundary di 4MB per semplificare l accesso) - Se l operazione ha successo: bene (ho solo 2 accessi in memoria) - Altrimenti: si procede con un accesso bottom-up completo Se va tutto bene, faccio 2 accessi fissi indipendentemente dal numero di livelli della tabella delle pagine Roberto Giorgi, Universita di Siena, C7L9, Slide 6 * affinche questo funzioni devo avere un metodo per sapere se ci sono leaf al loro posto oppure no

B) Tabella delle Pagine Inversa () Una entry nella tabella delle pagine per ogni pagina fisica Vantaggi La dimensione scala con la dimensione della memoria fisica anziche con quella della memoria virtuale La dimensione e fissa a prescindere dal numero di processi! Chiamata inversa perche le entry sono indicizzate per PPN anziche per VPN In ogni caso la ricerca avviene fornendo un VPN e ottenendo un PPN Il PPN e dedotto dalla posizione della VPN trovata Tecnica Si applica una funzione di hash al VPN L hash costituisce un indice nella tabella inversa corrispondente al PPN Poiche diversi VPN possono produrre lo stesso hash e necessario un meccanismo per risolvere le collisioni (es. lista concatenata memorizzata all interno della tabella stessa): la nuova entry e aggiunta in fondo alla lista E possibile che si perda un po tempo per percorrere tale lista concatenata Roberto Giorgi, Universita di Siena, C7L9, Slide 7 B) Tabella delle Pagine Inversa (2) VPN PPN K Numero di elementi della tabella = K V Virtual Address PPN PPN PPN 2 PPN 3 Virtual Page Virtual Page 6 Virtual Page 52 D C O M P A R E Physical Page Number L IBM System 38 (AS4) implementa indirizzi a 64-bit 48 bit costituiscono il numero di pagina virtuale e tali elementi hanno un tag di soli 2-bit Roberto Giorgi, Universita di Siena, C7L9, Slide 8 Funziona come una cache fully associative!

Velocizzare il meccanismo di traduzione Indirizzi Virtuali N TLB Funzione di Mapping Virtuale Fisico P M Indirizzi Fisici Uso una piccola cache (TLB=Translation Lookaside Buffer) per avere a portata di mano un po di elementi della Tabella delle Pagine Roberto Giorgi, Universita di Siena, C7L9, Slide 9 Funziona come una cache L per la Tabella delle Pagine (L2)! TLB: Caratteristiche V D U Permessi VPN PPN tag La TLB e una cache che puo essere fully associative, set-associative o ad accesso diretto La TLB ha tipicamente non piu di 28-256 elementi Il tempo di accesso alla TLB e confrontabile col tempo di accesso alla cache (molto piu basso del tempo di accesso alla memoria principale) Roberto Giorgi, Universita di Siena, C7L9, Slide 2

TLB: Organizzazione Logica VPN V D U Tag Physical Address Memoria Fisica V D U Physical Page or Disk Address DISCO Roberto Giorgi, Universita di Siena, C7L9, Slide 2 TLB: esempio Memoria Virtuale la memoria agisce da cache per il disco La tabella delle pagine mappa indirizzi virtuali in fisici La TLB e una cache delle piu recenti traduzioni Virtual Address Space 2 3 4 5 6 7 8 9 Physical Memory Space Page Table 2 2 3 3 Translation Lookaside Buffer VPN PPN 2 2 5 virtual address page off Roberto Giorgi, Universita di Siena, C7L9, Slide 22

TLB: Schema e interazione con la Cache CPU VA TLB Lookup PA hit Cache miss Main Memory miss hit Translation /2 t C data t C 2 t C VA = Virtual Address PA= Physical Address Roberto Giorgi, Universita di Siena, C7L9, Slide 23 TLB+cache: diagramma di funzionamento Virtual address TLB access TLB miss exception No TLB hit? Yes Physical address No Write? Yes Try to read data from cache No Write access bit on? Yes Cache miss stall No Cache hit? Yes Write protection exception Writedataintocache, update the tag, and put the data and the address into the write buffer Deliver data to the CPU Roberto Giorgi, Universita di Siena, C7L9, Slide 24

TLB: Valori tipici Dimensione del blocco: 8 byte Hit-time:.5 - cicl Miss-penalty: -5 cicli Hit-rate: da 99% a 99.99% Dimensione della TLB: 32-24 elementi Roberto Giorgi, Universita di Siena, C7L9, Slide 25 Reducing Translation Time Machines with TLBs go one step further to reduce # cycles/cache access They overlap the cache access with the TLB access Works because high order bits of the VA are used to look in the TLB while low order bits are used as index into cache Roberto Giorgi, Universita di Siena, C7L9, Slide 26

Overlapped Cache & TLB Access 32 TLB assoc lookup index Cache K 2 4 bytes PA Hit/ Miss 2 2 page # disp PA Data Hit/ Miss IF cache hit AND (cache tag = PA) then deliver data to CPU ELSE IF [cache miss OR (cache tag = PA)] and TLB hit THEN access memory with the PA from the TLB ELSE do standard VA translation = Roberto Giorgi, Universita di Siena, C7L9, Slide 27 Problems With Overlapped TLB Access Overlapped access only works as long as the address bits used to index into the cache do not change as the result of VA translation This usually limits things to small caches, large page sizes, or high n-way set associative caches if you want a large cache Example: suppose everything the same except that the cache is increased to 8 K bytes instead of 4 K: 2 cache index This bit is changed by VA translation, but 2 2 is needed for cache virt page # disp lookup Solutions: go to 8K byte page sizes; go to 2 way set associative cache; or SW guarantee VA[3]=PA[3] 4 4 K 2 way set assoc cache Roberto Giorgi, Universita di Siena, C7L9, Slide 28

Address Translation + L Cache () Virtual Address N TLB Virtual to Physical Page Map P M Physical Address Problem with physically addressed cache is increased latency L Cache Data Roberto Giorgi, Universita di Siena, C7L9, Slide 29 Address Translation + L Cache (2) Virtual Address N TLB Virtual to Physical Page Map P L Cache M Physical Address Data Aliasing problem: 2 virtual pages may correspond to same physical page which is cached in 2 different locations in L! Roberto Giorgi, Universita di Siena, C7L9, Slide 3

Address Translation + L Cache (3) Virtual Address N P TLB Virtual to Physical Page Map L Cache M Data Physical Address PPN PPN (tag) = L HIT Problem is the limitation on the size of the L Cache Roberto Giorgi, Universita di Siena, C7L9, Slide 3 Virtual Address and a Cache CPU VA PA miss Translation Cache Roberto Giorgi, Universita di Siena, C7L9, Slide 32 Main Memory hit data It takes an extra memory access to translate VA to PA This makes cache access very expensive, and this is the "innermost loop that you want to go as fast as possible ASIDE: Why access cache with PA at all? VA caches have a problem! synonym / alias problem: two different virtual addresses map to same physical address => two different cache entries holding data for the same physical address! for update: must update all cache entries with same physical address or memory becomes inconsistent determining this requires significant hardware, essentially an associative lookup on the physical address tags to see if you have multiple hits; or software enforced alias boundary: same lsb of VA &PA > cache size

R3 TLB & CP (MMU) 2 6 6 VPN ASID 2 8 PFN N D V G global (ignore ASID) valid, dirty, non-cacheable 63 Entry Hi Entry Lo loaded when VA presented for translation Index index of probe and fail flag random random index for replacement 8 7 Safe entries Roberto Giorgi, Universita di Siena, C7L9, Slide 33 Constraints on TLB organization MIPS R3 Pipeline Inst Fetch Dcd/ Reg ALU / E.A Memory Write Reg TLB I-Cache RF Operation WB E.A. TLB D-Cache TLB 64 entry, on-chip, fully associative, software TLB fault handler Virtual Address Space ASID V. Page Number Offset 6 2 2 xx User segment (caching based on PT/TLB entry) Kernel physical space, cached Kernel physical space, uncached x Kernel virtual space Allows context switching among 64 user processes without TLB flush Roberto Giorgi, Universita di Siena, C7L9, Slide 34

Virtually Addressed Cache CPU VA Translation PA Main Memory hit Cache data Only require address translation on cache miss! synonym problem: two different virtual addresses map to same physical address => two different cache entries holding data for the same physical address! nightmare for update: must update all cache entries with same physical address or memory becomes inconsistent determining this requires significant hardware, essentially an associative lookup on the physical address tags to see if you have multiple hits. (usually disallowed by fiat) Roberto Giorgi, Universita di Siena, C7L9, Slide 35 Optimal Page Size Mimimize wasted storage small page minimizes internal fragmentation small page increase size of page table Minmize transfer time large pages (multiple disk sectors) amortize access cost sometimes transfer unnecessary info sometimes prefetch useful data sometimes discards useless data early General trend toward larger pages because big cheap RAM increasing mem / disk performance gap larger address spaces Roberto Giorgi, Universita di Siena, C7L9, Slide 36

Page Replacement: Not Recently Used (-bit LRU,Clock) page table entry Associated with each page is a reference flag such that ref flag = if the page has been referenced in recent past = otherwise -- if replacement is necessary, choose any page frame such that its reference bit is. This is a page that has not been referenced in the recent past dirty used page table entry Roberto Giorgi, Universita di Siena, C7L9, Slide 37 page fault handler: Or search for the a page that is both not recently referenced AND not dirty. last replaced pointer (lrp) if replacement is to take place, advance lrp to next entry (mod table size) until one with a bit is found; this is the target for replacement; As a side effect, all examined PTE's have their reference bits set to zero. Architecture part: support dirty and used bits in the page table => may need to update PTE on any instruction fetch, load, store How does TLB affect this design problem? Software TLB miss? Modern Systems Very complicated memory systems: Characteristic Intel Pentium Pro PowerPC 64 Virtual address 32 bits 52 bits Physical address 32 bits 32 bits Page size 4 KB, 4 MB 4 KB, selectable, and 256 MB TLB organization A TLB for instructions and a TLB for data A TLB for instructions and a TLB for data Both four-way set associative Both two-way set associative Pseudo-LRU replacement LRU replacement Instruction TLB: 32 entries Instruction TLB: 28 entries Data TLB: 64 entries Data TLB: 28 entries TLB misses handled in hardware TLB misses handled in hardware Characteristic Intel Pentium Pro PowerPC 64 Cache organization Split instruction and data caches Split intruction and data caches Cache size 8 KB each for instructions/data 6 KB each for instructions/data Cache associativity Four-way set associative Four-way set associative Replacement Approximated LRU replacement LRU replacement Block size 32 bytes 32 bytes Write policy Write-back Write-back or write-through Roberto Giorgi, Universita di Siena, C7L9, Slide 38

Survey R4 32 bit virtual, 36 bit physical variable page size (4KB to 6 MB) 48 entries mapping page pairs (28 bit) MPC6 (32 bit implementation of 64 bit PowerPC arch) 52 bit virtual, 32 bit physical, 6 segment registers 4KB page, 256MB segment 4 entry instruction TLB 256 entry, 2-way TLB (and variable sized block translate) overlapped lookup into 8-way 32KB L cache hardware table search through hashed page tables Alpha 264 arch is 64 bit virtual, implementation subset: 43, 47,5,55 bit 8,6,32, or 64KB pages (3 level page table) 2 entry ITLB, 32 entry DTLB 43 bit virtual, 28 bit physical oct-word address Roberto Giorgi, Universita di Siena, C7L9, Slide 39 4 28 24 Hardware / Software Boundary What aspects of the Virtual -> Physical Translation is detemined in hardare? TLB Format Type of Page Table Page Table Entry Format Disk Placement Paging Policy Roberto Giorgi, Universita di Siena, C7L9, Slide 4

Why virtual memory? Generality ability to run programs larger than size of physical memory Storage management allocation/deallocation of variable sized blocks is costly and leads to (external) fragmentation Protection regions of the address space can be R/O, Ex,... Flexibility portions of a program can be placed anywhere, without relocation Storage efficiency retain only most important portions of the program in memory Concurrent I/O execute other processes while loading/dumping page Expandability can leave room in virtual address space for objects to grow. Performance Roberto Giorgi, Universita di Siena, C7L9, Slide 4 Observe: impact of multiprogramming, impact of higher level languages Summary (): TLB, Virtual Memory Caches, TLBs, Virtual Memory all understood by examining how they deal with 4 questions: ) Where can block be placed? 2) How is block found? 3) What block is repalced on miss? 4) How are writes handled? Page tables map virtual address to physical address TLBs are important for fast translation TLB misses are significant in processor performance: (funny times, as most systems can t access all of 2nd level cache without TLB misses!) Roberto Giorgi, Universita di Siena, C7L9, Slide 42

Summary (2): Memory Hierachy Virtual memory was controversial at the time: can SW automatically manage 64KB across many programs? X DRAM growth removed the controversy Today VM allows many processes to share single memory without having to swap all processes to disk; VM protection is more important than memory hierarchy Today CPU time is a function of (ops, cache misses) vs. just f(ops): What does this mean to Compilers, Data structures, Algorithms? Roberto Giorgi, Universita di Siena, C7L9, Slide 43