Esercizio sulla cache [Risolto]

Scrivi qui tutto quello che non riguarda Sabayon Linux

Moderator: Moderators

Esercizio sulla cache [Risolto]

Postby francesco.sabayon95 » Fri Nov 18, 2011 18:20

Buongiorno,
mi incuriosisce la cache :mrgreen:
Mi potete per favore risolvere questo esercizio :
Data una cache di 16 KB con linee di 128 byte e un indirizzo di 32 bit dire come deve essere suddiviso l'indirizzo e quale significato hanno le varie parti:
a) nel metodo diretto
b) nel metodo completamente associativo
c) nel metodo associativo a 4 vie

e se mi potete spiegare per favore anche il procedimento

Grazie :mrgreen:
Last edited by francesco.sabayon95 on Sat Nov 19, 2011 19:03, edited 1 time in total.
francesco.sabayon95
Growing Hen
 
Posts: 115
Joined: Thu Aug 04, 2011 14:31

Re: Esercizio sulla cache

Postby micia » Fri Nov 18, 2011 21:34

Direi che i tuoi compiti li dovresti fare da solo... :mrgreen:
User avatar
micia
Sagely Hen
 
Posts: 2710
Joined: Wed Nov 26, 2008 16:41

Re: Esercizio sulla cache

Postby francesco.sabayon95 » Sat Nov 19, 2011 19:02

:mrgreen: Comunque ero riuscito a risolverlo anche precedentemente, volevo solo avere una vostra conferma, dato che oggi avevo un compito sulla cache e sulla RAM. Purtroppo questo tipo di esercizi non c'era sul compito :D
francesco.sabayon95
Growing Hen
 
Posts: 115
Joined: Thu Aug 04, 2011 14:31

Re: Esercizio sulla cache

Postby sabayonino » Sat Nov 19, 2011 19:29

francesco.sabayon95 wrote::mrgreen: Comunque ero riuscito a risolverlo anche precedentemente, volevo solo avere una vostra conferma, dato che oggi avevo un compito sulla cache e sulla RAM. Purtroppo questo tipo di esercizi non c'era sul compito :D

:mrgreen: anche se non ci capisco un tubo posta almeno il risultato ... non ci tener sulle spine
User avatar
sabayonino
Sagely Hen
 
Posts: 1564
Joined: Sun Sep 21, 2008 1:12
Location: Italy

Re: Esercizio sulla cache [Risolto]

Postby francesco.sabayon95 » Sun Nov 20, 2011 17:51

Penso si risolvi così :mrgreen: :
a) 16KB/128byte 125 n°linee
assegnamo 7 bit alle linee dato che esprime la potenza del 2 più vicina a 125
assegnamo 7 bit anche all'offset che esprime la potenza del 2 più vicina a 128
troviamo i bit del tag con 32-(7+7)=18
b)lo stesso procedimento di prima per trovare l'offset. Il tag si trova 32-7=25 dato che in questo metodo non vengono assegnati bit alle linee
c)stesso procedimento per l'offset
stesso procedimento per i bit delle linee solo questo cambiamento : 2^7 bit/2^n vie=2^7/2^4=2^3 quindi 3 bit
si applica di nuovo la differenza per il tag
francesco.sabayon95
Growing Hen
 
Posts: 115
Joined: Thu Aug 04, 2011 14:31

Re: Esercizio sulla cache [Risolto]

Postby micia » Sun Nov 20, 2011 18:15

È che molto spesso ci sono dei furbacchioni che tendono a fare questo tipo di domande in vari forum per evitare di fare il proprio dovere :lol:
Pare che tu non sia fra questi.

a) 16 * 1024 / 128 non è uguale a 128?
Presumo che l'indirizzo fisico verrebbe interpretato come segue, nel metodo diretto, posto che si usi (come di consueto) la funzione modulo per determinare il blocco cache corrispondente:

| TAG | BC | DISPL |

con:
TAG = discriminante, per verificare che il blocco in cache sia effettivamente quello richiesto, con ampiezza 18 bit.
BC = blocco cache (ciascun blocco con ampiezza 128 byte) di ampiezza 7 bit
DISPL = offset all'interno del blocco, di ampiezza 7 bit

è possibile ricavare i vari campi mediante semplici operazioni bit a bit.

b e c) non so come hai studiato i metodi nel tuo corso, di fatto i due procedimenti sono simili, ma presumo che la domanda richiedesse di addentrarsi nella differenza di interpretazione dei vari campi in questi metodi. Il metodo diretto è diverso, sia come prestazioni, sia come interpretazione dei campi, dai metodi associativi.
User avatar
micia
Sagely Hen
 
Posts: 2710
Joined: Wed Nov 26, 2008 16:41

Re: Esercizio sulla cache [Risolto]

Postby francesco.sabayon95 » Sun Nov 20, 2011 18:43

Grazie :D l'unico errore che ho fatto è quello di approssimare a 1000 il 1024 nella divisione 16*1024/128
francesco.sabayon95
Growing Hen
 
Posts: 115
Joined: Thu Aug 04, 2011 14:31

Re: Esercizio sulla cache [Risolto]

Postby micia » Sun Nov 20, 2011 19:00

Di nulla, comunque per la b e la c io avrei risposto così:

Nel caso del metodo completamente associativo, si usa una memoria associativa per memorizzare le varie corrispondenze.
Il numero di posizioni della memoria associativa è dato da:
16 * 1024 / 128 = 128

Gli indirizzi vengono interpretati come:

| TAG | DISPL |

con:
TAG = discriminante, viene utilizzato come chiave per indirizzare la memoria associativa, di 25 bit.
DISPL = offset all'interno del blocco, di 7 bit.

Nel caso del metodo associativo a 4 vie, presumo che tu ti riferisca al metodo associativo su insiemi, con insiemi di ampiezza 4.
Il numero di insiemi è dato da:
(16 * 1024) / (128 * 4) = 32
In questo caso gli indirizzi fisici sono visti come:

| TAG | SET | DISPL |

con:
TAG = discriminante di 20 bit
SET = identificatore dell'insieme, di 5 bit
DISPL = offset all'interno del blocco, di 7 bit

la posizione esatta all'interno dell'insieme viene ricavata mediante dei confrontatori che operano in parallelo sul campo TAG.
User avatar
micia
Sagely Hen
 
Posts: 2710
Joined: Wed Nov 26, 2008 16:41

Re: Esercizio sulla cache [Risolto]

Postby francesco.sabayon95 » Sun Nov 20, 2011 19:47

Grazie :D avevo sbagliato anche il metodo associativo a n vie :oops:
francesco.sabayon95
Growing Hen
 
Posts: 115
Joined: Thu Aug 04, 2011 14:31


Return to Piazzetta

Who is online

Users browsing this forum: No registered users and 0 guests