.dsy:it.
Show 150 posts per page

.dsy:it. (http://www.dsy.it/forum/)
- Architettura degli elaboratori e delle reti (http://www.dsy.it/forum/forumdisplay.php?forumid=210)
-- cache (http://www.dsy.it/forum/showthread.php?threadid=39818)


Posted by wiseupdoc on 21-01-2010 16:10:

cache

ho un problema nel esercizio della cache...
fino a quando mi si chiede di dimensionare o disegnare la cache non ho problemi, i problemi nascono quando si chiede di:
Mostrare dove viene memorizzato, nella cache, il byte di memoria situato all'indirizzo A: 2^24+2^18+2^12+2^8+15....
aiutatemi per favore ve ne sarei molto grato...non so proprio che fare!!!!
grazie


Posted by wake on 24-01-2010 10:43:

devi semplicemente trasformare l'indirizzo in binario. Per esempio alla posizione 2^24 corrisponderà un 1 poi dalla 2^23 fino alla 2^17 metterai degli 0 e così via. Dovrebbe venirti:
1000001000001000100001111.
Anche il 15 dovrai trasformare. Inoltre dalla posizione 2^29 in poi devi aggiungere 0 fino ad arrivare alla lunghezza del bus indirizzi che hai trovato in precedenza. Per esempio se il bus indirizzi è a 32 bit il numero verrà:
0001000001000001000100001111. (cioè arrivi alla posizione 2^31 xkè si parte da 2^0)
Una volta ottenuto tutto il numero partendo da destra lo suddividi in base al BO,WO,index e tag. Esempio se il BO è a 1 bit raccogli il primo bit a destra("1"), se il WO è a 4 bit(0111), ecc.
Spero di essere stato chiaro ora dovrei chiederti io una cosa XD. Visto che hai scritto che non hai avuto problemi con la parte precedente dell'esercizio, mi spiegheresti come faccio a trovare il bus indirizzi(quando il prof non ce lo da come dato) dalla memoria principale??
Grazie!! ciaooo


Posted by wiseupdoc on 25-01-2010 15:55:

grazie mille per la spiegazione, mi aiutato tantissimo....
per trovare il bus indirizzi basta che trasformi il dato di spazio di indirzzamento della memoria in potenza di 2
esempio:
1GB=2^30--- 64GB=2^36
il 30 (o 36) sono i bit che devi sottrarre per trovare il campo TAG.
TAG=30-indice-word-byte
spero di essere stato d'aiuto..


Posted by wake on 26-01-2010 08:30:

ok capito grazie!!. Ma ora mi sorge un dubbio eheh, questo vale sia per la cache a mappatura diretta, sia per quella a più vie?
Cioè mi sembra di ricordare ma forse mi sbaglio(molto probabile) che quando c'erano le vie dovevo dividere la capacita della memoria principale per le vie. Tipo:
C=64GB=2^36
4 vie=2^2
bus indirizzi=2^36 : 2^2=2^34= 34 bit
Possibile? e un'ultima cosa...l'index puo' venire piu grande del tag?


Posted by CowBoy on 03-03-2010 19:08:

Una volta che trovi il numero di bit necessari per indirizzare le parole di memoria devi soltanto dividerli partendo dalla cache.

Il numero di vie ti serve per dividere la capacità della cache e non la memoria principale.

Es: Cache di capacità 1MB a 2 vie vuol dire che ogni blocco ha capacità [C.cache]/[N.blocchi] 1MB/2blocchi = 2^19 Byte per blocco.

I campi index e tag invece variano in base alla C.cache e C.mp, quindi possono essere più grandi o più piccoli.

__________________
.. ±·ø·±-`` MuSiC iS My LanGuAGe ´´-±·ø·± ..


All times are GMT. The time now is 15:51.
Show all 5 posts from this thread on one page

Powered by: vBulletin Version 2.3.1
Copyright © Jelsoft Enterprises Limited 2000 - 2002.