View
365
Download
2
Category
Preview:
Citation preview
INSTITUTO SUPERIOR “LOS
ANDES”
MEMORIA CACHÉ
FUNDAMENTOS E INTRODUCCIÓN
Un 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 dos tipos de caché
frecuentemente usados en las computadoras
personales: memoria caché y caché de disco. Una
memoria caché, llamada también a veces
almacenamiento caché o RAM caché, es una parte
de memoria RAM estática de alta velocidad
(SRAM) más rápida que la RAM dinámica
(DRAM) usada como memoria principal.
ESTRUCTURA DE LA MEMORIA CACHÉ
La memoria caché está
estructurado por celdas, donde
cada celda almacena un byte. La
entidad básica de
almacenamiento la conforman las
filas, llamados también líneas de
caché. Por ejemplo, una caché L2
de 512 KB se distribuye en 16.384
filas (16 KB) y 32 columnas (32
bytes).
Caché de mapeo directo: La memoria RAM se divide en porciones de igual tamaño, de
acuerdo a la cantidad de líneas de caché existan. Cada línea de caché es un recurso a compartir
por las direcciones de memoria de una porción diferente. Por ejemplo, si se dispone de una
RAM de 64 MB y la caché de 512 KB, cada línea podrá almacenar 32 de las 4.096 direcciones
que 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 de
posiciones de la memoria RAM. En este caso, el porcentaje de acierto es máximo. En cambio,
el tiempo de acceso es muy elevado, puesto que una posición de RAM puede estar en cualquier
lí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, a
cada conjunto se le asocia un grupo de posiciones de RAM. Dentro del conjunto asignado, una
posición de RAM puede ir a parar a cualquiera de las N líneas que lo forman, es decir dentro de
cada conjunto la caché es totalmente asociativa. Esta situación es la más equilibrada, puesto que
se trata de un compromiso entre las técnicas anteriores. Si se hace N=1, se tiene una caché. De
mapeo directo. Si N es igual al número de líneas de la caché, se tiene una caché completamente
asociativa. Si se escoge un valor de N apropiado, se alcanza la solución óptima.
POLITICA 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é.
Asociativa: Cualquier bloque de memoria principal puede ir en cualquiera
de los n bloques de la memoria caché.
Asociativa por conjuntos: La memoria caché se divide en k conjuntos de
bloques, así al bloque i-ésimo de memoria principal le corresponde el
conjunto i módulo k. Dicho bloque de memoria podrá ubicarse en
cualquier posición de ese conjunto.
POLÍTICAS DE SUSTITUCIÓN
Determina qué bloque de memoria caché debe abandonarla cuando no existe espacio
disponible 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 el primero en
salir) para determinar qué bloque debe abandonar la caché. Este algoritmo generalmente
es poco eficiente.
Menos recientemente usado (LRU): Se 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): Se sustituye el bloque que ha experimentado menos
referencias.
POLÍTICAS DE ESTRUCTURA
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 lo encuentre en memoria principal.
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.
Tipos de cache
Caché interna
Es una innovación relativamente reciente [3]; en realidad son dos, cada
una con una misión específica: Una para datos y otra para instrucciones.
Están incluidas en el procesador junto con su circuitería de control, lo que
significa tres cosas: comparativamente es muy cara; extremadamente
rápida, y limitada en tamaño (en cada una de las cachés internas, los 386
tenían 8 KB; el 486 DX4 16 KB, y los primeros Pentium 8 KB). Como
puede suponerse, su velocidad de acceso es comparable a la de los
registros, es decir, centenares de veces más rápida que la RAM
Caché externa
Es más antigua que la interna, dado que hasta fecha "relativamente" reciente
estas últimas eran impracticables. Es una memoria de acceso rápido incluida
en la placa base, que dispone de su propio bus y controlador independiente que
intercepta las llamadas a memoria antes que sean enviadas a la RAM ( H2.2
Buses 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 la
DRAM ("Dynamic Random Access Memory") convencional, aunque también
mucho más cara [5] (tenga en cuenta que un aumento de tamaño sobre los
valores anteriores no incrementa proporcionalmente la eficacia de la memoria
caché). Actualmente (2004) la tendencia es incluir esta caché en el procesador.
Los tamaños típicos oscilan entre 256 KB y 1 MB.
Caché de disco
Además de las anteriores, que son de propósito general, existe una
caché de funcionalidad específica que se aloja en memoria RAM
estándar. Es la caché de disco (nos hemos referido a ella en la
introducción de este epígrafe), destinada a contener los datos de disco
que probablemente sean necesitados en un futuro próximo y los que
deben ser escritos. Si la información requerida está en chaché, se
ahorra un acceso a disco, lo que es centenares de veces más rápido
(recuerde que los tiempos de acceso a RAM se miden en
nanosegundos y los de disco en milisegundos E1.7.1 Unidades de
medida).
Recommended