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?