Esercizio cache/bus

Soluzione

 

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:

 

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