La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Arquitectura de Computadores

Presentaciones similares


Presentación del tema: "Arquitectura de Computadores"— Transcripción de la presentación:

1 Arquitectura de Computadores
Pontificia Universidad Católica de Chile Escuela de Ingeniería Departamento de Ciencia de la Computación Arquitectura de Computadores Clase 20 Memoria Caché: Elementos de Diseño Agregar: Explicar qué pasa cuando escribo en memoria sin antes haber leído. IIC 2342 Semestre Rubén Mitnik

2 Objetivos Capítulo 5 : Sistemas de Memoria Objetivos Entender los distintos elementos de diseño de las memorias caché Políticas de reemplazo Políticas de escritura Coherencia Niveles y tipos de caché Tamaño de las líneas R.Mitnik 2 Arquitectura de Computadores

3 Algoritmos de Reemplazo
Memoria Caché Capítulo 5 : Sistemas de Memoria – Memoria Caché Algoritmos de Reemplazo Determinan qué línea hay que sobreescribir cuando la memoria caché se llena y se requiere escribir un bloque de memoria principal en la caché R.Mitnik R.Mitnik 3 Arquitectura de Computadores Arquitectura de Computadores 3

4 Algoritmos de reemplazo
Capítulo 5 : Sistemas de Memoria – Memoria Caché Para el esquema directo no hay elección ya que cada bloque de memoria sólo 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 4 Arquitectura de Computadores

5 Algoritmos de reemplazo
Capítulo 5 : Sistemas de Memoria – Memoria Caché LRU (least recently used: menos recientemente usada): Probablemente los bloques usados más recientemente seguirán usándose en el futuro cercano. Probablemente los bloques no usados en mucho tiempo no se usarán mucho en el futuro cercano. R.Mitnik 5 Arquitectura de Computadores 5

6 Algoritmos de reemplazo
Capítulo 5 : Sistemas de Memoria – Memoria Caché LRU (least recently used: menos recientemente usada): Con esta política se desaloja de la caché el bloque que tiene más tiempo sin usarse. Implementación 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 más antigua. R.Mitnik 6 Arquitectura de Computadores

7 Algoritmos de reemplazo
Capítulo 5 : Sistemas de Memoria – Memoria Caché FIFO (first input first output): Se hace una lista con la secuencia de entrada de los bloques a la memoria caché. Se desaloja el bloque más antiguo. Nota: no se desaloja el bloque cuyo uso sea el más antiguo (eso es LRU), se desaloja aquella que su ingreso a la caché es el más antiguo. Es decir se sustituye aquel bloque que ha estado más tiempo en la caché (aún cuando se haya usado recientemente) R.Mitnik 7 Arquitectura de Computadores

8 Algoritmos de reemplazo
Capítulo 5 : Sistemas de Memoria – Memoria Caché FIFO (first input first output): Implementación: se usa una lista circular con una manecilla que indica el más antiguo. R.Mitnik 8 Arquitectura de Computadores

9 Algoritmos de reemplazo
Capítulo 5 : Sistemas de Memoria – Memoria Caché LFU (least frecuently used: utilizado menos frecuentemente): Se sustituye aquel bloque que ha experimentado menos referencias. Implementación: cada bloque posee un contador, el que se incrementa cada vez que el bloque ha sido referenciado. Se sustituye aquel que tenga el contador más bajo. R.Mitnik 9 Arquitectura de Computadores

10 Algoritmos de reemplazo
Capítulo 5 : Sistemas de Memoria – Memoria Caché Random (aleatorio): Se sustituye un bloque cualquiera según una función aleatoria. Estudios realizados mediante simulación han mostrado que la sustitución aleatoria proporciona un desempeño ligeramente menor a un algoritmo de reemplazo como los anteriores (basados en el grado de utilización). R.Mitnik 10 Arquitectura de Computadores

11 Políticas de escritura
Memoria Caché Capítulo 5 : Sistemas de Memoria – Memoria Caché Políticas 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 R.Mitnik 11 Arquitectura de Computadores Arquitectura de Computadores 11

12 Políticas de escritura
Capítulo 5 : Sistemas de Memoria – Memoria Caché Hay dos técnicas principales Write-through (inmediatamente) Write-back (post-escritura) R.Mitnik 12 Arquitectura de Computadores

13 Políticas de escritura
Capítulo 5 : Sistemas de Memoria – Memoria Caché Write-through (escritura inmediata): 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 válido. R.Mitnik 13 Arquitectura de Computadores

14 Políticas de escritura
Capítulo 5 : Sistemas de Memoria – Memoria Caché Write-through (escritura inmediata): Desventaja: se genera un tráfico sustancial a la memoria principal que puede disminuir el desempeño. Estudios señalan que el porcentaje de referencias a memoria para escritura es del orden del 15%. R.Mitnik 14 Arquitectura de Computadores

15 Políticas de escritura
Capítulo 5 : Sistemas de Memoria – Memoria Caché Write-back (post-escritura): La línea se copia a memoria cuando se va a reemplazar (sólo si fue modificada). Bit de actualización: inicializado en ‘0’ (al cargarse la línea) seteado en ‘1’ al modificarse la línea. R.Mitnik 15 Arquitectura de Computadores

16 Políticas de escritura
Capítulo 5 : Sistemas de Memoria – Memoria Caché Problemas de diseño: ¿Qué sucede si un dispositivo de I/O hace un requerimiento a memoria de un dato que aún no ha sido actualizado? 1KB KB GB GB 1ns ns ns ms R.Mitnik 16 Arquitectura de Computadores

17 Políticas de escritura
Capítulo 5 : Sistemas de Memoria – Memoria Caché Write-back (post-escritura): Desventaja: Porciones de la memoria principal pueden no ser válidos. Los módulos de I/O necesitarían acceder a ella a través de la caché.  puede generar problemas de coherencia de memoria Explicar qué es coherencia: La habilidad de mantener todas las memorias con los mismos datos, o bien que cada una pueda determinar si sus datos son válidos o no. R.Mitnik 17 Arquitectura de Computadores

18 Número y Niveles de Caché
Memoria Caché Capítulo 5 : Sistemas de Memoria – Memoria Caché Número y Niveles de Caché R.Mitnik R.Mitnik 18 Arquitectura de Computadores Arquitectura de Computadores 18

19 Número y Niveles de caches
Capítulo 5 : Sistemas de Memoria – Memoria Caché Incialmente, se usaba sólo 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 desempeño aumenta si se emplean distintos niveles de caché. R.Mitnik 19 Arquitectura de Computadores

20 Número y Niveles de caches
Capítulo 5 : Sistemas de Memoria – Memoria Caché Actualmente se tienen sistemas de con caches on-chip (L1 y L2) y off-chip (L3). R.Mitnik 20 Arquitectura de Computadores

21 Tipos de Cachés Memoria Caché Unified: Split: Specific:
Capítulo 5 : Sistemas de Memoria – Memoria Caché Tipos de Cachés Unified: instrucciones y datos juntos Split: instrucciones y datos separados Specific: usos específicos (trace cache, victim cache) Trace cache: caché donde se almacenan (encolan) las instrucciones ya decodificadas Victim cache: caché donde se almacenan las instrucciones o datos que fueron retirados de la caché R.Mitnik R.Mitnik 21 Arquitectura de Computadores Arquitectura de Computadores 21

22 Tipos de caches CPU L2 Cache L3 Cache Main Memory L1 Instruction Data
Capítulo 5 : Sistemas de Memoria – Memoria Caché CPU Instruction Cache Data L2 Cache L3 Cache Main Memory L1 CACHE R.Mitnik 22 Arquitectura de Computadores

23 Número, Niveles y Tipos de caches
Capítulo 5 : Sistemas de Memoria – Memoria Caché R.Mitnik 23 Arquitectura de Computadores

24 Coherencia Memoria Caché
Capítulo 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 ¿Por qué utilizando politicas de escritura write-through podría tener problemas de coherencia?  Porque la memoria principal se actualiza inmediatamente, pero otra caché puede tener una copia del dato ya obsoleto y no saber que este ya no es válido. R.Mitnik R.Mitnik 24 Arquitectura de Computadores Arquitectura de Computadores 24

25 Coherencia Soluciones: Vigilancia del bus (con write-through)
Capítulo 5 : Sistemas de Memoria – Memoria Caché Soluciones: Vigilancia del bus (con write-through)  invalidación de datos Transparencia de hardware  actualización en todas las caches Memoria excluida de cache  memoria compartida no se transfiere a cache R.Mitnik 25 Arquitectura de Computadores

26 Coherencia Soluciones:
Capítulo 5 : Sistemas de Memoria – Memoria Caché Soluciones: Protocolo MESI (Modified / Exclusive / Shared / Invalid)  agrega dos bits de control por línea 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. Inválida: datos no son válidos. R.Mitnik 26 Arquitectura de Computadores

27 Tamaño del bloque Memoria Caché
Capítulo 5 : Sistemas de Memoria – Memoria Caché Tamaño del bloque Cuando se carga una palabra en la caché, se carga también palabras contiguas con la idea de que posteriormente van a ser también referenciadas. R.Mitnik R.Mitnik 27 Arquitectura de Computadores Arquitectura de Computadores 27

28 Tamaño del bloque Ni pocas, ni muchas:
Capítulo 5 : Sistemas de Memoria – Memoria Caché ¿Qué tan grande debe ser el bloque? ¿Cuántas palabras contiguas deben cargarse en la caché? Ni pocas, ni muchas: La tasa de aciertos aumenta a medida que aumenta el tamaño 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. Ej: Pentium 4 y AMD Athlon 64 usan líneas de 64 bytes R.Mitnik 28 Arquitectura de Computadores

29 Tamaño del bloque Capítulo 5 : Sistemas de Memoria – Memoria Caché
R.Mitnik 29 Arquitectura de Computadores

30 Efectos: eficiencia Tamaño del código
Capítulo 5 : Sistemas de Memoria – Memoria Caché Tamaño del código Optimización para velocidad  tamaño Código optimizado para tamaño puede llegar a ejecutarse más rápido que código optimizado para velocidad. Loop unrolling sirve para disminuir el tiempo de procesamiento de un código, pero aumenta el tamaño. Esto, si hace que mi código no entre completo en la caché, puede generar una disminución del performance. Si no hago loop unrolling, pero mi loop entra completo en la caché, puede que sea más rápido de procesar, aún cuando las instrucciones son más lentas (requiere saltos condicionales por el loop). R.Mitnik 30 Arquitectura de Computadores

31 Efectos: eficiencia Capítulo 5 : Sistemas de Memoria – Memoria Caché
R.Mitnik 31 Arquitectura de Computadores

32 Efectos: eficiencia Capítulo 5 : Sistemas de Memoria – Memoria Caché
R.Mitnik 32 Arquitectura de Computadores

33 Efectos: eficiencia Capítulo 5 : Sistemas de Memoria – Memoria Caché
R.Mitnik 33 Arquitectura de Computadores

34 Efectos: eficiencia Capítulo 5 : Sistemas de Memoria – Memoria Caché
R.Mitnik 34 Arquitectura de Computadores

35 Efectos: eficiencia Capítulo 5 : Sistemas de Memoria – Memoria Caché
R.Mitnik 35 Arquitectura de Computadores

36 Resumen Capítulo 5 : Sistemas de Memoria – Memoria Caché Resumen Existen diversos elementos de diseño los cuales determinan la funcionalidad y desempeño de las memorias caché Algoritmos de reemplazo Políticas de escritura Número y niveles de caché Tipos de caché Coherencia Tamaño de las líneas La correcta selección de éstos permite optimizar la funcionalidad de la memoria caché para usos específicos R.Mitnik R.Mitnik 36 Arquitectura de Computadores Arquitectura de Computadores 36


Descargar ppt "Arquitectura de Computadores"

Presentaciones similares


Anuncios Google