Establecer cálculos de caché asociativa

0

Me encontré con el siguiente problema:

  

Dadas las siguientes especificaciones para una memoria caché externa: conjunto asociativo de cuatro vías; tamaño de línea de dos palabras de 16 bits; capaz de acomodar un total de 4K palabras de 32 bits de la memoria principal; utilizado con un procesador de 16 bits que emite direcciones de 24 bits. Diseñe la estructura de caché con toda la información pertinente y muestre cómo interpreta las direcciones del procesador.

Intenté resolverlo de la siguiente manera:

  • 4 líneas por conjunto
  • Tamaño de palabra de la memoria principal: 32 bits = 2 4
  • Tamaño de palabra de la memoria caché: 16 bits = 2 2
  • Tamaño de la memoria principal: 4 \ times 2 10 = 2 12 palabras de 32 bits = 2 13 palabras de 16 bits
  • La memoria caché debe adaptarse a la memoria principal completa. Por lo tanto, tamaño de la memoria caché = tamaño de la memoria principal = 2 13 palabras de 16 bits
  • Tamaño de línea = dos palabras de 16 bits → Compensación de palabra = 1 bit
  • Conjunto asociativo de cuatro direcciones → 4 = 2 2 líneas por conjunto
  • Establecer tamaño = 2 2 líneas * 2 palabras por línea = 2 3 palabras de tamaño de 16 bits
  • Número de conjuntos = 2 13 / 2 3 = 2 10
  • Establecer tamaño de índice = 10 bits
  • Tamaño de etiqueta = tamaño de dirección de 24 bits - índice de conjunto de 10 bits - desplazamiento de palabra de 1 bit = 13 bits

Dudas

  1. Me sorprende que se diga que el procesador de 16 bits genera direcciones de 24 bits. es posible? Nunca me encontré con tal problema.
  2. ¿Cómo la memoria caché y la memoria principal pueden tener diferentes tamaños de palabra? Aquí, el tamaño de la palabra de la memoria caché es de 16 bits y el tamaño de la palabra de la memoria principal es de 32 bits.
  3. Teniendo en cuenta los escenarios inusuales (supuestos que hice) explicados en los puntos 1 y 2 anteriores, ¿estoy en lo cierto con los cálculos anteriores?
  4. La respuesta solo da un diagrama (sin explicación) que dice 1 bit por palabra, 1 bit por direccionamiento de bytes y 12 bits por etiqueta. Entonces, ¿estoy equivocado?
pregunta anir

0 respuestas

Lea otras preguntas en las etiquetas