Cache Flashcards
A cosa serve la cache?
A memorizzare dati con alta probabilità di accesso. Rende così più veloce l’utilizzo di questi dati da parte del processore
Hit e Miss rate
la frequenza di successi e insuccessi nel trovare il dato che serve nella cache
Miss rate = 1 - Hit rate
Hit time
Tempo necessario a capire se il dato è presente o no nella cache
Miss penalty
Tempo necessario per copiare il dato dalla ram alla cache per usarlo
Miss time
Miss time = Hit time + Miss penalty
Tempo medio di acceso alla memoria
Tm = (hit rate * hit time) + (miss rate * miss time)
Da quanti bit è formato l’indirizzo? come sono divisi?
28 bit : etichetta
2 bit : spiazzamentp di parola (quale parola nel dato voglio, possono esserci più parole nello stesso blocco)
2 bit : spiazzamneto di byte (indica quale dei 4 byte della parola mi interessa)
tot : 32bit
Tipi di cache
- completamente associativo
- indirizzamento diretto
- set-associativo a n vie
Cache completamente associativa
Il dato può essere copiato in un qualsiasi blocco della cache, devo scorrere tutta la cache quindi per trovarlo.
Disegno
Cache ad indirizzamento diretto
Il dato può essere copiato in un solo blocco della cache secondo regole precise
ex : indiriz_cache = indiriz_ram MOD(blocchi tot cache)
Disegno
Cache associativa a n vie
Seleziono il set con il metodo dell’indirizzamento diretto ( indiriz_cache = indiriz_ram MOD(numero di set) ). Poi copio il dato in un qualsiasi slot di quel set secondo il metodo completamente associativo.
Disegno
Quali sono i criteri con cui sostituisco i dati presenti nella cache con un nuovo dato da utilizzare?
- Sostituzione casuale (semplice ma rischiosa)
- Least Recently Used (dispendiosa devo tener traccia di quanto uso frequentemente i vari dati)
- First In First out
Write through
Scrivo simultaneamente su cache e ram.
Pro e contro Write through
- Ho bisogno di un buffer(ram è più lenta della cache)
- Gestione fallimenti migliore
- Più semplice del write back
Write back
scrivo sulla cache che poi scrive sulla ram