Considere una array A[999] y cada elemento ocupa 4 palabras. Se utiliza un caché de 32 palabras y se divide en bloques de 16 palabras. ¿Cuál es la proporción de errores para la siguiente afirmación? Suponga que un bloque se lee en la memoria caché en caso de error:
for(i=0; i < 1000; i++) A[i] = A[i] + 99
(A) 0.50
(B) 0.75
(C) 0.875
(D) 0.125
Respuesta: (D)
Explicación: Dado que hay un bloque de 16 palabras, 4 elementos pueden permanecer en un bloque. Ahora observe que se hace referencia a cada elemento dos veces, una operación de lectura y otra de escritura.
Entonces, cuando en un bloque cuando el primer elemento se refiere para leer, se perderá y, por lo tanto, ese bloque se copiará en el caché.
Ahora las referencias 2, 3 y 4 a ese primer elemento serán presionadas para lectura y escritura. Entonces, de 8 referencias, 1 fallo y 7 aciertos para un bloque. Se repite para todos y cada uno de los bloques.
Por lo tanto, acierta 7/8 y falla 1/8
La opción (D) es correcta.
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