94
Esercitazione 2 (Capitolo 3 del corso) Memoria Cache Memoria Disco Codice di Hamming Esercizi di Calcolatori Elettronici Prof. Ing. Fabio Roli

Prof. Ing. Fabio Roli Esercitazione 2 (Capitolo 3 del …...1.Spiegare come vengono interpretati gli indirizzi logici a 16 bit per recuperare l’informazione contenuta nella cache

  • Upload
    others

  • View
    1

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Prof. Ing. Fabio Roli Esercitazione 2 (Capitolo 3 del …...1.Spiegare come vengono interpretati gli indirizzi logici a 16 bit per recuperare l’informazione contenuta nella cache

Esercitazione 2 (Capitolo 3 del corso)Memoria CacheMemoria Disco

Codice di Hamming

Esercizi di Calcolatori Elettronici

Prof. Ing. Fabio Roli

Page 2: Prof. Ing. Fabio Roli Esercitazione 2 (Capitolo 3 del …...1.Spiegare come vengono interpretati gli indirizzi logici a 16 bit per recuperare l’informazione contenuta nella cache

Calcolatori Elettronici Sistema di Memoria - Prof. Fabio Roli 2

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 ratio condizionale

• Memoria a disco

• Codice di Hamming

Page 3: Prof. Ing. Fabio Roli Esercitazione 2 (Capitolo 3 del …...1.Spiegare come vengono interpretati gli indirizzi logici a 16 bit per recuperare l’informazione contenuta nella cache

Calcolatori Elettronici Sistema di Memoria - Prof. Fabio Roli 3

Indirizzamento della memoria 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, anche detto Word, è costituito dagli n bit meno significativi dell’indirizzo. Tale gruppo individua la posizione della parola all’interno di un dato blocco.

Block frame Offset=Word

Bit di indirizzamento della primaria

m bit n bit

Page 4: Prof. Ing. Fabio Roli Esercitazione 2 (Capitolo 3 del …...1.Spiegare come vengono interpretati gli indirizzi logici a 16 bit per recuperare l’informazione contenuta nella cache

Calcolatori Elettronici Sistema di Memoria - Prof. Fabio Roli 4

Indirizzamento della memoria cache

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

Block frame Offset=Word

m bit n bit

Shift di n bit

Page 5: Prof. Ing. Fabio Roli Esercitazione 2 (Capitolo 3 del …...1.Spiegare come vengono interpretati gli indirizzi logici a 16 bit per recuperare l’informazione contenuta nella cache

Calcolatori Elettronici Sistema di Memoria - Prof. Fabio Roli 5

TAG Cache index

t bit r bit

BLOCK FRAME

Indirizzamento della memoria cache

• Il Block Frame è ulteriormente ripartito in TAG e in Cache Index. Quest’ultimo rappresenta:

– l’indirizzo del blocco=linea di “cache”, nel metodo diretto;

– l’indirizzo dell’insieme di “cache”, nel metodo associativo su insiemi.

• L’ Offset, anche detto Word, è uguale al caso della memoria primaria

Page 6: Prof. Ing. Fabio Roli Esercitazione 2 (Capitolo 3 del …...1.Spiegare come vengono interpretati gli indirizzi logici a 16 bit per recuperare l’informazione contenuta nella cache

Calcolatori Elettronici Sistema di Memoria - Prof. Fabio Roli 6

Indirizzamento della memoria cache

• Per ottenere TAG e Cache Index, è necessario uno scorrimento a destra di r bit. Ciò equivale a dividere il Block Frame per 2r, il numero di blocchi/insiemi in cache:

– Il quoziente è il TAG;

– Il resto fornisce il Cache Index.

TAG Cache index

t bit r bit

Shift di r bit

Page 7: Prof. Ing. Fabio Roli Esercitazione 2 (Capitolo 3 del …...1.Spiegare come vengono interpretati gli indirizzi logici a 16 bit per recuperare l’informazione contenuta nella cache

Calcolatori Elettronici Sistema di Memoria - Prof. Fabio Roli 7

Page 8: Prof. Ing. Fabio Roli Esercitazione 2 (Capitolo 3 del …...1.Spiegare come vengono interpretati gli indirizzi logici a 16 bit per recuperare l’informazione contenuta nella cache

Calcolatori Elettronici Sistema di Memoria - Prof. Fabio Roli 8

Ricapitolando

BlockFrame = Int Address2n

æèç

öø÷

Offset = Mod Address2n

æèç

öø÷

CacheIndex = Mod BlockFrame2r

æèç

öø÷

TAG = IntBlockFrame

2r

æèç

öø÷

Page 9: Prof. Ing. Fabio Roli Esercitazione 2 (Capitolo 3 del …...1.Spiegare come vengono interpretati gli indirizzi logici a 16 bit per recuperare l’informazione contenuta nella cache

Calcolatori Elettronici Sistema di Memoria - Prof. Fabio Roli 9

Esercizio 1• Si assuma che:

– la memoria primaria contenga 8 blocchi;

– la cache contenga 4 blocchi;

– ogni blocco contenga 16 parole, per un totale di 128 parole in memoria primaria, 64 in memoria cache.

01

765432

01

32

Mem. Primaria

Mem. Cache

Blocchi

Page 10: Prof. Ing. Fabio Roli Esercitazione 2 (Capitolo 3 del …...1.Spiegare come vengono interpretati gli indirizzi logici a 16 bit per recuperare l’informazione contenuta nella cache

Calcolatori Elettronici Sistema di Memoria - Prof. Fabio Roli 10

Indirizzamento diretto

• <TAG 1 bit><Cache Index 2 bit><Offset 4 bit>

• La cache è vuota. Supponiamo che la memoria richieda l’accesso alla parola di memoria primaria di indirizzo 10310=(1100111)2.– Il sistema va prima a cercare la parola

nella cache.

– E’ necessario l’indirizzo del blocco di memoria primaria, dato da: Block Frame = Int(103/16) = 6.

– Poi si individua il blocco di cache dove si dovrebbe trovare la parola con l’operazione:Cache Index = Mod(6/4) = 2.

Ma quel blocco è vuoto.

01

32

Mem. Cache

Page 11: Prof. Ing. Fabio Roli Esercitazione 2 (Capitolo 3 del …...1.Spiegare come vengono interpretati gli indirizzi logici a 16 bit per recuperare l’informazione contenuta nella cache

Calcolatori Elettronici Sistema di Memoria - Prof. Fabio Roli 11

Indirizzamento diretto

• Il sistema va allora a prelevare il blocco di primaria dove si trova la parola 103.

• Viene dunque prelevato tutto il blocco 6 (ovvero tutte le parole contenute in quel blocco) della primaria e copiato nel blocco 2 della cache.

01

765432

Mem. Primaria

01

32

Mem. Cache

Page 12: Prof. Ing. Fabio Roli Esercitazione 2 (Capitolo 3 del …...1.Spiegare come vengono interpretati gli indirizzi logici a 16 bit per recuperare l’informazione contenuta nella cache

Calcolatori Elettronici Sistema di Memoria - Prof. Fabio Roli 12

Indirizzamento diretto

• Supponiamo adesso che il sistema voglia accedere alla parola di indirizzo 35.

– Il blocco di primaria è Int(35/16) = 2.

– Il corrispondente blocco di cache è Mod(2/4) = 2.

• Ma il blocco 2 è stato appena occupato dal blocco 6 della primaria (lo si verifica attraverso il TAG).

• Si rende allora necessario sovrascrivere il blocco 2 di cache con il nuovo blocco di primaria (cache miss).

Page 13: Prof. Ing. Fabio Roli Esercitazione 2 (Capitolo 3 del …...1.Spiegare come vengono interpretati gli indirizzi logici a 16 bit per recuperare l’informazione contenuta nella cache

Calcolatori Elettronici Sistema di Memoria - Prof. Fabio Roli 13

Indirizzamento associativo su insiemi• Se raggruppiamo a due a due i blocchi della cache,

generando così due insiemi, possiamo usare il metodo associativo su insiemi.

• <TAG 2 bit><Set Index 1 bit><Offset 4 bit>

Insieme 1

Insieme 0

01

765432

Mem. Primaria

Mem. Cache

Page 14: Prof. Ing. Fabio Roli Esercitazione 2 (Capitolo 3 del …...1.Spiegare come vengono interpretati gli indirizzi logici a 16 bit per recuperare l’informazione contenuta nella cache

Calcolatori Elettronici Sistema di Memoria - Prof. Fabio Roli 14

Indirizzamento associativo su insiemi

• La cache è vuota. Supponiamo che la memoria richieda l’accesso alla parola di indizzo primaria pari a 103.

• Il sistema va prima a cercare la parola nella cache. E’ necessario l’indirizzo del blocco di memoria primaria, dato da: Int(103/16) = 6.

01

765432

Mem. Primaria

Page 15: Prof. Ing. Fabio Roli Esercitazione 2 (Capitolo 3 del …...1.Spiegare come vengono interpretati gli indirizzi logici a 16 bit per recuperare l’informazione contenuta nella cache

Calcolatori Elettronici Sistema di Memoria - Prof. Fabio Roli 15

Indirizzamento associativo su insiemi

• Il passo successivo è individuare l’insieme della cache dove cercare il blocco, con l’operazione: Mod(6/2) = 0

Insieme 1

Insieme 0

Mem. Cache• Attraverso il TAG il sistema

scansiona i due blocchi di cache dell’insieme 0 per verificare la presenza del blocco di primaria cercato.

• L’insieme è però vuoto. Si rende necessario il trasferimento del blocco 6 di primaria in uno dei due blocchi di cache liberi.

Page 16: Prof. Ing. Fabio Roli Esercitazione 2 (Capitolo 3 del …...1.Spiegare come vengono interpretati gli indirizzi logici a 16 bit per recuperare l’informazione contenuta nella cache

Calcolatori Elettronici Sistema di Memoria - Prof. Fabio Roli 16

Indirizzamento associativo su insiemi

• Il blocco 6 di primaria viene così allocato nel primo blocco disponibile dell’insieme 0 di cache. La situazione della cache è quella descritta in figura.

• Supponiamo ora che il sistema richieda la parola di indirizzo 35, presente nel blocco Int(35/16) = 2 di primaria. L’insieme di cache ha indirizzo Mod(2/2) = 0

• Poiché c’è ancora un blocco libero in quell’insieme, non è necessaria alcuna sostituzione: il blocco 2 di primaria verrà allocato nel blocco libero.

(6)

blocco libero

(6)

(2)

Page 17: Prof. Ing. Fabio Roli Esercitazione 2 (Capitolo 3 del …...1.Spiegare come vengono interpretati gli indirizzi logici a 16 bit per recuperare l’informazione contenuta nella cache

Calcolatori Elettronici Sistema di Memoria - Prof. Fabio Roli 17

Da ricordare

• Per sapere l’indirizzo della prima e dell’ultima parola del blocco N di primaria, essendo D la dimensione del blocco:

• N si ottiene dalla formula:

1)1()0(

-+×=-×=

DDNDWordDNWord

÷øö

çèæ=

DxWordIntN )(

Page 18: Prof. Ing. Fabio Roli Esercitazione 2 (Capitolo 3 del …...1.Spiegare come vengono interpretati gli indirizzi logici a 16 bit per recuperare l’informazione contenuta nella cache

Calcolatori Elettronici Sistema di Memoria - Prof. Fabio Roli 18

Esercizio 2

• 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. La memoria è indirizzabile al singolo byte (parola= 1 byte).

• Calcolare il numero di bit necessario per indirizzare la memoria primaria.

• Dire inoltre come viene indirizzata la cache, sapendo che la memoria è suddivisa in blocchi da 4 byte (4 parole da 1 byte):– con il metodo diretto;– con il metodo associativo su insiemi, con insiemi di 4

blocchi.

Page 19: Prof. Ing. Fabio Roli Esercitazione 2 (Capitolo 3 del …...1.Spiegare come vengono interpretati gli indirizzi logici a 16 bit per recuperare l’informazione contenuta nella cache

Calcolatori Elettronici Sistema di Memoria - Prof. Fabio Roli 19

Soluzione

• 26 bit di indirizzamento• Metodo diretto:

– <tag 7 bit> <cache index 17 bit> <offset 2 bit>

• Metodo associativo su insiemi a 4 vie (4 blocchi): – <tag 9 bit> <set index 15 bit> <offset 2 bit>

Page 20: Prof. Ing. Fabio Roli Esercitazione 2 (Capitolo 3 del …...1.Spiegare come vengono interpretati gli indirizzi logici a 16 bit per recuperare l’informazione contenuta nella cache

Calcolatori Elettronici Sistema di Memoria - Prof. Fabio Roli 20

Esercizio 3

• Si consideri un calcolatore che dispone di una memoria cache di 256 byte. La cache usa 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. Spiegare come vengono interpretati gli indirizzi logici a 16 bit per recuperare l’informazione contenuta nella cache.

2. A che cosa corrispondono gli indirizzi: CC84, A017, FF1A, 012B?

3. Se gli indirizzi A7x1 e 03By possono essere assegnati allo stesso insieme di cache, quali valori possono avere le cifre x e y?

Page 21: Prof. Ing. Fabio Roli Esercitazione 2 (Capitolo 3 del …...1.Spiegare come vengono interpretati gli indirizzi logici a 16 bit per recuperare l’informazione contenuta nella cache

Calcolatori Elettronici Sistema di Memoria - Prof. Fabio Roli 21

Soluzione

1. <TAG 10 bit> <Set Index 4 bit> <Offset 2 bit>2.CC84 ==> CC 10|00 01|00 ==> insieme 1, tag CC(10)2, byte 00A017 ==> A0 00|01 01|11 ==> insieme 5, tag A0(00)2, byte 11FF1A ==> FF 00|01 10|10 ==> insieme 6, tag FF(00)2, byte 10012B ==> 01 00|10 10|11 ==> insieme 10, tag 01(00)2, byte 11

3.

A7x1 ! A7 x3 x2|x1 x0 0 0 |0 103By ! 03 1 0 |1 1 y3 y2|y1 y0x =(x3 x2 1 1 )2 = 3,7,B,F.y =(0 0 y1 y0)2 = 0,1,2,3.

Page 22: Prof. Ing. Fabio Roli Esercitazione 2 (Capitolo 3 del …...1.Spiegare come vengono interpretati gli indirizzi logici a 16 bit per recuperare l’informazione contenuta nella cache

Calcolatori Elettronici Sistema di Memoria - Prof. Fabio Roli 22

Esercizio 4

• Si consideri un calcolatore che dispone di una memoria principale di 64 Kbyte suddivisa in blocchi di 8 byte. E' possibile accedere al singolo byte e la modalità di indirizzamento usata per la cache, costituita da 32 blocchi indirizzabili, sia quella “diretta”.

1. Spiegare, precisando il significato e la funzione dei diversi campi, come vengono interpretati gli indirizzi logici per recuperare l’informazione contenuta nella cache.

2. Indicare in quali blocchi di primaria si trovano i seguenti byte (indirizzi in esadecimale): 111B, C334, D01D, AAAA.

Page 23: Prof. Ing. Fabio Roli Esercitazione 2 (Capitolo 3 del …...1.Spiegare come vengono interpretati gli indirizzi logici a 16 bit per recuperare l’informazione contenuta nella cache

Calcolatori Elettronici Sistema di Memoria - Prof. Fabio Roli 23

Esercizio (cont’d)

3. Indicare in quali blocchi di cache devono essere memorizzati i byte del passo precedente. Se tali parole venissero richieste sequenzialmente, quanti sarebbero gli hit di cache (ipotizzando la cache inizialmente vuota)?

4. Si supponga che il byte di indirizzo 1A1A sia memorizzato in cache. Indicare gli indirizzi di tutti gli altri byte memorizzati nello stesso blocco di cache.

Page 24: Prof. Ing. Fabio Roli Esercitazione 2 (Capitolo 3 del …...1.Spiegare come vengono interpretati gli indirizzi logici a 16 bit per recuperare l’informazione contenuta nella cache

Calcolatori Elettronici Sistema di Memoria - Prof. Fabio Roli 24

Soluzione

1. Spiegare, precisando il significato e la funzione dei diversi campi, come vengono interpretati gli indirizzi logici per recuperare l’informazione contenuta nella cache.

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

Page 25: Prof. Ing. Fabio Roli Esercitazione 2 (Capitolo 3 del …...1.Spiegare come vengono interpretati gli indirizzi logici a 16 bit per recuperare l’informazione contenuta nella cache

Calcolatori Elettronici Sistema di Memoria - Prof. Fabio Roli 25

Soluzione (cont’d)

2. Indicare in quali blocchi di primaria si trovano i seguenti byte (indirizzi in esadecimale):111B, C334, D01D, AAAA.

111B " 0001 0001 | 0001 1 | 011 " Block frame ( 547)10C334 " 1100 0011 | 0011 0 | 100 " Block frame (6246)10D01D " 1101 0000 | 0001 1 | 101 " Block frame (6659)10AAAA " 1010 1010 | 1010 1 | 010 " Block frame (5461)10

Page 26: Prof. Ing. Fabio Roli Esercitazione 2 (Capitolo 3 del …...1.Spiegare come vengono interpretati gli indirizzi logici a 16 bit per recuperare l’informazione contenuta nella cache

Calcolatori Elettronici Sistema di Memoria - Prof. Fabio Roli 26

Soluzione (cont’d)

2. Indicare in quali blocchi di cache devono essere memorizzati i byte del passo precedente:111B, C334, D01D, AAAA.

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 3AAAA " 1010 1010 | 1010 1 | 010 " Block frame (5461)10 " Cache index 21

Page 27: Prof. Ing. Fabio Roli Esercitazione 2 (Capitolo 3 del …...1.Spiegare come vengono interpretati gli indirizzi logici a 16 bit per recuperare l’informazione contenuta nella cache

Calcolatori Elettronici Sistema di Memoria - Prof. Fabio Roli 27

Soluzione (cont’d)

111B, C334, D01D, AAAA.111B " 0001 0001 | 0001 1 | 011 " Block frame ( 547)10 " Cache index 3C334 " 1100 0011 | 0011 0 | 100 " Block frame (6246)10 " Cache index 6

D01D " 1101 0000 | 0001 1 | 101 " Block frame (6659)10 " Cache index 3AAAA " 1010 1010 | 1010 1 | 010 " Block frame (5461)10 " Cache index 21

3. Se tali parole (byte) venissero richieste sequenzialmente, quanti sarebbero gli hit di cache (ipotizzando la cache inizialmente vuota)?

Zero, perché non viene mai richiesta una parola che sta in un bloccodi memoria primaria che è già stato caricato in cache. Anche nel casodella parola di indirizzo D01D che deve essere allocata in un bloccodi cache già pieno (numero 3) si tratta di una parola che sta in unblocco di memoria primaria diverso (si veda i diversi tag).

Page 28: Prof. Ing. Fabio Roli Esercitazione 2 (Capitolo 3 del …...1.Spiegare come vengono interpretati gli indirizzi logici a 16 bit per recuperare l’informazione contenuta nella cache

Calcolatori Elettronici Sistema di Memoria - Prof. Fabio Roli 28

Soluzione (cont’d)

4. Si supponga che il byte di indirizzo 1A1A sia memorizzato in cache. Indicare gli indirizzi di tutti gli altri byte memorizzati nello stesso blocco di cache.

• Dato che:1A1A " 0001 1010 0001 1 | 010

si ottiene facilmente che gli altri byte contenuti nello stesso blocco sono:1A18 (offset 000), 1A19 (offset 001),1A1B (offset 011), 1A1C (offset 100),1A1D (offset 101), 1A1E (offset 110),1A1F (offset 111).

Page 29: Prof. Ing. Fabio Roli Esercitazione 2 (Capitolo 3 del …...1.Spiegare come vengono interpretati gli indirizzi logici a 16 bit per recuperare l’informazione contenuta nella cache

Calcolatori Elettronici Sistema di Memoria - Prof. Fabio Roli 29

Esercizio 5

• Si consideri un calcolatore che dispone di unamemoria principale di 32 KB e di una memoriacache di 4 KB. E’ possibile accedere al singolobyte e la memoria è suddivisa in blocchi da64 B.

1. Spiegare come vengono interpretati gli indirizzidi memoria primaria per recuperarel’informazione contenuta nella cache nel casovenga usata la modalità di indirizzamento:– Diretto;– Associativo su insiemi, in cui ciascun insieme è

formato da 4 blocchi.

Page 30: Prof. Ing. Fabio Roli Esercitazione 2 (Capitolo 3 del …...1.Spiegare come vengono interpretati gli indirizzi logici a 16 bit per recuperare l’informazione contenuta nella cache

Calcolatori Elettronici Sistema di Memoria - Prof. Fabio Roli 30

Esercizio (cont’d)

2. Si consideri la cache di cui alla domanda precedente, indirizzata con la modalità associativa su insiemi. Ipotizzare che il processore acceda ai byte di indirizzo0, 1, 2,…, 4095 in questo ordine.Si ipotizzi inoltre che la cache sia inizialmente vuota.Calcolare il numero di “cache hit” e “cache miss” per questa sequenza di richieste.

Page 31: Prof. Ing. Fabio Roli Esercitazione 2 (Capitolo 3 del …...1.Spiegare come vengono interpretati gli indirizzi logici a 16 bit per recuperare l’informazione contenuta nella cache

Calcolatori Elettronici Sistema di Memoria - Prof. Fabio Roli 31

Soluzione

• Metodo diretto:– <TAG 3 bit><Cache Index 6 bit><Offset 6 bit>

– Offset è 6 bit perché i blocchi sono da 64B e quindi servono 6 bit per indirizzare byte all’interno blocco

– Cache index è 6 bit perché cache ha dimensione 4KB= 212 e quindi ci sono 212/ 26= 26 (64) blocchi di cache

• Notare che poiché le 4096 (212) parole di memoriaprimaria richieste sono in sequenza (0, 1, 2,…, 4095),il sistema richiede l’accesso ai primi 212/ 26= 26 (64)blocchi di memoria primaria.

Page 32: Prof. Ing. Fabio Roli Esercitazione 2 (Capitolo 3 del …...1.Spiegare come vengono interpretati gli indirizzi logici a 16 bit per recuperare l’informazione contenuta nella cache

Calcolatori Elettronici Sistema di Memoria - Prof. Fabio Roli 32

Soluzione

• Metodo set-associativo:– <TAG 5 bit><Set Index 4 bit><Offset 6 bit>

– Set Index è da 4 bit perché la cache contiene 26 blocchi, gli insiemi sono da 4 blocchi, ergo abbiamo 26 blocchi/ 22 = 24

insiemi.

Page 33: Prof. Ing. Fabio Roli Esercitazione 2 (Capitolo 3 del …...1.Spiegare come vengono interpretati gli indirizzi logici a 16 bit per recuperare l’informazione contenuta nella cache

Calcolatori Elettronici Sistema di Memoria - Prof. Fabio Roli 33

Soluzione

• Metodo set-associativo:– <TAG 5 bit><Set 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.

Set Index = indirizzo-blocco-primaria modulo numero-insiemi-cache

• Set Index: indirizzo dell’insieme della cache• Esempi: 0 modulo 16 = 0, 1 modulo 16= 1…..15 modulo 16 = 15,

16 modulo 16= 0, 17 modulo 16 =1, ecc.

Page 34: Prof. Ing. Fabio Roli Esercitazione 2 (Capitolo 3 del …...1.Spiegare come vengono interpretati gli indirizzi logici a 16 bit per recuperare l’informazione contenuta nella cache

Calcolatori Elettronici Sistema di Memoria - Prof. Fabio Roli 34

Soluzione (cont’d)

• Quando viene richiesta la parola 0 avremo un "cache miss”, che provoca il caricamento del blocco 0 nell'insieme 0, in cache.

• Le successive richieste di byte di indirizzo 1, 2, …, 63 vengono quindi soddisfatte dalla cache ("cache hit").

• Dal momento che le richieste sono in tutto 64, avremo 64 "cache miss" e 63*64=4032 "cache hit", cui corrisponde un "hit ratio" pari a 0.98 (4032/4096).

Page 35: Prof. Ing. Fabio Roli Esercitazione 2 (Capitolo 3 del …...1.Spiegare come vengono interpretati gli indirizzi logici a 16 bit per recuperare l’informazione contenuta nella cache

Calcolatori Elettronici Sistema di Memoria - Prof. Fabio Roli 35

Gerarchia di memoria

• Tempo medio di accesso:

T = HCTC + (HP - HC )(TP + TC ) + (1- HP )(TD + TP + TC ) =

T = TC + (1- HC )TP + (1- HP )TD

Page 36: Prof. Ing. Fabio Roli Esercitazione 2 (Capitolo 3 del …...1.Spiegare come vengono interpretati gli indirizzi logici a 16 bit per recuperare l’informazione contenuta nella cache

Calcolatori Elettronici Sistema di Memoria - Prof. Fabio Roli 36

Esercizio 6

• Calcolare il tempo medio di accesso alla gerarchia di memoria, 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.95

– l’hit ratio di primaria è pari a 0.98

T = TC + (1- HC )TP + (1- HP)TD = 0.2ms

Page 37: Prof. Ing. Fabio Roli Esercitazione 2 (Capitolo 3 del …...1.Spiegare come vengono interpretati gli indirizzi logici a 16 bit per recuperare l’informazione contenuta nella cache

Calcolatori Elettronici Sistema di Memoria - Prof. Fabio Roli 37

Hit ratioDiagramma di Venn

• Qual è la relazione tra gli hit ratio dei diversi livelli di memoria?

Disco PrimariaCache

0 < Hc < Hp < Hd = 1

c: la parola è in cache

p: la parola è in primaria

d: la parola è nel disco

Page 38: Prof. Ing. Fabio Roli Esercitazione 2 (Capitolo 3 del …...1.Spiegare come vengono interpretati gli indirizzi logici a 16 bit per recuperare l’informazione contenuta nella cache

Hit ratio nei diversi livelli di memoria

Calcolatori Elettronici Sistema di Memoria - Prof. Fabio Roli 38

D P C

X X

X X X

X

X X X

X X X

X X X

X X

X X X

X

X X X

𝐻! =610

𝐻" =810

c: la parola è in cache

p: la parola è in memoria primaria

d: la parola è nel disco

Page 39: Prof. Ing. Fabio Roli Esercitazione 2 (Capitolo 3 del …...1.Spiegare come vengono interpretati gli indirizzi logici a 16 bit per recuperare l’informazione contenuta nella cache

Calcolatori Elettronici Sistema di Memoria - Prof. Fabio Roli 39

Esercizio 7

• Sia data una gerarchia di memoria costituita da memoria cache, memoria primaria e disco. Durante l’esecuzione di un programma viene rilevato che su 1000 parole richieste 950 sono state trovate in cache e 30 sono state trovate in memoria primaria ma non sono state trovate in cache. Istruzioni e dati del programma sono 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.

Page 40: Prof. Ing. Fabio Roli Esercitazione 2 (Capitolo 3 del …...1.Spiegare come vengono interpretati gli indirizzi logici a 16 bit per recuperare l’informazione contenuta nella cache

Calcolatori Elettronici Sistema di Memoria - Prof. Fabio Roli 40

Soluzione

Dai dati del problema abbiamo i tempi di accesso dei vari livelli della gerarchia, si tratta quindi solo di calcolare gli hit ratio Hc, Hp, Hd.

T = HCTC + (HP - HC )(TP + TC ) + (1- HP )(TD + TP + TC ) =

T = TC + (1- HC )TP + (1- HP )TD

Ricordiamo che tempo medio accesso è dato da:

Page 41: Prof. Ing. Fabio Roli Esercitazione 2 (Capitolo 3 del …...1.Spiegare come vengono interpretati gli indirizzi logici a 16 bit per recuperare l’informazione contenuta nella cache

Calcolatori Elettronici Sistema di Memoria - Prof. Fabio Roli 41

Soluzione

• Calcolo dei parametri Hc, Hd:

– Nel caso di Hc, dalla definizione si ha subitoHc = 950/1000 = 0.95, in quanto 950 è il numero di «hit» in cache.

– Per quanto riguarda Hd, sappiamo dal testo che istruzioni e dati sono tutti memorizzati su disco. Per cui Hd = 1.

Page 42: Prof. Ing. Fabio Roli Esercitazione 2 (Capitolo 3 del …...1.Spiegare come vengono interpretati gli indirizzi logici a 16 bit per recuperare l’informazione contenuta nella cache

Calcolatori Elettronici Sistema di Memoria - Prof. Fabio Roli 42

Esercizio 7• Durante l’esecuzione di un programma viene rilevato che su 1000 parole

richieste 950 sono state trovate in cache e 30 sono state trovate in memoria primaria ma non sono state trovate in cache. Istruzioni e dati del programma sono tutti memorizzati su disco.

Disco PrimariaCache

Page 43: Prof. Ing. Fabio Roli Esercitazione 2 (Capitolo 3 del …...1.Spiegare come vengono interpretati gli indirizzi logici a 16 bit per recuperare l’informazione contenuta nella cache

Calcolatori Elettronici Sistema di Memoria - Prof. Fabio Roli 43

Soluzione

• Calcolo del parametro Hp:Dal testo: Su 1000 parole richieste 950 sono state trovate in cache e 30 sono state trovate in memoria primaria ma non sono state trovate in cache.

Page 44: Prof. Ing. Fabio Roli Esercitazione 2 (Capitolo 3 del …...1.Spiegare come vengono interpretati gli indirizzi logici a 16 bit per recuperare l’informazione contenuta nella cache

Calcolatori Elettronici Sistema di Memoria - Prof. Fabio Roli 44

Soluzione

• Calcolo del parametro Hp:

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

Page 45: Prof. Ing. Fabio Roli Esercitazione 2 (Capitolo 3 del …...1.Spiegare come vengono interpretati gli indirizzi logici a 16 bit per recuperare l’informazione contenuta nella cache

Calcolatori Elettronici Sistema di Memoria - Prof. Fabio Roli 45

Soluzione (cont’d)

• Applicando la formula del tempo medio della gerarchia, si ottiene:

• T = 0.95 * 4 + (0.98 – 0.95) * (4 + 40) + (1 – 0.98) * (4 + 40+ 2 * 106) = 3.8 + 1.32 + 40000,88 =40006 ns = 40.006 ms.

))(1())(( CPDPCPCPCC TTTHTTHHTHT ++-++-+=

Page 46: Prof. Ing. Fabio Roli Esercitazione 2 (Capitolo 3 del …...1.Spiegare come vengono interpretati gli indirizzi logici a 16 bit per recuperare l’informazione contenuta nella cache

Calcolatori Elettronici Sistema di Memoria - Prof. Fabio Roli 46

Esercizio 8 sulla cache (LRU, FIFO)

• Si consideri una memoria primaria costituita da 128parole e una memoria cache costituita da 16 parole. Ilmetodo di indirizzamento della cache sia quelloassociativo su insiemi a due vie con blocchi di 4 parole.Si considerino le seguenti chiamate ad altrettante parole(indirizzi espressi in decimale):52, 24, 1, 44, 25, 37, 47, 4, 3, 45, 61.

• Si indichi il contenuto della cache, ovvero quali paroleoccupano i relativi blocchi di cache, dopo l’ultimachiamata, nel caso si adoperino algoritmi dirimpiazzamento FIFO e LRU.

Page 47: Prof. Ing. Fabio Roli Esercitazione 2 (Capitolo 3 del …...1.Spiegare come vengono interpretati gli indirizzi logici a 16 bit per recuperare l’informazione contenuta nella cache

Calcolatori Elettronici Sistema di Memoria - Prof. Fabio Roli 47

Soluzione

• <TAG 4 bit><Set Index 1 bit><Offset 2 bit>

– Indirizzamento memoria primaria è da 7 bit perchèmemoria primaria è costituita da 128 parole

– Offset vale 2 bit perchè blocchi di 4 parole

– Set index (indirizzo degli insiemi di cache) vale 1 bitperché abbiamo insiemi a due «vie» (due blocchi perinsieme). Cache ha ampiezza 16 parole, ergo ci sono 4blocchi in cache, ciascuno da 4 parole. I blocchi sonoraggruppati in insiemi a due vie, cioè con due blocchiper insieme, ergo la cache contiene 2 insiemi.

Page 48: Prof. Ing. Fabio Roli Esercitazione 2 (Capitolo 3 del …...1.Spiegare come vengono interpretati gli indirizzi logici a 16 bit per recuperare l’informazione contenuta nella cache

Calcolatori Elettronici Sistema di Memoria - Prof. Fabio Roli 48

Soluzione

• <TAG 4 bit><Set Index 1 bit><Offset 2 bit>– Si considerino le seguenti chiamate a parole di

memoria primaria (indirizzi espressi in decimale):52, 24, 1, 44, 25, 37, 47, 4, 3, 45, 61.

– Domanda: si indichi il contenuto della cache, ovvero quali parole occupano i relativi blocchi di cache, dopo l’ultima chiamata, nel caso si adoperino algoritmi di rimpiazzamento FIFO e LRU.

– Dobbiamo trovare l’allocazione delle parole di primaria in cache…

Page 49: Prof. Ing. Fabio Roli Esercitazione 2 (Capitolo 3 del …...1.Spiegare come vengono interpretati gli indirizzi logici a 16 bit per recuperare l’informazione contenuta nella cache

Calcolatori Elettronici Sistema di Memoria - Prof. Fabio Roli 49

Soluzione

– Sequenza indirizzi espressi in decimale di parole primaria:52, 24, 1, 44, 25, 37, 47, 4, 3, 45, 61.

– Dobbiamo trovare l’allocazione delle parole di primaria in cache…

– Due passi:

1)Calcolo allocazione parole primaria nei blocchi primaria

2)Calcolo allocazione blocchi primaria nei blocchi di cache tenendo conto che indirizzamento della cache è quello associativo su insiemi a due vie con blocchi di 4 parole.

Page 50: Prof. Ing. Fabio Roli Esercitazione 2 (Capitolo 3 del …...1.Spiegare come vengono interpretati gli indirizzi logici a 16 bit per recuperare l’informazione contenuta nella cache

Calcolatori Elettronici Sistema di Memoria - Prof. Fabio Roli 50

Soluzione

1)Calcolo allocazione parole primaria nei blocchi primariaB.F. (Block Frame = Indirizzo di blocco in primaria)= Int(X/4). Dove X è indirizzo parola in primaria e 4 è dimensione blocco

2)Calcolo allocazione blocchi primaria nei blocchi di cacheS.I. (Set Index) = Mod(B.F./2)

Ogni insieme di cache contiene 2 bocchi.Ergo per calcolare l’allocazione dei blocchi di primaria negli insiemidi cache devo calcolare il resto modulo 2.

Page 51: Prof. Ing. Fabio Roli Esercitazione 2 (Capitolo 3 del …...1.Spiegare come vengono interpretati gli indirizzi logici a 16 bit per recuperare l’informazione contenuta nella cache

Calcolatori Elettronici Sistema di Memoria - Prof. Fabio Roli 51

Soluzione

• Ricaviamo il set index per ogni chiamata:B.F. = Int(X/4);S.I. = Mod(BF/2).

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

Page 52: Prof. Ing. Fabio Roli Esercitazione 2 (Capitolo 3 del …...1.Spiegare come vengono interpretati gli indirizzi logici a 16 bit per recuperare l’informazione contenuta nella cache

Calcolatori Elettronici Sistema di Memoria - Prof. Fabio Roli 52

Soluzione

• Strategia FIFO (First In First Out)

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

Set0

6 6 6 6 6 6 6 6 6 6

0 0 0 0 0 0 0 0 0

Set1

13 13 13 13 13 9 9 9 9 11 11

11 11 11 11 1 1 1 15

Hit X X X

La chiamata alla parola di indirizzo 37 causa rimpiazzamento del blocco 13, il primo entrato, con blocco 9. Chiamata parola 4 fa rimpiazzare blocco 11 (secondo entrato) con blocco 1., ecc. In rosso i blocchi che via via ne rimpiazzano altri.

Page 53: Prof. Ing. Fabio Roli Esercitazione 2 (Capitolo 3 del …...1.Spiegare come vengono interpretati gli indirizzi logici a 16 bit per recuperare l’informazione contenuta nella cache

Calcolatori Elettronici Sistema di Memoria - Prof. Fabio Roli 53

Soluzione

• Strategia FIFO, stato finale della cache

• Hit rate = 3/11

B.F. Words

Set0

6 24, 25, 26, 27

0 0, 1, 2, 3

Set1

11 44,45,46,47

15 60,61,62,63

Page 54: Prof. Ing. Fabio Roli Esercitazione 2 (Capitolo 3 del …...1.Spiegare come vengono interpretati gli indirizzi logici a 16 bit per recuperare l’informazione contenuta nella cache

Calcolatori Elettronici Sistema di Memoria - Prof. Fabio Roli 54

Soluzione

• Strategia LRU (Least Recently Used)

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

Set0

6 6 6 6 6 6 6 6 6 6

0 0 0 0 0 0 0 0 0

Set1

13 13 13 13 13 9 9 1 1 1 15

11 11 11 11 11 11 11 11

Hit X X X X

Nel caso della chiamata alla parola «37» (B.F. 9) viene sostituito il blocco 13 perchémeno recentemente usato rispetto al blocco «11», nel caso di «4» viene sostituito«9» perché «11» aveva avuto un «hit» (uso) subito prima.

Page 55: Prof. Ing. Fabio Roli Esercitazione 2 (Capitolo 3 del …...1.Spiegare come vengono interpretati gli indirizzi logici a 16 bit per recuperare l’informazione contenuta nella cache

Calcolatori Elettronici Sistema di Memoria - Prof. Fabio Roli 55

Soluzione

• Strategia LRU, stato finale della cache

• Hit rate = 4/11

B.F. Words

Set0

6 24, 25, 26, 27

0 0, 1, 2, 3

Set1

15 60,61,62,63

11 44,45,46,47

Page 56: Prof. Ing. Fabio Roli Esercitazione 2 (Capitolo 3 del …...1.Spiegare come vengono interpretati gli indirizzi logici a 16 bit per recuperare l’informazione contenuta nella cache

Confronto FIFO con LRU

• In questo esempio LRU risulta migliore di FIFO

• 4 hit invece di 3

• In questo esempio vantaggio di LRU è dovuto al fatto che LRU tiene conto che il blocco 11 pur essendo entrato «prima» del 9 in cache è stato usato più recentemente.

• Ergo conviene rimpiazzare il «9» perché il principio di località temporale ci suggerisce che il blocco «11» potrebbe dover essere usato di nuovo. E così accade alla chiamata della parola «45».

Calcolatori Elettronici Sistema di Memoria - Prof. Fabio Roli 56

Page 57: Prof. Ing. Fabio Roli Esercitazione 2 (Capitolo 3 del …...1.Spiegare come vengono interpretati gli indirizzi logici a 16 bit per recuperare l’informazione contenuta nella cache

Calcolatori Elettronici Sistema di Memoria - Prof. Fabio Roli 57

Esercizio sulla cache (cont’d)

2. Durante il test delle chiamate alla memoria da parte di un programma in esecuzione si sono ottenuti i seguenti valori di performance per una gerarchia di memorie a tre livelli: Hc = 0.9, Hp = 0.75, Hd = 0.99. Il programma era completamente memorizzato nel disco. Hc, Hp, Hd sono gli hit ratio di cache, primaria e disco.Spiegare, motivando chiaramente la risposta, se i valori ottenuti sono compatibili con quanto ci si attende da una gerarchia di memoria.

Page 58: Prof. Ing. Fabio Roli Esercitazione 2 (Capitolo 3 del …...1.Spiegare come vengono interpretati gli indirizzi logici a 16 bit per recuperare l’informazione contenuta nella cache

Calcolatori Elettronici Sistema di Memoria - Prof. Fabio Roli 58

Soluzione

• Ovviamente no, per 2 motivi:1. La condizione Hc < Hp < Hd non è rispettata;

2. Hd non è uguale a 1, nonostante il processo sia interamente memorizzato sul disco!

Page 59: Prof. Ing. Fabio Roli Esercitazione 2 (Capitolo 3 del …...1.Spiegare come vengono interpretati gli indirizzi logici a 16 bit per recuperare l’informazione contenuta nella cache

Calcolatori Elettronici Sistema di Memoria - Prof. Fabio Roli 59

Esercizio 9 sulla cache

• E’ data una gerarchia di memoria cache-primaria. La memoria primaria è di 512 KB mentre la cache è di64 KB. E’ possibile indirizzare il singolo byte, e la memoria primaria è suddivisa in blocchi di 32 B.

1. Indicare, sapendo che l’indirizzo della prima parola è pari a 0, l’indirizzo della prima e dell’ultima parola del blocco di memoria primaria con block frame pari a 16.

2. Indicare, specificando l’ampiezza e la funzione dei diversi campi, come vengono interpretati gli indirizzi di memoria primaria e gli indirizzi di cache secondo il metodo di indirizzamento diretto, associativo e set-associativo a otto vie.

Page 60: Prof. Ing. Fabio Roli Esercitazione 2 (Capitolo 3 del …...1.Spiegare come vengono interpretati gli indirizzi logici a 16 bit per recuperare l’informazione contenuta nella cache

Calcolatori Elettronici Sistema di Memoria - Prof. Fabio Roli 60

Soluzione alla domanda 1• Utilizziamo le formule:

– N corrisponde al Block Frame;– D è il numero di parole/blocco.

• Indirizzo della prima parola del blocco:Block Frame * D = 16 * 32 = 512.

• Indirizzo dell’ultima parola del blocco:Indirizzo della prima parola del blocco + D – 1 == 512 + 32 – 1 = 543.

1)1()0(

-+×=-×=

DDNDWordDNWord

Page 61: Prof. Ing. Fabio Roli Esercitazione 2 (Capitolo 3 del …...1.Spiegare come vengono interpretati gli indirizzi logici a 16 bit per recuperare l’informazione contenuta nella cache

Calcolatori Elettronici Sistema di Memoria - Prof. Fabio Roli 61

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, 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; 32 B/blocco.

– Quindi: 64 KB / ( 32 B/blocco ) = 2K blocchi =2048 blocchi.

Page 62: Prof. Ing. Fabio Roli Esercitazione 2 (Capitolo 3 del …...1.Spiegare come vengono interpretati gli indirizzi logici a 16 bit per recuperare l’informazione contenuta nella cache

Calcolatori Elettronici Sistema di Memoria - Prof. Fabio Roli 62

Soluzione alla domanda 2

• Metodo diretto– Il cache index identifica i blocchi in cache.

– 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, dato che si ha solo 1 insieme).

– <TAG 14 bit><Offset 5 bit>

Page 63: Prof. Ing. Fabio Roli Esercitazione 2 (Capitolo 3 del …...1.Spiegare come vengono interpretati gli indirizzi logici a 16 bit per recuperare l’informazione contenuta nella cache

Calcolatori Elettronici Sistema di Memoria - Prof. Fabio Roli 63

Soluzione alla domanda 2

• Metodo set-associativo, insiemi a 8 vie– E’ necessario capire quanti insiemi sono presenti in

cache. Dato che i blocchi in cache sono 2048, avremo 2048 blocchi / (8 blocchi/insieme) = 28 insiemi

– Il set index dovrà indirizzare 28 insiemi, quindi saranno necessari 8 bit.

– <TAG 6 bit><Set Index 8 bit><Offset 5 bit>

Page 64: Prof. Ing. Fabio Roli Esercitazione 2 (Capitolo 3 del …...1.Spiegare come vengono interpretati gli indirizzi logici a 16 bit per recuperare l’informazione contenuta nella cache

Calcolatori Elettronici Sistema di Memoria - Prof. Fabio Roli 64

Esercizio 9bis sulla cache (cont’d)

3. Ipotizzando la cache piena, 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. Si indichi e descriva, dove necessario, almeno un algoritmo di rimpiazzamento.

Page 65: Prof. Ing. Fabio Roli Esercitazione 2 (Capitolo 3 del …...1.Spiegare come vengono interpretati gli indirizzi logici a 16 bit per recuperare l’informazione contenuta nella cache

Calcolatori Elettronici Sistema di Memoria - Prof. Fabio Roli 65

Soluzione alla domanda 3• Metodo diretto: C.I.=mod(16/211)=16.

Quindi il blocco 16 di primaria viene allocato, sostituendoil blocco precedente, se con TAG diverso, nella linea 16 dicache.

• Metodo associativo: a meno che in una delle linee dellacache non sia presente un blocco con medesimo TAG, ilblocco dovrà essere allocato rimpiazzando un blocco dicache. Usando l’algoritmo di rimpiazzamento FIFO, ilblocco da rimpiazzare è quello che era stato allocato perprimo in cache.

• Metodo set-associativo (insiemi a 8 vie): S.I.=mod(16/28)=16. 16 corrisponde all’indirizzo dell’insieme. Il blocco 16 sostituirà, a meno di hit, uno degli otto blocchi allocati nell’insieme 16, secondo la strategia di rimpiazzamento utilizzata.

Page 66: Prof. Ing. Fabio Roli Esercitazione 2 (Capitolo 3 del …...1.Spiegare come vengono interpretati gli indirizzi logici a 16 bit per recuperare l’informazione contenuta nella cache

Calcolatori Elettronici Sistema di Memoria - Prof. Fabio Roli 66

Memoria a disco

• Parametri:– Tempo di latenza

– T. di posizionamento

– T. di lettura

Page 67: Prof. Ing. Fabio Roli Esercitazione 2 (Capitolo 3 del …...1.Spiegare come vengono interpretati gli indirizzi logici a 16 bit per recuperare l’informazione contenuta nella cache

Calcolatori Elettronici Sistema di Memoria - Prof. Fabio Roli 67

Memoria a disco• Parametri:

– Tempo di latenza

– T. di posizionamento

– T. di lettura

Page 68: Prof. Ing. Fabio Roli Esercitazione 2 (Capitolo 3 del …...1.Spiegare come vengono interpretati gli indirizzi logici a 16 bit per recuperare l’informazione contenuta nella cache

Calcolatori Elettronici Sistema di Memoria - Prof. Fabio Roli 68

Esercizio (17/02/2002)

• Sia dato un disco rigido con le seguenti caratteristiche: velocità:7200 giri/min, 200 settori per traccia, capacità di un settore 8KB, tempo per lo spostamento della testina fra due tracceconsecutive: 1ms.

• Calcolare il tempo di trasferimento di un blocco di 128 KB neiseguenti casi:1. il blocco è stato registrato su settori contigui sulla stessa traccia e la

testina si trova posizionata sul primo settore del blocco;2. i settori del blocco in questione siano registrati su tracce diverse la

cui distanza media è pari a 12 tracce e la testina si trovi posizionataall'inizio del primo settore del blocco.

Page 69: Prof. Ing. Fabio Roli Esercitazione 2 (Capitolo 3 del …...1.Spiegare come vengono interpretati gli indirizzi logici a 16 bit per recuperare l’informazione contenuta nella cache

Calcolatori Elettronici Sistema di Memoria - Prof. Fabio Roli 69

Soluzione alla domanda 1

• TROT = 60 / 7200 = 0.0083 secondi

• Il tempo di lettura di un settore lo si ricava dividendo il tempo dirotazione per il numero di settori per traccia (200).Tlett = TROT / 200 = 41.67 microsec.

• Se il blocco si trova registrato di seguito su una stessa traccia ela testina si trova già posizionata sul primo settore del blocco, iltempo di lettura totale è uguale a 16 volte il tempo ditrasferimento di un settore (visto che i dati sono registrati su128KB/(8KB/settore) = 16 settori).

• Tempo per la lettura di un blocco di 128 KB= 16 * 41.67 microsec = 666.72 microsec = 0.666 ms.

Page 70: Prof. Ing. Fabio Roli Esercitazione 2 (Capitolo 3 del …...1.Spiegare come vengono interpretati gli indirizzi logici a 16 bit per recuperare l’informazione contenuta nella cache

Calcolatori Elettronici Sistema di Memoria - Prof. Fabio Roli 70

Soluzione alla domanda 2

• In questo caso bisogna considerare:– Il tempo di posizionamento (pari a 12 ms);

– Il tempo di latenza (pari a TROT/ 2 ms = 4.17 ms).

• Tpos e Tlat sono necessari per calcolare il tempo di letturadei blocchi successivi al primo (in tutto 15 blocchi).

• T= Tlett + 15*(Tlett+Tpos+Tlat) = 243.216 ms

Page 71: Prof. Ing. Fabio Roli Esercitazione 2 (Capitolo 3 del …...1.Spiegare come vengono interpretati gli indirizzi logici a 16 bit per recuperare l’informazione contenuta nella cache

Calcolatori Elettronici Sistema di Memoria - Prof. Fabio Roli 71

Esercizio (19/04/2007)

• Un disco presenta le seguenti caratteristiche: 7200 giri/min, 100 settori per traccia, tempo di spostamento da una traccia a quelle adiacenti 1 ms, 101 tracce per superficie, 32 B per settore.

• Calcolare il tempo medio di lettura di un blocco di 1 KB da disco, nell’ipotesi che il primo settore utile si trovi nella prima traccia, che la testina si trovi nell’ultima traccia all’istante iniziale, e che i settori del blocco siano situati, a due a due, in tracce diverse distanti mediamente 4 tracce.

Page 72: Prof. Ing. Fabio Roli Esercitazione 2 (Capitolo 3 del …...1.Spiegare come vengono interpretati gli indirizzi logici a 16 bit per recuperare l’informazione contenuta nella cache

Calcolatori Elettronici Sistema di Memoria - Prof. Fabio Roli 72

Soluzione

• Parametri:– TROT = 60 / 7200 = 0.0083 secondi

– TLAT = TROT / 2 = 0.00415 secondi

– Tlett = TROT / 100 = 0.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.

Page 73: Prof. Ing. Fabio Roli Esercitazione 2 (Capitolo 3 del …...1.Spiegare come vengono interpretati gli indirizzi logici a 16 bit per recuperare l’informazione contenuta nella cache

Calcolatori Elettronici Sistema di Memoria - Prof. Fabio Roli 73

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. Visto che i settori restanti sono a due a due sulla stessa traccia, occorrerà inoltre dimezzare il tempo di posizionamento medio.

• Tempo di lettura del blocco da 1KB: – T = 100 * Tsp + 2*Tlett + 2*TLAT +

30 * (TLAT + Tpos/2 + Tlett) = = 100*1 + 2*0.083 + 2*4.15+30*(4.15+2+0.083) == 295.46 ms

Page 74: Prof. Ing. Fabio Roli Esercitazione 2 (Capitolo 3 del …...1.Spiegare come vengono interpretati gli indirizzi logici a 16 bit per recuperare l’informazione contenuta nella cache

Calcolatori Elettronici Sistema di Memoria - Prof. Fabio Roli 74

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.083 + 4.15+30*(4.15/2+2+0.083) == 229.06 ms

Page 75: Prof. Ing. Fabio Roli Esercitazione 2 (Capitolo 3 del …...1.Spiegare come vengono interpretati gli indirizzi logici a 16 bit per recuperare l’informazione contenuta nella cache

Calcolatori Elettronici Sistema di Memoria - Prof. Fabio Roli 75

Esercizio (12/07/2002)

• Si consideri un disco rigido con le seguenticaratteristiche:– velocità di rotazione = 5400 giri/min;

– tempo medio di posizionamento = 5 ms;

– 34 settori per traccia di 512 byte ciascuno.

• Calcolare il tempo medio di trasferimento di unfile da 8 KB considerando:– il caso migliore;

– il caso medio.

Page 76: Prof. Ing. Fabio Roli Esercitazione 2 (Capitolo 3 del …...1.Spiegare come vengono interpretati gli indirizzi logici a 16 bit per recuperare l’informazione contenuta nella cache

Calcolatori Elettronici Sistema di Memoria - Prof. Fabio Roli 76

Soluzione

• Trot = 60/5400 sec = 11.11 ms• Tlat = Trot/2 = 5.555 ms• Tlett = Trot /34 = 0.327 ms (tempo di lettura di un

settore)• Tpos = 5 msec.• Numero di settori richiesti dal file

N = 8 KB / (512B/settore) = 16 settori.

Page 77: Prof. Ing. Fabio Roli Esercitazione 2 (Capitolo 3 del …...1.Spiegare come vengono interpretati gli indirizzi logici a 16 bit per recuperare l’informazione contenuta nella cache

Calcolatori Elettronici Sistema di Memoria - Prof. Fabio Roli 77

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

• Caso medio: il file è posizionato su settori collocati in tracce diverse e la testina si trova in un punto qualsiasi del disco.– T = N * (Tlat + Tpos + Tlett) = 16 * 10.882 = 174.112 msec

Page 78: Prof. Ing. Fabio Roli Esercitazione 2 (Capitolo 3 del …...1.Spiegare come vengono interpretati gli indirizzi logici a 16 bit per recuperare l’informazione contenuta nella cache

Calcolatori Elettronici Sistema di Memoria - Prof. Fabio Roli 78

Codice di Hamming

• Relazione tra i bit di controllo (K) e di informazione (N):

N.B.: N+K corrisponde alla lunghezza della stringa codificata

• Capire quali bit controllano il bit in posizione n:

2K ³ N + K +1

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

Page 79: Prof. Ing. Fabio Roli Esercitazione 2 (Capitolo 3 del …...1.Spiegare come vengono interpretati gli indirizzi logici a 16 bit per recuperare l’informazione contenuta nella cache

Calcolatori Elettronici Sistema di Memoria - Prof. Fabio Roli 79

Codice di Hamming

c0 = b0 (exor) b1 (exor) b3

(exor) b4 (exor) b6

c1 = b0 ex b2 ex b3 ex b5 ex b6

c2 = b1 ex b2 ex b3 ex b7

c3 = b4 ex b5 ex b6 ex b7

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

Es. b2

n=6=21+22

Quindi b2 è controllato da c1 e c2

Page 80: Prof. Ing. Fabio Roli Esercitazione 2 (Capitolo 3 del …...1.Spiegare come vengono interpretati gli indirizzi logici a 16 bit per recuperare l’informazione contenuta nella cache

Calcolatori Elettronici Sistema di Memoria - Prof. Fabio Roli 80

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

Page 81: Prof. Ing. Fabio Roli Esercitazione 2 (Capitolo 3 del …...1.Spiegare come vengono interpretati gli indirizzi logici a 16 bit per recuperare l’informazione contenuta nella cache

Calcolatori Elettronici Sistema di Memoria - Prof. Fabio Roli 81

Soluzione

1. Deve essere rispettata la condizione:

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

2. La sequenza in ingresso presenta la seguente struttura:

Quindi la parola di N bit risulta 10111110

2K ³ N + K +1

c0 c1 b0 c2 b1 b2 b3 c3 b4 b5 b6 b7

0 0 1 0 0 1 1 0 1 1 1 0

Page 82: Prof. Ing. Fabio Roli Esercitazione 2 (Capitolo 3 del …...1.Spiegare come vengono interpretati gli indirizzi logici a 16 bit per recuperare l’informazione contenuta nella cache

Calcolatori Elettronici Sistema di Memoria - Prof. Fabio Roli 82

Soluzione

3. Per verificare la presenza di un errore, dobbiamo ricalcolare il vettore di controllo a partire dalla sequenza ricevuta. Si ha:

c’0 = EXOR (b0 b1 b3 b4 b6 ) = 0c’1 = EXOR (b0 b2 b3 b5 b6 ) = 1c’2 = EXOR (b1 b2 b3 b7 ) = 0c’3 = EXOR (b4 b5 b6 b7 ) = 1

Page 83: Prof. Ing. Fabio Roli Esercitazione 2 (Capitolo 3 del …...1.Spiegare come vengono interpretati gli indirizzi logici a 16 bit per recuperare l’informazione contenuta nella cache

Calcolatori Elettronici Sistema di Memoria - Prof. Fabio Roli 83

Soluzione (cont’d)• Il passo successivo è calcolare il vettore di errore dato

dalla differenza dei vettori di controllo c e c’:

e0 = c0 EXOR c’0 = 0e1 = c1 EXOR c’1 = 1e2 = c2 EXOR c’2 = 0e3 = c3 EXOR c’3 = 1

Page 84: Prof. Ing. Fabio Roli Esercitazione 2 (Capitolo 3 del …...1.Spiegare come vengono interpretati gli indirizzi logici a 16 bit per recuperare l’informazione contenuta nella cache

Calcolatori Elettronici Sistema di Memoria - Prof. Fabio Roli 84

Soluzione

• Poiché il vettore risultante 1010 (e3e2e1e0) non è nullo, vi è un errore nella stringa di 12 bit data e precisamente nella posizione indicata dal vettore di errore tradotto in notazione decimale. Il bit sbagliato è quindi il decimo (b5), e la parola corretta è 10111010.

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

Page 85: Prof. Ing. Fabio Roli Esercitazione 2 (Capitolo 3 del …...1.Spiegare come vengono interpretati gli indirizzi logici a 16 bit per recuperare l’informazione contenuta nella cache

Calcolatori Elettronici Sistema di Memoria - Prof. Fabio Roli 85

Esercizio (11/01/2008)

• I trasferimenti di parole a/dalla memoria di uncalcolatore sono codificati utilizzando il codicedi Hamming. Si consideri la parola di 7 bit0110101 (il bit meno significativo è asinistra).

1. Calcolare il minimo numero di bit di controllonecessari per la codifica della parola;

2. codificare la parola data;3. imporre un errore nel quinto bit della parola

inizialmente data. Spiegare come l’errore vienerivelato e corretto per mezzo della codifica diHamming.

Page 86: Prof. Ing. Fabio Roli Esercitazione 2 (Capitolo 3 del …...1.Spiegare come vengono interpretati gli indirizzi logici a 16 bit per recuperare l’informazione contenuta nella cache

Calcolatori Elettronici Sistema di Memoria - Prof. Fabio Roli 86

Soluzione

1. Deve essere rispettata la condizione:

– dove K è il numero di bit di controllo.Essendo N = 7, il numero minimo di bit di controllo richiesto è K = 4.

2K ³ N + K +1

Page 87: Prof. Ing. Fabio Roli Esercitazione 2 (Capitolo 3 del …...1.Spiegare come vengono interpretati gli indirizzi logici a 16 bit per recuperare l’informazione contenuta nella cache

Calcolatori Elettronici Sistema di Memoria - Prof. Fabio Roli 87

Soluzione

2. Codificare 0110101

La parola codificata è 10001100101

1 2 3 4 5 6 7 8 9 10 11

c0 c1 b0 c2 b1 b2 b3 c3 b4 b5 b6

0 1 1 0 1 0 1

c0 = EXOR (b0 b1 b3 b4 b6 ) = 1

c1 = EXOR (b0 b2 b3 b5 b6 ) = 0

c2 = EXOR (b1 b2 b3 ) = 0

c3 = EXOR (b4 b5 b6 ) = 0

1 0 0 0

Page 88: Prof. Ing. Fabio Roli Esercitazione 2 (Capitolo 3 del …...1.Spiegare come vengono interpretati gli indirizzi logici a 16 bit per recuperare l’informazione contenuta nella cache

Calcolatori Elettronici Sistema di Memoria - Prof. Fabio Roli 88

Soluzione

3. Nell’ipotesi di un errore sul quinto bit (b4) della stringainiziale, la stringa ricevuta risulta: 10001100001.Per rivelare questo errore, bisogna ricalcolare i bit dicontrollo:

c’0 = EXOR b0 b1 b3 b4 b6 = EXOR 0 1 0 0 1 = 0

c’1 = EXOR b0 b2 b3 b5 b6 = EXOR 0 1 0 0 1 = 0

c’2 = EXOR b1 b2 b3 = EXOR 1 1 0 = 0

c’3 = EXOR b4 b5 b6 = EXOR 0 0 1 = 1

Page 89: Prof. Ing. Fabio Roli Esercitazione 2 (Capitolo 3 del …...1.Spiegare come vengono interpretati gli indirizzi logici a 16 bit per recuperare l’informazione contenuta nella cache

Calcolatori Elettronici Sistema di Memoria - Prof. Fabio Roli 89

Soluzione• Il passo successivo è calcolare il vettore di errore dato dalla

differenza dei vettori di controllo c e c’:

e0 = exor c0 c’0 = exor 1 0 = 1e1 = exor c1 c’1 = exor 0 0 = 0e2 = exor c2 c’2 = exor 0 0 = 0e3 = exor c3 c’3 = exor 0 1 = 1

• Poiché il vettore risultante 1001 non è nullo, vi è un errore nellastringa di 11 bit e precisamente nella posizione indicata dalvettore di errore tradotto in notazione decimale (posizione 9). Ilbit sbagliato nella stringa codificata è quindi b4, che può esseredunque corretto.

Page 90: Prof. Ing. Fabio Roli Esercitazione 2 (Capitolo 3 del …...1.Spiegare come vengono interpretati gli indirizzi logici a 16 bit per recuperare l’informazione contenuta nella cache

Calcolatori Elettronici Sistema di Memoria - Prof. Fabio Roli 90

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), risultato 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 necessari.

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.

Page 91: Prof. Ing. Fabio Roli Esercitazione 2 (Capitolo 3 del …...1.Spiegare come vengono interpretati gli indirizzi logici a 16 bit per recuperare l’informazione contenuta nella cache

Calcolatori Elettronici Sistema di Memoria - Prof. Fabio Roli 91

Soluzione

1. Deve essere rispettata la condizione:

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

2. La sequenza in ingresso presenta la seguente struttura:

Quindi la parola di N bit risulta 101111101

2K ³ N + K +1

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

Page 92: Prof. Ing. Fabio Roli Esercitazione 2 (Capitolo 3 del …...1.Spiegare come vengono interpretati gli indirizzi logici a 16 bit per recuperare l’informazione contenuta nella cache

Calcolatori Elettronici Sistema di Memoria - Prof. Fabio Roli 92

Soluzione

3. Per verificare la presenza di un errore, dobbiamo ricalcolare il vettore di controllo a partire dalla sequenza ricevuta. Si ha:

c’0 = EXOR b0 b1 b3 b4 b6 b8 = 1c’1 = EXOR b0 b2 b3 b5 b6 = 1c’2 = EXOR b1 b2 b3 b7 b8 = 1c’3 = EXOR b4 b5 b6 b7 b8 = 0

N.B.: b8 si trova in posizione n = 13 = 1+4+8,quindi è controllato da c0 , c2 , c3 .

Page 93: Prof. Ing. Fabio Roli Esercitazione 2 (Capitolo 3 del …...1.Spiegare come vengono interpretati gli indirizzi logici a 16 bit per recuperare l’informazione contenuta nella cache

Calcolatori Elettronici Sistema di Memoria - Prof. Fabio Roli 93

Soluzione (cont’d)• Il passo successivo è calcolare il vettore di errore dato

dalla differenza dei vettori di controllo c e c’:

e0 = EXOR c0 c’0 = EXOR 1 1 = 0e1 = EXOR c1 c’1 = EXOR 0 1 = 1e2 = EXOR c2 c’2 = EXOR 0 1 = 1e3 = EXOR c3 c’3 = EXOR 0 0 = 0

Page 94: Prof. Ing. Fabio Roli Esercitazione 2 (Capitolo 3 del …...1.Spiegare come vengono interpretati gli indirizzi logici a 16 bit per recuperare l’informazione contenuta nella cache

Calcolatori Elettronici Sistema di Memoria - Prof. Fabio Roli 94

Soluzione

• Poiché il vettore risultante 0110 (e3e2e1e0) non è nullo, vi è un errore nella stringa di 13 bit data e precisamente nella posizione indicata dal vettore di errore tradotto in notazione decimale. Il bit sbagliato è quindi il sesto (b2), e la parola corretta è 100111101.

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