Domanda

la cache L1/L2 potrebbe memorizzare in ciascuna cache più copie della parola dati della memoria principale?

È stato utile?

Soluzione

È possibile che la memoria principale sia nella cache più di una volta.Ovviamente questo è vero ed è un evento comune per le macchine multiprocessore.Ma anche su macchine con processore uni può succedere.

Considera una CPU Pentium con una cache istruzioni/dati divisa L1.Le istruzioni vanno solo nella I-cache, i dati solo nella D-cache.Ora, se il sistema operativo consente l'automodificazione del codice, la stessa memoria potrebbe essere caricata sia nella I che nella D-cache, una volta come dati, una volta come istruzioni.Ora hai quei dati due volte nella cache L1.Pertanto una CPU con un'architettura di cache suddivisa deve utilizzare un protocollo di coerenza della cache per evitare condizioni di competizione/corruzione.

Altri suggerimenti

No - se è già nella cache del MMU utilizzerà che, piuttosto che creare un'altra copia

.

Ogni della cache memorizza fondamentalmente qualche piccolo sottoinsieme di tutta la memoria. Quando la CPU ha bisogno di una parola di memoria che primo va a L1, poi a cache L2 e così via , prima che la memoria principale viene controllato . Quindi una particolare parola di memoria può essere in L2 e L1 simultaneamente, ma non può essere memorizzato due volte in L1, perché non è necessario.

Sì certo che può. L1 copia viene aggiornato ma non è stata lavata a L2. Ciò avviene solo se L1 e L2 sono cache non esclusive. Ciò è evidente per uni-processor ma è ancora di più per multiprocessori che tipicamente hanno le proprie cache L1 per ogni core.

Tutto dipende l'architettura della cache - se garantisce qualsiasi tipo di cose

.
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top