prof. ing. fabio roli esercitazione 2 (capitolo 3 del ... · calcolatori elettronici sistema di...

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

Upload: others

Post on 17-Aug-2020

0 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Prof. Ing. Fabio Roli Esercitazione 2 (Capitolo 3 del ... · Calcolatori Elettronici Sistema di Memoria - Prof. Fabio Roli 21 Esercizio • Si consideri un calcolatore che dispone

Esercitazione 2 (Capitolo 3 del corso)

Memoria Cache

Memoria Disco

Codice di Hamming

Esercizi di Calcolatori Elettronici

Prof. Ing. Fabio Roli

Page 2: Prof. Ing. Fabio Roli Esercitazione 2 (Capitolo 3 del ... · Calcolatori Elettronici Sistema di Memoria - Prof. Fabio Roli 21 Esercizio • Si consideri un calcolatore che dispone

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 ... · Calcolatori Elettronici Sistema di Memoria - Prof. Fabio Roli 21 Esercizio • Si consideri un calcolatore che dispone

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 ... · Calcolatori Elettronici Sistema di Memoria - Prof. Fabio Roli 21 Esercizio • Si consideri un calcolatore che dispone

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 ... · Calcolatori Elettronici Sistema di Memoria - Prof. Fabio Roli 21 Esercizio • Si consideri un calcolatore che dispone

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 ... · Calcolatori Elettronici Sistema di Memoria - Prof. Fabio Roli 21 Esercizio • Si consideri un calcolatore che dispone

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 ... · Calcolatori Elettronici Sistema di Memoria - Prof. Fabio Roli 21 Esercizio • Si consideri un calcolatore che dispone

Calcolatori Elettronici Sistema di Memoria - Prof. Fabio Roli 7

Ricapitolando

BlockFrame IntAddress

2n

Offset ModAddress

2n

CacheIndex ModBlockFrame

2r

TAG IntBlockFrame

2r

Page 8: Prof. Ing. Fabio Roli Esercitazione 2 (Capitolo 3 del ... · Calcolatori Elettronici Sistema di Memoria - Prof. Fabio Roli 21 Esercizio • Si consideri un calcolatore che dispone

Calcolatori Elettronici Sistema di Memoria - Prof. Fabio Roli 8

Struttura della memoria

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

0

1

7

6

5

4

3

2

0

1

3

2

Mem. Primaria

Mem. Cache

Blocchi

Page 9: Prof. Ing. Fabio Roli Esercitazione 2 (Capitolo 3 del ... · Calcolatori Elettronici Sistema di Memoria - Prof. Fabio Roli 21 Esercizio • Si consideri un calcolatore che dispone

Calcolatori Elettronici Sistema di Memoria - Prof. Fabio Roli 9

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 indizzo

primaria pari a 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.

0

1

3

2

Mem. Cache

Page 10: Prof. Ing. Fabio Roli Esercitazione 2 (Capitolo 3 del ... · Calcolatori Elettronici Sistema di Memoria - Prof. Fabio Roli 21 Esercizio • Si consideri un calcolatore che dispone

Calcolatori Elettronici Sistema di Memoria - Prof. Fabio Roli 10

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.

0

1

7

6

5

4

3

2

Mem. Primaria

0

1

3

2

Mem. Cache

Page 11: Prof. Ing. Fabio Roli Esercitazione 2 (Capitolo 3 del ... · Calcolatori Elettronici Sistema di Memoria - Prof. Fabio Roli 21 Esercizio • Si consideri un calcolatore che dispone

Calcolatori Elettronici Sistema di Memoria - Prof. Fabio Roli 11

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 12: Prof. Ing. Fabio Roli Esercitazione 2 (Capitolo 3 del ... · Calcolatori Elettronici Sistema di Memoria - Prof. Fabio Roli 21 Esercizio • Si consideri un calcolatore che dispone

Calcolatori Elettronici Sistema di Memoria - Prof. Fabio Roli 12

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><Cache Index 1 bit><Offset 4 bit>

Insieme 1

Insieme 0

0

1

7

6

5

4

3

2

Mem. Primaria

Mem. Cache

Page 13: Prof. Ing. Fabio Roli Esercitazione 2 (Capitolo 3 del ... · Calcolatori Elettronici Sistema di Memoria - Prof. Fabio Roli 21 Esercizio • Si consideri un calcolatore che dispone

Calcolatori Elettronici Sistema di Memoria - Prof. Fabio Roli 13

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.

0

1

7

6

5

4

3

2

Mem. Primaria

Page 14: Prof. Ing. Fabio Roli Esercitazione 2 (Capitolo 3 del ... · Calcolatori Elettronici Sistema di Memoria - Prof. Fabio Roli 21 Esercizio • Si consideri un calcolatore che dispone

Calcolatori Elettronici Sistema di Memoria - Prof. Fabio Roli 14

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 15: Prof. Ing. Fabio Roli Esercitazione 2 (Capitolo 3 del ... · Calcolatori Elettronici Sistema di Memoria - Prof. Fabio Roli 21 Esercizio • Si consideri un calcolatore che dispone

Calcolatori Elettronici Sistema di Memoria - Prof. Fabio Roli 15

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 16: Prof. Ing. Fabio Roli Esercitazione 2 (Capitolo 3 del ... · Calcolatori Elettronici Sistema di Memoria - Prof. Fabio Roli 21 Esercizio • Si consideri un calcolatore che dispone

Calcolatori Elettronici Sistema di Memoria - Prof. Fabio Roli 16

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(

DDNDWord

DNWord

D

xWordIntN

)(

Page 17: Prof. Ing. Fabio Roli Esercitazione 2 (Capitolo 3 del ... · Calcolatori Elettronici Sistema di Memoria - Prof. Fabio Roli 21 Esercizio • Si consideri un calcolatore che dispone

Calcolatori Elettronici Sistema di Memoria - Prof. Fabio Roli 17

Esercizio

• 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 18: Prof. Ing. Fabio Roli Esercitazione 2 (Capitolo 3 del ... · Calcolatori Elettronici Sistema di Memoria - Prof. Fabio Roli 21 Esercizio • Si consideri un calcolatore che dispone

Calcolatori Elettronici Sistema di Memoria - Prof. Fabio Roli 18

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> <cache index 15 bit> <offset 2 bit>

Page 19: Prof. Ing. Fabio Roli Esercitazione 2 (Capitolo 3 del ... · Calcolatori Elettronici Sistema di Memoria - Prof. Fabio Roli 21 Esercizio • Si consideri un calcolatore che dispone

Calcolatori Elettronici Sistema di Memoria - Prof. Fabio Roli 19

Esercizio

• 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 20: Prof. Ing. Fabio Roli Esercitazione 2 (Capitolo 3 del ... · Calcolatori Elettronici Sistema di Memoria - Prof. Fabio Roli 21 Esercizio • Si consideri un calcolatore che dispone

Calcolatori Elettronici Sistema di Memoria - Prof. Fabio Roli 20

Soluzione

1. <TAG 10 bit> <Cache Index 4 bit> <Offset 2 bit>

2.

CC84 ==> CC 10|00 01|00 ==> insieme 1, tag CC(10)2, byte 00

A017 ==> A0 00|01 01|11 ==> insieme 5, tag A0(00)2, byte 11

FF1A ==> FF 00|01 10|10 ==> insieme 6, tag FF(00)2, byte 10

012B ==> 01 00|10 10|11 ==> insieme 10, tag 01(00)2, byte 11

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.

Page 21: Prof. Ing. Fabio Roli Esercitazione 2 (Capitolo 3 del ... · Calcolatori Elettronici Sistema di Memoria - Prof. Fabio Roli 21 Esercizio • Si consideri un calcolatore che dispone

Calcolatori Elettronici Sistema di Memoria - Prof. Fabio Roli 21

Esercizio

• 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 22: Prof. Ing. Fabio Roli Esercitazione 2 (Capitolo 3 del ... · Calcolatori Elettronici Sistema di Memoria - Prof. Fabio Roli 21 Esercizio • Si consideri un calcolatore che dispone

Calcolatori Elettronici Sistema di Memoria - Prof. Fabio Roli 22

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 23: Prof. Ing. Fabio Roli Esercitazione 2 (Capitolo 3 del ... · Calcolatori Elettronici Sistema di Memoria - Prof. Fabio Roli 21 Esercizio • Si consideri un calcolatore che dispone

Calcolatori Elettronici Sistema di Memoria - Prof. Fabio Roli 23

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 24: Prof. Ing. Fabio Roli Esercitazione 2 (Capitolo 3 del ... · Calcolatori Elettronici Sistema di Memoria - Prof. Fabio Roli 21 Esercizio • Si consideri un calcolatore che dispone

Calcolatori Elettronici Sistema di Memoria - Prof. Fabio Roli 24

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)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. Se tali parole venissero richieste sequenzialmente, quanti

sarebbero gli hit di cache (ipotizzando la cache inizialmente

vuota)?

Page 25: Prof. Ing. Fabio Roli Esercitazione 2 (Capitolo 3 del ... · Calcolatori Elettronici Sistema di Memoria - Prof. Fabio Roli 21 Esercizio • Si consideri un calcolatore che dispone

Calcolatori Elettronici Sistema di Memoria - Prof. Fabio Roli 25

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 26: Prof. Ing. Fabio Roli Esercitazione 2 (Capitolo 3 del ... · Calcolatori Elettronici Sistema di Memoria - Prof. Fabio Roli 21 Esercizio • Si consideri un calcolatore che dispone

Calcolatori Elettronici Sistema di Memoria - Prof. Fabio Roli 26

Esercizio

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

Page 27: Prof. Ing. Fabio Roli Esercitazione 2 (Capitolo 3 del ... · Calcolatori Elettronici Sistema di Memoria - Prof. Fabio Roli 21 Esercizio • Si consideri un calcolatore che dispone

Calcolatori Elettronici Sistema di Memoria - Prof. Fabio Roli 27

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 indirizzo

0, 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 28: Prof. Ing. Fabio Roli Esercitazione 2 (Capitolo 3 del ... · Calcolatori Elettronici Sistema di Memoria - Prof. Fabio Roli 21 Esercizio • Si consideri un calcolatore che dispone

Calcolatori Elettronici Sistema di Memoria - Prof. Fabio Roli 28

Soluzione

• Metodo diretto:

– <TAG 3 bit><Cache Index 6 bit><Offset 6 bit>

– Poiché le parole sono in sequenza, il sistema richiede

l’accesso ai primi 212

/ 26= 2

6blocchi di memoria primaria.

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

Page 29: Prof. Ing. Fabio Roli Esercitazione 2 (Capitolo 3 del ... · Calcolatori Elettronici Sistema di Memoria - Prof. Fabio Roli 21 Esercizio • Si consideri un calcolatore che dispone

Calcolatori Elettronici Sistema di Memoria - Prof. Fabio Roli 29

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 dei dati 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 30: Prof. Ing. Fabio Roli Esercitazione 2 (Capitolo 3 del ... · Calcolatori Elettronici Sistema di Memoria - Prof. Fabio Roli 21 Esercizio • Si consideri un calcolatore che dispone

Calcolatori Elettronici Sistema di Memoria - Prof. Fabio Roli 30

Gerarchia di memoria

• Tempo medio di accesso:

T HCT

C (H

P H

C)(T

PT

C) (1 H

P)(T

DT

PT

C)

T TC (1 H

C)T

P (1 H

P)T

D

Parole in Cache (Nc)

Parole in Primaria (Np)

Parole nel Disco (Nd)

Gli hit ratio possono essere interprati

come probabilità.

Hc = Nc/Nd

Prob. che una parola sia in cache

Hp = Np/Nd

Prob. che una parola sia in primaria

N.B. Le parole in cache sono contenute

anche in primaria e nel disco

Page 31: Prof. Ing. Fabio Roli Esercitazione 2 (Capitolo 3 del ... · Calcolatori Elettronici Sistema di Memoria - Prof. Fabio Roli 21 Esercizio • Si consideri un calcolatore che dispone

Calcolatori Elettronici Sistema di Memoria - Prof. Fabio Roli 31

Esercizio

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

C (1 H

C)T

P (1 H

P)T

D 0.2ms

Page 32: Prof. Ing. Fabio Roli Esercitazione 2 (Capitolo 3 del ... · Calcolatori Elettronici Sistema di Memoria - Prof. Fabio Roli 21 Esercizio • Si consideri un calcolatore che dispone

Calcolatori Elettronici Sistema di Memoria - Prof. Fabio Roli 32

Hit ratio condizionale

Diagramma di Venn

• Qual è la relazione tra gli hit ratio condizionali e

gli hit ratio?

Disco PrimariaCache

0 Hc Hp Hd 1

c: la parola è in cache

p: la parola è in primaria

d: la parola è nel disco

Page 33: Prof. Ing. Fabio Roli Esercitazione 2 (Capitolo 3 del ... · Calcolatori Elettronici Sistema di Memoria - Prof. Fabio Roli 21 Esercizio • Si consideri un calcolatore che dispone

Hit ratio condizionale

Calcolatori Elettronici Sistema di Memoria - Prof. Fabio Roli 33

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

𝐻𝑐 =6

10

𝐻𝑝 =8

10

E’ il valore dell’hit ratio

del livello i condizionato

alla presenza o meno

della parola nel livello

«superiore» (i+1)

Page 34: Prof. Ing. Fabio Roli Esercitazione 2 (Capitolo 3 del ... · Calcolatori Elettronici Sistema di Memoria - Prof. Fabio Roli 21 Esercizio • Si consideri un calcolatore che dispone

Calcolatori Elettronici Sistema di Memoria - Prof. Fabio Roli 34

Hit ratio condizionale

• La frequenza delle volte che una parola si è

trovata in memoria primaria dato che non si è

trovata in cache si calcola come rapporto tra

frequenza delle volte che una parola è stata

trovata in primaria ma non in cache, e la

frequenza delle volte che non è stata trovata in

cache.

Page 35: Prof. Ing. Fabio Roli Esercitazione 2 (Capitolo 3 del ... · Calcolatori Elettronici Sistema di Memoria - Prof. Fabio Roli 21 Esercizio • Si consideri un calcolatore che dispone

Calcolatori Elettronici Sistema di Memoria - Prof. Fabio Roli 35

Esercizio

• Un calcolatore ha un sistema di memoria virtuale a tre

livelli, costituita da: cache, memoria primaria e disco.

– La lettura di una parola che si trova già memorizzata nella

cache richiede 15 ns.

– La lettura di una parola dalla memoria primaria e il suo

trasferimento in cache richiedono complessivamente 40 ns.

– La lettura di una parola dal disco e il suo trasferimento in

memoria primaria richiedono complessivamente 10 ms.

– La probabilità che una parola si trovi già in cache è pari a

0.95.

– La probabilità che una parola si trovi in memoria primaria

quando non è presente nella cache è pari a 0.6 (hit ratio

condizionale).

• Calcolare il tempo medio di accesso al sistema di

memoria.

Page 36: Prof. Ing. Fabio Roli Esercitazione 2 (Capitolo 3 del ... · Calcolatori Elettronici Sistema di Memoria - Prof. Fabio Roli 21 Esercizio • Si consideri un calcolatore che dispone

Calcolatori Elettronici Sistema di Memoria - Prof. Fabio Roli 36

Soluzione

• Dobbiamo calcolare:

• I tempi e l’hit ratio per la cache sono tutti dati

dal problema, l’unico dato mancante è Hp.

T H

CT

C (H

P H

C)(T

P T

C) (1 H

P)(T

D T

P T

C)

TC 15ns

TP 40ns

TD 10ms

HC 0.95

Page 37: Prof. Ing. Fabio Roli Esercitazione 2 (Capitolo 3 del ... · Calcolatori Elettronici Sistema di Memoria - Prof. Fabio Roli 21 Esercizio • Si consideri un calcolatore che dispone

Calcolatori Elettronici Sistema di Memoria - Prof. Fabio Roli 37

Soluzione

• Basta calcolare Hp a partire dall’hit rate

condizionale, invertendo la formula:

• Infine, possiamo calcolare:

HP|C

H

P H

C

1 HC

HP H

C (1 H

C)H

P|C 0.95 (1 0.95) 0.6 0.98

T HCT

C (H

P H

C)(T

PT

C) (1 H

P)(T

DT

PT

C)

T 200.017ns

Page 38: Prof. Ing. Fabio Roli Esercitazione 2 (Capitolo 3 del ... · Calcolatori Elettronici Sistema di Memoria - Prof. Fabio Roli 21 Esercizio • Si consideri un calcolatore che dispone

Calcolatori Elettronici Sistema di Memoria - Prof. Fabio Roli 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 ma 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.

Page 39: Prof. Ing. Fabio Roli Esercitazione 2 (Capitolo 3 del ... · Calcolatori Elettronici Sistema di Memoria - Prof. Fabio Roli 21 Esercizio • Si consideri un calcolatore che dispone

Calcolatori Elettronici Sistema di Memoria - Prof. Fabio Roli 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.

Page 40: Prof. Ing. Fabio Roli Esercitazione 2 (Capitolo 3 del ... · Calcolatori Elettronici Sistema di Memoria - Prof. Fabio Roli 21 Esercizio • Si consideri un calcolatore che dispone

Calcolatori Elettronici Sistema di Memoria - Prof. Fabio Roli 40

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 41: Prof. Ing. Fabio Roli Esercitazione 2 (Capitolo 3 del ... · Calcolatori Elettronici Sistema di Memoria - Prof. Fabio Roli 21 Esercizio • Si consideri un calcolatore che dispone

Calcolatori Elettronici Sistema di Memoria - Prof. Fabio Roli 41

Esercizio sulla cache (LRU, FIFO)

• Si consideri una memoria primaria costituita da 128

parole e una memoria cache costituita da 16 parole. Il

metodo di indirizzamento della cache sia quello

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

1. Si indichi il contenuto della cache, ovvero quali byte

occupano i relativi blocchi di cache, dopo l’ultima

chiamata, nel caso si adoperino algoritmi di

rimpiazzamento FIFO e LRU.

Page 42: Prof. Ing. Fabio Roli Esercitazione 2 (Capitolo 3 del ... · Calcolatori Elettronici Sistema di Memoria - Prof. Fabio Roli 21 Esercizio • Si consideri un calcolatore che dispone

Calcolatori Elettronici Sistema di Memoria - Prof. Fabio Roli 42

Soluzione

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

• 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 43: Prof. Ing. Fabio Roli Esercitazione 2 (Capitolo 3 del ... · Calcolatori Elettronici Sistema di Memoria - Prof. Fabio Roli 21 Esercizio • Si consideri un calcolatore che dispone

Calcolatori Elettronici Sistema di Memoria - Prof. Fabio Roli 43

Soluzione

• Strategia FIFO

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

Set

0

6 6 6 6 6 6 6 6 6 6

0 0 0 0 0 0 0 0 0

Set

1

13 13 13 13 13 9 9 9 9 11 11

11 11 11 11 1 1 1 15

Hit X X X

Page 44: Prof. Ing. Fabio Roli Esercitazione 2 (Capitolo 3 del ... · Calcolatori Elettronici Sistema di Memoria - Prof. Fabio Roli 21 Esercizio • Si consideri un calcolatore che dispone

Calcolatori Elettronici Sistema di Memoria - Prof. Fabio Roli 44

Soluzione

• Strategia FIFO, stato finale della cache

• Hit rate = 3/11

B.F. Words

Set

0

6 24, 25, 26, 27

0 0, 1, 2, 3

Set

1

11 44,45,46,47

15 60,61,62,63

Page 45: Prof. Ing. Fabio Roli Esercitazione 2 (Capitolo 3 del ... · Calcolatori Elettronici Sistema di Memoria - Prof. Fabio Roli 21 Esercizio • Si consideri un calcolatore che dispone

Calcolatori Elettronici Sistema di Memoria - Prof. Fabio Roli 45

Soluzione

• Strategia LRU

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

Set

0

6 6 6 6 6 6 6 6 6 6

0 0 0 0 0 0 0 0 0

Set

1

13 13 13 13 9 9 1 1 1 15

11 11 11 11 11 11 11 11

Hit X X X X

Page 46: Prof. Ing. Fabio Roli Esercitazione 2 (Capitolo 3 del ... · Calcolatori Elettronici Sistema di Memoria - Prof. Fabio Roli 21 Esercizio • Si consideri un calcolatore che dispone

Calcolatori Elettronici Sistema di Memoria - Prof. Fabio Roli 46

Soluzione

• Strategia LRU, stato finale della cache

• Hit rate = 4/11

B.F. Words

Set

0

6 24, 25, 26, 27

0 0, 1, 2, 3

Set

1

15 60,61,62,63

11 44,45,46,47

Page 47: Prof. Ing. Fabio Roli Esercitazione 2 (Capitolo 3 del ... · Calcolatori Elettronici Sistema di Memoria - Prof. Fabio Roli 21 Esercizio • Si consideri un calcolatore che dispone

Calcolatori Elettronici Sistema di Memoria - Prof. Fabio Roli 47

Esercizio sulla cache (cont’d)

2. 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.9, Hp = 0.75, Hd = 0.99. Il processo 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 48: Prof. Ing. Fabio Roli Esercitazione 2 (Capitolo 3 del ... · Calcolatori Elettronici Sistema di Memoria - Prof. Fabio Roli 21 Esercizio • Si consideri un calcolatore che dispone

Calcolatori Elettronici Sistema di Memoria - Prof. Fabio Roli 48

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 49: Prof. Ing. Fabio Roli Esercitazione 2 (Capitolo 3 del ... · Calcolatori Elettronici Sistema di Memoria - Prof. Fabio Roli 21 Esercizio • Si consideri un calcolatore che dispone

Calcolatori Elettronici Sistema di Memoria - Prof. Fabio Roli 49

Esercizio sulla cache

• E’ data una gerarchia di memorie cache-primaria. La memoria

primaria è di 512 KB mentre la cache è di

64 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 secondo il metodo di indirizzamento diretto,

associativo e set-associativo a otto vie.

Page 50: Prof. Ing. Fabio Roli Esercitazione 2 (Capitolo 3 del ... · Calcolatori Elettronici Sistema di Memoria - Prof. Fabio Roli 21 Esercizio • Si consideri un calcolatore che dispone

Calcolatori Elettronici Sistema di Memoria - Prof. Fabio Roli 50

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(

DDNDWord

DNWord

Page 51: Prof. Ing. Fabio Roli Esercitazione 2 (Capitolo 3 del ... · Calcolatori Elettronici Sistema di Memoria - Prof. Fabio Roli 21 Esercizio • Si consideri un calcolatore che dispone

Calcolatori Elettronici Sistema di Memoria - Prof. Fabio Roli 51

Soluzione alla domanda 2

• Memoria primaria da 512 KB, indirizzabile al

singolo byte

– 512 K = 29 x 2

10 = 2

19

– 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 52: Prof. Ing. Fabio Roli Esercitazione 2 (Capitolo 3 del ... · Calcolatori Elettronici Sistema di Memoria - Prof. Fabio Roli 21 Esercizio • Si consideri un calcolatore che dispone

Calcolatori Elettronici Sistema di Memoria - Prof. Fabio Roli 52

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 53: Prof. Ing. Fabio Roli Esercitazione 2 (Capitolo 3 del ... · Calcolatori Elettronici Sistema di Memoria - Prof. Fabio Roli 21 Esercizio • Si consideri un calcolatore che dispone

Calcolatori Elettronici Sistema di Memoria - Prof. Fabio Roli 53

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 54: Prof. Ing. Fabio Roli Esercitazione 2 (Capitolo 3 del ... · Calcolatori Elettronici Sistema di Memoria - Prof. Fabio Roli 21 Esercizio • Si consideri un calcolatore che dispone

Calcolatori Elettronici Sistema di Memoria - Prof. Fabio Roli 54

Esercizio 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 55: Prof. Ing. Fabio Roli Esercitazione 2 (Capitolo 3 del ... · Calcolatori Elettronici Sistema di Memoria - Prof. Fabio Roli 21 Esercizio • Si consideri un calcolatore che dispone

Calcolatori Elettronici Sistema di Memoria - Prof. Fabio Roli 55

Soluzione alla domanda 3

• Metodo diretto: C.I.=mod(16/211

)=16.

Quindi il blocco 16 di primaria viene allocato, sostituendo

il blocco precedente, se con TAG diverso, nella linea 16 di

cache.

• Metodo associativo: a meno che in una delle linee della

cache non sia presente un blocco con medesimo TAG, il

blocco dovrà essere allocato rimpiazzando un blocco di

cache. Usando l’algoritmo di rimpiazzamento FIFO, il

blocco da rimpiazzare è quello che era stato allocato per

primo 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 56: Prof. Ing. Fabio Roli Esercitazione 2 (Capitolo 3 del ... · Calcolatori Elettronici Sistema di Memoria - Prof. Fabio Roli 21 Esercizio • Si consideri un calcolatore che dispone

Calcolatori Elettronici Sistema di Memoria - Prof. Fabio Roli 56

Memoria a disco

• Parametri:

– Tempo di latenza

– T. di posizionamento

– T. di lettura

Page 57: Prof. Ing. Fabio Roli Esercitazione 2 (Capitolo 3 del ... · Calcolatori Elettronici Sistema di Memoria - Prof. Fabio Roli 21 Esercizio • Si consideri un calcolatore che dispone

Calcolatori Elettronici Sistema di Memoria - Prof. Fabio Roli 57

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 8

KB, tempo per lo spostamento della testina fra due tracce

consecutive: 1ms.

• Calcolare il tempo di trasferimento di un blocco di 128 KB nei

seguenti 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 posizionata

all'inizio del primo settore del blocco.

Page 58: Prof. Ing. Fabio Roli Esercitazione 2 (Capitolo 3 del ... · Calcolatori Elettronici Sistema di Memoria - Prof. Fabio Roli 21 Esercizio • Si consideri un calcolatore che dispone

Calcolatori Elettronici Sistema di Memoria - Prof. Fabio Roli 58

Soluzione alla domanda 1

• TROT = 60 / 7200 = 0.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).

Tlett = TROT / 200 = 41.67 microsec.

• Se il blocco si trova registrato di seguito su una stessa traccia e

la testina si trova già posizionata sul primo settore del blocco, 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).

• Tempo per la lettura di un blocco di 128 KB

= 16 * 41.67 microsec = 666.72 microsec = 0.666 ms.

Page 59: Prof. Ing. Fabio Roli Esercitazione 2 (Capitolo 3 del ... · Calcolatori Elettronici Sistema di Memoria - Prof. Fabio Roli 21 Esercizio • Si consideri un calcolatore che dispone

Calcolatori Elettronici Sistema di Memoria - Prof. Fabio Roli 59

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 lettura

dei blocchi successivi al primo (in tutto 15 blocchi).

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

Page 60: Prof. Ing. Fabio Roli Esercitazione 2 (Capitolo 3 del ... · Calcolatori Elettronici Sistema di Memoria - Prof. Fabio Roli 21 Esercizio • Si consideri un calcolatore che dispone

Calcolatori Elettronici Sistema di Memoria - Prof. Fabio Roli 60

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 61: Prof. Ing. Fabio Roli Esercitazione 2 (Capitolo 3 del ... · Calcolatori Elettronici Sistema di Memoria - Prof. Fabio Roli 21 Esercizio • Si consideri un calcolatore che dispone

Calcolatori Elettronici Sistema di Memoria - Prof. Fabio Roli 61

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 62: Prof. Ing. Fabio Roli Esercitazione 2 (Capitolo 3 del ... · Calcolatori Elettronici Sistema di Memoria - Prof. Fabio Roli 21 Esercizio • Si consideri un calcolatore che dispone

Calcolatori Elettronici Sistema di Memoria - Prof. Fabio Roli 62

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 63: Prof. Ing. Fabio Roli Esercitazione 2 (Capitolo 3 del ... · Calcolatori Elettronici Sistema di Memoria - Prof. Fabio Roli 21 Esercizio • Si consideri un calcolatore che dispone

Calcolatori Elettronici Sistema di Memoria - Prof. Fabio Roli 63

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 64: Prof. Ing. Fabio Roli Esercitazione 2 (Capitolo 3 del ... · Calcolatori Elettronici Sistema di Memoria - Prof. Fabio Roli 21 Esercizio • Si consideri un calcolatore che dispone

Calcolatori Elettronici Sistema di Memoria - Prof. Fabio Roli 64

Esercizio (12/07/2002)

• Si consideri un disco rigido con le seguenti

caratteristiche:

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

file da 8 KB considerando:

– il caso migliore;

– il caso medio.

Page 65: Prof. Ing. Fabio Roli Esercitazione 2 (Capitolo 3 del ... · Calcolatori Elettronici Sistema di Memoria - Prof. Fabio Roli 21 Esercizio • Si consideri un calcolatore che dispone

Calcolatori Elettronici Sistema di Memoria - Prof. Fabio Roli 65

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 66: Prof. Ing. Fabio Roli Esercitazione 2 (Capitolo 3 del ... · Calcolatori Elettronici Sistema di Memoria - Prof. Fabio Roli 21 Esercizio • Si consideri un calcolatore che dispone

Calcolatori Elettronici Sistema di Memoria - Prof. Fabio Roli 66

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 67: Prof. Ing. Fabio Roli Esercitazione 2 (Capitolo 3 del ... · Calcolatori Elettronici Sistema di Memoria - Prof. Fabio Roli 21 Esercizio • Si consideri un calcolatore che dispone

Calcolatori Elettronici Sistema di Memoria - Prof. Fabio Roli 67

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 Ci2i

i

Page 68: Prof. Ing. Fabio Roli Esercitazione 2 (Capitolo 3 del ... · Calcolatori Elettronici Sistema di Memoria - Prof. Fabio Roli 21 Esercizio • Si consideri un calcolatore che dispone

Calcolatori Elettronici Sistema di Memoria - Prof. Fabio Roli 68

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 Ci2i

i

Es. b2

n=6=21+2

2

Quindi b2

è controllato da c1

e c2

Page 69: Prof. Ing. Fabio Roli Esercitazione 2 (Capitolo 3 del ... · Calcolatori Elettronici Sistema di Memoria - Prof. Fabio Roli 21 Esercizio • Si consideri un calcolatore che dispone

Calcolatori Elettronici Sistema di Memoria - Prof. Fabio Roli 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.

Page 70: Prof. Ing. Fabio Roli Esercitazione 2 (Capitolo 3 del ... · Calcolatori Elettronici Sistema di Memoria - Prof. Fabio Roli 21 Esercizio • Si consideri un calcolatore che dispone

Calcolatori Elettronici Sistema di Memoria - Prof. Fabio Roli 70

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 71: Prof. Ing. Fabio Roli Esercitazione 2 (Capitolo 3 del ... · Calcolatori Elettronici Sistema di Memoria - Prof. Fabio Roli 21 Esercizio • Si consideri un calcolatore che dispone

Calcolatori Elettronici Sistema di Memoria - Prof. Fabio Roli 71

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

) = 0

c’1

= EXOR (b0

b2

b3

b5

b6

) = 1

c’2

= EXOR (b1

b2

b3

b7

) = 0

c’3

= EXOR (b4

b5

b6

b7

) = 1

Page 72: Prof. Ing. Fabio Roli Esercitazione 2 (Capitolo 3 del ... · Calcolatori Elettronici Sistema di Memoria - Prof. Fabio Roli 21 Esercizio • Si consideri un calcolatore che dispone

Calcolatori Elettronici Sistema di Memoria - Prof. Fabio Roli 72

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

= 0

e1

= c1

EXOR c’1

= 1

e2

= c2

EXOR c’2

= 0

e3

= c3

EXOR c’3

= 1

Page 73: Prof. Ing. Fabio Roli Esercitazione 2 (Capitolo 3 del ... · Calcolatori Elettronici Sistema di Memoria - Prof. Fabio Roli 21 Esercizio • Si consideri un calcolatore che dispone

Calcolatori Elettronici Sistema di Memoria - Prof. Fabio Roli 73

Soluzione

• Poiché il vettore risultante 1010 (e3e

2e

1e

0) 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 74: Prof. Ing. Fabio Roli Esercitazione 2 (Capitolo 3 del ... · Calcolatori Elettronici Sistema di Memoria - Prof. Fabio Roli 21 Esercizio • Si consideri un calcolatore che dispone

Calcolatori Elettronici Sistema di Memoria - Prof. Fabio Roli 74

Esercizio (11/01/2008)

• I trasferimenti di parole a/dalla memoria di un

calcolatore sono codificati utilizzando il codice

di Hamming. Si consideri la parola di 7 bit

0110101 (il bit meno significativo è a

sinistra).

1. Calcolare il minimo numero di bit di controllo

necessari 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 viene

rivelato e corretto per mezzo della codifica di

Hamming.

Page 75: Prof. Ing. Fabio Roli Esercitazione 2 (Capitolo 3 del ... · Calcolatori Elettronici Sistema di Memoria - Prof. Fabio Roli 21 Esercizio • Si consideri un calcolatore che dispone

Calcolatori Elettronici Sistema di Memoria - Prof. Fabio Roli 75

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 76: Prof. Ing. Fabio Roli Esercitazione 2 (Capitolo 3 del ... · Calcolatori Elettronici Sistema di Memoria - Prof. Fabio Roli 21 Esercizio • Si consideri un calcolatore che dispone

Calcolatori Elettronici Sistema di Memoria - Prof. Fabio Roli 76

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 77: Prof. Ing. Fabio Roli Esercitazione 2 (Capitolo 3 del ... · Calcolatori Elettronici Sistema di Memoria - Prof. Fabio Roli 21 Esercizio • Si consideri un calcolatore che dispone

Calcolatori Elettronici Sistema di Memoria - Prof. Fabio Roli 77

Soluzione

3. Nell’ipotesi di un errore sul quinto bit (b4) della stringa

iniziale, la stringa ricevuta risulta: 10001100001.

Per rivelare questo errore, bisogna ricalcolare i bit di

controllo:

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 78: Prof. Ing. Fabio Roli Esercitazione 2 (Capitolo 3 del ... · Calcolatori Elettronici Sistema di Memoria - Prof. Fabio Roli 21 Esercizio • Si consideri un calcolatore che dispone

Calcolatori Elettronici Sistema di Memoria - Prof. Fabio Roli 78

Soluzione

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

differenza dei vettori di controllo c e c’:

e0

= exor c0c’

0= exor 1 0 = 1

e1

= exor c1c’

1= exor 0 0 = 0

e2

= exor c2c’

2= exor 0 0 = 0

e3

= exor c3c’

3= exor 0 1 = 1

• Poiché il vettore risultante 1001 non è nullo, 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.

Page 79: Prof. Ing. Fabio Roli Esercitazione 2 (Capitolo 3 del ... · Calcolatori Elettronici Sistema di Memoria - Prof. Fabio Roli 21 Esercizio • Si consideri un calcolatore che dispone

Calcolatori Elettronici Sistema di Memoria - Prof. Fabio Roli 79

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 80: Prof. Ing. Fabio Roli Esercitazione 2 (Capitolo 3 del ... · Calcolatori Elettronici Sistema di Memoria - Prof. Fabio Roli 21 Esercizio • Si consideri un calcolatore che dispone

Calcolatori Elettronici Sistema di Memoria - Prof. Fabio Roli 80

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 81: Prof. Ing. Fabio Roli Esercitazione 2 (Capitolo 3 del ... · Calcolatori Elettronici Sistema di Memoria - Prof. Fabio Roli 21 Esercizio • Si consideri un calcolatore che dispone

Calcolatori Elettronici Sistema di Memoria - Prof. Fabio Roli 81

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

= 1

c’1

= EXOR b0

b2

b3

b5

b6

= 1

c’2

= EXOR b1

b2

b3

b7

b8

= 1

c’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 82: Prof. Ing. Fabio Roli Esercitazione 2 (Capitolo 3 del ... · Calcolatori Elettronici Sistema di Memoria - Prof. Fabio Roli 21 Esercizio • Si consideri un calcolatore che dispone

Calcolatori Elettronici Sistema di Memoria - Prof. Fabio Roli 82

Soluzione (cont’d)

• Il passo successivo è calcolare il vettore di errore dato

dalla differenza dei vettori di controllo c e c’:

e0

= EXOR c0c’

0= EXOR 1 1 = 0

e1

= EXOR c1c’

1= EXOR 0 1 = 1

e2

= EXOR c2c’

2= EXOR 0 1 = 1

e3

= EXOR c3c’

3= EXOR 0 0 = 0

Page 83: Prof. Ing. Fabio Roli Esercitazione 2 (Capitolo 3 del ... · Calcolatori Elettronici Sistema di Memoria - Prof. Fabio Roli 21 Esercizio • Si consideri un calcolatore che dispone

Calcolatori Elettronici Sistema di Memoria - Prof. Fabio Roli 83

Soluzione

• Poiché il vettore risultante 0110 (e3e

2e

1e

0) 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