Entender el caché de la CPU y la línea de caché
Estoy tratando de entender cómo está funcionando el caché de la CPU. Digamos que tenemos esta configuración (como ejemplo).
Tamaño de caché 1024 bytesCache línea 32 bytes 1024/32 = 32 líneas de caché todas juntas. La línea de caché de Simgel puede almacenar 32/4 = 8 pulgadas.1) De acuerdo con esta configuración, la longitud de la etiqueta debe ser 32-5 = 27 bits, y el tamaño del índice de 5 bits (2 ^ 5 = 32 direcciones para cada byte en la línea de caché).
Si el tamaño total de caché es 1024 y hay 32 líneas de caché, ¿dónde se almacenan las etiquetas + índices? (Hay otros 4 * 32 = 128 bytes.) ¿Significa que el tamaño real de la caché es 1024 + 128 = 1152?
2) Si la línea de caché tiene 32 bytes en este ejemplo, esto significa que 32 bytes se copian en caché cuando la CPU necesita obtener un nuevo byte de la RAM. ¿Tengo razón al suponer que la posición de la línea de caché del byte solicitado estará determinada por su dirección?
Esto es lo que quiero decir: si la CPU solicitó el byte en[FF FF 00 08]
, entonces la línea de caché disponible se llenará con bytes de[FF FF 00 00]
a[FF FF 00 1F]
. Y nuestro byte único requerido será en la posición[08]
.
3) Si la declaración anterior es correcta, ¿significa que 5 bits que se usaron para el índice no son técnicamente necesarios ya que los 32 bytes están en la línea de caché de todos modos?
Por favor, avíseme si tengo algo mal. Gracia