El caché está cerca de la CPU y es más rápido que la memoria principal. Pero al mismo tiempo es más pequeña que la memoria principal. La organización de la memoria caché se trata de asignar datos en la memoria a una ubicación en la memoria caché.
Una solución simple:
una forma de realizar este mapeo es considerar los últimos bits de la dirección de memoria larga para encontrar una dirección de caché pequeña y colocarlos en la dirección encontrada.
Problemas con la solución simple:
el problema con este enfoque es que perdemos la información sobre los bits de orden superior y no tenemos forma de averiguar qué bits de orden inferior pertenecen a qué bits de orden superior.
La solución es la etiqueta:
para manejar el problema anterior, se almacena más información en la memoria caché para saber qué bloque de memoria se almacena en la memoria caché. Almacenamos información adicional como etiqueta
¿Qué es un bloque de caché?
Dado que los programas tienen localidad espacial (una vez que se recupera una ubicación, es muy probable que las ubicaciones cercanas se recuperen en un futuro cercano). Entonces, un caché se organiza en forma de bloques. Los tamaños de bloque de caché típicos son 32 bytes o 64 bytes.
La disposición anterior es caché de asignación directa y tiene el siguiente problema
. Hemos discutido anteriormente que los últimos bits de direcciones de memoria se utilizan para direccionar en caché y los bits restantes se almacenan como etiquetas. Ahora imagine que el caché es muy pequeño y las direcciones de 2 bits. Supongamos que usamos los dos últimos bits de la dirección de la memoria principal para decidir el caché (como se muestra en el diagrama a continuación). Entonces, si un programa accede a 2, 6, 2, 6, 2, …, cada acceso provocaría un acierto, ya que 2 y 6 deben almacenarse en la misma ubicación en el caché.
Solución al problema anterior: asociatividad
¿Qué pasaría si pudiéramos almacenar datos en cualquier lugar de la memoria caché, el problema anterior no estaría allí? Eso ralentizaría el caché, así que hacemos algo intermedio.
Fuente:
https://www.youtube.com/watch?v=sg4CmZ-p8rU
Pronto discutiremos más detalles sobre la organización del caché.
Este artículo es aportado por Ankur Gupta . Escriba comentarios si encuentra algo incorrecto o si desea compartir más información sobre el tema tratado anteriormente.
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