Que es cache en informática, para qué sirve

¿Qué es cache en informática? ¿Para qué sirve? Cómo funciona, importancia, algoritmos, políticas, usos, vs RAM y búfer. Es un hardware o software que se utiliza para almacenar algo, generalmente datos, temporalmente en un entorno informático.

Se utiliza una pequeña cantidad de memoria más rápida y costosa para mejorar el rendimiento de los datos de acceso reciente o acceso frecuente que se almacenan temporalmente en un medio de almacenamiento de acceso rápido que es local para el cliente de caché y está separado del almacenamiento masivo. La caché es utilizada frecuentemente por los clientes de la caché, como la CPU, las aplicaciones, los navegadores web o los sistemas operativos (OS).

La memoria caché se utiliza porque el almacenamiento masivo o principal no puede satisfacer las demandas de los clientes de la memoria caché. La memoria caché reduce los tiempos de acceso a los datos, reduce la latencia y mejora la entrada / salida ( E / S ). Debido a que casi todas las cargas de trabajo de las aplicaciones dependen de las operaciones de E / S, el almacenamiento en caché mejora el rendimiento de la aplicación.

Cómo funciona el caché

Cuando un cliente de caché necesita acceder a los datos, primero verifica el caché. Cuando los datos solicitados se encuentran en un caché, se llama un acierto de caché. El porcentaje de intentos que resultan en aciertos de caché se conoce como la tasa o proporción de aciertos de caché.

Si los datos solicitados no se encuentran en el caché, una situación conocida como falta de caché, se extraen de la memoria principal y se copian en el caché. Cómo se hace esto, y qué datos se expulsan de la memoria caché para hacer espacio para los nuevos datos, depende del algoritmo de almacenamiento en caché o las políticas que usa el sistema.

Los navegadores web, como Internet Explorer, Firefox, Safari y Chrome, utilizan una memoria caché del navegador para mejorar el rendimiento de las páginas web de acceso frecuente. Cuando visita una página web, los archivos solicitados se almacenan en su almacenamiento informático en la memoria caché del navegador.

Al hacer clic atrás y regresar a una página anterior, su navegador puede recuperar la mayoría de los archivos que necesita del caché en lugar de reenviarlos todos desde el servidor web. Este enfoque se llama lectura de caché . El navegador puede leer los datos del caché del navegador mucho más rápido de lo que puede volver a leer los archivos de la página web.

El caché es importante por varias razones

El uso de la caché reduce la latencia de los datos activos. Esto resulta en un mayor rendimiento para un sistema o aplicación.
También desvía la E / S al caché, reduciendo las operaciones de E / S al almacenamiento externo y a niveles más bajos de tráfico SAN.
Los datos pueden permanecer permanentemente en el almacenamiento tradicional o en arreglos de almacenamiento externo. Esto mantiene la consistencia y la integridad de los datos mediante las características proporcionadas por la matriz, como instantáneas o replicación.
Flash se usa solo para la parte de la carga de trabajo que se beneficiará de una menor latencia. Esto da como resultado el uso rentable de un almacenamiento más caro.
La memoria caché está incluida en la CPU o incorporada en un chip en la placa del sistema. En las máquinas más nuevas, la única forma de aumentar la memoria caché es actualizar la placa del sistema y la CPU a una nueva generación. Las placas del sistema más antiguas pueden tener ranuras vacías que se pueden usar para aumentar la memoria caché, pero la mayoría de las placas del sistema no tienen esa opción.

Algoritmos de caché

Los algoritmos de caché proporcionan instrucciones sobre cómo se debe mantener el caché . Algunos ejemplos de algoritmos de caché incluyen:

El uso menos frecuente (LFU) realiza un seguimiento de la frecuencia con la que se accede a una entrada. El elemento que tiene el conteo más bajo se elimina primero.
Usado menos recientemente (LRU) coloca los elementos a los que se accede recientemente cerca de la parte superior de la memoria caché. Cuando el caché alcanza su límite, se eliminan los elementos a los que se accedió recientemente.
El uso más reciente (MRU) elimina primero los elementos a los que se accedió más recientemente. Este enfoque es mejor cuando es más probable que se utilicen artículos antiguos.

Políticas de caché

La memoria caché de escritura alrededor escribe las operaciones en el almacenamiento, omitiendo la memoria caché por completo. Esto evita que la memoria caché se inunde cuando hay grandes cantidades de E / S de escritura. La desventaja de este enfoque es que los datos no se almacenan en caché a menos que se lean del almacenamiento. Eso significa que la operación de lectura será relativamente lenta porque los datos no se han almacenado en caché.

La memoria caché de escritura directa escribe datos en la memoria caché y el almacenamiento. La ventaja aquí es que dado que los datos recién escritos siempre se almacenan en caché, se pueden leer rápidamente. Un inconveniente es que las operaciones de escritura no se consideran completas hasta que los datos se escriben tanto en la memoria caché como en el almacenamiento primario . Esto puede hacer que el almacenamiento en caché de escritura directa introduzca la latencia en las operaciones de escritura.
La caché de escritura simultánea es similar a la caché de escritura simultánea en que todas las operaciones de escritura se dirigen a la caché. Sin embargo, con la memoria caché de escritura, la operación de escritura se considera completa después de que los datos se almacenan en caché. Más tarde, los datos se copian de la memoria caché al almacenamiento.

Con este enfoque, las operaciones de lectura y escritura tienen una latencia baja. El inconveniente es que, dependiendo del mecanismo de almacenamiento en caché que se utiliza, los datos siguen siendo vulnerables a la pérdida hasta que se comprometa con el almacenamiento.

Usos populares para caché

Servidor de caché : un servidor o servicio de red dedicado que actúa como servidor o servidor web que guarda páginas web u otro contenido de Internet localmente. Un servidor de caché a veces se llama un caché de proxy .

Caché de disco : contiene datos de lectura reciente y quizás áreas de datos adyacentes a las que es probable que se acceda pronto. Algunos discos almacenan en caché los datos de la memoria caché según la frecuencia con la que se leen. Los bloques de almacenamiento que se leen con frecuencia se conocen como bloques en caliente y se envían automáticamente a la memoria caché.

Memoria caché : memoria de acceso aleatorio, o RAM , a la que un microprocesador puede acceder más rápido que a la RAM normal. La memoria caché a menudo está vinculada directamente a la CPU y se utiliza para almacenar en caché las instrucciones a las que se accede con frecuencia. Un caché RAM es mucho más rápido que un caché basado en disco, pero la memoria caché es mucho más rápida que un caché RAM porque está muy cerca de la CPU.

Caché de Flash : El almacenamiento temporal de datos sobre la memoria flash NAND fichas – a menudo utilizando unidades de estado sólido (SSD s ) – para cumplir con las solicitudes de datos más rápido de lo que sería posible si la caché estaban en una unidad tradicional de disco duro (HDD) o parte de la tienda de respaldo.

Caché persistente: se considera la capacidad de almacenamiento real donde los datos no se pierden en caso de reinicio o bloqueo del sistema. Una copia de seguridad de la batería se utiliza para proteger los datos o los datos se transfieren a una RAM dinámica respaldada por la batería (DRAM) como protección adicional contra la pérdida de datos.

Tipos de caché de hardware

Con el almacenamiento en caché de la CPU, los datos recientes o solicitados con frecuencia se almacenan temporalmente en un lugar de fácil acceso. Se puede acceder a estos datos rápidamente, evitando el retraso involucrado en leerlos desde la RAM.
El caché es útil porque la CPU de una computadora normalmente tiene una velocidad de reloj mucho mayor que la del bus del sistema que se usa para conectarlo a la RAM. Como resultado, la velocidad de reloj del bus del sistema limita la capacidad de la CPU para leer datos de la RAM. Además de la velocidad lenta cuando se leen datos de la RAM, los mismos datos a menudo se leen varias veces cuando la CPU ejecuta un programa.

Con una memoria caché de la CPU, una pequeña cantidad de memoria se coloca directamente en la CPU. Esta memoria funciona a la velocidad de la CPU en lugar de a la velocidad del bus del sistema y es mucho más rápida que la RAM. La premisa subyacente de la memoria caché es que es probable que los datos que se han solicitado una vez se soliciten nuevamente.

Los cachés de CPU tienen dos o más capas o niveles. Se ha encontrado que el uso de dos cachés pequeños aumenta el rendimiento de manera más efectiva que un caché grande.

Los datos solicitados más recientemente suelen ser los datos que se necesitarán nuevamente. Por lo tanto, la CPU comprueba primero el caché de nivel 1 (L1). Si se encuentran los datos solicitados, la CPU no comprueba el caché de nivel 2 (L2). Esto ahorra tiempo porque la CPU no tiene que buscar a través de la memoria caché completa.

La memoria caché L1 se suele construir en el chip del microprocesador. La memoria caché L2 está integrada en la CPU o en un chip o coprocesador independiente y puede tener un bus de sistema alternativo de alta velocidad que conecta la memoria caché y la CPU. El caché de nivel 3 ( L3) es una memoria especializada desarrollada para mejorar el rendimiento de L1 y L2. La CPU y la unidad de procesamiento de gráficos (GPU) pueden acceder y compartir la memoria caché L4.

Históricamente, los cachés L1, L2 y L3 se han creado utilizando componentes combinados de procesador y placa base. Recientemente, la tendencia ha sido consolidar los tres niveles en la propia CPU. Debido a este cambio, el método principal para aumentar el tamaño del caché ha cambiado a la compra de una CPU con la cantidad correcta de caché L1, L2 y L3 integrado.

El búfer de traducción ( TLB ) es un caché de memoria que almacena las traducciones recientes de memoria virtual a direcciones físicas y acelera las operaciones de memoria virtual.

Cuando un programa se refiere a una dirección virtual, el primer lugar que busca es la CPU. Si no se encuentra la dirección de memoria requerida, el sistema busca la dirección física de la memoria, primero verificando el TLB. Si la dirección no se encuentra en la TLB, se busca la memoria física.

A medida que se traducen las direcciones de memoria virtual, se agregan a la TLB. Se pueden recuperar más rápido del TLB porque está en el procesador, lo que reduce la latencia. El TLB también puede aprovechar las altas frecuencias de ejecución de las CPU modernas.

Los TLB admiten computadoras multiusuario con un usuario y un modo supervisor, y usan permisos en bits de lectura y escritura para permitir el uso compartido. Sin embargo, la multitarea y los errores de código pueden causar problemas de rendimiento. Esta degradación del rendimiento, conocida como cache thrash , es causada por la actividad de la computadora que no avanza debido al uso excesivo de recursos o los conflictos del sistema de caché.

Cache vs. RAM

La memoria caché y la RAM colocan los datos más cerca del procesador para reducir la latencia del tiempo de respuesta. La memoria caché suele ser parte de la CPU o parte de un complejo que incluye la CPU y un conjunto de chips adyacentes donde se utiliza la memoria para almacenar información e instrucciones de acceso frecuente.

Una memoria caché RAM, por otro lado, generalmente incluye memoria permanente incrustada en la placa base y módulos de memoria que se pueden instalar en ranuras dedicadas o ubicaciones de adjuntos. El bus de la placa base proporciona acceso a estos recuerdos.

La memoria caché de la CPU es entre 10 y 100 veces más rápida que la RAM, y solo requiere unos pocos nanosegundos para responder a la solicitud de la CPU. Sin embargo, la memoria caché RAM es más rápida en su tiempo de respuesta que los medios magnéticos, que ofrecen I / O a velocidades en milisegundos.

Caché frente a búfer

Un búfer es un área compartida donde los dispositivos de hardware o procesos de programas que operan a diferentes velocidades o con diferentes prioridades pueden almacenar datos temporalmente. El búfer permite que cada dispositivo o proceso funcione sin ser retrasado por los otros.

Leer también: Qué es memoria caché, definición ; Wp super cache configuración idónea, que es, como se usa

This post is also available in: Español