Calcolo prestazioni cache (1) - Dipartimento di …alberto/didattica/Calcolatori/...Rilocazione o...

23
Calcolo prestazioni cache (1) Consideriamo gcc: miss rate x istruzioni = 2% miss rate x dati = 4% frequenza di letture e scritture=36% Consideriamo inoltre un sistema con: CPU: Clock=3Ghz, CPI ideale =1 (in assenza di stalli per accesso a RAM / 100% HIT RATIO) RAM: DDR 266 MHZ (2x133Mhz, 2 parole x ciclo di clock) Calcoliamo: Tempo di accesso alla RAM= 1000ns/133 cicli/ns= 7,51 ns (per la prima parola) Miss penalty= 7,51 ns/ 0,3 cicli di clock/ns=25 cicli di clock Sia I il numero totale di istruzioni del programma: cicli di stallo complessivi per i miss sulle istruzioni: 2% * 25* I = 0,5 * I cicli di stallo complessivi per i miss sui dati: 4% * 25* 36% *I=0,36 * I Cicli di stallo complessivi per miss: (0,25+0,18)*I=0,86 CPI effettivo =CPI ideale +cicli di stallo per miss=1,86 Differenza percentuale tra CPI effettivo e CPI ideale (CPI effettivo – CPI ideale )/= CPI ideale = 86%

Transcript of Calcolo prestazioni cache (1) - Dipartimento di …alberto/didattica/Calcolatori/...Rilocazione o...

Page 1: Calcolo prestazioni cache (1) - Dipartimento di …alberto/didattica/Calcolatori/...Rilocazione o Allocazione Dinamica In un sistema multi-utente o multi-applicazione per trasferire

Calcolo prestazioni cache (1)

Consideriamo gcc:– miss rate x istruzioni = 2%– miss rate x dati = 4%– frequenza di letture e scritture=36%

Consideriamo inoltre un sistema con:– CPU: Clock=3Ghz, CPIideale=1 (in assenza di stalli per accesso a RAM /

100% HIT RATIO)– RAM: DDR 266 MHZ (2x133Mhz, 2 parole x ciclo di clock)

Calcoliamo:Tempo di accesso alla RAM= 1000ns/133 cicli/ns= 7,51 ns (per la primaparola)Miss penalty= 7,51 ns/ 0,3 cicli di clock/ns=25 cicli di clock

Sia I il numero totale di istruzioni del programma:cicli di stallo complessivi per i miss sulle istruzioni: 2% * 25* I = 0,5 * Icicli di stallo complessivi per i miss sui dati: 4% * 25* 36% *I=0,36 * ICicli di stallo complessivi per miss: (0,25+0,18)*I=0,86CPIeffettivo=CPIideale+cicli di stallo per miss=1,86

Differenza percentuale tra CPIeffettivo e CPIideale

(CPIeffettivo – CPIideale)/= CPIideale = 86%

Page 2: Calcolo prestazioni cache (1) - Dipartimento di …alberto/didattica/Calcolatori/...Rilocazione o Allocazione Dinamica In un sistema multi-utente o multi-applicazione per trasferire

E ora: Overclocking! (*)

Supponiamo di poter portare il clock della CPU a 6Ghz (…e muniamoci di unabuon dissipatore!)

Poiché il tempo di accesso alla RAM rimane costante, la penalità di MissraddoppiaMiss penalty= 2 * Miss Penalty con clock dimezzato =50 cicli di clock

Quindi i cicli di stallo complessivi per miss raddoppiano:0,86*2= 1,72CPIeffettivo=CPIideale+cicli di stallo per miss=2,72

Tempo di esecuzione di un programma con I istruzioni su un processore di cui ènoto il tempo di clock:

I*CPI*TEMPO DI CLOCKTempo di esecuzione a 3GHZ / Tempo di esecuzione a 6 GHZ == (I*CPI3 GHZ*TEMPO CLOCK 3GHZ) / (I*CPI 6 GHZ*TEMPO CLOCK 6GHZ) == (I*CPI 3 GHZ*TEMPO DI CLOCK 3GHZ) / (I*CPI 6 GHZ*1/2 * TEMPO CLOCK

3GHZ) == CPI A 3 GHZ/ (CPI A 6 GHZ* 0.5) = 1,86 / (2,72 * 0,5) = 66%

Quindi raddoppiando la velocità del processore, il tempo di esecuzione non è sceso al 50% bensì al 66%

Page 3: Calcolo prestazioni cache (1) - Dipartimento di …alberto/didattica/Calcolatori/...Rilocazione o Allocazione Dinamica In un sistema multi-utente o multi-applicazione per trasferire

I Limiti dell’indirizzamento fisico

CPU Memoria

A0-A31 A0-A31

D0-D31 D0-D31

“Indirizzo fisico” delle lcoazioni di memoria

Dati e istruzioni

Tutti i programmi condividono un solospazio di indirizzi:

Lo spazio di indirizzi fisico

Non ci sono modi di limitare gli accessialle risorse del sistema

I programmi in linguaggio macchina devonoconoscere l’organizzazione della CPU

Page 4: Calcolo prestazioni cache (1) - Dipartimento di …alberto/didattica/Calcolatori/...Rilocazione o Allocazione Dinamica In un sistema multi-utente o multi-applicazione per trasferire

Soluzione: indirizzi virtuali

CPU Memoria

A0-A31 A0-A31

D0-D31 D0-D31

Dati e istruzioni

I programmi sono eseguti in uno spaziodi indirizzi virtuale

Il sistema operativo gestiscela traduzione dell’indirizzo

da indirizzo virtuale a indirizzo fisico

“Inidirizzo fisico”

Traduzioneindirizzo

Virtual Physical

“Indirizzo Virtuale”

La traduzione è fatta in hardware e l’hardwaresupporta altre caratteristiche desiderabili:

Protezione, Condivisione ...

Page 5: Calcolo prestazioni cache (1) - Dipartimento di …alberto/didattica/Calcolatori/...Rilocazione o Allocazione Dinamica In un sistema multi-utente o multi-applicazione per trasferire

Memoria Virtuale

La memoria principale è come una cache per i dispositivi dimemorizzazione secondari (dischi)

Vantaggi:• illusione di disporre di un quantitativo superiore di mem.

fisica• Rilocazione dei programmi• Protezione dei singoli processi (spazi di indirizzam. separati)

Physical addresses

Disk addresses

Virtual addresses

Address translation

Disco

Memoriaprincipale

SpazioIndirizzi

Page 6: Calcolo prestazioni cache (1) - Dipartimento di …alberto/didattica/Calcolatori/...Rilocazione o Allocazione Dinamica In un sistema multi-utente o multi-applicazione per trasferire

Rilocazione o Allocazione Dinamica

In un sistema multi-utente o multi-applicazione per trasferire datitra memoria principale e secondaria si usano blocchi didimensione fissa detti PAGINE :

• Il programmatore o il compilatore specificano gli indirizzirelativi all’interno di singoli blocchi di programma (IndirizzoVIRTUALE)

• Il sistema operativo definisce in fase di esecuzione, lelocazioni nelle quali il singolo blocco viene posto (IndirizzoFISICO):

• E’ necessario porre in corrispondenza gli indirizzi virtualiusati da un programma con i diversi indirizzi fisici PRIMA chequesti vengano usati per indirizzare la memoria

• La Tabella delle Pagine contiene informazioni relative a:• Indirizzo fisico.• Presenza in memoria.• Se modificato da quando in memoria.• Diritti di accesso

Page 7: Calcolo prestazioni cache (1) - Dipartimento di …alberto/didattica/Calcolatori/...Rilocazione o Allocazione Dinamica In un sistema multi-utente o multi-applicazione per trasferire

I 4 stadi della metamorfosi di un programma…

… e delle relative modalità di indirizzamento:

RELATIVO

Page 8: Calcolo prestazioni cache (1) - Dipartimento di …alberto/didattica/Calcolatori/...Rilocazione o Allocazione Dinamica In un sistema multi-utente o multi-applicazione per trasferire

Gli albori della memoria virtuale: OVERLAY

In principio se un programma eccedeva le dimensione della memoriafisica, il programmatore doveva direttamente gestire lo spostamentodei dati dalla memoria secondaria alla memoria principale.

1) Identificazione delle parti mutualmente esclusive che a run-timevenivano sovrascritte (overlay=sovrapposte).

2) Tali parti venivano caricate e scaricate sotto il diretto controllo delprogramma.

3) Occorreva accertarsi che un il programma non cercasse mai diaccedere ad un overlay non caricato e che gli overlay noneccedessero mai la dimensione della memoria fisica

Contro:Notevole carico sui programmatori (meccanismi di gestione moltocomplessi + necessità di disporre di implementazioni efficienti pernon penalizzare le performance del sistema)

Page 9: Calcolo prestazioni cache (1) - Dipartimento di …alberto/didattica/Calcolatori/...Rilocazione o Allocazione Dinamica In un sistema multi-utente o multi-applicazione per trasferire

Traduzione degli indirizzi con la tavola delle pagine

Una macchina disolito supportapagine di date

dimensioni(MIPS R4000):

Spazio indirizzifisico

Una posizione nella tavola delle pagine contiene l’indirizzo fisico della pagina corrispondente e altre informazioni utili: presenza in

memoria, se modificato da quando in memoria. diritti di accesso

Lo spazio virtuale è diviso inblocchi di memoria detti

PAGINEframeframe

frame

frame

Una pagina di memoria èspecificata da un indirizzo virtuale

indirizzovirtuale

Tavola dellePagine

)

SO gestisce la tavola

Page 10: Calcolo prestazioni cache (1) - Dipartimento di …alberto/didattica/Calcolatori/...Rilocazione o Allocazione Dinamica In un sistema multi-utente o multi-applicazione per trasferire

Velocizzare la traduzione degli indirizzi

Problema: se la tavola delle pagine risiede in memoria leprestazioni sarebbero inaccettabili

Soluzione: Una cache per le traduzioni degli indirizzi: TLB,translation lookaside buffer: ciascun blocco del TLB contienel’indirizzo del page frame (calcolato a partire dal page tableregister e dall’offset presente nella page table in ram)associato ad una data pagina virtuale

Valori tipici per il TLB:•Dimensione del TLB: 32 - 4096 elementi

•Dimensione del blocco: 1-2 elementi della page table.

•Tempo di HIT: 0,5 – 1 ciclo

•Penalità di Miss: 10-30 cicli

•Frequenza di Miss: 0,01% - 1%

NOTA: la frequenza di miss è molto bassa perché abbiamo una fortelocalità spaziale e temporale per gli indirizzi nella stessa pagina!

Page 11: Calcolo prestazioni cache (1) - Dipartimento di …alberto/didattica/Calcolatori/...Rilocazione o Allocazione Dinamica In un sistema multi-utente o multi-applicazione per trasferire

V=0 indica che lapagina o è su disco o

non è allocatai diritti di accesso

limitano ladisponibilità della

pagina al programma

In questo caso paginefisiche e virtuali hannola stessa dimensione

Traduzione degli indirizzi con il TLB

TLB

Tavoa dellepagine

2

0

1

3

indirizzo virtuale

page off

2frame page

250

indirizzo fisico

page off

Cache TLB

for ASID

Indirizzofisico

Page 12: Calcolo prestazioni cache (1) - Dipartimento di …alberto/didattica/Calcolatori/...Rilocazione o Allocazione Dinamica In un sistema multi-utente o multi-applicazione per trasferire

Page faults

Se i dati non sono in memoria principale, occorre recuperarli dal disco.

Enorme penalità di miss (milioni di cicli), il cui costo è dovuto in granparte al prelievo della prima parola (miss obbligaotri):

– le pagine sono scelte sufficientemente grandi (esempio da 4KB)

– ridurre i page faults è importante:

• collocazione completamente associativa

• Implementazione di politiche di gestione complesse (LRU)

– Usare il write-through è troppo costoso così si usa il writeback(scrittura di una pagina per volta + dirty bit)

3 2 1 011 10 9 815 14 13 1231 30 29 28 27

Page offsetVirtual page number

Virtual address

3 2 1 011 10 9 815 14 13 1229 28 27

Page offsetPhysical page number

Physical address

Translation

2^32 ind.virtuali (4 Gb)

2^18 page frames (1 Gb)

Page 13: Calcolo prestazioni cache (1) - Dipartimento di …alberto/didattica/Calcolatori/...Rilocazione o Allocazione Dinamica In un sistema multi-utente o multi-applicazione per trasferire

Page Faults

Il sistema operativo tiene traccia di quali processi e quali indirizzi virtualiusino una data pagina fisica.

Se le pagine fisiche sono esaurite, in caso di page fault, occorresostituire qualche pagina (swap out) in base ad un criterio cheminimizzi la possibilità di dover accedere a quella pagina di lì a breve:LRU.Approssimazione di LRU tramite l’uso di un bit di riferimento settatoad uno ogni volta che si accede alla pagina e periodicamenteresettato.

Quando la politica di gestione della gerarchia non è efficiente siverificano troppi page faults, si ha il fenomeno di Thrashing:

La CPU spende il proprio tempo ad allocare e disallocare aree di memoriasenza più svolgere lavoro utile.

CAUSA:cattivo dimensionamento della memoria rispetto ai dati utilizzati dalprogramma che opera sul sistema.

Page 14: Calcolo prestazioni cache (1) - Dipartimento di …alberto/didattica/Calcolatori/...Rilocazione o Allocazione Dinamica In un sistema multi-utente o multi-applicazione per trasferire

TLB e CACHE nella DECStation3100

• Cache acorrispondenzadiretta

• TLB completamenteassociativo.

• Cache indicizzatatramite indirizzifisici, per cui, primadi accedervi, èsempre necessarioutilizzare il TLB.

• Speciale gruppo diistruzioni usato dalSO per caricarelinee del TLB

• Elemento darimpiazzare nel TLBscelto casualmente.

Page 15: Calcolo prestazioni cache (1) - Dipartimento di …alberto/didattica/Calcolatori/...Rilocazione o Allocazione Dinamica In un sistema multi-utente o multi-applicazione per trasferire

TLB e cache

Yes

Deliver datato the CPU

Write?

Try to read datafrom cache

Write data into cache,update the tag, and put

the data and the addressinto the write buffer

Cache hit?Cache miss stall

TLB hit?

TLB access

Virtual address

TLB missexception

No

YesNo

YesNo

Write accessbit on?

YesNo

Write protectionexception

Physical address

Page 16: Calcolo prestazioni cache (1) - Dipartimento di …alberto/didattica/Calcolatori/...Rilocazione o Allocazione Dinamica In un sistema multi-utente o multi-applicazione per trasferire

Meccanismi di protezione

La memoria virtuale permette che più processicondividano (e riusino) la stessa memoria principale

I processi in esecuzione possono eseguire operazioni discrittura in memoria

PROBLEMA:occorre garantire che non sia possibile per un processo

leggere o scrivere all’interno dello spazio diindirizzamento di un altro processo o del sistemaoperativo

Se così non fosse è possibile per un processo accederee modificare i dati di un altro programma e delsistema operativo

Page 17: Calcolo prestazioni cache (1) - Dipartimento di …alberto/didattica/Calcolatori/...Rilocazione o Allocazione Dinamica In un sistema multi-utente o multi-applicazione per trasferire

Meccanismi di protezione

La memoria virtuale permette che più processi condividano (e riusino) lastessa memoria principale

PROBLEMA:occorre garantire che non sia possibile per un processo leggere o scrivere

all’interno dello spazio di indirizzamento di un altro processo o delsistema operativo:

NOTA: Ciascun processo ha la propria page table, per cui è sufficiente che:1) il SO deve impedire che un processo possa cambiare il riferimento alla

propria page table.2) Il SO deve poter modificare le tabelle delle pagine.

SOLUZIONE:1) Porre le page tables nello spazio di indirizzamento del SO.2) In caso di richiesta di condivisione di pagine tra processi è compito del

sistema operativo effettuare le necessarie operazioni sulle rispettivepage tables.

Page 18: Calcolo prestazioni cache (1) - Dipartimento di …alberto/didattica/Calcolatori/...Rilocazione o Allocazione Dinamica In un sistema multi-utente o multi-applicazione per trasferire

Meccanismi di protezione

Il problema si risolve con il supporto dell’hardware:1) (Almeno) 2 modi di funzionamento (modo utente/modo Kernel - o

anche SO) che indicano se è in esecuzione un processo utente oil SO.

2) Impedire ad un processo eseguito in modo utente di accedere adalcune informazioni di stato della CPU (le relative operazionisono eseguibili solo in modo kernel):1) Bit modo utente/modo kernel2) Page table register3) TLB

3) Permettere il passaggio sicuro da modo utente a modo kernel eviceversa:• System Call: Il meccanismo è simile a quello delle

interruzioni hw (context switch), in questo caso si parla diinterruzioni software.

Page 19: Calcolo prestazioni cache (1) - Dipartimento di …alberto/didattica/Calcolatori/...Rilocazione o Allocazione Dinamica In un sistema multi-utente o multi-applicazione per trasferire

Meccanismi di protezione

Bisogna garantire la sicurezza degli accessi:

PROBLEMA:• In caso di cambio di processo o di contesto, in presenza di

TLB, non è sufficiente cambiare il puntatore alla pagetable.

• Occorre invalidare il TLB così da forzarlo a caricare letraduzioni degli indirizzi del nuovo processo.

• NOTA: Se la frequenza di cambio di contesto è troppo altale prestazioni si deteriorano!

Problemi (e soluzioni) analoghe possono sorgere con lacache, nel caso in cui essa sia indicizzata tramite indirizzivirtuali.

Page 20: Calcolo prestazioni cache (1) - Dipartimento di …alberto/didattica/Calcolatori/...Rilocazione o Allocazione Dinamica In un sistema multi-utente o multi-applicazione per trasferire

Paginazione vs Segmentazione

Oggi si usano le pagine..

In passato era diffuso uno schema con blocchi didimensioni variabili, detti SEGMENTI:

– insieme di bytes contigui e posti in relazionelogica, definiti dal compilatore a partire daimoduli o blocchi dei programmi di alto livello.

– Il segmento è il blocco elementare che vienetrasferito fra le gerarchie

Page 21: Calcolo prestazioni cache (1) - Dipartimento di …alberto/didattica/Calcolatori/...Rilocazione o Allocazione Dinamica In un sistema multi-utente o multi-applicazione per trasferire

Segmentazione

VANTAGGI• La struttura del segmento corrisponde alla naturalesuddivisione dei dati e dei programmi.• E' agevole gestire meccanismi di separazione e di protezioneper i dati dei singoli utenti.

SVANTAGGII segmenti hanno dimensioni fisiche diverse, quindi:

• allocazione complessa• frammentazione (esterna)• necessità di ricompattazione della memoria.

CAUSE PER IL MANCATO UTILIZZO DELLO SPAZIO• Regioni vuote. Frammenti di memoria non utilizzati.• Regioni occupate dal sistema di gestione.• Regioni occupate da informazioni che non vengono utilizzate.

Page 22: Calcolo prestazioni cache (1) - Dipartimento di …alberto/didattica/Calcolatori/...Rilocazione o Allocazione Dinamica In un sistema multi-utente o multi-applicazione per trasferire

Segmentazione: frammentazione

La frammentazione esterna riduce l'utilizzazione della memoria quandorisulta necessario disporre i dati dei segmenti in celle di memoriacontigue. Lo stesso problema si verificava sui sistemi di memoriasecondaria (dischi) quando i ogni file doveva essere memorizzato insegmenti adiacenti.

S1

S2

S3

S4

Memoria libera

Page 23: Calcolo prestazioni cache (1) - Dipartimento di …alberto/didattica/Calcolatori/...Rilocazione o Allocazione Dinamica In un sistema multi-utente o multi-applicazione per trasferire

Segmentazione: Ricompattazione

La memoria non può essere sfruttata completamente.

Tra le aree occupate rimangono zone di piccola dimensione nelle qualinon possono essere allocati segmenti.

Per migliorare l'utilizzazione della memoria: ricompattazione!

S1

S2

S3

S4

S1

S2

S3

S4