Vai al contenuto

Primario: Sky Slate Blackcurrant Watermelon Strawberry Orange Banana Apple Emerald Chocolate Marble
Secondario: Sky Slate Blackcurrant Watermelon Strawberry Orange Banana Apple Emerald Chocolate Marble
Sfondo: Blank Waves Squares Notes Sharp Wood Rockface Leather Honey Vertical Triangles
Corsi di Laurea










ROX @ Unisa - Forum degli studenti di Ingegneria utilizza i cookie. Se prosegui la navigazione accetti il loro uso.    Accetto l'uso dei cookie
-->
Foto

Cache set-associativa a 2 vie


  • Effettua l'accesso per rispondere
Questa discussione ha avuto 7 risposta/e

#1
vi

vi

    Advanced Member

  • Utente
  • StellaStellaStella
  • 170 Messaggi:

Un processore dispone di una memoria cache organizzata in 32 blocchi da 16 locazioni ed e' collegato ad una memoria centrale di 64k locazioni. Supponendo che il processore generi il seguente indirizzo

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

e che lo schema di traduzione degli indirizzi sia di tipo set associativo a 2 vie, dire in quali ipotesi il dato indirizzato dal processore si trova nella cache e, in caso affermativo, qual'e' l'indirizzo della cache (espresso in cifre decimali) corrispondente al dato richiesto.


Come risolvere questa tipologia di esercizio? Ho trovato degli appunti fatti bene qui, ma i dubbi in merito ancora non sono scomparsi.
C'è qualcuno che sappia effettivamente come fare?



#2
vi

vi

    Advanced Member

  • Utente
  • StellaStellaStella
  • 170 Messaggi:
Mi rispondo da solo, sperando sia la soluzione giusta:

$64k = 2^6 * 2^10 = 2^16$
Il rapporto tra la capacita’ della memoria centrale e quella del blocco e’ pari a:
$ R = 2^16 / 2^4 = 2^12$
e quindi la memoria centrale e’ divisa in $2^12 = 4096$ blocchi, dei quali solo $2^5/2^1$ (essendo il set a $2 = 2^1$ vie) possono essere caricati nella cache. Ci sono pertanto $2^12/2^4 = 2^8$ blocchi della memoria centrale che saranno caricati nello stesso blocco della memoria cache. Pertanto l’indirizzo generato dal processore puo’ essere cosi’ suddiviso:
gli $8$ bit piu’ significativi costituiscono l’etichetta del blocco (tag)
i successivi $4$ bit specificano l’insieme della cache che viene indirizzato (set)
i rimanenti $4$ bit specificano la parola all’interno del blocco (word)

Nel caso specifico:
tag: $10011101$
set :$0010$
word: $1101$

e quindi la parola indirizzata dal processore si trova nella cache se l’etichetta del blocco $0010$ della cache e’ pari a $10011101$.

#3
vikap

vikap

    Advanced Member

  • Utente
  • StellaStellaStella
  • 217 Messaggi:
Nel caso specifico:
tag: $10011101_2=157_10$
set :$0010_2=2_10$
word: $1101_2=13_10$

e quindi la parola indirizzata dal processore si trova nella cache se nell'insieme $2_10$ c'è il blocco avente etichetta:$157_10$
L'indirizzo sarà:$2*2^4+13=45$

#4
vi

vi

    Advanced Member

  • Utente
  • StellaStellaStella
  • 170 Messaggi:

Nel caso specifico:
tag: $10011101_2=157_10$
set :$0010_2=2_10$
word: $1101_2=13_10$

e quindi la parola indirizzata dal processore si trova nella cache se nell'insieme $2_10$ c'è il blocco avente etichetta:$157_10$
L'indirizzo sarà:$2*2^4+13=45$


Avevo saltato questa parte per pigrizia, lo ammetto!
Ad ogni modo, il procedimento effettuato è giusto?

#5
mrfree

mrfree

    Advanced Member

  • Utente
  • StellaStellaStella
  • 126 Messaggi:

e quindi la memoria centrale e’ divisa in $2^12 = 4096$ blocchi, dei quali solo (essendo il set a $2 = 2^1$ vie) possono essere caricati nella cache. Ci sono pertanto $2^12/2^4 = 2^8$ blocchi della memoria centrale che saranno caricati nello stesso blocco della memoria cache.


Ma anke se la cache e set associativa a 2 vie, non può contenere cmq tutti e 32 i blocchi. In realtà sono i set ad essere $2^5/2^1$ e quindi 16, poichè ogni set contiene 2 blocchi. Di conseguenza ci saranno $2^12/2^4 = 2^8$ blocchi della memoria centrale che saranno caricati nello stesso SET della memoria cache, e non nello stesso blocco. Poi per il resto sono d'accordo.

Ho sbagliato qualcosa??

#6
vi

vi

    Advanced Member

  • Utente
  • StellaStellaStella
  • 170 Messaggi:
Correggo...

[...] quindi la memoria centrale e’ divisa in $2^12 = 4096 $ blocchi, dei quali solo $2^5$ possono essere caricati nella cache. Ci sono pertanto $2^12/(2^5/2^1) = 2^8$ blocchi (essendo a $2 = 2^1$ vie) della memoria centrale che saranno caricati nello stesso set della memoria cache. [...]



#7
francisco87

francisco87

    Advanced Member

  • Utente
  • StellaStellaStella
  • 106 Messaggi:
Ciao vi volevo chiederti una cosa(la domanda è aperta a tutti), nell'esercizio che hai postato gentilmente sulla cache a 2vie volevo sapere come ti sei calcolato il valore della word e del set. Grazie per l'aiuto. Vi prego di rispondere entro domani in quanto ho l'esame lunedi. :beg:
Everything happens for a reason...

#8
vikap

vikap

    Advanced Member

  • Utente
  • StellaStellaStella
  • 217 Messaggi:
$N° set=(N° bloc_(cache))/(Associatività)$
per i bit della word ti basta vedere il numero di word presenti in memoria centrale




Leggono questa discussione 0 utenti

0 utenti, 0 ospiti, 0 utenti anonimi