Guida all'uso del simulatore JCacheSimulator, versione 1.0 Questo simulatore è composto essenzialmente da tre parti: -Memoria principale composta da 16 blocchi -Memoria Cache composta da 4 blocchi -Form per input di un indirizzo a 7 bit,che può giovare per un istruzione di lettura o scrittura Ogni blocco è formato da otto byte, ognuno di essi costituito da 8 bit di informazione. Inizialmente, abbiamo il valid bit posti a 0 (che sta a significare che il blocco di memoria cache non è abilitato). A seguito di un'operazione di read o write il blocco interessato viene caricato nella cache ed il valid bit viene posto ad 1. Nelle celle Tag viene inserito il tag corrispondente, difatti la memoria principale è divisa in 4 tag, perchè la corrispondenza diretta di 4 blocchi di cache a 16 blocchi di memoria principale richiede 16/4 valori del Tag, dunque 2 bit per il Tag stesso. Nella struttura direct mapped ogni blocco è assegnato ad uno corrispondente nella cache, ovvero abbiamo un tasso di associabilità pari a uno. Difatti il blocco j della memoria principale viene caricato nel blocco j modulo 4 della cache, ovvero abbiamo una corrispondenza diretta. Da questo la scelta dei colori per la cache e la memoria principale: il loro scopo è rendere più visibile la struttura a mappatura diretta. Quando un valore da leggere o scrivere viene trovato nella cache avviene un cache hit (ricordiamo che l'accesso alla cache tipicamente richiede un tempo 10 volte inferiore a quello alla memoria principale). Se un'istruzione di scrittura deve modificare un blocco presente nella cache, esso viene aggiornato soltanto nella cache, ed il dirty bit viene posto ad 1 per segnalare che il suddetto blocco in caso di sovrascrittura va prima ricopiato nella memoria principale quindi il dirty bit va riposto a 0; questo protocollo è adoperato per sfruttare appieno le caratteristiche della cache (Protocollo write-back). Ogni operazione, che necessita di un indirizzo a 7 bit (partendo da sinistra: i primi 2 per il tag, i 2 successivi per la line e gli ultimi 3 per indirizzare la singola cella di memoria), eseguita modifica il colore dell'area di testo sottostante alla cache, a simboleggiare l'azione avvenuta: verde per un Cache Hit, rosso per un Cache Miss e Blu nel caso di avvenuto write back. Il bordo nella memoria principale viene colorato di rosso quando vengono prelevati dalla cache e di giallo nel caso di un writeback.