miércoles, 13 de mayo de 2015

MEMORIA CACHÉ

 INTRODUCCIÓN:

Una memoria caché es una memoria en la que se almacenas una serie de datos para su rápido acceso. Existen muchas memorias caché (de disco, de sistema, incluso de datos, como es el caso de la caché de Google), pero en este tutorial nos vamos a centrar en la caché de los procesadores. Básicamente, la memoria caché de un procesador es un tipo de memoria volátil (del tipo RAM), pero de una gran velocidad. En la actualidad esta memoria está integrada en el procesador, y su cometido es almacenar una serie de instrucciones y datos a los que el procesador accede continuamente, con la finalidad de que estos accesos sean instantáneos. Estas instrucciones y datos son aquellas a las que el procesador necesita estar accediendo de forma continua, por lo que para el rendimiento del procesador es imprescindible que este acceso sea lo más rápido y fluido posible.
Con el objetivo de lograr un tiempo de acceso menor a los datos almacenados en distintos tipos de memoria, existen sistemas de hardware o software llamados caché, los cuales almacenan estos datos de forma duplicada. La memoria caché contenida dentro de una CPU está más cercana que la memoria RAM o memoria principal de la computadora, y es por esta razón que mejora la capacidad de procesamiento del mismo.

ETÍMOLOGIA:

La palabra procede de la voz inglesa cache («escondite secreto para guardar mercancías, habitualmente de contrabando») y esta a su vez de la francesa cache, es la Memoria de acceso rápido de una computadora, que guarda temporalmente las últimas informaciones procesadas.
La Real Academis Española, en el Diccionario de la Lengua Española, sólo reconoce la palabra con tilde,  aunque en la literatura especializada en Arquitectura de computadoras, se emplea siempre la palabra sin tilde por ser anglosajona y debería escribirse en cursiva (cache).

Fuente: http://es.wikipedia.org/wiki/Cach%C3%A9_%28inform%C3%A1tica%29 



COMPOSICIÓN:

La memoria cache está estructurada por celdas, donde cada celda almacena un byte. La entidad básica de almacenamiento la conforman las filas, llamados también líneas de cache. Por ejemplo, una cache L2 de 512 KB se distribuye en 16.384 filas y 63 columnas
Cuando se copia o se escribe información de la RAM por cada movimiento siempre cubre una línea de cache.
La memoria cache tiene incorporado un espacio de almacenamiento llamado Tag RAM, que indica a qué porción de la RAM se halla asociada cada línea de cache, es decir, traduce una dirección de RAM en una línea de cache concreta.

 TIPOS:

Memoria caché nivel 1 (Caché L1)

También llamada memoria interna, se encuentra en el núcleo del microprocesador. Es utilizada para acceder a datos importantes y de uso frecuente, es el nivel en el que el tiempo de respuesta es menor. Su capacidad es de hasta 128 kb. Este nivel se divide en dos:
  • Nivel 1 Data Cache: Se encarga de almacenar datos usados frecuentemente y cuando sea necesario volver a utilizarlos, accede a ellos en muy poco tiempo, por lo que se agilizan los procesos.
  • Nivel 1 Instruction Cache: Se encarga de almacenar instrucciones usadas frecuentemente y cuando sea necesario volver a utilizarlas, inmediatamente las recupera, por lo que se agilizan los procesos.

Memoria caché nivel 2 (Caché L2)

Se encarga de almacenar datos de uso frecuente. Es más lenta que la caché L1, pero más rápida que la memoria principal (RAM). Se encuentra en el procesador, mas no es su núcleo. Genera una copia del nivel 1. Su capacidad es de hasta 1 Mb.
  • Caché Exclusivo: Los datos solicitados se eliminan de la memoria caché L2.
  • Caché Inclusivo: Los datos solicitados se quedan en la memoria caché L2.

Memoria caché nivel 3 (Caché L3)

Está memoria se encuentra en algunos procesadores modernos y genera una copia a la L2. Es más rápida que la memoria principal (RAM), pero más lenta que L2. En esta memoria se agiliza el acceso a datos e instrucciones que no fueron localizadas en L1 o L2.
Es generalmente de un tamaño mayor y ayuda a que el sistema guarde gran cantidad de información agilizando las tareas de el procesador
 
Fuente:   https://datosuno.wordpress.com/unidad-3/memoria-cache/
               http://es.wikipedia.org/wiki/Cach%C3%A9_%28inform%C3%A1tica%29

DISEÑO: 

Lo primero que hay que decidir en un diseño de caché es la línea de caché donde se debería almacenar un bloque cargado desde memoria. Pensemos en un sistema que use direccionamiento de 32 bits. Si el tamaño de un bloque es de 64(2 elevado a 6)bytes, los 6 bits de la parte inferior de la dirección -el offset- determina a que byte de dentro del bloque se esta direccionando. Si la caché consta de 1024 de estas líneas de 64 bytes los siguientes 10 bits de la dirección determina en que línea esta colocado el bloque . 

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 sólo 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.
  • Menos recientemente usado (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í.
  • Menos frecuencias usadas (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 caché.
  • Escritura Inmediata: Se escribe a la vez en Memoria caché y Memoria principal. Desventaja: genera cuello de botella.
  • Escritura Aplazada: Actualiza únicamente la Memoria caché luego de la modificación de sus datos. Cuando el bus de sistema se encuentra libre, actualiza la memoria principal. Esto puede generar que los periféricos lean datos erróneos, pero es poco frecuente.
  • Escritura Obligada: Actualiza únicamente la Memoria caché luego de la modificación de sus datos. Cuando no hay otra alternativa, actualiza la memoria principal. Esto puede producirse por cualquiera de estas causas:
  1. Se accede a la posición de memoria principal modificada en la caché. Antes de permitir la lectura/escritura, debe actualizarse el dato en la memoria principal.
  2. Debe eliminarse una línea de la caché, entonces se actualiza la memoria principal (en caso de ser necesario) antes de proceder a la eliminación. 



¿QUE ES Y PARA QUE SIRVE LA MEMORIA CACHÉ?

La cache es la solución al problema de rendimiento del sistema de memoria. Es muy pequeña y está incluida en el interior del micro. Su función es sencilla, conseguir que los datos más usados estén lo más cerca del procesador para ser accedidos de la manera más rápida posible.

PARA QUE SIRVE: Se organiza en niveles, de menor a mayor tamaño según lo alejada que esté del micro. Si el procesador necesita un dato de la memoria se comprueba si este se encuentra en el primer nivel. En caso de no encontrarlo, se busca en el segundo nivel y si no en el tercero. Todo se acelera si se colocan los datos más utilizados en los niveles más cercanos al procesador.

Cada uno de estos niveles tiene un bloque de control el cual se encarga de almacenar y poner los datos a disposición del micro. El tiempo que tarda en buscar la información es proporcional al tamaño de la propia memoria que administra.  


Fuente: http://computadoras.about.com/od/Preguntas-Frecuentes-elegir-pc/a/Memoria-Cache-Que-Es-Y-Para-Que-Sirve.htm

RENDIMIENTO DE LA CACHÉ:

El funcionamiento de la caché de lectura se parece al de un adivino; debe anticipar lo que ocurrirá en el futuro.   Si el dispositivo que está siendo cacheado encuentra los datos en la caché, habrá un éxito ("hit"), en caso contrario, un fracaso ("miss").  Los sistemas de caché actuales son capaces de proporcionar una tasa de éxitos superior al 90%.
Como puede figurarse el lector, construir un mecanismo de caché no es una tarea baladí.  Se requieren esquemas de funcionamiento que atiendan de forma simultanea y balanceada diversos factores:
  • Discriminar que información debe ser almacenada y cual descartada.
  • Decidir la organización interna de este almacenamiento.
  • Manejar las peticiones de lectura.  Esto exige disponer de un mecanismo de intercepción de las peticiones del dispositivo que está siendo cacheado.
  • Manejar las peticiones de escritura.  Interceptar las peticiones de escritura del dispositivo a cachear.


INTEL Y AMD MEMORIA CACHÉ:

Tanto Intel como AMD no han incluido memoria caché L2 en algunas series para hacer productos más baratos. Sin embargo, no hay duda de que cuanto mejor e sla memoria caché (tanto L1 como L2), más eficiente será  la CPU y mayor será su rendimiento.
La caché L2 apareció por primera vez en los Intel Pentum Pro, siendo incorporada a continuación por los Intel Pentium II, aunque en ese caso no en el encapsulado del procesador, sino externamente (aunque dentro del procesador)


 Fuente: http://es.kioskea.net/contents/397-procesador