Calcolatori Elettronici -...

21
Calcolatori Elettronici La memoria gerarchica La memoria virtuale

Transcript of Calcolatori Elettronici -...

Calcolatori Elettronici

La memoria gerarchica

La memoria virtuale

Calcolatori Elettronici - La memoria virtuale (2) - Slide 2 L. Tarantino - a.a. 2011/2012

Come usare la memoria secondaria

… oltre che per conservare permanentemente dati e programmi

Idea

Tenere parte del codice in mem. princ. e il resto in mem. secondaria

Trattare la mem. principale come una cache per la mem. secondaria

Vantaggi

Molti programmi contemporaneamente in esecuzione anche se la

somma delle quantità di memoria che ognuno di essi richiede eccede

le dimensioni della memoria principale

un singolo programma può eccedere le dimensioni della memoria

principale (tanto carico solo porzioni di esso)

Meccanismi base

memoria principale e memoria secondaria vengono scomposti in

gruppi di parole detti pagine

se non trovo una pagina in memoria principale ho una mancanza di

pagina (page fault) e cercherò la pagina in memoria secondaria

Calcolatori Elettronici - La memoria virtuale (2) - Slide 3 L. Tarantino - a.a. 2011/2012

Memoria virtuale - problematiche di base

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

minimizzare i page fault perchè la penalizzazione è altissima!!

Calcolatori Elettronici - La memoria virtuale (2) - Slide 4 L. Tarantino - a.a. 2011/2012

Un passo indietro

Il programma eseguibile è prodotto dal linker che integra librerie e

moduli oggetto prodotti dall’assemblatore

Il linker lavora come se avesse a sua disposizione l’intera memoria

virtuale

Esempio

se ho indirizzi da 32 bit posso indirizzare fino a 232 byte

lo spazio di indirizzamento virtuale va considerato scomposto in

pagine virtuali

durante l’esecuzione alcune pagine virtuali si trovano nella memoria

principale (caricate in pagine fisiche) le altre si trovano nella memoria

secondaria

spazio di indirizzamento virtuale

Calcolatori Elettronici - La memoria virtuale (2) - Slide 5 L. Tarantino - a.a. 2011/2012

Corrispondenze tra pagine virtuali e fisiche

DIM_PAG_VIRT = DIM_PAG_FIS

in realtà le pagine virtuali risiedono sempre tutte in mem.secondaria

le pagine in mem. principale sono un sottoinsieme di quelle in

memoria secondaria

Memoria

secondaria Memoria virtuale

di un programma

Memoria

principale

pagine fisiche

Calcolatori Elettronici - La memoria virtuale (2) - Slide 6 L. Tarantino - a.a. 2011/2012

Trattamento dell’indirizzo

.. prosegue il parallelismo tra cache e memoria virtuale

Se la memoria principale è divisa in blocchi l’indirizzo viene diviso in

due porzioni:

La memoria virtuale è divisa in pagine, quindi l’indirizzo viene diviso

in due porzioni:

indirizzo del bloccoMP spiazzamento

lg2 DIM_MEM_PRINC

lg2 NBLKMP lg2 DIM_BLK

indirizzo pagina virtuale spiazzamento nella pagina

lg2 DIM_MEM_VIRT

lg2 NPagVirt lg2 DIM_PAG

Calcolatori Elettronici - La memoria virtuale (2) - Slide 7 L. Tarantino - a.a. 2011/2012

Indirizzo virtuale e indirizzo fisico (1)

Quando si accede in memoria?

— durante le fasi di fetch o di accesso ai dati (lettura/scrittura)

A quale parola si accede?

— a quella il cui indirizzo è nel PC (se fetch) o in AluOut (se accesso

ai dati)

l’indirizzo di interesse è generato dalla CPU

Come viene generato l’indirizzo?

— in base alla evoluzione del processo, facendo riferimento allo

spazio di indirizzamento virtuale (l’unico conosciuto dal

programma)

la CPU genera indirizzi virtuali

Calcolatori Elettronici - La memoria virtuale (2) - Slide 8 L. Tarantino - a.a. 2011/2012

Indirizzo virtuale e indirizzo fisico (2)

la CPU genera indirizzi virtuali la mem.princ. vuole indirizzi fisici

è necessario un processo di traduzione

???

indirizzo pagina virtuale spiazzamento nella pagina

lg2 NPagVirt lg2 DIM_PAG

indirizzo

virtuale

indirizzo pagina fisica spiazzamento nella pagina

lg2 NPagFis lg2 DIM_PAG

indirizzo

fisico

Osservazione

ind_pag_virt e

ind_pag_fis in

genere hanno

dimensioni diverse

Calcolatori Elettronici - La memoria virtuale (2) - Slide 9 L. Tarantino - a.a. 2011/2012

Posizionamento della pagina

Politica completamente associativa

se ci sono pagine fisiche libere si carica la pagina virtuale dove c’è

posto

se non ci sono pagine libere entrano in gioco politiche di sostituzione

— l’implementazione software permette di usare algoritmi sofisticati

e strutture dati complesse per tenere traccia dell’effettivo utilizzo

delle pagine

— i miglioramenti ottenuti per il miss rate compensano il costo di tali

algoritmi

Calcolatori Elettronici - La memoria virtuale (2) - Slide 10 L. Tarantino - a.a. 2011/2012

Individuazione della pagina (1)

La pagina cercata può essere ovunque

Per ricordarci la collocazione delle pagine usiamo una tabella delle

pagine

indirizzo di pagina fisica

.

.

.

.

.

.

una riga per ogni

pagina virtuale . . .

pagina caricata

in mem. principale

1

0

pagina NON caricata

in mem. principale

Valid.

Calcolatori Elettronici - La memoria virtuale (2) - Slide 11 L. Tarantino - a.a. 2011/2012

Individuazione della pagina (2)

indirizzo di pagina fisica

.

.

.

.

.

.

Valid.

indirizzo pagina virtuale spiazzamento nella pagina

lg2 NPagVirt lg2 DIM_PAG

indirizzo

virtuale

indirizzo pagina fisica spiazzamento nella pagina

lg2 NPagFis lg2 DIM_PAG

indirizzo

fisico

hit/miss

Calcolatori Elettronici - La memoria virtuale (2) - Slide 12 L. Tarantino - a.a. 2011/2012

La tabella delle pagine (1)

ogni processo in esecuzione ne possiede una distinta

le tabelle delle pagine risiedono in memoria

bisogna individuare quella del processo attivo (il processo “servito”

dalla CPU)

il registro della tabella delle pagine contiene l’indirizzo in memoria

della tabella delle pagine del processo attivo

Altre informazioni nella tabella (associate alla pagina)

— bit di uso (per la strategia di sostituzione LRU)

— bit di modifica (per la strategia di scrittura write back)

Calcolatori Elettronici - La memoria virtuale (2) - Slide 13 L. Tarantino - a.a. 2011/2012

Esempio

Determinare l’occupazione di memoria della tabella se

— indirizzo virtuale 32 bit

— dim_pagina 4 KB

— dim_riga 4 byte

DIM_TABELLA = NRIGHE * DIM_RIGA

NRIGHE = NPAG_VIRT = DIM_MEM_VIRT / DIM_PAGINA

NRIGHE = 232 Byte / 4 KByte = 232 / 212 = 220

DIM_TABELLA = 220 * 4 byte = 4 MB

Calcolatori Elettronici - La memoria virtuale (2) - Slide 14 L. Tarantino - a.a. 2011/2012

Esercizio

Determinare l’occupazione di memoria della tabella se

— indirizzo virtuale 32 bit

— dim_pagina 16 KB

— dim_riga 4 byte

DIM_TABELLA = NRIGHE * DIM_RIGA

NRIGHE = NPAG_VIRT = DIM_MEM_VIRT / DIM_PAGINA

NRIGHE = 232 Byte / 16 KByte = 232 / 214 = 218

DIM_TABELLA = 218 * 4 byte = 1 MB

Calcolatori Elettronici - La memoria virtuale (2) - Slide 15 L. Tarantino - a.a. 2011/2012

La tabella delle pagine (2)

… lo spazio occupato dalla tabella delle pagine è elevato!

Tecniche per ridurre l’occupazione di memoria della tabella

— consentire alla tabella di crescere via via che il processo richiede

più spazio (più pagine), aggiungendo nuove righe

— progettare strutture con una occupazione di memoria legata al

numero di pagine in mem. princ. (minore del numero di pagine

virtuali) TABELLA DELLE PAGINE INVERTITA

— paginare la tabella delle pagine

Calcolatori Elettronici - La memoria virtuale (2) - Slide 16 L. Tarantino - a.a. 2011/2012

Gestione dei page fault

.. quando il bit il validità vale 0

l’esecuzione dell’istruzione viene interrotta per caricare la pagina

dalla memoria secondaria

dove è collocata nel disco?

— deve esistere una seconda tabella che, per ogni pagina virtuale, dà

l’indirizzo della pagina su disco

Osservazione

il sistema operativo crea lo spazio su disco per tutte le pagine di un

processo all’atto della creazione del processo stesso

quando il caricamento della pagina è completato si può riprendere

l’esecuzione dell’istruzione. Due possibilità:

— l’istruzione viene rieseguita da capo (facile da implementare nella

processore MIPS, lo stato non è cambiato, si erano effettuate solo

letture dal banco e il calcolo dell’indirizzo)

— l’istruzione viene ripresa dal punto in cui è stata interrotta (in

macchine con linguaggi più complessi, ma bisogna salvare e poi

ripristinare lo stato complessivo)

Calcolatori Elettronici - La memoria virtuale (2) - Slide 17 L. Tarantino - a.a. 2011/2012

Considerazioni sulle prestazioni

Ogni accesso a memoria richiede un accesso alla tabella delle pagine

La tabella delle pagine sta in memoria

Gli accessi in memoria allora sono due :

— il primo per ricostruire l’indirizzo fisico

— il secondo per accedere alla parola di interesse

Località

— se in un istante di tempo T accedo ad una parola della pagina X

c’è un elevata probabilità che per un considerevole intervallo di

tempo accederò sempre alla stessa pagina (anche considerando

le dimensioni della pagina)

— perchè accedere ogni volta alla tabella delle pagine per recuperare

sempre lo stesso indirizzo di pagina fisica?

— me lo scrivo da qualche parte (dove posso accedere velocemente)

e lo recupero da lì finché rimango nella stessa pagina

Calcolatori Elettronici - La memoria virtuale (2) - Slide 18 L. Tarantino - a.a. 2011/2012

Translation Lookaside Buffer (TLB)

buffer di supporto alle traduzioni

E’ una piccola cache dove riporto le coppie:

ind_pag_virt ind_pag_fis

relative alla pagine visitate più recentemente

quando si richiede una pagina virtuale, il suo indirizzo viene cercato

nel TLB:

— se c’è, recupero dal TLB l’indirizzo di pagina fisica senza accedere

alla tabella delle pagine

— se non c’è ho un fallimento nel TLB:

accedo alla tabella delle pagine

sostituisco una delle coppie del TLB con la nuova coppia

Il TLB, per ogni pagina, contiene anche i bit di uso e di modifica, per

non dover accedere alla tabella delle pagine in caso di loro

aggiornamento

— quando una coppia viene eliminata dal TLB i relativi bit devono

essere copiati nella tabella delle pagine

Calcolatori Elettronici - La memoria virtuale (2) - Slide 19 L. Tarantino - a.a. 2011/2012

TLB e Cache coesistono

vedi figura 5.24 pag. 401 del libro di testo

(seconda edizione : Figura 7.24, pag. 417)

Calcolatori Elettronici - La memoria virtuale (2) - Slide 20 L. Tarantino - a.a. 2011/2012

Calcolatori Elettronici - La memoria virtuale (2) - Slide 21 L. Tarantino - a.a. 2011/2012

Due casi reali

Il libro di testo mostra il confronto tra la gerarchia di memoria

dell’AMD Opteron X4 e dell’Intel Nehalem

VEDERE paragrafo 5.10, pag, 432