corso di laurea in ingegneria elettronicaroli/sei/modulo-calcolatori/slides/... · esercitazione di...

21
Esercitazione di Calcolatori Elettronici Prof. Gian Luca Marcialis Corso di Laurea in Ingegneria Elettronica Esercitazione 2 (Capitolo 3) Memoria Cache Memoria Disco Codice di Hamming Calcolatori Elettronici Memoria Cache - Prof. G.L.Marcialis 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 rate condizionale Memoria a disco Codice di Hamming Calcolatori Elettronici Memoria Cache - Prof. G.L.Marcialis 3 Indirizzamento della memoria cache Il Block Frame, costituito dagli m bit più significativi dell’indirizzo, individua la posizione, ovvero l’indirizzo, del blocco nella memoria primaria. L’ Offset è costituito dagli n bit meno significativi dell’indirizzo. Tale gruppo individua la posizione della parola all’interno di un dato blocco. Block frame Offset Bit di indirizzamento della primaria m bit n bit Calcolatori Elettronici Memoria Cache - Prof. G.L.Marcialis 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 2 n , ovvero per il numero di parole in ciascun blocco: il quoziente è il Block frame; il resto fornisce invece l’Offset. Block frame Offset m bit n bit Shift di n bit

Upload: phungbao

Post on 16-Feb-2019

220 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Corso di Laurea in Ingegneria Elettronicaroli/SEI/modulo-calcolatori/slides/... · Esercitazione di Calcolatori Elettronici Prof. Gian Luca Marcialis Corso di Laurea in Ingegneria

Esercitazione di Calcolatori ElettroniciProf. Gian Luca Marcialis

Corso di Laurea in Ingegneria Elettronica

Esercitazione 2 (Capitolo 3)Memoria CacheMemoria DiscoCodice di Hamming

Calcolatori Elettronici Memoria Cache - Prof. G.L.Marcialis 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 rate condizionale

• Memoria a disco• Codice di Hamming

Calcolatori Elettronici Memoria Cache - Prof. G.L.Marcialis 3

Indirizzamento della memoria cache

• Il Block Frame , costituito dagli m bit più significativi dell’indirizzo, individua la posizione, ovvero l’indirizzo, del blocco nella memoria primaria.

• L’ Offset è costituito dagli n bit meno significativi dell’indirizzo. Tale gruppo individua la posizione della parola all’interno di un dato blocco.

Block frame Offset

Bit di indirizzamento della primaria

m bit n bit

Calcolatori Elettronici Memoria Cache - Prof. G.L.Marcialis 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

m bit n bit

Shift di n bit

Page 2: Corso di Laurea in Ingegneria Elettronicaroli/SEI/modulo-calcolatori/slides/... · Esercitazione di Calcolatori Elettronici Prof. Gian Luca Marcialis Corso di Laurea in Ingegneria

Calcolatori Elettronici Memoria Cache - Prof. G.L.Marcialis 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 di “cache”, nel metodo diretto;– l’indirizzo dell’insieme di “cache”, nel metodo

associativo su insiemi.

Calcolatori Elettronici Memoria Cache - Prof. G.L.Marcialis 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

Calcolatori Elettronici Memoria Cache - Prof. G.L.Marcialis 7

Ricapitolando

BlockFrame = IntAddress

2n

Offset = ModAddress

2n

CacheIndex = ModBlockFrame

2r

TAG = IntBlockFrame

2r

Calcolatori Elettronici Memoria Cache - Prof. G.L.Marcialis 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.

01

765432

01

32

Mem. Primaria

Mem. Cache

Blocchi

Page 3: Corso di Laurea in Ingegneria Elettronicaroli/SEI/modulo-calcolatori/slides/... · Esercitazione di Calcolatori Elettronici Prof. Gian Luca Marcialis Corso di Laurea in Ingegneria

Calcolatori Elettronici Memoria Cache - Prof. G.L.Marcialis 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.

01

32

Mem. Cache

Calcolatori Elettronici Memoria Cache - Prof. G.L.Marcialis 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.

01

765432

Mem. Primaria

01

32

Mem. Cache

Calcolatori Elettronici Memoria Cache - Prof. G.L.Marcialis 11

Indirizzamento diretto:un incoveniente…

• 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, invalidando il principio di località (cache miss).

Calcolatori Elettronici Memoria Cache - Prof. G.L.Marcialis 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

01

765432

Mem. Primaria

Mem. Cache

Page 4: Corso di Laurea in Ingegneria Elettronicaroli/SEI/modulo-calcolatori/slides/... · Esercitazione di Calcolatori Elettronici Prof. Gian Luca Marcialis Corso di Laurea in Ingegneria

Calcolatori Elettronici Memoria Cache - Prof. G.L.Marcialis 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.

01

765432

Mem. Primaria

Calcolatori Elettronici Memoria Cache - Prof. G.L.Marcialis 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.

Calcolatori Elettronici Memoria Cache - Prof. G.L.Marcialis 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)

Calcolatori Elettronici Memoria Cache - Prof. G.L.Marcialis 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 5: Corso di Laurea in Ingegneria Elettronicaroli/SEI/modulo-calcolatori/slides/... · Esercitazione di Calcolatori Elettronici Prof. Gian Luca Marcialis Corso di Laurea in Ingegneria

Calcolatori Elettronici Memoria Cache - Prof. G.L.Marcialis 17

Esercizio (23/09/1999)

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

• 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:– con il metodo diretto;– con il metodo associativo su insiemi, con insiemi di 4 blocchi.

Calcolatori Elettronici Memoria Cache - Prof. G.L.Marcialis 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: – <tag 9 bit> <cache index 15 bit> <offset 2 bit>

Calcolatori Elettronici Memoria Cache - Prof. G.L.Marcialis 19

Esercizio (5/11/1998)• Si consideri un calcolatore che dispone di una memoria

cache di 256 byte. La cache usi 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?

Calcolatori Elettronici Memoria Cache - Prof. G.L.Marcialis 20

Soluzione1. <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 y0x =(x3 x2 1 1 )2 = 3,7,B,F.

y =(0 0 y1 y0)2 = 0,1,2,3.

Page 6: Corso di Laurea in Ingegneria Elettronicaroli/SEI/modulo-calcolatori/slides/... · Esercitazione di Calcolatori Elettronici Prof. Gian Luca Marcialis Corso di Laurea in Ingegneria

Calcolatori Elettronici Memoria Cache - Prof. G.L.Marcialis 21

Esercizio (29/01/2004)

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

Calcolatori Elettronici Memoria Cache - Prof. G.L.Marcialis 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.

Calcolatori Elettronici Memoria Cache - Prof. G.L.Marcialis 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>

Calcolatori Elettronici Memoria Cache - Prof. G.L.Marcialis 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 7: Corso di Laurea in Ingegneria Elettronicaroli/SEI/modulo-calcolatori/slides/... · Esercitazione di Calcolatori Elettronici Prof. Gian Luca Marcialis Corso di Laurea in Ingegneria

Calcolatori Elettronici Memoria Cache - Prof. G.L.Marcialis 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).

Calcolatori Elettronici Memoria Cache - Prof. G.L.Marcialis 26

Esercizio (27/10/2000)

• Si consideri un calcolatore che dispone di una memoria principale di 32 KB e di una memoria cache di 4 KB. E’ possibile accedere al singolo byte e la memoria è suddivisa in blocchi da64 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.

Calcolatori Elettronici Memoria Cache - Prof. G.L.Marcialis 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 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.

Calcolatori Elettronici Memoria Cache - Prof. G.L.Marcialis 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= 26 blocchi 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 8: Corso di Laurea in Ingegneria Elettronicaroli/SEI/modulo-calcolatori/slides/... · Esercitazione di Calcolatori Elettronici Prof. Gian Luca Marcialis Corso di Laurea in Ingegneria

Calcolatori Elettronici Memoria Cache - Prof. G.L.Marcialis 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).

Calcolatori Elettronici Memoria Cache - Prof. G.L.Marcialis 30

Gerarchia di memoria

• Tempo medio di accesso:

T = HCT

C+ (H

P− H

C)(T

P+ T

C) + (1− H

P)(T

D+ T

P+ T

C) =

T = TC

+ (1− HC)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/NdProb. che una parola sia in cache

Hp = Np/NdProb. che una parola sia in primaria

N.B. Le parole in cache sono contenute anche in primaria e nel disco

Calcolatori Elettronici Memoria Cache - Prof. G.L.Marcialis 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 = TC

+ (1− HC)T

P+ (1− H

P)T

D= 0.2ms

Calcolatori Elettronici Memoria Cache - Prof. G.L.Marcialis 32

Hit ratio condizionaleDiagramma 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 9: Corso di Laurea in Ingegneria Elettronicaroli/SEI/modulo-calcolatori/slides/... · Esercitazione di Calcolatori Elettronici Prof. Gian Luca Marcialis Corso di Laurea in Ingegneria

Hit ratio condizionale

Calcolatori Elettronici Memoria Cache - Prof. G.L.Marcialis 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

��|�̅ =2

4

E’ il valore dell’hit ratio del livello i condizionato alla presenza o meno della parola nel livello

«superiore» (i+1)

Calcolatori Elettronici Memoria Cache - Prof. G.L.Marcialis 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.

��|�̅ = � − �

� − �=�� −��

1 − ��

Calcolatori Elettronici Memoria Cache - Prof. G.L.Marcialis 35

Esercizio (18/02/2004)• 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.

Calcolatori Elettronici Memoria Cache - Prof. G.L.Marcialis 36

Soluzione

• Dobbiamo calcolare:

• I tempi e l’hit ratio per la cache sono tutti dati dal problema, l’unico dato mancante è Hp.

T = HCT

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 10: Corso di Laurea in Ingegneria Elettronicaroli/SEI/modulo-calcolatori/slides/... · Esercitazione di Calcolatori Elettronici Prof. Gian Luca Marcialis Corso di Laurea in Ingegneria

Calcolatori Elettronici Memoria Cache - Prof. G.L.Marcialis 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

= HC

+ (1− HC)H

P|C= 0.95+ (1− 0.95)⋅0.6= 0.98

T = HCT

C+ (H

P− H

C)(T

P+ T

C) + (1− H

P)(T

D+ T

P+ T

C) =

T = 200.017ns

Calcolatori Elettronici Memoria Cache - Prof. G.L.Marcialis 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.

Calcolatori Elettronici Memoria Cache - Prof. G.L.Marcialis 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.

Calcolatori Elettronici Memoria Cache - Prof. G.L.Marcialis 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 11: Corso di Laurea in Ingegneria Elettronicaroli/SEI/modulo-calcolatori/slides/... · Esercitazione di Calcolatori Elettronici Prof. Gian Luca Marcialis Corso di Laurea in Ingegneria

Calcolatori Elettronici Memoria Cache - Prof. G.L.Marcialis 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.

Calcolatori Elettronici Memoria Cache - Prof. G.L.Marcialis 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

Calcolatori Elettronici Memoria Cache - Prof. G.L.Marcialis 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

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 4 4 4 15

Hit X X X

Calcolatori Elettronici Memoria Cache - Prof. G.L.Marcialis 44

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 12: Corso di Laurea in Ingegneria Elettronicaroli/SEI/modulo-calcolatori/slides/... · Esercitazione di Calcolatori Elettronici Prof. Gian Luca Marcialis Corso di Laurea in Ingegneria

Calcolatori Elettronici Memoria Cache - Prof. G.L.Marcialis 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

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 9 9 4 4 4 15

11 11 11 11 11 11 11 11

Hit X X X X

Calcolatori Elettronici Memoria Cache - Prof. G.L.Marcialis 46

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

Calcolatori Elettronici Memoria Cache - Prof. G.L.Marcialis 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.

Calcolatori Elettronici Memoria Cache - Prof. G.L.Marcialis 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 13: Corso di Laurea in Ingegneria Elettronicaroli/SEI/modulo-calcolatori/slides/... · Esercitazione di Calcolatori Elettronici Prof. Gian Luca Marcialis Corso di Laurea in Ingegneria

Calcolatori Elettronici Memoria Cache - Prof. G.L.Marcialis 49

Esercizio sulla cache (04/07/2006)• E’ data una gerarchia di memorie 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 secondo il metodo di indirizzamento diretto, associativo e set-associativo a otto vie.

Calcolatori Elettronici Memoria Cache - Prof. G.L.Marcialis 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

Calcolatori Elettronici Memoria Cache - Prof. G.L.Marcialis 51

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.

Calcolatori Elettronici Memoria Cache - Prof. G.L.Marcialis 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 14: Corso di Laurea in Ingegneria Elettronicaroli/SEI/modulo-calcolatori/slides/... · Esercitazione di Calcolatori Elettronici Prof. Gian Luca Marcialis Corso di Laurea in Ingegneria

Calcolatori Elettronici Memoria Cache - Prof. G.L.Marcialis 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>

Calcolatori Elettronici Memoria Cache - Prof. G.L.Marcialis 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.

Calcolatori Elettronici Memoria Cache - Prof. G.L.Marcialis 55

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

Quindi il blocco 16 di primaria viene allocato, sostituendo ilblocco precedente, se con TAG diverso, nella linea 16 di cache.

• Metodo associativo : a meno che in una delle linee della cachenon sia presente un blocco con medesimo TAG, il blocco dovràessere allocato rimpiazzando un blocco di cache. Usandol’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.

Calcolatori Elettronici Memoria Cache - Prof. G.L.Marcialis 56

Memoria a disco

• Parametri:– Tempo di latenza– T. di posizionamento– T. di lettura

Page 15: Corso di Laurea in Ingegneria Elettronicaroli/SEI/modulo-calcolatori/slides/... · Esercitazione di Calcolatori Elettronici Prof. Gian Luca Marcialis Corso di Laurea in Ingegneria

Calcolatori Elettronici Memoria Cache - Prof. G.L.Marcialis 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 perlo spostamento della testina fra due tracce consecutive: 1ms.

• Calcolare il tempo di trasferimento di un blocco di 128 KB nei seguenticasi: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'iniziodel primo settore del blocco.

Calcolatori Elettronici Memoria Cache - Prof. G.L.Marcialis 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 µµµµs.

• Se il blocco si trova registrato di seguito su una stessa traccia e latestina si trova già posizionata sul primo settore del blocco, il tempo dilettura 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 µµµµs = 666.72 µµµµs = 0.666 ms.

Calcolatori Elettronici Memoria Cache - Prof. G.L.Marcialis 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 deiblocchi successivi al primo (in tutto 15 blocchi).

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

Calcolatori Elettronici Memoria Cache - Prof. G.L.Marcialis 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 16: Corso di Laurea in Ingegneria Elettronicaroli/SEI/modulo-calcolatori/slides/... · Esercitazione di Calcolatori Elettronici Prof. Gian Luca Marcialis Corso di Laurea in Ingegneria

Calcolatori Elettronici Memoria Cache - Prof. G.L.Marcialis 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.

Calcolatori Elettronici Memoria Cache - Prof. G.L.Marcialis 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

Calcolatori Elettronici Memoria Cache - Prof. G.L.Marcialis 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

Calcolatori Elettronici Memoria Cache - Prof. G.L.Marcialis 64

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 un file da8 KB considerando:– il caso migliore;– il caso medio.

Page 17: Corso di Laurea in Ingegneria Elettronicaroli/SEI/modulo-calcolatori/slides/... · Esercitazione di Calcolatori Elettronici Prof. Gian Luca Marcialis Corso di Laurea in Ingegneria

Calcolatori Elettronici Memoria Cache - Prof. G.L.Marcialis 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.

Calcolatori Elettronici Memoria Cache - Prof. G.L.Marcialis 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

Calcolatori Elettronici Memoria Cache - Prof. G.L.Marcialis 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 = C

i2i

i∑

Calcolatori Elettronici Memoria Cache - Prof. G.L.Marcialis 68

Codice di Hamming

c0 = b0 ⊕ b1 ⊕ b3 ⊕ b4 ⊕ b6

c1 = b0 ⊕ b2 ⊕ b3 ⊕ b5 ⊕ b6

c2 = b1 ⊕ b2 ⊕ b3 ⊕ b7

c3 = b4 ⊕ b5 ⊕ b6 ⊕ 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 = C

i2i

i∑

Es. b2n=6=21+22

Quindi b2 è controllato da c1 e c2

Page 18: Corso di Laurea in Ingegneria Elettronicaroli/SEI/modulo-calcolatori/slides/... · Esercitazione di Calcolatori Elettronici Prof. Gian Luca Marcialis Corso di Laurea in Ingegneria

Calcolatori Elettronici Memoria Cache - Prof. G.L.Marcialis 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 dicontrollo 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.

Calcolatori Elettronici Memoria Cache - Prof. G.L.Marcialis 70

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

Calcolatori Elettronici Memoria Cache - Prof. G.L.Marcialis 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 = b0 ⊕ b1 ⊕ b3 ⊕ b4 ⊕ b6 = 0c’1 = b0 ⊕ b2 ⊕ b3 ⊕ b5 ⊕ b6 = 1c’2 = b1 ⊕ b2 ⊕ b3 ⊕ b7 = 0c’3 = b4 ⊕ b5 ⊕ b6 ⊕ b7 = 1

Calcolatori Elettronici Memoria Cache - Prof. G.L.Marcialis 72

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

differenza dei vettori di controllo c e c’:

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

Page 19: Corso di Laurea in Ingegneria Elettronicaroli/SEI/modulo-calcolatori/slides/... · Esercitazione di Calcolatori Elettronici Prof. Gian Luca Marcialis Corso di Laurea in Ingegneria

Calcolatori Elettronici Memoria Cache - Prof. G.L.Marcialis 73

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

Calcolatori Elettronici Memoria Cache - Prof. G.L.Marcialis 74

Esercizio (11/01/2008)

• I trasferimenti di parole a/dalla memoria di uncalcolatore sono codificati utilizzando il codice diHamming. Si consideri la parola di 7 bit 0110101 (ilbit meno significativo è a sinistra).

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.

Calcolatori Elettronici Memoria Cache - Prof. G.L.Marcialis 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

Calcolatori Elettronici Memoria Cache - Prof. G.L.Marcialis 76

Soluzione2. 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 = b0 ⊕ b1 ⊕ b3 ⊕ b4 ⊕ b6 = 1c1 = b0 ⊕ b2 ⊕ b3 ⊕ b5 ⊕ b6 = 0c2 = b1 ⊕ b2 ⊕ b3 = 0c3 = b4 ⊕ b5 ⊕ b6 = 0

1 0 0 0

Page 20: Corso di Laurea in Ingegneria Elettronicaroli/SEI/modulo-calcolatori/slides/... · Esercitazione di Calcolatori Elettronici Prof. Gian Luca Marcialis Corso di Laurea in Ingegneria

Calcolatori Elettronici Memoria Cache - Prof. G.L.Marcialis 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 = b0 ⊕ b1 ⊕ b3 ⊕ b4 ⊕ b6 = 0 ⊕ 1 ⊕ 0 ⊕ 0 ⊕ 1 = 0c’1 = b0 ⊕ b2 ⊕ b3 ⊕ b5 ⊕ b6 = 0 ⊕ 1 ⊕ 0 ⊕ 0 ⊕ 1 = 0c’2 = b1 ⊕ b2 ⊕ b3 = 1 ⊕ 1 ⊕ 0 = 0c’3 = b4 ⊕ b5 ⊕ b6 = 0 ⊕ 0 ⊕ 1 = 1

Calcolatori Elettronici Memoria Cache - Prof. G.L.Marcialis 78

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

dei vettori di controllo c e c’:

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

• Poiché il vettore risultante 1001 non è nullo, vi è un errore nella stringadi 11 bit e precisamente nella posizione indicata dal vettore di erroretradotto in notazione decimale (posizione 9). Il bit sbagliato nella stringacodificata è quindi b4, che può essere dunque corretto.

Calcolatori Elettronici Memoria Cache - Prof. G.L.Marcialis 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.

Calcolatori Elettronici Memoria Cache - Prof. G.L.Marcialis 80

Soluzione1. 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 21: Corso di Laurea in Ingegneria Elettronicaroli/SEI/modulo-calcolatori/slides/... · Esercitazione di Calcolatori Elettronici Prof. Gian Luca Marcialis Corso di Laurea in Ingegneria

Calcolatori Elettronici Memoria Cache - Prof. G.L.Marcialis 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 = b0 ⊕ b1 ⊕ b3 ⊕ b4 ⊕ b6 ⊕ b8 = 1c’1 = b0 ⊕ b2 ⊕ b3 ⊕ b5 ⊕ b6 = 1c’2 = b1 ⊕ b2 ⊕ b3 ⊕ b7 ⊕ b8 = 1c’3 = b4 ⊕ b5 ⊕ b6 ⊕ b7 ⊕ b8 = 0

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

Calcolatori Elettronici Memoria Cache - Prof. G.L.Marcialis 82

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

differenza dei vettori di controllo c e c’:

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

Calcolatori Elettronici Memoria Cache - Prof. G.L.Marcialis 83

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

Calcolatori Elettronici Memoria Cache - Prof. G.L.Marcialis 84

Domande?

??