La memoria cache. Lab di Calcolatori

Documenti analoghi
La gerarchia di Memoria

La gerarchia di Memoria

Cache: 1 livello della gerarchia di memoria

Università degli Studi di Cassino

Miglioramento delle prestazioni

Von Neumann Bottleneck

Introduzione alle gerarchie di memoria

Introduzione alle memorie cache. Cristina Silvano, 06/01/2013 versione 2 1

Architettura degli elaboratori - 2 -

Gerarchia di memoria

static dynamic random access memory

Struttura delle cache a indirizzamento diretto

Gerarchia di memoria

La Gerarchia delle Memorie. Calcolatori Elettronici II

Esercitazione su Gerarchie di Memoria

Struttura delle memorie cache

La Memoria Cache. Informatica B. Daniele Loiacono

Struttura delle memorie cache

Gerarchia di memoria

Esercitazione su Gerarchie di Memoria

Criteri di caratterizzazione di una memoria

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

Gerarchie di memoria. Gerarchie di memoria

Calcolatori Elettronici

Università degli Studi di Cassino e del Lazio Meridionale

Cache associativa. Possibili alternative per il trasferimento di un blocco dalla memoria inferiore alla memoria superiore:

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

La struttura gerarchica delle memorie

Calcolatori Elettronici A a.a. 2008/2009

La struttura gerarchica delle memorie

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

Gli attori principali di un architettura

Gerarchia di Memorie

Blocchi di più parole

Gerarchie di memoria. Gerarchie di memoria. Costi e capacità delle memorie. Gerarchie di memoria

Gerarchia di memoria Introduzione. Prof. William Fornaciari William Fornaciari

ORGANIZZAZIONE DEI CALCOLATORI LE GERARCHIE DI MEMORIA

8 bit per la parola nel blocco 10 bit per l insieme (gruppo) nella cache 12 bit di etichetta. Esercizio 3 Memoria Cache

La gerarchia di memorie (2)

Memoria Cache. La memoria cache

Calcolatori Elettronici A a.a. 2008/2009

La memoria - tecnologie

06/05/2009. Caratteristiche desiderabili Ampia capacità Velocità Economicità

Corso di Calcolatori Elettronici I. Memorie. Prof. Roberto Canonico

Struttura gerarchica delle memorie

Circuiti di Indirizzamento della Memoria

Cache e gerarchia di memoria

Lezione 22 La Memoria Interna (1)

Gerarchia di memorie

PRESTAZIONI. senza e con memoria cache

Il Sottosistema di Memoria

Mari, Buonanno, Sciuto Informatica e cultura dell informazione McGraw-Hill

Esercizi sulla memoria cache - Informatica 2 - L. Breveglieri 1

MEMORIA GERARCHIE DI MEMORIA

SOLUZIONI: Memoria virtuale

Prestazioni & Co: CPU, Memoria, I/O

La memoria - tecnologie

Gerarchie di memoria Politiche di rimpiazzo dei blocchi

Strutture di Memoria 1

Il Sottosistema di Memoria

Memoria Cache. G. Lettieri. 16 Marzo 2017

La gerarchia delle memorie. Sommario

Il Sottosistema di Memoria

Università degli Studi di Cassino e del Lazio Meridionale

Capitolo 5 Le infrastrutture HardWare. La memoria centrale

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

Memorie Caratteristiche principali

Lezione n.14. La memoria cache

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

Le gerarchie di memoria: memoria cache

Caching Andrea Gasparetto

La tecnologia delle memorie

Corso di Fondamenti di Informatica Elementi di Architettura

La memoria - tecnologie

1.4b: Hardware. (Memoria Centrale)

Sistemi operativi e distribuiti

aumenta il tempo di accesso; aumenta la capacità di memorizzazione; ma diminuisce il costo per bit.

Corso di laurea in ingegneria informatica Esame di sistemi operativi 21 gennaio 2009 SOLUZIONI

Gerarchia di Memoria e Memorie Cache. ma rallenta R / nw. Qui : modi di aumentare velocità di R / nw. dati e codice non tutti uguali

Le gerarchie di memoria: concetti e organizzazione. Mariagiovanna Sami

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

IL PROBLEMA DELLA MEMORIA

Il quadro di insieme. Tecnologie per la memoria e gerarchie di memoria. Un ripasso: latch D e flip-flop D. Un ripasso: clock

La memoria - tecnologie

La Memoria Cache. Informatica B. Daniele Loiacono

Calcolatori Elettronici. Gerarchia di memorie

Calcolo prestazioni cache (1)

Capitolo 11 La memoria cache

Memoria Virtuale. Considerazioni sulla paginazione e segmentazione

Memoria Virtuale e I/O

Memorie a semiconduttore

Fallimenti nella TLB

Esercitazione su Instruction Level Parallelism

La memoria: tecnologie di memorizzazione

La memoria: tecnologie di memorizzazione

Struttura di un elaboratore

Lezione 2 Principi Fondamentali di SO Interrupt e Caching. Sommario

Pentium: architettura di sistema

Esercizi vari. CPI e influenza cache

Transcript:

La memoria cache 1

Gap delle prestazioni DRAM - CPU 1000 CPU- DRAM Gap CPU Proc 60%/yr. (2X/1.5yr) 100 10 ProcessorMemory Performance Gap: (grows 50% / year) D R A M DRAM9%/yr.(2X/10 yrs) 1 1980 1981 1982 1983 1984 1985 1986 1987 1988 1989 1990 1991 1992 1993 1994 1995 1996 1997 1998 1999 2000 1980: no cache in μproc; 1995 2-level cache, 60% trans. on Alpha21164 μproc 2

Località ed Organizzazione Gerarchica Le RAM statiche sono veloci ma consumano molto ed offrono densità medio/basse Le RAM dinamiche consumano poco ed offrono densità molto alte ma sono lente rispetto alla CPU (ed ogni anno il divario aumenta) 3

Località I programmi godono della proprietà di località sia Spaziale sia Temporale Località temporale: È molto probabile che un istruzione verrà referenziata nuovamente a breve Località spaziale È molto probabile che vengano referenziate istruzioni vicine a quella attualmente in esecuzione La località dei programmi suggerisce una gerarchia di memoria Registri Cache (SRAM) Main Memory (DRAM) Livello Inferiore (Hard Disk) 4

Gerarchia di Memoria Livelli più alti Alta Velocità, Alto Costo, Piccole Dimensioni Livelli più bassi Bassa Velocità, Basso Costo, Grandi Dimensioni Ordine di ricerca di un dato in memoria: dai livelli più alti ai più bassi Il trasferimento di informazioni all interno della gerarchia avviene tra livelli adiacenti. Ogni livello è organizzato in blocchi di n byte 5

dove: Tempo medio di accesso alla memoria t AMAT = hit rate hit time + miss rate miss penalty hit rate: tentativi riusciti/numero di tentativi miss rate: miss rate= 1 hit rate Hit time=(t acc + tempo per determinare se dato è nel livello attuale) Miss penalty = (tempo accesso al livello inferiore + tempo trasferimento blocco) al Processore più alto livello di memoria più basso livello di memoria dal Processore blocco X blocco Y 6

Quattro domande per chi progetta la gerarchia di memoria Q1: Dove piazzare un blocco? (Block placement) Q2: Come faccio a sapere se un blocco è presente? (Block identification) Q3: Quale blocco devo sostituire nel caso di Miss? (Block replacement) Q4: Cosa succede in scrittura? (Write strategy) 7

Q1: Dove piazzare un blocco? Full Associative: Un blocco della main memory può essere mappato in un blocco qualsiasi della cache Direct Mapped: Data una memoria cache di NB blocchi, il blocco della memoria principale di indice j può essere mappato solo nel blocco della memoria cache di indice Index = j modulo NB L indice del blocco in cache è ottenuto considerando gli IL=log 2 NB bit meno significativi dall indice del blocco della memoria principale Indirizzo di blocco della main memory Index IL bit 8

Q1: Dove piazzare un blocco? N-way Set Associative Data una memoria cache di NS set, ciascuno di N blocchi, il blocco della memoria principale di indice j può essere mappato nel set della memoria cache di indice Index = j modulo NS All interno del set un blocco può essere piazzato in una posizione qualsiasi. L indice del set in cache è ottenuto considerando gli IL=log 2 NS bit meno significativi dall indice del blocco della memoria principale. 9

Q1: Dove piazzare un blocco? 10

Q2: Come faccio a sapere se un blocco è presente? Direct mapped 0 0 7 8 7 tag blocco 15 16 23 24 31 11

Q2: Come faccio a sapere se un blocco è presente? Data una cache direct mapped di NB blocchi e un main memory di NM blocchi, nello stesso blocco della cache possono essere mappati NM div NB blocchi. Per sapere se il blocco presente in cache è quello effettivamente cercato, oltre a memorizzare il blocco, viene memorizzata una informazione supplementare, il tag del blocco ovvero la parte più significativa dell indirizzo del blocco che si sta cercando. La memorizzazione del Tag richiede IB= log 2 (NM div NB) bit Indirizzo di blocco generato dal processore Tag Index Offset Mediante l index viene individuato il blocco in cache, mediante il Tag viene verificato se il blocco presente è quello cercato L offset individua la word all interno del blocco 12

Q2: Come faccio a sapere se un blocco è presente? Tag Index Offset =? MUX Hit/Miss 13

Q2: Come faccio a sapere se un blocco è presente? Data una cache Set Associative a N vie di NS set e un main memory di NM blocchi, nello stesso set della cache possono essere mappati NM div NS blocchi. La memorizzazione del Tag richiede IB= log 2 (NM div NS) bit Fissata la dimensione della memoria cache, all aumentare del numero di blocchi di ciascun set diminuisce il numero di set presenti ( diminuisce il numero di bit dell index e aumenta quello del tag) Nel caso di memoria full associative possiamo pensare la cache con un unico set e pertanto il tag coincide con l indirizzo del blocco 14

Q2: Come faccio a sapere se un blocco è presente? 15

Q3: Quale blocco devo sostituire nel caso di Miss? Random Least Recently Used Associativity: 2-way 4-way 8-way Size LRU Random LRU Random LRU Random 16 KB 5.18% 5.69% 4.67% 5.29% 4.39% 4.96% 64 KB 1.88% 2.01% 1.54% 1.66% 1.39% 1.53% 256 KB 1.15% 1.17% 1.13% 1.13% 1.12% 1.12% 16

Q4: Cosa succede in scrittura? Write through: L informazione e scritta sia in cache sia nel livello inferiore di memoria. Write back: L informazione e scritta solo in cache. Il blocco della cache modificato è scritto in main memory solo quando è sostituito. Ad ogni blocco è associato un dirty bit che viene settato a 1 se il blocco viene modificato, altrimenti resta a 0 Pro e contro di entrambi WT: un read miss non richiede scritture (in main memory) WB: più scritture sullo stesso blocco (in cache) comportano una sola scrittura in main memory WT è combinato con un write buffers in modo da non aspettare il livello inferiore di memoria. 17

Write buffer Processore Cache Write Buffer Main Memory A Write Buffer is needed between the Cache and Memory Processor: writes data into the cache and the write buffer Memory controller: write contents of the buffer to memory Write buffer is just a FIFO: Typical number of entries: 4 Works fine if: Store frequency (w.r.t. time) << 1 / DRAM write cycle Memory system designer s nightmare: Store frequency (w.r.t. time) > 1 / DRAM write cycle Write buffer saturation 18

Write buffer Solution for write buffer saturation: Use a write back cache Install a second level (L2) cache Processore Cache L2 Cache Main Memory Write Buffer 19

Write-miss Policy: Write Allocate versus Not Allocate Write allocate: in caso di miss in scrittura il blocco viene caricato in cache e poi viene fatta la scrittura sul blocco Write Not allocate: in caso di miss non viene fatto il caricamento del blocco in cache Tipicamente abbiamo le seguenti combinazioni: Write back con Write allocate Write through con Write Not allocate 20

Structural Hazard: Instruction and Data? Separate Instruction Size Instruction Cache Data Cache Unified Cache 1 KB 3.06% 24.61% 13.34% 2 KB 2.26% 20.57% 9.78% 4 KB 1.78% 15.94% 7.24% 8 KB 1.10% 10.19% 4.57% 16 KB 0.64% 6.47% 2.87% 32 KB 0.39% 4.82% 1.99% 64 KB 0.15% 3.77% 1.35% 128 KB 0.02% 2.88% 0.95% 21

Cache Performance CPU time = (CPU execution clock cycles + Memory stall clock cycles) x clock cycle time Memory stall clock cycles = (Reads x Read miss rate x Read miss penalty + Writes x Write miss rate x Write miss penalty) Memory stall clock cycles = Memory accesses x Miss rate x Miss penalty 22

Cache Performance CPUtime = IC x (CPIexecution + Mem accesses per instruction x Miss rate x Miss penalty) x Clock cycle time Misses per instruction = Memory accesses per instruction x Miss rate CPUtime = IC x (CPIexecution + Misses per instruction x Miss penalty) x Clock cycle time 23

Improving Cache Performance Average memory-access time = Hit time + Miss rate x Miss penalty (ns or clocks) Improve performance by: 1. Reduce the miss rate, 2. Reduce the miss penalty, or 3. Reduce the time to hit in the cache 24