Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
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
m bit n bit
m bit n bit
Shift di n bit
t bit r bit
BLOCK FRAME
t bit r bit
Shift di r bit
Mem. Primaria
0 Mem. Cache
1
2 Insieme 0
3
4
5 Insieme 1
6
7
& Word ( x) #
N = Int $ !
% D "
Calcolatori Elettronici Memoria Cache - 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. E’ possibile accedere al singolo
byte e la memoria è suddivisa in blocchi da
64 B.
1. 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;
– Associativo su insiemi, in cui ciascun insieme è
formato da 4 blocchi.
• Metodo set-associativo:
– <TAG 5 bit><Cache Index 4 bit><Offset 6 bit>
– Poiché gli insiemi di cache sono 16= 24, indirizzati da 0 a
15, 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, e così via.
3.
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,7,B,F.
y =(0 0 y1 y0)2 = 0,1,2,3.
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
P( p ! c ) = Hp " Hc P( p ! c ) Hp " Hc
H p|c = =
P(c ) = 1 " Hc P(c ) 1 " Hc
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
T = H C TC + (H P ! H C )(TP + TC ) + (1 ! H P )(TD + TP + TC )
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
T = H C TC + (H P ! H C )(TP + TC ) + (1 ! H P )(TD + TP + TC ) =
T = 200.017ns
X 52 24 1 44 25 37 47 4 3 45 61
B.F. 13 6 0 11 6 9 11 1 0 11 15
S.I. 1 0 0 1 0 1 1 1 0 1 1
B.F. Words
Set 6 24, 25, 26, 27
0 0 0, 1, 2, 3
Set 11 44,45,46,47
1 15 60,61,62,63
B.F. Words
Set 6 24, 25, 26, 27
0 0 0, 1, 2, 3
Set 15 60,61,62,63
1 11 44,45,46,47
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
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. b2 c3 = b4 ⊕ b5 ⊕ b6 ⊕ b7
n=6=21+22
Quindi b2 è controllato da c1 e c2
Calcolatori Elettronici Memoria Cache - Ing. Battista Biggio 69
Esercizio (11/04/2006)
• I trasferimenti di parole a/dalla memoria di un calcolatore sono
codificati utilizzando il codice di Hamming.
Si consideri la stringa di 12 bit 001001101110 (il bit meno
significativo è a sinistra), risultata della codifica di una parola di
N bit secondo il codice di Hamming.
1. Calcolare N, supponendo di aver fatto uso del numero minimo
di bit di controllo necessario per una stringa di 12 bit;
2. Scrivere la parola di N bit a partire dalla stringa data;
3. Indicare eventuali errori nella stringa codificata, specificando
quale dei bit è stato alterato.
2 ! N + K +1
K
– dove K è il numero di bit di controllo inseriti.
Essendo N + K = 12, il numero minimo di bit di controllo (K)
richiesto è 4. Da cui N = 8.
c0 c1 b0 c2 b1 b2 b3 c3 b4 b5 b6 b7
0 0 1 0 0 1 1 0 1 1 1 0
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
e0 = c0 ⊕ c’0 = 0
e1 = c1 ⊕ c’1 = 1
e2 = c2 ⊕ c’2 = 0
e3 = c3 ⊕ c’3 = 1
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
2 ! N + K +1
K
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
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
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
2 ! N + K +1
K
– dove K è il numero di bit di controllo inseriti.
Essendo N + K = 13, il numero minimo di bit di controllo (K)
richiesto è 4. Da cui N = 9.
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
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
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
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. Battista Biggio 85