Consulta sobre N-vias

Consulta sobre N-vias

de Agustina Perez Castillo -
Número de respuestas: 1

Buenas noches, 

Mirando las clases de teorico y practico sobre jerarquia de memoria, me surgio una duda:

En la clase de teorico de Openfing lo que entendi fue: se ve como el N de N-vias como divido la cache en N secciones. Luego, el conjunto me indica la distancia, entonces si tengo conjunto 3, me fijo en la linea 3 de las "N caches" y chequeo si alguna tiene el tag que quiero.  (hora 1:43 aprox)

Pero en practico de Openfing lo que entendi fue, que el N de N-vias refiere a la cantidad de lineas, es decir, divido la cache en "X caches" de N lineas cada una. Luego, el conjunto hace referencia a una de las X caches, y miro en cualquiera de las N lineas de esa cache (la cache que me indica el conjunto) y comparo con el tag a ver si esta la data que quiero. 

No se si estoy entendiendo mal una de las dos explicaciones, o son lo mismo y no me doy cuenta.

Gracias, Saludos.

En respuesta a Agustina Perez Castillo

Re: Consulta sobre N-vias

de Gustavo Brown -

Si te entendí bien en ambos casos terminas haciendo lo mismo, pero yo lo veo conceptualmente más bien como tu primer caso. 

Es decir, tengo una cache de Z Kb con N vías. Supongamos que cada línea tiene B bytes (suponemos que la línea está dividida de a bytes)

Entonces tenes L=Z/B líneas en total. Luego como hay N vías tenes L/N conjuntos. Para cada conjunto en la caché hay disponibles N líneas para cachear N bloques de memoria asociados al número de conjunto.

Sea entonces c=log2(L/N) y b=log2(B)

Ahora una dirección se decodifica

|Tag | conjunto | byte |

Donde el campo byte tiene b bits, conjunto tiene c bits y el resto es para el tag. 

Cuando decodificas una dirección obtenés un número de conjunto. Luego se compara en paralelo el tag de la dirección contra los N tags asociados al conjunto en la caché para determinar si hay un hit. 

Saludos,

   Gustavo