Tutorato Architettura degli elaboratori - unife.it · Architettura degli elaboratori - Tutorato -...

Post on 18-Feb-2019

221 views 0 download

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..

damiano.braga@student.unife.it

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