Tutorato Architettura degli elaboratori - unife.it · Architettura degli elaboratori - Tutorato -...
Transcript of Tutorato Architettura degli elaboratori - unife.it · Architettura degli elaboratori - Tutorato -...
Architettura degli elaboratori - Tutorato - Dott. Damiano Braga
Architettura degli elaboratori
Tutorato
Dott. Damiano Braga
Architettura degli elaboratori - Tutorato - Dott. Damiano Braga
Before we start..
Orario
• 18 Maggio h. 11.30-13.30 aula F6• 26 Maggio h. 11.30-13.30 aula F6• 7 Giugno h. 14.00-16.00 aula F4
Architettura degli elaboratori - Tutorato - Dott. Damiano Braga
Consideriamo una cache a 64 blocchi e una dimensione di blocco di 16 byte. A quale # di blocco corrisponde l’indirizzo del byte 1200?
(indirizzo blocco) modulo (# blocchi nella cache)
# blocco =
indirizzo del byte / byte per blocco
indirizzo blocco =
Architettura degli elaboratori - Tutorato - Dott. Damiano Braga
il blocco con tale indirizzo contiene tutti gli indirizzi compresi tra :
inf ( indirizzo del byte/ byte per blocco) * byte per blocco
inf ( indirizzo del byte/ byte per blocco) * byte per blocco + (byte per blocco -1 )
e
Architettura degli elaboratori - Tutorato - Dott. Damiano Braga
quindi visto che abbiamo 16 byte per blocco, il byte di indirizzo 1200 si trova nel blocco di indirizzo
inf(1200/16) =75
che corrisponde al blocco della cache 75 mod 64= 11
Architettura degli elaboratori - Tutorato - Dott. Damiano Braga
Consideriamo una cache a mappatura diretta costituita da 2^8 righe aventi 2 parole ( di 32 bit ciascuna) per riga, inizialmente vuota. Per ognuno dei seguenti indirizzi:
0x 123450340x 123450380x CAFFE2300x CEC102300x 123450300x 00000F3C0x CEC10238
Architettura degli elaboratori - Tutorato - Dott. Damiano Braga
si divida ciascun indirizzo nei campi che contraddistinguono il tag, indice (riga di cache), e la colonna.
bit INDIRIZZO
A CB
A = tag B = individua la rigaC = individua la parola
D = displacement (byte all’interno della parola)
D
Architettura degli elaboratori - Tutorato - Dott. Damiano Braga
0x (12345034 )
0001 0010 0011 0100 0101 0000 0011 0100
binary
Architettura degli elaboratori - Tutorato - Dott. Damiano Braga
1) Displacement
2^ 8 righe 2 parole per riga
Ogni riga = 32 bit
log_2( # parole) = log_2(2) = 1 bit LSB
0001 0010 0011 0100 0101 0000 0011 0100
Architettura degli elaboratori - Tutorato - Dott. Damiano Braga
2^ 8 righe 2 parole per riga
Ogni riga = 32 bit
2) 2 parole = 2^1= 2
1 bit per individuare una parola
0001 0010 0011 0100 0101 0000 0011 0100
la parola individuata è la parola 0
Architettura degli elaboratori - Tutorato - Dott. Damiano Braga
2^ 8 righe 2 parole per riga
Ogni riga = 32 bit
3) 2^8 righe = 2^8
8 bit per individuare la riga
0001 0010 0011 0100 0101 0000 0011 0100
la riga individuata è la 13
Architettura degli elaboratori - Tutorato - Dott. Damiano Braga
2^ 8 righe 2 parole per riga
Ogni riga = 32 bit
4)i MSB rimanenti sono il tag
32-8-1-1 bit
0001 0010 0011 0100 0101 0000 0011 0100
Architettura degli elaboratori - Tutorato - Dott. Damiano Braga
0x (12345038 )
0001 0010 0011 0100 0101 0000 0011 1000
binary
Architettura degli elaboratori - Tutorato - Dott. Damiano Braga
1) Displacement
2^ 8 righe 2 parole per riga
Ogni riga = 32 bit
log_2( # parole) = log_2(2) = 1 bit LSB
0001 0010 0011 0100 0101 0000 0011 1000
Architettura degli elaboratori - Tutorato - Dott. Damiano Braga
2^ 8 righe 2 parole per riga
Ogni riga = 32 bit
2) 2 parole = 2^1= 2
1 bit per individuare una parola
0001 0010 0011 0100 0101 0000 0011 1000
la parola individuata è la parola 0
Architettura degli elaboratori - Tutorato - Dott. Damiano Braga
2^ 8 righe 2 parole per riga
Ogni riga = 32 bit
3) 2^8 righe = 2^8
8 bit per individuare la riga
0001 0010 0011 0100 0101 0000 0011 1000
la riga individuata è la 14
Architettura degli elaboratori - Tutorato - Dott. Damiano Braga
2^ 8 righe 2 parole per riga
Ogni riga = 32 bit
4)i MSB rimanenti sono il tag
32-8-1-1 bit
0001 0010 0011 0100 0101 0000 0011 1000
Architettura degli elaboratori - Tutorato - Dott. Damiano Braga
0x (CAFFE230 )
1100 1010 1111 1111 1110 0010 0011 0000
binary
Architettura degli elaboratori - Tutorato - Dott. Damiano Braga
1) Displacement
2^ 8 righe 2 parole per riga
Ogni riga = 32 bit
log_2( # parole) = log_2(2) = 1 bit LSB
1100 1010 1111 1111 1110 0010 0011 0000
Architettura degli elaboratori - Tutorato - Dott. Damiano Braga
2^ 8 righe 2 parole per riga
Ogni riga = 32 bit
2) 2 parole = 2^1= 2
1 bit per individuare una parola
1100 1010 1111 1111 1110 0010 0011 0000
la parola individuata è la parola 0
Architettura degli elaboratori - Tutorato - Dott. Damiano Braga
2^ 8 righe 2 parole per riga
Ogni riga = 32 bit
3) 2^8 righe = 2^8
8 bit per individuare la riga
1100 1010 1111 1111 1110 0010 0011 0000
la riga individuata è la 140
Architettura degli elaboratori - Tutorato - Dott. Damiano Braga
2^ 8 righe 2 parole per riga
Ogni riga = 32 bit
4)i MSB rimanenti sono il tag
32-8-1-1 bit
1100 1010 1111 1111 1110 0010 0011 0000
Architettura degli elaboratori - Tutorato - Dott. Damiano Braga
Completate voi per esercizio:
0x CEC102300x 123450300x 00000F3C0x CEC10238
Architettura degli elaboratori - Tutorato - Dott. Damiano Braga
1010 0010 1011 0100 1100 0000 0011 1101
Partendo da questo indirizzo e sapendo che il displacement e i bit per identificare la parola sono 3 ciascuno, e che vi sono 4 bit per identificare la riga ricava:
- indirizzo in hex- quante sono le parole per riga, e quante sono le righe- la riga, la parola e il tag identificate da questo indirizzo
Architettura degli elaboratori - Tutorato - Dott. Damiano Braga
0x (A2B4C03D )
1010 0010 1011 0100 1100 0000 0011 1101
binary
Architettura degli elaboratori - Tutorato - Dott. Damiano Braga
1) Displacement
2^ 8 righe 2 parole per riga
Ogni riga = 32 bit
log_2( # parole) = log_2(8) = 3 bit LSB
1010 0010 1011 0100 1100 0000 0011 1101
Architettura degli elaboratori - Tutorato - Dott. Damiano Braga
2^ 8 righe 2 parole per riga
Ogni riga = 32 bit
2) 8 parole = 2^3= 8
3 bit per individuare una parola
1010 0010 1011 0100 1100 0000 0011 1101
la parola individuata è la parola 7
Architettura degli elaboratori - Tutorato - Dott. Damiano Braga
2^ 8 righe 2 parole per riga
Ogni riga = 32 bit
3) 16 righe = 2^4
4 bit per individuare la riga
la riga individuata è la 0
1010 0010 1011 0100 1100 0000 0011 1101
Architettura degli elaboratori - Tutorato - Dott. Damiano Braga
2^ 8 righe 2 parole per riga
Ogni riga = 32 bit
4)i MSB rimanenti sono il tag
1010 0010 1011 0100 1100 0000 0011 1101
tag = 84501600
Architettura degli elaboratori - Tutorato - Dott. Damiano Braga
Abbiamo una cache a 8 parole a mappatura diretta che è inizialmente vuota. Si supponga di voler effettuare un accesso per ogni indirizzo fornito. Si indichi se si tratta
di un hit o di un miss:
222622261631618
Architettura degli elaboratori - Tutorato - Dott. Damiano Braga
indirizzo 22
cache 8 parole => 2^3 = 8 3 LSB dell’indirizzo indicano l’indice del blocco in cache
A) (22) = (10110)10 2
B) 22 mod 8 = 6 = (110)2
cache index
C) cache vuota miss
Architettura degli elaboratori - Tutorato - Dott. Damiano Braga
indice V Tag Dato0 0 0 n0 0 1 n0 1 0 n0 1 1 n1 0 0 n1 0 1 n1 1 0 n1 1 1 n
cache vuota
Architettura degli elaboratori - Tutorato - Dott. Damiano Braga
indice V Tag Dato0 0 0 n0 0 1 n0 1 0 n0 1 1 n1 0 0 n1 0 1 n1 1 0 s 10 101101 1 1 n
cache dopo 1 miss
Architettura degli elaboratori - Tutorato - Dott. Damiano Braga
indirizzo 26
cache 8 parole => 2^3 = 8 3 LSB dell’indirizzo indicano l’indice del blocco in cache
A) (26) = (11010)10 2
B) 26 mod 8 = 2 = (010)2
cache index
C) cache miss
Architettura degli elaboratori - Tutorato - Dott. Damiano Braga
indice V Tag Dato0 0 0 n0 0 1 n0 1 0 n0 1 1 n1 0 0 n1 0 1 n1 1 0 s 10 101101 1 1 n
cache prima 2 miss
Architettura degli elaboratori - Tutorato - Dott. Damiano Braga
indice V Tag Dato0 0 0 n0 0 1 n0 1 0 s 11 110100 1 1 n1 0 0 n1 0 1 n1 1 0 s 10 101101 1 1 n
cache dopo 2 miss
Architettura degli elaboratori - Tutorato - Dott. Damiano Braga
indirizzo 22
cache 8 parole => 2^3 = 8 3 LSB dell’indirizzo indicano l’indice del blocco in cache
A) (22) = (10110)10 2
B) 22 mod 8 = 6 = (110)2
cache index
C) cache hit
Architettura degli elaboratori - Tutorato - Dott. Damiano Braga
indice V Tag Dato0 0 0 n0 0 1 n0 1 0 s 11 110100 1 1 n1 0 0 n1 0 1 n1 1 0 s 10 101101 1 1 n
cache
Architettura degli elaboratori - Tutorato - Dott. Damiano Braga
indirizzo 26
cache 8 parole => 2^3 = 8 3 LSB dell’indirizzo indicano l’indice del blocco in cache
A) (26) = (11010)10 2
B) 26 mod 8 = 2 = (010)2
cache index
C) cache hit
Architettura degli elaboratori - Tutorato - Dott. Damiano Braga
indice V Tag Dato0 0 0 n0 0 1 n0 1 0 s 11 110100 1 1 n1 0 0 n1 0 1 n1 1 0 s 10 101101 1 1 n
cache
Architettura degli elaboratori - Tutorato - Dott. Damiano Braga
indirizzo 16
cache 8 parole => 2^3 = 8 3 LSB dell’indirizzo indicano l’indice del blocco in cache
A) (16) = (10000)10 2
B) 26 mod 8 = 0 = (000)2
cache index
C) cache miss
Architettura degli elaboratori - Tutorato - Dott. Damiano Braga
indice V Tag Dato0 0 0 n0 0 1 n0 1 0 s 11 110100 1 1 n1 0 0 n1 0 1 n1 1 0 s 10 101101 1 1 n
cache
Architettura degli elaboratori - Tutorato - Dott. Damiano Braga
indice V Tag Dato0 0 0 s 10 100000 0 1 n0 1 0 s 11 110100 1 1 n1 0 0 n1 0 1 n1 1 0 s 10 101101 1 1 n
cache prima
Architettura degli elaboratori - Tutorato - Dott. Damiano Braga
indirizzo 3
cache 8 parole => 2^3 = 8 3 LSB dell’indirizzo indicano l’indice del blocco in cache
A) (3) = (00011)10 2
B) 3 mod 8 = 3 = (011)2
cache index
C) cache miss
Architettura degli elaboratori - Tutorato - Dott. Damiano Braga
indice V Tag Dato0 0 0 s 10 100000 0 1 n0 1 0 s 11 110100 1 1 n1 0 0 n1 0 1 n1 1 0 s 10 101101 1 1 n
cache prima
Architettura degli elaboratori - Tutorato - Dott. Damiano Braga
indice V Tag Dato0 0 0 s 10 100000 0 1 n0 1 0 s 11 110100 1 1 s 0 0 0 0 0 111 0 0 n1 0 1 n1 1 0 s 10 101101 1 1 n
cache
Architettura degli elaboratori - Tutorato - Dott. Damiano Braga
indirizzo 16
cache 8 parole => 2^3 = 8 3 LSB dell’indirizzo indicano l’indice del blocco in cache
A) (16) = (10000)10 2
B) 16 mod 8 = 0 = (000)2
cache index
C) cache hit
Architettura degli elaboratori - Tutorato - Dott. Damiano Braga
indice V Tag Dato0 0 0 s 10 100000 0 1 n0 1 0 s 11 110100 1 1 s 0 0 0 0 0 111 0 0 n1 0 1 n1 1 0 s 10 101101 1 1 n
cache
Architettura degli elaboratori - Tutorato - Dott. Damiano Braga
indirizzo 18
cache 8 parole => 2^3 = 8 3 LSB dell’indirizzo indicano l’indice del blocco in cache
A) (18) = (10010)10 2
B) 18 mod 8 = 0 = (010)2
cache index
C) cache miss.. Perchè!?!?
Architettura degli elaboratori - Tutorato - Dott. Damiano Braga
indice V Tag Dato0 0 0 s 10 100000 0 1 n0 1 0 s 11 110100 1 1 s 0 0 0 0 0 111 0 0 n1 0 1 n1 1 0 s 10 101101 1 1 n
cache prima
Architettura degli elaboratori - Tutorato - Dott. Damiano Braga
A ) prima si controlla se il dato è valid o meno (S o N)
B ) il tag deve essere controllato ed uguale al campo presente in cache
C ) A e B ? HIT altrimenti miss
Architettura degli elaboratori - Tutorato - Dott. Damiano Braga
indice V Tag Dato0 0 0 s 10 100000 0 1 n0 1 0 s 10 100100 1 1 s 0 0 0 0 0 111 0 0 n1 0 1 n1 1 0 s 10 101101 1 1 n
cache dopo
Architettura degli elaboratori - Tutorato - Dott. Damiano Braga
Si calcoli l’hit rate e la miss rate sull’esercizio precedente:
Freq. Hit = # hit / # tot accessi
Freq. Miss = # miss / # tot accessi
Freq. Hit = 1- Freq.Miss
Architettura degli elaboratori - Tutorato - Dott. Damiano Braga
Si calcoli l’hit rate e la miss rate sull’esercizio precedente:
# tot accessi = 8
# miss = 5
# hit = 3
hit rate = 3/8miss rate = 5/8
Architettura degli elaboratori - Tutorato - Dott. Damiano Braga
Consideriamo una cache a mappatura diretta costituita da 2^8 righe aventi 2 parole ( di 32 bit ciascuna) per riga, inizialmente vuota. Per ognuno dei seguenti indirizzi:
0x 123450340x 123450380x CAFFE2300x CEC102300x 123450300x 00000F3C0x CEC10238
si dica per ogni accesso se si tratta di hit o missSi calcoli hit rate e miss rate
Architettura degli elaboratori - Tutorato - Dott. Damiano Braga
Si calcoli il numero tot di bit necessari per una cache a corrispondenza diretta contenente 64KB di dati e blocchi
di una parola ipotizzando indirizzi da 32 bit?
# tot bit = 2^n * (B+T+V)
n dimensione indiceB dimensione del bloccoT dimensione del tagV dimensione del bit di validitàT= 32 - (n+2)
Architettura degli elaboratori - Tutorato - Dott. Damiano Braga
64KB 16KWORD
2^14 parole
Per ogni blocco ci sono 32 bit x dato+ campo tag e bit validità
T = 32- 14 -2
# tot bit = 2^14 * (32+(32- 14 -2 )+1)
= 784 Kbit = 98 K