De Wikipedia, la enciclopedia libre
Saltar a navegación Saltar a búsqueda

Diagrama de una operación de caché de memoria de la CPU

En computación , un caché ( / k æ ʃ / ( escuchar ) Sobre este sonido Kash , [1] o / k ʃ / kaysh en Australia Inglés [2] ) es un componente de hardware o software que almacena los datos de modo que las futuras solicitudes de que los datos se puede servir más rápido; los datos almacenados en una caché pueden ser el resultado de un cálculo anterior o una copia de los datos almacenados en otro lugar. Un acierto de caché ocurre cuando los datos solicitados se pueden encontrar en un caché, mientras que un caché fallaocurre cuando no puede. Los aciertos de la caché se obtienen leyendo datos de la 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 caché, más rápido funcionará el sistema. [3]

Para ser rentables y permitir un uso eficiente de los datos, las cachés deben ser relativamente pequeñas. Sin embargo, los cachés han demostrado su eficacia en muchas áreas de la informática, porque las aplicaciones informáticas típicas acceden a 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 [ editar ]

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 ) y productos básicos más baratos y fáciles de producir en masa (como DRAM o productos duros). discos ).

El almacenamiento en búfer proporcionado por una caché beneficia tanto a la latencia como al rendimiento ( ancho de banda ):

Latencia [ editar ]

Un recurso más grande incurre en una latencia significativa para el acceso, por ejemplo, puede tomar cientos de ciclos de reloj para que un procesador moderno de 4 GHz alcance la DRAM . Esto se mitiga leyendo en grandes porciones, 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 [ editar ]

El uso de una 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 podría lograrse 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 el servicio de un bus de datos fuera del chip de 128 bits; Los accesos individuales de bytes no almacenados en caché permitirían utilizar 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 [ editar ]

El hardware implementa la 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) y las unidades de disco duro (HDD) utilizan con frecuencia una caché, al igual que los navegadores web y los servidores web .

Una caché está formada por un conjunto de entradas. Cada entrada tiene datos asociados , que son una copia de los mismos datos en alguna tienda 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 relé diferencial.

Cuando el cliente de caché (una CPU, navegador web, sistema operativo ) necesita acceder a datos que se presume que existen en el almacén de respaldo, primero verifica el caché. Si se puede encontrar una entrada con una etiqueta que coincida con la de los datos deseados, en su lugar se utilizan los datos de la entrada. Esta situación se conoce como acierto de caché. Por ejemplo, un programa de navegador web puede comprobar 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 tasa de aciertos o índice de aciertos de la caché.

La situación alternativa, cuando se comprueba la caché y se descubre que no contiene ninguna entrada con la etiqueta deseada, se conoce como falta de caché. Esto requiere un acceso más costoso a los datos de la tienda de respaldo. Una vez que se recuperan los datos solicitados, normalmente se copian en la caché, listos para el siguiente acceso.

Durante una falta 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, "menos usada 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 del contenido almacenado, así como las latencias.y rendimientos tanto para la memoria 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 el experimentado con discos duros y redes, pero no es eficiente para su uso dentro de una memoria caché de CPU. [ cita requerida ]

Políticas de redacción [ editar ]

Una caché de escritura simultánea con asignación sin escritura
Una caché de escritura diferida con asignación de escritura

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

  • Escritura simultánea: la escritura se realiza de forma sincrónica tanto en la memoria caché como en el almacén de respaldo.
  • Escritura diferida (también denominada escritura diferida ): inicialmente, la escritura se realiza solo en la caché. La escritura en el almacén de respaldo se pospone hasta que el contenido modificado esté a punto de ser reemplazado por otro bloque de caché.

Una caché de escritura diferida es más compleja de implementar, ya que necesita rastrear cuáles de sus ubicaciones se han sobrescrito y marcarlas como sucias para escribirlas posteriormente en la tienda de respaldo. Los datos de estas ubicaciones se vuelven a escribir en el almacén de respaldo solo cuando se expulsan de la memoria caché, un efecto que se conoce como escritura diferida . Por esta razón, una falla de lectura en una memoria caché de escritura diferida (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 desde la memoria caché de regreso a la tienda, y luego otro para recuperar los datos necesarios.

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

Dado que no se devuelven datos al solicitante en las operaciones de escritura, se debe tomar una decisión sobre los errores de escritura, si los datos se cargarían o no en la caché. Esto se define mediante estos dos enfoques:

  • Asignación de escritura (también denominada recuperación al escribir ): los datos en la ubicación de escritura perdida se cargan en la memoria caché, seguidos de una operación de acierto de escritura. En este enfoque, los errores de escritura son similares a los errores de lectura.
  • Asignación de no escritura (también llamada escritura-no asignación o escritura alrededor ): los datos en la ubicación de escritura perdida no se cargan en la caché y se escriben directamente en el almacén de respaldo. En este enfoque, los datos se cargan en la caché solo en caso de fallas de lectura.

Tanto las políticas de escritura simultánea como las de escritura diferida pueden utilizar cualquiera de estas políticas de errores de escritura, pero normalmente se combinan de esta manera: [5]

  • Una caché de escritura diferida utiliza la asignación de escritura, esperando escrituras posteriores (o incluso lecturas) en la misma ubicación, que ahora está almacenada en caché.
  • Una caché de escritura simultánea utiliza asignación de no escritura. Aquí, las escrituras posteriores no tienen ninguna ventaja, ya que aún deben escribirse directamente en la tienda de respaldo.

Las entidades distintas de la caché pueden cambiar los datos en el almacén de respaldo, en cuyo caso la copia en la caché puede quedar obsoleta o obsoleta . Alternativamente, cuando el cliente actualiza los datos en la caché, las copias de esos datos en otras cachés se volverá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 .

Ejemplos de cachés de hardware [ editar ]

Caché de CPU [ editar ]

Las memorias pequeñas en o cerca de la CPU pueden funcionar más rápido que la memoria principal mucho más grande . La mayoría de las CPU desde la década de 1980 han utilizado una o más cachés, a veces en niveles en cascada ; Los modernos microprocesadores integrados , de escritorio y de servidor de alta gama pueden tener hasta seis tipos de caché (entre niveles y funciones). [6] 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 GPU [ editar ]

Las unidades de procesamiento de gráficos (GPU) anteriores a menudo tenían cachés de textura de solo lectura limitados , e introdujeron texturas agrupadas por orden de Morton para mejorar la coherencia de la caché 2D . Las fallas de caché afectarían drásticamente el rendimiento, por ejemplo, si no se usara mipmapping . El almacenamiento en caché fue importante para aprovechar las transferencias de 32 bits (y más amplias) para datos de textura que a menudo eran tan pequeños como 4 bits por píxel, indexados en patrones complejos mediante coordenadas UV arbitrarias y transformaciones de perspectiva en el mapeo de texturas inverso .

A medida que las GPU avanzaban (especialmente con los sombreadores de cómputo GPGPU ), han desarrollado cachés cada vez más grandes y cada vez más generales, incluidos los cachés de instrucciones para los sombreadores , que exhiben una funcionalidad cada vez más común con los cachés de la 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 primitivas de sincronización entre subprocesos y operaciones atómicas , e interactuar con una MMU estilo CPU.

DSP [ editar ]

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, caché I dividida L1 y caché D). [7]

Búfer de búsqueda de traducción [ editar ]

Una unidad de gestión de memoria (MMU) que recupera entradas de la tabla de páginas de la memoria principal tiene un caché especializada, que se utiliza para registrar los resultados de direcciones virtuales a direcciones físicas traducciones. Esta caché especializada se denomina búfer de búsqueda de traducción (TLB). [8]

Caché en la red [ editar ]

Redes centradas en la información [ editar ]

La red centrada en la información (ICN) es un enfoque para evolucionar la infraestructura de Internet desde 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 el punto focal es la información identificada (o contenido o datos). Debido a la capacidad de almacenamiento en caché inherente de los nodos en un ICN, se puede ver como una red de cachés débilmente 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 del contenido contra el acceso no autorizado, que requiere cuidados y soluciones adicionales. [9]A diferencia de los servidores proxy, en ICN, la 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 además un tipo diferente de requisitos en las políticas de desalojo de contenido. En particular, las políticas de desalojo de ICN deben ser rápidas y ligeras. Se han propuesto varios esquemas de replicación y desalojo de caché para diferentes arquitecturas y aplicaciones de ICN.

Políticas [ editar ]

Reconocimiento del tiempo utilizado menos recientemente (TLRU) [ editar ]

El tiempo menos usado recientemente (TLRU) [10] es una variante de LRU diseñada para la situación en la que el contenido almacenado en la caché tiene una vida útil válida. El algoritmo es adecuado en aplicaciones de caché de red, como redes centradas en la información (ICN), redes de entrega de contenido.(CDNs) y redes distribuidas en general. TLRU introduce un nuevo término: TTU (tiempo de uso). TTU es una marca de tiempo de un contenido / página que estipula el tiempo de usabilidad 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 de red. En el algoritmo TLRU, cuando llega un fragmento de contenido, un nodo de caché calcula el valor TTU local en función del valor 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 de contenido se realiza en un subconjunto del contenido total almacenado en el nodo de caché. La TLRU asegura que el contenido de poca vida y menos popular debe ser reemplazado por el contenido entrante.

Usado recientemente con menor frecuencia (LFRU) [ editar ]

El último uso menos frecuente (LFRU) [11]El esquema de reemplazo de caché combina los beneficios de los esquemas LFU y LRU. LFRU es adecuado para aplicaciones de caché 'en red', como redes centradas en la información (ICN), redes de entrega de contenido (CDN) y redes distribuidas en general. En LFRU, la caché se divide en dos particiones llamadas particiones privilegiadas y no privilegiadas. La partición privilegiada se puede definir como partición protegida. Si el contenido es muy popular, se inserta en la partición privilegiada. El reemplazo de la partición privilegiada se realiza de la siguiente manera: LFRU desaloja el contenido de la partición no privilegiada, empuja el contenido de la partición privilegiada a la partición no privilegiada 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 aproximado (ALFU) 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 enviar los contenidos populares a una de las particiones privilegiadas.

Cachés de software [ editar ]

Caché de disco [ editar ]

Si bien las memorias caché de la CPU generalmente se administran completamente por hardware, una variedad de software administra otras memorias caché. 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 .

Mientras que el búfer de disco , que es una parte integrada de la unidad de disco duro, 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 .

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

Caché web [ editar ]

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 de los usuarios de la web. [12]

Los navegadores web emplean un caché web integrado, pero algunos proveedores de servicios de Internet (ISP) u organizaciones también utilizan 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 de igual a igual se almacenan en un caché de ISP para acelerar las transferencias P2P. De manera similar, existen equivalentes descentralizados, que permiten a las comunidades realizar la misma tarea para el tráfico P2P, por ejemplo, Corelli. [13]

Memorización [ editar ]

Una caché puede almacenar datos que se calculan a pedido en lugar de recuperarlos de una tienda 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é.

Otros cachés [ editar ]

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 simultánea 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 diferida cuando la comunicación no es confiable. Por ejemplo, los cachés de páginas web y los cachés del sistema de archivos de red del lado del cliente (como los de NFS o SMB ) suelen ser de solo lectura o escritura directa 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 en su caché. Por ejemplo, Google proporciona un enlace "En caché" junto a cada resultado de búsqueda. Esto puede resultar útil cuando las páginas web de un servidor web son inaccesibles temporal o permanentemente.

Otro tipo de almacenamiento en caché es el almacenamiento de resultados calculados que probablemente se necesitarán nuevamente, o la memorización . Por ejemplo, ccache es un programa que almacena en caché la salida de la compilación para acelerar las ejecuciones posteriores de la compilación.

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.

Una caché distribuida [14] utiliza hosts en red para proporcionar escalabilidad, confiabilidad y rendimiento a la aplicación. [15] Los anfitriones pueden estar coubicados o distribuidos en diferentes regiones geográficas.

Búfer frente a caché [ editar ]

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

Básicamente, 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 de rendimiento en la transferencia inicial (normalmente de escritura) de un elemento de datos, este aumento de 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 realicen un aumento de rendimiento en virtud de que se puede obtener del almacenamiento intermedio (más rápido) de la caché en lugar de la ubicación de residencia de los datos. Con las cachés de escritura, se puede realizar 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 caché, difiriendo la transferencia del elemento de datos a su almacenamiento residente en una etapa posterior o que ocurra como un proceso de fondo. Contrariamente al almacenamiento en búfer estricto, un proceso de almacenamiento en caché debe adherirse a un protocolo de coherencia de caché (potencialmente distribuido) para mantener la coherencia entre el caché 's almacenamiento intermedio y la ubicación donde residen los datos. Buffering, por otro lado,

  • Reduce el número de transferencias de datos que de otro modo serían novedosos entre los procesos de comunicación, lo que amortiza los gastos generales involucrados en varias transferencias pequeñas en lugar de transferencias más pequeñas y menores.
  • proporciona un intermediario para los procesos de comunicación que son incapaces de transferencias directas entre sí, o
  • asegura un tamaño o representación de datos mínimo requerido por al menos uno de los procesos de comunicación involucrados 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 efectivamente en el búfer; y en el caso de una escritura, principalmente se da cuenta de un aumento del rendimiento de 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 el individuo lee). En la práctica, el almacenamiento en caché casi siempre implica alguna forma 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 dispositivos periféricos. Por tanto, la memoria direccionable se utiliza como etapa intermedia. Además, tal 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 se pueden entregar en un orden diferente al de su producción. 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 el jitter 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 búfer se escriben en elbúfer una vez y leer 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 múltiples transferencias pequeñas se combinen en un bloque grande. Pero la principal ganancia de rendimiento se produce porque existe una buena posibilidad de que los mismos datos se lean de la memoria caché varias veces o que los datos escritos se lean pronto. El único propósito de una caché es reducir los accesos al almacenamiento subyacente más lento. La caché también suele ser una capa de abstracción diseñada para ser invisible desde la perspectiva de las capas vecinas.

Ver también [ editar ]

  • Coloración de caché
  • Jerarquía de caché
  • Algoritmo ajeno a la caché
  • Estampida de caché
  • Modelo de lenguaje de caché
  • Caché de manifiesto en HTML5
  • Poco sucio
  • Regla de los cinco minutos
  • Vista materializada
  • Jerarquía de memoria
  • Caché de ráfagas de canalización
  • Archivo temporal

Referencias [ editar ]

  1. ^ "Caché" . Diccionarios de Oxford . Diccionarios de Oxford . Consultado el 2 de agosto de 2016 .
  2. ^ "Caché" . Diccionario Macquarie . Macmillan Publishers Group Australia 2015 . Consultado el 21 de julio de 2015 .[ enlace muerto permanente ]
  3. ^ Zhong, Liang; Zheng, Xueqian; Liu, Yong; Wang, Mengting; Cao, Yang (febrero de 2020). "Maximización de la relación de aciertos de caché en las comunicaciones de dispositivo a dispositivo que se superponen a las redes celulares" . Comunicaciones de China . 17 (2): 232–238. doi : 10.23919 / jcc.2020.02.018 . ISSN 1673-5447 . S2CID 212649328 .  
  4. ^ Bottomley, James (1 de enero de 2004). "Comprensión del almacenamiento en caché" . Revista de Linux . Consultado el 1 de octubre de 2019 .
  5. ^ John L. Hennessy; David A. Patterson (2011). Arquitectura informática: un enfoque cuantitativo . Elsevier. págs. B – 12. ISBN 978-0-12-383872-8.
  6. ^ "Intel i7 de núcleo de pozo amplio con 128 MB de caché L4" .Menciona caché L4. Combinado con I-Cache y TLB separados, esto eleva el número total de cachés (niveles + funciones) a 6
  7. ^ "Descripción general de Qualcom Hexagon DSP SDK" .
  8. ^ Frank Uyeda (2009). "Lección 7: Gestión de la memoria" (PDF) . CSE 120: Principios de los sistemas operativos . UC San Diego . Consultado el 4 de diciembre de 2013 .
  9. ^ Bilal, Muhammad; et al. (2019). "Distribución segura de contenido protegido en redes centradas en la información". Revista de sistemas IEEE . 14 (2): 1–12. arXiv : 1907.11717 . Código bibliográfico : 2019arXiv190711717B . doi : 10.1109 / JSYST.2019.2931813 . S2CID 198967720 . 
  10. ^ Bilal, Muhammad; et al. (2017). "Política de gestión de caché de uso menos reciente (TLRU) consciente del tiempo en ICN". IEEE 16th International Conference on Advanced Communication Technology (ICACT) : 528–532. arXiv : 1801.00390 . Código bibliográfico : 2018arXiv180100390B . doi : 10.1109 / ICACT.2014.6779016 . ISBN 978-89-968650-3-2. S2CID  830503 .
  11. ^ Bilal, Muhammad; et al. (2017). "Un esquema de gestión de caché para la replicación y el desalojo de contenido eficiente en redes de caché". Acceso IEEE . 5 : 1692-1701. arXiv : 1702.04078 . Código Bib : 2017arXiv170204078B . doi : 10.1109 / ACCESS.2017.2669344 . S2CID 14517299 . 
  12. ^ Múltiple (wiki). "Caché de aplicaciones web" . Docforge . Archivado desde el original el 12 de diciembre de 2019 . Consultado el 24 de julio de 2013 .
  13. ^ Gareth Tyson; Andreas Mauthe; Sebastian Kaune; Mu Mu; Thomas Plagemann. Corelli: un servicio de replicación dinámica para admitir contenido dependiente de la latencia en redes comunitarias (PDF) . MMCN'09. Archivado desde el original (PDF) el 18 de junio de 2015.
  14. ^ Paul, S; Z Fei (1 de febrero de 2001). "Caching distribuido con control centralizado". Comunicaciones informáticas . 24 (2): 256–268. CiteSeerX 10.1.1.38.1094 . doi : 10.1016 / S0140-3664 (00) 00322-4 . 
  15. ^ Khan, Iqbal (julio de 2009). "Caché distribuido en el camino a la escalabilidad" . MSDN . 24 (7).

Lectura adicional [ editar ]

  • "Lo que todo programador debe saber sobre la memoria" por Ulrich Drepper
  • "Almacenamiento en caché en el entorno distribuido"