¿Cómo funcionará este caché asociativo con el algoritmo de reemplazo de LRU?

Una memoria caché que utiliza una política de desalojo menos utilizada recientemente puede manipularse fácilmente para que siempre falte. En cada falta, se desaloja la entrada de caché más antigua y se coloca una nueva en su lugar. Por lo tanto, siempre que la región a la que se accede no sea una de las N entradas a las que se accedió anteriormente, la caché se perderá, donde N es el tamaño de la caché en líneas.

En su problema, el caché consta de entradas de 64 bytes, pero el problema le pide que lea un byte a la vez. Entonces, después de leer el byte 0, la próxima falla llegará al leer el byte 64, luego el byte 128, etc.

Dado que hay 512 líneas de caché, la entrada en caché de bytes 0-63 caducará después de 512 lecturas siguiendo este patrón, que se compensa con 32768. Afortunadamente, esto es más pequeño que el tamaño de la matriz, por lo que es posible una solución.

Continúe avanzando 64 bytes; después de leer el final de la matriz, ha leído 1/64 del total de entradas, una vez. Luego regrese al principio y lea los bytes 1, 65, 129, etc.

Ahora, la lectura del byte 1 es la primera vez que leemos un byte dentro del mismo límite de la línea de caché. Pero debido a que hemos realizado 10,000 lecturas, y solo las últimas 512 lecturas permanecen en caché, podemos estar seguros de que la lectura del byte 1 también se pierde.

Haga esto para cada desplazamiento inicial entre 0 y 63. Cada una de esas lecturas es un error de caché debido a la propiedad LRU.

El problema nos pide que leamos cada byte dos veces, por lo que después de comenzar en el desplazamiento 63, comience todo el proceso nuevamente. La secuencia de lecturas se puede expresar como un bucle triplemente anidado.

Sin embargo, tenga en cuenta que la secuencia descrita anteriormente no es la única solución: cualquiera de los ordenamientos factoriales de 10000 de las líneas de caché podría usarse en cada pasada, o incluso podríamos intercalar pasadas o hacer diferentes ordenaciones para cada pasada siempre que mantengamos la distancia de 512 entradas entre lecturas a la misma región de 64 bytes.

More Interesting

He pensado en un algoritmo simple y cómo algunas empresas podrían usarlo. ¿Cómo puedo ganar dinero con eso?

Cómo resolver la recurrencia t (n) = 2t (n / 2) + n / logn

Cómo generar una lista de todas las permutaciones de una matriz 4 × 4 con solo los números 1, 2, 3 y 4 en Python

Supongamos que tenemos una matriz 8 * 8. Cada celda tiene 0 o 1. Se le dará una ubicación y deberá encontrar todas las que se encuentran en la misma isla. ¿Los puntos se encuentran en la misma isla si un punto está en alguna de las celdas adyacentes?

¿Qué es la recurrencia en análisis de diseño y algoritmos?

¿Qué estructura de datos debo usar si estoy diseñando un algoritmo que clasifica las páginas por relevancia de acuerdo con la cantidad de veces que se ven?

¿Qué es un árbol de expansión?

¿Cuáles son los factores que afectan la tasa de error en el algoritmo KNN?

¿Por qué deberíamos instanciar una matriz en una línea diferente?

¿Cuál es la lógica y la intuición detrás del algoritmo de optimización de momento y por qué se considera mejor que el descenso de gradiente?

¿Qué representan realmente los números de Grundy en un juego?

¿El aprendizaje por refuerzo está recibiendo actualmente más atención que los algoritmos genéticos?

¿Hay alguna estructura de datos que no se pueda representar dentro de una computadora?

¿Cuál es el mejor instituto para estructuras de datos y algoritmos en Hyderabad?

¿Por qué los estudiantes chinos tienen un talento extraordinario en programación y algoritmos?