Si consideri un computer con cache-on-chip e le seguenti caratteristiche:
Si deve decidere se sia ragionevole collegare una nuova periferica di I/O al bus, e pertanto si vuole stimare quanta della ampiezza di banda del bus sia utilizzata. Si calcoli la percentuale della ampiezza di banda del bus utilizzata in media nei seguenti due casi:
- il 90% dei riferimenti alla memoria sono trovati nella cache (hit ratio = 0.9);
- la dimensione del blocco è di 2 parole;
- la CPU invia richieste alla cache con una frequenza di 107 parole al secondo;
- il 25% delle richieste della CPU sono scritture (scritture = 25%, letture = 75%);
- il bus può supportare il trasferimento di 107 parole al secondo, sia in lettura che scrittura (ampiezza di banda = 107);
- il bus legge o scrive una singola parola alla volta;
- si assuma che ad ogni istante il 30% delle linee nella cache siano state modificate ("sporcate");
- la cache, indipendentemente dalla politica di scrittura utilizzata, carichi dalla memoria il blocco da scrivere in caso di miss (write allocate).
a) la cache utilizza la politica di scrittura write through.
Soluzione:
Banda usata | Spiegazione | |
hit in lettura | 0 | riferimento trovato in cache, quindi nessun trasferimento memoria/cache (bus non utilizzato) |
miss in lettura | 107 * 0.1 * 0.75 * 2 | miss ratio = 1- hit ratio = 1 - 0.9 = 0.1
le letture sono il 75% del numero totale dei riferimenti dimensione blocco = 2 parole |
hit in scrittura | 107 * 0.9 * 0.25 * 1 | la politica di scrittura write through prescrive, in caso
di scrittura, di modificare la memoria ad ogni hit. Si accede però solo la
parola da modificare (1 parola).
le scritture sono il 25% del numero totale dei riferimenti, hit ratio = 0.9 |
miss in scrittura | 107 * 0.1 * 0.25 * (2+1) | ad ogni miss in scrittura si deve caricare un blocco (2 parole)
in cache a causa della politica write allocate, e scrivere 1 parola (quella
riferita dalla
CPU) a causa della politica di scrittura write through.
le scritture sono il 25% del numero totale dei riferimenti, hit ratio = 0.9 |
Totale banda usata = banda usata per hit in lettura +
" miss in lettura +
" hit in scrittura +
" miss in scrittura
= 0 + 107 * 0.1 * 0.75 * 2 +107 * 0.9 * 0.25 * 1
+ 107 * 0.1 * 0.25 * (2+1)
= 107 * 0.45
Totale banda usata
107 * 0.45
---------------------------- = ------------- = 0.45
Totale banda
107
b) la cache utilizza la politica di scrittura write back.
Soluzione:
Banda usata | Spiegazione | |
hit in lettura | 0 | riferimento trovato in cache, quindi nessun trasferimento memoria/cache (bus non utilizzato) |
miss in lettura | 107 * 0.1 * 0.75 * [ 2 * 0.3 + 2] | miss ratio = 1- hit ratio = 1 - 0.9 = 0.1
le letture sono il 75% del numero totale dei riferimenti dimensione blocco = 2 parole * il termine 2*0.3 si riferisce alla probabilità di scrivere in memoria il blocco "sporco" (0.3 è la probabilità del blocco di essere sporco). Si scrive in memoria il blocco "sporco" (2 parole) e si carica in cache il blocco riferito in lettura (altre 2 parole). |
hit in scrittura | 0 | non si genera traffico sul bus: si modifica il blocco in cache e lo si marca "sporco". |
miss in scrittura | 107 * 0.1 * 0.25 * [2 * 0.3 + 2] | ad ogni miss in scrittura si deve caricare un blocco (2 parole) in cache a causa della politica write allocate, e scrivere un blocco "sporco" in memoria (2 * 0.3). |
Totale banda usata = banda usata per hit in lettura +
" miss in lettura +
" hit in scrittura +
" miss in scrittura
= 0 + 107 * 0.1 * 0.75 * [2 * 0.3 + 2] + 0 + 107
* 0.1 * 0.25 * [2 * 0.3 + 2]
= 107 * 0.26
Totale banda usata
107 * 0.26
---------------------------- = ------------- = 0.26
Totale banda
107