Calcolatori Elettronici La memoria gerarchica L hard disk Introduzione alla memoria virtuale Scendiamo di un altro livello CPU Banco Cache Memoria principale Memoria secondaria Dimensioni < 1KB < 1 MB < 4 GB > 20 GB Tempo accesso < 0,5 < 10 < 100 10.000.000 (nanosec) Banda passante 20.000 5.000 1.000 20 (MB/sec) 100.000 10.000 5.000 40 Calcolatori Elettronici - La memoria virtuale (1) - Slide 2 L. Tarantino - a.a. 2004/2005 1
Dischi magnetici basati su piatti rotanti rivestiti di una superficie magnetica, con testine mobili di lettura/scritture per una memorizzazione non volatile Floppy disk Hard disk densità più elevata maggiore velocità più di un piatto Calcolatori Elettronici - La memoria virtuale (1) - Slide 3 L. Tarantino - a.a. 2004/2005 Hard disk un insieme di piatti rotanti (da 1 a 15) ogni piatto possiede due superfici utilizzabili 3600-7200 giri al minuto (RPM, revolution per minute) piatti tracce 1000-5000 per superficie settori 64-200 per traccia diametro 2,6 cm - 20 cm ogni superficie è divisa in cerchi concentrici (tracce) ogni traccia è suddivisa in settori il settore è l unità minima di lettura e scrittura (512 byte, dato del 97) Calcolatori Elettronici - La memoria virtuale (1) - Slide 4 L. Tarantino - a.a. 2004/2005 2
Struttura e accessi al di sopra di ogni superficie di ogni piatto è posizionato un braccio mobile che termina con una bobina elettromagnetica chiamata testina di lettura/scrittura le testine si muovono tutte insieme, quindi si trovano su tracce solidali ciascuna sulla sua superficie l insieme delle tracce che in un certo istante si trovano sotto le testine viene chiamato cilindro Calcolatori Elettronici - La memoria virtuale (1) - Slide 6 L. Tarantino - a.a. 2004/2005 Calcolatori Elettronici - La memoria virtuale (1) - Slide 7 L. Tarantino - a.a. 2004/2005 3
Scrittura e lettura Ogni testina è posta appena sopra la superficie del disco Scrittura il passaggio di corrente positiva o negativa attraverso la testina magnetizza la superficie Lettura il passaggio sopra un area magnetizzata induce una corrente positiva o negativa nella testina Calcolatori Elettronici - La memoria virtuale (1) - Slide 8 L. Tarantino - a.a. 2004/2005 Ancora su tracce e settori Traccia (track) sequenza circolare di bit scritta mentre il disco compie una rotazione completa la larghezza della traccia dipende dalla dimensione della testina tra una traccia e l altra c è un piccolo spazio di separazione (gap) Settore (sector) parte di una traccia corrispondente ad un settore circolare di un disco tra un settore e l altro si trova un piccolo spazio (intersector gap) Calcolatori Elettronici - La memoria virtuale (1) - Slide 9 L. Tarantino - a.a. 2004/2005 4
Settori e formattazione Ogni settore contiene 512 byte di dati, preceduti da un preambolo, e seguiti da un codice di correzione degli errori La formattazione è l operazione che predispone tracce e settori per la lettura e scrittura Circa il 15% dello spazio disco viene usato per gap, preamboli e codici di correzione degli errori Calcolatori Elettronici - La memoria virtuale (1) - Slide 10 L. Tarantino - a.a. 2004/2005 Accessi al disco Per accedere ai dati si pilotano i dischi attraverso un processo scomposto in tre fasi: viene posizionata la testina al di sopra della traccia opportuna (seek = ricerca, tempo di seek) si aspetta che il settore desiderato passi (ruotando) sotto la testina (latenza di rotazione o ritardo di rotazione) trasferimento di un settore (tempo di trasferimento) il tempo di trasferimento è funzione della dimensione del settore, della velocità di rotazione e della densità di memorizzazione di una traccia Calcolatori Elettronici - La memoria virtuale (1) - Slide 11 L. Tarantino - a.a. 2004/2005 5
Come usare la memoria secondaria oltre che per conservare permanentemente dati e programmi Più programmi potrebbero essere contemporaneamente in esecuzione La somma delle quantità di memoria che ognuno di essi richiede poer la sua esecuzione potrebbe eccedere le dimensioni della memoria principale Ma in un determinato istante di tempo un programma non ha bisogno di *tutto* il suo codice La memoria principale contiene solo parte del codice (e dei dati) di ogni programma E il resto? In memoria secondaria Lo preleviamo quando serve la memoria principale sta alla memoria secondaria come la cache sta alla memoria principale Calcolatori Elettronici - La memoria virtuale (1) - Slide 12 L. Tarantino - a.a. 2004/2005 Memoria virtuale (1) è come se esistesse una memoria principale maggiore di quella che in effetti c è un programma può anche da solo eccedere le dimensioni della memoria principale, tanto carico solo porzioni di esso È possibile fare un parallelismo tra cache e memoria virtuale Calcolatori Elettronici - La memoria virtuale (1) - Slide 13 L. Tarantino - a.a. 2004/2005 6
Memoria virtuale (2) Parallelismo tra cache e memoria virtuale cache e memoria principale vengono scomposte in insiemi di parole detti blocchi se non trovo un blocco in cache ho un miss e cerco il blocco in memoria principale memoria principale e memoria secondaria vengono scomposti in gruppi di parole detti pagine (la pagina ha dimensioni maggiori di un blocco) se non trovo una pagina in memoria principale ho una mancanza di pagina (page fault) e cercherò la pagina in memoria secondaria Requisito : minimizzare i page fault perchè la penalizzazione è altissima!! (vedi i tempi di accesso a mem. sec.) Calcolatori Elettronici - La memoria virtuale (1) - Slide 14 L. Tarantino - a.a. 2004/2005 Memoria virtuale - problematiche di base (2) Posizionamento della pagina sempre completamente associativa (gestita via software) Individuazione della pagina gestita via software Tecnica di sostituzione LRU o sue approssimazioni Strategia di scrittura sempre write-back Calcolatori Elettronici - La memoria virtuale (1) - Slide 15 L. Tarantino - a.a. 2004/2005 7