¿Cómo calcular los campos de dirección para un caché?

0

Tengo una pregunta sobre la tarea de las memorias caché de 32 bits:

  

Para una memoria caché que tiene un tamaño de 16kB (16384 byte) y tamaño de bloque 2   palabras, indique los nombres y los tamaños de cada campo de la dirección que   proviene de la CPU.

Mi respuesta es: desplazamiento de bloque de 3 bits desde 2³ = 8 y 14 bits para la etiqueta de dirección desde 2¹⁴ = 16384. El resto, 15 bits son para el índice del caché. ¿Mi respuesta es correcta?

    

1 respuesta

1

Suponiendo que la memoria es direccionable por bytes y las palabras son de 32 bits, entonces cada línea de caché tiene 8 bytes de ancho, por lo que requiere una dirección de bytes de 3 bits.

Los siguientes campos no se pueden determinar sin asumir una organización de caché, por lo que el problema de la tarea es indeterminado.

El caché tiene 2048 líneas, pero ¿cómo se utilizan?

Si el caché se asigna directamente, entonces de los siguientes 29 bits, 11 bits son un índice en el caché, y los 18 bits restantes son etiquetas de dirección.

Si el caché es totalmente asociativo, todos los 29 bits son etiquetas.

Y todo lo que está en el medio: asociativo de cuatro vías significa que hay 11 - 2 = 9 bits de índice de conjunto, y la etiqueta es 18 + 2 = 20 bits. Cada elección de asociación de conjuntos divide los 29 bits entre la etiqueta y el índice.

    
respondido por el Kaz

Lea otras preguntas en las etiquetas