La caché se pronuncia como la palabra cash. Es una zona de memoria de alta velocidad. El ordenador utiliza esta memoria para almacenar los datos que se utilizan con frecuencia. El propósito de almacenar ciertos datos en la memoria caché es acelerar el proceso de uso de los datos almacenados en esta memoria. En los ordenadores modernos, la memoria caché se almacena entre el procesador y la DRAM; esto se llama caché de nivel 2. Por otro lado, la caché de nivel 1 es una memoria caché interna que se almacena directamente en el procesador. Lo que el ordenador almacena en la memoria caché son principalmente los datos y los comandos que se utilizan a menudo una y otra vez para los programas. Existen principalmente dos tipos de caché: la caché de memoria y la caché de disco. La memoria caché es una parte de la memoria de alta velocidad. El espacio de la memoria caché es muy limitado. Es de alta velocidad porque es RAM estática en lugar de RAM dinámica. Esto se llama caché de memoria.
También existe el caché de disco; teniendo la misma idea que el caché de memoria; se almacena en la memoria principal convencional del disco. Esto se llama buffer de memoria. Los datos a los que más se accede en el disco son los que se almacenan en el buffer. La memoria caché es muy útil porque ahorra al usuario del ordenador mucho tiempo en abrir datos comunes y dar comandos comunes. La memoria caché es muy conveniente porque abrir datos en la caché es dramáticamente más rápido que abrir datos en el disco duro principal.
Una caché de CPU es una caché de hardware utilizada por la unidad central de procesamiento (CPU) de un ordenador para reducir el coste medio (tiempo o energía) de acceder a los datos desde la memoria principal[1] Una caché es una memoria más pequeña y rápida, situada más cerca del núcleo del procesador, que almacena copias de los datos de las ubicaciones de la memoria principal más utilizadas. La mayoría de las CPUs tienen una jerarquía de múltiples niveles de caché (L1, L2, a menudo L3, y raramente incluso L4), con diferentes cachés específicas de instrucciones y de datos en el nivel 1. La memoria caché se implementa normalmente con memoria estática de acceso aleatorio (SRAM), en las CPUs modernas la mayor parte de ellas por área de chip, pero la SRAM no siempre se utiliza para todos los niveles (de la caché I o D), o incluso para cualquier nivel, a veces algunos de estos últimos o todos los niveles se implementan con eDRAM.
Existen otros tipos de cachés (que no se contabilizan en el “tamaño de caché” de las cachés más importantes mencionadas anteriormente), como la memoria intermedia de traducción (TLB) que forma parte de la unidad de gestión de memoria (MMU) que tienen la mayoría de las CPU.
La memoria caché se utiliza para reducir el tiempo medio de acceso a la memoria. Esto se hace almacenando los datos a los que se accede con frecuencia en las direcciones de la memoria principal, lo que permite a la CPU acceder a los datos más rápidamente. Esto se debe a que la memoria caché puede leerse mucho más rápido que la memoria principal. Existen diferentes tipos de caché (por ejemplo, L1, L2 y L3). Referencia de https://compsci2014.wikispaces.com/2.1.3+Explicar+el+uso+de+la+memoria+cache+que+ahora+está+en+cambio.
La localidad es una forma elegante de decir que los datos están “cerca”, ya sea en el tiempo o en el espacio. El almacenamiento en caché con una memoria más pequeña y más rápida (pero generalmente más cara) funciona porque normalmente una cantidad relativamente pequeña de los datos globales son los datos a los que se accede con más frecuencia[1].
Ahora ya sabemos cómo funciona el mapeo directo, pero ¿qué ocurre cuando dos direcciones de memoria se mapean a la misma línea de caché? en el mapeo directo lo que ocurriría es que se produciría un reemplazo de la línea de caché y esto plantea un nuevo problema imaginemos, por ejemplo, que estoy accediendo a dos direcciones en un bucle que se mapea a la misma línea de caché, estaríamos reemplazando la línea de caché una y otra vez, lo que no es eficiente, debe haber una forma de resolver este problema y sí que es la organización asociativa de la caché.5 .2-Organización asociativa de la cachéLa organización asociativa de la caché es un tipo de organización de la caché que pretende resolver el problema de la sustitución de líneas de la caché que se produce cuando dos o más direcciones de memoria se asignan directamente a la misma línea/bloque de la caché. La organización asociativa por conjuntos simplemente distribuye la caché como un número de conjuntos y cada conjunto consta de un número de líneas de caché, por ejemplo, si tenemos una caché de 2 conjuntos con 8 líneas de caché, entonces tendremos dos conjuntos 0 y 1 y dentro de cada conjunto tendremos 4 líneas de caché. De este modo, podemos tener hasta 4 direcciones de memoria asignadas a la línea de caché cero o 1 sin ningún conflicto, y esta es la idea principal de la organización asociativa por conjuntos. En este tipo de organización podemos tener 2 conjuntos, 4 conjuntos y 8 conjuntos, lo que significa básicamente que dividiremos el tamaño de la caché en 2, 4 u 8 conjuntos, en los que cada conjunto contendrá un número de líneas de caché de acuerdo con la siguiente fórmula Ejemplo de caché con 16 KBytes, 4 conjuntos y 16 líneas de caché