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

È stato utile?

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

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