Homepage  Il progetto dsy.it è l'unofficial support site dei corsi di laurea del Dipartimento di Scienze dell'Informazione e del Dipartimento di Informatica e Comunicazione della Statale di Milano. E' un servizio degli studenti per gli studenti, curato in modo no-profit da un gruppo di essi. I nostri servizi comprendono aree di discussione per ogni Corso di Laurea, un'area download per lo scambio file, una raccolta di link e un motore di ricerca, il supporto agli studenti lavoratori, il forum hosting per Professori e studenti, i blog, e molto altro...
In questa sezione è indicizzato in textonly il contenuto del nostro forum


.dsy:it. .dsy:it. Archive > Didattica > Corsi A - F > Architettura degli elaboratori e delle reti
 
cache
Clicca QUI per vedere il messaggio nel forum
wiseupdoc
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

wake
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

wiseupdoc
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..

wake
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?

CowBoy
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.

Powered by: vbHome (lite) v4.1 and vBulletin v2.3.1 - Copyright ©2000 - 2002, Jelsoft Enterprises Limited
Mantained by dsy crew (email) | Collabora con noi | Segnalaci un bug | Archive | Regolamento |Licenze | Thanks | Syndacate