Memoria cache, TAG

Memoria cache, TAG

de Juan Andres Nogueira Zunini -
Número de respuestas: 4

Hola, tengo una duda sobre este tema

Para plantear mi duda voy a utilizar el ejemplo de las notas teoricas que dice que se tiene una memoria cache de 64KBytes, tamaño de bloque de 4Bytes y 16MBytes de memoria principal (24 bits para direccionar los 16MBytes).

Entonces tenemos:

  • 4M bloques de memoria (16MBytes / 4Bytes)
  • La cache tiene 16K lineas (64KBytes / 4Bytes)

Por lo cual hay 28 bloques que tienen la misma linea de cache y para distinguirlos se usa un tag de 8 bits. En cada linea de la cache se almacena un bloque de memoria, o sea, 4 direcciones de memoria que ocupan 4Bytes (1Byte cada direccion). Ademas, para cada linea se tiene que almacenar el tag del bloque que esta almacenado en esa linea, por lo cual, por cada linea, ademas de los 4Bytes necesarios para almacenar el bloque, necesitamos 8 bits mas para almacenar el tag. Por lo cual, en realidad, el tamaño de la cache no seria de 64KBytes, sino 16K(4Bytes (bloque de memoria) + 1Byte (tag)) = 16K(5Bytes) = 80KBytes.

Tal como en este ejemplo, siempre he visto que cuando se habla del tamaño de la cache no se incluye el tamaño necesario para almacenar los tags. Eso es asi? o sea, cuando hablamos de tamaño de la cache no debemos tener en cuenta la memoria necesaria para almacenar los tags?

En respuesta a Juan Andres Nogueira Zunini

Re: Memoria cache, TAG

de Juan Andres Nogueira Zunini -

Me olvide de decir que estaba usando el caso de correspondencia directa

En respuesta a Juan Andres Nogueira Zunini

Re: Memoria cache, TAG

de Federico Rivero -
Estimado:

Para todos los casos, cuando se habla de capacidad de la caché,  se está haciendo referencia a lo que puede guardar, esto es la suma de las capacidades de las líneas,  sin contar el espacio para guardar los tags.

Saludos,

       Federico

En respuesta a Juan Andres Nogueira Zunini

Re: Memoria cache, TAG

de Federico Carlos Gonzalez Gamou -
Mirá, yo tenía la misma duda y esto lo saqué de Wikipedia así que tomalo con pinzas:

The "size" of the cache is the amount of main memory data it can hold. This size can be calculated as the number of bytes stored in each data block times the number of blocks stored in the cache. (The tag, flag and error correction code bits are not included in the size,although they do affect the physical area of a cache.)


Es decir que el "tamaño" de la caché sólo se refiere a la cantidad de datos "reales" que puede almacenar de la memoria principal. No estaría contando los bits de TAG que como vos bien decís están ocupando espacio. 

EDIT: Me ganó de mano Federico :P