You are on page 1of 85

Esercitazione di Calcolatori Elettronici

Ing. Battista Biggio

Corso di Laurea in Ingegneria Elettronica

Esercitazione 2 (Capitolo 3)
Memoria Cache
Memoria Disco
Codice di Hamming

Sommario
• Memoria cache
– Indirizzamento della memoria cache
– Allocazione di blocchi e insiemi
• Metodo diretto
• Metodo associativo su insiemi
• Metodo completamente associativo
– Calcolo dell’hit rate di cache
• Gerarchia di memorie
– Calcolo del tempo medio di accesso alla gerarchia a due e
tre livelli
– Hit rate condizionale
• Memoria a disco
• Codice di Hamming

Calcolatori Elettronici Memoria Cache - Ing. Battista Biggio 2

Indirizzamento della memoria cache

m bit n bit

Block frame Offset

Bit di indirizzamento della primaria

• Il Block Frame, costituito dagli m bit più significativi
dell’indirizzo, individua la posizione, ovvero l’indirizzo,
del blocco nella memoria primaria.

• L’ Offset è costituito dagli n bit meno significativi
dell’indirizzo. Tale gruppo individua la posizione della
parola all’interno di un dato blocco.

Calcolatori Elettronici Memoria Cache - Ing. Battista Biggio 3

Indirizzamento della memoria cache

m bit n bit

Block frame Offset

Shift di n bit

• Per ottenere il “block frame”, è necessario uno
scorrimento a destra di tanti bit quanti sono i bit di offset.
• Ciò equivale a dividere l’intero indirizzo per 2n, ovvero
per il numero di parole in ciascun blocco:
– il quoziente è il Block frame;
– il resto fornisce invece l’Offset.

Calcolatori Elettronici Memoria Cache - Ing. Battista Biggio 4

nel metodo associativo su insiemi. Quest’ultimo rappresenta: – l’indirizzo del blocco di “cache”. – l’indirizzo dell’insieme di “cache”. Calcolatori Elettronici Memoria Cache .Indirizzamento della memoria cache t bit r bit TAG Cache index BLOCK FRAME • Il Block Frame è ulteriormente ripartito in TAG e in Cache Index. Battista Biggio 5 .Ing. nel metodo diretto.

è necessario uno scorrimento a destra di r bit. Calcolatori Elettronici Memoria Cache . – Il resto fornisce il Cache Index.Indirizzamento della memoria cache t bit r bit TAG Cache index Shift di r bit • Per ottenere TAG e Cache Index. Battista Biggio 6 . il numero di blocchi/insiemi in cache: – Il quoziente è il TAG. Ciò equivale a dividere il Block Frame per 2r.Ing.

Ricapitolando ! Address $ BlockFrame = Int # " 2 n &% ! Address $ Offset = Mod # " 2 n &% ! BlockFrame $ CacheIndex = Mod # &% " 2r ! BlockFrame $ TAG = Int # &% " 2r Calcolatori Elettronici Memoria Cache . Battista Biggio 7 .Ing.

4 5 6 Mem. 64 in memoria cache. Battista Biggio 8 . Cache 7 0 1 Blocchi 2 3 Calcolatori Elettronici Memoria Cache . 1 – la cache contenga 4 blocchi. per 3 un totale di 128 parole in memoria primaria. 2 – ogni blocco contenga 16 parole. Primaria – la memoria primaria contenga 8 0 blocchi.Ing.Struttura della memoria • Si assuma che: Mem.

1 2 – E’ necessario l’indirizzo del blocco di memoria primaria. Ma quel blocco è vuoto. Cache indizzo primaria pari a 10310=(1100111)2. Battista Biggio 9 . – Poi si individua il blocco di cache dove si dovrebbe trovare la parola con l’operazione: Cache Index = Mod(6/4) = 2. dato da: Block Frame 3 = Int(103/16) = 6. Supponiamo che la memoria richieda l’accesso alla parola di Mem.Indirizzamento diretto • <TAG 1 bit><Cache Index 2 bit><Offset 4 bit> • La cache è vuota.Ing. Calcolatori Elettronici Memoria Cache . 0 – Il sistema va prima a cercare la parola nella cache.

• Viene dunque prelevato tutto il blocco 6 (ovvero tutte le parole contenute in quel blocco) della primaria e copiato nel blocco 2 della cache. Primaria 0 1 Mem.Ing.Indirizzamento diretto • Il sistema va allora a prelevare il blocco di primaria dove si trova la parola 103. Cache 2 0 3 1 4 2 5 3 6 7 Calcolatori Elettronici Memoria Cache . Battista Biggio 10 . Mem.

– Il corrispondente blocco di cache è Mod(2/4) = 2. invalidando il principio di località (cache miss). • Si rende allora necessario sovrascrivere il blocco 2 di cache con il nuovo blocco di primaria. Battista Biggio 11 .Indirizzamento diretto: un incoveniente… • Supponiamo adesso che il sistema voglia accedere alla parola di indirizzo 35.Ing. – Il blocco di primaria è Int(35/16) = 2. Calcolatori Elettronici Memoria Cache . • Ma il blocco 2 è stato appena occupato dal blocco 6 della primaria (lo si verifica attraverso il TAG).

Battista Biggio 12 . • <TAG 2 bit><Cache Index 1 bit><Offset 4 bit> Mem.Ing. generando così due insiemi. Primaria 0 Mem. possiamo usare il metodo associativo su insiemi. Cache 1 2 Insieme 0 3 4 5 Insieme 1 6 7 Calcolatori Elettronici Memoria Cache .Indirizzamento associativo su insiemi • Se raggruppiamo a due a due i blocchi della cache.

Indirizzamento associativo su insiemi • La cache è vuota. Primaria richieda l’accesso alla parola di indizzo primaria pari a 0 103. Calcolatori Elettronici Memoria Cache . Battista Biggio 13 . Supponiamo che la memoria Mem. E’ 5 necessario l’indirizzo del 6 blocco di memoria primaria.Ing. 1 2 3 • Il sistema va prima a cercare 4 la parola nella cache. 7 dato da: Int(103/16) = 6.

Calcolatori Elettronici Memoria Cache .Indirizzamento associativo su insiemi • Il passo successivo è individuare l’insieme della cache dove cercare il blocco.Ing. Cache dell’insieme 0 per verificare la presenza del blocco di primaria Insieme 0 cercato. con l’operazione: Mod(6/2) = 0 • Attraverso il TAG il sistema scansiona i due blocchi di cache Mem. Si rende necessario il Insieme 1 trasferimento del blocco 6 di primaria in uno dei due blocchi di cache liberi. • L’insieme è però vuoto. Battista Biggio 14 .

Calcolatori Elettronici Memoria Cache .Indirizzamento associativo su insiemi • Il blocco 6 di primaria viene così allocato nel primo blocco disponibile (6) dell’insieme 0 di cache.Ing. non è necessaria alcuna sostituzione: il blocco 2 di primaria verrà allocato nel blocco libero. • Supponiamo ora che il sistema richieda la parola di indirizzo 35. La situazione blocco libero della cache è quella descritta in figura. Battista Biggio 15 . L’insieme di cache ha indirizzo Mod(2/2) = 0 (6) • Poiché c’è ancora un blocco libero in (2) quell’insieme. presente nel blocco Int(35/16) = 2 di primaria.

essendo D la dimensione del blocco: Word (0) = N " D Word ( D ! 1) = N " D + D ! 1 • N si ottiene dalla formula: & Word ( x) # N = Int $ ! % D " Calcolatori Elettronici Memoria Cache .Da ricordare • Per sapere l’indirizzo della prima e dell’ultima parola del blocco N di primaria.Ing. Battista Biggio 16 .

Esercizio (27/10/2000) • Si consideri un calcolatore che dispone di una memoria principale di 32 KB e di una memoria cache di 4 KB. 1. Battista Biggio 17 . Spiegare come vengono interpretati gli indirizzi di memoria primaria per recuperare l’informazione contenuta nella cache nel caso venga usata la modalità di indirizzamento: – Diretto. in cui ciascun insieme è formato da 4 blocchi. E’ possibile accedere al singolo byte e la memoria è suddivisa in blocchi da 64 B. Calcolatori Elettronici Memoria Cache . – Associativo su insiemi.Ing.

Esercizio (cont’d) 2. Calcolare il numero di “cache hit” e “cache miss” per questa sequenza di richieste.Ing. Calcolatori Elettronici Memoria Cache . Battista Biggio 18 .…. Si consideri la cache di cui alla domanda precedente. Si ipotizzi inoltre che la cache sia inizialmente vuota. Ipotizzare che il processore acceda ai byte di indirizzo 0. 2. 4095 in questo ordine. 1. indirizzata con la modalità associativa su insiemi.

• Metodo set-associativo: – <TAG 5 bit><Cache Index 4 bit><Offset 6 bit> – Poiché gli insiemi di cache sono 16= 24.Ing. e così via. i blocchi di primaria da 0 a 15 vengono allocati nel primo blocco libero di ciascun insieme – I blocchi di primaria da 16 a 31 vengono allocati nel secondo blocco libero degli insiemi da 0 a 15.Soluzione • Metodo diretto: – <TAG 3 bit><Cache Index 6 bit><Offset 6 bit> – Poiché le parole sono in sequenza. Battista Biggio 19 . Calcolatori Elettronici Memoria Cache . il sistema richiede l’accesso ai primi 212/ 26= 26 blocchi di memoria primaria. indirizzati da 0 a 15.

2. Calcolatori Elettronici Memoria Cache . che provoca il caricamento del blocco 0 nell'insieme 0. …. cui corrisponde un "hit ratio" pari a 0.98 (4032/4096). • Dal momento che le richieste sono in tutto 64. 63 vengono quindi soddisfatte dalla cache ("cache hit"). avremo 64 "cache miss" e 63*64=4032 "cache hit". • Le successive richieste dei dati di indirizzo 1.Soluzione (cont’d) • Quando viene richiesta la parola 0 avremo un "cache miss”.Ing. Battista Biggio 20 . in cache.

– con il metodo associativo su insiemi. Battista Biggio 21 . • Calcolare il numero di bit necessario per indirizzare la memoria primaria. La memoria è indirizzabile al singolo byte.Esercizio (23/09/1999) • Il sistema di memoria di un calcolatore è formato da una memoria principale di dimensione pari a 64MB e da una memoria cache di dimensione pari a 512KB. con insiemi di 4 blocchi.Ing. Calcolatori Elettronici Memoria Cache . • Dire inoltre come viene indirizzata la cache. sapendo che la memoria è suddivisa in blocchi da 4 byte: – con il metodo diretto.

Battista Biggio 22 .Ing.Soluzione • 26 bit di indirizzamento • Metodo diretto: – <tag 7 bit> <cache index 17 bit> <offset 2 bit> • Metodo associativo su insiemi a 4 vie: – <tag 9 bit> <cache index 15 bit> <offset 2 bit> Calcolatori Elettronici Memoria Cache .

2. 012B? 3. Spiegare come vengono interpretati gli indirizzi logici a 16 bit per recuperare l’informazione contenuta nella cache. quali valori possono avere le cifre x e y? Calcolatori Elettronici Memoria Cache . La cache usi un metodo di allocazione del tipo “associativo su insiemi” (16 insiemi). L’indirizzamento usato è a 16 bit. è possibile accedere al singolo byte e la memoria è suddivisa in blocchi da 4 byte. 1. FF1A. Se gli indirizzi A7x1 e 03By possono essere assegnati allo stesso insieme di cache. A017. Battista Biggio 23 .Esercizio (5/11/1998) • Si consideri un calcolatore che dispone di una memoria cache di 256 byte. A che cosa corrispondono gli indirizzi: CC84.Ing.

Ing. byte 00 A017 ==> A0 00|01 01|11 ==> insieme 5.F. y =(0 0 y1 y0)2 = 0. Battista Biggio 24 . byte 11 FF1A ==> FF 00|01 10|10 ==> insieme 6. <TAG 10 bit> <Cache Index 4 bit> <Offset 2 bit> 2.1.7. tag 01(00)2.B.2. A7x1  A7 x3 x2|x1 x0 0 0 |0 1 03By  03 1 0 |1 1 y3 y2|y1 y0 x =(x3 x2 1 1 )2 = 3. byte 10 012B ==> 01 00|10 10|11 ==> insieme 10. tag CC(10)2. tag FF(00)2. Calcolatori Elettronici Memoria Cache . CC84 ==> CC 10|00 01|00 ==> insieme 1.Soluzione 1. byte 11 3. tag A0(00)2.3.

C334. Indicare in quali blocchi di primaria si trovano i seguenti byte (indirizzi in esadecimale): 111B. sia quella “diretta”. costituita da 32 blocchi indirizzabili. 1. E' possibile accedere al singolo byte e la modalità di indirizzamento usata per la cache. D01D. 2.Ing. Calcolatori Elettronici Memoria Cache . AAAA. come vengono interpretati gli indirizzi logici per recuperare l’informazione contenuta nella cache.Esercizio (29/01/2004) • Si consideri un calcolatore che dispone di una memoria principale di 64 Kbyte suddivisa in blocchi di 8 byte. Battista Biggio 25 . precisando il significato e la funzione dei diversi campi. Spiegare.

Si supponga che il byte di indirizzo 1A1A sia memorizzato in cache. Battista Biggio 26 .Ing. quanti sarebbero gli hit di cache (ipotizzando la cache inizialmente vuota)? 4. Se tali parole venissero richieste sequenzialmente. Indicare in quali blocchi di cache devono essere memorizzati i byte del passo precedente. Indicare gli indirizzi di tutti gli altri byte memorizzati nello stesso blocco di cache. Calcolatori Elettronici Memoria Cache .Esercizio (cont’d) 3.

Soluzione 1. • 64Kbyte = 216 byte • 8 byte per blocco  3 bit di indirizzamento singolo byte • 32 blocchi indirizzabili  5 bit di indirizzamento • Quindi: <Tag 8 bit> <Cache Index 5 bit> <Offset 3 bit> Calcolatori Elettronici Memoria Cache . Battista Biggio 27 .Ing. Spiegare. come vengono interpretati gli indirizzi logici per recuperare l’informazione contenuta nella cache. precisando il significato e la funzione dei diversi campi.

C334. 111B  0001 0001 | 0001 1 | 011  Block frame ( 547)10  Cache index 3 C334  1100 0011 | 0011 0 | 100  Block frame (6246)10  Cache index 6 D01D  1101 0000 | 0001 1 | 101  Block frame (6659)10  Cache index 3 AAAA  1010 1010 | 1010 1 | 010  Block frame (5461)10  Cache index 21 3.Soluzione (cont’d) 2. D01D. Se tali parole venissero richieste sequenzialmente.Ing. Indicare in quali blocchi di primaria si trovano i seguenti byte (indirizzi in esadecimale): 111B. Battista Biggio 28 . AAAA. quanti sarebbero gli hit di cache (ipotizzando la cache inizialmente vuota)? Calcolatori Elettronici Memoria Cache .

1A1B (offset 011). • Dato che: 1A1A  0001 1010 0001 1 | 010 si ottiene facilmente che gli altri byte contenuti nello stesso blocco sono: 1A18 (offset 000). Si supponga che il byte di indirizzo 1A1A sia memorizzato in cache. 1A1F (offset 111). 1A1D (offset 101). Indicare gli indirizzi di tutti gli altri byte memorizzati nello stesso blocco di cache. 1A19 (offset 001). Calcolatori Elettronici Memoria Cache .Ing. Battista Biggio 29 .Soluzione (cont’d) 4. 1A1C (offset 100). 1A1E (offset 110).

che una parola sia in cache Parole in Cache (Nc) Hp = Np/Nd Prob. Le parole in cache sono contenute anche in primaria e nel disco Calcolatori Elettronici Memoria Cache . Battista Biggio 30 .Ing.B. che una parola sia in primaria N.Gerarchia di memoria • Tempo medio di accesso: T = H C TC + (H P ! H C )(TP + TC ) + (1 ! H P )(TD + TP + TC ) = T = TC + (1 ! H C )TP + (1 ! H P )TD Gli hit ratio possono essere interprati Parole nel Disco (Nd) come probabilità. Parole in Primaria (Np) Hc = Nc/Nd Prob.

95 – l’hit ratio di primaria è pari a 0.2ms Calcolatori Elettronici Memoria Cache .98 T = TC + (1 ! H C )TP + (1 ! H P )TD = 0. sapendo che – la cache ha un tempo di accesso pari a 15 ns – la primaria ha un tempo di accesso pari a 40 ns – il disco ha un tempo di accesso pari a 10 ms – l’hit ratio di cache è pari a 0. Battista Biggio 31 .Ing.Esercizio • Calcolare il tempo medio di accesso alla gerarchia di memoria.

e.Hit ratio condizionale • Probabilità che una parola si trovi al livello i-esimo nella gerarchia.Ing. etc. dato che non la si è trovata al livello (i-1)-esimo (superiore). Battista Biggio 32 .: – Probabilità che una parola si trovi in primaria dato che non la si è trovata in cache H p|c • Si puo’ anche calcolare la probabilità che una parola non si trovi in primaria dato che non si la si è trovata in cache. H p|c = 1 ! H p|c Calcolatori Elettronici Memoria Cache .g.

Hit ratio condizionale Diagramma di Venn • Qual è la relazione tra gli hit ratio condizionali e gli hit ratio? Hc: Prob. che una parola sia nel disco 0 < Hc < Hp < Hd = 1 Calcolatori Elettronici Memoria Cache . che una parola sia in cache Hp: Prob.Ing. Battista Biggio 33 . che una parola sia Cache Primaria Disco in primaria Hd=1: Prob.

diviso la probabilità che la parola non sia in cache. P( p ! c ) = Hp " Hc P( p ! c ) Hp " Hc H p|c = = P(c ) = 1 " Hc P(c ) 1 " Hc Calcolatori Elettronici Memoria Cache . Battista Biggio 34 .Ing.Hit ratio condizionale • La probabilità che una parola si trovi in memoria primaria dato che non è in cache si calcola come rapporto tra la probabilità (congiunta) che una parola sia in memoria primaria e non in cache.

calcoliamo: P( p ! c ) 1 " Hp H p|c = = P(c ) 1 " Hc • Un’ulteriore verifica: Hp ! Hc 1 ! Hp H p|c = 1 ! H p|c = 1! = 1 ! Hc 1 ! Hc Calcolatori Elettronici Memoria Cache .Ing. Battista Biggio 35 .Hit ratio condizionale • Analogamente.

• Calcolare il tempo medio di accesso al sistema di memoria. – La lettura di una parola dalla memoria primaria e il suo trasferimento in cache richiedono complessivamente 40 ns.95.Esercizio (18/02/2004) • Un calcolatore ha un sistema di memoria virtuale a tre livelli. costituita da: cache. memoria primaria e disco. Calcolatori Elettronici Memoria Cache . – La probabilità che una parola si trovi già in cache è pari a 0.Ing.6 (hit ratio condizionale). – La probabilità che una parola si trovi in memoria primaria quando non è presente nella cache è pari a 0. Battista Biggio 36 . – La lettura di una parola che si trova già memorizzata nella cache richiede 15 ns. – La lettura di una parola dal disco e il suo trasferimento in memoria primaria richiedono complessivamente 10 ms.

Soluzione
• Dobbiamo calcolare:

T = H C TC + (H P ! H C )(TP + TC ) + (1 ! H P )(TD + TP + TC )

• I tempi e l’hit ratio per la cache sono tutti dati
dal problema, l’unico dato mancante è Hp.

TC = 15ns
TP = 40ns
TD = 10ms
H C = 0.95
Calcolatori Elettronici Memoria Cache - Ing. Battista Biggio 37

Soluzione
• Basta calcolare Hp a partire dall’hit rate
condizionale, invertendo la formula:
H P ! HC
H P|C =
1 ! HC
H P = H C + (1 ! H C )H P|C = 0.95 + (1 ! 0.95) " 0.6 = 0.98

• Infine, possiamo calcolare:

T = H C TC + (H P ! H C )(TP + TC ) + (1 ! H P )(TD + TP + TC ) =
T = 200.017ns

Calcolatori Elettronici Memoria Cache - Ing. Battista Biggio 38

Esercizio
• Sia data una gerarchia di memoria costituita da memoria
cache, memoria primaria e disco. Durante l’esecuzione di
un processo viene rilevato che, su 1000 parole richieste,
950 sono state trovate in cache e 30 sono state trovate in
memoria primaria quando non sono state trovate in
cache. Istruzioni e dati del processo erano tutti
memorizzati su disco.

• Sapendo che i tempi di accesso alla cache, alla primaria
ed al disco valgono, rispettivamente,
4 nsec, 40 nsec, 2 msec, si calcoli il tempo medio di
accesso alla gerarchia.

Calcolatori Elettronici Memoria Cache - Ing. Battista Biggio 39

Soluzione
• Calcolo dei parametri Hc, Hp, Hd:
– Nel caso di Hc, dalla definizione si ha subito
Hc = 950/1000 = 0.95, in quanto 950 è il numero di
successi in cache.
– Per quanto riguarda Hp, il problema fornisce soltanto il
numero di successi quando il dato non è presente in
cache, ovvero Hp-Hc=30/1000, da cui
Hp=Hc+30/1000=0.98.
– Per quanto riguarda Hd, sappiamo dal testo che
istruzioni e dati sono tutti memorizzati su disco. Per cui
Hd = 1.

Calcolatori Elettronici Memoria Cache - Ing. Battista Biggio 40

98 – 0. Calcolatori Elettronici Memoria Cache . Battista Biggio 41 . si ottiene: T = H C TC + ( H P ! H C )(TP + TC ) + (1 ! H P )(TD + TP + TC ) • T = 0.98) * (4 + 40+ 2 * 106) = 3.Soluzione (cont’d) • Applicando la formula del tempo medio della gerarchia.88 = 40006 ns = 40.95) * (4 + 40) + (1 – 0.006 ms.95 * 4 + (0.Ing.32 + 40000.8 + 1.

Si considerino le seguenti chiamate ad altrettante parole (indirizzi espressi in decimale): 52. ovvero quali byte occupano i relativi blocchi di cache. Si indichi il contenuto della cache. 4. Calcolatori Elettronici Memoria Cache . FIFO) • Si consideri una memoria primaria costituita da 128 parole e una memoria cache costituita da 16 parole. 44. 3. Battista Biggio 42 .Ing. dopo l’ultima chiamata. 24. 25. 47. Il metodo di indirizzamento della cache sia quello associativo su insiemi a due vie con blocchi di 4 parole. 1. 45.Esercizio sulla cache (LRU. 61. 37. 1. nel caso si adoperino algoritmi di rimpiazzamento FIFO e LRU.

I. Battista Biggio 43 . = Int(X/4).F.F.Ing. 13 6 0 11 6 9 11 1 0 11 15 S.I. 1 0 0 1 0 1 1 1 0 1 1 Calcolatori Elettronici Memoria Cache . X 52 24 1 44 25 37 47 4 3 45 61 B.Soluzione • <TAG 4 bit><Set Index 1 bit><Offset 2 bit> • Ricaviamo il set index per ogni chiamata: B. S. = Mod(BF/2).

1 0 0 1 0 1 1 1 0 1 1 Set 6 - 0 0 - Set 13 9 11 1 11 . Battista Biggio 44 .F.Ing. 4 15 Hit X X X Calcolatori Elettronici Memoria Cache .Soluzione • Strategia FIFO X 52 24 1 44 25 37 47 4 3 45 61 B.I. 13 6 0 11 6 9 11 1 0 11 15 S.

26. 1. stato finale della cache B. 2.F. 3 Set 11 44.47 1 15 60. Words Set 6 24.46.63 • Hit rate = 3/11 Calcolatori Elettronici Memoria Cache .45. Battista Biggio 45 . 25.Soluzione • Strategia FIFO. 27 0 0 0.62.61.Ing.

Soluzione • Strategia LRU X 52 24 1 44 25 37 47 4 3 45 61 B. Battista Biggio 46 .I. 1 0 0 1 0 1 1 1 0 1 1 Set 6 6 0 0 0 Set 13 9 4 15 1 11 11 11 Hit X X X X Calcolatori Elettronici Memoria Cache .F. 13 6 0 11 6 9 11 1 0 11 15 S.Ing.

Soluzione • Strategia LRU.62.63 1 11 44.47 • Hit rate = 4/11 Calcolatori Elettronici Memoria Cache . 2. 25. Words Set 6 24.46.61. 3 Set 15 60.F. 1. 27 0 0 0. stato finale della cache B.Ing.45. 26. Battista Biggio 47 .

Spiegare. Hp= 0.Esercizio sulla cache (cont’d) 2. motivando chiaramente la risposta. Il processo era completamente memorizzato nel disco. Hc. primaria e disco. Durante il test delle chiamate ad un processo si sono ottenuti i seguenti valori di performance per una gerarchia di memorie a tre livelli: Hc = 0. Hd sono gli hit ratio di cache.9. Calcolatori Elettronici Memoria Cache . Hd = 0. se i valori ottenuti sono compatibili con quanto ci si attende da una gerarchia di memoria.99.75. Battista Biggio 48 .Ing. Hp.

nonostante il processo sia interamente memorizzato sul disco! Calcolatori Elettronici Memoria Cache . 2.Ing. per 2 motivi: 1. Battista Biggio 49 .Soluzione • Ovviamente no. Hd non è uguale a 1. La condizione Hc < Hp < Hd non è rispettata.

2. come vengono interpretati gli indirizzi di memoria primaria secondo il metodo di indirizzamento diretto. 1.Ing. l’indirizzo della prima e dell’ultima parola del blocco di memoria primaria con block frame pari a 16. E’ possibile indirizzare il singolo byte. sapendo che l’indirizzo della prima parola è pari a 0. specificando l’ampiezza e la funzione dei diversi campi.Esercizio sulla cache (04/07/2006) • E’ data una gerarchia di memorie cache-primaria. Indicare. Indicare. associativo e set-associativo a otto vie. La memoria primaria è di 512 KB mentre la cache è di 64 KB. Battista Biggio 50 . e la memoria primaria è suddivisa in blocchi di 32 B. Calcolatori Elettronici Memoria Cache .

• Indirizzo della prima parola del blocco: Block Frame * D = 16 * 32 = 512. – D è il numero di parole/blocco. Battista Biggio 51 . • Indirizzo dell’ultima parola del blocco: Indirizzo della prima parola del blocco + D – 1 = = 512 + 32 – 1 = 543. Calcolatori Elettronici Memoria Cache .Ing.Soluzione alla domanda 1 • Utilizziamo le formule: Word (0) = N " D Word ( D ! 1) = N " D + D ! 1 – N corrisponde al Block Frame.

32 B/blocco. indirizzabili al singolo byte – 32 = 25 implica che sono necessari 5 bit di offset • <Block Frame 14 bit><Offset 5 bit> • Quanti blocchi ci sono in cache? – Cache da 64 KB. – Quindi: 64 KB / ( 32 B/blocco ) = 2K blocchi = 2048 blocchi. Battista Biggio 52 . Calcolatori Elettronici Memoria Cache .Ing.Soluzione alla domanda 2 • Memoria primaria da 512 KB. indirizzabile al singolo byte – 512 K = 29 x 210 = 219 – Sono necessari 19 bit per l’indirizzamento in primaria • Blocchi di 32 B.

dato che si ha solo 1 insieme). – <TAG 14 bit><Offset 5 bit> Calcolatori Elettronici Memoria Cache .Ing. – Dato che sono presenti 2048 = 211 blocchi in cache. sono richiesti 11 bit di indirizzamento. – <TAG 3 bit><Cache Index 11 bit><Offset 5 bit> • Metodo completamente associativo – TAG = Block Frame (non esiste il set index.Soluzione alla domanda 2 • Metodo diretto – Il cache index identifica i blocchi in cache. Battista Biggio 53 .

Dato che i blocchi in cache sono 2048.Ing. avremo 2048 blocchi / (8 blocchi/insieme) = 28 insiemi – Il set index dovrà indirizzare 28 insiemi. insiemi a 8 vie – E’ necessario capire quanti insiemi sono presenti in cache. – <TAG 6 bit><Set Index 8 bit><Offset 5 bit> Calcolatori Elettronici Memoria Cache .Soluzione alla domanda 2 • Metodo set-associativo. quindi saranno necessari 8 bit. Battista Biggio 54 .

dove necessario. indicare in quale linea di cache viene allocato il blocco indicato nel punto 1 (Block Frame=16) con i metodi di indirizzamento esaminati nel punto 2. Battista Biggio 55 . Calcolatori Elettronici Memoria Cache .Esercizio sulla cache (cont’d) 3. almeno un algoritmo di rimpiazzamento.Ing. Si indichi e descriva. Ipotizzando la cache piena.

sostituendo il blocco precedente. nella linea 16 di cache. il blocco dovrà essere allocato rimpiazzando un blocco di cache. • Metodo set-associativo (insiemi a 8 vie): S. Quindi il blocco 16 di primaria viene allocato. 16 corrisponde all’indirizzo dell’insieme. a meno di hit.Soluzione alla domanda 3 • Metodo diretto: C. Calcolatori Elettronici Memoria Cache .Ing. Battista Biggio 56 .=mod(16/211)=16.I. • Metodo associativo: a meno che in una delle linee della cache non sia presente un blocco con medesimo TAG. il blocco da rimpiazzare è quello che era stato allocato per primo in cache. Usando l’algoritmo di rimpiazzamento FIFO. se con TAG diverso.I. Il blocco 16 sostituirà. secondo la strategia di rimpiazzamento utilizzata. uno degli otto blocchi allocati nell’insieme 16.=mod(16/28)=16.

di lettura Calcolatori Elettronici Memoria Cache .Memoria a disco • Parametri: – Tempo di latenza – T. Battista Biggio 57 .Ing. di posizionamento – T.

200 settori per traccia.Ing. tempo per lo spostamento della testina fra due tracce consecutive: 1ms. i settori del blocco in questione siano registrati su tracce diverse la cui distanza media è pari a 12 tracce e la testina si trovi posizionata all'inizio del primo settore del blocco.Esercizio (17/02/2002) • Sia dato un disco rigido con le seguenti caratteristiche: velocità: 7200 giri/min. 2. capacità di un settore 8 KB. Calcolatori Elettronici Memoria Cache . Battista Biggio 58 . il blocco è stato registrato su settori contigui sulla stessa traccia e la testina si trova posizionata sul primo settore del blocco. • Calcolare il tempo di trasferimento di un blocco di 128 KB nei seguenti casi: 1.

67 µs = 666. • Tempo per la lettura di un blocco di 128 KB = 16 * 41. il tempo di lettura totale è uguale a 16 volte il tempo di trasferimento di un settore (visto che i dati sono registrati su 128KB/(8KB/settore) = 16 settori).67 µs. Tlett = TROT / 200 = 41.666 ms. • Se il blocco si trova registrato di seguito su una stessa traccia e la testina si trova già posizionata sul primo settore del blocco.0083 secondi • Il tempo di lettura di un settore lo si ricava dividendo il tempo di rotazione per il numero di settori per traccia (200). Battista Biggio 59 . Calcolatori Elettronici Memoria Cache .Ing.Soluzione alla domanda 1 • TROT = 60 / 7200 = 0.72 µs = 0.

216 ms Calcolatori Elettronici Memoria Cache . • T= Tlett + 15*(Tlett+Tpos+Tlat) = 243. • Tpos e Tlat sono necessari per calcolare il tempo di lettura dei blocchi successivi al primo (in tutto 15 blocchi).Ing. – Il tempo di latenza (pari a TROT/ 2 ms = 4.17 ms).Soluzione alla domanda 2 • In questo caso bisogna considerare: – Il tempo di posizionamento (pari a 12 ms). Battista Biggio 60 .

Battista Biggio 61 .Ing. 32 B per settore. 101 tracce per superficie. Calcolatori Elettronici Memoria Cache . in tracce diverse distanti mediamente 4 tracce. tempo di spostamento da una traccia a quelle adiacenti 1 ms.Esercizio (19/04/2007) • Un disco presenta le seguenti caratteristiche: 7200 giri/min. 100 settori per traccia. nell’ipotesi che il primo settore utile si trovi nella prima traccia. e che i settori del blocco siano situati. a due a due. • Calcolare il tempo medio di lettura di un blocco di 1 KB da disco. che la testina si trovi nell’ultima traccia all’istante iniziale.

0833 ms (per 1 settore) – Tsp = 1ms – Tpos = 4*Tsp= 4 ms. • Numero di settori richiesti per il blocco da 1 KB: 1024B/(32B/settore) = 32 settori.Soluzione • Parametri: – TROT = 60 / 7200 = 0.00415 secondi – Tlett = TROT / 100 = 0.Ing. Calcolatori Elettronici Memoria Cache . Battista Biggio 62 .0083 secondi – TLAT = TROT / 2 = 0.

15+2+0.Ing. • Tempo di lettura del blocco da 1KB: – T = 100 * Tsp + 2*Tlett + 2*TLAT + 30 * (TLAT + Tpos/2 + Tlett) = = 100*1 + 2*0. Battista Biggio 63 . Visto che i settori restanti sono a due a due sulla stessa traccia.15+30*(4.46 ms Calcolatori Elettronici Memoria Cache . occorrerà inoltre dimezzare il tempo di posizionamento medio.Soluzione • Settori non contigui – In questo caso occorre considerare che per leggere i primi 2 settori (residenti sulla prima traccia) la testina dovrà attraversare 100 tracce.083 + 2*4.083) = = 295.

15/2+2+0.083 + 4. Battista Biggio 64 .Soluzione • Settori contigui • Tempo di lettura del blocco da 1KB: – T = 100 * Tsp + 2*Tlett + TLAT + 30 * (TLAT/2 + Tpos/2 + Tlett) = = 100*1 + 2*0.15+30*(4.06 ms Calcolatori Elettronici Memoria Cache .083) = = 229.Ing.

Esercizio (12/07/2002) • Si consideri un disco rigido con le seguenti caratteristiche: – velocità di rotazione = 5400 giri/min. Battista Biggio 65 . – 34 settori per traccia di 512 byte ciascuno.Ing. – tempo medio di posizionamento = 5 ms. • Calcolare il tempo medio di trasferimento di un file da 8 KB considerando: – il caso migliore. Calcolatori Elettronici Memoria Cache . – il caso medio.

Calcolatori Elettronici Memoria Cache .327 ms (tempo di lettura di un settore) • Tpos = 5 msec.11 ms • Tlat = Trot/2 = 5.Ing. • Numero di settori richiesti dal file N = 8 KB / (512B/settore) = 16 settori. Battista Biggio 66 .Soluzione • Trot = 60/5400 sec = 11.555 ms • Tlett = Trot /34 = 0.

112 msec Calcolatori Elettronici Memoria Cache .Ing.Soluzione • Caso migliore: il file è posizionato su settori consecutivi della stessa traccia e la testina è posizionata all’inizio del primo settore. Dato che il file può essere memorizzato in una sola traccia: – T = N * Tlett = 5.882 = 174.232 msec. – T = N * (Tlat + Tpos + Tlett) = 16 * 10. • Caso medio: il file è posizionato su settori collocati in tracce diverse e la testina si trova in un punto qualsiasi del disco. Battista Biggio 67 .

Codice di Hamming • Relazione tra i bit di controllo (K) e di informazione (N): 2 ! N + K +1 K N.: N+K corrisponde alla lunghezza della stringa codificata • Capire quali bit controllano il bit in posizione n: n = ! Ci 2 i i Posizione (n) 1 2 3 4 5 6 7 8 9 10 11 12 Bit c0 c1 b0 c2 b1 b2 b3 c3 b4 b5 b6 b7 Calcolatori Elettronici Memoria Cache . Battista Biggio 68 .Ing.B.

Battista Biggio 69 . b2 c3 = b4 ⊕ b5 ⊕ b6 ⊕ b7 n=6=21+22 Quindi b2 è controllato da c1 e c2 Calcolatori Elettronici Memoria Cache . Codice di Hamming Posizione (n) 1 2 3 4 5 6 7 8 9 10 11 12 Bit c0 c1 b0 c2 b1 b2 b3 c3 b4 b5 b6 b7 n = ! Ci 2 i c0 = b0 ⊕ b1 ⊕ b3 ⊕ b4 ⊕ b6 i c1 = b0 ⊕ b2 ⊕ b3 ⊕ b5 ⊕ b6 c2 = b1 ⊕ b2 ⊕ b3 ⊕ b7 Es.Ing.

Scrivere la parola di N bit a partire dalla stringa data. Indicare eventuali errori nella stringa codificata. supponendo di aver fatto uso del numero minimo di bit di controllo necessario per una stringa di 12 bit. Battista Biggio 70 . 3. Calcolare N. 1. 2. specificando quale dei bit è stato alterato.Ing. Calcolatori Elettronici Memoria Cache .Esercizio (11/04/2006) • I trasferimenti di parole a/dalla memoria di un calcolatore sono codificati utilizzando il codice di Hamming. risultata della codifica di una parola di N bit secondo il codice di Hamming. Si consideri la stringa di 12 bit 001001101110 (il bit meno significativo è a sinistra).

Soluzione 1. 2.Ing. La sequenza in ingresso presenta la seguente struttura: c0 c1 b0 c2 b1 b2 b3 c3 b4 b5 b6 b7 0 0 1 0 0 1 1 0 1 1 1 0 Quindi la parola di N bit risulta 10111110 Calcolatori Elettronici Memoria Cache . Da cui N = 8. il numero minimo di bit di controllo (K) richiesto è 4. Essendo N + K = 12. Battista Biggio 71 . Deve essere rispettata la condizione: 2 ! N + K +1 K – dove K è il numero di bit di controllo inseriti.

Si ha: c’0 = b0 ⊕ b1 ⊕ b3 ⊕ b4 ⊕ b6 = 0 c’1 = b0 ⊕ b2 ⊕ b3 ⊕ b5 ⊕ b6 = 1 c’2 = b1 ⊕ b2 ⊕ b3 ⊕ b7 = 0 c’3 = b4 ⊕ b5 ⊕ b6 ⊕ b7 = 1 Calcolatori Elettronici Memoria Cache .Soluzione 3. Battista Biggio 72 . Per verificare la presenza di un errore. dobbiamo ricalcolare il vettore di controllo a partire dalla sequenza ricevuta.Ing.

Battista Biggio 73 .Soluzione (cont’d) • Il passo successivo è calcolare il vettore di errore dato dalla differenza dei vettori di controllo c e c’: e0 = c0 ⊕ c’0 = 0 e1 = c1 ⊕ c’1 = 1 e2 = c2 ⊕ c’2 = 0 e3 = c3 ⊕ c’3 = 1 Calcolatori Elettronici Memoria Cache .Ing.

Battista Biggio 74 . Il bit sbagliato è quindi il decimo (b5). 1 2 3 4 5 6 7 8 9 10 11 12 c0 c1 b0 c2 b1 b2 b3 c3 b4 b5 b6 b7 0 0 1 0 0 1 1 0 1 1 1 0 Calcolatori Elettronici Memoria Cache .Ing. e la parola corretta è 10111010. vi è un errore nella stringa di 12 bit data e precisamente nella posizione indicata dal vettore di errore tradotto in notazione decimale.Soluzione • Poiché il vettore risultante 1010 (e3e2e1e0) non è nullo.

1. Spiegare come l’errore viene rivelato e corretto per mezzo della codifica di Hamming. Si consideri la parola di 7 bit 0110101 (il bit meno significativo è a sinistra). Battista Biggio 75 . 2. codificare la parola data. imporre un errore nel quinto bit della parola inizialmente data.Esercizio (11/01/2008) • I trasferimenti di parole a/dalla memoria di un calcolatore sono codificati utilizzando il codice di Hamming.Ing. Calcolare il minimo numero di bit di controllo necessari per la codifica della parola. Calcolatori Elettronici Memoria Cache . 3.

Deve essere rispettata la condizione: 2 ! N + K +1 K – dove K è il numero di bit di controllo. Battista Biggio 76 .Ing. Essendo N = 7. Calcolatori Elettronici Memoria Cache .Soluzione 1. il numero minimo di bit di controllo richiesto è K = 4.

Battista Biggio 77 .Ing.Soluzione 2. Codificare 0110101 1 2 3 4 5 6 7 8 9 10 11 c0 c1 b0 c2 b1 b2 b3 c3 b4 b5 b6 1 0 0 0 1 1 0 0 1 0 1 c0 = b0 ⊕ b1 ⊕ b3 ⊕ b4 ⊕ b6 = 1 c1 = b0 ⊕ b2 ⊕ b3 ⊕ b5 ⊕ b6 = 0 c2 = b1 ⊕ b2 ⊕ b3 = 0 c3 = b4 ⊕ b5 ⊕ b6 = 0 La parola codificata è 10001100101 Calcolatori Elettronici Memoria Cache .

Per rivelare questo errore.Soluzione 3. Battista Biggio 78 . la stringa ricevuta risulta: 10001100001. bisogna ricalcolare i bit di controllo: c’0 = b0 ⊕ b1 ⊕ b3 ⊕ b4 ⊕ b6 = 0 ⊕ 1 ⊕ 0 ⊕ 0 ⊕ 1 = 0 c’1 = b0 ⊕ b2 ⊕ b3 ⊕ b5 ⊕ b6 = 0 ⊕ 1 ⊕ 0 ⊕ 0 ⊕ 1 = 0 c’2 = b1 ⊕ b2 ⊕ b3 = 1 ⊕ 1 ⊕ 0 = 0 c’3 = b4 ⊕ b5 ⊕ b6 = 0 ⊕ 0 ⊕ 1 = 1 Calcolatori Elettronici Memoria Cache . Nell’ipotesi di un errore sul quinto bit (b4) della stringa iniziale.Ing.

Calcolatori Elettronici Memoria Cache . vi è un errore nella stringa di 11 bit e precisamente nella posizione indicata dal vettore di errore tradotto in notazione decimale (posizione 9). Il bit sbagliato nella stringa codificata è quindi b4. che può essere dunque corretto.Ing. Battista Biggio 79 .Soluzione • Il passo successivo è calcolare il vettore di errore dato dalla differenza dei vettori di controllo c e c’: e0 = c0 ⊕ c’0 = 1 ⊕ 0 = 1 e1 = c1 ⊕ c’1 = 0 ⊕ 0 = 0 e2 = c2 ⊕ c’2 = 0 ⊕ 0 = 0 e3 = c3 ⊕ c’3 = 0 ⊕ 1 = 1 • Poiché il vettore risultante 1001 non è nullo.

Calcolare N. risultato della codifica di una parola di N bit secondo il codice di Hamming. Battista Biggio 80 . Indicare eventuali errori nella stringa codificata. 3.Esercizio (12/07/2007) • Le parole trasferite a/dalla memoria di un calcolatore sono codificate utilizzando il codice di Hamming. Si consideri la stringa di 13 bit 1010011011101 (il bit meno significativo è a sinistra). supponendo di aver fatto uso del numero minimo di bit di controllo necessari. Calcolatori Elettronici Memoria Cache . 2. 1.Ing. Scrivere la parola di N bit a partire dalla stringa data. specificando quale dei bit è stato alterato.

Essendo N + K = 13. 2. La sequenza in ingresso presenta la seguente struttura: c0 c1 b0 c2 b1 b2 b3 c3 b4 b5 b6 b7 b8 1 0 1 0 0 1 1 0 1 1 1 0 1 Quindi la parola di N bit risulta 101111101 Calcolatori Elettronici Memoria Cache .Ing. Battista Biggio 81 . Deve essere rispettata la condizione: 2 ! N + K +1 K – dove K è il numero di bit di controllo inseriti. Da cui N = 9. il numero minimo di bit di controllo (K) richiesto è 4.Soluzione 1.

dobbiamo ricalcolare il vettore di controllo a partire dalla sequenza ricevuta.B. Per verificare la presenza di un errore.: b8 si trova in posizione n = 13 = 1+4+8. Si ha: c’0 = b0 ⊕ b1 ⊕ b3 ⊕ b4 ⊕ b6 ⊕ b8 = 1 c’1 = b0 ⊕ b2 ⊕ b3 ⊕ b5 ⊕ b6 = 1 c’2 = b1 ⊕ b2 ⊕ b3 ⊕ b7 ⊕ b8 = 1 c’3 = b4 ⊕ b5 ⊕ b6 ⊕ b7 ⊕ b8 = 0 N.Soluzione 3. quindi è controllato da c0 . Calcolatori Elettronici Memoria Cache . Battista Biggio 82 . c3 . c2 .Ing.

Battista Biggio 83 .Ing.Soluzione (cont’d) • Il passo successivo è calcolare il vettore di errore dato dalla differenza dei vettori di controllo c e c’: e0 = c0 ⊕ c’0 = 1 ⊕ 1 = 0 e1 = c1 ⊕ c’1 = 0 ⊕ 1 = 1 e2 = c2 ⊕ c’2 = 0 ⊕ 1 = 1 e3 = c3 ⊕ c’3 = 0 ⊕ 0 = 0 Calcolatori Elettronici Memoria Cache .

Soluzione • Poiché il vettore risultante 0110 (e3e2e1e0) non è nullo. Battista Biggio 84 . e la parola corretta è 100111101. vi è un errore nella stringa di 13 bit data e precisamente nella posizione indicata dal vettore di errore tradotto in notazione decimale. 1 2 3 4 5 6 7 8 9 10 11 12 13 c0 c1 b0 c2 b1 b2 b3 c3 b4 b5 b6 b7 b8 0 0 1 0 0 1 1 0 1 1 1 0 1 Calcolatori Elettronici Memoria Cache .Ing. Il bit sbagliato è quindi il sesto (b2).

Domande? ? Calcolatori Elettronici Memoria Cache . Battista Biggio 85 .Ing.