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
 
[Esercizio] Cache 8 vie
Clicca QUI per vedere il messaggio nel forum
niko_2307
Si progetti (espicitando le dimensioni di tutti i campi) una memoria cache a 4 vie, associata ad un processore con bus dati di 64 bit e bus indirizzi di 32 bit. La capacità totale della cache sia di 2 Mbyte e la dimensione del blocco di 16 parole. Se ne rappresenti lo schema dettagliato e si calcoli il valore (decimale) di tutti i campi di indirizzamento relativi all'indirizzo: 0xABC10ABC

era nell'ultimo appello....ho provato a svolgerlo ma non sono sicuro della sua correttezza....qualkuno mi aiuta così ke possa confrontare??

PrizeD
nuooooooooooo mi sono dimenticato di calcolare il valore decimale.... :D
Cmq posta la tua risoluzione, magari qualcuno ti può dare consigli e correzioni

niko_2307
mi sa ke ho sbagliato un passaggio perkè ho calcolato un blocco di 4 parole per via, invece di 16 x via

la mia risoluzione(presumo errata) è questa:

Bus dati 64 bit = parole da 8 byte

Capacità 2 Mbyte = 512 Kbyte per via

linea di chache = 8 byte * 4 (parole per blocco, qui mi sa ke c'è il mio errore, dovrebbe essere 16) = 32 byte

#linee = 512 kbyte / 32 byte = 16 K

indice = log2 (16K) = 15

tag = 32 (indirizzo) - 15 (indice) - 2 (word, anke li l'errore, dovrebbe essere 4) - 3 (byte) = 12


per quanto riguarda l'indirizzamento relativo all'indirizzo, non sapevo se la formula fosse uguale a quella per la chache a mappatura diretta

0xABC10ABC = 2.881.555.132

PrizeD
Allora, la linea di cache è di 16 parole, quindi le linee sono tutte da 16*8=128 byte, questo errore ti porta anche a sbagliare il conto del numero di linee che sono (2^9 k)/2^7= 2^12 -> 4k
Quindi BO = 3 bit, WO=4 bit, index=12 bit, TAG= 32 - 12 - 4 - 3 = 13

Per l'indirizzamento metti tutto in binario: 1010 1011 1100 0001 0000 1010 1011 1100.
BO=100=byte numero 4 (contando il byte num 0 ovviamente :D)
WO=0111=parola numero 7
index=001000010101= blocco numero 533
TAG=1010101111000

Dovrebbe essere così, spero... :D

niko_2307
allora avevo detto giusto...mi ha fregato quel cavolo di blocco:cry:


cmq non è ke mi potresti spiegare come hai fatto a calcolare gli offeset dell'indirizzo

PrizeD
Intendi questo? "...numero di linee che sono (2^9 k)/2^7= 2^12 -> 4k"
2^9 k (dimensione di ogni banco) = 2^9 * 2^10 = 2^19 byte
2^19/2^7= 2^12
2^7=128 byte è la dimensione della linea
quindi facendo così trovi il numero di linee, per rappresentare questo numero in binario ti occorrono 12 bit, che è l'index.
Mentre BO sono i bit di offset della parola che è da 8 byte, quindi 3 bit. Il WO invece lo vedi dalla dimensione della linea di cache... 16 parole... 4 bit. il TAG è quello che rimane.
C'è anche un altro modo (tipo prova del 9) per calcolare il TAG ma ora come ora non mi viene in mente :D

niko_2307
no intedendevo:

si calcoli il valore (decimale) di tutti i campi di indirizzamento relativi all'indirizzo: 0xABC10ABC




ps. sei riuscito a superare lo scritto?? io sono stato ammesso all'orale ma mi sa ke non andrò....troppo poko:D

PrizeD
Si lo scritto l'ho passato, piuttosto bene anche :D
Cmq i campi di indirizzamento relativi a quell'indirizzo sono BO WO e INDEX, se non sbaglio. In decimale dovrebbero essere:

BO=100= 4
WO=0111= 7
index=001000010101= 533
TAG=1010101111000

Se ho sbagliato qualcuno mi corregga per favore perchè giovedì ho l'orale...

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