Arquitectura de Computadores
Clase 20
Rubn Mitnik
Memoria Cach
Captulo 5 : Sistemas de Memoria Memoria Cach
Algoritmos de Reemplazo
Determinan qu lnea hay que sobreescribir cuando la memoria cach se llena y se requiere escribir un bloque de memoria principal en la cach
R.Mitnik
Arquitectura de Computadores
Algoritmos de reemplazo
Captulo 5 : Sistemas de Memoria Memoria Cach
Para el esquema directo no hay eleccin ya que cada bloque de memoria slo puede estar en un sitio. Para los otros esquemas :
LRU (least recently used) FIFO (first in first out) LFU (least frequently used) Random
R.Mitnik
Arquitectura de Computadores
Algoritmos de reemplazo
Captulo 5 : Sistemas de Memoria Memoria Cach
R.Mitnik
Arquitectura de Computadores
Algoritmos de reemplazo
Captulo 5 : Sistemas de Memoria Memoria Cach
Con esta poltica se desaloja de la cach el bloque que tiene ms tiempo sin usarse. Implementacin por hardware
Cada vez que se usa un bloque se debe almacenar alguna referencia al tiempo (timestamp) Se sustituye aquel bloque que tenga la referencia ms antigua.
R.Mitnik
Arquitectura de Computadores
Algoritmos de reemplazo
Captulo 5 : Sistemas de Memoria Memoria Cach
Se hace una lista con la secuencia de entrada de los bloques a la memoria cach. Se desaloja el bloque ms antiguo. Nota: no se desaloja el bloque cuyo uso sea el ms antiguo (eso es LRU), se desaloja aquella que su ingreso a la cach es el ms antiguo.
Es decir se sustituye aquel bloque que ha estado ms tiempo en la cach (an cuando se haya usado recientemente)
7 Arquitectura de Computadores
R.Mitnik
Algoritmos de reemplazo
Captulo 5 : Sistemas de Memoria Memoria Cach
Implementacin: se usa una lista circular con una manecilla que indica el ms antiguo.
R.Mitnik
Arquitectura de Computadores
Algoritmos de reemplazo
Captulo 5 : Sistemas de Memoria Memoria Cach
Se sustituye aquel bloque que ha experimentado menos referencias. Implementacin: cada bloque posee un contador, el que se incrementa cada vez que el bloque ha sido referenciado. Se sustituye aquel que tenga el contador ms bajo.
R.Mitnik
Arquitectura de Computadores
Algoritmos de reemplazo
Captulo 5 : Sistemas de Memoria Memoria Cach
Random (aleatorio):
Estudios realizados mediante simulacin han mostrado que la sustitucin aleatoria proporciona un desempeo ligeramente menor a un algoritmo de reemplazo como los anteriores (basados en el grado de utilizacin).
10 Arquitectura de Computadores
R.Mitnik
Memoria Cach
Captulo 5 : Sistemas de Memoria Memoria Cach
Polticas de escritura
Antes de que pueda ser reemplazado un bloque de la cach es necesario comprobar si ha sido alterado en la cach y no en la memoria principal. Si la memoria principal se encuentra actualizada, el bloque puede ser sobre-escrito. En caso contrario habr que actualizar la memoria principal antes de sobre-escribir el bloque.
R.Mitnik
11
Arquitectura de Computadores
Polticas de escritura
Captulo 5 : Sistemas de Memoria Memoria Cach
R.Mitnik
12
Arquitectura de Computadores
Polticas de escritura
Captulo 5 : Sistemas de Memoria Memoria Cach
Todas las operaciones de escritura se hacen tanto en la cach como en la memoria principal inmediatamente. As se asegura que el contenido de la memoria principal sea siempre vlido.
R.Mitnik
13
Arquitectura de Computadores
Polticas de escritura
Captulo 5 : Sistemas de Memoria Memoria Cach
Desventaja: se genera un trfico sustancial a la memoria principal que puede disminuir el desempeo.
Estudios sealan que el porcentaje de referencias a memoria para escritura es del orden del 15%.
R.Mitnik
14
Arquitectura de Computadores
Polticas de escritura
Captulo 5 : Sistemas de Memoria Memoria Cach
Write-back (post-escritura):
Bit de actualizacin:
R.Mitnik
15
Arquitectura de Computadores
Polticas de escritura
Captulo 5 : Sistemas de Memoria Problemas de diseo: Memoria Cach
1KB 1ns
256 KB 5 ns
1 GB 100 ns
80 GB 5 ms
R.Mitnik
16
Arquitectura de Computadores
Polticas de escritura
Captulo 5 : Sistemas de Memoria Memoria Cach
Write-back (post-escritura):
Desventaja:
Porciones de la memoria principal pueden no ser vlidos. Los mdulos de I/O necesitaran acceder a ella a travs de la cach. puede generar problemas de coherencia de memoria
R.Mitnik
17
Arquitectura de Computadores
Memoria Cach
Captulo 5 : Sistemas de Memoria Memoria Cach
R.Mitnik
18
Arquitectura de Computadores
Incialmente, se usaba slo una cach externa (off-chip) a la CPU. Luego se desarrollaron caches on-chip. Se hicieron estudios de performance para determinar si una sola cache es suficiente. El resultado de estas investigaciones indican que el desempeo aumenta si se emplean distintos niveles de cach.
19 Arquitectura de Computadores
R.Mitnik
Actualmente se tienen sistemas de con caches on-chip (L1 y L2) y off-chip (L3).
R.Mitnik
20
Arquitectura de Computadores
Memoria Cach
Captulo 5 : Sistemas de Memoria Memoria Cach
Tipos de Cachs
Unified:
instrucciones y datos juntos
Split:
instrucciones y datos separados
Specific:
usos especficos (trace cache, victim cache)
21 Arquitectura de Computadores
R.Mitnik
Tipos de caches
Captulo 5 : Sistemas de Memoria Memoria Cach
CPU
L1 CACHE Instruction Cache Data Cache
R.Mitnik
23
Arquitectura de Computadores
Memoria Cach
Captulo 5 : Sistemas de Memoria Memoria Cach
Coherencia
El uso de diversos caches genera problemas de coherencia entre ellos, tanto utilizando politicas write-through como write-back. Problemas de coherencia:
Entre caches del mismo core o CPU Entre caches de distintos cores o CPUs
24 Arquitectura de Computadores
R.Mitnik
Coherencia
Captulo 5 : Sistemas de Memoria Memoria Cach
Soluciones:
Vigilancia del bus (con write-through)
invalidacin de datos
Transparencia de hardware
actualizacin en todas las caches
R.Mitnik
25
Arquitectura de Computadores
Coherencia
Captulo 5 : Sistemas de Memoria Memoria Cach
Soluciones:
Protocolo MESI (Modified / Exclusive / Shared / Invalid)
Modificada: distinta de memoria principal y no existe en otras caches. Exclusiva: coincide con memoria principal y no existe en otras caches.
Compartida: coincide con memoria principal y puede estar presente en otras caches.
Invlida: datos no son vlidos.
26 Arquitectura de Computadores
R.Mitnik
Memoria Cach
Captulo 5 : Sistemas de Memoria Memoria Cach
R.Mitnik
27
Arquitectura de Computadores
Qu tan grande debe ser el bloque? Cuntas palabras contiguas deben cargarse en la cach?
Ni pocas, ni muchas:
La tasa de aciertos aumenta a medida que aumenta el tamao del bloque, pero empieza a disminiuir si aumenta demasiado
En bloques muy grandes las palabras dejan de estar tan contiguas y nunca o casi nunca son referenciadas.
R.Mitnik
R.Mitnik
29
Arquitectura de Computadores
Efectos: eficiencia
Captulo 5 : Sistemas de Memoria Memoria Cach
Tamao del cdigo Optimizacin para velocidad tamao Cdigo optimizado para tamao puede llegar a ejecutarse ms rpido que cdigo optimizado para velocidad.
R.Mitnik
30
Arquitectura de Computadores
Efectos: eficiencia
Captulo 5 : Sistemas de Memoria Memoria Cach
R.Mitnik
31
Arquitectura de Computadores
Efectos: eficiencia
Captulo 5 : Sistemas de Memoria Memoria Cach
R.Mitnik
32
Arquitectura de Computadores
Efectos: eficiencia
Captulo 5 : Sistemas de Memoria Memoria Cach
R.Mitnik
33
Arquitectura de Computadores
Efectos: eficiencia
Captulo 5 : Sistemas de Memoria Memoria Cach
R.Mitnik
34
Arquitectura de Computadores
Efectos: eficiencia
Captulo 5 : Sistemas de Memoria Memoria Cach
R.Mitnik
35
Arquitectura de Computadores
Resumen
Captulo 5 : Sistemas de Memoria Memoria Cach
Resumen
Existen diversos elementos de diseo los cuales determinan la funcionalidad y desempeo de las memorias cach
Algoritmos de reemplazo Polticas de escritura Nmero y niveles de cach Tipos de cach Coherencia Tamao de las lneas
La correcta seleccin de stos permite optimizar la funcionalidad de la memoria cach para usos especficos
36 Arquitectura de Computadores
R.Mitnik