Anteprima
Vedrai una selezione di 3 pagine su 6
Cache - Architettura elaboratori Pag. 1 Cache - Architettura elaboratori Pag. 2
Anteprima di 3 pagg. su 6.
Scarica il documento per vederlo tutto.
Cache - Architettura elaboratori Pag. 6
1 su 6
D/illustrazione/soddisfatti o rimborsati
Disdici quando
vuoi
Acquista con carta
o PayPal
Scarica i documenti
tutte le volte che vuoi
Estratto del documento

GESTIONE DELLE MISS DELLA CACHE

L’unità di controllo deve riconoscere il fallimaneto del tentativo di accesso e provvedere a risolverlo

andando a prelevare i dati dalla memoria principale, opppure da una cache di livello inferiore.

Modificare l’unità di controllo del processore per gestire una hit è un’operazione semplice. La gestione

delle miss, invece, richiede del lavoro aggiuntvo e un’unità di controllo separata che collabora con il

processore. Questa si occupa dell’accesso in memoria principale.

La risoluzione di una miss richiede lo stallo della pipeline che è differente da un interrupt, che

implicherebbe il salvataggio dello stato dei registri.

Riassumendo i passi che devono essere eseguiti quando si verifica una miss nella cache sono:

⚫ Inviare il valore originale del PC (corrente-4) alla memoria;

⚫ Comandare alla memoria principale di eseguire un’operazione di lettura ed

attendere che questa venga completata;

⚫ Scrivere la parola che proviene dalla memoria nella posizione opportuna del

blocco della cache, aggiornare il tempo tag corrispondente e impostare il

validity bit ad 1;

⚫ Far ripartire l’esecuzione dell’istruzione dallo stato di fetch che questa volta

troverà l’istruzione all’interno della cache.

GESTIONE DELLA SCRITTURA. 3

Se supponiamo che un’operazione di store scriva il dato solamente nella cache, e che quindi la

locazione nella memoria principale che è associata a quella locazione della cache avrebbe un valore

diverso. Facendo così avremmo che cache e memoria di inferiore livello sono dette incoerenti.

Per evitare questa incoerenza possiamo applicare due metodi per gestire la scrittura all’interno della

cache: ⚫ WRITE-THROUGH. Scriviamo il dato sempre sia nella memoria cache che in quella

principale. L’altro elemento fondamentale è la gestione dei miss nel processo di

scrittura. Per prima cosa dobbiamo caricare dalla memoria principale le parole

appartenenti al blocco interessato. Dopo aver caricato il blocco e averlo scritto

nella cache, possiamo sovrascrivere la parola del blocco che aveva causato la miss.

Questa memoria viene scritta anche in memoria principale utilizzando il suo

indirizzo completo. In generale questo tipo di scrittura non offre grandi

prestazioni dal momento che la parola viene ripetutamente scritta all’interno, sia

della cache che della memoria principale. Questo problema possiamo risolverlo

tramite quello che viene chiamato Buffer di scrittura. Esso memorizza i dati in

attesa che essi vengano scritti in memoria: dopo aver salvato il dato nella cache e

nel buffer di scrittura, il processore può proseguire l’esecuzione. Una volta

completata la scrittura di un dato nella memoria principale, il corrispondente

spazio di scrittura del buffer viene liberato. N el caso in cui il buffer è full ed il

processore deve eseguire un’operazione di scrittura, esso sarà messo in stallo fino

alla liberazione di un posto nel buffer. Ovviamente il processore può essere

veloce quanto vuole ma visto che la produzione di dati è solitamente maggiore

alla velocità di accettazione del sistema di memoria, esso andrà sicuramente in

stallo.

⚫ WRITE-BACK. In questo schema, quando si verifica una scrittura, il dato viene

scritto solamente nel blocco corrispondente all’interno della cache e questo poi

viene memorizzato nella memoria principale solo se deve essere rimpiazzato.

CACHE COMPLETAMENTE ASSOCIATIVE E MENO

Fino ad adesso abbiamo trattato alcune operazioni come il posizionamento di un blocco in una cache,

ma soprattutto di come trovare un dato al suo interno solo tenendo conto dello schema a mappatura

diretta che caratterizzava quel tipo di cache. Esistono però una moltitudine di schemi per determinare

4

Dettagli
Publisher
A.A. 2017-2018
6 pagine
SSD Scienze matematiche e informatiche INF/01 Informatica

I contenuti di questa pagina costituiscono rielaborazioni personali del Publisher ABsintio di informazioni apprese con la frequenza delle lezioni di Architettura degli elaboratori e studio autonomo di eventuali libri di riferimento in preparazione dell'esame finale o della tesi. Non devono intendersi come materiale ufficiale dell'università Università degli Studi di Roma La Sapienza o del prof Mei Alessandro.