Pages: [1]   Go Down
Print
Author Topic: Esercizi Cache  (Read 23947 times)
0 Members e 1 Utente non registrato stanno visualizzando questa discussione.
XDnl
Apprendista Forumista
**
Offline Offline

Gender: Male
Posts: 376



« on: 20-09-2010, 15:53:03 »

Salve ragazzi, avrei dei dubbi su 2 esercizi riguardanti le memorie cache:

1) Esercizio 7

"Ci sono tre memorie cache, ciascuna composta da 32 parole per la parte dati."
Il testo intende che ogni cache contiene in tutto 32 parole, non che ogni slot ha 32 parole!
"Ogni blocco di memoria e' composto da 8 parole."
La memoria è suddivisa in un certo numero di linee di cache, ed ognuna contiene 8 parole.

Abbiamo 3 cache:
1) Diretta
   Poichè la cache deve contenere 32 parole in tutto, possiamo avere al massimo 32 / 8 slot = 4 slot.
Code:
       Valida
          |
Linea     v   Tag   Dati  
        -------------------
000     |   |   |          |
        -------------------
001     |   |   |          |
        -------------------
010     |   |   |          |
        -------------------
011     |   |   |          |
        -------------------
Un indirizzo virtuale è composto dai campi
TAG, LINE, WORD, BYTE
WORD è di 3 bit (8 parole)
BYTE è di ? bit (non sappiamo quanto è grande una parola)
LINE è di 2 bit (4 linee)
TAG è di ? bit (non sappiamo da quante linee è composta la memoria centrale).

Gli indirizzi sono questi:
Code:
  0000000101
   0001000011
   0000000110
   0000110001
   0001000111
   0011010101
   0001000000
   1101100110
   1111111011
   1011011000
   1011011000
   1011011000
Come si fa a stabilire la formattazione senza fare assunzioni arbitrarie?  testate
Anche la soluzione presente nel sito sembra non avere le idee chiare a riguardo

2) Esercizio 9

Vincoli:
  • 2^32 byte di memoria principale
  • K slot di cache
  • dimensioni di blocco di 32 byte

Iniziamo con "Per uno slot di una cache a mappa diretta sono sufficienti 274 bit".
Uno slot è composto dai seguenti campi
VALID: 1 bit
TAG: Poichè ogni blocco ha 32 byte, la memoria principale è suddivisa in 2^32/2^5 = 2^27 blocchi. Quindi 27 bit
DATA: 32 byte = 256 bit
284 bit?


"Con questi vincoli ogni entry di una cache a mappa diretta con una sola linea di cache a molte vie (entry)
necessita di 284 bit"
Dobbiamo considerare una cache set associative avente 1 sola linea ed un certo numero di entry.
Cos'è una entry? Un insieme di Valid/Tag/Data? e perchè ce ne vogliono 284?
E' strano questo esercizio e la soluzione è poco dettagliata.

Qualche idea?  univ
Grazie in anticipo  
« Last Edit: 20-09-2010, 15:59:21 by XDnl » Logged
XDnl
Apprendista Forumista
**
Offline Offline

Gender: Male
Posts: 376



« Reply #1 on: 22-09-2010, 15:46:18 »

Nessuna idea?  boh
Logged
zeridos89
Apprendista Forumista
**
Offline Offline

Gender: Male
Posts: 127


Diego Sinitò


« Reply #2 on: 01-10-2010, 11:17:03 »

mi conforta vedere che non sono il solo a non capire l'esercizio 9 e la sua soluzione...

per quale motivo prima usa 27 bit di tag e poi solo 17?? :S

nel primo c'è una sola linea con 2^27 blocchi, mentre nel secondo caso ci sono 2^27 linee con un solo blocco..

quindi in entrambi i casi se devo indirizzare una precisa locazione non ho bisogno sempre di 27 bit?

il 284bit per ogni entry quadra...1bit di valid + 27bit di tag + 256bit di data

non capisco il secondo caso, molte linee con una sola entry per linea..
Logged
Pages: [1]   Go Up
Print
Jump to: