Memoria cache

10
INSTITUTO SUPERIOR “LOS ANDESMEMORIA CACHÉ

Transcript of Memoria cache

Page 1: Memoria cache

INSTITUTO SUPERIOR “LOS

ANDES”

MEMORIA CACHÉ

Page 2: Memoria cache

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.

Page 3: Memoria cache

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

Page 4: Memoria cache

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.

Page 5: Memoria cache

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.

Page 6: Memoria cache

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.

Page 7: Memoria cache

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.

Page 8: Memoria cache

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

Page 9: Memoria cache

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.

Page 10: Memoria cache

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