miércoles, 4 de noviembre de 2015

Etimología


  • ·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, («escondrijo o escondite»). A menudo, en español se escribe con tilde sobre la «e» del mismo modo como el que se venía escribiendo con anterioridad al neologismo la palabra «caché» («distinción o elegancia» o «cotización de un artista»), proveniente de un étimo también francés, pero totalmente distinto: cachet, («sello» o «salario»).


  • La Real Academia 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 (por ejemplo, las traducciones de libros de los autores Andrew S. Tanenbaum, John L. Hennessy y David A. Patterson) se emplea siempre la palabra sin tilde por ser anglosajona y debería escribirse en cursiva (cache).

Optimización

Técnicas para reducir fallos

Existen diversas técnicas para reducir esos fallos en la caché:
  • 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. 
  • Incremento de la asociatividad. Ventajas: Se reducen los fallos por conflicto. Inconvenientes: Aumenta el tiempo de acceso medio al incrementarse el tiempo de acierto.
  • Caché víctima. Consiste en añadir una pequeña caché totalmente asociativa, 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 re-ordena el código de manera que por la forma en cómo se hacen los accesos se reducen los fallos de 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 penalti).
  • Reducir el tiempo de acceso en caso de acierto (hit time).

Reduccion de fallos:

3 tipos de fallos en una memoria caché:
  • Forzosos (Compulsory): En el primer acceso a un bloque éste 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).


Diseño

En el diseño de la memoria caché se deben considerar varios factores: 

Política de ubicación

Decide dónde debe colocarse un bloque de memoria principal que entra en la memoria caché.
-Directa: 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é. 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.

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é.
-Por demanda- un bloque sólo se trae a memoria caché cuando ha sido referenciado y no se encuentre en memoria caché.
-Con prebusqueda- 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.
Aleatorioel bloque es reemplazado de forma aleatoria.
FIFO- se usa el algoritmo First In First Out para determinar qué bloque debe abandonar la caché. 
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.
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é.
  2. Debe eliminarse una línea de la caché, entonces se actualiza la memoria principal  antes de proceder a la eliminación.

jueves, 22 de octubre de 2015

Composición interna


Los niveles según la frecuencia del uso:
Nivel 1 (caché L1)- tambien se puede llamar memoria interna se encuentra en el nucleo del microprocesador. Se puede utilizar para acceder a datos personales y de uso frecuente, tiene una capacidad de hasta 128 kb. Se puede dividir en dos:
- Data cache- almacena datos usados fecuentemente y cuando sea necesario volver a utilizarlos.
- Instrucciones cache- se encarga de almacenar instrucciones usadas frecuentemente y cuando sea necesario volver a utilizarlas.

Nivel 2 (caché L2)- Almacena datos de uso frecuente. Es más lenta que la cache L1, pero más rápida que la memoria RAM.
 -Caché Exclusivo- Los datos solicitados se eliminan de la memoria caché L2.
-Caché InclusivoLos datos solicitados se quedan en la memoria caché L2.

Nivel 3 (caché L3)- Genera una copia de L2.  Es más rápida que la memoria principal (RAM), pero más lenta que L2.





RAM caché y caché de disco

·El sistema especial de almacenamiento de alta velocidad se denomina unidad cache. Ya bien sea un area reservada de la memoria principal como un dispositivo de almacenamiento de alta velocidad.
TIPOS
Memoria caché y caché de disco
  • La memoria cache (RAM) es usada como memoria principal es efectiva dado que los programas acceden una otra y vez a los mismos datos.
  • La cache de disco trabaja sobre los mismos principios que la memoria cache pero en lugar de usar SRAM de alta velocidad, usa la convencional memoria principal.















Memoria Caché

·Es la memoria de acceso rápido de una computadora, guarda los elementos recientemente guardados(temporalmente).

·La memoria caché es un bufer especial, funciona de manera igual a la memoria principal, pero con acceso directo y menor tamaño.


·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.

AL ACCEDER A UN DATO 
·Lo primero es hacer una copia en la caché.
Si el microprocesador necesita leer o escribir en una ubicacion en memoria principal lo primero es verificar  si una copia de los datos esta en la cache al ser asi el microprocesador lee o escribe en la memoria cache que es mas rapido que de la lectura o la escritura a la memoria principal.