Memoria cache

1,055 views

Published on

Published in: Education
  • Be the first to comment

  • Be the first to like this

Memoria cache

  1. 1. MEMORIA CACHÉ
  2. 2. FUNDAMENTOS EINTRODUCCIÓNUn caché es un sistema especial dealmacenamiento de alta velocidad. Puede ser tantoun área reservada de la memoria principal comoun dispositivo de almacenamiento de altavelocidad independiente. Hay dos tipos de cachéfrecuentemente usados en las computadoraspersonales: memoria caché y caché de disco. Unamemoria caché, llamada también a vecesalmacenamiento caché o RAM caché, es una partede memoria RAM estática de alta velocidad(SRAM) más rápida que la RAM dinámica(DRAM) usada como memoria principal.
  3. 3. ESTRUCTURA DE LA MEMORIACACHÉLa memoria caché estáestructurado por celdas, dondecada celda almacena un byte.La entidad básica dealmacenamiento la conformanlas filas, llamados tambiénlíneas de caché. Por ejemplo,una caché L2 de 512 KB sedistribuye en 16.384 filas (16KB) y 32 columnas (32 bytes).
  4. 4. Caché de mapeo directo: La memoria RAM se divide en porciones de igual tamaño, deacuerdo a la cantidad de líneas de caché existan. Cada línea de caché es un recurso a compartirpor las direcciones de memoria de una porción diferente. Por ejemplo, si se dispone de unaRAM de 64 MB y la caché de 512 KB, cada línea podrá almacenar 32 de las 4.096 direccionesque contiene la porción de RAM asociada (64 MB/ 16.384 líneas = 4.096 bytes / línea).Caché completamente asociativa: Cada línea de caché se puede llenar con cualquier grupo deposiciones de la memoria RAM. En este caso, el porcentaje de acierto es máximo. En cambio, eltiempo de acceso es muy elevado, puesto que una posición de RAM puede estar en cualquierlínea de caché (esto es lento, incluso empleando algoritmos de búsqueda avanzados).Caché asociativa por conjuntos de N líneas: La caché se divide en conjuntos de N líneas, acada conjunto se le asocia un grupo de posiciones de RAM. Dentro del conjunto asignado, unaposición de RAM puede ir a parar a cualquiera de las N líneas que lo forman, es decir dentro decada conjunto la caché es totalmente asociativa. Esta situación es la más equilibrada, puesto quese trata de un compromiso entre las técnicas anteriores. Si se hace N=1, se tiene una caché. Demapeo directo. Si N es igual al número de líneas de la caché, se tiene una caché completamenteasociativa. Si se escoge un valor de N apropiado, se alcanza la solución óptima.
  5. 5. POLITICA DE UBICACIÓNDecide dónde debe colocarse un bloque de memoria principal que entra en lamemoria caché. Las más utilizadas son: Directa: Al bloque i-ésimo de memoria principal le corresponde la posicióni módulo n, donde n es el número de bloques de la memoria caché. Asociativa: Cualquier bloque de memoria principal puede ir en cualquierade los n bloques de la memoria caché. Asociativa por conjuntos: La memoria caché se divide en k conjuntos debloques, así al bloque i-ésimo de memoria principal le corresponde elconjunto i módulo k. Dicho bloque de memoria podrá ubicarse encualquier posición de ese conjunto.
  6. 6. POLÍTICAS DE SUSTITUCIÓNDetermina qué bloque de memoria caché debe abandonarla cuando no existe espaciodisponible para un bloque entrante. Básicamente hay cuatro políticas que son: Aleatoria: El bloque es reemplazado de forma aleatoria. FIFO: Se usa un algoritmo First In First Out FIFO (primero en entrar es elprimero en salir) para determinar qué bloque debe abandonar la caché. Estealgoritmo generalmente es poco eficiente. Menos recientemente usado (LRU): Se sustituye el bloque que hace más tiempoque no se ha usado en la caché, traeremos a caché el bloque en cuestión y lomodificaremos ahí. Menos frecuencias usadas (LFU): Se sustituye el bloque que ha experimentadomenos referencias.
  7. 7. POLÍTICAS DE ESTRUCTURALa política de extracción determina cuándo y qué bloque dememoria principal hay que traer a memoria caché. Existen dospolíticas muy extendidas: Por demanda: Un bloque sólo se trae a memoria caché cuandoha sido referenciado y no se lo encuentre en memoria principal. Con prebúsqueda: Cuando se referencia el bloque i-ésimo dememoria principal, se trae además el bloque (i+1)-ésimo. Estapolítica se basa en la propiedad de localidad espacial de losprogramas.
  8. 8. Tipos de cacheCaché internaEs una innovación relativamente reciente [3]; en realidad son dos, cadauna con una misión específica: Una para datos y otra parainstrucciones. Están incluidas en el procesador junto con su circuiteríade control, lo que significa tres cosas: comparativamente es muy cara;extremadamente rápida, y limitada en tamaño (en cada una de lascachés internas, los 386 tenían 8 KB; el 486 DX4 16 KB, y losprimeros Pentium 8 KB). Como puede suponerse, su velocidad deacceso es comparable a la de los registros, es decir, centenares de vecesmás rápida que la RAM
  9. 9. Caché externaEs más antigua que la interna, dado que hasta fecha "relativamente" recienteestas últimas eran impracticables. Es una memoria de acceso rápido incluidaen la placa base, que dispone de su propio bus y controlador independiente queintercepta las llamadas a memoria antes que sean enviadas a la RAM ( H2.2Buses locales).La caché externa típica es un banco SRAM ("Static Random Access Memory")de entre 128 y 256 KB. Esta memoria es considerablemente más rápida que laDRAM ("Dynamic Random Access Memory") convencional, aunque tambiénmucho más cara [5] (tenga en cuenta que un aumento de tamaño sobre losvalores anteriores no incrementa proporcionalmente la eficacia de la memoriacaché). Actualmente (2004) la tendencia es incluir esta caché en el procesador.Los tamaños típicos oscilan entre 256 KB y 1 MB.
  10. 10. Caché de discoAdemás de las anteriores, que son de propósito general, existe unacaché de funcionalidad específica que se aloja en memoria RAMestándar. Es la caché de disco (nos hemos referido a ella en laintroducción de este epígrafe), destinada a contener los datos dedisco que probablemente sean necesitados en un futuro próximo ylos que deben ser escritos. Si la información requerida está enchaché, se ahorra un acceso a disco, lo que es centenares de vecesmás rápido (recuerde que los tiempos de acceso a RAM se midenen nanosegundos y los de disco en milisegundos E1.7.1 Unidadesde medida).

×