fbpx
Wikipedia

Caché (informática)

En informática, una caché, antememoria[1]​ o memoria intermedia[2]​ es un componente de hardware o software que guarda datos para que las solicitudes futuras de esos datos se puedan atender con mayor rapidez; los datos almacenados en una caché pueden ser el resultado de un cálculo anterior o el duplicado de datos almacenados en otro lugar, generalmente, da velocidad de acceso más rápido. Se produce un acierto de caché cuando los datos solicitados se pueden encontrar en esta, mientras que un fallo de caché ocurre cuando no están dichos datos. La lectura de la caché es más rápida 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.

Diagrama de una memoria caché de CPU.

Cuando hablamos de una caché de memoria nos referimos a la memoria de acceso rápido de una unidad central de procesamiento (CPU), que guarda temporalmente los datos recientes de los procesados (información).[3]

La memoria caché es un búfer especial de memoria que poseen las computadoras, que funciona de manera semejante a la memoria principal, pero es de menor tamaño y de acceso más rápido. Nace cuando las memorias ya no eran capaces de acompañar a la velocidad del procesador, por lo que se puede decir que es una memoria auxiliar, que posee una gran velocidad y eficiencia y es usada por el microprocesador para reducir el tiempo de acceso a datos ubicados en la memoria principal que se utilizan con más frecuencia.

La caché es una memoria que se sitúa entre la unidad central de procesamiento (CPU) y la memoria de acceso aleatorio (RAM) para acelerar el intercambio de datos.

Cuando se accede por primera vez a un dato, se hace una copia en la caché; los accesos siguientes se realizan a dicha copia, haciendo que sea menor el tiempo de acceso medio al dato. Cuando el microprocesador necesita leer o escribir en una ubicación en memoria principal, primero verifica si una copia de los datos está en la caché; si es así, el microprocesador de inmediato lee o escribe en la memoria caché, que es mucho más rápido que de la lectura o la escritura a la memoria principal.[4]

De forma similar, cuando hablamos de caché software hablamos de un espacio de memoria que contiene los datos calculados o copiados desde un espacio más lento. Un ejemplo habitual es hablar de la caché del navegador web, este espacio en disco contiene la información temporal descargada desde Internet o red interna, que por la naturaleza del sistema, siempre tendrá una velocidad más lenta que el disco físico de la máquina.

Etimología y ortografía

La palabra procede del inglés cache («escondite secreto para guardar mercancías, habitualmente de contrabando»), y esta a su vez del francés cache, («escondido u oculto»). A menudo, en español se escribe con tilde sobre la «e», del mismo modo como se venía escribiendo con anterioridad el neologismo «caché» («distinción o elegancia» o «cotización de un artista»), proveniente también del francés, pero no de la misma palabra, sino de cachet, («sello o salario»).

La Real Academia Española, en su Diccionario de la lengua española, solo reconoce la palabra con tilde,[3]​ aunque en la literatura especializada en arquitectura de computadoras (por ejemplo, las traducciones de libros de Andrew S. Tanenbaum, John L. Hennessy y David A. Patterson) se emplea siempre la palabra sin tilde, por ser anglosajona, y debe por ello escribirse en cursiva (cache).

Motivación

Existe una relación inherente entre el tamaño y la velocidad; dado que un recurso más grande implica mayores distancias físicas, pero también una compensación entre tecnologías costosas (como SRAM) versus productos más baratos, fácilmente producidos en masa (como DRAM o discos duros).

El almacenamiento en búfer proporcionado por una caché beneficia tanto el ancho de banda como la latencia:

Latencia

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 llegue a tener disponible los datos de una DRAM. Esto se mitiga leyendo en grandes fragmentos y almacenando los datos temporalmente en una memoria más rápida o cercana al procesador, con la esperanza de que las lecturas posteriores sean más rápidas. La predicción o la obtención previa explícita (en inglés prefetching) también pueden adivinar de dónde vendrán las lecturas futuras y realizar las solicitudes con anticipación; si se hace correctamente, la latencia se reduce a ser casi despreciable.

Ancho de banda

El uso de una caché también permite un mayor rendimiento (en inglés se usa el término throughput) del recurso subyacente, mediante el empaquetado de múltiples transferencias de pequeñas en solicitudes más grandes y más eficientes. En el caso de DRAM, esto podría servirse por un bus más ancho. Imagínese un programa escaneando bytes en un espacio de direcciones de 32 bits, pero atendido por un bus de datos de 128 bits fuera de chip; los accesos de byte individuales sin caché solo permitirían usar 1/16 del ancho de banda total, y el 80% del movimiento de datos serían direcciones. Leer trozos más grandes reduce la fracción de ancho de banda requerida para transmitir información de dirección.

Tipos de caché

La unidad caché es un sistema especial de almacenamiento de alta velocidad. Puede ser tanto un área reservada de la memoria principal como un dispositivo de almacenamiento de alta velocidad independiente.

Hay tres tipos de caché frecuentemente usados en computadoras personales: caché de disco, caché de pista y caché web.

Caché de disco

Es una porción de memoria RAM asociada a un disco, con el fin de almacenar datos recientemente leídos y agilizar su carga en el caso de que sean solicitados otra vez. Puede mejorar notablemente el rendimiento de las aplicaciones, dado que acceder a un byte de datos en RAM puede ser miles de veces más rápido que acceder a un byte del disco duro.

Caché de pista

Es una memoria de estado sólido tipo RAM cuyo uso generalmente se limita a las supercomputadoras por su costo tan elevado.

Caché web

Es la encargada de almacenar documentos web para reducir el ancho de banda consumido, la carga de los servidores y el retraso de las descargas. Existen 3 tipos de caché web: Privados que solo funcionan para un usuario, Compartidos sirven páginas a varios usuarios y Pasarela que funcionan a cargo del propio servidor original, de forma que los clientes no distinguen unos de otros. 

Composición interna

Los datos en la memoria caché se alojan en distintos niveles según la frecuencia de uso que tengan. La información puede transferirse entre los distintos niveles de forma inclusiva o exclusiva:

  • Caché Inclusivo: los datos solicitados se quedan en la memoria caché de procedencia, es decir, se mantiene una copia en dos o más niveles.
  • Caché Exclusivo: los datos solicitados se eliminan de la memoria caché de procedencia una vez transferidos al nuevo nivel.

Memoria caché nivel 1 (Caché L1)

También llamada memoria interna,[3]​ se encuentra en el núcleo del microprocesador. Es utilizada para almacenar y acceder a datos e instrucciones importantes y de uso frecuente, agilizando los procesos al ser el nivel que ofrece un tiempo de respuesta menor. Se divide en dos subniveles:

  • Nivel 1 Data Cache: se encarga de almacenar datos usados frecuentemente.
  • Nivel 1 Instruction Cache: se encarga de almacenar instrucciones usadas frecuentemente.

Memoria caché nivel 2 (Caché L2)

Se encarga de almacenar datos de uso frecuente, es mayor que la caché L1, pero a costa de ser más lenta, aun así es más rápida que la memoria principal (RAM). Puede ser inclusiva y contener una copia del nivel 1 además de información extra, o exclusiva y que su contenido sea totalmente diferente de la cache L1, proporcionando así mayor capacidad total.

Memoria caché nivel 3 (Caché L3)

Es más rápida que la memoria principal (RAM), pero más lenta y mayor que L2, ayuda a que el sistema guarde gran cantidad de información agilizando las tareas del procesador. En esta memoria se agiliza el acceso a datos e instrucciones que no fueron localizadas en L1 o L2. Al igual que la L2, puede ser inclusiva y contener una copia de L2 además de información extra o, por el contrario, ser exclusiva y contener información totalmente diferente a la de los niveles anteriores, consiguiendo así una mayor capacidad total.

Diseño

En el diseño de la memoria caché se deben considerar varios factores que influyen directamente en el rendimiento de la memoria y por lo tanto en su objetivo de aumentar la velocidad de respuesta de la jerarquía de memoria. Estos factores son las políticas de ubicación, extracción, reemplazo y escritura.

Política de ubicación

Decide dónde debe colocarse un bloque de memoria principal que entra en la memoria caché. Las más utilizadas son:

  • Directa: al bloque i-ésimo de memoria principal le corresponde la posición i módulo n, donde n es el número de bloques de la memoria caché. Cada bloque de la memoria principal tiene su posición en la caché y siempre en el mismo sitio. Su inconveniente es que cada bloque tiene asignada una posición fija en la memoria caché y ante continuas referencias a palabras de dos bloques con la misma localización en caché, hay continuos fallos habiendo sitio libre en la caché.
  • Asociativa: los bloques de la memoria principal se alojan en cualquier bloque de la memoria caché, comprobando solamente la etiqueta de todos y cada uno de los bloques para verificar acierto. Su principal inconveniente es la cantidad de comparaciones que realiza.
  • Asociativa por conjuntos: cada bloque de la memoria principal tiene asignado un conjunto de la caché, pero se puede ubicar en cualquiera de los bloques que pertenecen a dicho conjunto. Ello permite mayor flexibilidad que la correspondencia directa y menor cantidad de comparaciones que la totalmente asociativa.

Política de extracción

La política de extracción determina cuándo y qué bloque de memoria principal hay que traer a memoria caché. Existen dos políticas muy extendidas:

  • Por demanda: un bloque solo se trae a memoria caché cuando ha sido referenciado y no se encuentre en memoria caché.
  • Con prebúsqueda: cuando se referencia el bloque i-ésimo de memoria principal, se trae además el bloque (i+1)-ésimo. Esta política se basa en la propiedad de localidad espacial de los programas.

Política de reemplazo

Determina qué bloque de memoria caché debe abandonarla cuando no existe espacio disponible para un bloque entrante. Básicamente hay cuatro políticas:

  • Aleatoria: el bloque es reemplazado de forma aleatoria.
  • FIFO: se usa el algoritmo First In First Out (FIFO) (primero en entrar primero en salir) para determinar qué bloque debe abandonar la caché. Este algoritmo generalmente es poco eficiente.
  • Usado menos recientemente (LRU): sustituye el bloque que hace más tiempo que no se ha usado en la caché, traeremos a caché el bloque en cuestión y lo modificaremos ahí.
  • Usado con menor frecuencia (LFU): sustituye el bloque que ha experimentado menos referencias.

Política de actualización o escritura

Determinan el instante en que se actualiza la información en memoria principal cuando se hace una escritura en la memoria es ejecutada. Existen 2 casos diferentes:

Sobre la memoria caché

  • Escritura Inmediata: Se escribe a la vez en memoria caché y memoria principal para mantener una coherencia en todo momento.
  • Postescritura: El bloque donde se escribió queda marcado con un bit llamado bit de basura; cuando se reemplaza por la política de reemplazamiento se comprueba si el bit se encuentra activado, si lo está, se escribe la información de dicho bloque en la memoria principal. 

Sobre la memoria principal

  • Asignación en escritura: El bloque referenciado se copia de la memoria principal a la caché y después el bloque se envía a la CPU. 
  • No asignación en escritura: Envía el bloque directamente de la memoria principal a la CPU y al mismo tiempo la carga en la caché.

Optimización

Para una optimización en la manera en que se ingresa a la memoria caché y cómo se obtienen datos de ella, se han tomado en cuenta distintas técnicas que ayudarán a que haya menos reincidencia de fallos.

Mejorar el rendimiento.

  • Reducir fallos en la caché (miss rate).
  • Reducir penalizaciones por fallo (miss penalty).
  • Reducir el tiempo de acceso en caso de acierto (hit time).

Reducción de fallos

Tipos de fallos

Existen 3 tipos de fallos en una memoria caché (se conocen como clasificación 3C):

  • Forzosos (Compulsory o Cold): En el primer acceso a un bloque, este no se encuentra en la caché (fallos de arranque en frío o de primera referencia).
  • Capacidad (Capacity): La caché no puede contener todos los bloques necesarios durante la ejecución de un programa.
  • Conflicto (Conflict): Diferentes bloques deben ir necesariamente al mismo conjunto o línea cuando la estrategia es asociativa por conjuntos o de correspondencia directa (fallos de colisión).

En un sistema multiprocesador, existen 2 tipos más de fallos (clasificación 5C[5]​):

  • Coherencia (Coherence): El bloque se encuentra en caché en estado inválido ante una lectura o sin permiso de escritura ante una escritura debido a la solicitud del bloque por otro procesador.
  • Cobertura (Coverage): El bloque se encuentra en caché pero en estado inválido (sin permisos) debido a una invalidación emitida a causa de un reemplazo en el directorio, que causa la pérdida de la información de compartición.

Técnicas para reducir fallos

Existen diversas técnicas para reducir esos fallos en la caché, algunas son:

  • Incrementar el tamaño del bloque. Ventajas: Se reducen los fallos forzosos como sugiere el principio de localidad espacial. Inconvenientes: Aumentan los fallos por conflicto al reducirse el número de bloques de la caché y los fallos de capacidad si la caché es pequeña. La penalización por fallo aumenta al incrementarse el tiempo de transferencia del bloque.
  • Incremento de la asociatividad. Ventajas: Se reducen los fallos por conflicto. Inconveniente: Aumenta el tiempo de acceso medio al incrementarse el tiempo de acierto (multiplexión). También aumenta el coste debidos a los comparadores
  • Caché víctima. Consiste en añadir una pequeña caché totalmente asociativa (1-5 bloques) para almacenar bloques descartados por fallos de capacidad o conflicto. En caso de fallo, antes de acceder a la memoria principal se accede a esta caché. Si el bloque buscado se encuentra en ella, se intercambian los bloques de ambas cachés.
  • Optimización del compilador. El compilador reordena el código de manera que por la forma en cómo se hacen los accesos, se reducen los fallos de caché.

Reducción de tiempo de acceso

  • Cachés pequeñas y simples. Las cachés pequeñas permiten tiempos de acierto reducidos pero tienen poca capacidad.

En las cachés de correspondencia, la comprobación de la etiqueta y el acceso al dato, se hace al mismo tiempo.

  • Evitar la traducción de direcciones. Evita la traducción durante la indexación de la caché (consiste en almacenar direcciones de la caché, evitando así la traducción de direcciones virtuales a físicas en caso de acierto)
  • Escrituras en pipeline para aciertos en escritura rápidos. Consiste en crear un pipeline para las operaciones de escritura, de manera que la escritura actual se hace solapada en el tiempo con la comparación de etiquetas de la escritura siguiente[6]

Véase también

Referencias

  1. 2009. Diccionario enciclopédico Vox 1. Larousse Editorial S. L.
  2. Real Academia Española y Asociación de Academias de la Lengua Española (2005). «caché». Diccionario panhispánico de dudas. Madrid: Santillana. ISBN 978-8-429-40623-8. 
  3. Real Academia Española y Asociación de Academias de la Lengua Española. «caché». Diccionario de la lengua española (23.ª edición). Consultado el 31 de julio de 2014. 
  4. Behrouz A. Forouzan, Sophia Chung Fegan (2003). Foundations of Computer Science: From Data Manipulation to Theory of Computation. Cengage Learning Editores. ISBN 9789706862853. 
  5. Ros, Alberto; Cuesta, Blas; Fernández-Pascual, Ricardo; Gómez, María E.; Acacio, Manuel E.; Robles, Antonio; García, José M.; Duato, José (2010). «EMC2: Extending Magny-Cours Coherence for Large-Scale Servers». 17th International Conference on High Performance Computing (HiPC): 1--10. doi:10.1109/HIPC.2010.5713176. 
  6. «Técnicas de aumento de prestaciones para memoria y E/S». Osan Lopez L. 18 de septiembre de 2015. Consultado el 29 de noviembre de 2017. 

Enlaces externos

  • Artículo sobre la caché
  • Ejemplo de cache en PHP
  • Myths Programmers Believe about CPU Caches
  •   Datos: Q165596
  •   Multimedia: Cache

caché, informática, informática, caché, antememoria, memoria, intermedia, componente, hardware, software, guarda, datos, para, solicitudes, futuras, esos, datos, puedan, atender, mayor, rapidez, datos, almacenados, caché, pueden, resultado, cálculo, anterior, . En informatica una cache antememoria 1 o memoria intermedia 2 es un componente de hardware o software que guarda datos para que las solicitudes futuras de esos datos se puedan atender con mayor rapidez los datos almacenados en una cache pueden ser el resultado de un calculo anterior o el duplicado de datos almacenados en otro lugar generalmente da velocidad de acceso mas rapido Se produce un acierto de cache cuando los datos solicitados se pueden encontrar en esta mientras que un fallo de cache ocurre cuando no estan dichos datos La lectura de la cache es mas rapida que volver a calcular un resultado o leer desde un almacen de datos mas lento por lo tanto cuantas mas solicitudes se puedan atender desde la memoria cache mas rapido funcionara el sistema Diagrama de una memoria cache de CPU Cuando hablamos de una cache de memoria nos referimos a la memoria de acceso rapido de una unidad central de procesamiento CPU que guarda temporalmente los datos recientes de los procesados informacion 3 La memoria cache es un bufer especial de memoria que poseen las computadoras que funciona de manera semejante a la memoria principal pero es de menor tamano y de acceso mas rapido Nace cuando las memorias ya no eran capaces de acompanar a la velocidad del procesador por lo que se puede decir que es una memoria auxiliar que posee una gran velocidad y eficiencia y es usada por el microprocesador para reducir el tiempo de acceso a datos ubicados en la memoria principal que se utilizan con mas frecuencia La cache es una memoria que se situa entre la unidad central de procesamiento CPU y la memoria de acceso aleatorio RAM para acelerar el intercambio de datos Cuando se accede por primera vez a un dato se hace una copia en la cache los accesos siguientes se realizan a dicha copia haciendo que sea menor el tiempo de acceso medio al dato Cuando el microprocesador necesita leer o escribir en una ubicacion en memoria principal primero verifica si una copia de los datos esta en la cache si es asi el microprocesador de inmediato lee o escribe en la memoria cache que es mucho mas rapido que de la lectura o la escritura a la memoria principal 4 De forma similar cuando hablamos de cache software hablamos de un espacio de memoria que contiene los datos calculados o copiados desde un espacio mas lento Un ejemplo habitual es hablar de la cache del navegador web este espacio en disco contiene la informacion temporal descargada desde Internet o red interna que por la naturaleza del sistema siempre tendra una velocidad mas lenta que el disco fisico de la maquina Indice 1 Etimologia y ortografia 2 Motivacion 2 1 Latencia 2 2 Ancho de banda 3 Tipos de cache 3 1 Cache de disco 3 2 Cache de pista 3 3 Cache web 4 Composicion interna 4 1 Memoria cache nivel 1 Cache L1 4 2 Memoria cache nivel 2 Cache L2 4 3 Memoria cache nivel 3 Cache L3 5 Diseno 5 1 Politica de ubicacion 5 2 Politica de extraccion 5 3 Politica de reemplazo 5 4 Politica de actualizacion o escritura 5 4 1 Sobre la memoria cache 5 4 2 Sobre la memoria principal 6 Optimizacion 6 1 Mejorar el rendimiento 6 2 Reduccion de fallos 6 2 1 Tipos de fallos 6 2 2 Tecnicas para reducir fallos 6 2 3 Reduccion de tiempo de acceso 7 Vease tambien 8 Referencias 9 Enlaces externosEtimologia y ortografia EditarLa palabra procede del ingles cache escondite secreto para guardar mercancias habitualmente de contrabando y esta a su vez del frances cache escondido u oculto A menudo en espanol se escribe con tilde sobre la e del mismo modo como se venia escribiendo con anterioridad el neologismo cache distincion o elegancia o cotizacion de un artista proveniente tambien del frances pero no de la misma palabra sino de cachet sello o salario La Real Academia Espanola en su Diccionario de la lengua espanola solo reconoce la palabra con tilde 3 aunque en la literatura especializada en arquitectura de computadoras por ejemplo las traducciones de libros de Andrew S Tanenbaum John L Hennessy y David A Patterson se emplea siempre la palabra sin tilde por ser anglosajona y debe por ello escribirse en cursiva cache Motivacion EditarExiste una relacion inherente entre el tamano y la velocidad dado que un recurso mas grande implica mayores distancias fisicas pero tambien una compensacion entre tecnologias costosas como SRAM versus productos mas baratos facilmente producidos en masa como DRAM o discos duros El almacenamiento en bufer proporcionado por una cache beneficia tanto el ancho de banda como la latencia Latencia Editar Un recurso mas 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 llegue a tener disponible los datos de una DRAM Esto se mitiga leyendo en grandes fragmentos y almacenando los datos temporalmente en una memoria mas rapida o cercana al procesador con la esperanza de que las lecturas posteriores sean mas rapidas La prediccion o la obtencion previa explicita en ingles prefetching tambien pueden adivinar de donde vendran las lecturas futuras y realizar las solicitudes con anticipacion si se hace correctamente la latencia se reduce a ser casi despreciable Ancho de banda Editar El uso de una cache tambien permite un mayor rendimiento en ingles se usa el termino throughput del recurso subyacente mediante el empaquetado de multiples transferencias de pequenas en solicitudes mas grandes y mas eficientes En el caso de DRAM esto podria servirse por un bus mas ancho Imaginese un programa escaneando bytes en un espacio de direcciones de 32 bits pero atendido por un bus de datos de 128 bits fuera de chip los accesos de byte individuales sin cache solo permitirian usar 1 16 del ancho de banda total y el 80 del movimiento de datos serian direcciones Leer trozos mas grandes reduce la fraccion de ancho de banda requerida para transmitir informacion de direccion Tipos de cache EditarLa unidad cache es un sistema especial de almacenamiento de alta velocidad Puede ser tanto un area reservada de la memoria principal como un dispositivo de almacenamiento de alta velocidad independiente Hay tres tipos de cache frecuentemente usados en computadoras personales cache de disco cache de pista y cache web Cache de disco Editar Es una porcion de memoria RAM asociada a un disco con el fin de almacenar datos recientemente leidos y agilizar su carga en el caso de que sean solicitados otra vez Puede mejorar notablemente el rendimiento de las aplicaciones dado que acceder a un byte de datos en RAM puede ser miles de veces mas rapido que acceder a un byte del disco duro Cache de pista Editar Es una memoria de estado solido tipo RAM cuyo uso generalmente se limita a las supercomputadoras por su costo tan elevado Cache web Editar Es la encargada de almacenar documentos web para reducir el ancho de banda consumido la carga de los servidores y el retraso de las descargas Existen 3 tipos de cache web Privados que solo funcionan para un usuario Compartidos sirven paginas a varios usuarios y Pasarela que funcionan a cargo del propio servidor original de forma que los clientes no distinguen unos de otros Composicion interna EditarLos datos en la memoria cache se alojan en distintos niveles segun la frecuencia de uso que tengan La informacion puede transferirse entre los distintos niveles de forma inclusiva o exclusiva Cache Inclusivo los datos solicitados se quedan en la memoria cache de procedencia es decir se mantiene una copia en dos o mas niveles Cache Exclusivo los datos solicitados se eliminan de la memoria cache de procedencia una vez transferidos al nuevo nivel Memoria cache nivel 1 Cache L1 Editar Tambien llamada memoria interna 3 se encuentra en el nucleo del microprocesador Es utilizada para almacenar y acceder a datos e instrucciones importantes y de uso frecuente agilizando los procesos al ser el nivel que ofrece un tiempo de respuesta menor Se divide en dos subniveles Nivel 1 Data Cache se encarga de almacenar datos usados frecuentemente Nivel 1 Instruction Cache se encarga de almacenar instrucciones usadas frecuentemente Memoria cache nivel 2 Cache L2 Editar Se encarga de almacenar datos de uso frecuente es mayor que la cache L1 pero a costa de ser mas lenta aun asi es mas rapida que la memoria principal RAM Puede ser inclusiva y contener una copia del nivel 1 ademas de informacion extra o exclusiva y que su contenido sea totalmente diferente de la cache L1 proporcionando asi mayor capacidad total Memoria cache nivel 3 Cache L3 Editar Es mas rapida que la memoria principal RAM pero mas lenta y mayor que L2 ayuda a que el sistema guarde gran cantidad de informacion agilizando las tareas del procesador En esta memoria se agiliza el acceso a datos e instrucciones que no fueron localizadas en L1 o L2 Al igual que la L2 puede ser inclusiva y contener una copia de L2 ademas de informacion extra o por el contrario ser exclusiva y contener informacion totalmente diferente a la de los niveles anteriores consiguiendo asi una mayor capacidad total Diseno EditarEn el diseno de la memoria cache se deben considerar varios factores que influyen directamente en el rendimiento de la memoria y por lo tanto en su objetivo de aumentar la velocidad de respuesta de la jerarquia de memoria Estos factores son las politicas de ubicacion extraccion reemplazo y escritura Politica de ubicacion Editar Decide donde debe colocarse un bloque de memoria principal que entra en la memoria cache Las mas utilizadas son Directa al bloque i esimo de memoria principal le corresponde la posicion i modulo n donde n es el numero de bloques de la memoria cache Cada bloque de la memoria principal tiene su posicion en la cache y siempre en el mismo sitio Su inconveniente es que cada bloque tiene asignada una posicion fija en la memoria cache y ante continuas referencias a palabras de dos bloques con la misma localizacion en cache hay continuos fallos habiendo sitio libre en la cache Asociativa los bloques de la memoria principal se alojan en cualquier bloque de la memoria cache comprobando solamente la etiqueta de todos y cada uno de los bloques para verificar acierto Su principal inconveniente es la cantidad de comparaciones que realiza Asociativa por conjuntos cada bloque de la memoria principal tiene asignado un conjunto de la cache pero se puede ubicar en cualquiera de los bloques que pertenecen a dicho conjunto Ello permite mayor flexibilidad que la correspondencia directa y menor cantidad de comparaciones que la totalmente asociativa Politica de extraccion Editar La politica de extraccion determina cuando y que bloque de memoria principal hay que traer a memoria cache Existen dos politicas muy extendidas Por demanda un bloque solo se trae a memoria cache cuando ha sido referenciado y no se encuentre en memoria cache Con prebusqueda cuando se referencia el bloque i esimo de memoria principal se trae ademas el bloque i 1 esimo Esta politica se basa en la propiedad de localidad espacial de los programas Politica de reemplazo Editar Determina que bloque de memoria cache debe abandonarla cuando no existe espacio disponible para un bloque entrante Basicamente hay cuatro politicas Aleatoria el bloque es reemplazado de forma aleatoria FIFO se usa el algoritmo First In First Out FIFO primero en entrar primero en salir para determinar que bloque debe abandonar la cache Este algoritmo generalmente es poco eficiente Usado menos recientemente LRU sustituye el bloque que hace mas tiempo que no se ha usado en la cache traeremos a cache el bloque en cuestion y lo modificaremos ahi Usado con menor frecuencia LFU sustituye el bloque que ha experimentado menos referencias Vease tambien Algoritmos de reemplazo de paginas Politica de actualizacion o escritura Editar Determinan el instante en que se actualiza la informacion en memoria principal cuando se hace una escritura en la memoria es ejecutada Existen 2 casos diferentes Sobre la memoria cache Editar Escritura Inmediata Se escribe a la vez en memoria cache y memoria principal para mantener una coherencia en todo momento Postescritura El bloque donde se escribio queda marcado con un bit llamado bit de basura cuando se reemplaza por la politica de reemplazamiento se comprueba si el bit se encuentra activado si lo esta se escribe la informacion de dicho bloque en la memoria principal Sobre la memoria principal Editar Asignacion en escritura El bloque referenciado se copia de la memoria principal a la cache y despues el bloque se envia a la CPU No asignacion en escritura Envia el bloque directamente de la memoria principal a la CPU y al mismo tiempo la carga en la cache Optimizacion EditarPara una optimizacion en la manera en que se ingresa a la memoria cache y como se obtienen datos de ella se han tomado en cuenta distintas tecnicas que ayudaran a que haya menos reincidencia de fallos Mejorar el rendimiento Editar Reducir fallos en la cache miss rate Reducir penalizaciones por fallo miss penalty Reducir el tiempo de acceso en caso de acierto hit time Reduccion de fallos Editar Tipos de fallos Editar Existen 3 tipos de fallos en una memoria cache se conocen como clasificacion 3C Forzosos Compulsory o Cold En el primer acceso a un bloque este no se encuentra en la cache fallos de arranque en frio o de primera referencia Capacidad Capacity La cache no puede contener todos los bloques necesarios durante la ejecucion de un programa Conflicto Conflict Diferentes bloques deben ir necesariamente al mismo conjunto o linea cuando la estrategia es asociativa por conjuntos o de correspondencia directa fallos de colision En un sistema multiprocesador existen 2 tipos mas de fallos clasificacion 5C 5 Coherencia Coherence El bloque se encuentra en cache en estado invalido ante una lectura o sin permiso de escritura ante una escritura debido a la solicitud del bloque por otro procesador Cobertura Coverage El bloque se encuentra en cache pero en estado invalido sin permisos debido a una invalidacion emitida a causa de un reemplazo en el directorio que causa la perdida de la informacion de comparticion Tecnicas para reducir fallos Editar Existen diversas tecnicas para reducir esos fallos en la cache algunas son Incrementar el tamano del bloque Ventajas Se reducen los fallos forzosos como sugiere el principio de localidad espacial Inconvenientes Aumentan los fallos por conflicto al reducirse el numero de bloques de la cache y los fallos de capacidad si la cache es pequena La penalizacion por fallo aumenta al incrementarse el tiempo de transferencia del bloque Incremento de la asociatividad Ventajas Se reducen los fallos por conflicto Inconveniente Aumenta el tiempo de acceso medio al incrementarse el tiempo de acierto multiplexion Tambien aumenta el coste debidos a los comparadoresCache victima Consiste en anadir una pequena cache totalmente asociativa 1 5 bloques para almacenar bloques descartados por fallos de capacidad o conflicto En caso de fallo antes de acceder a la memoria principal se accede a esta cache Si el bloque buscado se encuentra en ella se intercambian los bloques de ambas caches Optimizacion del compilador El compilador reordena el codigo de manera que por la forma en como se hacen los accesos se reducen los fallos de cache Reduccion de tiempo de acceso Editar Caches pequenas y simples Las caches pequenas permiten tiempos de acierto reducidos pero tienen poca capacidad En las caches de correspondencia la comprobacion de la etiqueta y el acceso al dato se hace al mismo tiempo Evitar la traduccion de direcciones Evita la traduccion durante la indexacion de la cache consiste en almacenar direcciones de la cache evitando asi la traduccion de direcciones virtuales a fisicas en caso de acierto Escrituras en pipeline para aciertos en escritura rapidos Consiste en crear un pipeline para las operaciones de escritura de manera que la escritura actual se hace solapada en el tiempo con la comparacion de etiquetas de la escritura siguiente 6 Vease tambien EditarUnidad central de procesamiento Arquitectura de von Neumann Cache web Cache de discoReferencias Editar 2009 Diccionario enciclopedico Vox 1 Larousse Editorial S L Real Academia Espanola y Asociacion de Academias de la Lengua Espanola 2005 cache Diccionario panhispanico de dudas Madrid Santillana ISBN 978 8 429 40623 8 a b c Real Academia Espanola y Asociacion de Academias de la Lengua Espanola cache Diccionario de la lengua espanola 23 ª edicion Consultado el 31 de julio de 2014 Behrouz A Forouzan Sophia Chung Fegan 2003 Foundations of Computer Science From Data Manipulation to Theory of Computation Cengage Learning Editores ISBN 9789706862853 Ros Alberto Cuesta Blas Fernandez Pascual Ricardo Gomez Maria E Acacio Manuel E Robles Antonio Garcia Jose M Duato Jose 2010 EMC2 Extending Magny Cours Coherence for Large Scale Servers 17th International Conference on High Performance Computing HiPC 1 10 doi 10 1109 HIPC 2010 5713176 Tecnicas de aumento de prestaciones para memoria y E S Osan Lopez L 18 de septiembre de 2015 Consultado el 29 de noviembre de 2017 Enlaces externos EditarArticulo sobre la cache Ejemplo de cache en PHP Myths Programmers Believe about CPU Caches Datos Q165596 Multimedia Cache Obtenido de https es wikipedia org w index php title Cache informatica amp oldid 139040043, wikipedia, wiki, leyendo, leer, libro, biblioteca,

español

, española, descargar, gratis, descargar gratis, mp3, video, mp4, 3gp, jpg, jpeg, gif, png, imagen, música, canción, película, libro, juego, juegos