Caché (informática)

format_list_bulleted Contenido keyboard_arrow_down
ImprimirCitar
Almacenamiento adicional que permite un acceso más rápido al almacenamiento principal
Diagrama de una operación de caché de memoria CPU

En informática, una caché (KASH) es un componente de hardware o software que almacena datos para que las solicitudes futuras de esos datos puedan atenderse más rápido; los datos almacenados en un caché pueden ser el resultado de un cálculo anterior o una copia de los datos almacenados en otro lugar. Un golpe de caché ocurre cuando los datos solicitados se pueden encontrar en un caché, mientras que un fallo de caché ocurre cuando no es posible. Los aciertos de la memoria caché se obtienen mediante la lectura de datos de la memoria caché, que es más rápido que volver a calcular un resultado o leer desde un almacén de datos más lento; por lo tanto, cuantas más solicitudes se puedan atender desde la memoria caché, más rápido funcionará el sistema.

Para ser rentable y permitir un uso eficiente de los datos, los cachés deben ser relativamente pequeños. No obstante, los cachés han demostrado su eficacia en muchas áreas de la informática, porque las aplicaciones informáticas típicas acceden a los datos con un alto grado de localidad de referencia. Dichos patrones de acceso exhiben localidad temporal, donde se solicitan datos que ya se han solicitado recientemente, y localidad espacial, donde se solicitan datos que se almacenan físicamente cerca de los datos que ya se han solicitado.

Motivación

Existe una compensación inherente entre tamaño y velocidad (dado que un recurso más grande implica mayores distancias físicas), pero también una compensación entre tecnologías premium caras (como SRAM) frente a productos más baratos y fáciles de producir en masa (como DRAM o discos duros).

El almacenamiento en búfer proporcionado por un caché beneficia uno o ambos de la latencia y el rendimiento (ancho de banda):

Latencia

Un recurso más grande incurre en una latencia significativa para el acceso, p. un procesador moderno de 4 GHz puede tardar cientos de ciclos de reloj en llegar a la DRAM. Esto se mitiga mediante la lectura en grandes fragmentos, con la esperanza de que las lecturas posteriores sean de ubicaciones cercanas. La predicción o la captación previa explícita también pueden adivinar de dónde vendrán las lecturas futuras y realizar solicitudes con anticipación; si se hace correctamente, la latencia se omite por completo.

Rendimiento

El uso de un caché también permite un mayor rendimiento del recurso subyacente, al ensamblar múltiples transferencias de grano fino en solicitudes más grandes y eficientes. En el caso de los circuitos DRAM, esto se podría lograr con un bus de datos más amplio. Por ejemplo, considere un programa que accede a bytes en un espacio de direcciones de 32 bits, pero que recibe servicio de un bus de datos fuera del chip de 128 bits; los accesos de bytes individuales no almacenados en caché permitirían usar solo 1/16 del ancho de banda total, y el 80% del movimiento de datos serían direcciones de memoria en lugar de datos en sí. La lectura de fragmentos más grandes reduce la fracción de ancho de banda necesaria para transmitir información de direcciones.

Operación

El hardware implementa la memoria caché como un bloque de memoria para el almacenamiento temporal de datos que probablemente se volverán a utilizar. Las unidades de procesamiento central (CPU), las unidades de estado sólido (SSD) y las unidades de disco duro (HDD) suelen incluir caché basada en hardware, mientras que los navegadores web y los servidores web suelen depender del almacenamiento en caché de software.

Un caché se compone de un grupo de entradas. Cada entrada tiene datos asociados, que son una copia de los mismos datos en algún almacén de respaldo. Cada entrada también tiene una etiqueta, que especifica la identidad de los datos en el almacén de respaldo del cual la entrada es una copia. El etiquetado permite que los algoritmos simultáneos orientados a la memoria caché funcionen en varias capas sin interferencia de retransmisión diferencial.

Cuando el cliente de la memoria caché (una CPU, un navegador web, un sistema operativo) necesita acceder a los datos que se supone que existen en el almacén de respaldo, primero verifica la memoria caché. Si se puede encontrar una entrada con una etiqueta que coincida con la de los datos deseados, se utilizan los datos de la entrada en su lugar. Esta situación se conoce como acierto de caché. Por ejemplo, un programa de navegador web podría verificar su caché local en el disco para ver si tiene una copia local del contenido de una página web en una URL en particular. En este ejemplo, la URL es la etiqueta y el contenido de la página web son los datos. El porcentaje de accesos que resultan en aciertos de caché se conoce como índice de aciertos o índice de aciertos del caché.

La situación alternativa, cuando se verifica el caché y se encuentra que no contiene ninguna entrada con la etiqueta deseada, se conoce como error de caché. Esto requiere un acceso más costoso a los datos desde el almacén de respaldo. Una vez que se recuperan los datos solicitados, normalmente se copian en la memoria caché, listos para el próximo acceso.

Durante una pérdida de caché, se elimina alguna otra entrada de caché previamente existente para dejar espacio para los datos recién recuperados. La heurística utilizada para seleccionar la entrada a reemplazar se conoce como política de reemplazo. Una política de reemplazo popular, "usada menos recientemente" (LRU), reemplaza la entrada más antigua, la entrada a la que se accedió menos recientemente que cualquier otra entrada (ver algoritmo de caché). Los algoritmos de almacenamiento en caché más eficientes calculan la frecuencia de aciertos de uso frente al tamaño de los contenidos almacenados, así como las latencias y los rendimientos tanto para el caché como para el almacén de respaldo. Esto funciona bien para grandes cantidades de datos, latencias más largas y rendimientos más lentos, como los que se experimentan con discos duros y redes, pero no es eficiente para usar dentro de una caché de CPU.

Políticas de redacción

Una caché de escritura con asignación sin escritura
Un caché de vuelta con asignación de escritura

Cuando un sistema escribe datos en la memoria caché, en algún momento también debe escribir esos datos en el almacén de respaldo. El momento de esta escritura está controlado por lo que se conoce como la política de escritura. Hay dos enfoques básicos de escritura:

  • Write-through: escribir se hace sincronizadamente tanto a la caché como a la tienda de respaldo.
  • Retrocede: inicialmente, la escritura se hace sólo al caché. La escritura a la tienda de respaldo se pospone hasta que el contenido modificado está a punto de ser reemplazado por otro bloque de caché.

Una caché de reescritura es más compleja de implementar, ya que necesita realizar un seguimiento de cuáles de sus ubicaciones se han sobrescrito y marcarlas como sucias para escribir más tarde en el almacén de respaldo. Los datos en estas ubicaciones se vuelven a escribir en el almacén de respaldo solo cuando se desalojan de la memoria caché, un efecto denominado escritura diferida. Por esta razón, un fallo de lectura en una memoria caché de reescritura (que requiere que un bloque sea reemplazado por otro) a menudo requerirá dos accesos a la memoria para el servicio: uno para escribir los datos reemplazados de la memoria caché de vuelta al almacén, y luego otro para recuperar los datos necesarios.

Otras políticas también pueden desencadenar la reescritura de datos. El cliente puede realizar muchos cambios en los datos de la memoria caché y luego notificar explícitamente a la memoria caché para que reescriba los datos.

Dado que no se devuelven datos al solicitante en las operaciones de escritura, se debe tomar una decisión sobre errores de escritura, ya sea que los datos se carguen o no en la memoria caché. Esto se define por estos dos enfoques:

  • Escribir asignación (también llamado Etch on writing): los datos en la ubicación de escritura perdida se cargan a caché, seguido de una operación de escritura-hit. En este enfoque, las faltas de escritura son similares a las faltas de lectura.
  • No-escritura (también llamado escribir-no-allocate o escribir alrededor): los datos en la ubicación de escritura perdida no se cargan a caché, y se escribe directamente a la tienda de respaldo. En este enfoque, los datos se cargan en el caché de lectura sólo falta.

Tanto las políticas de escritura directa como las de escritura diferida pueden usar cualquiera de estas políticas de escritura incorrecta, pero normalmente se emparejan de esta manera:

  • Un caché de vuelta de escritura utiliza asignación de escritura, con la esperanza de escribir posteriores (o incluso leer) a la misma ubicación, que ahora está caché.
  • Un caché a través de escritura utiliza asignación sin escritura. Aquí, escritos posteriores no tienen ventaja, ya que todavía necesitan ser escritos directamente a la tienda de respaldo.

Las entidades que no sean el caché pueden cambiar los datos en el almacenamiento de respaldo, en cuyo caso la copia en el caché puede quedar desactualizada o obsoleta. Alternativamente, cuando el cliente actualice los datos en el caché, las copias de esos datos en otros cachés quedarán obsoletas. Los protocolos de comunicación entre los administradores de caché que mantienen la coherencia de los datos se conocen como protocolos de coherencia.

Precarga

En un error de lectura de caché, los cachés con una política de paginación de demanda leen la cantidad mínima del almacén de respaldo. Por ejemplo, la memoria virtual de paginación por demanda lee una página de memoria virtual (a menudo de 4 kBytes) del disco a la memoria caché del disco en la RAM. Por ejemplo, una CPU típica lee una única línea de caché L2 de 128 bytes de la DRAM a la caché L2, y una sola línea de caché L1 de 64 bytes de la caché L2 a la caché L1.

Cachés con una cola de entrada de captación previa o una política de paginación anticipada más general ir más allá: no solo leen el fragmento solicitado, sino que adivinan que pronto se requerirán uno o dos fragmentos siguientes, por lo que obtienen esos datos en el caché con anticipación. La paginación anticipada es especialmente útil cuando el almacenamiento de respaldo tiene una latencia larga para leer el primer fragmento y tiempos mucho más cortos para leer secuencialmente los siguientes fragmentos, como el almacenamiento en disco y DRAM.

Algunos sistemas operativos van más allá con un cargador que siempre carga previamente todo el ejecutable en la RAM.

Algunos cachés van más allá, no solo precargan un archivo completo, sino que también comienzan a cargar otros archivos relacionados que pronto se pueden solicitar, como el caché de página asociado con un precapturador o el caché web asociado con un vínculo de precaptura..

Ejemplos de cachés de hardware

Caché de la CPU

Las memorias pequeñas en la CPU o cerca de ella pueden funcionar más rápido que la memoria principal, que es mucho más grande. La mayoría de las CPU desde la década de 1980 han utilizado uno o más cachés, a veces en niveles en cascada; Los microprocesadores integrados, de escritorio y de servidor modernos de gama alta pueden tener hasta seis tipos de caché (entre niveles y funciones). Ejemplos de cachés con una función específica son D-cache e I-cache y el búfer de búsqueda de traducción para la MMU.

Caché de la GPU

Las unidades de procesamiento de gráficos (GPU) anteriores a menudo tenían cachés de textura de solo lectura limitados e introdujeron texturas swizzled de orden de Morton para mejorar la coherencia del caché 2D. Los errores de caché afectarían drásticamente el rendimiento, p. si no se utilizó mipmapping. El almacenamiento en caché era importante para aprovechar las transferencias de 32 bits (y más) para los datos de textura que a menudo eran de tan solo 4 bits por píxel, indexados en patrones complejos por coordenadas UV arbitrarias y transformaciones de perspectiva en el mapeo de textura inversa.

A medida que avanzaban las GPU (especialmente con los sombreadores de cómputo GPGPU), desarrollaron cachés cada vez más grandes y generales, incluidos los cachés de instrucciones para sombreadores, que muestran una funcionalidad cada vez más común con los cachés de CPU. Por ejemplo, las GPU de arquitectura GT200 no tenían caché L2, mientras que la GPU Fermi tiene 768 KB de caché de último nivel, la GPU Kepler tiene 1536 KB de caché de último nivel y la GPU Maxwell tiene 2048 KB de caché de último nivel. Estos cachés han crecido para manejar primitivos de sincronización entre subprocesos y operaciones atómicas, e interactúan con una MMU de estilo CPU.

DSP

Los procesadores de señales digitales se han generalizado de manera similar a lo largo de los años. Los diseños anteriores usaban memoria scratchpad alimentada por DMA, pero los DSP modernos como Qualcomm Hexagon a menudo incluyen un conjunto de cachés muy similar a una CPU (por ejemplo, arquitectura Harvard modificada con L2 compartida, I-cache L1 dividida y D-cache).

Búfer de búsqueda de traducción

Una unidad de administración de memoria (MMU) que obtiene las entradas de la tabla de páginas de la memoria principal tiene un caché especializado, que se utiliza para registrar los resultados de las traducciones de direcciones virtuales a direcciones físicas. Este caché especializado se denomina búfer de búsqueda de traducción (TLB).

Caché en red

Redes centradas en la información

La red centrada en la información (ICN) es un enfoque para evolucionar la infraestructura de Internet lejos de un paradigma centrado en el host, basado en la conectividad perpetua y el principio de extremo a extremo, a una arquitectura de red en la que se identifica el punto focal. información (o contenido o datos). Debido a la capacidad inherente de almacenamiento en caché de los nodos en un ICN, se puede considerar como una red de cachés poco conectada, que tiene requisitos únicos de políticas de almacenamiento en caché. Sin embargo, el almacenamiento en caché de contenido ubicuo presenta el desafío de la protección de contenido contra el acceso no autorizado, lo que requiere cuidado y soluciones adicionales. A diferencia de los servidores proxy, en ICN el caché es una solución a nivel de red. Por lo tanto, tiene estados de caché que cambian rápidamente y tasas de llegada de solicitudes más altas; además, los tamaños de caché más pequeños imponen un tipo diferente de requisitos en las políticas de desalojo de contenido. En particular, las políticas de desalojo para ICN deben ser rápidas y livianas. Se han propuesto varios esquemas de desalojo y replicación de caché para diferentes arquitecturas y aplicaciones de ICN.

Políticas

Consciente del tiempo utilizado menos recientemente (TLRU)

El tiempo usado menos recientemente (TLRU) es una variante de LRU diseñada para la situación en la que el contenido almacenado en caché tiene un tiempo de vida válido. El algoritmo es adecuado en aplicaciones de caché de red, como redes centradas en la información (ICN), redes de entrega de contenido (CDN) y redes distribuidas en general. TLRU introduce un nuevo término: TTU (Time to Use). TTU es una marca de tiempo de un contenido/página que estipula el tiempo de uso del contenido según la localidad del contenido y el anuncio del editor del contenido. Debido a esta marca de tiempo basada en la localidad, TTU proporciona más control al administrador local para regular el almacenamiento en red. En el algoritmo TLRU, cuando llega un contenido, un nodo de caché calcula el valor de TTU local en función del valor de TTU asignado por el editor de contenido. El valor de TTU local se calcula utilizando una función definida localmente. Una vez que se calcula el valor de TTU local, el reemplazo del contenido se realiza en un subconjunto del contenido total almacenado en el nodo de caché. La TLRU garantiza que el contenido menos popular y de vida pequeña se reemplace con el contenido entrante.

Usado recientemente con menos frecuencia (LFRU)

El esquema de reemplazo de caché menos frecuente usado recientemente (LFRU) combina los beneficios de los esquemas LFU y LRU. LFRU es adecuado para 'en red' aplicaciones de caché, como redes centradas en la información (ICN), redes de entrega de contenido (CDN) y redes distribuidas en general. En LFRU, el caché se divide en dos particiones denominadas particiones privilegiadas y no privilegiadas. La partición privilegiada se puede definir como una partición protegida. Si el contenido es muy popular, se envía a la partición privilegiada. El reemplazo de la partición privilegiada se realiza de la siguiente manera: LFRU expulsa el contenido de la partición sin privilegios, empuja el contenido de la partición privilegiada a la partición sin privilegios y finalmente inserta contenido nuevo en la partición privilegiada. En el procedimiento anterior, la LRU se usa para la partición privilegiada y un esquema LFU (ALFU) aproximado se usa para la partición no privilegiada, de ahí la abreviatura LFRU. La idea básica es filtrar los contenidos populares localmente con el esquema ALFU y empujar los contenidos populares a una de las particiones privilegiadas.

Pronóstico del tiempo

En 2010, The New York Times sugirió "Escriba 'clima' seguido de su código postal." En 2011, el uso de teléfonos inteligentes con opciones de pronóstico del tiempo exigía demasiado a los servidores de AccuWeather; dos solicitudes dentro del mismo parque generarían solicitudes separadas. Una optimización por parte de los servidores perimetrales para truncar las coordenadas GPS a menos decimales significaba que se utilizarían los resultados almacenados en caché de la consulta anterior. El número de búsquedas en el servidor por día se redujo a la mitad.

Cachés de software

Caché de disco

Mientras que los cachés de la CPU generalmente son administrados completamente por hardware, una variedad de software administra otros cachés. La caché de página en la memoria principal, que es un ejemplo de caché de disco, es administrada por el kernel del sistema operativo.

Si bien el búfer de disco, que es una parte integrada de la unidad de disco duro o de la unidad de estado sólido, a veces se denomina erróneamente "caché de disco", sus funciones principales son la secuenciación de escritura y la captación previa de lectura. Los aciertos de caché repetidos son relativamente raros, debido al pequeño tamaño del búfer en comparación con la capacidad de la unidad. Sin embargo, los controladores de disco de gama alta suelen tener su propia memoria caché integrada de los bloques de datos de la unidad de disco duro.

Finalmente, una unidad de disco duro local rápida también puede almacenar en caché información almacenada en dispositivos de almacenamiento de datos aún más lentos, como servidores remotos (caché web) o unidades de cinta locales o jukeboxes ópticos; dicho esquema es el concepto principal de la gestión de almacenamiento jerárquico. Además, las unidades de estado sólido (SSD) rápidas basadas en flash se pueden usar como cachés para unidades de disco duro de medios de rotación más lentas, trabajando juntas como unidades híbridas o unidades híbridas de estado sólido (SSHD).

Caché web

Los navegadores web y los servidores proxy web emplean cachés web para almacenar respuestas anteriores de servidores web, como páginas web e imágenes. Los cachés web reducen la cantidad de información que debe transmitirse a través de la red, ya que la información previamente almacenada en el caché a menudo se puede reutilizar. Esto reduce los requisitos de procesamiento y ancho de banda del servidor web y ayuda a mejorar la capacidad de respuesta para los usuarios de la web.

Los navegadores web emplean un caché web incorporado, pero algunos proveedores de servicios de Internet (ISP) u organizaciones también usan un servidor proxy de almacenamiento en caché, que es un caché web que se comparte entre todos los usuarios de esa red.

Otra forma de caché es el almacenamiento en caché P2P, donde los archivos más buscados por las aplicaciones punto a punto se almacenan en un caché ISP para acelerar las transferencias P2P. Del mismo modo, existen equivalentes descentralizados que permiten a las comunidades realizar la misma tarea para el tráfico P2P, por ejemplo, Corelli.

Memoización

Un caché puede almacenar datos que se calculan bajo demanda en lugar de recuperarse de un almacén de respaldo. La memorización es una técnica de optimización que almacena los resultados de las llamadas a funciones que consumen recursos dentro de una tabla de búsqueda, lo que permite que las llamadas posteriores reutilicen los resultados almacenados y eviten cálculos repetidos. Está relacionado con la metodología de diseño de algoritmos de programación dinámica, que también se puede considerar como un medio de almacenamiento en caché.

Red de entrega de contenido

Una red de entrega de contenido (CDN) es una red de servidores distribuidos que entregan páginas y otro contenido web a un usuario, según las ubicaciones geográficas del usuario, el origen de la página web y el servidor de entrega de contenido.

Las CDN comenzaron a fines de la década de 1990 como una forma de acelerar la entrega de contenido estático, como páginas HTML, imágenes y videos. Al replicar el contenido en varios servidores de todo el mundo y entregarlo a los usuarios en función de su ubicación, las CDN pueden mejorar significativamente la velocidad y la disponibilidad de un sitio web o una aplicación. Cuando un usuario solicita una parte del contenido, la CDN verificará si tiene una copia del contenido en su caché. Si lo hace, la CDN entregará el contenido al usuario desde el caché.

Puerta de enlace de almacenamiento en la nube

Una puerta de enlace de almacenamiento en la nube, también conocida como archivador perimetral, es un dispositivo de almacenamiento en la nube híbrido que conecta una red local a uno o más servicios de almacenamiento en la nube, generalmente un servicio de almacenamiento de objetos como Amazon S3. Proporciona un caché para los datos a los que se accede con frecuencia, proporcionando acceso local de alta velocidad a los datos a los que se accede con frecuencia en el servicio de almacenamiento en la nube. Las puertas de enlace de almacenamiento en la nube también brindan beneficios adicionales, como el acceso al almacenamiento de objetos en la nube a través de los protocolos de servicio de archivos tradicionales, así como el acceso continuo a los datos almacenados en caché durante las interrupciones de la conectividad.

Otros cachés

El demonio BIND DNS almacena en caché una asignación de nombres de dominio a direcciones IP, al igual que una biblioteca de resolución.

La operación de escritura directa es común cuando se opera en redes poco confiables (como una LAN Ethernet), debido a la enorme complejidad del protocolo de coherencia requerido entre múltiples cachés de escritura cuando la comunicación no es confiable. Por ejemplo, las cachés de las páginas web y las cachés del sistema de archivos de la red del lado del cliente (como las de NFS o SMB) suelen ser de solo lectura o escritura simultánea específicamente para mantener el protocolo de red simple y confiable.

Los motores de búsqueda también suelen hacer que las páginas web que han indexado estén disponibles desde su caché. Por ejemplo, Google proporciona un "En caché" enlace junto a cada resultado de búsqueda. Esto puede resultar útil cuando las páginas web de un servidor web son temporal o permanentemente inaccesibles.

El almacenamiento en caché de la base de datos puede mejorar sustancialmente el rendimiento de las aplicaciones de la base de datos, por ejemplo, en el procesamiento de índices, diccionarios de datos y subconjuntos de datos de uso frecuente.

Un caché distribuido utiliza hosts en red para brindar escalabilidad, confiabilidad y rendimiento a la aplicación. Los anfitriones se pueden ubicar en el mismo lugar o distribuirse en diferentes regiones geográficas.

Búfer frente a caché

La semántica de un "búfer" y un "caché" no son totalmente diferentes; aun así, existen diferencias fundamentales en la intención entre el proceso de almacenamiento en caché y el proceso de almacenamiento en búfer.

Fundamentalmente, el almacenamiento en caché aumenta el rendimiento de las transferencias de datos que se transfieren repetidamente. Si bien un sistema de almacenamiento en caché puede obtener un aumento del rendimiento en la transferencia inicial (normalmente de escritura) de un elemento de datos, este aumento del rendimiento se debe al almacenamiento en búfer que se produce dentro del sistema de almacenamiento en caché.

Con las cachés de lectura, un elemento de datos debe haberse obtenido de su ubicación de residencia al menos una vez para que las lecturas posteriores del elemento de datos obtengan un aumento del rendimiento en virtud de poder obtenerse de la memoria caché. almacenamiento intermedio (más rápido) en lugar de la ubicación de residencia de los datos. Con las memorias caché de escritura, se puede lograr un aumento del rendimiento de la escritura de un elemento de datos en la primera escritura del elemento de datos en virtud de que el elemento de datos se almacena inmediatamente en el almacenamiento intermedio de la memoria caché, aplazando la transferencia del elemento de datos a su almacenamiento residente en una etapa posterior o bien ocurre como un proceso de fondo. A diferencia del almacenamiento en búfer estricto, un proceso de almacenamiento en caché debe cumplir con un protocolo de coherencia de caché (potencialmente distribuido) para mantener la coherencia entre el almacenamiento intermedio de la caché y la ubicación donde residen los datos. El amortiguamiento, por otro lado,

  • reduce el número de transferencias para datos novedosos entre los procesos comunicativos, que amortiza la sobrecarga implicada para varias pequeñas transferencias sobre menos, mayores transferencias,
  • proporciona un intermediario para comunicar procesos que son incapaces de transferencia directa entre sí, o
  • garantiza un tamaño mínimo de datos o una representación requerida por al menos uno de los procesos de comunicación implicados en una transferencia.

Con las implementaciones típicas de almacenamiento en caché, un elemento de datos que se lee o escribe por primera vez se almacena en búfer; y en el caso de una escritura, principalmente realizando un aumento de rendimiento para la aplicación desde donde se originó la escritura. Además, la parte de un protocolo de almacenamiento en caché donde las escrituras individuales se difieren a un lote de escrituras es una forma de almacenamiento en búfer. La parte de un protocolo de almacenamiento en caché donde las lecturas individuales se difieren a un lote de lecturas también es una forma de almacenamiento en búfer, aunque esta forma puede afectar negativamente el rendimiento de al menos las lecturas iniciales (aunque puede afectar positivamente el rendimiento de la suma de lecturas). el individuo lee). En la práctica, el almacenamiento en caché casi siempre implica algún tipo de almacenamiento en búfer, mientras que el almacenamiento en búfer estricto no implica el almacenamiento en caché.

Un búfer es una ubicación de memoria temporal que se usa tradicionalmente porque las instrucciones de la CPU no pueden abordar directamente los datos almacenados en los dispositivos periféricos. Por lo tanto, la memoria direccionable se utiliza como etapa intermedia. Además, dicho búfer puede ser factible cuando se ensambla o desensambla un gran bloque de datos (según lo requiera un dispositivo de almacenamiento), o cuando los datos pueden entregarse en un orden diferente al que se produjeron. Además, un búfer completo de datos generalmente se transfiere secuencialmente (por ejemplo, al disco duro), por lo que el almacenamiento en búfer en sí mismo a veces aumenta el rendimiento de la transferencia o reduce la variación o la fluctuación de la latencia de la transferencia en lugar del almacenamiento en caché donde la intención es reducir la latencia Estos beneficios están presentes incluso si los datos almacenados en el búfer se escriben en el búfer una vez y se leen del búfer una vez.

Un caché también aumenta el rendimiento de la transferencia. Una parte del aumento proviene de manera similar de la posibilidad de que varias transferencias pequeñas se combinen en un bloque grande. Pero la principal mejora en el rendimiento se debe a que existe una buena posibilidad de que los mismos datos se lean varias veces de la memoria caché, o que los datos escritos se lean pronto. El único propósito de un caché es reducir los accesos al almacenamiento subyacente más lento. El caché también suele ser una capa de abstracción que está diseñada para ser invisible desde la perspectiva de las capas vecinas.

Contenido relacionado

Experto en Sistemas

Conjunto de protocolos de internet

KDE

Más resultados...
Tamaño del texto:
Copiar