Un sistema informático utiliza direcciones de memoria de 16 bits. Tiene una memoria caché de 2K bytes organizada de manera de mapeo directo con 64 bytes por bloque de memoria caché. Suponga que el tamaño de cada palabra de memoria es de 1 byte.
Cuando se ejecuta un programa, el procesador lee datos secuencialmente de las siguientes direcciones de palabra:
128, 144, 2176, 2180, 128, 2176
Todas las direcciones anteriores se muestran en valores decimales. Suponga que la memoria caché está inicialmente vacía. La proporción de aciertos de caché que se producen para las direcciones dadas anteriormente es __________.
(A) 0.333
(B) 0.666
(C) 0.353
(D) 0.535
Respuesta: (A)
Explicación: Primero, encuentre el tamaño de palabra, bloque y etiqueta: Tamaño de
bloque = 64 bytes = 2 6 bytes = 2 6 palabras (desde 1 palabra = 1 byte)
Por lo tanto, Número de bits en el campo Palabra = 6
Tamaño de caché = 2K-byte = 2 11 bytes
Número de bloques de caché = Tamaño de caché / Tamaño de bloque = 2 11 /2 6 = 2 5
Por lo tanto, Número de bits en el campo Bloque = 5
Número total de bits de dirección = 16
Por lo tanto, Número de bits en el campo Etiqueta = 16 – 6 – 5 = 5
Para una dirección dada de 16 bits, los 5 bits más significativos representan la Etiqueta, los siguientes 5 bits representan el Bloque y los 6 bits menos significativos representan la Palabra.
Ahora, verifique el acierto o error de la memoria caché para las direcciones dadas:
la memoria caché está inicialmente vacía. Por lo tanto, todos los bloques de caché no son válidos.
- Acceso # 1:
- Acceso # 2:
Dirección = (144) 10 = (0000000010010000) 2
Para esta dirección, Etiqueta = 00000, Bloque = 00010, Palabra = 010000
Dado que el campo de etiqueta para el bloque de caché 00010 es 00000 antes de este acceso, será un golpe de caché ( porque
etiqueta de dirección = etiqueta de bloque) - Acceso n.º 3:
Dirección = (2176) 10 = (0000100010000000) 2
Para esta dirección, Etiqueta = 00001, Bloque = 00010, Palabra = 000000
Dado que el campo de etiqueta para el bloque de caché 00010 es 00000 antes de este acceso, esto será un error de caché
( etiqueta de dirección ≠ etiqueta de bloque)
Después de este acceso, el campo Etiqueta para el bloque de caché 00010 se establece en 00001 - Acceso # 4:
Dirección = (2180) 10 = (0000100010000100) 2
Para esta dirección, Etiqueta = 00001, Bloque = 00010, Palabra = 000100
Dado que el campo de etiqueta para el bloque de caché 00010 es 00001 antes de este acceso, será un acierto de caché ( etiqueta de dirección
= etiqueta de bloque) - Acceso n.º 5:
Dirección = (128) 10 = (0000000010000000) 2
Para esta dirección, Etiqueta = 00000, Bloque = 00010, Palabra = 000000
Dado que el campo de etiqueta para el bloque de caché 00010 es 00001 antes de este acceso, será un error de caché
( etiqueta de dirección ≠ etiqueta de bloque)
Después de este acceso, el campo Etiqueta para el bloque de caché 00010 se establece en 00000 - Acceso n.º 6:
Dirección = (2176) 10 = (0000100010000000) 2
Para esta dirección, Etiqueta = 00001, Bloque = 00010, Palabra = 000000
Dado que el campo de etiqueta para el bloque de caché 00010 es 00001 antes de este acceso, se tratará de un error de caché
( etiqueta de dirección ≠ etiqueta de bloque)
Después de este acceso, el campo Etiqueta para el bloque de caché 00010 se establece en 00001
Dirección = (128) 10 = (0000000010000000) 2
(Nota: La dirección se muestra como un número de 16 bits, porque la computadora usa direcciones de 16 bits)
Para esta dirección, Etiqueta = 00000, Bloque = 00010, Palabra = 000000
Dado que la memoria caché está vacía antes de este acceso, se perderá la memoria caché
Después de este acceso, el campo Etiqueta para el bloque de memoria caché 00010 se establece en 00000
Por lo tanto, tasa de aciertos de caché = Número de aciertos / Número de accesos = 2/6 = 0,333.
La opción (A) es verdadera.
Cuestionario de esta pregunta
Publicación traducida automáticamente
Artículo escrito por GeeksforGeeks-1 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA