Tema 1: Memoria cache (parte 1)
Iñigo Perona Balda (CAS)
Agustin Arruabarrena (EUS) Olatz Arbelaitz (ENG)
Universidad del País Vasco (UPV/EHU)
Grado en Ingeniería Informática
Arquitectura de Computadores
2 de septiembre de 2022
I. Perona (UPV/EHU) Tema 1: Memoria cache (parte 1) 2 de septiembre de 2022 1 / 29
Índice de parte 1 + parte 2
Introducción: jerarquía de memoria
Características generales de las memorias cache
Principales parámetros de diseño:
Bloque
Correspondencia
Algoritmo de reemplazo
Política de escritura
I. Perona (UPV/EHU) Tema 1: Memoria cache (parte 1) 2 de septiembre de 2022 2 / 29
Índice
1 Introducción: jerarquía de memoria
El gap de velocidad
Direcciones: palabra y byte
Modulos: buers de entrelazado
2 Características generales de las MC
Jerarquía de memorias
Apuesta: hit y miss
MC: directorio / contenido
I. Perona (UPV/EHU) Tema 1: Memoria cache (parte 1) 2 de septiembre de 2022 3 / 29
Introducción: jerarquía de memoria El gap de velocidad
Tabla de contenidos
1 Introducción: jerarquía de memoria
El gap de velocidad
Direcciones: palabra y byte
Modulos: buers de entrelazado
2 Características generales de las MC
Jerarquía de memorias
Apuesta: hit y miss
MC: directorio / contenido
I. Perona (UPV/EHU) Tema 1: Memoria cache (parte 1) 2 de septiembre de 2022 4 / 29
Introducción: jerarquía de memoria El gap de velocidad
Introducción
Problema
El procesador es más rápido que la memoria y esta diferencia de
velocidad entre la CPU y la memoria (gap) es cada vez mayor.
La CPU debe utilizar la memoria lo más rápido posible para acceder a
las instrucciones y a los datos
Atención: el componente más lento, la memoria, determina la
velocidad de todo el sistema
El tiempo de acceso a memoria aumenta con el tamaño de la misma:
las memorias pequeñas serán más rápidas. Sin embargo, necesitamos
memorias grandes.
¾Cómo estructurar el sistema de memoria para realizar las operaciones
(lectura/escritura) lo más rápido posible? Repasemos los conceptos
principales.
I. Perona (UPV/EHU) Tema 1: Memoria cache (parte 1) 2 de septiembre de 2022 5 / 29
Introducción: jerarquía de memoria El gap de velocidad
Introducción
Tipos de memoria RAM
1 RAM estática (SRAM): rápida, pero necesita 4-5 transistores para
cada bit de memoria (tipo biestable D).
2 RAM dinámica (DRAM): mayor integración (un transistor por cada
bit de memoria: carga de un condensador), pero más lenta.
Si el parámetro crítico es la velocidad, se utiliza RAM estática;
sin embargo, si es la capacidad, mejor RAM dinámica.
3 Memorias asociativas: La búsqueda no se realiza por dirección, sino
sí ,
mediante el contenido. Dada una palabra, el resultado puede ser:
está en memoria; o no, no está (además de la información asociada a
esa palabra; por ejemplo, dónde está). Son más complejas que las
memorias RAM habituales y tienen un uso especial en las memorias
cache.
I. Perona (UPV/EHU) Tema 1: Memoria cache (parte 1) 2 de septiembre de 2022 6 / 29
Introducción: jerarquía de memoria Direcciones: palabra y byte
Tabla de contenidos
1 Introducción: jerarquía de memoria
El gap de velocidad
Direcciones: palabra y byte
Modulos: buers de entrelazado
2 Características generales de las MC
Jerarquía de memorias
Apuesta: hit y miss
MC: directorio / contenido
I. Perona (UPV/EHU) Tema 1: Memoria cache (parte 1) 2 de septiembre de 2022 7 / 29
Introducción: jerarquía de memoria Direcciones: palabra y byte
Introducción
Estructura de la memoria principal (RAM)
Una posición de memoria se accede mediante su dirección, tanto para
leer como escribir.
Las direcciones de una memoria con P posiciones son de log2 P bits;
una dirección de n bits direcciona 2n posiciones.
Comunicación entre la CPU y la MP
Direcciones ⇒ bus de dirección
Datos ⇒ bus de datos
Operación (rd/wr) ⇒ bus de control
I. Perona (UPV/EHU) Tema 1: Memoria cache (parte 1) 2 de septiembre de 2022 8 / 29
Introducción: jerarquía de memoria Direcciones: palabra y byte
Introducción
Estructura de la memoria principal (RAM)
I. Perona (UPV/EHU) Tema 1: Memoria cache (parte 1) 2 de septiembre de 2022 9 / 29
Introducción: jerarquía de memoria Direcciones: palabra y byte
Introducción
Estructura de la memoria principal (RAM)
Unidad de información direccionada por el procesador:
byte (habitual)
palabra: 4 u 8 bytes
En general, las direcciones que genera el procesador suelen ser
alineadas a la palabra (indican el comienzo de una palabra).
Estructura de una dirección:
palabra = dir div tam_pal (división entera: 11/4 = 2)
byte = dir mod tam_pal (resto de la división: 11 mod 4 = 3)
I. Perona (UPV/EHU) Tema 1: Memoria cache (parte 1) 2 de septiembre de 2022 10 / 29
Introducción: jerarquía de memoria Direcciones: palabra y byte
Introducción
Estructura de la memoria principal (RAM)
I. Perona (UPV/EHU) Tema 1: Memoria cache (parte 1) 2 de septiembre de 2022 11 / 29
Introducción: jerarquía de memoria Direcciones: palabra y byte
Introducción
Un apunte sobre las direcciones de memoria
Al cargar el programa/datos en la MP, hay que decidir en qué
posiciones se ubican, según qué espacio de memoria está libre en ese
momento. Por tanto, las posiciones en las que se carga un programa
en memoria no son jas. El programa cargador decide en qué
posiciones físicas se cargan el programa y sus datos.
Por ello, el procesador utiliza direcciones lógicas, no direcciones
físicas concretas. Las direcciones lógicas deben traducirse a
direcciones físicas (de memoria). Esta traducción se realiza a través
de un hardware especial: TLB (translation look-ahead buer).
Para simplicar, en este tema trabajaremos con direcciones físicas.
I. Perona (UPV/EHU) Tema 1: Memoria cache (parte 1) 2 de septiembre de 2022 12 / 29
Introducción: jerarquía de memoria Modulos: buers de entrelazado
Tabla de contenidos
1 Introducción: jerarquía de memoria
El gap de velocidad
Direcciones: palabra y byte
Modulos: buers de entrelazado
2 Características generales de las MC
Jerarquía de memorias
Apuesta: hit y miss
MC: directorio / contenido
I. Perona (UPV/EHU) Tema 1: Memoria cache (parte 1) 2 de septiembre de 2022 13 / 29
Introducción: jerarquía de memoria Modulos: buers de entrelazado
Introducción
Estructura de la memoria principal (RAM)
La memoria principal se organiza en varios módulos, de forma que las
direcciones/posiciones se entrelazan entre los módulos.
De esta forma,se puede acceder de forma simultánea a
direcciones consecutivas, ya que estarán en módulos diferentes. El
contenido de estas direcciones se guarda en los buers de entrelazado
y desde aquí, mediante el bus de datos, se transeren al procesador
I. Perona (UPV/EHU) Tema 1: Memoria cache (parte 1) 2 de septiembre de 2022 14 / 29
Introducción: jerarquía de memoria Modulos: buers de entrelazado
Introducción
Estructura de la memoria principal (RAM)
El nivel de entrelazado dene el tamaño del bloque (en el ejemplo, 4
palabras)
I. Perona (UPV/EHU) Tema 1: Memoria cache (parte 1) 2 de septiembre de 2022 15 / 29
Características generales de las MC Jerarquía de memorias
Tabla de contenidos
1 Introducción: jerarquía de memoria
El gap de velocidad
Direcciones: palabra y byte
Modulos: buers de entrelazado
2 Características generales de las MC
Jerarquía de memorias
Apuesta: hit y miss
MC: directorio / contenido
I. Perona (UPV/EHU) Tema 1: Memoria cache (parte 1) 2 de septiembre de 2022 16 / 29
Características generales de las MC Jerarquía de memorias
Características generales
Principio de localidad (locality)
¾Por qué se entrelaza la memoria? El acceso a las instrucciones y a los
datos no es aleatorio
El 90 % del tiempo de acceso se consume en el 10 % del código
localidad temporal: si se utiliza una palabra, seguramente pronto se
volverá a utilizar: bucles. . .
t → @i ⇒ t + ∆t → @i
localidad espacial: si se utiliza una palabra, seguramente la siguiente
palabra será la palabra consecutiva: ejecución secuencial, acceso a
vectores. . .
t → @i ⇒ t + 1 → @(i + ∆)
I. Perona (UPV/EHU) Tema 1: Memoria cache (parte 1) 2 de septiembre de 2022 17 / 29
Características generales de las MC Jerarquía de memorias
Características generales
Principio de localidad (locality)
Debido al principio de localidad, el sistema de memoria se organiza en
varios niveles, deniendo una jerarquía de memoria
En los niveles superiores: memoria cache (MC)
Memoria pequeña pero rápida (cerca). RAM estática.
Instrucciones y datos que más utiliza el procesador.
Repartida en varios niveles (L1, el más pequeño; L2, L3).
Dado que se pueden integrar muchos transistores en un chip, L1 y L2
se integran dentro del chip: acceso rápido.
En los niveles inferiores: memoria principal (MP)
Memoria más grande (1.000 veces) pero más lenta (510 veces)
RAM dinámica
I. Perona (UPV/EHU) Tema 1: Memoria cache (parte 1) 2 de septiembre de 2022 18 / 29
Características generales de las MC Jerarquía de memorias
Características generales
Jerarquía de memoria
I. Perona (UPV/EHU) Tema 1: Memoria cache (parte 1) 2 de septiembre de 2022 19 / 29
Características generales de las MC Apuesta: hit y miss
Tabla de contenidos
1 Introducción: jerarquía de memoria
El gap de velocidad
Direcciones: palabra y byte
Modulos: buers de entrelazado
2 Características generales de las MC
Jerarquía de memorias
Apuesta: hit y miss
MC: directorio / contenido
I. Perona (UPV/EHU) Tema 1: Memoria cache (parte 1) 2 de septiembre de 2022 20 / 29
Características generales de las MC Apuesta: hit y miss
Características generales
Principio de inclusión
El contenido de un nivel de la jerarquía de memoria es un
subconjunto del nivel anterior. Por ello, puede haber varias copias
de un bloque de datos, tal y como se indica en el esquema.
No obstante, en algunos procesadores no se cumple esta condición y la
cache L2 no es inclusiva: un bloque puede estar en L1 sin estar en L2.
I. Perona (UPV/EHU) Tema 1: Memoria cache (parte 1) 2 de septiembre de 2022 21 / 29
Características generales de las MC Apuesta: hit y miss
Características generales
Principio de inclusión
El procesador buscará la información en la memoria más cercana. Si
no están en ese nivel, buscará en el siguiente nivel y así sucesivamente.
Por ello, el tiempo de acceso a la información es variable,
dependiendo de su localización.
Acceso rápido: la información que se busca está en un nivel cercano (en
MC). Pero en la MC no cabe toda la información!
Hay que hacer una APUESTA: ¾qué se lleva a MC?
I. Perona (UPV/EHU) Tema 1: Memoria cache (parte 1) 2 de septiembre de 2022 22 / 29
Características generales de las MC Apuesta: hit y miss
Características generales
A la hora de buscar la información en la memoria cache, se puede
producir un acierto (la información está en MC) o un fallo (no está
en MC). Por ejemplo, al leer una palabra (solamente con L1 y MP):
I. Perona (UPV/EHU) Tema 1: Memoria cache (parte 1) 2 de septiembre de 2022 23 / 29
Características generales de las MC Apuesta: hit y miss
Características generales
En resumen, así se puede expresar el tiempo de acceso a la jerarquía
de memoria:
Tacceso = h × TMC + (1 − h) × Tfallo
h: tasa de acierto (1 − h, tasa de fallos)
TMC : tiempo de acceso a memoria cache
Tfallo : tiempo para acceder a la información (instrucción/ dato) en el
siguiente nivel (en función de la tasa de aciertos de cada nivel)
Para que sea eciente, la tasa de aciertos, h, debe ser muy alta
(>95 %).
I. Perona (UPV/EHU) Tema 1: Memoria cache (parte 1) 2 de septiembre de 2022 24 / 29
Características generales de las MC Apuesta: hit y miss
Características generales
A la unidad de transferencia entre MC y MP se le llama bloque
(line)
Bloque: 2n palabras consecutivas en memoria.
Por ejemplo, 64 bytes: 8 palabras de 8 bytes.
¾Por qué bloque y no palabra? ½Localidad!
Si se transere una palabra a MC para usarse en un determinado
momento, seguramente el siguiente acceso será a una palabra
consecutiva. Eso sí, se trata de una apuesta.
Por ello, se aprovecha la transferencia MP → MC para transferir más
de una palabra, casi al mismo coste.
En general, el tamaño del bloque coincide con el entrelazado de la
memoria.
I. Perona (UPV/EHU) Tema 1: Memoria cache (parte 1) 2 de septiembre de 2022 25 / 29
Características generales de las MC MC: directorio / contenido
Tabla de contenidos
1 Introducción: jerarquía de memoria
El gap de velocidad
Direcciones: palabra y byte
Modulos: buers de entrelazado
2 Características generales de las MC
Jerarquía de memorias
Apuesta: hit y miss
MC: directorio / contenido
I. Perona (UPV/EHU) Tema 1: Memoria cache (parte 1) 2 de septiembre de 2022 26 / 29
Características generales de las MC MC: directorio / contenido
Características generales
Estructura de la memoria cache: directorio / contenido
La dirección de una palabra indica su posición en MP. ¾Pero en la
memoria cache, cuál es su dirección?
Una memoria cache tiene dos partes:
contenido : SRAM para almacenar los bloques de datos.
directorio : información acerca de los bloques de datos almacenados en
la cache, una palabra por cada bloque de datos: marcas de dirección
(tag) y varios bits de control del bloque.
Dependiendo de la organización de la cache, el directorio puede ser una
memoria asociativa (búsqueda por contenido).
Además, hardware habitual: multiplexores, codicadores. . .
I. Perona (UPV/EHU) Tema 1: Memoria cache (parte 1) 2 de septiembre de 2022 27 / 29
Características generales de las MC MC: directorio / contenido
Características generales
Estructura de la memoria cache: directorio / contenido
Directorio: hay información necesaria para saber si la palabra que se
busca está en MC o no (SRAM / M. asoc.)
I. Perona (UPV/EHU) Tema 1: Memoria cache (parte 1) 2 de septiembre de 2022 28 / 29
Características generales de las MC MC: directorio / contenido
Tema 1: Memoria cache (parte 1)
Iñigo Perona Balda (CAS)
Agustin Arruabarrena (EUS) Olatz Arbelaitz (ENG)
Universidad del País Vasco (UPV/EHU)
Grado en Ingeniería Informática
Arquitectura de Computadores
2 de septiembre de 2022
I. Perona (UPV/EHU) Tema 1: Memoria cache (parte 1) 2 de septiembre de 2022 29 / 29