 |
Ariok |
.arcimaestro.

Registered: Oct 2003
Posts: 394 (0.05 al dì)
Location: milano
Corso: informatica
Anno: Finita....la triennale :D
Time Online: 2 Days, 4:43:21 [...]
Status: Offline
Edit | Report | IP: Logged |
ESERCIZIO CACHE
Qualcuno di voi sta preparando gli esercizi per il 3 maggio? posto qui una mia soluzione .. ho un paio di dubbi ..
DATI:_________________________________________
Calcolatore con indirizzamento di memoria a 1GB
Ampiezza BUS dati 32bit
RICHIESTE:_____________________________________
-Progettare cache a Mappatura diretta con capacita C=256 kB con linee di 16 parole
-Indicare in che posizione viene scritta la parola 0x808080
DUBBI:_________________________________________
Non capisco,in questo esercizio, a cosa servono i dati “indirizzamento a 1GB” e bus dati a 32 bit
Io svolgerei cosi’ .. sbaglierei?
RISOLUZIONE:___________________________________
-Ogni linea e’ “composta” da 16 parole da 4 byte quindi per 256 kB
N° Linee =256/(16*4) =4 linee
-Per rappresentare 4 indici differenti sono necessari 2 bit
-Per rappresentare l’offset interno alla linea e far riferimento a una delle 16 parole sono necessari log2(16)=4 bit
-Il Tag e’ composto da 32-(4+2+2)=24 bit ( 4=bit per offset dati 2= bit indici e 2 =primi due bit pari a zero)
-Disegnerei lo schema .. facendo riferimento a quanto calcolato sopra…
La parola 0x 80 80 80 puo’ essere vista come 1000 0000 1000 0000 1000 0000
E qui il mio secondo dubbio. In questo caso non ho una parola su 32 bit… posso Emularla settando i restanti MSB a zero?
Comunque continuando su questa riga.. prenderei gli ultimi 8 bit e lavorerei cosi’:
10 00 00 00
-Gli ultimi due sono settati a zero (offset)*
-I quattro zeri centrali sono gli offset per definire in che cella risiede il dato nella cache (offset dati).In questo caso, il blocco zero ( o primo blocco) ,della linea definita qui sotto
-Il 7° e l’8° definiscono la linea… in questo caso ‘10’ quindi la terza
La parola 0x80 80 80 andrebbe nella terza linea… al primo blocco.
-Quello che chiedo e’ dunque:
-Come utilizzo i dati ?
-Ho notato che in altri esercizi pone il bus dati a dimensioni differenti da 32.. in che modo questa caratteristica influisce sull’esercizio?
-Posso trattare la parola esadecimale espressa su 24 bit ,come una parola a 32 ? (*oltretutto mi chiedo, nel caso in cui la parola esadecimale termini per esempio con un ‘5’ ,quindi 0101, dovrei forzare gli ultimi due bit a zero?)
HELP!!!!
__________________
My deviant art Page(maya & 3dstudio)
Vecchio Robot in Xsi
Altro Robot.. in costruzione
MSN yariok@msn.com
|