Académique Documents
Professionnel Documents
Culture Documents
1. OBJETIVOS
Describir el funcionamiento y la estructura de una memoria caché.
Describir las tecnologías que se utilizan para la implementación de una memoria
cache.
Realizar la comparación de los diferentes elementos relacionados a la memoria cache
tal como la función de correspondencia o el método de sustitución.
2. MARCO TEÓRICO
La memoria caché es una memoria de tamaño reducido, de alta velocidad, que se coloca entre la
memoria principal y la CPU. Utilizando el principio de localidad mantiene copias de los bloques
de memoria principal más accedidos, de manera que cuando la CPU requiere una palabra que está
en uno de los bloques almacenados en la memoria caché, el requerimiento es satisfecho desde la
memoria caché, con un tiempo de acceso mucho menor que si debiera ser satisfecho desde la
memoria principal. Desde la memoria cache se accede a la memoria principal en bloques de k
palabras (normalmente k > 1). Cuando un bloque es leído desde memoria se almacena en una
línea de la cache.La memoria caché es la memoria más rápida del sistema de memoria. En la
actualidad se implementa con chips de memoria RAM estática, los cuales son relativamente caros
y de baja capacidad. La memoria caché se divide en bloques, todos ellos conteniendo el mismo
número de bytes. Cada bloque contiene un conjunto de datos ubicados en posiciones de memoria
consecutivas. Cada vez que la CPU intenta acceder a una dirección de memoria que no está en
ningún bloque de la caché se produce un fallo de caché, y en caso contrario un acierto de caché.
La consecuencia del fallo es que se suspende momentáneamente el acceso, se copia el bloque que
contiene la dirección desde la memoria principal a la memoria caché y a continuación se reanuda
el acceso. Desde el punto de vista de interacción con la memoria caché, la memoria principal se
puede ver como un gran almacén de bloques del mismo tamaño que los bloques de la memoria
caché.Por ejemplo, una memoria caché de 32 bytes organizada en bloques de 4 bytes tendrá 8
bloques. Si la memoria principal es de 256 bytes, la memoria caché percibe a la memoria principal
como 64 bloques de 4 bytes cada uno. Toda memoria caché lleva asociado un controlador de
memoria caché, el cual se encarga de gestionar todas las lecturas y escrituras en la memoria caché
y decidir por ejemplo si una dirección está cacheada, es decir, ubicada dentro de la memoria caché,
o por el contrario se ha producido un fallo de caché. Cabe destacar en este punto que la cantidad
de memoria cache es mucho más pequeña que la memoria RAM del sistema, sin embargo, su
modo de funcionamiento permite realizar operaciones repetitivas sobre los mismos datos, con lo
que se consigue un excelente rendimiento, aunque su tamaño sea muy inferior al de la memoria
RAM.
En general, el funcionamiento de cualquier memoria caché viene definido por las siguientes
características: estrategia de correspondencia, de reemplazo y de escritura.
Funciones de Correspondencia.
Directa.- es la técnica mas simple de todas, ya que cada bloque de Memoria Principal se
transforma en un único bloque de Memoria Caché.
𝑖 = 𝑗 𝑚ó𝑑𝑢𝑙𝑜 𝐶
Cuando se genera una dirección de n bits para acceder a una palabra en la Memoria Principal, su
formato desde la perspectiva de la Memoria Caché se divide en tres campos: Etiqueta, Línea y
Palabra.
𝐶𝑎𝑚𝑝𝑜 𝐸𝑡𝑖𝑞𝑢𝑒𝑡𝑎: 𝑒 = 𝑛 − 𝑝. 𝑏
Asociativa por Conjuntos.- este método trata de unir los métodos Directo y Asociativa, en el cual
la Memoria Caché se divide en q cunjuntos, cada uno de r bloques.
FIG. 2. Asignación de bloques de M.P. en la M.C. con Correspondencia Asociativa por Conjuntos
[2]
La Correspondencia Asociativa por Conjuntos se puede ver como Correspondencia Directa entre
bloques de M.P. y los conjuntos de M.C.
𝐶 = 𝑞𝑥𝑟
𝑖 = 𝑗 𝑚ó𝑑𝑢𝑙𝑜 𝑞
3. DESARROLLO
Simulación 1.-
1. Cuál es el tamaño (en bits) de cada elemento de una dirección de memoria caché.
Bits de dirección: 18
Bits de palabra: 1
Bits de línea: 15
Bits de etiqueta: 2
Con los bits de línea podemos encontrar la línea en la que se encuentra el dato, y con esta podemos
obtener la dirección del dato.
7. Para este caso cual es la funcionalidad del valor “set size”. Justifique su respuesta
Nuestra simulación utiliza la función de correspondencia directa, por lo tanto, “set size” no tiene
ningún uso , ya que los conjuntos se utilizan en la función de correspondencia asociativa por
conjuntos.
Simulacion 2.-
3. Cuál es el tamaño (en bits) de cada elemento de una dirección de memoria caché.
Una dirección de Memoria Caché está dividida en 3 secciones:
Etiqueta:4 bits
Conjunto13 bits
Palabra: 1 bit
8. ¿Cuántos bits son necesarios para determinar si una dirección determinada está dentro
de la cache?
Los bits necesarios para determinar una dirección son los que se encuentran en la Etiqueta y el
Conjunto, los cuales son 17, en este caso.
Simulacion 3.-
1. ¿Cuáles son los cambios que se producen con respecto a la simulación 2? ¿Por qué? Se
recomienda contestar las mismas preguntas de la simulación 2 y luego comparar
resultados. Argumente sus respuestas
El cambio que se produce al compararlo con la simulación 2 es que los bits de la Etiqueta
aumentan en 1 y del Conjunto se reduce en 1, esto se da porque se aumenta la cantidad de bloques
con los que se trabaja en la Memoria Caché.
Se recomienda contestar las mismas preguntas de la simulación 2, teniendo en cuenta que algunas
preguntas variarán en los cálculos ya que el tamaño del bloque aumenta al doble, por lo que al
compararlos se tendrá cambios en la cantidad de bits en Etiqueta y Conjunto, aunque los bits
direccionales serán los mismos
Simulación 4.-
.
Tamaño del bloque= 25= 32B
Bits del bloque: 5
Tamaño de la memoria principal = 225= 32MB
Bits de direcciones: 25
Tamaño del conjunto: 8 vias
# Conjuntos: 210 = 1KB
Bits del conjunto: 10
Tamaño de la cache: #Conjuntos*tamaño de la línea*tamaño del conjunto= 210 * 25 *23=218 =
256KB
3.3.1 Ejemplos
a) LRU
b) FIFO
c) RAND
3.3.2 Utilidad
1.- La utilidad de un programa que nos ayude a simular algoritmos de sustitución como LRU,
LFU o RANDOM es para que cuando se tengan varios datos sea más eficiente que trabajarlos
manualmente, ya que se podría equivocar o talvez algunos datos no se tomen en cuenta.
2.- Se usaría el programa para agilizar tanto el cálculo como el tiempo empleado para realizar
ciertas actividades. Así mismo, ayudaría a saber por qué valor se debe sustituir cuando esté llena
la memoria cache.
3.3.3 Indicaciones
1.- Antes de utilizar el simulador, se deberá conocer y comprender que son los algoritmos de
sustitución y como utilizarlos, para poder entender el funcionamiento del simulador.
2.- También se deberá conocer los parámetros de entrada y salida del simulador, para tener el
panorama completo del simulador .
4. CONCLUSIONES Y RECOMENDACIONES
1.- Antes de utilizar el simulador para poder tener una visualización gráfica de como funciona las
funciones de correspondencia, primero se deberá de tener un explícito conocimiento de cuál es el
origen de cada uno de los bits que se generan a medida que se experimenta con cada una de la
medida que corresponden tanto a la Memoria Caché como a la Memoria Principal, y del tamaño
y número de bloques.
2.- Se deberá conocer las fórmulas que ser explican, para que en la práctica se las pueda aplicar y
saber en qué unidades se las trabaja y cuáles son sus correspondientes unidades de medida.
3.- Al momento de analizar cada una de las simulaciones aplicadas en la práctica se deberá tener
el conocimiento de cuál es el tipo de función a aplicar y saber por qué el cambio en ciertos campos
en cada una de las correspondencias.
5. BIBLIOGRAFÍA
[2] Antonio Delgado Domínguez, (S.F.). correspondencia asociativa por conjuntos. Lugar de
publicación: ARQUITECTURA DE COMPUTADORAS.
https://ajbeas.webcindario.com/asocon.html
[3] Breves Conceptos Teóricos. [En línea]. Disponible en:
http://www.atc.uniovi.es/inf_med_gijon/3ingcomp/practicas/SMC/teor%C3%ADa-
conceptos.htm. [Accedido: 13-enero-2019]
[5] La Memoria Cache. (2017, Junio 18). [En línea]. Disponible en: https://tecnologia-
facil.com/que-es/la-memoria-cache/