Informazioni sugli stides della cache associativa set N-way
-
03-07-2019 - |
Domanda
Molte delle risorse a cui sono andato su Internet non sono d'accordo su come impostare cache associativa funziona.
Ad esempio, i segreti dell'hardware sembrano credere che funzioni così:
Quindi la memoria RAM principale viene divisa in lo stesso numero di blocchi disponibili in la cache di memoria. Mantenere i 512 KB Esempio associativo set a 4 vie, il la RAM principale sarebbe divisa in 2.048 blocchi, lo stesso numero di blocchi disponibile all'interno della cache di memoria. Ogni blocco di memoria è collegato a un set di linee all'interno della cache, proprio come nella cache mappata diretta.
http://www.hardwaresecrets.com/printpage/481/8
Sembrano dire che ogni blocco di cache (4 linee di cache) si associ a un particolare blocco di RAM contigua. Stanno dicendo che blocchi non contigui di memoria di sistema (RAM) non possono mappare allo stesso blocco di cache.
Questa è la foto di come hardwaresecrets pensa che funzioni http://www.hardwaresecrets.com/fullimage.php?image=7864
Contrasta con l'immagine di Wikipedia della cache associativa impostata http://upload.wikimedia.org/ wikipedia / comuni / 9/93 / cache% 2Cassociative-fill-both.png .
Brown non è d'accordo con i segreti hardware
Considera cosa potrebbe accadere se ciascuno di essi la riga della cache aveva due serie di campi: due bit validi, due bit sporchi, due tag campi e due campi dati. Un set dei campi potrebbe memorizzare nella cache i dati per uno area di memoria principale e l'altra per un'altra area che sembra mappare la stessa riga della cache.
http://www.spsu.edu/cs/faculty/ bbrown / web_lectures / cache /
Cioè, blocchi non contigui di memoria di sistema possono mappare allo stesso blocco cache.
Come vengono create le relazioni tra blocchi non contigui nella memoria di sistema e blocchi di cache. Ho letto da qualche parte che queste relazioni si basano sui passi della cache, ma non riesco a trovare alcuna informazione sui passi della cache se non che esistono.
Chi ha ragione? Se lo striding viene effettivamente utilizzato, come funziona lo striding e ho il nome tecnico corretto? Come trovo il passo per un determinato sistema? si basa sul sistema di paging? Qualcuno può indicarmi un URL che spiega in dettaglio N-way set cache associativa?
vedi anche: http://www.cs.umd.edu/ classe / sum2003 / cmsc311 / Notes / memoria / set.html
Soluzione
Quando insegno l'architettura della memoria cache ai miei studenti, inizio con una cache mappata direttamente. Una volta capito, puoi pensare alle cache associative degli insiemi N-way come blocchi paralleli di cache mappata diretta. Per capire che entrambe le figure possono essere corrette, devi prima capire lo scopo delle cache set-assoc.
Sono progettati per aggirare il problema dell '"aliasing" in una cache a mappatura diretta, in cui più posizioni di memoria possono essere associate a una specifica voce della cache. Questo è illustrato nella figura di Wikipedia. Quindi, invece di sfrattare una voce della cache, possiamo usare una cache N-way per memorizzare le altre posizioni di memoria "aliasate".
In effetti, il diagramma dei segreti hardware sarebbe corretto supponendo che l'ordine di sostituzione sia tale che il primo pezzo di memoria principale sia mappato su Way-1 e quindi il secondo pezzo su Way-2 e così via. Tuttavia, è ugualmente possibile avere il primo pezzo di memoria principale distribuito su più modi.
Spero che questa spiegazione sia di aiuto!
PS: posizioni di memoria contigue sono necessarie solo per una singola riga della cache, sfruttando la località spaziale. Per quanto riguarda l'ultima parte della tua domanda, credo che potresti confondere diversi concetti.
Altri suggerimenti
La politica di sostituzione decide dove nella cache una copia di a andrà in particolare l'ingresso della memoria principale. Se la politica di sostituzione è libero di scegliere qualsiasi voce nella cache per contenere la copia, la cache è chiamato completamente associativo. All'altro estremo, se ogni voce in principale la memoria può andare in un solo posto nella cache, la cache è diretta mappato. Molte cache implementano un compromesso in cui ogni voce principale la memoria può andare in una qualsiasi delle N posizioni nella cache e viene descritta come N-way set associativo