Esercizio 12campi dell'indirizzo per cache a due vie
In questa pagina 5
Testo (dimensionamento iniziale dei tre esercizi svolti in aula nella lezione del 14 novembre 2016). Indirizzi di 12 bit, parola di 1 byte, cache associativa a due vie. Determinare l'ampiezza dei campi parola, insieme ed etichetta nei tre casi:
- cache di 8 byte, blocchi di 2 byte;
- cache di 16 byte, blocchi di 2 byte;
- cache di 32 byte, blocchi di 4 byte.
Metodo
- Campo parola: (parole per blocco). Dipende dal numero di parole nel blocco, non dalla dimensione della parola.
- Linee = capacità / dimensione del blocco.
- Insiemi = linee / vie ("a due vie" = due linee per insieme, non due insiemi). Campo insieme = (insiemi).
- Etichetta = bit dell'indirizzo − insieme − parola.
Se la suddivisione iniziale è sbagliata, tutto il resto dell'esercizio (hit, miss, contenuto della cache) lo è di conseguenza. Vedi Memoria cacheBlocchi, linee ed etichette; scomposizione dell'indirizzo; associazione diretta, completamente associativa e associativa a insiemi con calcolo dei campi; politiche di rimpiazzo (LRU, FIFO, casuale); politiche di scrittura (write-through, write-back con bit sporco, write-allocate); dimensione del blocco; cache multilivello e separate; come ridurre i miss; quesiti sui campi dell'indirizzo.Memoria cache →.
Caso 1: 8 byte, blocchi di 2 byte
- Parola: blocco di 2 byte = 2 parole → 1 bit.
- Linee: ; insiemi: → 1 bit.
- Etichetta: 10 bit.
Caso 2: 16 byte, blocchi di 2 byte
- Parola: 1 bit.
- Linee: ; insiemi: → 2 bit.
- Etichetta: 9 bit.
Caso 3: 32 byte, blocchi di 4 byte
- Parola: 4 parole → 2 bit.
- Linee: ; insiemi: → 2 bit.
- Etichetta: 8 bit.
Uso dei campi: un esempio
Nel caso 1, l'indirizzo 0x100 = : parola = bit 0 = 0 (primo byte del blocco), insieme = bit 1 = 0, etichetta = . In caso di miss si porta in cache l'intero blocco: il byte 0x100 e il successivo 0x101. Se invece il campo parola vale 1, il byte riferito è il secondo del blocco e va portato insieme al precedente.
Versione ripasso
Testo (dimensionamento iniziale dei tre esercizi svolti in aula nella lezione del 14 novembre 2016). Indirizzi di 12 bit, parola di 1 byte, cache associativa a due vie. Determinare l'ampiezza dei campi parola, insieme ed etichetta nei tre casi:
- cache di 8 byte, blocchi di 2 byte;
- cache di 16 byte, blocchi di 2 byte;
- cache di 32 byte, blocchi di 4 byte.
Metodo: parola (parole per blocco); linee capacità/blocco; insiemi linee/2 (due linee per insieme, non due insiemi); etichetta insieme parola (Memoria cacheBlocchi, linee ed etichette; scomposizione dell'indirizzo; associazione diretta, completamente associativa e associativa a insiemi con calcolo dei campi; politiche di rimpiazzo (LRU, FIFO, casuale); politiche di scrittura (write-through, write-back con bit sporco, write-allocate); dimensione del blocco; cache multilivello e separate; come ridurre i miss; quesiti sui campi dell'indirizzo.Memoria cache →).
- 8 B, blocchi da 2 B: parola 1 bit; linee , insiemi 1 bit; etichetta .
- 16 B, blocchi da 2 B: parola 1 bit; linee 8, insiemi 4 2 bit; etichetta .
- 32 B, blocchi da 4 B: parola 2 bit; linee 8, insiemi 4 2 bit; etichetta .
Esempio (caso 1): 0x100 ha parola 0, insieme 0, etichetta ; in caso di miss arriva l'intero blocco (0x100 e 0x101).
Errori comuni: campo parola legato alla dimensione della parola e non al numero di parole nel blocco; due vie scambiate per due insiemi.