0% encontró este documento útil (0 votos)
17 vistas46 páginas

Conceptos Clave de Memoria Caché

El documento aborda el tema de la memoria caché, explicando su función como una memoria rápida y cercana a la CPU que almacena copias de datos de la memoria principal. Se discuten conceptos clave como el principio de localidad, tipos de fallos de caché, y diferentes métodos de mapeo y sustitución de bloques. Además, se presentan estrategias de escritura y se evalúa el rendimiento de la caché en sistemas como Intel y AMD.

Cargado por

Roberto 305
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
17 vistas46 páginas

Conceptos Clave de Memoria Caché

El documento aborda el tema de la memoria caché, explicando su función como una memoria rápida y cercana a la CPU que almacena copias de datos de la memoria principal. Se discuten conceptos clave como el principio de localidad, tipos de fallos de caché, y diferentes métodos de mapeo y sustitución de bloques. Además, se presentan estrategias de escritura y se evalúa el rendimiento de la caché en sistemas como Intel y AMD.

Cargado por

Roberto 305
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

Tema 3.

Memoria Caché
0. Introducción
Tema 3. Memoria Caché
0. Introducción
Tema 3. Memoria Caché
0. Introducción
Tema 3. Memoria Caché
0. Introducción
Unidades de tamaño:
• Byte 1 byte = 8 bits
• Kilobyte 1 KB = 1024 bits 210 bytes
• Megabyte 1 MB = 1024 KB 220 bytes
• Gigabyte 1 GB = 1024 MB 230 bytes
• Terabyte 1 GB = 1024 GB 240 bytes
• Petabyte 1 PB = 1024 GB 250 bytes
• Exabyte 1 EB = 1024 PB 260 bytes
• Zettabyte 1 ZB = 1024 EB 270 bytes
• Yottabyte 1 YB = 1024 ZB 280 bytes
En comunicación se suele usar el kilobit y no el kilobyte y potencias de 10:
1 Kb = 1000 bits
1 KB = 1000 bytes
En almacenamiento (discos duros) algunas fabricantes no utilizan
potencias de 2 sino potencias de 10
• Kilobyte 1 KB = 1000 bytes 103 bytes
• Megabyte 1 MB = 1000 KB 106 bytes
• Gigabyte 1 GB = 1024 MB 109 bytes
Tema 3. Memoria Caché
0. Introducción
Tema 3. Memoria Caché
0. Introducción

Fuente:
https://reader.digitalbooks.pro/content/preview/books/38000/book/OEBPS/Text/chapter1.html

Registros
Tema 3. Memoria Caché
1. Principio de localidad

Hay distintos tipos de memoria


Funcionan como una sola

Jerarquía de memorias
Como se organizan los distintos tipos de memorias

Se basa en
Ø El HW más pequeño es más rápido
Ø El HW más rápido proporciona mayor velocidad
Ø Principio de localidad de las referencias
Tema 3. Memoria Caché
1. Principio de localidad

Principio de localidad de las referencias


Ø Los computadores tienden a reutilizar los datos e
instrucciones que utilizaron recientemente
Ø Tiene dos aspectos:

Temporal: en un tiempo cercano se accede a


datos/instrucciones a los que se ha accedido
recientemente
Ø Ej: bucles, uso de variables, etc
Tema 3. Memoria Caché
1. Principio de localidad

Principio de localidad de las referencias


Ø Los computadores tienden a reutilizar los datos e
instrucciones que utilizaron recientemente
Ø Tiene dos aspectos:

Espacial: la probabilidad de que el próximo


dato/instrucción que se utilice esté en una
posición de memoria cercana a la anterior es
elevada.
ØEj: ejecución secuencial por defecto,
elementos de un array, etc
Tema 3. Memoria Caché
1. Principio de localidad

Principio de localidad de las referencias

• Ejemplo:
suma=0;
for (i=0;i<n;i++) in suma i
suma + = v[i];

v[0] v[1] v[2] v[3] v[4]

Instr suma=0 Instr for Instr sum += …


Tema 3. Memoria Caché
1. Principio de localidad

Jerarquía de memoria
Ø El computador tiene un sistema de niveles de memoria
Ø Cada nivel está incluido en el siguiente
Tema 3. Memoria Caché
1. Principio de localidad

Jerarquía de memoria
Ø El computador tiene un sistema de niveles de memoria
Ø Cada nivel está incluido en el siguiente
Tema 3. Memoria Caché
1. Principio de localidad

Jerarquía de memoria
Ø El computador tiene un sistema de niveles de memoria
Ø Cada nivel está incluido en el siguiente

Ø Para acceder a memoria principal se sale del chip


y se usa un bus
Ø Para acceder a la memoria virtual dentro del
disco duro hay que realizar una operación de E/S
Tema 3. Memoria Caché
2. La memoria caché
Memoria pequeña, muy rápida, físicamente próxima a la
CPU, entre la CPU y la memoria principal

Ø Almacena copia de partes de la memoria principal


(Ppio. De Localidad)
Tema 3. Memoria Caché
2. La memoria caché
Acierto de Caché (cache hit): la CPU solicita un dato/inst, y
está en la memoria caché, la cual se lo devuelve.

Fallo de Caché (cache miss): la CPU solicita un dato/inst. y


no está en la memoria caché. Se transfiere un bloque de la
memoria principal a la caché, que incluye el dato solicitado.
Tema 3. Memoria Caché
2. La memoria caché
Bloque (número de líneas): unidad de transferencia entre la
memoria principal y la memoria caché (tamaño > tamaño_palabra)

Fallo de Página/Segmento: si el dato/inst. no está en la memoria


principal, se trae de la memoria virtual a la memoria principal la
página o segmento que lo contiene.
Tema 3. Memoria Caché
2. La memoria caché
Tema 3. Memoria Caché
2. La memoria caché
Tema 3. Memoria Caché
2. La memoria caché
Tema 3. Memoria Caché
2. La memoria caché

Tipos de caché miss:

• Cold (compulsory) miss:


• cuando la caché está vacía
• Conflict miss:
• cuando el bloque sustituido se vuelve a necesitar
• Capacity miss:
• cuando los bloques activos (working set) no caben en la caché
Tema 3. Memoria Caché
2. La memoria caché
Tema 3. Memoria Caché
3. Ubicación de bloque
La CPU indica una dirección de memoria principal donde
está el dato/instr.

Ø La caché usa esa dirección para encontrarlo.


Ø Hay una función de correspondencia (organización
de la memoria caché) implementada por HW
Ø Puede ser:

Ø Mapeo directo
Ø Totalmente asociativa
Ø Asociativa por conjuntos
Tema 3. Memoria Caché
3. Ubicación de bloque

Mapeo directo

Ø Cada bloque puede estar en una y sólo una


posición de la caché.
Ø Si la memoria caché tiene espacio para C
bloques, un bloque j de la memoria principal se
almacenará en la posición i de la memoria caché:
Ø i = j mod C
Tema 3. Memoria Caché
3. Ubicación de bloque

Totalmente asociativa

Ø Cada bloque de la memoria principal puede estar


en cualquier posición de la caché.
Tema 3. Memoria Caché
3. Ubicación de bloque

Asociativa por conjuntos

Ø La memoria caché se divide en q conjuntos cada uno de


los cuales consta de r bloques (líneas)
Ø Asociativa por conjuntos de r vías
Ø C=q*r
Ø Para un bloque j de memoria principal, el conjunto k se
elige por mapeo directo:
Ø k = j mod q
Ø Dentro de un conjunto la dirección es totalmente
asociativa (se puede almacenar en cualquier posición).
Tema 3. Memoria Caché
3. Ubicación de bloque

Asociativa por conjuntos


Tema 3. Memoria Caché
4. Identificación de bloque

Los bloques de memoria caché tienen asociada una etiqueta

Cuando la CPU genera una dirección para acceder a una


palabra de la memoria principal su formato desde el punto
de vista de la memoria caché depende del tipo de
organización de la memoria caché
Tema 3. Memoria Caché
4. Identificación de bloque

Mapeo directo

El tamaño de los campos es:


ØCampo palabra: p=log2(K) bits siendo K el número de
unidades mínimas direccionables por bloque
ØCampo bloque: b= log2(C) bits siendo C el número de
bloques de la memoria caché
ØCampo etiqueta: e=n-p-b bits siendo n el número de bits
de la dirección de memoria principal
Tema 3. Memoria Caché
4. Identificación de bloque

Mapeo directo

El funcionamiento es:
1. Se identifica un bloque de la memoria caché con el campo
bloque.
2. Se compara la etiqueta de ese bloque de la memoria caché con
el campo etiqueta de la dirección solicitada por el procesador.
a) Si coinciden, con el campo palabra se selecciona la palabra
pedida dentro del bloque y se le entrega a la CPU.
b) Si al comparar las etiquetas no coinciden (no se encuentra
en la memoria caché) se produce un fallo.
Ø Se busca el bloque que contiene la palabra en
memoria principal.

La dirección del bloque que contiene la palabra se


consigue poniendo el campo palabra todo a 0s.
Tema 3. Memoria Caché
4. Identificación de bloque

Mapeo directo
Tema 3. Memoria Caché
4. Identificación de bloque

Totalmente asociativa

El tamaño de los campos es:


ØCampo palabra: p=log2(K) bits siendo K el número de
unidades mínimas direccionables por bloque
ØCampo etiqueta: e=n-p bits siendo n el número de bits de
la dirección de memoria principal
Tema 3. Memoria Caché
4. Identificación de bloque

Totalmente asociativa

El funcionamiento es:
1.Se comparan simultáneamente todas las etiquetas de la
memoria caché con el campo etiqueta de la dirección solicitada
por el procesador.
a) Si coinciden, con el campo palabra se selecciona la
palabra pedida dentro del bloque y se le entrega a la CPU.
b) Si no coinciden (no se encuentra en la memoria caché) se
produce un fallo.
Ø Se busca el bloque que contiene la palabra en
memoria principal.

La dirección del bloque que contiene la palabra se


consigue poniendo el campo palabra todo a 0s.
Tema 3. Memoria Caché
4. Identificación de bloque

Totalmente asociativa
Tema 3. Memoria Caché
4. Identificación de bloque

Asociativa por conjuntos

El tamaño de los campos es:


ØCampo palabra: p=log2(K) bits siendo K el número de
unidades mínimas direccionables por bloque
ØCampo conjunto: c= log2(q) bits siendo q el número de
conjuntos de la memoria caché
ØCampo etiqueta: e=n-p-c bits siendo n el número de bits
de la dirección de memoria principal
Tema 3. Memoria Caché
4. Identificación de bloque

Asociativa por conjuntos

El funcionamiento es:
1.Se identifica un conjunto de la memoria caché con el campo
conjunto.
2.Se comparan simultáneamente todas las etiquetas de ese
conjunto de la memoria caché con el campo etiqueta de la
dirección solicitada por el procesador.
a) Si coinciden, con el campo palabra se selecciona la
palabra pedida dentro del bloque y se le entrega a la CPU.
b) Si no coinciden (no se encuentra en la memoria caché)
se produce un fallo.
Ø Se busca el bloque que contiene la palabra en
memoria principal.
La dirección del bloque que contiene la palabra se
consigue poniendo el campo palabra todo a 0s.
Tema 3. Memoria Caché
4. Identificación de bloque

Asociativa por conjuntos


Tema 3. Memoria Caché
5. Sustitución de bloque
Al traer un bloque de memoria principal, ¿qué bloque
sustituimos en la memoria caché?

Ø Mapeo directo: no podemos elegir


Ø Totalmente asociativa: usando algoritmos
Ø Asociativa por conjuntos: dentro del conjunto en cuestión,
usando algoritmos

Algoritmos:
Ø Aleatorio
Ø FIFO (First In, First Out)
ü Sustituye la línea que lleva más tiempo en la caché
Ø LRU (Least Recently Used)
ü Sustituye la línea que hace más tiempo que no se usa
Ø LFU (Least Frequently Used)
ü Sustituye la línea que se ha utilizado menos
Tema 3. Memoria Caché
6. Estrategia de escritura

Si se escribe…

Ø Escritura inmediata (Write Through): se escribe en


memoria caché y en memoria principal
Ø Consistencia
Ø Mucho tráfico entre memorias ppal. y caché
Ø Post-escritura (Write Back): se escribe en memoria
caché. Cuando se sustituye el bloque, se mira si se ha
modificado (lo indica el bit dirty).
Ø Si no se ha modificado, se reemplaza.
Ø Si se ha modificado, se escribe en memoria
principal y luego se reemplaza.
Ø Disminuye el tráfico
Ø Inconsistencia
Tema 3. Memoria Caché
7. Rendimiento

Tiempo de Ejecución = (nº de ciclos sin fallos de caché + nº de ciclos de


detención por fallo) * Tclk
Nº de ciclos de detención por fallo = IF * PF
IF = Índice de fallos
PF = Penalización por fallo
Tema 3. Memoria Caché
8. Ejemplos

Intel Core i7
Tema 3. Memoria Caché
8. Ejemplos

Intel Meteor Lake


Tema 3. Memoria Caché
8. Ejemplos

Intel Alder Lake Intel Meteor Lake


Tema 3. Memoria Caché
8. Ejemplos

AMD Quad Core


Tema 3. Memoria Caché
8. Ejemplos

AMD Ryzen
Tema 3. Memoria Caché
8. Ejemplos

AMD EPYC
Tema 3. Memoria Caché
8. Ejemplos

AMD EPYC

También podría gustarte