MEMORIA CACHÉ
¿Qué
es memoria?
Actualmente ha
crecido la necesidad de memoria, pero en realidad la memoria es un circuito
operacional basados en dispositivos electrónicos generalmente creado con flips
– flops o capacitores, los cuales cumplen la función de almacenar de
información de datos de manera digital, es decir guardar la información a nivel
de bits. Pero la característica principal es que se puede guardar y recuperar
la información para poder procesarla. Generalmente la memoria sigue un patrón,
el cual se basa en un diseño el cual parte desde la unidad de memoria, registro
de memoria y registro de direcciones para poder ingresar o sacar la información
requerida.
¿Qué es la memoria caché?
Es una memoria donde
se almacenan una serie de datos para su acceso rápido, básicamente la memoria
cache de un procesador es un tipo de memoria volátil del tipo RAM pero de una
velocidad mayor. (Gomez, 2012)
Fuente: tecnolowikia.wikisapces.com
Tipos de conexión de las memorias caché.
La memoria cache se puede conectar
al CPU de dos maneras: Paralelo y Serie.
·
Conexión
en serie.
En
este tipo de conexión la CPU solo se conecta con la cache por lo que todas las
peticiones que hace la CPU al bus del sistema son a través de la memoria cache.
Por lo tanto todo lo que necesita la CPU del sistema se lo proporciona a la
memoria cache y como es de tamaño y tiempo de acceso reducido cada vez que el
dato está almacenado en la cache, el tiempo de acceso es muy reducido y evita
manejar el bus del sistema.
·
Conexión
en paralelo.
En
este tipo de conexión todo depende del bus de sistema, cada vez que la CPU
realiza una petición, la envía simultáneamente a la cache y a la memoria
principal. Si se encuentra la información contenida en la cache es entregada al
bus en pocos nano segundos avisando a la memoria principal para que esta no
continúe con la búsqueda de la información. De esta manera se llega a parar el
ciclo. Si la memoria cache no tiene el
dato pedido, la memoria principal sigue trabajando, con lo cual no hay
penalización de tiempo, lo que es una gran ventaja.
Principio de funcionamiento de la caché.
El
bus de direcciones va a la cache, que tiene dos partes: la de etiquetas y la de
datos. Hay “N” posiciones de etiquetas y cada etiqueta tiene 21 bits. Los 21
bits de la etiqueta se corresponden con los 21 bits de más peso de la
direcciones, por eso el comparador coge las N etiquetas y las compara con los
21 bits de más peso de la direcciones.
·
Si coincide, el comparador
devuelve un uno lo que implica presencia.
·
Si no coincide, el
comparador devuelve un cero lo que implica ausencia.
Una cache está
estructurada en tres bloques importantes.
· Bloque de etiquetas: RAM-CAM: Es una memoria de acceso
por contenido. No se accede por dirección de memorias. No se accede por
dirección de memoria, sino que, se copara el valor o dato con lo que hay dentro
de la memoria y así sabemos si se encuentra o no contenido en ella.
· Bloque de datos asociados: SRAM: Es un conjunto de datos de
forma que a cada dato le corresponde una etiqueta. Por ejemplo:
o Dato
0 à
Etiqueta 0.
§ Si hay acierto, la etiqueta que coincide con el
dato introducido, devuelve el dato asociado a la misma.
·
Lógica de control: Comparadores de “n” bits, tantos como tenga
la etiqueta.
Necesidad de la caché.
La
Arquitectura de los ordenadores de última generación está orientada a mejorar
el rendimiento, de manera que se ejecuten más instrucciones por unidad de
tiempo.
Para llevar a cabo la
exigencia de los nuevos procesadores se apoyan en tres recursos fundamentales:
Arquitectura
superescalar, característica de la arquitectura RISC. Paralelismo explícito. Se
compone de instrucciones sencillas.
Supersegmentación, es
decir segmentación con elevado número de etapas. Esta técnica precisa de
técnicas sofisticadas para eliminar riesgo, especialmente en las instrucciones
que contengan saltos condicionales.
Potenciamiento de la
memoria cache, para aumentar la velocidad de la memoria. (Patterson, 2001)
Arquitectura de subsistemas de las memorias caché.
Las características fundamentales que
determinar un subsistema cache son las siguientes:
1 Tamaño de la cache.
El tamaño de la caché suele
oscilar entre 8KB y 512KB. Esta memoria en ocasiones no se puede aumentar el rendimiento mayor de la cache, debido a los
algoritmos de transferencia de la
memoria caché.
Según los algoritmos, la
mejor capacidad de la cache esta entre 32k y 256k.
2 Tipos de organización
Existe tres tipo de
organización de la memorias caché
Totalmente asociativa: se
caracteriza porque cualquier posición de la memoria principal puede ubicar en
cualquier posición de la memoria cache. Utiliza comparadores de 32 bits. La flexibilidad de guardar
en cualquier posición trae un problema grave, puesto que la cache necesita los
32 bits de la dirección para compartir con la etiqueta. Este inconveniente de este tipo de organización de la
memoria caché es que tiene que tener apuntadas todas las direcciones en la zona
de etiquetas.
Asociativa de una vía: Suponemos que la
memoria principal tiene 256 KB y la
caché 256 Bytes. La memoria principal se divide en bloques de 256 bytes. Habrá
1K bloques, es decir, 1024 bloques. Cada
posición de 1 bloque de la memoria principal solo puede ir a la misma
posición de la caché. La ventaja es que para conexionar la memoria principal necesitamos
que en el bus de direcciones tenga 18 líneas.
La etiqueta necesita solo 10 bits: 210=10K.
Asociación de “n” vías: El funcionamiento es
similar a la de una vía, pero la cache se va a descomponer en varias vías. La
memoria principal se divide en fragmentos iguales con la cache asociativa de N
vías, se ahorra gran cantidad de bits. Esta organización de la memoria ofrece un mayor rendimiento
pero las vías son de mayor tamaño.
3 La estructura física de una
cache.
Para referirnos a una caché
real presentaremos como ejemplo la de un procesador Pentium.
El Pentium tiene 2 memorias
cachés independientes: una para datos y
otra para instrucciones, permitiendo el paralelismo entre instrucciones y
datos. Cada una de ellas es de 8 KB.
Son cachés asociativas de 2 vías. Las
etiquetas contienen los 20 bits de más peso de la dirección además de dos bits
de código: el WP protege contraescritura y V predice si es línea válida o no.
Los datos asociados en la
etiqueta tiene cada uno32bytes, cada vía tiene 128 etiqueta donde guarda 128 x
32 bytes=4 Kbyte, luego la memoria lo dividimos en 4KB.
Actualización de la memoria
caché
En el Pentium cuando se
produce una ausencia en la caché se busca la información de una línea completa en la memoria principal y se carga
en la caché, en una vía que esté libre.
Si fuera totalmente
asociativa, cualquier línea se podría almacenar en cualquier posición de la
caché. Si es asociativa de una vía sólo hay una posibilidad. Si es de varias
vías, como el Pentium, hay varias posibilidades.
Si se necesita introducir una
posición y hay alguna vía vacía, esta se ocupa, si están ocupadas, se pueden
aplicar los siguientes algoritmos.
- RANDOM: algoritmo de generación aleatorio, elige y la reemplaza una de las posiciones ocupadas de una de las cuatro vías.
- LRU: se elimina la posición de la vía que menos se haya empleado últimamente. Su funcionamiento se basa en dos bits que apuntan la vía menos empleada. Hay dos alternativas de actualizar:
1.
El dato pedido va en último lugar: el dato
último es el que se ha direccionado y se traen los 31 bytes que van adelante.
2.
El dato pedido va en primer lugar: la caché
desde el primer dato que ha llegado, ya tiene la información que ha solicitado
la CPU. (Tanenbaum,
2000)
Protocolo MESI
Puede suceder que la misma posición de la
memoria principal la están empleados dos CPU, y como consecuencia las dos
caches. Para evitar esta inconsistencia de la cache Intel desarrollo el
protocolo MESI.
El protocolo MESI asigna cuatro estados
diferentes a cada línea, que define si una línea es válida, si está disponible
para otras caches, o ha sido modificada.
Los
posibles estados de la línea son:
- M: Modificado: M esta modificada por 1 escritura del procesador, actualizar memoria si es preciso.
- E: Exclusiva: la línea solo tiene una cache, y esta sin modificar. La memoria principal tiene una copia.
- S: Simultaneo: esta línea esta repetida en otras caches
- I: Invalido: esta línea esta invalidada.
Niveles de jerarquía en la caché.
Una de las técnicas de aumentar el
rendimiento, es disminuir el tiempo de acceso a las cache y otra aumentar la
tasa de aciertos.
Para mejorar4el tiempo de acceso a las caches
resulta complicado ya que el acceso a las caches es una característica
tecnológica.
Para realizar dicho aumento de aciertos
debemos:
·
Mejorar los algoritmos de cargar
en la cache
·
Aumentar el tamaño del cache. (Stallings,
2000)
Fuente: informatica.hsw.uol.com.br
Biografía:
- Gomez, J. B. (2012). Arquitectura de Computadoras I. Mexico: Red Tercer Milenio.
- Patterson, D. (2001). Arquitectura de Computadores. Madrid: McGraw - Hill.
- Tanenbaum, A. (2000). Organización de Computadoras. Mexico: Prentice Hall - Pearson.
No hay comentarios:
Publicar un comentario