Cache e gerarchia di memoria



Похожие документы
Memoria Virtuale. Anche la memoria principale ha una dimensione limitata. memoria principale (memoria fisica) memoria secondaria (memoria virtuale)

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

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

Architettura hardware

La memoria centrale (RAM)

Organizzazione della memoria

Capitolo 11 La memoria cache

Laboratorio di Informatica

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

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

Architettura dei computer

Gerarchia delle memorie

Valutazione delle Prestazioni. Valutazione delle Prestazioni. Architetture dei Calcolatori (Lettere. Tempo di risposta e throughput

Calcolatori Elettronici. La memoria gerarchica La memoria virtuale

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

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

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

Organizzazione della memoria principale Il bus

Le gerarchie di memoria: memoria cache

Architettura dei calcolatori II parte Memorie

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

1.4b: Hardware. (Memoria Centrale)

Sistema operativo: Gestione della memoria

I componenti di un Sistema di elaborazione. Memoria centrale. È costituita da una serie di CHIP disposti su una scheda elettronica

IL PROBLEMA DELLA MEMORIA

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

MEMORIA GERARCHIE DI MEMORIA

Gestione della memoria. Paginazione Segmentazione Segmentazione con paginazione

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

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

Memoria secondaria. Architettura dell elaboratore. Memoria secondaria. Memoria secondaria. Memoria secondaria

Gestione della memoria centrale

STRUTTURE DEI SISTEMI DI CALCOLO

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

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

Fondamenti di informatica: un po di storia

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

Il memory manager. Gestione della memoria centrale

Sistemi Operativi. 5 Gestione della memoria

SISTEMI DI ELABORAZIONE DELLE INFORMAZIONI

Esame di INFORMATICA

Architettura del computer (C.Busso)

I Thread. I Thread. I due processi dovrebbero lavorare sullo stesso testo

LABORATORIO DI SISTEMI

CPU. Maurizio Palesi

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

Calcolatori Elettronici

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

Prestazioni CPU Corso di Calcolatori Elettronici A 2007/2008 Sito Web: Prof. G. Quarella prof@quarella.

Architettura di un computer

Strutturazione logica dei dati: i file

Architettura di un calcolatore

Struttura del calcolatore

La Gestione delle risorse Renato Agati

Sistemi Operativi MECCANISMI E POLITICHE DI PROTEZIONE. D. Talia - UNICAL. Sistemi Operativi 13.1

MECCANISMI E POLITICHE DI PROTEZIONE 13.1

CLASSE III A I.T.I. (ABACUS) SISTEMI DI ELABORAZIONE E TRASMISSIONE DEI DATI VERIFICA DI RECUPERO

Introduzione. Il principio di localizzazione... 2 Organizzazioni delle memorie cache... 4 Gestione delle scritture in una cache...

Sistemi Operativi GESTIONE DELLA MEMORIA SECONDARIA. D. Talia - UNICAL. Sistemi Operativi 11.1

Sistemi Operativi. Memoria Secondaria GESTIONE DELLA MEMORIA SECONDARIA. Struttura del disco. Scheduling del disco. Gestione del disco

Architettura del calcolatore

Con il termine Sistema operativo si fa riferimento all insieme dei moduli software di un sistema di elaborazione dati dedicati alla sua gestione.

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

Cosa è un foglio elettronico

Unità Periferiche. Rete Di Controllo

Approccio stratificato

C. P. U. MEMORIA CENTRALE

Architettura di un sistema di calcolo

Testi di Esercizi e Quesiti 1

Memoria Virtuale. Lezione 29 Sistemi Operativi

DMA Accesso Diretto alla Memoria

Calcolatori Elettronici

L informatica INTRODUZIONE. L informatica. Tassonomia: criteri. È la disciplina scientifica che studia

Gerarchia di memorie

Appunti di informatica. Lezione 6 anno accademico Mario Verdicchio

Il Sistema Operativo

SISTEMI OPERATIVI. Prof. Enrico Terrone A. S: 2008/09

Memoria Secondaria o di Massa

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

GESTIONE DELLA MEMORIA CENTRALE

DEFINIZIONE 1/2 memoria ad accesso casuale RAM

Scheduling della CPU. Sistemi multiprocessori e real time Metodi di valutazione Esempi: Solaris 2 Windows 2000 Linux

Транскрипт:

Cache e gerarchia di memoria

Cache e gerarchia di memoria Gerarchia di Memoria: motivazioni tecnologiche per caching. Località: perché il caching funziona Processor Input Control Memory Datapath Output

Tecnologie I vari tipi di memoria sono realizzati con tecnologie diverse e si differenziano per Costo per bit immagazzinato Tempo di accesso (o latenza): ritardo fra l'istante in cui avviene la richiesta e l'istante in cui il dato è disponibile Modo di accesso (seriale o casuale). Tecnologie Memorie a semiconduttore con tecnologia VLSI (memoria cache e DRAM) Memorie magnetiche (memoria secondaria). Memorie ottiche (memoria secondaria).

Memoria interna, principale e secondaria Registri interni alla CPU Visibili o no al programmatore Memorizzano temporaneamente dati e istruzioni Dimensioni: centinaia di bytes Tempo di accesso: tempo CPU Memoria principale (DRAM) Memorizza dati e istruzioni dei programmi La CPU vi accede direttamente Memoria secondaria (dischi, DVD,..) dimensioni: Gbytes, Tbytes velocità: decine di millisecondi (milioni di nanosecondi)

1980-2003, CPU più veloce delle DRAM... Prestazioni (1/ latenza) 10000 1000 100 10 19 80 D.: come risolvere questa differenza? R.: utilizzare memorie cache tra CPU e DRAM. Create a memory hierarchy. CPU 60% per yr 2X in 1.5 yrs 19 90 Anno CPU Gap grew 50% per year DRAM 9% per yr 2X in 10 yrs 1977: Apple II DRAM 20 00 20 05 CPU 1000 ns DRAM: 400 ns

Le memorie RAM statiche La cella elementare è costituita da 6 transistori mos che formano un FLIP- FLOP. L informazione permane stabile in presenza della tensione di alimentazione Tempi di accesso rapidi. Costi elevati.

Le memorie RAM dinamiche La cella elementare è costituira da un condensatore che viene caricato (1) o scaricato (0). La tensione sul condensatore tende a diminuire (millisecondi) e quindi deve essere ripristinata o rinfrescata Tempi di accesso alti La semplicità della cella consente capacità molto elevate in spazi (e costi) contenuti

Velocità CPU e DRAM Nell architettura VonNeuman il canale di comunicazione tra la CPU e la memoria è il punto critico (collo di bottiglia) del sistema. La tecnologia consente di realizzare CPU sempre più veloci e memorie sempre più grandi MA la velocità di accesso delle memorie non cresce così rapidamente come la velocità della CPU

Gerarchia di memoria La soluzione ottimale per un sistema di memoria è: Costo minimo Capacità massima Tempi di accesso minimi Soluzione approssimata: GERARCHIA Tecnologie diverse possono soddisfare al meglio ciascuno dei requisiti. Una gerarchia cerca di ottimizzare globalmente i parametri.

Gerarchia di memoria Più livelli di memoria Al crescere della distanza dalla CPU cresce il costo e la capacità di memorizzazione. In ogni istante di tempo i dati sono copiati solamente tra ciascuna coppia di livelli adiacenti, per cui ci si può concentrare su due soli livelli.

Caches: latenza Data in upper memory returned with lower latency. Data in lower level returned with higher latency. Dati Indiirizzi Small, fast Large, slow Da CPU Alla CPU

2005 Gerarchia di Memoria: Apple imac G5 gestiti dal compilatore gestiti da hardware gestiti dal Sistema Oper., da hardware, applicazione Reg L1 Inst L1 Data L2 DRAM Disk Size 1K 64K 32K 512K 256M 80G Latency (cycles) 1 3 3 11 160 10e7 Obiettivo: creare l illusione di una grande economica e veloce memoria: cioè che i programmi possano indirizzare uno spazio di memoria grande come un disco alla velocità con cui accedono ai registri interni imac G5 1.6 GHz 1299.00

90 nm, 58 M transistors L1 (64K Instruction) 512K L2 R e gi st er s (1K) CS 152 L14: Cache I L1 (32K Data) PowerPC 970 FX UC Regents Spring 2005 UCB

Latenza: tempi accesso lettura Reg L1 Inst L1 Data L2 DRAM Disk Size 1K 64K 32K 512K 256M 80G Latency (cycles) 1 3 3 11 160 1e7 Latency (sec) 0.6n 1.9n 1.9n 6.9n 100n 12.5m Hz 1.6G 533M 533M 145M 10M 80 Nota: tempi di accesso per accedere un dato in modo casuale per accedere ad un blocco di dati in locazioni adiacenti i tempi di accesso per il secondo, il terzo,.. dato sono inferiori Ad esempio con N banchi di memoria separati posso accedere a N dati con soli N cicli in più del primo (accesso interleaving)

Principio di località Un sistema di memoria gerarchico è efficiente se la modalità di accesso ai dati sono prevedibili Il principio di località : in un dato istante i programmi fanno accesso ad una porzione relativamente piccola del loro spazio di indirizzamento (sia dati che istruzioni) Località temporale: è probabile che un oggetto a cui si è fatto riferimento venga nuovamente richiesto in tempi brevi (Es: cicli in un programma: le istruzioni sono richieste ripetutamente) Località spaziale: è probabile che gli oggetti che si trovano vicini ad un oggetto a cui si è fatto riferimento vengano richiesti in tempi brevi (Es: esecuzione sequenziale in un programma; accesso agli elementi di un vettore)

Località dei Programmi Indirizzi di Memoria: un punto per accesso No localita Località Temporale Località Spaziale Time Donald J. Hatfield, Jeanette Gerald: Program Restructuring for Virtual Memory. IBM Systems Journal 10(3): 168-192 (1971)

L algoritmo di caching Località Temporale: mantieni i dati richiesti recentemente vicino alla CPU Località Spaziale: Muovi blocchi contigui di dati nei livelli di memoria più vicini alla CPU

Terminologia del Caching Hit: Dati sono nel livello richiesto Hit Rate: la frazione di dati trovata nel livello richiesto Tempo Hit: tempo di accesso ai datiinclude il costo di non trovare il dato Miss: dati devono essere reperiti nel livello inferiore Miss Rate: 1 - Hit Rate Tempo di Hit << Miss Penalty penalità di Miss: tempo di rimpiazzare il blocco mancante + tempo di consegna alla CPU del dato

Hit & Miss Si ha hit (successo nell accesso) quando i dati richiesti dal livello superiore (ad es. il processore) compaiono in qualche blocco nel livello inferiore. Si ha un miss (fallimento nell accesso) se il dato non è presente nel livello immediatamente inferiore ed occorre accedere al livello più distante. Uno dei parametri principali per la valutazione delle prestazioni di una gerarchia di memoria è l hit ratio (tasso di hit), ovvero la frazione degli accessi in ram che si sono risolti al livello più vicino. Il miss ratio è definito come 1-hit ratio ed indica la percentuale degli accessi che non sono stati soddisfatti dal livello più vicino nella gerarchia. Tempo di hit: tempo necessario a prelevare il dato dal livello più vicino, comprendendo il tempo necessario a determinare se l accesso è un hit o un miss. Tempo di miss: tempo necessario a sostituire un dato nel livello più vicino con il blocco corrispondente nel livello inferiore, più il tempo necessario per consegnare il dato al livello richiedente (ad es. il processore).

La cache Il termine cache è stato usato per la prima volta per indicare il livello della gerarchia tra la CPU e la memoria principale, ma è oggi utilizzato per indicare qualsiasi tipo di gestione della memoria che tragga vantaggio dalla località degli accessi. Il meccanismo è semplice: Il processore interagisce direttamente SOLO con la cache. Quando il processore richiede una parola non presente nella cache (miss) la parola viene trasferita dalla memoria nella cache Occorre definire dei meccanismi per: 1. Conoscere se un dato è nella cache 2. Nel caso in cui il dato sia presente, conoscere la sua posizione ed accedervi. Queste operazioni devono essere eseguite nel minor tempo possibile, poiché la velocità con cui si riesce ad accedere ai dati nella cache influisce molto sulle prestazioni dell intero sistema di memoria.

Corrispondenza tra indirizzi cache Problema: ad una posizione in cache sono associate più parole di memoria. Come è possibile sapere se il dato presente nella cache corrisponde effetivamente alla parola richiesta? Memoria

I tag Oltre ai dati richiesti, la cache deve permettere la memorizzazione di informazioni aggiuntive (tags) che permettano la corretta gestione della gerarchia di memorie. Per associare univocamente una parola di memoria ad una posizione in una cache direct mapped è sufficiente memorizzare, assieme al dato, anche la parte più significativa dell indirizzo, quella che non corrisponde ai bit utilizzati come indice nella cache. Per distinguere le posizioni della cache contenenti dati validi (es.all avvio del processore la cache è vuota ed il suo contenuto non è significativo), il metodo più comune è aggiungere un bit di validità.

Sfruttare la località spaziale Per trarre vantaggio del principio di località spaziale, è opportuno prevedere che i blocchi della cache siano più ampi di una sola parola. In caso di miss saranno così caricate diverse parole adiacenti che hanno un elevata probabilità di essere richieste nel prossimo futuro. Ogni linea di cache memorizza più parole e si usa il campo Offset del blocco per selezionare la parola richiesta tra quelle presenti nella linea Nota: una linea della cache contiene più dati ma i bit di indirizzo e i tag non sono replicati. Perché?

CPU spazio indirizzi: vettore di blocchi Nel seguito assumiamo indirizzo di memoria 32-bit blocco di memoria: 32 byte 31 Numero del blocco Byte # 27 bits 5 bits Il compito di una cache è di memorizzare le pagine più popolari 0 Block # 0 1 2 3 4 5 6 7 2 27-1 32-byte blocks. memoria

Cache a corrispondenza diretta-direct mapped A ciascuna parola di memoria corrisponde esattamente una locazione della cache. Se il numero di blocchi nella cache e 2 N allora la posizione corrispondente della parola in cache è data dai N bits meno significativi dell indirizzo Esempio: Numero di elementi nella cache: 4 Bit per indirizzare una locazione della cache:log 2 (8)=2 Indirizzo della parola di memoria= 0111 01010 0010 0100 Posizione in cache: 00 (posizione 0)

Cache direct mapped Blocchi di un dato colore possono comparire SOLO nella stessa linea di cache 32-bit Memory Address 31 7 6 5 4 Numero del blcoo Colore Byte # 25 bits 2 bits 5 bits Indica la riga della cache: sono sufficiente 2 bit per specificare un colore fra quattro 0 Block # 0 1 2 3 4 5 6 7 2 27-1 32-byte blocks.

Cache Direct Mapped: esempio 31 7 6 5 4 0 indirizzo memoria (32 bit) Cache Tag (25 bit) Indice No. Byte Ex: 0x01 24 Cache Tag 0 DATI Cache Ex: 0x00 Byte 31... Byte 1 Byte 0 = Byte 31... Byte 1 Byte 0 Hit: si verifica se i 25 bit significativi dell indirizzo sono uguali a tag memorizzato in cache Bit Validità Se si verifica Hit il dato viene fornito alla CPU

Dimensione di una cache direct mapped Calcolo della dimensione totale di una cache a corrispondenza diretta Il numero totale di bit in una cache a corrispondenza diretta con 2 n blocchi è maggiore di: 2 n x dim.blocco= 2 n x 32 bits Infatti Assumendo che la cache abbia una capacità di 2 n parole, e blocchi di 32 bit (4 bytes) il campo tag ha dimensione: 32 (n+2) bit, (2 bit sono usati per l offset del byte, indir. su byte), la dimensione è pari a 2 n x (dim.blocco+dim.tag+dim.bit validità)= 2 n x (32+32-(n+2)+1)= 2 n x (63-n) bits

Indirizzo i di memoria : un punto per accesso ) I limiti di cache direct-mapped... Cosa succede se i blocchi hanno lo stesso colore? Time Donald J. Hatfield, Jeanette Gerald: Program Restructuring for Virtual Memory. IBM Systems Journal 10(3): 168-192 (1971)

Cache Fully associative Nelle cache direct mapped a ciascun blocco della memoria corrisponde una specifica locazione nella cache Cache fully associative (completamente associativa): ogni blocco può essere collocato in qualsiasi locazione della cache Vantaggio: massima utilizzazione della cache Contro: per ricercare un blocco nella cache è necessario cercarlo in tutte le linee della cache. La ricerca sequenziale è troppo lenta Per velocizzare la ricerca è necessario effettuarla in parallelo, associando un comparatore a ciascuna posizione della cache. COSTO MOLTO ELEVATO

Cache Fully Associative Ideali ma costose... 31 5 4 0 Cache Tag (27 bit) No. Byte Block # ( Tags ) 0 26 Cache Data Holds 4 blocks Ex: 0x04 = Byte 31... Byte 1 Byte 0 = Byte 31... Byte 1 Byte 0 = = Hit: esiste una linea della cache in cui tag indirizzo= tag in cache Bit Validità Se si verifica Hit il dato viene fornito alla CPU

Cache set associative Nelle cache direct mapped a ciascun blocco della memoria corrisponde una specifica locazione nella cache. In una cache fully associative ogni blocco può essere collocato in qualsiasi locazione della cache. Un buon compromesso è costituito dalle cache setassociative (anche n-way set associative) : ciascun blocco di memoria ha a disposizione un numero fisso n (>=2) di locazioni in cache. In questo caso la ricerca di un blocco richiede di confrontare il tag in n posizioni In questo modo si trae vantaggio della possibilità senza aumentare il costo di ricerca in modo inaccettabile

Cache 2-Set Associative N-way set associative -- N è il numero di blocchi di ciascun colore (in fig. 2) Cache Tag (26 bits) Ex: 0x01 Index (2 bits) Byte Select (4 bits) Cache Data Valid Cache Tags Cache Tags Valid Cache Data Cache Block Cache Block Cache Block = = Cache Block 16 bytes NOTA: in esempio la dim. blocco è la metà per mantenere costante il numero di bit dati in cache Hit Left Hit Right Hit: il dato è trovato nel blocco a destra o in quello a sinistra 16 bytes PowerPC 970: 32K 2-way set associative L1 D-cache

Cache 4-set associative

Politiche di rimpiazzamento in cache Nota: nel caso 2-way è faciel realizzare LRU Dopo un miss in cache se non ci sono blocchi disponibili, quale blocco bisogna rimuovere dalla cahce (per fare posto al blocco chiesto)? L ultimo blocco richiesto (LRU)? Auspicabile MA difficile da implementare in cache complet. associat. Dimens. Random LRU 16 KB 5.7% 5.2% 64 KB 2.0% 1.9% 256 KB 1.17% 1.15% Blocco scelto a caso (random)? Facile da realizzare; MA è efficiente? Miss Rate per cache 2-way Set Associative

Gestione delle operazioni di scrittura Le operazioni di scrittura devono essere gestite in maniera più complessa rispetto alle letture. Se le scritture alterassero solo lo stato della cache e non venissero propagate fino alla memoria principale si creerebbero situazioni di incoerenza Due modalità: write-through: assicurare la coerenza di cache e memoria scrivendo sempre i dati sia nella memoria che nella cache. write back: scrivere solo quando necessario

Write through 1. Accedere alla cache usando come indice i bit meno significativi dell indirizzo 2. Scrivere i rimanenti bit dell indirizzo nel campo tag, scrivere la parola di dato e settare il bit di validità 3. Scrivere la parola nella memoria principale utilizzando l indirizzo completo Svantaggi: tutte le operazioni di scrittura implicano scrittura nella memoria principale, durante le quali il processore rimane in fase di stallo. Possibile soluzione: buffer delle scritture. Limiti: processore può generare richieste di scritture ad un tasso maggiore di quello con cui la memoria porta a termine le scritture Nota: per scrivere non è necessario effettuare accessi in lettura alla memoria principale.

Write back Una tecnica alternativa che offre prestazioni in genere superiori è il write-back. I blocchi sono effettivamente scritti in memoria principale solo quando è necessario rimpiazzarli nella cache Svantaggio: maggiore complessità implementativa rispetto al write-through Vantaggio: minore numero di accessi alla memoria principale e quindi maggiore efficienza. Infatti, se una variabile viene modificata più volte mentre è in cache si accede alla memoria una sola volta (quando esce dalla cache)

Gestione delle scritture Quando si scrive è necessario verificare sempre offset. All atto della scrittura si confronta il tag in cache con quello associato all indirizzo in cui scrivere. Se sono uguali è sufficiente aggiornare la parola in cache. Altrimenti è necessario caricare l intero blocco in cache e quindi riscrivere la parola che ha causato il miss.

Politiche di scrittura Politica I miss in scrittura producono operazioni di lettura? Scritture ripetute sullo stesso dato provocano più scritture in memoria di livello inferiore? Write-Through I dati scritti in cache sono anche scritti nella memoria di livello inferiore No Sì Write-Back I dati sono scritti solo in cache Si aggiorna la memoria di livello infer. solo quando si ha miss Sì No Altra questione: le scritture di blocchi NON in cache implicano l aggiorname nto della cache o solo la scrittura dei dati in memoria di livello inferiore?

Prestazioni di cache Tempo esecuz. Numero programma istruz. progr. (sec.) Cicli clock per istr. * * Secondi per ciclo Cause di miss miss obbligatori miss di conlfitto miss di capacità Tipicamente miss rate varia da 1% a 15% NOTA: il numero di cicli di clock per istr. dipende dal Tempo Medio di Accesso in Memoria per istr. e dati (TMAM) TMAM = Hit Time + (Miss Rate x Miss Penalty) Obiettivo: Ridurre TMAM NOTA: migliorare un fattore può imlicare l aumento di altri fattori!

Cause di miss in cache: Miss di conflitto cache M-way assoc.: N blocchi sono usati che sono in conflitto ma M < N Miss Rate Soluzione: aumentare M (Associatività) Miss rate improvement equivalent to doubling cache size. cache associative. Altre soluzioni Aumenta la dimensione blocco. (perché funziona?) NOTA: aumentare associatività può aumentare hit time aumentare dimensione del blocco (a parità di dimensione della cache può aumentare altri tipi di conflitto Dimens. Cache (KB) Se aumenta Hit time aumenta TMAM TMAM = Hit Time + (Miss Rate x Miss Penalty)

Altre cause di miss in cache Miss di capacità La Cache non può contenere tutti i blocchi richiesti dal programma Soluzione: aumentare le dimensioni della cache Miss obbligatori La prima volta che si richiede un blocco il Miss è inevitabile Soluzione: indovinare e caricare PRIMA i blocchi che saranno chiesti nel futuro Miss rates (relativo fra i diversi tipi di conflitto) Obbligatori Dimensione Cache (KB)

Miss rate e dimensione dei blocchi D: Perché al crescere della dim. del blocco il miss rate prima diminuisce e poi cresce?

Altre domande su cache Quali tipi di miss si verificano in cache associative di dimensioni infinite? R. miss obbligatori: bisogna portare un blcoo in memoria. In una cache associtaiva di dimensione finita, quali tipi di miss si verificano (oltre agli obbligatori)? R. miss di capacità. I programmi possonoi usare più blocchi di quanto entrino in cache. Inoltre quali tipi di miss asi verificano in una cache set-associative o direct-mapped? R. miss di conflitto. Calcola il numero di bit richiesto da cache k- set associative.

Esempio di accesso ad una cache a corrispondenza diretta

La sequenza di accessi considerata

Stato Iniziale

Primo accesso: 22=MISS

Secondo Accesso: 26=MISS

Terzo Accesso: 22 = HIT!

Quarto Accesso: 26 = HIT!

Quinto Accesso: 16 = MISS

Sesto Accesso: 3 = MISS

Settimo Accesso: 16 = HIT

Ottavo Accesso: 18 = Miss + Sovrascrittura

Cache multi livello Aggiunta di un secondo livelo di cache: spesso la cache primaria è nello stesso chip del processore si introduce un altro cache basato su tecnologia SRAM tra la cache primaria e la memoria principale (DRAM) La penalità di miss è ridotta sensibilmente se il dato è trovato sulla cache di secondo livello Esempio: CPI di 1.0 con elaboratore a 500Mhz con 5% miss rate, 200ns DRAM accesso Aggiungendo 2nd level cache con tempo di accesso di 20ns time ilmiss rate si abbassa a 2% Utilizzo di multilevel caches: Si tenta di ottimizzare il tempo di hit sulla cache di primo livello Si tenta di ottimizzare il tasso di miss sulla cache di secondo livello.

Prestazioni delle cache a più livelli Miss penalty L2 cache= 5 ns/0,5 ns/cicli di clock = 10 cicli di clock CPI effettivo =CPI ideale +cicli di stallo per istruzione dovuti ad accesso a RAM+cicli di stallo per istruzione dovuti ad accesso a L2 cache CPI effettivo =1+5%*10+2%*100=3,5 Dato un Processore a 2 GHZ (tempo di clock 0.5 ns) con CPI ideale =1,0 (se tutti gli accessi sono risolti nella L1 cache). Tempo di accesso a RAM=50ns; Miss-rate L1 cache=5% Miss penalty = 50 ns/ 0,5 ns/cicli di clock = 100 cicli di clock CPI effettivo =CPI ideale +cicli di stallo per istruzione dovuti ad accesso a RAM CPI effettivo =1+5%*100=6 Supponiamo di introdurre una cache di secondo livello con : Tempo di accesso= 5 ns ed grande abbastanza da avere: Miss-rate L2 cache=2%